{"version":3,"file":"jss.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/is-in-browser/dist/module.js","../../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../src/utils/cloneStyle.js","../src/utils/createRule.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../src/utils/toCssValue.js","../src/utils/getWhitespaceSymbols.js","../src/utils/toCss.js","../src/utils/escape.js","../src/plugins/styleRule.js","../src/plugins/conditionalRule.js","../src/plugins/keyframesRule.js","../src/plugins/keyframeRule.js","../src/plugins/fontFaceRule.js","../src/plugins/viewportRule.js","../src/plugins/simpleRule.js","../src/plugins/index.js","../src/RuleList.js","../src/StyleSheet.js","../src/PluginsRegistry.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../src/SheetsRegistry.js","../src/sheets.js","../src/utils/globalThis.js","../src/utils/moduleId.js","../src/utils/createGenerateId.js","../src/DomRenderer.js","../src/Jss.js","../src/utils/createJss.js","../src/SheetsManager.js","../src/utils/hasCSSTOMSupport.js","../src/utils/getDynamicStyles.js","../src/index.js"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","const plainObjectConstrurctor = {}.constructor\n\nexport default function cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style\n if (Array.isArray(style)) return style.map(cloneStyle)\n if (style.constructor !== plainObjectConstrurctor) return style\n\n const newStyle = {}\n for (const name in style) {\n newStyle[name] = cloneStyle(style[name])\n }\n return newStyle\n}\n","import warning from 'tiny-warning'\nimport cloneStyle from './cloneStyle'\n\n/**\n * Create a rule instance.\n */\nexport default function createRule(name = 'unnamed', decl, options) {\n const {jss} = options\n const declCopy = cloneStyle(decl)\n\n const rule = jss.plugins.onCreateRule(name, declCopy, options)\n if (rule) return rule\n\n // It is an at-rule and it has no instance.\n if (name[0] === '@') {\n warning(false, `[JSS] Unknown rule ${name}`)\n }\n\n return null\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","const join = (value, by) => {\n let result = ''\n for (let i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break\n if (result) result += by\n result += value[i]\n }\n return result\n}\n\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nconst toCssValue = (value, ignoreImportant = false) => {\n if (!Array.isArray(value)) return value\n\n let cssValue = ''\n\n // Support space separated values via `[['5px', '10px']]`.\n if (Array.isArray(value[0])) {\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '!important') break\n if (cssValue) cssValue += ', '\n cssValue += join(value[i], ' ')\n }\n } else cssValue = join(value, ', ')\n\n // Add !important, because it was ignored.\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important'\n }\n\n return cssValue\n}\n\nexport default toCssValue\n","export default function getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n }\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n }\n}\n","import toCssValue from './toCssValue'\nimport getWhitespaceSymbols from './getWhitespaceSymbols'\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n let result = ''\n for (let index = 0; index < indent; index++) result += ' '\n return result + str\n}\n\n/**\n * Converts a Rule to CSS string.\n */\nexport default function toCss(selector, style, options = {}) {\n let result = ''\n\n if (!style) return result\n\n let {indent = 0} = options\n const {fallbacks} = style\n\n if (options.format === false) {\n indent = -Infinity\n }\n const {linebreak, space} = getWhitespaceSymbols(options)\n\n if (selector) indent++\n\n // Apply fallbacks first.\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (let index = 0; index < fallbacks.length; index++) {\n const fallback = fallbacks[index]\n for (const prop in fallback) {\n const value = fallback[prop]\n if (value != null) {\n if (result) result += linebreak\n result += indentStr(`${prop}:${space}${toCssValue(value)};`, indent)\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (const prop in fallbacks) {\n const value = fallbacks[prop]\n if (value != null) {\n if (result) result += linebreak\n result += indentStr(`${prop}:${space}${toCssValue(value)};`, indent)\n }\n }\n }\n }\n\n for (const prop in style) {\n const value = style[prop]\n if (value != null && prop !== 'fallbacks') {\n if (result) result += linebreak\n result += indentStr(`${prop}:${space}${toCssValue(value)};`, indent)\n }\n }\n\n // Allow empty style in this case, because properties will be added dynamically.\n if (!result && !options.allowEmpty) return result\n\n // When rule is being stringified before selector was defined.\n if (!selector) return result\n\n indent--\n\n if (result) result = `${linebreak}${result}${linebreak}`\n\n return indentStr(`${selector}${space}{${result}`, indent) + indentStr('}', indent)\n}\n","const escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g\nconst nativeEscape = typeof CSS !== 'undefined' && CSS.escape\n\nexport default (str) => (nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1'))\n","import warning from 'tiny-warning'\nimport toCss from '../utils/toCss'\nimport toCssValue from '../utils/toCssValue'\nimport escape from '../utils/escape'\n\nexport class BaseStyleRule {\n type = 'style'\n\n isProcessed = false\n\n constructor(key, style, options) {\n const {sheet, Renderer} = options\n this.key = key\n this.options = options\n this.style = style\n if (sheet) this.renderer = sheet.renderer\n else if (Renderer) this.renderer = new Renderer()\n }\n\n /**\n * Get or set a style property.\n */\n prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]\n\n // Don't do anything if the value has not changed.\n const force = options ? options.force : false\n if (!force && this.style[name] === value) return this\n\n let newValue = value\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this)\n }\n\n const isEmpty = newValue == null || newValue === false\n const isDefined = name in this.style\n\n // Value is empty and wasn't defined before.\n if (isEmpty && !isDefined && !force) return this\n\n // We are going to remove this value.\n const remove = isEmpty && isDefined\n\n if (remove) delete this.style[name]\n else this.style[name] = newValue\n\n // Renderable is defined if StyleSheet option `link` is true.\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name)\n else this.renderer.setProperty(this.renderable, name, newValue)\n return this\n }\n\n const {sheet} = this.options\n if (sheet && sheet.attached) {\n warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".')\n }\n return this\n }\n}\n\nexport class StyleRule extends BaseStyleRule {\n constructor(key, style, options) {\n super(key, style, options)\n const {selector, scoped, sheet, generateId} = options\n if (selector) {\n this.selectorText = selector\n } else if (scoped !== false) {\n this.id = generateId(this, sheet)\n this.selectorText = `.${escape(this.id)}`\n }\n }\n\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n set selector(selector) {\n if (selector === this.selectorText) return\n\n this.selectorText = selector\n\n const {renderer, renderable} = this\n\n if (!renderable || !renderer) return\n\n const hasChanged = renderer.setSelector(renderable, selector)\n\n // If selector setter is not implemented, rerender the rule.\n if (!hasChanged) {\n renderer.replaceRule(renderable, this)\n }\n }\n\n /**\n * Get selector string.\n */\n get selector() {\n return this.selectorText\n }\n\n /**\n * Apply rule to an element inline.\n */\n applyTo(renderable) {\n const {renderer} = this\n if (renderer) {\n const json = this.toJSON()\n for (const prop in json) {\n renderer.setProperty(renderable, prop, json[prop])\n }\n }\n return this\n }\n\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n toJSON() {\n const json = {}\n for (const prop in this.style) {\n const value = this.style[prop]\n if (typeof value !== 'object') json[prop] = value\n else if (Array.isArray(value)) json[prop] = toCssValue(value)\n }\n return json\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options) {\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const opts = link ? {...options, allowEmpty: true} : options\n return toCss(this.selectorText, this.style, opts)\n }\n}\n\nexport default {\n onCreateRule(key, style, options) {\n if (key[0] === '@' || (options.parent && options.parent.type === 'keyframes')) {\n return null\n }\n return new StyleRule(key, style, options)\n }\n}\n","import RuleList from '../RuleList'\nimport getWhitespaceSymbols from '../utils/getWhitespaceSymbols'\n\nconst defaultToStringOptions = {\n indent: 1,\n children: true\n}\n\nconst atRegExp = /@([\\w-]+)/\n\n/**\n * Conditional rule for @media, @supports\n */\nexport class ConditionalRule {\n type = 'conditional'\n\n isProcessed = false\n\n constructor(key, styles, options) {\n this.key = key\n const atMatch = key.match(atRegExp)\n this.at = atMatch ? atMatch[1] : 'unknown'\n // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n this.query = options.name || `@${this.at}`\n this.options = options\n this.rules = new RuleList({...options, parent: this})\n\n for (const name in styles) {\n this.rules.add(name, styles[name])\n }\n\n this.rules.process()\n }\n\n /**\n * Get a rule.\n */\n getRule(name) {\n return this.rules.get(name)\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule) {\n return this.rules.indexOf(rule)\n }\n\n /**\n * Create and register rule, run plugins.\n */\n addRule(name, style, options) {\n const rule = this.rules.add(name, style, options)\n if (!rule) return null\n this.options.jss.plugins.onProcessRule(rule)\n return rule\n }\n\n /**\n * Replace rule, run plugins.\n */\n replaceRule(name, style, options) {\n const newRule = this.rules.replace(name, style, options)\n if (newRule) this.options.jss.plugins.onProcessRule(newRule)\n return newRule\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options = defaultToStringOptions) {\n const {linebreak} = getWhitespaceSymbols(options)\n if (options.indent == null) options.indent = defaultToStringOptions.indent\n if (options.children == null) options.children = defaultToStringOptions.children\n if (options.children === false) {\n return `${this.query} {}`\n }\n const children = this.rules.toString(options)\n return children ? `${this.query} {${linebreak}${children}${linebreak}}` : ''\n }\n}\n\nconst keyRegExp = /@media|@supports\\s+/\n\nexport default {\n onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null\n }\n}\n","import warning from 'tiny-warning'\nimport RuleList from '../RuleList'\nimport escape from '../utils/escape'\nimport getWhitespaceSymbols from '../utils/getWhitespaceSymbols'\n\nconst defaultToStringOptions = {\n indent: 1,\n children: true\n}\n\nconst nameRegExp = /@keyframes\\s+([\\w-]+)/\n\n/**\n * Rule for @keyframes\n */\nexport class KeyframesRule {\n type = 'keyframes'\n\n at = '@keyframes'\n\n isProcessed = false\n\n constructor(key, frames, options) {\n const nameMatch = key.match(nameRegExp)\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1]\n } else {\n this.name = 'noname'\n warning(false, `[JSS] Bad keyframes name ${key}`)\n }\n this.key = `${this.type}-${this.name}`\n this.options = options\n const {scoped, sheet, generateId} = options\n this.id = scoped === false ? this.name : escape(generateId(this, sheet))\n this.rules = new RuleList({...options, parent: this})\n\n for (const name in frames) {\n this.rules.add(name, frames[name], {\n ...options,\n parent: this\n })\n }\n\n this.rules.process()\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options = defaultToStringOptions) {\n const {linebreak} = getWhitespaceSymbols(options)\n if (options.indent == null) options.indent = defaultToStringOptions.indent\n if (options.children == null) options.children = defaultToStringOptions.children\n if (options.children === false) {\n return `${this.at} ${this.id} {}`\n }\n let children = this.rules.toString(options)\n if (children) children = `${linebreak}${children}${linebreak}`\n return `${this.at} ${this.id} {${children}}`\n }\n}\n\nconst keyRegExp = /@keyframes\\s+/\n\nconst refRegExp = /\\$([\\w-]+)/g\n\nconst findReferencedKeyframe = (val, keyframes) => {\n if (typeof val === 'string') {\n return val.replace(refRegExp, (match, name) => {\n if (name in keyframes) {\n return keyframes[name]\n }\n\n warning(false, `[JSS] Referenced keyframes rule \"${name}\" is not defined.`)\n\n return match\n })\n }\n\n return val\n}\n\n/**\n * Replace the reference for a animation name.\n */\nconst replaceRef = (style, prop, keyframes) => {\n const value = style[prop]\n const refKeyframe = findReferencedKeyframe(value, keyframes)\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe\n }\n}\n\nexport default {\n onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp.test(key)\n ? new KeyframesRule(key, frames, options)\n : null\n },\n\n // Animation name ref replacer.\n onProcessStyle: (style, rule, sheet) => {\n if (rule.type !== 'style' || !sheet) return style\n\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes)\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes)\n return style\n },\n\n onChangeValue(val, prop, rule) {\n const {sheet} = rule.options\n\n if (!sheet) {\n return val\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes)\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes)\n default:\n return val\n }\n }\n}\n","import toCss from '../utils/toCss'\nimport {BaseStyleRule} from './styleRule'\n\nexport class KeyframeRule extends BaseStyleRule {\n /**\n * Generates a CSS string.\n */\n toString(options) {\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const opts = link ? {...options, allowEmpty: true} : options\n return toCss(this.key, this.style, opts)\n }\n}\n\nexport default {\n onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options)\n }\n return null\n }\n}\n","import toCss from '../utils/toCss'\nimport getWhitespaceSymbols from '../utils/getWhitespaceSymbols'\n\nexport class FontFaceRule {\n type = 'font-face'\n\n at = '@font-face'\n\n isProcessed = false\n\n constructor(key, style, options) {\n this.key = key\n this.style = style\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options) {\n const {linebreak} = getWhitespaceSymbols(options)\n if (Array.isArray(this.style)) {\n let str = ''\n for (let index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index])\n if (this.style[index + 1]) str += linebreak\n }\n return str\n }\n\n return toCss(this.at, this.style, options)\n }\n}\n\nconst keyRegExp = /@font-face/\n\nexport default {\n onCreateRule(key, style, options) {\n return keyRegExp.test(key) ? new FontFaceRule(key, style, options) : null\n }\n}\n","import toCss from '../utils/toCss'\n\nexport class ViewportRule {\n type = 'viewport'\n\n at = '@viewport'\n\n isProcessed = false\n\n constructor(key, style, options) {\n this.key = key\n this.style = style\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options) {\n return toCss(this.key, this.style, options)\n }\n}\n\nexport default {\n onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport'\n ? new ViewportRule(key, style, options)\n : null\n }\n}\n","export class SimpleRule {\n type = 'simple'\n\n isProcessed = false\n\n constructor(key, value, options) {\n this.key = key\n this.value = value\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n toString(options) {\n if (Array.isArray(this.value)) {\n let str = ''\n for (let index = 0; index < this.value.length; index++) {\n str += `${this.key} ${this.value[index]};`\n if (this.value[index + 1]) str += '\\n'\n }\n return str\n }\n\n return `${this.key} ${this.value};`\n }\n}\n\nconst keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n}\n\nexport default {\n onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null\n }\n}\n","import pluginStyleRule, {StyleRule} from './styleRule'\nimport pluginConditionalRule, {ConditionalRule} from './conditionalRule'\nimport pluginKeyframesRule, {KeyframesRule} from './keyframesRule'\nimport pluginKeyframeRule, {KeyframeRule} from './keyframeRule'\nimport pluginFontFaceRule, {FontFaceRule} from './fontFaceRule'\nimport pluginViewportRule, {ViewportRule} from './viewportRule'\nimport pluginSimpleRule, {SimpleRule} from './simpleRule'\n\nexport const plugins = [\n pluginStyleRule,\n pluginConditionalRule,\n pluginKeyframesRule,\n pluginKeyframeRule,\n pluginFontFaceRule,\n pluginViewportRule,\n pluginSimpleRule\n]\n\nexport {\n StyleRule,\n ConditionalRule,\n KeyframesRule,\n KeyframeRule,\n FontFaceRule,\n ViewportRule,\n SimpleRule\n}\n","import createRule from './utils/createRule'\nimport {StyleRule, KeyframesRule} from './plugins/index'\nimport escape from './utils/escape'\nimport getWhitespaceSymbols from './utils/getWhitespaceSymbols'\n\nconst defaultUpdateOptions = {\n process: true\n}\n\nconst forceUpdateOptions = {\n force: true,\n process: true\n}\n\n/**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\nexport default class RuleList {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n map = {}\n\n // Original styles object.\n raw = {}\n\n // Used to ensure correct rules order.\n index = []\n\n counter = 0\n\n constructor(options) {\n this.options = options\n this.classes = options.classes\n this.keyframes = options.keyframes\n }\n\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n add(name, decl, ruleOptions) {\n const {parent, sheet, jss, Renderer, generateId, scoped} = this.options\n const options = {\n classes: this.classes,\n parent,\n sheet,\n jss,\n Renderer,\n generateId,\n scoped,\n name,\n keyframes: this.keyframes,\n selector: undefined,\n ...ruleOptions\n }\n\n // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n let key = name\n if (name in this.raw) {\n key = `${name}-d${this.counter++}`\n }\n\n // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n this.raw[key] = decl\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = `.${escape(this.classes[key])}`\n }\n\n const rule = createRule(key, decl, options)\n\n if (!rule) return null\n\n this.register(rule)\n\n const index = options.index === undefined ? this.index.length : options.index\n this.index.splice(index, 0, rule)\n\n return rule\n }\n\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n replace(name, decl, ruleOptions) {\n const oldRule = this.get(name)\n const oldIndex = this.index.indexOf(oldRule)\n if (oldRule) {\n this.remove(oldRule)\n }\n let options = ruleOptions\n if (oldIndex !== -1) options = {...ruleOptions, index: oldIndex}\n return this.add(name, decl, options)\n }\n\n /**\n * Get a rule by name or selector.\n */\n get(nameOrSelector) {\n return this.map[nameOrSelector]\n }\n\n /**\n * Delete a rule.\n */\n remove(rule) {\n this.unregister(rule)\n delete this.raw[rule.key]\n this.index.splice(this.index.indexOf(rule), 1)\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule) {\n return this.index.indexOf(rule)\n }\n\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n process() {\n const {plugins} = this.options.jss\n // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n this.index.slice(0).forEach(plugins.onProcessRule, plugins)\n }\n\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n register(rule) {\n this.map[rule.key] = rule\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule\n if (rule.id) this.classes[rule.key] = rule.id\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id\n }\n }\n\n /**\n * Unregister a rule.\n */\n unregister(rule) {\n delete this.map[rule.key]\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector]\n delete this.classes[rule.key]\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name]\n }\n }\n\n /**\n * Update the function values with a new data.\n */\n update(...args) {\n let name\n let data\n let options\n\n if (typeof args[0] === 'string') {\n name = args[0]\n data = args[1]\n options = args[2]\n } else {\n data = args[0]\n options = args[1]\n name = null\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options)\n } else {\n for (let index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options)\n }\n }\n }\n\n /**\n * Execute plugins, update rule props.\n */\n updateOne(rule, data, options = defaultUpdateOptions) {\n const {\n jss: {plugins},\n sheet\n } = this.options\n\n // It is a rules container like for e.g. ConditionalRule.\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options)\n return\n }\n\n const {style} = rule\n\n plugins.onUpdate(data, rule, sheet, options)\n\n // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet)\n\n // Update and add props.\n for (const prop in rule.style) {\n const nextValue = rule.style[prop]\n const prevValue = style[prop]\n // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions)\n }\n }\n\n // Remove props.\n for (const prop in style) {\n const nextValue = rule.style[prop]\n const prevValue = style[prop]\n // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n if (nextValue == null && nextValue !== prevValue) {\n rule.prop(prop, null, forceUpdateOptions)\n }\n }\n }\n }\n\n /**\n * Convert rules to a CSS string.\n */\n toString(options) {\n let str = ''\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const {linebreak} = getWhitespaceSymbols(options)\n\n for (let index = 0; index < this.index.length; index++) {\n const rule = this.index[index]\n const css = rule.toString(options)\n\n // No need to render an empty rule.\n if (!css && !link) continue\n\n if (str) str += linebreak\n str += css\n }\n\n return str\n }\n}\n","import RuleList from './RuleList'\n\nexport default class StyleSheet {\n constructor(styles, options) {\n this.attached = false\n this.deployed = false\n this.classes = {}\n this.keyframes = {}\n this.options = {\n ...options,\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n }\n if (options.Renderer) {\n this.renderer = new options.Renderer(this)\n }\n this.rules = new RuleList(this.options)\n\n for (const name in styles) {\n this.rules.add(name, styles[name])\n }\n\n this.rules.process()\n }\n\n /**\n * Attach renderable to the render tree.\n */\n attach() {\n if (this.attached) return this\n if (this.renderer) this.renderer.attach()\n this.attached = true\n // Order is important, because we can't use insertRule API if style element is not attached.\n if (!this.deployed) this.deploy()\n return this\n }\n\n /**\n * Remove renderable from render tree.\n */\n detach() {\n if (!this.attached) return this\n if (this.renderer) this.renderer.detach()\n this.attached = false\n return this\n }\n\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n addRule(name, decl, options) {\n const {queue} = this\n\n // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n if (this.attached && !queue) this.queue = []\n\n const rule = this.rules.add(name, decl, options)\n\n if (!rule) return null\n\n this.options.jss.plugins.onProcessRule(rule)\n\n if (this.attached) {\n if (!this.deployed) return rule\n // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n if (queue) queue.push(rule)\n else {\n this.insertRule(rule)\n if (this.queue) {\n this.queue.forEach(this.insertRule, this)\n this.queue = undefined\n }\n }\n return rule\n }\n\n // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n this.deployed = false\n\n return rule\n }\n\n /**\n * Replace a rule in the current stylesheet.\n */\n replaceRule(nameOrSelector, decl, options) {\n const oldRule = this.rules.get(nameOrSelector)\n if (!oldRule) return this.addRule(nameOrSelector, decl, options)\n\n const newRule = this.rules.replace(nameOrSelector, decl, options)\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule)\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule\n // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule)\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule)\n }\n }\n return newRule\n }\n\n // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n this.deployed = false\n\n return newRule\n }\n\n /**\n * Insert rule into the StyleSheet\n */\n insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule)\n }\n }\n\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n addRules(styles, options) {\n const added = []\n for (const name in styles) {\n const rule = this.addRule(name, styles[name], options)\n if (rule) added.push(rule)\n }\n return added\n }\n\n /**\n * Get a rule by name or selector.\n */\n getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector)\n }\n\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n deleteRule(name) {\n const rule = typeof name === 'object' ? name : this.rules.get(name)\n\n if (\n !rule ||\n // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n (this.attached && !rule.renderable)\n ) {\n return false\n }\n\n this.rules.remove(rule)\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable)\n }\n\n return true\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule) {\n return this.rules.indexOf(rule)\n }\n\n /**\n * Deploy pure CSS string to a renderable.\n */\n deploy() {\n if (this.renderer) this.renderer.deploy()\n this.deployed = true\n return this\n }\n\n /**\n * Update the function values with a new data.\n */\n update(...args) {\n this.rules.update(...args)\n return this\n }\n\n /**\n * Updates a single rule.\n */\n updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options)\n return this\n }\n\n /**\n * Convert rules to a CSS string.\n */\n toString(options) {\n return this.rules.toString(options)\n }\n}\n","import warning from 'tiny-warning'\n\nexport default class PluginsRegistry {\n plugins = {\n internal: [],\n external: []\n }\n\n registry = {}\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n onCreateRule(name, decl, options) {\n for (let i = 0; i < this.registry.onCreateRule.length; i++) {\n const rule = this.registry.onCreateRule[i](name, decl, options)\n if (rule) return rule\n }\n\n return null\n }\n\n /**\n * Call `onProcessRule` hooks.\n */\n onProcessRule(rule) {\n if (rule.isProcessed) return\n const {sheet} = rule.options\n for (let i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet)\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet)\n\n rule.isProcessed = true\n }\n\n /**\n * Call `onProcessStyle` hooks.\n */\n onProcessStyle(style, rule, sheet) {\n for (let i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet)\n }\n }\n\n /**\n * Call `onProcessSheet` hooks.\n */\n onProcessSheet(sheet) {\n for (let i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet)\n }\n }\n\n /**\n * Call `onUpdate` hooks.\n */\n onUpdate(data, rule, sheet, options) {\n for (let i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options)\n }\n }\n\n /**\n * Call `onChangeValue` hooks.\n */\n onChangeValue(value, prop, rule) {\n let processedValue = value\n for (let i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule)\n }\n return processedValue\n }\n\n /**\n * Register a plugin.\n */\n use(newPlugin, options = {queue: 'external'}) {\n const plugins = this.plugins[options.queue]\n\n // Avoids applying same plugin twice, at least based on ref.\n if (plugins.indexOf(newPlugin) !== -1) {\n return\n }\n\n plugins.push(newPlugin)\n\n this.registry = [...this.plugins.external, ...this.plugins.internal].reduce(\n (registry, plugin) => {\n for (const name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name])\n } else {\n warning(false, `[JSS] Unknown hook \"${name}\".`)\n }\n }\n return registry\n },\n {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n }\n )\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import getWhitespaceSymbols from './utils/getWhitespaceSymbols'\n/**\n * Sheets registry to access all instances in one place.\n */\nexport default class SheetsRegistry {\n registry = []\n\n /**\n * Current highest index number.\n */\n get index() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index\n }\n\n /**\n * Register a Style Sheet.\n */\n add(sheet) {\n const {registry} = this\n const {index} = sheet.options\n\n if (registry.indexOf(sheet) !== -1) return\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet)\n return\n }\n\n // Find a position.\n for (let i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet)\n return\n }\n }\n }\n\n /**\n * Reset the registry.\n */\n reset() {\n this.registry = []\n }\n\n /**\n * Remove a Style Sheet.\n */\n remove(sheet) {\n const index = this.registry.indexOf(sheet)\n this.registry.splice(index, 1)\n }\n\n /**\n * Convert all attached sheets to a CSS string.\n */\n toString({attached, ...options} = {}) {\n const {linebreak} = getWhitespaceSymbols(options)\n let css = ''\n for (let i = 0; i < this.registry.length; i++) {\n const sheet = this.registry[i]\n if (attached != null && sheet.attached !== attached) {\n continue\n }\n if (css) css += linebreak\n css += sheet.toString(options)\n }\n return css\n }\n}\n","import SheetsRegistry from './SheetsRegistry'\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\nexport default new SheetsRegistry()\n","/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nexport default typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined' && window.Math === Math\n ? window\n : typeof self !== 'undefined' && self.Math === Math\n ? self\n : Function('return this')()\n","import globalThis from './globalThis'\n\nconst ns = '2f1acc6c3a606b082e5eef5e54414ffb'\nif (globalThis[ns] == null) globalThis[ns] = 0\n\n// Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\nexport default globalThis[ns]++\n","import warning from 'tiny-warning'\nimport moduleId from './moduleId'\n\nconst maxRules = 1e10\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nconst createGenerateId = (options = {}) => {\n let ruleCounter = 0\n\n const generateId = (rule, sheet) => {\n ruleCounter += 1\n\n if (ruleCounter > maxRules) {\n warning(false, `[JSS] You might have a memory leak. Rule counter is at ${ruleCounter}.`)\n }\n\n let jssId = ''\n let prefix = ''\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix\n }\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id)\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return `${prefix || 'c'}${moduleId}${jssId}${ruleCounter}`\n }\n\n return `${prefix + rule.key}-${moduleId}${jssId ? `-${jssId}` : ''}-${ruleCounter}`\n }\n\n return generateId\n}\n\nexport default createGenerateId\n","import warning from 'tiny-warning'\nimport StyleSheet from './StyleSheet'\nimport sheets from './sheets'\nimport toCssValue from './utils/toCssValue'\n\n/**\n * Cache the value from the first time a function is called.\n */\nconst memoize = (fn) => {\n let value\n return () => {\n if (!value) value = fn()\n return value\n }\n}\n\n/**\n * Get a style property value.\n */\nconst getPropertyValue = (cssRule, prop) => {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop)\n }\n return cssRule.style.getPropertyValue(prop)\n } catch (err) {\n // IE may throw if property is unknown.\n return ''\n }\n}\n\n/**\n * Set a style property.\n */\nconst setProperty = (cssRule, prop, value) => {\n try {\n let cssValue = value\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true)\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important')\n return true\n }\n }\n\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue)\n } else {\n cssRule.style.setProperty(prop, cssValue)\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false\n }\n return true\n}\n\n/**\n * Remove a style property.\n */\nconst removeProperty = (cssRule, prop) => {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop)\n } else {\n cssRule.style.removeProperty(prop)\n }\n } catch (err) {\n warning(\n false,\n `[JSS] DOMException \"${err.message}\" was thrown. Tried to remove property \"${prop}\".`\n )\n }\n}\n\n/**\n * Set the selector.\n */\nconst setSelector = (cssRule, selectorText) => {\n cssRule.selectorText = selectorText\n\n // Return false if setter was not successful.\n // Currently works in chrome only.\n return cssRule.selectorText === selectorText\n}\n\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\nconst getHead = memoize(() => document.querySelector('head'))\n\n/**\n * Find attached sheet with an index higher than the passed one.\n */\nfunction findHigherSheet(registry, options) {\n for (let i = 0; i < registry.length; i++) {\n const sheet = registry[i]\n if (\n sheet.attached &&\n sheet.options.index > options.index &&\n sheet.options.insertionPoint === options.insertionPoint\n ) {\n return sheet\n }\n }\n return null\n}\n\n/**\n * Find attached sheet with the highest index.\n */\nfunction findHighestSheet(registry, options) {\n for (let i = registry.length - 1; i >= 0; i--) {\n const sheet = registry[i]\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet\n }\n }\n return null\n}\n\n/**\n * Find a comment with \"jss\" inside.\n */\nfunction findCommentNode(text) {\n const head = getHead()\n for (let i = 0; i < head.childNodes.length; i++) {\n const node = head.childNodes[i]\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node\n }\n }\n return null\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n const {registry} = sheets\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n let sheet = findHigherSheet(registry, options)\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n }\n }\n\n // Otherwise insert after the last attached.\n sheet = findHighestSheet(registry, options)\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n }\n }\n }\n\n // Try to find a comment placeholder if registry is empty.\n const {insertionPoint} = options\n if (insertionPoint && typeof insertionPoint === 'string') {\n const comment = findCommentNode(insertionPoint)\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n }\n }\n\n // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n warning(false, `[JSS] Insertion point \"${insertionPoint}\" not found.`)\n }\n\n return false\n}\n\n/**\n * Insert style element into the DOM.\n */\nfunction insertStyle(style, options) {\n const {insertionPoint} = options\n const nextNode = findPrevNode(options)\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node)\n\n return\n }\n\n // Works with iframes and any node types.\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n const insertionPointElement = insertionPoint\n const {parentNode} = insertionPointElement\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling)\n else warning(false, '[JSS] Insertion point is not in the DOM.')\n return\n }\n\n getHead().appendChild(style)\n}\n\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\nconst getNonce = memoize(() => {\n const node = document.querySelector('meta[property=\"csp-nonce\"]')\n return node ? node.getAttribute('content') : null\n})\n\nconst insertRule = (container, rule, index) => {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index)\n }\n // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule)\n }\n } catch (err) {\n warning(false, `[JSS] ${err.message}`)\n return false\n }\n return container.cssRules[index]\n}\n\nconst getValidRuleInsertionIndex = (container, index) => {\n const maxIndex = container.cssRules.length\n // In case previous insertion fails, passed index might be wrong\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex\n }\n return index\n}\n\nconst createStyle = () => {\n const el = document.createElement('style')\n // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n el.textContent = '\\n'\n return el\n}\n\nexport default class DomRenderer {\n getPropertyValue = getPropertyValue\n\n setProperty = setProperty\n\n removeProperty = removeProperty\n\n setSelector = setSelector\n\n hasInsertedRules = false\n\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n cssRules = []\n\n constructor(sheet) {\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet)\n\n this.sheet = sheet\n const {media, meta, element} = this.sheet ? this.sheet.options : {}\n this.element = element || createStyle()\n this.element.setAttribute('data-jss', '')\n if (media) this.element.setAttribute('media', media)\n if (meta) this.element.setAttribute('data-meta', meta)\n const nonce = getNonce()\n if (nonce) this.element.setAttribute('nonce', nonce)\n }\n\n /**\n * Insert style element into render tree.\n */\n attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return\n\n insertStyle(this.element, this.sheet.options)\n\n // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n const deployed = Boolean(this.sheet && this.sheet.deployed)\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false\n this.deploy()\n }\n }\n\n /**\n * Remove style element from render tree.\n */\n detach() {\n if (!this.sheet) return\n const {parentNode} = this.element\n if (parentNode) parentNode.removeChild(this.element)\n // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n if (this.sheet.options.link) {\n this.cssRules = []\n this.element.textContent = '\\n'\n }\n }\n\n /**\n * Inject CSS string into element.\n */\n deploy() {\n const {sheet} = this\n if (!sheet) return\n if (sheet.options.link) {\n this.insertRules(sheet.rules)\n return\n }\n this.element.textContent = `\\n${sheet.toString()}\\n`\n }\n\n /**\n * Insert RuleList into an element.\n */\n\n insertRules(rules, nativeParent) {\n for (let i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent)\n }\n }\n\n /**\n * Insert a rule into element.\n */\n insertRule(rule, index, nativeParent = this.element.sheet) {\n if (rule.rules) {\n const parent = rule\n let latestNativeParent = nativeParent\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n const insertionIndex = getValidRuleInsertionIndex(nativeParent, index)\n // We need to render the container without children first.\n latestNativeParent = insertRule(\n nativeParent,\n parent.toString({children: false}),\n insertionIndex\n )\n if (latestNativeParent === false) {\n return false\n }\n this.refCssRule(rule, insertionIndex, latestNativeParent)\n }\n this.insertRules(parent.rules, latestNativeParent)\n return latestNativeParent\n }\n\n const ruleStr = rule.toString()\n\n if (!ruleStr) return false\n\n const insertionIndex = getValidRuleInsertionIndex(nativeParent, index)\n const nativeRule = insertRule(nativeParent, ruleStr, insertionIndex)\n if (nativeRule === false) {\n return false\n }\n\n this.hasInsertedRules = true\n this.refCssRule(rule, insertionIndex, nativeRule)\n\n return nativeRule\n }\n\n refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule\n // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule)\n }\n }\n\n /**\n * Delete a rule.\n */\n deleteRule(cssRule) {\n const {sheet} = this.element\n const index = this.indexOf(cssRule)\n if (index === -1) return false\n sheet.deleteRule(index)\n this.cssRules.splice(index, 1)\n return true\n }\n\n /**\n * Get index of a CSS Rule.\n */\n indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule)\n }\n\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n replaceRule(cssRule, rule) {\n const index = this.indexOf(cssRule)\n if (index === -1) return false\n this.element.sheet.deleteRule(index)\n this.cssRules.splice(index, 1)\n return this.insertRule(rule, index)\n }\n\n /**\n * Get all rules elements.\n */\n getRules() {\n return this.element.sheet.cssRules\n }\n}\n","import isInBrowser from 'is-in-browser'\nimport StyleSheet from './StyleSheet'\nimport PluginsRegistry from './PluginsRegistry'\nimport sheets from './sheets'\nimport {plugins as internalPlugins} from './plugins/index'\nimport createGenerateIdDefault from './utils/createGenerateId'\nimport createRule from './utils/createRule'\nimport DomRenderer from './DomRenderer'\n\nlet instanceCounter = 0\n\nexport default class Jss {\n id = instanceCounter++\n\n version = process.env.VERSION\n\n plugins = new PluginsRegistry()\n\n options = {\n id: {minify: false},\n createGenerateId: createGenerateIdDefault,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n }\n\n generateId = createGenerateIdDefault({minify: false})\n\n constructor(options) {\n for (let i = 0; i < internalPlugins.length; i++) {\n this.plugins.use(internalPlugins[i], {queue: 'internal'})\n }\n this.setup(options)\n }\n\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n setup(options = {}) {\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId\n }\n\n if (options.id) {\n this.options.id = {\n ...this.options.id,\n ...options.id\n }\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id)\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer\n }\n\n // eslint-disable-next-line prefer-spread\n if (options.plugins) this.use.apply(this, options.plugins)\n\n return this\n }\n\n /**\n * Create a Style Sheet.\n */\n createStyleSheet(styles, options = {}) {\n let {index} = options\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1\n }\n const sheet = new StyleSheet(styles, {\n ...options,\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index\n })\n this.plugins.onProcessSheet(sheet)\n\n return sheet\n }\n\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n removeStyleSheet(sheet) {\n sheet.detach()\n sheets.remove(sheet)\n return this\n }\n\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n createRule(name, style = {}, options = {}) {\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style)\n }\n\n const ruleOptions = {...options, name, jss: this, Renderer: this.options.Renderer}\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId\n if (!ruleOptions.classes) ruleOptions.classes = {}\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {}\n\n const rule = createRule(name, style, ruleOptions)\n\n if (rule) this.plugins.onProcessRule(rule)\n\n return rule\n }\n\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n use(...plugins) {\n plugins.forEach((plugin) => {\n this.plugins.use(plugin)\n })\n\n return this\n }\n}\n","import Jss from '../Jss'\n\nconst createJss = (options) => new Jss(options)\n\n/**\n * Creates a new instance of Jss.\n */\nexport default createJss\n","import warn from 'tiny-warning'\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\nexport default class SheetsManager {\n length = 0\n\n sheets = new WeakMap()\n\n get size() {\n return this.length\n }\n\n get(key) {\n const entry = this.sheets.get(key)\n return entry && entry.sheet\n }\n\n add(key, sheet) {\n if (this.sheets.has(key)) return\n\n this.length++\n\n this.sheets.set(key, {\n sheet,\n refs: 0\n })\n }\n\n manage(key) {\n const entry = this.sheets.get(key)\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach()\n }\n\n entry.refs++\n\n return entry.sheet\n }\n\n warn(false, \"[JSS] SheetsManager: can't find sheet to manage\")\n\n return undefined\n }\n\n unmanage(key) {\n const entry = this.sheets.get(key)\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--\n\n if (entry.refs === 0) entry.sheet.detach()\n }\n } else {\n warn(false, \"SheetsManager: can't find sheet to unmanage\")\n }\n }\n}\n","/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nconst hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS\nexport default hasCSSTOMSupport\n","/**\n * Extracts a styles object with only props that contain function values.\n */\nexport default function getDynamicStyles(styles) {\n let to = null\n\n for (const key in styles) {\n const value = styles[key]\n const type = typeof value\n\n if (type === 'function') {\n if (!to) to = {}\n to[key] = value\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n const extracted = getDynamicStyles(value)\n if (extracted) {\n if (!to) to = {}\n to[key] = extracted\n }\n }\n }\n\n return to\n}\n","/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\nimport create from './utils/createJss'\n\nexport {default as SheetsRegistry} from './SheetsRegistry'\nexport {default as SheetsManager} from './SheetsManager'\nexport {default as RuleList} from './RuleList'\nexport {default as sheets} from './sheets'\nexport {default as hasCSSTOMSupport} from './utils/hasCSSTOMSupport'\nexport {default as getDynamicStyles} from './utils/getDynamicStyles'\nexport {default as toCssValue} from './utils/toCssValue'\nexport {default as createRule} from './utils/createRule'\nexport {default as createGenerateId} from './utils/createGenerateId'\nexport {create}\nexport default create()\n"],"names":["plainObjectConstrurctor","constructor","cloneStyle","style","Array","isArray","map","newStyle","name","createRule","decl","options","jss","declCopy","rule","plugins","onCreateRule","warning","join","value","by","result","i","length","toCssValue","ignoreImportant","cssValue","getWhitespaceSymbols","format","linebreak","space","indentStr","str","indent","index","toCss","selector","fallbacks","Infinity","fallback","prop","allowEmpty","escapeRegex","nativeEscape","CSS","escape","replace","BaseStyleRule","key","type","isProcessed","sheet","Renderer","renderer","undefined","force","newValue","process","onChangeValue","isEmpty","isDefined","remove","renderable","removeProperty","setProperty","attached","StyleRule","scoped","generateId","selectorText","id","applyTo","json","toJSON","toString","link","opts","hasChanged","setSelector","replaceRule","parent","defaultToStringOptions","children","atRegExp","ConditionalRule","styles","atMatch","match","at","query","rules","RuleList","add","getRule","get","indexOf","addRule","onProcessRule","newRule","keyRegExp","test","nameRegExp","KeyframesRule","frames","nameMatch","refRegExp","findReferencedKeyframe","val","keyframes","replaceRef","refKeyframe","onProcessStyle","KeyframeRule","FontFaceRule","ViewportRule","SimpleRule","keysMap","pluginStyleRule","pluginConditionalRule","pluginKeyframesRule","pluginKeyframeRule","pluginFontFaceRule","pluginViewportRule","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","raw","counter","classes","ruleOptions","register","splice","oldRule","oldIndex","nameOrSelector","unregister","slice","forEach","update","data","updateOne","onUpdate","nextValue","prevValue","css","StyleSheet","deployed","attach","deploy","detach","queue","push","insertRule","deleteRule","addRules","added","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","reduce","plugin","SheetsRegistry","reset","globalThis","window","Math","self","Function","ns","maxRules","createGenerateId","ruleCounter","jssId","prefix","classNamePrefix","String","minify","moduleId","memoize","fn","getPropertyValue","cssRule","attributeStyleMap","err","set","delete","message","getHead","document","querySelector","findHigherSheet","insertionPoint","findHighestSheet","findCommentNode","text","head","childNodes","node","nodeType","nodeValue","trim","findPrevNode","sheets","element","parentNode","nextSibling","comment","insertStyle","nextNode","insertBefore","insertionPointElement","appendChild","getNonce","getAttribute","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","createStyle","el","createElement","textContent","DomRenderer","hasInsertedRules","media","meta","setAttribute","nonce","Boolean","removeChild","insertRules","nativeParent","latestNativeParent","insertionIndex","refCssRule","ruleStr","nativeRule","getRules","instanceCounter","Jss","version","createGenerateIdDefault","isInBrowser","internalPlugins","setup","apply","createStyleSheet","removeStyleSheet","createJss","SheetsManager","WeakMap","entry","has","refs","manage","warn","unmanage","hasCSSTOMSupport","getDynamicStyles","to","extracted","create"],"mappings":"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"}