@exponential_app/eui-react 0.13.0 → 0.14.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 +30 -5
- package/dist/index.js.map +6 -6
- package/dist/types/natives/text.d.ts +6 -0
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"// Round 1 (contract §3 Form): the FORM native and the field protocol every\n// named control speaks. A Form collects every field beneath it that has a\n// `name` (a nested Form collects its own). Submit — a `submit` Button or\n// Enter in a single-line field — runs EVERY field's checks regardless of\n// `validateOn`; any failure: no `submit`, `invalid {errors}` fires, every\n// failing field shows ALL its messages (id `<field id>.error`, linked by\n// aria-describedby), `summary` also lists them above the fields, focus\n// moves to the first invalid field (document order) and `invalidFields` is\n// announced. `busy` refuses submits (the submit Button shows loading),\n// `disabled` makes every field inert (a disabled fieldset).\n\nimport { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\"\nimport { FormRegistry, fieldErrorsVisible, joinIds, validateOnDefault } from \"@exponential_app/eui/web\"\nimport { useSurfaceContext } from \"./context\"\nimport type { NativeProps } from \"./node-view\"\nimport { bool, failingChecks, str, useParts, type PartFn } from \"./natives/shared\"\n\nexport interface FieldHandle {\n name: string\n domId: string\n value: () => unknown\n errors: () => string[]\n focus: () => void\n element: () => HTMLElement | null\n}\n\nexport interface FormContextValue {\n register: (field: FieldHandle) => () => void\n /** Run the checks and fire `submit` or `invalid`. */\n submit: () => void\n /** A field's value changed (Form `change {name, value}`). */\n changed: (name: string, value: unknown) => void\n disabled: boolean\n busy: boolean\n /** Bumps on every refused submit: every field shows its errors. */\n attempts: number\n}\n\nexport const FormContext = createContext<FormContextValue | null>(null)\n\n/** Round 4 (VAPP-103, `submitClosesOverlay`): the NEAREST overlay around a\n * Form decides — a dismissible Dialog or Drawer provides its close, every\n * other overlay (a Popover, a non-dismissible Dialog = AlertDialog)\n * provides null; a valid Form submit beneath calls it right after\n * `submit` (the author never resets the bound `open` flag). */\nexport const CloseOnSubmitContext = createContext<(() => void) | null>(null)\n\nexport function useForm(): FormContextValue | null {\n return useContext(FormContext)\n}\n\nexport function FormNative({ node, props, rootProps, emit, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const closeOverlay = useContext(CloseOnSubmitContext)\n const registry = useRef<FormRegistry<FieldHandle> | null>(null)\n if (!registry.current) registry.current = new FormRegistry<FieldHandle>()\n const fields = registry.current\n const [attempts, setAttempts] = useState(0)\n const [summary, setSummary] = useState<{ name: string; message: string }[]>([])\n const disabled = bool(props.disabled)\n const busy = bool(props.busy)\n const busyRef = useRef(busy)\n busyRef.current = busy\n const register = useCallback((field: FieldHandle) => fields.register(field), [fields])\n const submit = useCallback(() => {\n if (busyRef.current) return\n const result = fields.check()\n if (!result.ok) {\n setAttempts((n) => n + 1)\n setSummary(result.errors)\n result.first?.focus()\n ctx.announce(ctx.t(`invalidFields`), `assertive`)\n void emit(`invalid`, { errors: result.errors })\n return\n }\n setSummary([])\n void emit(`submit`, { values: result.values })\n closeOverlay?.()\n }, [emit, ctx, closeOverlay, fields])\n const changed = useCallback((name: string, value: unknown) => void emit(`change`, { name, value }), [emit])\n const value = useMemo<FormContextValue>(() => ({ register, submit, changed, disabled, busy, attempts }), [register, submit, changed, disabled, busy, attempts])\n // Summary entries clear as their fields become valid.\n const live = fields.stillFailing(summary)\n return (\n <FormContext.Provider value={value}>\n <form\n {...(rootProps as Record<string, unknown>)}\n noValidate\n aria-busy={busy || undefined}\n aria-disabled={disabled || undefined}\n name={str(props.name) || undefined}\n onSubmit={(e) => {\n e.preventDefault()\n e.stopPropagation()\n submit()\n }}\n >\n {bool(props.summary) && live.length ? (\n <div {...(part(`summary`) as Record<string, string>)} role=\"alert\" id={`${node.id}.summary`}>\n <span className=\"xui-sr-only\">{ctx.t(`invalidFields`)}</span>\n <ul className=\"xui-form-summary-list\">\n {live.map((e, i) => (\n <li key={`${e.name}-${i}`}>{e.message}</li>\n ))}\n </ul>\n </div>\n ) : null}\n <fieldset className=\"xui-form-fields\" disabled={disabled}>\n {children}\n </fieldset>\n </form>\n </FormContext.Provider>\n )\n}\n\nexport interface FieldOptions {\n node: NativeProps[`node`]\n domId: string\n props: Record<string, unknown>\n /** The field's current (local) value. */\n value: unknown\n /** The element focus moves to when the field is the first invalid one. */\n focusRef: { readonly current: HTMLElement | null }\n}\n\nexport interface FieldState {\n /** The messages to SHOW now (all failing checks once validation shows). */\n errors: string[]\n invalid: boolean\n /** `<field id>.error` — put it in the control's aria-describedby. */\n errorId: string\n describedBy: string | undefined\n /** Report a blur / a change / an Enter submit. */\n touch: () => void\n change: (value: unknown) => void\n submit: () => void\n form: FormContextValue | null\n}\n\n/** A named control's validation + its registration with the nearest Form. */\nexport function useField({ node, domId, props, value, focusRef }: FieldOptions): FieldState {\n const form = useForm()\n const ctx = useSurfaceContext()\n const all = failingChecks(props.checks, ctx.t(`invalidValue`))\n const [touched, setTouched] = useState(false)\n const [dirty, setDirty] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const on = str(props.validateOn, validateOnDefault(node.component) ?? `blur`)\n const show = fieldErrorsVisible({ validateOn: on, submitted, attempts: form?.attempts ?? 0, dirty, touched })\n const latest = useRef({ value, all })\n latest.current = { value, all }\n const name = str(props.name)\n useEffect(() => {\n if (!form || !name) return\n return form.register({\n name,\n domId,\n value: () => latest.current.value,\n errors: () => latest.current.all,\n focus: () => focusRef.current?.focus(),\n element: () => focusRef.current,\n })\n }, [form, name, domId, focusRef])\n const errors = show ? all : []\n const errorId = `${domId}.error`\n return {\n errors,\n invalid: errors.length > 0,\n errorId,\n describedBy: errors.length ? errorId : undefined,\n touch: () => setTouched(true),\n change: (v: unknown) => {\n setDirty(true)\n if (form && name) form.changed(name, v)\n },\n submit: () => {\n setSubmitted(true)\n form?.submit()\n },\n form,\n }\n}\n\n/** Every failing message under a field, linked by `errorId`. */\nexport function FieldErrors({ part, field }: { part: PartFn; field: FieldState }) {\n if (!field.errors.length) return null\n return (\n <div {...(part(`error`) as Record<string, string>)} id={field.errorId} role=\"alert\">\n {field.errors.map((m, i) => (\n <span key={i} className=\"xui-field-error\">\n {m}\n </span>\n ))}\n </div>\n )\n}\n\nexport { joinIds }\n\nexport type { ReactNode }\n",
|
|
11
11
|
"// VAPP-87 + round 1: what every native painter shares — the part attributes\n// (class + recipe props + forced states, plus a part-level discriminator the\n// painter supplies: CodeBlock/token `kind`, Table/cell `align`, Table/row\n// `striped`), prop coercions, the label/description/error parts the form\n// controls repeat, and the built-in glyphs of `core.catalog.json`\n// `builtinIcons` (never a hardcoded glyph for an owned part).\n\nimport { useContext, useMemo, type ReactNode } from \"react\"\nimport { displayString, nativeRecipeProps } from \"@exponential_app/eui\"\nimport { arr, bool, builtinIconName, failingCheck, failingChecks, formatFileSize, num, objects, phrase, str } from \"@exponential_app/eui/web\"\nimport type { UiNode } from \"@exponential_app/eui\"\nimport { InstanceContext, useSurfaceContext } from \"../context\"\nimport { IconGlyph } from \"../icons\"\n// FEED-128: `PLACED` (round 2 §6, the placed-part table) lives in the web layer, shared with Solid.\nimport { PLACED, partClass, propAttribute } from \"@exponential_app/eui/web\"\n\nexport type Attrs = Record<string, unknown>\n\n// FEED-128: the pure helpers live in `@exponential_app/eui/web` (coerce.ts).\nexport { str, num, bool, arr, objects, phrase, formatFileSize, failingChecks, failingCheck, builtinIconName }\n\nexport type PartFn = ((name: string, ...states: (string | false | undefined | null)[]) => Attrs) & {\n /** The same with part-level recipe props (`{kind: \"keyword\"}`). */\n with: (name: string, extra: Record<string, unknown>, ...states: (string | false | undefined | null)[]) => Attrs\n /** A PER-ITEM placed part (round 2 §6): `data-xui-id=\"<id>.<part>.<item>\"`\n * (`item` = an index or a row key: `tab.1`, `cell.alice.0`). */\n at: (name: string, item: string | number, ...states: (string | false | undefined | null)[]) => Attrs\n /** `at` with part-level recipe props. */\n atWith: (name: string, item: string | number, extra: Record<string, unknown>, ...states: (string | false | undefined | null)[]) => Attrs\n /** The painted id of the node (`<id><instance suffix>`). */\n domId: string\n}\n\n/** `part(name, …states)` → the attributes of one part element of `node`. */\nexport function useParts(node: UiNode, props: Record<string, unknown>): PartFn {\n const ctx = useSurfaceContext()\n const instance = useContext(InstanceContext)\n return useMemo(() => {\n const recipe = nativeRecipeProps(node.component, props, ctx.extensionDefs)\n const recipeAttrs: Attrs = {}\n for (const [k, v] of Object.entries(recipe)) if (typeof v !== `object`) recipeAttrs[propAttribute(false, k)] = String(v)\n const scope = ctx.compiled.scope\n const forcedStates = ctx.states\n const domId = `${node.id}${instance}`\n const placed = PLACED[node.component]\n const build = (name: string, extra: Record<string, unknown> | null, states: (string | false | undefined | null)[], id: string | null): Attrs => {\n const all = [...forcedStates, ...states.filter((s): s is string => Boolean(s))]\n const own: Attrs = {}\n if (extra) for (const [k, v] of Object.entries(extra)) if (v !== undefined && v !== null) own[propAttribute(false, k)] = String(v)\n return {\n className: `${scope} ${partClass(node.component, name)}`,\n \"data-xui-part\": `${node.component}/${name}`,\n ...(id !== null ? { \"data-xui-id\": id } : {}),\n ...recipeAttrs,\n ...own,\n ...(all.length ? { \"data-xs\": all.join(` `) } : {}),\n }\n }\n const single = (name: string) => (placed?.includes(name) ? `${domId}.${name}` : null)\n const fn = ((name: string, ...states: (string | false | undefined | null)[]) => build(name, null, states, single(name))) as PartFn\n fn.with = (name, extra, ...states) => build(name, extra, states, single(name))\n fn.at = (name, item, ...states) => build(name, null, states, `${domId}.${name}.${item}`)\n fn.atWith = (name, item, extra, ...states) => build(name, extra, states, `${domId}.${name}.${item}`)\n fn.domId = domId\n return fn\n }, [node.component, node.id, instance, props, ctx.compiled.scope, ctx.states, ctx.extensionDefs])\n}\n\nexport function TextPart({ part, text, as: Tag = `span`, id, htmlFor }: { part: Attrs; text: unknown; as?: `span` | `label` | `div` | `p`; id?: string; htmlFor?: string }) {\n // Round 2 §3: a bound number shows `412`, a boolean `true`; objects nothing.\n const s = displayString(text)\n if (!s) return null\n const attrs = part as Record<string, string>\n if (Tag === `label`) return <label {...attrs} id={id} htmlFor={htmlFor}>{s}</label>\n if (Tag === `div`) return <div {...attrs} id={id}>{s}</div>\n if (Tag === `p`) return <p {...attrs} id={id}>{s}</p>\n return <span {...attrs} id={id}>{s}</span>\n}\n\nexport function Hidden({ children }: { children: ReactNode }) {\n return <span className=\"xui-sr-only\">{children}</span>\n}\n\n/** The glyph of an owned part (`CodeBlock.copy`, `Table.sortIcon.asc`),\n * through the host's registry first, then the renderer's fallbacks. */\nexport function BuiltinIcon({ slot, className, size }: { slot: string; className?: string; size?: number }) {\n const ctx = useSurfaceContext()\n return <IconGlyph icons={ctx.host.icons} name={builtinIconName(slot)} className={className} width={size} height={size} data-slot={slot} />\n}\n",
|
|
12
12
|
"// VAPP-87 + round 1: icons. The catalog's `Icon` names come from the host's\n// registry (`host.icons`, the Exponential app passes its generated Lucide\n// map); the renderer's OWN parts draw the glyph `core.catalog.json`\n// `builtinIcons` names (`BuiltinIcon` in natives/shared.tsx), resolved\n// through the host first and, without a registry, through the fallbacks\n// below: the SAME Lucide glyphs `packages/icons/icons.json` maps those\n// concept names to, so a host without a registry still gets working,\n// matching controls. An unknown name paints the placeholder glyph and names\n// itself in `data-icon`.\n\nimport type { ComponentType, SVGProps } from \"react\"\nimport {\n ArrowLeft,\n AudioLines,\n Calendar,\n Check,\n CheckCheck,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ChevronsUpDown,\n CircleCheck,\n CircleDashed,\n CircleStop,\n CircleX,\n Clock,\n Copy,\n Ear,\n Ellipsis,\n File,\n Hand,\n Image as ImageGlyph,\n Info,\n LoaderCircle,\n Maximize2,\n Menu,\n Mic,\n MicOff,\n Minus,\n Paperclip,\n PhoneIncoming,\n PhoneOff,\n Play,\n Pause,\n Plus,\n QrCode,\n ScanLine,\n Search,\n Send,\n Square,\n Star,\n TriangleAlert,\n Upload,\n Volume2,\n X,\n createLucideIcon,\n} from \"lucide-react\"\nimport type { IconNode } from \"lucide-react\"\nimport { CUSTOM_ICON_NODES, lookupIcon } from \"@exponential_app/eui/web\"\nimport type { IconComponent, IconMap } from \"./host\"\n\n/** The renderer's own chrome glyphs that are NOT catalog part glyphs (the\n * busy spinner, media play, the field and picker adornments). */\nexport const CHROME = {\n check: Check,\n chevronDown: ChevronDown,\n chevronUp: ChevronUp,\n chevronLeft: ChevronLeft,\n chevronRight: ChevronRight,\n close: X,\n search: Search,\n calendar: Calendar,\n send: Send,\n stop: Square,\n play: Play,\n pause: Pause,\n attach: Paperclip,\n spinner: LoaderCircle,\n placeholder: CircleDashed,\n /** A ZoomableImage whose picture has not loaded (pending or failed). */\n image: ImageGlyph,\n} as const\n\n/** icons.json concept / registry names → the Lucide glyph icons.json gives\n * them (`semantic`), for every name the catalog's `builtinIcons` and the\n * core macros draw. */\nexport const FALLBACK_ICONS: Record<string, IconComponent> = {\n \"ui-check\": Check,\n \"ui-chevron-down\": ChevronDown,\n \"ui-chevron-up\": ChevronUp,\n \"ui-chevron-left\": ChevronLeft,\n \"ui-chevron-right\": ChevronRight,\n \"ui-selector\": ChevronsUpDown,\n \"ui-close\": X,\n \"ui-copy\": Copy,\n \"ui-file\": File,\n \"ui-minus\": Minus,\n \"ui-add\": Plus,\n \"ui-clock\": Clock,\n \"ui-info\": Info,\n \"ui-success\": CircleCheck,\n \"ui-warning\": TriangleAlert,\n \"ui-error\": CircleX,\n \"ui-stop\": CircleStop,\n \"ui-attach\": Paperclip,\n \"ui-send\": Send,\n \"ui-back\": ArrowLeft,\n \"ui-more\": Ellipsis,\n \"ui-menu\": Menu,\n \"ui-search\": Search,\n \"ui-icon-placeholder\": CircleDashed,\n // VAPP-162: the round-5 pieces (MessageBubble, CallSurface, QrScanner, the hold button).\n \"ui-read\": CheckCheck,\n \"ui-scan\": ScanLine,\n \"ui-qr-code\": QrCode,\n \"ui-hold\": Hand,\n // EXP-1586: the ZoomableImage pill's fit button.\n \"ui-fullscreen\": Maximize2,\n \"voice-level\": AudioLines,\n \"call-mute\": Mic,\n \"call-unmute\": MicOff,\n \"call-speaker\": Volume2,\n \"call-speaker-off\": Ear,\n \"call-end\": PhoneOff,\n \"call-incoming\": PhoneIncoming,\n calendar: Calendar,\n search: Search,\n upload: Upload,\n star: Star,\n // VAPP-163: the icons.json names a Lucide registry has no glyph for (the\n // OS marks, the progress pies), so an `Icon` paints them without a host map.\n ...Object.fromEntries(Object.entries(CUSTOM_ICON_NODES).map(([name, node]) => [name, createLucideIcon(name, node as IconNode)])),\n}\n\nexport function resolveIcon(icons: IconMap | undefined, name: string): IconComponent | undefined {\n return lookupIcon(icons, name, FALLBACK_ICONS)\n}\n\nexport function IconGlyph({ icons, name, size, className, ...rest }: { icons?: IconMap; name: string; size?: number; className?: string } & SVGProps<SVGSVGElement>) {\n const resolved = resolveIcon(icons, name)\n const Comp: ComponentType<SVGProps<SVGSVGElement> & { size?: number | string }> = resolved ?? CircleDashed\n return <Comp aria-hidden=\"true\" data-icon={name} data-icon-missing={resolved ? undefined : `true`} size={size} className={className} {...rest} />\n}\n",
|
|
13
|
-
"// VAPP-87 + round 1: Button, Link, Toggle. A Button is OPTIMISTIC: it goes\n// inert (`aria-busy`, presses refused) the moment it is pressed and stays so until the\n// host's `onAction` promise settles. A `submit` Button submits the enclosing\n// Form (and shows loading while the Form is `busy`).\n//\n// EXP-1259 (feedback-states.json `pending`): loading refuses presses at\n// once but SHOWS only after `PENDING_DELAY_MS` (a fast action never\n// flashes): then the icon slot is the spinner and the label `pendingLabel`,\n// at no less than the idle width.\n\nimport { useEffect, useLayoutEffect, useRef, useState, type KeyboardEvent, type MouseEvent, type PointerEvent } from \"react\"\nimport { PENDING_DELAY_MS } from \"@exponential_app/eui\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\nimport { useSurfaceContext } from \"../context\"\nimport { useForm } from \"../form\"\nimport { CHROME, IconGlyph } from \"../icons\"\nimport { useBoundState } from \"./bound\"\nimport { ButtonHold, linkHref } from \"@exponential_app/eui/web\"\nimport type { NativeProps } from \"../node-view\"\nimport { bool, str, useParts } from \"./shared\"\n\nexport function usePending() {\n const [pending, setPending] = useState(false)\n const mounted = useRef(true)\n useEffect(() => {\n mounted.current = true\n return () => {\n mounted.current = false\n }\n }, [])\n const track = (result: void | Promise<void>) => {\n if (result && typeof (result as Promise<void>).then === `function`) {\n setPending(true)\n ;(result as Promise<void>).then(\n () => mounted.current && setPending(false),\n () => mounted.current && setPending(false)\n )\n }\n }\n return { pending, track }\n}\n\nexport function ButtonNative({ node, props, rootProps, emit, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const form = useForm()\n const submit = bool(props.submit) && form !== null\n const { pending, track } = usePending()\n const label = str(props.label)\n const icon = str(props.icon)\n const loading = bool(props.loading) || pending || (submit && form.busy)\n // EXP-1556: loading refuses presses but keeps the idle look (the spinner\n // shows it); only `disabled` dims, as on desktop, iOS and Android.\n const disabled = bool(props.disabled)\n const inert = disabled || loading\n const iconOnly = props.size === `icon`\n const Spinner = CHROME.spinner\n const hasChild = node.children.length > 0\n const shown = usePendingShown(loading)\n const pendingLabel = str(props.pendingLabel)\n const shownLabel = shown && pendingLabel ? pendingLabel : label\n // The idle width is the pending state's minimum.\n const ref = useRef<HTMLButtonElement | null>(null)\n const idleWidth = useRef<number | null>(null)\n // The width the pending label keeps: read while loading but not yet\n // shown (the idle label still painted), never on an idle render (a read\n // there forces a layout in every commit).\n useLayoutEffect(() => {\n if (loading && !shown && ref.current) idleWidth.current = ref.current.offsetWidth || null\n })\n const rootStyle = (rootProps as { style?: Record<string, unknown> }).style\n // VAPP-162 (round-5 contract §9): `hold` = holdStart/holdEnd/holdCancel, never `press`.\n const hold = bool(props.hold)\n const { held, handlers } = useHold(hold, inert, emit)\n const holdingLabel = str(props.holdingLabel)\n const paintedLabel = held && holdingLabel ? holdingLabel : shownLabel\n const states = [...(ctx.states ?? []), disabled ? `disabled` : ``, pending ? `pending` : ``, held ? `pressed` : ``].filter(Boolean).join(` `)\n return (\n <button\n {...(rootProps as Record<string, unknown>)}\n ref={ref}\n style={shown && idleWidth.current ? { ...rootStyle, minWidth: idleWidth.current } : rootStyle}\n type=\"button\"\n disabled={disabled}\n aria-busy={loading || undefined}\n data-pending={shown ? `true` : undefined}\n // VAPP-162: an author/macro label (`$a11y`, a CallSurface round button) survives: Solid keeps the spread's.\n aria-label={iconOnly && label ? label : ((rootProps as Record<string, unknown>)[`aria-label`] as string | undefined)}\n data-xs={states || undefined}\n data-submit={submit ? `true` : undefined}\n data-hold={hold ? `true` : undefined}\n {...(hold ? handlers : {})}\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n if (hold || inert) return\n track(emit(`press`))\n if (submit) form.submit()\n }}\n >\n {shown ? (\n <span {...(part(`spinner`) as Record<string, string>)}>\n <Spinner aria-hidden=\"true\" />\n </span>\n ) : icon ? (\n <span {...(part(`icon`) as Record<string, string>)}>\n <IconGlyph icons={ctx.host.icons} name={icon} />\n </span>\n ) : null}\n {hasChild ? children : !iconOnly && paintedLabel ? <span {...(part(`label`) as Record<string, string>)}>{paintedLabel}</span> : null}\n </button>\n )\n}\n\n/** THE hold machine (`@exponential_app/eui/web` ButtonHold) wired to a\n * button's DOM events: the pointer is captured on down (a long-press or a\n * scroll never steals it), the slop is measured against the button's box,\n * Space/Enter hold from key down to key up, Escape and blur cancel. */\nfunction useHold(enabled: boolean, disabled: boolean, emit: NativeProps[`emit`]) {\n const [held, setHeld] = useState(false)\n const emitRef = useRef(emit)\n emitRef.current = emit\n const disabledRef = useRef(disabled)\n disabledRef.current = disabled\n const machine = useRef<ButtonHold | null>(null)\n machine.current ??= new ButtonHold((event) => void emitRef.current(event), setHeld, () => disabledRef.current)\n useEffect(() => {\n if (disabled || !enabled) machine.current?.reset()\n }, [disabled, enabled])\n useEffect(() => () => machine.current?.reset(), [])\n const m = machine.current\n const rect = (el: HTMLElement) => el.getBoundingClientRect()\n const handlers = {\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (e.button !== undefined && e.button !== 0) return\n if (!m.pointerDown(e.pointerId ?? null)) return\n try {\n e.currentTarget.setPointerCapture?.(e.pointerId)\n } catch {\n // A synthetic pointer (tests) has no capture.\n }\n },\n onPointerMove: (e: PointerEvent<HTMLButtonElement>) => m.pointerMove(rect(e.currentTarget), e.clientX ?? 0, e.clientY ?? 0, e.pointerId ?? null),\n onPointerUp: (e: PointerEvent<HTMLButtonElement>) => m.pointerUp(rect(e.currentTarget), e.clientX ?? 0, e.clientY ?? 0, e.pointerId ?? null),\n onPointerCancel: (e: PointerEvent<HTMLButtonElement>) => m.pointerCancel(e.pointerId ?? null),\n onKeyDown: (e: KeyboardEvent<HTMLButtonElement>) => {\n if (m.keyDown(e.key, e.repeat)) e.preventDefault()\n },\n onKeyUp: (e: KeyboardEvent<HTMLButtonElement>) => {\n if (m.keyUp(e.key)) e.preventDefault()\n },\n onBlur: () => m.blur(),\n onContextMenu: (e: MouseEvent) => e.preventDefault(),\n }\n return { held: enabled && held, handlers }\n}\n\n/** `loading` held for `PENDING_DELAY_MS` (false again at once when it ends). */\nexport function usePendingShown(loading: boolean): boolean {\n const [shown, setShown] = useState(false)\n useEffect(() => {\n if (!loading) {\n setShown(false)\n return\n }\n const t = setTimeout(() => setShown(true), PENDING_DELAY_MS)\n return () => clearTimeout(t)\n }, [loading])\n return loading && shown\n}\n\nexport function LinkNative({ props, rootProps, emit }: NativeProps) {\n const ctx = useSurfaceContext()\n const raw = str(props.href)\n // VAPP-103: the href passes the URL policy; a denied one paints as text.\n const href = linkHref(ctx.host, raw)\n const external = bool(props.external)\n const label = str(props.label) || raw\n return (\n <a\n {...(rootProps as Record<string, unknown>)}\n href={href}\n data-denied={raw && !href ? `` : undefined}\n target={href && external ? `_blank` : undefined}\n rel={href && external ? `noreferrer noopener` : undefined}\n onClick={(e: MouseEvent) => {\n const handled = emit(`press`)\n if (!href) e.preventDefault()\n else if (!external && handled !== undefined) e.preventDefault()\n else if (ctx.host.openUrl) {\n // A host opener takes every allowed href, external ones too (a\n // new tab is only the fallback without one).\n e.preventDefault()\n ctx.openUrl(href)\n }\n }}\n >\n {label}\n </a>\n )\n}\n\nexport function ToggleNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [pressed, setPressed] = useBoundState(node, scope, `pressed`, bool(props.pressed))\n const icon = str(props.icon)\n const label = str(props.label)\n return (\n <TogglePrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n pressed={pressed}\n onPressedChange={(next) => {\n setPressed(next)\n void emit(`change`, { pressed: next }, { pressed: next })\n }}\n aria-label={icon && label ? label : ((rootProps as Record<string, unknown>)[`aria-label`] as string | undefined)}\n >\n {icon ? (\n <span {...(part(`icon`) as Record<string, string>)}>\n <IconGlyph icons={ctx.host.icons} name={icon} />\n </span>\n ) : null}\n {label ? <span {...(part(`label`) as Record<string, string>)}>{label}</span> : null}\n </TogglePrimitive.Root>\n )\n}\n",
|
|
13
|
+
"// VAPP-87 + round 1: Button, Link, Toggle. A Button is OPTIMISTIC: it goes\n// inert (`aria-busy`, presses refused) the moment it is pressed and stays so until the\n// host's `onAction` promise settles. A `submit` Button submits the enclosing\n// Form (and shows loading while the Form is `busy`).\n//\n// EXP-1259 (feedback-states.json `pending`): loading refuses presses at\n// once but SHOWS only after `PENDING_DELAY_MS` (a fast action never\n// flashes): then the icon slot is the spinner and the label `pendingLabel`,\n// at no less than the idle width.\n\nimport { useEffect, useLayoutEffect, useRef, useState, type KeyboardEvent, type MouseEvent, type PointerEvent } from \"react\"\nimport { PENDING_DELAY_MS } from \"@exponential_app/eui\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\nimport { useSurfaceContext } from \"../context\"\nimport { useForm } from \"../form\"\nimport { CHROME, IconGlyph } from \"../icons\"\nimport { useBoundState } from \"./bound\"\nimport { ButtonHold, linkHref } from \"@exponential_app/eui/web\"\nimport type { NativeProps } from \"../node-view\"\nimport { bool, str, useParts } from \"./shared\"\n\nexport function usePending() {\n const [pending, setPending] = useState(false)\n const mounted = useRef(true)\n useEffect(() => {\n mounted.current = true\n return () => {\n mounted.current = false\n }\n }, [])\n const track = (result: void | Promise<void>) => {\n if (result && typeof (result as Promise<void>).then === `function`) {\n setPending(true)\n ;(result as Promise<void>).then(\n () => mounted.current && setPending(false),\n () => mounted.current && setPending(false)\n )\n }\n }\n return { pending, track }\n}\n\nexport function ButtonNative({ node, props, rootProps, emit, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const form = useForm()\n const submit = bool(props.submit) && form !== null\n const { pending, track } = usePending()\n const label = str(props.label)\n const icon = str(props.icon)\n const loading = bool(props.loading) || pending || (submit && form.busy)\n // EXP-1556: loading refuses presses but keeps the idle look (the spinner\n // shows it); only `disabled` dims, as on desktop, iOS and Android.\n const disabled = bool(props.disabled)\n const inert = disabled || loading\n const iconOnly = props.size === `icon`\n const Spinner = CHROME.spinner\n const hasChild = node.children.length > 0\n const shown = usePendingShown(loading)\n const pendingLabel = str(props.pendingLabel)\n const shownLabel = shown && pendingLabel ? pendingLabel : label\n // The idle width is the pending state's minimum.\n const ref = useRef<HTMLButtonElement | null>(null)\n const idleWidth = useRef<number | null>(null)\n // The width the pending label keeps: read while loading but not yet\n // shown (the idle label still painted), never on an idle render (a read\n // there forces a layout in every commit).\n useLayoutEffect(() => {\n if (loading && !shown && ref.current) idleWidth.current = ref.current.offsetWidth || null\n })\n const rootStyle = (rootProps as { style?: Record<string, unknown> }).style\n // VAPP-162 (round-5 contract §9): `hold` = holdStart/holdEnd/holdCancel, never `press`.\n const hold = bool(props.hold)\n const { held, handlers } = useHold(hold, inert, emit)\n const holdingLabel = str(props.holdingLabel)\n const paintedLabel = held && holdingLabel ? holdingLabel : shownLabel\n const states = [...(ctx.states ?? []), disabled ? `disabled` : ``, pending ? `pending` : ``, held ? `pressed` : ``].filter(Boolean).join(` `)\n return (\n <button\n {...(rootProps as Record<string, unknown>)}\n ref={ref}\n style={shown && idleWidth.current ? { ...rootStyle, minWidth: idleWidth.current } : rootStyle}\n type=\"button\"\n disabled={disabled}\n aria-busy={loading || undefined}\n data-pending={shown ? `true` : undefined}\n // VAPP-162: an author/macro label (`$a11y`, a CallSurface round button) survives: Solid keeps the spread's.\n aria-label={iconOnly && label ? label : ((rootProps as Record<string, unknown>)[`aria-label`] as string | undefined)}\n data-xs={states || undefined}\n data-submit={submit ? `true` : undefined}\n data-hold={hold ? `true` : undefined}\n {...(hold ? handlers : {})}\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n if (hold || inert) return\n // #EXP-1674: `href` opens like a Link's (the policy decides).\n if (str(props.href)) ctx.openUrl(str(props.href))\n track(emit(`press`))\n if (submit) form.submit()\n }}\n >\n {shown ? (\n <span {...(part(`spinner`) as Record<string, string>)}>\n <Spinner aria-hidden=\"true\" />\n </span>\n ) : icon ? (\n <span {...(part(`icon`) as Record<string, string>)}>\n <IconGlyph icons={ctx.host.icons} name={icon} />\n </span>\n ) : null}\n {hasChild ? children : !iconOnly && paintedLabel ? <span {...(part(`label`) as Record<string, string>)}>{paintedLabel}</span> : null}\n </button>\n )\n}\n\n/** THE hold machine (`@exponential_app/eui/web` ButtonHold) wired to a\n * button's DOM events: the pointer is captured on down (a long-press or a\n * scroll never steals it), the slop is measured against the button's box,\n * Space/Enter hold from key down to key up, Escape and blur cancel. */\nfunction useHold(enabled: boolean, disabled: boolean, emit: NativeProps[`emit`]) {\n const [held, setHeld] = useState(false)\n const emitRef = useRef(emit)\n emitRef.current = emit\n const disabledRef = useRef(disabled)\n disabledRef.current = disabled\n const machine = useRef<ButtonHold | null>(null)\n machine.current ??= new ButtonHold((event) => void emitRef.current(event), setHeld, () => disabledRef.current)\n useEffect(() => {\n if (disabled || !enabled) machine.current?.reset()\n }, [disabled, enabled])\n useEffect(() => () => machine.current?.reset(), [])\n const m = machine.current\n const rect = (el: HTMLElement) => el.getBoundingClientRect()\n const handlers = {\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (e.button !== undefined && e.button !== 0) return\n if (!m.pointerDown(e.pointerId ?? null)) return\n try {\n e.currentTarget.setPointerCapture?.(e.pointerId)\n } catch {\n // A synthetic pointer (tests) has no capture.\n }\n },\n onPointerMove: (e: PointerEvent<HTMLButtonElement>) => m.pointerMove(rect(e.currentTarget), e.clientX ?? 0, e.clientY ?? 0, e.pointerId ?? null),\n onPointerUp: (e: PointerEvent<HTMLButtonElement>) => m.pointerUp(rect(e.currentTarget), e.clientX ?? 0, e.clientY ?? 0, e.pointerId ?? null),\n onPointerCancel: (e: PointerEvent<HTMLButtonElement>) => m.pointerCancel(e.pointerId ?? null),\n onKeyDown: (e: KeyboardEvent<HTMLButtonElement>) => {\n if (m.keyDown(e.key, e.repeat)) e.preventDefault()\n },\n onKeyUp: (e: KeyboardEvent<HTMLButtonElement>) => {\n if (m.keyUp(e.key)) e.preventDefault()\n },\n onBlur: () => m.blur(),\n onContextMenu: (e: MouseEvent) => e.preventDefault(),\n }\n return { held: enabled && held, handlers }\n}\n\n/** `loading` held for `PENDING_DELAY_MS` (false again at once when it ends). */\nexport function usePendingShown(loading: boolean): boolean {\n const [shown, setShown] = useState(false)\n useEffect(() => {\n if (!loading) {\n setShown(false)\n return\n }\n const t = setTimeout(() => setShown(true), PENDING_DELAY_MS)\n return () => clearTimeout(t)\n }, [loading])\n return loading && shown\n}\n\nexport function LinkNative({ props, rootProps, emit }: NativeProps) {\n const ctx = useSurfaceContext()\n const raw = str(props.href)\n // VAPP-103: the href passes the URL policy; a denied one paints as text.\n const href = linkHref(ctx.host, raw)\n const external = bool(props.external)\n const label = str(props.label) || raw\n return (\n <a\n {...(rootProps as Record<string, unknown>)}\n href={href}\n data-denied={raw && !href ? `` : undefined}\n target={href && external ? `_blank` : undefined}\n rel={href && external ? `noreferrer noopener` : undefined}\n onClick={(e: MouseEvent) => {\n const handled = emit(`press`)\n if (!href) e.preventDefault()\n else if (!external && handled !== undefined) e.preventDefault()\n else if (ctx.host.openUrl) {\n // A host opener takes every allowed href, external ones too (a\n // new tab is only the fallback without one).\n e.preventDefault()\n ctx.openUrl(href)\n }\n }}\n >\n {label}\n </a>\n )\n}\n\nexport function ToggleNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const [pressed, setPressed] = useBoundState(node, scope, `pressed`, bool(props.pressed))\n const icon = str(props.icon)\n const label = str(props.label)\n return (\n <TogglePrimitive.Root\n {...(rootProps as Record<string, unknown>)}\n pressed={pressed}\n onPressedChange={(next) => {\n setPressed(next)\n void emit(`change`, { pressed: next }, { pressed: next })\n }}\n aria-label={icon && label ? label : ((rootProps as Record<string, unknown>)[`aria-label`] as string | undefined)}\n >\n {icon ? (\n <span {...(part(`icon`) as Record<string, string>)}>\n <IconGlyph icons={ctx.host.icons} name={icon} />\n </span>\n ) : null}\n {label ? <span {...(part(`label`) as Record<string, string>)}>{label}</span> : null}\n </TogglePrimitive.Root>\n )\n}\n",
|
|
14
14
|
"// Round 1 (contract §1, \"Natives with bindable state\"): when a native's\n// state prop is a DataBinding, the renderer writes the user's change to that\n// path itself AND fires `change`. `useBoundState` is that rule for every\n// controlled native: a local mirror (a press shows at once), the host's /\n// data model's value wins whenever it changes, the write goes to the bound\n// path (relative paths against the node's scope).\n\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useSurfaceContext } from \"../context\"\nimport { boundPath } from \"@exponential_app/eui/web\"\nimport type { NativeProps } from \"../node-view\"\n\nexport function useBoundState<T>(node: NativeProps[`node`], scope: string, prop: string, external: T, key: (v: T) => string = (v) => JSON.stringify(v) ?? ``): [T, (next: T, written?: unknown) => void, string | undefined] {\n const ctx = useSurfaceContext()\n const path = boundPath(node.props, prop, scope)\n const [value, setValue] = useState<T>(external)\n const externalKey = key(external)\n const last = useRef(externalKey)\n useEffect(() => {\n if (last.current === externalKey) return\n last.current = externalKey\n setValue(external)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [externalKey])\n const set = useCallback(\n // `written` = the value the bound path receives when it differs from\n // the local shape (a multiple Select bound to a string: the list shows,\n // the comma-joined string is written).\n (next: T, written: unknown = next) => {\n setValue(next)\n last.current = key(next)\n if (path) ctx.setData(path, written)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [path, ctx.setData]\n )\n return [value, set, path]\n}\n",
|
|
15
15
|
"// Round 1 (contract §3 Chart, a11y.json Chart): kinds bar, stackedBar,\n// line, area, pie, donut and sparkline. The width is the BOX's (measured,\n// no fixed viewBox, so text is never stretched); the numbers every painter\n// shares come from `@exponential_app/eui` (`chartExtent`, `niceTicks` for the\n// axis ticks and grid lines, `seriesColor` = the tone else\n// `$color.chart1..8` wrapping, `DONUT_HOLE`). Pie and donut draw one RING\n// per series (slices = categories). The legend shows with 2+ series or\n// slices; the tooltip part follows hover and, with the chart focused,\n// ArrowLeft/ArrowRight between categories; screen readers get a summary\n// label plus a data table. In RTL the cartesian kinds MIRROR (the first\n// category on the right, the value axis on the right), so ArrowLeft/Right\n// keep moving the highlight the way the arrow points; pie and donut do not\n// mirror.\n\nimport { useId, useMemo, useRef, useState, type KeyboardEvent, type ReactNode } from \"react\"\nimport { chartExtent, chartSummaryParams, niceTicks, seriesColor, DONUT_HOLE } from \"@exponential_app/eui\"\nimport { useSurfaceContext } from \"../context\"\nimport type { NativeProps } from \"../node-view\"\nimport { mergeStyle } from \"../node-view\"\nimport { useElementSize } from \"../platform\"\nimport { tokenVar, visualScale } from \"@exponential_app/eui/web\"\nimport { arr, bool, num, str, useParts, objects } from \"./shared\"\n\ninterface Series {\n name: string\n values: number[]\n tone?: string\n}\n\nconst colorVar = (i: number, tone?: string) => tokenVar(seriesColor(i, tone)) ?? `currentColor`\nconst AXIS_FONT = 11\n\nexport function ChartNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const id = useId()\n const kind = str(props.kind, `bar`)\n const sparkline = kind === `sparkline`\n const round = kind === `pie` || kind === `donut`\n const series = objects<Series>(props.series).map((s) => ({ name: str(s?.name), tone: s?.tone, values: arr<unknown>(s?.values).map((v) => num(v, NaN)) }))\n const longest = Math.max(0, ...series.map((s) => s.values.length))\n const categories = arr<unknown>(props.categories).map(String)\n const n = Math.max(categories.length, longest)\n // Round 2 §7: `height` = the WHOLE chart box (title, legend and axes\n // inside); the plot takes what is left of it.\n const boxHeight = Math.max(16, num(props.height, sparkline ? 24 : 200))\n const showAxes = !sparkline && !round && props.showAxes !== false\n const showGrid = !sparkline && !round && props.showGrid !== false\n const showValues = bool(props.showValues)\n const [box, setBox] = useState<HTMLDivElement | null>(null)\n const size = useElementSize(box, 320)\n const width = Math.max(40, size.width || 320)\n const height = Math.max(16, size.measured && size.height > 0 ? size.height : boxHeight)\n // Ticks, value labels, the tooltip and the summary format through the\n // surface Formatter (round 2 §3).\n const fmt = useMemo(() => ({ format: (v: number) => ctx.formatter.number(v) }), [ctx.formatter])\n const [active, setActive] = useState<number | null>(null)\n const plotRef = useRef<SVGSVGElement>(null)\n\n const ext = chartExtent(kind, series, props.min === undefined ? undefined : num(props.min), props.max === undefined ? undefined : num(props.max))\n const ticks = sparkline || round ? { min: ext.min, max: ext.max, step: 0, ticks: [] as number[] } : niceTicks(ext.min, ext.max, 5)\n const lo = ticks.min\n const hi = ticks.max === ticks.min ? ticks.min + 1 : ticks.max\n const tickText = ticks.ticks.map((t) => fmt.format(t))\n const yLabel = str(props.yLabel)\n const xLabel = str(props.xLabel)\n const pad = {\n l: (showAxes ? Math.max(...tickText.map((t) => t.length), 1) * AXIS_FONT * 0.62 + 8 : sparkline ? 1 : 4) + (yLabel ? 16 : 0),\n r: sparkline ? 1 : 8,\n t: sparkline ? 2 : showValues ? 16 : 8,\n b: (showAxes ? AXIS_FONT + 10 : sparkline ? 2 : 4) + (xLabel ? 16 : 0),\n }\n const innerW = Math.max(1, width - pad.l - pad.r)\n const innerH = Math.max(1, height - pad.t - pad.b)\n const y = (v: number) => pad.t + innerH - ((Math.min(hi, Math.max(lo, v)) - lo) / (hi - lo)) * innerH\n const slot = innerW / Math.max(1, n)\n const cx = (i: number) => (sparkline ? pad.l + (n <= 1 ? innerW / 2 : (innerW * i) / (n - 1)) : pad.l + slot * (i + 0.5))\n const zero = y(Math.max(lo, Math.min(hi, 0)))\n // The x mirror of the cartesian kinds in RTL (geometry is laid out LTR,\n // then every x goes through `mx`).\n const rtl = ctx.direction === `rtl` && !round\n const mx = (x: number) => (rtl ? width - x : x)\n const px = (i: number) => mx(cx(i))\n\n let body: ReactNode = null\n let values: ReactNode = null\n if (round) {\n const R = Math.min(innerW, innerH) / 2\n const ox = pad.l + innerW / 2\n const oy = pad.t + innerH / 2\n const inner = kind === `donut` ? R * DONUT_HOLE : 0\n const ring = (R - inner) / Math.max(1, series.length)\n const arcs: ReactNode[] = []\n const labels: ReactNode[] = []\n series.forEach((s, si) => {\n const r0 = inner + ring * si\n const r1 = r0 + ring\n const total = s.values.reduce((a, b) => a + (Number.isFinite(b) && b > 0 ? b : 0), 0) || 1\n let a0 = -Math.PI / 2\n s.values.forEach((v, i) => {\n const share = (Number.isFinite(v) && v > 0 ? v : 0) / total\n const a1 = a0 + share * 2 * Math.PI\n if (share > 0) {\n const large = a1 - a0 > Math.PI ? 1 : 0\n const p = (r: number, a: number) => `${ox + r * Math.cos(a)},${oy + r * Math.sin(a)}`\n const full = share >= 0.9999\n const d = full\n ? `M${ox - r1},${oy} A${r1},${r1} 0 1 1 ${ox + r1},${oy} A${r1},${r1} 0 1 1 ${ox - r1},${oy} ${r0 > 0 ? `M${ox - r0},${oy} A${r0},${r0} 0 1 0 ${ox + r0},${oy} A${r0},${r0} 0 1 0 ${ox - r0},${oy}` : ``}Z`\n : r0 > 0\n ? `M${p(r1, a0)} A${r1},${r1} 0 ${large} 1 ${p(r1, a1)} L${p(r0, a1)} A${r0},${r0} 0 ${large} 0 ${p(r0, a0)} Z`\n : `M${ox},${oy} L${p(r1, a0)} A${r1},${r1} 0 ${large} 1 ${p(r1, a1)} Z`\n arcs.push(<path key={`${si}-${i}`} d={d} fill={colorVar(i)} fillRule=\"evenodd\" stroke=\"var(--xui-color-background)\" strokeWidth={1} data-category={i} data-active={active === i ? `` : undefined} opacity={active === null || active === i ? 1 : 0.55} onPointerEnter={() => setActive(i)} />)\n if (showValues) {\n const mid = (a0 + a1) / 2\n const rm = (r0 + r1) / 2\n labels.push(\n <text key={`v${si}-${i}`} {...(part(`valueLabel`) as Record<string, string>)} x={ox + rm * Math.cos(mid)} y={oy + rm * Math.sin(mid)} textAnchor=\"middle\" dominantBaseline=\"middle\">\n {fmt.format(v)}\n </text>\n )\n }\n }\n a0 = a1\n })\n })\n body = arcs\n values = labels\n } else if (kind === `line` || kind === `area` || sparkline) {\n body = series.map((s, si) => {\n const pts = s.values.map((v, i) => (Number.isFinite(v) ? [px(i), y(v)] : null)).filter((p): p is number[] => p !== null)\n if (pts.length === 0) return null\n const line = `M${pts.map((p) => p.join(`,`)).join(` L`)}`\n const color = colorVar(si, s.tone)\n return (\n <g key={si} data-series={si}>\n {kind === `area` ? <path d={`${line} L${pts[pts.length - 1][0]},${zero} L${pts[0][0]},${zero} Z`} fill={color} opacity={0.18} /> : null}\n <path d={line} fill=\"none\" stroke={color} strokeWidth={sparkline ? 1.5 : 2} strokeLinejoin=\"round\" strokeLinecap=\"round\" />\n {/* EXP-1556: the bare line ×4; only the active point gets a marker. */}\n {!sparkline && active !== null && Number.isFinite(s.values[active]) ? <circle cx={px(active)} cy={y(s.values[active])} r={4} fill={color} /> : null}\n </g>\n )\n })\n if (showValues)\n values = series.flatMap((s, si) =>\n s.values.map((v, i) =>\n Number.isFinite(v) ? (\n <text key={`${si}-${i}`} {...(part(`valueLabel`) as Record<string, string>)} x={px(i)} y={y(v) - 6} textAnchor=\"middle\">\n {fmt.format(v)}\n </text>\n ) : null\n )\n )\n } else {\n const stacked = kind === `stackedBar`\n const groupW = slot * 0.72\n const bw = stacked ? groupW : groupW / Math.max(1, series.length)\n const bars: ReactNode[] = []\n const labels: ReactNode[] = []\n for (let i = 0; i < n; i++) {\n let acc = 0\n series.forEach((s, si) => {\n const v = s.values[i]\n if (!Number.isFinite(v)) return\n const x0 = pad.l + slot * i + (slot - groupW) / 2 + (stacked ? 0 : bw * si)\n const from = stacked ? acc : 0\n const to = stacked ? acc + Math.max(0, v) : v\n if (stacked) acc = to\n const top = Math.min(y(from), y(to))\n const h = Math.abs(y(from) - y(to))\n const barW = Math.max(1, bw - (stacked ? 0 : 2))\n bars.push(<rect key={`${si}-${i}`} x={rtl ? width - x0 - barW : x0} y={top} width={barW} height={Math.max(0, h)} rx={stacked ? 0 : 2} fill={colorVar(si, s.tone)} opacity={active === null || active === i ? 1 : 0.6} />)\n if (showValues)\n labels.push(\n <text key={`${si}-${i}`} {...(part(`valueLabel`) as Record<string, string>)} x={mx(x0 + bw / 2)} y={stacked ? top + h / 2 : top - 4} textAnchor=\"middle\" dominantBaseline={stacked ? `middle` : undefined}>\n {fmt.format(v)}\n </text>\n )\n })\n }\n body = bars\n values = labels\n }\n\n const legendEntries = round ? categories.map((c, i) => ({ name: c, color: colorVar(i) })) : series.map((s, i) => ({ name: s.name, color: colorVar(i, s.tone) }))\n const legend = props.showLegend !== false && !sparkline && legendEntries.length >= 2\n const title = str(props.title)\n const summaryParams = chartSummaryParams(series)\n const summaryText = ctx.t(`chartSummary`, { series: summaryParams.series, min: fmt.format(summaryParams.min), max: fmt.format(summaryParams.max) })\n const summary = title ? `${title}: ${summaryText}` : summaryText\n\n const onKey = (e: KeyboardEvent) => {\n if (n === 0) return\n if (e.key === `ArrowRight` || e.key === `ArrowLeft`) {\n e.preventDefault()\n const rtl = ctx.direction === `rtl`\n const delta = (e.key === `ArrowRight`) !== rtl ? 1 : -1\n setActive((a) => (a === null ? (delta > 0 ? 0 : n - 1) : (a + delta + n) % n))\n } else if (e.key === `Home`) setActive(0)\n else if (e.key === `End`) setActive(n - 1)\n else if (e.key === `Escape`) setActive(null)\n }\n const onMove = (e: React.PointerEvent<SVGSVGElement>) => {\n if (round || n === 0) return\n const r = plotRef.current?.getBoundingClientRect()\n if (!r) return\n // NEW-82: the pointer offset is in visual px (zoom, transforms); the plot in layout px.\n const x = (rtl ? r.right - e.clientX : e.clientX - r.left) / visualScale(r.width, width) - pad.l\n const i = sparkline ? Math.round((x / innerW) * (n - 1)) : Math.floor(x / slot)\n setActive(i >= 0 && i < n ? i : null)\n }\n const tipX = active === null ? 0 : round ? pad.l + innerW / 2 : px(active)\n const tooltip =\n active !== null && active < n ? (\n <div {...(part(`tooltip`) as Record<string, string>)} role=\"presentation\" style={{ position: `absolute`, left: Math.min(Math.max(0, tipX - 60), width - 120), top: pad.t, pointerEvents: `none` }} data-category={active}>\n {categories[active] ? <strong>{categories[active]}</strong> : null}\n {series.map((s, si) => (\n <span key={si} className=\"xui-chart-tip-row\">\n <i style={{ background: round ? colorVar(active) : colorVar(si, s.tone) }} />\n {s.name ? `${s.name}: ` : ``}\n {Number.isFinite(s.values[active]) ? fmt.format(s.values[active]) : `—`}\n </span>\n ))}\n </div>\n ) : null\n\n return (\n <div {...(rootProps as Record<string, unknown>)} style={mergeStyle(rootProps, { height: boxHeight })} data-kind={kind} data-mirrored={rtl ? `true` : undefined}>\n {title ? (\n <span {...(part(`title`) as Record<string, string>)} id={`${id}-title`}>\n {title}\n </span>\n ) : null}\n <div ref={setBox} className=\"xui-chart-plot\">\n <svg\n ref={plotRef}\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n role=\"img\"\n aria-label={summary}\n tabIndex={sparkline ? undefined : 0}\n onKeyDown={sparkline ? undefined : onKey}\n onPointerMove={sparkline ? undefined : onMove}\n onPointerLeave={() => setActive(null)}\n onBlur={() => setActive(null)}\n className=\"xui-chart-svg\"\n >\n {showGrid ? (\n <g {...(part(`grid`) as Record<string, string>)} stroke=\"currentColor\" strokeWidth={1} shapeRendering=\"crispEdges\">\n {ticks.ticks.map((t) => (\n <line key={t} x1={mx(pad.l)} x2={mx(width - pad.r)} y1={Math.round(y(t)) + 0.5} y2={Math.round(y(t)) + 0.5} />\n ))}\n </g>\n ) : null}\n {!round && active !== null && !sparkline ? <rect className=\"xui-chart-band\" x={rtl ? width - pad.l - slot * (active + 1) : pad.l + slot * active} y={pad.t} width={slot} height={innerH} fill=\"currentColor\" opacity={0.06} /> : null}\n {body}\n {values}\n {showAxes ? (\n <g {...(part(`axis`) as Record<string, string>)} fill=\"currentColor\" fontSize={AXIS_FONT}>\n {/* EXP-1556: the baseline in the gridlines' colour, as the natives draw it. */}\n <g {...(part(`grid`) as Record<string, string>)}>\n <line x1={mx(pad.l)} x2={mx(width - pad.r)} y1={zero} y2={zero} stroke=\"currentColor\" strokeWidth={1} shapeRendering=\"crispEdges\" />\n </g>\n {ticks.ticks.map((t, i) => (\n <text key={t} x={mx(pad.l - 6)} y={y(t)} textAnchor={rtl ? `start` : `end`} dominantBaseline=\"middle\">\n {tickText[i]}\n </text>\n ))}\n {categories.map((c, i) => (\n <text key={i} x={px(i)} y={pad.t + innerH + AXIS_FONT + 4} textAnchor=\"middle\">\n {c}\n </text>\n ))}\n {xLabel ? (\n <text x={mx(pad.l + innerW / 2)} y={height - 3} textAnchor=\"middle\">\n {xLabel}\n </text>\n ) : null}\n {yLabel ? (\n <text x={0} y={0} transform={`translate(${rtl ? width - AXIS_FONT : AXIS_FONT}, ${pad.t + innerH / 2}) rotate(${rtl ? 90 : -90})`} textAnchor=\"middle\">\n {yLabel}\n </text>\n ) : null}\n </g>\n ) : null}\n </svg>\n {tooltip}\n </div>\n {legend ? (\n <div {...(part(`legend`) as Record<string, string>)}>\n {legendEntries.map((e, i) => (\n <span key={i}>\n <i style={{ background: e.color }} />\n {e.name}\n </span>\n ))}\n </div>\n ) : null}\n {sparkline ? null : (\n <table className=\"xui-sr-only\">\n {title ? <caption>{title}</caption> : null}\n <thead>\n <tr>\n <th scope=\"col\" />\n {series.map((s, si) => (\n <th key={si} scope=\"col\">\n {s.name}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: n }, (_, i) => (\n <tr key={i}>\n <th scope=\"row\">{categories[i] ?? String(i + 1)}</th>\n {series.map((s, si) => (\n <td key={si}>{Number.isFinite(s.values[i]) ? fmt.format(s.values[i]) : ``}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n )}\n </div>\n )\n}\n",
|
|
16
16
|
"// Round 1: the platform preferences a surface follows LIVE — dark mode for\n// `mode: system`, `prefers-contrast: more` for `contrast: system`, reduced\n// motion, a hover-capable pointer — and the surface's own measured box\n// (breakpoints and height/orientation conditions resolve against the\n// SURFACE, never the window).\n\nimport { useCallback, useEffect, useLayoutEffect, useState, useSyncExternalStore } from \"react\"\nimport { layoutSize } from \"@exponential_app/eui/web\"\n\nconst useIsoLayoutEffect = typeof window === `undefined` ? useEffect : useLayoutEffect\n\n/** `matchMedia(query).matches`, live; `fallback` without `matchMedia`\n * (SSR, jsdom). */\nexport function useMediaQuery(query: string, fallback = false): boolean {\n const subscribe = useCallback(\n (onChange: () => void) => {\n if (typeof window === `undefined` || typeof window.matchMedia !== `function`) return () => {}\n const mql = window.matchMedia(query)\n mql.addEventListener?.(`change`, onChange)\n return () => mql.removeEventListener?.(`change`, onChange)\n },\n [query]\n )\n const read = () => (typeof window === `undefined` || typeof window.matchMedia !== `function` ? fallback : window.matchMedia(query).matches)\n return useSyncExternalStore(subscribe, read, () => fallback)\n}\n\nexport interface BoxSize {\n width: number\n height: number\n /** False until the first measurement. */\n measured: boolean\n}\n\n/** An element's border box in layout px (NEW-82: unzoomed, untransformed;\n * `layoutSize`), live (ResizeObserver, disconnected on unmount). */\nexport function useElementSize(el: HTMLElement | null, initialWidth = 0): BoxSize {\n const [size, setSize] = useState<BoxSize>({ width: initialWidth, height: 0, measured: false })\n useIsoLayoutEffect(() => {\n if (!el) return\n const read = (entries?: ResizeObserverEntry[]) => {\n const r = layoutSize(el, entries?.find((e) => e.target === el))\n setSize((cur) => {\n // No layout yet (SSR, jsdom, display:none): keep the initial guess.\n if (!cur.measured && r.width === 0 && r.height === 0) return cur\n return cur.measured && cur.width === r.width && cur.height === r.height ? cur : { width: r.width, height: r.height, measured: true }\n })\n }\n read()\n if (typeof ResizeObserver === `undefined`) return\n const ro = new ResizeObserver((entries) => read(entries))\n ro.observe(el)\n return () => ro.disconnect()\n }, [el])\n return size\n}\n",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"// VAPP-87: Ring, Spinner, Skeleton, TreeGuides, VoiceWave (Chart: chart.tsx).\n\nimport { useEffect, useLayoutEffect, useRef } from \"react\"\nimport { resolveRecipe, nativeRecipeProps, voiceWave, voiceWaveBars, voiceWaveChildBox, voiceWavePath, voiceWaveVariant, TREE_GUIDE_BRIDGE, TREE_GUIDE_COLUMN, TREE_GUIDE_RADIUS, VOICE_WAVE_ACTIVITIES } from \"@exponential_app/eui\"\nimport type { VoiceWaveActivity, VoiceWaveSizeName } from \"@exponential_app/eui\"\nimport { voiceWaveAnimates, voiceWaveClock, voiceWaveFitChild, voiceWaveName } from \"@exponential_app/eui/web\"\nimport { useSurfaceContext } from \"../context\"\nimport { CHROME } from \"../icons\"\nimport type { NativeProps } from \"../node-view\"\nimport { mergeStyle } from \"../node-view\"\nimport { arr, bool, num, str, useParts } from \"./shared\"\n\nfunction sizeOf(ctx: ReturnType<typeof useSurfaceContext>, component: string, part: string, props: Record<string, unknown>, fallback: number): number {\n const style = resolveRecipe(ctx.theme, { component, part, props: nativeRecipeProps(component, props, ctx.extensionDefs) }, ctx.mode)\n return typeof style.width === `number` ? style.width : fallback\n}\n\nexport function RingNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const size = sizeOf(ctx, `Ring`, `root`, props, 32)\n const value = Math.max(0, Math.min(1, num(props.value, 0)))\n const trackStyle = resolveRecipe(ctx.theme, { component: `Ring`, part: `track`, props: nativeRecipeProps(`Ring`, props) }, ctx.mode)\n const fillStyle = resolveRecipe(ctx.theme, { component: `Ring`, part: `fill`, props: nativeRecipeProps(`Ring`, props) }, ctx.mode)\n const stroke = typeof trackStyle.borderWidth === `number` ? trackStyle.borderWidth : 2\n const r = size / 2 - stroke / 2\n const c = 2 * Math.PI * r\n const label = str(props.label)\n return (\n <span {...(rootProps as Record<string, unknown>)} role=\"progressbar\" aria-valuemin={0} aria-valuemax={1} aria-valuenow={value} aria-label={label || undefined} style={mergeStyle(rootProps, { width: size, height: size })}>\n <svg viewBox={`0 0 ${size} ${size}`} width={size} height={size}>\n <circle {...(part(`track`) as Record<string, string>)} cx={size / 2} cy={size / 2} r={r} fill=\"none\" stroke=\"currentColor\" strokeWidth={stroke} style={{ color: String(trackStyle.color ?? `currentColor`) }} />\n <circle {...(part(`fill`) as Record<string, string>)} cx={size / 2} cy={size / 2} r={r} fill=\"none\" stroke=\"currentColor\" strokeWidth={typeof fillStyle.borderWidth === `number` ? fillStyle.borderWidth : stroke} strokeDasharray={`${c * value} ${c}`} strokeLinecap=\"round\" transform={`rotate(-90 ${size / 2} ${size / 2})`} style={{ color: String(fillStyle.color ?? `currentColor`) }} />\n </svg>\n {label ? <span {...(part(`label`) as Record<string, string>)}>{label}</span> : null}\n </span>\n )\n}\n\nexport function SpinnerNative({ props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const size = sizeOf(ctx, `Spinner`, `root`, props, 20)\n const Icon = CHROME.spinner\n const label = str(props.label) || ctx.t(`loading`)\n return (\n <span {...(rootProps as Record<string, unknown>)} role=\"status\" aria-label={label} style={mergeStyle(rootProps, { width: size, height: size })}>\n <Icon aria-hidden=\"true\" />\n </span>\n )\n}\n\n/** The bars' widths per placeholder row (lead, title): the core's\n * `SKELETON_BARS`, so a stack never reads as one ruled block. */\nconst SKELETON_BARS: readonly [number, number][] = [\n [56, 168],\n [56, 120],\n [56, 192],\n]\n\n/** Skeleton: one pulsing block, or (EXP-1259, feedback-states.json\n * `placeholder`) `rows` placeholder rows in the row geometry: each a `dot`\n * (unless `dot: false`) and two `bar`s, hairline-divided; the root paints\n * nothing itself, the pieces pulse (base CSS). */\nexport function SkeletonNative({ node, props, rootProps }: NativeProps) {\n const part = useParts(node, props)\n const rows = Math.min(50, Math.floor(num(props.rows, 0)))\n if (rows >= 1) {\n const dot = props.dot === undefined ? true : bool(props.dot)\n const height = props.rowHeight === undefined ? `var(--xui-control-row)` : `${num(props.rowHeight)}px`\n return (\n <div {...(rootProps as Record<string, unknown>)} data-rows=\"\" aria-hidden=\"true\">\n {Array.from({ length: rows }, (_, r) => {\n const [lead, title] = SKELETON_BARS[r % SKELETON_BARS.length]\n return (\n <div key={r} {...(part.at(`row`, r) as Record<string, string>)} style={{ height }}>\n {dot ? <span {...(part.at(`dot`, r) as Record<string, string>)} /> : null}\n <span {...(part.at(`bar`, `${r}.0`) as Record<string, string>)} style={{ width: lead }} />\n <span {...(part.at(`bar`, `${r}.1`) as Record<string, string>)} data-title=\"\" style={{ width: title }} />\n </div>\n )\n })}\n </div>\n )\n }\n const width = str(props.width, `100%`)\n const height = str(props.height, `16px`)\n return <div {...(rootProps as Record<string, unknown>)} aria-hidden=\"true\" style={mergeStyle(rootProps, { width, height, borderRadius: bool(props.rounded) ? 9999 : undefined })} />\n}\n\n/** TreeGuides (round 3, a Row's `guides` part the CORE fills: `elbowAt`,\n * `tee`, `passThrough` arrive computed): `depth` columns of\n * `TREE_GUIDE_COLUMN` (14) px; column i's line sits at its centre\n * (x = i·14 + 7). The elbow = ONE element whose left + bottom borders are\n * the vertical (from `TREE_GUIDE_BRIDGE` px above the row's top to its\n * centre) and the stub (to the column's right edge), the corner rounded by\n * `TREE_GUIDE_RADIUS`; `tee` and pass-through columns = full-height\n * verticals from the same bridge (paint only: the overshoot covers a\n * Section's hairline divider, never layout). Stroke width + colour = the\n * `TreeGuides/line` recipe. Physical x (the gutter is not mirrored). */\nexport function TreeGuidesNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const depth = Math.max(0, Math.floor(num(props.depth, 0)))\n // The core fills `elbowAt`; a row it never saw (a lone root, a template item) draws no elbow.\n const elbowAt = props.elbowAt === undefined || props.elbowAt === null ? -1 : num(props.elbowAt)\n const tee = bool(props.tee)\n const pass = new Set(arr<number>(props.passThrough).map((v) => num(v)))\n const stroke = sizeOf(ctx, `TreeGuides`, `line`, props, 1)\n const line = part(`line`) as Record<string, string>\n // The line's LEFT edge sits at i·14 + 7 (the reading of the three native painters).\n const x = TREE_GUIDE_COLUMN / 2\n const vertical = (key: string) => <i key={key} {...line} data-vertical=\"\" style={{ left: x, width: stroke, top: -TREE_GUIDE_BRIDGE, bottom: 0 }} />\n const cols = []\n for (let i = 0; i < depth; i++) {\n const elbow = i === elbowAt\n cols.push(\n <span key={i} className=\"xui-tree-col\" data-col={i} style={{ width: TREE_GUIDE_COLUMN }}>\n {pass.has(i) && !elbow ? vertical(`p`) : null}\n {elbow && tee ? vertical(`t`) : null}\n {elbow ? (\n <i\n key=\"e\"\n {...line}\n data-elbow=\"\"\n style={{\n left: x,\n top: -TREE_GUIDE_BRIDGE,\n width: TREE_GUIDE_COLUMN - x,\n height: `calc(50% + ${TREE_GUIDE_BRIDGE + stroke / 2}px)`,\n borderLeftWidth: stroke,\n borderBottomWidth: stroke,\n borderBottomLeftRadius: TREE_GUIDE_RADIUS,\n }}\n />\n ) : null}\n </span>\n )\n }\n return (\n <span {...(rootProps as Record<string, unknown>)} aria-hidden=\"true\" data-tee={tee ? `true` : undefined}>\n {cols}\n </span>\n )\n}\n\n/** NEW-77: VoiceWave (catalog/style.json `voiceWave`): one SVG of three\n * closed waves, the core's `voiceWave` per frame, each ring filled and\n * stroked in its part's recipe colour at the ring's alphas; the root\n * recipe sizes the box and sets the opacity (CSS); the ONE child sits\n * centred at its own size, drawn scaled about the centre by\n * `voiceWaveChildBox` (never up; at `sm` kept but unpainted). While\n * listening, thinking or speaking (and not under reduced motion) the\n * frames write the paths' `d` directly, never a re-render; the elapsed\n * seconds count from the moment the wave started moving. */\nexport function VoiceWaveNative(p: NativeProps) {\n return voiceWaveVariant(p.props.variant) === `bars` ? <VoiceWaveBarsNative {...p} /> : <VoiceWaveRingNative {...p} />\n}\n\n/** VAPP-162 (round-5 contract §5): `variant: bars`, the horizontal level\n * meter: the core's `voiceWaveBars` per frame as rounded rects in the\n * `bar` part colour; the root recipe sizes the box; a child stays in the\n * tree, never painted. While moving, the frames write each rect's `y` and\n * `height` directly, never a re-render. */\nfunction VoiceWaveBarsNative({ node, props, rootProps, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const activity: VoiceWaveActivity = (VOICE_WAVE_ACTIVITIES as readonly string[]).includes(str(props.activity)) ? (str(props.activity) as VoiceWaveActivity) : `idle`\n const input = { size: str(props.size, `md`) as VoiceWaveSizeName, activity, level: num(props.level, 0), bands: arr<unknown>(props.bands).map((b) => num(b, 0)), reducedMotion: ctx.reducedMotion }\n const latest = useRef(input)\n latest.current = input\n const elapsed = useRef(0)\n const rects = useRef<(SVGRectElement | null)[]>([])\n const svg = useRef<SVGSVGElement | null>(null)\n const animates = voiceWaveAnimates(activity) && !ctx.reducedMotion\n useEffect(() => {\n if (!animates) {\n elapsed.current = 0\n return\n }\n return voiceWaveClock((t) => {\n elapsed.current = t\n voiceWaveBars({ ...latest.current, elapsed: t }).bars.forEach((bar, i) => {\n const el = rects.current[i]\n if (!el) return\n el.setAttribute(`y`, String(bar.y))\n el.setAttribute(`height`, String(bar.height))\n })\n }, svg.current)\n }, [animates])\n const meter = voiceWaveBars({ ...input, elapsed: elapsed.current })\n const colour = String(resolveRecipe(ctx.theme, { component: `VoiceWave`, part: `bar`, props: nativeRecipeProps(`VoiceWave`, props) }, ctx.mode).color ?? `currentColor`)\n const name = voiceWaveName(str(props.label) || undefined, activity)\n return (\n <span {...(rootProps as Record<string, unknown>)} role={name ? `img` : undefined} aria-label={name} aria-hidden={name ? undefined : `true`} data-variant=\"bars\" style={mergeStyle(rootProps, { width: meter.width, height: meter.height })}>\n <svg ref={svg} viewBox={`0 0 ${meter.width} ${meter.height}`} width={meter.width} height={meter.height} aria-hidden=\"true\" style={{ color: colour }}>\n {meter.bars.map((bar, i) => (\n <rect\n key={i}\n ref={(el) => {\n rects.current[i] = el\n }}\n {...(part(`bar`) as Record<string, string>)}\n x={bar.x}\n y={bar.y}\n width={bar.width}\n height={bar.height}\n rx={bar.radius}\n fill=\"currentColor\"\n />\n ))}\n </svg>\n {node.children.length > 0 ? (\n <span {...(part(`child`) as Record<string, string>)} data-hidden=\"true\" aria-hidden=\"true\">\n {children}\n </span>\n ) : null}\n </span>\n )\n}\n\nfunction VoiceWaveRingNative({ node, props, rootProps, children }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const size = sizeOf(ctx, `VoiceWave`, `root`, props, 56)\n const activity: VoiceWaveActivity = (VOICE_WAVE_ACTIVITIES as readonly string[]).includes(str(props.activity)) ? (str(props.activity) as VoiceWaveActivity) : `idle`\n const input = { size, activity, level: num(props.level, 0), bands: arr<unknown>(props.bands).map((b) => num(b, 0)), reducedMotion: ctx.reducedMotion }\n const latest = useRef(input)\n latest.current = input\n const elapsed = useRef(0)\n const paths = useRef<(SVGPathElement | null)[]>([])\n const svg = useRef<SVGSVGElement | null>(null)\n const animates = voiceWaveAnimates(activity) && !ctx.reducedMotion\n useEffect(() => {\n if (!animates) {\n elapsed.current = 0\n return\n }\n return voiceWaveClock((t) => {\n elapsed.current = t\n voiceWave({ ...latest.current, elapsed: t }).rings.forEach((ring, k) => paths.current[k]?.setAttribute(`d`, voiceWavePath(ring)))\n }, svg.current)\n }, [animates])\n const childEl = useRef<HTMLSpanElement | null>(null)\n const hasChild = node.children.length > 0\n useLayoutEffect(() => (hasChild && childEl.current ? voiceWaveFitChild(childEl.current, (c) => voiceWaveChildBox(size, c).scale) : undefined), [hasChild, size])\n const wave = voiceWave({ ...input, elapsed: elapsed.current })\n const recipeProps = nativeRecipeProps(`VoiceWave`, props)\n const colour = (name: string) => String(resolveRecipe(ctx.theme, { component: `VoiceWave`, part: name, props: recipeProps }, ctx.mode).color ?? `currentColor`)\n const name = voiceWaveName(str(props.label) || undefined, activity)\n return (\n <span {...(rootProps as Record<string, unknown>)} role={name ? `img` : undefined} aria-label={name} aria-hidden={name ? undefined : `true`} style={mergeStyle(rootProps, { width: size, height: size })}>\n <svg ref={svg} viewBox={`0 0 ${size} ${size}`} width={size} height={size} aria-hidden=\"true\">\n {wave.rings.map((ring, k) => (\n <path\n key={ring.part}\n ref={(el) => {\n paths.current[k] = el\n }}\n {...(part(ring.part) as Record<string, string>)}\n d={voiceWavePath(ring)}\n fill=\"currentColor\"\n fillOpacity={ring.fillAlpha}\n stroke=\"currentColor\"\n strokeOpacity={ring.strokeAlpha}\n strokeWidth={ring.strokeWidth}\n strokeLinejoin=\"round\"\n style={{ color: colour(ring.part) }}\n />\n ))}\n </svg>\n {hasChild ? (\n <span ref={childEl} {...(part(`child`) as Record<string, string>)} data-hidden={wave.childSize > 0 ? undefined : `true`} aria-hidden={wave.childSize > 0 ? undefined : `true`} style={{ color: colour(`child`) }}>\n {children}\n </span>\n ) : null}\n </span>\n )\n}\n",
|
|
26
26
|
"// VAPP-87 + round 1: the form controls. Text inputs are HOST-OWNED\n// (`useHostOwnedValue`: local state, debounced `change` with a revision,\n// `commit` on blur/Enter, echoes applied only when idle and acknowledged);\n// the rest are controlled from the resolved prop with a local mirror\n// (`useBoundState`: a bound prop is written through to the data model and\n// `change` fires). Every named control speaks the Form protocol\n// (`useField`: all failing checks under the field, `<id>.error` linked by\n// aria-describedby, the `invalid` recipe state, Enter submits the Form).\n\nimport { useEffect, useId, useMemo, useRef, useState, type ChangeEvent, type KeyboardEvent } from \"react\"\nimport { Checkbox as CheckboxPrimitive, RadioGroup as RadioPrimitive, Slider as SliderPrimitive, Switch as SwitchPrimitive } from \"radix-ui\"\nimport { useSurfaceContext } from \"../context\"\nimport { boundPath, hostPath, switchTravel } from \"@exponential_app/eui/web\"\nimport { FieldErrors, joinIds, useField } from \"../form\"\nimport { CHROME, IconGlyph } from \"../icons\"\nimport { useHostOwnedValue } from \"../inputs\"\nimport type { NativeProps } from \"../node-view\"\nimport { mergeStyle } from \"../node-view\"\nimport { useBoundState } from \"./bound\"\nimport { bool, BuiltinIcon, num, str, useParts, TextPart, objects } from \"./shared\"\nimport type { SurfaceInputEvent } from \"../host\"\nimport { parseLocaleNumber } from \"@exponential_app/eui/web\"\n\nexport function useInputSender(node: NativeProps[`node`], scope: string, prop: string, domId: string = node.id) {\n const ctx = useSurfaceContext()\n const path = boundPath(node.props, prop, scope)\n const name = str(node.props.name, node.id)\n const send = useMemo(\n () => (value: unknown, revision: number, kind: `change` | `commit`) => {\n const e: SurfaceInputEvent = { surfaceId: ctx.surfaceId, componentId: domId, name, path: hostPath(path), value, revision, kind }\n return ctx.host.onInput?.(e)\n },\n [ctx.surfaceId, ctx.host, domId, name, path]\n )\n const writeLocal = useMemo(() => (path ? (value: unknown) => ctx.setData(path, value) : undefined), [path, ctx])\n return { send, writeLocal, path, name }\n}\n\nexport function InputNative(p: NativeProps) {\n return <TextFieldNative {...p} multiline={false} />\n}\nexport function TextareaNative(p: NativeProps) {\n return <TextFieldNative {...p} multiline />\n}\n\n/** Textarea autosize (contract §3): from `rows` lines up to `maxRows`, then\n * it scrolls. */\nfunction autosize(el: HTMLTextAreaElement, rows: number, maxRows: number | null) {\n const cs = getComputedStyle(el)\n const lh = parseFloat(cs.lineHeight) || parseFloat(cs.fontSize) * 1.4 || 20\n const pad = (parseFloat(cs.paddingTop) || 0) + (parseFloat(cs.paddingBottom) || 0) + (parseFloat(cs.borderTopWidth) || 0) + (parseFloat(cs.borderBottomWidth) || 0)\n const min = rows * lh + pad\n const max = maxRows ? maxRows * lh + pad : Infinity\n el.style.height = `auto`\n const h = Math.min(max, Math.max(min, el.scrollHeight + (parseFloat(cs.borderTopWidth) || 0) + (parseFloat(cs.borderBottomWidth) || 0)))\n el.style.height = `${h}px`\n el.style.overflowY = el.scrollHeight > h ? `auto` : `hidden`\n}\n\nfunction TextFieldNative({ node, props, rootProps, emit, scope, domId, multiline }: NativeProps & { multiline: boolean }) {\n const part = useParts(node, props)\n const ctx = useSurfaceContext()\n const id = useId()\n const { send, writeLocal } = useInputSender(node, scope, `value`, domId)\n const external = str(props.value)\n const field = useHostOwnedValue<string>({ external, send, writeLocal })\n const focusRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null)\n const f = useField({ node, domId, props, value: field.value, focusRef })\n const disabled = bool(props.disabled) || Boolean(f.form?.disabled)\n const label = str(props.label)\n const placeholder = str(props.placeholder)\n const description = str(props.description)\n const rows = Math.max(1, num(props.rows, 3))\n const maxRows = props.maxRows === undefined ? null : Math.max(rows, num(props.maxRows, rows))\n const auto = multiline && bool(props.autosize)\n useEffect(() => {\n if (auto && focusRef.current) autosize(focusRef.current as HTMLTextAreaElement, rows, maxRows)\n }, [auto, field.value, rows, maxRows])\n const shared = {\n id,\n name: str(props.name, node.id),\n value: field.value,\n placeholder: placeholder || undefined,\n disabled,\n \"aria-invalid\": f.invalid ? true : undefined,\n \"aria-describedby\": joinIds(description && `${id}-d`, f.describedBy),\n onFocus: () => {\n field.onFocus()\n void emit(`focus`)\n },\n onBlur: () => {\n field.onBlur()\n f.touch()\n void emit(`blur`)\n },\n onChange: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n field.edit(e.target.value)\n f.change(e.target.value)\n void emit(`change`, { value: e.target.value, revision: field.revision + 1 }, { value: e.target.value })\n },\n }\n const fieldStates = [disabled && `disabled`, field.focused && `focus`, f.invalid && `invalid`] as const\n void ctx\n return (\n <div {...(rootProps as Record<string, unknown>)} data-pending={field.pending ? `true` : undefined} data-revision={field.revision}>\n <TextPart part={part(`label`)} text={label} as=\"label\" htmlFor={id} />\n {multiline ? (\n <textarea ref={focusRef as React.Ref<HTMLTextAreaElement>} {...(part(`field`, ...fieldStates) as Record<string, string>)} {...shared} rows={rows} data-autosize={auto ? `true` : undefined} />\n ) : (\n <input\n ref={focusRef as React.Ref<HTMLInputElement>}\n {...(part(`field`, ...fieldStates) as Record<string, string>)}\n {...shared}\n type={str(props.type, `text`)}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === `Enter`) {\n e.preventDefault()\n field.commit()\n void emit(`submit`, { value: field.value })\n f.submit()\n }\n }}\n />\n )}\n <TextPart part={part(`description`)} text={description} id={`${id}-d`} />\n <FieldErrors part={part} field={f} />\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// NumberField\n// ---------------------------------------------------------------------------\n\nconst decimalsOf = (n: number) => {\n const s = String(n)\n const i = s.indexOf(`.`)\n return i < 0 ? 0 : s.length - i - 1\n}\n\nexport function NumberFieldNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const id = useId()\n const min = props.min === undefined ? null : num(props.min)\n const max = props.max === undefined ? null : num(props.max)\n const step = num(props.step, 1) || 1\n const precision = props.precision === undefined ? decimalsOf(step) : Math.max(0, num(props.precision))\n const external = props.value === undefined || props.value === null || props.value === `` ? null : num(props.value)\n const [value, setValue] = useBoundState<number | null>(node, scope, `value`, external)\n const [text, setText] = useState<string | null>(null)\n const focusRef = useRef<HTMLInputElement | null>(null)\n const f = useField({ node, domId, props, value, focusRef })\n const disabled = bool(props.disabled) || Boolean(f.form?.disabled)\n // Display through the surface Formatter (round 2 §3); the typed text is\n // parsed in the locale's separators.\n const decimalSep = useMemo(() => new Intl.NumberFormat(ctx.locale).formatToParts(1.1).find((p) => p.type === `decimal`)?.value ?? `.`, [ctx.locale])\n const format = useMemo(() => ({ format: (n: number) => ctx.formatter.number(n, { decimals: precision }) }), [ctx.formatter, precision])\n const clamp = (n: number) => {\n let v = n\n if (min !== null) v = Math.max(min, v)\n if (max !== null) v = Math.min(max, v)\n return Number(v.toFixed(precision))\n }\n const commit = (next: number | null) => {\n setValue(next)\n f.change(next)\n void emit(`change`, { value: next }, { value: next })\n }\n const stepBy = (delta: number) => {\n const base = value ?? (min !== null && min > 0 ? min : 0)\n commit(clamp(base + delta))\n setText(null)\n }\n const shown = text ?? (value === null ? `` : format.format(value))\n const unit = str(props.unit)\n return (\n <div {...(rootProps as Record<string, unknown>)}>\n <TextPart part={part(`label`)} text={props.label} as=\"label\" htmlFor={id} />\n <div {...(part(`field`, disabled && `disabled`, f.invalid && `invalid`) as Record<string, string>)} data-xui-numberfield=\"\">\n <button type=\"button\" {...(part(`decrement`, disabled && `disabled`) as Record<string, string>)} aria-label={ctx.t(`decrement`)} tabIndex={-1} disabled={disabled || (min !== null && value !== null && value <= min)} onClick={() => stepBy(-step)}>\n <BuiltinIcon slot=\"NumberField.decrement\" />\n </button>\n <input\n ref={focusRef}\n id={id}\n {...(part(`input`) as Record<string, string>)}\n type=\"text\"\n inputMode={precision > 0 ? `decimal` : `numeric`}\n role=\"spinbutton\"\n aria-valuenow={value ?? undefined}\n aria-valuemin={min ?? undefined}\n aria-valuemax={max ?? undefined}\n aria-valuetext={value === null ? undefined : `${format.format(value)}${unit ? ` ${unit}` : ``}`}\n aria-invalid={f.invalid || undefined}\n aria-describedby={f.describedBy}\n name={str(props.name, node.id)}\n placeholder={str(props.placeholder) || undefined}\n disabled={disabled}\n value={shown}\n onFocus={() => {\n setText(value === null ? `` : String(value).replace(`.`, decimalSep))\n void emit(`focus`)\n }}\n onChange={(e) => {\n setText(e.target.value)\n const n = parseLocaleNumber(e.target.value, ctx.locale)\n if (n !== null || e.target.value.trim() === ``) commit(n)\n }}\n onBlur={() => {\n if (value !== null && clamp(value) !== value) commit(clamp(value))\n setText(null)\n f.touch()\n void emit(`blur`)\n }}\n onKeyDown={(e) => {\n const big = e.shiftKey ? 10 : 1\n if (e.key === `ArrowUp`) {\n e.preventDefault()\n stepBy(step * big)\n } else if (e.key === `ArrowDown`) {\n e.preventDefault()\n stepBy(-step * big)\n } else if (e.key === `PageUp`) {\n e.preventDefault()\n stepBy(step * 10)\n } else if (e.key === `PageDown`) {\n e.preventDefault()\n stepBy(-step * 10)\n } else if (e.key === `Home` && min !== null) {\n e.preventDefault()\n commit(min)\n setText(null)\n } else if (e.key === `End` && max !== null) {\n e.preventDefault()\n commit(max)\n setText(null)\n } else if (e.key === `Enter`) {\n e.preventDefault()\n const v = value === null ? null : clamp(value)\n if (v !== value) commit(v)\n setText(null)\n void emit(`submit`, { value: v }, v !== value ? { value: v } : undefined)\n f.submit()\n }\n }}\n />\n {unit ? <span {...(part(`unit`) as Record<string, string>)}>{unit}</span> : null}\n <button type=\"button\" {...(part(`increment`, disabled && `disabled`) as Record<string, string>)} aria-label={ctx.t(`increment`)} tabIndex={-1} disabled={disabled || (max !== null && value !== null && value >= max)} onClick={() => stepBy(step)}>\n <BuiltinIcon slot=\"NumberField.increment\" />\n </button>\n </div>\n <FieldErrors part={part} field={f} />\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Checkbox, Switch, Radio, Slider\n// ---------------------------------------------------------------------------\n\nexport function CheckboxNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const part = useParts(node, props)\n const id = useId()\n const [checked, setChecked] = useBoundState(node, scope, `checked`, bool(props.checked))\n const focusRef = useRef<HTMLButtonElement | null>(null)\n const f = useField({ node, domId, props, value: checked, focusRef })\n const disabled = bool(props.disabled) || Boolean(f.form?.disabled)\n return (\n <div {...(rootProps as Record<string, unknown>)}>\n <CheckboxPrimitive.Root\n ref={focusRef}\n id={id}\n {...(part(`box`, checked && `checked`, disabled && `disabled`, f.invalid && `invalid`) as Record<string, string>)}\n checked={checked}\n disabled={disabled}\n name={str(props.name, node.id)}\n aria-invalid={f.invalid || undefined}\n aria-describedby={f.describedBy}\n onCheckedChange={(next) => {\n const value = next === true\n setChecked(value)\n f.change(value)\n f.touch()\n void emit(`change`, { checked: value }, { checked: value })\n }}\n >\n <CheckboxPrimitive.Indicator {...(part(`check`) as Record<string, string>)}>\n <BuiltinIcon slot=\"Checkbox.check\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n <div className=\"xui-field-text\">\n <TextPart part={part(`label`)} text={props.label} as=\"label\" htmlFor={id} />\n <TextPart part={part(`description`)} text={props.description} />\n <FieldErrors part={part} field={f} />\n </div>\n </div>\n )\n}\n\nexport function SwitchNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const part = useParts(node, props)\n const id = useId()\n const ctx = useSurfaceContext()\n const [checked, setChecked] = useBoundState(node, scope, `checked`, bool(props.checked))\n const focusRef = useRef<HTMLButtonElement | null>(null)\n const f = useField({ node, domId, props, value: checked, focusRef })\n const disabled = bool(props.disabled) || Boolean(f.form?.disabled)\n const size = str(props.size, `default`)\n const travel = useMemo(() => switchTravel(ctx.theme, size), [ctx.theme, size])\n const description = str(props.description)\n // Round 2 §7: [label + description][switch] — label first, the track at\n // the END; the whole row toggles (the label already clicks the control).\n const onRow = (e: React.MouseEvent) => {\n const target = e.target as Element\n if (disabled || target.closest(`button,label,a,input`)) return\n focusRef.current?.click()\n }\n return (\n <div {...(rootProps as Record<string, unknown>)} onClick={onRow}>\n <div {...(part(`body`) as Record<string, string>)}>\n <TextPart part={part(`label`)} text={props.label} as=\"label\" htmlFor={id} />\n <TextPart part={part(`description`)} text={description} id={`${id}-d`} />\n <FieldErrors part={part} field={f} />\n </div>\n <SwitchPrimitive.Root\n ref={focusRef}\n id={id}\n {...(part(`track`, checked && `checked`, disabled && `disabled`) as Record<string, string>)}\n checked={checked}\n disabled={disabled}\n name={str(props.name, node.id)}\n aria-describedby={joinIds(description && `${id}-d`, f.describedBy)}\n style={{ \"--xui-switch-travel\": `${travel}px` } as React.CSSProperties}\n onCheckedChange={(next) => {\n setChecked(next)\n f.change(next)\n void emit(`change`, { checked: next }, { checked: next })\n }}\n >\n <SwitchPrimitive.Thumb {...(part(`thumb`, checked && `checked`) as Record<string, string>)} />\n </SwitchPrimitive.Root>\n </div>\n )\n}\n\ninterface Option {\n label: string\n value: string\n icon?: string\n disabled?: boolean\n}\n\nexport function RadioNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const part = useParts(node, props)\n const ctx = useSurfaceContext()\n const id = useId()\n const options = objects<Option>(props.options)\n const [value, setValue] = useBoundState(node, scope, `value`, str(props.value))\n const focusRef = useRef<HTMLDivElement | null>(null)\n // Focus goes to the checked item (else the first), the group's tab stop.\n const itemRef = useMemo(\n () => ({\n get current(): HTMLElement | null {\n return (focusRef.current?.querySelector(`[data-state=\"checked\"]`) ?? focusRef.current?.querySelector(`button`)) as HTMLElement | null\n },\n }),\n []\n )\n const f = useField({ node, domId, props, value, focusRef: itemRef })\n return (\n <div {...(rootProps as Record<string, unknown>)} role=\"group\" aria-labelledby={props.label ? `${id}-l` : undefined} aria-describedby={f.describedBy}>\n <TextPart part={part(`label`)} text={props.label} id={`${id}-l`} />\n <RadioPrimitive.Root\n ref={focusRef}\n {...(part(`items`) as Record<string, string>)}\n className={`${(part(`items`) as { className: string }).className} xui-radio-items`}\n value={value}\n name={str(props.name, node.id)}\n orientation={str(props.orientation, `vertical`) as `vertical` | `horizontal`}\n dir={ctx.direction}\n loop\n aria-invalid={f.invalid || undefined}\n onValueChange={(next) => {\n setValue(next)\n f.change(next)\n void emit(`change`, { value: next }, { value: next })\n }}\n >\n {options.map((o, i) => {\n const checked = o.value === value\n const oid = `${id}-${o.value}`\n // Placed parts (round 2 §6): the option ROW = `item.<i>`, its\n // circle = `dot.<i>` (the recipe's item), its text = `label.<i>`.\n return (\n <label key={o.value} className=\"xui-radio-row\" htmlFor={oid} data-xui-id={`${part.domId}.item.${i}`}>\n <RadioPrimitive.Item id={oid} value={o.value} disabled={bool(o.disabled)} {...(part(`item`, checked && `checked`, bool(o.disabled) && `disabled`, f.invalid && `invalid`) as Record<string, string>)} data-xui-id={`${part.domId}.dot.${i}`}>\n <RadioPrimitive.Indicator {...(part(`dot`, checked && `checked`) as Record<string, string>)} />\n </RadioPrimitive.Item>\n {o.icon ? <IconGlyph icons={ctx.host.icons} name={o.icon} className=\"xui-icon\" width={16} height={16} /> : null}\n <span {...(part.at(`label`, i) as Record<string, string>)}>{str(o.label)}</span>\n </label>\n )\n })}\n </RadioPrimitive.Root>\n <FieldErrors part={part} field={f} />\n </div>\n )\n}\n\nexport function SliderNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const part = useParts(node, props)\n const ctx = useSurfaceContext()\n const id = useId()\n const min = num(props.min, 0)\n const max = num(props.max, 100)\n const step = num(props.step, 1)\n const [value, setValue] = useBoundState(node, scope, `value`, num(props.value, min))\n return (\n <div {...(rootProps as Record<string, unknown>)}>\n <div {...(part(`header`) as Record<string, string>)} className={`${(part(`header`) as { className: string }).className} xui-slider-head`}>\n <TextPart part={part(`label`)} text={props.label} as=\"label\" htmlFor={id} />\n <span {...(part(`value`) as Record<string, string>)}>{ctx.formatter.number(value)}</span>\n </div>\n <SliderPrimitive.Root\n className=\"xui-slider-root\"\n value={[value]}\n min={min}\n max={max}\n step={step}\n dir={ctx.direction}\n name={str(props.name) || undefined}\n onValueChange={([next]) => setValue(next)}\n onValueCommit={([next]) => void emit(`change`, { value: next }, { value: next })}\n >\n <SliderPrimitive.Track {...(part(`track`) as Record<string, string>)}>\n <SliderPrimitive.Range {...(part(`range`) as Record<string, string>)} />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb id={id} {...(part(`thumb`) as Record<string, string>)} aria-label={str(props.label) || undefined} />\n </SliderPrimitive.Root>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Composer\n// ---------------------------------------------------------------------------\n\nexport function ComposerNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const part = useParts(node, props)\n const ctx = useSurfaceContext()\n const { send, writeLocal } = useInputSender(node, scope, `value`, domId)\n const external = str(props.value)\n const field = useHostOwnedValue<string>({ external, send, writeLocal })\n const busy = bool(props.busy)\n const ref = useRef<HTMLTextAreaElement>(null)\n const grow = () => {\n const el = ref.current\n if (!el) return\n el.style.height = `auto`\n el.style.height = `${Math.min(200, el.scrollHeight)}px`\n }\n useEffect(grow, [field.value])\n const submit = () => {\n if (busy) {\n void emit(`stop`)\n return\n }\n const text = field.value.trim()\n if (!text) return\n field.commit()\n void emit(`submit`, { value: text })\n field.edit(``)\n }\n const placeholder = str(props.placeholder)\n const submitLabel = str(props.submitLabel) || ctx.t(`send`)\n return (\n <div {...(rootProps as Record<string, unknown>)} data-busy={busy ? `true` : undefined}>\n <textarea\n ref={ref}\n {...(part(`field`, field.focused && `focus`) as Record<string, string>)}\n rows={1}\n placeholder={placeholder || undefined}\n value={field.value}\n aria-label={ctx.t(`message`)}\n onFocus={field.onFocus}\n onBlur={field.onBlur}\n onChange={(e) => {\n field.edit(e.target.value)\n void emit(`change`, { value: e.target.value }, { value: e.target.value })\n }}\n onKeyDown={(e) => {\n if (e.key === `Enter` && !e.shiftKey) {\n e.preventDefault()\n submit()\n }\n }}\n />\n <div className=\"xui-composer-bar\">\n {bool(props.attachments) ? (\n <button type=\"button\" {...(part(`attachment`) as Record<string, string>)} aria-label={ctx.t(`browse`)} onClick={() => void emit(`attach`)}>\n <BuiltinIcon slot=\"Composer.attachment\" />\n </button>\n ) : null}\n <button type=\"button\" {...(part(`send`, busy && `pressed`) as Record<string, string>)} aria-label={busy ? ctx.t(`stop`) : submitLabel} disabled={!busy && field.value.trim() === ``} onClick={submit}>\n {busy ? <BuiltinIcon slot=\"Composer.stop\" /> : <BuiltinIcon slot=\"Composer.send\" />}\n </button>\n </div>\n </div>\n )\n}\n\nexport { CHROME, mergeStyle, parseLocaleNumber }\n",
|
|
27
27
|
"// VAPP-87: HOST-OWNED inputs on React. The rules (revision counter,\n// debounce, echo acceptance: a host push is adopted only when the field is\n// not focused AND every revision was acknowledged, the VAPP-4 typing rule)\n// are the web layer's `HostOwnedController` (`@exponential_app/eui/web`\n// inputs.ts, FEED-128); this hook keeps one per field and re-renders on its\n// changes.\n\nimport { useCallback, useEffect, useReducer, useRef } from \"react\"\nimport { DEBOUNCE_MS, HostOwnedController } from \"@exponential_app/eui/web\"\n\nexport { DEBOUNCE_MS }\n\nexport interface HostOwnedOptions<T> {\n /** The value the host currently holds (resolved prop or data model). */\n external: T\n /** Sends an edit; a returned promise acknowledges the revision on settle. */\n send: (value: T, revision: number, kind: `change` | `commit`) => void | Promise<void>\n /** Optional local write-through (the bound data model path). */\n writeLocal?: (value: T) => void\n debounceMs?: number\n}\n\nexport interface HostOwnedValue<T> {\n value: T\n revision: number\n /** True while a revision the host has not acknowledged exists. */\n pending: boolean\n focused: boolean\n onFocus: () => void\n onBlur: () => void\n /** A local edit. */\n edit: (next: T) => void\n /** Flush the debounce and send a `commit`. */\n commit: () => void\n}\n\nexport function useHostOwnedValue<T>({ external, send, writeLocal, debounceMs = DEBOUNCE_MS }: HostOwnedOptions<T>): HostOwnedValue<T> {\n const [, rerender] = useReducer((n: number) => n + 1, 0)\n const ref = useRef<HostOwnedController<T> | null>(null)\n if (!ref.current) ref.current = new HostOwnedController<T>({ initial: external, send, writeLocal, debounceMs, onChange: rerender })\n const c = ref.current\n c.configure({ send, writeLocal, debounceMs })\n useEffect(() => {\n c.attach()\n return () => c.dispose()\n }, [c])\n // The host's push: adopted only when idle and fully acknowledged.\n useEffect(() => {\n c.push(external)\n }, [c, external])\n const onFocus = useCallback(() => c.focus(), [c])\n const onBlur = useCallback(() => c.blur(), [c])\n const edit = useCallback((next: T) => c.edit(next), [c])\n const commit = useCallback(() => c.commit(), [c])\n return { value: c.value, revision: c.revision, pending: c.pending, focused: c.focused, onFocus, onBlur, edit, commit }\n}\n",
|
|
28
|
-
"// VAPP-87 + rounds 1–2: Box, List and the Unknown placeholder. A List renders\n// its children then its data template's items (keyed by `template.key`, so\n// reordering keeps each item's state), optionally in sections; past\n// `WINDOW_THRESHOLD` (50, the catalog's) items it windows on its axis.\n\nimport { memo, useCallback, useContext, useEffect, useMemo, useRef, type KeyboardEvent, type ReactNode } from \"react\"\nimport { listSections, sectionRows, WINDOW_THRESHOLD as CATALOG_WINDOW_THRESHOLD, type ListSection } from \"@exponential_app/eui\"\nimport { InstanceContext, ScopeContext, SurfaceContext, deriveContext, readView, useSurfaceContext } from \"../context\"\nimport { getPointer, LITERAL_ROWS_ROOT } from \"@exponential_app/eui/web\"\nimport { WindowedList, type WindowedListHandle } from \"../list\"\nimport type { NativeProps } from \"../node-view\"\nimport { NodeView, TemplateItemView, mergeStyle, templateItems } from \"../node-view\"\nimport { bool, BuiltinIcon, num, str, useParts, type PartFn } from \"./shared\"\n\nexport function BoxNative({ node, props, rootProps, emit, children }: NativeProps) {\n const pressable = bool(props.pressable) || Boolean(node.on?.press)\n if (!pressable) return <div {...(rootProps as Record<string, unknown>)}>{children}</div>\n const onKey = (e: KeyboardEvent) => {\n if (e.target !== e.currentTarget) return\n if (e.key === `Enter` || e.key === ` `) {\n e.preventDefault()\n void emit(`press`)\n }\n }\n return (\n <div {...(rootProps as Record<string, unknown>)} data-pressable=\"true\" role=\"button\" tabIndex={0} onClick={() => void emit(`press`)} onKeyDown={onKey}>\n {children}\n </div>\n )\n}\n\n/** Past this many items a List windows (fewer render flat, so fixtures\n * snapshot every row). The catalog's number (`layout.json`). */\nexport const WINDOW_THRESHOLD = CATALOG_WINDOW_THRESHOLD\n\n/** One row of a List: an item (a child or a template item, by its index in\n * the list) or a section header. */\ntype ListRow = { item: number } | { header: number }\n\n/** List (round 2 §5): children then the data template's items; `sectionBy`\n * groups consecutive template items under a `section` header (the slot,\n * bound once per section with the literal scope `{value, count, index}`,\n * else the value); past `WINDOW_THRESHOLD` items, or with `stickyHeaders`,\n * the list WINDOWS on its axis (vertical or horizontal) against its own\n * scroll, the nearest scroller or the viewport. Every item is a listitem\n * with its position in the whole list; `scrollToIndex` (the host command)\n * takes the data index. */\nexport function ListNative({ node, props, rootProps, scope, domId }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const divided = bool(props.divided)\n const horizontal = props.direction === `horizontal`\n const gap = str(props.gap, `none`)\n const tokens = ctx.theme.tokens as unknown as { spacing?: Record<string, number>; control?: Record<string, number> }\n const gapPx = gap === `none` ? 0 : num(tokens.spacing?.[gap], 0)\n const hairline = num(tokens.control?.hairline, 1)\n const rowExtent = num(tokens.control?.row, 40)\n // Keyed once per data change (a 100,000-row list must not re-key on scroll).\n const tpl = useMemo(() => templateItems(ctx, node, scope), [ctx.data, ctx.templateNode, node, scope]) // eslint-disable-line react-hooks/exhaustive-deps\n const childCount = node.children.length\n const itemCount = childCount + (tpl?.items.length ?? 0)\n const sectionBy = str(props.sectionBy)\n const sections = useMemo(() => (sectionBy && tpl ? listSections(tpl.items.map((item) => getPointer(ctx.data, item.path)), sectionBy) : null), [sectionBy, tpl, ctx.data])\n const rows = useMemo((): ListRow[] => {\n const out: ListRow[] = []\n for (let i = 0; i < childCount; i++) out.push({ item: i })\n if (sections) for (const r of sectionRows(sections)) out.push(`header` in r ? r : { item: childCount + r.item })\n else for (let i = childCount; i < itemCount; i++) out.push({ item: i })\n return out\n }, [childCount, itemCount, sections])\n const sticky = bool(props.stickyHeaders) && sections !== null\n const windowed = itemCount > WINDOW_THRESHOLD || sticky\n // §5: rows sit `gap` apart; a divided list adds the hairline to the gap\n // and centres the divider in it. Flat and windowed lay out the same.\n const step = gapPx + (divided ? hairline : 0)\n const flatGap = gap === `none` ? (divided ? `${hairline}px` : undefined) : divided ? `calc(var(--xui-spacing-${gap}) + ${hairline}px)` : `var(--xui-spacing-${gap})`\n const style = mergeStyle(rootProps, { gap: windowed ? undefined : flatGap })\n const rtl = horizontal && ctx.direction === `rtl`\n const keyOf = (r: number) => {\n const row = rows[r]\n if (`header` in row) return `s:${row.header}`\n return row.item < childCount ? node.children[row.item].id : `t:${tpl!.items[row.item - childCount].key}`\n }\n // A divider sits before every item that follows another item.\n const dividerBefore = (r: number): number | null => {\n if (!divided || r === 0) return null\n const row = rows[r]\n const prev = rows[r - 1]\n return `item` in row && `item` in prev ? row.item : null\n }\n const windowRef = useRef<WindowedListHandle | null>(null)\n const rootRef = useRef<HTMLDivElement | null>(null)\n // `scrollToIndex` {id, index (data order), align}: the template's index\n // (children come first), else the child's.\n const rowOfIndex = useCallback((index: number) => rows.findIndex((r) => `item` in r && r.item === (tpl ? childCount + index : index)), [rows, tpl, childCount])\n useEffect(\n () =>\n ctx.registerScroller(domId, (index, align) => {\n const r = rowOfIndex(index)\n if (r < 0) return\n if (windowed) windowRef.current?.scrollToIndex(r, align)\n else {\n // Own rows only (`:scope >`): a nested List has rows of its own.\n const el = rootRef.current?.querySelector<HTMLElement>(`:scope > [data-xui-row=\"${r}\"]`)\n const block = align === `center` ? `center` : align === `end` ? `end` : align === `start` ? `start` : `nearest`\n el?.scrollIntoView(horizontal ? { inline: block, block: `nearest` } : { block, inline: `nearest` })\n }\n }),\n [ctx, domId, rowOfIndex, windowed, horizontal]\n )\n const renderRow = (r: number) => <ListRowView row={rows[r]} node={node} tpl={tpl} sections={sections} childCount={childCount} part={part} />\n // Round 3: a Section body with `tree` asks for role `tree` ($a11y); its\n // items are then treeitems (a tree owns treeitems only).\n const listRole = (rootProps as Record<string, unknown>).role === `tree` ? `tree` : `list`\n const itemRole = listRole === `tree` ? `treeitem` : `listitem`\n const itemAttrs = (r: number): Record<string, unknown> => {\n const row = rows[r]\n // A section header is a listitem holding its heading (a list owns\n // listitems only); items carry their position among the ITEMS.\n return `item` in row ? { role: itemRole, \"aria-setsize\": itemCount, \"aria-posinset\": row.item + 1 } : { role: itemRole }\n }\n const divider = (r: number) => {\n const before = dividerBefore(r)\n return before === null ? null : <div {...(part.at(`divider`, before) as Record<string, string>)} role=\"separator\" />\n }\n if (windowed) {\n const headerRows = sticky ? rows.flatMap((row, r) => (`header` in row ? [r] : [])) : undefined\n return (\n <div ref={rootRef} {...(rootProps as Record<string, unknown>)} style={style} role={listRole}>\n <WindowedList\n ref={windowRef}\n count={rows.length}\n itemKey={keyOf}\n estimatedItemHeight={rowExtent}\n axis={horizontal ? `horizontal` : `vertical`}\n direction={ctx.direction}\n gap={step}\n divider={divider}\n stickyRows={headerRows}\n itemProps={itemAttrs}\n renderItem={renderRow}\n />\n </div>\n )\n }\n // Flat: each row is a real box (the listitem; a `display: contents`\n // role is dropped by some engines) stretching its node as the List would;\n // the divider sits centred in the gap before it, as WindowedList draws it.\n const axis = horizontal ? `horizontal` : `vertical`\n const out: ReactNode[] = []\n for (let r = 0; r < rows.length; r++) {\n const line = divider(r)\n out.push(\n <div key={keyOf(r)} className=\"xui-list-row\" data-axis={axis} data-xui-row={r} {...itemAttrs(r)}>\n {line ? (\n <div className=\"xui-list-gap\" aria-hidden=\"true\" data-axis={axis} style={horizontal ? { [rtl ? `right` : `left`]: -(step / 2) } : { top: -(step / 2) }}>\n {line}\n </div>\n ) : null}\n {renderRow(r)}\n </div>\n )\n }\n return (\n <div ref={rootRef} {...(rootProps as Record<string, unknown>)} style={style} role={listRole}>\n {out}\n </div>\n )\n}\n\nconst ListRowView = memo(function ListRowView({ row, node, tpl, sections, childCount, part }: { row: ListRow; node: NativeProps[`node`]; tpl: ReturnType<typeof templateItems>; sections: ListSection[] | null; childCount: number; part: PartFn }) {\n if (`header` in row) {\n const section = sections?.[row.header]\n if (!section) return null\n return (\n <div {...(part.at(`section`, row.header) as Record<string, string>)} role=\"heading\" aria-level={3}>\n {node.slots?.section ? <LiteralScope value={{ value: section.value, count: section.count, index: row.header }} pointer={`${LITERAL_ROWS_ROOT}/${node.id.replace(/[~/]/g, `_`)}/sections/${row.header}`} suffix={`.${row.header}`} node={node.slots.section} /> : section.value}\n </div>\n )\n }\n if (row.item < childCount) return <NodeView node={node.children[row.item]} />\n const item = tpl?.items[row.item - childCount]\n if (!tpl || !item) return null\n return <TemplateItemView tpl={tpl.tpl} item={item} />\n})\n\n/** A node bound against a LITERAL scope (a List section header's `{value,\n * count, index}`): mounted into a read view of the data model at a\n * synthetic pointer (relative paths read the literal, absolute ones the\n * surface data; writes under it go nowhere). */\nfunction LiteralScope({ value, pointer, suffix, node }: { value: unknown; pointer: string; suffix: string; node: NativeProps[`node`] }) {\n const ctx = useSurfaceContext()\n const outer = useContext(InstanceContext)\n const view = useMemo(() => {\n const data = readView(ctx, pointer, value)\n const setData = (p: string, v: unknown) => {\n if (p !== pointer && !p.startsWith(`${pointer}/`)) ctx.setData(p, v)\n }\n return deriveContext(ctx, { setData }, data)\n }, [ctx, pointer, value])\n return (\n <SurfaceContext.Provider value={view}>\n <ScopeContext.Provider value={pointer}>\n <InstanceContext.Provider value={`${outer}${suffix}`}>\n <NodeView node={node} />\n </InstanceContext.Provider>\n </ScopeContext.Provider>\n </SurfaceContext.Provider>\n )\n}\n\nexport function UnknownNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n return (\n <div {...(rootProps as Record<string, unknown>)} role=\"note\" data-xui-unknown={str(props.component, node.component)}>\n <BuiltinIcon slot=\"Unknown.root\" size={16} />\n <span {...(part(`label`) as Record<string, string>)}>\n {ctx.t(`unknownComponent`)} {str(props.component, node.component)}\n </span>\n </div>\n )\n}\n",
|
|
28
|
+
"// VAPP-87 + rounds 1–2: Box, List and the Unknown placeholder. A List renders\n// its children then its data template's items (keyed by `template.key`, so\n// reordering keeps each item's state), optionally in sections; past\n// `WINDOW_THRESHOLD` (50, the catalog's) items it windows on its axis.\n\nimport { memo, useCallback, useContext, useEffect, useMemo, useRef, type KeyboardEvent, type ReactNode } from \"react\"\nimport { listSections, sectionRows, WINDOW_THRESHOLD as CATALOG_WINDOW_THRESHOLD, type ListSection } from \"@exponential_app/eui\"\nimport { InstanceContext, ScopeContext, SurfaceContext, deriveContext, readView, useSurfaceContext } from \"../context\"\nimport { getPointer, LITERAL_ROWS_ROOT } from \"@exponential_app/eui/web\"\nimport { WindowedList, type WindowedListHandle } from \"../list\"\nimport type { NativeProps } from \"../node-view\"\nimport { NodeView, TemplateItemView, mergeStyle, templateItems } from \"../node-view\"\nimport { bool, BuiltinIcon, num, str, useParts, type PartFn } from \"./shared\"\n\nexport function BoxNative({ node, props, rootProps, emit, children }: NativeProps) {\n const ctx = useSurfaceContext()\n // #EXP-1674: `Row.href` lands here and opens like a Link's (the policy decides).\n const href = str(props.href)\n const pressable = bool(props.pressable) || Boolean(node.on?.press) || Boolean(href)\n if (!pressable) return <div {...(rootProps as Record<string, unknown>)}>{children}</div>\n const press = () => {\n if (href) ctx.openUrl(href)\n void emit(`press`)\n }\n const onKey = (e: KeyboardEvent) => {\n if (e.target !== e.currentTarget) return\n if (e.key === `Enter` || e.key === ` `) {\n e.preventDefault()\n press()\n }\n }\n return (\n <div {...(rootProps as Record<string, unknown>)} data-pressable=\"true\" role=\"button\" tabIndex={0} onClick={press} onKeyDown={onKey}>\n {children}\n </div>\n )\n}\n\n/** Past this many items a List windows (fewer render flat, so fixtures\n * snapshot every row). The catalog's number (`layout.json`). */\nexport const WINDOW_THRESHOLD = CATALOG_WINDOW_THRESHOLD\n\n/** One row of a List: an item (a child or a template item, by its index in\n * the list) or a section header. */\ntype ListRow = { item: number } | { header: number }\n\n/** List (round 2 §5): children then the data template's items; `sectionBy`\n * groups consecutive template items under a `section` header (the slot,\n * bound once per section with the literal scope `{value, count, index}`,\n * else the value); past `WINDOW_THRESHOLD` items, or with `stickyHeaders`,\n * the list WINDOWS on its axis (vertical or horizontal) against its own\n * scroll, the nearest scroller or the viewport. Every item is a listitem\n * with its position in the whole list; `scrollToIndex` (the host command)\n * takes the data index. */\nexport function ListNative({ node, props, rootProps, scope, domId }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const divided = bool(props.divided)\n const horizontal = props.direction === `horizontal`\n const gap = str(props.gap, `none`)\n const tokens = ctx.theme.tokens as unknown as { spacing?: Record<string, number>; control?: Record<string, number> }\n const gapPx = gap === `none` ? 0 : num(tokens.spacing?.[gap], 0)\n const hairline = num(tokens.control?.hairline, 1)\n const rowExtent = num(tokens.control?.row, 40)\n // Keyed once per data change (a 100,000-row list must not re-key on scroll).\n const tpl = useMemo(() => templateItems(ctx, node, scope), [ctx.data, ctx.templateNode, node, scope]) // eslint-disable-line react-hooks/exhaustive-deps\n const childCount = node.children.length\n const itemCount = childCount + (tpl?.items.length ?? 0)\n const sectionBy = str(props.sectionBy)\n const sections = useMemo(() => (sectionBy && tpl ? listSections(tpl.items.map((item) => getPointer(ctx.data, item.path)), sectionBy) : null), [sectionBy, tpl, ctx.data])\n const rows = useMemo((): ListRow[] => {\n const out: ListRow[] = []\n for (let i = 0; i < childCount; i++) out.push({ item: i })\n if (sections) for (const r of sectionRows(sections)) out.push(`header` in r ? r : { item: childCount + r.item })\n else for (let i = childCount; i < itemCount; i++) out.push({ item: i })\n return out\n }, [childCount, itemCount, sections])\n const sticky = bool(props.stickyHeaders) && sections !== null\n const windowed = itemCount > WINDOW_THRESHOLD || sticky\n // §5: rows sit `gap` apart; a divided list adds the hairline to the gap\n // and centres the divider in it. Flat and windowed lay out the same.\n const step = gapPx + (divided ? hairline : 0)\n const flatGap = gap === `none` ? (divided ? `${hairline}px` : undefined) : divided ? `calc(var(--xui-spacing-${gap}) + ${hairline}px)` : `var(--xui-spacing-${gap})`\n const style = mergeStyle(rootProps, { gap: windowed ? undefined : flatGap })\n const rtl = horizontal && ctx.direction === `rtl`\n const keyOf = (r: number) => {\n const row = rows[r]\n if (`header` in row) return `s:${row.header}`\n return row.item < childCount ? node.children[row.item].id : `t:${tpl!.items[row.item - childCount].key}`\n }\n // A divider sits before every item that follows another item.\n const dividerBefore = (r: number): number | null => {\n if (!divided || r === 0) return null\n const row = rows[r]\n const prev = rows[r - 1]\n return `item` in row && `item` in prev ? row.item : null\n }\n const windowRef = useRef<WindowedListHandle | null>(null)\n const rootRef = useRef<HTMLDivElement | null>(null)\n // `scrollToIndex` {id, index (data order), align}: the template's index\n // (children come first), else the child's.\n const rowOfIndex = useCallback((index: number) => rows.findIndex((r) => `item` in r && r.item === (tpl ? childCount + index : index)), [rows, tpl, childCount])\n useEffect(\n () =>\n ctx.registerScroller(domId, (index, align) => {\n const r = rowOfIndex(index)\n if (r < 0) return\n if (windowed) windowRef.current?.scrollToIndex(r, align)\n else {\n // Own rows only (`:scope >`): a nested List has rows of its own.\n const el = rootRef.current?.querySelector<HTMLElement>(`:scope > [data-xui-row=\"${r}\"]`)\n const block = align === `center` ? `center` : align === `end` ? `end` : align === `start` ? `start` : `nearest`\n el?.scrollIntoView(horizontal ? { inline: block, block: `nearest` } : { block, inline: `nearest` })\n }\n }),\n [ctx, domId, rowOfIndex, windowed, horizontal]\n )\n const renderRow = (r: number) => <ListRowView row={rows[r]} node={node} tpl={tpl} sections={sections} childCount={childCount} part={part} />\n // Round 3: a Section body with `tree` asks for role `tree` ($a11y); its\n // items are then treeitems (a tree owns treeitems only).\n const listRole = (rootProps as Record<string, unknown>).role === `tree` ? `tree` : `list`\n const itemRole = listRole === `tree` ? `treeitem` : `listitem`\n const itemAttrs = (r: number): Record<string, unknown> => {\n const row = rows[r]\n // A section header is a listitem holding its heading (a list owns\n // listitems only); items carry their position among the ITEMS.\n return `item` in row ? { role: itemRole, \"aria-setsize\": itemCount, \"aria-posinset\": row.item + 1 } : { role: itemRole }\n }\n const divider = (r: number) => {\n const before = dividerBefore(r)\n return before === null ? null : <div {...(part.at(`divider`, before) as Record<string, string>)} role=\"separator\" />\n }\n if (windowed) {\n const headerRows = sticky ? rows.flatMap((row, r) => (`header` in row ? [r] : [])) : undefined\n return (\n <div ref={rootRef} {...(rootProps as Record<string, unknown>)} style={style} role={listRole}>\n <WindowedList\n ref={windowRef}\n count={rows.length}\n itemKey={keyOf}\n estimatedItemHeight={rowExtent}\n axis={horizontal ? `horizontal` : `vertical`}\n direction={ctx.direction}\n gap={step}\n divider={divider}\n stickyRows={headerRows}\n itemProps={itemAttrs}\n renderItem={renderRow}\n />\n </div>\n )\n }\n // Flat: each row is a real box (the listitem; a `display: contents`\n // role is dropped by some engines) stretching its node as the List would;\n // the divider sits centred in the gap before it, as WindowedList draws it.\n const axis = horizontal ? `horizontal` : `vertical`\n const out: ReactNode[] = []\n for (let r = 0; r < rows.length; r++) {\n const line = divider(r)\n out.push(\n <div key={keyOf(r)} className=\"xui-list-row\" data-axis={axis} data-xui-row={r} {...itemAttrs(r)}>\n {line ? (\n <div className=\"xui-list-gap\" aria-hidden=\"true\" data-axis={axis} style={horizontal ? { [rtl ? `right` : `left`]: -(step / 2) } : { top: -(step / 2) }}>\n {line}\n </div>\n ) : null}\n {renderRow(r)}\n </div>\n )\n }\n return (\n <div ref={rootRef} {...(rootProps as Record<string, unknown>)} style={style} role={listRole}>\n {out}\n </div>\n )\n}\n\nconst ListRowView = memo(function ListRowView({ row, node, tpl, sections, childCount, part }: { row: ListRow; node: NativeProps[`node`]; tpl: ReturnType<typeof templateItems>; sections: ListSection[] | null; childCount: number; part: PartFn }) {\n if (`header` in row) {\n const section = sections?.[row.header]\n if (!section) return null\n return (\n <div {...(part.at(`section`, row.header) as Record<string, string>)} role=\"heading\" aria-level={3}>\n {node.slots?.section ? <LiteralScope value={{ value: section.value, count: section.count, index: row.header }} pointer={`${LITERAL_ROWS_ROOT}/${node.id.replace(/[~/]/g, `_`)}/sections/${row.header}`} suffix={`.${row.header}`} node={node.slots.section} /> : section.value}\n </div>\n )\n }\n if (row.item < childCount) return <NodeView node={node.children[row.item]} />\n const item = tpl?.items[row.item - childCount]\n if (!tpl || !item) return null\n return <TemplateItemView tpl={tpl.tpl} item={item} />\n})\n\n/** A node bound against a LITERAL scope (a List section header's `{value,\n * count, index}`): mounted into a read view of the data model at a\n * synthetic pointer (relative paths read the literal, absolute ones the\n * surface data; writes under it go nowhere). */\nfunction LiteralScope({ value, pointer, suffix, node }: { value: unknown; pointer: string; suffix: string; node: NativeProps[`node`] }) {\n const ctx = useSurfaceContext()\n const outer = useContext(InstanceContext)\n const view = useMemo(() => {\n const data = readView(ctx, pointer, value)\n const setData = (p: string, v: unknown) => {\n if (p !== pointer && !p.startsWith(`${pointer}/`)) ctx.setData(p, v)\n }\n return deriveContext(ctx, { setData }, data)\n }, [ctx, pointer, value])\n return (\n <SurfaceContext.Provider value={view}>\n <ScopeContext.Provider value={pointer}>\n <InstanceContext.Provider value={`${outer}${suffix}`}>\n <NodeView node={node} />\n </InstanceContext.Provider>\n </ScopeContext.Provider>\n </SurfaceContext.Provider>\n )\n}\n\nexport function UnknownNative({ node, props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n return (\n <div {...(rootProps as Record<string, unknown>)} role=\"note\" data-xui-unknown={str(props.component, node.component)}>\n <BuiltinIcon slot=\"Unknown.root\" size={16} />\n <span {...(part(`label`) as Record<string, string>)}>\n {ctx.t(`unknownComponent`)} {str(props.component, node.component)}\n </span>\n </div>\n )\n}\n",
|
|
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",
|
|
@@ -34,15 +34,15 @@
|
|
|
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",
|
|
36
36
|
"// Round 1 (contract §3 Table, a11y.json Table): the data TABLE as a native.\n// Object columns (`{key, label, type, slot, width, align, sortable}`) and\n// rows; cells by type (text, a LOCALE number, a locale date, a tick, the\n// value in a Badge look, or the Table slot named by `slot` rendered once per\n// row with the ROW as its data scope). Sorting: a sortable header cycles\n// asc → desc; a BOUND `sort` is the host's (it orders `rows`), an unbound\n// one sorts a local copy (numbers numerically, strings by the locale\n// collator, missing last). Selection: `single` = a row press selects,\n// `multiple` = a checkbox column with a select-all header; a bound\n// `selected` is written. `striped` queries the row recipe with `striped:\n// true` on ODD rows; header/cell parts carry their column's `align`. Past\n// `WINDOW_THRESHOLD` (50) rows the body windows (`WindowedList`).\n// Keyboard (a11y.json Table): an interactive table has ONE roving tab stop\n// on its rows (the focused row, else the first selected, else the first);\n// ArrowUp/Down, Home/End move it BY INDEX (scrolling a windowed body to the\n// row first), Enter presses, Space selects.\n\nimport { useCallback, useContext, useEffect, useMemo, useRef, useState, type KeyboardEvent, type ReactNode } from \"react\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\nimport { tableRowKeys, WINDOW_THRESHOLD } from \"@exponential_app/eui\"\nimport { InstanceContext, ScopeContext, SurfaceContext, deriveContext, readView, useSurfaceContext } from \"../context\"\nimport { boundPath, getPointer, setPointer, LITERAL_ROWS_ROOT } from \"@exponential_app/eui/web\"\nimport { WindowedList, type WindowedListHandle } from \"../list\"\nimport { NodeView, type NativeProps } from \"../node-view\"\nimport { partClass } from \"@exponential_app/eui/web\"\nimport { useBoundState } from \"./bound\"\nimport { displayString } from \"@exponential_app/eui\"\nimport { arr, bool, BuiltinIcon, num, phrase, str, useParts, objects } from \"./shared\"\nimport { sortRows, tableMinWidth, tableTemplate, type TableColumn, type TableSort as Sort } from \"@exponential_app/eui/web\"\n\nexport { sortRows }\nexport type { TableColumn }\n\nconst CURRENCY_CODE = /^[A-Za-z]{3}$/\n\n/** A cell value as a number (a number, or a numeric string); NaN otherwise. */\nconst cellNumber = (v: unknown): number => (typeof v === `number` ? v : typeof v === `string` && v.trim() !== `` ? Number(v) : NaN)\n\nexport function TableNative({ node, props, rootProps, emit, scope, domId }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n const columns = objects<TableColumn>(props.columns)\n const rows = objects<Record<string, unknown>>(props.rows)\n const rowKey = str(props.rowKey, `id`)\n const selectable = str(props.selectable, `none`)\n const striped = bool(props.striped)\n const rowsPath = boundPath(node.props, `rows`, scope)\n const sortBound = boundPath(node.props, `sort`, scope) !== undefined\n const rawSort = props.sort as Sort | undefined\n const [sort, setSort] = useBoundState<Sort | null>(node, scope, `sort`, rawSort && rawSort.key ? { key: rawSort.key, direction: rawSort.direction === `desc` ? `desc` : `asc` } : null)\n const [selected, setSelected] = useBoundState<string[]>(node, scope, `selected`, arr<unknown>(props.selected).map(String))\n // Round 2 §4: the row keys (`rowKey` field; missing, empty or duplicate →\n // `#<index>`), the instance suffix of every row part and slot cell.\n const rowKeys = useMemo(() => tableRowKeys(rows, rowKey), [rows, rowKey])\n const keyOf = (_row: Record<string, unknown>, i: number) => rowKeys[i] ?? String(i)\n const order = useMemo(() => (sortBound ? rows.map((_, i) => i) : sortRows(rows, sort, columns.find((c) => c.key === sort?.key), ctx.locale)), [rows, sort, sortBound, columns, ctx.locale])\n // The checkbox column is as wide as the checkbox (round 2 §7); EXP-1548:\n // header and body never narrower than the columns, the root scrolls.\n const template = tableTemplate(columns, selectable === `multiple`)\n const minWidth = tableMinWidth(columns, selectable === `multiple`)\n const cycle = (c: TableColumn) => {\n const next: Sort = sort?.key === c.key && sort.direction === `asc` ? { key: c.key, direction: `desc` } : { key: c.key, direction: `asc` }\n setSort(next)\n void emit(`sort`, { sort: next }, { sort: next })\n }\n const select = (next: string[]) => {\n setSelected(next)\n void emit(`select`, { selected: next }, { selected: next })\n }\n const allKeys = rows.map(keyOf)\n const allSelected = allKeys.length > 0 && allKeys.every((k) => selected.includes(k))\n const someSelected = !allSelected && allKeys.some((k) => selected.includes(k))\n const interactive = selectable !== `none` || Boolean(node.on?.rowPress)\n const windowed = rows.length > WINDOW_THRESHOLD\n\n // The roving tab stop (by row KEY, so a re-sort keeps it on its row).\n const [focusKey, setFocusKey] = useState<string | null>(null)\n const orderKeys = order.map((i) => keyOf(rows[i], i))\n const stopKey = focusKey !== null && orderKeys.includes(focusKey) ? focusKey : (orderKeys.find((k) => selected.includes(k)) ?? orderKeys[0] ?? null)\n const bodyRef = useRef<HTMLDivElement | null>(null)\n const windowRef = useRef<WindowedListHandle | null>(null)\n const pendingFocus = useRef<string | null>(null)\n // OWN rows only (flat: the body's children; windowed: the window's\n // items'): a nested Table in a slot cell has rows of its own.\n const focusRow = useCallback((key: string) => {\n const k = `[role=\"row\"][data-key=\"${typeof CSS !== `undefined` && CSS.escape ? CSS.escape(key) : key.replace(/\"/g, `\\\\\"`)}\"]`\n return bodyRef.current?.querySelector<HTMLElement>(`:scope > ${k}, :scope > .xui-list-window > .xui-list-item > ${k}`) ?? null\n }, [])\n const moveTo = (pos: number) => {\n if (orderKeys.length === 0) return\n const clamped = Math.max(0, Math.min(orderKeys.length - 1, pos))\n const key = orderKeys[clamped]\n setFocusKey(key)\n const el = focusRow(key)\n if (el) el.focus()\n else {\n // Windowed and not mounted yet: bring it into the window; the row's\n // ref focuses it when it mounts.\n pendingFocus.current = key\n windowRef.current?.scrollToIndex(clamped)\n }\n }\n // The `scrollToIndex` host command (round 2 §5): the DATA index (before a\n // local sort) → its position in the shown order.\n useEffect(\n () =>\n ctx.registerScroller(domId, (index, align) => {\n const pos = order.indexOf(index)\n if (pos < 0) return\n if (windowed) windowRef.current?.scrollToIndex(pos, align)\n else focusRow(keyOf(rows[index], index))?.scrollIntoView({ block: align === `center` || align === `start` || align === `end` ? align : `nearest` })\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [ctx, domId, order, windowed, rows, rowKeys]\n )\n // Literal (unbound) rows: a slot cell's edits live HERE, per row key, never\n // in the surface data model (there is no path to write them to).\n const [literalEdits, setLiteralEdits] = useState<Record<string, Record<string, unknown>>>({})\n const editLiteral = useCallback((key: string, base: Record<string, unknown>, pointer: string, value: unknown) => {\n setLiteralEdits((cur) => ({ ...cur, [key]: setPointer(cur[key] ?? base, pointer, value) as Record<string, unknown> }))\n }, [])\n\n const cell = (c: TableColumn, row: Record<string, unknown>, index: number): ReactNode => {\n const v = row?.[c.key]\n const missing = v === undefined || v === null || v === ``\n const decimals = c.decimals === undefined ? undefined : num(c.decimals)\n // Round 2 §3: every formatted cell goes through the surface Formatter,\n // guarded as the bind table's format functions are: a value that is not\n // a finite number = an empty cell, a currency that is not 3 letters =\n // an empty cell (Intl would throw).\n const n = cellNumber(v)\n switch (c.type) {\n case `number`:\n return Number.isFinite(n) ? ctx.formatter.number(n, { decimals }) : ``\n case `currency`: {\n const code = c.currency === undefined ? `USD` : c.currency\n return Number.isFinite(n) && typeof code === `string` && CURRENCY_CODE.test(code) ? ctx.formatter.currency(n, code, { decimals }) : ``\n }\n case `percent`:\n return Number.isFinite(n) ? ctx.formatter.percent(n, { decimals }) : ``\n case `date`:\n return missing ? `` : ctx.formatter.date(v)\n case `relativeTime`:\n return missing ? `` : ctx.formatter.relativeTime(v, ctx.now())\n case `boolean`:\n return v ? <BuiltinIcon slot=\"Checkbox.check\" size={16} /> : <span className=\"xui-sr-only\">—</span>\n case `badge`:\n return v === undefined || v === null || v === `` ? null : (\n <span className={`${ctx.compiled.scope} ${partClass(`Badge`, `root`)} xui-table-badge`} data-xui-part=\"Badge/root\" data-m-variant=\"secondary\">\n <span className={`${ctx.compiled.scope} ${partClass(`Badge`, `label`)}`} data-xui-part=\"Badge/label\" data-m-variant=\"secondary\">\n {String(v)}\n </span>\n </span>\n )\n case `slot`: {\n const slot = c.slot ? node.slots?.[c.slot] : undefined\n if (!slot) return null\n const key = keyOf(row, index)\n return <RowScope rowsPath={rowsPath} row={rowsPath ? row : (literalEdits[key] ?? row)} rowKey={key} index={index} tableId={domId} node={slot} onLiteralEdit={editLiteral} />\n }\n default:\n return displayString(v)\n }\n }\n\n const renderRow = (pos: number) => {\n const index = order[pos]\n const row = rows[index]\n const key = keyOf(row, index)\n const isSel = selected.includes(key)\n const odd = pos % 2 === 1\n const press = () => {\n if (selectable === `single`) select(isSel ? [] : [key])\n if (node.on?.rowPress) void emit(`rowPress`, { key, row })\n }\n return (\n <div\n key={key}\n role=\"row\"\n aria-rowindex={pos + 2}\n aria-selected={selectable !== `none` ? isSel : undefined}\n tabIndex={interactive ? (key === stopKey ? 0 : -1) : undefined}\n data-key={key}\n onFocus={interactive ? (e) => e.target === e.currentTarget && key !== focusKey && setFocusKey(key) : undefined}\n ref={\n interactive\n ? (el: HTMLDivElement | null) => {\n // A row the keyboard moved to before it was mounted (a\n // windowed body): focus it the moment it mounts.\n if (el && pendingFocus.current === key) {\n pendingFocus.current = null\n el.focus()\n }\n }\n : undefined\n }\n {...(part.atWith(`row`, key, { striped: striped && odd }, isSel && `selected`) as Record<string, string>)}\n style={{ gridTemplateColumns: template }}\n onClick={interactive && selectable !== `multiple` ? press : node.on?.rowPress ? press : undefined}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.target !== e.currentTarget) return\n if (e.key === `Enter` || (e.key === ` ` && selectable === `single`)) {\n e.preventDefault()\n press()\n } else if (e.key === `ArrowDown` || e.key === `ArrowUp`) {\n e.preventDefault()\n // From the row the keyboard is GOING to (a pending, not yet\n // mounted one) so fast presses are never lost.\n const pending = pendingFocus.current === null ? -1 : orderKeys.indexOf(pendingFocus.current)\n moveTo((pending >= 0 ? pending : pos) + (e.key === `ArrowDown` ? 1 : -1))\n } else if (e.key === `Home` || e.key === `End`) {\n e.preventDefault()\n moveTo(e.key === `Home` ? 0 : orderKeys.length - 1)\n }\n }}\n >\n {selectable === `multiple` ? (\n <div role=\"gridcell\" className=\"xui-table-check\">\n <CheckboxPrimitive.Root\n {...(part.at(`checkbox`, key, isSel && `checked`) as Record<string, string>)}\n className={`${part(`checkbox`).className as string} xui-Checkbox-box`}\n checked={isSel}\n aria-label={ctx.t(`selectRow`)}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={(next) => select(next === true ? [...selected, key] : selected.filter((k) => k !== key))}\n >\n <CheckboxPrimitive.Indicator className=\"xui-Checkbox-check\">\n <BuiltinIcon slot=\"Checkbox.check\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n </div>\n ) : null}\n {columns.map((c, ci) => (\n <div key={c.key} role={interactive ? `gridcell` : `cell`} {...(part.atWith(`cell`, `${key}.${ci}`, { align: c.align ?? `start` }) as Record<string, string>)} data-type={c.type ?? `text`} data-truncate={c.truncate ? `true` : undefined}>\n {c.truncate ? <span className=\"xui-table-text\">{cell(c, row, index)}</span> : cell(c, row, index)}\n </div>\n ))}\n </div>\n )\n }\n\n const header = (\n <div role=\"rowgroup\" {...(part(`header`) as Record<string, string>)} data-sticky={bool(props.stickyHeader) ? `true` : undefined} style={{ minWidth }}>\n <div role=\"row\" aria-rowindex={1} className=\"xui-table-row\" style={{ gridTemplateColumns: template }}>\n {selectable === `multiple` ? (\n <div role=\"columnheader\" className=\"xui-table-check\">\n <CheckboxPrimitive.Root\n {...(part.at(`checkbox`, `header`, allSelected && `checked`) as Record<string, string>)}\n className={`${part(`checkbox`).className as string} xui-Checkbox-box`}\n checked={allSelected ? true : someSelected ? `indeterminate` : false}\n aria-label={ctx.t(`selectAll`)}\n onCheckedChange={(next) => select(next === true ? allKeys : [])}\n >\n <CheckboxPrimitive.Indicator className=\"xui-Checkbox-check\">\n <BuiltinIcon slot=\"Checkbox.check\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n </div>\n ) : null}\n {columns.map((c, ci) => {\n const active = sort?.key === c.key ? sort.direction : null\n const ariaSort = active === `asc` ? `ascending` : active === `desc` ? `descending` : c.sortable ? `none` : undefined\n return (\n <div key={c.key} role=\"columnheader\" aria-sort={ariaSort} {...(part.atWith(`headerCell`, ci, { align: c.align ?? `start` }) as Record<string, string>)}>\n {c.sortable ? (\n <button type=\"button\" className=\"xui-table-sort\" aria-label={phrase(ctx, active === `asc` ? `sortByDescending` : `sortByAscending`, { name: str(c.label) }, () => `${str(c.label)}: ${ctx.t(active === `asc` ? `sortDescending` : `sortAscending`)}`)} onClick={() => cycle(c)}>\n <span>{str(c.label)}</span>\n <span {...(part(`sortIcon`) as Record<string, string>)} data-direction={active ?? undefined} aria-hidden=\"true\">\n {active ? <BuiltinIcon slot={`Table.sortIcon.${active}`} /> : null}\n </span>\n </button>\n ) : (\n <span>{str(c.label)}</span>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n\n const caption = str(props.caption)\n return (\n <div\n {...(rootProps as Record<string, unknown>)}\n role={interactive ? `grid` : `table`}\n aria-rowcount={rows.length + 1}\n aria-multiselectable={selectable === `multiple` || undefined}\n aria-describedby={caption ? `${domId}.caption` : undefined}\n aria-label={caption ? undefined : ((rootProps as Record<string, string | undefined>)[`aria-label`] ?? ctx.t(`table`))}\n data-windowed={windowed ? `true` : undefined}\n >\n {header}\n <div role=\"rowgroup\" {...(part(`body`) as Record<string, string>)} className={`${(part(`body`) as { className: string }).className} xui-table-body`} style={{ minWidth }} ref={bodyRef}>\n {rows.length === 0 ? (\n <div role=\"row\">\n <div role=\"cell\" {...(part(`empty`) as Record<string, string>)}>\n {str(props.emptyText) || ctx.t(`noResults`)}\n </div>\n </div>\n ) : windowed ? (\n <WindowedList ref={windowRef} count={order.length} itemKey={(i) => keyOf(rows[order[i]], order[i])} estimatedItemHeight={num(ctx.theme.tokens.control?.row, 40)} overscan={8} renderItem={renderRow} />\n ) : (\n order.map((_, pos) => renderRow(pos))\n )}\n </div>\n {caption ? (\n <div {...(part(`caption`) as Record<string, string>)} id={`${domId}.caption`}>\n {caption}\n </div>\n ) : null}\n {selectable === `multiple` && selected.length ? <span className=\"xui-sr-only\" aria-live=\"polite\">{ctx.t(`selectedCount`, { count: selected.length })}</span> : null}\n </div>\n )\n}\n\n/** A slot cell: the ROW is the slot's data scope and its instance suffix is\n * APPENDED to the outer one (`<id><outer>.<row key>`). A bound `rows` scopes\n * to the row's pointer. Literal rows are mounted into a read view of the\n * data model at a synthetic pointer: absolute bindings still read (and\n * write) the real model, a write UNDER the row goes to the table's local\n * per-row state (`onLiteralEdit`), so it survives the next render. */\nfunction RowScope({ rowsPath, row, rowKey, index, tableId, node, onLiteralEdit }: { rowsPath?: string; row: Record<string, unknown>; rowKey: string; index: number; tableId: string; node: NativeProps[`node`]; onLiteralEdit: (key: string, base: Record<string, unknown>, pointer: string, value: unknown) => void }) {\n const ctx = useSurfaceContext()\n const outer = useContext(InstanceContext)\n const literalPath = `${LITERAL_ROWS_ROOT}/${tableId.replace(/[~/]/g, `_`)}/${index}`\n const view = useMemo(() => {\n if (rowsPath) return ctx\n const data = readView(ctx, literalPath, row)\n const setData = (pointer: string, value: unknown) => {\n if (pointer === literalPath || pointer.startsWith(`${literalPath}/`)) onLiteralEdit(rowKey, (getPointer(data(), literalPath) as Record<string, unknown>) ?? row, pointer.slice(literalPath.length), value)\n else ctx.setData(pointer, value)\n }\n return deriveContext(ctx, { setData }, data)\n }, [ctx, rowsPath, literalPath, row, rowKey, onLiteralEdit])\n return (\n <SurfaceContext.Provider value={view}>\n <ScopeContext.Provider value={rowsPath ? `${rowsPath}/${index}` : literalPath}>\n <InstanceContext.Provider value={`${outer}.${rowKey}`}>\n <NodeView node={node} />\n </InstanceContext.Provider>\n </ScopeContext.Provider>\n </SurfaceContext.Provider>\n )\n}\n",
|
|
37
|
-
"// VAPP-87 + round 1: Text (`live` → an aria-live region; EXP-1324 `shimmer`\n// → `data-xui-shimmer`, base-css), Markdown (`lines` truncation), Icon.\n\nimport { displayString } from \"@exponential_app/eui\"\nimport { useSurfaceContext } from \"../context\"\nimport { IconGlyph } from \"../icons\"\nimport { BuiltinMarkdown } from \"../markdown\"\nimport type { NativeProps } from \"../node-view\"\nimport { mergeStyle } from \"../node-view\"\nimport { num, str } from \"./shared\"\n\nexport function TextNative({ props, rootProps }: NativeProps) {\n const lines = num(props.lines, 0)\n const align = props.align === `end` ? `end` : props.align === `center` ? `center` : props.align === `start` ? `start` : undefined\n // `align` is a base-layer rule (`data-xui-align`), so a node style\n // `textAlign` (the node layer) wins over it (round 2 §2, text-direction.json).\n const style: Record<string, string | number> = {}\n if (lines > 1) style.WebkitLineClamp = lines\n const live = props.live === `polite` || props.live === `assertive` ? props.live : undefined\n return (\n <span {...(rootProps as Record<string, unknown>)} aria-live={live} aria-atomic={live ? true : undefined} data-xui-align={align} data-lines={lines > 0 ? lines : undefined} data-clamp={lines > 1 ? `` : undefined} data-xui-shimmer={props.shimmer === true ? `` : undefined} style={mergeStyle(rootProps, Object.keys(style).length ? style : undefined)}>\n {displayString(props.text)}\n </span>\n )\n}\n\nexport function MarkdownNative({ props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const text = displayString(props.text)\n const Host = ctx.host.Markdown\n const lines = num(props.lines, 0)\n return (\n <div {...(rootProps as Record<string, unknown>)} data-lines={lines > 0 ? lines : undefined} style={mergeStyle(rootProps, lines > 0 ? ({ WebkitLineClamp: lines } as React.CSSProperties) : undefined)}>\n {Host ? <Host text={text} className=\"xui-md\" /> : <BuiltinMarkdown text={text} host={ctx.host} />}\n </div>\n )\n}\n\nexport function IconNative({ props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const name = str(props.name, `ui-icon-placeholder`)\n const label = str(props.label)\n return (\n <span {...(rootProps as Record<string, unknown>)} role={label ? `img` : undefined} aria-label={label || undefined} aria-hidden={label ? undefined : true}>\n <IconGlyph icons={ctx.host.icons} name={name} />\n </span>\n )\n}\n",
|
|
37
|
+
"// VAPP-87 + round 1: Text (`live` → an aria-live region; EXP-1324 `shimmer`\n// → `data-xui-shimmer`, base-css), Markdown (`lines` truncation), Icon.\n\nimport { displayString } from \"@exponential_app/eui\"\nimport { textLinkSegments } from \"@exponential_app/eui/web\"\nimport { useSurfaceContext } from \"../context\"\nimport { IconGlyph } from \"../icons\"\nimport { BuiltinMarkdown } from \"../markdown\"\nimport type { NativeProps } from \"../node-view\"\nimport { mergeStyle } from \"../node-view\"\nimport { num, str } from \"./shared\"\n\n/** #EXP-1674: a host's text links: the text's own colour, underlined; a tap\n * opens through the URL policy and never presses the Row behind it. */\nexport const TEXT_LINK_STYLE = { color: `inherit`, textDecoration: `underline` } as const\n\nexport function TextNative({ props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const segments = props.hostLinks === true ? textLinkSegments(ctx.host, displayString(props.text)) : null\n const lines = num(props.lines, 0)\n const align = props.align === `end` ? `end` : props.align === `center` ? `center` : props.align === `start` ? `start` : undefined\n // `align` is a base-layer rule (`data-xui-align`), so a node style\n // `textAlign` (the node layer) wins over it (round 2 §2, text-direction.json).\n const style: Record<string, string | number> = {}\n if (lines > 1) style.WebkitLineClamp = lines\n const live = props.live === `polite` || props.live === `assertive` ? props.live : undefined\n return (\n <span {...(rootProps as Record<string, unknown>)} aria-live={live} aria-atomic={live ? true : undefined} data-xui-align={align} data-lines={lines > 0 ? lines : undefined} data-clamp={lines > 1 ? `` : undefined} data-xui-shimmer={props.shimmer === true ? `` : undefined} style={mergeStyle(rootProps, Object.keys(style).length ? style : undefined)}>\n {segments\n ? segments.map((segment, i) =>\n segment.href ? (\n <a\n key={i}\n href={segment.href}\n data-xui-text-link=\"\"\n style={TEXT_LINK_STYLE}\n onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n ctx.openUrl(segment.href!)\n }}\n onKeyDown={(e) => e.stopPropagation()}\n >\n {segment.text}\n </a>\n ) : (\n segment.text\n )\n )\n : displayString(props.text)}\n </span>\n )\n}\n\nexport function MarkdownNative({ props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const text = displayString(props.text)\n const Host = ctx.host.Markdown\n const lines = num(props.lines, 0)\n return (\n <div {...(rootProps as Record<string, unknown>)} data-lines={lines > 0 ? lines : undefined} style={mergeStyle(rootProps, lines > 0 ? ({ WebkitLineClamp: lines } as React.CSSProperties) : undefined)}>\n {Host ? <Host text={text} className=\"xui-md\" /> : <BuiltinMarkdown text={text} host={ctx.host} />}\n </div>\n )\n}\n\nexport function IconNative({ props, rootProps }: NativeProps) {\n const ctx = useSurfaceContext()\n const name = str(props.name, `ui-icon-placeholder`)\n const label = str(props.label)\n return (\n <span {...(rootProps as Record<string, unknown>)} role={label ? `img` : undefined} aria-label={label || undefined} aria-hidden={label ? undefined : true}>\n <IconGlyph icons={ctx.host.icons} name={name} />\n </span>\n )\n}\n",
|
|
38
38
|
"// VAPP-87: the built-in markdown painter. The parser (a small GFM subset →\n// a block/inline tree) is the web layer's (`@exponential_app/eui/web`\n// markdown.ts, FEED-128); this paints the tree through the theme's\n// `Markdown/<part>` recipes. A host with a real renderer (the app's TipTap\n// view) passes it as `host.Markdown` and this one steps aside. VAPP-103:\n// every href passes the URL policy (denied = the label as text), every\n// image the media policy. A paragraph that is one image is a BLOCK image\n// (denied = a paragraph of its alt text); an image inside running text is\n// its alt text, as on every renderer.\n\nimport { Fragment, createElement, useMemo, type MouseEvent, type ReactNode } from \"react\"\nimport { linkHref, mediaRequestOf, parseMarkdown, type MarkdownBlock, type MarkdownInline, type MarkdownList } from \"@exponential_app/eui/web\"\nimport type { HostPlugin } from \"./host\"\nimport { useMediaSource } from \"./media\"\n\nexport { MAX_LINK_NESTING, MAX_LINK_DEST, MAX_BLOCK_NESTING, linkAt, wholeImage, parseList } from \"@exponential_app/eui/web\"\n\n/** A block image through the media policy and loader in an `imageHeight`\n * (160px, ×4) box (loading or loaded, so the box never jumps;\n * the alt text there while it loads or when it fails). A src the policy\n * DENIES is a paragraph of its alt text (nothing without one). */\nfunction MarkdownImage({ host, src, alt }: { host: HostPlugin; src: string; alt: string }) {\n const media = useMediaSource(host, src)\n if (mediaRequestOf(host, src) === null) return alt ? <p className=\"xui-Markdown-paragraph\">{alt}</p> : null\n return (\n <div className=\"xui-Markdown-image\" role=\"img\" aria-label={alt}>\n {media.url && !media.error ? <img alt=\"\" src={media.url} /> : <span className=\"xui-Markdown-imageAlt\">{alt}</span>}\n </div>\n )\n}\n\n/** A policed markdown link: a host with `openUrl` opens it (a plain click\n * goes through the host, never a bare new tab). */\nfunction MarkdownLink({ host, href, children }: { host: HostPlugin; href: string; children: ReactNode }) {\n const onClick = host.openUrl\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault()\n host.openUrl!(href)\n }\n : undefined\n return <a className=\"xui-Markdown-link\" href={href} target=\"_blank\" rel=\"noreferrer\" onClick={onClick}>{children}</a>\n}\n\nfunction inline(nodes: readonly MarkdownInline[], host: HostPlugin): ReactNode[] {\n return nodes.map((n, k) => {\n if (typeof n === `string`) return n\n switch (n.type) {\n case `code`:\n return <code key={k} className=\"xui-Markdown-code\">{n.text}</code>\n case `strong`:\n return <strong key={k}>{inline(n.children, host)}</strong>\n case `em`:\n return <em key={k}>{inline(n.children, host)}</em>\n case `del`:\n return <del key={k}>{n.text}</del>\n case `link`: {\n const href = linkHref(host, n.dest)\n const label = inline(n.children, host)\n return href ? <MarkdownLink key={k} host={host} href={href}>{label}</MarkdownLink> : <span key={k} className=\"xui-Markdown-link\" data-denied=\"\">{label}</span>\n }\n }\n })\n}\n\nfunction renderList(list: MarkdownList, host: HostPlugin, key: number): ReactNode {\n const items = list.items.map((item, n) => (\n <li key={n} className=\"xui-Markdown-listItem\" data-task={item.task === undefined ? undefined : item.task ? `done` : `todo`}>\n {item.task === undefined ? null : <input type=\"checkbox\" checked={item.task} readOnly />}\n {item.task === undefined ? null : ` `}\n {inline(item.content, host)}\n {item.children.map((c, ci) => <Fragment key={`c${ci}`}>{renderList(c, host, ci)}</Fragment>)}\n </li>\n ))\n return list.ordered ? <ol key={key}>{items}</ol> : <ul key={key}>{items}</ul>\n}\n\nfunction block(b: MarkdownBlock, host: HostPlugin, key: number): ReactNode {\n switch (b.type) {\n case `paragraph`:\n return <p key={key} className=\"xui-Markdown-paragraph\">{inline(b.children, host)}</p>\n case `image`:\n return <MarkdownImage key={key} host={host} src={b.src} alt={b.alt} />\n case `codeBlock`:\n return <pre key={key} className=\"xui-Markdown-codeBlock\" data-lang={b.lang}><code>{b.text}</code></pre>\n case `heading`:\n return createElement(`h${Math.min(b.level, 6)}`, { key, className: `xui-Markdown-heading`, \"data-level\": b.level }, ...inline(b.children, host))\n case `quote`:\n return <blockquote key={key} className=\"xui-Markdown-quote\">{blocks(b.children, host)}</blockquote>\n case `list`:\n return renderList(b.list, host, key)\n case `table`:\n return (\n <table key={key} className=\"xui-Markdown-table\">\n <thead><tr>{b.head.map((h, c) => <th key={c} style={b.align[c] ? { textAlign: b.align[c] } : undefined}>{inline(h, host)}</th>)}</tr></thead>\n <tbody>{b.rows.map((r, ri) => <tr key={ri}>{r.map((cell, c) => <td key={c} style={b.align[c] ? { textAlign: b.align[c] } : undefined}>{inline(cell, host)}</td>)}</tr>)}</tbody>\n </table>\n )\n case `rule`:\n return <hr key={key} />\n }\n}\n\nfunction blocks(tree: readonly MarkdownBlock[], host: HostPlugin): ReactNode[] {\n return tree.map((b, k) => <Fragment key={k}>{block(b, host, k)}</Fragment>)\n}\n\nexport function renderMarkdown(text: string, host: HostPlugin = {}): ReactNode[] {\n return blocks(parseMarkdown(text), host)\n}\n\nexport function BuiltinMarkdown({ text, className, host }: { text: string; className?: string; host?: HostPlugin }) {\n // Parsed once per text (and host), not on every parent render.\n const tree = useMemo(() => renderMarkdown(text, host), [text, host])\n return <div className={className ? `xui-md ${className}` : `xui-md`}>{tree}</div>\n}\n",
|
|
39
39
|
"// EXP-1586: ZoomableImage (catalog/style.json `zoomableImage`): the picture\n// through the host's media request, transformed by the shared zoom controller\n// (@exponential_app/eui/web/primitives `createZoomController`, every number\n// from the core's src/zoom.ts), and THE zoom pill: − / the percent (THE Menu\n// of `zoomMenu`, on the Menu's own parts and recipe) / + / a hairline / fit.\n// The parts' look is the theme recipe; the layout styles only place them.\n// Until the picture loads (pending or failed) the box keeps its size and\n// draws the placeholder (the image glyph + the alt) and NO pill.\n\nimport { useEffect, useMemo, useState } from \"react\"\nimport { DropdownMenu as MenuPrimitive } from \"radix-ui\"\nimport { MEDIA_INTRINSIC_WIDTH, OVERLAY_OFFSET, OVERLAY_PADDING, ZOOM, nativeRecipeProps, resolveRecipe } from \"@exponential_app/eui\"\nimport type { UiNode, ZoomInitial } from \"@exponential_app/eui\"\nimport { ZOOMABLE_IMAGE_NATIVE_TRANSITION, zoomBoxAspect, zoomableImageLayout, type ZoomControls } from \"@exponential_app/eui/web/primitives\"\nimport { useSurfaceContext } from \"../context\"\nimport { CHROME } from \"../icons\"\nimport { useMediaSource } from \"../media\"\nimport type { NativeProps } from \"../node-view\"\nimport { mergeStyle } from \"../node-view\"\nimport { ZOOM_MATH, useZoomableImage } from \"../primitives/zoomable-image\"\nimport { useBoundState } from \"./bound\"\nimport { MenuItems, type MenuItem } from \"./overlays\"\nimport { BuiltinIcon, num, str, useParts } from \"./shared\"\n\nconst LAYOUT = zoomableImageLayout(ZOOM.pill)\n\nconst positive = (v: unknown): number | undefined => (typeof v === `number` && Number.isFinite(v) && v > 0 ? v : undefined)\n\nexport function ZoomableImageNative({ node, props, rootProps, emit, scope }: NativeProps) {\n const ctx = useSurfaceContext()\n const part = useParts(node, props)\n // THE Menu's parts (its recipe styles the percent button's menu).\n const menuNode = useMemo<UiNode>(() => ({ id: `${node.id}.menu`, component: `Menu`, props: {}, children: [] }), [node.id])\n const menuPart = useParts(menuNode, menuNode.props)\n const src = str(props.src)\n const alt = str(props.alt)\n const controls = str(props.controls, `auto`) as ZoomControls\n const media = useMediaSource(ctx.host, src)\n // `scale` is bindable: a settled zoom writes the bound path.\n const [, setScale] = useBoundState<number | undefined>(node, scope, `scale`, positive(props.scale))\n const zoom = useZoomableImage({\n src: media.url,\n naturalWidth: positive(props.naturalWidth),\n naturalHeight: positive(props.naturalHeight),\n initial: str(props.initial, `auto`) as ZoomInitial,\n maxScale: positive(props.maxScale),\n scale: positive(props.scale),\n controls,\n transition: ctx.reducedMotion ? null : ZOOMABLE_IMAGE_NATIVE_TRANSITION,\n onZoom: (scale, atFit) => {\n setScale(scale)\n void emit(`zoom`, { scale, atFit }, { scale })\n },\n onTap: () => void emit(`tap`),\n })\n const [menuOpen, setMenuOpen] = useState(false)\n useEffect(() => zoom.controller.current?.holdPill(menuOpen), [menuOpen])\n const styled = node.style !== undefined && (node.style.height !== undefined || node.style.aspectRatio !== undefined)\n const aspect = zoomBoxAspect(ZOOM_MATH, zoom.natural, styled)\n const items: MenuItem[] = menuOpen ? zoom.menuItems(ctx.t(`zoomFit`)).map((item, i) => ({ kind: `checkbox`, label: item.label, value: String(i), checked: item.checked })) : []\n const choose = (event: string, payload?: Record<string, unknown>) => {\n if (event !== `select`) return\n const c = zoom.controller.current\n const f = c?.frame()\n const picked = c && f ? zoom.menuItems(ctx.t(`zoomFit`))[num(payload?.value, -1)] : undefined\n setMenuOpen(false)\n if (!c || !picked) return\n if (picked.scale === null) c.rest()\n else c.zoomScale(picked.scale)\n }\n const { pill } = zoom\n // The placeholder takes the picture's radius (the `image` recipe).\n const radius = zoom.ready ? undefined : resolveRecipe(ctx.theme, { component: `ZoomableImage`, part: `image`, props: nativeRecipeProps(`ZoomableImage`, props, ctx.extensionDefs) }, ctx.mode).borderRadius\n const ImageGlyph = CHROME.image\n return (\n <div\n {...(rootProps as Record<string, unknown>)}\n ref={zoom.rootRef}\n role=\"group\"\n aria-label={alt || undefined}\n tabIndex={0}\n style={mergeStyle(rootProps, { ...LAYOUT.root, ...(aspect !== null ? { aspectRatio: String(aspect) } : {}) })}\n >\n <img {...(part(`image`) as Record<string, string>)} ref={zoom.imageRef} src={media.url || undefined} alt={alt} draggable={false} loading=\"lazy\" decoding=\"async\" style={{ ...LAYOUT.image, ...(zoom.natural ? { width: zoom.natural.width, height: zoom.natural.height } : {}), ...(zoom.ready ? {} : LAYOUT.imagePending) }} onLoad={zoom.onImageLoad} />\n <svg className=\"xui-media-sizer\" aria-hidden=\"true\" width={MEDIA_INTRINSIC_WIDTH} height={1} />\n {zoom.ready ? null : (\n <div className=\"xui-zoom-placeholder\" aria-hidden=\"true\" style={radius !== undefined ? { borderRadius: radius as number } : undefined}>\n <ImageGlyph aria-hidden=\"true\" />\n {alt ? <span>{alt}</span> : null}\n </div>\n )}\n {controls !== `none` && zoom.ready ? (\n <div {...(part(`pill`) as Record<string, string>)} ref={zoom.pillRef} role=\"toolbar\" data-state={zoom.pillVisible ? `open` : `closed`} style={zoom.pillVisible ? LAYOUT.pill : { ...LAYOUT.pill, ...LAYOUT.pillHidden }}>\n <button type=\"button\" {...(part(`zoomOut`, pill.atMin && `disabled`) as Record<string, string>)} style={LAYOUT.button} aria-label={ctx.t(`zoomOut`)} disabled={pill.atMin} onClick={() => zoom.controller.current?.step(-1)}>\n <BuiltinIcon slot=\"ZoomableImage.zoomOut\" size={16} />\n </button>\n <MenuPrimitive.Root open={menuOpen} onOpenChange={setMenuOpen} dir={ctx.direction}>\n <MenuPrimitive.Trigger asChild>\n <button type=\"button\" {...(part(`percent`, menuOpen && `open`) as Record<string, string>)} style={LAYOUT.percent} aria-label={ctx.t(`zoomLevel`)}>\n {pill.percent}\n </button>\n </MenuPrimitive.Trigger>\n <MenuPrimitive.Portal container={ctx.portal ?? undefined}>\n <MenuPrimitive.Content {...(menuPart(`content`, menuOpen && `open`) as Record<string, string>)} side=\"top\" align=\"center\" sideOffset={OVERLAY_OFFSET} collisionPadding={OVERLAY_PADDING} data-xui-overlay=\"Menu\" data-open-on=\"press\">\n <MenuItems ns={MenuPrimitive} items={items} rawItems={undefined} part={menuPart} overlay=\"Menu\" emit={choose} scope={scope} path=\"\" close={() => setMenuOpen(false)} />\n </MenuPrimitive.Content>\n </MenuPrimitive.Portal>\n </MenuPrimitive.Root>\n <button type=\"button\" {...(part(`zoomIn`, pill.atMax && `disabled`) as Record<string, string>)} style={LAYOUT.button} aria-label={ctx.t(`zoomIn`)} disabled={pill.atMax} onClick={() => zoom.controller.current?.step(1)}>\n <BuiltinIcon slot=\"ZoomableImage.zoomIn\" size={16} />\n </button>\n <span {...(part(`divider`) as Record<string, string>)} aria-hidden=\"true\" style={LAYOUT.divider} />\n <button type=\"button\" {...(part(`fit`, pill.atRest && `selected`) as Record<string, string>)} style={LAYOUT.button} aria-label={ctx.t(`zoomToFit`)} aria-pressed={pill.atRest} onClick={() => zoom.controller.current?.rest()}>\n <BuiltinIcon slot=\"ZoomableImage.fit\" size={16} />\n </button>\n </div>\n ) : null}\n </div>\n )\n}\n",
|
|
40
40
|
"// VAPP-87 + round 1: the native component map — every `kind: native` of the\n// core catalog (macros expand in the reducer and never reach here). An\n// extension may add to or override this through `registerExtension`.\n// `natives.test.ts` gates it against the catalog: every native has a\n// painter, no painter is left without a catalog entry.\n\nimport type { ComponentType } from \"react\"\nimport { FormNative } from \"../form\"\nimport type { NativeProps } from \"../node-view\"\nimport { ButtonNative, LinkNative, ToggleNative } from \"./actions\"\nimport { ChartNative } from \"./chart\"\nimport { ChipInputNative, FileUploadNative } from \"./chips\"\nimport { ChoiceTilesNative } from \"./choice-tiles\"\nimport { CodeBlockNative } from \"./code\"\nimport { DatePickerNative, DateRangePickerNative, TimePickerNative } from \"./dates\"\nimport { MotionNative } from \"./motion\"\nimport { ResizableNative } from \"./resizable\"\nimport { RingNative, SkeletonNative, SpinnerNative, TreeGuidesNative, VoiceWaveNative } from \"./feedback\"\nimport { CheckboxNative, ComposerNative, InputNative, NumberFieldNative, RadioNative, SliderNative, SwitchNative, TextareaNative } from \"./inputs\"\nimport { BoxNative, ListNative, UnknownNative } from \"./layout\"\nimport { AudioPlayerNative, AvatarNative, CarouselNative, ImageNative, VideoNative } from \"./media\"\nimport { AccordionNative, SegmentedNative, TabsNative } from \"./nav\"\nimport { DialogNative, DrawerNative, MenuNative, PopoverNative, ToastNative, TooltipNative } from \"./overlays\"\nimport { QrCodeNative, QrScannerNative } from \"./qr\"\nimport { SearchListNative } from \"./search\"\nimport { SelectNative } from \"./select\"\nimport { TableNative } from \"./table\"\nimport { IconNative, MarkdownNative, TextNative } from \"./text\"\nimport { ZoomableImageNative } from \"./zoomable-image\"\n\n\nexport const NATIVES: Record<string, ComponentType<NativeProps>> = {\n Box: BoxNative,\n List: ListNative,\n Resizable: ResizableNative,\n Text: TextNative,\n Markdown: MarkdownNative,\n CodeBlock: CodeBlockNative,\n Image: ImageNative,\n ZoomableImage: ZoomableImageNative,\n Icon: IconNative,\n Video: VideoNative,\n AudioPlayer: AudioPlayerNative,\n Avatar: AvatarNative,\n QrCode: QrCodeNative,\n Carousel: CarouselNative,\n Tabs: TabsNative,\n Segmented: SegmentedNative,\n Accordion: AccordionNative,\n Dialog: DialogNative,\n Drawer: DrawerNative,\n Popover: PopoverNative,\n Tooltip: TooltipNative,\n Menu: MenuNative,\n Toast: ToastNative,\n Ring: RingNative,\n Spinner: SpinnerNative,\n Skeleton: SkeletonNative,\n VoiceWave: VoiceWaveNative,\n Motion: MotionNative,\n Table: TableNative,\n Chart: ChartNative,\n Button: ButtonNative,\n Link: LinkNative,\n Toggle: ToggleNative,\n Form: FormNative,\n Input: InputNative,\n Textarea: TextareaNative,\n NumberField: NumberFieldNative,\n Checkbox: CheckboxNative,\n Radio: RadioNative,\n ChoiceTiles: ChoiceTilesNative,\n Switch: SwitchNative,\n Slider: SliderNative,\n Select: SelectNative,\n SearchList: SearchListNative,\n ChipInput: ChipInputNative,\n DatePicker: DatePickerNative,\n DateRangePicker: DateRangePickerNative,\n TimePicker: TimePickerNative,\n FileUpload: FileUploadNative,\n QrScanner: QrScannerNative,\n Composer: ComposerNative,\n TreeGuides: TreeGuidesNative,\n Unknown: UnknownNative,\n}\n\nexport const NATIVE_NAMES: readonly string[] = Object.keys(NATIVES)\n",
|
|
41
41
|
"// VAPP-87: `useSurface` — the TS reducer as React state. Feed it A2UI v0.9\n// server messages (`createSurface`, `updateComponents`, `updateDataModel`,\n// `deleteSurface`) or a nested authoring tree, read back the normalized\n// root, the issues and the data model, and hand the result to\n// `<ExponentialSurface surface={…}>`.\n\nimport { useCallback, useMemo, useRef, useState } from \"react\"\nimport { CORE_CATALOG_ID, reduceNested, reduceSurface } from \"@exponential_app/eui\"\nimport type { ExtensionDef, FlatComponent, NestedNode, ReduceIssue, ResolvedTheme, UiNode } from \"@exponential_app/eui\"\nimport { setPointer } from \"@exponential_app/eui/web\"\nimport type { DataModel } from \"@exponential_app/eui/web\"\n\nexport interface A2uiMessage {\n version?: string\n createSurface?: { surfaceId: string; catalogId: string; theme?: unknown; sendDataModel?: boolean }\n updateComponents?: { surfaceId: string; components: FlatComponent[] }\n updateDataModel?: { surfaceId: string; path?: string; value?: unknown }\n deleteSurface?: { surfaceId: string }\n}\n\nexport interface UseSurfaceOptions {\n /** The surface id messages must carry; default `main`. */\n surfaceId?: string\n catalogId?: string\n extensions?: readonly ExtensionDef[]\n /** A nested tree to start from (fixtures, static screens). */\n initial?: NestedNode\n /** The initial data model. */\n data?: DataModel\n}\n\nexport interface SurfaceState {\n surfaceId: string\n catalogId: string\n root: UiNode | null\n issues: ReduceIssue[]\n /** Round 2: the nodes a data `template` renders per item, by component id\n * (`ReduceResult.templates`: lifted out of the tree, never painted in\n * place). */\n templates?: Readonly<Record<string, UiNode>>\n /** The server's `createSurface.theme`, resolved (a host surface). */\n theme?: ResolvedTheme\n data: DataModel\n /** True after `deleteSurface`. */\n deleted: boolean\n /** The flat components (for template children). */\n components: readonly FlatComponent[]\n extensions: readonly ExtensionDef[]\n apply: (message: A2uiMessage) => void\n setData: (pointer: string, value: unknown) => void\n /** Replace the tree with a nested authoring tree. */\n setNested: (tree: NestedNode) => void\n reset: () => void\n}\n\ninterface Inner {\n catalogId: string\n components: FlatComponent[]\n nested: NestedNode | null\n data: DataModel\n deleted: boolean\n}\n\n/** One empty list: a fresh `[]` per render would re-reduce on every render. */\nconst NO_EXTENSIONS: readonly ExtensionDef[] = []\n\nexport function useSurface(options: UseSurfaceOptions = {}): SurfaceState {\n const surfaceId = options.surfaceId ?? `main`\n const extensions = options.extensions ?? NO_EXTENSIONS\n const initialRef = useRef<Inner>({\n catalogId: options.catalogId ?? CORE_CATALOG_ID,\n components: [],\n nested: options.initial ?? null,\n data: options.data ?? {},\n deleted: false,\n })\n const [inner, setInner] = useState<Inner>(initialRef.current)\n\n const apply = useCallback(\n (message: A2uiMessage) => {\n setInner((cur) => {\n if (message.createSurface) {\n if (message.createSurface.surfaceId !== surfaceId) return cur\n return { ...cur, catalogId: message.createSurface.catalogId, components: [], nested: null, deleted: false }\n }\n if (message.updateComponents) {\n if (message.updateComponents.surfaceId !== surfaceId) return cur\n // A later update replaces components by id and keeps the rest.\n const byId = new Map(cur.components.map((c) => [c.id, c]))\n for (const c of message.updateComponents.components) byId.set(c.id, c)\n return { ...cur, components: [...byId.values()], nested: null, deleted: false }\n }\n if (message.updateDataModel) {\n if (message.updateDataModel.surfaceId !== surfaceId) return cur\n const { path, value } = message.updateDataModel\n return { ...cur, data: setPointer(cur.data, path ?? ``, value) }\n }\n if (message.deleteSurface) {\n if (message.deleteSurface.surfaceId !== surfaceId) return cur\n return { ...cur, components: [], nested: null, deleted: true }\n }\n return cur\n })\n },\n [surfaceId]\n )\n\n const setData = useCallback((pointer: string, value: unknown) => {\n setInner((cur) => ({ ...cur, data: setPointer(cur.data, pointer, value) }))\n }, [])\n\n const setNested = useCallback((tree: NestedNode) => {\n setInner((cur) => ({ ...cur, nested: tree, components: [], deleted: false }))\n }, [])\n\n const reset = useCallback(() => setInner(initialRef.current), [])\n\n const reduced = useMemo((): { root: UiNode | null; issues: ReduceIssue[]; templates?: Record<string, UiNode> } => {\n if (inner.deleted) return { root: null, issues: [] as ReduceIssue[] }\n if (inner.nested) return reduceNested(inner.nested, { catalogId: inner.catalogId, extensions })\n if (inner.components.length === 0) return { root: null, issues: [] as ReduceIssue[] }\n return reduceSurface(inner.components, { catalogId: inner.catalogId, extensions })\n // extensions are a stable array in practice; a new array means a new catalog view.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inner.nested, inner.components, inner.catalogId, inner.deleted, extensions])\n\n return {\n surfaceId,\n catalogId: inner.catalogId,\n root: reduced.root,\n issues: reduced.issues,\n templates: reduced.templates,\n data: inner.data,\n deleted: inner.deleted,\n components: inner.components,\n extensions,\n apply,\n setData,\n setNested,\n reset,\n }\n}\n",
|
|
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
|
-
"// 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"
|
|
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 textLinks: (text) => host.textLinks(text),\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": "7933C1446ED0A0FC64756E2164756E21",
|
|
47
47
|
"names": []
|
|
48
48
|
}
|