@fairfox/polly 0.73.0 → 0.74.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.
@@ -6,8 +6,8 @@
6
6
  "/**\n * ActionInput — dual-mode view/edit input with action dispatch on commit.\n *\n * View mode renders the current value as text (optionally through a\n * caller-supplied `renderView` for markdown, rich formatting, etc.).\n * Click, Enter, or Space enters edit mode. Edit mode is a native input\n * or textarea; commit fires the configured action with `data-action-value`\n * and `data-action-field` set from FormData-shape semantics, so the\n * existing event delegation handles it with no extra wiring.\n *\n * `saveOn` picks the commit trigger:\n * \"blur\" commit when the field loses focus\n * \"enter\" commit on Enter (single-line) or Cmd/Ctrl+Enter (multi-line)\n * \"cmd-enter\" commit only on Cmd/Ctrl+Enter\n * \"explicit\" never auto-commit — caller wires a save button with data-action\n * \"input\" commit on every keystroke — for filter-as-you-type fields;\n * the field stays in edit mode rather than toggling to view\n *\n * `inputType` sets the native input type for the single-line variant —\n * \"text\" (default), \"date\", \"time\", \"number\", and friends — so a date\n * or numeric field commits through the action system like any other.\n *\n * Layout-shift-free: view and edit modes share padding, border width,\n * font, and line-height so the toggle causes no reflow.\n */\n\nimport type { JSX } from \"preact\";\nimport { useCallback, useEffect, useRef, useState } from \"preact/hooks\";\nimport classes from \"./ActionInput.module.css\";\nimport { dispatchAction } from \"./internal/dispatch-action.ts\";\nimport { collectPassthrough, type PassthroughAttrs } from \"./internal/passthrough.ts\";\n\nexport type ActionInputSaveOn = \"blur\" | \"enter\" | \"cmd-enter\" | \"explicit\" | \"input\";\nexport type ActionInputVariant = \"single\" | \"multi\";\nexport type ActionInputType =\n | \"text\"\n | \"date\"\n | \"datetime-local\"\n | \"time\"\n | \"month\"\n | \"week\"\n | \"number\"\n | \"email\"\n | \"url\"\n | \"tel\";\n\nexport type ActionInputProps = PassthroughAttrs & {\n /** Current value to render in view mode and seed the edit buffer. */\n value: string;\n /** Action name to dispatch on commit. Receives data-action-value=<new value>. */\n action: string;\n /** Commit trigger. Default: \"blur\". */\n saveOn?: ActionInputSaveOn;\n variant?: ActionInputVariant;\n /** Native input type for the single-line variant. Default: \"text\". */\n inputType?: ActionInputType;\n placeholder?: string;\n disabled?: boolean;\n /** Extra data-action-* attributes to include at commit (e.g. entity id). */\n actionData?: Record<string, string>;\n /** Custom view renderer — receives value, returns VNode. */\n renderView?: (value: string) => JSX.Element | string;\n /** Label announced by screen readers for the edit affordance. */\n ariaLabel?: string;\n className?: string;\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: two render branches times two variants times five saveOn triggers; branching is inherent to the primitive.\nexport function ActionInput(props: ActionInputProps): JSX.Element {\n const variant = props.variant ?? \"single\";\n const saveOn = props.saveOn ?? \"blur\";\n // \"input\" mode is a permanently-editable filter field — it never has a\n // view mode to toggle back to, so it starts in edit.\n const live = saveOn === \"input\";\n const [mode, setMode] = useState<\"view\" | \"edit\">(live ? \"edit\" : \"view\");\n const [draft, setDraft] = useState(props.value);\n const inputRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);\n\n useEffect(() => {\n if (mode === \"view\") setDraft(props.value);\n }, [props.value, mode]);\n\n useEffect(() => {\n // Don't steal focus on mount for a live filter field; only pull focus\n // when the user has explicitly toggled a view field into edit mode.\n if (mode === \"edit\" && !live && inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select?.();\n }\n }, [mode, live]);\n\n const enterEdit = useCallback(() => {\n if (props.disabled) return;\n setDraft(props.value);\n setMode(\"edit\");\n }, [props.disabled, props.value]);\n\n const commit = useCallback(\n (next: string) => {\n if (next !== props.value) {\n dispatchAction(props.action, { ...(props.actionData ?? {}), value: next });\n }\n // A live filter field stays editable; every other trigger returns\n // to view mode once the value is committed.\n if (!live) setMode(\"view\");\n },\n [props.action, props.actionData, props.value, live]\n );\n\n const cancel = useCallback(() => {\n setDraft(props.value);\n if (!live) setMode(\"view\");\n }, [props.value, live]);\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: keyboard handler encodes the saveOn × variant matrix.\n const onKeyDown = (event: JSX.TargetedKeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n cancel();\n return;\n }\n if (event.key === \"Enter\") {\n const cmd = event.metaKey || event.ctrlKey;\n if (saveOn === \"enter\" && variant === \"single\") {\n event.preventDefault();\n commit(draft);\n } else if ((saveOn === \"enter\" && variant === \"multi\" && cmd) || saveOn === \"cmd-enter\") {\n if (cmd) {\n event.preventDefault();\n commit(draft);\n }\n }\n }\n };\n\n const className = props.className ? `${classes[\"root\"]} ${props.className}` : classes[\"root\"];\n\n // Consumer data-*/aria-* forwarded onto whichever element is the root\n // for the current mode; the primitive's own attributes win on collision.\n const passthrough = collectPassthrough(props);\n\n if (mode === \"view\") {\n const rendered = props.renderView ? props.renderView(props.value) : props.value;\n const isEmpty = props.value.length === 0;\n return (\n // biome-ignore lint/a11y/useSemanticElements: <button> would swallow text selection and add default styling; div with role=button is the inline-edit idiom.\n <div\n {...passthrough}\n class={`${className} ${classes[\"view\"]}`}\n data-polly-ui\n data-polly-action-input\n data-polly-interactive\n data-state={isEmpty ? \"empty\" : \"filled\"}\n data-variant={variant}\n tabIndex={props.disabled ? -1 : 0}\n role=\"button\"\n aria-label={props.ariaLabel ?? \"Edit\"}\n aria-disabled={props.disabled ? \"true\" : undefined}\n onClick={enterEdit}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n enterEdit();\n }\n }}\n >\n {isEmpty && props.placeholder ? (\n <span class={classes[\"placeholder\"]}>{props.placeholder}</span>\n ) : (\n rendered\n )}\n </div>\n );\n }\n\n const common = {\n ...passthrough,\n class: `${classes[\"edit\"]} ${classes[\"root\"]}`,\n \"data-polly-ui\": true,\n \"data-polly-action-input\": true,\n \"data-state\": \"editing\",\n \"data-variant\": variant,\n placeholder: props.placeholder,\n value: draft,\n onInput: (e: JSX.TargetedEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const next = e.currentTarget.value;\n setDraft(next);\n if (live) commit(next);\n },\n onBlur: () => {\n if (saveOn === \"blur\") commit(draft);\n else if (!live) cancel();\n },\n onKeyDown,\n \"aria-label\": props.ariaLabel ?? \"Edit\",\n disabled: props.disabled,\n };\n\n if (variant === \"multi\") {\n return (\n <textarea\n ref={(el) => {\n inputRef.current = el;\n }}\n {...(common as unknown as JSX.HTMLAttributes<HTMLTextAreaElement>)}\n />\n );\n }\n return (\n <input\n ref={(el) => {\n inputRef.current = el;\n }}\n type={props.inputType ?? \"text\"}\n {...(common as unknown as JSX.HTMLAttributes<HTMLInputElement>)}\n />\n );\n}\n",
7
7
  "/**\n * Fire a named action through the global event-delegation registry.\n *\n * The Action* primitives (<ActionInput>, <ActionSelect>) commit by\n * clicking a detached `<button data-action=\"…\">` carrying data-action-*\n * attributes; the delegated click listener routes it into the\n * consumer's action registry with no extra wiring. Centralised here so\n * every Action* primitive dispatches identically.\n *\n * Keys in `data` are camelCase and converted to dash-case attribute\n * names — `actionData={{ taskId }}` becomes `data-action-task-id`.\n */\n\nexport function dispatchAction(action: string, data: Record<string, string>): void {\n const hidden = document.createElement(\"button\");\n hidden.setAttribute(\"data-action\", action);\n for (const [key, value] of Object.entries(data)) {\n const dashKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n hidden.setAttribute(`data-action-${dashKey}`, value);\n }\n hidden.style.position = \"fixed\";\n hidden.style.opacity = \"0\";\n hidden.style.pointerEvents = \"none\";\n hidden.tabIndex = -1;\n document.body.appendChild(hidden);\n try {\n hidden.click();\n } finally {\n hidden.remove();\n }\n}\n",
