@exponential_app/eui 0.2.0 → 0.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/catalog/a11y.json +15 -1
- package/catalog/core.catalog.json +142 -0
- package/catalog/core.schema.json +198 -1
- package/catalog/host.json +10 -0
- package/catalog/macros.json +541 -1
- package/catalog/recipes.json +2 -2
- package/catalog/strings.json +5 -0
- package/catalog/theme.schema.json +2066 -212
- package/conformance/manifest.json +5 -5
- package/dist/chunks/{index-gtk2gwsb.js → index-4z7f2bp1.js} +160 -33
- package/dist/chunks/{index-gtk2gwsb.js.map → index-4z7f2bp1.js.map} +6 -5
- package/dist/chunks/{index-5fmaa0xq.js → index-abcjanhc.js} +629 -3
- package/dist/chunks/{index-5fmaa0xq.js.map → index-abcjanhc.js.map} +2 -2
- package/dist/chunks/{index-62yzr94z.js → index-dx45asrf.js} +99 -3
- package/dist/chunks/{index-62yzr94z.js.map → index-dx45asrf.js.map} +2 -2
- package/dist/chunks/{index-bg2jsgjq.js → index-h3zgfghf.js} +304 -6
- package/dist/chunks/{index-bg2jsgjq.js.map → index-h3zgfghf.js.map} +2 -2
- package/dist/conformance.js +7901 -614
- package/dist/conformance.js.map +2 -2
- package/dist/entries/prompt.js +2 -2
- package/dist/entries/schema.js +2 -2
- package/dist/host/index.js +20 -4
- package/dist/host/index.js.map +1 -1
- package/dist/index.js +46 -5
- package/dist/index.js.map +4 -3
- package/dist/types/src/catalog.generated.d.ts +23 -3
- package/dist/types/src/host/contract.d.ts +17 -0
- package/dist/types/src/host/exposes.d.ts +68 -0
- package/dist/types/src/host/index.d.ts +1 -0
- package/dist/types/src/host/package.d.ts +8 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/text-clusters.d.ts +11 -0
- package/dist/types/src/web/primitives/carousel.d.ts +17 -0
- package/dist/types/src/web/primitives/index.d.ts +3 -0
- package/dist/types/src/web/primitives/mosaic.d.ts +30 -0
- package/dist/types/src/web/primitives/outline.d.ts +22 -0
- package/dist/web/index.js +8 -2
- package/dist/web/index.js.map +4 -4
- package/dist/web/primitives/index.js +59 -1
- package/dist/web/primitives/index.js.map +6 -3
- package/docs/components.generated.json +150 -1
- package/docs/package-format.md +56 -1
- package/docs/round-6-contract.md +108 -0
- package/docs/themes.generated.json +39 -2
- package/fixtures/bind-time.json +1464 -0
- package/fixtures/catalog-components.json +96 -0
- package/fixtures/catalog-macros.json +1159 -48
- package/fixtures/conformance-baseline.json +46073 -44448
- package/fixtures/conformance-known.json +76 -64
- package/fixtures/host-router.json +539 -1
- package/fixtures/kitchen-sink.expanded.json +614 -1
- package/fixtures/kitchen-sink.json +69 -1
- package/fixtures/primitive-specimens.json +3 -0
- package/fixtures/prompt-budget.json +14 -14
- package/fixtures/specimens.json +122 -0
- package/fixtures/text-clusters.json +65 -0
- package/fixtures/theme-recipes.json +4617 -1691
- package/fixtures/theme-resolved.json +1154 -2
- package/generated/ExponentialUICatalog.generated.kt +13 -13
- package/generated/ExponentialUICatalog.generated.swift +13 -13
- package/generated/ExponentialUIThemes.generated.kt +7 -7
- package/generated/ExponentialUIThemes.generated.swift +7 -7
- package/generated/catalog.descriptions.generated.rs +1 -1
- package/generated/catalog.generated.rs +18 -18
- package/generated/catalog.themes.generated.rs +8 -8
- package/generated/core.descriptions.json +96 -0
- package/generated/core.runtime.json +86 -0
- package/package.json +1 -1
- package/themes/neutral.theme.json +288 -0
package/dist/web/index.js.map
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"// VAPP-87 + round 1: a surface's NODE stylesheet (layer `xui-node`). Per\n// node, in this order (contract §2, `resolveConditions` is the reference):\n// 1. its whitelisted `style` (tokens as `var(--xui-…)`);\n// 2. every `@media` block in SOURCE order (later wins): width conditions\n// as CONTAINER queries on the surface's `xui` container (`min-width` =\n// `width >= N`, `max-width` = `width < N`, `$breakpoint.*` resolved from\n// the theme), height and orientation as attribute-gated rules the\n// surface sets from its measured box (`data-xq`, a container query\n// cannot ask an inline-size container for its height), `hover` and\n// `prefers-reduced-motion` as real media queries;\n// 3. the state blocks `:hover`, `:focus-visible`, `:pressed`.\n// A style value the macro expander left DYNAMIC (a binding or a call, e.g.\n// Progress `width: percent{…}`) becomes `var(--xd-<n>)`; `NodeView` sets\n// the resolved value on the element, so the layer order (native recipe <\n// node style < macro part < authored) still holds. VAPP-163: the keys a\n// macro node's author wrote (`recipe.authored`) are emitted AGAIN, the same\n// way, in the `xui-author` layer, which sits after `xui-part`. Template subtrees are included\n// (their items render under the template node's own class), so a templated\n// row wears its author and macro styles (audit bug B).\n\nimport { parseMediaCondition, parseTokenRef, type FontSpec, type ResolvedTheme, type UiNode } from \"@exponential_app/eui\"\nimport { hasDynamic } from \"./data\"\nimport { declarations, rule, shimmerRule } from \"./theme-css\"\n\nexport const nodeClass = (id: string): string => `xui-n-${cssEscape(id)}`\nexport const surfaceClass = (surfaceId: string): string => `xui-s-${cssEscape(surfaceId)}`\n\n/** Ids are author strings; keep the class usable in a selector. */\nexport function cssEscape(text: string): string {\n return text.replace(/[^a-zA-Z0-9_-]/g, (c) => `_${c.charCodeAt(0).toString(16)}_`)\n}\n\nexport function* walkNodes(root: UiNode): Generator<UiNode> {\n yield root\n for (const slot of Object.values(root.slots ?? {})) yield* walkNodes(slot)\n for (const child of root.children) yield* walkNodes(child)\n}\n\n/** One dynamic style value of a node: where it sits and its variable. */\nexport interface DynamicStyleEntry {\n /** `--xd-<n>`, numbered in walk order (base keys, then each block). */\n name: string\n /** The condition key (`@media …`, `:hover`) or `` for the base style. */\n block: string\n key: string\n value: unknown\n}\n\n/** The node's dynamic style values in the order the sheet numbers them. */\nexport function dynamicStyleEntries(style: Record<string, unknown> | undefined): DynamicStyleEntry[] {\n const out: DynamicStyleEntry[] = []\n if (!style) return out\n const visit = (block: string, s: Record<string, unknown>) => {\n for (const [key, value] of Object.entries(s)) {\n if (key.startsWith(`@`) || key.startsWith(`:`)) continue\n if (hasDynamic(value)) out.push({ name: `--xd-${out.length}`, block, key, value })\n }\n }\n visit(``, style)\n for (const [key, value] of Object.entries(style)) {\n if ((key.startsWith(`@`) || key.startsWith(`:`)) && typeof value === `object` && value !== null) visit(key, value as Record<string, unknown>)\n }\n return out\n}\n\n/** A JS-evaluated condition (height / orientation): its `data-xq` token. */\nexport function queryToken(key: string): string {\n return cssEscape(key.replace(/^@media \\(|\\)$/g, ``).replace(/: /, `-`))\n}\n\nexport interface NodeSheet {\n css: string\n /** The resolved condition keys the surface must evaluate itself and list\n * in `data-xq` when they hold (height, orientation). */\n queries: string[]\n /** VAPP-152: each styled node's rules by id, in walk order (`css` is\n * their concatenation inside the `xui-node` layer). VAPP-163: a node\n * with authored keys appends `AUTHOR_SEP` + its `xui-author` rules;\n * `layeredCss` splits them into the two layers. */\n chunks: ReadonlyMap<string, string>\n}\n\n/** The key a surface evaluates itself for a `@media` block (size values\n * resolved to px: `@media (min-width: 768px)`); null = never matches. */\nexport function resolvedMediaKey(key: string, theme: ResolvedTheme | undefined): string | null {\n const condition = parseMediaCondition(key)\n if (!condition) return null\n if (condition.feature === `orientation` || condition.feature === `hover` || condition.feature === `prefers-reduced-motion`) return key\n const px = breakpointPx(condition.value, theme)\n return px === null ? null : `@media (${condition.feature}: ${px}px)`\n}\n\nconst isDirection = (v: unknown): v is `ltr` | `rtl` => v === `ltr` || v === `rtl`\n\n/** A node's own `direction` (round 2 §2): its base style's, then every\n * MATCHING `@media` block's in source order (later wins), as\n * `resolveConditions` flattens it; `matches` = the surface's `data-xq`. */\nexport function styleDirection(style: Record<string, unknown> | undefined, theme: ResolvedTheme | undefined, matches: (resolvedKey: string) => boolean): `ltr` | `rtl` | undefined {\n if (!style) return undefined\n let out = isDirection(style.direction) ? style.direction : undefined\n for (const [key, value] of Object.entries(style)) {\n if (!key.startsWith(`@`) || typeof value !== `object` || value === null) continue\n const d = (value as Record<string, unknown>).direction\n if (!isDirection(d)) continue\n const resolved = resolvedMediaKey(key, theme)\n if (resolved && matches(resolved)) out = d\n }\n return out\n}\n\nfunction breakpointPx(value: string, theme: ResolvedTheme | undefined): number | null {\n const ref = parseTokenRef(value)\n if (ref) {\n if (ref.group !== `breakpoint`) return null\n const px = theme?.tokens.breakpoint?.[ref.name]\n return typeof px === `number` ? px : null\n }\n const n = parseFloat(value)\n return Number.isFinite(n) ? n : null\n}\n\n/** VAPP-163: separates a chunk's `xui-node` rules from its `xui-author`\n * rules (NUL never survives in CSS, so it never occurs in a rule). */\nexport const AUTHOR_SEP = `\\u0000`\n\n/** Chunks (`NodeSheet.chunks`) as one stylesheet: every node's rules in the\n * `xui-node` layer, then the authored ones in `xui-author`. */\nexport function layeredCss(chunks: Iterable<string>): string {\n const node: string[] = []\n const author: string[] = []\n for (const chunk of chunks) {\n const at = chunk.indexOf(AUTHOR_SEP)\n if (at < 0) node.push(chunk)\n else {\n node.push(chunk.slice(0, at))\n author.push(chunk.slice(at + 1))\n }\n }\n return `@layer xui-node{${node.join(``)}}${author.length ? `@layer xui-author{${author.join(``)}}` : ``}`\n}\n\ninterface NodeChunk {\n css: string\n queries: readonly string[]\n}\n\n/** VAPP-152: a node's rules, per node OBJECT (a re-reduced tree shares its\n * unchanged nodes) and the inputs they depend on. */\nconst chunkCache = new WeakMap<UiNode, { scope: string; theme: ResolvedTheme | undefined; fonts: Record<string, FontSpec>; chunk: NodeChunk }>()\n\nfunction nodeChunk(node: UiNode, style: Record<string, unknown>, scope: string, theme: ResolvedTheme | undefined, fonts: Record<string, FontSpec>): NodeChunk {\n const hit = chunkCache.get(node)\n if (hit && hit.scope === scope && hit.theme === theme && hit.fonts === fonts) return hit.chunk\n const queries = new Set<string>()\n // The variables are numbered over the WHOLE style, so the authored rules\n // read the same `--xd-<n>` the element carries.\n const dyn = dynamicStyleEntries(style)\n const withVars = (block: string, s: Record<string, unknown>) => {\n const mine = dyn.filter((d) => d.block === block && d.key in s)\n if (mine.length === 0) return s\n const copy = { ...s }\n for (const d of mine) copy[d.key] = `var(${d.name})`\n return copy\n }\n const cls = nodeClass(node.id)\n const own = withVars(``, style)\n let css = styleRules(style, own, withVars, scope, cls, theme, fonts, queries)\n const authored = node.recipe?.authored\n if (authored?.length) {\n const picked: Record<string, unknown> = {}\n for (const key of authored) if (key in style) picked[key] = style[key]\n const author = styleRules(picked, own, withVars, scope, cls, theme, fonts, queries)\n if (author) css += AUTHOR_SEP + author\n }\n const chunk = { css, queries: [...queries] }\n chunkCache.set(node, { scope, theme, fonts, chunk })\n return chunk\n}\n\n/** The rules of one style object (a node's whole style, or its authored\n * keys): base declarations, `@media` blocks, state blocks. `own` = the\n * node's whole base style (the context `declarations` reads). */\nfunction styleRules(\n style: Record<string, unknown>,\n own: Record<string, unknown>,\n withVars: (block: string, s: Record<string, unknown>) => Record<string, unknown>,\n scope: string,\n cls: string,\n theme: ResolvedTheme | undefined,\n fonts: Record<string, FontSpec>,\n queries: Set<string>\n): string {\n const sel = `${scope} .${cls}`\n const rules: string[] = []\n const base = declarations(withVars(``, style), fonts, own)\n if (base.length) rules.push(rule(sel, base) + shimmerRule(sel, style))\n for (const [key, value] of Object.entries(style)) {\n if (!key.startsWith(`@`) || typeof value !== `object` || value === null) continue\n const block = declarations(withVars(key, value as Record<string, unknown>), fonts, own)\n if (block.length === 0) continue\n const condition = parseMediaCondition(key)\n if (!condition) continue\n // A block that sets `direction` is ALSO evaluated by the surface\n // (`data-xq`): the node's direction drives `dir`, Radix and keys.\n if (isDirection((value as Record<string, unknown>).direction)) {\n const resolved = resolvedMediaKey(key, theme)\n if (resolved) queries.add(resolved)\n }\n const band = (selector: string) => shimmerRule(selector, value as Record<string, unknown>)\n switch (condition.feature) {\n case `min-width`:\n case `max-width`: {\n const px = breakpointPx(condition.value, theme)\n if (px === null) break // an unknown token never matches\n const op = condition.feature === `min-width` ? `>=` : `<`\n rules.push(`@container xui (width ${op} ${px}px){${rule(sel, block)}${band(sel)}}`)\n break\n }\n case `min-height`:\n case `max-height`: {\n const px = breakpointPx(condition.value, theme)\n if (px === null) break\n const resolved = `@media (${condition.feature}: ${px}px)`\n queries.add(resolved)\n const q = `${scope}:where([data-xq~=\"${queryToken(resolved)}\"]) .${cls}`\n rules.push(rule(q, block) + band(q))\n break\n }\n case `orientation`:\n queries.add(key)\n const q = `${scope}:where([data-xq~=\"${queryToken(key)}\"]) .${cls}`\n rules.push(rule(q, block) + band(q))\n break\n case `hover`:\n case `prefers-reduced-motion`:\n rules.push(`@media (${condition.feature}: ${condition.value}){${rule(sel, block)}${band(sel)}}`)\n break\n }\n }\n const states: [string, string][] = [\n [`:hover`, `${sel}:hover,${sel}[data-xs~=\"hover\"]`],\n [`:focus-visible`, `${sel}:focus-visible,${sel}[data-xs~=\"focus-visible\"]`],\n [`:pressed`, `${sel}:active,${sel}[data-xs~=\"pressed\"]`],\n ]\n for (const [key, selector] of states) {\n const value = style[key]\n if (typeof value !== `object` || value === null) continue\n const block = declarations(withVars(key, value as Record<string, unknown>), fonts, own)\n if (block.length) rules.push(rule(selector, block) + shimmerRule(selector, value as Record<string, unknown>))\n }\n return rules.join(``)\n}\n\n/** The node sheet for one tree (plus the template subtrees it renders). */\nexport function compileNodeSheet(roots: readonly UiNode[], surfaceId: string, theme?: ResolvedTheme, fonts: Record<string, FontSpec> = theme?.fonts ?? {}): NodeSheet {\n const scope = `.${surfaceClass(surfaceId)}`\n const chunks = new Map<string, string>()\n const queries = new Set<string>()\n const seen = new Set<string>()\n for (const root of roots) {\n for (const node of walkNodes(root)) {\n const style = node.style\n if (!style || seen.has(node.id)) continue\n seen.add(node.id)\n const chunk = nodeChunk(node, style, scope, theme, fonts)\n if (chunk.css) chunks.set(node.id, chunk.css)\n for (const q of chunk.queries) queries.add(q)\n }\n }\n return { css: layeredCss(chunks.values()), queries: [...queries], chunks }\n}\n\n/** VAPP-152: one `<style>` of the node sheet: the rules of some nodes. */\nexport interface NodeSheetBatch {\n readonly chunks: ReadonlyMap<string, string>\n readonly css: string\n}\n\nconst sheetBatch = (chunks: ReadonlyMap<string, string>): NodeSheetBatch => ({ chunks, css: layeredCss(chunks.values()) })\n\n/** VAPP-152: the node sheet as `<style>` batches, the last ones kept. A\n * rewritten stylesheet makes Chromium re-match every node its rules\n * select, so a batch whose rules are all unchanged keeps its OBJECT (the\n * renderers leave its element alone), a batch with a changed or removed\n * node is rewritten in place, and the new nodes' rules land in ONE new\n * batch at the end (a streamed card restyles only itself). A batch at\n * least as large as the one before it merges into it (a binary counter:\n * at most log2(n) batches, each node rewritten O(log n) times). Rules of\n * different nodes never select the same element, so the order of the\n * batches does not change the cascade. */\nexport function nodeSheetBatches(prev: readonly NodeSheetBatch[], chunks: ReadonlyMap<string, string>): NodeSheetBatch[] {\n const out: NodeSheetBatch[] = []\n const placed = new Set<string>()\n for (const b of prev) {\n let dirty = false\n for (const [id, css] of b.chunks) {\n placed.add(id)\n if (chunks.get(id) !== css) dirty = true\n }\n if (!dirty) {\n out.push(b)\n continue\n }\n const kept = new Map<string, string>()\n for (const id of b.chunks.keys()) {\n const css = chunks.get(id)\n if (css !== undefined) kept.set(id, css)\n }\n if (kept.size) out.push(sheetBatch(kept))\n }\n const fresh = new Map<string, string>()\n for (const [id, css] of chunks) if (!placed.has(id)) fresh.set(id, css)\n if (fresh.size) out.push(sheetBatch(fresh))\n while (out.length > 1 && out[out.length - 1].chunks.size >= out[out.length - 2].chunks.size) {\n const last = out.pop()!\n const before = out.pop()!\n out.push(sheetBatch(new Map([...before.chunks, ...last.chunks])))\n }\n return out\n}\n\n/** The node sheet's CSS for one tree (the VAPP-87 entry point). */\nexport function nodeSheet(root: UiNode, surfaceId: string, fontsOrTheme: Record<string, FontSpec> | ResolvedTheme = {}, extra: readonly UiNode[] = []): string {\n const theme = isTheme(fontsOrTheme) ? fontsOrTheme : undefined\n const fonts = theme ? theme.fonts : (fontsOrTheme as Record<string, FontSpec>)\n return compileNodeSheet([root, ...extra], surfaceId, theme, fonts).css\n}\n\nfunction isTheme(v: unknown): v is ResolvedTheme {\n return typeof v === `object` && v !== null && `tokens` in v && `modes` in v\n}\n",
|
|
7
7
|
"// VAPP-87: the surface DATA MODEL and A2UI's dynamic values. Props may carry\n// a `{path}` binding (a JSON Pointer into the data model, relative inside a\n// template item) or a `{call, args}` function call (the basic catalog's 14\n// client functions + round 1's 13 CORE functions the macro expander emits\n// for bound inputs); `resolveValue` turns a prop tree into literals for one\n// render, `$string.<id>` built-in copy included (round-1 contract §1, §4:\n// the React mirror of `@exponential_app/eui` `resolveDynamic`). The format\n// functions run through the SURFACE Formatter (round 2 §3: Intl in the\n// surface locale + time zone). Pure, so the host can run it too.\n\nimport { CORE_FUNCTIONS, DEFAULT_LOCALE, FORMAT_FUNCTION_NAMES, displayString, formatFunctions, hasRowSlots, intlFormatter, isDataSchema, resolveString, sharedCatalogView, readPointer, truthy, writePointer } from \"@exponential_app/eui\"\nimport type { CatalogView, ExtensionDef, Formatter } from \"@exponential_app/eui\"\n\nexport type DataModel = Record<string, unknown> | unknown[]\n\nexport interface DataBinding {\n path: string\n}\nexport interface FunctionCall {\n call: string\n args?: Record<string, unknown>\n returnType?: string\n}\n\nexport function isBinding(value: unknown): value is DataBinding {\n return typeof value === `object` && value !== null && !Array.isArray(value) && typeof (value as DataBinding).path === `string` && Object.keys(value as object).length === 1\n}\nexport function isCall(value: unknown): value is FunctionCall {\n return typeof value === `object` && value !== null && !Array.isArray(value) && typeof (value as FunctionCall).call === `string`\n}\n\nconst unescape = (token: string) => token.replace(/~1/g, `/`).replace(/~0/g, `~`)\n\n/** A pointer's tokens; `` and `/` are the whole model. */\nexport function pointerTokens(pointer: string): string[] {\n if (pointer === `` || pointer === `/`) return []\n return (pointer.startsWith(`/`) ? pointer.slice(1) : pointer).split(`/`).map(unescape)\n}\n\n/** `path` made absolute against a template scope (`/items/3`). */\nexport function absolutePath(path: string, scope = ``): string {\n if (path.startsWith(`/`)) return path\n if (!scope) return `/${path}`\n return path === `` ? scope : `${scope}/${path}`\n}\n\n/** The core's `readPointer`: real indices and OWN keys only, `-` = the\n * last element. */\nexport const getPointer: (data: unknown, pointer: string) => unknown = readPointer\n\n/** A copy of `data` with the value at `pointer` replaced (or removed when\n * `value` is undefined): the core's `writePointer` (missing containers are\n * OBJECTS, an array index up to its length, `-` appends). A refused write\n * (pointer limits, a non-index token, an index past the end) leaves the\n * data as it is. */\nexport function setPointer<T extends DataModel>(data: T, pointer: string, value: unknown): T {\n return writePointer(data, pointer, value).data as T\n}\n\n// ---------------------------------------------------------------------------\n// Client functions\n// ---------------------------------------------------------------------------\n\nexport interface ResolveContext {\n data: unknown\n /** The template item's pointer, for relative paths. */\n scope?: string\n functions?: Record<string, ClientFunction>\n /** `openUrl` and other side effects go to the host. */\n openUrl?: (url: string) => void\n /** The surface locale (BCP 47) the format functions use; default en-US. */\n locale?: string\n /** The surface's built-in string table: `$string.<id>` resolves through it. */\n strings?: Readonly<Record<string, string>>\n /** Round 2: the surface's Formatter (locale + time zone); the format\n * functions, Table cells, charts and pickers format through it. */\n formatter?: Formatter\n /** The clock `formatRelativeTime` reads without a `now` argument. */\n now?: () => number\n}\n\n/** The synthetic root a Table's LITERAL rows are mounted under in a slot\n * cell's read view: never written to the real data model (the table keeps\n * those edits), never reported to the host as a path. */\nexport const LITERAL_ROWS_ROOT = `/$xuiRows`\n\n/** A bound path the host may see (`undefined` for a synthetic one). */\nexport function hostPath(path: string | undefined): string | undefined {\n return path === undefined || path === LITERAL_ROWS_ROOT || path.startsWith(`${LITERAL_ROWS_ROOT}/`) ? undefined : path\n}\n\nexport type ClientFunction = (args: Record<string, unknown>, ctx: ResolveContext) => unknown\n\nconst num = (v: unknown) => (typeof v === `number` ? v : Number(v))\n\n/** `${/path}` and `${rel/path}` interpolations (formatString). */\nfunction interpolate(text: string, ctx: ResolveContext): string {\n return text.replace(/\\$\\{([^}]+)\\}/g, (_, expr: string) => {\n return displayString(getPointer(ctx.data, absolutePath(expr.trim(), ctx.scope)))\n })\n}\n\n/** `intlFormatter` builds a new Intl instance per call (~18 µs for a\n * currency); a windowed Table re-formats every visible cell per scroll\n * step. This wrapper memoises the RESULTS of the pure members (number,\n * currency, percent, date, plural) per formatter, bounded; relativeTime\n * (it reads a clock) passes through. */\nexport function memoFormatter(base: Formatter, max = 4096): Formatter {\n const hits = new Map<string, string>()\n const memo = (key: string, run: () => string): string => {\n const hit = hits.get(key)\n if (hit !== undefined) return hit\n const out = run()\n if (hits.size >= max) hits.clear()\n hits.set(key, out)\n return out\n }\n const valueKey = (v: unknown): string => (v instanceof Date ? `t${v.getTime()}` : typeof v === `string` ? `s${v}` : `${typeof v}${String(v)}`)\n return {\n locale: base.locale,\n number: (value, o) => memo(`n|${value}|${o?.decimals}|${o?.grouping}`, () => base.number(value, o)),\n currency: (value, currency, o) => memo(`c|${currency}|${value}|${o?.decimals}|${o?.grouping}`, () => base.currency(value, currency, o)),\n percent: (value, o) => memo(`p|${value}|${o?.decimals}`, () => base.percent(value, o)),\n date: (value, o) => memo(`d|${o?.format}|${o?.style}|${o?.time}|${valueKey(value)}`, () => base.date(value, o)),\n relativeTime: (value, now) => base.relativeTime(value, now),\n plural: (value) => memo(`l|${value}`, () => base.plural(value)) as ReturnType<Formatter[`plural`]>,\n }\n}\n\nconst formatterCache = new Map<string, Formatter>()\n\n/** The context's Formatter: the surface's (`ctx.formatter`), else an Intl\n * one in its locale and UTC (a bare `resolveValue` call in a test). */\nexport function formatterOf(ctx: ResolveContext): Formatter {\n if (ctx.formatter) return ctx.formatter\n const locale = ctx.locale ?? DEFAULT_LOCALE\n let hit = formatterCache.get(locale)\n if (!hit) formatterCache.set(locale, (hit = memoFormatter(intlFormatter(locale, `UTC`))))\n return hit\n}\n\nconst formatTables = new WeakMap<Formatter, { now: (() => number) | undefined; table: ReturnType<typeof formatFunctions> }>()\n\n/** One of the six format functions (round-2 contract §3) through the\n * context's Formatter; `now` = the surface clock `formatRelativeTime`\n * reads without a `now` argument. The table is cached per formatter and\n * clock (the clock changes once a minute). */\nfunction formatCall(name: (typeof FORMAT_FUNCTION_NAMES)[number]): ClientFunction {\n return (args, ctx) => {\n const formatter = formatterOf(ctx)\n let hit = formatTables.get(formatter)\n if (!hit || hit.now !== ctx.now) formatTables.set(formatter, (hit = { now: ctx.now, table: formatFunctions(formatter, ctx.now) }))\n return hit.table[name](args)\n }\n}\n\nconst FORMAT: Record<string, ClientFunction> = Object.fromEntries(FORMAT_FUNCTION_NAMES.map((name) => [name, formatCall(name)]))\n\n/** The core functions (percent, add, sub, eq, lt, cond, fallback, concat,\n * coalesce, text, map, len) exactly as the catalog evaluates them. `set` is\n * an ACTION (`node-view.tsx` runs it), never a value. */\nconst CORE: Record<string, ClientFunction> = Object.fromEntries(Object.entries(CORE_FUNCTIONS).map(([name, fn]) => [name, (args: Record<string, unknown>) => fn(args)]))\n\nexport const CLIENT_FUNCTIONS: Record<string, ClientFunction> = {\n // The contract's `required` (dynamic.ts LOGIC_FUNCTIONS, Rust data.rs):\n // truthy (so `false` and `\"\"` fail, 0 passes) and not an empty array.\n required: ({ value }) => truthy(value) && !(Array.isArray(value) && value.length === 0),\n regex: ({ value, pattern }) => {\n try {\n return new RegExp(String(pattern)).test(String(value ?? ``))\n } catch {\n return false\n }\n },\n length: ({ value, min, max }) => {\n const n = String(value ?? ``).length\n return (min === undefined || n >= num(min)) && (max === undefined || n <= num(max))\n },\n numeric: ({ value, min, max }) => {\n const n = num(value)\n return Number.isFinite(n) && (min === undefined || n >= num(min)) && (max === undefined || n <= num(max))\n },\n email: ({ value }) => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value ?? ``)),\n formatString: ({ value }, ctx) => interpolate(String(value ?? ``), ctx),\n openUrl: ({ url }, ctx) => {\n if (typeof url === `string`) ctx.openUrl?.(url)\n return undefined\n },\n // Truthiness = the catalog's `truthy` (0 is TRUE, \"\" is false).\n and: ({ values }) => (Array.isArray(values) ? values.every(truthy) : false),\n or: ({ values }) => (Array.isArray(values) ? values.some(truthy) : false),\n not: ({ value }) => !truthy(value),\n ...CORE,\n ...FORMAT,\n}\n\n/** A prop value with its bindings and calls resolved for one render. Plain\n * objects recurse (a check's `condition`, a menu item's label). */\nexport function resolveValue(value: unknown, ctx: ResolveContext): unknown {\n if (isBinding(value)) return getPointer(ctx.data, absolutePath(value.path, ctx.scope))\n if (isCall(value)) {\n const fn = ctx.functions?.[value.call] ?? CLIENT_FUNCTIONS[value.call]\n if (!fn) return undefined\n const args: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value.args ?? {})) args[k] = resolveValue(v, ctx)\n return fn(args, ctx)\n }\n if (typeof value === `string`) return ctx.strings && value.startsWith(`$string.`) ? resolveString(value, ctx.strings) : value\n if (Array.isArray(value)) return value.map((item) => resolveValue(item, ctx))\n if (typeof value === `object` && value !== null) {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value)) out[k] = resolveValue(v, ctx)\n return out\n }\n return value\n}\n\nexport function resolveProps(props: Record<string, unknown>, ctx: ResolveContext): Record<string, unknown> {\n return resolveValue(props, ctx) as Record<string, unknown>\n}\n\ntype PropSchema = NonNullable<Parameters<typeof isDataSchema>[0]>\n\n/** The catalog (core + extensions) a node's props resolve along. */\nexport function viewOf(extensions?: readonly ExtensionDef[]): CatalogView {\n return sharedCatalogView(extensions)\n}\n\nconst isPlainObject = (v: unknown): v is Record<string, unknown> => typeof v === `object` && v !== null && !Array.isArray(v)\n\n/** One prop value along its schema (the core's `resolveProp`): a binding or\n * call resolves, a DATA literal (Table `rows`) is the author's data and is\n * copied verbatim (no binding, call or `$string` inside it is read),\n * arrays and shaped objects resolve per item / property, anything else at\n * any depth. */\nfunction resolveAlong(value: unknown, schema: PropSchema | undefined, ctx: ResolveContext, defs: CatalogView[`defs`]): unknown {\n if (isBinding(value) || isCall(value)) return resolveValue(value, ctx)\n if (isDataSchema(schema)) return value\n if (schema?.type === `array` && schema.items && Array.isArray(value)) return value.map((item) => resolveAlong(item, schema.items, ctx, defs))\n const shape = schema?.type === `object` && schema.shape ? (defs as Record<string, { properties: Record<string, PropSchema> }>)[schema.shape] : undefined\n if (shape && isPlainObject(value)) {\n const out: Record<string, unknown> = {}\n // An unresolved member stays as an `undefined` KEY (JSON drops it, so\n // the bound tree serialises as the core's): a check whose `condition`\n // reads an unseeded path must still fail, as the Rust core decides off\n // the source `condition` key.\n for (const [k, v] of Object.entries(value)) out[k] = resolveAlong(v, shape.properties[k], ctx, defs)\n return out\n }\n return resolveValue(value, ctx)\n}\n\n/** A node's props resolved along its component's schema (an unknown\n * component's resolve at any depth); undefined results are dropped. */\nexport function resolveNodeProps(component: string, props: Record<string, unknown>, ctx: ResolveContext, extensions?: readonly ExtensionDef[]): Record<string, unknown> {\n const view = viewOf(extensions)\n const def = view.components[component] as { props: Record<string, PropSchema> } | undefined\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(props)) {\n const r = resolveAlong(v, def?.props[k], ctx, view.defs)\n if (r !== undefined) out[k] = r\n }\n return out\n}\n\n/** The pointer a bindable prop writes back to (two-way state), if bound. */\nexport function boundPath(props: Record<string, unknown>, name: string, scope = ``): string | undefined {\n const raw = props[name]\n return isBinding(raw) ? absolutePath(raw.path, scope) : undefined\n}\n\n/** A node's `visible`: absent = shown, else its resolved truthiness. */\nexport function resolveVisible(visible: unknown, ctx: ResolveContext): boolean {\n if (visible === undefined) return true\n return truthy(resolveValue(visible, ctx))\n}\n\n/** True when a value holds a binding or a call anywhere (a style value the\n * expander left dynamic). */\nexport function hasDynamic(value: unknown): boolean {\n if (isBinding(value) || isCall(value)) return true\n if (Array.isArray(value)) return value.some(hasDynamic)\n if (typeof value === `object` && value !== null) return Object.values(value).some(hasDynamic)\n return false\n}\n\n/** The React renderer's BIND pass as a pure function (round-1 contract §1;\n * `@exponential_app/eui` `bindTree` is the reference, fixtures/bind-time.json\n * locks both): a node whose `visible` resolves falsy is dropped with its\n * subtree, props / style values / recipe props resolve, `visible` goes,\n * actions and templates stay. `NodeView` binds node by node with the same\n * `resolveValue`; this is the whole-tree form for tests and hosts. */\n/** A node's `accessibility` resolved against the data (bindings, calls,\n * `$string`), undefined members dropped; null when nothing is left. */\nexport function resolveAccessibility(accessibility: unknown, ctx: ResolveContext): Record<string, unknown> | null {\n if (!accessibility || typeof accessibility !== `object`) return null\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(resolveValue(accessibility, ctx) as Record<string, unknown>)) if (v !== undefined) out[k] = v\n return Object.keys(out).length ? out : null\n}\n\n/** The ARIA attributes of a RESOLVED `accessibility` (contract §6): `role`\n * (`text` = none of its own, `hidden` = aria-hidden), label/description,\n * `level`, `expanded`, `current` (page|step; false = absent), `selected`,\n * `pressed`, `checked`, `valueNow/Min/Max`, `hidden`; `autoFocus` →\n * `data-xui-autofocus` (an opening dialog focuses it). */\nexport function ariaAttributes(a11y: Record<string, unknown> | null): Record<string, string> {\n const out: Record<string, string> = {}\n if (!a11y) return out\n const role = a11y.role\n if (role === `hidden`) out[`aria-hidden`] = `true`\n else if (typeof role === `string` && role !== `text` && role !== ``) out.role = role\n if (a11y.label !== undefined && a11y.label !== null && a11y.label !== ``) out[`aria-label`] = String(a11y.label)\n if (a11y.description !== undefined && a11y.description !== null && a11y.description !== ``) out[`aria-description`] = String(a11y.description)\n if (typeof a11y.level === `number` || (typeof a11y.level === `string` && a11y.level !== ``)) out[`aria-level`] = String(a11y.level)\n for (const [key, attr] of [[`expanded`, `aria-expanded`], [`selected`, `aria-selected`], [`pressed`, `aria-pressed`], [`checked`, `aria-checked`]] as const) {\n const v = a11y[key]\n if (typeof v === `boolean` || v === `mixed`) out[attr] = String(v)\n }\n if (a11y.current !== undefined && a11y.current !== null && a11y.current !== false && a11y.current !== ``) out[`aria-current`] = a11y.current === true ? `true` : String(a11y.current)\n for (const [key, attr] of [[`valueNow`, `aria-valuenow`], [`valueMin`, `aria-valuemin`], [`valueMax`, `aria-valuemax`]] as const) {\n const v = a11y[key]\n if (typeof v === `number` && Number.isFinite(v)) out[attr] = String(v)\n }\n if (a11y.hidden === true) out[`aria-hidden`] = `true`\n if (a11y.autoFocus === true) out[`data-xui-autofocus`] = ``\n return out\n}\n\nexport function bindTree<T extends { id: string; component: string; props: Record<string, unknown>; children: T[]; style?: Record<string, unknown>; visible?: unknown; slots?: Record<string, T>; recipe?: { macro: string; part: string; props: Record<string, unknown> }; on?: unknown; accessibility?: unknown; template?: unknown }>(node: T, ctx: ResolveContext, extensions?: readonly ExtensionDef[]): T | null {\n if (!resolveVisible(node.visible, ctx)) return null\n const out = { id: node.id, component: node.component, props: resolveNodeProps(node.component, node.props, ctx, extensions), children: [] as T[] } as unknown as T\n if (node.style) out.style = resolveValue(node.style, ctx) as Record<string, unknown>\n if (node.on) out.on = node.on\n if (node.accessibility) {\n // Contract §1/§6: accessibility (label, description and the macro\n // part's `$a11y` states) resolves like props; an empty result is dropped.\n const a11y = resolveAccessibility(node.accessibility, ctx)\n if (a11y) out.accessibility = a11y\n }\n for (const child of node.children) {\n const bound = bindTree(child, ctx, extensions)\n if (bound) out.children.push(bound)\n }\n if (node.slots) {\n // Row-scoped slots (Table cells) are templates the painter binds per\n // row (RowScope); they stay as they are.\n if (hasRowSlots(viewOf(extensions).components[node.component])) out.slots = node.slots\n else\n for (const [name, slot] of Object.entries(node.slots)) {\n const bound = bindTree(slot, ctx, extensions)\n if (bound) (out.slots ??= {} as Record<string, T>)[name] = bound\n }\n }\n if (node.template) out.template = node.template\n if (node.recipe) out.recipe = { ...node.recipe, props: resolveValue(node.recipe.props, ctx) as Record<string, unknown> }\n return out\n}\n",
|
|
8
8
|
"// VAPP-162 (docs/round-5-contract.md): the framework-free halves of the\n// round-5 natives every web painter (React, Solid and through it the\n// element) shares, so the two renderers cannot drift: the QrCode's module\n// path and its plate swap (§6), the QrScanner's distinct-value reporter\n// (§7), the Segmented count badge text (§3) and THE Button hold machine\n// (§9, fixtures/interactions-round1.json `buttonHold`).\n\nimport { luminance, parseColor, qrMatrix, QR_CODE, type QrMatrix } from \"@exponential_app/eui\"\nimport styleJson from \"../../catalog/style.json\" with { type: \"json\" }\n\n/** style.json `qrScanner` (the viewfinder geometry). */\nexport const QR_SCANNER = styleJson.qrScanner\n\n// ---------------------------------------------------------------------------\n// QrCode (§6)\n// ---------------------------------------------------------------------------\n\nexport interface QrPaint {\n /** The core's matrix (null = the empty plate). */\n matrix: QrMatrix | null\n /** The SVG viewBox edge in MODULES (n + 2 × quietZone); 0 without a matrix. */\n modules: number\n /** One path of every dark module run in module units (quiet zone\n * included), so `shape-rendering: crispEdges` snaps the edges to device\n * pixels while the outer size stays the exact `size`. */\n path: string\n /** The resolved colours after THE SWAP: the lighter fills the plate. */\n plate: string\n module: string\n}\n\n/** The QrCode paint of `value` at `level` (style.json `qrCode`): the core's\n * `qrMatrix`, never a platform QR library; of the two recipe colours the\n * lighter (relative luminance) is the plate, the darker the modules, so a\n * dark theme still scans. A colour the parser cannot read keeps its role. */\nexport function qrPaint(value: string, level: unknown, plateColour: string, moduleColour: string): QrPaint {\n const matrix = qrMatrix(value, level)\n const pc = parseColor(plateColour)\n const mc = parseColor(moduleColour)\n const swap = pc !== null && mc !== null && luminance(pc) < luminance(mc)\n const plate = swap ? moduleColour : plateColour\n const module = swap ? plateColour : moduleColour\n if (!matrix) return { matrix: null, modules: 0, path: ``, plate, module }\n const q = QR_CODE.quietZone\n let path = ``\n matrix.rows.forEach((row, y) => {\n let x = 0\n while (x < row.length) {\n if (row[x] !== `1`) {\n x += 1\n continue\n }\n let end = x\n while (end < row.length && row[end] === `1`) end += 1\n path += `M${x + q} ${y + q}h${end - x}v1h${x - end}z`\n x = end\n }\n })\n return { matrix, modules: matrix.size + 2 * q, path, plate, module }\n}\n\n// ---------------------------------------------------------------------------\n// QrScanner (§7): the host camera hook\n// ---------------------------------------------------------------------------\n\n/** THE web renderers' camera hook (the `qrScanner` host option; never\n * catalog/host.json): the host renders its live feed into `feed` (an empty\n * element filling the viewfinder; append a `<video>`), decodes codes of\n * `formats` (default `[\"qr\"]`) and calls `onValue` with every decoded\n * string; the renderer dispatches `scanned {value}` once per distinct\n * value. `start` returns the stop (called on unmount, on `disabled` and\n * when the formats change); returning `false` (or throwing) = no camera\n * (the placeholder shows). */\nexport interface QrScannerHost {\n start(feed: HTMLElement, formats: readonly string[], onValue: (value: string) => void): (() => void) | false | void\n}\n\n/** One reporter per mounted scanner: forwards a decoded value only when it\n * differs from the last one reported (a code held in view reports once). */\nexport function qrScanReporter(report: (value: string) => void): (value: string) => void {\n let last: string | null = null\n return (value: string) => {\n if (typeof value !== `string` || value === `` || value === last) return\n last = value\n report(value)\n }\n}\n\nexport const QR_CORNERS = [`tl`, `tr`, `bl`, `br`] as const\nexport type QrCorner = (typeof QR_CORNERS)[number]\n\n/** One corner bracket as an SVG path in its own cornerLength-px square\n * (placed flush in that corner of the viewfinder): two strokes of\n * cornerStroke px whose outer edge follows the viewfinder radius `radius`\n * (the stroke's centre line runs half a stroke inside). Draw it with\n * round caps and `overflow: visible`. */\nexport function qrCornerPath(corner: QrCorner, radius: number): string {\n const L = QR_SCANNER.cornerLength\n const h = QR_SCANNER.cornerStroke / 2\n const r = Math.max(0, Math.min(L - h, (Number.isFinite(radius) ? radius : 0) - h))\n const fx = (x: number) => (corner === `tr` || corner === `br` ? L - x : x)\n const fy = (y: number) => (corner === `bl` || corner === `br` ? L - y : y)\n const sweep = corner === `tl` || corner === `br` ? 1 : 0\n const n = (v: number) => Math.round(v * 100) / 100\n return `M${n(fx(h))} ${n(fy(L))}V${n(fy(h + r))}A${n(r)} ${n(r)} 0 0 ${sweep} ${n(fx(h + r))} ${n(fy(h))}H${n(fx(L))}`\n}\n\n/** The empty viewfinder's fill: the `feed` recipe colour at feedAlpha. */\nexport function qrFeedColour(colour: string): string {\n const c = parseColor(colour)\n if (!c) return `color-mix(in srgb, ${colour} ${QR_SCANNER.feedAlpha * 100}%, transparent)`\n return `rgba(${c.r}, ${c.g}, ${c.b}, ${Math.round(c.a * QR_SCANNER.feedAlpha * 1000) / 1000})`\n}\n\n/** The formats a scanner asks the host for (style: the catalog default). */\nexport function qrScanFormats(raw: unknown): string[] {\n const list = Array.isArray(raw) ? raw.filter((f): f is string => typeof f === `string` && f !== ``) : []\n return list.length ? list : [`qr`]\n}\n\n// ---------------------------------------------------------------------------\n// Segmented count badge (§3)\n// ---------------------------------------------------------------------------\n\n/** A `bar` item's badge text: the number, `99+` above 99; null (no badge)\n * at 0, unset or not a number. */\nexport function segmentedBadge(raw: unknown): string | null {\n const n = typeof raw === `number` ? raw : typeof raw === `string` && raw.trim() !== `` ? Number(raw) : NaN\n if (!Number.isFinite(n) || n <= 0) return null\n const whole = Math.floor(n)\n if (whole <= 0) return null\n return whole > 99 ? `99+` : String(whole)\n}\n\n// ---------------------------------------------------------------------------\n// Button hold (§9)\n// ---------------------------------------------------------------------------\n\n/** THE slop: how far (px) a held pointer may wander outside the box. */\nexport const HOLD_SLOP = 24\n\nexport type HoldEvent = `holdStart` | `holdEnd` | `holdCancel`\n\nexport interface HoldRect {\n left: number\n top: number\n right: number\n bottom: number\n}\n\n/** Whether (x, y) lies within the box grown by the slop on every side. */\nexport function withinSlop(rect: HoldRect, x: number, y: number, slop = HOLD_SLOP): boolean {\n return x >= rect.left - slop && x <= rect.right + slop && y >= rect.top - slop && y <= rect.bottom + slop\n}\n\n/** THE hold machine of a `hold: true` Button, framework-free. The painter\n * forwards its DOM events; `fire` gets the catalog event, `pressed` the\n * painted state. A press never fires `press` here (the painter skips its\n * click while `hold`). */\nexport class ButtonHold {\n /** `pointer`, the key that started the hold, or null when idle. */\n private by: string | null = null\n private pointerId: number | null = null\n\n constructor(\n private readonly fire: (event: HoldEvent) => void,\n private readonly pressed: (pressed: boolean) => void,\n private readonly disabled: () => boolean\n ) {}\n\n get active(): boolean {\n return this.by !== null\n }\n\n private start(by: string, pointerId: number | null = null) {\n if (this.by !== null || this.disabled()) return false\n this.by = by\n this.pointerId = pointerId\n this.pressed(true)\n this.fire(`holdStart`)\n return true\n }\n\n private finish(event: `holdEnd` | `holdCancel`) {\n if (this.by === null) return false\n this.by = null\n this.pointerId = null\n this.pressed(false)\n this.fire(event)\n return true\n }\n\n /** Pointer down (primary button): starts the hold; true = claim the\n * pointer (capture it, prevent the long-press / scroll defaults). */\n pointerDown(pointerId: number | null = null): boolean {\n return this.start(`pointer`, pointerId)\n }\n\n /** A move of the holding pointer: past the slop = the slide away. */\n pointerMove(rect: HoldRect, x: number, y: number, pointerId: number | null = null): void {\n if (this.by !== `pointer` || !this.samePointer(pointerId)) return\n if (!withinSlop(rect, x, y)) this.finish(`holdCancel`)\n }\n\n /** The holding pointer released: within the slop ends, past it cancels. */\n pointerUp(rect: HoldRect, x: number, y: number, pointerId: number | null = null): void {\n if (this.by !== `pointer` || !this.samePointer(pointerId)) return\n this.finish(withinSlop(rect, x, y) ? `holdEnd` : `holdCancel`)\n }\n\n pointerCancel(pointerId: number | null = null): void {\n if (this.by === `pointer` && this.samePointer(pointerId)) this.finish(`holdCancel`)\n }\n\n /** Key down: Space/Enter start (repeat ignored), Escape cancels. True =\n * the key was handled (prevent its default: no click, no scroll). */\n keyDown(key: string, repeat = false): boolean {\n if (key === `Escape`) return this.finish(`holdCancel`)\n if (key !== ` ` && key !== `Enter`) return false\n if (repeat || this.by !== null) return this.by !== null\n return this.start(key)\n }\n\n /** Key up of the key that started the hold ends it. */\n keyUp(key: string): boolean {\n if (this.by === null || this.by !== key) return key === ` ` || key === `Enter`\n return this.finish(`holdEnd`)\n }\n\n blur(): void {\n this.finish(`holdCancel`)\n }\n\n /** Unmount or `disabled` mid-hold: drop it silently. */\n reset(): void {\n if (this.by === null) return\n this.by = null\n this.pointerId = null\n this.pressed(false)\n }\n\n private samePointer(id: number | null) {\n return this.pointerId === null || id === null || id === this.pointerId\n }\n}\n",
|
|
9
|
-
"// VAPP-87: the structural CSS every surface carries (layer `xui-base`, the\n// lowest). It restates taffy's defaults on EVERY painted element — the three\n// \"CSS equals taffy\" rules of the VAPP-4 spike:\n// 1. `box-sizing: border-box; display: flex; flex-direction: row;\n// position: relative` on every node, `min-width` left at `auto`\n// (never `0` as a default: that broke 5/48 frames at 390);\n// 2. control chrome is paint or lives INSIDE the measured size (borders\n// start at 0 and only a recipe/style adds one, which the core also\n// counts as layout);\n// 3. `overflow: hidden` is emitted as `overflow: clip` (theme-css.ts).\n// Natives then add their own structure under `[data-xui-c=\"…\"]`; a theme\n// never needs to (recipes carry only visuals, sizes and spacing).\n\nimport { QR_SCANNER } from \"./round5\"\nimport { ANIMATION_NAMES, ANIMATION_PROPERTIES_CSS, RTL_MIRRORED_ICONS, SEARCH_LIST_FADE, SKELETON_OPACITY_HIGH, SKELETON_OPACITY_LOW, SKELETON_PULSE_MS, SKELETON_REDUCED_OPACITY, TEXT_SHIMMER, keyframesCss } from \"@exponential_app/eui\"\n\n/** EXP-1324: the Text `shimmer` (catalog/style.json `textShimmer`, shadcn's\n * `shimmer` utility): the glyphs clip a gradient of the text colour that\n * slides right → left; light mode fades the highlight, dark lifts it in\n * OKLCH (src/text-shimmer.ts is the same maths for the natives); rtl\n * reverses; reduce motion = plain text (REDUCED_EXTRA). */\nconst S = TEXT_SHIMMER\nconst SHIMMER_CSS = `@keyframes xui-shimmer{from{background-position:100% 0}to{background-position:0 0}}\n[data-xui-shimmer]{--_spread:${S.spreadPx}px;--_base:currentColor;--_highlight:oklch(from currentColor l c h / calc(alpha * ${S.lightAlphaFactor}));background-image:linear-gradient(calc(90deg + ${S.angleDeg}deg),var(--_base) calc(50% - var(--_spread)),color-mix(in oklab,var(--_highlight),var(--_base) 50%) calc(50% - var(--_spread) * .5),var(--_highlight) 50%,color-mix(in oklab,var(--_highlight),var(--_base) 50%) calc(50% + var(--_spread) * .5),var(--_base) calc(50% + var(--_spread)));background-repeat:no-repeat;background-size:calc(200% + var(--_spread) * 2) 100%;background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:xui-shimmer ${S.durationMs}ms linear infinite}\n[data-xui-mode=\"dark\"] [data-xui-shimmer]{--_highlight:oklch(from currentColor min(1, max(${S.highlightLightnessMin}, calc(l + ${S.highlightLightnessBoost}))) c h / min(1, calc(alpha + ${S.highlightAlphaBoost})))}\n[dir=\"rtl\"] [data-xui-shimmer]{animation-direction:reverse}`\n\n/** EXP-1259: under reduce motion nothing scales (a pressed button stays\n * put) and a placeholder holds still at its reduced opacity. */\nconst REDUCED_EXTRA = `.xui-surface [data-xui-shimmer]{animation:none !important;background-image:none !important;-webkit-text-fill-color:currentColor !important}.xui-surface [data-xui-c=\"Button\"].xui-el:active,.xui-surface [data-xui-c=\"Button\"][data-hold][data-xs~=\"pressed\"].xui-el{scale:none !important}.xui-surface .xui-QrScanner-scanLine{animation:none !important}.xui-surface [data-xui-c=\"Skeleton\"].xui-el:not([data-rows]),.xui-surface .xui-Skeleton-dot,.xui-surface .xui-Skeleton-bar{animation:none !important;opacity:${SKELETON_REDUCED_OPACITY} !important}`\n\n/** Round 2 §2: the `animation` key's keyframe sets (style.json\n * `animations`; the individual `translate`/`rotate`/`scale` properties\n * compose outside a node's own `transform`; opacity moves `--xui-a-opacity`,\n * which the node's `opacity` multiplies), the animated custom properties\n * registered so they interpolate (`ANIMATION_PROPERTIES_CSS`: that one and\n * the shimmer band's `--xui-band`), and the glyphs that mirror\n * in an rtl node (catalog/locale.json `rtlMirroredIcons`, by the element's\n * `dir`, so a node's own direction counts). */\nconst ROUND2_CSS = `${ANIMATION_NAMES.map(keyframesCss).join(`\\n`)}\n:is(${RTL_MIRRORED_ICONS.map((n) => `svg[data-icon=\"${n}\"]`).join(`,`)}):dir(rtl){scale:-1 1}`\n\nexport const BASE_CSS = `${ANIMATION_PROPERTIES_CSS}\n@layer xui-base{\n${ROUND2_CSS}\n.xui-surface{display:block;position:relative;font-family:var(--xui-font-sans);color:var(--xui-color-foreground);font-size:var(--xui-type-size-sm);line-height:var(--xui-type-lineHeight-sm);-webkit-font-smoothing:antialiased}\n.xui-surface *{box-sizing:border-box}\n.xui-container{container-type:inline-size;container-name:xui;width:100%;position:relative}\n:where([data-xui-part]){border:0 solid transparent}\n.xui-el{box-sizing:border-box;display:flex;flex-direction:row;position:relative;margin:0;padding:0;border:0 solid transparent;min-width:auto;min-height:auto;font:inherit;color:inherit;background:transparent;text-align:start;text-decoration:none;outline:none;appearance:none;-webkit-appearance:none}\nbutton:where([data-xui-part],.xui-calendar-nav,.xui-table-sort,.xui-carousel-nav){margin:0;padding:0;border:0 solid transparent;background:transparent;color:inherit;font:inherit;appearance:none;-webkit-appearance:none}\n.xui-el:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:1px}\n.xui-leaf{flex-direction:column}\n.xui-leaf>.xui-measured{flex-shrink:0}\n[data-xui-c=\"Text\"].xui-el{display:block;white-space:pre-wrap;overflow-wrap:anywhere}\n[data-xui-c=\"Text\"][data-lines=\"1\"].xui-el{white-space:nowrap;overflow:clip;text-overflow:ellipsis;min-width:0}\n[data-xui-c=\"Text\"][data-clamp].xui-el{display:-webkit-box;-webkit-box-orient:vertical;overflow:clip}\n[data-xui-c=\"Text\"][data-xui-align=\"start\"].xui-el{text-align:start}\n[data-xui-c=\"Text\"][data-xui-align=\"center\"].xui-el{text-align:center}\n[data-xui-c=\"Text\"][data-xui-align=\"end\"].xui-el{text-align:end}\n[data-xui-c=\"Button\"].xui-el,[data-xui-c=\"Toggle\"].xui-el,[data-xui-c=\"Link\"].xui-el{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer;user-select:none;flex-shrink:0;transition:background-color var(--xui-motion-fast) var(--xui-ease-standard,ease),color var(--xui-motion-fast) var(--xui-ease-standard,ease),opacity var(--xui-motion-fast) var(--xui-ease-standard,ease),border-color var(--xui-motion-fast) var(--xui-ease-standard,ease),scale var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n[data-xui-c=\"Button\"].xui-el:disabled,[data-xui-c=\"Toggle\"].xui-el:disabled{cursor:default;pointer-events:none}\n[data-xui-c=\"Link\"].xui-el{text-decoration:underline;text-underline-offset:3px}\n.xui-Button-icon,.xui-Button-spinner,.xui-Toggle-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n.xui-Button-icon>svg,.xui-Toggle-icon>svg,.xui-Button-spinner>svg,.xui-icon>svg{width:100%;height:100%}\n.xui-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Icon\"].xui-el{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Icon\"].xui-el>svg{width:100%;height:100%}\n[data-xui-c=\"Image\"].xui-el{overflow:clip}\n[data-xui-c=\"Image\"].xui-el>img{display:block;position:absolute;inset:0;width:100%;height:100%}\n.xui-image-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:24px;background:repeating-linear-gradient(45deg,color-mix(in srgb,currentColor 12%,transparent) 0 6px,color-mix(in srgb,currentColor 4%,transparent) 6px 12px);color:var(--xui-color-mutedForeground);font-size:var(--xui-type-size-xs)}\n[data-xui-c=\"Video\"].xui-el{overflow:clip}\n.xui-media-sizer{display:block;max-width:100%;height:0;flex:0 1 auto;visibility:hidden;pointer-events:none}\n[data-xui-c=\"Video\"].xui-el>video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}\n[data-xui-c=\"AudioPlayer\"].xui-el>audio{width:100%;display:block;flex-shrink:0}\n[data-xui-c=\"Avatar\"].xui-el{overflow:clip;flex-shrink:0;align-items:center;justify-content:center}\n.xui-Avatar-image{width:100%;height:100%;object-fit:cover;border-radius:inherit}\n.xui-Avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;text-transform:uppercase;user-select:none}\n[data-xui-c=\"List\"].xui-el{flex-direction:column;overflow:auto;min-height:0}\n[data-xui-c=\"List\"][data-r-direction=\"horizontal\"].xui-el{flex-direction:row}\n.xui-List-divider{flex-shrink:0;align-self:stretch;border-style:solid;border-width:0}\n.xui-list-window{position:relative;width:100%;flex-shrink:0}\n.xui-list-window[data-axis=\"horizontal\"]{width:auto;align-self:flex-start}\n.xui-list-item{position:absolute;left:0;right:0}\n.xui-list-window[data-axis=\"horizontal\"]>.xui-list-item{left:auto;right:auto;top:0}\n.xui-list-row{display:flex;flex-direction:column;position:relative}\n.xui-list-row[data-axis=\"horizontal\"]{flex-direction:row}\n.xui-list-gap{position:absolute;display:flex;pointer-events:none}\n.xui-list-gap[data-axis=\"vertical\"]{left:0;right:0;flex-direction:column;transform:translateY(-50%)}\n.xui-list-gap[data-axis=\"horizontal\"]{top:0;bottom:0;flex-direction:row;transform:translateX(-50%)}\n.xui-list-gap[data-axis=\"horizontal\"]:dir(rtl){transform:translateX(50%)}\n.xui-List-section{display:flex;flex-direction:row;align-items:center;flex-shrink:0}\n[data-xui-c=\"Resizable\"].xui-el{flex-direction:row;align-items:stretch;min-width:0;min-height:0}\n[data-xui-c=\"Resizable\"][data-orientation=\"vertical\"].xui-el{flex-direction:column}\n.xui-Resizable-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:clip}\n.xui-Resizable-handle{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 var(--xui-control-hairline);min-width:0;min-height:0;touch-action:none;user-select:none;outline:none;z-index:1}\n[data-orientation=\"horizontal\"]>.xui-Resizable-handle{cursor:col-resize}\n[data-orientation=\"vertical\"]>.xui-Resizable-handle{cursor:row-resize}\n.xui-Resizable-handle:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:1px}\n.xui-resize-hit{position:absolute}\n[data-orientation=\"horizontal\"]>.xui-Resizable-handle>.xui-resize-hit{top:0;bottom:0;left:50%;transform:translateX(-50%)}\n[data-orientation=\"vertical\"]>.xui-Resizable-handle>.xui-resize-hit{left:0;right:0;top:50%;transform:translateY(-50%)}\n.xui-Resizable-grip{flex:none;pointer-events:none}\n[data-xui-c=\"Carousel\"].xui-el{flex-direction:column;overflow:clip}\n.xui-carousel-track{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:var(--xui-spacing-sm)}\n.xui-carousel-track::-webkit-scrollbar{display:none}\n.xui-Carousel-page{flex:0 0 100%;scroll-snap-align:start;display:flex;flex-direction:column}\n.xui-carousel-dots{display:flex;justify-content:center;gap:var(--xui-spacing-xs);padding-top:var(--xui-spacing-sm)}\n.xui-Carousel-indicator{width:6px;height:6px;border-radius:9999px;background:var(--xui-color-border);padding:0;cursor:pointer}\n.xui-Carousel-indicator[data-xs~=\"selected\"]{background:var(--xui-color-primary)}\n[data-xui-c=\"Tabs\"].xui-el{flex-direction:column}\n.xui-Tabs-list{display:flex;flex-direction:row;align-self:flex-start;flex-shrink:0}\n.xui-Tabs-list[data-fill=\"true\"]{align-self:stretch}\n.xui-Tabs-tab{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--xui-spacing-xs);cursor:pointer;white-space:nowrap;flex:0 0 auto;position:relative}\n.xui-Tabs-list[data-fill=\"true\"]>.xui-Tabs-tab{flex:1 1 0}\n.xui-Tabs-tab-body{display:inline-flex;align-items:center;gap:var(--xui-spacing-xs)}\n.xui-Tabs-close,.xui-Tabs-new{display:inline-flex;align-items:center;justify-content:center;align-self:center;flex-shrink:0;cursor:pointer;padding:0;border:0}\n.xui-Tabs-close>svg{width:12px;height:12px}\n.xui-Tabs-new>svg{width:16px;height:16px}\n.xui-Tabs-indicator{position:absolute;left:0;right:0;bottom:0}\n.xui-Tabs-content{display:flex;flex-direction:column;outline:none}\n.xui-Tabs-content[hidden]{display:none}\n[data-xui-c=\"Segmented\"].xui-el{display:inline-flex;align-items:center;align-self:flex-start;flex-wrap:nowrap}\n[data-xui-c=\"Segmented\"][data-r-fill=\"true\"].xui-el,[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el{align-self:stretch}\n.xui-Segmented-item{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap;flex:0 0 auto;min-width:0}\n[data-xui-c=\"Segmented\"][data-r-fill=\"true\"].xui-el>.xui-Segmented-item,[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el>.xui-Segmented-item{flex:1 1 0}\n[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el{align-items:stretch;height:var(--xui-control-tabBar);width:100%}\n[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el>.xui-Segmented-item{flex-direction:column;gap:var(--xui-spacing-xxs);padding:var(--xui-spacing-xs) 0}\n[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el .xui-Segmented-label{font-size:var(--xui-type-size-xs);line-height:var(--xui-type-lineHeight-xs);white-space:nowrap}\n.xui-Segmented-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Segmented\"][data-r-orientation=\"vertical\"].xui-el{flex-direction:column;align-items:stretch}\n[data-xui-c=\"Segmented\"][data-r-orientation=\"vertical\"][data-r-variant=\"bar\"].xui-el{height:auto;width:auto;align-self:flex-start}\n[data-xui-c=\"Segmented\"][data-r-orientation=\"vertical\"].xui-el>.xui-Segmented-item{flex:0 0 auto}\n.xui-Segmented-icon{position:relative}\n.xui-Segmented-badge{position:absolute;top:0;left:100%;transform:translate(-50%,-50%);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1;font-variant-numeric:tabular-nums;pointer-events:none}\n[dir=\"rtl\"] .xui-Segmented-badge{left:auto;right:100%;transform:translate(50%,-50%)}\n.xui-Segmented-label{min-width:0;overflow:hidden;text-overflow:ellipsis}\n[data-xui-c=\"Accordion\"].xui-el{flex-direction:column}\n.xui-Accordion-item{display:flex;flex-direction:column}\n.xui-Accordion-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;text-align:start}\n.xui-Accordion-trigger>svg{transition:transform var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n.xui-Accordion-trigger[data-state=\"open\"]>svg{transform:rotate(180deg)}\n.xui-Accordion-content{display:flex;flex-direction:column;overflow:clip}\n.xui-Accordion-content[hidden]{display:none}\n.xui-Dialog-overlay,.xui-Drawer-overlay{position:fixed;inset:0;z-index:50}\n.xui-Dialog-content{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:51;display:flex;flex-direction:column;width:calc(100% - 32px);max-width:480px;max-height:calc(100% - 32px);overflow:auto;outline:none}\n.xui-Drawer-content{position:fixed;z-index:51;display:flex;flex-direction:column;overflow:auto;outline:none}\n.xui-Drawer-content[data-side=\"bottom\"]{left:0;right:0;bottom:0;max-height:85%}\n.xui-Drawer-content[data-side=\"top\"]{left:0;right:0;top:0;max-height:85%}\n.xui-Drawer-content[data-side=\"left\"]{left:0;top:0;bottom:0;width:min(85%,360px)}\n.xui-Drawer-content[data-side=\"right\"]{right:0;top:0;bottom:0;width:min(85%,360px)}\n.xui-Drawer-handle{align-self:center;width:36px;height:4px;border-radius:9999px;background:var(--xui-color-border);flex-shrink:0}\n.xui-overlay-head{display:flex;flex-direction:column;gap:var(--xui-spacing-xxs)}\n.xui-overlay-body{display:flex;flex-direction:column;gap:var(--xui-spacing-md);min-height:0}\n.xui-Dialog-footer,.xui-Drawer-footer{display:flex;flex-direction:row;justify-content:flex-end;flex-wrap:wrap}\n.xui-Dialog-close{position:absolute;top:var(--xui-spacing-sm);inset-inline-end:var(--xui-spacing-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}\n.xui-Dialog-close>svg{width:16px;height:16px}\n.xui-Popover-content,.xui-Tooltip-content,.xui-Menu-content,.xui-Select-content,.xui-TimePicker-list{z-index:52;display:flex;flex-direction:column;outline:none;max-height:var(--radix-popper-available-height,320px);overflow:auto}\n.xui-Tooltip-content{max-width:280px}\n.xui-Menu-item,.xui-Select-item,.xui-TimePicker-item{display:flex;align-items:center;cursor:pointer;user-select:none;white-space:nowrap;outline:none}\n.xui-Menu-item[data-disabled],.xui-Select-item[data-disabled],.xui-Select-item[aria-disabled=\"true\"]{pointer-events:none}\n.xui-Menu-item>svg,.xui-Select-item>svg{width:16px;height:16px;flex-shrink:0}\n.xui-Menu-separator{align-self:stretch;flex-shrink:0}\n.xui-Menu-label{display:flex;align-items:center}\n.xui-Menu-trigger{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0;cursor:pointer}\n[data-xui-overlay-root].xui-el{flex-direction:row;align-self:auto;align-items:flex-start}\n[data-xui-overlay-root=\"stretch\"].xui-el{align-items:stretch}\n[data-xui-overlay-root=\"none\"].xui-el{display:contents}\n.xui-trigger{display:flex;flex-direction:row;align-items:stretch;flex:1 1 auto;min-width:0}\n.xui-Tooltip-anchor{display:flex;flex-direction:row;flex:1 1 auto;min-width:0}\n.xui-field-column{display:flex;flex-direction:column;gap:var(--xui-spacing-xs);min-width:0}\n.xui-field-row{display:flex;flex-direction:row;align-items:flex-start;gap:var(--xui-spacing-sm);min-width:0}\n.xui-field-text{display:flex;flex-direction:column;gap:var(--xui-spacing-xxs);min-width:0}\n[data-xui-c=\"Input\"].xui-el,[data-xui-c=\"Textarea\"].xui-el,[data-xui-c=\"Select\"].xui-el,[data-xui-c=\"DatePicker\"].xui-el,[data-xui-c=\"DateRangePicker\"].xui-el,[data-xui-c=\"TimePicker\"].xui-el,[data-xui-c=\"NumberField\"].xui-el,[data-xui-c=\"ChipInput\"].xui-el,[data-xui-c=\"FileUpload\"].xui-el,[data-xui-c=\"Slider\"].xui-el,[data-xui-c=\"Radio\"].xui-el,[data-xui-c=\"Composer\"].xui-el{flex-direction:column;gap:var(--xui-spacing-xs);min-width:0}\n[data-xui-c=\"Checkbox\"].xui-el{flex-direction:row;align-items:flex-start;gap:var(--xui-spacing-sm);cursor:pointer}\n[data-xui-c=\"Checkbox\"].xui-el>.xui-field-text{flex:1 1 0%}\n.xui-Checkbox-box{margin-top:max(0px,calc((var(--xui-type-lineHeight-sm) - var(--xui-control-checkbox)) / 2))}\n[data-xui-c=\"Switch\"].xui-el{flex-direction:row;align-items:center;cursor:pointer}\n.xui-Switch-body{display:flex;flex-direction:column;gap:var(--xui-spacing-xxs);flex:1 1 0%;min-width:0}\n.xui-Input-field,.xui-Textarea-field{display:block;width:100%;min-width:0;margin:0;outline:none;appearance:none;border:0 solid transparent;background:transparent;color:inherit;font:inherit}\n.xui-Input-field::placeholder,.xui-Textarea-field::placeholder,.xui-Composer-field::placeholder{color:var(--xui-color-mutedForeground)}\n.xui-Textarea-field{resize:vertical;line-height:var(--xui-type-lineHeight-sm);padding-top:var(--xui-spacing-sm);padding-bottom:var(--xui-spacing-sm)}\n.xui-Input-label,.xui-Textarea-label,.xui-Select-label,.xui-DatePicker-label,.xui-DateRangePicker-label,.xui-TimePicker-label,.xui-NumberField-label,.xui-ChipInput-label,.xui-FileUpload-label,.xui-Slider-label,.xui-Radio-label,.xui-Checkbox-label,.xui-Switch-label{display:block;cursor:inherit}\n.xui-Select-trigger,.xui-DatePicker-trigger,.xui-DateRangePicker-trigger,.xui-TimePicker-trigger{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--xui-spacing-sm);width:100%;min-width:0;cursor:pointer;text-align:start;white-space:nowrap}\n.xui-Select-trigger>span,.xui-DatePicker-trigger>span,.xui-DateRangePicker-trigger>span,.xui-TimePicker-trigger>span{overflow:clip;text-overflow:ellipsis;min-width:0;flex:1 1 auto}\n.xui-Select-trigger>svg,.xui-DatePicker-trigger>svg,.xui-DateRangePicker-trigger>svg,.xui-TimePicker-trigger>svg{width:16px;height:16px;flex-shrink:0;opacity:.6}\n.xui-Select-search{display:flex;width:100%;min-width:0;margin:0 0 var(--xui-spacing-xs);padding:var(--xui-spacing-xs) var(--xui-spacing-sm);outline:none;border:0;border-bottom:1px solid var(--xui-color-border);background:transparent;color:inherit;font:inherit}\n.xui-Select-check{display:inline-flex;margin-inline-start:auto;flex-shrink:0}\n.xui-Checkbox-box{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-Checkbox-check{display:inline-flex;align-items:center;justify-content:center}\n.xui-Checkbox-check>svg{width:100%;height:100%}\n[data-xui-c=\"Radio\"][data-r-orientation=\"horizontal\"].xui-el>.xui-radio-items{flex-direction:row;flex-wrap:wrap}\n.xui-radio-items{display:flex;flex-direction:column;gap:inherit}\n.xui-radio-row{display:flex;align-items:center;gap:var(--xui-spacing-sm);cursor:pointer}\n.xui-Radio-item{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-ChoiceTiles-tile{display:flex;flex-direction:column;align-items:stretch;min-width:0;margin:0;font:inherit;color:inherit;text-align:start;appearance:none;-webkit-appearance:none;cursor:pointer;outline:none}\n.xui-ChoiceTiles-tile:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:1px}\n.xui-ChoiceTiles-tile:disabled{cursor:not-allowed}\n.xui-ChoiceTiles-picture{position:relative;display:flex;align-items:center;justify-content:center;align-self:stretch;aspect-ratio:1.6;flex-shrink:0;min-width:0;overflow:clip;color:var(--xui-color-mutedForeground)}\n.xui-ChoiceTiles-picture>img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n.xui-ChoiceTiles-picture>svg{width:var(--xui-control-iconMd);height:var(--xui-control-iconMd);opacity:.6}\n.xui-ChoiceTiles-label,.xui-ChoiceTiles-description{display:block;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}\n.xui-ChoiceTiles-error{grid-column:1/-1;display:flex;flex-direction:column;gap:2px}\n.xui-Switch-track{display:inline-flex;align-items:center;flex-shrink:0;padding:2px;cursor:pointer;transition:background-color var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n.xui-Switch-thumb{display:block;transition:transform var(--xui-motion-fast) var(--xui-ease-standard,ease);transform:translateX(0)}\n.xui-Switch-track[data-state=\"checked\"]>.xui-Switch-thumb{transform:translateX(var(--xui-switch-travel,12px))}\n.xui-Switch-track[data-state=\"checked\"]>.xui-Switch-thumb:dir(rtl){transform:translateX(calc(-1 * var(--xui-switch-travel,12px)))}\n.xui-slider-head{display:flex;justify-content:space-between;gap:var(--xui-spacing-sm)}\n.xui-Slider-track{position:relative;display:flex;align-items:center;width:100%;flex-grow:1;overflow:visible;touch-action:none;user-select:none}\n.xui-slider-root{display:flex;align-items:center;width:100%;min-height:var(--xui-control-slider);touch-action:none;user-select:none;position:relative}\n.xui-Slider-range{position:absolute;height:100%;left:0;border-radius:inherit}\n.xui-Slider-thumb{display:block;cursor:grab;outline:none}\n.xui-DatePicker-calendar,.xui-DateRangePicker-calendar{display:flex;flex-direction:column;gap:var(--xui-spacing-sm);padding:var(--xui-spacing-sm)}\n.xui-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:var(--xui-spacing-sm);font-weight:var(--xui-type-weight-medium)}\n.xui-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--xui-radius-sm);cursor:pointer;padding:0}\n.xui-calendar-nav:hover{background:var(--xui-color-accent)}\n.xui-calendar-nav>svg{width:16px;height:16px}\n.xui-calendar-grid{display:grid;grid-template-columns:repeat(7,32px);gap:2px}\n.xui-calendar-weekday{display:flex;align-items:center;justify-content:center;height:24px;font-size:var(--xui-type-size-xs);color:var(--xui-color-mutedForeground)}\n.xui-DatePicker-day,.xui-DateRangePicker-day{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--xui-radius-sm);cursor:pointer;padding:0;font-size:var(--xui-type-size-sm)}\n.xui-DatePicker-day:hover,.xui-DateRangePicker-day:hover{background:var(--xui-color-accent)}\n.xui-DatePicker-day[data-xs~=\"selected\"],.xui-DateRangePicker-day[data-xs~=\"selected\"]{background:var(--xui-color-primary);color:var(--xui-color-primaryForeground)}\n.xui-DatePicker-day[data-outside],.xui-DateRangePicker-day[data-outside]{opacity:.4}\n.xui-DatePicker-day:disabled,.xui-DateRangePicker-day:disabled{opacity:.3;cursor:default;pointer-events:none}\n.xui-Composer-field{display:block;width:100%;min-width:0;margin:0;padding:0;outline:none;border:0;background:transparent;color:inherit;font:inherit;resize:none;max-height:200px}\n.xui-composer-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--xui-spacing-xs)}\n.xui-Composer-attachment{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}\n.xui-Composer-send{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}\n.xui-Composer-send>svg,.xui-Composer-attachment>svg{width:16px;height:16px}\n.xui-Composer-send:disabled{opacity:.5;pointer-events:none}\n[data-xui-c=\"Ring\"].xui-el,[data-xui-c=\"Spinner\"].xui-el{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Ring\"].xui-el>svg,[data-xui-c=\"Spinner\"].xui-el>svg{width:100%;height:100%;display:block}\n.xui-Ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}\n[data-xui-c=\"VoiceWave\"].xui-el{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"VoiceWave\"].xui-el>svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;pointer-events:none}\n.xui-VoiceWave-child{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}\n.xui-VoiceWave-child[data-hidden]{visibility:hidden;pointer-events:none}\n[data-xui-c=\"QrCode\"].xui-el{flex-direction:column;align-items:center;flex-shrink:0}\n.xui-QrCode-plate{display:block;flex-shrink:0;overflow:hidden}\n.xui-QrCode-plate>svg{display:block;width:100%;height:100%}\n.xui-QrCode-label{text-align:center}\n[data-xui-c=\"QrScanner\"].xui-el{flex-direction:column;align-items:center}\n.xui-QrScanner-viewfinder{position:relative;display:block;width:100%;max-width:${QR_SCANNER.maxWidth}px;aspect-ratio:${QR_SCANNER.aspectRatio};flex-shrink:0;overflow:hidden;isolation:isolate}\n.xui-QrScanner-feed{position:absolute;inset:0;display:block;overflow:hidden}\n.xui-QrScanner-feed>video,.xui-QrScanner-feed>canvas,.xui-QrScanner-feed>img{display:block;width:100%;height:100%;object-fit:cover}\n.xui-QrScanner-corner{position:absolute;width:${QR_SCANNER.cornerLength}px;height:${QR_SCANNER.cornerLength}px;overflow:visible;pointer-events:none}\n.xui-QrScanner-corner[data-corner=\"tl\"]{top:0;left:0}.xui-QrScanner-corner[data-corner=\"tr\"]{top:0;right:0}.xui-QrScanner-corner[data-corner=\"bl\"]{bottom:0;left:0}.xui-QrScanner-corner[data-corner=\"br\"]{bottom:0;right:0}\n.xui-QrScanner-scanLine{position:absolute;left:${QR_SCANNER.scanLineInset}px;right:${QR_SCANNER.scanLineInset}px;height:${QR_SCANNER.scanLineHeight}px;top:calc(50% - ${QR_SCANNER.scanLineHeight / 2}px);border-radius:${QR_SCANNER.scanLineHeight / 2}px;pointer-events:none;animation:xui-qr-sweep ${QR_SCANNER.sweepMs}ms var(--xui-ease-standard,ease) infinite alternate}\n[data-xui-c=\"QrScanner\"][data-r-disabled=\"true\"].xui-el .xui-QrScanner-scanLine{animation:none}\n.xui-QrScanner-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--xui-spacing-xs);text-align:center;padding:var(--xui-spacing-md)}\n.xui-QrScanner-placeholderIcon{display:inline-flex;width:${QR_SCANNER.placeholderIconSize}px;height:${QR_SCANNER.placeholderIconSize}px;flex-shrink:0}\n.xui-QrScanner-placeholderIcon>svg{width:100%;height:100%}\n.xui-QrScanner-hint{text-align:center}\n@keyframes xui-qr-sweep{from{top:0}to{top:calc(100% - ${QR_SCANNER.scanLineHeight}px)}}\n[data-xui-c=\"Button\"][data-hold].xui-el{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n[data-xui-c=\"Button\"][data-hold][data-xs~=\"pressed\"].xui-el{scale:var(--xui-scale-press,1)}\n[data-xui-c=\"Spinner\"].xui-el>svg,.xui-Button-spinner>svg{animation:xui-spin 0.8s linear infinite}\n[data-xui-c=\"Skeleton\"].xui-el:not([data-rows]),.xui-Skeleton-dot,.xui-Skeleton-bar{animation:xui-skeleton ${SKELETON_PULSE_MS}ms ease-in-out infinite;opacity:${SKELETON_OPACITY_LOW};flex-shrink:0}\n[data-xui-c=\"Skeleton\"][data-rows].xui-el{display:flex;flex-direction:column;align-self:stretch;flex-shrink:0;background:none;border-radius:0}\n.xui-Skeleton-row{display:flex;flex-direction:row;align-items:center;flex-shrink:0}\n.xui-Skeleton-row+.xui-Skeleton-row{border-top:var(--xui-border-hairline) solid var(--xui-color-border)}\n.xui-Skeleton-dot{display:block}\n.xui-Skeleton-bar{display:block}\n.xui-Skeleton-bar[data-title]{flex-shrink:1;min-width:0}\n@keyframes xui-skeleton{0%,100%{opacity:${SKELETON_OPACITY_LOW}}50%{opacity:${SKELETON_OPACITY_HIGH}}}\n[data-xui-c=\"SearchList\"].xui-el{display:flex;flex-direction:column;overflow:hidden;min-width:0}\n.xui-SearchList-head,.xui-Menu-head{display:flex;flex-direction:row;align-items:center;flex-shrink:0}\n.xui-SearchList-search,.xui-Menu-search{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;align-self:stretch}\n.xui-SearchList-search>svg,.xui-Menu-search>svg{width:16px;height:16px;opacity:.6;flex-shrink:0}\n.xui-SearchList-search>input,.xui-Menu-search>input{flex:1 1 auto;min-width:0;height:100%;padding:0;border:0;outline:none;background:transparent;color:inherit;font:inherit}\n.xui-SearchList-count,.xui-Menu-count{flex-shrink:0;font-variant-numeric:tabular-nums}\n.xui-SearchList-body,.xui-Menu-body{display:flex;flex-direction:column;position:relative;flex-shrink:1;min-height:0}\n.xui-SearchList-list,.xui-Menu-list{display:flex;flex-direction:column;flex-shrink:1;min-height:0;overflow-y:auto}\n.xui-SearchList-item{display:flex;flex-direction:row;align-items:center;flex-shrink:0;cursor:pointer;user-select:none;white-space:nowrap}\n.xui-SearchList-item[aria-disabled=\"true\"]{pointer-events:none}\n.xui-SearchList-icon,.xui-SearchList-check{display:inline-flex;flex-shrink:0}\n.xui-SearchList-icon>svg,.xui-SearchList-check>svg{width:100%;height:100%}\n.xui-SearchList-identifier{flex-shrink:0}\n.xui-SearchList-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}\n.xui-SearchList-fade,.xui-Menu-fade{position:absolute;left:0;right:0;bottom:0;height:${SEARCH_LIST_FADE}px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--xui-color-popover)) !important}\n.xui-menu-search{display:flex;flex-direction:column;min-width:240px}\n.xui-menu-search .xui-Menu-item{flex-shrink:0}\n[data-xui-c=\"Markdown\"].xui-el{display:block;min-width:0;overflow-wrap:anywhere}\n[data-xui-c=\"Markdown\"][data-lines].xui-el{display:-webkit-box;-webkit-box-orient:vertical;overflow:clip}\n.xui-md>:first-child{margin-top:0}\n.xui-md>:last-child{margin-bottom:0}\n.xui-Markdown-paragraph{margin:0 0 var(--xui-spacing-sm)}\n.xui-Markdown-heading{margin:var(--xui-spacing-md) 0 var(--xui-spacing-xs);font-weight:var(--xui-type-weight-semibold);line-height:1.25}\n.xui-md ul,.xui-md ol{margin:0 0 var(--xui-spacing-sm);padding-inline-start:1.4em}\n.xui-md ul{list-style:disc}\n.xui-md ol{list-style:decimal}\n.xui-md li>ul,.xui-md li>ol{margin-bottom:0}\n.xui-Markdown-listItem{margin:0}\n.xui-md li[data-task]{list-style:none}\n.xui-Markdown-listItem>input[type=checkbox]{appearance:none;display:inline-grid;place-content:center;vertical-align:-3px;width:16px;height:16px;margin:0;border:1px solid var(--xui-color-input);border-radius:4px;background:var(--xui-color-card)}\n.xui-Markdown-listItem>input[type=checkbox]:checked{background:var(--xui-color-primary);border-color:var(--xui-color-primary)}\n.xui-Markdown-listItem>input[type=checkbox]:checked::before{content:\"\";width:14px;height:14px;background:var(--xui-color-primaryForeground);mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E\") center/contain no-repeat}\n.xui-Markdown-code{font-family:var(--xui-font-mono);font-size:.925em;padding:0 .3em;border-radius:4px;background:var(--xui-color-muted)}\n.xui-Markdown-codeBlock{display:block;font-family:var(--xui-font-mono);font-size:var(--xui-type-size-xs);white-space:pre;overflow:auto;padding:var(--xui-spacing-sm);margin:0 0 var(--xui-spacing-sm);border-radius:var(--xui-radius-sm);background:var(--xui-color-muted)}\n.xui-Markdown-quote{margin:0 0 var(--xui-spacing-sm);padding-inline-start:var(--xui-spacing-md);border-inline-start:2px solid var(--xui-color-border);color:var(--xui-color-mutedForeground)}\n.xui-Markdown-link{color:var(--xui-color-primary);text-decoration:underline;text-underline-offset:3px}\n.xui-Markdown-table{border-collapse:collapse;margin:0 0 var(--xui-spacing-sm);width:100%}\n.xui-Markdown-table th,.xui-Markdown-table td{border:1px solid var(--xui-color-border);padding:var(--xui-spacing-xs) var(--xui-spacing-sm);text-align:start}\n.xui-Markdown-image{height:160px;margin:0 0 var(--xui-spacing-sm);overflow:hidden}\n.xui-Markdown-image>img{display:block;width:100%;height:100%;object-fit:contain;object-position:0 0}\n.xui-Markdown-image>img:dir(rtl){object-position:100% 0}\n.xui-Markdown-imageAlt{color:var(--xui-color-mutedForeground)}\n[data-xui-c=\"Chart\"].xui-el{flex-direction:column;gap:var(--xui-spacing-xs);min-width:0}\n.xui-Chart-legend,.xui-Chart-title{flex-shrink:0}\n[data-xui-c=\"Chart\"].xui-el>svg{width:100%;display:block}\n.xui-Chart-legend{display:flex;flex-wrap:wrap;gap:var(--xui-spacing-sm);font-size:var(--xui-type-size-xs);color:var(--xui-color-mutedForeground)}\n.xui-Chart-legend>span{display:inline-flex;align-items:center;gap:var(--xui-spacing-xxs)}\n.xui-Chart-legend i{display:inline-block;width:8px;height:8px;border-radius:2px}\n.xui-Chart-title{font-weight:var(--xui-type-weight-medium)}\n[data-xui-c=\"TreeGuides\"].xui-el{flex-direction:row;align-self:stretch;flex-shrink:0}\n[data-xui-c=\"TreeGuides\"].xui-el{overflow:visible}\n.xui-tree-col{position:relative;align-self:stretch;flex-shrink:0;overflow:visible}\n.xui-tree-col>.xui-TreeGuides-line{position:absolute;background:currentColor;display:block;padding:0;margin:0;box-sizing:border-box}\n.xui-tree-col>.xui-TreeGuides-line[data-elbow]{background:none;border-style:solid;border-color:currentColor;border-top-width:0;border-right-width:0}\n[data-xui-c=\"Unknown\"].xui-el{flex-direction:column;gap:var(--xui-spacing-xxs)}\n[data-xui-c=\"Box\"][data-pressable=\"true\"].xui-el{cursor:pointer}\n.xui-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible}\n.xui-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n\n.xui-calendar-row{display:contents}\n.xui-calendar-cell{display:flex;align-items:center;justify-content:center}\n.xui-calendar-day-label{position:relative}\n.xui-DatePicker-day[data-today]>.xui-calendar-day-label,.xui-DateRangePicker-day[data-today]>.xui-calendar-day-label{text-decoration:underline;text-underline-offset:3px}\n.xui-DateRangePicker-day{position:relative}\n.xui-DateRangePicker-range{position:absolute;inset:0;border-radius:inherit}\n.xui-DateRangePicker-day[data-range]{background:var(--xui-color-accent)}\n.xui-calendar-nav{color:inherit}\n[data-xui-c=\"Form\"].xui-el{flex-direction:column}\n.xui-form-fields{display:contents;border:0;margin:0;padding:0;min-width:0}\n.xui-Form-summary{display:flex;flex-direction:column}\n.xui-form-summary-list{margin:0;padding-inline-start:1.2em}\n.xui-Input-error,.xui-Textarea-error,.xui-NumberField-error,.xui-ChipInput-error,.xui-FileUpload-error,.xui-Select-error,.xui-Checkbox-error,.xui-Switch-error,.xui-Radio-error,.xui-DatePicker-error,.xui-DateRangePicker-error,.xui-TimePicker-error{display:flex;flex-direction:column;gap:2px}\n[data-xui-numberfield]{display:flex;flex-direction:row;align-items:center;gap:var(--xui-spacing-xxs);min-width:0}\n.xui-NumberField-input{flex:1 1 auto;min-width:0;width:100%;border:0;outline:none;background:transparent;color:inherit;font:inherit;padding:0;text-align:start;font-variant-numeric:tabular-nums}\n.xui-NumberField-decrement,.xui-NumberField-increment,.xui-ChipInput-remove,.xui-FileUpload-remove,.xui-Toast-close,.xui-CodeBlock-copy{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-NumberField-decrement>svg,.xui-NumberField-increment>svg,.xui-ChipInput-remove>svg,.xui-FileUpload-remove>svg,.xui-Toast-close>svg,.xui-CodeBlock-copy>svg{width:16px;height:16px}\n.xui-NumberField-decrement:disabled,.xui-NumberField-increment:disabled{opacity:.4;pointer-events:none}\n.xui-NumberField-unit{flex-shrink:0}\n[data-xui-chipfield]{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;cursor:text}\n.xui-chip-list{display:contents;list-style:none;margin:0;padding:0}\n.xui-ChipInput-chip{display:inline-flex;align-items:center;flex-shrink:0;outline:none}\n.xui-ChipInput-input{flex:1 1 80px;min-width:80px;border:0;outline:none;background:transparent;color:inherit;font:inherit;padding:0;height:var(--xui-type-lineHeight-sm)}\n.xui-ChipInput-suggestions{display:flex;flex-direction:column;border:1px solid var(--xui-color-border);border-radius:var(--xui-radius-md);background:var(--xui-color-popover);color:var(--xui-color-popoverForeground);padding:var(--xui-spacing-xs);box-shadow:var(--xui-shadow-md)}\n.xui-ChipInput-suggestion{display:flex;align-items:center;padding:var(--xui-spacing-xs) var(--xui-spacing-sm);border-radius:var(--xui-radius-sm);cursor:pointer}\n.xui-ChipInput-suggestion[data-active]{background:var(--xui-color-accent);color:var(--xui-color-accentForeground)}\n.xui-FileUpload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;outline:none}\n.xui-FileUpload-dropzone[aria-disabled=\"true\"]{cursor:default}\n.xui-FileUpload-icon{display:inline-flex}\n.xui-FileUpload-icon>svg{width:100%;height:100%}\n.xui-FileUpload-title{font-weight:var(--xui-type-weight-medium)}\n.xui-file-list{display:flex;flex-direction:column;gap:var(--xui-spacing-xs);list-style:none;margin:0;padding:0}\n.xui-FileUpload-file{display:flex;flex-direction:row;align-items:center}\n.xui-FileUpload-fileIcon{display:inline-flex;flex-shrink:0;opacity:.7}\n.xui-FileUpload-fileIcon>svg{width:16px;height:16px}\n.xui-FileUpload-browse{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0;height:var(--xui-control-buttonSm)}\n.xui-FileUpload-fileName{flex:1 1 auto;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}\n[data-xui-c=\"CodeBlock\"].xui-el{flex-direction:column;min-width:0;overflow:clip}\n.xui-CodeBlock-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between}\n.xui-CodeBlock-copy>svg{width:12px;height:12px}\n.xui-codeblock-scroll{overflow:auto;min-width:0;outline:none}\n.xui-codeblock-scroll[data-max-lines]{max-height:calc(var(--xui-code-lines) * 1lh)}\n.xui-codeblock-pre{margin:0;padding:0;font:inherit;white-space:pre;tab-size:2;min-width:max-content}\n.xui-codeblock-scroll[data-wrap=\"true\"]>.xui-codeblock-pre{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}\n.xui-codeblock-pre>code{font:inherit;display:block}\n.xui-CodeBlock-line{display:flex;flex-direction:row}\n.xui-codeblock-text{flex:0 1 auto;min-width:0}\n.xui-CodeBlock-gutter{display:flex;flex-direction:row;justify-content:flex-end;flex-shrink:0;user-select:none}\n.xui-CodeBlock-lineNumber{display:block}\n[data-xui-c=\"Table\"].xui-el{flex-direction:column;min-width:0;overflow:auto}\n.xui-Table-header{display:flex;flex-direction:column}\n.xui-Table-header[data-sticky=\"true\"]{position:sticky;top:0;z-index:1}\n.xui-table-row,.xui-Table-row{display:grid;align-items:stretch;min-width:0}\n.xui-table-body{display:flex;flex-direction:column;position:relative}\n.xui-table-check{display:flex;align-items:center;justify-content:center;min-width:0}\n.xui-Table-headerCell,.xui-Table-cell{display:flex;flex-direction:row;align-items:center;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap;gap:var(--xui-spacing-xs)}\n.xui-Table-headerCell[data-r-align=\"end\"],.xui-Table-cell[data-r-align=\"end\"]{justify-content:flex-end;text-align:end}\n.xui-Table-headerCell[data-r-align=\"center\"],.xui-Table-cell[data-r-align=\"center\"]{justify-content:center;text-align:center}\n.xui-Table-cell[data-type=\"number\"]{font-variant-numeric:tabular-nums}\n.xui-Table-cell>svg{width:16px;height:16px}\n.xui-Table-row{outline:none}\n.xui-Table-row:focus-visible{box-shadow:inset 0 0 0 2px var(--xui-color-ring)}\n.xui-Table-row[tabindex]{cursor:pointer}\n.xui-table-sort{display:inline-flex;align-items:center;gap:var(--xui-spacing-xxs);padding:0;margin:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;min-width:0}\n.xui-Table-headerCell[data-r-align=\"end\"]>.xui-table-sort{flex-direction:row}\n.xui-Table-sortIcon{display:inline-flex;flex-shrink:0}\n.xui-Table-sortIcon>svg{width:100%;height:100%}\n.xui-Table-empty{display:flex;justify-content:center}\n.xui-table-badge{display:inline-flex;align-items:center;height:var(--xui-control-badge);padding:0 var(--xui-spacing-sm);border-radius:var(--xui-radius-full);background:var(--xui-color-secondary);color:var(--xui-color-secondaryForeground);font-size:var(--xui-type-size-xs)}\n.xui-chart-plot{position:relative;width:100%;min-width:0;flex:1 1 0%;min-height:0;overflow:visible}\n.xui-chart-svg{position:absolute;top:0;left:0;display:block;overflow:visible;outline:none}\n.xui-chart-svg:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:2px;border-radius:var(--xui-radius-sm)}\n.xui-Chart-grid{opacity:.7}\n.xui-Chart-tooltip{display:flex;flex-direction:column;gap:2px;z-index:2;min-width:120px;white-space:nowrap}\n.xui-chart-tip-row{display:inline-flex;align-items:center;gap:var(--xui-spacing-xxs)}\n.xui-chart-tip-row>i{display:inline-block;width:8px;height:8px;border-radius:2px}\n.xui-Chart-valueLabel{fill:currentColor}\n[data-xui-c=\"Chart\"][data-kind=\"sparkline\"].xui-el{gap:0}\n.xui-Image-fallback{display:flex;align-items:center;justify-content:center;position:absolute;inset:0}\n.xui-Image-fallback>svg{width:var(--xui-control-iconLg);height:var(--xui-control-iconLg)}\n[data-xui-c=\"Image\"][data-state=\"loading\"].xui-el{background:var(--xui-color-muted)}\n.xui-carousel-controls{display:flex;align-items:center;justify-content:center}\n.xui-carousel-controls>.xui-carousel-dots{padding-top:0}\n.xui-carousel-nav{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-carousel-nav:disabled{pointer-events:none}\n.xui-carousel-nav>svg{width:var(--xui-control-iconSm);height:var(--xui-control-iconSm)}\n.xui-menu-label{flex:1 1 auto;min-width:0}\n.xui-Menu-shortcut{margin-inline-start:auto;padding-inline-start:var(--xui-spacing-lg)}\n.xui-Menu-check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n.xui-Menu-check svg,.xui-Menu-submenuIndicator>svg{width:100%;height:100%}\n.xui-Menu-submenuIndicator{display:inline-flex;margin-inline-start:auto;flex-shrink:0}\n.xui-Select-searchbox{display:flex;align-items:center;gap:var(--xui-spacing-xs);padding-inline-start:var(--xui-spacing-sm)}\n.xui-Select-searchbox>svg{width:16px;height:16px;opacity:.6;flex-shrink:0}\n.xui-Select-searchbox>.xui-Select-search{margin:0;border-bottom:0;padding-inline-start:0}\n.xui-Select-listbox,.xui-TimePicker-listbox{display:flex;flex-direction:column;outline:none;overflow:auto;max-height:280px}\n.xui-Select-empty{display:flex}\n.xui-TimePicker-list{min-width:var(--radix-popover-trigger-width)}\n[data-xui-c=\"Toast\"].xui-el{flex-direction:row;align-items:flex-start;width:min(360px,calc(100vw - 32px));pointer-events:auto}\n.xui-Toast-icon{display:inline-flex;flex-shrink:0}\n.xui-Toast-icon>svg{width:100%;height:100%}\n.xui-toast-text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}\n.xui-Toast-action{display:inline-flex;align-items:center;flex-shrink:0;cursor:pointer;white-space:nowrap}\n.xui-toast-layer{position:fixed;bottom:var(--xui-spacing-lg);left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:var(--xui-spacing-sm);pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}\n.xui-toast-layer>:nth-last-child(n+4){display:none}\n.xui-Popover-content[data-open-on=\"hover\"]{pointer-events:auto}\n@keyframes xui-fade-out{to{opacity:0}}\n@keyframes xui-pop-in{from{opacity:0;scale:var(--xui-scale-popoverFrom,.96)}}\n@keyframes xui-pop-out{to{opacity:0}}\n@keyframes xui-slide-bottom-in{from{translate:0 100%}}\n@keyframes xui-slide-bottom-out{to{translate:0 100%}}\n@keyframes xui-slide-top-in{from{translate:0 -100%}}\n@keyframes xui-slide-top-out{to{translate:0 -100%}}\n@keyframes xui-slide-left-in{from{translate:-100% 0}}\n@keyframes xui-slide-left-out{to{translate:-100% 0}}\n@keyframes xui-slide-right-in{from{translate:100% 0}}\n@keyframes xui-slide-right-out{to{translate:100% 0}}\n@keyframes xui-toast-in{from{opacity:0;translate:0 12px}}\n@keyframes xui-accordion-open{from{height:0}to{height:var(--radix-accordion-content-height)}}\n@keyframes xui-accordion-close{from{height:var(--radix-accordion-content-height)}to{height:0}}\n.xui-Popover-content,.xui-Tooltip-content,.xui-Menu-content,.xui-Select-content,.xui-DatePicker-calendar,.xui-DateRangePicker-calendar,.xui-TimePicker-list{transform-origin:var(--radix-popper-transform-origin)}\n.xui-Popover-content[data-state=\"open\"],.xui-Tooltip-content[data-state$=\"open\"],.xui-Menu-content[data-state=\"open\"],.xui-Select-content[data-state=\"open\"],.xui-DatePicker-calendar[data-state=\"open\"],.xui-DateRangePicker-calendar[data-state=\"open\"],.xui-TimePicker-list[data-state=\"open\"],.xui-Dialog-content[data-state=\"open\"]{animation:xui-pop-in var(--xui-motion-standard) var(--xui-ease-decelerate,ease-out)}\n[data-xui-c=\"Button\"].xui-el:active:not(:disabled){scale:var(--xui-scale-press,1)}\n.xui-Popover-content[data-state=\"closed\"],.xui-Tooltip-content[data-state=\"closed\"],.xui-Menu-content[data-state=\"closed\"],.xui-Select-content[data-state=\"closed\"],.xui-DatePicker-calendar[data-state=\"closed\"],.xui-DateRangePicker-calendar[data-state=\"closed\"],.xui-TimePicker-list[data-state=\"closed\"],.xui-Dialog-content[data-state=\"closed\"]{animation:xui-pop-out var(--xui-motion-fast) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Dialog-overlay[data-state=\"open\"],.xui-Drawer-overlay[data-state=\"open\"]{animation:xui-fade-in var(--xui-motion-standard) var(--xui-ease-decelerate,ease-out)}\n.xui-Dialog-overlay[data-state=\"closed\"],.xui-Drawer-overlay[data-state=\"closed\"]{animation:xui-fade-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"bottom\"][data-state=\"open\"]{animation:xui-slide-bottom-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"bottom\"][data-state=\"closed\"]{animation:xui-slide-bottom-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"top\"][data-state=\"open\"]{animation:xui-slide-top-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"top\"][data-state=\"closed\"]{animation:xui-slide-top-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"left\"][data-state=\"open\"]{animation:xui-slide-left-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"left\"][data-state=\"closed\"]{animation:xui-slide-left-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"right\"][data-state=\"open\"]{animation:xui-slide-right-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"right\"][data-state=\"closed\"]{animation:xui-slide-right-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Accordion-content[data-state=\"open\"]{animation:xui-accordion-open var(--xui-motion-standard) var(--xui-ease-standard,ease)}\n.xui-Accordion-content[data-state=\"closed\"]{animation:xui-accordion-close var(--xui-motion-standard) var(--xui-ease-standard,ease)}\n.xui-Tabs-content[data-state=\"active\"]{animation:xui-fade-in var(--xui-motion-fast) var(--xui-ease-decelerate,ease-out)}\n[data-xui-c=\"Toast\"][data-state=\"open\"].xui-el{animation:xui-toast-in var(--xui-motion-standard) var(--xui-ease-decelerate,ease-out)}\n[data-xui-c=\"Toast\"][data-state=\"closed\"].xui-el{animation:xui-fade-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-accordion-title{display:inline-flex;align-items:baseline;gap:var(--xui-spacing-xs);min-width:0}\n.xui-Collapsible-chevron.xui-el{transition:transform var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n${SHIMMER_CSS}\n}\n@media (prefers-reduced-motion: reduce){@layer xui-base{.xui-surface *,.xui-surface *::before,.xui-surface *::after{animation-duration:0ms !important;animation-iteration-count:1 !important;transition-duration:0ms !important;scroll-behavior:auto !important}${REDUCED_EXTRA}}}\n.xui-surface[data-xui-motion=\"reduce\"] *,.xui-surface[data-xui-motion=\"reduce\"] *::after{animation-duration:0ms !important;animation-iteration-count:1 !important;transition-duration:0ms !important}\n${REDUCED_EXTRA.replace(/\\.xui-surface /g, `.xui-surface[data-xui-motion=\"reduce\"] `)}`\n",
|
|
9
|
+
"// VAPP-87: the structural CSS every surface carries (layer `xui-base`, the\n// lowest). It restates taffy's defaults on EVERY painted element — the three\n// \"CSS equals taffy\" rules of the VAPP-4 spike:\n// 1. `box-sizing: border-box; display: flex; flex-direction: row;\n// position: relative` on every node, `min-width` left at `auto`\n// (never `0` as a default: that broke 5/48 frames at 390);\n// 2. control chrome is paint or lives INSIDE the measured size (borders\n// start at 0 and only a recipe/style adds one, which the core also\n// counts as layout);\n// 3. `overflow: hidden` is emitted as `overflow: clip` (theme-css.ts).\n// Natives then add their own structure under `[data-xui-c=\"…\"]`; a theme\n// never needs to (recipes carry only visuals, sizes and spacing).\n\nimport { QR_SCANNER } from \"./round5\"\nimport { ANIMATION_NAMES, ANIMATION_PROPERTIES_CSS, RTL_MIRRORED_ICONS, SEARCH_LIST_FADE, SKELETON_OPACITY_HIGH, SKELETON_OPACITY_LOW, SKELETON_PULSE_MS, SKELETON_REDUCED_OPACITY, TEXT_SHIMMER, keyframesCss } from \"@exponential_app/eui\"\n\n/** EXP-1324: the Text `shimmer` (catalog/style.json `textShimmer`, shadcn's\n * `shimmer` utility): the glyphs clip a gradient of the text colour that\n * slides right → left; light mode fades the highlight, dark lifts it in\n * OKLCH (src/text-shimmer.ts is the same maths for the natives); rtl\n * reverses; reduce motion = plain text (REDUCED_EXTRA). */\nconst S = TEXT_SHIMMER\nconst SHIMMER_CSS = `@keyframes xui-shimmer{from{background-position:100% 0}to{background-position:0 0}}\n[data-xui-shimmer]{--_spread:${S.spreadPx}px;--_base:currentColor;--_highlight:oklch(from currentColor l c h / calc(alpha * ${S.lightAlphaFactor}));background-image:linear-gradient(calc(90deg + ${S.angleDeg}deg),var(--_base) calc(50% - var(--_spread)),color-mix(in oklab,var(--_highlight),var(--_base) 50%) calc(50% - var(--_spread) * .5),var(--_highlight) 50%,color-mix(in oklab,var(--_highlight),var(--_base) 50%) calc(50% + var(--_spread) * .5),var(--_base) calc(50% + var(--_spread)));background-repeat:no-repeat;background-size:calc(200% + var(--_spread) * 2) 100%;background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:xui-shimmer ${S.durationMs}ms linear infinite}\n[data-xui-mode=\"dark\"] [data-xui-shimmer]{--_highlight:oklch(from currentColor min(1, max(${S.highlightLightnessMin}, calc(l + ${S.highlightLightnessBoost}))) c h / min(1, calc(alpha + ${S.highlightAlphaBoost})))}\n[dir=\"rtl\"] [data-xui-shimmer]{animation-direction:reverse}`\n\n/** EXP-1259: under reduce motion nothing scales (a pressed button stays\n * put) and a placeholder holds still at its reduced opacity. */\nconst REDUCED_EXTRA = `.xui-surface [data-xui-shimmer]{animation:none !important;background-image:none !important;-webkit-text-fill-color:currentColor !important}.xui-surface [data-xui-c=\"Button\"].xui-el:active,.xui-surface [data-xui-c=\"Button\"][data-hold][data-xs~=\"pressed\"].xui-el{scale:none !important}.xui-surface .xui-QrScanner-scanLine{animation:none !important}.xui-surface [data-xui-c=\"Skeleton\"].xui-el:not([data-rows]),.xui-surface .xui-Skeleton-dot,.xui-surface .xui-Skeleton-bar{animation:none !important;opacity:${SKELETON_REDUCED_OPACITY} !important}`\n\n/** Round 2 §2: the `animation` key's keyframe sets (style.json\n * `animations`; the individual `translate`/`rotate`/`scale` properties\n * compose outside a node's own `transform`; opacity moves `--xui-a-opacity`,\n * which the node's `opacity` multiplies), the animated custom properties\n * registered so they interpolate (`ANIMATION_PROPERTIES_CSS`: that one and\n * the shimmer band's `--xui-band`), and the glyphs that mirror\n * in an rtl node (catalog/locale.json `rtlMirroredIcons`, by the element's\n * `dir`, so a node's own direction counts). */\nconst ROUND2_CSS = `${ANIMATION_NAMES.map(keyframesCss).join(`\\n`)}\n:is(${RTL_MIRRORED_ICONS.map((n) => `svg[data-icon=\"${n}\"]`).join(`,`)}):dir(rtl){scale:-1 1}`\n\nexport const BASE_CSS = `${ANIMATION_PROPERTIES_CSS}\n@layer xui-base{\n${ROUND2_CSS}\n.xui-surface{display:block;position:relative;font-family:var(--xui-font-sans);color:var(--xui-color-foreground);font-size:var(--xui-type-size-sm);line-height:var(--xui-type-lineHeight-sm);-webkit-font-smoothing:antialiased}\n.xui-surface *{box-sizing:border-box}\n.xui-container{container-type:inline-size;container-name:xui;width:100%;position:relative}\n:where([data-xui-part]){border:0 solid transparent}\n.xui-el{box-sizing:border-box;display:flex;flex-direction:row;position:relative;margin:0;padding:0;border:0 solid transparent;min-width:auto;min-height:auto;font:inherit;color:inherit;background:transparent;text-align:start;text-decoration:none;outline:none;appearance:none;-webkit-appearance:none}\nbutton:where([data-xui-part],.xui-calendar-nav,.xui-table-sort,.xui-carousel-nav){margin:0;padding:0;border:0 solid transparent;background:transparent;color:inherit;font:inherit;appearance:none;-webkit-appearance:none}\n.xui-el:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:1px}\n.xui-leaf{flex-direction:column}\n.xui-leaf>.xui-measured{flex-shrink:0}\n[data-xui-c=\"Text\"].xui-el{display:block;white-space:pre-wrap;overflow-wrap:anywhere}\n[data-xui-c=\"Text\"][data-lines=\"1\"].xui-el{white-space:nowrap;overflow:clip;text-overflow:ellipsis;min-width:0}\n[data-xui-c=\"Text\"][data-clamp].xui-el{display:-webkit-box;-webkit-box-orient:vertical;overflow:clip}\n[data-xui-c=\"Text\"][data-xui-align=\"start\"].xui-el{text-align:start}\n[data-xui-c=\"Text\"][data-xui-align=\"center\"].xui-el{text-align:center}\n[data-xui-c=\"Text\"][data-xui-align=\"end\"].xui-el{text-align:end}\n[data-xui-c=\"Button\"].xui-el,[data-xui-c=\"Toggle\"].xui-el,[data-xui-c=\"Link\"].xui-el{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer;user-select:none;flex-shrink:0;transition:background-color var(--xui-motion-fast) var(--xui-ease-standard,ease),color var(--xui-motion-fast) var(--xui-ease-standard,ease),opacity var(--xui-motion-fast) var(--xui-ease-standard,ease),border-color var(--xui-motion-fast) var(--xui-ease-standard,ease),scale var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n[data-xui-c=\"Button\"].xui-el:disabled,[data-xui-c=\"Toggle\"].xui-el:disabled{cursor:default;pointer-events:none}\n[data-xui-c=\"Link\"].xui-el{text-decoration:underline;text-underline-offset:3px}\n.xui-Button-icon,.xui-Button-spinner,.xui-Toggle-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n.xui-Button-icon>svg,.xui-Toggle-icon>svg,.xui-Button-spinner>svg,.xui-icon>svg{width:100%;height:100%}\n.xui-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Icon\"].xui-el{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Icon\"].xui-el>svg{width:100%;height:100%}\n[data-xui-c=\"Image\"].xui-el{overflow:clip}\n[data-xui-c=\"Image\"].xui-el>img{display:block;position:absolute;inset:0;width:100%;height:100%}\n.xui-image-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:24px;background:repeating-linear-gradient(45deg,color-mix(in srgb,currentColor 12%,transparent) 0 6px,color-mix(in srgb,currentColor 4%,transparent) 6px 12px);color:var(--xui-color-mutedForeground);font-size:var(--xui-type-size-xs)}\n[data-xui-c=\"Video\"].xui-el{overflow:clip}\n.xui-media-sizer{display:block;max-width:100%;height:0;flex:0 1 auto;visibility:hidden;pointer-events:none}\n[data-xui-c=\"Video\"].xui-el>video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}\n[data-xui-c=\"AudioPlayer\"].xui-el>audio{width:100%;display:block;flex-shrink:0}\n[data-xui-c=\"Avatar\"].xui-el{overflow:clip;flex-shrink:0;align-items:center;justify-content:center}\n.xui-Avatar-image{width:100%;height:100%;object-fit:cover;border-radius:inherit}\n.xui-Avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;text-transform:uppercase;user-select:none}\n[data-xui-c=\"List\"].xui-el{flex-direction:column;overflow:auto;min-height:0}\n[data-xui-c=\"List\"][data-r-direction=\"horizontal\"].xui-el{flex-direction:row}\n.xui-List-divider{flex-shrink:0;align-self:stretch;border-style:solid;border-width:0}\n.xui-list-window{position:relative;width:100%;flex-shrink:0}\n.xui-list-window[data-axis=\"horizontal\"]{width:auto;align-self:flex-start}\n.xui-list-item{position:absolute;left:0;right:0}\n.xui-list-window[data-axis=\"horizontal\"]>.xui-list-item{left:auto;right:auto;top:0}\n.xui-list-row{display:flex;flex-direction:column;position:relative}\n.xui-list-row[data-axis=\"horizontal\"]{flex-direction:row}\n.xui-list-gap{position:absolute;display:flex;pointer-events:none}\n.xui-list-gap[data-axis=\"vertical\"]{left:0;right:0;flex-direction:column;transform:translateY(-50%)}\n.xui-list-gap[data-axis=\"horizontal\"]{top:0;bottom:0;flex-direction:row;transform:translateX(-50%)}\n.xui-list-gap[data-axis=\"horizontal\"]:dir(rtl){transform:translateX(50%)}\n.xui-List-section{display:flex;flex-direction:row;align-items:center;flex-shrink:0}\n[data-xui-c=\"Resizable\"].xui-el{flex-direction:row;align-items:stretch;min-width:0;min-height:0}\n[data-xui-c=\"Resizable\"][data-orientation=\"vertical\"].xui-el{flex-direction:column}\n.xui-Resizable-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:clip}\n.xui-Resizable-handle{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 var(--xui-control-hairline);min-width:0;min-height:0;touch-action:none;user-select:none;outline:none;z-index:1}\n[data-orientation=\"horizontal\"]>.xui-Resizable-handle{cursor:col-resize}\n[data-orientation=\"vertical\"]>.xui-Resizable-handle{cursor:row-resize}\n.xui-Resizable-handle:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:1px}\n.xui-resize-hit{position:absolute}\n[data-orientation=\"horizontal\"]>.xui-Resizable-handle>.xui-resize-hit{top:0;bottom:0;left:50%;transform:translateX(-50%)}\n[data-orientation=\"vertical\"]>.xui-Resizable-handle>.xui-resize-hit{left:0;right:0;top:50%;transform:translateY(-50%)}\n.xui-Resizable-grip{flex:none;pointer-events:none}\n[data-xui-c=\"Carousel\"].xui-el{flex-direction:column;overflow:clip}\n.xui-carousel-track{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:var(--xui-spacing-sm)}\n.xui-carousel-track::-webkit-scrollbar{display:none}\n.xui-Carousel-page{flex:0 0 100%;scroll-snap-align:start;display:flex;flex-direction:column}\n.xui-carousel-dots{display:flex;justify-content:center;gap:var(--xui-spacing-xs);padding-top:var(--xui-spacing-sm)}\n.xui-Carousel-indicator{width:6px;height:6px;border-radius:9999px;background:var(--xui-color-border);padding:0;cursor:pointer}\n.xui-Carousel-indicator[data-xs~=\"selected\"]{background:var(--xui-color-primary)}\n.xui-carousel-stage{position:relative;display:flex;flex-direction:column;min-width:0}\n.xui-Carousel-counter{position:absolute;top:var(--xui-spacing-sm);inset-inline-start:var(--xui-spacing-sm);z-index:1;pointer-events:none;display:inline-flex;align-items:center;white-space:nowrap;font-variant-numeric:tabular-nums}\n.xui-Carousel-thumbnails{display:flex;flex-direction:row;justify-content:flex-start;flex-shrink:0;overflow-x:auto;scrollbar-width:none}\n.xui-Carousel-thumbnails::-webkit-scrollbar{display:none}\n.xui-Carousel-thumbnail{position:relative;flex:0 0 auto;overflow:hidden;cursor:pointer;padding:0;border-style:solid}\n.xui-carousel-thumb{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}\n[data-xui-c=\"Tabs\"].xui-el{flex-direction:column}\n.xui-Tabs-list{display:flex;flex-direction:row;align-self:flex-start;flex-shrink:0}\n.xui-Tabs-list[data-fill=\"true\"]{align-self:stretch}\n.xui-Tabs-tab{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--xui-spacing-xs);cursor:pointer;white-space:nowrap;flex:0 0 auto;position:relative}\n.xui-Tabs-list[data-fill=\"true\"]>.xui-Tabs-tab{flex:1 1 0}\n.xui-Tabs-tab-body{display:inline-flex;align-items:center;gap:var(--xui-spacing-xs)}\n.xui-Tabs-close,.xui-Tabs-new{display:inline-flex;align-items:center;justify-content:center;align-self:center;flex-shrink:0;cursor:pointer;padding:0;border:0}\n.xui-Tabs-close>svg{width:12px;height:12px}\n.xui-Tabs-new>svg{width:16px;height:16px}\n.xui-Tabs-indicator{position:absolute;left:0;right:0;bottom:0}\n.xui-Tabs-content{display:flex;flex-direction:column;outline:none}\n.xui-Tabs-content[hidden]{display:none}\n[data-xui-c=\"Segmented\"].xui-el{display:inline-flex;align-items:center;align-self:flex-start;flex-wrap:nowrap}\n[data-xui-c=\"Segmented\"][data-r-fill=\"true\"].xui-el,[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el{align-self:stretch}\n.xui-Segmented-item{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap;flex:0 0 auto;min-width:0}\n[data-xui-c=\"Segmented\"][data-r-fill=\"true\"].xui-el>.xui-Segmented-item,[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el>.xui-Segmented-item{flex:1 1 0}\n[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el{align-items:stretch;height:var(--xui-control-tabBar);width:100%}\n[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el>.xui-Segmented-item{flex-direction:column;gap:var(--xui-spacing-xxs);padding:var(--xui-spacing-xs) 0}\n[data-xui-c=\"Segmented\"][data-r-variant=\"bar\"].xui-el .xui-Segmented-label{font-size:var(--xui-type-size-xs);line-height:var(--xui-type-lineHeight-xs);white-space:nowrap}\n.xui-Segmented-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Segmented\"][data-r-orientation=\"vertical\"].xui-el{flex-direction:column;align-items:stretch}\n[data-xui-c=\"Segmented\"][data-r-orientation=\"vertical\"][data-r-variant=\"bar\"].xui-el{height:auto;width:auto;align-self:flex-start}\n[data-xui-c=\"Segmented\"][data-r-orientation=\"vertical\"].xui-el>.xui-Segmented-item{flex:0 0 auto}\n.xui-Segmented-icon{position:relative}\n.xui-Segmented-badge{position:absolute;top:0;left:100%;transform:translate(-50%,-50%);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1;font-variant-numeric:tabular-nums;pointer-events:none}\n[dir=\"rtl\"] .xui-Segmented-badge{left:auto;right:100%;transform:translate(50%,-50%)}\n.xui-Segmented-label{min-width:0;overflow:hidden;text-overflow:ellipsis}\n[data-xui-c=\"Accordion\"].xui-el{flex-direction:column}\n.xui-Accordion-item{display:flex;flex-direction:column}\n.xui-Accordion-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;text-align:start}\n.xui-Accordion-trigger>svg{transition:transform var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n.xui-Accordion-trigger[data-state=\"open\"]>svg{transform:rotate(180deg)}\n.xui-Accordion-content{display:flex;flex-direction:column;overflow:clip}\n.xui-Accordion-content[hidden]{display:none}\n.xui-Dialog-overlay,.xui-Drawer-overlay{position:fixed;inset:0;z-index:50}\n.xui-Dialog-content{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:51;display:flex;flex-direction:column;width:calc(100% - 32px);max-width:480px;max-height:calc(100% - 32px);overflow:auto;outline:none}\n.xui-Drawer-content{position:fixed;z-index:51;display:flex;flex-direction:column;overflow:auto;outline:none}\n.xui-Drawer-content[data-side=\"bottom\"]{left:0;right:0;bottom:0;max-height:85%}\n.xui-Drawer-content[data-side=\"top\"]{left:0;right:0;top:0;max-height:85%}\n.xui-Drawer-content[data-side=\"left\"]{left:0;top:0;bottom:0;width:min(85%,360px)}\n.xui-Drawer-content[data-side=\"right\"]{right:0;top:0;bottom:0;width:min(85%,360px)}\n.xui-Drawer-handle{align-self:center;width:36px;height:4px;border-radius:9999px;background:var(--xui-color-border);flex-shrink:0}\n.xui-overlay-head{display:flex;flex-direction:column;gap:var(--xui-spacing-xxs)}\n.xui-overlay-body{display:flex;flex-direction:column;gap:var(--xui-spacing-md);min-height:0}\n.xui-Dialog-footer,.xui-Drawer-footer{display:flex;flex-direction:row;justify-content:flex-end;flex-wrap:wrap}\n.xui-Dialog-close{position:absolute;top:var(--xui-spacing-sm);inset-inline-end:var(--xui-spacing-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}\n.xui-Dialog-close>svg{width:16px;height:16px}\n.xui-Popover-content,.xui-Tooltip-content,.xui-Menu-content,.xui-Select-content,.xui-TimePicker-list{z-index:52;display:flex;flex-direction:column;outline:none;max-height:var(--radix-popper-available-height,320px);overflow:auto}\n.xui-Tooltip-content{max-width:280px}\n.xui-Menu-item,.xui-Select-item,.xui-TimePicker-item{display:flex;align-items:center;cursor:pointer;user-select:none;white-space:nowrap;outline:none}\n.xui-Menu-item[data-disabled],.xui-Select-item[data-disabled],.xui-Select-item[aria-disabled=\"true\"]{pointer-events:none}\n.xui-Menu-item>svg,.xui-Select-item>svg{width:16px;height:16px;flex-shrink:0}\n.xui-Menu-separator{align-self:stretch;flex-shrink:0}\n.xui-Menu-label{display:flex;align-items:center}\n.xui-Menu-trigger{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0;cursor:pointer}\n[data-xui-overlay-root].xui-el{flex-direction:row;align-self:auto;align-items:flex-start}\n[data-xui-overlay-root=\"stretch\"].xui-el{align-items:stretch}\n[data-xui-overlay-root=\"none\"].xui-el{display:contents}\n.xui-trigger{display:flex;flex-direction:row;align-items:stretch;flex:1 1 auto;min-width:0}\n.xui-Tooltip-anchor{display:flex;flex-direction:row;flex:1 1 auto;min-width:0}\n.xui-field-column{display:flex;flex-direction:column;gap:var(--xui-spacing-xs);min-width:0}\n.xui-field-row{display:flex;flex-direction:row;align-items:flex-start;gap:var(--xui-spacing-sm);min-width:0}\n.xui-field-text{display:flex;flex-direction:column;gap:var(--xui-spacing-xxs);min-width:0}\n[data-xui-c=\"Input\"].xui-el,[data-xui-c=\"Textarea\"].xui-el,[data-xui-c=\"Select\"].xui-el,[data-xui-c=\"DatePicker\"].xui-el,[data-xui-c=\"DateRangePicker\"].xui-el,[data-xui-c=\"TimePicker\"].xui-el,[data-xui-c=\"NumberField\"].xui-el,[data-xui-c=\"ChipInput\"].xui-el,[data-xui-c=\"FileUpload\"].xui-el,[data-xui-c=\"Slider\"].xui-el,[data-xui-c=\"Radio\"].xui-el,[data-xui-c=\"Composer\"].xui-el{flex-direction:column;gap:var(--xui-spacing-xs);min-width:0}\n[data-xui-c=\"Checkbox\"].xui-el{flex-direction:row;align-items:flex-start;gap:var(--xui-spacing-sm);cursor:pointer}\n[data-xui-c=\"Checkbox\"].xui-el>.xui-field-text{flex:1 1 0%}\n.xui-Checkbox-box{margin-top:max(0px,calc((var(--xui-type-lineHeight-sm) - var(--xui-control-checkbox)) / 2))}\n[data-xui-c=\"Switch\"].xui-el{flex-direction:row;align-items:center;cursor:pointer}\n.xui-Switch-body{display:flex;flex-direction:column;gap:var(--xui-spacing-xxs);flex:1 1 0%;min-width:0}\n.xui-Input-field,.xui-Textarea-field{display:block;width:100%;min-width:0;margin:0;outline:none;appearance:none;border:0 solid transparent;background:transparent;color:inherit;font:inherit}\n.xui-Input-field::placeholder,.xui-Textarea-field::placeholder,.xui-Composer-field::placeholder{color:var(--xui-color-mutedForeground)}\n.xui-Textarea-field{resize:vertical;line-height:var(--xui-type-lineHeight-sm);padding-top:var(--xui-spacing-sm);padding-bottom:var(--xui-spacing-sm)}\n.xui-Input-label,.xui-Textarea-label,.xui-Select-label,.xui-DatePicker-label,.xui-DateRangePicker-label,.xui-TimePicker-label,.xui-NumberField-label,.xui-ChipInput-label,.xui-FileUpload-label,.xui-Slider-label,.xui-Radio-label,.xui-Checkbox-label,.xui-Switch-label{display:block;cursor:inherit}\n.xui-Select-trigger,.xui-DatePicker-trigger,.xui-DateRangePicker-trigger,.xui-TimePicker-trigger{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--xui-spacing-sm);width:100%;min-width:0;cursor:pointer;text-align:start;white-space:nowrap}\n.xui-Select-trigger>span,.xui-DatePicker-trigger>span,.xui-DateRangePicker-trigger>span,.xui-TimePicker-trigger>span{overflow:clip;text-overflow:ellipsis;min-width:0;flex:1 1 auto}\n.xui-Select-trigger>svg,.xui-DatePicker-trigger>svg,.xui-DateRangePicker-trigger>svg,.xui-TimePicker-trigger>svg{width:16px;height:16px;flex-shrink:0;opacity:.6}\n.xui-Select-search{display:flex;width:100%;min-width:0;margin:0 0 var(--xui-spacing-xs);padding:var(--xui-spacing-xs) var(--xui-spacing-sm);outline:none;border:0;border-bottom:1px solid var(--xui-color-border);background:transparent;color:inherit;font:inherit}\n.xui-Select-check{display:inline-flex;margin-inline-start:auto;flex-shrink:0}\n.xui-Checkbox-box{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-Checkbox-check{display:inline-flex;align-items:center;justify-content:center}\n.xui-Checkbox-check>svg{width:100%;height:100%}\n[data-xui-c=\"Radio\"][data-r-orientation=\"horizontal\"].xui-el>.xui-radio-items{flex-direction:row;flex-wrap:wrap}\n.xui-radio-items{display:flex;flex-direction:column;gap:inherit}\n.xui-radio-row{display:flex;align-items:center;gap:var(--xui-spacing-sm);cursor:pointer}\n.xui-Radio-item{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-ChoiceTiles-tile{display:flex;flex-direction:column;align-items:stretch;min-width:0;margin:0;font:inherit;color:inherit;text-align:start;appearance:none;-webkit-appearance:none;cursor:pointer;outline:none}\n.xui-ChoiceTiles-tile:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:1px}\n.xui-ChoiceTiles-tile:disabled{cursor:not-allowed}\n.xui-ChoiceTiles-picture{position:relative;display:flex;align-items:center;justify-content:center;align-self:stretch;aspect-ratio:1.6;flex-shrink:0;min-width:0;overflow:clip;color:var(--xui-color-mutedForeground)}\n.xui-ChoiceTiles-picture>img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n.xui-ChoiceTiles-picture>svg{width:var(--xui-control-iconMd);height:var(--xui-control-iconMd);opacity:.6}\n.xui-ChoiceTiles-label,.xui-ChoiceTiles-description{display:block;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}\n.xui-ChoiceTiles-error{grid-column:1/-1;display:flex;flex-direction:column;gap:2px}\n.xui-Switch-track{display:inline-flex;align-items:center;flex-shrink:0;padding:2px;cursor:pointer;transition:background-color var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n.xui-Switch-thumb{display:block;transition:transform var(--xui-motion-fast) var(--xui-ease-standard,ease);transform:translateX(0)}\n.xui-Switch-track[data-state=\"checked\"]>.xui-Switch-thumb{transform:translateX(var(--xui-switch-travel,12px))}\n.xui-Switch-track[data-state=\"checked\"]>.xui-Switch-thumb:dir(rtl){transform:translateX(calc(-1 * var(--xui-switch-travel,12px)))}\n.xui-slider-head{display:flex;justify-content:space-between;gap:var(--xui-spacing-sm)}\n.xui-Slider-track{position:relative;display:flex;align-items:center;width:100%;flex-grow:1;overflow:visible;touch-action:none;user-select:none}\n.xui-slider-root{display:flex;align-items:center;width:100%;min-height:var(--xui-control-slider);touch-action:none;user-select:none;position:relative}\n.xui-Slider-range{position:absolute;height:100%;left:0;border-radius:inherit}\n.xui-Slider-thumb{display:block;cursor:grab;outline:none}\n.xui-DatePicker-calendar,.xui-DateRangePicker-calendar{display:flex;flex-direction:column;gap:var(--xui-spacing-sm);padding:var(--xui-spacing-sm)}\n.xui-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:var(--xui-spacing-sm);font-weight:var(--xui-type-weight-medium)}\n.xui-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--xui-radius-sm);cursor:pointer;padding:0}\n.xui-calendar-nav:hover{background:var(--xui-color-accent)}\n.xui-calendar-nav>svg{width:16px;height:16px}\n.xui-calendar-grid{display:grid;grid-template-columns:repeat(7,32px);gap:2px}\n.xui-calendar-weekday{display:flex;align-items:center;justify-content:center;height:24px;font-size:var(--xui-type-size-xs);color:var(--xui-color-mutedForeground)}\n.xui-DatePicker-day,.xui-DateRangePicker-day{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--xui-radius-sm);cursor:pointer;padding:0;font-size:var(--xui-type-size-sm)}\n.xui-DatePicker-day:hover,.xui-DateRangePicker-day:hover{background:var(--xui-color-accent)}\n.xui-DatePicker-day[data-xs~=\"selected\"],.xui-DateRangePicker-day[data-xs~=\"selected\"]{background:var(--xui-color-primary);color:var(--xui-color-primaryForeground)}\n.xui-DatePicker-day[data-outside],.xui-DateRangePicker-day[data-outside]{opacity:.4}\n.xui-DatePicker-day:disabled,.xui-DateRangePicker-day:disabled{opacity:.3;cursor:default;pointer-events:none}\n.xui-Composer-field{display:block;width:100%;min-width:0;margin:0;padding:0;outline:none;border:0;background:transparent;color:inherit;font:inherit;resize:none;max-height:200px}\n.xui-composer-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--xui-spacing-xs)}\n.xui-Composer-attachment{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}\n.xui-Composer-send{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}\n.xui-Composer-send>svg,.xui-Composer-attachment>svg{width:16px;height:16px}\n.xui-Composer-send:disabled{opacity:.5;pointer-events:none}\n[data-xui-c=\"Ring\"].xui-el,[data-xui-c=\"Spinner\"].xui-el{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"Ring\"].xui-el>svg,[data-xui-c=\"Spinner\"].xui-el>svg{width:100%;height:100%;display:block}\n.xui-Ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}\n[data-xui-c=\"VoiceWave\"].xui-el{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n[data-xui-c=\"VoiceWave\"].xui-el>svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;pointer-events:none}\n.xui-VoiceWave-child{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}\n.xui-VoiceWave-child[data-hidden]{visibility:hidden;pointer-events:none}\n[data-xui-c=\"QrCode\"].xui-el{flex-direction:column;align-items:center;flex-shrink:0}\n.xui-QrCode-plate{display:block;flex-shrink:0;overflow:hidden}\n.xui-QrCode-plate>svg{display:block;width:100%;height:100%}\n.xui-QrCode-label{text-align:center}\n[data-xui-c=\"QrScanner\"].xui-el{flex-direction:column;align-items:center}\n.xui-QrScanner-viewfinder{position:relative;display:block;width:100%;max-width:${QR_SCANNER.maxWidth}px;aspect-ratio:${QR_SCANNER.aspectRatio};flex-shrink:0;overflow:hidden;isolation:isolate}\n.xui-QrScanner-feed{position:absolute;inset:0;display:block;overflow:hidden}\n.xui-QrScanner-feed>video,.xui-QrScanner-feed>canvas,.xui-QrScanner-feed>img{display:block;width:100%;height:100%;object-fit:cover}\n.xui-QrScanner-corner{position:absolute;width:${QR_SCANNER.cornerLength}px;height:${QR_SCANNER.cornerLength}px;overflow:visible;pointer-events:none}\n.xui-QrScanner-corner[data-corner=\"tl\"]{top:0;left:0}.xui-QrScanner-corner[data-corner=\"tr\"]{top:0;right:0}.xui-QrScanner-corner[data-corner=\"bl\"]{bottom:0;left:0}.xui-QrScanner-corner[data-corner=\"br\"]{bottom:0;right:0}\n.xui-QrScanner-scanLine{position:absolute;left:${QR_SCANNER.scanLineInset}px;right:${QR_SCANNER.scanLineInset}px;height:${QR_SCANNER.scanLineHeight}px;top:calc(50% - ${QR_SCANNER.scanLineHeight / 2}px);border-radius:${QR_SCANNER.scanLineHeight / 2}px;pointer-events:none;animation:xui-qr-sweep ${QR_SCANNER.sweepMs}ms var(--xui-ease-standard,ease) infinite alternate}\n[data-xui-c=\"QrScanner\"][data-r-disabled=\"true\"].xui-el .xui-QrScanner-scanLine{animation:none}\n.xui-QrScanner-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--xui-spacing-xs);text-align:center;padding:var(--xui-spacing-md)}\n.xui-QrScanner-placeholderIcon{display:inline-flex;width:${QR_SCANNER.placeholderIconSize}px;height:${QR_SCANNER.placeholderIconSize}px;flex-shrink:0}\n.xui-QrScanner-placeholderIcon>svg{width:100%;height:100%}\n.xui-QrScanner-hint{text-align:center}\n@keyframes xui-qr-sweep{from{top:0}to{top:calc(100% - ${QR_SCANNER.scanLineHeight}px)}}\n[data-xui-c=\"Button\"][data-hold].xui-el{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n[data-xui-c=\"Button\"][data-hold][data-xs~=\"pressed\"].xui-el{scale:var(--xui-scale-press,1)}\n[data-xui-c=\"Spinner\"].xui-el>svg,.xui-Button-spinner>svg{animation:xui-spin 0.8s linear infinite}\n[data-xui-c=\"Skeleton\"].xui-el:not([data-rows]),.xui-Skeleton-dot,.xui-Skeleton-bar{animation:xui-skeleton ${SKELETON_PULSE_MS}ms ease-in-out infinite;opacity:${SKELETON_OPACITY_LOW};flex-shrink:0}\n[data-xui-c=\"Skeleton\"][data-rows].xui-el{display:flex;flex-direction:column;align-self:stretch;flex-shrink:0;background:none;border-radius:0}\n.xui-Skeleton-row{display:flex;flex-direction:row;align-items:center;flex-shrink:0}\n.xui-Skeleton-row+.xui-Skeleton-row{border-top:var(--xui-border-hairline) solid var(--xui-color-border)}\n.xui-Skeleton-dot{display:block}\n.xui-Skeleton-bar{display:block}\n.xui-Skeleton-bar[data-title]{flex-shrink:1;min-width:0}\n@keyframes xui-skeleton{0%,100%{opacity:${SKELETON_OPACITY_LOW}}50%{opacity:${SKELETON_OPACITY_HIGH}}}\n[data-xui-c=\"SearchList\"].xui-el{display:flex;flex-direction:column;overflow:hidden;min-width:0}\n.xui-SearchList-head,.xui-Menu-head{display:flex;flex-direction:row;align-items:center;flex-shrink:0}\n.xui-SearchList-search,.xui-Menu-search{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;align-self:stretch}\n.xui-SearchList-search>svg,.xui-Menu-search>svg{width:16px;height:16px;opacity:.6;flex-shrink:0}\n.xui-SearchList-search>input,.xui-Menu-search>input{flex:1 1 auto;min-width:0;height:100%;padding:0;border:0;outline:none;background:transparent;color:inherit;font:inherit}\n.xui-SearchList-count,.xui-Menu-count{flex-shrink:0;font-variant-numeric:tabular-nums}\n.xui-SearchList-body,.xui-Menu-body{display:flex;flex-direction:column;position:relative;flex-shrink:1;min-height:0}\n.xui-SearchList-list,.xui-Menu-list{display:flex;flex-direction:column;flex-shrink:1;min-height:0;overflow-y:auto}\n.xui-SearchList-item{display:flex;flex-direction:row;align-items:center;flex-shrink:0;cursor:pointer;user-select:none;white-space:nowrap}\n.xui-SearchList-item[aria-disabled=\"true\"]{pointer-events:none}\n.xui-SearchList-icon,.xui-SearchList-check{display:inline-flex;flex-shrink:0}\n.xui-SearchList-icon>svg,.xui-SearchList-check>svg{width:100%;height:100%}\n.xui-SearchList-identifier{flex-shrink:0}\n.xui-SearchList-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}\n.xui-SearchList-fade,.xui-Menu-fade{position:absolute;left:0;right:0;bottom:0;height:${SEARCH_LIST_FADE}px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--xui-color-popover)) !important}\n.xui-menu-search{display:flex;flex-direction:column;min-width:240px}\n.xui-menu-search .xui-Menu-item{flex-shrink:0}\n[data-xui-c=\"Markdown\"].xui-el{display:block;min-width:0;overflow-wrap:anywhere}\n[data-xui-c=\"Markdown\"][data-lines].xui-el{display:-webkit-box;-webkit-box-orient:vertical;overflow:clip}\n.xui-md>:first-child{margin-top:0}\n.xui-md>:last-child{margin-bottom:0}\n.xui-Markdown-paragraph{margin:0 0 var(--xui-spacing-sm)}\n.xui-Markdown-heading{margin:var(--xui-spacing-md) 0 var(--xui-spacing-xs);font-weight:var(--xui-type-weight-semibold);line-height:1.25}\n.xui-md ul,.xui-md ol{margin:0 0 var(--xui-spacing-sm);padding-inline-start:1.4em}\n.xui-md ul{list-style:disc}\n.xui-md ol{list-style:decimal}\n.xui-md li>ul,.xui-md li>ol{margin-bottom:0}\n.xui-Markdown-listItem{margin:0}\n.xui-md li[data-task]{list-style:none}\n.xui-Markdown-listItem>input[type=checkbox]{appearance:none;display:inline-grid;place-content:center;vertical-align:-3px;width:16px;height:16px;margin:0;border:1px solid var(--xui-color-input);border-radius:4px;background:var(--xui-color-card)}\n.xui-Markdown-listItem>input[type=checkbox]:checked{background:var(--xui-color-primary);border-color:var(--xui-color-primary)}\n.xui-Markdown-listItem>input[type=checkbox]:checked::before{content:\"\";width:14px;height:14px;background:var(--xui-color-primaryForeground);mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E\") center/contain no-repeat}\n.xui-Markdown-code{font-family:var(--xui-font-mono);font-size:.925em;padding:0 .3em;border-radius:4px;background:var(--xui-color-muted)}\n.xui-Markdown-codeBlock{display:block;font-family:var(--xui-font-mono);font-size:var(--xui-type-size-xs);white-space:pre;overflow:auto;padding:var(--xui-spacing-sm);margin:0 0 var(--xui-spacing-sm);border-radius:var(--xui-radius-sm);background:var(--xui-color-muted)}\n.xui-Markdown-quote{margin:0 0 var(--xui-spacing-sm);padding-inline-start:var(--xui-spacing-md);border-inline-start:2px solid var(--xui-color-border);color:var(--xui-color-mutedForeground)}\n.xui-Markdown-link{color:var(--xui-color-primary);text-decoration:underline;text-underline-offset:3px}\n.xui-Markdown-table{border-collapse:collapse;margin:0 0 var(--xui-spacing-sm);width:100%}\n.xui-Markdown-table th,.xui-Markdown-table td{border:1px solid var(--xui-color-border);padding:var(--xui-spacing-xs) var(--xui-spacing-sm);text-align:start}\n.xui-Markdown-image{height:160px;margin:0 0 var(--xui-spacing-sm);overflow:hidden}\n.xui-Markdown-image>img{display:block;width:100%;height:100%;object-fit:contain;object-position:0 0}\n.xui-Markdown-image>img:dir(rtl){object-position:100% 0}\n.xui-Markdown-imageAlt{color:var(--xui-color-mutedForeground)}\n[data-xui-c=\"Chart\"].xui-el{flex-direction:column;gap:var(--xui-spacing-xs);min-width:0}\n.xui-Chart-legend,.xui-Chart-title{flex-shrink:0}\n[data-xui-c=\"Chart\"].xui-el>svg{width:100%;display:block}\n.xui-Chart-legend{display:flex;flex-wrap:wrap;gap:var(--xui-spacing-sm);font-size:var(--xui-type-size-xs);color:var(--xui-color-mutedForeground)}\n.xui-Chart-legend>span{display:inline-flex;align-items:center;gap:var(--xui-spacing-xxs)}\n.xui-Chart-legend i{display:inline-block;width:8px;height:8px;border-radius:2px}\n.xui-Chart-title{font-weight:var(--xui-type-weight-medium)}\n[data-xui-c=\"TreeGuides\"].xui-el{flex-direction:row;align-self:stretch;flex-shrink:0}\n[data-xui-c=\"TreeGuides\"].xui-el{overflow:visible}\n.xui-tree-col{position:relative;align-self:stretch;flex-shrink:0;overflow:visible}\n.xui-tree-col>.xui-TreeGuides-line{position:absolute;background:currentColor;display:block;padding:0;margin:0;box-sizing:border-box}\n.xui-tree-col>.xui-TreeGuides-line[data-elbow]{background:none;border-style:solid;border-color:currentColor;border-top-width:0;border-right-width:0}\n[data-xui-c=\"Unknown\"].xui-el{flex-direction:column;gap:var(--xui-spacing-xxs)}\n[data-xui-c=\"Box\"][data-pressable=\"true\"].xui-el{cursor:pointer}\n.xui-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible}\n.xui-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n\n.xui-calendar-row{display:contents}\n.xui-calendar-cell{display:flex;align-items:center;justify-content:center}\n.xui-calendar-day-label{position:relative}\n.xui-DatePicker-day[data-today]>.xui-calendar-day-label,.xui-DateRangePicker-day[data-today]>.xui-calendar-day-label{text-decoration:underline;text-underline-offset:3px}\n.xui-DateRangePicker-day{position:relative}\n.xui-DateRangePicker-range{position:absolute;inset:0;border-radius:inherit}\n.xui-DateRangePicker-day[data-range]{background:var(--xui-color-accent)}\n.xui-calendar-nav{color:inherit}\n[data-xui-c=\"Form\"].xui-el{flex-direction:column}\n.xui-form-fields{display:contents;border:0;margin:0;padding:0;min-width:0}\n.xui-Form-summary{display:flex;flex-direction:column}\n.xui-form-summary-list{margin:0;padding-inline-start:1.2em}\n.xui-Input-error,.xui-Textarea-error,.xui-NumberField-error,.xui-ChipInput-error,.xui-FileUpload-error,.xui-Select-error,.xui-Checkbox-error,.xui-Switch-error,.xui-Radio-error,.xui-DatePicker-error,.xui-DateRangePicker-error,.xui-TimePicker-error{display:flex;flex-direction:column;gap:2px}\n[data-xui-numberfield]{display:flex;flex-direction:row;align-items:center;gap:var(--xui-spacing-xxs);min-width:0}\n.xui-NumberField-input{flex:1 1 auto;min-width:0;width:100%;border:0;outline:none;background:transparent;color:inherit;font:inherit;padding:0;text-align:start;font-variant-numeric:tabular-nums}\n.xui-NumberField-decrement,.xui-NumberField-increment,.xui-ChipInput-remove,.xui-FileUpload-remove,.xui-Toast-close,.xui-CodeBlock-copy{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-NumberField-decrement>svg,.xui-NumberField-increment>svg,.xui-ChipInput-remove>svg,.xui-FileUpload-remove>svg,.xui-Toast-close>svg,.xui-CodeBlock-copy>svg{width:16px;height:16px}\n.xui-NumberField-decrement:disabled,.xui-NumberField-increment:disabled{opacity:.4;pointer-events:none}\n.xui-NumberField-unit{flex-shrink:0}\n[data-xui-chipfield]{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;cursor:text}\n.xui-chip-list{display:contents;list-style:none;margin:0;padding:0}\n.xui-ChipInput-chip{display:inline-flex;align-items:center;flex-shrink:0;outline:none}\n.xui-ChipInput-input{flex:1 1 80px;min-width:80px;border:0;outline:none;background:transparent;color:inherit;font:inherit;padding:0;height:var(--xui-type-lineHeight-sm)}\n.xui-ChipInput-suggestions{display:flex;flex-direction:column;border:1px solid var(--xui-color-border);border-radius:var(--xui-radius-md);background:var(--xui-color-popover);color:var(--xui-color-popoverForeground);padding:var(--xui-spacing-xs);box-shadow:var(--xui-shadow-md)}\n.xui-ChipInput-suggestion{display:flex;align-items:center;padding:var(--xui-spacing-xs) var(--xui-spacing-sm);border-radius:var(--xui-radius-sm);cursor:pointer}\n.xui-ChipInput-suggestion[data-active]{background:var(--xui-color-accent);color:var(--xui-color-accentForeground)}\n.xui-FileUpload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;outline:none}\n.xui-FileUpload-dropzone[aria-disabled=\"true\"]{cursor:default}\n.xui-FileUpload-icon{display:inline-flex}\n.xui-FileUpload-icon>svg{width:100%;height:100%}\n.xui-FileUpload-title{font-weight:var(--xui-type-weight-medium)}\n.xui-file-list{display:flex;flex-direction:column;gap:var(--xui-spacing-xs);list-style:none;margin:0;padding:0}\n.xui-FileUpload-file{display:flex;flex-direction:row;align-items:center}\n.xui-FileUpload-fileIcon{display:inline-flex;flex-shrink:0;opacity:.7}\n.xui-FileUpload-fileIcon>svg{width:16px;height:16px}\n.xui-FileUpload-browse{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0;height:var(--xui-control-buttonSm)}\n.xui-FileUpload-fileName{flex:1 1 auto;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}\n[data-xui-c=\"CodeBlock\"].xui-el{flex-direction:column;min-width:0;overflow:clip}\n.xui-CodeBlock-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between}\n.xui-CodeBlock-copy>svg{width:12px;height:12px}\n.xui-codeblock-scroll{overflow:auto;min-width:0;outline:none}\n.xui-codeblock-scroll[data-max-lines]{max-height:calc(var(--xui-code-lines) * 1lh)}\n.xui-codeblock-pre{margin:0;padding:0;font:inherit;white-space:pre;tab-size:2;min-width:max-content}\n.xui-codeblock-scroll[data-wrap=\"true\"]>.xui-codeblock-pre{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}\n.xui-codeblock-pre>code{font:inherit;display:block}\n.xui-CodeBlock-line{display:flex;flex-direction:row}\n.xui-codeblock-text{flex:0 1 auto;min-width:0}\n.xui-CodeBlock-gutter{display:flex;flex-direction:row;justify-content:flex-end;flex-shrink:0;user-select:none}\n.xui-CodeBlock-lineNumber{display:block}\n[data-xui-c=\"Table\"].xui-el{flex-direction:column;min-width:0;overflow:auto}\n.xui-Table-header{display:flex;flex-direction:column}\n.xui-Table-header[data-sticky=\"true\"]{position:sticky;top:0;z-index:1}\n.xui-table-row,.xui-Table-row{display:grid;align-items:stretch;min-width:0}\n.xui-table-body{display:flex;flex-direction:column;position:relative}\n.xui-table-check{display:flex;align-items:center;justify-content:center;min-width:0}\n.xui-Table-headerCell,.xui-Table-cell{display:flex;flex-direction:row;align-items:center;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap;gap:var(--xui-spacing-xs)}\n.xui-Table-headerCell[data-r-align=\"end\"],.xui-Table-cell[data-r-align=\"end\"]{justify-content:flex-end;text-align:end}\n.xui-Table-headerCell[data-r-align=\"center\"],.xui-Table-cell[data-r-align=\"center\"]{justify-content:center;text-align:center}\n.xui-Table-cell[data-type=\"number\"]{font-variant-numeric:tabular-nums}\n.xui-Table-cell>svg{width:16px;height:16px}\n.xui-Table-row{outline:none}\n.xui-Table-row:focus-visible{box-shadow:inset 0 0 0 2px var(--xui-color-ring)}\n.xui-Table-row[tabindex]{cursor:pointer}\n.xui-table-sort{display:inline-flex;align-items:center;gap:var(--xui-spacing-xxs);padding:0;margin:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;min-width:0}\n.xui-Table-headerCell[data-r-align=\"end\"]>.xui-table-sort{flex-direction:row}\n.xui-Table-sortIcon{display:inline-flex;flex-shrink:0}\n.xui-Table-sortIcon>svg{width:100%;height:100%}\n.xui-Table-empty{display:flex;justify-content:center}\n.xui-table-badge{display:inline-flex;align-items:center;height:var(--xui-control-badge);padding:0 var(--xui-spacing-sm);border-radius:var(--xui-radius-full);background:var(--xui-color-secondary);color:var(--xui-color-secondaryForeground);font-size:var(--xui-type-size-xs)}\n.xui-chart-plot{position:relative;width:100%;min-width:0;flex:1 1 0%;min-height:0;overflow:visible}\n.xui-chart-svg{position:absolute;top:0;left:0;display:block;overflow:visible;outline:none}\n.xui-chart-svg:focus-visible{outline:2px solid var(--xui-color-ring);outline-offset:2px;border-radius:var(--xui-radius-sm)}\n.xui-Chart-grid{opacity:.7}\n.xui-Chart-tooltip{display:flex;flex-direction:column;gap:2px;z-index:2;min-width:120px;white-space:nowrap}\n.xui-chart-tip-row{display:inline-flex;align-items:center;gap:var(--xui-spacing-xxs)}\n.xui-chart-tip-row>i{display:inline-block;width:8px;height:8px;border-radius:2px}\n.xui-Chart-valueLabel{fill:currentColor}\n[data-xui-c=\"Chart\"][data-kind=\"sparkline\"].xui-el{gap:0}\n.xui-Image-fallback{display:flex;align-items:center;justify-content:center;position:absolute;inset:0}\n.xui-Image-fallback>svg{width:var(--xui-control-iconLg);height:var(--xui-control-iconLg)}\n[data-xui-c=\"Image\"][data-state=\"loading\"].xui-el{background:var(--xui-color-muted)}\n.xui-carousel-controls{display:flex;align-items:center;justify-content:center}\n.xui-carousel-controls>.xui-carousel-dots{padding-top:0}\n.xui-carousel-nav{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;cursor:pointer}\n.xui-carousel-nav:disabled{pointer-events:none}\n.xui-carousel-nav>svg{width:var(--xui-control-iconSm);height:var(--xui-control-iconSm)}\n.xui-menu-label{flex:1 1 auto;min-width:0}\n.xui-Menu-shortcut{margin-inline-start:auto;padding-inline-start:var(--xui-spacing-lg)}\n.xui-Menu-check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}\n.xui-Menu-check svg,.xui-Menu-submenuIndicator>svg{width:100%;height:100%}\n.xui-Menu-submenuIndicator{display:inline-flex;margin-inline-start:auto;flex-shrink:0}\n.xui-Select-searchbox{display:flex;align-items:center;gap:var(--xui-spacing-xs);padding-inline-start:var(--xui-spacing-sm)}\n.xui-Select-searchbox>svg{width:16px;height:16px;opacity:.6;flex-shrink:0}\n.xui-Select-searchbox>.xui-Select-search{margin:0;border-bottom:0;padding-inline-start:0}\n.xui-Select-listbox,.xui-TimePicker-listbox{display:flex;flex-direction:column;outline:none;overflow:auto;max-height:280px}\n.xui-Select-empty{display:flex}\n.xui-TimePicker-list{min-width:var(--radix-popover-trigger-width)}\n[data-xui-c=\"Toast\"].xui-el{flex-direction:row;align-items:flex-start;width:min(360px,calc(100vw - 32px));pointer-events:auto}\n.xui-Toast-icon{display:inline-flex;flex-shrink:0}\n.xui-Toast-icon>svg{width:100%;height:100%}\n.xui-toast-text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}\n.xui-Toast-action{display:inline-flex;align-items:center;flex-shrink:0;cursor:pointer;white-space:nowrap}\n.xui-toast-layer{position:fixed;bottom:var(--xui-spacing-lg);left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:var(--xui-spacing-sm);pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}\n.xui-toast-layer>:nth-last-child(n+4){display:none}\n.xui-Popover-content[data-open-on=\"hover\"]{pointer-events:auto}\n@keyframes xui-fade-out{to{opacity:0}}\n@keyframes xui-pop-in{from{opacity:0;scale:var(--xui-scale-popoverFrom,.96)}}\n@keyframes xui-pop-out{to{opacity:0}}\n@keyframes xui-slide-bottom-in{from{translate:0 100%}}\n@keyframes xui-slide-bottom-out{to{translate:0 100%}}\n@keyframes xui-slide-top-in{from{translate:0 -100%}}\n@keyframes xui-slide-top-out{to{translate:0 -100%}}\n@keyframes xui-slide-left-in{from{translate:-100% 0}}\n@keyframes xui-slide-left-out{to{translate:-100% 0}}\n@keyframes xui-slide-right-in{from{translate:100% 0}}\n@keyframes xui-slide-right-out{to{translate:100% 0}}\n@keyframes xui-toast-in{from{opacity:0;translate:0 12px}}\n@keyframes xui-accordion-open{from{height:0}to{height:var(--radix-accordion-content-height)}}\n@keyframes xui-accordion-close{from{height:var(--radix-accordion-content-height)}to{height:0}}\n.xui-Popover-content,.xui-Tooltip-content,.xui-Menu-content,.xui-Select-content,.xui-DatePicker-calendar,.xui-DateRangePicker-calendar,.xui-TimePicker-list{transform-origin:var(--radix-popper-transform-origin)}\n.xui-Popover-content[data-state=\"open\"],.xui-Tooltip-content[data-state$=\"open\"],.xui-Menu-content[data-state=\"open\"],.xui-Select-content[data-state=\"open\"],.xui-DatePicker-calendar[data-state=\"open\"],.xui-DateRangePicker-calendar[data-state=\"open\"],.xui-TimePicker-list[data-state=\"open\"],.xui-Dialog-content[data-state=\"open\"]{animation:xui-pop-in var(--xui-motion-standard) var(--xui-ease-decelerate,ease-out)}\n[data-xui-c=\"Button\"].xui-el:active:not(:disabled){scale:var(--xui-scale-press,1)}\n.xui-Popover-content[data-state=\"closed\"],.xui-Tooltip-content[data-state=\"closed\"],.xui-Menu-content[data-state=\"closed\"],.xui-Select-content[data-state=\"closed\"],.xui-DatePicker-calendar[data-state=\"closed\"],.xui-DateRangePicker-calendar[data-state=\"closed\"],.xui-TimePicker-list[data-state=\"closed\"],.xui-Dialog-content[data-state=\"closed\"]{animation:xui-pop-out var(--xui-motion-fast) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Dialog-overlay[data-state=\"open\"],.xui-Drawer-overlay[data-state=\"open\"]{animation:xui-fade-in var(--xui-motion-standard) var(--xui-ease-decelerate,ease-out)}\n.xui-Dialog-overlay[data-state=\"closed\"],.xui-Drawer-overlay[data-state=\"closed\"]{animation:xui-fade-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"bottom\"][data-state=\"open\"]{animation:xui-slide-bottom-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"bottom\"][data-state=\"closed\"]{animation:xui-slide-bottom-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"top\"][data-state=\"open\"]{animation:xui-slide-top-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"top\"][data-state=\"closed\"]{animation:xui-slide-top-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"left\"][data-state=\"open\"]{animation:xui-slide-left-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"left\"][data-state=\"closed\"]{animation:xui-slide-left-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Drawer-content[data-side=\"right\"][data-state=\"open\"]{animation:xui-slide-right-in var(--xui-motion-slow) var(--xui-ease-decelerate,ease-out)}\n.xui-Drawer-content[data-side=\"right\"][data-state=\"closed\"]{animation:xui-slide-right-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-Accordion-content[data-state=\"open\"]{animation:xui-accordion-open var(--xui-motion-standard) var(--xui-ease-standard,ease)}\n.xui-Accordion-content[data-state=\"closed\"]{animation:xui-accordion-close var(--xui-motion-standard) var(--xui-ease-standard,ease)}\n.xui-Tabs-content[data-state=\"active\"]{animation:xui-fade-in var(--xui-motion-fast) var(--xui-ease-decelerate,ease-out)}\n[data-xui-c=\"Toast\"][data-state=\"open\"].xui-el{animation:xui-toast-in var(--xui-motion-standard) var(--xui-ease-decelerate,ease-out)}\n[data-xui-c=\"Toast\"][data-state=\"closed\"].xui-el{animation:xui-fade-out var(--xui-motion-standard) var(--xui-ease-accelerate,ease-in) forwards}\n.xui-accordion-title{display:inline-flex;align-items:baseline;gap:var(--xui-spacing-xs);min-width:0}\n.xui-Collapsible-chevron.xui-el{transition:transform var(--xui-motion-fast) var(--xui-ease-standard,ease)}\n${SHIMMER_CSS}\n}\n@media (prefers-reduced-motion: reduce){@layer xui-base{.xui-surface *,.xui-surface *::before,.xui-surface *::after{animation-duration:0ms !important;animation-iteration-count:1 !important;transition-duration:0ms !important;scroll-behavior:auto !important}${REDUCED_EXTRA}}}\n.xui-surface[data-xui-motion=\"reduce\"] *,.xui-surface[data-xui-motion=\"reduce\"] *::after{animation-duration:0ms !important;animation-iteration-count:1 !important;transition-duration:0ms !important}\n${REDUCED_EXTRA.replace(/\\.xui-surface /g, `.xui-surface[data-xui-motion=\"reduce\"] `)}`\n",
|
|
10
10
|
"// VAPP-103: every href and every src the renderer emits passes the host\n// contract's policy (`catalog/host.json` urls / media): Link (external or\n// not), markdown links + images, FileUpload file urls, Image / Avatar /\n// Video / Audio. A denied href paints as text; a denied src loads nothing.\n// Relative urls resolve against the host's base (on the web, the\n// document's when the host sets none). VAPP-107: a private, loopback or\n// link-local host is denied unless the host's policy opts it in\n// (`allowPrivate`); the page's OWN host is opted in when it is private (a\n// dev server on localhost keeps its same-origin images and links), the LAN\n// and every other private host stay denied. Shared by React and Solid\n// (FEED-128): one filter, both renderers.\n\nimport { DEFAULT_MEDIA_SCHEMES, decideUrl, isPrivateHost, mediaRequest, safeHref, type MediaRequest, type UrlPolicy } from \"@exponential_app/eui\"\nimport type { AnyHostPlugin as HostPlugin } from \"./host-types\"\n\nconst documentBase = (): string | undefined => (typeof document !== `undefined` && document.baseURI ? document.baseURI : undefined)\n\n/** VAPP-107: the page's OWN host when it is private (a dev server on\n * localhost): the renderer opts it in on top of the host's `allowPrivate`,\n * exactly as the Exponential app's hosts opt their own origin in. The page\n * already runs there; nothing else private is reached. */\nexport function ownPrivateHosts(): string[] {\n try {\n const base = documentBase()\n if (!base) return []\n const host = new URL(base).hostname.toLowerCase()\n return isPrivateHost(host) ? [host] : []\n } catch {\n return []\n }\n}\n\nfunction withOwnOrigin(allow: readonly string[] | undefined): readonly string[] | undefined {\n const own = ownPrivateHosts()\n if (!own.length) return allow\n return [...(allow ?? []), ...own.filter((h) => !(allow ?? []).includes(h))]\n}\n\n/** The URL policy a plugin's hrefs pass. */\nexport function urlPolicyOf(host: HostPlugin): UrlPolicy {\n const urls = host.urls ?? {}\n const withBase = urls.baseUrl ? urls : { ...urls, baseUrl: host.media?.baseUrl ?? documentBase() }\n return { ...withBase, allowPrivate: withOwnOrigin(withBase.allowPrivate) }\n}\n\n/** The href a link may navigate to, or undefined (paint it as text). */\nexport function linkHref(host: HostPlugin, href: unknown): string | undefined {\n return safeHref(urlPolicyOf(host), href)\n}\n\n/** The media request for a src (`resolveUrl` rewrites first; the host's\n * `mediaRequest` or the plugin's `media` options build it), re-checked\n * against the media schemes/hosts so a host hook cannot widen them. Null =\n * nothing loads. */\nexport function mediaRequestOf(host: HostPlugin, src: unknown): MediaRequest | null {\n if (typeof src !== `string` || !src) return null\n const rewritten = host.resolveUrl ? host.resolveUrl(src) : src\n const req = host.mediaRequest ? host.mediaRequest(rewritten) : mediaRequest(rewritten, { baseUrl: documentBase(), ...host.media, allowPrivate: withOwnOrigin(host.media?.allowPrivate) })\n if (!req) return null\n return mediaUrlAllowed(host, req.url) ? req : null\n}\n\n/** Does an absolute media url pass the media schemes, hosts and private\n * opt-ins (VAPP-107; the page's own private host counts as opted in)? */\nexport function mediaUrlAllowed(host: HostPlugin, url: string): boolean {\n return decideUrl({ schemes: host.media?.schemes ?? DEFAULT_MEDIA_SCHEMES, hosts: host.media?.hosts, allowPrivate: withOwnOrigin(host.media?.allowPrivate) }, url).allowed\n}\n\n/** The default opener: only what the policy allows, in a new tab. */\nexport function openAllowed(host: HostPlugin, url: string): void {\n const href = linkHref(host, url)\n if (!href) return\n if (host.openUrl) host.openUrl(href)\n else if (typeof window !== `undefined`) window.open(href, `_blank`, `noopener,noreferrer`)\n}\n",
|
|
11
11
|
"// VAPP-87: what an EMBEDDING APP provides (the host plugin) and what a web\n// renderer sends it, framework-free. The plugin knows no transport: actions\n// and input edits are plain objects the host forwards wherever it likes.\n// VAPP-91: the host API (`ExponentialHost`: transport, functions, bindings,\n// negotiation, policy) plugs in through a renderer's `hostPlugin(host)`.\n// FEED-128: generic over the renderer's component types (`Icon` = what an\n// icon registry name maps to, `Markdown` = a richer markdown renderer), so\n// React and Solid share ONE plugin shape.\n\nimport type { FunctionCallInfo, MediaOptions, MediaRequest, ThemeIssue, UiNode, UrlPolicy } from \"@exponential_app/eui\"\nimport type { ClientFunction } from \"./data\"\nimport type { QrScannerHost } from \"./round5\"\n\n/** A registry name → the renderer's icon component (a map or a lookup). */\nexport type IconMap<Icon = unknown> = Record<string, Icon | undefined> | ((name: string) => Icon | undefined)\n\n/** A user action: a node's `on.<event>` with an `event` action, resolved. */\nexport interface SurfaceActionEvent {\n surfaceId: string\n /** The catalog event (`press`, `change`, `select`, `submit`…). */\n event: string\n /** The action's `event.name`. */\n name: string\n componentId: string\n context: Record<string, unknown>\n /** What the component adds (a Select's `value`, a Tabs' `value`…). */\n payload?: Record<string, unknown>\n timestamp: string\n}\n\n/** A host-owned input edit. `change` fires debounced while typing with a\n * monotonically increasing `revision`; `commit` on blur / Enter. The host's\n * echo (a data model write at `path`) is applied only while no newer\n * revision is outstanding and the field is not focused. */\nexport interface SurfaceInputEvent {\n surfaceId: string\n componentId: string\n /** The input's `name` prop. */\n name: string\n /** The bound data model pointer, when `value` is a binding. */\n path?: string\n value: unknown\n revision: number\n kind: `change` | `commit`\n}\n\n/** A painter that failed: the surface, the component, why. */\nexport interface PaintError {\n surfaceId: string\n componentId: string\n message: string\n}\n\n/** One option a host source supplies (the catalog's `option` shape). */\nexport interface SourceOption {\n label: string\n value: string\n icon?: string\n disabled?: boolean\n}\n\nexport interface HostPlugin<Icon = unknown, Markdown = unknown> {\n /** The icon registry: the catalog's `Icon` names → components. */\n icons?: IconMap<Icon>\n /** Server events. Returning a promise keeps the source control in its\n * optimistic pending state until it settles. */\n onAction?: (event: SurfaceActionEvent) => void | Promise<void>\n /** Host-owned input edits. Returning a promise acknowledges the revision\n * when it settles; a sync host acknowledges at once. */\n onInput?: (event: SurfaceInputEvent) => void | Promise<void>\n /** Opens an href the URL policy allowed (`openUrl`, `Link`); default\n * `window.open(url, \"_blank\")`. */\n openUrl?: (url: string) => void\n /** The URL policy EVERY href passes (Link, markdown links, FileUpload\n * file urls, openUrl): `catalog/host.json` urls. Unset = the default\n * schemes; relative urls resolve against `baseUrl`, else `media.baseUrl`,\n * else the document's. A denied href paints as text. */\n urls?: UrlPolicy\n /** The media policy every src passes when there is no `mediaRequest`\n * (schemes, hosts, private opt-ins, base, header rules):\n * `catalog/host.json` media. */\n media?: MediaOptions\n /** Extra or overriding client functions, web renderers only (`{call,\n * args}` in a prop; an action naming one runs it). Any OTHER action\n * function name goes to onFunctionCall (the portable host functions). */\n functions?: Record<string, ClientFunction>\n /** An action `functionCall` to a name outside the built-ins (the host\n * function registry + its policy gate, `ExponentialHost.callFunction`).\n * A promise keeps the source control pending until it settles. */\n onFunctionCall?: (call: FunctionCallInfo) => unknown | Promise<unknown>\n /** The media loader's request for a source (absolute url + headers, e.g.\n * auth for /api/attachments); null = denied. A request WITH headers is\n * fetched (under the media limits) and shown as a blob url; without, its\n * url is used as is. Its url is re-checked against `media`'s schemes,\n * hosts and private opt-ins. */\n mediaRequest?: (src: string) => MediaRequest | null\n /** Video/Audio (`catalog/host.json` media: the byte limits do not apply,\n * they stream): a url the browser's player loads WITHOUT headers for a\n * request that carries some (a signed or cookie-authed url), so the\n * player streams and seeks. Its result passes the media policy again.\n * Unset = the request is fetched whole into a blob url under the media\n * byte cap and timeout for the WHOLE download (VAPP-107), so a long\n * video needs this hook. */\n mediaStreamUrl?: (request: MediaRequest) => string | Promise<string>\n /** A richer markdown renderer than the built-in one (a component taking\n * `{text, className}` in the renderer's framework). */\n Markdown?: Markdown\n /** Rewrites a media src BEFORE the media policy (signed URLs). */\n resolveUrl?: (src: string) => string\n /** `onPaintError` (`catalog/host.json` paint): a component's painter\n * failed; it paints an empty box. `hostPlugin(host)` forwards it to the\n * agent as an A2UI `RENDER_FAILED` error. */\n onPaintError?: (error: PaintError) => void\n /** Called with the node for every Unknown placeholder painted. */\n onUnknown?: (node: UiNode) => void\n /** Round 4 (VAPP-103): the `theme` prop was unusable (an unknown built-in\n * id, a theme file with issues). The surface never throws: it paints\n * with the default theme and reports why here. */\n onThemeIssues?: (issues: ThemeIssue[]) => void\n /** Round 1, FileUpload: the picked/dropped files' BYTES (the `upload`\n * event carries only `{name, size, type}`). Return a promise to keep the\n * drop zone busy until it settles. */\n onUpload?: (files: File[], target: { nodeId: string; name: string }) => void | Promise<void>\n /** Round 1, Select `source`: a host list id (`exp:statuses`) → its\n * options for a query (`\"\"` when not searchable). */\n optionSource?: (source: string, query: string) => SourceOption[] | Promise<SourceOption[]>\n /** VAPP-162, QrScanner: THE camera (host-owned, like FileUpload's bytes):\n * `start(feed, formats, onValue)` renders the live feed into `feed`,\n * decodes codes of `formats` and calls `onValue` per decoded string;\n * returns the stop. Unset (or `start` returning false) = no camera: the\n * scanner shows its placeholder and `Camera unavailable`. */\n qrScanner?: QrScannerHost\n}\n\n/** Any renderer's plugin (what the framework-free helpers take). */\nexport type AnyHostPlugin = HostPlugin<unknown, unknown>\n\n/** A registry lookup: the host's map (or function) first, then the\n * renderer's own fallbacks. */\nexport function lookupIcon<Icon>(icons: IconMap<Icon> | undefined, name: string, fallbacks: Readonly<Record<string, Icon>> = {}): Icon | undefined {\n if (!icons) return fallbacks[name]\n const hit = typeof icons === `function` ? icons(name) : icons[name]\n return hit ?? fallbacks[name]\n}\n",
|
|
12
12
|
"// AUTO-GENERATED by packages/icons/scripts/generate.ts — do not edit.\n// Source of truth: packages/icons/icons.json + lucide-react's shipped geometry.\n//\n// The icon geometry reproduced in this file is from Lucide\n// (https://lucide.dev) and is licensed ISC. Glyphs listed under icons.json\n// `custom` are Exponential's own work, licensed Apache-2.0 with the rest of\n// this repository (see the top-level LICENSE). Marks listed under `imported`\n// (the OS logos) are from selfh.st/icons (https://github.com/selfhst/icons),\n// licensed CC-BY-4.0, scaled into Lucide's 24-unit grid; the logos themselves\n// are trademarks of their respective owners.\n//\n// ISC License\n//\n// Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as\n// part of Feather (MIT). All other copyright (c) for Lucide are held by\n// Lucide Contributors 2022.\n//\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n/** One Lucide icon node: an element name and its attributes. */\nexport type CustomIconNode = [string, Record<string, string>][]\n\n/** icons.json `custom` + `imported` names -> their Lucide icon nodes. */\nexport const CUSTOM_ICON_NODES: Record<string, CustomIconNode> = {\n \"os-apple\": [[\"path\",{\"d\":\"M18.859 9.138c-0.105 0.081 -1.948 1.118 -1.948 3.428c0 2.672 2.345 3.618 2.415 3.639c-0.011 0.056 -0.373 1.294 -1.238 2.556c-0.77 1.107 -1.575 2.215 -2.798 2.215s-1.54 -0.71 -2.953 -0.71c-1.378 0 -1.867 0.735 -2.985 0.735s-1.902 -1.027 -2.798 -2.285c-1.041 -1.48 -1.881 -3.779 -1.881 -5.959c0 -3.498 2.275 -5.354 4.514 -5.354c1.188 0 2.183 0.78 2.929 0.78c0.71 0 1.821 -0.83 3.175 -0.83c0.513 0 2.355 0.046 3.568 1.786m-4.212 -3.27c0.559 -0.664 0.956 -1.586 0.956 -2.507c0 -0.127 -0.011 -0.257 -0.035 -0.362c-0.911 0.035 -1.993 0.608 -2.647 1.364c-0.513 0.584 -0.991 1.505 -0.991 2.44c0 0.141 0.025 0.281 0.035 0.327c0.056 0.011 0.151 0.025 0.246 0.025c0.816 -0.004 1.842 -0.548 2.436 -1.287\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"mark\"}]],\n \"os-linux\": [[\"path\",{\"d\":\"M19.471 17.752c-0.12 -0.109 -0.299 -0.19 -0.418 -0.25c-0.179 -0.07 -0.299 -0.162 -0.418 -0.267c-0.179 -0.109 -0.239 -0.232 -0.299 -0.362l-0.06 -0.439c-0.06 -0.281 -0.12 -0.461 -0.179 -0.541s-0.12 -0.13 -0.239 -0.13c0.12 -0.387 0.179 -0.787 0.179 -1.199c0 -0.83 -0.179 -1.603 -0.478 -2.201c-0.239 -0.654 -0.654 -1.311 -1.192 -1.905c-0.239 -0.359 -0.478 -0.654 -0.654 -0.953c-0.179 -0.239 -0.299 -0.478 -0.418 -0.714c-0.12 -0.179 -0.179 -0.418 -0.239 -0.654c-0.06 -0.299 -0.06 -0.538 -0.12 -0.714c0 -0.179 -0.06 -0.418 -0.06 -0.773c-0.06 -0.418 -0.06 -0.714 -0.12 -1.012c-0.06 -0.478 -0.179 -0.833 -0.299 -1.192c-0.179 -0.299 -0.359 -0.598 -0.598 -0.773c-0.179 -0.179 -0.418 -0.299 -0.654 -0.418c-0.299 -0.12 -0.538 -0.179 -0.714 -0.179C12.316 3 12.137 3 11.961 3c-0.478 0 -0.893 0.06 -1.252 0.179s-0.598 0.359 -0.773 0.598c-0.204 0.239 -0.341 0.538 -0.418 0.833c-0.077 0.299 -0.113 0.598 -0.113 1.012c0 0.538 0.028 1.132 0.088 1.73c0.067 0.598 0.095 0.953 0.095 1.072c0 0.239 -0.06 0.538 -0.172 0.773s-0.316 0.538 -0.626 0.893L8.344 10.629c-0.359 0.418 -0.584 0.833 -0.679 1.252c-0.12 0.478 -0.225 0.833 -0.327 1.072c-0.095 0.239 -0.225 0.478 -0.401 0.798l-0.207 0.376c-0.214 0.401 -0.316 0.703 -0.316 0.918c-0.011 0.035 -0.011 0.095 -0.011 0.162c0 0.095 0.025 0.172 0.07 0.232c-0.042 0.049 -0.07 0.095 -0.095 0.137c-0.011 0.028 -0.025 0.067 -0.035 0.102c-0.011 0.025 -0.025 0.077 -0.053 0.148c-0.025 0.07 -0.06 0.148 -0.102 0.246c-0.127 0.07 -0.207 0.102 -0.264 0.102H5.236c-0.13 0 -0.257 0.077 -0.387 0.225s-0.19 0.359 -0.19 0.619c0 0.084 0.025 0.281 0.07 0.591c0.049 0.316 0.07 0.496 0.07 0.555s-0.011 0.12 -0.025 0.179c-0.011 0.067 -0.035 0.12 -0.06 0.172c-0.025 0.06 -0.049 0.113 -0.084 0.165c-0.025 0.06 -0.06 0.12 -0.102 0.186c-0.042 0.06 -0.084 0.127 -0.123 0.19c-0.042 0.109 -0.06 0.211 -0.06 0.306s0.042 0.179 0.123 0.253c0.088 0.074 0.207 0.137 0.359 0.183c0.155 0.056 0.299 0.095 0.422 0.123c0.137 0.028 0.292 0.056 0.461 0.081c0.172 0.028 0.281 0.049 0.327 0.06c0.482 0.109 1.037 0.274 1.663 0.489c0.619 0.225 1.079 0.341 1.371 0.341c0.464 0 0.798 -0.186 1.097 -0.541v0.018c0.418 -0.207 1.012 -0.313 1.789 -0.313c0.478 0 1.252 0.056 2.204 0.172c0.179 0.362 0.478 0.601 0.953 0.728l0.418 0.049c0.239 0 0.478 -0.053 0.654 -0.162c0.179 -0.102 0.418 -0.267 0.654 -0.499l0.598 -0.506c0.299 -0.253 0.598 -0.468 0.893 -0.643c0.359 -0.169 0.598 -0.288 0.714 -0.348c0.179 -0.053 0.299 -0.137 0.418 -0.257c0.12 -0.109 0.179 -0.257 0.179 -0.461c0.004 -0.134 -0.056 -0.257 -0.172 -0.376M15.364 11.438c0.299 0.06 0.538 0.239 0.773 0.598c0.239 0.359 0.359 0.773 0.359 1.371c0 0.429 -0.06 0.918 -0.239 1.473c0.06 0.011 0.179 0.025 0.239 0.028c0.06 0 0.06 0 0.12 0.011c0 0 0.06 0 0.12 0.007c0.359 0.049 0.654 0.162 0.833 0.341c0.179 0.172 0.239 0.327 0.239 0.461c0 0.053 0 0.077 -0.06 0.077c0 0 -0.06 -0.035 -0.06 -0.113c-0.06 -0.077 -0.12 -0.162 -0.179 -0.25c-0.06 -0.095 -0.179 -0.179 -0.418 -0.257c-0.179 -0.084 -0.478 -0.127 -0.773 -0.127c-0.179 0 -0.299 0.053 -0.478 0.155c-0.12 0.102 -0.179 0.204 -0.299 0.302c-0.06 0.102 -0.12 0.155 -0.12 0.155c-0.06 0 -0.06 -0.028 -0.06 -0.084c0.179 -0.345 0.418 -0.566 0.654 -0.661c0.239 -0.633 0.299 -1.125 0.299 -1.459c0 -0.418 -0.06 -0.773 -0.239 -1.192c-0.179 -0.359 -0.478 -0.598 -0.773 -0.714c0.004 -0.063 0.004 -0.063 0.063 -0.123M12.084 5.848q0.269 -0.179 0.538 -0.179c0.239 0 0.418 0.06 0.598 0.239c0.12 0.179 0.179 0.418 0.179 0.773c0 0.299 -0.06 0.538 -0.12 0.893c-0.12 -0.06 -0.179 -0.12 -0.299 -0.12c-0.06 0 -0.12 -0.06 -0.12 -0.06q0.359 -0.09 0.359 -0.538c0 -0.179 -0.06 -0.299 -0.12 -0.478c-0.12 -0.12 -0.239 -0.239 -0.418 -0.239q-0.179 0 -0.359 0.179c-0.12 0.179 -0.12 0.299 -0.12 0.538c0 0.12 0 0.239 0.06 0.299c-0.06 0 -0.12 -0.06 -0.179 -0.06c-0.12 -0.239 -0.179 -0.478 -0.179 -0.773c0 -0.176 0.06 -0.295 0.179 -0.475m0.657 0.657c0 -0.06 -0.06 -0.06 -0.06 -0.12c0.06 0 0.12 -0.06 0.12 -0.06c0.06 0 0.12 0.06 0.179 0.12s0.06 0.12 0.06 0.179s0 0.12 0.06 0.179h-0.12c-0.06 -0.179 -0.12 -0.299 -0.239 -0.299m-0.179 0.893c0.598 0.179 0.893 0.359 0.953 0.478c0.06 0 0.06 0.06 0.06 0.12c0 0.179 -0.12 0.299 -0.239 0.418l-0.538 0.359c-0.598 0.418 -1.072 0.654 -1.491 0.654c-0.299 0 -0.598 -0.12 -0.833 -0.359l-0.359 -0.359c-0.06 -0.06 -0.12 -0.179 -0.179 -0.299c0.359 0.299 0.773 0.478 1.192 0.478c0.478 0 1.072 -0.239 1.849 -0.773c0 0 0 -0.06 -0.06 -0.06v-0.12c-0.773 0.598 -1.371 0.833 -1.849 0.833c-0.359 0 -0.714 -0.179 -1.072 -0.478c-0.06 -0.12 -0.12 -0.179 -0.12 -0.179c0 -0.239 0.239 -0.478 0.598 -0.714c0.418 -0.239 0.714 -0.359 0.893 -0.359c0.243 0 0.657 0.12 1.195 0.359m-2.264 -0.893v-0.12c0.06 0 0.06 -0.06 0.06 -0.06c0.179 0 0.299 0.179 0.299 0.478h-0.12c0 -0.12 -0.06 -0.179 -0.06 -0.299Zm-0.359 -0.418c0.06 -0.179 0.239 -0.299 0.418 -0.299c0.239 0 0.359 0.12 0.478 0.299s0.12 0.359 0.12 0.538c0 0.239 0 0.359 -0.06 0.359v0.06h-0.06v-0.12c0 -0.179 -0.06 -0.359 -0.12 -0.538c-0.12 -0.12 -0.179 -0.179 -0.299 -0.179s-0.239 0.06 -0.299 0.179c-0.12 0.12 -0.12 0.239 -0.12 0.418c0 0.299 0.06 0.478 0.299 0.598c-0.06 0.06 -0.12 0.06 -0.179 0.12c-0.239 -0.239 -0.323 -0.478 -0.323 -0.714c0 -0.302 0.025 -0.482 0.144 -0.721m0.053 14.126c-0.285 0.359 -0.633 0.541 -1.048 0.541c-0.162 0 -0.601 -0.137 -1.322 -0.401s-1.361 -0.439 -1.912 -0.52v-0.004c-0.721 -0.095 -1.114 -0.257 -1.174 -0.489c0 -0.137 0.077 -0.327 0.225 -0.584c0.148 -0.246 0.221 -0.489 0.221 -0.735c0 -0.127 -0.025 -0.302 -0.07 -0.524c-0.049 -0.225 -0.07 -0.387 -0.07 -0.482c0 -0.207 0.077 -0.404 0.225 -0.577c0.113 -0.06 0.327 -0.095 0.643 -0.095h0.162c0.077 -0.007 0.13 -0.007 0.162 -0.007c0.137 -0.028 0.239 -0.06 0.299 -0.095c0.06 -0.042 0.095 -0.127 0.113 -0.25c0.011 -0.13 0.06 -0.257 0.144 -0.369s0.257 -0.197 0.506 -0.246c0.197 0.049 0.376 0.137 0.531 0.274c0.162 0.137 0.285 0.274 0.362 0.411c0.088 0.127 0.204 0.302 0.327 0.538c0.13 0.232 0.232 0.404 0.316 0.517l0.404 0.541c0.679 0.865 1.02 1.575 1.02 2.141c-0.004 0.158 -0.004 0.295 -0.063 0.411m1.311 -1.167c-0.714 0 -1.252 -0.165 -1.501 -0.506c-0.127 -0.232 -0.186 -0.352 -0.186 -0.359c0 -0.028 0.007 -0.042 0.018 -0.042c0.137 0 0.299 -0.07 0.418 -0.214c0.179 -0.137 0.239 -0.264 0.239 -0.387c0 -0.239 -0.359 -0.643 -1.03 -1.227l-0.633 -0.411c-0.499 -0.362 -0.816 -0.65 -0.949 -0.847c-0.12 -0.204 -0.186 -0.436 -0.186 -0.703c0 -0.362 0.13 -0.858 0.38 -1.396c0.25 -0.598 0.461 -1.012 0.633 -1.192l0.06 0.06c0.049 0 0.077 0 0.088 0.06c-0.207 0.239 -0.422 0.598 -0.636 1.132c-0.221 0.538 -0.327 0.988 -0.327 1.399c0 0.334 0.13 0.591 0.401 0.773c-0.025 -0.144 -0.035 -0.285 -0.035 -0.422c0 -0.686 0.246 -1.515 0.728 -2.408l0.446 -0.893c0.011 0 0.028 -0.12 0.053 -0.239c0.018 -0.179 0.109 -0.418 0.274 -0.833l0.376 -0.714c0.12 -0.239 0.179 -0.478 0.179 -0.654l0.359 0.299c0.179 0.239 0.478 0.299 0.833 0.299c0.418 0 0.893 -0.179 1.491 -0.598l0.538 -0.418c0.12 0.239 0.239 0.538 0.359 0.833c0.179 0.299 0.299 0.598 0.478 0.893c0 0.299 0.06 0.478 0.12 0.714c0.12 0.179 0.179 0.359 0.299 0.538l0.359 0.538c0.12 0.239 0.239 0.538 0.299 0.893c0.12 0.418 0.12 0.865 0.12 1.406c0 0.359 0 0.756 -0.06 1.216c-0.12 -0.088 -0.239 -0.13 -0.359 -0.13c-0.179 0 -0.299 0.088 -0.418 0.281c-0.12 0.19 -0.179 0.482 -0.179 0.868v0.221c0.06 0.077 0.06 0.264 0.06 0.559c-0.78 1.076 -1.793 1.61 -3.104 1.61m7.991 -0.503c-0.12 0.095 -0.239 0.165 -0.418 0.214c-0.12 0.053 -0.359 0.148 -0.598 0.292c-0.299 0.144 -0.538 0.309 -0.773 0.499l-1.012 0.875c-0.06 0.028 -0.06 0.06 -0.179 0.102c-0.06 0.049 -0.12 0.088 -0.179 0.13c-0.06 0.049 -0.179 0.088 -0.299 0.113q-0.179 0.053 -0.359 0.053c-0.478 0 -0.893 -0.225 -1.132 -0.675v-0.014l0.12 -0.661c0 -0.236 0 -0.446 0.06 -0.633c0 -0.186 0.06 -0.302 0.06 -0.359v-1.853c0 -0.626 0.12 -0.935 0.418 -0.935c0.12 0 0.179 0.053 0.299 0.155c0.06 0.25 0.12 0.471 0.239 0.661c0.179 0.257 0.418 0.387 0.893 0.387c0.12 0 0.299 -0.053 0.478 -0.155c0.12 -0.102 0.299 -0.207 0.359 -0.327c0.12 -0.12 0.239 -0.232 0.359 -0.334c0.06 -0.102 0.179 -0.155 0.239 -0.155s0.06 0.007 0.06 0.025c0.06 0.067 0.06 0.186 0.12 0.345l0.06 0.345c0.06 0.281 0.179 0.496 0.299 0.65c0.179 0.162 0.299 0.257 0.418 0.299s0.239 0.109 0.359 0.204s0.239 0.225 0.239 0.401c-0.007 0.148 -0.067 0.264 -0.127 0.352m-7.805 -11.204s-0.06 -0.06 -0.06 -0.12s0 -0.06 0.06 -0.06l0.12 0.06c0.06 0.06 0.12 0.12 0.12 0.179s-0.06 0.06 -0.06 0.06h-0.06c-0.06 0 -0.06 -0.06 -0.12 -0.12m-0.598 0.06c0 -0.06 0 -0.12 0.06 -0.179c0.12 0 0.179 -0.06 0.179 -0.06c0.06 0 0.06 0.06 0.06 0.06c0 0.06 -0.06 0.12 -0.179 0.239h-0.06c-0.06 0 -0.06 0 -0.06 -0.06\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"mark\"}]],\n \"os-windows\": [[\"path\",{\"d\":\"M3 3h8.532v8.529H3Zm9.468 0H21v8.529H12.468ZM3 12.468h8.532V21H3Zm9.468 0H21V21H12.468\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"mark\"}]],\n \"progress-1-4\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 0 1 18 12 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n \"progress-1-5\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 0 1 17.7063 10.1459 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n \"progress-2-4\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 0 1 12 18 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n \"progress-2-5\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 0 1 15.5267 16.8541 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n \"progress-3-4\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 1 1 6 12 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n \"progress-3-5\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 1 1 8.4733 16.8541 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n \"progress-4-5\": [[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"ring\"}],[\"path\",{\"d\":\"M12 12 L12 6 A6 6 0 1 1 6.2937 10.1459 Z\",\"fill\":\"currentColor\",\"stroke\":\"none\",\"key\":\"wedge\"}]],\n}\n",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"// Round 1 (contract §3 Form; FEED-128: hoisted from the React renderer's\n// form.tsx): the field REGISTRY a Form keeps and the rules around it,\n// framework-free. A Form collects every named field beneath it; submit runs\n// EVERY field's checks regardless of `validateOn` and, on any failure,\n// yields every message (document order) and the first invalid field to\n// focus; otherwise the values by name. A field shows its errors once it was\n// submitted, the Form refused a submit, or its `validateOn` moment passed.\n\nimport { coreCatalog } from \"@exponential_app/eui\"\n\n/** One registered field (a renderer's handle onto its control). */\nexport interface FormField {\n name: string\n domId: string\n value: () => unknown\n errors: () => string[]\n focus: () => void\n element: () => Element | null\n}\n\nexport interface FormError {\n name: string\n message: string\n}\n\nexport type FormCheck<F extends FormField = FormField> = { ok: false; errors: FormError[]; first: F | null } | { ok: true; values: Record<string, unknown> }\n\nconst VALIDATE_ON: Record<string, string> = Object.fromEntries(\n Object.entries(coreCatalog.components).flatMap(([name, def]) => {\n const d = (def.props as Record<string, { default?: unknown }>).validateOn?.default\n return d === undefined ? [] : [[name, String(d)]]\n })\n)\n\n/** A component's catalog default `validateOn`, or undefined. */\nexport function validateOnDefault(component: string): string | undefined {\n return VALIDATE_ON[component]\n}\n\n/** Whether a field shows its failing messages now. */\nexport function fieldErrorsVisible(state: { validateOn: string; submitted: boolean; attempts: number; dirty: boolean; touched: boolean }): boolean {\n return state.submitted || state.attempts > 0 || (state.validateOn === `change` ? state.dirty : state.validateOn === `blur` ? state.touched : false)\n}\n\n/** Fields in document order (unmounted ones keep their place). */\nexport function documentOrder<F extends FormField>(fields: Iterable<F>): F[] {\n return [...fields].sort((a, b) => {\n const ea = a.element()\n const eb = b.element()\n if (!ea || !eb) return 0\n return ea.compareDocumentPosition(eb) & 4 /* Node.DOCUMENT_POSITION_FOLLOWING */ ? -1 : 1\n })\n}\n\nexport class FormRegistry<F extends FormField = FormField> {\n readonly fields = new Set<F>()\n\n /** Adds a field; the returned function removes it. */\n register(field: F): () => void {\n this.fields.add(field)\n return () => void this.fields.delete(field)\n }\n\n /** Every field's checks: the failures (document order) and the first\n * invalid field, or the values by name. */\n check(): FormCheck<F> {\n const list = documentOrder(this.fields)\n const errors: FormError[] = []\n let first: F | null = null\n for (const f of list) {\n const errs = f.errors()\n if (errs.length && !first) first = f\n for (const message of errs) errors.push({ name: f.name, message })\n }\n if (errors.length) return { ok: false, errors, first }\n const values: Record<string, unknown> = {}\n for (const f of list) values[f.name] = f.value()\n return { ok: true, values }\n }\n\n /** The summary entries whose field still fails with that message (they\n * clear as their fields become valid). */\n stillFailing(summary: readonly FormError[]): FormError[] {\n return summary.filter((e) => [...this.fields].some((f) => f.name === e.name && f.errors().includes(e.message)))\n }\n}\n",
|
|
20
20
|
"// VAPP-87 + round 2 §5 (FEED-128: hoisted from the React renderer's\n// list.tsx): the DOM measurements a WINDOWED list needs, framework-free.\n// The window numbers themselves are the core's (`itemOffsets`,\n// `virtualWindow`, `scrollOffsetForIndex`, `stickyHeader`).\n\nimport { elementScale } from \"./primitives/measure\"\n\nexport type ListAxis = `vertical` | `horizontal`\n\n/** The nearest ancestor that scrolls on `axis`: overflow auto/scroll AND a\n * box shorter than its content (a content-sized `overflow: auto` box is not\n * a viewport). Null = the document scrolls (the window). */\nexport function scrollParent(el: HTMLElement | null, axis: ListAxis = `vertical`): HTMLElement | null {\n let cur = el?.parentElement ?? null\n while (cur && cur !== document.body && cur !== document.documentElement) {\n const cs = getComputedStyle(cur)\n const o = axis === `vertical` ? cs.overflowY : cs.overflowX\n const scrolls = axis === `vertical` ? cur.scrollHeight > cur.clientHeight + 1 : cur.scrollWidth > cur.clientWidth + 1\n if ((o === `auto` || o === `scroll`) && scrolls) return cur\n cur = cur.parentElement\n }\n return null\n}\n\n/** Where the list's content starts relative to the viewport's start on the\n * axis (the scroll offset in list coordinates) and the viewport length.\n * `known` = the scroller already found (null = the window). NEW-82: both\n * in the LIST's layout px: rect deltas are visual px (CSS zoom,\n * transforms), so they divide by the list's scale; the scroller's\n * client box is in its own layout px, so it multiplies by the scroller's. */\nexport function listViewport(el: HTMLElement, axis: ListAxis, rtl: boolean, known?: HTMLElement | null): { scroll: number; viewport: number; scroller: HTMLElement | null } {\n const scroller = known === undefined ? scrollParent(el, axis) : known\n const r = el.getBoundingClientRect()\n const ls = elementScale(el, r)\n if (axis === `vertical`) {\n if (scroller) {\n const s = scroller.getBoundingClientRect()\n const ss = elementScale(scroller, s).y\n return { scroll: (s.top + scroller.clientTop * ss - r.top) / ls.y, viewport: (scroller.clientHeight * ss) / ls.y, scroller }\n }\n return { scroll: -r.top / ls.y, viewport: window.innerHeight / ls.y, scroller }\n }\n if (scroller) {\n const s = scroller.getBoundingClientRect()\n const ss = elementScale(scroller, s).x\n const scroll = rtl ? r.right - (s.right - scroller.clientLeft * ss) : s.left + scroller.clientLeft * ss - r.left\n return { scroll: scroll / ls.x, viewport: (scroller.clientWidth * ss) / ls.x, scroller }\n }\n return { scroll: (rtl ? r.right - window.innerWidth : -r.left) / ls.x, viewport: window.innerWidth / ls.x, scroller }\n}\n",
|
|
21
21
|
"// Round 1 (a11y.json Select / TimePicker / ChipInput suggestions; FEED-128:\n// hoisted from the React renderer's natives/listbox.ts): the LISTBOX\n// keyboard model's arithmetic. ArrowUp/ArrowDown move the active option\n// (wrapping, skipping disabled), Home/End jump, printable keys type-ahead by\n// label (a 700 ms buffer; one repeated letter cycles).\n\n/** The TYPE-AHEAD buffer resets after this pause (ms). */\nexport const TYPEAHEAD_RESET_MS = 700\n\n/** The next enabled index `delta` steps from `from` (wrapping), or -1. */\nexport function nextEnabledIndex(count: number, from: number, delta: number, isDisabled: (index: number) => boolean = () => false): number {\n if (count === 0) return -1\n let i = from\n for (let n = 0; n < count; n++) {\n i = (((i + delta) % count) + count) % count\n if (!isDisabled(i)) return i\n }\n return -1\n}\n\nexport interface TypeaheadBuffer {\n text: string\n at: number\n}\n\n/** One printable key typed: the new buffer and the index it lands on (-1 =\n * no label starts with the buffer; the active option stays). */\nexport function typeaheadStep(buffer: TypeaheadBuffer, key: string, now: number, active: number, count: number, isDisabled: (index: number) => boolean, labelOf: (index: number) => string): { buffer: TypeaheadBuffer; index: number } {\n const next = { text: now - buffer.at > TYPEAHEAD_RESET_MS ? key.toLowerCase() : buffer.text + key.toLowerCase(), at: now }\n for (let n = 1; n <= count; n++) {\n const i = (Math.max(0, active) + (next.text.length > 1 ? n - 1 : n)) % count\n if (!isDisabled(i) && labelOf(i).toLowerCase().startsWith(next.text)) return { buffer: next, index: i }\n }\n return { buffer: next, index: -1 }\n}\n",
|
|
22
|
-
"// Round 2 §6 (catalog/recipes.json), FEED-128: hoisted from the React\n// renderer so every web renderer (React, Solid) reads ONE table. The SINGLE\n// parts a painter lays out and the conformance dump compares, by component.\n// A placed part carries `data-xui-id=\"<node id>.<part>\"`; per-item parts\n// carry `<id>.<part>.<item>` (the renderer's `part.at`). Paint-only parts\n// (thumbs, the Slider range, the check glyph, arrows, overlay content in its\n// layer) carry no id.\n\nexport const PLACED: Readonly<Record<string, readonly string[]>> = {\n Switch: [`body`, `label`, `description`, `track`],\n Input: [`label`, `field`, `description`, `error`],\n Textarea: [`label`, `field`, `description`, `error`],\n NumberField: [`label`, `field`, `decrement`, `input`, `unit`, `increment`, `description`, `error`],\n ChipInput: [`label`, `field`, `input`, `description`, `error`],\n Select: [`label`, `trigger`],\n DatePicker: [`label`, `trigger`],\n DateRangePicker: [`label`, `trigger`],\n TimePicker: [`label`, `trigger`],\n Radio: [`label`, `items`],\n ChoiceTiles: [`error`],\n Checkbox: [`box`, `label`, `description`],\n Slider: [`header`, `label`, `value`, `track`],\n Tabs: [`list`, `content`, `new`],\n // EXP-1259: the search list (a searchable submenu's parts carry `.<i>`).\n SearchList: [`head`, `search`, `count`, `body`, `list`, `empty`, `fade`],\n Menu: [`trigger`, `head`, `search`, `count`, `body`, `list`, `empty`, `fade`],\n Table: [`header`, `body`, `caption`, `empty`],\n Carousel: [`page`, `indicator`, `controls`, `previous`, `next`],\n Tooltip: [`anchor`],\n FileUpload: [`label`, `dropzone`, `icon`, `title`, `hint`, `browse`, `description`],\n CodeBlock: [`header`, `title`, `copy`, `body`],\n AudioPlayer: [`track`, `controls`],\n Video: [`controls`],\n Image: [`fallback`],\n Ring: [`label`],\n}\n\n/** The painted id of a SINGLE part (`<domId>.<part>`), or null when the\n * component does not place it. */\nexport function placedPartId(component: string, part: string, domId: string): string | null {\n return PLACED[component]?.includes(part) ? `${domId}.${part}` : null\n}\n",
|
|
22
|
+
"// Round 2 §6 (catalog/recipes.json), FEED-128: hoisted from the React\n// renderer so every web renderer (React, Solid) reads ONE table. The SINGLE\n// parts a painter lays out and the conformance dump compares, by component.\n// A placed part carries `data-xui-id=\"<node id>.<part>\"`; per-item parts\n// carry `<id>.<part>.<item>` (the renderer's `part.at`). Paint-only parts\n// (thumbs, the Slider range, the check glyph, arrows, overlay content in its\n// layer) carry no id.\n\nexport const PLACED: Readonly<Record<string, readonly string[]>> = {\n Switch: [`body`, `label`, `description`, `track`],\n Input: [`label`, `field`, `description`, `error`],\n Textarea: [`label`, `field`, `description`, `error`],\n NumberField: [`label`, `field`, `decrement`, `input`, `unit`, `increment`, `description`, `error`],\n ChipInput: [`label`, `field`, `input`, `description`, `error`],\n Select: [`label`, `trigger`],\n DatePicker: [`label`, `trigger`],\n DateRangePicker: [`label`, `trigger`],\n TimePicker: [`label`, `trigger`],\n Radio: [`label`, `items`],\n ChoiceTiles: [`error`],\n Checkbox: [`box`, `label`, `description`],\n Slider: [`header`, `label`, `value`, `track`],\n Tabs: [`list`, `content`, `new`],\n // EXP-1259: the search list (a searchable submenu's parts carry `.<i>`).\n SearchList: [`head`, `search`, `count`, `body`, `list`, `empty`, `fade`],\n Menu: [`trigger`, `head`, `search`, `count`, `body`, `list`, `empty`, `fade`],\n Table: [`header`, `body`, `caption`, `empty`],\n Carousel: [`page`, `indicator`, `controls`, `previous`, `next`, `counter`, `thumbnails`],\n Tooltip: [`anchor`],\n FileUpload: [`label`, `dropzone`, `icon`, `title`, `hint`, `browse`, `description`],\n CodeBlock: [`header`, `title`, `copy`, `body`],\n AudioPlayer: [`track`, `controls`],\n Video: [`controls`],\n Image: [`fallback`],\n Ring: [`label`],\n}\n\n/** The painted id of a SINGLE part (`<domId>.<part>`), or null when the\n * component does not place it. */\nexport function placedPartId(component: string, part: string, domId: string): string | null {\n return PLACED[component]?.includes(part) ? `${domId}.${part}` : null\n}\n",
|
|
23
23
|
"// VAPP-141 (React) + VAPP-152 (Solid, the element): structural sharing\n// between two reduced trees, so a streamed `updateComponents` reaches only\n// the nodes it changed.\n\nconst isPlainObject = (v: object): boolean => {\n const proto = Object.getPrototypeOf(v)\n return proto === Object.prototype || proto === null\n}\nconst idOf = (v: unknown): string | undefined => (typeof v === `object` && v !== null && typeof (v as { id?: unknown }).id === `string` ? (v as { id: string }).id : undefined)\n\n/** `next` with every part deep-equal to `prev`'s replaced by `prev`'s\n * object (arrays of nodes matched by `id`, other arrays by index): a\n * re-reduce (`updateComponents`) hands every unchanged node its old\n * object, so the renderers skip it. Plain JSON only; anything else is\n * taken as it is. */\nexport function share<T>(prev: unknown, next: T): T {\n if (Object.is(prev, next) || typeof prev !== `object` || typeof next !== `object` || prev === null || next === null) return next\n if (Array.isArray(next)) {\n if (!Array.isArray(prev)) return next\n const byId = prev.length > 0 && idOf(prev[0]) !== undefined ? new Map(prev.map((p) => [idOf(p), p])) : null\n let same = prev.length === next.length\n const out = next.map((v, i) => {\n const id = byId ? idOf(v) : undefined\n const s = share(id !== undefined ? byId!.get(id) : prev[i], v)\n if (s !== prev[i]) same = false\n return s\n })\n return (same ? prev : out) as T\n }\n if (Array.isArray(prev) || !isPlainObject(prev) || !isPlainObject(next)) return next\n const p = prev as Record<string, unknown>\n const keys = Object.keys(next)\n let same = keys.length === Object.keys(p).length\n const out: Record<string, unknown> = {}\n for (const k of keys) {\n const had = Object.prototype.hasOwnProperty.call(p, k)\n const s = share(had ? p[k] : undefined, (next as Record<string, unknown>)[k])\n out[k] = s\n if (!had || s !== p[k]) same = false\n }\n return (same ? prev : out) as T\n}\n"
|
|
24
24
|
],
|
|
25
|
-
"mappings": "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",
|
|
26
|
-
"debugId": "
|
|
25
|
+
"mappings": "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",
|
|
26
|
+
"debugId": "1A8295752F81FE6764756E2164756E21",
|
|
27
27
|
"names": []
|
|
28
28
|
}
|