@k2b/ui 0.34.0 → 0.36.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 (126) hide show
  1. package/dist/browser/actions/Dropdown.js +1 -0
  2. package/dist/browser/actions/Dropdown.js.map +1 -1
  3. package/dist/browser/content/MapView.js +128 -13
  4. package/dist/browser/content/MapView.js.map +1 -1
  5. package/dist/browser/content/MapViewFrame.js +1 -1
  6. package/dist/browser/content/MapViewFrame.js.map +1 -1
  7. package/dist/browser/content/MatchText.js +61 -0
  8. package/dist/browser/content/MatchText.js.map +1 -0
  9. package/dist/browser/content/index.js +2 -0
  10. package/dist/browser/content/index.js.map +1 -1
  11. package/dist/browser/content/map-view-glyphs.js +23 -0
  12. package/dist/browser/content/map-view-glyphs.js.map +1 -0
  13. package/dist/browser/content/map-view-live.js +45 -22
  14. package/dist/browser/content/map-view-live.js.map +1 -1
  15. package/dist/browser/content/map-view-snapshot.js +191 -0
  16. package/dist/browser/content/map-view-snapshot.js.map +1 -0
  17. package/dist/browser/content/map-view-types.js.map +1 -1
  18. package/dist/browser/inputs/Combobox.js +139 -62
  19. package/dist/browser/inputs/Combobox.js.map +1 -1
  20. package/dist/browser/inputs/TextInput.js +1 -1
  21. package/dist/browser/inputs/TextInput.js.map +1 -1
  22. package/dist/browser/layout/AppWorkspace.js +73 -70
  23. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  24. package/dist/browser/layout/ScrollArea.js +4 -1
  25. package/dist/browser/layout/ScrollArea.js.map +1 -1
  26. package/dist/browser/text-editor/TextEditor.js +1358 -0
  27. package/dist/browser/text-editor/TextEditor.js.map +1 -0
  28. package/dist/browser/text-editor/clipboard-html.js +152 -0
  29. package/dist/browser/text-editor/clipboard-html.js.map +1 -0
  30. package/dist/browser/text-editor/clipboard-loading.js +68 -0
  31. package/dist/browser/text-editor/clipboard-loading.js.map +1 -0
  32. package/dist/browser/text-editor/clipboard.js +51 -0
  33. package/dist/browser/text-editor/clipboard.js.map +1 -0
  34. package/dist/browser/text-editor/engine.js +125 -0
  35. package/dist/browser/text-editor/engine.js.map +1 -0
  36. package/dist/browser/text-editor/format.js +218 -0
  37. package/dist/browser/text-editor/format.js.map +1 -0
  38. package/dist/browser/text-editor/formatted.js +164 -0
  39. package/dist/browser/text-editor/formatted.js.map +1 -0
  40. package/dist/browser/text-editor/language.js +19 -0
  41. package/dist/browser/text-editor/language.js.map +1 -0
  42. package/dist/browser/text-editor/markdown-table.js +563 -0
  43. package/dist/browser/text-editor/markdown-table.js.map +1 -0
  44. package/dist/browser/text-editor/messages.js +233 -0
  45. package/dist/browser/text-editor/messages.js.map +1 -0
  46. package/dist/browser/text-editor/paste.js +115 -0
  47. package/dist/browser/text-editor/paste.js.map +1 -0
  48. package/dist/browser/text-editor/table.js +1760 -0
  49. package/dist/browser/text-editor/table.js.map +1 -0
  50. package/dist/browser/text-editor.js +5 -0
  51. package/dist/browser/text-editor.js.map +1 -0
  52. package/dist/ssr/actions/Dropdown.js +1 -0
  53. package/dist/ssr/actions/Dropdown.js.map +1 -1
  54. package/dist/ssr/content/MapView.js +128 -13
  55. package/dist/ssr/content/MapView.js.map +1 -1
  56. package/dist/ssr/content/MapViewFrame.js +1 -1
  57. package/dist/ssr/content/MapViewFrame.js.map +1 -1
  58. package/dist/ssr/content/MatchText.js +56 -0
  59. package/dist/ssr/content/MatchText.js.map +1 -0
  60. package/dist/ssr/content/index.js +2 -0
  61. package/dist/ssr/content/index.js.map +1 -1
  62. package/dist/ssr/content/map-view-glyphs.js +23 -0
  63. package/dist/ssr/content/map-view-glyphs.js.map +1 -0
  64. package/dist/ssr/content/map-view-snapshot.js +191 -0
  65. package/dist/ssr/content/map-view-snapshot.js.map +1 -0
  66. package/dist/ssr/content/map-view-types.js.map +1 -1
  67. package/dist/ssr/inputs/Combobox.js +66 -20
  68. package/dist/ssr/inputs/Combobox.js.map +1 -1
  69. package/dist/ssr/inputs/TextInput.js.map +1 -1
  70. package/dist/ssr/layout/AppWorkspace.js +1 -1
  71. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  72. package/dist/ssr/layout/ScrollArea.js +4 -1
  73. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  74. package/dist/ssr/text-editor/TextEditor.js +1155 -0
  75. package/dist/ssr/text-editor/TextEditor.js.map +1 -0
  76. package/dist/ssr/text-editor/clipboard-html.js +152 -0
  77. package/dist/ssr/text-editor/clipboard-html.js.map +1 -0
  78. package/dist/ssr/text-editor/clipboard-loading.js +68 -0
  79. package/dist/ssr/text-editor/clipboard-loading.js.map +1 -0
  80. package/dist/ssr/text-editor/clipboard.js +51 -0
  81. package/dist/ssr/text-editor/clipboard.js.map +1 -0
  82. package/dist/ssr/text-editor/engine.js +125 -0
  83. package/dist/ssr/text-editor/engine.js.map +1 -0
  84. package/dist/ssr/text-editor/format.js +218 -0
  85. package/dist/ssr/text-editor/format.js.map +1 -0
  86. package/dist/ssr/text-editor/formatted.js +164 -0
  87. package/dist/ssr/text-editor/formatted.js.map +1 -0
  88. package/dist/ssr/text-editor/language.js +19 -0
  89. package/dist/ssr/text-editor/language.js.map +1 -0
  90. package/dist/ssr/text-editor/markdown-table.js +563 -0
  91. package/dist/ssr/text-editor/markdown-table.js.map +1 -0
  92. package/dist/ssr/text-editor/messages.js +233 -0
  93. package/dist/ssr/text-editor/messages.js.map +1 -0
  94. package/dist/ssr/text-editor/paste.js +115 -0
  95. package/dist/ssr/text-editor/paste.js.map +1 -0
  96. package/dist/ssr/text-editor/table.js +1760 -0
  97. package/dist/ssr/text-editor/table.js.map +1 -0
  98. package/dist/ssr/text-editor.js +5 -0
  99. package/dist/ssr/text-editor.js.map +1 -0
  100. package/dist/styles.css +1 -1
  101. package/dist/types/actions/Dropdown.d.ts +2 -0
  102. package/dist/types/content/MapViewFrame.d.ts +1 -1
  103. package/dist/types/content/MatchText.d.ts +21 -0
  104. package/dist/types/content/index.d.ts +3 -1
  105. package/dist/types/content/map-view-glyphs.d.ts +5 -0
  106. package/dist/types/content/map-view-live.d.ts +1 -1
  107. package/dist/types/content/map-view-snapshot.d.ts +13 -0
  108. package/dist/types/content/map-view-types.d.ts +15 -0
  109. package/dist/types/inputs/Combobox.d.ts +12 -0
  110. package/dist/types/inputs/TextInput.d.ts +2 -1
  111. package/dist/types/layout/AppWorkspace.d.ts +4 -1
  112. package/dist/types/layout/ScrollArea.d.ts +2 -0
  113. package/dist/types/text-editor/TextEditor.d.ts +69 -0
  114. package/dist/types/text-editor/clipboard-html.d.ts +9 -0
  115. package/dist/types/text-editor/clipboard-loading.d.ts +8 -0
  116. package/dist/types/text-editor/clipboard.d.ts +20 -0
  117. package/dist/types/text-editor/engine.d.ts +34 -0
  118. package/dist/types/text-editor/format.d.ts +34 -0
  119. package/dist/types/text-editor/formatted.d.ts +1 -0
  120. package/dist/types/text-editor/language.d.ts +8 -0
  121. package/dist/types/text-editor/markdown-table.d.ts +105 -0
  122. package/dist/types/text-editor/messages.d.ts +113 -0
  123. package/dist/types/text-editor/paste.d.ts +6 -0
  124. package/dist/types/text-editor/table.d.ts +81 -0
  125. package/dist/types/text-editor.d.ts +4 -0
  126. package/package.json +24 -3