8
8
  "/**\n * polly#125: data-* / aria-* attribute passthrough for UI primitives.\n *\n * Primitives accept a fixed prop set. Without passthrough, a consumer\n * that needs a `data-*` test hook or an `aria-*` attribute on the\n * primitive's own element has to wrap it in an extra DOM node — a smell.\n *\n * {@link PassthroughAttrs} widens a primitive's props to accept any\n * `data-*` / `aria-*` key; {@link collectPassthrough} gathers them for\n * spreading onto the rendered root element. Spread the result *before*\n * the primitive's own attributes so a consumer key can never override\n * one the primitive sets itself (`data-polly-*`, etc.).\n */\n\n/** Index signatures letting a primitive's props accept arbitrary\n * `data-*` and `aria-*` attributes. */\nexport type PassthroughAttrs = {\n [dataAttr: `data-${string}`]: string | number | boolean | undefined;\n [ariaAttr: `aria-${string}`]: string | number | boolean | undefined;\n};\n\n/**\n * Collect `data-*` and `aria-*` attributes from a props object so they\n * can be spread onto a primitive's root element. `undefined` values and\n * non-attribute value types (functions, objects) are dropped.\n */\nexport function collectPassthrough(\n props: Record<string, unknown>\n): Record<string, string | number | boolean> {\n const out: Record<string, string | number | boolean> = {};\n for (const key of Object.keys(props)) {\n if (!key.startsWith(\"data-\") && !key.startsWith(\"aria-\")) continue;\n const value = props[key];\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n out[key] = value;\n }\n }\n return out;\n}\n",
