{"version":3,"file":"styled-components.js","sources":["../src/constants.ts","../../../node_modules/tslib/tslib.es6.js","../src/utils/empties.ts","../src/utils/setToString.ts","../src/utils/errors.ts","../src/utils/error.ts","../src/sheet/GroupedTag.ts","../src/sheet/GroupIDAllocator.ts","../src/sheet/Rehydration.ts","../src/utils/nonce.ts","../src/sheet/dom.ts","../src/sheet/Tag.ts","../src/sheet/Sheet.ts","../../../node_modules/shallowequal/index.js","../../../node_modules/stylis/src/Enum.js","../../../node_modules/stylis/src/Utility.js","../../../node_modules/stylis/src/Tokenizer.js","../../../node_modules/stylis/src/Parser.js","../../../node_modules/stylis/src/Prefixer.js","../../../node_modules/stylis/src/Serializer.js","../../../node_modules/stylis/src/Middleware.js","../src/utils/hash.ts","../src/utils/stylis.ts","../src/models/StyleSheetManager.tsx","../src/models/Keyframes.ts","../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../src/utils/addUnitIfNeeded.ts","../src/utils/getComponentName.ts","../src/utils/hyphenateStyleName.ts","../src/utils/isFunction.ts","../src/utils/isPlainObject.ts","../src/utils/isStatelessFunction.ts","../src/utils/isStyledComponent.ts","../src/utils/flatten.ts","../src/utils/isStaticRules.ts","../src/utils/joinStrings.ts","../src/models/GlobalStyle.ts","../src/models/ThemeProvider.tsx","../src/utils/checkDynamicCreation.ts","../src/utils/determineTheme.ts","../src/utils/generateAlphabeticName.ts","../src/utils/generateComponentId.ts","../src/utils/interleave.ts","../src/constructors/css.ts","../src/constructors/createGlobalStyle.ts","../src/constructors/keyframes.ts","../src/utils/hoist.ts","../src/hoc/withTheme.tsx","../src/models/ServerStyleSheet.tsx","../src/secretInternals.ts","../src/base.ts","../../../node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../src/utils/createWarnTooManyClasses.ts","../src/utils/domElements.ts","../src/utils/escape.ts","../src/utils/isTag.ts","../src/utils/generateDisplayName.ts","../src/utils/mixinDeep.ts","../src/models/ComponentStyle.ts","../src/models/StyledComponent.ts","../src/constructors/constructWithOptions.ts","../src/constructors/styled.tsx","../src/index-standalone.ts"],"sourcesContent":["declare let SC_DISABLE_SPEEDY: boolean | null | undefined;\ndeclare let __VERSION__: string;\n\nexport const SC_ATTR: string =\n  (typeof process !== 'undefined' &&\n    typeof process.env !== 'undefined' &&\n    (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n  'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY = Boolean(\n  typeof SC_DISABLE_SPEEDY === 'boolean'\n    ? SC_DISABLE_SPEEDY\n    : typeof process !== 'undefined' &&\n      typeof process.env !== 'undefined' &&\n      typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' &&\n      process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n    ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false'\n      ? false\n      : process.env.REACT_APP_SC_DISABLE_SPEEDY\n    : typeof process !== 'undefined' &&\n      typeof process.env !== 'undefined' &&\n      typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' &&\n      process.env.SC_DISABLE_SPEEDY !== ''\n    ? process.env.SC_DISABLE_SPEEDY === 'false'\n      ? false\n      : process.env.SC_DISABLE_SPEEDY\n    : process.env.NODE_ENV !== 'production'\n);\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.push(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.push(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Dict } from '../types';\n\nexport const EMPTY_ARRAY = Object.freeze([]) as Readonly<any[]>;\nexport const EMPTY_OBJECT = Object.freeze({}) as Readonly<Dict<any>>;\n","/**\n * If the Object prototype is frozen, the \"toString\" property is non-writable. This means that any objects which inherit this property\n * cannot have the property changed using a \"=\" assignment operator. If using strict mode, attempting that will cause an error. If not using\n * strict mode, attempting that will be silently ignored.\n *\n * If the Object prototype is frozen, inherited non-writable properties can still be shadowed using one of two mechanisms:\n *\n *  1. ES6 class methods: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#methods\n *  2. Using the `Object.defineProperty()` static method:\n *     https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n *\n * However, this project uses Babel to transpile ES6 classes, and transforms ES6 class methods to use the assignment operator instead:\n * https://babeljs.io/docs/babel-plugin-transform-class-properties#options\n *\n * Therefore, the most compatible way to shadow the prototype's \"toString\" property is to define a new \"toString\" property on this object.\n */\nexport function setToString(object: object, toStringFn: () => string) {\n  Object.defineProperty(object, 'toString', { value: toStringFn });\n}\n","export default {\n  '1': 'Cannot create styled-component for component: %s.\\n\\n',\n  '2': \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n  '3': 'Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n',\n  '4': 'The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n',\n  '5': 'The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n',\n  '6': \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n  '7': 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n  '8': 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n  '9': 'Missing document `<head>`\\n\\n',\n  '10': 'Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n',\n  '11': '_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n',\n  '12': 'It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n',\n  '13': '%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n',\n  '14': 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n  '15': \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n  '16': \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n  '17': \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",\n  '18': 'ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`',\n};\n","import { Dict } from '../types';\nimport errorMap from './errors';\n\nconst ERRORS: Dict<any> = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args: [string, ...any]) {\n  let a = args[0];\n  const b = [];\n\n  for (let c = 1, len = args.length; c < len; c += 1) {\n    b.push(args[c]);\n  }\n\n  b.forEach(d => {\n    a = a.replace(/%[a-z]/, d);\n  });\n\n  return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n  code: string | number,\n  ...interpolations: any[]\n) {\n  if (process.env.NODE_ENV === 'production') {\n    return new Error(\n      `An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#${code} for more information.${\n        interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n      }`\n    );\n  } else {\n    return new Error(format(ERRORS[code], ...interpolations).trim());\n  }\n}\n","import { SPLITTER } from '../constants';\nimport styledError from '../utils/error';\nimport { GroupedTag, Tag } from './types';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag) => {\n  return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nconst DefaultGroupedTag = class DefaultGroupedTag implements GroupedTag {\n  groupSizes: Uint32Array;\n  length: number;\n  tag: Tag;\n\n  constructor(tag: Tag) {\n    this.groupSizes = new Uint32Array(BASE_SIZE);\n    this.length = BASE_SIZE;\n    this.tag = tag;\n  }\n\n  indexOfGroup(group: number) {\n    let index = 0;\n    for (let i = 0; i < group; i++) {\n      index += this.groupSizes[i];\n    }\n\n    return index;\n  }\n\n  insertRules(group: number, rules: string[]) {\n    if (group >= this.groupSizes.length) {\n      const oldBuffer = this.groupSizes;\n      const oldSize = oldBuffer.length;\n\n      let newSize = oldSize;\n      while (group >= newSize) {\n        newSize <<= 1;\n        if (newSize < 0) {\n          throw styledError(16, `${group}`);\n        }\n      }\n\n      this.groupSizes = new Uint32Array(newSize);\n      this.groupSizes.set(oldBuffer);\n      this.length = newSize;\n\n      for (let i = oldSize; i < newSize; i++) {\n        this.groupSizes[i] = 0;\n      }\n    }\n\n    let ruleIndex = this.indexOfGroup(group + 1);\n\n    for (let i = 0, l = rules.length; i < l; i++) {\n      if (this.tag.insertRule(ruleIndex, rules[i])) {\n        this.groupSizes[group]++;\n        ruleIndex++;\n      }\n    }\n  }\n\n  clearGroup(group: number) {\n    if (group < this.length) {\n      const length = this.groupSizes[group];\n      const startIndex = this.indexOfGroup(group);\n      const endIndex = startIndex + length;\n\n      this.groupSizes[group] = 0;\n\n      for (let i = startIndex; i < endIndex; i++) {\n        this.tag.deleteRule(startIndex);\n      }\n    }\n  }\n\n  getGroup(group: number) {\n    let css = '';\n    if (group >= this.length || this.groupSizes[group] === 0) {\n      return css;\n    }\n\n    const length = this.groupSizes[group];\n    const startIndex = this.indexOfGroup(group);\n    const endIndex = startIndex + length;\n\n    for (let i = startIndex; i < endIndex; i++) {\n      css += `${this.tag.getRule(i)}${SPLITTER}`;\n    }\n\n    return css;\n  }\n};\n","import styledError from '../utils/error';\n\nconst MAX_SMI = 1 << (31 - 1);\n\nlet groupIDRegister: Map<string, number> = new Map();\nlet reverseRegister: Map<number, string> = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n  groupIDRegister = new Map();\n  reverseRegister = new Map();\n  nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n  if (groupIDRegister.has(id)) {\n    return groupIDRegister.get(id) as any;\n  }\n\n  while (reverseRegister.has(nextFreeGroup)) {\n    nextFreeGroup++;\n  }\n\n  const group = nextFreeGroup++;\n\n  if (process.env.NODE_ENV !== 'production' && ((group | 0) < 0 || group > MAX_SMI)) {\n    throw styledError(16, `${group}`);\n  }\n\n  groupIDRegister.set(id, group);\n  reverseRegister.set(group, id);\n  return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n  return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n  // move pointer\n  nextFreeGroup = group + 1;\n\n  groupIDRegister.set(id, group);\n  reverseRegister.set(group, id);\n};\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION, SPLITTER } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n  const tag = sheet.getTag();\n  const { length } = tag;\n\n  let css = '';\n  for (let group = 0; group < length; group++) {\n    const id = getIdForGroup(group);\n    if (id === undefined) continue;\n\n    const names = sheet.names.get(id);\n    const rules = tag.getGroup(group);\n    if (names === undefined || rules.length === 0) continue;\n\n    const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n    let content = '';\n    if (names !== undefined) {\n      names.forEach(name => {\n        if (name.length > 0) {\n          content += `${name},`;\n        }\n      });\n    }\n\n    // NOTE: It's easier to collect rules and have the marker\n    // after the actual rules to simplify the rehydration\n    css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n  }\n\n  return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n  const names = content.split(',');\n  let name;\n\n  for (let i = 0, l = names.length; i < l; i++) {\n    if ((name = names[i])) {\n      sheet.registerName(id, name);\n    }\n  }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n  const parts = (style.textContent ?? '').split(SPLITTER);\n  const rules: string[] = [];\n\n  for (let i = 0, l = parts.length; i < l; i++) {\n    const part = parts[i].trim();\n    if (!part) continue;\n\n    const marker = part.match(MARKER_RE);\n\n    if (marker) {\n      const group = parseInt(marker[1], 10) | 0;\n      const id = marker[2];\n\n      if (group !== 0) {\n        // Rehydrate componentId to group index mapping\n        setGroupForId(id, group);\n        // Rehydrate names and rules\n        // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n        rehydrateNamesFromContent(sheet, id, marker[3]);\n        sheet.getTag().insertRules(group, rules);\n      }\n\n      rules.length = 0;\n    } else {\n      rules.push(part);\n    }\n  }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n  const nodes = document.querySelectorAll(SELECTOR);\n\n  for (let i = 0, l = nodes.length; i < l; i++) {\n    const node = nodes[i] as any as HTMLStyleElement;\n    if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n      rehydrateSheetFromTag(sheet, node);\n\n      if (node.parentNode) {\n        node.parentNode.removeChild(node);\n      }\n    }\n  }\n};\n","declare let __webpack_nonce__: string;\n\nexport default function getNonce() {\n  return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport styledError from '../utils/error';\nimport getNonce from '../utils/nonce';\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: HTMLElement): void | HTMLStyleElement => {\n  const arr = Array.from(target.querySelectorAll<HTMLStyleElement>(`style[${SC_ATTR}]`));\n\n  return arr[arr.length - 1];\n};\n\n/** Create a style element inside `target` or <head> after the last */\nexport const makeStyleTag = (target?: HTMLElement | undefined): HTMLStyleElement => {\n  const head = document.head;\n  const parent = target || head;\n  const style = document.createElement('style');\n  const prevStyle = findLastStyleTag(parent);\n  const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n  style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n  style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n  const nonce = getNonce();\n\n  if (nonce) style.setAttribute('nonce', nonce);\n\n  parent.insertBefore(style, nextSibling);\n\n  return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n  if (tag.sheet) {\n    return tag.sheet as any as CSSStyleSheet;\n  }\n\n  // Avoid Firefox quirk where the style element might not have a sheet property\n  const { styleSheets } = document;\n  for (let i = 0, l = styleSheets.length; i < l; i++) {\n    const sheet = styleSheets[i];\n    if (sheet.ownerNode === tag) {\n      return sheet as any as CSSStyleSheet;\n    }\n  }\n\n  throw styledError(17);\n};\n","import { getSheet, makeStyleTag } from './dom';\nimport { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions) => {\n  if (isServer) {\n    return new VirtualTag(target);\n  } else if (useCSSOMInjection) {\n    return new CSSOMTag(target);\n  } else {\n    return new TextTag(target);\n  }\n};\n\nexport const CSSOMTag = class CSSOMTag implements Tag {\n  element: HTMLStyleElement;\n\n  sheet: CSSStyleSheet;\n\n  length: number;\n\n  constructor(target?: HTMLElement | undefined) {\n    this.element = makeStyleTag(target);\n\n    // Avoid Edge bug where empty style elements don't create sheets\n    this.element.appendChild(document.createTextNode(''));\n\n    this.sheet = getSheet(this.element);\n    this.length = 0;\n  }\n\n  insertRule(index: number, rule: string): boolean {\n    try {\n      this.sheet.insertRule(rule, index);\n      this.length++;\n      return true;\n    } catch (_error) {\n      return false;\n    }\n  }\n\n  deleteRule(index: number): void {\n    this.sheet.deleteRule(index);\n    this.length--;\n  }\n\n  getRule(index: number): string {\n    const rule = this.sheet.cssRules[index];\n\n    // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n    if (rule && rule.cssText) {\n      return rule.cssText;\n    } else {\n      return '';\n    }\n  }\n};\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport const TextTag = class TextTag implements Tag {\n  element: HTMLStyleElement;\n  nodes: NodeListOf<Node>;\n  length: number;\n\n  constructor(target?: HTMLElement | undefined) {\n    this.element = makeStyleTag(target);\n    this.nodes = this.element.childNodes;\n    this.length = 0;\n  }\n\n  insertRule(index: number, rule: string) {\n    if (index <= this.length && index >= 0) {\n      const node = document.createTextNode(rule);\n      const refNode = this.nodes[index];\n      this.element.insertBefore(node, refNode || null);\n      this.length++;\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  deleteRule(index: number) {\n    this.element.removeChild(this.nodes[index]);\n    this.length--;\n  }\n\n  getRule(index: number) {\n    if (index < this.length) {\n      return this.nodes[index].textContent as string;\n    } else {\n      return '';\n    }\n  }\n};\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport const VirtualTag = class VirtualTag implements Tag {\n  rules: string[];\n\n  length: number;\n\n  constructor(_target?: HTMLElement | undefined) {\n    this.rules = [];\n    this.length = 0;\n  }\n\n  insertRule(index: number, rule: string) {\n    if (index <= this.length) {\n      this.rules.splice(index, 0, rule);\n      this.length++;\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  deleteRule(index: number) {\n    this.rules.splice(index, 1);\n    this.length--;\n  }\n\n  getRule(index: number) {\n    if (index < this.length) {\n      return this.rules[index];\n    } else {\n      return '';\n    }\n  }\n};\n","import { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { setToString } from '../utils/setToString';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n  isServer?: boolean;\n  useCSSOMInjection?: boolean;\n  target?: HTMLElement | undefined;\n};\n\ntype GlobalStylesAllocationMap = {\n  [key: string]: number;\n};\ntype NamesAllocationMap = Map<string, Set<string>>;\n\nconst defaultOptions: SheetOptions = {\n  isServer: !IS_BROWSER,\n  useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n  gs: GlobalStylesAllocationMap;\n  names: NamesAllocationMap;\n  options: SheetOptions;\n  server: boolean;\n  tag?: GroupedTag | undefined;\n\n  /** Register a group ID to give it an index */\n  static registerId(id: string): number {\n    return getGroupForId(id);\n  }\n\n  constructor(\n    options: SheetConstructorArgs = EMPTY_OBJECT as Object,\n    globalStyles: GlobalStylesAllocationMap = {},\n    names?: NamesAllocationMap | undefined\n  ) {\n    this.options = {\n      ...defaultOptions,\n      ...options,\n    };\n\n    this.gs = globalStyles;\n    this.names = new Map(names as NamesAllocationMap);\n    this.server = !!options.isServer;\n\n    // We rehydrate only once and use the sheet that is created first\n    if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n      SHOULD_REHYDRATE = false;\n      rehydrateSheet(this);\n    }\n\n    setToString(this, () => outputSheet(this));\n  }\n\n  reconstructWithOptions(options: SheetConstructorArgs, withNames = true) {\n    return new StyleSheet(\n      { ...this.options, ...options },\n      this.gs,\n      (withNames && this.names) || undefined\n    );\n  }\n\n  allocateGSInstance(id: string) {\n    return (this.gs[id] = (this.gs[id] || 0) + 1);\n  }\n\n  /** Lazily initialises a GroupedTag for when it's actually needed */\n  getTag() {\n    return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n  }\n\n  /** Check whether a name is known for caching */\n  hasNameForId(id: string, name: string): boolean {\n    return this.names.has(id) && (this.names.get(id) as any).has(name);\n  }\n\n  /** Mark a group's name as known for caching */\n  registerName(id: string, name: string) {\n    getGroupForId(id);\n\n    if (!this.names.has(id)) {\n      const groupNames = new Set<string>();\n      groupNames.add(name);\n      this.names.set(id, groupNames);\n    } else {\n      (this.names.get(id) as any).add(name);\n    }\n  }\n\n  /** Insert new rules which also marks the name as known */\n  insertRules(id: string, name: string, rules: string | string[]) {\n    this.registerName(id, name);\n    this.getTag().insertRules(getGroupForId(id), rules);\n  }\n\n  /** Clears all cached names for a given group ID */\n  clearNames(id: string) {\n    if (this.names.has(id)) {\n      (this.names.get(id) as any).clear();\n    }\n  }\n\n  /** Clears all rules for a given group ID */\n  clearRules(id: string) {\n    this.getTag().clearGroup(getGroupForId(id));\n    this.clearNames(id);\n  }\n\n  /** Clears the entire tag which deletes all rules but not its names */\n  clearTag() {\n    // NOTE: This does not clear the names, since it's only used during SSR\n    // so that we can continuously output only new rules\n    this.tag = undefined;\n  }\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n  var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n  if (ret !== void 0) {\n    return !!ret;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n  // Test for A's keys different from B.\n  for (var idx = 0; idx < keysA.length; idx++) {\n    var key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    var valueA = objA[key];\n    var valueB = objB[key];\n\n    ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n    if (ret === false || (ret === void 0 && valueA !== valueB)) {\n      return false;\n    }\n  }\n\n  return true;\n};\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","export const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string) => {\n  let i = x.length;\n\n  while (i) {\n    h = (h * 33) ^ x.charCodeAt(--i);\n  }\n\n  return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string) => {\n  return phash(SEED, x);\n};\n","import * as stylis from 'stylis';\nimport { Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { phash, SEED } from './hash';\n\nconst AMP_REGEX = /&/g;\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\nexport type ICreateStylisInstance = {\n  options?: { namespace?: string | undefined; prefix?: boolean | undefined } | undefined;\n  plugins?: stylis.Middleware[] | undefined;\n};\n\n/**\n * Takes an element and recurses through it's rules added the namespace to the start of each selector.\n * Takes into account media queries by recursing through child rules if they are present.\n */\nfunction recursivelySetNamepace(compiled: stylis.Element[], namespace: String): stylis.Element[] {\n  return compiled.map(rule => {\n    if (rule.type === 'rule') {\n      // add the namespace to the start\n      rule.value = `${namespace} ${rule.value}`;\n      // add the namespace after each comma for subsequent selectors.\n      // @ts-expect-error we target modern browsers but intentionally transpile to ES5 for speed\n      rule.value = rule.value.replaceAll(',', `,${namespace} `);\n      rule.props = (rule.props as string[]).map(prop => {\n        return `${namespace} ${prop}`;\n      });\n    }\n\n    if (Array.isArray(rule.children) && rule.type !== '@keyframes') {\n      rule.children = recursivelySetNamepace(rule.children, namespace);\n    }\n    return rule;\n  });\n}\n\nexport default function createStylisInstance(\n  {\n    options = EMPTY_OBJECT as object,\n    plugins = EMPTY_ARRAY as unknown as stylis.Middleware[],\n  }: ICreateStylisInstance = EMPTY_OBJECT as object\n) {\n  let _componentId: string;\n  let _selector: string;\n  let _selectorRegexp: RegExp;\n\n  const selfReferenceReplacer: Parameters<String['replace']>[1] = (match, offset, string) => {\n    if (\n      /**\n       * We only want to refer to the static class directly in the following scenarios:\n       *\n       * 1. The selector is alone on the line `& { color: red; }`\n       * 2. The selector is part of a self-reference selector `& + & { color: red; }`\n       */\n      string === _selector ||\n      (string.startsWith(_selector) &&\n        string.endsWith(_selector) &&\n        string.replaceAll(_selector, '').length > 0)\n    ) {\n      return `.${_componentId}`;\n    }\n\n    return match;\n  };\n\n  /**\n   * When writing a style like\n   *\n   * & + & {\n   *   color: red;\n   * }\n   *\n   * The second ampersand should be a reference to the static component class. stylis\n   * has no knowledge of static class so we have to intelligently replace the base selector.\n   *\n   * https://github.com/thysultan/stylis.js/tree/v4.0.2#abstract-syntax-structure\n   */\n  const selfReferenceReplacementPlugin: stylis.Middleware = element => {\n    if (element.type === stylis.RULESET && element.value.includes('&')) {\n      (element.props as string[])[0] = element.props[0]\n        // catch any hanging references that stylis missed\n        .replace(AMP_REGEX, _selector)\n        .replace(_selectorRegexp, selfReferenceReplacer);\n    }\n  };\n\n  const middlewares = plugins.slice();\n\n  middlewares.push(selfReferenceReplacementPlugin);\n\n  /**\n   * Enables automatic vendor-prefixing for styles.\n   */\n  if (options.prefix) {\n    middlewares.push(stylis.prefixer);\n  }\n\n  middlewares.push(stylis.stringify);\n\n  const stringifyRules: Stringifier = (\n    css: string,\n    selector = '',\n    /**\n     * This \"prefix\" referes to a _selector_ prefix.\n     */\n    prefix = '',\n    componentId = '&'\n  ) => {\n    // stylis has no concept of state to be passed to plugins\n    // but since JS is single-threaded, we can rely on that to ensure\n    // these properties stay in sync with the current stylis run\n    _componentId = componentId;\n    _selector = selector;\n    _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n\n    const flatCSS = css.replace(COMMENT_REGEX, '');\n    let compiled = stylis.compile(\n      prefix || selector ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS\n    );\n\n    if (options.namespace) {\n      compiled = recursivelySetNamepace(compiled, options.namespace);\n    }\n\n    const stack: string[] = [];\n\n    stylis.serialize(\n      compiled,\n      stylis.middleware(middlewares.concat(stylis.rulesheet(value => stack.push(value))))\n    );\n\n    return stack;\n  };\n\n  stringifyRules.hash = plugins.length\n    ? plugins\n        .reduce((acc, plugin) => {\n          if (!plugin.name) {\n            throwStyledError(15);\n          }\n\n          return phash(acc, plugin.name);\n        }, SEED)\n        .toString()\n    : '';\n\n  return stringifyRules;\n}\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport type stylis from 'stylis';\nimport StyleSheet from '../sheet';\nimport { ShouldForwardProp, Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\nexport const mainSheet: StyleSheet = new StyleSheet();\nexport const mainStylis: Stringifier = createStylisInstance();\n\nexport type IStyleSheetContext = {\n  shouldForwardProp?: ShouldForwardProp<'web'> | undefined;\n  styleSheet: StyleSheet;\n  stylis: Stringifier;\n};\n\nexport const StyleSheetContext = React.createContext<IStyleSheetContext>({\n  shouldForwardProp: undefined,\n  styleSheet: mainSheet,\n  stylis: mainStylis,\n});\n\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\n\nexport type IStylisContext = Stringifier | void;\nexport const StylisContext = React.createContext<IStylisContext>(undefined);\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport function useStyleSheetContext() {\n  return useContext(StyleSheetContext);\n}\n\nexport type IStyleSheetManager = React.PropsWithChildren<{\n  /**\n   * If desired, you can pass this prop to disable \"speedy\" insertion mode, which\n   * uses the browser [CSSOM APIs](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n   * When disabled, rules are inserted as simple text into style blocks.\n   */\n  disableCSSOMInjection?: undefined | boolean;\n  /**\n   * If you are working exclusively with modern browsers, vendor prefixes can often be omitted\n   * to reduce the weight of CSS on the page.\n   */\n  enableVendorPrefixes?: undefined | boolean;\n  /**\n   * Provide an optional selector to be prepended to all generated style rules.\n   */\n  namespace?: undefined | string;\n  /**\n   * Create and provide your own `StyleSheet` if necessary for advanced SSR scenarios.\n   */\n  sheet?: undefined | StyleSheet;\n  /**\n   * Starting in v6, styled-components no longer does its own prop validation\n   * and recommends use of transient props \"$prop\" to pass style-only props to\n   * components. If for some reason you are not able to use transient props, a\n   * prop validation function can be provided via `StyleSheetManager`, such as\n   * `@emotion/is-prop-valid`.\n   *\n   * When the return value is `true`, props will be forwarded to the DOM/underlying\n   * component. If return value is `false`, the prop will be discarded after styles\n   * are calculated.\n   *\n   * Manually composing `styled.{element}.withConfig({shouldForwardProp})` will\n   * override this default.\n   */\n  shouldForwardProp?: undefined | IStyleSheetContext['shouldForwardProp'];\n  /**\n   * An array of plugins to be run by stylis (style processor) during compilation.\n   * Check out [what's available on npm*](https://www.npmjs.com/search?q=keywords%3Astylis).\n   *\n   * \\* The plugin(s) must be compatible with stylis v4 or above.\n   */\n  stylisPlugins?: undefined | stylis.Middleware[];\n  /**\n   * Provide an alternate DOM node to host generated styles; useful for iframes.\n   */\n  target?: undefined | HTMLElement;\n}>;\n\nexport function StyleSheetManager(props: IStyleSheetManager): JSX.Element {\n  const [plugins, setPlugins] = useState(props.stylisPlugins);\n  const { styleSheet } = useStyleSheetContext();\n\n  const resolvedStyleSheet = useMemo(() => {\n    let sheet = styleSheet;\n\n    if (props.sheet) {\n      sheet = props.sheet;\n    } else if (props.target) {\n      sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n    }\n\n    if (props.disableCSSOMInjection) {\n      sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n    }\n\n    return sheet;\n  }, [props.disableCSSOMInjection, props.sheet, props.target, styleSheet]);\n\n  const stylis = useMemo(\n    () =>\n      createStylisInstance({\n        options: { namespace: props.namespace, prefix: props.enableVendorPrefixes },\n        plugins,\n      }),\n    [props.enableVendorPrefixes, props.namespace, plugins]\n  );\n\n  useEffect(() => {\n    if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n  }, [props.stylisPlugins]);\n\n  const styleSheetContextValue = useMemo(\n    () => ({\n      shouldForwardProp: props.shouldForwardProp,\n      styleSheet: resolvedStyleSheet,\n      stylis,\n    }),\n    [props.shouldForwardProp, resolvedStyleSheet, stylis]\n  );\n\n  return (\n    <StyleSheetContext.Provider value={styleSheetContextValue}>\n      <StylisContext.Provider value={stylis}>{props.children}</StylisContext.Provider>\n    </StyleSheetContext.Provider>\n  );\n}\n","import StyleSheet from '../sheet';\nimport { Keyframes as KeyframesType, Stringifier } from '../types';\nimport styledError from '../utils/error';\nimport { setToString } from '../utils/setToString';\nimport { mainStylis } from './StyleSheetManager';\n\nexport default class Keyframes implements KeyframesType {\n  id: string;\n  name: string;\n  rules: string;\n\n  constructor(name: string, rules: string) {\n    this.name = name;\n    this.id = `sc-keyframes-${name}`;\n    this.rules = rules;\n\n    setToString(this, () => {\n      throw styledError(12, String(this.name));\n    });\n  }\n\n  inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = mainStylis): void => {\n    const resolvedName = this.name + stylisInstance.hash;\n\n    if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n      styleSheet.insertRules(\n        this.id,\n        resolvedName,\n        stylisInstance(this.rules, resolvedName, '@keyframes')\n      );\n    }\n  };\n\n  getName(stylisInstance: Stringifier = mainStylis): string {\n    return this.name + stylisInstance.hash;\n  }\n}\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any) {\n  // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n  if (value == null || typeof value === 'boolean' || value === '') {\n    return '';\n  }\n\n  if (typeof value === 'number' && value !== 0 && !(name in unitless) && !name.startsWith('--')) {\n    return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers except for CSS variables\n  }\n\n  return String(value).trim();\n}\n","import { StyledTarget } from '../types';\n\nexport default function getComponentName(target: StyledTarget<any>) {\n  return (\n    (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n    (target as Exclude<StyledTarget<any>, string>).displayName ||\n    (target as Function).name ||\n    'Component'\n  );\n}\n","const isUpper = (c: string) => c >= 'A' && c <= 'Z';\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nexport default function hyphenateStyleName(string: string): string {\n  let output = '';\n\n  for (let i = 0; i < string.length; i++) {\n    const c = string[i];\n    // Check for CSS variable prefix\n    if (i === 1 && c === '-' && string[0] === '-') {\n      return string;\n    }\n\n    if (isUpper(c)) {\n      output += '-' + c.toLowerCase();\n    } else {\n      output += c;\n    }\n  }\n\n  return output.startsWith('ms-') ? '-' + output : output;\n}\n","export default function isFunction(test: any): test is Function {\n  return typeof test === 'function';\n}\n","export default function isPlainObject(x: any): x is Record<any, any> {\n  return (\n    x !== null &&\n    typeof x === 'object' &&\n    x.constructor.name === Object.name &&\n    /* check for reasonable markers that the object isn't an element for react & preact/compat */\n    !('props' in x && x.$$typeof)\n  );\n}\n","import isFunction from './isFunction';\n\nexport default function isStatelessFunction(test: any): test is Function {\n  return isFunction(test) && !(test.prototype && test.prototype.isReactComponent);\n}\n","import { StyledComponentBrand } from '../types';\n\nexport default function isStyledComponent(target: any): target is StyledComponentBrand {\n  return typeof target === 'object' && 'styledComponentId' in target;\n}\n","import Keyframes from '../models/Keyframes';\nimport StyleSheet from '../sheet';\nimport {\n  AnyComponent,\n  Dict,\n  ExecutionContext,\n  Interpolation,\n  IStyledComponent,\n  RuleSet,\n  Stringifier,\n  StyledObject,\n} from '../types';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { EMPTY_ARRAY } from './empties';\nimport getComponentName from './getComponentName';\nimport hyphenate from './hyphenateStyleName';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\nimport isStatelessFunction from './isStatelessFunction';\nimport isStyledComponent from './isStyledComponent';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = (chunk: any): chunk is undefined | null | false | '' =>\n  chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Dict<any>): string[] => {\n  const rules = [];\n\n  for (const key in obj) {\n    const val = obj[key];\n    if (!obj.hasOwnProperty(key) || isFalsish(val)) continue;\n\n    // @ts-expect-error Property 'isCss' does not exist on type 'any[]'\n    if ((Array.isArray(val) && val.isCss) || isFunction(val)) {\n      rules.push(`${hyphenate(key)}:`, val, ';');\n    } else if (isPlainObject(val)) {\n      rules.push(`${key} {`, ...objToCssArray(val), '}');\n    } else {\n      rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, val)};`);\n    }\n  }\n\n  return rules;\n};\n\nexport default function flatten<Props extends object>(\n  chunk: Interpolation<object>,\n  executionContext?: (ExecutionContext & Props) | undefined,\n  styleSheet?: StyleSheet | undefined,\n  stylisInstance?: Stringifier | undefined\n): RuleSet<Props> {\n  if (isFalsish(chunk)) {\n    return [];\n  }\n\n  /* Handle other components */\n  if (isStyledComponent(chunk)) {\n    return [`.${(chunk as unknown as IStyledComponent<'web', any>).styledComponentId}`];\n  }\n\n  /* Either execute or defer the function */\n  if (isFunction(chunk)) {\n    if (isStatelessFunction(chunk) && executionContext) {\n      const result = chunk(executionContext);\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        typeof result === 'object' &&\n        !Array.isArray(result) &&\n        !(result instanceof Keyframes) &&\n        !isPlainObject(result) &&\n        result !== null\n      ) {\n        console.error(\n          `${getComponentName(\n            chunk as AnyComponent\n          )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n        );\n      }\n\n      return flatten<Props>(result, executionContext, styleSheet, stylisInstance);\n    } else {\n      return [chunk as unknown as IStyledComponent<'web'>];\n    }\n  }\n\n  if (chunk instanceof Keyframes) {\n    if (styleSheet) {\n      chunk.inject(styleSheet, stylisInstance);\n      return [chunk.getName(stylisInstance)];\n    } else {\n      return [chunk];\n    }\n  }\n\n  /* Handle objects */\n  if (isPlainObject(chunk)) {\n    return objToCssArray(chunk as StyledObject<Props>);\n  }\n\n  if (!Array.isArray(chunk)) {\n    return [chunk.toString()];\n  }\n\n  return flatMap(chunk, chunklet =>\n    flatten<Props>(chunklet, executionContext, styleSheet, stylisInstance)\n  );\n}\n\nfunction flatMap<T, U>(array: T[], transform: (value: T, index: number, array: T[]) => U[]): U[] {\n  return Array.prototype.concat.apply(EMPTY_ARRAY, array.map(transform));\n}\n","import { RuleSet } from '../types';\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\n\nexport default function isStaticRules<Props extends object>(rules: RuleSet<Props>) {\n  for (let i = 0; i < rules.length; i += 1) {\n    const rule = rules[i];\n\n    if (isFunction(rule) && !isStyledComponent(rule)) {\n      // functions are allowed to be static if they're just being\n      // used to get the classname of a nested styled component\n      return false;\n    }\n  }\n\n  return true;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport function joinStrings(a?: string | undefined, b?: string | undefined): string {\n  return a && b ? `${a} ${b}` : a || b || '';\n}\n\nexport function joinStringArray(arr: string[], sep?: string | undefined): string {\n  if (arr.length === 0) {\n    return '';\n  }\n\n  let result = arr[0];\n  for (let i = 1; i < arr.length; i++) {\n    result += sep ? sep + arr[i] : arr[i];\n  }\n  return result;\n}\n","import StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray } from '../utils/joinStrings';\n\nexport default class GlobalStyle<Props extends object> {\n  componentId: string;\n  isStatic: boolean;\n  rules: RuleSet<Props>;\n\n  constructor(rules: RuleSet<Props>, componentId: string) {\n    this.rules = rules;\n    this.componentId = componentId;\n    this.isStatic = isStaticRules(rules);\n\n    // pre-register the first instance to ensure global styles\n    // load before component ones\n    StyleSheet.registerId(this.componentId + 1);\n  }\n\n  createStyles(\n    instance: number,\n    executionContext: ExecutionContext & Props,\n    styleSheet: StyleSheet,\n    stylis: Stringifier\n  ): void {\n    const flatCSS = joinStringArray(\n      flatten(this.rules as RuleSet<object>, executionContext, styleSheet, stylis) as string[]\n    );\n    const css = stylis(flatCSS, '');\n    const id = this.componentId + instance;\n\n    // NOTE: We use the id as a name as well, since these rules never change\n    styleSheet.insertRules(id, id, css);\n  }\n\n  removeStyles(instance: number, styleSheet: StyleSheet): void {\n    styleSheet.clearRules(this.componentId + instance);\n  }\n\n  renderStyles(\n    instance: number,\n    executionContext: ExecutionContext & Props,\n    styleSheet: StyleSheet,\n    stylis: Stringifier\n  ): void {\n    if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n    // NOTE: Remove old styles, then inject the new ones\n    this.removeStyles(instance, styleSheet);\n    this.createStyles(instance, executionContext, styleSheet, stylis);\n  }\n}\n","import React, { useContext, useMemo } from 'react';\nimport styledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\n/**\n * Override DefaultTheme to get accurate typings for your project.\n *\n * ```\n * // create styled-components.d.ts in your project source\n * // if it isn't being picked up, check tsconfig compilerOptions.types\n * import type { CSSProp } from \"styled-components\";\n * import Theme from './theme';\n *\n * type ThemeType = typeof Theme;\n *\n * declare module \"styled-components\" {\n *  export interface DefaultTheme extends ThemeType {}\n * }\n *\n * declare module \"react\" {\n *  interface DOMAttributes<T> {\n *    css?: CSSProp;\n *  }\n * }\n * ```\n */\nexport interface DefaultTheme {\n  [key: string]: any;\n}\n\ntype ThemeFn = (outerTheme?: DefaultTheme | undefined) => DefaultTheme;\ntype ThemeArgument = DefaultTheme | ThemeFn;\n\ntype Props = {\n  children?: React.ReactNode;\n  theme: ThemeArgument;\n};\n\nexport const ThemeContext = React.createContext<DefaultTheme | undefined>(undefined);\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: DefaultTheme | undefined): DefaultTheme {\n  if (!theme) {\n    throw styledError(14);\n  }\n\n  if (isFunction(theme)) {\n    const themeFn = theme as ThemeFn;\n    const mergedTheme = themeFn(outerTheme);\n\n    if (\n      process.env.NODE_ENV !== 'production' &&\n      (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n    ) {\n      throw styledError(7);\n    }\n\n    return mergedTheme;\n  }\n\n  if (Array.isArray(theme) || typeof theme !== 'object') {\n    throw styledError(8);\n  }\n\n  return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Returns the current theme (as provided by the closest ancestor `ThemeProvider`.)\n *\n * If no `ThemeProvider` is found, the function will error. If you need access to the theme in an\n * uncertain composition scenario, `React.useContext(ThemeContext)` will not emit an error if there\n * is no `ThemeProvider` ancestor.\n */\nexport function useTheme(): DefaultTheme {\n  const theme = useContext(ThemeContext);\n\n  if (!theme) {\n    throw styledError(18);\n  }\n\n  return theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props): JSX.Element | null {\n  const outerTheme = React.useContext(ThemeContext);\n  const themeContext = useMemo(\n    () => mergeTheme(props.theme, outerTheme),\n    [props.theme, outerTheme]\n  );\n\n  if (!props.children) {\n    return null;\n  }\n\n  return <ThemeContext.Provider value={themeContext}>{props.children}</ThemeContext.Provider>;\n}\n","import { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string | undefined) => {\n  if (process.env.NODE_ENV !== 'production') {\n    const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n    const message =\n      `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n      \"You may see this warning because you've called styled inside another component.\\n\" +\n      'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n    // If a hook is called outside of a component:\n    // React 17 and earlier throw an error\n    // React 18 and above use console.error\n\n    const originalConsoleError = console.error;\n    try {\n      let didNotCallInvalidHook = true;\n      console.error = (consoleErrorMessage, ...consoleErrorArgs) => {\n        // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n        // be called outside of a React component.\n        if (invalidHookCallRe.test(consoleErrorMessage)) {\n          didNotCallInvalidHook = false;\n          // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n          seen.delete(message);\n        } else {\n          originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n        }\n      };\n      // We purposefully call `useRef` outside of a component and expect it to throw\n      // If it doesn't, then we're inside another component.\n      useRef();\n\n      if (didNotCallInvalidHook && !seen.has(message)) {\n        console.warn(message);\n        seen.add(message);\n      }\n    } catch (error) {\n      // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n      // be called outside of a React component.\n      if (invalidHookCallRe.test((error as Error).message)) {\n        // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n        seen.delete(message);\n      }\n    } finally {\n      console.error = originalConsoleError;\n    }\n  }\n};\n","import { DefaultTheme, ExecutionProps } from '../types';\nimport { EMPTY_OBJECT } from './empties';\n\nexport default function determineTheme(\n  props: ExecutionProps,\n  providedTheme?: DefaultTheme | undefined,\n  defaultProps: { theme?: DefaultTheme | undefined } = EMPTY_OBJECT\n): DefaultTheme | undefined {\n  return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n}\n","const AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number) => String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number) {\n  let name = '';\n  let x;\n\n  /* get a char and divide by alphabet-length */\n  for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n    name = getAlphabeticChar(x % charsLength) + name;\n  }\n\n  return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","import generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default function generateComponentId(str: string) {\n  return generateAlphabeticName(hash(str) >>> 0);\n}\n","import { Interpolation } from '../types';\n\nexport default function interleave<Props extends object>(\n  strings: readonly string[],\n  interpolations: Interpolation<Props>[]\n): Interpolation<Props>[] {\n  const result: Interpolation<Props>[] = [strings[0]];\n\n  for (let i = 0, len = interpolations.length; i < len; i += 1) {\n    result.push(interpolations[i], strings[i + 1]);\n  }\n\n  return result;\n}\n","import {\n  BaseObject,\n  Interpolation,\n  NoInfer,\n  RuleSet,\n  StyledObject,\n  StyleFunction,\n  Styles,\n} from '../types';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport flatten from '../utils/flatten';\nimport interleave from '../utils/interleave';\nimport isFunction from '../utils/isFunction';\nimport isPlainObject from '../utils/isPlainObject';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = <T extends RuleSet<any>>(arg: T): T & { isCss: true } =>\n  Object.assign(arg, { isCss: true } as const);\n\nfunction css(styles: Styles<object>, ...interpolations: Interpolation<object>[]): RuleSet<object>;\nfunction css<Props extends object>(\n  styles: Styles<NoInfer<Props>>,\n  ...interpolations: Interpolation<NoInfer<Props>>[]\n): RuleSet<NoInfer<Props>>;\nfunction css<Props extends object = BaseObject>(\n  styles: Styles<NoInfer<Props>>,\n  ...interpolations: Interpolation<NoInfer<Props>>[]\n): RuleSet<NoInfer<Props>> {\n  if (isFunction(styles) || isPlainObject(styles)) {\n    const styleFunctionOrObject = styles as StyleFunction<Props> | StyledObject<Props>;\n\n    return addTag(\n      flatten<Props>(\n        interleave<Props>(EMPTY_ARRAY, [\n          styleFunctionOrObject,\n          ...interpolations,\n        ]) as Interpolation<object>\n      )\n    );\n  }\n\n  const styleStringArray = styles as TemplateStringsArray;\n\n  if (\n    interpolations.length === 0 &&\n    styleStringArray.length === 1 &&\n    typeof styleStringArray[0] === 'string'\n  ) {\n    return flatten<Props>(styleStringArray);\n  }\n\n  return addTag(\n    flatten<Props>(interleave<Props>(styleStringArray, interpolations) as Interpolation<object>)\n  );\n}\n\nexport default css;\n","import React from 'react';\nimport { STATIC_EXECUTION_CONTEXT } from '../constants';\nimport GlobalStyle from '../models/GlobalStyle';\nimport { useStyleSheetContext } from '../models/StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from '../models/ThemeProvider';\nimport StyleSheet from '../sheet';\nimport { ExecutionContext, ExecutionProps, Interpolation, Stringifier, Styles } from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport determineTheme from '../utils/determineTheme';\nimport generateComponentId from '../utils/generateComponentId';\nimport css from './css';\n\nexport default function createGlobalStyle<Props extends object>(\n  strings: Styles<Props>,\n  ...interpolations: Array<Interpolation<Props>>\n) {\n  const rules = css<Props>(strings, ...interpolations);\n  const styledComponentId = `sc-global-${generateComponentId(JSON.stringify(rules))}`;\n  const globalStyle = new GlobalStyle<Props>(rules, styledComponentId);\n\n  if (process.env.NODE_ENV !== 'production') {\n    checkDynamicCreation(styledComponentId);\n  }\n\n  const GlobalStyleComponent: React.ComponentType<ExecutionProps & Props> = props => {\n    const ssc = useStyleSheetContext();\n    const theme = React.useContext(ThemeContext);\n    const instanceRef = React.useRef(ssc.styleSheet.allocateGSInstance(styledComponentId));\n\n    const instance = instanceRef.current;\n\n    if (process.env.NODE_ENV !== 'production' && React.Children.count(props.children)) {\n      console.warn(\n        `The global style component ${styledComponentId} was given child JSX. createGlobalStyle does not render children.`\n      );\n    }\n\n    if (\n      process.env.NODE_ENV !== 'production' &&\n      rules.some(rule => typeof rule === 'string' && rule.indexOf('@import') !== -1)\n    ) {\n      console.warn(\n        `Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.`\n      );\n    }\n\n    if (ssc.styleSheet.server) {\n      renderStyles(instance, props, ssc.styleSheet, theme, ssc.stylis);\n    }\n\n    if (!__SERVER__) {\n      React.useLayoutEffect(() => {\n        if (!ssc.styleSheet.server) {\n          renderStyles(instance, props, ssc.styleSheet, theme, ssc.stylis);\n          return () => globalStyle.removeStyles(instance, ssc.styleSheet);\n        }\n      }, [instance, props, ssc.styleSheet, theme, ssc.stylis]);\n    }\n\n    return null;\n  };\n\n  function renderStyles(\n    instance: number,\n    props: ExecutionProps,\n    styleSheet: StyleSheet,\n    theme: DefaultTheme | undefined,\n    stylis: Stringifier\n  ) {\n    if (globalStyle.isStatic) {\n      globalStyle.renderStyles(\n        instance,\n        STATIC_EXECUTION_CONTEXT as unknown as ExecutionContext & Props,\n        styleSheet,\n        stylis\n      );\n    } else {\n      const context = {\n        ...props,\n        theme: determineTheme(props, theme, GlobalStyleComponent.defaultProps),\n      } as ExecutionContext & Props;\n\n      globalStyle.renderStyles(instance, context, styleSheet, stylis);\n    }\n  }\n\n  return React.memo(GlobalStyleComponent);\n}\n","import Keyframes from '../models/Keyframes';\nimport { Interpolation, Styles } from '../types';\nimport generateComponentId from '../utils/generateComponentId';\nimport { joinStringArray } from '../utils/joinStrings';\nimport css from './css';\n\nexport default function keyframes<Props extends object = {}>(\n  strings: Styles<Props>,\n  ...interpolations: Array<Interpolation<Props>>\n): Keyframes {\n  /* Warning if you've used keyframes on React Native */\n  if (\n    process.env.NODE_ENV !== 'production' &&\n    typeof navigator !== 'undefined' &&\n    navigator.product === 'ReactNative'\n  ) {\n    console.warn(\n      '`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.'\n    );\n  }\n\n  const rules = joinStringArray(css<Props>(strings, ...interpolations) as string[]);\n  const name = generateComponentId(rules);\n  return new Keyframes(name, rules);\n}\n","import React from 'react';\nimport { AnyComponent } from '../types';\n\nconst hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n// copied from react-is\nconst REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nconst REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\n/**\n * Adapted from hoist-non-react-statics to avoid the react-is dependency.\n */\nconst REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true,\n};\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n};\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n};\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n};\n\nconst TYPE_STATICS = {\n  [REACT_FORWARD_REF_TYPE]: FORWARD_REF_STATICS,\n  [REACT_MEMO_TYPE]: MEMO_STATICS,\n};\n\ntype OmniComponent = AnyComponent;\n\n// adapted from react-is\nfunction isMemo(\n  object: OmniComponent | React.MemoExoticComponent<any>\n): object is React.MemoExoticComponent<any> {\n  const $$typeofType = 'type' in object && object.type.$$typeof;\n\n  return $$typeofType === REACT_MEMO_TYPE;\n}\n\nfunction getStatics(component: OmniComponent) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS;\n  }\n\n  // React v16.12 and above\n  return '$$typeof' in component\n    ? TYPE_STATICS[component['$$typeof'] as unknown as string]\n    : REACT_STATICS;\n}\n\nconst defineProperty = Object.defineProperty;\nconst getOwnPropertyNames = Object.getOwnPropertyNames;\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols;\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectPrototype = Object.prototype;\n\ntype ExcludeList = {\n  [key: string]: true;\n};\n\ntype NonReactStatics<S extends OmniComponent, C extends ExcludeList = {}> = {\n  [key in Exclude<\n    keyof S,\n    S extends React.MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : S extends React.ForwardRefExoticComponent<any>\n      ? keyof typeof FORWARD_REF_STATICS | keyof C\n      : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: S[key];\n};\n\nexport default function hoistNonReactStatics<\n  T extends OmniComponent,\n  S extends OmniComponent,\n  C extends ExcludeList = {},\n>(targetComponent: T, sourceComponent: S, excludelist?: C | undefined) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent);\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, excludelist);\n      }\n    }\n\n    let keys: (String | Symbol)[] = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    const targetStatics = getStatics(targetComponent);\n    const sourceStatics = getStatics(sourceComponent);\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i] as unknown as string;\n      if (\n        !(key in KNOWN_STATICS) &&\n        !(excludelist && excludelist[key]) &&\n        !(sourceStatics && key in sourceStatics) &&\n        !(targetStatics && key in targetStatics)\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!);\n        } catch (e) {\n          /* ignore */\n        }\n      }\n    }\n  }\n\n  return targetComponent as T & NonReactStatics<S, C>;\n}\n","import React from 'react';\nimport { ThemeContext } from '../models/ThemeProvider';\nimport { AnyComponent, ExecutionProps } from '../types';\nimport determineTheme from '../utils/determineTheme';\nimport getComponentName from '../utils/getComponentName';\nimport hoist from '../utils/hoist';\n\nexport default function withTheme<T extends AnyComponent>(Component: T) {\n  const WithTheme = React.forwardRef<T, JSX.LibraryManagedAttributes<T, ExecutionProps>>(\n    (props, ref) => {\n      const theme = React.useContext(ThemeContext);\n      const themeProp = determineTheme(props, theme, Component.defaultProps);\n\n      if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n        console.warn(\n          `[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"${getComponentName(\n            Component\n          )}\"`\n        );\n      }\n\n      return <Component {...props} theme={themeProp} ref={ref} />;\n    }\n  );\n\n  WithTheme.displayName = `WithTheme(${getComponentName(Component)})`;\n\n  return hoist(WithTheme, Component);\n}\n","import React from 'react';\nimport type * as streamInternal from 'stream';\nimport { Readable } from 'stream';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport styledError from '../utils/error';\nimport { joinStringArray } from '../utils/joinStrings';\nimport getNonce from '../utils/nonce';\nimport { StyleSheetManager } from './StyleSheetManager';\n\ndeclare const __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n  instance: StyleSheet;\n  sealed: boolean;\n\n  constructor() {\n    this.instance = new StyleSheet({ isServer: true });\n    this.sealed = false;\n  }\n\n  _emitSheetCSS = (): string => {\n    const css = this.instance.toString();\n    const nonce = getNonce();\n    const attrs = [\n      nonce && `nonce=\"${nonce}\"`,\n      `${SC_ATTR}=\"true\"`,\n      `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`,\n    ];\n    const htmlAttr = joinStringArray(attrs.filter(Boolean) as string[], ' ');\n\n    return `<style ${htmlAttr}>${css}</style>`;\n  };\n\n  collectStyles(children: any): JSX.Element {\n    if (this.sealed) {\n      throw styledError(2);\n    }\n\n    return <StyleSheetManager sheet={this.instance}>{children}</StyleSheetManager>;\n  }\n\n  getStyleTags = (): string => {\n    if (this.sealed) {\n      throw styledError(2);\n    }\n\n    return this._emitSheetCSS();\n  };\n\n  getStyleElement = () => {\n    if (this.sealed) {\n      throw styledError(2);\n    }\n\n    const props = {\n      [SC_ATTR]: '',\n      [SC_ATTR_VERSION]: SC_VERSION,\n      dangerouslySetInnerHTML: {\n        __html: this.instance.toString(),\n      },\n    };\n\n    const nonce = getNonce();\n    if (nonce) {\n      (props as any).nonce = nonce;\n    }\n\n    // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n    return [<style {...props} key=\"sc-0-0\" />];\n  };\n\n  // @ts-expect-error alternate return types are not possible due to code transformation\n  interleaveWithNodeStream(input: Readable): streamInternal.Transform {\n    if (!__SERVER__ || IS_BROWSER) {\n      throw styledError(3);\n    } else if (this.sealed) {\n      throw styledError(2);\n    }\n\n    if (__SERVER__) {\n      this.seal();\n\n      const { Transform } = require('stream');\n\n      const readableStream: Readable = input;\n      const { instance: sheet, _emitSheetCSS } = this;\n\n      const transformer: streamInternal.Transform = new Transform({\n        transform: function appendStyleChunks(\n          chunk: string,\n          /* encoding */\n          _: string,\n          callback: Function\n        ) {\n          // Get the chunk and retrieve the sheet's CSS as an HTML chunk,\n          // then reset its rules so we get only new ones for the next chunk\n          const renderedHtml = chunk.toString();\n          const html = _emitSheetCSS();\n\n          sheet.clearTag();\n\n          // prepend style html to chunk, unless the start of the chunk is a\n          // closing tag in which case append right after that\n          if (CLOSING_TAG_R.test(renderedHtml)) {\n            const endOfClosingTag = renderedHtml.indexOf('>') + 1;\n            const before = renderedHtml.slice(0, endOfClosingTag);\n            const after = renderedHtml.slice(endOfClosingTag);\n\n            this.push(before + html + after);\n          } else {\n            this.push(html + renderedHtml);\n          }\n\n          callback();\n        },\n      });\n\n      readableStream.on('error', err => {\n        // forward the error to the transform stream\n        transformer.emit('error', err);\n      });\n\n      return readableStream.pipe(transformer);\n    }\n  }\n\n  seal = (): void => {\n    this.sealed = true;\n  };\n}\n","import { mainSheet } from './models/StyleSheetManager';\nimport StyleSheet from './sheet';\n\nexport const __PRIVATE__ = {\n  StyleSheet,\n  mainSheet,\n};\n","/* Import singletons */\nimport { SC_ATTR, SC_VERSION } from './constants';\nimport createGlobalStyle from './constructors/createGlobalStyle';\nimport css from './constructors/css';\nimport keyframes from './constructors/keyframes';\n/* Import Higher Order Components */\nimport withTheme from './hoc/withTheme';\n/* Import hooks */\nimport ServerStyleSheet from './models/ServerStyleSheet';\nimport {\n  IStyleSheetContext,\n  IStyleSheetManager,\n  IStylisContext,\n  StyleSheetConsumer,\n  StyleSheetContext,\n  StyleSheetManager,\n} from './models/StyleSheetManager';\n/* Import components */\nimport ThemeProvider, { ThemeConsumer, ThemeContext, useTheme } from './models/ThemeProvider';\nimport isStyledComponent from './utils/isStyledComponent';\n\n/* Warning if you've imported this file on React Native */\nif (\n  process.env.NODE_ENV !== 'production' &&\n  typeof navigator !== 'undefined' &&\n  navigator.product === 'ReactNative'\n) {\n  console.warn(\n    `It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native`\n  );\n}\n\nconst windowGlobalKey = `__sc-${SC_ATTR}__`;\n\n/* Warning if there are several instances of styled-components */\nif (\n  process.env.NODE_ENV !== 'production' &&\n  process.env.NODE_ENV !== 'test' &&\n  typeof window !== 'undefined'\n) {\n  // @ts-expect-error dynamic key not in window object\n  window[windowGlobalKey] ||= 0;\n\n  // @ts-expect-error dynamic key not in window object\n  if (window[windowGlobalKey] === 1) {\n    console.warn(\n      `It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.`\n    );\n  }\n\n  // @ts-expect-error dynamic key not in window object\n  window[windowGlobalKey] += 1;\n}\n\n/* Export everything */\nexport * from './secretInternals';\nexport { Attrs, DefaultTheme, ShouldForwardProp } from './types';\nexport {\n  IStyleSheetContext,\n  IStyleSheetManager,\n  IStylisContext,\n  ServerStyleSheet,\n  StyleSheetConsumer,\n  StyleSheetContext,\n  StyleSheetManager,\n  ThemeConsumer,\n  ThemeContext,\n  ThemeProvider,\n  createGlobalStyle,\n  css,\n  isStyledComponent,\n  keyframes,\n  useTheme,\n  SC_VERSION as version,\n  withTheme,\n};\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import { Dict } from '../types';\n\nexport const LIMIT = 200;\n\nexport default (displayName: string, componentId: string) => {\n  let generatedClasses: Dict<any> = {};\n  let warningSeen = false;\n\n  return (className: string) => {\n    if (!warningSeen) {\n      generatedClasses[className] = true;\n      if (Object.keys(generatedClasses).length >= LIMIT) {\n        // Unable to find latestRule in test environment.\n\n        const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n\n        console.warn(\n          `Over ${LIMIT} classes were generated for component ${displayName}${parsedIdString}.\\n` +\n            'Consider using the attrs method, together with a style object for frequently changed styles.\\n' +\n            'Example:\\n' +\n            '  const Component = styled.div.attrs(props => ({\\n' +\n            '    style: {\\n' +\n            '      background: props.background,\\n' +\n            '    },\\n' +\n            '  }))`width: 100%;`\\n\\n' +\n            '  <Component />'\n        );\n        warningSeen = true;\n        generatedClasses = {};\n      }\n    }\n  };\n};\n","// Thanks to ReactDOMFactories for this handy list!\n\nconst elements = [\n  'a',\n  'abbr',\n  'address',\n  'area',\n  'article',\n  'aside',\n  'audio',\n  'b',\n  'base',\n  'bdi',\n  'bdo',\n  'big',\n  'blockquote',\n  'body',\n  'br',\n  'button',\n  'canvas',\n  'caption',\n  'cite',\n  'code',\n  'col',\n  'colgroup',\n  'data',\n  'datalist',\n  'dd',\n  'del',\n  'details',\n  'dfn',\n  'dialog',\n  'div',\n  'dl',\n  'dt',\n  'em',\n  'embed',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'header',\n  'hgroup',\n  'hr',\n  'html',\n  'i',\n  'iframe',\n  'img',\n  'input',\n  'ins',\n  'kbd',\n  'keygen',\n  'label',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'map',\n  'mark',\n  'menu',\n  'menuitem',\n  'meta',\n  'meter',\n  'nav',\n  'noscript',\n  'object',\n  'ol',\n  'optgroup',\n  'option',\n  'output',\n  'p',\n  'param',\n  'picture',\n  'pre',\n  'progress',\n  'q',\n  'rp',\n  'rt',\n  'ruby',\n  's',\n  'samp',\n  'script',\n  'section',\n  'select',\n  'small',\n  'source',\n  'span',\n  'strong',\n  'style',\n  'sub',\n  'summary',\n  'sup',\n  'table',\n  'tbody',\n  'td',\n  'textarea',\n  'tfoot',\n  'th',\n  'thead',\n  'time',\n  'tr',\n  'track',\n  'u',\n  'ul',\n  'use',\n  'var',\n  'video',\n  'wbr', // SVG\n  'circle',\n  'clipPath',\n  'defs',\n  'ellipse',\n  'foreignObject',\n  'g',\n  'image',\n  'line',\n  'linearGradient',\n  'marker',\n  'mask',\n  'path',\n  'pattern',\n  'polygon',\n  'polyline',\n  'radialGradient',\n  'rect',\n  'stop',\n  'svg',\n  'text',\n  'tspan',\n] as const;\n\nexport default new Set(elements);\nexport type SupportedHTMLElements = (typeof elements)[number];\n","// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string) {\n  return str // Replace all possible CSS selectors\n    .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n    .replace(dashesAtEnds, '');\n}\n","import { StyledTarget } from '../types';\n\nexport default function isTag(target: StyledTarget<'web'>): target is string {\n  return (\n    typeof target === 'string' &&\n    (process.env.NODE_ENV !== 'production'\n      ? target.charAt(0) === target.charAt(0).toLowerCase()\n      : true)\n  );\n}\n","import { StyledTarget } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(target: StyledTarget<any>) {\n  return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","import isPlainObject from './isPlainObject';\n\nfunction mixinRecursively(target: any, source: any, forceMerge = false) {\n  /* only merge into POJOs, Arrays, but for top level objects only\n   * allow to merge into anything by passing forceMerge = true */\n  if (!forceMerge && !isPlainObject(target) && !Array.isArray(target)) {\n    return source;\n  }\n\n  if (Array.isArray(source)) {\n    for (let key = 0; key < source.length; key++) {\n      target[key] = mixinRecursively(target[key], source[key]);\n    }\n  } else if (isPlainObject(source)) {\n    for (const key in source) {\n      target[key] = mixinRecursively(target[key], source[key]);\n    }\n  }\n\n  return target;\n}\n\n/**\n * Arrays & POJOs merged recursively, other objects and value types are overridden\n * If target is not a POJO or an Array, it will get source properties injected via shallow merge\n * Source objects applied left to right.  Mutates & returns target.  Similar to lodash merge.\n */\nexport default function mixinDeep(target: any, ...sources: any[]) {\n  for (const source of sources) {\n    mixinRecursively(target, source, true);\n  }\n\n  return target;\n}\n","import { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray, joinStrings } from '../utils/joinStrings';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n  baseHash: number;\n  baseStyle: ComponentStyle | null | undefined;\n  componentId: string;\n  isStatic: boolean;\n  rules: RuleSet<any>;\n  staticRulesId: string;\n\n  constructor(rules: RuleSet<any>, componentId: string, baseStyle?: ComponentStyle | undefined) {\n    this.rules = rules;\n    this.staticRulesId = '';\n    this.isStatic =\n      process.env.NODE_ENV === 'production' &&\n      (baseStyle === undefined || baseStyle.isStatic) &&\n      isStaticRules(rules);\n    this.componentId = componentId;\n    this.baseHash = phash(SEED, componentId);\n    this.baseStyle = baseStyle;\n\n    // NOTE: This registers the componentId, which ensures a consistent order\n    // for this component's styles compared to others\n    StyleSheet.registerId(componentId);\n  }\n\n  generateAndInjectStyles(\n    executionContext: ExecutionContext,\n    styleSheet: StyleSheet,\n    stylis: Stringifier\n  ): string {\n    let names = this.baseStyle\n      ? this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis)\n      : '';\n\n    // force dynamic classnames if user-supplied stylis plugins are in use\n    if (this.isStatic && !stylis.hash) {\n      if (this.staticRulesId && styleSheet.hasNameForId(this.componentId, this.staticRulesId)) {\n        names = joinStrings(names, this.staticRulesId);\n      } else {\n        const cssStatic = joinStringArray(\n          flatten(this.rules, executionContext, styleSheet, stylis) as string[]\n        );\n        const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n        if (!styleSheet.hasNameForId(this.componentId, name)) {\n          const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, this.componentId);\n          styleSheet.insertRules(this.componentId, name, cssStaticFormatted);\n        }\n\n        names = joinStrings(names, name);\n        this.staticRulesId = name;\n      }\n    } else {\n      let dynamicHash = phash(this.baseHash, stylis.hash);\n      let css = '';\n\n      for (let i = 0; i < this.rules.length; i++) {\n        const partRule = this.rules[i];\n\n        if (typeof partRule === 'string') {\n          css += partRule;\n\n          if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule);\n        } else if (partRule) {\n          const partString = joinStringArray(\n            flatten(partRule, executionContext, styleSheet, stylis) as string[]\n          );\n          // The same value can switch positions in the array, so we include \"i\" in the hash.\n          dynamicHash = phash(dynamicHash, partString + i);\n          css += partString;\n        }\n      }\n\n      if (css) {\n        const name = generateName(dynamicHash >>> 0);\n\n        if (!styleSheet.hasNameForId(this.componentId, name)) {\n          styleSheet.insertRules(\n            this.componentId,\n            name,\n            stylis(css, `.${name}`, undefined, this.componentId)\n          );\n        }\n\n        names = joinStrings(names, name);\n      }\n    }\n\n    return names;\n  }\n}\n","import isPropValid from '@emotion/is-prop-valid';\nimport React, { createElement, Ref, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n  AnyComponent,\n  Attrs,\n  BaseObject,\n  Dict,\n  ExecutionContext,\n  ExecutionProps,\n  IStyledComponent,\n  IStyledComponentFactory,\n  IStyledStatics,\n  OmitNever,\n  RuleSet,\n  StyledOptions,\n  WebTarget,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport domElements from '../utils/domElements';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport hoist from '../utils/hoist';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport { joinStrings } from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport { setToString } from '../utils/setToString';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheetContext } from './StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from './ThemeProvider';\n\nconst identifiers: { [key: string]: number } = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(\n  displayName?: string | undefined,\n  parentComponentId?: string | undefined\n): string {\n  const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n  // Ensure that no displayName can lead to duplicate componentIds\n  identifiers[name] = (identifiers[name] || 0) + 1;\n\n  const componentId = `${name}-${generateComponentId(\n    // SC_VERSION gives us isolation between multiple runtimes on the page at once\n    // this is improved further with use of the babel plugin \"namespace\" feature\n    SC_VERSION + name + identifiers[name]\n  )}`;\n\n  return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useInjectedStyle<T extends ExecutionContext>(\n  componentStyle: ComponentStyle,\n  resolvedAttrs: T\n) {\n  const ssc = useStyleSheetContext();\n\n  const className = componentStyle.generateAndInjectStyles(\n    resolvedAttrs,\n    ssc.styleSheet,\n    ssc.stylis\n  );\n\n  if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n  return className;\n}\n\nfunction resolveContext<Props extends object>(\n  attrs: Attrs<React.HTMLAttributes<Element> & Props>[],\n  props: React.HTMLAttributes<Element> & ExecutionProps & Props,\n  theme: DefaultTheme\n) {\n  const context: React.HTMLAttributes<Element> &\n    ExecutionContext &\n    Props & { [key: string]: any; class?: string; ref?: React.Ref<any> } = {\n    ...props,\n    // unset, add `props.className` back at the end so props always \"wins\"\n    className: undefined,\n    theme,\n  };\n  let attrDef;\n\n  for (let i = 0; i < attrs.length; i += 1) {\n    attrDef = attrs[i];\n    const resolvedAttrDef = isFunction(attrDef) ? attrDef(context) : attrDef;\n\n    for (const key in resolvedAttrDef) {\n      context[key as keyof typeof context] =\n        key === 'className'\n          ? joinStrings(context[key] as string | undefined, resolvedAttrDef[key] as string)\n          : key === 'style'\n          ? { ...context[key], ...resolvedAttrDef[key] }\n          : resolvedAttrDef[key as keyof typeof resolvedAttrDef];\n    }\n  }\n\n  if (props.className) {\n    context.className = joinStrings(context.className, props.className);\n  }\n\n  return context;\n}\n\nlet seenUnknownProps = new Set();\n\nfunction useStyledComponentImpl<Props extends object>(\n  forwardedComponent: IStyledComponent<'web', Props>,\n  props: ExecutionProps & Props,\n  forwardedRef: Ref<Element>\n) {\n  const {\n    attrs: componentAttrs,\n    componentStyle,\n    defaultProps,\n    foldedComponentIds,\n    styledComponentId,\n    target,\n  } = forwardedComponent;\n\n  const contextTheme = React.useContext(ThemeContext);\n  const ssc = useStyleSheetContext();\n  const shouldForwardProp = forwardedComponent.shouldForwardProp || ssc.shouldForwardProp;\n\n  if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n  // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n  // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n  // should be an immutable value, but behave for now.\n  const theme = determineTheme(props, contextTheme, defaultProps) || EMPTY_OBJECT;\n\n  const context = resolveContext<Props>(componentAttrs, props, theme);\n  const elementToBeCreated: WebTarget = context.as || target;\n  const propsForElement: Dict<any> = {};\n\n  for (const key in context) {\n    if (context[key] === undefined) {\n      // Omit undefined values from props passed to wrapped element.\n      // This enables using .attrs() to remove props, for example.\n    } else if (key[0] === '$' || key === 'as' || key === 'theme') {\n      // Omit transient props and execution props.\n    } else if (key === 'forwardedAs') {\n      propsForElement.as = context.forwardedAs;\n    } else if (!shouldForwardProp || shouldForwardProp(key, elementToBeCreated)) {\n      propsForElement[key] = context[key];\n\n      if (\n        !shouldForwardProp &&\n        process.env.NODE_ENV === 'development' &&\n        !isPropValid(key) &&\n        !seenUnknownProps.has(key) &&\n        // Only warn on DOM Element.\n        domElements.has(elementToBeCreated as any)\n      ) {\n        seenUnknownProps.add(key);\n        console.warn(\n          `styled-components: it looks like an unknown prop \"${key}\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \\`<StyleSheetManager shouldForwardProp={...}>\\` (connect an API like \\`@emotion/is-prop-valid\\`) or consider using transient props (\\`$\\` prefix for automatic filtering.)`\n        );\n      }\n    }\n  }\n\n  const generatedClassName = useInjectedStyle(componentStyle, context);\n\n  if (process.env.NODE_ENV !== 'production' && forwardedComponent.warnTooManyClasses) {\n    forwardedComponent.warnTooManyClasses(generatedClassName);\n  }\n\n  let classString = joinStrings(foldedComponentIds, styledComponentId);\n  if (generatedClassName) {\n    classString += ' ' + generatedClassName;\n  }\n  if (context.className) {\n    classString += ' ' + context.className;\n  }\n\n  propsForElement[\n    // handle custom elements which React doesn't properly alias\n    isTag(elementToBeCreated) &&\n    !domElements.has(elementToBeCreated as Extract<typeof domElements, string>)\n      ? 'class'\n      : 'className'\n  ] = classString;\n\n  propsForElement.ref = forwardedRef;\n\n  return createElement(elementToBeCreated, propsForElement);\n}\n\nfunction createStyledComponent<\n  Target extends WebTarget,\n  OuterProps extends object,\n  Statics extends object = BaseObject,\n>(\n  target: Target,\n  options: StyledOptions<'web', OuterProps>,\n  rules: RuleSet<OuterProps>\n): ReturnType<IStyledComponentFactory<'web', Target, OuterProps, Statics>> {\n  const isTargetStyledComp = isStyledComponent(target);\n  const styledComponentTarget = target as IStyledComponent<'web', OuterProps>;\n  const isCompositeComponent = !isTag(target);\n\n  const {\n    attrs = EMPTY_ARRAY,\n    componentId = generateId(options.displayName, options.parentComponentId),\n    displayName = generateDisplayName(target),\n  } = options;\n\n  const styledComponentId =\n    options.displayName && options.componentId\n      ? `${escape(options.displayName)}-${options.componentId}`\n      : options.componentId || componentId;\n\n  // fold the underlying StyledComponent attrs up (implicit extend)\n  const finalAttrs =\n    isTargetStyledComp && styledComponentTarget.attrs\n      ? styledComponentTarget.attrs.concat(attrs as unknown as Attrs<OuterProps>[]).filter(Boolean)\n      : (attrs as Attrs<OuterProps>[]);\n\n  let { shouldForwardProp } = options;\n\n  if (isTargetStyledComp && styledComponentTarget.shouldForwardProp) {\n    const shouldForwardPropFn = styledComponentTarget.shouldForwardProp;\n\n    if (options.shouldForwardProp) {\n      const passedShouldForwardPropFn = options.shouldForwardProp;\n\n      // compose nested shouldForwardProp calls\n      shouldForwardProp = (prop, elementToBeCreated) =>\n        shouldForwardPropFn(prop, elementToBeCreated) &&\n        passedShouldForwardPropFn(prop, elementToBeCreated);\n    } else {\n      shouldForwardProp = shouldForwardPropFn;\n    }\n  }\n\n  const componentStyle = new ComponentStyle(\n    rules,\n    styledComponentId,\n    isTargetStyledComp ? (styledComponentTarget.componentStyle as ComponentStyle) : undefined\n  );\n\n  function forwardRefRender(props: ExecutionProps & OuterProps, ref: Ref<Element>) {\n    return useStyledComponentImpl<OuterProps>(WrappedStyledComponent, props, ref);\n  }\n\n  forwardRefRender.displayName = displayName;\n\n  /**\n   * forwardRef creates a new interim component, which we'll take advantage of\n   * instead of extending ParentComponent to create _another_ interim class\n   */\n  let WrappedStyledComponent = React.forwardRef(forwardRefRender) as unknown as IStyledComponent<\n    'web',\n    any\n  > &\n    Statics;\n  WrappedStyledComponent.attrs = finalAttrs;\n  WrappedStyledComponent.componentStyle = componentStyle;\n  WrappedStyledComponent.displayName = displayName;\n  WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n  // this static is used to preserve the cascade of static classes for component selector\n  // purposes; this is especially important with usage of the css prop\n  WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n    ? joinStrings(styledComponentTarget.foldedComponentIds, styledComponentTarget.styledComponentId)\n    : '';\n\n  WrappedStyledComponent.styledComponentId = styledComponentId;\n\n  // fold the underlying StyledComponent target up since we folded the styles\n  WrappedStyledComponent.target = isTargetStyledComp ? styledComponentTarget.target : target;\n\n  Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n    get() {\n      return this._foldedDefaultProps;\n    },\n\n    set(obj) {\n      this._foldedDefaultProps = isTargetStyledComp\n        ? merge({}, styledComponentTarget.defaultProps, obj)\n        : obj;\n    },\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    checkDynamicCreation(displayName, styledComponentId);\n\n    WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n      displayName,\n      styledComponentId\n    );\n  }\n\n  setToString(WrappedStyledComponent, () => `.${WrappedStyledComponent.styledComponentId}`);\n\n  if (isCompositeComponent) {\n    const compositeComponentTarget = target as AnyComponent;\n\n    hoist<typeof WrappedStyledComponent, typeof compositeComponentTarget>(\n      WrappedStyledComponent,\n      compositeComponentTarget,\n      {\n        // all SC-specific things should not be hoisted\n        attrs: true,\n        componentStyle: true,\n        displayName: true,\n        foldedComponentIds: true,\n        shouldForwardProp: true,\n        styledComponentId: true,\n        target: true,\n      } as { [key in keyof OmitNever<IStyledStatics<'web', OuterProps>>]: true }\n    );\n  }\n\n  return WrappedStyledComponent;\n}\n\nexport default createStyledComponent;\n","import {\n  Attrs,\n  BaseObject,\n  ExecutionProps,\n  Interpolation,\n  IStyledComponent,\n  IStyledComponentFactory,\n  KnownTarget,\n  NoInfer,\n  Runtime,\n  StyledOptions,\n  StyledTarget,\n  Styles,\n  Substitute,\n} from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport styledError from '../utils/error';\nimport css from './css';\n\ntype AttrsResult<T extends Attrs<any>> = T extends (...args: any) => infer P\n  ? P extends object\n    ? P\n    : never\n  : T extends object\n  ? T\n  : never;\n\n/**\n * Based on Attrs being a simple object or function that returns\n * a prop object, inspect the attrs result and attempt to extract\n * any \"as\" prop usage to modify the runtime target.\n */\ntype AttrsTarget<\n  R extends Runtime,\n  T extends Attrs<any>,\n  FallbackTarget extends StyledTarget<R>,\n  Result extends ExecutionProps = AttrsResult<T>,\n> = Result extends { as: infer RuntimeTarget }\n  ? RuntimeTarget extends KnownTarget\n    ? RuntimeTarget\n    : FallbackTarget\n  : FallbackTarget;\n\nexport interface Styled<\n  R extends Runtime,\n  Target extends StyledTarget<R>,\n  OuterProps extends object,\n  OuterStatics extends object = BaseObject,\n> {\n  <Props extends object = BaseObject, Statics extends object = BaseObject>(\n    initialStyles: Styles<Substitute<OuterProps, NoInfer<Props>>>,\n    ...interpolations: Interpolation<Substitute<OuterProps, NoInfer<Props>>>[]\n  ): IStyledComponent<R, Substitute<OuterProps, Props>> &\n    OuterStatics &\n    Statics &\n    (R extends 'web'\n      ? Target extends string\n        ? {}\n        : Omit<Target, keyof React.Component<any>>\n      : {});\n\n  attrs: <\n    Props extends object = BaseObject,\n    PrivateMergedProps extends object = Substitute<OuterProps, Props>,\n    PrivateAttrsArg extends Attrs<PrivateMergedProps> = Attrs<PrivateMergedProps>,\n    PrivateResolvedTarget extends StyledTarget<R> = AttrsTarget<R, PrivateAttrsArg, Target>,\n  >(\n    attrs: PrivateAttrsArg\n  ) => Styled<\n    R,\n    PrivateResolvedTarget,\n    PrivateResolvedTarget extends KnownTarget\n      ? Substitute<\n          Substitute<OuterProps, React.ComponentPropsWithRef<PrivateResolvedTarget>>,\n          Props\n        >\n      : PrivateMergedProps,\n    OuterStatics\n  >;\n\n  withConfig: (config: StyledOptions<R, OuterProps>) => Styled<R, Target, OuterProps, OuterStatics>;\n}\n\nexport default function constructWithOptions<\n  R extends Runtime,\n  Target extends StyledTarget<R>,\n  OuterProps extends object = Target extends KnownTarget\n    ? React.ComponentPropsWithRef<Target>\n    : BaseObject,\n  OuterStatics extends object = BaseObject,\n>(\n  componentConstructor: IStyledComponentFactory<R, StyledTarget<R>, object, any>,\n  tag: StyledTarget<R>,\n  options: StyledOptions<R, OuterProps> = EMPTY_OBJECT\n): Styled<R, Target, OuterProps, OuterStatics> {\n  /**\n   * We trust that the tag is a valid component as long as it isn't\n   * falsish. Typically the tag here is a string or function (i.e.\n   * class or pure function component), however a component may also be\n   * an object if it uses another utility, e.g. React.memo. React will\n   * output an appropriate warning however if the `tag` isn't valid.\n   */\n  if (!tag) {\n    throw styledError(1, tag);\n  }\n\n  /* This is callable directly as a template function */\n  const templateFunction = <Props extends object = BaseObject, Statics extends object = BaseObject>(\n    initialStyles: Styles<Substitute<OuterProps, Props>>,\n    ...interpolations: Interpolation<Substitute<OuterProps, Props>>[]\n  ) =>\n    componentConstructor<Substitute<OuterProps, Props>, Statics>(\n      tag,\n      options as StyledOptions<R, Substitute<OuterProps, Props>>,\n      css<Substitute<OuterProps, Props>>(initialStyles, ...interpolations)\n    );\n\n  /**\n   * Attrs allows for accomplishing two goals:\n   *\n   * 1. Backfilling props at runtime more expressively than defaultProps\n   * 2. Amending the prop interface of a wrapped styled component\n   */\n  templateFunction.attrs = <\n    Props extends object = BaseObject,\n    PrivateMergedProps extends object = Substitute<OuterProps, Props>,\n    PrivateAttrsArg extends Attrs<PrivateMergedProps> = Attrs<PrivateMergedProps>,\n    PrivateResolvedTarget extends StyledTarget<R> = AttrsTarget<R, PrivateAttrsArg, Target>,\n  >(\n    attrs: PrivateAttrsArg\n  ) =>\n    constructWithOptions<\n      R,\n      PrivateResolvedTarget,\n      PrivateResolvedTarget extends KnownTarget\n        ? Substitute<\n            Substitute<OuterProps, React.ComponentPropsWithRef<PrivateResolvedTarget>>,\n            Props\n          >\n        : PrivateMergedProps,\n      OuterStatics\n    >(componentConstructor, tag, {\n      ...options,\n      attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n    });\n\n  /**\n   * If config methods are called, wrap up a new template function\n   * and merge options.\n   */\n  templateFunction.withConfig = (config: StyledOptions<R, OuterProps>) =>\n    constructWithOptions<R, Target, OuterProps, OuterStatics>(componentConstructor, tag, {\n      ...options,\n      ...config,\n    });\n\n  return templateFunction;\n}\n","import createStyledComponent from '../models/StyledComponent';\nimport { WebTarget } from '../types';\nimport domElements, { SupportedHTMLElements } from '../utils/domElements';\nimport constructWithOptions, { Styled } from './constructWithOptions';\n\nconst baseStyled = <Target extends WebTarget>(tag: Target) =>\n  constructWithOptions<'web', Target>(createStyledComponent, tag);\n\nconst styled = baseStyled as typeof baseStyled & {\n  [E in SupportedHTMLElements]: Styled<'web', E, JSX.IntrinsicElements[E]>;\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n  // @ts-expect-error some react typing bs\n  styled[domElement] = baseStyled<typeof domElement>(domElement);\n});\n\nexport default styled;\n","import * as secondary from './base';\n/* Import singleton constructors */\nimport styled from './constructors/styled';\n\n/**\n * eliminates the need to do styled.default since the other APIs\n * are directly assigned as properties to the main function\n * */\nfor (const key in secondary) {\n  // @ts-expect-error shush\n  styled[key] = secondary[key];\n}\n\nexport default styled;\n"],"names":["styledError","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","Math","from","String","fromCharCode","assign","Object","hash","value","length","charat","trim","match","pattern","exec","replace","replacement","indexof","search","indexOf","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","push","combine","callback","map","join","filter","line","column","position","character","characters","node","root","parent","type","props","children","siblings","return","copy","lift","char","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","k","x","y","z","prefix","some","element","_","a","b","c","d","e","f","serialize","output","stringify","middleware","collection","rulesheet","prefixer","SEED","stylis.RULESET","stylis.prefixer","stylis.stringify","stylis.compile","stylis.serialize","stylis.middleware","stylis.rulesheet","throwStyledError","useContext","useState","useMemo","useEffect","unitless","hyphenate","useRef","hoist","generateName","useDebugValue","createElement","merge"],"mappings":"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","x_google_ignoreList":[1,13,14,15,16,17,18,19,20,25,51,52]}