@threadlabs/looma 0.22.13 → 0.23.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 (257) hide show
  1. package/components/shared/icons.js +6 -0
  2. package/components/ui-avatar/ui-avatar.html +3 -3
  3. package/components/ui-avatar-group/ui-avatar-group.html +1 -1
  4. package/components/ui-badge/ui-badge.html +1 -1
  5. package/components/ui-button/ui-button.html +3 -3
  6. package/components/ui-callout/ui-callout.html +3 -2
  7. package/components/ui-card/ui-card.html +23 -4
  8. package/components/ui-checkbox/ui-checkbox.html +3 -3
  9. package/components/ui-combobox/ui-combobox.html +8 -8
  10. package/components/ui-context-menu/ui-context-menu.html +2 -2
  11. package/components/ui-description-list/ui-description-list.html +1 -1
  12. package/components/ui-dialog/ui-dialog.html +3 -3
  13. package/components/ui-disclosure/ui-disclosure.html +43 -3
  14. package/components/ui-editable/ui-editable.html +2 -2
  15. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +5 -5
  16. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +2 -2
  17. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +6 -6
  18. package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +1 -1
  19. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
  20. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +11 -11
  21. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +5 -5
  22. package/components/ui-editor-toolbar/ui-editor-toolbar.html +4 -4
  23. package/components/ui-floating-action-button/ui-floating-action-button.html +2 -2
  24. package/components/ui-icon/ui-icon.html +6 -0
  25. package/components/ui-icon-button/ui-icon-button.html +1 -1
  26. package/components/ui-input/ui-input.html +9 -4
  27. package/components/ui-input-group/ui-input-group.html +21 -6
  28. package/components/ui-list/ui-list.html +1 -1
  29. package/components/ui-list-item/ui-list-item.html +20 -4
  30. package/components/ui-listbox/ui-listbox.html +3 -3
  31. package/components/ui-menu/ui-menu.html +2 -2
  32. package/components/ui-menu-item/ui-menu-item.html +4 -4
  33. package/components/ui-meter/ui-meter.html +1 -1
  34. package/components/ui-nav-item/ui-nav-item.html +46 -14
  35. package/components/ui-popover/ui-popover.html +16 -1
  36. package/components/ui-radio/ui-radio.html +2 -2
  37. package/components/ui-scroll-area/ui-scroll-area.html +12 -0
  38. package/components/ui-search-result-row/ui-search-result-row.html +24 -5
  39. package/components/ui-search-shell/ui-search-shell.html +4 -4
  40. package/components/ui-section/ui-section.html +3 -3
  41. package/components/ui-select/ui-select.html +6 -2
  42. package/components/ui-separator/ui-separator.html +2 -2
  43. package/components/ui-sidebar/ui-sidebar.html +3 -3
  44. package/components/ui-stack/ui-stack.html +6 -3
  45. package/components/ui-status-message/ui-status-message.html +1 -1
  46. package/components/ui-switch/ui-switch.html +3 -3
  47. package/components/ui-table/ui-table.html +3 -3
  48. package/components/ui-tabs/ui-tabs.html +7 -7
  49. package/components/ui-text/ui-text.html +12 -0
  50. package/components/ui-textarea/ui-textarea.html +6 -2
  51. package/components/ui-toast/ui-toast.html +2 -2
  52. package/components/ui-toast-region/ui-toast-region.html +5 -5
  53. package/components/ui-tooltip/ui-tooltip.html +15 -15
  54. package/components/ui-top-bar/ui-top-bar.html +1 -1
  55. package/components/ui-tree-item/ui-tree-item.html +27 -8
  56. package/dist/index.js +1 -1
  57. package/editor/chunks/extensions.js +55 -2
  58. package/editor/extensions/index.d.ts +1 -0
  59. package/editor/extensions/index.js +2 -2
  60. package/editor/extensions/preset.d.ts +2 -0
  61. package/editor/extensions/relative-links.d.ts +8 -0
  62. package/editor/icons.d.ts +6 -0
  63. package/editor/index.js +9 -3
  64. package/package.json +1 -1
  65. package/styles/ui-avatar-group.css +1 -1
  66. package/styles/ui-avatar.css +3 -3
  67. package/styles/ui-badge.css +1 -1
  68. package/styles/ui-button.css +3 -3
  69. package/styles/ui-callout.css +3 -2
  70. package/styles/ui-card.css +19 -2
  71. package/styles/ui-checkbox.css +3 -3
  72. package/styles/ui-combobox.css +8 -8
  73. package/styles/ui-context-menu.css +2 -2
  74. package/styles/ui-description-list.css +1 -1
  75. package/styles/ui-dialog.css +3 -3
  76. package/styles/ui-disclosure.css +42 -2
  77. package/styles/ui-editable.css +2 -2
  78. package/styles/ui-editor-insert-table-grid.css +5 -5
  79. package/styles/ui-editor-mention-menu.css +2 -2
  80. package/styles/ui-editor-slash-menu-item.css +1 -1
  81. package/styles/ui-editor-slash-menu.css +6 -6
  82. package/styles/ui-editor-table-context-menu.css +2 -2
  83. package/styles/ui-editor-table-overlay.css +11 -11
  84. package/styles/ui-editor-table-toolbar.css +5 -5
  85. package/styles/ui-editor-toolbar.css +4 -4
  86. package/styles/ui-floating-action-button.css +2 -2
  87. package/styles/ui-icon-button.css +1 -1
  88. package/styles/ui-input-group.css +19 -6
  89. package/styles/ui-input.css +9 -4
  90. package/styles/ui-list-item.css +23 -4
  91. package/styles/ui-list.css +1 -1
  92. package/styles/ui-listbox.css +3 -3
  93. package/styles/ui-menu-item.css +4 -4
  94. package/styles/ui-menu.css +2 -2
  95. package/styles/ui-meter.css +1 -1
  96. package/styles/ui-nav-item.css +46 -12
  97. package/styles/ui-popover.css +14 -1
  98. package/styles/ui-radio.css +2 -2
  99. package/styles/ui-scroll-area.css +10 -0
  100. package/styles/ui-search-result-row.css +25 -5
  101. package/styles/ui-search-shell.css +4 -4
  102. package/styles/ui-section.css +3 -3
  103. package/styles/ui-select.css +6 -2
  104. package/styles/ui-separator.css +2 -2
  105. package/styles/ui-sidebar.css +3 -3
  106. package/styles/ui-stack.css +3 -0
  107. package/styles/ui-status-message.css +1 -1
  108. package/styles/ui-switch.css +3 -3
  109. package/styles/ui-table.css +3 -3
  110. package/styles/ui-tabs.css +7 -7
  111. package/styles/ui-text.css +8 -0
  112. package/styles/ui-textarea.css +6 -2
  113. package/styles/ui-toast-region.css +5 -5
  114. package/styles/ui-toast.css +2 -2
  115. package/styles/ui-tooltip.css +15 -15
  116. package/styles/ui-top-bar.css +1 -1
  117. package/styles/ui-tree-item.css +32 -8
  118. package/tokens.css +30 -9
  119. package/vanilla/UiCard.d.ts +2 -1
  120. package/vanilla/UiCard.js +1 -1
  121. package/vanilla/UiDisclosure.d.ts +1 -0
  122. package/vanilla/UiDisclosure.js +10 -1
  123. package/vanilla/UiIcon.js +1 -1
  124. package/vanilla/UiInputGroup.d.ts +1 -0
  125. package/vanilla/UiInputGroup.js +1 -1
  126. package/vanilla/UiNavItem.d.ts +2 -0
  127. package/vanilla/UiNavItem.js +1 -1
  128. package/vanilla/UiPopover.d.ts +1 -0
  129. package/vanilla/UiPopover.js +1 -1
  130. package/vanilla/UiScrollArea.d.ts +1 -0
  131. package/vanilla/UiScrollArea.js +1 -1
  132. package/vanilla/UiSearchResultRow.d.ts +1 -0
  133. package/vanilla/UiSearchResultRow.js +1 -1
  134. package/vanilla/UiStack.d.ts +1 -1
  135. package/vanilla/UiStack.js +1 -1
  136. package/vanilla/UiText.d.ts +2 -0
  137. package/vanilla/UiText.js +1 -1
  138. package/vue/UiAvatar.vue +3 -3
  139. package/vue/UiAvatarGroup.vue +1 -1
  140. package/vue/UiBadge.vue +2 -1
  141. package/vue/UiButton.vue +3 -3
  142. package/vue/UiCallout.vue +2 -2
  143. package/vue/UiCard.d.ts +12 -3
  144. package/vue/UiCard.vue +51 -7
  145. package/vue/UiCheckbox.vue +3 -3
  146. package/vue/UiCombobox.vue +11 -8
  147. package/vue/UiContextMenu.vue +2 -2
  148. package/vue/UiDescriptionList.vue +1 -1
  149. package/vue/UiDialog.vue +4 -3
  150. package/vue/UiDisclosure.d.ts +13 -2
  151. package/vue/UiDisclosure.vue +61 -4
  152. package/vue/UiEditable.vue +2 -2
  153. package/vue/UiEditorInsertTableGrid.vue +5 -5
  154. package/vue/UiEditorMentionMenu.vue +2 -2
  155. package/vue/UiEditorSlashMenu.vue +6 -6
  156. package/vue/UiEditorSlashMenuItem.vue +1 -1
  157. package/vue/UiEditorTableContextMenu.vue +2 -2
  158. package/vue/UiEditorTableOverlay.vue +11 -11
  159. package/vue/UiEditorTableToolbar.vue +5 -5
  160. package/vue/UiEditorToolbar.vue +6 -4
  161. package/vue/UiFloatingActionButton.vue +2 -2
  162. package/vue/UiIcon.vue +31 -0
  163. package/vue/UiIconButton.vue +1 -1
  164. package/vue/UiInput.vue +8 -4
  165. package/vue/UiInputGroup.d.ts +9 -0
  166. package/vue/UiInputGroup.vue +39 -8
  167. package/vue/UiList.vue +1 -1
  168. package/vue/UiListItem.vue +20 -4
  169. package/vue/UiListbox.vue +3 -3
  170. package/vue/UiMenu.vue +3 -2
  171. package/vue/UiMenuItem.vue +4 -4
  172. package/vue/UiMeter.vue +1 -1
  173. package/vue/UiNavItem.d.ts +18 -0
  174. package/vue/UiNavItem.vue +96 -12
  175. package/vue/UiPopover.d.ts +9 -0
  176. package/vue/UiPopover.vue +45 -3
  177. package/vue/UiRadio.vue +2 -2
  178. package/vue/UiScrollArea.d.ts +9 -0
  179. package/vue/UiScrollArea.vue +35 -2
  180. package/vue/UiSearchResultRow.d.ts +9 -0
  181. package/vue/UiSearchResultRow.vue +51 -6
  182. package/vue/UiSearchShell.vue +4 -4
  183. package/vue/UiSection.vue +3 -3
  184. package/vue/UiSelect.vue +3 -2
  185. package/vue/UiSeparator.vue +4 -2
  186. package/vue/UiSidebar.vue +5 -3
  187. package/vue/UiStack.d.ts +3 -3
  188. package/vue/UiStack.vue +10 -4
  189. package/vue/UiStatusMessage.vue +1 -1
  190. package/vue/UiSwitch.vue +3 -3
  191. package/vue/UiTable.vue +3 -3
  192. package/vue/UiTabs.vue +8 -7
  193. package/vue/UiText.d.ts +18 -0
  194. package/vue/UiText.vue +70 -0
  195. package/vue/UiTextarea.vue +2 -2
  196. package/vue/UiToast.vue +4 -2
  197. package/vue/UiToastRegion.vue +5 -5
  198. package/vue/UiTooltip.vue +19 -15
  199. package/vue/UiTopBar.vue +1 -1
  200. package/vue/UiTreeItem.vue +31 -8
  201. package/vue/chunks/UiAvatar.js +1 -1
  202. package/vue/chunks/UiAvatarGroup.js +1 -1
  203. package/vue/chunks/UiBadge.js +1 -1
  204. package/vue/chunks/UiButton.js +1 -1
  205. package/vue/chunks/UiCallout.js +1 -1
  206. package/vue/chunks/UiCard.js +39 -3
  207. package/vue/chunks/UiCheckbox.js +1 -1
  208. package/vue/chunks/UiCombobox.js +1 -1
  209. package/vue/chunks/UiContextMenu.js +1 -1
  210. package/vue/chunks/UiDescriptionList.js +1 -1
  211. package/vue/chunks/UiDialog.js +1 -1
  212. package/vue/chunks/UiDisclosure.js +27 -4
  213. package/vue/chunks/UiEditable.js +1 -1
  214. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  215. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  216. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  217. package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
  218. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  219. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  220. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  221. package/vue/chunks/UiEditorToolbar.js +1 -1
  222. package/vue/chunks/UiFloatingActionButton.js +1 -1
  223. package/vue/chunks/UiIcon.js +92 -1
  224. package/vue/chunks/UiIconButton.js +1 -1
  225. package/vue/chunks/UiInput.js +1 -1
  226. package/vue/chunks/UiInputGroup.js +59 -22
  227. package/vue/chunks/UiList.js +1 -1
  228. package/vue/chunks/UiListItem.js +1 -1
  229. package/vue/chunks/UiListbox.js +1 -1
  230. package/vue/chunks/UiMenu.js +1 -1
  231. package/vue/chunks/UiMenuItem.js +1 -1
  232. package/vue/chunks/UiMeter.js +1 -1
  233. package/vue/chunks/UiNavItem.js +65 -6
  234. package/vue/chunks/UiPopover.js +37 -5
  235. package/vue/chunks/UiRadio.js +1 -1
  236. package/vue/chunks/UiScrollArea.js +66 -23
  237. package/vue/chunks/UiSearchResultRow.js +28 -2
  238. package/vue/chunks/UiSearchShell.js +1 -1
  239. package/vue/chunks/UiSection.js +1 -1
  240. package/vue/chunks/UiSelect.js +1 -1
  241. package/vue/chunks/UiSeparator.js +1 -1
  242. package/vue/chunks/UiSidebar.js +1 -1
  243. package/vue/chunks/UiStack.js +3 -2
  244. package/vue/chunks/UiStatusMessage.js +1 -1
  245. package/vue/chunks/UiSwitch.js +1 -1
  246. package/vue/chunks/UiTable.js +1 -1
  247. package/vue/chunks/UiTabs.js +1 -1
  248. package/vue/chunks/UiText.js +92 -4
  249. package/vue/chunks/UiTextarea.js +1 -1
  250. package/vue/chunks/UiToast.js +1 -1
  251. package/vue/chunks/UiToastRegion.js +1 -1
  252. package/vue/chunks/UiTooltip.js +1 -1
  253. package/vue/chunks/UiTopBar.js +1 -1
  254. package/vue/chunks/UiTreeItem.js +1 -1
  255. package/vue/components.css +1431 -1429
  256. package/vue/editor/LoomaEditor.d.ts +11 -0
  257. package/vue/editor/index.js +261 -145