9
- "/**\n * ActionSelect — single-select dropdown that commits via the action system.\n *\n * The action-dispatching sibling of <Select>. Where <Select> binds a\n * `Signal<Set<T>>` and is built for in-memory filter UIs, ActionSelect\n * takes the current `value` as a plain string and fires `action` with\n * `data-action-value` set to the chosen option — so editing a\n * server-backed field commits through the same event delegation as\n * <ActionInput> and <ActionForm>, with no synthetic signal or bridging\n * `effect` required.\n *\n * Composes <Dropdown> for the menu. The trigger is a plain <span> (not a\n * nested <button>) so the Dropdown's own button is the single\n * interactive element. A disabled ActionSelect renders as static text.\n */\n\nimport { useSignal } from \"@preact/signals\";\nimport type { JSX } from \"preact\";\nimport { Dropdown } from \"./Dropdown.tsx\";\nimport { dispatchAction } from \"./internal/dispatch-action.ts\";\nimport { collectPassthrough, type PassthroughAttrs } from \"./internal/passthrough.ts\";\nimport classes from \"./Select.module.css\";\nimport type { SelectOption } from \"./Select.tsx\";\n\nexport type ActionSelectProps = PassthroughAttrs & {\n /** Current value — matched against `options` to render the trigger label. */\n value: string;\n /** Selectable options. */\n options: SelectOption<string>[];\n /** Action name to dispatch on selection. Receives data-action-value=<option value>. */\n action: string;\n /** Extra data-action-* attributes to include on commit (e.g. entity id). */\n actionData?: Record<string, string>;\n /** Visible field label rendered above the trigger. */\n label?: string;\n /** Trigger text shown when `value` matches no option. Default: \"Select…\". */\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n id?: string;\n};\n\nfunction labelFor(options: SelectOption<string>[], value: string): string | undefined {\n for (const opt of options) {\n if (opt.value === value) return opt.label;\n }\n return undefined;\n}\n\nexport function ActionSelect(props: ActionSelectProps): JSX.Element {\n const {\n value,\n options,\n action,\n actionData,\n label,\n placeholder = \"Select…\",\n disabled = false,\n className,\n id,\n } = props;\n\n const isOpen = useSignal(false);\n\n const current = labelFor(options, value);\n const isEmpty = current === undefined;\n const displayText = current ?? placeholder;\n\n const commit = (next: string): void => {\n isOpen.value = false;\n if (next === value) return;\n dispatchAction(action, { ...(actionData ?? {}), value: next });\n };\n\n const triggerClass = isEmpty\n ? `${classes[\"trigger\"]} ${classes[\"placeholder\"]}`\n : classes[\"trigger\"];\n\n const parts = [classes[\"select\"] ?? \"\"];\n if (className) parts.push(className);\n\n return (\n <div\n {...collectPassthrough(props)}\n id={id}\n class={parts.filter(Boolean).join(\" \")}\n data-polly-ui\n data-polly-action-select\n data-state={isEmpty ? \"empty\" : \"filled\"}\n >\n {label !== undefined && <span class={classes[\"label\"]}>{label}</span>}\n {disabled ? (\n <span class={triggerClass} aria-disabled=\"true\">\n {displayText}\n </span>\n ) : (\n <Dropdown isOpen={isOpen} trigger={<span class={triggerClass}>{displayText}</span>}>\n {options.map((opt) => {\n const isSelected = opt.value === value;\n const optClass = isSelected\n ? `${classes[\"option\"]} ${classes[\"optionSelected\"]}`\n : classes[\"option\"];\n return (\n <button\n key={opt.value}\n type=\"button\"\n role=\"option\"\n class={optClass}\n aria-selected={isSelected ? \"true\" : \"false\"}\n onClick={() => commit(opt.value)}\n >\n <span>{opt.label}</span>\n </button>\n );\n })}\n </Dropdown>\n )}\n </div>\n );\n}\n",
10
- "/**\n * Dropdown — trigger button + popover menu using the native Popover API.\n *\n * The menu element gets `popover=\"auto\"` and a unique `data-overlay-id`.\n * `closeTopOverlay()` from @fairfox/polly/actions finds the topmost\n * `[data-overlay-id]` element and dispatches `overlay:close` — the\n * Dropdown listens for that event and mirrors it onto the `isOpen`\n * signal. In single-select mode, clicking the menu closes it; in\n * multi-select mode, the menu stays open so the consumer can pick\n * several items.\n */\n\nimport { type Signal, useSignalEffect } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useRef } from \"preact/hooks\";\nimport classes from \"./Dropdown.module.css\";\nimport { Layout } from \"./Layout.tsx\";\n\nexport type DropdownProps = {\n isOpen: Signal<boolean>;\n trigger: ComponentChildren;\n children: ComponentChildren;\n align?: \"left\" | \"right\";\n multiSelect?: boolean;\n className?: string;\n id?: string;\n};\n\nlet dropdownCounter = 0;\n\nexport function Dropdown(props: DropdownProps): JSX.Element {\n const { isOpen, trigger, children, align = \"left\", multiSelect = false, className, id } = props;\n\n const menuRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const idRef = useRef(`polly-dropdown-${++dropdownCounter}`);\n const popoverId = idRef.current;\n\n useEffect(() => {\n triggerRef.current?.setAttribute(\"popovertarget\", popoverId);\n }, [popoverId]);\n\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n const onOverlayClose = (e: Event): void => {\n if (e instanceof CustomEvent && e.detail?.id === popoverId) {\n isOpen.value = false;\n }\n };\n menu.addEventListener(\"overlay:close\", onOverlayClose);\n return () => {\n menu.removeEventListener(\"overlay:close\", onOverlayClose);\n };\n }, [popoverId, isOpen]);\n\n useSignalEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n if (isOpen.value && !menu.matches(\":popover-open\")) {\n menu.showPopover();\n } else if (!isOpen.value && menu.matches(\":popover-open\")) {\n menu.hidePopover();\n }\n });\n\n const handleToggle = (e: Event): void => {\n if (\"newState\" in e) {\n isOpen.value = (e as unknown as { newState: string }).newState === \"open\";\n }\n };\n\n const handleMenuClick = (): void => {\n if (!multiSelect) {\n isOpen.value = false;\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\") {\n isOpen.value = false;\n }\n };\n\n const parts = [classes[\"dropdown\"] ?? \"\"];\n if (className) parts.push(className);\n\n const menuParts = [classes[\"menu\"] ?? \"\"];\n if (align === \"right\") menuParts.push(classes[\"alignRight\"] ?? \"\");\n\n return (\n <div id={id} class={parts.filter(Boolean).join(\" \")} data-polly-ui data-polly-dropdown>\n <button ref={triggerRef} type=\"button\" class={classes[\"trigger\"]}>\n {trigger}\n </button>\n <div\n ref={menuRef}\n id={popoverId}\n role=\"listbox\"\n class={menuParts.filter(Boolean).join(\" \")}\n popover=\"auto\"\n data-overlay-id={popoverId}\n onToggle={handleToggle}\n onClick={handleMenuClick}\n onKeyDown={handleKeyDown}\n >\n <Layout rows=\"auto\" gap=\"0\">\n {children}\n </Layout>\n </div>\n </div>\n );\n}\n",
9
+ "/**\n * ActionSelect — single-select dropdown that commits via the action system.\n *\n * The action-dispatching sibling of <Select>. Where <Select> binds a\n * `Signal<Set<T>>` and is built for in-memory filter UIs, ActionSelect\n * takes the current `value` as a plain string and fires `action` with\n * `data-action-value` set to the chosen option — so editing a\n * server-backed field commits through the same event delegation as\n * <ActionInput> and <ActionForm>, with no synthetic signal or bridging\n * `effect` required.\n *\n * Composes <Dropdown> for the menu. The trigger styling is applied\n * directly to Dropdown's own <button> via `triggerClassName`, so the\n * visible box and the interactive element are one and the same node —\n * no styled <span> nested inside an unstyled <button>. A disabled\n * ActionSelect renders as static text without a caret.\n */\n\nimport { useSignal } from \"@preact/signals\";\nimport type { JSX } from \"preact\";\nimport { Dropdown } from \"./Dropdown.tsx\";\nimport { dispatchAction } from \"./internal/dispatch-action.ts\";\nimport { collectPassthrough, type PassthroughAttrs } from \"./internal/passthrough.ts\";\nimport classes from \"./Select.module.css\";\nimport type { SelectOption } from \"./Select.tsx\";\n\nexport type ActionSelectProps = PassthroughAttrs & {\n /** Current value — matched against `options` to render the trigger label. */\n value: string;\n /** Selectable options. */\n options: SelectOption<string>[];\n /** Action name to dispatch on selection. Receives data-action-value=<option value>. */\n action: string;\n /** Extra data-action-* attributes to include on commit (e.g. entity id). */\n actionData?: Record<string, string>;\n /** Visible field label rendered above the trigger. */\n label?: string;\n /** Trigger text shown when `value` matches no option. Default: \"Select…\". */\n placeholder?: string;\n disabled?: boolean;\n /** Apply a comfortable minimum width to the trigger. Default: sizes to content. */\n wide?: boolean;\n className?: string;\n id?: string;\n};\n\nfunction labelFor(options: SelectOption<string>[], value: string): string | undefined {\n for (const opt of options) {\n if (opt.value === value) return opt.label;\n }\n return undefined;\n}\n\nexport function ActionSelect(props: ActionSelectProps): JSX.Element {\n const {\n value,\n options,\n action,\n actionData,\n label,\n placeholder = \"Select…\",\n disabled = false,\n wide = false,\n className,\n id,\n } = props;\n\n const isOpen = useSignal(false);\n\n const current = labelFor(options, value);\n const isEmpty = current === undefined;\n const displayText = current ?? placeholder;\n\n const commit = (next: string): void => {\n isOpen.value = false;\n if (next === value) return;\n dispatchAction(action, { ...(actionData ?? {}), value: next });\n };\n\n const triggerParts = [classes[\"trigger\"] ?? \"\"];\n if (isEmpty) triggerParts.push(classes[\"placeholder\"] ?? \"\");\n if (wide) triggerParts.push(classes[\"triggerWide\"] ?? \"\");\n const triggerClass = triggerParts.filter(Boolean).join(\" \");\n\n const parts = [classes[\"select\"] ?? \"\"];\n if (className) parts.push(className);\n\n return (\n <div\n {...collectPassthrough(props)}\n id={id}\n class={parts.filter(Boolean).join(\" \")}\n data-polly-ui\n data-polly-action-select\n data-state={isEmpty ? \"empty\" : \"filled\"}\n >\n {label !== undefined && <span class={classes[\"label\"]}>{label}</span>}\n {disabled ? (\n <span class={triggerClass} aria-disabled=\"true\">\n <span class={classes[\"triggerLabel\"]}>{displayText}</span>\n </span>\n ) : (\n <Dropdown\n isOpen={isOpen}\n triggerClassName={triggerClass}\n trigger={\n <>\n <span class={classes[\"triggerLabel\"]}>{displayText}</span>\n <span class={classes[\"caret\"]} aria-hidden=\"true\" />\n </>\n }\n >\n {options.map((opt) => {\n const isSelected = opt.value === value;\n const optClass = isSelected\n ? `${classes[\"option\"]} ${classes[\"optionSelected\"]}`\n : classes[\"option\"];\n return (\n <button\n key={opt.value}\n type=\"button\"\n role=\"option\"\n class={optClass}\n aria-selected={isSelected ? \"true\" : \"false\"}\n onClick={() => commit(opt.value)}\n >\n <span>{opt.label}</span>\n </button>\n );\n })}\n </Dropdown>\n )}\n </div>\n );\n}\n",
10
+ "/**\n * Dropdown — trigger button + popover menu using the native Popover API.\n *\n * A shown popover is promoted to the browser's top layer, where CSS\n * positioning resolves against the viewport rather than the `.dropdown`\n * wrapper — so the menu cannot be placed with `position: absolute`\n * alone. Instead it is pinned with `position: fixed` and coordinates\n * measured from the trigger; see `positionMenu` below (issue #128).\n *\n * The menu element gets `popover=\"auto\"` and a unique `data-overlay-id`.\n * `closeTopOverlay()` from @fairfox/polly/actions finds the topmost\n * `[data-overlay-id]` element and dispatches `overlay:close` — the\n * Dropdown listens for that event and mirrors it onto the `isOpen`\n * signal. In single-select mode, clicking the menu closes it; in\n * multi-select mode, the menu stays open so the consumer can pick\n * several items.\n */\n\nimport { type Signal, useSignalEffect } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useRef } from \"preact/hooks\";\nimport classes from \"./Dropdown.module.css\";\nimport { Layout } from \"./Layout.tsx\";\n\nexport type DropdownProps = {\n isOpen: Signal<boolean>;\n trigger: ComponentChildren;\n children: ComponentChildren;\n align?: \"left\" | \"right\";\n multiSelect?: boolean;\n className?: string;\n /**\n * Class applied to the trigger <button> in place of Dropdown's own\n * default. Lets a composing component (Select, ActionSelect) style\n * the single interactive element directly, with no styled node\n * nested inside the button.\n */\n triggerClassName?: string;\n /** Disables the trigger <button>. */\n triggerDisabled?: boolean;\n id?: string;\n};\n\nlet dropdownCounter = 0;\n\n/** Gap in px the menu leaves between itself and the trigger. */\nconst MENU_GAP = 4;\n/** Minimum gap in px the menu keeps from every viewport edge. */\nconst VIEWPORT_PADDING = 8;\n\nexport function Dropdown(props: DropdownProps): JSX.Element {\n const {\n isOpen,\n trigger,\n children,\n align = \"left\",\n multiSelect = false,\n className,\n triggerClassName,\n triggerDisabled = false,\n id,\n } = props;\n\n const menuRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const idRef = useRef(`polly-dropdown-${++dropdownCounter}`);\n const popoverId = idRef.current;\n\n useEffect(() => {\n triggerRef.current?.setAttribute(\"popovertarget\", popoverId);\n }, [popoverId]);\n\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n const onOverlayClose = (e: Event): void => {\n if (e instanceof CustomEvent && e.detail?.id === popoverId) {\n isOpen.value = false;\n }\n };\n menu.addEventListener(\"overlay:close\", onOverlayClose);\n return () => {\n menu.removeEventListener(\"overlay:close\", onOverlayClose);\n };\n }, [popoverId, isOpen]);\n\n useEffect(() => {\n const menu = menuRef.current;\n const trigger = triggerRef.current;\n if (!menu || !trigger) return;\n\n // Pin the top-layer menu to its trigger with viewport coordinates.\n // Run from `beforetoggle` this happens synchronously before the\n // popover paints, so the menu is correct on its first frame — no\n // flash. Run from scroll/resize it keeps the menu pinned.\n const positionMenu = (): void => {\n const t = trigger.getBoundingClientRect();\n\n // A not-yet-shown popover is `display: none` and has no box to\n // measure. Force layout for the duration of the (synchronous)\n // read, then restore — nothing paints in between. Clearing the\n // inline max-height first measures the menu's natural size.\n const prevDisplay = menu.style.display;\n menu.style.maxHeight = \"\";\n menu.style.display = \"block\";\n const menuWidth = menu.offsetWidth;\n const menuHeight = menu.offsetHeight;\n menu.style.display = prevDisplay;\n\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n\n // Horizontal: align left edges (right edges when align=\"right\"),\n // then clamp so the menu never overflows a viewport edge.\n let left = align === \"right\" ? t.right - menuWidth : t.left;\n const maxLeft = Math.max(VIEWPORT_PADDING, viewportWidth - menuWidth - VIEWPORT_PADDING);\n left = Math.min(Math.max(left, VIEWPORT_PADDING), maxLeft);\n\n // Vertical: below the trigger by default; flip above when that\n // leaves more room. Cap the height to the space available so the\n // menu always stays on-screen.\n const spaceBelow = viewportHeight - t.bottom - MENU_GAP - VIEWPORT_PADDING;\n const spaceAbove = t.top - MENU_GAP - VIEWPORT_PADDING;\n let top: number;\n if (menuHeight <= spaceBelow || spaceBelow >= spaceAbove) {\n top = t.bottom + MENU_GAP;\n if (menuHeight > spaceBelow) {\n menu.style.maxHeight = `${Math.max(spaceBelow, 0)}px`;\n }\n } else {\n const available = Math.max(spaceAbove, 0);\n menu.style.maxHeight = `${available}px`;\n top = t.top - MENU_GAP - Math.min(menuHeight, available);\n }\n\n menu.style.position = \"fixed\";\n menu.style.margin = \"0\";\n menu.style.left = `${left}px`;\n menu.style.top = `${top}px`;\n };\n\n const onBeforeToggle = (e: Event): void => {\n if ((e as Event & { newState?: string }).newState === \"open\") {\n positionMenu();\n }\n };\n const onReposition = (): void => {\n if (menu.matches(\":popover-open\")) positionMenu();\n };\n\n menu.addEventListener(\"beforetoggle\", onBeforeToggle);\n window.addEventListener(\"scroll\", onReposition, true);\n window.addEventListener(\"resize\", onReposition);\n return () => {\n menu.removeEventListener(\"beforetoggle\", onBeforeToggle);\n window.removeEventListener(\"scroll\", onReposition, true);\n window.removeEventListener(\"resize\", onReposition);\n };\n }, [align]);\n\n useSignalEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n if (isOpen.value && !menu.matches(\":popover-open\")) {\n menu.showPopover();\n } else if (!isOpen.value && menu.matches(\":popover-open\")) {\n menu.hidePopover();\n }\n });\n\n const handleToggle = (e: Event): void => {\n if (\"newState\" in e) {\n isOpen.value = (e as unknown as { newState: string }).newState === \"open\";\n }\n };\n\n const handleMenuClick = (): void => {\n if (!multiSelect) {\n isOpen.value = false;\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\") {\n isOpen.value = false;\n }\n };\n\n const parts = [classes[\"dropdown\"] ?? \"\"];\n if (className) parts.push(className);\n\n return (\n <div id={id} class={parts.filter(Boolean).join(\" \")} data-polly-ui data-polly-dropdown>\n <button\n ref={triggerRef}\n type=\"button\"\n class={triggerClassName ?? classes[\"trigger\"] ?? \"\"}\n disabled={triggerDisabled}\n >\n {trigger}\n </button>\n <div\n ref={menuRef}\n id={popoverId}\n role=\"listbox\"\n class={classes[\"menu\"] ?? \"\"}\n data-align={align}\n popover=\"auto\"\n data-overlay-id={popoverId}\n onToggle={handleToggle}\n onClick={handleMenuClick}\n onKeyDown={handleKeyDown}\n >\n <Layout rows=\"auto\" gap=\"0\">\n {children}\n </Layout>\n </div>\n </div>\n );\n}\n",
11
11
  "/**\n * Layout — the one primitive that owns layouting concerns.\n *\n * Every other component in @fairfox/polly/ui (and every consumer app\n * that runs `polly quality css-layout`) routes flex/grid decisions\n * through this component. Props map to CSS custom properties so the\n * stylesheet can read them uniformly and so consumers can override\n * any of them in media queries without touching specificity.\n */\n\nimport { type ComponentChildren, createElement, type JSX } from \"preact\";\nimport classes from \"./Layout.module.css\";\n\nexport type LayoutProps = {\n children: ComponentChildren;\n\n /** Polymorphic element (div, section, header, nav, …). Defaults to 'div'. */\n as?: keyof JSX.IntrinsicElements;\n\n /** CSS grid structure. */\n rows?: string;\n columns?: string;\n autoFlow?: string;\n autoRows?: string;\n autoColumns?: string;\n\n /** display: contents — lets children participate in an ancestor grid. */\n contents?: boolean;\n /** Inherit parent grid tracks via CSS subgrid. */\n subgrid?: boolean;\n\n /** Spacing. */\n gap?: string;\n padding?: string;\n\n /** Sizing. */\n height?: string;\n minHeight?: string;\n /**\n * Cap the inline size and centre within the parent. Typical values use the\n * `--polly-measure-*` tokens (e.g. \"var(--polly-measure-page)\" for an app\n * shell, \"var(--polly-measure-prose)\" for body copy). Any CSS length works.\n */\n maxInlineSize?: string;\n\n /** Container alignment. */\n justifyItems?: string;\n alignItems?: string;\n justifyContent?: string;\n alignContent?: string;\n\n /** Self alignment (when this Layout is an item in a parent grid). */\n justifySelf?: string;\n alignSelf?: string;\n\n /** Collapse to a single column at ≤640px. */\n stackOnMobile?: boolean;\n\n /** Render as display: inline-grid so the Layout flows inline with surrounding text/controls. */\n inline?: boolean;\n\n className?: string;\n onClick?: JSX.MouseEventHandler<HTMLElement>;\n onKeyDown?: JSX.KeyboardEventHandler<HTMLElement>;\n\n role?: JSX.AriaRole;\n tabIndex?: number;\n id?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: sixteen optional prop-to-custom-property mappings; flat and linear.\nexport function Layout(props: LayoutProps): JSX.Element {\n const {\n children,\n as = \"div\",\n rows,\n columns,\n contents,\n subgrid,\n gap,\n padding,\n height,\n minHeight,\n maxInlineSize,\n justifyItems,\n alignItems,\n justifyContent,\n alignContent,\n justifySelf,\n alignSelf,\n autoFlow,\n autoRows,\n autoColumns,\n stackOnMobile,\n inline,\n className,\n onClick,\n onKeyDown,\n role,\n tabIndex,\n id,\n } = props;\n\n const style: Record<string, string> = {};\n\n if (contents) {\n style[\"display\"] = \"contents\";\n } else if (subgrid) {\n style[\"--l-col\"] = \"1 / -1\";\n style[\"--l-cols\"] = \"subgrid\";\n if (padding) style[\"--l-p\"] = padding;\n if (alignItems) style[\"--l-ai\"] = alignItems;\n if (gap) style[\"--l-gap\"] = gap;\n } else {\n if (padding) style[\"--l-p\"] = padding;\n if (height) style[\"--l-h\"] = height;\n if (minHeight) style[\"--l-mh\"] = minHeight;\n if (maxInlineSize) style[\"--l-mis\"] = maxInlineSize;\n if (rows) style[\"--l-rows\"] = rows;\n if (columns) style[\"--l-cols\"] = columns;\n if (gap) style[\"--l-gap\"] = gap;\n if (justifyItems) style[\"--l-ji\"] = justifyItems;\n if (alignItems) style[\"--l-ai\"] = alignItems;\n if (justifyContent) style[\"--l-jc\"] = justifyContent;\n if (alignContent) style[\"--l-ac\"] = alignContent;\n if (autoFlow) style[\"--l-flow\"] = autoFlow;\n if (autoRows) style[\"--l-arows\"] = autoRows;\n if (autoColumns) style[\"--l-acols\"] = autoColumns;\n }\n if (justifySelf) style[\"--l-js\"] = justifySelf;\n if (alignSelf) style[\"--l-as\"] = alignSelf;\n\n const baseParts = [classes[\"layout\"]];\n if (inline) baseParts.push(classes[\"inline\"]);\n if (stackOnMobile) baseParts.push(classes[\"stackOnMobile\"]);\n const baseClass = baseParts.filter(Boolean).join(\" \");\n const combined = contents ? className : className ? `${baseClass} ${className}` : baseClass;\n\n return createElement(\n as,\n {\n id,\n className: combined,\n style,\n onClick,\n onKeyDown,\n role,\n tabIndex,\n \"aria-label\": props[\"aria-label\"],\n \"aria-labelledby\": props[\"aria-labelledby\"],\n \"aria-describedby\": props[\"aria-describedby\"],\n \"data-polly-layout\": true,\n },\n children\n );\n}\n",