@@ -225,7 +225,7 @@ export function TextInput(props) {
225
225
  input(event.currentTarget.value);
226
226
  },
227
227
  "onChange": event => commit(event.currentTarget.value),
228
- "onKeyDown": submitOnEnter
228
+ "onKeyDown": keyDown
229
229
  }), false, true);
230
230
  _$insert(_el$6, () => isServer ? `\n${value()}` : undefined);
231
231
  _$runHydrationEvents();
@@ -1 +1 @@
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 \"onKeyDown\",\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 submitOnEnter = (event: KeyboardEvent) => {\n if (local.onSubmit && event.key === \"Enter\" && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n local.onSubmit();\n }\n };\n /** The caller's key handler runs first; Enter submits unless it handled the key. */\n const keyDown: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (event) => {\n const handler = local.onKeyDown;\n if (typeof handler === \"function\") handler(event);\n else if (Array.isArray(handler)) handler[0](handler[1], event);\n if (!event.defaultPrevented) submitOnEnter(event);\n };\n const clear: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n // Clearing removes the button. Return to the field before notifying the caller, whose handler\n // may deliberately navigate or move focus somewhere else.\n event.currentTarget.ownerDocument.getElementById(meta.controlId)?.focus();\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={keyDown}\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={submitOnEnter}\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":"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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\" | \"onKeyDown\" | \"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 onKeyDown?: JSX.EventHandlerUnion<HTMLInputElement | HTMLTextAreaElement, KeyboardEvent>;\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 \"onKeyDown\",\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 submitOnEnter = (event: KeyboardEvent) => {\n if (local.onSubmit && event.key === \"Enter\" && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n local.onSubmit();\n }\n };\n /** The caller's key handler runs first; Enter submits unless it handled the key. */\n const keyDown: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, KeyboardEvent> = (event) => {\n const handler = local.onKeyDown;\n if (typeof handler === \"function\") handler(event);\n else if (Array.isArray(handler)) handler[0](handler[1], event);\n if (!event.defaultPrevented) submitOnEnter(event);\n };\n const clear: JSX.EventHandler<HTMLButtonElement, MouseEvent> = (event) => {\n // Clearing removes the button. Return to the field before notifying the caller, whose handler\n // may deliberately navigate or move focus somewhere else.\n event.currentTarget.ownerDocument.getElementById(meta.controlId)?.focus();\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={keyDown}\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={keyDown}\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":"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","ignoreList":[]}
@@ -1432,13 +1432,16 @@ const AppWorkspaceSidebarItemStatus = props => {
1432
1432
  }));
