forked from ben-rogerson/twin.macro
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmacro.js.map
1 lines (1 loc) · 745 KB
/
macro.js.map
1
{"version":3,"file":"macro.js","sources":["src/constants.js","src/utils/misc.js","src/utils/alpha.js","src/macro/debug.js","src/config/corePlugins.js","src/config/variantConfig.js","src/logging.js","src/macroHelpers.js","src/config/twinConfig.js","src/configHelpers.js","src/config/userPresets.js","src/macro/css.js","src/macro/styled.js","src/macro/theme.js","src/macro/screen.js","src/config/globalStyles.js","src/macro/globalStyles.js","src/getProperties.js","src/prechecks.js","src/ordering.js","src/screens.js","src/darkLightMode.js","src/pieces.js","src/content.js","src/transforms.js","src/variants.js","src/boxShadow.js","src/coerced.js","src/handlers/helpers.js","src/handlers/arbitraryCss.js","src/handlers/shortCss.js","src/utils/getConfigValue.js","src/handlers/dynamic.js","src/handlers/userPlugins.js","src/getStyleData.js","src/macro/tw.js","src/macro/cs.js","src/macro/className.js","node_modules/dlv/dist/dlv.es.js","node_modules/postcss-selector-parser/dist/util/unesc.js","node_modules/postcss-selector-parser/dist/util/getProp.js","node_modules/postcss-selector-parser/dist/util/ensureObject.js","node_modules/postcss-selector-parser/dist/util/stripComments.js","node_modules/postcss-selector-parser/dist/util/index.js","node_modules/postcss-selector-parser/dist/selectors/node.js","node_modules/postcss-selector-parser/dist/selectors/types.js","node_modules/postcss-selector-parser/dist/selectors/container.js","node_modules/postcss-selector-parser/dist/selectors/root.js","node_modules/postcss-selector-parser/dist/selectors/selector.js","node_modules/cssesc/cssesc.js","node_modules/postcss-selector-parser/dist/selectors/className.js","node_modules/postcss-selector-parser/dist/selectors/comment.js","node_modules/postcss-selector-parser/dist/selectors/id.js","node_modules/postcss-selector-parser/dist/selectors/namespace.js","node_modules/postcss-selector-parser/dist/selectors/tag.js","node_modules/postcss-selector-parser/dist/selectors/string.js","node_modules/postcss-selector-parser/dist/selectors/pseudo.js","node_modules/util-deprecate/node.js","node_modules/postcss-selector-parser/dist/selectors/attribute.js","node_modules/postcss-selector-parser/dist/selectors/universal.js","node_modules/postcss-selector-parser/dist/selectors/combinator.js","node_modules/postcss-selector-parser/dist/selectors/nesting.js","node_modules/postcss-selector-parser/dist/sortAscending.js","node_modules/postcss-selector-parser/dist/tokenTypes.js","node_modules/postcss-selector-parser/dist/tokenize.js","node_modules/postcss-selector-parser/dist/parser.js","node_modules/postcss-selector-parser/dist/processor.js","node_modules/postcss-selector-parser/dist/selectors/constructors.js","node_modules/postcss-selector-parser/dist/selectors/guards.js","node_modules/postcss-selector-parser/dist/selectors/index.js","node_modules/postcss-selector-parser/dist/index.js","src/utils/pluginApi.js","src/utils/getUserPluginData.js","src/macro.js"],"sourcesContent":["const SPACE_ID = '__SPACE_ID__'\n\nexport { SPACE_ID }\n","import { parseColor } from 'tailwindcss/lib/util/color'\nimport deepMerge from 'lodash.merge'\nimport { MacroError } from 'babel-plugin-macros'\nimport get from 'lodash.get'\nimport { SPACE_ID } from './../constants'\n\nconst throwIf = (expression, callBack) => {\n if (!expression) return\n throw new MacroError(callBack())\n}\n\nconst isEmpty = value =>\n value === undefined ||\n value === null ||\n (typeof value === 'object' && Object.keys(value).length === 0) ||\n (typeof value === 'string' && value.trim().length === 0)\n\nfunction transformThemeValue(themeSection) {\n if (['fontSize', 'outline'].includes(themeSection)) {\n return value => (Array.isArray(value) ? value[0] : value)\n }\n\n if (\n [\n 'fontFamily',\n 'boxShadow',\n 'transitionProperty',\n 'transitionDuration',\n 'transitionDelay',\n 'transitionTimingFunction',\n 'backgroundImage',\n 'backgroundSize',\n 'backgroundColor',\n 'cursor',\n 'animation',\n ].includes(themeSection)\n ) {\n return value => (Array.isArray(value) ? value.join(', ') : value)\n }\n\n if (themeSection === 'colors') {\n return value => (typeof value === 'function' ? value({}) : value)\n }\n\n return value => value\n}\n\nconst objectToStringValues = obj => {\n if (typeof obj === 'object' && !Array.isArray(obj))\n return Object.entries(obj).reduce(\n (result, [key, value]) =>\n deepMerge(result, { [key]: objectToStringValues(value) }),\n {}\n )\n\n if (Array.isArray(obj)) return obj.map(i => objectToStringValues(i))\n\n if (typeof obj === 'number') return String(obj)\n\n // typeof obj = string / function\n return obj\n}\n\nconst getTheme = configTheme => grab => {\n if (!grab) return configTheme\n // Allow theme`` which gets supplied as an array\n const value = Array.isArray(grab) ? grab[0] : grab\n // Get the theme key so we can apply certain rules in transformThemeValue\n const themeKey = value.split('.')[0]\n // Get the resulting value from the config\n const themeValue = get(configTheme, value)\n return objectToStringValues(transformThemeValue(themeKey)(themeValue))\n}\n\nconst stripNegative = string =>\n string && string.length > 1 && string.slice(0, 1) === '-'\n ? string.slice(1, string.length)\n : string\n\nconst camelize = string =>\n string && string.replace(/\\W+(.)/g, (_, chr) => chr.toUpperCase())\n\nconst isNumeric = str => {\n /* eslint-disable-next-line eqeqeq */\n if (typeof str != 'string') return false\n return !Number.isNaN(str) && !Number.isNaN(Number.parseFloat(str))\n}\n\nconst isClass = str => new RegExp(/(\\s*\\.|{{)\\w/).test(str)\n\nconst isMediaQuery = str => str.startsWith('@media')\n\nconst isShortCss = className => new RegExp(/[^/-]\\[/).test(className)\n\nconst isArbitraryCss = className => new RegExp(/-\\[/).test(className)\n\n// Split a string at a value\nfunction splitOnFirst(input, delim) {\n return (([first, ...rest]) => [first, rest.join(delim)])(input.split(delim))\n}\n\nconst formatProp = classes =>\n replaceSpaceId(\n classes\n // Normalize spacing\n .replace(/\\s\\s+/g, ' ')\n // Remove newline characters\n .replace(/\\n/g, ' ')\n .trim()\n )\n\nconst isSpaceSeparatedColor = color => {\n const spaceMatch =\n typeof color === 'string' ? color.split(/\\s+(?=[^)\\]}]*(?:[([{]|$))/) : []\n if (spaceMatch.length === 0) return\n const hasValidSpaceSeparatedColors = spaceMatch.every(color =>\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-regexp-test\n Boolean(/^var\\(--\\w*\\)$/.exec(color) ? color : parseColor(color))\n )\n return hasValidSpaceSeparatedColors\n}\n\nconst isObject = val =>\n // eslint-disable-next-line eqeqeq, no-eq-null, @typescript-eslint/no-unnecessary-boolean-literal-compare\n val != null && typeof val === 'object' && Array.isArray(val) === false\n\nconst getFirstValue = (list, getValue) => {\n let firstValue\n const listLength = list.length - 1\n const listItem = list.find((listItem, index) => {\n const isLast = index === listLength\n firstValue = getValue(listItem, { index, isLast })\n return Boolean(firstValue)\n })\n\n return [firstValue, listItem]\n}\n\nconst replaceSpaceId = className =>\n className.replace(new RegExp(SPACE_ID, 'g'), ' ')\n\nconst toArray = arr => (Array.isArray(arr) ? arr : [arr])\n\nconst formatCssProperty = string => {\n // https://stackoverflow.com/questions/448981/which-characters-are-valid-in-css-class-names-selectors\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-regexp-test\n if (string && string.match(/^-{2,3}[_a-z]+[\\w-]*/i)) return string\n\n return camelize(string)\n}\n\nexport {\n throwIf,\n isEmpty,\n getTheme,\n stripNegative,\n get,\n camelize,\n isNumeric,\n isClass,\n isMediaQuery,\n isShortCss,\n isArbitraryCss,\n splitOnFirst,\n formatProp,\n isSpaceSeparatedColor,\n isObject,\n getFirstValue,\n replaceSpaceId,\n toArray,\n formatCssProperty,\n}\n","import { parseColor, formatColor } from 'tailwindcss/lib/util/color'\nimport { color, gradient } from 'tailwindcss/lib/util/dataTypes'\nimport { isSpaceSeparatedColor } from './misc'\n\nconst buildStyleSet = (property, color, pieces) => {\n const value = `${color}${pieces.important}`\n if (!property) return value\n return { [property]: value }\n}\n\nconst maybeAddAlpha = (value, { pieces, variable = '' }) =>\n typeof value === 'function' ||\n (pieces.alpha && typeof value === 'string' && color(value))\n ? toAlpha({ pieces, variable, property: undefined })(\n value,\n pieces.alpha,\n value\n )\n : value\n\nconst toAlpha =\n ({ pieces, property, variable }) =>\n (color, alpha, fallBackColor) => {\n const newPieces =\n (pieces.hasVariantVisited && { ...pieces, alpha: '', hasAlpha: false }) ||\n (alpha && { ...pieces, alpha, hasAlpha: true }) ||\n pieces\n\n return withAlpha({\n color,\n property,\n ...(!pieces.hasVariantVisited && { variable }),\n pieces: newPieces,\n fallBackColor,\n })\n }\n\nconst withAlpha = ({\n color,\n property,\n variable,\n pieces = { hasAlpha: false, alpha: '', important: '' },\n fallBackColor = false,\n}) => {\n if (!color) return\n\n if (Array.isArray(color)) color = color.join(',')\n\n if (typeof color === 'function') {\n if (variable && property) {\n if (pieces.hasAlpha)\n return buildStyleSet(\n property,\n color({ opacityValue: pieces.alpha }),\n pieces\n )\n\n return {\n [variable]: '1',\n [property]: `${color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`,\n })}${pieces.important}`,\n }\n }\n\n color = color({ opacityVariable: variable })\n }\n\n const parsed = parseColor(color)\n\n if (parsed === null) {\n // next-line: \"!fallBackColor\" is a workaround for variables used within these classes:\n // from-[var(--color)] + via-[var(--color)]\n const hasValidSpaceSeparatedColors =\n !fallBackColor && isSpaceSeparatedColor(color)\n if (hasValidSpaceSeparatedColors)\n return buildStyleSet(property, color, pieces)\n\n if (gradient(color)) return buildStyleSet(property, color, pieces)\n\n if (fallBackColor) return buildStyleSet(property, fallBackColor, pieces)\n\n return\n }\n\n if (parsed.alpha !== undefined) {\n // For gradients\n if (color === 'transparent' && fallBackColor)\n return buildStyleSet(\n property,\n pieces.alpha ? formatColor({ ...parsed, alpha: pieces.alpha }) : color,\n pieces\n )\n\n // Has an alpha value, return color as-is\n return buildStyleSet(property, color, pieces)\n }\n\n if (pieces.alpha)\n return buildStyleSet(\n property,\n formatColor({ ...parsed, alpha: pieces.alpha }),\n pieces\n )\n\n if (variable)\n return {\n [variable]: '1',\n [property]: `${formatColor({ ...parsed, alpha: `var(${variable})` })}${\n pieces.important\n }`,\n }\n\n return buildStyleSet(property, color, pieces)\n}\n\nexport { maybeAddAlpha, toAlpha, withAlpha }\n","import { formatProp } from './../utils'\n\nconst addDataTwPropToPath = ({\n t,\n attributes,\n rawClasses,\n path,\n state,\n propName = 'data-tw',\n}) => {\n const dataTwPropAllEnvironments =\n propName === 'data-tw' && state.configTwin.dataTwProp === 'all'\n const dataCsPropAllEnvironments =\n propName === 'data-cs' && state.configTwin.dataCsProp === 'all'\n if (state.isProd && !dataTwPropAllEnvironments && !dataCsPropAllEnvironments)\n return\n if (propName === 'data-tw' && !state.configTwin.dataTwProp) return\n if (propName === 'data-cs' && !state.configTwin.dataCsProp) return\n\n // Remove the existing debug attribute if you happen to have it\n const dataProperty = attributes.filter(\n p => p.node && p.node.name && p.node.name.name === propName\n )\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n dataProperty.forEach(path => path.remove())\n\n const classes = formatProp(rawClasses)\n\n // Add the attribute\n path.insertAfter(\n t.jsxAttribute(t.jsxIdentifier(propName), t.stringLiteral(classes))\n )\n}\n\nconst addDataPropToExistingPath = ({\n t,\n attributes,\n rawClasses,\n path,\n state,\n propName = 'data-tw',\n}) => {\n const dataTwPropAllEnvironments =\n propName === 'data-tw' && state.configTwin.dataTwProp === 'all'\n const dataCsPropAllEnvironments =\n propName === 'data-cs' && state.configTwin.dataCsProp === 'all'\n if (state.isProd && !dataTwPropAllEnvironments && !dataCsPropAllEnvironments)\n return\n if (propName === 'data-tw' && !state.configTwin.dataTwProp) return\n if (propName === 'data-cs' && !state.configTwin.dataCsProp) return\n\n // Append to the existing debug attribute\n const dataProperty = attributes.find(\n p => p.node && p.node.name && p.node.name.name === propName\n )\n if (dataProperty) {\n try {\n // Existing data prop\n if (dataProperty.node.value.value) {\n dataProperty.node.value.value = `${[\n dataProperty.node.value.value,\n rawClasses,\n ]\n .filter(Boolean)\n .join(' | ')}`\n return\n }\n\n // New data prop\n dataProperty.node.value.expression.value = `${[\n dataProperty.node.value.expression.value,\n rawClasses,\n ]\n .filter(Boolean)\n .join(' | ')}`\n } catch (_) {}\n\n return\n }\n\n const classes = formatProp(rawClasses)\n\n // Add a new attribute\n path.pushContainer(\n 'attributes',\n t.jSXAttribute(\n t.jSXIdentifier(propName),\n t.jSXExpressionContainer(t.stringLiteral(classes))\n )\n )\n}\n\nexport { formatProp, addDataTwPropToPath, addDataPropToExistingPath }\n","// https://tailwindcss.com/docs/font-variant-numeric\n// This feature uses var+comment hacks to get around property stripping:\n// https://github.com/tailwindlabs/tailwindcss.com/issues/522#issuecomment-687667238\nconst cssFontVariantNumericValue =\n 'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)'\n\nconst cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ')\n\nconst cssFilterValue = [\n 'var(--tw-blur)',\n 'var(--tw-brightness)',\n 'var(--tw-contrast)',\n 'var(--tw-grayscale)',\n 'var(--tw-hue-rotate)',\n 'var(--tw-invert)',\n 'var(--tw-saturate)',\n 'var(--tw-sepia)',\n 'var(--tw-drop-shadow)',\n].join(' ')\n\nconst cssBackdropFilterValue = [\n 'var(--tw-backdrop-blur)',\n 'var(--tw-backdrop-brightness)',\n 'var(--tw-backdrop-contrast)',\n 'var(--tw-backdrop-grayscale)',\n 'var(--tw-backdrop-hue-rotate)',\n 'var(--tw-backdrop-invert)',\n 'var(--tw-backdrop-opacity)',\n 'var(--tw-backdrop-saturate)',\n 'var(--tw-backdrop-sepia)',\n].join(' ')\n\nconst cssTouchActionValue =\n 'var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)'\n\nexport default {\n // https://tailwindcss.com/docs/container\n container: {\n output({ theme, pieces }) {\n const { className } = pieces\n if (className !== 'container') return\n\n const container = theme('container')\n const { padding, margin, center } = container\n\n const screens = container.screens || theme('screens')\n\n // eslint-disable-next-line unicorn/consistent-function-scoping\n const properties = type => ({\n left: `${type}Left`,\n right: `${type}Right`,\n })\n\n const getSpacingFromArray = ({ values, left, right }) => {\n if (!Array.isArray(values)) return\n const [valueLeft, valueRight] = values\n return { [left]: valueLeft, [right]: valueRight }\n }\n\n const getSpacingStyle = (type, values, key) => {\n if (Array.isArray(values) || typeof values !== 'object') return\n\n const propertyValue = values[key]\n if (!propertyValue) return\n\n const objectArraySpacing = getSpacingFromArray({\n values: propertyValue,\n ...properties(type),\n })\n if (objectArraySpacing) return objectArraySpacing\n\n return {\n [properties(type).left]: propertyValue,\n [properties(type).right]: propertyValue,\n }\n }\n\n const mediaScreens = Object.entries(screens).reduce(\n (accumulator, [key, rawValue]) => {\n const value =\n typeof rawValue === 'object'\n ? rawValue.min || rawValue['min-width']\n : rawValue\n return {\n ...accumulator,\n [`@media (min-width: ${value})`]: {\n maxWidth: value,\n ...(padding && getSpacingStyle('padding', padding, key)),\n ...(!center && margin && getSpacingStyle('margin', margin, key)),\n },\n }\n },\n {}\n )\n\n const paddingStyles = Array.isArray(padding)\n ? getSpacingFromArray({ values: padding, ...properties('padding') })\n : typeof padding === 'object'\n ? getSpacingStyle('padding', padding, 'DEFAULT')\n : { paddingLeft: padding, paddingRight: padding }\n\n let marginStyles = Array.isArray(margin)\n ? getSpacingFromArray({ values: margin, ...properties('margin') })\n : typeof margin === 'object'\n ? getSpacingStyle('margin', margin, 'DEFAULT')\n : { marginLeft: margin, marginRight: margin }\n\n // { center: true } overrides any margin styles\n if (center) marginStyles = { marginLeft: 'auto', marginRight: 'auto' }\n\n return {\n width: '100%',\n ...paddingStyles,\n ...marginStyles,\n ...mediaScreens,\n }\n },\n supportsImportant: false,\n },\n\n // https://tailwindcss.com/docs/screen-readers\n 'sr-only': {\n output: {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: '0',\n },\n config: 'accessibility',\n },\n 'not-sr-only': {\n output: {\n position: 'static',\n width: 'auto',\n height: 'auto',\n padding: '0',\n margin: '0',\n overflow: 'visible',\n clip: 'auto',\n whiteSpace: 'normal',\n },\n config: 'accessibility',\n },\n\n // https://tailwindcss.com/docs/pointer-events\n 'pointer-events-none': { output: { pointerEvents: 'none' } },\n 'pointer-events-auto': { output: { pointerEvents: 'auto' } },\n\n // https://tailwindcss.com/docs/visibility\n visible: { output: { visibility: 'visible' } },\n invisible: { output: { visibility: 'hidden' } },\n\n // https://tailwindcss.com/docs/position\n static: { output: { position: 'static' } },\n fixed: { output: { position: 'fixed' } },\n absolute: { output: { position: 'absolute' } },\n relative: { output: { position: 'relative' } },\n sticky: { output: { position: 'sticky' } },\n\n // https://tailwindcss.com/docs/top-right-bottom-left\n 'inset-y': {\n property: ['top', 'bottom'],\n config: 'inset',\n supportsNegativeValues: true,\n },\n 'inset-x': {\n property: ['left', 'right'],\n config: 'inset',\n supportsNegativeValues: true,\n },\n inset: {\n property: ['top', 'right', 'bottom', 'left'],\n config: 'inset',\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/top-right-bottom-left\n top: { property: 'top', config: 'inset', supportsNegativeValues: true },\n bottom: { property: 'bottom', config: 'inset', supportsNegativeValues: true },\n right: { property: 'right', config: 'inset', supportsNegativeValues: true },\n left: { property: 'left', config: 'inset', supportsNegativeValues: true },\n\n // https://tailwindcss.com/docs/isolation\n isolate: { output: { isolation: 'isolate' } },\n 'isolation-auto': { output: { isolation: 'auto' } },\n\n // https://tailwindcss.com/docs/z-index\n z: { property: 'zIndex', config: 'zIndex', supportsNegativeValues: true },\n\n // https://tailwindcss.com/docs/order\n order: { property: 'order', config: 'order', supportsNegativeValues: true },\n\n // https://tailwindcss.com/docs/grid-column\n col: { property: 'gridColumn', config: 'gridColumn' },\n 'col-start': { property: 'gridColumnStart', config: 'gridColumnStart' },\n 'col-end': { property: 'gridColumnEnd', config: 'gridColumnEnd' },\n\n // Deprecated since tailwindcss v1.7.0\n 'col-gap': { property: 'columnGap', config: 'gap' },\n 'row-gap': { property: 'rowGap', config: 'gap' },\n\n // https://tailwindcss.com/docs/grid-row\n row: { property: 'gridRow', config: 'gridRow' },\n 'row-start': { property: 'gridRowStart', config: 'gridRowStart' },\n 'row-end': { property: 'gridRowEnd', config: 'gridRowEnd' },\n\n // https://tailwindcss.com/docs/float\n 'float-right': { output: { float: 'right' } },\n 'float-left': { output: { float: 'left' } },\n 'float-none': { output: { float: 'none' } },\n\n // https://tailwindcss.com/docs/clear\n 'clear-left': { output: { clear: 'left' } },\n 'clear-right': { output: { clear: 'right' } },\n 'clear-both': { output: { clear: 'both' } },\n 'clear-none': { output: { clear: 'none' } },\n\n // https://tailwindcss.com/docs/margin\n mt: { property: 'marginTop', config: 'margin', supportsNegativeValues: true },\n mr: {\n property: 'marginRight',\n config: 'margin',\n supportsNegativeValues: true,\n },\n mb: {\n property: 'marginBottom',\n config: 'margin',\n supportsNegativeValues: true,\n },\n ml: {\n property: 'marginLeft',\n config: 'margin',\n supportsNegativeValues: true,\n },\n mx: {\n property: ['marginLeft', 'marginRight'],\n config: 'margin',\n supportsNegativeValues: true,\n },\n my: {\n property: ['marginTop', 'marginBottom'],\n config: 'margin',\n supportsNegativeValues: true,\n },\n m: { property: 'margin', config: 'margin', supportsNegativeValues: true },\n\n // https://tailwindcss.com/docs/box-sizing\n 'box-border': { output: { boxSizing: 'border-box' } },\n 'box-content': { output: { boxSizing: 'content-box' } },\n\n // https://tailwindcss.com/docs/display\n block: { output: { display: 'block' } },\n 'inline-block': { output: { display: 'inline-block' } },\n inline: { output: { display: 'inline' } },\n 'inline-flex': { output: { display: 'inline-flex' } },\n table: { output: { display: 'table' } },\n 'inline-table': { output: { display: 'inline-table' } },\n 'table-caption': { output: { display: 'table-caption' } },\n 'table-cell': { output: { display: 'table-cell' } },\n 'table-column': { output: { display: 'table-column' } },\n 'table-column-group': { output: { display: 'table-column-group' } },\n 'table-footer-group': { output: { display: 'table-footer-group' } },\n 'table-header-group': { output: { display: 'table-header-group' } },\n 'table-row-group': { output: { display: 'table-row-group' } },\n 'table-row': { output: { display: 'table-row' } },\n 'flow-root': { output: { display: 'flow-root' } },\n grid: { output: { display: 'grid' } },\n 'inline-grid': { output: { display: 'inline-grid' } },\n contents: { output: { display: 'contents' } },\n 'list-item': { output: { display: 'list-item' } },\n hidden: { output: { display: 'none' } },\n\n // https://tailwindcss.com/docs/aspect-ratio\n aspect: { property: 'aspectRatio', config: 'aspectRatio' },\n\n // https://tailwindcss.com/docs/height\n h: { property: 'height', config: 'height' },\n\n // https://tailwindcss.com/docs/max-height\n 'max-h': { property: 'maxHeight', config: 'maxHeight' },\n\n // https://tailwindcss.com/docs/min-height\n 'min-h': { property: 'minHeight', config: 'minHeight' },\n\n // https://tailwindcss.com/docs/width\n w: { property: 'width', config: 'width' },\n\n // https://tailwindcss.com/docs/min-width\n 'min-w': { property: 'minWidth', config: 'minWidth' },\n\n // https://tailwindcss.com/docs/max-width\n 'max-w': { property: 'maxWidth', config: 'maxWidth' },\n\n // https://tailwindcss.com/docs/flex\n flex: [{ output: { display: 'flex' } }, { property: 'flex', config: 'flex' }],\n\n // https://tailwindcss.com/docs/flex-shrink\n shrink: { property: 'flexShrink', config: 'flexShrink' },\n 'flex-shrink': { property: 'flexShrink', config: 'flexShrink' },\n\n // https://tailwindcss.com/docs/flex-grow\n 'flex-grow': { property: 'flexGrow', config: 'flexGrow' },\n grow: { property: 'flexGrow', config: 'flexGrow' },\n\n // https://tailwindcss.com/docs/flex-basis\n basis: { property: 'flexBasis', config: 'flexBasis' },\n\n // https://tailwindcss.com/docs/table-layout\n 'table-auto': { output: { tableLayout: 'auto' } },\n 'table-fixed': { output: { tableLayout: 'fixed' } },\n\n // https://tailwindcss.com/docs/border-collapse\n 'border-collapse': { output: { borderCollapse: 'collapse' } },\n 'border-separate': { output: { borderCollapse: 'separate' } },\n\n // TODO: Border spacing\n\n // https://tailwindcss.com/docs/transform-origin\n origin: { property: 'transformOrigin', config: 'transformOrigin' },\n\n // https://tailwindcss.com/docs/translate\n 'translate-x': {\n output: ({ value }) => ({\n '--tw-translate-x': value,\n transform: cssTransformValue,\n }),\n config: 'translate',\n supportsNegativeValues: true,\n },\n 'translate-y': {\n output: ({ value }) => ({\n '--tw-translate-y': value,\n transform: cssTransformValue,\n }),\n config: 'translate',\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/rotate\n rotate: {\n output: ({ value }) => ({\n '--tw-rotate': value,\n transform: cssTransformValue,\n }),\n config: 'rotate',\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/skew\n 'skew-x': {\n output: ({ value }) => ({\n '--tw-skew-x': value,\n transform: cssTransformValue,\n }),\n config: 'skew',\n supportsNegativeValues: true,\n },\n 'skew-y': {\n output: ({ value }) => ({\n '--tw-skew-y': value,\n transform: cssTransformValue,\n }),\n config: 'skew',\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/scale\n 'scale-x': {\n output: ({ value }) => ({\n '--tw-scale-x': value,\n transform: cssTransformValue,\n }),\n config: 'scale',\n supportsNegativeValues: true,\n },\n 'scale-y': {\n output: ({ value }) => ({\n '--tw-scale-y': value,\n transform: cssTransformValue,\n }),\n config: 'scale',\n supportsNegativeValues: true,\n },\n scale: {\n output: ({ value }) => ({\n '--tw-scale-x': value,\n '--tw-scale-y': value,\n transform: cssTransformValue,\n }),\n config: 'scale',\n supportsNegativeValues: true,\n },\n\n transform: { output: { transform: cssTransformValue } },\n\n 'transform-cpu': { output: { transform: cssTransformValue } },\n\n 'transform-gpu': {\n output: {\n transform: cssTransformValue.replace(\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)'\n ),\n },\n },\n\n 'transform-none': { output: { transform: 'none' } },\n\n // https://tailwindcss.com/docs/animation\n animate: { property: 'animation', config: 'animation' },\n\n // https://tailwindcss.com/docs/cursor\n cursor: { property: 'cursor', config: 'cursor' },\n\n // https://tailwindcss.com/docs/touch-action\n 'touch-auto': { output: { touchAction: 'auto' } },\n 'touch-none': { output: { touchAction: 'none' } },\n 'touch-pan-x': {\n output: { '--tw-pan-x': 'pan-x', touchAction: cssTouchActionValue },\n },\n 'touch-pan-left': {\n output: { '--tw-pan-x': 'pan-left', touchAction: cssTouchActionValue },\n },\n 'touch-pan-right': {\n output: { '--tw-pan-x': 'pan-right', touchAction: cssTouchActionValue },\n },\n 'touch-pan-y': {\n output: { '--tw-pan-y': 'pan-y', touchAction: cssTouchActionValue },\n },\n 'touch-pan-up': {\n output: { '--tw-pan-y': 'pan-up', touchAction: cssTouchActionValue },\n },\n 'touch-pan-down': {\n output: { '--tw-pan-y': 'pan-down', touchAction: cssTouchActionValue },\n },\n 'touch-pinch-zoom': {\n output: {\n '--tw-pinch-zoom': 'pinch-zoom',\n touchAction: cssTouchActionValue,\n },\n },\n 'touch-manipulation': { output: { touchAction: 'manipulation' } },\n\n // https://tailwindcss.com/docs/user-select\n 'select-none': { output: { userSelect: 'none' } },\n 'select-text': { output: { userSelect: 'text' } },\n 'select-all': { output: { userSelect: 'all' } },\n 'select-auto': { output: { userSelect: 'auto' } },\n\n // https://tailwindcss.com/docs/resize\n 'resize-none': { output: { resize: 'none' } },\n 'resize-y': { output: { resize: 'vertical' } },\n 'resize-x': { output: { resize: 'horizontal' } },\n resize: { output: { resize: 'both' } },\n\n // https://tailwindcss.com/docs/scroll-snap-type\n 'snap-none': { output: { scrollSnapType: 'none' } },\n 'snap-x': {\n output: { scrollSnapType: 'x var(--tw-scroll-snap-strictness)' },\n },\n 'snap-y': {\n output: { scrollSnapType: 'y var(--tw-scroll-snap-strictness)' },\n },\n 'snap-both': {\n output: { scrollSnapType: 'both var(--tw-scroll-snap-strictness)' },\n },\n 'snap-mandatory': { output: { '--tw-scroll-snap-strictness': 'mandatory' } },\n 'snap-proximity': { output: { '--tw-scroll-snap-strictness': 'proximity' } },\n\n // https://tailwindcss.com/docs/scroll-snap-align\n 'snap-start': { output: { scrollSnapAlign: 'start' } },\n 'snap-end': { output: { scrollSnapAlign: 'end' } },\n 'snap-center': { output: { scrollSnapAlign: 'center' } },\n 'snap-align-none': { output: { scrollSnapAlign: 'none' } },\n\n // https://tailwindcss.com/docs/scroll-snap-stop\n 'snap-normal': { output: { scrollSnapStop: 'normal' } },\n 'snap-always': { output: { scrollSnapStop: 'always' } },\n\n // https://tailwindcss.com/docs/scroll-margin\n 'scroll-m': {\n property: 'scrollMargin',\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n 'scroll-mx': {\n property: ['scrollMarginLeft', 'scrollMarginRight'],\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n 'scroll-my': {\n property: ['scrollMarginTop', 'scrollMarginBottom'],\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n 'scroll-mt': {\n property: 'scrollMarginTop',\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n 'scroll-mr': {\n property: 'scrollMarginRight',\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n 'scroll-mb': {\n property: 'scrollMarginBottom',\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n 'scroll-ml': {\n property: 'scrollMarginLeft',\n config: 'scrollMargin',\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/scroll-padding\n 'scroll-p': { property: 'scrollPadding', config: 'scrollPadding' },\n 'scroll-px': {\n property: ['scrollPaddingLeft', 'scrollPaddingRight'],\n config: 'scrollPadding',\n },\n 'scroll-py': {\n property: ['scrollPaddingTop', 'scrollPaddingBottom'],\n config: 'scrollPadding',\n },\n 'scroll-pt': { property: 'scrollPaddingTop', config: 'scrollPadding' },\n 'scroll-pr': { property: 'scrollPaddingRight', config: 'scrollPadding' },\n 'scroll-pb': { property: 'scrollPaddingBottom', config: 'scrollPadding' },\n 'scroll-pl': { property: 'scrollPaddingLeft', config: 'scrollPadding' },\n\n // https://tailwindcss.com/docs/list-style-position\n 'list-inside': { output: { listStylePosition: 'inside' } },\n 'list-outside': { output: { listStylePosition: 'outside' } },\n\n // https://tailwindcss.com/docs/list-style-type\n list: { property: 'listStyleType', config: 'listStyleType' },\n\n // https://tailwindcss.com/docs/appearance\n 'appearance-none': { output: { appearance: 'none' } },\n\n // https://tailwindcss.com/docs/columns\n columns: { property: 'columns', config: 'columns' },\n\n // https://tailwindcss.com/docs/break-before\n 'break-before-auto': { output: { breakBefore: 'auto' } },\n 'break-before-avoid': { output: { breakBefore: 'avoid' } },\n 'break-before-all': { output: { breakBefore: 'all' } },\n 'break-before-avoid-page': { output: { breakBefore: 'avoid-page' } },\n 'break-before-page': { output: { breakBefore: 'page' } },\n 'break-before-left': { output: { breakBefore: 'left' } },\n 'break-before-right': { output: { breakBefore: 'right' } },\n 'break-before-column': { output: { breakBefore: 'column' } },\n\n // https://tailwindcss.com/docs/break-inside\n 'break-inside-auto': { output: { breakInside: 'auto' } },\n 'break-inside-avoid': { output: { breakInside: 'avoid' } },\n 'break-inside-avoid-page': { output: { breakInside: 'avoid-page' } },\n 'break-inside-avoid-column': { output: { breakInside: 'avoid-column' } },\n\n // https://tailwindcss.com/docs/break-after\n 'break-after-auto': { output: { breakAfter: 'auto' } },\n 'break-after-avoid': { output: { breakAfter: 'avoid' } },\n 'break-after-all': { output: { breakAfter: 'all' } },\n 'break-after-avoid-page': { output: { breakAfter: 'avoid-page' } },\n 'break-after-page': { output: { breakAfter: 'page' } },\n 'break-after-left': { output: { breakAfter: 'left' } },\n 'break-after-right': { output: { breakAfter: 'right' } },\n 'break-after-column': { output: { breakAfter: 'column' } },\n\n // https://tailwindcss.com/docs/grid-auto-columns\n 'auto-cols': { property: 'gridAutoColumns', config: 'gridAutoColumns' },\n\n // https://tailwindcss.com/docs/grid-auto-flow\n 'grid-flow-row': { output: { gridAutoFlow: 'row' } },\n 'grid-flow-col': { output: { gridAutoFlow: 'column' } },\n 'grid-flow-row-dense': { output: { gridAutoFlow: 'row dense' } },\n 'grid-flow-col-dense': { output: { gridAutoFlow: 'column dense' } },\n\n // https://tailwindcss.com/docs/grid-auto-rows\n 'auto-rows': { property: 'gridAutoRows', config: 'gridAutoRows' },\n\n // https://tailwindcss.com/docs/grid-template-columns\n 'grid-cols': {\n property: 'gridTemplateColumns',\n config: 'gridTemplateColumns',\n },\n\n // https://tailwindcss.com/docs/grid-template-rows\n 'grid-rows': { property: 'gridTemplateRows', config: 'gridTemplateRows' },\n\n // https://tailwindcss.com/docs/flexbox-direction\n 'flex-row': { output: { flexDirection: 'row' } },\n 'flex-row-reverse': { output: { flexDirection: 'row-reverse' } },\n 'flex-col': { output: { flexDirection: 'column' } },\n 'flex-col-reverse': {\n output: { flexDirection: 'column-reverse' },\n },\n\n // https://tailwindcss.com/docs/flex-wrap\n 'flex-wrap': { output: { flexWrap: 'wrap' } },\n 'flex-wrap-reverse': { output: { flexWrap: 'wrap-reverse' } },\n 'flex-nowrap': { output: { flexWrap: 'nowrap' } },\n\n // https://tailwindcss.com/docs/place-content\n 'place-content-center': { output: { placeContent: 'center' } },\n 'place-content-start': { output: { placeContent: 'start' } },\n 'place-content-end': { output: { placeContent: 'end' } },\n 'place-content-between': { output: { placeContent: 'space-between' } },\n 'place-content-around': { output: { placeContent: 'space-around' } },\n 'place-content-evenly': { output: { placeContent: 'space-evenly' } },\n 'place-content-stretch': { output: { placeContent: 'stretch' } },\n\n // https://tailwindcss.com/docs/place-items\n 'place-items-start': { output: { placeItems: 'start' } },\n 'place-items-end': { output: { placeItems: 'end' } },\n 'place-items-center': { output: { placeItems: 'center' } },\n 'place-items-stretch': { output: { placeItems: 'stretch' } },\n\n // https://tailwindcss.com/docs/align-content\n 'content-center': { output: { alignContent: 'center' } },\n 'content-start': { output: { alignContent: 'flex-start' } },\n 'content-end': { output: { alignContent: 'flex-end' } },\n 'content-between': { output: { alignContent: 'space-between' } },\n 'content-around': { output: { alignContent: 'space-around' } },\n 'content-evenly': { output: { alignContent: 'space-evenly' } },\n\n // https://tailwindcss.com/docs/align-items\n 'items-start': { output: { alignItems: 'flex-start' } },\n 'items-end': { output: { alignItems: 'flex-end' } },\n 'items-center': { output: { alignItems: 'center' } },\n 'items-baseline': { output: { alignItems: 'baseline' } },\n 'items-stretch': { output: { alignItems: 'stretch' } },\n\n // https://tailwindcss.com/docs/justify-content\n 'justify-start': { output: { justifyContent: 'flex-start' } },\n 'justify-end': { output: { justifyContent: 'flex-end' } },\n 'justify-center': { output: { justifyContent: 'center' } },\n 'justify-between': { output: { justifyContent: 'space-between' } },\n 'justify-around': { output: { justifyContent: 'space-around' } },\n 'justify-evenly': { output: { justifyContent: 'space-evenly' } },\n\n // https://tailwindcss.com/docs/justify-items\n 'justify-items-start': { output: { justifyItems: 'start' } },\n 'justify-items-end': { output: { justifyItems: 'end' } },\n 'justify-items-center': { output: { justifyItems: 'center' } },\n 'justify-items-stretch': { output: { justifyItems: 'stretch' } },\n\n // https://tailwindcss.com/docs/gap\n gap: { property: 'gap', config: 'gap' },\n 'gap-x': { property: 'columnGap', config: 'gap' },\n 'gap-y': { property: 'rowGap', config: 'gap' },\n\n // https://tailwindcss.com/docs/space\n 'space-y': {\n config: 'space',\n output: ({ value }) => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-y-reverse': '0',\n marginTop: `calc(${value} * calc(1 - var(--tw-space-y-reverse)))`,\n marginBottom: `calc(${value} * var(--tw-space-y-reverse))`,\n },\n }),\n supportsNegativeValues: true,\n },\n 'space-x': {\n config: 'space',\n output: ({ value }) => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-x-reverse': '0',\n marginRight: `calc(${value} * var(--tw-space-x-reverse))`,\n marginLeft: `calc(${value} * calc(1 - var(--tw-space-x-reverse)))`,\n },\n }),\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/space\n 'space-x-reverse': {\n output: {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-x-reverse': '1',\n },\n },\n },\n 'space-y-reverse': {\n output: {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-y-reverse': '1',\n },\n },\n },\n\n 'divide-y': {\n config: 'divideWidth',\n output: ({ value }) => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-y-reverse': '0',\n borderTopWidth: `calc(${value} * calc(1 - var(--tw-divide-y-reverse)))`,\n borderBottomWidth: `calc(${value} * var(--tw-divide-y-reverse))`,\n },\n }),\n coerced: {\n 'line-width': value => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-y-reverse': '0',\n borderTopWidth: `calc(${value} * calc(1 - var(--tw-divide-y-reverse)))`,\n borderBottomWidth: `calc(${value} * var(--tw-divide-y-reverse))`,\n },\n }),\n length: value => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-y-reverse': '0',\n borderTopWidth: `calc(${value} * calc(1 - var(--tw-divide-y-reverse)))`,\n borderBottomWidth: `calc(${value} * var(--tw-divide-y-reverse))`,\n },\n }),\n },\n },\n 'divide-x': {\n config: 'divideWidth',\n output: ({ value }) => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-x-reverse': '0',\n borderRightWidth: `calc(${value} * var(--tw-divide-x-reverse))`,\n borderLeftWidth: `calc(${value} * calc(1 - var(--tw-divide-x-reverse)))`,\n },\n }),\n coerced: {\n 'line-width': value => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-x-reverse': '0',\n borderRightWidth: `calc(${value} * var(--tw-divide-x-reverse))`,\n borderLeftWidth: `calc(${value} * calc(1 - var(--tw-divide-x-reverse)))`,\n },\n }),\n length: value => ({\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-x-reverse': '0',\n borderRightWidth: `calc(${value} * var(--tw-divide-x-reverse))`,\n borderLeftWidth: `calc(${value} * calc(1 - var(--tw-divide-x-reverse)))`,\n },\n }),\n },\n },\n divide: {\n config: 'divideColor',\n coerced: {\n color: {\n property: 'borderColor',\n variable: '--tw-divide-opacity',\n wrapWith: '> :not([hidden]) ~ :not([hidden])',\n forceReturn: true,\n },\n },\n },\n\n // https://tailwindcss.com/docs/divide-width\n 'divide-x-reverse': {\n output: {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-x-reverse': '1',\n },\n },\n },\n 'divide-y-reverse': {\n output: {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-y-reverse': '1',\n },\n },\n },\n\n // https://tailwindcss.com/docs/divide-style\n 'divide-solid': {\n output: { '> :not([hidden]) ~ :not([hidden])': { borderStyle: 'solid' } },\n },\n 'divide-dashed': {\n output: { '> :not([hidden]) ~ :not([hidden])': { borderStyle: 'dashed' } },\n },\n 'divide-dotted': {\n output: { '> :not([hidden]) ~ :not([hidden])': { borderStyle: 'dotted' } },\n },\n 'divide-double': {\n output: { '> :not([hidden]) ~ :not([hidden])': { borderStyle: 'double' } },\n },\n 'divide-none': {\n output: { '> :not([hidden]) ~ :not([hidden])': { borderStyle: 'none' } },\n },\n\n // https://tailwindcss.com/docs/divide-width/\n 'divide-opacity': {\n config: 'divideOpacity',\n property: '--tw-divide-opacity',\n output: ({ value }) => ({\n '> :not([hidden]) ~ :not([hidden])': { '--tw-divide-opacity': value },\n }),\n },\n\n // https://tailwindcss.com/docs/place-self\n 'place-self-auto': { output: { placeSelf: 'auto' } },\n 'place-self-start': { output: { placeSelf: 'start' } },\n 'place-self-end': { output: { placeSelf: 'end' } },\n 'place-self-center': { output: { placeSelf: 'center' } },\n 'place-self-stretch': { output: { placeSelf: 'stretch' } },\n\n // https://tailwindcss.com/docs/align-self\n 'self-auto': { output: { alignSelf: 'auto' } },\n 'self-start': { output: { alignSelf: 'flex-start' } },\n 'self-end': { output: { alignSelf: 'flex-end' } },\n 'self-center': { output: { alignSelf: 'center' } },\n 'self-stretch': { output: { alignSelf: 'stretch' } },\n 'self-baseline': { output: { alignSelf: 'baseline' } },\n\n // https://tailwindcss.com/docs/justify-self\n 'justify-self-auto': { output: { justifySelf: 'auto' } },\n 'justify-self-start': { output: { justifySelf: 'start' } },\n 'justify-self-end': { output: { justifySelf: 'end' } },\n 'justify-self-center': { output: { justifySelf: 'center' } },\n 'justify-self-stretch': { output: { justifySelf: 'stretch' } },\n\n // https://tailwindcss.com/docs/overflow\n 'overflow-auto': { output: { overflow: 'auto' }, config: 'overflow' },\n 'overflow-hidden': { output: { overflow: 'hidden' }, config: 'overflow' },\n 'overflow-clip': { output: { overflow: 'clip' }, config: 'overflow' },\n 'overflow-visible': { output: { overflow: 'visible' }, config: 'overflow' },\n 'overflow-scroll': { output: { overflow: 'scroll' }, config: 'overflow' },\n 'overflow-x-auto': { output: { overflowX: 'auto' }, config: 'overflow' },\n 'overflow-y-auto': { output: { overflowY: 'auto' }, config: 'overflow' },\n 'overflow-x-hidden': { output: { overflowX: 'hidden' }, config: 'overflow' },\n 'overflow-y-hidden': { output: { overflowY: 'hidden' }, config: 'overflow' },\n 'overflow-x-clip': { output: { overflowX: 'clip' }, config: 'overflow' },\n 'overflow-y-clip': { output: { overflowY: 'clip' }, config: 'overflow' },\n 'overflow-x-visible': {\n output: { overflowX: 'visible' },\n config: 'overflow',\n },\n 'overflow-y-visible': {\n output: { overflowY: 'visible' },\n config: 'overflow',\n },\n 'overflow-x-scroll': { output: { overflowX: 'scroll' }, config: 'overflow' },\n 'overflow-y-scroll': { output: { overflowY: 'scroll' }, config: 'overflow' },\n\n // https://tailwindcss.com/docs/overscroll-behavior\n 'overscroll-auto': { output: { overscrollBehavior: 'auto' } },\n 'overscroll-contain': { output: { overscrollBehavior: 'contain' } },\n 'overscroll-none': { output: { overscrollBehavior: 'none' } },\n 'overscroll-y-auto': { output: { overscrollBehaviorY: 'auto' } },\n 'overscroll-y-contain': { output: { overscrollBehaviorY: 'contain' } },\n 'overscroll-y-none': { output: { overscrollBehaviorY: 'none' } },\n 'overscroll-x-auto': { output: { overscrollBehaviorX: 'auto' } },\n 'overscroll-x-contain': { output: { overscrollBehaviorX: 'contain' } },\n 'overscroll-x-none': { output: { overscrollBehaviorX: 'none' } },\n\n // https://tailwindcss.com/docs/scroll-behavior\n 'scroll-auto': { output: { scrollBehavior: 'auto' } },\n 'scroll-smooth': { output: { scrollBehavior: 'smooth' } },\n\n // https://tailwindcss.com/docs/text-overflow\n truncate: {\n output: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n },\n 'overflow-ellipsis': { output: { textOverflow: 'ellipsis' } },\n 'text-ellipsis': { output: { textOverflow: 'ellipsis' } }, // Deprecated\n 'text-clip': { output: { textOverflow: 'clip' } },\n\n // https://tailwindcss.com/docs/whitespace\n 'whitespace-normal': { output: { whiteSpace: 'normal' } },\n 'whitespace-nowrap': { output: { whiteSpace: 'nowrap' } },\n 'whitespace-pre': { output: { whiteSpace: 'pre' } },\n 'whitespace-pre-line': { output: { whiteSpace: 'pre-line' } },\n 'whitespace-pre-wrap': { output: { whiteSpace: 'pre-wrap' } },\n\n // https://tailwindcss.com/docs/word-break\n 'break-normal': {\n output: { wordBreak: 'normal', overflowWrap: 'normal' },\n config: 'wordbreak',\n },\n 'break-words': {\n output: { overflowWrap: 'break-word' },\n config: 'wordbreak',\n },\n 'break-all': { output: { wordBreak: 'break-all' }, config: 'wordbreak' },\n\n // https://tailwindcss.com/docs/border-radius\n 'rounded-t': {\n property: ['borderTopLeftRadius', 'borderTopRightRadius'],\n config: 'borderRadius',\n },\n 'rounded-r': {\n property: ['borderTopRightRadius', 'borderBottomRightRadius'],\n config: 'borderRadius',\n },\n 'rounded-b': {\n property: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n config: 'borderRadius',\n },\n 'rounded-l': {\n property: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n config: 'borderRadius',\n },\n 'rounded-tl': { property: 'borderTopLeftRadius', config: 'borderRadius' },\n 'rounded-tr': { property: 'borderTopRightRadius', config: 'borderRadius' },\n 'rounded-br': { property: 'borderBottomRightRadius', config: 'borderRadius' },\n 'rounded-bl': { property: 'borderBottomLeftRadius', config: 'borderRadius' },\n rounded: { property: 'borderRadius', config: 'borderRadius' },\n\n // https://tailwindcss.com/docs/border-style\n 'border-solid': { output: { borderStyle: 'solid' } },\n 'border-dashed': { output: { borderStyle: 'dashed' } },\n 'border-dotted': { output: { borderStyle: 'dotted' } },\n 'border-double': { output: { borderStyle: 'double' } },\n 'border-hidden': { output: { borderStyle: 'hidden' } },\n 'border-none': { output: { borderStyle: 'none' } },\n\n border: [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': { property: 'borderWidth' },\n length: { property: 'borderWidth' },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: { property: 'borderColor', variable: '--tw-border-opacity' },\n },\n },\n ],\n\n 'border-x': [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': {\n property: ['borderLeftWidth', 'borderRightWidth'],\n },\n length: {\n property: ['borderLeftWidth', 'borderRightWidth'],\n },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: {\n property: ['borderLeftColor', 'borderRightColor'],\n variable: '--tw-border-opacity',\n },\n },\n },\n ],\n 'border-y': [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': {\n property: ['borderTopColor', 'borderBottomColor'],\n },\n length: {\n property: ['borderTopColor', 'borderBottomColor'],\n },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: {\n property: ['borderTopColor', 'borderBottomColor'],\n variable: '--tw-border-opacity',\n },\n },\n },\n ],\n\n // https://tailwindcss.com/docs/border-width\n 'border-t': [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': { property: 'borderTopWidth' },\n length: { property: 'borderTopWidth' },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: {\n property: 'borderTopColor',\n variable: '--tw-border-opacity',\n },\n },\n },\n ],\n 'border-b': [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': { property: 'borderBottomWidth' },\n length: { property: 'borderBottomWidth' },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: {\n property: 'borderBottomColor',\n variable: '--tw-border-opacity',\n },\n },\n },\n ],\n 'border-l': [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': { property: 'borderLeftWidth' },\n length: { property: 'borderLeftWidth' },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: {\n property: 'borderLeftColor',\n variable: '--tw-border-opacity',\n },\n },\n },\n ],\n 'border-r': [\n // https://tailwindcss.com/docs/border-width\n {\n config: 'borderWidth',\n coerced: {\n 'line-width': { property: 'borderRightWidth' },\n length: { property: 'borderRightWidth' },\n },\n },\n // https://tailwindcss.com/docs/border-color\n {\n config: 'borderColor',\n coerced: {\n color: {\n property: 'borderRightColor',\n variable: '--tw-border-opacity',\n },\n },\n },\n ],\n\n 'border-opacity': {\n property: '--tw-border-opacity',\n config: 'borderOpacity',\n },\n\n bg: [\n // https://tailwindcss.com/docs/background-image\n // https://tailwindcss.com/docs/background-attachment\n {\n config: 'backgroundImage',\n coerced: {\n url: { property: 'backgroundImage' },\n image: { property: 'backgroundImage' },\n },\n },\n // https://tailwindcss.com/docs/background-position\n // https://tailwindcss.com/docs/background-origin\n {\n config: 'backgroundPosition',\n coerced: {\n position: { property: 'backgroundPosition' },\n percentage: { property: 'backgroundPosition' },\n },\n },\n // https://tailwindcss.com/docs/background-size\n {\n config: 'backgroundSize',\n coerced: { length: { property: 'backgroundSize' } },\n },\n // https://tailwindcss.com/docs/background-color\n {\n config: 'backgroundColor',\n coerced: {\n color: { property: 'backgroundColor', variable: '--tw-bg-opacity' },\n },\n },\n ],\n\n // https://tailwindcss.com/docs/background-opacity\n 'bg-opacity': {\n property: '--tw-bg-opacity',\n config: 'backgroundOpacity',\n },\n\n // https://tailwindcss.com/docs/gradient-color-stops\n from: {\n config: 'gradientColorStops',\n coerced: {\n color: {\n output: (value, { withAlpha }) => ({\n '--tw-gradient-from': withAlpha(value) || value,\n '--tw-gradient-stops': `var(--tw-gradient-from), var(--tw-gradient-to, ${\n withAlpha(value, '0', 'rgb(255 255 255 / 0)') || value\n })`,\n }),\n },\n },\n },\n via: {\n config: 'gradientColorStops',\n coerced: {\n color: {\n output: (value, { withAlpha }) => ({\n '--tw-gradient-stops': `var(--tw-gradient-from), ${\n withAlpha(value) || value\n }, var(--tw-gradient-to, ${withAlpha(\n value,\n '0',\n 'rgb(255 255 255 / 0)'\n )})`,\n }),\n },\n },\n },\n to: {\n config: 'gradientColorStops',\n coerced: {\n color: {\n output: (value, { withAlpha }) => ({\n '--tw-gradient-to': `${withAlpha(value) || value}`,\n }),\n },\n },\n },\n\n // https://tailwindcss.com/docs/box-decoration-break\n 'decoration-slice': { output: { boxDecorationBreak: 'slice' } }, // Deprecated\n 'decoration-clone': { output: { boxDecorationBreak: 'clone' } }, // Deprecated\n 'box-decoration-slice': { output: { boxDecorationBreak: 'slice' } },\n 'box-decoration-clone': { output: { boxDecorationBreak: 'clone' } },\n\n // https://tailwindcss.com/docs/background-attachment\n 'bg-fixed': { output: { backgroundAttachment: 'fixed' } },\n 'bg-local': { output: { backgroundAttachment: 'local' } },\n 'bg-scroll': { output: { backgroundAttachment: 'scroll' } },\n\n // https://tailwindcss.com/docs/background-clip\n 'bg-clip-border': { output: { backgroundClip: 'border-box' } },\n 'bg-clip-padding': { output: { backgroundClip: 'padding-box' } },\n 'bg-clip-content': { output: { backgroundClip: 'content-box' } },\n 'bg-clip-text': { output: { backgroundClip: 'text' } },\n\n // https://tailwindcss.com/docs/background-repeat\n 'bg-repeat': { output: { backgroundRepeat: 'repeat' } },\n 'bg-no-repeat': { output: { backgroundRepeat: 'no-repeat' } },\n 'bg-repeat-x': { output: { backgroundRepeat: 'repeat-x' } },\n 'bg-repeat-y': { output: { backgroundRepeat: 'repeat-y' } },\n 'bg-repeat-round': { output: { backgroundRepeat: 'round' } },\n 'bg-repeat-space': { output: { backgroundRepeat: 'space' } },\n\n // https://tailwindcss.com/docs/background-origin\n 'bg-origin-border': { output: { backgroundOrigin: 'border-box' } },\n 'bg-origin-padding': { output: { backgroundOrigin: 'padding-box' } },\n 'bg-origin-content': { output: { backgroundOrigin: 'content-box' } },\n\n // https://tailwindcss.com/docs/fill\n fill: {\n config: 'fill',\n coerced: { color: { property: 'fill' }, any: { property: 'fill' } },\n },\n\n stroke: [\n // https://tailwindcss.com/docs/stroke-width\n {\n config: 'strokeWidth',\n coerced: {\n length: { property: 'strokeWidth' },\n number: { property: 'strokeWidth' },\n percentage: { property: 'strokeWidth' },\n },\n },\n // https://tailwindcss.com/docs/stroke\n {\n config: 'stroke',\n coerced: {\n url: { property: 'stroke' },\n color: { property: 'stroke' },\n },\n },\n ],\n\n // https://tailwindcss.com/docs/object-fit\n 'object-contain': { output: { objectFit: 'contain' } },\n 'object-cover': { output: { objectFit: 'cover' } },\n 'object-fill': { output: { objectFit: 'fill' } },\n 'object-none': { output: { objectFit: 'none' } },\n 'object-scale-down': { output: { objectFit: 'scale-down' } },\n\n // https://tailwindcss.com/docs/object-position\n object: { property: 'objectPosition', config: 'objectPosition' },\n\n // https://tailwindcss.com/docs/padding\n pt: { property: 'paddingTop', config: 'padding' },\n pr: { property: 'paddingRight', config: 'padding' },\n pb: { property: 'paddingBottom', config: 'padding' },\n pl: { property: 'paddingLeft', config: 'padding' },\n px: { property: ['paddingLeft', 'paddingRight'], config: 'padding' },\n py: { property: ['paddingTop', 'paddingBottom'], config: 'padding' },\n p: { property: 'padding', config: 'padding' },\n\n // https://tailwindcss.com/docs/text-align\n 'text-left': { output: { textAlign: 'left' } },\n 'text-center': { output: { textAlign: 'center' } },\n 'text-right': { output: { textAlign: 'right' } },\n 'text-justify': { output: { textAlign: 'justify' } },\n 'text-start': { output: { textAlign: 'start' } },\n 'text-end': { output: { textAlign: 'end' } },\n\n // https://tailwindcss.com/docs/text-indent\n indent: {\n config: 'textIndent',\n coerced: {\n length: { property: 'textIndent' },\n position: { property: 'textIndent' },\n lookup: { property: 'textIndent' },\n },\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/vertical-align\n 'align-baseline': { output: { verticalAlign: 'baseline' } },\n 'align-top': { output: { verticalAlign: 'top' } },\n 'align-middle': { output: { verticalAlign: 'middle' } },\n 'align-bottom': { output: { verticalAlign: 'bottom' } },\n 'align-text-top': { output: { verticalAlign: 'text-top' } },\n 'align-text-bottom': { output: { verticalAlign: 'text-bottom' } },\n 'align-sub': { output: { verticalAlign: 'sub' } },\n 'align-super': { output: { verticalAlign: 'super' } },\n align: { output: ({ value }) => value && { verticalAlign: value } },\n\n font: [\n // https://tailwindcss.com/docs/font-weight\n {\n config: 'fontWeight',\n coerced: { number: { property: 'fontWeight' } },\n },\n // https://tailwindcss.com/docs/font-family\n {\n config: 'fontFamily',\n coerced: {\n 'generic-name': { property: 'fontFamily' },\n 'family-name': { property: 'fontFamily' },\n },\n },\n ],\n\n // https://tailwindcss.com/docs/text-transform\n uppercase: { output: { textTransform: 'uppercase' } },\n lowercase: { output: { textTransform: 'lowercase' } },\n capitalize: { output: { textTransform: 'capitalize' } },\n 'normal-case': { output: { textTransform: 'none' } },\n\n // https://tailwindcss.com/docs/font-style\n italic: { output: { fontStyle: 'italic' } },\n 'not-italic': { output: { fontStyle: 'normal' } },\n\n // https://tailwindcss.com/docs/font-variant-numeric\n 'normal-nums': { output: { fontVariantNumeric: 'normal' } },\n ordinal: {\n output: {\n '--tw-ordinal': 'ordinal',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'slashed-zero': {\n output: {\n '--tw-slashed-zero': 'slashed-zero',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'lining-nums': {\n output: {\n '--tw-numeric-figure': 'lining-nums',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'oldstyle-nums': {\n output: {\n '--tw-numeric-figure': 'oldstyle-nums',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'proportional-nums': {\n output: {\n '--tw-numeric-spacing': 'proportional-nums',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'tabular-nums': {\n output: {\n '--tw-numeric-spacing': 'tabular-nums',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'diagonal-fractions': {\n output: {\n '--tw-numeric-fraction': 'diagonal-fractions',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n 'stacked-fractions': {\n output: {\n '--tw-numeric-fraction': 'stacked-fractions',\n fontVariantNumeric: cssFontVariantNumericValue,\n },\n },\n\n // https://tailwindcss.com/docs/line-height\n leading: { property: 'lineHeight', config: 'lineHeight' },\n\n // https://tailwindcss.com/docs/letter-spacing\n tracking: {\n property: 'letterSpacing',\n config: 'letterSpacing',\n supportsNegativeValues: true,\n },\n\n text: [\n // https://tailwindcss.com/docs/text-color\n {\n config: 'textColor',\n coerced: {\n color: {\n property: 'color',\n variable: '--tw-text-opacity',\n },\n },\n },\n // https://tailwindcss.com/docs/font-size\n {\n config: 'fontSize',\n coerced: {\n 'absolute-size': { property: 'fontSize' },\n 'relative-size': { property: 'fontSize' },\n length: { property: 'fontSize' },\n percentage: { property: 'fontSize' },\n },\n },\n ],\n\n 'text-opacity': { property: '--tw-text-opacity', config: 'textOpacity' },\n\n // https://tailwindcss.com/docs/text-decoration\n underline: { output: { textDecorationLine: 'underline' } },\n overline: { output: { textDecorationLine: 'overline' } },\n 'line-through': { output: { textDecorationLine: 'line-through' } },\n 'no-underline': { output: { textDecorationLine: 'none' } },\n\n decoration: [\n // https://tailwindcss.com/docs/text-decoration-color\n {\n config: 'textDecorationColor',\n coerced: { color: { property: 'textDecorationColor' } },\n },\n // https://tailwindcss.com/docs/text-decoration-thickness\n {\n config: 'textDecorationThickness',\n coerced: {\n length: { property: 'textDecorationThickness' },\n percentage: { property: 'textDecorationThickness' },\n any: { property: 'textDecorationThickness' },\n },\n },\n ],\n\n // https://tailwindcss.com/docs/text-decoration-style\n 'decoration-solid': { output: { textDecorationStyle: 'solid' } },\n 'decoration-double': { output: { textDecorationStyle: 'double' } },\n 'decoration-dotted': { output: { textDecorationStyle: 'dotted' } },\n 'decoration-dashed': { output: { textDecorationStyle: 'dashed' } },\n 'decoration-wavy': { output: { textDecorationStyle: 'wavy' } },\n\n // https://tailwindcss.com/docs/text-underline-offset\n 'underline-offset': {\n config: 'textUnderlineOffset',\n coerced: {\n length: { property: 'textUnderlineOffset' },\n percentage: { property: 'textUnderlineOffset' },\n },\n },\n\n // https://tailwindcss.com/docs/font-smoothing\n antialiased: {\n output: {\n WebkitFontSmoothing: 'antialiased',\n MozOsxFontSmoothing: 'grayscale',\n },\n },\n 'subpixel-antialiased': {\n output: { WebkitFontSmoothing: 'auto', MozOsxFontSmoothing: 'auto' },\n },\n\n // https://tailwindcss.com/docs/placeholder-color\n placeholder: {\n config: 'placeholderColor',\n coerced: {\n color: {\n property: 'color',\n variable: '--tw-placeholder-opacity',\n wrapWith: '::placeholder',\n },\n any: {\n property: 'color',\n wrapWith: '::placeholder',\n },\n },\n },\n\n // https://tailwindcss.com/docs/placeholder-opacity\n 'placeholder-opacity': {\n config: 'placeholderOpacity',\n output: ({ value }) => ({\n '::placeholder': { '--tw-placeholder-opacity': value },\n }),\n },\n\n // https://tailwindcss.com/docs/caret-color\n caret: {\n config: 'caretColor',\n coerced: {\n color: { property: 'caretColor' },\n any: { property: 'caretColor' },\n },\n },\n\n // https://tailwindcss.com/docs/accent-color\n accent: {\n config: 'accentColor',\n coerced: {\n color: { property: 'accentColor' },\n any: { property: 'accentColor' },\n },\n },\n\n // https://tailwindcss.com/docs/opacity\n opacity: { property: 'opacity', config: 'opacity' },\n\n // https://tailwindcss.com/docs/background-blend-mode\n 'bg-blend-normal': { output: { backgroundBlendMode: 'normal' } },\n 'bg-blend-multiply': { output: { backgroundBlendMode: 'multiply' } },\n 'bg-blend-screen': { output: { backgroundBlendMode: 'screen' } },\n 'bg-blend-overlay': { output: { backgroundBlendMode: 'overlay' } },\n 'bg-blend-darken': { output: { backgroundBlendMode: 'darken' } },\n 'bg-blend-lighten': { output: { backgroundBlendMode: 'lighten' } },\n 'bg-blend-color-dodge': { output: { backgroundBlendMode: 'color-dodge' } },\n 'bg-blend-color-burn': { output: { backgroundBlendMode: 'color-burn' } },\n 'bg-blend-hard-light': { output: { backgroundBlendMode: 'hard-light' } },\n 'bg-blend-soft-light': { output: { backgroundBlendMode: 'soft-light' } },\n 'bg-blend-difference': { output: { backgroundBlendMode: 'difference' } },\n 'bg-blend-exclusion': { output: { backgroundBlendMode: 'exclusion' } },\n 'bg-blend-hue': { output: { backgroundBlendMode: 'hue' } },\n 'bg-blend-saturation': { output: { backgroundBlendMode: 'saturation' } },\n 'bg-blend-color': { output: { backgroundBlendMode: 'color' } },\n 'bg-blend-luminosity': { output: { backgroundBlendMode: 'luminosity' } },\n\n // https://tailwindcss.com/docs/mix-blend-mode\n 'mix-blend-normal': { output: { mixBlendMode: 'normal' } },\n 'mix-blend-multiply': { output: { mixBlendMode: 'multiply' } },\n 'mix-blend-screen': { output: { mixBlendMode: 'screen' } },\n 'mix-blend-overlay': { output: { mixBlendMode: 'overlay' } },\n 'mix-blend-darken': { output: { mixBlendMode: 'darken' } },\n 'mix-blend-lighten': { output: { mixBlendMode: 'lighten' } },\n 'mix-blend-color-dodge': { output: { mixBlendMode: 'color-dodge' } },\n 'mix-blend-color-burn': { output: { mixBlendMode: 'color-burn' } },\n 'mix-blend-hard-light': { output: { mixBlendMode: 'hard-light' } },\n 'mix-blend-soft-light': { output: { mixBlendMode: 'soft-light' } },\n 'mix-blend-difference': { output: { mixBlendMode: 'difference' } },\n 'mix-blend-exclusion': { output: { mixBlendMode: 'exclusion' } },\n 'mix-blend-hue': { output: { mixBlendMode: 'hue' } },\n 'mix-blend-saturation': { output: { mixBlendMode: 'saturation' } },\n 'mix-blend-color': { output: { mixBlendMode: 'color' } },\n 'mix-blend-luminosity': { output: { mixBlendMode: 'luminosity' } },\n\n shadow: [\n // https://tailwindcss.com/docs/box-shadow\n {\n config: 'boxShadow',\n coerced: { shadow: { config: 'boxShadow' } },\n },\n // https://tailwindcss.com/docs/box-shadow-color\n {\n config: 'boxShadowColor',\n coerced: {\n color: {\n output: (value, { withAlpha }) => ({\n '--tw-shadow-color': withAlpha(value) || value,\n '--tw-shadow': 'var(--tw-shadow-colored)',\n }),\n },\n },\n },\n ],\n\n // https://tailwindcss.com/docs/outline-style\n 'outline-none': {\n output: { outline: '2px solid transparent', outlineOffset: '2px' },\n },\n 'outline-dashed': { output: { outlineStyle: 'dashed' } },\n 'outline-dotted': { output: { outlineStyle: 'dotted' } },\n 'outline-double': { output: { outlineStyle: 'double' } },\n 'outline-hidden': { output: { outlineStyle: 'hidden' } },\n\n outline: [\n { output: { outlineStyle: 'solid' } },\n // https://tailwindcss.com/docs/outline-width\n {\n config: 'outlineWidth',\n coerced: {\n length: { property: 'outlineWidth' },\n number: { property: 'outlineWidth' },\n percentage: { property: 'outlineWidth' },\n },\n },\n // https://tailwindcss.com/docs/outline-color\n {\n config: 'outlineColor',\n coerced: { color: { property: 'outlineColor' } },\n },\n ],\n\n // https://tailwindcss.com/docs/outline-offset\n 'outline-offset': {\n config: 'outlineOffset',\n coerced: {\n length: { property: 'outlineOffset' },\n number: { property: 'outlineOffset' },\n percentage: { property: 'outlineOffset' },\n },\n },\n\n ring: [\n // https://tailwindcss.com/docs/ring-width\n {\n config: 'ringWidth',\n coerced: {\n length: value => ({\n '--tw-ring-offset-shadow':\n 'var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)',\n '--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(${value} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,\n boxShadow: [\n `var(--tw-ring-offset-shadow)`,\n `var(--tw-ring-shadow)`,\n `var(--tw-shadow, 0 0 #0000)`,\n ].join(', '),\n }),\n },\n },\n // https://tailwindcss.com/docs/ring-color\n {\n config: 'ringColor',\n coerced: {\n color: { property: '--tw-ring-color', variable: '--tw-ring-opacity' },\n },\n },\n ],\n\n 'ring-inset': { output: { '--tw-ring-inset': 'inset' } },\n\n // https://tailwindcss.com/docs/ring-opacity\n 'ring-opacity': { property: '--tw-ring-opacity', config: 'ringOpacity' },\n\n 'ring-offset': [\n // https://tailwindcss.com/docs/ring-offset-width\n {\n config: 'ringOffsetWidth',\n coerced: { length: { property: '--tw-ring-offset-width' } },\n },\n // https://tailwindcss.com/docs/ring-offset-color\n {\n config: 'ringOffsetColor',\n coerced: { color: { property: '--tw-ring-offset-color' } },\n },\n ],\n\n // https://tailwindcss.com/docs/blur\n blur: {\n config: 'blur',\n output: ({ value }) => ({\n '--tw-blur': `blur(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/brightness\n brightness: {\n config: 'brightness',\n output: ({ value }) => ({\n '--tw-brightness': `brightness(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/contrast\n contrast: {\n config: 'contrast',\n output: ({ value }) => ({\n '--tw-contrast': `contrast(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/drop-shadow\n 'drop-shadow': {\n config: 'dropShadow',\n output({ value }) {\n const dropShadowValue = Array.isArray(value)\n ? value.map(v => `drop-shadow(${v})`).join(' ')\n : `drop-shadow(${value})`\n return {\n '--tw-drop-shadow': dropShadowValue,\n filter: cssFilterValue,\n }\n },\n },\n\n // https://tailwindcss.com/docs/grayscale\n grayscale: {\n config: 'grayscale',\n output: ({ value }) => ({\n '--tw-grayscale': `grayscale(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/hue-rotate\n 'hue-rotate': {\n config: 'hueRotate',\n output: ({ value }) => ({\n '--tw-hue-rotate': `hue-rotate(${value})`,\n filter: cssFilterValue,\n }),\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/invert\n invert: {\n config: 'invert',\n output: ({ value }) => ({\n '--tw-invert': `invert(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/saturate\n saturate: {\n config: 'saturate',\n output: ({ value }) => ({\n '--tw-saturate': `saturate(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/sepia\n sepia: {\n config: 'sepia',\n output: ({ value }) => ({\n '--tw-sepia': `sepia(${value})`,\n filter: cssFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/filter\n 'filter-none': { output: { filter: 'none' } },\n filter: { output: { filter: cssFilterValue } },\n\n // https://tailwindcss.com/docs/backdrop-blur\n 'backdrop-blur': {\n config: 'backdropBlur',\n output: ({ value }) => ({\n '--tw-backdrop-blur': `blur(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-brightness\n 'backdrop-brightness': {\n config: 'backdropBrightness',\n output: ({ value }) => ({\n '--tw-backdrop-brightness': `brightness(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-contrast\n 'backdrop-contrast': {\n config: 'backdropContrast',\n output: ({ value }) => ({\n '--tw-backdrop-contrast': `contrast(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-grayscale\n 'backdrop-grayscale': {\n config: 'backdropGrayscale',\n output: ({ value }) => ({\n '--tw-backdrop-grayscale': `grayscale(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-hue-rotate\n 'backdrop-hue-rotate': {\n config: 'backdropHueRotate',\n output: ({ value }) => ({\n '--tw-backdrop-hue-rotate': `hue-rotate(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n supportsNegativeValues: true,\n },\n\n // https://tailwindcss.com/docs/backdrop-invert\n 'backdrop-invert': {\n config: 'backdropInvert',\n output: ({ value }) => ({\n '--tw-backdrop-invert': `invert(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-opacity\n 'backdrop-opacity': {\n config: 'backdropOpacity',\n output: ({ value }) => ({\n '--tw-backdrop-opacity': `opacity(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-saturate\n 'backdrop-saturate': {\n config: 'backdropSaturate',\n output: ({ value }) => ({\n '--tw-backdrop-saturate': `saturate(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-sepia\n 'backdrop-sepia': {\n config: 'backdropSepia',\n output: ({ value }) => ({\n '--tw-backdrop-sepia': `sepia(${value})`,\n backdropFilter: cssBackdropFilterValue,\n }),\n },\n\n // https://tailwindcss.com/docs/backdrop-filter\n 'backdrop-filter': {\n output: { backdropFilter: cssBackdropFilterValue },\n },\n 'backdrop-filter-none': { output: { backdropFilter: 'none' } },\n\n // https://tailwindcss.com/docs/transtiion-property\n // Note: Tailwind doesn't allow an arbitrary value but it's likely just an accident so it's been added here\n transition: [\n {\n config: 'transitionProperty',\n output({ value, theme }) {\n const defaultTimingFunction = theme('transitionTimingFunction.DEFAULT')\n const defaultDuration = theme('transitionDuration.DEFAULT')\n return {\n transitionProperty: value,\n ...(value === 'none'\n ? {}\n : {\n transitionTimingFunction: defaultTimingFunction,\n transitionDuration: defaultDuration,\n }),\n }\n },\n coerced: {\n lookup: (value, theme) => ({\n transitionProperty: value,\n transitionTimingFunction: theme('transitionTimingFunction.DEFAULT'),\n transitionDuration: theme('transitionDuration.DEFAULT'),\n }),\n },\n },\n ],\n\n // https://tailwindcss.com/docs/transition-delay\n delay: { property: 'transitionDelay', config: 'transitionDelay' },\n\n // https://tailwindcss.com/docs/transition-duration\n duration: { property: 'transitionDuration', config: 'transitionDuration' },\n\n // https://tailwindcss.com/docs/transition-timing-function\n ease: {\n property: 'transitionTimingFunction',\n config: 'transitionTimingFunction',\n },\n\n // https://tailwindcss.com/docs/will-change\n 'will-change': { property: 'willChange', config: 'willChange' },\n\n // https://tailwindcss.com/docs/content\n content: [\n {\n config: 'content',\n output({ value, isEmotion }) {\n // Temp fix until emotion supports css variables with the content property\n if (isEmotion) return { content: value }\n return { '--tw-content': value, content: 'var(--tw-content)' }\n },\n },\n { output: { content: '\"\"' } }, // Deprecated (keep last in array here)\n ],\n}\n","/**\n * Pseudo-classes (Variants)\n * In Twin, these are always available on just about any class\n *\n * See MDN web docs for more information\n * https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\n */\n\nconst variantConfig = ({\n variantDarkMode,\n variantLightMode,\n prefixDarkLightModeClass,\n createPeer,\n}) => ({\n // Before/after pseudo elements\n // Usage: tw`before:(block w-10 h-10 bg-black)`\n before: ':before',\n after: ':after',\n\n // Interactive links/buttons\n hover: ':hover',\n focus: ':focus',\n active: ':active',\n visited: ':visited',\n hocus: ':hover, :focus',\n link: ':link',\n target: ':target',\n 'focus-visible': ':focus-visible',\n 'focus-within': ':focus-within',\n\n // Form elements\n file: '::file-selector-button',\n\n // Form element states\n autofill: ':autofill',\n disabled: ':disabled',\n checked: ':checked',\n 'not-checked': ':not(:checked)',\n default: ':default',\n enabled: ':enabled',\n indeterminate: ':indeterminate',\n 'in-range': ':in-range',\n invalid: ':invalid',\n valid: ':valid',\n optional: ':optional',\n 'out-of-range': ':out-of-range',\n required: ':required',\n 'placeholder-shown': ':placeholder-shown',\n 'not-placeholder-shown': ':not(:placeholder-shown)',\n placeholder: '::placeholder',\n 'read-only': ':read-only',\n 'read-write': ':read-write',\n open: ':open',\n 'not-open': ':not(:open)',\n\n // Child selectors\n 'not-disabled': ':not(:disabled)',\n 'first-of-type': ':first-of-type',\n 'not-first-of-type': ':not(:first-of-type)',\n 'last-of-type': ':last-of-type',\n 'not-last-of-type': ':not(:last-of-type)',\n 'first-letter': '::first-letter',\n 'first-line': '::first-line',\n first: ':first-child',\n 'not-first': ':not(:first-child)',\n last: ':last-child',\n 'not-last': ':not(:last-child)',\n only: ':only-child',\n 'not-only': ':not(:only-child)',\n 'only-of-type': ':only-of-type',\n 'not-only-of-type': ':not(:only-of-type)',\n even: ':nth-child(even)',\n odd: ':nth-child(odd)',\n 'even-of-type': ':nth-of-type(even)',\n 'odd-of-type': ':nth-of-type(odd)',\n svg: 'svg',\n all: '*',\n 'all-child': '> *',\n sibling: '~ *',\n\n // Content\n empty: ':empty',\n\n // Group states\n // You'll need to add className=\"group\" to an ancestor to make these work\n // https://github.com/ben-rogerson/twin.macro/blob/master/docs/group.md\n 'group-hocus': variantData =>\n prefixDarkLightModeClass('.group:hover &, .group:focus &', variantData),\n 'group-first': variantData =>\n prefixDarkLightModeClass('.group:first-child &', variantData),\n 'group-last': variantData =>\n prefixDarkLightModeClass('.group:last-child &', variantData),\n 'group-only': variantData =>\n prefixDarkLightModeClass('.group:only-child &', variantData),\n 'group-even': variantData =>\n prefixDarkLightModeClass('.group:nth-child(even) &', variantData),\n 'group-odd': variantData =>\n prefixDarkLightModeClass('.group:nth-child(odd) &', variantData),\n 'group-first-of-type': variantData =>\n prefixDarkLightModeClass('.group:first-of-type &', variantData),\n 'group-last-of-type': variantData =>\n prefixDarkLightModeClass('.group:last-of-type &', variantData),\n 'group-only-of-type': variantData =>\n prefixDarkLightModeClass('.group:not(:first-of-type) &', variantData),\n 'group-hover': variantData =>\n prefixDarkLightModeClass('.group:hover &', variantData),\n 'group-focus': variantData =>\n prefixDarkLightModeClass('.group:focus &', variantData),\n 'group-disabled': variantData =>\n prefixDarkLightModeClass('.group:disabled &', variantData),\n 'group-active': variantData =>\n prefixDarkLightModeClass('.group:active &', variantData),\n 'group-target': variantData =>\n prefixDarkLightModeClass('.group:target &', variantData),\n 'group-visited': variantData =>\n prefixDarkLightModeClass('.group:visited &', variantData),\n 'group-default': variantData =>\n prefixDarkLightModeClass('.group:default &', variantData),\n 'group-checked': variantData =>\n prefixDarkLightModeClass('.group:checked &', variantData),\n 'group-indeterminate': variantData =>\n prefixDarkLightModeClass('.group:indeterminate &', variantData),\n 'group-placeholder-shown': variantData =>\n prefixDarkLightModeClass('.group:placeholder-shown &', variantData),\n 'group-autofill': variantData =>\n prefixDarkLightModeClass('.group:autofill &', variantData),\n 'group-focus-within': variantData =>\n prefixDarkLightModeClass('.group:focus-within &', variantData),\n 'group-focus-visible': variantData =>\n prefixDarkLightModeClass('.group:focus-visible &', variantData),\n 'group-required': variantData =>\n prefixDarkLightModeClass('.group:required &', variantData),\n 'group-valid': variantData =>\n prefixDarkLightModeClass('.group:valid &', variantData),\n 'group-invalid': variantData =>\n prefixDarkLightModeClass('.group:invalid &', variantData),\n 'group-in-range': variantData =>\n prefixDarkLightModeClass('.group:in-range &', variantData),\n 'group-out-of-range': variantData =>\n prefixDarkLightModeClass('.group:out-of-range &', variantData),\n 'group-read-only': variantData =>\n prefixDarkLightModeClass('.group:read-only &', variantData),\n 'group-empty': variantData =>\n prefixDarkLightModeClass('.group:empty &', variantData),\n 'group-open': variantData =>\n prefixDarkLightModeClass('.group:open &', variantData),\n 'group-not-open': variantData =>\n prefixDarkLightModeClass('.group:not(:open) &', variantData),\n\n // Media types\n print: '@media print',\n screen: '@media screen',\n\n // Direction variants\n rtl: '[dir=\"rtl\"] &',\n ltr: '[dir=\"ltr\"] &',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion\n 'motion-safe': '@media (prefers-reduced-motion: no-preference)',\n 'motion-reduce': '@media (prefers-reduced-motion: reduce)',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-pointer\n 'any-pointer-none': '@media (any-pointer: none)',\n 'any-pointer-fine': '@media (any-pointer: fine)',\n 'any-pointer-coarse': '@media (any-pointer: coarse)',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer\n 'pointer-none': '@media (pointer: none)',\n 'pointer-fine': '@media (pointer: fine)',\n 'pointer-coarse': '@media (pointer: coarse)',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-hover\n 'any-hover-none': '@media (any-hover: none)',\n 'any-hover': '@media (any-hover: hover)',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/hover\n 'can-hover': '@media (hover: hover)',\n 'cant-hover': '@media (hover: none)',\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/orientation\n landscape: '@media (orientation: landscape)',\n portrait: '@media (orientation: portrait)',\n\n // Dark mode / Light mode\n dark: variantDarkMode,\n light: variantLightMode,\n\n // Peer variants\n 'peer-first': createPeer('first-child'),\n 'peer-last': createPeer('last-child'),\n 'peer-only': createPeer('only-child'),\n 'peer-even': createPeer('nth-child(even)'),\n 'peer-odd': createPeer('nth-child(odd)'),\n 'peer-first-of-type': createPeer('first-of-type'),\n 'peer-last-of-type': createPeer('last-of-type'),\n 'peer-only-of-type': createPeer('only-of-type'),\n 'peer-hover': createPeer('hover'),\n 'peer-focus': createPeer('focus'),\n 'peer-disabled': createPeer('disabled'),\n 'peer-active': createPeer('active'),\n 'peer-target': createPeer('target'),\n 'peer-visited': createPeer('visited'),\n 'peer-default': createPeer('default'),\n 'peer-checked': createPeer('checked'),\n 'peer-indeterminate': createPeer('indeterminate'),\n 'peer-placeholder-shown': createPeer('placeholder-shown'),\n 'peer-not-placeholder-shown': createPeer('not(:placeholder-shown)'),\n 'peer-autofill': createPeer('autofill'),\n 'peer-focus-within': createPeer('focus-within'),\n 'peer-focus-visible': createPeer('focus-visible'),\n 'peer-required': createPeer('required'),\n 'peer-valid': createPeer('valid'),\n 'peer-invalid': createPeer('invalid'),\n 'peer-in-range': createPeer('in-range'),\n 'peer-out-of-range': createPeer('out-of-range'),\n 'peer-read-only': createPeer('read-only'),\n 'peer-empty': createPeer('empty'),\n 'peer-open': createPeer('open'),\n 'peer-not-open': createPeer('not(:open)'),\n\n // Selection\n selection: '::selection',\n\n // Lists\n marker: '::marker, *::marker',\n})\n\nexport default variantConfig\n","import stringSimilarity from 'string-similarity'\nimport chalk from 'chalk'\nimport { formatProp } from './macro/debug'\nimport { corePlugins } from './config'\nimport {\n getTheme,\n stripNegative,\n isEmpty,\n throwIf,\n toArray,\n isObject,\n splitOnFirst,\n} from './utils'\n\nconst color = {\n error: chalk.hex('#ff8383'),\n errorLight: chalk.hex('#ffd3d3'),\n success: chalk.greenBright,\n highlight: chalk.yellowBright,\n highlight2: chalk.blue,\n subdued: chalk.hex('#999'),\n hex: hex => chalk.hex(hex),\n}\n\nconst spaced = string => `\\n\\n${string}\\n`\nconst warning = string => color.error(`✕ ${string}`)\n\nconst inOutPlugins = (input, output, layer) =>\n `${layer} ${color.highlight2('→')} ${input} ${color.highlight2(\n JSON.stringify(output)\n )}`\n\nconst inOut = (input, output) =>\n `${color.success('✓')} ${input} ${color.success(JSON.stringify(output))}`\n\nconst logNoVariant = (variant, validVariants) =>\n spaced(\n `${warning(\n `The variant ${color.errorLight(`${variant}:`)} was not found`\n )}\\n\\n${Object.entries(validVariants)\n .map(\n ([k, v]) =>\n `${k}\\n${v\n .map(\n (item, index) =>\n `${\n v.length > 6 && index % 6 === 0 && index > 0 ? '\\n' : ''\n }${color.highlight(item)}:`\n )\n .join(color.subdued(' / '))}`\n )\n .join('\\n\\n')}\\n\\nRead more at https://twinredirect.page.link/variantList`\n )\n\nconst logNotAllowed = (className, error, fix) =>\n spaced(\n [\n warning(`${color.errorLight(className)} ${error}`),\n fix ? (typeof fix === 'function' ? fix(color) : fix) : '',\n ]\n .filter(Boolean)\n .join('\\n\\n')\n )\n\nconst logBadGood = (bad, good) =>\n good\n ? spaced(\n `${color.error('✕ Bad:')} ${\n typeof bad === 'function' ? bad(color) : bad\n }\\n${color.success('✓ Good:')} ${\n typeof good === 'function' ? good(color) : good\n }`\n )\n : logGeneralError(bad)\n\nconst logErrorFix = (error, good) =>\n spaced(`${color.error(error)}\\n${color.success('Fix:')} ${good}`)\n\nconst logGeneralError = error => spaced(warning(error))\n\nconst debugSuccess = (className, log) => inOut(formatProp(className), log)\n\nconst formatPluginKey = key => key.replace(/(\\\\|(}}))/g, '').replace(/{{/g, '.')\n\nconst debugPlugins = processedPlugins => {\n console.log(\n Object.entries(processedPlugins)\n .map(([layer, group]) =>\n Object.entries(group)\n .map(([className, styles]) =>\n inOutPlugins(formatPluginKey(className), styles, layer)\n )\n .join('\\n')\n )\n .join(`\\n`)\n )\n}\n\nconst formatSuggestions = suggestions =>\n suggestions\n .map(\n s =>\n `${color.subdued('-')} ${color.highlight(s.target)}${\n s.value\n ? ` ${color.subdued('>')} ${\n isHex(s.value) ? color.hex(s.value)(`▣ `) : ''\n }${s.value}`\n : ''\n }`\n )\n .join('\\n')\n\nconst logNoClass = properties => {\n const {\n pieces: { classNameRawNoVariants },\n } = properties\n\n const text = warning(\n `${\n classNameRawNoVariants\n ? color.errorLight(classNameRawNoVariants)\n : 'Class'\n } was not found`\n )\n\n return text\n}\n\nconst logDeeplyNestedClass = properties => {\n const {\n pieces: { classNameRawNoVariants },\n } = properties\n\n const text = warning(\n `${\n classNameRawNoVariants\n ? color.errorLight(classNameRawNoVariants)\n : 'Class'\n } is too deeply nested in your tailwind.config.js`\n )\n\n return text\n}\n\nconst checkDarkLightClasses = className =>\n throwIf(\n ['dark', 'light'].includes(className),\n () =>\n `\\n\\n\"${className}\" must be added as className:${logBadGood(\n `tw\\`${className}\\``,\n `<div className=\"${className}\">`\n )}\\nRead more at https://twinredirect.page.link/darkLightMode\\n`\n )\n\nconst isHex = hex => /^#([\\da-f]{3}){1,2}$/i.test(hex)\n\nconst errorSuggestions = properties => {\n const {\n state: {\n configTwin: { hasSuggestions },\n config: { prefix },\n },\n pieces: { className },\n isCsOnly,\n } = properties\n\n if (isCsOnly)\n return spaced(\n `${color.highlight(\n className\n )} isn’t valid “short css”.\\n\\nThe syntax is like this: max-width[100vw]\\nRead more at https://twinredirect.page.link/cs-classes`\n )\n\n checkDarkLightClasses(className)\n\n const textNotFound = logNoClass(properties)\n if (!hasSuggestions) return spaced(textNotFound)\n\n const suggestions = getSuggestions(properties)\n if (suggestions.length === 0) return spaced(textNotFound)\n\n if (typeof suggestions === 'string') {\n if (suggestions === className)\n return spaced(logDeeplyNestedClass(properties))\n\n // Provide a suggestion for the default key update\n if (suggestions.endsWith('-default'))\n return spaced(\n `${textNotFound}\\n\\n${color.highlight(\n `To fix this, rename the 'default' key to 'DEFAULT' in your tailwind config or use the class '${className}-default'`\n )}\\nRead more at https://twinredirect.page.link/default-to-DEFAULT`\n )\n\n return spaced(\n `${textNotFound}\\n\\nDid you mean ${color.highlight(\n [prefix, suggestions].filter(Boolean).join('')\n )}?`\n )\n }\n\n const suggestion = [...suggestions].shift()\n\n const suggestionText =\n suggestions.length === 1\n ? `Did you mean ${color.highlight(\n [prefix, suggestion.target].filter(Boolean).join('')\n )}?`\n : `Try one of these classes:\\n\\n${formatSuggestions(suggestions)}`\n\n return spaced(`${textNotFound}\\n\\n${suggestionText}`)\n}\n\nconst themeErrorNotFound = ({ theme, input, trimInput }) => {\n if (typeof theme === 'string') return logBadGood(input, trimInput)\n\n const textNotFound = warning(\n `${color.errorLight(input)} was not found in your theme`\n )\n\n if (!theme) return spaced(textNotFound)\n\n const suggestionText = `Try one of these values:\\n${formatSuggestions(\n Object.entries(theme).map(([k, v]) => ({\n target: k.includes && k.includes('.') ? `[${k}]` : k,\n value: typeof v === 'string' ? v : '...',\n }))\n )}`\n\n return spaced(`${textNotFound}\\n\\n${suggestionText}`)\n}\n\nconst opacityErrorNotFound = ({ className }) =>\n logBadGood(\n `The class \\`${className}\\` had an unsupported slash opacity`,\n `Remove the opacity from the end of the class`\n )\n\nconst logNotFoundVariant = ({ classNameRaw }) =>\n logBadGood(\n `${classNameRaw}`,\n [`${classNameRaw}flex`, `${classNameRaw}(flex bg-black)`].join(\n color.subdued(' / ')\n )\n )\n\nconst logNotFoundClass = logGeneralError('That class was not found')\n\nconst logStylePropertyError = logErrorFix(\n 'Styles shouldn’t be added within a `style={...}` prop',\n 'Use the tw or css prop instead: <div tw=\"\" /> or <div css={tw``} />\\n\\nDisable this error by adding this in your twin config: `{ \"allowStyleProp\": true }`\\nRead more at https://twinredirect.page.link/style-prop'\n)\n\nconst debug = state => message => {\n if (state.isDev !== true) return\n if (state.configTwin.debug !== true) return\n\n return console.log(message)\n}\n\nconst getCustomSuggestions = className => {\n const suggestions = {\n 'flex-center': 'items-center / justify-center',\n 'display-none': 'hidden',\n 'display-inline': 'inline-block',\n 'display-flex': 'flex',\n 'border-radius': 'rounded',\n 'flex-column': 'flex-col',\n 'flex-column-reverse': 'flex-col-reverse',\n 'text-italic': 'italic',\n 'text-normal': 'font-normal / not-italic',\n ellipsis: 'text-ellipsis',\n 'flex-no-wrap': 'flex-nowrap',\n }[className]\n if (suggestions) return suggestions\n}\n\nconst flattenObject = (object, prefix = '') => {\n if (!object) return {}\n\n return Object.keys(object).reduce((result, k) => {\n const pre = prefix.length > 0 ? prefix + '-' : ''\n\n const value = object[k]\n const fullKey = pre + k\n\n if (Array.isArray(value)) {\n result[fullKey] = value\n } else if (typeof value === 'object') {\n Object.assign(result, flattenObject(value, fullKey))\n } else {\n result[fullKey] = value\n }\n\n return result\n }, {})\n}\n\nconst targetTransforms = [\n ({ target }) => (target === 'DEFAULT' ? '' : target),\n ({ corePluginName, target }) => {\n const prefix = target !== stripNegative(target) ? '-' : ''\n return `${prefix}${[corePluginName, stripNegative(target)]\n .filter(Boolean)\n .join('-')}`\n },\n]\n\nconst filterKeys = (object, negativesOnly) =>\n Object.entries(object).reduce(\n (result, [k, v]) => ({\n ...result,\n ...((negativesOnly ? k.startsWith('-') : !k.startsWith('-')) && {\n [k.replace('-DEFAULT', '')]: v,\n }),\n }),\n {}\n )\n\nconst normalizeCoreConfig = ({\n config,\n input,\n corePluginName,\n hasNegative,\n}) => {\n const results = Object.entries(\n filterKeys(flattenObject(config), hasNegative)\n ).map(([target, value]) => ({\n ...(input && {\n rating: Number(\n stringSimilarity.compareTwoStrings(\n [corePluginName, target].join('-'),\n input\n )\n ),\n }),\n target: targetTransforms.reduce(\n (result, transformer) => transformer({ corePluginName, target: result }),\n target\n ),\n value: typeof value === 'function' ? '' : String(value), // Make sure objects are flattened and viewable\n }))\n\n const filteredResults = results.filter(\n item =>\n !item.target.includes('-array-') &&\n (input.rating ? typeof item.rating !== 'undefined' : true)\n )\n\n return filteredResults\n}\n\nconst matchConfig = ({\n config,\n theme,\n className,\n corePluginName,\n hasNegative,\n}) =>\n [...config]\n .reduce(\n (results, item) =>\n // eslint-disable-next-line unicorn/prefer-spread\n results.concat(\n normalizeCoreConfig({\n config: theme(item),\n input: className,\n corePluginName,\n hasNegative,\n })\n ),\n []\n )\n .sort((a, b) => b.rating - a.rating)\n\nconst getConfig = properties =>\n matchConfig({ ...properties, className: null }).slice(0, 20)\n\nconst sortRatingHighestFirst = (a, b) => b.rating - a.rating\n\nconst getSuggestions = args => {\n const {\n pieces: { className, hasNegative },\n state,\n config,\n corePluginName,\n } = args\n const customSuggestions = getCustomSuggestions(className)\n if (customSuggestions) return customSuggestions\n\n if (!isEmpty(config)) {\n const theme = getTheme(state.config.theme)\n const properties = { config, theme, corePluginName, className, hasNegative }\n const matches = matchConfig(properties)\n if (matches.length === 0) return getConfig(properties)\n\n // Check if the user means to select a default class\n const defaultFound = matches.find(\n match =>\n match.target.endsWith('-default') &&\n match.target.replace('-default', '') === className\n )\n if (defaultFound) return [defaultFound]\n\n // If there's high rated suggestions then return them\n const trumpMatches = matches.filter(match => match.rating >= 0.5)\n if (!isEmpty(trumpMatches)) return trumpMatches.slice(0, 5)\n\n return matches.slice(0, 5)\n }\n\n const classMatches = [\n ...new Set(\n Object.entries(corePlugins)\n .map(([k, v]) =>\n toArray(v).map(v =>\n isObject(v.output)\n ? `${k}`\n : !isEmpty(v.config)\n ? getSuggestions({\n ...args,\n config: toArray(v.config),\n }).map(s => (s.target ? [k, s.target].join('-') : k))\n : `${k}-___`\n )\n )\n .filter(Boolean)\n .flat(2)\n ),\n ]\n\n let matches = stringSimilarity\n .findBestMatch(className, classMatches)\n .ratings.filter(item => item.rating > 0.2)\n if (matches.length === 0) return []\n\n // Bump up the rating on matches where the first few letters match\n const [firstPart] = splitOnFirst(className, '-')\n matches = matches.map(m => ({\n ...m,\n rating:\n Number(m.rating) +\n (stringSimilarity.compareTwoStrings(firstPart, m.target) > 0.2 ? 0.2 : 0),\n }))\n\n matches = matches.sort(sortRatingHighestFirst)\n\n // Single trumping match - good chance this is the one\n const trumpMatch = matches.find(match => match.rating >= 0.6)\n if (trumpMatch) return trumpMatch.target\n\n return matches.slice(0, 5)\n}\n\nconst getUnsupportedError = feature =>\n logErrorFix(\n `A plugin is trying to use the unsupported “${feature}” function`,\n `Either remove the plugin or add this in your twin config: \\`{ \"allowUnsupportedPlugins\": true }\\``\n )\n\nexport {\n logNoVariant,\n logNotAllowed,\n logBadGood,\n logGeneralError,\n logNotFoundVariant,\n logNotFoundClass,\n logStylePropertyError,\n debug,\n debugSuccess,\n debugPlugins,\n errorSuggestions,\n opacityErrorNotFound,\n themeErrorNotFound,\n getUnsupportedError,\n}\n","import babylon from '@babel/parser'\nimport { throwIf, get } from './utils'\nimport { logGeneralError } from './logging'\n\nconst SPREAD_ID = '__spread__'\nconst COMPUTED_ID = '__computed__'\n\nfunction addImport({ types: t, program, mod, name, identifier }) {\n const importName =\n name === 'default'\n ? [t.importDefaultSpecifier(identifier)]\n : name\n ? [t.importSpecifier(identifier, t.identifier(name))]\n : []\n program.unshiftContainer(\n 'body',\n t.importDeclaration(importName, t.stringLiteral(mod))\n )\n}\n\nfunction assignify(objectAst, t) {\n if (objectAst.type !== 'ObjectExpression') return objectAst\n\n const cloneNode = t.cloneNode || t.cloneDeep\n const currentChunk = []\n const chunks = []\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n objectAst.properties.forEach(property => {\n if (property.type === 'SpreadElement') {\n if (currentChunk.length > 0) {\n chunks.push(cloneNode(t.objectExpression(currentChunk)))\n currentChunk.length = 0\n }\n\n chunks.push(cloneNode(property.argument))\n } else {\n property.value = assignify(property.value, t)\n currentChunk.push(property)\n }\n })\n\n if (chunks.length === 0) return objectAst\n\n if (currentChunk.length > 0) {\n chunks.push(cloneNode(t.objectExpression(currentChunk)))\n }\n\n return t.callExpression(\n t.memberExpression(t.identifier('Object'), t.identifier('assign')),\n chunks\n )\n}\n\nfunction objectExpressionElements(literal, t, spreadType) {\n return Object.keys(literal)\n .filter(k => typeof literal[k] !== 'undefined')\n .map(k => {\n if (k.startsWith(SPREAD_ID)) {\n return t[spreadType](babylon.parseExpression(literal[k]))\n }\n\n const computed = k.startsWith(COMPUTED_ID)\n const key = computed\n ? babylon.parseExpression(k.slice(12))\n : t.stringLiteral(k)\n return t.objectProperty(key, astify(literal[k], t), computed)\n })\n}\n\n/**\n * Convert plain js into babel ast\n */\nfunction astify(literal, t) {\n if (literal === null) {\n return t.nullLiteral()\n }\n\n switch (typeof literal) {\n case 'function':\n return t.unaryExpression('void', t.numericLiteral(0), true)\n case 'number':\n return t.numericLiteral(literal)\n case 'boolean':\n return t.booleanLiteral(literal)\n case 'undefined':\n return t.unaryExpression('void', t.numericLiteral(0), true)\n case 'string':\n if (literal.startsWith(COMPUTED_ID)) {\n return babylon.parseExpression(literal.slice(COMPUTED_ID.length))\n }\n\n return t.stringLiteral(literal)\n default:\n // Assuming literal is an object\n\n if (Array.isArray(literal)) {\n return t.arrayExpression(literal.map(x => astify(x, t)))\n }\n\n try {\n return t.objectExpression(\n objectExpressionElements(literal, t, 'spreadElement')\n )\n } catch (_) {\n return t.objectExpression(\n objectExpressionElements(literal, t, 'spreadProperty')\n )\n }\n }\n}\n\nconst setStyledIdentifier = ({ state, path, styledImport }) => {\n const importFromStitches =\n state.isStitches && styledImport.from.includes(path.node.source.value)\n const importFromLibrary = path.node.source.value === styledImport.from\n\n if (!importFromLibrary && !importFromStitches) return\n\n // Look for an existing import that matches the config,\n // if found then reuse it for the rest of the function calls\n path.node.specifiers.some(specifier => {\n if (\n specifier.type === 'ImportDefaultSpecifier' &&\n styledImport.import === 'default' &&\n // fixes an issue in gatsby where the styled-components plugin has run\n // before twin. fix is to ignore import aliases which babel creates\n // https://github.com/ben-rogerson/twin.macro/issues/192\n !specifier.local.name.startsWith('_')\n ) {\n state.styledIdentifier = specifier.local\n state.existingStyledIdentifier = true\n return true\n }\n\n if (specifier.imported && specifier.imported.name === styledImport.import) {\n state.styledIdentifier = specifier.local\n state.existingStyledIdentifier = true\n return true\n }\n\n state.existingStyledIdentifier = false\n return false\n })\n}\n\nconst setCssIdentifier = ({ state, path, cssImport }) => {\n const importFromStitches =\n state.isStitches && cssImport.from.includes(path.node.source.value)\n const isLibraryImport = path.node.source.value === cssImport.from\n\n if (!isLibraryImport && !importFromStitches) return\n\n // Look for an existing import that matches the config,\n // if found then reuse it for the rest of the function calls\n path.node.specifiers.some(specifier => {\n if (\n specifier.type === 'ImportDefaultSpecifier' &&\n cssImport.import === 'default'\n ) {\n state.cssIdentifier = specifier.local\n state.existingCssIdentifier = true\n return true\n }\n\n if (specifier.imported && specifier.imported.name === cssImport.import) {\n state.cssIdentifier = specifier.local\n state.existingCssIdentifier = true\n return true\n }\n\n state.existingCssIdentifier = false\n return false\n })\n}\n\n/**\n * Parse tagged template arrays (``)\n */\nfunction parseTte({ path, types: t, styledIdentifier, state }) {\n const cloneNode = t.cloneNode || t.cloneDeep\n const tagType = path.node.tag.type\n\n if (\n tagType !== 'Identifier' &&\n tagType !== 'MemberExpression' &&\n tagType !== 'CallExpression'\n )\n return null\n\n // Convert *very* basic interpolated variables\n const string = path.get('quasi').evaluate().value\n // Grab the path location before changing it\n const stringLoc = path.get('quasi').node.loc\n\n if (tagType === 'CallExpression') {\n replaceWithLocation(\n path.get('tag').get('callee'),\n cloneNode(styledIdentifier)\n )\n state.isImportingStyled = true\n } else if (tagType === 'MemberExpression') {\n replaceWithLocation(\n path.get('tag').get('object'),\n cloneNode(styledIdentifier)\n )\n state.isImportingStyled = true\n }\n\n if (tagType === 'CallExpression' || tagType === 'MemberExpression') {\n replaceWithLocation(\n path,\n t.callExpression(cloneNode(path.node.tag), [\n t.identifier('__twPlaceholder'),\n ])\n )\n\n path = path.get('arguments')[0]\n }\n\n // Restore the original path location\n path.node.loc = stringLoc\n\n return { string, path }\n}\n\nfunction replaceWithLocation(path, replacement) {\n const { loc } = path.node\n const newPaths = replacement ? path.replaceWith(replacement) : []\n if (Array.isArray(newPaths) && newPaths.length > 0) {\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n newPaths.forEach(p => {\n p.node.loc = loc\n })\n }\n\n return newPaths\n}\n\nconst validImports = new Set([\n 'default',\n 'styled',\n 'css',\n 'theme',\n 'screen',\n 'TwStyle',\n 'TwComponent',\n 'ThemeStyle',\n 'GlobalStyles',\n 'globalStyles',\n])\nconst validateImports = imports => {\n const unsupportedImport = Object.keys(imports).find(\n reference => !validImports.has(reference)\n )\n const importTwAsNamedNotDefault = Object.keys(imports).find(\n reference => reference === 'tw'\n )\n throwIf(importTwAsNamedNotDefault, () => {\n logGeneralError(\n `Please use the default export for twin.macro, i.e:\\nimport tw from 'twin.macro'\\nNOT import { tw } from 'twin.macro'`\n )\n })\n throwIf(unsupportedImport, () =>\n logGeneralError(\n `Twin doesn't recognize { ${unsupportedImport} }\\n\\nTry one of these imports:\\nimport tw, { styled, css, theme, screen, GlobalStyles, globalStyles } from 'twin.macro'`\n )\n )\n}\n\nconst generateUid = (name, program) => program.scope.generateUidIdentifier(name)\n\nconst getParentJSX = path => path.findParent(p => p.isJSXOpeningElement())\n\nconst getAttributeNames = jsxPath => {\n const attributes = jsxPath.get('attributes')\n const attributeNames = attributes.map(p => p.node.name && p.node.name.name)\n return attributeNames\n}\n\nconst getCssAttributeData = attributes => {\n if (!String(attributes)) return {}\n const index = attributes.findIndex(\n attribute =>\n attribute.isJSXAttribute() && attribute.get('name.name').node === 'css'\n )\n\n return { index, hasCssAttribute: index >= 0, attribute: attributes[index] }\n}\n\nconst getFunctionValue = path => {\n if (path.parent.type !== 'CallExpression') return\n\n const parent = path.findParent(x => x.isCallExpression())\n if (!parent) return\n\n const argument = parent.get('arguments')[0] || ''\n\n return {\n parent,\n input: argument.evaluate && argument.evaluate().value,\n }\n}\n\nconst getTaggedTemplateValue = path => {\n if (path.parent.type !== 'TaggedTemplateExpression') return\n\n const parent = path.findParent(x => x.isTaggedTemplateExpression())\n if (!parent) return\n if (parent.node.tag.type !== 'Identifier') return\n\n return { parent, input: parent.get('quasi').evaluate().value }\n}\n\nconst getMemberExpression = path => {\n if (path.parent.type !== 'MemberExpression') return\n\n const parent = path.findParent(x => x.isMemberExpression())\n if (!parent) return\n\n return { parent, input: parent.get('property').node.name }\n}\n\nconst generateTaggedTemplateExpression = ({ identifier, t, styles }) => {\n const backtickStyles = t.templateElement({\n raw: `${styles}`,\n cooked: `${styles}`,\n })\n const ttExpression = t.taggedTemplateExpression(\n identifier,\n t.templateLiteral([backtickStyles], [])\n )\n return ttExpression\n}\n\nconst isComponent = name => name.slice(0, 1).toUpperCase() === name.slice(0, 1)\n\nconst jsxElementNameError = () =>\n logGeneralError(\n `The css prop + tw props can only be added to jsx elements with a single dot in their name (or no dot at all).`\n )\n\nconst getFirstStyledArgument = (jsxPath, t) => {\n const path = get(jsxPath, 'node.name.name')\n\n if (path)\n return isComponent(path) ? t.identifier(path) : t.stringLiteral(path)\n\n const dotComponent = get(jsxPath, 'node.name')\n throwIf(!dotComponent, jsxElementNameError)\n\n // Element name has dots in it\n const objectName = get(dotComponent, 'object.name')\n throwIf(!objectName, jsxElementNameError)\n\n const propertyName = get(dotComponent, 'property.name')\n throwIf(!propertyName, jsxElementNameError)\n\n return t.memberExpression(\n t.identifier(objectName),\n t.identifier(propertyName)\n )\n}\n\nconst makeStyledComponent = ({ secondArg, jsxPath, t, program, state }) => {\n const constName = program.scope.generateUidIdentifier('TwComponent')\n\n if (!state.styledIdentifier) {\n state.styledIdentifier = generateUid('styled', program)\n state.isImportingStyled = true\n }\n\n const firstArg = getFirstStyledArgument(jsxPath, t)\n\n const args = [firstArg, secondArg].filter(Boolean)\n const identifier = t.callExpression(state.styledIdentifier, args)\n const styledProps = [t.variableDeclarator(constName, identifier)]\n const styledDefinition = t.variableDeclaration('const', styledProps)\n\n const rootParentPath = jsxPath.findParent(p => p.parentPath.isProgram())\n rootParentPath.insertBefore(styledDefinition)\n\n if (t.isMemberExpression(firstArg)) {\n // Replace components with a dot, eg: Dialog.blah\n const id = t.jsxIdentifier(constName.name)\n jsxPath.get('name').replaceWith(id)\n if (jsxPath.node.selfClosing) return\n jsxPath.parentPath.get('closingElement.name').replaceWith(id)\n } else {\n jsxPath.node.name.name = constName.name\n if (jsxPath.node.selfClosing) return\n jsxPath.parentPath.node.closingElement.name.name = constName.name\n }\n}\n\nexport {\n SPREAD_ID,\n COMPUTED_ID,\n addImport,\n assignify,\n astify,\n parseTte,\n replaceWithLocation,\n validateImports,\n setStyledIdentifier,\n setCssIdentifier,\n generateUid,\n getParentJSX,\n getAttributeNames,\n getCssAttributeData,\n getFunctionValue,\n getTaggedTemplateValue,\n getMemberExpression,\n generateTaggedTemplateExpression,\n makeStyledComponent,\n}\n","// Defaults for different css-in-js libraries\nconst configDefaultsGoober = { sassyPseudo: true } // Sets selectors like hover to &:hover\nconst configDefaultsStitches = {\n sassyPseudo: true, // Sets selectors like hover to &:hover\n convertStyledDot: true, // Convert styled.[element] to a default syntax\n moveTwPropToStyled: true, // Move the tw prop to a styled definition\n convertHtmlElementToStyled: true, // For packages like stitches, add a styled definition on css prop elements\n stitchesConfig: undefined, // Set the path to the stitches config\n}\n\nconst configDefaultsTwin = ({ isGoober, isStitches, isDev }) => ({\n allowUnsupportedPlugins: false, // Allow plugins to use an unsupported API function, eg: addVariant()\n allowStyleProp: false, // Allows styles within style=\"blah\" without throwing an error\n autoCssProp: false, // Deprecated since v2.8.2\n dataTwProp: isDev, // During development, add a data-tw=\"\" prop containing your tailwind classes for backtracing\n hasSuggestions: true, // Switch suggestions on/off when you use a tailwind class that's not found\n sassyPseudo: false, // Sets selectors like hover to &:hover\n debug: false, // Show the output of the classes twin converts\n debugPlugins: false, // Display generated class information from your plugins\n includeClassNames: false, // Look in the className props for tailwind classes to convert\n dataCsProp: isDev, // During development, add a data-cs=\"\" prop containing your short css classes for backtracing\n disableCsProp: false, // Disable converting css styles in the cs prop\n disableShortCss: false, // Disable converting css written using short css\n config: undefined, // Set the path to the tailwind config\n ...(isGoober && configDefaultsGoober),\n ...(isStitches && configDefaultsStitches),\n})\n\nconst isBoolean = value => typeof value === 'boolean'\n\nconst allowedPresets = ['styled-components', 'emotion', 'goober', 'stitches']\n\nconst configTwinValidators = {\n preset: [\n value => value === undefined || allowedPresets.includes(value),\n `The config “preset” can only be:\\n${allowedPresets\n .map(p => `'${p}'`)\n .join(', ')}`,\n ],\n allowStyleProp: [\n isBoolean,\n 'The config “allowStyleProp” can only be true or false',\n ],\n autoCssProp: [\n value => value !== true,\n 'The “autoCssProp” feature has been removed from [email protected]+\\nThis means the css prop must be added by styled-components instead.\\nSetup info at https://twinredirect.page.link/auto-css-prop\\n\\nRemove the “autoCssProp” item from your config to avoid this message.',\n ],\n disableColorVariables: [\n value => value !== true,\n 'The disableColorVariables feature has been removed from twin.macro@3+\\n\\nRemove the disableColorVariables item from your config to avoid this message.',\n ],\n hasSuggestions: [\n isBoolean,\n 'The config “hasSuggestions” can only be true or false',\n ],\n sassyPseudo: [\n isBoolean,\n 'The config “sassyPseudo” can only be true or false',\n ],\n dataTwProp: [\n value => isBoolean(value) || value === 'all',\n 'The config “dataTwProp” can only be true, false or \"all\"',\n ],\n dataCsProp: [\n value => isBoolean(value) || value === 'all',\n 'The config “dataCsProp” can only be true, false or \"all\"',\n ],\n debugProp: [\n value => value === undefined,\n `The “debugProp” option was renamed to “dataTwProp”, please rename it in your twin config`,\n ],\n includeClassNames: [\n isBoolean,\n 'The config “includeClassNames” can only be true or false',\n ],\n disableCsProp: [\n isBoolean,\n 'The config “disableCsProp” can only be true or false',\n ],\n convertStyledDot: [\n isBoolean,\n 'The config “convertStyledDot” can only be true or false',\n ],\n moveTwPropToStyled: [\n isBoolean,\n 'The config “moveTwPropToStyled” can only be true or false',\n ],\n convertHtmlElementToStyled: [\n isBoolean,\n 'The config “convertHtmlElementToStyled” can only be true or false',\n ],\n}\n\nexport { configDefaultsTwin, configTwinValidators }\n","import { resolve, relative, parse } from 'path'\nimport { existsSync } from 'fs'\nimport resolveTailwindConfig from 'tailwindcss/lib/util/resolveConfig'\nimport defaultTailwindConfig from 'tailwindcss/stubs/defaultConfig.stub'\nimport { configTwinValidators, configDefaultsTwin } from './config/twinConfig'\nimport corePlugins from './config/corePlugins'\nimport flatMap from 'lodash.flatmap'\nimport { logGeneralError } from './logging'\nimport { throwIf, get, toArray, getFirstValue } from './utils'\n\nconst getAllConfigs = config => {\n const configs = flatMap(\n [...get(config, 'presets', [defaultTailwindConfig])].reverse(),\n preset => {\n const config = typeof preset === 'function' ? preset() : preset\n return getAllConfigs(config)\n }\n )\n\n return [config, ...configs]\n}\n\n// Fix: Warning Tailwind throws when the content key is empty\nconst silenceContentWarning = config => ({\n ...(!config.content && { content: [''] }),\n ...config,\n})\n\nconst getConfigTailwindProperties = (state, config) => {\n const sourceRoot = state.file.opts.sourceRoot || '.'\n const configFile = config && config.config\n\n const configPath = resolve(sourceRoot, configFile || './tailwind.config.js')\n const configExists = existsSync(configPath)\n\n // Look for a commonjs file as a fallback\n if (!configExists && !configFile)\n return getConfigTailwindProperties(state, {\n ...config,\n config: './tailwind.config.cjs',\n })\n\n const configSelected = configExists\n ? require(configPath)\n : defaultTailwindConfig\n\n const configUser = silenceContentWarning(configSelected)\n const configTailwind = resolveTailwindConfig([...getAllConfigs(configUser)])\n\n throwIf(!configTailwind, () =>\n logGeneralError(`Couldn’t find the Tailwind config.\\nLooked in ${config}`)\n )\n\n return { configExists, configTailwind, configPath }\n}\n\nconst checkExists = (fileName, sourceRoot) => {\n const [, value] = getFirstValue(toArray(fileName), fileName =>\n existsSync(resolve(sourceRoot, `./${fileName}`))\n )\n return value\n}\n\nconst getRelativePath = ({ comparePath, state }) => {\n const { filename } = state.file.opts\n const pathName = parse(filename).dir\n return relative(pathName, comparePath)\n}\n\nconst getStitchesPath = (state, config) => {\n const sourceRoot = state.file.opts.sourceRoot || '.'\n\n const configPathCheck = config.stitchesConfig || [\n 'stitches.config.ts',\n 'stitches.config.js',\n ]\n const configPath = checkExists(configPathCheck, sourceRoot)\n throwIf(!configPath, () =>\n logGeneralError(\n `Couldn’t find the Stitches config at ${\n config.stitchesConfig\n ? `“${config.stitchesConfig}”`\n : 'the project root'\n }.\\nUse the twin config: stitchesConfig=\"PATH_FROM_PROJECT_ROOT\" to set the location.`\n )\n )\n\n return getRelativePath({ comparePath: configPath, state })\n}\n\nconst runConfigValidator = ([item, value]) => {\n const validatorConfig = configTwinValidators[item]\n if (!validatorConfig) return true\n\n const [validator, errorMessage] = validatorConfig\n\n throwIf(validator(value) !== true, () => logGeneralError(errorMessage))\n\n return true\n}\n\nconst getConfigTwin = (config, state) => ({\n ...configDefaultsTwin(state),\n ...config,\n})\n\nconst getConfigTwinValidated = (config, state) =>\n Object.entries(getConfigTwin(config, state)).reduce(\n (result, item) => ({\n ...result,\n ...(runConfigValidator(item) && { [item[0]]: item[1] }),\n }),\n {}\n )\n\nconst getCoercedTypesByProperty = property => {\n const config = getFlatCoercedConfigByProperty(property)\n if (!config) return []\n return Object.keys(config)\n}\n\nconst getFlatCoercedConfigByProperty = property => {\n const coreConfig = getCorePluginsByProperty(property)\n const config = coreConfig.map(i => i.coerced).filter(Boolean)\n if (config.length === 0) return\n\n return Object.assign({}, ...config)\n}\n\nconst getCorePluginsByProperty = propertyName => {\n const match = Object.entries(corePlugins).find(([k]) => propertyName === k)\n if (!match) return []\n const found = match[1]\n return toArray(found)\n}\n\nconst supportsArbitraryValues = coreConfigValue =>\n toArray(coreConfigValue).some(\n config =>\n (config.output && typeof config.output === 'function') ||\n (!config.output && config.coerced) ||\n config.config\n )\n\nexport {\n getConfigTailwindProperties,\n getStitchesPath,\n getConfigTwinValidated,\n getCoercedTypesByProperty,\n getFlatCoercedConfigByProperty,\n getCorePluginsByProperty,\n supportsArbitraryValues,\n}\n","/**\n * Config presets\n *\n * To use, add the preset in package.json/babel macro config:\n *\n * styled-components\n * { \"babelMacros\": { \"twin\": { \"preset\": \"styled-components\" } } }\n * module.exports = { twin: { preset: \"styled-components\" } }\n *\n * emotion\n * { \"babelMacros\": { \"twin\": { \"preset\": \"emotion\" } } }\n * module.exports = { twin: { preset: \"emotion\" } }\n *\n * goober\n * { \"babelMacros\": { \"twin\": { \"preset\": \"goober\" } } }\n * module.exports = { twin: { preset: \"goober\" } }\n */\n\nexport default {\n 'styled-components': {\n styled: { import: 'default', from: 'styled-components' },\n css: { import: 'css', from: 'styled-components' },\n global: { import: 'createGlobalStyle', from: 'styled-components' },\n },\n emotion: {\n styled: { import: 'default', from: '@emotion/styled' },\n css: { import: 'css', from: '@emotion/react' },\n global: { import: 'Global', from: '@emotion/react' },\n },\n goober: {\n styled: { import: 'styled', from: 'goober' },\n css: { import: 'css', from: 'goober' },\n global: { import: 'createGlobalStyles', from: 'goober/global' },\n },\n stitches: {\n styled: { import: 'styled', from: 'stitches.config' },\n css: { import: 'css', from: 'stitches.config' },\n global: { import: 'global', from: 'stitches.config' },\n },\n}\n","import { addImport, makeStyledComponent } from './../macroHelpers'\nimport { isEmpty } from './../utils'\nimport userPresets from './../config/userPresets'\nimport { getStitchesPath } from './../configHelpers'\n\nconst getCssConfig = ({ state, config }) => {\n const usedConfig =\n (config.css && config) || userPresets[config.preset] || userPresets.emotion\n\n if (typeof usedConfig.css === 'string') {\n return { import: 'css', from: usedConfig.css }\n }\n\n if (config.preset === 'stitches') {\n const stitchesPath = getStitchesPath(state, config)\n if (stitchesPath) {\n // Overwrite the stitches import data with the path from the current file\n usedConfig.css.from = stitchesPath\n }\n }\n\n return usedConfig.css\n}\n\nconst updateCssReferences = ({ references, state }) => {\n if (state.existingCssIdentifier) return\n\n const cssReferences = references.css\n if (isEmpty(cssReferences)) return\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n cssReferences.forEach(path => {\n path.node.name = state.cssIdentifier.name\n })\n}\n\nconst addCssImport = ({ references, program, t, cssImport, state }) => {\n if (!state.isImportingCss) {\n const shouldImport =\n !isEmpty(references.css) && !state.existingCssIdentifier\n if (!shouldImport) return\n }\n\n if (state.existingCssIdentifier) return\n\n addImport({\n types: t,\n program,\n name: cssImport.import,\n mod: cssImport.from,\n identifier: state.cssIdentifier,\n })\n}\n\nconst convertHtmlElementToStyled = props => {\n const { path, t, state } = props\n if (!state.configTwin.convertHtmlElementToStyled) return\n\n const jsxPath = path.parentPath\n makeStyledComponent({ ...props, jsxPath, secondArg: t.objectExpression([]) })\n}\n\nexport {\n getCssConfig,\n updateCssReferences,\n addCssImport,\n convertHtmlElementToStyled,\n}\n","import { addImport, replaceWithLocation } from './../macroHelpers'\nimport { isEmpty, get } from './../utils'\nimport userPresets from './../config/userPresets'\nimport { getStitchesPath } from './../configHelpers'\n\nconst getStyledConfig = ({ state, config }) => {\n const usedConfig =\n (config.styled && config) ||\n userPresets[config.preset] ||\n userPresets.emotion\n\n if (typeof usedConfig.styled === 'string') {\n return { import: 'default', from: usedConfig.styled }\n }\n\n if (config.preset === 'stitches') {\n const stitchesPath = getStitchesPath(state, config)\n if (stitchesPath) {\n // Overwrite the stitches import data with the path from the current file\n usedConfig.styled.from = stitchesPath\n }\n }\n\n return usedConfig.styled\n}\n\nconst updateStyledReferences = ({ references, state }) => {\n if (state.existingStyledIdentifier) return\n\n const styledReferences = references.styled\n if (isEmpty(styledReferences)) return\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n styledReferences.forEach(path => {\n path.node.name = state.styledIdentifier.name\n })\n}\n\nconst addStyledImport = ({ references, program, t, styledImport, state }) => {\n if (!state.isImportingStyled) {\n const shouldImport =\n !isEmpty(references.styled) && !state.existingStyledIdentifier\n if (!shouldImport) return\n }\n\n if (state.existingStyledIdentifier) return\n\n addImport({\n types: t,\n program,\n name: styledImport.import,\n mod: styledImport.from,\n identifier: state.styledIdentifier,\n })\n}\n\nconst moveDotElementToParam = ({ path, t }) => {\n if (path.parent.type !== 'MemberExpression') return\n\n const parentCallExpression = path.findParent(x => x.isCallExpression())\n if (!parentCallExpression) return\n\n const styledName = get(path, 'parentPath.node.property.name')\n const styledArgs = get(parentCallExpression, 'node.arguments.0')\n const args = [t.stringLiteral(styledName), styledArgs].filter(Boolean)\n const replacement = t.callExpression(path.node, args)\n\n replaceWithLocation(parentCallExpression, replacement)\n}\n\nconst handleStyledFunction = ({ references, t, state }) => {\n if (!state.configTwin.convertStyledDot) return\n if (isEmpty(references)) return\n ;[...(references.default || []), ...(references.styled || [])]\n .filter(Boolean)\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n .forEach(path => {\n // convert tw.div`` & styled.div`` to styled('div', {})\n moveDotElementToParam({ path, t })\n })\n}\n\nexport {\n getStyledConfig,\n updateStyledReferences,\n addStyledImport,\n handleStyledFunction,\n}\n","import {\n replaceWithLocation,\n astify,\n getFunctionValue,\n getTaggedTemplateValue,\n} from './../macroHelpers'\nimport { getTheme, throwIf, get } from './../utils'\nimport { logGeneralError, themeErrorNotFound } from './../logging'\n\nconst trimInput = themeValue => {\n const arrayValues = themeValue\n // Split at dots outside of square brackets\n .split(/\\.(?=(((?!]).)*\\[)|[^[\\]]*$)/)\n .filter(Boolean)\n if (arrayValues.length === 1) {\n return arrayValues[0]\n }\n\n return arrayValues.slice(0, -1).join('.')\n}\n\nconst getThemeValue = (input, { state, skipDefault = false }) => {\n const theme = getTheme(state.config.theme)\n let themeValue = theme(input)\n\n // Return the whole object when input ends with a dot\n if (!themeValue && input.endsWith('.'))\n return getThemeValue(input.slice(0, -1), { state, skipDefault: true })\n\n // Return the default key when an object is found\n if (!skipDefault && themeValue && themeValue.DEFAULT)\n themeValue = themeValue.DEFAULT\n\n themeValue = typeof themeValue === 'function' ? themeValue({}) : themeValue\n\n return [themeValue, theme]\n}\n\nconst handleThemeFunction = ({ references, t, state }) => {\n if (!references.theme) return\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n references.theme.forEach(path => {\n const { input, parent } = getTaggedTemplateValue(path) ||\n getFunctionValue(path) || { input: null, parent: null }\n\n throwIf(!parent, () =>\n logGeneralError(\n \"The theme value doesn’t look right\\n\\nTry using it like this: theme`colors.black` or theme('colors.black')\"\n )\n )\n\n const [themeValue, theme] = getThemeValue(input, { state })\n\n throwIf(!themeValue, () =>\n themeErrorNotFound({\n theme: input.includes('.') ? get(theme(), trimInput(input)) : theme(),\n input,\n trimInput: trimInput(input),\n })\n )\n\n return replaceWithLocation(parent, astify(themeValue, t))\n })\n}\n\nexport { handleThemeFunction }\n","import {\n replaceWithLocation,\n astify,\n getFunctionValue,\n getTaggedTemplateValue,\n getMemberExpression,\n} from './../macroHelpers'\nimport { getTheme, throwIf } from './../utils'\nimport { logBadGood } from './../logging'\n\nconst getDirectReplacement = ({ mediaQuery, parent, t }) => ({\n newPath: parent,\n replacement: astify(mediaQuery, t),\n})\n\nconst handleDefinition = ({ mediaQuery, parent, type, t }) =>\n ({\n TaggedTemplateExpression() {\n const newPath = parent.findParent(x => x.isTaggedTemplateExpression())\n const query = [`${mediaQuery} { `, ` }`]\n const quasis = [\n t.templateElement({ raw: query[0], cooked: query[0] }, false),\n t.templateElement({ raw: query[1], cooked: query[1] }, true),\n ]\n const expressions = [newPath.get('quasi').node]\n const replacement = t.templateLiteral(quasis, expressions)\n return { newPath, replacement }\n },\n CallExpression() {\n const newPath = parent.findParent(x => x.isCallExpression())\n const value = newPath.get('arguments')[0].node\n const replacement = t.objectExpression([\n t.objectProperty(t.stringLiteral(mediaQuery), value),\n ])\n return { newPath, replacement }\n },\n ObjectProperty() {\n // Remove brackets around keys so merges work with tailwind screens\n // styled.div({ [screen`2xl`]: tw`block`, ...tw`2xl:inline` })\n // https://github.com/ben-rogerson/twin.macro/issues/379\n parent.parent.computed = false\n\n return getDirectReplacement({ mediaQuery, parent, t })\n },\n ExpressionStatement: () => getDirectReplacement({ mediaQuery, parent, t }),\n ArrowFunctionExpression: () =>\n getDirectReplacement({ mediaQuery, parent, t }),\n ArrayExpression: () => getDirectReplacement({ mediaQuery, parent, t }),\n BinaryExpression: () => getDirectReplacement({ mediaQuery, parent, t }),\n LogicalExpression: () => getDirectReplacement({ mediaQuery, parent, t }),\n ConditionalExpression: () =>\n getDirectReplacement({ mediaQuery, parent, t }),\n VariableDeclarator: () => getDirectReplacement({ mediaQuery, parent, t }),\n TemplateLiteral: () => getDirectReplacement({ mediaQuery, parent, t }),\n TSAsExpression: () => getDirectReplacement({ mediaQuery, parent, t }),\n }[type])\n\nconst validateScreenValue = ({ screen, screens, value }) =>\n throwIf(!screen, () =>\n logBadGood(\n `${\n value\n ? `“${value}” wasn’t found in your`\n : 'Specify a screen value from your'\n } tailwind config`,\n `Try one of these:\\n\\n${Object.entries(screens)\n .map(([k, v]) => `screen.${k}\\`...\\` (${v})`)\n .join('\\n')}`\n )\n )\n\nconst getMediaQuery = ({ input, screens }) => {\n validateScreenValue({ screen: screens[input], screens, value: input })\n const mediaQuery = `@media (min-width: ${screens[input]})`\n return mediaQuery\n}\n\nconst handleScreenFunction = ({ references, t, state }) => {\n if (!references.screen) return\n\n const theme = getTheme(state.config.theme)\n const screens = theme('screens')\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n references.screen.forEach(path => {\n const { input, parent } = getTaggedTemplateValue(path) || // screen.lg``\n getFunctionValue(path) || // screen.lg({ })\n getMemberExpression(path) || {\n // screen`lg`\n input: null,\n parent: null,\n }\n\n const definition = handleDefinition({\n type: parent.parent.type,\n mediaQuery: getMediaQuery({ input, screens }),\n parent,\n t,\n })\n\n throwIf(!definition, () =>\n logBadGood(\n `The screen import doesn’t support that syntax`,\n `Try something like this:\\n\\n${[...Object.keys(screens)]\n .map(f => `screen.${f}`)\n .join(', ')}`\n )\n )\n\n const { newPath, replacement } = definition()\n\n replaceWithLocation(newPath, replacement)\n })\n}\n\nexport { handleScreenFunction }\n","// Reference: https://github.com/tailwindlabs/tailwindcss/blob/master/src/css/preflight.css\nexport const globalPreflightStyles = ({ theme }) => ({\n '*, ::before, ::after': {\n boxSizing: 'border-box',\n borderWidth: '0',\n borderStyle: 'solid',\n borderColor: theme`borderColor.DEFAULT` || 'currentColor',\n },\n '::before, ::after': { '--tw-content': \"''\" },\n html: {\n lineHeight: '1.5',\n WebkitTextSizeAdjust: '100%',\n MozTabSize: '4',\n tabSize: '4',\n fontFamily:\n theme`fontFamily.sans` ||\n `ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"`,\n },\n body: { margin: '0', lineHeight: 'inherit' },\n hr: { height: '0', color: 'inherit', borderTopWidth: '1px' },\n 'abbr:where([title])': { textDecoration: 'underline dotted' },\n 'h1, h2, h3, h4, h5, h6': { fontSize: 'inherit', fontWeight: 'inherit' },\n a: { color: 'inherit', textDecoration: 'inherit' },\n 'b, strong': { fontWeight: 'bolder' },\n 'code, kbd, samp, pre': {\n fontFamily:\n theme`fontFamily.mono` ||\n `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace`,\n fontSize: '1em',\n },\n small: { fontSize: '80%' },\n 'sub, sup': {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline',\n },\n sub: { bottom: '-0.25em' },\n sup: { top: '-0.5em' },\n table: {\n textIndent: '0',\n borderColor: 'inherit',\n borderCollapse: 'collapse',\n },\n 'button, input, optgroup, select, textarea': {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: 'inherit',\n color: 'inherit',\n margin: '0',\n padding: '0',\n },\n 'button, select': { textTransform: 'none' },\n 'button, [type=\"button\"], [type=\"reset\"], [type=\"submit\"]': {\n WebkitAppearance: 'button',\n backgroundColor: 'transparent',\n backgroundImage: 'none',\n },\n ':-moz-focusring': { outline: 'auto' },\n ':-moz-ui-invalid': { boxShadow: 'none' },\n progress: { verticalAlign: 'baseline' },\n '::-webkit-inner-spin-button, ::-webkit-outer-spin-button': {\n height: 'auto',\n },\n '[type=\"search\"]': { WebkitAppearance: 'textfield', outlineOffset: '-2px' },\n '::-webkit-search-decoration': { WebkitAppearance: 'none' },\n '::-webkit-file-upload-button': {\n WebkitAppearance: 'button',\n font: 'inherit',\n },\n summary: { display: 'list-item' },\n 'blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre': {\n margin: '0',\n },\n fieldset: { margin: '0', padding: '0' },\n legend: { padding: '0' },\n 'ol, ul, menu': { listStyle: 'none', margin: '0', padding: '0' },\n textarea: { resize: 'vertical' },\n 'input::-moz-placeholder, textarea::-moz-placeholder': {\n opacity: '1',\n color: theme`colors.gray.400` || '#9ca3af',\n },\n 'input:-ms-input-placeholder, textarea:-ms-input-placeholder': {\n opacity: '1',\n color: theme`colors.gray.400` || '#9ca3af',\n },\n 'input::placeholder, textarea::placeholder': {\n opacity: '1',\n color: theme`colors.gray.400` || '#9ca3af',\n },\n 'button, [role=\"button\"]': { cursor: 'pointer' },\n ':disabled, [disabled]': { cursor: 'default' }, // Gotcha: :disabled doesn't seem to work with css-in-js so added [disabled] as a backup\n 'img, svg, video, canvas, audio, iframe, embed, object': {\n display: 'block',\n verticalAlign: 'middle',\n },\n 'img, video': { maxWidth: '100%', height: 'auto' },\n '[hidden]': { display: 'none' },\n})\n\nexport const globalRingStyles = ({ theme, withAlpha }) => {\n const ringOpacityDefault = theme`ringOpacity.DEFAULT` || '0.5'\n const ringColorDefault = withAlpha({\n color:\n theme`ringColor.DEFAULT` || `rgb(147 197 253 / ${ringOpacityDefault})`,\n pieces: { important: '', hasAlpha: true, alpha: ringOpacityDefault },\n })\n return {\n '*, ::before, ::after': {\n '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-ring-offset-width': theme`ringOffsetWidth.DEFAULT` || '0px',\n '--tw-ring-offset-color': theme`ringOffsetColor.DEFAULT` || '#fff',\n '--tw-ring-color': ringColorDefault,\n '--tw-ring-offset-shadow': '0 0 #0000',\n '--tw-ring-shadow': '0 0 #0000',\n },\n }\n}\n\nexport const globalTransformStyles = {\n '*, ::before, ::after': {\n '--tw-translate-x': '0',\n '--tw-translate-y': '0',\n '--tw-rotate': '0',\n '--tw-skew-x': '0',\n '--tw-skew-y': '0',\n '--tw-scale-x': '1',\n '--tw-scale-y': '1',\n },\n}\n\nexport const globalTouchActionStyles = {\n '*, ::before, ::after': {\n '--tw-pan-x': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-pan-y': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-pinch-zoom': 'var(--tw-empty,/*!*/ /*!*/)',\n },\n}\n\nexport const globalScrollSnapTypeStyles = {\n '*, ::before, ::after': {\n '--tw-scroll-snap-strictness': 'proximity',\n },\n}\n\nexport const globalFontVariantNumericStyles = {\n '*, ::before, ::after': {\n '--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)',\n },\n}\n\nexport const globalBoxShadowStyles = {\n '*, ::before, ::after': {\n '--tw-shadow': '0 0 #0000',\n '--tw-shadow-colored': '0 0 #0000',\n },\n}\n\nexport const globalFilterStyles = {\n '*, ::before, ::after': {\n '--tw-blur': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-brightness': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-contrast': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-grayscale': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-hue-rotate': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-invert': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-saturate': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-sepia': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-drop-shadow': 'var(--tw-empty,/*!*/ /*!*/)',\n },\n}\n\nexport const globalBackdropStyles = {\n '*, ::before, ::after': {\n '--tw-backdrop-blur': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-brightness': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-contrast': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-grayscale': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-hue-rotate': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-invert': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-opacity': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-saturate': 'var(--tw-empty,/*!*/ /*!*/)',\n '--tw-backdrop-sepia': 'var(--tw-empty,/*!*/ /*!*/)',\n },\n}\n\nexport const globalKeyframeStyles = ({ theme }) => {\n const keyframes = theme('keyframes')\n if (!keyframes) return\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n const output = Object.entries(keyframes).reduce(\n (result, [name, frames]) => ({ ...result, [`@keyframes ${name}`]: frames }),\n {}\n )\n return output\n}\n\nconst globalStyles = [\n globalPreflightStyles,\n globalKeyframeStyles,\n globalTransformStyles,\n globalTouchActionStyles,\n globalScrollSnapTypeStyles,\n globalFontVariantNumericStyles,\n globalRingStyles,\n globalBoxShadowStyles,\n globalFilterStyles,\n globalBackdropStyles,\n]\n\nexport default globalStyles\n","import deepMerge from 'lodash.merge'\nimport template from '@babel/template'\nimport {\n addImport,\n generateUid,\n generateTaggedTemplateExpression,\n} from '../macroHelpers'\nimport { throwIf, getTheme, isClass, isEmpty, withAlpha } from '../utils'\nimport { logGeneralError } from './../logging'\nimport userPresets from './../config/userPresets'\nimport globalStyles from './../config/globalStyles'\n\nconst getGlobalConfig = config => {\n const usedConfig =\n (config.global && config) ||\n userPresets[config.preset] ||\n userPresets.emotion\n return usedConfig.global\n}\n\nconst addGlobalStylesImport = ({ program, t, identifier, config }) => {\n const globalConfig = getGlobalConfig(config)\n return addImport({\n types: t,\n program,\n identifier,\n name: globalConfig.import,\n mod: globalConfig.from,\n })\n}\n\nconst getGlobalDeclarationTte = ({ t, stylesUid, globalUid, styles }) =>\n t.variableDeclaration('const', [\n t.variableDeclarator(\n globalUid,\n generateTaggedTemplateExpression({ t, identifier: stylesUid, styles })\n ),\n ])\n\nconst getGlobalDeclarationProperty = props => {\n const { t, stylesUid, globalUid, state, styles } = props\n\n const ttExpression = generateTaggedTemplateExpression({\n t,\n identifier: state.cssIdentifier,\n styles,\n })\n\n const openingElement = t.jsxOpeningElement(\n t.jsxIdentifier(stylesUid.name),\n [\n t.jsxAttribute(\n t.jsxIdentifier('styles'),\n t.jsxExpressionContainer(ttExpression)\n ),\n ],\n true\n )\n\n const closingElement = t.jsxClosingElement(t.jsxIdentifier('close'))\n\n const arrowFunctionExpression = t.arrowFunctionExpression(\n [],\n t.jsxElement(openingElement, closingElement, [], true)\n )\n\n const code = t.variableDeclaration('const', [\n t.variableDeclarator(globalUid, arrowFunctionExpression),\n ])\n\n return code\n}\n\nconst kebabize = string =>\n string.replace(/([\\da-z]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase()\n\nconst convertCssObjectToString = cssObject => {\n if (!cssObject) return\n\n return Object.entries(cssObject)\n .map(([k, v]) =>\n typeof v === 'string'\n ? `${kebabize(k)}: ${v};`\n : `${k} {\n${convertCssObjectToString(v)}\n }`\n )\n .join('\\n')\n}\n\n// Trim out classes defined within the selector\nconst filterClassSelectors = ruleset => {\n if (isEmpty(ruleset)) return\n\n return Object.entries(ruleset).reduce((result, [selector, value]) => {\n // Trim out the classes defined within the selector\n // Classes added using addBase have already been grabbed so they get filtered to avoid duplication\n const filteredSelectorSet = selector\n .split(',')\n .filter(s => {\n if (isClass(s)) return false\n\n // Remove sub selectors with a class as one of their keys\n const subSelectors = Object.keys(value)\n const hasSubClasses = subSelectors.some(selector => isClass(selector))\n if (hasSubClasses) return false\n\n return true\n })\n .join(',')\n if (!filteredSelectorSet) return result\n\n return { ...result, [filteredSelectorSet]: value }\n }, {})\n}\n\nconst handleGlobalStylesFunction = props => {\n const { references } = props\n\n references.GlobalStyles && handleGlobalStylesJsx(props)\n references.globalStyles && handleGlobalStylesVariable(props)\n}\n\nconst getGlobalStyles = ({ state }) => {\n // Create the magic theme function\n const theme = getTheme(state.config.theme)\n\n // Filter out classes as they're extracted as usable classes\n const strippedPlugins = filterClassSelectors(\n state.userPluginData && state.userPluginData.base\n )\n\n const resolvedStyles = globalStyles.map(gs =>\n typeof gs === 'function' ? gs({ theme, withAlpha }) : gs\n )\n\n if (strippedPlugins) resolvedStyles.push(strippedPlugins)\n\n const styles = resolvedStyles.reduce(\n (result, item) => deepMerge(result, item),\n {}\n )\n\n return styles\n}\n\nconst handleGlobalStylesVariable = ({ references, state }) => {\n if (references.globalStyles.length === 0) return\n\n const styles = getGlobalStyles({ state })\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n references.globalStyles.forEach(path => {\n const templateStyles = `(${JSON.stringify(styles)})` // `template` requires () wrapping\n const convertedStyles = template(templateStyles, {\n placeholderPattern: false,\n })()\n\n path.replaceWith(convertedStyles)\n })\n}\n\nconst handleGlobalStylesJsx = props => {\n const { references, program, t, state, config } = props\n\n if (references.GlobalStyles.length === 0) return\n\n throwIf(references.GlobalStyles.length > 1, () =>\n logGeneralError('Only one GlobalStyles import can be used')\n )\n\n const path = references.GlobalStyles[0]\n const parentPath = path.findParent(x => x.isJSXElement())\n\n throwIf(!parentPath, () =>\n logGeneralError(\n 'GlobalStyles must be added as a JSX element, eg: <GlobalStyles />'\n )\n )\n\n const styles = convertCssObjectToString(getGlobalStyles({ state }))\n\n const globalUid = generateUid('GlobalStyles', program)\n const stylesUid = generateUid('globalImport', program)\n const declarationData = { t, globalUid, stylesUid, styles, state }\n\n if (state.isStyledComponents) {\n const declaration = getGlobalDeclarationTte(declarationData)\n program.unshiftContainer('body', declaration)\n path.replaceWith(t.jSXIdentifier(globalUid.name))\n }\n\n if (state.isEmotion) {\n const declaration = getGlobalDeclarationProperty(declarationData)\n program.unshiftContainer('body', declaration)\n path.replaceWith(t.jSXIdentifier(globalUid.name))\n // Check if the css import has already been imported\n // https://github.com/ben-rogerson/twin.macro/issues/313\n state.isImportingCss = !state.existingCssIdentifier\n }\n\n if (state.isGoober) {\n const declaration = getGlobalDeclarationTte(declarationData)\n program.unshiftContainer('body', declaration)\n path.replaceWith(t.jSXIdentifier(globalUid.name))\n }\n\n throwIf(state.isStitches, () =>\n logGeneralError('Use the “globalStyles” import with stitches')\n )\n\n addGlobalStylesImport({ identifier: stylesUid, t, program, config })\n}\n\nexport { handleGlobalStylesFunction }\n","import { corePlugins } from './config'\nimport {\n isShortCss as getIsShortCss,\n isArbitraryCss,\n toArray,\n} from './utils/misc'\n\nconst getCorePluginProperties = className => {\n const matches = Object.entries(corePlugins)\n .map(item => {\n const [pluginName, config] = item\n if (className === pluginName) return item\n\n const startsWithPluginName = className.startsWith(\n String(pluginName) + '-'\n )\n if (!startsWithPluginName) return\n\n const supportsFurtherMatching = toArray(config).some(i =>\n Boolean(i.config)\n )\n if (!supportsFurtherMatching) return\n\n return item\n })\n .filter(Boolean)\n\n if (matches.length === 0) return { isCorePluginClass: false }\n\n const longestMatch = matches.sort((a, b) =>\n a[0].length > b[0].length ? -1 : 1\n )[0]\n const [corePluginName, coreConfig] = longestMatch\n\n return {\n isCorePluginClass: true,\n coreConfig: toArray(coreConfig),\n corePluginName,\n }\n}\n\nconst isEmpty = value =>\n value === undefined ||\n value === null ||\n (typeof value === 'object' && Object.keys(value).length === 0) ||\n (typeof value === 'string' && value.trim().length === 0)\n\nexport const getProperties = (className, state, { isCsOnly = false }) => {\n if (!className) return\n\n const isShortCss = getIsShortCss(className)\n if (isCsOnly || isShortCss)\n return { hasMatches: isShortCss, type: 'shortCss' }\n\n if (isArbitraryCss(className))\n return { hasMatches: true, type: 'arbitraryCss' }\n\n const { isCorePluginClass, coreConfig, corePluginName } =\n getCorePluginProperties(className)\n\n return {\n type: isCorePluginClass && 'dynamic',\n hasMatches: Boolean(isCorePluginClass),\n hasUserPlugins: !isEmpty(state.config.plugins),\n coreConfig,\n corePluginName,\n }\n}\n","import { throwIf, isShortCss } from './utils'\nimport { logBadGood } from './logging'\n\nconst precheckGroup = ({ classNameRaw }) =>\n throwIf(\n classNameRaw === 'group',\n () =>\n `\\n\\n\"group\" must be added as className:${logBadGood(\n 'tw`group`',\n '<div className=\"group\">'\n )}\\nRead more at https://twinredirect.page.link/group\\n`\n )\n\nconst precheckPeer = ({ classNameRaw }) =>\n throwIf(\n classNameRaw === 'peer',\n () =>\n `\\n\\n\"peer\" must be added as className:${logBadGood(\n 'tw`peer`',\n '<div className=\"peer\">'\n )}\\nRead more at https://twinredirect.page.link/peer\\n`\n )\n\nconst joinWithNoDoubleHyphens = arr => arr.join('-').replace(/-+/g, '-')\n\nconst preCheckPrefix = ({ pieces: { className, hasPrefix }, state }) => {\n if (isShortCss(className)) return\n\n const { prefix } = state.config\n if (hasPrefix === Boolean(prefix)) return\n\n const classSuggestion = joinWithNoDoubleHyphens([prefix, className])\n\n throwIf(\n !className.startsWith(prefix),\n () =>\n `\\n\\n“${className}” should have a prefix:${logBadGood(\n className,\n classSuggestion\n )}`\n )\n}\n\nconst preCheckNoHyphenSuffix = ({ pieces: { className, classNameRaw } }) => {\n if (isShortCss(className)) return\n\n throwIf(classNameRaw.endsWith('-'), () =>\n logBadGood(\n `“${className}” should not have a '-' suffix`,\n `Change it to “${className.replace(/-*$/, '')}”`\n )\n )\n}\n\nconst doPrechecks = (prechecks, context) => {\n for (const precheck of prechecks) {\n precheck(context)\n }\n}\n\nexport {\n doPrechecks as default,\n precheckGroup,\n precheckPeer,\n preCheckPrefix,\n preCheckNoHyphenSuffix,\n}\n","// Tim Sort provides accurate sorting in node < 11\n// https://github.com/ben-rogerson/twin.macro/issues/20\nimport timSort from 'timsort'\n\nconst compareBackdropProperty = (a, b) => {\n // The order of grid properties matter when combined into a single object\n // So here we move backdrop-filter to the beginning to avoid being trumped\n // https://github.com/ben-rogerson/twin.macro/issues/363\n const A = /(^|:)backdrop-filter/.test(a) ? -1 : 0\n const B = /(^|:)backdrop-filter/.test(b) ? -1 : 0\n return A - B\n}\n\nconst orderBackdropProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareBackdropProperty)\n return classNames.join(' ')\n}\n\nconst compareBgOpacityProperty = (a, b) => {\n // The order of bg-opacity matters when combined into a single object\n // So we move bg-opacity-xxx to the end to avoid being trumped by the bg color\n const A = /(^|:)bg-opacity-/.test(a) ? 0 : -1\n const B = /(^|:)bg-opacity-/.test(b) ? 0 : -1\n return A - B\n}\n\nconst orderBgOpacityProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareBgOpacityProperty)\n return classNames.join(' ')\n}\n\nconst compareFilterProperty = (a, b) => {\n // The order of grid properties matter when combined into a single object\n // So here we move filter to the beginning to avoid being trumped\n // https://github.com/ben-rogerson/twin.macro/issues/363\n const A = /(^|:)filter/.test(a) ? -1 : 0\n const B = /(^|:)filter/.test(b) ? -1 : 0\n return A - B\n}\n\nconst orderFilterProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareFilterProperty)\n return classNames.join(' ')\n}\n\nconst compareGridProperty = (a, b) => {\n // The order of grid properties matter when combined into a single object\n // So here we move col-span-x to the beginning to avoid being trumped\n // https://github.com/ben-rogerson/twin.macro/issues/363\n const A = /(^|:)col-span-/.test(a) ? -1 : 0\n const B = /(^|:)col-span-/.test(b) ? -1 : 0\n return A - B\n}\n\nconst orderGridProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareGridProperty)\n return classNames.join(' ')\n}\n\nconst compareOrderRingProperty = (a, b) => {\n // The order of ring properties matter when combined into a single object\n // So here we move ring-opacity-xxx to the end to avoid being trumped\n // https://github.com/ben-rogerson/twin.macro/issues/374\n const A = /(^|:)ring-opacity-/.test(a) ? 0 : -1\n const B = /(^|:)ring-opacity-/.test(b) ? 0 : -1\n return A - B\n}\n\nconst orderRingProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareOrderRingProperty)\n return classNames.join(' ')\n}\n\nconst compareTransformProperty = (a, b) => {\n // The order of transform properties matter when combined into a single object\n // So here we move transform to the beginning to avoid being trumped\n // https://github.com/ben-rogerson/twin.macro/issues/363\n const A = /(^|:)transform(!|$)/.test(a) ? -1 : 0\n const B = /(^|:)transform(!|$)/.test(b) ? -1 : 0\n return A - B\n}\n\nconst orderTransformProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareTransformProperty)\n return classNames.join(' ')\n}\n\nconst compareTransition = (a, b) => {\n // The order of transition properties matter when combined into a single object\n // So here we move transition-x to the beginning to avoid being trumped\n // https://github.com/ben-rogerson/twin.macro/issues/363\n const A = /(^|:)transition(!|$)/.test(a) ? -1 : 0\n const B = /(^|:)transition(!|$)/.test(b) ? -1 : 0\n return A - B\n}\n\nconst orderTransitionProperty = className => {\n const classNames = className.match(/\\S+/g) || []\n timSort.sort(classNames, compareTransition)\n return classNames.join(' ')\n}\n\nconst orderByScreens = (className, state) => {\n const classNames = className.match(/\\S+/g) || []\n const screens = Object.keys(state.config.theme.screens)\n\n const screenCompare = (a, b) => {\n const A = a.includes(':') ? a.split(':')[0] : a\n const B = b.includes(':') ? b.split(':')[0] : b\n return screens.indexOf(A) < screens.indexOf(B) ? -1 : 1\n }\n\n timSort.sort(classNames, screenCompare)\n return classNames\n}\n\nexport {\n orderBackdropProperty,\n orderBgOpacityProperty,\n orderFilterProperty,\n orderGridProperty,\n orderRingProperty,\n orderTransformProperty,\n orderTransitionProperty,\n orderByScreens,\n}\n","import { get, toArray } from './utils'\n\nconst stringifyScreen = (config, screenName) => {\n const screen = get(config, ['theme', 'screens', screenName])\n if (typeof screen === 'undefined') {\n throw new Error(\n `Couldn’t find Tailwind the screen \"${screenName}\" in the Tailwind config`\n )\n }\n\n if (typeof screen === 'string') return `@media (min-width: ${screen})`\n if (typeof screen.raw === 'string') {\n return `@media ${screen.raw}`\n }\n\n const string = toArray(screen)\n .map(range =>\n [\n typeof range.min === 'string' ? `(min-width: ${range.min})` : null,\n typeof range.max === 'string' ? `(max-width: ${range.max})` : null,\n ]\n .filter(Boolean)\n .join(' and ')\n )\n .join(', ')\n return string ? `@media ${string}` : ''\n}\n\nexport { stringifyScreen }\n","const variantDarkMode = ({ hasGroupVariant, config, errorCustom }) => {\n const styles =\n {\n // Media strategy: The default when you prepend with dark, tw`dark:block`\n media: '@media (prefers-color-scheme: dark)',\n // Class strategy: In your tailwind.config.js, add `{ dark: 'class' }\n // then add a `className=\"dark\"` on a parent element.\n class: !hasGroupVariant && '.dark &',\n }[config('darkMode') || 'media'] || null\n\n if (!styles && !hasGroupVariant) {\n errorCustom(\n \"The `darkMode` config option must be either `{ darkMode: 'media' }` (default) or `{ darkMode: 'class' }`\"\n )\n }\n\n return styles\n}\n\nconst variantLightMode = ({ hasGroupVariant, config, errorCustom }) => {\n const styles =\n {\n // Media strategy: The default when you prepend with light, tw`light:block`\n media: '@media (prefers-color-scheme: light)',\n // Class strategy: In your tailwind.config.js, add `{ light: 'class' }\n // then add a `className=\"light\"` on a parent element.\n class: !hasGroupVariant && '.light &',\n }[config('lightMode') || config('darkMode') || 'media'] || null\n\n if (!styles && !hasGroupVariant) {\n if (config('lightMode')) {\n errorCustom(\n \"The `lightMode` config option must be either `{ lightMode: 'media' }` (default) or `{ lightMode: 'class' }`\"\n )\n }\n\n errorCustom(\n \"The `darkMode` config option must be either `{ darkMode: 'media' }` (default) or `{ darkMode: 'class' }`\"\n )\n }\n\n return styles\n}\n\nconst prefixDarkLightModeClass = (\n className,\n { hasDarkVariant, hasLightVariant, config }\n) => {\n const themeVariant =\n (hasDarkVariant && config('darkMode') === 'class' && ['dark ', 'dark']) ||\n (hasLightVariant &&\n (config('lightMode') === 'class' || config('darkMode') === 'class') && [\n 'light ',\n 'light',\n ])\n if (!themeVariant) return className\n\n return themeVariant\n .map(v =>\n className\n .split(', ')\n .map(cn => `.${v}${cn}`)\n .join(', ')\n )\n .join(', ')\n}\n\nexport { variantDarkMode, variantLightMode, prefixDarkLightModeClass }\n","import { MacroError } from 'babel-plugin-macros'\nimport { stringifyScreen } from './screens'\nimport { logNoVariant, logGeneralError } from './logging'\nimport { variantConfig } from './config'\nimport {\n get,\n throwIf,\n formatProp,\n isShortCss,\n replaceSpaceId,\n toArray,\n} from './utils'\nimport {\n variantDarkMode,\n variantLightMode,\n prefixDarkLightModeClass,\n} from './darkLightMode'\n\nconst createPeer = selector => {\n const selectors = toArray(selector)\n return selectors.map(s => `.peer:${s} ~ &`).join(', ')\n}\n\nconst fullVariantConfig = variantConfig({\n variantDarkMode,\n variantLightMode,\n prefixDarkLightModeClass,\n createPeer,\n})\n\nconst getVariants = ({ variants, state, ...rest }) => {\n if (!variants) return []\n\n const screens = get(state.config, ['theme', 'screens'])\n const screenNames = Object.keys(screens)\n\n return variants\n .map(variant => {\n const isResponsive = screenNames && screenNames.includes(variant)\n if (isResponsive) return stringifyScreen(state.config, variant)\n\n let foundVariant = fullVariantConfig[variant]\n\n if (!foundVariant) {\n const arbitraryVariant = variant.match(/^\\[(.+)]/)\n if (arbitraryVariant) foundVariant = arbitraryVariant[1]\n }\n\n if (!foundVariant) {\n if (variant === 'only-child') {\n throw new MacroError(\n logGeneralError(\n 'The \"only-child:\" variant was deprecated in favor of \"only:\"'\n )\n )\n }\n\n if (variant === 'not-only-child') {\n throw new MacroError(\n logGeneralError(\n 'The \"not-only-child:\" variant was deprecated in favor of \"not-only:\"'\n )\n )\n }\n\n const validVariants = {\n ...(screenNames.length > 0 && { 'Screen breakpoints': screenNames }),\n 'Built-in variants': Object.keys(fullVariantConfig),\n }\n throw new MacroError(logNoVariant(variant, validVariants))\n }\n\n if (typeof foundVariant === 'function') {\n const context = {\n ...rest,\n config: item => state.config[item] || null,\n errorCustom(message) {\n throw new MacroError(logGeneralError(message))\n },\n }\n foundVariant = foundVariant(context)\n }\n\n return foundVariant\n })\n .filter(Boolean)\n}\n\n/**\n * Split the variant(s) from the className\n */\nconst splitVariants = ({ classNameRaw, state }) => {\n const variantsList = []\n let variant\n let className = classNameRaw\n while (variant !== null) {\n // Match arbitrary variants\n variant = className.match(/^([\\d<>_a-z-]+):|^\\[.*?]:/)\n\n if (variant) {\n className = className.slice(variant[0].length)\n variantsList.push(replaceSpaceId(variant[0].slice(0, -1)))\n }\n }\n\n // dark: and light: variants\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-includes\n const hasDarkVariant = variantsList.some(v => v === 'dark')\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-includes\n const hasLightVariant = variantsList.some(v => v === 'light')\n if (hasDarkVariant && hasLightVariant) {\n throw new MacroError(\n logGeneralError(\n 'The light: and dark: variants can’t be used on the same element'\n )\n )\n }\n\n const hasGroupVariant = variantsList.some(v => v.startsWith('group-'))\n\n // Match the filtered variants\n const variants = getVariants({\n variants: variantsList,\n state,\n hasDarkVariant,\n hasLightVariant,\n hasGroupVariant,\n })\n\n const hasVariants = variants.length > 0\n\n className = replaceSpaceId(className)\n return {\n classNameRawNoVariants: className,\n className,\n variants,\n hasVariants,\n hasVariantVisited: variants.includes(':visited'),\n }\n}\n\nconst splitPrefix = props => {\n const { className, state } = props\n const { prefix } = state.config\n\n if (!prefix) return { className, hasPrefix: false }\n\n if (!className.startsWith(prefix)) return { className, hasPrefix: false }\n\n const newClassName = className.slice(prefix.length)\n return { className: newClassName, hasPrefix: true }\n}\n\n/**\n * Split the negative from the className\n */\nconst splitNegative = ({ className }) => {\n const hasNegative = !isShortCss(className) && className.slice(0, 1) === '-'\n if (hasNegative) className = className.slice(1, className.length)\n const negative = hasNegative ? '-' : ''\n return { className, hasNegative, negative }\n}\n\n/**\n * Split the important from the className\n */\nconst splitImportant = ({ className }) => {\n const hasPrefix = className.slice(0, 1) === '!'\n const hasSuffix = className.slice(-1) === '!'\n const hasImportant = hasSuffix || hasPrefix\n if (hasImportant)\n className = hasSuffix ? className.slice(0, -1) : className.slice(1)\n const important = hasImportant ? ' !important' : ''\n return { className, hasImportant, important }\n}\n\nconst getAlphaValue = alpha =>\n Number.isInteger(Number(alpha)) ? Number(alpha) / 100 : alpha\n\nconst getLastSlashIndex = className => {\n const match = className.match(/\\/(?![^[]*])/g)\n if (!match) return -1\n const lastSlashIndex = className.lastIndexOf(match[match.length - 1])\n return lastSlashIndex\n}\n\n// Keep after splitImportant\nconst splitAlpha = props => {\n const { className } = props\n const slashIdx = getLastSlashIndex(className)\n throwIf(slashIdx === className.length - 1, () =>\n logGeneralError(`The class “${className}” can’t end with a slash`)\n )\n if (slashIdx === -1) return { className, classNameNoSlashAlpha: className }\n\n const rawAlpha = className.slice(Number(slashIdx) + 1)\n const hasAlphaArbitrary = Boolean(\n rawAlpha[0] === '[' && rawAlpha[rawAlpha.length - 1] === ']'\n )\n\n const hasMatchedAlpha = Boolean(\n !hasAlphaArbitrary && get(props, 'state.config.theme.opacity')[rawAlpha]\n )\n\n const hasAlpha = hasAlphaArbitrary || hasMatchedAlpha || false\n\n const context = { hasAlpha, hasAlphaArbitrary }\n\n if (!hasAlpha) return { ...context, classNameNoSlashAlpha: className }\n\n if (hasAlphaArbitrary)\n return {\n ...context,\n alpha: formatProp(rawAlpha.slice(1, -1)),\n classNameNoSlashAlpha: className.slice(0, slashIdx),\n }\n\n // Opacity value has been matched in the config\n return {\n ...context,\n alpha: String(getAlphaValue(rawAlpha)),\n classNameNoSlashAlpha: className.slice(0, slashIdx),\n }\n}\n\nexport { splitVariants, splitPrefix, splitImportant, splitNegative, splitAlpha }\n","const addContentClass = (classes, state) => {\n const newClasses = []\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n classes.forEach(classSet => {\n const shouldAddContent = /(?!.*:content($|\\[))(before:|after:)/.test(\n classSet\n )\n if (!shouldAddContent) return newClasses.push(classSet)\n\n const variants = classSet.split(':').slice(0, -1).join(':')\n\n // Avoid adding content if it's already in the new class list\n if (!newClasses.some(c => c.startsWith(`${variants}:content`)))\n // Temp fix until emotion supports css variables with the content property\n newClasses.push(\n `${variants}:content[${state.isEmotion ? '\"\"' : 'var(--tw-content)'}]`\n )\n\n newClasses.push(classSet)\n })\n\n return newClasses\n}\n\nexport { addContentClass }\n","import deepMerge from 'lodash.merge'\n\n/**\n * Add important to a value\n * Only used for static and dynamic styles - not core plugins\n */\nconst mergeImportant = (style, hasImportant) => {\n if (!hasImportant) return style\n // Bail if the ruleset already has an important\n if (JSON.stringify(style).includes(' !important')) return style\n\n return Object.entries(style).reduce((result, item) => {\n const [key, value] = item\n if (typeof value === 'object') return mergeImportant(value, hasImportant)\n\n // Don't add important to css variables\n const newValue = key.startsWith('--') ? value : `${value} !important`\n\n return deepMerge(result, { [key]: newValue })\n }, {})\n}\n\nconst transformImportant = ({ style, pieces: { hasImportant } }) =>\n mergeImportant(style, hasImportant)\n\nconst applyTransforms = context => {\n if (!context.style) return\n return transformImportant(context)\n}\n\nexport default applyTransforms\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport cleanSet from 'clean-set'\nimport { logGeneralError } from './logging'\nimport { get, throwIf } from './utils'\nimport { SPACE_ID } from './constants'\n\nconst getPeerValueFromVariant = variant =>\n get(/\\.peer:(.+) ~ &/.exec(variant), '1')\n\n/**\n * Combine peers when they are used in succession\n */\nconst combinePeers = ({ variants }) =>\n variants\n .map((_, i) => {\n let isPeer = false\n let index = i\n let returnVariant\n const peerList = []\n\n do {\n const peer = getPeerValueFromVariant(variants[index])\n\n isPeer = Boolean(peer)\n if (isPeer) {\n peerList.push(peer)\n variants[index] = null\n index = index + 1\n } else {\n returnVariant =\n peerList.length === 0\n ? variants[index]\n : `.peer:${peerList.join(':')} ~ &`\n }\n } while (isPeer)\n\n return returnVariant\n })\n .filter(Boolean)\n\nconst addSassyPseudo = ({ variants, state }) => {\n if (!state.configTwin.sassyPseudo) return variants\n return variants.map(v => v.replace(/(?<= ):|^:/g, '&:'))\n}\n\nconst formatTasks = [combinePeers, addSassyPseudo]\n\nconst addVariants = ({ results, style, pieces, state }) => {\n let { variants, hasVariants } = pieces\n if (!hasVariants) return style\n\n for (const task of formatTasks) {\n variants = task({ variants, state })\n }\n\n let styleWithVariants\n // eslint-disable-next-line prefer-const\n styleWithVariants = cleanSet(results, variants, {\n ...get(styleWithVariants, variants, {}),\n ...style,\n })\n\n return styleWithVariants\n}\n\nfunction findRightBracket(\n classes,\n start = 0,\n end = classes.length,\n brackets = ['(', ')']\n) {\n let stack = 0\n for (let index = start; index < end; index++) {\n if (classes[index] === brackets[0]) {\n stack += 1\n } else if (classes[index] === brackets[1]) {\n if (stack === 0) return\n if (stack === 1) return index\n stack -= 1\n }\n }\n}\n\nconst sliceToSpace = str => {\n const spaceIndex = str.indexOf(' ')\n if (spaceIndex === -1) return str\n\n return str.slice(0, spaceIndex)\n}\n\n// eslint-disable-next-line max-params\nfunction spreadVariantGroups(\n classes,\n context = '',\n importantContext = false,\n start = 0,\n end\n) {\n if (classes === '') return []\n\n const results = []\n classes = classes.slice(start, end).trim()\n\n // variant / class / group\n const reg = /(\\[.*?]:|[\\w-<>]+:)|([\\w-./[\\]]+!?)|\\(|(\\S+)/g\n\n let match\n const baseContext = context\n\n while ((match = reg.exec(classes))) {\n const [, variant, className, weird] = match\n\n if (variant) {\n // Replace arbitrary variant spaces with a placeholder to avoid incorrect splitting\n const spaceReplacedVariant = variant.replace(/\\s+/g, SPACE_ID)\n context += spaceReplacedVariant\n\n // Skip empty classes\n if (/\\s/.test(classes[reg.lastIndex])) {\n context = baseContext\n continue\n }\n\n if (classes[reg.lastIndex] === '(') {\n const closeBracket = findRightBracket(classes, reg.lastIndex)\n throwIf(typeof closeBracket !== 'number', () =>\n logGeneralError(\n `An ending bracket ')' wasn’t found for these classes:\\n\\n${classes}`\n )\n )\n\n const importantGroup = classes[closeBracket + 1] === '!'\n\n results.push(\n ...spreadVariantGroups(\n classes,\n context,\n importantContext || importantGroup,\n reg.lastIndex + 1,\n closeBracket\n )\n )\n reg.lastIndex = closeBracket + (importantGroup ? 2 : 1)\n context = baseContext\n }\n } else if (className && className.includes('[')) {\n const closeBracket = findRightBracket(\n classes,\n match.index,\n classes.length,\n ['[', ']']\n )\n throwIf(typeof closeBracket !== 'number', () =>\n logGeneralError(\n `An ending bracket ']' wasn’t found for these classes:\\n\\n${classes}`\n )\n )\n const importantGroup = classes[closeBracket + 1] === '!'\n const cssClass = classes.slice(match.index, closeBracket + 1)\n\n const hasSlashOpacity =\n classes.slice(closeBracket + 1, closeBracket + 2) === '/'\n const opacityValue = hasSlashOpacity\n ? sliceToSpace(classes.slice(closeBracket + 1))\n : ''\n\n // Convert spaces in classes to a temporary string so the css won't be\n // split into multiple classes\n const spaceReplacedClass = cssClass\n // Normalise the spacing - single spaces only\n // Replace spaces with the space id stand-in\n // Remove newlines within the brackets to allow multiline values\n .replace(/\\s+/g, SPACE_ID)\n\n results.push(\n context +\n spaceReplacedClass +\n opacityValue +\n (importantGroup || importantContext ? '!' : '')\n )\n\n reg.lastIndex =\n closeBracket + (importantGroup ? 2 : 1) + opacityValue.length\n context = baseContext\n } else if (className) {\n const tail = !className.endsWith('!') && importantContext ? '!' : ''\n results.push(context + className + tail)\n context = baseContext\n } else if (weird) {\n results.push(context + weird)\n } else {\n const closeBracket = findRightBracket(classes, match.index)\n throwIf(typeof closeBracket !== 'number', () =>\n logGeneralError(\n `An ending bracket ')' wasn’t found for these classes:\\n\\n${classes}`\n )\n )\n\n const importantGroup = classes[closeBracket + 1] === '!'\n results.push(\n ...spreadVariantGroups(\n classes,\n context,\n importantContext || importantGroup,\n match.index + 1,\n closeBracket\n )\n )\n reg.lastIndex = closeBracket + (importantGroup ? 2 : 1)\n }\n }\n\n return results\n}\n\nconst handleVariantGroups = classes => spreadVariantGroups(classes).join(' ')\n\nexport { addVariants, handleVariantGroups }\n","import {\n parseBoxShadowValue,\n formatBoxShadowValue,\n} from 'tailwindcss/lib/util/parseBoxShadowValue'\n\nconst defaultBoxShadow = [\n `var(--tw-ring-offset-shadow, 0 0 #0000)`,\n `var(--tw-ring-shadow, 0 0 #0000)`,\n `var(--tw-shadow)`,\n].join(', ')\n\nconst makeBoxShadow = (value, important) => {\n const ast = parseBoxShadowValue(value)\n for (const shadow of ast) {\n // Don't override color if the whole shadow is a variable\n if (!shadow.valid) {\n continue\n }\n\n shadow.color = 'var(--tw-shadow-color)'\n }\n\n return {\n '--tw-shadow': value === 'none' ? '0 0 #0000' : value,\n '--tw-shadow-colored':\n value === 'none' ? '0 0 #0000' : formatBoxShadowValue(ast),\n boxShadow: `${defaultBoxShadow}${important}`,\n }\n}\n\nexport { makeBoxShadow }\n","import deepMerge from 'lodash.merge'\nimport {\n throwIf,\n toAlpha,\n splitOnFirst,\n isSpaceSeparatedColor,\n isObject,\n toArray,\n} from './utils'\nimport { opacityErrorNotFound, logNotAllowed } from './logging'\nimport {\n image,\n url,\n color,\n length,\n lineWidth,\n position,\n shadow,\n absoluteSize,\n relativeSize,\n percentage,\n genericName,\n familyName,\n number,\n} from 'tailwindcss/lib/util/dataTypes'\nimport { makeBoxShadow } from './boxShadow'\nimport { getFlatCoercedConfigByProperty } from './configHelpers'\n\nconst coercedTypeMap = {\n any: ({ output, value }) => output(value),\n color({ config, value, pieces, forceReturn }) {\n const { property, variable } = config\n\n if (typeof config.output === 'function')\n return config.output(value, {\n withAlpha: toAlpha({ pieces, property, variable }),\n })\n\n if (\n !forceReturn &&\n typeof value === 'string' &&\n !color(value) &&\n !isSpaceSeparatedColor(value)\n )\n return\n\n const properties = toArray(property)\n let result = properties\n .map(p =>\n typeof value === 'string' && value.startsWith('var(')\n ? null\n : toAlpha({ pieces, variable, property: p })(value, pieces.alpha)\n )\n .filter(Boolean)\n\n if (result.length === 0)\n result = properties.map(p => ({ [p]: `${value}${pieces.important}` }))\n\n // @ts-expect-error TODO: Investigate TS error\n return deepMerge(...result)\n },\n 'line-width'({ config, value, theme, output, forceReturn }) {\n if (\n !forceReturn &&\n typeof value === 'string' &&\n !lineWidth(value) &&\n !value.startsWith('var(')\n )\n return\n if (typeof config === 'function') return config(value, theme)\n return output(value)\n },\n length({ config, value, theme, forceReturn, output }) {\n if (\n !forceReturn &&\n typeof value === 'string' &&\n !length(value) &&\n !value.startsWith('var(')\n )\n return\n if (typeof config === 'function') return config(value, theme)\n const { variable } = config\n return {\n ...(variable && { [variable]: '0' }),\n ...output(variable ? `calc(${value} * var(${variable}))` : value),\n }\n },\n number({ output, value, forceReturn }) {\n if (!forceReturn && !number(value)) return\n return output(value)\n },\n 'absolute-size'({ output, value, forceReturn }) {\n if (!forceReturn && !absoluteSize(value)) return\n return output(value)\n },\n 'relative-size'({ output, value, forceReturn }) {\n if (!forceReturn && !relativeSize(value)) return\n return output(value)\n },\n percentage({ output, value, forceReturn }) {\n if (!forceReturn && !percentage(value)) return\n return output(value)\n },\n image({ output, value, forceReturn }) {\n if (typeof value !== 'string') return\n if (!forceReturn && !image(value)) return\n return output(value)\n },\n url({ output, value, forceReturn }) {\n if (typeof value !== 'string') return\n if (!forceReturn && !url(value) && !value.startsWith('var(')) return\n return output(value)\n },\n position({ output, value, forceReturn }) {\n if (!forceReturn && !position(value)) return\n return output(value)\n },\n shadow({ value, pieces, forceReturn }) {\n if (!forceReturn && !shadow(value)) return\n return makeBoxShadow(value, pieces.important)\n },\n lookup: ({ config, value, theme }) =>\n typeof config === 'function' && config(value, theme),\n 'generic-name'({ output, value, forceReturn }) {\n if (typeof value !== 'string') return\n if (!forceReturn && !genericName(value)) return\n return output(value)\n },\n 'family-name'({ output, value, forceReturn }) {\n if (typeof value !== 'string') return\n if (!forceReturn && !familyName(value)) return\n return output(value)\n },\n}\n\nconst getTypeCoerced = (customValue, context) => {\n const [explicitType, value] = splitOnFirst(customValue, ':')\n if (value.length === 0) return\n\n const coercedConfig = getFlatCoercedConfigByProperty(context.property)\n\n throwIf(!coercedConfig, () =>\n logNotAllowed(\n context.pieces.className,\n `has no type support`,\n color =>\n `Remove the type: ${color.success(`${context.property}-[${value}]`)}`\n )\n )\n\n const coercedTypes = Object.keys(coercedConfig)\n\n throwIf(!coercedTypes.includes(explicitType), () =>\n logNotAllowed(\n context.pieces.className,\n `can’t use “${explicitType}” as a type`,\n color => {\n const suggestions = Object.entries(coercedConfig).map(\n ([type, config]) => {\n const dash = color.subdued('-')\n return `${dash} ${context.property}-[${color.highlight(\n type\n )}:${value}] to use ${color.highlight(config.property)}`\n }\n )\n if (suggestions.length === 0) return\n return `Try ${\n suggestions.length > 1 ? 'one of these' : 'this'\n }:\\n\\n${suggestions.join('\\n')}`\n }\n )\n )\n\n const config = coercedConfig[explicitType]\n\n const result = getCoercedValueFromTypeMap(explicitType, {\n config,\n value,\n pieces: context.pieces,\n theme: context.theme,\n forceReturn: true,\n })\n\n // Force return defined coerced value as fallback\n // eg: tw`indent-[lookup:10px]`\n if (!result) return { [config.property]: value }\n\n return result\n}\n\nconst applyStyleToProperty = (property, pieces) => style => {\n const properties = Array.isArray(property) ? property : [property]\n const styleValue = [pieces.negative, style].join('')\n const result = Object.fromEntries(properties.map(p => [p, styleValue]))\n return result\n}\n\nconst getCoercedValueFromTypeMap = (type, context) => {\n context.output = applyStyleToProperty(context.config.property, context.pieces)\n\n let extraStyles\n if (Array.isArray(context.value)) {\n const [value, ...rest] = context.value\n if (rest.length === 1 && isObject(rest[0])) {\n extraStyles = rest[0]\n context.value = value\n } else {\n context.value = context.value.join(', ')\n }\n }\n\n let result = coercedTypeMap[type](context)\n if (!result) return\n\n result = { ...result, ...extraStyles }\n\n throwIf(!['color', 'any'].includes(type) && context.pieces.hasAlpha, () =>\n opacityErrorNotFound({ className: context.pieces.classNameRaw })\n )\n\n const { wrapWith } = context.config\n if (wrapWith) return { [wrapWith]: result }\n\n return result\n}\n\nexport { getTypeCoerced, getCoercedValueFromTypeMap }\n","import { throwIf, isNumeric } from '../utils'\nimport { logGeneralError } from '../logging'\n\n// Arbitrary values with a theme value, eg: tw`h-[calc(100%-theme('spacing.16'))]`\nconst replaceThemeValue = (value, { theme }) => {\n const match = value.match(/theme\\([\"']?([^\"']+)[\"']?\\)/)\n if (!match) return value\n\n const themeFunction = match[0]\n const themeValue = theme(match[1])\n throwIf(!themeValue, () =>\n logGeneralError(`No theme value found for “${match[1]}”`)\n )\n\n return value.replace(themeFunction, themeValue)\n}\n\nconst maybeAddNegative = (value, negative) => {\n if (!negative) return value\n\n if (typeof value === 'string') {\n if (value.startsWith('-')) return value.slice(1)\n if (value.startsWith('var(')) return `calc(${value} * -1)`\n }\n\n if (isNumeric(value)) return `${negative}${value}`\n\n return value\n}\n\nexport { replaceThemeValue, maybeAddNegative }\n","import stringSimilarity from 'string-similarity'\nimport { corePlugins } from './../config'\nimport { getTypeCoerced, getCoercedValueFromTypeMap } from './../coerced'\nimport {\n throwIf,\n withAlpha,\n splitOnFirst,\n isObject,\n getFirstValue,\n} from './../utils'\nimport { logNotAllowed, logBadGood } from './../logging'\nimport {\n getFlatCoercedConfigByProperty,\n getCorePluginsByProperty,\n supportsArbitraryValues,\n} from './../configHelpers'\nimport { replaceThemeValue, maybeAddNegative } from './helpers'\n\nconst hasSupport = item =>\n getCorePluginsByProperty(item).some(i => supportsArbitraryValues(i))\n\nconst sortRatingHighestFirst = (a, b) => b.rating - a.rating\n\nconst getSuggestions = (results, { color, value }) =>\n results\n .filter(r => r.rating > 0.25)\n .sort(sortRatingHighestFirst)\n .slice(0, 5)\n .sort((a, b) => Number(hasSupport(b.target)) - Number(hasSupport(a.target)))\n .map(s => {\n const dash = color.subdued('-')\n return `${dash} ${\n hasSupport(s.target)\n ? `${s.target}-[${value}] ${dash} ${color.success(\n '✓ Arbitrary value support'\n )}`\n : `${s.target} ${dash} ${color.highlight('Static class')}`\n }`\n })\n\nconst getErrorFeedback = (property, value) => {\n const coercedConfig = getFlatCoercedConfigByProperty(property) || {}\n\n const config = Object.entries(coercedConfig)\n if (config.length > 0)\n return [\n 'needs a type hint before the value',\n color =>\n `Specify the type:\\n\\n${config\n .map(([pluginName, pluginConfig]) => {\n const dash = color.subdued('-')\n return `${dash} ${property}-[${color.highlight(\n pluginName\n )}:${value}] ${dash} ${pluginConfig.property}`\n })\n .join('\\n')}`,\n ]\n\n return [\n 'was not found',\n color => {\n const pluginKeys = Object.keys(corePlugins)\n const results = stringSimilarity.findBestMatch(\n property,\n pluginKeys\n ).ratings\n const suggestions = getSuggestions(results, { color, value })\n return `Did you mean ${\n suggestions.length > 1 ? 'one of these' : 'this'\n }?\\n\\n${suggestions.join('\\n')}`\n },\n ]\n}\n\nconst getClassData = className => {\n const [property, value] = splitOnFirst(className, '[')\n return [\n property.slice(0, -1), // Remove the dash just before the brackets\n value.slice(0, -1).replace(/_/g, ' ').trim(), // Remove underscores, the last ']' and whitespace\n ]\n}\n\nconst getArbitraryStyle = (\n config,\n { classValue, theme, pieces, property, state }\n) => {\n if (!supportsArbitraryValues(config)) return\n\n // Type-coerced arbitrary values, eg: text-[length:3px] / text-[color:red]\n const typeCoerced = getTypeCoerced(classValue, {\n theme,\n pieces,\n property,\n })\n if (typeCoerced) return typeCoerced\n\n if (typeof config.output === 'function')\n return config.output({\n value: maybeAddNegative(classValue, pieces.negative),\n color: props => withAlpha(props),\n negative: pieces.negative,\n isEmotion: state.isEmotion,\n theme,\n })\n\n // Non-coerced class\n if (config.coerced === undefined) {\n const value = maybeAddNegative(classValue, pieces.negative)\n return Array.isArray(config.property)\n ? // eslint-disable-next-line unicorn/prefer-object-from-entries\n config.property.reduce((result, p) => ({ ...result, [p]: value }), {})\n : { [config.property]: value }\n }\n\n if (!isObject(config.coerced)) return\n\n // Arbitrary value matched with array of coerced types\n const [coercedConfigResult] = getFirstValue(\n Object.entries(config.coerced),\n ([type, coercedConfig]) =>\n getCoercedValueFromTypeMap(type, {\n config: coercedConfig,\n value: classValue,\n pieces,\n theme,\n })\n )\n return coercedConfigResult\n}\n\nexport default props => {\n const [property, value] = getClassData(props.pieces.classNameNoSlashAlpha)\n\n // Replace theme values, eg: `bg-[theme(color.red.500)]`\n const classValue = replaceThemeValue(value, { theme: props.theme })\n\n const config = getCorePluginsByProperty(property)\n\n const [result, configUsed] = getFirstValue(config, p =>\n getArbitraryStyle(p, { ...props, property, classValue })\n )\n\n throwIf(!result, () =>\n logNotAllowed(\n props.pieces.classNameRawNoVariants,\n ...getErrorFeedback(property, classValue)\n )\n )\n\n throwIf(props.pieces.hasNegative && !configUsed.supportsNegativeValues, () =>\n logBadGood(\n `“${props.pieces.classNameRaw}” doesn’t support a negative prefix`,\n `Apply the negative to the arbitrary value, eg: “${property}-[-5]”`\n )\n )\n\n return result\n}\n","import { throwIf, camelize, splitOnFirst } from '../utils'\nimport { logBadGood } from '../logging'\nimport { replaceThemeValue } from './helpers'\n\nexport default ({ className, theme }) => {\n let [property, value] = splitOnFirst(className, '[')\n\n property =\n (property.startsWith('--') && property) || // Retain css variables\n camelize(property)\n\n // Remove the last ']' and whitespace\n value = value.slice(0, -1).trim()\n\n throwIf(!property, () =>\n logBadGood(\n `“[${value}]” is missing the css property before the square brackets`,\n `Write it like this: marginTop[${value || '5rem'}]`\n )\n )\n\n const themeReplacedValue = replaceThemeValue(value, { theme })\n\n return { [property]: themeReplacedValue }\n}\n","import { isEmpty, getFirstValue, toArray } from './misc'\nimport { logGeneralError } from './../logging'\n\nconst normalizeValue = value => {\n if (['string', 'function'].includes(typeof value) || Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n logGeneralError(\n `The config value \"${JSON.stringify(\n value\n )}\" is unsupported - try a string, function, array, or number`\n )\n}\n\nconst splitAtDash = (twClass, fromEnd = 1) => {\n const splitClass = twClass.split('-')\n return {\n firstPart: splitClass.slice(0, fromEnd * -1).join('-'),\n lastPart: splitClass.slice(fromEnd * -1).join('-'),\n }\n}\n\n/**\n * Searches the tailwindConfig\n */\nconst getConfigValue = (from, matcher) => {\n const matchArray = toArray(matcher)\n const [result] = getFirstValue(matchArray, match =>\n getValueFromConfig(from, match)\n )\n return result\n}\n\nconst getValueFromConfig = (from, matcher) => {\n if (!from) return\n\n // Match default value from current object\n if (isEmpty(matcher)) {\n if (isEmpty(from.DEFAULT)) return\n return normalizeValue(from.DEFAULT)\n }\n\n // Match exact\n const match = from[matcher]\n if (Array.isArray(match)) return normalizeValue(match)\n\n if (\n ['string', 'number', 'function'].includes(typeof match) ||\n Array.isArray(match)\n )\n return normalizeValue(match)\n\n // Match a default value from child object\n const defaultMatch = typeof match === 'object' && match.DEFAULT\n if (defaultMatch) return normalizeValue(defaultMatch)\n\n const [result] = getFirstValue(matcher.split('-'), (_, { index }) => {\n const { firstPart, lastPart } = splitAtDash(matcher, Number(index) + 1)\n const objectMatch = from[firstPart]\n if (objectMatch && typeof objectMatch === 'object')\n return getConfigValue(objectMatch, lastPart)\n })\n\n return result\n}\n\nexport default getConfigValue\n","import getConfigValue from './../utils/getConfigValue'\nimport { throwIf, maybeAddAlpha, getFirstValue, isObject } from './../utils'\nimport { errorSuggestions, logBadGood } from './../logging'\nimport { supportsArbitraryValues } from './../configHelpers'\nimport { getCoercedValueFromTypeMap } from './../coerced'\nimport { maybeAddNegative } from './helpers'\n\nconst getDynamicStyle = (config, { classValue, theme, pieces }) => {\n // Array values loop over cooerced object - { coerced: { color: () => {}, length () => {} } }\n if (config.coerced) {\n const coerced = ([type, config], forceReturn) =>\n getCoercedValueFromTypeMap(type, {\n value: classValue,\n config,\n pieces,\n theme,\n forceReturn,\n })\n const [result] = getFirstValue(\n Object.entries(config.coerced),\n (type, { isLast }) => coerced(type, isLast)\n )\n return result\n }\n\n const value = Array.isArray(classValue)\n ? classValue.join(', ')\n : maybeAddNegative(maybeAddAlpha(classValue, { pieces }), pieces.negative)\n return Array.isArray(config.property)\n ? // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n config.property.reduce((result, p) => ({ ...result, [p]: value }), {})\n : { [config.property]: value }\n}\n\nexport default props => {\n const { theme, pieces, state, corePluginName, coreConfig } = props\n const { classNameRaw, className, classNameNoSlashAlpha } = pieces\n\n const configSearch = [className.slice(Number(corePluginName.length) + 1)]\n\n // eg: names including a slash, eg: h-1/5\n if (className !== classNameNoSlashAlpha)\n configSearch.push(\n classNameNoSlashAlpha.slice(Number(corePluginName.length) + 1)\n )\n\n const [result, configUsed] = getFirstValue(coreConfig, c => {\n const isStaticOutput =\n corePluginName === pieces.className && isObject(c.output)\n if (isStaticOutput) return c.output\n\n const config = c.config && theme(c.config)\n const classValue = config && getConfigValue(config, configSearch)\n if (config && !classValue) return\n\n // { property: value } determined via a function (eg: 'container')\n if (typeof c.output === 'function')\n return c.output({\n value: maybeAddNegative(classValue, pieces.negative),\n isEmotion: state.isEmotion,\n theme,\n pieces,\n })\n\n if (c.output) return\n\n return getDynamicStyle(c, { ...props, classValue })\n })\n\n throwIf(!result || className.endsWith('-'), () =>\n errorSuggestions({\n pieces,\n state,\n config: coreConfig.map(item => item.config).filter(Boolean),\n corePluginName,\n })\n )\n\n throwIf(pieces.hasNegative && !configUsed.supportsNegativeValues, () =>\n logBadGood(\n `“${classNameRaw}” doesn’t support a negative prefix`,\n [\n `Remove the negative prefix`,\n supportsArbitraryValues(corePluginName) &&\n `apply an arbitrary value, eg: “${corePluginName}-[-5]” or “-${corePluginName}-[5]”`,\n ]\n .filter(Boolean)\n .join(' or ')\n )\n )\n\n throwIf(pieces.hasImportant && configUsed.supportsImportant === false, () =>\n logBadGood(\n `“${classNameRaw}” doesn’t support the important modifier`,\n 'Remove the bang (!) from the class'\n )\n )\n\n return result\n}\n","import { isEmpty, isMediaQuery, isClass, getFirstValue } from './../utils'\nimport { splitPrefix } from './../pieces'\n\n// If these tasks return true then the rule is matched\nconst mergeChecks = [\n // Match exact selector\n ({ key, className }) => key === `${className}`,\n // Match class selector (inc dot)\n ({ key, className }) =>\n !key.includes('{{') &&\n key.match(\n new RegExp(`(?:^|>|~|\\\\+|\\\\*| )\\\\.${className}(?: |>|~|\\\\+|\\\\*|:|$)`, 'g')\n ),\n // Match parent selector placeholder\n ({ key, className }) => key.includes(`{{${className}}}`),\n // Match possible symbols after the selector (ex dot)\n ({ key, className }) =>\n [' ', ':', '>', '~', '+', '*'].some(suffix =>\n key.startsWith(`${className}${suffix}`)\n ),\n]\n\nconst getMatches = ({ className, data, sassyPseudo, state }) =>\n Object.entries(data).reduce((result, item) => {\n const [rawKey, value] = item\n\n // Remove the prefix before attempting match\n let { className: key } = splitPrefix({ className: rawKey, state })\n\n key = key.replace(/\\\\/g, '')\n\n const childValue = Object.values(value)[0]\n const hasChildNesting =\n !Array.isArray(childValue) && typeof childValue === 'object'\n if (hasChildNesting) {\n const matches = getMatches({ className, data: value, sassyPseudo, state })\n if (!isEmpty(matches)) return { ...result, [key]: matches }\n }\n\n const shouldMergeValue = mergeChecks.some(item => item({ key, className }))\n\n if (shouldMergeValue) {\n const newKey = formatKey(key, { className, sassyPseudo })\n return newKey ? { ...result, [newKey]: value } : { ...result, ...value }\n }\n\n return result\n }, {})\n\n// The key gets formatted with these checks\nconst formatTasks = [\n ({ key }) => key.replace(/\\\\/g, '').trim(),\n // Match exact selector\n ({ key, className }) => (key === `.${className}` ? '' : key),\n // Replace the parent selector placeholder\n ({ key, className }) => {\n const parentSelectorIndex = key.indexOf(`{{${className}}}`)\n const replacement = parentSelectorIndex > 0 ? '&' : ''\n return key.replace(`{{${className}}}`, replacement)\n },\n // Replace the classname at start of selector (eg: &:hover) (postCSS supplies\n // flattened selectors so it looks like .blah:hover at this point)\n ({ key, className }) =>\n key.startsWith(`.${className}`) ? key.slice(`.${className}`.length) : key,\n ({ key }) => key.trim(),\n // Add the parent selector at the start when it has the sassy pseudo enabled\n ({ key, sassyPseudo }) =>\n sassyPseudo && key.startsWith(':') ? `&${key}` : key,\n // Remove the unmatched class wrapping\n ({ key }) => key.replace(/{{/g, '.').replace(/}}/g, ''),\n]\n\nconst formatKey = (selector, { className, sassyPseudo }) => {\n if (selector === className) return\n\n let key = selector\n for (const task of formatTasks) {\n key = task({ key, className, sassyPseudo })\n }\n\n return key\n}\n\n/**\n * Split grouped selectors (`.class1, class2 {}`) and filter non-selectors\n * @param {object} data Input object from userPluginData\n * @returns {object} An object containing unpacked selectors\n */\nconst normalizeUserPluginSelectors = data =>\n Object.entries(data).reduce((result, [selector, value]) => {\n const keys = selector\n .split(',')\n .filter(s =>\n isMediaQuery(s)\n ? Object.keys(value).some(selector => isClass(selector))\n : isClass(s)\n )\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n .reduce((result, property) => ({ ...result, [property]: value }), {})\n return { ...result, ...keys }\n }, {})\n\nexport default ({\n state: {\n configTwin: { sassyPseudo },\n userPluginData: { base, components, utilities },\n },\n state,\n className,\n}) => {\n const [result] = getFirstValue([base, components, utilities], rawData => {\n const data = normalizeUserPluginSelectors(rawData)\n const matches = getMatches({ className, data, sassyPseudo, state })\n if (isEmpty(matches)) return\n return matches\n })\n return result\n}\n","import deepMerge from 'lodash.merge'\nimport { throwIf, isEmpty, getTheme } from './utils'\nimport { getProperties } from './getProperties'\nimport { astify } from './macroHelpers'\nimport * as precheckExports from './prechecks'\nimport * as ordering from './ordering'\nimport * as pieces from './pieces'\nimport {\n logGeneralError,\n errorSuggestions,\n logNotFoundVariant,\n logNotFoundClass,\n debugSuccess,\n logBadGood,\n} from './logging'\nimport { addContentClass } from './content'\nimport applyTransforms from './transforms'\nimport { addVariants, handleVariantGroups } from './variants'\nimport {\n handleUserPlugins,\n handleDynamic,\n handleShortCss,\n handleArbitraryCss,\n} from './handlers'\n\nconst getPieces = context => {\n const results = Object.values(pieces).reduce(\n (results, splitter) => ({ ...results, ...splitter(results) }),\n context\n )\n delete results.state\n return results\n}\n\n// When removing a multiline comment, determine if a space is left or not\n// eg: You'd want a space left in this situation: tw`class1/* comment */class2`\nconst multilineReplaceWith = (match, index, input) => {\n const charBefore = input[index - 1]\n const directPrefixMatch = charBefore && charBefore.match(/\\w/)\n const charAfter = input[Number(index) + Number(match.length)]\n const directSuffixMatch = charAfter && charAfter.match(/\\w/)\n return directPrefixMatch &&\n directPrefixMatch[0] &&\n directSuffixMatch &&\n directSuffixMatch[0]\n ? ' '\n : ''\n}\n\nconst formatTasks = [\n // Strip pipe dividers \" | \"\n classes => classes.replace(/ \\| /g, ' '),\n // Strip multiline comments\n classes =>\n classes.replace(/(?<!\\/)\\/(?!\\/)\\*[\\S\\s]*?\\*\\//g, multilineReplaceWith),\n // Strip singleline comments\n classes => classes.replace(/\\/\\/.*/g, ''),\n // Unwrap grouped variants\n handleVariantGroups,\n // Move some properties to the front of the list so they work as expected\n ...Object.values(ordering),\n // Add a missing content class for after:/before: variants\n addContentClass,\n]\n\nexport default (classes, args) => {\n const { isCsOnly = false, silentMismatches = false, t, state } = args\n\n const hasEmptyClasses = [null, 'null', undefined].includes(classes)\n if (silentMismatches && hasEmptyClasses) return\n throwIf(hasEmptyClasses, () =>\n logGeneralError(\n 'Only plain strings can be used with \"tw\".\\nRead more at https://twinredirect.page.link/template-literals'\n )\n )\n\n for (const task of formatTasks) {\n classes = task(classes, state)\n }\n\n const theme = getTheme(state.config.theme)\n\n const classesMatched = []\n const classesMismatched = []\n\n // Merge styles into a single css object\n const styles = classes.reduce((results, classNameRaw) => {\n const pieces = getPieces({ classNameRaw, state })\n const { hasPrefix, className, hasVariants } = pieces\n\n // Avoid prechecks on silent mode as they'll error loudly\n if (!silentMismatches) {\n const { default: doPrechecks, ...prechecks } = precheckExports\n const precheckContext = { pieces, classNameRaw, state }\n doPrechecks(Object.values(prechecks), precheckContext)\n }\n\n // Make sure non-prefixed classNames are ignored\n const { prefix } = state.config\n const hasPrefixMismatch = prefix && !hasPrefix && className\n if (silentMismatches && (!className || hasPrefixMismatch)) {\n classesMismatched.push(classNameRaw)\n return results\n }\n\n throwIf(!className, () =>\n hasVariants ? logNotFoundVariant({ classNameRaw }) : logNotFoundClass\n )\n\n const { hasMatches, hasUserPlugins, corePluginName, coreConfig, type } =\n getProperties(className, state, { isCsOnly })\n\n if (silentMismatches && !hasMatches && !hasUserPlugins) {\n classesMismatched.push(classNameRaw)\n return results\n }\n\n // Error if short css is used and disabled\n const isShortCssDisabled =\n state.configTwin.disableShortCss && type === 'shortCss' && !isCsOnly\n throwIf(isShortCssDisabled, () =>\n logBadGood(\n `Short css has been disabled in the config so “${classNameRaw}” won’t work${\n !state.configTwin.disableCsProp ? ' outside the cs prop' : ''\n }.`,\n !state.configTwin.disableCsProp\n ? `Add short css with the cs prop: <div cs=\"${classNameRaw}\" />`\n : ''\n )\n )\n\n // Kick off suggestions when no class matches\n throwIf(!hasMatches && !hasUserPlugins, () =>\n errorSuggestions({ pieces, state, isCsOnly })\n )\n\n const styleContext = {\n theme,\n pieces,\n state,\n className,\n classNameRaw,\n corePluginName,\n coreConfig,\n configTwin: state.configTwin,\n }\n\n const styleHandler = {\n shortCss: handleShortCss,\n dynamic: handleDynamic,\n arbitraryCss: handleArbitraryCss,\n userPlugin: handleUserPlugins,\n }\n\n let style\n\n if (hasUserPlugins) {\n style = applyTransforms({\n type,\n pieces,\n style: styleHandler.userPlugin(styleContext),\n })\n }\n\n // Check again there are no userPlugin matches\n if (silentMismatches && !hasMatches && !style) {\n classesMismatched.push(classNameRaw)\n return results\n }\n\n throwIf(!hasMatches && !style, () =>\n errorSuggestions({ pieces, state, isCsOnly })\n )\n\n style =\n style ||\n applyTransforms({ pieces, style: styleHandler[type](styleContext) })\n\n const result = deepMerge(\n results,\n addVariants({ results, style, pieces, state })\n )\n\n state.debug(debugSuccess(classNameRaw, style))\n\n classesMatched.push(classNameRaw)\n return result\n }, {})\n\n return {\n astStyles: astify(isEmpty(styles) ? {} : styles, t),\n mismatched: classesMismatched.join(' '),\n matched: classesMatched.join(' '),\n }\n}\n","import {\n getParentJSX,\n parseTte,\n replaceWithLocation,\n getAttributeNames,\n getCssAttributeData,\n makeStyledComponent,\n} from './../macroHelpers'\nimport { throwIf } from './../utils'\nimport { logGeneralError, logStylePropertyError } from './../logging'\nimport { addDataTwPropToPath, addDataPropToExistingPath } from './debug'\nimport getStyleData from './../getStyleData'\n\nconst moveTwPropToStyled = props => {\n const { jsxPath, astStyles } = props\n\n makeStyledComponent({ ...props, secondArg: astStyles })\n\n // Remove the tw attribute\n const tagAttributes = jsxPath.node.attributes\n const twAttributeIndex = tagAttributes.findIndex(\n n => n.name && n.name.name === 'tw'\n )\n if (twAttributeIndex < 0) return\n jsxPath.node.attributes.splice(twAttributeIndex, 1)\n}\n\nconst mergeIntoCssAttribute = ({ path, astStyles, cssAttribute, t }) => {\n if (!cssAttribute) return\n\n // The expression is the value as a NodePath\n const attributeValuePath = cssAttribute.get('value')\n\n // If it's not {} or \"\", get out of here\n if (\n !attributeValuePath.isJSXExpressionContainer() &&\n !attributeValuePath.isStringLiteral()\n )\n return\n\n const existingCssAttribute = attributeValuePath.isStringLiteral()\n ? attributeValuePath\n : attributeValuePath.get('expression')\n\n const attributeNames = getAttributeNames(path)\n\n const isBeforeCssAttribute =\n attributeNames.indexOf('tw') - attributeNames.indexOf('css') < 0\n\n if (existingCssAttribute.isArrayExpression()) {\n // The existing css prop is an array, eg: css={[...]}\n isBeforeCssAttribute\n ? existingCssAttribute.unshiftContainer('elements', astStyles)\n : existingCssAttribute.pushContainer('elements', astStyles)\n } else {\n // css prop is either:\n // TemplateLiteral\n // <div css={`...`} tw=\"...\" />\n // or an ObjectExpression\n // <div css={{ ... }} tw=\"...\" />\n // or ArrowFunctionExpression/FunctionExpression\n // <div css={() => (...)} tw=\"...\" />\n\n const existingCssAttributeNode = existingCssAttribute.node\n\n // The existing css prop is an array, eg: css={[...]}\n const styleArray = isBeforeCssAttribute\n ? [astStyles, existingCssAttributeNode]\n : [existingCssAttributeNode, astStyles]\n\n const arrayExpression = t.arrayExpression(styleArray)\n\n const { parent } = existingCssAttribute\n const replacement =\n parent.type === 'JSXAttribute'\n ? t.jsxExpressionContainer(arrayExpression)\n : arrayExpression\n\n existingCssAttribute.replaceWith(replacement)\n }\n}\n\nconst handleTwProperty = ({ path, t, program, state }) => {\n if (!path.node || path.node.name.name !== 'tw') return\n state.hasTwAttribute = true\n\n const nodeValue = path.node.value\n\n // Allow tw={\"class\"}\n const expressionValue =\n nodeValue.expression &&\n nodeValue.expression.type === 'StringLiteral' &&\n nodeValue.expression.value\n\n // Feedback for unsupported usage\n throwIf(nodeValue.expression && !expressionValue, () =>\n logGeneralError(\n `Only plain strings can be used with the \"tw\" prop.\\nEg: <div tw=\"text-black\" /> or <div tw={\"text-black\"} />\\nRead more at https://twinredirect.page.link/template-literals`\n )\n )\n\n const rawClasses = expressionValue || nodeValue.value || ''\n const { astStyles } = getStyleData(rawClasses, { t, state })\n\n const jsxPath = getParentJSX(path)\n const attributes = jsxPath.get('attributes')\n const { attribute: cssAttribute } = getCssAttributeData(attributes)\n\n if (state.configTwin.moveTwPropToStyled) {\n moveTwPropToStyled({ astStyles, jsxPath, t, program, state })\n addDataTwPropToPath({ t, attributes, rawClasses, path, state })\n return\n }\n\n if (!cssAttribute) {\n // Replace the tw prop with the css prop\n path.replaceWith(\n t.jsxAttribute(\n t.jsxIdentifier('css'),\n t.jsxExpressionContainer(astStyles)\n )\n )\n addDataTwPropToPath({ t, attributes, rawClasses, path, state })\n return\n }\n\n // Merge tw styles into an existing css prop\n mergeIntoCssAttribute({ cssAttribute, path: jsxPath, astStyles, t })\n\n path.remove() // remove the tw prop\n\n addDataPropToExistingPath({ t, attributes, rawClasses, path: jsxPath, state })\n}\n\nconst handleTwFunction = ({ references, state, t }) => {\n const defaultImportReferences = references.default || references.tw || []\n\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n defaultImportReferences.forEach(path => {\n /**\n * Gotcha: After twin changes a className/tw/cs prop path then the reference\n * becomes stale and needs to be refreshed with crawl()\n */\n const { parentPath } = path\n if (!parentPath.isTaggedTemplateExpression()) path.scope.crawl()\n\n const parent = path.findParent(x => x.isTaggedTemplateExpression())\n if (!parent) return\n\n // Check if the style attribute is being used\n if (!state.configTwin.allowStyleProp) {\n const jsxAttribute = parent.findParent(x => x.isJSXAttribute())\n const attributeName =\n jsxAttribute && jsxAttribute.get('name').get('name').node\n throwIf(attributeName === 'style', () => logStylePropertyError)\n }\n\n const parsed = parseTte({\n path: parent,\n types: t,\n styledIdentifier: state.styledIdentifier,\n state,\n })\n if (!parsed) return\n\n const rawClasses = parsed.string\n // Add tw-prop for css attributes\n const jsxPath = path.findParent(p => p.isJSXOpeningElement())\n\n if (jsxPath) {\n const attributes = jsxPath.get('attributes')\n const pathData = { t, attributes, rawClasses, path: jsxPath, state }\n addDataPropToExistingPath(pathData)\n }\n\n const { astStyles } = getStyleData(rawClasses, { t, state })\n replaceWithLocation(parsed.path, astStyles)\n })\n}\n\nexport { handleTwProperty, handleTwFunction }\n","/**\n * cs = Short css\n */\n\nimport {\n getParentJSX,\n getAttributeNames,\n getCssAttributeData,\n} from './../macroHelpers'\nimport { throwIf } from './../utils'\nimport { logGeneralError } from './../logging'\nimport { addDataTwPropToPath, addDataPropToExistingPath } from './debug'\nimport getStyleData from './../getStyleData'\n\nconst handleCsProperty = ({ path, t, state }) => {\n if (state.configTwin.disableCsProp) return\n if (!path.node || path.node.name.name !== 'cs') return\n state.hasCsProp = true\n const isCsOnly = true\n\n const nodeValue = path.node.value\n\n // Allow cs={\"property[value]\"}\n const expressionValue =\n nodeValue.expression &&\n nodeValue.expression.type === 'StringLiteral' &&\n nodeValue.expression.value\n\n // Feedback for unsupported usage\n throwIf(nodeValue.expression && !expressionValue, () =>\n logGeneralError(\n `Only plain strings can be used with the \"cs\" prop.\\nEg: <div cs=\"maxWidth[30rem]\" />\\nRead more at https://twinredirect.page.link/cs-classes`\n )\n )\n\n const rawClasses = expressionValue || nodeValue.value || ''\n const { astStyles } = getStyleData(rawClasses, { isCsOnly, t, state })\n\n const jsxPath = getParentJSX(path)\n const attributes = jsxPath.get('attributes')\n const { attribute: cssAttribute } = getCssAttributeData(attributes)\n\n if (!cssAttribute) {\n // Replace the tw prop with the css prop\n path.replaceWith(\n t.jsxAttribute(\n t.jsxIdentifier('css'),\n t.jsxExpressionContainer(astStyles)\n )\n )\n // TODO: Update the naming of this function\n addDataTwPropToPath({\n t,\n attributes,\n rawClasses,\n path,\n state,\n propName: 'data-cs',\n })\n return\n }\n\n // The expression is the value as a NodePath\n const attributeValuePath = cssAttribute.get('value')\n\n // If it's not {} or \"\", get out of here\n if (\n !attributeValuePath.isJSXExpressionContainer() &&\n !attributeValuePath.isStringLiteral()\n )\n return\n\n const existingCssAttribute = attributeValuePath.isStringLiteral()\n ? attributeValuePath\n : attributeValuePath.get('expression')\n\n const attributeNames = getAttributeNames(jsxPath)\n const isBeforeCssAttribute =\n attributeNames.indexOf('cs') - attributeNames.indexOf('css') < 0\n\n if (existingCssAttribute.isArrayExpression()) {\n // The existing css prop is an array, eg: css={[...]}\n isBeforeCssAttribute\n ? existingCssAttribute.unshiftContainer('elements', astStyles)\n : existingCssAttribute.pushContainer('elements', astStyles)\n } else {\n // css prop is either:\n // TemplateLiteral\n // <div css={`...`} cs=\"...\" />\n // or an ObjectExpression\n // <div css={{ ... }} cs=\"...\" />\n // or ArrowFunctionExpression/FunctionExpression\n // <div css={() => (...)} cs=\"...\" />\n\n const existingCssAttributeNode = existingCssAttribute.node\n\n // The existing css prop is an array, eg: css={[...]}\n const styleArray = isBeforeCssAttribute\n ? [astStyles, existingCssAttributeNode]\n : [existingCssAttributeNode, astStyles]\n\n const arrayExpression = t.arrayExpression(styleArray)\n\n const { parent } = existingCssAttribute\n const replacement =\n parent.type === 'JSXAttribute'\n ? t.jsxExpressionContainer(arrayExpression)\n : arrayExpression\n\n existingCssAttribute.replaceWith(replacement)\n }\n\n path.remove() // remove the cs prop\n\n addDataPropToExistingPath({\n t,\n attributes,\n rawClasses,\n path: jsxPath,\n state,\n propName: 'data-cs',\n })\n}\n\nexport { handleCsProperty }\n","import { throwIf } from './../utils'\nimport { logGeneralError } from './../logging'\nimport { addDataTwPropToPath, addDataPropToExistingPath } from './debug'\nimport getStyleData from './../getStyleData'\nimport {\n getParentJSX,\n getAttributeNames,\n getCssAttributeData,\n} from './../macroHelpers'\n\nconst makeJsxAttribute = ([key, value], t) =>\n t.jsxAttribute(t.jsxIdentifier(key), t.jsxExpressionContainer(value))\n\nconst handleClassNameProperty = ({ path, t, state }) => {\n if (!state.configTwin.includeClassNames) return\n if (path.node.name.name !== 'className') return\n\n const nodeValue = path.node.value\n\n // Ignore className if it cannot be resolved\n if (nodeValue.expression) return\n\n const rawClasses = nodeValue.value || ''\n if (!rawClasses) return\n\n const { astStyles, mismatched, matched } = getStyleData(rawClasses, {\n silentMismatches: true,\n t,\n state,\n })\n if (!matched) return\n\n // When classes can't be matched we add them back into the className (it exists as a few properties)\n path.node.value.value = mismatched\n path.node.value.extra.rawValue = mismatched\n path.node.value.extra.raw = `\"${mismatched}\"`\n\n const jsxPath = getParentJSX(path)\n const attributes = jsxPath.get('attributes')\n const { attribute: cssAttribute } = getCssAttributeData(attributes)\n\n if (!cssAttribute) {\n const attribute = makeJsxAttribute(['css', astStyles], t)\n mismatched ? path.insertAfter(attribute) : path.replaceWith(attribute)\n addDataTwPropToPath({ t, attributes, rawClasses: matched, path, state })\n return\n }\n\n const cssExpression = cssAttribute.get('value').get('expression')\n const attributeNames = getAttributeNames(jsxPath)\n\n const isBeforeCssAttribute =\n attributeNames.indexOf('className') - attributeNames.indexOf('css') < 0\n\n if (cssExpression.isArrayExpression()) {\n // The existing css prop is an array, eg: css={[...]}\n isBeforeCssAttribute\n ? cssExpression.unshiftContainer('elements', astStyles)\n : cssExpression.pushContainer('elements', astStyles)\n } else {\n // The existing css prop is not an array, eg: css={{ ... }} / css={`...`}\n const existingCssAttribute = cssExpression.node\n throwIf(!existingCssAttribute, () =>\n logGeneralError(\n `An empty css prop (css=\"\") isn’t supported alongside the className prop`\n )\n )\n const styleArray = isBeforeCssAttribute\n ? [astStyles, existingCssAttribute]\n : [existingCssAttribute, astStyles]\n cssExpression.replaceWith(t.arrayExpression(styleArray))\n }\n\n if (!mismatched) path.remove()\n\n addDataPropToExistingPath({\n t,\n attributes,\n rawClasses: matched,\n path: jsxPath,\n state,\n })\n}\n\nexport { handleClassNameProperty }\n","export default function(t,e,l,n,r){for(e=e.split?e.split(\".\"):e,n=0;n<e.length;n++)t=t?t[e[n]]:r;return t===r?l:t}\n//# sourceMappingURL=dlv.es.js.map\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i); // check to see if we are dealing with a valid hex char [a-f|0-9]\n\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n\n spaceTerminated = code === 32;\n\n if (!valid) {\n break;\n }\n\n hex += lower[i];\n }\n\n if (hex.length === 0) {\n return undefined;\n }\n\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\n\nvar CONTAINS_ESCAPE = /\\\\/;\n\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n\n if (!needToProcess) {\n return str;\n }\n\n var ret = \"\";\n\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n } // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n\n\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n } // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n\n\n if (str.length === i + 1) {\n ret += str[i];\n }\n\n continue;\n }\n\n ret += str[i];\n }\n\n return ret;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\n\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n return undefined;\n }\n\n obj = obj[prop];\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\n\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n obj[prop] = {};\n }\n\n obj = obj[prop];\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\n\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n\n if (commentEnd < 0) {\n return s;\n }\n\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n\n s = s + str.slice(lastEnd);\n return s;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.stripComments = exports.ensureObject = exports.getProp = exports.unesc = void 0;\n\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\n\nexports.unesc = _unesc[\"default\"];\n\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\n\nexports.getProp = _getProp[\"default\"];\n\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\n\nexports.ensureObject = _ensureObject[\"default\"];\n\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\n\nexports.stripComments = _stripComments[\"default\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _util = require(\"../util\");\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n var value = obj[i];\n var type = typeof value;\n\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n\n return cloned;\n};\n\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n\n var _proto = Node.prototype;\n\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n\n this.parent = undefined;\n return this;\n };\n\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n\n this.remove();\n }\n\n return this;\n };\n\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n var cloned = cloneNode(this);\n\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n\n return cloned;\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */\n ;\n\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */\n ;\n\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n this.raws[name] = valueEscaped;\n }\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */\n ;\n\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (this.raws) {\n delete this.raws[name];\n }\n }\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */\n ;\n\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n\n if (this.source.end.line < line) {\n return false;\n }\n\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n\n return true;\n }\n\n return undefined;\n };\n\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n\n return Node;\n}();\n\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.ATTRIBUTE = exports.CLASS = exports.COMBINATOR = exports.COMMENT = exports.ID = exports.NESTING = exports.PSEUDO = exports.ROOT = exports.SELECTOR = exports.STRING = exports.TAG = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar types = _interopRequireWildcard(require(\"./types\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n\n function Container(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n\n if (!_this.nodes) {\n _this.nodes = [];\n }\n\n return _this;\n }\n\n var _proto = Container.prototype;\n\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n return this;\n };\n\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n\n return this.nodes.indexOf(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n\n this.nodes = [];\n return this;\n };\n\n _proto.empty = function empty() {\n return this.removeAll();\n };\n\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex + 1, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (oldIndex <= index) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index <= oldIndex) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n * \n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */\n ;\n\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n\n if (!this.indexes) {\n this.indexes = {};\n }\n\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.length) {\n return undefined;\n }\n\n var index, result;\n\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n\n if (result === false) {\n break;\n }\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n if (result === false) {\n return false;\n }\n };\n\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n\n if (result === false) {\n return false;\n }\n });\n };\n\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n\n _proto.split = function split(callback) {\n var _this11 = this;\n\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n\n return memo;\n }, []);\n };\n\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n\n return Container;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n\n function Root(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n\n var _proto = Root.prototype;\n\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n\n return Root;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n\n function Selector(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n\n return Selector;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n\n function ClassName(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n\n var _proto = ClassName.prototype;\n\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n\n this._value = v;\n }\n }]);\n\n return ClassName;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n\n function Comment(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n\n return Comment;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n\n function ID(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n\n var _proto = ID.prototype;\n\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n\n return ID;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n\n var _proto = Namespace.prototype;\n\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n\n if (this.raws) {\n delete this.raws.namespace;\n }\n\n return;\n }\n\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n\n return Namespace;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n\n function Tag(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n\n return Tag;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n\n function String(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n\n return String;\n}(_node[\"default\"]);\n\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n\n function Pseudo(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n\n var _proto = Pseudo.prototype;\n\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n\n return Pseudo;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.unescapeValue = unescapeValue;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nvar _CSSESC_QUOTE_OPTIONS;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar deprecate = require(\"util-deprecate\");\n\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\n\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n\n unescaped = (0, _unesc[\"default\"])(unescaped);\n\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\n\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n\n if (opts.value === undefined) {\n return opts;\n }\n\n warnOfDeprecatedConstructor();\n\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n\n if (!opts.raws) {\n opts.raws = {};\n }\n\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\n\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n\n function Attribute(opts) {\n var _this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n\n\n var _proto = Attribute.prototype;\n\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n\n var quoteMark = this._determineQuoteMark(options);\n\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */\n ;\n\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n\n this._syncRawValue();\n }\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */\n ;\n\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */\n ;\n\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n\n return quoteMark;\n };\n\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n\n var attrSpaces = this._spacesFor(spaceName);\n\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */\n ;\n\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n\n var attributeSpaces = this._spacesFor(\"attribute\");\n\n count += attributeSpaces.before.length;\n\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n\n if (name === \"attributeNS\") {\n return count;\n }\n\n count += this.namespaceString.length;\n\n if (this.namespace) {\n count += 1;\n }\n\n if (name === \"attribute\") {\n return count;\n }\n\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n\n var operatorSpaces = this._spacesFor(\"operator\");\n\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n\n count += operator.length;\n count += operatorSpaces.after.length;\n\n var valueSpaces = this._spacesFor(\"value\");\n\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n\n if (name === \"value\") {\n return value ? count : -1;\n }\n\n count += value.length;\n count += valueSpaces.after.length;\n\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n\n count += insensitiveSpaces.before.length;\n\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n\n return -1;\n };\n\n _proto.toString = function toString() {\n var _this2 = this;\n\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */\n ,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n }\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n ,\n set: function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n\n this._value = unescaped;\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n\n this._attribute = name;\n }\n }]);\n\n return Attribute;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\n\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n\n function Universal(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n\n return Universal;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n\n function Combinator(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n\n return Combinator;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n\n function Nesting(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n\n return Nesting;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\n\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.combinator = exports.word = exports.comment = exports.str = exports.tab = exports.newline = exports.feed = exports.cr = exports.backslash = exports.bang = exports.slash = exports.doubleQuote = exports.singleQuote = exports.space = exports.greaterThan = exports.pipe = exports.equals = exports.plus = exports.caret = exports.tilde = exports.dollar = exports.closeSquare = exports.openSquare = exports.closeParenthesis = exports.openParenthesis = exports.semicolon = exports.colon = exports.comma = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\n\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\n\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\n\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\n\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\n\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\n\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\n\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\n\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\n\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\n\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\n\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\n\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\n\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\n\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\n\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\n\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\n\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\n\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\n\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\n\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\n\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\n\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\n\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\n\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\n\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\n\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n// Expose aliases primarily for readability.\n\nexports.tab = tab;\nvar str = singleQuote; // No good single character representation!\n\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = tokenize;\nexports.FIELDS = void 0;\n\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar _unescapable, _wordDelimiters;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\n\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\n\n\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n\n do {\n code = css.charCodeAt(next);\n\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n\n return next - 1;\n}\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\n\n\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n\n if (unescapable[code]) {// just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0; // consume up to 6 hex chars\n\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6); // if fewer than 6 hex chars, a trailing space ends the escape\n\n\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n\n return next;\n}\n\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\n\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n\n while (start < length) {\n code = css.charCodeAt(start);\n\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n // Consume these characters as single tokens.\n\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n\n if (next === -1) {\n unclosed('quote', quote);\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n\n if (next === 0) {\n unclosed('comment', '*/');\n }\n\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n\n end = next + 1;\n break;\n } // Ensure that the token structure remains consistent\n\n\n tokens.push([tokenType, // [0] Token type\n line, // [1] Starting line\n start - offset, // [2] Starting column\n endLine, // [3] Ending line\n endColumn, // [4] Ending column\n start, // [5] Start position / Source index\n end // [6] End position\n ]); // Reset offset for the next token\n\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n\n start = end;\n }\n\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\n\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\n\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\n\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\n\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\n\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\n\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\n\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\n\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\n\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\n\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\n\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\n\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\n\nvar _util = require(\"./util\");\n\nvar _WHITESPACE_TOKENS, _Object$assign;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\n\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\n\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\n\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\n\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\n\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\n\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n\n if (typeof value !== \"string\") {\n return;\n }\n\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n\n return node;\n}\n\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n\n return indexes;\n}\n\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n }\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n\n var _proto = Parser.prototype;\n\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n\n return _this.rule.error(message, errorOptions);\n };\n };\n\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n\n if (this.options.lossy) {\n break;\n }\n\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n\n break;\n\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n\n if (rawValue) {\n node.raws.namespace += content;\n }\n\n lastAdded = 'namespace';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n\n break;\n }\n\n // Falls through\n\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n\n node.attribute = (node.attribute || \"\") + content;\n\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n\n if (_rawValue) {\n node.raws.attribute += content;\n }\n\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !spaceAfterMeaningfulToken) {\n var _unescaped = (0, _util.unesc)(content);\n\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n\n lastAdded = 'insensitive';\n\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n\n break;\n\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n pos++;\n }\n\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */\n ;\n\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n\n return nodes;\n }\n /**\n * \n * @param {*} nodes \n */\n ;\n\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n\n _proto.combinator = function combinator() {\n var _this3 = this;\n\n if (this.content() === '|') {\n return this.namespace();\n } // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n\n\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n\n if (nodes.length > 0) {\n var last = this.current.last;\n\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n\n return;\n }\n\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n\n var node;\n\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {// pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n\n var spaces = {};\n var raws = {\n spaces: {}\n };\n\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n\n return this.newNode(node);\n };\n\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n\n this.current._inferEndPosition();\n\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n }\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n };\n\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position - 1])\n }\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n\n var pseudoStr = '';\n var startingToken = this.currToken;\n\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.space = function space() {\n var content = this.content(); // Handle space before and after the selector\n\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n\n var nextToken = this.nextToken;\n var word = this.content();\n\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n\n nextToken = this.nextToken;\n }\n\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\'; // Allow decimal numbers percent in @keyframes\n\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n }); // Eliminate Sass interpolations from the list of id indexes\n\n var interpolations = indexesOf(word, '#{');\n\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n\n _this5.newNode(node, namespace); // Ensure that the namespace is used only once\n\n\n namespace = null;\n });\n this.position++;\n };\n\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n return this.splitWord(namespace);\n };\n\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n\n this.current._inferEndPosition();\n\n return this.root;\n };\n\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n\n case tokens.comment:\n this.comment();\n break;\n\n case tokens.openParenthesis:\n this.parentheses();\n break;\n\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n\n break;\n\n case tokens.openSquare:\n this.attribute();\n break;\n\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n\n case tokens.colon:\n this.pseudo();\n break;\n\n case tokens.comma:\n this.comma();\n break;\n\n case tokens.asterisk:\n this.universal();\n break;\n\n case tokens.ampersand:\n this.nesting();\n break;\n\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n\n case tokens.closeSquare:\n this.missingSquareBracket();\n\n case tokens.semicolon:\n this.missingBackslash();\n\n default:\n this.unexpected();\n }\n }\n /**\n * Helpers\n */\n ;\n\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n\n namespace = true;\n }\n\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n\n return this.current.append(node);\n };\n\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n\n var searchPosition = startPosition;\n\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n\n return -1;\n };\n\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n\n return Parser;\n}();\n\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _parser = _interopRequireDefault(require(\"./parser\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n\n this.funcRes = null;\n this.options = options;\n }\n\n var _proto = Processor.prototype;\n\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n\n _proto._run = function _run(rule, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var root = this._root(rule, options);\n\n var transform = this.func(root);\n\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n\n var string = undefined;\n\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<parser.Root>} The AST of the selector after processing it.\n */\n ;\n\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */\n ;\n\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<any>} The value returned by the processor.\n */\n ;\n\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */\n ;\n\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n\n return result.string || result.root.toString();\n };\n\n return Processor;\n}();\n\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\n\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\n\nvar _className = _interopRequireDefault(require(\"./className\"));\n\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\n\nvar _comment = _interopRequireDefault(require(\"./comment\"));\n\nvar _id = _interopRequireDefault(require(\"./id\"));\n\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\n\nvar _root = _interopRequireDefault(require(\"./root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selector\"));\n\nvar _string = _interopRequireDefault(require(\"./string\"));\n\nvar _tag = _interopRequireDefault(require(\"./tag\"));\n\nvar _universal = _interopRequireDefault(require(\"./universal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\n\nexports.attribute = attribute;\n\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\n\nexports.className = className;\n\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\n\nexports.combinator = combinator;\n\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\n\nexports.comment = comment;\n\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\n\nexports.id = id;\n\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\n\nexports.nesting = nesting;\n\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\n\nexports.pseudo = pseudo;\n\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\n\nexports.root = root;\n\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\n\nexports.selector = selector;\n\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\n\nexports.string = string;\n\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\n\nexports.tag = tag;\n\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\n\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isNode = isNode;\nexports.isPseudoElement = isPseudoElement;\nexports.isPseudoClass = isPseudoClass;\nexports.isContainer = isContainer;\nexports.isNamespace = isNamespace;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = exports.isPseudo = exports.isNesting = exports.isIdentifier = exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\n\nvar _types = require(\"./types\");\n\nvar _IS_TYPE;\n\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\n\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\n\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\n\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\n\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\n\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\n\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\n\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\n\nvar _constructors = require(\"./constructors\");\n\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\n\nvar _guards = require(\"./guards\");\n\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _processor = _interopRequireDefault(require(\"./processor\"));\n\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\n\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","/* eslint-disable prefer-object-spread, @typescript-eslint/restrict-plus-operands */\nimport postcss from 'postcss'\nimport deepMerge from 'lodash.merge'\nimport dlv from 'dlv'\nimport selectorParser from 'postcss-selector-parser'\nimport transformThemeValue from 'tailwindcss/lib/util/transformThemeValue'\nimport parseObjectStyles from 'tailwindcss/lib/util/parseObjectStyles'\nimport isPlainObject from 'tailwindcss/lib/util/isPlainObject'\nimport { toPath } from 'tailwindcss/lib/util/toPath'\nimport { throwIf, toArray, formatCssProperty } from './index'\nimport { getUnsupportedError } from '../logging'\n\nconst matchPlugin = (rules, options, { layer, context, prefixIdentifier }) => {\n const defaultOptions = {\n respectPrefix: true,\n respectImportant: layer === 'utilities',\n }\n\n options = { ...defaultOptions, ...options }\n\n for (const [identifier] of Object.entries(rules)) {\n const prefixedIdentifier = prefixIdentifier(identifier, options)\n const rule = rules[identifier]\n\n // eslint-disable-next-line no-inner-declarations\n function wrapped() {\n const value = []\n for (const configValue of Object.values(options.values)) {\n const result = toArray(rule(configValue)).map(val => ({\n [['.', prefixedIdentifier, '-', configValue].join('')]:\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n Object.entries(val).reduce(\n (result, [prop, value]) => ({\n ...result,\n [typeof value === 'string' ? formatCssProperty(prop) : prop]:\n value,\n }),\n {}\n ),\n }))\n\n value.push(deepMerge({}, ...result))\n }\n\n if (value === undefined) return {}\n\n return deepMerge({}, ...value)\n }\n\n const withOffsets = [{ layer, options }, wrapped]\n\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, [])\n }\n\n context.candidateRuleMap.get(prefixedIdentifier).push(withOffsets)\n }\n}\n\nconst asPlugin = (rules, options, { layer, context, prefixIdentifier }) => {\n const defaultOptions = {\n respectPrefix: true,\n respectImportant: layer === 'utilities',\n }\n\n options = Object.assign(\n {},\n defaultOptions,\n Array.isArray(options) ? {} : options\n )\n\n for (const [identifier, rule] of withIdentifiers(rules)) {\n const prefixedIdentifier = prefixIdentifier(identifier, options)\n\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, [])\n }\n\n context.candidateRuleMap\n .get(prefixedIdentifier)\n .push([{ layer, options }, rule])\n }\n}\n\nexport default function buildPluginApi(tailwindConfig, context) {\n function getConfigValue(path, defaultValue) {\n return path ? dlv(tailwindConfig, path, defaultValue) : tailwindConfig\n }\n\n function prefixIdentifier(identifier, options) {\n if (identifier === '*') {\n return '*'\n }\n\n if (!options.respectPrefix) {\n return identifier\n }\n\n return context.tailwindConfig.prefix + identifier\n }\n\n const { allowUnsupportedPlugins } = context.configTwin\n\n return {\n addVariant() {\n throwIf(!allowUnsupportedPlugins, () =>\n getUnsupportedError('addVariant()')\n )\n return null\n },\n postcss,\n prefix: prefix => prefix, // Customised\n e: className => className.replace(/\\./g, '\\\\.'),\n config: getConfigValue,\n theme(path, defaultValue) {\n const [pathRoot, ...subPaths] = toPath(path)\n const value = getConfigValue(\n ['theme', pathRoot, ...subPaths],\n defaultValue\n )\n return transformThemeValue(pathRoot)(value)\n },\n corePlugins() {\n throwIf(!allowUnsupportedPlugins, () =>\n getUnsupportedError('corePlugins()')\n )\n return null\n },\n variants() {\n // Preserved for backwards compatibility but not used in v3.0+\n return []\n },\n addUserCss() {\n throwIf(!allowUnsupportedPlugins, () =>\n getUnsupportedError('addUserCss()')\n )\n return null\n },\n addBase(base) {\n for (const [identifier, rule] of withIdentifiers(base)) {\n const prefixedIdentifier = prefixIdentifier(identifier, {})\n\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, [])\n }\n\n context.candidateRuleMap\n .get(prefixedIdentifier)\n .push([{ layer: 'base' }, rule])\n }\n },\n addDefaults() {\n throwIf(!allowUnsupportedPlugins, () =>\n getUnsupportedError('addDefaults()')\n )\n return null\n },\n addComponents: (components, options) =>\n asPlugin(components, options, {\n layer: 'components',\n prefixIdentifier,\n context,\n }),\n matchComponents: (components, options) =>\n matchPlugin(components, options, {\n layer: 'components',\n prefixIdentifier,\n context,\n }),\n addUtilities: (utilities, options) =>\n asPlugin(utilities, options, {\n layer: 'utilities',\n prefixIdentifier,\n context,\n }),\n matchUtilities: (utilities, options) =>\n matchPlugin(utilities, options, {\n layer: 'utilities',\n prefixIdentifier,\n context,\n }),\n }\n}\n\nfunction withIdentifiers(styles) {\n return parseStyles(styles).flatMap(node => {\n const nodeMap = new Map()\n const candidates = extractCandidates(node)\n\n // If this isn't \"on-demandable\", assign it a universal candidate.\n if (candidates.length === 0) {\n return [['*', node]]\n }\n\n return candidates.map(c => {\n if (!nodeMap.has(node)) {\n nodeMap.set(node, node)\n }\n\n return [c, nodeMap.get(node)]\n })\n })\n}\n\nfunction extractCandidates(node) {\n let classes = []\n\n if (node.type === 'rule') {\n for (const selector of node.selectors) {\n const classCandidates = getClasses(selector)\n // At least one of the selectors contains non-\"on-demandable\" candidates.\n if (classCandidates.length === 0) return []\n\n classes = [...classes, ...classCandidates]\n }\n\n return classes\n }\n\n if (node.type === 'atrule') {\n node.walkRules(rule => {\n classes = [\n ...classes,\n ...rule.selectors.flatMap(selector => getClasses(selector)),\n ]\n })\n }\n\n return classes\n}\n\nfunction getClasses(selector) {\n const parser = selectorParser(selectors => {\n const allClasses = []\n selectors.walkClasses(classNode => {\n allClasses.push(classNode.value)\n })\n return allClasses\n })\n return parser.transformSync(selector)\n}\n\nfunction parseStyles(styles) {\n if (!Array.isArray(styles)) {\n return parseStyles([styles])\n }\n\n return styles.flatMap(style => {\n const isNode = !Array.isArray(style) && !isPlainObject(style)\n return isNode ? style : parseObjectStyles(style)\n })\n}\n","import buildPluginApi from './pluginApi'\nimport deepMerge from 'lodash.merge'\nimport { formatCssProperty } from './../utils'\n\nconst stripLeadingDot = string =>\n string.startsWith('.') ? string.slice(1) : string\n\nconst replaceSelectorWithParent = (string, replacement) =>\n string.replace(replacement, `{{${stripLeadingDot(replacement)}}}`)\n\nconst parseSelector = selector => {\n if (!selector) return\n\n const matches = selector.trim().match(/^(\\S+)(\\s+.*?)?$/)\n if (matches === null) return\n\n let match = matches[0]\n\n // Fix spacing that goes missing when provided by tailwindcss\n // Unfortunately this removes the ability to have classes on the same element\n // eg: .something.something or &.something\n match = match.replace(/(?<=\\w)\\./g, ' .')\n\n // If the selector is just a single selector then return\n if (!match.includes(' ')) return match\n\n // Look for class matching candidates\n const match2 = match.match(\n /(?<=>|^|~|\\+|\\*| )\\.[\\w.\\\\-]+(?= |>|~|\\+|\\*|:|$)/gm\n )\n\n if (!match2) return match\n // Wrap the matching classes in {{class}}\n for (const item of match2) {\n match = replaceSelectorWithParent(match, item)\n }\n\n return match\n}\n\nconst escapeSelector = selector => selector.replace(/\\\\\\//g, '/').trim()\n\nconst buildAtSelector = (name, values, screens) => {\n // Support @screen selectors\n if (name === 'screen') {\n const screenValue = screens[values]\n if (screenValue) return `@media (min-width: ${screenValue})`\n }\n\n return `@${name} ${values}`\n}\n\nconst getBuiltRules = (rule, { isBase }) => {\n if (!rule.selector) return null\n // Prep comma spaced selectors for parsing\n const selectorArray = rule.selector.split(',')\n\n // Validate each selector\n const selectorParsed = selectorArray\n .map(s => parseSelector(s))\n .filter(Boolean)\n\n // Join them back into a string\n const selector = selectorParsed.join(',')\n\n // Rule isn't formatted correctly\n if (!selector) return null\n\n if (isBase) {\n // Base values stay as-is because they aren't interactive\n return { [escapeSelector(selector)]: buildDeclaration(rule.nodes) }\n }\n\n // Separate comma-separated selectors to allow twin's features\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n return selector.split(',').reduce(\n (result, selector) => ({\n ...result,\n [escapeSelector(selector)]: buildDeclaration(rule.nodes),\n }),\n {}\n )\n}\n\nconst buildDeclaration = items => {\n if (typeof items !== 'object') return items\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n return Object.entries(items).reduce(\n (result, [, declaration]) => ({\n ...result,\n [formatCssProperty(declaration.prop)]: declaration.value,\n }),\n {}\n )\n}\n\nconst sortLength = (a, b) => {\n const selectorA = a.selector ? a.selector.length : 0\n const selectorB = b.selector ? b.selector.length : 0\n return selectorA - selectorB\n}\n\nconst sortScreenOrder = (a, b, screenOrder) => {\n const screenIndexA = a.name === 'screen' ? screenOrder.indexOf(a.params) : 0\n const screenIndexB = b.name === 'screen' ? screenOrder.indexOf(b.params) : 0\n return screenIndexA - screenIndexB\n}\n\nconst sortMediaRulesFirst = (a, b) => {\n const atRuleA = a.type === 'atrule' ? 1 : 0\n const atRuleB = b.type === 'atrule' ? 1 : 0\n return atRuleA - atRuleB\n}\n\nconst ruleSorter = (arr, screens) => {\n if (!Array.isArray(arr) || arr.length === 0) return []\n\n const screenOrder = screens ? Object.keys(screens) : []\n\n arr\n // Tailwind also messes up the ordering so classes need to be resorted\n // Order selectors by length (don't know of a better way)\n .sort(sortLength)\n // Place at rules at the end '@media' etc\n .sort(sortMediaRulesFirst)\n // Sort @media by screens index\n .sort((a, b) => sortScreenOrder(a, b, screenOrder))\n // Traverse children and reorder aswell\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n .forEach(item => {\n if (!item.nodes || item.nodes.length === 0) return\n // FIXME: Remove comment and fix next line\n // eslint-disable-next-line unicorn/no-array-for-each\n item.nodes.forEach(i => {\n if (typeof i !== 'object') return\n\n return ruleSorter(i, screens)\n })\n })\n\n return arr\n}\n\nconst getUserPluginRules = (rules, screens, isBase) =>\n ruleSorter(rules, screens).reduce((result, rule) => {\n if (typeof rule === 'function') {\n return deepMerge(result, rule())\n }\n\n if (rule.type === 'decl') {\n const builtRules = { [rule.prop]: rule.value }\n return deepMerge(result, builtRules)\n }\n\n // Build the media queries\n if (rule.type !== 'atrule') {\n const builtRules = getBuiltRules(rule, { isBase })\n return deepMerge(result, builtRules)\n }\n\n // Remove a bunch of nodes that tailwind uses for limiting rule generation\n // https://github.com/tailwindlabs/tailwindcss/commit/b69e46cc1b32608d779dad35121077b48089485d#diff-808341f38c6f7093a7979961a53f5922R20\n if (['layer', 'variants', 'responsive'].includes(rule.name)) {\n return deepMerge(\n result,\n ...getUserPluginRules(rule.nodes, screens, isBase)\n )\n }\n\n const atSelector = buildAtSelector(rule.name, rule.params, screens)\n\n return deepMerge(result, {\n [atSelector]: getUserPluginRules(rule.nodes, screens, isBase),\n })\n }, {})\n\nconst getUserPluginData = ({ config, configTwin }) => {\n if (!config.plugins || config.plugins.length === 0) {\n return\n }\n\n const context = {\n candidateRuleMap: new Map(),\n tailwindConfig: config,\n configTwin,\n }\n\n const pluginApi = buildPluginApi(config, context)\n\n const userPlugins = config.plugins.map(plugin => {\n if (plugin.__isOptionsFunction) {\n plugin = plugin()\n }\n\n return typeof plugin === 'function' ? plugin : plugin.handler\n })\n\n // Call each of the plugins with the pluginApi\n for (const plugin of userPlugins) {\n if (Array.isArray(plugin)) {\n for (const pluginItem of plugin) {\n pluginItem(pluginApi)\n }\n } else {\n plugin(pluginApi)\n }\n }\n\n const rulesets = context.candidateRuleMap.values()\n\n const baseRaw = []\n const componentsRaw = []\n const utilitiesRaw = []\n\n // eslint-disable-next-line unicorn/prefer-spread\n for (const rules of Array.from(rulesets)) {\n for (const [data, rule] of rules) {\n if (data.layer === 'base') {\n baseRaw.push(rule)\n }\n\n if (data.layer === 'components') {\n componentsRaw.push(rule)\n }\n\n if (data.layer === 'utilities') {\n utilitiesRaw.push(rule)\n }\n }\n }\n\n /**\n * Variants\n */\n // No support for Tailwind's addVariant() function\n\n /**\n * Base\n */\n const base = getUserPluginRules(baseRaw, config.theme.screens, true)\n\n /**\n * Components\n */\n const components = getUserPluginRules(componentsRaw, config.theme.screens)\n\n /**\n * Utilities\n */\n const utilities = getUserPluginRules(utilitiesRaw, config.theme.screens)\n\n return { base, components, utilities }\n}\n\nexport default getUserPluginData\n","import { createMacro } from 'babel-plugin-macros'\nimport {\n validateImports,\n setStyledIdentifier,\n setCssIdentifier,\n generateUid,\n getCssAttributeData,\n} from './macroHelpers'\nimport {\n getConfigTailwindProperties,\n getConfigTwinValidated,\n} from './configHelpers'\nimport {\n getCssConfig,\n updateCssReferences,\n addCssImport,\n convertHtmlElementToStyled,\n} from './macro/css'\nimport {\n getStyledConfig,\n updateStyledReferences,\n addStyledImport,\n handleStyledFunction,\n} from './macro/styled'\nimport { handleThemeFunction } from './macro/theme'\nimport { handleScreenFunction } from './macro/screen'\nimport { handleGlobalStylesFunction } from './macro/globalStyles'\nimport { handleTwProperty, handleTwFunction } from './macro/tw'\nimport { handleCsProperty } from './macro/cs'\nimport { handleClassNameProperty } from './macro/className'\nimport getUserPluginData from './utils/getUserPluginData'\nimport { debugPlugins, debug } from './logging'\n\nconst getPackageUsed = ({ config: { preset }, cssImport, styledImport }) => ({\n isEmotion:\n preset === 'emotion' ||\n styledImport.from.includes('emotion') ||\n cssImport.from.includes('emotion'),\n isStyledComponents:\n preset === 'styled-components' ||\n styledImport.from.includes('styled-components') ||\n cssImport.from.includes('styled-components'),\n isGoober:\n preset === 'goober' ||\n styledImport.from.includes('goober') ||\n cssImport.from.includes('goober'),\n isStitches:\n preset === 'stitches' ||\n styledImport.from.includes('stitches') ||\n cssImport.from.includes('stitches'),\n})\n\nconst macroTasks = [\n handleTwFunction,\n handleGlobalStylesFunction, // GlobalStyles import\n updateStyledReferences, // Styled import\n handleStyledFunction, // Convert tw.div`` & styled.div`` to styled('div', {}) (stitches)\n updateCssReferences, // Update any usage of existing css imports\n handleThemeFunction, // Theme import\n handleScreenFunction, // Screen import\n addStyledImport,\n addCssImport, // Gotcha: Must be after addStyledImport or issues with theme`` style transpile\n]\n\nconst twinMacro = args => {\n const {\n babel: { types: t },\n references,\n state,\n config,\n } = args\n\n validateImports(references)\n\n const program = state.file.path\n\n const isDev =\n process.env.NODE_ENV === 'development' ||\n process.env.NODE_ENV === 'dev' ||\n false\n state.isDev = isDev\n state.isProd = !isDev\n\n const { configExists, configTailwind } = getConfigTailwindProperties(\n state,\n config\n )\n\n // Get import presets\n const styledImport = getStyledConfig({ state, config })\n const cssImport = getCssConfig({ state, config })\n\n // Identify the css-in-js library being used\n const packageUsed = getPackageUsed({ config, cssImport, styledImport })\n for (const [key, value] of Object.entries(packageUsed)) state[key] = value\n\n const configTwin = getConfigTwinValidated(config, state)\n\n state.configExists = configExists\n state.config = configTailwind\n state.configTwin = configTwin\n state.debug = debug(state)\n state.globalStyles = new Map()\n\n state.tailwindConfigIdentifier = generateUid('tailwindConfig', program)\n state.tailwindUtilsIdentifier = generateUid('tailwindUtils', program)\n\n state.userPluginData = getUserPluginData({ config: state.config, configTwin })\n isDev &&\n Boolean(config.debugPlugins) &&\n state.userPluginData &&\n debugPlugins(state.userPluginData)\n\n state.styledImport = styledImport\n state.cssImport = cssImport\n\n // Init identifiers\n state.styledIdentifier = null\n state.cssIdentifier = null\n\n // Group traversals together for better performance\n program.traverse({\n ImportDeclaration(path) {\n setStyledIdentifier({ state, path, styledImport })\n setCssIdentifier({ state, path, cssImport })\n },\n JSXElement(path) {\n const allAttributes = path.get('openingElement.attributes')\n const jsxAttributes = allAttributes.filter(a => a.isJSXAttribute())\n const { index, hasCssAttribute } = getCssAttributeData(jsxAttributes)\n // Make sure hasCssAttribute remains true once css prop has been found\n // so twin can add the css prop\n state.hasCssAttribute = state.hasCssAttribute || hasCssAttribute\n\n // Reverse the attributes so the items keep their order when replaced\n const orderedAttributes =\n index > 1 ? jsxAttributes.reverse() : jsxAttributes\n for (path of orderedAttributes) {\n handleClassNameProperty({ path, t, state })\n handleTwProperty({ path, t, state, program })\n handleCsProperty({ path, t, state })\n }\n\n hasCssAttribute && convertHtmlElementToStyled({ path, t, program, state })\n },\n })\n\n if (state.styledIdentifier === null)\n state.styledIdentifier = generateUid('styled', program)\n\n if (state.cssIdentifier === null)\n state.cssIdentifier = generateUid('css', program)\n\n for (const task of macroTasks) {\n task({ styledImport, cssImport, references, program, config, state, t })\n }\n\n program.scope.crawl()\n}\n\nexport default createMacro(twinMacro, { configName: 'twin' })\n"],"names":["SPACE_ID","throwIf","expression","callBack","MacroError","isEmpty","value","undefined","Object","keys","length","trim","transformThemeValue","themeSection","includes","Array","isArray","join","objectToStringValues","obj","entries","reduce","result","key","deepMerge","map","i","String","getTheme","configTheme","grab","themeKey","split","themeValue","get","stripNegative","string","slice","camelize","replace","_","chr","toUpperCase","isNumeric","str","Number","isNaN","parseFloat","isClass","RegExp","test","isMediaQuery","startsWith","isShortCss","className","isArbitraryCss","splitOnFirst","input","delim","first","rest","formatProp","classes","replaceSpaceId","isSpaceSeparatedColor","color","spaceMatch","hasValidSpaceSeparatedColors","every","Boolean","exec","parseColor","isObject","val","getFirstValue","list","getValue","firstValue","listLength","listItem","find","index","isLast","toArray","arr","formatCssProperty","match","buildStyleSet","property","pieces","important","maybeAddAlpha","variable","alpha","toAlpha","fallBackColor","newPieces","hasVariantVisited","hasAlpha","withAlpha","opacityValue","opacityVariable","parsed","gradient","formatColor","addDataTwPropToPath","t","attributes","rawClasses","path","state","propName","dataTwPropAllEnvironments","configTwin","dataTwProp","dataCsPropAllEnvironments","dataCsProp","isProd","dataProperty","filter","p","node","name","forEach","remove","insertAfter","jsxAttribute","jsxIdentifier","stringLiteral","addDataPropToExistingPath","pushContainer","jSXAttribute","jSXIdentifier","jSXExpressionContainer","cssFontVariantNumericValue","cssTransformValue","cssFilterValue","cssBackdropFilterValue","cssTouchActionValue","container","output","theme","padding","margin","center","screens","properties","type","left","right","getSpacingFromArray","values","valueLeft","valueRight","getSpacingStyle","propertyValue","objectArraySpacing","mediaScreens","accumulator","rawValue","min","maxWidth","paddingStyles","paddingLeft","paddingRight","marginStyles","marginLeft","marginRight","width","supportsImportant","position","height","overflow","clip","whiteSpace","borderWidth","config","pointerEvents","visible","visibility","invisible","static","fixed","absolute","relative","sticky","supportsNegativeValues","inset","top","bottom","isolate","isolation","z","order","col","row","float","clear","mt","mr","mb","ml","mx","my","m","boxSizing","block","display","inline","table","grid","contents","hidden","aspect","h","w","flex","shrink","grow","basis","tableLayout","borderCollapse","origin","transform","rotate","scale","animate","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","listStylePosition","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoFlow","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","marginTop","marginBottom","borderTopWidth","borderBottomWidth","coerced","borderRightWidth","borderLeftWidth","divide","wrapWith","forceReturn","borderStyle","placeSelf","alignSelf","justifySelf","overflowX","overflowY","overscrollBehavior","overscrollBehaviorY","overscrollBehaviorX","scrollBehavior","truncate","textOverflow","wordBreak","overflowWrap","rounded","border","bg","url","image","percentage","from","via","to","boxDecorationBreak","backgroundAttachment","backgroundClip","backgroundRepeat","backgroundOrigin","fill","any","stroke","number","objectFit","object","pt","pr","pb","pl","px","py","textAlign","indent","lookup","verticalAlign","align","font","uppercase","textTransform","lowercase","capitalize","italic","fontStyle","fontVariantNumeric","ordinal","leading","tracking","text","underline","textDecorationLine","overline","decoration","textDecorationStyle","antialiased","WebkitFontSmoothing","MozOsxFontSmoothing","placeholder","caret","accent","opacity","backgroundBlendMode","mixBlendMode","shadow","outline","outlineOffset","outlineStyle","ring","boxShadow","blur","brightness","contrast","dropShadowValue","v","grayscale","invert","saturate","sepia","backdropFilter","transition","defaultTimingFunction","defaultDuration","transitionProperty","transitionTimingFunction","transitionDuration","delay","duration","ease","content","isEmotion","variantConfig","variantDarkMode","variantLightMode","prefixDarkLightModeClass","createPeer","before","after","hover","focus","active","visited","hocus","link","target","file","autofill","disabled","checked","default","enabled","indeterminate","invalid","valid","optional","required","open","last","only","even","odd","svg","all","sibling","empty","variantData","print","screen","rtl","ltr","landscape","portrait","dark","light","selection","marker","error","chalk","hex","errorLight","success","greenBright","highlight","yellowBright","highlight2","blue","subdued","spaced","warning","inOutPlugins","layer","JSON","stringify","inOut","logNoVariant","variant","validVariants","k","item","logNotAllowed","fix","logBadGood","bad","good","logGeneralError","logErrorFix","debugSuccess","log","formatPluginKey","debugPlugins","processedPlugins","console","group","styles","formatSuggestions","suggestions","s","isHex","logNoClass","classNameRawNoVariants","logDeeplyNestedClass","checkDarkLightClasses","errorSuggestions","hasSuggestions","prefix","isCsOnly","textNotFound","getSuggestions","endsWith","suggestion","shift","suggestionText","themeErrorNotFound","trimInput","opacityErrorNotFound","logNotFoundVariant","classNameRaw","logNotFoundClass","logStylePropertyError","debug","message","isDev","getCustomSuggestions","ellipsis","flattenObject","pre","fullKey","assign","targetTransforms","corePluginName","filterKeys","negativesOnly","normalizeCoreConfig","hasNegative","results","rating","stringSimilarity","compareTwoStrings","transformer","filteredResults","matchConfig","concat","sort","a","b","getConfig","sortRatingHighestFirst","args","customSuggestions","matches","defaultFound","trumpMatches","classMatches","Set","corePlugins","flat","findBestMatch","ratings","firstPart","trumpMatch","getUnsupportedError","feature","SPREAD_ID","COMPUTED_ID","addImport","types","program","mod","identifier","importName","importDefaultSpecifier","importSpecifier","unshiftContainer","importDeclaration","objectExpressionElements","literal","spreadType","babylon","parseExpression","computed","objectProperty","astify","nullLiteral","unaryExpression","numericLiteral","booleanLiteral","arrayExpression","x","objectExpression","setStyledIdentifier","styledImport","importFromStitches","isStitches","source","importFromLibrary","specifiers","some","specifier","import","local","styledIdentifier","existingStyledIdentifier","imported","setCssIdentifier","cssImport","isLibraryImport","cssIdentifier","existingCssIdentifier","parseTte","cloneNode","cloneDeep","tagType","tag","evaluate","stringLoc","loc","replaceWithLocation","isImportingStyled","callExpression","replacement","newPaths","replaceWith","validImports","validateImports","imports","unsupportedImport","reference","has","importTwAsNamedNotDefault","generateUid","scope","generateUidIdentifier","getParentJSX","findParent","isJSXOpeningElement","getAttributeNames","jsxPath","attributeNames","getCssAttributeData","findIndex","attribute","isJSXAttribute","hasCssAttribute","getFunctionValue","parent","isCallExpression","argument","getTaggedTemplateValue","isTaggedTemplateExpression","getMemberExpression","isMemberExpression","generateTaggedTemplateExpression","backtickStyles","templateElement","raw","cooked","ttExpression","taggedTemplateExpression","templateLiteral","isComponent","jsxElementNameError","getFirstStyledArgument","dotComponent","objectName","propertyName","memberExpression","makeStyledComponent","secondArg","constName","firstArg","styledProps","variableDeclarator","styledDefinition","variableDeclaration","rootParentPath","parentPath","isProgram","insertBefore","id","selfClosing","closingElement","configDefaultsGoober","sassyPseudo","configDefaultsStitches","convertStyledDot","moveTwPropToStyled","convertHtmlElementToStyled","stitchesConfig","configDefaultsTwin","isGoober","allowUnsupportedPlugins","allowStyleProp","autoCssProp","includeClassNames","disableCsProp","disableShortCss","isBoolean","allowedPresets","configTwinValidators","preset","disableColorVariables","debugProp","getAllConfigs","configs","flatMap","defaultTailwindConfig","reverse","silenceContentWarning","getConfigTailwindProperties","sourceRoot","opts","configFile","configPath","resolve","configExists","existsSync","configSelected","require","configUser","configTailwind","resolveTailwindConfig","checkExists","fileName","getRelativePath","comparePath","filename","pathName","parse","dir","getStitchesPath","configPathCheck","runConfigValidator","validatorConfig","validator","errorMessage","getConfigTwin","getConfigTwinValidated","getFlatCoercedConfigByProperty","coreConfig","getCorePluginsByProperty","found","supportsArbitraryValues","coreConfigValue","styled","css","global","emotion","goober","stitches","getCssConfig","usedConfig","userPresets","stitchesPath","updateCssReferences","references","cssReferences","addCssImport","isImportingCss","shouldImport","props","getStyledConfig","updateStyledReferences","styledReferences","addStyledImport","moveDotElementToParam","parentCallExpression","styledName","styledArgs","handleStyledFunction","arrayValues","getThemeValue","skipDefault","DEFAULT","handleThemeFunction","getDirectReplacement","mediaQuery","newPath","handleDefinition","TaggedTemplateExpression","query","quasis","expressions","CallExpression","ObjectProperty","ExpressionStatement","ArrowFunctionExpression","ArrayExpression","BinaryExpression","LogicalExpression","ConditionalExpression","VariableDeclarator","TemplateLiteral","TSAsExpression","validateScreenValue","getMediaQuery","handleScreenFunction","definition","f","globalPreflightStyles","borderColor","html","lineHeight","WebkitTextSizeAdjust","MozTabSize","tabSize","fontFamily","body","hr","textDecoration","fontSize","fontWeight","small","sub","sup","textIndent","WebkitAppearance","backgroundColor","backgroundImage","progress","summary","fieldset","legend","listStyle","textarea","globalRingStyles","ringOpacityDefault","ringColorDefault","globalTransformStyles","globalTouchActionStyles","globalScrollSnapTypeStyles","globalFontVariantNumericStyles","globalBoxShadowStyles","globalFilterStyles","globalBackdropStyles","globalKeyframeStyles","keyframes","frames","globalStyles","getGlobalConfig","addGlobalStylesImport","globalConfig","getGlobalDeclarationTte","stylesUid","globalUid","getGlobalDeclarationProperty","openingElement","jsxOpeningElement","jsxExpressionContainer","jsxClosingElement","arrowFunctionExpression","jsxElement","code","kebabize","toLowerCase","convertCssObjectToString","cssObject","filterClassSelectors","ruleset","selector","filteredSelectorSet","subSelectors","hasSubClasses","handleGlobalStylesFunction","GlobalStyles","handleGlobalStylesJsx","handleGlobalStylesVariable","getGlobalStyles","strippedPlugins","userPluginData","base","resolvedStyles","gs","push","templateStyles","convertedStyles","template","placeholderPattern","isJSXElement","declarationData","isStyledComponents","declaration","getCorePluginProperties","pluginName","startsWithPluginName","supportsFurtherMatching","isCorePluginClass","longestMatch","getProperties","getIsShortCss","hasMatches","hasUserPlugins","plugins","precheckGroup","precheckPeer","joinWithNoDoubleHyphens","preCheckPrefix","hasPrefix","classSuggestion","preCheckNoHyphenSuffix","doPrechecks","prechecks","context","precheck","compareBackdropProperty","A","B","orderBackdropProperty","classNames","timSort","compareBgOpacityProperty","orderBgOpacityProperty","compareFilterProperty","orderFilterProperty","compareGridProperty","orderGridProperty","compareOrderRingProperty","orderRingProperty","compareTransformProperty","orderTransformProperty","compareTransition","orderTransitionProperty","orderByScreens","screenCompare","indexOf","stringifyScreen","screenName","Error","range","max","hasGroupVariant","errorCustom","media","class","hasDarkVariant","hasLightVariant","themeVariant","cn","selectors","fullVariantConfig","getVariants","variants","_excluded","screenNames","isResponsive","foundVariant","arbitraryVariant","splitVariants","variantsList","hasVariants","splitPrefix","newClassName","splitNegative","negative","splitImportant","hasSuffix","hasImportant","getAlphaValue","isInteger","getLastSlashIndex","lastSlashIndex","lastIndexOf","splitAlpha","slashIdx","classNameNoSlashAlpha","rawAlpha","hasAlphaArbitrary","hasMatchedAlpha","addContentClass","newClasses","classSet","shouldAddContent","c","mergeImportant","style","newValue","transformImportant","applyTransforms","getPeerValueFromVariant","combinePeers","isPeer","returnVariant","peerList","peer","addSassyPseudo","formatTasks","addVariants","task","styleWithVariants","cleanSet","findRightBracket","start","end","brackets","stack","sliceToSpace","spaceIndex","spreadVariantGroups","importantContext","reg","baseContext","weird","spaceReplacedVariant","lastIndex","closeBracket","importantGroup","cssClass","hasSlashOpacity","spaceReplacedClass","tail","handleVariantGroups","defaultBoxShadow","makeBoxShadow","ast","parseBoxShadowValue","formatBoxShadowValue","coercedTypeMap","lineWidth","absoluteSize","relativeSize","genericName","familyName","getTypeCoerced","customValue","explicitType","coercedConfig","coercedTypes","dash","getCoercedValueFromTypeMap","applyStyleToProperty","styleValue","fromEntries","extraStyles","replaceThemeValue","themeFunction","maybeAddNegative","hasSupport","r","getErrorFeedback","pluginConfig","pluginKeys","getClassData","getArbitraryStyle","classValue","typeCoerced","coercedConfigResult","configUsed","themeReplacedValue","normalizeValue","splitAtDash","twClass","fromEnd","splitClass","lastPart","getConfigValue","matcher","matchArray","getValueFromConfig","defaultMatch","objectMatch","getDynamicStyle","configSearch","isStaticOutput","mergeChecks","suffix","getMatches","data","rawKey","childValue","hasChildNesting","shouldMergeValue","newKey","formatKey","parentSelectorIndex","normalizeUserPluginSelectors","components","utilities","rawData","getPieces","splitter","multilineReplaceWith","charBefore","directPrefixMatch","charAfter","directSuffixMatch","ordering","silentMismatches","hasEmptyClasses","classesMatched","classesMismatched","precheckExports","precheckContext","hasPrefixMismatch","isShortCssDisabled","styleContext","styleHandler","shortCss","handleShortCss","dynamic","handleDynamic","arbitraryCss","handleArbitraryCss","userPlugin","handleUserPlugins","astStyles","mismatched","matched","tagAttributes","twAttributeIndex","n","splice","mergeIntoCssAttribute","cssAttribute","attributeValuePath","isJSXExpressionContainer","isStringLiteral","existingCssAttribute","isBeforeCssAttribute","isArrayExpression","existingCssAttributeNode","styleArray","handleTwProperty","hasTwAttribute","nodeValue","expressionValue","getStyleData","handleTwFunction","defaultImportReferences","tw","crawl","attributeName","pathData","handleCsProperty","hasCsProp","makeJsxAttribute","handleClassNameProperty","extra","cssExpression","require$$0","require$$1","require$$2","require$$3","_util","_types","deprecate","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","combinator","comment","nesting","pseudo","root","universal","_constructors","_guards","matchPlugin","rules","options","prefixIdentifier","defaultOptions","respectPrefix","respectImportant","prefixedIdentifier","rule","wrapped","configValue","prop","withOffsets","candidateRuleMap","set","asPlugin","withIdentifiers","buildPluginApi","tailwindConfig","defaultValue","dlv","addVariant","postcss","e","pathRoot","subPaths","toPath","addUserCss","addBase","addDefaults","addComponents","matchComponents","addUtilities","matchUtilities","parseStyles","nodeMap","Map","candidates","extractCandidates","classCandidates","getClasses","walkRules","parser","selectorParser","allClasses","walkClasses","classNode","transformSync","isNode","isPlainObject","parseObjectStyles","stripLeadingDot","replaceSelectorWithParent","parseSelector","match2","escapeSelector","buildAtSelector","screenValue","getBuiltRules","isBase","selectorArray","selectorParsed","buildDeclaration","nodes","items","sortLength","selectorA","selectorB","sortScreenOrder","screenOrder","screenIndexA","params","screenIndexB","sortMediaRulesFirst","atRuleA","atRuleB","ruleSorter","getUserPluginRules","builtRules","atSelector","getUserPluginData","pluginApi","userPlugins","plugin","__isOptionsFunction","handler","pluginItem","rulesets","baseRaw","componentsRaw","utilitiesRaw","getPackageUsed","macroTasks","twinMacro","babel","process","env","NODE_ENV","packageUsed","tailwindConfigIdentifier","tailwindUtilsIdentifier","traverse","ImportDeclaration","JSXElement","allAttributes","jsxAttributes","orderedAttributes","createMacro","configName"],"mappings":"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"}