12
12
  "/**\n * Badge — small inline status chip.\n *\n * Renders as a passive <span> with tinted background and on-tint text\n * from the `--polly-status-*` token family. The default variant uses\n * surface-sunken + muted text for a neutral pill. Consumers style\n * placement via className; the primitive owns size, shape, and colour.\n */\n\nimport type { ComponentChildren, JSX } from \"preact\";\nimport classes from \"./Badge.module.css\";\n\nexport type BadgeVariant = \"default\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n\nexport type BadgeProps = {\n children: ComponentChildren;\n variant?: BadgeVariant;\n className?: string;\n id?: string;\n};\n\nfunction variantClass(variant: BadgeVariant): string | undefined {\n if (variant === \"info\") return classes[\"info\"];\n if (variant === \"success\") return classes[\"success\"];\n if (variant === \"warning\") return classes[\"warning\"];\n if (variant === \"danger\") return classes[\"danger\"];\n return undefined;\n}\n\nexport function Badge(props: BadgeProps): JSX.Element {\n const { children, variant = \"default\", className, id } = props;\n const parts = [classes[\"badge\"]];\n const v = variantClass(variant);\n if (v) parts.push(v);\n if (className) parts.push(className);\n return (\n <span id={id} class={parts.join(\" \")} data-polly-ui data-polly-badge={variant}>\n {children}\n </span>\n );\n}\n",
