{"version":3,"sources":["../packages/parser/src/tokenizer.ts","../packages/parser/src/modifier.ts","../packages/parser/src/arbitrary.ts","../packages/parser/src/parser.ts","../packages/utilities/src/spacing.ts","../packages/utilities/src/colors.ts","../packages/utilities/src/typography.ts","../packages/utilities/src/layout.ts","../packages/utilities/src/flexbox.ts","../packages/utilities/src/grid.ts","../packages/utilities/src/sizing.ts","../packages/utilities/src/borders.ts","../packages/utilities/src/shadows.ts","../packages/utilities/src/transitions.ts","../packages/utilities/src/transforms.ts","../packages/themes/src/default.ts","../packages/themes/src/configure.ts","../packages/core/src/scanner.ts","../packages/core/src/resolver.ts","../packages/core/src/cache.ts","../packages/core/src/applier.ts","../packages/core/src/states.ts","../packages/core/src/structural.ts","../packages/core/src/group.ts","../packages/core/src/responsive.ts","../packages/core/src/darkmode.ts","../packages/core/src/observer.ts","../packages/core/src/index.ts"],"names":["tokenize","cls","withoutPrefix","tokens","current","inBracket","char","BREAKPOINTS","STATES","STRUCTURAL","extractModifier","colonIdx","prefix","rest","isArbitrary","value","extractArbitrary","MULTI_TOKEN_UTILITIES","parseClass","modifier","multi","multiTokens","rawValue","arbitrary","utility","spacingScale","colors","resolveColor","parts","shade","colorName","colorGroup","fontSizes","fontWeights","lineHeights","letterSpacings","fontFamilies","overflowValues","zIndexScale","justifyContentValues","alignItemsValues","alignSelfValues","alignContentValues","flexValues","orderValues","flexBasisValues","gridCols","n","gridRows","gridColsScale","gridRowsScale","colSpanValues","rowSpanValues","gridStartEndValues","gridAutoFlowValues","gridAutoColsValues","gridAutoRowsValues","placeItemsValues","placeContentValues","placeSelfValues","sizingScale","heightScale","maxWidthScale","borderWidthScale","borderRadiusScale","borderStyleValues","outlineWidthScale","outlineOffsetScale","shadowScale","transitionPropertyValues","transitionDurationScale","transitionTimingValues","transitionDelayScale","scaleValues","rotateValues","skewValues","defaultTheme","configure","overrides","t","scanDOM","root","all","result","el","snapClasses","extractSnapClasses","sp","isArb","col","isColorLike","v","lk","map","br","resolve","parsed","c","bStyle","bColor","w","cache","getStyle","setStyle","styles","clearCache","applyStyles","htmlEl","applySpaceBetween","removeStyles","keys","key","m","_marker","prop","child","i","setupStateHandlers","state","styleKeys","applyStructuralModifiers","kind","parent","isOdd","groupRegistry","registerGroupElements","scannedElements","groupRoot","children","setupGroupHoverListeners","responsiveEntries","storeResponsiveClass","bp","applyResponsive","width","byElement","entry","list","entries","sorted","a","b","toApply","allKeys","keysToRemove","k","resizeTimer","setupResizeListener","darkEntries","forcedDark","setDarkMode","isDark","applyDarkMode","storeDarkClass","snapshotStyles","elStyle","snapshot","cssKey","pre","toRestore","toRemove","setupDarkModeListener","processElement","setupMutationObserver","mutations","needsResponsive","needsGroupSetup","mutation","node","init","options"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Splits a class string into tokens on \"-\" delimiters.\n * Treats [...] bracket groups as a single unbreakable token.\n *\n * Examples:\n *   \"p-4\"              → [\"p\", \"4\"]\n *   \"pt-[150px]\"       → [\"pt\", \"[150px]\"]\n *   \"bg-red-500\"       → [\"bg\", \"red\", \"500\"]\n *   \"border-t-[3px]\"   → [\"border\", \"t\", \"[3px]\"]\n *   \"rounded-tl-lg\"    → [\"rounded\", \"tl\", \"lg\"]\n *   \"grid-cols-[1fr_2fr]\" → [\"grid\", \"cols\", \"[1fr_2fr]\"]\n */\nexport function tokenize(cls: string): string[] {\n  const withoutPrefix = cls;\n  const tokens: string[] = [];\n  let current = \"\";\n  let inBracket = false;\n\n  for (const char of withoutPrefix) {\n    if (char === \"[\") {\n      inBracket = true;\n      current += char;\n    } else if (char === \"]\") {\n      inBracket = false;\n      current += char;\n    } else if (char === \"-\" && !inBracket) {\n      if (current) tokens.push(current);\n      current = \"\";\n    } else {\n      current += char;\n    }\n  }\n\n  if (current) tokens.push(current);\n  return tokens;\n}\n","export type ModifierType =\n  | { type: \"responsive\"; breakpoint: string }\n  | { type: \"state\"; state: string }\n  | { type: \"structural\"; kind: string }\n  | { type: \"group\"; kind: string }\n  | { type: \"dark\" }\n  | null;\n\nconst BREAKPOINTS = new Set([\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]);\nconst STATES = new Set([\"hover\", \"focus\", \"active\", \"focus-visible\"]);\nconst STRUCTURAL = new Set([\"disabled\", \"first\", \"last\", \"odd\", \"even\"]);\n\n/**\n * Extracts the modifier prefix before the first \":\" in a class.\n * e.g. \"hover:bg-red-500\" → { modifier: { type: \"state\", state: \"hover\" }, rest: \"bg-red-500\" }\n *\n * Returns { modifier, rest } where rest is the utility part after \":\".\n */\nexport function extractModifier(cls: string): {\n  modifier: ModifierType;\n  rest: string;\n} {\n  const withoutPrefix = cls;\n  const colonIdx = withoutPrefix.indexOf(\":\");\n\n  if (colonIdx === -1) return { modifier: null, rest: withoutPrefix };\n\n  const prefix = withoutPrefix.slice(0, colonIdx);\n  const rest = withoutPrefix.slice(colonIdx + 1);\n\n  if (BREAKPOINTS.has(prefix)) {\n    return { modifier: { type: \"responsive\", breakpoint: prefix }, rest };\n  }\n  if (STATES.has(prefix)) {\n    return { modifier: { type: \"state\", state: prefix }, rest };\n  }\n  if (STRUCTURAL.has(prefix)) {\n    return { modifier: { type: \"structural\", kind: prefix }, rest };\n  }\n  if (prefix === \"dark\") {\n    return { modifier: { type: \"dark\" }, rest };\n  }\n  if (prefix === \"group-hover\") {\n    return { modifier: { type: \"group\", kind: \"group-hover\" }, rest };\n  }\n\n  return { modifier: null, rest: withoutPrefix };\n}\n","export function isArbitrary(value: string): boolean {\n  return value.startsWith(\"[\") && value.endsWith(\"]\");\n}\n\nexport function extractArbitrary(value: string): string {\n  // strip brackets and convert underscores to spaces\n  return value.slice(1, -1).replace(/_/g, \" \");\n}\n","import { tokenize } from \"./tokenizer\";\nimport { extractModifier, ModifierType } from \"./modifier\";\nimport { isArbitrary, extractArbitrary } from \"./arbitrary\";\n\nexport interface ParsedClass {\n  raw: string;\n  modifier: ModifierType;\n  utility: string;\n  value: string;\n  isArbitrary: boolean;\n}\n\n/**\n * Multi-token utilities that consume more than one token for their key.\n * Order matters — longer matches first.\n */\nconst MULTI_TOKEN_UTILITIES = [\n  \"grid-cols\", \"grid-rows\", \"grid-flow\", \"auto-cols\", \"auto-rows\",\n  \"col-span\", \"col-start\", \"col-end\", \"row-span\", \"row-start\", \"row-end\",\n  \"place-items\", \"place-content\", \"place-self\",\n  \"border-t\", \"border-b\", \"border-l\", \"border-r\", \"border-x\", \"border-y\",\n  \"rounded-tl\", \"rounded-tr\", \"rounded-bl\", \"rounded-br\",\n  \"rounded-t\", \"rounded-b\", \"rounded-l\", \"rounded-r\",\n  \"inset-x\", \"inset-y\",\n  \"gap-x\", \"gap-y\",\n  \"space-x\", \"space-y\",\n  \"max-w\", \"min-w\", \"max-h\", \"min-h\",\n  \"overflow-x\", \"overflow-y\",\n  \"translate-x\", \"translate-y\",\n  \"scale-x\", \"scale-y\",\n  \"skew-x\", \"skew-y\",\n  \"flex-row\", \"flex-col\", \"flex-wrap\",\n  \"font-sans\", \"font-serif\", \"font-mono\",\n  \"bg-cover\", \"bg-contain\", \"bg-auto\", \"bg-center\", \"bg-top\", \"bg-bottom\",\n  \"bg-left\", \"bg-right\", \"bg-no-repeat\", \"bg-repeat\", \"bg-fixed\",\n  \"bg-local\", \"bg-scroll\", \"bg-left-top\", \"bg-right-top\",\n  \"bg-left-bottom\", \"bg-right-bottom\", \"bg-repeat-x\", \"bg-repeat-y\",\n  \"text-left\", \"text-center\", \"text-right\", \"text-justify\",\n  \"text-ellipsis\", \"text-clip\",\n  \"object-cover\", \"object-contain\", \"object-fill\", \"object-none\",\n  \"object-scale-down\", \"object-center\", \"object-top\", \"object-bottom\",\n  \"object-left\", \"object-right\", \"object-left-top\", \"object-right-top\",\n  \"object-left-bottom\", \"object-right-bottom\",\n  \"outline-none\", \"outline-offset\",\n  \"aspect-square\", \"aspect-video\", \"aspect-auto\",\n  \"line-clamp\",\n  \"flex-1\", \"flex-auto\", \"flex-initial\", \"flex-none\",\n  \"grow-0\", \"shrink-0\",\n  \"cursor-auto\", \"cursor-default\", \"cursor-pointer\", \"cursor-wait\",\n  \"cursor-text\", \"cursor-move\", \"cursor-not-allowed\", \"cursor-grab\",\n  \"cursor-grabbing\", \"cursor-crosshair\", \"cursor-zoom-in\", \"cursor-zoom-out\",\n  \"cursor-none\",\n  \"pointer-events\",\n  \"select-none\", \"select-text\", \"select-all\", \"select-auto\",\n  \"box-border\", \"box-content\",\n  \"float-left\", \"float-right\", \"float-none\",\n  \"clear-left\", \"clear-right\", \"clear-both\", \"clear-none\",\n  \"whitespace-normal\", \"whitespace-nowrap\", \"whitespace-pre\",\n  \"break-normal\", \"break-words\", \"break-all\",\n  \"inline-block\", \"inline-flex\", \"inline-grid\",\n  \"table-cell\", \"table-row\",\n  \"flow-root\",\n  \"list-none\", \"list-disc\", \"list-decimal\",\n  \"resize-x\", \"resize-y\", \"resize-none\",\n  \"origin-center\", \"origin-top\", \"origin-right\", \"origin-bottom\", \"origin-left\",\n  \"origin-top-right\", \"origin-top-left\", \"origin-bottom-right\", \"origin-bottom-left\",\n  \"ease-in-out\", \"ease-in\", \"ease-out\",\n  \"transition-all\", \"transition-colors\", \"transition-opacity\",\n  \"transition-shadow\", \"transition-transform\", \"transition-none\",\n  \"appearance-none\", \"appearance-auto\",\n  \"border-solid\", \"border-dashed\", \"border-dotted\", \"border-double\",\n  \"border-hidden\", \"border-none\",\n  \"overflow-hidden\", \"overflow-auto\", \"overflow-scroll\", \"overflow-visible\",\n  \"overflow-clip\",\n  \"visible\", \"invisible\",\n];\n\nexport function parseClass(cls: string): ParsedClass {\n  const { modifier, rest } = extractModifier(cls);\n  const tokens = tokenize(rest);\n\n  // Try to match multi-token utility keys (longest first)\n  for (const multi of MULTI_TOKEN_UTILITIES) {\n    const multiTokens = multi.split(\"-\");\n    const joined = tokens.slice(0, multiTokens.length).join(\"-\");\n    if (joined === multi) {\n      const valueTokens = tokens.slice(multiTokens.length);\n      const rawValue = valueTokens.join(\"-\");\n      const arbitrary = rawValue && isArbitrary(rawValue);\n      return {\n        raw: cls,\n        modifier,\n        utility: multi,\n        value: arbitrary ? extractArbitrary(rawValue) : rawValue,\n        isArbitrary: !!arbitrary,\n      };\n    }\n  }\n\n  // Single-token utility\n  const utility = tokens[0] ?? \"\";\n  const rawValue = tokens.slice(1).join(\"-\");\n  const arbitrary = rawValue && isArbitrary(rawValue);\n\n  return {\n    raw: cls,\n    modifier,\n    utility,\n    value: arbitrary ? extractArbitrary(rawValue) : rawValue,\n    isArbitrary: !!arbitrary,\n  };\n}\n","export const spacingScale: Record<string, string> = {\n  \"0\": \"0px\",\n  \"1\": \"2px\",\n  \"2\": \"4px\",\n  \"3\": \"8px\",\n  \"4\": \"16px\",\n  \"5\": \"32px\",\n  \"6\": \"48px\",\n  \"7\": \"64px\",\n  \"8\": \"96px\",\n  \"9\": \"128px\",\n  \"10\": \"160px\",\n  \"11\": \"192px\",\n  \"12\": \"224px\",\n  \"14\": \"256px\",\n  \"16\": \"320px\",\n  \"20\": \"384px\",\n  \"24\": \"448px\",\n  \"28\": \"512px\",\n  \"32\": \"576px\",\n  px: \"1px\",\n  \"0.5\": \"2px\",\n  \"1.5\": \"6px\",\n  \"2.5\": \"10px\",\n  \"3.5\": \"14px\",\n  auto: \"auto\",\n  full: \"100%\",\n  \"1/2\": \"50%\",\n  \"1/3\": \"33.333%\",\n  \"2/3\": \"66.667%\",\n  \"1/4\": \"25%\",\n  \"3/4\": \"75%\",\n};\n","export type ColorShades = Record<string, string>;\nexport type ColorPalette = Record<string, ColorShades | string>;\n\nexport const colors: ColorPalette = {\n  inherit: \"inherit\",\n  current: \"currentColor\",\n  transparent: \"transparent\",\n  black: \"#000000\",\n  white: \"#ffffff\",\n\n  slate: {\n    \"50\": \"#f8fafc\",\n    \"100\": \"#f1f5f9\",\n    \"200\": \"#e2e8f0\",\n    \"300\": \"#cbd5e1\",\n    \"400\": \"#94a3b8\",\n    \"500\": \"#64748b\",\n    \"600\": \"#475569\",\n    \"700\": \"#334155\",\n    \"800\": \"#1e293b\",\n    \"900\": \"#0f172a\",\n    \"950\": \"#020617\",\n  },\n  gray: {\n    \"50\": \"#f9fafb\",\n    \"100\": \"#f3f4f6\",\n    \"200\": \"#e5e7eb\",\n    \"300\": \"#d1d5db\",\n    \"400\": \"#9ca3af\",\n    \"500\": \"#6b7280\",\n    \"600\": \"#4b5563\",\n    \"700\": \"#374151\",\n    \"800\": \"#1f2937\",\n    \"900\": \"#111827\",\n    \"950\": \"#030712\",\n  },\n  zinc: {\n    \"50\": \"#fafafa\",\n    \"100\": \"#f4f4f5\",\n    \"200\": \"#e4e4e7\",\n    \"300\": \"#d4d4d8\",\n    \"400\": \"#a1a1aa\",\n    \"500\": \"#71717a\",\n    \"600\": \"#52525b\",\n    \"700\": \"#3f3f46\",\n    \"800\": \"#27272a\",\n    \"900\": \"#18181b\",\n    \"950\": \"#09090b\",\n\n  },\n\n  neutral: {\n    \"50\": \"#fafafa\",\n    \"100\": \"#f5f5f5\",\n    \"200\": \"#e5e5e5\",\n    \"300\": \"#d4d4d4\",\n    \"400\": \"#a3a3a3\",\n    \"500\": \"#737373\",\n    \"600\": \"#525252\",\n    \"700\": \"#404040\",\n    \"800\": \"#262626\",\n    \"900\": \"#171717\",\n    \"950\": \"#0a0a0a\",\n\n  },\n\n  stone: {\n    \"50\": \"#fafaf9\",\n    \"100\": \"#f5f5f4\",\n    \"200\": \"#e7e5e4\",\n    \"300\": \"#d6d3d1\",\n    \"400\": \"#a8a29e\",\n    \"500\": \"#78716c\",\n    \"600\": \"#57534e\",\n    \"700\": \"#44403c\",\n    \"800\": \"#292524\",\n    \"900\": \"#1c1917\",\n    \"950\": \"#0c0a09\",\n\n  },\n\n  red: {\n    \"50\": \"#fef2f2\",\n    \"100\": \"#fee2e2\",\n    \"200\": \"#fecaca\",\n    \"300\": \"#fca5a5\",\n    \"400\": \"#f87171\",\n    \"500\": \"#ef4444\",\n    \"600\": \"#dc2626\",\n    \"700\": \"#b91c1c\",\n    \"800\": \"#991b1b\",\n    \"900\": \"#7f1d1d\",\n    \"950\": \"#450a0a\",\n\n  },\n\n  orange: {\n    \"50\": \"#fff7ed\",\n    \"100\": \"#ffedd5\",\n    \"200\": \"#fed7aa\",\n    \"300\": \"#fdba74\",\n    \"400\": \"#fb923c\",\n    \"500\": \"#f97316\",\n    \"600\": \"#ea580c\",\n    \"700\": \"#c2410c\",\n    \"800\": \"#9a3412\",\n    \"900\": \"#7c2d12\",\n    \"950\": \"#431407\",\n\n  },\n\n  amber: {\n    \"50\": \"#fffbeb\",\n    \"100\": \"#fef3c7\",\n    \"200\": \"#fde68a\",\n    \"300\": \"#fcd34d\",\n    \"400\": \"#fbbf24\",\n    \"500\": \"#f59e0b\",\n    \"600\": \"#d97706\",\n    \"700\": \"#b45309\",\n    \"800\": \"#92400e\",\n    \"900\": \"#78350f\",\n    \"950\": \"#451a03\",\n\n  },\n\n  yellow: {\n    \"50\": \"#fefce8\",\n    \"100\": \"#fef9c3\",\n    \"200\": \"#fef08a\",\n    \"300\": \"#fde047\",\n    \"400\": \"#facc15\",\n    \"500\": \"#eab308\",\n    \"600\": \"#ca8a04\",\n    \"700\": \"#a16207\",\n    \"800\": \"#854d0e\",\n    \"900\": \"#713f12\",\n    \"950\": \"#422006\",\n\n  },\n\n  lime: {\n    \"50\": \"#f7fee7\",\n    \"100\": \"#ecfccb\",\n    \"200\": \"#d9f99d\",\n    \"300\": \"#bef264\",\n    \"400\": \"#a3e635\",\n    \"500\": \"#84cc16\",\n    \"600\": \"#65a30d\",\n    \"700\": \"#4d7c0f\",\n    \"800\": \"#3f6212\",\n    \"900\": \"#365314\",\n    \"950\": \"#1a2e05\",\n\n  },\n\n  green: {\n    \"50\": \"#f0fdf4\",\n    \"100\": \"#dcfce7\",\n    \"200\": \"#bbf7d0\",\n    \"300\": \"#86efac\",\n    \"400\": \"#4ade80\",\n    \"500\": \"#22c55e\",\n    \"600\": \"#16a34a\",\n    \"700\": \"#15803d\",\n    \"800\": \"#166534\",\n    \"900\": \"#14532d\",\n    \"950\": \"#052e16\",\n\n  },\n\n  emerald: {\n    \"50\": \"#ecfdf5\",\n    \"100\": \"#d1fae5\",\n    \"200\": \"#a7f3d0\",\n    \"300\": \"#6ee7b7\",\n    \"400\": \"#34d399\",\n    \"500\": \"#10b981\",\n    \"600\": \"#059669\",\n    \"700\": \"#047857\",\n    \"800\": \"#065f46\",\n    \"900\": \"#064e3b\",\n    \"950\": \"#022c22\",\n\n  },\n\n  teal: {\n    \"50\": \"#f0fdfa\",\n    \"100\": \"#ccfbf1\",\n    \"200\": \"#99f6e4\",\n    \"300\": \"#5eead4\",\n    \"400\": \"#2dd4bf\",\n    \"500\": \"#14b8a6\",\n    \"600\": \"#0d9488\",\n    \"700\": \"#0f766e\",\n    \"800\": \"#115e59\",\n    \"900\": \"#134e4a\",\n    \"950\": \"#042f2e\",\n\n  },\n\n  cyan: {\n    \"50\": \"#ecfeff\",\n    \"100\": \"#cffafe\",\n    \"200\": \"#a5f3fc\",\n    \"300\": \"#67e8f9\",\n    \"400\": \"#22d3ee\",\n    \"500\": \"#06b6d4\",\n    \"600\": \"#0891b2\",\n    \"700\": \"#0e7490\",\n    \"800\": \"#155e75\",\n    \"900\": \"#164e63\",\n    \"950\": \"#083344\",\n\n  },\n\n  sky: {\n    \"50\": \"#f0f9ff\",\n    \"100\": \"#e0f2fe\",\n    \"200\": \"#bae6fd\",\n    \"300\": \"#7dd3fc\",\n    \"400\": \"#38bdf8\",\n    \"500\": \"#0ea5e9\",\n    \"600\": \"#0284c7\",\n    \"700\": \"#0369a1\",\n    \"800\": \"#075985\",\n    \"900\": \"#0c4a6e\",\n    \"950\": \"#082f49\",\n\n  },\n\n  blue: {\n    \"50\": \"#eff6ff\",\n    \"100\": \"#dbeafe\",\n    \"200\": \"#bfdbfe\",\n    \"300\": \"#93c5fd\",\n    \"400\": \"#60a5fa\",\n    \"500\": \"#3b82f6\",\n    \"600\": \"#2563eb\",\n    \"700\": \"#1d4ed8\",\n    \"800\": \"#1e40af\",\n    \"900\": \"#1e3a8a\",\n    \"950\": \"#172554\",\n\n  },\n\n  indigo: {\n    \"50\": \"#eef2ff\",\n    \"100\": \"#e0e7ff\",\n    \"200\": \"#c7d2fe\",\n    \"300\": \"#a5b4fc\",\n    \"400\": \"#818cf8\",\n    \"500\": \"#6366f1\",\n    \"600\": \"#4f46e5\",\n    \"700\": \"#4338ca\",\n    \"800\": \"#3730a3\",\n    \"900\": \"#312e81\",\n    \"950\": \"#1e1b4b\",\n\n  },\n\n  violet: {\n    \"50\": \"#f5f3ff\",\n    \"100\": \"#ede9fe\",\n    \"200\": \"#ddd6fe\",\n    \"300\": \"#c4b5fd\",\n    \"400\": \"#a78bfa\",\n    \"500\": \"#8b5cf6\",\n    \"600\": \"#7c3aed\",\n    \"700\": \"#6d28d9\",\n    \"800\": \"#5b21b6\",\n    \"900\": \"#4c1d95\",\n    \"950\": \"#2e1065\",\n\n  },\n\n  purple: {\n    \"50\": \"#faf5ff\",\n    \"100\": \"#f3e8ff\",\n    \"200\": \"#e9d5ff\",\n    \"300\": \"#d8b4fe\",\n    \"400\": \"#c084fc\",\n    \"500\": \"#a855f7\",\n    \"600\": \"#9333ea\",\n    \"700\": \"#7e22ce\",\n    \"800\": \"#6b21a8\",\n    \"900\": \"#581c87\",\n    \"950\": \"#3b0764\",\n\n  },\n\n  fuchsia: {\n    \"50\": \"#fdf4ff\",\n    \"100\": \"#fae8ff\",\n    \"200\": \"#f5d0fe\",\n    \"300\": \"#f0abfc\",\n    \"400\": \"#e879f9\",\n    \"500\": \"#d946ef\",\n    \"600\": \"#c026d3\",\n    \"700\": \"#a21caf\",\n    \"800\": \"#86198f\",\n    \"900\": \"#701a75\",\n    \"950\": \"#4a044e\",\n\n  },\n\n  pink: {\n    \"50\": \"#fdf2f8\",\n    \"100\": \"#fce7f3\",\n    \"200\": \"#fbcfe8\",\n    \"300\": \"#f9a8d4\",\n    \"400\": \"#f472b6\",\n    \"500\": \"#ec4899\",\n    \"600\": \"#db2777\",\n    \"700\": \"#be185d\",\n    \"800\": \"#9d174d\",\n    \"900\": \"#831843\",\n    \"950\": \"#500724\",\n\n  },\n\n  rose: {\n    \"50\": \"#fff1f2\",\n    \"100\": \"#ffe4e6\",\n    \"200\": \"#fecdd3\",\n    \"300\": \"#fda4af\",\n    \"400\": \"#fb7185\",\n    \"500\": \"#f43f5e\",\n    \"600\": \"#e11d48\",\n    \"700\": \"#be123c\",\n    \"800\": \"#9f1239\",\n    \"900\": \"#881337\",\n    \"950\": \"#4c0519\",\n\n  },\n\n};\n\nexport function resolveColor(value: string): string | undefined {\n  if (value === \"black\") return \"#000000\";\n  if (value === \"white\") return \"#ffffff\";\n  if (value === \"transparent\") return \"transparent\";\n  if (value === \"current\") return \"currentColor\";\n  if (value === \"inherit\") return \"inherit\";\n\n  const parts = value.split(\"-\");\n  if (parts.length < 2) return undefined;\n\n  const shade = parts[parts.length - 1];\n  const colorName = parts.slice(0, -1).join(\"-\");\n  const colorGroup = colors[colorName];\n\n  if (colorGroup && typeof colorGroup === \"object\") {\n    return (colorGroup as ColorShades)[shade];\n  }\n  return undefined;\n}\n","export const fontSizes: Record<string, string> = {\n  xs: \"12px\", sm: \"14px\", base: \"16px\", lg: \"18px\",\n  xl: \"20px\", \"2xl\": \"24px\", \"3xl\": \"30px\", \"4xl\": \"36px\",\n};\n\nexport const fontWeights: Record<string, string> = {\n  thin: \"100\", extralight: \"200\", light: \"300\", normal: \"400\",\n  medium: \"500\", semibold: \"600\", bold: \"700\", extrabold: \"800\", black: \"900\",\n};\n\nexport const lineHeights: Record<string, string> = {\n  none: \"1\", tight: \"1.25\", snug: \"1.375\", normal: \"1.5\",\n  relaxed: \"1.625\", loose: \"2\",\n  \"3\": \"12px\", \"4\": \"16px\", \"5\": \"20px\", \"6\": \"24px\",\n  \"7\": \"28px\", \"8\": \"32px\", \"9\": \"36px\", \"10\": \"40px\",\n};\n\nexport const letterSpacings: Record<string, string> = {\n  tighter: \"-0.05em\", tight: \"-0.025em\", normal: \"0em\",\n  wide: \"0.025em\", wider: \"0.05em\", widest: \"0.1em\",\n};\n\nexport const fontFamilies: Record<string, string> = {\n  sans: \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n  serif: \"ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif\",\n  mono: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace\",\n};","export const displayValues: Record<string, string> = {\n  block: \"block\", \"inline-block\": \"inline-block\", inline: \"inline\",\n  flex: \"flex\", \"inline-flex\": \"inline-flex\", grid: \"grid\",\n  \"inline-grid\": \"inline-grid\", hidden: \"none\", table: \"table\",\n  \"table-cell\": \"table-cell\", \"table-row\": \"table-row\",\n  \"flow-root\": \"flow-root\", contents: \"contents\",\n};\n\nexport const positionValues: Record<string, string> = {\n  static: \"static\", relative: \"relative\", absolute: \"absolute\",\n  fixed: \"fixed\", sticky: \"sticky\",\n};\n\nexport const overflowValues: Record<string, string> = {\n  auto: \"auto\", hidden: \"hidden\", visible: \"visible\",\n  scroll: \"scroll\", clip: \"clip\",\n};\n\nexport const zIndexScale: Record<string, string> = {\n  \"0\": \"0\", \"10\": \"10\", \"20\": \"20\", \"30\": \"30\",\n  \"40\": \"40\", \"50\": \"50\", auto: \"auto\",\n};\n\nexport const floatValues: Record<string, string> = {\n  left: \"left\", right: \"right\", none: \"none\",\n};\n\nexport const clearValues: Record<string, string> = {\n  left: \"left\", right: \"right\", both: \"both\", none: \"none\",\n};\n\nexport const boxSizingValues: Record<string, string> = {\n  border: \"border-box\", content: \"content-box\",\n};\n","export const justifyContentValues: Record<string, string> = {\n  start: \"flex-start\", end: \"flex-end\", center: \"center\",\n  between: \"space-between\", around: \"space-around\", evenly: \"space-evenly\",\n  stretch: \"stretch\", normal: \"normal\",\n};\n\nexport const alignItemsValues: Record<string, string> = {\n  start: \"flex-start\", end: \"flex-end\", center: \"center\",\n  baseline: \"baseline\", stretch: \"stretch\",\n};\n\nexport const alignSelfValues: Record<string, string> = {\n  auto: \"auto\", start: \"flex-start\", end: \"flex-end\",\n  center: \"center\", stretch: \"stretch\", baseline: \"baseline\",\n};\n\nexport const alignContentValues: Record<string, string> = {\n  start: \"flex-start\", end: \"flex-end\", center: \"center\",\n  between: \"space-between\", around: \"space-around\",\n  evenly: \"space-evenly\", stretch: \"stretch\", normal: \"normal\",\n};\n\nexport const flexDirectionValues: Record<string, string> = {\n  row: \"row\", \"row-reverse\": \"row-reverse\",\n  col: \"column\", \"col-reverse\": \"column-reverse\",\n};\n\nexport const flexWrapValues: Record<string, string> = {\n  wrap: \"wrap\", nowrap: \"nowrap\", \"wrap-reverse\": \"wrap-reverse\",\n};\n\nexport const flexValues: Record<string, string> = {\n  \"1\": \"1 1 0%\", auto: \"1 1 auto\", initial: \"0 1 auto\", none: \"none\",\n};\n\nexport const orderValues: Record<string, string> = {\n  first: \"-9999\", last: \"9999\", none: \"0\",\n  \"1\": \"1\", \"2\": \"2\", \"3\": \"3\", \"4\": \"4\", \"5\": \"5\",\n  \"6\": \"6\", \"7\": \"7\", \"8\": \"8\", \"9\": \"9\", \"10\": \"10\",\n  \"11\": \"11\", \"12\": \"12\",\n};\n\nexport const flexBasisValues: Record<string, string> = {\n  \"0\": \"0px\", auto: \"auto\", full: \"100%\",\n  \"1/2\": \"50%\", \"1/3\": \"33.333%\", \"2/3\": \"66.667%\",\n  \"1/4\": \"25%\", \"3/4\": \"75%\", \"1/5\": \"20%\", \"2/5\": \"40%\",\n  \"3/5\": \"60%\", \"4/5\": \"80%\",\n};\n","export function gridCols(n: number): string {\n  return `repeat(${n}, minmax(0, 1fr))`;\n}\n\nexport function gridRows(n: number): string {\n  return `repeat(${n}, minmax(0, 1fr))`;\n}\n\nexport const gridColsScale: Record<string, string> = {\n  \"1\": gridCols(1), \"2\": gridCols(2), \"3\": gridCols(3), \"4\": gridCols(4),\n  \"5\": gridCols(5), \"6\": gridCols(6), \"7\": gridCols(7), \"8\": gridCols(8),\n  \"9\": gridCols(9), \"10\": gridCols(10), \"11\": gridCols(11), \"12\": gridCols(12),\n  none: \"none\",\n};\n\nexport const gridRowsScale: Record<string, string> = {\n  \"1\": gridRows(1), \"2\": gridRows(2), \"3\": gridRows(3),\n  \"4\": gridRows(4), \"5\": gridRows(5), \"6\": gridRows(6),\n  none: \"none\",\n};\n\nexport const colSpanValues: Record<string, string> = {\n  \"1\": \"span 1 / span 1\", \"2\": \"span 2 / span 2\", \"3\": \"span 3 / span 3\",\n  \"4\": \"span 4 / span 4\", \"5\": \"span 5 / span 5\", \"6\": \"span 6 / span 6\",\n  \"7\": \"span 7 / span 7\", \"8\": \"span 8 / span 8\", \"9\": \"span 9 / span 9\",\n  \"10\": \"span 10 / span 10\", \"11\": \"span 11 / span 11\", \"12\": \"span 12 / span 12\",\n  full: \"1 / -1\", auto: \"auto\",\n};\n\nexport const rowSpanValues: Record<string, string> = {\n  \"1\": \"span 1 / span 1\", \"2\": \"span 2 / span 2\", \"3\": \"span 3 / span 3\",\n  \"4\": \"span 4 / span 4\", \"5\": \"span 5 / span 5\", \"6\": \"span 6 / span 6\",\n  full: \"1 / -1\", auto: \"auto\",\n};\n\nexport const gridStartEndValues: Record<string, string> = {\n  \"1\": \"1\", \"2\": \"2\", \"3\": \"3\", \"4\": \"4\", \"5\": \"5\", \"6\": \"6\",\n  \"7\": \"7\", \"8\": \"8\", \"9\": \"9\", \"10\": \"10\", \"11\": \"11\", \"12\": \"12\", \"13\": \"13\",\n  auto: \"auto\",\n};\n\nexport const gridAutoFlowValues: Record<string, string> = {\n  row: \"row\", col: \"column\", dense: \"dense\",\n  \"row-dense\": \"row dense\", \"col-dense\": \"column dense\",\n};\n\nexport const gridAutoColsValues: Record<string, string> = {\n  auto: \"auto\", min: \"min-content\", max: \"max-content\",\n  fr: \"minmax(0, 1fr)\",\n};\n\nexport const gridAutoRowsValues: Record<string, string> = {\n  auto: \"auto\", min: \"min-content\", max: \"max-content\",\n  fr: \"minmax(0, 1fr)\",\n};\n\nexport const placeItemsValues: Record<string, string> = {\n  start: \"start\", end: \"end\", center: \"center\", stretch: \"stretch\",\n};\n\nexport const placeContentValues: Record<string, string> = {\n  start: \"start\", end: \"end\", center: \"center\",\n  between: \"space-between\", around: \"space-around\",\n  evenly: \"space-evenly\", stretch: \"stretch\",\n};\n\nexport const placeSelfValues: Record<string, string> = {\n  auto: \"auto\", start: \"start\", end: \"end\", center: \"center\", stretch: \"stretch\",\n};\n","export const sizingScale: Record<string, string> = {\n  \"0\": \"0px\", \"1\": \"2px\", \"2\": \"4px\", \"3\": \"8px\", \"4\": \"16px\",\n  \"5\": \"32px\", \"6\": \"48px\", \"7\": \"64px\", \"8\": \"96px\", \"9\": \"128px\",\n  \"10\": \"160px\", \"11\": \"192px\", \"12\": \"224px\", \"14\": \"256px\",\n  \"16\": \"320px\", \"20\": \"384px\", \"24\": \"448px\", \"28\": \"512px\",\n  \"32\": \"576px\", px: \"1px\", auto: \"auto\",\n  \"1/2\": \"50%\", \"1/3\": \"33.333%\", \"2/3\": \"66.667%\",\n  \"1/4\": \"25%\", \"2/4\": \"50%\", \"3/4\": \"75%\",\n  \"1/5\": \"20%\", \"2/5\": \"40%\", \"3/5\": \"60%\", \"4/5\": \"80%\",\n  \"1/6\": \"16.667%\", \"5/6\": \"83.333%\",\n  full: \"100%\", screen: \"100vw\", svw: \"100svw\",\n  min: \"min-content\", max: \"max-content\", fit: \"fit-content\",\n};\n\nexport const heightScale: Record<string, string> = {\n  ...sizingScale,\n  screen: \"100vh\", svh: \"100svh\", dvh: \"100dvh\",\n};\n\nexport const maxWidthScale: Record<string, string> = {\n  none: \"none\", \"0\": \"0rem\",\n  xs: \"320px\", sm: \"384px\", md: \"448px\", lg: \"512px\",\n  xl: \"576px\", \"2xl\": \"672px\", \"3xl\": \"768px\", \"4xl\": \"896px\",\n  \"5xl\": \"1024px\", \"6xl\": \"1152px\", \"7xl\": \"1280px\",\n  full: \"100%\", min: \"min-content\", max: \"max-content\", fit: \"fit-content\",\n  prose: \"65ch\", \"screen-sm\": \"640px\", \"screen-md\": \"768px\",\n  \"screen-lg\": \"1024px\", \"screen-xl\": \"1280px\", \"screen-2xl\": \"1536px\",\n};\n","export const borderWidthScale: Record<string, string> = {\n  \"0\": \"0px\", \n  DEFAULT: \"1px\", \n  \"2\": \"2px\", \n  \"4\": \"4px\", \n  \"8\": \"8px\",\n};\n\nexport const borderRadiusScale: Record<string, string> = {\n  none: \"0px\", \n  sm: \"2px\", \n  DEFAULT: \"4px\", \n  md: \"6px\", \n  lg: \"8px\",\n  xl: \"12px\", \n  \"2xl\": \"16px\", \n  \"3xl\": \"24px\", \n  full: \"9999px\",\n};\n\nexport const borderStyleValues: Record<string, string> = {\n  solid: \"solid\", \n  dashed: \"dashed\", \n  dotted: \"dotted\",\n  double: \"double\", \n  hidden: \"hidden\", \n  none: \"none\",\n};\n\nexport const outlineWidthScale: Record<string, string> = {\n  \"0\": \"0px\", \n  \"1\": \"1px\", \n  \"2\": \"2px\", \n  \"4\": \"4px\", \n  \"8\": \"8px\",\n};\n\nexport const outlineOffsetScale: Record<string, string> = {\n  \"0\": \"0px\", \n  \"1\": \"1px\", \n  \"2\": \"2px\", \n  \"4\": \"4px\", \n  \"8\": \"8px\",\n};\n","export const shadowScale: Record<string, string> = {\n  none: \"none\",\n  sm: \"0 1px 2px rgba(0,0,0,0.05)\",\n  DEFAULT: \"0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06)\",\n  md: \"0 4px 6px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06)\",\n  lg: \"0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05)\",\n  xl: \"0 20px 25px rgba(0,0,0,0.1), 0 10px 10px rgba(0,0,0,0.04)\",\n  \"2xl\": \"0 25px 50px rgba(0,0,0,0.25)\",\n  inner: \"inset 0 2px 4px rgba(0,0,0,0.06)\",\n};\n","export const transitionPropertyValues: Record<string, string> = {\n  DEFAULT:\n    \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter\",\n  all: \"all\",\n  colors: \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n  opacity: \"opacity\",\n  shadow: \"box-shadow\",\n  transform: \"transform\",\n  none: \"none\",\n};\n\nexport const transitionDurationScale: Record<string, string> = {\n  \"0\": \"0ms\", \"75\": \"75ms\", \"100\": \"100ms\", \"150\": \"150ms\",\n  \"200\": \"200ms\", \"300\": \"300ms\", \"500\": \"500ms\",\n  \"700\": \"700ms\", \"1000\": \"1000ms\",\n};\n\nexport const transitionTimingValues: Record<string, string> = {\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\nexport const transitionDelayScale: Record<string, string> = {\n  \"0\": \"0ms\", \"75\": \"75ms\", \"100\": \"100ms\", \"150\": \"150ms\",\n  \"200\": \"200ms\", \"300\": \"300ms\", \"500\": \"500ms\",\n  \"700\": \"700ms\", \"1000\": \"1000ms\",\n};\n","export const scaleValues: Record<string, string> = {\n  \"0\": \"0\", \"50\": \"0.5\", \"75\": \"0.75\", \"90\": \"0.9\", \"95\": \"0.95\",\n  \"100\": \"1\", \"105\": \"1.05\", \"110\": \"1.1\", \"125\": \"1.25\", \"150\": \"1.5\",\n};\n\nexport const rotateValues: Record<string, string> = {\n  \"0\": \"0deg\", \"1\": \"1deg\", \"2\": \"2deg\", \"3\": \"3deg\",\n  \"6\": \"6deg\", \"12\": \"12deg\", \"45\": \"45deg\", \"90\": \"90deg\", \"180\": \"180deg\",\n};\n\nexport const skewValues: Record<string, string> = {\n  \"0\": \"0deg\", \"1\": \"1deg\", \"2\": \"2deg\",\n  \"3\": \"3deg\", \"6\": \"6deg\", \"12\": \"12deg\",\n};\n\nexport const transformOriginValues: Record<string, string> = {\n  center: \"center\", top: \"top\", \"top-right\": \"top right\",\n  right: \"right\", \"bottom-right\": \"bottom right\", bottom: \"bottom\",\n  \"bottom-left\": \"bottom left\", left: \"left\", \"top-left\": \"top left\",\n};\n","import {\n  spacingScale,\n  colors,\n  fontSizes, fontWeights, lineHeights, letterSpacings, fontFamilies,\n  zIndexScale,\n  borderWidthScale, borderRadiusScale,\n  shadowScale,\n  transitionDurationScale, transitionDelayScale,\n  scaleValues, rotateValues,\n  sizingScale, heightScale, maxWidthScale,\n} from \"@snapcss/utilities\";\n\nexport interface SnapTheme {\n  spacing?: Record<string, string>;\n  colors?: Record<string, Record<string, string> | string>;\n  fontSizes?: Record<string, string>;\n  fontWeights?: Record<string, string>;\n  lineHeights?: Record<string, string>;\n  letterSpacings?: Record<string, string>;\n  fontFamilies?: Record<string, string>;\n  zIndex?: Record<string, string>;\n  borderWidth?: Record<string, string>;\n  borderRadius?: Record<string, string>;\n  shadows?: Record<string, string>;\n  transitionDuration?: Record<string, string>;\n  transitionDelay?: Record<string, string>;\n  scale?: Record<string, string>;\n  rotate?: Record<string, string>;\n  sizing?: Record<string, string>;\n  heights?: Record<string, string>;\n  maxWidths?: Record<string, string>;\n}\n\nexport const defaultTheme: SnapTheme = {\n  spacing: spacingScale,\n  colors,\n  fontSizes,\n  fontWeights,\n  lineHeights,\n  letterSpacings,\n  fontFamilies,\n  zIndex: zIndexScale,\n  borderWidth: borderWidthScale,\n  borderRadius: borderRadiusScale,\n  shadows: shadowScale,\n  transitionDuration: transitionDurationScale,\n  transitionDelay: transitionDelayScale,\n  scale: scaleValues,\n  rotate: rotateValues,\n  sizing: sizingScale,\n  heights: heightScale,\n  maxWidths: maxWidthScale,\n};\n","import { defaultTheme, SnapTheme } from \"./default\";\n\nlet activeTheme: SnapTheme = { ...defaultTheme };\n\nexport function configure(overrides: { theme?: Partial<SnapTheme> }): void {\n  if (!overrides.theme) return;\n\n  const t = overrides.theme;\n  activeTheme = {\n    ...defaultTheme,\n    ...t,\n    spacing: t.spacing ? { ...defaultTheme.spacing, ...t.spacing } : defaultTheme.spacing,\n    colors: t.colors ? { ...defaultTheme.colors, ...t.colors } : defaultTheme.colors,\n    fontSizes: t.fontSizes ? { ...defaultTheme.fontSizes, ...t.fontSizes } : defaultTheme.fontSizes,\n    fontWeights: t.fontWeights ? { ...defaultTheme.fontWeights, ...t.fontWeights } : defaultTheme.fontWeights,\n    shadows: t.shadows ? { ...defaultTheme.shadows, ...t.shadows } : defaultTheme.shadows,\n  };\n}\n\nexport function getTheme(): SnapTheme {\n  return activeTheme;\n}\n\nexport function resetTheme(): void {\n  activeTheme = { ...defaultTheme };\n}\n","export interface ScannedElement {\n  el: Element;\n  snapClasses: string[];\n}\n\nexport function scanDOM(root: Element | Document = document): ScannedElement[] {\n  const all = root.querySelectorAll(\"*\");\n  const result: ScannedElement[] = [];\n\n  all.forEach((el) => {\n    const snapClasses = extractSnapClasses(el);\n    if (snapClasses.length > 0) {\n      result.push({ el, snapClasses });\n    }\n  });\n\n  return result;\n}\n\nexport function extractSnapClasses(el: Element): string[] {\n  return Array.from(el.classList);\n}\n","import { ParsedClass } from \"@snapcss/parser\";\nimport {\n  spacingScale, resolveColor,\n  fontSizes, fontWeights, lineHeights, letterSpacings, fontFamilies,\n  zIndexScale, overflowValues,\n  justifyContentValues, alignItemsValues, alignSelfValues, alignContentValues,\n  flexValues, orderValues, flexBasisValues,\n  gridColsScale, gridRowsScale, colSpanValues, rowSpanValues,\n  gridStartEndValues, gridAutoFlowValues, gridAutoColsValues, gridAutoRowsValues,\n  placeItemsValues, placeContentValues, placeSelfValues,\n  sizingScale, heightScale, maxWidthScale,\n  borderWidthScale, borderRadiusScale, borderStyleValues,\n  outlineWidthScale, outlineOffsetScale,\n  shadowScale,\n  transitionPropertyValues, transitionDurationScale,\n  transitionTimingValues, transitionDelayScale,\n  scaleValues, rotateValues, skewValues,\n  bgSizeValues, bgPositionValues, bgRepeatValues, bgAttachmentValues,\n} from \"@snapcss/utilities\";\n\ntype Styles = Record<string, string>;\n\nfunction sp(value: string, isArb: boolean): string {\n  return isArb ? value : (spacingScale[value] ?? value);\n}\n\nfunction col(value: string, isArb: boolean): string | undefined {\n  if (isArb) return isColorLike(value) ? value : undefined;\n  return resolveColor(value);\n}\n\nfunction isColorLike(v: string): boolean {\n  return /^(#|rgb|hsl|oklch|color\\(|hwb|lch|lab)/.test(v) || /^[a-zA-Z]+$/.test(v);\n}\n\nfunction lk(map: Record<string, string>, value: string, isArb: boolean): string {\n  if (isArb) return value;\n  return map[value] ?? map[\"DEFAULT\"] ?? value;\n}\n\nfunction br(value: string, isArb: boolean): string {\n  return isArb ? value : (borderRadiusScale[value] ?? borderRadiusScale[\"DEFAULT\"] ?? \"4px\");\n}\n\nexport function resolve(parsed: ParsedClass): Styles {\n  const { utility, value, isArbitrary: isArb } = parsed;\n\n  switch (utility) {\n    // ── Padding ──────────────────────────────────────────────\n    case \"p\":  return { padding: sp(value, isArb) };\n    case \"pt\": return { paddingTop: sp(value, isArb) };\n    case \"pb\": return { paddingBottom: sp(value, isArb) };\n    case \"pl\": return { paddingLeft: sp(value, isArb) };\n    case \"pr\": return { paddingRight: sp(value, isArb) };\n    case \"px\": return { paddingLeft: sp(value, isArb), paddingRight: sp(value, isArb) };\n    case \"py\": return { paddingTop: sp(value, isArb), paddingBottom: sp(value, isArb) };\n\n    // ── Margin ───────────────────────────────────────────────\n    case \"m\":  return { margin: sp(value, isArb) };\n    case \"mt\": return { marginTop: sp(value, isArb) };\n    case \"mb\": return { marginBottom: sp(value, isArb) };\n    case \"ml\": return { marginLeft: sp(value, isArb) };\n    case \"mr\": return { marginRight: sp(value, isArb) };\n    case \"mx\": return { marginLeft: sp(value, isArb), marginRight: sp(value, isArb) };\n    case \"my\": return { marginTop: sp(value, isArb), marginBottom: sp(value, isArb) };\n\n    // ── Sizing ───────────────────────────────────────────────\n    case \"w\":     return { width: isArb ? value : (sizingScale[value] ?? value) };\n    case \"h\":     return { height: isArb ? value : (heightScale[value] ?? value) };\n    case \"min-w\": return { minWidth: isArb ? value : (sizingScale[value] ?? value) };\n    case \"max-w\": return { maxWidth: isArb ? value : (maxWidthScale[value] ?? value) };\n    case \"min-h\": return { minHeight: isArb ? value : (heightScale[value] ?? value) };\n    case \"max-h\": return { maxHeight: isArb ? value : (heightScale[value] ?? value) };\n\n    // ── Inset ────────────────────────────────────────────────\n    case \"top\":    return { top: sp(value, isArb) };\n    case \"right\":  return { right: sp(value, isArb) };\n    case \"bottom\": return { bottom: sp(value, isArb) };\n    case \"left\":   return { left: sp(value, isArb) };\n    case \"inset\":  { const v = sp(value, isArb); return { top: v, right: v, bottom: v, left: v }; }\n    case \"inset-x\": return { left: sp(value, isArb), right: sp(value, isArb) };\n    case \"inset-y\": return { top: sp(value, isArb), bottom: sp(value, isArb) };\n\n    // ── Layout ───────────────────────────────────────────────\n    case \"block\":        return { display: \"block\" };\n    case \"inline-block\": return { display: \"inline-block\" };\n    case \"inline\":       return { display: \"inline\" };\n    case \"inline-flex\":  return { display: \"inline-flex\" };\n    case \"inline-grid\":  return { display: \"inline-grid\" };\n    case \"hidden\":       return { display: \"none\" };\n    case \"table\":        return { display: \"table\" };\n    case \"table-cell\":   return { display: \"table-cell\" };\n    case \"table-row\":    return { display: \"table-row\" };\n    case \"flow-root\":    return { display: \"flow-root\" };\n    case \"contents\":     return { display: \"contents\" };\n    case \"relative\": return { position: \"relative\" };\n    case \"absolute\": return { position: \"absolute\" };\n    case \"fixed\":    return { position: \"fixed\" };\n    case \"sticky\":   return { position: \"sticky\" };\n    case \"static\":   return { position: \"static\" };\n    case \"visible\":   return { visibility: \"visible\" };\n    case \"invisible\": return { visibility: \"hidden\" };\n    case \"z\": return { zIndex: isArb ? value : (zIndexScale[value] ?? value) };\n    case \"overflow-hidden\":  return { overflow: \"hidden\" };\n    case \"overflow-auto\":    return { overflow: \"auto\" };\n    case \"overflow-scroll\":  return { overflow: \"scroll\" };\n    case \"overflow-visible\": return { overflow: \"visible\" };\n    case \"overflow-clip\":    return { overflow: \"clip\" };\n    case \"overflow-x\": return { overflowX: lk(overflowValues, value, isArb) };\n    case \"overflow-y\": return { overflowY: lk(overflowValues, value, isArb) };\n    case \"float-left\":  return { float: \"left\" };\n    case \"float-right\": return { float: \"right\" };\n    case \"float-none\":  return { float: \"none\" };\n    case \"clear-left\":  return { clear: \"left\" };\n    case \"clear-right\": return { clear: \"right\" };\n    case \"clear-both\":  return { clear: \"both\" };\n    case \"clear-none\":  return { clear: \"none\" };\n    case \"box-border\":  return { boxSizing: \"border-box\" };\n    case \"box-content\": return { boxSizing: \"content-box\" };\n\n    // ── Flexbox ──────────────────────────────────────────────\n    case \"flex\": return value ? { flex: lk(flexValues, value, isArb) } : { display: \"flex\" };\n    case \"flex-1\":       return { flex: \"1 1 0%\" };\n    case \"flex-auto\":    return { flex: \"1 1 auto\" };\n    case \"flex-initial\": return { flex: \"0 1 auto\" };\n    case \"flex-none\":    return { flex: \"none\" };\n    case \"flex-row\":          return { flexDirection: \"row\" };\n    case \"flex-col\":          return { flexDirection: \"column\" };\n    case \"flex-row-reverse\":  return { flexDirection: \"row-reverse\" };\n    case \"flex-col-reverse\":  return { flexDirection: \"column-reverse\" };\n    case \"flex-wrap\":         return { flexWrap: \"wrap\" };\n    case \"flex-nowrap\":       return { flexWrap: \"nowrap\" };\n    case \"flex-wrap-reverse\": return { flexWrap: \"wrap-reverse\" };\n    case \"grow\":   return { flexGrow: \"1\" };\n    case \"grow-0\": return { flexGrow: \"0\" };\n    case \"shrink\":   return { flexShrink: \"1\" };\n    case \"shrink-0\": return { flexShrink: \"0\" };\n    case \"basis\":   return { flexBasis: isArb ? value : (flexBasisValues[value] ?? spacingScale[value] ?? value) };\n    case \"order\":   return { order: isArb ? value : (orderValues[value] ?? value) };\n    case \"justify\": return { justifyContent: lk(justifyContentValues, value, isArb) };\n    case \"items\":   return { alignItems: lk(alignItemsValues, value, isArb) };\n    case \"self\":    return { alignSelf: lk(alignSelfValues, value, isArb) };\n    case \"content\": return { alignContent: lk(alignContentValues, value, isArb) };\n    case \"gap\":   return { gap: sp(value, isArb) };\n    case \"gap-x\": return { columnGap: sp(value, isArb) };\n    case \"gap-y\": return { rowGap: sp(value, isArb) };\n\n    // ── Grid ─────────────────────────────────────────────────\n    case \"grid\":      return value ? {} : { display: \"grid\" };\n    case \"grid-cols\": return { gridTemplateColumns: isArb ? value : (gridColsScale[value] ?? value) };\n    case \"grid-rows\": return { gridTemplateRows: isArb ? value : (gridRowsScale[value] ?? value) };\n    case \"col-span\":  return { gridColumn: isArb ? value : (colSpanValues[value] ?? value) };\n    case \"col-start\": return { gridColumnStart: lk(gridStartEndValues, value, isArb) };\n    case \"col-end\":   return { gridColumnEnd: lk(gridStartEndValues, value, isArb) };\n    case \"row-span\":  return { gridRow: isArb ? value : (rowSpanValues[value] ?? value) };\n    case \"row-start\": return { gridRowStart: lk(gridStartEndValues, value, isArb) };\n    case \"row-end\":   return { gridRowEnd: lk(gridStartEndValues, value, isArb) };\n    case \"grid-flow\": return { gridAutoFlow: lk(gridAutoFlowValues, value, isArb) };\n    case \"auto-cols\": return { gridAutoColumns: lk(gridAutoColsValues, value, isArb) };\n    case \"auto-rows\": return { gridAutoRows: lk(gridAutoRowsValues, value, isArb) };\n    case \"place-items\":   return { placeItems: lk(placeItemsValues, value, isArb) };\n    case \"place-content\": return { placeContent: lk(placeContentValues, value, isArb) };\n    case \"place-self\":    return { placeSelf: lk(placeSelfValues, value, isArb) };\n\n    // ── Typography ───────────────────────────────────────────\n    case \"text\": {\n      if (isArb) {\n        if (/^[\\d]/.test(value) || /px$|rem$|em$|vh$|vw$/.test(value)) return { fontSize: value };\n        return { color: value };\n      }\n      if (fontSizes[value]) return { fontSize: fontSizes[value] };\n      const c = resolveColor(value);\n      if (c) return { color: c };\n      return {};\n    }\n    case \"font\": {\n      if (isArb) return { fontWeight: value };\n      if (fontWeights[value]) return { fontWeight: fontWeights[value] };\n      if (fontFamilies[value]) return { fontFamily: fontFamilies[value] };\n      return {};\n    }\n    case \"font-sans\":  return { fontFamily: fontFamilies.sans };\n    case \"font-serif\": return { fontFamily: fontFamilies.serif };\n    case \"font-mono\":  return { fontFamily: fontFamilies.mono };\n    case \"leading\":  return { lineHeight: isArb ? value : (lineHeights[value] ?? value) };\n    case \"tracking\": return { letterSpacing: isArb ? value : (letterSpacings[value] ?? value) };\n    case \"italic\":     return { fontStyle: \"italic\" };\n    case \"not-italic\": return { fontStyle: \"normal\" };\n    case \"uppercase\":   return { textTransform: \"uppercase\" };\n    case \"lowercase\":   return { textTransform: \"lowercase\" };\n    case \"capitalize\":  return { textTransform: \"capitalize\" };\n    case \"normal-case\": return { textTransform: \"none\" };\n    case \"underline\":    return { textDecorationLine: \"underline\" };\n    case \"overline\":     return { textDecorationLine: \"overline\" };\n    case \"line-through\": return { textDecorationLine: \"line-through\" };\n    case \"no-underline\": return { textDecorationLine: \"none\" };\n    case \"text-left\":    return { textAlign: \"left\" };\n    case \"text-center\":  return { textAlign: \"center\" };\n    case \"text-right\":   return { textAlign: \"right\" };\n    case \"text-justify\": return { textAlign: \"justify\" };\n    case \"truncate\":      return { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" };\n    case \"text-ellipsis\": return { textOverflow: \"ellipsis\" };\n    case \"text-clip\":     return { textOverflow: \"clip\" };\n    case \"whitespace-normal\":   return { whiteSpace: \"normal\" };\n    case \"whitespace-nowrap\":   return { whiteSpace: \"nowrap\" };\n    case \"whitespace-pre\":      return { whiteSpace: \"pre\" };\n    case \"whitespace-pre-line\": return { whiteSpace: \"pre-line\" };\n    case \"whitespace-pre-wrap\": return { whiteSpace: \"pre-wrap\" };\n    case \"break-normal\": return { overflowWrap: \"normal\", wordBreak: \"normal\" };\n    case \"break-words\":  return { overflowWrap: \"break-word\" };\n    case \"break-all\":    return { wordBreak: \"break-all\" };\n    case \"line-clamp\": {\n      if (value === \"none\") return { WebkitLineClamp: \"unset\" };\n      return { overflow: \"hidden\", display: \"-webkit-box\", WebkitBoxOrient: \"vertical\", WebkitLineClamp: value };\n    }\n\n    // ── Background ───────────────────────────────────────────\n    case \"bg\": {\n      const c = col(value, isArb);\n      return c ? { backgroundColor: c } : {};\n    }\n    case \"bg-cover\":         return { backgroundSize: \"cover\" };\n    case \"bg-contain\":       return { backgroundSize: \"contain\" };\n    case \"bg-auto\":          return { backgroundSize: \"auto\" };\n    case \"bg-center\":        return { backgroundPosition: \"center\" };\n    case \"bg-top\":           return { backgroundPosition: \"top\" };\n    case \"bg-bottom\":        return { backgroundPosition: \"bottom\" };\n    case \"bg-left\":          return { backgroundPosition: \"left\" };\n    case \"bg-right\":         return { backgroundPosition: \"right\" };\n    case \"bg-left-top\":      return { backgroundPosition: \"left top\" };\n    case \"bg-right-top\":     return { backgroundPosition: \"right top\" };\n    case \"bg-left-bottom\":   return { backgroundPosition: \"left bottom\" };\n    case \"bg-right-bottom\":  return { backgroundPosition: \"right bottom\" };\n    case \"bg-no-repeat\":  return { backgroundRepeat: \"no-repeat\" };\n    case \"bg-repeat\":     return { backgroundRepeat: \"repeat\" };\n    case \"bg-repeat-x\":   return { backgroundRepeat: \"repeat-x\" };\n    case \"bg-repeat-y\":   return { backgroundRepeat: \"repeat-y\" };\n    case \"bg-fixed\":  return { backgroundAttachment: \"fixed\" };\n    case \"bg-local\":  return { backgroundAttachment: \"local\" };\n    case \"bg-scroll\": return { backgroundAttachment: \"scroll\" };\n\n    // ── Border Width ─────────────────────────────────────────\n    case \"border\": {\n      if (!value) return { borderWidth: \"1px\" };\n      const bStyle = borderStyleValues[value];\n      if (bStyle) return { borderStyle: bStyle };\n      const bColor = col(value, isArb);\n      if (bColor) return { borderColor: bColor };\n      return { borderWidth: isArb ? value : (borderWidthScale[value] ?? value) };\n    }\n    case \"border-t\": {\n      const c = col(value, isArb);\n      return c ? { borderTopColor: c } : { borderTopWidth: isArb ? value : (borderWidthScale[value] ?? value) };\n    }\n    case \"border-b\": {\n      const c = col(value, isArb);\n      return c ? { borderBottomColor: c } : { borderBottomWidth: isArb ? value : (borderWidthScale[value] ?? value) };\n    }\n    case \"border-l\": {\n      const c = col(value, isArb);\n      return c ? { borderLeftColor: c } : { borderLeftWidth: isArb ? value : (borderWidthScale[value] ?? value) };\n    }\n    case \"border-r\": {\n      const c = col(value, isArb);\n      return c ? { borderRightColor: c } : { borderRightWidth: isArb ? value : (borderWidthScale[value] ?? value) };\n    }\n    case \"border-x\": { const w = isArb ? value : (borderWidthScale[value] ?? value); return { borderLeftWidth: w, borderRightWidth: w }; }\n    case \"border-y\": { const w = isArb ? value : (borderWidthScale[value] ?? value); return { borderTopWidth: w, borderBottomWidth: w }; }\n    case \"border-solid\":  return { borderStyle: \"solid\" };\n    case \"border-dashed\": return { borderStyle: \"dashed\" };\n    case \"border-dotted\": return { borderStyle: \"dotted\" };\n    case \"border-double\": return { borderStyle: \"double\" };\n    case \"border-hidden\": return { borderStyle: \"hidden\" };\n    case \"border-none\":   return { borderStyle: \"none\" };\n\n    // ── Border Radius ────────────────────────────────────────\n    case \"rounded\":    return { borderRadius: br(value, isArb) };\n    case \"rounded-t\":  return { borderTopLeftRadius: br(value, isArb), borderTopRightRadius: br(value, isArb) };\n    case \"rounded-b\":  return { borderBottomLeftRadius: br(value, isArb), borderBottomRightRadius: br(value, isArb) };\n    case \"rounded-l\":  return { borderTopLeftRadius: br(value, isArb), borderBottomLeftRadius: br(value, isArb) };\n    case \"rounded-r\":  return { borderTopRightRadius: br(value, isArb), borderBottomRightRadius: br(value, isArb) };\n    case \"rounded-tl\": return { borderTopLeftRadius: br(value, isArb) };\n    case \"rounded-tr\": return { borderTopRightRadius: br(value, isArb) };\n    case \"rounded-bl\": return { borderBottomLeftRadius: br(value, isArb) };\n    case \"rounded-br\": return { borderBottomRightRadius: br(value, isArb) };\n\n    // ── Outline ──────────────────────────────────────────────\n    case \"outline-none\":   return { outline: \"2px solid transparent\", outlineOffset: \"2px\" };\n    case \"outline\": {\n      if (!value) return { outlineStyle: \"solid\" };\n      const c = col(value, isArb);\n      if (c) return { outlineColor: c };\n      return { outlineWidth: isArb ? value : (outlineWidthScale[value] ?? value) };\n    }\n    case \"outline-offset\": return { outlineOffset: isArb ? value : (outlineOffsetScale[value] ?? value) };\n\n    // ── Shadow ───────────────────────────────────────────────\n    case \"shadow\": return { boxShadow: isArb ? value : (shadowScale[value] ?? shadowScale[\"DEFAULT\"]) };\n\n    // ── Opacity ──────────────────────────────────────────────\n    case \"opacity\": return { opacity: isArb ? value : String(parseInt(value) / 100) };\n\n    // ── Transitions ──────────────────────────────────────────\n    case \"transition\": {\n      if (!value) return { transitionProperty: transitionPropertyValues[\"DEFAULT\"], transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\", transitionDuration: \"150ms\" };\n      return { transitionProperty: isArb ? value : (transitionPropertyValues[value] ?? value) };\n    }\n    case \"transition-all\":       return { transitionProperty: \"all\", transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\", transitionDuration: \"150ms\" };\n    case \"transition-colors\":    return { transitionProperty: transitionPropertyValues.colors, transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\", transitionDuration: \"150ms\" };\n    case \"transition-opacity\":   return { transitionProperty: \"opacity\", transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\", transitionDuration: \"150ms\" };\n    case \"transition-shadow\":    return { transitionProperty: \"box-shadow\", transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\", transitionDuration: \"150ms\" };\n    case \"transition-transform\": return { transitionProperty: \"transform\", transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\", transitionDuration: \"150ms\" };\n    case \"transition-none\":      return { transitionProperty: \"none\" };\n    case \"duration\": return { transitionDuration: isArb ? value : (transitionDurationScale[value] ?? value) };\n    case \"ease-linear\":  return { transitionTimingFunction: \"linear\" };\n    case \"ease-in\":      return { transitionTimingFunction: \"cubic-bezier(0.4,0,1,1)\" };\n    case \"ease-out\":     return { transitionTimingFunction: \"cubic-bezier(0,0,0.2,1)\" };\n    case \"ease-in-out\":  return { transitionTimingFunction: \"cubic-bezier(0.4,0,0.2,1)\" };\n    case \"ease\": return { transitionTimingFunction: isArb ? value : (transitionTimingValues[value] ?? value) };\n    case \"delay\": return { transitionDelay: isArb ? value : (transitionDelayScale[value] ?? value) };\n\n    // ── Transforms ───────────────────────────────────────────\n    case \"scale\":   return { scale: isArb ? value : (scaleValues[value] ?? value) };\n    case \"scale-x\": return { scale: `${isArb ? value : (scaleValues[value] ?? value)} 1` };\n    case \"scale-y\": return { scale: `1 ${isArb ? value : (scaleValues[value] ?? value)}` };\n    case \"rotate\":  return { rotate: isArb ? value : (rotateValues[value] ?? value + \"deg\") };\n    case \"translate-x\": return { translate: `${sp(value, isArb)} 0` };\n    case \"translate-y\": return { translate: `0 ${sp(value, isArb)}` };\n    case \"skew-x\":  return { transform: `skewX(${isArb ? value : (skewValues[value] ?? value)})` };\n    case \"skew-y\":  return { transform: `skewY(${isArb ? value : (skewValues[value] ?? value)})` };\n    case \"origin-center\":       return { transformOrigin: \"center\" };\n    case \"origin-top\":          return { transformOrigin: \"top\" };\n    case \"origin-top-right\":    return { transformOrigin: \"top right\" };\n    case \"origin-right\":        return { transformOrigin: \"right\" };\n    case \"origin-bottom-right\": return { transformOrigin: \"bottom right\" };\n    case \"origin-bottom\":       return { transformOrigin: \"bottom\" };\n    case \"origin-bottom-left\":  return { transformOrigin: \"bottom left\" };\n    case \"origin-left\":         return { transformOrigin: \"left\" };\n    case \"origin-top-left\":     return { transformOrigin: \"top left\" };\n\n    // ── Cursor ───────────────────────────────────────────────\n    case \"cursor-auto\":        return { cursor: \"auto\" };\n    case \"cursor-default\":     return { cursor: \"default\" };\n    case \"cursor-pointer\":     return { cursor: \"pointer\" };\n    case \"cursor-wait\":        return { cursor: \"wait\" };\n    case \"cursor-text\":        return { cursor: \"text\" };\n    case \"cursor-move\":        return { cursor: \"move\" };\n    case \"cursor-not-allowed\": return { cursor: \"not-allowed\" };\n    case \"cursor-grab\":        return { cursor: \"grab\" };\n    case \"cursor-grabbing\":    return { cursor: \"grabbing\" };\n    case \"cursor-crosshair\":   return { cursor: \"crosshair\" };\n    case \"cursor-zoom-in\":     return { cursor: \"zoom-in\" };\n    case \"cursor-zoom-out\":    return { cursor: \"zoom-out\" };\n    case \"cursor-none\":        return { cursor: \"none\" };\n\n    // ── Pointer Events / User Select ─────────────────────────\n    case \"pointer-events\": return { pointerEvents: value };\n    case \"select-none\":    return { userSelect: \"none\" };\n    case \"select-text\":    return { userSelect: \"text\" };\n    case \"select-all\":     return { userSelect: \"all\" };\n    case \"select-auto\":    return { userSelect: \"auto\" };\n\n    // ── Aspect Ratio ─────────────────────────────────────────\n    case \"aspect-auto\":   return { aspectRatio: \"auto\" };\n    case \"aspect-square\": return { aspectRatio: \"1 / 1\" };\n    case \"aspect-video\":  return { aspectRatio: \"16 / 9\" };\n    case \"aspect\": return { aspectRatio: isArb ? value.replace(\"/\", \" / \") : value };\n\n    // ── Object fit / position ────────────────────────────────\n    case \"object-contain\":      return { objectFit: \"contain\" };\n    case \"object-cover\":        return { objectFit: \"cover\" };\n    case \"object-fill\":         return { objectFit: \"fill\" };\n    case \"object-none\":         return { objectFit: \"none\" };\n    case \"object-scale-down\":   return { objectFit: \"scale-down\" };\n    case \"object-center\":       return { objectPosition: \"center\" };\n    case \"object-top\":          return { objectPosition: \"top\" };\n    case \"object-bottom\":       return { objectPosition: \"bottom\" };\n    case \"object-left\":         return { objectPosition: \"left\" };\n    case \"object-right\":        return { objectPosition: \"right\" };\n    case \"object-left-top\":     return { objectPosition: \"left top\" };\n    case \"object-right-top\":    return { objectPosition: \"right top\" };\n    case \"object-left-bottom\":  return { objectPosition: \"left bottom\" };\n    case \"object-right-bottom\": return { objectPosition: \"right bottom\" };\n\n    // ── Appearance / Resize ──────────────────────────────────\n    case \"appearance-none\": return { appearance: \"none\" };\n    case \"appearance-auto\": return { appearance: \"auto\" };\n    case \"resize\":      return { resize: \"both\" };\n    case \"resize-x\":    return { resize: \"horizontal\" };\n    case \"resize-y\":    return { resize: \"vertical\" };\n    case \"resize-none\": return { resize: \"none\" };\n\n    // ── Space Between (marker for applier) ───────────────────\n    case \"space-x\": return { \"--snap-space-x\": sp(value, isArb) };\n    case \"space-y\": return { \"--snap-space-y\": sp(value, isArb) };\n\n    default:\n      return {};\n  }\n}\n","type Styles = Record<string, string>;\n\nconst cache = new Map<string, Styles>();\n\nexport function getStyle(cls: string): Styles | undefined {\n  return cache.get(cls);\n}\n\nexport function setStyle(cls: string, styles: Styles): void {\n  cache.set(cls, styles);\n}\n\nexport function clearCache(): void {\n  cache.clear();\n}\n\nexport function cacheSize(): number {\n  return cache.size;\n}\n","type Styles = Record<string, string>;\n\nexport function applyStyles(el: Element, styles: Styles): void {\n  const htmlEl = el as HTMLElement;\n  if (\"--snap-space-x\" in styles) {\n    applySpaceBetween(el, \"--snap-space-x\", styles[\"--snap-space-x\"], \"marginLeft\");\n    return;\n  }\n  if (\"--snap-space-y\" in styles) {\n    applySpaceBetween(el, \"--snap-space-y\", styles[\"--snap-space-y\"], \"marginTop\");\n    return;\n  }\n\n  Object.assign(htmlEl.style, styles);\n}\n\nexport function removeStyles(el: Element, keys: string[]): void {\n  const htmlEl = el as HTMLElement;\n  for (const key of keys) {\n    htmlEl.style.removeProperty(\n      key.replace(/([A-Z])/g, (m) => `-${m.toLowerCase()}`)\n    );\n  }\n}\n\nexport function saveStyles(el: Element, keys: string[]): Styles {\n  const htmlEl = el as HTMLElement;\n  const saved: Styles = {};\n\n  for (const key of keys) {\n    const cssKey = key.replace(/([A-Z])/g, (m) => `-${m.toLowerCase()}`);\n    saved[key] = htmlEl.style.getPropertyValue(cssKey);\n  }\n  return saved;\n}\n\nfunction applySpaceBetween(\n  el: Element,\n  _marker: string,\n  value: string,\n  prop: \"marginLeft\" | \"marginTop\"\n): void {\n  const children = Array.from(el.children);\n  children.forEach((child, i) => {\n    (child as HTMLElement).style[prop] = i === 0 ? \"\" : value;\n  });\n}\n","import { parseClass } from \"@snapcss/parser\";\nimport { resolve } from \"./resolver\";\nimport { applyStyles, saveStyles, removeStyles } from \"./applier\";\n\nexport function setupStateHandlers(el: Element, snapClasses: string[]): void {\n  for (const cls of snapClasses) {\n    const parsed = parseClass(cls);\n    if (parsed.modifier?.type !== \"state\") continue;\n\n    const state = parsed.modifier.state;\n    const styles = resolve({ ...parsed, modifier: null });\n    if (!Object.keys(styles).length) continue;\n\n    const styleKeys = Object.keys(styles);\n\n    if (state === \"hover\") {\n      el.addEventListener(\"mouseenter\", () => applyStyles(el, styles));\n      el.addEventListener(\"mouseleave\", () => removeStyles(el, styleKeys));\n    } else if (state === \"focus\") {\n      el.addEventListener(\"focus\", () => applyStyles(el, styles));\n      el.addEventListener(\"blur\", () => removeStyles(el, styleKeys));\n    } else if (state === \"focus-visible\") {\n      el.addEventListener(\"focus\", () => {\n        if (el.matches(\":focus-visible\")) applyStyles(el, styles);\n      });\n      el.addEventListener(\"blur\", () => removeStyles(el, styleKeys));\n    } else if (state === \"active\") {\n      el.addEventListener(\"mousedown\", () => applyStyles(el, styles));\n      el.addEventListener(\"mouseup\", () => removeStyles(el, styleKeys));\n      el.addEventListener(\"mouseleave\", () => removeStyles(el, styleKeys));\n    }\n  }\n}\n","import { parseClass } from \"@snapcss/parser\";\nimport { resolve } from \"./resolver\";\nimport { applyStyles } from \"./applier\";\n\n\nexport function applyStructuralModifiers(el: Element, snapClasses: string[]): void {\n  for (const cls of snapClasses) {\n    const parsed = parseClass(cls);\n    if (parsed.modifier?.type !== \"structural\") continue;\n\n    const kind = parsed.modifier.kind;\n    const styles = resolve({ ...parsed, modifier: null });\n    if (!Object.keys(styles).length) continue;\n\n    if (kind === \"disabled\") {\n      if ((el as HTMLElement & { disabled?: boolean }).disabled || el.hasAttribute(\"disabled\")) {\n        applyStyles(el, styles);\n      }\n    } else if (kind === \"first\") {\n      if (el === el.parentElement?.firstElementChild) {\n        applyStyles(el, styles);\n      }\n    } else if (kind === \"last\") {\n      if (el === el.parentElement?.lastElementChild) {\n        applyStyles(el, styles);\n      }\n    } else if (kind === \"odd\" || kind === \"even\") {\n      const parent = el.parentElement;\n      if (!parent) continue;\n      const index = Array.from(parent.children).indexOf(el);\n      const isOdd = index % 2 === 0; // 0-based: 0,2,4 → odd children (1st,3rd,5th)\n      if ((kind === \"odd\" && isOdd) || (kind === \"even\" && !isOdd)) {\n        applyStyles(el, styles);\n      }\n    }\n  }\n}\n","import { parseClass } from \"@snapcss/parser\";\nimport { resolve } from \"./resolver\";\nimport { applyStyles, removeStyles } from \"./applier\";\n\ninterface GroupChild {\n  el: Element;\n  styles: Record<string, string>;\n  styleKeys: string[];\n}\n\nconst groupRegistry = new Map<Element, GroupChild[]>();\n\nexport function registerGroupElements(scannedElements: Array<{ el: Element; snapClasses: string[] }>): void {\n  for (const { el, snapClasses } of scannedElements) {\n    for (const cls of snapClasses) {\n      const parsed = parseClass(cls);\n      if (parsed.modifier?.type !== \"group\") continue;\n\n      const styles = resolve({ ...parsed, modifier: null });\n      if (!Object.keys(styles).length) continue;\n\n      // Find nearest ancestor with group\n      const groupRoot = el.closest(\".group\");\n      if (!groupRoot) continue;\n\n      const children = groupRegistry.get(groupRoot) ?? [];\n      children.push({ el, styles, styleKeys: Object.keys(styles) });\n      groupRegistry.set(groupRoot, children);\n    }\n  }\n}\n\nexport function setupGroupHoverListeners(): void {\n  groupRegistry.forEach((children, groupRoot) => {\n    groupRoot.addEventListener(\"mouseenter\", () => {\n      children.forEach(({ el, styles }) => applyStyles(el, styles));\n    });\n    groupRoot.addEventListener(\"mouseleave\", () => {\n      children.forEach(({ el, styleKeys }) => removeStyles(el, styleKeys));\n    });\n  });\n}\n\nexport function clearGroupRegistry(): void {\n  groupRegistry.clear();\n}\n","import { parseClass } from \"@snapcss/parser\";\nimport { resolve } from \"./resolver\";\nimport { applyStyles, removeStyles } from \"./applier\";\n\nconst BREAKPOINTS: Record<string, number> = {\n  sm: 640,\n  md: 768,\n  lg: 1024,\n  xl: 1280,\n  \"2xl\": 1536,\n};\n\ninterface ResponsiveEntry {\n  el: Element;\n  breakpoint: number;\n  styles: Record<string, string>;\n  styleKeys: string[];\n}\n\nconst responsiveEntries: ResponsiveEntry[] = [];\n\nexport function storeResponsiveClass(el: Element, snapClasses: string[]): void {\n  for (const cls of snapClasses) {\n    const parsed = parseClass(cls);\n    if (parsed.modifier?.type !== \"responsive\") continue;\n\n    const bp = BREAKPOINTS[parsed.modifier.breakpoint];\n    if (bp === undefined) continue;\n\n    const styles = resolve({ ...parsed, modifier: null });\n    if (!Object.keys(styles).length) continue;\n\n    responsiveEntries.push({\n      el,\n      breakpoint: bp,\n      styles,\n      styleKeys: Object.keys(styles),\n    });\n  }\n}\n\nexport function applyResponsive(): void {\n  const width = window.innerWidth;\n\n  // Group by element so we can resolve conflicts when multiple breakpoints\n  // target the same CSS property (e.g. md:p-8 lg:p-[48px]).\n  // Without grouping, a higher breakpoint's removeStyles call would wipe out\n  // a style that a lower breakpoint had just applied.\n  const byElement = new Map<Element, ResponsiveEntry[]>();\n  for (const entry of responsiveEntries) {\n    const list = byElement.get(entry.el) ?? [];\n    list.push(entry);\n    byElement.set(entry.el, list);\n  }\n\n  for (const [el, entries] of byElement) {\n    // Sort ascending — lower breakpoints apply first, higher ones override (mobile-first)\n    const sorted = entries.slice().sort((a, b) => a.breakpoint - b.breakpoint);\n\n    const toApply: Record<string, string> = {};\n    const allKeys = new Set<string>();\n\n    for (const entry of sorted) {\n      for (const key of entry.styleKeys) allKeys.add(key);\n      if (width >= entry.breakpoint) {\n        Object.assign(toApply, entry.styles);\n      }\n    }\n\n    if (Object.keys(toApply).length > 0) applyStyles(el, toApply);\n\n    const keysToRemove = [...allKeys].filter((k) => !(k in toApply));\n    if (keysToRemove.length > 0) removeStyles(el, keysToRemove);\n  }\n}\n\nlet resizeTimer: ReturnType<typeof setTimeout> | null = null;\n\nexport function setupResizeListener(): void {\n  window.addEventListener(\"resize\", () => {\n    if (resizeTimer) clearTimeout(resizeTimer);\n    resizeTimer = setTimeout(applyResponsive, 150);\n  });\n}\n\nexport function clearResponsiveEntries(): void {\n  responsiveEntries.length = 0;\n}\n","import { parseClass } from \"@snapcss/parser\";\nimport { resolve } from \"./resolver\";\nimport { applyStyles, removeStyles } from \"./applier\";\n\ninterface DarkEntry {\n  el: Element;\n  styles: Record<string, string>;\n  styleKeys: string[];\n  preDarkStyles?: Record<string, string>;\n  darkApplied?: boolean;\n}\n\nconst darkEntries: DarkEntry[] = [];\nlet forcedDark: boolean | null = null;\n\n// Override OS preference — pass null to revert to matchMedia.\nexport function setDarkMode(isDark: boolean | null): void {\n  forcedDark = isDark;\n  applyDarkMode();\n}\n\nexport function storeDarkClass(el: Element, snapClasses: string[]): void {\n  for (const cls of snapClasses) {\n    const parsed = parseClass(cls);\n    if (parsed.modifier?.type !== \"dark\") continue;\n\n    const styles = resolve({ ...parsed, modifier: null });\n    if (!Object.keys(styles).length) continue;\n\n    darkEntries.push({ el, styles, styleKeys: Object.keys(styles) });\n  }\n}\n\nfunction snapshotStyles(el: Element, keys: string[]): Record<string, string> {\n  const elStyle = (el as HTMLElement).style;\n  const snapshot: Record<string, string> = {};\n  for (const key of keys) {\n    const cssKey = key.replace(/([A-Z])/g, (m) => `-${m.toLowerCase()}`);\n    snapshot[key] = elStyle.getPropertyValue(cssKey);\n  }\n  return snapshot;\n}\n\nexport function applyDarkMode(): void {\n  const isDark =\n    forcedDark ?? window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n  for (const entry of darkEntries) {\n    if (isDark) {\n      // Snapshot base styles before overwriting so we can restore them later\n      entry.preDarkStyles = snapshotStyles(entry.el, entry.styleKeys);\n      applyStyles(entry.el, entry.styles);\n      entry.darkApplied = true;\n    } else if (entry.darkApplied) {\n      // Restore base styles — only remove properties that had no base value\n      const pre = entry.preDarkStyles ?? {};\n      const toRestore: Record<string, string> = {};\n      const toRemove: string[] = [];\n      for (const key of entry.styleKeys) {\n        if (pre[key]) toRestore[key] = pre[key];\n        else toRemove.push(key);\n      }\n      if (Object.keys(toRestore).length) applyStyles(entry.el, toRestore);\n      if (toRemove.length) removeStyles(entry.el, toRemove);\n      entry.darkApplied = false;\n    }\n    // if !isDark and never applied, do nothing — base styles are untouched\n  }\n}\n\nexport function setupDarkModeListener(): void {\n  window\n    .matchMedia(\"(prefers-color-scheme: dark)\")\n    .addEventListener(\"change\", applyDarkMode);\n}\n\nexport function clearDarkEntries(): void {\n  darkEntries.length = 0;\n}\n","import { extractSnapClasses } from \"./scanner\";\nimport { parseClass } from \"@snapcss/parser\";\nimport { resolve } from \"./resolver\";\nimport { getStyle, setStyle } from \"./cache\";\nimport { applyStyles } from \"./applier\";\nimport { setupStateHandlers } from \"./states\";\nimport { applyStructuralModifiers } from \"./structural\";\nimport { storeResponsiveClass, applyResponsive } from \"./responsive\";\nimport { storeDarkClass } from \"./darkmode\";\nimport { registerGroupElements, setupGroupHoverListeners } from \"./group\";\n\nfunction processElement(el: Element): void {\n  const snapClasses = extractSnapClasses(el);\n  if (!snapClasses.length) return;\n\n  setupStateHandlers(el, snapClasses);\n  applyStructuralModifiers(el, snapClasses);\n  storeResponsiveClass(el, snapClasses);\n  // Inject CSS rules for any new dark: classes found on this element.\n  // We do NOT call applyDarkMode() here — html.dark is managed exclusively\n  // by setDarkMode() and the OS-preference listener, so firing it on every\n  // React re-render would override the user's explicit dark/light choice.\n  storeDarkClass(el, snapClasses);\n  registerGroupElements([{ el, snapClasses }]);\n\n  for (const cls of snapClasses) {\n    const parsed = parseClass(cls);\n    if (parsed.modifier !== null) continue;\n\n    let styles = getStyle(cls);\n    if (!styles) {\n      styles = resolve(parsed);\n      setStyle(cls, styles);\n    }\n    applyStyles(el, styles);\n  }\n}\n\nexport function setupMutationObserver(): void {\n  const observer = new MutationObserver((mutations) => {\n    let needsResponsive = false;\n    let needsGroupSetup = false;\n\n    for (const mutation of mutations) {\n      if (mutation.type === \"childList\") {\n        mutation.addedNodes.forEach((node) => {\n          if (node.nodeType !== Node.ELEMENT_NODE) return;\n          const el = node as Element;\n          processElement(el);\n          el.querySelectorAll(\"*\").forEach(processElement);\n          needsResponsive = true;\n          needsGroupSetup = true;\n        });\n      } else if (mutation.type === \"attributes\") {\n        const el = mutation.target as Element;\n        if (mutation.attributeName === \"class\") {\n          processElement(el);\n          needsResponsive = true;\n          needsGroupSetup = true;\n        } else if (mutation.attributeName === \"disabled\") {\n          applyStructuralModifiers(el, extractSnapClasses(el));\n        }\n      }\n    }\n\n    if (needsResponsive) applyResponsive();\n    if (needsGroupSetup) setupGroupHoverListeners();\n  });\n\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: [\"class\", \"disabled\"],\n  });\n}\n","import { parseClass } from \"@snapcss/parser\";\nimport { configure, SnapTheme } from \"@snapcss/themes\";\nimport { scanDOM } from \"./scanner\";\nimport { resolve } from \"./resolver\";\nimport { getStyle, setStyle } from \"./cache\";\nimport { applyStyles } from \"./applier\";\nimport { setupStateHandlers } from \"./states\";\nimport { applyStructuralModifiers } from \"./structural\";\nimport { registerGroupElements, setupGroupHoverListeners } from \"./group\";\nimport {\n  storeResponsiveClass,\n  applyResponsive,\n  setupResizeListener,\n} from \"./responsive\";\nimport {\n  storeDarkClass,\n  applyDarkMode,\n  setupDarkModeListener,\n} from \"./darkmode\";\nimport { setupMutationObserver } from \"./observer\";\n\nexport interface SnapCSSOptions {\n  theme?: Partial<SnapTheme>;\n}\n\nexport function init(options?: SnapCSSOptions): void {\n  if (options?.theme) {\n    configure({ theme: options.theme });\n  }\n  const scannedElements = scanDOM();\n\n  // First pass: register group elements so listeners cover dynamic additions too\n  registerGroupElements(scannedElements);\n\n  for (const { el, snapClasses } of scannedElements) {\n    setupStateHandlers(el, snapClasses);\n    applyStructuralModifiers(el, snapClasses);\n    storeResponsiveClass(el, snapClasses);\n    storeDarkClass(el, snapClasses);\n\n    for (const cls of snapClasses) {\n      const parsed = parseClass(cls);\n      if (parsed.modifier !== null) continue;\n\n      let styles = getStyle(cls);\n      if (!styles) {\n        styles = resolve(parsed);\n        setStyle(cls, styles);\n      }\n      applyStyles(el, styles);\n    }\n  }\n\n  applyResponsive();\n  applyDarkMode();\n  setupGroupHoverListeners();\n  setupResizeListener();\n  setupDarkModeListener();\n  setupMutationObserver();\n}\n\nif (typeof document !== \"undefined\") {\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", () => init());\n  } else {\n    init();\n  }\n}\n\nexport { configure } from \"@snapcss/themes\";\nexport { clearCache } from \"./cache\";\nexport { setDarkMode } from \"./darkmode\";\n"]}