@k2b/ui 0.30.0 → 0.32.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.
Files changed (186) hide show
  1. package/README.md +1 -1
  2. package/dist/base.css +2 -0
  3. package/dist/browser/actions/Toolbar.js +2 -0
  4. package/dist/browser/actions/Toolbar.js.map +1 -1
  5. package/dist/browser/actions/ViewTabs.js +8 -0
  6. package/dist/browser/actions/ViewTabs.js.map +1 -1
  7. package/dist/browser/chat/ChatDecision.js +28 -2
  8. package/dist/browser/chat/ChatDecision.js.map +1 -1
  9. package/dist/browser/content/Chart.js +104 -55
  10. package/dist/browser/content/Chart.js.map +1 -1
  11. package/dist/browser/content/ChartExplorer.js +5 -3
  12. package/dist/browser/content/ChartExplorer.js.map +1 -1
  13. package/dist/browser/content/MapAttribution.js +27 -0
  14. package/dist/browser/content/MapAttribution.js.map +1 -0
  15. package/dist/browser/content/MapView.js +553 -0
  16. package/dist/browser/content/MapView.js.map +1 -0
  17. package/dist/browser/content/MapViewFrame.js +395 -0
  18. package/dist/browser/content/MapViewFrame.js.map +1 -0
  19. package/dist/browser/content/chart-inspection-core.js +4 -1
  20. package/dist/browser/content/chart-inspection-core.js.map +1 -1
  21. package/dist/browser/content/code-highlight.js +66 -0
  22. package/dist/browser/content/code-highlight.js.map +1 -1
  23. package/dist/browser/content/index.js +6 -0
  24. package/dist/browser/content/index.js.map +1 -1
  25. package/dist/browser/content/map-palette.js +39 -0
  26. package/dist/browser/content/map-palette.js.map +1 -0
  27. package/dist/browser/content/map-style.js +276 -0
  28. package/dist/browser/content/map-style.js.map +1 -0
  29. package/dist/browser/content/map-view-geometry.js +269 -0
  30. package/dist/browser/content/map-view-geometry.js.map +1 -0
  31. package/dist/browser/content/map-view-live.js +65 -0
  32. package/dist/browser/content/map-view-live.js.map +1 -0
  33. package/dist/browser/content/map-view-messages.js +53 -0
  34. package/dist/browser/content/map-view-messages.js.map +1 -0
  35. package/dist/browser/content/map-view-types.js +2 -0
  36. package/dist/browser/content/map-view-types.js.map +1 -0
  37. package/dist/browser/content/map-view-worker.js +10 -0
  38. package/dist/browser/feedback/dialog-core.js +19 -0
  39. package/dist/browser/feedback/dialog-core.js.map +1 -1
  40. package/dist/browser/inputs/AutocompleteEditor.js +167 -104
  41. package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
  42. package/dist/browser/inputs/RichSelect.js +1474 -0
  43. package/dist/browser/inputs/RichSelect.js.map +1 -0
  44. package/dist/browser/inputs/TextInput.js +95 -60
  45. package/dist/browser/inputs/TextInput.js.map +1 -1
  46. package/dist/browser/inputs/choice.js +19 -8
  47. package/dist/browser/inputs/choice.js.map +1 -1
  48. package/dist/browser/inputs/index.js +1 -0
  49. package/dist/browser/inputs/index.js.map +1 -1
  50. package/dist/browser/inputs/rich-select-messages.js +46 -0
  51. package/dist/browser/inputs/rich-select-messages.js.map +1 -0
  52. package/dist/browser/layout/AppWorkspace.js +194 -144
  53. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  54. package/dist/browser/layout/DetailPanel.js +10 -1
  55. package/dist/browser/layout/DetailPanel.js.map +1 -1
  56. package/dist/browser/layout/Navigation.js +14 -5
  57. package/dist/browser/layout/Navigation.js.map +1 -1
  58. package/dist/browser/layout/PageTitle.js +9 -3
  59. package/dist/browser/layout/PageTitle.js.map +1 -1
  60. package/dist/browser/layout/ResizeSeparator.js +8 -2
  61. package/dist/browser/layout/ResizeSeparator.js.map +1 -1
  62. package/dist/browser/layout/app-workspace-controller.js +301 -34
  63. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  64. package/dist/browser/layout/app-workspace-width.js +26 -0
  65. package/dist/browser/layout/app-workspace-width.js.map +1 -0
  66. package/dist/browser/layout/index.js +1 -1
  67. package/dist/browser/layout/index.js.map +1 -1
  68. package/dist/browser/layout/navigation-model.js.map +1 -1
  69. package/dist/browser/layout/resize-separator.js +25 -1
  70. package/dist/browser/layout/resize-separator.js.map +1 -1
  71. package/dist/browser/surfaces/Skeleton.js +14 -0
  72. package/dist/browser/surfaces/Skeleton.js.map +1 -0
  73. package/dist/browser/surfaces/index.js +1 -0
  74. package/dist/browser/surfaces/index.js.map +1 -1
  75. package/dist/licenses/maplibre-gl.txt +116 -0
  76. package/dist/ssr/actions/Toolbar.js +2 -0
  77. package/dist/ssr/actions/Toolbar.js.map +1 -1
  78. package/dist/ssr/actions/ViewTabs.js +8 -0
  79. package/dist/ssr/actions/ViewTabs.js.map +1 -1
  80. package/dist/ssr/chat/ChatDecision.js +11 -0
  81. package/dist/ssr/chat/ChatDecision.js.map +1 -1
  82. package/dist/ssr/content/Chart.js +27 -7
  83. package/dist/ssr/content/Chart.js.map +1 -1
  84. package/dist/ssr/content/ChartExplorer.js +5 -3
  85. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  86. package/dist/ssr/content/MapAttribution.js +19 -0
  87. package/dist/ssr/content/MapAttribution.js.map +1 -0
  88. package/dist/ssr/content/MapView.js +474 -0
  89. package/dist/ssr/content/MapView.js.map +1 -0
  90. package/dist/ssr/content/MapViewFrame.js +193 -0
  91. package/dist/ssr/content/MapViewFrame.js.map +1 -0
  92. package/dist/ssr/content/chart-inspection-core.js +4 -1
  93. package/dist/ssr/content/chart-inspection-core.js.map +1 -1
  94. package/dist/ssr/content/code-highlight.js +66 -0
  95. package/dist/ssr/content/code-highlight.js.map +1 -1
  96. package/dist/ssr/content/index.js +6 -0
  97. package/dist/ssr/content/index.js.map +1 -1
  98. package/dist/ssr/content/map-palette.js +39 -0
  99. package/dist/ssr/content/map-palette.js.map +1 -0
  100. package/dist/ssr/content/map-style.js +276 -0
  101. package/dist/ssr/content/map-style.js.map +1 -0
  102. package/dist/ssr/content/map-view-geometry.js +269 -0
  103. package/dist/ssr/content/map-view-geometry.js.map +1 -0
  104. package/dist/ssr/content/map-view-live.js +1 -0
  105. package/dist/ssr/content/map-view-messages.js +53 -0
  106. package/dist/ssr/content/map-view-messages.js.map +1 -0
  107. package/dist/ssr/content/map-view-types.js +2 -0
  108. package/dist/ssr/content/map-view-types.js.map +1 -0
  109. package/dist/ssr/feedback/dialog-core.js +19 -0
  110. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  111. package/dist/ssr/inputs/AutocompleteEditor.js +64 -24
  112. package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
  113. package/dist/ssr/inputs/RichSelect.js +950 -0
  114. package/dist/ssr/inputs/RichSelect.js.map +1 -0
  115. package/dist/ssr/inputs/TextInput.js +40 -16
  116. package/dist/ssr/inputs/TextInput.js.map +1 -1
  117. package/dist/ssr/inputs/choice.js +19 -8
  118. package/dist/ssr/inputs/choice.js.map +1 -1
  119. package/dist/ssr/inputs/index.js +1 -0
  120. package/dist/ssr/inputs/index.js.map +1 -1
  121. package/dist/ssr/inputs/rich-select-messages.js +46 -0
  122. package/dist/ssr/inputs/rich-select-messages.js.map +1 -0
  123. package/dist/ssr/layout/AppWorkspace.js +53 -16
  124. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  125. package/dist/ssr/layout/DetailPanel.js +1 -1
  126. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  127. package/dist/ssr/layout/Navigation.js +1 -1
  128. package/dist/ssr/layout/Navigation.js.map +1 -1
  129. package/dist/ssr/layout/PageTitle.js +9 -3
  130. package/dist/ssr/layout/PageTitle.js.map +1 -1
  131. package/dist/ssr/layout/ResizeSeparator.js +4 -1
  132. package/dist/ssr/layout/ResizeSeparator.js.map +1 -1
  133. package/dist/ssr/layout/app-workspace-controller.js +301 -34
  134. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  135. package/dist/ssr/layout/app-workspace-width.js +26 -0
  136. package/dist/ssr/layout/app-workspace-width.js.map +1 -0
  137. package/dist/ssr/layout/index.js +1 -1
  138. package/dist/ssr/layout/index.js.map +1 -1
  139. package/dist/ssr/layout/navigation-model.js.map +1 -1
  140. package/dist/ssr/layout/resize-separator.js +25 -1
  141. package/dist/ssr/layout/resize-separator.js.map +1 -1
  142. package/dist/ssr/surfaces/Skeleton.js +8 -0
  143. package/dist/ssr/surfaces/Skeleton.js.map +1 -0
  144. package/dist/ssr/surfaces/index.js +1 -0
  145. package/dist/ssr/surfaces/index.js.map +1 -1
  146. package/dist/styles.css +1 -1
  147. package/dist/types/content/Chart.d.ts +4 -2
  148. package/dist/types/content/ChartExplorer.d.ts +0 -1
  149. package/dist/types/content/MapAttribution.d.ts +6 -0
  150. package/dist/types/content/MapView.d.ts +5 -0
  151. package/dist/types/content/MapViewFrame.d.ts +31 -0
  152. package/dist/types/content/code-highlight.d.ts +3 -1
  153. package/dist/types/content/index.d.ts +7 -0
  154. package/dist/types/content/map-palette.d.ts +58 -0
  155. package/dist/types/content/map-style.d.ts +29 -0
  156. package/dist/types/content/map-view-geometry.d.ts +55 -0
  157. package/dist/types/content/map-view-live.d.ts +2 -0
  158. package/dist/types/content/map-view-messages.d.ts +21 -0
  159. package/dist/types/content/map-view-types.d.ts +63 -0
  160. package/dist/types/feedback/dialog-core.d.ts +1 -0
  161. package/dist/types/inputs/AutocompleteEditor.d.ts +6 -1
  162. package/dist/types/inputs/RichSelect.d.ts +93 -0
  163. package/dist/types/inputs/TextInput.d.ts +5 -2
  164. package/dist/types/inputs/choice.d.ts +24 -4
  165. package/dist/types/inputs/index.d.ts +2 -0
  166. package/dist/types/inputs/rich-select-messages.d.ts +21 -0
  167. package/dist/types/layout/AppWorkspace.d.ts +14 -3
  168. package/dist/types/layout/DetailPanel.d.ts +2 -0
  169. package/dist/types/layout/app-workspace-controller.d.ts +2 -0
  170. package/dist/types/layout/app-workspace-width.d.ts +13 -0
  171. package/dist/types/layout/index.d.ts +2 -2
  172. package/dist/types/layout/navigation-model.d.ts +2 -0
  173. package/dist/types/layout/resize-separator.d.ts +1 -0
  174. package/dist/types/surfaces/Skeleton.d.ts +6 -0
  175. package/dist/types/surfaces/index.d.ts +1 -0
  176. package/map-glyphs/IBM Plex Sans Medium/0-255.pbf +0 -0
  177. package/map-glyphs/IBM Plex Sans Medium/1024-1279.pbf +0 -0
  178. package/map-glyphs/IBM Plex Sans Medium/256-511.pbf +0 -0
  179. package/map-glyphs/IBM Plex Sans Medium/512-767.pbf +0 -0
  180. package/map-glyphs/IBM Plex Sans Medium/768-1023.pbf +0 -0
  181. package/map-glyphs/IBM Plex Sans Medium/7680-7935.pbf +0 -0
  182. package/map-glyphs/IBM Plex Sans Medium/8192-8447.pbf +0 -0
  183. package/map-glyphs/IBM Plex Sans Medium/8448-8703.pbf +0 -0
  184. package/map-glyphs/IBM Plex Sans Medium/8704-8959.pbf +0 -0
  185. package/map-glyphs/OFL.txt +93 -0
  186. package/package.json +11 -6
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["inputs/RichSelect.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n Match,\n onCleanup,\n onMount,\n Show,\n Switch,\n untrack,\n} from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { dialogCore } from \"../feedback/dialog-core\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { LocaleProvider, useLocale } from \"../intl/locale\";\nimport BottomSheet, { bottomSheetOptions } from \"../layout/BottomSheet\";\nimport { createChoicePopover, filterChoiceOptions, nextEnabledChoiceIndex } from \"./choice\";\nimport type { ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\nimport { type RichSelectMessages, useRichSelectMessages } from \"./rich-select-messages\";\nimport type { ChoiceAppearance } from \"./Select\";\n\n/** One option: a name plus at most one short line. */\nexport type RichSelectItem = {\n value: string;\n /** Wraps; never truncated. */\n label: string;\n /** At most one short line that says what the choice changes. */\n description?: string;\n /** Icon class shown before the name. */\n icon?: string;\n /** Color dot shown before the name, such as a space color. Replaces `icon`. */\n color?: string;\n /** Creates a fresh visual for each render location. Replaces `icon` and `color`. */\n visual?: () => JSX.Element;\n /** Makes the row unavailable. The reason replaces `description`; the arrow keys still reach the row. */\n disabledReason?: string;\n /** Section id. Headings show only from eight options; keep each section's items together. */\n section?: string;\n /** Extra search terms that are not shown. */\n keywords?: readonly string[];\n};\n\nexport type RichSelectSection = { id: string; label: string };\n\nexport type RichSelectStatus = \"ready\" | \"loading\" | \"error\";\n\nexport type RichSelectFooter =\n | { label: string; icon?: string; onActivate: () => void }\n | { label: string; icon?: string; create: { placeholder: string; onCreate: (name: string) => void } };\n\nexport type RichSelectFact = {\n icon: string;\n text: JSX.Element;\n tone?: \"default\" | \"warning\";\n};\n\nexport type RichSelectProps = ValueFieldProps<string | null> & {\n items: readonly RichSelectItem[];\n /** Labels for the `section` ids of the items. */\n sections?: readonly RichSelectSection[];\n /** Names the list: the heading of a list without preview, the phone sheet title, and the listbox label. */\n title?: string;\n placeholder?: string;\n /** Replaces the selected item's name in the trigger, such as \"Name · address\". */\n triggerLabel?: string;\n /** Icon class for the trigger while no item with its own visual is selected. */\n icon?: string;\n tone?: \"default\" | \"warning\";\n /** Custom content inside the shared trigger button, which keeps the combobox semantics. */\n renderTrigger?: (selected: RichSelectItem | undefined) => JSX.Element;\n /**\n * The body of the preview beside the list, for options whose consequences differ.\n * Without it the picker shows only the list. Keep it to at most three facts.\n */\n renderPreview?: (item: RichSelectItem) => JSX.Element;\n searchPlaceholder?: string;\n status?: RichSelectStatus;\n onRetry?: () => void;\n /** Shown when the list is ready and has no items. */\n empty?: JSX.Element;\n footer?: RichSelectFooter;\n appearance?: ChoiceAppearance;\n placement?: \"bottom-start\" | \"top-start\";\n /** CSS lengths for the desktop popover. */\n size?: { width?: string; height?: string };\n name?: string;\n};\n\n/** Search and section headings appear from this many options. */\nexport const RICH_SELECT_SEARCH_FROM = 8;\nconst PHONE_QUERY = \"(max-width: 47.999rem)\";\nconst PLACEHOLDER_ROWS = 4;\n\ntype Row = { kind: \"heading\"; id: string; label: string } | { kind: \"item\"; item: RichSelectItem; index: number };\n\nconst isPhone = () => typeof matchMedia === \"function\" && matchMedia(PHONE_QUERY).matches;\n\nfunction RichSelectVisual(props: { item: RichSelectItem }): JSX.Element {\n return (\n <Switch>\n <Match when={props.item.visual}>{(visual) => <span class=\"k2b-rich-select__visual\">{visual()()}</span>}</Match>\n <Match when={props.item.color}>\n {(color) => (\n <span class=\"k2b-rich-select__visual\" aria-hidden=\"true\">\n <span class=\"k2b-rich-select__dot\" style={{ \"background-color\": color() }} />\n </span>\n )}\n </Match>\n <Match when={props.item.icon}>\n {(icon) => (\n <span class=\"k2b-rich-select__visual\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Match>\n </Switch>\n );\n}\n\nconst hasVisual = (item: RichSelectItem) => Boolean(item.visual || item.color || item.icon);\n\n/** Name and second line. The reason of an unavailable row replaces the description. */\nfunction RichSelectRowText(props: { item: RichSelectItem; labelId: string; lineId: string }): JSX.Element {\n return (\n <span class=\"k2b-rich-select__text\">\n <span id={props.labelId} class=\"k2b-rich-select__label\">\n {props.item.label}\n </span>\n <Show when={props.item.disabledReason ?? props.item.description}>\n {(line) => (\n <span id={props.lineId} class=\"k2b-rich-select__line\" data-reason={props.item.disabledReason ? \"true\" : undefined}>\n {line()}\n </span>\n )}\n </Show>\n </span>\n );\n}\n\nfunction RichSelectPlaceholders(props: { visual: boolean }): JSX.Element {\n return (\n <For each={Array.from({ length: PLACEHOLDER_ROWS }, (_, index) => index)}>\n {(index) => (\n <div class=\"k2b-rich-select__placeholder\" data-visual={props.visual ? \"true\" : undefined} aria-hidden=\"true\">\n <Show when={props.visual}>\n <span class=\"k2b-rich-select__placeholder-visual\" />\n </Show>\n <span class=\"k2b-rich-select__placeholder-lines\">\n <span style={{ width: `${[58, 46, 66, 50][index % 4]}%` }} />\n <span style={{ width: `${[34, 28, 40, 30][index % 4]}%` }} />\n </span>\n </div>\n )}\n </For>\n );\n}\n\nfunction RichSelectState(props: {\n status: \"error\" | \"empty\";\n messages: RichSelectMessages;\n empty?: JSX.Element;\n onRetry?: () => void;\n restoreFocus?: () => void;\n}): JSX.Element {\n let retryButton: HTMLButtonElement | undefined;\n onCleanup(() => {\n if (retryButton && document.activeElement === retryButton) queueMicrotask(() => props.restoreFocus?.());\n });\n return (\n <div class=\"k2b-rich-select__state\" data-status={props.status} role={props.status === \"error\" ? \"alert\" : \"status\"}>\n <span class=\"k2b-rich-select__state-icon\" aria-hidden=\"true\">\n <i class={props.status === \"error\" ? \"ti ti-alert-triangle\" : \"ti ti-list-search\"} />\n </span>\n <Show\n when={props.status === \"error\"}\n fallback={<div class=\"k2b-rich-select__state-text\">{props.empty ?? props.messages.noOptions}</div>}\n >\n <div class=\"k2b-rich-select__state-text\">{props.messages.couldNotLoad}</div>\n <Show when={props.onRetry}>\n {(retry) => (\n <Button ref={retryButton} variant=\"secondary\" size=\"sm\" onClick={() => retry()()}>\n <i class=\"ti ti-refresh\" aria-hidden=\"true\" />\n {props.messages.retry}\n </Button>\n )}\n </Show>\n </Show>\n </div>\n );\n}\n\nfunction RichSelectPreview(props: { item: RichSelectItem; render: (item: RichSelectItem) => JSX.Element; id?: string }): JSX.Element {\n return (\n <div id={props.id}>\n <h3 class=\"k2b-rich-select__preview-title\">\n <RichSelectVisual item={props.item} />\n <span>{props.item.label}</span>\n </h3>\n {props.render(props.item)}\n </div>\n );\n}\n\n/** Up to three short facts for a preview, each with an icon; warnings in the warning tone. */\nexport function RichSelectFacts(props: { facts: readonly RichSelectFact[] }): JSX.Element {\n return (\n <ul class=\"k2b-rich-select__facts\">\n <For each={props.facts.slice(0, 3)}>\n {(fact) => (\n <li data-tone={fact.tone === \"warning\" ? \"warning\" : undefined}>\n <i class={fact.icon} aria-hidden=\"true\" />\n <span>{fact.text}</span>\n </li>\n )}\n </For>\n </ul>\n );\n}\n\nfunction RichSelectFooterControl(props: {\n footer: RichSelectFooter;\n initialName: () => string;\n messages: RichSelectMessages;\n done: (run: () => void) => void;\n restoreFocus: () => void;\n}): JSX.Element {\n const [creating, setCreating] = createSignal(false);\n const [name, setName] = createSignal(\"\");\n let input: HTMLInputElement | undefined;\n let start: HTMLButtonElement | undefined;\n let controls: HTMLDivElement | undefined;\n onCleanup(() => {\n if (controls?.contains(document.activeElement)) queueMicrotask(props.restoreFocus);\n });\n const create = () => {\n const footer = props.footer;\n const value = name().trim();\n if (!(\"create\" in footer) || !value) return;\n props.done(() => footer.create.onCreate(value));\n };\n return (\n <div ref={controls} class=\"k2b-rich-select__footer\">\n <Show\n when={creating() && \"create\" in props.footer ? props.footer.create : undefined}\n fallback={\n <button\n ref={start}\n type=\"button\"\n class=\"k2b-rich-select__footer-action\"\n onClick={() => {\n const footer = props.footer;\n if (\"create\" in footer) {\n setName(props.initialName());\n setCreating(true);\n queueMicrotask(() => input?.focus());\n } else props.done(footer.onActivate);\n }}\n >\n <span class=\"k2b-rich-select__visual\" aria-hidden=\"true\">\n <i class={props.footer.icon ?? \"ti ti-plus\"} />\n </span>\n <span class=\"k2b-rich-select__label\">{props.footer.label}</span>\n </button>\n }\n >\n {(create_) => (\n <div class=\"k2b-rich-select__create\">\n <input\n ref={input}\n class=\"k2b-rich-select__create-input\"\n value={name()}\n placeholder={create_().placeholder}\n aria-label={props.footer.label}\n autocomplete=\"off\"\n onInput={(event) => setName(event.currentTarget.value)}\n onKeyDown={(event) => {\n event.stopPropagation();\n if (event.key === \"Escape\") {\n event.preventDefault();\n setCreating(false);\n queueMicrotask(() => start?.focus());\n } else if (event.key === \"Enter\" && !event.isComposing) {\n event.preventDefault();\n create();\n }\n }}\n />\n <Button type=\"button\" variant=\"primary\" size=\"sm\" disabled={!name().trim()} onClick={create}>\n {props.messages.create}\n </Button>\n </div>\n )}\n </Show>\n </div>\n );\n}\n\n/**\n * A dropdown whose rows explain each choice: a name plus one short line, an\n * unavailable row with its reason, and an optional preview of what a choice\n * changes. Desktop opens a popover beside the trigger; a phone opens a bottom\n * sheet whose info buttons show the preview as a second level.\n */\nexport function RichSelect(props: RichSelectProps): JSX.Element {\n const messages = useRichSelectMessages();\n const locale = useLocale();\n const meta = createFieldMeta(props.id);\n const listboxId = `${meta.controlId}-listbox`;\n const previewId = `${meta.controlId}-preview`;\n const [query, setQuery] = createSignal(\"\");\n const [active, setActive] = createSignal(-1);\n const [height, setHeight] = createSignal<string>();\n const [sheetOpen, setSheetOpen] = createSignal(false);\n const [phone, setPhone] = createSignal(false);\n const [sheetId, setSheetId] = createSignal<string>();\n onMount(() => {\n const media = window.matchMedia(PHONE_QUERY);\n setPhone(media.matches);\n const update = () => setPhone(media.matches);\n media.addEventListener(\"change\", update);\n onCleanup(() => media.removeEventListener(\"change\", update));\n });\n let searchRef: HTMLInputElement | undefined;\n let closeSheet: (() => void) | undefined;\n const value = () => resolveMaybeAccessor(props.value) ?? null;\n const error = () => resolveMaybeAccessor(props.error);\n const status = () => props.status ?? \"ready\";\n const withPreview = () => Boolean(props.renderPreview);\n const title = () =>\n props.title ?? (typeof props.label === \"string\" ? props.label : (props[\"aria-label\"] ?? props.placeholder ?? messages().chooseOption));\n const searchable = () => status() === \"ready\" && props.items.length >= RICH_SELECT_SEARCH_FROM;\n const visible = createMemo(() => (searchable() ? filterChoiceOptions(props.items, query()) : props.items));\n const anyVisual = createMemo(() => props.items.some(hasVisual));\n const rows = createMemo<Row[]>(() => {\n const headings = props.items.length >= RICH_SELECT_SEARCH_FROM && props.sections ? props.sections : undefined;\n const result: Row[] = [];\n let section: string | undefined;\n visible().forEach((item, index) => {\n if (headings && item.section && item.section !== section) {\n const heading = headings.find((candidate) => candidate.id === item.section);\n if (heading) result.push({ kind: \"heading\", id: heading.id, label: heading.label });\n }\n section = item.section;\n result.push({ kind: \"item\", item, index });\n });\n return result;\n });\n const selected = createMemo(() => {\n const current = value();\n return current === null ? undefined : props.items.find((item) => item.value === current);\n });\n const activeItem = () => (status() === \"ready\" ? visible()[active()] : undefined);\n const optionId = (index: number) => `${listboxId}-${index}`;\n const popover = createChoicePopover(\n () => Boolean(props.disabled),\n () => ({ width: \"own\", side: props.placement === \"top-start\" ? \"above\" : \"below\" }),\n );\n const expanded = () => popover.open() || sheetOpen();\n const restorePopoverFocus = () => {\n if (popover.open()) (searchable() ? searchRef : popover.trigger())?.focus();\n };\n\n createEffect(() => {\n if (props.disabled) {\n popover.hide();\n closeSheet?.();\n }\n });\n createEffect(() => {\n const count = visible().length;\n if (!popover.open() || status() !== \"ready\") return;\n const current = untrack(active);\n if (current < 0 || current >= count) setActive(startIndex());\n });\n\n const scrollToActive = () => {\n const element = document.getElementById(optionId(active()));\n element?.scrollIntoView({ block: \"nearest\" });\n };\n const move = (next: number) => {\n if (next < 0) return;\n setActive(next);\n queueMicrotask(scrollToActive);\n };\n const startIndex = () => {\n const index = visible().findIndex((item) => item.value === value());\n return index >= 0 ? index : visible().length > 0 ? 0 : -1;\n };\n\n const openPopover = () => {\n setQuery(\"\");\n setActive(startIndex());\n // The preview popover keeps one height while it is open, so moving\n // through rows, filtering, or the end of loading never resizes it.\n const rowsTall = status() === \"ready\" ? props.items.length : PLACEHOLDER_ROWS;\n const rem = Math.min(27.5, Math.max(18.75, rowsTall * 3.625 + 1.5));\n setHeight(props.size?.height ?? (withPreview() ? `${rem}rem` : undefined));\n popover.show();\n if (searchable()) queueMicrotask(() => searchRef?.focus());\n queueMicrotask(scrollToActive);\n };\n const open = () => {\n if (props.disabled || expanded()) return;\n if (isPhone()) openSheet();\n else openPopover();\n };\n const close = (restoreFocus = false) => {\n popover.hide(restoreFocus);\n setQuery(\"\");\n setActive(-1);\n };\n const choose = (item: RichSelectItem | undefined) => {\n if (props.disabled || status() !== \"ready\" || !item || item.disabledReason) return;\n // Hide first: the old list must never stay visible with the next value.\n close(true);\n commitFieldValue(props, item.value);\n };\n const runFooter = (run: () => void) => {\n close(true);\n run();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.isComposing) return;\n const target = event.target;\n if (\n event.key !== \"Escape\" &&\n target instanceof Element &&\n target !== popover.trigger() &&\n target !== searchRef &&\n target.closest(\"input, button, textarea, a, [contenteditable]\")\n )\n return;\n const isOpen = popover.open();\n const count = visible().length;\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n if (!isOpen) open();\n else if (status() === \"ready\") move(nextEnabledChoiceIndex(visible(), active(), event.key === \"ArrowDown\" ? 1 : -1));\n } else if ((event.key === \"Home\" || event.key === \"End\") && isOpen) {\n event.preventDefault();\n if (status() === \"ready\" && count > 0) move(event.key === \"Home\" ? 0 : count - 1);\n } else if ((event.key === \"Enter\" || event.key === \" \") && !isOpen && event.target === popover.trigger()) {\n event.preventDefault();\n open();\n } else if (event.key === \"Enter\" && isOpen) {\n // Enter on an unavailable row does nothing; the list stays open.\n event.preventDefault();\n choose(activeItem());\n } else if (event.key === \"Escape\" && isOpen) {\n // A closed picker lets Escape reach an enclosing dialog.\n event.preventDefault();\n event.stopPropagation();\n close(true);\n } else if (\n isOpen &&\n searchable() &&\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.target !== searchRef\n ) {\n // Typing anywhere in the open picker goes to the search field.\n event.preventDefault();\n setQuery(query() + event.key);\n setActive(visible().length > 0 ? 0 : -1);\n searchRef?.focus();\n }\n };\n const onFocusOut = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (!popover.open() || !(next instanceof Node)) return;\n if (popover.trigger()?.contains(next) || popoverElement?.contains(next)) return;\n close();\n };\n\n let popoverElement: HTMLDivElement | undefined;\n\n const openSheet = () => {\n const current = locale();\n const lifetime = new AbortController();\n // dialogCore can wait for a previous sheet's history traversal. Disabling\n // or unmounting the field must also cancel an opening that is still queued.\n closeSheet = () => lifetime.abort();\n let after: (() => void) | undefined;\n setSheetOpen(true);\n void dialogCore\n .open<void>(\n (closeDialog, context) => {\n context.dialog.id ||= `${meta.controlId}-sheet`;\n setSheetId(context.dialog.id);\n return (\n <LocaleProvider locale={current}>\n <BottomSheet onDismiss={context.requestDismiss}>\n <RichSelectSheet\n props={props}\n title={title()}\n value={value}\n dialog={context.dialog}\n close={() => closeDialog()}\n done={(run) => {\n after = run;\n closeDialog();\n }}\n />\n </BottomSheet>\n </LocaleProvider>\n );\n },\n {\n ...bottomSheetOptions,\n history: true,\n signal: lifetime.signal,\n // A phone keyboard must not cover the list as it opens: focus starts on the sheet.\n initialFocus: (dialog) => {\n dialog.tabIndex = -1;\n return dialog;\n },\n },\n )\n .then(() => {\n if (!lifetime.signal.aborted) after?.();\n })\n .finally(() => {\n closeSheet = undefined;\n setSheetOpen(false);\n });\n };\n onCleanup(() => closeSheet?.());\n\n const triggerText = () => props.triggerLabel ?? selected()?.label ?? props.placeholder ?? messages().chooseOption;\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-choice-control k2b-rich-select\"\n data-appearance={props.appearance ?? \"field\"}\n data-invalid={error() ? \"true\" : undefined}\n onFocusOut={onFocusOut}\n >\n <button\n ref={popover.setTrigger}\n id={meta.controlId}\n type=\"button\"\n class=\"k2b-choice-trigger k2b-rich-select__trigger\"\n role=\"combobox\"\n aria-haspopup={sheetOpen() || (!popover.open() && phone()) ? \"dialog\" : \"listbox\"}\n aria-expanded={expanded()}\n aria-controls={sheetOpen() ? sheetId() : popover.open() ? listboxId : undefined}\n aria-activedescendant={popover.open() && activeItem() ? optionId(active()) : undefined}\n data-tone={props.tone === \"warning\" ? \"warning\" : undefined}\n {...fieldControlAria(meta, {\n ...props,\n \"aria-label\": props[\"aria-label\"] ?? (typeof props.label === \"string\" ? undefined : title()),\n })}\n disabled={props.disabled}\n onClick={() => (popover.open() ? close() : open())}\n onKeyDown={onKeyDown}\n >\n <Show\n when={props.renderTrigger}\n fallback={\n <>\n <Show\n when={selected() && hasVisual(selected()!) ? selected() : undefined}\n fallback={<Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>}\n >\n {(item) => <RichSelectVisual item={item()} />}\n </Show>\n <span class=\"k2b-choice-trigger__value\" data-placeholder={selected() || props.triggerLabel ? undefined : \"true\"}>\n {triggerText()}\n </span>\n <i class=\"ti ti-selector k2b-choice-trigger__chevron\" aria-hidden=\"true\" />\n </>\n }\n >\n {(render) => render()(selected())}\n </Show>\n </button>\n <Show when={props.name}>{(name) => <input type=\"hidden\" name={name()} value={value() ?? \"\"} />}</Show>\n <div\n ref={(element) => {\n popoverElement = element;\n popover.setPopover(element);\n }}\n popover=\"manual\"\n class=\"k2b-choice-popover k2b-rich-select__popover\"\n role=\"group\"\n aria-label={title()}\n data-preview={withPreview() ? \"true\" : undefined}\n data-status={status()}\n style={{ width: props.size?.width, height: height() }}\n onKeyDown={onKeyDown}\n onPointerDown={(event) => {\n // Keep focus on the trigger or search field, so the keys keep working after a click on the preview.\n if (!(event.target as Element).closest(\"input, button, textarea, a\")) event.preventDefault();\n }}\n >\n <Show when={!withPreview()}>\n <div class=\"k2b-rich-select__title\" aria-hidden=\"true\">\n {title()}\n </div>\n </Show>\n <Switch>\n <Match when={status() === \"error\"}>\n <div id={listboxId} role=\"listbox\" aria-label={title()} />\n <RichSelectState status=\"error\" messages={messages()} onRetry={props.onRetry} restoreFocus={restorePopoverFocus} />\n </Match>\n <Match when={status() === \"ready\" && props.items.length === 0}>\n <div id={listboxId} role=\"listbox\" aria-label={title()} />\n <RichSelectState status=\"empty\" messages={messages()} empty={props.empty} />\n <Show when={props.footer}>\n {(footer) => (\n <RichSelectFooterControl\n footer={footer()}\n initialName={query}\n messages={messages()}\n done={runFooter}\n restoreFocus={restorePopoverFocus}\n />\n )}\n </Show>\n </Match>\n <Match when>\n <div class=\"k2b-rich-select__body\">\n <div class=\"k2b-rich-select__column\">\n <Show when={searchable()}>\n <div class=\"k2b-choice-search k2b-rich-select__search\">\n <i class=\"ti ti-search\" aria-hidden=\"true\" />\n <input\n ref={(input) => {\n searchRef = input;\n onCleanup(() => {\n if (document.activeElement === input)\n queueMicrotask(() => {\n if (popover.open()) popover.trigger()?.focus();\n });\n });\n }}\n type=\"search\"\n role=\"combobox\"\n aria-expanded={popover.open()}\n aria-autocomplete=\"list\"\n value={query()}\n placeholder={props.searchPlaceholder ?? messages().search}\n aria-label={props.searchPlaceholder ?? messages().search}\n aria-controls={listboxId}\n aria-activedescendant={activeItem() ? optionId(active()) : undefined}\n autocomplete=\"off\"\n onInput={(event) => {\n setQuery(event.currentTarget.value);\n setActive(visible().length > 0 ? 0 : -1);\n }}\n />\n </div>\n </Show>\n <div\n id={listboxId}\n class=\"k2b-rich-select__list\"\n role=\"listbox\"\n aria-label={title()}\n aria-busy={status() === \"loading\" ? \"true\" : undefined}\n data-visual={anyVisual() ? \"true\" : undefined}\n data-choice-scroll\n >\n <Show when={status() === \"loading\"}>\n <span class=\"k2b-sr-only\">{messages().loading}</span>\n <RichSelectPlaceholders visual={anyVisual() || props.items.length === 0} />\n </Show>\n <Show when={status() === \"ready\"}>\n <For each={rows()} fallback={<div class=\"k2b-rich-select__no-results\">{messages().noResults}</div>}>\n {(row) =>\n row.kind === \"heading\" ? (\n <div class=\"k2b-rich-select__heading\" role=\"presentation\">\n {row.label}\n </div>\n ) : (\n // biome-ignore lint/a11y/useKeyWithClickEvents: the trigger or search field handles the keys through aria-activedescendant.\n <div\n id={optionId(row.index)}\n class=\"k2b-rich-select__option\"\n role=\"option\"\n aria-selected={row.item.value === value()}\n aria-disabled={row.item.disabledReason ? \"true\" : undefined}\n aria-labelledby={`${optionId(row.index)}-label`}\n aria-describedby={\n [\n row.item.disabledReason || row.item.description ? `${optionId(row.index)}-line` : \"\",\n withPreview() && row.index === active() ? previewId : \"\",\n ]\n .filter(Boolean)\n .join(\" \") || undefined\n }\n data-active={row.index === active() ? \"true\" : undefined}\n onPointerMove={() => {\n if (active() !== row.index) setActive(row.index);\n }}\n onClick={() => choose(row.item)}\n >\n <Show when={anyVisual()}>\n <Show when={hasVisual(row.item)} fallback={<span class=\"k2b-rich-select__visual\" />}>\n <RichSelectVisual item={row.item} />\n </Show>\n </Show>\n <RichSelectRowText\n item={row.item}\n labelId={`${optionId(row.index)}-label`}\n lineId={`${optionId(row.index)}-line`}\n />\n <i class=\"ti ti-check k2b-rich-select__check\" aria-hidden=\"true\" />\n </div>\n )\n }\n </For>\n </Show>\n </div>\n <Show when={props.footer && status() === \"ready\"}>\n <RichSelectFooterControl\n footer={props.footer!}\n initialName={query}\n messages={messages()}\n done={runFooter}\n restoreFocus={restorePopoverFocus}\n />\n </Show>\n </div>\n <Show when={props.renderPreview}>\n {(render) => (\n <div class=\"k2b-rich-select__preview\" data-choice-scroll>\n <Show when={status() === \"loading\"}>\n <div class=\"k2b-rich-select__preview-placeholder\" aria-hidden=\"true\">\n <span />\n <span style={{ width: \"86%\" }} />\n <span style={{ width: \"72%\" }} />\n <span style={{ width: \"80%\" }} />\n </div>\n </Show>\n <Show when={activeItem()}>{(item) => <RichSelectPreview id={previewId} item={item()} render={render()} />}</Show>\n </div>\n )}\n </Show>\n </div>\n </Match>\n </Switch>\n </div>\n </div>\n </Field>\n );\n}\n\n/**\n * The phone presentation: a bottom sheet with the list. With a preview, an\n * info button beside each row, unavailable rows included, opens the preview as\n * a second level with Back and Choose.\n */\nfunction RichSelectSheet(sheet: {\n props: RichSelectProps;\n title: string;\n value: () => string | null;\n dialog: HTMLDialogElement;\n close: () => void;\n done: (run: () => void) => void;\n}): JSX.Element {\n const messages = useRichSelectMessages();\n const props = sheet.props;\n const uid = createUniqueId();\n const [query, setQuery] = createSignal(\"\");\n const [detailValue, setDetailValue] = createSignal<string>();\n // Resolve from the current snapshot: access and availability can change while\n // the detail level is open.\n const detail = createMemo(() => props.items.find((item) => item.value === detailValue()));\n let back: HTMLButtonElement | undefined;\n let returnValue: string | undefined;\n const status = () => props.status ?? \"ready\";\n const searchable = () => status() === \"ready\" && props.items.length >= RICH_SELECT_SEARCH_FROM;\n const visible = createMemo(() => (searchable() ? filterChoiceOptions(props.items, query()) : props.items));\n const anyVisual = createMemo(() => props.items.some(hasVisual));\n const headings = () => (props.items.length >= RICH_SELECT_SEARCH_FROM && props.sections ? props.sections : undefined);\n const restoreSheetFocus = () => {\n if (sheet.dialog.open) sheet.dialog.focus();\n };\n const headingBefore = (index: number) => {\n const item = visible()[index];\n const list = headings();\n if (!list || !item?.section || visible()[index - 1]?.section === item.section) return undefined;\n return list.find((candidate) => candidate.id === item.section)?.label;\n };\n const choose = (item: RichSelectItem) => {\n if (props.disabled || status() !== \"ready\" || item.disabledReason) return;\n sheet.done(() => {\n const current = props.items.find((candidate) => candidate.value === item.value);\n if (!props.disabled && status() === \"ready\" && current && !current.disabledReason) commitFieldValue(props, current.value);\n });\n };\n const rowId = (index: number) => `k2b-rich-select-sheet-${uid}-${index}`;\n const showDetail = (item: RichSelectItem) => {\n returnValue = item.value;\n // The second level keeps the sheet's height, so Back and Choose stay where they are.\n sheet.dialog.style.minHeight = `${sheet.dialog.getBoundingClientRect().height}px`;\n setDetailValue(item.value);\n queueMicrotask(() => back?.focus());\n };\n const leaveDetail = () => {\n sheet.dialog.style.minHeight = \"\";\n setDetailValue(undefined);\n const value = returnValue;\n queueMicrotask(() => {\n const index = visible().findIndex((item) => item.value === value);\n const original = index >= 0 ? document.getElementById(`${rowId(index)}-info`) : undefined;\n const fallback = sheet.dialog.querySelector<HTMLButtonElement>(\".k2b-rich-select__sheet-row > button\");\n (original ?? fallback ?? sheet.dialog).focus();\n });\n };\n createEffect(() => {\n if (detailValue() !== undefined && (!detail() || status() !== \"ready\")) leaveDetail();\n });\n // Escape on the second level goes back to the list instead of closing the sheet.\n const onEscape = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\" || !detail()) return;\n event.preventDefault();\n event.stopPropagation();\n leaveDetail();\n };\n onMount(() => {\n sheet.dialog.addEventListener(\"keydown\", onEscape, true);\n onCleanup(() => {\n sheet.dialog.removeEventListener(\"keydown\", onEscape, true);\n // dialogCore may reuse the dialog element for the next dialog.\n sheet.dialog.style.minHeight = \"\";\n });\n });\n\n return (\n <>\n <header class=\"k2b-rich-select__sheet-header\">\n <Show when={detail()}>\n <button ref={back} type=\"button\" class=\"k2b-dialog__close\" aria-label={messages().back} onClick={leaveDetail}>\n <i class=\"ti ti-chevron-left\" aria-hidden=\"true\" />\n </button>\n </Show>\n <h2>{detail()?.label ?? sheet.title}</h2>\n <button type=\"button\" class=\"k2b-dialog__close\" aria-label={messages().close} onClick={sheet.close}>\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </header>\n <Show\n when={detail()}\n fallback={\n <BottomSheet.Body>\n <Switch>\n <Match when={status() === \"error\"}>\n <RichSelectState status=\"error\" messages={messages()} onRetry={props.onRetry} restoreFocus={restoreSheetFocus} />\n </Match>\n <Match when={status() === \"ready\" && props.items.length === 0}>\n <RichSelectState status=\"empty\" messages={messages()} empty={props.empty} />\n <Show when={props.footer}>\n {(footer) => (\n <RichSelectFooterControl\n footer={footer()}\n initialName={query}\n messages={messages()}\n done={sheet.done}\n restoreFocus={restoreSheetFocus}\n />\n )}\n </Show>\n </Match>\n <Match when>\n <Show when={searchable()}>\n <div class=\"k2b-choice-search k2b-rich-select__search\">\n <i class=\"ti ti-search\" aria-hidden=\"true\" />\n <input\n ref={(input) => {\n onCleanup(() => {\n if (document.activeElement === input) queueMicrotask(restoreSheetFocus);\n });\n }}\n type=\"search\"\n value={query()}\n placeholder={props.searchPlaceholder ?? messages().search}\n aria-label={props.searchPlaceholder ?? messages().search}\n autocomplete=\"off\"\n onInput={(event) => setQuery(event.currentTarget.value)}\n />\n </div>\n </Show>\n <div\n class=\"k2b-rich-select__list\"\n role=\"list\"\n aria-label={sheet.title}\n aria-busy={status() === \"loading\" ? \"true\" : undefined}\n data-visual={anyVisual() ? \"true\" : undefined}\n >\n <Show when={status() === \"loading\"}>\n <span class=\"k2b-sr-only\">{messages().loading}</span>\n <RichSelectPlaceholders visual={anyVisual() || props.items.length === 0} />\n </Show>\n <Show when={status() === \"ready\"}>\n <For each={visible()} fallback={<div class=\"k2b-rich-select__no-results\">{messages().noResults}</div>}>\n {(item, index) => (\n <>\n <Show when={headingBefore(index())}>{(label) => <div class=\"k2b-rich-select__heading\">{label()}</div>}</Show>\n <div class=\"k2b-rich-select__sheet-row\" role=\"listitem\" data-info={props.renderPreview ? \"true\" : undefined}>\n <button\n id={rowId(index())}\n type=\"button\"\n class=\"k2b-rich-select__option\"\n aria-current={item.value === sheet.value() ? \"true\" : undefined}\n aria-disabled={item.disabledReason ? \"true\" : undefined}\n aria-labelledby={`${rowId(index())}-label`}\n aria-describedby={item.disabledReason || item.description ? `${rowId(index())}-line` : undefined}\n onClick={() => choose(item)}\n >\n <Show when={anyVisual()}>\n <Show when={hasVisual(item)} fallback={<span class=\"k2b-rich-select__visual\" />}>\n <RichSelectVisual item={item} />\n </Show>\n </Show>\n <RichSelectRowText item={item} labelId={`${rowId(index())}-label`} lineId={`${rowId(index())}-line`} />\n <i class=\"ti ti-check k2b-rich-select__check\" aria-hidden=\"true\" />\n </button>\n <Show when={props.renderPreview}>\n <button\n id={`${rowId(index())}-info`}\n type=\"button\"\n class=\"k2b-rich-select__info\"\n aria-label={messages().detailsFor({ name: item.label })}\n onClick={() => showDetail(item)}\n >\n <i class=\"ti ti-info-circle\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </>\n )}\n </For>\n </Show>\n </div>\n <Show when={props.footer && status() === \"ready\"}>\n <RichSelectFooterControl\n footer={props.footer!}\n initialName={query}\n messages={messages()}\n done={sheet.done}\n restoreFocus={restoreSheetFocus}\n />\n </Show>\n </Match>\n </Switch>\n </BottomSheet.Body>\n }\n >\n {(item) => (\n <>\n <BottomSheet.Body>\n <div class=\"k2b-rich-select__preview\" data-level=\"detail\">\n <RichSelectPreview item={item()} render={props.renderPreview!} />\n </div>\n </BottomSheet.Body>\n <BottomSheet.Footer>\n <Button\n variant=\"primary\"\n size=\"lg\"\n class=\"k2b-rich-select__choose\"\n disabled={Boolean(item().disabledReason)}\n onClick={() => choose(item())}\n >\n <i class=\"ti ti-check\" aria-hidden=\"true\" />\n {messages().choose}\n </Button>\n </BottomSheet.Footer>\n </>\n )}\n </Show>\n </>\n );\n}\n\nexport default RichSelect;\n"],"mappings":"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","ignoreList":[]}
@@ -2,24 +2,26 @@ import { template as _$template } from "solid-js/web";
2
2
  import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
