{"version":3,"sources":["jsdelivr-header.js","/node_modules/.pnpm/@swc+helpers@0.4.14/node_modules/@swc/helpers/src/_extends.mjs","/npm/core/src/runtime.ts","/node_modules/.pnpm/@swc+helpers@0.4.14/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs","/npm/core/src/internal/to-class-name.ts","/npm/core/src/utils.ts","/npm/core/src/internal/precedence.ts","/npm/core/src/internal/registry.ts","/npm/core/src/internal/stringify.ts","/npm/core/src/internal/sorted-insertion-index.ts","/npm/core/src/colors.ts","/npm/core/src/internal/serialize.ts","/npm/core/src/internal/merge.ts","/npm/core/src/internal/translate.ts","/npm/core/src/parse.ts","/npm/core/src/internal/define.ts","/npm/core/src/internal/format.ts","/npm/core/src/rules.ts","/npm/core/src/define-config.ts","/npm/core/src/internal/context.ts","/npm/core/src/sheets.ts","/node_modules/.pnpm/style-vendorizer@2.2.3/node_modules/style-vendorizer/dist/esm/bundle.min.mjs","/npm/preset-autoprefix/src/index.ts","/npm/preset-tailwind/src/baseTheme.ts","/npm/preset-tailwind/src/preflight.ts","/npm/preset-tailwind/src/rules.ts","/npm/preset-tailwind/src/variants.ts","/npm/preset-tailwind/src/index.ts","/npm/preset-tailwind/src/colors.ts","/npm/preset-tailwind/src/defaultTheme.ts","/npm/@twind/src/index.ts","/npm/core/src/install.ts","/npm/core/src/observe.ts","/npm/core/src/internal/changed.ts","/npm/core/src/twind.ts","/npm/core/src/internal/theme.ts","/npm/preset-tailwind/src/base.ts","jsdelivr-separator.js","/npm/sitemap.xml@1.0.0/jsdelivr-header.js","/npm/sitemap.xml@1.0.0/index.js"],"names":[],"mappings":"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ACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,ED1IE,QC4IqB,CACrB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EDvJE,KCyJkB,CAClB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EDpKE,KCsKkB,CAClB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EDjLE,ICmLiB,CACjB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,ED9LE,KCgMkB,CAClB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,ED3ME,OC6MoB,CACpB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EDxNE,OC0NoB,CACpB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EDrOE,OCuOoB,CACpB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EDlPE,QCoPqB,CACrB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,ED/PE,KCiQkB,CAClB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,U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","file":"bundle.js","sourceRoot":"","sourcesContent":["/**\n * Combined by jsDelivr.\n * Original files:\n * - /npm/@twind/cdn@1.0.8/cdn.global.min.js\n * - /npm/sitemap.xml@1.0.0/index.min.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function extends_() {\n  extends_ = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return extends_.apply(this, arguments);\n}\n\nexport default function _extends() {\n  return extends_.apply(this, arguments);\n}\n","import type {\n  Twind,\n  BaseTheme,\n  TwindConfig,\n  Sheet,\n  TwindUserConfig,\n  ExtractThemes,\n  Preset,\n} from './types'\n\nimport { twind } from './twind'\nimport { observe } from './observe'\nimport { getSheet } from './sheets'\nimport { noop } from './utils'\nimport { DEV } from 'distilt/env'\n\n/**\n * @group Runtime\n * @param install\n * @returns\n */\nexport function auto(install: () => void): () => void {\n  // If we run in the browser we call install at latest when the body is inserted\n  // This algorith works well for _normal_ scripts (`<script src=\"...\"></script>`)\n  // but not for modules because those are executed __after__ the DOM is ready\n  // and we would have FOUC\n  if (typeof document != 'undefined' && document.currentScript) {\n    const cancelAutoInstall = () => observer.disconnect()\n\n    const observer: MutationObserver = new MutationObserver((mutationsList) => {\n      for (const { target } of mutationsList) {\n        // If we reach the body we immediately run the install to prevent FOUC\n        if (target === document.body) {\n          install()\n          return cancelAutoInstall()\n        }\n      }\n    })\n\n    observer.observe(document.documentElement, {\n      childList: true,\n      subtree: true,\n    })\n\n    return cancelAutoInstall\n  }\n\n  return noop\n}\n\nlet active: Twind\n\nfunction assertActive() {\n  if (DEV && !active) {\n    throw new Error(\n      `No active twind instance found. Make sure to call setup or install before accessing tw.`,\n    )\n  }\n}\n\n/**\n * A proxy to the currently active Twind instance.\n * @group Style Injectors\n */\nexport const tw: Twind<any, any> = /* #__PURE__ */ new Proxy(\n  // just exposing the active as tw should work with most bundlers\n  // as ES module export can be re-assigned BUT some bundlers to not honor this\n  // -> using a delegation proxy here\n  noop as unknown as Twind<any, any>,\n  {\n    apply(_target, _thisArg, args) {\n      if (DEV) assertActive()\n\n      return active(args[0])\n    },\n    get(target, property) {\n      if (DEV) {\n        // Workaround webpack accessing the prototype in dev mode\n        if (!active && property in target) {\n          // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n          return (target as any)[property]\n        }\n\n        assertActive()\n      }\n\n      const value = active[property as keyof Twind]\n\n      if (typeof value === 'function') {\n        return function () {\n          if (DEV) assertActive()\n\n          // eslint-disable-next-line prefer-rest-params\n          return value.apply(active, arguments)\n        }\n      }\n\n      return value\n    },\n  },\n)\n\nexport type SheetFactory<SheetTarget = unknown> = () => Sheet<SheetTarget>\n\n/**\n * Manages a single Twind instance — works in browser, Node.js, Deno, workers...\n *\n * @group Runtime\n * @param config\n * @param sheet\n * @param target\n * @returns\n */\nexport function setup<Theme extends BaseTheme = BaseTheme, SheetTarget = unknown>(\n  config?: TwindConfig<Theme>,\n  sheet?: Sheet<SheetTarget> | SheetFactory<SheetTarget>,\n  target?: HTMLElement,\n): Twind<Theme, SheetTarget>\n\nexport function setup<\n  Theme = BaseTheme,\n  Presets extends Preset<any>[] = Preset[],\n  SheetTarget = unknown,\n>(\n  config?: TwindUserConfig<Theme, Presets>,\n  sheet?: Sheet<SheetTarget> | SheetFactory<SheetTarget>,\n  target?: HTMLElement,\n): Twind<BaseTheme & ExtractThemes<Theme, Presets>, SheetTarget>\n\nexport function setup<Theme extends BaseTheme = BaseTheme, SheetTarget = unknown>(\n  config: TwindConfig<any> | TwindUserConfig<any> = {},\n  sheet: Sheet<SheetTarget> | SheetFactory<SheetTarget> = getSheet as SheetFactory<SheetTarget>,\n  target?: HTMLElement,\n): Twind<Theme, SheetTarget> {\n  active?.destroy()\n\n  active = observe(\n    twind(config as TwindUserConfig, typeof sheet == 'function' ? sheet() : sheet),\n    target,\n  )\n\n  return active as unknown as Twind<Theme, SheetTarget>\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n","import type { ParsedRule } from '../parse'\n\nexport function toClassName(rule: ParsedRule): string {\n  return [...rule.v, (rule.i ? '!' : '') + rule.n].join(':')\n}\n","import type { MaybeArray, ScreenValue } from './types'\n\n/**\n * @internal\n */\nexport const escape =\n  (typeof CSS !== 'undefined' && CSS.escape) ||\n  // Simplified: escaping only special characters\n  // Needed for NodeJS and Edge <79 (https://caniuse.com/mdn-api_css_escape)\n  ((className: string): string =>\n    className\n      // Simplifed escape testing only for chars that we know happen to be in tailwind directives\n      .replace(/[!\"'`*+.,;:\\\\/<=>?@#$%&^|~()[\\]{}]/g, '\\\\$&')\n      // If the character is the first character and is in the range [0-9] (2xl, ...)\n      // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n      .replace(/^\\d/, '\\\\3$& '))\n\n// Based on https://stackoverflow.com/a/52171480\n/**\n * @group Configuration\n * @param value\n * @returns\n */\nexport function hash(value: string): string {\n  // eslint-disable-next-line no-var\n  for (var h = 9, index = value.length; index--; ) {\n    h = Math.imul(h ^ value.charCodeAt(index), 0x5f356495)\n  }\n\n  return '#' + ((h ^ (h >>> 9)) >>> 0).toString(36)\n}\n\n/**\n * @internal\n * @param screen\n * @param prefix\n * @returns\n */\nexport function mql(screen: MaybeArray<ScreenValue>, prefix = '@media '): string {\n  return (\n    prefix +\n    asArray(screen)\n      .map((screen) => {\n        if (typeof screen == 'string') {\n          screen = { min: screen }\n        }\n\n        return (\n          (screen as { raw?: string }).raw ||\n          Object.keys(screen)\n            .map((feature) => `(${feature}-width:${(screen as Record<string, string>)[feature]})`)\n            .join(' and ')\n        )\n      })\n      .join(',')\n  )\n}\n\n/**\n * @internal\n * @param value\n * @returns\n */\nexport function asArray<T>(value: T = [] as unknown as T): T extends Array<any> ? T : T[] {\n  return (Array.isArray(value) ? value : value == null ? [] : [value]) as T extends Array<any>\n    ? T\n    : T[]\n}\n\n/**\n * @internal\n * @param value\n * @returns\n */\nexport function identity<T>(value: T): T {\n  return value\n}\n\n/**\n * @internal\n */\nexport function noop(): void {\n  // no-op\n}\n","import type { BaseTheme, Context } from '../types'\nimport type { ParsedRule } from '../parse'\nimport { asArray, mql } from '../utils'\nimport { toClassName } from './to-class-name'\n\n// Based on https://github.com/kripod/otion\n// License MIT\n\n// export const enum Shifts {\n//   darkMode = 30,\n//   layer = 27,\n//   screens = 26,\n//   responsive = 22,\n//   atRules = 18,\n//   variants = 0,\n// }\n\nexport const Layer = {\n  /**\n   * 1. `default` (public)\n   */\n  d /* efaults */: 0b000 << 27 /* Shifts.layer */,\n\n  /**\n   * 2. `base` (public) — for things like reset rules or default styles applied to plain HTML elements.\n   */\n  b /* ase */: 0b001 << 27 /* Shifts.layer */,\n\n  /**\n   * 3. `components` (public, used by `style()`) — is for class-based styles that you want to be able to override with utilities.\n   */\n  c /* omponents */: 0b010 << 27 /* Shifts.layer */,\n  // reserved for style():\n  // - props: 0b011\n  // - when: 0b100\n\n  /**\n   * 6. `aliases` (public, used by `apply()`) — `~(...)`\n   */\n  a /* liases */: 0b101 << 27 /* Shifts.layer */,\n\n  /**\n   * 6. `utilities` (public) — for small, single-purpose classes\n   */\n  u /* tilities */: 0b110 << 27 /* Shifts.layer */,\n\n  /**\n   * 7. `overrides` (public, used by `css()`)\n   */\n  o /* verrides */: 0b111 << 27 /* Shifts.layer */,\n} as const\n\n/*\nTo have a predictable styling the styles must be ordered.\n\nThis order is represented by a precedence number. The lower values\nare inserted before higher values. Meaning higher precedence styles\noverwrite lower precedence styles.\n\nEach rule has some traits that are put into a bit set which form\nthe precedence:\n\n| bits | trait                                                |\n| ---- | ---------------------------------------------------- |\n| 1    | dark mode                                            |\n| 2    | layer: preflight, global, components, utilities, css |\n| 1    | screens: is this a responsive variation of a rule    |\n| 5    | responsive based on min-width                        |\n| 4    | at-rules                                             |\n| 18   | pseudo and group variants                            |\n| 4    | number of declarations (descending)                  |\n| 4    | greatest precedence of properties                    |\n\n**Dark Mode: 1 bit**\n\nFlag for dark mode rules.\n\n**Layer: 3 bits**\n\n- defaults = 0: The preflight styles and any base styles registered by plugins.\n- base = 1: The global styles registered by plugins.\n- components = 2\n- variants = 3\n- compounds = 4\n- aliases = 5\n- utilities = 6: Utility classes and any utility classes registered by plugins.\n- css = 7: Styles generated by css\n\n**Screens: 1 bit**\n\nFlag for screen variants. They may not always have a `min-width` to be detected by _Responsive_ below.\n\n**Responsive: 4 bits**\n\nBased on extracted `min-width` value:\n\n- 576px -> 3\n- 1536px -> 10\n- 36rem -> 3\n- 96rem -> 9\n\n**At-Rules: 4 bits**\n\nBased on the count of special chars (`-:,`) within the at-rule.\n\n**Pseudo and group variants: 18 bits**\n\nEnsures predictable order of pseudo classes.\n\n- https://bitsofco.de/when-do-the-hover-focus-and-active-pseudo-classes-apply/#orderofstyleshoverthenfocusthenactive\n- https://developer.mozilla.org/docs/Web/CSS/:active#Active_links\n- https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/defaultConfig.stub.js#L718\n\n**Number of declarations (descending): 4 bits**\n\nAllows single declaration styles to overwrite styles from multi declaration styles.\n\n**Greatest precedence of properties: 4 bits**\n\nEnsure shorthand properties are inserted before longhand properties; eg longhand override shorthand\n*/\n\nexport function moveToLayer(precedence: number, layer: number): number {\n  // Set layer (first reset, than set)\n  return (precedence & ~Layer.o) | layer\n}\n\n/*\nTo set a bit: n |= mask;\nTo clear a bit: n &= ~mask;\nTo test if a bit is set: (n & mask)\n\nBit shifts for the primary bits:\n\n| bits | trait                                                   | shift |\n| ---- | ------------------------------------------------------- | ----- |\n| 1    | dark mode                                               | 30    |\n| 3    | layer: preflight, global, components, utilities, css    | 27    |\n| 1    | screens: is this a responsive variation of a rule       | 26    |\n| 4    | responsive based on min-width, max-width or width       | 22    |\n| 4    | at-rules                                                | 18    |\n| 18   | pseudo and group variants                               | 0     |\n\nLayer: 0 - 7: 3 bits\n  - defaults: 0 << 27\n  - base: 1 << 27\n  - components: 2 << 27\n  - variants: 3 << 27\n  - joints: 4 << 27\n  - aliases: 5 << 27\n  - utilities: 6 << 27\n  - overrides: 7 << 27\n\nThese are calculated by serialize and added afterwards:\n\n| bits | trait                               |\n| ---- | ----------------------------------- |\n| 4    | number of selectors (descending)    |\n| 4    | number of declarations (descending) |\n| 4    | greatest precedence of properties   |\n\nThese are added by shifting the primary bits using multiplication as js only\nsupports bit shift up to 32 bits.\n*/\n\n// Colon and dash count of string (ascending)\nexport function seperatorPrecedence(string: string): number {\n  return string.match(/[-=:;]/g)?.length || 0\n}\n\nexport function atRulePrecedence(css: string): number {\n  // 0 - 15: 4 bits (max 144rem or 2304px)\n  // rem -> bit\n  // <20 ->  0 (<320px)\n  //  20 ->  1 (320px)\n  //  24 ->  2 (384px)\n  //  28 ->  3 (448px)\n  //  32 ->  4 (512px)\n  //  36 ->  5 (576px)\n  //  42 ->  6 (672px)\n  //  48 ->  7 (768px)\n  //  56 ->  8 (896px)\n  //  64 ->  9 (1024px)\n  //  72 -> 10 (1152px)\n  //  80 -> 11 (1280px)\n  //  96 -> 12 (1536px)\n  // 112 -> 13 (1792px)\n  // 128 -> 14 (2048px)\n  // 144 -> 15 (2304px)\n  // https://www.dcode.fr/function-equation-finder\n  return (\n    (Math.min(\n      /(?:^|width[^\\d]+)(\\d+(?:.\\d+)?)(p)?/.test(css)\n        ? Math.max(0, 29.63 * (+RegExp.$1 / (RegExp.$2 ? 15 : 1)) ** 0.137 - 43)\n        : 0,\n      15,\n    ) <<\n      22) /* Shifts.responsive */ |\n    (Math.min(seperatorPrecedence(css), 15) << 18) /* Shifts.atRules */\n  )\n}\n\n// Pesudo variant presedence\n// Chars 3 - 8: Uniquely identifies a pseudo selector\n// represented as a bit set for each relevant value\n// 18 bits: one for each variant plus one for unknown variants\n//\n// ':group-*' variants are normalized to their native pseudo class (':group-hover' -> ':hover')\n// as they already have a higher selector presedence due to the add '.group' ('.group:hover .group-hover:...')\n\n// Sources:\n// - https://bitsofco.de/when-do-the-hover-focus-and-active-pseudo-classes-apply/#orderofstyleshoverthenfocusthenactive\n// - https://developer.mozilla.org/docs/Web/CSS/:active#Active_links\n// - https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/defaultConfig.stub.js#L931\n\nconst PRECEDENCES_BY_PSEUDO_CLASS = [\n  /* fi */ 'rst-c' /* hild: 0 */,\n  /* la */ 'st-ch' /* ild: 1 */,\n  // even and odd use: nth-child\n  /* nt */ 'h-chi' /* ld: 2 */,\n  /* an */ 'y-lin' /* k: 3 */,\n  /* li */ 'nk' /* : 4 */,\n  /* vi */ 'sited' /* : 5 */,\n  /* ch */ 'ecked' /* : 6 */,\n  /* em */ 'pty' /* : 7 */,\n  /* re */ 'ad-on' /* ly: 8 */,\n  /* fo */ 'cus-w' /* ithin : 9 */,\n  /* ho */ 'ver' /* : 10 */,\n  /* fo */ 'cus' /* : 11 */,\n  /* fo */ 'cus-v' /* isible : 12 */,\n  /* ac */ 'tive' /* : 13 */,\n  /* di */ 'sable' /* d : 14 */,\n  /* op */ 'tiona' /* l: 15 */,\n  /* re */ 'quire' /* d: 16 */,\n]\n\nfunction pseudoPrecedence(selector: string): number {\n  // use first found pseudo-class\n\n  return (\n    1 <<\n    ~(\n      (/:([a-z-]+)/.test(selector) &&\n        ~PRECEDENCES_BY_PSEUDO_CLASS.indexOf(RegExp.$1.slice(2, 7))) ||\n      ~17\n    )\n  )\n}\n\n// https://github.com/kripod/otion/blob/main/packages/otion/src/propertyMatchers.ts\n// \"+1\": [\n// \t/* ^border-.*(w|c|sty) */\n// \t\"border-.*(width,color,style)\",\n\n// \t/* ^[tlbr].{2,4}m?$ */\n// \t\"top\",\n// \t\"left\",\n// \t\"bottom\",\n// \t\"right\",\n\n// \t/* ^c.{7}$ */\n// \t\"continue\",\n\n// \t/* ^c.{8}$ */\n// \t\"container\",\n// ],\n\n// \"-1\": [\n// \t/* ^[fl].{5}l */\n// \t\"flex-flow\",\n// \t\"line-clamp\",\n\n// \t/* ^g.{8}$ */\n// \t\"grid-area\",\n\n// \t/* ^pl */\n// \t\"place-content\",\n// \t\"place-items\",\n// \t\"place-self\",\n\n// ],\n\n// group: 1 => +1\n// group: 2 => -1\n\n// 0 - 15 => 4 bits\n// Ignore vendor prefixed and custom properties\nexport function declarationPropertyPrecedence(property: string): number {\n  return property[0] == '-'\n    ? 0\n    : seperatorPrecedence(property) +\n        (/^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7,8}$)|([fl].{5}l|g.{8}$|pl))/.test(property)\n          ? +!!RegExp.$1 /* +1 */ || -!!RegExp.$2 /* -1 */\n          : 0) +\n        1\n}\n\nexport interface ConvertedRule {\n  /** The name to use for `&` expansion in selectors. Maybe empty for at-rules like `@import`, `@font-face`, `@media`, ... */\n  n?: string | undefined\n\n  /** The calculated precedence taking all variants into account. */\n  p: number\n\n  /** The rulesets (selectors and at-rules). expanded variants `@media ...`, `@supports ...`, `&:focus`, `.dark &` */\n  r?: string[]\n\n  /** Is this rule `!important` eg something like `!underline` or `!bg-red-500` or `!red-500` */\n  i?: boolean | undefined\n}\n\nexport function convert<Theme extends BaseTheme = BaseTheme>(\n  { n: name, i: important, v: variants = [] }: Partial<ParsedRule>,\n  context: Context<Theme>,\n  precedence: number,\n  conditions?: string[],\n): ConvertedRule {\n  if (name) {\n    name = toClassName({ n: name, i: important, v: variants })\n  }\n\n  conditions = [...asArray(conditions)]\n\n  for (const variant of variants) {\n    const screen = context.theme('screens', variant)\n\n    for (const condition of asArray((screen && mql(screen)) || context.v(variant))) {\n      conditions.push(condition)\n\n      precedence |= screen\n        ? (1 << 26) /* Shifts.screens */ | atRulePrecedence(condition)\n        : variant == 'dark'\n        ? 1 << 30 /* Shifts.darkMode */\n        : condition[0] == '@'\n        ? atRulePrecedence(condition)\n        : pseudoPrecedence(condition)\n    }\n  }\n\n  return { n: name, p: precedence, r: conditions, i: important }\n}\n","import type { BaseTheme, Context, Falsey, RuleResult, TwindRule } from '../types'\nimport type { ParsedRule } from '../parse'\n\nconst registry = new Map<string, RegisterCallback>()\n\nexport type RegisterCallback = (rule: ParsedRule, context: Context) => Falsey | TwindRule[]\n\nexport function register(className: string, factory: RegisterCallback): string {\n  registry.set(className, factory)\n  return className\n}\n\nexport function resolve<Theme extends BaseTheme = BaseTheme>(\n  rule: ParsedRule,\n  context: Context<Theme>,\n): RuleResult | TwindRule[] {\n  const factory = registry.get(rule.n)\n\n  return factory ? factory(rule, context as any) : context.r(rule.n, rule.v[0] == 'dark')\n}\n","import type { TwindRule } from '../types'\nimport { escape } from '../utils'\n\nexport function stringify(rule: TwindRule): string | undefined {\n  if (rule.d) {\n    const groups: string[] = []\n\n    const selector = replaceEach(\n      // merge all conditions into a selector string\n      rule.r.reduce((selector, condition) => {\n        if (condition[0] == '@') {\n          groups.push(condition)\n          return selector\n        }\n\n        // Go over the selector and replace the matching multiple selectors if any\n        return condition ? merge(selector, condition) : selector\n      }, '&'),\n      // replace '&' with rule name or an empty string\n      (selectorPart) => replaceReference(selectorPart, rule.n ? '.' + escape(rule.n) : ''),\n    )\n\n    if (selector) {\n      groups.push(selector.replace(/:merge\\((.+?)\\)/g, '$1'))\n    }\n\n    return groups.reduceRight((body, grouping) => grouping + '{' + body + '}', rule.d)\n  }\n}\n\nfunction replaceEach(selector: string, iteratee: (selectorPart: string) => string): string {\n  return selector.replace(\n    / *((?:\\(.+?\\)|\\[.+?\\]|[^,])+) *(,|$)/g,\n    (_, selectorPart: string, comma: string) => iteratee(selectorPart) + comma,\n  )\n}\n\nfunction replaceReference(selector: string, reference: string): string {\n  return selector.replace(/&/g, reference)\n}\n\nfunction merge(selector: string, condition: string): string {\n  return replaceEach(selector, (selectorPart) =>\n    replaceEach(\n      condition,\n      // If the current condition has a nested selector replace it\n      (conditionPart) => {\n        const mergeMatch = /(:merge\\(.+?\\))(:[a-z-]+|\\\\[.+])/.exec(conditionPart)\n\n        if (mergeMatch) {\n          const selectorIndex = selectorPart.indexOf(mergeMatch[1])\n\n          if (~selectorIndex) {\n            // [':merge(.group):hover .rule', ':merge(.group):focus &'] -> ':merge(.group):focus:hover .rule'\n            // ':merge(.group)' + ':focus' + ':hover .rule'\n            return (\n              selectorPart.slice(0, selectorIndex) +\n              mergeMatch[0] +\n              selectorPart.slice(selectorIndex + mergeMatch[1].length)\n            )\n          }\n\n          // [':merge(.peer):focus~&', ':merge(.group):hover &'] -> ':merge(.peer):focus~:merge(.group):hover &'\n          return replaceReference(selectorPart, conditionPart)\n        }\n\n        // Return the current selector with the key matching multiple selectors if any\n        return replaceReference(conditionPart, selectorPart)\n      },\n    ),\n  )\n}\n","import { Layer } from './precedence'\n\nconst collator = new Intl.Collator('en', { numeric: true })\n\nexport interface SortableRule {\n  /** The calculated precedence taking all variants into account. */\n  p: number\n\n  /* The precedence of the properties within {@link d}. */\n  o: number\n\n  /** The name to use for `&` expansion in selectors. Maybe empty for at-rules like `@import`, `@font-face`, `@media`, ... */\n  n?: string | null\n}\n\n/**\n * Find the array index of where to add an element to keep it sorted.\n *\n * @returns The insertion index\n */\nexport function sortedInsertionIndex(\n  array: readonly SortableRule[],\n  element: SortableRule,\n): number {\n  // Find position using binary search\n  // eslint-disable-next-line no-var\n  for (var low = 0, high = array.length; low < high; ) {\n    const pivot = (high + low) >> 1\n\n    // Less-Then-Equal to add new equal element after all existing equal elements (stable sort)\n    if (compareTwindRules(array[pivot], element) <= 0) {\n      low = pivot + 1\n    } else {\n      high = pivot\n    }\n  }\n\n  return high\n}\n\nexport function compareTwindRules(a: SortableRule, b: SortableRule): number {\n  // base and overrides (css) layers are kept in order they are declared\n  const layer = a.p & Layer.o\n\n  if (layer == (b.p & Layer.o) && (layer == Layer.b || layer == Layer.o)) {\n    return 0\n  }\n\n  return (\n    a.p - b.p ||\n    a.o - b.o ||\n    collator.compare(byModifier(a.n), byModifier(b.n)) ||\n    collator.compare(byName(a.n), byName(b.n))\n  )\n}\n\nfunction byModifier(s: string | null | undefined) {\n  return ((s || '').split(/:/).pop() as string).split('/').pop() || '\\x00'\n}\n\nfunction byName(s: string | null | undefined) {\n  return (s || '').replace(/\\W/g, (c) => String.fromCharCode(127 + c.charCodeAt(0))) + '\\x00'\n}\n","import type { ColorValue, ColorFunctionOptions, Context, Falsey } from './types'\n\nfunction parseColorComponent(chars: string, factor: number): number {\n  return Math.round(parseInt(chars, 16) * factor)\n}\n\n/**\n * @internal\n * @param color\n * @param options\n * @returns\n */\nexport function toColorValue(color: ColorValue, options: ColorFunctionOptions = {}): string {\n  if (typeof color == 'function') {\n    return color(options)\n  }\n\n  const { opacityValue = '1', opacityVariable } = options\n  const opacity = opacityVariable ? `var(${opacityVariable})` : opacityValue\n\n  if (color.includes('<alpha-value>')) {\n    return color.replace('<alpha-value>', opacity)\n  }\n\n  // rgb hex: #0123 and #001122\n  if (color[0] == '#' && (color.length == 4 || color.length == 7)) {\n    const size = (color.length - 1) / 3\n    const factor = [17, 1, 0.062272][size - 1]\n\n    return `rgba(${[\n      parseColorComponent(color.substr(1, size), factor),\n      parseColorComponent(color.substr(1 + size, size), factor),\n      parseColorComponent(color.substr(1 + 2 * size, size), factor),\n      opacity,\n    ]})`\n  }\n\n  if (opacity == '1') return color\n  if (opacity == '0') return '#0000'\n\n  // convert rgb and hsl to alpha variant\n  return color.replace(/^(rgb|hsl)(\\([^)]+)\\)$/, `$1a$2,${opacity})`)\n}\n\n/**\n * Looks for a matching dark color within a [tailwind color palette](https://tailwindcss.com/docs/customizing-colors) (`50`, `100`, `200`, ..., `800`, `900`).\n *\n * ```js\n * defineConfig({\n *   darkColor: autoDarkColor,\n * })\n * ```\n *\n * **Note**: Does not work for arbitrary values like `[theme(colors.gray.500)]` or `[theme(colors.gray.500, #ccc)]`.\n *\n * @group Configuration\n * @param section within theme to use\n * @param key of the light color or an arbitrary value\n * @param context to use\n * @returns the dark color if found\n */\nexport function autoDarkColor(\n  section: string,\n  key: string,\n  { theme }: Context<any>,\n): ColorValue | Falsey {\n  // 50 -> 900, 100 -> 800, ..., 800 -> 100, 900 -> 50\n  // key: gray-50, gray.50\n  key = key.replace(\n    /\\d+$/,\n    (shade) =>\n      // ~~(parseInt(shade, 10) / 100): 50 -> 0, 900 -> 9\n      // (9 - 0) -> 900, (9 - 9) -> 50\n      ((9 - ~~(parseInt(shade, 10) / 100) || 0.5) * 100) as any,\n  )\n\n  return theme(section as 'colors', key)\n}\n","import type {\n  CSSObject,\n  Falsey,\n  Context,\n  TwindRule,\n  BaseTheme,\n  MaybeArray,\n  ColorValue,\n} from '../types'\nimport type { ParsedRule } from '../parse'\nimport type { ConvertedRule } from './precedence'\nimport { Layer, moveToLayer } from './precedence'\nimport { mql, hash, asArray } from '../utils'\n\nimport { atRulePrecedence, declarationPropertyPrecedence, convert } from './precedence'\nimport { stringify } from './stringify'\nimport { translateWith } from './translate'\nimport { parse } from '../parse'\nimport { compareTwindRules } from './sorted-insertion-index'\nimport { toColorValue } from '../colors'\n\nexport function serialize<Theme extends BaseTheme = BaseTheme>(\n  style: CSSObject | Falsey,\n  rule: Partial<ParsedRule>,\n  context: Context<Theme>,\n  precedence: number,\n  conditions: string[] = [],\n): TwindRule[] {\n  return serialize$(style, convert(rule, context, precedence, conditions), context)\n}\n\nfunction serialize$<Theme extends BaseTheme = BaseTheme>(\n  style: CSSObject | Falsey,\n  { n: name, p: precedence, r: conditions = [], i: important }: ConvertedRule,\n  context: Context<Theme>,\n): TwindRule[] {\n  const rules: TwindRule[] = []\n\n  // The generated declaration block eg body of the css rule\n  let declarations = ''\n\n  // This ensures that 'border-top-width' has a higher precedence than 'border-top'\n  let maxPropertyPrecedence = 0\n\n  // More specific utilities have less declarations and a higher precedence\n  let numberOfDeclarations = 0\n\n  for (let key in style || {}) {\n    const value = (style as Record<string, unknown>)[key]\n\n    if (key[0] == '@') {\n      // at rules: https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule\n      if (!value) continue\n\n      // @apply ...;\n      if (key[1] == 'a') {\n        rules.push(\n          ...translateWith(\n            name as string,\n            precedence,\n            parse('' + value),\n            context,\n            precedence,\n            conditions,\n            important,\n            true /* useOrderOfRules */,\n          ),\n        )\n        continue\n      }\n\n      // @layer <layer>\n      if (key[1] == 'l') {\n        for (const css of asArray(value as MaybeArray<CSSObject>)) {\n          rules.push(\n            ...serialize$(\n              css,\n              {\n                n: name,\n                p: moveToLayer(precedence, Layer[key[7] as 'b']),\n                r: key[7] == 'd' ? [] : conditions,\n                i: important,\n              },\n              context,\n            ),\n          )\n        }\n\n        continue\n      }\n\n      // @import\n      if (key[1] == 'i') {\n        rules.push(\n          ...asArray(value).map((value) => ({\n            // before all layers\n            p: -1,\n            o: 0,\n            r: [],\n            d: key + ' ' + (value as string),\n          })),\n        )\n        continue\n      }\n\n      // @keyframes\n      if (key[1] == 'k') {\n        // Use defaults layer\n        rules.push({\n          p: Layer.d,\n          o: 0,\n          r: [key],\n          d: serialize$(value as CSSObject, { p: Layer.d }, context)\n            .map(stringify)\n            .join(''),\n        })\n        continue\n      }\n\n      // @font-face\n      // TODO @font-feature-values\n      if (key[1] == 'f') {\n        // Use defaults layer\n        rules.push(\n          ...asArray(value).map((value) => ({\n            p: Layer.d,\n            o: 0,\n            r: [key],\n            d: serialize$(value as CSSObject, { p: Layer.d }, context)\n              .map(stringify)\n              .join(''),\n          })),\n        )\n        continue\n      }\n      // -> All other are handled below; same as selector\n    }\n\n    // @media\n    // @supports\n    // selector\n    if (typeof value == 'object' && !Array.isArray(value)) {\n      // at-rule or non-global selector\n      if (key[0] == '@' || key.includes('&')) {\n        let rulePrecedence = precedence\n        if (key[0] == '@') {\n          // Handle `@media screen(sm)` and `@media (screen(sm) or ...)`\n          key = key.replace(/\\bscreen\\(([^)]+)\\)/g, (_, screenKey) => {\n            const screen = context.theme('screens', screenKey)\n\n            if (screen) {\n              rulePrecedence |= 1 << 26 /* Shifts.screens */\n              return mql(screen, '')\n            }\n\n            return _\n          })\n\n          rulePrecedence |= atRulePrecedence(key)\n        }\n\n        rules.push(\n          ...serialize$(\n            value as CSSObject,\n            {\n              n: name,\n              p: rulePrecedence,\n              r: [...conditions, key],\n              i: important,\n            },\n            context,\n          ),\n        )\n      } else {\n        // global selector\n        rules.push(\n          ...serialize$(value as CSSObject, { p: precedence, r: [...conditions, key] }, context),\n        )\n      }\n    } else if (key == 'label' && value) {\n      name = (value as string) + hash(JSON.stringify([precedence, important, style]))\n    } else if (value || value === 0) {\n      // property -> hyphenate\n      key = key.replace(/[A-Z]/g, (_) => '-' + _.toLowerCase())\n\n      // Update precedence\n      numberOfDeclarations += 1\n      maxPropertyPrecedence = Math.max(maxPropertyPrecedence, declarationPropertyPrecedence(key))\n\n      declarations +=\n        (declarations ? ';' : '') +\n        asArray(value)\n          .map((value) =>\n            context.s(\n              key,\n              // support theme(...) function in values\n              // calc(100vh - theme('spacing.12'))\n              resolveThemeFunction('' + value, context.theme) + (important ? ' !important' : ''),\n            ),\n          )\n          .join(';')\n    }\n  }\n\n  // PERF: prevent unshift using `rules = [{}]` above and then `rules[0] = {...}`\n  rules.unshift({\n    n: name,\n\n    p: precedence,\n\n    o:\n      // number of declarations (descending)\n      Math.max(0, 15 - numberOfDeclarations) +\n      // greatest precedence of properties\n      // if there is no property precedence this is most likely a custom property only declaration\n      // these have the highest precedence\n      Math.min(maxPropertyPrecedence || 15, 15) * 1.5,\n\n    r: conditions,\n\n    // stringified declarations\n    d: declarations,\n  })\n\n  return rules.sort(compareTwindRules)\n}\n\nexport function resolveThemeFunction<Theme extends BaseTheme = BaseTheme>(\n  value: string,\n  theme: Context<Theme>['theme'],\n): string {\n  // support theme(...) function in values\n  // calc(100vh - theme('spacing.12'))\n  // theme('borderColor.DEFAULT', 'currentColor')\n\n  // PERF: check for theme before running the regexp\n  // if (value.includes('theme')) {\n  return value.replace(\n    /theme\\(([\"'`])?(.+?)\\1(?:\\s*,\\s*([\"'`])?(.+?)\\3)?\\)/g,\n    (_, __, key: string, ___, defaultValue = '') => {\n      const value = theme(key, defaultValue)\n\n      if (typeof value == 'function' && /color|fill|stroke/i.test(key)) {\n        return toColorValue(value as ColorValue)\n      }\n\n      return '' + asArray(value as unknown).filter((v) => Object(v) !== v)\n    },\n  )\n  // }\n\n  // return value\n}\n","import type { TwindRule } from '../types'\n\nexport function merge(rules: TwindRule[], name: string): TwindRule[] {\n  // merge:\n  // - same conditions\n  // - replace name with hash of name + condititions + declarations\n  // - precedence:\n  //   - combine bits or use max precendence\n  //   - set layer bit to merged\n  const result: TwindRule[] = []\n\n  let current: TwindRule | undefined\n\n  for (const rule of rules) {\n    // only merge rules with declarations and names (eg no global rules)\n    if (!(rule.d && rule.n)) {\n      result.push({ ...rule, n: rule.n && name })\n    } else if (current?.p == rule.p && '' + current.r == '' + rule.r) {\n      current.c = [current.c, rule.c].filter(Boolean).join(' ')\n      current.d = current.d + ';' + rule.d\n    } else {\n      // only set name for named rules eg not for global or className propagation rules\n      result.push((current = { ...rule, n: rule.n && name }))\n    }\n  }\n\n  return result\n}\n","import type { TwindRule, Context, BaseTheme } from '../types'\nimport type { ParsedRule } from '../parse'\n\nimport { parse } from '../parse'\nimport { convert, Layer, moveToLayer } from './precedence'\n\nimport { resolve } from './registry'\nimport { serialize } from './serialize'\nimport { sortedInsertionIndex } from './sorted-insertion-index'\nimport { toClassName } from './to-class-name'\nimport { asArray } from '../utils'\nimport { merge } from './merge'\n\nexport function translate<Theme extends BaseTheme = BaseTheme>(\n  rules: readonly ParsedRule[],\n  context: Context<Theme>,\n  precedence = Layer.u,\n  conditions?: string[],\n  important?: boolean,\n): TwindRule[] {\n  // Sorted by precedence\n  const result: TwindRule[] = []\n\n  for (const rule of rules) {\n    for (const cssRule of translate$(rule, context, precedence, conditions, important)) {\n      result.splice(sortedInsertionIndex(result, cssRule), 0, cssRule)\n    }\n  }\n\n  return result\n}\n\nfunction translate$<Theme extends BaseTheme = BaseTheme>(\n  rule: ParsedRule,\n  context: Context<Theme>,\n  precedence: number,\n  conditions?: string[],\n  important?: boolean,\n): TwindRule[] {\n  rule = { ...rule, i: rule.i || important }\n\n  const resolved = resolve(rule, context)\n\n  if (!resolved) {\n    // propagate className as is\n    return [{ c: toClassName(rule), p: 0, o: 0, r: [] }]\n  }\n\n  // a list of class names\n  if (typeof resolved == 'string') {\n    ;({ r: conditions, p: precedence } = convert(rule, context, precedence, conditions))\n\n    return merge(translate(parse(resolved), context, precedence, conditions, rule.i), rule.n)\n  }\n\n  if (Array.isArray(resolved)) {\n    return resolved.map((rule) => ({\n      o: 0,\n      ...rule,\n      r: [...asArray(conditions), ...asArray(rule.r)],\n      p: moveToLayer(precedence, rule.p ?? precedence),\n    }))\n  }\n\n  return serialize(resolved, rule, context, precedence, conditions)\n}\n\nexport function translateWith<Theme extends BaseTheme = BaseTheme>(\n  name: string,\n  layer: number,\n  rules: ParsedRule[],\n  context: Context<Theme>,\n  precedence: number,\n  conditions?: string[] | undefined,\n  important?: boolean | undefined,\n  useOrderOfRules?: boolean,\n) {\n  return merge(\n    (useOrderOfRules\n      ? rules.flatMap((rule) => translate([rule], context, precedence, conditions, important))\n      : translate(rules, context, precedence, conditions, important)\n    ).map((rule) =>\n      // do not move defaults\n      // move only rules with a name unless they are in the base layer\n      rule.p & Layer.o && (rule.n || layer == Layer.b)\n        ? { ...rule, p: moveToLayer(rule.p, layer), o: 0 }\n        : rule,\n    ),\n    name,\n  )\n}\n","import { DEV } from 'distilt/env'\n\nimport { hash } from './utils'\nimport { define } from './internal/define'\nimport { format } from './internal/format'\nimport { Layer } from './internal/precedence'\n\nexport interface ParsedRule {\n  /**\n   * The utility name including `-` if set, but without `!` and variants\n   */\n  readonly n: string\n\n  /**\n   * All variants without trailing colon: `hover`, `after:`, `[...]`\n   */\n  readonly v: string[]\n\n  /**\n   * Something like `!underline` or `!bg-red-500` or `!red-500`\n   */\n  readonly i?: boolean\n}\n\nexport interface ParsedDevRule extends ParsedRule {\n  readonly a: string[]\n  readonly l: [start: number, end: number]\n}\n\nfunction createRule(\n  active: string[],\n  current: ParsedRule[][],\n  loc?: ParsedDevRule['l'] | false,\n): void {\n  if (active[active.length - 1] != '(') {\n    const variants: string[] = []\n    let important = false\n    let negated = false\n    let name = ''\n\n    for (let value of active) {\n      if (value == '(' || /[~@]$/.test(value)) continue\n\n      if (value[0] == '!') {\n        value = value.slice(1)\n        important = !important\n      }\n\n      if (value.endsWith(':')) {\n        variants[value == 'dark:' ? 'unshift' : 'push'](value.slice(0, -1))\n        continue\n      }\n\n      if (value[0] == '-') {\n        value = value.slice(1)\n        negated = !negated\n      }\n\n      if (value.endsWith('-')) {\n        value = value.slice(0, -1)\n      }\n\n      if (value && value != '&') {\n        name += (name && '-') + value\n      }\n    }\n\n    if (name) {\n      if (negated) name = '-' + name\n\n      current[0].push(\n        DEV\n          ? Object.defineProperties(\n              { n: name, v: variants.filter(uniq), i: important },\n              {\n                a: { value: [...active] },\n                l: { value: loc },\n              },\n            )\n          : { n: name, v: variants.filter(uniq), i: important },\n      )\n    }\n  }\n}\n\nfunction uniq<T>(value: T, index: number, values: T[]): boolean {\n  return values.indexOf(value) == index\n}\n\nconst cache = new Map<string, ParsedRule[]>()\n\n/**\n * @internal\n * @param token\n * @returns\n */\nexport function parse(token: string): ParsedRule[] {\n  let parsed = cache.get(token)\n\n  if (!parsed) {\n    // Stack of active groupings (`(`), variants, or nested (`~` or `@`)\n    const active: string[] = []\n\n    // Stack of current rule list to put new rules in\n    // the first `0` element is the current list\n    const current: ParsedRule[][] = [[]]\n\n    let startIndex = 0\n    let skip = 0\n    let comment: RegExp | null = null\n    let position = 0\n\n    // eslint-disable-next-line no-inner-declarations\n    const commit = (isRule?: boolean, endOffset = 0) => {\n      if (startIndex != position) {\n        active.push(token.slice(startIndex, position + endOffset))\n\n        if (isRule) {\n          createRule(active, current, DEV && [startIndex, position + endOffset])\n        }\n      }\n      startIndex = position + 1\n    }\n\n    for (; position < token.length; position++) {\n      const char = token[position]\n\n      if (skip) {\n        // within [...]\n        // skip over until not skipping\n        // ignore escaped chars\n        if (token[position - 1] != '\\\\') {\n          skip += +(char == '[') || -(char == ']')\n        }\n      } else if (char == '[') {\n        // start to skip\n        skip += 1\n      } else if (comment) {\n        if (token[position - 1] != '\\\\' && comment.test(token.slice(position))) {\n          comment = null\n          startIndex = position + RegExp.lastMatch.length\n        }\n      } else if (\n        char == '/' &&\n        token[position - 1] != '\\\\' &&\n        (token[position + 1] == '*' || token[position + 1] == '/')\n      ) {\n        // multiline or single line comment\n        comment = token[position + 1] == '*' ? /^\\*\\// : /^[\\r\\n]/\n      } else if (char == '(') {\n        // hover:(...) or utilitity-(...)\n        commit()\n        active.push(char)\n      } else if (char == ':') {\n        // hover: or after::\n        if (token[position + 1] != ':') {\n          commit(false, 1)\n        }\n      } else if (/[\\s,)]/.test(char)) {\n        // whitespace, comma or closing brace\n        commit(true)\n\n        let lastGroup = active.lastIndexOf('(')\n\n        if (char == ')') {\n          // Close nested block\n          const nested = active[lastGroup - 1]\n\n          if (/[~@]$/.test(nested)) {\n            const rules = current.shift() as ParsedRule[]\n\n            active.length = lastGroup\n\n            // remove variants that are already applied through active\n            createRule([...active, '#'], current, DEV && [startIndex, position])\n            const { v } = current[0].pop() as ParsedRule\n\n            for (const rule of rules) {\n              // if a rule has dark we need to splice after the first entry eg dark\n              rule.v.splice(+(rule.v[0] == 'dark') - +(v[0] == 'dark'), v.length)\n            }\n\n            createRule(\n              [\n                ...active,\n                define(\n                  // named nested\n                  nested.length > 1\n                    ? nested.slice(0, -1) + hash(JSON.stringify([nested, rules]))\n                    : nested + '(' + format(rules) + ')',\n                  Layer.a,\n                  rules,\n                  /@$/.test(nested),\n                ),\n              ],\n              current,\n              DEV && [startIndex, position],\n            )\n          }\n\n          lastGroup = active.lastIndexOf('(', lastGroup - 1)\n        }\n\n        active.length = lastGroup + 1\n      } else if (/[~@]/.test(char) && token[position + 1] == '(') {\n        // start nested block\n        // ~(...) or button~(...)\n        // @(...) or button@(...)\n        current.unshift([])\n      }\n    }\n\n    // Consume remaining stack\n    commit(true)\n\n    cache.set(token, (parsed = current[0]))\n  }\n\n  return parsed\n}\n","import type { Falsey } from '../types'\nimport type { ParsedRule } from '../parse'\nimport { convert } from './precedence'\nimport { register } from './registry'\nimport { translateWith } from './translate'\n\nexport function define(\n  className: string,\n  layer: number,\n  rules: Falsey | ParsedRule[],\n  useOrderOfRules?: boolean,\n): string {\n  return register(className, (rule, context) => {\n    const { n: name, p: precedence, r: conditions, i: important } = convert(rule, context, layer)\n\n    return (\n      rules &&\n      translateWith(\n        name as string,\n        layer,\n        rules,\n        context,\n        precedence,\n        conditions,\n        important,\n        useOrderOfRules,\n      )\n    )\n  })\n}\n","import type { ParsedRule } from '../parse'\nimport { toClassName } from './to-class-name'\n\nexport function format(rules: ParsedRule[], seperator = ','): string {\n  return rules.map(toClassName).join(seperator)\n}\n","import { DEV } from 'distilt/env'\n\nimport type {\n  Context,\n  ColorValue,\n  ColorFunction,\n  BaseTheme,\n  MatchResult,\n  RuleResolver,\n  CSSProperties,\n  CSSObject,\n  RuleResult,\n  ThemeValue,\n  KebabCase,\n  MatchConverter,\n  Rule,\n  MaybeArray,\n} from './types'\n\nimport { toColorValue } from './colors'\nimport { resolveThemeFunction } from './internal/serialize'\nimport {\n  type AutocompleteProvider,\n  type AutocompleteItem,\n  withAutocomplete,\n  type AutocompleteModifier,\n} from './autocomplete'\n\nexport type ThemeMatchResult<Value> = MatchResult & {\n  /** The found theme value */\n  _: Value\n}\n\nexport type ThemeRuleResolver<Value, Theme extends BaseTheme = BaseTheme> = RuleResolver<\n  Theme,\n  ThemeMatchResult<Value>\n>\n\nexport type ThemeMatchConverter<Value, Theme extends BaseTheme = BaseTheme> = MatchConverter<\n  Theme,\n  ThemeMatchResult<Value>\n>\n\n// indirection wrapper to remove autocomplete functions from production bundles\nfunction withAutocomplete$<Theme extends BaseTheme = BaseTheme>(\n  resolver: RuleResolver<Theme>,\n  autocomplete: AutocompleteProvider<Theme> | false,\n): RuleResolver<Theme> {\n  if (DEV) {\n    return withAutocomplete(resolver, autocomplete)\n  }\n\n  return resolver\n}\n\n/**\n * @group Configuration\n * @param pattern\n */\nexport function match<Theme extends BaseTheme = BaseTheme>(\n  pattern: MaybeArray<string | RegExp>,\n): Rule<Theme>\n\n/**\n * @group Configuration\n * @param pattern\n * @param resolver\n */\nexport function match<Theme extends BaseTheme = BaseTheme>(\n  pattern: MaybeArray<string | RegExp>,\n  resolver: RuleResolver<Theme>,\n): Rule<Theme>\n\n/**\n * @group Configuration\n * @param pattern\n * @param resolve\n */\nexport function match<Theme extends BaseTheme = BaseTheme>(\n  pattern: MaybeArray<string | RegExp>,\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  resolve: (string & {}) | CSSObject,\n): Rule<Theme>\n\n/**\n * @group Configuration\n * @param pattern\n * @param resolve\n * @param convert\n */\nexport function match<Theme extends BaseTheme = BaseTheme>(\n  pattern: MaybeArray<string | RegExp>,\n  resolve: keyof CSSProperties,\n  convert?: MatchConverter<Theme>,\n): Rule<Theme>\n\nexport function match<Theme extends BaseTheme = BaseTheme>(\n  pattern: MaybeArray<string | RegExp>,\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  resolve?: RuleResolver<Theme> | (string & {}) | CSSObject | keyof CSSProperties,\n  convert?: MatchConverter<Theme>,\n): Rule<Theme> {\n  return [pattern, fromMatch(resolve as keyof CSSProperties, convert)]\n}\n\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */\nexport function fromMatch<Theme extends BaseTheme = BaseTheme>(): RuleResolver<Theme>\n\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */\nexport function fromMatch<Theme extends BaseTheme = BaseTheme>(\n  resolver: RuleResolver<Theme>,\n): RuleResolver<Theme>\n\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */\nexport function fromMatch<Theme extends BaseTheme = BaseTheme>(\n  resolve: keyof CSSProperties,\n  convert?: MatchConverter<Theme>,\n): RuleResolver<Theme>\n\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */\nexport function fromMatch<Theme extends BaseTheme = BaseTheme>(\n  resolve: string | CSSObject,\n): RuleResolver<Theme>\n\nexport function fromMatch<Theme extends BaseTheme = BaseTheme>(\n  resolve?: RuleResolver<Theme> | keyof CSSProperties | string | CSSObject,\n  convert?: MatchConverter<Theme>,\n): RuleResolver<Theme> {\n  return typeof resolve == 'function'\n    ? resolve\n    : typeof resolve == 'string' && /^[\\w-]+$/.test(resolve) // a CSS property alias\n    ? (match, context) =>\n        ({\n          [resolve]: convert ? convert(match, context) : maybeNegate(match, 1),\n        } as CSSObject)\n    : (match) =>\n        // CSSObject, shortcut or apply\n        resolve ||\n        ({\n          [match[1]]: maybeNegate(match, 2),\n        } as CSSObject)\n}\n\nfunction maybeNegate<T>(\n  match: MatchResult,\n  offset: number,\n  value: T | string = match.slice(offset).find(Boolean) || match.$$ || match.input,\n): T | string {\n  return match.input[0] == '-' ? `calc(${value} * -1)` : value\n}\n\n/**\n * @group Configuration\n * @param pattern\n * @param section\n * @param resolve\n * @param convert\n * @returns\n */\nexport function matchTheme<\n  Theme extends BaseTheme = BaseTheme,\n  Section extends keyof Theme & string = keyof Theme & string,\n>(\n  pattern: MaybeArray<string | RegExp>,\n\n  /** Theme section to use (default: `$1` — The first matched group) */\n  section?: '' | Section | KebabCase<Section>,\n\n  /** The css property (default: value of {@link section}) */\n  resolve?: keyof CSSProperties | ThemeRuleResolver<ThemeValue<Theme[Section]>, Theme>,\n\n  convert?: ThemeMatchConverter<ThemeValue<Theme[Section]>, Theme>,\n): Rule<Theme> {\n  return [pattern, fromTheme(section, resolve, convert)]\n}\n\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link matchTheme} instead.\n * @param section\n * @param resolve\n * @param convert\n * @returns\n */\nexport function fromTheme<\n  Theme extends BaseTheme = BaseTheme,\n  Section extends keyof Theme & string = keyof Theme & string,\n>(\n  /** Theme section to use (default: `$1` — The first matched group) */\n  section?: '' | Section | KebabCase<Section>,\n\n  /** The css property (default: value of {@link section}) */\n  resolve?: keyof CSSProperties | ThemeRuleResolver<ThemeValue<Theme[Section]>, Theme>,\n\n  convert?: ThemeMatchConverter<ThemeValue<Theme[Section]>, Theme>,\n): RuleResolver<Theme> {\n  const factory: (\n    match: ThemeMatchResult<ThemeValue<Theme[Section]>>,\n    context: Context<Theme>,\n    section: Section,\n  ) => RuleResult =\n    typeof resolve == 'string'\n      ? (match, context) =>\n          ({ [resolve]: convert ? convert(match, context) : match._ } as CSSObject)\n      : resolve || (({ 1: $1, _ }, context, section) => ({ [$1 || section]: _ } as CSSObject))\n\n  return withAutocomplete$(\n    (match, context) => {\n      const themeSection = camelize(section || match[1]) as Section\n\n      const value =\n        context.theme(themeSection, match.$$) ??\n        (arbitrary(match.$$, themeSection, context) as ThemeValue<Theme[Section]>)\n\n      if (value != null) {\n        ;(match as ThemeMatchResult<ThemeValue<Theme[Section]>>)._ = maybeNegate(\n          match,\n          0,\n          value,\n        ) as ThemeValue<Theme[Section]>\n\n        return factory(match as ThemeMatchResult<ThemeValue<Theme[Section]>>, context, themeSection)\n      }\n    },\n    DEV &&\n      ((match, context) => {\n        const themeSection = camelize(section || match[1]) as Section\n\n        const isKeyLookup = match.input.endsWith('-')\n\n        if (isKeyLookup) {\n          return Object.entries(context.theme(themeSection) || {})\n            .filter(\n              ([key, value]) =>\n                key &&\n                key != 'DEFAULT' &&\n                (!/color|fill|stroke/i.test(themeSection) ||\n                  ['string', 'function'].includes(typeof value)),\n            )\n            .map(\n              ([key, value]): AutocompleteItem => ({\n                suffix: key.replace(/-DEFAULT/g, ''),\n                theme: { section: themeSection, key },\n                color:\n                  /color|fill|stroke/i.test(themeSection) &&\n                  toColorValue(value as ColorValue, { opacityValue: '1' }),\n              }),\n            )\n            .concat([{ suffix: '[' }])\n        }\n\n        const value = context.theme(themeSection, 'DEFAULT')\n\n        if (value) {\n          return [\n            {\n              suffix: '',\n              theme: { section: themeSection, key: 'DEFAULT' },\n              color:\n                /color|fill|stroke/i.test(themeSection) &&\n                toColorValue(value as ColorValue, { opacityValue: '1' }),\n            },\n          ]\n        }\n\n        return []\n      }),\n  )\n}\n\nexport type FilterByThemeValue<Theme, Value> = {\n  [key in keyof Theme & string]: ThemeValue<Theme[key]> extends Value ? Theme[key] : never\n}\n\nexport interface ColorFromThemeValue {\n  value: string\n  color: ColorFunction\n  opacityVariable: string | undefined\n  opacityValue: string | undefined\n}\n\nexport interface ColorFromThemeOptions<\n  Theme extends BaseTheme = BaseTheme,\n  Section extends keyof FilterByThemeValue<Theme, ColorValue> = keyof FilterByThemeValue<\n    Theme,\n    ColorValue\n  >,\n  OpacitySection extends keyof FilterByThemeValue<Theme, string> = keyof FilterByThemeValue<\n    Theme,\n    string\n  >,\n> {\n  /** Theme section to use (default: `$0.replace('-', 'Color')` — The matched string with `Color` appended) */\n  section?: Section | KebabCase<Section>\n  /** The css property (default: value of {@link section}) */\n  property?: keyof CSSProperties\n  /** `--tw-${$0}opacity` -> '--tw-text-opacity' */\n  opacityVariable?: string | false\n  /** `section.replace('Color', 'Opacity')` -> 'textOpacity' */\n  opacitySection?: OpacitySection\n  selector?: string\n}\n\n/**\n * @group Configuration\n * @param pattern\n * @param options\n * @param resolve\n * @returns\n */\nexport function matchColor<\n  Theme extends BaseTheme = BaseTheme,\n  Section extends keyof FilterByThemeValue<Theme, ColorValue> = keyof FilterByThemeValue<\n    Theme,\n    ColorValue\n  >,\n  OpacitySection extends keyof FilterByThemeValue<Theme, string> = keyof FilterByThemeValue<\n    Theme,\n    string\n  >,\n>(\n  pattern: MaybeArray<string | RegExp>,\n  options: ColorFromThemeOptions<Theme, Section, OpacitySection> = {},\n  resolve?: ThemeRuleResolver<ColorFromThemeValue, Theme>,\n): Rule<Theme> {\n  return [pattern, colorFromTheme(options, resolve)]\n}\n\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link matchColor} instead.\n * @param options\n * @param resolve\n * @returns\n */\nexport function colorFromTheme<\n  Theme extends BaseTheme = BaseTheme,\n  Section extends keyof FilterByThemeValue<Theme, ColorValue> = keyof FilterByThemeValue<\n    Theme,\n    ColorValue\n  >,\n  OpacitySection extends keyof FilterByThemeValue<Theme, string> = keyof FilterByThemeValue<\n    Theme,\n    string\n  >,\n>(\n  options: ColorFromThemeOptions<Theme, Section, OpacitySection> = {},\n  resolve?: ThemeRuleResolver<ColorFromThemeValue, Theme>,\n): RuleResolver<Theme> {\n  return withAutocomplete$(\n    (match, context) => {\n      // text- -> textColor\n      // ring-offset(?:-|$) -> ringOffsetColor\n      const { section = (camelize(match[0]).replace('-', '') + 'Color') as Section } = options\n\n      // extract color and opacity\n      // rose-500                  -> ['rose-500']\n      // [hsl(0_100%_/_50%)]       -> ['[hsl(0_100%_/_50%)]']\n      // indigo-500/100            -> ['indigo-500', '100']\n      // [hsl(0_100%_/_50%)]/[.25] -> ['[hsl(0_100%_/_50%)]', '[.25]']\n      const [colorMatch, opacityMatch] = parseValue(match.$$)\n\n      if (!colorMatch) return\n\n      const colorValue =\n        (context.theme(section, colorMatch) as ColorValue) ||\n        arbitrary(colorMatch, section, context)\n\n      if (!colorValue || typeof colorValue == 'object') return\n\n      const {\n        // text- -> --tw-text-opacity\n        // ring-offset(?:-|$) -> --tw-ring-offset-opacity\n        // TODO move this default into preset-tailwind?\n        opacityVariable = `--tw-${match[0].replace(/-$/, '')}-opacity`,\n        opacitySection = section.replace('Color', 'Opacity') as OpacitySection,\n        property = section,\n        selector,\n      } = options\n\n      const opacityValue =\n        (context.theme(opacitySection, opacityMatch || 'DEFAULT') as string | undefined) ||\n        (opacityMatch && arbitrary(opacityMatch, opacitySection, context))\n\n      // if (typeof color != 'string') {\n      //   console.warn(`Invalid color ${colorMatch} (from ${match.input}):`, color)\n      //   return\n      // }\n\n      const create =\n        resolve ||\n        (({ _ }) => {\n          const properties = toCSS(property, _)\n\n          return selector ? { [selector]: properties } : properties\n        })\n\n      ;(match as ThemeMatchResult<ColorFromThemeValue>)._ = {\n        value: toColorValue(colorValue, {\n          opacityVariable: opacityVariable || undefined,\n          opacityValue: opacityValue || undefined,\n        }),\n        color: (options) => toColorValue(colorValue, options),\n        opacityVariable: opacityVariable || undefined,\n        opacityValue: opacityValue || undefined,\n      }\n\n      let properties = create(match as ThemeMatchResult<ColorFromThemeValue>, context)\n\n      // auto support dark mode colors\n      if (!match.dark) {\n        const darkColorValue = context.d(section, colorMatch, colorValue)\n\n        if (darkColorValue && darkColorValue !== colorValue) {\n          ;(match as ThemeMatchResult<ColorFromThemeValue>)._ = {\n            value: toColorValue(darkColorValue, {\n              opacityVariable: opacityVariable || undefined,\n              opacityValue: opacityValue || '1',\n            }),\n            color: (options) => toColorValue(darkColorValue, options),\n            opacityVariable: opacityVariable || undefined,\n            opacityValue: opacityValue || undefined,\n          }\n\n          properties = {\n            '&': properties,\n            [context.v('dark') as string]: create(\n              match as ThemeMatchResult<ColorFromThemeValue>,\n              context,\n            ),\n          } as CSSObject\n        }\n      }\n\n      return properties\n    },\n    DEV &&\n      ((match, context) => {\n        const {\n          section = (camelize(match[0]).replace('-', '') + 'Color') as Section,\n          opacitySection = section.replace('Color', 'Opacity') as OpacitySection,\n        } = options\n\n        const isKeyLookup = match.input.endsWith('-')\n\n        const opacities = Object.entries<string>(context.theme(opacitySection) || {}).filter(\n          ([key, value]) => key != 'DEFAULT' && /^[\\w-]+$/.test(key) && typeof value == 'string',\n        )\n\n        if (isKeyLookup) {\n          // ['gray-50', ['/0', '/10', ...]],\n          // ['gray-100', ['/0', '/10', ...]],\n\n          return Object.entries(context.theme(section) || {})\n            .filter(\n              ([key, value]) =>\n                key && key != 'DEFAULT' && ['string', 'function'].includes(typeof value),\n            )\n            .map(\n              ([key, value]): AutocompleteItem => ({\n                suffix: key.replace(/-DEFAULT/g, ''),\n                theme: { section, key },\n                color: toColorValue(value as ColorValue, {\n                  opacityValue: (context.theme(opacitySection, 'DEFAULT') as string) || '1',\n                }),\n                modifiers:\n                  (typeof value == 'function' ||\n                    (typeof value == 'string' &&\n                      (value.includes('<alpha-value>') ||\n                        (value[0] == '#' && (value.length == 4 || value.length == 7))))) &&\n                  opacities\n                    .map(\n                      ([key, opacityValue]): AutocompleteModifier => ({\n                        modifier: key,\n                        theme: { section: opacitySection, key },\n                        color: toColorValue(value as ColorValue, { opacityValue }),\n                      }),\n                    )\n                    .concat([\n                      {\n                        modifier: '[',\n                        color: toColorValue(value as ColorValue, { opacityValue: '1' }),\n                      },\n                    ]),\n              }),\n            )\n            .concat([{ suffix: '[' }])\n        }\n\n        const value = context.theme(section, 'DEFAULT')\n\n        if (value) {\n          return [\n            {\n              suffix: '',\n              theme: { section, key: 'DEFAULT' },\n              color: toColorValue(value as ColorValue, {\n                opacityValue: (context.theme(opacitySection, 'DEFAULT') as string) || '1',\n              }),\n              modifiers:\n                (typeof value == 'function' ||\n                  (typeof value == 'string' &&\n                    (value.includes('<alpha-value>') ||\n                      (value[0] == '#' && (value.length == 4 || value.length == 7))))) &&\n                opacities\n                  .map(\n                    ([key, opacityValue]): AutocompleteModifier => ({\n                      modifier: key,\n                      theme: { section: opacitySection, key },\n                      color: toColorValue(value as ColorValue, { opacityValue }),\n                    }),\n                  )\n                  .concat([\n                    {\n                      modifier: '[',\n                      color: toColorValue(value as ColorValue, { opacityValue: '1' }),\n                    },\n                  ]),\n            },\n          ]\n        }\n\n        return []\n      }),\n  )\n}\n\n/**\n * @internal\n * @param input\n */\nexport function parseValue(\n  input: string,\n):\n  | [value: string, modifier: string | undefined]\n  | [value: undefined, modifier: string | undefined] {\n  // extract color and opacity\n  // rose-500                  -> ['rose-500']\n  // [hsl(0_100%_/_50%)]       -> ['[hsl(0_100%_/_50%)]']\n  // indigo-500/100            -> ['indigo-500', '100']\n  // [hsl(0_100%_/_50%)]/[.25] -> ['[hsl(0_100%_/_50%)]', '[.25]']\n  return (input.match(/^(\\[[^\\]]+]|[^/]+?)(?:\\/(.+))?$/) || []).slice(1) as [\n    value: string,\n    modifier: string | undefined,\n  ]\n}\n\n/**\n * @internal\n * @param property\n * @param value\n * @returns\n */\nexport function toCSS(property: string, value: string | ColorFromThemeValue): CSSObject {\n  const properties: CSSObject = {}\n\n  if (typeof value === 'string') {\n    properties[property] = value\n  } else {\n    if (value.opacityVariable && value.value.includes(value.opacityVariable)) {\n      properties[value.opacityVariable] = value.opacityValue || '1'\n    }\n\n    properties[property] = value.value\n  }\n\n  return properties\n}\n\n/**\n * @internal\n * @param value\n * @param section\n * @param context\n * @returns\n */\nexport function arbitrary<Theme extends BaseTheme = BaseTheme>(\n  value: string,\n  section: string | undefined,\n  context: Context<Theme>,\n): string | undefined {\n  if (value[0] == '[' && value.slice(-1) == ']') {\n    value = normalize(resolveThemeFunction(value.slice(1, -1), context.theme))\n\n    if (!section) return value\n\n    if (\n      // Respect type hints from the user on ambiguous arbitrary values - https://tailwindcss.com/docs/adding-custom-styles#resolving-ambiguities\n      !(\n        // If this is a color section and the value is a hex color, color function or color name\n        (\n          (/color|fill|stroke/i.test(section) &&\n            !(\n              /^color:/.test(value) || /^(#|((hsl|rgb)a?|hwb|lab|lch|color)\\(|[a-z]+$)/.test(value)\n            )) ||\n          // url(, [a-z]-gradient(, image(, cross-fade(, image-set(\n          (/image/i.test(section) && !(/^image:/.test(value) || /^[a-z-]+\\(/.test(value))) ||\n          // font-*\n          // - fontWeight (type: ['lookup', 'number', 'any'])\n          // - fontFamily (type: ['lookup', 'generic-name', 'family-name'])\n          (/weight/i.test(section) && !(/^(number|any):/.test(value) || /^\\d+$/.test(value))) ||\n          // bg-*\n          // - backgroundPosition (type: ['lookup', ['position', { preferOnConflict: true }]])\n          // - backgroundSize (type: ['lookup', 'length', 'percentage', 'size'])\n          (/position/i.test(section) && /^(length|size):/.test(value))\n        )\n      )\n    ) {\n      // remove arbitrary type prefix — we do not need it but user may use it\n      // https://github.com/tailwindlabs/tailwindcss/blob/master/src/util/dataTypes.js\n      // url, number, percentage, length, line-width, shadow, color, image, gradient, position, family-name, lookup, any, generic-name, absolute-size, relative-size\n      return value.replace(/^[a-z-]+:/, '')\n    }\n  }\n}\n\nfunction camelize(value: string): string {\n  return value.replace(/-./g, (x) => x[1].toUpperCase())\n}\n\n/**\n * @internal\n * @param value\n * @returns\n */\nexport function normalize(value: string): string {\n  // Keep raw strings if it starts with `url(`\n  if (value.includes('url(')) {\n    return value.replace(\n      /(.*?)(url\\(.*?\\))(.*?)/g,\n      (_, before = '', url, after = '') => normalize(before) + url + normalize(after),\n    )\n  }\n\n  return (\n    value\n      // Convert `_` to ` `, except for escaped underscores `\\_`\n      .replace(\n        /(^|[^\\\\])_+/g,\n        (fullMatch, characterBefore: string) =>\n          characterBefore + ' '.repeat(fullMatch.length - characterBefore.length),\n      )\n      .replace(/\\\\_/g, '_')\n\n      // Add spaces around operators inside math functions like calc() that do not follow an operator\n      // or '('.\n      .replace(/(calc|min|max|clamp)\\(.+\\)/g, (match) =>\n        match.replace(\n          /(-?\\d*\\.?\\d(?!\\b-.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g,\n          '$1 $2 ',\n        ),\n      )\n  )\n}\n","import type {\n  BaseTheme,\n  Preset,\n  TwindConfig,\n  TwindUserConfig,\n  ExtractThemes,\n  TwindPresetConfig,\n} from './types'\n\nimport { asArray } from './utils'\n\n/**\n * @group Configuration\n * @param param0\n * @returns\n */\nexport function defineConfig<Theme = BaseTheme, Presets extends Preset<any>[] = Preset[]>({\n  presets = [] as unknown as Presets,\n  ...userConfig\n}: TwindUserConfig<Theme, Presets>): TwindConfig<BaseTheme & ExtractThemes<Theme, Presets>> {\n  // most user config values go first to have precendence over preset config\n  // only `preflight` and `theme` are applied as last preset to override all presets\n  let config: TwindConfig<BaseTheme & ExtractThemes<Theme, Presets>> = {\n    darkMode: undefined,\n    darkColor: undefined,\n    preflight: userConfig.preflight !== false && [],\n    theme: {},\n    variants: asArray(userConfig.variants),\n    rules: asArray(userConfig.rules),\n    ignorelist: asArray(userConfig.ignorelist),\n    hash: undefined,\n    stringify: (property, value) => property + ':' + value,\n    finalize: [],\n  }\n\n  for (const preset of asArray([\n    ...presets,\n    {\n      darkMode: userConfig.darkMode,\n      darkColor: userConfig.darkColor,\n      preflight: userConfig.preflight !== false && asArray(userConfig.preflight),\n      theme: userConfig.theme as TwindConfig<BaseTheme & ExtractThemes<Theme, Presets>>['theme'],\n      hash: userConfig.hash,\n      stringify: userConfig.stringify,\n      finalize: userConfig.finalize,\n    } as TwindPresetConfig<Theme>,\n  ])) {\n    const {\n      preflight,\n      darkMode = config.darkMode,\n      darkColor = config.darkColor,\n      theme,\n      variants,\n      rules,\n      ignorelist,\n      hash = config.hash,\n      stringify = config.stringify,\n      finalize,\n    } = typeof preset == 'function' ? preset(config) : (preset as TwindPresetConfig<Theme>)\n\n    config = {\n      // values defined by user or previous presets take precedence\n      preflight: config.preflight !== false &&\n        preflight !== false && [...config.preflight, ...asArray(preflight)],\n\n      darkMode,\n      darkColor,\n\n      theme: {\n        ...config.theme,\n        ...theme,\n        extend: {\n          ...config.theme.extend,\n          ...theme?.extend,\n        },\n      },\n\n      variants: [...config.variants, ...asArray(variants)],\n      rules: [...config.rules, ...asArray(rules)],\n      ignorelist: [...config.ignorelist, ...asArray(ignorelist)],\n\n      hash,\n      stringify,\n\n      finalize: [...config.finalize, ...asArray(finalize)],\n    } as TwindConfig<BaseTheme & ExtractThemes<Theme, Presets>>\n  }\n\n  return config\n}\n","import type {\n  BaseTheme,\n  Context,\n  RuleResult,\n  TwindConfig,\n  CSSProperties,\n  MatchResult,\n  MaybeArray,\n  RuleResolver,\n  MatchConverter,\n  Rule,\n  CSSObject,\n  Variant,\n  VariantResult,\n  VariantResolver,\n  Falsey,\n} from '../types'\n\nimport { DEV } from 'distilt/env'\n\nimport { makeThemeFunction } from './theme'\nimport { asArray, escape, hash as defaultHash, identity, noop } from '../utils'\nimport { fromMatch } from '../rules'\nimport { warn } from './warn'\n\ntype ResolveFunction<Theme extends BaseTheme = BaseTheme> = (\n  className: string,\n  context: Context<Theme>,\n  isDark?: boolean,\n) => RuleResult\n\ntype VariantFunction<Theme extends BaseTheme = BaseTheme> = (\n  variant: string,\n  context: Context<Theme>,\n) => VariantResult\n\nexport function createContext<Theme extends BaseTheme = BaseTheme>({\n  theme,\n  darkMode,\n  darkColor = noop,\n  variants,\n  rules,\n  hash,\n  stringify,\n  ignorelist,\n  finalize,\n}: TwindConfig<Theme>): Context<Theme> {\n  // Used to cache resolved rule values\n  const variantCache = new Map<string, MaybeArray<string>>()\n\n  // lazy created resolve functions\n  const variantResolvers = new Map<Variant<Theme>, VariantFunction<Theme>>()\n\n  // Used to cache resolved rule values\n  const ruleCache = new Map<string, RuleResult>()\n\n  // lazy created resolve functions\n  const ruleResolvers = new Map<Rule<Theme>, ResolveFunction<Theme>>()\n\n  const ignored = createRegExpExecutor(ignorelist, (value, condition) => condition.test(value))\n\n  const reportedUnknownClasses = /* #__PURE__ */ new Set<string>()\n\n  // add dark as last variant to allow user to override it\n  // we can modify variants as it has been passed through defineConfig which already made a copy\n  variants.push([\n    'dark',\n    Array.isArray(darkMode) || darkMode == 'class'\n      ? `${asArray(darkMode)[1] || '.dark'} &`\n      : typeof darkMode == 'string' && darkMode != 'media'\n      ? darkMode // a custom selector\n      : '@media (prefers-color-scheme:dark)',\n  ])\n\n  const h =\n    typeof hash == 'function'\n      ? (value: string) => hash(value, defaultHash)\n      : hash\n      ? defaultHash\n      : identity\n\n  if (h !== identity) {\n    finalize.push((rule) => ({\n      ...rule,\n      n: rule.n && h(rule.n),\n      d: rule.d?.replace(\n        /--(tw(?:-[\\w-]+)?)\\b/g,\n        (_: string, property: string) => '--' + h(property).replace('#', ''),\n      ),\n    }))\n  }\n\n  const ctx: Context<Theme> = {\n    theme: makeThemeFunction(theme),\n\n    e: escape,\n\n    h,\n\n    s(property, value) {\n      return stringify(property, value, ctx)\n    },\n\n    d(section, key, color) {\n      return darkColor(section, key, ctx, color)\n    },\n\n    v(value) {\n      if (!variantCache.has(value)) {\n        variantCache.set(\n          value,\n          find(value, variants, variantResolvers, getVariantResolver, ctx) || '&:' + value,\n        )\n      }\n\n      return variantCache.get(value) as string\n    },\n\n    r(className, isDark) {\n      const key = JSON.stringify([className, isDark])\n\n      if (!ruleCache.has(key)) {\n        ruleCache.set(\n          key,\n          !ignored(className, ctx) &&\n            find(className, rules, ruleResolvers, getRuleResolver, ctx, isDark),\n        )\n\n        if (DEV) {\n          const rule = ruleCache.get(key)\n          if (rule == null && !reportedUnknownClasses.has(className)) {\n            reportedUnknownClasses.add(className)\n\n            warn(\n              `Unknown class ${JSON.stringify(className)} found.`,\n              'TWIND_INVALID_CLASS',\n              className,\n            )\n          }\n        }\n      }\n\n      return ruleCache.get(key)\n    },\n\n    f(rule) {\n      return finalize.reduce((rule, p) => p(rule, ctx), rule)\n    },\n  }\n\n  return ctx\n}\n\nfunction find<Value, Config, Result, Theme extends BaseTheme = BaseTheme>(\n  value: Value,\n  list: Config[],\n  cache: Map<Config, (value: Value, context: Context<Theme>, isDark?: boolean) => Result>,\n  getResolver: (\n    item: Config,\n  ) => (value: Value, context: Context<Theme>, isDark?: boolean) => Result,\n  context: Context<Theme>,\n  isDark?: boolean,\n) {\n  for (const item of list) {\n    let resolver = cache.get(item)\n\n    if (!resolver) {\n      cache.set(item, (resolver = getResolver(item)))\n    }\n\n    const resolved = resolver(value, context, isDark)\n\n    if (resolved) return resolved\n  }\n}\n\nfunction getVariantResolver<Theme extends BaseTheme = BaseTheme>(\n  variant: Variant<Theme>,\n): VariantFunction<Theme> {\n  return createVariantFunction(variant[0], variant[1])\n}\n\nfunction getRuleResolver<Theme extends BaseTheme = BaseTheme>(\n  rule: Rule<Theme>,\n): ResolveFunction<Theme> {\n  if (Array.isArray(rule)) {\n    return createResolveFunction(rule[0], rule[1], rule[2])\n  }\n\n  return createResolveFunction(rule)\n}\n\nfunction createVariantFunction<Theme extends BaseTheme = BaseTheme>(\n  patterns: MaybeArray<string | RegExp>,\n  resolve: string | VariantResolver<Theme>,\n): VariantFunction<Theme> {\n  return createResolve(patterns, typeof resolve == 'function' ? resolve : () => resolve)\n}\n\nfunction createResolveFunction<Theme extends BaseTheme = BaseTheme>(\n  patterns: MaybeArray<string | RegExp>,\n  resolve?: keyof CSSProperties | string | CSSObject | RuleResolver<Theme>,\n  convert?: MatchConverter<Theme>,\n): ResolveFunction<Theme> {\n  return createResolve(patterns, fromMatch(resolve as keyof CSSProperties, convert))\n}\n\nfunction createResolve<Result, Theme extends BaseTheme = BaseTheme>(\n  patterns: MaybeArray<string | RegExp>,\n  resolve: (match: MatchResult, context: Context<Theme>) => Result,\n): (value: string, context: Context<Theme>, isDark?: boolean) => Result | undefined {\n  return createRegExpExecutor(patterns, (value, condition, context, isDark?: boolean) => {\n    const match = condition.exec(value) as MatchResult | Falsey\n\n    if (match) {\n      // MATCH.$_ = value\n      match.$$ = value.slice(match[0].length)\n      match.dark = isDark\n\n      return resolve(match, context)\n    }\n  })\n}\n\nfunction createRegExpExecutor<Result, Theme extends BaseTheme = any>(\n  patterns: MaybeArray<string | RegExp>,\n  run: (value: string, condition: RegExp, context: Context<Theme>, isDark?: boolean) => Result,\n): (value: string, context: Context<Theme>, isDark?: boolean) => Result | undefined {\n  const conditions = asArray(patterns).map(toCondition)\n\n  return (value, context, isDark) => {\n    for (const condition of conditions) {\n      const result = run(value, condition, context, isDark)\n\n      if (result) return result\n    }\n  }\n}\n\nexport function toCondition(value: string | RegExp): RegExp {\n  // \"visible\" -> /^visible$/\n  // \"(float)-(left|right|none)\" -> /^(float)-(left|right|none)$/\n  // \"auto-rows-\" -> /^auto-rows-/\n  // \"gap(-|$)\" -> /^gap(-|$)/\n  return typeof value == 'string'\n    ? new RegExp('^' + value + (value.includes('$') || value.slice(-1) == '-' ? '' : '$'))\n    : value\n}\n","import { warn } from './internal/warn'\nimport type { Sheet, SheetRule } from './types'\nimport { asArray, noop } from './utils'\n\nfunction getStyleElement(selector: string | null | undefined | false): HTMLStyleElement {\n  let style = document.querySelector(selector || 'style[data-twind=\"\"]')\n\n  if (!style || style.tagName != 'STYLE') {\n    style = document.createElement('style')\n    document.head.prepend(style)\n  }\n\n  ;(style as HTMLElement).dataset.twind = 'claimed'\n\n  return style as HTMLStyleElement\n}\n\n/**\n * @group Sheets\n * @param element\n * @returns\n */\nexport function cssom(\n  element?: CSSStyleSheet | HTMLStyleElement | string | null | false,\n): Sheet<CSSStyleSheet> {\n  const target = (element as CSSStyleSheet)?.cssRules\n    ? (element as CSSStyleSheet)\n    : ((element && typeof element != 'string'\n        ? (element as HTMLStyleElement)\n        : getStyleElement(element)\n      ).sheet as CSSStyleSheet)\n\n  return {\n    target,\n\n    snapshot() {\n      // collect current rules\n      const rules = Array.from(target.cssRules, (rule) => rule.cssText)\n\n      return () => {\n        // remove all existing rules\n        this.clear()\n\n        // add all snapshot rules back\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        rules.forEach(this.insert as (cssText: string, index: number) => void)\n      }\n    },\n\n    clear() {\n      // remove all added rules\n      for (let index = target.cssRules.length; index--; ) {\n        target.deleteRule(index)\n      }\n    },\n\n    destroy() {\n      target.ownerNode?.remove()\n    },\n\n    insert(cssText, index) {\n      try {\n        // Insert\n        target.insertRule(cssText, index)\n      } catch (error) {\n        // Empty rule to keep index valid — not using `*{}` as that would show up in all rules (DX)\n        target.insertRule(':root{}', index)\n\n        // Some thrown errors are because of specific pseudo classes\n        // lets filter them to prevent unnecessary warnings\n        // ::-moz-focus-inner\n        // :-moz-focusring\n        if (!/:-[mwo]/.test(cssText)) {\n          warn((error as Error).message, 'TWIND_INVALID_CSS', cssText)\n        }\n      }\n    },\n\n    resume: noop,\n  }\n}\n\n/**\n * @group Sheets\n * @param element\n * @returns\n */\nexport function dom(element?: HTMLStyleElement | string | null | false): Sheet<HTMLStyleElement> {\n  const target = element && typeof element != 'string' ? element : getStyleElement(element)\n\n  return {\n    target,\n\n    snapshot() {\n      // collect current rules\n      const rules = Array.from(target.childNodes, (node) => node.textContent as string)\n\n      return () => {\n        // remove all existing rules\n        this.clear()\n\n        // add all snapshot rules back\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        rules.forEach(this.insert as (cssText: string, index: number) => void)\n      }\n    },\n\n    clear() {\n      target.textContent = ''\n    },\n\n    destroy() {\n      target.remove()\n    },\n\n    insert(cssText, index) {\n      target.insertBefore(document.createTextNode(cssText), target.childNodes[index] || null)\n    },\n\n    resume: noop,\n  }\n}\n\n/**\n * @group Sheets\n * @param includeResumeData\n * @returns\n */\nexport function virtual(includeResumeData?: boolean): Sheet<string[]> {\n  const target: string[] = []\n\n  return {\n    target,\n\n    snapshot() {\n      // collect current rules\n      const rules = [...target]\n\n      return () => {\n        // remove all existing rules and add all snapshot rules back\n        target.splice(0, target.length, ...rules)\n      }\n    },\n\n    clear() {\n      target.length = 0\n    },\n\n    destroy() {\n      this.clear()\n    },\n\n    insert(css, index, rule) {\n      target.splice(\n        index,\n        0,\n        includeResumeData\n          ? `/*!${rule.p.toString(36)},${(rule.o * 2).toString(36)}${\n              rule.n ? ',' + rule.n : ''\n            }*/${css}`\n          : css,\n      )\n    },\n\n    resume: noop,\n  }\n}\n\n/**\n * Returns a sheet useable in the current environment.\n *\n * @group Sheets\n * @param useDOMSheet usually something like `process.env.NODE_ENV != 'production'` or `import.meta.env.DEV` (default: browser={@link cssom}, server={@link virtual})\n * @param disableResume to not include or use resume data\n * @returns a sheet to use\n */\nexport function getSheet(\n  useDOMSheet?: boolean,\n  disableResume?: boolean,\n): Sheet<string[] | HTMLStyleElement | CSSStyleSheet> {\n  const sheet =\n    typeof document == 'undefined' ? virtual(!disableResume) : useDOMSheet ? dom() : cssom()\n\n  if (!disableResume) sheet.resume = resume\n\n  return sheet\n}\n\n/**\n * @group Sheets\n * @param target\n * @returns\n */\nexport function stringify(target: unknown): string {\n  // string[] | CSSStyleSheet | HTMLStyleElement\n  return (\n    // prefer the raw text content of a CSSStyleSheet as it may include the resume data\n    ((target as CSSStyleSheet).ownerNode || (target as HTMLStyleElement)).textContent ||\n    ((target as CSSStyleSheet).cssRules\n      ? Array.from((target as CSSStyleSheet).cssRules, (rule) => rule.cssText)\n      : asArray(target)\n    ).join('')\n  )\n}\n\nfunction resume(\n  this: Sheet,\n  addClassName: (className: string) => void,\n  insert: (cssText: string, rule: SheetRule) => void,\n) {\n  // hydration from SSR sheet\n  const textContent = stringify(this.target)\n  const RE = /\\/\\*!([\\da-z]+),([\\da-z]+)(?:,(.+?))?\\*\\//g\n\n  // only if this is a hydratable sheet\n  if (RE.test(textContent)) {\n    // RE has global flag — reset index to get the first match as well\n    RE.lastIndex = 0\n\n    // 1. start with a fresh sheet\n    this.clear()\n\n    // 2. add all existing class attributes to the token/className cache\n    if (typeof document != 'undefined') {\n      for (const el of document.querySelectorAll('[class]')) {\n        addClassName(el.getAttribute('class') as string)\n      }\n    }\n\n    // 3. parse SSR styles\n    let lastMatch: RegExpExecArray | null | undefined\n\n    while (\n      (function commit(match?: RegExpExecArray | null) {\n        if (lastMatch) {\n          insert(\n            // grep the cssText from the previous match end up to this match start\n            textContent.slice(lastMatch.index + lastMatch[0].length, match?.index),\n            {\n              p: parseInt(lastMatch[1], 36),\n              o: parseInt(lastMatch[2], 36) / 2,\n              n: lastMatch[3],\n            },\n          )\n        }\n\n        return (lastMatch = match)\n      })(RE.exec(textContent))\n    ) {\n      /* no-op */\n    }\n  }\n}\n","var i=new Map([[\"align-self\",\"-ms-grid-row-align\"],[\"color-adjust\",\"-webkit-print-color-adjust\"],[\"column-gap\",\"grid-column-gap\"],[\"forced-color-adjust\",\"-ms-high-contrast-adjust\"],[\"gap\",\"grid-gap\"],[\"grid-template-columns\",\"-ms-grid-columns\"],[\"grid-template-rows\",\"-ms-grid-rows\"],[\"justify-self\",\"-ms-grid-column-align\"],[\"margin-inline-end\",\"-webkit-margin-end\"],[\"margin-inline-start\",\"-webkit-margin-start\"],[\"mask-border\",\"-webkit-mask-box-image\"],[\"mask-border-outset\",\"-webkit-mask-box-image-outset\"],[\"mask-border-slice\",\"-webkit-mask-box-image-slice\"],[\"mask-border-source\",\"-webkit-mask-box-image-source\"],[\"mask-border-repeat\",\"-webkit-mask-box-image-repeat\"],[\"mask-border-width\",\"-webkit-mask-box-image-width\"],[\"overflow-wrap\",\"word-wrap\"],[\"padding-inline-end\",\"-webkit-padding-end\"],[\"padding-inline-start\",\"-webkit-padding-start\"],[\"print-color-adjust\",\"color-adjust\"],[\"row-gap\",\"grid-row-gap\"],[\"scroll-margin-bottom\",\"scroll-snap-margin-bottom\"],[\"scroll-margin-left\",\"scroll-snap-margin-left\"],[\"scroll-margin-right\",\"scroll-snap-margin-right\"],[\"scroll-margin-top\",\"scroll-snap-margin-top\"],[\"scroll-margin\",\"scroll-snap-margin\"],[\"text-combine-upright\",\"-ms-text-combine-horizontal\"]]);function r(r){return i.get(r)}function a(i){var r=/^(?:(text-(?:decoration$|e|or|si)|back(?:ground-cl|d|f)|box-d|mask(?:$|-[ispro]|-cl)|pr|hyphena|flex-d)|(tab-|column(?!-s)|text-align-l)|(ap)|u|hy)/i.exec(i);return r?r[1]?1:r[2]?2:r[3]?3:5:0}function t(i,r){var a=/^(?:(pos)|(cli)|(background-i)|(flex(?:$|-b)|(?:max-|min-)?(?:block-s|inl|he|widt))|dis)/i.exec(i);return a?a[1]?/^sti/i.test(r)?1:0:a[2]?/^pat/i.test(r)?1:0:a[3]?/^image-/i.test(r)?1:0:a[4]?\"-\"===r[3]?2:0:/^(?:inline-)?grid$/i.test(r)?4:0:0}export{r as cssPropertyAlias,a as cssPropertyPrefixFlags,t as cssValuePrefixFlags};\n//# sourceMappingURL=bundle.min.mjs.map\n","import type { Preset } from '@twind/core'\n\nimport { cssPropertyAlias, cssPropertyPrefixFlags, cssValuePrefixFlags } from 'style-vendorizer'\n\nconst CSSPrefixFlags = [\n  ['-webkit-', 1 << 0], // 0b001\n  ['-moz-', 1 << 1], // 0b010\n  ['-ms-', 1 << 2], // 0b100\n] as const\n\nexport default function presetAutoprefix(): Preset {\n  return ({ stringify }) => ({\n    stringify(property, value, context) {\n      let cssText = ''\n\n      // Resolve aliases, e.g. `gap` -> `grid-gap`\n      const propertyAlias = cssPropertyAlias(property)\n      if (propertyAlias) cssText += stringify(propertyAlias, value, context) + ';'\n\n      // Prefix properties, e.g. `backdrop-filter` -> `-webkit-backdrop-filter`\n      const propertyFlags = cssPropertyPrefixFlags(property)\n      const valueFlags = cssValuePrefixFlags(property, value)\n\n      for (const prefix of CSSPrefixFlags) {\n        if (propertyFlags & prefix[1]) {\n          cssText += stringify(prefix[0] + property, value, context) + ';'\n        }\n\n        if (valueFlags & prefix[1]) {\n          cssText += stringify(property, prefix[0] + value, context) + ';'\n        }\n      }\n\n      /* Include the standardized declaration last */\n      /* https://css-tricks.com/ordering-css3-properties/ */\n      return cssText + stringify(property, value, context)\n    },\n  })\n}\n","/**\n * @module @twind/preset-tailwind/baseTheme\n */\n\nimport type { ThemeSection, ThemeSectionResolver } from '@twind/core'\nimport type { TailwindTheme } from './types'\n\nexport type OmitedSections =\n  | 'aria'\n  | 'backgroundPosition'\n  | 'colors'\n  | 'container'\n  | 'cursor'\n  | 'data'\n  | 'gridColumnEnd'\n  | 'gridColumnStart'\n  | 'gridRowEnd'\n  | 'gridRowStart'\n  | 'listStyleType'\n  | 'objectPosition'\n  | 'supports'\n  | 'transformOrigin'\n\nexport type StableSections =\n  | 'screens'\n  | 'columns'\n  | 'spacing'\n  | 'durations'\n  | 'borderRadius'\n  | 'borderWidth'\n  | 'boxShadow'\n  | 'fontFamily'\n  | 'fontSize'\n\nexport type BaseTheme = {\n  [Section in StableSections]: Section extends 'fontSize'\n    ? {\n        xs: [size: string, lineHeight: string]\n        sm: [size: string, lineHeight: string]\n        base: [size: string, lineHeight: string]\n        lg: [size: string, lineHeight: string]\n        xl: [size: string, lineHeight: string]\n        '2xl': [size: string, lineHeight: string]\n        '3xl': [size: string, lineHeight: string]\n        '4xl': [size: string, lineHeight: string]\n        '5xl': [size: string, lineHeight: string]\n        '6xl': [size: string, lineHeight: string]\n        '7xl': [size: string, lineHeight: string]\n        '8xl': [size: string, lineHeight: string]\n        '9xl': [size: string, lineHeight: string]\n      }\n    : TailwindTheme[Section]\n} & {\n  [Section in Exclude<keyof TailwindTheme, StableSections | OmitedSections>]: ThemeSection<\n    TailwindTheme[Section],\n    TailwindTheme\n  >\n} & {\n  [Section in OmitedSections]?: ThemeSection<TailwindTheme[Section], TailwindTheme>\n}\n\n/**\n * @experimental\n */\nconst theme: BaseTheme = {\n  screens: {\n    sm: '640px',\n    md: '768px',\n    lg: '1024px',\n    xl: '1280px',\n    '2xl': '1536px',\n  },\n\n  columns: {\n    auto: 'auto',\n    // Handled by plugin,\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\n  spacing: {\n    px: '1px',\n    0: '0px',\n    .../* #__PURE__ */ linear(4, 'rem', 4, 0.5, 0.5),\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    .../* #__PURE__ */ linear(12, 'rem', 4, 5),\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    .../* #__PURE__ */ linear(64, 'rem', 4, 16, 4),\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\n  durations: {\n    75: '75ms',\n    100: '100ms',\n    150: '150ms',\n    200: '200ms',\n    300: '300ms',\n    500: '500ms',\n    700: '700ms',\n    1000: '1000ms',\n  },\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\n  aspectRatio: {\n    auto: 'auto',\n    square: '1/1',\n    video: '16/9',\n  },\n\n  backdropBlur: /* #__PURE__ */ alias('blur'),\n  backdropBrightness: /* #__PURE__ */ alias('brightness'),\n  backdropContrast: /* #__PURE__ */ alias('contrast'),\n  backdropGrayscale: /* #__PURE__ */ alias('grayscale'),\n  backdropHueRotate: /* #__PURE__ */ alias('hueRotate'),\n  backdropInvert: /* #__PURE__ */ alias('invert'),\n  backdropOpacity: /* #__PURE__ */ alias('opacity'),\n  backdropSaturate: /* #__PURE__ */ alias('saturate'),\n  backdropSepia: /* #__PURE__ */ alias('sepia'),\n\n  backgroundColor: /* #__PURE__ */ alias('colors'),\n  backgroundImage: {\n    none: 'none',\n    // These are built-in\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: /* #__PURE__ */ alias('opacity'),\n  // backgroundPosition: {\n  //   // The following are already handled by the plugin:\n  //   // center, right, left, bottom, top\n  //   // 'bottom-10px-right-20px' -> bottom 10px right 20px\n  // },\n  backgroundSize: {\n    auto: 'auto',\n    cover: 'cover',\n    contain: 'contain',\n  },\n  blur: {\n    none: 'none',\n    0: '0',\n    sm: '4px',\n    DEFAULT: '8px',\n    md: '12px',\n    lg: '16px',\n    xl: '24px',\n    '2xl': '40px',\n    '3xl': '64px',\n  },\n  brightness: {\n    .../* #__PURE__ */ linear(200, '', 100, 0, 50),\n    // 0: '0',\n    // 50: '.5',\n    // 150: '1.5',\n    // 200: '2',\n\n    .../* #__PURE__ */ linear(110, '', 100, 90, 5),\n    // 90: '.9',\n    // 95: '.95',\n    // 100: '1',\n    // 105: '1.05',\n    // 110: '1.1',\n    75: '0.75',\n    125: '1.25',\n  },\n  borderColor: ({ theme }) => ({\n    DEFAULT: theme('colors.gray.200', 'currentColor'),\n    ...theme('colors'),\n  }),\n  borderOpacity: /* #__PURE__ */ alias('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    '1/2': '50%',\n    full: '9999px',\n  },\n  borderSpacing: /* #__PURE__ */ alias('spacing'),\n  borderWidth: {\n    DEFAULT: '1px',\n    .../* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n  },\n  boxShadow: {\n    sm: '0 1px 2px 0 rgba(0,0,0,0.05)',\n    DEFAULT: '0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)',\n    md: '0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)',\n    lg: '0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)',\n    xl: '0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)',\n    '2xl': '0 25px 50px -12px rgba(0,0,0,0.25)',\n    inner: 'inset 0 2px 4px 0 rgba(0,0,0,0.05)',\n    none: '0 0 #0000',\n  },\n  boxShadowColor: alias('colors'),\n  // container: {},\n  // cursor: {\n  //   // Default values are handled by plugin\n  // },\n  caretColor: /* #__PURE__ */ alias('colors'),\n  accentColor: ({ theme }) => ({\n    auto: 'auto',\n    ...theme('colors'),\n  }),\n  contrast: {\n    .../* #__PURE__ */ linear(200, '', 100, 0, 50),\n    // 0: '0',\n    // 50: '.5',\n    // 150: '1.5',\n    // 200: '2',\n    75: '0.75',\n    125: '1.25',\n  },\n  content: {\n    none: 'none',\n  },\n  divideColor: /* #__PURE__ */ alias('borderColor'),\n  divideOpacity: /* #__PURE__ */ alias('borderOpacity'),\n  divideWidth: /* #__PURE__ */ alias('borderWidth'),\n  dropShadow: {\n    sm: '0 1px 1px rgba(0,0,0,0.05)',\n    DEFAULT: ['0 1px 2px rgba(0,0,0,0.1)', '0 1px 1px rgba(0,0,0,0.06)'],\n    md: ['0 4px 3px rgba(0,0,0,0.07)', '0 2px 2px rgba(0,0,0,0.06)'],\n    lg: ['0 10px 8px rgba(0,0,0,0.04)', '0 4px 3px rgba(0,0,0,0.1)'],\n    xl: ['0 20px 13px rgba(0,0,0,0.03)', '0 8px 5px rgba(0,0,0,0.08)'],\n    '2xl': '0 25px 25px rgba(0,0,0,0.15)',\n    none: '0 0 #0000',\n  },\n  fill: ({ theme }) => ({\n    ...theme('colors'),\n    none: 'none',\n  }),\n  grayscale: {\n    DEFAULT: '100%',\n    0: '0',\n  },\n  hueRotate: {\n    0: '0deg',\n    15: '15deg',\n    30: '30deg',\n    60: '60deg',\n    90: '90deg',\n    180: '180deg',\n  },\n  invert: {\n    DEFAULT: '100%',\n    0: '0',\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    ...theme('spacing'),\n    ...ratios(2, 6),\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\n    ...ratios(12, 12),\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\n    auto: 'auto',\n    full: '100%',\n  }),\n  flexGrow: {\n    DEFAULT: 1,\n    0: 0,\n  },\n  flexShrink: {\n    DEFAULT: 1,\n    0: 0,\n  },\n  fontFamily: {\n    sans: 'ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"'.split(\n      ',',\n    ),\n    serif: 'ui-serif,Georgia,Cambria,\"Times New Roman\",Times,serif'.split(','),\n    mono: 'ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace'.split(\n      ',',\n    ),\n  },\n  fontSize: {\n    xs: ['0.75rem', '1rem'],\n    sm: ['0.875rem', '1.25rem'],\n    base: ['1rem', '1.5rem'],\n    lg: ['1.125rem', '1.75rem'],\n    xl: ['1.25rem', '1.75rem'],\n    '2xl': ['1.5rem', '2rem'],\n    '3xl': ['1.875rem', '2.25rem'],\n    '4xl': ['2.25rem', '2.5rem'],\n    '5xl': ['3rem', '1'],\n    '6xl': ['3.75rem', '1'],\n    '7xl': ['4.5rem', '1'],\n    '8xl': ['6rem', '1'],\n    '9xl': ['8rem', '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: /* #__PURE__ */ alias('spacing'),\n  gradientColorStops: /* #__PURE__ */ alias('colors'),\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    // span-X is handled by the plugin: span-1 -> span 1 / span 1\n    auto: 'auto',\n    'span-full': '1 / -1',\n  },\n  // gridColumnEnd: {\n  //   // Defaults handled by plugin\n  // },\n  // gridColumnStart: {\n  //   // Defaults handled by plugin\n  // },\n  gridRow: {\n    // span-X is handled by the plugin: span-1 -> span 1 / span 1\n    auto: 'auto',\n    'span-full': '1 / -1',\n  },\n  // gridRowStart: {\n  //   // Defaults handled by plugin\n  // },\n  // gridRowEnd: {\n  //   // Defaults handled by plugin\n  // },\n  gridTemplateColumns: {\n    // numbers are handled by the plugin: 1 -> repeat(1, minmax(0, 1fr))\n    none: 'none',\n  },\n  gridTemplateRows: {\n    // numbers are handled by the plugin: 1 -> repeat(1, minmax(0, 1fr))\n    none: 'none',\n  },\n  height: ({ theme }) => ({\n    ...theme('spacing'),\n    ...ratios(2, 6),\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    min: 'min-content',\n    max: 'max-content',\n    fit: 'fit-content',\n    auto: 'auto',\n    full: '100%',\n    screen: '100vh',\n  }),\n  inset: ({ theme }) => ({\n    ...theme('spacing'),\n    ...ratios(2, 4),\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    auto: 'auto',\n    full: '100%',\n  }),\n  keyframes: {\n    spin: {\n      from: {\n        transform: 'rotate(0deg)',\n      },\n      to: {\n        transform: 'rotate(360deg)',\n      },\n    },\n    ping: {\n      '0%': {\n        transform: 'scale(1)',\n        opacity: '1',\n      },\n      '75%,100%': {\n        transform: 'scale(2)',\n        opacity: '0',\n      },\n    },\n    pulse: {\n      '0%,100%': {\n        opacity: '1',\n      },\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    .../* #__PURE__ */ linear(10, 'rem', 4, 3),\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    none: '1',\n    tight: '1.25',\n    snug: '1.375',\n    normal: '1.5',\n    relaxed: '1.625',\n    loose: '2',\n  },\n  // listStyleType: {\n  //   // Defaults handled by plugin\n  // },\n  margin: ({ theme }) => ({\n    auto: 'auto',\n    ...theme('spacing'),\n  }),\n  maxHeight: ({ theme }) => ({\n    full: '100%',\n    min: 'min-content',\n    max: 'max-content',\n    fit: 'fit-content',\n    screen: '100vh',\n    ...theme('spacing'),\n  }),\n  maxWidth: ({ theme, breakpoints }) => ({\n    ...breakpoints(theme('screens')),\n    none: 'none',\n    0: '0rem',\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  }),\n  minHeight: {\n    0: '0px',\n    full: '100%',\n    min: 'min-content',\n    max: 'max-content',\n    fit: 'fit-content',\n    screen: '100vh',\n  },\n  minWidth: {\n    0: '0px',\n    full: '100%',\n    min: 'min-content',\n    max: 'max-content',\n    fit: 'fit-content',\n  },\n  // objectPosition: {\n  //   // The plugins joins all arguments by default\n  // },\n  opacity: {\n    .../* #__PURE__ */ linear(100, '', 100, 0, 10),\n    // 0: '0',\n    // 10: '0.1',\n    // 20: '0.2',\n    // 30: '0.3',\n    // 40: '0.4',\n    // 60: '0.6',\n    // 70: '0.7',\n    // 80: '0.8',\n    // 90: '0.9',\n    // 100: '1',\n    5: '0.05',\n    25: '0.25',\n    75: '0.75',\n    95: '0.95',\n  },\n  order: {\n    // Handled by plugin\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    first: '-9999',\n    last: '9999',\n    none: '0',\n  },\n  padding: /* #__PURE__ */ alias('spacing'),\n  placeholderColor: /* #__PURE__ */ alias('colors'),\n  placeholderOpacity: /* #__PURE__ */ alias('opacity'),\n  outlineColor: /* #__PURE__ */ alias('colors'),\n  outlineOffset: /* #__PURE__ */ exponential(8, 'px'),\n  // 0: '0px',\n  // 1: '1px',\n  // 2: '2px',\n  // 4: '4px',\n  // 8: '8px',,\n  outlineWidth: /* #__PURE__ */ exponential(8, 'px'),\n  // 0: '0px',\n  // 1: '1px',\n  // 2: '2px',\n  // 4: '4px',\n  // 8: '8px',,\n  ringColor: ({ theme }) => ({\n    ...theme('colors'),\n    DEFAULT: '#3b82f6',\n  }),\n  ringOffsetColor: /* #__PURE__ */ alias('colors'),\n  ringOffsetWidth: /* #__PURE__ */ exponential(8, 'px'),\n  // 0: '0px',\n  // 1: '1px',\n  // 2: '2px',\n  // 4: '4px',\n  // 8: '8px',,\n  ringOpacity: ({ theme }) => ({\n    ...theme('opacity'),\n    DEFAULT: '0.5',\n  }),\n  ringWidth: {\n    DEFAULT: '3px',\n    .../* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n  },\n  rotate: {\n    .../* #__PURE__ */ exponential(2, 'deg'),\n    // 0: '0deg',\n    // 1: '1deg',\n    // 2: '2deg',\n    .../* #__PURE__ */ exponential(12, 'deg', 3),\n    // 3: '3deg',\n    // 6: '6deg',\n    // 12: '12deg',\n    .../* #__PURE__ */ exponential(180, 'deg', 45),\n    // 45: '45deg',\n    // 90: '90deg',\n    // 180: '180deg',\n  },\n  saturate: /* #__PURE__ */ linear(200, '', 100, 0, 50),\n  // 0: '0',\n  // 50: '.5',\n  // 100: '1',\n  // 150: '1.5',\n  // 200: '2',\n  scale: {\n    .../* #__PURE__ */ linear(150, '', 100, 0, 50),\n    // 0: '0',\n    // 50: '.5',\n    // 150: '1.5',\n    .../* #__PURE__ */ linear(110, '', 100, 90, 5),\n    // 90: '.9',\n    // 95: '.95',\n    // 100: '1',\n    // 105: '1.05',\n    // 110: '1.1',\n    75: '0.75',\n    125: '1.25',\n  },\n  scrollMargin: /* #__PURE__ */ alias('spacing'),\n  scrollPadding: /* #__PURE__ */ alias('spacing'),\n  sepia: {\n    0: '0',\n    DEFAULT: '100%',\n  },\n  skew: {\n    .../* #__PURE__ */ exponential(2, 'deg'),\n    // 0: '0deg',\n    // 1: '1deg',\n    // 2: '2deg',\n    .../* #__PURE__ */ exponential(12, 'deg', 3),\n    // 3: '3deg',\n    // 6: '6deg',\n    // 12: '12deg',\n  },\n  space: /* #__PURE__ */ alias('spacing'),\n  stroke: ({ theme }) => ({\n    ...theme('colors'),\n    none: 'none',\n  }),\n  strokeWidth: /* #__PURE__ */ linear(2),\n  // 0: '0',\n  // 1: '1',\n  // 2: '2',,\n  textColor: /* #__PURE__ */ alias('colors'),\n  textDecorationColor: /* #__PURE__ */ alias('colors'),\n  textDecorationThickness: {\n    'from-font': 'from-font',\n    auto: 'auto',\n    .../* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n  },\n  textUnderlineOffset: {\n    auto: 'auto',\n    .../* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n  },\n  textIndent: /* #__PURE__ */ alias('spacing'),\n  textOpacity: /* #__PURE__ */ alias('opacity'),\n  // transformOrigin: {\n  //   // The following are already handled by the plugin:\n  //   // center, right, left, bottom, top\n  //   // 'bottom-10px-right-20px' -> bottom 10px right 20px\n  // },\n  transitionDuration: ({ theme }) => ({\n    ...theme('durations'),\n    DEFAULT: '150ms',\n  }),\n  transitionDelay: /* #__PURE__ */ alias('durations'),\n  transitionProperty: {\n    none: 'none',\n    all: 'all',\n    DEFAULT:\n      '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    ...ratios(2, 4),\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  width: ({ theme }) => ({\n    min: 'min-content',\n    max: 'max-content',\n    fit: 'fit-content',\n    screen: '100vw',\n    ...theme('flexBasis'),\n  }),\n  willChange: {\n    scroll: 'scroll-position',\n    // other options handled by rules\n    // auto: 'auto',\n    // contents: 'contents',\n    // transform: 'transform',\n  },\n  zIndex: {\n    .../* #__PURE__ */ linear(50, '', 1, 0, 10),\n    // 0: '0',\n    // 10: '10',\n    // 20: '20',\n    // 30: '30',\n    // 40: '40',\n    // 50: '50',\n    auto: 'auto',\n  },\n}\n\nexport default theme\n\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%',\nfunction ratios(start: number, end: number): Record<string, string> {\n  const result: Record<string, string> = {}\n\n  do {\n    // XXX: using var to avoid strange bug when generating cjs where `= 1` is removed\n    // eslint-disable-next-line no-var\n    for (var dividend = 1; dividend < start; dividend++) {\n      result[`${dividend}/${start}`] = Number(((dividend / start) * 100).toFixed(6)) + '%'\n    }\n  } while (++start <= end)\n\n  return result\n}\n\n// 0: '0px',\n// 2: '2px',\n// 4: '4px',\n// 8: '8px',\nfunction exponential(stop: number, unit: string, start = 0): Record<string, string> {\n  const result: Record<string, string> = {}\n\n  for (; start <= stop; start = start * 2 || 1) {\n    result[start] = start + unit\n  }\n\n  return result\n}\n\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',\nfunction linear(\n  stop: number,\n  unit = '',\n  divideBy = 1,\n  start = 0,\n  step = 1,\n  result: Record<string, string> = {},\n  // eslint-disable-next-line max-params\n): Record<string, string> {\n  for (; start <= stop; start += step) {\n    result[start] = start / divideBy + unit\n  }\n\n  return result\n}\n\nfunction alias<Section extends keyof TailwindTheme>(\n  section: Section,\n): ThemeSectionResolver<TailwindTheme[Section], TailwindTheme> {\n  return ({ theme }) => theme(section)\n}\n","/**\n * @module @twind/preset-tailwind/preflight\n */\n\nimport type { Preflight } from '@twind/core'\n\nimport baseTheme from './baseTheme'\n\nconst preflight: Preflight = {\n  /*\n    1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n    2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n    */\n  '*,::before,::after': {\n    boxSizing: 'border-box' /* 1 */,\n    borderWidth: '0' /* 2 */,\n    borderStyle: 'solid' /* 2 */,\n    borderColor: 'theme(borderColor.DEFAULT, currentColor)' /* 2 */,\n  },\n\n  '::before,::after': { '--tw-content': \"''\" },\n\n  /*\n    1. Use a consistent sensible line-height in all browsers.\n    2. Prevent adjustments of font size after orientation changes in iOS.\n    3. Use a more readable tab size.\n    4. Use the user's configured `sans` font-family by default.\n    5. Use the user's configured `sans` font-feature-settings by default.\n    */\n  html: {\n    lineHeight: 1.5 /* 1 */,\n    WebkitTextSizeAdjust: '100%' /* 2 */,\n    MozTabSize: '4' /* 3 */,\n    tabSize: 4 /* 3 */,\n    fontFamily: `theme(fontFamily.sans, ${\n      (baseTheme.fontFamily as Record<string, string>).sans\n    })` /* 4 */,\n    fontFeatureSettings: 'theme(fontFamily.sans[1].fontFeatureSettings, normal)' /* 5 */,\n  },\n\n  /*\n    1. Remove the margin in all browsers.\n    2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n    */\n  body: { margin: '0' /* 1 */, lineHeight: 'inherit' /* 2 */ },\n\n  /*\n    1. Add the correct height in Firefox.\n    2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n    3. Ensure horizontal rules are visible by default.\n    */\n  hr: { height: '0' /* 1 */, color: 'inherit', /* 2 */ borderTopWidth: '1px' /* 3 */ },\n\n  /*\n    Add the correct text decoration in Chrome, Edge, and Safari.\n    */\n  'abbr:where([title])': { textDecoration: 'underline dotted' },\n\n  /*\n    Remove the default font size and weight for headings.\n    */\n  'h1,h2,h3,h4,h5,h6': { fontSize: 'inherit', fontWeight: 'inherit' },\n\n  /*\n    Reset links to optimize for opt-in styling instead of opt-out.\n    */\n  a: { color: 'inherit', textDecoration: 'inherit' },\n\n  /*\n    Add the correct font weight in Edge and Safari.\n    */\n  'b,strong': { fontWeight: 'bolder' },\n\n  /*\n    1. Use the user's configured `mono` font family by default.\n    2. Use the user's configured `mono` font-feature-settings by default.\n    3. Correct the odd `em` font sizing in all browsers.\n    */\n  'code,kbd,samp,pre': {\n    fontFamily: `theme(fontFamily.mono, ${(baseTheme.fontFamily as Record<string, string>).mono})`,\n    fontFeatureSettings: 'theme(fontFamily.mono[1].fontFeatureSettings, normal)',\n    fontSize: '1em',\n  },\n\n  /*\n    Add the correct font size in all browsers.\n    */\n  small: { fontSize: '80%' },\n\n  /*\n    Prevent `sub` and `sup` elements from affecting the line height in all browsers.\n    */\n  'sub,sup': {\n    fontSize: '75%',\n    lineHeight: 0,\n    position: 'relative',\n    verticalAlign: 'baseline',\n  },\n  sub: { bottom: '-0.25em' },\n  sup: { top: '-0.5em' },\n\n  /*\n    1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n    2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n    3. Remove gaps between table borders by default.\n    */\n  table: {\n    textIndent: '0' /* 1 */,\n    borderColor: 'inherit' /* 2 */,\n    borderCollapse: 'collapse' /* 3 */,\n  },\n\n  /*\n    1. Change the font styles in all browsers.\n    2. Remove the margin in Firefox and Safari.\n    3. Remove default padding in all browsers.\n    */\n  'button,input,optgroup,select,textarea': {\n    fontFamily: 'inherit' /* 1 */,\n    fontSize: '100%' /* 1 */,\n    lineHeight: 'inherit' /* 1 */,\n    color: 'inherit' /* 1 */,\n    margin: '0' /* 2 */,\n    padding: '0' /* 3 */,\n  },\n\n  /*\n    Remove the inheritance of text transform in Edge and Firefox.\n    */\n  'button,select': { textTransform: 'none' },\n\n  /*\n    1. Correct the inability to style clickable types in iOS and Safari.\n    2. Remove default button styles.\n    */\n  \"button,[type='button'],[type='reset'],[type='submit']\": {\n    WebkitAppearance: 'button' /* 1 */,\n    backgroundColor: 'transparent' /* 2 */,\n    backgroundImage: 'none' /* 4 */,\n  },\n\n  /*\n    Use the modern Firefox focus style for all focusable elements.\n    */\n  ':-moz-focusring': { outline: 'auto' },\n\n  /*\n    Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n    */\n  ':-moz-ui-invalid': { boxShadow: 'none' },\n\n  /*\n    Add the correct vertical alignment in Chrome and Firefox.\n    */\n  progress: { verticalAlign: 'baseline' },\n\n  /*\n    Correct the cursor style of increment and decrement buttons in Safari.\n    */\n  '::-webkit-inner-spin-button,::-webkit-outer-spin-button': {\n    height: 'auto',\n  },\n\n  /*\n    1. Correct the odd appearance in Chrome and Safari.\n    2. Correct the outline style in Safari.\n    */\n  \"[type='search']\": { WebkitAppearance: 'textfield' /* 1 */, outlineOffset: '-2px' /* 2 */ },\n\n  /*\n    Remove the inner padding in Chrome and Safari on macOS.\n    */\n  '::-webkit-search-decoration': { WebkitAppearance: 'none' },\n\n  /*\n    1. Correct the inability to style clickable types in iOS and Safari.\n    2. Change font properties to `inherit` in Safari.\n    */\n  '::-webkit-file-upload-button': {\n    WebkitAppearance: 'button' /* 1 */,\n    font: 'inherit' /* 2 */,\n  },\n\n  /*\n    Add the correct display in Chrome and Safari.\n    */\n  summary: { display: 'list-item' },\n\n  /*\n    Removes the default spacing and border for appropriate elements.\n    */\n  'blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre': {\n    margin: '0',\n  },\n  fieldset: { margin: '0', padding: '0' },\n  legend: { padding: '0' },\n  'ol,ul,menu': { listStyle: 'none', margin: '0', padding: '0' },\n\n  /*\n    Prevent resizing textareas horizontally by default.\n    */\n  textarea: { resize: 'vertical' },\n\n  /*\n    1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n    2. Set the default placeholder color to the user's configured gray 400 color.\n    */\n  'input::placeholder,textarea::placeholder': {\n    opacity: 1 /* 1 */,\n    color: 'theme(colors.gray.400, #9ca3af)' /* 2 */,\n  },\n\n  /*\n    Set the default cursor for buttons.\n    */\n  'button,[role=\"button\"]': { cursor: 'pointer' },\n\n  /*\n    Make sure disabled buttons don't get the pointer cursor.\n    */\n  ':disabled': { cursor: 'default' },\n\n  /*\n    1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n    2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n      This can trigger a poorly considered lint error in some tools but is included by design.\n    */\n  'img,svg,video,canvas,audio,iframe,embed,object': {\n    display: 'block' /* 1 */,\n    verticalAlign: 'middle' /* 2 */,\n  },\n\n  /*\n    Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n    */\n  'img,video': { maxWidth: '100%', height: 'auto' },\n\n  /* Make elements with the HTML hidden attribute stay hidden by default */\n  '[hidden]': { display: 'none' },\n}\n\nexport default preflight\n","/**\n * @module @twind/preset-tailwind/rules\n */\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport type {\n  MatchResult,\n  Rule,\n  MaybeArray,\n  CSSProperties,\n  CSSObject,\n  CSSBase,\n  ThemeMatchResult,\n  ThemeRuleResolver,\n  ColorFromThemeValue,\n  AutocompleteProvider,\n} from '@twind/core'\n\nimport { DEV } from 'distilt/env'\n\nimport {\n  mql,\n  match,\n  matchTheme,\n  matchColor,\n  toColorValue,\n  toCSS,\n  asArray,\n  arbitrary,\n  withAutocomplete,\n} from '@twind/core'\n\nimport type { TailwindTheme } from './types'\n\n// indirection wrapper to remove autocomplete functions from production bundles\nfunction withAutocomplete$(\n  rule: Rule<TailwindTheme>,\n  autocomplete: AutocompleteProvider<TailwindTheme> | false,\n): Rule<TailwindTheme> {\n  if (DEV) {\n    return withAutocomplete(rule, autocomplete)\n  }\n\n  return rule\n}\n\nconst rules: Rule<TailwindTheme>[] = [\n  /* arbitrary properties: [paint-order:markers] */\n  match('\\\\[([-\\\\w]+):(.+)]', ({ 1: $1, 2: $2 }, context) => ({\n    '@layer overrides': {\n      '&': {\n        [$1]: arbitrary(`[${$2}]`, '', context),\n      },\n    },\n  })),\n\n  /* Styling based on parent and peer state */\n  withAutocomplete$(\n    match('(group|peer)([~/][^-[]+)?', ({ input }, { h }) => [{ c: h(input) }]),\n    DEV && (() => ['group', 'peer']),\n  ),\n\n  /* LAYOUT */\n  matchTheme('aspect-', 'aspectRatio'),\n\n  match('container', (_, { theme }) => {\n    const { screens = theme('screens'), center, padding } = theme('container')\n\n    const rules = {\n      width: '100%',\n      marginRight: center && 'auto',\n      marginLeft: center && 'auto',\n      ...paddingFor('xs'),\n    } as CSSObject\n\n    for (const screen in screens) {\n      const value = screens[screen]\n\n      if (typeof value == 'string') {\n        rules[mql(value)] = {\n          '&': {\n            maxWidth: value,\n            ...paddingFor(screen),\n          },\n        }\n      }\n    }\n\n    return rules\n\n    function paddingFor(screen: string): CSSProperties | undefined {\n      const value =\n        padding && (typeof padding == 'string' ? padding : padding[screen] || padding.DEFAULT)\n\n      if (value) {\n        return {\n          paddingRight: value,\n          paddingLeft: value,\n        }\n      }\n    }\n  }),\n\n  // Content\n  matchTheme('content-', 'content', ({ _ }) => ({\n    '--tw-content': _,\n    content: 'var(--tw-content)',\n  })),\n\n  // Box Decoration Break\n  match('(?:box-)?decoration-(slice|clone)', 'boxDecorationBreak'),\n\n  // Box Sizing\n  match('box-(border|content)', 'boxSizing', ({ 1: $1 }) => $1 + '-box'),\n\n  // Display\n  match('hidden', { display: 'none' }),\n\n  // Table Layout\n  match('table-(auto|fixed)', 'tableLayout'),\n\n  match(\n    [\n      '(block|flex|table|grid|inline|contents|flow-root|list-item)',\n      '(inline-(block|flex|table|grid))',\n      '(table-(caption|cell|column|row|(column|row|footer|header)-group))',\n    ],\n    'display',\n  ),\n\n  // Floats\n  '(float)-(left|right|none)',\n\n  // Clear\n  '(clear)-(left|right|none|both)',\n\n  // Overflow\n  '(overflow(?:-[xy])?)-(auto|hidden|clip|visible|scroll)',\n\n  // Isolation\n  '(isolation)-(auto)',\n\n  // Isolation\n  match('isolate', 'isolation'),\n\n  // Object Fit\n  match('object-(contain|cover|fill|none|scale-down)', 'objectFit'),\n\n  // Object Position\n  matchTheme('object-', 'objectPosition'),\n  match('object-(top|bottom|center|(left|right)(-(top|bottom))?)', 'objectPosition', spacify),\n\n  // Overscroll Behavior\n  match('overscroll(-[xy])?-(auto|contain|none)', ({ 1: $1 = '', 2: $2 }) => ({\n    [('overscroll-behavior' + $1) as 'overscroll-behavior-x']: $2 as 'auto',\n  })),\n\n  // Position\n  match('(static|fixed|absolute|relative|sticky)', 'position'),\n\n  // Top / Right / Bottom / Left\n  matchTheme('-?inset(-[xy])?(?:$|-)', 'inset', ({ 1: $1, _ }) => ({\n    top: $1 != '-x' && _,\n    right: $1 != '-y' && _,\n    bottom: $1 != '-x' && _,\n    left: $1 != '-y' && _,\n  })),\n\n  matchTheme('-?(top|bottom|left|right)(?:$|-)', 'inset'),\n\n  // Visibility\n  match('(visible|collapse)', 'visibility'),\n  match('invisible', { visibility: 'hidden' }),\n\n  // Z-Index\n  matchTheme('-?z-', 'zIndex'),\n\n  /* FLEXBOX */\n  // Flex Direction\n  match('flex-((row|col)(-reverse)?)', 'flexDirection', columnify),\n\n  match('flex-(wrap|wrap-reverse|nowrap)', 'flexWrap'),\n  matchTheme('(flex-(?:grow|shrink))(?:$|-)' /*, 'flex-grow' | flex-shrink */),\n  matchTheme('(flex)-' /*, 'flex' */),\n  matchTheme('grow(?:$|-)', 'flexGrow'),\n  matchTheme('shrink(?:$|-)', 'flexShrink'),\n  matchTheme('basis-', 'flexBasis'),\n\n  matchTheme('-?(order)-' /*, 'order' */),\n  withAutocomplete$('-?(order)-(\\\\d+)', DEV && (() => range({ end: 12 }))),\n\n  /* GRID */\n  // Grid Template Columns\n  matchTheme('grid-cols-', 'gridTemplateColumns'),\n  withAutocomplete$(\n    match('grid-cols-(\\\\d+)', 'gridTemplateColumns', gridTemplate),\n    DEV && (() => range({ end: 6 })),\n  ),\n\n  // Grid Column Start / End\n  matchTheme('col-', 'gridColumn'),\n  withAutocomplete$(\n    match('col-(span)-(\\\\d+)', 'gridColumn', span),\n    DEV && (() => range({ end: 12 })),\n  ),\n\n  matchTheme('col-start-', 'gridColumnStart'),\n  withAutocomplete$(\n    match('col-start-(auto|\\\\d+)', 'gridColumnStart'),\n    DEV && (({ 1: $1 }) => ($1 === 'auto' ? [''] : range({ end: 13 }))),\n  ),\n\n  matchTheme('col-end-', 'gridColumnEnd'),\n  withAutocomplete$(\n    match('col-end-(auto|\\\\d+)', 'gridColumnEnd'),\n    DEV && (({ 1: $1 }) => ($1 === 'auto' ? [''] : range({ end: 13 }))),\n  ),\n\n  // Grid Template Rows\n  matchTheme('grid-rows-', 'gridTemplateRows'),\n  withAutocomplete$(\n    match('grid-rows-(\\\\d+)', 'gridTemplateRows', gridTemplate),\n    DEV && (() => range({ end: 6 })),\n  ),\n\n  // Grid Row Start / End\n  matchTheme('row-', 'gridRow'),\n  withAutocomplete$(match('row-(span)-(\\\\d+)', 'gridRow', span), DEV && (() => range({ end: 6 }))),\n\n  matchTheme('row-start-', 'gridRowStart'),\n  withAutocomplete$(\n    match('row-start-(auto|\\\\d+)', 'gridRowStart'),\n    DEV && (({ 1: $1 }) => ($1 === 'auto' ? [''] : range({ end: 7 }))),\n  ),\n\n  matchTheme('row-end-', 'gridRowEnd'),\n  withAutocomplete$(\n    match('row-end-(auto|\\\\d+)', 'gridRowEnd'),\n    DEV && (({ 1: $1 }) => ($1 === 'auto' ? [''] : range({ end: 7 }))),\n  ),\n\n  // Grid Auto Flow\n  match('grid-flow-((row|col)(-dense)?)', 'gridAutoFlow', (match) => spacify(columnify(match))),\n  match('grid-flow-(dense)', 'gridAutoFlow'),\n\n  // Grid Auto Columns\n  matchTheme('auto-cols-', 'gridAutoColumns'),\n\n  // Grid Auto Rows\n  matchTheme('auto-rows-', 'gridAutoRows'),\n\n  // Gap\n  matchTheme('gap-x(?:$|-)', 'gap', 'columnGap'),\n  matchTheme('gap-y(?:$|-)', 'gap', 'rowGap'),\n  matchTheme('gap(?:$|-)', 'gap'),\n\n  /* BOX ALIGNMENT */\n  // Justify Items\n  // Justify Self\n  withAutocomplete$(\n    '(justify-(?:items|self))-',\n    DEV &&\n      (({ 1: $1 }) =>\n        $1.endsWith('-items-')\n          ? ['start', 'end', 'center', 'stretch']\n          : /* '-self-' */ ['auto', 'start', 'end', 'center', 'stretch']),\n  ),\n\n  // Justify Content\n  withAutocomplete$(\n    match('justify-', 'justifyContent', convertContentValue),\n    DEV && (() => ['start', 'end', 'center', 'between', 'around', 'evenly']),\n  ),\n\n  // Align Content\n  // Align Items\n  // Align Self\n  withAutocomplete$(\n    match('(content|items|self)-', (match) => ({\n      [('align-' + match[1]) as 'align-content']: convertContentValue(match),\n    })),\n    DEV &&\n      (({ 1: $1 }) =>\n        $1 == 'content'\n          ? ['center', 'start', 'end', 'between', 'around', 'evenly', 'stretch', 'baseline']\n          : $1 == 'items'\n          ? ['start', 'end', 'center', 'stretch', 'baseline']\n          : /* $1 == 'self' */ ['auto', 'start', 'end', 'center', 'stretch', 'baseline']),\n  ),\n\n  // Place Content\n  // Place Items\n  // Place Self\n  withAutocomplete$(\n    match('(place-(content|items|self))-', ({ 1: $1, $$ }) => ({\n      [$1 as 'place-content']: ('wun'.includes($$[3]) ? 'space-' : '') + $$,\n    })),\n    DEV &&\n      (({ 2: $2 }) =>\n        $2 == 'content'\n          ? ['center', 'start', 'end', 'between', 'around', 'evenly', 'stretch', 'baseline']\n          : $2 == 'items'\n          ? ['start', 'end', 'center', 'stretch', 'baseline']\n          : /* $2 == 'self' */ ['auto', 'start', 'end', 'center', 'stretch', 'baseline']),\n  ),\n\n  /* SPACING */\n  // Padding\n  matchTheme('p([xytrbl])?(?:$|-)', 'padding', edge('padding')),\n\n  // Margin\n  matchTheme('-?m([xytrbl])?(?:$|-)', 'margin', edge('margin')),\n\n  // Space Between\n  matchTheme('-?space-(x|y)(?:$|-)', 'space', ({ 1: $1, _ }) => ({\n    '&>:not([hidden])~:not([hidden])': {\n      [`--tw-space-${$1}-reverse`]: '0',\n      ['margin-' +\n      { y: 'top', x: 'left' }[\n        $1 as 'y' | 'x'\n      ]]: `calc(${_} * calc(1 - var(--tw-space-${$1}-reverse)))`,\n      ['margin-' +\n      { y: 'bottom', x: 'right' }[$1 as 'y' | 'x']]: `calc(${_} * var(--tw-space-${$1}-reverse))`,\n    },\n  })),\n\n  match('space-(x|y)-reverse', ({ 1: $1 }) => ({\n    '&>:not([hidden])~:not([hidden])': {\n      [`--tw-space-${$1}-reverse`]: '1',\n    },\n  })),\n\n  /* SIZING */\n  // Width\n  matchTheme('w-', 'width'),\n\n  // Min-Width\n  matchTheme('min-w-', 'minWidth'),\n\n  // Max-Width\n  matchTheme('max-w-', 'maxWidth'),\n\n  // Height\n  matchTheme('h-', 'height'),\n\n  // Min-Height\n  matchTheme('min-h-', 'minHeight'),\n\n  // Max-Height\n  matchTheme('max-h-', 'maxHeight'),\n\n  /* TYPOGRAPHY */\n  // Font Weight\n  matchTheme('font-', 'fontWeight'),\n\n  // Font Family\n  matchTheme('font-', 'fontFamily', ({ _ }) => {\n    _ = asArray(_)\n\n    if (typeof _[1] == 'string') {\n      return { fontFamily: join(_ as MaybeArray<string>) }\n    }\n\n    return {\n      fontFamily: join(_[0]),\n      ...(_[1] as { fontFeatureSettings?: string }),\n    }\n  }),\n\n  // Font Smoothing\n  match('antialiased', {\n    WebkitFontSmoothing: 'antialiased',\n    MozOsxFontSmoothing: 'grayscale',\n  }),\n\n  match('subpixel-antialiased', {\n    WebkitFontSmoothing: 'auto',\n    MozOsxFontSmoothing: 'auto',\n  }),\n\n  // Font Style\n  match('italic', 'fontStyle'),\n  match('not-italic', { fontStyle: 'normal' }),\n\n  // Font Variant Numeric\n  match(\n    '(ordinal|slashed-zero|(normal|lining|oldstyle|proportional|tabular)-nums|(diagonal|stacked)-fractions)',\n    ({ 1: $1, 2: $2 = '', 3: $3 }) =>\n      // normal-nums\n      $2 == 'normal'\n        ? { fontVariantNumeric: 'normal' }\n        : {\n            [('--tw-' +\n              ($3 // diagonal-fractions, stacked-fractions\n                ? 'numeric-fraction'\n                : 'pt'.includes($2[0]) // proportional-nums, tabular-nums\n                ? 'numeric-spacing'\n                : $2 // lining-nums, oldstyle-nums\n                ? 'numeric-figure'\n                : // ordinal, slashed-zero\n                  $1)) as 'numeric-spacing']: $1,\n            fontVariantNumeric:\n              'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)',\n            ...asDefaults({\n              '--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',\n              '--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',\n              '--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',\n              '--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',\n              '--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)',\n            }),\n          },\n  ),\n\n  // Letter Spacing\n  matchTheme('tracking-', 'letterSpacing'),\n\n  // Line Height\n  matchTheme('leading-', 'lineHeight'),\n\n  // List Style Position\n  match('list-(inside|outside)', 'listStylePosition'),\n\n  // List Style Type\n  matchTheme('list-', 'listStyleType'),\n  withAutocomplete$(match('list-', 'listStyleType'), DEV && (() => ['none', 'disc', 'decimal'])),\n\n  // Placeholder Opacity\n  matchTheme('placeholder-opacity-', 'placeholderOpacity', ({ _ }) => ({\n    ['&::placeholder']: { '--tw-placeholder-opacity': _ },\n  })),\n\n  // Placeholder Color\n  matchColor('placeholder-', { property: 'color', selector: '&::placeholder' }),\n\n  // Text Alignment\n  match('text-(left|center|right|justify|start|end)', 'textAlign'),\n\n  match('text-(ellipsis|clip)', 'textOverflow'),\n\n  // Text Opacity\n  matchTheme('text-opacity-', 'textOpacity', '--tw-text-opacity'),\n\n  // Text Color\n  matchColor('text-', { property: 'color' }),\n\n  // Font Size\n  matchTheme('text-', 'fontSize', ({ _ }) =>\n    typeof _ == 'string'\n      ? { fontSize: _ }\n      : {\n          fontSize: _[0],\n          ...(typeof _[1] == 'string' ? { lineHeight: _[1] } : _[1]),\n        },\n  ),\n\n  // Text Indent\n  matchTheme('indent-', 'textIndent'),\n\n  // Text Decoration\n  match('(overline|underline|line-through)', 'textDecorationLine'),\n  match('no-underline', { textDecorationLine: 'none' }),\n\n  // Text Underline offset\n  matchTheme('underline-offset-', 'textUnderlineOffset'),\n\n  // Text Decoration Color\n  matchColor('decoration-', {\n    section: 'textDecorationColor',\n    opacityVariable: false,\n    opacitySection: 'opacity',\n  }),\n\n  // Text Decoration Thickness\n  matchTheme('decoration-', 'textDecorationThickness'),\n\n  // Text Decoration Style\n  withAutocomplete$(\n    match('decoration-', 'textDecorationStyle'),\n    DEV && (() => ['solid', 'double', 'dotted', 'dashed', 'wavy']),\n  ),\n\n  // Text Transform\n  match('(uppercase|lowercase|capitalize)', 'textTransform'),\n  match('normal-case', { textTransform: 'none' }),\n\n  // Text Overflow\n  match('truncate', {\n    overflow: 'hidden',\n    whiteSpace: 'nowrap',\n    textOverflow: 'ellipsis',\n  }),\n\n  // Vertical Alignment\n  withAutocomplete$(\n    match('align-', 'verticalAlign'),\n    DEV &&\n      (() => ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super']),\n  ),\n\n  // Whitespace\n  withAutocomplete$(\n    match('whitespace-', 'whiteSpace'),\n    DEV && (() => ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap']),\n  ),\n\n  // Word Break\n  match('break-normal', { wordBreak: 'normal', overflowWrap: 'normal' }),\n  match('break-words', { overflowWrap: 'break-word' }),\n  match('break-all', { wordBreak: 'break-all' }),\n  match('break-keep', { wordBreak: 'keep-all' }),\n\n  // Caret Color\n  matchColor('caret-', {\n    // section: 'caretColor',\n    opacityVariable: false,\n    opacitySection: 'opacity',\n  }),\n\n  // Accent Color\n  matchColor('accent-', {\n    // section: 'accentColor',\n    opacityVariable: false,\n    opacitySection: 'opacity',\n  }),\n\n  // Gradient Color Stops\n  match(\n    'bg-gradient-to-([trbl]|[tb][rl])',\n    'backgroundImage',\n    ({ 1: $1 }) => `linear-gradient(to ${position($1, ' ')},var(--tw-gradient-stops))`,\n  ),\n\n  matchColor(\n    'from-',\n    {\n      section: 'gradientColorStops',\n      opacityVariable: false,\n      opacitySection: 'opacity',\n    },\n    ({ _ }) => ({\n      '--tw-gradient-from': _.value,\n      '--tw-gradient-to': _.color({ opacityValue: '0' }),\n      '--tw-gradient-stops': `var(--tw-gradient-from),var(--tw-gradient-to)`,\n    }),\n  ),\n  matchColor(\n    'via-',\n\n    {\n      section: 'gradientColorStops',\n      opacityVariable: false,\n      opacitySection: 'opacity',\n    },\n    ({ _ }) => ({\n      '--tw-gradient-to': _.color({ opacityValue: '0' }),\n      '--tw-gradient-stops': `var(--tw-gradient-from),${_.value},var(--tw-gradient-to)`,\n    }),\n  ),\n  matchColor('to-', {\n    section: 'gradientColorStops',\n    property: '--tw-gradient-to',\n    opacityVariable: false,\n    opacitySection: 'opacity',\n  }),\n\n  /* BACKGROUNDS */\n  // Background Attachment\n  match('bg-(fixed|local|scroll)', 'backgroundAttachment'),\n\n  // Background Origin\n  match('bg-origin-(border|padding|content)', 'backgroundOrigin', ({ 1: $1 }) => $1 + '-box'),\n\n  // Background Repeat\n  match(['bg-(no-repeat|repeat(-[xy])?)', 'bg-repeat-(round|space)'], 'backgroundRepeat'),\n\n  // Background Blend Mode\n  withAutocomplete$(\n    match('bg-blend-', 'backgroundBlendMode'),\n    DEV &&\n      (() => [\n        'normal',\n        'multiply',\n        'screen',\n        'overlay',\n        'darken',\n        'lighten',\n        'color-dodge',\n        'color-burn',\n        'hard-light',\n        'soft-light',\n        'difference',\n        'exclusion',\n        'hue',\n        'saturation',\n        'color',\n        'luminosity',\n      ]),\n  ),\n\n  // Background Clip\n  match(\n    'bg-clip-(border|padding|content|text)',\n    'backgroundClip',\n    ({ 1: $1 }) => $1 + ($1 == 'text' ? '' : '-box'),\n  ),\n\n  // Background Opacity\n  matchTheme('bg-opacity-', 'backgroundOpacity', '--tw-bg-opacity'),\n\n  // Background Color\n  // bg-${backgroundColor}/${backgroundOpacity}\n  matchColor('bg-', { section: 'backgroundColor' }),\n\n  // Background Image\n  // supported arbitrary types are: length, color, angle, list\n  matchTheme('bg-', 'backgroundImage'),\n\n  // Background Position\n  matchTheme('bg-', 'backgroundPosition'),\n  match('bg-(top|bottom|center|(left|right)(-(top|bottom))?)', 'backgroundPosition', spacify),\n\n  // Background Size\n  matchTheme('bg-', 'backgroundSize'),\n\n  /* BORDERS */\n  // Border Radius\n  matchTheme('rounded(?:$|-)', 'borderRadius'),\n  matchTheme('rounded-([trbl]|[tb][rl])(?:$|-)', 'borderRadius', ({ 1: $1, _ }) => {\n    const corners = (\n      {\n        t: ['tl', 'tr'],\n        r: ['tr', 'br'],\n        b: ['bl', 'br'],\n        l: ['bl', 'tl'],\n      } as const\n    )[$1] || [$1, $1]\n\n    return {\n      [`border-${position(corners[0])}-radius` as 'border-top-left-radius']: _,\n      [`border-${position(corners[1])}-radius` as 'border-top-right-radius']: _,\n    }\n  }),\n\n  // Border Collapse\n  match('border-(collapse|separate)', 'borderCollapse'),\n\n  // Border Opacity\n  matchTheme('border-opacity(?:$|-)', 'borderOpacity', '--tw-border-opacity'),\n\n  // Border Style\n  match('border-(solid|dashed|dotted|double|none)', 'borderStyle'),\n\n  // Border Spacing\n  matchTheme('border-spacing(-[xy])?(?:$|-)', 'borderSpacing', ({ 1: $1, _ }) => ({\n    ...asDefaults({\n      '--tw-border-spacing-x': '0',\n      '--tw-border-spacing-y': '0',\n    }),\n    [('--tw-border-spacing' + ($1 || '-x')) as '--tw-border-spacing-x']: _,\n    [('--tw-border-spacing' + ($1 || '-y')) as '--tw-border-spacing-y']: _,\n    'border-spacing': 'var(--tw-border-spacing-x) var(--tw-border-spacing-y)',\n  })),\n\n  // Border Color\n  matchColor('border-([xytrbl])-', { section: 'borderColor' }, edge('border', 'Color')),\n  matchColor('border-'),\n\n  // Border Width\n  matchTheme('border-([xytrbl])(?:$|-)', 'borderWidth', edge('border', 'Width')),\n  matchTheme('border(?:$|-)', 'borderWidth'),\n\n  // Divide Opacity\n  matchTheme('divide-opacity(?:$|-)', 'divideOpacity', ({ _ }) => ({\n    '&>:not([hidden])~:not([hidden])': { '--tw-divide-opacity': _ },\n  })),\n\n  // Divide Style\n  match('divide-(solid|dashed|dotted|double|none)', ({ 1: $1 }) => ({\n    '&>:not([hidden])~:not([hidden])': { borderStyle: $1 },\n  })),\n\n  // Divide Width\n  match('divide-([xy]-reverse)', ({ 1: $1 }) => ({\n    '&>:not([hidden])~:not([hidden])': { ['--tw-divide-' + $1]: '1' },\n  })),\n\n  matchTheme('divide-([xy])(?:$|-)', 'divideWidth', ({ 1: $1, _ }) => {\n    const edges = (\n      {\n        x: 'lr',\n        y: 'tb',\n      } as const\n    )[$1 as 'x' | 'y']\n\n    return {\n      '&>:not([hidden])~:not([hidden])': {\n        [`--tw-divide-${$1}-reverse`]: '0',\n        [`border-${position(\n          edges[0],\n        )}Width`]: `calc(${_} * calc(1 - var(--tw-divide-${$1}-reverse)))`,\n        [`border-${position(edges[1])}Width`]: `calc(${_} * var(--tw-divide-${$1}-reverse))`,\n      },\n    }\n  }),\n\n  // Divide Color\n  matchColor('divide-', {\n    // section: $0.replace('-', 'Color') -> 'divideColor'\n    property: 'borderColor',\n    // opacityVariable: '--tw-border-opacity',\n    // opacitySection: section.replace('Color', 'Opacity') -> 'divideOpacity'\n    selector: '&>:not([hidden])~:not([hidden])',\n  }),\n\n  // Ring Offset Opacity\n  matchTheme('ring-opacity(?:$|-)', 'ringOpacity', '--tw-ring-opacity'),\n\n  // Ring Offset Color\n  matchColor('ring-offset-', {\n    // section: 'ringOffsetColor',\n    property: '--tw-ring-offset-color',\n    opacityVariable: false,\n    // opacitySection: section.replace('Color', 'Opacity') -> 'ringOffsetOpacity'\n  }),\n\n  // Ring Offset Width\n  matchTheme('ring-offset(?:$|-)', 'ringOffsetWidth', '--tw-ring-offset-width'),\n\n  // Ring Inset\n  match('ring-inset', { '--tw-ring-inset': 'inset' }),\n\n  // Ring Color\n  matchColor('ring-', {\n    // section: 'ringColor',\n    property: '--tw-ring-color',\n    // opacityVariable: '--tw-ring-opacity',\n    // opacitySection: section.replace('Color', 'Opacity') -> 'ringOpacity'\n  }),\n\n  // Ring Width\n  matchTheme('ring(?:$|-)', 'ringWidth', ({ _ }, { theme }) => ({\n    ...asDefaults({\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      // Within own declaration to have the defaults above to be merged with defaults from shadow\n      '&': {\n        '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',\n        '--tw-ring-offset-width': theme('ringOffsetWidth', '', '0px'),\n        '--tw-ring-offset-color': toColorValue(theme('ringOffsetColor', '', '#fff')),\n        '--tw-ring-color': toColorValue(theme('ringColor', '', '#93c5fd'), {\n          opacityVariable: '--tw-ring-opacity',\n        }),\n        '--tw-ring-opacity': theme('ringOpacity', '', '0.5'),\n      },\n    }),\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(${_} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,\n    boxShadow: `var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)`,\n  })),\n\n  /* EFFECTS */\n  // Box Shadow Color\n  matchColor(\n    'shadow-',\n    {\n      section: 'boxShadowColor',\n      opacityVariable: false,\n      opacitySection: 'opacity',\n    },\n    ({ _ }) => ({\n      '--tw-shadow-color': _.value,\n      '--tw-shadow': 'var(--tw-shadow-colored)',\n    }),\n  ),\n\n  // Box Shadow\n  matchTheme('shadow(?:$|-)', 'boxShadow', ({ _ }) => ({\n    ...asDefaults({\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    '--tw-shadow': join(_),\n    // replace all colors with reference to --tw-shadow-colored\n    // this matches colors after non-comma char (keyword, offset) before comma or the end\n    '--tw-shadow-colored': (join(_) as string).replace(\n      /([^,]\\s+)(?:#[a-f\\d]+|(?:(?:hsl|rgb)a?|hwb|lab|lch|color|var)\\(.+?\\)|[a-z]+)(,|$)/g,\n      '$1var(--tw-shadow-color)$2',\n    ),\n    boxShadow: `var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)`,\n  })),\n\n  // Opacity\n  matchTheme('(opacity)-' /*, 'opacity' */),\n\n  // Mix Blend Mode\n  withAutocomplete$(\n    match('mix-blend-', 'mixBlendMode'),\n    DEV &&\n      (() => [\n        'normal',\n        'multiply',\n        'screen',\n        'overlay',\n        'darken',\n        'lighten',\n        'color-dodge',\n        'color-burn',\n        'hard-light',\n        'soft-light',\n        'difference',\n        'exclusion',\n        'hue',\n        'saturation',\n        'color',\n        'luminosity',\n      ]),\n  ),\n\n  /* FILTERS */\n  ...filter(),\n  ...filter('backdrop-'),\n\n  /* TRANSITIONS AND ANIMATION */\n  // Transition Property\n  matchTheme('transition(?:$|-)', 'transitionProperty', (match, { theme }) => ({\n    transitionProperty: join(match),\n    transitionTimingFunction:\n      match._ == 'none' ? undefined : join(theme('transitionTimingFunction', '')),\n    transitionDuration: match._ == 'none' ? undefined : join(theme('transitionDuration', '')),\n  })),\n\n  // Transition Duration\n  matchTheme('duration(?:$|-)', 'transitionDuration', 'transitionDuration', join),\n\n  // Transition Timing Function\n  matchTheme('ease(?:$|-)', 'transitionTimingFunction', 'transitionTimingFunction', join),\n\n  // Transition Delay\n  matchTheme('delay(?:$|-)', 'transitionDelay', 'transitionDelay', join),\n\n  matchTheme('animate(?:$|-)', 'animation', (match, { theme, h, e }) => {\n    const animation: string = join(match)\n\n    // Try to auto inject keyframes\n    const parts = animation.split(' ')\n    const keyframeValues = theme('keyframes', parts[0]) as CSSBase\n\n    if (keyframeValues) {\n      return {\n        [('@keyframes ' + (parts[0] = e(h(parts[0])))) as '@keyframes xxx']: keyframeValues,\n        animation: parts.join(' '),\n      }\n    }\n\n    return { animation }\n  }),\n\n  /* TRANSFORMS */\n  // Transform\n  '(transform)-(none)',\n  match('transform', tranformDefaults),\n  match('transform-(cpu|gpu)', ({ 1: $1 }) => ({\n    '--tw-transform': transformValue($1 == 'gpu'),\n  })),\n\n  // Scale\n  matchTheme(\n    'scale(-[xy])?-',\n    'scale',\n    ({ 1: $1, _ }) =>\n      ({\n        [('--tw-scale' + ($1 || '-x')) as '--tw-scale-x']: _,\n        [('--tw-scale' + ($1 || '-y')) as '--tw-scale-y']: _,\n        ...tranformDefaults(),\n      } as CSSObject),\n  ),\n\n  // Rotate\n  matchTheme('-?(rotate)-', 'rotate', transform),\n\n  // Translate\n  matchTheme('-?(translate-[xy])-', 'translate', transform),\n\n  // Skew\n  matchTheme('-?(skew-[xy])-', 'skew', transform),\n\n  // Transform Origin\n  match('origin-(center|((top|bottom)(-(left|right))?)|left|right)', 'transformOrigin', spacify),\n\n  /* INTERACTIVITY */\n  // Appearance\n  withAutocomplete$('(appearance)-', DEV && (() => ['auto', 'none'])),\n\n  // Columns\n  matchTheme('(columns)-' /*, 'columns' */),\n  withAutocomplete$('(columns)-(\\\\d+)', DEV && (() => range({ end: 12 }))),\n\n  // Break Before, After and Inside\n  withAutocomplete$(\n    '(break-(?:before|after|inside))-',\n    DEV &&\n      (({ 1: $1 }) =>\n        $1.endsWith('-inside-')\n          ? ['auto', 'avoid', 'avoid-page', 'avoid-column']\n          : /* before || after */ [\n              'auto',\n              'avoid',\n              'all',\n              'avoid-page',\n              'page',\n              'left',\n              'right',\n              'column',\n            ]),\n  ),\n\n  // Cursor\n  matchTheme('(cursor)-' /*, 'cursor' */),\n  withAutocomplete$(\n    '(cursor)-',\n    DEV &&\n      (() => [\n        'alias',\n        'all-scroll',\n        'auto',\n        'cell',\n        'col-resize',\n        'context-menu',\n        'copy',\n        'crosshair',\n        'default',\n        'e-resize',\n        'ew-resize',\n        'grab',\n        'grabbing',\n        'help',\n        'move',\n        'n-resize',\n        'ne-resize',\n        'nesw-resize',\n        'no-drop',\n        'none',\n        'not-allowed',\n        'ns-resize',\n        'nw-resize',\n        'nwse-resize',\n        'pointer',\n        'progress',\n        'row-resize',\n        's-resize',\n        'se-resize',\n        'sw-resize',\n        'text',\n        'vertical-text',\n        'w-resize',\n        'wait',\n        'zoom-in',\n        'zoom-out',\n      ]),\n  ),\n\n  // Scroll Snap Type\n  match('snap-(none)', 'scroll-snap-type'),\n  match('snap-(x|y|both)', ({ 1: $1 }) => ({\n    ...asDefaults({\n      '--tw-scroll-snap-strictness': 'proximity',\n    }),\n    'scroll-snap-type': $1 + ' var(--tw-scroll-snap-strictness)',\n  })),\n  match('snap-(mandatory|proximity)', '--tw-scroll-snap-strictness'),\n\n  // Scroll Snap Align\n  match('snap-(?:(start|end|center)|align-(none))', 'scroll-snap-align'),\n\n  // Scroll Snap Stop\n  match('snap-(normal|always)', 'scroll-snap-stop'),\n\n  match('scroll-(auto|smooth)', 'scroll-behavior'),\n\n  // Scroll Margin\n  // Padding\n  matchTheme('scroll-p([xytrbl])?(?:$|-)', 'padding', edge('scroll-padding')),\n\n  // Margin\n  matchTheme<TailwindTheme, 'scrollMargin'>(\n    '-?scroll-m([xytrbl])?(?:$|-)',\n    'scroll-margin',\n    edge('scroll-margin'),\n  ),\n\n  // Touch Action\n  match('touch-(auto|none|manipulation)', 'touch-action'),\n  match('touch-(pinch-zoom|pan-(?:(x|left|right)|(y|up|down)))', ({ 1: $1, 2: $2, 3: $3 }) => ({\n    ...asDefaults({\n      '--tw-pan-x': 'var(--tw-empty,/*!*/ /*!*/)',\n      '--tw-pan-y': 'var(--tw-empty,/*!*/ /*!*/)',\n      '--tw-pinch-zoom': 'var(--tw-empty,/*!*/ /*!*/)',\n      '--tw-touch-action': 'var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)',\n    }),\n    // x, left, right -> pan-x\n    // y, up, down -> pan-y\n    // -> pinch-zoom\n    [`--tw-${$2 ? 'pan-x' : $3 ? 'pan-y' : $1}` as '--tw-pan-x']: $1,\n    'touch-action': 'var(--tw-touch-action)',\n  })),\n\n  // Outline Style\n  match('outline-none', {\n    outline: '2px solid transparent',\n    'outline-offset': '2px',\n  }),\n  match('outline', { outlineStyle: 'solid' }),\n  match('outline-(dashed|dotted|double)', 'outlineStyle'),\n\n  // Outline Offset\n  matchTheme('-?(outline-offset)-' /*, 'outlineOffset'*/),\n\n  // Outline Color\n  matchColor('outline-', {\n    opacityVariable: false,\n    opacitySection: 'opacity',\n  }),\n\n  // Outline Width\n  matchTheme('outline-', 'outlineWidth'),\n\n  // Pointer Events\n  withAutocomplete$('(pointer-events)-', DEV && (() => ['auto', 'none'])),\n\n  // Will Change\n  matchTheme('(will-change)-' /*, 'willChange' */),\n  withAutocomplete$('(will-change)-', DEV && (() => ['auto', 'contents', 'transform'])),\n\n  // Resize\n  [\n    'resize(?:-(none|x|y))?',\n    'resize',\n    ({ 1: $1 }) => ({ x: 'horizontal', y: 'vertical' }[$1] || $1 || 'both'),\n  ],\n\n  // User Select\n  match('select-(none|text|all|auto)', 'userSelect'),\n\n  /* SVG */\n  // Fill, Stroke\n  matchColor('fill-', { section: 'fill', opacityVariable: false, opacitySection: 'opacity' }),\n  matchColor('stroke-', { section: 'stroke', opacityVariable: false, opacitySection: 'opacity' }),\n\n  // Stroke Width\n  matchTheme('stroke-', 'strokeWidth'),\n\n  /* ACCESSIBILITY */\n  // Screen Readers\n  match('sr-only', {\n    position: 'absolute',\n    width: '1px',\n    height: '1px',\n    padding: '0',\n    margin: '-1px',\n    overflow: 'hidden',\n    whiteSpace: 'nowrap',\n    clip: 'rect(0,0,0,0)',\n    borderWidth: '0',\n  }),\n\n  match('not-sr-only', {\n    position: 'static',\n    width: 'auto',\n    height: 'auto',\n    padding: '0',\n    margin: '0',\n    overflow: 'visible',\n    whiteSpace: 'normal',\n    clip: 'auto',\n  }),\n]\n\nexport default rules\n\nfunction spacify(value: string | MatchResult): string {\n  return (typeof value == 'string' ? value : value[1]).replace(/-/g, ' ').trim()\n}\n\nfunction columnify(value: string | MatchResult): string {\n  return (typeof value == 'string' ? value : value[1]).replace('col', 'column')\n}\n\nfunction position(shorthand: string, separator = '-'): string {\n  const longhand: string[] = []\n\n  for (const short of shorthand) {\n    longhand.push({ t: 'top', r: 'right', b: 'bottom', l: 'left' }[short] as string)\n  }\n\n  return longhand.join(separator)\n}\n\nfunction join(match: ThemeMatchResult<MaybeArray<string>>): string\nfunction join(value: MaybeArray<string> | undefined): string | undefined\n\nfunction join(\n  value: ThemeMatchResult<MaybeArray<string>> | MaybeArray<string> | undefined,\n): string | undefined {\n  return value && '' + ((value as ThemeMatchResult<MaybeArray<string>>)._ || value)\n}\n\nfunction convertContentValue({ $$ }: MatchResult) {\n  return (\n    ({\n      // /* aut*/ o: '',\n      /* sta*/ r /*t*/: 'flex-',\n      /* end*/ '': 'flex-',\n      // /* cen*/ t /*er*/: '',\n      /* bet*/ w /*een*/: 'space-',\n      /* aro*/ u /*nd*/: 'space-',\n      /* eve*/ n /*ly*/: 'space-',\n      // /* str*/ e /*tch*/: '',\n      // /* bas*/ l /*ine*/: '',\n    }[$$[3] || ''] || '') + $$\n  )\n}\n\nfunction edge(\n  propertyPrefix: string,\n  propertySuffix = '',\n): ThemeRuleResolver<string | ColorFromThemeValue, TailwindTheme> {\n  return ({ 1: $1, _ }) => {\n    const edges =\n      {\n        x: 'lr',\n        y: 'tb',\n      }[$1 as 'x' | 'y'] || $1 + $1\n\n    return edges\n      ? {\n          ...toCSS(propertyPrefix + '-' + position(edges[0]) + propertySuffix, _),\n          ...toCSS(propertyPrefix + '-' + position(edges[1]) + propertySuffix, _),\n        }\n      : toCSS(propertyPrefix + propertySuffix, _)\n  }\n}\n\nfunction filter(prefix = ''): Rule<TailwindTheme>[] {\n  const filters = [\n    'blur',\n    'brightness',\n    'contrast',\n    'grayscale',\n    'hue-rotate',\n    'invert',\n    prefix && 'opacity',\n    'saturate',\n    'sepia',\n    !prefix && 'drop-shadow',\n  ].filter(Boolean) as string[]\n\n  let defaults = {} as CSSObject\n\n  // first create properties defaults\n  for (const key of filters) {\n    defaults[`--tw-${prefix}${key}` as '--tw-blur'] = 'var(--tw-empty,/*!*/ /*!*/)'\n  }\n\n  defaults = {\n    // move defaults\n    ...asDefaults(defaults),\n    // add default filter which allows standalone usage\n    [`${prefix}filter`]: filters.map((key) => `var(--tw-${prefix}${key})`).join(' '),\n  } as CSSObject\n\n  return [\n    `(${prefix}filter)-(none)`,\n\n    match(`${prefix}filter`, defaults),\n\n    ...filters.map((key) =>\n      matchTheme<TailwindTheme, 'hueRotate' | 'dropShadow'>(\n        // hue-rotate can be negated\n        `${key[0] == 'h' ? '-?' : ''}(${prefix}${key})(?:$|-)`,\n\n        key as 'hueRotate' | 'dropShadow',\n        ({ 1: $1, _ }) =>\n          ({\n            [`--tw-${$1}`]: asArray(_)\n              .map((value) => `${key}(${value})`)\n              .join(' '),\n            ...defaults,\n          } as CSSObject),\n      ),\n    ),\n  ]\n}\n\nfunction transform({ 1: $1, _ }: ThemeMatchResult<string>): CSSObject {\n  return {\n    ['--tw-' + $1]: _,\n    ...tranformDefaults(),\n  } as CSSObject\n}\n\nfunction tranformDefaults(): CSSObject {\n  return {\n    ...asDefaults({\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      '--tw-transform': transformValue(),\n    }),\n    transform: 'var(--tw-transform)',\n  }\n}\n\nfunction transformValue(gpu?: boolean): string {\n  return [\n    gpu // -gpu\n      ? 'translate3d(var(--tw-translate-x),var(--tw-translate-y),0)'\n      : 'translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y))',\n    'rotate(var(--tw-rotate))',\n    'skewX(var(--tw-skew-x))',\n    'skewY(var(--tw-skew-y))',\n    'scaleX(var(--tw-scale-x))',\n    'scaleY(var(--tw-scale-y))',\n  ].join(' ')\n}\nfunction span({ 1: $1, 2: $2 }: MatchResult) {\n  return `${$1} ${$2} / ${$1} ${$2}`\n}\n\nfunction gridTemplate({ 1: $1 }: MatchResult) {\n  return `repeat(${$1},minmax(0,1fr))`\n}\n\nfunction range({\n  start = 1,\n  end,\n  step = 1,\n}: {\n  start?: number\n  end: number\n  step?: number\n}): string[] {\n  const result: string[] = []\n\n  for (let index = start; index <= end; index += step) {\n    result.push(`${index}`)\n  }\n\n  return result\n}\n\nfunction asDefaults(props: CSSObject): { '@layer defaults': CSSBase } {\n  return {\n    '@layer defaults': {\n      '*,::before,::after': props,\n      '::backdrop': props,\n    },\n  }\n}\n","/**\n * @module @twind/preset-tailwind/variants\n */\n\nimport {\n  AutocompleteProvider,\n  VariantResolver,\n  Variant,\n  AutocompleteItem,\n  arbitrary,\n} from '@twind/core'\nimport type { TailwindTheme } from './types'\n\nimport { DEV } from 'distilt/env'\n\nimport { normalize, withAutocomplete } from '@twind/core'\n\n// indirection wrapper to remove autocomplete functions from production bundles\nfunction withAutocomplete$(\n  rule: VariantResolver<TailwindTheme>,\n  autocomplete: AutocompleteProvider<TailwindTheme> | false,\n): VariantResolver<TailwindTheme> {\n  if (DEV) {\n    return withAutocomplete(rule, autocomplete)\n  }\n\n  return rule\n}\n\nconst variants: Variant<TailwindTheme>[] = [\n  ['sticky', '@supports ((position: -webkit-sticky) or (position:sticky))'],\n  ['motion-reduce', '@media (prefers-reduced-motion:reduce)'],\n  ['motion-safe', '@media (prefers-reduced-motion:no-preference)'],\n  ['print', '@media print'],\n  ['(portrait|landscape)', ({ 1: $1 }) => `@media (orientation:${$1})`],\n  ['contrast-(more|less)', ({ 1: $1 }) => `@media (prefers-contrast:${$1})`],\n\n  ['(first-(letter|line)|placeholder|backdrop|before|after)', ({ 1: $1 }) => `&::${$1}`],\n  ['(marker|selection)', ({ 1: $1 }) => `& *::${$1},&::${$1}`],\n  ['file', '&::file-selector-button'],\n\n  ['(first|last|only)', ({ 1: $1 }) => `&:${$1}-child`],\n  ['even', '&:nth-child(2n)'],\n  ['odd', '&:nth-child(odd)'],\n\n  ['open', '&[open]'],\n\n  // All other pseudo classes are already supported by twind\n\n  [\n    '(aria|data)-',\n    withAutocomplete$(\n      ({ 1: $1 /* aria or data */, $$ /* everything after the dash */ }, context) =>\n        $$ &&\n        `&[${$1}-${\n          // aria-asc or data-checked -> from theme\n          context.theme($1, $$) ||\n          // aria-[...] or data-[...]\n          arbitrary($$, '', context) ||\n          // default handling\n          `${$$}=\"true\"`\n        }]`,\n      DEV &&\n        (({ 1: $1 }, { theme }) =>\n          [\n            ...new Set([\n              ...($1 == 'aria'\n                ? [\n                    'checked',\n                    'disabled',\n                    'expanded',\n                    'hidden',\n                    'pressed',\n                    'readonly',\n                    'required',\n                    'selected',\n                  ]\n                : []),\n              ...Object.keys(theme($1 as 'aria' | 'data') || {}),\n            ]),\n          ]\n            .map(\n              (key): AutocompleteItem => ({\n                suffix: key,\n                label: `&[${$1}-${theme($1, key) || `${key}=\"true\"`}]`,\n                theme: { section: $1, key },\n              }),\n            )\n            .concat([{ suffix: '[', label: `&[${$1}-…]` }])),\n    ),\n  ],\n\n  /* Styling based on parent and peer state */\n  // Groups classes like: group-focus and group-hover\n  // these need to add a marker selector with the pseudo class\n  // => '.group:focus .group-focus:selector'\n  [\n    '((group|peer)(~[^-[]+)?)(-\\\\[(.+)]|[-[].+?)(\\\\/.+)?',\n    withAutocomplete$(\n      ({ 2: type, 3: name = '', 4: $4, 5: $5 = '', 6: label = name }, { e, h, v }) => {\n        const selector = normalize($5) || ($4[0] == '[' ? $4 : (v($4.slice(1)) as string))\n\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n        return `${(selector.includes('&') ? selector : '&' + selector).replace(\n          /&/g,\n          `:merge(.${e(h(type + label))})`,\n        )}${type[0] == 'p' ? '~' : ' '}&`\n      },\n      DEV &&\n        ((_, { variants }) =>\n          Object.entries(variants)\n            .filter(([, selector]) => /^&(\\[|:[^:])/.test(selector))\n            .flatMap(([variant, selector]): AutocompleteItem[] => [\n              {\n                prefix: 'group-',\n                suffix: variant,\n                label: `${selector.replace('&', '.group')} &`,\n                modifiers: [],\n              },\n              {\n                prefix: 'peer-',\n                suffix: variant,\n                label: `${selector.replace('&', '.peer')} &`,\n                modifiers: [],\n              },\n            ])),\n    ),\n  ],\n\n  // direction variants\n  [\n    '(ltr|rtl)',\n    withAutocomplete$(\n      ({ 1: $1 }) => `[dir=\"${$1}\"] &`,\n      DEV && (({ 1: $1 }) => [{ prefix: $1, suffix: '', label: `[dir=\"${$1}\"] &` }]),\n    ),\n  ],\n\n  [\n    'supports-',\n    withAutocomplete$(\n      ({ $$ /* everything after the dash */ }, context) => {\n        $$ &&= (context.theme('supports', $$) || arbitrary($$, '', context)) as string\n\n        if ($$) {\n          if (!$$.includes(':')) {\n            $$ += ':var(--tw)'\n          }\n\n          if (!/^\\w*\\s*\\(/.test($$)) {\n            $$ = `(${$$})`\n          }\n\n          // Chrome has a bug where `(condtion1)or(condition2)` is not valid\n          // But `(condition1) or (condition2)` is supported.\n          return `@supports ${$$.replace(/\\b(and|or|not)\\b/g, ' $1 ').trim()}`\n        }\n      },\n      DEV &&\n        ((_, { theme }) =>\n          Object.keys(theme('supports') || {})\n            .map(\n              (key): AutocompleteItem => ({\n                suffix: key,\n                theme: { section: 'supports', key },\n              }),\n            )\n            .concat([{ suffix: '[', label: `@supports …` }])),\n    ),\n  ],\n\n  [\n    'max-',\n    withAutocomplete$(\n      ({ $$ }, context) => {\n        $$ &&= (context.theme('screens', $$) || arbitrary($$, '', context)) as string\n        if (typeof $$ == 'string') {\n          return `@media not all and (min-width:${$$})`\n        }\n      },\n      DEV &&\n        ((_, { theme }) =>\n          Object.entries(theme('screens') || {})\n            .filter(([, value]) => typeof value == 'string')\n            .map(\n              ([key, value]): AutocompleteItem => ({\n                suffix: key,\n                label: `@media not all and (min-width:${value})`,\n                theme: { section: 'screens', key },\n              }),\n            )\n            .concat([{ suffix: '[', label: `@media not all and (min-width: …)` }])),\n    ),\n  ],\n\n  [\n    'min-',\n    withAutocomplete$(({ $$ }, context) => {\n      $$ &&= arbitrary($$, '', context) as string\n      return $$ && `@media (min-width:${$$})`\n    }, DEV && (() => [{ suffix: '[', label: `@media (min-width: …)` }])),\n  ],\n\n  // Arbitrary variants\n  [/^\\[(.+)]$/, ({ 1: $1 }) => /[&@]/.test($1) && normalize($1).replace(/[}]+$/, '').split('{')],\n]\n\nexport default variants\n","import type { Preset } from '@twind/core'\nimport type { TailwindTheme } from './types'\n\nimport presetTailwindBase from './base'\nimport * as colors from './colors'\n\nexport * from './types'\n\nexport interface TailwindPresetOptions {\n  /** Allows to disable to tailwind preflight (default: `false` eg include the tailwind preflight ) */\n  disablePreflight?: boolean | undefined\n}\n\nexport default function presetTailwind({\n  disablePreflight,\n}: TailwindPresetOptions = {}): Preset<TailwindTheme> {\n  return presetTailwindBase({ colors, disablePreflight })\n}\n","// Source from https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js\n\n/**\n * @module @twind/preset-tailwind/colors\n */\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\n\nexport const 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} as const\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 * @module @twind/preset-tailwind/defaultTheme\n */\n\nimport type { BaseTheme } from './baseTheme'\n\nimport * as colors from './colors'\n\nimport baseTheme from './baseTheme'\n\nexport type DefaultTheme = { colors: typeof colors } & BaseTheme\n\nconst theme: DefaultTheme = { ...baseTheme, colors }\n\nexport default theme\n","// Fix exported global variable from `twindCdn` to `twind`\n/* @distilt-global-name twind */\n\nimport {\n  Twind,\n  TwindConfig,\n  TwindUserConfig,\n  Preset,\n  ExtractThemes,\n  defineConfig,\n} from '@twind/core'\n\nimport type { TailwindPresetOptions, TailwindTheme } from '@twind/preset-tailwind'\n\nimport { auto, install as install$, asArray } from '@twind/core'\nimport presetAutoprefix from '@twind/preset-autoprefix'\nimport presetTailwind from '@twind/preset-tailwind'\n\n/** @hidden */\nexport * as presetTailwind_colors from '@twind/preset-tailwind/colors'\n\n/** @hidden */\nexport { default as presetTailwind_defaultTheme } from '@twind/preset-tailwind/defaultTheme'\n\n// If we run in the browser as `<script src=\"...\"></script>` auto call setup once the body starts rendering\nconst cancelAutoInstall = /* #__PURE__ */ auto(install)\n\nexport function install<Theme extends TailwindTheme = TailwindTheme>(\n  config?: TwindConfig<Theme> & TailwindPresetOptions,\n  isProduction?: boolean,\n): Twind<Theme & TailwindTheme>\n\nexport function install<Theme = TailwindTheme, Presets extends Preset<any>[] = Preset[]>(\n  config?: TwindUserConfig<Theme, Presets> & TailwindPresetOptions,\n  isProduction?: boolean,\n): Twind<TailwindTheme & ExtractThemes<Theme, Presets>>\n\nexport function install(\n  { disablePreflight, ...config }: (TwindConfig | TwindUserConfig) & TailwindPresetOptions = {},\n  isProduction?: boolean,\n): Twind {\n  cancelAutoInstall()\n\n  return install$(\n    defineConfig({\n      ...(config as TwindUserConfig),\n      presets: [\n        presetAutoprefix(),\n        presetTailwind({ disablePreflight }),\n        ...asArray((config as TwindUserConfig).presets),\n      ],\n    } as any),\n    isProduction,\n  )\n}\n","import type { Twind, BaseTheme, TwindConfig, TwindUserConfig, Preset, ExtractThemes } from './types'\n\nimport { PROD } from 'distilt/env'\n\nimport { defineConfig } from './define-config'\nimport { setup } from './runtime'\nimport { getSheet } from './sheets'\n\n/**\n * @group Runtime\n * @param config\n * @param isProduction\n */\nexport function install<Theme extends BaseTheme = BaseTheme>(\n  config: TwindConfig<Theme>,\n  isProduction?: boolean,\n): Twind<Theme & BaseTheme>\n\nexport function install<Theme = BaseTheme, Presets extends Preset<any>[] = Preset[]>(\n  config: TwindUserConfig<Theme, Presets>,\n  isProduction?: boolean,\n): Twind<BaseTheme & ExtractThemes<Theme, Presets>>\n\nexport function install(config: TwindConfig | TwindUserConfig, isProduction = PROD): Twind {\n  const config$ = defineConfig(config as TwindUserConfig)\n\n  return setup(\n    {\n      ...config$,\n      // in production use short hashed class names\n      hash: config$.hash ?? isProduction,\n    },\n    () => getSheet(!isProduction),\n  )\n}\n","import type { BaseTheme, Twind } from './types'\n\nimport { changed } from './internal/changed'\nimport { tw as tw$ } from './runtime'\n\nexport interface TwindMutationObserver {\n  observe: (target: Node) => void\n  disconnect: () => void\n}\n\n/**\n * @group Runtime\n * @param tw\n * @param target\n * @returns\n * @internal\n */\nexport function mo<Theme extends BaseTheme = BaseTheme, Target = unknown>(\n  tw: Twind<Theme, Target>,\n): TwindMutationObserver {\n  const observer = new MutationObserver(handleMutationRecords)\n\n  return {\n    observe(target) {\n      observer.observe(target, {\n        attributeFilter: ['class'],\n        subtree: true,\n        childList: true,\n      })\n\n      // handle class attribute on target\n      handleClassAttributeChange(target as Element)\n\n      // handle children of target\n      handleMutationRecords([{ target, type: '' }])\n    },\n    disconnect() {\n      observer.disconnect()\n    },\n  }\n\n  function handleMutationRecords(records: MinimalMutationRecord[]): void {\n    for (const { type, target } of records) {\n      if (type[0] == 'a' /* attribute */) {\n        // class attribute has been changed\n        handleClassAttributeChange(target as Element)\n      } else {\n        /* childList */\n        // some nodes have been added — find all with a class attribute\n        for (const el of (target as Element).querySelectorAll('[class]')) {\n          handleClassAttributeChange(el)\n        }\n      }\n    }\n\n    // remove pending mutations — these are triggered by updating the class attributes\n    observer.takeRecords()\n    // XXX maybe we need to handle all pending mutations\n    // observer.takeRecords().forEach(handleMutation)\n  }\n\n  function handleClassAttributeChange(target: Element): void {\n    // Not using target.classList.value (not supported in all browsers) or target.class (this is an SVGAnimatedString for svg)\n    // safe guard access to getAttribute because ShadowRoot does not have attribute but child nodes\n    const tokens = target.getAttribute?.('class')\n\n    let className: string\n\n    // try do keep classNames unmodified\n    if (tokens && changed(tokens, (className = tw(tokens)))) {\n      // Not using `target.className = ...` as that is read-only for SVGElements\n      target.setAttribute('class', className)\n    }\n  }\n}\n\n/**\n * @group Runtime\n * @param tw\n * @param target\n * @returns\n */\nexport function observe<Theme extends BaseTheme = BaseTheme, Target = unknown>(\n  tw: Twind<Theme, Target> = tw$ as unknown as Twind<Theme, Target>,\n  target: false | Node = typeof document != 'undefined' && document.documentElement,\n): Twind<Theme, Target> {\n  if (target) {\n    const observer = mo(tw)\n\n    observer.observe(target)\n\n    // monkey patch tw.destroy to disconnect this observer\n    // eslint-disable-next-line @typescript-eslint/unbound-method\n    const { destroy } = tw\n    tw.destroy = () => {\n      observer.disconnect()\n      destroy.call(tw)\n    }\n  }\n\n  return tw\n}\n\n/**\n * Simplified MutationRecord which allows us to pass an\n * ArrayLike (compatible with Array and NodeList) `addedNodes` and\n * omit other properties we are not interested in.\n */\ninterface MinimalMutationRecord {\n  readonly type: string\n  readonly target: Node\n}\n","/**\n * Determines if two class name strings contain the same classes.\n *\n * @param a first class names\n * @param b second class names\n * @returns are they different\n */\nexport function changed(a: string, b: string): boolean {\n  return a != b && '' + a.split(' ').sort() != '' + b.split(' ').sort()\n}\n","import type {\n  BaseTheme,\n  ExtractThemes,\n  Preset,\n  Twind,\n  Sheet,\n  TwindConfig,\n  TwindRule,\n  TwindUserConfig,\n} from './types'\nimport type { SortableRule } from './internal/sorted-insertion-index'\n\nimport { sortedInsertionIndex } from './internal/sorted-insertion-index'\nimport { stringify } from './internal/stringify'\nimport { createContext } from './internal/context'\nimport { translate, translateWith } from './internal/translate'\nimport { parse } from './parse'\nimport { defineConfig } from './define-config'\nimport { asArray } from './utils'\nimport { serialize } from './internal/serialize'\nimport { Layer } from './internal/precedence'\n\n/**\n * @group Runtime\n * @param config\n * @param sheet\n */\nexport function twind<Theme extends BaseTheme = BaseTheme, Target = unknown>(\n  config: TwindConfig<Theme>,\n  sheet: Sheet<Target>,\n): Twind<Theme, Target>\n\nexport function twind<\n  Theme = BaseTheme,\n  Presets extends Preset<any>[] = Preset[],\n  Target = unknown,\n>(\n  config: TwindUserConfig<Theme, Presets>,\n  sheet: Sheet<Target>,\n): Twind<BaseTheme & ExtractThemes<Theme, Presets>, Target>\n\nexport function twind(userConfig: TwindConfig<any> | TwindUserConfig<any>, sheet: Sheet): Twind {\n  const config = defineConfig(userConfig as TwindUserConfig<any>)\n\n  const context = createContext(config)\n\n  // Map of tokens to generated className\n  let cache = new Map<string, string>()\n\n  // An array of precedence by index within the sheet\n  // always sorted\n  let sortedPrecedences: SortableRule[] = []\n\n  // Cache for already inserted css rules\n  // to prevent double insertions\n  let insertedRules = new Set<string>()\n\n  sheet.resume(\n    (className) => cache.set(className, className),\n    (cssText, rule) => {\n      sheet.insert(cssText, sortedPrecedences.length, rule)\n      sortedPrecedences.push(rule)\n      insertedRules.add(cssText)\n    },\n  )\n\n  function insert(rule: TwindRule): string | undefined {\n    const finalRule = context.f(rule)\n\n    const cssText = stringify(finalRule)\n\n    // If not already inserted\n    if (cssText && !insertedRules.has(cssText)) {\n      // Mark rule as inserted\n      insertedRules.add(cssText)\n\n      // Find the correct position\n      const index = sortedInsertionIndex(sortedPrecedences, rule)\n\n      // Insert\n      sheet.insert(cssText, index, rule)\n\n      // Update sorted index\n      sortedPrecedences.splice(index, 0, rule)\n    }\n\n    return finalRule.n\n  }\n\n  return Object.defineProperties(\n    function tw(tokens) {\n      if (!cache.size) {\n        for (let preflight of asArray(config.preflight)) {\n          if (typeof preflight == 'function') {\n            preflight = preflight(context)\n          }\n\n          if (preflight) {\n            ;(typeof preflight == 'string'\n              ? translateWith('', Layer.b, parse(preflight), context, Layer.b, [], false, true)\n              : serialize(preflight, {}, context, Layer.b)\n            ).forEach(insert)\n          }\n        }\n      }\n\n      tokens = '' + tokens\n\n      let className = cache.get(tokens)\n\n      if (!className) {\n        const classNames = new Set<string | undefined>()\n\n        for (const rule of translate(parse(tokens), context)) {\n          classNames.add(rule.c).add(insert(rule))\n        }\n\n        className = [...classNames].filter(Boolean).join(' ')\n\n        // Remember the generated class name\n        cache.set(tokens, className).set(className, className)\n      }\n\n      return className\n    } as Twind,\n    Object.getOwnPropertyDescriptors({\n      get target() {\n        return sheet.target\n      },\n\n      theme: context.theme,\n\n      config,\n\n      snapshot() {\n        const restoreSheet = sheet.snapshot()\n        const insertedRules$ = new Set(insertedRules)\n        const cache$ = new Map(cache)\n        const sortedPrecedences$ = [...sortedPrecedences]\n\n        return () => {\n          restoreSheet()\n\n          insertedRules = insertedRules$\n          cache = cache$\n          sortedPrecedences = sortedPrecedences$\n        }\n      },\n\n      clear() {\n        sheet.clear()\n\n        insertedRules = new Set()\n        cache = new Map()\n        sortedPrecedences = []\n      },\n\n      destroy() {\n        this.clear()\n        sheet.destroy()\n      },\n    }),\n  )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport type {\n  BaseTheme,\n  MaybeColorValue,\n  ThemeConfig,\n  ThemeFunction,\n  ThemeSectionResolverContext,\n} from '../types'\nimport { toColorValue } from '../colors'\nimport { resolveThemeFunction } from './serialize'\n\nexport function makeThemeFunction<Theme extends BaseTheme = BaseTheme>({\n  extend = {},\n  ...base\n}: ThemeConfig<Theme>): ThemeFunction<Theme> {\n  const resolved: Record<string, any> = {}\n\n  const resolveContext: ThemeSectionResolverContext<Theme> = {\n    get colors() {\n      return theme('colors')\n    },\n\n    theme,\n\n    // Stub implementation as negated values are automatically infered and do _not_ need to be in the theme\n    negative() {\n      return {}\n    },\n\n    breakpoints(screens) {\n      const breakpoints = {} as Record<string, string>\n\n      for (const key in screens) {\n        if (typeof screens[key] == 'string') {\n          breakpoints['screen-' + key] = screens[key] as string\n        }\n      }\n\n      return breakpoints\n    },\n  }\n\n  return theme as ThemeFunction<Theme>\n\n  function theme(\n    sectionKey?: string,\n    key?: string,\n    defaultValue?: any,\n    opacityValue?: string | undefined,\n  ): any {\n    if (sectionKey) {\n      ;({ 1: sectionKey, 2: opacityValue } =\n        // eslint-disable-next-line no-sparse-arrays\n        /^(\\S+?)(?:\\s*\\/\\s*([^/]+))?$/.exec(sectionKey) || ([, sectionKey] as [undefined, string]))\n\n      if (/[.[]/.test(sectionKey)) {\n        const path: string[] = []\n\n        // dotted deep access: colors.gray.500 or spacing[2.5]\n        sectionKey.replace(\n          /\\[([^\\]]+)\\]|([^.[]+)/g,\n          (_, $1, $2 = $1) => path.push($2) as unknown as string,\n        )\n\n        sectionKey = path.shift() as string\n        defaultValue = key\n        key = path.join('-')\n      }\n\n      const section =\n        resolved[sectionKey] ||\n        // two-step deref to allow extend section to reference base section\n        Object.assign(\n          Object.assign(\n            // Make sure to not get into recursive calls\n            (resolved[sectionKey] = {}),\n            deref(base, sectionKey),\n          ),\n          deref(extend, sectionKey),\n        )\n\n      if (key == null) return section\n\n      key ||= 'DEFAULT'\n\n      const value =\n        section[key] ?? key.split('-').reduce((obj, prop) => obj?.[prop], section) ?? defaultValue\n\n      return opacityValue\n        ? toColorValue(value, { opacityValue: resolveThemeFunction(opacityValue, theme) })\n        : value\n    }\n\n    // Collect the whole theme\n    const result = {} as Record<string, any>\n\n    for (const section of [...Object.keys(base), ...Object.keys(extend)]) {\n      result[section] = theme(section)\n    }\n\n    return result\n  }\n\n  function deref(source: any, section: string): any {\n    let value = source[section]\n\n    if (typeof value == 'function') {\n      value = value(resolveContext)\n    }\n\n    if (value && /color|fill|stroke/i.test(section)) {\n      return flattenColorPalette(value)\n    }\n\n    return value\n  }\n}\n\nfunction flattenColorPalette(colors: Record<string, MaybeColorValue>, path: string[] = []): any {\n  const flattend: Record<string, MaybeColorValue> = {}\n\n  for (const key in colors) {\n    const value = colors[key]\n\n    let keyPath = [...path, key]\n\n    flattend[keyPath.join('-')] = value\n\n    if (key == 'DEFAULT') {\n      keyPath = path\n      flattend[path.join('-')] = value\n    }\n\n    if (typeof value == 'object') {\n      Object.assign(flattend, flattenColorPalette(value, keyPath))\n    }\n  }\n\n  return flattend\n}\n","/**\n * @module @twind/preset-tailwind/base\n */\n\nimport type { BaseTheme, Preset } from '@twind/core'\nimport type { TailwindTheme } from './types'\n\nimport theme from './baseTheme'\nimport preflight from './preflight'\nimport rules from './rules'\nimport variants from './variants'\n\nexport * from './types'\n\nexport interface TailwindPresetBaseOptions {\n  colors?: BaseTheme['colors']\n  /** Allows to disable to tailwind preflight (default: `false` eg include the tailwind preflight ) */\n  disablePreflight?: boolean | undefined\n}\n\n/**\n * @experimental\n */\nexport default function presetTailwindBase({\n  colors,\n  disablePreflight,\n}: TailwindPresetBaseOptions = {}): Preset<TailwindTheme> {\n  return {\n    // allow other preflight to run\n    preflight: disablePreflight ? undefined : preflight,\n    theme: {\n      ...theme,\n      colors: {\n        inherit: 'inherit',\n        current: 'currentColor',\n        transparent: 'transparent',\n        black: '#000',\n        white: '#fff',\n        ...colors,\n      },\n    },\n    variants,\n    rules,\n    finalize(rule) {\n      // automatically add `content: ''` to before and after so you don’t have to specify it unless you want a different value\n      if (\n        // ignore global, preflight, and auto added rules\n        rule.n &&\n        // only if there are declarations\n        rule.d &&\n        // and it has a ::before or ::after selector\n        rule.r.some((r) => /^&::(before|after)$/.test(r)) &&\n        // there is no content property yet\n        !/(^|;)content:/.test(rule.d)\n      ) {\n        return { ...rule, d: 'content:var(--tw-content);' + rule.d }\n      }\n\n      return rule\n    },\n  }\n}\n",";\n\n","/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/sitemap.xml@1.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","module.exports = createMiddleware\r\n\r\nvar readFileSync = require('fs').readFileSync;\r\n\r\nfunction createMiddleware(path) {\r\n\r\n  if (!path) throw new Error('No path provided for sitemap.xml file')\r\n\r\n  var sitemap = readFileSync(path),\r\n      headers = { \r\n        'Content-Type': 'application/xml',\r\n        'Content-Length': sitemap.length\r\n      }\r\n\r\n  return function middleware(req, res, next) {\r\n    if ('/sitemap.xml' !== req.url) return next()\r\n    res.writeHead(200, headers)\r\n    res.end(sitemap)\r\n  }\r\n\r\n}\r\n"]}