13
13
  "/**\n * Button — interactive control with tier, semantic colour, and size.\n *\n * Renders as a <button> by default; switches to an <a> when given an\n * `href`. Tier sets visual importance (primary/secondary/tertiary),\n * color overlays semantic meaning (info/success/warning/danger),\n * size picks the padding + font scale (small/normal/large). Icon +\n * label are arranged with a nested inline <Layout>.\n *\n * Action wiring is declared via data-* attributes consumed by the\n * global event delegator in @fairfox/polly/actions — Button does not\n * accept an onClick prop.\n */\n\nimport type { ComponentChildren, JSX, VNode } from \"preact\";\nimport classes from \"./Button.module.css\";\nimport { Layout } from \"./Layout.tsx\";\n\nexport type ButtonTier = \"primary\" | \"secondary\" | \"tertiary\";\nexport type ButtonColor = \"default\" | \"info\" | \"success\" | \"warning\" | \"danger\";\nexport type ButtonSize = \"small\" | \"normal\" | \"large\";\n\ntype BaseButtonProps = {\n id?: string;\n tier?: ButtonTier;\n color?: ButtonColor;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n circle?: boolean;\n className?: string;\n title?: string;\n icon?: VNode;\n label: ComponentChildren;\n \"data-action\"?: string;\n \"aria-label\"?: string;\n /** Additional action-payload attributes the event delegator parses\n * into `ctx.data`. `data-action-tid=\"t-17\"` becomes `{ tid: \"t-17\" }`,\n * `data-action-item-id=\"…\"` becomes `{ itemId: \"…\" }`, and so on.\n * Typed as an index signature so every `data-action-*` key the\n * consumer cares about type-checks without a Button-side enumeration. */\n [actionDataAttr: `data-action-${string}`]: string | undefined;\n};\n\ntype ButtonAsButton = BaseButtonProps & {\n href?: never;\n target?: never;\n rel?: never;\n download?: never;\n type?: \"button\" | \"submit\" | \"reset\";\n};\n\ntype ButtonAsLink = BaseButtonProps & {\n href: string;\n target?: string;\n rel?: string;\n /** Forwarded to the rendered <a> so a Button-as-link can offer a file\n * download. An empty string uses the resource's own filename. */\n download?: string;\n type?: never;\n};\n\nexport type ButtonProps = ButtonAsButton | ButtonAsLink;\n\nfunction tierClass(tier: ButtonTier): string | undefined {\n if (tier === \"primary\") return classes[\"tierPrimary\"];\n if (tier === \"tertiary\") return classes[\"tierTertiary\"];\n return classes[\"tierSecondary\"];\n}\n\nfunction colorClass(color: ButtonColor): string | undefined {\n if (color === \"info\") return classes[\"colorInfo\"];\n if (color === \"success\") return classes[\"colorSuccess\"];\n if (color === \"warning\") return classes[\"colorWarning\"];\n if (color === \"danger\") return classes[\"colorDanger\"];\n return undefined;\n}\n\nfunction sizeClass(size: ButtonSize): string | undefined {\n if (size === \"small\") return classes[\"btnSmall\"];\n if (size === \"large\") return classes[\"btnLarge\"];\n return undefined;\n}\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: flat prop-to-class composition plus one anchor/button branch; splitting would just hide the mapping.\nexport function Button(props: ButtonProps): JSX.Element {\n const {\n id,\n tier = \"secondary\",\n color = \"default\",\n size = \"normal\",\n disabled = false,\n fullWidth = false,\n circle = false,\n className,\n title,\n icon,\n label,\n } = props;\n\n const parts = [classes[\"btn\"] ?? \"\"];\n const tc = tierClass(tier);\n if (tc) parts.push(tc);\n const cc = colorClass(color);\n if (cc) parts.push(cc);\n const sc = sizeClass(size);\n if (sc) parts.push(sc);\n if (circle) parts.push(classes[\"btnCircle\"] ?? \"\");\n if (fullWidth) parts.push(classes[\"btnFullWidth\"] ?? \"\");\n if (className) parts.push(className);\n const buttonClass = parts.filter(Boolean).join(\" \");\n\n const content = icon ? (\n <Layout inline columns=\"auto auto\" gap=\"0.5em\" alignItems=\"center\">\n {icon}\n <span>{label}</span>\n </Layout>\n ) : (\n label\n );\n\n const dataAction = props[\"data-action\"];\n const ariaLabel = props[\"aria-label\"];\n // Collect every `data-action-*` extra the consumer passed so the\n // event delegator can read them off the rendered element. Without\n // this, anything beyond `data-action` is silently dropped and\n // handlers fire with an empty `ctx.data`.\n const actionDataAttrs: Record<string, string> = {};\n for (const key of Object.keys(props)) {\n if (key.startsWith(\"data-action-\")) {\n const value = (props as unknown as Record<string, unknown>)[key];\n if (typeof value === \"string\") {\n actionDataAttrs[key] = value;\n }\n }\n }\n\n if (\"href\" in props && props.href) {\n return (\n <a\n id={id}\n class={buttonClass}\n title={title}\n href={disabled ? undefined : props.href}\n target={\"target\" in props ? props.target : undefined}\n rel={\"rel\" in props ? props.rel : undefined}\n download={\"download\" in props ? props.download : undefined}\n aria-disabled={disabled}\n aria-label={ariaLabel}\n data-polly-ui\n data-polly-button={tier}\n data-action={dataAction}\n {...actionDataAttrs}\n >\n {content}\n </a>\n );\n }\n\n const resolvedType: \"button\" | \"submit\" | \"reset\" =\n \"type\" in props && props.type ? props.type : \"button\";\n\n return (\n <button\n id={id}\n class={buttonClass}\n title={title}\n type={resolvedType}\n disabled={disabled}\n aria-label={ariaLabel}\n data-polly-ui\n data-polly-button={tier}\n data-action={dataAction}\n {...actionDataAttrs}\n >\n {content}\n </button>\n );\n}\n",
@@ -23,7 +23,7 @@
23
23
  "/**\n * Focus trap.\n *\n * Keeps Tab / Shift+Tab inside a root element. Returns a cleanup that\n * restores focus to the element that was active before the trap mounted.\n * Simple and synchronous — assumes a single active trap per OverlayRoot\n * and lets the overlay registry in `@fairfox/polly/actions` enforce that\n * at the stack level.\n */\n\nconst FOCUSABLE_SELECTOR = [\n \"a[href]\",\n \"area[href]\",\n \"button:not([disabled])\",\n \"input:not([disabled]):not([type=hidden])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"iframe\",\n \"object\",\n \"embed\",\n '[tabindex]:not([tabindex=\"-1\"])',\n \"[contenteditable]\",\n].join(\",\");\n\nfunction getFocusable(root: HTMLElement): HTMLElement[] {\n const nodes = Array.from(root.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR));\n return nodes.filter(\n (el) => !el.hasAttribute(\"disabled\") && el.getAttribute(\"aria-hidden\") !== \"true\"\n );\n}\n\nexport function installFocusTrap(root: HTMLElement): () => void {\n const previousActive = (\n document.activeElement instanceof HTMLElement ? document.activeElement : null\n ) as HTMLElement | null;\n\n // Move focus into the root if it's not already.\n const focusable = getFocusable(root);\n const first = focusable[0] ?? root;\n if (!root.contains(document.activeElement)) {\n first.focus();\n }\n\n function handleKeyDown(event: KeyboardEvent): void {\n if (event.key !== \"Tab\") return;\n const items = getFocusable(root);\n if (items.length === 0) {\n event.preventDefault();\n return;\n }\n const firstItem = items[0];\n const lastItem = items[items.length - 1];\n if (!firstItem || !lastItem) return;\n const active = document.activeElement;\n if (event.shiftKey) {\n if (active === firstItem || !root.contains(active)) {\n event.preventDefault();\n lastItem.focus();\n }\n } else if (active === lastItem) {\n event.preventDefault();\n firstItem.focus();\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (previousActive && document.contains(previousActive)) {\n previousActive.focus();\n }\n };\n}\n",
24
24
  "/**\n * OverlayRoot — portal target for stacked overlays.\n *\n * Apps render <OverlayRoot /> once, typically as the last child of the\n * app root. Modal, ConfirmDialog, and Toast portal into this element;\n * the scroll lock toggles based on the overlay registry count.\n */\n\nimport { effect } from \"@preact/signals\";\nimport { useEffect, useRef } from \"preact/hooks\";\nimport { hasOpenOverlay } from \"../actions/overlay.ts\";\nimport { acquireScrollLock } from \"./internal/scroll-lock.ts\";\nimport classes from \"./OverlayRoot.module.css\";\n\nexport function OverlayRoot() {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n let release: (() => void) | null = null;\n const dispose = effect(() => {\n if (hasOpenOverlay()) {\n if (!release) release = acquireScrollLock();\n } else if (release) {\n release();\n release = null;\n }\n });\n return () => {\n dispose();\n release?.();\n };\n }, []);\n\n return <div ref={ref} class={classes[\"root\"]} data-polly-ui data-polly-overlay-root />;\n}\n\n/** Get the mount node for portaled overlays. Returns null before mount. */\nexport function getOverlayRootNode(): HTMLElement | null {\n return document.querySelector<HTMLElement>(\"[data-polly-overlay-root]\");\n}\n",
25
25
  "/**\n * Scroll lock.\n *\n * Reference-counted. Multiple overlays can request a lock; the body\n * stays locked until every request releases. A scrollbar-gutter token\n * is written at acquire time so content behind the overlay doesn't\n * reflow when the bar disappears.\n */\n\nlet count = 0;\n\nexport function acquireScrollLock(): () => void {\n if (count === 0) {\n const html = document.documentElement;\n const gutter = window.innerWidth - html.clientWidth;\n html.style.setProperty(\"--polly-scrollbar-gutter\", `${gutter}px`);\n html.setAttribute(\"data-polly-scroll-locked\", \"true\");\n }\n count += 1;\n let released = false;\n return () => {\n if (released) return;\n released = true;\n count -= 1;\n if (count <= 0) {\n count = 0;\n const html = document.documentElement;\n html.removeAttribute(\"data-polly-scroll-locked\");\n html.style.removeProperty(\"--polly-scrollbar-gutter\");\n }\n };\n}\n",
