uraniyum 1.2.8 → 1.3.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/dist/index.esm.js +7 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
- package/src/styles.ts +8 -0
package/dist/index.esm.js
CHANGED
|
@@ -321,6 +321,7 @@ function buildAtomicEntries(rule) {
|
|
|
321
321
|
const val = rule[key];
|
|
322
322
|
if (val == null)
|
|
323
323
|
continue;
|
|
324
|
+
// Pseudo selectors
|
|
324
325
|
if (key.startsWith(":") && typeof val === "object") {
|
|
325
326
|
for (const prop in val) {
|
|
326
327
|
const v = val[prop];
|
|
@@ -332,6 +333,12 @@ function buildAtomicEntries(rule) {
|
|
|
332
333
|
}
|
|
333
334
|
continue;
|
|
334
335
|
}
|
|
336
|
+
// @media, @supports
|
|
337
|
+
if (key.startsWith("@") && typeof val === "object") {
|
|
338
|
+
// handled elsewhere (reset styles), skip for atomic
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
// Normal CSS property
|
|
335
342
|
if (typeof val !== "object") {
|
|
336
343
|
const decl = `${camelToKebab(key)}:${resolveValue(val)}`;
|
|
337
344
|
const classes = getAtomicClasses("&", decl);
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/state.ts","../src/tags.ts","../src/router.ts","../src/helpers.ts","../src/styles.ts"],"sourcesContent":["export const STATE = Symbol(\"STATE\");\nexport function isState(x) {\n return typeof x === \"object\" && x !== null && x[STATE] === true;\n}\nlet currentEffect = null;\nfunction track(st) {\n if (currentEffect) {\n st.subs.add(currentEffect);\n currentEffect.deps.add(st);\n }\n}\nfunction cleanup(effect) {\n for (const st of effect.deps)\n st.subs.delete(effect);\n effect.deps.clear();\n}\nexport function state(v) {\n const st = {\n [STATE]: true,\n subs: new Set(),\n get val() {\n track(st);\n return v;\n },\n set val(nv) {\n if (nv === v)\n return;\n v = nv;\n for (const fn of Array.from(st.subs)) {\n fn();\n }\n }\n };\n return st;\n}\nexport function derive(fn) {\n const effect = (() => {\n cleanup(effect);\n currentEffect = effect;\n try {\n fn();\n }\n finally {\n currentEffect = null;\n }\n });\n effect.deps = new Set();\n effect();\n return effect;\n}\n","import { derive } from \"./state\";\nfunction isState(x) {\n return x && typeof x === \"object\" && \"subs\" in x && \"val\" in x;\n}\n// --- Attribute detection (fix for TypeScript narrowing) ---\nfunction isAttrs(x) {\n return (x &&\n typeof x === \"object\" &&\n !(x instanceof Node) &&\n !isState(x) &&\n typeof x !== \"function\" &&\n !Array.isArray(x));\n}\nexport const tags = new Proxy({}, {\n get(_, tag) {\n return (attrsOrChild, ...children) => {\n const el = document.createElement(tag);\n // Handle attributes safely\n if (isAttrs(attrsOrChild)) {\n for (const [k, v] of Object.entries(attrsOrChild)) {\n el.setAttribute(k, String(v));\n }\n }\n else if (attrsOrChild != null) {\n // Now TypeScript knows it's ChildLike, not Attrs\n children.unshift(attrsOrChild);\n }\n processChildren(el, children);\n return el;\n };\n }\n});\nfunction processChildren(el, children) {\n for (const child of children.flat()) {\n if (child == null || child === false)\n continue;\n if (typeof child === \"function\") {\n mountReactiveFunction(el, child);\n continue;\n }\n if (isState(child)) {\n mountReactiveState(el, child);\n continue;\n }\n if (child instanceof Node) {\n el.appendChild(child);\n continue;\n }\n el.appendChild(document.createTextNode(String(child)));\n }\n}\nfunction mountReactiveFunction(parent, fn) {\n const marker = document.createTextNode(\"\");\n parent.appendChild(marker);\n let mounted = [];\n const cleanup = () => {\n for (const n of mounted) {\n if (n.parentNode === parent)\n parent.removeChild(n);\n }\n mounted = [];\n };\n derive(() => {\n cleanup();\n const value = fn();\n const values = Array.isArray(value) ? value.flat() : [value];\n for (const v of values) {\n if (v == null || v === false)\n continue;\n if (typeof v === \"function\") {\n mountReactiveFunction(parent, v);\n continue;\n }\n if (isState(v)) {\n const node = document.createTextNode(String(v.val));\n parent.insertBefore(node, marker);\n v.subs.add(() => {\n const next = String(v.val);\n if (node.data !== next)\n node.data = next;\n });\n mounted.push(node);\n continue;\n }\n if (v instanceof Node) {\n parent.insertBefore(v, marker);\n mounted.push(v);\n continue;\n }\n const text = document.createTextNode(String(v));\n parent.insertBefore(text, marker);\n mounted.push(text);\n }\n });\n}\nfunction mountReactiveState(parent, st) {\n const node = document.createTextNode(String(st.val));\n parent.appendChild(node);\n st.subs.add(() => {\n const next = String(st.val);\n if (node.data !== next)\n node.data = next;\n });\n}\n","export function router(routes) {\n const patterns = [];\n let wildcard = null;\n for (const path of Object.keys(routes)) {\n const handler = routes[path];\n if (!handler)\n continue;\n if (path === \"*\") {\n wildcard = handler;\n continue;\n }\n const keys = [];\n const pattern = path.replace(/:[^/]+/g, (m) => {\n keys.push(m.slice(1));\n return \"([^/]+)\";\n });\n patterns.push({\n regex: new RegExp(`^${pattern}$`),\n keys,\n handler\n });\n }\n let currentEl = null;\n let currentPath = \"\";\n function parseQuery(search) {\n const params = {};\n if (!search)\n return params;\n for (const [k, v] of new URLSearchParams(search))\n params[k] = v;\n return params;\n }\n function matchRoute(pathname) {\n for (const { regex, keys, handler } of patterns) {\n const match = pathname.match(regex);\n if (!match)\n continue;\n const params = {};\n keys.forEach((key, i) => {\n params[key] = decodeURIComponent(match[i + 1]);\n });\n Object.assign(params, parseQuery(location.search));\n return handler(params);\n }\n if (wildcard)\n return wildcard({});\n throw new Error(`No route matches \"${pathname}\"`);\n }\n function render() {\n const newFullPath = location.pathname + location.search;\n if (newFullPath === currentPath)\n return;\n currentPath = newFullPath;\n const next = matchRoute(location.pathname);\n if (currentEl && currentEl.parentNode) {\n document.body.removeChild(currentEl);\n }\n document.body.appendChild(next);\n currentEl = next;\n }\n window.addEventListener(\"popstate\", render);\n render();\n return {\n render,\n push(path) {\n history.pushState(null, \"\", path);\n render();\n },\n replace(path) {\n history.replaceState(null, \"\", path);\n render();\n },\n back: () => history.back()\n };\n}\n","export function add(component) {\n if (typeof component === \"function\") {\n const el = component();\n if (!(el instanceof HTMLElement)) {\n throw new Error(\"Component function must return an HTMLElement\");\n }\n document.body.appendChild(el);\n return;\n }\n if (\"render\" in component && typeof component.render === \"function\") {\n component.render();\n return;\n }\n throw new Error(\"Invalid component passed to add()\");\n}\n","const PRECEDENCE_LAYERS = 3;\n/* -------------------------------------------------------------------------- */\n/* Stylesheet management (one <style> per layer) */\n/* -------------------------------------------------------------------------- */\nconst styleElements = Array(PRECEDENCE_LAYERS).fill(null);\nconst styleSheets = Array(PRECEDENCE_LAYERS).fill(null);\nfunction ensureStyleSheet(layer) {\n if (!styleSheets[layer]) {\n const el = document.createElement(\"style\");\n el.id = `styles-layer-${layer}`;\n document.head.appendChild(el);\n styleElements[layer] = el;\n styleSheets[layer] = el.sheet;\n }\n return styleSheets[layer];\n}\n/* -------------------------------------------------------------------------- */\n/* Utilities */\n/* -------------------------------------------------------------------------- */\nconst camelToKebabCache = new Map();\nfunction camelToKebab(str) {\n const cached = camelToKebabCache.get(str);\n if (cached)\n return cached;\n const res = str.replace(/[A-Z]/g, m => \"-\" + m.toLowerCase());\n camelToKebabCache.set(str, res);\n return res;\n}\nfunction resolveValue(v) {\n return typeof v === \"function\" ? v() : v;\n}\nfunction hashString(str) {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n return (hash >>> 0).toString(36);\n}\n/* -------------------------------------------------------------------------- */\n/* Atomic rule generation */\n/* -------------------------------------------------------------------------- */\nconst atomicCache = new Map();\nfunction makeClassName(signature, layer) {\n return `f${hashString(`${layer}|${signature}`)}`;\n}\nfunction prefixSelector(selector, className) {\n // handles: \"&\", \"&:hover\", \"&:hover,&:active\"\n return selector\n .split(\",\")\n .map(part => part.trim().replace(/&/g, `.${className}`))\n .join(\",\");\n}\nfunction getAtomicClasses(selector, decl) {\n const signature = `${selector}|${decl}`;\n const cached = atomicCache.get(signature);\n if (cached)\n return cached;\n const classes = [];\n for (let layer = 0; layer < PRECEDENCE_LAYERS; layer++) {\n const className = makeClassName(signature, layer);\n classes.push(className);\n const rule = selector === \"&\"\n ? `.${className}{${decl}}`\n : `${prefixSelector(selector, className)}{${decl}}`;\n const sheet = ensureStyleSheet(layer);\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n atomicCache.set(signature, classes);\n return classes;\n}\nfunction buildAtomicEntries(rule) {\n const entries = [];\n for (const key in rule) {\n const val = rule[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n for (const prop in val) {\n const v = val[prop];\n if (v == null || typeof v === \"object\")\n continue;\n const decl = `${camelToKebab(prop)}:${resolveValue(v)}`;\n const classes = getAtomicClasses(`&${key}`, decl);\n entries.push({ classes });\n }\n continue;\n }\n if (typeof val !== \"object\") {\n const decl = `${camelToKebab(key)}:${resolveValue(val)}`;\n const classes = getAtomicClasses(\"&\", decl);\n entries.push({ classes });\n }\n }\n return entries;\n}\n/* -------------------------------------------------------------------------- */\n/* makeStyles */\n/* -------------------------------------------------------------------------- */\nexport function makeStyles(styles, layer = 0) {\n return () => {\n const result = {};\n for (const slot in styles) {\n const rule = (styles[slot] ?? {});\n const entries = buildAtomicEntries(rule);\n const classes = entries\n .map(e => e.classes[layer])\n .join(\" \");\n result[slot] = classes;\n }\n return result;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* makeResetStyles */\n/* -------------------------------------------------------------------------- */\nconst resetCache = new Map();\nfunction stringifyRule(selector, styles) {\n const rules = [];\n const decls = [];\n for (const key in styles) {\n const val = styles[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n rules.push(...stringifyRule(`${selector}${key}`, val));\n continue;\n }\n if (typeof val !== \"object\") {\n decls.push(`${camelToKebab(key)}:${resolveValue(val)}`);\n }\n }\n if (decls.length) {\n rules.unshift(`${selector}{${decls.join(\";\")}}`);\n }\n return rules;\n}\nexport function makeResetStyles(styles) {\n const signature = JSON.stringify(styles);\n return () => {\n const cached = resetCache.get(signature);\n if (cached)\n return cached;\n const className = `r${hashString(signature)}`;\n const selector = `.${className}`;\n const rules = stringifyRule(selector, styles);\n const sheet = ensureStyleSheet(0);\n for (const rule of rules) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n resetCache.set(signature, className);\n return className;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* mergeClasses (NO precedence logic here) */\n/* -------------------------------------------------------------------------- */\nexport function mergeClasses(...inputs) {\n const seen = new Set();\n const result = [];\n for (const input of inputs) {\n if (typeof input !== \"string\")\n continue;\n const parts = input.trim().split(/\\s+/);\n for (const cls of parts) {\n if (!seen.has(cls)) {\n seen.add(cls);\n result.push(cls);\n }\n }\n }\n return result.join(\" \");\n}\n"],"names":["isState"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/state.ts","../src/tags.ts","../src/router.ts","../src/helpers.ts","../src/styles.ts"],"sourcesContent":["export const STATE = Symbol(\"STATE\");\nexport function isState(x) {\n return typeof x === \"object\" && x !== null && x[STATE] === true;\n}\nlet currentEffect = null;\nfunction track(st) {\n if (currentEffect) {\n st.subs.add(currentEffect);\n currentEffect.deps.add(st);\n }\n}\nfunction cleanup(effect) {\n for (const st of effect.deps)\n st.subs.delete(effect);\n effect.deps.clear();\n}\nexport function state(v) {\n const st = {\n [STATE]: true,\n subs: new Set(),\n get val() {\n track(st);\n return v;\n },\n set val(nv) {\n if (nv === v)\n return;\n v = nv;\n for (const fn of Array.from(st.subs)) {\n fn();\n }\n }\n };\n return st;\n}\nexport function derive(fn) {\n const effect = (() => {\n cleanup(effect);\n currentEffect = effect;\n try {\n fn();\n }\n finally {\n currentEffect = null;\n }\n });\n effect.deps = new Set();\n effect();\n return effect;\n}\n","import { derive } from \"./state\";\nfunction isState(x) {\n return x && typeof x === \"object\" && \"subs\" in x && \"val\" in x;\n}\n// --- Attribute detection (fix for TypeScript narrowing) ---\nfunction isAttrs(x) {\n return (x &&\n typeof x === \"object\" &&\n !(x instanceof Node) &&\n !isState(x) &&\n typeof x !== \"function\" &&\n !Array.isArray(x));\n}\nexport const tags = new Proxy({}, {\n get(_, tag) {\n return (attrsOrChild, ...children) => {\n const el = document.createElement(tag);\n // Handle attributes safely\n if (isAttrs(attrsOrChild)) {\n for (const [k, v] of Object.entries(attrsOrChild)) {\n el.setAttribute(k, String(v));\n }\n }\n else if (attrsOrChild != null) {\n // Now TypeScript knows it's ChildLike, not Attrs\n children.unshift(attrsOrChild);\n }\n processChildren(el, children);\n return el;\n };\n }\n});\nfunction processChildren(el, children) {\n for (const child of children.flat()) {\n if (child == null || child === false)\n continue;\n if (typeof child === \"function\") {\n mountReactiveFunction(el, child);\n continue;\n }\n if (isState(child)) {\n mountReactiveState(el, child);\n continue;\n }\n if (child instanceof Node) {\n el.appendChild(child);\n continue;\n }\n el.appendChild(document.createTextNode(String(child)));\n }\n}\nfunction mountReactiveFunction(parent, fn) {\n const marker = document.createTextNode(\"\");\n parent.appendChild(marker);\n let mounted = [];\n const cleanup = () => {\n for (const n of mounted) {\n if (n.parentNode === parent)\n parent.removeChild(n);\n }\n mounted = [];\n };\n derive(() => {\n cleanup();\n const value = fn();\n const values = Array.isArray(value) ? value.flat() : [value];\n for (const v of values) {\n if (v == null || v === false)\n continue;\n if (typeof v === \"function\") {\n mountReactiveFunction(parent, v);\n continue;\n }\n if (isState(v)) {\n const node = document.createTextNode(String(v.val));\n parent.insertBefore(node, marker);\n v.subs.add(() => {\n const next = String(v.val);\n if (node.data !== next)\n node.data = next;\n });\n mounted.push(node);\n continue;\n }\n if (v instanceof Node) {\n parent.insertBefore(v, marker);\n mounted.push(v);\n continue;\n }\n const text = document.createTextNode(String(v));\n parent.insertBefore(text, marker);\n mounted.push(text);\n }\n });\n}\nfunction mountReactiveState(parent, st) {\n const node = document.createTextNode(String(st.val));\n parent.appendChild(node);\n st.subs.add(() => {\n const next = String(st.val);\n if (node.data !== next)\n node.data = next;\n });\n}\n","export function router(routes) {\n const patterns = [];\n let wildcard = null;\n for (const path of Object.keys(routes)) {\n const handler = routes[path];\n if (!handler)\n continue;\n if (path === \"*\") {\n wildcard = handler;\n continue;\n }\n const keys = [];\n const pattern = path.replace(/:[^/]+/g, (m) => {\n keys.push(m.slice(1));\n return \"([^/]+)\";\n });\n patterns.push({\n regex: new RegExp(`^${pattern}$`),\n keys,\n handler\n });\n }\n let currentEl = null;\n let currentPath = \"\";\n function parseQuery(search) {\n const params = {};\n if (!search)\n return params;\n for (const [k, v] of new URLSearchParams(search))\n params[k] = v;\n return params;\n }\n function matchRoute(pathname) {\n for (const { regex, keys, handler } of patterns) {\n const match = pathname.match(regex);\n if (!match)\n continue;\n const params = {};\n keys.forEach((key, i) => {\n params[key] = decodeURIComponent(match[i + 1]);\n });\n Object.assign(params, parseQuery(location.search));\n return handler(params);\n }\n if (wildcard)\n return wildcard({});\n throw new Error(`No route matches \"${pathname}\"`);\n }\n function render() {\n const newFullPath = location.pathname + location.search;\n if (newFullPath === currentPath)\n return;\n currentPath = newFullPath;\n const next = matchRoute(location.pathname);\n if (currentEl && currentEl.parentNode) {\n document.body.removeChild(currentEl);\n }\n document.body.appendChild(next);\n currentEl = next;\n }\n window.addEventListener(\"popstate\", render);\n render();\n return {\n render,\n push(path) {\n history.pushState(null, \"\", path);\n render();\n },\n replace(path) {\n history.replaceState(null, \"\", path);\n render();\n },\n back: () => history.back()\n };\n}\n","export function add(component) {\n if (typeof component === \"function\") {\n const el = component();\n if (!(el instanceof HTMLElement)) {\n throw new Error(\"Component function must return an HTMLElement\");\n }\n document.body.appendChild(el);\n return;\n }\n if (\"render\" in component && typeof component.render === \"function\") {\n component.render();\n return;\n }\n throw new Error(\"Invalid component passed to add()\");\n}\n","const PRECEDENCE_LAYERS = 3;\n/* -------------------------------------------------------------------------- */\n/* Stylesheet management (one <style> per layer) */\n/* -------------------------------------------------------------------------- */\nconst styleElements = Array(PRECEDENCE_LAYERS).fill(null);\nconst styleSheets = Array(PRECEDENCE_LAYERS).fill(null);\nfunction ensureStyleSheet(layer) {\n if (!styleSheets[layer]) {\n const el = document.createElement(\"style\");\n el.id = `styles-layer-${layer}`;\n document.head.appendChild(el);\n styleElements[layer] = el;\n styleSheets[layer] = el.sheet;\n }\n return styleSheets[layer];\n}\n/* -------------------------------------------------------------------------- */\n/* Utilities */\n/* -------------------------------------------------------------------------- */\nconst camelToKebabCache = new Map();\nfunction camelToKebab(str) {\n const cached = camelToKebabCache.get(str);\n if (cached)\n return cached;\n const res = str.replace(/[A-Z]/g, m => \"-\" + m.toLowerCase());\n camelToKebabCache.set(str, res);\n return res;\n}\nfunction resolveValue(v) {\n return typeof v === \"function\" ? v() : v;\n}\nfunction hashString(str) {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n return (hash >>> 0).toString(36);\n}\n/* -------------------------------------------------------------------------- */\n/* Atomic rule generation */\n/* -------------------------------------------------------------------------- */\nconst atomicCache = new Map();\nfunction makeClassName(signature, layer) {\n return `f${hashString(`${layer}|${signature}`)}`;\n}\nfunction prefixSelector(selector, className) {\n // handles: \"&\", \"&:hover\", \"&:hover,&:active\"\n return selector\n .split(\",\")\n .map(part => part.trim().replace(/&/g, `.${className}`))\n .join(\",\");\n}\nfunction getAtomicClasses(selector, decl) {\n const signature = `${selector}|${decl}`;\n const cached = atomicCache.get(signature);\n if (cached)\n return cached;\n const classes = [];\n for (let layer = 0; layer < PRECEDENCE_LAYERS; layer++) {\n const className = makeClassName(signature, layer);\n classes.push(className);\n const rule = selector === \"&\"\n ? `.${className}{${decl}}`\n : `${prefixSelector(selector, className)}{${decl}}`;\n const sheet = ensureStyleSheet(layer);\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n atomicCache.set(signature, classes);\n return classes;\n}\nfunction buildAtomicEntries(rule) {\n const entries = [];\n for (const key in rule) {\n const val = rule[key];\n if (val == null)\n continue;\n // Pseudo selectors\n if (key.startsWith(\":\") && typeof val === \"object\") {\n for (const prop in val) {\n const v = val[prop];\n if (v == null || typeof v === \"object\")\n continue;\n const decl = `${camelToKebab(prop)}:${resolveValue(v)}`;\n const classes = getAtomicClasses(`&${key}`, decl);\n entries.push({ classes });\n }\n continue;\n }\n // @media, @supports\n if (key.startsWith(\"@\") && typeof val === \"object\") {\n // handled elsewhere (reset styles), skip for atomic\n continue;\n }\n // Normal CSS property\n if (typeof val !== \"object\") {\n const decl = `${camelToKebab(key)}:${resolveValue(val)}`;\n const classes = getAtomicClasses(\"&\", decl);\n entries.push({ classes });\n }\n }\n return entries;\n}\n/* -------------------------------------------------------------------------- */\n/* makeStyles */\n/* -------------------------------------------------------------------------- */\nexport function makeStyles(styles, layer = 0) {\n return () => {\n const result = {};\n for (const slot in styles) {\n const rule = (styles[slot] ?? {});\n const entries = buildAtomicEntries(rule);\n const classes = entries\n .map(e => e.classes[layer])\n .join(\" \");\n result[slot] = classes;\n }\n return result;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* makeResetStyles */\n/* -------------------------------------------------------------------------- */\nconst resetCache = new Map();\nfunction stringifyRule(selector, styles) {\n const rules = [];\n const decls = [];\n for (const key in styles) {\n const val = styles[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n rules.push(...stringifyRule(`${selector}${key}`, val));\n continue;\n }\n if (typeof val !== \"object\") {\n decls.push(`${camelToKebab(key)}:${resolveValue(val)}`);\n }\n }\n if (decls.length) {\n rules.unshift(`${selector}{${decls.join(\";\")}}`);\n }\n return rules;\n}\nexport function makeResetStyles(styles) {\n const signature = JSON.stringify(styles);\n return () => {\n const cached = resetCache.get(signature);\n if (cached)\n return cached;\n const className = `r${hashString(signature)}`;\n const selector = `.${className}`;\n const rules = stringifyRule(selector, styles);\n const sheet = ensureStyleSheet(0);\n for (const rule of rules) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n resetCache.set(signature, className);\n return className;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* mergeClasses (NO precedence logic here) */\n/* -------------------------------------------------------------------------- */\nexport function mergeClasses(...inputs) {\n const seen = new Set();\n const result = [];\n for (const input of inputs) {\n if (typeof input !== \"string\")\n continue;\n const parts = input.trim().split(/\\s+/);\n for (const cls of parts) {\n if (!seen.has(cls)) {\n seen.add(cls);\n result.push(cls);\n }\n }\n }\n return result.join(\" \");\n}\n"],"names":["isState"],"mappings":"AAAY,MAAC,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE;AAC9B,SAASA,SAAO,CAAC,CAAC,EAAE;AAC3B,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AACpE,CAAC;AACD,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,SAAS,KAAK,CAAC,EAAE,EAAE;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACnC,QAAQ,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnC,KAAK;AACL,CAAC;AACD,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,IAAI,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI;AAChC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AACM,SAAS,KAAK,CAAC,CAAC,EAAE;AACzB,IAAI,MAAM,EAAE,GAAG;AACf,QAAQ,CAAC,KAAK,GAAG,IAAI;AACrB,QAAQ,IAAI,EAAE,IAAI,GAAG,EAAE;AACvB,QAAQ,IAAI,GAAG,GAAG;AAClB,YAAY,KAAK,CAAC,EAAE,CAAC,CAAC;AACtB,YAAY,OAAO,CAAC,CAAC;AACrB,SAAS;AACT,QAAQ,IAAI,GAAG,CAAC,EAAE,EAAE;AACpB,YAAY,IAAI,EAAE,KAAK,CAAC;AACxB,gBAAgB,OAAO;AACvB,YAAY,CAAC,GAAG,EAAE,CAAC;AACnB,YAAY,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,gBAAgB,EAAE,EAAE,CAAC;AACrB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACM,SAAS,MAAM,CAAC,EAAE,EAAE;AAC3B,IAAI,MAAM,MAAM,IAAI,MAAM;AAC1B,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC;AACxB,QAAQ,aAAa,GAAG,MAAM,CAAC;AAC/B,QAAQ,IAAI;AACZ,YAAY,EAAE,EAAE,CAAC;AACjB,SAAS;AACT,gBAAgB;AAChB,YAAY,aAAa,GAAG,IAAI,CAAC;AACjC,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,OAAO,MAAM,CAAC;AAClB;;AChDA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnE,CAAC;AACD;AACA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,IAAI,QAAQ,CAAC;AACb,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B,QAAQ,EAAE,CAAC,YAAY,IAAI,CAAC;AAC5B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnB,QAAQ,OAAO,CAAC,KAAK,UAAU;AAC/B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC3B,CAAC;AACW,MAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;AAClC,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE;AAChB,QAAQ,OAAO,CAAC,YAAY,EAAE,GAAG,QAAQ,KAAK;AAC9C,YAAY,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACnD;AACA,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;AACvC,gBAAgB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnE,oBAAoB,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,iBAAiB;AACjB,aAAa;AACb,iBAAiB,IAAI,YAAY,IAAI,IAAI,EAAE;AAC3C;AACA,gBAAgB,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC/C,aAAa;AACb,YAAY,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC1C,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS,CAAC;AACV,KAAK;AACL,CAAC,EAAE;AACH,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE;AACvC,IAAI,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;AACzC,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK;AAC5C,YAAY,SAAS;AACrB,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACzC,YAAY,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7C,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAY,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1C,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE;AACnC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClC,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL,CAAC;AACD,SAAS,qBAAqB,CAAC,MAAM,EAAE,EAAE,EAAE;AAC3C,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,OAAO,GAAG,MAAM;AAC1B,QAAQ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AACjC,YAAY,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM;AACvC,gBAAgB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE,CAAC;AACrB,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,MAAM;AACjB,QAAQ,OAAO,EAAE,CAAC;AAClB,QAAQ,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AAC3B,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACrE,QAAQ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;AAChC,YAAY,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK;AACxC,gBAAgB,SAAS;AACzB,YAAY,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;AACzC,gBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjD,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AAC5B,gBAAgB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,gBAAgB,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AACjC,oBAAoB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,oBAAoB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;AAC1C,wBAAwB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzC,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,IAAI,EAAE;AACnC,gBAAgB,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/C,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,YAAY,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE;AACxC,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AACtB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;AAC9B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7B,KAAK,CAAC,CAAC;AACP;;ACvGO,SAAS,MAAM,CAAC,MAAM,EAAE;AAC/B,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;AACxB,IAAI,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC5C,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,SAAS;AACrB,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE;AAC1B,YAAY,QAAQ,GAAG,OAAO,CAAC;AAC/B,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,EAAE,CAAC;AACxB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;AACvD,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,YAAY,OAAO,SAAS,CAAC;AAC7B,SAAS,CAAC,CAAC;AACX,QAAQ,QAAQ,CAAC,IAAI,CAAC;AACtB,YAAY,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAY,IAAI;AAChB,YAAY,OAAO;AACnB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC;AACzB,IAAI,SAAS,UAAU,CAAC,MAAM,EAAE;AAChC,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY,OAAO,MAAM,CAAC;AAC1B,QAAQ,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC;AACxD,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,SAAS,UAAU,CAAC,QAAQ,EAAE;AAClC,QAAQ,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE;AACzD,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,YAAY,IAAI,CAAC,KAAK;AACtB,gBAAgB,SAAS;AACzB,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,IAAI,QAAQ;AACpB,YAAY,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,SAAS,MAAM,GAAG;AACtB,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAChE,QAAQ,IAAI,WAAW,KAAK,WAAW;AACvC,YAAY,OAAO;AACnB,QAAQ,WAAW,GAAG,WAAW,CAAC;AAClC,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAQ,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE;AAC/C,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACjD,SAAS;AACT,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxC,QAAQ,SAAS,GAAG,IAAI,CAAC;AACzB,KAAK;AACL,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChD,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9C,YAAY,MAAM,EAAE,CAAC;AACrB,SAAS;AACT,QAAQ,OAAO,CAAC,IAAI,EAAE;AACtB,YAAY,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACjD,YAAY,MAAM,EAAE,CAAC;AACrB,SAAS;AACT,QAAQ,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE;AAClC,KAAK,CAAC;AACN;;AC1EO,SAAS,GAAG,CAAC,SAAS,EAAE;AAC/B,IAAI,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACzC,QAAQ,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;AAC/B,QAAQ,IAAI,EAAE,EAAE,YAAY,WAAW,CAAC,EAAE;AAC1C,YAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACtC,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE;AACzE,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;AAC3B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACzD;;ACdA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B;AACA;AACA;AACA,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC7B,QAAQ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACnD,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACxC,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACtC,QAAQ,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAClC,QAAQ,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AACD;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,IAAI,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,IAAI,MAAM;AACd,QAAQ,OAAO,MAAM,CAAC;AACtB,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,IAAI,OAAO,OAAO,CAAC,KAAK,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AACD;AACA;AACA;AACA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAC9B,SAAS,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE;AACzC,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AACD,SAAS,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE;AAC7C;AACA,IAAI,OAAO,QAAQ;AACnB,SAAS,KAAK,CAAC,GAAG,CAAC;AACnB,SAAS,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAChE,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC1C,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9C,IAAI,IAAI,MAAM;AACd,QAAQ,OAAO,MAAM,CAAC;AACtB,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,EAAE;AAC5D,QAAQ,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1D,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,QAAQ,MAAM,IAAI,GAAG,QAAQ,KAAK,GAAG;AACrC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtC,cAAc,CAAC,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACxC,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,GAAG,IAAI,IAAI;AACvB,YAAY,SAAS;AACrB;AACA,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC5D,YAAY,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AACpC,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,gBAAgB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;AACtD,oBAAoB,SAAS;AAC7B,gBAAgB,MAAM,IAAI,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,gBAAgB,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,gBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1C,aAAa;AACb,YAAY,SAAS;AACrB,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC5D;AACA,YAAY,SAAS;AACrB,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACrC,YAAY,MAAM,IAAI,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,YAAY,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxD,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACtC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACO,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE;AAC9C,IAAI,OAAO,MAAM;AACjB,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;AAC1B,QAAQ,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACnC,YAAY,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,YAAY,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACrD,YAAY,MAAM,OAAO,GAAG,OAAO;AACnC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3C,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACnC,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN,CAAC;AACD;AACA;AACA;AACA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,SAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;AACzC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChC,QAAQ,IAAI,GAAG,IAAI,IAAI;AACvB,YAAY,SAAS;AACrB,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC5D,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACrC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,SAAS;AACT,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACM,SAAS,eAAe,CAAC,MAAM,EAAE;AACxC,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,OAAO,MAAM;AACjB,QAAQ,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjD,QAAQ,IAAI,MAAM;AAClB,YAAY,OAAO,MAAM,CAAC;AAC1B,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtD,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACzC,QAAQ,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtD,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1D,SAAS;AACT,QAAQ,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC7C,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK,CAAC;AACN,CAAC;AACD;AACA;AACA;AACO,SAAS,YAAY,CAAC,GAAG,MAAM,EAAE;AACxC,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3B,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAChC,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,SAAS;AACrB,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,QAAQ,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACjC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAChC,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,gBAAgB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -325,6 +325,7 @@ function buildAtomicEntries(rule) {
|
|
|
325
325
|
const val = rule[key];
|
|
326
326
|
if (val == null)
|
|
327
327
|
continue;
|
|
328
|
+
// Pseudo selectors
|
|
328
329
|
if (key.startsWith(":") && typeof val === "object") {
|
|
329
330
|
for (const prop in val) {
|
|
330
331
|
const v = val[prop];
|
|
@@ -336,6 +337,12 @@ function buildAtomicEntries(rule) {
|
|
|
336
337
|
}
|
|
337
338
|
continue;
|
|
338
339
|
}
|
|
340
|
+
// @media, @supports
|
|
341
|
+
if (key.startsWith("@") && typeof val === "object") {
|
|
342
|
+
// handled elsewhere (reset styles), skip for atomic
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
// Normal CSS property
|
|
339
346
|
if (typeof val !== "object") {
|
|
340
347
|
const decl = `${camelToKebab(key)}:${resolveValue(val)}`;
|
|
341
348
|
const classes = getAtomicClasses("&", decl);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/state.ts","../src/tags.ts","../src/router.ts","../src/helpers.ts","../src/styles.ts"],"sourcesContent":["export const STATE = Symbol(\"STATE\");\nexport function isState(x) {\n return typeof x === \"object\" && x !== null && x[STATE] === true;\n}\nlet currentEffect = null;\nfunction track(st) {\n if (currentEffect) {\n st.subs.add(currentEffect);\n currentEffect.deps.add(st);\n }\n}\nfunction cleanup(effect) {\n for (const st of effect.deps)\n st.subs.delete(effect);\n effect.deps.clear();\n}\nexport function state(v) {\n const st = {\n [STATE]: true,\n subs: new Set(),\n get val() {\n track(st);\n return v;\n },\n set val(nv) {\n if (nv === v)\n return;\n v = nv;\n for (const fn of Array.from(st.subs)) {\n fn();\n }\n }\n };\n return st;\n}\nexport function derive(fn) {\n const effect = (() => {\n cleanup(effect);\n currentEffect = effect;\n try {\n fn();\n }\n finally {\n currentEffect = null;\n }\n });\n effect.deps = new Set();\n effect();\n return effect;\n}\n","import { derive } from \"./state\";\nfunction isState(x) {\n return x && typeof x === \"object\" && \"subs\" in x && \"val\" in x;\n}\n// --- Attribute detection (fix for TypeScript narrowing) ---\nfunction isAttrs(x) {\n return (x &&\n typeof x === \"object\" &&\n !(x instanceof Node) &&\n !isState(x) &&\n typeof x !== \"function\" &&\n !Array.isArray(x));\n}\nexport const tags = new Proxy({}, {\n get(_, tag) {\n return (attrsOrChild, ...children) => {\n const el = document.createElement(tag);\n // Handle attributes safely\n if (isAttrs(attrsOrChild)) {\n for (const [k, v] of Object.entries(attrsOrChild)) {\n el.setAttribute(k, String(v));\n }\n }\n else if (attrsOrChild != null) {\n // Now TypeScript knows it's ChildLike, not Attrs\n children.unshift(attrsOrChild);\n }\n processChildren(el, children);\n return el;\n };\n }\n});\nfunction processChildren(el, children) {\n for (const child of children.flat()) {\n if (child == null || child === false)\n continue;\n if (typeof child === \"function\") {\n mountReactiveFunction(el, child);\n continue;\n }\n if (isState(child)) {\n mountReactiveState(el, child);\n continue;\n }\n if (child instanceof Node) {\n el.appendChild(child);\n continue;\n }\n el.appendChild(document.createTextNode(String(child)));\n }\n}\nfunction mountReactiveFunction(parent, fn) {\n const marker = document.createTextNode(\"\");\n parent.appendChild(marker);\n let mounted = [];\n const cleanup = () => {\n for (const n of mounted) {\n if (n.parentNode === parent)\n parent.removeChild(n);\n }\n mounted = [];\n };\n derive(() => {\n cleanup();\n const value = fn();\n const values = Array.isArray(value) ? value.flat() : [value];\n for (const v of values) {\n if (v == null || v === false)\n continue;\n if (typeof v === \"function\") {\n mountReactiveFunction(parent, v);\n continue;\n }\n if (isState(v)) {\n const node = document.createTextNode(String(v.val));\n parent.insertBefore(node, marker);\n v.subs.add(() => {\n const next = String(v.val);\n if (node.data !== next)\n node.data = next;\n });\n mounted.push(node);\n continue;\n }\n if (v instanceof Node) {\n parent.insertBefore(v, marker);\n mounted.push(v);\n continue;\n }\n const text = document.createTextNode(String(v));\n parent.insertBefore(text, marker);\n mounted.push(text);\n }\n });\n}\nfunction mountReactiveState(parent, st) {\n const node = document.createTextNode(String(st.val));\n parent.appendChild(node);\n st.subs.add(() => {\n const next = String(st.val);\n if (node.data !== next)\n node.data = next;\n });\n}\n","export function router(routes) {\n const patterns = [];\n let wildcard = null;\n for (const path of Object.keys(routes)) {\n const handler = routes[path];\n if (!handler)\n continue;\n if (path === \"*\") {\n wildcard = handler;\n continue;\n }\n const keys = [];\n const pattern = path.replace(/:[^/]+/g, (m) => {\n keys.push(m.slice(1));\n return \"([^/]+)\";\n });\n patterns.push({\n regex: new RegExp(`^${pattern}$`),\n keys,\n handler\n });\n }\n let currentEl = null;\n let currentPath = \"\";\n function parseQuery(search) {\n const params = {};\n if (!search)\n return params;\n for (const [k, v] of new URLSearchParams(search))\n params[k] = v;\n return params;\n }\n function matchRoute(pathname) {\n for (const { regex, keys, handler } of patterns) {\n const match = pathname.match(regex);\n if (!match)\n continue;\n const params = {};\n keys.forEach((key, i) => {\n params[key] = decodeURIComponent(match[i + 1]);\n });\n Object.assign(params, parseQuery(location.search));\n return handler(params);\n }\n if (wildcard)\n return wildcard({});\n throw new Error(`No route matches \"${pathname}\"`);\n }\n function render() {\n const newFullPath = location.pathname + location.search;\n if (newFullPath === currentPath)\n return;\n currentPath = newFullPath;\n const next = matchRoute(location.pathname);\n if (currentEl && currentEl.parentNode) {\n document.body.removeChild(currentEl);\n }\n document.body.appendChild(next);\n currentEl = next;\n }\n window.addEventListener(\"popstate\", render);\n render();\n return {\n render,\n push(path) {\n history.pushState(null, \"\", path);\n render();\n },\n replace(path) {\n history.replaceState(null, \"\", path);\n render();\n },\n back: () => history.back()\n };\n}\n","export function add(component) {\n if (typeof component === \"function\") {\n const el = component();\n if (!(el instanceof HTMLElement)) {\n throw new Error(\"Component function must return an HTMLElement\");\n }\n document.body.appendChild(el);\n return;\n }\n if (\"render\" in component && typeof component.render === \"function\") {\n component.render();\n return;\n }\n throw new Error(\"Invalid component passed to add()\");\n}\n","const PRECEDENCE_LAYERS = 3;\n/* -------------------------------------------------------------------------- */\n/* Stylesheet management (one <style> per layer) */\n/* -------------------------------------------------------------------------- */\nconst styleElements = Array(PRECEDENCE_LAYERS).fill(null);\nconst styleSheets = Array(PRECEDENCE_LAYERS).fill(null);\nfunction ensureStyleSheet(layer) {\n if (!styleSheets[layer]) {\n const el = document.createElement(\"style\");\n el.id = `styles-layer-${layer}`;\n document.head.appendChild(el);\n styleElements[layer] = el;\n styleSheets[layer] = el.sheet;\n }\n return styleSheets[layer];\n}\n/* -------------------------------------------------------------------------- */\n/* Utilities */\n/* -------------------------------------------------------------------------- */\nconst camelToKebabCache = new Map();\nfunction camelToKebab(str) {\n const cached = camelToKebabCache.get(str);\n if (cached)\n return cached;\n const res = str.replace(/[A-Z]/g, m => \"-\" + m.toLowerCase());\n camelToKebabCache.set(str, res);\n return res;\n}\nfunction resolveValue(v) {\n return typeof v === \"function\" ? v() : v;\n}\nfunction hashString(str) {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n return (hash >>> 0).toString(36);\n}\n/* -------------------------------------------------------------------------- */\n/* Atomic rule generation */\n/* -------------------------------------------------------------------------- */\nconst atomicCache = new Map();\nfunction makeClassName(signature, layer) {\n return `f${hashString(`${layer}|${signature}`)}`;\n}\nfunction prefixSelector(selector, className) {\n // handles: \"&\", \"&:hover\", \"&:hover,&:active\"\n return selector\n .split(\",\")\n .map(part => part.trim().replace(/&/g, `.${className}`))\n .join(\",\");\n}\nfunction getAtomicClasses(selector, decl) {\n const signature = `${selector}|${decl}`;\n const cached = atomicCache.get(signature);\n if (cached)\n return cached;\n const classes = [];\n for (let layer = 0; layer < PRECEDENCE_LAYERS; layer++) {\n const className = makeClassName(signature, layer);\n classes.push(className);\n const rule = selector === \"&\"\n ? `.${className}{${decl}}`\n : `${prefixSelector(selector, className)}{${decl}}`;\n const sheet = ensureStyleSheet(layer);\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n atomicCache.set(signature, classes);\n return classes;\n}\nfunction buildAtomicEntries(rule) {\n const entries = [];\n for (const key in rule) {\n const val = rule[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n for (const prop in val) {\n const v = val[prop];\n if (v == null || typeof v === \"object\")\n continue;\n const decl = `${camelToKebab(prop)}:${resolveValue(v)}`;\n const classes = getAtomicClasses(`&${key}`, decl);\n entries.push({ classes });\n }\n continue;\n }\n if (typeof val !== \"object\") {\n const decl = `${camelToKebab(key)}:${resolveValue(val)}`;\n const classes = getAtomicClasses(\"&\", decl);\n entries.push({ classes });\n }\n }\n return entries;\n}\n/* -------------------------------------------------------------------------- */\n/* makeStyles */\n/* -------------------------------------------------------------------------- */\nexport function makeStyles(styles, layer = 0) {\n return () => {\n const result = {};\n for (const slot in styles) {\n const rule = (styles[slot] ?? {});\n const entries = buildAtomicEntries(rule);\n const classes = entries\n .map(e => e.classes[layer])\n .join(\" \");\n result[slot] = classes;\n }\n return result;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* makeResetStyles */\n/* -------------------------------------------------------------------------- */\nconst resetCache = new Map();\nfunction stringifyRule(selector, styles) {\n const rules = [];\n const decls = [];\n for (const key in styles) {\n const val = styles[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n rules.push(...stringifyRule(`${selector}${key}`, val));\n continue;\n }\n if (typeof val !== \"object\") {\n decls.push(`${camelToKebab(key)}:${resolveValue(val)}`);\n }\n }\n if (decls.length) {\n rules.unshift(`${selector}{${decls.join(\";\")}}`);\n }\n return rules;\n}\nexport function makeResetStyles(styles) {\n const signature = JSON.stringify(styles);\n return () => {\n const cached = resetCache.get(signature);\n if (cached)\n return cached;\n const className = `r${hashString(signature)}`;\n const selector = `.${className}`;\n const rules = stringifyRule(selector, styles);\n const sheet = ensureStyleSheet(0);\n for (const rule of rules) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n resetCache.set(signature, className);\n return className;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* mergeClasses (NO precedence logic here) */\n/* -------------------------------------------------------------------------- */\nexport function mergeClasses(...inputs) {\n const seen = new Set();\n const result = [];\n for (const input of inputs) {\n if (typeof input !== \"string\")\n continue;\n const parts = input.trim().split(/\\s+/);\n for (const cls of parts) {\n if (!seen.has(cls)) {\n seen.add(cls);\n result.push(cls);\n }\n }\n }\n return result.join(\" \");\n}\n"],"names":["isState"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/state.ts","../src/tags.ts","../src/router.ts","../src/helpers.ts","../src/styles.ts"],"sourcesContent":["export const STATE = Symbol(\"STATE\");\nexport function isState(x) {\n return typeof x === \"object\" && x !== null && x[STATE] === true;\n}\nlet currentEffect = null;\nfunction track(st) {\n if (currentEffect) {\n st.subs.add(currentEffect);\n currentEffect.deps.add(st);\n }\n}\nfunction cleanup(effect) {\n for (const st of effect.deps)\n st.subs.delete(effect);\n effect.deps.clear();\n}\nexport function state(v) {\n const st = {\n [STATE]: true,\n subs: new Set(),\n get val() {\n track(st);\n return v;\n },\n set val(nv) {\n if (nv === v)\n return;\n v = nv;\n for (const fn of Array.from(st.subs)) {\n fn();\n }\n }\n };\n return st;\n}\nexport function derive(fn) {\n const effect = (() => {\n cleanup(effect);\n currentEffect = effect;\n try {\n fn();\n }\n finally {\n currentEffect = null;\n }\n });\n effect.deps = new Set();\n effect();\n return effect;\n}\n","import { derive } from \"./state\";\nfunction isState(x) {\n return x && typeof x === \"object\" && \"subs\" in x && \"val\" in x;\n}\n// --- Attribute detection (fix for TypeScript narrowing) ---\nfunction isAttrs(x) {\n return (x &&\n typeof x === \"object\" &&\n !(x instanceof Node) &&\n !isState(x) &&\n typeof x !== \"function\" &&\n !Array.isArray(x));\n}\nexport const tags = new Proxy({}, {\n get(_, tag) {\n return (attrsOrChild, ...children) => {\n const el = document.createElement(tag);\n // Handle attributes safely\n if (isAttrs(attrsOrChild)) {\n for (const [k, v] of Object.entries(attrsOrChild)) {\n el.setAttribute(k, String(v));\n }\n }\n else if (attrsOrChild != null) {\n // Now TypeScript knows it's ChildLike, not Attrs\n children.unshift(attrsOrChild);\n }\n processChildren(el, children);\n return el;\n };\n }\n});\nfunction processChildren(el, children) {\n for (const child of children.flat()) {\n if (child == null || child === false)\n continue;\n if (typeof child === \"function\") {\n mountReactiveFunction(el, child);\n continue;\n }\n if (isState(child)) {\n mountReactiveState(el, child);\n continue;\n }\n if (child instanceof Node) {\n el.appendChild(child);\n continue;\n }\n el.appendChild(document.createTextNode(String(child)));\n }\n}\nfunction mountReactiveFunction(parent, fn) {\n const marker = document.createTextNode(\"\");\n parent.appendChild(marker);\n let mounted = [];\n const cleanup = () => {\n for (const n of mounted) {\n if (n.parentNode === parent)\n parent.removeChild(n);\n }\n mounted = [];\n };\n derive(() => {\n cleanup();\n const value = fn();\n const values = Array.isArray(value) ? value.flat() : [value];\n for (const v of values) {\n if (v == null || v === false)\n continue;\n if (typeof v === \"function\") {\n mountReactiveFunction(parent, v);\n continue;\n }\n if (isState(v)) {\n const node = document.createTextNode(String(v.val));\n parent.insertBefore(node, marker);\n v.subs.add(() => {\n const next = String(v.val);\n if (node.data !== next)\n node.data = next;\n });\n mounted.push(node);\n continue;\n }\n if (v instanceof Node) {\n parent.insertBefore(v, marker);\n mounted.push(v);\n continue;\n }\n const text = document.createTextNode(String(v));\n parent.insertBefore(text, marker);\n mounted.push(text);\n }\n });\n}\nfunction mountReactiveState(parent, st) {\n const node = document.createTextNode(String(st.val));\n parent.appendChild(node);\n st.subs.add(() => {\n const next = String(st.val);\n if (node.data !== next)\n node.data = next;\n });\n}\n","export function router(routes) {\n const patterns = [];\n let wildcard = null;\n for (const path of Object.keys(routes)) {\n const handler = routes[path];\n if (!handler)\n continue;\n if (path === \"*\") {\n wildcard = handler;\n continue;\n }\n const keys = [];\n const pattern = path.replace(/:[^/]+/g, (m) => {\n keys.push(m.slice(1));\n return \"([^/]+)\";\n });\n patterns.push({\n regex: new RegExp(`^${pattern}$`),\n keys,\n handler\n });\n }\n let currentEl = null;\n let currentPath = \"\";\n function parseQuery(search) {\n const params = {};\n if (!search)\n return params;\n for (const [k, v] of new URLSearchParams(search))\n params[k] = v;\n return params;\n }\n function matchRoute(pathname) {\n for (const { regex, keys, handler } of patterns) {\n const match = pathname.match(regex);\n if (!match)\n continue;\n const params = {};\n keys.forEach((key, i) => {\n params[key] = decodeURIComponent(match[i + 1]);\n });\n Object.assign(params, parseQuery(location.search));\n return handler(params);\n }\n if (wildcard)\n return wildcard({});\n throw new Error(`No route matches \"${pathname}\"`);\n }\n function render() {\n const newFullPath = location.pathname + location.search;\n if (newFullPath === currentPath)\n return;\n currentPath = newFullPath;\n const next = matchRoute(location.pathname);\n if (currentEl && currentEl.parentNode) {\n document.body.removeChild(currentEl);\n }\n document.body.appendChild(next);\n currentEl = next;\n }\n window.addEventListener(\"popstate\", render);\n render();\n return {\n render,\n push(path) {\n history.pushState(null, \"\", path);\n render();\n },\n replace(path) {\n history.replaceState(null, \"\", path);\n render();\n },\n back: () => history.back()\n };\n}\n","export function add(component) {\n if (typeof component === \"function\") {\n const el = component();\n if (!(el instanceof HTMLElement)) {\n throw new Error(\"Component function must return an HTMLElement\");\n }\n document.body.appendChild(el);\n return;\n }\n if (\"render\" in component && typeof component.render === \"function\") {\n component.render();\n return;\n }\n throw new Error(\"Invalid component passed to add()\");\n}\n","const PRECEDENCE_LAYERS = 3;\n/* -------------------------------------------------------------------------- */\n/* Stylesheet management (one <style> per layer) */\n/* -------------------------------------------------------------------------- */\nconst styleElements = Array(PRECEDENCE_LAYERS).fill(null);\nconst styleSheets = Array(PRECEDENCE_LAYERS).fill(null);\nfunction ensureStyleSheet(layer) {\n if (!styleSheets[layer]) {\n const el = document.createElement(\"style\");\n el.id = `styles-layer-${layer}`;\n document.head.appendChild(el);\n styleElements[layer] = el;\n styleSheets[layer] = el.sheet;\n }\n return styleSheets[layer];\n}\n/* -------------------------------------------------------------------------- */\n/* Utilities */\n/* -------------------------------------------------------------------------- */\nconst camelToKebabCache = new Map();\nfunction camelToKebab(str) {\n const cached = camelToKebabCache.get(str);\n if (cached)\n return cached;\n const res = str.replace(/[A-Z]/g, m => \"-\" + m.toLowerCase());\n camelToKebabCache.set(str, res);\n return res;\n}\nfunction resolveValue(v) {\n return typeof v === \"function\" ? v() : v;\n}\nfunction hashString(str) {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n return (hash >>> 0).toString(36);\n}\n/* -------------------------------------------------------------------------- */\n/* Atomic rule generation */\n/* -------------------------------------------------------------------------- */\nconst atomicCache = new Map();\nfunction makeClassName(signature, layer) {\n return `f${hashString(`${layer}|${signature}`)}`;\n}\nfunction prefixSelector(selector, className) {\n // handles: \"&\", \"&:hover\", \"&:hover,&:active\"\n return selector\n .split(\",\")\n .map(part => part.trim().replace(/&/g, `.${className}`))\n .join(\",\");\n}\nfunction getAtomicClasses(selector, decl) {\n const signature = `${selector}|${decl}`;\n const cached = atomicCache.get(signature);\n if (cached)\n return cached;\n const classes = [];\n for (let layer = 0; layer < PRECEDENCE_LAYERS; layer++) {\n const className = makeClassName(signature, layer);\n classes.push(className);\n const rule = selector === \"&\"\n ? `.${className}{${decl}}`\n : `${prefixSelector(selector, className)}{${decl}}`;\n const sheet = ensureStyleSheet(layer);\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n atomicCache.set(signature, classes);\n return classes;\n}\nfunction buildAtomicEntries(rule) {\n const entries = [];\n for (const key in rule) {\n const val = rule[key];\n if (val == null)\n continue;\n // Pseudo selectors\n if (key.startsWith(\":\") && typeof val === \"object\") {\n for (const prop in val) {\n const v = val[prop];\n if (v == null || typeof v === \"object\")\n continue;\n const decl = `${camelToKebab(prop)}:${resolveValue(v)}`;\n const classes = getAtomicClasses(`&${key}`, decl);\n entries.push({ classes });\n }\n continue;\n }\n // @media, @supports\n if (key.startsWith(\"@\") && typeof val === \"object\") {\n // handled elsewhere (reset styles), skip for atomic\n continue;\n }\n // Normal CSS property\n if (typeof val !== \"object\") {\n const decl = `${camelToKebab(key)}:${resolveValue(val)}`;\n const classes = getAtomicClasses(\"&\", decl);\n entries.push({ classes });\n }\n }\n return entries;\n}\n/* -------------------------------------------------------------------------- */\n/* makeStyles */\n/* -------------------------------------------------------------------------- */\nexport function makeStyles(styles, layer = 0) {\n return () => {\n const result = {};\n for (const slot in styles) {\n const rule = (styles[slot] ?? {});\n const entries = buildAtomicEntries(rule);\n const classes = entries\n .map(e => e.classes[layer])\n .join(\" \");\n result[slot] = classes;\n }\n return result;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* makeResetStyles */\n/* -------------------------------------------------------------------------- */\nconst resetCache = new Map();\nfunction stringifyRule(selector, styles) {\n const rules = [];\n const decls = [];\n for (const key in styles) {\n const val = styles[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n rules.push(...stringifyRule(`${selector}${key}`, val));\n continue;\n }\n if (typeof val !== \"object\") {\n decls.push(`${camelToKebab(key)}:${resolveValue(val)}`);\n }\n }\n if (decls.length) {\n rules.unshift(`${selector}{${decls.join(\";\")}}`);\n }\n return rules;\n}\nexport function makeResetStyles(styles) {\n const signature = JSON.stringify(styles);\n return () => {\n const cached = resetCache.get(signature);\n if (cached)\n return cached;\n const className = `r${hashString(signature)}`;\n const selector = `.${className}`;\n const rules = stringifyRule(selector, styles);\n const sheet = ensureStyleSheet(0);\n for (const rule of rules) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n resetCache.set(signature, className);\n return className;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* mergeClasses (NO precedence logic here) */\n/* -------------------------------------------------------------------------- */\nexport function mergeClasses(...inputs) {\n const seen = new Set();\n const result = [];\n for (const input of inputs) {\n if (typeof input !== \"string\")\n continue;\n const parts = input.trim().split(/\\s+/);\n for (const cls of parts) {\n if (!seen.has(cls)) {\n seen.add(cls);\n result.push(cls);\n }\n }\n }\n return result.join(\" \");\n}\n"],"names":["isState"],"mappings":"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"}
|
package/dist/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).MiniUI={})}(this,function(t){"use strict";const n=Symbol("STATE");let e=null;function o(t){const n=()=>{!function(t){for(const n of t.deps)n.subs.delete(t);t.deps.clear()}(n),e=n;try{t()}finally{e=null}};return n.deps=new Set,n(),n}function r(t){return t&&"object"==typeof t&&"subs"in t&&"val"in t}const s=new Proxy({},{get:(t,n)=>(t,...e)=>{const o=document.createElement(n);if(!(s=t)||"object"!=typeof s||s instanceof Node||r(s)||"function"==typeof s||Array.isArray(s))null!=t&&e.unshift(t);else for(const[n,e]of Object.entries(t))o.setAttribute(n,String(e));var s;return function(t,n){for(const e of n.flat())null!=e&&!1!==e&&("function"!=typeof e?r(e)?i(t,e):e instanceof Node?t.appendChild(e):t.appendChild(document.createTextNode(String(e))):c(t,e))}(o,e),o}});function c(t,n){const e=document.createTextNode("");t.appendChild(e);let s=[];o(()=>{(()=>{for(const n of s)n.parentNode===t&&t.removeChild(n);s=[]})();const o=n(),i=Array.isArray(o)?o.flat():[o];for(const n of i){if(null==n||!1===n)continue;if("function"==typeof n){c(t,n);continue}if(r(n)){const o=document.createTextNode(String(n.val));t.insertBefore(o,e),n.subs.add(()=>{const t=String(n.val);o.data!==t&&(o.data=t)}),s.push(o);continue}if(n instanceof Node){t.insertBefore(n,e),s.push(n);continue}const o=document.createTextNode(String(n));t.insertBefore(o,e),s.push(o)}})}function i(t,n){const e=document.createTextNode(String(n.val));t.appendChild(e),n.subs.add(()=>{const t=String(n.val);e.data!==t&&(e.data=t)})}const u=Array(3).fill(null),f=Array(3).fill(null);function a(t){if(!f[t]){const n=document.createElement("style");n.id=`styles-layer-${t}`,document.head.appendChild(n),u[t]=n,f[t]=n.sheet}return f[t]}const l=new Map;function d(t){const n=l.get(t);if(n)return n;const e=t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase());return l.set(t,e),e}function p(t){return"function"==typeof t?t():t}function h(t){let n=5381;for(let e=0;e<t.length;e++)n=33*n^t.charCodeAt(e);return(n>>>0).toString(36)}const y=new Map;function m(t,n){return`f${h(`${n}|${t}`)}`}function
|
|
1
|
+
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).MiniUI={})}(this,function(t){"use strict";const n=Symbol("STATE");let e=null;function o(t){const n=()=>{!function(t){for(const n of t.deps)n.subs.delete(t);t.deps.clear()}(n),e=n;try{t()}finally{e=null}};return n.deps=new Set,n(),n}function r(t){return t&&"object"==typeof t&&"subs"in t&&"val"in t}const s=new Proxy({},{get:(t,n)=>(t,...e)=>{const o=document.createElement(n);if(!(s=t)||"object"!=typeof s||s instanceof Node||r(s)||"function"==typeof s||Array.isArray(s))null!=t&&e.unshift(t);else for(const[n,e]of Object.entries(t))o.setAttribute(n,String(e));var s;return function(t,n){for(const e of n.flat())null!=e&&!1!==e&&("function"!=typeof e?r(e)?i(t,e):e instanceof Node?t.appendChild(e):t.appendChild(document.createTextNode(String(e))):c(t,e))}(o,e),o}});function c(t,n){const e=document.createTextNode("");t.appendChild(e);let s=[];o(()=>{(()=>{for(const n of s)n.parentNode===t&&t.removeChild(n);s=[]})();const o=n(),i=Array.isArray(o)?o.flat():[o];for(const n of i){if(null==n||!1===n)continue;if("function"==typeof n){c(t,n);continue}if(r(n)){const o=document.createTextNode(String(n.val));t.insertBefore(o,e),n.subs.add(()=>{const t=String(n.val);o.data!==t&&(o.data=t)}),s.push(o);continue}if(n instanceof Node){t.insertBefore(n,e),s.push(n);continue}const o=document.createTextNode(String(n));t.insertBefore(o,e),s.push(o)}})}function i(t,n){const e=document.createTextNode(String(n.val));t.appendChild(e),n.subs.add(()=>{const t=String(n.val);e.data!==t&&(e.data=t)})}const u=Array(3).fill(null),f=Array(3).fill(null);function a(t){if(!f[t]){const n=document.createElement("style");n.id=`styles-layer-${t}`,document.head.appendChild(n),u[t]=n,f[t]=n.sheet}return f[t]}const l=new Map;function d(t){const n=l.get(t);if(n)return n;const e=t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase());return l.set(t,e),e}function p(t){return"function"==typeof t?t():t}function h(t){let n=5381;for(let e=0;e<t.length;e++)n=33*n^t.charCodeAt(e);return(n>>>0).toString(36)}const y=new Map;function m(t,n){return`f${h(`${n}|${t}`)}`}function b(t,n){return t.split(",").map(t=>t.trim().replace(/&/g,`.${n}`)).join(",")}function g(t,n){const e=`${t}|${n}`,o=y.get(e);if(o)return o;const r=[];for(let o=0;o<3;o++){const s=m(e,o);r.push(s);const c="&"===t?`.${s}{${n}}`:`${b(t,s)}{${n}}`,i=a(o);i.insertRule(c,i.cssRules.length)}return y.set(e,r),r}function $(t){const n=[];for(const e in t){const o=t[e];if(null!=o)if(e.startsWith(":")&&"object"==typeof o)for(const t in o){const r=o[t];if(null==r||"object"==typeof r)continue;const s=g(`&${e}`,`${d(t)}:${p(r)}`);n.push({classes:s})}else if((!e.startsWith("@")||"object"!=typeof o)&&"object"!=typeof o){const t=g("&",`${d(e)}:${p(o)}`);n.push({classes:t})}}return n}const S=new Map;function j(t,n){const e=[],o=[];for(const r in n){const s=n[r];null!=s&&(r.startsWith(":")&&"object"==typeof s?e.push(...j(`${t}${r}`,s)):"object"!=typeof s&&o.push(`${d(r)}:${p(s)}`))}return o.length&&e.unshift(`${t}{${o.join(";")}}`),e}t.STATE=n,t.add=function(t){if("function"==typeof t){const n=t();if(!(n instanceof HTMLElement))throw new Error("Component function must return an HTMLElement");return void document.body.appendChild(n)}if(!("render"in t)||"function"!=typeof t.render)throw new Error("Invalid component passed to add()");t.render()},t.derive=o,t.isState=function(t){return"object"==typeof t&&null!==t&&!0===t[n]},t.makeResetStyles=function(t){const n=JSON.stringify(t);return()=>{const e=S.get(n);if(e)return e;const o=`r${h(n)}`,r=j(`.${o}`,t),s=a(0);for(const t of r)s.insertRule(t,s.cssRules.length);return S.set(n,o),o}},t.makeStyles=function(t,n=0){return()=>{const e={};for(const o in t){const r=$(t[o]??{}).map(t=>t.classes[n]).join(" ");e[o]=r}return e}},t.mergeClasses=function(...t){const n=new Set,e=[];for(const o of t){if("string"!=typeof o)continue;const t=o.trim().split(/\s+/);for(const o of t)n.has(o)||(n.add(o),e.push(o))}return e.join(" ")},t.router=function(t){const n=[];let e=null;for(const o of Object.keys(t)){const r=t[o];if(!r)continue;if("*"===o){e=r;continue}const s=[],c=o.replace(/:[^/]+/g,t=>(s.push(t.slice(1)),"([^/]+)"));n.push({regex:new RegExp(`^${c}$`),keys:s,handler:r})}let o=null,r="";function s(t){const n={};if(!t)return n;for(const[e,o]of new URLSearchParams(t))n[e]=o;return n}function c(){const t=location.pathname+location.search;if(t===r)return;r=t;const c=function(t){for(const{regex:e,keys:o,handler:r}of n){const n=t.match(e);if(!n)continue;const c={};return o.forEach((t,e)=>{c[t]=decodeURIComponent(n[e+1])}),Object.assign(c,s(location.search)),r(c)}if(e)return e({});throw new Error(`No route matches "${t}"`)}(location.pathname);o&&o.parentNode&&document.body.removeChild(o),document.body.appendChild(c),o=c}return window.addEventListener("popstate",c),c(),{render:c,push(t){history.pushState(null,"",t),c()},replace(t){history.replaceState(null,"",t),c()},back:()=>history.back()}},t.state=function(t){const o={[n]:!0,subs:new Set,get val(){return function(t){e&&(t.subs.add(e),e.deps.add(t))}(o),t},set val(n){if(n!==t){t=n;for(const t of Array.from(o.subs))t()}}};return o},t.tags=s,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|
package/dist/index.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.min.js","sources":["../src/state.ts","../src/tags.ts","../src/styles.ts","../src/helpers.ts","../src/router.ts"],"sourcesContent":["export const STATE = Symbol(\"STATE\");\nexport function isState(x) {\n return typeof x === \"object\" && x !== null && x[STATE] === true;\n}\nlet currentEffect = null;\nfunction track(st) {\n if (currentEffect) {\n st.subs.add(currentEffect);\n currentEffect.deps.add(st);\n }\n}\nfunction cleanup(effect) {\n for (const st of effect.deps)\n st.subs.delete(effect);\n effect.deps.clear();\n}\nexport function state(v) {\n const st = {\n [STATE]: true,\n subs: new Set(),\n get val() {\n track(st);\n return v;\n },\n set val(nv) {\n if (nv === v)\n return;\n v = nv;\n for (const fn of Array.from(st.subs)) {\n fn();\n }\n }\n };\n return st;\n}\nexport function derive(fn) {\n const effect = (() => {\n cleanup(effect);\n currentEffect = effect;\n try {\n fn();\n }\n finally {\n currentEffect = null;\n }\n });\n effect.deps = new Set();\n effect();\n return effect;\n}\n","import { derive } from \"./state\";\nfunction isState(x) {\n return x && typeof x === \"object\" && \"subs\" in x && \"val\" in x;\n}\n// --- Attribute detection (fix for TypeScript narrowing) ---\nfunction isAttrs(x) {\n return (x &&\n typeof x === \"object\" &&\n !(x instanceof Node) &&\n !isState(x) &&\n typeof x !== \"function\" &&\n !Array.isArray(x));\n}\nexport const tags = new Proxy({}, {\n get(_, tag) {\n return (attrsOrChild, ...children) => {\n const el = document.createElement(tag);\n // Handle attributes safely\n if (isAttrs(attrsOrChild)) {\n for (const [k, v] of Object.entries(attrsOrChild)) {\n el.setAttribute(k, String(v));\n }\n }\n else if (attrsOrChild != null) {\n // Now TypeScript knows it's ChildLike, not Attrs\n children.unshift(attrsOrChild);\n }\n processChildren(el, children);\n return el;\n };\n }\n});\nfunction processChildren(el, children) {\n for (const child of children.flat()) {\n if (child == null || child === false)\n continue;\n if (typeof child === \"function\") {\n mountReactiveFunction(el, child);\n continue;\n }\n if (isState(child)) {\n mountReactiveState(el, child);\n continue;\n }\n if (child instanceof Node) {\n el.appendChild(child);\n continue;\n }\n el.appendChild(document.createTextNode(String(child)));\n }\n}\nfunction mountReactiveFunction(parent, fn) {\n const marker = document.createTextNode(\"\");\n parent.appendChild(marker);\n let mounted = [];\n const cleanup = () => {\n for (const n of mounted) {\n if (n.parentNode === parent)\n parent.removeChild(n);\n }\n mounted = [];\n };\n derive(() => {\n cleanup();\n const value = fn();\n const values = Array.isArray(value) ? value.flat() : [value];\n for (const v of values) {\n if (v == null || v === false)\n continue;\n if (typeof v === \"function\") {\n mountReactiveFunction(parent, v);\n continue;\n }\n if (isState(v)) {\n const node = document.createTextNode(String(v.val));\n parent.insertBefore(node, marker);\n v.subs.add(() => {\n const next = String(v.val);\n if (node.data !== next)\n node.data = next;\n });\n mounted.push(node);\n continue;\n }\n if (v instanceof Node) {\n parent.insertBefore(v, marker);\n mounted.push(v);\n continue;\n }\n const text = document.createTextNode(String(v));\n parent.insertBefore(text, marker);\n mounted.push(text);\n }\n });\n}\nfunction mountReactiveState(parent, st) {\n const node = document.createTextNode(String(st.val));\n parent.appendChild(node);\n st.subs.add(() => {\n const next = String(st.val);\n if (node.data !== next)\n node.data = next;\n });\n}\n","const PRECEDENCE_LAYERS = 3;\n/* -------------------------------------------------------------------------- */\n/* Stylesheet management (one <style> per layer) */\n/* -------------------------------------------------------------------------- */\nconst styleElements = Array(PRECEDENCE_LAYERS).fill(null);\nconst styleSheets = Array(PRECEDENCE_LAYERS).fill(null);\nfunction ensureStyleSheet(layer) {\n if (!styleSheets[layer]) {\n const el = document.createElement(\"style\");\n el.id = `styles-layer-${layer}`;\n document.head.appendChild(el);\n styleElements[layer] = el;\n styleSheets[layer] = el.sheet;\n }\n return styleSheets[layer];\n}\n/* -------------------------------------------------------------------------- */\n/* Utilities */\n/* -------------------------------------------------------------------------- */\nconst camelToKebabCache = new Map();\nfunction camelToKebab(str) {\n const cached = camelToKebabCache.get(str);\n if (cached)\n return cached;\n const res = str.replace(/[A-Z]/g, m => \"-\" + m.toLowerCase());\n camelToKebabCache.set(str, res);\n return res;\n}\nfunction resolveValue(v) {\n return typeof v === \"function\" ? v() : v;\n}\nfunction hashString(str) {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n return (hash >>> 0).toString(36);\n}\n/* -------------------------------------------------------------------------- */\n/* Atomic rule generation */\n/* -------------------------------------------------------------------------- */\nconst atomicCache = new Map();\nfunction makeClassName(signature, layer) {\n return `f${hashString(`${layer}|${signature}`)}`;\n}\nfunction prefixSelector(selector, className) {\n // handles: \"&\", \"&:hover\", \"&:hover,&:active\"\n return selector\n .split(\",\")\n .map(part => part.trim().replace(/&/g, `.${className}`))\n .join(\",\");\n}\nfunction getAtomicClasses(selector, decl) {\n const signature = `${selector}|${decl}`;\n const cached = atomicCache.get(signature);\n if (cached)\n return cached;\n const classes = [];\n for (let layer = 0; layer < PRECEDENCE_LAYERS; layer++) {\n const className = makeClassName(signature, layer);\n classes.push(className);\n const rule = selector === \"&\"\n ? `.${className}{${decl}}`\n : `${prefixSelector(selector, className)}{${decl}}`;\n const sheet = ensureStyleSheet(layer);\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n atomicCache.set(signature, classes);\n return classes;\n}\nfunction buildAtomicEntries(rule) {\n const entries = [];\n for (const key in rule) {\n const val = rule[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n for (const prop in val) {\n const v = val[prop];\n if (v == null || typeof v === \"object\")\n continue;\n const decl = `${camelToKebab(prop)}:${resolveValue(v)}`;\n const classes = getAtomicClasses(`&${key}`, decl);\n entries.push({ classes });\n }\n continue;\n }\n if (typeof val !== \"object\") {\n const decl = `${camelToKebab(key)}:${resolveValue(val)}`;\n const classes = getAtomicClasses(\"&\", decl);\n entries.push({ classes });\n }\n }\n return entries;\n}\n/* -------------------------------------------------------------------------- */\n/* makeStyles */\n/* -------------------------------------------------------------------------- */\nexport function makeStyles(styles, layer = 0) {\n return () => {\n const result = {};\n for (const slot in styles) {\n const rule = (styles[slot] ?? {});\n const entries = buildAtomicEntries(rule);\n const classes = entries\n .map(e => e.classes[layer])\n .join(\" \");\n result[slot] = classes;\n }\n return result;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* makeResetStyles */\n/* -------------------------------------------------------------------------- */\nconst resetCache = new Map();\nfunction stringifyRule(selector, styles) {\n const rules = [];\n const decls = [];\n for (const key in styles) {\n const val = styles[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n rules.push(...stringifyRule(`${selector}${key}`, val));\n continue;\n }\n if (typeof val !== \"object\") {\n decls.push(`${camelToKebab(key)}:${resolveValue(val)}`);\n }\n }\n if (decls.length) {\n rules.unshift(`${selector}{${decls.join(\";\")}}`);\n }\n return rules;\n}\nexport function makeResetStyles(styles) {\n const signature = JSON.stringify(styles);\n return () => {\n const cached = resetCache.get(signature);\n if (cached)\n return cached;\n const className = `r${hashString(signature)}`;\n const selector = `.${className}`;\n const rules = stringifyRule(selector, styles);\n const sheet = ensureStyleSheet(0);\n for (const rule of rules) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n resetCache.set(signature, className);\n return className;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* mergeClasses (NO precedence logic here) */\n/* -------------------------------------------------------------------------- */\nexport function mergeClasses(...inputs) {\n const seen = new Set();\n const result = [];\n for (const input of inputs) {\n if (typeof input !== \"string\")\n continue;\n const parts = input.trim().split(/\\s+/);\n for (const cls of parts) {\n if (!seen.has(cls)) {\n seen.add(cls);\n result.push(cls);\n }\n }\n }\n return result.join(\" \");\n}\n","export function add(component) {\n if (typeof component === \"function\") {\n const el = component();\n if (!(el instanceof HTMLElement)) {\n throw new Error(\"Component function must return an HTMLElement\");\n }\n document.body.appendChild(el);\n return;\n }\n if (\"render\" in component && typeof component.render === \"function\") {\n component.render();\n return;\n }\n throw new Error(\"Invalid component passed to add()\");\n}\n","export function router(routes) {\n const patterns = [];\n let wildcard = null;\n for (const path of Object.keys(routes)) {\n const handler = routes[path];\n if (!handler)\n continue;\n if (path === \"*\") {\n wildcard = handler;\n continue;\n }\n const keys = [];\n const pattern = path.replace(/:[^/]+/g, (m) => {\n keys.push(m.slice(1));\n return \"([^/]+)\";\n });\n patterns.push({\n regex: new RegExp(`^${pattern}$`),\n keys,\n handler\n });\n }\n let currentEl = null;\n let currentPath = \"\";\n function parseQuery(search) {\n const params = {};\n if (!search)\n return params;\n for (const [k, v] of new URLSearchParams(search))\n params[k] = v;\n return params;\n }\n function matchRoute(pathname) {\n for (const { regex, keys, handler } of patterns) {\n const match = pathname.match(regex);\n if (!match)\n continue;\n const params = {};\n keys.forEach((key, i) => {\n params[key] = decodeURIComponent(match[i + 1]);\n });\n Object.assign(params, parseQuery(location.search));\n return handler(params);\n }\n if (wildcard)\n return wildcard({});\n throw new Error(`No route matches \"${pathname}\"`);\n }\n function render() {\n const newFullPath = location.pathname + location.search;\n if (newFullPath === currentPath)\n return;\n currentPath = newFullPath;\n const next = matchRoute(location.pathname);\n if (currentEl && currentEl.parentNode) {\n document.body.removeChild(currentEl);\n }\n document.body.appendChild(next);\n currentEl = next;\n }\n window.addEventListener(\"popstate\", render);\n render();\n return {\n render,\n push(path) {\n history.pushState(null, \"\", path);\n render();\n },\n replace(path) {\n history.replaceState(null, \"\", path);\n render();\n },\n back: () => history.back()\n };\n}\n"],"names":["STATE","Symbol","currentEffect","derive","fn","effect","st","deps","subs","delete","clear","cleanup","Set","isState","x","tags","Proxy","get","_","tag","attrsOrChild","children","el","document","createElement","Node","Array","isArray","unshift","k","v","Object","entries","setAttribute","String","child","flat","mountReactiveState","appendChild","createTextNode","mountReactiveFunction","processChildren","parent","marker","mounted","n","parentNode","removeChild","value","values","node","val","insertBefore","add","next","data","push","text","styleElements","fill","styleSheets","ensureStyleSheet","layer","id","head","sheet","camelToKebabCache","Map","camelToKebab","str","cached","res","replace","m","toLowerCase","set","resolveValue","hashString","hash","i","length","charCodeAt","toString","atomicCache","makeClassName","signature","prefixSelector","selector","className","split","map","part","trim","join","getAtomicClasses","decl","classes","rule","insertRule","cssRules","buildAtomicEntries","key","startsWith","prop","resetCache","stringifyRule","styles","rules","decls","component","HTMLElement","Error","body","render","JSON","stringify","result","slot","e","inputs","seen","input","parts","cls","has","routes","patterns","wildcard","path","keys","handler","pattern","slice","regex","RegExp","currentEl","currentPath","parseQuery","search","params","URLSearchParams","newFullPath","location","pathname","match","forEach","decodeURIComponent","assign","matchRoute","window","addEventListener","history","pushState","replaceState","back","track","nv","from"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.min.js","sources":["../src/state.ts","../src/tags.ts","../src/styles.ts","../src/helpers.ts","../src/router.ts"],"sourcesContent":["export const STATE = Symbol(\"STATE\");\nexport function isState(x) {\n return typeof x === \"object\" && x !== null && x[STATE] === true;\n}\nlet currentEffect = null;\nfunction track(st) {\n if (currentEffect) {\n st.subs.add(currentEffect);\n currentEffect.deps.add(st);\n }\n}\nfunction cleanup(effect) {\n for (const st of effect.deps)\n st.subs.delete(effect);\n effect.deps.clear();\n}\nexport function state(v) {\n const st = {\n [STATE]: true,\n subs: new Set(),\n get val() {\n track(st);\n return v;\n },\n set val(nv) {\n if (nv === v)\n return;\n v = nv;\n for (const fn of Array.from(st.subs)) {\n fn();\n }\n }\n };\n return st;\n}\nexport function derive(fn) {\n const effect = (() => {\n cleanup(effect);\n currentEffect = effect;\n try {\n fn();\n }\n finally {\n currentEffect = null;\n }\n });\n effect.deps = new Set();\n effect();\n return effect;\n}\n","import { derive } from \"./state\";\nfunction isState(x) {\n return x && typeof x === \"object\" && \"subs\" in x && \"val\" in x;\n}\n// --- Attribute detection (fix for TypeScript narrowing) ---\nfunction isAttrs(x) {\n return (x &&\n typeof x === \"object\" &&\n !(x instanceof Node) &&\n !isState(x) &&\n typeof x !== \"function\" &&\n !Array.isArray(x));\n}\nexport const tags = new Proxy({}, {\n get(_, tag) {\n return (attrsOrChild, ...children) => {\n const el = document.createElement(tag);\n // Handle attributes safely\n if (isAttrs(attrsOrChild)) {\n for (const [k, v] of Object.entries(attrsOrChild)) {\n el.setAttribute(k, String(v));\n }\n }\n else if (attrsOrChild != null) {\n // Now TypeScript knows it's ChildLike, not Attrs\n children.unshift(attrsOrChild);\n }\n processChildren(el, children);\n return el;\n };\n }\n});\nfunction processChildren(el, children) {\n for (const child of children.flat()) {\n if (child == null || child === false)\n continue;\n if (typeof child === \"function\") {\n mountReactiveFunction(el, child);\n continue;\n }\n if (isState(child)) {\n mountReactiveState(el, child);\n continue;\n }\n if (child instanceof Node) {\n el.appendChild(child);\n continue;\n }\n el.appendChild(document.createTextNode(String(child)));\n }\n}\nfunction mountReactiveFunction(parent, fn) {\n const marker = document.createTextNode(\"\");\n parent.appendChild(marker);\n let mounted = [];\n const cleanup = () => {\n for (const n of mounted) {\n if (n.parentNode === parent)\n parent.removeChild(n);\n }\n mounted = [];\n };\n derive(() => {\n cleanup();\n const value = fn();\n const values = Array.isArray(value) ? value.flat() : [value];\n for (const v of values) {\n if (v == null || v === false)\n continue;\n if (typeof v === \"function\") {\n mountReactiveFunction(parent, v);\n continue;\n }\n if (isState(v)) {\n const node = document.createTextNode(String(v.val));\n parent.insertBefore(node, marker);\n v.subs.add(() => {\n const next = String(v.val);\n if (node.data !== next)\n node.data = next;\n });\n mounted.push(node);\n continue;\n }\n if (v instanceof Node) {\n parent.insertBefore(v, marker);\n mounted.push(v);\n continue;\n }\n const text = document.createTextNode(String(v));\n parent.insertBefore(text, marker);\n mounted.push(text);\n }\n });\n}\nfunction mountReactiveState(parent, st) {\n const node = document.createTextNode(String(st.val));\n parent.appendChild(node);\n st.subs.add(() => {\n const next = String(st.val);\n if (node.data !== next)\n node.data = next;\n });\n}\n","const PRECEDENCE_LAYERS = 3;\n/* -------------------------------------------------------------------------- */\n/* Stylesheet management (one <style> per layer) */\n/* -------------------------------------------------------------------------- */\nconst styleElements = Array(PRECEDENCE_LAYERS).fill(null);\nconst styleSheets = Array(PRECEDENCE_LAYERS).fill(null);\nfunction ensureStyleSheet(layer) {\n if (!styleSheets[layer]) {\n const el = document.createElement(\"style\");\n el.id = `styles-layer-${layer}`;\n document.head.appendChild(el);\n styleElements[layer] = el;\n styleSheets[layer] = el.sheet;\n }\n return styleSheets[layer];\n}\n/* -------------------------------------------------------------------------- */\n/* Utilities */\n/* -------------------------------------------------------------------------- */\nconst camelToKebabCache = new Map();\nfunction camelToKebab(str) {\n const cached = camelToKebabCache.get(str);\n if (cached)\n return cached;\n const res = str.replace(/[A-Z]/g, m => \"-\" + m.toLowerCase());\n camelToKebabCache.set(str, res);\n return res;\n}\nfunction resolveValue(v) {\n return typeof v === \"function\" ? v() : v;\n}\nfunction hashString(str) {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n return (hash >>> 0).toString(36);\n}\n/* -------------------------------------------------------------------------- */\n/* Atomic rule generation */\n/* -------------------------------------------------------------------------- */\nconst atomicCache = new Map();\nfunction makeClassName(signature, layer) {\n return `f${hashString(`${layer}|${signature}`)}`;\n}\nfunction prefixSelector(selector, className) {\n // handles: \"&\", \"&:hover\", \"&:hover,&:active\"\n return selector\n .split(\",\")\n .map(part => part.trim().replace(/&/g, `.${className}`))\n .join(\",\");\n}\nfunction getAtomicClasses(selector, decl) {\n const signature = `${selector}|${decl}`;\n const cached = atomicCache.get(signature);\n if (cached)\n return cached;\n const classes = [];\n for (let layer = 0; layer < PRECEDENCE_LAYERS; layer++) {\n const className = makeClassName(signature, layer);\n classes.push(className);\n const rule = selector === \"&\"\n ? `.${className}{${decl}}`\n : `${prefixSelector(selector, className)}{${decl}}`;\n const sheet = ensureStyleSheet(layer);\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n atomicCache.set(signature, classes);\n return classes;\n}\nfunction buildAtomicEntries(rule) {\n const entries = [];\n for (const key in rule) {\n const val = rule[key];\n if (val == null)\n continue;\n // Pseudo selectors\n if (key.startsWith(\":\") && typeof val === \"object\") {\n for (const prop in val) {\n const v = val[prop];\n if (v == null || typeof v === \"object\")\n continue;\n const decl = `${camelToKebab(prop)}:${resolveValue(v)}`;\n const classes = getAtomicClasses(`&${key}`, decl);\n entries.push({ classes });\n }\n continue;\n }\n // @media, @supports\n if (key.startsWith(\"@\") && typeof val === \"object\") {\n // handled elsewhere (reset styles), skip for atomic\n continue;\n }\n // Normal CSS property\n if (typeof val !== \"object\") {\n const decl = `${camelToKebab(key)}:${resolveValue(val)}`;\n const classes = getAtomicClasses(\"&\", decl);\n entries.push({ classes });\n }\n }\n return entries;\n}\n/* -------------------------------------------------------------------------- */\n/* makeStyles */\n/* -------------------------------------------------------------------------- */\nexport function makeStyles(styles, layer = 0) {\n return () => {\n const result = {};\n for (const slot in styles) {\n const rule = (styles[slot] ?? {});\n const entries = buildAtomicEntries(rule);\n const classes = entries\n .map(e => e.classes[layer])\n .join(\" \");\n result[slot] = classes;\n }\n return result;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* makeResetStyles */\n/* -------------------------------------------------------------------------- */\nconst resetCache = new Map();\nfunction stringifyRule(selector, styles) {\n const rules = [];\n const decls = [];\n for (const key in styles) {\n const val = styles[key];\n if (val == null)\n continue;\n if (key.startsWith(\":\") && typeof val === \"object\") {\n rules.push(...stringifyRule(`${selector}${key}`, val));\n continue;\n }\n if (typeof val !== \"object\") {\n decls.push(`${camelToKebab(key)}:${resolveValue(val)}`);\n }\n }\n if (decls.length) {\n rules.unshift(`${selector}{${decls.join(\";\")}}`);\n }\n return rules;\n}\nexport function makeResetStyles(styles) {\n const signature = JSON.stringify(styles);\n return () => {\n const cached = resetCache.get(signature);\n if (cached)\n return cached;\n const className = `r${hashString(signature)}`;\n const selector = `.${className}`;\n const rules = stringifyRule(selector, styles);\n const sheet = ensureStyleSheet(0);\n for (const rule of rules) {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n resetCache.set(signature, className);\n return className;\n };\n}\n/* -------------------------------------------------------------------------- */\n/* mergeClasses (NO precedence logic here) */\n/* -------------------------------------------------------------------------- */\nexport function mergeClasses(...inputs) {\n const seen = new Set();\n const result = [];\n for (const input of inputs) {\n if (typeof input !== \"string\")\n continue;\n const parts = input.trim().split(/\\s+/);\n for (const cls of parts) {\n if (!seen.has(cls)) {\n seen.add(cls);\n result.push(cls);\n }\n }\n }\n return result.join(\" \");\n}\n","export function add(component) {\n if (typeof component === \"function\") {\n const el = component();\n if (!(el instanceof HTMLElement)) {\n throw new Error(\"Component function must return an HTMLElement\");\n }\n document.body.appendChild(el);\n return;\n }\n if (\"render\" in component && typeof component.render === \"function\") {\n component.render();\n return;\n }\n throw new Error(\"Invalid component passed to add()\");\n}\n","export function router(routes) {\n const patterns = [];\n let wildcard = null;\n for (const path of Object.keys(routes)) {\n const handler = routes[path];\n if (!handler)\n continue;\n if (path === \"*\") {\n wildcard = handler;\n continue;\n }\n const keys = [];\n const pattern = path.replace(/:[^/]+/g, (m) => {\n keys.push(m.slice(1));\n return \"([^/]+)\";\n });\n patterns.push({\n regex: new RegExp(`^${pattern}$`),\n keys,\n handler\n });\n }\n let currentEl = null;\n let currentPath = \"\";\n function parseQuery(search) {\n const params = {};\n if (!search)\n return params;\n for (const [k, v] of new URLSearchParams(search))\n params[k] = v;\n return params;\n }\n function matchRoute(pathname) {\n for (const { regex, keys, handler } of patterns) {\n const match = pathname.match(regex);\n if (!match)\n continue;\n const params = {};\n keys.forEach((key, i) => {\n params[key] = decodeURIComponent(match[i + 1]);\n });\n Object.assign(params, parseQuery(location.search));\n return handler(params);\n }\n if (wildcard)\n return wildcard({});\n throw new Error(`No route matches \"${pathname}\"`);\n }\n function render() {\n const newFullPath = location.pathname + location.search;\n if (newFullPath === currentPath)\n return;\n currentPath = newFullPath;\n const next = matchRoute(location.pathname);\n if (currentEl && currentEl.parentNode) {\n document.body.removeChild(currentEl);\n }\n document.body.appendChild(next);\n currentEl = next;\n }\n window.addEventListener(\"popstate\", render);\n render();\n return {\n render,\n push(path) {\n history.pushState(null, \"\", path);\n render();\n },\n replace(path) {\n history.replaceState(null, \"\", path);\n render();\n },\n back: () => history.back()\n };\n}\n"],"names":["STATE","Symbol","currentEffect","derive","fn","effect","st","deps","subs","delete","clear","cleanup","Set","isState","x","tags","Proxy","get","_","tag","attrsOrChild","children","el","document","createElement","Node","Array","isArray","unshift","k","v","Object","entries","setAttribute","String","child","flat","mountReactiveState","appendChild","createTextNode","mountReactiveFunction","processChildren","parent","marker","mounted","n","parentNode","removeChild","value","values","node","val","insertBefore","add","next","data","push","text","styleElements","fill","styleSheets","ensureStyleSheet","layer","id","head","sheet","camelToKebabCache","Map","camelToKebab","str","cached","res","replace","m","toLowerCase","set","resolveValue","hashString","hash","i","length","charCodeAt","toString","atomicCache","makeClassName","signature","prefixSelector","selector","className","split","map","part","trim","join","getAtomicClasses","decl","classes","rule","insertRule","cssRules","buildAtomicEntries","key","startsWith","prop","resetCache","stringifyRule","styles","rules","decls","component","HTMLElement","Error","body","render","JSON","stringify","result","slot","e","inputs","seen","input","parts","cls","has","routes","patterns","wildcard","path","keys","handler","pattern","slice","regex","RegExp","currentEl","currentPath","parseQuery","search","params","URLSearchParams","newFullPath","location","pathname","match","forEach","decodeURIComponent","assign","matchRoute","window","addEventListener","history","pushState","replaceState","back","track","nv","from"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/styles.ts
CHANGED
|
@@ -121,6 +121,7 @@ function buildAtomicEntries(rule: StyleRule): AtomicEntry[] {
|
|
|
121
121
|
const val = rule[key];
|
|
122
122
|
if (val == null) continue;
|
|
123
123
|
|
|
124
|
+
// Pseudo selectors
|
|
124
125
|
if (key.startsWith(":") && typeof val === "object") {
|
|
125
126
|
for (const prop in val) {
|
|
126
127
|
const v = val[prop];
|
|
@@ -133,6 +134,13 @@ function buildAtomicEntries(rule: StyleRule): AtomicEntry[] {
|
|
|
133
134
|
continue;
|
|
134
135
|
}
|
|
135
136
|
|
|
137
|
+
// @media, @supports
|
|
138
|
+
if (key.startsWith("@") && typeof val === "object") {
|
|
139
|
+
// handled elsewhere (reset styles), skip for atomic
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Normal CSS property
|
|
136
144
|
if (typeof val !== "object") {
|
|
137
145
|
const decl = `${camelToKebab(key)}:${resolveValue(val)}`;
|
|
138
146
|
const classes = getAtomicClasses("&", decl);
|