@mkbabb/value.js 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/value.cjs +8 -0
- package/dist/value.d.ts +1753 -0
- package/dist/value.js +3781 -0
- package/package.json +51 -40
- package/dist/index.cjs +0 -13792
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -13791
- package/dist/index.js.map +0 -1
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/units/constants.ts","../src/units/index.ts","../node_modules/picocolors/picocolors.browser.js","../__vite-browser-external","../node_modules/postcss/lib/css-syntax-error.js","../node_modules/postcss/lib/symbols.js","../node_modules/postcss/lib/stringifier.js","../node_modules/postcss/lib/stringify.js","../node_modules/postcss/lib/node.js","../node_modules/postcss/lib/declaration.js","../node_modules/nanoid/non-secure/index.cjs","../node_modules/postcss/lib/previous-map.js","../node_modules/postcss/lib/input.js","../node_modules/postcss/lib/map-generator.js","../node_modules/postcss/lib/comment.js","../node_modules/postcss/lib/container.js","../node_modules/postcss/lib/document.js","../node_modules/postcss/lib/warn-once.js","../node_modules/postcss/lib/warning.js","../node_modules/postcss/lib/result.js","../node_modules/postcss/lib/tokenize.js","../node_modules/postcss/lib/at-rule.js","../node_modules/postcss/lib/root.js","../node_modules/postcss/lib/list.js","../node_modules/postcss/lib/rule.js","../node_modules/postcss/lib/parser.js","../node_modules/postcss/lib/parse.js","../node_modules/postcss/lib/lazy-result.js","../node_modules/postcss/lib/no-work-result.js","../node_modules/postcss/lib/processor.js","../node_modules/postcss/lib/fromJSON.js","../node_modules/postcss/lib/postcss.js","../node_modules/postcss/lib/postcss.mjs","../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/browser.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","../node_modules/@mhsdesign/jit-browser-tailwindcss/node_modules/postcss-nested/index.js","../node_modules/camelcase-css/index-es5.js","../node_modules/postcss-js/objectifier.js","../node_modules/postcss-js/parser.js","../node_modules/postcss-js/process-result.js","../node_modules/postcss-js/async.js","../node_modules/postcss-js/sync.js","../node_modules/postcss-js/index.js","../node_modules/postcss-js/index.mjs","../node_modules/didyoumean/didYouMean-1.2.1.js","../node_modules/@mhsdesign/jit-browser-tailwindcss/dist/module.esm.js","../src/utils.ts","../src/units/utils.ts","../src/math.ts","../src/easing.ts","../node_modules/parsimmon/build/parsimmon.umd.min.js","../src/units/color/constants.ts","../node_modules/gl-matrix/esm/common.js","../node_modules/gl-matrix/esm/mat3.js","../node_modules/gl-matrix/esm/vec3.js","../src/units/color/utils.ts","../src/parsing/utils.ts","../src/parsing/units.ts","../src/parsing/keyframes.ts","../src/animation/constants.ts","../src/animation/group.ts","../src/units/color/normalize.ts","../src/units/normalize.ts","../src/animation/utils.ts","../src/animation/index.ts","../src/parsing/index.ts"],"sourcesContent":["export const ABSOLUTE_LENGTH_UNITS = [\"px\", \"cm\", \"mm\", \"Q\", \"in\", \"pc\", \"pt\"] as const;\nexport const RELATIVE_LENGTH_UNITS = [\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n] as const;\nexport const LENGTH_UNITS = [\n ...ABSOLUTE_LENGTH_UNITS,\n ...RELATIVE_LENGTH_UNITS,\n] as const;\n\nexport const TIME_UNITS = [\"s\", \"ms\"] as const;\nexport const ANGLE_UNITS = [\"deg\", \"rad\", \"grad\", \"turn\"] as const;\nexport const PERCENTAGE_UNITS = [\"%\"] as const;\nexport const RESOLUTION_UNITS = [\"dpi\", \"dpcm\", \"dppx\", \"cqw\"] as const;\n\nexport const COMPUTED_UNITS = [\"var\", \"calc\"] as const;\n\nexport const STRING_UNITS = [\"string\"] as const;\n\nexport const COLOR_UNITS = [\"color\"] as const;\n\nexport const UNITS = [\n ...LENGTH_UNITS,\n ...TIME_UNITS,\n\n ...ANGLE_UNITS,\n ...PERCENTAGE_UNITS,\n ...RESOLUTION_UNITS,\n\n ...COMPUTED_UNITS,\n ...STRING_UNITS,\n\n ...COLOR_UNITS,\n\n \"\",\n undefined,\n] as const;\n\nexport const BLACKLISTED_COALESCE_UNITS = [\"string\", \"var\", \"calc\"] as const;\n\nexport interface MatrixValues {\n scaleX: number;\n scaleY: number;\n scaleZ: number;\n\n skewX: number;\n skewY: number;\n skewZ: number;\n\n translateX: number;\n translateY: number;\n translateZ: number;\n\n rotateX: number;\n rotateY: number;\n rotateZ: number;\n\n perspectiveX: number;\n perspectiveY: number;\n perspectiveZ: number;\n perspectiveW: number;\n}\n\nexport const STYLE_NAMES = [\n \"accentColor\",\n \"additiveSymbols\",\n \"alignContent\",\n \"alignItems\",\n \"alignSelf\",\n \"alignmentBaseline\",\n \"all\",\n \"anchorName\",\n \"animation\",\n \"animationComposition\",\n \"animationDelay\",\n \"animationDirection\",\n \"animationDuration\",\n \"animationFillMode\",\n \"animationIterationCount\",\n \"animationName\",\n \"animationPlayState\",\n \"animationRange\",\n \"animationRangeEnd\",\n \"animationRangeStart\",\n \"animationTimeline\",\n \"animationTimingFunction\",\n \"appRegion\",\n \"appearance\",\n \"ascentOverride\",\n \"aspectRatio\",\n \"backdropFilter\",\n \"backfaceVisibility\",\n \"background\",\n \"backgroundAttachment\",\n \"backgroundBlendMode\",\n \"backgroundClip\",\n \"backgroundColor\",\n \"backgroundImage\",\n \"backgroundOrigin\",\n \"backgroundPosition\",\n \"backgroundPositionX\",\n \"backgroundPositionY\",\n \"backgroundRepeat\",\n \"backgroundSize\",\n \"basePalette\",\n \"baselineShift\",\n \"baselineSource\",\n \"blockSize\",\n \"border\",\n \"borderBlock\",\n \"borderBlockColor\",\n \"borderBlockEnd\",\n \"borderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"borderBlockStart\",\n \"borderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"borderBlockStyle\",\n \"borderBlockWidth\",\n \"borderBottom\",\n \"borderBottomColor\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"borderBottomStyle\",\n \"borderBottomWidth\",\n \"borderCollapse\",\n \"borderColor\",\n \"borderEndEndRadius\",\n \"borderEndStartRadius\",\n \"borderImage\",\n \"borderImageOutset\",\n \"borderImageRepeat\",\n \"borderImageSlice\",\n \"borderImageSource\",\n \"borderImageWidth\",\n \"borderInline\",\n \"borderInlineColor\",\n \"borderInlineEnd\",\n \"borderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"borderInlineStart\",\n \"borderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"borderInlineStyle\",\n \"borderInlineWidth\",\n \"borderLeft\",\n \"borderLeftColor\",\n \"borderLeftStyle\",\n \"borderLeftWidth\",\n \"borderRadius\",\n \"borderRight\",\n \"borderRightColor\",\n \"borderRightStyle\",\n \"borderRightWidth\",\n \"borderSpacing\",\n \"borderStartEndRadius\",\n \"borderStartStartRadius\",\n \"borderStyle\",\n \"borderTop\",\n \"borderTopColor\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderTopStyle\",\n \"borderTopWidth\",\n \"borderWidth\",\n \"bottom\",\n \"boxShadow\",\n \"boxSizing\",\n \"breakAfter\",\n \"breakBefore\",\n \"breakInside\",\n \"bufferedRendering\",\n \"captionSide\",\n \"caretColor\",\n \"clear\",\n \"clip\",\n \"clipPath\",\n \"clipRule\",\n \"color\",\n \"colorInterpolation\",\n \"colorInterpolationFilters\",\n \"colorRendering\",\n \"colorScheme\",\n \"columnCount\",\n \"columnFill\",\n \"columnGap\",\n \"columnRule\",\n \"columnRuleColor\",\n \"columnRuleStyle\",\n \"columnRuleWidth\",\n \"columnSpan\",\n \"columnWidth\",\n \"columns\",\n \"contain\",\n \"containIntrinsicBlockSize\",\n \"containIntrinsicHeight\",\n \"containIntrinsicInlineSize\",\n \"containIntrinsicSize\",\n \"containIntrinsicWidth\",\n \"container\",\n \"containerName\",\n \"containerType\",\n \"content\",\n \"contentVisibility\",\n \"counterIncrement\",\n \"counterReset\",\n \"counterSet\",\n \"cursor\",\n \"cx\",\n \"cy\",\n \"d\",\n \"descentOverride\",\n \"direction\",\n \"display\",\n \"dominantBaseline\",\n \"emptyCells\",\n \"fallback\",\n \"fieldSizing\",\n \"fill\",\n \"fillOpacity\",\n \"fillRule\",\n \"filter\",\n \"flex\",\n \"flexBasis\",\n \"flexDirection\",\n \"flexFlow\",\n \"flexGrow\",\n \"flexShrink\",\n \"flexWrap\",\n \"float\",\n \"floodColor\",\n \"floodOpacity\",\n \"font\",\n \"fontDisplay\",\n \"fontFamily\",\n \"fontFeatureSettings\",\n \"fontKerning\",\n \"fontOpticalSizing\",\n \"fontPalette\",\n \"fontSize\",\n \"fontStretch\",\n \"fontStyle\",\n \"fontSynthesis\",\n \"fontSynthesisSmallCaps\",\n \"fontSynthesisStyle\",\n \"fontSynthesisWeight\",\n \"fontVariant\",\n \"fontVariantAlternates\",\n \"fontVariantCaps\",\n \"fontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"fontVariantNumeric\",\n \"fontVariantPosition\",\n \"fontVariationSettings\",\n \"fontWeight\",\n \"forcedColorAdjust\",\n \"gap\",\n \"grid\",\n \"gridArea\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnGap\",\n \"gridColumnStart\",\n \"gridGap\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowGap\",\n \"gridRowStart\",\n \"gridTemplate\",\n \"gridTemplateAreas\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"height\",\n \"hyphenateCharacter\",\n \"hyphenateLimitChars\",\n \"hyphens\",\n \"imageOrientation\",\n \"imageRendering\",\n \"inherits\",\n \"initialLetter\",\n \"initialValue\",\n \"inlineSize\",\n \"inset\",\n \"insetArea\",\n \"insetBlock\",\n \"insetBlockEnd\",\n \"insetBlockStart\",\n \"insetInline\",\n \"insetInlineEnd\",\n \"insetInlineStart\",\n \"isolation\",\n \"justifyContent\",\n \"justifyItems\",\n \"justifySelf\",\n \"left\",\n \"letterSpacing\",\n \"lightingColor\",\n \"lineBreak\",\n \"lineGapOverride\",\n \"lineHeight\",\n \"listStyle\",\n \"listStyleImage\",\n \"listStylePosition\",\n \"listStyleType\",\n \"margin\",\n \"marginBlock\",\n \"marginBlockEnd\",\n \"marginBlockStart\",\n \"marginBottom\",\n \"marginInline\",\n \"marginInlineEnd\",\n \"marginInlineStart\",\n \"marginLeft\",\n \"marginRight\",\n \"marginTop\",\n \"marker\",\n \"markerEnd\",\n \"markerMid\",\n \"markerStart\",\n \"mask\",\n \"maskClip\",\n \"maskComposite\",\n \"maskImage\",\n \"maskMode\",\n \"maskOrigin\",\n \"maskPosition\",\n \"maskRepeat\",\n \"maskSize\",\n \"maskType\",\n \"mathDepth\",\n \"mathShift\",\n \"mathStyle\",\n \"maxBlockSize\",\n \"maxHeight\",\n \"maxInlineSize\",\n \"maxWidth\",\n \"minBlockSize\",\n \"minHeight\",\n \"minInlineSize\",\n \"minWidth\",\n \"mixBlendMode\",\n \"navigation\",\n \"negative\",\n \"objectFit\",\n \"objectPosition\",\n \"objectViewBox\",\n \"offset\",\n \"offsetAnchor\",\n \"offsetDistance\",\n \"offsetPath\",\n \"offsetPosition\",\n \"offsetRotate\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"outline\",\n \"outlineColor\",\n \"outlineOffset\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"overflow\",\n \"overflowAnchor\",\n \"overflowClipMargin\",\n \"overflowWrap\",\n \"overflowX\",\n \"overflowY\",\n \"overlay\",\n \"overrideColors\",\n \"overscrollBehavior\",\n \"overscrollBehaviorBlock\",\n \"overscrollBehaviorInline\",\n \"overscrollBehaviorX\",\n \"overscrollBehaviorY\",\n \"pad\",\n \"padding\",\n \"paddingBlock\",\n \"paddingBlockEnd\",\n \"paddingBlockStart\",\n \"paddingBottom\",\n \"paddingInline\",\n \"paddingInlineEnd\",\n \"paddingInlineStart\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingTop\",\n \"page\",\n \"pageBreakAfter\",\n \"pageBreakBefore\",\n \"pageBreakInside\",\n \"pageOrientation\",\n \"paintOrder\",\n \"perspective\",\n \"perspectiveOrigin\",\n \"placeContent\",\n \"placeItems\",\n \"placeSelf\",\n \"pointerEvents\",\n \"position\",\n \"positionAnchor\",\n \"positionTry\",\n \"positionTryOptions\",\n \"positionTryOrder\",\n \"positionVisibility\",\n \"prefix\",\n \"quotes\",\n \"r\",\n \"range\",\n \"resize\",\n \"right\",\n \"rotate\",\n \"rowGap\",\n \"rubyPosition\",\n \"rx\",\n \"ry\",\n \"scale\",\n \"scrollBehavior\",\n \"scrollMargin\",\n \"scrollMarginBlock\",\n \"scrollMarginBlockEnd\",\n \"scrollMarginBlockStart\",\n \"scrollMarginBottom\",\n \"scrollMarginInline\",\n \"scrollMarginInlineEnd\",\n \"scrollMarginInlineStart\",\n \"scrollMarginLeft\",\n \"scrollMarginRight\",\n \"scrollMarginTop\",\n \"scrollPadding\",\n \"scrollPaddingBlock\",\n \"scrollPaddingBlockEnd\",\n \"scrollPaddingBlockStart\",\n \"scrollPaddingBottom\",\n \"scrollPaddingInline\",\n \"scrollPaddingInlineEnd\",\n \"scrollPaddingInlineStart\",\n \"scrollPaddingLeft\",\n \"scrollPaddingRight\",\n \"scrollPaddingTop\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollSnapType\",\n \"scrollTimeline\",\n \"scrollTimelineAxis\",\n \"scrollTimelineName\",\n \"scrollbarColor\",\n \"scrollbarGutter\",\n \"scrollbarWidth\",\n \"shapeImageThreshold\",\n \"shapeMargin\",\n \"shapeOutside\",\n \"shapeRendering\",\n \"size\",\n \"sizeAdjust\",\n \"speak\",\n \"speakAs\",\n \"src\",\n \"stopColor\",\n \"stopOpacity\",\n \"stroke\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeLinecap\",\n \"strokeLinejoin\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeWidth\",\n \"suffix\",\n \"symbols\",\n \"syntax\",\n \"system\",\n \"tabSize\",\n \"tableLayout\",\n \"textAlign\",\n \"textAlignLast\",\n \"textAnchor\",\n \"textCombineUpright\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationLine\",\n \"textDecorationSkipInk\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textEmphasis\",\n \"textEmphasisColor\",\n \"textEmphasisPosition\",\n \"textEmphasisStyle\",\n \"textIndent\",\n \"textOrientation\",\n \"textOverflow\",\n \"textRendering\",\n \"textShadow\",\n \"textSizeAdjust\",\n \"textSpacingTrim\",\n \"textTransform\",\n \"textUnderlineOffset\",\n \"textUnderlinePosition\",\n \"textWrap\",\n \"timelineScope\",\n \"top\",\n \"touchAction\",\n \"transform\",\n \"transformBox\",\n \"transformOrigin\",\n \"transformStyle\",\n \"transition\",\n \"transitionBehavior\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionProperty\",\n \"transitionTimingFunction\",\n \"translate\",\n \"types\",\n \"unicodeBidi\",\n \"unicodeRange\",\n \"userSelect\",\n \"vectorEffect\",\n \"verticalAlign\",\n \"viewTimeline\",\n \"viewTimelineAxis\",\n \"viewTimelineInset\",\n \"viewTimelineName\",\n \"viewTransitionClass\",\n \"viewTransitionName\",\n \"visibility\",\n \"webkitAlignContent\",\n \"webkitAlignItems\",\n \"webkitAlignSelf\",\n \"webkitAnimation\",\n \"webkitAnimationDelay\",\n \"webkitAnimationDirection\",\n \"webkitAnimationDuration\",\n \"webkitAnimationFillMode\",\n \"webkitAnimationIterationCount\",\n \"webkitAnimationName\",\n \"webkitAnimationPlayState\",\n \"webkitAnimationTimingFunction\",\n \"webkitAppRegion\",\n \"webkitAppearance\",\n \"webkitBackfaceVisibility\",\n \"webkitBackgroundClip\",\n \"webkitBackgroundOrigin\",\n \"webkitBackgroundSize\",\n \"webkitBorderAfter\",\n \"webkitBorderAfterColor\",\n \"webkitBorderAfterStyle\",\n \"webkitBorderAfterWidth\",\n \"webkitBorderBefore\",\n \"webkitBorderBeforeColor\",\n \"webkitBorderBeforeStyle\",\n \"webkitBorderBeforeWidth\",\n \"webkitBorderBottomLeftRadius\",\n \"webkitBorderBottomRightRadius\",\n \"webkitBorderEnd\",\n \"webkitBorderEndColor\",\n \"webkitBorderEndStyle\",\n \"webkitBorderEndWidth\",\n \"webkitBorderHorizontalSpacing\",\n \"webkitBorderImage\",\n \"webkitBorderRadius\",\n \"webkitBorderStart\",\n \"webkitBorderStartColor\",\n \"webkitBorderStartStyle\",\n \"webkitBorderStartWidth\",\n \"webkitBorderTopLeftRadius\",\n \"webkitBorderTopRightRadius\",\n \"webkitBorderVerticalSpacing\",\n \"webkitBoxAlign\",\n \"webkitBoxDecorationBreak\",\n \"webkitBoxDirection\",\n \"webkitBoxFlex\",\n \"webkitBoxOrdinalGroup\",\n \"webkitBoxOrient\",\n \"webkitBoxPack\",\n \"webkitBoxReflect\",\n \"webkitBoxShadow\",\n \"webkitBoxSizing\",\n \"webkitClipPath\",\n \"webkitColumnBreakAfter\",\n \"webkitColumnBreakBefore\",\n \"webkitColumnBreakInside\",\n \"webkitColumnCount\",\n \"webkitColumnGap\",\n \"webkitColumnRule\",\n \"webkitColumnRuleColor\",\n \"webkitColumnRuleStyle\",\n \"webkitColumnRuleWidth\",\n \"webkitColumnSpan\",\n \"webkitColumnWidth\",\n \"webkitColumns\",\n \"webkitFilter\",\n \"webkitFlex\",\n \"webkitFlexBasis\",\n \"webkitFlexDirection\",\n \"webkitFlexFlow\",\n \"webkitFlexGrow\",\n \"webkitFlexShrink\",\n \"webkitFlexWrap\",\n \"webkitFontFeatureSettings\",\n \"webkitFontSmoothing\",\n \"webkitHyphenateCharacter\",\n \"webkitJustifyContent\",\n \"webkitLineBreak\",\n \"webkitLineClamp\",\n \"webkitLocale\",\n \"webkitLogicalHeight\",\n \"webkitLogicalWidth\",\n \"webkitMarginAfter\",\n \"webkitMarginBefore\",\n \"webkitMarginEnd\",\n \"webkitMarginStart\",\n \"webkitMask\",\n \"webkitMaskBoxImage\",\n \"webkitMaskBoxImageOutset\",\n \"webkitMaskBoxImageRepeat\",\n \"webkitMaskBoxImageSlice\",\n \"webkitMaskBoxImageSource\",\n \"webkitMaskBoxImageWidth\",\n \"webkitMaskClip\",\n \"webkitMaskComposite\",\n \"webkitMaskImage\",\n \"webkitMaskOrigin\",\n \"webkitMaskPosition\",\n \"webkitMaskPositionX\",\n \"webkitMaskPositionY\",\n \"webkitMaskRepeat\",\n \"webkitMaskSize\",\n \"webkitMaxLogicalHeight\",\n \"webkitMaxLogicalWidth\",\n \"webkitMinLogicalHeight\",\n \"webkitMinLogicalWidth\",\n \"webkitOpacity\",\n \"webkitOrder\",\n \"webkitPaddingAfter\",\n \"webkitPaddingBefore\",\n \"webkitPaddingEnd\",\n \"webkitPaddingStart\",\n \"webkitPerspective\",\n \"webkitPerspectiveOrigin\",\n \"webkitPerspectiveOriginX\",\n \"webkitPerspectiveOriginY\",\n \"webkitPrintColorAdjust\",\n \"webkitRtlOrdering\",\n \"webkitRubyPosition\",\n \"webkitShapeImageThreshold\",\n \"webkitShapeMargin\",\n \"webkitShapeOutside\",\n \"webkitTapHighlightColor\",\n \"webkitTextCombine\",\n \"webkitTextDecorationsInEffect\",\n \"webkitTextEmphasis\",\n \"webkitTextEmphasisColor\",\n \"webkitTextEmphasisPosition\",\n \"webkitTextEmphasisStyle\",\n \"webkitTextFillColor\",\n \"webkitTextOrientation\",\n \"webkitTextSecurity\",\n \"webkitTextSizeAdjust\",\n \"webkitTextStroke\",\n \"webkitTextStrokeColor\",\n \"webkitTextStrokeWidth\",\n \"webkitTransform\",\n \"webkitTransformOrigin\",\n \"webkitTransformOriginX\",\n \"webkitTransformOriginY\",\n \"webkitTransformOriginZ\",\n \"webkitTransformStyle\",\n \"webkitTransition\",\n \"webkitTransitionDelay\",\n \"webkitTransitionDuration\",\n \"webkitTransitionProperty\",\n \"webkitTransitionTimingFunction\",\n \"webkitUserDrag\",\n \"webkitUserModify\",\n \"webkitUserSelect\",\n \"webkitWritingMode\",\n \"whiteSpace\",\n \"whiteSpaceCollapse\",\n \"widows\",\n \"width\",\n \"willChange\",\n \"wordBreak\",\n \"wordSpacing\",\n \"wordWrap\",\n \"writingMode\",\n \"x\",\n \"y\",\n \"zIndex\",\n \"zoom\",\n] as const;\n","import { BLACKLISTED_COALESCE_UNITS, UNITS } from \"./constants\";\n\nexport class ValueUnit<T = any, U = (typeof UNITS)[number] | string> {\n constructor(\n public value: T,\n public unit?: U,\n public superType?: string[],\n public subProperty?: string,\n public property?: string,\n public targets?: HTMLElement[],\n ) {}\n\n setSubProperty(subProperty: any) {\n this.subProperty = subProperty;\n }\n\n setProperty(property: any) {\n this.property = property;\n }\n\n setTargets(targets: HTMLElement[]) {\n this.targets = targets;\n }\n\n valueOf() {\n return this.value;\n }\n\n toString() {\n if (this.value == null) {\n return \"\";\n }\n\n if (this.unit == null || this.unit === \"string\") {\n return `${this.value}`;\n }\n\n if (this.unit === \"color\") {\n const values = Object.values(this.value);\n const name = this.superType?.[1] ?? \"rgb\";\n\n return `${name}(${values.join(\", \")})`;\n } else if (this.unit === \"var\") {\n return `var(${this.value})`;\n } else if (this.unit === \"calc\") {\n return `calc(${this.value})`;\n } else {\n return `${this.value}${this.unit}`;\n }\n }\n\n toJSON() {\n return this.valueOf();\n }\n\n clone(): ValueUnit<T> {\n return new ValueUnit(\n this.value,\n this.unit,\n this.superType,\n this.subProperty,\n this.property,\n );\n }\n\n coalesce(right?: ValueUnit): ValueUnit {\n if (right == null) {\n return this;\n }\n if (BLACKLISTED_COALESCE_UNITS.includes(this.unit as any)) {\n return this;\n }\n\n return new ValueUnit(\n this.value,\n this.unit ?? right.unit,\n this.superType ?? right.superType,\n this.subProperty ?? right.subProperty,\n this.property ?? right.property,\n this.targets ?? right.targets,\n ) as any;\n }\n}\n\nexport class FunctionValue<T = any, N extends string = string> {\n constructor(\n public name: N,\n public args: Array<ValueUnit<T> | FunctionValue<T>>,\n ) {\n args.forEach((v) => {\n this.setSubProperty(name);\n });\n }\n\n setSubProperty(subProperty: any) {\n this.args.forEach((v) => v.setSubProperty(subProperty));\n }\n\n setProperty(property: any) {\n this.args.forEach((v) => v.setProperty(property));\n }\n\n setTargets(targets: HTMLElement[]) {\n this.args.forEach((v) => v.setTargets(targets));\n }\n\n valueOf(): any[] {\n return this.args.map((v) => v.valueOf());\n }\n\n toString(): string {\n return `${this.name}(${this.args.map((v) => v.toString()).join(\", \")})`;\n }\n\n toJSON() {\n return {\n [this.name]: this.args.map((v) => v.toJSON()),\n };\n }\n\n clone(): FunctionValue<T> {\n return new FunctionValue(\n this.name,\n this.args.map((v) => v.clone()),\n );\n }\n}\n\nexport class ValueArray<T = any> extends Array<ValueUnit<T> | FunctionValue<T>> {\n constructor(...args: Array<ValueUnit<T> | FunctionValue<T>>) {\n super(...args);\n }\n\n setSubProperty(subProperty: any) {\n this.forEach((v) => v.setSubProperty(subProperty));\n }\n\n setProperty(property: any) {\n this.forEach((v) => v.setProperty(property));\n }\n\n setTargets(targets: HTMLElement[]) {\n this.forEach((v) => v.setTargets(targets));\n }\n\n valueOf() {\n return this.map((v) => v.valueOf());\n }\n\n toString() {\n return this.map((v) => v.toString()).join(\" \");\n }\n\n toJSON() {\n return this.map((v) => v.toJSON());\n }\n\n clone() {\n return new ValueArray(...this.map((v) => v.clone()));\n }\n}\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","export default {}","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + opts.word.length, stringRepresentation)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.38'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","import postcss from './postcss.js'\n\nexport default postcss\n\nexport const stringify = postcss.stringify\nexport const fromJSON = postcss.fromJSON\nexport const plugin = postcss.plugin\nexport const parse = postcss.parse\nexport const list = postcss.list\n\nexport const document = postcss.document\nexport const comment = postcss.comment\nexport const atRule = postcss.atRule\nexport const rule = postcss.rule\nexport const decl = postcss.decl\nexport const root = postcss.root\n\nexport const CssSyntaxError = postcss.CssSyntaxError\nexport const Declaration = postcss.Declaration\nexport const Container = postcss.Container\nexport const Processor = postcss.Processor\nexport const Document = postcss.Document\nexport const Comment = postcss.Comment\nexport const Warning = postcss.Warning\nexport const AtRule = postcss.AtRule\nexport const Result = postcss.Result\nexport const Input = postcss.Input\nexport const Rule = postcss.Rule\nexport const Root = postcss.Root\nexport const Node = postcss.Node\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\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 for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i);\n // check to see if we are dealing with a valid hex char [a-f|0-9]\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57;\n // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n spaceTerminated = code === 32;\n if (!valid) {\n break;\n }\n hex += lower[i];\n }\n if (hex.length === 0) {\n return undefined;\n }\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF;\n // 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 if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\nvar CONTAINS_ESCAPE = /\\\\/;\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n if (!needToProcess) {\n return str;\n }\n var ret = \"\";\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n }\n\n // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n }\n\n // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n if (str.length === i + 1) {\n ret += str[i];\n }\n continue;\n }\n ret += str[i];\n }\n return ret;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\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 while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n return undefined;\n }\n obj = obj[prop];\n }\n return obj;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\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 while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n obj[prop] = {};\n }\n obj = obj[prop];\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n if (commentEnd < 0) {\n return s;\n }\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n s = s + str.slice(lastEnd);\n return s;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.unesc = exports.stripComments = exports.getProp = exports.ensureObject = void 0;\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\nexports.unesc = _unesc[\"default\"];\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\nexports.getProp = _getProp[\"default\"];\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\nexports.ensureObject = _ensureObject[\"default\"];\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\nexports.stripComments = _stripComments[\"default\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _util = require(\"../util\");\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n var cloned = new obj.constructor();\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n var value = obj[i];\n var type = typeof value;\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 return cloned;\n};\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\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 var _proto = Node.prototype;\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\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 this.remove();\n }\n return this;\n };\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\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 _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\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 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 /**\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 _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n this.raws[name] = valueEscaped;\n }\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 _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 if (this.raws) {\n delete this.raws[name];\n }\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 _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 if (this.source.end.line < line) {\n return false;\n }\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n return true;\n }\n return undefined;\n };\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\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 if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\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 return Node;\n}();\nexports[\"default\"] = Node;\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.CLASS = exports.ATTRIBUTE = 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;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar types = _interopRequireWildcard(require(\"./types\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && 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; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); 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.\"); }\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); }\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; }\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n function Container(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n if (!_this.nodes) {\n _this.nodes = [];\n }\n return _this;\n }\n var _proto = Container.prototype;\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n return this;\n };\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n return this.nodes.indexOf(child);\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 for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n return this;\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 this.nodes = [];\n return this;\n };\n _proto.empty = function empty() {\n return this.removeAll();\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 for (var id in this.indexes) {\n index = this.indexes[id];\n if (oldIndex <= index) {\n this.indexes[id] = index + 1;\n }\n }\n return this;\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 for (var id in this.indexes) {\n index = this.indexes[id];\n if (index <= oldIndex) {\n this.indexes[id] = index + 1;\n }\n }\n return this;\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 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 /**\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 _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 _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 _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n if (!this.indexes) {\n this.indexes = {};\n }\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n if (!this.length) {\n return undefined;\n }\n var index, result;\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n if (result === false) {\n break;\n }\n this.indexes[id] += 1;\n }\n delete this.indexes[id];\n if (result === false) {\n return false;\n }\n };\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n if (result === false) {\n return false;\n }\n });\n };\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n _proto.split = function split(callback) {\n var _this11 = this;\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n return memo;\n }, []);\n };\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n _proto.toString = function toString() {\n return this.map(String).join('');\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 return Container;\n}(_node[\"default\"]);\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n function Root(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n var _proto = Root.prototype;\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 _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 _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n return Root;\n}(_container[\"default\"]);\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n function Selector(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n return Selector;\n}(_container[\"default\"]);\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;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n function ClassName(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n var _proto = ClassName.prototype;\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\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 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 this._value = v;\n }\n }]);\n return ClassName;\n}(_node[\"default\"]);\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n function Comment(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n return Comment;\n}(_node[\"default\"]);\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n function ID(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n var _proto = ID.prototype;\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n return ID;\n}(_node[\"default\"]);\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n var _proto = Namespace.prototype;\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\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 if (this.raws) {\n delete this.raws.namespace;\n }\n return;\n }\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\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 if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n return Namespace;\n}(_node[\"default\"]);\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n function Tag(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n return Tag;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n function String(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n return String;\n}(_node[\"default\"]);\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n function Pseudo(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n var _proto = Pseudo.prototype;\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 return Pseudo;\n}(_container[\"default\"]);\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nexports.unescapeValue = unescapeValue;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nvar _CSSESC_QUOTE_OPTIONS;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar deprecate = require(\"util-deprecate\");\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.\");\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n unescaped = (0, _unesc[\"default\"])(unescaped);\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n if (opts.value === undefined) {\n return opts;\n }\n warnOfDeprecatedConstructor();\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n if (!opts.raws) {\n opts.raws = {};\n }\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n function Attribute(opts) {\n var _this;\n if (opts === void 0) {\n opts = {};\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 /**\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 var _proto = Attribute.prototype;\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n var quoteMark = this._determineQuoteMark(options);\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\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 _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n this._syncRawValue();\n }\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 _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 if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\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 if (quoteValue.length < escaped.length) {\n return quote;\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 /**\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 _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n return quoteMark;\n };\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\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 _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\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 _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n var attrSpaces = this._spacesFor(spaceName);\n return concat(this.stringifyProperty(name), attrSpaces);\n }\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 _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n var attributeSpaces = this._spacesFor(\"attribute\");\n count += attributeSpaces.before.length;\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n if (name === \"attributeNS\") {\n return count;\n }\n count += this.namespaceString.length;\n if (this.namespace) {\n count += 1;\n }\n if (name === \"attribute\") {\n return count;\n }\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n var operatorSpaces = this._spacesFor(\"operator\");\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n count += operator.length;\n count += operatorSpaces.after.length;\n var valueSpaces = this._spacesFor(\"value\");\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n if (name === \"value\") {\n return value ? count : -1;\n }\n count += value.length;\n count += valueSpaces.after.length;\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n count += insensitiveSpaces.before.length;\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n return -1;\n };\n _proto.toString = function toString() {\n var _this2 = this;\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\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 return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\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 /**\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 key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\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 set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\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 set:\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 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 if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n this._value = unescaped;\n this._quoteMark = quoteMark;\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"insensitive\",\n get: function get() {\n return this._insensitive;\n }\n\n /**\n * Set the case insensitive flag.\n * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag`\n * of the attribute is updated accordingly.\n *\n * @param {true | false} insensitive true if the attribute should match case-insensitively.\n */,\n set: function set(insensitive) {\n if (!insensitive) {\n this._insensitive = false;\n\n // \"i\" and \"I\" can be used in \"this.raws.insensitiveFlag\" to store the original notation.\n // When setting `attr.insensitive = false` both should be erased to ensure correct serialization.\n if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) {\n this.raws.insensitiveFlag = undefined;\n }\n }\n this._insensitive = insensitive;\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 this._attribute = name;\n }\n }]);\n return Attribute;\n}(_namespace[\"default\"]);\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);\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n function Universal(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n return Universal;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n function Combinator(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n return Combinator;\n}(_node[\"default\"]);\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n function Nesting(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n return Nesting;\n}(_node[\"default\"]);\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.word = exports.tilde = exports.tab = exports.str = exports.space = exports.slash = exports.singleQuote = exports.semicolon = exports.plus = exports.pipe = exports.openSquare = exports.openParenthesis = exports.newline = exports.greaterThan = exports.feed = exports.equals = exports.doubleQuote = exports.dollar = exports.cr = exports.comment = exports.comma = exports.combinator = exports.colon = exports.closeSquare = exports.closeParenthesis = exports.caret = exports.bang = exports.backslash = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n\n// Expose aliases primarily for readability.\nexports.tab = tab;\nvar str = singleQuote;\n\n// No good single character representation!\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.FIELDS = void 0;\nexports[\"default\"] = tokenize;\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar _unescapable, _wordDelimiters;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && 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; }\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\";\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\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 */\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n do {\n code = css.charCodeAt(next);\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 return next - 1;\n}\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 */\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n if (unescapable[code]) {\n // just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0;\n // consume up to 6 hex chars\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6);\n // if fewer than 6 hex chars, a trailing space ends the escape\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 return next;\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;\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 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 while (start < length) {\n code = css.charCodeAt(start);\n if (code === t.newline) {\n offset = start;\n line += 1;\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 do {\n next += 1;\n code = css.charCodeAt(next);\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 tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\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 tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n\n // Consume these characters as single tokens.\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 case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n unclosed('quote', quote);\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n if (next === 0) {\n unclosed('comment', '*/');\n }\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\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 end = next + 1;\n break;\n }\n\n // Ensure that the token structure remains consistent\n tokens.push([tokenType,\n // [0] Token type\n line,\n // [1] Starting line\n start - offset,\n // [2] Starting column\n endLine,\n // [3] Ending line\n endColumn,\n // [4] Ending column\n start,\n // [5] Start position / Source index\n end // [6] End position\n ]);\n\n // Reset offset for the next token\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n start = end;\n }\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\nvar _util = require(\"./util\");\nvar _WHITESPACE_TOKENS, _Object$assign;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && 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; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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));\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\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}\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}\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\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}\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n if (typeof value !== \"string\") {\n return;\n }\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n return node;\n}\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\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}\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\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 sourceIndex: 0\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n var _proto = Parser.prototype;\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n return _this.rule.error(message, errorOptions);\n };\n };\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\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 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 if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\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 if (this.options.lossy) {\n break;\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 if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n break;\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 if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n if (rawValue) {\n node.raws.namespace += content;\n }\n lastAdded = 'namespace';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n break;\n }\n // Falls through\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\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 spaceAfterMeaningfulToken = false;\n break;\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals &&\n // 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 if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n node.attribute = (node.attribute || \"\") + content;\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n if (_rawValue) {\n node.raws.attribute += content;\n }\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !(spaceAfterMeaningfulToken || node.quoteMark)) {\n var _unescaped = (0, _util.unesc)(content);\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n lastAdded = 'insensitive';\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\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 if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n spaceAfterMeaningfulToken = false;\n break;\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 var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\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 case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\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 node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\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 break;\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n pos++;\n }\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\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 _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\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 if (space) {\n spaces.before = space;\n space = \"\";\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 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 return nodes;\n }\n\n /**\n *\n * @param {*} nodes\n */;\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\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 if (rawSpace === space) {\n rawSpace = undefined;\n }\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\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 _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 if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\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 _proto.combinator = function combinator() {\n var _this3 = this;\n if (this.content() === '|') {\n return this.namespace();\n }\n // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n if (nodes.length > 0) {\n var last = this.current.last;\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n return;\n }\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n var node;\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]]) {\n // pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\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 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 if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n var spaces = {};\n var raws = {\n spaces: {}\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 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 if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n return this.newNode(node);\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 this.current._inferEndPosition();\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n },\n sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS]\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\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 _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\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 _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\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 _proto.unexpectedPipe = function unexpectedPipe() {\n return this.error(\"Unexpected '|'.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\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 this.unexpectedPipe();\n };\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n if (nextContent === \"|\") {\n this.position++;\n return;\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 _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position])\n },\n sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS]\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\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 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 while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\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 if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n var pseudoStr = '';\n var startingToken = this.currToken;\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\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 _proto.space = function space() {\n var content = this.content();\n // Handle space before and after the selector\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 _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 _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\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 _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n var nextToken = this.nextToken;\n var word = this.content();\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 if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n nextToken = this.nextToken;\n }\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\';\n // Allow decimal numbers percent in @keyframes\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 });\n // Eliminate Sass interpolations from the list of id indexes\n var interpolations = indexesOf(word, '#{');\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\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 if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\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 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 _this5.newNode(node, namespace);\n // Ensure that the namespace is used only once\n namespace = null;\n });\n this.position++;\n };\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n return this.splitWord(namespace);\n };\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n this.current._inferEndPosition();\n return this.root;\n };\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n case tokens.comment:\n this.comment();\n break;\n case tokens.openParenthesis:\n this.parentheses();\n break;\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n break;\n case tokens.openSquare:\n this.attribute();\n break;\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n case tokens.colon:\n this.pseudo();\n break;\n case tokens.comma:\n this.comma();\n break;\n case tokens.asterisk:\n this.universal();\n break;\n case tokens.ampersand:\n this.nesting();\n break;\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n case tokens.closeSquare:\n this.missingSquareBracket();\n case tokens.semicolon:\n this.missingBackslash();\n default:\n this.unexpected();\n }\n }\n\n /**\n * Helpers\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 var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\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 namespace = true;\n }\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n return this.current.append(node);\n };\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\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 var searchPosition = startPosition;\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 return -1;\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 return Parser;\n}();\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _parser = _interopRequireDefault(require(\"./parser\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n this.funcRes = null;\n this.options = options;\n }\n var _proto = Processor.prototype;\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n _proto._run = function _run(rule, options) {\n var _this = this;\n if (options === void 0) {\n options = {};\n }\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\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 _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var root = this._root(rule, options);\n var transform = this.func(root);\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n var string = undefined;\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\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 _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\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 _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\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 _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\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 _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\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 _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 /**\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 _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n return result.string || result.root.toString();\n };\n return Processor;\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;\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\nvar _className = _interopRequireDefault(require(\"./className\"));\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\nvar _comment = _interopRequireDefault(require(\"./comment\"));\nvar _id = _interopRequireDefault(require(\"./id\"));\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\nvar _root = _interopRequireDefault(require(\"./root\"));\nvar _selector = _interopRequireDefault(require(\"./selector\"));\nvar _string = _interopRequireDefault(require(\"./string\"));\nvar _tag = _interopRequireDefault(require(\"./tag\"));\nvar _universal = _interopRequireDefault(require(\"./universal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\nexports.attribute = attribute;\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\nexports.className = className;\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\nexports.combinator = combinator;\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\nexports.comment = comment;\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\nexports.id = id;\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\nexports.nesting = nesting;\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\nexports.pseudo = pseudo;\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\nexports.root = root;\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\nexports.selector = selector;\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\nexports.string = string;\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\nexports.tag = tag;\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\nexports.isContainer = isContainer;\nexports.isIdentifier = void 0;\nexports.isNamespace = isNamespace;\nexports.isNesting = void 0;\nexports.isNode = isNode;\nexports.isPseudo = void 0;\nexports.isPseudoClass = isPseudoClass;\nexports.isPseudoElement = isPseudoElement;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0;\nvar _types = require(\"./types\");\nvar _IS_TYPE;\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);\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\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;\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}\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\nvar _types = require(\"./types\");\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});\nvar _constructors = require(\"./constructors\");\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});\nvar _guards = require(\"./guards\");\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;\nvar _processor = _interopRequireDefault(require(\"./processor\"));\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && 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; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","let parser = require('postcss-selector-parser')\n\nfunction parse (str, rule) {\n let nodes\n let saver = parser(parsed => {\n nodes = parsed\n })\n try {\n saver.processSync(str)\n } catch (e) {\n if (str.includes(':')) {\n throw rule ? rule.error('Missed semicolon') : e\n } else {\n throw rule ? rule.error(e.message) : e\n }\n }\n return nodes.at(0)\n}\n\nfunction replace (nodes, parent) {\n let replaced = false\n nodes.each(i => {\n if (i.type === 'nesting') {\n let clonedParent = parent.clone()\n if (i.value !== '&') {\n i.replaceWith(parse(i.value.replace('&', clonedParent.toString())))\n } else {\n i.replaceWith(clonedParent)\n }\n replaced = true\n } else if (i.nodes) {\n if (replace(i, parent)) {\n replaced = true\n }\n }\n })\n return replaced\n}\n\nfunction selectors (parent, child) {\n let result = []\n parent.selectors.forEach(i => {\n let parentNode = parse(i, parent)\n\n child.selectors.forEach(j => {\n if (j.length) {\n let node = parse(j, child)\n let replaced = replace(node, parentNode)\n if (!replaced) {\n node.prepend(parser.combinator({ value: ' ' }))\n node.prepend(parentNode.clone())\n }\n result.push(node.toString())\n }\n })\n })\n return result\n}\n\nfunction pickComment (comment, after) {\n if (comment && comment.type === 'comment') {\n after.after(comment)\n return comment\n } else {\n return after\n }\n}\n\nfunction createFnAtruleChilds (bubble) {\n return function atruleChilds (rule, atrule, bubbling) {\n let children = []\n atrule.each(child => {\n if (child.type === 'comment') {\n children.push(child)\n } else if (child.type === 'decl') {\n children.push(child)\n } else if (child.type === 'rule' && bubbling) {\n child.selectors = selectors(rule, child)\n } else if (child.type === 'atrule') {\n if (child.nodes && bubble[child.name]) {\n atruleChilds(rule, child, true)\n } else {\n children.push(child)\n }\n }\n })\n if (bubbling) {\n if (children.length) {\n let clone = rule.clone({ nodes: [] })\n for (let child of children) {\n clone.append(child)\n }\n atrule.prepend(clone)\n }\n }\n }\n}\n\nfunction pickDeclarations (selector, declarations, after, Rule) {\n let parent = new Rule({\n selector,\n nodes: []\n })\n\n for (let declaration of declarations) {\n parent.append(declaration)\n }\n\n after.after(parent)\n return parent\n}\n\nfunction atruleNames (defaults, custom) {\n let list = {}\n for (let i of defaults) {\n list[i] = true\n }\n if (custom) {\n for (let i of custom) {\n let name = i.replace(/^@/, '')\n list[name] = true\n }\n }\n return list\n}\n\nmodule.exports = (opts = {}) => {\n let bubble = atruleNames(['media', 'supports'], opts.bubble)\n let atruleChilds = createFnAtruleChilds(bubble)\n let unwrap = atruleNames(\n [\n 'document',\n 'font-face',\n 'keyframes',\n '-webkit-keyframes',\n '-moz-keyframes'\n ],\n opts.unwrap\n )\n let preserveEmpty = opts.preserveEmpty\n\n return {\n postcssPlugin: 'postcss-nested',\n Rule (rule, { Rule }) {\n let unwrapped = false\n let after = rule\n let copyDeclarations = false\n let declarations = []\n\n rule.each(child => {\n if (child.type === 'rule') {\n if (declarations.length) {\n after = pickDeclarations(rule.selector, declarations, after, Rule)\n declarations = []\n }\n\n copyDeclarations = true\n unwrapped = true\n child.selectors = selectors(rule, child)\n after = pickComment(child.prev(), after)\n after.after(child)\n after = child\n } else if (child.type === 'atrule') {\n if (declarations.length) {\n after = pickDeclarations(rule.selector, declarations, after, Rule)\n declarations = []\n }\n\n if (child.name === 'at-root') {\n unwrapped = true\n atruleChilds(rule, child, false)\n\n let nodes = child.nodes\n if (child.params) {\n nodes = new Rule({ selector: child.params, nodes })\n }\n\n after.after(nodes)\n after = nodes\n child.remove()\n } else if (bubble[child.name]) {\n copyDeclarations = true\n unwrapped = true\n atruleChilds(rule, child, true)\n after = pickComment(child.prev(), after)\n after.after(child)\n after = child\n } else if (unwrap[child.name]) {\n copyDeclarations = true\n unwrapped = true\n atruleChilds(rule, child, false)\n after = pickComment(child.prev(), after)\n after.after(child)\n after = child\n } else if (copyDeclarations) {\n declarations.push(child)\n }\n } else if (child.type === 'decl' && copyDeclarations) {\n declarations.push(child)\n }\n })\n\n if (declarations.length) {\n after = pickDeclarations(rule.selector, declarations, after, Rule)\n }\n\n if (unwrapped && preserveEmpty !== true) {\n rule.raws.semicolon = true\n if (rule.nodes.length === 0) rule.remove()\n }\n }\n }\n}\nmodule.exports.postcss = true\n","\"use strict\";\n\nvar pattern = /-(\\w|$)/g;\n\nvar callback = function callback(dashChar, char) {\n\treturn char.toUpperCase();\n};\n\nvar camelCaseCSS = function camelCaseCSS(property) {\n\tproperty = property.toLowerCase();\n\n\t// NOTE :: IE8's \"styleFloat\" is intentionally not supported\n\tif (property === \"float\") {\n\t\treturn \"cssFloat\";\n\t}\n\t// Microsoft vendor-prefixes are uniquely cased\n\telse if (property.charCodeAt(0) === 45&& property.charCodeAt(1) === 109&& property.charCodeAt(2) === 115&& property.charCodeAt(3) === 45) {\n\t\t\treturn property.substr(1).replace(pattern, callback);\n\t\t} else {\n\t\t\treturn property.replace(pattern, callback);\n\t\t}\n};\n\nmodule.exports = camelCaseCSS;\n","let camelcase = require('camelcase-css')\n\nlet UNITLESS = {\n boxFlex: true,\n boxFlexGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n}\n\nfunction atRule(node) {\n if (typeof node.nodes === 'undefined') {\n return true\n } else {\n return process(node)\n }\n}\n\nfunction process(node) {\n let name\n let result = {}\n\n node.each(child => {\n if (child.type === 'atrule') {\n name = '@' + child.name\n if (child.params) name += ' ' + child.params\n if (typeof result[name] === 'undefined') {\n result[name] = atRule(child)\n } else if (Array.isArray(result[name])) {\n result[name].push(atRule(child))\n } else {\n result[name] = [result[name], atRule(child)]\n }\n } else if (child.type === 'rule') {\n let body = process(child)\n if (result[child.selector]) {\n for (let i in body) {\n result[child.selector][i] = body[i]\n }\n } else {\n result[child.selector] = body\n }\n } else if (child.type === 'decl') {\n if (child.prop[0] === '-' && child.prop[1] === '-') {\n name = child.prop\n } else if (child.parent && child.parent.selector === ':export') {\n name = child.prop\n } else {\n name = camelcase(child.prop)\n }\n let value = child.value\n if (!isNaN(child.value) && UNITLESS[name]) {\n value = parseFloat(child.value)\n }\n if (child.important) value += ' !important'\n if (typeof result[name] === 'undefined') {\n result[name] = value\n } else if (Array.isArray(result[name])) {\n result[name].push(value)\n } else {\n result[name] = [result[name], value]\n }\n }\n })\n return result\n}\n\nmodule.exports = process\n","let postcss = require('postcss')\n\nlet IMPORTANT = /\\s*!important\\s*$/i\n\nlet UNITLESS = {\n 'box-flex': true,\n 'box-flex-group': true,\n 'column-count': true,\n 'flex': true,\n 'flex-grow': true,\n 'flex-positive': true,\n 'flex-shrink': true,\n 'flex-negative': true,\n 'font-weight': true,\n 'line-clamp': true,\n 'line-height': true,\n 'opacity': true,\n 'order': true,\n 'orphans': true,\n 'tab-size': true,\n 'widows': true,\n 'z-index': true,\n 'zoom': true,\n 'fill-opacity': true,\n 'stroke-dashoffset': true,\n 'stroke-opacity': true,\n 'stroke-width': true\n}\n\nfunction dashify(str) {\n return str\n .replace(/([A-Z])/g, '-$1')\n .replace(/^ms-/, '-ms-')\n .toLowerCase()\n}\n\nfunction decl(parent, name, value) {\n if (value === false || value === null) return\n\n if (!name.startsWith('--')) {\n name = dashify(name)\n }\n\n if (typeof value === 'number') {\n if (value === 0 || UNITLESS[name]) {\n value = value.toString()\n } else {\n value += 'px'\n }\n }\n\n if (name === 'css-float') name = 'float'\n\n if (IMPORTANT.test(value)) {\n value = value.replace(IMPORTANT, '')\n parent.push(postcss.decl({ prop: name, value, important: true }))\n } else {\n parent.push(postcss.decl({ prop: name, value }))\n }\n}\n\nfunction atRule(parent, parts, value) {\n let node = postcss.atRule({ name: parts[1], params: parts[3] || '' })\n if (typeof value === 'object') {\n node.nodes = []\n parse(value, node)\n }\n parent.push(node)\n}\n\nfunction parse(obj, parent) {\n let name, value, node\n for (name in obj) {\n value = obj[name]\n if (value === null || typeof value === 'undefined') {\n continue\n } else if (name[0] === '@') {\n let parts = name.match(/@(\\S+)(\\s+([\\W\\w]*)\\s*)?/)\n if (Array.isArray(value)) {\n for (let i of value) {\n atRule(parent, parts, i)\n }\n } else {\n atRule(parent, parts, value)\n }\n } else if (Array.isArray(value)) {\n for (let i of value) {\n decl(parent, name, i)\n }\n } else if (typeof value === 'object') {\n node = postcss.rule({ selector: name })\n parse(value, node)\n parent.push(node)\n } else {\n decl(parent, name, value)\n }\n }\n}\n\nmodule.exports = function (obj) {\n let root = postcss.root()\n parse(obj, root)\n return root\n}\n","let objectify = require('./objectifier')\n\nmodule.exports = function processResult(result) {\n if (console && console.warn) {\n result.warnings().forEach(warn => {\n let source = warn.plugin || 'PostCSS'\n console.warn(source + ': ' + warn.text)\n })\n }\n return objectify(result.root)\n}\n","let postcss = require('postcss')\n\nlet processResult = require('./process-result')\nlet parse = require('./parser')\n\nmodule.exports = function async(plugins) {\n let processor = postcss(plugins)\n return async input => {\n let result = await processor.process(input, {\n parser: parse,\n from: undefined\n })\n return processResult(result)\n }\n}\n","let postcss = require('postcss')\n\nlet processResult = require('./process-result')\nlet parse = require('./parser')\n\nmodule.exports = function (plugins) {\n let processor = postcss(plugins)\n return input => {\n let result = processor.process(input, { parser: parse, from: undefined })\n return processResult(result)\n }\n}\n","let objectify = require('./objectifier')\nlet parse = require('./parser')\nlet async = require('./async')\nlet sync = require('./sync')\n\nmodule.exports = {\n objectify,\n parse,\n async,\n sync\n}\n","import index from './index.js'\n\nexport default index\n\nexport const objectify = index.objectify\nexport const parse = index.parse\nexport const async = index.async\nexport const sync = index.sync\n","/*\n\ndidYouMean.js - A simple JavaScript matching engine\n===================================================\n\n[Available on GitHub](https://github.com/dcporter/didyoumean.js).\n\nA super-simple, highly optimized JS library for matching human-quality input to a list of potential\nmatches. You can use it to suggest a misspelled command-line utility option to a user, or to offer\nlinks to nearby valid URLs on your 404 page. (The examples below are taken from a personal project,\nmy [HTML5 business card](http://dcporter.aws.af.cm/me), which uses didYouMean.js to suggest correct\nURLs from misspelled ones, such as [dcporter.aws.af.cm/me/instagarm](http://dcporter.aws.af.cm/me/instagarm).)\nUses the [Levenshtein distance algorithm](https://en.wikipedia.org/wiki/Levenshtein_distance).\n\ndidYouMean.js works in the browser as well as in node.js. To install it for use in node:\n\n```\nnpm install didyoumean\n```\n\n\nExamples\n--------\n\nMatching against a list of strings:\n```\nvar input = 'insargrm'\nvar list = ['facebook', 'twitter', 'instagram', 'linkedin'];\nconsole.log(didYouMean(input, list));\n> 'instagram'\n// The method matches 'insargrm' to 'instagram'.\n\ninput = 'google plus';\nconsole.log(didYouMean(input, list));\n> null\n// The method was unable to find 'google plus' in the list of options.\n```\n\nMatching against a list of objects:\n```\nvar input = 'insargrm';\nvar list = [ { id: 'facebook' }, { id: 'twitter' }, { id: 'instagram' }, { id: 'linkedin' } ];\nvar key = 'id';\nconsole.log(didYouMean(input, list, key));\n> 'instagram'\n// The method returns the matching value.\n\ndidYouMean.returnWinningObject = true;\nconsole.log(didYouMean(input, list, key));\n> { id: 'instagram' }\n// The method returns the matching object.\n```\n\n\ndidYouMean(str, list, [key])\n----------------------------\n\n- str: The string input to match.\n- list: An array of strings or objects to match against.\n- key (OPTIONAL): If your list array contains objects, you must specify the key which contains the string\n to match against.\n\nReturns: the closest matching string, or null if no strings exceed the threshold.\n\n\nOptions\n-------\n\nOptions are set on the didYouMean function object. You may change them at any time.\n\n### threshold\n\n By default, the method will only return strings whose edit distance is less than 40% (0.4x) of their length.\n For example, if a ten-letter string is five edits away from its nearest match, the method will return null.\n\n You can control this by setting the \"threshold\" value on the didYouMean function. For example, to set the\n edit distance threshold to 50% of the input string's length:\n\n ```\n didYouMean.threshold = 0.5;\n ```\n\n To return the nearest match no matter the threshold, set this value to null.\n\n### thresholdAbsolute\n\n This option behaves the same as threshold, but instead takes an integer number of edit steps. For example,\n if thresholdAbsolute is set to 20 (the default), then the method will only return strings whose edit distance\n is less than 20. Both options apply.\n\n### caseSensitive\n\n By default, the method will perform case-insensitive comparisons. If you wish to force case sensitivity, set\n the \"caseSensitive\" value to true:\n\n ```\n didYouMean.caseSensitive = true;\n ```\n\n### nullResultValue\n\n By default, the method will return null if there is no sufficiently close match. You can change this value here.\n\n### returnWinningObject\n\n By default, the method will return the winning string value (if any). If your list contains objects rather\n than strings, you may set returnWinningObject to true.\n \n ```\n didYouMean.returnWinningObject = true;\n ```\n \n This option has no effect on lists of strings.\n\n### returnFirstMatch\n \n By default, the method will search all values and return the closest match. If you're simply looking for a \"good-\n enough\" match, you can set your thresholds appropriately and set returnFirstMatch to true to substantially speed\n things up.\n\n\nLicense\n-------\n\ndidYouMean copyright (c) 2013-2014 Dave Porter.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License\n[here](http://www.apache.org/licenses/LICENSE-2.0).\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n*/\n(function() {\n \"use strict\";\n\n // The didYouMean method.\n function didYouMean(str, list, key) {\n if (!str) return null;\n\n // If we're running a case-insensitive search, smallify str.\n if (!didYouMean.caseSensitive) { str = str.toLowerCase(); }\n\n // Calculate the initial value (the threshold) if present.\n var thresholdRelative = didYouMean.threshold === null ? null : didYouMean.threshold * str.length,\n thresholdAbsolute = didYouMean.thresholdAbsolute,\n winningVal;\n if (thresholdRelative !== null && thresholdAbsolute !== null) winningVal = Math.min(thresholdRelative, thresholdAbsolute);\n else if (thresholdRelative !== null) winningVal = thresholdRelative;\n else if (thresholdAbsolute !== null) winningVal = thresholdAbsolute;\n else winningVal = null;\n\n // Get the edit distance to each option. If the closest one is less than 40% (by default) of str's length,\n // then return it.\n var winner, candidate, testCandidate, val,\n i, len = list.length;\n for (i = 0; i < len; i++) {\n // Get item.\n candidate = list[i];\n // If there's a key, get the candidate value out of the object.\n if (key) { candidate = candidate[key]; }\n // Gatekeep.\n if (!candidate) { continue; }\n // If we're running a case-insensitive search, smallify the candidate.\n if (!didYouMean.caseSensitive) { testCandidate = candidate.toLowerCase(); }\n else { testCandidate = candidate; }\n // Get and compare edit distance.\n val = getEditDistance(str, testCandidate, winningVal);\n // If this value is smaller than our current winning value, OR if we have no winning val yet (i.e. the\n // threshold option is set to null, meaning the caller wants a match back no matter how bad it is), then\n // this is our new winner.\n if (winningVal === null || val < winningVal) {\n winningVal = val;\n // Set the winner to either the value or its object, depending on the returnWinningObject option.\n if (key && didYouMean.returnWinningObject) winner = list[i];\n else winner = candidate;\n // If we're returning the first match, return it now.\n if (didYouMean.returnFirstMatch) return winner;\n }\n }\n\n // If we have a winner, return it.\n return winner || didYouMean.nullResultValue;\n }\n\n // Set default options.\n didYouMean.threshold = 0.4;\n didYouMean.thresholdAbsolute = 20;\n didYouMean.caseSensitive = false;\n didYouMean.nullResultValue = null;\n didYouMean.returnWinningObject = null;\n didYouMean.returnFirstMatch = false;\n\n // Expose.\n // In node...\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = didYouMean;\n }\n // Otherwise...\n else {\n window.didYouMean = didYouMean;\n }\n\n var MAX_INT = Math.pow(2,32) - 1; // We could probably go higher than this, but for practical reasons let's not.\n function getEditDistance(a, b, max) {\n // Handle null or undefined max.\n max = max || max === 0 ? max : MAX_INT;\n\n var lena = a.length;\n var lenb = b.length;\n\n // Fast path - no A or B.\n if (lena === 0) return Math.min(max + 1, lenb);\n if (lenb === 0) return Math.min(max + 1, lena);\n\n // Fast path - length diff larger than max.\n if (Math.abs(lena - lenb) > max) return max + 1;\n\n // Slow path.\n var matrix = [],\n i, j, colMin, minJ, maxJ;\n\n // Set up the first row ([0, 1, 2, 3, etc]).\n for (i = 0; i <= lenb; i++) { matrix[i] = [i]; }\n\n // Set up the first column (same).\n for (j = 0; j <= lena; j++) { matrix[0][j] = j; }\n\n // Loop over the rest of the columns.\n for (i = 1; i <= lenb; i++) {\n colMin = MAX_INT;\n minJ = 1;\n if (i > max) minJ = i - max;\n maxJ = lenb + 1;\n if (maxJ > max + i) maxJ = max + i;\n // Loop over the rest of the rows.\n for (j = 1; j <= lena; j++) {\n // If j is out of bounds, just put a large value in the slot.\n if (j < minJ || j > maxJ) {\n matrix[i][j] = max + 1;\n }\n\n // Otherwise do the normal Levenshtein thing.\n else {\n // If the characters are the same, there's no change in edit distance.\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n // Otherwise, see if we're substituting, inserting or deleting.\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // Substitute\n Math.min(matrix[i][j - 1] + 1, // Insert\n matrix[i - 1][j] + 1)); // Delete\n }\n }\n\n // Either way, update colMin.\n if (matrix[i][j] < colMin) colMin = matrix[i][j];\n }\n\n // If this column's minimum is greater than the allowed maximum, there's no point\n // in going on with life.\n if (colMin > max) return max + 1;\n }\n // If we made it this far without running into the max, then return the final matrix value.\n return matrix[lenb][lena];\n }\n\n})();\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/@alloc/quick-lru/index.js\nvar require_quick_lru = __commonJS({\n \"node_modules/@alloc/quick-lru/index.js\"(exports, module) {\n \"use strict\";\n var QuickLRU = class {\n constructor(options = {}) {\n if (!(options.maxSize && options.maxSize > 0)) {\n throw new TypeError(\"`maxSize` must be a number greater than 0\");\n }\n if (typeof options.maxAge === \"number\" && options.maxAge === 0) {\n throw new TypeError(\"`maxAge` must be a number greater than 0\");\n }\n this.maxSize = options.maxSize;\n this.maxAge = options.maxAge || Infinity;\n this.onEviction = options.onEviction;\n this.cache = /* @__PURE__ */ new Map();\n this.oldCache = /* @__PURE__ */ new Map();\n this._size = 0;\n }\n _emitEvictions(cache2) {\n if (typeof this.onEviction !== \"function\") {\n return;\n }\n for (const [key, item] of cache2) {\n this.onEviction(key, item.value);\n }\n }\n _deleteIfExpired(key, item) {\n if (typeof item.expiry === \"number\" && item.expiry <= Date.now()) {\n if (typeof this.onEviction === \"function\") {\n this.onEviction(key, item.value);\n }\n return this.delete(key);\n }\n return false;\n }\n _getOrDeleteIfExpired(key, item) {\n const deleted = this._deleteIfExpired(key, item);\n if (deleted === false) {\n return item.value;\n }\n }\n _getItemValue(key, item) {\n return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;\n }\n _peek(key, cache2) {\n const item = cache2.get(key);\n return this._getItemValue(key, item);\n }\n _set(key, value2) {\n this.cache.set(key, value2);\n this._size++;\n if (this._size >= this.maxSize) {\n this._size = 0;\n this._emitEvictions(this.oldCache);\n this.oldCache = this.cache;\n this.cache = /* @__PURE__ */ new Map();\n }\n }\n _moveToRecent(key, item) {\n this.oldCache.delete(key);\n this._set(key, item);\n }\n *_entriesAscending() {\n for (const item of this.oldCache) {\n const [key, value2] = item;\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value2);\n if (deleted === false) {\n yield item;\n }\n }\n }\n for (const item of this.cache) {\n const [key, value2] = item;\n const deleted = this._deleteIfExpired(key, value2);\n if (deleted === false) {\n yield item;\n }\n }\n }\n get(key) {\n if (this.cache.has(key)) {\n const item = this.cache.get(key);\n return this._getItemValue(key, item);\n }\n if (this.oldCache.has(key)) {\n const item = this.oldCache.get(key);\n if (this._deleteIfExpired(key, item) === false) {\n this._moveToRecent(key, item);\n return item.value;\n }\n }\n }\n set(key, value2, { maxAge = this.maxAge === Infinity ? void 0 : Date.now() + this.maxAge } = {}) {\n if (this.cache.has(key)) {\n this.cache.set(key, {\n value: value2,\n maxAge\n });\n } else {\n this._set(key, { value: value2, expiry: maxAge });\n }\n }\n has(key) {\n if (this.cache.has(key)) {\n return !this._deleteIfExpired(key, this.cache.get(key));\n }\n if (this.oldCache.has(key)) {\n return !this._deleteIfExpired(key, this.oldCache.get(key));\n }\n return false;\n }\n peek(key) {\n if (this.cache.has(key)) {\n return this._peek(key, this.cache);\n }\n if (this.oldCache.has(key)) {\n return this._peek(key, this.oldCache);\n }\n }\n delete(key) {\n const deleted = this.cache.delete(key);\n if (deleted) {\n this._size--;\n }\n return this.oldCache.delete(key) || deleted;\n }\n clear() {\n this.cache.clear();\n this.oldCache.clear();\n this._size = 0;\n }\n resize(newSize) {\n if (!(newSize && newSize > 0)) {\n throw new TypeError(\"`maxSize` must be a number greater than 0\");\n }\n const items = [...this._entriesAscending()];\n const removeCount = items.length - newSize;\n if (removeCount < 0) {\n this.cache = new Map(items);\n this.oldCache = /* @__PURE__ */ new Map();\n this._size = items.length;\n } else {\n if (removeCount > 0) {\n this._emitEvictions(items.slice(0, removeCount));\n }\n this.oldCache = new Map(items.slice(removeCount));\n this.cache = /* @__PURE__ */ new Map();\n this._size = 0;\n }\n this.maxSize = newSize;\n }\n *keys() {\n for (const [key] of this) {\n yield key;\n }\n }\n *values() {\n for (const [, value2] of this) {\n yield value2;\n }\n }\n *[Symbol.iterator]() {\n for (const item of this.cache) {\n const [key, value2] = item;\n const deleted = this._deleteIfExpired(key, value2);\n if (deleted === false) {\n yield [key, value2.value];\n }\n }\n for (const item of this.oldCache) {\n const [key, value2] = item;\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value2);\n if (deleted === false) {\n yield [key, value2.value];\n }\n }\n }\n }\n *entriesDescending() {\n let items = [...this.cache];\n for (let i = items.length - 1; i >= 0; --i) {\n const item = items[i];\n const [key, value2] = item;\n const deleted = this._deleteIfExpired(key, value2);\n if (deleted === false) {\n yield [key, value2.value];\n }\n }\n items = [...this.oldCache];\n for (let i = items.length - 1; i >= 0; --i) {\n const item = items[i];\n const [key, value2] = item;\n if (!this.cache.has(key)) {\n const deleted = this._deleteIfExpired(key, value2);\n if (deleted === false) {\n yield [key, value2.value];\n }\n }\n }\n }\n *entriesAscending() {\n for (const [key, value2] of this._entriesAscending()) {\n yield [key, value2.value];\n }\n }\n get size() {\n if (!this._size) {\n return this.oldCache.size;\n }\n let oldCacheSize = 0;\n for (const key of this.oldCache.keys()) {\n if (!this.cache.has(key)) {\n oldCacheSize++;\n }\n }\n return Math.min(this._size + oldCacheSize, this.maxSize);\n }\n };\n module.exports = QuickLRU;\n }\n});\n\n// node_modules/tailwindcss/src/value-parser/parse.js\nvar require_parse = __commonJS({\n \"node_modules/tailwindcss/src/value-parser/parse.js\"(exports, module) {\n var openParentheses = \"(\".charCodeAt(0);\n var closeParentheses = \")\".charCodeAt(0);\n var singleQuote = \"'\".charCodeAt(0);\n var doubleQuote = '\"'.charCodeAt(0);\n var backslash = \"\\\\\".charCodeAt(0);\n var slash = \"/\".charCodeAt(0);\n var comma = \",\".charCodeAt(0);\n var colon = \":\".charCodeAt(0);\n var star = \"*\".charCodeAt(0);\n var uLower = \"u\".charCodeAt(0);\n var uUpper = \"U\".charCodeAt(0);\n var plus = \"+\".charCodeAt(0);\n var isUnicodeRange = /^[a-f0-9?-]+$/i;\n module.exports = function(input) {\n var tokens = [];\n var value2 = input;\n var next, quote, prev, token, escape2, escapePos, whitespacePos, parenthesesOpenPos;\n var pos = 0;\n var code = value2.charCodeAt(pos);\n var max2 = value2.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n var name = \"\";\n var before = \"\";\n var after = \"\";\n while (pos < max2) {\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value2.charCodeAt(next);\n } while (code <= 32);\n token = value2.slice(pos, next);\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (code === comma || code === colon || code === slash && value2.charCodeAt(next + 1) !== star && (!parent || parent && parent.type === \"function\" && false)) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n pos = next;\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote\n };\n do {\n escape2 = false;\n next = value2.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value2.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape2 = !escape2;\n }\n } else {\n value2 += quote;\n next = value2.length - 1;\n token.unclosed = true;\n }\n } while (escape2);\n token.value = value2.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value2.charCodeAt(pos);\n } else if (code === slash && value2.charCodeAt(pos + 1) === star) {\n next = value2.indexOf(\"*/\", pos);\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n if (next === -1) {\n token.unclosed = true;\n next = value2.length;\n token.sourceEndIndex = next;\n }\n token.value = value2.slice(pos + 2, next);\n tokens.push(token);\n pos = next + 2;\n code = value2.charCodeAt(pos);\n } else if ((code === slash || code === star) && parent && parent.type === \"function\" && true) {\n token = value2[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value2.charCodeAt(pos);\n } else if (code === slash || code === comma || code === colon) {\n token = value2[pos];\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before,\n after: \"\"\n });\n before = \"\";\n pos += 1;\n code = value2.charCodeAt(pos);\n } else if (openParentheses === code) {\n next = pos;\n do {\n next += 1;\n code = value2.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value2.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape2 = false;\n next = value2.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value2.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape2 = !escape2;\n }\n } else {\n value2 += \")\";\n next = value2.length - 1;\n token.unclosed = true;\n }\n } while (escape2);\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value2.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value2.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value2.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value2.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value2.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value2.charCodeAt(pos);\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value2.charCodeAt(next);\n } while (next < max2 && !(code <= 32 || code === singleQuote || code === doubleQuote || code === comma || code === colon || code === slash || code === openParentheses || code === star && parent && parent.type === \"function\" && true || code === slash && parent.type === \"function\" && true || code === closeParentheses && balanced));\n token = value2.slice(pos, next);\n if (openParentheses === code) {\n name = token;\n } else if ((uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && plus === token.charCodeAt(1) && isUnicodeRange.test(token.slice(2))) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n pos = next;\n }\n }\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value2.length;\n }\n return stack[0].nodes;\n };\n }\n});\n\n// node_modules/tailwindcss/src/value-parser/walk.js\nvar require_walk = __commonJS({\n \"node_modules/tailwindcss/src/value-parser/walk.js\"(exports, module) {\n module.exports = function walk(nodes, cb, bubble) {\n var i, max2, node, result;\n for (i = 0, max2 = nodes.length; i < max2; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n if (result !== false && node.type === \"function\" && Array.isArray(node.nodes)) {\n walk(node.nodes, cb, bubble);\n }\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n };\n }\n});\n\n// node_modules/tailwindcss/src/value-parser/stringify.js\nvar require_stringify = __commonJS({\n \"node_modules/tailwindcss/src/value-parser/stringify.js\"(exports, module) {\n function stringifyNode(node, custom) {\n var type = node.type;\n var value2 = node.value;\n var buf;\n var customResult;\n if (custom && (customResult = custom(node)) !== void 0) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value2;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value2 + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value2 + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value2 + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return value2 + \"(\" + (node.before || \"\") + buf + (node.after || \"\") + (node.unclosed ? \"\" : \")\");\n }\n return value2;\n }\n function stringify(nodes, custom) {\n var result, i;\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n }\n module.exports = stringify;\n }\n});\n\n// node_modules/tailwindcss/src/value-parser/unit.js\nvar require_unit = __commonJS({\n \"node_modules/tailwindcss/src/value-parser/unit.js\"(exports, module) {\n var minus = \"-\".charCodeAt(0);\n var plus = \"+\".charCodeAt(0);\n var dot = \".\".charCodeAt(0);\n var exp = \"e\".charCodeAt(0);\n var EXP = \"E\".charCodeAt(0);\n function likeNumber(value2) {\n var code = value2.charCodeAt(0);\n var nextCode;\n if (code === plus || code === minus) {\n nextCode = value2.charCodeAt(1);\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n var nextNextCode = value2.charCodeAt(2);\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n return false;\n }\n if (code === dot) {\n nextCode = value2.charCodeAt(1);\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n return false;\n }\n if (code >= 48 && code <= 57) {\n return true;\n }\n return false;\n }\n module.exports = function(value2) {\n var pos = 0;\n var length2 = value2.length;\n var code;\n var nextCode;\n var nextNextCode;\n if (length2 === 0 || !likeNumber(value2)) {\n return false;\n }\n code = value2.charCodeAt(pos);\n if (code === plus || code === minus) {\n pos++;\n }\n while (pos < length2) {\n code = value2.charCodeAt(pos);\n if (code < 48 || code > 57) {\n break;\n }\n pos += 1;\n }\n code = value2.charCodeAt(pos);\n nextCode = value2.charCodeAt(pos + 1);\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n while (pos < length2) {\n code = value2.charCodeAt(pos);\n if (code < 48 || code > 57) {\n break;\n }\n pos += 1;\n }\n }\n code = value2.charCodeAt(pos);\n nextCode = value2.charCodeAt(pos + 1);\n nextNextCode = value2.charCodeAt(pos + 2);\n if ((code === exp || code === EXP) && (nextCode >= 48 && nextCode <= 57 || (nextCode === plus || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57)) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n while (pos < length2) {\n code = value2.charCodeAt(pos);\n if (code < 48 || code > 57) {\n break;\n }\n pos += 1;\n }\n }\n return {\n number: value2.slice(0, pos),\n unit: value2.slice(pos)\n };\n };\n }\n});\n\n// node_modules/tailwindcss/src/value-parser/index.js\nvar require_value_parser = __commonJS({\n \"node_modules/tailwindcss/src/value-parser/index.js\"(exports, module) {\n var parse = require_parse();\n var walk = require_walk();\n var stringify = require_stringify();\n function ValueParser(value2) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value2);\n return this;\n }\n return new ValueParser(value2);\n }\n ValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n };\n ValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n };\n ValueParser.unit = require_unit();\n ValueParser.walk = walk;\n ValueParser.stringify = stringify;\n module.exports = ValueParser;\n }\n});\n\n// node_modules/tailwindcss/stubs/config.full.js\nvar require_config_full = __commonJS({\n \"node_modules/tailwindcss/stubs/config.full.js\"(exports, module) {\n module.exports = {\n content: [],\n presets: [],\n darkMode: \"media\",\n theme: {\n accentColor: ({ theme }) => ({\n ...theme(\"colors\"),\n auto: \"auto\"\n }),\n animation: {\n none: \"none\",\n spin: \"spin 1s linear infinite\",\n ping: \"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",\n pulse: \"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n bounce: \"bounce 1s infinite\"\n },\n aria: {\n busy: 'busy=\"true\"',\n checked: 'checked=\"true\"',\n disabled: 'disabled=\"true\"',\n expanded: 'expanded=\"true\"',\n hidden: 'hidden=\"true\"',\n pressed: 'pressed=\"true\"',\n readonly: 'readonly=\"true\"',\n required: 'required=\"true\"',\n selected: 'selected=\"true\"'\n },\n aspectRatio: {\n auto: \"auto\",\n square: \"1 / 1\",\n video: \"16 / 9\"\n },\n backdropBlur: ({ theme }) => theme(\"blur\"),\n backdropBrightness: ({ theme }) => theme(\"brightness\"),\n backdropContrast: ({ theme }) => theme(\"contrast\"),\n backdropGrayscale: ({ theme }) => theme(\"grayscale\"),\n backdropHueRotate: ({ theme }) => theme(\"hueRotate\"),\n backdropInvert: ({ theme }) => theme(\"invert\"),\n backdropOpacity: ({ theme }) => theme(\"opacity\"),\n backdropSaturate: ({ theme }) => theme(\"saturate\"),\n backdropSepia: ({ theme }) => theme(\"sepia\"),\n backgroundColor: ({ theme }) => theme(\"colors\"),\n backgroundImage: {\n none: \"none\",\n \"gradient-to-t\": \"linear-gradient(to top, var(--tw-gradient-stops))\",\n \"gradient-to-tr\": \"linear-gradient(to top right, var(--tw-gradient-stops))\",\n \"gradient-to-r\": \"linear-gradient(to right, var(--tw-gradient-stops))\",\n \"gradient-to-br\": \"linear-gradient(to bottom right, var(--tw-gradient-stops))\",\n \"gradient-to-b\": \"linear-gradient(to bottom, var(--tw-gradient-stops))\",\n \"gradient-to-bl\": \"linear-gradient(to bottom left, var(--tw-gradient-stops))\",\n \"gradient-to-l\": \"linear-gradient(to left, var(--tw-gradient-stops))\",\n \"gradient-to-tl\": \"linear-gradient(to top left, var(--tw-gradient-stops))\"\n },\n backgroundOpacity: ({ theme }) => theme(\"opacity\"),\n backgroundPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\"\n },\n backgroundSize: {\n auto: \"auto\",\n cover: \"cover\",\n contain: \"contain\"\n },\n blur: {\n 0: \"0\",\n none: \"0\",\n sm: \"4px\",\n DEFAULT: \"8px\",\n md: \"12px\",\n lg: \"16px\",\n xl: \"24px\",\n \"2xl\": \"40px\",\n \"3xl\": \"64px\"\n },\n borderColor: ({ theme }) => ({\n ...theme(\"colors\"),\n DEFAULT: theme(\"colors.gray.200\", \"currentColor\")\n }),\n borderOpacity: ({ theme }) => theme(\"opacity\"),\n borderRadius: {\n none: \"0px\",\n sm: \"0.125rem\",\n DEFAULT: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\"\n },\n borderSpacing: ({ theme }) => ({\n ...theme(\"spacing\")\n }),\n borderWidth: {\n DEFAULT: \"1px\",\n 0: \"0px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n boxShadow: {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n DEFAULT: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n none: \"none\"\n },\n boxShadowColor: ({ theme }) => theme(\"colors\"),\n brightness: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\"\n },\n caretColor: ({ theme }) => theme(\"colors\"),\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose\n }),\n columns: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n \"3xs\": \"16rem\",\n \"2xs\": \"18rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\"\n },\n container: {},\n content: {\n none: \"none\"\n },\n contrast: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 100: \"1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\"\n },\n cursor: {\n auto: \"auto\",\n default: \"default\",\n pointer: \"pointer\",\n wait: \"wait\",\n text: \"text\",\n move: \"move\",\n help: \"help\",\n \"not-allowed\": \"not-allowed\",\n none: \"none\",\n \"context-menu\": \"context-menu\",\n progress: \"progress\",\n cell: \"cell\",\n crosshair: \"crosshair\",\n \"vertical-text\": \"vertical-text\",\n alias: \"alias\",\n copy: \"copy\",\n \"no-drop\": \"no-drop\",\n grab: \"grab\",\n grabbing: \"grabbing\",\n \"all-scroll\": \"all-scroll\",\n \"col-resize\": \"col-resize\",\n \"row-resize\": \"row-resize\",\n \"n-resize\": \"n-resize\",\n \"e-resize\": \"e-resize\",\n \"s-resize\": \"s-resize\",\n \"w-resize\": \"w-resize\",\n \"ne-resize\": \"ne-resize\",\n \"nw-resize\": \"nw-resize\",\n \"se-resize\": \"se-resize\",\n \"sw-resize\": \"sw-resize\",\n \"ew-resize\": \"ew-resize\",\n \"ns-resize\": \"ns-resize\",\n \"nesw-resize\": \"nesw-resize\",\n \"nwse-resize\": \"nwse-resize\",\n \"zoom-in\": \"zoom-in\",\n \"zoom-out\": \"zoom-out\"\n },\n divideColor: ({ theme }) => theme(\"borderColor\"),\n divideOpacity: ({ theme }) => theme(\"borderOpacity\"),\n divideWidth: ({ theme }) => theme(\"borderWidth\"),\n dropShadow: {\n sm: \"0 1px 1px rgb(0 0 0 / 0.05)\",\n DEFAULT: [\"0 1px 2px rgb(0 0 0 / 0.1)\", \"0 1px 1px rgb(0 0 0 / 0.06)\"],\n md: [\"0 4px 3px rgb(0 0 0 / 0.07)\", \"0 2px 2px rgb(0 0 0 / 0.06)\"],\n lg: [\"0 10px 8px rgb(0 0 0 / 0.04)\", \"0 4px 3px rgb(0 0 0 / 0.1)\"],\n xl: [\"0 20px 13px rgb(0 0 0 / 0.03)\", \"0 8px 5px rgb(0 0 0 / 0.08)\"],\n \"2xl\": \"0 25px 25px rgb(0 0 0 / 0.15)\",\n none: \"0 0 #0000\"\n },\n fill: ({ theme }) => ({\n none: \"none\",\n ...theme(\"colors\")\n }),\n flex: {\n 1: \"1 1 0%\",\n auto: \"1 1 auto\",\n initial: \"0 1 auto\",\n none: \"none\"\n },\n flexBasis: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\"\n }),\n flexGrow: {\n 0: \"0\",\n DEFAULT: \"1\"\n },\n flexShrink: {\n 0: \"0\",\n DEFAULT: \"1\"\n },\n fontFamily: {\n sans: [\n \"ui-sans-serif\",\n \"system-ui\",\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"'\n ],\n serif: [\"ui-serif\", \"Georgia\", \"Cambria\", '\"Times New Roman\"', \"Times\", \"serif\"],\n mono: [\n \"ui-monospace\",\n \"SFMono-Regular\",\n \"Menlo\",\n \"Monaco\",\n \"Consolas\",\n '\"Liberation Mono\"',\n '\"Courier New\"',\n \"monospace\"\n ]\n },\n fontSize: {\n xs: [\"0.75rem\", { lineHeight: \"1rem\" }],\n sm: [\"0.875rem\", { lineHeight: \"1.25rem\" }],\n base: [\"1rem\", { lineHeight: \"1.5rem\" }],\n lg: [\"1.125rem\", { lineHeight: \"1.75rem\" }],\n xl: [\"1.25rem\", { lineHeight: \"1.75rem\" }],\n \"2xl\": [\"1.5rem\", { lineHeight: \"2rem\" }],\n \"3xl\": [\"1.875rem\", { lineHeight: \"2.25rem\" }],\n \"4xl\": [\"2.25rem\", { lineHeight: \"2.5rem\" }],\n \"5xl\": [\"3rem\", { lineHeight: \"1\" }],\n \"6xl\": [\"3.75rem\", { lineHeight: \"1\" }],\n \"7xl\": [\"4.5rem\", { lineHeight: \"1\" }],\n \"8xl\": [\"6rem\", { lineHeight: \"1\" }],\n \"9xl\": [\"8rem\", { lineHeight: \"1\" }]\n },\n fontWeight: {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\"\n },\n gap: ({ theme }) => theme(\"spacing\"),\n gradientColorStops: ({ theme }) => theme(\"colors\"),\n gradientColorStopPositions: {\n \"0%\": \"0%\",\n \"5%\": \"5%\",\n \"10%\": \"10%\",\n \"15%\": \"15%\",\n \"20%\": \"20%\",\n \"25%\": \"25%\",\n \"30%\": \"30%\",\n \"35%\": \"35%\",\n \"40%\": \"40%\",\n \"45%\": \"45%\",\n \"50%\": \"50%\",\n \"55%\": \"55%\",\n \"60%\": \"60%\",\n \"65%\": \"65%\",\n \"70%\": \"70%\",\n \"75%\": \"75%\",\n \"80%\": \"80%\",\n \"85%\": \"85%\",\n \"90%\": \"90%\",\n \"95%\": \"95%\",\n \"100%\": \"100%\"\n },\n grayscale: {\n 0: \"0\",\n DEFAULT: \"100%\"\n },\n gridAutoColumns: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\"\n },\n gridAutoRows: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\"\n },\n gridColumn: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\"\n },\n gridColumnEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\"\n },\n gridColumnStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\"\n },\n gridRow: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\"\n },\n gridRowEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\"\n },\n gridRowStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\"\n },\n gridTemplateColumns: {\n none: \"none\",\n subgrid: \"subgrid\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\"\n },\n gridTemplateRows: {\n none: \"none\",\n subgrid: \"subgrid\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\"\n },\n height: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n hueRotate: {\n 0: \"0deg\",\n 15: \"15deg\",\n 30: \"30deg\",\n 60: \"60deg\",\n 90: \"90deg\",\n 180: \"180deg\"\n },\n inset: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\"\n }),\n invert: {\n 0: \"0\",\n DEFAULT: \"100%\"\n },\n keyframes: {\n spin: {\n to: {\n transform: \"rotate(360deg)\"\n }\n },\n ping: {\n \"75%, 100%\": {\n transform: \"scale(2)\",\n opacity: \"0\"\n }\n },\n pulse: {\n \"50%\": {\n opacity: \".5\"\n }\n },\n bounce: {\n \"0%, 100%\": {\n transform: \"translateY(-25%)\",\n animationTimingFunction: \"cubic-bezier(0.8,0,1,1)\"\n },\n \"50%\": {\n transform: \"none\",\n animationTimingFunction: \"cubic-bezier(0,0,0.2,1)\"\n }\n }\n },\n letterSpacing: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\"\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\"\n },\n listStyleType: {\n none: \"none\",\n disc: \"disc\",\n decimal: \"decimal\"\n },\n listStyleImage: {\n none: \"none\"\n },\n margin: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\")\n }),\n lineClamp: {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\"\n },\n maxHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n none: \"none\",\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n ...theme(\"spacing\"),\n none: \"none\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n prose: \"65ch\",\n ...breakpoints(theme(\"screens\"))\n }),\n minHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n minWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n objectPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\"\n },\n opacity: {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 15: \"0.15\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.85\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\"\n },\n order: {\n first: \"-9999\",\n last: \"9999\",\n none: \"0\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\"\n },\n outlineColor: ({ theme }) => theme(\"colors\"),\n outlineOffset: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n outlineWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n padding: ({ theme }) => theme(\"spacing\"),\n placeholderColor: ({ theme }) => theme(\"colors\"),\n placeholderOpacity: ({ theme }) => theme(\"opacity\"),\n ringColor: ({ theme }) => ({\n DEFAULT: theme(\"colors.blue.500\", \"#3b82f6\"),\n ...theme(\"colors\")\n }),\n ringOffsetColor: ({ theme }) => theme(\"colors\"),\n ringOffsetWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: \"0.5\",\n ...theme(\"opacity\")\n }),\n ringWidth: {\n DEFAULT: \"3px\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n rotate: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\",\n 45: \"45deg\",\n 90: \"90deg\",\n 180: \"180deg\"\n },\n saturate: {\n 0: \"0\",\n 50: \".5\",\n 100: \"1\",\n 150: \"1.5\",\n 200: \"2\"\n },\n scale: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\"\n },\n screens: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\"\n },\n scrollMargin: ({ theme }) => ({\n ...theme(\"spacing\")\n }),\n scrollPadding: ({ theme }) => theme(\"spacing\"),\n sepia: {\n 0: \"0\",\n DEFAULT: \"100%\"\n },\n skew: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\"\n },\n space: ({ theme }) => ({\n ...theme(\"spacing\")\n }),\n spacing: {\n px: \"1px\",\n 0: \"0px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\"\n },\n stroke: ({ theme }) => ({\n none: \"none\",\n ...theme(\"colors\")\n }),\n strokeWidth: {\n 0: \"0\",\n 1: \"1\",\n 2: \"2\"\n },\n supports: {},\n data: {},\n textColor: ({ theme }) => theme(\"colors\"),\n textDecorationColor: ({ theme }) => theme(\"colors\"),\n textDecorationThickness: {\n auto: \"auto\",\n \"from-font\": \"from-font\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n textIndent: ({ theme }) => ({\n ...theme(\"spacing\")\n }),\n textOpacity: ({ theme }) => theme(\"opacity\"),\n textUnderlineOffset: {\n auto: \"auto\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n transformOrigin: {\n center: \"center\",\n top: \"top\",\n \"top-right\": \"top right\",\n right: \"right\",\n \"bottom-right\": \"bottom right\",\n bottom: \"bottom\",\n \"bottom-left\": \"bottom left\",\n left: \"left\",\n \"top-left\": \"top left\"\n },\n transitionDelay: {\n 0: \"0s\",\n 75: \"75ms\",\n 100: \"100ms\",\n 150: \"150ms\",\n 200: \"200ms\",\n 300: \"300ms\",\n 500: \"500ms\",\n 700: \"700ms\",\n 1e3: \"1000ms\"\n },\n transitionDuration: {\n DEFAULT: \"150ms\",\n 0: \"0s\",\n 75: \"75ms\",\n 100: \"100ms\",\n 150: \"150ms\",\n 200: \"200ms\",\n 300: \"300ms\",\n 500: \"500ms\",\n 700: \"700ms\",\n 1e3: \"1000ms\"\n },\n transitionProperty: {\n none: \"none\",\n all: \"all\",\n DEFAULT: \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter\",\n colors: \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n opacity: \"opacity\",\n shadow: \"box-shadow\",\n transform: \"transform\"\n },\n transitionTimingFunction: {\n DEFAULT: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n \"in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n },\n translate: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\"\n }),\n size: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n width: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n screen: \"100vw\",\n svw: \"100svw\",\n lvw: \"100lvw\",\n dvw: \"100dvw\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n willChange: {\n auto: \"auto\",\n scroll: \"scroll-position\",\n contents: \"contents\",\n transform: \"transform\"\n },\n zIndex: {\n auto: \"auto\",\n 0: \"0\",\n 10: \"10\",\n 20: \"20\",\n 30: \"30\",\n 40: \"40\",\n 50: \"50\"\n }\n },\n plugins: []\n };\n }\n});\n\n// src/index.ts\nimport postcss8 from \"postcss\";\n\n// src/stubs/tailwindcss/utils/log.ts\nfunction log() {\n}\nfunction dim(input) {\n return input;\n}\nvar log_default = {\n info: log,\n warn: log,\n risk: log\n};\n\n// node_modules/tailwindcss/src/lib/normalizeTailwindDirectives.js\nfunction normalizeTailwindDirectives(root) {\n let tailwindDirectives = /* @__PURE__ */ new Set();\n let layerDirectives = /* @__PURE__ */ new Set();\n let applyDirectives = /* @__PURE__ */ new Set();\n root.walkAtRules((atRule) => {\n if (atRule.name === \"apply\") {\n applyDirectives.add(atRule);\n }\n if (atRule.name === \"import\") {\n if (atRule.params === '\"tailwindcss/base\"' || atRule.params === \"'tailwindcss/base'\") {\n atRule.name = \"tailwind\";\n atRule.params = \"base\";\n } else if (atRule.params === '\"tailwindcss/components\"' || atRule.params === \"'tailwindcss/components'\") {\n atRule.name = \"tailwind\";\n atRule.params = \"components\";\n } else if (atRule.params === '\"tailwindcss/utilities\"' || atRule.params === \"'tailwindcss/utilities'\") {\n atRule.name = \"tailwind\";\n atRule.params = \"utilities\";\n } else if (atRule.params === '\"tailwindcss/screens\"' || atRule.params === \"'tailwindcss/screens'\" || atRule.params === '\"tailwindcss/variants\"' || atRule.params === \"'tailwindcss/variants'\") {\n atRule.name = \"tailwind\";\n atRule.params = \"variants\";\n }\n }\n if (atRule.name === \"tailwind\") {\n if (atRule.params === \"screens\") {\n atRule.params = \"variants\";\n }\n tailwindDirectives.add(atRule.params);\n }\n if ([\"layer\", \"responsive\", \"variants\"].includes(atRule.name)) {\n if ([\"responsive\", \"variants\"].includes(atRule.name)) {\n log_default.warn(`${atRule.name}-at-rule-deprecated`, [\n `The \\`@${atRule.name}\\` directive has been deprecated in Tailwind CSS v3.0.`,\n `Use \\`@layer utilities\\` or \\`@layer components\\` instead.`,\n \"https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer\"\n ]);\n }\n layerDirectives.add(atRule);\n }\n });\n if (!tailwindDirectives.has(\"base\") || !tailwindDirectives.has(\"components\") || !tailwindDirectives.has(\"utilities\")) {\n for (let rule of layerDirectives) {\n if (rule.name === \"layer\" && [\"base\", \"components\", \"utilities\"].includes(rule.params)) {\n if (!tailwindDirectives.has(rule.params)) {\n throw rule.error(\n `\\`@layer ${rule.params}\\` is used but no matching \\`@tailwind ${rule.params}\\` directive is present.`\n );\n }\n } else if (rule.name === \"responsive\") {\n if (!tailwindDirectives.has(\"utilities\")) {\n throw rule.error(\"`@responsive` is used but `@tailwind utilities` is missing.\");\n }\n } else if (rule.name === \"variants\") {\n if (!tailwindDirectives.has(\"utilities\")) {\n throw rule.error(\"`@variants` is used but `@tailwind utilities` is missing.\");\n }\n }\n }\n }\n return { tailwindDirectives, applyDirectives };\n}\n\n// node_modules/tailwindcss/src/css/preflight.css\nvar preflight_default = '*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme(\"borderColor.DEFAULT\",currentColor)}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme(\"fontFamily.sans\",ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:theme(\"fontFamily.sans[1].fontFeatureSettings\",normal);font-variation-settings:theme(\"fontFamily.sans[1].fontVariationSettings\",normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:theme(\"fontFamily.mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:theme(\"fontFamily.mono[1].fontFeatureSettings\",normal);font-variation-settings:theme(\"fontFamily.mono[1].fontVariationSettings\",normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme(\"colors.gray.400\",#9ca3af)}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}\\n';\n\n// src/stubs/fs.ts\nvar fs_default = {\n readFileSync: () => preflight_default\n};\n\n// node_modules/tailwindcss/src/lib/expandTailwindAtRules.js\nvar import_quick_lru = __toESM(require_quick_lru());\n\n// node_modules/tailwindcss/package.json\nvar version = \"3.4.1\";\nvar package_default = {\n name: \"tailwindcss\",\n version,\n description: \"A utility-first CSS framework for rapidly building custom user interfaces.\",\n license: \"MIT\",\n main: \"lib/index.js\",\n types: \"types/index.d.ts\",\n repository: \"https://github.com/tailwindlabs/tailwindcss.git\",\n bugs: \"https://github.com/tailwindlabs/tailwindcss/issues\",\n homepage: \"https://tailwindcss.com\",\n bin: {\n tailwind: \"lib/cli.js\",\n tailwindcss: \"lib/cli.js\"\n },\n tailwindcss: {\n engine: \"stable\"\n },\n scripts: {\n prebuild: \"npm run generate && rimraf lib\",\n build: `swc src --out-dir lib --copy-files --config jsc.transform.optimizer.globals.vars.__OXIDE__='\"false\"'`,\n postbuild: \"esbuild lib/cli-peer-dependencies.js --bundle --platform=node --outfile=peers/index.js --define:process.env.CSS_TRANSFORMER_WASM=false\",\n \"rebuild-fixtures\": \"npm run build && node -r @swc/register scripts/rebuildFixtures.js\",\n style: \"eslint .\",\n pretest: \"npm run generate\",\n test: \"jest\",\n \"test:integrations\": \"npm run test --prefix ./integrations\",\n \"install:integrations\": \"node scripts/install-integrations.js\",\n \"generate:plugin-list\": \"node -r @swc/register scripts/create-plugin-list.js\",\n \"generate:types\": \"node -r @swc/register scripts/generate-types.js\",\n generate: \"npm run generate:plugin-list && npm run generate:types\",\n \"release-channel\": \"node ./scripts/release-channel.js\",\n \"release-notes\": \"node ./scripts/release-notes.js\",\n prepublishOnly: \"npm install --force && npm run build\"\n },\n files: [\n \"src/*\",\n \"cli/*\",\n \"lib/*\",\n \"peers/*\",\n \"scripts/*.js\",\n \"stubs/*\",\n \"nesting/*\",\n \"types/**/*\",\n \"*.d.ts\",\n \"*.css\",\n \"*.js\"\n ],\n devDependencies: {\n \"@swc/cli\": \"^0.1.62\",\n \"@swc/core\": \"^1.3.55\",\n \"@swc/jest\": \"^0.2.26\",\n \"@swc/register\": \"^0.1.10\",\n autoprefixer: \"^10.4.14\",\n browserslist: \"^4.21.5\",\n concurrently: \"^8.0.1\",\n cssnano: \"^6.0.0\",\n esbuild: \"^0.17.18\",\n eslint: \"^8.39.0\",\n \"eslint-config-prettier\": \"^8.8.0\",\n \"eslint-plugin-prettier\": \"^4.2.1\",\n jest: \"^29.6.0\",\n \"jest-diff\": \"^29.6.0\",\n lightningcss: \"1.18.0\",\n prettier: \"^2.8.8\",\n rimraf: \"^5.0.0\",\n \"source-map-js\": \"^1.0.2\",\n turbo: \"^1.9.3\"\n },\n dependencies: {\n \"@alloc/quick-lru\": \"^5.2.0\",\n arg: \"^5.0.2\",\n chokidar: \"^3.5.3\",\n didyoumean: \"^1.2.2\",\n dlv: \"^1.1.3\",\n \"fast-glob\": \"^3.3.0\",\n \"glob-parent\": \"^6.0.2\",\n \"is-glob\": \"^4.0.3\",\n jiti: \"^1.19.1\",\n lilconfig: \"^2.1.0\",\n micromatch: \"^4.0.5\",\n \"normalize-path\": \"^3.0.0\",\n \"object-hash\": \"^3.0.0\",\n picocolors: \"^1.0.0\",\n postcss: \"^8.4.23\",\n \"postcss-import\": \"^15.1.0\",\n \"postcss-js\": \"^4.0.1\",\n \"postcss-load-config\": \"^4.0.1\",\n \"postcss-nested\": \"^6.0.1\",\n \"postcss-selector-parser\": \"^6.0.11\",\n resolve: \"^1.22.2\",\n sucrase: \"^3.32.0\"\n },\n browserslist: [\n \"> 1%\",\n \"not edge <= 18\",\n \"not ie 11\",\n \"not op_mini all\"\n ],\n jest: {\n testTimeout: 3e4,\n setupFilesAfterEnv: [\n \"<rootDir>/jest/customMatchers.js\"\n ],\n testPathIgnorePatterns: [\n \"/node_modules/\",\n \"/integrations/\",\n \"/standalone-cli/\",\n \"\\\\.test\\\\.skip\\\\.js$\"\n ],\n transformIgnorePatterns: [\n \"node_modules/(?!lightningcss)\"\n ],\n transform: {\n \"\\\\.js$\": \"@swc/jest\",\n \"\\\\.ts$\": \"@swc/jest\"\n }\n },\n engines: {\n node: \">=14.0.0\"\n }\n};\n\n// node_modules/tailwindcss/src/lib/sharedState.js\nvar env = typeof process !== \"undefined\" ? {\n NODE_ENV: \"development\",\n DEBUG: resolveDebug(void 0),\n ENGINE: package_default.tailwindcss.engine\n} : {\n NODE_ENV: \"production\",\n DEBUG: false,\n ENGINE: package_default.tailwindcss.engine\n};\nvar contextSourcesMap = /* @__PURE__ */ new Map();\nvar NOT_ON_DEMAND = new String(\"*\");\nvar NONE = Symbol(\"__NONE__\");\nfunction resolveDebug(debug) {\n if (debug === void 0) {\n return false;\n }\n if (debug === \"true\" || debug === \"1\") {\n return true;\n }\n if (debug === \"false\" || debug === \"0\") {\n return false;\n }\n if (debug === \"*\") {\n return true;\n }\n let debuggers = debug.split(\",\").map((d) => d.split(\":\")[0]);\n if (debuggers.includes(\"-tailwindcss\")) {\n return false;\n }\n if (debuggers.includes(\"tailwindcss\")) {\n return true;\n }\n return false;\n}\n\n// node_modules/tailwindcss/src/lib/generateRules.js\nimport postcss5 from \"postcss\";\nimport selectorParser3 from \"postcss-selector-parser\";\n\n// node_modules/tailwindcss/src/util/parseObjectStyles.js\nimport postcss from \"postcss\";\nimport postcssNested from \"postcss-nested\";\nimport postcssJs from \"postcss-js\";\nfunction parseObjectStyles(styles) {\n if (!Array.isArray(styles)) {\n return parseObjectStyles([styles]);\n }\n return styles.flatMap((style) => {\n return postcss([\n postcssNested({\n bubble: [\"screen\"]\n })\n ]).process(style, {\n parser: postcssJs\n }).root.nodes;\n });\n}\n\n// node_modules/tailwindcss/src/util/isPlainObject.js\nfunction isPlainObject(value2) {\n if (Object.prototype.toString.call(value2) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value2);\n return prototype === null || Object.getPrototypeOf(prototype) === null;\n}\n\n// node_modules/tailwindcss/src/util/prefixSelector.js\nimport parser from \"postcss-selector-parser\";\nfunction prefixSelector_default(prefix3, selector, prependNegative = false) {\n if (prefix3 === \"\") {\n return selector;\n }\n let ast = typeof selector === \"string\" ? parser().astSync(selector) : selector;\n ast.walkClasses((classSelector) => {\n let baseClass = classSelector.value;\n let shouldPlaceNegativeBeforePrefix = prependNegative && baseClass.startsWith(\"-\");\n classSelector.value = shouldPlaceNegativeBeforePrefix ? `-${prefix3}${baseClass.slice(1)}` : `${prefix3}${baseClass}`;\n });\n return typeof selector === \"string\" ? ast.toString() : ast;\n}\n\n// node_modules/tailwindcss/src/util/escapeCommas.js\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n\n// node_modules/tailwindcss/src/util/colorNames.js\nvar colorNames_default = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n};\n\n// node_modules/tailwindcss/src/util/color.js\nvar HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nvar SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nvar VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nvar SEP = /(?:\\s*,\\s*|\\s+)/;\nvar ALPHA_SEP = /\\s*[,/]\\s*/;\nvar CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\\(--[^ )]*?\\)))?\\)/;\nvar RGB = new RegExp(\n `^(rgba?)\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`\n);\nvar HSL = new RegExp(\n `^(hsla?)\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`\n);\nfunction parseColor(value2, { loose = false } = {}) {\n if (typeof value2 !== \"string\") {\n return null;\n }\n value2 = value2.trim();\n if (value2 === \"transparent\") {\n return { mode: \"rgb\", color: [\"0\", \"0\", \"0\"], alpha: \"0\" };\n }\n if (value2 in colorNames_default) {\n return { mode: \"rgb\", color: colorNames_default[value2].map((v) => v.toString()) };\n }\n let hex = value2.replace(SHORT_HEX, (_, r, g, b, a) => [\"#\", r, r, g, g, b, b, a ? a + a : \"\"].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [parseInt(hex[1], 16), parseInt(hex[2], 16), parseInt(hex[3], 16)].map(\n (v) => v.toString()\n ),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : void 0\n };\n }\n let match = value2.match(RGB) ?? value2.match(HSL);\n if (match === null) {\n return null;\n }\n let color2 = [match[2], match[3], match[4]].filter(Boolean).map((v) => v.toString());\n if (color2.length === 2 && color2[0].startsWith(\"var(\")) {\n return {\n mode: match[1],\n color: [color2[0]],\n alpha: color2[1]\n };\n }\n if (!loose && color2.length !== 3) {\n return null;\n }\n if (color2.length < 3 && !color2.some((part) => /^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color: color2,\n alpha: match[5]?.toString?.()\n };\n}\nfunction formatColor({ mode, color: color2, alpha }) {\n let hasAlpha = alpha !== void 0;\n if (mode === \"rgba\" || mode === \"hsla\") {\n return `${mode}(${color2.join(\", \")}${hasAlpha ? `, ${alpha}` : \"\"})`;\n }\n return `${mode}(${color2.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n\n// node_modules/tailwindcss/src/util/withAlphaVariable.js\nfunction withAlphaValue(color2, alphaValue, defaultValue) {\n if (typeof color2 === \"function\") {\n return color2({ opacityValue: alphaValue });\n }\n let parsed = parseColor(color2, { loose: true });\n if (parsed === null) {\n return defaultValue;\n }\n return formatColor({ ...parsed, alpha: alphaValue });\n}\nfunction withAlphaVariable({ color: color2, property, variable }) {\n let properties = [].concat(property);\n if (typeof color2 === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(\n properties.map((p) => {\n return [p, color2({ opacityVariable: variable, opacityValue: `var(${variable})` })];\n })\n )\n };\n }\n const parsed = parseColor(color2);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p) => [p, color2]));\n }\n if (parsed.alpha !== void 0) {\n return Object.fromEntries(properties.map((p) => [p, color2]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(\n properties.map((p) => {\n return [p, formatColor({ ...parsed, alpha: `var(${variable})` })];\n })\n )\n };\n}\n\n// node_modules/tailwindcss/src/util/splitAtTopLevelOnly.js\nfunction splitAtTopLevelOnly(input, separator) {\n let stack = [];\n let parts = [];\n let lastPos = 0;\n let isEscaped = false;\n for (let idx = 0; idx < input.length; idx++) {\n let char = input[idx];\n if (stack.length === 0 && char === separator[0] && !isEscaped) {\n if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {\n parts.push(input.slice(lastPos, idx));\n lastPos = idx + separator.length;\n }\n }\n if (isEscaped) {\n isEscaped = false;\n } else if (char === \"\\\\\") {\n isEscaped = true;\n }\n if (char === \"(\" || char === \"[\" || char === \"{\") {\n stack.push(char);\n } else if (char === \")\" && stack[stack.length - 1] === \"(\" || char === \"]\" && stack[stack.length - 1] === \"[\" || char === \"}\" && stack[stack.length - 1] === \"{\") {\n stack.pop();\n }\n }\n parts.push(input.slice(lastPos));\n return parts;\n}\n\n// node_modules/tailwindcss/src/util/parseBoxShadowValue.js\nvar KEYWORDS = /* @__PURE__ */ new Set([\"inset\", \"inherit\", \"initial\", \"revert\", \"unset\"]);\nvar SPACE = /\\ +(?![^(]*\\))/g;\nvar LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = splitAtTopLevelOnly(input, \",\");\n return shadows.map((shadow2) => {\n let value2 = shadow2.trim();\n let result = { raw: value2 };\n let parts = value2.split(SPACE);\n let seen = /* @__PURE__ */ new Set();\n for (let part of parts) {\n LENGTH.lastIndex = 0;\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown)\n result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n result.valid = result.x !== void 0 && result.y !== void 0;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow2) => {\n if (!shadow2.valid) {\n return shadow2.raw;\n }\n return [shadow2.keyword, shadow2.x, shadow2.y, shadow2.blur, shadow2.spread, shadow2.color].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n\n// node_modules/tailwindcss/src/util/dataTypes.js\nvar cssFunctions = [\"min\", \"max\", \"clamp\", \"calc\"];\nfunction isCSSFunction(value2) {\n return cssFunctions.some((fn) => new RegExp(`^${fn}\\\\(.*\\\\)`).test(value2));\n}\nvar AUTO_VAR_INJECTION_EXCEPTIONS = /* @__PURE__ */ new Set([\n \"scroll-timeline-name\",\n \"timeline-scope\",\n \"view-timeline-name\",\n \"font-palette\",\n \"scroll-timeline\",\n \"animation-timeline\",\n \"view-timeline\"\n]);\nfunction normalize(value2, context = null, isRoot2 = true) {\n let isVarException = context && AUTO_VAR_INJECTION_EXCEPTIONS.has(context.property);\n if (value2.startsWith(\"--\") && !isVarException) {\n return `var(${value2})`;\n }\n if (value2.includes(\"url(\")) {\n return value2.split(/(url\\(.*?\\))/g).filter(Boolean).map((part) => {\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, context, false);\n }).join(\"\");\n }\n value2 = value2.replace(\n /([^\\\\])_+/g,\n (fullMatch, characterBefore) => characterBefore + \" \".repeat(fullMatch.length - 1)\n ).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n if (isRoot2) {\n value2 = value2.trim();\n }\n value2 = normalizeMathOperatorSpacing(value2);\n return value2;\n}\nfunction normalizeMathOperatorSpacing(value2) {\n let preventFormattingInFunctions = [\"theme\"];\n let preventFormattingKeywords = [\n \"min-content\",\n \"max-content\",\n \"fit-content\",\n \"safe-area-inset-top\",\n \"safe-area-inset-right\",\n \"safe-area-inset-bottom\",\n \"safe-area-inset-left\",\n \"titlebar-area-x\",\n \"titlebar-area-y\",\n \"titlebar-area-width\",\n \"titlebar-area-height\",\n \"keyboard-inset-top\",\n \"keyboard-inset-right\",\n \"keyboard-inset-bottom\",\n \"keyboard-inset-left\",\n \"keyboard-inset-width\",\n \"keyboard-inset-height\",\n \"radial-gradient\",\n \"linear-gradient\",\n \"conic-gradient\",\n \"repeating-radial-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-conic-gradient\"\n ];\n return value2.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match) => {\n let result = \"\";\n function lastChar() {\n let char = result.trimEnd();\n return char[char.length - 1];\n }\n for (let i = 0; i < match.length; i++) {\n let peek = function(word) {\n return word.split(\"\").every((char2, j) => match[i + j] === char2);\n }, consumeUntil = function(chars) {\n let minIndex = Infinity;\n for (let char2 of chars) {\n let index = match.indexOf(char2, i);\n if (index !== -1 && index < minIndex) {\n minIndex = index;\n }\n }\n let result2 = match.slice(i, minIndex);\n i += result2.length - 1;\n return result2;\n };\n let char = match[i];\n if (peek(\"var\")) {\n result += consumeUntil([\")\", \",\"]);\n } else if (preventFormattingKeywords.some((keyword) => peek(keyword))) {\n let keyword = preventFormattingKeywords.find((keyword2) => peek(keyword2));\n result += keyword;\n i += keyword.length - 1;\n } else if (preventFormattingInFunctions.some((fn) => peek(fn))) {\n result += consumeUntil([\")\"]);\n } else if (peek(\"[\")) {\n result += consumeUntil([\"]\"]);\n } else if ([\"+\", \"-\", \"*\", \"/\"].includes(char) && ![\"(\", \"+\", \"-\", \"*\", \"/\", \",\"].includes(lastChar())) {\n result += ` ${char} `;\n } else {\n result += char;\n }\n }\n return result.replace(/\\s+/g, \" \");\n });\n}\nfunction url(value2) {\n return value2.startsWith(\"url(\");\n}\nfunction number(value2) {\n return !isNaN(Number(value2)) || isCSSFunction(value2);\n}\nfunction percentage(value2) {\n return value2.endsWith(\"%\") && number(value2.slice(0, -1)) || isCSSFunction(value2);\n}\nvar lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n \"cqw\",\n \"cqh\",\n \"cqi\",\n \"cqb\",\n \"cqmin\",\n \"cqmax\"\n];\nvar lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value2) {\n return value2 === \"0\" || new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`).test(value2) || isCSSFunction(value2);\n}\nvar lineWidths = /* @__PURE__ */ new Set([\"thin\", \"medium\", \"thick\"]);\nfunction lineWidth(value2) {\n return lineWidths.has(value2);\n}\nfunction shadow(value2) {\n let parsedShadows = parseBoxShadowValue(normalize(value2));\n for (let parsedShadow of parsedShadows) {\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value2) {\n let colors = 0;\n let result = splitAtTopLevelOnly(value2, \"_\").every((part) => {\n part = normalize(part);\n if (part.startsWith(\"var(\"))\n return true;\n if (parseColor(part, { loose: true }) !== null)\n return colors++, true;\n return false;\n });\n if (!result)\n return false;\n return colors > 0;\n}\nfunction image(value2) {\n let images = 0;\n let result = splitAtTopLevelOnly(value2, \",\").every((part) => {\n part = normalize(part);\n if (part.startsWith(\"var(\"))\n return true;\n if (url(part) || gradient(part) || [\"element(\", \"image(\", \"cross-fade(\", \"image-set(\"].some((fn) => part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result)\n return false;\n return images > 0;\n}\nvar gradientTypes = /* @__PURE__ */ new Set([\n \"conic-gradient\",\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-conic-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\"\n]);\nfunction gradient(value2) {\n value2 = normalize(value2);\n for (let type of gradientTypes) {\n if (value2.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nvar validPositions = /* @__PURE__ */ new Set([\"center\", \"top\", \"right\", \"bottom\", \"left\"]);\nfunction position(value2) {\n let positions = 0;\n let result = splitAtTopLevelOnly(value2, \"_\").every((part) => {\n part = normalize(part);\n if (part.startsWith(\"var(\"))\n return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result)\n return false;\n return positions > 0;\n}\nfunction familyName(value2) {\n let fonts = 0;\n let result = splitAtTopLevelOnly(value2, \",\").every((part) => {\n part = normalize(part);\n if (part.startsWith(\"var(\"))\n return true;\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result)\n return false;\n return fonts > 0;\n}\nvar genericNames = /* @__PURE__ */ new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\"\n]);\nfunction genericName(value2) {\n return genericNames.has(value2);\n}\nvar absoluteSizes = /* @__PURE__ */ new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\"\n]);\nfunction absoluteSize(value2) {\n return absoluteSizes.has(value2);\n}\nvar relativeSizes = /* @__PURE__ */ new Set([\"larger\", \"smaller\"]);\nfunction relativeSize(value2) {\n return relativeSizes.has(value2);\n}\n\n// node_modules/tailwindcss/src/util/negateValue.js\nfunction negateValue(value2) {\n value2 = `${value2}`;\n if (value2 === \"0\") {\n return \"0\";\n }\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value2)) {\n return value2.replace(/^[+-]?/, (sign) => sign === \"-\" ? \"\" : \"-\");\n }\n let numericFunctions = [\"var\", \"calc\", \"min\", \"max\", \"clamp\"];\n for (const fn of numericFunctions) {\n if (value2.includes(`${fn}(`)) {\n return `calc(${value2} * -1)`;\n }\n }\n}\n\n// node_modules/tailwindcss/src/util/validateFormalSyntax.js\nfunction backgroundSize(value2) {\n let keywordValues = [\"cover\", \"contain\"];\n return splitAtTopLevelOnly(value2, \",\").every((part) => {\n let sizes = splitAtTopLevelOnly(part, \"_\").filter(Boolean);\n if (sizes.length === 1 && keywordValues.includes(sizes[0]))\n return true;\n if (sizes.length !== 1 && sizes.length !== 2)\n return false;\n return sizes.every((size) => length(size) || percentage(size) || size === \"auto\");\n });\n}\n\n// src/stubs/picocolors.ts\nvar picocolors_default = {\n yellow: (input) => input\n};\n\n// node_modules/tailwindcss/src/featureFlags.js\nvar defaults = {\n optimizeUniversalDefaults: false,\n generalizedModifiers: true,\n get disableColorOpacityUtilitiesByDefault() {\n return false;\n },\n get relativeContentPathsByDefault() {\n return false;\n }\n};\nvar featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\",\n \"disableColorOpacityUtilitiesByDefault\",\n \"relativeContentPathsByDefault\"\n ],\n experimental: [\"optimizeUniversalDefaults\", \"generalizedModifiers\"]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n return config.future === \"all\" || (config?.future?.[flag] ?? defaults[flag] ?? false);\n }\n if (featureFlags.experimental.includes(flag)) {\n return config.experimental === \"all\" || (config?.experimental?.[flag] ?? defaults[flag] ?? false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n return Object.keys(config?.experimental ?? {}).filter(\n (flag) => featureFlags.experimental.includes(flag) && config.experimental[flag]\n );\n}\nfunction issueFlagNotices(config) {\n if (1 !== void 0) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s) => picocolors_default.yellow(s)).join(\", \");\n log_default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\"\n ]);\n }\n}\n\n// node_modules/tailwindcss/src/util/pluginUtils.js\nfunction updateAllClasses(selectors, updateClass) {\n selectors.walkClasses((sel) => {\n sel.value = updateClass(sel.value);\n if (sel.raws && sel.raws.value) {\n sel.raws.value = escapeCommas(sel.raws.value);\n }\n });\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return void 0;\n }\n let value2 = modifier.slice(1, -1);\n if (!validate(value2)) {\n return void 0;\n }\n return normalize(value2);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== void 0) {\n return negateValue(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === void 0) {\n return void 0;\n }\n return negateValue(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate = () => true } = {}) {\n let value2 = options.values?.[modifier];\n if (value2 !== void 0) {\n return value2;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitUtilityModifier(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n let arbitraryStartIdx = modifier.lastIndexOf(\"[\", slashIdx);\n let arbitraryEndIdx = modifier.indexOf(\"]\", slashIdx);\n let isNextToArbitrary = modifier[slashIdx - 1] === \"]\" || modifier[slashIdx + 1] === \"[\";\n if (!isNextToArbitrary) {\n if (arbitraryStartIdx !== -1 && arbitraryEndIdx !== -1) {\n if (arbitraryStartIdx < slashIdx && slashIdx < arbitraryEndIdx) {\n slashIdx = modifier.lastIndexOf(\"/\", arbitraryStartIdx);\n }\n }\n }\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [modifier, void 0];\n }\n let arbitrary = isArbitraryValue(modifier);\n if (arbitrary && !modifier.includes(\"]/[\")) {\n return [modifier, void 0];\n }\n return [modifier.slice(0, slashIdx), modifier.slice(slashIdx + 1)];\n}\nfunction parseColorFormat(value2) {\n if (typeof value2 === \"string\" && value2.includes(\"<alpha-value>\")) {\n let oldValue = value2;\n return ({ opacityValue = 1 }) => oldValue.replace(\"<alpha-value>\", opacityValue);\n }\n return value2;\n}\nfunction unwrapArbitraryModifier(modifier) {\n return normalize(modifier.slice(1, -1));\n}\nfunction asColor(modifier, options = {}, { tailwindConfig = {} } = {}) {\n if (options.values?.[modifier] !== void 0) {\n return parseColorFormat(options.values?.[modifier]);\n }\n let [color2, alpha] = splitUtilityModifier(modifier);\n if (alpha !== void 0) {\n let normalizedColor = options.values?.[color2] ?? (isArbitraryValue(color2) ? color2.slice(1, -1) : void 0);\n if (normalizedColor === void 0) {\n return void 0;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return withAlphaValue(normalizedColor, unwrapArbitraryModifier(alpha));\n }\n if (tailwindConfig.theme?.opacity?.[alpha] === void 0) {\n return void 0;\n }\n return withAlphaValue(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, { validate: color });\n}\nfunction asLookupValue(modifier, options = {}) {\n return options.values?.[modifier];\n}\nfunction guess(validate) {\n return (modifier, options) => {\n return asValue(modifier, options, { validate });\n };\n}\nvar typeMap = {\n any: asValue,\n color: asColor,\n url: guess(url),\n image: guess(image),\n length: guess(length),\n percentage: guess(percentage),\n position: guess(position),\n lookup: asLookupValue,\n \"generic-name\": guess(genericName),\n \"family-name\": guess(familyName),\n number: guess(number),\n \"line-width\": guess(lineWidth),\n \"absolute-size\": guess(absoluteSize),\n \"relative-size\": guess(relativeSize),\n shadow: guess(shadow),\n size: guess(backgroundSize)\n};\nvar supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1)\n return [void 0, input];\n return [input.slice(0, idx), input.slice(idx + 1)];\n}\nfunction coerceValue(types2, modifier, options, tailwindConfig) {\n if (options.values && modifier in options.values) {\n for (let { type } of types2 ?? []) {\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === void 0) {\n continue;\n }\n return [result, type, null];\n }\n }\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value2] = splitAtFirst(arbitraryValue, \":\");\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value2 = arbitraryValue;\n } else if (explicitType !== void 0 && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value2.length > 0 && supportedTypes.includes(explicitType)) {\n return [asValue(`[${value2}]`, options), explicitType, null];\n }\n }\n let matches = getMatchingTypes(types2, modifier, options, tailwindConfig);\n for (let match of matches) {\n return match;\n }\n return [];\n}\nfunction* getMatchingTypes(types2, rawModifier, options, tailwindConfig) {\n let modifiersEnabled = flagEnabled(tailwindConfig, \"generalizedModifiers\");\n let [modifier, utilityModifier] = splitUtilityModifier(rawModifier);\n let canUseUtilityModifier = modifiersEnabled && options.modifiers != null && (options.modifiers === \"any\" || typeof options.modifiers === \"object\" && (utilityModifier && isArbitraryValue(utilityModifier) || utilityModifier in options.modifiers));\n if (!canUseUtilityModifier) {\n modifier = rawModifier;\n utilityModifier = void 0;\n }\n if (utilityModifier !== void 0 && modifier === \"\") {\n modifier = \"DEFAULT\";\n }\n if (utilityModifier !== void 0) {\n if (typeof options.modifiers === \"object\") {\n let configValue = options.modifiers?.[utilityModifier] ?? null;\n if (configValue !== null) {\n utilityModifier = configValue;\n } else if (isArbitraryValue(utilityModifier)) {\n utilityModifier = unwrapArbitraryModifier(utilityModifier);\n }\n }\n }\n for (let { type } of types2 ?? []) {\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === void 0) {\n continue;\n }\n yield [result, type, utilityModifier ?? null];\n }\n}\n\n// node_modules/tailwindcss/src/util/formatVariantSelector.js\nimport selectorParser from \"postcss-selector-parser\";\nimport unescape from \"postcss-selector-parser/dist/util/unesc.js\";\n\n// node_modules/tailwindcss/src/util/escapeClassName.js\nimport parser2 from \"postcss-selector-parser\";\nfunction escapeClassName(className) {\n let node = parser2.className();\n node.value = className;\n return escapeCommas(node?.raws?.value ?? node.value);\n}\n\n// node_modules/tailwindcss/src/util/pseudoElements.js\nvar elementProperties = {\n \"::after\": [\"terminal\", \"jumpable\"],\n \"::backdrop\": [\"terminal\", \"jumpable\"],\n \"::before\": [\"terminal\", \"jumpable\"],\n \"::cue\": [\"terminal\"],\n \"::cue-region\": [\"terminal\"],\n \"::first-letter\": [\"terminal\", \"jumpable\"],\n \"::first-line\": [\"terminal\", \"jumpable\"],\n \"::grammar-error\": [\"terminal\"],\n \"::marker\": [\"terminal\", \"jumpable\"],\n \"::part\": [\"terminal\", \"actionable\"],\n \"::placeholder\": [\"terminal\", \"jumpable\"],\n \"::selection\": [\"terminal\", \"jumpable\"],\n \"::slotted\": [\"terminal\"],\n \"::spelling-error\": [\"terminal\"],\n \"::target-text\": [\"terminal\"],\n \"::file-selector-button\": [\"terminal\", \"actionable\"],\n \"::deep\": [\"actionable\"],\n \"::v-deep\": [\"actionable\"],\n \"::ng-deep\": [\"actionable\"],\n \":after\": [\"terminal\", \"jumpable\"],\n \":before\": [\"terminal\", \"jumpable\"],\n \":first-letter\": [\"terminal\", \"jumpable\"],\n \":first-line\": [\"terminal\", \"jumpable\"],\n \":where\": [],\n \":is\": [],\n \":has\": [],\n __default__: [\"terminal\", \"actionable\"]\n};\nfunction movePseudos(sel) {\n let [pseudos] = movablePseudos(sel);\n pseudos.forEach(([sel2, pseudo]) => sel2.removeChild(pseudo));\n sel.nodes.push(...pseudos.map(([, pseudo]) => pseudo));\n return sel;\n}\nfunction movablePseudos(sel) {\n let buffer = [];\n let lastSeenElement = null;\n for (let node of sel.nodes) {\n if (node.type === \"combinator\") {\n buffer = buffer.filter(([, node2]) => propertiesForPseudo(node2).includes(\"jumpable\"));\n lastSeenElement = null;\n } else if (node.type === \"pseudo\") {\n if (isMovablePseudoElement(node)) {\n lastSeenElement = node;\n buffer.push([sel, node, null]);\n } else if (lastSeenElement && isAttachablePseudoClass(node, lastSeenElement)) {\n buffer.push([sel, node, lastSeenElement]);\n } else {\n lastSeenElement = null;\n }\n for (let sub of node.nodes ?? []) {\n let [movable, lastSeenElementInSub] = movablePseudos(sub);\n lastSeenElement = lastSeenElementInSub || lastSeenElement;\n buffer.push(...movable);\n }\n }\n }\n return [buffer, lastSeenElement];\n}\nfunction isPseudoElement(node) {\n return node.value.startsWith(\"::\") || elementProperties[node.value] !== void 0;\n}\nfunction isMovablePseudoElement(node) {\n return isPseudoElement(node) && propertiesForPseudo(node).includes(\"terminal\");\n}\nfunction isAttachablePseudoClass(node, pseudo) {\n if (node.type !== \"pseudo\")\n return false;\n if (isPseudoElement(node))\n return false;\n return propertiesForPseudo(pseudo).includes(\"actionable\");\n}\nfunction propertiesForPseudo(pseudo) {\n return elementProperties[pseudo.value] ?? elementProperties.__default__;\n}\n\n// node_modules/tailwindcss/src/util/formatVariantSelector.js\nvar MERGE = \":merge\";\nfunction formatVariantSelector(formats, { context, candidate }) {\n let prefix3 = context?.tailwindConfig.prefix ?? \"\";\n let parsedFormats = formats.map((format) => {\n let ast = selectorParser().astSync(format.format);\n return {\n ...format,\n ast: format.respectPrefix ? prefixSelector_default(prefix3, ast) : ast\n };\n });\n let formatAst = selectorParser.root({\n nodes: [\n selectorParser.selector({\n nodes: [selectorParser.className({ value: escapeClassName(candidate) })]\n })\n ]\n });\n for (let { ast } of parsedFormats) {\n ;\n [formatAst, ast] = handleMergePseudo(formatAst, ast);\n ast.walkNesting((nesting) => nesting.replaceWith(...formatAst.nodes[0].nodes));\n formatAst = ast;\n }\n return formatAst;\n}\nfunction simpleSelectorForNode(node) {\n let nodes = [];\n while (node.prev() && node.prev().type !== \"combinator\") {\n node = node.prev();\n }\n while (node && node.type !== \"combinator\") {\n nodes.push(node);\n node = node.next();\n }\n return nodes;\n}\nfunction resortSelector(sel) {\n sel.sort((a, b) => {\n if (a.type === \"tag\" && b.type === \"class\") {\n return -1;\n } else if (a.type === \"class\" && b.type === \"tag\") {\n return 1;\n } else if (a.type === \"class\" && b.type === \"pseudo\" && b.value.startsWith(\"::\")) {\n return -1;\n } else if (a.type === \"pseudo\" && a.value.startsWith(\"::\") && b.type === \"class\") {\n return 1;\n }\n return sel.index(a) - sel.index(b);\n });\n return sel;\n}\nfunction eliminateIrrelevantSelectors(sel, base) {\n let hasClassesMatchingCandidate = false;\n sel.walk((child) => {\n if (child.type === \"class\" && child.value === base) {\n hasClassesMatchingCandidate = true;\n return false;\n }\n });\n if (!hasClassesMatchingCandidate) {\n sel.remove();\n }\n}\nfunction finalizeSelector(current, formats, { context, candidate, base }) {\n let separator = context?.tailwindConfig?.separator ?? \":\";\n base = base ?? splitAtTopLevelOnly(candidate, separator).pop();\n let selector = selectorParser().astSync(current);\n selector.walkClasses((node) => {\n if (node.raws && node.value.includes(base)) {\n node.raws.value = escapeClassName(unescape(node.raws.value));\n }\n });\n selector.each((sel) => eliminateIrrelevantSelectors(sel, base));\n if (selector.length === 0) {\n return null;\n }\n let formatAst = Array.isArray(formats) ? formatVariantSelector(formats, { context, candidate }) : formats;\n if (formatAst === null) {\n return selector.toString();\n }\n let simpleStart = selectorParser.comment({ value: \"/*__simple__*/\" });\n let simpleEnd = selectorParser.comment({ value: \"/*__simple__*/\" });\n selector.walkClasses((node) => {\n if (node.value !== base) {\n return;\n }\n let parent = node.parent;\n let formatNodes = formatAst.nodes[0].nodes;\n if (parent.nodes.length === 1) {\n node.replaceWith(...formatNodes);\n return;\n }\n let simpleSelector = simpleSelectorForNode(node);\n parent.insertBefore(simpleSelector[0], simpleStart);\n parent.insertAfter(simpleSelector[simpleSelector.length - 1], simpleEnd);\n for (let child of formatNodes) {\n parent.insertBefore(simpleSelector[0], child.clone());\n }\n node.remove();\n simpleSelector = simpleSelectorForNode(simpleStart);\n let firstNode = parent.index(simpleStart);\n parent.nodes.splice(\n firstNode,\n simpleSelector.length,\n ...resortSelector(selectorParser.selector({ nodes: simpleSelector })).nodes\n );\n simpleStart.remove();\n simpleEnd.remove();\n });\n selector.walkPseudos((p) => {\n if (p.value === MERGE) {\n p.replaceWith(p.nodes);\n }\n });\n selector.each((sel) => movePseudos(sel));\n return selector.toString();\n}\nfunction handleMergePseudo(selector, format) {\n let merges = [];\n selector.walkPseudos((pseudo) => {\n if (pseudo.value === MERGE) {\n merges.push({\n pseudo,\n value: pseudo.nodes[0].toString()\n });\n }\n });\n format.walkPseudos((pseudo) => {\n if (pseudo.value !== MERGE) {\n return;\n }\n let value2 = pseudo.nodes[0].toString();\n let existing = merges.find((merge) => merge.value === value2);\n if (!existing) {\n return;\n }\n let attachments = [];\n let next = pseudo.next();\n while (next && next.type !== \"combinator\") {\n attachments.push(next);\n next = next.next();\n }\n let combinator = next;\n existing.pseudo.parent.insertAfter(\n existing.pseudo,\n selectorParser.selector({ nodes: attachments.map((node) => node.clone()) })\n );\n pseudo.remove();\n attachments.forEach((node) => node.remove());\n if (combinator && combinator.type === \"combinator\") {\n combinator.remove();\n }\n });\n return [selector, format];\n}\n\n// node_modules/tailwindcss/src/util/nameClass.js\nfunction asClass(name) {\n return escapeCommas(`.${escapeClassName(name)}`);\n}\nfunction nameClass(classPrefix, key) {\n return asClass(formatClass(classPrefix, key));\n}\nfunction formatClass(classPrefix, key) {\n if (key === \"DEFAULT\") {\n return classPrefix;\n }\n if (key === \"-\" || key === \"-DEFAULT\") {\n return `-${classPrefix}`;\n }\n if (key.startsWith(\"-\")) {\n return `-${classPrefix}${key}`;\n }\n if (key.startsWith(\"/\")) {\n return `${classPrefix}${key}`;\n }\n return `${classPrefix}-${key}`;\n}\n\n// node_modules/tailwindcss/src/lib/setupContextUtils.js\nimport postcss4 from \"postcss\";\nimport dlv from \"dlv\";\nimport selectorParser2 from \"postcss-selector-parser\";\n\n// node_modules/tailwindcss/src/util/transformThemeValue.js\nimport postcss2 from \"postcss\";\nfunction transformThemeValue(themeSection) {\n if ([\"fontSize\", \"outline\"].includes(themeSection)) {\n return (value2) => {\n if (typeof value2 === \"function\")\n value2 = value2({});\n if (Array.isArray(value2))\n value2 = value2[0];\n return value2;\n };\n }\n if (themeSection === \"fontFamily\") {\n return (value2) => {\n if (typeof value2 === \"function\")\n value2 = value2({});\n let families = Array.isArray(value2) && isPlainObject(value2[1]) ? value2[0] : value2;\n return Array.isArray(families) ? families.join(\", \") : families;\n };\n }\n if ([\n \"boxShadow\",\n \"transitionProperty\",\n \"transitionDuration\",\n \"transitionDelay\",\n \"transitionTimingFunction\",\n \"backgroundImage\",\n \"backgroundSize\",\n \"backgroundColor\",\n \"cursor\",\n \"animation\"\n ].includes(themeSection)) {\n return (value2) => {\n if (typeof value2 === \"function\")\n value2 = value2({});\n if (Array.isArray(value2))\n value2 = value2.join(\", \");\n return value2;\n };\n }\n if ([\"gridTemplateColumns\", \"gridTemplateRows\", \"objectPosition\"].includes(themeSection)) {\n return (value2) => {\n if (typeof value2 === \"function\")\n value2 = value2({});\n if (typeof value2 === \"string\")\n value2 = postcss2.list.comma(value2).join(\" \");\n return value2;\n };\n }\n return (value2, opts = {}) => {\n if (typeof value2 === \"function\") {\n value2 = value2(opts);\n }\n return value2;\n };\n}\n\n// src/stubs/path.ts\nvar join = () => \"\";\n\n// node_modules/tailwindcss/src/corePlugins.js\nimport postcss3 from \"postcss\";\n\n// node_modules/tailwindcss/src/util/createUtilityPlugin.js\nfunction createUtilityPlugin(themeKey, utilityVariations = [[themeKey, [themeKey]]], { filterDefault = false, ...options } = {}) {\n let transformValue = transformThemeValue(themeKey);\n return function({ matchUtilities, theme }) {\n for (let utilityVariation of utilityVariations) {\n let group = Array.isArray(utilityVariation[0]) ? utilityVariation : [utilityVariation];\n matchUtilities(\n group.reduce((obj, [classPrefix, properties]) => {\n return Object.assign(obj, {\n [classPrefix]: (value2) => {\n return properties.reduce((obj2, name) => {\n if (Array.isArray(name)) {\n return Object.assign(obj2, { [name[0]]: name[1] });\n }\n return Object.assign(obj2, { [name]: transformValue(value2) });\n }, {});\n }\n });\n }, {}),\n {\n ...options,\n values: filterDefault ? Object.fromEntries(\n Object.entries(theme(themeKey) ?? {}).filter(([modifier]) => modifier !== \"DEFAULT\")\n ) : theme(themeKey)\n }\n );\n }\n };\n}\n\n// node_modules/tailwindcss/src/util/buildMediaQuery.js\nfunction buildMediaQuery(screens) {\n screens = Array.isArray(screens) ? screens : [screens];\n return screens.map((screen) => {\n let values = screen.values.map((screen2) => {\n if (screen2.raw !== void 0) {\n return screen2.raw;\n }\n return [\n screen2.min && `(min-width: ${screen2.min})`,\n screen2.max && `(max-width: ${screen2.max})`\n ].filter(Boolean).join(\" and \");\n });\n return screen.not ? `not all and ${values}` : values;\n }).join(\", \");\n}\n\n// node_modules/tailwindcss/src/util/parseAnimationValue.js\nvar DIRECTIONS = /* @__PURE__ */ new Set([\"normal\", \"reverse\", \"alternate\", \"alternate-reverse\"]);\nvar PLAY_STATES = /* @__PURE__ */ new Set([\"running\", \"paused\"]);\nvar FILL_MODES = /* @__PURE__ */ new Set([\"none\", \"forwards\", \"backwards\", \"both\"]);\nvar ITERATION_COUNTS = /* @__PURE__ */ new Set([\"infinite\"]);\nvar TIMINGS = /* @__PURE__ */ new Set([\n \"linear\",\n \"ease\",\n \"ease-in\",\n \"ease-out\",\n \"ease-in-out\",\n \"step-start\",\n \"step-end\"\n]);\nvar TIMING_FNS = [\"cubic-bezier\", \"steps\"];\nvar COMMA = /\\,(?![^(]*\\))/g;\nvar SPACE2 = /\\ +(?![^(]*\\))/g;\nvar TIME = /^(-?[\\d.]+m?s)$/;\nvar DIGIT = /^(\\d+)$/;\nfunction parseAnimationValue(input) {\n let animations = input.split(COMMA);\n return animations.map((animation) => {\n let value2 = animation.trim();\n let result = { value: value2 };\n let parts = value2.split(SPACE2);\n let seen = /* @__PURE__ */ new Set();\n for (let part of parts) {\n if (!seen.has(\"DIRECTIONS\") && DIRECTIONS.has(part)) {\n result.direction = part;\n seen.add(\"DIRECTIONS\");\n } else if (!seen.has(\"PLAY_STATES\") && PLAY_STATES.has(part)) {\n result.playState = part;\n seen.add(\"PLAY_STATES\");\n } else if (!seen.has(\"FILL_MODES\") && FILL_MODES.has(part)) {\n result.fillMode = part;\n seen.add(\"FILL_MODES\");\n } else if (!seen.has(\"ITERATION_COUNTS\") && (ITERATION_COUNTS.has(part) || DIGIT.test(part))) {\n result.iterationCount = part;\n seen.add(\"ITERATION_COUNTS\");\n } else if (!seen.has(\"TIMING_FUNCTION\") && TIMINGS.has(part)) {\n result.timingFunction = part;\n seen.add(\"TIMING_FUNCTION\");\n } else if (!seen.has(\"TIMING_FUNCTION\") && TIMING_FNS.some((f) => part.startsWith(`${f}(`))) {\n result.timingFunction = part;\n seen.add(\"TIMING_FUNCTION\");\n } else if (!seen.has(\"DURATION\") && TIME.test(part)) {\n result.duration = part;\n seen.add(\"DURATION\");\n } else if (!seen.has(\"DELAY\") && TIME.test(part)) {\n result.delay = part;\n seen.add(\"DELAY\");\n } else if (!seen.has(\"NAME\")) {\n result.name = part;\n seen.add(\"NAME\");\n } else {\n if (!result.unknown)\n result.unknown = [];\n result.unknown.push(part);\n }\n }\n return result;\n });\n}\n\n// node_modules/tailwindcss/src/util/flattenColorPalette.js\nvar flattenColorPalette = (colors) => Object.assign(\n {},\n ...Object.entries(colors ?? {}).flatMap(\n ([color2, values]) => typeof values == \"object\" ? Object.entries(flattenColorPalette(values)).map(([number2, hex]) => ({\n [color2 + (number2 === \"DEFAULT\" ? \"\" : `-${number2}`)]: hex\n })) : [{ [`${color2}`]: values }]\n )\n);\nvar flattenColorPalette_default = flattenColorPalette;\n\n// node_modules/tailwindcss/src/util/toColorValue.js\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n\n// node_modules/tailwindcss/src/util/normalizeScreens.js\nfunction normalizeScreens(screens, root = true) {\n if (Array.isArray(screens)) {\n return screens.map((screen) => {\n if (root && Array.isArray(screen)) {\n throw new Error(\"The tuple syntax is not supported for `screens`.\");\n }\n if (typeof screen === \"string\") {\n return { name: screen.toString(), not: false, values: [{ min: screen, max: void 0 }] };\n }\n let [name, options] = screen;\n name = name.toString();\n if (typeof options === \"string\") {\n return { name, not: false, values: [{ min: options, max: void 0 }] };\n }\n if (Array.isArray(options)) {\n return { name, not: false, values: options.map((option) => resolveValue(option)) };\n }\n return { name, not: false, values: [resolveValue(options)] };\n });\n }\n return normalizeScreens(Object.entries(screens ?? {}), false);\n}\nfunction isScreenSortable(screen) {\n if (screen.values.length !== 1) {\n return { result: false, reason: \"multiple-values\" };\n } else if (screen.values[0].raw !== void 0) {\n return { result: false, reason: \"raw-values\" };\n } else if (screen.values[0].min !== void 0 && screen.values[0].max !== void 0) {\n return { result: false, reason: \"min-and-max\" };\n }\n return { result: true, reason: null };\n}\nfunction compareScreens(type, a, z) {\n let aScreen = toScreen(a, type);\n let zScreen = toScreen(z, type);\n let aSorting = isScreenSortable(aScreen);\n let bSorting = isScreenSortable(zScreen);\n if (aSorting.reason === \"multiple-values\" || bSorting.reason === \"multiple-values\") {\n throw new Error(\n \"Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.\"\n );\n } else if (aSorting.reason === \"raw-values\" || bSorting.reason === \"raw-values\") {\n throw new Error(\n \"Attempted to sort a screen with raw values. This should never happen. Please open a bug report.\"\n );\n } else if (aSorting.reason === \"min-and-max\" || bSorting.reason === \"min-and-max\") {\n throw new Error(\n \"Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.\"\n );\n }\n let { min: aMin, max: aMax } = aScreen.values[0];\n let { min: zMin, max: zMax } = zScreen.values[0];\n if (a.not)\n [aMin, aMax] = [aMax, aMin];\n if (z.not)\n [zMin, zMax] = [zMax, zMin];\n aMin = aMin === void 0 ? aMin : parseFloat(aMin);\n aMax = aMax === void 0 ? aMax : parseFloat(aMax);\n zMin = zMin === void 0 ? zMin : parseFloat(zMin);\n zMax = zMax === void 0 ? zMax : parseFloat(zMax);\n let [aValue, zValue] = type === \"min\" ? [aMin, zMin] : [zMax, aMax];\n return aValue - zValue;\n}\nfunction toScreen(value2, type) {\n if (typeof value2 === \"object\") {\n return value2;\n }\n return {\n name: \"arbitrary-screen\",\n values: [{ [type]: value2 }]\n };\n}\nfunction resolveValue({ \"min-width\": _minWidth, min = _minWidth, max: max2, raw } = {}) {\n return { min, max: max2, raw };\n}\n\n// node_modules/tailwindcss/src/util/removeAlphaVariables.js\nfunction removeAlphaVariables(container, toRemove) {\n container.walkDecls((decl) => {\n if (toRemove.includes(decl.prop)) {\n decl.remove();\n return;\n }\n for (let varName of toRemove) {\n if (decl.value.includes(`/ var(${varName})`)) {\n decl.value = decl.value.replace(`/ var(${varName})`, \"\");\n }\n }\n });\n}\n\n// node_modules/tailwindcss/src/corePlugins.js\nvar variantPlugins = {\n childVariant: ({ addVariant }) => {\n addVariant(\"*\", \"& > *\");\n },\n pseudoElementVariants: ({ addVariant }) => {\n addVariant(\"first-letter\", \"&::first-letter\");\n addVariant(\"first-line\", \"&::first-line\");\n addVariant(\"marker\", [\n ({ container }) => {\n removeAlphaVariables(container, [\"--tw-text-opacity\"]);\n return \"& *::marker\";\n },\n ({ container }) => {\n removeAlphaVariables(container, [\"--tw-text-opacity\"]);\n return \"&::marker\";\n }\n ]);\n addVariant(\"selection\", [\"& *::selection\", \"&::selection\"]);\n addVariant(\"file\", \"&::file-selector-button\");\n addVariant(\"placeholder\", \"&::placeholder\");\n addVariant(\"backdrop\", \"&::backdrop\");\n addVariant(\"before\", ({ container }) => {\n container.walkRules((rule) => {\n let foundContent = false;\n rule.walkDecls(\"content\", () => {\n foundContent = true;\n });\n if (!foundContent) {\n rule.prepend(postcss3.decl({ prop: \"content\", value: \"var(--tw-content)\" }));\n }\n });\n return \"&::before\";\n });\n addVariant(\"after\", ({ container }) => {\n container.walkRules((rule) => {\n let foundContent = false;\n rule.walkDecls(\"content\", () => {\n foundContent = true;\n });\n if (!foundContent) {\n rule.prepend(postcss3.decl({ prop: \"content\", value: \"var(--tw-content)\" }));\n }\n });\n return \"&::after\";\n });\n },\n pseudoClassVariants: ({ addVariant, matchVariant, config, prefix: prefix3 }) => {\n let pseudoVariants = [\n [\"first\", \"&:first-child\"],\n [\"last\", \"&:last-child\"],\n [\"only\", \"&:only-child\"],\n [\"odd\", \"&:nth-child(odd)\"],\n [\"even\", \"&:nth-child(even)\"],\n \"first-of-type\",\n \"last-of-type\",\n \"only-of-type\",\n [\n \"visited\",\n ({ container }) => {\n removeAlphaVariables(container, [\n \"--tw-text-opacity\",\n \"--tw-border-opacity\",\n \"--tw-bg-opacity\"\n ]);\n return \"&:visited\";\n }\n ],\n \"target\",\n [\"open\", \"&[open]\"],\n \"default\",\n \"checked\",\n \"indeterminate\",\n \"placeholder-shown\",\n \"autofill\",\n \"optional\",\n \"required\",\n \"valid\",\n \"invalid\",\n \"in-range\",\n \"out-of-range\",\n \"read-only\",\n \"empty\",\n \"focus-within\",\n [\n \"hover\",\n !flagEnabled(config(), \"hoverOnlyWhenSupported\") ? \"&:hover\" : \"@media (hover: hover) and (pointer: fine) { &:hover }\"\n ],\n \"focus\",\n \"focus-visible\",\n \"active\",\n \"enabled\",\n \"disabled\"\n ].map((variant) => Array.isArray(variant) ? variant : [variant, `&:${variant}`]);\n for (let [variantName, state] of pseudoVariants) {\n addVariant(variantName, (ctx) => {\n let result = typeof state === \"function\" ? state(ctx) : state;\n return result;\n });\n }\n let variants = {\n group: (_, { modifier }) => modifier ? [`:merge(${prefix3(\".group\")}\\\\/${escapeClassName(modifier)})`, \" &\"] : [`:merge(${prefix3(\".group\")})`, \" &\"],\n peer: (_, { modifier }) => modifier ? [`:merge(${prefix3(\".peer\")}\\\\/${escapeClassName(modifier)})`, \" ~ &\"] : [`:merge(${prefix3(\".peer\")})`, \" ~ &\"]\n };\n for (let [name, fn] of Object.entries(variants)) {\n matchVariant(\n name,\n (value2 = \"\", extra) => {\n let result = normalize(typeof value2 === \"function\" ? value2(extra) : value2);\n if (!result.includes(\"&\"))\n result = \"&\" + result;\n let [a, b] = fn(\"\", extra);\n let start = null;\n let end = null;\n let quotes2 = 0;\n for (let i = 0; i < result.length; ++i) {\n let c = result[i];\n if (c === \"&\") {\n start = i;\n } else if (c === \"'\" || c === '\"') {\n quotes2 += 1;\n } else if (start !== null && c === \" \" && !quotes2) {\n end = i;\n }\n }\n if (start !== null && end === null) {\n end = result.length;\n }\n return result.slice(0, start) + a + result.slice(start + 1, end) + b + result.slice(end);\n },\n {\n values: Object.fromEntries(pseudoVariants),\n [INTERNAL_FEATURES]: {\n respectPrefix: false\n }\n }\n );\n }\n },\n directionVariants: ({ addVariant }) => {\n addVariant(\"ltr\", '&:where([dir=\"ltr\"], [dir=\"ltr\"] *)');\n addVariant(\"rtl\", '&:where([dir=\"rtl\"], [dir=\"rtl\"] *)');\n },\n reducedMotionVariants: ({ addVariant }) => {\n addVariant(\"motion-safe\", \"@media (prefers-reduced-motion: no-preference)\");\n addVariant(\"motion-reduce\", \"@media (prefers-reduced-motion: reduce)\");\n },\n darkVariants: ({ config, addVariant }) => {\n let [mode, selector = \".dark\"] = [].concat(config(\"darkMode\", \"media\"));\n if (mode === false) {\n mode = \"media\";\n log_default.warn(\"darkmode-false\", [\n \"The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.\",\n \"Change `darkMode` to `media` or remove it entirely.\",\n \"https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration\"\n ]);\n }\n if (mode === \"variant\") {\n let formats;\n if (Array.isArray(selector)) {\n formats = selector;\n } else if (typeof selector === \"function\") {\n formats = selector;\n } else if (typeof selector === \"string\") {\n formats = [selector];\n }\n if (Array.isArray(formats)) {\n for (let format of formats) {\n if (format === \".dark\") {\n mode = false;\n log_default.warn(\"darkmode-variant-without-selector\", [\n \"When using `variant` for `darkMode`, you must provide a selector.\",\n 'Example: `darkMode: [\"variant\", \".your-selector &\"]`'\n ]);\n } else if (!format.includes(\"&\")) {\n mode = false;\n log_default.warn(\"darkmode-variant-without-ampersand\", [\n \"When using `variant` for `darkMode`, your selector must contain `&`.\",\n 'Example `darkMode: [\"variant\", \".your-selector &\"]`'\n ]);\n }\n }\n }\n selector = formats;\n }\n if (mode === \"selector\") {\n addVariant(\"dark\", `&:where(${selector}, ${selector} *)`);\n } else if (mode === \"media\") {\n addVariant(\"dark\", \"@media (prefers-color-scheme: dark)\");\n } else if (mode === \"variant\") {\n addVariant(\"dark\", selector);\n } else if (mode === \"class\") {\n addVariant(\"dark\", `:is(${selector} &)`);\n }\n },\n printVariant: ({ addVariant }) => {\n addVariant(\"print\", \"@media print\");\n },\n screenVariants: ({ theme, addVariant, matchVariant }) => {\n let rawScreens = theme(\"screens\") ?? {};\n let areSimpleScreens = Object.values(rawScreens).every((v) => typeof v === \"string\");\n let screens = normalizeScreens(theme(\"screens\"));\n let unitCache = /* @__PURE__ */ new Set([]);\n function units(value2) {\n return value2.match(/(\\D+)$/)?.[1] ?? \"(none)\";\n }\n function recordUnits(value2) {\n if (value2 !== void 0) {\n unitCache.add(units(value2));\n }\n }\n function canUseUnits(value2) {\n recordUnits(value2);\n return unitCache.size === 1;\n }\n for (const screen of screens) {\n for (const value2 of screen.values) {\n recordUnits(value2.min);\n recordUnits(value2.max);\n }\n }\n let screensUseConsistentUnits = unitCache.size <= 1;\n function buildScreenValues(type) {\n return Object.fromEntries(\n screens.filter((screen) => isScreenSortable(screen).result).map((screen) => {\n let { min, max: max2 } = screen.values[0];\n if (type === \"min\" && min !== void 0) {\n return screen;\n } else if (type === \"min\" && max2 !== void 0) {\n return { ...screen, not: !screen.not };\n } else if (type === \"max\" && max2 !== void 0) {\n return screen;\n } else if (type === \"max\" && min !== void 0) {\n return { ...screen, not: !screen.not };\n }\n }).map((screen) => [screen.name, screen])\n );\n }\n function buildSort(type) {\n return (a, z) => compareScreens(type, a.value, z.value);\n }\n let maxSort = buildSort(\"max\");\n let minSort = buildSort(\"min\");\n function buildScreenVariant(type) {\n return (value2) => {\n if (!areSimpleScreens) {\n log_default.warn(\"complex-screen-config\", [\n \"The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects.\"\n ]);\n return [];\n } else if (!screensUseConsistentUnits) {\n log_default.warn(\"mixed-screen-units\", [\n \"The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units.\"\n ]);\n return [];\n } else if (typeof value2 === \"string\" && !canUseUnits(value2)) {\n log_default.warn(\"minmax-have-mixed-units\", [\n \"The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units.\"\n ]);\n return [];\n }\n return [`@media ${buildMediaQuery(toScreen(value2, type))}`];\n };\n }\n matchVariant(\"max\", buildScreenVariant(\"max\"), {\n sort: maxSort,\n values: areSimpleScreens ? buildScreenValues(\"max\") : {}\n });\n let id = \"min-screens\";\n for (let screen of screens) {\n addVariant(screen.name, `@media ${buildMediaQuery(screen)}`, {\n id,\n sort: areSimpleScreens && screensUseConsistentUnits ? minSort : void 0,\n value: screen\n });\n }\n matchVariant(\"min\", buildScreenVariant(\"min\"), {\n id,\n sort: minSort\n });\n },\n supportsVariants: ({ matchVariant, theme }) => {\n matchVariant(\n \"supports\",\n (value2 = \"\") => {\n let check = normalize(value2);\n let isRaw = /^\\w*\\s*\\(/.test(check);\n check = isRaw ? check.replace(/\\b(and|or|not)\\b/g, \" $1 \") : check;\n if (isRaw) {\n return `@supports ${check}`;\n }\n if (!check.includes(\":\")) {\n check = `${check}: var(--tw)`;\n }\n if (!(check.startsWith(\"(\") && check.endsWith(\")\"))) {\n check = `(${check})`;\n }\n return `@supports ${check}`;\n },\n { values: theme(\"supports\") ?? {} }\n );\n },\n hasVariants: ({ matchVariant }) => {\n matchVariant(\"has\", (value2) => `&:has(${normalize(value2)})`, { values: {} });\n matchVariant(\n \"group-has\",\n (value2, { modifier }) => modifier ? `:merge(.group\\\\/${modifier}):has(${normalize(value2)}) &` : `:merge(.group):has(${normalize(value2)}) &`,\n { values: {} }\n );\n matchVariant(\n \"peer-has\",\n (value2, { modifier }) => modifier ? `:merge(.peer\\\\/${modifier}):has(${normalize(value2)}) ~ &` : `:merge(.peer):has(${normalize(value2)}) ~ &`,\n { values: {} }\n );\n },\n ariaVariants: ({ matchVariant, theme }) => {\n matchVariant(\"aria\", (value2) => `&[aria-${normalize(value2)}]`, { values: theme(\"aria\") ?? {} });\n matchVariant(\n \"group-aria\",\n (value2, { modifier }) => modifier ? `:merge(.group\\\\/${modifier})[aria-${normalize(value2)}] &` : `:merge(.group)[aria-${normalize(value2)}] &`,\n { values: theme(\"aria\") ?? {} }\n );\n matchVariant(\n \"peer-aria\",\n (value2, { modifier }) => modifier ? `:merge(.peer\\\\/${modifier})[aria-${normalize(value2)}] ~ &` : `:merge(.peer)[aria-${normalize(value2)}] ~ &`,\n { values: theme(\"aria\") ?? {} }\n );\n },\n dataVariants: ({ matchVariant, theme }) => {\n matchVariant(\"data\", (value2) => `&[data-${normalize(value2)}]`, { values: theme(\"data\") ?? {} });\n matchVariant(\n \"group-data\",\n (value2, { modifier }) => modifier ? `:merge(.group\\\\/${modifier})[data-${normalize(value2)}] &` : `:merge(.group)[data-${normalize(value2)}] &`,\n { values: theme(\"data\") ?? {} }\n );\n matchVariant(\n \"peer-data\",\n (value2, { modifier }) => modifier ? `:merge(.peer\\\\/${modifier})[data-${normalize(value2)}] ~ &` : `:merge(.peer)[data-${normalize(value2)}] ~ &`,\n { values: theme(\"data\") ?? {} }\n );\n },\n orientationVariants: ({ addVariant }) => {\n addVariant(\"portrait\", \"@media (orientation: portrait)\");\n addVariant(\"landscape\", \"@media (orientation: landscape)\");\n },\n prefersContrastVariants: ({ addVariant }) => {\n addVariant(\"contrast-more\", \"@media (prefers-contrast: more)\");\n addVariant(\"contrast-less\", \"@media (prefers-contrast: less)\");\n },\n forcedColorsVariants: ({ addVariant }) => {\n addVariant(\"forced-colors\", \"@media (forced-colors: active)\");\n }\n};\nvar 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(\" \");\nvar 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(\" \");\nvar 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(\" \");\nvar corePlugins = {\n preflight: ({ addBase }) => {\n let preflightStyles = postcss3.parse(\n fs_default.readFileSync(join(\"/\", \"./css/preflight.css\"), \"utf8\")\n );\n addBase([\n postcss3.comment({\n text: `! tailwindcss v${version} | MIT License | https://tailwindcss.com`\n }),\n ...preflightStyles.nodes\n ]);\n },\n container: (() => {\n function extractMinWidths(breakpoints = []) {\n return breakpoints.flatMap((breakpoint) => breakpoint.values.map((breakpoint2) => breakpoint2.min)).filter((v) => v !== void 0);\n }\n function mapMinWidthsToPadding(minWidths, screens, paddings) {\n if (typeof paddings === \"undefined\") {\n return [];\n }\n if (!(typeof paddings === \"object\" && paddings !== null)) {\n return [\n {\n screen: \"DEFAULT\",\n minWidth: 0,\n padding: paddings\n }\n ];\n }\n let mapping = [];\n if (paddings.DEFAULT) {\n mapping.push({\n screen: \"DEFAULT\",\n minWidth: 0,\n padding: paddings.DEFAULT\n });\n }\n for (let minWidth of minWidths) {\n for (let screen of screens) {\n for (let { min } of screen.values) {\n if (min === minWidth) {\n mapping.push({ minWidth, padding: paddings[screen.name] });\n }\n }\n }\n }\n return mapping;\n }\n return function({ addComponents, theme }) {\n let screens = normalizeScreens(theme(\"container.screens\", theme(\"screens\")));\n let minWidths = extractMinWidths(screens);\n let paddings = mapMinWidthsToPadding(minWidths, screens, theme(\"container.padding\"));\n let generatePaddingFor = (minWidth) => {\n let paddingConfig = paddings.find((padding) => padding.minWidth === minWidth);\n if (!paddingConfig) {\n return {};\n }\n return {\n paddingRight: paddingConfig.padding,\n paddingLeft: paddingConfig.padding\n };\n };\n let atRules = Array.from(\n new Set(minWidths.slice().sort((a, z) => parseInt(a) - parseInt(z)))\n ).map((minWidth) => ({\n [`@media (min-width: ${minWidth})`]: {\n \".container\": {\n \"max-width\": minWidth,\n ...generatePaddingFor(minWidth)\n }\n }\n }));\n addComponents([\n {\n \".container\": Object.assign(\n { width: \"100%\" },\n theme(\"container.center\", false) ? { marginRight: \"auto\", marginLeft: \"auto\" } : {},\n generatePaddingFor(0)\n )\n },\n ...atRules\n ]);\n };\n })(),\n accessibility: ({ addUtilities }) => {\n addUtilities({\n \".sr-only\": {\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 \".not-sr-only\": {\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 });\n },\n pointerEvents: ({ addUtilities }) => {\n addUtilities({\n \".pointer-events-none\": { \"pointer-events\": \"none\" },\n \".pointer-events-auto\": { \"pointer-events\": \"auto\" }\n });\n },\n visibility: ({ addUtilities }) => {\n addUtilities({\n \".visible\": { visibility: \"visible\" },\n \".invisible\": { visibility: \"hidden\" },\n \".collapse\": { visibility: \"collapse\" }\n });\n },\n position: ({ addUtilities }) => {\n addUtilities({\n \".static\": { position: \"static\" },\n \".fixed\": { position: \"fixed\" },\n \".absolute\": { position: \"absolute\" },\n \".relative\": { position: \"relative\" },\n \".sticky\": { position: \"sticky\" }\n });\n },\n inset: createUtilityPlugin(\n \"inset\",\n [\n [\"inset\", [\"inset\"]],\n [\n [\"inset-x\", [\"left\", \"right\"]],\n [\"inset-y\", [\"top\", \"bottom\"]]\n ],\n [\n [\"start\", [\"inset-inline-start\"]],\n [\"end\", [\"inset-inline-end\"]],\n [\"top\", [\"top\"]],\n [\"right\", [\"right\"]],\n [\"bottom\", [\"bottom\"]],\n [\"left\", [\"left\"]]\n ]\n ],\n { supportsNegativeValues: true }\n ),\n isolation: ({ addUtilities }) => {\n addUtilities({\n \".isolate\": { isolation: \"isolate\" },\n \".isolation-auto\": { isolation: \"auto\" }\n });\n },\n zIndex: createUtilityPlugin(\"zIndex\", [[\"z\", [\"zIndex\"]]], { supportsNegativeValues: true }),\n order: createUtilityPlugin(\"order\", void 0, { supportsNegativeValues: true }),\n gridColumn: createUtilityPlugin(\"gridColumn\", [[\"col\", [\"gridColumn\"]]]),\n gridColumnStart: createUtilityPlugin(\"gridColumnStart\", [[\"col-start\", [\"gridColumnStart\"]]]),\n gridColumnEnd: createUtilityPlugin(\"gridColumnEnd\", [[\"col-end\", [\"gridColumnEnd\"]]]),\n gridRow: createUtilityPlugin(\"gridRow\", [[\"row\", [\"gridRow\"]]]),\n gridRowStart: createUtilityPlugin(\"gridRowStart\", [[\"row-start\", [\"gridRowStart\"]]]),\n gridRowEnd: createUtilityPlugin(\"gridRowEnd\", [[\"row-end\", [\"gridRowEnd\"]]]),\n float: ({ addUtilities }) => {\n addUtilities({\n \".float-start\": { float: \"inline-start\" },\n \".float-end\": { float: \"inline-end\" },\n \".float-right\": { float: \"right\" },\n \".float-left\": { float: \"left\" },\n \".float-none\": { float: \"none\" }\n });\n },\n clear: ({ addUtilities }) => {\n addUtilities({\n \".clear-start\": { clear: \"inline-start\" },\n \".clear-end\": { clear: \"inline-end\" },\n \".clear-left\": { clear: \"left\" },\n \".clear-right\": { clear: \"right\" },\n \".clear-both\": { clear: \"both\" },\n \".clear-none\": { clear: \"none\" }\n });\n },\n margin: createUtilityPlugin(\n \"margin\",\n [\n [\"m\", [\"margin\"]],\n [\n [\"mx\", [\"margin-left\", \"margin-right\"]],\n [\"my\", [\"margin-top\", \"margin-bottom\"]]\n ],\n [\n [\"ms\", [\"margin-inline-start\"]],\n [\"me\", [\"margin-inline-end\"]],\n [\"mt\", [\"margin-top\"]],\n [\"mr\", [\"margin-right\"]],\n [\"mb\", [\"margin-bottom\"]],\n [\"ml\", [\"margin-left\"]]\n ]\n ],\n { supportsNegativeValues: true }\n ),\n boxSizing: ({ addUtilities }) => {\n addUtilities({\n \".box-border\": { \"box-sizing\": \"border-box\" },\n \".box-content\": { \"box-sizing\": \"content-box\" }\n });\n },\n lineClamp: ({ matchUtilities, addUtilities, theme }) => {\n matchUtilities(\n {\n \"line-clamp\": (value2) => ({\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-box-orient\": \"vertical\",\n \"-webkit-line-clamp\": `${value2}`\n })\n },\n { values: theme(\"lineClamp\") }\n );\n addUtilities({\n \".line-clamp-none\": {\n overflow: \"visible\",\n display: \"block\",\n \"-webkit-box-orient\": \"horizontal\",\n \"-webkit-line-clamp\": \"none\"\n }\n });\n },\n display: ({ addUtilities }) => {\n addUtilities({\n \".block\": { display: \"block\" },\n \".inline-block\": { display: \"inline-block\" },\n \".inline\": { display: \"inline\" },\n \".flex\": { display: \"flex\" },\n \".inline-flex\": { display: \"inline-flex\" },\n \".table\": { display: \"table\" },\n \".inline-table\": { display: \"inline-table\" },\n \".table-caption\": { display: \"table-caption\" },\n \".table-cell\": { display: \"table-cell\" },\n \".table-column\": { display: \"table-column\" },\n \".table-column-group\": { display: \"table-column-group\" },\n \".table-footer-group\": { display: \"table-footer-group\" },\n \".table-header-group\": { display: \"table-header-group\" },\n \".table-row-group\": { display: \"table-row-group\" },\n \".table-row\": { display: \"table-row\" },\n \".flow-root\": { display: \"flow-root\" },\n \".grid\": { display: \"grid\" },\n \".inline-grid\": { display: \"inline-grid\" },\n \".contents\": { display: \"contents\" },\n \".list-item\": { display: \"list-item\" },\n \".hidden\": { display: \"none\" }\n });\n },\n aspectRatio: createUtilityPlugin(\"aspectRatio\", [[\"aspect\", [\"aspect-ratio\"]]]),\n size: createUtilityPlugin(\"size\", [[\"size\", [\"width\", \"height\"]]]),\n height: createUtilityPlugin(\"height\", [[\"h\", [\"height\"]]]),\n maxHeight: createUtilityPlugin(\"maxHeight\", [[\"max-h\", [\"maxHeight\"]]]),\n minHeight: createUtilityPlugin(\"minHeight\", [[\"min-h\", [\"minHeight\"]]]),\n width: createUtilityPlugin(\"width\", [[\"w\", [\"width\"]]]),\n minWidth: createUtilityPlugin(\"minWidth\", [[\"min-w\", [\"minWidth\"]]]),\n maxWidth: createUtilityPlugin(\"maxWidth\", [[\"max-w\", [\"maxWidth\"]]]),\n flex: createUtilityPlugin(\"flex\"),\n flexShrink: createUtilityPlugin(\"flexShrink\", [\n [\"flex-shrink\", [\"flex-shrink\"]],\n [\"shrink\", [\"flex-shrink\"]]\n ]),\n flexGrow: createUtilityPlugin(\"flexGrow\", [\n [\"flex-grow\", [\"flex-grow\"]],\n [\"grow\", [\"flex-grow\"]]\n ]),\n flexBasis: createUtilityPlugin(\"flexBasis\", [[\"basis\", [\"flex-basis\"]]]),\n tableLayout: ({ addUtilities }) => {\n addUtilities({\n \".table-auto\": { \"table-layout\": \"auto\" },\n \".table-fixed\": { \"table-layout\": \"fixed\" }\n });\n },\n captionSide: ({ addUtilities }) => {\n addUtilities({\n \".caption-top\": { \"caption-side\": \"top\" },\n \".caption-bottom\": { \"caption-side\": \"bottom\" }\n });\n },\n borderCollapse: ({ addUtilities }) => {\n addUtilities({\n \".border-collapse\": { \"border-collapse\": \"collapse\" },\n \".border-separate\": { \"border-collapse\": \"separate\" }\n });\n },\n borderSpacing: ({ addDefaults, matchUtilities, theme }) => {\n addDefaults(\"border-spacing\", {\n \"--tw-border-spacing-x\": 0,\n \"--tw-border-spacing-y\": 0\n });\n matchUtilities(\n {\n \"border-spacing\": (value2) => {\n return {\n \"--tw-border-spacing-x\": value2,\n \"--tw-border-spacing-y\": value2,\n \"@defaults border-spacing\": {},\n \"border-spacing\": \"var(--tw-border-spacing-x) var(--tw-border-spacing-y)\"\n };\n },\n \"border-spacing-x\": (value2) => {\n return {\n \"--tw-border-spacing-x\": value2,\n \"@defaults border-spacing\": {},\n \"border-spacing\": \"var(--tw-border-spacing-x) var(--tw-border-spacing-y)\"\n };\n },\n \"border-spacing-y\": (value2) => {\n return {\n \"--tw-border-spacing-y\": value2,\n \"@defaults border-spacing\": {},\n \"border-spacing\": \"var(--tw-border-spacing-x) var(--tw-border-spacing-y)\"\n };\n }\n },\n { values: theme(\"borderSpacing\") }\n );\n },\n transformOrigin: createUtilityPlugin(\"transformOrigin\", [[\"origin\", [\"transformOrigin\"]]]),\n translate: createUtilityPlugin(\n \"translate\",\n [\n [\n [\n \"translate-x\",\n [[\"@defaults transform\", {}], \"--tw-translate-x\", [\"transform\", cssTransformValue]]\n ],\n [\n \"translate-y\",\n [[\"@defaults transform\", {}], \"--tw-translate-y\", [\"transform\", cssTransformValue]]\n ]\n ]\n ],\n { supportsNegativeValues: true }\n ),\n rotate: createUtilityPlugin(\n \"rotate\",\n [[\"rotate\", [[\"@defaults transform\", {}], \"--tw-rotate\", [\"transform\", cssTransformValue]]]],\n { supportsNegativeValues: true }\n ),\n skew: createUtilityPlugin(\n \"skew\",\n [\n [\n [\"skew-x\", [[\"@defaults transform\", {}], \"--tw-skew-x\", [\"transform\", cssTransformValue]]],\n [\"skew-y\", [[\"@defaults transform\", {}], \"--tw-skew-y\", [\"transform\", cssTransformValue]]]\n ]\n ],\n { supportsNegativeValues: true }\n ),\n scale: createUtilityPlugin(\n \"scale\",\n [\n [\n \"scale\",\n [\n [\"@defaults transform\", {}],\n \"--tw-scale-x\",\n \"--tw-scale-y\",\n [\"transform\", cssTransformValue]\n ]\n ],\n [\n [\n \"scale-x\",\n [[\"@defaults transform\", {}], \"--tw-scale-x\", [\"transform\", cssTransformValue]]\n ],\n [\n \"scale-y\",\n [[\"@defaults transform\", {}], \"--tw-scale-y\", [\"transform\", cssTransformValue]]\n ]\n ]\n ],\n { supportsNegativeValues: true }\n ),\n transform: ({ addDefaults, addUtilities }) => {\n addDefaults(\"transform\", {\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 addUtilities({\n \".transform\": { \"@defaults transform\": {}, transform: cssTransformValue },\n \".transform-cpu\": {\n transform: cssTransformValue\n },\n \".transform-gpu\": {\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 \".transform-none\": { transform: \"none\" }\n });\n },\n animation: ({ matchUtilities, theme, config }) => {\n let prefixName = (name) => escapeClassName(config(\"prefix\") + name);\n let keyframes = Object.fromEntries(\n Object.entries(theme(\"keyframes\") ?? {}).map(([key, value2]) => {\n return [key, { [`@keyframes ${prefixName(key)}`]: value2 }];\n })\n );\n matchUtilities(\n {\n animate: (value2) => {\n let animations = parseAnimationValue(value2);\n return [\n ...animations.flatMap((animation) => keyframes[animation.name]),\n {\n animation: animations.map(({ name, value: value3 }) => {\n if (name === void 0 || keyframes[name] === void 0) {\n return value3;\n }\n return value3.replace(name, prefixName(name));\n }).join(\", \")\n }\n ];\n }\n },\n { values: theme(\"animation\") }\n );\n },\n cursor: createUtilityPlugin(\"cursor\"),\n touchAction: ({ addDefaults, addUtilities }) => {\n addDefaults(\"touch-action\", {\n \"--tw-pan-x\": \" \",\n \"--tw-pan-y\": \" \",\n \"--tw-pinch-zoom\": \" \"\n });\n let cssTouchActionValue = \"var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)\";\n addUtilities({\n \".touch-auto\": { \"touch-action\": \"auto\" },\n \".touch-none\": { \"touch-action\": \"none\" },\n \".touch-pan-x\": {\n \"@defaults touch-action\": {},\n \"--tw-pan-x\": \"pan-x\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-pan-left\": {\n \"@defaults touch-action\": {},\n \"--tw-pan-x\": \"pan-left\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-pan-right\": {\n \"@defaults touch-action\": {},\n \"--tw-pan-x\": \"pan-right\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-pan-y\": {\n \"@defaults touch-action\": {},\n \"--tw-pan-y\": \"pan-y\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-pan-up\": {\n \"@defaults touch-action\": {},\n \"--tw-pan-y\": \"pan-up\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-pan-down\": {\n \"@defaults touch-action\": {},\n \"--tw-pan-y\": \"pan-down\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-pinch-zoom\": {\n \"@defaults touch-action\": {},\n \"--tw-pinch-zoom\": \"pinch-zoom\",\n \"touch-action\": cssTouchActionValue\n },\n \".touch-manipulation\": { \"touch-action\": \"manipulation\" }\n });\n },\n userSelect: ({ addUtilities }) => {\n addUtilities({\n \".select-none\": { \"user-select\": \"none\" },\n \".select-text\": { \"user-select\": \"text\" },\n \".select-all\": { \"user-select\": \"all\" },\n \".select-auto\": { \"user-select\": \"auto\" }\n });\n },\n resize: ({ addUtilities }) => {\n addUtilities({\n \".resize-none\": { resize: \"none\" },\n \".resize-y\": { resize: \"vertical\" },\n \".resize-x\": { resize: \"horizontal\" },\n \".resize\": { resize: \"both\" }\n });\n },\n scrollSnapType: ({ addDefaults, addUtilities }) => {\n addDefaults(\"scroll-snap-type\", {\n \"--tw-scroll-snap-strictness\": \"proximity\"\n });\n addUtilities({\n \".snap-none\": { \"scroll-snap-type\": \"none\" },\n \".snap-x\": {\n \"@defaults scroll-snap-type\": {},\n \"scroll-snap-type\": \"x var(--tw-scroll-snap-strictness)\"\n },\n \".snap-y\": {\n \"@defaults scroll-snap-type\": {},\n \"scroll-snap-type\": \"y var(--tw-scroll-snap-strictness)\"\n },\n \".snap-both\": {\n \"@defaults scroll-snap-type\": {},\n \"scroll-snap-type\": \"both var(--tw-scroll-snap-strictness)\"\n },\n \".snap-mandatory\": { \"--tw-scroll-snap-strictness\": \"mandatory\" },\n \".snap-proximity\": { \"--tw-scroll-snap-strictness\": \"proximity\" }\n });\n },\n scrollSnapAlign: ({ addUtilities }) => {\n addUtilities({\n \".snap-start\": { \"scroll-snap-align\": \"start\" },\n \".snap-end\": { \"scroll-snap-align\": \"end\" },\n \".snap-center\": { \"scroll-snap-align\": \"center\" },\n \".snap-align-none\": { \"scroll-snap-align\": \"none\" }\n });\n },\n scrollSnapStop: ({ addUtilities }) => {\n addUtilities({\n \".snap-normal\": { \"scroll-snap-stop\": \"normal\" },\n \".snap-always\": { \"scroll-snap-stop\": \"always\" }\n });\n },\n scrollMargin: createUtilityPlugin(\n \"scrollMargin\",\n [\n [\"scroll-m\", [\"scroll-margin\"]],\n [\n [\"scroll-mx\", [\"scroll-margin-left\", \"scroll-margin-right\"]],\n [\"scroll-my\", [\"scroll-margin-top\", \"scroll-margin-bottom\"]]\n ],\n [\n [\"scroll-ms\", [\"scroll-margin-inline-start\"]],\n [\"scroll-me\", [\"scroll-margin-inline-end\"]],\n [\"scroll-mt\", [\"scroll-margin-top\"]],\n [\"scroll-mr\", [\"scroll-margin-right\"]],\n [\"scroll-mb\", [\"scroll-margin-bottom\"]],\n [\"scroll-ml\", [\"scroll-margin-left\"]]\n ]\n ],\n { supportsNegativeValues: true }\n ),\n scrollPadding: createUtilityPlugin(\"scrollPadding\", [\n [\"scroll-p\", [\"scroll-padding\"]],\n [\n [\"scroll-px\", [\"scroll-padding-left\", \"scroll-padding-right\"]],\n [\"scroll-py\", [\"scroll-padding-top\", \"scroll-padding-bottom\"]]\n ],\n [\n [\"scroll-ps\", [\"scroll-padding-inline-start\"]],\n [\"scroll-pe\", [\"scroll-padding-inline-end\"]],\n [\"scroll-pt\", [\"scroll-padding-top\"]],\n [\"scroll-pr\", [\"scroll-padding-right\"]],\n [\"scroll-pb\", [\"scroll-padding-bottom\"]],\n [\"scroll-pl\", [\"scroll-padding-left\"]]\n ]\n ]),\n listStylePosition: ({ addUtilities }) => {\n addUtilities({\n \".list-inside\": { \"list-style-position\": \"inside\" },\n \".list-outside\": { \"list-style-position\": \"outside\" }\n });\n },\n listStyleType: createUtilityPlugin(\"listStyleType\", [[\"list\", [\"listStyleType\"]]]),\n listStyleImage: createUtilityPlugin(\"listStyleImage\", [[\"list-image\", [\"listStyleImage\"]]]),\n appearance: ({ addUtilities }) => {\n addUtilities({\n \".appearance-none\": { appearance: \"none\" },\n \".appearance-auto\": { appearance: \"auto\" }\n });\n },\n columns: createUtilityPlugin(\"columns\", [[\"columns\", [\"columns\"]]]),\n breakBefore: ({ addUtilities }) => {\n addUtilities({\n \".break-before-auto\": { \"break-before\": \"auto\" },\n \".break-before-avoid\": { \"break-before\": \"avoid\" },\n \".break-before-all\": { \"break-before\": \"all\" },\n \".break-before-avoid-page\": { \"break-before\": \"avoid-page\" },\n \".break-before-page\": { \"break-before\": \"page\" },\n \".break-before-left\": { \"break-before\": \"left\" },\n \".break-before-right\": { \"break-before\": \"right\" },\n \".break-before-column\": { \"break-before\": \"column\" }\n });\n },\n breakInside: ({ addUtilities }) => {\n addUtilities({\n \".break-inside-auto\": { \"break-inside\": \"auto\" },\n \".break-inside-avoid\": { \"break-inside\": \"avoid\" },\n \".break-inside-avoid-page\": { \"break-inside\": \"avoid-page\" },\n \".break-inside-avoid-column\": { \"break-inside\": \"avoid-column\" }\n });\n },\n breakAfter: ({ addUtilities }) => {\n addUtilities({\n \".break-after-auto\": { \"break-after\": \"auto\" },\n \".break-after-avoid\": { \"break-after\": \"avoid\" },\n \".break-after-all\": { \"break-after\": \"all\" },\n \".break-after-avoid-page\": { \"break-after\": \"avoid-page\" },\n \".break-after-page\": { \"break-after\": \"page\" },\n \".break-after-left\": { \"break-after\": \"left\" },\n \".break-after-right\": { \"break-after\": \"right\" },\n \".break-after-column\": { \"break-after\": \"column\" }\n });\n },\n gridAutoColumns: createUtilityPlugin(\"gridAutoColumns\", [[\"auto-cols\", [\"gridAutoColumns\"]]]),\n gridAutoFlow: ({ addUtilities }) => {\n addUtilities({\n \".grid-flow-row\": { gridAutoFlow: \"row\" },\n \".grid-flow-col\": { gridAutoFlow: \"column\" },\n \".grid-flow-dense\": { gridAutoFlow: \"dense\" },\n \".grid-flow-row-dense\": { gridAutoFlow: \"row dense\" },\n \".grid-flow-col-dense\": { gridAutoFlow: \"column dense\" }\n });\n },\n gridAutoRows: createUtilityPlugin(\"gridAutoRows\", [[\"auto-rows\", [\"gridAutoRows\"]]]),\n gridTemplateColumns: createUtilityPlugin(\"gridTemplateColumns\", [\n [\"grid-cols\", [\"gridTemplateColumns\"]]\n ]),\n gridTemplateRows: createUtilityPlugin(\"gridTemplateRows\", [[\"grid-rows\", [\"gridTemplateRows\"]]]),\n flexDirection: ({ addUtilities }) => {\n addUtilities({\n \".flex-row\": { \"flex-direction\": \"row\" },\n \".flex-row-reverse\": { \"flex-direction\": \"row-reverse\" },\n \".flex-col\": { \"flex-direction\": \"column\" },\n \".flex-col-reverse\": { \"flex-direction\": \"column-reverse\" }\n });\n },\n flexWrap: ({ addUtilities }) => {\n addUtilities({\n \".flex-wrap\": { \"flex-wrap\": \"wrap\" },\n \".flex-wrap-reverse\": { \"flex-wrap\": \"wrap-reverse\" },\n \".flex-nowrap\": { \"flex-wrap\": \"nowrap\" }\n });\n },\n placeContent: ({ addUtilities }) => {\n addUtilities({\n \".place-content-center\": { \"place-content\": \"center\" },\n \".place-content-start\": { \"place-content\": \"start\" },\n \".place-content-end\": { \"place-content\": \"end\" },\n \".place-content-between\": { \"place-content\": \"space-between\" },\n \".place-content-around\": { \"place-content\": \"space-around\" },\n \".place-content-evenly\": { \"place-content\": \"space-evenly\" },\n \".place-content-baseline\": { \"place-content\": \"baseline\" },\n \".place-content-stretch\": { \"place-content\": \"stretch\" }\n });\n },\n placeItems: ({ addUtilities }) => {\n addUtilities({\n \".place-items-start\": { \"place-items\": \"start\" },\n \".place-items-end\": { \"place-items\": \"end\" },\n \".place-items-center\": { \"place-items\": \"center\" },\n \".place-items-baseline\": { \"place-items\": \"baseline\" },\n \".place-items-stretch\": { \"place-items\": \"stretch\" }\n });\n },\n alignContent: ({ addUtilities }) => {\n addUtilities({\n \".content-normal\": { \"align-content\": \"normal\" },\n \".content-center\": { \"align-content\": \"center\" },\n \".content-start\": { \"align-content\": \"flex-start\" },\n \".content-end\": { \"align-content\": \"flex-end\" },\n \".content-between\": { \"align-content\": \"space-between\" },\n \".content-around\": { \"align-content\": \"space-around\" },\n \".content-evenly\": { \"align-content\": \"space-evenly\" },\n \".content-baseline\": { \"align-content\": \"baseline\" },\n \".content-stretch\": { \"align-content\": \"stretch\" }\n });\n },\n alignItems: ({ addUtilities }) => {\n addUtilities({\n \".items-start\": { \"align-items\": \"flex-start\" },\n \".items-end\": { \"align-items\": \"flex-end\" },\n \".items-center\": { \"align-items\": \"center\" },\n \".items-baseline\": { \"align-items\": \"baseline\" },\n \".items-stretch\": { \"align-items\": \"stretch\" }\n });\n },\n justifyContent: ({ addUtilities }) => {\n addUtilities({\n \".justify-normal\": { \"justify-content\": \"normal\" },\n \".justify-start\": { \"justify-content\": \"flex-start\" },\n \".justify-end\": { \"justify-content\": \"flex-end\" },\n \".justify-center\": { \"justify-content\": \"center\" },\n \".justify-between\": { \"justify-content\": \"space-between\" },\n \".justify-around\": { \"justify-content\": \"space-around\" },\n \".justify-evenly\": { \"justify-content\": \"space-evenly\" },\n \".justify-stretch\": { \"justify-content\": \"stretch\" }\n });\n },\n justifyItems: ({ addUtilities }) => {\n addUtilities({\n \".justify-items-start\": { \"justify-items\": \"start\" },\n \".justify-items-end\": { \"justify-items\": \"end\" },\n \".justify-items-center\": { \"justify-items\": \"center\" },\n \".justify-items-stretch\": { \"justify-items\": \"stretch\" }\n });\n },\n gap: createUtilityPlugin(\"gap\", [\n [\"gap\", [\"gap\"]],\n [\n [\"gap-x\", [\"columnGap\"]],\n [\"gap-y\", [\"rowGap\"]]\n ]\n ]),\n space: ({ matchUtilities, addUtilities, theme }) => {\n matchUtilities(\n {\n \"space-x\": (value2) => {\n value2 = value2 === \"0\" ? \"0px\" : value2;\n if (false) {\n return {\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--tw-space-x-reverse\": \"0\",\n \"margin-inline-end\": `calc(${value2} * var(--tw-space-x-reverse))`,\n \"margin-inline-start\": `calc(${value2} * calc(1 - var(--tw-space-x-reverse)))`\n }\n };\n }\n return {\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--tw-space-x-reverse\": \"0\",\n \"margin-right\": `calc(${value2} * var(--tw-space-x-reverse))`,\n \"margin-left\": `calc(${value2} * calc(1 - var(--tw-space-x-reverse)))`\n }\n };\n },\n \"space-y\": (value2) => {\n value2 = value2 === \"0\" ? \"0px\" : value2;\n return {\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--tw-space-y-reverse\": \"0\",\n \"margin-top\": `calc(${value2} * calc(1 - var(--tw-space-y-reverse)))`,\n \"margin-bottom\": `calc(${value2} * var(--tw-space-y-reverse))`\n }\n };\n }\n },\n { values: theme(\"space\"), supportsNegativeValues: true }\n );\n addUtilities({\n \".space-y-reverse > :not([hidden]) ~ :not([hidden])\": { \"--tw-space-y-reverse\": \"1\" },\n \".space-x-reverse > :not([hidden]) ~ :not([hidden])\": { \"--tw-space-x-reverse\": \"1\" }\n });\n },\n divideWidth: ({ matchUtilities, addUtilities, theme }) => {\n matchUtilities(\n {\n \"divide-x\": (value2) => {\n value2 = value2 === \"0\" ? \"0px\" : value2;\n if (false) {\n return {\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"@defaults border-width\": {},\n \"--tw-divide-x-reverse\": \"0\",\n \"border-inline-end-width\": `calc(${value2} * var(--tw-divide-x-reverse))`,\n \"border-inline-start-width\": `calc(${value2} * calc(1 - var(--tw-divide-x-reverse)))`\n }\n };\n }\n return {\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"@defaults border-width\": {},\n \"--tw-divide-x-reverse\": \"0\",\n \"border-right-width\": `calc(${value2} * var(--tw-divide-x-reverse))`,\n \"border-left-width\": `calc(${value2} * calc(1 - var(--tw-divide-x-reverse)))`\n }\n };\n },\n \"divide-y\": (value2) => {\n value2 = value2 === \"0\" ? \"0px\" : value2;\n return {\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"@defaults border-width\": {},\n \"--tw-divide-y-reverse\": \"0\",\n \"border-top-width\": `calc(${value2} * calc(1 - var(--tw-divide-y-reverse)))`,\n \"border-bottom-width\": `calc(${value2} * var(--tw-divide-y-reverse))`\n }\n };\n }\n },\n { values: theme(\"divideWidth\"), type: [\"line-width\", \"length\", \"any\"] }\n );\n addUtilities({\n \".divide-y-reverse > :not([hidden]) ~ :not([hidden])\": {\n \"@defaults border-width\": {},\n \"--tw-divide-y-reverse\": \"1\"\n },\n \".divide-x-reverse > :not([hidden]) ~ :not([hidden])\": {\n \"@defaults border-width\": {},\n \"--tw-divide-x-reverse\": \"1\"\n }\n });\n },\n divideStyle: ({ addUtilities }) => {\n addUtilities({\n \".divide-solid > :not([hidden]) ~ :not([hidden])\": { \"border-style\": \"solid\" },\n \".divide-dashed > :not([hidden]) ~ :not([hidden])\": { \"border-style\": \"dashed\" },\n \".divide-dotted > :not([hidden]) ~ :not([hidden])\": { \"border-style\": \"dotted\" },\n \".divide-double > :not([hidden]) ~ :not([hidden])\": { \"border-style\": \"double\" },\n \".divide-none > :not([hidden]) ~ :not([hidden])\": { \"border-style\": \"none\" }\n });\n },\n divideColor: ({ matchUtilities, theme, corePlugins: corePlugins2 }) => {\n matchUtilities(\n {\n divide: (value2) => {\n if (!corePlugins2(\"divideOpacity\")) {\n return {\n [\"& > :not([hidden]) ~ :not([hidden])\"]: {\n \"border-color\": toColorValue(value2)\n }\n };\n }\n return {\n [\"& > :not([hidden]) ~ :not([hidden])\"]: withAlphaVariable({\n color: value2,\n property: \"border-color\",\n variable: \"--tw-divide-opacity\"\n })\n };\n }\n },\n {\n values: (({ DEFAULT: _, ...colors }) => colors)(flattenColorPalette_default(theme(\"divideColor\"))),\n type: [\"color\", \"any\"]\n }\n );\n },\n divideOpacity: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"divide-opacity\": (value2) => {\n return { [`& > :not([hidden]) ~ :not([hidden])`]: { \"--tw-divide-opacity\": value2 } };\n }\n },\n { values: theme(\"divideOpacity\") }\n );\n },\n placeSelf: ({ addUtilities }) => {\n addUtilities({\n \".place-self-auto\": { \"place-self\": \"auto\" },\n \".place-self-start\": { \"place-self\": \"start\" },\n \".place-self-end\": { \"place-self\": \"end\" },\n \".place-self-center\": { \"place-self\": \"center\" },\n \".place-self-stretch\": { \"place-self\": \"stretch\" }\n });\n },\n alignSelf: ({ addUtilities }) => {\n addUtilities({\n \".self-auto\": { \"align-self\": \"auto\" },\n \".self-start\": { \"align-self\": \"flex-start\" },\n \".self-end\": { \"align-self\": \"flex-end\" },\n \".self-center\": { \"align-self\": \"center\" },\n \".self-stretch\": { \"align-self\": \"stretch\" },\n \".self-baseline\": { \"align-self\": \"baseline\" }\n });\n },\n justifySelf: ({ addUtilities }) => {\n addUtilities({\n \".justify-self-auto\": { \"justify-self\": \"auto\" },\n \".justify-self-start\": { \"justify-self\": \"start\" },\n \".justify-self-end\": { \"justify-self\": \"end\" },\n \".justify-self-center\": { \"justify-self\": \"center\" },\n \".justify-self-stretch\": { \"justify-self\": \"stretch\" }\n });\n },\n overflow: ({ addUtilities }) => {\n addUtilities({\n \".overflow-auto\": { overflow: \"auto\" },\n \".overflow-hidden\": { overflow: \"hidden\" },\n \".overflow-clip\": { overflow: \"clip\" },\n \".overflow-visible\": { overflow: \"visible\" },\n \".overflow-scroll\": { overflow: \"scroll\" },\n \".overflow-x-auto\": { \"overflow-x\": \"auto\" },\n \".overflow-y-auto\": { \"overflow-y\": \"auto\" },\n \".overflow-x-hidden\": { \"overflow-x\": \"hidden\" },\n \".overflow-y-hidden\": { \"overflow-y\": \"hidden\" },\n \".overflow-x-clip\": { \"overflow-x\": \"clip\" },\n \".overflow-y-clip\": { \"overflow-y\": \"clip\" },\n \".overflow-x-visible\": { \"overflow-x\": \"visible\" },\n \".overflow-y-visible\": { \"overflow-y\": \"visible\" },\n \".overflow-x-scroll\": { \"overflow-x\": \"scroll\" },\n \".overflow-y-scroll\": { \"overflow-y\": \"scroll\" }\n });\n },\n overscrollBehavior: ({ addUtilities }) => {\n addUtilities({\n \".overscroll-auto\": { \"overscroll-behavior\": \"auto\" },\n \".overscroll-contain\": { \"overscroll-behavior\": \"contain\" },\n \".overscroll-none\": { \"overscroll-behavior\": \"none\" },\n \".overscroll-y-auto\": { \"overscroll-behavior-y\": \"auto\" },\n \".overscroll-y-contain\": { \"overscroll-behavior-y\": \"contain\" },\n \".overscroll-y-none\": { \"overscroll-behavior-y\": \"none\" },\n \".overscroll-x-auto\": { \"overscroll-behavior-x\": \"auto\" },\n \".overscroll-x-contain\": { \"overscroll-behavior-x\": \"contain\" },\n \".overscroll-x-none\": { \"overscroll-behavior-x\": \"none\" }\n });\n },\n scrollBehavior: ({ addUtilities }) => {\n addUtilities({\n \".scroll-auto\": { \"scroll-behavior\": \"auto\" },\n \".scroll-smooth\": { \"scroll-behavior\": \"smooth\" }\n });\n },\n textOverflow: ({ addUtilities }) => {\n addUtilities({\n \".truncate\": { overflow: \"hidden\", \"text-overflow\": \"ellipsis\", \"white-space\": \"nowrap\" },\n \".overflow-ellipsis\": { \"text-overflow\": \"ellipsis\" },\n \".text-ellipsis\": { \"text-overflow\": \"ellipsis\" },\n \".text-clip\": { \"text-overflow\": \"clip\" }\n });\n },\n hyphens: ({ addUtilities }) => {\n addUtilities({\n \".hyphens-none\": { hyphens: \"none\" },\n \".hyphens-manual\": { hyphens: \"manual\" },\n \".hyphens-auto\": { hyphens: \"auto\" }\n });\n },\n whitespace: ({ addUtilities }) => {\n addUtilities({\n \".whitespace-normal\": { \"white-space\": \"normal\" },\n \".whitespace-nowrap\": { \"white-space\": \"nowrap\" },\n \".whitespace-pre\": { \"white-space\": \"pre\" },\n \".whitespace-pre-line\": { \"white-space\": \"pre-line\" },\n \".whitespace-pre-wrap\": { \"white-space\": \"pre-wrap\" },\n \".whitespace-break-spaces\": { \"white-space\": \"break-spaces\" }\n });\n },\n textWrap: ({ addUtilities }) => {\n addUtilities({\n \".text-wrap\": { \"text-wrap\": \"wrap\" },\n \".text-nowrap\": { \"text-wrap\": \"nowrap\" },\n \".text-balance\": { \"text-wrap\": \"balance\" },\n \".text-pretty\": { \"text-wrap\": \"pretty\" }\n });\n },\n wordBreak: ({ addUtilities }) => {\n addUtilities({\n \".break-normal\": { \"overflow-wrap\": \"normal\", \"word-break\": \"normal\" },\n \".break-words\": { \"overflow-wrap\": \"break-word\" },\n \".break-all\": { \"word-break\": \"break-all\" },\n \".break-keep\": { \"word-break\": \"keep-all\" }\n });\n },\n borderRadius: createUtilityPlugin(\"borderRadius\", [\n [\"rounded\", [\"border-radius\"]],\n [\n [\"rounded-s\", [\"border-start-start-radius\", \"border-end-start-radius\"]],\n [\"rounded-e\", [\"border-start-end-radius\", \"border-end-end-radius\"]],\n [\"rounded-t\", [\"border-top-left-radius\", \"border-top-right-radius\"]],\n [\"rounded-r\", [\"border-top-right-radius\", \"border-bottom-right-radius\"]],\n [\"rounded-b\", [\"border-bottom-right-radius\", \"border-bottom-left-radius\"]],\n [\"rounded-l\", [\"border-top-left-radius\", \"border-bottom-left-radius\"]]\n ],\n [\n [\"rounded-ss\", [\"border-start-start-radius\"]],\n [\"rounded-se\", [\"border-start-end-radius\"]],\n [\"rounded-ee\", [\"border-end-end-radius\"]],\n [\"rounded-es\", [\"border-end-start-radius\"]],\n [\"rounded-tl\", [\"border-top-left-radius\"]],\n [\"rounded-tr\", [\"border-top-right-radius\"]],\n [\"rounded-br\", [\"border-bottom-right-radius\"]],\n [\"rounded-bl\", [\"border-bottom-left-radius\"]]\n ]\n ]),\n borderWidth: createUtilityPlugin(\n \"borderWidth\",\n [\n [\"border\", [[\"@defaults border-width\", {}], \"border-width\"]],\n [\n [\"border-x\", [[\"@defaults border-width\", {}], \"border-left-width\", \"border-right-width\"]],\n [\"border-y\", [[\"@defaults border-width\", {}], \"border-top-width\", \"border-bottom-width\"]]\n ],\n [\n [\"border-s\", [[\"@defaults border-width\", {}], \"border-inline-start-width\"]],\n [\"border-e\", [[\"@defaults border-width\", {}], \"border-inline-end-width\"]],\n [\"border-t\", [[\"@defaults border-width\", {}], \"border-top-width\"]],\n [\"border-r\", [[\"@defaults border-width\", {}], \"border-right-width\"]],\n [\"border-b\", [[\"@defaults border-width\", {}], \"border-bottom-width\"]],\n [\"border-l\", [[\"@defaults border-width\", {}], \"border-left-width\"]]\n ]\n ],\n { type: [\"line-width\", \"length\"] }\n ),\n borderStyle: ({ addUtilities }) => {\n addUtilities({\n \".border-solid\": { \"border-style\": \"solid\" },\n \".border-dashed\": { \"border-style\": \"dashed\" },\n \".border-dotted\": { \"border-style\": \"dotted\" },\n \".border-double\": { \"border-style\": \"double\" },\n \".border-hidden\": { \"border-style\": \"hidden\" },\n \".border-none\": { \"border-style\": \"none\" }\n });\n },\n borderColor: ({ matchUtilities, theme, corePlugins: corePlugins2 }) => {\n matchUtilities(\n {\n border: (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-color\",\n variable: \"--tw-border-opacity\"\n });\n }\n },\n {\n values: (({ DEFAULT: _, ...colors }) => colors)(flattenColorPalette_default(theme(\"borderColor\"))),\n type: [\"color\", \"any\"]\n }\n );\n matchUtilities(\n {\n \"border-x\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-left-color\": toColorValue(value2),\n \"border-right-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: [\"border-left-color\", \"border-right-color\"],\n variable: \"--tw-border-opacity\"\n });\n },\n \"border-y\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-top-color\": toColorValue(value2),\n \"border-bottom-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: [\"border-top-color\", \"border-bottom-color\"],\n variable: \"--tw-border-opacity\"\n });\n }\n },\n {\n values: (({ DEFAULT: _, ...colors }) => colors)(flattenColorPalette_default(theme(\"borderColor\"))),\n type: [\"color\", \"any\"]\n }\n );\n matchUtilities(\n {\n \"border-s\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-inline-start-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-inline-start-color\",\n variable: \"--tw-border-opacity\"\n });\n },\n \"border-e\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-inline-end-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-inline-end-color\",\n variable: \"--tw-border-opacity\"\n });\n },\n \"border-t\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-top-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-top-color\",\n variable: \"--tw-border-opacity\"\n });\n },\n \"border-r\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-right-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-right-color\",\n variable: \"--tw-border-opacity\"\n });\n },\n \"border-b\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-bottom-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-bottom-color\",\n variable: \"--tw-border-opacity\"\n });\n },\n \"border-l\": (value2) => {\n if (!corePlugins2(\"borderOpacity\")) {\n return {\n \"border-left-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"border-left-color\",\n variable: \"--tw-border-opacity\"\n });\n }\n },\n {\n values: (({ DEFAULT: _, ...colors }) => colors)(flattenColorPalette_default(theme(\"borderColor\"))),\n type: [\"color\", \"any\"]\n }\n );\n },\n borderOpacity: createUtilityPlugin(\"borderOpacity\", [\n [\"border-opacity\", [\"--tw-border-opacity\"]]\n ]),\n backgroundColor: ({ matchUtilities, theme, corePlugins: corePlugins2 }) => {\n matchUtilities(\n {\n bg: (value2) => {\n if (!corePlugins2(\"backgroundOpacity\")) {\n return {\n \"background-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"background-color\",\n variable: \"--tw-bg-opacity\"\n });\n }\n },\n { values: flattenColorPalette_default(theme(\"backgroundColor\")), type: [\"color\", \"any\"] }\n );\n },\n backgroundOpacity: createUtilityPlugin(\"backgroundOpacity\", [\n [\"bg-opacity\", [\"--tw-bg-opacity\"]]\n ]),\n backgroundImage: createUtilityPlugin(\"backgroundImage\", [[\"bg\", [\"background-image\"]]], {\n type: [\"lookup\", \"image\", \"url\"]\n }),\n gradientColorStops: (() => {\n function transparentTo(value2) {\n return withAlphaValue(value2, 0, \"rgb(255 255 255 / 0)\");\n }\n return function({ matchUtilities, theme, addDefaults }) {\n addDefaults(\"gradient-color-stops\", {\n \"--tw-gradient-from-position\": \" \",\n \"--tw-gradient-via-position\": \" \",\n \"--tw-gradient-to-position\": \" \"\n });\n let options = {\n values: flattenColorPalette_default(theme(\"gradientColorStops\")),\n type: [\"color\", \"any\"]\n };\n let positionOptions = {\n values: theme(\"gradientColorStopPositions\"),\n type: [\"length\", \"percentage\"]\n };\n matchUtilities(\n {\n from: (value2) => {\n let transparentToValue = transparentTo(value2);\n return {\n \"@defaults gradient-color-stops\": {},\n \"--tw-gradient-from\": `${toColorValue(value2)} var(--tw-gradient-from-position)`,\n \"--tw-gradient-to\": `${transparentToValue} var(--tw-gradient-to-position)`,\n \"--tw-gradient-stops\": `var(--tw-gradient-from), var(--tw-gradient-to)`\n };\n }\n },\n options\n );\n matchUtilities(\n {\n from: (value2) => {\n return {\n \"--tw-gradient-from-position\": value2\n };\n }\n },\n positionOptions\n );\n matchUtilities(\n {\n via: (value2) => {\n let transparentToValue = transparentTo(value2);\n return {\n \"@defaults gradient-color-stops\": {},\n \"--tw-gradient-to\": `${transparentToValue} var(--tw-gradient-to-position)`,\n \"--tw-gradient-stops\": `var(--tw-gradient-from), ${toColorValue(\n value2\n )} var(--tw-gradient-via-position), var(--tw-gradient-to)`\n };\n }\n },\n options\n );\n matchUtilities(\n {\n via: (value2) => {\n return {\n \"--tw-gradient-via-position\": value2\n };\n }\n },\n positionOptions\n );\n matchUtilities(\n {\n to: (value2) => ({\n \"@defaults gradient-color-stops\": {},\n \"--tw-gradient-to\": `${toColorValue(value2)} var(--tw-gradient-to-position)`\n })\n },\n options\n );\n matchUtilities(\n {\n to: (value2) => {\n return {\n \"--tw-gradient-to-position\": value2\n };\n }\n },\n positionOptions\n );\n };\n })(),\n boxDecorationBreak: ({ addUtilities }) => {\n addUtilities({\n \".decoration-slice\": { \"box-decoration-break\": \"slice\" },\n \".decoration-clone\": { \"box-decoration-break\": \"clone\" },\n \".box-decoration-slice\": { \"box-decoration-break\": \"slice\" },\n \".box-decoration-clone\": { \"box-decoration-break\": \"clone\" }\n });\n },\n backgroundSize: createUtilityPlugin(\"backgroundSize\", [[\"bg\", [\"background-size\"]]], {\n type: [\"lookup\", \"length\", \"percentage\", \"size\"]\n }),\n backgroundAttachment: ({ addUtilities }) => {\n addUtilities({\n \".bg-fixed\": { \"background-attachment\": \"fixed\" },\n \".bg-local\": { \"background-attachment\": \"local\" },\n \".bg-scroll\": { \"background-attachment\": \"scroll\" }\n });\n },\n backgroundClip: ({ addUtilities }) => {\n addUtilities({\n \".bg-clip-border\": { \"background-clip\": \"border-box\" },\n \".bg-clip-padding\": { \"background-clip\": \"padding-box\" },\n \".bg-clip-content\": { \"background-clip\": \"content-box\" },\n \".bg-clip-text\": { \"background-clip\": \"text\" }\n });\n },\n backgroundPosition: createUtilityPlugin(\"backgroundPosition\", [[\"bg\", [\"background-position\"]]], {\n type: [\"lookup\", [\"position\", { preferOnConflict: true }]]\n }),\n backgroundRepeat: ({ addUtilities }) => {\n addUtilities({\n \".bg-repeat\": { \"background-repeat\": \"repeat\" },\n \".bg-no-repeat\": { \"background-repeat\": \"no-repeat\" },\n \".bg-repeat-x\": { \"background-repeat\": \"repeat-x\" },\n \".bg-repeat-y\": { \"background-repeat\": \"repeat-y\" },\n \".bg-repeat-round\": { \"background-repeat\": \"round\" },\n \".bg-repeat-space\": { \"background-repeat\": \"space\" }\n });\n },\n backgroundOrigin: ({ addUtilities }) => {\n addUtilities({\n \".bg-origin-border\": { \"background-origin\": \"border-box\" },\n \".bg-origin-padding\": { \"background-origin\": \"padding-box\" },\n \".bg-origin-content\": { \"background-origin\": \"content-box\" }\n });\n },\n fill: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n fill: (value2) => {\n return { fill: toColorValue(value2) };\n }\n },\n { values: flattenColorPalette_default(theme(\"fill\")), type: [\"color\", \"any\"] }\n );\n },\n stroke: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n stroke: (value2) => {\n return { stroke: toColorValue(value2) };\n }\n },\n { values: flattenColorPalette_default(theme(\"stroke\")), type: [\"color\", \"url\", \"any\"] }\n );\n },\n strokeWidth: createUtilityPlugin(\"strokeWidth\", [[\"stroke\", [\"stroke-width\"]]], {\n type: [\"length\", \"number\", \"percentage\"]\n }),\n objectFit: ({ addUtilities }) => {\n addUtilities({\n \".object-contain\": { \"object-fit\": \"contain\" },\n \".object-cover\": { \"object-fit\": \"cover\" },\n \".object-fill\": { \"object-fit\": \"fill\" },\n \".object-none\": { \"object-fit\": \"none\" },\n \".object-scale-down\": { \"object-fit\": \"scale-down\" }\n });\n },\n objectPosition: createUtilityPlugin(\"objectPosition\", [[\"object\", [\"object-position\"]]]),\n padding: createUtilityPlugin(\"padding\", [\n [\"p\", [\"padding\"]],\n [\n [\"px\", [\"padding-left\", \"padding-right\"]],\n [\"py\", [\"padding-top\", \"padding-bottom\"]]\n ],\n [\n [\"ps\", [\"padding-inline-start\"]],\n [\"pe\", [\"padding-inline-end\"]],\n [\"pt\", [\"padding-top\"]],\n [\"pr\", [\"padding-right\"]],\n [\"pb\", [\"padding-bottom\"]],\n [\"pl\", [\"padding-left\"]]\n ]\n ]),\n textAlign: ({ addUtilities }) => {\n addUtilities({\n \".text-left\": { \"text-align\": \"left\" },\n \".text-center\": { \"text-align\": \"center\" },\n \".text-right\": { \"text-align\": \"right\" },\n \".text-justify\": { \"text-align\": \"justify\" },\n \".text-start\": { \"text-align\": \"start\" },\n \".text-end\": { \"text-align\": \"end\" }\n });\n },\n textIndent: createUtilityPlugin(\"textIndent\", [[\"indent\", [\"text-indent\"]]], {\n supportsNegativeValues: true\n }),\n verticalAlign: ({ addUtilities, matchUtilities }) => {\n addUtilities({\n \".align-baseline\": { \"vertical-align\": \"baseline\" },\n \".align-top\": { \"vertical-align\": \"top\" },\n \".align-middle\": { \"vertical-align\": \"middle\" },\n \".align-bottom\": { \"vertical-align\": \"bottom\" },\n \".align-text-top\": { \"vertical-align\": \"text-top\" },\n \".align-text-bottom\": { \"vertical-align\": \"text-bottom\" },\n \".align-sub\": { \"vertical-align\": \"sub\" },\n \".align-super\": { \"vertical-align\": \"super\" }\n });\n matchUtilities({ align: (value2) => ({ \"vertical-align\": value2 }) });\n },\n fontFamily: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n font: (value2) => {\n let [families, options = {}] = Array.isArray(value2) && isPlainObject(value2[1]) ? value2 : [value2];\n let { fontFeatureSettings, fontVariationSettings } = options;\n return {\n \"font-family\": Array.isArray(families) ? families.join(\", \") : families,\n ...fontFeatureSettings === void 0 ? {} : { \"font-feature-settings\": fontFeatureSettings },\n ...fontVariationSettings === void 0 ? {} : { \"font-variation-settings\": fontVariationSettings }\n };\n }\n },\n {\n values: theme(\"fontFamily\"),\n type: [\"lookup\", \"generic-name\", \"family-name\"]\n }\n );\n },\n fontSize: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n text: (value2, { modifier }) => {\n let [fontSize, options] = Array.isArray(value2) ? value2 : [value2];\n if (modifier) {\n return {\n \"font-size\": fontSize,\n \"line-height\": modifier\n };\n }\n let { lineHeight, letterSpacing, fontWeight } = isPlainObject(options) ? options : { lineHeight: options };\n return {\n \"font-size\": fontSize,\n ...lineHeight === void 0 ? {} : { \"line-height\": lineHeight },\n ...letterSpacing === void 0 ? {} : { \"letter-spacing\": letterSpacing },\n ...fontWeight === void 0 ? {} : { \"font-weight\": fontWeight }\n };\n }\n },\n {\n values: theme(\"fontSize\"),\n modifiers: theme(\"lineHeight\"),\n type: [\"absolute-size\", \"relative-size\", \"length\", \"percentage\"]\n }\n );\n },\n fontWeight: createUtilityPlugin(\"fontWeight\", [[\"font\", [\"fontWeight\"]]], {\n type: [\"lookup\", \"number\", \"any\"]\n }),\n textTransform: ({ addUtilities }) => {\n addUtilities({\n \".uppercase\": { \"text-transform\": \"uppercase\" },\n \".lowercase\": { \"text-transform\": \"lowercase\" },\n \".capitalize\": { \"text-transform\": \"capitalize\" },\n \".normal-case\": { \"text-transform\": \"none\" }\n });\n },\n fontStyle: ({ addUtilities }) => {\n addUtilities({\n \".italic\": { \"font-style\": \"italic\" },\n \".not-italic\": { \"font-style\": \"normal\" }\n });\n },\n fontVariantNumeric: ({ addDefaults, addUtilities }) => {\n let cssFontVariantNumericValue = \"var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)\";\n addDefaults(\"font-variant-numeric\", {\n \"--tw-ordinal\": \" \",\n \"--tw-slashed-zero\": \" \",\n \"--tw-numeric-figure\": \" \",\n \"--tw-numeric-spacing\": \" \",\n \"--tw-numeric-fraction\": \" \"\n });\n addUtilities({\n \".normal-nums\": { \"font-variant-numeric\": \"normal\" },\n \".ordinal\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-ordinal\": \"ordinal\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".slashed-zero\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-slashed-zero\": \"slashed-zero\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".lining-nums\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-numeric-figure\": \"lining-nums\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".oldstyle-nums\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-numeric-figure\": \"oldstyle-nums\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".proportional-nums\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-numeric-spacing\": \"proportional-nums\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".tabular-nums\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-numeric-spacing\": \"tabular-nums\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".diagonal-fractions\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-numeric-fraction\": \"diagonal-fractions\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n },\n \".stacked-fractions\": {\n \"@defaults font-variant-numeric\": {},\n \"--tw-numeric-fraction\": \"stacked-fractions\",\n \"font-variant-numeric\": cssFontVariantNumericValue\n }\n });\n },\n lineHeight: createUtilityPlugin(\"lineHeight\", [[\"leading\", [\"lineHeight\"]]]),\n letterSpacing: createUtilityPlugin(\"letterSpacing\", [[\"tracking\", [\"letterSpacing\"]]], {\n supportsNegativeValues: true\n }),\n textColor: ({ matchUtilities, theme, corePlugins: corePlugins2 }) => {\n matchUtilities(\n {\n text: (value2) => {\n if (!corePlugins2(\"textOpacity\")) {\n return { color: toColorValue(value2) };\n }\n return withAlphaVariable({\n color: value2,\n property: \"color\",\n variable: \"--tw-text-opacity\"\n });\n }\n },\n { values: flattenColorPalette_default(theme(\"textColor\")), type: [\"color\", \"any\"] }\n );\n },\n textOpacity: createUtilityPlugin(\"textOpacity\", [[\"text-opacity\", [\"--tw-text-opacity\"]]]),\n textDecoration: ({ addUtilities }) => {\n addUtilities({\n \".underline\": { \"text-decoration-line\": \"underline\" },\n \".overline\": { \"text-decoration-line\": \"overline\" },\n \".line-through\": { \"text-decoration-line\": \"line-through\" },\n \".no-underline\": { \"text-decoration-line\": \"none\" }\n });\n },\n textDecorationColor: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n decoration: (value2) => {\n return { \"text-decoration-color\": toColorValue(value2) };\n }\n },\n { values: flattenColorPalette_default(theme(\"textDecorationColor\")), type: [\"color\", \"any\"] }\n );\n },\n textDecorationStyle: ({ addUtilities }) => {\n addUtilities({\n \".decoration-solid\": { \"text-decoration-style\": \"solid\" },\n \".decoration-double\": { \"text-decoration-style\": \"double\" },\n \".decoration-dotted\": { \"text-decoration-style\": \"dotted\" },\n \".decoration-dashed\": { \"text-decoration-style\": \"dashed\" },\n \".decoration-wavy\": { \"text-decoration-style\": \"wavy\" }\n });\n },\n textDecorationThickness: createUtilityPlugin(\n \"textDecorationThickness\",\n [[\"decoration\", [\"text-decoration-thickness\"]]],\n { type: [\"length\", \"percentage\"] }\n ),\n textUnderlineOffset: createUtilityPlugin(\n \"textUnderlineOffset\",\n [[\"underline-offset\", [\"text-underline-offset\"]]],\n { type: [\"length\", \"percentage\", \"any\"] }\n ),\n fontSmoothing: ({ addUtilities }) => {\n addUtilities({\n \".antialiased\": {\n \"-webkit-font-smoothing\": \"antialiased\",\n \"-moz-osx-font-smoothing\": \"grayscale\"\n },\n \".subpixel-antialiased\": {\n \"-webkit-font-smoothing\": \"auto\",\n \"-moz-osx-font-smoothing\": \"auto\"\n }\n });\n },\n placeholderColor: ({ matchUtilities, theme, corePlugins: corePlugins2 }) => {\n matchUtilities(\n {\n placeholder: (value2) => {\n if (!corePlugins2(\"placeholderOpacity\")) {\n return {\n \"&::placeholder\": {\n color: toColorValue(value2)\n }\n };\n }\n return {\n \"&::placeholder\": withAlphaVariable({\n color: value2,\n property: \"color\",\n variable: \"--tw-placeholder-opacity\"\n })\n };\n }\n },\n { values: flattenColorPalette_default(theme(\"placeholderColor\")), type: [\"color\", \"any\"] }\n );\n },\n placeholderOpacity: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"placeholder-opacity\": (value2) => {\n return { [\"&::placeholder\"]: { \"--tw-placeholder-opacity\": value2 } };\n }\n },\n { values: theme(\"placeholderOpacity\") }\n );\n },\n caretColor: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n caret: (value2) => {\n return { \"caret-color\": toColorValue(value2) };\n }\n },\n { values: flattenColorPalette_default(theme(\"caretColor\")), type: [\"color\", \"any\"] }\n );\n },\n accentColor: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n accent: (value2) => {\n return { \"accent-color\": toColorValue(value2) };\n }\n },\n { values: flattenColorPalette_default(theme(\"accentColor\")), type: [\"color\", \"any\"] }\n );\n },\n opacity: createUtilityPlugin(\"opacity\", [[\"opacity\", [\"opacity\"]]]),\n backgroundBlendMode: ({ addUtilities }) => {\n addUtilities({\n \".bg-blend-normal\": { \"background-blend-mode\": \"normal\" },\n \".bg-blend-multiply\": { \"background-blend-mode\": \"multiply\" },\n \".bg-blend-screen\": { \"background-blend-mode\": \"screen\" },\n \".bg-blend-overlay\": { \"background-blend-mode\": \"overlay\" },\n \".bg-blend-darken\": { \"background-blend-mode\": \"darken\" },\n \".bg-blend-lighten\": { \"background-blend-mode\": \"lighten\" },\n \".bg-blend-color-dodge\": { \"background-blend-mode\": \"color-dodge\" },\n \".bg-blend-color-burn\": { \"background-blend-mode\": \"color-burn\" },\n \".bg-blend-hard-light\": { \"background-blend-mode\": \"hard-light\" },\n \".bg-blend-soft-light\": { \"background-blend-mode\": \"soft-light\" },\n \".bg-blend-difference\": { \"background-blend-mode\": \"difference\" },\n \".bg-blend-exclusion\": { \"background-blend-mode\": \"exclusion\" },\n \".bg-blend-hue\": { \"background-blend-mode\": \"hue\" },\n \".bg-blend-saturation\": { \"background-blend-mode\": \"saturation\" },\n \".bg-blend-color\": { \"background-blend-mode\": \"color\" },\n \".bg-blend-luminosity\": { \"background-blend-mode\": \"luminosity\" }\n });\n },\n mixBlendMode: ({ addUtilities }) => {\n addUtilities({\n \".mix-blend-normal\": { \"mix-blend-mode\": \"normal\" },\n \".mix-blend-multiply\": { \"mix-blend-mode\": \"multiply\" },\n \".mix-blend-screen\": { \"mix-blend-mode\": \"screen\" },\n \".mix-blend-overlay\": { \"mix-blend-mode\": \"overlay\" },\n \".mix-blend-darken\": { \"mix-blend-mode\": \"darken\" },\n \".mix-blend-lighten\": { \"mix-blend-mode\": \"lighten\" },\n \".mix-blend-color-dodge\": { \"mix-blend-mode\": \"color-dodge\" },\n \".mix-blend-color-burn\": { \"mix-blend-mode\": \"color-burn\" },\n \".mix-blend-hard-light\": { \"mix-blend-mode\": \"hard-light\" },\n \".mix-blend-soft-light\": { \"mix-blend-mode\": \"soft-light\" },\n \".mix-blend-difference\": { \"mix-blend-mode\": \"difference\" },\n \".mix-blend-exclusion\": { \"mix-blend-mode\": \"exclusion\" },\n \".mix-blend-hue\": { \"mix-blend-mode\": \"hue\" },\n \".mix-blend-saturation\": { \"mix-blend-mode\": \"saturation\" },\n \".mix-blend-color\": { \"mix-blend-mode\": \"color\" },\n \".mix-blend-luminosity\": { \"mix-blend-mode\": \"luminosity\" },\n \".mix-blend-plus-lighter\": { \"mix-blend-mode\": \"plus-lighter\" }\n });\n },\n boxShadow: (() => {\n let transformValue = transformThemeValue(\"boxShadow\");\n let 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 return function({ matchUtilities, addDefaults, theme }) {\n addDefaults(\" box-shadow\", {\n \"--tw-ring-offset-shadow\": \"0 0 #0000\",\n \"--tw-ring-shadow\": \"0 0 #0000\",\n \"--tw-shadow\": \"0 0 #0000\",\n \"--tw-shadow-colored\": \"0 0 #0000\"\n });\n matchUtilities(\n {\n shadow: (value2) => {\n value2 = transformValue(value2);\n let ast = parseBoxShadowValue(value2);\n for (let shadow2 of ast) {\n if (!shadow2.valid) {\n continue;\n }\n shadow2.color = \"var(--tw-shadow-color)\";\n }\n return {\n \"@defaults box-shadow\": {},\n \"--tw-shadow\": value2 === \"none\" ? \"0 0 #0000\" : value2,\n \"--tw-shadow-colored\": value2 === \"none\" ? \"0 0 #0000\" : formatBoxShadowValue(ast),\n \"box-shadow\": defaultBoxShadow\n };\n }\n },\n { values: theme(\"boxShadow\"), type: [\"shadow\"] }\n );\n };\n })(),\n boxShadowColor: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n shadow: (value2) => {\n return {\n \"--tw-shadow-color\": toColorValue(value2),\n \"--tw-shadow\": \"var(--tw-shadow-colored)\"\n };\n }\n },\n { values: flattenColorPalette_default(theme(\"boxShadowColor\")), type: [\"color\", \"any\"] }\n );\n },\n outlineStyle: ({ addUtilities }) => {\n addUtilities({\n \".outline-none\": {\n outline: \"2px solid transparent\",\n \"outline-offset\": \"2px\"\n },\n \".outline\": { \"outline-style\": \"solid\" },\n \".outline-dashed\": { \"outline-style\": \"dashed\" },\n \".outline-dotted\": { \"outline-style\": \"dotted\" },\n \".outline-double\": { \"outline-style\": \"double\" }\n });\n },\n outlineWidth: createUtilityPlugin(\"outlineWidth\", [[\"outline\", [\"outline-width\"]]], {\n type: [\"length\", \"number\", \"percentage\"]\n }),\n outlineOffset: createUtilityPlugin(\"outlineOffset\", [[\"outline-offset\", [\"outline-offset\"]]], {\n type: [\"length\", \"number\", \"percentage\", \"any\"],\n supportsNegativeValues: true\n }),\n outlineColor: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n outline: (value2) => {\n return { \"outline-color\": toColorValue(value2) };\n }\n },\n { values: flattenColorPalette_default(theme(\"outlineColor\")), type: [\"color\", \"any\"] }\n );\n },\n ringWidth: ({ matchUtilities, addDefaults, addUtilities, theme, config }) => {\n let ringColorDefault = (() => {\n if (flagEnabled(config(), \"respectDefaultRingColorOpacity\")) {\n return theme(\"ringColor.DEFAULT\");\n }\n let ringOpacityDefault = theme(\"ringOpacity.DEFAULT\", \"0.5\");\n if (!theme(\"ringColor\")?.DEFAULT) {\n return `rgb(147 197 253 / ${ringOpacityDefault})`;\n }\n return withAlphaValue(\n theme(\"ringColor\")?.DEFAULT,\n ringOpacityDefault,\n `rgb(147 197 253 / ${ringOpacityDefault})`\n );\n })();\n addDefaults(\"ring-width\", {\n \"--tw-ring-inset\": \" \",\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 \"--tw-shadow\": \"0 0 #0000\",\n \"--tw-shadow-colored\": \"0 0 #0000\"\n });\n matchUtilities(\n {\n ring: (value2) => {\n return {\n \"@defaults ring-width\": {},\n \"--tw-ring-offset-shadow\": `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(${value2} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,\n \"box-shadow\": [\n `var(--tw-ring-offset-shadow)`,\n `var(--tw-ring-shadow)`,\n `var(--tw-shadow, 0 0 #0000)`\n ].join(\", \")\n };\n }\n },\n { values: theme(\"ringWidth\"), type: \"length\" }\n );\n addUtilities({\n \".ring-inset\": { \"@defaults ring-width\": {}, \"--tw-ring-inset\": \"inset\" }\n });\n },\n ringColor: ({ matchUtilities, theme, corePlugins: corePlugins2 }) => {\n matchUtilities(\n {\n ring: (value2) => {\n if (!corePlugins2(\"ringOpacity\")) {\n return {\n \"--tw-ring-color\": toColorValue(value2)\n };\n }\n return withAlphaVariable({\n color: value2,\n property: \"--tw-ring-color\",\n variable: \"--tw-ring-opacity\"\n });\n }\n },\n {\n values: Object.fromEntries(\n Object.entries(flattenColorPalette_default(theme(\"ringColor\"))).filter(\n ([modifier]) => modifier !== \"DEFAULT\"\n )\n ),\n type: [\"color\", \"any\"]\n }\n );\n },\n ringOpacity: (helpers) => {\n let { config } = helpers;\n return createUtilityPlugin(\"ringOpacity\", [[\"ring-opacity\", [\"--tw-ring-opacity\"]]], {\n filterDefault: !flagEnabled(config(), \"respectDefaultRingColorOpacity\")\n })(helpers);\n },\n ringOffsetWidth: createUtilityPlugin(\n \"ringOffsetWidth\",\n [[\"ring-offset\", [\"--tw-ring-offset-width\"]]],\n { type: \"length\" }\n ),\n ringOffsetColor: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"ring-offset\": (value2) => {\n return {\n \"--tw-ring-offset-color\": toColorValue(value2)\n };\n }\n },\n { values: flattenColorPalette_default(theme(\"ringOffsetColor\")), type: [\"color\", \"any\"] }\n );\n },\n blur: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n blur: (value2) => {\n return {\n \"--tw-blur\": `blur(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"blur\") }\n );\n },\n brightness: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n brightness: (value2) => {\n return {\n \"--tw-brightness\": `brightness(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"brightness\") }\n );\n },\n contrast: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n contrast: (value2) => {\n return {\n \"--tw-contrast\": `contrast(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"contrast\") }\n );\n },\n dropShadow: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"drop-shadow\": (value2) => {\n return {\n \"--tw-drop-shadow\": Array.isArray(value2) ? value2.map((v) => `drop-shadow(${v})`).join(\" \") : `drop-shadow(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"dropShadow\") }\n );\n },\n grayscale: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n grayscale: (value2) => {\n return {\n \"--tw-grayscale\": `grayscale(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"grayscale\") }\n );\n },\n hueRotate: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"hue-rotate\": (value2) => {\n return {\n \"--tw-hue-rotate\": `hue-rotate(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"hueRotate\"), supportsNegativeValues: true }\n );\n },\n invert: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n invert: (value2) => {\n return {\n \"--tw-invert\": `invert(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"invert\") }\n );\n },\n saturate: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n saturate: (value2) => {\n return {\n \"--tw-saturate\": `saturate(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"saturate\") }\n );\n },\n sepia: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n sepia: (value2) => {\n return {\n \"--tw-sepia\": `sepia(${value2})`,\n \"@defaults filter\": {},\n filter: cssFilterValue\n };\n }\n },\n { values: theme(\"sepia\") }\n );\n },\n filter: ({ addDefaults, addUtilities }) => {\n addDefaults(\"filter\", {\n \"--tw-blur\": \" \",\n \"--tw-brightness\": \" \",\n \"--tw-contrast\": \" \",\n \"--tw-grayscale\": \" \",\n \"--tw-hue-rotate\": \" \",\n \"--tw-invert\": \" \",\n \"--tw-saturate\": \" \",\n \"--tw-sepia\": \" \",\n \"--tw-drop-shadow\": \" \"\n });\n addUtilities({\n \".filter\": { \"@defaults filter\": {}, filter: cssFilterValue },\n \".filter-none\": { filter: \"none\" }\n });\n },\n backdropBlur: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-blur\": (value2) => {\n return {\n \"--tw-backdrop-blur\": `blur(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropBlur\") }\n );\n },\n backdropBrightness: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-brightness\": (value2) => {\n return {\n \"--tw-backdrop-brightness\": `brightness(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropBrightness\") }\n );\n },\n backdropContrast: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-contrast\": (value2) => {\n return {\n \"--tw-backdrop-contrast\": `contrast(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropContrast\") }\n );\n },\n backdropGrayscale: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-grayscale\": (value2) => {\n return {\n \"--tw-backdrop-grayscale\": `grayscale(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropGrayscale\") }\n );\n },\n backdropHueRotate: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-hue-rotate\": (value2) => {\n return {\n \"--tw-backdrop-hue-rotate\": `hue-rotate(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropHueRotate\"), supportsNegativeValues: true }\n );\n },\n backdropInvert: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-invert\": (value2) => {\n return {\n \"--tw-backdrop-invert\": `invert(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropInvert\") }\n );\n },\n backdropOpacity: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-opacity\": (value2) => {\n return {\n \"--tw-backdrop-opacity\": `opacity(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropOpacity\") }\n );\n },\n backdropSaturate: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-saturate\": (value2) => {\n return {\n \"--tw-backdrop-saturate\": `saturate(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropSaturate\") }\n );\n },\n backdropSepia: ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n \"backdrop-sepia\": (value2) => {\n return {\n \"--tw-backdrop-sepia\": `sepia(${value2})`,\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n };\n }\n },\n { values: theme(\"backdropSepia\") }\n );\n },\n backdropFilter: ({ addDefaults, addUtilities }) => {\n addDefaults(\"backdrop-filter\", {\n \"--tw-backdrop-blur\": \" \",\n \"--tw-backdrop-brightness\": \" \",\n \"--tw-backdrop-contrast\": \" \",\n \"--tw-backdrop-grayscale\": \" \",\n \"--tw-backdrop-hue-rotate\": \" \",\n \"--tw-backdrop-invert\": \" \",\n \"--tw-backdrop-opacity\": \" \",\n \"--tw-backdrop-saturate\": \" \",\n \"--tw-backdrop-sepia\": \" \"\n });\n addUtilities({\n \".backdrop-filter\": {\n \"@defaults backdrop-filter\": {},\n \"backdrop-filter\": cssBackdropFilterValue\n },\n \".backdrop-filter-none\": { \"backdrop-filter\": \"none\" }\n });\n },\n transitionProperty: ({ matchUtilities, theme }) => {\n let defaultTimingFunction = theme(\"transitionTimingFunction.DEFAULT\");\n let defaultDuration = theme(\"transitionDuration.DEFAULT\");\n matchUtilities(\n {\n transition: (value2) => {\n return {\n \"transition-property\": value2,\n ...value2 === \"none\" ? {} : {\n \"transition-timing-function\": defaultTimingFunction,\n \"transition-duration\": defaultDuration\n }\n };\n }\n },\n { values: theme(\"transitionProperty\") }\n );\n },\n transitionDelay: createUtilityPlugin(\"transitionDelay\", [[\"delay\", [\"transitionDelay\"]]]),\n transitionDuration: createUtilityPlugin(\n \"transitionDuration\",\n [[\"duration\", [\"transitionDuration\"]]],\n { filterDefault: true }\n ),\n transitionTimingFunction: createUtilityPlugin(\n \"transitionTimingFunction\",\n [[\"ease\", [\"transitionTimingFunction\"]]],\n { filterDefault: true }\n ),\n willChange: createUtilityPlugin(\"willChange\", [[\"will-change\", [\"will-change\"]]]),\n content: createUtilityPlugin(\"content\", [\n [\"content\", [\"--tw-content\", [\"content\", \"var(--tw-content)\"]]]\n ]),\n forcedColorAdjust: ({ addUtilities }) => {\n addUtilities({\n \".forced-color-adjust-auto\": { \"forced-color-adjust\": \"auto\" },\n \".forced-color-adjust-none\": { \"forced-color-adjust\": \"none\" }\n });\n }\n};\n\n// node_modules/tailwindcss/src/util/toPath.js\nfunction toPath(path) {\n if (Array.isArray(path))\n return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n\n// node_modules/tailwindcss/src/util/isSyntacticallyValidPropertyValue.js\nvar matchingBrackets = /* @__PURE__ */ new Map([\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"]\n]);\nvar inverseMatchingBrackets = new Map(\n Array.from(matchingBrackets.entries()).map(([k, v]) => [v, k])\n);\nvar quotes = /* @__PURE__ */ new Set(['\"', \"'\", \"`\"]);\nfunction isSyntacticallyValidPropertyValue(value2) {\n let stack = [];\n let inQuotes = false;\n for (let i = 0; i < value2.length; i++) {\n let char = value2[i];\n if (char === \":\" && !inQuotes && stack.length === 0) {\n return false;\n }\n if (quotes.has(char) && value2[i - 1] !== \"\\\\\") {\n inQuotes = !inQuotes;\n }\n if (inQuotes)\n continue;\n if (value2[i - 1] === \"\\\\\")\n continue;\n if (matchingBrackets.has(char)) {\n stack.push(char);\n } else if (inverseMatchingBrackets.has(char)) {\n let inverse = inverseMatchingBrackets.get(char);\n if (stack.length <= 0) {\n return false;\n }\n if (stack.pop() !== inverse) {\n return false;\n }\n }\n }\n if (stack.length > 0) {\n return false;\n }\n return true;\n}\n\n// node_modules/tailwindcss/src/util/bigSign.js\nfunction bigSign(bigIntValue) {\n return (bigIntValue > 0n) - (bigIntValue < 0n);\n}\n\n// node_modules/tailwindcss/src/lib/remap-bitfield.js\nfunction remapBitfield(num, mapping) {\n let oldMask = 0n;\n let newMask = 0n;\n for (let [oldBit, newBit] of mapping) {\n if (num & oldBit) {\n oldMask = oldMask | oldBit;\n newMask = newMask | newBit;\n }\n }\n return num & ~oldMask | newMask;\n}\n\n// node_modules/tailwindcss/src/lib/offsets.js\nvar Offsets = class {\n constructor() {\n this.offsets = {\n defaults: 0n,\n base: 0n,\n components: 0n,\n utilities: 0n,\n variants: 0n,\n user: 0n\n };\n this.layerPositions = {\n defaults: 0n,\n base: 1n,\n components: 2n,\n utilities: 3n,\n user: 4n,\n variants: 5n\n };\n this.reservedVariantBits = 0n;\n this.variantOffsets = /* @__PURE__ */ new Map();\n }\n create(layer) {\n return {\n layer,\n parentLayer: layer,\n arbitrary: 0n,\n variants: 0n,\n parallelIndex: 0n,\n index: this.offsets[layer]++,\n options: []\n };\n }\n arbitraryProperty() {\n return {\n ...this.create(\"utilities\"),\n arbitrary: 1n\n };\n }\n forVariant(variant, index = 0) {\n let offset = this.variantOffsets.get(variant);\n if (offset === void 0) {\n throw new Error(`Cannot find offset for unknown variant ${variant}`);\n }\n return {\n ...this.create(\"variants\"),\n variants: offset << BigInt(index)\n };\n }\n applyVariantOffset(rule, variant, options) {\n options.variant = variant.variants;\n return {\n ...rule,\n layer: \"variants\",\n parentLayer: rule.layer === \"variants\" ? rule.parentLayer : rule.layer,\n variants: rule.variants | variant.variants,\n options: options.sort ? [].concat(options, rule.options) : rule.options,\n parallelIndex: max([rule.parallelIndex, variant.parallelIndex])\n };\n }\n applyParallelOffset(offset, parallelIndex) {\n return {\n ...offset,\n parallelIndex: BigInt(parallelIndex)\n };\n }\n recordVariants(variants, getLength) {\n for (let variant of variants) {\n this.recordVariant(variant, getLength(variant));\n }\n }\n recordVariant(variant, fnCount = 1) {\n this.variantOffsets.set(variant, 1n << this.reservedVariantBits);\n this.reservedVariantBits += BigInt(fnCount);\n return {\n ...this.create(\"variants\"),\n variants: this.variantOffsets.get(variant)\n };\n }\n compare(a, b) {\n if (a.layer !== b.layer) {\n return this.layerPositions[a.layer] - this.layerPositions[b.layer];\n }\n if (a.parentLayer !== b.parentLayer) {\n return this.layerPositions[a.parentLayer] - this.layerPositions[b.parentLayer];\n }\n for (let aOptions of a.options) {\n for (let bOptions of b.options) {\n if (aOptions.id !== bOptions.id)\n continue;\n if (!aOptions.sort || !bOptions.sort)\n continue;\n let maxFnVariant = max([aOptions.variant, bOptions.variant]) ?? 0n;\n let mask = ~(maxFnVariant | maxFnVariant - 1n);\n let aVariantsAfterFn = a.variants & mask;\n let bVariantsAfterFn = b.variants & mask;\n if (aVariantsAfterFn !== bVariantsAfterFn) {\n continue;\n }\n let result = aOptions.sort(\n {\n value: aOptions.value,\n modifier: aOptions.modifier\n },\n {\n value: bOptions.value,\n modifier: bOptions.modifier\n }\n );\n if (result !== 0)\n return result;\n }\n }\n if (a.variants !== b.variants) {\n return a.variants - b.variants;\n }\n if (a.parallelIndex !== b.parallelIndex) {\n return a.parallelIndex - b.parallelIndex;\n }\n if (a.arbitrary !== b.arbitrary) {\n return a.arbitrary - b.arbitrary;\n }\n return a.index - b.index;\n }\n recalculateVariantOffsets() {\n let variants = Array.from(this.variantOffsets.entries()).filter(([v]) => v.startsWith(\"[\")).sort(([a], [z]) => fastCompare(a, z));\n let newOffsets = variants.map(([, offset]) => offset).sort((a, z) => bigSign(a - z));\n let mapping = variants.map(([, oldOffset], i) => [oldOffset, newOffsets[i]]);\n return mapping.filter(([a, z]) => a !== z);\n }\n remapArbitraryVariantOffsets(list2) {\n let mapping = this.recalculateVariantOffsets();\n if (mapping.length === 0) {\n return list2;\n }\n return list2.map((item) => {\n let [offset, rule] = item;\n offset = {\n ...offset,\n variants: remapBitfield(offset.variants, mapping)\n };\n return [offset, rule];\n });\n }\n sort(list2) {\n list2 = this.remapArbitraryVariantOffsets(list2);\n return list2.sort(([a], [b]) => bigSign(this.compare(a, b)));\n }\n};\nfunction max(nums) {\n let max2 = null;\n for (const num of nums) {\n max2 = max2 ?? num;\n max2 = max2 > num ? max2 : num;\n }\n return max2;\n}\nfunction fastCompare(a, b) {\n let aLen = a.length;\n let bLen = b.length;\n let minLen = aLen < bLen ? aLen : bLen;\n for (let i = 0; i < minLen; i++) {\n let cmp = a.charCodeAt(i) - b.charCodeAt(i);\n if (cmp !== 0)\n return cmp;\n }\n return aLen - bLen;\n}\n\n// node_modules/tailwindcss/src/lib/setupContextUtils.js\nvar INTERNAL_FEATURES = Symbol();\nvar VARIANT_TYPES = {\n AddVariant: Symbol.for(\"ADD_VARIANT\"),\n MatchVariant: Symbol.for(\"MATCH_VARIANT\")\n};\nvar VARIANT_INFO = {\n Base: 1 << 0,\n Dynamic: 1 << 1\n};\nfunction prefix(context, selector) {\n let prefix3 = context.tailwindConfig.prefix;\n return typeof prefix3 === \"function\" ? prefix3(selector) : prefix3 + selector;\n}\nfunction normalizeOptionTypes({ type = \"any\", ...options }) {\n let types2 = [].concat(type);\n return {\n ...options,\n types: types2.map((type2) => {\n if (Array.isArray(type2)) {\n return { type: type2[0], ...type2[1] };\n }\n return { type: type2, preferOnConflict: false };\n })\n };\n}\nfunction parseVariantFormatString(input) {\n let parts = [];\n let current = \"\";\n let depth = 0;\n for (let idx = 0; idx < input.length; idx++) {\n let char = input[idx];\n if (char === \"\\\\\") {\n current += \"\\\\\" + input[++idx];\n } else if (char === \"{\") {\n ++depth;\n parts.push(current.trim());\n current = \"\";\n } else if (char === \"}\") {\n if (--depth < 0) {\n throw new Error(`Your { and } are unbalanced.`);\n }\n parts.push(current.trim());\n current = \"\";\n } else {\n current += char;\n }\n }\n if (current.length > 0) {\n parts.push(current.trim());\n }\n parts = parts.filter((part) => part !== \"\");\n return parts;\n}\nfunction insertInto(list2, value2, { before = [] } = {}) {\n before = [].concat(before);\n if (before.length <= 0) {\n list2.push(value2);\n return;\n }\n let idx = list2.length - 1;\n for (let other of before) {\n let iidx = list2.indexOf(other);\n if (iidx === -1)\n continue;\n idx = Math.min(idx, iidx);\n }\n list2.splice(idx, 0, value2);\n}\nfunction parseStyles(styles) {\n if (!Array.isArray(styles)) {\n return parseStyles([styles]);\n }\n return styles.flatMap((style) => {\n let isNode = !Array.isArray(style) && !isPlainObject(style);\n return isNode ? style : parseObjectStyles(style);\n });\n}\nfunction getClasses(selector, mutate) {\n let parser5 = selectorParser2((selectors) => {\n let allClasses = [];\n if (mutate) {\n mutate(selectors);\n }\n selectors.walkClasses((classNode) => {\n allClasses.push(classNode.value);\n });\n return allClasses;\n });\n return parser5.transformSync(selector);\n}\nfunction ignoreNot(selectors) {\n selectors.walkPseudos((pseudo) => {\n if (pseudo.value === \":not\") {\n pseudo.remove();\n }\n });\n}\nfunction extractCandidates(node, state = { containsNonOnDemandable: false }, depth = 0) {\n let classes = [];\n let selectors = [];\n if (node.type === \"rule\") {\n selectors.push(...node.selectors);\n } else if (node.type === \"atrule\") {\n node.walkRules((rule) => selectors.push(...rule.selectors));\n }\n for (let selector of selectors) {\n let classCandidates = getClasses(selector, ignoreNot);\n if (classCandidates.length === 0) {\n state.containsNonOnDemandable = true;\n }\n for (let classCandidate of classCandidates) {\n classes.push(classCandidate);\n }\n }\n if (depth === 0) {\n return [state.containsNonOnDemandable || classes.length === 0, classes];\n }\n return classes;\n}\nfunction withIdentifiers(styles) {\n return parseStyles(styles).flatMap((node) => {\n let nodeMap = /* @__PURE__ */ new Map();\n let [containsNonOnDemandableSelectors, candidates] = extractCandidates(node);\n if (containsNonOnDemandableSelectors) {\n candidates.unshift(NOT_ON_DEMAND);\n }\n return candidates.map((c) => {\n if (!nodeMap.has(node)) {\n nodeMap.set(node, node);\n }\n return [c, nodeMap.get(node)];\n });\n });\n}\nfunction isValidVariantFormatString(format) {\n return format.startsWith(\"@\") || format.includes(\"&\");\n}\nfunction parseVariant(variant) {\n variant = variant.replace(/\\n+/g, \"\").replace(/\\s{1,}/g, \" \").trim();\n let fns = parseVariantFormatString(variant).map((str) => {\n if (!str.startsWith(\"@\")) {\n return ({ format }) => format(str);\n }\n let [, name, params] = /@(\\S*)( .+|[({].*)?/g.exec(str);\n return ({ wrap }) => wrap(postcss4.atRule({ name, params: params?.trim() ?? \"\" }));\n }).reverse();\n return (api) => {\n for (let fn of fns) {\n fn(api);\n }\n };\n}\nfunction buildPluginApi(tailwindConfig, context, { variantList, variantMap, offsets, classList }) {\n function getConfigValue(path, defaultValue) {\n return path ? dlv(tailwindConfig, path, defaultValue) : tailwindConfig;\n }\n function applyConfiguredPrefix(selector) {\n return prefixSelector_default(tailwindConfig.prefix, selector);\n }\n function prefixIdentifier(identifier, options) {\n if (identifier === NOT_ON_DEMAND) {\n return NOT_ON_DEMAND;\n }\n if (!options.respectPrefix) {\n return identifier;\n }\n return context.tailwindConfig.prefix + identifier;\n }\n function resolveThemeValue(path, defaultValue, opts = {}) {\n let parts = toPath(path);\n let value2 = getConfigValue([\"theme\", ...parts], defaultValue);\n return transformThemeValue(parts[0])(value2, opts);\n }\n let variantIdentifier = 0;\n let api = {\n postcss: postcss4,\n prefix: applyConfiguredPrefix,\n e: escapeClassName,\n config: getConfigValue,\n theme: resolveThemeValue,\n corePlugins: (path) => {\n if (Array.isArray(tailwindConfig.corePlugins)) {\n return tailwindConfig.corePlugins.includes(path);\n }\n return getConfigValue([\"corePlugins\", path], true);\n },\n variants: () => {\n return [];\n },\n addBase(base) {\n for (let [identifier, rule] of withIdentifiers(base)) {\n let prefixedIdentifier = prefixIdentifier(identifier, {});\n let offset = offsets.create(\"base\");\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, []);\n }\n context.candidateRuleMap.get(prefixedIdentifier).push([{ sort: offset, layer: \"base\" }, rule]);\n }\n },\n addDefaults(group, declarations) {\n const groups = {\n [`@defaults ${group}`]: declarations\n };\n for (let [identifier, rule] of withIdentifiers(groups)) {\n let prefixedIdentifier = prefixIdentifier(identifier, {});\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, []);\n }\n context.candidateRuleMap.get(prefixedIdentifier).push([{ sort: offsets.create(\"defaults\"), layer: \"defaults\" }, rule]);\n }\n },\n addComponents(components, options) {\n let defaultOptions = {\n preserveSource: false,\n respectPrefix: true,\n respectImportant: false\n };\n options = Object.assign({}, defaultOptions, Array.isArray(options) ? {} : options);\n for (let [identifier, rule] of withIdentifiers(components)) {\n let prefixedIdentifier = prefixIdentifier(identifier, options);\n classList.add(prefixedIdentifier);\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, []);\n }\n context.candidateRuleMap.get(prefixedIdentifier).push([{ sort: offsets.create(\"components\"), layer: \"components\", options }, rule]);\n }\n },\n addUtilities(utilities, options) {\n let defaultOptions = {\n preserveSource: false,\n respectPrefix: true,\n respectImportant: true\n };\n options = Object.assign({}, defaultOptions, Array.isArray(options) ? {} : options);\n for (let [identifier, rule] of withIdentifiers(utilities)) {\n let prefixedIdentifier = prefixIdentifier(identifier, options);\n classList.add(prefixedIdentifier);\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, []);\n }\n context.candidateRuleMap.get(prefixedIdentifier).push([{ sort: offsets.create(\"utilities\"), layer: \"utilities\", options }, rule]);\n }\n },\n matchUtilities: function(utilities, options) {\n let defaultOptions = {\n respectPrefix: true,\n respectImportant: true,\n modifiers: false\n };\n options = normalizeOptionTypes({ ...defaultOptions, ...options });\n let offset = offsets.create(\"utilities\");\n for (let identifier in utilities) {\n let wrapped = function(modifier, { isOnlyPlugin }) {\n let [value2, coercedType, utilityModifier] = coerceValue(\n options.types,\n modifier,\n options,\n tailwindConfig\n );\n if (value2 === void 0) {\n return [];\n }\n if (!options.types.some(({ type }) => type === coercedType)) {\n if (isOnlyPlugin) {\n log_default.warn([\n `Unnecessary typehint \\`${coercedType}\\` in \\`${identifier}-${modifier}\\`.`,\n `You can safely update it to \\`${identifier}-${modifier.replace(\n coercedType + \":\",\n \"\"\n )}\\`.`\n ]);\n } else {\n return [];\n }\n }\n if (!isSyntacticallyValidPropertyValue(value2)) {\n return [];\n }\n let extras = {\n get modifier() {\n if (!options.modifiers) {\n log_default.warn(`modifier-used-without-options-for-${identifier}`, [\n \"Your plugin must set `modifiers: true` in its options to support modifiers.\"\n ]);\n }\n return utilityModifier;\n }\n };\n let modifiersEnabled = flagEnabled(tailwindConfig, \"generalizedModifiers\");\n let ruleSets = [].concat(modifiersEnabled ? rule(value2, extras) : rule(value2)).filter(Boolean).map((declaration) => ({\n [nameClass(identifier, modifier)]: declaration\n }));\n return ruleSets;\n };\n let prefixedIdentifier = prefixIdentifier(identifier, options);\n let rule = utilities[identifier];\n classList.add([prefixedIdentifier, options]);\n let withOffsets = [{ sort: offset, layer: \"utilities\", options }, wrapped];\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, []);\n }\n context.candidateRuleMap.get(prefixedIdentifier).push(withOffsets);\n }\n },\n matchComponents: function(components, options) {\n let defaultOptions = {\n respectPrefix: true,\n respectImportant: false,\n modifiers: false\n };\n options = normalizeOptionTypes({ ...defaultOptions, ...options });\n let offset = offsets.create(\"components\");\n for (let identifier in components) {\n let wrapped = function(modifier, { isOnlyPlugin }) {\n let [value2, coercedType, utilityModifier] = coerceValue(\n options.types,\n modifier,\n options,\n tailwindConfig\n );\n if (value2 === void 0) {\n return [];\n }\n if (!options.types.some(({ type }) => type === coercedType)) {\n if (isOnlyPlugin) {\n log_default.warn([\n `Unnecessary typehint \\`${coercedType}\\` in \\`${identifier}-${modifier}\\`.`,\n `You can safely update it to \\`${identifier}-${modifier.replace(\n coercedType + \":\",\n \"\"\n )}\\`.`\n ]);\n } else {\n return [];\n }\n }\n if (!isSyntacticallyValidPropertyValue(value2)) {\n return [];\n }\n let extras = {\n get modifier() {\n if (!options.modifiers) {\n log_default.warn(`modifier-used-without-options-for-${identifier}`, [\n \"Your plugin must set `modifiers: true` in its options to support modifiers.\"\n ]);\n }\n return utilityModifier;\n }\n };\n let modifiersEnabled = flagEnabled(tailwindConfig, \"generalizedModifiers\");\n let ruleSets = [].concat(modifiersEnabled ? rule(value2, extras) : rule(value2)).filter(Boolean).map((declaration) => ({\n [nameClass(identifier, modifier)]: declaration\n }));\n return ruleSets;\n };\n let prefixedIdentifier = prefixIdentifier(identifier, options);\n let rule = components[identifier];\n classList.add([prefixedIdentifier, options]);\n let withOffsets = [{ sort: offset, layer: \"components\", options }, wrapped];\n if (!context.candidateRuleMap.has(prefixedIdentifier)) {\n context.candidateRuleMap.set(prefixedIdentifier, []);\n }\n context.candidateRuleMap.get(prefixedIdentifier).push(withOffsets);\n }\n },\n addVariant(variantName, variantFunctions, options = {}) {\n variantFunctions = [].concat(variantFunctions).map((variantFunction) => {\n if (typeof variantFunction !== \"string\") {\n return (api2 = {}) => {\n let { args, modifySelectors, container, separator, wrap, format } = api2;\n let result = variantFunction(\n Object.assign(\n { modifySelectors, container, separator },\n options.type === VARIANT_TYPES.MatchVariant && { args, wrap, format }\n )\n );\n if (typeof result === \"string\" && !isValidVariantFormatString(result)) {\n throw new Error(\n `Your custom variant \\`${variantName}\\` has an invalid format string. Make sure it's an at-rule or contains a \\`&\\` placeholder.`\n );\n }\n if (Array.isArray(result)) {\n return result.filter((variant) => typeof variant === \"string\").map((variant) => parseVariant(variant));\n }\n return result && typeof result === \"string\" && parseVariant(result)(api2);\n };\n }\n if (!isValidVariantFormatString(variantFunction)) {\n throw new Error(\n `Your custom variant \\`${variantName}\\` has an invalid format string. Make sure it's an at-rule or contains a \\`&\\` placeholder.`\n );\n }\n return parseVariant(variantFunction);\n });\n insertInto(variantList, variantName, options);\n variantMap.set(variantName, variantFunctions);\n context.variantOptions.set(variantName, options);\n },\n matchVariant(variant, variantFn, options) {\n let id = options?.id ?? ++variantIdentifier;\n let isSpecial = variant === \"@\";\n let modifiersEnabled = flagEnabled(tailwindConfig, \"generalizedModifiers\");\n for (let [key, value2] of Object.entries(options?.values ?? {})) {\n if (key === \"DEFAULT\")\n continue;\n api.addVariant(\n isSpecial ? `${variant}${key}` : `${variant}-${key}`,\n ({ args, container }) => {\n return variantFn(\n value2,\n modifiersEnabled ? { modifier: args?.modifier, container } : { container }\n );\n },\n {\n ...options,\n value: value2,\n id,\n type: VARIANT_TYPES.MatchVariant,\n variantInfo: VARIANT_INFO.Base\n }\n );\n }\n let hasDefault = \"DEFAULT\" in (options?.values ?? {});\n api.addVariant(\n variant,\n ({ args, container }) => {\n if (args?.value === NONE && !hasDefault) {\n return null;\n }\n return variantFn(\n args?.value === NONE ? options.values.DEFAULT : args?.value ?? (typeof args === \"string\" ? args : \"\"),\n modifiersEnabled ? { modifier: args?.modifier, container } : { container }\n );\n },\n {\n ...options,\n id,\n type: VARIANT_TYPES.MatchVariant,\n variantInfo: VARIANT_INFO.Dynamic\n }\n );\n }\n };\n return api;\n}\nfunction extractVariantAtRules(node) {\n node.walkAtRules((atRule) => {\n if ([\"responsive\", \"variants\"].includes(atRule.name)) {\n extractVariantAtRules(atRule);\n atRule.before(atRule.nodes);\n atRule.remove();\n }\n });\n}\nfunction collectLayerPlugins(root) {\n let layerPlugins = [];\n root.each((node) => {\n if (node.type === \"atrule\" && [\"responsive\", \"variants\"].includes(node.name)) {\n node.name = \"layer\";\n node.params = \"utilities\";\n }\n });\n root.walkAtRules(\"layer\", (layerRule) => {\n extractVariantAtRules(layerRule);\n if (layerRule.params === \"base\") {\n for (let node of layerRule.nodes) {\n layerPlugins.push(function({ addBase }) {\n addBase(node, { respectPrefix: false });\n });\n }\n layerRule.remove();\n } else if (layerRule.params === \"components\") {\n for (let node of layerRule.nodes) {\n layerPlugins.push(function({ addComponents }) {\n addComponents(node, { respectPrefix: false, preserveSource: true });\n });\n }\n layerRule.remove();\n } else if (layerRule.params === \"utilities\") {\n for (let node of layerRule.nodes) {\n layerPlugins.push(function({ addUtilities }) {\n addUtilities(node, { respectPrefix: false, preserveSource: true });\n });\n }\n layerRule.remove();\n }\n });\n return layerPlugins;\n}\nfunction resolvePlugins(context, root) {\n let corePluginList = Object.entries({ ...variantPlugins, ...corePlugins }).map(([name, plugin]) => {\n if (!context.tailwindConfig.corePlugins.includes(name)) {\n return null;\n }\n return plugin;\n }).filter(Boolean);\n let userPlugins = context.tailwindConfig.plugins.map((plugin) => {\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n return typeof plugin === \"function\" ? plugin : plugin.handler;\n });\n let layerPlugins = collectLayerPlugins(root);\n let beforeVariants = [\n variantPlugins[\"childVariant\"],\n variantPlugins[\"pseudoElementVariants\"],\n variantPlugins[\"pseudoClassVariants\"],\n variantPlugins[\"hasVariants\"],\n variantPlugins[\"ariaVariants\"],\n variantPlugins[\"dataVariants\"]\n ];\n let afterVariants = [\n variantPlugins[\"supportsVariants\"],\n variantPlugins[\"reducedMotionVariants\"],\n variantPlugins[\"prefersContrastVariants\"],\n variantPlugins[\"screenVariants\"],\n variantPlugins[\"orientationVariants\"],\n variantPlugins[\"directionVariants\"],\n variantPlugins[\"darkVariants\"],\n variantPlugins[\"forcedColorsVariants\"],\n variantPlugins[\"printVariant\"]\n ];\n let isLegacyDarkMode = context.tailwindConfig.darkMode === \"class\" || Array.isArray(context.tailwindConfig.darkMode) && context.tailwindConfig.darkMode[0] === \"class\";\n if (isLegacyDarkMode) {\n afterVariants = [\n variantPlugins[\"supportsVariants\"],\n variantPlugins[\"reducedMotionVariants\"],\n variantPlugins[\"prefersContrastVariants\"],\n variantPlugins[\"darkVariants\"],\n variantPlugins[\"screenVariants\"],\n variantPlugins[\"orientationVariants\"],\n variantPlugins[\"directionVariants\"],\n variantPlugins[\"forcedColorsVariants\"],\n variantPlugins[\"printVariant\"]\n ];\n }\n return [...corePluginList, ...beforeVariants, ...userPlugins, ...afterVariants, ...layerPlugins];\n}\nfunction registerPlugins(plugins, context) {\n let variantList = [];\n let variantMap = /* @__PURE__ */ new Map();\n context.variantMap = variantMap;\n let offsets = new Offsets();\n context.offsets = offsets;\n let classList = /* @__PURE__ */ new Set();\n let pluginApi = buildPluginApi(context.tailwindConfig, context, {\n variantList,\n variantMap,\n offsets,\n classList\n });\n for (let plugin of plugins) {\n if (Array.isArray(plugin)) {\n for (let pluginItem of plugin) {\n pluginItem(pluginApi);\n }\n } else {\n plugin?.(pluginApi);\n }\n }\n offsets.recordVariants(variantList, (variant) => variantMap.get(variant).length);\n for (let [variantName, variantFunctions] of variantMap.entries()) {\n context.variantMap.set(\n variantName,\n variantFunctions.map((variantFunction, idx) => [\n offsets.forVariant(variantName, idx),\n variantFunction\n ])\n );\n }\n let safelist = (context.tailwindConfig.safelist ?? []).filter(Boolean);\n if (safelist.length > 0) {\n let checks = [];\n for (let value2 of safelist) {\n if (typeof value2 === \"string\") {\n context.changedContent.push({ content: value2, extension: \"html\" });\n continue;\n }\n if (value2 instanceof RegExp) {\n log_default.warn(\"root-regex\", [\n \"Regular expressions in `safelist` work differently in Tailwind CSS v3.0.\",\n \"Update your `safelist` configuration to eliminate this warning.\",\n \"https://tailwindcss.com/docs/content-configuration#safelisting-classes\"\n ]);\n continue;\n }\n checks.push(value2);\n }\n if (checks.length > 0) {\n let patternMatchingCount = /* @__PURE__ */ new Map();\n let prefixLength = context.tailwindConfig.prefix.length;\n let checkImportantUtils = checks.some((check) => check.pattern.source.includes(\"!\"));\n for (let util of classList) {\n let utils = Array.isArray(util) ? (() => {\n let [utilName, options] = util;\n let values = Object.keys(options?.values ?? {});\n let classes = values.map((value2) => formatClass(utilName, value2));\n if (options?.supportsNegativeValues) {\n classes = [...classes, ...classes.map((cls) => \"-\" + cls)];\n classes = [\n ...classes,\n ...classes.map(\n (cls) => cls.slice(0, prefixLength) + \"-\" + cls.slice(prefixLength)\n )\n ];\n }\n if (options.types.some(({ type }) => type === \"color\")) {\n classes = [\n ...classes,\n ...classes.flatMap(\n (cls) => Object.keys(context.tailwindConfig.theme.opacity).map(\n (opacity) => `${cls}/${opacity}`\n )\n )\n ];\n }\n if (checkImportantUtils && options?.respectImportant) {\n classes = [...classes, ...classes.map((cls) => \"!\" + cls)];\n }\n return classes;\n })() : [util];\n for (let util2 of utils) {\n for (let { pattern: pattern2, variants = [] } of checks) {\n pattern2.lastIndex = 0;\n if (!patternMatchingCount.has(pattern2)) {\n patternMatchingCount.set(pattern2, 0);\n }\n if (!pattern2.test(util2))\n continue;\n patternMatchingCount.set(pattern2, patternMatchingCount.get(pattern2) + 1);\n context.changedContent.push({ content: util2, extension: \"html\" });\n for (let variant of variants) {\n context.changedContent.push({\n content: variant + context.tailwindConfig.separator + util2,\n extension: \"html\"\n });\n }\n }\n }\n }\n for (let [regex, count] of patternMatchingCount.entries()) {\n if (count !== 0)\n continue;\n log_default.warn([\n `The safelist pattern \\`${regex}\\` doesn't match any Tailwind CSS classes.`,\n \"Fix this pattern or remove it from your `safelist` configuration.\",\n \"https://tailwindcss.com/docs/content-configuration#safelisting-classes\"\n ]);\n }\n }\n }\n let darkClassName = [].concat(context.tailwindConfig.darkMode ?? \"media\")[1] ?? \"dark\";\n let parasiteUtilities = [\n prefix(context, darkClassName),\n prefix(context, \"group\"),\n prefix(context, \"peer\")\n ];\n context.getClassOrder = function getClassOrder(classes) {\n let sorted = [...classes].sort((a, z) => {\n if (a === z)\n return 0;\n if (a < z)\n return -1;\n return 1;\n });\n let sortedClassNames = new Map(sorted.map((className) => [className, null]));\n let rules = generateRules(new Set(sorted), context, true);\n rules = context.offsets.sort(rules);\n let idx = BigInt(parasiteUtilities.length);\n for (const [, rule] of rules) {\n let candidate = rule.raws.tailwind.candidate;\n sortedClassNames.set(candidate, sortedClassNames.get(candidate) ?? idx++);\n }\n return classes.map((className) => {\n let order = sortedClassNames.get(className) ?? null;\n let parasiteIndex = parasiteUtilities.indexOf(className);\n if (order === null && parasiteIndex !== -1) {\n order = BigInt(parasiteIndex);\n }\n return [className, order];\n });\n };\n context.getClassList = function getClassList(options = {}) {\n let output = [];\n for (let util of classList) {\n if (Array.isArray(util)) {\n let [utilName, utilOptions] = util;\n let negativeClasses = [];\n let modifiers = Object.keys(utilOptions?.modifiers ?? {});\n if (utilOptions?.types?.some(({ type }) => type === \"color\")) {\n modifiers.push(...Object.keys(context.tailwindConfig.theme.opacity ?? {}));\n }\n let metadata = { modifiers };\n let includeMetadata = options.includeMetadata && modifiers.length > 0;\n for (let [key, value2] of Object.entries(utilOptions?.values ?? {})) {\n if (value2 == null) {\n continue;\n }\n let cls = formatClass(utilName, key);\n output.push(includeMetadata ? [cls, metadata] : cls);\n if (utilOptions?.supportsNegativeValues && negateValue(value2)) {\n let cls2 = formatClass(utilName, `-${key}`);\n negativeClasses.push(includeMetadata ? [cls2, metadata] : cls2);\n }\n }\n output.push(...negativeClasses);\n } else {\n output.push(util);\n }\n }\n return output;\n };\n context.getVariants = function getVariants() {\n let result = [];\n for (let [name, options] of context.variantOptions.entries()) {\n if (options.variantInfo === VARIANT_INFO.Base)\n continue;\n result.push({\n name,\n isArbitrary: options.type === Symbol.for(\"MATCH_VARIANT\"),\n values: Object.keys(options.values ?? {}),\n hasDash: name !== \"@\",\n selectors({ modifier, value: value2 } = {}) {\n let candidate = \"__TAILWIND_PLACEHOLDER__\";\n let rule = postcss4.rule({ selector: `.${candidate}` });\n let container = postcss4.root({ nodes: [rule.clone()] });\n let before = container.toString();\n let fns = (context.variantMap.get(name) ?? []).flatMap(([_, fn]) => fn);\n let formatStrings = [];\n for (let fn of fns) {\n let localFormatStrings = [];\n let api = {\n args: { modifier, value: options.values?.[value2] ?? value2 },\n separator: context.tailwindConfig.separator,\n modifySelectors(modifierFunction) {\n container.each((rule2) => {\n if (rule2.type !== \"rule\") {\n return;\n }\n rule2.selectors = rule2.selectors.map((selector) => {\n return modifierFunction({\n get className() {\n return getClassNameFromSelector(selector);\n },\n selector\n });\n });\n });\n return container;\n },\n format(str) {\n localFormatStrings.push(str);\n },\n wrap(wrapper) {\n localFormatStrings.push(`@${wrapper.name} ${wrapper.params} { & }`);\n },\n container\n };\n let ruleWithVariant = fn(api);\n if (localFormatStrings.length > 0) {\n formatStrings.push(localFormatStrings);\n }\n if (Array.isArray(ruleWithVariant)) {\n for (let variantFunction of ruleWithVariant) {\n localFormatStrings = [];\n variantFunction(api);\n formatStrings.push(localFormatStrings);\n }\n }\n }\n let manualFormatStrings = [];\n let after = container.toString();\n if (before !== after) {\n container.walkRules((rule2) => {\n let modified = rule2.selector;\n let rebuiltBase = selectorParser2((selectors) => {\n selectors.walkClasses((classNode) => {\n classNode.value = `${name}${context.tailwindConfig.separator}${classNode.value}`;\n });\n }).processSync(modified);\n manualFormatStrings.push(modified.replace(rebuiltBase, \"&\").replace(candidate, \"&\"));\n });\n container.walkAtRules((atrule) => {\n manualFormatStrings.push(`@${atrule.name} (${atrule.params}) { & }`);\n });\n }\n let isArbitraryVariant = !(value2 in (options.values ?? {}));\n let internalFeatures = options[INTERNAL_FEATURES] ?? {};\n let respectPrefix = (() => {\n if (isArbitraryVariant)\n return false;\n if (internalFeatures.respectPrefix === false)\n return false;\n return true;\n })();\n formatStrings = formatStrings.map(\n (format) => format.map((str) => ({\n format: str,\n respectPrefix\n }))\n );\n manualFormatStrings = manualFormatStrings.map((format) => ({\n format,\n respectPrefix\n }));\n let opts = {\n candidate,\n context\n };\n let result2 = formatStrings.map(\n (formats) => finalizeSelector(`.${candidate}`, formatVariantSelector(formats, opts), opts).replace(`.${candidate}`, \"&\").replace(\"{ & }\", \"\").trim()\n );\n if (manualFormatStrings.length > 0) {\n result2.push(\n formatVariantSelector(manualFormatStrings, opts).toString().replace(`.${candidate}`, \"&\")\n );\n }\n return result2;\n }\n });\n }\n return result;\n };\n}\nfunction markInvalidUtilityCandidate(context, candidate) {\n if (!context.classCache.has(candidate)) {\n return;\n }\n context.notClassCache.add(candidate);\n context.classCache.delete(candidate);\n context.applyClassCache.delete(candidate);\n context.candidateRuleMap.delete(candidate);\n context.candidateRuleCache.delete(candidate);\n context.stylesheetCache = null;\n}\nfunction markInvalidUtilityNode(context, node) {\n let candidate = node.raws.tailwind.candidate;\n if (!candidate) {\n return;\n }\n for (const entry of context.ruleCache) {\n if (entry[1].raws.tailwind.candidate === candidate) {\n context.ruleCache.delete(entry);\n }\n }\n markInvalidUtilityCandidate(context, candidate);\n}\nfunction createContext(tailwindConfig, changedContent = [], root = postcss4.root()) {\n let context = {\n disposables: [],\n ruleCache: /* @__PURE__ */ new Set(),\n candidateRuleCache: /* @__PURE__ */ new Map(),\n classCache: /* @__PURE__ */ new Map(),\n applyClassCache: /* @__PURE__ */ new Map(),\n notClassCache: new Set(tailwindConfig.blocklist ?? []),\n postCssNodeCache: /* @__PURE__ */ new Map(),\n candidateRuleMap: /* @__PURE__ */ new Map(),\n tailwindConfig,\n changedContent,\n variantMap: /* @__PURE__ */ new Map(),\n stylesheetCache: null,\n variantOptions: /* @__PURE__ */ new Map(),\n markInvalidUtilityCandidate: (candidate) => markInvalidUtilityCandidate(context, candidate),\n markInvalidUtilityNode: (node) => markInvalidUtilityNode(context, node)\n };\n let resolvedPlugins = resolvePlugins(context, root);\n registerPlugins(resolvedPlugins, context);\n return context;\n}\n\n// node_modules/tailwindcss/src/util/applyImportantSelector.js\nimport parser3 from \"postcss-selector-parser\";\nfunction applyImportantSelector(selector, important) {\n let sel = parser3().astSync(selector);\n sel.each((sel2) => {\n let isWrapped = sel2.nodes[0].type === \"pseudo\" && sel2.nodes[0].value === \":is\" && sel2.nodes.every((node) => node.type !== \"combinator\");\n if (!isWrapped) {\n sel2.nodes = [\n parser3.pseudo({\n value: \":is\",\n nodes: [sel2.clone()]\n })\n ];\n }\n movePseudos(sel2);\n });\n return `${important} ${sel.toString()}`;\n}\n\n// node_modules/tailwindcss/src/lib/generateRules.js\nvar classNameParser = selectorParser3((selectors) => {\n return selectors.first.filter(({ type }) => type === \"class\").pop().value;\n});\nfunction getClassNameFromSelector(selector) {\n return classNameParser.transformSync(selector);\n}\nfunction* candidatePermutations(candidate) {\n let lastIndex = Infinity;\n while (lastIndex >= 0) {\n let dashIdx;\n let wasSlash = false;\n if (lastIndex === Infinity && candidate.endsWith(\"]\")) {\n let bracketIdx = candidate.indexOf(\"[\");\n if (candidate[bracketIdx - 1] === \"-\") {\n dashIdx = bracketIdx - 1;\n } else if (candidate[bracketIdx - 1] === \"/\") {\n dashIdx = bracketIdx - 1;\n wasSlash = true;\n } else {\n dashIdx = -1;\n }\n } else if (lastIndex === Infinity && candidate.includes(\"/\")) {\n dashIdx = candidate.lastIndexOf(\"/\");\n wasSlash = true;\n } else {\n dashIdx = candidate.lastIndexOf(\"-\", lastIndex);\n }\n if (dashIdx < 0) {\n break;\n }\n let prefix3 = candidate.slice(0, dashIdx);\n let modifier = candidate.slice(wasSlash ? dashIdx : dashIdx + 1);\n lastIndex = dashIdx - 1;\n if (prefix3 === \"\" || modifier === \"/\") {\n continue;\n }\n yield [prefix3, modifier];\n }\n}\nfunction applyPrefix(matches, context) {\n if (matches.length === 0 || context.tailwindConfig.prefix === \"\") {\n return matches;\n }\n for (let match of matches) {\n let [meta] = match;\n if (meta.options.respectPrefix) {\n let container = postcss5.root({ nodes: [match[1].clone()] });\n let classCandidate = match[1].raws.tailwind.classCandidate;\n container.walkRules((r) => {\n let shouldPrependNegative = classCandidate.startsWith(\"-\");\n r.selector = prefixSelector_default(\n context.tailwindConfig.prefix,\n r.selector,\n shouldPrependNegative\n );\n });\n match[1] = container.nodes[0];\n }\n }\n return matches;\n}\nfunction applyImportant(matches, classCandidate) {\n if (matches.length === 0) {\n return matches;\n }\n let result = [];\n function isInKeyframes(rule) {\n return rule.parent && rule.parent.type === \"atrule\" && rule.parent.name === \"keyframes\";\n }\n for (let [meta, rule] of matches) {\n let container = postcss5.root({ nodes: [rule.clone()] });\n container.walkRules((r) => {\n if (isInKeyframes(r)) {\n return;\n }\n let ast = selectorParser3().astSync(r.selector);\n ast.each((sel) => eliminateIrrelevantSelectors(sel, classCandidate));\n updateAllClasses(\n ast,\n (className) => className === classCandidate ? `!${className}` : className\n );\n r.selector = ast.toString();\n r.walkDecls((d) => d.important = true);\n });\n result.push([{ ...meta, important: true }, container.nodes[0]]);\n }\n return result;\n}\nfunction applyVariant(variant, matches, context) {\n if (matches.length === 0) {\n return matches;\n }\n let args = { modifier: null, value: NONE };\n {\n let [baseVariant, ...modifiers] = splitAtTopLevelOnly(variant, \"/\");\n if (modifiers.length > 1) {\n baseVariant = baseVariant + \"/\" + modifiers.slice(0, -1).join(\"/\");\n modifiers = modifiers.slice(-1);\n }\n if (modifiers.length && !context.variantMap.has(variant)) {\n variant = baseVariant;\n args.modifier = modifiers[0];\n if (!flagEnabled(context.tailwindConfig, \"generalizedModifiers\")) {\n return [];\n }\n }\n }\n if (variant.endsWith(\"]\") && !variant.startsWith(\"[\")) {\n let match = /(.)(-?)\\[(.*)\\]/g.exec(variant);\n if (match) {\n let [, char, separator, value2] = match;\n if (char === \"@\" && separator === \"-\")\n return [];\n if (char !== \"@\" && separator === \"\")\n return [];\n variant = variant.replace(`${separator}[${value2}]`, \"\");\n args.value = value2;\n }\n }\n if (isArbitraryValue2(variant) && !context.variantMap.has(variant)) {\n let sort = context.offsets.recordVariant(variant);\n let selector = normalize(variant.slice(1, -1));\n let selectors = splitAtTopLevelOnly(selector, \",\");\n if (selectors.length > 1) {\n return [];\n }\n if (!selectors.every(isValidVariantFormatString)) {\n return [];\n }\n let records = selectors.map((sel, idx) => [\n context.offsets.applyParallelOffset(sort, idx),\n parseVariant(sel.trim())\n ]);\n context.variantMap.set(variant, records);\n }\n if (context.variantMap.has(variant)) {\n let isArbitraryVariant = isArbitraryValue2(variant);\n let internalFeatures = context.variantOptions.get(variant)?.[INTERNAL_FEATURES] ?? {};\n let variantFunctionTuples = context.variantMap.get(variant).slice();\n let result = [];\n let respectPrefix = (() => {\n if (isArbitraryVariant)\n return false;\n if (internalFeatures.respectPrefix === false)\n return false;\n return true;\n })();\n for (let [meta, rule] of matches) {\n if (meta.layer === \"user\") {\n continue;\n }\n let container = postcss5.root({ nodes: [rule.clone()] });\n for (let [variantSort, variantFunction, containerFromArray] of variantFunctionTuples) {\n let prepareBackup = function() {\n if (clone.raws.neededBackup) {\n return;\n }\n clone.raws.neededBackup = true;\n clone.walkRules((rule2) => rule2.raws.originalSelector = rule2.selector);\n }, modifySelectors = function(modifierFunction) {\n prepareBackup();\n clone.each((rule2) => {\n if (rule2.type !== \"rule\") {\n return;\n }\n rule2.selectors = rule2.selectors.map((selector) => {\n return modifierFunction({\n get className() {\n return getClassNameFromSelector(selector);\n },\n selector\n });\n });\n });\n return clone;\n };\n let clone = (containerFromArray ?? container).clone();\n let collectedFormats = [];\n let ruleWithVariant = variantFunction({\n get container() {\n prepareBackup();\n return clone;\n },\n separator: context.tailwindConfig.separator,\n modifySelectors,\n wrap(wrapper) {\n let nodes = clone.nodes;\n clone.removeAll();\n wrapper.append(nodes);\n clone.append(wrapper);\n },\n format(selectorFormat) {\n collectedFormats.push({\n format: selectorFormat,\n respectPrefix\n });\n },\n args\n });\n if (Array.isArray(ruleWithVariant)) {\n for (let [idx, variantFunction2] of ruleWithVariant.entries()) {\n variantFunctionTuples.push([\n context.offsets.applyParallelOffset(variantSort, idx),\n variantFunction2,\n clone.clone()\n ]);\n }\n continue;\n }\n if (typeof ruleWithVariant === \"string\") {\n collectedFormats.push({\n format: ruleWithVariant,\n respectPrefix\n });\n }\n if (ruleWithVariant === null) {\n continue;\n }\n if (clone.raws.neededBackup) {\n delete clone.raws.neededBackup;\n clone.walkRules((rule2) => {\n let before = rule2.raws.originalSelector;\n if (!before)\n return;\n delete rule2.raws.originalSelector;\n if (before === rule2.selector)\n return;\n let modified = rule2.selector;\n let rebuiltBase = selectorParser3((selectors) => {\n selectors.walkClasses((classNode) => {\n classNode.value = `${variant}${context.tailwindConfig.separator}${classNode.value}`;\n });\n }).processSync(before);\n collectedFormats.push({\n format: modified.replace(rebuiltBase, \"&\"),\n respectPrefix\n });\n rule2.selector = before;\n });\n }\n clone.nodes[0].raws.tailwind = { ...clone.nodes[0].raws.tailwind, parentLayer: meta.layer };\n let withOffset = [\n {\n ...meta,\n sort: context.offsets.applyVariantOffset(\n meta.sort,\n variantSort,\n Object.assign(args, context.variantOptions.get(variant))\n ),\n collectedFormats: (meta.collectedFormats ?? []).concat(collectedFormats)\n },\n clone.nodes[0]\n ];\n result.push(withOffset);\n }\n }\n return result;\n }\n return [];\n}\nfunction parseRules(rule, cache2, options = {}) {\n if (!isPlainObject(rule) && !Array.isArray(rule)) {\n return [[rule], options];\n }\n if (Array.isArray(rule)) {\n return parseRules(rule[0], cache2, rule[1]);\n }\n if (!cache2.has(rule)) {\n cache2.set(rule, parseObjectStyles(rule));\n }\n return [cache2.get(rule), options];\n}\nvar IS_VALID_PROPERTY_NAME = /^[a-z_-]/;\nfunction isValidPropName(name) {\n return IS_VALID_PROPERTY_NAME.test(name);\n}\nfunction looksLikeUri(declaration) {\n if (!declaration.includes(\"://\")) {\n return false;\n }\n try {\n const url2 = new URL(declaration);\n return url2.scheme !== \"\" && url2.host !== \"\";\n } catch (err) {\n return false;\n }\n}\nfunction isParsableNode(node) {\n let isParsable = true;\n node.walkDecls((decl) => {\n if (!isParsableCssValue(decl.prop, decl.value)) {\n isParsable = false;\n return false;\n }\n });\n return isParsable;\n}\nfunction isParsableCssValue(property, value2) {\n if (looksLikeUri(`${property}:${value2}`)) {\n return false;\n }\n try {\n postcss5.parse(`a{${property}:${value2}}`).toResult();\n return true;\n } catch (err) {\n return false;\n }\n}\nfunction extractArbitraryProperty(classCandidate, context) {\n let [, property, value2] = classCandidate.match(/^\\[([a-zA-Z0-9-_]+):(\\S+)\\]$/) ?? [];\n if (value2 === void 0) {\n return null;\n }\n if (!isValidPropName(property)) {\n return null;\n }\n if (!isSyntacticallyValidPropertyValue(value2)) {\n return null;\n }\n let normalized = normalize(value2, { property });\n if (!isParsableCssValue(property, normalized)) {\n return null;\n }\n let sort = context.offsets.arbitraryProperty();\n return [\n [\n { sort, layer: \"utilities\" },\n () => ({\n [asClass(classCandidate)]: {\n [property]: normalized\n }\n })\n ]\n ];\n}\nfunction* resolveMatchedPlugins(classCandidate, context) {\n if (context.candidateRuleMap.has(classCandidate)) {\n yield [context.candidateRuleMap.get(classCandidate), \"DEFAULT\"];\n }\n yield* function* (arbitraryPropertyRule) {\n if (arbitraryPropertyRule !== null) {\n yield [arbitraryPropertyRule, \"DEFAULT\"];\n }\n }(extractArbitraryProperty(classCandidate, context));\n let candidatePrefix = classCandidate;\n let negative = false;\n const twConfigPrefix = context.tailwindConfig.prefix;\n const twConfigPrefixLen = twConfigPrefix.length;\n const hasMatchingPrefix = candidatePrefix.startsWith(twConfigPrefix) || candidatePrefix.startsWith(`-${twConfigPrefix}`);\n if (candidatePrefix[twConfigPrefixLen] === \"-\" && hasMatchingPrefix) {\n negative = true;\n candidatePrefix = twConfigPrefix + candidatePrefix.slice(twConfigPrefixLen + 1);\n }\n if (negative && context.candidateRuleMap.has(candidatePrefix)) {\n yield [context.candidateRuleMap.get(candidatePrefix), \"-DEFAULT\"];\n }\n for (let [prefix3, modifier] of candidatePermutations(candidatePrefix)) {\n if (context.candidateRuleMap.has(prefix3)) {\n yield [context.candidateRuleMap.get(prefix3), negative ? `-${modifier}` : modifier];\n }\n }\n}\nfunction splitWithSeparator(input, separator) {\n if (input === NOT_ON_DEMAND) {\n return [NOT_ON_DEMAND];\n }\n return splitAtTopLevelOnly(input, separator);\n}\nfunction* recordCandidates(matches, classCandidate) {\n for (const match of matches) {\n match[1].raws.tailwind = {\n ...match[1].raws.tailwind,\n classCandidate,\n preserveSource: match[0].options?.preserveSource ?? false\n };\n yield match;\n }\n}\nfunction* resolveMatches(candidate, context) {\n let separator = context.tailwindConfig.separator;\n let [classCandidate, ...variants] = splitWithSeparator(candidate, separator).reverse();\n let important = false;\n if (classCandidate.startsWith(\"!\")) {\n important = true;\n classCandidate = classCandidate.slice(1);\n }\n for (let matchedPlugins of resolveMatchedPlugins(classCandidate, context)) {\n let matches = [];\n let typesByMatches = /* @__PURE__ */ new Map();\n let [plugins, modifier] = matchedPlugins;\n let isOnlyPlugin = plugins.length === 1;\n for (let [sort, plugin] of plugins) {\n let matchesPerPlugin = [];\n if (typeof plugin === \"function\") {\n for (let ruleSet of [].concat(plugin(modifier, { isOnlyPlugin }))) {\n let [rules, options] = parseRules(ruleSet, context.postCssNodeCache);\n for (let rule of rules) {\n matchesPerPlugin.push([{ ...sort, options: { ...sort.options, ...options } }, rule]);\n }\n }\n } else if (modifier === \"DEFAULT\" || modifier === \"-DEFAULT\") {\n let ruleSet = plugin;\n let [rules, options] = parseRules(ruleSet, context.postCssNodeCache);\n for (let rule of rules) {\n matchesPerPlugin.push([{ ...sort, options: { ...sort.options, ...options } }, rule]);\n }\n }\n if (matchesPerPlugin.length > 0) {\n let matchingTypes = Array.from(\n getMatchingTypes(\n sort.options?.types ?? [],\n modifier,\n sort.options ?? {},\n context.tailwindConfig\n )\n ).map(([_, type]) => type);\n if (matchingTypes.length > 0) {\n typesByMatches.set(matchesPerPlugin, matchingTypes);\n }\n matches.push(matchesPerPlugin);\n }\n }\n if (isArbitraryValue2(modifier)) {\n if (matches.length > 1) {\n let findFallback = function(matches2) {\n if (matches2.length === 1) {\n return matches2[0];\n }\n return matches2.find((rules) => {\n let matchingTypes = typesByMatches.get(rules);\n return rules.some(([{ options }, rule]) => {\n if (!isParsableNode(rule)) {\n return false;\n }\n return options.types.some(\n ({ type, preferOnConflict }) => matchingTypes.includes(type) && preferOnConflict\n );\n });\n });\n };\n let [withAny, withoutAny] = matches.reduce(\n (group, plugin) => {\n let hasAnyType = plugin.some(\n ([{ options }]) => options.types.some(({ type }) => type === \"any\")\n );\n if (hasAnyType) {\n group[0].push(plugin);\n } else {\n group[1].push(plugin);\n }\n return group;\n },\n [[], []]\n );\n let fallback = findFallback(withoutAny) ?? findFallback(withAny);\n if (fallback) {\n matches = [fallback];\n } else {\n let typesPerPlugin = matches.map(\n (match) => /* @__PURE__ */ new Set([...typesByMatches.get(match) ?? []])\n );\n for (let pluginTypes of typesPerPlugin) {\n for (let type of pluginTypes) {\n let removeFromOwnGroup = false;\n for (let otherGroup of typesPerPlugin) {\n if (pluginTypes === otherGroup)\n continue;\n if (otherGroup.has(type)) {\n otherGroup.delete(type);\n removeFromOwnGroup = true;\n }\n }\n if (removeFromOwnGroup)\n pluginTypes.delete(type);\n }\n }\n let messages = [];\n for (let [idx, group] of typesPerPlugin.entries()) {\n for (let type of group) {\n let rules = matches[idx].map(([, rule]) => rule).flat().map(\n (rule) => rule.toString().split(\"\\n\").slice(1, -1).map((line) => line.trim()).map((x) => ` ${x}`).join(\"\\n\")\n ).join(\"\\n\\n\");\n messages.push(\n ` Use \\`${candidate.replace(\"[\", `[${type}:`)}\\` for \\`${rules.trim()}\\``\n );\n break;\n }\n }\n log_default.warn([\n `The class \\`${candidate}\\` is ambiguous and matches multiple utilities.`,\n ...messages,\n `If this is content and not a class, replace it with \\`${candidate.replace(\"[\", \"[\").replace(\"]\", \"]\")}\\` to silence this warning.`\n ]);\n continue;\n }\n }\n matches = matches.map((list2) => list2.filter((match) => isParsableNode(match[1])));\n }\n matches = matches.flat();\n matches = Array.from(recordCandidates(matches, classCandidate));\n matches = applyPrefix(matches, context);\n if (important) {\n matches = applyImportant(matches, classCandidate);\n }\n for (let variant of variants) {\n matches = applyVariant(variant, matches, context);\n }\n for (let match of matches) {\n match[1].raws.tailwind = { ...match[1].raws.tailwind, candidate };\n match = applyFinalFormat(match, { context, candidate });\n if (match === null) {\n continue;\n }\n yield match;\n }\n }\n}\nfunction applyFinalFormat(match, { context, candidate }) {\n if (!match[0].collectedFormats) {\n return match;\n }\n let isValid = true;\n let finalFormat;\n try {\n finalFormat = formatVariantSelector(match[0].collectedFormats, {\n context,\n candidate\n });\n } catch {\n return null;\n }\n let container = postcss5.root({ nodes: [match[1].clone()] });\n container.walkRules((rule) => {\n if (inKeyframes(rule)) {\n return;\n }\n try {\n let selector = finalizeSelector(rule.selector, finalFormat, {\n candidate,\n context\n });\n if (selector === null) {\n rule.remove();\n return;\n }\n rule.selector = selector;\n } catch {\n isValid = false;\n return false;\n }\n });\n if (!isValid) {\n return null;\n }\n if (container.nodes.length === 0) {\n return null;\n }\n match[1] = container.nodes[0];\n return match;\n}\nfunction inKeyframes(rule) {\n return rule.parent && rule.parent.type === \"atrule\" && rule.parent.name === \"keyframes\";\n}\nfunction getImportantStrategy(important) {\n if (important === true) {\n return (rule) => {\n if (inKeyframes(rule)) {\n return;\n }\n rule.walkDecls((d) => {\n if (d.parent.type === \"rule\" && !inKeyframes(d.parent)) {\n d.important = true;\n }\n });\n };\n }\n if (typeof important === \"string\") {\n return (rule) => {\n if (inKeyframes(rule)) {\n return;\n }\n rule.selectors = rule.selectors.map((selector) => {\n return applyImportantSelector(selector, important);\n });\n };\n }\n}\nfunction generateRules(candidates, context, isSorting = false) {\n let allRules = [];\n let strategy = getImportantStrategy(context.tailwindConfig.important);\n for (let candidate of candidates) {\n if (context.notClassCache.has(candidate)) {\n continue;\n }\n if (context.candidateRuleCache.has(candidate)) {\n allRules = allRules.concat(Array.from(context.candidateRuleCache.get(candidate)));\n continue;\n }\n let matches = Array.from(resolveMatches(candidate, context));\n if (matches.length === 0) {\n context.notClassCache.add(candidate);\n continue;\n }\n context.classCache.set(candidate, matches);\n let rules = context.candidateRuleCache.get(candidate) ?? /* @__PURE__ */ new Set();\n context.candidateRuleCache.set(candidate, rules);\n for (const match of matches) {\n let [{ sort, options }, rule] = match;\n if (options.respectImportant && strategy) {\n let container = postcss5.root({ nodes: [rule.clone()] });\n container.walkRules(strategy);\n rule = container.nodes[0];\n }\n let newEntry = [sort, isSorting ? rule.clone() : rule];\n rules.add(newEntry);\n context.ruleCache.add(newEntry);\n allRules.push(newEntry);\n }\n }\n return allRules;\n}\nfunction isArbitraryValue2(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\n\n// node_modules/tailwindcss/src/util/cloneNodes.js\nfunction cloneNodes(nodes, source = void 0, raws = void 0) {\n return nodes.map((node) => {\n let cloned = node.clone();\n if (raws !== void 0) {\n cloned.raws.tailwind = {\n ...cloned.raws.tailwind,\n ...raws\n };\n }\n if (source !== void 0) {\n traverse(cloned, (node2) => {\n let shouldPreserveSource = node2.raws.tailwind?.preserveSource === true && node2.source;\n if (shouldPreserveSource) {\n return false;\n }\n node2.source = source;\n });\n }\n return cloned;\n });\n}\nfunction traverse(node, onNode) {\n if (onNode(node) !== false) {\n node.each?.((child) => traverse(child, onNode));\n }\n}\n\n// node_modules/tailwindcss/src/lib/regex.js\nvar REGEX_SPECIAL = /[\\\\^$.*+?()[\\]{}|]/g;\nvar REGEX_HAS_SPECIAL = RegExp(REGEX_SPECIAL.source);\nfunction toSource(source) {\n source = Array.isArray(source) ? source : [source];\n source = source.map((item) => item instanceof RegExp ? item.source : item);\n return source.join(\"\");\n}\nfunction pattern(source) {\n return new RegExp(toSource(source), \"g\");\n}\nfunction any(sources) {\n return `(?:${sources.map(toSource).join(\"|\")})`;\n}\nfunction optional(source) {\n return `(?:${toSource(source)})?`;\n}\nfunction escape(string) {\n return string && REGEX_HAS_SPECIAL.test(string) ? string.replace(REGEX_SPECIAL, \"\\\\$&\") : string || \"\";\n}\n\n// node_modules/tailwindcss/src/lib/defaultExtractor.js\nfunction defaultExtractor(context) {\n let patterns = Array.from(buildRegExps(context));\n return (content) => {\n let results = [];\n for (let pattern2 of patterns) {\n for (let result of content.match(pattern2) ?? []) {\n results.push(clipAtBalancedParens(result));\n }\n }\n return results;\n };\n}\nfunction* buildRegExps(context) {\n let separator = context.tailwindConfig.separator;\n let prefix3 = context.tailwindConfig.prefix !== \"\" ? optional(pattern([/-?/, escape(context.tailwindConfig.prefix)])) : \"\";\n let utility = any([\n /\\[[^\\s:'\"`]+:[^\\s\\[\\]]+\\]/,\n /\\[[^\\s:'\"`\\]]+:[^\\s]+?\\[[^\\s]+\\][^\\s]+?\\]/,\n pattern([\n any([\n /-?(?:\\w+)/,\n /@(?:\\w+)/\n ]),\n optional(\n any([\n pattern([\n any([\n /-(?:\\w+-)*\\['[^\\s]+'\\]/,\n /-(?:\\w+-)*\\[\"[^\\s]+\"\\]/,\n /-(?:\\w+-)*\\[`[^\\s]+`\\]/,\n /-(?:\\w+-)*\\[(?:[^\\s\\[\\]]+\\[[^\\s\\[\\]]+\\])*[^\\s:\\[\\]]+\\]/\n ]),\n /(?![{([]])/,\n /(?:\\/[^\\s'\"`\\\\><$]*)?/\n ]),\n pattern([\n any([\n /-(?:\\w+-)*\\['[^\\s]+'\\]/,\n /-(?:\\w+-)*\\[\"[^\\s]+\"\\]/,\n /-(?:\\w+-)*\\[`[^\\s]+`\\]/,\n /-(?:\\w+-)*\\[(?:[^\\s\\[\\]]+\\[[^\\s\\[\\]]+\\])*[^\\s\\[\\]]+\\]/\n ]),\n /(?![{([]])/,\n /(?:\\/[^\\s'\"`\\\\$]*)?/\n ]),\n /[-\\/][^\\s'\"`\\\\$={><]*/\n ])\n )\n ])\n ]);\n let variantPatterns = [\n any([\n pattern([/@\\[[^\\s\"'`]+\\](\\/[^\\s\"'`]+)?/, separator]),\n pattern([/([^\\s\"'`\\[\\\\]+-)?\\[[^\\s\"'`]+\\]\\/\\w+/, separator]),\n pattern([/([^\\s\"'`\\[\\\\]+-)?\\[[^\\s\"'`]+\\]/, separator]),\n pattern([/[^\\s\"'`\\[\\\\]+/, separator])\n ]),\n any([\n pattern([/([^\\s\"'`\\[\\\\]+-)?\\[[^\\s`]+\\]\\/\\w+/, separator]),\n pattern([/([^\\s\"'`\\[\\\\]+-)?\\[[^\\s`]+\\]/, separator]),\n pattern([/[^\\s`\\[\\\\]+/, separator])\n ])\n ];\n for (const variantPattern of variantPatterns) {\n yield pattern([\n \"((?=((\",\n variantPattern,\n \")+))\\\\2)?\",\n /!?/,\n prefix3,\n utility\n ]);\n }\n yield /[^<>\"'`\\s.(){}[\\]#=%$]*[^<>\"'`\\s.(){}[\\]#=%:$]/g;\n}\nvar SPECIALS = /([\\[\\]'\"`])([^\\[\\]'\"`])?/g;\nvar ALLOWED_CLASS_CHARACTERS = /[^\"'`\\s<>\\]]+/;\nfunction clipAtBalancedParens(input) {\n if (!input.includes(\"-[\")) {\n return input;\n }\n let depth = 0;\n let openStringTypes = [];\n let matches = input.matchAll(SPECIALS);\n matches = Array.from(matches).flatMap((match) => {\n const [, ...groups] = match;\n return groups.map(\n (group, idx) => Object.assign([], match, {\n index: match.index + idx,\n 0: group\n })\n );\n });\n for (let match of matches) {\n let char = match[0];\n let inStringType = openStringTypes[openStringTypes.length - 1];\n if (char === inStringType) {\n openStringTypes.pop();\n } else if (char === \"'\" || char === '\"' || char === \"`\") {\n openStringTypes.push(char);\n }\n if (inStringType) {\n continue;\n } else if (char === \"[\") {\n depth++;\n continue;\n } else if (char === \"]\") {\n depth--;\n continue;\n }\n if (depth < 0) {\n return input.substring(0, match.index - 1);\n }\n if (depth === 0 && !ALLOWED_CLASS_CHARACTERS.test(char)) {\n return input.substring(0, match.index);\n }\n }\n return input;\n}\n\n// node_modules/tailwindcss/src/lib/expandTailwindAtRules.js\nvar env2 = env;\nvar builtInExtractors = {\n DEFAULT: defaultExtractor\n};\nvar builtInTransformers = {\n DEFAULT: (content) => content,\n svelte: (content) => content.replace(/(?:^|\\s)class:/g, \" \")\n};\nfunction getExtractor(context, fileExtension) {\n let extractors = context.tailwindConfig.content.extract;\n return extractors[fileExtension] || extractors.DEFAULT || builtInExtractors[fileExtension] || builtInExtractors.DEFAULT(context);\n}\nfunction getTransformer(tailwindConfig, fileExtension) {\n let transformers = tailwindConfig.content.transform;\n return transformers[fileExtension] || transformers.DEFAULT || builtInTransformers[fileExtension] || builtInTransformers.DEFAULT;\n}\nvar extractorCache = /* @__PURE__ */ new WeakMap();\nfunction getClassCandidates(content, extractor, candidates, seen) {\n if (!extractorCache.has(extractor)) {\n extractorCache.set(extractor, new import_quick_lru.default({ maxSize: 25e3 }));\n }\n for (let line of content.split(\"\\n\")) {\n line = line.trim();\n if (seen.has(line)) {\n continue;\n }\n seen.add(line);\n if (extractorCache.get(extractor).has(line)) {\n for (let match of extractorCache.get(extractor).get(line)) {\n candidates.add(match);\n }\n } else {\n let extractorMatches = extractor(line).filter((s) => s !== \"!*\");\n let lineMatchesSet = new Set(extractorMatches);\n for (let match of lineMatchesSet) {\n candidates.add(match);\n }\n extractorCache.get(extractor).set(line, lineMatchesSet);\n }\n }\n}\nfunction buildStylesheet(rules, context) {\n let sortedRules = context.offsets.sort(rules);\n let returnValue = {\n base: /* @__PURE__ */ new Set(),\n defaults: /* @__PURE__ */ new Set(),\n components: /* @__PURE__ */ new Set(),\n utilities: /* @__PURE__ */ new Set(),\n variants: /* @__PURE__ */ new Set()\n };\n for (let [sort, rule] of sortedRules) {\n returnValue[sort.layer].add(rule);\n }\n return returnValue;\n}\nfunction expandTailwindAtRules(context) {\n return async (root) => {\n let layerNodes = {\n base: null,\n components: null,\n utilities: null,\n variants: null\n };\n root.walkAtRules((rule) => {\n if (rule.name === \"tailwind\") {\n if (Object.keys(layerNodes).includes(rule.params)) {\n layerNodes[rule.params] = rule;\n }\n }\n });\n if (Object.values(layerNodes).every((n) => n === null)) {\n return root;\n }\n let candidates = /* @__PURE__ */ new Set([...context.candidates ?? [], NOT_ON_DEMAND]);\n let seen = /* @__PURE__ */ new Set();\n env2.DEBUG && console.time(\"Reading changed files\");\n if (false) {\n for (let candidate of null.parseCandidateStringsFromFiles(\n context.changedContent\n )) {\n candidates.add(candidate);\n }\n } else {\n let regexParserContent = [];\n for (let item of context.changedContent) {\n let transformer = getTransformer(context.tailwindConfig, item.extension);\n let extractor = getExtractor(context, item.extension);\n regexParserContent.push([item, { transformer, extractor }]);\n }\n const BATCH_SIZE = 500;\n for (let i = 0; i < regexParserContent.length; i += BATCH_SIZE) {\n let batch = regexParserContent.slice(i, i + BATCH_SIZE);\n await Promise.all(\n batch.map(async ([{ file, content }, { transformer, extractor }]) => {\n content = file ? await fs_default.promises.readFile(file, \"utf8\") : content;\n getClassCandidates(transformer(content), extractor, candidates, seen);\n })\n );\n }\n }\n env2.DEBUG && console.timeEnd(\"Reading changed files\");\n let classCacheCount = context.classCache.size;\n env2.DEBUG && console.time(\"Generate rules\");\n env2.DEBUG && console.time(\"Sorting candidates\");\n let sortedCandidates = false ? candidates : new Set(\n [...candidates].sort((a, z) => {\n if (a === z)\n return 0;\n if (a < z)\n return -1;\n return 1;\n })\n );\n env2.DEBUG && console.timeEnd(\"Sorting candidates\");\n generateRules(sortedCandidates, context);\n env2.DEBUG && console.timeEnd(\"Generate rules\");\n env2.DEBUG && console.time(\"Build stylesheet\");\n if (context.stylesheetCache === null || context.classCache.size !== classCacheCount) {\n context.stylesheetCache = buildStylesheet([...context.ruleCache], context);\n }\n env2.DEBUG && console.timeEnd(\"Build stylesheet\");\n let {\n defaults: defaultNodes,\n base: baseNodes,\n components: componentNodes,\n utilities: utilityNodes,\n variants: screenNodes\n } = context.stylesheetCache;\n if (layerNodes.base) {\n layerNodes.base.before(\n cloneNodes([...baseNodes, ...defaultNodes], layerNodes.base.source, {\n layer: \"base\"\n })\n );\n layerNodes.base.remove();\n }\n if (layerNodes.components) {\n layerNodes.components.before(\n cloneNodes([...componentNodes], layerNodes.components.source, {\n layer: \"components\"\n })\n );\n layerNodes.components.remove();\n }\n if (layerNodes.utilities) {\n layerNodes.utilities.before(\n cloneNodes([...utilityNodes], layerNodes.utilities.source, {\n layer: \"utilities\"\n })\n );\n layerNodes.utilities.remove();\n }\n const variantNodes = Array.from(screenNodes).filter((node) => {\n const parentLayer = node.raws.tailwind?.parentLayer;\n if (parentLayer === \"components\") {\n return layerNodes.components !== null;\n }\n if (parentLayer === \"utilities\") {\n return layerNodes.utilities !== null;\n }\n return true;\n });\n if (layerNodes.variants) {\n layerNodes.variants.before(\n cloneNodes(variantNodes, layerNodes.variants.source, {\n layer: \"variants\"\n })\n );\n layerNodes.variants.remove();\n } else if (variantNodes.length > 0) {\n root.append(\n cloneNodes(variantNodes, root.source, {\n layer: \"variants\"\n })\n );\n }\n root.source.end = root.source.end ?? root.source.start;\n const hasUtilityVariants = variantNodes.some(\n (node) => node.raws.tailwind?.parentLayer === \"utilities\"\n );\n if (layerNodes.utilities && utilityNodes.size === 0 && !hasUtilityVariants) {\n log_default.warn(\"content-problems\", [\n \"No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.\",\n \"https://tailwindcss.com/docs/content-configuration\"\n ]);\n }\n if (env2.DEBUG) {\n console.log(\"Potential classes: \", candidates.size);\n console.log(\"Active contexts: \", contextSourcesMap.size);\n }\n context.changedContent = [];\n root.walkAtRules(\"layer\", (rule) => {\n if (Object.keys(layerNodes).includes(rule.params)) {\n rule.remove();\n }\n });\n };\n}\n\n// node_modules/tailwindcss/src/lib/expandApplyAtRules.js\nimport postcss6 from \"postcss\";\nimport parser4 from \"postcss-selector-parser\";\nfunction extractClasses(node) {\n let groups = /* @__PURE__ */ new Map();\n let container = postcss6.root({ nodes: [node.clone()] });\n container.walkRules((rule) => {\n parser4((selectors) => {\n selectors.walkClasses((classSelector) => {\n let parentSelector = classSelector.parent.toString();\n let classes2 = groups.get(parentSelector);\n if (!classes2) {\n groups.set(parentSelector, classes2 = /* @__PURE__ */ new Set());\n }\n classes2.add(classSelector.value);\n });\n }).processSync(rule.selector);\n });\n let normalizedGroups = Array.from(groups.values(), (classes2) => Array.from(classes2));\n let classes = normalizedGroups.flat();\n return Object.assign(classes, { groups: normalizedGroups });\n}\nvar selectorExtractor = parser4();\nfunction extractSelectors(ruleSelectors) {\n return selectorExtractor.astSync(ruleSelectors);\n}\nfunction extractBaseCandidates(candidates, separator) {\n let baseClasses = /* @__PURE__ */ new Set();\n for (let candidate of candidates) {\n baseClasses.add(candidate.split(separator).pop());\n }\n return Array.from(baseClasses);\n}\nfunction prefix2(context, selector) {\n let prefix3 = context.tailwindConfig.prefix;\n return typeof prefix3 === \"function\" ? prefix3(selector) : prefix3 + selector;\n}\nfunction* pathToRoot(node) {\n yield node;\n while (node.parent) {\n yield node.parent;\n node = node.parent;\n }\n}\nfunction shallowClone(node, overrides = {}) {\n let children = node.nodes;\n node.nodes = [];\n let tmp = node.clone(overrides);\n node.nodes = children;\n return tmp;\n}\nfunction nestedClone(node) {\n for (let parent of pathToRoot(node)) {\n if (node === parent) {\n continue;\n }\n if (parent.type === \"root\") {\n break;\n }\n node = shallowClone(parent, {\n nodes: [node]\n });\n }\n return node;\n}\nfunction buildLocalApplyCache(root, context) {\n let cache2 = /* @__PURE__ */ new Map();\n root.walkRules((rule) => {\n for (let node of pathToRoot(rule)) {\n if (node.raws.tailwind?.layer !== void 0) {\n return;\n }\n }\n let container = nestedClone(rule);\n let sort = context.offsets.create(\"user\");\n for (let className of extractClasses(rule)) {\n let list2 = cache2.get(className) || [];\n cache2.set(className, list2);\n list2.push([\n {\n layer: \"user\",\n sort,\n important: false\n },\n container\n ]);\n }\n });\n return cache2;\n}\nfunction buildApplyCache(applyCandidates, context) {\n for (let candidate of applyCandidates) {\n if (context.notClassCache.has(candidate) || context.applyClassCache.has(candidate)) {\n continue;\n }\n if (context.classCache.has(candidate)) {\n context.applyClassCache.set(\n candidate,\n context.classCache.get(candidate).map(([meta, rule]) => [meta, rule.clone()])\n );\n continue;\n }\n let matches = Array.from(resolveMatches(candidate, context));\n if (matches.length === 0) {\n context.notClassCache.add(candidate);\n continue;\n }\n context.applyClassCache.set(candidate, matches);\n }\n return context.applyClassCache;\n}\nfunction lazyCache(buildCacheFn) {\n let cache2 = null;\n return {\n get: (name) => {\n cache2 = cache2 || buildCacheFn();\n return cache2.get(name);\n },\n has: (name) => {\n cache2 = cache2 || buildCacheFn();\n return cache2.has(name);\n }\n };\n}\nfunction combineCaches(caches) {\n return {\n get: (name) => caches.flatMap((cache2) => cache2.get(name) || []),\n has: (name) => caches.some((cache2) => cache2.has(name))\n };\n}\nfunction extractApplyCandidates(params) {\n let candidates = params.split(/[\\s\\t\\n]+/g);\n if (candidates[candidates.length - 1] === \"!important\") {\n return [candidates.slice(0, -1), true];\n }\n return [candidates, false];\n}\nfunction processApply(root, context, localCache) {\n let applyCandidates = /* @__PURE__ */ new Set();\n let applies = [];\n root.walkAtRules(\"apply\", (rule) => {\n let [candidates] = extractApplyCandidates(rule.params);\n for (let util of candidates) {\n applyCandidates.add(util);\n }\n applies.push(rule);\n });\n if (applies.length === 0) {\n return;\n }\n let applyClassCache = combineCaches([localCache, buildApplyCache(applyCandidates, context)]);\n function replaceSelector(selector, utilitySelectors, candidate) {\n let selectorList = extractSelectors(selector);\n let utilitySelectorsList = extractSelectors(utilitySelectors);\n let candidateList = extractSelectors(`.${escapeClassName(candidate)}`);\n let candidateClass = candidateList.nodes[0].nodes[0];\n selectorList.each((sel) => {\n let replaced = /* @__PURE__ */ new Set();\n utilitySelectorsList.each((utilitySelector) => {\n let hasReplaced = false;\n utilitySelector = utilitySelector.clone();\n utilitySelector.walkClasses((node) => {\n if (node.value !== candidateClass.value) {\n return;\n }\n if (hasReplaced) {\n return;\n }\n node.replaceWith(...sel.nodes.map((node2) => node2.clone()));\n replaced.add(utilitySelector);\n hasReplaced = true;\n });\n });\n for (let sel2 of replaced) {\n let groups = [[]];\n for (let node of sel2.nodes) {\n if (node.type === \"combinator\") {\n groups.push(node);\n groups.push([]);\n } else {\n let last = groups[groups.length - 1];\n last.push(node);\n }\n }\n sel2.nodes = [];\n for (let group of groups) {\n if (Array.isArray(group)) {\n group.sort((a, b) => {\n if (a.type === \"tag\" && b.type === \"class\") {\n return -1;\n } else if (a.type === \"class\" && b.type === \"tag\") {\n return 1;\n } else if (a.type === \"class\" && b.type === \"pseudo\" && b.value.startsWith(\"::\")) {\n return -1;\n } else if (a.type === \"pseudo\" && a.value.startsWith(\"::\") && b.type === \"class\") {\n return 1;\n }\n return 0;\n });\n }\n sel2.nodes = sel2.nodes.concat(group);\n }\n }\n sel.replaceWith(...replaced);\n });\n return selectorList.toString();\n }\n let perParentApplies = /* @__PURE__ */ new Map();\n for (let apply of applies) {\n let [candidates] = perParentApplies.get(apply.parent) || [[], apply.source];\n perParentApplies.set(apply.parent, [candidates, apply.source]);\n let [applyCandidates2, important] = extractApplyCandidates(apply.params);\n if (apply.parent.type === \"atrule\") {\n if (apply.parent.name === \"screen\") {\n let screenType = apply.parent.params;\n throw apply.error(\n `@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${applyCandidates2.map((c) => `${screenType}:${c}`).join(\" \")} instead.`\n );\n }\n throw apply.error(\n `@apply is not supported within nested at-rules like @${apply.parent.name}. You can fix this by un-nesting @${apply.parent.name}.`\n );\n }\n for (let applyCandidate of applyCandidates2) {\n if ([prefix2(context, \"group\"), prefix2(context, \"peer\")].includes(applyCandidate)) {\n throw apply.error(`@apply should not be used with the '${applyCandidate}' utility`);\n }\n if (!applyClassCache.has(applyCandidate)) {\n throw apply.error(\n `The \\`${applyCandidate}\\` class does not exist. If \\`${applyCandidate}\\` is a custom class, make sure it is defined within a \\`@layer\\` directive.`\n );\n }\n let rules = applyClassCache.get(applyCandidate);\n candidates.push([applyCandidate, important, rules]);\n }\n }\n for (let [parent, [candidates, atApplySource]] of perParentApplies) {\n let siblings = [];\n for (let [applyCandidate, important, rules] of candidates) {\n let potentialApplyCandidates = [\n applyCandidate,\n ...extractBaseCandidates([applyCandidate], context.tailwindConfig.separator)\n ];\n for (let [meta, node] of rules) {\n let parentClasses = extractClasses(parent);\n let nodeClasses = extractClasses(node);\n nodeClasses = nodeClasses.groups.filter(\n (classList) => classList.some((className) => potentialApplyCandidates.includes(className))\n ).flat();\n nodeClasses = nodeClasses.concat(\n extractBaseCandidates(nodeClasses, context.tailwindConfig.separator)\n );\n let intersects = parentClasses.some((selector) => nodeClasses.includes(selector));\n if (intersects) {\n throw node.error(\n `You cannot \\`@apply\\` the \\`${applyCandidate}\\` utility here because it creates a circular dependency.`\n );\n }\n let root2 = postcss6.root({ nodes: [node.clone()] });\n root2.walk((node2) => {\n node2.source = atApplySource;\n });\n let canRewriteSelector = node.type !== \"atrule\" || node.type === \"atrule\" && node.name !== \"keyframes\";\n if (canRewriteSelector) {\n root2.walkRules((rule) => {\n if (!extractClasses(rule).some((candidate) => candidate === applyCandidate)) {\n rule.remove();\n return;\n }\n let importantSelector = typeof context.tailwindConfig.important === \"string\" ? context.tailwindConfig.important : null;\n let isGenerated = parent.raws.tailwind !== void 0;\n let parentSelector = isGenerated && importantSelector && parent.selector.indexOf(importantSelector) === 0 ? parent.selector.slice(importantSelector.length) : parent.selector;\n if (parentSelector === \"\") {\n parentSelector = parent.selector;\n }\n rule.selector = replaceSelector(parentSelector, rule.selector, applyCandidate);\n if (importantSelector && parentSelector !== parent.selector) {\n rule.selector = applyImportantSelector(rule.selector, importantSelector);\n }\n rule.walkDecls((d) => {\n d.important = meta.important || important;\n });\n let selector = parser4().astSync(rule.selector);\n selector.each((sel) => movePseudos(sel));\n rule.selector = selector.toString();\n });\n }\n if (!root2.nodes[0]) {\n continue;\n }\n siblings.push([meta.sort, root2.nodes[0]]);\n }\n }\n let nodes = context.offsets.sort(siblings).map((s) => s[1]);\n parent.after(nodes);\n }\n for (let apply of applies) {\n if (apply.parent.nodes.length > 1) {\n apply.remove();\n } else {\n apply.parent.remove();\n }\n }\n processApply(root, context, localCache);\n}\nfunction expandApplyAtRules(context) {\n return (root) => {\n let localCache = lazyCache(() => buildLocalApplyCache(root, context));\n processApply(root, context, localCache);\n };\n}\n\n// node_modules/tailwindcss/src/lib/evaluateTailwindFunctions.js\nimport dlv2 from \"dlv\";\nimport didYouMean from \"didyoumean\";\nvar import_value_parser = __toESM(require_value_parser());\nfunction isObject(input) {\n return typeof input === \"object\" && input !== null;\n}\nfunction findClosestExistingPath(theme, path) {\n let parts = toPath(path);\n do {\n parts.pop();\n if (dlv2(theme, parts) !== void 0)\n break;\n } while (parts.length);\n return parts.length ? parts : void 0;\n}\nfunction pathToString(path) {\n if (typeof path === \"string\")\n return path;\n return path.reduce((acc, cur, i) => {\n if (cur.includes(\".\"))\n return `${acc}[${cur}]`;\n return i === 0 ? cur : `${acc}.${cur}`;\n }, \"\");\n}\nfunction list(items) {\n return items.map((key) => `'${key}'`).join(\", \");\n}\nfunction listKeys(obj) {\n return list(Object.keys(obj));\n}\nfunction validatePath(config, path, defaultValue, themeOpts = {}) {\n const pathString = Array.isArray(path) ? pathToString(path) : path.replace(/^['\"]+|['\"]+$/g, \"\");\n const pathSegments = Array.isArray(path) ? path : toPath(pathString);\n const value2 = dlv2(config.theme, pathSegments, defaultValue);\n if (value2 === void 0) {\n let error = `'${pathString}' does not exist in your theme config.`;\n const parentSegments = pathSegments.slice(0, -1);\n const parentValue = dlv2(config.theme, parentSegments);\n if (isObject(parentValue)) {\n const validKeys = Object.keys(parentValue).filter(\n (key) => validatePath(config, [...parentSegments, key]).isValid\n );\n const suggestion = didYouMean(pathSegments[pathSegments.length - 1], validKeys);\n if (suggestion) {\n error += ` Did you mean '${pathToString([...parentSegments, suggestion])}'?`;\n } else if (validKeys.length > 0) {\n error += ` '${pathToString(parentSegments)}' has the following valid keys: ${list(\n validKeys\n )}`;\n }\n } else {\n const closestPath = findClosestExistingPath(config.theme, pathString);\n if (closestPath) {\n const closestValue = dlv2(config.theme, closestPath);\n if (isObject(closestValue)) {\n error += ` '${pathToString(closestPath)}' has the following keys: ${listKeys(\n closestValue\n )}`;\n } else {\n error += ` '${pathToString(closestPath)}' is not an object.`;\n }\n } else {\n error += ` Your theme has the following top-level keys: ${listKeys(config.theme)}`;\n }\n }\n return {\n isValid: false,\n error\n };\n }\n if (!(typeof value2 === \"string\" || typeof value2 === \"number\" || typeof value2 === \"function\" || value2 instanceof String || value2 instanceof Number || Array.isArray(value2))) {\n let error = `'${pathString}' was found but does not resolve to a string.`;\n if (isObject(value2)) {\n let validKeys = Object.keys(value2).filter(\n (key) => validatePath(config, [...pathSegments, key]).isValid\n );\n if (validKeys.length) {\n error += ` Did you mean something like '${pathToString([...pathSegments, validKeys[0]])}'?`;\n }\n }\n return {\n isValid: false,\n error\n };\n }\n const [themeSection] = pathSegments;\n return {\n isValid: true,\n value: transformThemeValue(themeSection)(value2, themeOpts)\n };\n}\nfunction extractArgs(node, vNodes, functions) {\n vNodes = vNodes.map((vNode) => resolveVNode(node, vNode, functions));\n let args = [\"\"];\n for (let vNode of vNodes) {\n if (vNode.type === \"div\" && vNode.value === \",\") {\n args.push(\"\");\n } else {\n args[args.length - 1] += import_value_parser.default.stringify(vNode);\n }\n }\n return args;\n}\nfunction resolveVNode(node, vNode, functions) {\n if (vNode.type === \"function\" && functions[vNode.value] !== void 0) {\n let args = extractArgs(node, vNode.nodes, functions);\n vNode.type = \"word\";\n vNode.value = functions[vNode.value](node, ...args);\n }\n return vNode;\n}\nfunction resolveFunctions(node, input, functions) {\n let hasAnyFn = Object.keys(functions).some((fn) => input.includes(`${fn}(`));\n if (!hasAnyFn)\n return input;\n return (0, import_value_parser.default)(input).walk((vNode) => {\n resolveVNode(node, vNode, functions);\n }).toString();\n}\nvar nodeTypePropertyMap = {\n atrule: \"params\",\n decl: \"value\"\n};\nfunction* toPaths(path) {\n path = path.replace(/^['\"]+|['\"]+$/g, \"\");\n let matches = path.match(/^([^\\s]+)(?![^\\[]*\\])(?:\\s*\\/\\s*([^\\/\\s]+))$/);\n let alpha = void 0;\n yield [path, void 0];\n if (matches) {\n path = matches[1];\n alpha = matches[2];\n yield [path, alpha];\n }\n}\nfunction resolvePath(config, path, defaultValue) {\n const results = Array.from(toPaths(path)).map(([path2, alpha]) => {\n return Object.assign(validatePath(config, path2, defaultValue, { opacityValue: alpha }), {\n resolvedPath: path2,\n alpha\n });\n });\n return results.find((result) => result.isValid) ?? results[0];\n}\nfunction evaluateTailwindFunctions_default(context) {\n let config = context.tailwindConfig;\n let functions = {\n theme: (node, path, ...defaultValue) => {\n let { isValid, value: value2, error, alpha } = resolvePath(\n config,\n path,\n defaultValue.length ? defaultValue : void 0\n );\n if (!isValid) {\n let parentNode = node.parent;\n let candidate = parentNode?.raws.tailwind?.candidate;\n if (parentNode && candidate !== void 0) {\n context.markInvalidUtilityNode(parentNode);\n parentNode.remove();\n log_default.warn(\"invalid-theme-key-in-class\", [\n `The utility \\`${candidate}\\` contains an invalid theme value and was not generated.`\n ]);\n return;\n }\n throw node.error(error);\n }\n let maybeColor = parseColorFormat(value2);\n let isColorFunction = maybeColor !== void 0 && typeof maybeColor === \"function\";\n if (alpha !== void 0 || isColorFunction) {\n if (alpha === void 0) {\n alpha = 1;\n }\n value2 = withAlphaValue(maybeColor, alpha, maybeColor);\n }\n return value2;\n },\n screen: (node, screen) => {\n screen = screen.replace(/^['\"]+/g, \"\").replace(/['\"]+$/g, \"\");\n let screens = normalizeScreens(config.theme.screens);\n let screenDefinition = screens.find(({ name }) => name === screen);\n if (!screenDefinition) {\n throw node.error(`The '${screen}' screen does not exist in your theme.`);\n }\n return buildMediaQuery(screenDefinition);\n }\n };\n return (root) => {\n root.walk((node) => {\n let property = nodeTypePropertyMap[node.type];\n if (property === void 0) {\n return;\n }\n node[property] = resolveFunctions(node, node[property], functions);\n });\n };\n}\n\n// node_modules/tailwindcss/src/lib/substituteScreenAtRules.js\nfunction substituteScreenAtRules_default({ tailwindConfig: { theme } }) {\n return function(css) {\n css.walkAtRules(\"screen\", (atRule) => {\n let screen = atRule.params;\n let screens = normalizeScreens(theme.screens);\n let screenDefinition = screens.find(({ name }) => name === screen);\n if (!screenDefinition) {\n throw atRule.error(`No \\`${screen}\\` screen found.`);\n }\n atRule.name = \"media\";\n atRule.params = buildMediaQuery(screenDefinition);\n });\n };\n}\n\n// node_modules/tailwindcss/src/lib/resolveDefaultsAtRules.js\nimport postcss7 from \"postcss\";\nimport selectorParser4 from \"postcss-selector-parser\";\nvar getNode = {\n id(node) {\n return selectorParser4.attribute({\n attribute: \"id\",\n operator: \"=\",\n value: node.value,\n quoteMark: '\"'\n });\n }\n};\nfunction minimumImpactSelector(nodes) {\n let rest = nodes.filter((node2) => {\n if (node2.type !== \"pseudo\")\n return true;\n if (node2.nodes.length > 0)\n return true;\n return node2.value.startsWith(\"::\") || [\":before\", \":after\", \":first-line\", \":first-letter\"].includes(node2.value);\n }).reverse();\n let searchFor = /* @__PURE__ */ new Set([\"tag\", \"class\", \"id\", \"attribute\"]);\n let splitPointIdx = rest.findIndex((n) => searchFor.has(n.type));\n if (splitPointIdx === -1)\n return rest.reverse().join(\"\").trim();\n let node = rest[splitPointIdx];\n let bestNode = getNode[node.type] ? getNode[node.type](node) : node;\n rest = rest.slice(0, splitPointIdx);\n let combinatorIdx = rest.findIndex((n) => n.type === \"combinator\" && n.value === \">\");\n if (combinatorIdx !== -1) {\n rest.splice(0, combinatorIdx);\n rest.unshift(selectorParser4.universal());\n }\n return [bestNode, ...rest.reverse()].join(\"\").trim();\n}\nvar elementSelectorParser = selectorParser4((selectors) => {\n return selectors.map((s) => {\n let nodes = s.split((n) => n.type === \"combinator\" && n.value === \" \").pop();\n return minimumImpactSelector(nodes);\n });\n});\nvar cache = /* @__PURE__ */ new Map();\nfunction extractElementSelector(selector) {\n if (!cache.has(selector)) {\n cache.set(selector, elementSelectorParser.transformSync(selector));\n }\n return cache.get(selector);\n}\nfunction resolveDefaultsAtRules({ tailwindConfig }) {\n return (root) => {\n let variableNodeMap = /* @__PURE__ */ new Map();\n let universals = /* @__PURE__ */ new Set();\n root.walkAtRules(\"defaults\", (rule) => {\n if (rule.nodes && rule.nodes.length > 0) {\n universals.add(rule);\n return;\n }\n let variable = rule.params;\n if (!variableNodeMap.has(variable)) {\n variableNodeMap.set(variable, /* @__PURE__ */ new Set());\n }\n variableNodeMap.get(variable).add(rule.parent);\n rule.remove();\n });\n if (flagEnabled(tailwindConfig, \"optimizeUniversalDefaults\")) {\n for (let universal of universals) {\n let selectorGroups = /* @__PURE__ */ new Map();\n let rules = variableNodeMap.get(universal.params) ?? [];\n for (let rule of rules) {\n for (let selector of extractElementSelector(rule.selector)) {\n let selectorGroupName = selector.includes(\":-\") || selector.includes(\"::-\") ? selector : \"__DEFAULT__\";\n let selectors = selectorGroups.get(selectorGroupName) ?? /* @__PURE__ */ new Set();\n selectorGroups.set(selectorGroupName, selectors);\n selectors.add(selector);\n }\n }\n if (flagEnabled(tailwindConfig, \"optimizeUniversalDefaults\")) {\n if (selectorGroups.size === 0) {\n universal.remove();\n continue;\n }\n for (let [, selectors] of selectorGroups) {\n let universalRule = postcss7.rule({\n source: universal.source\n });\n universalRule.selectors = [...selectors];\n universalRule.append(universal.nodes.map((node) => node.clone()));\n universal.before(universalRule);\n }\n }\n universal.remove();\n }\n } else if (universals.size) {\n let universalRule = postcss7.rule({\n selectors: [\"*\", \"::before\", \"::after\"]\n });\n for (let universal of universals) {\n universalRule.append(universal.nodes);\n if (!universalRule.parent) {\n universal.before(universalRule);\n }\n if (!universalRule.source) {\n universalRule.source = universal.source;\n }\n universal.remove();\n }\n let backdropRule = universalRule.clone({\n selectors: [\"::backdrop\"]\n });\n universalRule.after(backdropRule);\n }\n };\n}\n\n// node_modules/tailwindcss/src/lib/collapseAdjacentRules.js\nvar comparisonMap = {\n atrule: [\"name\", \"params\"],\n rule: [\"selector\"]\n};\nvar types = new Set(Object.keys(comparisonMap));\nfunction collapseAdjacentRules() {\n function collapseRulesIn(root) {\n let currentRule = null;\n root.each((node) => {\n if (!types.has(node.type)) {\n currentRule = null;\n return;\n }\n if (currentRule === null) {\n currentRule = node;\n return;\n }\n let properties = comparisonMap[node.type];\n if (node.type === \"atrule\" && node.name === \"font-face\") {\n currentRule = node;\n } else if (properties.every(\n (property) => (node[property] ?? \"\").replace(/\\s+/g, \" \") === (currentRule[property] ?? \"\").replace(/\\s+/g, \" \")\n )) {\n if (node.nodes) {\n currentRule.append(node.nodes);\n }\n node.remove();\n } else {\n currentRule = node;\n }\n });\n root.each((node) => {\n if (node.type === \"atrule\") {\n collapseRulesIn(node);\n }\n });\n }\n return (root) => {\n collapseRulesIn(root);\n };\n}\n\n// node_modules/tailwindcss/src/lib/collapseDuplicateDeclarations.js\nfunction collapseDuplicateDeclarations() {\n return (root) => {\n root.walkRules((node) => {\n let seen = /* @__PURE__ */ new Map();\n let droppable = /* @__PURE__ */ new Set([]);\n let byProperty = /* @__PURE__ */ new Map();\n node.walkDecls((decl) => {\n if (decl.parent !== node) {\n return;\n }\n if (seen.has(decl.prop)) {\n if (seen.get(decl.prop).value === decl.value) {\n droppable.add(seen.get(decl.prop));\n seen.set(decl.prop, decl);\n return;\n }\n if (!byProperty.has(decl.prop)) {\n byProperty.set(decl.prop, /* @__PURE__ */ new Set());\n }\n byProperty.get(decl.prop).add(seen.get(decl.prop));\n byProperty.get(decl.prop).add(decl);\n }\n seen.set(decl.prop, decl);\n });\n for (let decl of droppable) {\n decl.remove();\n }\n for (let declarations of byProperty.values()) {\n let byUnit = /* @__PURE__ */ new Map();\n for (let decl of declarations) {\n let unit = resolveUnit(decl.value);\n if (unit === null) {\n continue;\n }\n if (!byUnit.has(unit)) {\n byUnit.set(unit, /* @__PURE__ */ new Set());\n }\n byUnit.get(unit).add(decl);\n }\n for (let declarations2 of byUnit.values()) {\n let removableDeclarations = Array.from(declarations2).slice(0, -1);\n for (let decl of removableDeclarations) {\n decl.remove();\n }\n }\n }\n });\n };\n}\nvar UNITLESS_NUMBER = Symbol(\"unitless-number\");\nfunction resolveUnit(input) {\n let result = /^-?\\d*.?\\d+([\\w%]+)?$/g.exec(input);\n if (result) {\n return result[1] ?? UNITLESS_NUMBER;\n }\n return null;\n}\n\n// node_modules/tailwindcss/src/lib/partitionApplyAtRules.js\nfunction partitionRules(root) {\n if (!root.walkAtRules)\n return;\n let applyParents = /* @__PURE__ */ new Set();\n root.walkAtRules(\"apply\", (rule) => {\n applyParents.add(rule.parent);\n });\n if (applyParents.size === 0) {\n return;\n }\n for (let rule of applyParents) {\n let nodeGroups = [];\n let lastGroup = [];\n for (let node of rule.nodes) {\n if (node.type === \"atrule\" && node.name === \"apply\") {\n if (lastGroup.length > 0) {\n nodeGroups.push(lastGroup);\n lastGroup = [];\n }\n nodeGroups.push([node]);\n } else {\n lastGroup.push(node);\n }\n }\n if (lastGroup.length > 0) {\n nodeGroups.push(lastGroup);\n }\n if (nodeGroups.length === 1) {\n continue;\n }\n for (let group of [...nodeGroups].reverse()) {\n let clone = rule.clone({ nodes: [] });\n clone.append(group);\n rule.after(clone);\n }\n rule.remove();\n }\n}\nfunction expandApplyAtRules2() {\n return (root) => {\n partitionRules(root);\n };\n}\n\n// node_modules/tailwindcss/src/lib/detectNesting.js\nfunction isRoot(node) {\n return node.type === \"root\";\n}\nfunction isAtLayer(node) {\n return node.type === \"atrule\" && node.name === \"layer\";\n}\nfunction detectNesting_default(_context) {\n return (root, result) => {\n let found = false;\n root.walkAtRules(\"tailwind\", (node) => {\n if (found)\n return false;\n if (node.parent && !(isRoot(node.parent) || isAtLayer(node.parent))) {\n found = true;\n node.warn(\n result,\n [\n \"Nested @tailwind rules were detected, but are not supported.\",\n \"Consider using a prefix to scope Tailwind's classes: https://tailwindcss.com/docs/configuration#prefix\",\n \"Alternatively, use the important selector strategy: https://tailwindcss.com/docs/configuration#selector-strategy\"\n ].join(\"\\n\")\n );\n return false;\n }\n });\n root.walkRules((rule) => {\n if (found)\n return false;\n rule.walkRules((nestedRule) => {\n found = true;\n nestedRule.warn(\n result,\n [\n \"Nested CSS was detected, but CSS nesting has not been configured correctly.\",\n \"Please enable a CSS nesting plugin *before* Tailwind in your configuration.\",\n \"See how here: https://tailwindcss.com/docs/using-with-preprocessors#nesting\"\n ].join(\"\\n\")\n );\n return false;\n });\n });\n };\n}\n\n// node_modules/tailwindcss/src/processTailwindFeatures.js\nfunction processTailwindFeatures(setupContext) {\n return async function(root, result) {\n let { tailwindDirectives, applyDirectives } = normalizeTailwindDirectives(root);\n detectNesting_default()(root, result);\n expandApplyAtRules2()(root, result);\n let context = setupContext({\n tailwindDirectives,\n applyDirectives,\n registerDependency(dependency) {\n result.messages.push({\n plugin: \"tailwindcss\",\n parent: result.opts.from,\n ...dependency\n });\n },\n createContext(tailwindConfig, changedContent) {\n return createContext(tailwindConfig, changedContent, root);\n }\n })(root, result);\n if (context.tailwindConfig.separator === \"-\") {\n throw new Error(\n \"The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.\"\n );\n }\n issueFlagNotices(context.tailwindConfig);\n await expandTailwindAtRules(context)(root, result);\n expandApplyAtRules2()(root, result);\n expandApplyAtRules(context)(root, result);\n evaluateTailwindFunctions_default(context)(root, result);\n substituteScreenAtRules_default(context)(root, result);\n resolveDefaultsAtRules(context)(root, result);\n collapseAdjacentRules(context)(root, result);\n collapseDuplicateDeclarations(context)(root, result);\n };\n}\n\n// node_modules/tailwindcss/src/corePluginList.js\nvar corePluginList_default = [\"preflight\", \"container\", \"accessibility\", \"pointerEvents\", \"visibility\", \"position\", \"inset\", \"isolation\", \"zIndex\", \"order\", \"gridColumn\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRow\", \"gridRowStart\", \"gridRowEnd\", \"float\", \"clear\", \"margin\", \"boxSizing\", \"lineClamp\", \"display\", \"aspectRatio\", \"size\", \"height\", \"maxHeight\", \"minHeight\", \"width\", \"minWidth\", \"maxWidth\", \"flex\", \"flexShrink\", \"flexGrow\", \"flexBasis\", \"tableLayout\", \"captionSide\", \"borderCollapse\", \"borderSpacing\", \"transformOrigin\", \"translate\", \"rotate\", \"skew\", \"scale\", \"transform\", \"animation\", \"cursor\", \"touchAction\", \"userSelect\", \"resize\", \"scrollSnapType\", \"scrollSnapAlign\", \"scrollSnapStop\", \"scrollMargin\", \"scrollPadding\", \"listStylePosition\", \"listStyleType\", \"listStyleImage\", \"appearance\", \"columns\", \"breakBefore\", \"breakInside\", \"breakAfter\", \"gridAutoColumns\", \"gridAutoFlow\", \"gridAutoRows\", \"gridTemplateColumns\", \"gridTemplateRows\", \"flexDirection\", \"flexWrap\", \"placeContent\", \"placeItems\", \"alignContent\", \"alignItems\", \"justifyContent\", \"justifyItems\", \"gap\", \"space\", \"divideWidth\", \"divideStyle\", \"divideColor\", \"divideOpacity\", \"placeSelf\", \"alignSelf\", \"justifySelf\", \"overflow\", \"overscrollBehavior\", \"scrollBehavior\", \"textOverflow\", \"hyphens\", \"whitespace\", \"textWrap\", \"wordBreak\", \"borderRadius\", \"borderWidth\", \"borderStyle\", \"borderColor\", \"borderOpacity\", \"backgroundColor\", \"backgroundOpacity\", \"backgroundImage\", \"gradientColorStops\", \"boxDecorationBreak\", \"backgroundSize\", \"backgroundAttachment\", \"backgroundClip\", \"backgroundPosition\", \"backgroundRepeat\", \"backgroundOrigin\", \"fill\", \"stroke\", \"strokeWidth\", \"objectFit\", \"objectPosition\", \"padding\", \"textAlign\", \"textIndent\", \"verticalAlign\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"textTransform\", \"fontStyle\", \"fontVariantNumeric\", \"lineHeight\", \"letterSpacing\", \"textColor\", \"textOpacity\", \"textDecoration\", \"textDecorationColor\", \"textDecorationStyle\", \"textDecorationThickness\", \"textUnderlineOffset\", \"fontSmoothing\", \"placeholderColor\", \"placeholderOpacity\", \"caretColor\", \"accentColor\", \"opacity\", \"backgroundBlendMode\", \"mixBlendMode\", \"boxShadow\", \"boxShadowColor\", \"outlineStyle\", \"outlineWidth\", \"outlineOffset\", \"outlineColor\", \"ringWidth\", \"ringColor\", \"ringOpacity\", \"ringOffsetWidth\", \"ringOffsetColor\", \"blur\", \"brightness\", \"contrast\", \"dropShadow\", \"grayscale\", \"hueRotate\", \"invert\", \"saturate\", \"sepia\", \"filter\", \"backdropBlur\", \"backdropBrightness\", \"backdropContrast\", \"backdropGrayscale\", \"backdropHueRotate\", \"backdropInvert\", \"backdropOpacity\", \"backdropSaturate\", \"backdropSepia\", \"backdropFilter\", \"transitionProperty\", \"transitionDelay\", \"transitionDuration\", \"transitionTimingFunction\", \"willChange\", \"content\", \"forcedColorAdjust\"];\n\n// node_modules/tailwindcss/src/util/configurePlugins.js\nfunction configurePlugins_default(pluginConfig, plugins) {\n if (pluginConfig === void 0) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(\n plugins.filter((pluginName) => {\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(\n Object.keys(pluginConfig).filter((pluginName) => {\n return pluginConfig[pluginName] !== false;\n })\n )\n )\n ];\n return pluginNames;\n}\n\n// node_modules/tailwindcss/src/public/colors.js\nfunction warn({ version: version2, from, to }) {\n log_default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version2}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n}\nvar colors_default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue() {\n warn({ version: \"v2.2\", from: \"lightBlue\", to: \"sky\" });\n return this.sky;\n },\n get warmGray() {\n warn({ version: \"v3.0\", from: \"warmGray\", to: \"stone\" });\n return this.stone;\n },\n get trueGray() {\n warn({ version: \"v3.0\", from: \"trueGray\", to: \"neutral\" });\n return this.neutral;\n },\n get coolGray() {\n warn({ version: \"v3.0\", from: \"coolGray\", to: \"gray\" });\n return this.gray;\n },\n get blueGray() {\n warn({ version: \"v3.0\", from: \"blueGray\", to: \"slate\" });\n return this.slate;\n }\n};\n\n// node_modules/tailwindcss/src/util/defaults.js\nfunction defaults2(target, ...sources) {\n for (let source of sources) {\n for (let k in source) {\n if (!target?.hasOwnProperty?.(k)) {\n target[k] = source[k];\n }\n }\n for (let k of Object.getOwnPropertySymbols(source)) {\n if (!target?.hasOwnProperty?.(k)) {\n target[k] = source[k];\n }\n }\n }\n return target;\n}\n\n// node_modules/tailwindcss/src/util/normalizeConfig.js\nfunction normalizeConfig(config) {\n let valid = (() => {\n if (config.purge) {\n return false;\n }\n if (!config.content) {\n return false;\n }\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n if (Array.isArray(config.content)) {\n return config.content.every((path) => {\n if (typeof path === \"string\")\n return true;\n if (typeof path?.raw !== \"string\")\n return false;\n if (path?.extension && typeof path?.extension !== \"string\") {\n return false;\n }\n return true;\n });\n }\n if (typeof config.content === \"object\" && config.content !== null) {\n if (Object.keys(config.content).some(\n (key) => ![\"files\", \"relative\", \"extract\", \"transform\"].includes(key)\n )) {\n return false;\n }\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path) => {\n if (typeof path === \"string\")\n return true;\n if (typeof path?.raw !== \"string\")\n return false;\n if (path?.extension && typeof path?.extension !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n if (typeof config.content.extract === \"object\") {\n for (let value2 of Object.values(config.content.extract)) {\n if (typeof value2 !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === void 0 || typeof config.content.extract === \"function\")) {\n return false;\n }\n if (typeof config.content.transform === \"object\") {\n for (let value2 of Object.values(config.content.transform)) {\n if (typeof value2 !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === void 0 || typeof config.content.transform === \"function\")) {\n return false;\n }\n if (typeof config.content.relative !== \"boolean\" && typeof config.content.relative !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n log_default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\"\n ]);\n }\n config.safelist = (() => {\n let { content, purge, safelist } = config;\n if (Array.isArray(safelist))\n return safelist;\n if (Array.isArray(content?.safelist))\n return content.safelist;\n if (Array.isArray(purge?.safelist))\n return purge.safelist;\n if (Array.isArray(purge?.options?.safelist))\n return purge.options.safelist;\n return [];\n })();\n config.blocklist = (() => {\n let { blocklist } = config;\n if (Array.isArray(blocklist)) {\n if (blocklist.every((item) => typeof item === \"string\")) {\n return blocklist;\n }\n log_default.warn(\"blocklist-invalid\", [\n \"The `blocklist` option must be an array of strings.\",\n \"https://tailwindcss.com/docs/content-configuration#discarding-classes\"\n ]);\n }\n return [];\n })();\n if (typeof config.prefix === \"function\") {\n log_default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\"\n ]);\n config.prefix = \"\";\n } else {\n config.prefix = config.prefix ?? \"\";\n }\n config.content = {\n relative: (() => {\n let { content } = config;\n if (content?.relative) {\n return content.relative;\n }\n return flagEnabled(config, \"relativeContentPathsByDefault\");\n })(),\n files: (() => {\n let { content, purge } = config;\n if (Array.isArray(purge))\n return purge;\n if (Array.isArray(purge?.content))\n return purge.content;\n if (Array.isArray(content))\n return content;\n if (Array.isArray(content?.content))\n return content.content;\n if (Array.isArray(content?.files))\n return content.files;\n return [];\n })(),\n extract: (() => {\n let extract = (() => {\n if (config.purge?.extract)\n return config.purge.extract;\n if (config.content?.extract)\n return config.content.extract;\n if (config.purge?.extract?.DEFAULT)\n return config.purge.extract.DEFAULT;\n if (config.content?.extract?.DEFAULT)\n return config.content.extract.DEFAULT;\n if (config.purge?.options?.extractors)\n return config.purge.options.extractors;\n if (config.content?.options?.extractors)\n return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor2 = (() => {\n if (config.purge?.options?.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if (config.content?.options?.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return void 0;\n })();\n if (defaultExtractor2 !== void 0) {\n extractors.DEFAULT = defaultExtractor2;\n }\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions, extractor } of extract ?? []) {\n for (let extension of extensions) {\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (() => {\n let transform = (() => {\n if (config.purge?.transform)\n return config.purge.transform;\n if (config.content?.transform)\n return config.content.transform;\n if (config.purge?.transform?.DEFAULT)\n return config.purge.transform.DEFAULT;\n if (config.content?.transform?.DEFAULT)\n return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n for (let file of config.content.files) {\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n log_default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${dim(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${dim(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n\n// node_modules/tailwindcss/src/util/cloneDeep.js\nfunction cloneDeep(value2) {\n if (Array.isArray(value2)) {\n return value2.map((child) => cloneDeep(child));\n }\n if (typeof value2 === \"object\" && value2 !== null) {\n return Object.fromEntries(Object.entries(value2).map(([k, v]) => [k, cloneDeep(v)]));\n }\n return value2;\n}\n\n// node_modules/tailwindcss/src/util/resolveConfig.js\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources) {\n for (let k in source) {\n let merged = customizer(target[k], source[k]);\n if (merged === void 0) {\n if (isPlainObject(target[k]) && isPlainObject(source[k])) {\n target[k] = mergeWith({}, target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nvar configUtils = {\n colors: colors_default,\n negative(scale) {\n return Object.keys(scale).filter((key) => scale[key] !== \"0\").reduce((negativeScale, key) => {\n let negativeValue = negateValue(scale[key]);\n if (negativeValue !== void 0) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints(screens) {\n return Object.keys(screens).filter((key) => typeof screens[key] === \"string\").reduce(\n (breakpoints, key) => ({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }),\n {}\n );\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend }) => {\n return mergeWith(merged, extend, (mergedValue, extendValue) => {\n if (mergedValue === void 0) {\n return [extendValue];\n }\n if (Array.isArray(mergedValue)) {\n return [extendValue, ...mergedValue];\n }\n return [extendValue, mergedValue];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme) => defaults2(merged, theme), {}),\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value2) {\n if (Array.isArray(merged) && isPlainObject(merged[0])) {\n return merged.concat(value2);\n }\n if (Array.isArray(value2) && isPlainObject(value2[0]) && isPlainObject(merged)) {\n return [merged, ...value2];\n }\n if (Array.isArray(value2)) {\n return value2;\n }\n return void 0;\n}\nfunction mergeExtensions({ extend, ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions) => {\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils) => mergeWith(\n {},\n ...[themeValue, ...extensions].map((e) => value(e, resolveThemePath, utils)),\n mergeExtensionCustomizer\n );\n });\n}\nfunction* toPaths2(key) {\n let path = toPath(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern2 = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern2);\n if (matches !== null) {\n let [, prefix3, alpha] = matches;\n let newPath = toPath(prefix3);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n const resolvePath2 = (key, defaultValue) => {\n for (const path of toPaths2(key)) {\n let index = 0;\n let val = object;\n while (val !== void 0 && val !== null && index < path.length) {\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === void 0 || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath2, configUtils) : val;\n }\n if (val !== void 0) {\n if (path.alpha !== void 0) {\n let normalized = parseColorFormat(val);\n return withAlphaValue(normalized, path.alpha, toColorValue(normalized));\n }\n if (isPlainObject(val)) {\n return cloneDeep(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath2, {\n theme: resolvePath2,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key) => {\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath2, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config) => {\n allConfigs = [...allConfigs, config];\n const plugins = config?.plugins ?? [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin) => {\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n allConfigs = [...allConfigs, ...extractPluginConfigs([plugin?.config ?? {}])];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [...corePluginConfigs].reduceRight((resolved, corePluginConfig) => {\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({ corePlugins: resolved });\n }\n return configurePlugins_default(corePluginConfig, resolved);\n }, corePluginList_default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [...pluginLists].reduceRight((resolved, pluginList) => {\n return [...resolved, ...pluginList];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\"\n }\n ];\n return normalizeConfig(\n defaults2(\n {\n theme: resolveFunctionKeys(\n mergeExtensions(mergeThemes(allConfigs.map((t) => t?.theme ?? {})))\n ),\n corePlugins: resolveCorePlugins(allConfigs.map((c) => c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c) => c?.plugins ?? []))\n },\n ...allConfigs\n )\n );\n}\n\n// node_modules/tailwindcss/src/util/getAllConfigs.js\nvar import_config_full = __toESM(require_config_full());\nfunction getAllConfigs(config) {\n const configs = (config?.presets ?? [import_config_full.default]).slice().reverse().flatMap((preset) => getAllConfigs(preset instanceof Function ? preset() : preset));\n const features = {\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: ({ theme }) => ({\n DEFAULT: \"#3b82f67f\",\n ...theme(\"colors\")\n })\n }\n },\n disableColorOpacityUtilitiesByDefault: {\n corePlugins: {\n backgroundOpacity: false,\n borderOpacity: false,\n divideOpacity: false,\n placeholderOpacity: false,\n ringOpacity: false,\n textOpacity: false\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature) => flagEnabled(config, feature)).map((feature) => features[feature]);\n return [config, ...experimentals, ...configs];\n}\n\n// node_modules/tailwindcss/src/public/resolve-config.js\nfunction resolveConfig2(...configs) {\n let [, ...defaultConfigs] = getAllConfigs(configs[0]);\n return resolveConfig([...configs, ...defaultConfigs]);\n}\n\n// src/index.ts\nvar createTailwindcss = ({ tailwindConfig } = {}) => {\n let currentTailwindConfig = tailwindConfig;\n return {\n setTailwindConfig(newTailwindConfig) {\n currentTailwindConfig = newTailwindConfig;\n },\n async generateStylesFromContent(css, content) {\n const tailwindcssPlugin = createTailwindcssPlugin({ tailwindConfig: currentTailwindConfig, content });\n const processor = postcss8([tailwindcssPlugin]);\n const result = await processor.process(css, { from: void 0 });\n return result.css;\n }\n };\n};\nvar createTailwindcssPlugin = ({ tailwindConfig, content: contentCollection }) => {\n const config = resolveConfig2(tailwindConfig ?? {});\n const tailwindcssPlugin = processTailwindFeatures(\n (processOptions) => () => processOptions.createContext(\n config,\n contentCollection.map((content) => typeof content === \"string\" ? { content } : content)\n )\n );\n return tailwindcssPlugin;\n};\nvar jitBrowserTailwindcss = (tailwindMainCss, jitContent, userTailwindConfig = {}) => {\n const tailwindcss = createTailwindcss({ tailwindConfig: userTailwindConfig });\n return tailwindcss.generateStylesFromContent(tailwindMainCss, [jitContent]);\n};\nvar src_default = jitBrowserTailwindcss;\nexport {\n createTailwindcss,\n createTailwindcssPlugin,\n src_default as default,\n jitBrowserTailwindcss\n};\n//# sourceMappingURL=module.esm.js.map\n","export const FRAME_RATE = 1000 / 60;\n\nexport const isObject = (value: any) => {\n return !!value && value.constructor === Object;\n};\n\nexport const arrayEquals = (a: any[], b: any[]) => {\n if (!a || !b || a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n};\n\nexport async function sleep(ms: number) {\n return await new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport async function waitUntil(condition: () => boolean, delay: number = FRAME_RATE) {\n return await new Promise<void>((resolve) => {\n const interval = setInterval(() => {\n if (condition()) {\n clearInterval(interval);\n return resolve();\n }\n }, delay);\n });\n}\n\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number = 100,\n immediate: boolean = false,\n): (...args: Parameters<T>) => void {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n let result: ReturnType<T>;\n\n return function (this: ThisParameterType<T>, ...args: Parameters<T>): void {\n const context = this;\n\n const later = function () {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n };\n\n const callNow = immediate && !timeout;\n\n if (timeout) clearTimeout(timeout);\n\n timeout = setTimeout(later, wait);\n\n if (callNow) result = func.apply(context, args);\n };\n}\n\nexport async function createHash(algorithm: string, data: string) {\n const sourceBytes = new TextEncoder().encode(data);\n\n const digestBytes = await crypto.subtle.digest(algorithm, sourceBytes);\n\n const digestArray = Array.from(new Uint8Array(digestBytes));\n\n return digestArray.map((byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport function memoize<T extends (...args: any[]) => any>(\n func: T,\n options: {\n maxCacheSize?: number;\n ttl?: number;\n } = {},\n): T & { cache: Map<string, { value: ReturnType<T>; timestamp: number }> } {\n const cache = new Map<string, { value: ReturnType<T>; timestamp: number }>();\n const { maxCacheSize = Infinity, ttl = Infinity } = options;\n\n async function hashArgs(...args: any[]) {\n try {\n const jsonString = JSON.stringify(args);\n return await createHash(\"SHA-256\", jsonString);\n } catch (error) {\n return args.map((arg) => String(arg)).join(\"|\");\n }\n }\n\n const memoized = function (\n this: ThisParameterType<T>,\n ...args: Parameters<T>\n ): ReturnType<T> {\n const key = JSON.stringify(args);\n const now = Date.now();\n\n if (cache.has(key)) {\n const cached = cache.get(key)!;\n if (now - cached.timestamp <= ttl) {\n return cached.value;\n } else {\n cache.delete(key);\n }\n }\n\n const result = func.apply(this, args);\n cache.set(key, { value: result, timestamp: now });\n\n if (cache.size > maxCacheSize) {\n const oldestKey = cache.keys().next().value;\n cache.delete(oldestKey);\n }\n\n return result;\n } as T;\n\n // @ts-ignore\n memoized.cache = cache;\n\n return memoized as any;\n}\n\nexport const hyphenToCamelCase = (str: string) =>\n str.replace(/([-_][a-z])/gi, (group) =>\n group.toUpperCase().replace(\"-\", \"\").replace(\"_\", \"\"),\n );\n\nexport function camelCaseToHyphen(str: string) {\n return str.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);\n}\n\nexport function seekPreviousValue<T>(ix: number, values: T[], pred: (f: T) => boolean) {\n for (let i = ix - 1; i >= 0; i--) {\n if (pred(values[i])) {\n return i;\n }\n }\n\n return undefined;\n}\n\nexport function requestAnimationFrame(callback: FrameRequestCallback) {\n if (typeof window !== \"undefined\" && window.requestAnimationFrame) {\n return window.requestAnimationFrame(callback);\n }\n\n let delay = FRAME_RATE;\n let prevT = Date.now();\n\n return setTimeout(() => {\n let t = Date.now();\n let delta = t - prevT;\n\n prevT = t;\n delay = Math.max(0, FRAME_RATE - delta);\n\n callback(t);\n }, delay);\n}\n\nexport function cancelAnimationFrame(handle: number | undefined | null | any) {\n if (typeof window !== \"undefined\" && window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(handle);\n }\n\n clearTimeout(handle);\n}\n\nimport { TailwindConfig, createTailwindcss } from \"@mhsdesign/jit-browser-tailwindcss\";\nimport { Config } from \"tailwindcss\";\n\nexport async function compileTailwindCss(\n css: string,\n tailwindConfig: TailwindConfig | Config,\n) {\n const tailwind = createTailwindcss({\n tailwindConfig: tailwindConfig as TailwindConfig,\n });\n\n return await tailwind.generateStylesFromContent(css, [\"\"]);\n}\n","import { FunctionValue, ValueArray, ValueUnit } from \".\";\nimport { isObject } from \"../utils\";\nimport { Color } from \"./color/utils\";\nimport {\n ABSOLUTE_LENGTH_UNITS,\n ANGLE_UNITS,\n MatrixValues,\n PERCENTAGE_UNITS,\n RELATIVE_LENGTH_UNITS,\n RESOLUTION_UNITS,\n STYLE_NAMES,\n TIME_UNITS,\n} from \"./constants\";\n\nexport function isColorUnit(value: ValueUnit<Color>): value is ValueUnit<Color> {\n return value.unit === \"color\";\n}\n\nexport function traverseObject<T>(\n obj: T,\n fn: (key: string, value: ValueUnit, parentKey?: string) => void,\n parentKey?: string,\n) {\n for (const [key, value] of Object.entries(obj)) {\n if (isObject(value)) {\n const newParentKey = parentKey ? `${parentKey}.${key}` : key;\n traverseObject(value, fn, newParentKey);\n } else if (Array.isArray(value)) {\n value.forEach((v, i) => traverseObject(v, fn, `${key}[${i}]`));\n } else {\n fn(key, value, parentKey);\n }\n }\n}\n\nexport const flattenObject = (obj: any) => {\n const flat = {};\n\n const flatten = (obj: any, parentKey: string = undefined) => {\n if (Array.isArray(obj)) {\n obj.forEach((v, i) => flatten(v, parentKey));\n return;\n } else if (obj instanceof FunctionValue) {\n const newKey = parentKey ? `${parentKey}.${obj.name}` : obj.name;\n obj.args.forEach((v, i) => flatten(v, newKey));\n\n return;\n } else if (isObject(obj)) {\n for (const [key, value] of Object.entries(obj)) {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n flatten(value, currentKey);\n }\n return;\n }\n\n if (flat[parentKey] == null) {\n flat[parentKey] = new ValueArray();\n }\n\n flat[parentKey].push(obj);\n flat[parentKey] = flat[parentKey].flat();\n };\n\n flatten(obj);\n\n return flat;\n};\n\nexport const unflattenObject = (flatObj: Record<string, any[]>): any => {\n const result = {} as any;\n\n for (const [flatKey, values] of Object.entries(flatObj)) {\n const keys = flatKey.split(\".\");\n let current = result;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const isLastKey = i === keys.length - 1;\n\n if (isLastKey) {\n if (Array.isArray(current)) {\n current.push(values);\n } else {\n current[key] = values;\n }\n } else {\n if (!(key in current)) {\n current[key] = {};\n }\n current = current[key];\n }\n }\n }\n\n return result;\n};\n\nexport const unflattenObjectToString = (\n flatObj: Record<string, any[]>,\n): Record<string, string> => {\n const result = {} as Record<string, string>;\n\n for (const [flatKey, values] of Object.entries(flatObj)) {\n const keys = flatKey.split(\".\");\n const propertyKey = keys[0];\n\n let current = result[propertyKey] ?? \"\";\n\n let leftS = \"\";\n let rightS = \"\";\n\n for (let i = 1; i < keys.length; i++) {\n leftS += `${keys[i]}(`;\n rightS += \")\";\n }\n\n current += ` ${leftS}${values.toString()}${rightS}`;\n\n result[propertyKey] = current.trim();\n }\n\n return result;\n};\n\nconst setStyleNames = new Set(STYLE_NAMES);\n\nexport function isCSSStyleName(value: any): value is (typeof STYLE_NAMES)[number] {\n return setStyleNames.has(value);\n}\n\nexport const unpackMatrixValues = (value: FunctionValue): MatrixValues => {\n const name = value.name;\n const values = value.valueOf();\n\n if (!value.name.startsWith(\"matrix\")) {\n throw new Error(\"Input must be a matrix or matrix3d value\");\n }\n\n const defaultValues: MatrixValues = {\n scaleX: 1,\n scaleY: 1,\n scaleZ: 1,\n skewX: 0,\n skewY: 0,\n skewZ: 0,\n translateX: 0,\n translateY: 0,\n translateZ: 0,\n rotateX: 0,\n rotateY: 0,\n rotateZ: 0,\n perspectiveX: 0,\n perspectiveY: 0,\n perspectiveZ: 0,\n perspectiveW: 1,\n };\n\n if (value.name === \"matrix\") {\n // 2D matrix: [a, b, c, d, tx, ty]\n return {\n ...defaultValues,\n scaleX: values[0] ?? 1,\n skewY: values[1] ?? 0,\n skewX: values[2] ?? 0,\n scaleY: values[3] ?? 1,\n translateX: values[4] ?? 0,\n translateY: values[5] ?? 0,\n rotateZ: Math.atan2(values[1] ?? 0, values[0] ?? 1),\n rotateY: Math.atan2(-(values[2] ?? 0), values[0] ?? 1),\n rotateX: Math.atan2(values[1] ?? 0, values[3] ?? 1),\n };\n } else if (name === \"matrix3d\") {\n if (values.length === 4) {\n // Alternative 3D matrix form: [a4, b4, c4, d4]\n return {\n ...defaultValues,\n translateX: values[0] ?? 0,\n translateY: values[1] ?? 0,\n translateZ: values[2] ?? 0,\n perspectiveW: values[3] ?? 1,\n };\n } else if (values.length === 16) {\n // Standard 3D matrix: [m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44]\n return {\n scaleX: values[0] ?? 1,\n skewY: values[1] ?? 0,\n skewX: values[4] ?? 0,\n scaleY: values[5] ?? 1,\n scaleZ: values[10] ?? 1,\n skewZ: values[2] ?? 0,\n translateX: values[12] ?? 0,\n translateY: values[13] ?? 0,\n translateZ: values[14] ?? 0,\n rotateX: Math.atan2(-(values[9] ?? 0), values[10] ?? 1),\n rotateY: Math.atan2(\n values[8] ?? 0,\n Math.sqrt(\n Math.pow(values[0] ?? 1, 2) + Math.pow(values[1] ?? 0, 2),\n ),\n ),\n rotateZ: Math.atan2(values[1] ?? 0, values[0] ?? 1),\n perspectiveX: values[3] ?? 0,\n perspectiveY: values[7] ?? 0,\n perspectiveZ: values[11] ?? 0,\n perspectiveW: values[15] ?? 1,\n };\n }\n }\n\n throw new Error(\"Unsupported matrix type or invalid number of values\");\n};\n\nexport function convertAbsoluteUnitToPixels(value: number, unit: string) {\n let pixels = value;\n if (unit === \"cm\") {\n pixels *= 96 / 2.54;\n } else if (unit === \"mm\") {\n pixels *= 96 / 25.4;\n } else if (unit === \"in\") {\n pixels *= 96;\n } else if (unit === \"pt\") {\n pixels *= 4 / 3;\n } else if (unit === \"pc\") {\n pixels *= 16;\n }\n\n return pixels;\n}\n\nexport function convertToPixels(\n value: number,\n unit:\n | (typeof ABSOLUTE_LENGTH_UNITS)[number]\n | (typeof RELATIVE_LENGTH_UNITS)[number]\n | (typeof PERCENTAGE_UNITS)[number],\n element?: HTMLElement,\n property?: string,\n): number {\n if (unit === \"em\" && element) {\n value *= parseFloat(getComputedStyle(element).fontSize);\n } else if (unit === \"rem\") {\n value *= parseFloat(getComputedStyle(document.documentElement).fontSize);\n } else if (unit === \"vh\") {\n value *= window.innerHeight / 100;\n } else if (unit === \"vw\") {\n value *= window.innerWidth / 100;\n } else if (unit === \"vmin\") {\n value *= Math.min(window.innerHeight, window.innerWidth) / 100;\n } else if (unit === \"vmax\") {\n value *= Math.max(window.innerHeight, window.innerWidth) / 100;\n } else if (unit === \"%\" && element?.parentElement && property) {\n const parentValue = parseFloat(\n getComputedStyle(element.parentElement).getPropertyValue(property),\n );\n value = (value / 100) * parentValue;\n } else if (unit === \"ex\" || unit === \"ch\") {\n value *= parseFloat(getComputedStyle(element).fontSize) ?? 16;\n } else {\n value = convertAbsoluteUnitToPixels(value, unit);\n }\n\n return value;\n}\n\nexport function convertToMs(value: number, unit: (typeof TIME_UNITS)[number]) {\n if (unit === \"s\") {\n value *= 1000;\n }\n return value;\n}\n\nexport function convertToDegrees(value: number, unit: (typeof ANGLE_UNITS)[number]) {\n if (unit === \"grad\") {\n value *= 0.9;\n } else if (unit === \"rad\") {\n value *= 180 / Math.PI;\n } else if (unit === \"turn\") {\n value *= 360;\n }\n return value;\n}\n\nexport function convertToDPI(value: number, unit: (typeof RESOLUTION_UNITS)[number]) {\n if (unit === \"dpcm\") {\n value *= 2.54;\n } else if (unit === \"dppx\") {\n value *= 96;\n }\n return value;\n}\n","// Constrains a value between a lower and upper bound\nexport function clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\n// Linear mapping of a value from one range to another\nexport function scale(\n value: number,\n fromMin: number,\n fromMax: number,\n toMin: number = 0,\n toMax: number = 1,\n) {\n // Calculate slope of the linear function\n const slope = (toMax - toMin) / (fromMax - fromMin);\n // Apply linear transformation\n return (value - fromMin) * slope + toMin;\n}\n\n// Linear interpolation between two values\nexport function lerp(t: number, start: number, end: number) {\n // t is the interpolation factor [0, 1]\n return (1 - t) * start + t * end;\n}\n\n// Logarithmic interpolation between two values\nexport function logerp(t: number, start: number, end: number) {\n // Prevent division by zero or log(0)\n start = start === 0 ? 1e-9 : start;\n // Interpolate in logarithmic space\n return start * Math.pow(end / start, t);\n}\n\n// De Casteljau's algorithm for Bézier curve evaluation\nexport function deCasteljau(t: number, points: number[]) {\n const n = points.length - 1;\n const b = [...points];\n // Iteratively interpolate points\n for (let i = 1; i <= n; i++) {\n for (let j = 0; j <= n - i; j++) {\n b[j] = lerp(t, b[j], b[j + 1]);\n }\n }\n return b[0];\n}\n\n// Cubic Bézier curve evaluation\nexport function cubicBezier(t: number, x1: number, y1: number, x2: number, y2: number) {\n // Evaluate x and y components separately\n return [deCasteljau(t, [0, x1, x2, 1]), deCasteljau(t, [0, y1, y2, 1])];\n}\n\n// Generalized Bézier curve interpolation\nexport function interpBezier(t: number, points: number[][]) {\n // Separate x and y coordinates\n const xCoords = points.map((xy) => xy[0]);\n const yCoords = points.map((xy) => xy[1]);\n // Interpolate x and y separately\n return [deCasteljau(t, xCoords), deCasteljau(t, yCoords)];\n}\n\nexport function cubicBezierToSVG(x1: number, y1: number, x2: number, y2: number) {\n let path = `M${0} ${0}`;\n\n let points = `\n <circle cx=\"${x1}\" cy=\"${y1}\"/>\n <circle cx=\"${0}\" cy=\"${0}\"/>\n <circle cx=\"${x2}\" cy=\"${y2}\"/>\n <circle cx=\"${1}\" cy=\"${1}\"/>`;\n\n for (let t = 0; t <= 1; t += 0.001) {\n const [x, y] = cubicBezier(t, x1, y1, x2, y2);\n path += ` L${x} ${y}`;\n }\n\n return `<path d=\"${path}\"/>`;\n}\n\nexport function cubicBezierToString(x1: number, y1: number, x2: number, y2: number) {\n const formatNumber = (n: number) => {\n let s = n.toFixed(2);\n return s;\n };\n\n return `cubic-bezier(${formatNumber(x1)}, ${formatNumber(y1)}, ${formatNumber(x2)}, ${formatNumber(y2)})`;\n}\n","import { cubicBezier, interpBezier } from \"./math\";\n\nexport function linear(t: number) {\n return t;\n}\n\nexport function easeInQuad(t: number) {\n return t * t;\n}\n\nexport function easeOutQuad(t: number) {\n return -t * (t - 2);\n}\n\nexport function easeInOutQuad(t: number) {\n if ((t /= 0.5) < 1) return 0.5 * t * t;\n return -0.5 * (--t * (t - 2) - 1);\n}\n\nexport function easeInCubic(t: number) {\n return t * t * t;\n}\n\nexport function easeOutCubic(t: number) {\n return (t = t - 1) * t * t + 1;\n}\n\nexport function easeInOutCubic(t: number) {\n if ((t /= 0.5) < 1) return 0.5 * t * t * t;\n return 0.5 * ((t -= 2) * t * t + 2);\n}\n\nexport function smoothStep3(t: number) {\n return t * t * (3 - 2 * t);\n}\n\nexport const CSSCubicBezier =\n (x1: number, y1: number, x2: number, y2: number) => (t: number) => {\n {\n t = cubicBezier(t, x1, y1, x2, y2)[1];\n return t;\n }\n };\n\nexport function easeInBounce(t: number) {\n t = CSSCubicBezier(0.09, 0.91, 0.5, 1.5)(t);\n return t;\n}\n\nexport function bounceInEase(t: number) {\n t = CSSCubicBezier(0.09, 0.91, 0.5, 1.5)(t);\n return t;\n}\n\nexport function bounceInEaseHalf(t: number) {\n const points = [\n [0, 0],\n [0.026, 1.746],\n [0.633, 1.06],\n [1, 0],\n ];\n t = interpBezier(t, points)[1];\n return t;\n}\n\nexport function bounceOutEase(t: number) {\n const points = [\n [0, 0],\n [0.367, 0.94],\n [0.974, 0.254],\n [1, 0],\n ];\n t = interpBezier(t, points)[1];\n return t;\n}\n\nexport function bounceOutEaseHalf(t: number) {\n const points = [\n [0, 0],\n [0.026, 1.746],\n [0.633, 1.06],\n [1, 0],\n ];\n t = interpBezier(t, points)[1];\n return t;\n}\n\nexport function bounceInOutEase(t: number) {\n const points = [\n [0, 0],\n [0.026, 1.746],\n [0.633, 1.06],\n [1, 0],\n ];\n t = interpBezier(t, points)[1];\n return t;\n}\n\nexport function easeInSine(t: number) {\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n\nexport function easeOutSine(t: number) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport function easeInOutSine(t: number) {\n return -(Math.cos(Math.PI * t) - 1) / 2;\n}\n\nexport function easeInCirc(t: number) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function easeOutCirc(t: number) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function easeInOutCirc(t: number) {\n if ((t /= 0.5) < 1) return -(Math.sqrt(1 - t * t) - 1) / 2;\n return (Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\nexport function easeInExpo(t: number) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n}\n\nexport function easeOutExpo(t: number) {\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n}\n\nexport function easeInOutExpo(t: number) {\n if (t === 0) return 0;\n if (t === 1) return 1;\n if ((t /= 0.5) < 1) return 0.5 * Math.pow(2, 10 * (t - 1));\n return 0.5 * (2 - Math.pow(2, -10 * --t));\n}\n\nexport const jumpTerms = [\n \"jump-start\",\n \"jump-end\",\n \"jump-none\",\n \"jump-both\",\n \"start\",\n \"end\",\n \"both\",\n] as const;\n\nfunction jumpStart(t: number, steps: number): number {\n return Math.floor(t * steps) / steps;\n}\n\nfunction jumpEnd(t: number, steps: number): number {\n return Math.ceil(t * steps) / steps;\n}\n\nfunction jumpBoth(t: number, steps: number): number {\n return t === 0 || t === 1 ? t : jumpStart(t, steps);\n}\n\nfunction jumpNone(t: number, steps: number): number {\n return Math.round(t * steps) / steps;\n}\n\nexport function steppedEase(\n steps: number,\n jumpTerm: (typeof jumpTerms)[number] = \"jump-start\",\n) {\n switch (jumpTerm) {\n case \"jump-none\":\n return (t: number) => jumpNone(t, steps);\n case \"jump-start\":\n case \"start\":\n return (t: number) => jumpStart(t, steps);\n case \"jump-end\":\n case \"end\":\n return (t: number) => jumpEnd(t, steps);\n case \"jump-both\":\n case \"both\":\n return (t: number) => jumpBoth(t, steps);\n }\n}\n\nexport function stepStart() {\n return steppedEase(1, \"jump-start\");\n}\n\nexport function stepEnd() {\n return steppedEase(1, \"jump-end\");\n}\n\nexport const bezierPresets = {\n ease: [0.25, 0.1, 0.25, 1],\n \"ease-in\": [0.42, 0, 1, 1],\n \"ease-out\": [0, 0, 0.58, 1],\n \"ease-in-out\": [0.42, 0, 0.58, 1],\n \"ease-in-back\": [0.6, -0.28, 0.735, 0.045],\n \"ease-out-back\": [0.175, 0.885, 0.32, 1.275],\n \"ease-in-out-back\": [0.68, -0.55, 0.265, 1.55],\n} as const;\n\nexport const timingFunctions = {\n linear,\n easeInQuad,\n \"ease-in-quad\": easeInQuad, // \"easeInQuad\",\n\n easeOutQuad,\n \"ease-out-quad\": easeOutQuad, // \"easeOutQuad\",\n\n easeInOutQuad,\n \"ease-in-out-quad\": easeInOutQuad, // \"easeInOutQuad\",\n\n easeInCubic,\n \"ease-in-cubic\": easeInCubic,\n\n easeOutCubic,\n \"ease-out-cubic\": easeOutCubic,\n\n easeInOutCubic,\n \"ease-in-out-cubic\": easeInOutCubic,\n\n easeInBounce,\n \"ease-in-bounce\": easeInBounce, // \"easeInBounce\",\n\n bounceInEase,\n \"bounce-in-ease\": bounceInEase,\n\n bounceInEaseHalf,\n \"bounce-in-ease-half\": bounceInEaseHalf,\n\n bounceOutEase,\n \"bounce-out-ease\": bounceOutEase,\n\n bounceOutEaseHalf,\n \"bounce-out-ease-half\": bounceOutEaseHalf,\n\n bounceInOutEase,\n \"bounce-in-out-ease\": bounceInOutEase,\n\n easeInSine,\n \"ease-in-sine\": easeInSine,\n\n easeOutSine,\n \"ease-out-sine\": easeOutSine,\n\n easeInOutSine,\n \"ease-in-out-sine\": easeInOutSine,\n\n easeInCirc,\n \"ease-in-circ\": easeInCirc,\n\n easeOutCirc,\n \"ease-out-circ\": easeOutCirc,\n\n easeInOutCirc,\n \"ease-in-out-circ\": easeInOutCirc,\n\n easeInExpo,\n \"ease-in-expo\": easeInExpo,\n\n easeOutExpo,\n \"ease-out-expo\": easeOutExpo,\n\n easeInOutExpo,\n \"ease-in-out-expo\": easeInOutExpo,\n\n smoothStep3,\n \"smooth-step-3\": smoothStep3,\n\n ease: CSSCubicBezier(...bezierPresets.ease),\n \"ease-in\": CSSCubicBezier(...bezierPresets[\"ease-in\"]),\n \"ease-out\": CSSCubicBezier(...bezierPresets[\"ease-out\"]),\n \"ease-in-out\": CSSCubicBezier(...bezierPresets[\"ease-in-out\"]),\n \"ease-in-back\": CSSCubicBezier(...bezierPresets[\"ease-in-back\"]),\n \"ease-out-back\": CSSCubicBezier(...bezierPresets[\"ease-out-back\"]),\n \"ease-in-out-back\": CSSCubicBezier(...bezierPresets[\"ease-in-out-back\"]),\n steps: steppedEase,\n \"step-start\": stepStart,\n \"step-end\": stepEnd,\n} as const;\n","!function(n,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.Parsimmon=t():n.Parsimmon=t()}(\"undefined\"!=typeof self?self:this,function(){return function(n){var t={};function r(e){if(t[e])return t[e].exports;var u=t[e]={i:e,l:!1,exports:{}};return n[e].call(u.exports,u,u.exports,r),u.l=!0,u.exports}return r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:e})},r.r=function(n){Object.defineProperty(n,\"__esModule\",{value:!0})},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,\"a\",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p=\"\",r(r.s=0)}([function(n,t,r){\"use strict\";function e(n){if(!(this instanceof e))return new e(n);this._=n}var u=e.prototype;function o(n,t){for(var r=0;r<n;r++)t(r)}function i(n,t,r){return function(n,t){o(t.length,function(r){n(t[r],r,t)})}(function(r,e,u){t=n(t,r,e,u)},r),t}function a(n,t){return i(function(t,r,e,u){return t.concat([n(r,e,u)])},[],t)}function f(n,t){var r={v:0,buf:t};return o(n,function(){var n;r={v:r.v<<1|(n=r.buf,n[0]>>7),buf:function(n){var t=i(function(n,t,r,e){return n.concat(r===e.length-1?Buffer.from([t,0]).readUInt16BE(0):e.readUInt16BE(r))},[],n);return Buffer.from(a(function(n){return(n<<1&65535)>>8},t))}(r.buf)}}),r}function c(){return\"undefined\"!=typeof Buffer}function s(){if(!c())throw new Error(\"Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.\")}function l(n){s();var t=i(function(n,t){return n+t},0,n);if(t%8!=0)throw new Error(\"The bits [\"+n.join(\", \")+\"] add up to \"+t+\" which is not an even number of bytes; the total should be divisible by 8\");var r,u=t/8,o=(r=function(n){return n>48},i(function(n,t){return n||(r(t)?t:n)},null,n));if(o)throw new Error(o+\" bit range requested exceeds 48 bit (6 byte) Number max.\");return new e(function(t,r){var e=u+r;return e>t.length?x(r,u.toString()+\" bytes\"):b(e,i(function(n,t){var r=f(t,n.buf);return{coll:n.coll.concat(r.v),buf:r.buf}},{coll:[],buf:t.slice(r,e)},n).coll)})}function h(n,t){return new e(function(r,e){return s(),e+t>r.length?x(e,t+\" bytes for \"+n):b(e+t,r.slice(e,e+t))})}function p(n,t){if(\"number\"!=typeof(r=t)||Math.floor(r)!==r||t<0||t>6)throw new Error(n+\" requires integer length in range [0, 6].\");var r}function d(n){return p(\"uintBE\",n),h(\"uintBE(\"+n+\")\",n).map(function(t){return t.readUIntBE(0,n)})}function v(n){return p(\"uintLE\",n),h(\"uintLE(\"+n+\")\",n).map(function(t){return t.readUIntLE(0,n)})}function g(n){return p(\"intBE\",n),h(\"intBE(\"+n+\")\",n).map(function(t){return t.readIntBE(0,n)})}function m(n){return p(\"intLE\",n),h(\"intLE(\"+n+\")\",n).map(function(t){return t.readIntLE(0,n)})}function y(n){return n instanceof e}function E(n){return\"[object Array]\"==={}.toString.call(n)}function w(n){return c()&&Buffer.isBuffer(n)}function b(n,t){return{status:!0,index:n,value:t,furthest:-1,expected:[]}}function x(n,t){return E(t)||(t=[t]),{status:!1,index:-1,value:null,furthest:n,expected:t}}function B(n,t){if(!t)return n;if(n.furthest>t.furthest)return n;var r=n.furthest===t.furthest?function(n,t){if(function(){if(void 0!==e._supportsSet)return e._supportsSet;var n=\"undefined\"!=typeof Set;return e._supportsSet=n,n}()&&Array.from){for(var r=new Set(n),u=0;u<t.length;u++)r.add(t[u]);var o=Array.from(r);return o.sort(),o}for(var i={},a=0;a<n.length;a++)i[n[a]]=!0;for(var f=0;f<t.length;f++)i[t[f]]=!0;var c=[];for(var s in i)({}).hasOwnProperty.call(i,s)&&c.push(s);return c.sort(),c}(n.expected,t.expected):t.expected;return{status:n.status,index:n.index,value:n.value,furthest:t.furthest,expected:r}}var j={};function S(n,t){if(w(n))return{offset:t,line:-1,column:-1};n in j||(j[n]={});for(var r=j[n],e=0,u=0,o=0,i=t;i>=0;){if(i in r){e=r[i].line,0===o&&(o=r[i].lineStart);break}(\"\\n\"===n.charAt(i)||\"\\r\"===n.charAt(i)&&\"\\n\"!==n.charAt(i+1))&&(u++,0===o&&(o=i+1)),i--}var a=e+u,f=t-o;return r[t]={line:a,lineStart:o},{offset:t,line:a+1,column:f+1}}function _(n){if(!y(n))throw new Error(\"not a parser: \"+n)}function L(n,t){return\"string\"==typeof n?n.charAt(t):n[t]}function O(n){if(\"number\"!=typeof n)throw new Error(\"not a number: \"+n)}function k(n){if(\"function\"!=typeof n)throw new Error(\"not a function: \"+n)}function P(n){if(\"string\"!=typeof n)throw new Error(\"not a string: \"+n)}var q=2,A=3,I=8,F=5*I,M=4*I,z=\" \";function R(n,t){return new Array(t+1).join(n)}function U(n,t,r){var e=t-n.length;return e<=0?n:R(r,e)+n}function W(n,t,r,e){return{from:n-t>0?n-t:0,to:n+r>e?e:n+r}}function D(n,t){var r,e,u,o,f,c=t.index,s=c.offset,l=1;if(s===n.length)return\"Got the end of the input\";if(w(n)){var h=s-s%I,p=s-h,d=W(h,F,M+I,n.length),v=a(function(n){return a(function(n){return U(n.toString(16),2,\"0\")},n)},function(n,t){var r=n.length,e=[],u=0;if(r<=t)return[n.slice()];for(var o=0;o<r;o++)e[u]||e.push([]),e[u].push(n[o]),(o+1)%t==0&&u++;return e}(n.slice(d.from,d.to).toJSON().data,I));o=function(n){return 0===n.from&&1===n.to?{from:n.from,to:n.to}:{from:n.from/I,to:Math.floor(n.to/I)}}(d),e=h/I,r=3*p,p>=4&&(r+=1),l=2,u=a(function(n){return n.length<=4?n.join(\" \"):n.slice(0,4).join(\" \")+\" \"+n.slice(4).join(\" \")},v),(f=(8*(o.to>0?o.to-1:o.to)).toString(16).length)<2&&(f=2)}else{var g=n.split(/\\r\\n|[\\n\\r\\u2028\\u2029]/);r=c.column-1,e=c.line-1,o=W(e,q,A,g.length),u=g.slice(o.from,o.to),f=o.to.toString().length}var m=e-o.from;return w(n)&&(f=(8*(o.to>0?o.to-1:o.to)).toString(16).length)<2&&(f=2),i(function(t,e,u){var i,a=u===m,c=a?\"> \":z;return i=w(n)?U((8*(o.from+u)).toString(16),f,\"0\"):U((o.from+u+1).toString(),f,\" \"),[].concat(t,[c+i+\" | \"+e],a?[z+R(\" \",f)+\" | \"+U(\"\",r,\" \")+R(\"^\",l)]:[])},[],u).join(\"\\n\")}function N(n,t){return[\"\\n\",\"-- PARSING FAILED \"+R(\"-\",50),\"\\n\\n\",D(n,t),\"\\n\\n\",(r=t.expected,1===r.length?\"Expected:\\n\\n\"+r[0]:\"Expected one of the following: \\n\\n\"+r.join(\", \")),\"\\n\"].join(\"\");var r}function G(n){return void 0!==n.flags?n.flags:[n.global?\"g\":\"\",n.ignoreCase?\"i\":\"\",n.multiline?\"m\":\"\",n.unicode?\"u\":\"\",n.sticky?\"y\":\"\"].join(\"\")}function C(){for(var n=[].slice.call(arguments),t=n.length,r=0;r<t;r+=1)_(n[r]);return e(function(r,e){for(var u,o=new Array(t),i=0;i<t;i+=1){if(!(u=B(n[i]._(r,e),u)).status)return u;o[i]=u.value,e=u.index}return B(b(e,o),u)})}function J(){var n=[].slice.call(arguments);if(0===n.length)throw new Error(\"seqMap needs at least one argument\");var t=n.pop();return k(t),C.apply(null,n).map(function(n){return t.apply(null,n)})}function T(){var n=[].slice.call(arguments),t=n.length;if(0===t)return Y(\"zero alternates\");for(var r=0;r<t;r+=1)_(n[r]);return e(function(t,r){for(var e,u=0;u<n.length;u+=1)if((e=B(n[u]._(t,r),e)).status)return e;return e})}function V(n,t){return H(n,t).or(X([]))}function H(n,t){return _(n),_(t),J(n,t.then(n).many(),function(n,t){return[n].concat(t)})}function K(n){P(n);var t=\"'\"+n+\"'\";return e(function(r,e){var u=e+n.length,o=r.slice(e,u);return o===n?b(u,o):x(e,t)})}function Q(n,t){!function(n){if(!(n instanceof RegExp))throw new Error(\"not a regexp: \"+n);for(var t=G(n),r=0;r<t.length;r++){var e=t.charAt(r);if(\"i\"!==e&&\"m\"!==e&&\"u\"!==e&&\"s\"!==e)throw new Error('unsupported regexp flag \"'+e+'\": '+n)}}(n),arguments.length>=2?O(t):t=0;var r=function(n){return RegExp(\"^(?:\"+n.source+\")\",G(n))}(n),u=\"\"+n;return e(function(n,e){var o=r.exec(n.slice(e));if(o){if(0<=t&&t<=o.length){var i=o[0],a=o[t];return b(e+i.length,a)}return x(e,\"valid match group (0 to \"+o.length+\") in \"+u)}return x(e,u)})}function X(n){return e(function(t,r){return b(r,n)})}function Y(n){return e(function(t,r){return x(r,n)})}function Z(n){if(y(n))return e(function(t,r){var e=n._(t,r);return e.index=r,e.value=\"\",e});if(\"string\"==typeof n)return Z(K(n));if(n instanceof RegExp)return Z(Q(n));throw new Error(\"not a string, regexp, or parser: \"+n)}function $(n){return _(n),e(function(t,r){var e=n._(t,r),u=t.slice(r,e.index);return e.status?x(r,'not \"'+u+'\"'):b(r,null)})}function nn(n){return k(n),e(function(t,r){var e=L(t,r);return r<t.length&&n(e)?b(r+1,e):x(r,\"a character/byte matching \"+n)})}function tn(n,t){arguments.length<2&&(t=n,n=void 0);var r=e(function(n,e){return r._=t()._,r._(n,e)});return n?r.desc(n):r}function rn(){return Y(\"fantasy-land/empty\")}u.parse=function(n){if(\"string\"!=typeof n&&!w(n))throw new Error(\".parse must be called with a string or Buffer as its argument\");var t,r=this.skip(an)._(n,0);return t=r.status?{status:!0,value:r.value}:{status:!1,index:S(n,r.furthest),expected:r.expected},delete j[n],t},u.tryParse=function(n){var t=this.parse(n);if(t.status)return t.value;var r=N(n,t),e=new Error(r);throw e.type=\"ParsimmonError\",e.result=t,e},u.assert=function(n,t){return this.chain(function(r){return n(r)?X(r):Y(t)})},u.or=function(n){return T(this,n)},u.trim=function(n){return this.wrap(n,n)},u.wrap=function(n,t){return J(n,this,t,function(n,t){return t})},u.thru=function(n){return n(this)},u.then=function(n){return _(n),C(this,n).map(function(n){return n[1]})},u.many=function(){var n=this;return e(function(t,r){for(var e=[],u=void 0;;){if(!(u=B(n._(t,r),u)).status)return B(b(r,e),u);if(r===u.index)throw new Error(\"infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause\");r=u.index,e.push(u.value)}})},u.tieWith=function(n){return P(n),this.map(function(t){if(function(n){if(!E(n))throw new Error(\"not an array: \"+n)}(t),t.length){P(t[0]);for(var r=t[0],e=1;e<t.length;e++)P(t[e]),r+=n+t[e];return r}return\"\"})},u.tie=function(){return this.tieWith(\"\")},u.times=function(n,t){var r=this;return arguments.length<2&&(t=n),O(n),O(t),e(function(e,u){for(var o=[],i=void 0,a=void 0,f=0;f<n;f+=1){if(a=B(i=r._(e,u),a),!i.status)return a;u=i.index,o.push(i.value)}for(;f<t&&(a=B(i=r._(e,u),a),i.status);f+=1)u=i.index,o.push(i.value);return B(b(u,o),a)})},u.result=function(n){return this.map(function(){return n})},u.atMost=function(n){return this.times(0,n)},u.atLeast=function(n){return J(this.times(n),this.many(),function(n,t){return n.concat(t)})},u.map=function(n){k(n);var t=this;return e(function(r,e){var u=t._(r,e);return u.status?B(b(u.index,n(u.value)),u):u})},u.contramap=function(n){k(n);var t=this;return e(function(r,e){var u=t.parse(n(r.slice(e)));return u.status?b(e+r.length,u.value):u})},u.promap=function(n,t){return k(n),k(t),this.contramap(n).map(t)},u.skip=function(n){return C(this,n).map(function(n){return n[0]})},u.mark=function(){return J(en,this,en,function(n,t,r){return{start:n,value:t,end:r}})},u.node=function(n){return J(en,this,en,function(t,r,e){return{name:n,value:r,start:t,end:e}})},u.sepBy=function(n){return V(this,n)},u.sepBy1=function(n){return H(this,n)},u.lookahead=function(n){return this.skip(Z(n))},u.notFollowedBy=function(n){return this.skip($(n))},u.desc=function(n){E(n)||(n=[n]);var t=this;return e(function(r,e){var u=t._(r,e);return u.status||(u.expected=n),u})},u.fallback=function(n){return this.or(X(n))},u.ap=function(n){return J(n,this,function(n,t){return n(t)})},u.chain=function(n){var t=this;return e(function(r,e){var u=t._(r,e);return u.status?B(n(u.value)._(r,u.index),u):u})},u.concat=u.or,u.empty=rn,u.of=X,u[\"fantasy-land/ap\"]=u.ap,u[\"fantasy-land/chain\"]=u.chain,u[\"fantasy-land/concat\"]=u.concat,u[\"fantasy-land/empty\"]=u.empty,u[\"fantasy-land/of\"]=u.of,u[\"fantasy-land/map\"]=u.map;var en=e(function(n,t){return b(t,S(n,t))}),un=e(function(n,t){return t>=n.length?x(t,\"any character/byte\"):b(t+1,L(n,t))}),on=e(function(n,t){return b(n.length,n.slice(t))}),an=e(function(n,t){return t<n.length?x(t,\"EOF\"):b(t,null)}),fn=Q(/[0-9]/).desc(\"a digit\"),cn=Q(/[0-9]*/).desc(\"optional digits\"),sn=Q(/[a-z]/i).desc(\"a letter\"),ln=Q(/[a-z]*/i).desc(\"optional letters\"),hn=Q(/\\s*/).desc(\"optional whitespace\"),pn=Q(/\\s+/).desc(\"whitespace\"),dn=K(\"\\r\"),vn=K(\"\\n\"),gn=K(\"\\r\\n\"),mn=T(gn,vn,dn).desc(\"newline\"),yn=T(mn,an);e.all=on,e.alt=T,e.any=un,e.cr=dn,e.createLanguage=function(n){var t={};for(var r in n)({}).hasOwnProperty.call(n,r)&&function(r){t[r]=tn(function(){return n[r](t)})}(r);return t},e.crlf=gn,e.custom=function(n){return e(n(b,x))},e.digit=fn,e.digits=cn,e.empty=rn,e.end=yn,e.eof=an,e.fail=Y,e.formatError=N,e.index=en,e.isParser=y,e.lazy=tn,e.letter=sn,e.letters=ln,e.lf=vn,e.lookahead=Z,e.makeFailure=x,e.makeSuccess=b,e.newline=mn,e.noneOf=function(n){return nn(function(t){return n.indexOf(t)<0}).desc(\"none of '\"+n+\"'\")},e.notFollowedBy=$,e.of=X,e.oneOf=function(n){for(var t=n.split(\"\"),r=0;r<t.length;r++)t[r]=\"'\"+t[r]+\"'\";return nn(function(t){return n.indexOf(t)>=0}).desc(t)},e.optWhitespace=hn,e.Parser=e,e.range=function(n,t){return nn(function(r){return n<=r&&r<=t}).desc(n+\"-\"+t)},e.regex=Q,e.regexp=Q,e.sepBy=V,e.sepBy1=H,e.seq=C,e.seqMap=J,e.seqObj=function(){for(var n,t={},r=0,u=(n=arguments,Array.prototype.slice.call(n)),o=u.length,i=0;i<o;i+=1){var a=u[i];if(!y(a)){if(E(a)&&2===a.length&&\"string\"==typeof a[0]&&y(a[1])){var f=a[0];if(Object.prototype.hasOwnProperty.call(t,f))throw new Error(\"seqObj: duplicate key \"+f);t[f]=!0,r++;continue}throw new Error(\"seqObj arguments must be parsers or [string, parser] array pairs.\")}}if(0===r)throw new Error(\"seqObj expects at least one named parser, found zero\");return e(function(n,t){for(var r,e={},i=0;i<o;i+=1){var a,f;if(E(u[i])?(a=u[i][0],f=u[i][1]):(a=null,f=u[i]),!(r=B(f._(n,t),r)).status)return r;a&&(e[a]=r.value),t=r.index}return B(b(t,e),r)})},e.string=K,e.succeed=X,e.takeWhile=function(n){return k(n),e(function(t,r){for(var e=r;e<t.length&&n(L(t,e));)e++;return b(e,t.slice(r,e))})},e.test=nn,e.whitespace=pn,e[\"fantasy-land/empty\"]=rn,e[\"fantasy-land/of\"]=X,e.Binary={bitSeq:l,bitSeqObj:function(n){s();var t={},r=0,e=a(function(n){if(E(n)){var e=n;if(2!==e.length)throw new Error(\"[\"+e.join(\", \")+\"] should be length 2, got length \"+e.length);if(P(e[0]),O(e[1]),Object.prototype.hasOwnProperty.call(t,e[0]))throw new Error(\"duplicate key in bitSeqObj: \"+e[0]);return t[e[0]]=!0,r++,e}return O(n),[null,n]},n);if(r<1)throw new Error(\"bitSeqObj expects at least one named pair, got [\"+n.join(\", \")+\"]\");var u=a(function(n){return n[0]},e);return l(a(function(n){return n[1]},e)).map(function(n){return i(function(n,t){return null!==t[0]&&(n[t[0]]=t[1]),n},{},a(function(t,r){return[t,n[r]]},u))})},byte:function(n){if(s(),O(n),n>255)throw new Error(\"Value specified to byte constructor (\"+n+\"=0x\"+n.toString(16)+\") is larger in value than a single byte.\");var t=(n>15?\"0x\":\"0x0\")+n.toString(16);return e(function(r,e){var u=L(r,e);return u===n?b(e+1,u):x(e,t)})},buffer:function(n){return h(\"buffer\",n).map(function(n){return Buffer.from(n)})},encodedString:function(n,t){return h(\"string\",t).map(function(t){return t.toString(n)})},uintBE:d,uint8BE:d(1),uint16BE:d(2),uint32BE:d(4),uintLE:v,uint8LE:v(1),uint16LE:v(2),uint32LE:v(4),intBE:g,int8BE:g(1),int16BE:g(2),int32BE:g(4),intLE:m,int8LE:m(1),int16LE:m(2),int32LE:m(4),floatBE:h(\"floatBE\",4).map(function(n){return n.readFloatBE(0)}),floatLE:h(\"floatLE\",4).map(function(n){return n.readFloatLE(0)}),doubleBE:h(\"doubleBE\",8).map(function(n){return n.readDoubleBE(0)}),doubleLE:h(\"doubleLE\",8).map(function(n){return n.readDoubleLE(0)})},n.exports=e}])});","export const COLOR_NAMES = {\n aliceblue: \"#f0f8ff\",\n antiquewhite: \"#faebd7\",\n aqua: \"#00ffff\",\n aquamarine: \"#7fffd4\",\n azure: \"#f0ffff\",\n beige: \"#f5f5dc\",\n bisque: \"#ffe4c4\",\n black: \"#000000\",\n blanchedalmond: \"#ffebcd\",\n blue: \"#0000ff\",\n blueviolet: \"#8a2be2\",\n brown: \"#a52a2a\",\n burlywood: \"#deb887\",\n cadetblue: \"#5f9ea0\",\n chartreuse: \"#7fff00\",\n chocolate: \"#d2691e\",\n coral: \"#ff7f50\",\n cornflowerblue: \"#6495ed\",\n cornsilk: \"#fff8dc\",\n crimson: \"#dc143c\",\n cyan: \"#00ffff\",\n darkblue: \"#00008b\",\n darkcyan: \"#008b8b\",\n darkgoldenrod: \"#b8860b\",\n darkgray: \"#a9a9a9\",\n darkgreen: \"#006400\",\n darkgrey: \"#a9a9a9\",\n darkkhaki: \"#bdb76b\",\n darkmagenta: \"#8b008b\",\n darkolivegreen: \"#556b2f\",\n darkorange: \"#ff8c00\",\n darkorchid: \"#9932cc\",\n darkred: \"#8b0000\",\n darksalmon: \"#e9967a\",\n darkseagreen: \"#8fbc8f\",\n darkslateblue: \"#483d8b\",\n darkslategray: \"#2f4f4f\",\n darkslategrey: \"#2f4f4f\",\n darkturquoise: \"#00ced1\",\n darkviolet: \"#9400d3\",\n deeppink: \"#ff1493\",\n deepskyblue: \"#00bfff\",\n dimgray: \"#696969\",\n dimgrey: \"#696969\",\n dodgerblue: \"#1e90ff\",\n firebrick: \"#b22222\",\n floralwhite: \"#fffaf0\",\n forestgreen: \"#228b22\",\n fuchsia: \"#ff00ff\",\n gainsboro: \"#dcdcdc\",\n ghostwhite: \"#f8f8ff\",\n gold: \"#ffd700\",\n goldenrod: \"#daa520\",\n gray: \"#808080\",\n green: \"#008000\",\n greenyellow: \"#adff2f\",\n grey: \"#808080\",\n honeydew: \"#f0fff0\",\n hotpink: \"#ff69b4\",\n indianred: \"#cd5c5c\",\n indigo: \"#4b0082\",\n ivory: \"#fffff0\",\n khaki: \"#f0e68c\",\n lavender: \"#e6e6fa\",\n lavenderblush: \"#fff0f5\",\n lawngreen: \"#7cfc00\",\n lemonchiffon: \"#fffacd\",\n lightblue: \"#add8e6\",\n lightcoral: \"#f08080\",\n lightcyan: \"#e0ffff\",\n lightgoldenrodyellow: \"#fafad2\",\n lightgray: \"#d3d3d3\",\n lightgreen: \"#90ee90\",\n lightgrey: \"#d3d3d3\",\n lightpink: \"#ffb6c1\",\n lightsalmon: \"#ffa07a\",\n lightseagreen: \"#20b2aa\",\n lightskyblue: \"#87cefa\",\n lightslategray: \"#778899\",\n lightslategrey: \"#778899\",\n lightsteelblue: \"#b0c4de\",\n lightyellow: \"#ffffe0\",\n lime: \"#00ff00\",\n limegreen: \"#32cd32\",\n linen: \"#faf0e6\",\n magenta: \"#ff00ff\",\n maroon: \"#800000\",\n mediumaquamarine: \"#66cdaa\",\n mediumblue: \"#0000cd\",\n mediumorchid: \"#ba55d3\",\n mediumpurple: \"#9370db\",\n mediumseagreen: \"#3cb371\",\n mediumslateblue: \"#7b68ee\",\n mediumspringgreen: \"#00fa9a\",\n mediumturquoise: \"#48d1cc\",\n mediumvioletred: \"#c71585\",\n midnightblue: \"#191970\",\n mintcream: \"#f5fffa\",\n mistyrose: \"#ffe4e1\",\n moccasin: \"#ffe4b5\",\n navajowhite: \"#ffdead\",\n navy: \"#000080\",\n oldlace: \"#fdf5e6\",\n olive: \"#808000\",\n olivedrab: \"#6b8e23\",\n orange: \"#ffa500\",\n orangered: \"#ff4500\",\n orchid: \"#da70d6\",\n palegoldenrod: \"#eee8aa\",\n palegreen: \"#98fb98\",\n paleturquoise: \"#afeeee\",\n palevioletred: \"#db7093\",\n papayawhip: \"#ffefd5\",\n peachpuff: \"#ffdab9\",\n peru: \"#cd853f\",\n pink: \"#ffc0cb\",\n plum: \"#dda0dd\",\n powderblue: \"#b0e0e6\",\n purple: \"#800080\",\n rebeccapurple: \"#663399\",\n red: \"#ff0000\",\n rosybrown: \"#bc8f8f\",\n royalblue: \"#4169e1\",\n saddlebrown: \"#8b4513\",\n salmon: \"#fa8072\",\n sandybrown: \"#f4a460\",\n seagreen: \"#2e8b57\",\n seashell: \"#fff5ee\",\n sienna: \"#a0522d\",\n silver: \"#c0c0c0\",\n skyblue: \"#87ceeb\",\n slateblue: \"#6a5acd\",\n slategray: \"#708090\",\n slategrey: \"#708090\",\n snow: \"#fffafa\",\n springgreen: \"#00ff7f\",\n steelblue: \"#4682b4\",\n tan: \"#d2b48c\",\n teal: \"#008080\",\n thistle: \"#d8bfd8\",\n tomato: \"#ff6347\",\n turquoise: \"#40e0d0\",\n violet: \"#ee82ee\",\n wheat: \"#f5deb3\",\n white: \"#ffffff\",\n whitesmoke: \"#f5f5f5\",\n yellow: \"#ffff00\",\n yellowgreen: \"#9acd32\",\n} as const;\n","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","import { mat3, vec3 } from \"gl-matrix\";\nimport { clamp } from \"../../math\";\n\n// Color space types\nexport type RGBColor<T = number> = { r: T; g: T; b: T; alpha?: T };\nexport type HSLColor<T = number> = { h: T; s: T; l: T; alpha?: T };\nexport type HSVColor<T = number> = { h: T; s: T; v: T; alpha?: T };\nexport type HWBColor<T = number> = { h: T; w: T; b: T; alpha?: T };\nexport type LABColor<T = number> = { l: T; a: T; b: T; alpha?: T };\nexport type LCHColor<T = number> = { l: T; c: T; h: T; alpha?: T };\nexport type OKLABColor<T = number> = { l: T; a: T; b: T; alpha?: T };\nexport type OKLCHColor<T = number> = { l: T; c: T; h: T; alpha?: T };\nexport type XYZColor<T = number> = { x: T; y: T; z: T; alpha?: T };\nexport type KelvinColor<T = number> = { kelvin: T; alpha?: T };\n\nexport const COLOR_SPACE_KEYS = {\n rgb: [\"r\", \"g\", \"b\"],\n hsl: [\"h\", \"s\", \"l\"],\n hsv: [\"h\", \"s\", \"v\"],\n hwb: [\"h\", \"w\", \"b\"],\n lab: [\"l\", \"a\", \"b\"],\n lch: [\"l\", \"c\", \"h\"],\n oklab: [\"l\", \"a\", \"b\"],\n oklch: [\"l\", \"c\", \"h\"],\n xyz: [\"x\", \"y\", \"z\"],\n kelvin: [\"kelvin\"],\n} as const;\n\nexport type Color<T = number> =\n | RGBColor<T>\n | HSLColor<T>\n | HSVColor<T>\n | HWBColor<T>\n | LABColor<T>\n | LCHColor<T>\n | OKLABColor<T>\n | OKLCHColor<T>\n | XYZColor<T>\n | KelvinColor<T>;\n\nexport interface ColorSpaceMap<T = number> {\n rgb: RGBColor<T>;\n hsl: HSLColor<T>;\n hsv: HSVColor<T>;\n hwb: HWBColor<T>;\n lab: LABColor<T>;\n lch: LCHColor<T>;\n oklab: OKLABColor<T>;\n oklch: OKLCHColor<T>;\n xyz: XYZColor<T>;\n kelvin: KelvinColor<T>;\n}\n\nexport type ColorSpace<T = number> = keyof ColorSpaceMap<T>;\n\nfunction getColorSpace<T>(color: Color<T>) {\n for (const space of Object.keys(COLOR_SPACE_KEYS) as ColorSpace<T>[]) {\n if (COLOR_SPACE_KEYS[space].every((key) => key in color)) {\n return space;\n }\n }\n return null;\n}\n\nconst HEX_BASE = 16;\nexport const RGBA_MAX = 255;\n\n// Outputs values in range [0, 255], alpha in [0, 1]\nexport const hex2rgb = (hex: string): RGBColor => {\n hex = hex.slice(1);\n if (hex.length <= 4) {\n // Expand shorthand (e.g., \"03F\" to \"0033FF\")\n const r = parseInt(hex[0] + hex[0], HEX_BASE);\n const g = parseInt(hex[1] + hex[1], HEX_BASE);\n const b = parseInt(hex[2] + hex[2], HEX_BASE);\n const alpha = hex[3] ? parseInt(hex[3] + hex[3], HEX_BASE) / RGBA_MAX : 1;\n\n return { r, g, b, alpha };\n } else {\n // Parse full form\n const r = parseInt(hex.slice(0, 2), HEX_BASE);\n const g = parseInt(hex.slice(2, 4), HEX_BASE);\n const b = parseInt(hex.slice(4, 6), HEX_BASE);\n const alpha =\n hex.length === 8 ? parseInt(hex.slice(6, 8), HEX_BASE) / RGBA_MAX : 1;\n\n return { r, g, b, alpha };\n }\n};\n\nconst MIN_TEMP = 1000;\nconst MAX_TEMP = 40000;\nconst TEMP_SCALE = 100;\n\n// Based on approximations by Tanner Helland: https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html\n// Valid for temperatures between 1000K and 40,000K\nexport const kelvin2rgb = ({ kelvin, alpha }: KelvinColor): RGBColor => {\n // Clamp temperature to valid range and scale down\n kelvin = clamp(kelvin, MIN_TEMP, MAX_TEMP) / TEMP_SCALE;\n let r, g, b;\n\n // Red calculation\n if (kelvin <= 66) {\n // Red is always 255 for temperatures up to 6600K\n r = RGBA_MAX;\n } else {\n // For higher temperatures, use a power function approximation\n // R-squared value for this approximation is 0.988\n r = kelvin - 60;\n r = 329.698727446 * r ** -0.1332047592;\n }\n r = clamp(r, 0, RGBA_MAX) / RGBA_MAX;\n\n // Green calculation\n if (kelvin <= 66) {\n // Below 6600K, use a logarithmic approximation\n // R-squared value for this approximation is 0.996\n g = kelvin;\n g = 99.4708025861 * Math.log(g) - 161.1195681661;\n } else {\n // Above 6600K, use a power function approximation\n // R-squared value for this approximation is 0.987\n g = kelvin - 60;\n g = 288.1221695283 * g ** -0.0755148492;\n }\n g = clamp(g, 0, RGBA_MAX) / RGBA_MAX;\n\n // Blue calculation\n if (kelvin >= 66) {\n // Blue is always 255 for temperatures 6600K and above\n b = RGBA_MAX;\n } else if (kelvin <= 19) {\n // Blue is always 0 for temperatures 1900K and below\n b = 0;\n } else {\n // Between 1900K and 6600K, use a logarithmic approximation\n // R-squared value for this approximation is 0.998\n b = kelvin - 10;\n b = 138.5177312231 * Math.log(b) - 305.0447927307;\n }\n b = clamp(b, 0, RGBA_MAX) / RGBA_MAX;\n\n return { r, g, b, alpha };\n};\n\n// Input values in range [0, 1]\nexport const rgb2kelvin = ({ r, g, b, alpha }: RGBColor): KelvinColor => {\n // Ensure input values are within valid range\n r = clamp(r * RGBA_MAX, 0, RGBA_MAX);\n g = clamp(g * RGBA_MAX, 0, RGBA_MAX);\n b = clamp(b * RGBA_MAX, 0, RGBA_MAX);\n\n let kelvin;\n\n // Determine temperature range based on blue value\n if (b === RGBA_MAX) {\n // Temperature is 6600K or above\n kelvin = 6600;\n } else if (b === 0) {\n // Temperature is 1900K or below\n kelvin = 1900;\n } else {\n // Temperature is between 1900K and 6600K\n // Reverse the blue calculation\n kelvin = Math.exp((b + 305.0447927307) / 138.5177312231) + 10;\n }\n\n // Refine temperature based on red value\n if (r < RGBA_MAX) {\n // Temperature is above 6600K\n const redTemp = (329.698727446 / r) ** (1 / -0.1332047592) + 60;\n kelvin = Math.max(kelvin, redTemp);\n }\n\n // Refine temperature based on green value\n const greenTemp =\n kelvin <= 6600\n ? Math.exp((g + 161.1195681661) / 99.4708025861)\n : (288.1221695283 / g) ** (1 / -0.0755148492) + 60;\n\n // Average the temperatures from different channels\n kelvin = (kelvin + greenTemp) / 2;\n\n // Scale and clamp the final temperature\n kelvin = clamp(Math.round(kelvin * TEMP_SCALE), MIN_TEMP, MAX_TEMP);\n\n return { kelvin, alpha };\n};\n\n// Input and output values in range [0, 1]\nexport const hsv2hsl = ({ h, s, v, alpha }: HSVColor): HSLColor => {\n // L is average of highest and lowest RGB values\n const l = v - (v * s) / 2;\n\n // S is recalculated to match HSL's definition\n let sl: number;\n if (l === 0 || l === 1) {\n sl = 0;\n } else {\n sl = (v - l) / Math.min(l, 1 - l);\n }\n\n return { h, s: sl, l, alpha };\n};\n\n// Input and output values in range [0, 1]\nexport const hsl2hsv = ({ h, s, l, alpha }: HSLColor): HSVColor => {\n // V is the highest RGB value\n const v = l + s * Math.min(l, 1 - l);\n\n // S is recalculated to match HSV's definition\n let sv: number;\n if (v === 0) {\n sv = 0;\n } else {\n sv = 2 * (1 - l / v);\n }\n\n return { h, s: sv, v, alpha };\n};\n\n// Input and output values in range [0, 1]\nexport const hwb2hsl = ({ h, w, b, alpha }: HWBColor): HSLColor => {\n // Convert HWB to HSV first\n const v = 1 - b;\n\n let sv: number;\n if (v === 0) {\n sv = 0;\n } else {\n sv = 1 - w / v;\n }\n // Then convert HSV to HSL\n return hsv2hsl({ h, s: sv, v, alpha });\n};\n\n// Input and output values in range [0, 1]\nexport const hsl2hwb = ({ h, s, l, alpha }: HSLColor): HWBColor => {\n // Convert HSL to HSV first\n const v = l + s * Math.min(l, 1 - l);\n\n let w: number;\n if (v === 0) {\n w = 0;\n } else {\n w = 1 - l / v;\n }\n\n const b = 1 - v;\n\n return { h, w, b, alpha };\n};\n\n// Input and output values in range [0, 1]\nexport const rgb2hsl = ({ r, g, b, alpha }: RGBColor): HSLColor => {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n // Lightness: average of the largest and smallest color components\n const l = (max + min) / 2;\n\n if (Math.abs(max - min) < 1e-6) {\n // Achromatic case: no hue or saturation\n return { h: 0, s: 0, l, alpha };\n }\n\n const c = max - min;\n\n const s = c / (1 - Math.abs(2 * l - 1));\n\n // Hue: determined by which color component is maximum\n // Initial calculation gives h in [0, 6) range\n let h: number;\n switch (max) {\n case r:\n // Red is max: h in [0, 2)\n h = (g - b) / c + (g < b ? 6 : 0);\n break;\n case g:\n // Green is max: h in [2, 4)\n h = (b - r) / c + 2;\n break;\n case b:\n // Blue is max: h in [4, 6)\n h = (r - g) / c + 4;\n break;\n }\n // Normalize h to [0, 1) range\n h /= 6;\n\n return { h, s, l, alpha };\n};\n\n// Input and output values in range [0, 1]\nexport function hsl2rgb({ h, s, l, alpha }: HSLColor): RGBColor {\n // Chroma: the \"colorfulness\" of the color\n const c = (1 - Math.abs(2 * l - 1)) * s;\n\n // Second largest component of the color\n const x = c * (1 - Math.abs(((h * 6) % 2) - 1));\n\n // Amount to add to each component to match lightness\n const m = l - c / 2;\n\n let r: number, g: number, b: number;\n\n // Determine RGB based on hue sector\n if (h < 1 / 6) {\n [r, g, b] = [c, x, 0]; // Red to Yellow\n } else if (h < 2 / 6) {\n [r, g, b] = [x, c, 0]; // Yellow to Green\n } else if (h < 3 / 6) {\n [r, g, b] = [0, c, x]; // Green to Cyan\n } else if (h < 4 / 6) {\n [r, g, b] = [0, x, c]; // Cyan to Blue\n } else if (h < 5 / 6) {\n [r, g, b] = [x, 0, c]; // Blue to Magenta\n } else {\n [r, g, b] = [c, 0, x]; // Magenta to Red\n }\n\n // Add lightness component to each RGB value\n // The resulting r, g, b values are guaranteed to be in the [0, 1] range\n return {\n r: r + m,\n g: g + m,\n b: b + m,\n alpha,\n };\n}\n\n// D65 Standard Illuminant values\nconst WHITE_POINT_D65 = vec3.fromValues(\n ...[\n 0.95047, // X\n 1.0, // Y\n 1.08883, // Z\n ],\n);\n\n// Constants for LAB color space calculations\nconst LAB_EPSILON = 0.008856; // Actual value is (6/29)^3\nconst LAB_KAPPA = 903.3; // Actual value is (29/3)^3\nconst LAB_OFFSET = 16; // Offset for L* calculation\n\n// Constants for scaling factors in LAB calculations\nconst LAB_SCALE_L = 116;\nconst LAB_SCALE_A = 500;\nconst LAB_SCALE_B = 200;\n\nexport function xyz2lab({ x, y, z, alpha }: XYZColor): LABColor {\n // Normalize XYZ values relative to the D65 white point\n const xr = x / WHITE_POINT_D65[0];\n const yr = y / WHITE_POINT_D65[1];\n const zr = z / WHITE_POINT_D65[2];\n\n // Apply the lab function to each normalized value\n const fx =\n xr > LAB_EPSILON ? Math.cbrt(xr) : (LAB_KAPPA * xr + LAB_OFFSET) / LAB_SCALE_L;\n const fy =\n yr > LAB_EPSILON ? Math.cbrt(yr) : (LAB_KAPPA * yr + LAB_OFFSET) / LAB_SCALE_L;\n const fz =\n zr > LAB_EPSILON ? Math.cbrt(zr) : (LAB_KAPPA * zr + LAB_OFFSET) / LAB_SCALE_L;\n\n // Calculate L*, a*, and b* values\n const l = LAB_SCALE_L * fy - LAB_OFFSET; // L* = 116 * f(Y/Yn) - 16\n const a = LAB_SCALE_A * (fx - fy); // a* = 500 * [f(X/Xn) - f(Y/Yn)]\n const b = LAB_SCALE_B * (fy - fz); // b* = 200 * [f(Y/Yn) - f(Z/Zn)]\n\n return { l, a, b, alpha };\n}\n\nexport function lab2xyz({ l, a, b, alpha }: LABColor): XYZColor {\n // Inverse of the xyz2lab function\n const fy = (l + LAB_OFFSET) / LAB_SCALE_L;\n const fx = a / LAB_SCALE_A + fy;\n const fz = fy - b / LAB_SCALE_B;\n\n // Apply the inverse lab function to each value\n const xr =\n fx ** 3 > LAB_EPSILON ? fx ** 3 : (fx * LAB_SCALE_L - LAB_OFFSET) / LAB_KAPPA;\n const yr =\n l > LAB_KAPPA * LAB_EPSILON\n ? ((l + LAB_OFFSET) / LAB_SCALE_L) ** 3\n : l / LAB_KAPPA;\n const zr =\n fz ** 3 > LAB_EPSILON ? fz ** 3 : (fz * LAB_SCALE_L - LAB_OFFSET) / LAB_KAPPA;\n\n // Denormalize XYZ values\n const x = xr * WHITE_POINT_D65[0];\n const y = yr * WHITE_POINT_D65[1];\n const z = zr * WHITE_POINT_D65[2];\n\n return { x, y, z, alpha };\n}\n\n// Constants for RGB to XYZ conversion\nconst RGB_XYZ_MATRIX = mat3.fromValues(\n ...[0.4124564, 0.3575761, 0.1804375],\n ...[0.2126729, 0.7151522, 0.072175],\n ...[0.0193339, 0.119192, 0.9503041],\n);\nmat3.transpose(RGB_XYZ_MATRIX, RGB_XYZ_MATRIX);\n\nconst XYZ_RGB_MATRIX = mat3.create();\nmat3.invert(XYZ_RGB_MATRIX, RGB_XYZ_MATRIX);\n\n// Constants for sRGB to linear RGB conversion\nconst SRGB_GAMMA = 2.4; // sRGB gamma\nconst SRGB_OFFSET = 0.055; // sRGB offset\nconst SRGB_SLOPE = 12.92; // sRGB slope for low values\n\nconst SRGB_TRANSITION = 0.04045; // sRGB transition point\nconst SRGB_LINEAR_TRANSITION = SRGB_TRANSITION / SRGB_SLOPE; // sRGB linear transition point\n\n// Helper function to convert sRGB to linear RGB\nfunction srgbToLinear(channel: number): number {\n // sRGB uses a piecewise function:\n // - A linear portion for low values (below the transition point)\n // - A power function for higher values\n // This accounts for the non-linear perception of brightness by human eyes\n if (channel <= SRGB_TRANSITION) {\n // Linear function for low values\n return channel / SRGB_SLOPE;\n } else {\n // Power function: removes gamma correction\n return ((channel + SRGB_OFFSET) / (1 + SRGB_OFFSET)) ** SRGB_GAMMA;\n }\n}\n\n// Helper function to convert linear RGB to sRGB\nfunction linearToSrgb(channel: number): number {\n // This function is the inverse of srgbToLinear\n // It applies the sRGB transfer function to convert linear RGB values back to sRGB\n if (channel <= SRGB_LINEAR_TRANSITION) {\n // Linear function for low values\n return channel * SRGB_SLOPE;\n } else {\n // Power function: applies gamma correction\n return (1 + SRGB_OFFSET) * channel ** (1 / SRGB_GAMMA) - SRGB_OFFSET;\n }\n}\n\nexport function rgb2xyz({ r, g, b, alpha }: RGBColor): XYZColor {\n // Convert sRGB values to linear RGB\n const linearRGB = vec3.fromValues(\n srgbToLinear(r),\n srgbToLinear(g),\n srgbToLinear(b),\n );\n\n // Transform linear RGB to XYZ using the standardized matrix\n // This matrix is derived from the CIE color matching functions\n // and the sRGB primaries\n const result = vec3.create();\n vec3.transformMat3(result, linearRGB, RGB_XYZ_MATRIX);\n\n const [x, y, z] = result;\n return { x, y, z, alpha };\n}\n\nexport function xyz2rgb({ x, y, z, alpha }: XYZColor): RGBColor {\n // Transform XYZ to linear RGB\n const linearRGB = vec3.create();\n vec3.transformMat3(linearRGB, vec3.fromValues(x, y, z), XYZ_RGB_MATRIX);\n\n // Convert linear RGB to sRGB\n const r = linearToSrgb(linearRGB[0]);\n const g = linearToSrgb(linearRGB[1]);\n const b = linearToSrgb(linearRGB[2]);\n\n return { r, g, b, alpha };\n}\n\n// Input and output values in range [0, 1]\nexport function lch2lab({ l, c, h, alpha }: LCHColor): LABColor {\n const hRad = h * 2 * Math.PI;\n return {\n l: l,\n a: Math.cos(hRad) * c,\n b: Math.sin(hRad) * c,\n alpha,\n };\n}\n\n// Input and output values in range [0, 1]\nexport function lab2lch({ l, a, b, alpha }: LABColor): LCHColor {\n const c = Math.sqrt(a * a + b * b);\n let h = Math.atan2(b, a) / (2 * Math.PI);\n if (h < 0) h += 1; // Ensure h is in [0, 1]\n return { l, c, h, alpha };\n}\n\nconst LMS_TO_XYZ_MATRIX = mat3.fromValues(\n ...[0.8189330101, 0.0329845436, 0.0482003018],\n ...[0.3618667424, 0.9293118715, 0.2643662691],\n ...[-0.1288597137, 0.0361456387, 0.633851707],\n);\nmat3.transpose(LMS_TO_XYZ_MATRIX, LMS_TO_XYZ_MATRIX);\n\nconst XYZ_TO_LMS_MATRIX = mat3.create();\nmat3.invert(XYZ_TO_LMS_MATRIX, LMS_TO_XYZ_MATRIX);\n\nconst LMS_TO_OKLAB_MATRIX = mat3.fromValues(\n ...[0.2104542553, 0.793617785, -0.0040720468],\n ...[1.9779984951, -2.428592205, 0.4505937099],\n ...[0.0259040371, 0.7827717662, -0.808675766],\n);\nmat3.transpose(LMS_TO_OKLAB_MATRIX, LMS_TO_OKLAB_MATRIX);\n\nconst OKLAB_TO_LMS_MATRIX = mat3.create();\nmat3.invert(OKLAB_TO_LMS_MATRIX, LMS_TO_OKLAB_MATRIX);\n\n// Input and output values in range [0, 1]\nexport function oklab2xyz({ l, a, b, alpha }: OKLABColor): XYZColor {\n // Convert OKLab to LMS\n const lms = vec3.create();\n vec3.transformMat3(lms, vec3.fromValues(l, a, b), OKLAB_TO_LMS_MATRIX);\n\n // Apply non-linearity (LMS to linear LMS)\n lms.forEach((value, index) => {\n lms[index] = value ** 3;\n });\n\n // Convert linear LMS to XYZ\n const xyz = vec3.create();\n vec3.transformMat3(xyz, lms, LMS_TO_XYZ_MATRIX);\n\n return { x: xyz[0], y: xyz[1], z: xyz[2], alpha: alpha };\n}\n\n// Input and output values in range [0, 1]\nexport function xyz2oklab({ x, y, z, alpha }: XYZColor): OKLABColor {\n // Convert XYZ to linear LMS\n const lms = vec3.create();\n vec3.transformMat3(lms, vec3.fromValues(x, y, z), XYZ_TO_LMS_MATRIX);\n\n // Apply non-linearity (linear LMS to LMS)\n lms.forEach((value, index) => {\n lms[index] = Math.cbrt(value);\n });\n\n // Convert LMS to OKLab using matrix multiplication\n const oklab = vec3.create();\n vec3.transformMat3(oklab, lms, LMS_TO_OKLAB_MATRIX);\n\n return { l: oklab[0], a: oklab[1], b: oklab[2], alpha: alpha };\n}\n\n// Input and output values in range [0, 1]\nexport function oklab2lab({ l, a, b, alpha }: OKLABColor): LABColor {\n const { x, y, z } = oklab2xyz({ l, a, b, alpha });\n return xyz2lab({ x, y, z, alpha });\n}\n\n// Input and output values in range [0, 1]\nexport function lab2oklab({ l, a, b, alpha }: LABColor): OKLABColor {\n const { x, y, z } = lab2xyz({ l, a, b, alpha });\n return xyz2oklab({ x, y, z, alpha });\n}\n\n// Input and output values in range [0, 1]\nexport function oklch2lab({ l, c, h, alpha }: OKLCHColor): LABColor {\n // Convert OKLCh to OKLab\n const hRadians = h * 2 * Math.PI; // h is now in [0, 1] range\n const a = c * Math.cos(hRadians);\n const b = c * Math.sin(hRadians);\n\n return oklab2lab({ l, a, b, alpha });\n}\n\n// Input and output values in range [0, 1]\nexport function lab2oklch({ l, a, b, alpha }): OKLCHColor {\n // Convert OKLab to OKLCh\n const { l: ll, a: aa, b: bb } = lab2oklab({ l, a, b, alpha });\n const c = Math.sqrt(aa * aa + bb * bb);\n\n let h = Math.atan2(bb, aa) / (2 * Math.PI);\n if (h < 0) h += 1; // Ensure h is in [0, 1]\n\n return { l, c, h, alpha };\n}\n\n// Input and output values in range [0, 1]\nexport function oklab2oklch({ l, a, b, alpha }: OKLABColor): OKLCHColor {\n const c = Math.sqrt(a * a + b * b);\n\n let h = Math.atan2(b, a) / (2 * Math.PI);\n if (h < 0) h += 1; // Ensure h is in [0, 1]\n\n return { l, c, h, alpha };\n}\n\n// Input and output values in range [0, 1]\nexport function oklch2oklab({ l, c, h, alpha }: OKLCHColor): OKLABColor {\n const hRadians = h * 2 * Math.PI;\n const a = c * Math.cos(hRadians);\n const b = c * Math.sin(hRadians);\n\n return { l, a, b, alpha };\n}\n\n// Conversion functions to normalize any given space to XYZ and back\n\nexport function hsl2xyz({ h, s, l, alpha }: HSLColor) {\n const { r, g, b } = hsl2rgb({ h, s, l, alpha });\n return rgb2xyz({ r, g, b, alpha });\n}\n\nexport function xyz2hsl({ x, y, z, alpha }: XYZColor) {\n const { r, g, b } = xyz2rgb({ x, y, z, alpha });\n return rgb2hsl({ r, g, b, alpha });\n}\n\nexport function hsv2xyz({ h, s, v, alpha }: HSVColor): XYZColor {\n const { h: hh, s: sh, l } = hsv2hsl({ h, s, v, alpha });\n return hsl2xyz({ h: hh, s: sh, l, alpha });\n}\n\nexport function xyz2hsv({ x, y, z, alpha }: XYZColor): HSVColor {\n const { h, s, l } = xyz2hsl({ x, y, z, alpha });\n return hsl2hsv({ h, s, l, alpha });\n}\n\nexport function hwb2xyz({ h, w, b, alpha }: HWBColor): XYZColor {\n const { h: hh, s, l } = hwb2hsl({ h, w, b, alpha });\n return hsl2xyz({ h: hh, s, l, alpha });\n}\n\nexport function xyz2hwb({ x, y, z, alpha }: XYZColor): HWBColor {\n const { h, s, l } = xyz2hsl({ x, y, z, alpha });\n return hsl2hwb({ h, s, l, alpha });\n}\n\nexport function lch2xyz({ l, c, h, alpha }: LCHColor): XYZColor {\n const { l: ll, a, b } = lch2lab({ l, c, h, alpha });\n return lab2xyz({ l, a, b, alpha });\n}\n\nexport function xyz2lch({ x, y, z, alpha }: XYZColor): LCHColor {\n const { l, a, b } = xyz2lab({ x, y, z, alpha });\n return lab2lch({ l, a, b, alpha });\n}\n\nexport function oklch2xyz({ l, c, h, alpha }: OKLCHColor): XYZColor {\n const { l: ll, a, b } = oklch2lab({ l, c, h, alpha });\n return lab2xyz({ l: ll, a, b, alpha });\n}\n\nexport function xyz2oklch({ x, y, z, alpha }: XYZColor): OKLCHColor {\n const { l, a, b } = xyz2lab({ x, y, z, alpha });\n return lab2oklch({ l, a, b, alpha });\n}\n\nconst XYZ_FUNCTIONS = {\n rgb: { to: rgb2xyz, from: xyz2rgb },\n hsl: { to: hsl2xyz, from: xyz2hsl },\n hsv: { to: hsv2xyz, from: xyz2hsv },\n hwb: { to: hwb2xyz, from: xyz2hwb },\n lab: { to: lab2xyz, from: xyz2lab },\n lch: { to: lch2xyz, from: xyz2lch },\n oklab: { to: oklab2xyz, from: xyz2oklab },\n oklch: { to: oklch2xyz, from: xyz2oklch },\n xyz: { to: (color: XYZColor) => color, from: (color: XYZColor) => color },\n} as const;\n\nexport function color2<T extends ColorSpace>(color: Color, to: T): ColorSpaceMap[T] {\n const fromSpace = getColorSpace(color);\n if (!fromSpace) {\n throw new Error(\"Invalid color object\");\n }\n\n const toXYZFn = XYZ_FUNCTIONS[fromSpace][\"to\"] as (color: Color) => XYZColor;\n\n const xyz = toXYZFn(color);\n\n const fromXYZFn = XYZ_FUNCTIONS[to as ColorSpace][\"from\"] as (\n xyz: XYZColor,\n ) => ColorSpaceMap[T];\n\n return fromXYZFn(xyz);\n}\n","import P from \"parsimmon\";\n\nexport const istring = (str: string) =>\n P((input, i) => {\n const s = input.slice(i);\n if (s.toLowerCase().startsWith(str.toLowerCase())) {\n return P.makeSuccess(i + str.length, str);\n } else {\n return P.makeFailure(i, `Expected ${str}`);\n }\n });\n\nexport const identifier = P.regexp(/-?[a-zA-Z][a-zA-Z0-9-]*/);\n\nexport const none = P.string(\"none\");\n\nexport const integer = P.regexp(/-?\\d+/).map(Number);\n\nexport const number = P.regexp(/-?(0|[1-9]\\d*)(\\.\\d+)?([eE][+-]?\\d+)?/).map(Number);\n\nexport const opt = <T>(p: P.Parser<T>) => P.alt(p, P.succeed(undefined));\n\n// const unaryMathFunctions = {\n// sin: Math.sin,\n// cos: Math.cos,\n// tan: Math.tan,\n// asin: Math.asin,\n// acos: Math.acos,\n// atan: Math.atan,\n// var: (x: string) => x,\n// } as const;\n\n// const binaryMathFunctions = {\n// pow: Math.pow,\n// atan2: Math.atan2,\n// min: Math.min,\n// max: Math.max,\n// clamp: clamp,\n// } as const;\n\n// const mathFunctions = {\n// ...unaryMathFunctions,\n// ...binaryMathFunctions,\n// };\n\n// const evaluateMathFunction = (\n// funcName: keyof typeof mathFunctions,\n// values: ValueUnit[],\n// ) => {\n// // @ts-ignore\n// const collapsed: ValueUnit = values.reduce((acc, v) => {\n// return collapseNumericType(acc, v);\n// }, values[0])[0];\n\n// const flatValues = values\n// .map((v) => v.value)\n// .map((v) => {\n// if (collapsed.superType && collapsed.superType[0] === \"angle\") {\n// return convertToDegrees(v, collapsed.unit) * (Math.PI / 180);\n// } else {\n// return v;\n// }\n// });\n// const func = mathFunctions[funcName];\n\n// // @ts-ignore\n// const value = func(...flatValues);\n\n// if (value) {\n// return new ValueUnit(value, collapsed.unit, collapsed.superType);\n// } else {\n// return undefined;\n// }\n// };\n\n// function evaluateMathOperator(\n// operator: string,\n// left: ValueUnit,\n// right: ValueUnit,\n// ): ValueUnit {\n// [left, right] = collapseNumericType(left, right);\n\n// if (!left.unit && right.unit) {\n// [left, right] = [right, left];\n// } else if (right.unit && !arrayEquals(left.superType, right.superType)) {\n// return undefined;\n// }\n\n// const value = (() => {\n// switch (operator) {\n// case \"+\":\n// return left.value + right.value;\n// case \"-\":\n// return left.value - right.value;\n// case \"*\":\n// return left.value * right.value;\n// case \"/\":\n// return left.value / right.value;\n// case \"//\":\n// return Math.floor(left.value / right.value);\n// case \"^\":\n// return Math.pow(left.value, right.value);\n// default:\n// throw new Error(`Unknown operator ${operator}`);\n// }\n// })();\n\n// return new ValueUnit(value, left.unit, left.superType);\n// }\n\n// const reduceMathOperators = (left: ValueUnit, rest: any[]) => {\n// if (rest.length === 0) {\n// return left;\n// }\n// const value = rest.reduce((acc, [op, right]) => {\n// if (typeof acc === \"string\" || !(right instanceof ValueUnit)) {\n// return `${acc} ${op} ${right}`;\n// }\n\n// const v = evaluateMathOperator(op, acc, right);\n// if (!v) {\n// return `${acc} ${op} ${right}`;\n// } else {\n// return v;\n// }\n// }, left);\n\n// return value;\n// };\n\n// const MathValue: P.Language = P.createLanguage({\n// ws: () => P.optWhitespace,\n// lparen: (r) => P.string(\"(\").trim(r.ws),\n// rparen: (r) => P.string(\")\").trim(r.ws),\n// comma: (r) => P.string(\",\").trim(r.ws),\n\n// String: () => P.regexp(/[^\\(\\)\\{\\}\\s,;]+/).map((x) => new ValueUnit(x)),\n\n// termOperators: (r) => P.alt(...[\"*\", \"/\", \"//\"].map(P.string)).trim(r.ws),\n// factorOperators: (r) => P.alt(...[\"+\", \"-\"].map(P.string)).trim(r.ws),\n// pow: (r) => P.string(\"^\").trim(r.ws),\n\n// Expression: (r) =>\n// P.alt(r.Function, r.Term).map((v) => {\n// console.log(v);\n// return v;\n// }),\n\n// FunctionArgs: (r) =>\n// P.sepBy1(r.Expression, r.comma).trim(r.ws).wrap(r.lparen, r.rparen),\n// Function: (r) =>\n// P.seq(P.alt(...Object.keys(mathFunctions).map(P.string)), r.FunctionArgs).map(\n// ([name, args]) => {\n// const v = evaluateMathFunction(\n// name as keyof typeof mathFunctions,\n// args,\n// );\n\n// if (v) {\n// return v;\n// } else {\n// return new FunctionValue(name, args);\n// }\n// },\n// ),\n\n// Term: (r) =>\n// P.seqMap(\n// r.Factor,\n// P.seq(r.termOperators, r.Factor).many(),\n// reduceMathOperators,\n// ),\n// Factor: (r) =>\n// P.seqMap(r.Atom, P.seq(r.factorOperators, r.Term).many(), reduceMathOperators),\n\n// CSSVariable: (r) =>\n// P.string(\"--\")\n// .then(identifier)\n// .map((v) => {\n// return new ValueUnit(\"--\" + v, \"var\");\n// }),\n\n// Atom: (r) => P.alt(r.CSSVariable, r.Expression).trim(r.ws),\n// });\n","import P from \"parsimmon\";\nimport { ValueUnit } from \"../units\";\nimport { COLOR_NAMES } from \"../units/color/constants\";\nimport { hex2rgb, kelvin2rgb } from \"../units/color/utils\";\nimport {\n ABSOLUTE_LENGTH_UNITS,\n ANGLE_UNITS,\n LENGTH_UNITS,\n PERCENTAGE_UNITS,\n RELATIVE_LENGTH_UNITS,\n RESOLUTION_UNITS,\n TIME_UNITS,\n} from \"../units/constants\";\nimport { convertToDegrees } from \"../units/utils\";\nimport * as utils from \"./utils\";\n\nconst createColorValueUnit = (value: any, colorType: string) => {\n return new ValueUnit(value, \"color\", [\"color\", colorType], undefined, \"color\");\n};\n\nconst colorOptionalAlpha = (r: P.Language, colorType: string) => {\n const name = P.string(colorType).skip(utils.opt(utils.istring(\"a\")));\n\n const optionalAlpha = P.alt(\n P.seq(r.colorValue.skip(r.alphaSep), r.colorValue),\n P.seq(r.colorValue),\n );\n\n const args = P.seq(\n r.colorValue.skip(r.sep),\n r.colorValue.skip(r.sep),\n optionalAlpha,\n )\n .trim(P.optWhitespace)\n .wrap(P.string(\"(\"), P.string(\")\"));\n\n return name.then(args).map(([x, y, [z, a]]) => {\n return [x, y, z, a ?? new ValueUnit(1)];\n });\n};\n\nexport const CSSColor = P.createLanguage({\n colorValue: () =>\n P.alt(\n CSSValueUnit.Percentage,\n CSSValueUnit.Angle.map((x) => {\n const deg = convertToDegrees(x.value, x.unit);\n return new ValueUnit(deg, \"deg\", [\"angle\"]);\n }),\n P.alt(utils.number, utils.integer).map((x) => new ValueUnit(x)),\n utils.none.map(() => new ValueUnit(0)),\n ),\n\n comma: () => P.string(\",\"),\n space: () => P.regex(/\\s+/),\n div: () => P.string(\"/\"),\n\n sep: (r) => P.alt(r.comma.trim(P.optWhitespace), r.space),\n\n alphaSep: (r) => P.alt(r.div.trim(P.optWhitespace), r.sep),\n\n name: () =>\n P.alt(\n ...Object.keys(COLOR_NAMES)\n .sort((a, b) => b.length - a.length)\n .map(P.string),\n ).map((x) => {\n const c = COLOR_NAMES[x];\n const { r, g, b } = hex2rgb(c);\n return createColorValueUnit(\n {\n r: new ValueUnit(r),\n g: new ValueUnit(g),\n b: new ValueUnit(b),\n alpha: new ValueUnit(1),\n },\n \"rgb\",\n );\n }),\n\n hex: () =>\n P.regexp(/#[0-9a-fA-F]{3,8}/).map((x) => {\n const { r, g, b, alpha } = hex2rgb(x);\n return createColorValueUnit(\n {\n r: new ValueUnit(r),\n g: new ValueUnit(g),\n b: new ValueUnit(b),\n alpha: new ValueUnit(alpha),\n },\n \"rgb\",\n );\n }),\n\n kelvin: () =>\n utils.number.skip(utils.istring(\"k\")).map((kelvin) => {\n const { r, g, b } = kelvin2rgb({ kelvin });\n return createColorValueUnit(\n {\n r: new ValueUnit(r),\n g: new ValueUnit(g),\n b: new ValueUnit(b),\n alpha: new ValueUnit(1),\n },\n \"rgb\",\n );\n }),\n\n rgb: (r) =>\n colorOptionalAlpha(r, \"rgb\").map(([r, g, b, alpha]) =>\n createColorValueUnit({ r, g, b, alpha }, \"rgb\"),\n ),\n\n hsl: (r) =>\n colorOptionalAlpha(r, \"hsl\").map(([h, s, l, alpha]) =>\n createColorValueUnit({ h, s, l, alpha }, \"hsl\"),\n ),\n\n hsv: (r) =>\n colorOptionalAlpha(r, \"hsv\").map(([h, s, v, alpha]) => {\n return createColorValueUnit({ h, s, v, alpha }, \"hsl\");\n }),\n\n hwb: (r) =>\n colorOptionalAlpha(r, \"hwb\").map(([h, w, b, alpha]) =>\n createColorValueUnit({ h, w, b, alpha }, \"hsl\"),\n ),\n\n lab: (r) =>\n colorOptionalAlpha(r, \"lab\").map(([l, a, b, alpha]) =>\n createColorValueUnit({ l, a, b, alpha }, \"lab\"),\n ),\n\n lch: (r) =>\n colorOptionalAlpha(r, \"lch\").map(([l, c, h, alpha]) =>\n createColorValueUnit({ l, c, h, alpha }, \"lch\"),\n ),\n\n oklab: (r) =>\n colorOptionalAlpha(r, \"oklab\").map(([l, a, b, alpha]) =>\n createColorValueUnit({ l, a, b, alpha }, \"oklab\"),\n ),\n\n oklch: (r) =>\n colorOptionalAlpha(r, \"oklch\").map(([l, c, h, alpha]) =>\n createColorValueUnit({ l, c, h, alpha }, \"oklch\"),\n ),\n\n xyz: (r) =>\n colorOptionalAlpha(r, \"xyz\").map(([x, y, z, alpha]) =>\n createColorValueUnit({ x, y, z, alpha }, \"xyz\"),\n ),\n\n Value: (r) =>\n P.alt(\n r.hex,\n r.kelvin,\n r.rgb,\n r.hsl,\n r.hsv,\n r.hwb,\n r.lab,\n r.lch,\n r.oklab,\n r.oklch,\n r.xyz,\n r.name,\n ).trim(P.optWhitespace),\n});\n\nexport const CSSValueUnit = P.createLanguage({\n lengthUnit: () => P.alt(...LENGTH_UNITS.map(utils.istring)),\n angleUnit: () => P.alt(...ANGLE_UNITS.map(utils.istring)),\n timeUnit: () => P.alt(...TIME_UNITS.map(utils.istring)),\n resolutionUnit: () => P.alt(...RESOLUTION_UNITS.map(utils.istring)),\n percentageUnit: () => P.alt(...PERCENTAGE_UNITS.map(utils.istring)),\n\n comma: () => P.string(\",\"),\n space: () => P.string(\" \"),\n\n sep: (r) => r.comma.or(r.space).trim(P.optWhitespace),\n\n Length: (r) =>\n P.seq(utils.number, r.lengthUnit).map(([value, unit]) => {\n let superType = [\"length\"];\n if (RELATIVE_LENGTH_UNITS.includes(unit)) {\n superType.push(\"relative\");\n } else if (ABSOLUTE_LENGTH_UNITS.includes(unit)) {\n superType.push(\"absolute\");\n }\n return new ValueUnit(value, unit, superType);\n }),\n\n Angle: (r) =>\n P.seq(utils.number, r.angleUnit).map(([value, unit]) => {\n return new ValueUnit(value, unit, [\"angle\"]);\n }),\n\n Time: (r) =>\n P.seq(utils.number, r.timeUnit).map(([value, unit]) => {\n return new ValueUnit(value, unit, [\"time\"]);\n }),\n\n TimePercentage: (r) => P.alt(r.Percentage, r.Time),\n\n Resolution: (r) =>\n P.seq(utils.number, r.resolutionUnit).map(([value, unit]) => {\n return new ValueUnit(value, unit, [\"resolution\"]);\n }),\n\n Percentage: (r) =>\n P.alt(\n P.seq(utils.number, r.percentageUnit),\n utils.istring(\"from\").map(() => [0, \"%\"]),\n utils.istring(\"to\").map(() => [100, \"%\"]),\n ).map(([value, unit]) => {\n return new ValueUnit(value, unit, [\"percentage\"]);\n }),\n\n Color: (r) => CSSColor.Value,\n\n Slash: () =>\n P.string(\"/\")\n .trim(P.optWhitespace)\n .map(() => new ValueUnit(\"/\", \"string\")),\n\n Value: (r) =>\n P.alt(\n r.Length,\n r.Angle,\n r.Time,\n r.Resolution,\n r.Percentage,\n r.Color,\n r.Slash,\n utils.number.map((x) => new ValueUnit(x)),\n utils.none.map(() => new ValueUnit(0)),\n ).trim(P.optWhitespace),\n});\n\nexport function parseCSSValueUnit(input: string): ValueUnit {\n return CSSValueUnit.Value.tryParse(input);\n}\n\nexport function parseCSSColor(input: string): ValueUnit {\n return CSSColor.Value.tryParse(input);\n}\n","import P from \"parsimmon\";\nimport { FunctionValue, ValueArray, ValueUnit } from \"../units\";\nimport { camelCaseToHyphen, hyphenToCamelCase, memoize } from \"../utils\";\nimport { CSSValueUnit } from \"./units\";\nimport * as utils from \"./utils\";\n\nconst handleFunc = (r: P.Language, name?: P.Parser<any>) => {\n return P.seq(\n name ? name : utils.identifier,\n r.FunctionArgs.wrap(r.lparen, r.rparen),\n );\n};\n\nconst handleVar = (r: P.Language) => {\n return P.string(\"var\")\n .then(r.String.trim(r.ws).wrap(r.lparen, r.rparen))\n .map((value) => {\n return new ValueUnit(value, \"var\");\n });\n};\n\nconst handleCalc = (r: P.Language) => {\n const calcContent = P.lazy(() =>\n P.alt(\n P.regexp(/[^()]+/),\n calcContent\n .atLeast(1)\n .wrap(r.lparen, r.rparen)\n .map((nested) => `(${nested.join(\" \")})`),\n ).atLeast(1),\n );\n\n return P.string(\"calc\")\n .then(\n P.alt(\n r.Value.trim(r.ws)\n .wrap(r.lparen, r.rparen)\n .map((v) => v),\n calcContent.wrap(r.lparen, r.rparen).map((parts) => parts.join(\" \")),\n ),\n )\n .map((v) => {\n return v instanceof ValueUnit ? v : new ValueUnit(v, \"calc\");\n });\n};\n\nconst TRANSFORM_FUNCTIONS = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst TRANSFORM_DIMENSIONS = [\"x\", \"y\", \"z\"];\n\nconst transformDimensions = TRANSFORM_DIMENSIONS.map(utils.istring);\nconst transformFunctions = TRANSFORM_FUNCTIONS.map(utils.istring);\n\nconst handleTransform = (r: P.Language) => {\n const nameParser = P.seq(\n P.alt(...transformFunctions),\n P.alt(...transformDimensions, P.string(\"\")),\n );\n\n const makeTransformName = (name: string, dim: string) => {\n return name + dim.toUpperCase();\n };\n\n const p = handleFunc(r, nameParser);\n\n return p.map(([[name, dim], values]: [string[], ValueUnit[]]) => {\n name = name.toLowerCase();\n\n const transformObject = {};\n\n if (dim) {\n const newName = name + dim.toUpperCase();\n transformObject[newName] = values[0];\n } else if (values.length === 1) {\n TRANSFORM_DIMENSIONS.forEach((d, i) => {\n const newName = makeTransformName(name, d);\n transformObject[newName] = values[0];\n });\n } else {\n values.forEach((v, i) => {\n const newName = makeTransformName(name, TRANSFORM_DIMENSIONS[i]);\n transformObject[newName] = v;\n });\n }\n\n const newValues = Object.entries(transformObject).map(([k, v]) => {\n return new FunctionValue(k, [v as any]);\n });\n\n return new ValueArray(...newValues);\n });\n};\n\nconst gradientDirections = {\n left: \"270\",\n right: \"90\",\n top: \"0\",\n bottom: \"180\",\n};\n\nconst handleGradient = (r: P.Language) => {\n const name = P.alt(...[\"linear-gradient\", \"radial-gradient\"].map(utils.istring));\n const sideOrCorner = P.seq(\n P.string(\"to\").skip(r.ws),\n P.alt(...[\"left\", \"right\", \"top\", \"bottom\"].map(utils.istring)),\n ).map(([to, direction]) => {\n direction = gradientDirections[direction.toLowerCase()];\n return new ValueUnit(direction, \"deg\");\n });\n\n const direction = P.alt(CSSValueUnit.Angle, sideOrCorner);\n\n const lengthPercentage = P.alt(CSSValueUnit.Length, CSSValueUnit.Percentage);\n\n const linearColorStop = P.seq(\n CSSValueUnit.Color,\n P.sepBy(lengthPercentage, r.ws),\n ).map(([color, stops]: [any, any]) => {\n if (!stops) {\n return [color];\n } else {\n return [color, ...stops];\n }\n });\n\n const colorStopList = P.seq(\n linearColorStop,\n r.comma.trim(r.ws).then(linearColorStop.or(lengthPercentage)).many(),\n ).map(([first, rest]) => {\n return [first, ...rest];\n });\n\n const linearGradient = P.seq(\n name,\n P.seq(utils.opt(direction.skip(r.comma)), colorStopList)\n .trim(r.ws)\n .wrap(r.lparen, r.rparen)\n .map(([direction, stops]) => {\n if (!direction) {\n return [stops];\n } else {\n return [direction, ...stops].flat();\n }\n }),\n ).map(([name, values]) => {\n return new FunctionValue(name, values);\n });\n\n return linearGradient;\n};\n\nconst handleCubicBezier = (r: P.Language) => {\n return handleFunc(r, P.string(\"cubic-bezier\")).map((v) => {\n return new FunctionValue(\"cubic-bezier\", v[1]);\n });\n};\n\nexport const CSSKeyframes = P.createLanguage({\n ws: () => P.optWhitespace,\n\n semi: () => P.string(\";\"),\n colon: () => P.string(\":\"),\n lcurly: () => P.string(\"{\"),\n rcurly: () => P.string(\"}\"),\n lparen: () => P.string(\"(\"),\n rparen: () => P.string(\")\"),\n\n comma: () => P.string(\",\"),\n\n Rule: (r) => P.string(\"@keyframes\").trim(r.ws).then(utils.identifier),\n\n String: () => P.regexp(/[^\\(\\)\\{\\}\\s,;]+/).map((x) => new ValueUnit(x)),\n\n FunctionArgs: (r) =>\n r.Value.sepBy(r.comma.or(r.ws))\n .trim(r.ws)\n .map((v) => new ValueArray(...v)),\n\n Function: (r) =>\n P.alt(\n handleTransform(r),\n handleVar(r),\n handleCalc(r),\n handleGradient(r),\n handleCubicBezier(r),\n handleFunc(r).map(([name, values]) => {\n return new FunctionValue(name, values);\n }),\n ),\n\n JSON: (r) =>\n P.seq(r.lcurly, P.regexp(/[^{}]+/), r.rcurly).map((x) => {\n const s = x.join(\"\\n\");\n let obj = eval(\"(\" + s + \")\");\n return new ValueUnit(obj, \"json\");\n }),\n\n Value: (r) => P.alt(CSSValueUnit.Value, r.Function, r.JSON, r.String).trim(r.ws),\n\n Values: (r) => r.Value.sepBy(r.ws),\n\n Variables: (r) =>\n P.seq(\n utils.identifier\n .skip(r.colon)\n .trim(r.ws)\n .map((x) => hyphenToCamelCase(x)),\n r.Values.skip(r.semi).trim(r.ws),\n ).map(([name, values]) => {\n values = new ValueArray(...values).flat();\n\n values.setProperty(name);\n\n return {\n [name]: values,\n };\n }),\n\n TimePercentage: (r) =>\n CSSValueUnit.TimePercentage.trim(r.ws).map((v) => {\n return v.toString();\n }),\n TimePercentages: (r) => r.TimePercentage.sepBy(r.comma).trim(r.ws),\n\n Body: (r) =>\n r.Variables.many()\n .trim(r.ws)\n .wrap(r.lcurly, r.rcurly)\n .map((values) => Object.assign({}, ...values)),\n\n Keyframe: (r) =>\n P.seq(r.TimePercentages, r.Body).map(([percents, values]) => {\n return percents.reduce((acc, percent) => {\n acc.set(percent, values);\n return acc;\n }, new Map<string, any>());\n }),\n Keyframes: (r) =>\n P.alt(\n r.Rule.then(\n r.Keyframe.atLeast(1).trim(r.ws).wrap(r.lcurly, r.rcurly).trim(r.ws),\n ),\n r.Keyframe.atLeast(1).trim(r.ws),\n ).map((keyframes) => {\n return keyframes.reduce((acc, keyframe) => {\n for (let [percent, values] of keyframe) {\n if (!acc.has(percent)) {\n acc.set(percent, values);\n } else {\n acc.set(percent, { ...acc.get(percent), ...values });\n }\n }\n return acc;\n }, new Map<string, any[]>());\n }),\n});\n\nexport const CSSClass = P.createLanguage({\n ws: () => P.optWhitespace,\n\n semi: () => P.string(\";\"),\n colon: () => P.string(\":\"),\n lcurly: () => P.string(\"{\"),\n rcurly: () => P.string(\"}\"),\n lparen: () => P.string(\"(\"),\n rparen: () => P.string(\")\"),\n\n comma: () => P.string(\",\"),\n dot: () => P.string(\".\"),\n\n Rule: (r) => r.dot.trim(r.ws).then(utils.identifier).trim(r.ws),\n Class: (r) =>\n r.Rule.then(\n CSSKeyframes.Body.map((values) => {\n const options = {};\n\n for (let [key, value] of Object.entries(values)) {\n if (key.includes(\"animation\")) {\n const newKey = key\n .replace(/^animation/i, \"\")\n .replace(/^\\w/, (c) => c.toLowerCase());\n\n const newValue = camelCaseToHyphen(value.toString());\n options[newKey] = newValue;\n\n delete values[key];\n }\n }\n\n return {\n options,\n values,\n };\n }),\n ),\n});\n\nexport const CSSAnimationKeyframes = P.createLanguage({\n ws: () => P.optWhitespace,\n Value: (r) =>\n P.alt(\n CSSClass.Class.or(P.whitespace).map((value) => {\n return value;\n }),\n CSSKeyframes.Keyframes.map((value) => {\n return {\n keyframes: value,\n };\n }),\n ),\n Values: (r) =>\n r.Value.sepBy(r.ws).map((values) => {\n {\n return Object.assign({}, ...values);\n }\n }),\n});\n\nexport const parseCSSKeyframesValue = memoize(\n (input: string): ValueUnit | FunctionValue => {\n return CSSKeyframes.Value.tryParse(input);\n },\n);\n\nexport const parseCSSKeyframes = memoize(\n (input: string): Map<string, any> => CSSKeyframes.Keyframes.tryParse(input),\n);\n\nexport const parseCSSAnimationKeyframes = memoize((input: string) => {\n const { options, values, keyframes } = CSSAnimationKeyframes.Values.tryParse(input);\n return {\n options,\n values,\n keyframes,\n };\n});\n\nexport const parseCSSPercent = memoize((input: string | number): number =>\n CSSKeyframes.Percent.tryParse(String(input)),\n);\n\nexport const parseCSSTime = memoize((input: string) => {\n return CSSValueUnit.Time.map((v: ValueUnit) => {\n if (v.unit === \"ms\") {\n return v.value;\n } else if (v.unit === \"s\") {\n return v.value * 1000;\n } else {\n return v.value;\n }\n }).tryParse(input) as number;\n});\n\nexport const reverseCSSTime = memoize((time: number): string => {\n if (time >= 5000) {\n return `${time / 1000}s`;\n } else {\n return `${time}ms`;\n }\n});\n\nexport const reverseCSSIterationCount = memoize((count: number): string => {\n if (count === Infinity) {\n return \"infinite\";\n } else {\n return String(count);\n }\n});\n","import { easeInOutCubic, timingFunctions } from \"../easing\";\nimport { ValueArray, ValueUnit } from \"../units\";\n\nconst DIRECTIONS = [\"normal\", \"reverse\", \"alternate\", \"alternate-reverse\"] as const;\n\nconst FILL_MODES = [\"none\", \"forwards\", \"backwards\", \"both\"] as const;\n\nexport type TimingFunctionNames = keyof typeof timingFunctions;\n\nexport type Vars<T = any> = {\n [arg: string]: number | string | T;\n};\n\nexport type InterpolatedVar<T> = {\n start: T;\n stop: T;\n\n startValueUnit: ValueUnit;\n stopValueUnit: ValueUnit;\n};\n\nexport type TransformFunction<V extends Vars> = (t: number, v: V) => void;\n\nexport type TimingFunction = (t: number) => number;\n\nexport interface TemplateAnimationFrame<V extends Vars> {\n id: number;\n start: ValueUnit;\n vars: V;\n\n transform?: TransformFunction<V>;\n timingFunction?: TimingFunction;\n}\n\nexport interface AnimationFrame<V extends Vars> {\n id: number;\n\n ixs: {\n start: number;\n stop: number;\n };\n\n time: {\n start: number;\n stop: number;\n };\n\n vars: V;\n\n interpVars: {\n [arg: string]: Array<InterpolatedVar<V>>;\n };\n\n transform: TransformFunction<V>;\n\n timingFunction: TimingFunction;\n}\n\nexport type AnimationOptions = {\n duration: number;\n\n delay: number;\n\n iterationCount: number;\n\n direction: (typeof DIRECTIONS)[number];\n\n fillMode: (typeof FILL_MODES)[number];\n\n timingFunction: TimingFunction;\n};\n\nexport type InputAnimationOptions = Partial<{\n duration: number | string;\n delay: number | string;\n\n iterationCount: number | string | \"infinite\" | undefined;\n\n direction: (typeof DIRECTIONS)[number];\n fillMode: (typeof FILL_MODES)[number];\n\n timingFunction: TimingFunction | TimingFunctionNames | undefined;\n}>;\n\nexport const defaultOptions: AnimationOptions = {\n duration: 1000,\n delay: 0,\n iterationCount: 1,\n direction: \"normal\",\n fillMode: \"forwards\",\n timingFunction: easeInOutCubic,\n};\n","import { Animation, getAnimationId } from \".\";\nimport { ValueArray } from \"../units\";\nimport { TransformFunction, Vars } from \"./constants\";\n\nexport interface AnimationGroupObject<V> {\n [key: string]: {\n animation: Animation<V>;\n values: Vars<ValueArray>;\n };\n}\n\nexport class AnimationGroup<V> {\n animations: AnimationGroupObject<V> = {};\n transform: TransformFunction<V>;\n\n superKey: string | undefined;\n\n paused = false;\n started = false;\n done = false;\n\n singleTarget = true;\n\n handleId: number | any = undefined;\n resolvePromise: ((value: void | PromiseLike<void>) => void) | null = null;\n\n constructor(...animations: Animation<V>[]) {\n for (const animation of animations) {\n this.transform ??= animation.frames[0].transform;\n\n const name = getAnimationId(animation);\n\n this.animations[name] = {\n values: {},\n animation,\n };\n }\n\n this.singleTarget = animations.every(\n (animation) => animation.targets[0] === animations[0].targets[0],\n );\n }\n\n setSuperKey(superKey: string) {\n this.superKey = superKey;\n Object.values(this.animations).forEach((groupObject) => {\n groupObject.animation.superKey = superKey;\n });\n return this;\n }\n\n setTargets(...targets: HTMLElement[]) {\n Object.values(this.animations).forEach((groupObject) => {\n groupObject.animation.setTargets(...targets);\n });\n\n const animations = Object.values(this.animations).map(\n (groupObject) => groupObject.animation,\n );\n\n this.singleTarget = animations.every(\n (animation) => animation.targets[0] === animations[0].targets[0],\n );\n\n return this;\n }\n\n onStart() {\n this.started = true;\n return this;\n }\n\n onEnd() {\n return this;\n }\n\n transformFramesGrouped(t: number) {\n let groupedValues: Vars<ValueArray> = {};\n\n let done = true;\n for (const groupObject of Object.values(this.animations)) {\n const { animation, values } = groupObject;\n\n done = done && animation.done;\n\n if (!(animation.done || animation.paused)) {\n const vars = animation.interpFrames(animation.t, false);\n\n Object.assign(values, vars);\n }\n\n groupedValues = {\n ...groupedValues,\n ...values,\n };\n }\n\n this.done = done;\n\n this.transform(t, groupedValues as V);\n\n return groupedValues;\n }\n\n async tick(t: number) {\n if (!this.started) {\n this.onStart();\n }\n\n Object.values(this.animations).forEach(async (groupObject) => {\n if (\n !groupObject.animation.paused ||\n groupObject.animation.pausedTime === 0\n ) {\n await groupObject.animation.tick(t);\n }\n });\n\n if (this.done) {\n this.onEnd();\n }\n\n return this;\n }\n\n async draw(t: number) {\n await this.tick(t);\n\n if (this.paused) {\n return;\n }\n\n if (this.singleTarget) {\n this.transformFramesGrouped(t);\n } else {\n this.done = Object.values(this.animations)\n .map(({ animation }) => {\n animation.transformFrames(animation.t);\n return animation;\n })\n .every((animation) => animation.done);\n }\n\n if (!this.done) {\n this.handleId = requestAnimationFrame(this.draw.bind(this));\n } else {\n this.reset();\n if (this.resolvePromise) {\n this.resolvePromise();\n }\n }\n }\n\n async play() {\n return new Promise((resolve) => {\n this.resolvePromise = resolve;\n this.handleId = requestAnimationFrame(this.draw.bind(this));\n });\n }\n\n pause() {\n const prevPaused = this.paused;\n\n if (this.started) {\n this.paused = !this.paused;\n Object.values(this.animations).forEach((groupObject) => {\n groupObject.animation.pause(false);\n });\n }\n\n if (prevPaused) {\n requestAnimationFrame(this.draw.bind(this));\n }\n\n return this;\n }\n\n reset() {\n Object.values(this.animations).forEach((groupObject) => {\n groupObject.animation.reset();\n });\n\n this.started = false;\n this.done = false;\n this.paused = false;\n\n return this;\n }\n\n stop() {\n cancelAnimationFrame(this.handleId);\n this.reset();\n\n return this;\n }\n\n playing() {\n return !(!this.started || this.paused);\n }\n\n forcePause() {\n this.paused = true;\n Object.values(this.animations).forEach((groupObject) => {\n groupObject.animation.paused = true;\n });\n }\n\n forcePlay() {\n this.paused = false;\n Object.values(this.animations).forEach((groupObject) => {\n groupObject.animation.paused = false;\n });\n }\n}\n","import { V } from \"vite/dist/node/types.d-aGj9QkWt\";\nimport { ValueUnit } from \"..\";\nimport { scale } from \"../../math\";\nimport {\n Color,\n ColorSpace,\n ColorSpaceMap,\n HSLColor,\n HSVColor,\n HWBColor,\n LABColor,\n LCHColor,\n OKLABColor,\n OKLCHColor,\n RGBColor,\n XYZColor,\n color2,\n} from \"./utils\";\n\n// Constants for color space ranges\nconst COLOR_RANGES = {\n RGB: {\n r: { min: 0, max: 255 },\n g: { min: 0, max: 255 },\n b: { min: 0, max: 255 },\n percentage: { min: 0, max: 100 },\n },\n HSL: {\n h: { deg: { min: 0, max: 360 }, percentage: { min: 0, max: 100 } },\n s: { percentage: { min: 0, max: 100 } },\n l: { percentage: { min: 0, max: 100 } },\n },\n HSV: {\n h: { deg: { min: 0, max: 360 }, percentage: { min: 0, max: 100 } },\n s: { percentage: { min: 0, max: 100 } },\n v: { percentage: { min: 0, max: 100 } },\n },\n HWB: {\n h: { deg: { min: 0, max: 360 }, percentage: { min: 0, max: 100 } },\n w: { percentage: { min: 0, max: 100 } },\n b: { percentage: { min: 0, max: 100 } },\n },\n LAB: {\n l: { percentage: { min: 0, max: 100 } },\n a: { number: { min: -125, max: 125 }, percentage: { min: -100, max: 100 } },\n b: { number: { min: -125, max: 125 }, percentage: { min: -100, max: 100 } },\n },\n LCH: {\n l: { percentage: { min: 0, max: 100 } },\n c: { number: { min: 0, max: 230 }, percentage: { min: 0, max: 100 } },\n h: { deg: { min: 0, max: 360 }, percentage: { min: 0, max: 100 } },\n },\n OKLAB: {\n l: { percentage: { min: 0, max: 100 } },\n a: { number: { min: -0.4, max: 0.4 }, percentage: { min: -100, max: 100 } },\n b: { number: { min: -0.4, max: 0.4 }, percentage: { min: -100, max: 100 } },\n },\n OKLCH: {\n l: { percentage: { min: 0, max: 100 } },\n c: { number: { min: 0, max: 0.5 }, percentage: { min: 0, max: 100 } },\n h: { deg: { min: 0, max: 360 }, percentage: { min: 0, max: 100 } },\n },\n XYZ: {\n x: { percentage: { min: 0, max: 100 } },\n y: { percentage: { min: 0, max: 100 } },\n z: { percentage: { min: 0, max: 100 } },\n },\n ALPHA: { percentage: { min: 0, max: 100 } },\n} as const;\n\nconst normalizeValue = (value: number, min: number, max: number) =>\n scale(value, min, max, 0, 1);\n\nconst denormalizeValue = (normalizedValue: number, min: number, max: number) =>\n scale(normalizedValue, 0, 1, min, max);\n\n// Alpha normalization and denormalization\nconst normalizeAlpha = (v: ValueUnit) => {\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.ALPHA.percentage.min,\n COLOR_RANGES.ALPHA.percentage.max,\n );\n return v.value;\n};\nconst denormalizeAlpha = (v: number) =>\n new ValueUnit(\n denormalizeValue(\n v,\n COLOR_RANGES.ALPHA.percentage.min,\n COLOR_RANGES.ALPHA.percentage.max,\n ),\n \"%\",\n );\n\n// RGB normalization and denormalization\nconst normalizeRGB = (v: ValueUnit, component: \"r\" | \"g\" | \"b\") => {\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.RGB.percentage.min,\n COLOR_RANGES.RGB.percentage.max,\n );\n return normalizeValue(\n v.value,\n COLOR_RANGES.RGB[component].min,\n COLOR_RANGES.RGB[component].max,\n );\n};\nconst denormalizeRGB = (v: number, component: \"r\" | \"g\" | \"b\") =>\n new ValueUnit(\n Math.round(\n denormalizeValue(\n v,\n COLOR_RANGES.RGB[component].min,\n COLOR_RANGES.RGB[component].max,\n ),\n ),\n \"\",\n );\n\n// Hue normalization and denormalization\nconst normalizeHue = (v: ValueUnit) => {\n if (v.unit === \"deg\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.HSL.h.deg.min,\n COLOR_RANGES.HSL.h.deg.max,\n );\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.HSL.h.percentage.min,\n COLOR_RANGES.HSL.h.percentage.max,\n );\n return v.value;\n};\nconst denormalizeHue = (v: number) =>\n new ValueUnit(\n Math.round(\n denormalizeValue(v, COLOR_RANGES.HSL.h.deg.min, COLOR_RANGES.HSL.h.deg.max),\n ),\n \"deg\",\n );\n\n// Color percentage normalization and denormalization\nconst normalizeColorPercentage = (v: ValueUnit) =>\n normalizeValue(\n v.value,\n COLOR_RANGES.RGB.percentage.min,\n COLOR_RANGES.RGB.percentage.max,\n );\nconst denormalizeColorPercentage = (v: number) =>\n new ValueUnit(\n denormalizeValue(\n v,\n COLOR_RANGES.RGB.percentage.min,\n COLOR_RANGES.RGB.percentage.max,\n ),\n \"%\",\n );\n\n// LAB normalization and denormalization\nconst normalizeAB = (v: ValueUnit, component: \"a\" | \"b\") => {\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.LAB[component].percentage.min,\n COLOR_RANGES.LAB[component].percentage.max,\n );\n return normalizeValue(\n v.value,\n COLOR_RANGES.LAB[component].number.min,\n COLOR_RANGES.LAB[component].number.max,\n );\n};\nconst denormalizeAB = (v: number, component: \"a\" | \"b\") =>\n new ValueUnit(\n denormalizeValue(\n v,\n COLOR_RANGES.LAB[component].number.min,\n COLOR_RANGES.LAB[component].number.max,\n ),\n \"\",\n );\n\n// LCH normalization and denormalization\nconst normalizeC = (v: ValueUnit) => {\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.LCH.c.percentage.min,\n COLOR_RANGES.LCH.c.percentage.max,\n );\n return normalizeValue(\n v.value,\n COLOR_RANGES.LCH.c.number.min,\n COLOR_RANGES.LCH.c.number.max,\n );\n};\nconst denormalizeC = (v: number) =>\n new ValueUnit(\n denormalizeValue(\n v,\n COLOR_RANGES.LCH.c.number.min,\n COLOR_RANGES.LCH.c.number.max,\n ),\n \"\",\n );\n\n// OKLAB normalization and denormalization\nconst normalizeOKAB = (v: ValueUnit, component: \"a\" | \"b\") => {\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.OKLAB[component].percentage.min,\n COLOR_RANGES.OKLAB[component].percentage.max,\n );\n return normalizeValue(\n v.value,\n COLOR_RANGES.OKLAB[component].number.min,\n COLOR_RANGES.OKLAB[component].number.max,\n );\n};\nconst denormalizeOKAB = (v: number, component: \"a\" | \"b\") =>\n new ValueUnit(\n denormalizeValue(\n v,\n COLOR_RANGES.OKLAB[component].number.min,\n COLOR_RANGES.OKLAB[component].number.max,\n ),\n \"\",\n );\n\n// OKLCH normalization and denormalization\nconst normalizeOKC = (v: ValueUnit) => {\n if (v.unit === \"%\")\n return normalizeValue(\n v.value,\n COLOR_RANGES.OKLCH.c.percentage.min,\n COLOR_RANGES.OKLCH.c.percentage.max,\n );\n return normalizeValue(\n v.value,\n COLOR_RANGES.OKLCH.c.number.min,\n COLOR_RANGES.OKLCH.c.number.max,\n );\n};\nconst denormalizeOKC = (v: number) =>\n new ValueUnit(\n denormalizeValue(\n v,\n COLOR_RANGES.OKLCH.c.number.min,\n COLOR_RANGES.OKLCH.c.number.max,\n ),\n \"\",\n );\n\nexport const normalizeRGBValueUnits = (rgb: RGBColor<ValueUnit<number>>): RGBColor => ({\n r: normalizeRGB(rgb.r, \"r\"),\n g: normalizeRGB(rgb.g, \"g\"),\n b: normalizeRGB(rgb.b, \"b\"),\n alpha: normalizeAlpha(rgb.alpha),\n});\n\nexport const normalizeHSLValueUnits = (hsl: HSLColor<ValueUnit<number>>): HSLColor => ({\n h: normalizeHue(hsl.h),\n s: normalizeColorPercentage(hsl.s),\n l: normalizeColorPercentage(hsl.l),\n alpha: normalizeAlpha(hsl.alpha),\n});\n\nexport const normalizeHSVValueUnits = (hsv: HSVColor<ValueUnit<number>>): HSVColor => ({\n h: normalizeHue(hsv.h),\n s: normalizeColorPercentage(hsv.s),\n v: normalizeColorPercentage(hsv.v),\n alpha: normalizeAlpha(hsv.alpha),\n});\n\nexport const normalizeHWBValueUnits = (hwb: HWBColor<ValueUnit<number>>): HWBColor => ({\n h: normalizeHue(hwb.h),\n w: normalizeColorPercentage(hwb.w),\n b: normalizeColorPercentage(hwb.b),\n alpha: normalizeAlpha(hwb.alpha),\n});\n\nexport const normalizeLABValueUnits = (lab: LABColor<ValueUnit<number>>): LABColor => ({\n l: normalizeColorPercentage(lab.l),\n a: normalizeAB(lab.a, \"a\"),\n b: normalizeAB(lab.b, \"b\"),\n alpha: normalizeAlpha(lab.alpha),\n});\n\nexport const normalizeLCHValueUnits = (lch: LCHColor<ValueUnit<number>>): LCHColor => ({\n l: normalizeColorPercentage(lch.l),\n c: normalizeC(lch.c),\n h: normalizeHue(lch.h),\n alpha: normalizeAlpha(lch.alpha),\n});\n\nexport const normalizeOKLABValueUnits = (\n oklab: OKLABColor<ValueUnit<number>>,\n): OKLABColor => ({\n l: normalizeColorPercentage(oklab.l),\n a: normalizeOKAB(oklab.a, \"a\"),\n b: normalizeOKAB(oklab.b, \"b\"),\n alpha: normalizeAlpha(oklab.alpha),\n});\n\nexport const normalizeOKLCHValueUnits = (\n oklch: OKLCHColor<ValueUnit<number>>,\n): OKLCHColor => ({\n l: normalizeColorPercentage(oklch.l),\n c: normalizeOKC(oklch.c),\n h: normalizeHue(oklch.h),\n alpha: normalizeAlpha(oklch.alpha),\n});\n\nexport const normalizeXYZValueUnits = (xyz: XYZColor<ValueUnit<number>>): XYZColor => ({\n x: normalizeColorPercentage(xyz.x),\n y: normalizeColorPercentage(xyz.y),\n z: normalizeColorPercentage(xyz.z),\n alpha: normalizeAlpha(xyz.alpha),\n});\n\n// Denormalization functions for each color space\nexport const denormalizeRGBValueUnits = (\n rgb: RGBColor,\n): RGBColor<ValueUnit<number>> => ({\n r: denormalizeRGB(rgb.r, \"r\"),\n g: denormalizeRGB(rgb.g, \"g\"),\n b: denormalizeRGB(rgb.b, \"b\"),\n alpha: denormalizeAlpha(rgb.alpha),\n});\n\nexport const denormalizeHSLValueUnits = (\n hsl: HSLColor,\n): HSLColor<ValueUnit<number>> => ({\n h: denormalizeHue(hsl.h),\n s: denormalizeColorPercentage(hsl.s),\n l: denormalizeColorPercentage(hsl.l),\n alpha: denormalizeAlpha(hsl.alpha),\n});\n\nexport const denormalizeHSVValueUnits = (\n hsv: HSVColor,\n): HSVColor<ValueUnit<number>> => ({\n h: denormalizeHue(hsv.h),\n s: denormalizeColorPercentage(hsv.s),\n v: denormalizeColorPercentage(hsv.v),\n alpha: denormalizeAlpha(hsv.alpha),\n});\n\nexport const denormalizeHWBValueUnits = (\n hwb: HWBColor,\n): HWBColor<ValueUnit<number>> => ({\n h: denormalizeHue(hwb.h),\n w: denormalizeColorPercentage(hwb.w),\n b: denormalizeColorPercentage(hwb.b),\n alpha: denormalizeAlpha(hwb.alpha),\n});\n\nexport const denormalizeLABValueUnits = (\n lab: LABColor,\n): LABColor<ValueUnit<number>> => ({\n l: denormalizeColorPercentage(lab.l),\n a: denormalizeAB(lab.a, \"a\"),\n b: denormalizeAB(lab.b, \"b\"),\n alpha: denormalizeAlpha(lab.alpha),\n});\n\nexport const denormalizeLCHValueUnits = (\n lch: LCHColor,\n): LCHColor<ValueUnit<number>> => ({\n l: denormalizeColorPercentage(lch.l),\n c: denormalizeC(lch.c),\n h: denormalizeHue(lch.h),\n alpha: denormalizeAlpha(lch.alpha),\n});\n\nexport const denormalizeOKLABValueUnits = (\n oklab: OKLABColor,\n): OKLABColor<ValueUnit<number>> => ({\n l: denormalizeColorPercentage(oklab.l),\n a: denormalizeOKAB(oklab.a, \"a\"),\n b: denormalizeOKAB(oklab.b, \"b\"),\n alpha: denormalizeAlpha(oklab.alpha),\n});\n\nexport const denormalizeOKLCHValueUnits = (\n oklch: OKLCHColor,\n): OKLCHColor<ValueUnit<number>> => ({\n l: denormalizeColorPercentage(oklch.l),\n c: denormalizeOKC(oklch.c),\n h: denormalizeHue(oklch.h),\n alpha: denormalizeAlpha(oklch.alpha),\n});\n\nexport const denormalizeXYZValueUnits = (\n xyz: XYZColor,\n): XYZColor<ValueUnit<number>> => ({\n x: denormalizeColorPercentage(xyz.x),\n y: denormalizeColorPercentage(xyz.y),\n z: denormalizeColorPercentage(xyz.z),\n alpha: denormalizeAlpha(xyz.alpha),\n});\n\nexport const normalizeColorUnit = (color: ValueUnit) => {\n const value = color.value;\n const colorType = (color.superType?.[1] ?? \"rgb\") as ColorSpace;\n\n const normalizedValue = (() => {\n switch (colorType) {\n case \"rgb\":\n return normalizeRGBValueUnits(value);\n case \"hsl\":\n return normalizeHSLValueUnits(value);\n case \"hsv\":\n return normalizeHSVValueUnits(value);\n case \"hwb\":\n return normalizeHWBValueUnits(value);\n case \"lab\":\n return normalizeLABValueUnits(value);\n case \"lch\":\n return normalizeLCHValueUnits(value);\n case \"oklab\":\n return normalizeOKLABValueUnits(value);\n case \"oklch\":\n return normalizeOKLCHValueUnits(value);\n case \"xyz\":\n return normalizeXYZValueUnits(value);\n default:\n return value;\n }\n })();\n\n return new ValueUnit(\n normalizedValue,\n color.unit,\n color.superType ?? [\"color\", colorType],\n color.subProperty,\n color.property,\n color.targets,\n ) as ValueUnit<Color, \"color\">;\n};\n\nexport const denormalizeColorUnit = (color: ValueUnit) => {\n const value = color.value;\n const colorType = color.superType?.[1] ?? \"rgb\";\n\n const denormalizedValue = (() => {\n switch (colorType) {\n case \"rgb\":\n return denormalizeRGBValueUnits(value);\n case \"hsl\":\n return denormalizeHSLValueUnits(value);\n case \"hsv\":\n return denormalizeHSVValueUnits(value);\n case \"hwb\":\n return denormalizeHWBValueUnits(value);\n case \"lab\":\n return denormalizeLABValueUnits(value);\n case \"lch\":\n return denormalizeLCHValueUnits(value);\n case \"oklab\":\n return denormalizeOKLABValueUnits(value);\n case \"oklch\":\n return denormalizeOKLCHValueUnits(value);\n case \"xyz\":\n return denormalizeXYZValueUnits(value);\n default:\n return value;\n }\n })();\n\n return new ValueUnit(\n denormalizedValue,\n color.unit,\n color.superType ?? [\"color\", colorType],\n color.subProperty,\n color.property,\n color.targets,\n ) as ValueUnit<Color, \"color\">;\n};\n\nexport const normalizeColorUnits = (\n a: ValueUnit<Color, \"color\">,\n b: ValueUnit<Color, \"color\">,\n) => {\n const to = \"lab\" as ColorSpace;\n\n const [newA, newB] = [normalizeColorUnit(a), normalizeColorUnit(b)];\n const [normA, normB] = [color2(newA.value, to), color2(newB.value, to)];\n\n return [\n new ValueUnit(\n normA,\n \"color\",\n [\"color\", to as ColorSpace],\n a.subProperty,\n a.property,\n a.targets,\n ),\n new ValueUnit(\n normB,\n \"color\",\n [\"color\", to as ColorSpace],\n b.subProperty,\n b.property,\n b.targets,\n ),\n ];\n};\n","import { ValueUnit } from \".\";\nimport { parseCSSKeyframesValue } from \"../parsing/keyframes\";\nimport { parseCSSValueUnit } from \"../parsing/units\";\nimport { memoize } from \"../utils\";\nimport { normalizeColorUnits } from \"./color/normalize\";\nimport {\n convertToDegrees,\n convertToDPI,\n convertToMs,\n convertToPixels,\n isColorUnit,\n unpackMatrixValues,\n} from \"./utils\";\n\nexport const getComputedValue = memoize((value: ValueUnit, target: HTMLElement) => {\n const get = () => {\n if (value.unit === \"var\") {\n const computed = getComputedStyle(target).getPropertyValue(\n value.toString(),\n );\n return parseCSSValueUnit(computed);\n }\n\n if (\n value.unit === \"calc\" &&\n value.property &&\n value.subProperty &&\n value.value &&\n target\n ) {\n const originalValue = target.style[value.property];\n\n const newValue = value.subProperty\n ? `${value.subProperty}(${value.toString()})`\n : value.toString();\n\n target.style[value.property] = newValue;\n\n const computed = getComputedStyle(target).getPropertyValue(value.property);\n\n target.style[value.property] = originalValue;\n\n const p = parseCSSKeyframesValue(computed);\n\n if (p instanceof ValueUnit) {\n return p;\n }\n\n if (p.name.startsWith(\"matrix\")) {\n const matrixValues = unpackMatrixValues(p);\n\n const matrixSubValue = matrixValues[value.subProperty];\n\n if (matrixSubValue != null) {\n return new ValueUnit(matrixSubValue, \"px\", [\"length\", \"absolute\"]);\n }\n }\n }\n\n return value;\n };\n\n const newValue = get();\n\n return newValue.coalesce(value);\n});\n\nexport const normalizeNumericUnits = (\n a: ValueUnit,\n b: ValueUnit,\n): [ValueUnit, ValueUnit] => {\n if (a?.superType?.[0] !== b?.superType?.[0]) {\n return [a, b];\n }\n\n const convertToNormalizedUnit = (\n value: ValueUnit,\n ): { value: number; unit: string } => {\n const superType = value?.superType?.[0];\n\n switch (superType) {\n case \"length\":\n return {\n value: convertToPixels(value.value, value.unit, value.targets?.[0]),\n unit: \"px\",\n };\n case \"angle\":\n return {\n value: convertToDegrees(value.value, value.unit as any),\n unit: \"deg\",\n };\n case \"time\":\n return {\n value: convertToMs(value.value, value.unit as any),\n unit: \"ms\",\n };\n case \"resolution\":\n return {\n value: convertToDPI(value.value, value.unit as any),\n unit: \"dpi\",\n };\n default:\n return { value: value.value, unit: value.unit };\n }\n };\n\n const [newA, newB] = [convertToNormalizedUnit(a), convertToNormalizedUnit(b)];\n\n return [\n new ValueUnit(\n newA.value,\n newA.unit,\n a.superType,\n a.subProperty,\n a.property,\n a.targets,\n ),\n new ValueUnit(\n newB.value,\n newB.unit,\n b.superType,\n b.subProperty,\n b.property,\n b.targets,\n ),\n ];\n};\n\nexport function normalizeValueUnits(left: ValueUnit, right: ValueUnit) {\n left = left.coalesce(right);\n right = right.coalesce(left);\n\n const out = {\n start: left.value,\n stop: right.value,\n\n startValueUnit: left,\n stopValueUnit: right,\n };\n\n if (left.unit === \"string\") {\n out.start = left.value;\n out.stop = left.value;\n }\n if (right.unit === \"string\") {\n out.start = right.value;\n out.stop = right.value;\n }\n\n if (isColorUnit(left) && isColorUnit(right)) {\n const [leftCollapsed, rightCollapsed] = normalizeColorUnits(left, right);\n\n out.start = leftCollapsed.value;\n out.stop = rightCollapsed.value;\n\n out.startValueUnit = leftCollapsed;\n out.stopValueUnit = rightCollapsed;\n }\n\n if (left.unit !== right.unit) {\n const [leftCollapsed, rightCollapsed] = normalizeNumericUnits(left, right);\n\n out.start = leftCollapsed.value;\n out.stop = rightCollapsed.value;\n\n out.startValueUnit = leftCollapsed;\n out.stopValueUnit = rightCollapsed;\n }\n\n return out;\n}\n","import { timingFunctions } from \"@src/easing\";\nimport { clamp, lerp } from \"../math\";\nimport { CSSKeyframes } from \"../parsing/keyframes\";\nimport { FunctionValue, ValueArray, ValueUnit } from \"../units\";\nimport { COMPUTED_UNITS } from \"../units/constants\";\nimport { getComputedValue, normalizeValueUnits } from \"../units/normalize\";\nimport { flattenObject, isCSSStyleName, unflattenObjectToString } from \"../units/utils\";\nimport { seekPreviousValue } from \"../utils\";\nimport {\n AnimationFrame,\n InterpolatedVar,\n TemplateAnimationFrame,\n TimingFunction,\n TimingFunctionNames,\n Vars,\n} from \"./constants\";\n\nexport const getTimingFunction = (\n timingFunction: TimingFunction | TimingFunctionNames | undefined,\n): TimingFunction | undefined => {\n if (typeof timingFunction === \"string\") {\n return timingFunctions[timingFunction] as TimingFunction | undefined;\n } else if (timingFunction == null) {\n return undefined;\n }\n\n return timingFunction;\n};\n\nexport function lerpComputedValue<T>(t: number, value: InterpolatedVar<T>) {\n const { start, stop, startValueUnit, stopValueUnit } = value;\n\n startValueUnit.value = start;\n stopValueUnit.value = stop;\n\n const newstartValueUnit = getComputedValue(\n startValueUnit,\n startValueUnit.targets?.[0],\n );\n const newRightValueUnit = getComputedValue(\n stopValueUnit,\n stopValueUnit.targets?.[0],\n );\n\n startValueUnit.value = lerp(\n t,\n newstartValueUnit.value,\n newRightValueUnit.value,\n ) as any;\n}\n\nexport function lerpObject<T>(t: number, value: InterpolatedVar<T>) {\n const { start, stop, startValueUnit } = value;\n\n Object.keys(start).forEach((key) => {\n startValueUnit.value[key] = lerp(t, start[key], stop[key]);\n });\n}\n\nexport function lerpValue<T>(t: number, value: InterpolatedVar<T>) {\n const { start, stop, startValueUnit, stopValueUnit } = value;\n\n if (typeof start === \"number\" && typeof stop === \"number\") {\n startValueUnit.value = lerp(t, start, stop);\n } else if (\n COMPUTED_UNITS.includes(startValueUnit.unit) ||\n COMPUTED_UNITS.includes(stopValueUnit.unit)\n ) {\n lerpComputedValue(t, value);\n } else if (startValueUnit.unit === \"color\") {\n lerpObject(t, value);\n }\n\n return startValueUnit;\n}\n\nexport function parseAndFlattenObject(input: any) {\n const flat = flattenObject(input);\n\n const parse = (key: string, childKey: string, value: any) => {\n const p = CSSKeyframes.FunctionArgs.map((v: Array<ValueUnit>) => {\n if (isCSSStyleName(childKey)) {\n return v;\n } else {\n return new FunctionValue(childKey, v);\n }\n })\n .or(CSSKeyframes.Value)\n .tryParse(String(value)) as ValueUnit | ValueArray | FunctionValue;\n\n const mainKey = key.split(\".\").shift();\n\n p.setProperty(mainKey);\n\n return [key, p];\n };\n\n const parsedVars = Object.entries(flat)\n .map(([key, value]) => {\n if (\n value instanceof ValueUnit ||\n value instanceof FunctionValue ||\n value instanceof ValueArray\n ) {\n return [key, value];\n }\n\n const childKey = key.split(\".\").pop();\n\n return parse(key, childKey, value);\n })\n .reduce((acc, [key, value]) => {\n acc[key as string] = value;\n\n return acc;\n }, {});\n\n return parsedVars;\n}\n\nexport const createInterpVarValue = (\n v: string,\n startIx: number,\n endIx: number,\n vars: any[],\n) => {\n const left = vars[startIx][v];\n const right = vars[endIx][v];\n\n const maxLength = Math.max(left.length, right.length);\n\n const newLeft = left.concat(\n Array(Math.abs(maxLength - left.length)).fill(new ValueUnit(0)),\n );\n const newRight = right.concat(\n Array(Math.abs(maxLength - right.length)).fill(new ValueUnit(0)),\n );\n\n return newLeft.map((l, i) => normalizeValueUnits(l, newRight[i]));\n};\n\nexport function calcFrameTime<V extends Vars>(\n startFrame: TemplateAnimationFrame<V>,\n endFrame: TemplateAnimationFrame<V>,\n duration: number,\n) {\n const [start, stop] = [startFrame.start, endFrame.start];\n\n return {\n start: (start.value * duration) / 100,\n stop: (stop.value * duration) / 100,\n };\n}\n\n\n\nexport function transformTargetsStyle<V extends Vars>(\n t: number,\n vars: V,\n targets: HTMLElement[],\n) {\n const styleStringVars = unflattenObjectToString(vars);\n\n targets.forEach((target) => {\n Object.entries(styleStringVars).forEach(([key, value]) => {\n target.style.setProperty(key, value);\n });\n });\n}\n","import { convertToMs } from \"@src/units/utils\";\nimport { easeInOutCubic } from \"../easing\";\nimport { clamp, scale } from \"../math\";\nimport { parseCSSKeyframes, parseCSSTime } from \"../parsing/keyframes\";\nimport { parseCSSValueUnit } from \"../parsing/units\";\nimport { ValueUnit } from \"../units\";\nimport { requestAnimationFrame, seekPreviousValue, sleep } from \"../utils\";\nimport {\n AnimationFrame,\n AnimationOptions,\n InputAnimationOptions,\n TemplateAnimationFrame,\n TimingFunction,\n TimingFunctionNames,\n TransformFunction,\n Vars,\n defaultOptions,\n} from \"./constants\";\nimport { AnimationGroup } from \"./group\";\nimport {\n calcFrameTime,\n createInterpVarValue,\n getTimingFunction,\n lerpValue,\n parseAndFlattenObject,\n transformTargetsStyle,\n} from \"./utils\";\n\nexport const getAnimationId = (animation: Animation | string): string => {\n if (typeof animation === \"string\") return animation;\n return animation.name ?? String(animation.id);\n};\n\nlet nextId = 0;\n\nexport class Animation<V extends Vars = any> {\n id: number = nextId++;\n name: string | undefined;\n superKey: string | undefined;\n\n targets: HTMLElement[];\n\n options: AnimationOptions;\n\n templateFrames: TemplateAnimationFrame<V>[] = [];\n parsedVars: any[] = [];\n\n frameId: number = 0;\n\n frames: AnimationFrame<V>[] = [];\n\n handleId: number | any = undefined;\n\n startTime: number | undefined = undefined;\n pausedTime: number = 0;\n prevTime: number = 0;\n t: number = 0;\n\n iteration: number = 0;\n\n started: boolean = false;\n done: boolean = false;\n reversed: boolean = false;\n paused: boolean = false;\n\n private resolvePromise: ((value: void | PromiseLike<void>) => void) | null = null;\n\n constructor(\n options?: Partial<InputAnimationOptions>,\n targets?: HTMLElement[] | HTMLElement | undefined,\n name?: string | undefined,\n superKey?: string | undefined,\n ) {\n this.setOptions({ ...defaultOptions, ...(options ?? {}) });\n\n this.targets =\n targets == null ? [] : Array.isArray(targets) ? targets : [targets];\n\n this.name = name;\n this.superKey = superKey;\n }\n\n convertFrameStart(frame: TemplateAnimationFrame<V>) {\n if (\n frame.start.unit === \"s\" ||\n frame.start.unit === \"ms\" ||\n !frame.start.unit\n ) {\n const value = convertToMs(frame.start.value, frame.start.unit);\n\n frame.start.value = (value / this.options.duration) * 100;\n frame.start.unit = \"%\";\n }\n frame.start.value = clamp(frame.start.value, 0, 100);\n\n return frame;\n }\n\n addFrame<K extends V>(\n start: number | string | ValueUnit<number>,\n vars: Partial<K>,\n transform?: TransformFunction<K>,\n timingFunction?: TimingFunction | TimingFunctionNames,\n ): Animation<K> {\n if (typeof start === \"number\") {\n start = String(start) + \"%\";\n } else if (typeof start === \"string\") {\n start = start;\n } else if (start instanceof ValueUnit) {\n start = String(start);\n }\n\n const parsedStart = parseCSSValueUnit(start);\n\n let templateFrame = {\n id: this.frameId,\n start: parsedStart,\n vars,\n transform,\n timingFunction:\n getTimingFunction(timingFunction) ?? this.options.timingFunction,\n } as TemplateAnimationFrame<K>;\n\n this.convertFrameStart(templateFrame);\n\n this.templateFrames.push(templateFrame);\n this.frameId += 1;\n\n return this as unknown as Animation<K>;\n }\n\n createFrame(startIx: number, endIx: number): AnimationFrame<V> {\n const [startFrame, endFrame] = [\n this.templateFrames[startIx],\n this.templateFrames[endIx],\n ];\n\n const ixs = {\n start: startIx,\n stop: endIx,\n };\n\n const time = calcFrameTime(startFrame, endFrame, this.options.duration);\n\n let transform = startFrame.transform;\n\n if (transform == null) {\n const transformIx = seekPreviousValue(\n startIx,\n this.frames,\n (f) => f.transform != null,\n )!;\n transform = this.frames[transformIx].transform;\n }\n\n let timingFunction = startFrame.timingFunction;\n if (timingFunction == null) {\n const timingFunctionIx = seekPreviousValue(\n startIx,\n this.frames,\n (f) => f.timingFunction != null,\n )!;\n timingFunction = this.frames[timingFunctionIx].timingFunction;\n }\n\n const id = this.frameId++;\n\n return {\n id,\n ixs,\n time,\n vars: undefined,\n interpVars: {},\n transform,\n timingFunction,\n };\n }\n\n reconcileVars(ix: number) {\n const startVars = this.parsedVars[ix];\n\n Object.keys(startVars).forEach((v) => {\n const varIx = this.parsedVars.findIndex((f, i) => i > ix && f[v] != null);\n\n if (varIx === -1) {\n return;\n }\n\n const [startIx, endIx] = [ix, varIx];\n\n const frameIx = this.frames.findIndex(\n (f) => f.ixs.start === startIx && f.ixs.stop === endIx,\n );\n const frame =\n frameIx !== -1\n ? this.frames[frameIx]\n : this.createFrame(startIx, endIx);\n\n frame.interpVars[v] = createInterpVarValue(\n v,\n startIx,\n endIx,\n this.parsedVars,\n );\n\n if (frameIx === -1) {\n this.frames.push(frame);\n }\n });\n }\n\n parseVars() {\n this.parsedVars = this.templateFrames.map((frame) => {\n return parseAndFlattenObject(frame.vars);\n });\n return this;\n }\n\n parseFrames() {\n this.frames = [];\n\n this.templateFrames.sort((a, b) => a.start.value - b.start.value);\n\n for (let i = 0; i < this.templateFrames.length - 1; i++) {\n this.frames.push(this.createFrame(i, i + 1));\n }\n\n // Perform variable reconciliation\n this.frames.forEach((_, ix) => {\n this.reconcileVars(ix);\n });\n\n // Sort frames by start time, then by stop time\n this.frames.sort((a, b) => {\n if (a.time.start === b.time.start) {\n return a.time.stop - b.time.stop;\n }\n return a.time.start - b.time.start;\n });\n\n // Filter out frames that have no interpolated variables\n this.frames = this.frames.filter(\n (frame) =>\n frame.interpVars != null && Object.keys(frame.interpVars).length > 0,\n );\n\n // Set the vars for each frame\n this.frames.forEach((frame) => {\n frame.vars = Object.entries(frame.interpVars).reduce(\n (acc, [key, value]) => {\n acc[key] = value.map((v) => v.startValueUnit);\n return acc;\n },\n {} as any,\n );\n });\n\n return this;\n }\n\n setTimingFunction(timingFunction: InputAnimationOptions[\"timingFunction\"]) {\n this.options.timingFunction =\n getTimingFunction(timingFunction) ?? easeInOutCubic;\n return this;\n }\n\n setIterationCount(iterationCount: InputAnimationOptions[\"iterationCount\"]) {\n if (\n !iterationCount ||\n iterationCount === \"infinite\" ||\n iterationCount === \"∞\" ||\n iterationCount === \"Infinity\"\n ) {\n this.options.iterationCount = Infinity;\n } else if (typeof iterationCount === \"string\") {\n this.options.iterationCount = parseFloat(iterationCount.trim());\n } else {\n this.options.iterationCount = iterationCount;\n }\n return this;\n }\n\n setDuration(duration: InputAnimationOptions[\"duration\"]) {\n if (typeof duration === \"string\") {\n duration = parseCSSTime(duration);\n }\n\n const prevDuration = this.options.duration;\n const ratio = duration / prevDuration;\n\n for (let i = 0; i < this.frames.length; i++) {\n const frame = this.frames[i];\n frame.time.start *= ratio;\n frame.time.stop *= ratio;\n }\n\n this.options.duration = duration;\n\n return this;\n }\n\n setDelay(delay: InputAnimationOptions[\"delay\"]) {\n if (typeof delay === \"string\") {\n delay = parseCSSTime(delay);\n }\n this.options.delay = delay;\n return this;\n }\n\n setDirection(direction: InputAnimationOptions[\"direction\"]) {\n this.options.direction = direction;\n return this;\n }\n\n setFillMode(fillMode: InputAnimationOptions[\"fillMode\"]) {\n this.options.fillMode = fillMode;\n return this;\n }\n\n setOptions(options: Partial<InputAnimationOptions>) {\n this.options = {} as AnimationOptions;\n\n this.setTimingFunction(options.timingFunction);\n this.setDuration(options.duration);\n this.setIterationCount(options.iterationCount);\n this.setDelay(options.delay);\n this.setDirection(options.direction);\n this.setFillMode(options.fillMode);\n\n return this;\n }\n\n parse() {\n this.parseVars().parseFrames();\n return this;\n }\n\n reverse() {\n this.reversed = !this.reversed;\n return this;\n }\n\n fillForwards() {\n this.interpFrames(this.options.duration, true);\n }\n\n fillBackwards() {\n this.interpFrames(0, true);\n }\n\n interpFrames(t: number, transformFrames: boolean = false) {\n t = this.reversed ? this.options.duration - t : t;\n\n return this.frames\n .map((frame) => {\n const { start, stop } = frame.time;\n\n if (t < start || t > stop) {\n return;\n }\n\n const scaled = scale(t, start, stop, 0, 1);\n const eased = frame.timingFunction(scaled);\n\n Object.values(frame.interpVars).forEach((values: any) => {\n values.forEach((v) => {\n lerpValue(eased, v);\n });\n });\n\n if (transformFrames) {\n frame.transform(t, frame.vars);\n }\n\n return frame.vars;\n })\n .reduce((acc, vars) => {\n return { ...acc, ...vars };\n }, {});\n }\n\n async onStart() {\n this.reversed = false;\n\n if (\n this.options.direction === \"reverse\" ||\n this.options.direction === \"alternate-reverse\" ||\n (this.options.direction === \"alternate\" && this.iteration % 2 === 1)\n ) {\n this.reverse();\n }\n\n if (this.options.fillMode === \"backwards\" || this.options.fillMode === \"both\") {\n this.fillBackwards();\n }\n\n if (this.options.delay > 0) {\n this.pause();\n await sleep(this.options.delay);\n this.pause();\n }\n\n this.started = true;\n }\n\n async onEnd() {\n if (this.options.fillMode === \"forwards\" || this.options.fillMode === \"both\") {\n this.fillForwards();\n } else if (\n this.options.fillMode === \"none\" ||\n this.options.fillMode === \"backwards\"\n ) {\n this.fillBackwards();\n }\n\n this.startTime = undefined;\n\n if (this.iteration === this.options.iterationCount - 1) {\n this.done = true;\n this.iteration = 0;\n } else {\n this.iteration += 1;\n }\n }\n\n async tick(t: number) {\n if (this.startTime === undefined) {\n await this.onStart();\n this.startTime = t + this.options.delay;\n }\n\n if (this.paused && this.pausedTime === 0) {\n this.pausedTime = t;\n return this.t;\n } else if (this.pausedTime > 0 && !this.paused) {\n const dt = t - this.pausedTime;\n this.startTime += dt;\n this.pausedTime = 0;\n }\n\n this.t = t - this.startTime;\n\n if (this.t >= this.options.duration) {\n await this.onEnd();\n this.t = this.options.duration;\n }\n return this.t;\n }\n\n async draw(t: number) {\n t = await this.tick(t);\n\n if (this.paused) {\n return;\n }\n\n this.interpFrames(t, true);\n\n if (!this.done) {\n this.handleId = requestAnimationFrame(this.draw.bind(this));\n } else {\n this.reset();\n if (this.resolvePromise) {\n this.resolvePromise();\n }\n }\n }\n\n async play(): Promise<void> {\n return new Promise((resolve) => {\n this.resolvePromise = resolve;\n this.handleId = requestAnimationFrame(this.draw.bind(this));\n });\n }\n\n pause(draw: boolean = true) {\n if (this.paused && draw) {\n this.handleId = requestAnimationFrame(this.draw.bind(this));\n }\n if (this.started) {\n this.paused = !this.paused;\n }\n return this;\n }\n\n stop() {\n cancelAnimationFrame(this.handleId);\n this.reset();\n }\n\n playing() {\n return !(!this.started || this.paused);\n }\n\n reset() {\n this.done = false;\n this.started = false;\n this.paused = false;\n\n return this;\n }\n\n setTargets(...targets: HTMLElement[]) {\n this.targets = targets;\n return this;\n }\n\n group(...animations: Animation<V>[]) {\n return new AnimationGroup<V>(this, ...animations);\n }\n}\n\nexport class CSSKeyframesAnimation<V extends Vars> extends Animation<V> {\n constructor(options?: Partial<InputAnimationOptions>, ...targets: HTMLElement[]) {\n super(options, targets);\n }\n\n fromVars(vars: V[], transform?: TransformFunction<V>) {\n transform ??= this.transform.bind(this);\n\n for (let i = 0; i < vars.length; i++) {\n const v = vars[i];\n const percent = Math.round((i / (vars.length - 1)) * 100);\n this.addFrame(percent, v, transform);\n }\n\n this.parse();\n return this;\n }\n\n fromString(keyframes: string, transform?: TransformFunction<V>) {\n transform ??= this.transform.bind(this);\n\n const p = parseCSSKeyframes(keyframes);\n\n for (const [percent, frame] of p.entries()) {\n this.addFrame(percent, frame, transform);\n this.parsedVars.push(frame);\n }\n\n this.parse();\n\n return this;\n }\n\n transform(t: number, vars: any) {\n transformTargetsStyle(t, vars, this.targets);\n }\n}\n","import { lerp } from \"@src/math\";\nimport config from \"../../tailwind.config\";\nimport { FunctionValue, ValueArray, ValueUnit } from \"../units\";\nimport { normalizeColorUnits } from \"../units/color/normalize\";\nimport { getComputedValue, normalizeNumericUnits } from \"../units/normalize\";\nimport {\n flattenObject,\n isCSSStyleName,\n unflattenObject,\n unflattenObjectToString,\n} from \"../units/utils\";\nimport { compileTailwindCss } from \"../utils\";\nimport { CSSKeyframes, parseCSSKeyframes } from \"./keyframes\";\nimport { COMPUTED_UNITS } from \"@src/units/constants\";\nimport { Color } from \"@src/units/color/utils\";\nimport { CSSKeyframesAnimation } from \"@src/animation\";\n\n// const ballAnim = /*css*/ `\n// @keyframes ball {\n// 0% {\n// color: red;\n// background-color: theme(\"colors.gray.400\");\n// border-radius: translate(scale(0), 0) 25% / 25% 25%;\n// transform: red translateX(0) translateZ(0) ;\n// }\n// 0% {\n// width: 10%;\n// }\n// 25% {\n// background-color: hsl(50% 100 50);\n// border-radius: translate(scale(2), 2) 50% / 50% 50%;\n// }\n// 1000ms {\n// transform: translate(calc(100% - 20px), calc(50vh + 10%));\n// }\n// to {\n// color: blue;\n// }\n// }`;\n\nconst ballAnim = /*css*/ `\n@keyframes identifier {\n 0% {\n top: 0;\n left: 0;\n }\n 30% {\n top: 50px;\n }\n 68%,\n 72% {\n left: 50px;\n }\n 100% {\n top: 100px;\n left: 100%;\n }\n }`;\n\nconst parsed = {\n \"0%\": {\n backgroundColor: \"gray\",\n borderRadius: [\n {\n translate: [\n {\n scale: 0,\n },\n 0,\n ],\n },\n \"25%\",\n \"/\",\n \"25%\",\n \"25%\",\n ],\n transform: [\n \"red\",\n {\n translateX: 0,\n },\n {\n translateZ: 0,\n },\n ],\n width: \"10%\",\n },\n\n \"25%\": {\n backgroundColor: \"hsl(50% 100 50)\",\n borderRadius: [\n {\n translate: [\n {\n scale: 2,\n },\n 2,\n ],\n },\n \"50%\",\n \"/\",\n \"50%\",\n \"50%\",\n ],\n },\n\n \"100%\": {\n transform: [\n {\n translate: [\n {\n calc: \"100% - 20px\",\n },\n {\n calc: \"50vh + 10%\",\n },\n ],\n },\n ],\n },\n};\n\nasync function main() {\n // const compiled = await compileTailwindCss(ballAnim, config);\n\n // const parsed = parseCSSKeyframes(compiled);\n\n // const vars = [];\n // for (const [key, value] of Object.entries(parsed)) {\n // // const flat1 = flattenObject(value);\n // const flat1 = parseAndFlattenObject(value);\n\n // const string1 = unflattenObjectToString(flat1);\n\n // console.log(key, flat1, string1);\n\n // vars.push(flat1);\n // }\n\n // const frames = [];\n\n // for (let i = 0; i < vars.length - 1; i++) {\n // const interpVars = reconcileVars(i, vars, frames);\n // if (interpVars == null) {\n // continue;\n // }\n\n // frames.push({ interpVars });\n // }\n\n // for (const frame of frames) {\n // frame.vars = Object.entries(frame.interpVars).reduce((acc, [key, value]) => {\n // // @ts-ignore\n // acc[key] = value.map((v) => v.startValueUnit);\n // return acc;\n // }, {});\n // }\n\n // for (const frame of frames) {\n // Object.values(frame.interpVars).forEach((values) => {\n // // @ts-ignore\n // values.forEach((v) => {\n // lerpValue(0.5, v);\n // });\n // });\n\n // const s = unflattenObjectToString(frame.vars);\n // const o = unflattenObject(frame.vars);\n\n // console.log(s, o);\n // }\n\n // console.log(frames);\n\n const anim = new CSSKeyframesAnimation().fromString(ballAnim);\n\n console.log(anim);\n}\n\nmain();\n"],"names":["create","picocolors_browserModule","require$$0","terminalHighlight","require$$1","CssSyntaxError","plugin","str","index","number","Stringifier","node","semicolon","string","root","stringify","isClean","my","require$$2","require$$3","obj","Node","s","result","input","stringifier","Declaration","id","nanoid","SourceMapConsumer","SourceMapGenerator","dirname","PreviousMap","pathToFileURL","resolve","require$$4","require$$5","require$$6","sourceMapAvailable","pathAvailable","Input","MapGenerator","Comment","comment","parse","Rule","AtRule","Root","Container","callback","pattern","decl","selector","container","LazyResult","Processor","Document","document","warnOnce","Warning","opt","Result","processor","warning","tokenize","tokenizer","atRule","list","sep","rule","Parser","colon","parser","require$$7","require$$8","postcss","NoWorkResult","self","fromJSON","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","exports","unesc","module","getProp","ensureObject","stripComments","_interopRequireDefault","cloneNode","types","_getRequireWildcardCache","nodeInterop","_setPrototypeOf","o","p","at","split","_types","Selector","merge","cssesc","isIdentifier","ClassName","ID","Namespace","namespace","Tag","String","Pseudo","global","_unesc","deprecate","Attribute","Universal","Combinator","Nesting","sortAscending","combinator","_root","_selector","_className","_comment","_id","_tag","_string","_pseudo","_attribute","_universal","_combinator","_nesting","attribute","space","comma","nesting","pseudo","universal","word","current","process","className","tag","selectors","declaration","postcssNestedModule","camelCaseCSS","UNITLESS","objectify","processResult","async","sync","singleQuote","doubleQuote","backslash","slash","plus","selectorParser3","parser4","node2","requestAnimationFrame","this","r","n","t","e","u","x","i","a","f","c","P","l","h","d","v","g","m","glMatrix.ARRAY_TYPE","fromValues","vec3.fromValues","mat3.fromValues","mat3.transpose","mat3.create","mat3.invert","vec3.create","vec3.transformMat3","utils.opt","utils.istring","utils.number","utils.integer","utils.none","utils.identifier","direction","name","newValue","_a","_b"],"mappings":";;;;;;;AAAa,MAAA,wBAAwB,CAAC,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,IAAI;AACtE,MAAM,wBAAwB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,MAAM,eAAe;AAAA,EACxB,GAAG;AAAA,EACH,GAAG;AACP;AAEa,MAAA,aAAa,CAAC,KAAK,IAAI;AAC7B,MAAM,cAAc,CAAC,OAAO,OAAO,QAAQ,MAAM;AAC3C,MAAA,mBAAmB,CAAC,GAAG;AAC7B,MAAM,mBAAmB,CAAC,OAAO,QAAQ,QAAQ,KAAK;AAEhD,MAAA,iBAAiB,CAAC,OAAO,MAAM;AAuBrC,MAAM,6BAA6B,CAAC,UAAU,OAAO,MAAM;AAyB3D,MAAM,cAAc;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA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","x_google_ignoreList":[2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,80,82,83,84]}
|