@@ -201,7 +201,7 @@ const hostState = computed(() =>
201
201
  --_ui-description-align: flex-start;
202
202
  --_ui-description-value-size: var(--ui-font-size-lg);
203
203
  --_ui-description-padding: var(--_tile-padding);
204
- --_ui-description-border-width: 1px;
204
+ --_ui-description-border-width: var(--ui-border-width);
205
205
  --_ui-description-border-color: var(--ui-border-strong);
206
206
  --_gap: var(--ui-space-3);
207
207
  --_gap-compact: var(--ui-space-2);
package/vue/UiDialog.vue CHANGED
@@ -377,7 +377,8 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
377
377
  overflow: hidden;
378
378
  flex-direction: column;
379
379
  background: var(--ui-dialog-surface, var(--ui-overlay-surface, var(--ui-surface-elevated)));
380
- border: 1px solid var(--ui-dialog-border, var(--ui-overlay-border, var(--ui-border-strong)));
380
+ border: var(--ui-border-width) solid
381
+ var(--ui-dialog-border, var(--ui-overlay-border, var(--ui-border-strong)));
381
382
  border-radius: var(--ui-dialog-radius, var(--ui-overlay-radius, var(--ui-radius-dialog)));
382
383
  box-shadow: var(
383
384
  --ui-dialog-shadow,
@@ -488,8 +489,8 @@ header {
488
489
  }
489
490
 
490
491
  .close:focus-visible {
491
- outline: 2px solid var(--ui-focus-ring);
492
- outline-offset: 2px;
492
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring);
493
+ outline-offset: var(--ui-focus-width);
493
494
  }
494
495
 
495
496
  /* A touch target, like Button on coarse pointers. */
@@ -1,9 +1,11 @@
1
1
  import type { PropType } from 'vue';
2
- declare var __VLS_1: {}, __VLS_3: {};
2
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
3
3
  type __VLS_Slots = {} & {
4
4
  summary?: (props: typeof __VLS_1) => any;
5
5
  } & {
6
- default?: (props: typeof __VLS_3) => any;
6
+ indicator?: (props: typeof __VLS_3) => any;
7
+ } & {
8
+ default?: (props: typeof __VLS_5) => any;
7
9
  };
8
10
  declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
9
11
  density: {
@@ -14,6 +16,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
14
16
  type: PropType<boolean | null>;
15
17
  default: boolean;
16
18
  };
19
+ fill: {
20
+ type: PropType<boolean | null>;
21
+ default: boolean;
22
+ };
17
23
  headingLevel: {
18
24
  type: PropType<number | null>;
19
25
  default: number;
@@ -51,6 +57,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
51
57
  type: PropType<boolean | null>;
52
58
  default: boolean;
53
59
  };
60
+ fill: {
61
+ type: PropType<boolean | null>;
62
+ default: boolean;
63
+ };
54
64
  headingLevel: {
55
65
  type: PropType<number | null>;
56
66
  default: number;
@@ -80,6 +90,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
80
90
  readonly trigger: "keyboard" | "pointer" | "programmatic";
81
91
  }>) => any) | undefined;