26
- "/**\n * Select — dropdown of options with single- or multi-select semantics.\n *\n * Composes Dropdown for the menu and a native checkbox in each option\n * row for multi-select. The `selected` state is a Signal<Set<T>>;\n * single-select replaces the set, multi-select toggles membership.\n * Multi-select mode also shows Select All / Clear action buttons at\n * the top of the menu.\n */\n\nimport { type Signal, useComputed, useSignal } from \"@preact/signals\";\nimport type { JSX } from \"preact\";\nimport { Dropdown } from \"./Dropdown.tsx\";\nimport { Layout } from \"./Layout.tsx\";\nimport classes from \"./Select.module.css\";\n\nexport type SelectOption<T = string> = { value: T; label: string };\n\nexport type SelectProps<T = string> = {\n options: SelectOption<T>[];\n selected: Signal<Set<T>>;\n label?: string;\n placeholder?: string;\n multiSelect?: boolean;\n disabled?: boolean;\n className?: string;\n id?: string;\n};\n\nfunction formatSelected<T>(options: SelectOption<T>[], selected: Set<T>): string {\n if (selected.size === 0) return \"\";\n const labels: string[] = [];\n for (const opt of options) {\n if (selected.has(opt.value)) labels.push(opt.label);\n }\n return labels.join(\", \");\n}\n\nexport function Select<T = string>(props: SelectProps<T>): JSX.Element {\n const {\n options,\n selected,\n label,\n placeholder = \"Select\\u2026\",\n multiSelect = false,\n disabled = false,\n className,\n id,\n } = props;\n\n const isOpen = useSignal(false);\n\n const displayText = useComputed(() => {\n const text = formatSelected(options, selected.value);\n return text.length > 0 ? text : placeholder;\n });\n\n const isEmpty = useComputed(() => selected.value.size === 0);\n\n const handleOptionClick = (value: T): void => {\n if (multiSelect) {\n const next = new Set(selected.value);\n if (next.has(value)) next.delete(value);\n else next.add(value);\n selected.value = next;\n } else {\n selected.value = new Set([value]);\n isOpen.value = false;\n }\n };\n\n const handleSelectAll = (): void => {\n selected.value = new Set(options.map((o) => o.value));\n };\n\n const handleClear = (): void => {\n selected.value = new Set();\n };\n\n const triggerClass = isEmpty.value\n ? `${classes[\"trigger\"]} ${classes[\"placeholder\"]}`\n : classes[\"trigger\"];\n const triggerButton = (\n <button type=\"button\" class={triggerClass} disabled={disabled}>\n {displayText.value}\n </button>\n );\n\n const parts = [classes[\"select\"] ?? \"\"];\n if (className) parts.push(className);\n\n return (\n <div id={id} class={parts.filter(Boolean).join(\" \")} data-polly-ui data-polly-select>\n {label !== undefined && <span class={classes[\"label\"]}>{label}</span>}\n <Dropdown isOpen={isOpen} trigger={triggerButton} multiSelect={multiSelect}>\n {multiSelect && (\n <div class={classes[\"actions\"]}>\n <Layout columns=\"1fr 1fr\" gap=\"var(--polly-space-xs)\">\n <button type=\"button\" class={classes[\"actionBtn\"]} onClick={handleSelectAll}>\n Select All\n </button>\n <button type=\"button\" class={classes[\"actionBtn\"]} onClick={handleClear}>\n Clear\n </button>\n </Layout>\n </div>\n )}\n {options.map((opt) => {\n const isSelected = selected.value.has(opt.value);\n const optClass = isSelected\n ? `${classes[\"option\"]} ${classes[\"optionSelected\"]}`\n : classes[\"option\"];\n return (\n <button\n key={String(opt.value)}\n type=\"button\"\n class={optClass}\n onClick={() => handleOptionClick(opt.value)}\n >\n {multiSelect && (\n <input\n type=\"checkbox\"\n class={classes[\"optionCheck\"]}\n checked={isSelected}\n tabIndex={-1}\n readOnly={true}\n />\n )}\n <span>{opt.label}</span>\n </button>\n );\n })}\n </Dropdown>\n </div>\n );\n}\n",
26
+ "/**\n * Select — dropdown of options with single- or multi-select semantics.\n *\n * Composes Dropdown for the menu and a native checkbox in each option\n * row for multi-select. The `selected` state is a Signal<Set<T>>;\n * single-select replaces the set, multi-select toggles membership.\n * Multi-select mode also shows Select All / Clear action buttons at\n * the top of the menu.\n */\n\nimport { type Signal, useComputed, useSignal } from \"@preact/signals\";\nimport type { JSX } from \"preact\";\nimport { Dropdown } from \"./Dropdown.tsx\";\nimport { Layout } from \"./Layout.tsx\";\nimport classes from \"./Select.module.css\";\n\nexport type SelectOption<T = string> = { value: T; label: string };\n\nexport type SelectProps<T = string> = {\n options: SelectOption<T>[];\n selected: Signal<Set<T>>;\n label?: string;\n placeholder?: string;\n multiSelect?: boolean;\n disabled?: boolean;\n /** Apply a comfortable minimum width to the trigger. Default: sizes to content. */\n wide?: boolean;\n className?: string;\n id?: string;\n};\n\nfunction formatSelected<T>(options: SelectOption<T>[], selected: Set<T>): string {\n if (selected.size === 0) return \"\";\n const labels: string[] = [];\n for (const opt of options) {\n if (selected.has(opt.value)) labels.push(opt.label);\n }\n return labels.join(\", \");\n}\n\nexport function Select<T = string>(props: SelectProps<T>): JSX.Element {\n const {\n options,\n selected,\n label,\n placeholder = \"Select\\u2026\",\n multiSelect = false,\n disabled = false,\n wide = false,\n className,\n id,\n } = props;\n\n const isOpen = useSignal(false);\n\n const displayText = useComputed(() => {\n const text = formatSelected(options, selected.value);\n return text.length > 0 ? text : placeholder;\n });\n\n const isEmpty = useComputed(() => selected.value.size === 0);\n\n const handleOptionClick = (value: T): void => {\n if (multiSelect) {\n const next = new Set(selected.value);\n if (next.has(value)) next.delete(value);\n else next.add(value);\n selected.value = next;\n } else {\n selected.value = new Set([value]);\n isOpen.value = false;\n }\n };\n\n const handleSelectAll = (): void => {\n selected.value = new Set(options.map((o) => o.value));\n };\n\n const handleClear = (): void => {\n selected.value = new Set();\n };\n\n const triggerParts = [classes[\"trigger\"] ?? \"\"];\n if (isEmpty.value) triggerParts.push(classes[\"placeholder\"] ?? \"\");\n if (wide) triggerParts.push(classes[\"triggerWide\"] ?? \"\");\n const triggerClass = triggerParts.filter(Boolean).join(\" \");\n const triggerContent = (\n <>\n <span class={classes[\"triggerLabel\"]}>{displayText.value}</span>\n <span class={classes[\"caret\"]} aria-hidden=\"true\" />\n </>\n );\n\n const parts = [classes[\"select\"] ?? \"\"];\n if (className) parts.push(className);\n\n return (\n <div id={id} class={parts.filter(Boolean).join(\" \")} data-polly-ui data-polly-select>\n {label !== undefined && <span class={classes[\"label\"]}>{label}</span>}\n <Dropdown\n isOpen={isOpen}\n trigger={triggerContent}\n triggerClassName={triggerClass}\n triggerDisabled={disabled}\n multiSelect={multiSelect}\n >\n {multiSelect && (\n <div class={classes[\"actions\"]}>\n <Layout columns=\"1fr 1fr\" gap=\"var(--polly-space-xs)\">\n <button type=\"button\" class={classes[\"actionBtn\"]} onClick={handleSelectAll}>\n Select All\n </button>\n <button type=\"button\" class={classes[\"actionBtn\"]} onClick={handleClear}>\n Clear\n </button>\n </Layout>\n </div>\n )}\n {options.map((opt) => {\n const isSelected = selected.value.has(opt.value);\n const optClass = isSelected\n ? `${classes[\"option\"]} ${classes[\"optionSelected\"]}`\n : classes[\"option\"];\n return (\n <button\n key={String(opt.value)}\n type=\"button\"\n class={optClass}\n onClick={() => handleOptionClick(opt.value)}\n >\n {multiSelect && (\n <input\n type=\"checkbox\"\n class={classes[\"optionCheck\"]}\n checked={isSelected}\n tabIndex={-1}\n readOnly={true}\n />\n )}\n <span>{opt.label}</span>\n </button>\n );\n })}\n </Dropdown>\n </div>\n );\n}\n",
27
27
  "/**\n * Skeleton — shimmering placeholder for loading states.\n *\n * Three variants: text (full-width, 1em tall), rect (full-width, 100px\n * tall), circle (40x40). A CSS gradient animates left-to-right over\n * 1.5s. `prefers-reduced-motion` zeroes the animation via the token\n * system. Consumers size via width/height props (px numbers or CSS\n * strings); default sizing comes from the variant.\n */\n\nimport type { JSX } from \"preact\";\nimport classes from \"./Skeleton.module.css\";\n\nexport type SkeletonVariant = \"text\" | \"rect\" | \"circle\";\n\nexport type SkeletonProps = {\n variant?: SkeletonVariant;\n width?: string | number;\n height?: string | number;\n className?: string;\n};\n\nfunction resolveSize(value: string | number | undefined): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"number\") return `${value}px`;\n return value;\n}\n\nfunction variantClass(variant: SkeletonVariant): string | undefined {\n if (variant === \"circle\") return classes[\"circle\"];\n if (variant === \"rect\") return classes[\"rect\"];\n return classes[\"text\"];\n}\n\nexport function Skeleton(props: SkeletonProps): JSX.Element {\n const { variant = \"text\", width, height, className } = props;\n\n const style: Record<string, string> = {};\n const w = resolveSize(width);\n const h = resolveSize(height);\n if (w !== undefined) style[\"width\"] = w;\n if (h !== undefined) style[\"height\"] = h;\n\n const parts: string[] = [];\n const base = classes[\"skeleton\"];\n if (base) parts.push(base);\n const vClass = variantClass(variant);\n if (vClass) parts.push(vClass);\n if (className) parts.push(className);\n\n return (\n <span\n class={parts.join(\" \")}\n style={style}\n data-polly-ui\n data-polly-skeleton={variant}\n aria-hidden=\"true\"\n />\n );\n}\n",