3
  import { style as _$style } from "solid-js/web";
4
4
  import { getNextMarker as _$getNextMarker } from "solid-js/web";
5
- import { className as _$className } from "solid-js/web";
6
5
  import { setProperty as _$setProperty } from "solid-js/web";
7
6
  import { setAttribute as _$setAttribute } from "solid-js/web";
8
- import { effect as _$effect } from "solid-js/web";
9
7
  import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
10
8
  import { spread as _$spread } from "solid-js/web";
11
9
  import { mergeProps as _$mergeProps } from "solid-js/web";
12
- import { getNextElement as _$getNextElement } from "solid-js/web";
13
10
  import { insert as _$insert } from "solid-js/web";
11
+ import { className as _$className } from "solid-js/web";
12
+ import { effect as _$effect } from "solid-js/web";
13
+ import { getNextElement as _$getNextElement } from "solid-js/web";
14
14
  import { createComponent as _$createComponent } from "solid-js/web";
15
15
  import { memo as _$memo } from "solid-js/web";
16
- var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-input-shell__affix>`),
17
- _tmpl$2 = /*#__PURE__*/_$template(`<textarea>`),
18
- _tmpl$3 = /*#__PURE__*/_$template(`<button type=button class="k2b-input-shell__clear k2b-input-clear-action"><i class="ti ti-x"aria-hidden=true>`),
19
- _tmpl$4 = /*#__PURE__*/_$template(`<button type=button class=k2b-input-shell__clear><i aria-hidden=true>`),
20
- _tmpl$5 = /*#__PURE__*/_$template(`<div class="k2b-input-shell k2b-text-input"><span class="k2b-input-shell__icon k2b-text-input__icon"aria-hidden=true><i></i><i></i></span><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
21
- _tmpl$6 = /*#__PURE__*/_$template(`<input>`);
16
+ var _tmpl$ = /*#__PURE__*/_$template(`<span class="k2b-input-shell__icon k2b-text-input__icon"aria-hidden=true><i></i><i>`),
17
+ _tmpl$2 = /*#__PURE__*/_$template(`<span class=k2b-input-shell__affix>`),
18
+ _tmpl$3 = /*#__PURE__*/_$template(`<textarea>`),
19
+ _tmpl$4 = /*#__PURE__*/_$template(`<button type=button class="k2b-input-shell__clear k2b-input-clear-action"><i class="ti ti-x"aria-hidden=true>`),
20
+ _tmpl$5 = /*#__PURE__*/_$template(`<button type=button class=k2b-input-shell__clear><i aria-hidden=true>`),
21
+ _tmpl$6 = /*#__PURE__*/_$template(`<div class="k2b-input-shell k2b-text-input"><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
22
+ _tmpl$7 = /*#__PURE__*/_$template(`<input>`);
22
23
  import { createSignal, Show, splitProps } from "solid-js";
24
+ import { isServer } from "solid-js/web";
23
25
  import { createFieldMeta, Field, fieldControlAria } from "../internal/field";
24
26
  import { useUiMessages } from "../intl/messages";
25
27
  import { commitFieldValue, resolveMaybeAccessor } from "./field-contract";
@@ -28,15 +30,27 @@ import { MarkdownEditor } from "./markdown/MarkdownEditor";
28
30
  export function TextInput(props) {
29
31
  const messages = useUiMessages();
30
32
  const inputMessages = useInputMessages();
31
- const [local, rest] = splitProps(props, ["activeIcon", "aria-describedby", "aria-label", "class", "clearLabel", "clearable", "completions", "description", "error", "icon", "id", "label", "lines", "markdown", "minLength", "maxLength", "monospace", "multiline", "onClear", "onValueCommit", "onSubmit", "onValueChange", "password", "prefix", "required", "suffix", "type", "value", "variant", "abbreviations"]);
33
+ const [local, rest] = splitProps(props, ["activeIcon", "aria-describedby", "aria-label", "class", "clearLabel", "clearable", "completions", "description", "error", "externalErrorId", "icon", "id", "label", "lines", "markdown", "minLength", "maxLength", "monospace", "multiline", "onClear", "onValueCommit", "onSubmit", "onValueChange", "password", "prefix", "required", "suffix", "type", "value", "variant", "abbreviations"]);
32
34
  const meta = createFieldMeta(local.id);
33
35
  const value = () => resolveMaybeAccessor(local.value) ?? "";
34
36
  const error = () => resolveMaybeAccessor(local.error);
37
+ // HTML IDs are single nonempty tokens; numeric starts and punctuation are valid.
38
+ const externalErrorId = () => {
39
+ const id = local.externalErrorId;
40
+ return id && !/[\t\n\f\r ]/.test(id) ? id : undefined;
41
+ };
42
+ const controlMeta = {
43
+ ...meta,
44
+ get errorId() {
45
+ return externalErrorId() ?? meta.errorId;
46
+ }
47
+ };
35
48
  const [passwordVisible, setPasswordVisible] = createSignal(false);
36
49
  const multiline = () => Boolean(local.multiline || local.markdown);
37
- const icon = () => local.icon ?? (local.variant === "ai" ? "ti ti-sparkles" : local.markdown ? "ti ti-markdown" : "ti ti-cursor-text");
50
+ const compact = () => local.variant === "compact";
51
+ const icon = () => local.icon === false ? "" : local.icon ?? (local.variant === "ai" ? "ti ti-sparkles" : local.markdown ? "ti ti-markdown" : "ti ti-cursor-text");
38
52
  // A custom icon stays while typing (a search field keeps its magnifier); only the default icon switches to the pencil.
39
- const activeIcon = () => local.activeIcon ?? local.icon ?? (local.variant === "ai" ? "ti ti-sparkles" : "ti ti-pencil");
53
+ const activeIcon = () => local.activeIcon ?? (local.icon || undefined) ?? (local.variant === "ai" ? "ti ti-sparkles" : "ti ti-pencil");
40
54
  // Names, addresses and passwords are typed exactly: phone keyboards must not capitalize or "correct" them.
41
55
  const verbatim = () => local.password || local.type === "email" || local.type === "url" || /\b(username|email|url)\b/.test(String(rest.autocomplete ?? ""));
42
56
  const input = next => local.onValueChange?.(next);
@@ -64,7 +78,7 @@ export function TextInput(props) {
64
78
  return local.description;
65
79
  },
66
80
  get error() {
67
- return error();
81
+ return _$memo(() => !!externalErrorId())() ? undefined : error();
68
82
  },
69
83
  meta: meta,
70
84
  get required() {
@@ -74,11 +88,8 @@ export function TextInput(props) {
74
88
  return rest.disabled;
75
89
  },
76
90
  get children() {
77
- var _el$ = _$getNextElement(_tmpl$5),
78
- _el$2 = _el$.firstChild,
79
- _el$3 = _el$2.firstChild,
80
- _el$4 = _el$3.nextSibling,
81
- _el$1 = _el$2.nextSibling,
91
+ var _el$ = _$getNextElement(_tmpl$6),
92
+ _el$1 = _el$.firstChild,
82
93
  [_el$10, _co$] = _$getNextMarker(_el$1.nextSibling),
83
94
  _el$11 = _el$10.nextSibling,
84
95
  [_el$12, _co$2] = _$getNextMarker(_el$11.nextSibling),
@@ -87,25 +98,48 @@ export function TextInput(props) {
87
98
  _el$15 = _el$14.nextSibling,
88
99
  [_el$16, _co$4] = _$getNextMarker(_el$15.nextSibling),
89
100
  _el$17 = _el$16.nextSibling,
90
- [_el$18, _co$5] = _$getNextMarker(_el$17.nextSibling);
101
+ [_el$18, _co$5] = _$getNextMarker(_el$17.nextSibling),
102
+ _el$19 = _el$18.nextSibling,
103
+ [_el$20, _co$6] = _$getNextMarker(_el$19.nextSibling);
104
+ _$insert(_el$, _$createComponent(Show, {
105
+ get when() {
106
+ return _$memo(() => !!!compact())() && local.icon !== false;
107
+ },
108
+ get children() {
109
+ var _el$2 = _$getNextElement(_tmpl$),
110
+ _el$3 = _el$2.firstChild,
111
+ _el$4 = _el$3.nextSibling;
112
+ _$effect(_p$ => {
113
+ var _v$ = icon(),
114
+ _v$2 = activeIcon();
115
+ _v$ !== _p$.e && _$className(_el$3, _p$.e = _v$);
116
+ _v$2 !== _p$.t && _$className(_el$4, _p$.t = _v$2);
117
+ return _p$;
118
+ }, {
119
+ e: undefined,
120
+ t: undefined
121
+ });
122
+ return _el$2;
123
+ }
124
+ }), _el$10, _co$);
91
125
  _$insert(_el$, _$createComponent(Show, {
92
126
  get when() {
93
127
  return local.prefix;
94
128
  },
95
129
  get children() {
96
- var _el$5 = _$getNextElement(_tmpl$);
130
+ var _el$5 = _$getNextElement(_tmpl$2);
97
131
  _$insert(_el$5, () => local.prefix);
98
132
  return _el$5;
99
133
  }
100
- }), _el$10, _co$);
134
+ }), _el$12, _co$2);
101
135
  _$insert(_el$, _$createComponent(Show, {
102
136
  get when() {
103
137
  return multiline();
104
138
  },
105
139
  get fallback() {
106
140
  return (() => {
107
- var _el$19 = _$getNextElement(_tmpl$6);
108
- _$spread(_el$19, _$mergeProps({
141
+ var _el$21 = _$getNextElement(_tmpl$7);
142
+ _$spread(_el$21, _$mergeProps({
109
143
  get autocapitalize() {
110
144
  return verbatim() ? "none" : undefined;
111
145
  },
@@ -120,6 +154,9 @@ export function TextInput(props) {
120
154
  return meta.controlId;
121
155
  },
122
156
  "class": "k2b-input",
157
+ get size() {
158
+ return rest.size ?? (compact() ? 9 : undefined);
159
+ },
123
160
  get type() {
124
161
  return _$memo(() => !!(local.password && !passwordVisible()))() ? "password" : local.type ?? "text";
125
162
  },
@@ -135,7 +172,7 @@ export function TextInput(props) {
135
172
  get required() {
136
173
  return local.required;
137
174
  }
138
- }, () => fieldControlAria(meta, local), {
175
+ }, () => fieldControlAria(controlMeta, local), {
139
176
  "onInput": event => {
140
177
  input(event.currentTarget.value);
141
178
  },
@@ -148,11 +185,11 @@ export function TextInput(props) {
148
185
  }
149
186
  }), false, false);
150
187
  _$runHydrationEvents();
151
- return _el$19;
188
+ return _el$21;
152
189
  })();
153
190
  },
154
191
  get children() {
155
- var _el$6 = _$getNextElement(_tmpl$2);
192
+ var _el$6 = _$getNextElement(_tmpl$3);
156
193
  _$spread(_el$6, _$mergeProps(rest, {
157
194
  get id() {
158
195
  return meta.controlId;
@@ -173,7 +210,7 @@ export function TextInput(props) {
173
210
  get maxlength() {
174
211
  return local.maxLength;
175
212
  }
176
- }, () => fieldControlAria(meta, local), {
213
+ }, () => fieldControlAria(controlMeta, local), {
177
214
  "onInput": event => {
178
215
  input(event.currentTarget.value);
179
216
  },
@@ -184,50 +221,51 @@ export function TextInput(props) {
184
221
  local.onSubmit();
185
222
  }
186
223
  }
187
- }), false, false);
224
+ }), false, true);
225
+ _$insert(_el$6, () => isServer ? `\n${value()}` : undefined);
188
226
  _$runHydrationEvents();
189
227
  return _el$6;
190
228
  }
191
- }), _el$12, _co$2);
229
+ }), _el$14, _co$3);
192
230
  _$insert(_el$, _$createComponent(Show, {
193
231
  get when() {
194
232
  return local.suffix;
195
233
  },
196
234
  get children() {
197
- var _el$7 = _$getNextElement(_tmpl$);
235
+ var _el$7 = _$getNextElement(_tmpl$2);
198
236
  _$insert(_el$7, () => local.suffix);
199
237
  return _el$7;
200
238
  }
201
- }), _el$14, _co$3);
239
+ }), _el$16, _co$4);
202
240
  _$insert(_el$, _$createComponent(Show, {
203
241
  get when() {
204
242
  return _$memo(() => !!(local.clearable && value() && !multiline() && !local.password && !rest.disabled))() && !rest.readOnly;
205
243
  },
206
244
  get children() {
207
- var _el$8 = _$getNextElement(_tmpl$3);
245
+ var _el$8 = _$getNextElement(_tmpl$4);
208
246
  _el$8.$$click = clear;
209
247
  _$effect(() => _$setAttribute(_el$8, "aria-label", local.clearLabel ?? messages().clear));
210
248
  _$runHydrationEvents();
211
249
  return _el$8;
212
250
  }
213
- }), _el$16, _co$4);
251
+ }), _el$18, _co$5);
214
252
  _$insert(_el$, _$createComponent(Show, {
215
253
  get when() {
216
254
  return _$memo(() => !!local.password)() && !multiline();
217
255
  },
218
256
  get children() {
219
- var _el$9 = _$getNextElement(_tmpl$4),
257
+ var _el$9 = _$getNextElement(_tmpl$5),
220
258
  _el$0 = _el$9.firstChild;
221
259
  _el$9.$$click = () => setPasswordVisible(visible => !visible);
222
260
  _$effect(_p$ => {
223
- var _v$ = passwordVisible() ? inputMessages().hidePassword : inputMessages().showPassword,
224
- _v$2 = passwordVisible(),
225
- _v$3 = rest.disabled,
226
- _v$4 = passwordVisible() ? "ti ti-eye-off" : "ti ti-eye";
227
- _v$ !== _p$.e && _$setAttribute(_el$9, "aria-label", _p$.e = _v$);
228
- _v$2 !== _p$.t && _$setAttribute(_el$9, "aria-pressed", _p$.t = _v$2);
229
- _v$3 !== _p$.a && _$setProperty(_el$9, "disabled", _p$.a = _v$3);
230
- _v$4 !== _p$.o && _$className(_el$0, _p$.o = _v$4);
261
+ var _v$3 = passwordVisible() ? inputMessages().hidePassword : inputMessages().showPassword,
262
+ _v$4 = passwordVisible(),
263
+ _v$5 = rest.disabled,
264
+ _v$6 = passwordVisible() ? "ti ti-eye-off" : "ti ti-eye";
265
+ _v$3 !== _p$.e && _$setAttribute(_el$9, "aria-label", _p$.e = _v$3);
266
+ _v$4 !== _p$.t && _$setAttribute(_el$9, "aria-pressed", _p$.t = _v$4);
267
+ _v$5 !== _p$.a && _$setProperty(_el$9, "disabled", _p$.a = _v$5);
268
+ _v$6 !== _p$.o && _$className(_el$0, _p$.o = _v$6);
231
269
  return _p$;
232
270
  }, {
233
271
  e: undefined,
@@ -238,24 +276,22 @@ export function TextInput(props) {
238
276
  _$runHydrationEvents();
239
277
  return _el$9;
240
278
  }
241
- }), _el$18, _co$5);
279
+ }), _el$20, _co$6);
242
280
  _$effect(_p$ => {
243
- var _v$5 = error() ? "true" : undefined,
244
- _v$6 = local.variant === "ai" ? "true" : undefined,
245
- _v$7 = multiline() ? "true" : undefined,
246
- _v$8 = local.monospace ? "true" : undefined,
247
- _v$9 = multiline() ? {
281
+ var _v$7 = compact() ? "compact" : undefined,
282
+ _v$8 = error() ? "true" : undefined,
283
+ _v$9 = local.variant === "ai" ? "true" : undefined,
284
+ _v$0 = multiline() ? "true" : undefined,
285
+ _v$1 = local.monospace ? "true" : undefined,
286
+ _v$10 = multiline() ? {
248
287
  "--k2b-editor-lines": String(local.lines ?? 3)
249
- } : undefined,
250
- _v$0 = icon(),
251
- _v$1 = activeIcon();
252
- _v$5 !== _p$.e && _$setAttribute(_el$, "data-invalid", _p$.e = _v$5);
253
- _v$6 !== _p$.t && _$setAttribute(_el$, "data-ai", _p$.t = _v$6);
254
- _v$7 !== _p$.a && _$setAttribute(_el$, "data-multiline", _p$.a = _v$7);
255
- _v$8 !== _p$.o && _$setAttribute(_el$, "data-monospace", _p$.o = _v$8);
256
- _p$.i = _$style(_el$, _v$9, _p$.i);
257
- _v$0 !== _p$.n && _$className(_el$3, _p$.n = _v$0);
258
- _v$1 !== _p$.s && _$className(_el$4, _p$.s = _v$1);
288
+ } : undefined;
289
+ _v$7 !== _p$.e && _$setAttribute(_el$, "data-variant", _p$.e = _v$7);
290
+ _v$8 !== _p$.t && _$setAttribute(_el$, "data-invalid", _p$.t = _v$8);
291
+ _v$9 !== _p$.a && _$setAttribute(_el$, "data-ai", _p$.a = _v$9);
292
+ _v$0 !== _p$.o && _$setAttribute(_el$, "data-multiline", _p$.o = _v$0);
293
+ _v$1 !== _p$.i && _$setAttribute(_el$, "data-monospace", _p$.i = _v$1);
294
+ _p$.n = _$style(_el$, _v$10, _p$.n);
259
295
  return _p$;
260
296
  }, {
261
297
  e: undefined,
@@ -263,8 +299,7 @@ export function TextInput(props) {
263
299
  a: undefined,
264
300
  o: undefined,
265
301
  i: undefined,
266
- n: undefined,
267
- s: undefined
302
+ n: undefined
268
303
  });
269
304
  return _el$;
270
305
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["inputs/TextInput.tsx"],"sourcesContent":["import { createSignal, type JSX, Show, splitProps } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { Completion } from \"./completion\";\nimport type { ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\nimport { useInputMessages } from \"./input-messages\";\nimport { MarkdownEditor } from \"./markdown/MarkdownEditor\";\n\nexport type TextInputProps = Omit<\n JSX.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"onInput\" | \"prefix\" | \"suffix\" | \"type\" | \"value\" | keyof ValueFieldProps<string>\n> &\n ValueFieldProps<string> & {\n minLength?: number;\n maxLength?: number;\n type?: \"text\" | \"search\" | \"email\" | \"url\" | \"tel\";\n variant?: \"default\" | \"ai\";\n icon?: string;\n activeIcon?: string;\n prefix?: JSX.Element;\n suffix?: JSX.Element;\n clearable?: boolean;\n onClear?: () => void;\n clearLabel?: string;\n multiline?: boolean;\n monospace?: boolean;\n password?: boolean;\n markdown?: boolean;\n onSubmit?: () => void;\n lines?: number;\n abbreviations?: Record<string, string>;\n completions?: readonly Completion[];\n };\n\nexport function TextInput(props: TextInputProps): JSX.Element {\n const messages = useUiMessages();\n const inputMessages = useInputMessages();\n const [local, rest] = splitProps(props, [\n \"activeIcon\",\n \"aria-describedby\",\n \"aria-label\",\n \"class\",\n \"clearLabel\",\n \"clearable\",\n \"completions\",\n \"description\",\n \"error\",\n \"icon\",\n \"id\",\n \"label\",\n \"lines\",\n \"markdown\",\n \"minLength\",\n \"maxLength\",\n \"monospace\",\n \"multiline\",\n \"onClear\",\n \"onValueCommit\",\n \"onSubmit\",\n \"onValueChange\",\n \"password\",\n \"prefix\",\n \"required\",\n \"suffix\",\n \"type\",\n \"value\",\n \"variant\",\n \"abbreviations\",\n ]);\n const meta = createFieldMeta(local.id);\n const value = () => resolveMaybeAccessor(local.value) ?? \"\";\n const error = () => resolveMaybeAccessor(local.error);\n const [passwordVisible, setPasswordVisible] = createSignal(false);\n const multiline = () => Boolean(local.multiline || local.markdown);\n const icon = () => local.icon ?? (local.variant === \"ai\" ? \"ti ti-sparkles\" : local.markdown ? \"ti ti-markdown\" : \"ti ti-cursor-text\");\n // A custom icon stays while typing (a search field keeps its magnifier); only the default icon switches to the pencil.\n const activeIcon = () => local.activeIcon ?? local.icon ?? (local.variant === \"ai\" ? \"ti ti-sparkles\" : \"ti ti-pencil\");\n // Names, addresses and passwords are typed exactly: phone keyboards must not capitalize or \"correct\" them.\n const verbatim = () =>\n local.password || local.type === \"email\" || local.type === \"url\" || /\\b(username|email|url)\\b/.test(String(rest.autocomplete ?? \"\"));\n const input = (next: string) => local.onValueChange?.(next);\n const commit = (next: string) => local.onValueCommit?.(next);\n const clear = () => {\n if (local.onClear) {\n local.onClear();\n return;\n }\n commitFieldValue(local, \"\");\n };\n\n return (\n <Show\n when={local.markdown}\n fallback={\n <Field\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n meta={meta}\n required={local.required}\n disabled={rest.disabled}\n >\n <div\n class=\"k2b-input-shell k2b-text-input\"\n data-invalid={error() ? \"true\" : undefined}\n data-ai={local.variant === \"ai\" ? \"true\" : undefined}\n data-multiline={multiline() ? \"true\" : undefined}\n data-monospace={local.monospace ? \"true\" : undefined}\n style={multiline() ? { \"--k2b-editor-lines\": String(local.lines ?? 3) } : undefined}\n >\n <span class=\"k2b-input-shell__icon k2b-text-input__icon\" aria-hidden=\"true\">\n <i class={icon()} />\n <i class={activeIcon()} />\n </span>\n <Show when={local.prefix}>\n <span class=\"k2b-input-shell__affix\">{local.prefix}</span>\n </Show>\n <Show\n when={multiline()}\n fallback={\n <input\n autocapitalize={verbatim() ? \"none\" : undefined}\n autocorrect={verbatim() ? \"off\" : undefined}\n spellcheck={verbatim() ? false : undefined}\n {...rest}\n id={meta.controlId}\n class=\"k2b-input\"\n type={local.password && !passwordVisible() ? \"password\" : (local.type ?? \"text\")}\n value={value()}\n minlength={local.minLength}\n maxlength={local.maxLength}\n required={local.required}\n {...fieldControlAria(meta, local)}\n onInput={(event) => {\n input(event.currentTarget.value);\n }}\n onChange={(event) => commit(event.currentTarget.value)}\n onKeyDown={(event) => {\n if (local.onSubmit && event.key === \"Enter\" && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n local.onSubmit();\n }\n }}\n />\n }\n >\n <textarea\n {...(rest as unknown as JSX.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n id={meta.controlId}\n class=\"k2b-input k2b-text-input__textarea\"\n value={value()}\n rows={local.lines ?? 3}\n required={local.required}\n minlength={local.minLength}\n maxlength={local.maxLength}\n {...fieldControlAria(meta, local)}\n onInput={(event) => {\n input(event.currentTarget.value);\n }}\n onChange={(event) => commit(event.currentTarget.value)}\n onKeyDown={(event) => {\n if (local.onSubmit && event.key === \"Enter\" && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n local.onSubmit();\n }\n }}\n />\n </Show>\n <Show when={local.suffix}>\n <span class=\"k2b-input-shell__affix\">{local.suffix}</span>\n </Show>\n <Show when={local.clearable && value() && !multiline() && !local.password && !rest.disabled && !rest.readOnly}>\n <button\n type=\"button\"\n class=\"k2b-input-shell__clear k2b-input-clear-action\"\n aria-label={local.clearLabel ?? messages().clear}\n onClick={clear}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n <Show when={local.password && !multiline()}>\n <button\n type=\"button\"\n class=\"k2b-input-shell__clear\"\n aria-label={passwordVisible() ? inputMessages().hidePassword : inputMessages().showPassword}\n aria-pressed={passwordVisible()}\n disabled={rest.disabled}\n onClick={() => setPasswordVisible((visible) => !visible)}\n >\n <i class={passwordVisible() ? \"ti ti-eye-off\" : \"ti ti-eye\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </Field>\n }\n >\n <MarkdownEditor\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n id={meta.controlId}\n name={rest.name}\n value={value()}\n onValueChange={input}\n onValueCommit={local.onValueCommit}\n onSubmit={local.onSubmit}\n placeholder={rest.placeholder}\n disabled={rest.disabled}\n required={local.required}\n lines={local.lines}\n maxLength={local.maxLength}\n spellcheck={rest.spellcheck === undefined ? undefined : rest.spellcheck === true || rest.spellcheck === \"true\"}\n abbreviations={local.abbreviations}\n completions={local.completions}\n aria-label={local[\"aria-label\"]}\n aria-describedby={local[\"aria-describedby\"]}\n />\n </Show>\n );\n}\n\nexport default TextInput;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["inputs/TextInput.tsx"],"sourcesContent":["import { createSignal, type JSX, Show, splitProps } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { Completion } from \"./completion\";\nimport type { ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\nimport { useInputMessages } from \"./input-messages\";\nimport { MarkdownEditor } from \"./markdown/MarkdownEditor\";\n\nexport type TextInputProps = Omit<\n JSX.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"onInput\" | \"prefix\" | \"suffix\" | \"type\" | \"value\" | keyof ValueFieldProps<string>\n> &\n ValueFieldProps<string> & {\n minLength?: number;\n maxLength?: number;\n type?: \"text\" | \"search\" | \"email\" | \"url\" | \"tel\";\n variant?: \"default\" | \"ai\" | \"compact\";\n /** Set false for a plain field without a leading icon. */\n icon?: string | false;\n activeIcon?: string;\n /** ID of a consumer-owned visible error; caller owns its announcement. Native controls only. */\n externalErrorId?: string;\n prefix?: JSX.Element;\n suffix?: JSX.Element;\n clearable?: boolean;\n onClear?: () => void;\n clearLabel?: string;\n multiline?: boolean;\n monospace?: boolean;\n password?: boolean;\n markdown?: boolean;\n onSubmit?: () => void;\n lines?: number;\n abbreviations?: Record<string, string>;\n completions?: readonly Completion[];\n };\n\nexport function TextInput(props: TextInputProps): JSX.Element {\n const messages = useUiMessages();\n const inputMessages = useInputMessages();\n const [local, rest] = splitProps(props, [\n \"activeIcon\",\n \"aria-describedby\",\n \"aria-label\",\n \"class\",\n \"clearLabel\",\n \"clearable\",\n \"completions\",\n \"description\",\n \"error\",\n \"externalErrorId\",\n \"icon\",\n \"id\",\n \"label\",\n \"lines\",\n \"markdown\",\n \"minLength\",\n \"maxLength\",\n \"monospace\",\n \"multiline\",\n \"onClear\",\n \"onValueCommit\",\n \"onSubmit\",\n \"onValueChange\",\n \"password\",\n \"prefix\",\n \"required\",\n \"suffix\",\n \"type\",\n \"value\",\n \"variant\",\n \"abbreviations\",\n ]);\n const meta = createFieldMeta(local.id);\n const value = () => resolveMaybeAccessor(local.value) ?? \"\";\n const error = () => resolveMaybeAccessor(local.error);\n // HTML IDs are single nonempty tokens; numeric starts and punctuation are valid.\n const externalErrorId = () => {\n const id = local.externalErrorId;\n return id && !/[\\t\\n\\f\\r ]/.test(id) ? id : undefined;\n };\n const controlMeta = {\n ...meta,\n get errorId() {\n return externalErrorId() ?? meta.errorId;\n },\n };\n const [passwordVisible, setPasswordVisible] = createSignal(false);\n const multiline = () => Boolean(local.multiline || local.markdown);\n const compact = () => local.variant === \"compact\";\n const icon = () =>\n local.icon === false\n ? \"\"\n : (local.icon ?? (local.variant === \"ai\" ? \"ti ti-sparkles\" : local.markdown ? \"ti ti-markdown\" : \"ti ti-cursor-text\"));\n // A custom icon stays while typing (a search field keeps its magnifier); only the default icon switches to the pencil.\n const activeIcon = () => local.activeIcon ?? (local.icon || undefined) ?? (local.variant === \"ai\" ? \"ti ti-sparkles\" : \"ti ti-pencil\");\n // Names, addresses and passwords are typed exactly: phone keyboards must not capitalize or \"correct\" them.\n const verbatim = () =>\n local.password || local.type === \"email\" || local.type === \"url\" || /\\b(username|email|url)\\b/.test(String(rest.autocomplete ?? \"\"));\n const input = (next: string) => local.onValueChange?.(next);\n const commit = (next: string) => local.onValueCommit?.(next);\n const clear = () => {\n if (local.onClear) {\n local.onClear();\n return;\n }\n commitFieldValue(local, \"\");\n };\n\n return (\n <Show\n when={local.markdown}\n fallback={\n <Field\n class={local.class}\n label={local.label}\n description={local.description}\n error={externalErrorId() ? undefined : error()}\n meta={meta}\n required={local.required}\n disabled={rest.disabled}\n >\n <div\n class=\"k2b-input-shell k2b-text-input\"\n data-variant={compact() ? \"compact\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n data-ai={local.variant === \"ai\" ? \"true\" : undefined}\n data-multiline={multiline() ? \"true\" : undefined}\n data-monospace={local.monospace ? \"true\" : undefined}\n style={multiline() ? { \"--k2b-editor-lines\": String(local.lines ?? 3) } : undefined}\n >\n <Show when={!compact() && local.icon !== false}>\n <span class=\"k2b-input-shell__icon k2b-text-input__icon\" aria-hidden=\"true\">\n <i class={icon()} />\n <i class={activeIcon()} />\n </span>\n </Show>\n <Show when={local.prefix}>\n <span class=\"k2b-input-shell__affix\">{local.prefix}</span>\n </Show>\n <Show\n when={multiline()}\n fallback={\n <input\n autocapitalize={verbatim() ? \"none\" : undefined}\n autocorrect={verbatim() ? \"off\" : undefined}\n spellcheck={verbatim() ? false : undefined}\n {...rest}\n id={meta.controlId}\n class=\"k2b-input\"\n size={rest.size ?? (compact() ? 9 : undefined)}\n type={local.password && !passwordVisible() ? \"password\" : (local.type ?? \"text\")}\n value={value()}\n minlength={local.minLength}\n maxlength={local.maxLength}\n required={local.required}\n {...fieldControlAria(controlMeta, local)}\n onInput={(event) => {\n input(event.currentTarget.value);\n }}\n onChange={(event) => commit(event.currentTarget.value)}\n onKeyDown={(event) => {\n if (local.onSubmit && event.key === \"Enter\" && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n local.onSubmit();\n }\n }}\n />\n }\n >\n <textarea\n {...(rest as unknown as JSX.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n id={meta.controlId}\n class=\"k2b-input k2b-text-input__textarea\"\n value={value()}\n rows={local.lines ?? 3}\n required={local.required}\n minlength={local.minLength}\n maxlength={local.maxLength}\n {...fieldControlAria(controlMeta, local)}\n onInput={(event) => {\n input(event.currentTarget.value);\n }}\n onChange={(event) => commit(event.currentTarget.value)}\n onKeyDown={(event) => {\n if (local.onSubmit && event.key === \"Enter\" && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n local.onSubmit();\n }\n }}\n >\n {/* HTML consumes one leading newline in textarea content. */}\n {isServer ? `\\n${value()}` : undefined}\n </textarea>\n </Show>\n <Show when={local.suffix}>\n <span class=\"k2b-input-shell__affix\">{local.suffix}</span>\n </Show>\n <Show when={local.clearable && value() && !multiline() && !local.password && !rest.disabled && !rest.readOnly}>\n <button\n type=\"button\"\n class=\"k2b-input-shell__clear k2b-input-clear-action\"\n aria-label={local.clearLabel ?? messages().clear}\n onClick={clear}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n <Show when={local.password && !multiline()}>\n <button\n type=\"button\"\n class=\"k2b-input-shell__clear\"\n aria-label={passwordVisible() ? inputMessages().hidePassword : inputMessages().showPassword}\n aria-pressed={passwordVisible()}\n disabled={rest.disabled}\n onClick={() => setPasswordVisible((visible) => !visible)}\n >\n <i class={passwordVisible() ? \"ti ti-eye-off\" : \"ti ti-eye\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </Field>\n }\n >\n <MarkdownEditor\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n id={meta.controlId}\n name={rest.name}\n value={value()}\n onValueChange={input}\n onValueCommit={local.onValueCommit}\n onSubmit={local.onSubmit}\n placeholder={rest.placeholder}\n disabled={rest.disabled}\n required={local.required}\n lines={local.lines}\n maxLength={local.maxLength}\n spellcheck={rest.spellcheck === undefined ? undefined : rest.spellcheck === true || rest.spellcheck === \"true\"}\n abbreviations={local.abbreviations}\n completions={local.completions}\n aria-label={local[\"aria-label\"]}\n aria-describedby={local[\"aria-describedby\"]}\n />\n </Show>\n );\n}\n\nexport default TextInput;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,EAAY,IAAI,EAAE,UAAU,QAAQ,UAAU;AACnE,SAAS,QAAQ,QAAQ,cAAc;AACvC,SAAS,eAAe,EAAE,KAAK,EAAE,gBAAgB,QAAQ,mBAAmB;AAC5E,SAAS,aAAa,QAAQ,kBAAkB;AAGhD,SAAS,gBAAgB,EAAE,oBAAoB,QAAQ,kBAAkB;AACzE,SAAS,gBAAgB,QAAQ,kBAAkB;AACnD,SAAS,cAAc,QAAQ,2BAA2B;AA+B1D,OAAO,SAAS,SAAS,CAAC,KAAqB,EAAe;EAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC;EAChC,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC;EACxC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CACtC,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,eAAe,EACf,UAAU,EACV,eAAe,EACf,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,eAAe,CAChB,CAAC;EACF,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;EACtC,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;EAC3D,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;EACrD;EACA,MAAM,eAAe,GAAG,MAAM;IAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,eAAe;IAChC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,SAAS;EACvD,CAAC;EACD,MAAM,WAAW,GAAG;IAClB,GAAG,IAAI;IACP,IAAI,OAAO,GAAG;MACZ,OAAO,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO;IAC1C;EACF,CAAC;EACD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;EACjE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC;EAClE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,KAAK,SAAS;EACjD,MAAM,IAAI,GAAG,MACX,KAAK,CAAC,IAAI,KAAK,KAAK,GAChB,EAAE,GACD,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,gBAAgB,GAAG,KAAK,CAAC,QAAQ,GAAG,gBAAgB,GAAG,mBAAmB,CAAE;EAC3H;EACA,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,gBAAgB,GAAG,cAAc,CAAC;EACtI;EACA,MAAM,QAAQ,GAAG,MACf,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;EACtI,MAAM,KAAK,GAAI,IAAY,IAAK,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;EAC3D,MAAM,MAAM,GAAI,IAAY,IAAK,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;EAC5D,MAAM,KAAK,GAAG,MAAM;IAClB,IAAI,KAAK,CAAC,OAAO,EAAE;MACjB,KAAK,CAAC,OAAO,CAAC,CAAC;MACf;IACF;IACA,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;EAC7B,CAAC;EAED,yBACG,IAAI;IAAA,IACH,IAAI;MAAA,OAAE,KAAK,CAAC,QAAQ;IAAA;IAAA,IACpB,QAAQ;MAAA,yBACL,KAAK;QAAA;UAAA,OACG,KAAK,CAAC,KAAK;QAAA;QAAA,IAClB,KAAK;UAAA,OAAE,KAAK,CAAC,KAAK;QAAA;QAAA,IAClB,WAAW;UAAA,OAAE,KAAK,CAAC,WAAW;QAAA;QAAA,IAC9B,KAAK;UAAA,OAAE,8BAAe,CAAC,CAAC,MAAG,SAAS,GAAG,KAAK,CAAC,CAAC;QAAA;QAC9C,IAAI,EAAE,IAAI;QAAA,IACV,QAAQ;UAAA,OAAE,KAAK,CAAC,QAAQ;QAAA;QAAA,IACxB,QAAQ;UAAA,OAAE,IAAI,CAAC,QAAQ;QAAA;QAAA;UAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA,iCAWpB,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,gBAAC,OAAO,CAAC,CAAC,OAAI,KAAK,CAAC,IAAI,KAAK,KAAK;YAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA,UAEhC,IAAI,CAAC,CAAC;kBAAA,OACN,UAAU,CAAC,CAAC;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;YAAA;UAAA;UAAA,iCAGzB,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,KAAK,CAAC,MAAM;YAAA;YAAA;cAAA;cAAA,sBACgB,KAAK,CAAC,MAAM;cAAA;YAAA;UAAA;UAAA,iCAEnD,IAAI;YAAA,IACH,IAAI;cAAA,OAAE,SAAS,CAAC,CAAC;YAAA;YAAA,IACjB,QAAQ;cAAA;gBAAA;gBAAA;kBAAA,IAEJ,cAAc;oBAAA,OAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;kBAAA;kBAAA,IAC/C,WAAW;oBAAA,OAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS;kBAAA;kBAAA,IAC3C,UAAU;oBAAA,OAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS;kBAAA;gBAAA,GACtC,IAAI;kBAAA,IACR,EAAE;oBAAA,OAAE,IAAI,CAAC,SAAS;kBAAA;kBAAA,SACZ,WAAW;kBAAA,IACjB,IAAI;oBAAA,OAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;kBAAA;kBAAA,IAC9C,IAAI;oBAAA,OAAE,qBAAK,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,OAAG,UAAU,GAAI,KAAK,CAAC,IAAI,IAAI,MAAO;kBAAA;kBAAA,IAChF,KAAK;oBAAA,OAAE,KAAK,CAAC,CAAC;kBAAA;kBAAA,IACd,SAAS;oBAAA,OAAE,KAAK,CAAC,SAAS;kBAAA;kBAAA,IAC1B,SAAS;oBAAA,OAAE,KAAK,CAAC,SAAS;kBAAA;kBAAA,IAC1B,QAAQ;oBAAA,OAAE,KAAK,CAAC,QAAQ;kBAAA;gBAAA,SACpB,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;kBAAA,WAC9B,KAAK,IAAK;oBAClB,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;kBAClC,CAAC;kBAAA,YACU,KAAK,IAAK,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;kBAAA,aAC1C,KAAK,IAAK;oBACpB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;sBAChF,KAAK,CAAC,cAAc,CAAC,CAAC;sBACtB,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClB;kBACF;gBAAC;gBAAA;gBAAA;cAAA;YAAA;YAAA;cAAA;cAAA,6BAKE,IAAI;gBAAA,IACT,EAAE;kBAAA,OAAE,IAAI,CAAC,SAAS;gBAAA;gBAAA,SACZ,oCAAoC;gBAAA,IAC1C,KAAK;kBAAA,OAAE,KAAK,CAAC,CAAC;gBAAA;gBAAA,IACd,IAAI;kBAAA,OAAE,KAAK,CAAC,KAAK,IAAI,CAAC;gBAAA;gBAAA,IACtB,QAAQ;kBAAA,OAAE,KAAK,CAAC,QAAQ;gBAAA;gBAAA,IACxB,SAAS;kBAAA,OAAE,KAAK,CAAC,SAAS;gBAAA;gBAAA,IAC1B,SAAS;kBAAA,OAAE,KAAK,CAAC,SAAS;gBAAA;cAAA,SACtB,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;gBAAA,WAC9B,KAAK,IAAK;kBAClB,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;gBAClC,CAAC;gBAAA,YACU,KAAK,IAAK,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAA,aAC1C,KAAK,IAAK;kBACpB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBAChF,KAAK,CAAC,cAAc,CAAC,CAAC;oBACtB,KAAK,CAAC,QAAQ,CAAC,CAAC;kBAClB;gBACF;cAAC;cAAA,sBAGA,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS;cAAA;cAAA;YAAA;UAAA;UAAA,iCAGzC,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,KAAK,CAAC,MAAM;YAAA;YAAA;cAAA;cAAA,sBACgB,KAAK,CAAC,MAAM;cAAA;YAAA;UAAA;UAAA,iCAEnD,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,qBAAK,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,QAAI,CAAC,IAAI,CAAC,QAAQ;YAAA;YAAA;cAAA;cAAA,gBAKhG,KAAK;cAAA,mDADF,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK;cAAA;cAAA;YAAA;UAAA;UAAA,iCAMnD,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,oBAAK,CAAC,QAAQ,OAAI,CAAC,SAAS,CAAC,CAAC;YAAA;YAAA;cAAA;gBAAA;cAAA,gBAO7B,MAAM,kBAAkB,CAAE,OAAO,IAAK,CAAC,OAAO,CAAC;cAAA;gBAAA,WAH5C,eAAe,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY;kBAAA,OAC7E,eAAe,CAAC,CAAC;kBAAA,OACrB,IAAI,CAAC,QAAQ;kBAAA,OAGb,eAAe,CAAC,CAAC,GAAG,eAAe,GAAG,WAAW;gBAAA;gBAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;gBAAA;cAAA;cAAA;cAAA;YAAA;UAAA;UAAA;YAAA,WA7FjD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS;cAAA,OACjC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;cAAA,OACjC,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,SAAS;cAAA,OACpC,SAAS,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;cAAA,OAChC,KAAK,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS;cAAA,QAC7C,SAAS,CAAC,CAAC,GAAG;gBAAE,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;cAAE,CAAC,GAAG,SAAS;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA,yBA+FxF,cAAc;QAAA;UAAA,OACN,KAAK,CAAC,KAAK;QAAA;QAAA,IAClB,KAAK;UAAA,OAAE,KAAK,CAAC,KAAK;QAAA;QAAA,IAClB,WAAW;UAAA,OAAE,KAAK,CAAC,WAAW;QAAA;QAAA,IAC9B,KAAK;UAAA,OAAE,KAAK,CAAC,CAAC;QAAA;QAAA,IACd,EAAE;UAAA,OAAE,IAAI,CAAC,SAAS;QAAA;QAAA,IAClB,IAAI;UAAA,OAAE,IAAI,CAAC,IAAI;QAAA;QAAA,IACf,KAAK;UAAA,OAAE,KAAK,CAAC,CAAC;QAAA;QACd,aAAa,EAAE,KAAK;QAAA,IACpB,aAAa;UAAA,OAAE,KAAK,CAAC,aAAa;QAAA;QAAA,IAClC,QAAQ;UAAA,OAAE,KAAK,CAAC,QAAQ;QAAA;QAAA,IACxB,WAAW;UAAA,OAAE,IAAI,CAAC,WAAW;QAAA;QAAA,IAC7B,QAAQ;UAAA,OAAE,IAAI,CAAC,QAAQ;QAAA;QAAA,IACvB,QAAQ;UAAA,OAAE,KAAK,CAAC,QAAQ;QAAA;QAAA,IACxB,KAAK;UAAA,OAAE,KAAK,CAAC,KAAK;QAAA;QAAA,IAClB,SAAS;UAAA,OAAE,KAAK,CAAC,SAAS;QAAA;QAAA,IAC1B,UAAU;UAAA,OAAE,iBAAI,CAAC,UAAU,KAAK,SAAS,MAAG,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM;QAAA;QAAA,IAC9G,aAAa;UAAA,OAAE,KAAK,CAAC,aAAa;QAAA;QAAA,IAClC,WAAW;UAAA,OAAE,KAAK,CAAC,WAAW;QAAA;QAAA;UAAA,OAClB,KAAK,CAAC,YAAY,CAAC;QAAA;QAAA;UAAA,OACb,KAAK,CAAC,kBAAkB,CAAC;QAAA;MAAA;IAAA;EAAA;AAInD;AAEA,eAAe,SAAS;AAAC","ignoreList":[]}