82
92
  }>, {
93
+ fill: boolean | null;
83
94
  summary: string | null;
84
95
  name: string | null;
85
96
  open: boolean | null;
@@ -25,6 +25,14 @@ const propValidityContract = {
25
25
  'Disables the trigger and mutes its text, so the disclosure keeps its current state and the user cannot toggle it.',
26
26
  default: false,
27
27
  },
28
+ fill: {
29
+ type: { kind: 'terminal', name: 'boolean' },
30
+ required: false,
31
+ target: { attribute: 'fill' },
32
+ description:
33
+ 'In a column with a bounded height, an open disclosure fills the remaining space and keeps its trigger visible. The content slot can contain a Scroll Area.\n Closed items keep only their trigger height.',
34
+ default: false,
35
+ },
28
36
  headingLevel: {
29
37
  type: { kind: 'terminal', name: 'integer' },
30
38
  required: false,
@@ -65,6 +73,7 @@ const props = defineProps({
65
73
  default: 'comfortable',
66
74
  },
67
75
  disabled: { type: null as unknown as PropType<boolean | null>, default: false },
76
+ fill: { type: null as unknown as PropType<boolean | null>, default: false },
68
77
  headingLevel: { type: null as unknown as PropType<number | null>, default: 0 },
69
78
  name: { type: null as unknown as PropType<string | null>, default: '' },
70
79
  open: { type: null as unknown as PropType<boolean | null>, default: false },
@@ -73,6 +82,7 @@ const props = defineProps({
73
82
  const acceptedProps: Record<string, unknown> = {
74
83
  density: 'comfortable',
75
84
  disabled: false,
85
+ fill: false,
76
86
  headingLevel: 0,
77
87
  name: '',
78
88
  open: false,
@@ -93,6 +103,13 @@ const checkedProps = computed(() => ({
93
103
  'disabled',
94
104
  acceptedProps,
95
105
  ) as boolean,
106
+ fill: checkedProp<boolean>(
107
+ props['fill'],
108
+ { kind: 'terminal', name: 'boolean' },
109
+ false,
110
+ 'fill',
111
+ acceptedProps,
112
+ ) as boolean,
96
113
  headingLevel: checkedProp<number>(
97
114
  props['headingLevel'],
98
115
  { kind: 'terminal', name: 'integer' },
@@ -249,6 +266,7 @@ const hostState = computed(() =>
249
266
  checkedProps.value.density != null
250
267
  && `density=${encodeURIComponent(checkedProps.value.density)}`,
251
268
  internalOpen.value && 'internalOpen',
269
+ checkedProps.value.fill && 'fill',
252
270
  ].filter(Boolean).join(' ')
253
271
  )
254
272
 
@@ -286,7 +304,7 @@ useComponentHost(() => import('../components/ui-disclosure/ui-disclosure.js'), {
286
304
  ? (incoming[name] ?? incoming[kebab] ?? null)
287
305
  : null
288
306
  },
289
- propNames: ['density', 'disabled', 'headingLevel', 'name', 'open', 'summary'],
307
+ propNames: ['density', 'disabled', 'fill', 'headingLevel', 'name', 'open', 'summary'],
290
308
  propValidity: (name: string) =>
291
309
  propValidityState({ contract: propValidityContract, values: { ...props } }, name),
292
310
  refs: { trigger: triggerElement, panel: panelElement },
@@ -301,6 +319,7 @@ useComponentHost(() => import('../components/ui-disclosure/ui-disclosure.js'), {
301
319
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
302
320
  :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
303
321
  :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
322
+ :data-fill="reflectedProp('fill', 'fill', checkedProps.fill, undefined, false)"
304
323
  :data-heading-level="reflectedProp('headingLevel', 'heading-level', checkedProps.headingLevel, undefined, false)"
305
324
  :data-name="reflectedProp('name', 'name', checkedProps.name, undefined, false)"
306
325
  :data-open="reflectedProp('open', 'open', checkedProps.open, undefined, false)"
@@ -318,7 +337,7 @@ useComponentHost(() => import('../components/ui-disclosure/ui-disclosure.js'), {
318
337
  ref="trigger"
319
338
  >
320
339
  <span class="summary"><slot name="summary">{{ checkedProps.summary }}</slot></span>
321
- <span class="chevron" aria-hidden="true"></span>
340
+ <slot name="indicator"><span class="chevron" aria-hidden="true"></span></slot>
322
341
  </button>
323
342
  </div>
324
343
  <div class="panel" :id="guardedBinding4" ref="panel">
@@ -366,7 +385,7 @@ useComponentHost(() => import('../components/ui-disclosure/ui-disclosure.js'), {
366
385
  display: block;
367
386
  inline-size: 100%;
368
387
  overflow: clip;
369
- border-block-end: 1px solid var(--ui-border-divider);
388
+ border-block-end: var(--ui-border-width) solid var(--ui-border-divider);
370
389
  color: var(--ui-text-primary);
371
390
  }
372
391
 
@@ -395,7 +414,8 @@ useComponentHost(() => import('../components/ui-disclosure/ui-disclosure.js'), {
395
414
  }
396
415
  .trigger:focus-visible {
397
416
  outline: none;
398
- box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
417
+ box-shadow: inset 0 0 0 var(--ui-focus-width)
418
+ color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
399
419
  }
400
420
  .trigger:disabled {
401
421
  color: var(--ui-disabled-text);
@@ -434,6 +454,43 @@ useComponentHost(() => import('../components/ui-disclosure/ui-disclosure.js'), {
434
454
  transform: rotate(225deg) translate(-1px, -1px);
435
455
  }
436
456
 
457
+ /* A bounded accordion owns one flexible body, so its trigger never scrolls away. The
458
+ * normal content-sized layout and its animation remain unchanged when fill is omitted. */
459
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"] {
460
+ display: flex;
461
+ flex-direction: column;
462
+ flex: none;
463
+ min-block-size: 0;
464
+ border-block-end: 0;
465
+ border-block-start: var(--ui-border-width) solid var(--ui-border-divider);
466
+ }
467
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"][data-ui-disclosure-state~="internalOpen"] {
468
+ flex: 1;
469
+ }
470
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"] .heading {
471
+ flex: none;
472
+ }
473
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"] .trigger {
474
+ border-radius: 0;
475
+ }
476
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"] .panel {
477
+ display: flex;
478
+ flex: 1;
479
+ min-block-size: 0;
480
+ transition: none;
481
+ }
482
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"] .panel[hidden] {
483
+ flex: none;
484
+ block-size: 0;
485
+ }
486
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="fill"] .panel-inner {
487
+ display: flex;
488
+ flex-direction: column;
489
+ flex: 1;
490
+ min-block-size: 0;
491
+ padding: 0;
492
+ }
493
+
437
494
  @media (prefers-reduced-motion: reduce) {
438
495
  .panel,
439
496
  .chevron {
@@ -464,7 +464,7 @@ useComponentHost(() => import('../components/ui-editable/ui-editable.js'), {
464
464
  min-block-size: var(--ui-control-size-sm);
465
465
  margin: 0;
466
466
  padding: var(--ui-space-1) var(--ui-space-2);
467
- border: 1px solid transparent;
467
+ border: var(--ui-border-width) solid transparent;
468
468
  border-radius: var(--ui-radius-md);
469
469
  font: inherit;
470
470
  line-height: var(--ui-line-height-md);
@@ -537,7 +537,7 @@ useComponentHost(() => import('../components/ui-editable/ui-editable.js'), {
537
537
  .actions button {
538
538
  min-block-size: var(--ui-control-size-sm);
539
539
  padding: 0 var(--ui-space-3);
540
- border: 1px solid var(--ui-border-strong);
540
+ border: var(--ui-border-width) solid var(--ui-border-strong);
541
541
  border-radius: var(--ui-radius-md);
542
542
  background: var(--ui-surface-elevated);
543
543
  background-image: var(--ui-raised-highlight);
@@ -322,7 +322,7 @@ function uniqueKeys<T>(
322
322
  [data-component~="ui-editor-insert-table-grid"] {
323
323
  padding: var(--ui-space-3);
324
324
  background: var(--ui-surface);
325
- border: 1px solid var(--ui-border-strong);
325
+ border: var(--ui-border-width) solid var(--ui-border-strong);
326
326
  border-radius: var(--ui-radius-md);
327
327
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
328
328
  }
@@ -371,8 +371,8 @@ function uniqueKeys<T>(
371
371
  width: 1.25rem;
372
372
  height: 1.25rem;
373
373
  padding: 0;
374
- border: 1px solid var(--ui-control-border);
375
- border-radius: 2px;
374
+ border: var(--ui-border-width) solid var(--ui-control-border);
375
+ border-radius: var(--ui-radius-sm);
376
376
  background: var(--ui-surface);
377
377
  cursor: pointer;
378
378
  }
@@ -383,8 +383,8 @@ function uniqueKeys<T>(
383
383
  }
384
384
 
385
385
  .cell:focus-visible {
386
- outline: 2px solid var(--ui-focus-ring);
387
- outline-offset: -2px;
386
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring);
387
+ outline-offset: calc(-1 * var(--ui-focus-width));
388
388
  }
389
389
 
390
390
  .header {
@@ -408,7 +408,7 @@ useComponentHost(() => import('../components/ui-editor-mention-menu/ui-editor-me
408
408
  overflow: hidden;
409
409
  flex-direction: column;
410
410
  background: var(--ui-surface);
411
- border: 1px solid var(--ui-border-strong);
411
+ border: var(--ui-border-width) solid var(--ui-border-strong);
412
412
  border-radius: var(--ui-radius-dialog);
413
413
  box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
414
414
  }
@@ -420,7 +420,7 @@ useComponentHost(() => import('../components/ui-editor-mention-menu/ui-editor-me
420
420
  gap: var(--ui-space-3);
421
421
  padding: var(--ui-space-2) var(--ui-space-3);
422
422
  color: var(--ui-text-secondary);
423
- border-bottom: 1px solid var(--ui-border-divider);
423
+ border-bottom: var(--ui-border-width) solid var(--ui-border-divider);
424
424
  font-size: var(--ui-font-size-xs);
425
425
  font-weight: var(--ui-font-semibold);
426
426
  }
@@ -359,7 +359,7 @@ useComponentHost(() => import('../components/ui-editor-slash-menu/ui-editor-slas
359
359
 
360
360
  [data-component~="ui-editor-slash-menu"] {
361
361
  background: var(--ui-surface);
362
- border: 1px solid var(--ui-border-strong);
362
+ border: var(--ui-border-width) solid var(--ui-border-strong);
363
363
  border-radius: var(--ui-radius-dialog);
364
364
  box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
365
365
  overflow: hidden;
@@ -379,7 +379,7 @@ useComponentHost(() => import('../components/ui-editor-slash-menu/ui-editor-slas
379
379
  align-items: center;
380
380
  gap: var(--ui-space-2);
381
381
  padding: var(--ui-space-3) var(--ui-space-4);
382
- border-bottom: 1px solid var(--ui-border-divider);
382
+ border-bottom: var(--ui-border-width) solid var(--ui-border-divider);
383
383
  font-size: var(--ui-font-size-xs);
384
384
  color: var(--ui-text-muted);
385
385
  font-weight: var(--ui-font-semibold);
@@ -463,7 +463,7 @@ useComponentHost(() => import('../components/ui-editor-slash-menu/ui-editor-slas
463
463
  width: 32px;
464
464
  height: 32px;
465
465
  background: var(--ui-surface-hover);
466
- border: 1px solid var(--ui-border);
466
+ border: var(--ui-border-width) solid var(--ui-border);
467
467
  border-radius: var(--ui-radius-md);
468
468
  font-size: var(--ui-font-size-sm);
469
469
  font-weight: var(--ui-font-bold);
@@ -510,7 +510,7 @@ useComponentHost(() => import('../components/ui-editor-slash-menu/ui-editor-slas
510
510
 
511
511
  .footer {
512
512
  padding: var(--ui-space-2) var(--ui-space-3);
513
- border-top: 1px solid var(--ui-border-divider);
513
+ border-top: var(--ui-border-width) solid var(--ui-border-divider);
514
514
  font-size: var(--ui-font-size-xs);
515
515
  color: var(--ui-text-muted);
516
516
  }
@@ -522,8 +522,8 @@ useComponentHost(() => import('../components/ui-editor-slash-menu/ui-editor-slas
522
522
  font-family: var(--ui-font-family-mono, ui-monospace, monospace);
523
523
  font-size: var(--ui-font-size-2xs);
524
524
  background: var(--ui-surface-hover);
525
- border: 1px solid var(--ui-border);
526
- border-radius: 3px;
525
+ border: var(--ui-border-width) solid var(--ui-border);
526
+ border-radius: var(--ui-radius-sm);
527
527
  padding: 0 3px;
528
528
  color: var(--ui-text-secondary);
529
529
  }
@@ -211,7 +211,7 @@ if (
211
211
  flex: 0 0 auto;
212
212
  color: var(--ui-text-secondary);
213
213
  background: var(--ui-surface-hover);
214
- border: 1px solid var(--ui-border);
214
+ border: var(--ui-border-width) solid var(--ui-border);
215
215
  border-radius: var(--ui-radius-md);
216
216
  }
217
217
 
@@ -552,7 +552,7 @@ function uniqueKeys<T>(
552
552
  max-height: min(28rem, calc(100vh - 24px));
553
553
  padding: var(--ui-space-2);
554
554
  background: var(--ui-surface);
555
- border: 1px solid var(--ui-border-strong);
555
+ border: var(--ui-border-width) solid var(--ui-border-strong);
556
556
  border-radius: var(--ui-radius-lg);
557
557
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
558
558
  display: flex;
@@ -619,7 +619,7 @@ function uniqueKeys<T>(
619
619
  width: 1rem;
620
620
  height: 1rem;
621
621
  border-radius: var(--ui-radius-round);
622
- border: 1px solid var(--ui-border);
622
+ border: var(--ui-border-width) solid var(--ui-border);
623
623
  background: var(--_swatch, #fff);
624
624
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.35);
625
625
  flex-shrink: 0;
@@ -695,7 +695,7 @@ function uniqueKeys<T>(
695
695
  width: 24px;
696
696
  height: 24px;
697
697
  padding: 0;
698
- border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong));
698
+ border: var(--ui-border-width) solid var(--ui-affordance-near-color, var(--ui-border-strong));
699
699
  border-radius: var(--ui-radius-round);
700
700
  background: color-mix(in srgb, var(--ui-surface-elevated) 96%, transparent);
701
701
  color: var(--ui-affordance-near-color, var(--ui-text-secondary));
@@ -738,8 +738,8 @@ function uniqueKeys<T>(
738
738
  .handle:focus-visible,
739
739
  .selector:focus-visible,
740
740
  .cell-menu:focus-visible {
741
- outline: 2px solid var(--ui-focus-ring);
742
- outline-offset: 2px;
741
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring);
742
+ outline-offset: var(--ui-focus-width);
743
743
  }
744
744
 
745
745
  .control.row {
@@ -772,13 +772,13 @@ function uniqueKeys<T>(
772
772
  }
773
773
 
774
774
  .control.row .line {
775
- inset: -1px 0 auto;
776
- height: 2px;
775
+ inset: calc(-0.5 * var(--ui-accent-line-width)) 0 auto;
776
+ height: var(--ui-accent-line-width);
777
777
  }
778
778
 
779
779
  .control.col .line {
780
- inset: 0 auto 0 -1px;
781
- width: 2px;
780
+ inset: 0 auto 0 calc(-0.5 * var(--ui-accent-line-width));
781
+ width: var(--ui-accent-line-width);
782
782
  }
783
783
 
784
784
  .control.active .line {
@@ -850,7 +850,7 @@ function uniqueKeys<T>(
850
850
  align-items: center;
851
851
  justify-content: center;
852
852
  padding: 0;
853
- border: 1px solid transparent;
853
+ border: var(--ui-border-width) solid transparent;
854
854
  background: transparent;
855
855
  color: var(--ui-text-secondary);
856
856
  box-shadow: none;
@@ -967,19 +967,19 @@ function uniqueKeys<T>(
967
967
  position: absolute;
968
968
  z-index: 3;
969
969
  background: var(--ui-accent-solid);
970
- box-shadow: 0 0 0 2px var(--ui-surface);
970
+ box-shadow: 0 0 0 var(--ui-border-width) var(--ui-surface);
971
971
  pointer-events: none;
972
972
  }
973
973
 
974
974
  .drop-indicator.row {
975
975
  left: 0;
976
976
  width: 100%;
977
- height: 2px;
977
+ height: var(--ui-accent-line-width);
978
978
  }
979
979
 
980
980
  .drop-indicator.column {
981
981
  top: 0;
982
- width: 2px;
982
+ width: var(--ui-accent-line-width);
983
983
  height: 100%;
984
984
  }
985
985
 
@@ -648,8 +648,8 @@ function uniqueKeys<T>(
648
648
  gap: var(--ui-space-1);
649
649
  padding: var(--ui-space-1);
650
650
  background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
651
- border: 1px solid var(--ui-border-strong);
652
- border-radius: calc(var(--ui-radius-md) + 2px);
651
+ border: var(--ui-border-width) solid var(--ui-border-strong);
652
+ border-radius: calc(var(--ui-radius-md) + 2 * var(--ui-border-width));
653
653
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
654
654
  backdrop-filter: blur(10px);
655
655
  }
@@ -739,7 +739,7 @@ function uniqueKeys<T>(
739
739
  max-width: min(17rem, calc(100vw - 24px));
740
740
  padding: var(--ui-space-1);
741
741
  background: var(--ui-surface);
742
- border: 1px solid var(--ui-border-strong);
742
+ border: var(--ui-border-width) solid var(--ui-border-strong);
743
743
  border-radius: var(--ui-radius-md);
744
744
  box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
745
745
  display: flex;
@@ -754,7 +754,7 @@ function uniqueKeys<T>(
754
754
  .menu-section + .menu-section {
755
755
  margin-top: var(--ui-space-1);
756
756
  padding-top: var(--ui-space-1);
757
- border-top: 1px solid var(--ui-border-divider);
757
+ border-top: var(--ui-border-width) solid var(--ui-border-divider);
758
758
  }
759
759
 
760
760
  .menu-heading {
@@ -788,7 +788,7 @@ function uniqueKeys<T>(
788
788
  width: 14px;
789
789
  height: 14px;
790
790
  flex: 0 0 14px;
791
- border: 1px solid color-mix(in srgb, var(--ui-border) 80%, #000);
791
+ border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 80%, #000);
792
792
  border-radius: var(--ui-radius-round);
793
793
  background: var(--_swatch);
794
794
  }
@@ -146,7 +146,8 @@ useComponentHost(() => import('../components/ui-editor-toolbar/ui-editor-toolbar
146
146
  var(--ui-editor-toolbar-padding-inline, 12px);
147
147
  min-height: var(--ui-editor-toolbar-min-height, 48px);
148
148
  background: var(--ui-editor-toolbar-surface, var(--ui-surface));
149
- border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border-divider));
149
+ border-bottom: var(--ui-border-width) solid
150
+ var(--ui-editor-toolbar-border, var(--ui-border-divider));
150
151
  }
151
152
 
152
153
  /* One row, always. When the controls outgrow the space, the row scrolls sideways rather than
@@ -221,7 +222,7 @@ useComponentHost(() => import('../components/ui-editor-toolbar/ui-editor-toolbar
221
222
  var(--ui-editor-toolbar-surface, var(--ui-surface)) 96%,
222
223
  transparent
223
224
  );
224
- border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border-strong));
225
+ border: var(--ui-border-width) solid var(--ui-editor-toolbar-border, var(--ui-border-strong));
225
226
  border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg));
226
227
  box-shadow: var(
227
228
  --ui-editor-toolbar-floating-shadow,
@@ -238,7 +239,8 @@ useComponentHost(() => import('../components/ui-editor-toolbar/ui-editor-toolbar
238
239
  left: 0;
239
240
  right: 0;
240
241
  min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
241
- border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border-divider));
242
+ border-top: var(--ui-border-width) solid
243
+ var(--ui-editor-toolbar-border, var(--ui-border-divider));
242
244
  border-bottom: none;
243
245
  box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
244
246
  }
@@ -247,7 +249,7 @@ useComponentHost(() => import('../components/ui-editor-toolbar/ui-editor-toolbar
247
249
  position: relative;
248
250
  inset: auto;
249
251
  min-height: auto;
250
- border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border-strong));
252
+ border: var(--ui-border-width) solid var(--ui-editor-toolbar-border, var(--ui-border-strong));
251
253
  border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg));
252
254
  box-shadow: var(
253
255
  --ui-editor-toolbar-floating-shadow,
@@ -203,8 +203,8 @@ const hostState = computed(() =>
203
203
  }
204
204
 
205
205
  [data-component~="ui-floating-action-button"]:focus-visible {
206
- outline: 2px solid var(--ui-focus-ring);
207
- outline-offset: 2px;
206
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring);
207
+ outline-offset: var(--ui-focus-width);
208
208
  }
209
209
 
210
210
  [data-component~="ui-floating-action-button"]:disabled {
package/vue/UiIcon.vue CHANGED
@@ -160,6 +160,10 @@ const shapes = cycleCheckedComputed(() =>
160
160
  tag: 'path',
161
161
  d: 'M9 3v18',
162
162
  }, { tag: 'path', d: 'M15 3v18' }],
163
+ compass: [{
164
+ tag: 'path',
165
+ d: 'm16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z',
166
+ }, { tag: 'circle', cx: '12', cy: '12', r: '10' }],
163
167
  'credit-card': [{ tag: 'rect', width: '20', height: '14', x: '2', y: '5', rx: '2' }, {
164
168
  tag: 'line',
165
169
  x1: '2',
@@ -177,6 +181,10 @@ const shapes = cycleCheckedComputed(() =>
177
181
  tag: 'path',
178
182
  d: 'M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21',
179
183
  }, { tag: 'path', d: 'm5.082 11.09 8.828 8.828' }],
184
+ 'external-link': [{ tag: 'path', d: 'M15 3h6v6' }, { tag: 'path', d: 'M10 14 21 3' }, {
185
+ tag: 'path',
186
+ d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6',
187
+ }],
180
188
  'file-text': [
181
189
  {
182
190
  tag: 'path',
@@ -230,6 +238,10 @@ const shapes = cycleCheckedComputed(() =>
230
238
  tag: 'path',
231
239
  d: 'm22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4',
232
240
  }],
241
+ history: [{ tag: 'path', d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }, {
242
+ tag: 'path',
243
+ d: 'M3 3v5h5',
244
+ }, { tag: 'path', d: 'M12 7v5l4 2' }],
233
245
  image: [{ tag: 'rect', width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }, {
234
246
  tag: 'circle',
235
247
  cx: '9',
@@ -319,6 +331,10 @@ const shapes = cycleCheckedComputed(() =>
319
331
  tag: 'path',
320
332
  d: 'M3 9h18',
321
333
  }],
334
+ pencil: [{
335
+ tag: 'path',
336
+ d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',
337
+ }, { tag: 'path', d: 'm15 5 4 4' }],
322
338
  pilcrow: [{ tag: 'path', d: 'M13 4v16' }, { tag: 'path', d: 'M17 4v16' }, {
323
339
  tag: 'path',
324
340
  d: 'M19 4H9.5a4.5 4.5 0 0 0 0 9H13',
@@ -344,6 +360,7 @@ const shapes = cycleCheckedComputed(() =>
344
360
  tag: 'path',
345
361
  d: 'M21 9H3',
346
362
  }, { tag: 'path', d: 'M21 15H3' }],
363
+ search: [{ tag: 'path', d: 'm21 21-4.34-4.34' }, { tag: 'circle', cx: '11', cy: '11', r: '8' }],
347
364
  settings: [{
348
365
  tag: 'path',
349
366
  d: 'M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915',
@@ -400,6 +417,20 @@ const shapes = cycleCheckedComputed(() =>
400
417
  tag: 'path',
401
418
  d: 'M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11',
402
419
  }],
420
+ unlink: [
421
+ {
422
+ tag: 'path',
423
+ d: 'm18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71',
424
+ },
425
+ {
426
+ tag: 'path',
427
+ d: 'm5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71',
428
+ },
429
+ { tag: 'line', x1: '8', x2: '8', y1: '2', y2: '5' },
430
+ { tag: 'line', x1: '2', x2: '5', y1: '8', y2: '8' },
431
+ { tag: 'line', x1: '16', x2: '16', y1: '19', y2: '22' },
432
+ { tag: 'line', x1: '19', x2: '22', y1: '16', y2: '16' },
433
+ ],
403
434
  'user-round': [{ tag: 'circle', cx: '12', cy: '8', r: '5' }, {
404
435
  tag: 'path',
405
436
  d: 'M20 21a8 8 0 0 0-16 0',
@@ -459,7 +459,7 @@ function attribute(value: unknown): any {
459
459
  min-block-size: var(--ui-icon-button-size, var(--_size));
460
460
  padding: 0;
461
461
  margin: 0;
462
- border: 1px solid transparent;
462
+ border: var(--ui-border-width) solid transparent;
463
463
  border-radius: var(--ui-icon-button-radius, var(--ui-action-radius, var(--ui-radius-md)));
464
464
  background-color: var(--ui-icon-button-surface, transparent);
465
465
  color: inherit;
package/vue/UiInput.vue CHANGED
@@ -553,7 +553,11 @@ useComponentHost(() => import('../components/ui-input/ui-input.js'), {
553
553
  margin: 0;
554
554
  padding: var(--ui-space-2) var(--ui-space-3);
555
555
  appearance: none;
556
- border: var(--ui-input-border-width, var(--_ui-default-input-border-width, 1px)) solid
556
+ padding-inline-start: var(--_ui-default-input-padding-inline-start, var(--ui-space-3));
557
+ border: var(
558
+ --ui-input-border-width,
559
+ var(--_ui-default-input-border-width, var(--ui-border-width))
560
+ ) solid
557
561
  var(
558
562
  --ui-input-border,
559
563
  var(--_ui-default-input-border, var(--ui-control-border, var(--ui-border-strong)))
@@ -656,7 +660,7 @@ useComponentHost(() => import('../components/ui-input/ui-input.js'), {
656
660
  var(
657
661
  --_ui-default-input-invalid-focus-shadow,
658
662
  var(--ui-control-inset),
659
- 0 0 0 3px color-mix(
663
+ 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
660
664
  in srgb,
661
665
  var(--ui-input-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
662
666
  transparent
@@ -677,9 +681,9 @@ useComponentHost(() => import('../components/ui-input/ui-input.js'), {
677
681
  [data-component~="ui-input"]:focus-visible {
678
682
  outline: var(
679
683
  --ui-input-focus-outline,
680
- var(--_ui-default-input-focus-outline, 2px solid Highlight)
684
+ var(--_ui-default-input-focus-outline, var(--ui-focus-width) solid Highlight)
681
685
  );
682
- outline-offset: 1px;
686
+ outline-offset: var(--ui-border-width);
683
687
  }
684
688
  }
685
689
 
@@ -14,13 +14,22 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
14
14
  type: PropType<boolean | null>;
15
15
  default: boolean;
16
16
  };
17
+ prefixKind: {
18
+ type: PropType<"text" | "icon" | null>;
19
+ default: string;
20
+ };
17
21
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
18
22
  disabled: {
19
23
  type: PropType<boolean | null>;
20
24
  default: boolean;
21
25
  };
26
+ prefixKind: {
27
+ type: PropType<"text" | "icon" | null>;
28
+ default: string;
29
+ };
22
30
  }>> & Readonly<{}>, {
23
31
  disabled: boolean | null;
32
+ prefixKind: "text" | "icon" | null;
24
33
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
25
34
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
35
  declare const _default: typeof __VLS_export;