28
28
  "/**\n * Tabs — horizontal nav with active-tab accent.\n *\n * Each button carries `data-action` (the consumer-provided action name)\n * and `data-action-id={tab.id}` so the event delegator resolves the\n * activated tab. The active tab gets `aria-current=\"page\"` and a\n * bottom-border accent. The nav scrolls horizontally with a hidden\n * scrollbar for overflow. Internal arrangement uses <Layout>.\n */\n\nimport type { JSX } from \"preact\";\nimport { Layout } from \"./Layout.tsx\";\nimport classes from \"./Tabs.module.css\";\n\nexport type Tab = { id: string; label: string; disabled?: boolean };\n\nexport type TabsProps = {\n tabs: Tab[];\n activeTab: string;\n action?: string;\n className?: string;\n id?: string;\n \"aria-label\"?: string;\n};\n\nexport function Tabs(props: TabsProps): JSX.Element {\n const { tabs, activeTab, action, className, id } = props;\n const parts = [classes[\"tabs\"] ?? \"\"];\n if (className) parts.push(className);\n return (\n <nav\n id={id}\n class={parts.filter(Boolean).join(\" \")}\n aria-label={props[\"aria-label\"]}\n data-polly-ui\n data-polly-tabs\n >\n <Layout columns={`repeat(${tabs.length}, auto)`} gap=\"0\" alignItems=\"end\">\n {tabs.map((tab) => {\n const isActive = activeTab === tab.id;\n const tabClass = isActive ? `${classes[\"tab\"]} ${classes[\"active\"]}` : classes[\"tab\"];\n return (\n <button\n key={tab.id}\n type=\"button\"\n class={tabClass}\n disabled={tab.disabled}\n aria-current={isActive ? \"page\" : undefined}\n data-action={action}\n data-action-id={tab.id}\n >\n {tab.label}\n </button>\n );\n })}\n </Layout>\n </nav>\n );\n}\n",
29
29
  "/**\n * Text — typographic primitive for secondary, sized, and status copy.\n *\n * Renders subtitles, captions, field labels, empty-state copy, and\n * error/warning messages without the consumer reaching for a `style`\n * attribute or a hand-rolled class. `tone` maps to the semantic\n * `--polly-text-*` and `--polly-status-*` token families; `size`,\n * `weight`, `italic`, and `leading` cover the remaining typographic\n * axes. `as` keeps the element polymorphic so the same primitive backs a\n * <span>, <p>, <label>, or <figcaption>. A no-prop <Text> is an ordinary\n * <span> at body size and default colour.\n *\n * polly#125: arbitrary `data-*` / `aria-*` attributes are forwarded to\n * the rendered element, so a Text that also needs a test hook or an\n * a11y attribute stays a single element.\n */\n\nimport { type ComponentChildren, createElement, type JSX } from \"preact\";\nimport { collectPassthrough, type PassthroughAttrs } from \"./internal/passthrough.ts\";\nimport classes from \"./Text.module.css\";\n\nexport type TextTone = \"default\" | \"muted\" | \"danger\" | \"warning\" | \"success\";\nexport type TextSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type TextWeight = \"normal\" | \"medium\" | \"bold\";\nexport type TextLeading = \"tight\" | \"base\" | \"loose\";\n\nexport type TextProps = PassthroughAttrs & {\n children: ComponentChildren;\n\n /** Polymorphic element (span, p, label, figcaption, …). Defaults to 'span'. */\n as?: keyof JSX.IntrinsicElements;\n\n /** Colour role. 'muted' de-emphasises; 'danger'/'warning'/'success'\n * render status copy from the `--polly-status-*` tokens. Default: 'default'. */\n tone?: TextTone;\n\n /** Token-backed font size. Default: inherit from context. */\n size?: TextSize;\n\n /** Token-backed font weight. Default: inherit from context. */\n weight?: TextWeight;\n\n /** Italic emphasis — for hints and asides — without an inline style. */\n italic?: boolean;\n\n /** Token-backed line height. 'loose' suits multi-line body copy. */\n leading?: TextLeading;\n\n className?: string;\n id?: string;\n /** Forwarded so <Text as=\"label\"> can point at a control. */\n htmlFor?: string;\n};\n\nexport function Text(props: TextProps): JSX.Element {\n const {\n children,\n as = \"span\",\n tone = \"default\",\n size,\n weight,\n italic,\n leading,\n className,\n id,\n } = props;\n\n const parts = [classes[\"text\"]];\n if (tone !== \"default\") parts.push(classes[tone]);\n if (size) parts.push(classes[size]);\n if (weight) parts.push(classes[weight]);\n if (italic) parts.push(classes[\"italic\"]);\n if (leading) parts.push(classes[leading]);\n if (className) parts.push(className);\n\n return createElement(\n as,\n {\n // Consumer data-*/aria-* first; the primitive's own attributes\n // below win on any collision.\n ...collectPassthrough(props),\n id,\n class: parts.filter(Boolean).join(\" \"),\n for: props.htmlFor,\n \"data-polly-ui\": true,\n \"data-polly-text\": tone,\n },\n children\n );\n}\n",
@@ -33,7 +33,7 @@
33
33
  "/**\n * Global error surface for action handlers.\n *\n * Actions that fail set the errorState signal via `submitError`; a `<Toast>`\n * component consumes that signal and renders a dismissable message. Handlers\n * that catch expected failures (validation, quota) may call `setError` directly.\n */\n\nimport { signal } from \"@preact/signals\";\n\nexport type ErrorSeverity = \"error\" | \"warning\" | \"info\";\n\nexport type ErrorEntry = {\n id: string;\n message: string;\n severity: ErrorSeverity;\n action?: string;\n createdAt: number;\n};\n\nexport const errorState = signal<ErrorEntry[]>([]);\n\nlet nextId = 0;\nfunction allocId(): string {\n nextId += 1;\n return `polly-err-${nextId}`;\n}\n\nexport function setError(\n message: string,\n opts: { severity?: ErrorSeverity; action?: string } = {}\n): string {\n const entry: ErrorEntry = {\n id: allocId(),\n message,\n severity: opts.severity ?? \"error\",\n action: opts.action,\n createdAt: Date.now(),\n };\n errorState.value = [...errorState.value, entry];\n return entry.id;\n}\n\nexport function clearError(id?: string): void {\n if (id === undefined) {\n errorState.value = [];\n return;\n }\n errorState.value = errorState.value.filter((e) => e.id !== id);\n}\n\n/**\n * Convenience wrapper for an action's catch block.\n * Logs the action name + error and surfaces a user-visible message.\n */\nexport function submitError(action: string, err: unknown): string {\n const message = err instanceof Error ? err.message : String(err);\n return setError(message, { action, severity: \"error\" });\n}\n",
