tadka-css 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +154 -0
- package/dist/tadka-css.cjs.js +1385 -0
- package/dist/tadka-css.cjs.js.map +1 -0
- package/dist/tadka-css.esm.js +1383 -0
- package/dist/tadka-css.esm.js.map +1 -0
- package/dist/tadka-css.js +1391 -0
- package/dist/tadka-css.js.map +1 -0
- package/dist/tadka-css.min.js +1 -0
- package/package.json +45 -0
- package/types/index.d.ts +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tadka-css.esm.js","sources":["../src/config.js","../src/pseudo.js","../src/helpers.js","../src/responsive.js","../src/engine.js","../src/events.js","../src/observer.js","../src/utilities/animations.js","../src/utilities/borders.js","../src/utilities/colors.js","../src/utilities/effects.js","../src/utilities/layout.js","../src/utilities/overflow.js","../src/utilities/positioning.js","../src/utilities/sizing.js","../src/utilities/spacing.js","../src/utilities/transforms.js","../src/utilities/transitions.js","../src/utilities/typography.js","../src/parser.js","../src/index.js"],"sourcesContent":["const BREAKPOINTS = {\r\n sm: \"640px\",\r\n md: \"768px\",\r\n lg: \"1024px\",\r\n xl: \"1280px\",\r\n \"2xl\": \"1536px\",\r\n};\r\n\r\nconst SCALE = {\r\n 0: 0,\r\n 0.5: 0.125,\r\n 1: 0.25,\r\n 1.5: 0.375,\r\n 2: 0.5,\r\n 2.5: 0.625,\r\n 3: 0.75,\r\n 3.5: 0.875,\r\n 4: 1,\r\n 5: 1.25,\r\n 6: 1.5,\r\n 7: 1.75,\r\n 8: 2,\r\n 9: 2.25,\r\n 10: 2.5,\r\n 11: 2.75,\r\n 12: 3,\r\n 14: 3.5,\r\n 16: 4,\r\n 20: 5,\r\n 24: 6,\r\n 28: 7,\r\n 32: 8,\r\n 36: 9,\r\n 40: 10,\r\n 44: 11,\r\n 48: 12,\r\n 52: 13,\r\n 56: 14,\r\n 60: 15,\r\n 64: 16,\r\n 72: 18,\r\n 80: 20,\r\n 96: 24,\r\n};\r\n\r\nfunction clamp(value, min, max) {\r\n return Math.min(max, Math.max(min, value));\r\n}\r\n\r\nfunction hslToHex(h, s, l) {\r\n s /= 100;\r\n l /= 100;\r\n const a = s * Math.min(l, 1 - l);\r\n const f = (n) => {\r\n const k = (n + h / 30) % 12;\r\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\r\n return Math.round(255 * color)\r\n .toString(16)\r\n .padStart(2, \"0\");\r\n };\r\n\r\n return `#${f(0)}${f(8)}${f(4)}`;\r\n}\r\n\r\nfunction createShades(hue, saturation = 70) {\r\n const levels = {\r\n 50: 97,\r\n 100: 93,\r\n 200: 86,\r\n 300: 76,\r\n 400: 64,\r\n 500: 54,\r\n 600: 46,\r\n 700: 39,\r\n 800: 31,\r\n 900: 24,\r\n 950: 16,\r\n };\r\n\r\n return Object.fromEntries(\r\n Object.entries(levels).map(([key, lightness]) => [\r\n key,\r\n hslToHex(hue, clamp(saturation, 25, 90), lightness),\r\n ]),\r\n );\r\n}\r\n\r\nexport function createDefaultPalette() {\r\n return {\r\n slate: createShades(220, 18),\r\n gray: createShades(220, 8),\r\n zinc: createShades(240, 8),\r\n neutral: createShades(30, 7),\r\n stone: createShades(28, 14),\r\n red: createShades(2, 80),\r\n orange: createShades(24, 85),\r\n amber: createShades(39, 90),\r\n yellow: createShades(52, 88),\r\n lime: createShades(79, 70),\r\n green: createShades(140, 62),\r\n emerald: createShades(160, 65),\r\n teal: createShades(176, 70),\r\n cyan: createShades(190, 78),\r\n sky: createShades(205, 85),\r\n blue: createShades(220, 88),\r\n indigo: createShades(240, 76),\r\n violet: createShades(262, 77),\r\n purple: createShades(276, 75),\r\n fuchsia: createShades(300, 76),\r\n pink: createShades(336, 84),\r\n rose: createShades(348, 84),\r\n white: \"#ffffff\",\r\n black: \"#000000\",\r\n transparent: \"transparent\",\r\n inherit: \"inherit\",\r\n current: \"currentColor\",\r\n };\r\n}\r\n\r\nexport const defaultConfig = {\r\n prefix: \"tadka\",\r\n scale: 4,\r\n removeClasses: false,\r\n watch: true,\r\n breakpoints: BREAKPOINTS,\r\n spacingScale: SCALE,\r\n colors: createDefaultPalette(),\r\n extend: {},\r\n};\r\n\r\nexport function deepMerge(base, next) {\r\n const output = { ...base };\r\n for (const [key, value] of Object.entries(next || {})) {\r\n if (\r\n value &&\r\n typeof value === \"object\" &&\r\n !Array.isArray(value) &&\r\n base[key] &&\r\n typeof base[key] === \"object\" &&\r\n !Array.isArray(base[key])\r\n ) {\r\n output[key] = deepMerge(base[key], value);\r\n } else {\r\n output[key] = value;\r\n }\r\n }\r\n return output;\r\n}\r\n\r\nexport function createConfig(options = {}) {\r\n return deepMerge(defaultConfig, options);\r\n}\r\n","const pseudoState = new WeakMap();\r\n\r\nfunction getHandlers(el) {\r\n if (!pseudoState.has(el)) pseudoState.set(el, new Map());\r\n return pseudoState.get(el);\r\n}\r\n\r\nfunction setStyles(el, styles, apply) {\r\n for (const [key, value] of Object.entries(styles)) {\r\n if (apply) {\r\n el.style[key] = value;\r\n } else {\r\n el.style[key] = \"\";\r\n }\r\n }\r\n}\r\n\r\nexport function attachPseudoListener(el, parsed) {\r\n const map = getHandlers(el);\r\n const key = `${parsed.pseudo}:${parsed.token}`;\r\n if (map.has(key)) return;\r\n\r\n let on;\r\n let off;\r\n\r\n if (parsed.pseudo === \"hover\") {\r\n on = () => setStyles(el, parsed.styles, true);\r\n off = () => setStyles(el, parsed.styles, false);\r\n el.addEventListener(\"mouseenter\", on);\r\n el.addEventListener(\"mouseleave\", off);\r\n } else if (parsed.pseudo === \"focus\") {\r\n on = () => setStyles(el, parsed.styles, true);\r\n off = () => setStyles(el, parsed.styles, false);\r\n el.addEventListener(\"focus\", on);\r\n el.addEventListener(\"blur\", off);\r\n } else if (parsed.pseudo === \"active\") {\r\n on = () => setStyles(el, parsed.styles, true);\r\n off = () => setStyles(el, parsed.styles, false);\r\n el.addEventListener(\"mousedown\", on);\r\n el.addEventListener(\"mouseup\", off);\r\n el.addEventListener(\"mouseleave\", off);\r\n } else if (parsed.pseudo === \"disabled\") {\r\n if (el.hasAttribute(\"disabled\")) setStyles(el, parsed.styles, true);\r\n } else if (parsed.pseudo === \"checked\") {\r\n const sync = () => setStyles(el, parsed.styles, Boolean(el.checked));\r\n sync();\r\n el.addEventListener(\"change\", sync);\r\n on = sync;\r\n off = null;\r\n }\r\n\r\n map.set(key, { on, off, pseudo: parsed.pseudo });\r\n}\r\n\r\nexport function clearPseudoListeners(root = document) {\r\n const nodes = root.querySelectorAll(\"*\");\r\n nodes.forEach((el) => {\r\n const map = pseudoState.get(el);\r\n if (!map) return;\r\n\r\n for (const entry of map.values()) {\r\n if (entry.pseudo === \"hover\") {\r\n el.removeEventListener(\"mouseenter\", entry.on);\r\n el.removeEventListener(\"mouseleave\", entry.off);\r\n } else if (entry.pseudo === \"focus\") {\r\n el.removeEventListener(\"focus\", entry.on);\r\n el.removeEventListener(\"blur\", entry.off);\r\n } else if (entry.pseudo === \"active\") {\r\n el.removeEventListener(\"mousedown\", entry.on);\r\n el.removeEventListener(\"mouseup\", entry.off);\r\n el.removeEventListener(\"mouseleave\", entry.off);\r\n }\r\n }\r\n\r\n map.clear();\r\n });\r\n}\r\n","export function toKebab(str) {\r\n return str.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\r\n}\r\n\r\nexport function isArbitrary(value) {\r\n return /^\\[.+\\]$/.test(value);\r\n}\r\n\r\nexport function readArbitrary(value) {\r\n if (!isArbitrary(value)) return null;\r\n return value.slice(1, -1).replace(/_/g, \" \");\r\n}\r\n\r\nexport function parseNumberish(value) {\r\n const num = Number(value);\r\n return Number.isFinite(num) ? num : null;\r\n}\r\n\r\nexport function resolveScaleValue(raw, scaleMap) {\r\n if (raw in scaleMap) return `${scaleMap[raw]}rem`;\r\n const num = parseNumberish(raw);\r\n if (num === null) return null;\r\n return `${num * 0.25}rem`;\r\n}\r\n\r\nexport function normalizeClassName(className) {\r\n return className.trim().replace(/\\s+/g, \" \");\r\n}\r\n","import { toKebab } from \"./helpers.js\";\r\n\r\nlet styleSheet = null;\r\nlet idCounter = 0;\r\nconst inserted = new Set();\r\n\r\nfunction ensureSheet() {\r\n if (styleSheet) return styleSheet;\r\n const style = document.createElement(\"style\");\r\n style.id = \"tadka-responsive\";\r\n document.head.appendChild(style);\r\n styleSheet = style.sheet;\r\n return styleSheet;\r\n}\r\n\r\nfunction toStyleBlock(styles) {\r\n return Object.entries(styles)\r\n .map(([property, value]) => `${toKebab(property)}: ${value}`)\r\n .join(\"; \");\r\n}\r\n\r\nexport function injectMediaQuery(el, parsed, config) {\r\n const sheet = ensureSheet();\r\n\r\n if (!el.dataset.tadkaId) {\r\n idCounter += 1;\r\n el.dataset.tadkaId = `tadka-${idCounter}`;\r\n }\r\n\r\n const selector = `[data-tadka-id='${el.dataset.tadkaId}']`;\r\n const declarations = toStyleBlock(parsed.styles);\r\n const minWidth = config.breakpoints[parsed.breakpoint];\r\n const rule = `@media (min-width: ${minWidth}) { ${selector} { ${declarations} } }`;\r\n\r\n if (inserted.has(rule)) return;\r\n inserted.add(rule);\r\n sheet.insertRule(rule, sheet.cssRules.length);\r\n}\r\n\r\nexport function resetResponsiveStyles() {\r\n inserted.clear();\r\n idCounter = 0;\r\n if (!styleSheet) return;\r\n\r\n const owner = styleSheet.ownerNode;\r\n owner?.parentNode?.removeChild(owner);\r\n styleSheet = null;\r\n}\r\n","import { attachPseudoListener, clearPseudoListeners } from \"./pseudo.js\";\r\nimport { injectMediaQuery, resetResponsiveStyles } from \"./responsive.js\";\r\n\r\nconst originalStyleMap = new WeakMap();\r\n\r\nfunction rememberOriginalStyle(el) {\r\n if (!originalStyleMap.has(el)) {\r\n originalStyleMap.set(el, el.getAttribute(\"style\") || \"\");\r\n }\r\n}\r\n\r\nfunction applyInlineStyles(el, styles) {\r\n rememberOriginalStyle(el);\r\n for (const [key, value] of Object.entries(styles)) {\r\n el.style[key] = value;\r\n }\r\n}\r\n\r\nexport function createEngine(config, parseClass, eventBus) {\r\n const prefix = config.prefix;\r\n\r\n function processElement(el) {\r\n if (!el?.classList) return false;\r\n\r\n const classes = [...el.classList].filter((cls) => cls === prefix || cls.startsWith(`${prefix}-`));\r\n if (classes.length === 0) return false;\r\n\r\n for (const cls of classes) {\r\n const parsed = parseClass(cls);\r\n\r\n if (parsed.type === \"style\") {\r\n applyInlineStyles(el, parsed.styles);\r\n } else if (parsed.type === \"responsive\") {\r\n injectMediaQuery(el, parsed, config);\r\n } else if (parsed.type === \"pseudo\") {\r\n attachPseudoListener(el, parsed);\r\n } else if (parsed.type === \"unknown\") {\r\n eventBus.emit(\"parse-error\", { className: cls });\r\n }\r\n\r\n eventBus.emit(\"apply\", { element: el, className: cls, styles: parsed.styles || null });\r\n if (config.removeClasses) el.classList.remove(cls);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function scanAndApply(root = document) {\r\n const selector = `[class*='${prefix}-']`;\r\n const candidates = root.matches?.(selector) ? [root, ...root.querySelectorAll(selector)] : [...root.querySelectorAll(selector)];\r\n let count = 0;\r\n\r\n candidates.forEach((el) => {\r\n if (processElement(el)) count += 1;\r\n });\r\n\r\n return count;\r\n }\r\n\r\n function reset(root = document) {\r\n const nodes = root.querySelectorAll(\"*\");\r\n nodes.forEach((el) => {\r\n if (!originalStyleMap.has(el)) return;\r\n const original = originalStyleMap.get(el);\r\n if (original) {\r\n el.setAttribute(\"style\", original);\r\n } else {\r\n el.removeAttribute(\"style\");\r\n }\r\n originalStyleMap.delete(el);\r\n });\r\n\r\n clearPseudoListeners(root);\r\n resetResponsiveStyles();\r\n }\r\n\r\n return {\r\n scanAndApply,\r\n apply: processElement,\r\n reset,\r\n };\r\n}\r\n","export function createEventBus() {\r\n const handlers = new Map();\r\n\r\n return {\r\n on(event, handler) {\r\n if (!handlers.has(event)) handlers.set(event, new Set());\r\n handlers.get(event).add(handler);\r\n return () => handlers.get(event)?.delete(handler);\r\n },\r\n emit(event, payload) {\r\n const set = handlers.get(event);\r\n if (!set) return;\r\n for (const handler of set) {\r\n try {\r\n handler(payload);\r\n } catch {\r\n // Event listeners should never crash the engine.\r\n }\r\n }\r\n },\r\n clear() {\r\n handlers.clear();\r\n },\r\n };\r\n}\r\n","export function watchDOM(scanAndApply) {\r\n const observer = new MutationObserver((mutations) => {\r\n for (const mutation of mutations) {\r\n if (mutation.type === \"attributes\" && mutation.target?.nodeType === Node.ELEMENT_NODE) {\r\n scanAndApply(mutation.target);\r\n }\r\n\r\n for (const node of mutation.addedNodes) {\r\n if (node.nodeType !== Node.ELEMENT_NODE) continue;\r\n scanAndApply(node);\r\n }\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n attributeFilter: [\"class\"],\r\n });\r\n\r\n return observer;\r\n}\r\n","const animationMap = {\r\n \"animate-none\": \"none\",\r\n \"animate-spin\": \"tadka-spin 1s linear infinite\",\r\n \"animate-ping\": \"tadka-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",\r\n \"animate-pulse\": \"tadka-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\r\n \"animate-bounce\": \"tadka-bounce 1s infinite\",\r\n};\r\n\r\nlet injected = false;\r\n\r\nexport function ensureAnimationKeyframes() {\r\n if (injected || typeof document === \"undefined\") return;\r\n const style = document.createElement(\"style\");\r\n style.id = \"tadka-keyframes\";\r\n style.textContent = `\r\n@keyframes tadka-spin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }\r\n@keyframes tadka-ping { 75%, 100% { transform: scale(2); opacity: 0; } }\r\n@keyframes tadka-pulse { 50% { opacity: .5; } }\r\n@keyframes tadka-bounce {\r\n 0%,100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8,0,1,1); }\r\n 50% { transform: none; animation-timing-function: cubic-bezier(0,0,.2,1); }\r\n}`;\r\n document.head.appendChild(style);\r\n injected = true;\r\n}\r\n\r\nexport function resolveAnimations(token) {\r\n if (!animationMap[token]) return null;\r\n ensureAnimationKeyframes();\r\n return { animation: animationMap[token] };\r\n}\r\n","import { parseNumberish } from \"../helpers.js\";\r\n\r\nconst radiusMap = {\r\n none: \"0px\",\r\n sm: \"0.125rem\",\r\n DEFAULT: \"0.25rem\",\r\n md: \"0.375rem\",\r\n lg: \"0.5rem\",\r\n xl: \"0.75rem\",\r\n \"2xl\": \"1rem\",\r\n \"3xl\": \"1.5rem\",\r\n full: \"9999px\",\r\n};\r\n\r\nexport function resolveBorders(token) {\r\n if (token === \"border\") return { borderWidth: \"1px\", borderStyle: \"solid\" };\r\n if (token.startsWith(\"border-\")) {\r\n const value = token.slice(7);\r\n const styleSet = new Set([\"solid\", \"dashed\", \"dotted\", \"double\", \"hidden\", \"none\"]);\r\n if (styleSet.has(value)) return { borderStyle: value };\r\n const n = parseNumberish(value);\r\n if (n !== null) return { borderWidth: `${n}px`, borderStyle: \"solid\" };\r\n }\r\n\r\n if (token === \"rounded\") return { borderRadius: radiusMap.DEFAULT };\r\n if (token.startsWith(\"rounded-\")) {\r\n const key = token.slice(8);\r\n if (radiusMap[key]) return { borderRadius: radiusMap[key] };\r\n }\r\n\r\n if (token.startsWith(\"ring-\")) {\r\n const size = parseNumberish(token.slice(5));\r\n if (size !== null) {\r\n return { boxShadow: `0 0 0 ${size}px var(--tadka-ring-color, rgba(59,130,246,0.5))` };\r\n }\r\n }\r\n\r\n if (token === \"outline-none\") {\r\n return { outline: \"2px solid transparent\", outlineOffset: \"2px\" };\r\n }\r\n\r\n return null;\r\n}\r\n","import { isArbitrary, readArbitrary, parseNumberish } from \"../helpers.js\";\r\n\r\nfunction resolvePaletteColor(colors, colorName, shade) {\r\n const entry = colors[colorName];\r\n if (!entry) return null;\r\n if (typeof entry === \"string\") return entry;\r\n if (!shade) return entry[500] || null;\r\n return entry[shade] || null;\r\n}\r\n\r\nfunction parseColorParts(input) {\r\n if (isArbitrary(input)) {\r\n return { value: readArbitrary(input) };\r\n }\r\n\r\n const [name, maybeShade] = input.split(\"-\");\r\n return { name, shade: maybeShade };\r\n}\r\n\r\nconst colorProps = {\r\n bg: \"backgroundColor\",\r\n text: \"color\",\r\n border: \"borderColor\",\r\n accent: \"accentColor\",\r\n caret: \"caretColor\",\r\n fill: \"fill\",\r\n stroke: \"stroke\",\r\n};\r\n\r\nexport function resolveColors(token, config) {\r\n if (token.startsWith(\"from-\")) {\r\n const payload = token.slice(5);\r\n const parsed = parseColorParts(payload);\r\n const color = parsed.value || resolvePaletteColor(config.colors, parsed.name, parsed.shade);\r\n if (!color) return null;\r\n return {\r\n \"--tadka-gradient-from\": color,\r\n \"--tadka-gradient-to\": \"rgba(255,255,255,0)\",\r\n };\r\n }\r\n\r\n if (token.startsWith(\"to-\")) {\r\n const payload = token.slice(3);\r\n const parsed = parseColorParts(payload);\r\n const color = parsed.value || resolvePaletteColor(config.colors, parsed.name, parsed.shade);\r\n if (!color) return null;\r\n return { \"--tadka-gradient-to\": color };\r\n }\r\n\r\n for (const [prefix, property] of Object.entries(colorProps)) {\r\n if (!token.startsWith(`${prefix}-`)) continue;\r\n const colorRaw = token.slice(prefix.length + 1);\r\n const parsed = parseColorParts(colorRaw);\r\n\r\n if (parsed.value) return { [property]: parsed.value };\r\n\r\n const color = resolvePaletteColor(config.colors, parsed.name, parsed.shade);\r\n if (!color) return null;\r\n return { [property]: color };\r\n }\r\n\r\n if (token.startsWith(\"bg-opacity-\")) {\r\n const value = parseNumberish(token.replace(\"bg-opacity-\", \"\"));\r\n if (value === null) return null;\r\n return { \"--tadka-bg-opacity\": `${Math.max(0, Math.min(100, value)) / 100}` };\r\n }\r\n\r\n if (token.startsWith(\"text-opacity-\")) {\r\n const value = parseNumberish(token.replace(\"text-opacity-\", \"\"));\r\n if (value === null) return null;\r\n return { \"--tadka-text-opacity\": `${Math.max(0, Math.min(100, value)) / 100}` };\r\n }\r\n\r\n if (token.startsWith(\"ring-\")) {\r\n const payload = token.slice(5);\r\n const parsed = parseColorParts(payload);\r\n if (parsed.value) return { \"--tadka-ring-color\": parsed.value };\r\n const color = resolvePaletteColor(config.colors, parsed.name, parsed.shade);\r\n if (!color) return null;\r\n return { \"--tadka-ring-color\": color };\r\n }\r\n\r\n return null;\r\n}\r\n","import { parseNumberish } from \"../helpers.js\";\r\n\r\nconst shadowMap = {\r\n \"shadow-none\": \"none\",\r\n \"shadow-sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\r\n shadow: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\r\n \"shadow-md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\r\n \"shadow-lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\r\n \"shadow-xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\r\n \"shadow-2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\r\n \"shadow-inner\": \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\r\n};\r\n\r\nconst blurMap = {\r\n \"blur-none\": \"blur(0)\",\r\n \"blur-sm\": \"blur(4px)\",\r\n blur: \"blur(8px)\",\r\n \"blur-md\": \"blur(12px)\",\r\n \"blur-lg\": \"blur(16px)\",\r\n \"blur-xl\": \"blur(24px)\",\r\n \"blur-2xl\": \"blur(40px)\",\r\n \"blur-3xl\": \"blur(64px)\",\r\n};\r\n\r\nexport function resolveEffects(token) {\r\n if (token === \"bg-gradient-to-r\") {\r\n return {\r\n backgroundImage: \"linear-gradient(to right, var(--tadka-gradient-from), var(--tadka-gradient-to))\",\r\n };\r\n }\r\n\r\n if (token.startsWith(\"opacity-\")) {\r\n const n = parseNumberish(token.slice(8));\r\n if (n === null) return null;\r\n return { opacity: `${Math.max(0, Math.min(100, n)) / 100}` };\r\n }\r\n\r\n if (shadowMap[token]) return { boxShadow: shadowMap[token] };\r\n if (blurMap[token]) return { filter: blurMap[token] };\r\n\r\n if (token.startsWith(\"brightness-\")) {\r\n const n = parseNumberish(token.slice(11));\r\n if (n === null) return null;\r\n return { filter: `brightness(${n / 100})` };\r\n }\r\n\r\n if (token.startsWith(\"contrast-\")) {\r\n const n = parseNumberish(token.slice(9));\r\n if (n === null) return null;\r\n return { filter: `contrast(${n / 100})` };\r\n }\r\n\r\n if (token === \"grayscale\") return { filter: \"grayscale(100%)\" };\r\n if (token === \"grayscale-0\") return { filter: \"grayscale(0%)\" };\r\n\r\n return null;\r\n}\r\n","import { parseNumberish, resolveScaleValue } from \"../helpers.js\";\r\n\r\nconst displayMap = {\r\n block: \"block\",\r\n \"inline-block\": \"inline-block\",\r\n inline: \"inline\",\r\n flex: \"flex\",\r\n \"inline-flex\": \"inline-flex\",\r\n grid: \"grid\",\r\n hidden: \"none\",\r\n contents: \"contents\",\r\n};\r\n\r\nexport function resolveLayout(token, config) {\r\n if (displayMap[token]) return { display: displayMap[token] };\r\n\r\n const flexDirection = {\r\n \"flex-row\": \"row\",\r\n \"flex-col\": \"column\",\r\n \"flex-row-reverse\": \"row-reverse\",\r\n \"flex-col-reverse\": \"column-reverse\",\r\n };\r\n if (flexDirection[token]) return { display: \"flex\", flexDirection: flexDirection[token] };\r\n\r\n const justifyMap = {\r\n \"justify-start\": \"flex-start\",\r\n \"justify-end\": \"flex-end\",\r\n \"justify-center\": \"center\",\r\n \"justify-between\": \"space-between\",\r\n \"justify-around\": \"space-around\",\r\n \"justify-evenly\": \"space-evenly\",\r\n };\r\n if (justifyMap[token]) return { justifyContent: justifyMap[token] };\r\n\r\n const itemsMap = {\r\n \"items-start\": \"flex-start\",\r\n \"items-end\": \"flex-end\",\r\n \"items-center\": \"center\",\r\n \"items-baseline\": \"baseline\",\r\n \"items-stretch\": \"stretch\",\r\n };\r\n if (itemsMap[token]) return { alignItems: itemsMap[token] };\r\n\r\n if (token.startsWith(\"grid-cols-\")) {\r\n const v = token.replace(\"grid-cols-\", \"\");\r\n const n = parseNumberish(v);\r\n if (n !== null) return { display: \"grid\", gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))` };\r\n }\r\n\r\n if (token.startsWith(\"grid-rows-\")) {\r\n const v = token.replace(\"grid-rows-\", \"\");\r\n const n = parseNumberish(v);\r\n if (n !== null) return { display: \"grid\", gridTemplateRows: `repeat(${n}, minmax(0, 1fr))` };\r\n }\r\n\r\n if (token.startsWith(\"basis-\")) {\r\n const value = token.replace(\"basis-\", \"\");\r\n if (value === \"full\") return { flexBasis: \"100%\" };\r\n if (value === \"auto\") return { flexBasis: \"auto\" };\r\n const scaled = resolveScaleValue(value, config.spacingScale);\r\n if (scaled) return { flexBasis: scaled };\r\n }\r\n\r\n if (token === \"flex-1\") return { flex: \"1 1 0%\" };\r\n if (token === \"flex-auto\") return { flex: \"1 1 auto\" };\r\n if (token === \"flex-none\") return { flex: \"none\" };\r\n if (token === \"flex-wrap\") return { flexWrap: \"wrap\" };\r\n if (token === \"flex-nowrap\") return { flexWrap: \"nowrap\" };\r\n\r\n return null;\r\n}\r\n","import { parseNumberish, resolveScaleValue } from \"../helpers.js\";\r\n\r\nexport function resolveOverflow(token, config) {\r\n const direct = {\r\n \"overflow-auto\": { overflow: \"auto\" },\r\n \"overflow-hidden\": { overflow: \"hidden\" },\r\n \"overflow-visible\": { overflow: \"visible\" },\r\n \"overflow-scroll\": { overflow: \"scroll\" },\r\n \"overflow-clip\": { overflow: \"clip\" },\r\n \"overflow-x-auto\": { overflowX: \"auto\" },\r\n \"overflow-x-hidden\": { overflowX: \"hidden\" },\r\n \"overflow-x-scroll\": { overflowX: \"scroll\" },\r\n \"overflow-y-auto\": { overflowY: \"auto\" },\r\n \"overflow-y-hidden\": { overflowY: \"hidden\" },\r\n \"overflow-y-scroll\": { overflowY: \"scroll\" },\r\n \"scroll-smooth\": { scrollBehavior: \"smooth\" },\r\n \"scroll-auto\": { scrollBehavior: \"auto\" },\r\n \"cursor-pointer\": { cursor: \"pointer\" },\r\n \"cursor-default\": { cursor: \"default\" },\r\n \"cursor-text\": { cursor: \"text\" },\r\n \"cursor-not-allowed\": { cursor: \"not-allowed\" },\r\n \"select-none\": { userSelect: \"none\" },\r\n \"select-text\": { userSelect: \"text\" },\r\n \"pointer-events-none\": { pointerEvents: \"none\" },\r\n \"pointer-events-auto\": { pointerEvents: \"auto\" },\r\n resize: { resize: \"both\" },\r\n \"resize-x\": { resize: \"horizontal\" },\r\n \"resize-y\": { resize: \"vertical\" },\r\n \"resize-none\": { resize: \"none\" },\r\n };\r\n\r\n if (direct[token]) return direct[token];\r\n\r\n if (token.startsWith(\"scroll-p-\")) {\r\n const raw = token.slice(9);\r\n const val = resolveScaleValue(raw, config.spacingScale);\r\n if (val) return { scrollPadding: val };\r\n }\r\n\r\n if (token.startsWith(\"scroll-m-\")) {\r\n const raw = token.slice(9);\r\n const val = resolveScaleValue(raw, config.spacingScale);\r\n if (val) return { scrollMargin: val };\r\n }\r\n\r\n if (token.startsWith(\"z-\")) {\r\n const n = parseNumberish(token.slice(2));\r\n if (n !== null) return { zIndex: `${n}` };\r\n }\r\n if (token === \"z-auto\") return { zIndex: \"auto\" };\r\n\r\n return null;\r\n}\r\n","import { isArbitrary, readArbitrary, resolveScaleValue } from \"../helpers.js\";\r\n\r\nconst posMap = {\r\n static: \"static\",\r\n relative: \"relative\",\r\n absolute: \"absolute\",\r\n fixed: \"fixed\",\r\n sticky: \"sticky\",\r\n};\r\n\r\nconst floatMap = {\r\n \"float-left\": \"left\",\r\n \"float-right\": \"right\",\r\n \"float-none\": \"none\",\r\n};\r\n\r\nexport function resolvePositioning(token, config) {\r\n if (posMap[token]) return { position: posMap[token] };\r\n if (floatMap[token]) return { float: floatMap[token] };\r\n\r\n const sides = [\"top\", \"right\", \"bottom\", \"left\"];\r\n for (const side of sides) {\r\n if (!token.startsWith(`${side}-`)) continue;\r\n const raw = token.slice(side.length + 1);\r\n if (raw === \"auto\") return { [side]: \"auto\" };\r\n if (raw === \"full\") return { [side]: \"100%\" };\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (value) return { [side]: value };\r\n }\r\n\r\n if (token.startsWith(\"inset-\")) {\r\n const raw = token.slice(6);\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (value) return { inset: value };\r\n }\r\n\r\n if (token.startsWith(\"inset-x-\")) {\r\n const raw = token.slice(8);\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (value) return { left: value, right: value };\r\n }\r\n\r\n if (token.startsWith(\"inset-y-\")) {\r\n const raw = token.slice(8);\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (value) return { top: value, bottom: value };\r\n }\r\n\r\n if (token === \"isolate\") return { isolation: \"isolate\" };\r\n if (token === \"isolation-auto\") return { isolation: \"auto\" };\r\n\r\n return null;\r\n}\r\n","import { isArbitrary, readArbitrary, resolveScaleValue } from \"../helpers.js\";\r\n\r\nconst fractionMap = {\r\n \"1/2\": \"50%\",\r\n \"1/3\": \"33.333333%\",\r\n \"2/3\": \"66.666667%\",\r\n \"1/4\": \"25%\",\r\n \"3/4\": \"75%\",\r\n \"1/5\": \"20%\",\r\n \"2/5\": \"40%\",\r\n \"3/5\": \"60%\",\r\n \"4/5\": \"80%\",\r\n \"1/6\": \"16.666667%\",\r\n \"5/6\": \"83.333333%\",\r\n};\r\n\r\nfunction resolveLength(raw, config) {\r\n if (isArbitrary(raw)) return readArbitrary(raw);\r\n const named = {\r\n auto: \"auto\",\r\n full: \"100%\",\r\n screen: \"100vw\",\r\n svw: \"100svw\",\r\n lvw: \"100lvw\",\r\n dvw: \"100dvw\",\r\n min: \"min-content\",\r\n max: \"max-content\",\r\n fit: \"fit-content\",\r\n };\r\n if (named[raw]) return named[raw];\r\n if (fractionMap[raw]) return fractionMap[raw];\r\n return resolveScaleValue(raw, config.spacingScale);\r\n}\r\n\r\nexport function resolveSizing(token, config) {\r\n if (token.startsWith(\"min-w-\")) {\r\n const value = resolveLength(token.slice(6), config);\r\n if (!value) return null;\r\n return { minWidth: value };\r\n }\r\n\r\n if (token.startsWith(\"max-w-\")) {\r\n const raw = token.slice(6);\r\n const named = {\r\n none: \"none\",\r\n full: \"100%\",\r\n screen: \"100vw\",\r\n prose: \"65ch\",\r\n xs: \"20rem\",\r\n sm: \"24rem\",\r\n md: \"28rem\",\r\n lg: \"32rem\",\r\n xl: \"36rem\",\r\n \"2xl\": \"42rem\",\r\n \"3xl\": \"48rem\",\r\n \"4xl\": \"56rem\",\r\n \"5xl\": \"64rem\",\r\n \"6xl\": \"72rem\",\r\n \"7xl\": \"80rem\",\r\n };\r\n if (named[raw]) return { maxWidth: named[raw] };\r\n const value = resolveLength(raw, config);\r\n if (!value) return null;\r\n return { maxWidth: value };\r\n }\r\n\r\n if (token.startsWith(\"min-h-\")) {\r\n const raw = token.slice(6);\r\n const named = { full: \"100%\", screen: \"100vh\" };\r\n if (named[raw]) return { minHeight: named[raw] };\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (!value) return null;\r\n return { minHeight: value };\r\n }\r\n\r\n if (token.startsWith(\"max-h-\")) {\r\n const raw = token.slice(6);\r\n const named = { none: \"none\", full: \"100%\", screen: \"100vh\" };\r\n if (named[raw]) return { maxHeight: named[raw] };\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (!value) return null;\r\n return { maxHeight: value };\r\n }\r\n\r\n if (token.startsWith(\"w-\")) {\r\n const value = resolveLength(token.slice(2), config);\r\n if (!value) return null;\r\n return { width: value };\r\n }\r\n\r\n if (token.startsWith(\"h-\")) {\r\n const raw = token.slice(2);\r\n const named = {\r\n auto: \"auto\",\r\n full: \"100%\",\r\n screen: \"100vh\",\r\n svh: \"100svh\",\r\n lvh: \"100lvh\",\r\n dvh: \"100dvh\",\r\n min: \"min-content\",\r\n max: \"max-content\",\r\n fit: \"fit-content\",\r\n };\r\n if (named[raw]) return { height: named[raw] };\r\n const value = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (!value) return null;\r\n return { height: value };\r\n }\r\n\r\n if (token.startsWith(\"size-\")) {\r\n const value = resolveLength(token.slice(5), config);\r\n if (!value) return null;\r\n return { width: value, height: value };\r\n }\r\n\r\n if (token === \"aspect-square\") return { aspectRatio: \"1 / 1\" };\r\n if (token === \"aspect-video\") return { aspectRatio: \"16 / 9\" };\r\n if (token === \"aspect-auto\") return { aspectRatio: \"auto\" };\r\n\r\n return null;\r\n}\r\n","import { isArbitrary, readArbitrary, resolveScaleValue } from \"../helpers.js\";\r\n\r\nconst directMap = {\r\n p: [\"padding\"],\r\n px: [\"paddingLeft\", \"paddingRight\"],\r\n py: [\"paddingTop\", \"paddingBottom\"],\r\n pt: [\"paddingTop\"],\r\n pr: [\"paddingRight\"],\r\n pb: [\"paddingBottom\"],\r\n pl: [\"paddingLeft\"],\r\n m: [\"margin\"],\r\n mx: [\"marginLeft\", \"marginRight\"],\r\n my: [\"marginTop\", \"marginBottom\"],\r\n mt: [\"marginTop\"],\r\n mr: [\"marginRight\"],\r\n mb: [\"marginBottom\"],\r\n ml: [\"marginLeft\"],\r\n gap: [\"gap\"],\r\n \"gap-x\": [\"columnGap\"],\r\n \"gap-y\": [\"rowGap\"],\r\n};\r\n\r\nfunction setAll(keys, value) {\r\n return Object.fromEntries(keys.map((key) => [key, value]));\r\n}\r\n\r\nexport function resolveSpacing(token, config) {\r\n if (token === \"mx-auto\") return { marginLeft: \"auto\", marginRight: \"auto\" };\r\n\r\n const parts = token.split(\"-\");\r\n const candidates = [parts[0], parts.slice(0, 2).join(\"-\")];\r\n\r\n for (const key of candidates) {\r\n const cssKeys = directMap[key];\r\n if (!cssKeys) continue;\r\n\r\n const raw = token.slice(key.length + 1);\r\n const value = isArbitrary(raw)\r\n ? readArbitrary(raw)\r\n : resolveScaleValue(raw, config.spacingScale);\r\n\r\n if (!value) return null;\r\n return setAll(cssKeys, value);\r\n }\r\n\r\n return null;\r\n}\r\n","import { isArbitrary, parseNumberish, readArbitrary, resolveScaleValue } from \"../helpers.js\";\r\n\r\nconst originMap = {\r\n \"origin-center\": \"center\",\r\n \"origin-top\": \"top\",\r\n \"origin-bottom\": \"bottom\",\r\n \"origin-left\": \"left\",\r\n \"origin-right\": \"right\",\r\n \"origin-top-left\": \"top left\",\r\n \"origin-top-right\": \"top right\",\r\n \"origin-bottom-left\": \"bottom left\",\r\n \"origin-bottom-right\": \"bottom right\",\r\n};\r\n\r\nexport function resolveTransforms(token, config) {\r\n if (token.startsWith(\"scale-\")) {\r\n const n = parseNumberish(token.slice(6));\r\n if (n !== null) return { transform: `scale(${n / 100})` };\r\n }\r\n\r\n if (token.startsWith(\"rotate-\")) {\r\n const value = token.slice(7);\r\n const v = isArbitrary(value) ? readArbitrary(value) : `${value}deg`;\r\n return { transform: `rotate(${v})` };\r\n }\r\n\r\n if (token.startsWith(\"-rotate-\")) {\r\n const value = token.slice(8);\r\n const v = isArbitrary(value) ? readArbitrary(value) : `${value}deg`;\r\n return { transform: `rotate(-${v.replace(\"-\", \"\")})` };\r\n }\r\n\r\n if (token.startsWith(\"translate-x-\")) {\r\n const raw = token.slice(12);\r\n const v = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (v) return { transform: `translateX(${v})` };\r\n }\r\n\r\n if (token.startsWith(\"translate-y-\")) {\r\n const raw = token.slice(12);\r\n const v = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (v) return { transform: `translateY(${v})` };\r\n }\r\n\r\n if (token.startsWith(\"-translate-x-\")) {\r\n const raw = token.slice(13);\r\n const v = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (v) return { transform: `translateX(-${v})` };\r\n }\r\n\r\n if (token.startsWith(\"-translate-y-\")) {\r\n const raw = token.slice(13);\r\n const v = isArbitrary(raw) ? readArbitrary(raw) : resolveScaleValue(raw, config.spacingScale);\r\n if (v) return { transform: `translateY(-${v})` };\r\n }\r\n\r\n if (originMap[token]) return { transformOrigin: originMap[token] };\r\n\r\n if (token.startsWith(\"skew-x-\")) {\r\n const value = token.slice(7);\r\n return { transform: `skewX(${value}deg)` };\r\n }\r\n\r\n if (token.startsWith(\"skew-y-\")) {\r\n const value = token.slice(7);\r\n return { transform: `skewY(${value}deg)` };\r\n }\r\n\r\n if (token.startsWith(\"perspective-\")) {\r\n const n = parseNumberish(token.slice(12));\r\n if (n !== null) return { perspective: `${n}px` };\r\n }\r\n\r\n return null;\r\n}\r\n","import { parseNumberish } from \"../helpers.js\";\r\n\r\nconst transitionMap = {\r\n transition:\r\n \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter 150ms ease\",\r\n \"transition-none\": \"none\",\r\n \"transition-all\": \"all 150ms cubic-bezier(0.4, 0, 0.2, 1)\",\r\n \"transition-colors\":\r\n \"color, background-color, border-color, text-decoration-color, fill, stroke 150ms ease\",\r\n \"transition-opacity\": \"opacity 150ms ease\",\r\n \"transition-shadow\": \"box-shadow 150ms ease\",\r\n \"transition-transform\": \"transform 150ms ease\",\r\n};\r\n\r\nconst easeMap = {\r\n \"ease-linear\": \"linear\",\r\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\r\n};\r\n\r\nexport function resolveTransitions(token) {\r\n if (transitionMap[token]) return { transition: transitionMap[token] };\r\n if (easeMap[token]) return { transitionTimingFunction: easeMap[token] };\r\n\r\n if (token.startsWith(\"duration-\")) {\r\n const n = parseNumberish(token.slice(9));\r\n if (n !== null) return { transitionDuration: `${n}ms` };\r\n }\r\n\r\n if (token.startsWith(\"delay-\")) {\r\n const n = parseNumberish(token.slice(6));\r\n if (n !== null) return { transitionDelay: `${n}ms` };\r\n }\r\n\r\n return null;\r\n}\r\n","import { isArbitrary, readArbitrary, resolveScaleValue } from \"../helpers.js\";\r\n\r\nconst fontSizeMap = {\r\n xs: [\"0.75rem\", \"1rem\"],\r\n sm: [\"0.875rem\", \"1.25rem\"],\r\n base: [\"1rem\", \"1.5rem\"],\r\n lg: [\"1.125rem\", \"1.75rem\"],\r\n xl: [\"1.25rem\", \"1.75rem\"],\r\n \"2xl\": [\"1.5rem\", \"2rem\"],\r\n \"3xl\": [\"1.875rem\", \"2.25rem\"],\r\n \"4xl\": [\"2.25rem\", \"2.5rem\"],\r\n \"5xl\": [\"3rem\", \"1\"],\r\n \"6xl\": [\"3.75rem\", \"1\"],\r\n \"7xl\": [\"4.5rem\", \"1\"],\r\n \"8xl\": [\"6rem\", \"1\"],\r\n \"9xl\": [\"8rem\", \"1\"],\r\n};\r\n\r\nconst textAlignMap = {\r\n left: \"left\",\r\n center: \"center\",\r\n right: \"right\",\r\n justify: \"justify\",\r\n start: \"start\",\r\n end: \"end\",\r\n};\r\n\r\nconst weightMap = {\r\n thin: 100,\r\n extralight: 200,\r\n light: 300,\r\n normal: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n extrabold: 800,\r\n black: 900,\r\n};\r\n\r\nexport function resolveTypography(token, config) {\r\n if (token.startsWith(\"text-\")) {\r\n const key = token.slice(5);\r\n if (fontSizeMap[key]) {\r\n const [fontSize, lineHeight] = fontSizeMap[key];\r\n return { fontSize, lineHeight };\r\n }\r\n\r\n if (textAlignMap[key]) return { textAlign: textAlignMap[key] };\r\n\r\n if (isArbitrary(key)) {\r\n const value = readArbitrary(key);\r\n return { fontSize: value };\r\n }\r\n }\r\n\r\n if (token.startsWith(\"font-\")) {\r\n const key = token.slice(5);\r\n if (weightMap[key]) return { fontWeight: String(weightMap[key]) };\r\n if (key === \"sans\") return { fontFamily: \"ui-sans-serif, system-ui, sans-serif\" };\r\n if (key === \"serif\") return { fontFamily: \"ui-serif, Georgia, serif\" };\r\n if (key === \"mono\") return { fontFamily: \"ui-monospace, SFMono-Regular, monospace\" };\r\n }\r\n\r\n if (token === \"italic\") return { fontStyle: \"italic\" };\r\n if (token === \"not-italic\") return { fontStyle: \"normal\" };\r\n if (token === \"underline\") return { textDecorationLine: \"underline\" };\r\n if (token === \"line-through\") return { textDecorationLine: \"line-through\" };\r\n if (token === \"no-underline\") return { textDecorationLine: \"none\" };\r\n if (token === \"uppercase\") return { textTransform: \"uppercase\" };\r\n if (token === \"lowercase\") return { textTransform: \"lowercase\" };\r\n if (token === \"capitalize\") return { textTransform: \"capitalize\" };\r\n if (token === \"truncate\") return { overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" };\r\n\r\n if (token.startsWith(\"leading-\")) {\r\n const key = token.slice(8);\r\n const map = {\r\n none: \"1\",\r\n tight: \"1.25\",\r\n snug: \"1.375\",\r\n normal: \"1.5\",\r\n relaxed: \"1.625\",\r\n loose: \"2\",\r\n };\r\n if (map[key]) return { lineHeight: map[key] };\r\n const val = isArbitrary(key) ? readArbitrary(key) : resolveScaleValue(key, config.spacingScale);\r\n if (val) return { lineHeight: val };\r\n }\r\n\r\n return null;\r\n}\r\n","import { normalizeClassName } from \"./helpers.js\";\r\nimport { resolveAnimations } from \"./utilities/animations.js\";\r\nimport { resolveBorders } from \"./utilities/borders.js\";\r\nimport { resolveColors } from \"./utilities/colors.js\";\r\nimport { resolveEffects } from \"./utilities/effects.js\";\r\nimport { resolveLayout } from \"./utilities/layout.js\";\r\nimport { resolveOverflow } from \"./utilities/overflow.js\";\r\nimport { resolvePositioning } from \"./utilities/positioning.js\";\r\nimport { resolveSizing } from \"./utilities/sizing.js\";\r\nimport { resolveSpacing } from \"./utilities/spacing.js\";\r\nimport { resolveTransforms } from \"./utilities/transforms.js\";\r\nimport { resolveTransitions } from \"./utilities/transitions.js\";\r\nimport { resolveTypography } from \"./utilities/typography.js\";\r\n\r\nconst pseudoVariants = new Set([\r\n \"hover\",\r\n \"focus\",\r\n \"active\",\r\n \"group-hover\",\r\n \"group-focus\",\r\n \"peer-hover\",\r\n \"disabled\",\r\n \"checked\",\r\n \"visited\",\r\n]);\r\n\r\nconst resolvers = [\r\n resolveSpacing,\r\n resolveColors,\r\n resolveTypography,\r\n resolveBorders,\r\n resolveLayout,\r\n resolvePositioning,\r\n resolveSizing,\r\n resolveEffects,\r\n resolveOverflow,\r\n resolveTransitions,\r\n resolveTransforms,\r\n resolveAnimations,\r\n];\r\n\r\nfunction resolveWithBuiltins(token, config) {\r\n for (const fn of resolvers) {\r\n const styles = fn(token, config);\r\n if (styles) return styles;\r\n }\r\n return null;\r\n}\r\n\r\nfunction resolveExtended(token, config) {\r\n const ext = config.extend || {};\r\n if (ext[token] && typeof ext[token] === \"object\") return ext[token];\r\n\r\n const dash = token.lastIndexOf(\"-\");\r\n if (dash === -1) return null;\r\n\r\n const name = token.slice(0, dash);\r\n const rawValue = token.slice(dash + 1);\r\n const rule = ext[name];\r\n if (typeof rule === \"function\") return rule(Number.isNaN(Number(rawValue)) ? rawValue : Number(rawValue));\r\n\r\n return null;\r\n}\r\n\r\nexport function createParser(config) {\r\n const cache = new Map();\r\n const prefixRoot = `${config.prefix}-`;\r\n\r\n return function parseClass(className) {\r\n const source = normalizeClassName(className);\r\n if (cache.has(source)) return cache.get(source);\r\n\r\n if (!(source === config.prefix || source.startsWith(prefixRoot))) {\r\n const result = { type: \"ignore\", className: source };\r\n cache.set(source, result);\r\n return result;\r\n }\r\n\r\n let body = source.slice(prefixRoot.length);\r\n const parts = body.split(\":\");\r\n const utilityToken = parts.pop();\r\n let breakpoint = null;\r\n let pseudo = null;\r\n\r\n for (const variant of parts) {\r\n if (config.breakpoints[variant]) {\r\n breakpoint = variant;\r\n continue;\r\n }\r\n if (pseudoVariants.has(variant)) {\r\n pseudo = variant;\r\n }\r\n }\r\n\r\n const extended = resolveExtended(utilityToken, config);\r\n const styles = extended || resolveWithBuiltins(utilityToken, config);\r\n\r\n if (!styles) {\r\n const unknown = { type: \"unknown\", className: source, token: utilityToken };\r\n cache.set(source, unknown);\r\n return unknown;\r\n }\r\n\r\n const result = {\r\n type: pseudo ? \"pseudo\" : breakpoint ? \"responsive\" : \"style\",\r\n className: source,\r\n token: utilityToken,\r\n pseudo,\r\n breakpoint,\r\n styles,\r\n };\r\n\r\n cache.set(source, result);\r\n return result;\r\n };\r\n}\r\n","import { createConfig, deepMerge, defaultConfig } from \"./config.js\";\r\nimport { createEngine } from \"./engine.js\";\r\nimport { createEventBus } from \"./events.js\";\r\nimport { watchDOM } from \"./observer.js\";\r\nimport { createParser } from \"./parser.js\";\r\n\r\nlet config = createConfig();\r\nlet parser = createParser(config);\r\nlet bus = createEventBus();\r\nlet engine = createEngine(config, parser, bus);\r\nlet observer = null;\r\n\r\nfunction rebuild(options = {}) {\r\n config = deepMerge(defaultConfig, config);\r\n config = deepMerge(config, options);\r\n parser = createParser(config);\r\n engine = createEngine(config, parser, bus);\r\n}\r\n\r\nconst TadkaCSS = {\r\n version: \"1.0.0\",\r\n\r\n init(options = {}) {\r\n rebuild(options);\r\n const count = engine.scanAndApply(document);\r\n\r\n if (observer) observer.disconnect();\r\n if (config.watch && typeof MutationObserver !== \"undefined\") {\r\n observer = watchDOM((root) => engine.scanAndApply(root));\r\n }\r\n\r\n bus.emit(\"ready\", { count });\r\n return count;\r\n },\r\n\r\n refresh() {\r\n const count = engine.scanAndApply(document);\r\n bus.emit(\"refresh\", { count });\r\n return count;\r\n },\r\n\r\n apply(element) {\r\n return engine.apply(element);\r\n },\r\n\r\n applyAll(nodeList) {\r\n return Array.from(nodeList || []).map((el) => engine.apply(el));\r\n },\r\n\r\n parse(className) {\r\n const parsed = parser(className);\r\n return parsed.styles || null;\r\n },\r\n\r\n register(name, styles) {\r\n config.extend[name] = styles;\r\n parser = createParser(config);\r\n },\r\n\r\n unregister(name) {\r\n delete config.extend[name];\r\n parser = createParser(config);\r\n },\r\n\r\n getConfig() {\r\n return config;\r\n },\r\n\r\n setConfig(options) {\r\n rebuild(options);\r\n return config;\r\n },\r\n\r\n reset() {\r\n if (observer) {\r\n observer.disconnect();\r\n observer = null;\r\n }\r\n engine.reset(document);\r\n },\r\n\r\n on(event, handler) {\r\n return bus.on(event, handler);\r\n },\r\n};\r\n\r\nif (typeof window !== \"undefined\") {\r\n window.TadkaCSS = TadkaCSS;\r\n if (document.readyState === \"loading\") {\r\n document.addEventListener(\"DOMContentLoaded\", () => TadkaCSS.init());\r\n } else {\r\n TadkaCSS.init();\r\n }\r\n}\r\n\r\nexport default TadkaCSS;\r\n"],"names":[],"mappings":"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"}
|