1433
1433
  _$effect(_p$ => {
1434
1434
  var _v$59 = waiting() !== null ? undefined : count() ? "count" : dot() ? "dot" : undefined,
1435
- _v$60 = waiting() === null ? undefined : waiting() ? "count" : "zero";
1435
+ _v$60 = waiting() === null ? undefined : waiting() ? "count" : "zero",
1436
+ _v$61 = props.muted ? "true" : undefined;
1436
1437
  _v$59 !== _p$.e && _$setAttribute(_el$55, "data-unread", _p$.e = _v$59);
1437
1438
  _v$60 !== _p$.t && _$setAttribute(_el$55, "data-waiting", _p$.t = _v$60);
1439
+ _v$61 !== _p$.a && _$setAttribute(_el$55, "data-muted", _p$.a = _v$61);
1438
1440
  return _p$;
1439
1441
  }, {
1440
1442
  e: undefined,
1441
- t: undefined
1443
+ t: undefined,
1444
+ a: undefined
1442
1445
  });
1443
1446
  return _el$55;
1444
1447
  })();
@@ -1742,10 +1745,10 @@ function AppWorkspaceSidebarItem(props) {
1742
1745
  }
1743
1746
  }), _el$85, _co$13);
1744
1747
  _$effect(_p$ => {
1745
- var _v$61 = oneLine() ? "1" : undefined,
1746
- _v$62 = !oneLine() && typeof label() === "string" ? label() : undefined;
1747
- _v$61 !== _p$.e && _$setAttribute(_el$79, "data-lines", _p$.e = _v$61);
1748
- _v$62 !== _p$.t && _$setAttribute(_el$79, "data-label", _p$.t = _v$62);
1748
+ var _v$62 = oneLine() ? "1" : undefined,
1749
+ _v$63 = !oneLine() && typeof label() === "string" ? label() : undefined;
1750
+ _v$62 !== _p$.e && _$setAttribute(_el$79, "data-lines", _p$.e = _v$62);
1751
+ _v$63 !== _p$.t && _$setAttribute(_el$79, "data-label", _p$.t = _v$63);
1749
1752
  return _p$;
1750
1753
  }, {
1751
1754
  e: undefined,
@@ -1760,10 +1763,10 @@ function AppWorkspaceSidebarItem(props) {
1760
1763
  var _el$86 = _$getNextElement(_tmpl$41);
1761
1764
  _$insert(_el$86, meta);
1762
1765
  _$effect(_p$ => {
1763
- var _v$63 = props.preview?.trigger === "row" ? metaId : undefined,
1764
- _v$64 = metaVisibility() === "hover" ? "hover" : undefined;
1765
- _v$63 !== _p$.e && _$setAttribute(_el$86, "id", _p$.e = _v$63);
1766
- _v$64 !== _p$.t && _$setAttribute(_el$86, "data-visibility", _p$.t = _v$64);
1766
+ var _v$64 = props.preview?.trigger === "row" ? metaId : undefined,
1767
+ _v$65 = metaVisibility() === "hover" ? "hover" : undefined;
1768
+ _v$64 !== _p$.e && _$setAttribute(_el$86, "id", _p$.e = _v$64);
1769
+ _v$65 !== _p$.t && _$setAttribute(_el$86, "data-visibility", _p$.t = _v$65);
1767
1770
  return _p$;
1768
1771
  }, {
1769
1772
  e: undefined,
@@ -1804,12 +1807,12 @@ function AppWorkspaceSidebarItem(props) {
1804
1807
  _el$90.$$click = select;
1805
1808
  _$insert(_el$90, content);
1806
1809
  _$effect(_p$ => {
1807
- var _v$68 = actionSlot()?.disabled,
1808
- _v$69 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1809
- _v$70 = label();
1810
- _v$68 !== _p$.e && _$setProperty(_el$90, "disabled", _p$.e = _v$68);
1811
- _v$69 !== _p$.t && _$setAttribute(_el$90, "data-visibility", _p$.t = _v$69);
1812
- _v$70 !== _p$.a && _$setAttribute(_el$90, "aria-label", _p$.a = _v$70);
1810
+ var _v$69 = actionSlot()?.disabled,
1811
+ _v$70 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1812
+ _v$71 = label();
1813
+ _v$69 !== _p$.e && _$setProperty(_el$90, "disabled", _p$.e = _v$69);
1814
+ _v$70 !== _p$.t && _$setAttribute(_el$90, "data-visibility", _p$.t = _v$70);
1815
+ _v$71 !== _p$.a && _$setAttribute(_el$90, "aria-label", _p$.a = _v$71);
1813
1816
  return _p$;
1814
1817
  }, {
1815
1818
  e: undefined,
@@ -1825,12 +1828,12 @@ function AppWorkspaceSidebarItem(props) {
1825
1828
  _el$89.$$click = select;
1826
1829
  _$insert(_el$89, content);
1827
1830
  _$effect(_p$ => {
1828
- var _v$65 = actionSlot()?.href,
1829
- _v$66 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1830
- _v$67 = label();
1831
- _v$65 !== _p$.e && _$setAttribute(_el$89, "href", _p$.e = _v$65);
1832
- _v$66 !== _p$.t && _$setAttribute(_el$89, "data-visibility", _p$.t = _v$66);
1833
- _v$67 !== _p$.a && _$setAttribute(_el$89, "aria-label", _p$.a = _v$67);
1831
+ var _v$66 = actionSlot()?.href,
1832
+ _v$67 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1833
+ _v$68 = label();
1834
+ _v$66 !== _p$.e && _$setAttribute(_el$89, "href", _p$.e = _v$66);
1835
+ _v$67 !== _p$.t && _$setAttribute(_el$89, "data-visibility", _p$.t = _v$67);
1836
+ _v$68 !== _p$.a && _$setAttribute(_el$89, "aria-label", _p$.a = _v$68);
1834
1837
  return _p$;
1835
1838
  }, {
1836
1839
  e: undefined,
@@ -2184,10 +2187,10 @@ const AppWorkspaceNavTree = props => {
2184
2187
  var _el$97 = _$getNextElement(_tmpl$47);
2185
2188
  _$insert(_el$97, () => item.meta);
2186
2189
  _$effect(_p$ => {
2187
- var _v$71 = `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`,
2188
- _v$72 = item.metaVisibility === "hover" ? "hover" : undefined;
2189
- _v$71 !== _p$.e && _$className(_el$97, _p$.e = _v$71);
2190
- _v$72 !== _p$.t && _$setAttribute(_el$97, "data-visibility", _p$.t = _v$72);
2190
+ var _v$72 = `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`,
2191
+ _v$73 = item.metaVisibility === "hover" ? "hover" : undefined;
2192
+ _v$72 !== _p$.e && _$className(_el$97, _p$.e = _v$72);
2193
+ _v$73 !== _p$.t && _$setAttribute(_el$97, "data-visibility", _p$.t = _v$73);
2191
2194
  return _p$;
2192
2195
  }, {
2193
2196
  e: undefined,
@@ -2343,28 +2346,28 @@ const AppWorkspaceNavTree = props => {
2343
2346
  }
2344
2347
  }), _el$107, _co$15);
2345
2348
  _$effect(_p$ => {
2346
- var _v$73 = siblings().length,
2347
- _v$74 = place() + 1,
2348
- _v$75 = selected(),
2349
- _v$76 = hasChildren() ? isExpanded(item.id) : undefined,
2350
- _v$77 = item.disabled ? "true" : undefined,
2351
- _v$78 = item.disabled ? -1 : tabStopId() === item.id ? 0 : -1,
2352
- _v$79 = movable() ? true : undefined,
2353
- _v$80 = item.id,
2354
- _v$81 = dragged()?.id === item.id ? "" : undefined,
2355
- _v$82 = dropTarget()?.id === item.id ? dropTarget().side : undefined,
2356
- _v$83 = String(props.indented === false ? 0 : depth);
2357
- _v$73 !== _p$.e && _$setAttribute(_el$102, "aria-setsize", _p$.e = _v$73);
2358
- _v$74 !== _p$.t && _$setAttribute(_el$102, "aria-posinset", _p$.t = _v$74);
2359
- _v$75 !== _p$.a && _$setAttribute(_el$102, "aria-selected", _p$.a = _v$75);
2360
- _v$76 !== _p$.o && _$setAttribute(_el$102, "aria-expanded", _p$.o = _v$76);
2361
- _v$77 !== _p$.i && _$setAttribute(_el$102, "aria-disabled", _p$.i = _v$77);
2362
- _v$78 !== _p$.n && _$setAttribute(_el$102, "tabindex", _p$.n = _v$78);
2363
- _v$79 !== _p$.s && _$setAttribute(_el$102, "draggable", _p$.s = _v$79);
2364
- _v$80 !== _p$.h && _$setAttribute(_el$102, "data-k2b-nav-tree-id", _p$.h = _v$80);
2365
- _v$81 !== _p$.r && _$setAttribute(_el$102, "data-k2b-nav-tree-dragging", _p$.r = _v$81);
2366
- _v$82 !== _p$.d && _$setAttribute(_el$102, "data-k2b-nav-tree-drop", _p$.d = _v$82);
2367
- _v$83 !== _p$.l && _$setStyleProperty(_el$102, "--k2b-nav-tree-depth", _p$.l = _v$83);
2349
+ var _v$74 = siblings().length,
2350
+ _v$75 = place() + 1,
2351
+ _v$76 = selected(),
2352
+ _v$77 = hasChildren() ? isExpanded(item.id) : undefined,
2353
+ _v$78 = item.disabled ? "true" : undefined,
2354
+ _v$79 = item.disabled ? -1 : tabStopId() === item.id ? 0 : -1,
2355
+ _v$80 = movable() ? true : undefined,
2356
+ _v$81 = item.id,
2357
+ _v$82 = dragged()?.id === item.id ? "" : undefined,
2358
+ _v$83 = dropTarget()?.id === item.id ? dropTarget().side : undefined,
2359
+ _v$84 = String(props.indented === false ? 0 : depth);
2360
+ _v$74 !== _p$.e && _$setAttribute(_el$102, "aria-setsize", _p$.e = _v$74);
2361
+ _v$75 !== _p$.t && _$setAttribute(_el$102, "aria-posinset", _p$.t = _v$75);
2362
+ _v$76 !== _p$.a && _$setAttribute(_el$102, "aria-selected", _p$.a = _v$76);
2363
+ _v$77 !== _p$.o && _$setAttribute(_el$102, "aria-expanded", _p$.o = _v$77);
2364
+ _v$78 !== _p$.i && _$setAttribute(_el$102, "aria-disabled", _p$.i = _v$78);
2365
+ _v$79 !== _p$.n && _$setAttribute(_el$102, "tabindex", _p$.n = _v$79);
2366
+ _v$80 !== _p$.s && _$setAttribute(_el$102, "draggable", _p$.s = _v$80);
2367
+ _v$81 !== _p$.h && _$setAttribute(_el$102, "data-k2b-nav-tree-id", _p$.h = _v$81);
2368
+ _v$82 !== _p$.r && _$setAttribute(_el$102, "data-k2b-nav-tree-dragging", _p$.r = _v$82);
2369
+ _v$83 !== _p$.d && _$setAttribute(_el$102, "data-k2b-nav-tree-drop", _p$.d = _v$83);
2370
+ _v$84 !== _p$.l && _$setStyleProperty(_el$102, "--k2b-nav-tree-depth", _p$.l = _v$84);
2368
2371
  return _p$;
2369
2372
  }, {
2370
2373
  e: undefined,
@@ -2418,10 +2421,10 @@ const AppWorkspaceNavTree = props => {
2418
2421
  typeof _ref$7 === "function" ? _$use(_ref$7, _el$108) : root = _el$108;
2419
2422
  _$insert(_el$108, () => renderItems(roots, 0));
2420
2423
  _$effect(_p$ => {
2421
- var _v$84 = `k2b-app-workspace__nav-tree ${props.class ?? ""}`,
2422
- _v$85 = props.ariaLabel;
2423
- _v$84 !== _p$.e && _$className(_el$108, _p$.e = _v$84);
2424
- _v$85 !== _p$.t && _$setAttribute(_el$108, "aria-label", _p$.t = _v$85);
2424
+ var _v$85 = `k2b-app-workspace__nav-tree ${props.class ?? ""}`,
2425
+ _v$86 = props.ariaLabel;
2426
+ _v$85 !== _p$.e && _$className(_el$108, _p$.e = _v$85);
2427
+ _v$86 !== _p$.t && _$setAttribute(_el$108, "aria-label", _p$.t = _v$86);
2425
2428
  return _p$;
2426
2429
  }, {
2427
2430
  e: undefined,
@@ -2767,12 +2770,12 @@ function AppWorkspaceHead(props) {
2767
2770
  }
2768
2771
  }), _el$148, _co$27);
2769
2772
  _$effect(_p$ => {
2770
- var _v$86 = trail()?.ancestors.length ? "up" : trail() ? "title" : undefined,
2771
- _v$87 = props.head ? "" : undefined,
2772
- _v$88 = mobilePane();
2773
- _v$86 !== _p$.e && _$setAttribute(_el$119, "data-trail", _p$.e = _v$86);
2774
- _v$87 !== _p$.t && _$setAttribute(_el$119, "data-row", _p$.t = _v$87);
2775
- _v$88 !== _p$.a && _$setAttribute(_el$119, "data-workspace-head-pane", _p$.a = _v$88);
2773
+ var _v$87 = trail()?.ancestors.length ? "up" : trail() ? "title" : undefined,
2774
+ _v$88 = props.head ? "" : undefined,
2775
+ _v$89 = mobilePane();
2776
+ _v$87 !== _p$.e && _$setAttribute(_el$119, "data-trail", _p$.e = _v$87);
2777
+ _v$88 !== _p$.t && _$setAttribute(_el$119, "data-row", _p$.t = _v$88);
2778
+ _v$89 !== _p$.a && _$setAttribute(_el$119, "data-workspace-head-pane", _p$.a = _v$89);
2776
2779
  return _p$;
2777
2780
  }, {
2778
2781
  e: undefined,
@@ -2837,18 +2840,18 @@ const AppWorkspace = props => {
2837
2840
  typeof _ref$8 === "function" ? _$use(_ref$8, _el$151) : root = _el$151;
2838
2841
  _$insert(_el$151, contents);
2839
2842
  _$effect(_p$ => {
2840
- var _v$89 = `k2b-app-workspace ${props.class ?? ""}`,
2841
- _v$90 = props.mobileSurface,
2842
- _v$91 = props.flat ? "true" : undefined,
2843
- _v$92 = initialLayoutState()?.sidebarCollapsed === undefined ? undefined : String(initialLayoutState()?.sidebarCollapsed),
2844
- _v$93 = props.resizable === false ? "false" : "true",
2845
- _v$94 = appWorkspaceLayoutStyle(initialLayoutState());
2846
- _v$89 !== _p$.e && _$className(_el$151, _p$.e = _v$89);
2847
- _v$90 !== _p$.t && _$setAttribute(_el$151, "data-mobile-surface", _p$.t = _v$90);
2848
- _v$91 !== _p$.a && _$setAttribute(_el$151, "data-flat", _p$.a = _v$91);
2849
- _v$92 !== _p$.o && _$setAttribute(_el$151, "data-sidebar-collapsed", _p$.o = _v$92);
2850
- _v$93 !== _p$.i && _$setAttribute(_el$151, "data-workspace-resizable", _p$.i = _v$93);
2851
- _p$.n = _$style(_el$151, _v$94, _p$.n);
2843
+ var _v$90 = `k2b-app-workspace ${props.class ?? ""}`,
2844
+ _v$91 = props.mobileSurface,
2845
+ _v$92 = props.flat ? "true" : undefined,
2846
+ _v$93 = initialLayoutState()?.sidebarCollapsed === undefined ? undefined : String(initialLayoutState()?.sidebarCollapsed),
2847
+ _v$94 = props.resizable === false ? "false" : "true",
2848
+ _v$95 = appWorkspaceLayoutStyle(initialLayoutState());
2849
+ _v$90 !== _p$.e && _$className(_el$151, _p$.e = _v$90);
2850
+ _v$91 !== _p$.t && _$setAttribute(_el$151, "data-mobile-surface", _p$.t = _v$91);
2851
+ _v$92 !== _p$.a && _$setAttribute(_el$151, "data-flat", _p$.a = _v$92);
2852
+ _v$93 !== _p$.o && _$setAttribute(_el$151, "data-sidebar-collapsed", _p$.o = _v$93);
2853
+ _v$94 !== _p$.i && _$setAttribute(_el$151, "data-workspace-resizable", _p$.i = _v$94);
2854
+ _p$.n = _$style(_el$151, _v$95, _p$.n);
2852
2855
  return _p$;
2853
2856
  }, {
2854
2857
  e: undefined,