@exponential_app/eui-react 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +48 -32
- package/dist/index.js.map +5 -5
- package/dist/types/context.d.ts +2 -0
- package/dist/types/natives/overlays.d.ts +1 -1
- package/dist/types/surface.d.ts +6 -1
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/surface.tsx", "../src/context.tsx", "../src/extensions.ts", "../src/node-view.tsx", "../src/live.ts", "../src/form.tsx", "../src/natives/shared.tsx", "../src/icons.tsx", "../src/natives/actions.tsx", "../src/natives/bound.ts", "../src/natives/chart.tsx", "../src/platform.ts", "../src/natives/chips.tsx", "../src/natives/listbox.ts", "../src/natives/choice-tiles.tsx", "../src/media.ts", "../src/natives/code.tsx", "../src/natives/dates.tsx", "../src/natives/motion.tsx", "../src/natives/resizable.tsx", "../src/natives/feedback.tsx", "../src/natives/inputs.tsx", "../src/inputs.ts", "../src/natives/layout.tsx", "../src/list.tsx", "../src/natives/media.tsx", "../src/natives/nav.tsx", "../src/natives/overlays.tsx", "../src/natives/search.tsx", "../src/natives/qr.tsx", "../src/natives/select.tsx", "../src/natives/table.tsx", "../src/natives/text.tsx", "../src/markdown.tsx", "../src/natives/zoomable-image.tsx", "../src/natives/index.ts", "../src/use-surface.ts", "../src/index.ts", "../src/host-surface.tsx"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"// VAPP-87 + round 1: `<ExponentialSurface>` — one A2UI surface painted with\n// real CSS. The root carries the theme's scope class + the variable block\n// (per mode), the surface's node sheet, the live regions, and an inner\n// `xui` CONTAINER the breakpoints resolve against (a container query cannot\n// target its own element, so the root and the container are two elements).\n// The OVERLAY and TOAST layers sit INSIDE the container (round 1, audit bug\n// C): a Dialog's content still matches `@container xui` breakpoints, and an\n// inline-size container does not trap `position: fixed`. Themes,\n// extensions, the host plugin and the surface settings (locale, strings,\n// mode incl. `system`, density, contrast) are props; nothing global is\n// touched, so two surfaces on one page can wear two themes.\n\nimport { useCallback, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, type CSSProperties, type ReactNode, type Ref } from \"react\"\nimport {\n activeBreakpoint,\n applyContrast,\n applyDensity,\n builtinTheme,\n formatString,\n intlFormatter,\n themeOrDefault,\n mediaMatches,\n parseMediaCondition,\n readOnlyTemplates,\n readOnlyTree,\n resolveMode,\n stringTable,\n templateBudget,\n textDirection,\n DEFAULT_LOCALE,\n DEFAULT_THEME_ID,\n} from \"@exponential_app/eui\"\nimport type { Formatter, ModeName, ResolvedTheme, ScrollAlign, TemplateBudget, ThemeIssue, ThemeSource, UiNode, SurfaceCommand } from \"@exponential_app/eui\"\nimport { BASE_CSS } from \"@exponential_app/eui/web\"\nimport { compileNodeSheet, nodeSheetBatches, queryToken, share, surfaceClass, type NodeSheetBatch } from \"@exponential_app/eui/web\"\nimport { SurfaceContext, type SurfaceContextValue } from \"./context\"\nimport { CLIENT_FUNCTIONS, memoFormatter, setPointer, type DataModel } from \"@exponential_app/eui/web\"\nimport { extensionCatalogs, extensionMacroNames, registeredExtensions, subscribeExtensions, type ReactExtension } from \"./extensions\"\nimport type { HostPlugin } from \"./host\"\nimport { NodeView } from \"./node-view\"\nimport { useMediaQuery } from \"./platform\"\nimport { openAllowed } from \"@exponential_app/eui/web\"\nimport { compiledTheme } from \"@exponential_app/eui/web\"\nimport { layoutSize } from \"@exponential_app/eui/web\"\nimport type { SurfaceState } from \"./use-surface\"\n\nexport type ThemeInput = ResolvedTheme | ThemeSource | string\n\n/** What a host can ask of a live surface (`SurfaceCommand`, a11y.json). */\nexport interface SurfaceHandle {\n run: (command: SurfaceCommand) => void\n /** Focus the node (or its first focusable descendant); false if absent. */\n focus: (id: string) => boolean\n announce: (text: string, live?: `polite` | `assertive`) => void\n scrollIntoView: (id: string) => boolean\n /** Round 2: item `index` (data order) of the List/Table `id` into view;\n * false when no such list is painted. */\n scrollToIndex: (id: string, index: number, align?: ScrollAlign) => boolean\n}\n\nexport interface ExponentialSurfaceProps {\n /** The state from `useSurface` (tree + data + templates)… */\n surface?: SurfaceState\n /** …or a normalized tree (a fixture) with an optional data model… */\n root?: UiNode | null\n /** …and its LIFTED templates (`ReduceResult.templates`, round 2 §4): a\n * data template's component lives here, never in the tree. */\n templates?: Readonly<Record<string, UiNode>>\n data?: DataModel\n /** A built-in id (`exponential` | `neutral` | `playful` | `orange`), a theme file\n * (resolved against the built-ins) or a resolved theme. */\n theme?: ThemeInput\n /** `light | dark | system` (default `system`: the platform's preference,\n * followed live). */\n mode?: ModeName | `system`\n /** Scales `$control.*` and `$spacing.*` by the theme's `$density.*`. */\n density?: `compact` | `default` | `comfortable`\n /** `system` (default) follows `prefers-contrast: more`; `high` forces the\n * theme's high-contrast overlays. */\n contrast?: `normal` | `high` | `system`\n /** BCP 47 (default `en-US`): formatting, calendar names, week start, the\n * default text direction. */\n locale?: string\n /** IANA time zone dates and relative times format in (default the\n * platform's). */\n timeZone?: string\n /** Built-in string overrides by id (`catalog/strings.json`). */\n strings?: Record<string, string>\n /** VAPP-200: the viewer may read, not write (an app at app access\n * `read`): every writing control paints disabled (`readOnlyTree`). */\n readOnly?: boolean\n host?: HostPlugin\n extensions?: readonly ReactExtension[]\n /** Forced interaction states on every node (the builder's recipe sheet). */\n states?: readonly string[]\n /** Geometry mode: leaves become fixed boxes of the returned size. */\n measure?: (node: UiNode) => { w: number; h: number } | null\n /** Default: the locale's direction (`textDirection`). */\n direction?: `ltr` | `rtl`\n /** The surface width; default = the host's box. */\n width?: number | string\n /** The height of the VIEWPORT the surface is shown in: what the height and\n * orientation style conditions test (the Rust core's `set_viewport`\n * height). Default: an explicit inline `style.height` on the surface,\n * else UNKNOWN (orientation = landscape, no min/max-height matches;\n * contract §2) — never the surface's CONTENT height (a height rule must\n * not feed back into its own measurement). The gpui host passes 0 (=\n * unknown) today, so the default keeps web and desktop identical. */\n viewportHeight?: number\n /** An explicit id (defaults to React's `useId`); must be unique per page. */\n id?: string\n /** Host → surface commands (focus, announce, scrollIntoView). */\n handleRef?: Ref<SurfaceHandle>\n className?: string\n style?: CSSProperties\n children?: ReactNode\n}\n\n/** A theme prop, resolved: the theme to paint with and why the asked one\n * was refused (empty when it loaded). */\nexport interface ThemeResolution {\n theme: ResolvedTheme\n issues: ThemeIssue[]\n}\n\nconst resolvedCache = new Map<string, ThemeResolution>()\n\n/** A theme prop → the resolved theme (built-ins cached by id, theme files\n * resolved against the built-ins and cached by content). NEVER throws\n * (round 4, VAPP-103): an unknown built-in id or an invalid theme file\n * paints with the default theme and carries its issues, which the surface\n * reports through `HostPlugin.onThemeIssues`. */\nexport function resolveThemeInput(input: ThemeInput | undefined): ThemeResolution {\n if (!input) return { theme: builtinTheme(DEFAULT_THEME_ID), issues: [] }\n if (typeof input === `string`) return themeOrDefault(input)\n if (`chain` in input && Array.isArray((input as ResolvedTheme).chain)) return { theme: input as ResolvedTheme, issues: [] }\n let key: string\n try {\n key = JSON.stringify(input)\n } catch {\n return { theme: builtinTheme(DEFAULT_THEME_ID), issues: [{ path: `theme`, message: `expected a theme object {id, name, modes, tokens, recipes}` }] }\n }\n let hit = resolvedCache.get(key)\n if (!hit) {\n hit = themeOrDefault(input)\n resolvedCache.set(key, hit)\n }\n return hit\n}\n\nconst derivedCache = new WeakMap<ResolvedTheme, Map<string, ResolvedTheme>>()\n\n/** The theme a surface runs with: density applied, then the contrast\n * overlays when asked (memoized per theme, so the compiled sheet is too). */\nexport function surfaceTheme(theme: ResolvedTheme, density: `compact` | `default` | `comfortable`, highContrast: boolean): ResolvedTheme {\n if (density === `default` && !highContrast) return theme\n let byKey = derivedCache.get(theme)\n if (!byKey) {\n byKey = new Map()\n derivedCache.set(theme, byKey)\n }\n const key = `${density}/${highContrast}`\n let hit = byKey.get(key)\n if (!hit) {\n hit = applyDensity(theme, density)\n if (highContrast) hit = applyContrast(hit)\n byKey.set(key, hit)\n }\n return hit\n}\n\nconst EMPTY: readonly ReactExtension[] = []\nconst NO_TEMPLATES: Readonly<Record<string, UiNode>> = {}\nconst EMPTY_HOST: HostPlugin = {}\n\nconst useIsoLayoutEffect = typeof window === `undefined` ? useEffect : useLayoutEffect\n\n/** What the surface knows of its box: the measured WIDTH and the condition\n * height (an explicit inline height; see `viewportHeight`). */\nexport interface SurfaceBox {\n width: number\n /** Undefined = unknown. */\n height: number | undefined\n measured: boolean\n}\n\nexport interface LayoutInputs {\n breakpoints: Record<string, number>\n queries: readonly string[]\n viewportHeight: number | undefined\n hover: boolean\n reducedMotion: boolean\n}\n\n/** The only layout facts that reach React: the active breakpoint and the\n * matching JS-evaluated conditions (`data-xq`). A resize that changes\n * neither re-renders nothing. */\nexport function surfaceLayout(box: SurfaceBox, inputs: LayoutInputs): { breakpoint: string | null; xq: string } {\n const breakpoint = activeBreakpoint(box.width, inputs.breakpoints)\n const height = inputs.viewportHeight ?? box.height\n const ctx = { width: box.width, height, hover: inputs.hover, reducedMotion: inputs.reducedMotion }\n const xq = inputs.queries\n .filter((key) => {\n const c = parseMediaCondition(key)\n return c ? mediaMatches(c, ctx) : false\n })\n .map(queryToken)\n .join(` `)\n return { breakpoint, xq }\n}\n\nconst NO_CHUNKS: ReadonlyMap<string, string> = new Map()\n/** One `dangerouslySetInnerHTML` object per batch (a new object rewrites the element). */\nconst batchHtml = new WeakMap<NodeSheetBatch, { __html: string }>()\n\nconst FOCUSABLE = `input:not([disabled]),textarea:not([disabled]),select:not([disabled]),button:not([disabled]),a[href],[tabindex]:not([tabindex=\"-1\"]),[contenteditable=\"true\"]`\n\n/** `intlFormatter` built on its first use (VAPP-137): the platform zone\n * costs an `Intl.DateTimeFormat` (~7 ms cold), and most surfaces format\n * nothing. */\nfunction lazyFormatter(locale: string, timeZone: string | undefined): Formatter {\n let base: Formatter | undefined\n const get = () => (base ??= intlFormatter(locale, timeZone ?? platformZone()))\n return {\n locale,\n number: (value, o) => get().number(value, o),\n currency: (value, currency, o) => get().currency(value, currency, o),\n percent: (value, o) => get().percent(value, o),\n date: (value, o) => get().date(value, o),\n relativeTime: (value, now) => get().relativeTime(value, now),\n plural: (value) => get().plural(value),\n offsetMinutes: (ms) => get().offsetMinutes?.(ms) ?? 0,\n }\n}\n\nconst platformZone = (): string => {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || `UTC`\n } catch {\n return `UTC`\n }\n}\n\n/** Bundlers replace `process.env.NODE_ENV`; without one (a raw ESM load)\n * it throws, which counts as production. Declared here so the published\n * types build without Node's. */\ndeclare const process: { env: { NODE_ENV?: string } }\nconst IS_DEV = (() => {\n try {\n return process.env.NODE_ENV !== `production`\n } catch {\n return false\n }\n})()\nconst warnedTemplates = new Set<string>()\n\n/** Dev only: a node whose `template.component` is not in `templates` paints\n * NO items (round 2 §4: the reducer lifts templates out of the tree; pass\n * the reduce result's `templates` next to `root`). */\nfunction warnMissingTemplates(surfaceId: string, root: UiNode, templates: Record<string, UiNode>): void {\n const visit = (n: UiNode) => {\n const id = (n.template as { component?: unknown } | undefined)?.component\n if (typeof id === `string` && !templates[id]) {\n const key = `${surfaceId}\\u0000${id}`\n if (!warnedTemplates.has(key)) {\n warnedTemplates.add(key)\n console.warn(`[exponential-ui] surface \"${surfaceId}\": \"${n.id}\" templates \"${id}\", which is not in \\`templates\\` (pass the reducer's \\`templates\\` with \\`root\\`); it renders no items.`)\n }\n }\n for (const c of n.children) visit(c)\n for (const sl of Object.values(n.slots ?? {})) visit(sl)\n }\n visit(root)\n for (const t of Object.values(templates)) visit(t)\n}\n\n/** Whether a tree calls `formatRelativeTime` without a `now`, or has a\n * Table with a `relativeTime` column (or bound columns, unknown until\n * data): the surface then re-binds once a minute (round 2 §3). */\nconst isPlain = (v: unknown): v is Record<string, unknown> => typeof v === `object` && v !== null && !Array.isArray(v)\n\n/** Structural equality, short-circuiting on identity at every level (an\n * inline `data={{ items, filter }}` with stable values costs one pass over\n * its top-level keys). */\nexport function sameData(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) return true\n if (typeof a !== `object` || typeof b !== `object` || a === null || b === null) return false\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) if (!sameData(a[i], b[i])) return false\n return true\n }\n if (!isPlain(b) || Array.isArray(b)) return false\n const pa = Object.getPrototypeOf(a)\n if (pa !== Object.prototype && pa !== null) return false\n const ka = Object.keys(a as object)\n if (ka.length !== Object.keys(b).length) return false\n for (const k of ka) if (!Object.prototype.hasOwnProperty.call(b, k) || !sameData((a as Record<string, unknown>)[k], b[k])) return false\n return true\n}\n\nfunction usesLiveClock(value: unknown): boolean {\n if (Array.isArray(value)) return value.some(usesLiveClock)\n if (typeof value !== `object` || value === null) return false\n const v = value as Record<string, unknown>\n if (v.call === `formatRelativeTime` && (typeof v.args !== `object` || v.args === null || (v.args as Record<string, unknown>).now === undefined)) return true\n if (v.component === `Table`) {\n const columns = (v.props as Record<string, unknown> | undefined)?.columns\n if (Array.isArray(columns) ? columns.some((c) => (c as Record<string, unknown> | null)?.type === `relativeTime`) : typeof columns === `object` && columns !== null) return true\n }\n return Object.values(v).some(usesLiveClock)\n}\n\nfunction sameBudget(a: TemplateBudget | undefined, b: TemplateBudget | undefined): boolean {\n if (a === b) return true\n if (!a || !b || a.issue?.id !== b.issue?.id || a.issue?.message !== b.issue?.message || a.allowed.size !== b.allowed.size) return false\n for (const [k, v] of a.allowed) if (b.allowed.get(k) !== v) return false\n return true\n}\n\ntype LiveMembers = Pick<SurfaceContextValue, `data` | `breakpoint` | `xq` | `mode`>\n\n/** The context with its live members as getters over `live`. */\nfunction withLive(value: Omit<SurfaceContextValue, keyof LiveMembers>, live: { current: LiveMembers }): SurfaceContextValue {\n return Object.defineProperties(value, {\n data: { get: () => live.current.data, enumerable: true, configurable: true },\n breakpoint: { get: () => live.current.breakpoint, enumerable: true, configurable: true },\n xq: { get: () => live.current.xq, enumerable: true, configurable: true },\n mode: { get: () => live.current.mode, enumerable: true, configurable: true },\n }) as SurfaceContextValue\n}\n\nexport function ExponentialSurface({\n surface,\n root: rootProp,\n templates: templatesProp,\n data: dataProp,\n theme: themeProp,\n mode: modeSetting = `system`,\n density = `default`,\n contrast = `system`,\n locale = DEFAULT_LOCALE,\n timeZone,\n strings: stringOverrides,\n readOnly = false,\n host,\n extensions: extensionsProp = EMPTY,\n states = EMPTY as unknown as readonly string[],\n measure,\n direction: directionProp,\n width,\n viewportHeight,\n id: idProp,\n handleRef,\n className,\n style,\n children,\n}: ExponentialSurfaceProps) {\n const reactId = useId()\n const surfaceId = idProp ?? surface?.surfaceId ?? reactId.replace(/[^a-zA-Z0-9]/g, ``)\n const prefersDark = useMediaQuery(`(prefers-color-scheme: dark)`)\n const prefersContrast = useMediaQuery(`(prefers-contrast: more)`)\n const reducedMotion = useMediaQuery(`(prefers-reduced-motion: reduce)`)\n const hover = useMediaQuery(`(hover: hover)`, true)\n const mode: ModeName = modeSetting === `system` ? resolveMode(`system`, prefersDark) : modeSetting\n const resolution = useMemo(() => resolveThemeInput(themeProp), [themeProp])\n const baseTheme = resolution.theme\n // An unusable theme never crashes the host: the surface paints with the\n // default theme and hands the issues over once per resolution.\n const onThemeIssues = host?.onThemeIssues\n useEffect(() => {\n if (resolution.issues.length > 0) onThemeIssues?.(resolution.issues)\n }, [resolution, onThemeIssues])\n const theme = surfaceTheme(baseTheme, density, contrast === `high` || (contrast === `system` && prefersContrast))\n const global = useSyncExternalStore(subscribeExtensions, registeredExtensions, registeredExtensions)\n const extensions = useMemo(() => [...global, ...extensionsProp], [global, extensionsProp])\n const extensionDefs = useMemo(() => extensionCatalogs(extensions), [extensions])\n const macros = useMemo(() => extensionMacroNames(extensions), [extensions])\n const compiled = useMemo(() => compiledTheme(theme, { extensionMacros: macros }), [theme, macros])\n const direction = directionProp ?? textDirection(locale)\n const strings = useMemo(() => stringTable(stringOverrides ?? {}), [stringOverrides])\n const t = useCallback((id: string, params?: Record<string, unknown>) => formatString(strings[id] ?? id, params ?? {}), [strings])\n\n // Data: the surface state's, or local state over the `data` prop.\n // A `data` prop with new CONTENT replaces the local model (an inline\n // object re-created on every parent render keeps the user's edits).\n // Compared structurally against the last ADOPTED prop (identity first,\n // then per top-level key), never serialised.\n const [localData, setLocalData] = useState<DataModel>(dataProp ?? {})\n const [seenData, setSeenData] = useState(dataProp)\n if (dataProp !== seenData && !sameData(dataProp, seenData)) {\n setSeenData(dataProp)\n setLocalData(dataProp ?? {})\n }\n const data = surface ? surface.data : localData\n // Through a ref: the surface state is a new object on every change, and a\n // new `setData` would be a new context (every node re-rendered).\n const latestSurface = useRef(surface)\n latestSurface.current = surface\n const setData = useCallback((pointer: string, value: unknown) => {\n const current = latestSurface.current\n if (current) current.setData(pointer, value)\n else setLocalData((cur) => setPointer(cur, pointer, value))\n }, [])\n\n // VAPP-141: a new tree shares every unchanged node with the last one\n // (`share`), so a streamed `updateComponents` re-renders only the nodes\n // it changed.\n const lastTree = useRef<{ root: UiNode | null; templates: Readonly<Record<string, UiNode>> }>({ root: null, templates: NO_TEMPLATES })\n const rawRoot = surface ? surface.root : (rootProp ?? null)\n // VAPP-200: a read-only surface disables its writing controls, root and\n // lifted templates alike.\n const root = useMemo(() => (lastTree.current.root = share(lastTree.current.root, readOnly && rawRoot ? readOnlyTree(rawRoot) : rawRoot)), [rawRoot, readOnly])\n // Round 2 §4: a data template's node comes from the reducer's LIFTED\n // `templates` (it is no longer in the tree, so never painted in place).\n const rawTemplates = (surface ? surface.templates : templatesProp) ?? NO_TEMPLATES\n const templates = useMemo(() => (lastTree.current.templates = share(lastTree.current.templates, readOnly ? readOnlyTemplates(rawTemplates) : rawTemplates)), [rawTemplates, readOnly])\n const templateNode = useCallback((componentId: string) => templates[componentId], [templates])\n const templateRoots = useMemo(() => Object.values(templates), [templates])\n // VAPP-103: past `maxTemplateItems` items or `maxComponents` nodes per\n // surface the rest is not rendered (ONE issue, the Rust build's rule).\n // Kept while its counts are the same (it is in the context: a new one\n // re-renders every node).\n const lastBudget = useRef<TemplateBudget | undefined>(undefined)\n const budget = useMemo(() => {\n const next = root ? templateBudget(root, data, templateNode) : undefined\n if (sameBudget(lastBudget.current, next)) return lastBudget.current\n return (lastBudget.current = next)\n }, [root, data, templateNode])\n useEffect(() => {\n if (budget?.issue) console.warn(`[exponential-ui] ${surfaceId}: ${budget.issue.id}: ${budget.issue.message}`)\n }, [surfaceId, budget?.issue?.id, budget?.issue?.message])\n useEffect(() => {\n if (IS_DEV && root) warnMissingTemplates(surfaceId, root, templates)\n }, [surfaceId, root, templates])\n const sheet = useMemo(() => (root ? compileNodeSheet([root, ...templateRoots], surfaceId, theme) : { css: ``, queries: [], chunks: NO_CHUNKS }), [root, templateRoots, surfaceId, theme])\n // VAPP-152: the node sheet in `<style>` batches; a streamed node adds\n // one, the unchanged ones keep their element and text (no surface-wide\n // restyle).\n const lastBatches = useRef<NodeSheetBatch[]>([])\n const batches = useMemo(() => (lastBatches.current = nodeSheetBatches(lastBatches.current, sheet.chunks)), [sheet.chunks])\n\n const [rootEl, setRootEl] = useState<HTMLElement | null>(null)\n const [portal, setPortal] = useState<HTMLElement | null>(null)\n const [toastLayer, setToastLayer] = useState<HTMLElement | null>(null)\n // The box lives in a REF: the ResizeObserver tick updates it and only\n // pokes React when the derived layout (breakpoint + data-xq) changes, so\n // dragging a window edge does not re-render the tree 60 times a second.\n const box = useRef<SurfaceBox>({ width: typeof width === `number` ? width : 0, height: undefined, measured: false })\n const layoutInputs: LayoutInputs = { breakpoints: theme.tokens.breakpoint ?? {}, queries: sheet.queries, viewportHeight, hover, reducedMotion }\n const { breakpoint, xq } = surfaceLayout(box.current, layoutInputs)\n const inputsRef = useRef(layoutInputs)\n inputsRef.current = layoutInputs\n const [, setLayoutKey] = useState(``)\n useIsoLayoutEffect(() => {\n if (!rootEl) return\n // NEW-82: layout px, so a zoomed/scaled host frame keeps its breakpoints.\n const read = (entries?: ResizeObserverEntry[]) => {\n const r = layoutSize(rootEl, entries?.find((e) => e.target === rootEl))\n // No layout yet (SSR, jsdom, display:none): keep the initial guess.\n if (!box.current.measured && r.width === 0 && r.height === 0) return\n // Only an EXPLICIT height is a viewport; a content-sized root is not.\n const explicit = rootEl.style.height !== `` && rootEl.style.height !== `auto`\n box.current = { width: r.width, height: explicit ? r.height : undefined, measured: true }\n const next = surfaceLayout(box.current, inputsRef.current)\n setLayoutKey(`${next.breakpoint ?? ``}|${next.xq}`)\n }\n read()\n if (typeof ResizeObserver === `undefined`) return\n const ro = new ResizeObserver((entries) => read(entries))\n ro.observe(rootEl)\n return () => ro.disconnect()\n }, [rootEl])\n\n // Live regions: `announce` swaps the text (cleared first, so the same\n // message twice is spoken twice).\n const politeRef = useRef<HTMLDivElement>(null)\n const assertiveRef = useRef<HTMLDivElement>(null)\n const announce = useCallback((text: string, live: `polite` | `assertive` = `polite`) => {\n const el = live === `assertive` ? assertiveRef.current : politeRef.current\n if (!el) return\n el.textContent = ``\n setTimeout(() => {\n el.textContent = text\n }, 30)\n }, [])\n\n const functions = useMemo(() => ({ ...CLIENT_FUNCTIONS, ...(host?.functions ?? {}) }), [host?.functions])\n const formatter = useMemo(() => memoFormatter(lazyFormatter(locale, timeZone)), [locale, timeZone])\n // The surface clock: a tree that formats a relative time against \"now\"\n // re-binds once a minute (a new `now` reaches every node).\n const liveClock = useMemo(() => usesLiveClock(root) || usesLiveClock(templateRoots), [root, templateRoots])\n const [minute, setMinute] = useState(() => Date.now())\n useEffect(() => {\n if (!liveClock) return\n const timer = setInterval(() => setMinute(Date.now()), 60_000)\n return () => clearInterval(timer)\n }, [liveClock])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const now = useMemo(() => () => Date.now(), [minute])\n const scrollers = useRef(new Map<string, (index: number, align?: ScrollAlign) => void>())\n const registerScroller = useCallback((id: string, scroll: (index: number, align?: ScrollAlign) => void) => {\n scrollers.current.set(id, scroll)\n return () => {\n if (scrollers.current.get(id) === scroll) scrollers.current.delete(id)\n }\n }, [])\n const paintFailures = useRef(new Map<string, string>()).current\n const hostValue = host ?? EMPTY_HOST\n // Every open passes the URL policy (the host's opener or a new tab).\n const openUrl = useCallback((url: string) => openAllowed(hostValue, url), [hostValue])\n\n // VAPP-141 + VAPP-130: data, breakpoint, xq and mode are LIVE members (getters over this\n // render's values); the context keeps its identity when only they change\n // and the layout effect below tells the subscribed nodes (`live.ts`).\n const live = useRef({ data, breakpoint, xq, mode })\n live.current = { data, breakpoint, xq, mode }\n const listeners = useRef(new Set<() => void>()).current\n const subscribe = useCallback(\n (listener: () => void) => {\n listeners.add(listener)\n return () => void listeners.delete(listener)\n },\n [listeners]\n )\n useIsoLayoutEffect(() => {\n for (const listener of [...listeners]) listener()\n }, [data, breakpoint, xq, mode, listeners])\n const ctx: SurfaceContextValue = useMemo(\n () => withLive({\n surfaceId,\n compiled,\n theme,\n host: hostValue,\n extensions,\n extensionDefs,\n setData,\n templateNode,\n templateBudget: budget,\n states,\n measure,\n portal,\n toastLayer,\n direction,\n functions,\n openUrl,\n locale,\n formatter,\n now,\n registerScroller,\n paintFailures,\n strings,\n t,\n reducedMotion,\n hover,\n announce,\n subscribe,\n }, live),\n [surfaceId, compiled, theme, hostValue, extensions, extensionDefs, setData, templateNode, budget, states, measure, portal, toastLayer, direction, functions, openUrl, locale, formatter, now, registerScroller, paintFailures, strings, t, reducedMotion, hover, announce, subscribe]\n )\n\n const nodeEl = useCallback((id: string): HTMLElement | null => rootEl?.querySelector<HTMLElement>(`[data-xui-id=\"${typeof CSS !== `undefined` && CSS.escape ? CSS.escape(id) : id.replace(/\"/g, `\\\\\"`)}\"]`) ?? null, [rootEl])\n useImperativeHandle(\n handleRef,\n (): SurfaceHandle => {\n const focus = (id: string) => {\n const el = nodeEl(id)\n if (!el) return false\n const target = el.matches(FOCUSABLE) ? el : el.querySelector<HTMLElement>(FOCUSABLE)\n ;(target ?? el).focus()\n return true\n }\n const scrollIntoView = (id: string) => {\n const el = nodeEl(id)\n if (!el) return false\n el.scrollIntoView({ block: `nearest`, behavior: reducedMotion ? `auto` : `smooth` })\n return true\n }\n const scrollToIndex = (id: string, index: number, align?: ScrollAlign) => {\n const scroll = scrollers.current.get(id)\n if (!scroll) return false\n scroll(index, align)\n return true\n }\n return {\n focus,\n scrollIntoView,\n scrollToIndex,\n announce,\n run: (command) => {\n if (`focus` in command) focus(command.focus.id)\n else if (`announce` in command) announce(command.announce.text, command.announce.live)\n else if (`scrollIntoView` in command) scrollIntoView(command.scrollIntoView.id)\n else if (`scrollToIndex` in command) scrollToIndex(command.scrollToIndex.id, command.scrollToIndex.index, command.scrollToIndex.align)\n },\n }\n },\n [nodeEl, announce, reducedMotion]\n )\n\n const md = theme.tokens.breakpoint?.md ?? 768\n const scopeSel = `.${surfaceClass(surfaceId)}`\n const layerCss = `@layer xui-base{@container xui (width >= ${md}px){${scopeSel} .xui-toast-layer{left:auto;right:var(--xui-spacing-lg);transform:none;align-items:flex-end}${scopeSel}[dir=\"rtl\"] .xui-toast-layer{right:auto;left:var(--xui-spacing-lg)}}}`\n\n // VAPP-141: React rewrites a `dangerouslySetInnerHTML` whenever the\n // OBJECT is new, and a rewritten sheet restyles the whole surface: one\n // object per sheet text.\n const themeHtml = useMemo(() => ({ __html: `${BASE_CSS}\\n${compiled.css}` }), [compiled.css])\n const nodesHtml = useMemo(() => {\n const list: readonly NodeSheetBatch[] = batches.length ? batches : [{ chunks: NO_CHUNKS, css: sheet.css }]\n return list.map((batch, i) => {\n const css = i === 0 ? `${batch.css}${layerCss}` : batch.css\n const hit = batchHtml.get(batch)\n if (hit && hit.__html === css) return hit\n const html = { __html: css }\n batchHtml.set(batch, html)\n return html\n })\n }, [batches, sheet.css, layerCss])\n\n return (\n <div\n ref={setRootEl}\n className={[`xui-surface`, compiled.scope, surfaceClass(surfaceId), className].filter(Boolean).join(` `)}\n data-xui-surface={surfaceId}\n data-xui-mode={mode}\n data-xui-theme={theme.id}\n data-xui-density={density === `default` ? undefined : density}\n data-xui-motion={reducedMotion ? `reduce` : undefined}\n data-xq={xq || undefined}\n dir={direction}\n style={width === undefined ? style : { width, ...style }}\n >\n <style data-xui-style=\"theme\" dangerouslySetInnerHTML={themeHtml} />\n {nodesHtml.map((html, i) => (\n <style key={i} data-xui-style=\"nodes\" dangerouslySetInnerHTML={html} />\n ))}\n <SurfaceContext.Provider value={ctx}>\n <div className=\"xui-container\">\n {root ? <NodeView node={root} /> : null}\n {children}\n <div ref={setPortal} className=\"xui-layer\" data-xui-layer=\"overlay\" />\n <div ref={setToastLayer} className=\"xui-toast-layer\" data-xui-layer=\"toast\" />\n </div>\n </SurfaceContext.Provider>\n <div ref={politeRef} className=\"xui-sr-only\" aria-live=\"polite\" aria-atomic=\"true\" data-xui-live=\"polite\" />\n <div ref={assertiveRef} className=\"xui-sr-only\" aria-live=\"assertive\" aria-atomic=\"true\" data-xui-live=\"assertive\" />\n </div>\n )\n}\n",
|
|
6
|
-
"// VAPP-87 + round 1: what every painted node reads from its surface.\n\nimport { createContext, useContext } from \"react\"\nimport type { ExtensionDef, Formatter, ModeName, ResolvedTheme, ScrollAlign, TemplateBudget, UiNode } from \"@exponential_app/eui\"\nimport type { CompiledTheme } from \"@exponential_app/eui/web\"\nimport type { HostPlugin } from \"./host\"\nimport type { ReactExtension } from \"./extensions\"\nimport type { ClientFunction, DataModel, ResolveContext } from \"@exponential_app/eui/web\"\nimport { setPointer } from \"@exponential_app/eui/web\"\n\nexport interface SurfaceContextValue {\n surfaceId: string\n compiled: CompiledTheme\n /** The theme the surface runs with (density + contrast applied). */\n theme: ResolvedTheme\n /** The RESOLVED mode (`system` already followed). */\n mode: ModeName\n host: HostPlugin\n extensions: readonly ReactExtension[]\n extensionDefs: readonly ExtensionDef[]\n data: DataModel\n setData: (pointer: string, value: unknown) => void\n /** A template component id → its node (round 2: the reducer's LIFTED\n * `templates`); `undefined` when absent. */\n templateNode: (componentId: string) => UiNode | undefined\n /** VAPP-103: the surface's template items counted against\n * `maxTemplateItems` (`templateBudget`); absent = every item renders. */\n templateBudget?: TemplateBudget\n /** Interaction states forced on every node (the recipe sheet). */\n states: readonly string[]\n /** Geometry mode: every leaf becomes a fixed box of this size. */\n measure?: (node: UiNode) => { w: number; h: number } | null\n /** Where overlays portal: the overlay LAYER inside the `xui` container\n * (so container breakpoints still match in a Dialog, audit bug C). */\n portal: HTMLElement | null\n /** The toast layer (above dialogs). */\n toastLayer: HTMLElement | null\n /** The direction of the node being painted (round 2 §2: `direction` on\n * ANY node, inherited; the surface's at the root). */\n direction: `ltr` | `rtl`\n functions: Record<string, ClientFunction>\n openUrl: (url: string) => void\n /** Round 1 §4: the surface locale (BCP 47). */\n locale: string\n /** Round 2 §3: the surface Formatter (Intl in `locale` + the time zone). */\n formatter: Formatter\n /** The surface clock (epoch ms) `formatRelativeTime` reads without `now`;\n * ticks once a minute while the tree uses it. */\n now: () => number\n /** Round 2: a windowed List/Table registers its `scrollToIndex` under its\n * painted id (the host command); returns the unregister. */\n registerScroller: (id: string, scroll: (index: number, align?: ScrollAlign) => void) => () => void\n /** VAPP-103: the painted ids whose painter failed → their props as they\n * failed (reported once until the props change; an entry leaves when\n * the node paints or unmounts, so it never outgrows the mounted tree). */\n paintFailures?: Map<string, string>\n /** The built-in string table (defaults + host overrides). */\n strings: Readonly<Record<string, string>>\n /** A built-in string by id with `{name}` placeholders filled. */\n t: (id: string, params?: Record<string, unknown>) => string\n /** `activeBreakpoint(surface width, theme.tokens.breakpoint)`; null =\n * base. (The raw box is NOT in the context, nor in React state: the\n * surface keeps it in a ref and re-renders only when the breakpoint or\n * the matching height/orientation conditions (`data-xq`) change; nodes\n * are memoized, so a surface re-render does not cascade by itself.) */\n breakpoint: string | null\n /** The surface's matching JS-evaluated conditions (`data-xq` tokens):\n * a `@media` block's `direction` reads it. */\n xq?: string\n /** The platform asks for reduced motion. */\n reducedMotion: boolean\n /** A hover-capable pointer. */\n hover: boolean\n /** Speak a message through the surface's live regions. */\n announce: (text: string, live?: `polite` | `assertive`) => void\n /** VAPP-141: `data`, `breakpoint`, `xq` and `mode` are LIVE (the surface's\n * latest render; the context object keeps its identity when only they\n * change): a listener hears every change, and a node re-renders when a\n * value it reads is new (`live.ts`). Returns the unsubscribe. */\n subscribe: (listener: () => void) => () => void\n}\n\nexport const SurfaceContext = createContext<SurfaceContextValue | null>(null)\n\nexport function useSurfaceContext(): SurfaceContextValue {\n const ctx = useContext(SurfaceContext)\n if (!ctx) throw new Error(`exponential-ui: this component must render inside <ExponentialSurface>`)\n return ctx\n}\n\n/** A context with some members replaced, the live getters (`data`,\n * `breakpoint`, `xq`, `mode`) kept live (a plain spread would freeze them);\n * `data` may be a getter of its own (a read view over the live model). */\nexport function deriveContext(ctx: SurfaceContextValue, values: Partial<SurfaceContextValue>, data?: () => DataModel): SurfaceContextValue {\n const out = Object.defineProperties({}, Object.getOwnPropertyDescriptors(ctx)) as SurfaceContextValue\n for (const [key, value] of Object.entries(values)) Object.defineProperty(out, key, { value, enumerable: true, configurable: true, writable: true })\n if (data) Object.defineProperty(out, `data`, { get: data, enumerable: true, configurable: true })\n return out\n}\n\n/** The live model with `value` mounted at `pointer` (a literal scope's\n * read view), rebuilt only when the live model is a new object. */\nexport function readView(ctx: SurfaceContextValue, pointer: string, value: unknown): () => DataModel {\n let base: unknown = undefined\n let view: DataModel = {}\n return () => {\n const data = ctx.data\n if (data !== base || base === undefined) {\n base = data\n view = setPointer(data as Record<string, unknown>, pointer, value)\n }\n return view\n }\n}\n\n/** The data scope of a template item (relative paths resolve here). */\nexport const ScopeContext = createContext<string>(``)\n\n/** The INSTANCE suffix of a template item (`.0`, `.alice`): appended to the\n * ids of the nodes it renders (`data-xui-id`) while their CSS class stays\n * the template node's own, so every item wears the node sheet's rules. */\nexport const InstanceContext = createContext<string>(``)\n\n/** The resolve context of one render (bindings + calls + `$string`). */\nexport function resolveContextOf(ctx: SurfaceContextValue, scope: string): ResolveContext {\n return { data: ctx.data, scope, functions: ctx.functions, openUrl: ctx.openUrl, locale: ctx.locale, strings: ctx.strings, formatter: ctx.formatter, now: ctx.now }\n}\n",
|
|
5
|
+
"// VAPP-87 + round 1: `<ExponentialSurface>` — one A2UI surface painted with\n// real CSS. The root carries the theme's scope class + the variable block\n// (per mode), the surface's node sheet, the live regions, and an inner\n// `xui` CONTAINER the breakpoints resolve against (a container query cannot\n// target its own element, so the root and the container are two elements).\n// The OVERLAY and TOAST layers sit INSIDE the container (round 1, audit bug\n// C): a Dialog's content still matches `@container xui` breakpoints, and an\n// inline-size container does not trap `position: fixed`. Themes,\n// extensions, the host plugin and the surface settings (locale, strings,\n// mode incl. `system`, density, contrast) are props; nothing global is\n// touched, so two surfaces on one page can wear two themes.\n\nimport { useCallback, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, type CSSProperties, type ReactNode, type Ref } from \"react\"\nimport {\n activeBreakpoint,\n applyContrast,\n applyDensity,\n builtinTheme,\n formatString,\n intlFormatter,\n themeOrDefault,\n mediaMatches,\n parseMediaCondition,\n readOnlyTemplates,\n readOnlyTree,\n resolveMode,\n stringTable,\n templateBudget,\n textDirection,\n DEFAULT_LOCALE,\n DEFAULT_THEME_ID,\n} from \"@exponential_app/eui\"\nimport type { Formatter, ModeName, ResolvedTheme, ScrollAlign, TemplateBudget, ThemeIssue, ThemeSource, UiNode, SurfaceCommand } from \"@exponential_app/eui\"\nimport { BASE_CSS } from \"@exponential_app/eui/web\"\nimport { compileNodeSheet, nodeSheetBatches, queryToken, share, surfaceClass, type NodeSheetBatch } from \"@exponential_app/eui/web\"\nimport { SurfaceContext, type SurfaceContextValue } from \"./context\"\nimport { CLIENT_FUNCTIONS, memoFormatter, setPointer, type DataModel } from \"@exponential_app/eui/web\"\nimport { extensionCatalogs, extensionMacroNames, registeredExtensions, subscribeExtensions, type ReactExtension } from \"./extensions\"\nimport type { HostPlugin } from \"./host\"\nimport { NodeView } from \"./node-view\"\nimport { useMediaQuery } from \"./platform\"\nimport { openAllowed } from \"@exponential_app/eui/web\"\nimport { compiledTheme } from \"@exponential_app/eui/web\"\nimport { layoutSize } from \"@exponential_app/eui/web\"\nimport type { SurfaceState } from \"./use-surface\"\n\nexport type ThemeInput = ResolvedTheme | ThemeSource | string\n\n/** What a host can ask of a live surface (`SurfaceCommand`, a11y.json). */\nexport interface SurfaceHandle {\n run: (command: SurfaceCommand) => void\n /** Focus the node (or its first focusable descendant); false if absent. */\n focus: (id: string) => boolean\n announce: (text: string, live?: `polite` | `assertive`) => void\n scrollIntoView: (id: string) => boolean\n /** Round 2: item `index` (data order) of the List/Table `id` into view;\n * false when no such list is painted. */\n scrollToIndex: (id: string, index: number, align?: ScrollAlign) => boolean\n}\n\nexport interface ExponentialSurfaceProps {\n /** The state from `useSurface` (tree + data + templates)… */\n surface?: SurfaceState\n /** …or a normalized tree (a fixture) with an optional data model… */\n root?: UiNode | null\n /** …and its LIFTED templates (`ReduceResult.templates`, round 2 §4): a\n * data template's component lives here, never in the tree. */\n templates?: Readonly<Record<string, UiNode>>\n data?: DataModel\n /** A built-in id (`exponential` | `neutral` | `playful` | `orange`), a theme file\n * (resolved against the built-ins) or a resolved theme. */\n theme?: ThemeInput\n /** `light | dark | system` (default `system`: the platform's preference,\n * followed live). */\n mode?: ModeName | `system`\n /** Scales `$control.*` and `$spacing.*` by the theme's `$density.*`. */\n density?: `compact` | `default` | `comfortable`\n /** `system` (default) follows `prefers-contrast: more`; `high` forces the\n * theme's high-contrast overlays. */\n contrast?: `normal` | `high` | `system`\n /** BCP 47 (default `en-US`): formatting, calendar names, week start, the\n * default text direction. */\n locale?: string\n /** IANA time zone dates and relative times format in (default the\n * platform's). */\n timeZone?: string\n /** Built-in string overrides by id (`catalog/strings.json`). */\n strings?: Record<string, string>\n /** VAPP-200: the viewer may read, not write (an app at app access\n * `read`): every writing control paints disabled (`readOnlyTree`). */\n readOnly?: boolean\n host?: HostPlugin\n extensions?: readonly ReactExtension[]\n /** Forced interaction states on every node (the builder's recipe sheet). */\n states?: readonly string[]\n /** Geometry mode: leaves become fixed boxes of the returned size. */\n measure?: (node: UiNode) => { w: number; h: number } | null\n /** EXP-1673: a static render (docs, galleries, server markup): every\n * overlay paints OPEN in place of its portal, below its trigger, with no\n * focus trap or scroll lock. Dialog, Drawer and Popover still follow\n * `open`; Tooltip, Menu and Toast always show. */\n inlineOverlays?: boolean\n /** Default: the locale's direction (`textDirection`). */\n direction?: `ltr` | `rtl`\n /** The surface width; default = the host's box. */\n width?: number | string\n /** The height of the VIEWPORT the surface is shown in: what the height and\n * orientation style conditions test (the Rust core's `set_viewport`\n * height). Default: an explicit inline `style.height` on the surface,\n * else UNKNOWN (orientation = landscape, no min/max-height matches;\n * contract §2) — never the surface's CONTENT height (a height rule must\n * not feed back into its own measurement). The gpui host passes 0 (=\n * unknown) today, so the default keeps web and desktop identical. */\n viewportHeight?: number\n /** An explicit id (defaults to React's `useId`); must be unique per page. */\n id?: string\n /** Host → surface commands (focus, announce, scrollIntoView). */\n handleRef?: Ref<SurfaceHandle>\n className?: string\n style?: CSSProperties\n children?: ReactNode\n}\n\n/** A theme prop, resolved: the theme to paint with and why the asked one\n * was refused (empty when it loaded). */\nexport interface ThemeResolution {\n theme: ResolvedTheme\n issues: ThemeIssue[]\n}\n\nconst resolvedCache = new Map<string, ThemeResolution>()\n\n/** A theme prop → the resolved theme (built-ins cached by id, theme files\n * resolved against the built-ins and cached by content). NEVER throws\n * (round 4, VAPP-103): an unknown built-in id or an invalid theme file\n * paints with the default theme and carries its issues, which the surface\n * reports through `HostPlugin.onThemeIssues`. */\nexport function resolveThemeInput(input: ThemeInput | undefined): ThemeResolution {\n if (!input) return { theme: builtinTheme(DEFAULT_THEME_ID), issues: [] }\n if (typeof input === `string`) return themeOrDefault(input)\n if (`chain` in input && Array.isArray((input as ResolvedTheme).chain)) return { theme: input as ResolvedTheme, issues: [] }\n let key: string\n try {\n key = JSON.stringify(input)\n } catch {\n return { theme: builtinTheme(DEFAULT_THEME_ID), issues: [{ path: `theme`, message: `expected a theme object {id, name, modes, tokens, recipes}` }] }\n }\n let hit = resolvedCache.get(key)\n if (!hit) {\n hit = themeOrDefault(input)\n resolvedCache.set(key, hit)\n }\n return hit\n}\n\nconst derivedCache = new WeakMap<ResolvedTheme, Map<string, ResolvedTheme>>()\n\n/** The theme a surface runs with: density applied, then the contrast\n * overlays when asked (memoized per theme, so the compiled sheet is too). */\nexport function surfaceTheme(theme: ResolvedTheme, density: `compact` | `default` | `comfortable`, highContrast: boolean): ResolvedTheme {\n if (density === `default` && !highContrast) return theme\n let byKey = derivedCache.get(theme)\n if (!byKey) {\n byKey = new Map()\n derivedCache.set(theme, byKey)\n }\n const key = `${density}/${highContrast}`\n let hit = byKey.get(key)\n if (!hit) {\n hit = applyDensity(theme, density)\n if (highContrast) hit = applyContrast(hit)\n byKey.set(key, hit)\n }\n return hit\n}\n\nconst EMPTY: readonly ReactExtension[] = []\nconst NO_TEMPLATES: Readonly<Record<string, UiNode>> = {}\nconst EMPTY_HOST: HostPlugin = {}\n\nconst useIsoLayoutEffect = typeof window === `undefined` ? useEffect : useLayoutEffect\n\n/** What the surface knows of its box: the measured WIDTH and the condition\n * height (an explicit inline height; see `viewportHeight`). */\nexport interface SurfaceBox {\n width: number\n /** Undefined = unknown. */\n height: number | undefined\n measured: boolean\n}\n\nexport interface LayoutInputs {\n breakpoints: Record<string, number>\n queries: readonly string[]\n viewportHeight: number | undefined\n hover: boolean\n reducedMotion: boolean\n}\n\n/** The only layout facts that reach React: the active breakpoint and the\n * matching JS-evaluated conditions (`data-xq`). A resize that changes\n * neither re-renders nothing. */\nexport function surfaceLayout(box: SurfaceBox, inputs: LayoutInputs): { breakpoint: string | null; xq: string } {\n const breakpoint = activeBreakpoint(box.width, inputs.breakpoints)\n const height = inputs.viewportHeight ?? box.height\n const ctx = { width: box.width, height, hover: inputs.hover, reducedMotion: inputs.reducedMotion }\n const xq = inputs.queries\n .filter((key) => {\n const c = parseMediaCondition(key)\n return c ? mediaMatches(c, ctx) : false\n })\n .map(queryToken)\n .join(` `)\n return { breakpoint, xq }\n}\n\nconst NO_CHUNKS: ReadonlyMap<string, string> = new Map()\n/** One `dangerouslySetInnerHTML` object per batch (a new object rewrites the element). */\nconst batchHtml = new WeakMap<NodeSheetBatch, { __html: string }>()\n\nconst FOCUSABLE = `input:not([disabled]),textarea:not([disabled]),select:not([disabled]),button:not([disabled]),a[href],[tabindex]:not([tabindex=\"-1\"]),[contenteditable=\"true\"]`\n\n/** `intlFormatter` built on its first use (VAPP-137): the platform zone\n * costs an `Intl.DateTimeFormat` (~7 ms cold), and most surfaces format\n * nothing. */\nfunction lazyFormatter(locale: string, timeZone: string | undefined): Formatter {\n let base: Formatter | undefined\n const get = () => (base ??= intlFormatter(locale, timeZone ?? platformZone()))\n return {\n locale,\n number: (value, o) => get().number(value, o),\n currency: (value, currency, o) => get().currency(value, currency, o),\n percent: (value, o) => get().percent(value, o),\n date: (value, o) => get().date(value, o),\n relativeTime: (value, now) => get().relativeTime(value, now),\n plural: (value) => get().plural(value),\n offsetMinutes: (ms) => get().offsetMinutes?.(ms) ?? 0,\n }\n}\n\nconst platformZone = (): string => {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || `UTC`\n } catch {\n return `UTC`\n }\n}\n\n/** Bundlers replace `process.env.NODE_ENV`; without one (a raw ESM load)\n * it throws, which counts as production. Declared here so the published\n * types build without Node's. */\ndeclare const process: { env: { NODE_ENV?: string } }\nconst IS_DEV = (() => {\n try {\n return process.env.NODE_ENV !== `production`\n } catch {\n return false\n }\n})()\nconst warnedTemplates = new Set<string>()\n\n/** Dev only: a node whose `template.component` is not in `templates` paints\n * NO items (round 2 §4: the reducer lifts templates out of the tree; pass\n * the reduce result's `templates` next to `root`). */\nfunction warnMissingTemplates(surfaceId: string, root: UiNode, templates: Record<string, UiNode>): void {\n const visit = (n: UiNode) => {\n const id = (n.template as { component?: unknown } | undefined)?.component\n if (typeof id === `string` && !templates[id]) {\n const key = `${surfaceId}\\u0000${id}`\n if (!warnedTemplates.has(key)) {\n warnedTemplates.add(key)\n console.warn(`[exponential-ui] surface \"${surfaceId}\": \"${n.id}\" templates \"${id}\", which is not in \\`templates\\` (pass the reducer's \\`templates\\` with \\`root\\`); it renders no items.`)\n }\n }\n for (const c of n.children) visit(c)\n for (const sl of Object.values(n.slots ?? {})) visit(sl)\n }\n visit(root)\n for (const t of Object.values(templates)) visit(t)\n}\n\n/** Whether a tree calls `formatRelativeTime` without a `now`, or has a\n * Table with a `relativeTime` column (or bound columns, unknown until\n * data): the surface then re-binds once a minute (round 2 §3). */\nconst isPlain = (v: unknown): v is Record<string, unknown> => typeof v === `object` && v !== null && !Array.isArray(v)\n\n/** Structural equality, short-circuiting on identity at every level (an\n * inline `data={{ items, filter }}` with stable values costs one pass over\n * its top-level keys). */\nexport function sameData(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) return true\n if (typeof a !== `object` || typeof b !== `object` || a === null || b === null) return false\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) if (!sameData(a[i], b[i])) return false\n return true\n }\n if (!isPlain(b) || Array.isArray(b)) return false\n const pa = Object.getPrototypeOf(a)\n if (pa !== Object.prototype && pa !== null) return false\n const ka = Object.keys(a as object)\n if (ka.length !== Object.keys(b).length) return false\n for (const k of ka) if (!Object.prototype.hasOwnProperty.call(b, k) || !sameData((a as Record<string, unknown>)[k], b[k])) return false\n return true\n}\n\nfunction usesLiveClock(value: unknown): boolean {\n if (Array.isArray(value)) return value.some(usesLiveClock)\n if (typeof value !== `object` || value === null) return false\n const v = value as Record<string, unknown>\n if (v.call === `formatRelativeTime` && (typeof v.args !== `object` || v.args === null || (v.args as Record<string, unknown>).now === undefined)) return true\n if (v.component === `Table`) {\n const columns = (v.props as Record<string, unknown> | undefined)?.columns\n if (Array.isArray(columns) ? columns.some((c) => (c as Record<string, unknown> | null)?.type === `relativeTime`) : typeof columns === `object` && columns !== null) return true\n }\n return Object.values(v).some(usesLiveClock)\n}\n\nfunction sameBudget(a: TemplateBudget | undefined, b: TemplateBudget | undefined): boolean {\n if (a === b) return true\n if (!a || !b || a.issue?.id !== b.issue?.id || a.issue?.message !== b.issue?.message || a.allowed.size !== b.allowed.size) return false\n for (const [k, v] of a.allowed) if (b.allowed.get(k) !== v) return false\n return true\n}\n\ntype LiveMembers = Pick<SurfaceContextValue, `data` | `breakpoint` | `xq` | `mode`>\n\n/** The context with its live members as getters over `live`. */\nfunction withLive(value: Omit<SurfaceContextValue, keyof LiveMembers>, live: { current: LiveMembers }): SurfaceContextValue {\n return Object.defineProperties(value, {\n data: { get: () => live.current.data, enumerable: true, configurable: true },\n breakpoint: { get: () => live.current.breakpoint, enumerable: true, configurable: true },\n xq: { get: () => live.current.xq, enumerable: true, configurable: true },\n mode: { get: () => live.current.mode, enumerable: true, configurable: true },\n }) as SurfaceContextValue\n}\n\nexport function ExponentialSurface({\n surface,\n root: rootProp,\n templates: templatesProp,\n data: dataProp,\n theme: themeProp,\n mode: modeSetting = `system`,\n density = `default`,\n contrast = `system`,\n locale = DEFAULT_LOCALE,\n timeZone,\n strings: stringOverrides,\n readOnly = false,\n host,\n extensions: extensionsProp = EMPTY,\n states = EMPTY as unknown as readonly string[],\n measure,\n inlineOverlays = false,\n direction: directionProp,\n width,\n viewportHeight,\n id: idProp,\n handleRef,\n className,\n style,\n children,\n}: ExponentialSurfaceProps) {\n const reactId = useId()\n const surfaceId = idProp ?? surface?.surfaceId ?? reactId.replace(/[^a-zA-Z0-9]/g, ``)\n const prefersDark = useMediaQuery(`(prefers-color-scheme: dark)`)\n const prefersContrast = useMediaQuery(`(prefers-contrast: more)`)\n const reducedMotion = useMediaQuery(`(prefers-reduced-motion: reduce)`)\n const hover = useMediaQuery(`(hover: hover)`, true)\n const mode: ModeName = modeSetting === `system` ? resolveMode(`system`, prefersDark) : modeSetting\n const resolution = useMemo(() => resolveThemeInput(themeProp), [themeProp])\n const baseTheme = resolution.theme\n // An unusable theme never crashes the host: the surface paints with the\n // default theme and hands the issues over once per resolution.\n const onThemeIssues = host?.onThemeIssues\n useEffect(() => {\n if (resolution.issues.length > 0) onThemeIssues?.(resolution.issues)\n }, [resolution, onThemeIssues])\n const theme = surfaceTheme(baseTheme, density, contrast === `high` || (contrast === `system` && prefersContrast))\n const global = useSyncExternalStore(subscribeExtensions, registeredExtensions, registeredExtensions)\n const extensions = useMemo(() => [...global, ...extensionsProp], [global, extensionsProp])\n const extensionDefs = useMemo(() => extensionCatalogs(extensions), [extensions])\n const macros = useMemo(() => extensionMacroNames(extensions), [extensions])\n const compiled = useMemo(() => compiledTheme(theme, { extensionMacros: macros }), [theme, macros])\n const direction = directionProp ?? textDirection(locale)\n const strings = useMemo(() => stringTable(stringOverrides ?? {}), [stringOverrides])\n const t = useCallback((id: string, params?: Record<string, unknown>) => formatString(strings[id] ?? id, params ?? {}), [strings])\n\n // Data: the surface state's, or local state over the `data` prop.\n // A `data` prop with new CONTENT replaces the local model (an inline\n // object re-created on every parent render keeps the user's edits).\n // Compared structurally against the last ADOPTED prop (identity first,\n // then per top-level key), never serialised.\n const [localData, setLocalData] = useState<DataModel>(dataProp ?? {})\n const [seenData, setSeenData] = useState(dataProp)\n if (dataProp !== seenData && !sameData(dataProp, seenData)) {\n setSeenData(dataProp)\n setLocalData(dataProp ?? {})\n }\n const data = surface ? surface.data : localData\n // Through a ref: the surface state is a new object on every change, and a\n // new `setData` would be a new context (every node re-rendered).\n const latestSurface = useRef(surface)\n latestSurface.current = surface\n const setData = useCallback((pointer: string, value: unknown) => {\n const current = latestSurface.current\n if (current) current.setData(pointer, value)\n else setLocalData((cur) => setPointer(cur, pointer, value))\n }, [])\n\n // VAPP-141: a new tree shares every unchanged node with the last one\n // (`share`), so a streamed `updateComponents` re-renders only the nodes\n // it changed.\n const lastTree = useRef<{ root: UiNode | null; templates: Readonly<Record<string, UiNode>> }>({ root: null, templates: NO_TEMPLATES })\n const rawRoot = surface ? surface.root : (rootProp ?? null)\n // VAPP-200: a read-only surface disables its writing controls, root and\n // lifted templates alike.\n const root = useMemo(() => (lastTree.current.root = share(lastTree.current.root, readOnly && rawRoot ? readOnlyTree(rawRoot) : rawRoot)), [rawRoot, readOnly])\n // Round 2 §4: a data template's node comes from the reducer's LIFTED\n // `templates` (it is no longer in the tree, so never painted in place).\n const rawTemplates = (surface ? surface.templates : templatesProp) ?? NO_TEMPLATES\n const templates = useMemo(() => (lastTree.current.templates = share(lastTree.current.templates, readOnly ? readOnlyTemplates(rawTemplates) : rawTemplates)), [rawTemplates, readOnly])\n const templateNode = useCallback((componentId: string) => templates[componentId], [templates])\n const templateRoots = useMemo(() => Object.values(templates), [templates])\n // VAPP-103: past `maxTemplateItems` items or `maxComponents` nodes per\n // surface the rest is not rendered (ONE issue, the Rust build's rule).\n // Kept while its counts are the same (it is in the context: a new one\n // re-renders every node).\n const lastBudget = useRef<TemplateBudget | undefined>(undefined)\n const budget = useMemo(() => {\n const next = root ? templateBudget(root, data, templateNode) : undefined\n if (sameBudget(lastBudget.current, next)) return lastBudget.current\n return (lastBudget.current = next)\n }, [root, data, templateNode])\n useEffect(() => {\n if (budget?.issue) console.warn(`[exponential-ui] ${surfaceId}: ${budget.issue.id}: ${budget.issue.message}`)\n }, [surfaceId, budget?.issue?.id, budget?.issue?.message])\n useEffect(() => {\n if (IS_DEV && root) warnMissingTemplates(surfaceId, root, templates)\n }, [surfaceId, root, templates])\n const sheet = useMemo(() => (root ? compileNodeSheet([root, ...templateRoots], surfaceId, theme) : { css: ``, queries: [], chunks: NO_CHUNKS }), [root, templateRoots, surfaceId, theme])\n // VAPP-152: the node sheet in `<style>` batches; a streamed node adds\n // one, the unchanged ones keep their element and text (no surface-wide\n // restyle).\n const lastBatches = useRef<NodeSheetBatch[]>([])\n const batches = useMemo(() => (lastBatches.current = nodeSheetBatches(lastBatches.current, sheet.chunks)), [sheet.chunks])\n\n const [rootEl, setRootEl] = useState<HTMLElement | null>(null)\n const [portal, setPortal] = useState<HTMLElement | null>(null)\n const [toastLayer, setToastLayer] = useState<HTMLElement | null>(null)\n // The box lives in a REF: the ResizeObserver tick updates it and only\n // pokes React when the derived layout (breakpoint + data-xq) changes, so\n // dragging a window edge does not re-render the tree 60 times a second.\n const box = useRef<SurfaceBox>({ width: typeof width === `number` ? width : 0, height: undefined, measured: false })\n const layoutInputs: LayoutInputs = { breakpoints: theme.tokens.breakpoint ?? {}, queries: sheet.queries, viewportHeight, hover, reducedMotion }\n const { breakpoint, xq } = surfaceLayout(box.current, layoutInputs)\n const inputsRef = useRef(layoutInputs)\n inputsRef.current = layoutInputs\n const [, setLayoutKey] = useState(``)\n useIsoLayoutEffect(() => {\n if (!rootEl) return\n // NEW-82: layout px, so a zoomed/scaled host frame keeps its breakpoints.\n const read = (entries?: ResizeObserverEntry[]) => {\n const r = layoutSize(rootEl, entries?.find((e) => e.target === rootEl))\n // No layout yet (SSR, jsdom, display:none): keep the initial guess.\n if (!box.current.measured && r.width === 0 && r.height === 0) return\n // Only an EXPLICIT height is a viewport; a content-sized root is not.\n const explicit = rootEl.style.height !== `` && rootEl.style.height !== `auto`\n box.current = { width: r.width, height: explicit ? r.height : undefined, measured: true }\n const next = surfaceLayout(box.current, inputsRef.current)\n setLayoutKey(`${next.breakpoint ?? ``}|${next.xq}`)\n }\n read()\n if (typeof ResizeObserver === `undefined`) return\n const ro = new ResizeObserver((entries) => read(entries))\n ro.observe(rootEl)\n return () => ro.disconnect()\n }, [rootEl])\n\n // Live regions: `announce` swaps the text (cleared first, so the same\n // message twice is spoken twice).\n const politeRef = useRef<HTMLDivElement>(null)\n const assertiveRef = useRef<HTMLDivElement>(null)\n const announce = useCallback((text: string, live: `polite` | `assertive` = `polite`) => {\n const el = live === `assertive` ? assertiveRef.current : politeRef.current\n if (!el) return\n el.textContent = ``\n setTimeout(() => {\n el.textContent = text\n }, 30)\n }, [])\n\n const functions = useMemo(() => ({ ...CLIENT_FUNCTIONS, ...(host?.functions ?? {}) }), [host?.functions])\n const formatter = useMemo(() => memoFormatter(lazyFormatter(locale, timeZone)), [locale, timeZone])\n // The surface clock: a tree that formats a relative time against \"now\"\n // re-binds once a minute (a new `now` reaches every node).\n const liveClock = useMemo(() => usesLiveClock(root) || usesLiveClock(templateRoots), [root, templateRoots])\n const [minute, setMinute] = useState(() => Date.now())\n useEffect(() => {\n if (!liveClock) return\n const timer = setInterval(() => setMinute(Date.now()), 60_000)\n return () => clearInterval(timer)\n }, [liveClock])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const now = useMemo(() => () => Date.now(), [minute])\n const scrollers = useRef(new Map<string, (index: number, align?: ScrollAlign) => void>())\n const registerScroller = useCallback((id: string, scroll: (index: number, align?: ScrollAlign) => void) => {\n scrollers.current.set(id, scroll)\n return () => {\n if (scrollers.current.get(id) === scroll) scrollers.current.delete(id)\n }\n }, [])\n const paintFailures = useRef(new Map<string, string>()).current\n const hostValue = host ?? EMPTY_HOST\n // Every open passes the URL policy (the host's opener or a new tab).\n const openUrl = useCallback((url: string) => openAllowed(hostValue, url), [hostValue])\n\n // VAPP-141 + VAPP-130: data, breakpoint, xq and mode are LIVE members (getters over this\n // render's values); the context keeps its identity when only they change\n // and the layout effect below tells the subscribed nodes (`live.ts`).\n const live = useRef({ data, breakpoint, xq, mode })\n live.current = { data, breakpoint, xq, mode }\n const listeners = useRef(new Set<() => void>()).current\n const subscribe = useCallback(\n (listener: () => void) => {\n listeners.add(listener)\n return () => void listeners.delete(listener)\n },\n [listeners]\n )\n useIsoLayoutEffect(() => {\n for (const listener of [...listeners]) listener()\n }, [data, breakpoint, xq, mode, listeners])\n const ctx: SurfaceContextValue = useMemo(\n () => withLive({\n surfaceId,\n compiled,\n theme,\n host: hostValue,\n extensions,\n extensionDefs,\n setData,\n templateNode,\n templateBudget: budget,\n states,\n measure,\n portal,\n toastLayer,\n inlineOverlays,\n direction,\n functions,\n openUrl,\n locale,\n formatter,\n now,\n registerScroller,\n paintFailures,\n strings,\n t,\n reducedMotion,\n hover,\n announce,\n subscribe,\n }, live),\n [surfaceId, compiled, theme, hostValue, extensions, extensionDefs, setData, templateNode, budget, states, measure, portal, toastLayer, inlineOverlays, direction, functions, openUrl, locale, formatter, now, registerScroller, paintFailures, strings, t, reducedMotion, hover, announce, subscribe]\n )\n\n const nodeEl = useCallback((id: string): HTMLElement | null => rootEl?.querySelector<HTMLElement>(`[data-xui-id=\"${typeof CSS !== `undefined` && CSS.escape ? CSS.escape(id) : id.replace(/\"/g, `\\\\\"`)}\"]`) ?? null, [rootEl])\n useImperativeHandle(\n handleRef,\n (): SurfaceHandle => {\n const focus = (id: string) => {\n const el = nodeEl(id)\n if (!el) return false\n const target = el.matches(FOCUSABLE) ? el : el.querySelector<HTMLElement>(FOCUSABLE)\n ;(target ?? el).focus()\n return true\n }\n const scrollIntoView = (id: string) => {\n const el = nodeEl(id)\n if (!el) return false\n el.scrollIntoView({ block: `nearest`, behavior: reducedMotion ? `auto` : `smooth` })\n return true\n }\n const scrollToIndex = (id: string, index: number, align?: ScrollAlign) => {\n const scroll = scrollers.current.get(id)\n if (!scroll) return false\n scroll(index, align)\n return true\n }\n return {\n focus,\n scrollIntoView,\n scrollToIndex,\n announce,\n run: (command) => {\n if (`focus` in command) focus(command.focus.id)\n else if (`announce` in command) announce(command.announce.text, command.announce.live)\n else if (`scrollIntoView` in command) scrollIntoView(command.scrollIntoView.id)\n else if (`scrollToIndex` in command) scrollToIndex(command.scrollToIndex.id, command.scrollToIndex.index, command.scrollToIndex.align)\n },\n }\n },\n [nodeEl, announce, reducedMotion]\n )\n\n const md = theme.tokens.breakpoint?.md ?? 768\n const scopeSel = `.${surfaceClass(surfaceId)}`\n const layerCss = `@layer xui-base{@container xui (width >= ${md}px){${scopeSel} .xui-toast-layer{left:auto;right:var(--xui-spacing-lg);transform:none;align-items:flex-end}${scopeSel}[dir=\"rtl\"] .xui-toast-layer{right:auto;left:var(--xui-spacing-lg)}}}`\n\n // VAPP-141: React rewrites a `dangerouslySetInnerHTML` whenever the\n // OBJECT is new, and a rewritten sheet restyles the whole surface: one\n // object per sheet text.\n const themeHtml = useMemo(() => ({ __html: `${BASE_CSS}\\n${compiled.css}` }), [compiled.css])\n const nodesHtml = useMemo(() => {\n const list: readonly NodeSheetBatch[] = batches.length ? batches : [{ chunks: NO_CHUNKS, css: sheet.css }]\n return list.map((batch, i) => {\n const css = i === 0 ? `${batch.css}${layerCss}` : batch.css\n const hit = batchHtml.get(batch)\n if (hit && hit.__html === css) return hit\n const html = { __html: css }\n batchHtml.set(batch, html)\n return html\n })\n }, [batches, sheet.css, layerCss])\n\n return (\n <div\n ref={setRootEl}\n className={[`xui-surface`, compiled.scope, surfaceClass(surfaceId), className].filter(Boolean).join(` `)}\n data-xui-surface={surfaceId}\n data-xui-mode={mode}\n data-xui-theme={theme.id}\n data-xui-density={density === `default` ? undefined : density}\n data-xui-motion={reducedMotion ? `reduce` : undefined}\n data-xui-overlays={inlineOverlays ? `inline` : undefined}\n data-xq={xq || undefined}\n dir={direction}\n style={width === undefined ? style : { width, ...style }}\n >\n <style data-xui-style=\"theme\" dangerouslySetInnerHTML={themeHtml} />\n {nodesHtml.map((html, i) => (\n <style key={i} data-xui-style=\"nodes\" dangerouslySetInnerHTML={html} />\n ))}\n <SurfaceContext.Provider value={ctx}>\n <div className=\"xui-container\">\n {root ? <NodeView node={root} /> : null}\n {children}\n <div ref={setPortal} className=\"xui-layer\" data-xui-layer=\"overlay\" />\n <div ref={setToastLayer} className=\"xui-toast-layer\" data-xui-layer=\"toast\" />\n </div>\n </SurfaceContext.Provider>\n <div ref={politeRef} className=\"xui-sr-only\" aria-live=\"polite\" aria-atomic=\"true\" data-xui-live=\"polite\" />\n <div ref={assertiveRef} className=\"xui-sr-only\" aria-live=\"assertive\" aria-atomic=\"true\" data-xui-live=\"assertive\" />\n </div>\n )\n}\n",
|
|
6
|
+
"// VAPP-87 + round 1: what every painted node reads from its surface.\n\nimport { createContext, useContext } from \"react\"\nimport type { ExtensionDef, Formatter, ModeName, ResolvedTheme, ScrollAlign, TemplateBudget, UiNode } from \"@exponential_app/eui\"\nimport type { CompiledTheme } from \"@exponential_app/eui/web\"\nimport type { HostPlugin } from \"./host\"\nimport type { ReactExtension } from \"./extensions\"\nimport type { ClientFunction, DataModel, ResolveContext } from \"@exponential_app/eui/web\"\nimport { setPointer } from \"@exponential_app/eui/web\"\n\nexport interface SurfaceContextValue {\n surfaceId: string\n compiled: CompiledTheme\n /** The theme the surface runs with (density + contrast applied). */\n theme: ResolvedTheme\n /** The RESOLVED mode (`system` already followed). */\n mode: ModeName\n host: HostPlugin\n extensions: readonly ReactExtension[]\n extensionDefs: readonly ExtensionDef[]\n data: DataModel\n setData: (pointer: string, value: unknown) => void\n /** A template component id → its node (round 2: the reducer's LIFTED\n * `templates`); `undefined` when absent. */\n templateNode: (componentId: string) => UiNode | undefined\n /** VAPP-103: the surface's template items counted against\n * `maxTemplateItems` (`templateBudget`); absent = every item renders. */\n templateBudget?: TemplateBudget\n /** Interaction states forced on every node (the recipe sheet). */\n states: readonly string[]\n /** Geometry mode: every leaf becomes a fixed box of this size. */\n measure?: (node: UiNode) => { w: number; h: number } | null\n /** Where overlays portal: the overlay LAYER inside the `xui` container\n * (so container breakpoints still match in a Dialog, audit bug C). */\n portal: HTMLElement | null\n /** The toast layer (above dialogs). */\n toastLayer: HTMLElement | null\n /** EXP-1673: overlays paint OPEN in place, no portal (a static render). */\n inlineOverlays: boolean\n /** The direction of the node being painted (round 2 §2: `direction` on\n * ANY node, inherited; the surface's at the root). */\n direction: `ltr` | `rtl`\n functions: Record<string, ClientFunction>\n openUrl: (url: string) => void\n /** Round 1 §4: the surface locale (BCP 47). */\n locale: string\n /** Round 2 §3: the surface Formatter (Intl in `locale` + the time zone). */\n formatter: Formatter\n /** The surface clock (epoch ms) `formatRelativeTime` reads without `now`;\n * ticks once a minute while the tree uses it. */\n now: () => number\n /** Round 2: a windowed List/Table registers its `scrollToIndex` under its\n * painted id (the host command); returns the unregister. */\n registerScroller: (id: string, scroll: (index: number, align?: ScrollAlign) => void) => () => void\n /** VAPP-103: the painted ids whose painter failed → their props as they\n * failed (reported once until the props change; an entry leaves when\n * the node paints or unmounts, so it never outgrows the mounted tree). */\n paintFailures?: Map<string, string>\n /** The built-in string table (defaults + host overrides). */\n strings: Readonly<Record<string, string>>\n /** A built-in string by id with `{name}` placeholders filled. */\n t: (id: string, params?: Record<string, unknown>) => string\n /** `activeBreakpoint(surface width, theme.tokens.breakpoint)`; null =\n * base. (The raw box is NOT in the context, nor in React state: the\n * surface keeps it in a ref and re-renders only when the breakpoint or\n * the matching height/orientation conditions (`data-xq`) change; nodes\n * are memoized, so a surface re-render does not cascade by itself.) */\n breakpoint: string | null\n /** The surface's matching JS-evaluated conditions (`data-xq` tokens):\n * a `@media` block's `direction` reads it. */\n xq?: string\n /** The platform asks for reduced motion. */\n reducedMotion: boolean\n /** A hover-capable pointer. */\n hover: boolean\n /** Speak a message through the surface's live regions. */\n announce: (text: string, live?: `polite` | `assertive`) => void\n /** VAPP-141: `data`, `breakpoint`, `xq` and `mode` are LIVE (the surface's\n * latest render; the context object keeps its identity when only they\n * change): a listener hears every change, and a node re-renders when a\n * value it reads is new (`live.ts`). Returns the unsubscribe. */\n subscribe: (listener: () => void) => () => void\n}\n\nexport const SurfaceContext = createContext<SurfaceContextValue | null>(null)\n\nexport function useSurfaceContext(): SurfaceContextValue {\n const ctx = useContext(SurfaceContext)\n if (!ctx) throw new Error(`exponential-ui: this component must render inside <ExponentialSurface>`)\n return ctx\n}\n\n/** A context with some members replaced, the live getters (`data`,\n * `breakpoint`, `xq`, `mode`) kept live (a plain spread would freeze them);\n * `data` may be a getter of its own (a read view over the live model). */\nexport function deriveContext(ctx: SurfaceContextValue, values: Partial<SurfaceContextValue>, data?: () => DataModel): SurfaceContextValue {\n const out = Object.defineProperties({}, Object.getOwnPropertyDescriptors(ctx)) as SurfaceContextValue\n for (const [key, value] of Object.entries(values)) Object.defineProperty(out, key, { value, enumerable: true, configurable: true, writable: true })\n if (data) Object.defineProperty(out, `data`, { get: data, enumerable: true, configurable: true })\n return out\n}\n\n/** The live model with `value` mounted at `pointer` (a literal scope's\n * read view), rebuilt only when the live model is a new object. */\nexport function readView(ctx: SurfaceContextValue, pointer: string, value: unknown): () => DataModel {\n let base: unknown = undefined\n let view: DataModel = {}\n return () => {\n const data = ctx.data\n if (data !== base || base === undefined) {\n base = data\n view = setPointer(data as Record<string, unknown>, pointer, value)\n }\n return view\n }\n}\n\n/** The data scope of a template item (relative paths resolve here). */\nexport const ScopeContext = createContext<string>(``)\n\n/** The INSTANCE suffix of a template item (`.0`, `.alice`): appended to the\n * ids of the nodes it renders (`data-xui-id`) while their CSS class stays\n * the template node's own, so every item wears the node sheet's rules. */\nexport const InstanceContext = createContext<string>(``)\n\n/** The resolve context of one render (bindings + calls + `$string`). */\nexport function resolveContextOf(ctx: SurfaceContextValue, scope: string): ResolveContext {\n return { data: ctx.data, scope, functions: ctx.functions, openUrl: ctx.openUrl, locale: ctx.locale, strings: ctx.strings, formatter: ctx.formatter, now: ctx.now }\n}\n",
|
|
7
7
|
"// VAPP-87: EXTENSIONS. An extension = its catalog (`defineExtension` from\n// `@exponential_app/eui`: own id, extends the core, natives + macros) plus one\n// React component per NATIVE kind it adds (macros expand in the reducer and\n// need no component). `registerExtension` adds one to the module registry\n// every surface reads; the `extensions` prop of `ExponentialSurface` adds\n// per-surface ones. An extension may also OVERRIDE a core native's painter\n// (`components: { Switch: MySwitch }`), the VAPP-92 \"painter override\".\n\nimport { defineExtension } from \"@exponential_app/eui\"\nimport type { ExtensionDef } from \"@exponential_app/eui\"\nimport type { ComponentType } from \"react\"\nimport type { ExtensionComponentProps } from \"./host\"\n\nexport type ExtensionComponent = ComponentType<ExtensionComponentProps>\n\nexport interface ReactExtension {\n /** The extension catalog (validated). `null` for a pure painter override. */\n catalog: ExtensionDef | null\n components: Record<string, ExtensionComponent>\n}\n\nexport interface RegisterExtensionOptions {\n catalog?: ExtensionDef\n components?: Record<string, ExtensionComponent>\n}\n\nconst registry: ReactExtension[] = []\nconst listeners = new Set<() => void>()\n\n/** Register an extension for every surface on the page. Returns an\n * unregister function. */\nexport function registerExtension(options: RegisterExtensionOptions): () => void {\n const ext: ReactExtension = {\n catalog: options.catalog ? defineExtension(options.catalog) : null,\n components: options.components ?? {},\n }\n registry.push(ext)\n for (const l of listeners) l()\n return () => {\n const i = registry.indexOf(ext)\n if (i >= 0) registry.splice(i, 1)\n for (const l of listeners) l()\n }\n}\n\n/** A per-surface extension (the `extensions` prop), validated once. */\nexport function defineReactExtension(options: RegisterExtensionOptions): ReactExtension {\n return { catalog: options.catalog ? defineExtension(options.catalog) : null, components: options.components ?? {} }\n}\n\nexport function registeredExtensions(): readonly ReactExtension[] {\n return registry\n}\n\nexport function subscribeExtensions(listener: () => void): () => void {\n listeners.add(listener)\n return () => listeners.delete(listener)\n}\n\n/** The catalog defs of a list of React extensions (for the reducer). */\nexport function extensionCatalogs(extensions: readonly ReactExtension[]): ExtensionDef[] {\n return extensions.flatMap((e) => (e.catalog ? [e.catalog] : []))\n}\n\n/** The macro names extensions add (their parts live in the `xui-part` layer). */\nexport function extensionMacroNames(extensions: readonly ReactExtension[]): Set<string> {\n const out = new Set<string>()\n for (const ext of extensions) {\n for (const [name, def] of Object.entries(ext.catalog?.components ?? {})) if (def.kind === `macro`) out.add(name)\n }\n return out\n}\n\nexport function extensionComponent(extensions: readonly ReactExtension[], component: string): ExtensionComponent | undefined {\n for (let i = extensions.length - 1; i >= 0; i--) {\n const hit = extensions[i].components[component]\n if (hit) return hit\n }\n return undefined\n}\n",
|
|
8
8
|
"// VAPP-87 + round 1: ONE normalized node → one React element. The BIND pass\n// of the contract (§1, `@exponential_app/eui` `bindTree` is the reference)\n// runs here per render: a node whose `visible` resolves falsy is not\n// rendered at all; props, dynamic style values (the expander's `percent{}`\n// for a bound Progress) and macro recipe props resolve against the data\n// model, `$string.<id>` through the surface's string table; a RESPONSIVE\n// prop of a native (`Drawer.side`) takes its value at the surface's active\n// breakpoint before the recipe sees it. Then the painter is picked (an\n// extension component, a painter override, or the native) and handed the\n// root attributes (the node class, the theme scope, the recipe part\n// classes, the `data-r-*`/`data-m-*` recipe props, the forced states) and\n// an emitter that runs an action in the contract's order: resolve the\n// function args and the event context against the data AS IT IS, apply\n// `set`, then dispatch the event. A data template renders its component\n// once per item under the item's scope, keyed by `template.key`.\n\nimport { Component, Fragment, memo, useCallback, useContext, useEffect, useMemo, useRef, type CSSProperties, type ReactNode } from \"react\"\nimport { UNKNOWN_COMPONENT, instanceSegment, isResponsiveValue, nativeRecipeProps, responsiveAt, templateItemKeys, templateSiteKey, withOwnWrites } from \"@exponential_app/eui\"\nimport type { UiNode } from \"@exponential_app/eui\"\nimport { dynamicStyleEntries, nodeClass, queryToken, styleDirection } from \"@exponential_app/eui/web\"\nimport { InstanceContext, ScopeContext, SurfaceContext, deriveContext, resolveContextOf, useSurfaceContext, type SurfaceContextValue } from \"./context\"\nimport { responsiveProps, useLive } from \"./live\"\nimport { absolutePath, ariaAttributes, getPointer, resolveAccessibility, resolveNodeProps, resolveValue, resolveVisible, type ResolveContext } from \"@exponential_app/eui/web\"\nimport { extensionComponent, extensionMacroNames } from \"./extensions\"\nimport type { ExtensionComponentProps, SurfaceActionEvent } from \"./host\"\nimport { NATIVES } from \"./natives\"\nimport { cssValue, isMacroComponent, partClass, propAttribute } from \"@exponential_app/eui/web\"\n\nexport interface NativeProps extends ExtensionComponentProps {\n /** The data scope (template item) this node renders under. */\n scope: string\n /** The node's id as painted (`data-xui-id`): its id + the template\n * instance suffix. DOM ids derive from it (`<id>.error`). */\n domId: string\n}\n\nconst CONTAINERS = new Set([`Box`, `List`])\n\n/** The id a node's style rules are keyed by. */\nexport function styleIdOf(node: UiNode): string {\n return (node as UiNode & { styleId?: string }).styleId ?? node.id\n}\n\n/** The attributes every painted root carries. */\nexport function useRootProps(node: UiNode, props: Record<string, unknown>, domId: string = node.id, recipeProps?: Record<string, unknown>, style?: CSSProperties): Record<string, unknown> {\n const ctx = useSurfaceContext()\n const scope = useContext(ScopeContext)\n return useMemo(() => {\n const macros = extensionMacroNames(ctx.extensions)\n const classes = [`xui-el`, nodeClass(styleIdOf(node)), ctx.compiled.scope, partClass(node.component, `root`)]\n const attrs: Record<string, unknown> = {}\n if (node.recipe) {\n classes.push(partClass(node.recipe.macro, node.recipe.part))\n attrs[`data-xui-part`] = `${node.recipe.macro}/${node.recipe.part}`\n const macro = isMacroComponent(node.recipe.macro, macros)\n for (const [k, v] of Object.entries(recipeProps ?? node.recipe.props)) if (v !== undefined && v !== null && typeof v !== `object`) attrs[propAttribute(macro, k)] = String(v)\n }\n for (const [k, v] of Object.entries(nativeRecipeProps(node.component, props, ctx.extensionDefs))) if (typeof v !== `object`) attrs[propAttribute(false, k)] = String(v)\n if (ctx.states.length) attrs[`data-xs`] = ctx.states.join(` `)\n // Contract §6: the node's accessibility (author label/description + a\n // macro part's role and states) resolved, then mapped to ARIA. A\n // painter's own role/aria-* set after the spread wins.\n if (node.accessibility) Object.assign(attrs, ariaAttributes(resolveAccessibility(node.accessibility, { data: ctx.data, scope, functions: ctx.functions, locale: ctx.locale, strings: ctx.strings })))\n if (style) attrs.style = style\n // Round 2: a node's own direction is also the `dir` attribute (`:dir()`\n // selectors, the bidi paragraph direction of its text).\n const dir = ownDirection(node, ctx)\n if (dir) attrs.dir = dir\n return { className: classes.join(` `), \"data-xui-id\": domId, \"data-xui-c\": node.component, ...attrs }\n }, [node, props, domId, recipeProps, style, scope, ctx.compiled.scope, ctx.states, ctx.extensions, ctx.extensionDefs, ctx.data, ctx.functions, ctx.locale, ctx.strings, ctx.theme, ctx.xq])\n}\n\n/** `className` on top of the renderer's own. */\nexport function withClass(rootProps: Record<string, unknown>, ...extra: (string | false | undefined | null)[]): Record<string, unknown> {\n const more = extra.filter(Boolean).join(` `)\n return more ? { ...rootProps, className: `${rootProps.className as string} ${more}` } : rootProps\n}\n\n/** A painter's own inline style merged over the root's (the dynamic style\n * variables live there and must survive). */\nexport function mergeStyle(rootProps: Record<string, unknown>, style: CSSProperties | undefined): CSSProperties | undefined {\n const own = rootProps.style as CSSProperties | undefined\n if (!own) return style\n if (!style) return own\n return { ...own, ...style }\n}\n\n/** Forced states on a part element (`data-xs`). */\nexport function forced(states: readonly string[], ...extra: (string | false | undefined)[]): string | undefined {\n const all = [...states, ...extra.filter((s): s is string => Boolean(s))]\n return all.length ? all.join(` `) : undefined\n}\n\n/** Run one of a node's actions (round-1 contract §1 `runAction`): the\n * function args AND the event context resolve against the data WITH the\n * component's own write applied (round 4 `withOwnWrites`: `own` = what\n * the component just wrote, by prop, so the context of an Input's\n * `change` reads the text just typed, even before React has re-rendered\n * the write), then `set` writes (relative paths against the node's scope), any other\n * function runs, then the event reaches the host with the component's\n * payload merged OVER the author's context (the payload wins a clashing\n * key, like the Rust core's `fire`: the author's context was resolved\n * before the write, the payload carries the value just written). */\nexport function runNodeAction(ctx: SurfaceContextValue, node: UiNode, domId: string, scope: string, event: string, payload?: Record<string, unknown>, own?: Record<string, unknown>): Promise<void> | void {\n const action = node.on?.[event]\n if (!action) return undefined\n const base = resolveContextOf(ctx, scope)\n const rctx: ResolveContext = own ? { ...base, data: withOwnWrites(ctx.data, node.props, own, scope ? { base: scope } : {}) } : base\n const fn = action.functionCall\n const args = fn ? ((resolveValue(fn.args ?? {}, rctx) as Record<string, unknown>) ?? {}) : undefined\n const context = action.event ? ((resolveValue(action.event.context ?? {}, rctx) as Record<string, unknown>) ?? {}) : undefined\n let pending: unknown\n if (fn && args) {\n if (fn.call === `set`) {\n if (typeof args.path === `string`) ctx.setData(absolutePath(args.path, scope), args.value)\n } else {\n const f = ctx.functions[fn.call]\n // A name outside the client functions is a HOST function (VAPP-91):\n // the host's registry + policy gate (`ExponentialHost.callFunction`).\n if (f) f(args, rctx)\n else pending = ctx.host.onFunctionCall?.({ surfaceId: ctx.surfaceId, componentId: domId, name: fn.call, args })\n }\n }\n if (pending instanceof Promise) {\n // The source control stays pending until the host function settles.\n const sent = action.event ? runNodeEvent(ctx, action.event, domId, event, context, payload) : undefined\n return Promise.all([pending, sent]).then(() => undefined)\n }\n if (action.event) return runNodeEvent(ctx, action.event, domId, event, context, payload)\n return undefined\n}\n\nfunction runNodeEvent(ctx: SurfaceContextValue, ev: { name: string }, domId: string, event: string, context: Record<string, unknown> | undefined, payload?: Record<string, unknown>): Promise<void> | void {\n const e: SurfaceActionEvent = {\n surfaceId: ctx.surfaceId,\n event,\n name: ev.name,\n componentId: domId,\n context: { ...(context ?? {}), ...(payload ?? {}) },\n payload,\n timestamp: new Date().toISOString(),\n }\n return ctx.host.onAction?.(e) ?? undefined\n}\n\nexport function useEmitter(node: UiNode, scope: string, domId: string = node.id) {\n const ctx = useSurfaceContext()\n return useCallback((event: string, payload?: Record<string, unknown>, own?: Record<string, unknown>): Promise<void> | void => runNodeAction(ctx, node, domId, scope, event, payload, own), [node, ctx, scope, domId])\n}\n\n/** A node, or nothing when its `visible` resolves falsy (no layout, not in\n * the a11y tree). Memoized on the node: a parent re-render does not cascade;\n * a context change (theme, locale…) still reaches every node, a data,\n * breakpoint or `data-xq` change only the nodes that read the new value\n * (`useLive`, VAPP-141). */\nexport const NodeView = memo(function NodeView({ node }: { node: UiNode }) {\n const ctx = useSurfaceContext()\n const scope = useContext(ScopeContext)\n const live = useLive(ctx, node, scope)\n if (node.visible !== undefined && !resolveVisible(node.visible, resolveContextOf(ctx, scope))) return null\n const own = ownDirection(node, ctx)\n if (own && own !== ctx.direction) return <DirectedNode node={node} scope={scope} direction={own} live={live} />\n return <BoundNode node={node} scope={scope} live={live} />\n})\n\n/** A node's own style `direction` (round 2 §2: any node, inherited),\n * matching `@media` blocks included (`nodeDirections` is the reference). */\nexport function ownDirection(node: UiNode, ctx?: Pick<SurfaceContextValue, `theme` | `xq`>): `ltr` | `rtl` | undefined {\n if (!node.style) return undefined\n const tokens = ctx?.xq ? ctx.xq.split(` `) : []\n return styleDirection(node.style, ctx?.theme, (key) => tokens.includes(queryToken(key)))\n}\n\n/** A node whose `direction` differs from its parent's: it and its subtree\n * paint with it (Radix `dir`, arrow keys, mirrored glyphs, the chart\n * mirror read `ctx.direction`). */\nfunction DirectedNode({ node, scope, direction, live }: { node: UiNode; scope: string; direction: `ltr` | `rtl`; live: readonly unknown[] }) {\n const ctx = useSurfaceContext()\n const value = useMemo(() => deriveContext(ctx, { direction }), [ctx, direction])\n return (\n <SurfaceContext.Provider value={value}>\n <BoundNode node={node} scope={scope} live={live} />\n </SurfaceContext.Provider>\n )\n}\n\n/** `live` = the values the node reads (`useLive`): a new array re-binds it. */\nconst BoundNode = memo(function BoundNode({ node, scope, live }: { node: UiNode; scope: string; live: readonly unknown[] }) {\n const ctx = useSurfaceContext()\n const instance = useContext(InstanceContext)\n const domId = `${node.id}${instance}`\n const data = ctx.data\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const rctx = useMemo(() => resolveContextOf(ctx, scope), [ctx, scope, data, live])\n const props = useMemo(() => {\n const out = resolveNodeProps(node.component, node.props, rctx, ctx.extensionDefs)\n for (const name of responsiveProps(node.component, ctx.extensionDefs)) {\n const v = out[name]\n if (isResponsiveValue(v)) out[name] = responsiveAt(v, ctx.breakpoint)\n }\n return out\n }, [node.props, node.component, rctx, ctx.extensionDefs, ctx.breakpoint])\n const recipeProps = useMemo(() => (node.recipe ? (resolveValue(node.recipe.props, rctx) as Record<string, unknown>) : undefined), [node.recipe, rctx])\n const dynamicStyle = useMemo(() => {\n const entries = dynamicStyleEntries(node.style)\n if (entries.length === 0) return undefined\n const out: Record<string, string> = {}\n // EVERY entry is set: a value that resolves to nothing is `initial` (the\n // guaranteed-invalid value), so the property falls back instead of\n // inheriting an ancestor's `--xd-<n>`.\n for (const e of entries) {\n const css = cssValue(e.key, resolveValue(e.value, rctx), ctx.theme.fonts)\n out[e.name] = css ?? `initial`\n }\n return out as CSSProperties\n }, [node.style, rctx, ctx.theme.fonts])\n const rootProps = useRootProps(node, props, domId, recipeProps, dynamicStyle)\n const emit = useEmitter(node, scope, domId)\n const Override = extensionComponent(ctx.extensions, node.component)\n const Native = NATIVES[node.component]\n const Painter = Override ?? Native ?? NATIVES[UNKNOWN_COMPONENT]\n const unknown = node.component === UNKNOWN_COMPONENT || (!Native && !Override)\n const onUnknown = ctx.host.onUnknown\n useEffect(() => {\n if (unknown) onUnknown?.(node)\n }, [unknown, onUnknown, node])\n\n // Geometry mode: a leaf is a fixed box (the core's fake measure) with\n // NO recipe on it — only its node style lays out, like the core.\n if (ctx.measure && !CONTAINERS.has(node.component)) {\n const size = ctx.measure(node)\n if (size) {\n return (\n <div className={`xui-el ${nodeClass(node.id)} xui-leaf`} data-xui-id={domId} data-xui-c={node.component}>\n <div className=\"xui-measured\" style={{ width: size.w, height: size.h }} />\n </div>\n )\n }\n }\n\n const children: ReactNode = (\n <>\n {node.children.map((child) => (\n <NodeView key={child.id} node={child} />\n ))}\n {node.template ? <TemplateChildren node={node} scope={scope} /> : null}\n </>\n )\n const slots: Record<string, ReactNode> = {}\n for (const [name, slot] of Object.entries(node.slots ?? {})) slots[name] = <NodeView key={slot.id} node={slot} />\n\n const painterProps: NativeProps = { node, props, theme: ctx.theme, mode: ctx.mode, tokens: ctx.theme.tokens, children, slots, emit, rootProps, scope, domId }\n if (UNGUARDED.has(node.component) && !Override) return <Painter {...painterProps} />\n return (\n <PaintBoundary node={node} domId={domId}>\n <Painter {...painterProps} />\n </PaintBoundary>\n )\n})\n\n/** A failed node's identity for the once-per-props rule. */\nfunction propsSignature(node: UiNode): string {\n try {\n return `${node.component}\\u0000${JSON.stringify(node.props)}`\n } catch {\n return node.component\n }\n}\n\n/** The plain painters (no formatting, no host code) skip the boundary. */\nconst UNGUARDED = new Set([`Box`, `Text`])\n\n/** One node's painter that throws (a bad agent-written prop, a host\n * override's bug) paints an EMPTY box in its place; the rest of the\n * surface and the host stay mounted, and the host hears it through\n * `onPaintError` (catalog/host.json paint). A new node (a re-reduce)\n * retries. */\nclass PaintBoundary extends Component<{ node: UiNode; domId: string; children: ReactNode }, { node: UiNode; failed: boolean }> {\n static contextType = SurfaceContext\n declare context: SurfaceContextValue | null\n constructor(props: { node: UiNode; domId: string; children: ReactNode }) {\n super(props)\n this.state = { node: props.node, failed: false }\n }\n static getDerivedStateFromProps(props: { node: UiNode }, state: { node: UiNode }): { node: UiNode; failed: boolean } | null {\n return props.node === state.node ? null : { node: props.node, failed: false }\n }\n static getDerivedStateFromError(): { failed: boolean } {\n return { failed: true }\n }\n componentDidCatch(error: unknown): void {\n const { node, domId } = this.props\n // Reported ONCE per painted node until its props change (a re-reduce\n // hands every node a new object; that alone never re-reports).\n const failures = this.context?.paintFailures\n const signature = propsSignature(node)\n if (failures?.get(domId) === signature) return\n failures?.set(domId, signature)\n const message = `${node.component} failed to paint: ${error instanceof Error ? error.message : String(error)}`\n const report = this.context?.host.onPaintError\n if (report) {\n try {\n report({ surfaceId: this.context!.surfaceId, componentId: node.id, message })\n } catch (e) {\n console.error(`[exponential-ui] onPaintError threw`, e)\n }\n } else console.error(`[exponential-ui] ${node.component} \"${node.id}\" failed to paint`, error)\n }\n componentDidMount(): void {\n this.painted()\n }\n componentDidUpdate(): void {\n this.painted()\n }\n componentWillUnmount(): void {\n this.context?.paintFailures?.delete(this.props.domId)\n }\n /** A node that paints again is no longer a remembered failure. */\n private painted(): void {\n if (!this.state.failed) this.context?.paintFailures?.delete(this.props.domId)\n }\n render(): ReactNode {\n const { node, domId, children } = this.props\n if (this.state.failed) return <div className={`xui-el ${nodeClass(node.id)}`} data-xui-id={domId} data-xui-c={node.component} data-xui-error=\"\" />\n return children\n }\n}\n\nexport interface TemplateItem {\n /** The item's instance key (its React key; escaped, its id suffix): the\n * `template.key` value; the index when the template has no key; `#<index>`\n * when the key is missing, null, empty or a DUPLICATE of an earlier item\n * (so ids stay unique). */\n key: string\n /** The item's data pointer (its scope). */\n path: string\n index: number\n}\n\n/** The items of a node's data template (`template.key` = a pointer relative\n * to each item whose value identifies it). Instance ids ACCUMULATE: an\n * item's nodes are `<id><outer suffixes>.<key>`, so a nested template's\n * items stay unique across the outer items (`cell.a.0`, `cell.b.0`). */\nexport function templateItems(ctx: SurfaceContextValue, node: UiNode, scope: string): { items: TemplateItem[]; tpl: UiNode } | null {\n const template = node.template\n if (!template) return null\n const path = absolutePath(template.path, scope)\n const list = getPointer(ctx.data, path)\n const tpl = ctx.templateNode(template.component)\n if (!Array.isArray(list) || !tpl) return null\n const keys = templateItemKeys(list, template.key)\n // VAPP-103: the surface's `maxTemplateItems` budget for this site.\n const count = ctx.templateBudget?.allowed.get(templateSiteKey(node.id, scope)) ?? list.length\n const items = list.slice(0, count).map((_, index) => ({ key: keys[index], path: `${path}/${index}`, index }))\n return { items, tpl }\n}\n\n/** A template item's instance suffix: the enclosing one + `.<key>`, the\n * key escaped (`instanceSegment`: `.` → `~1`, `~` → `~0`) as the core's\n * `templateInstances`, so `a.b` never reads as two levels. */\nexport const itemInstance = (instance: string, key: string): string => `${instance}.${instanceSegment(key)}`\n\n/** One template item: its scope + instance suffix around the node. */\nexport function TemplateItemView({ tpl, item }: { tpl: UiNode; item: TemplateItem }) {\n const instance = useContext(InstanceContext)\n return (\n <ScopeContext.Provider value={item.path}>\n <InstanceContext.Provider value={itemInstance(instance, item.key)}>\n <NodeView node={tpl} />\n </InstanceContext.Provider>\n </ScopeContext.Provider>\n )\n}\n\n/** VAPP-140: a template whose items share NO key with the last render's\n * (a replaced array) mounts as one new block: React's keyed reconcile\n * would place each new item on its own, every placement scanning the new\n * siblings after it (quadratic: 10,000 items, 150 ms of sibling search). */\nfunction TemplateChildren({ node, scope }: { node: UiNode; scope: string }) {\n const ctx = useSurfaceContext()\n const t = templateItems(ctx, node, scope)\n const last = useRef<{ keys: Set<string>; generation: number }>({ keys: new Set(), generation: 0 })\n const keys = t ? t.items.map((item) => item.key) : []\n let generation = last.current.generation\n if (keys.length > 0 && last.current.keys.size > 0 && !keys.some((k) => last.current.keys.has(k))) generation++\n useEffect(() => {\n last.current = { keys: new Set(keys), generation }\n })\n if (!t) return null\n return <TemplateBlock key={generation} items={t.items} tpl={t.tpl} />\n}\n\nfunction TemplateBlock({ items, tpl }: { items: TemplateItem[]; tpl: UiNode }) {\n return (\n <>\n {items.map((item) => (\n <TemplateItemView key={item.key} tpl={tpl} item={item} />\n ))}\n </>\n )\n}\n\nexport { Fragment }\n",
|
|
9
9
|
"// VAPP-141 + VAPP-137 + VAPP-130: what a node re-renders FOR. The surface\n// context is stable across data, breakpoint, `data-xq` and mode changes\n// (those four are getters over the surface's latest render,\n// `SurfaceContextValue.subscribe` announces a change); each node subscribes to the values ITS bindings\n// read — the absolute pointers in its props, `visible`, dynamic style,\n// recipe props, accessibility and template path, the breakpoint when it\n// has a responsive prop, `data-xq` when an `@media` block sets its\n// direction, the mode when its painter reads it (the stylesheet carries\n// both modes) — and re-renders only when one of them is a new value. A call\n// whose function may read the model on its own (`formatString`, a host\n// function) or a host-painted component re-renders on every change.\n\nimport { useMemo, useRef, useSyncExternalStore } from \"react\"\nimport { sharedCatalogView } from \"@exponential_app/eui\"\nimport type { ExtensionDef, UiNode } from \"@exponential_app/eui\"\nimport { CLIENT_FUNCTIONS, absolutePath, isBinding, isCall, pointerTokens } from \"@exponential_app/eui/web\"\nimport type { SurfaceContextValue } from \"./context\"\nimport { extensionComponent } from \"./extensions\"\n\nexport interface NodeDeps {\n paths: string[]\n /** `paths` as pointer tokens (read on every change of every node). */\n tokens: string[][]\n /** Re-render on any data change. */\n all: boolean\n breakpoint: boolean\n xq: boolean\n mode: boolean\n}\n\n/** The natives that read `ctx.mode` while painting (a recipe size or\n * colour resolved in JS); every other node's look follows the root's\n * `data-xui-mode` in CSS. */\nconst MODE_READERS = new Set([`Ring`, `Spinner`, `TreeGuides`, `Avatar`, `VoiceWave`])\n\n/** The client functions that read nothing but their arguments. */\nconst PURE = new Set(Object.keys(CLIENT_FUNCTIONS).filter((name) => name !== `formatString`))\n\n/** Collects the binding pointers of a value; true = it may read anything. */\nfunction collect(value: unknown, scope: string, paths: string[], functions: SurfaceContextValue[`functions`]): boolean {\n if (isBinding(value)) {\n paths.push(absolutePath(value.path, scope))\n return false\n }\n if (isCall(value)) {\n const fn = functions[value.call] ?? CLIENT_FUNCTIONS[value.call]\n if (!PURE.has(value.call) || fn !== CLIENT_FUNCTIONS[value.call]) return true\n return collect(value.args, scope, paths, functions)\n }\n if (Array.isArray(value)) {\n for (const v of value) if (collect(v, scope, paths, functions)) return true\n return false\n }\n if (typeof value === `object` && value !== null) {\n for (const v of Object.values(value)) if (collect(v, scope, paths, functions)) return true\n }\n return false\n}\n\nconst responsiveCache = new WeakMap<readonly ExtensionDef[], Map<string, string[]>>()\n\n/** The props of a component marked `responsive: true` in the catalog. */\nexport function responsiveProps(component: string, extensions: readonly ExtensionDef[]): string[] {\n let byComponent = responsiveCache.get(extensions)\n if (!byComponent) {\n byComponent = new Map()\n responsiveCache.set(extensions, byComponent)\n }\n let hit = byComponent.get(component)\n if (!hit) {\n const def = sharedCatalogView(extensions as ExtensionDef[]).components[component]\n hit = def ? Object.entries(def.props).filter(([, s]) => s.responsive).map(([n]) => n) : []\n byComponent.set(component, hit)\n }\n return hit\n}\n\nfunction mediaDirection(style: Record<string, unknown> | undefined): boolean {\n if (!style) return false\n for (const [key, value] of Object.entries(style)) if (key.startsWith(`@`) && typeof value === `object` && value !== null && `direction` in value) return true\n return false\n}\n\nexport function nodeDeps(node: UiNode, scope: string, ctx: SurfaceContextValue): NodeDeps {\n const paths: string[] = []\n // A host-painted component may read any live member itself.\n const hosted = extensionComponent(ctx.extensions, node.component) !== undefined\n const all =\n hosted ||\n collect(node.props, scope, paths, ctx.functions) ||\n collect(node.visible, scope, paths, ctx.functions) ||\n collect(node.style, scope, paths, ctx.functions) ||\n collect(node.recipe?.props, scope, paths, ctx.functions) ||\n collect(node.accessibility, scope, paths, ctx.functions)\n if (node.template) paths.push(absolutePath(node.template.path, scope))\n const unique = [...new Set(paths)]\n return { paths: unique, tokens: unique.map(pointerTokens), all, breakpoint: hosted || responsiveProps(node.component, ctx.extensionDefs).length > 0, xq: hosted || mediaDirection(node.style as Record<string, unknown> | undefined), mode: hosted || MODE_READERS.has(node.component) }\n}\n\nconst INDEX = /^[0-9]+$/\n\n/** `getPointer` over pre-split tokens (the same rule: real indices and\n * OWN keys only; `-` = the last element, EXP-1385, so a node bound to\n * `/log/-` repaints on an append). */\nfunction readTokens(data: unknown, tokens: readonly string[]): unknown {\n let cur = data\n for (const token of tokens) {\n if (cur === null || typeof cur !== `object`) return undefined\n if (Array.isArray(cur)) cur = token === `-` ? cur[cur.length - 1] : INDEX.test(token) ? cur[Number(token)] : undefined\n else cur = Object.prototype.hasOwnProperty.call(cur, token) ? (cur as Record<string, unknown>)[token] : undefined\n }\n return cur\n}\n\nconst NONE: readonly unknown[] = []\nconst noSubscription = () => () => {}\n\n/** The live values a node reads, as one array that keeps its identity\n * until one of them changes (the node's re-render key). */\nexport function useLive(ctx: SurfaceContextValue, node: UiNode, scope: string): readonly unknown[] {\n const deps = useMemo(() => nodeDeps(node, scope, ctx), [node, scope, ctx])\n const last = useRef<readonly unknown[]>(NONE)\n const watches = deps.all || deps.breakpoint || deps.xq || deps.mode || deps.paths.length > 0\n const read = (): readonly unknown[] => {\n if (!watches) return NONE\n const data = ctx.data\n const next: unknown[] = deps.tokens.map((t) => readTokens(data, t))\n next.push(deps.all ? data : undefined, deps.breakpoint ? ctx.breakpoint : undefined, deps.xq ? ctx.xq : undefined, deps.mode ? ctx.mode : undefined)\n const prev = last.current\n if (prev.length === next.length && prev.every((v, i) => Object.is(v, next[i]))) return prev\n last.current = next\n return next\n }\n return useSyncExternalStore(watches ? ctx.subscribe : noSubscription, read, read)\n}\n\n",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"// VAPP-87 + round 2 (docs/round-2-contract.md §5): the WINDOWED list on ONE\n// axis (vertical or horizontal). The numbers are the core's (`itemOffsets`,\n// `virtualWindow`, `scrollOffsetForIndex`, `stickyHeader` from\n// `@exponential_app/eui`): rows sit end to end with `gap` between them (a\n// divided list adds the hairline to the gap and draws the divider centred\n// in it), unmeasured rows take the measured mean, or the estimate (`$control.row`) before any is measured. Rows are\n// positioned absolutely inside a spacer as long as the content; ONE\n// ResizeObserver corrects each rendered row's extent (a row leaving the\n// window is unobserved, the observer disconnects on unmount). The window\n// follows the nearest ancestor that ACTUALLY scrolls on the axis (overflow\n// auto/scroll AND content longer than its box: the List itself when it has\n// a bounded size), else the host viewport; it is re-found when the rows or\n// their total change, and the viewport re-read on scroll and on a resize of\n// the window, the scroller or the list. A sticky header row (`stickyRows`)\n// pins at the viewport start, pushed back by the next one, and renders even\n// outside the window. `scrollToIndex` brings a row into view (start | center\n// | end | nearest) minus the pinned header.\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, type CSSProperties, type ReactNode } from \"react\"\nimport { itemExtents, itemOffsets, scrollOffsetForIndex, stickyHeader, virtualWindow, WINDOW_OVERSCAN, type ScrollAlign } from \"@exponential_app/eui\"\nimport { listViewport as viewportOf, scrollParent, type ListAxis } from \"@exponential_app/eui/web\"\n\nexport type { ListAxis }\n\nexport interface WindowedListProps {\n count: number\n itemKey: (index: number) => string\n renderItem: (index: number) => ReactNode\n /** The extent (px on the axis) of a row before it is measured. */\n estimatedItemHeight?: number | ((index: number) => number)\n overscan?: number\n className?: string\n axis?: ListAxis\n /** Inline direction (a horizontal list starts at the right in rtl). */\n direction?: `ltr` | `rtl`\n /** Space between rows on the axis (px; a divided list adds the hairline). */\n gap?: number\n /** A divider drawn centred in the gap BEFORE row `index` (null = none). */\n divider?: (index: number) => ReactNode | null\n /** Flat indices of the header rows that pin (ascending). */\n stickyRows?: readonly number[]\n /** Extra attributes of row `index`'s wrapper (role, aria-setsize…). */\n itemProps?: (index: number) => Record<string, unknown>\n}\n\nexport interface WindowedListHandle {\n /** Scroll row `index` into view (`start` | `center` | `end` | `nearest`,\n * default nearest), the pinned header's extent subtracted. */\n scrollToIndex: (index: number, align?: ScrollAlign) => void\n}\n\nconst useIsoLayoutEffect = typeof window === `undefined` ? useEffect : useLayoutEffect\n\nexport { scrollParent }\n\nexport const WindowedList = forwardRef<WindowedListHandle, WindowedListProps>(function WindowedList(\n { count, itemKey, renderItem, estimatedItemHeight = 40, overscan = WINDOW_OVERSCAN, className, axis = `vertical`, direction = `ltr`, gap = 0, divider, stickyRows, itemProps },\n handle\n) {\n const ref = useRef<HTMLDivElement>(null)\n const extentsByKey = useRef<Map<string, number>>(new Map())\n const crossByKey = useRef<Map<string, number>>(new Map())\n const observed = useRef<Map<string, Element>>(new Map())\n const keyOfEl = useRef<WeakMap<Element, string>>(new WeakMap())\n const observer = useRef<ResizeObserver | null>(null)\n const [version, bump] = useState(0)\n const [view, setView] = useState<{ scroll: number; viewport: number } | null>(null)\n const horizontal = axis === `horizontal`\n const rtl = horizontal && direction === `rtl`\n\n const estimate = useCallback((i: number) => (typeof estimatedItemHeight === `function` ? estimatedItemHeight(i) : estimatedItemHeight), [estimatedItemHeight])\n // Bumped with every new measurement (synchronously, unlike `version`).\n const measured = useRef(0)\n const extentsCache = useRef<{ count: number; itemKey: WindowedListProps[`itemKey`]; estimate: WindowedListProps[`estimatedItemHeight`]; measured: number; ext: number[] } | null>(null)\n /** Every row's extent; one pass over the rows per measurement (VAPP-139:\n * a 100,000-row jump read them twice). */\n const extents = (): number[] => {\n const c = extentsCache.current\n if (c && c.count === count && c.itemKey === itemKey && c.estimate === estimatedItemHeight && c.measured === measured.current) return c.ext\n let ext: number[]\n // §5: a fixed estimate gives way to the mean of the measured rows.\n if (typeof estimatedItemHeight === `number`) ext = itemExtents(Array.from({ length: count }, (_, i) => extentsByKey.current.get(itemKey(i))), estimatedItemHeight)\n else {\n ext = new Array<number>(count)\n for (let i = 0; i < count; i++) ext[i] = extentsByKey.current.get(itemKey(i)) ?? estimate(i)\n }\n extentsCache.current = { count, itemKey, estimate: estimatedItemHeight, measured: measured.current, ext }\n return ext\n }\n\n useEffect(() => {\n if (typeof ResizeObserver === `undefined`) return\n const ro = new ResizeObserver((entries) => {\n let changed = false\n for (const entry of entries) {\n const key = keyOfEl.current.get(entry.target)\n const box = entry.borderBoxSize?.[0]\n const w = box ? box.inlineSize : entry.contentRect.width\n const h = box ? box.blockSize : entry.contentRect.height\n const main = horizontal ? w : h\n const cross = horizontal ? h : w\n if (key === undefined || main <= 0) continue\n if (extentsByKey.current.get(key) !== main) {\n extentsByKey.current.set(key, main)\n changed = true\n }\n if (crossByKey.current.get(key) !== cross) {\n crossByKey.current.set(key, cross)\n changed = true\n }\n }\n if (changed) {\n measured.current++\n bump((n) => n + 1)\n }\n })\n observer.current = ro\n for (const el of observed.current.values()) ro.observe(el)\n return () => {\n ro.disconnect()\n observer.current = null\n }\n }, [horizontal])\n\n // The scroller (undefined = not resolved yet, null = the window). Re-found\n // when the rows or their measured total change: a box may only start\n // scrolling once its rows are measured.\n const [scroller, setScroller] = useState<HTMLElement | null | undefined>(undefined)\n // The viewport is re-read on scroll, a window resize AND a resize of the\n // scroller or the list itself (a Resizable panel, a sibling growing).\n useIsoLayoutEffect(() => {\n const el = ref.current\n if (!el || scroller === undefined) return\n const read = () => {\n const v = viewportOf(el, axis, rtl, scroller)\n setView((cur) => (cur && cur.scroll === v.scroll && cur.viewport === v.viewport ? cur : { scroll: v.scroll, viewport: v.viewport }))\n }\n read()\n const target: EventTarget = scroller ?? window\n target.addEventListener(`scroll`, read, { passive: true })\n window.addEventListener(`resize`, read)\n const ro = typeof ResizeObserver === `undefined` ? null : new ResizeObserver(read)\n if (ro) {\n if (scroller) ro.observe(scroller)\n ro.observe(el)\n }\n return () => {\n target.removeEventListener(`scroll`, read)\n window.removeEventListener(`resize`, read)\n ro?.disconnect()\n }\n }, [scroller, axis, rtl])\n\n const measure = useCallback(\n (key: string) => (node: HTMLDivElement | null) => {\n const prev = observed.current.get(key)\n if (prev && prev !== node) {\n observer.current?.unobserve(prev)\n observed.current.delete(key)\n }\n if (!node) return\n observed.current.set(key, node)\n keyOfEl.current.set(node, key)\n observer.current?.observe(node)\n },\n []\n )\n\n // Extents and offsets change with the rows and their measurements, never\n // with the scroll position (a scroll step re-renders only the window).\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const ext = useMemo(extents, [count, itemKey, estimate, version])\n const off = useMemo(() => itemOffsets(ext, gap), [ext, gap])\n const total = off[count] ?? 0\n useIsoLayoutEffect(() => {\n const el = ref.current\n if (!el) return\n const found = scrollParent(el, axis)\n setScroller((cur) => (cur === found ? cur : found))\n }, [count, axis, total])\n const fallbackViewport = typeof window !== `undefined` ? (horizontal ? window.innerWidth : window.innerHeight) : 800\n const scroll = view?.scroll ?? 0\n const viewport = view?.viewport || fallbackViewport\n const win = virtualWindow(ext, gap, scroll, viewport, overscan)\n const headers = useMemo(() => [...(stickyRows ?? [])].filter((r) => r >= 0 && r < count).sort((a, b) => a - b), [stickyRows, count])\n const pinned = headers.length && scroll >= 0 ? stickyHeader(off, ext, headers, scroll) : null\n\n // scrollToIndex: scroll so the row sits where `align` says, minus the\n // header that will be pinned there; unmeasured rows were estimates, so the\n // jump is re-aimed after the rows it reveals are measured (a few frames).\n const pending = useRef<{ index: number; align: ScrollAlign; tries: number } | null>(null)\n const jump = (index: number, align: ScrollAlign): boolean => {\n const el = ref.current\n if (!el || index < 0 || index >= count) return false\n const e = extents()\n const v = viewportOf(el, axis, rtl)\n let header = -1\n for (const r of headers) if (r <= index) header = r\n const inset = header >= 0 && header !== index ? e[header] : 0\n const target = scrollOffsetForIndex(e, gap, index, v.viewport, Math.max(0, v.scroll), align, inset)\n const delta = target - v.scroll\n if (Math.abs(delta) < 0.5) return false\n const by = horizontal ? { left: rtl ? -delta : delta } : { top: delta }\n if (v.scroller) v.scroller.scrollBy(by)\n else window.scrollBy(by)\n return true\n }\n // A measurement anywhere moves the measured mean and so every unmeasured\n // row above the target: re-aim on the next renders, until user input.\n useEffect(() => {\n const p = pending.current\n if (!p) return\n if (p.tries++ >= 12) pending.current = null\n else jump(p.index, p.align)\n })\n useEffect(() => {\n const target: EventTarget = scroller ?? window\n const cancel = () => {\n pending.current = null\n }\n const events = [`wheel`, `touchstart`, `pointerdown`, `keydown`] as const\n for (const e of events) target.addEventListener(e, cancel, { passive: true })\n return () => {\n for (const e of events) target.removeEventListener(e, cancel)\n }\n }, [scroller])\n useImperativeHandle(\n handle,\n () => ({\n scrollToIndex: (index, align = `nearest`) => {\n pending.current = { index, align, tries: 0 }\n if (!jump(index, align)) pending.current = null\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [count, itemKey, estimate, axis, rtl, gap, headers]\n )\n\n const place = (at: number): CSSProperties => (horizontal ? (rtl ? { right: 0, transform: `translateX(${-at}px)` } : { left: 0, transform: `translateX(${at}px)` }) : { transform: `translateY(${at}px)` })\n const indices: number[] = []\n if (pinned && (pinned.row < win.start || pinned.row >= win.end)) indices.push(pinned.row)\n for (let i = win.start; i < win.end; i++) indices.push(i)\n let cross = 0\n const rows = indices.map((i) => {\n const key = itemKey(i)\n cross = Math.max(cross, crossByKey.current.get(key) ?? 0)\n const isPinned = pinned?.row === i\n const at = isPinned ? pinned.offset : off[i]\n const line = i > 0 && divider ? divider(i) : null\n return (\n <div key={key} ref={measure(key)} className=\"xui-list-item\" data-index={i} data-pinned={isPinned && pinned.offset !== off[i] ? `` : undefined} {...(itemProps?.(i) ?? {})} style={{ ...place(at), ...(isPinned ? { zIndex: 1 } : {}) }}>\n {line ? (\n <div className=\"xui-list-gap\" aria-hidden=\"true\" data-axis={axis} style={horizontal ? { [rtl ? `right` : `left`]: -(gap / 2) } : { top: -(gap / 2) }}>\n {line}\n </div>\n ) : null}\n {renderItem(i)}\n </div>\n )\n })\n const spacer: CSSProperties = horizontal ? { width: total, height: cross || undefined } : { height: total }\n return (\n <div ref={ref} className={className ? `xui-list-window ${className}` : `xui-list-window`} data-axis={axis} style={spacer} data-window-start={win.start} data-window-end={win.end}>\n {rows}\n </div>\n )\n})\n",
|
|
30
30
|
"// VAPP-87: Image, Video, AudioPlayer, Avatar, Carousel.\n\nimport { useEffect, useRef, useState } from \"react\"\nimport { useBoundState } from \"./bound\"\nimport { Avatar as AvatarPrimitive } from \"radix-ui\"\nimport { useSurfaceContext } from \"../context\"\nimport { CHROME, IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { NodeView, mergeStyle, withClass } from \"../node-view\"\nimport { MEDIA_ASPECT_RATIO, MEDIA_INTRINSIC_WIDTH } from \"@exponential_app/eui\"\nimport { mediaClock } from \"@exponential_app/eui/web\"\n\n/** The media box's intrinsic width (catalog/layout.json\n * `mediaIntrinsicWidth`: max-content 320, min-content 0 — a compressible\n * replaced element with `max-width: 100%`), so the box never waits for the\n * picture or the browser's 300×150 video default. */\nfunction MediaSizer() {\n return <svg className=\"xui-media-sizer\" aria-hidden=\"true\" width={MEDIA_INTRINSIC_WIDTH} height={1} />\n}\nimport { bool, BuiltinIcon, num, str, useParts } from \"./shared\"\nimport { useMediaSource, useMediaSrc } from \"../media\"\n\n/** `inert` on an inactive page (React 19, the peer range, takes a boolean). */\nconst INERT: Record<string, unknown> = { inert: true }\n\n/** Image (contract §3): `loading` lazy|eager, `focalX/focalY` (0..1, the\n * point kept when the picture is cropped → `object-position`), and the\n * `fallback` icon (default `builtinIcons[\"Image.fallback\"]`) on error or\n * without a src; `data-state` = loading | loaded | error | empty. */\nexport function ImageNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const src = str(props.src)\n const alt = str(props.alt)\n const fit = str(props.fit, `cover`)\n const [state, setState] = useState<`loading` | `loaded` | `error`>(`loading`)\n useEffect(() => setState(`loading`), [src])\n const style: Record<string, string | number> = {}\n if (props.width !== undefined) style.width = num(props.width)\n if (props.height !== undefined) style.height = num(props.height)\n // Round 2 §7: `aspectRatio`, else 16:9 without a height (the box never\n // waits for the picture: the img is laid over it).\n if (props.aspectRatio !== undefined) style.aspectRatio = String(num(props.aspectRatio))\n else if (props.height === undefined) style.aspectRatio = String(MEDIA_ASPECT_RATIO)\n const objectFit = fit === `scaleDown` ? `scale-down` : fit\n const fx = Math.max(0, Math.min(1, num(props.focalX, 0.5)))\n const fy = Math.max(0, Math.min(1, num(props.focalY, 0.5)))\n // The host's media request (VAPP-91: headers → a blob url once fetched);\n // a failed fetch is the Image's error state (fallback + alt).\n const media = useMediaSource(ctx.host, src)\n const url = media.url\n const shown = media.error ? `error` : state\n const failed = !src || shown === `error`\n const fallback = str(props.fallback)\n return (\n <div {...(rootProps as Record<string, unknown>)} style={mergeStyle(rootProps, Object.keys(style).length ? style : undefined)} role={failed ? `img` : undefined} aria-label={failed ? alt : undefined} data-state={src ? shown : `empty`}>\n {src && url && shown !== `error` ? (\n <img\n src={url}\n alt={alt}\n loading={props.loading === `eager` ? `eager` : `lazy`}\n decoding=\"async\"\n style={{ objectFit: objectFit as never, objectPosition: `${fx * 100}% ${fy * 100}%` }}\n onLoad={() => setState(`loaded`)}\n onError={() => setState(`error`)}\n />\n ) : null}\n <MediaSizer />\n {failed ? (\n <div {...(part(`fallback`) as Record<string, string>)} aria-hidden=\"true\">\n {fallback ? <IconGlyph icons={ctx.host.icons} name={fallback} /> : <BuiltinIcon slot=\"Image.fallback\" />}\n </div>\n ) : null}\n </div>\n )\n}\n\n/** Video (×4 since EXP-1556): the poster (or a dark tint) with the round\n * play button and the `durationMs` clock, as desktop, iOS and Android draw\n * it; the press (or `autoplay`) swaps in the browser's player with its\n * controls, playing. */\nexport function VideoNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const src = str(props.src)\n const poster = str(props.poster)\n const autoplay = bool(props.autoplay)\n const [started, setStarted] = useState(false)\n // The video streams (no byte caps); its poster is an image (the limits hold).\n const url = useMediaSrc(ctx.host, src, `stream`)\n const posterUrl = useMediaSrc(ctx.host, poster)\n // Round 2 §7: height = width / `aspectRatio` (default 16:9), never the\n // browser's 300×150.\n const ratio = num(props.aspectRatio, MEDIA_ASPECT_RATIO) || MEDIA_ASPECT_RATIO\n const durationMs = props.durationMs !== undefined ? num(props.durationMs) : undefined\n const Play = CHROME.play\n return (\n <div {...(rootProps as Record<string, unknown>)} style={mergeStyle(rootProps, { aspectRatio: String(ratio) })}>\n <MediaSizer />\n {started || autoplay ? (\n <video {...(part(`controls`) as Record<string, string>)} src={url} poster={posterUrl} controls autoPlay muted={autoplay && !started} playsInline preload=\"metadata\" data-duration-ms={durationMs} />\n ) : (\n <>\n {posterUrl ? <img className=\"xui-video-poster\" src={posterUrl} alt=\"\" aria-hidden=\"true\" decoding=\"async\" draggable={false} /> : null}\n <button type=\"button\" className=\"xui-media-play\" data-size=\"lg\" aria-label={ctx.t(`play`)} disabled={!url} onClick={() => setStarted(true)}>\n <Play aria-hidden=\"true\" />\n </button>\n {durationMs !== undefined ? <span className=\"xui-video-duration\">{mediaClock(durationMs)}</span> : null}\n </>\n )}\n </div>\n )\n}\n\n/** AudioPlayer (×4 since EXP-1556): the title over a bar of the round\n * play/pause button, the progress track and `position / duration`, as\n * desktop, iOS and Android draw it; a hidden `<audio>` plays. */\nexport function AudioPlayerNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const src = str(props.src)\n const title = str(props.title)\n const url = useMediaSrc(ctx.host, src, `stream`)\n const audio = useRef<HTMLAudioElement>(null)\n const [playing, setPlaying] = useState(false)\n const [position, setPosition] = useState(0)\n const [loadedMs, setLoadedMs] = useState<number | null>(null)\n const durationMs = props.durationMs !== undefined ? num(props.durationMs) : (loadedMs ?? 0)\n const Glyph = playing ? CHROME.pause : CHROME.play\n const toggle = () => {\n const el = audio.current\n if (!el) return\n if (el.paused) void el.play()?.catch(() => setPlaying(false))\n else el.pause()\n }\n return (\n <div {...(rootProps as Record<string, unknown>)} style={mergeStyle(rootProps, { flexDirection: `column`, gap: `var(--xui-spacing-xs)` })}>\n {title ? <span {...(part(`track`) as Record<string, string>)}>{title}</span> : null}\n <div {...(part(`controls`) as Record<string, string>)} data-duration-ms={props.durationMs !== undefined ? num(props.durationMs) : undefined}>\n <button type=\"button\" className=\"xui-media-play\" data-size=\"sm\" aria-label={ctx.t(playing ? `pause` : `play`)} disabled={!url} onClick={toggle}>\n <Glyph aria-hidden=\"true\" />\n </button>\n <span className=\"xui-audio-progress\" aria-hidden=\"true\">\n <span style={{ width: `${durationMs > 0 ? Math.min(100, (position / durationMs) * 100) : 0}%` }} />\n </span>\n <span className=\"xui-audio-clock\">{`${mediaClock(position)} / ${mediaClock(durationMs)}`}</span>\n </div>\n <audio\n ref={audio}\n src={url}\n preload=\"metadata\"\n aria-label={title || undefined}\n onPlay={() => setPlaying(true)}\n onPause={() => setPlaying(false)}\n onEnded={() => setPlaying(false)}\n onTimeUpdate={(e) => setPosition(e.currentTarget.currentTime * 1000)}\n onLoadedMetadata={(e) => setLoadedMs(Number.isFinite(e.currentTarget.duration) ? e.currentTarget.duration * 1000 : null)}\n />\n </div>\n )\n}\n\nfunction initials(name: string): string {\n return name\n .split(/\\s+/)\n .filter(Boolean)\n .slice(0, 2)\n .map((w) => w[0]!)\n .join(``)\n .toUpperCase()\n}\n\n/** A stable hue for a seed (the app's avatar palette is host-side; the SDK\n * tints with one hue so two avatars of one person always match). */\nexport function seedHue(seed: string): number {\n let h = 0\n for (let i = 0; i < seed.length; i++) h = (h * 31 + seed.charCodeAt(i)) >>> 0\n return h % 360\n}\n\nexport function AvatarNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const name = str(props.name)\n const src = str(props.src)\n const seed = str(props.seed) || name\n const hue = seed ? seedHue(seed) : null\n const url = useMediaSrc(ctx.host, src)\n const tint = hue === null ? undefined : { backgroundColor: `color-mix(in oklab, hsl(${hue} 70% 55%) 22%, transparent)`, color: `hsl(${hue} 60% ${ctx.mode === `dark` ? 72 : 38}%)` }\n return (\n <AvatarPrimitive.Root {...(rootProps as Record<string, unknown>)} aria-label={name || undefined} role=\"img\">\n {src ? <AvatarPrimitive.Image {...(part(`image`) as Record<string, string>)} src={url} alt={name} /> : null}\n {/* No picture to wait for: the initials paint with the first frame\n (Radix holds a 0 ms delay one timer tick; Solid paints at once). */}\n <AvatarPrimitive.Fallback {...(part(`fallback`) as Record<string, string>)} delayMs={src ? 300 : undefined} style={tint}>\n {initials(name) || `?`}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n}\n\n/** One thumbnail of the strip (round 6 §3): a button over its picture\n * (through the host's media request); EXP-1556: the muted square shows the\n * Image placeholder glyph until the picture paints over it (none, loading\n * or failed), never the browser's broken-image icon. */\nfunction CarouselThumbnail({ attrs, src, current, label, onPress }: { attrs: Record<string, unknown>; src: string; current: boolean; label: string; onPress: () => void }) {\n const ctx = useSurfaceContext()\n const url = useMediaSrc(ctx.host, src)\n const [broken, setBroken] = useState<string | null>(null)\n return (\n <button type=\"button\" {...(attrs as Record<string, string>)} aria-label={label} aria-current={current ? `true` : undefined} data-current={current ? `true` : undefined} onClick={onPress}>\n <span className=\"xui-carousel-thumb-fallback\" aria-hidden=\"true\">\n <BuiltinIcon slot=\"Image.fallback\" />\n </span>\n {src && url && broken !== url ? <img className=\"xui-carousel-thumb\" src={url} alt=\"\" aria-hidden=\"true\" loading=\"lazy\" decoding=\"async\" draggable={false} onError={() => setBroken(url)} /> : null}\n </button>\n )\n}\n\nexport function CarouselNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const track = useRef<HTMLDivElement>(null)\n const pages = node.children\n const [page, setPage] = useBoundState(node, scope, `page`, num(props.page, 0))\n const scrollTo = (i: number) => {\n const el = track.current\n if (el && el.children[i] && typeof el.scrollTo === `function`) el.scrollTo({ left: (el.children[i] as HTMLElement).offsetLeft, behavior: ctx.reducedMotion ? `auto` : `smooth` })\n }\n const external = num(props.page, 0)\n useEffect(() => scrollTo(external), [external])\n const onScroll = () => {\n const el = track.current\n if (!el || el.clientWidth === 0) return\n const next = Math.round(Math.abs(el.scrollLeft) / el.clientWidth)\n if (next !== page) {\n setPage(next)\n void emit(`change`, { page: next }, { page: next })\n }\n }\n const go = (next: number) => {\n const n = pages.length\n if (n === 0) return\n const target = bool(props.loop) ? ((next % n) + n) % n : Math.max(0, Math.min(n - 1, next))\n setPage(target)\n void emit(`change`, { page: target }, { page: target })\n scrollTo(target)\n }\n const many = pages.length > 1\n // EXP-1495 (round 6 §3): the counter pill and the thumbnail strip, both\n // only with two or more pages.\n const counter = many && bool(props.counter)\n const thumbnails = many && Array.isArray(props.thumbnails) ? (props.thumbnails as unknown[]) : null\n const strip = useRef<HTMLDivElement>(null)\n useEffect(() => {\n // The current thumbnail scrolled into view (the strip only: never the\n // page around it).\n const el = strip.current\n const thumb = el?.children[page] as HTMLElement | undefined\n if (!el || !thumb) return\n const a = el.getBoundingClientRect()\n const b = thumb.getBoundingClientRect()\n const delta = b.left < a.left ? b.left - a.left : b.right > a.right ? b.right - a.right : 0\n if (delta !== 0) el.scrollLeft += delta\n }, [page, thumbnails !== null])\n const trackView = (\n <div ref={track} className=\"xui-carousel-track\" onScroll={onScroll} aria-live=\"polite\">\n {pages.map((child, i) => {\n // Round 2 §7: only the ACTIVE page is placed; the others stay\n // mounted for swiping, hidden from AT, inert, `data-xui-inactive`.\n const active = i === page\n const attrs = part(`page`, active && `selected`) as Record<string, string>\n if (!active) delete attrs[`data-xui-id`]\n return (\n <div key={child.id} {...attrs} role=\"group\" aria-roledescription={ctx.t(`slide`)} aria-label={ctx.t(`pageOf`, { page: i + 1, total: pages.length })} aria-hidden={active ? undefined : true} data-xui-inactive={active ? undefined : ``} {...(active ? {} : INERT)}>\n <NodeView node={child} />\n </div>\n )\n })}\n </div>\n )\n return (\n <div\n {...(rootProps as Record<string, unknown>)}\n role=\"region\"\n aria-roledescription={ctx.t(`carousel`)}\n onKeyDown={(e) => {\n const rtl = ctx.direction === `rtl`\n if (e.key === `ArrowRight`) go(page + (rtl ? -1 : 1))\n else if (e.key === `ArrowLeft`) go(page + (rtl ? 1 : -1))\n }}\n >\n {counter ? (\n <div className=\"xui-carousel-stage\">\n {trackView}\n <span {...(part(`counter`) as Record<string, string>)} aria-hidden=\"true\">\n {ctx.t(`pageCounter`, { page: page + 1, total: pages.length })}\n </span>\n </div>\n ) : (\n trackView\n )}\n {thumbnails ? (\n <div ref={strip} {...(part(`thumbnails`) as Record<string, string>)}>\n {pages.map((child, i) => (\n <CarouselThumbnail key={child.id} attrs={part.at(`thumbnail`, i, i === page && `selected`)} src={typeof thumbnails[i] === `string` ? (thumbnails[i] as string) : ``} current={i === page} label={ctx.t(`pageOf`, { page: i + 1, total: pages.length })} onPress={() => go(i)} />\n ))}\n </div>\n ) : null}\n {many ? (\n <div {...withClass(part(`controls`), `xui-carousel-controls`)}>\n <button type=\"button\" {...withClass(part(`previous`), `xui-carousel-nav`)} aria-label={ctx.t(`previous`)} disabled={!bool(props.loop) && page === 0} onClick={() => go(page - 1)}>\n <BuiltinIcon slot=\"Carousel.previous\" />\n </button>\n {props.indicators !== false ? (\n <div {...(part(`indicator`) as Record<string, string>)} className=\"xui-carousel-dots\" data-xui-part=\"Carousel/indicators\" role=\"tablist\">\n {pages.map((child, i) => (\n <button key={child.id} type=\"button\" {...(part(`indicator`, i === page && `selected`) as Record<string, string>)} data-xui-id={undefined} role=\"tab\" aria-selected={i === page} aria-label={ctx.t(`pageOf`, { page: i + 1, total: pages.length })} onClick={() => go(i)} />\n ))}\n </div>\n ) : null}\n <button type=\"button\" {...withClass(part(`next`), `xui-carousel-nav`)} aria-label={ctx.t(`next`)} disabled={!bool(props.loop) && page === pages.length - 1} onClick={() => go(page + 1)}>\n <BuiltinIcon slot=\"Carousel.next\" />\n </button>\n </div>\n ) : null}\n </div>\n )\n}\n",
|
|
31
31
|
"// VAPP-87 + round 1 + round 3: Tabs, Segmented (was ToggleGroup), Accordion — Radix behaviour (roving\n// tab stop, arrows wrap, Home/End: a11y.json), recipe paint, a bound\n// `value` written through (multiple = comma-joined when it came as a\n// string, an array when it came as one).\n\nimport { Fragment, useRef, useState, type ReactNode } from \"react\"\nimport { useBoundState } from \"./bound\"\nimport { Accordion as AccordionPrimitive, Tabs as TabsPrimitive, ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\nimport { useSurfaceContext } from \"../context\"\nimport { IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { NodeView } from \"../node-view\"\nimport { bool, BuiltinIcon, num, str, useParts, type PartFn, objects } from \"./shared\"\nimport { segmentedBadge } from \"@exponential_app/eui/web\"\n\ninterface Tab {\n label: string\n value: string\n icon?: string\n count?: number\n}\n\nexport function TabsNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const tabs = objects<Tab>(props.tabs)\n const external = str(props.value) || tabs[0]?.value || ``\n const [value, setValue] = useBoundState(node, scope, `value`, external)\n const fill = bool(props.fill)\n // EXP-1259: the close glyph per tab (`closable`; `hover` = only while its\n // tab or itself is hovered or keyboard-focused: the tab LENDS it those\n // states) and the + after the last tab (`addable`).\n const closable = props.closable === `hover` || props.closable === `always`\n const [lent, setLent] = useState<{ index: number; state: `hover` | `focus` } | null>(null)\n const lend = (index: number, state: `hover` | `focus` | null) => setLent((cur) => (state ? { index, state } : cur?.index === index ? null : cur))\n const lending = closable && props.closable === `hover`\n return (\n <TabsPrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n value={value}\n onValueChange={(next) => {\n setValue(next)\n void emit(`change`, { value: next }, { value: next })\n }}\n orientation=\"horizontal\"\n activationMode=\"automatic\"\n dir={ctx.direction}\n >\n <TabsPrimitive.List {...(part(`list`) as Record<string, string>)} data-fill={fill ? `true` : undefined} loop>\n {tabs.map((tab, i) => {\n const selected = tab.value === value\n const trigger = (\n <TabsPrimitive.Trigger\n key={tab.value}\n value={tab.value}\n {...(part.at(`tab`, i, selected && `selected`) as Record<string, string>)}\n onPointerEnter={lending ? () => lend(i, `hover`) : undefined}\n onPointerLeave={lending ? () => lend(i, null) : undefined}\n onFocus={lending ? (e) => (e.currentTarget.matches(`:focus-visible`) ? lend(i, `focus`) : undefined) : undefined}\n onBlur={lending ? () => lend(i, null) : undefined}\n >\n <span className=\"xui-Tabs-tab-body\">\n {tab.icon ? <IconGlyph icons={ctx.host.icons} name={tab.icon} className=\"xui-icon\" width={16} height={16} /> : null}\n <span>{str(tab.label)}</span>\n {tab.count !== undefined ? <span data-count=\"\">{ctx.formatter.number(num(tab.count))}</span> : null}\n </span>\n <span {...(part(`indicator`, selected && `selected`) as Record<string, string>)} aria-hidden=\"true\" />\n </TabsPrimitive.Trigger>\n )\n if (!closable) return trigger\n return (\n <Fragment key={tab.value}>\n {trigger}\n <button\n type=\"button\"\n {...(part.at(`close`, i, lent?.index === i && lent.state) as Record<string, string>)}\n aria-label={ctx.t(`closeTab`, { name: str(tab.label) })}\n onPointerEnter={lending ? () => lend(i, `hover`) : undefined}\n onPointerLeave={lending ? () => lend(i, null) : undefined}\n onClick={() => void emit(`close`, { value: tab.value })}\n >\n <BuiltinIcon slot=\"Tabs.close\" />\n </button>\n </Fragment>\n )\n })}\n {bool(props.addable) ? (\n <button type=\"button\" {...(part(`new`) as Record<string, string>)} aria-label={ctx.t(`newTab`)} onClick={() => void emit(`new`)}>\n <BuiltinIcon slot=\"Tabs.new\" />\n </button>\n ) : null}\n </TabsPrimitive.List>\n {tabs.map((tab, i) => {\n // Only the ACTIVE panel is placed (`<id>.content`); the others are hidden.\n const attrs = part(`content`) as Record<string, string>\n if (tab.value !== value) delete attrs[`data-xui-id`]\n return (\n <TabsPrimitive.Content key={tab.value} value={tab.value} {...attrs}>\n {node.children[i] ? <NodeView node={node.children[i]} /> : null}\n </TabsPrimitive.Content>\n )\n })}\n </TabsPrimitive.Root>\n )\n}\n\ninterface Item {\n label: string\n value: string\n icon?: string\n disabled?: boolean\n /** VAPP-162: a `bar` item's count badge. */\n count?: number\n}\n\nconst joinLike = (raw: unknown, next: string[]): string | string[] => (Array.isArray(raw) ? next : next.join(`,`))\n\n/** Segmented (round 3): ONE row of segments.\n * `segmented` (default, the pill track) / `toggles` (bare) / `outline`\n * (joined) = a Radix ToggleGroup (radiogroup single, toolbar of toggle\n * buttons multiple; roving tab stop, arrows wrap, Home/End). `bar` = the\n * full-width bottom destinations: role navigation, each item a column\n * button (icon above a caption label), the selected one\n * `aria-current=\"page\"`, the same roving keys. Parts: root, item, icon,\n * label (the selected state rides every part of the selected item).\n * VAPP-162 (round-5 contract §3): `orientation: vertical` stacks every\n * variant top to bottom (ArrowUp/ArrowDown move focus); a vertical `bar`\n * is THE navigation rail (72 px items). A `bar` item's `count` paints the\n * `badge` at its icon's top-end corner (`99+` above 99, none at 0) and\n * reads after the label (`Chats, 3`). */\nexport function SegmentedNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<Item>(props.items)\n const variant = str(props.variant, `segmented`)\n const bar = variant === `bar`\n const vertical = props.orientation === `vertical`\n const multiple = !bar && props.type === `multiple`\n const externalRaw = props.value\n const external = multiple ? (Array.isArray(externalRaw) ? externalRaw.map(String) : externalRaw ? String(externalRaw).split(`,`) : []) : str(externalRaw)\n const [value, setBound] = useBoundState<string | string[]>(node, scope, `value`, external)\n const setValue = (next: string | string[]) => setBound(Array.isArray(next) ? (joinLike(externalRaw, next) as string[]) : next)\n const isSelected = (item: Item) => (multiple ? asArray(value).includes(item.value) : value === item.value)\n const content = (item: Item, selected: boolean) => {\n const badge = bar ? segmentedBadge(item.count) : null\n return (\n <>\n {item.icon ? (\n <span {...(part(`icon`, selected && `selected`) as Record<string, string>)} aria-hidden=\"true\">\n <IconGlyph icons={ctx.host.icons} name={item.icon} className=\"xui-icon\" width={bar ? 20 : 16} height={bar ? 20 : 16} />\n {badge ? <span {...(part(`badge`, selected && `selected`) as Record<string, string>)}>{badge}</span> : null}\n </span>\n ) : null}\n {item.label ? <span {...(part(`label`, selected && `selected`) as Record<string, string>)}>{str(item.label)}</span> : null}\n </>\n )\n }\n if (bar) return <SegmentedBar node={node} rootProps={rootProps} vertical={vertical} items={items} value={value as string} part={part} content={content} onPick={(next) => {\n setValue(next)\n void emit(`change`, { value: next }, { value: next })\n }} />\n const body = items.map((item) => {\n const selected = isSelected(item)\n return (\n <ToggleGroupPrimitive.Item key={item.value} value={item.value} disabled={bool(item.disabled)} aria-label={item.label ? undefined : item.value} {...(part(`item`, selected && `selected`, bool(item.disabled) && `disabled`) as Record<string, string>)}>\n {content(item, selected)}\n </ToggleGroupPrimitive.Item>\n )\n })\n if (multiple) {\n return (\n <ToggleGroupPrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n type=\"multiple\"\n value={Array.isArray(value) ? value : asArray(value)}\n loop\n orientation={vertical ? `vertical` : undefined}\n onValueChange={(next: string[]) => {\n setValue(next)\n void emit(`change`, { value: joinLike(externalRaw, next) }, { value: joinLike(externalRaw, next) })\n }}\n dir={ctx.direction}\n >\n {body}\n </ToggleGroupPrimitive.Root>\n )\n }\n return (\n <ToggleGroupPrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n type=\"single\"\n value={value as string}\n loop\n orientation={vertical ? `vertical` : undefined}\n onValueChange={(next: string) => {\n if (!next) return\n setValue(next)\n void emit(`change`, { value: next }, { value: next })\n }}\n dir={ctx.direction}\n >\n {body}\n </ToggleGroupPrimitive.Root>\n )\n}\n\n/** The `bar` variant: a navigation landmark of buttons with ONE roving tab\n * stop (the selected item, else the first enabled one). */\nfunction SegmentedBar({ rootProps, vertical, items, value, part, content, onPick }: { node: NativeProps[`node`]; rootProps: NativeProps[`rootProps`]; vertical: boolean; items: Item[]; value: string; part: PartFn; content: (item: Item, selected: boolean) => ReactNode; onPick: (value: string) => void }) {\n const ctx = useSurfaceContext()\n const refs = useRef<(HTMLButtonElement | null)[]>([])\n const enabled = items.map((item, i) => (bool(item.disabled) ? -1 : i)).filter((i) => i >= 0)\n const selectedIndex = items.findIndex((item) => item.value === value && !bool(item.disabled))\n const [focusIndex, setFocusIndex] = useState<number | null>(null)\n const stop = focusIndex ?? (selectedIndex >= 0 ? selectedIndex : (enabled[0] ?? -1))\n const move = (from: number, key: string) => {\n if (!enabled.length) return\n const at = enabled.indexOf(from)\n const rtl = ctx.direction === `rtl`\n const forward = key === `ArrowDown` || (!vertical && key === (rtl ? `ArrowLeft` : `ArrowRight`))\n const back = key === `ArrowUp` || (!vertical && key === (rtl ? `ArrowRight` : `ArrowLeft`))\n let next: number | null = null\n if (forward) next = enabled[(at + 1) % enabled.length]\n else if (back) next = enabled[(at - 1 + enabled.length) % enabled.length]\n else if (key === `Home`) next = enabled[0]\n else if (key === `End`) next = enabled[enabled.length - 1]\n if (next === null || next === undefined) return false\n setFocusIndex(next)\n refs.current[next]?.focus()\n return true\n }\n return (\n <nav {...(rootProps as Record<string, unknown>)} dir={ctx.direction}>\n {items.map((item, i) => {\n const selected = item.value === value\n const disabled = bool(item.disabled)\n return (\n <button\n key={item.value}\n ref={(el) => void (refs.current[i] = el)}\n type=\"button\"\n {...(part(`item`, selected && `selected`, disabled && `disabled`) as Record<string, string>)}\n disabled={disabled}\n tabIndex={i === stop ? 0 : -1}\n aria-current={selected ? `page` : undefined}\n aria-label={segmentedBadge(item.count) ? `${str(item.label) || item.value}, ${segmentedBadge(item.count)}` : item.label ? undefined : item.value}\n onFocus={() => setFocusIndex(i)}\n onKeyDown={(e) => {\n if (move(i, e.key)) e.preventDefault()\n }}\n onClick={() => onPick(item.value)}\n >\n {content(item, selected)}\n </button>\n )\n })}\n </nav>\n )\n}\n\ninterface AccordionItem {\n title: string\n value: string\n count?: number\n}\n\nexport function AccordionNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<AccordionItem>(props.items)\n const multiple = props.type === `multiple`\n const raw = props.value\n const external = multiple ? (Array.isArray(raw) ? raw.map(String) : raw ? String(raw).split(`,`) : []) : str(raw)\n const [value, setBound] = useBoundState<string | string[]>(node, scope, `value`, external)\n const setValue = (next: string | string[]) => setBound(Array.isArray(next) ? (joinLike(raw, next) as string[]) : next)\n const body = items.map((item, i) => {\n const open = multiple ? asArray(value).includes(item.value) : value === item.value\n return (\n <AccordionPrimitive.Item key={item.value} value={item.value} {...(part.at(`item`, i, open && `open`) as Record<string, string>)}>\n <AccordionPrimitive.Header asChild>\n <div style={{ display: `flex` }}>\n <AccordionPrimitive.Trigger {...(part.at(`trigger`, i, open && `open`) as Record<string, string>)}>\n <span className=\"xui-accordion-title\">\n {str(item.title)}\n {/* Round 2 §7: the count is its own muted part after the title. */}\n {item.count !== undefined ? <span {...(part.at(`count`, i) as Record<string, string>)}>{ctx.formatter.number(num(item.count))}</span> : null}\n </span>\n <BuiltinIcon slot=\"Accordion.trigger\" size={16} />\n </AccordionPrimitive.Trigger>\n </div>\n </AccordionPrimitive.Header>\n <AccordionPrimitive.Content {...(part.at(`content`, i, open && `open`) as Record<string, string>)}>{node.children[i] ? <NodeView node={node.children[i]} /> : null}</AccordionPrimitive.Content>\n </AccordionPrimitive.Item>\n )\n })\n if (multiple) {\n return (\n <AccordionPrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n type=\"multiple\"\n value={asArray(value)}\n dir={ctx.direction}\n onValueChange={(next: string[]) => {\n setValue(next)\n void emit(`change`, { value: joinLike(raw, next) }, { value: joinLike(raw, next) })\n }}\n >\n {body}\n </AccordionPrimitive.Root>\n )\n }\n return (\n <AccordionPrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n type=\"single\"\n collapsible\n dir={ctx.direction}\n value={value as string}\n onValueChange={(next: string) => {\n setValue(next)\n void emit(`change`, { value: next }, { value: next })\n }}\n >\n {body}\n </AccordionPrimitive.Root>\n )\n}\n\nconst asArray = (v: string | string[]): string[] => (Array.isArray(v) ? v : v ? v.split(`,`) : [])\n",
|
|
32
|
-
"// VAPP-87 + round 1: the OVERLAYS — Dialog, Drawer, Popover, Tooltip,\n// Menu (press | contextmenu) on Radix portals, and the Toast. Every portal\n// mounts into the surface's OVERLAY LAYER inside the `xui` container (so a\n// breakpoint still matches inside a Dialog, audit bug C); toasts mount into\n// the TOAST layer above it. The placement contract the core mirrors: side +\n// centre alignment, `OVERLAY_OFFSET` from the anchor, flip when the\n// preferred side lacks room, shift to stay `OVERLAY_PADDING` inside the\n// viewport (`placeOverlay`, fixtures/overlay-geometry.json). Enter/exit\n// animate on the theme's motion tokens (base-css.ts; zero under reduced\n// motion). A trigger slot is wrapped in an inline-flex span so Radix\n// measures the slot's own box and the slot's painter keeps its element.\n\nimport { forwardRef, useCallback, useEffect, useRef, useState, type HTMLAttributes, type PointerEvent as ReactPointerEvent, type ReactNode } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { ContextMenu as ContextPrimitive, Dialog as DialogPrimitive, DropdownMenu as MenuPrimitive, Popover as PopoverPrimitive, Tooltip as TooltipPrimitive } from \"radix-ui\"\nimport { OVERLAY_OFFSET, OVERLAY_PADDING } from \"@exponential_app/eui\"\nimport { useSurfaceContext } from \"../context\"\nimport { isBinding, overlayOpenFocus } from \"@exponential_app/eui/web\"\nimport { absolutePath } from \"@exponential_app/eui/web\"\nimport { IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { CloseOnSubmitContext } from \"../form\"\nimport { useBoundState } from \"./bound\"\nimport { bool, BuiltinIcon, num, str, useParts, type PartFn, objects } from \"./shared\"\nimport { SearchBody, searchMatches } from \"./search\"\n\n/** An overlay's `open`: local mirror, bound path written, `change {open}`. */\nfunction useOpenState(node: NativeProps[`node`], scope: string, external: boolean, emit: NativeProps[`emit`]) {\n const [open, setOpen] = useBoundState(node, scope, `open`, external)\n const change = useCallback(\n (next: boolean) => {\n setOpen(next)\n void emit(`change`, { open: next }, { open: next })\n },\n [setOpen, emit]\n )\n return [open, change] as const\n}\n\n/** The slot wrapper Radix anchors to and clicks through (forwardRef so the\n * popper can measure it; the rest of the props are Radix's). */\nconst Trigger = forwardRef<HTMLSpanElement, HTMLAttributes<HTMLSpanElement> & { children?: ReactNode }>(function Trigger({ children, ...rest }, ref) {\n return (\n <span ref={ref} className=\"xui-trigger\" {...rest}>\n {children}\n </span>\n )\n})\n\n/** Round 2 §7: an overlay is LAYOUT-TRANSPARENT — its frame is its\n * trigger's (the trigger is the flex item: a Link stretches in a stretch\n * row, a Button keeps its control height; the overlay never fills a column\n * or stretches a row on its own); without a trigger it lays out nothing. */\nfunction overlayRootProps(rootProps: Record<string, unknown>, trigger: NativeProps[`slots`][string] | undefined | null, triggerNode?: { component: string } | null): Record<string, unknown> {\n if (!trigger) return { ...rootProps, \"data-xui-overlay-root\": `none` }\n return { ...rootProps, \"data-xui-overlay-root\": triggerNode?.component === `Link` ? `stretch` : `` }\n}\n\nexport function DialogNative(p: NativeProps) {\n return <ModalNative {...p} kind=\"Dialog\" />\n}\nexport function DrawerNative(p: NativeProps) {\n return <ModalNative {...p} kind=\"Drawer\" />\n}\n\n/** Drawer drag-to-dismiss: a drag toward the drawer's edge past 80 px (or a\n * flick) closes it; anything less springs back. */\nfunction useDragToDismiss(side: string, enabled: boolean, onDismiss: () => void, reducedMotion: boolean) {\n const panel = useRef<HTMLDivElement | null>(null)\n const drag = useRef<{ id: number; x: number; y: number; at: number } | null>(null)\n const sign = side === `bottom` || side === `right` ? 1 : -1\n const axis = side === `left` || side === `right` ? `x` : `y`\n const distance = (e: ReactPointerEvent) => {\n const d = drag.current\n if (!d) return 0\n return Math.max(0, ((axis === `x` ? e.clientX - d.x : e.clientY - d.y) * sign))\n }\n const paint = (px: number, animate: boolean) => {\n const el = panel.current\n if (!el) return\n el.style.transition = animate && !reducedMotion ? `transform var(--xui-motion-standard) var(--xui-ease-decelerate)` : `none`\n el.style.transform = px ? `translate${axis === `x` ? `X` : `Y`}(${px * sign}px)` : ``\n }\n const handlers = enabled\n ? {\n onPointerDown: (e: ReactPointerEvent) => {\n if (e.button !== 0) return\n drag.current = { id: e.pointerId, x: e.clientX, y: e.clientY, at: performance.now() }\n ;(e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId)\n },\n onPointerMove: (e: ReactPointerEvent) => {\n if (drag.current?.id === e.pointerId) paint(distance(e), false)\n },\n onPointerUp: (e: ReactPointerEvent) => {\n if (drag.current?.id !== e.pointerId) return\n const px = distance(e)\n const dt = performance.now() - drag.current.at\n drag.current = null\n if (px > 80 || (px > 24 && dt > 0 && px / dt > 0.6)) {\n paint(0, false)\n onDismiss()\n } else paint(0, true)\n },\n onPointerCancel: () => {\n drag.current = null\n paint(0, true)\n },\n }\n : {}\n return { panel, handlers }\n}\n\nfunction ModalNative({ node, props, rootProps, emit, children, slots, scope, kind }: NativeProps & { kind: `Dialog` | `Drawer` }) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [open, setOpen] = useOpenState(node, scope, bool(props.open), emit)\n const dismissible = props.dismissible !== false\n const side = str(props.side, `bottom`)\n const title = str(props.title)\n const description = str(props.description)\n const drag = useDragToDismiss(side, kind === `Drawer` && props.dragToDismiss !== false && dismissible, () => setOpen(false), ctx.reducedMotion)\n const close = useCallback(() => setOpen(false), [setOpen])\n return (\n <DialogPrimitive.Root open={open} onOpenChange={(next) => (next || dismissible ? setOpen(next) : undefined)}>\n <div {...overlayRootProps(rootProps, slots.trigger, node.slots?.trigger)}>\n {slots.trigger ? (\n <DialogPrimitive.Trigger asChild>\n <Trigger>{slots.trigger}</Trigger>\n </DialogPrimitive.Trigger>\n ) : null}\n </div>\n <DialogPrimitive.Portal container={ctx.portal ?? undefined}>\n <DialogPrimitive.Overlay {...(part(`overlay`, open && `open`) as Record<string, string>)} data-xui-overlay-backdrop={kind} />\n <DialogPrimitive.Content\n ref={drag.panel}\n {...(part(`content`, open && `open`) as Record<string, string>)}\n data-side={kind === `Drawer` ? side : undefined}\n data-xui-overlay={kind}\n dir={ctx.direction}\n role={kind === `Dialog` && !dismissible ? `alertdialog` : `dialog`}\n onEscapeKeyDown={dismissible ? undefined : (e) => e.preventDefault()}\n onPointerDownOutside={dismissible ? undefined : (e) => e.preventDefault()}\n onInteractOutside={dismissible ? undefined : (e) => e.preventDefault()}\n onOpenAutoFocus={overlayOpenFocus}\n {...(description ? {} : { \"aria-describedby\": undefined })}\n >\n {kind === `Drawer` && (side === `bottom` || side === `top`) ? <div {...(part(`handle`) as Record<string, string>)} aria-hidden=\"true\" {...drag.handlers} /> : null}\n {title || description ? (\n <div className=\"xui-overlay-head\" {...(kind === `Drawer` ? drag.handlers : {})}>\n {title ? <DialogPrimitive.Title {...(part(`title`) as Record<string, string>)}>{title}</DialogPrimitive.Title> : <DialogPrimitive.Title className=\"xui-sr-only\">{ctx.t(`dialog`)}</DialogPrimitive.Title>}\n {description ? <DialogPrimitive.Description {...(part(`description`) as Record<string, string>)}>{description}</DialogPrimitive.Description> : null}\n </div>\n ) : (\n <DialogPrimitive.Title className=\"xui-sr-only\">{ctx.t(`dialog`)}</DialogPrimitive.Title>\n )}\n {/* Round 4: a valid submit closes THIS overlay when it is the\n nearest one around the form and dismissible (an AlertDialog,\n dismissible false, never auto-closes). */}\n <CloseOnSubmitContext.Provider value={dismissible ? close : null}>\n <div className=\"xui-overlay-body\">{children}</div>\n {slots.footer ? <div {...(part(`footer`) as Record<string, string>)}>{slots.footer}</div> : null}\n </CloseOnSubmitContext.Provider>\n {kind === `Dialog` && dismissible ? (\n <DialogPrimitive.Close {...(part(`close`) as Record<string, string>)} aria-label={ctx.t(`close`)}>\n <BuiltinIcon slot=\"Dialog.close\" />\n </DialogPrimitive.Close>\n ) : null}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nconst HOVER_OPEN_MS = 200\nconst HOVER_CLOSE_MS = 150\n\nexport function PopoverNative({ node, props, rootProps, emit, children, slots, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [open, setOpen] = useOpenState(node, scope, bool(props.open), emit)\n const side = str(props.side, `bottom`) as `top` | `right` | `bottom` | `left`\n // `openOn: hover` (a hover card): opens on pointer hover AND keyboard focus\n // of the trigger, stays while the pointer is over the content; touch\n // (no hover pointer) keeps press.\n const hoverMode = props.openOn === `hover` && ctx.hover\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null)\n const openRef = useRef(open)\n openRef.current = open\n // THIS popover's content (focus moving from the trigger into it keeps it\n // open; another hover card's content on the page does not count).\n const contentRef = useRef<HTMLDivElement | null>(null)\n const schedule = (next: boolean) => {\n if (timer.current) clearTimeout(timer.current)\n timer.current = setTimeout(() => {\n if (openRef.current !== next) setOpen(next)\n }, next ? HOVER_OPEN_MS : HOVER_CLOSE_MS)\n }\n useEffect(() => () => void (timer.current && clearTimeout(timer.current)), [])\n const hoverProps = hoverMode\n ? {\n onPointerEnter: (e: ReactPointerEvent) => e.pointerType !== `touch` && schedule(true),\n onPointerLeave: (e: ReactPointerEvent) => e.pointerType !== `touch` && schedule(false),\n onFocus: () => schedule(true),\n onBlur: (e: React.FocusEvent) => {\n const to = e.relatedTarget as Node | null\n if (!to || !contentRef.current?.contains(to)) schedule(false)\n },\n }\n : {}\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <div {...overlayRootProps(rootProps, slots.trigger, node.slots?.trigger)}>\n {slots.trigger ? (\n <PopoverPrimitive.Trigger asChild>\n <Trigger {...hoverProps}>{slots.trigger}</Trigger>\n </PopoverPrimitive.Trigger>\n ) : (\n <PopoverPrimitive.Anchor asChild>\n <span style={{ display: `inline-flex` }} />\n </PopoverPrimitive.Anchor>\n )}\n </div>\n <PopoverPrimitive.Portal container={ctx.portal ?? undefined}>\n <PopoverPrimitive.Content\n ref={contentRef}\n {...(part(`content`, open && `open`) as Record<string, string>)}\n side={side}\n align=\"center\"\n sideOffset={OVERLAY_OFFSET}\n collisionPadding={OVERLAY_PADDING}\n data-xui-overlay=\"Popover\"\n data-open-on={hoverMode ? `hover` : undefined}\n dir={ctx.direction}\n onOpenAutoFocus={hoverMode ? (e) => e.preventDefault() : undefined}\n onPointerEnter={hoverMode ? () => schedule(true) : undefined}\n onPointerLeave={hoverMode ? () => schedule(false) : undefined}\n >\n {/* The nearest overlay decides: a Form in a Popover closes nothing,\n not even a Dialog around the Popover. */}\n <CloseOnSubmitContext.Provider value={null}>{children}</CloseOnSubmitContext.Provider>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n )\n}\n\n/** Tooltip: shows on hover AND keyboard focus (a11y.json), Escape hides. */\nexport function TooltipNative({ node, props, rootProps, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const side = str(props.side, `top`) as `top` | `right` | `bottom` | `left`\n const content = str(props.content) || str(props.text)\n // The tooltip wraps its children in the ANCHOR (`<id>.anchor`), the frame\n // it shows against; the root is layout-transparent around it.\n return (\n <TooltipPrimitive.Provider delayDuration={300}>\n <TooltipPrimitive.Root>\n <div {...(rootProps as Record<string, unknown>)} data-xui-overlay-root=\"\">\n <TooltipPrimitive.Trigger asChild>\n <div {...(part(`anchor`) as Record<string, string>)} tabIndex={0}>\n {children}\n </div>\n </TooltipPrimitive.Trigger>\n </div>\n <TooltipPrimitive.Portal container={ctx.portal ?? undefined}>\n <TooltipPrimitive.Content {...(part(`content`) as Record<string, string>)} side={side} sideOffset={OVERLAY_OFFSET} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Tooltip\">\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Menu (round 3: ONE native for press and context menus)\n// ---------------------------------------------------------------------------\n\nexport interface MenuItem {\n label?: string\n value?: string\n kind?: `item` | `checkbox` | `separator` | `label` | `submenu`\n icon?: string\n shortcut?: string\n checked?: boolean\n destructive?: boolean\n disabled?: boolean\n separator?: boolean\n items?: MenuItem[]\n /** EXP-1259: the submenu is a search list of its entries. */\n searchable?: boolean\n placeholder?: string\n}\n\n/** EXP-1259: a searchable submenu = the search list (head, the entries that\n * match as menu rows, the highlighted one `selected`, the fade): its field\n * takes the focus when it opens (and when the pointer enters), ↑/↓ move,\n * Enter or Tab pick (the menu closes), ← at the caret's start returns to\n * the parent row. */\nfunction MenuSearch({ item, i, part, emit, close }: { item: MenuItem; i: string; part: PartFn; emit: NativeProps[`emit`]; close: () => void }) {\n const ctx = useSurfaceContext()\n const [query, setQuery] = useState(``)\n const box = useRef<HTMLDivElement | null>(null)\n // The field takes the focus once Radix has focused the opened content.\n useEffect(() => {\n const frame = requestAnimationFrame(() => box.current?.querySelector<HTMLInputElement>(`input`)?.focus({ preventScroll: true }))\n return () => cancelAnimationFrame(frame)\n }, [])\n const rows = objects<MenuItem>(item.items)\n .map((entry, index) => ({ index, entry }))\n .filter(({ entry }) => entry.kind !== `separator` && entry.kind !== `label` && !entry.separator && searchMatches({ label: str(entry.label) }, query))\n .map(({ index, entry }) => ({ index, item: { label: str(entry.label), value: str(entry.value ?? entry.label), icon: entry.icon, disabled: bool(entry.disabled) } }))\n return (\n <div\n ref={box}\n className=\"xui-menu-search\"\n onPointerEnter={(e) => {\n const input = e.currentTarget.querySelector<HTMLInputElement>(`input`)\n if (input && !e.currentTarget.contains(document.activeElement)) input.focus({ preventScroll: true })\n }}\n >\n <SearchBody\n part={part}\n owner=\"Menu\"\n suffix={`.${i}`}\n rows={rows}\n query={query}\n onQuery={setQuery}\n placeholder={str(item.placeholder) || ctx.t(`search`)}\n emptyText={ctx.t(`noResults`)}\n maxRows={8}\n showCount\n autoFocus\n leaveBubbles\n onPick={(picked) => {\n void emit(`select`, { value: picked.value })\n close()\n }}\n rowPart={(_, __, active) => part(`item`, active && `selected`) as Record<string, string>}\n renderRow={(row) => (\n <>\n {row.icon ? <IconGlyph icons={ctx.host.icons} name={row.icon} /> : null}\n <span className=\"xui-menu-label\">{row.label}</span>\n </>\n )}\n />\n </div>\n )\n}\n\ntype MenuNs = typeof MenuPrimitive | typeof ContextPrimitive\n\n/** The entries, shared by both openings. A submenu's `items` may be a\n * binding (`{path}` to rows a host source feeds): the bind pass resolved it\n * already, so it renders like a literal one. */\nexport function MenuItems({ ns, items, rawItems, part, overlay, emit, scope, path, close }: { ns: MenuNs; items: MenuItem[]; rawItems: unknown; part: PartFn; overlay: string; emit: NativeProps[`emit`]; scope: string; path: string; close: () => void }) {\n const ctx = useSurfaceContext()\n const raws = objects<Record<string, unknown>>(rawItems)\n const N = ns as typeof MenuPrimitive\n return (\n <>\n {items.map((item, i) => {\n const kind = item.separator ? `separator` : (item.kind ?? `item`)\n const key = `${path}${i}`\n const icon = item.icon ? <IconGlyph icons={ctx.host.icons} name={item.icon} /> : null\n const shortcut = item.shortcut ? <span {...(part(`shortcut`) as Record<string, string>)}>{item.shortcut}</span> : null\n if (kind === `separator`) return <N.Separator key={key} {...(part(`separator`) as Record<string, string>)} />\n if (kind === `label`) return <N.Label key={key} {...(part(`label`) as Record<string, string>)}>{str(item.label)}</N.Label>\n if (kind === `submenu`) {\n return (\n <N.Sub key={key}>\n <N.SubTrigger {...(part(`item`, bool(item.disabled) && `disabled`) as Record<string, string>)} disabled={bool(item.disabled)}>\n {icon}\n <span className=\"xui-menu-label\">{str(item.label)}</span>\n <span {...(part(`submenuIndicator`) as Record<string, string>)}>\n <BuiltinIcon slot=\"Menu.submenuIndicator\" />\n </span>\n </N.SubTrigger>\n <N.Portal container={ctx.portal ?? undefined}>\n <N.SubContent\n {...(part(`content`) as Record<string, string>)}\n sideOffset={2}\n collisionPadding={OVERLAY_PADDING}\n data-xui-overlay={`${overlay}.sub`}\n data-searchable={item.searchable ? `true` : undefined}\n >\n {item.searchable ? (\n <MenuSearch item={item} i={key} part={part} emit={emit} close={close} />\n ) : (\n <MenuItems ns={ns} items={objects<MenuItem>(item.items)} rawItems={raws[i]?.items} part={part} overlay={overlay} emit={emit} scope={scope} path={`${key}.`} close={close} />\n )}\n </N.SubContent>\n </N.Portal>\n </N.Sub>\n )\n }\n if (kind === `checkbox`) {\n const raw = raws[i]?.checked\n return (\n <N.CheckboxItem\n key={key}\n {...(part(`item`, bool(item.disabled) && `disabled`, bool(item.checked) && `checked`) as Record<string, string>)}\n checked={bool(item.checked)}\n disabled={bool(item.disabled)}\n onCheckedChange={(next) => {\n const checked = next === true\n if (isBinding(raw)) ctx.setData(absolutePath(raw.path, scope), checked)\n void emit(`select`, { value: item.value ?? item.label, checked })\n }}\n onSelect={(e) => e.preventDefault()}\n >\n <span {...(part(`check`) as Record<string, string>)}>\n <N.ItemIndicator>\n <BuiltinIcon slot=\"Menu.check\" />\n </N.ItemIndicator>\n </span>\n <span className=\"xui-menu-label\">{str(item.label)}</span>\n {shortcut}\n </N.CheckboxItem>\n )\n }\n return (\n <N.Item key={key} {...(part(`item`, bool(item.disabled) && `disabled`) as Record<string, string>)} disabled={bool(item.disabled)} data-destructive={item.destructive ? `true` : undefined} onSelect={() => void emit(`select`, { value: item.value ?? item.label })}>\n {icon}\n <span className=\"xui-menu-label\">{str(item.label)}</span>\n {shortcut}\n </N.Item>\n )\n })}\n </>\n )\n}\n\n/** Menu: `openOn: press` (default) = a Radix DropdownMenu, its ONE child the\n * trigger (no child = the default outline Button from label/icon, no\n * chevron), anchored bottom-start; `openOn: contextmenu` = a Radix\n * ContextMenu over the child (right-click / long-press / Shift+F10 / the\n * Menu key), opened at the pointer (the child's corner from the keyboard). */\nexport function MenuNative(p: NativeProps) {\n return p.props.openOn === `contextmenu` ? <ContextMenuOpening {...p} /> : <PressMenuOpening {...p} />\n}\n\nfunction PressMenuOpening({ node, props, rootProps, emit, children, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<MenuItem>(props.items)\n const label = str(props.label)\n const icon = str(props.icon)\n const [open, setOpen] = useState(false)\n const child = node.children[0] ?? null\n return (\n <MenuPrimitive.Root open={open} onOpenChange={setOpen} dir={ctx.direction}>\n <div {...overlayRootProps(rootProps, true, child)}>\n <MenuPrimitive.Trigger asChild>\n {child ? (\n <Trigger>{children}</Trigger>\n ) : (\n // Round 2 §7: the default trigger = an outline button with the\n // icon (when set) and the label (`$string.menu` without one and\n // without an icon), no chevron.\n <button type=\"button\" {...(part(`trigger`, open && `open`) as Record<string, string>)} aria-label={label || ctx.t(`menu`)}>\n {icon ? <IconGlyph icons={ctx.host.icons} name={icon} className=\"xui-icon\" width={16} height={16} /> : null}\n {label || !icon ? <span>{label || ctx.t(`menu`)}</span> : null}\n </button>\n )}\n </MenuPrimitive.Trigger>\n </div>\n <MenuPrimitive.Portal container={ctx.portal ?? undefined}>\n <MenuPrimitive.Content {...(part(`content`, open && `open`) as Record<string, string>)} align=\"start\" sideOffset={OVERLAY_OFFSET} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Menu\" data-open-on=\"press\">\n <MenuItems ns={MenuPrimitive} items={items} rawItems={node.props.items} part={part} overlay=\"Menu\" emit={emit} scope={scope} path=\"\" close={() => setOpen(false)} />\n </MenuPrimitive.Content>\n </MenuPrimitive.Portal>\n </MenuPrimitive.Root>\n )\n}\n\n/** A context menu is uncontrolled (Radix): close it the way Escape does. */\nfunction closeContextMenu() {\n document.dispatchEvent(new KeyboardEvent(`keydown`, { key: `Escape`, bubbles: true }))\n}\n\nfunction ContextMenuOpening({ node, props, rootProps, emit, children, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<MenuItem>(props.items)\n const [open, setOpen] = useState(false)\n return (\n <ContextPrimitive.Root onOpenChange={setOpen} dir={ctx.direction}>\n <ContextPrimitive.Trigger asChild>\n <div\n {...(rootProps as Record<string, unknown>)}\n data-state={open ? `open` : `closed`}\n onKeyDown={(e) => {\n if ((e.key === `F10` && e.shiftKey) || e.key === `ContextMenu`) {\n e.preventDefault()\n const r = (e.currentTarget as HTMLElement).getBoundingClientRect()\n e.currentTarget.dispatchEvent(new MouseEvent(`contextmenu`, { bubbles: true, cancelable: true, clientX: r.left + 8, clientY: r.top + 8 }))\n }\n }}\n >\n {children}\n </div>\n </ContextPrimitive.Trigger>\n <ContextPrimitive.Portal container={ctx.portal ?? undefined}>\n <ContextPrimitive.Content {...(part(`content`, open && `open`) as Record<string, string>)} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Menu\" data-open-on=\"contextmenu\">\n <MenuItems ns={ContextPrimitive} items={items} rawItems={node.props.items} part={part} overlay=\"Menu\" emit={emit} scope={scope} path=\"\" close={closeContextMenu} />\n </ContextPrimitive.Content>\n </ContextPrimitive.Portal>\n </ContextPrimitive.Root>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Toast\n// ---------------------------------------------------------------------------\n\n/** Toast (contract §3): in the TOAST layer, newest nearest the edge, at most\n * 3 visible (base CSS). The renderer runs `duration` (0 = sticky), PAUSED\n * while hovered or focused, then writes `open: false` and fires `dismiss`\n * + `change`. `error` is assertive, the rest polite; never takes focus. */\nexport function ToastNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [open, setOpenState] = useBoundState(node, scope, `open`, props.open === undefined ? true : bool(props.open))\n const [leaving, setLeaving] = useState(false)\n const [paused, setPaused] = useState(false)\n const duration = props.duration === undefined ? 5000 : Math.max(0, num(props.duration, 5000))\n const type = str(props.type, `info`)\n const remaining = useRef(duration)\n const startedAt = useRef(0)\n const close = useCallback(() => {\n setOpenState(false)\n void emit(`dismiss`, undefined, { open: false })\n void emit(`change`, { open: false }, { open: false })\n }, [setOpenState, emit])\n // Exit: keep the element for the motion duration with data-state=closed.\n const [shown, setShown] = useState(open)\n useEffect(() => {\n if (open) {\n setShown(true)\n setLeaving(false)\n remaining.current = duration\n return\n }\n if (!shown) return\n setLeaving(true)\n const ms = ctx.reducedMotion ? 0 : (ctx.theme.tokens.motion?.standard ?? 180)\n const t = setTimeout(() => {\n setShown(false)\n setLeaving(false)\n }, ms)\n return () => clearTimeout(t)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n useEffect(() => {\n if (!open || duration === 0 || paused) return\n startedAt.current = Date.now()\n const t = setTimeout(close, remaining.current)\n return () => {\n clearTimeout(t)\n remaining.current = Math.max(0, remaining.current - (Date.now() - startedAt.current))\n }\n }, [open, duration, paused, close])\n if (!shown || !ctx.toastLayer) return null\n const title = str(props.title)\n const description = str(props.description)\n const actionLabel = str(props.actionLabel)\n const assertive = type === `error`\n return createPortal(\n <div\n {...(rootProps as Record<string, unknown>)}\n role={assertive ? `alert` : `status`}\n aria-live={assertive ? `assertive` : `polite`}\n aria-atomic=\"true\"\n data-state={leaving ? `closed` : `open`}\n data-xui-overlay=\"Toast\"\n onPointerEnter={() => setPaused(true)}\n onPointerLeave={() => setPaused(false)}\n onFocus={() => setPaused(true)}\n onBlur={() => setPaused(false)}\n onKeyDown={(e) => {\n if (e.key === `Escape` && props.dismissible !== false) {\n e.stopPropagation()\n close()\n }\n }}\n >\n <span {...(part(`icon`) as Record<string, string>)}>\n <BuiltinIcon slot={`Toast.icon.${type}`} />\n </span>\n <div className=\"xui-toast-text\">\n <span {...(part(`title`) as Record<string, string>)}>{title}</span>\n {description ? <span {...(part(`description`) as Record<string, string>)}>{description}</span> : null}\n </div>\n {actionLabel ? (\n <button type=\"button\" {...(part(`action`) as Record<string, string>)} onClick={() => void emit(`action`)}>\n {actionLabel}\n </button>\n ) : null}\n {props.dismissible !== false ? (\n <button type=\"button\" {...(part(`close`) as Record<string, string>)} aria-label={ctx.t(`dismiss`)} onClick={close}>\n <BuiltinIcon slot=\"Toast.close\" />\n </button>\n ) : null}\n </div>,\n ctx.toastLayer\n )\n}\n",
|
|
32
|
+
"// VAPP-87 + round 1: the OVERLAYS — Dialog, Drawer, Popover, Tooltip,\n// Menu (press | contextmenu) on Radix portals, and the Toast. Every portal\n// mounts into the surface's OVERLAY LAYER inside the `xui` container (so a\n// breakpoint still matches inside a Dialog, audit bug C); toasts mount into\n// the TOAST layer above it. The placement contract the core mirrors: side +\n// centre alignment, `OVERLAY_OFFSET` from the anchor, flip when the\n// preferred side lacks room, shift to stay `OVERLAY_PADDING` inside the\n// viewport (`placeOverlay`, fixtures/overlay-geometry.json). Enter/exit\n// animate on the theme's motion tokens (base-css.ts; zero under reduced\n// motion). A trigger slot is wrapped in an inline-flex span so Radix\n// measures the slot's own box and the slot's painter keeps its element.\n\nimport { Fragment, forwardRef, type ComponentType, useCallback, useEffect, useRef, useState, type HTMLAttributes, type PointerEvent as ReactPointerEvent, type ReactNode } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { ContextMenu as ContextPrimitive, Dialog as DialogPrimitive, DropdownMenu as MenuPrimitive, Popover as PopoverPrimitive, Tooltip as TooltipPrimitive } from \"radix-ui\"\nimport { OVERLAY_OFFSET, OVERLAY_PADDING } from \"@exponential_app/eui\"\nimport { useSurfaceContext } from \"../context\"\nimport { isBinding, overlayOpenFocus } from \"@exponential_app/eui/web\"\nimport { absolutePath } from \"@exponential_app/eui/web\"\nimport { IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { CloseOnSubmitContext } from \"../form\"\nimport { useBoundState } from \"./bound\"\nimport { bool, BuiltinIcon, num, str, useParts, type PartFn, objects } from \"./shared\"\nimport { SearchBody, searchMatches } from \"./search\"\n\n/** A Radix Portal into the overlay layer, or (EXP-1673, `inlineOverlays`)\n * no portal: the content paints in place. */\nfunction OverlayPortal({ as: Portal, children }: { as: ComponentType<{ container?: HTMLElement; children?: ReactNode }>; children: ReactNode }) {\n const ctx = useSurfaceContext()\n if (ctx.inlineOverlays) return <Fragment>{children}</Fragment>\n return <Portal container={ctx.portal ?? undefined}>{children}</Portal>\n}\n\n/** An overlay's `open`: local mirror, bound path written, `change {open}`. */\nfunction useOpenState(node: NativeProps[`node`], scope: string, external: boolean, emit: NativeProps[`emit`]) {\n const [open, setOpen] = useBoundState(node, scope, `open`, external)\n const change = useCallback(\n (next: boolean) => {\n setOpen(next)\n void emit(`change`, { open: next }, { open: next })\n },\n [setOpen, emit]\n )\n return [open, change] as const\n}\n\n/** The slot wrapper Radix anchors to and clicks through (forwardRef so the\n * popper can measure it; the rest of the props are Radix's). */\nconst Trigger = forwardRef<HTMLSpanElement, HTMLAttributes<HTMLSpanElement> & { children?: ReactNode }>(function Trigger({ children, ...rest }, ref) {\n return (\n <span ref={ref} className=\"xui-trigger\" {...rest}>\n {children}\n </span>\n )\n})\n\n/** Round 2 §7: an overlay is LAYOUT-TRANSPARENT — its frame is its\n * trigger's (the trigger is the flex item: a Link stretches in a stretch\n * row, a Button keeps its control height; the overlay never fills a column\n * or stretches a row on its own); without a trigger it lays out nothing. */\nfunction overlayRootProps(rootProps: Record<string, unknown>, trigger: NativeProps[`slots`][string] | undefined | null, triggerNode?: { component: string } | null): Record<string, unknown> {\n if (!trigger) return { ...rootProps, \"data-xui-overlay-root\": `none` }\n return { ...rootProps, \"data-xui-overlay-root\": triggerNode?.component === `Link` ? `stretch` : `` }\n}\n\nexport function DialogNative(p: NativeProps) {\n return <ModalNative {...p} kind=\"Dialog\" />\n}\nexport function DrawerNative(p: NativeProps) {\n return <ModalNative {...p} kind=\"Drawer\" />\n}\n\n/** Drawer drag-to-dismiss: a drag toward the drawer's edge past 80 px (or a\n * flick) closes it; anything less springs back. */\nfunction useDragToDismiss(side: string, enabled: boolean, onDismiss: () => void, reducedMotion: boolean) {\n const panel = useRef<HTMLDivElement | null>(null)\n const drag = useRef<{ id: number; x: number; y: number; at: number } | null>(null)\n const sign = side === `bottom` || side === `right` ? 1 : -1\n const axis = side === `left` || side === `right` ? `x` : `y`\n const distance = (e: ReactPointerEvent) => {\n const d = drag.current\n if (!d) return 0\n return Math.max(0, ((axis === `x` ? e.clientX - d.x : e.clientY - d.y) * sign))\n }\n const paint = (px: number, animate: boolean) => {\n const el = panel.current\n if (!el) return\n el.style.transition = animate && !reducedMotion ? `transform var(--xui-motion-standard) var(--xui-ease-decelerate)` : `none`\n el.style.transform = px ? `translate${axis === `x` ? `X` : `Y`}(${px * sign}px)` : ``\n }\n const handlers = enabled\n ? {\n onPointerDown: (e: ReactPointerEvent) => {\n if (e.button !== 0) return\n drag.current = { id: e.pointerId, x: e.clientX, y: e.clientY, at: performance.now() }\n ;(e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId)\n },\n onPointerMove: (e: ReactPointerEvent) => {\n if (drag.current?.id === e.pointerId) paint(distance(e), false)\n },\n onPointerUp: (e: ReactPointerEvent) => {\n if (drag.current?.id !== e.pointerId) return\n const px = distance(e)\n const dt = performance.now() - drag.current.at\n drag.current = null\n if (px > 80 || (px > 24 && dt > 0 && px / dt > 0.6)) {\n paint(0, false)\n onDismiss()\n } else paint(0, true)\n },\n onPointerCancel: () => {\n drag.current = null\n paint(0, true)\n },\n }\n : {}\n return { panel, handlers }\n}\n\nfunction ModalNative({ node, props, rootProps, emit, children, slots, scope, kind }: NativeProps & { kind: `Dialog` | `Drawer` }) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [open, setOpen] = useOpenState(node, scope, bool(props.open), emit)\n const dismissible = props.dismissible !== false\n const side = str(props.side, `bottom`)\n const title = str(props.title)\n const description = str(props.description)\n const drag = useDragToDismiss(side, kind === `Drawer` && props.dragToDismiss !== false && dismissible, () => setOpen(false), ctx.reducedMotion)\n const close = useCallback(() => setOpen(false), [setOpen])\n return (\n <DialogPrimitive.Root open={open} onOpenChange={(next) => (next || dismissible ? setOpen(next) : undefined)}>\n <div {...overlayRootProps(rootProps, slots.trigger, node.slots?.trigger)}>\n {slots.trigger ? (\n <DialogPrimitive.Trigger asChild>\n <Trigger>{slots.trigger}</Trigger>\n </DialogPrimitive.Trigger>\n ) : null}\n </div>\n <OverlayPortal as={DialogPrimitive.Portal}>\n <DialogPrimitive.Overlay {...(part(`overlay`, open && `open`) as Record<string, string>)} data-xui-overlay-backdrop={kind} />\n <DialogPrimitive.Content\n ref={drag.panel}\n {...(part(`content`, open && `open`) as Record<string, string>)}\n data-side={kind === `Drawer` ? side : undefined}\n data-xui-overlay={kind}\n dir={ctx.direction}\n role={kind === `Dialog` && !dismissible ? `alertdialog` : `dialog`}\n onEscapeKeyDown={dismissible ? undefined : (e) => e.preventDefault()}\n onPointerDownOutside={dismissible ? undefined : (e) => e.preventDefault()}\n onInteractOutside={dismissible ? undefined : (e) => e.preventDefault()}\n onOpenAutoFocus={overlayOpenFocus}\n {...(description ? {} : { \"aria-describedby\": undefined })}\n >\n {kind === `Drawer` && (side === `bottom` || side === `top`) ? <div {...(part(`handle`) as Record<string, string>)} aria-hidden=\"true\" {...drag.handlers} /> : null}\n {title || description ? (\n <div className=\"xui-overlay-head\" {...(kind === `Drawer` ? drag.handlers : {})}>\n {title ? <DialogPrimitive.Title {...(part(`title`) as Record<string, string>)}>{title}</DialogPrimitive.Title> : <DialogPrimitive.Title className=\"xui-sr-only\">{ctx.t(`dialog`)}</DialogPrimitive.Title>}\n {description ? <DialogPrimitive.Description {...(part(`description`) as Record<string, string>)}>{description}</DialogPrimitive.Description> : null}\n </div>\n ) : (\n <DialogPrimitive.Title className=\"xui-sr-only\">{ctx.t(`dialog`)}</DialogPrimitive.Title>\n )}\n {/* Round 4: a valid submit closes THIS overlay when it is the\n nearest one around the form and dismissible (an AlertDialog,\n dismissible false, never auto-closes). */}\n <CloseOnSubmitContext.Provider value={dismissible ? close : null}>\n <div className=\"xui-overlay-body\">{children}</div>\n {slots.footer ? <div {...(part(`footer`) as Record<string, string>)}>{slots.footer}</div> : null}\n </CloseOnSubmitContext.Provider>\n {kind === `Dialog` && dismissible ? (\n <DialogPrimitive.Close {...(part(`close`) as Record<string, string>)} aria-label={ctx.t(`close`)}>\n <BuiltinIcon slot=\"Dialog.close\" />\n </DialogPrimitive.Close>\n ) : null}\n </DialogPrimitive.Content>\n </OverlayPortal>\n </DialogPrimitive.Root>\n )\n}\n\nconst HOVER_OPEN_MS = 200\nconst HOVER_CLOSE_MS = 150\n\nexport function PopoverNative({ node, props, rootProps, emit, children, slots, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [open, setOpen] = useOpenState(node, scope, bool(props.open), emit)\n const side = str(props.side, `bottom`) as `top` | `right` | `bottom` | `left`\n // `openOn: hover` (a hover card): opens on pointer hover AND keyboard focus\n // of the trigger, stays while the pointer is over the content; touch\n // (no hover pointer) keeps press.\n const hoverMode = props.openOn === `hover` && ctx.hover\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null)\n const openRef = useRef(open)\n openRef.current = open\n // THIS popover's content (focus moving from the trigger into it keeps it\n // open; another hover card's content on the page does not count).\n const contentRef = useRef<HTMLDivElement | null>(null)\n const schedule = (next: boolean) => {\n if (timer.current) clearTimeout(timer.current)\n timer.current = setTimeout(() => {\n if (openRef.current !== next) setOpen(next)\n }, next ? HOVER_OPEN_MS : HOVER_CLOSE_MS)\n }\n useEffect(() => () => void (timer.current && clearTimeout(timer.current)), [])\n const hoverProps = hoverMode\n ? {\n onPointerEnter: (e: ReactPointerEvent) => e.pointerType !== `touch` && schedule(true),\n onPointerLeave: (e: ReactPointerEvent) => e.pointerType !== `touch` && schedule(false),\n onFocus: () => schedule(true),\n onBlur: (e: React.FocusEvent) => {\n const to = e.relatedTarget as Node | null\n if (!to || !contentRef.current?.contains(to)) schedule(false)\n },\n }\n : {}\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <div {...overlayRootProps(rootProps, slots.trigger, node.slots?.trigger)}>\n {slots.trigger ? (\n <PopoverPrimitive.Trigger asChild>\n <Trigger {...hoverProps}>{slots.trigger}</Trigger>\n </PopoverPrimitive.Trigger>\n ) : (\n <PopoverPrimitive.Anchor asChild>\n <span style={{ display: `inline-flex` }} />\n </PopoverPrimitive.Anchor>\n )}\n </div>\n <OverlayPortal as={PopoverPrimitive.Portal}>\n <PopoverPrimitive.Content\n ref={contentRef}\n {...(part(`content`, open && `open`) as Record<string, string>)}\n side={side}\n align=\"center\"\n sideOffset={OVERLAY_OFFSET}\n collisionPadding={OVERLAY_PADDING}\n data-xui-overlay=\"Popover\"\n data-open-on={hoverMode ? `hover` : undefined}\n dir={ctx.direction}\n onOpenAutoFocus={hoverMode ? (e) => e.preventDefault() : undefined}\n onPointerEnter={hoverMode ? () => schedule(true) : undefined}\n onPointerLeave={hoverMode ? () => schedule(false) : undefined}\n >\n {/* The nearest overlay decides: a Form in a Popover closes nothing,\n not even a Dialog around the Popover. */}\n <CloseOnSubmitContext.Provider value={null}>{children}</CloseOnSubmitContext.Provider>\n </PopoverPrimitive.Content>\n </OverlayPortal>\n </PopoverPrimitive.Root>\n )\n}\n\n/** Tooltip: shows on hover AND keyboard focus (a11y.json), Escape hides. */\nexport function TooltipNative({ node, props, rootProps, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const side = str(props.side, `top`) as `top` | `right` | `bottom` | `left`\n const content = str(props.content) || str(props.text)\n // The tooltip wraps its children in the ANCHOR (`<id>.anchor`), the frame\n // it shows against; the root is layout-transparent around it.\n return (\n <TooltipPrimitive.Provider delayDuration={300}>\n <TooltipPrimitive.Root open={ctx.inlineOverlays || undefined}>\n <div {...(rootProps as Record<string, unknown>)} data-xui-overlay-root=\"\">\n <TooltipPrimitive.Trigger asChild>\n <div {...(part(`anchor`) as Record<string, string>)} tabIndex={0}>\n {children}\n </div>\n </TooltipPrimitive.Trigger>\n </div>\n <OverlayPortal as={TooltipPrimitive.Portal}>\n <TooltipPrimitive.Content {...(part(`content`) as Record<string, string>)} side={side} sideOffset={OVERLAY_OFFSET} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Tooltip\">\n {content}\n </TooltipPrimitive.Content>\n </OverlayPortal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Menu (round 3: ONE native for press and context menus)\n// ---------------------------------------------------------------------------\n\nexport interface MenuItem {\n label?: string\n value?: string\n kind?: `item` | `checkbox` | `separator` | `label` | `submenu`\n icon?: string\n shortcut?: string\n checked?: boolean\n destructive?: boolean\n disabled?: boolean\n separator?: boolean\n items?: MenuItem[]\n /** EXP-1259: the submenu is a search list of its entries. */\n searchable?: boolean\n placeholder?: string\n}\n\n/** EXP-1259: a searchable submenu = the search list (head, the entries that\n * match as menu rows, the highlighted one `selected`, the fade): its field\n * takes the focus when it opens (and when the pointer enters), ↑/↓ move,\n * Enter or Tab pick (the menu closes), ← at the caret's start returns to\n * the parent row. */\nfunction MenuSearch({ item, i, part, emit, close }: { item: MenuItem; i: string; part: PartFn; emit: NativeProps[`emit`]; close: () => void }) {\n const ctx = useSurfaceContext()\n const [query, setQuery] = useState(``)\n const box = useRef<HTMLDivElement | null>(null)\n // The field takes the focus once Radix has focused the opened content.\n useEffect(() => {\n const frame = requestAnimationFrame(() => box.current?.querySelector<HTMLInputElement>(`input`)?.focus({ preventScroll: true }))\n return () => cancelAnimationFrame(frame)\n }, [])\n const rows = objects<MenuItem>(item.items)\n .map((entry, index) => ({ index, entry }))\n .filter(({ entry }) => entry.kind !== `separator` && entry.kind !== `label` && !entry.separator && searchMatches({ label: str(entry.label) }, query))\n .map(({ index, entry }) => ({ index, item: { label: str(entry.label), value: str(entry.value ?? entry.label), icon: entry.icon, disabled: bool(entry.disabled) } }))\n return (\n <div\n ref={box}\n className=\"xui-menu-search\"\n onPointerEnter={(e) => {\n const input = e.currentTarget.querySelector<HTMLInputElement>(`input`)\n if (input && !e.currentTarget.contains(document.activeElement)) input.focus({ preventScroll: true })\n }}\n >\n <SearchBody\n part={part}\n owner=\"Menu\"\n suffix={`.${i}`}\n rows={rows}\n query={query}\n onQuery={setQuery}\n placeholder={str(item.placeholder) || ctx.t(`search`)}\n emptyText={ctx.t(`noResults`)}\n maxRows={8}\n showCount\n autoFocus\n leaveBubbles\n onPick={(picked) => {\n void emit(`select`, { value: picked.value })\n close()\n }}\n rowPart={(_, __, active) => part(`item`, active && `selected`) as Record<string, string>}\n renderRow={(row) => (\n <>\n {row.icon ? <IconGlyph icons={ctx.host.icons} name={row.icon} /> : null}\n <span className=\"xui-menu-label\">{row.label}</span>\n </>\n )}\n />\n </div>\n )\n}\n\ntype MenuNs = typeof MenuPrimitive | typeof ContextPrimitive\n\n/** The entries, shared by both openings. A submenu's `items` may be a\n * binding (`{path}` to rows a host source feeds): the bind pass resolved it\n * already, so it renders like a literal one. */\nexport function MenuItems({ ns, items, rawItems, part, overlay, emit, scope, path, close }: { ns: MenuNs; items: MenuItem[]; rawItems: unknown; part: PartFn; overlay: string; emit: NativeProps[`emit`]; scope: string; path: string; close: () => void }) {\n const ctx = useSurfaceContext()\n const raws = objects<Record<string, unknown>>(rawItems)\n const N = ns as typeof MenuPrimitive\n return (\n <>\n {items.map((item, i) => {\n const kind = item.separator ? `separator` : (item.kind ?? `item`)\n const key = `${path}${i}`\n const icon = item.icon ? <IconGlyph icons={ctx.host.icons} name={item.icon} /> : null\n const shortcut = item.shortcut ? <span {...(part(`shortcut`) as Record<string, string>)}>{item.shortcut}</span> : null\n if (kind === `separator`) return <N.Separator key={key} {...(part(`separator`) as Record<string, string>)} />\n if (kind === `label`) return <N.Label key={key} {...(part(`label`) as Record<string, string>)}>{str(item.label)}</N.Label>\n if (kind === `submenu`) {\n return (\n <N.Sub key={key}>\n <N.SubTrigger {...(part(`item`, bool(item.disabled) && `disabled`) as Record<string, string>)} disabled={bool(item.disabled)}>\n {icon}\n <span className=\"xui-menu-label\">{str(item.label)}</span>\n <span {...(part(`submenuIndicator`) as Record<string, string>)}>\n <BuiltinIcon slot=\"Menu.submenuIndicator\" />\n </span>\n </N.SubTrigger>\n <OverlayPortal as={N.Portal}>\n <N.SubContent\n {...(part(`content`) as Record<string, string>)}\n sideOffset={2}\n collisionPadding={OVERLAY_PADDING}\n data-xui-overlay={`${overlay}.sub`}\n data-searchable={item.searchable ? `true` : undefined}\n >\n {item.searchable ? (\n <MenuSearch item={item} i={key} part={part} emit={emit} close={close} />\n ) : (\n <MenuItems ns={ns} items={objects<MenuItem>(item.items)} rawItems={raws[i]?.items} part={part} overlay={overlay} emit={emit} scope={scope} path={`${key}.`} close={close} />\n )}\n </N.SubContent>\n </OverlayPortal>\n </N.Sub>\n )\n }\n if (kind === `checkbox`) {\n const raw = raws[i]?.checked\n return (\n <N.CheckboxItem\n key={key}\n {...(part(`item`, bool(item.disabled) && `disabled`, bool(item.checked) && `checked`) as Record<string, string>)}\n checked={bool(item.checked)}\n disabled={bool(item.disabled)}\n onCheckedChange={(next) => {\n const checked = next === true\n if (isBinding(raw)) ctx.setData(absolutePath(raw.path, scope), checked)\n void emit(`select`, { value: item.value ?? item.label, checked })\n }}\n onSelect={(e) => e.preventDefault()}\n >\n <span {...(part(`check`) as Record<string, string>)}>\n <N.ItemIndicator>\n <BuiltinIcon slot=\"Menu.check\" />\n </N.ItemIndicator>\n </span>\n <span className=\"xui-menu-label\">{str(item.label)}</span>\n {shortcut}\n </N.CheckboxItem>\n )\n }\n return (\n <N.Item key={key} {...(part(`item`, bool(item.disabled) && `disabled`) as Record<string, string>)} disabled={bool(item.disabled)} data-destructive={item.destructive ? `true` : undefined} onSelect={() => void emit(`select`, { value: item.value ?? item.label })}>\n {icon}\n <span className=\"xui-menu-label\">{str(item.label)}</span>\n {shortcut}\n </N.Item>\n )\n })}\n </>\n )\n}\n\n/** Menu: `openOn: press` (default) = a Radix DropdownMenu, its ONE child the\n * trigger (no child = the default outline Button from label/icon, no\n * chevron), anchored bottom-start; `openOn: contextmenu` = a Radix\n * ContextMenu over the child (right-click / long-press / Shift+F10 / the\n * Menu key), opened at the pointer (the child's corner from the keyboard). */\nexport function MenuNative(p: NativeProps) {\n return p.props.openOn === `contextmenu` ? <ContextMenuOpening {...p} /> : <PressMenuOpening {...p} />\n}\n\nfunction PressMenuOpening({ node, props, rootProps, emit, children, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<MenuItem>(props.items)\n const label = str(props.label)\n const icon = str(props.icon)\n const [open, setOpen] = useState(ctx.inlineOverlays)\n const child = node.children[0] ?? null\n return (\n <MenuPrimitive.Root open={open} onOpenChange={setOpen} dir={ctx.direction}>\n <div {...overlayRootProps(rootProps, true, child)}>\n <MenuPrimitive.Trigger asChild>\n {child ? (\n <Trigger>{children}</Trigger>\n ) : (\n // Round 2 §7: the default trigger = an outline button with the\n // icon (when set) and the label (`$string.menu` without one and\n // without an icon), no chevron.\n <button type=\"button\" {...(part(`trigger`, open && `open`) as Record<string, string>)} aria-label={label || ctx.t(`menu`)}>\n {icon ? <IconGlyph icons={ctx.host.icons} name={icon} className=\"xui-icon\" width={16} height={16} /> : null}\n {label || !icon ? <span>{label || ctx.t(`menu`)}</span> : null}\n </button>\n )}\n </MenuPrimitive.Trigger>\n </div>\n <OverlayPortal as={MenuPrimitive.Portal}>\n <MenuPrimitive.Content {...(part(`content`, open && `open`) as Record<string, string>)} align=\"start\" sideOffset={OVERLAY_OFFSET} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Menu\" data-open-on=\"press\">\n <MenuItems ns={MenuPrimitive} items={items} rawItems={node.props.items} part={part} overlay=\"Menu\" emit={emit} scope={scope} path=\"\" close={() => setOpen(false)} />\n </MenuPrimitive.Content>\n </OverlayPortal>\n </MenuPrimitive.Root>\n )\n}\n\n/** A context menu is uncontrolled (Radix): close it the way Escape does. */\nfunction closeContextMenu() {\n document.dispatchEvent(new KeyboardEvent(`keydown`, { key: `Escape`, bubbles: true }))\n}\n\nfunction ContextMenuOpening({ node, props, rootProps, emit, children, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<MenuItem>(props.items)\n const [open, setOpen] = useState(false)\n return (\n <ContextPrimitive.Root onOpenChange={setOpen} dir={ctx.direction}>\n <ContextPrimitive.Trigger asChild>\n <div\n {...(rootProps as Record<string, unknown>)}\n data-state={open ? `open` : `closed`}\n onKeyDown={(e) => {\n if ((e.key === `F10` && e.shiftKey) || e.key === `ContextMenu`) {\n e.preventDefault()\n const r = (e.currentTarget as HTMLElement).getBoundingClientRect()\n e.currentTarget.dispatchEvent(new MouseEvent(`contextmenu`, { bubbles: true, cancelable: true, clientX: r.left + 8, clientY: r.top + 8 }))\n }\n }}\n >\n {children}\n </div>\n </ContextPrimitive.Trigger>\n <OverlayPortal as={ContextPrimitive.Portal}>\n <ContextPrimitive.Content {...(part(`content`, open && `open`) as Record<string, string>)} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Menu\" data-open-on=\"contextmenu\">\n <MenuItems ns={ContextPrimitive} items={items} rawItems={node.props.items} part={part} overlay=\"Menu\" emit={emit} scope={scope} path=\"\" close={closeContextMenu} />\n </ContextPrimitive.Content>\n </OverlayPortal>\n </ContextPrimitive.Root>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Toast\n// ---------------------------------------------------------------------------\n\n/** Toast (contract §3): in the TOAST layer, newest nearest the edge, at most\n * 3 visible (base CSS). The renderer runs `duration` (0 = sticky), PAUSED\n * while hovered or focused, then writes `open: false` and fires `dismiss`\n * + `change`. `error` is assertive, the rest polite; never takes focus. */\nexport function ToastNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [open, setOpenState] = useBoundState(node, scope, `open`, props.open === undefined ? true : bool(props.open))\n const [leaving, setLeaving] = useState(false)\n const [paused, setPaused] = useState(false)\n const duration = props.duration === undefined ? 5000 : Math.max(0, num(props.duration, 5000))\n const type = str(props.type, `info`)\n const remaining = useRef(duration)\n const startedAt = useRef(0)\n const close = useCallback(() => {\n setOpenState(false)\n void emit(`dismiss`, undefined, { open: false })\n void emit(`change`, { open: false }, { open: false })\n }, [setOpenState, emit])\n // Exit: keep the element for the motion duration with data-state=closed.\n const [shown, setShown] = useState(open)\n useEffect(() => {\n if (open) {\n setShown(true)\n setLeaving(false)\n remaining.current = duration\n return\n }\n if (!shown) return\n setLeaving(true)\n const ms = ctx.reducedMotion ? 0 : (ctx.theme.tokens.motion?.standard ?? 180)\n const t = setTimeout(() => {\n setShown(false)\n setLeaving(false)\n }, ms)\n return () => clearTimeout(t)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n useEffect(() => {\n if (!open || duration === 0 || paused || ctx.inlineOverlays) return\n startedAt.current = Date.now()\n const t = setTimeout(close, remaining.current)\n return () => {\n clearTimeout(t)\n remaining.current = Math.max(0, remaining.current - (Date.now() - startedAt.current))\n }\n }, [open, duration, paused, close])\n if (!shown || !(ctx.toastLayer || ctx.inlineOverlays)) return null\n const title = str(props.title)\n const description = str(props.description)\n const actionLabel = str(props.actionLabel)\n const assertive = type === `error`\n const toast = (\n <div\n {...(rootProps as Record<string, unknown>)}\n role={assertive ? `alert` : `status`}\n aria-live={assertive ? `assertive` : `polite`}\n aria-atomic=\"true\"\n data-state={leaving ? `closed` : `open`}\n data-xui-overlay=\"Toast\"\n onPointerEnter={() => setPaused(true)}\n onPointerLeave={() => setPaused(false)}\n onFocus={() => setPaused(true)}\n onBlur={() => setPaused(false)}\n onKeyDown={(e) => {\n if (e.key === `Escape` && props.dismissible !== false) {\n e.stopPropagation()\n close()\n }\n }}\n >\n <span {...(part(`icon`) as Record<string, string>)}>\n <BuiltinIcon slot={`Toast.icon.${type}`} />\n </span>\n <div className=\"xui-toast-text\">\n <span {...(part(`title`) as Record<string, string>)}>{title}</span>\n {description ? <span {...(part(`description`) as Record<string, string>)}>{description}</span> : null}\n </div>\n {actionLabel ? (\n <button type=\"button\" {...(part(`action`) as Record<string, string>)} onClick={() => void emit(`action`)}>\n {actionLabel}\n </button>\n ) : null}\n {props.dismissible !== false ? (\n <button type=\"button\" {...(part(`close`) as Record<string, string>)} aria-label={ctx.t(`dismiss`)} onClick={close}>\n <BuiltinIcon slot=\"Toast.close\" />\n </button>\n ) : null}\n </div>\n )\n return ctx.inlineOverlays ? toast : createPortal(toast, ctx.toastLayer!)\n}\n",
|
|
33
33
|
"// EXP-1259 (the UI batch): the SearchList native and the searchable Menu\n// submenu's body — packages/domain-contract/fixtures/search-list.json.\n//\n// ONE body: a `head` row (the `search` field with its glyph, the muted\n// result `count` once a query is typed) over the `body`: a `list` of `item`\n// rows (`icon`, mono `identifier`, `label`, the picked row's `check`) at\n// most `maxRows` tall, scrolling under a bottom `fade` while rows sit\n// below. The focus STAYS in the field: ↑/↓ move the highlighted row (no\n// wrap, no animation; it scrolls into view), Enter or Tab pick it, a hover\n// moves it, typing puts it back on the top row. Part ids mirror the core's\n// layout tree (`<id>.head`, `<id>.item.<i>`, …) so the conformance dump\n// compares the same boxes.\n\nimport { useEffect, useId, useLayoutEffect, useRef, useState, type KeyboardEvent, type ReactNode } from \"react\"\nimport { elementScale } from \"@exponential_app/eui/web\"\nimport { useSurfaceContext } from \"../context\"\nimport { DEBOUNCE_MS } from \"../inputs\"\nimport { IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { useBoundState } from \"./bound\"\nimport { bool, BuiltinIcon, num, objects, str, useParts, type PartFn } from \"./shared\"\n\nexport interface SearchItem {\n label: string\n value: string\n icon?: string\n identifier?: string\n disabled?: boolean\n}\n\n/** Does a row match the query (case-insensitive, label or identifier)?\n * The core's `search_matches`. */\nexport function searchMatches(item: Pick<SearchItem, `label` | `identifier`>, query: string): boolean {\n const needle = query.trim().toLowerCase()\n return needle === `` || str(item.label).toLowerCase().includes(needle) || str(item.identifier).toLowerCase().includes(needle)\n}\n\nexport interface SearchBodyProps {\n part: PartFn\n /** Whose body this is (a SearchList, or a Menu's searchable submenu). */\n owner: `SearchList` | `Menu`\n /** `\"\"` for a SearchList, `.<i>` for submenu `i` (the core's suffix). */\n suffix: string\n /** The rows ALREADY filtered, each with its index in the full list. */\n rows: { index: number; item: SearchItem }[]\n query: string\n onQuery: (query: string) => void\n placeholder: string\n emptyText: string\n maxRows: number\n showCount: boolean\n picked?: string\n onPick: (item: SearchItem) => void\n autoFocus?: boolean\n /** ← with the caret at the start leaves the field's key to the menu (a\n * searchable submenu closes back to its row). */\n leaveBubbles?: boolean\n /** The rows' recipe part (`item`) and the row id prefix. */\n rowPart?: (item: SearchItem, index: number, active: boolean) => Record<string, string>\n renderRow?: (item: SearchItem, index: number) => ReactNode\n}\n\nexport function SearchBody({ part, owner, suffix, rows, query, onQuery, placeholder, emptyText, maxRows, showCount, picked, onPick, autoFocus, leaveBubbles, rowPart, renderRow }: SearchBodyProps) {\n const ctx = useSurfaceContext()\n void owner\n const listId = useId()\n const [active, setActive] = useState(0)\n const listRef = useRef<HTMLDivElement | null>(null)\n const [moreBelow, setMoreBelow] = useState(false)\n const at = Math.min(active, Math.max(0, rows.length - 1))\n const single = (name: string) => {\n const attrs = part(name) as Record<string, string>\n if (suffix && attrs[`data-xui-id`]) attrs[`data-xui-id`] = `${attrs[`data-xui-id`]}${suffix}`\n return attrs\n }\n // The highlight goes back to the top row whenever the query changes.\n useEffect(() => setActive(0), [query])\n const measure = () => {\n const list = listRef.current\n if (list) setMoreBelow(list.scrollTop + list.clientHeight < list.scrollHeight - 1)\n }\n useLayoutEffect(measure, [rows.length, maxRows])\n // Keep the highlighted row inside the window (instant: keys never animate).\n // The list scrolls itself: scrollIntoView would scroll the page to a list\n // further down on mount.\n useLayoutEffect(() => {\n const list = listRef.current\n const row = list?.querySelector<HTMLElement>(`[data-active=\"true\"]`)\n if (!list || !row) return\n const l = list.getBoundingClientRect()\n const r = row.getBoundingClientRect()\n // NEW-82: rect deltas are visual px, scrollTop is layout px.\n const sy = elementScale(list, l).y\n if (r.top < l.top) list.scrollTop -= (l.top - r.top) / sy\n else if (r.bottom > l.bottom) list.scrollTop += (r.bottom - l.bottom) / sy\n }, [at])\n const pick = (i: number) => {\n const row = rows[i]\n if (row && !bool(row.item.disabled)) onPick(row.item)\n }\n const onKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.nativeEvent.isComposing) return\n if (e.key === `ArrowDown` || e.key === `ArrowUp`) {\n e.preventDefault()\n e.stopPropagation()\n setActive((a) => Math.max(0, Math.min(rows.length - 1, a + (e.key === `ArrowDown` ? 1 : -1))))\n } else if (e.key === `Enter` || (e.key === `Tab` && !e.shiftKey && rows.length > 0)) {\n e.preventDefault()\n e.stopPropagation()\n pick(at)\n } else if (leaveBubbles && e.key === (ctx.direction === `rtl` ? `ArrowRight` : `ArrowLeft`) && e.currentTarget.selectionStart === 0 && e.currentTarget.selectionEnd === 0) {\n // The submenu's own key handling closes it.\n } else if (e.key !== `Escape`) {\n // Typing stays in the field (a menu's typeahead never sees it).\n e.stopPropagation()\n }\n }\n const activeId = rows[at] ? `${listId}-${rows[at].index}` : undefined\n return (\n <>\n <div {...single(`head`)}>\n <div {...single(`search`)}>\n <BuiltinIcon slot=\"SearchList.search\" />\n <input\n type=\"text\"\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-controls={listId}\n aria-activedescendant={activeId}\n aria-autocomplete=\"list\"\n autoFocus={autoFocus}\n value={query}\n placeholder={placeholder}\n onChange={(e) => onQuery(e.target.value)}\n onKeyDown={onKeyDown}\n />\n </div>\n {showCount && query.trim() !== `` ? (\n <span {...single(`count`)} role=\"status\" aria-live=\"polite\">\n {ctx.formatter.number(rows.length)}\n </span>\n ) : null}\n </div>\n <div {...single(`body`)}>\n <div {...single(`list`)} ref={listRef} id={listId} role=\"listbox\" onScroll={measure} style={{ maxHeight: `calc(${maxRows} * var(--xui-control-row, 32px))` }}>\n {rows.map(({ index, item }, pos) => {\n const isActive = pos === at\n const disabled = bool(item.disabled)\n return (\n <div\n key={`${index}`}\n id={`${listId}-${index}`}\n role=\"option\"\n aria-selected={isActive}\n aria-disabled={disabled || undefined}\n data-active={isActive ? `true` : undefined}\n {...(rowPart ? rowPart(item, index, isActive) : (part.at(`item`, `${suffix ? `${suffix.slice(1)}.` : ``}${index}`, isActive && `selected`, disabled && `disabled`) as Record<string, string>))}\n onPointerMove={() => pos !== at && setActive(pos)}\n onPointerDown={(e) => e.preventDefault()}\n onClick={() => pick(pos)}\n >\n {renderRow ? (\n renderRow(item, index)\n ) : (\n <>\n {item.icon ? (\n <span {...(part.at(`icon`, index) as Record<string, string>)} aria-hidden=\"true\">\n <IconGlyph icons={ctx.host.icons} name={item.icon} />\n </span>\n ) : null}\n {str(item.identifier) ? <span {...(part.at(`identifier`, index) as Record<string, string>)}>{str(item.identifier)}</span> : null}\n <span {...(part.at(`label`, index) as Record<string, string>)}>{str(item.label)}</span>\n {picked !== undefined && picked !== `` && item.value === picked ? (\n <span {...(part.at(`check`, index) as Record<string, string>)} aria-hidden=\"true\">\n <BuiltinIcon slot=\"SearchList.check\" />\n </span>\n ) : null}\n </>\n )}\n </div>\n )\n })}\n {rows.length === 0 ? <div {...single(`empty`)}>{emptyText}</div> : null}\n </div>\n {moreBelow && rows.length > maxRows ? <div {...single(`fade`)} aria-hidden=\"true\" /> : null}\n </div>\n </>\n )\n}\n\n/** SearchList: the field filters the rows locally (label or identifier)\n * unless the host searches itself (`on.search`, its rows arrive through\n * the bound `items`); `search {query}` fires 150 ms after the last\n * keystroke; a pick writes the bound `value` and fires `select {value}`. */\nexport function SearchListNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const items = objects<SearchItem>(props.items)\n const [query, setQuery] = useBoundState(node, scope, `query`, str(props.query))\n const [picked, setPicked] = useBoundState(node, scope, `value`, str(props.value))\n const hostSearches = Boolean(node.on?.search)\n const typed = useRef(false)\n useEffect(() => {\n if (!typed.current) return\n const t = setTimeout(() => void emit(`search`, { query }), DEBOUNCE_MS)\n return () => clearTimeout(t)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query])\n const rows = items.map((item, index) => ({ index, item })).filter(({ item }) => hostSearches || searchMatches(item, query))\n const maxRows = Math.max(1, Math.floor(num(props.maxRows, 8)))\n return (\n <div {...(rootProps as Record<string, unknown>)}>\n <SearchBody\n part={part}\n owner=\"SearchList\"\n suffix=\"\"\n rows={rows}\n query={query}\n onQuery={(q) => {\n typed.current = true\n setQuery(q)\n }}\n placeholder={str(props.placeholder) || ctx.t(`search`)}\n emptyText={str(props.emptyText) || ctx.t(`noResults`)}\n maxRows={maxRows}\n showCount={props.showCount === undefined ? true : bool(props.showCount)}\n picked={picked}\n onPick={(item) => {\n setPicked(item.value)\n void emit(`select`, { value: item.value }, { value: item.value })\n }}\n />\n </div>\n )\n}\n",
|
|
34
34
|
"// VAPP-162 (docs/round-5-contract.md §6, §7): QrCode and QrScanner.\n//\n// QrCode paints THE CORE'S matrix (`qrMatrix`, never a platform QR library)\n// as one SVG path in module units over a `size` px plate, quiet zone 4,\n// `shape-rendering: crispEdges` (module edges snap to device pixels, the\n// outer size stays exact); of the plate and module recipe colours the\n// lighter fills the plate (a dark theme still scans).\n//\n// QrScanner is the viewfinder CHROME; the camera is the host's: the\n// `qrScanner` host option (`HostPlugin.qrScanner.start(feed, formats,\n// onValue) → stop`) renders its feed into the `feed` element and reports\n// decoded strings, dispatched as `scanned {value}` once per distinct value.\n// No host (or a host that refuses) = the placeholder icon + `Camera\n// unavailable`; `disabled` stops the camera and dims the chrome.\n\nimport { useEffect, useMemo, useRef, useState } from \"react\"\nimport { nativeRecipeProps, resolveRecipe } from \"@exponential_app/eui\"\nimport { QR_CORNERS, QR_SCANNER, qrCornerPath, qrFeedColour, qrPaint, qrScanFormats, qrScanReporter } from \"@exponential_app/eui/web\"\nimport { useSurfaceContext } from \"../context\"\nimport { IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { bool, num, str, useParts } from \"./shared\"\n\ntype Ctx = ReturnType<typeof useSurfaceContext>\n\nfunction recipeOf(ctx: Ctx, component: string, part: string, props: Record<string, unknown>) {\n return resolveRecipe(ctx.theme, { component, part, props: nativeRecipeProps(component, props, ctx.extensionDefs) }, ctx.mode)\n}\n\n/** A `$string.<key>` default the reducer left in place → the built-in string. */\nfunction stringProp(ctx: Ctx, raw: unknown, fallbackKey: string): string {\n const s = str(raw)\n if (!s) return ctx.t(fallbackKey)\n return s.startsWith(`$string.`) ? ctx.t(s.slice(`$string.`.length)) : s\n}\n\nexport function QrCodeNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const size = Math.max(0, num(props.size, 160))\n const value = str(props.value)\n const level = str(props.level, `M`)\n const plateStyle = recipeOf(ctx, `QrCode`, `plate`, props)\n const moduleStyle = recipeOf(ctx, `QrCode`, `module`, props)\n const paint = useMemo(\n () => qrPaint(value, level, String(plateStyle.backgroundColor ?? `#ffffff`), String(moduleStyle.color ?? `#000000`)),\n [value, level, plateStyle.backgroundColor, moduleStyle.color]\n )\n const label = str(props.label)\n return (\n <div {...(rootProps as Record<string, unknown>)} role={label ? `img` : undefined} aria-label={label || undefined} aria-hidden={label ? undefined : `true`} data-empty={paint.matrix ? undefined : `true`}>\n <span {...(part(`plate`) as Record<string, string>)} style={{ width: size, height: size, backgroundColor: paint.plate }}>\n {paint.matrix ? (\n <svg viewBox={`0 0 ${paint.modules} ${paint.modules}`} width={size} height={size} shapeRendering=\"crispEdges\" aria-hidden=\"true\" focusable=\"false\">\n <path {...(part(`module`) as Record<string, string>)} d={paint.path} fill={paint.module} />\n </svg>\n ) : null}\n </span>\n {label ? (\n <span {...(part(`label`) as Record<string, string>)} aria-hidden=\"true\">\n {label}\n </span>\n ) : null}\n </div>\n )\n}\n\nexport function QrScannerNative({ node, props, rootProps, emit }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const disabled = bool(props.disabled)\n const host = ctx.host.qrScanner\n const formats = qrScanFormats(props.formats)\n const formatsKey = formats.join(`,`)\n const feedRef = useRef<HTMLSpanElement | null>(null)\n const [live, setLive] = useState(false)\n const emitRef = useRef(emit)\n emitRef.current = emit\n const announce = useRef(ctx.announce)\n announce.current = ctx.announce\n useEffect(() => {\n const feed = feedRef.current\n if (!host || disabled || !feed) {\n setLive(false)\n return\n }\n // One reporter per start: a remount (or re-enable) reports a held code again.\n const report = qrScanReporter((value) => {\n announce.current(value)\n void emitRef.current(`scanned`, { value })\n })\n let stop: (() => void) | false | void\n try {\n stop = host.start(feed, formatsKey.split(`,`), report)\n } catch {\n stop = false\n }\n setLive(stop !== false)\n return () => {\n if (typeof stop === `function`) stop()\n feed.replaceChildren()\n }\n }, [host, disabled, formatsKey])\n const label = stringProp(ctx, props.label, `scanQrCode`)\n const radius = num(recipeOf(ctx, `QrScanner`, `viewfinder`, props).borderRadius, 0)\n const feedColour = String(recipeOf(ctx, `QrScanner`, `feed`, props).backgroundColor ?? `#000000`)\n const hint = str(props.hint)\n const camera = Boolean(host) && live\n return (\n <div {...(rootProps as Record<string, unknown>)} aria-disabled={disabled || undefined} data-live={camera ? `true` : undefined}>\n <div {...(part(`viewfinder`) as Record<string, string>)} role=\"img\" aria-label={camera ? label : `${label}, ${ctx.t(`cameraUnavailable`)}`}>\n <span ref={feedRef} {...(part(`feed`) as Record<string, string>)} style={{ backgroundColor: qrFeedColour(feedColour) }} aria-hidden=\"true\" />\n {QR_CORNERS.map((corner) => (\n <svg key={corner} {...(part(`corner`) as Record<string, string>)} data-corner={corner} viewBox={`0 0 ${QR_SCANNER.cornerLength} ${QR_SCANNER.cornerLength}`} aria-hidden=\"true\" focusable=\"false\">\n <path d={qrCornerPath(corner, radius)} fill=\"none\" stroke=\"currentColor\" strokeWidth={QR_SCANNER.cornerStroke} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ))}\n {camera ? (\n <span {...(part(`scanLine`) as Record<string, string>)} aria-hidden=\"true\" />\n ) : (\n <span {...(part(`placeholder`) as Record<string, string>)} aria-hidden=\"true\">\n <span {...(part(`placeholderIcon`) as Record<string, string>)}>\n <IconGlyph icons={ctx.host.icons} name={QR_SCANNER.placeholderIcon} width={QR_SCANNER.placeholderIconSize} height={QR_SCANNER.placeholderIconSize} />\n </span>\n <span>{ctx.t(`cameraUnavailable`)}</span>\n </span>\n )}\n </div>\n {hint ? <span {...(part(`hint`) as Record<string, string>)}>{hint}</span> : null}\n </div>\n )\n}\n\n",
|
|
35
35
|
"// VAPP-87 + round 1 (contract §3 Select = the combobox; a11y.json Select).\n// A plain single Select is Radix's (arrows, type-ahead, Home/End built in).\n// `searchable` and/or `multiple` is the COMBOBOX: a trigger\n// (role=combobox, aria-expanded/controls) opening a listbox; with\n// `searchable` the filter field keeps focus and drives the active option\n// through aria-activedescendant, typing fires `search {query}` (150 ms\n// debounce). Options come from the `options` prop (bindable: the host\n// refills the bound path on `search`, the async source), or from the host's\n// `optionSource(source, query)` when `source` names a host list. Local\n// filtering applies only to inline, unbound options. `emptyText` (default\n// `$string.noResults`) shows when nothing matches.\n\nimport { useEffect, useId, useMemo, useRef, useState } from \"react\"\nimport { Popover as PopoverPrimitive, Select as SelectPrimitive } from \"radix-ui\"\nimport { OVERLAY_OFFSET, OVERLAY_PADDING } from \"@exponential_app/eui\"\nimport { useSurfaceContext } from \"../context\"\nimport { boundPath } from \"@exponential_app/eui/web\"\nimport { DEBOUNCE_MS } from \"../inputs\"\nimport { FieldErrors, useField } from \"../form\"\nimport { IconGlyph } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { useBoundState } from \"./bound\"\nimport { useListNavigation } from \"./listbox\"\nimport { bool, BuiltinIcon, str, useParts, TextPart, objects } from \"./shared\"\n\nexport interface SelectOption {\n label: string\n value: string\n icon?: string\n disabled?: boolean\n}\n\n// VAPP-146 (fixtures/interactions-round1.json `select`): `\"\"` is an ordinary\n// option value. Radix's Select.Item refuses it (Radix keeps `\"\"` for \"no\n// value\"), so an empty value crosses the Radix boundary as EMPTY and comes\n// back as `\"\"`; the one DOM place Radix writes an item value (the hidden\n// native <select> inside a <form>) is set back to `\"\"`, so the DOM stays\n// the Solid painter's.\nconst EMPTY = `\\u0000xui-empty`\nconst toRadix = (value: string): string => (value === `` ? EMPTY : value)\nconst fromRadix = (value: string): string => (value === EMPTY ? `` : value)\n\n/** Keeps the hidden native <select>'s options free of `EMPTY`; a select\n * mounted while the value is `\"\"` gets the empty placeholder option first\n * and keeps it (the Solid painter's `NativeSelect`; Radix only renders it\n * for an uncontrolled value). */\nfunction useNativeEmptyOption(root: HTMLElement | null, empty: boolean): void {\n const emptyNow = useRef(empty)\n emptyNow.current = empty\n useEffect(() => {\n if (!root || typeof MutationObserver === `undefined`) return\n const seen = new WeakSet<HTMLSelectElement>()\n const fix = () => {\n for (const select of Array.from(root.querySelectorAll<HTMLSelectElement>(`select[aria-hidden]`))) {\n if (!seen.has(select)) {\n seen.add(select)\n if (emptyNow.current) select.insertBefore(document.createElement(`option`), select.firstChild).setAttribute(`value`, ``)\n }\n for (const option of Array.from(select.options)) if (option.getAttribute(`value`) === EMPTY) option.setAttribute(`value`, ``)\n }\n }\n fix()\n const observer = new MutationObserver(fix)\n observer.observe(root, { subtree: true, childList: true, attributes: true, attributeFilter: [`value`] })\n return () => observer.disconnect()\n }, [root])\n}\n\nconst asList = (raw: unknown): string[] => (Array.isArray(raw) ? raw.map(String) : raw === undefined || raw === null || raw === `` ? [] : String(raw).split(`,`))\n\nexport function SelectNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const part = useParts(node, props)\n const ctx = useSurfaceContext()\n const id = useId()\n const listId = `${id}-list`\n const multiple = bool(props.multiple)\n const searchable = bool(props.searchable)\n const placeholder = str(props.placeholder) || ctx.t(`choose`)\n const raw = props.value\n const rawIsArray = Array.isArray(raw)\n const [value, setValue] = useBoundState<string | string[]>(node, scope, `value`, multiple ? asList(raw) : str(raw))\n const triggerRef = useRef<HTMLButtonElement | null>(null)\n const f = useField({ node, domId, props, value, focusRef: triggerRef })\n const disabled = bool(props.disabled) || Boolean(f.form?.disabled)\n const [open, setOpen] = useState(false)\n const [query, setQuery] = useState(``)\n const source = str(props.source)\n const optionsBound = boundPath(node.props, `options`, scope) !== undefined\n const [sourced, setSourced] = useState<SelectOption[] | null>(null)\n // Every optionSource request is numbered; a response that is not the\n // latest one is dropped (an older query resolving last must not win).\n const request = useRef(0)\n const askSource = (q: string) => {\n if (!source || !ctx.host.optionSource) return\n const mine = ++request.current\n const r = ctx.host.optionSource(source, q)\n const take = (list: SelectOption[] | null | undefined) => {\n if (mine === request.current) setSourced(objects<SelectOption>(list))\n }\n if (r && typeof (r as Promise<SelectOption[]>).then === `function`) void (r as Promise<SelectOption[]>).then(take, () => undefined)\n else take(r as SelectOption[])\n }\n useEffect(\n () => () => {\n request.current++\n },\n []\n )\n const inline = objects<SelectOption>(props.options)\n const options = sourced ?? inline\n const hasEmpty = options.some((o) => o.value === ``)\n const [plainRoot, setPlainRoot] = useState<HTMLDivElement | null>(null)\n useNativeEmptyOption(hasEmpty ? plainRoot : null, value === ``)\n const commit = (next: string | string[]) => {\n const out = multiple && !rawIsArray && typeof raw === `string` ? (next as string[]).join(`,`) : next\n setValue(next, out)\n f.change(out)\n f.touch()\n void emit(`change`, { value: out }, { value: out })\n }\n\n // `search {query}` debounced; a host source answers the same query.\n useEffect(() => {\n if (!searchable || !open) return\n const t = setTimeout(() => {\n void emit(`search`, { query })\n askSource(query)\n }, DEBOUNCE_MS)\n return () => clearTimeout(t)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query, open, searchable, source])\n useEffect(() => {\n if (!source || !ctx.host.optionSource || searchable) return\n askSource(``)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source, ctx.host, searchable])\n\n const label = <TextPart part={part(`label`)} text={props.label} as=\"label\" htmlFor={id} />\n const triggerStates = (o: boolean) => [o && `open`, disabled && `disabled`, f.invalid && `invalid`] as const\n\n if (!multiple && !searchable) {\n const chosen = options.find((o) => o.value === value)\n const chosenLabel = chosen ? str(chosen.label) : ``\n return (\n <div ref={hasEmpty ? setPlainRoot : undefined} {...(rootProps as Record<string, unknown>)} data-source={source || undefined}>\n {label}\n <SelectPrimitive.Root\n // With an empty option the Select stays CONTROLLED through every\n // pick (`\"\"` is Radix's controlled \"no value\": the placeholder\n // state, no item checked, the same DOM); a flip to `undefined`\n // and back would make Radix warn. Without one, an unset value\n // stays `undefined` (the hidden native <select> keeps its empty\n // placeholder option, as Solid's).\n value={hasEmpty ? (value as string) : (value as string) || undefined}\n // The option already holding the value fires nothing (Radix's rule;\n // `\"\"` reads as Radix's \"no value\", so it is checked here).\n onValueChange={(v) => {\n const next = fromRadix(v)\n if (next !== value) commit(next)\n }} disabled={disabled} open={open} onOpenChange={setOpen} name={str(props.name, node.id)} dir={ctx.direction}>\n <SelectPrimitive.Trigger ref={triggerRef} id={id} {...(part(`trigger`, ...triggerStates(open)) as Record<string, string>)} aria-invalid={f.invalid || undefined} aria-describedby={f.describedBy}>\n {/* Radix shows `placeholder` for its \"no value\" (`\"\"`): the chosen\n label either way. */}\n <span>{chosen ? <SelectPrimitive.Value placeholder={chosenLabel}>{chosenLabel}</SelectPrimitive.Value> : <span {...(part(`placeholder`) as Record<string, string>)}>{placeholder}</span>}</span>\n <SelectPrimitive.Icon asChild>\n <BuiltinIcon slot=\"Select.trigger\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal container={ctx.portal ?? undefined}>\n <SelectPrimitive.Content {...(part(`content`, open && `open`) as Record<string, string>)} position=\"popper\" sideOffset={OVERLAY_OFFSET} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Select\" style={{ minWidth: `var(--radix-select-trigger-width)` }}>\n <SelectPrimitive.Viewport>\n {options.length === 0 ? <div {...(part(`empty`) as Record<string, string>)}>{str(props.emptyText) || ctx.t(`noResults`)}</div> : null}\n {options.map((o) => (\n <SelectPrimitive.Item key={o.value} value={toRadix(o.value)} disabled={bool(o.disabled)} {...(part(`item`, o.value === value && `selected`, bool(o.disabled) && `disabled`) as Record<string, string>)}>\n {o.icon ? <IconGlyph icons={ctx.host.icons} name={o.icon} /> : null}\n <SelectPrimitive.ItemText>{str(o.label)}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator {...(part(`check`) as Record<string, string>)} className={`${part(`check`).className as string} xui-Select-check`}>\n <BuiltinIcon slot=\"Select.check\" size={16} />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n <FieldErrors part={part} field={f} />\n </div>\n )\n }\n\n return (\n <Combobox\n {...{ node, props, rootProps, part, id, listId, multiple, searchable, placeholder, options, value, commit, open, setOpen, query, setQuery, disabled, triggerRef, label, source }}\n localFilter={!optionsBound && !source}\n field={f}\n />\n )\n}\n\ninterface ComboboxProps {\n node: NativeProps[`node`]\n props: Record<string, unknown>\n rootProps: Record<string, unknown>\n part: ReturnType<typeof useParts>\n id: string\n listId: string\n multiple: boolean\n searchable: boolean\n placeholder: string\n options: SelectOption[]\n value: string | string[]\n commit: (next: string | string[]) => void\n open: boolean\n setOpen: (open: boolean) => void\n query: string\n setQuery: (q: string) => void\n disabled: boolean\n triggerRef: { current: HTMLButtonElement | null }\n label: React.ReactNode\n source: string\n localFilter: boolean\n field: ReturnType<typeof useField>\n}\n\nfunction Combobox({ props, rootProps, part, id, listId, multiple, searchable, placeholder, options, value, commit, open, setOpen, query, setQuery, disabled, triggerRef, label, source, localFilter, field }: ComboboxProps) {\n const ctx = useSurfaceContext()\n const selected = multiple ? (value as string[]) : value ? [value as string] : []\n const chosen = options.filter((o) => selected.includes(o.value))\n const shown = useMemo(() => (query && localFilter ? options.filter((o) => str(o.label).toLowerCase().includes(query.toLowerCase())) : options), [options, query, localFilter])\n const listRef = useRef<HTMLDivElement | null>(null)\n const pick = (i: number) => {\n const o = shown[i]\n if (!o || bool(o.disabled)) return\n if (multiple) commit(selected.includes(o.value) ? selected.filter((v) => v !== o.value) : [...selected, o.value])\n else {\n commit(o.value)\n setOpen(false)\n }\n }\n const nav = useListNavigation({ count: shown.length, isDisabled: (i) => bool(shown[i]?.disabled), labelOf: (i) => str(shown[i]?.label), onPick: pick, typeahead: !searchable })\n useEffect(() => {\n if (open) {\n const i = shown.findIndex((o) => selected.includes(o.value))\n nav.setActive(i >= 0 ? i : shown.findIndex((o) => !bool(o.disabled)))\n } else setQuery(``)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n useEffect(() => {\n if (!searchable || !open) return\n nav.setActive(shown.findIndex((o) => !bool(o.disabled)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query])\n const optionId = (i: number) => `${listId}-${i}`\n const activeId = nav.active >= 0 && nav.active < shown.length ? optionId(nav.active) : undefined\n useEffect(() => {\n if (activeId) listRef.current?.querySelector(`[id=\"${activeId}\"]`)?.scrollIntoView?.({ block: `nearest` })\n }, [activeId])\n return (\n <div {...(rootProps as Record<string, unknown>)} data-source={source || undefined}>\n {label}\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger\n ref={triggerRef}\n id={id}\n {...(part(`trigger`, open && `open`, disabled && `disabled`, field.invalid && `invalid`) as Record<string, string>)}\n disabled={disabled}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? listId : undefined}\n aria-invalid={field.invalid || undefined}\n aria-describedby={field.describedBy}\n onKeyDown={(e) => {\n if (!open && (e.key === `ArrowDown` || e.key === `ArrowUp`)) {\n e.preventDefault()\n setOpen(true)\n }\n }}\n >\n <span>{chosen.length ? chosen.map((o) => str(o.label)).join(`, `) : <span {...(part(`placeholder`) as Record<string, string>)}>{placeholder}</span>}</span>\n <BuiltinIcon slot=\"Select.trigger\" />\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal container={ctx.portal ?? undefined}>\n <PopoverPrimitive.Content\n {...(part(`content`, open && `open`) as Record<string, string>)}\n dir={ctx.direction}\n align=\"start\"\n sideOffset={OVERLAY_OFFSET}\n collisionPadding={OVERLAY_PADDING}\n data-xui-overlay=\"Select\"\n style={{ minWidth: `var(--radix-popover-trigger-width)` }}\n onOpenAutoFocus={(e) => {\n if (!searchable) {\n e.preventDefault()\n listRef.current?.focus()\n }\n }}\n >\n {searchable ? (\n <div className=\"xui-Select-searchbox\">\n <BuiltinIcon slot=\"Select.search\" size={16} />\n <input\n {...(part(`search`) as Record<string, string>)}\n className={`${part(`search`).className as string} xui-Select-search`}\n role=\"combobox\"\n aria-expanded\n aria-controls={listId}\n aria-activedescendant={activeId}\n aria-autocomplete=\"list\"\n placeholder={ctx.t(`search`)}\n aria-label={ctx.t(`search`)}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={nav.onKeyDown}\n />\n </div>\n ) : null}\n <div\n ref={listRef}\n id={listId}\n role=\"listbox\"\n tabIndex={searchable ? -1 : 0}\n aria-multiselectable={multiple || undefined}\n aria-activedescendant={searchable ? undefined : activeId}\n aria-labelledby={id}\n className=\"xui-Select-listbox\"\n onKeyDown={searchable ? undefined : nav.onKeyDown}\n >\n {shown.length === 0 ? <div {...(part(`empty`) as Record<string, string>)}>{str(props.emptyText) || ctx.t(`noResults`)}</div> : null}\n {shown.map((o, i) => {\n const isSel = selected.includes(o.value)\n const isActive = i === nav.active\n return (\n <div\n key={o.value}\n id={optionId(i)}\n role=\"option\"\n aria-selected={isSel}\n aria-disabled={bool(o.disabled) || undefined}\n data-active={isActive ? `` : undefined}\n {...(part(`item`, (isSel || isActive) && `selected`, bool(o.disabled) && `disabled`, isActive && `hover`) as Record<string, string>)}\n onPointerMove={() => nav.setActive(i)}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => pick(i)}\n >\n {o.icon ? <IconGlyph icons={ctx.host.icons} name={o.icon} /> : null}\n <span>{str(o.label)}</span>\n {isSel ? (\n <span {...(part(`check`) as Record<string, string>)} className={`${part(`check`).className as string} xui-Select-check`}>\n <BuiltinIcon slot=\"Select.check\" size={16} />\n </span>\n ) : null}\n </div>\n )\n })}\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n <FieldErrors part={part} field={field} />\n </div>\n )\n}\n",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"// @exponential_app/eui-react — Exponential UI's React renderer (VAPP-87 + round 1).\nexport { ExponentialSurface, resolveThemeInput, surfaceTheme } from \"./surface\"\nexport type { ExponentialSurfaceProps, ThemeInput, SurfaceHandle } from \"./surface\"\nexport { useSurface } from \"./use-surface\"\nexport type { A2uiMessage, SurfaceState, UseSurfaceOptions } from \"./use-surface\"\nexport { registerExtension, defineReactExtension, registeredExtensions, extensionCatalogs } from \"./extensions\"\nexport type { ReactExtension, ExtensionComponent, RegisterExtensionOptions } from \"./extensions\"\nexport type { HostPlugin, IconComponent, IconMap, PaintError, SurfaceActionEvent, SurfaceInputEvent, ExtensionComponentProps, SourceOption } from \"./host\"\nexport { compileTheme, compiledTheme, themeScope, partClass, propAttribute, tokenVar, tokenVarName, cssValue, declarations, ruleSelectors, STATE_SELECTORS, LAYERS } from \"@exponential_app/eui/web\"\nexport type { CompiledTheme } from \"@exponential_app/eui/web\"\nexport { nodeSheet, compileNodeSheet, dynamicStyleEntries, queryToken, nodeClass, surfaceClass, walkNodes } from \"@exponential_app/eui/web\"\nexport type { NodeSheet, DynamicStyleEntry } from \"@exponential_app/eui/web\"\nexport { BASE_CSS } from \"@exponential_app/eui/web\"\nexport { getPointer, setPointer, absolutePath, resolveValue, resolveProps, resolveNodeProps, resolveVisible, bindTree, boundPath, isBinding, isCall, hasDynamic, memoFormatter, CLIENT_FUNCTIONS } from \"@exponential_app/eui/web\"\nexport type { DataModel, DataBinding, FunctionCall, ClientFunction, ResolveContext } from \"@exponential_app/eui/web\"\nexport { useHostOwnedValue, DEBOUNCE_MS } from \"./inputs\"\nexport type { HostOwnedOptions, HostOwnedValue } from \"./inputs\"\nexport { WindowedList } from \"./list\"\nexport type { WindowedListProps, WindowedListHandle } from \"./list\"\nexport { NodeView, useRootProps, useEmitter, runNodeAction, templateItems, itemInstance, mergeStyle } from \"./node-view\"\nexport type { NativeProps, TemplateItem } from \"./node-view\"\nexport { NATIVES, NATIVE_NAMES } from \"./natives\"\nexport { useSurfaceContext, SurfaceContext, ScopeContext, InstanceContext } from \"./context\"\nexport type { SurfaceContextValue } from \"./context\"\nexport { IconGlyph, resolveIcon, FALLBACK_ICONS } from \"./icons\"\nexport { BuiltinMarkdown, renderMarkdown } from \"./markdown\"\nexport { useParts, str, num, bool, arr, BuiltinIcon, builtinIconName, failingChecks } from \"./natives/shared\"\nexport { FormContext, useForm, useField } from \"./form\"\nexport type { FieldHandle, FormContextValue, FieldState } from \"./form\"\nexport { useMediaQuery, useElementSize } from \"./platform\"\nexport { sortRows } from \"./natives/table\"\nexport { parseLocaleNumber } from \"./natives/inputs\"\nexport { acceptsFile } from \"./natives/chips\"\nexport { monthGrid } from \"./natives/dates\"\n// VAPP-91: the host API on React.\nexport { HostSurface, hostPlugin, useHostSurface, useHostSurfaceIds, useHostStatus } from \"./host-surface\"\nexport type { HostSurfaceProps } from \"./host-surface\"\nexport { useMediaSource, useMediaSrc, clearMediaCache, mediaCacheStats, fetchLimited, MEDIA_CACHE_IDLE_MAX } from \"./media\"\nexport { linkHref, mediaRequestOf, urlPolicyOf } from \"@exponential_app/eui/web\"\n",
|
|
43
43
|
"// VAPP-91: the React side of the host API. An `ExponentialHost` (from\n// `@exponential_app/eui`: transport, router, surfaces, sources, functions,\n// policy) feeds `<HostSurface>`; the renderer's interactions go back through\n// `hostPlugin(host)`. Nothing here knows a transport or a backend.\n\nimport { useCallback, useMemo, useSyncExternalStore } from \"react\"\nimport type { ExponentialHost, SurfaceStore, TransportStatus } from \"@exponential_app/eui\"\nimport type { HostPlugin } from \"./host\"\nimport type { SurfaceState } from \"./use-surface\"\nimport { ExponentialSurface, type ExponentialSurfaceProps } from \"./surface\"\n\n/** The renderer callbacks that route through the host: actions become A2UI\n * client messages on its transport, host functions pass its policy gate,\n * every href its URL policy, every src its media policy + loader, paint\n * failures become `RENDER_FAILED` errors. `base` adds the rest (icons,\n * markdown, onInput…) and may observe actions first. */\nexport function hostPlugin(host: ExponentialHost, base: HostPlugin = {}): HostPlugin {\n return {\n ...base,\n onAction: (e) => {\n host.action({ surfaceId: e.surfaceId, componentId: e.componentId, name: e.name, context: e.context, payload: e.payload, timestamp: e.timestamp })\n return base.onAction?.(e)\n },\n onFunctionCall: async (call) => {\n const outcome = await host.callFunction(call)\n await base.onFunctionCall?.(call)\n return outcome\n },\n openUrl: (url) => {\n host.openUrl(url)\n },\n urls: host.urlPolicy(),\n media: host.mediaOptions(),\n mediaRequest: base.mediaRequest ?? ((src) => host.mediaRequest(src)),\n onPaintError: (error) => {\n host.paintError(error)\n base.onPaintError?.(error)\n },\n }\n}\n\nconst noop = () => () => {}\n\n/** The ids of the host's surfaces, re-rendered as surfaces come and go. */\nexport function useHostSurfaceIds(host: ExponentialHost): string[] {\n const subscribe = useCallback((cb: () => void) => host.subscribe(cb), [host])\n const key = useSyncExternalStore(subscribe, () => host.surfaceIds().join(`\\n`))\n return useMemo(() => (key ? key.split(`\\n`) : []), [key])\n}\n\n/** The host's transport state (`host_offline` when not `open`) and the\n * catalog it could not render (the catalog-update banner). */\nexport function useHostStatus(host: ExponentialHost): { status: TransportStatus; detail?: string; unsupportedCatalog?: string } {\n const subscribe = useCallback((cb: () => void) => host.subscribe(cb), [host])\n const status = useSyncExternalStore(subscribe, () => host.status)\n const detail = useSyncExternalStore(subscribe, () => host.statusDetail)\n const unsupportedCatalog = useSyncExternalStore(subscribe, () => host.unsupportedCatalog)\n return { status, detail, unsupportedCatalog }\n}\n\n/** One host surface as the `SurfaceState` `<ExponentialSurface>` paints. */\nexport function useHostSurface(host: ExponentialHost, surfaceId: string): SurfaceState | null {\n const subscribeHost = useCallback((cb: () => void) => host.subscribe(cb), [host])\n const store = useSyncExternalStore(subscribeHost, () => host.surface(surfaceId))\n const subscribeStore = useCallback((cb: () => void) => (store ? store.subscribe(cb) : noop()), [store])\n const version = useSyncExternalStore(subscribeStore, () => store?.version ?? -1)\n return useMemo(() => (store ? stateOf(host, store) : null), [host, store, version])\n}\n\nfunction stateOf(host: ExponentialHost, store: SurfaceStore): SurfaceState {\n return {\n surfaceId: store.surfaceId,\n catalogId: store.catalogId,\n root: store.root,\n issues: store.issues,\n templates: store.templates,\n theme: store.theme,\n data: store.data,\n deleted: false,\n components: store.components,\n extensions: host.extensionDefs,\n apply: (message) => {\n host.receive(message)\n },\n setData: (pointer, value) => store.setData(pointer, value),\n setNested: () => {\n throw new Error(`exponential-ui: a host surface is fed by its transport, not setNested`)\n },\n reset: () => {},\n }\n}\n\nexport interface HostSurfaceProps extends Omit<ExponentialSurfaceProps, `surface` | `root` | `data` | `host`> {\n host: ExponentialHost\n surfaceId: string\n /** Icons, markdown, input observers… (actions, functions, urls and media\n * route through the host). */\n plugin?: HostPlugin\n /** Shown while the host has no surface with this id. */\n fallback?: React.ReactNode\n}\n\n/** A surface the host's transport feeds. */\nexport function HostSurface({ host, surfaceId, plugin, fallback = null, ...rest }: HostSurfaceProps) {\n const surface = useHostSurface(host, surfaceId)\n const p = useMemo(() => hostPlugin(host, plugin), [host, plugin])\n if (!surface) return <>{fallback}</>\n // The server's `createSurface.theme` wins; the `theme` prop is the default.\n return <ExponentialSurface {...rest} theme={surface.theme ?? rest.theme} id={rest.id ?? surfaceId} surface={surface} host={p} />\n}\n"
|
|
44
44
|
],
|
|
45
|
-
"mappings": "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",
|
|
46
|
-
"debugId": "
|
|
45
|
+
"mappings": "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",
|
|
46
|
+
"debugId": "EF808DB07BCA693364756E2164756E21",
|
|
47
47
|
"names": []
|
|
48
48
|
}
|