UNPKG

40.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"emotion-styled.umd.min.js","sources":["../../../node_modules/@babel/runtime/helpers/extends.js","../../memoize/src/index.js","../../is-prop-valid/src/index.js","../src/utils.js","../../utils/src/index.js","../../unitless/src/index.js","../../serialize/src/index.js","../../hash/src/index.js","../src/useInsertionEffectMaybe.js","../src/base.js","../src/index.js","../src/tags.js"],"sourcesContent":["function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// @flow\n\nexport default function memoize<V>(fn: string => V): string => V {\n const cache = Object.create(null)\n\n return (arg: string) => {\n if (cache[arg] === undefined) cache[arg] = fn(arg)\n return cache[arg]\n }\n}\n","// @flow\nimport memoize from '@emotion/memoize'\n\ndeclare var codegen: { require: string => RegExp }\n\nconst reactPropsRegex = codegen.require('./props')\n\n// https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\nconst isPropValid = /* #__PURE__ */ memoize(\n prop =>\n reactPropsRegex.test(prop) ||\n (prop.charCodeAt(0) === 111 /* o */ &&\n prop.charCodeAt(1) === 110 /* n */ &&\n prop.charCodeAt(2) < 91) /* Z+1 */\n)\n\nexport default isPropValid\n","// @flow\nimport type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react'\nimport isPropValid from '@emotion/is-prop-valid'\n\nexport type Interpolations = Array<any>\n\nexport type StyledElementType<Props> =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent<Props> = StatelessFunctionalComponent<Props> & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType<Props>,\n nextOptions?: StyledOptions\n ) => StyledComponent<Props>\n}\n\nexport type PrivateStyledComponent<Props> = StyledComponent<Props> & {\n __emotion_real: StyledComponent<Props>,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n\nconst testOmitPropsOnStringTag = isPropValid\nconst testOmitPropsOnComponent = (key: string) => key !== 'theme'\n\nexport const getDefaultShouldForwardProp = (tag: ElementType) =>\n typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96\n ? testOmitPropsOnStringTag\n : testOmitPropsOnComponent\n\nexport const composeShouldForwardProps = (\n tag: PrivateStyledComponent<any>,\n options: StyledOptions | void,\n isReal: boolean\n) => {\n let shouldForwardProp\n if (options) {\n const optionsShouldForwardProp = options.shouldForwardProp\n shouldForwardProp =\n tag.__emotion_forwardProp && optionsShouldForwardProp\n ? (propName: string) =>\n tag.__emotion_forwardProp(propName) &&\n optionsShouldForwardProp(propName)\n : optionsShouldForwardProp\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp\n }\n\n return shouldForwardProp\n}\n\nexport type CreateStyledComponent = <Props>(\n ...args: Interpolations\n) => StyledComponent<Props>\n\nexport type CreateStyled = {\n <Props>(\n tag: StyledElementType<Props>,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent<Props>,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n","// @flow\nimport type { RegisteredCache, EmotionCache, SerializedStyles } from './types'\n\nconst isBrowser = typeof document !== 'undefined'\n\nexport function getRegisteredStyles(\n registered: RegisteredCache,\n registeredStyles: string[],\n classNames: string\n) {\n let rawClassName = ''\n\n classNames.split(' ').forEach(className => {\n if (registered[className] !== undefined) {\n registeredStyles.push(`${registered[className]};`)\n } else {\n rawClassName += `${className} `\n }\n })\n return rawClassName\n}\n\nexport const registerStyles = (\n cache: EmotionCache,\n serialized: SerializedStyles,\n isStringTag: boolean\n) => {\n let className = `${cache.key}-${serialized.name}`\n if (\n // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false ||\n // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n (isBrowser === false && cache.compat !== undefined)) &&\n cache.registered[className] === undefined\n ) {\n cache.registered[className] = serialized.styles\n }\n}\n\nexport const insertStyles = (\n cache: EmotionCache,\n serialized: SerializedStyles,\n isStringTag: boolean\n) => {\n registerStyles(cache, serialized, isStringTag)\n\n let className = `${cache.key}-${serialized.name}`\n\n if (cache.inserted[serialized.name] === undefined) {\n let stylesForSSR = ''\n let current = serialized\n do {\n let maybeStyles = cache.insert(\n serialized === current ? `.${className}` : '',\n current,\n cache.sheet,\n true\n )\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles\n }\n current = current.next\n } while (current !== undefined)\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR\n }\n }\n}\n\nexport * from './types'\n","// @flow\n\nlet unitlessKeys: { [key: string]: 1 } = {\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\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","// @flow\nimport type {\n Interpolation,\n SerializedStyles,\n RegisteredCache\n} from '@emotion/utils'\nimport hashString from '@emotion/hash'\nimport unitless from '@emotion/unitless'\nimport memoize from '@emotion/memoize'\n\nconst ILLEGAL_ESCAPE_SEQUENCE_ERROR = `You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\\\00d7';\" should become \"content: '\\\\\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences`\n\nconst UNDEFINED_AS_OBJECT_KEY_ERROR =\n \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\"\n\nlet hyphenateRegex = /[A-Z]|^ms/g\nlet animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g\n\nconst isCustomProperty = (property: string) => property.charCodeAt(1) === 45\nconst isProcessableValue = value => value != null && typeof value !== 'boolean'\n\nconst processStyleName = /* #__PURE__ */ memoize((styleName: string) =>\n isCustomProperty(styleName)\n ? styleName\n : styleName.replace(hyphenateRegex, '-$&').toLowerCase()\n)\n\nlet processStyleValue = (\n key: string,\n value: string | number\n): string | number => {\n switch (key) {\n case 'animation':\n case 'animationName': {\n if (typeof value === 'string') {\n return value.replace(animationRegex, (match, p1, p2) => {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n }\n return p1\n })\n }\n }\n }\n\n if (\n unitless[key] !== 1 &&\n !isCustomProperty(key) &&\n typeof value === 'number' &&\n value !== 0\n ) {\n return value + 'px'\n }\n return value\n}\n\nif (process.env.NODE_ENV !== 'production') {\n let contentValuePattern =\n /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/\n let contentValues = ['normal', 'none', 'initial', 'inherit', 'unset']\n\n let oldProcessStyleValue = processStyleValue\n\n let msPattern = /^-ms-/\n let hyphenPattern = /-(.)/g\n\n let hyphenatedCache = {}\n\n processStyleValue = (key: string, value: string) => {\n if (key === 'content') {\n if (\n typeof value !== 'string' ||\n (contentValues.indexOf(value) === -1 &&\n !contentValuePattern.test(value) &&\n (value.charAt(0) !== value.charAt(value.length - 1) ||\n (value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")))\n ) {\n throw new Error(\n `You seem to be using a value for 'content' without quotes, try replacing it with \\`content: '\"${value}\"'\\``\n )\n }\n }\n\n const processed = oldProcessStyleValue(key, value)\n\n if (\n processed !== '' &&\n !isCustomProperty(key) &&\n key.indexOf('-') !== -1 &&\n hyphenatedCache[key] === undefined\n ) {\n hyphenatedCache[key] = true\n console.error(\n `Using kebab-case for css properties in objects is not supported. Did you mean ${key\n .replace(msPattern, 'ms-')\n .replace(hyphenPattern, (str, char) => char.toUpperCase())}?`\n )\n }\n\n return processed\n }\n}\n\nconst noComponentSelectorMessage =\n 'Component selectors can only be used in conjunction with ' +\n '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' +\n 'compiler transform.'\n\nfunction handleInterpolation(\n mergedProps: void | Object,\n registered: RegisteredCache | void,\n interpolation: Interpolation\n): string | number {\n if (interpolation == null) {\n return ''\n }\n if (interpolation.__emotion_styles !== undefined) {\n if (\n process.env.NODE_ENV !== 'production' &&\n interpolation.toString() === 'NO_COMPONENT_SELECTOR'\n ) {\n throw new Error(noComponentSelectorMessage)\n }\n return interpolation\n }\n\n switch (typeof interpolation) {\n case 'boolean': {\n return ''\n }\n case 'object': {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n }\n\n return interpolation.name\n }\n if (interpolation.styles !== undefined) {\n let next = interpolation.next\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n }\n next = next.next\n }\n }\n let styles = `${interpolation.styles};`\n if (\n process.env.NODE_ENV !== 'production' &&\n interpolation.map !== undefined\n ) {\n styles += interpolation.map\n }\n\n return styles\n }\n\n return createStringFromObject(mergedProps, registered, interpolation)\n }\n case 'function': {\n if (mergedProps !== undefined) {\n let previousCursor = cursor\n let result = interpolation(mergedProps)\n cursor = previousCursor\n\n return handleInterpolation(mergedProps, registered, result)\n } else if (process.env.NODE_ENV !== 'production') {\n console.error(\n 'Functions that are interpolated in css calls will be stringified.\\n' +\n 'If you want to have a css call based on props, create a function that returns a css call like this\\n' +\n 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' +\n 'It can be called directly with props or interpolated in a styled call like this\\n' +\n \"let SomeComponent = styled('div')`${dynamicStyle}`\"\n )\n }\n break\n }\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n const matched = []\n const replaced = interpolation.replace(\n animationRegex,\n (match, p1, p2) => {\n const fakeVarName = `animation${matched.length}`\n matched.push(\n `const ${fakeVarName} = keyframes\\`${p2.replace(\n /^@keyframes animation-\\w+/,\n ''\n )}\\``\n )\n return `\\${${fakeVarName}}`\n }\n )\n if (matched.length) {\n console.error(\n '`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' +\n 'Instead of doing this:\\n\\n' +\n [...matched, `\\`${replaced}\\``].join('\\n') +\n '\\n\\nYou should wrap it with `css` like this:\\n\\n' +\n `css\\`${replaced}\\``\n )\n }\n }\n break\n }\n\n // finalize string values (regular strings and functions interpolated into css calls)\n if (registered == null) {\n return interpolation\n }\n const cached = registered[interpolation]\n return cached !== undefined ? cached : interpolation\n}\n\nfunction createStringFromObject(\n mergedProps: void | Object,\n registered: RegisteredCache | void,\n obj: { [key: string]: Interpolation }\n): string {\n let string = ''\n\n if (Array.isArray(obj)) {\n for (let i = 0; i < obj.length; i++) {\n string += `${handleInterpolation(mergedProps, registered, obj[i])};`\n }\n } else {\n for (let key in obj) {\n let value = obj[key]\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += `${key}{${registered[value]}}`\n } else if (isProcessableValue(value)) {\n string += `${processStyleName(key)}:${processStyleValue(key, value)};`\n }\n } else {\n if (\n key === 'NO_COMPONENT_SELECTOR' &&\n process.env.NODE_ENV !== 'production'\n ) {\n throw new Error(noComponentSelectorMessage)\n }\n if (\n Array.isArray(value) &&\n typeof value[0] === 'string' &&\n (registered == null || registered[value[0]] === undefined)\n ) {\n for (let i = 0; i < value.length; i++) {\n if (isProcessableValue(value[i])) {\n string += `${processStyleName(key)}:${processStyleValue(\n key,\n value[i]\n )};`\n }\n }\n } else {\n const interpolated = handleInterpolation(\n mergedProps,\n registered,\n value\n )\n switch (key) {\n case 'animation':\n case 'animationName': {\n string += `${processStyleName(key)}:${interpolated};`\n break\n }\n default: {\n if (\n process.env.NODE_ENV !== 'production' &&\n key === 'undefined'\n ) {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR)\n }\n string += `${key}{${interpolated}}`\n }\n }\n }\n }\n }\n }\n\n return string\n}\n\nlet labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g\n\nlet sourceMapPattern\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern =\n /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g\n}\n\n// this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\nlet cursor\n\nexport const serializeStyles = function (\n args: Array<Interpolation>,\n registered: RegisteredCache | void,\n mergedProps: void | Object\n): SerializedStyles {\n if (\n args.length === 1 &&\n typeof args[0] === 'object' &&\n args[0] !== null &&\n args[0].styles !== undefined\n ) {\n return args[0]\n }\n let stringMode = true\n let styles = ''\n\n cursor = undefined\n let strings = args[0]\n if (strings == null || strings.raw === undefined) {\n stringMode = false\n styles += handleInterpolation(mergedProps, registered, strings)\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR)\n }\n styles += strings[0]\n }\n // we start at 1 since we've already handled the first arg\n for (let i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i])\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR)\n }\n styles += strings[i]\n }\n }\n let sourceMap\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, match => {\n sourceMap = match\n return ''\n })\n }\n\n // using a global regex with .exec is stateful so lastIndex has to be reset each time\n labelPattern.lastIndex = 0\n let identifierName = ''\n\n let match\n // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName +=\n '-' +\n // $FlowFixMe we know it's not null\n match[1]\n }\n\n let name = hashString(styles) + identifierName\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name,\n styles,\n map: sourceMap,\n next: cursor,\n toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"\n }\n }\n }\n return {\n name,\n styles,\n next: cursor\n }\n}\n","// @flow\n/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\n\nexport default function murmur2(str: string) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n\n // const m = 0x5bd1e995;\n // const r = 24;\n\n // Initialize the hash\n\n var h = 0\n\n // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length\n for (; len >= 4; ++i, len -= 4) {\n k =\n (str.charCodeAt(i) & 0xff) |\n ((str.charCodeAt(++i) & 0xff) << 8) |\n ((str.charCodeAt(++i) & 0xff) << 16) |\n ((str.charCodeAt(++i) & 0xff) << 24)\n\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0xe995) << 16)\n k ^= /* k >>> r: */ k >>> 24\n\n h =\n /* Math.imul(k, m): */\n ((k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0xe995) << 16)) ^\n /* Math.imul(h, m): */\n ((h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0xe995) << 16))\n }\n\n // Handle the last few bytes of the input array\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8\n case 1:\n h ^= str.charCodeAt(i) & 0xff\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0xe995) << 16)\n }\n\n // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n h ^= h >>> 13\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0xe995) << 16)\n\n return ((h ^ (h >>> 15)) >>> 0).toString(36)\n}\n","import * as React from 'react'\n\nconst isBrowser = typeof document !== 'undefined'\n\nconst useInsertionEffect = React['useInsertion' + 'Effect']\n ? React['useInsertion' + 'Effect']\n : function useInsertionEffect(create) {\n create()\n }\n\nexport default function useInsertionEffectMaybe(create) {\n if (!isBrowser) {\n return create()\n }\n useInsertionEffect(create)\n}\n","// @flow\nimport * as React from 'react'\nimport {\n getDefaultShouldForwardProp,\n composeShouldForwardProps,\n type StyledOptions,\n type CreateStyled,\n type PrivateStyledComponent,\n type StyledElementType\n} from './utils'\nimport { withEmotionCache, ThemeContext } from '@emotion/react'\nimport {\n getRegisteredStyles,\n insertStyles,\n registerStyles\n} from '@emotion/utils'\nimport { serializeStyles } from '@emotion/serialize'\nimport useInsertionEffectMaybe from './useInsertionEffectMaybe'\n\nconst ILLEGAL_ESCAPE_SEQUENCE_ERROR = `You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\\\00d7';\" should become \"content: '\\\\\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences`\n\nlet isBrowser = typeof document !== 'undefined'\n\nconst Insertion = ({ cache, serialized, isStringTag }) => {\n registerStyles(cache, serialized, isStringTag)\n\n const rules = useInsertionEffectMaybe(() =>\n insertStyles(cache, serialized, isStringTag)\n )\n\n if (!isBrowser && rules !== undefined) {\n let serializedNames = serialized.name\n let next = serialized.next\n while (next !== undefined) {\n serializedNames += ' ' + next.name\n next = next.next\n }\n return (\n <style\n {...{\n [`data-emotion`]: `${cache.key} ${serializedNames}`,\n dangerouslySetInnerHTML: { __html: rules },\n nonce: cache.sheet.nonce\n }}\n />\n )\n }\n return null\n}\n\nlet createStyled: CreateStyled = (tag: any, options?: StyledOptions) => {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error(\n 'You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.'\n )\n }\n }\n const isReal = tag.__emotion_real === tag\n const baseTag = (isReal && tag.__emotion_base) || tag\n\n let identifierName\n let targetClassName\n if (options !== undefined) {\n identifierName = options.label\n targetClassName = options.target\n }\n\n const shouldForwardProp = composeShouldForwardProps(tag, options, isReal)\n const defaultShouldForwardProp =\n shouldForwardProp || getDefaultShouldForwardProp(baseTag)\n const shouldUseAs = !defaultShouldForwardProp('as')\n\n return function <Props>(): PrivateStyledComponent<Props> {\n let args = arguments\n let styles =\n isReal && tag.__emotion_styles !== undefined\n ? tag.__emotion_styles.slice(0)\n : []\n\n if (identifierName !== undefined) {\n styles.push(`label:${identifierName};`)\n }\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args)\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR)\n }\n styles.push(args[0][0])\n let len = args.length\n let i = 1\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR)\n }\n styles.push(args[i], args[0][i])\n }\n }\n\n // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n const Styled: PrivateStyledComponent<Props> = withEmotionCache(\n (props, cache, ref) => {\n const FinalTag = (shouldUseAs && props.as) || baseTag\n\n let className = ''\n let classInterpolations = []\n let mergedProps = props\n if (props.theme == null) {\n mergedProps = {}\n for (let key in props) {\n mergedProps[key] = props[key]\n }\n mergedProps.theme = React.useContext(ThemeContext)\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(\n cache.registered,\n classInterpolations,\n props.className\n )\n } else if (props.className != null) {\n className = `${props.className} `\n }\n\n const serialized = serializeStyles(\n styles.concat(classInterpolations),\n cache.registered,\n mergedProps\n )\n className += `${cache.key}-${serialized.name}`\n if (targetClassName !== undefined) {\n className += ` ${targetClassName}`\n }\n\n const finalShouldForwardProp =\n shouldUseAs && shouldForwardProp === undefined\n ? getDefaultShouldForwardProp(FinalTag)\n : defaultShouldForwardProp\n\n let newProps = {}\n\n for (let key in props) {\n if (shouldUseAs && key === 'as') continue\n\n if (\n // $FlowFixMe\n finalShouldForwardProp(key)\n ) {\n newProps[key] = props[key]\n }\n }\n\n newProps.className = className\n newProps.ref = ref\n\n return (\n <>\n <Insertion\n cache={cache}\n serialized={serialized}\n isStringTag={typeof FinalTag === 'string'}\n />\n <FinalTag {...newProps} />\n </>\n )\n }\n )\n\n Styled.displayName =\n identifierName !== undefined\n ? identifierName\n : `Styled(${\n typeof baseTag === 'string'\n ? baseTag\n : baseTag.displayName || baseTag.name || 'Component'\n })`\n\n Styled.defaultProps = tag.defaultProps\n Styled.__emotion_real = Styled\n Styled.__emotion_base = baseTag\n Styled.__emotion_styles = styles\n Styled.__emotion_forwardProp = shouldForwardProp\n\n Object.defineProperty(Styled, 'toString', {\n value() {\n if (\n targetClassName === undefined &&\n process.env.NODE_ENV !== 'production'\n ) {\n return 'NO_COMPONENT_SELECTOR'\n }\n // $FlowFixMe: coerce undefined to string\n return `.${targetClassName}`\n }\n })\n\n Styled.withComponent = (\n nextTag: StyledElementType<Props>,\n nextOptions?: StyledOptions\n ) => {\n return createStyled(nextTag, {\n ...options,\n // $FlowFixMe\n ...nextOptions,\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })(...styles)\n }\n\n return Styled\n }\n}\n\nexport default createStyled\n","// @flow\nimport styled from './base'\nimport { tags } from './tags'\n\n// bind it to avoid mutating the original function\nconst newStyled = styled.bind()\n\ntags.forEach(tagName => {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName)\n})\n\nexport default newStyled\n","// @flow\nexport const tags = [\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 'head',\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 'marquee',\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 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'tspan'\n]\n"],"names":["_extends","module","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","exports","apply","this","memoize","fn","cache","create","arg","undefined","reactPropsRegex","testOmitPropsOnStringTag","prop","test","charCodeAt","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","split","forEach","className","push","registerStyles","serialized","isStringTag","name","styles","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","value","processStyleName","styleName","replace","toLowerCase","processStyleValue","match","p1","p2","cursor","next","unitless","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","obj","string","Array","isArray","interpolated","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","args","stringMode","strings","raw","lastIndex","identifierName","exec","str","k","h","len","toString","hashString","useInsertionEffect","React","Insertion","inserted","current","insert","sheet","insertStyles","newStyled","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","slice","Styled","withEmotionCache","props","ref","FinalTag","as","classInterpolations","theme","ThemeContext","concat","finalShouldForwardProp","newProps","React.createElement","displayName","defaultProps","defineProperty","withComponent","nextTag","nextOptions","bind","tagName"],"mappings":"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,WACN6E,GAEFvE,GAAgB1B,EAAMT,QAAOsC,EAAWE,UAChB5B,IAApBoI,IACF7G,OAAiB6G,OAGbkB,EACJZ,QAAqC1I,IAAtBY,EACXL,EAA4ByI,GAC5BP,EAEFc,EAAW,OAEV,IAAInK,KAAO0J,EACVJ,GAAuB,OAARtJ,GAIjBkK,EAAuBlK,KAEvBmK,EAASnK,GAAO0J,EAAM1J,WAI1BmK,EAAShI,UAAYA,EACrBgI,EAASR,IAAMA,EAGbS,gCACEA,gBAAC5B,GACC/H,MAAOA,EACP6B,WAAYA,EACZC,YAAiC,iBAAbqH,IAEtBQ,gBAACR,EAAaO,cAMtBX,EAAOa,iBACczJ,IAAnBkH,EACIA,aAEqB,iBAAZoB,EACHA,EACAA,EAAQmB,aAAenB,EAAQ1G,MAAQ,iBAGnDgH,EAAOc,aAAelJ,EAAIkJ,aAC1Bd,EAAOP,eAAiBO,EACxBA,EAAOL,eAAiBD,EACxBM,EAAO5C,iBAAmBnE,EAC1B+G,EAAO9H,sBAAwBF,EAE/B/B,OAAO8K,eAAef,EAAQ,WAAY,CACxC3D,2BAQamD,KAIfQ,EAAOgB,cAAgB,SACrBC,EACAC,UAEO3B,EAAa0B,OACfnJ,EAEAoJ,GACHlJ,kBAAmBH,EAA0BmI,EAAQkB,GAAa,mBAC9DjI,IAGD+G,IChNcmB,aCJL,CAClB,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,SDlIGzI,SAAQ,SAAA0I,GAEX9B,EAAU8B,GAAW9B,EAAU8B"}
\No newline at end of file