34
34
  "/**\n * Toggle — switch-role checkbox.\n *\n * A visually-hidden <input role=\"switch\"> paired with a styled track\n * and thumb inside a <label>. Passive: the caller drives `checked` and\n * handles state changes via the action registry (wrap the Toggle in a\n * <label data-action=\"...\"> or bind a parent form's submit). a11y\n * attributes come from the native input; the label wraps so clicks\n * anywhere in the control toggle the input.\n */\n\nimport type { JSX } from \"preact\";\nimport classes from \"./Toggle.module.css\";\n\nexport type ToggleProps = {\n checked?: boolean;\n disabled?: boolean;\n label?: string;\n name?: string;\n className?: string;\n id?: string;\n};\n\nexport function Toggle(props: ToggleProps): JSX.Element {\n const { checked = false, disabled = false, label, name, className, id } = props;\n const parts = [classes[\"toggle\"]];\n if (disabled) parts.push(classes[\"disabled\"]);\n if (className) parts.push(className);\n return (\n <label class={parts.join(\" \")} data-polly-ui data-polly-toggle>\n <input\n id={id}\n type=\"checkbox\"\n role=\"switch\"\n name={name}\n aria-checked={checked}\n class={classes[\"input\"]}\n checked={checked}\n disabled={disabled}\n />\n <span class={checked ? `${classes[\"track\"]} ${classes[\"trackChecked\"]}` : classes[\"track\"]}>\n <span\n class={checked ? `${classes[\"thumb\"]} ${classes[\"thumbChecked\"]}` : classes[\"thumb\"]}\n />\n </span>\n {label !== undefined && <span class={classes[\"label\"]}>{label}</span>}\n </label>\n );\n}\n"
35
35
  ],
36
- "mappings": "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",
37
- "debugId": "7DA35338ECD4891D64756E2164756E21",
36
+ "mappings": "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",
37
+ "debugId": "D646BF0B09E9BEC064756E2164756E21",
38
38
  "names": []
39
39
  }
@@ -247,10 +247,9 @@
247
247
  }
248
248
 
249
249
  .menu_HX48zA {
250
- position: absolute;
250
+ position: fixed;
251
251
  inset: unset;
252
252
  z-index: var(--polly-z-raised);
253
- margin: var(--polly-space-xs) 0 0;
254
253
  padding: var(--polly-space-xs) 0;
255
254
  border: var(--polly-border-width-default) solid var(--polly-border);
256
255
  border-radius: var(--polly-radius-md);
@@ -260,13 +259,7 @@
260
259
  overflow-y: auto;
261
260
  min-width: 160px;
262
261
  max-height: 280px;
263
- top: 100%;
264
- left: 0;
265
- }
266
-
267
- .alignRight_HX48zA {
268
- left: auto;
269
- right: 0;
262
+ margin: 0;
270
263
  }
271
264
  }
272
265
 
@@ -343,7 +336,9 @@
343
336
  }
344
337
 
345
338
  .trigger_daofbw {
346
- display: inline-block;
339
+ display: inline-flex;
340
+ align-items: center;
341
+ gap: var(--polly-space-sm);
347
342
  padding: var(--polly-space-sm) var(--polly-space-md);
348
343
  border: var(--polly-border-width-default) solid var(--polly-border);
349
344
  border-radius: var(--polly-radius-sm);
@@ -353,15 +348,37 @@
353
348
  color: var(--polly-text);
354
349
  text-align: left;
355
350
  cursor: pointer;
351
+ max-width: 100%;
352
+ }
353
+
354
+ .trigger_daofbw:disabled, .trigger_daofbw[aria-disabled="true"] {
355
+ opacity: var(--polly-opacity-disabled);
356
+ cursor: not-allowed;
357
+ }
358
+
359
+ .triggerWide_daofbw {
360
+ min-width: 140px;
361
+ }
362
+
363
+ .triggerLabel_daofbw {
356
364
  white-space: nowrap;
357
365
  overflow: hidden;
358
366
  text-overflow: ellipsis;
359
- min-width: 140px;
367
+ flex: auto;
368
+ min-width: 0;
360
369
  }
361
370
 
362
- .trigger_daofbw:disabled {
363
- opacity: var(--polly-opacity-disabled);
364
- cursor: not-allowed;
371
+ .caret_daofbw {
372
+ color: var(--polly-text-muted);
373
+ pointer-events: none;
374
+ flex: none;
375
+ }
376
+
377
+ .caret_daofbw:before {
378
+ content: "▾";
379
+ display: block;
380
+ font-size: var(--polly-text-xs);
381
+ line-height: 1;
365
382
  }
366
383
 
367
384
  .placeholder_daofbw {
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Leaf module for {@link deriveDocumentId}. Kept free of the wider
3
+ * `mesh-state` module graph (CRDT primitives, the Repo, schema
4
+ * migrations) so that tooling — notably `polly visualize` (polly#127) —
5
+ * can resolve a logical key to its {@link DocumentId} without pulling
6
+ * the whole mesh runtime into its bundle. `mesh-state` re-exports it,
7
+ * so consumer-facing imports are unchanged.
8
+ */
9
+ import { type DocumentId } from "@automerge/automerge-repo/slim";
10
+ /**
11
+ * Domain-separated hash of an application key into a 16-byte
12
+ * {@link DocumentId}. SHA-512 via tweetnacl (already a dep for
13
+ * signing); the first 16 bytes give a DocumentId with uniform
14
+ * distribution across the Automerge id space.
15
+ *
16
+ * Exported so consumers can compute the derived id for any logical key
17
+ * — useful for ADR 0008-style document compaction where the consumer
18
+ * wants to seed a new doc at `deriveDocumentId(key + ':v' + timestamp)`
19
+ * and stash that id in a runtime index.
20
+ */
21
+ export declare function deriveDocumentId(key: string): DocumentId;
@@ -41,6 +41,7 @@ import { type DocHandle, type DocumentId, type Repo } from "@automerge/automerge
41
41
  import type { Access } from "./access";
42
42
  import { type SpecialisedPrimitive } from "./crdt-specialised";
43
43
  import { type CrdtPrimitive } from "./crdt-state";
44
+ import { deriveDocumentId } from "./derive-document-id";
44
45
  import type { Migrations, VersionedDoc } from "./schema-version";
45
46
  /** Common option shape across all four $mesh* primitives. */
46
47
  export interface MeshStateOptions {
@@ -242,12 +243,11 @@ export interface MeshStateLazyWrapperRecord {
242
243
  export declare function getLazyWrappers(): MeshStateLazyWrapperRecord[];
243
244
  /**
244
245
  * Domain-separated hash of an application key into a 16-byte
245
- * {@link DocumentId}. Exported so consumers can compute the
246
- * derived id for any logical key useful for ADR 0008-style
247
- * document compaction where the consumer wants to seed a new doc
248
- * at `deriveDocumentId(key + ':v' + timestamp)` and stash that id
249
- * in a runtime index. */
250
- export declare function deriveDocumentId(key: string): DocumentId;
246
+ * {@link DocumentId}. Lives in the {@link ./derive-document-id} leaf
247
+ * module so tooling can resolve a key without the mesh runtime;
248
+ * re-exported here to keep `@fairfox/polly/mesh` imports unchanged.
249
+ */
250
+ export { deriveDocumentId };
251
251
  /**
252
252
  * Caller-installed resolver consulted at every `$mesh*` wrapper
253
253
  * lazy construction. Returns the {@link DocumentId} the consumer
@@ -5001,14 +5001,37 @@ class HandlerExtractor {
5001
5001
  return null;
5002
5002
  const key = keyArg.getLiteralValue();
5003
5003
  const variableName = this.getVariableNameFromParent(node) || key;
5004
+ const access = this.extractMeshAccess(args[2]);
5004
5005
  return {
5005
5006
  kind,
5006
5007
  key,
5007
5008
  variableName,
5008
5009
  filePath,
5009
- line: node.getStartLineNumber()
5010
+ line: node.getStartLineNumber(),
5011
+ ...access ? { access } : {}
5010
5012
  };
5011
5013
  }
5014
+ extractMeshAccess(optionsArg) {
5015
+ if (!optionsArg || !Node2.isObjectLiteralExpression(optionsArg))
5016
+ return;
5017
+ const accessProp = optionsArg.getProperty("access");
5018
+ if (!accessProp || !Node2.isPropertyAssignment(accessProp))
5019
+ return;
5020
+ const accessObj = accessProp.getInitializer();
5021
+ if (!accessObj || !Node2.isObjectLiteralExpression(accessObj))
5022
+ return;
5023
+ const predicateText = (name) => {
5024
+ const prop = accessObj.getProperty(name);
5025
+ if (!prop || !Node2.isPropertyAssignment(prop))
5026
+ return;
5027
+ return prop.getInitializer()?.getText().replace(/\s+/g, " ").trim();
5028
+ };
5029
+ const read = predicateText("read");
5030
+ const write = predicateText("write");
5031
+ if (read === undefined && write === undefined)
5032
+ return;
5033
+ return { read: read ?? "unset", write: write ?? "unset" };
5034
+ }
5012
5035
  analyzeFileAndImports(sourceFile, handlers, messageTypes, invalidMessageTypes, stateConstraints, globalStateConstraints, verifiedStates, resources) {
5013
5036
  const filePath = sourceFile.getFilePath();
5014
5037
  if (this.analyzedFiles.has(filePath)) {
@@ -8341,4 +8364,4 @@ main().catch((error) => {
8341
8364
  process.exit(1);
8342
8365
  });
8343
8366
 
8344
- //# debugId=30F069FEDCAB85F764756E2164756E21
8367
+ //# debugId=F1AE4F074F9AD2C964756E2164756E21