@threadlabs/looma 0.1.24 → 0.1.26

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 (208) hide show
  1. package/dist/{chunk-IMHSPETJ.js → chunk-XRJRF3MM.js} +33 -32
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/looma.cjs.js +1 -1
  4. package/dist/cjs/{ui-combobox.cjs.entry.js → ui-chip_2.cjs.entry.js} +29 -4
  5. package/dist/cjs/ui-context-menu.cjs.entry.js +1 -1
  6. package/dist/cjs/ui-dialog.cjs.entry.js +1 -1
  7. package/dist/cjs/ui-disclosure.cjs.entry.js +1 -1
  8. package/dist/cjs/ui-editable.cjs.entry.js +100 -0
  9. package/dist/cjs/ui-floating-action-button.cjs.entry.js +1 -1
  10. package/dist/cjs/ui-form-field.cjs.entry.js +1 -1
  11. package/dist/cjs/ui-icon-button.cjs.entry.js +1 -1
  12. package/dist/cjs/ui-input.cjs.entry.js +1 -1
  13. package/dist/cjs/ui-menu-item.cjs.entry.js +1 -1
  14. package/dist/cjs/ui-menu.cjs.entry.js +1 -1
  15. package/dist/cjs/ui-multi-combobox.cjs.entry.js +190 -0
  16. package/dist/cjs/ui-popover.cjs.entry.js +1 -1
  17. package/dist/cjs/ui-radio-group.cjs.entry.js +1 -1
  18. package/dist/cjs/ui-radio.cjs.entry.js +1 -1
  19. package/dist/cjs/ui-search-result-row.cjs.entry.js +1 -1
  20. package/dist/cjs/ui-search-shell.cjs.entry.js +1 -1
  21. package/dist/cjs/ui-select.cjs.entry.js +1 -1
  22. package/dist/cjs/ui-switch.cjs.entry.js +2 -2
  23. package/dist/cjs/ui-tabs.cjs.entry.js +1 -1
  24. package/dist/cjs/ui-textarea.cjs.entry.js +1 -1
  25. package/dist/cjs/ui-toast-region.cjs.entry.js +1 -1
  26. package/dist/cjs/ui-tooltip.cjs.entry.js +1 -1
  27. package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
  28. package/dist/cjs/ui-tree-item.cjs.entry.js +2 -2
  29. package/dist/cjs/ui-tree.cjs.entry.js +1 -1
  30. package/dist/collection/collection-manifest.json +2 -0
  31. package/dist/collection/components/ui-chip/ui-chip.css +4 -0
  32. package/dist/collection/components/ui-chip/ui-chip.js +23 -1
  33. package/dist/collection/components/ui-combobox/ui-combobox.js +49 -4
  34. package/dist/collection/components/ui-context-menu/ui-context-menu.js +1 -1
  35. package/dist/collection/components/ui-dialog/ui-dialog.js +1 -1
  36. package/dist/collection/components/ui-disclosure/ui-disclosure.js +1 -1
  37. package/dist/collection/components/ui-editable/ui-editable.css +2 -0
  38. package/dist/collection/components/ui-editable/ui-editable.js +196 -0
  39. package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +1 -1
  40. package/dist/collection/components/ui-form-field/ui-form-field.js +1 -1
  41. package/dist/collection/components/ui-icon-button/ui-icon-button.js +1 -1
  42. package/dist/collection/components/ui-input/ui-input.js +1 -1
  43. package/dist/collection/components/ui-menu/ui-menu.js +1 -1
  44. package/dist/collection/components/ui-menu-item/ui-menu-item.js +1 -1
  45. package/dist/collection/components/ui-multi-combobox/ui-multi-combobox.css +29 -0
  46. package/dist/collection/components/ui-multi-combobox/ui-multi-combobox.js +553 -0
  47. package/dist/collection/components/ui-popover/ui-popover.js +1 -1
  48. package/dist/collection/components/ui-radio/ui-radio.js +1 -1
  49. package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
  50. package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +1 -1
  51. package/dist/collection/components/ui-search-shell/ui-search-shell.js +1 -1
  52. package/dist/collection/components/ui-select/ui-select.js +1 -1
  53. package/dist/collection/components/ui-switch/ui-switch.js +2 -2
  54. package/dist/collection/components/ui-tabs/ui-tabs.js +1 -1
  55. package/dist/collection/components/ui-textarea/ui-textarea.js +1 -1
  56. package/dist/collection/components/ui-toast-region/ui-toast-region.js +1 -1
  57. package/dist/collection/components/ui-tooltip/ui-tooltip.js +1 -1
  58. package/dist/collection/components/ui-top-bar/ui-top-bar.js +1 -1
  59. package/dist/collection/components/ui-tree/ui-tree.js +1 -1
  60. package/dist/collection/components/ui-tree-item/ui-tree-item.js +2 -2
  61. package/dist/collection/field/editable.js +1 -0
  62. package/dist/collection/field/multi-combobox.js +1 -0
  63. package/dist/components/index.d.ts +4 -0
  64. package/dist/components/index.js +1 -1
  65. package/dist/components/{p-DIGcRYAW.js → p-B9CzOHvE.js} +1 -1
  66. package/dist/components/p-BMgIcOh-.js +1 -0
  67. package/dist/components/p-BVteuP_d.js +1 -0
  68. package/dist/components/{p-Bk55QiUK.js → p-C6p-ygxq.js} +1 -1
  69. package/dist/components/ui-chip.js +1 -1
  70. package/dist/components/ui-combobox.js +1 -1
  71. package/dist/components/ui-context-menu.js +1 -1
  72. package/dist/components/ui-dialog.js +1 -1
  73. package/dist/components/ui-disclosure.js +1 -1
  74. package/dist/components/ui-editable.d.ts +11 -0
  75. package/dist/components/ui-editable.js +1 -0
  76. package/dist/components/ui-floating-action-button.js +1 -1
  77. package/dist/components/ui-form-field.js +1 -1
  78. package/dist/components/ui-icon-button.js +1 -1
  79. package/dist/components/ui-input.js +1 -1
  80. package/dist/components/ui-menu-item.js +1 -1
  81. package/dist/components/ui-menu.js +1 -1
  82. package/dist/components/ui-multi-combobox.d.ts +11 -0
  83. package/dist/components/ui-multi-combobox.js +1 -0
  84. package/dist/components/ui-popover.js +1 -1
  85. package/dist/components/ui-radio-group.js +1 -1
  86. package/dist/components/ui-radio.js +1 -1
  87. package/dist/components/ui-search-result-row.js +1 -1
  88. package/dist/components/ui-search-shell.js +1 -1
  89. package/dist/components/ui-select.js +1 -1
  90. package/dist/components/ui-switch.js +1 -1
  91. package/dist/components/ui-tabs.js +1 -1
  92. package/dist/components/ui-textarea.js +1 -1
  93. package/dist/components/ui-toast-region.js +1 -1
  94. package/dist/components/ui-tooltip.js +1 -1
  95. package/dist/components/ui-top-bar.js +1 -1
  96. package/dist/components/ui-tree-item.js +1 -1
  97. package/dist/components/ui-tree.js +1 -1
  98. package/dist/esm/loader.js +1 -1
  99. package/dist/esm/looma.js +1 -1
  100. package/dist/esm/{ui-combobox.entry.js → ui-chip_2.entry.js} +30 -6
  101. package/dist/esm/ui-context-menu.entry.js +1 -1
  102. package/dist/esm/ui-dialog.entry.js +1 -1
  103. package/dist/esm/ui-disclosure.entry.js +1 -1
  104. package/dist/esm/ui-editable.entry.js +98 -0
  105. package/dist/esm/ui-floating-action-button.entry.js +1 -1
  106. package/dist/esm/ui-form-field.entry.js +1 -1
  107. package/dist/esm/ui-icon-button.entry.js +1 -1
  108. package/dist/esm/ui-input.entry.js +1 -1
  109. package/dist/esm/ui-menu-item.entry.js +1 -1
  110. package/dist/esm/ui-menu.entry.js +1 -1
  111. package/dist/esm/ui-multi-combobox.entry.js +188 -0
  112. package/dist/esm/ui-popover.entry.js +1 -1
  113. package/dist/esm/ui-radio-group.entry.js +1 -1
  114. package/dist/esm/ui-radio.entry.js +1 -1
  115. package/dist/esm/ui-search-result-row.entry.js +1 -1
  116. package/dist/esm/ui-search-shell.entry.js +1 -1
  117. package/dist/esm/ui-select.entry.js +1 -1
  118. package/dist/esm/ui-switch.entry.js +2 -2
  119. package/dist/esm/ui-tabs.entry.js +1 -1
  120. package/dist/esm/ui-textarea.entry.js +1 -1
  121. package/dist/esm/ui-toast-region.entry.js +1 -1
  122. package/dist/esm/ui-tooltip.entry.js +1 -1
  123. package/dist/esm/ui-top-bar.entry.js +1 -1
  124. package/dist/esm/ui-tree-item.entry.js +2 -2
  125. package/dist/esm/ui-tree.entry.js +1 -1
  126. package/dist/index.cjs +368 -63
  127. package/dist/index.d.cts +18 -1
  128. package/dist/index.d.ts +18 -1
  129. package/dist/index.js +2 -2
  130. package/dist/looma/looma.esm.js +1 -1
  131. package/dist/looma/p-05592219.entry.js +1 -0
  132. package/dist/looma/{p-314d5c7c.entry.js → p-0e1741cb.entry.js} +1 -1
  133. package/dist/looma/{p-bd00d4e8.entry.js → p-0ef4bf13.entry.js} +1 -1
  134. package/dist/looma/{p-8e254bc4.entry.js → p-166f8593.entry.js} +1 -1
  135. package/dist/looma/p-262a542c.entry.js +1 -0
  136. package/dist/looma/{p-672e3d16.entry.js → p-26d357ae.entry.js} +1 -1
  137. package/dist/looma/{p-b63f6d4f.entry.js → p-30f01909.entry.js} +1 -1
  138. package/dist/looma/p-393e3e02.entry.js +1 -0
  139. package/dist/looma/p-3a44b9f9.entry.js +1 -0
  140. package/dist/looma/{p-fd1e4d22.entry.js → p-558d4f5b.entry.js} +1 -1
  141. package/dist/looma/{p-25e18ad6.entry.js → p-5780cefa.entry.js} +1 -1
  142. package/dist/looma/p-5a7261e1.entry.js +1 -0
  143. package/dist/looma/{p-03f44c45.entry.js → p-7319c147.entry.js} +1 -1
  144. package/dist/looma/{p-f1750fd7.entry.js → p-78b7e466.entry.js} +1 -1
  145. package/dist/looma/{p-7c4a225f.entry.js → p-7eb04f09.entry.js} +1 -1
  146. package/dist/looma/{p-e0f241ab.entry.js → p-81c533f5.entry.js} +1 -1
  147. package/dist/looma/{p-8e6b1001.entry.js → p-87f501cf.entry.js} +1 -1
  148. package/dist/looma/{p-cc915913.entry.js → p-89e71bbb.entry.js} +1 -1
  149. package/dist/looma/{p-a63e2561.entry.js → p-92cd1841.entry.js} +1 -1
  150. package/dist/looma/{p-5a900d89.entry.js → p-95eb3b58.entry.js} +1 -1
  151. package/dist/looma/{p-839faf55.entry.js → p-96ec4d7a.entry.js} +1 -1
  152. package/dist/looma/{p-2c03fa73.entry.js → p-bcb1b47b.entry.js} +1 -1
  153. package/dist/looma/{p-68430534.entry.js → p-d62da01d.entry.js} +1 -1
  154. package/dist/looma/{p-13f8195a.entry.js → p-dbcb479c.entry.js} +1 -1
  155. package/dist/looma/{p-920656cf.entry.js → p-e14024bf.entry.js} +1 -1
  156. package/dist/looma/{p-3ef2a21b.entry.js → p-fc180770.entry.js} +1 -1
  157. package/dist/types/components/ui-chip/ui-chip.d.ts +2 -0
  158. package/dist/types/components/ui-combobox/ui-combobox.d.ts +4 -0
  159. package/dist/types/components/ui-editable/ui-editable.d.ts +24 -0
  160. package/dist/types/components/ui-multi-combobox/ui-multi-combobox.d.ts +51 -0
  161. package/dist/types/components.d.ts +244 -0
  162. package/dist/types/field/editable.d.ts +5 -0
  163. package/dist/types/field/multi-combobox.d.ts +11 -0
  164. package/dist/{ui-affordance-scope.entry-3TUZ6GLW.js → ui-affordance-scope.entry-6N4ZQ5FM.js} +1 -1
  165. package/dist/{ui-avatar-group.entry-XGJKN25W.js → ui-avatar-group.entry-FTZVEFGI.js} +1 -1
  166. package/dist/{ui-avatar.entry-SN3G44HW.js → ui-avatar.entry-SST735OH.js} +1 -1
  167. package/dist/{ui-badge.entry-B6WDCWJX.js → ui-badge.entry-DZGS7MUT.js} +1 -1
  168. package/dist/{ui-button.entry-AZYUELLV.js → ui-button.entry-5WX56ARJ.js} +1 -1
  169. package/dist/{ui-callout.entry-QRPWRMPC.js → ui-callout.entry-OI5RNRXV.js} +1 -1
  170. package/dist/{ui-checkbox.entry-OB6GFC4M.js → ui-checkbox.entry-HCGIQPSE.js} +1 -1
  171. package/dist/{ui-combobox.entry-IIMMUJF7.js → ui-chip_2.entry-G2IGWJTL.js} +32 -7
  172. package/dist/{ui-context-menu.entry-AIULIE5Y.js → ui-context-menu.entry-K2LRT2WV.js} +2 -2
  173. package/dist/{ui-dialog.entry-QSYWYHLY.js → ui-dialog.entry-4W2T27R6.js} +2 -2
  174. package/dist/{ui-disclosure.entry-3BJEYU3U.js → ui-disclosure.entry-ONYMXRKR.js} +2 -2
  175. package/dist/ui-editable.entry-4ZHXIOER.js +110 -0
  176. package/dist/{ui-floating-action-button.entry-JEVNV6FI.js → ui-floating-action-button.entry-XU4JO2ZV.js} +2 -2
  177. package/dist/{ui-form-field.entry-PKSY7UU4.js → ui-form-field.entry-BZSEWR4A.js} +2 -2
  178. package/dist/{ui-icon-button.entry-TPX7BE7R.js → ui-icon-button.entry-MHJKL5OZ.js} +2 -2
  179. package/dist/{ui-input.entry-6NCLNW4E.js → ui-input.entry-BL6EX3GC.js} +2 -2
  180. package/dist/{ui-menu-item.entry-KA2K3PKV.js → ui-menu-item.entry-LERF3A4G.js} +2 -2
  181. package/dist/{ui-menu.entry-7GDO5L2T.js → ui-menu.entry-WXDYGFJE.js} +2 -2
  182. package/dist/ui-multi-combobox.entry-WSNWVRXE.js +196 -0
  183. package/dist/{ui-popover.entry-FR6YRNK6.js → ui-popover.entry-P6STTQVS.js} +2 -2
  184. package/dist/{ui-radio-group.entry-7QHXQSNO.js → ui-radio-group.entry-GZLHOY2M.js} +2 -2
  185. package/dist/{ui-radio.entry-YNMXKLDW.js → ui-radio.entry-4PXIRDKT.js} +2 -2
  186. package/dist/{ui-search-result-row.entry-AHVVAAIO.js → ui-search-result-row.entry-LHNOT7MK.js} +2 -2
  187. package/dist/{ui-search-shell.entry-CNBEAMEZ.js → ui-search-shell.entry-GQCMEU2Z.js} +2 -2
  188. package/dist/{ui-select.entry-TUY6TCTC.js → ui-select.entry-TZU7XX4U.js} +2 -2
  189. package/dist/{ui-switch.entry-26LFI7B5.js → ui-switch.entry-QFH3YDYP.js} +3 -3
  190. package/dist/{ui-tabs.entry-LXB62RJJ.js → ui-tabs.entry-A57JVDT2.js} +2 -2
  191. package/dist/{ui-textarea.entry-JYGMGPX2.js → ui-textarea.entry-L3RLZIGO.js} +2 -2
  192. package/dist/{ui-toast-region.entry-TOW4KZLZ.js → ui-toast-region.entry-XKKEY4K7.js} +2 -2
  193. package/dist/{ui-tooltip.entry-SKFNYXPH.js → ui-tooltip.entry-5WQTX7XF.js} +2 -2
  194. package/dist/{ui-top-bar.entry-S3YP52EA.js → ui-top-bar.entry-KMJEFYOM.js} +2 -2
  195. package/dist/{ui-tree-item.entry-LWYIPYLC.js → ui-tree-item.entry-TUBC57FI.js} +3 -3
  196. package/dist/{ui-tree.entry-LXKUQFRU.js → ui-tree.entry-Y75CRURL.js} +2 -2
  197. package/package.json +1 -1
  198. package/vue/{chunk-D4AJULDE.js → chunk-2DDIBSFD.js} +87 -1
  199. package/vue/editor/index.js +1 -1
  200. package/vue/index.d.ts +127 -2
  201. package/vue/index.js +5 -1
  202. package/dist/cjs/ui-chip.cjs.entry.js +0 -19
  203. package/dist/esm/ui-chip.entry.js +0 -17
  204. package/dist/looma/p-82f2fa3d.entry.js +0 -1
  205. package/dist/looma/p-97e8cb0e.entry.js +0 -1
  206. package/dist/looma/p-9e1c4020.entry.js +0 -1
  207. package/dist/looma/p-cfba8f7c.entry.js +0 -1
  208. package/dist/ui-chip.entry-XSNPJXX3.js +0 -22
@@ -7,10 +7,14 @@
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { CalloutTone } from "./components/ui-callout/ui-callout";
9
9
  import { ComboboxChange, ComboboxConfig, ComboboxOption, ComboboxValidationState } from "./field/combobox";
10
+ import { EditableChange } from "./field/editable";
10
11
  import { AnchoredPlacement } from "./overlay/positioning";
12
+ import { MultiComboboxCreate, MultiComboboxItem, MultiComboboxItemChange } from "./field/multi-combobox";
11
13
  export { CalloutTone } from "./components/ui-callout/ui-callout";
12
14
  export { ComboboxChange, ComboboxConfig, ComboboxOption, ComboboxValidationState } from "./field/combobox";
15
+ export { EditableChange } from "./field/editable";
13
16
  export { AnchoredPlacement } from "./overlay/positioning";
17
+ export { MultiComboboxCreate, MultiComboboxItem, MultiComboboxItemChange } from "./field/multi-combobox";
14
18
  export namespace Components {
15
19
  interface UiAffordanceScope {
16
20
  /**
@@ -106,6 +110,11 @@ export namespace Components {
106
110
  * @default 'tag'
107
111
  */
108
112
  "appearance": 'tag' | 'pill';
113
+ /**
114
+ * Compact typography size.
115
+ * @default 'xs'
116
+ */
117
+ "size": 'xs' | 'sm';
109
118
  }
110
119
  /**
111
120
  * A single editable field with contextual suggestions, optional help and field validation.
@@ -133,6 +142,10 @@ export namespace Components {
133
142
  * @default false
134
143
  */
135
144
  "disclosure": boolean;
145
+ /**
146
+ * Focus the native editing input from a composed control.
147
+ */
148
+ "focusInput": () => Promise<void>;
136
149
  /**
137
150
  * Optional description shown by the connected question-mark button.
138
151
  * @default ''
@@ -143,6 +156,11 @@ export namespace Components {
143
156
  * @default ''
144
157
  */
145
158
  "label": string;
159
+ /**
160
+ * Keep the native label accessible while allowing compact composed controls.
161
+ * @default 'visible'
162
+ */
163
+ "labelVisibility": 'visible' | 'sr-only';
146
164
  /**
147
165
  * @default ''
148
166
  */
@@ -228,6 +246,23 @@ export namespace Components {
228
246
  */
229
247
  "open"?: boolean;
230
248
  }
249
+ /**
250
+ * Swaps an explicit presentation trigger for a focused editing control.
251
+ */
252
+ interface UiEditable {
253
+ /**
254
+ * @default false
255
+ */
256
+ "defaultEdit": boolean;
257
+ /**
258
+ * @default false
259
+ */
260
+ "disabled": boolean;
261
+ /**
262
+ * Controlled edit state. Omit it to use defaultEdit and local interaction state.
263
+ */
264
+ "edit"?: boolean;
265
+ }
231
266
  interface UiFloatingActionButton {
232
267
  /**
233
268
  * @default false
@@ -327,6 +362,54 @@ export namespace Components {
327
362
  */
328
363
  "value": string;
329
364
  }
365
+ /**
366
+ * A multi-value combobox with removable, customizable selected items.
367
+ */
368
+ interface UiMultiCombobox {
369
+ /**
370
+ * @default {}
371
+ */
372
+ "config": ComboboxConfig;
373
+ /**
374
+ * @default ''
375
+ */
376
+ "defaultQuery": string;
377
+ /**
378
+ * @default false
379
+ */
380
+ "disabled": boolean;
381
+ "focusInput": () => Promise<void>;
382
+ /**
383
+ * @default []
384
+ */
385
+ "items": readonly MultiComboboxItem[];
386
+ /**
387
+ * @default ''
388
+ */
389
+ "label": string;
390
+ /**
391
+ * @default ''
392
+ */
393
+ "name": string;
394
+ /**
395
+ * @default ''
396
+ */
397
+ "placeholder": string;
398
+ "query"?: string;
399
+ /**
400
+ * @default false
401
+ */
402
+ "readOnly": boolean;
403
+ /**
404
+ * @default false
405
+ */
406
+ "required": boolean;
407
+ /**
408
+ * Characters that commit the current query and leave the input ready for the next item.
409
+ * @default []
410
+ */
411
+ "tokenSeparators": readonly string[];
412
+ }
330
413
  interface UiPopover {
331
414
  /**
332
415
  * @default false
@@ -603,6 +686,14 @@ export interface UiComboboxCustomEvent<T> extends CustomEvent<T> {
603
686
  detail: T;
604
687
  target: HTMLUiComboboxElement;
605
688
  }
689
+ export interface UiEditableCustomEvent<T> extends CustomEvent<T> {
690
+ detail: T;
691
+ target: HTMLUiEditableElement;
692
+ }
693
+ export interface UiMultiComboboxCustomEvent<T> extends CustomEvent<T> {
694
+ detail: T;
695
+ target: HTMLUiMultiComboboxElement;
696
+ }
606
697
  export interface UiTooltipCustomEvent<T> extends CustomEvent<T> {
607
698
  detail: T;
608
699
  target: HTMLUiTooltipElement;
@@ -706,6 +797,26 @@ declare global {
706
797
  prototype: HTMLUiDisclosureElement;
707
798
  new (): HTMLUiDisclosureElement;
708
799
  };
800
+ interface HTMLUiEditableElementEventMap {
801
+ "edit-change": EditableChange;
802
+ }
803
+ /**
804
+ * Swaps an explicit presentation trigger for a focused editing control.
805
+ */
806
+ interface HTMLUiEditableElement extends Components.UiEditable, HTMLStencilElement {
807
+ addEventListener<K extends keyof HTMLUiEditableElementEventMap>(type: K, listener: (this: HTMLUiEditableElement, ev: UiEditableCustomEvent<HTMLUiEditableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
808
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
809
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
810
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
811
+ removeEventListener<K extends keyof HTMLUiEditableElementEventMap>(type: K, listener: (this: HTMLUiEditableElement, ev: UiEditableCustomEvent<HTMLUiEditableElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
812
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
813
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
814
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
815
+ }
816
+ var HTMLUiEditableElement: {
817
+ prototype: HTMLUiEditableElement;
818
+ new (): HTMLUiEditableElement;
819
+ };
709
820
  interface HTMLUiFloatingActionButtonElement extends Components.UiFloatingActionButton, HTMLStencilElement {
710
821
  }
711
822
  var HTMLUiFloatingActionButtonElement: {
@@ -742,6 +853,30 @@ declare global {
742
853
  prototype: HTMLUiMenuItemElement;
743
854
  new (): HTMLUiMenuItemElement;
744
855
  };
856
+ interface HTMLUiMultiComboboxElementEventMap {
857
+ "query-change": { query: string; display: string; trigger: 'keyboard' | 'pointer' | 'programmatic' };
858
+ "add-item": MultiComboboxItemChange;
859
+ "remove-item": MultiComboboxItemChange;
860
+ "create-item": MultiComboboxCreate;
861
+ "options-change": readonly ComboboxOption[];
862
+ }
863
+ /**
864
+ * A multi-value combobox with removable, customizable selected items.
865
+ */
866
+ interface HTMLUiMultiComboboxElement extends Components.UiMultiCombobox, HTMLStencilElement {
867
+ addEventListener<K extends keyof HTMLUiMultiComboboxElementEventMap>(type: K, listener: (this: HTMLUiMultiComboboxElement, ev: UiMultiComboboxCustomEvent<HTMLUiMultiComboboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
868
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
869
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
870
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
871
+ removeEventListener<K extends keyof HTMLUiMultiComboboxElementEventMap>(type: K, listener: (this: HTMLUiMultiComboboxElement, ev: UiMultiComboboxCustomEvent<HTMLUiMultiComboboxElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
872
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
873
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
874
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
875
+ }
876
+ var HTMLUiMultiComboboxElement: {
877
+ prototype: HTMLUiMultiComboboxElement;
878
+ new (): HTMLUiMultiComboboxElement;
879
+ };
745
880
  interface HTMLUiPopoverElement extends Components.UiPopover, HTMLStencilElement {
746
881
  }
747
882
  var HTMLUiPopoverElement: {
@@ -851,12 +986,14 @@ declare global {
851
986
  "ui-context-menu": HTMLUiContextMenuElement;
852
987
  "ui-dialog": HTMLUiDialogElement;
853
988
  "ui-disclosure": HTMLUiDisclosureElement;
989
+ "ui-editable": HTMLUiEditableElement;
854
990
  "ui-floating-action-button": HTMLUiFloatingActionButtonElement;
855
991
  "ui-form-field": HTMLUiFormFieldElement;
856
992
  "ui-icon-button": HTMLUiIconButtonElement;
857
993
  "ui-input": HTMLUiInputElement;
858
994
  "ui-menu": HTMLUiMenuElement;
859
995
  "ui-menu-item": HTMLUiMenuItemElement;
996
+ "ui-multi-combobox": HTMLUiMultiComboboxElement;
860
997
  "ui-popover": HTMLUiPopoverElement;
861
998
  "ui-radio": HTMLUiRadioElement;
862
999
  "ui-radio-group": HTMLUiRadioGroupElement;
@@ -968,6 +1105,11 @@ declare namespace LocalJSX {
968
1105
  * @default 'tag'
969
1106
  */
970
1107
  "appearance"?: 'tag' | 'pill';
1108
+ /**
1109
+ * Compact typography size.
1110
+ * @default 'xs'
1111
+ */
1112
+ "size"?: 'xs' | 'sm';
971
1113
  }
972
1114
  /**
973
1115
  * A single editable field with contextual suggestions, optional help and field validation.
@@ -1005,6 +1147,11 @@ declare namespace LocalJSX {
1005
1147
  * @default ''
1006
1148
  */
1007
1149
  "label"?: string;
1150
+ /**
1151
+ * Keep the native label accessible while allowing compact composed controls.
1152
+ * @default 'visible'
1153
+ */
1154
+ "labelVisibility"?: 'visible' | 'sr-only';
1008
1155
  /**
1009
1156
  * @default ''
1010
1157
  */
@@ -1096,6 +1243,24 @@ declare namespace LocalJSX {
1096
1243
  */
1097
1244
  "open"?: boolean;
1098
1245
  }
1246
+ /**
1247
+ * Swaps an explicit presentation trigger for a focused editing control.
1248
+ */
1249
+ interface UiEditable {
1250
+ /**
1251
+ * @default false
1252
+ */
1253
+ "defaultEdit"?: boolean;
1254
+ /**
1255
+ * @default false
1256
+ */
1257
+ "disabled"?: boolean;
1258
+ /**
1259
+ * Controlled edit state. Omit it to use defaultEdit and local interaction state.
1260
+ */
1261
+ "edit"?: boolean;
1262
+ "onEdit-change"?: (event: UiEditableCustomEvent<EditableChange>) => void;
1263
+ }
1099
1264
  interface UiFloatingActionButton {
1100
1265
  /**
1101
1266
  * @default false
@@ -1195,6 +1360,58 @@ declare namespace LocalJSX {
1195
1360
  */
1196
1361
  "value"?: string;
1197
1362
  }
1363
+ /**
1364
+ * A multi-value combobox with removable, customizable selected items.
1365
+ */
1366
+ interface UiMultiCombobox {
1367
+ /**
1368
+ * @default {}
1369
+ */
1370
+ "config"?: ComboboxConfig;
1371
+ /**
1372
+ * @default ''
1373
+ */
1374
+ "defaultQuery"?: string;
1375
+ /**
1376
+ * @default false
1377
+ */
1378
+ "disabled"?: boolean;
1379
+ /**
1380
+ * @default []
1381
+ */
1382
+ "items"?: readonly MultiComboboxItem[];
1383
+ /**
1384
+ * @default ''
1385
+ */
1386
+ "label"?: string;
1387
+ /**
1388
+ * @default ''
1389
+ */
1390
+ "name"?: string;
1391
+ "onAdd-item"?: (event: UiMultiComboboxCustomEvent<MultiComboboxItemChange>) => void;
1392
+ "onCreate-item"?: (event: UiMultiComboboxCustomEvent<MultiComboboxCreate>) => void;
1393
+ "onOptions-change"?: (event: UiMultiComboboxCustomEvent<readonly ComboboxOption[]>) => void;
1394
+ "onQuery-change"?: (event: UiMultiComboboxCustomEvent<{ query: string; display: string; trigger: 'keyboard' | 'pointer' | 'programmatic' }>) => void;
1395
+ "onRemove-item"?: (event: UiMultiComboboxCustomEvent<MultiComboboxItemChange>) => void;
1396
+ /**
1397
+ * @default ''
1398
+ */
1399
+ "placeholder"?: string;
1400
+ "query"?: string;
1401
+ /**
1402
+ * @default false
1403
+ */
1404
+ "readOnly"?: boolean;
1405
+ /**
1406
+ * @default false
1407
+ */
1408
+ "required"?: boolean;
1409
+ /**
1410
+ * Characters that commit the current query and leave the input ready for the next item.
1411
+ * @default []
1412
+ */
1413
+ "tokenSeparators"?: readonly string[];
1414
+ }
1198
1415
  interface UiPopover {
1199
1416
  /**
1200
1417
  * @default false
@@ -1504,6 +1721,7 @@ declare namespace LocalJSX {
1504
1721
  }
1505
1722
  interface UiChipAttributes {
1506
1723
  "appearance": 'tag' | 'pill';
1724
+ "size": 'xs' | 'sm';
1507
1725
  }
1508
1726
  interface UiComboboxAttributes {
1509
1727
  "label": string;
@@ -1517,6 +1735,7 @@ declare namespace LocalJSX {
1517
1735
  "readOnly": boolean;
1518
1736
  "required": boolean;
1519
1737
  "size": 'sm' | 'md';
1738
+ "labelVisibility": 'visible' | 'sr-only';
1520
1739
  "disclosure": boolean;
1521
1740
  "clearable": boolean;
1522
1741
  "help": string;
@@ -1538,6 +1757,11 @@ declare namespace LocalJSX {
1538
1757
  "defaultOpen": boolean;
1539
1758
  "disabled": boolean;
1540
1759
  }
1760
+ interface UiEditableAttributes {
1761
+ "edit": boolean;
1762
+ "defaultEdit": boolean;
1763
+ "disabled": boolean;
1764
+ }
1541
1765
  interface UiFloatingActionButtonAttributes {
1542
1766
  "disabled": boolean;
1543
1767
  "mobileOnly": boolean;
@@ -1572,6 +1796,16 @@ declare namespace LocalJSX {
1572
1796
  "disabled": boolean;
1573
1797
  "value": string;
1574
1798
  }
1799
+ interface UiMultiComboboxAttributes {
1800
+ "label": string;
1801
+ "placeholder": string;
1802
+ "query": string;
1803
+ "defaultQuery": string;
1804
+ "disabled": boolean;
1805
+ "readOnly": boolean;
1806
+ "required": boolean;
1807
+ "name": string;
1808
+ }
1575
1809
  interface UiPopoverAttributes {
1576
1810
  "open": boolean;
1577
1811
  "defaultOpen": boolean;
@@ -1670,12 +1904,14 @@ declare namespace LocalJSX {
1670
1904
  "ui-context-menu": Omit<UiContextMenu, keyof UiContextMenuAttributes> & { [K in keyof UiContextMenu & keyof UiContextMenuAttributes]?: UiContextMenu[K] } & { [K in keyof UiContextMenu & keyof UiContextMenuAttributes as `attr:${K}`]?: UiContextMenuAttributes[K] } & { [K in keyof UiContextMenu & keyof UiContextMenuAttributes as `prop:${K}`]?: UiContextMenu[K] };
1671
1905
  "ui-dialog": Omit<UiDialog, keyof UiDialogAttributes> & { [K in keyof UiDialog & keyof UiDialogAttributes]?: UiDialog[K] } & { [K in keyof UiDialog & keyof UiDialogAttributes as `attr:${K}`]?: UiDialogAttributes[K] } & { [K in keyof UiDialog & keyof UiDialogAttributes as `prop:${K}`]?: UiDialog[K] };
1672
1906
  "ui-disclosure": Omit<UiDisclosure, keyof UiDisclosureAttributes> & { [K in keyof UiDisclosure & keyof UiDisclosureAttributes]?: UiDisclosure[K] } & { [K in keyof UiDisclosure & keyof UiDisclosureAttributes as `attr:${K}`]?: UiDisclosureAttributes[K] } & { [K in keyof UiDisclosure & keyof UiDisclosureAttributes as `prop:${K}`]?: UiDisclosure[K] };
1907
+ "ui-editable": Omit<UiEditable, keyof UiEditableAttributes> & { [K in keyof UiEditable & keyof UiEditableAttributes]?: UiEditable[K] } & { [K in keyof UiEditable & keyof UiEditableAttributes as `attr:${K}`]?: UiEditableAttributes[K] } & { [K in keyof UiEditable & keyof UiEditableAttributes as `prop:${K}`]?: UiEditable[K] };
1673
1908
  "ui-floating-action-button": Omit<UiFloatingActionButton, keyof UiFloatingActionButtonAttributes> & { [K in keyof UiFloatingActionButton & keyof UiFloatingActionButtonAttributes]?: UiFloatingActionButton[K] } & { [K in keyof UiFloatingActionButton & keyof UiFloatingActionButtonAttributes as `attr:${K}`]?: UiFloatingActionButtonAttributes[K] } & { [K in keyof UiFloatingActionButton & keyof UiFloatingActionButtonAttributes as `prop:${K}`]?: UiFloatingActionButton[K] };
1674
1909
  "ui-form-field": Omit<UiFormField, keyof UiFormFieldAttributes> & { [K in keyof UiFormField & keyof UiFormFieldAttributes]?: UiFormField[K] } & { [K in keyof UiFormField & keyof UiFormFieldAttributes as `attr:${K}`]?: UiFormFieldAttributes[K] } & { [K in keyof UiFormField & keyof UiFormFieldAttributes as `prop:${K}`]?: UiFormField[K] };
1675
1910
  "ui-icon-button": Omit<UiIconButton, keyof UiIconButtonAttributes> & { [K in keyof UiIconButton & keyof UiIconButtonAttributes]?: UiIconButton[K] } & { [K in keyof UiIconButton & keyof UiIconButtonAttributes as `attr:${K}`]?: UiIconButtonAttributes[K] } & { [K in keyof UiIconButton & keyof UiIconButtonAttributes as `prop:${K}`]?: UiIconButton[K] };
1676
1911
  "ui-input": Omit<UiInput, keyof UiInputAttributes> & { [K in keyof UiInput & keyof UiInputAttributes]?: UiInput[K] } & { [K in keyof UiInput & keyof UiInputAttributes as `attr:${K}`]?: UiInputAttributes[K] } & { [K in keyof UiInput & keyof UiInputAttributes as `prop:${K}`]?: UiInput[K] };
1677
1912
  "ui-menu": Omit<UiMenu, keyof UiMenuAttributes> & { [K in keyof UiMenu & keyof UiMenuAttributes]?: UiMenu[K] } & { [K in keyof UiMenu & keyof UiMenuAttributes as `attr:${K}`]?: UiMenuAttributes[K] } & { [K in keyof UiMenu & keyof UiMenuAttributes as `prop:${K}`]?: UiMenu[K] };
1678
1913
  "ui-menu-item": Omit<UiMenuItem, keyof UiMenuItemAttributes> & { [K in keyof UiMenuItem & keyof UiMenuItemAttributes]?: UiMenuItem[K] } & { [K in keyof UiMenuItem & keyof UiMenuItemAttributes as `attr:${K}`]?: UiMenuItemAttributes[K] } & { [K in keyof UiMenuItem & keyof UiMenuItemAttributes as `prop:${K}`]?: UiMenuItem[K] };
1914
+ "ui-multi-combobox": Omit<UiMultiCombobox, keyof UiMultiComboboxAttributes> & { [K in keyof UiMultiCombobox & keyof UiMultiComboboxAttributes]?: UiMultiCombobox[K] } & { [K in keyof UiMultiCombobox & keyof UiMultiComboboxAttributes as `attr:${K}`]?: UiMultiComboboxAttributes[K] } & { [K in keyof UiMultiCombobox & keyof UiMultiComboboxAttributes as `prop:${K}`]?: UiMultiCombobox[K] };
1679
1915
  "ui-popover": Omit<UiPopover, keyof UiPopoverAttributes> & { [K in keyof UiPopover & keyof UiPopoverAttributes]?: UiPopover[K] } & { [K in keyof UiPopover & keyof UiPopoverAttributes as `attr:${K}`]?: UiPopoverAttributes[K] } & { [K in keyof UiPopover & keyof UiPopoverAttributes as `prop:${K}`]?: UiPopover[K] };
1680
1916
  "ui-radio": Omit<UiRadio, keyof UiRadioAttributes> & { [K in keyof UiRadio & keyof UiRadioAttributes]?: UiRadio[K] } & { [K in keyof UiRadio & keyof UiRadioAttributes as `attr:${K}`]?: UiRadioAttributes[K] } & { [K in keyof UiRadio & keyof UiRadioAttributes as `prop:${K}`]?: UiRadio[K] };
1681
1917
  "ui-radio-group": Omit<UiRadioGroup, keyof UiRadioGroupAttributes> & { [K in keyof UiRadioGroup & keyof UiRadioGroupAttributes]?: UiRadioGroup[K] } & { [K in keyof UiRadioGroup & keyof UiRadioGroupAttributes as `attr:${K}`]?: UiRadioGroupAttributes[K] } & { [K in keyof UiRadioGroup & keyof UiRadioGroupAttributes as `prop:${K}`]?: UiRadioGroup[K] };
@@ -1717,12 +1953,20 @@ declare module "@stencil/core" {
1717
1953
  "ui-context-menu": LocalJSX.IntrinsicElements["ui-context-menu"] & JSXBase.HTMLAttributes<HTMLUiContextMenuElement>;
1718
1954
  "ui-dialog": LocalJSX.IntrinsicElements["ui-dialog"] & JSXBase.HTMLAttributes<HTMLUiDialogElement>;
1719
1955
  "ui-disclosure": LocalJSX.IntrinsicElements["ui-disclosure"] & JSXBase.HTMLAttributes<HTMLUiDisclosureElement>;
1956
+ /**
1957
+ * Swaps an explicit presentation trigger for a focused editing control.
1958
+ */
1959
+ "ui-editable": LocalJSX.IntrinsicElements["ui-editable"] & JSXBase.HTMLAttributes<HTMLUiEditableElement>;
1720
1960
  "ui-floating-action-button": LocalJSX.IntrinsicElements["ui-floating-action-button"] & JSXBase.HTMLAttributes<HTMLUiFloatingActionButtonElement>;
1721
1961
  "ui-form-field": LocalJSX.IntrinsicElements["ui-form-field"] & JSXBase.HTMLAttributes<HTMLUiFormFieldElement>;
1722
1962
  "ui-icon-button": LocalJSX.IntrinsicElements["ui-icon-button"] & JSXBase.HTMLAttributes<HTMLUiIconButtonElement>;
1723
1963
  "ui-input": LocalJSX.IntrinsicElements["ui-input"] & JSXBase.HTMLAttributes<HTMLUiInputElement>;
1724
1964
  "ui-menu": LocalJSX.IntrinsicElements["ui-menu"] & JSXBase.HTMLAttributes<HTMLUiMenuElement>;
1725
1965
  "ui-menu-item": LocalJSX.IntrinsicElements["ui-menu-item"] & JSXBase.HTMLAttributes<HTMLUiMenuItemElement>;
1966
+ /**
1967
+ * A multi-value combobox with removable, customizable selected items.
1968
+ */
1969
+ "ui-multi-combobox": LocalJSX.IntrinsicElements["ui-multi-combobox"] & JSXBase.HTMLAttributes<HTMLUiMultiComboboxElement>;
1726
1970
  "ui-popover": LocalJSX.IntrinsicElements["ui-popover"] & JSXBase.HTMLAttributes<HTMLUiPopoverElement>;
1727
1971
  "ui-radio": LocalJSX.IntrinsicElements["ui-radio"] & JSXBase.HTMLAttributes<HTMLUiRadioElement>;
1728
1972
  "ui-radio-group": LocalJSX.IntrinsicElements["ui-radio-group"] & JSXBase.HTMLAttributes<HTMLUiRadioGroupElement>;
@@ -0,0 +1,5 @@
1
+ export interface EditableChange {
2
+ edit: boolean;
3
+ reason: 'activate' | 'light-dismiss' | 'escape' | 'programmatic';
4
+ trigger: 'keyboard' | 'pointer' | 'programmatic';
5
+ }
@@ -0,0 +1,11 @@
1
+ import type { ComboboxOption } from './combobox';
2
+ export type MultiComboboxItem = ComboboxOption;
3
+ export interface MultiComboboxItemChange {
4
+ item: MultiComboboxItem;
5
+ index: number;
6
+ trigger: 'keyboard' | 'pointer' | 'programmatic';
7
+ }
8
+ export interface MultiComboboxCreate {
9
+ query: string;
10
+ trigger: 'keyboard' | 'pointer' | 'programmatic';
11
+ }
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-IMHSPETJ.js";
10
+ } from "./chunk-XRJRF3MM.js";
11
11
 
12
12
  // dist/esm/ui-affordance-scope.entry.js
13
13
  var uiAffordanceScopeCss = () => `:host{display:contents;--ui-affordance-scope-engaged:0}:host([data-ui-interaction='engaged']){--ui-affordance-scope-engaged:1}`;
@@ -3,7 +3,7 @@ import {
3
3
  getElement,
4
4
  h,
5
5
  registerInstance
6
- } from "./chunk-IMHSPETJ.js";
6
+ } from "./chunk-XRJRF3MM.js";
7
7
 
8
8
  // dist/esm/ui-avatar-group.entry.js
9
9
  var uiAvatarGroupCss = () => `:host{display:flex;align-items:center;flex-direction:row-reverse;gap:0}::slotted(*){margin-inline-end:-0.5rem;flex-shrink:0}::slotted(*:last-of-type){margin-inline-end:0}.overflow{margin-inline-end:-0.5rem;display:inline-flex;align-items:center;justify-content:center;inline-size:2.5rem;block-size:2.5rem;border-radius:999px;border:1px solid var(--ui-border-default);background:var(--ui-surface-muted);color:var(--ui-text-secondary);font:inherit;font-size:0.75rem;font-weight:600;flex-shrink:0}`;
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-IMHSPETJ.js";
5
+ } from "./chunk-XRJRF3MM.js";
6
6
 
7
7
  // dist/esm/ui-avatar.entry.js
8
8
  function toInitials(value) {
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-IMHSPETJ.js";
5
+ } from "./chunk-XRJRF3MM.js";
6
6
 
7
7
  // dist/esm/ui-badge.entry.js
8
8
  var uiBadgeCss = () => `:host{--ui-badge-surface:var(--ui-surface-muted);--ui-badge-text:var(--ui-text-secondary);--ui-badge-border:var(--ui-border-default);--ui-badge-font-size:var(--ui-font-size-xs);--ui-badge-font-weight:var(--ui-font-normal);--ui-badge-line-height:var(--ui-line-height-tight);--ui-badge-padding-block:var(--ui-space-0-5);--ui-badge-padding-inline:var(--ui-space-2);display:inline-flex;max-width:100%}.badge__surface{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:var(--ui-badge-padding-block) var(--ui-badge-padding-inline);border:1px solid var(--ui-badge-border);border-radius:var(--ui-radius-round);background:var(--ui-badge-surface);color:var(--ui-badge-text);font-family:var(--ui-font-family-sans);font-size:var(--ui-badge-font-size);font-weight:var(--ui-badge-font-weight);line-height:var(--ui-badge-line-height);white-space:nowrap}:host([data-tone='accent']) .badge__surface{--ui-badge-surface:var(--ui-accent-solid);--ui-badge-border:var(--ui-accent-solid);--ui-badge-text:var(--ui-text-on-accent)}:host([data-tone='danger']) .badge__surface{--ui-badge-surface:var(--ui-danger-solid);--ui-badge-border:var(--ui-danger-solid);--ui-badge-text:var(--ui-text-on-accent)}:host([data-tone='success']) .badge__surface{--ui-badge-surface:var(--ui-success-solid);--ui-badge-border:var(--ui-success-solid);--ui-badge-text:var(--ui-text-on-accent)}:host([data-tone='warning']) .badge__surface{--ui-badge-surface:var(--ui-warning-solid);--ui-badge-border:var(--ui-warning-solid);--ui-badge-text:var(--ui-text-primary)}:host([data-tone='info']) .badge__surface{--ui-badge-surface:var(--ui-info-solid);--ui-badge-border:var(--ui-info-solid);--ui-badge-text:var(--ui-text-on-accent)}:host([data-variant='subtle'][data-tone='accent']) .badge__surface{--ui-badge-surface:var(--ui-accent-soft);--ui-badge-border:var(--ui-accent-soft);--ui-badge-text:var(--ui-accent-solid)}:host([data-variant='subtle'][data-tone='danger']) .badge__surface{--ui-badge-surface:var(--ui-danger-soft);--ui-badge-border:var(--ui-danger-soft);--ui-badge-text:var(--ui-danger-solid)}:host([data-variant='subtle'][data-tone='success']) .badge__surface{--ui-badge-surface:var(--ui-success-soft);--ui-badge-border:var(--ui-success-soft);--ui-badge-text:var(--ui-success-solid)}:host([data-variant='subtle'][data-tone='warning']) .badge__surface{--ui-badge-surface:var(--ui-warning-soft);--ui-badge-border:var(--ui-warning-soft);--ui-badge-text:var(--ui-warning-solid)}:host([data-variant='subtle'][data-tone='info']) .badge__surface{--ui-badge-surface:var(--ui-info-soft);--ui-badge-border:var(--ui-info-soft);--ui-badge-text:var(--ui-info-solid)}`;
@@ -6,7 +6,7 @@ import {
6
6
  getElement,
7
7
  h,
8
8
  registerInstance
9
- } from "./chunk-IMHSPETJ.js";
9
+ } from "./chunk-XRJRF3MM.js";
10
10
 
11
11
  // dist/esm/ui-button.entry.js
12
12
  var uiButtonCss = () => `:host{display:inline-flex;vertical-align:middle;color:var(--ui-action-secondary-text, var(--ui-text-primary))}:host([data-variant='solid']){color:var(--ui-action-primary-text, var(--ui-text-on-accent))}:host([data-variant='outline']) ::slotted(button),::slotted(button){appearance:none;min-block-size:var(--ui-button-min-block-size, 2.5rem);border:1px solid var(--ui-control-border, var(--ui-border-default));border-radius:var(--ui-button-radius, var(--ui-radius-2));background:var(--ui-action-secondary-surface, var(--ui-surface-default));color:inherit;font:inherit;font-weight:var(--ui-font-medium, 500);line-height:var(--ui-line-height-tight);padding:var(--ui-space-2) var(--ui-space-3);cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease);margin:0}:host([data-size='sm']) ::slotted(button){padding:var(--ui-space-1) var(--ui-space-2);font-size:0.875rem}:host([data-size='lg']) ::slotted(button){min-block-size:var(--ui-control-min-block-size, 2.75rem);padding:var(--ui-space-3) var(--ui-space-4);font-size:1rem}::slotted(button:hover:enabled){background:var(--ui-action-secondary-surface-hover, var(--ui-surface-muted));border-color:var(--ui-control-border-hover, var(--ui-border-strong))}::slotted(button:active:enabled){background:var(--ui-surface-subtle)}:host([data-variant='solid']) ::slotted(button){border-color:var(--ui-action-primary-surface, var(--ui-accent-solid));background:var(--ui-action-primary-surface, var(--ui-accent-solid));color:var(--ui-action-primary-text, var(--ui-text-on-accent));box-shadow:var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs))}:host([data-variant='solid']) ::slotted(button:hover:enabled){background:var(--ui-action-primary-surface-hover, var(--ui-accent-hover));border-color:var(--ui-action-primary-surface-hover, var(--ui-accent-hover));box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}:host([data-variant='solid']) ::slotted(button:active:enabled){background:var(--ui-action-primary-surface-active, var(--ui-accent-active));border-color:var(--ui-action-primary-surface-active, var(--ui-accent-active));box-shadow:none;transform:translateY(0)}:host([data-variant='destructive']) ::slotted(button){border-color:var(--ui-danger-solid);background:var(--ui-danger-solid);color:var(--ui-text-on-accent);box-shadow:var(--ui-button-destructive-shadow, inset 0 1px rgb(255 255 255 / 0.14), var(--ui-shadow-xs))}:host([data-variant='destructive']) ::slotted(button:hover:enabled){background:var(--ui-danger-hover);border-color:var(--ui-danger-hover);box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}:host([data-variant='destructive']) ::slotted(button:active:enabled){box-shadow:none;transform:translateY(0)}:host([data-variant='ghost']) ::slotted(button){border-color:transparent;background:transparent}:host([data-variant='ghost']) ::slotted(button:hover:enabled){background:var(--ui-surface-muted);border-color:transparent}:host([data-variant='ghost']) ::slotted(button:active:enabled){background:var(--ui-surface-subtle);border-color:transparent}::slotted(button:focus-visible){outline:2px solid var(--ui-focus-ring);outline-offset:2px}:host([data-disabled='true']),:host([disabled]){opacity:0.6;cursor:not-allowed}::slotted(button:disabled){cursor:not-allowed}`;
@@ -5,7 +5,7 @@ import {
5
5
  Host,
6
6
  h,
7
7
  registerInstance
8
- } from "./chunk-IMHSPETJ.js";
8
+ } from "./chunk-XRJRF3MM.js";
9
9
 
10
10
  // dist/esm/ui-callout.entry.js
11
11
  var uiCalloutCss = () => `:host{--ui-callout-surface:var(--ui-info-soft);--ui-callout-text:var(--ui-text-primary);--ui-callout-border:var(--ui-info-solid);--ui-callout-icon:var(--ui-info-solid);--ui-callout-padding-block:var(--ui-space-2);--ui-callout-padding-inline:var(--ui-space-3);--ui-callout-icon-column:1rem;--ui-callout-gap:var(--ui-space-2);--ui-callout-icon-size:1rem;--ui-callout-border-width:1px;--ui-callout-leading-border-width:4px;display:block;max-width:100%}.callout__surface{display:grid;grid-template-columns:var(--ui-callout-icon-column) minmax(0, 1fr);gap:var(--ui-callout-gap);align-items:start;padding:var(--ui-callout-padding-block) var(--ui-callout-padding-inline);border:var(--ui-callout-border-width) solid color-mix(in srgb, var(--ui-callout-border) 35%, transparent);border-inline-start:var(--ui-callout-leading-border-width) solid var(--ui-callout-border);border-radius:var(--ui-radius-2);background:var(--ui-callout-surface);color:var(--ui-callout-text);font-family:var(--ui-font-family-sans);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-normal);line-height:var(--ui-line-height-md)}.icon{display:grid;place-items:center;inline-size:var(--ui-callout-icon-column);block-size:var(--ui-callout-icon-column);color:var(--ui-callout-icon)}.icon svg{inline-size:var(--ui-callout-icon-size);block-size:var(--ui-callout-icon-size)}.content{min-inline-size:0}:host([data-tone='note']){--ui-callout-surface:var(--ui-surface-muted);--ui-callout-border:var(--ui-border-strong);--ui-callout-icon:var(--ui-text-secondary)}:host([data-tone='warning']){--ui-callout-surface:var(--ui-warning-soft);--ui-callout-border:var(--ui-warning-solid);--ui-callout-icon:var(--ui-warning-solid)}:host([data-tone='success']){--ui-callout-surface:var(--ui-success-soft);--ui-callout-border:var(--ui-success-solid);--ui-callout-icon:var(--ui-success-solid)}:host([data-tone='error']){--ui-callout-surface:var(--ui-danger-soft);--ui-callout-border:var(--ui-danger-solid);--ui-callout-icon:var(--ui-danger-solid)}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-IMHSPETJ.js";
14
+ } from "./chunk-XRJRF3MM.js";
15
15
 
16
16
  // dist/esm/ui-checkbox.entry.js
17
17
  var uiCheckboxCss = () => `:host{display:inline-flex;align-items:center;gap:var(--ui-space-2);color:var(--ui-text-primary)}:host([aria-disabled='true']),:host([data-disabled='true']){opacity:0.6;cursor:not-allowed}::slotted(input[type='checkbox']){accent-color:var(--ui-accent-solid);width:1.125em;height:1.125em;cursor:pointer}::slotted(input[type='checkbox']:focus-visible){outline:2px solid var(--ui-accent-solid);outline-offset:2px}`;
@@ -11,9 +11,23 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-IMHSPETJ.js";
14
+ } from "./chunk-XRJRF3MM.js";
15
15
 
16
- // dist/esm/ui-combobox.entry.js
16
+ // dist/esm/ui-chip_2.entry.js
17
+ var uiChipCss = () => `:host{--ui-chip-surface:var(--ui-surface-subtle);--ui-chip-text:var(--ui-text-secondary);--ui-chip-border:var(--ui-border-default);--ui-chip-font-size:var(--ui-font-size-xs);--ui-chip-font-weight:var(--ui-font-normal);--ui-chip-line-height:var(--ui-line-height-tight);--ui-chip-padding-block:var(--ui-space-0-5);--ui-chip-padding-inline:var(--ui-space-2);--ui-chip-notch:var(--ui-space-1);display:inline-flex;max-width:100%}:host([data-size='sm']){--ui-chip-font-size:var(--ui-font-size-sm)}.chip__surface{display:inline-flex;align-items:center;max-width:100%;padding:var(--ui-chip-padding-block) var(--ui-chip-padding-inline);border:1px solid var(--ui-chip-border);background:var(--ui-chip-surface);color:var(--ui-chip-text) !important;font-family:var(--ui-font-family-sans) !important;font-size:var(--ui-chip-font-size) !important;font-weight:var(--ui-chip-font-weight) !important;line-height:var(--ui-chip-line-height) !important;white-space:nowrap}:host([data-appearance='pill']) .chip__surface{border-radius:var(--ui-radius-round)}:host([data-appearance='tag']) .chip__surface{border:0;padding-inline-end:calc(var(--ui-chip-padding-inline) + var(--ui-chip-notch));clip-path:polygon(0 0, calc(100% - var(--ui-chip-notch)) 0, 100% 50%, calc(100% - var(--ui-chip-notch)) 100%, 0 100%)}`;
18
+ var UIChip = class {
19
+ constructor(hostRef) {
20
+ registerInstance(this, hostRef);
21
+ }
22
+ /** `tag` has a square leading edge and an angled trailing edge; `pill` is fully rounded. */
23
+ appearance = "tag";
24
+ /** Compact typography size. */
25
+ size = "xs";
26
+ render() {
27
+ return h(Host, { key: "970cb48cf8d70c47feaab90fe428c09f0d052a03", "data-appearance": this.appearance, "data-size": this.size }, h("span", { key: "6d8c6104d2869520097a2a61bd2a887b363b4912", class: "chip__surface" }, h("slot", { key: "b61c50a8060d8a2684aed6f87dc859b1c9e99858" })));
28
+ }
29
+ };
30
+ UIChip.style = uiChipCss();
17
31
  function formatEditingValue(raw, selection, format) {
18
32
  const unchanged = { display: raw, selection };
19
33
  if (!format)
@@ -102,6 +116,8 @@ var UICombobox = class {
102
116
  readOnly = false;
103
117
  required = false;
104
118
  size = "md";
119
+ /** Keep the native label accessible while allowing compact composed controls. */
120
+ labelVisibility = "visible";
105
121
  disclosure = false;
106
122
  clearable = false;
107
123
  /** Optional description shown by the connected question-mark button. */
@@ -328,7 +344,8 @@ var UICombobox = class {
328
344
  }, reason === "disclosure" ? 0 : Math.max(0, config.debounce ?? 200));
329
345
  }
330
346
  get canCreate() {
331
- return Boolean(this.config.allowCreate && this.raw.trim() && !this.loading && !this.lookupError && !this.rows.some((row) => row.label.toLocaleLowerCase() === this.raw.toLocaleLowerCase()));
347
+ const candidates = this.config.options ? [...this.config.options, ...this.rows] : this.rows;
348
+ return Boolean(this.config.allowCreate && this.raw.trim() && !this.loading && !this.lookupError && !candidates.some((row) => row.label.toLocaleLowerCase() === this.raw.toLocaleLowerCase()));
332
349
  }
333
350
  format(timing) {
334
351
  if ((this.config.formatOn ?? "blur") !== timing || !this.input)
@@ -508,24 +525,31 @@ var UICombobox = class {
508
525
  }
509
526
  return this.validation;
510
527
  }
528
+ /** Focus the native editing input from a composed control. */
529
+ async focusInput() {
530
+ this.input?.focus();
531
+ }
511
532
  render() {
512
533
  const description = [this.helpOpen ? "help-text" : "", this.validation.issues.length ? "validation" : ""].filter(Boolean).join(" ") || void 0;
513
534
  const status = this.loading ? "Loading suggestions\u2026" : this.lookupError || (this.expanded ? `${this.rows.length} suggestions available.` : "");
514
535
  const groups = [...new Set(this.rows.map((row) => row.group ?? ""))];
515
- return h(Host, { key: "b485462943bef9e5cb0a4b42f82888024132ab3a", "data-size": this.size, "data-validation": this.validation.status, onFocusout: this.onFocusOut }, h("label", { key: "99db32d80b0a250ff4ebea8481dda94be53df2eb", htmlFor: "input", part: "label" }, this.label, this.required ? " *" : ""), h("div", { key: "922adddf41c07215d3ec73947e8e3fe801c7ef89", class: "field", part: "field", ref: (element) => this.field = element }, h("input", { key: "557780297c5afee8112a5085984c5dd4ea1a02be", id: "input", ref: (element) => this.input = element, role: "combobox", "aria-autocomplete": "list", "aria-expanded": String(this.expanded), "aria-controls": "listbox", "aria-activedescendant": this.expanded && this.active >= 0 ? `option-${this.active}` : void 0, "aria-describedby": description, "aria-invalid": String(this.validation.status === "error"), "aria-busy": String(this.validation.status === "pending"), value: this.display, placeholder: this.placeholder, name: this.name || void 0, disabled: this.disabled, readOnly: this.readOnly, required: this.required, autoComplete: "off", part: "input", onInput: this.onInput, onKeyDown: this.onKeydown, onCompositionstart: () => this.composing = true, onCompositionend: () => {
536
+ return h(Host, { key: "a33890c2824f29dfea5e22edddca4480a6d1d032", "data-size": this.size, "data-validation": this.validation.status, onFocusout: this.onFocusOut }, h("label", { key: "c936530cf696c1d14245fd83895e9c58c908df12", htmlFor: "input", part: "label", class: this.labelVisibility === "sr-only" ? "sr-only" : void 0 }, this.label, this.required ? " *" : ""), h("div", { key: "0fe0ed9b15a3e256867e071ca7e4fa3abc66f27c", class: "field", part: "field", ref: (element) => this.field = element, onClick: (event) => {
537
+ if (!event.composedPath().some((node) => node instanceof HTMLButtonElement))
538
+ this.input?.focus();
539
+ } }, h("slot", { key: "9cc4c22eb7776e415792fbdf3c17c962c7107f70", name: "start" }), h("input", { key: "0898e8ec5af57c7ba8ad227164f7955ef4011729", id: "input", ref: (element) => this.input = element, role: "combobox", "aria-autocomplete": "list", "aria-expanded": String(this.expanded), "aria-controls": "listbox", "aria-activedescendant": this.expanded && this.active >= 0 ? `option-${this.active}` : void 0, "aria-describedby": description, "aria-invalid": String(this.validation.status === "error"), "aria-busy": String(this.validation.status === "pending"), value: this.display, placeholder: this.placeholder, name: this.name || void 0, disabled: this.disabled, readOnly: this.readOnly, required: this.required, autoComplete: "off", part: "input", onInput: this.onInput, onKeyDown: this.onKeydown, onCompositionstart: () => this.composing = true, onCompositionend: () => {
516
540
  this.composing = false;
517
541
  this.onInput(new InputEvent("input"));
518
- } }), this.clearable && h("button", { key: "ab180bacc7f5232eb517b7fed9bee0d62a4b1156", type: "button", part: "affordance", "aria-label": `Clear ${this.label}`, disabled: this.disabled || this.readOnly, onClick: () => {
542
+ } }), this.clearable && h("button", { key: "f9a49484ae9bcc4ace72a46d0c59202040ff39d8", type: "button", part: "affordance", "aria-label": `Clear ${this.label}`, disabled: this.disabled || this.readOnly, onClick: () => {
519
543
  this.commit(null, "", null, "clear", "pointer");
520
544
  this.close();
521
545
  this.input?.focus();
522
- } }, "\xD7"), this.help && h("button", { key: "b4ea9b44c9e22eb9ac259fb67b86368eede2b13f", id: "help", type: "button", part: "affordance", "aria-label": `Help for ${this.label}`, disabled: this.disabled }, h("span", { key: "36222d7a98a4f6abb12f785e9b4f28c2479a4e37", "aria-hidden": "true" }, "?")), this.disclosure && h("button", { key: "1d8757b7c817575b6915d0e8c164e20776df83e5", type: "button", part: "affordance", "aria-label": `Suggestions for ${this.label}`, "aria-controls": "listbox", "aria-expanded": String(this.expanded), disabled: this.disabled || this.readOnly, onClick: () => {
546
+ } }, "\xD7"), this.help && h("button", { key: "597106eda4dcc68aa9fb2eaa99c1edad0d68a892", id: "help", type: "button", part: "affordance", "aria-label": `Help for ${this.label}`, disabled: this.disabled }, h("span", { key: "d26085a52b16d65e26dc20ef8afacb5defec5f7b", "aria-hidden": "true" }, "?")), this.disclosure && h("button", { key: "391d1c987eb8e868b2846eafd0627cfc78ab7478", type: "button", part: "affordance", "aria-label": `Suggestions for ${this.label}`, "aria-controls": "listbox", "aria-expanded": String(this.expanded), disabled: this.disabled || this.readOnly, onClick: () => {
523
547
  if (this.expanded)
524
548
  this.close();
525
549
  else
526
550
  this.open("disclosure");
527
551
  this.input?.focus();
528
- } }, h("span", { key: "cd2dad7694dc24104521a58d4182d6e866f54095", "aria-hidden": "true" }, "\u2304"))), this.help && h("ui-tooltip", { key: "5e0eecd828a0e82d94b0be5b5f3233cddca4a87b", id: "help-text", for: "help", toggleOnClick: true, onOpen: () => this.helpOpen = true, onClose: () => this.helpOpen = false }, this.help), h("div", { key: "694902d8c8f58664838a943e0e2c14c856be9a08", class: "popup", part: "popup", hidden: !this.expanded, ref: (element) => this.popup = element }, h("div", { key: "81b18e296151afde18c47492aa997bdd13d553bc", id: "listbox", role: "listbox", "aria-label": `${this.label} suggestions`, "aria-busy": String(this.loading) }, groups.map((group) => h("div", { role: group ? "group" : "presentation", "aria-label": group || void 0 }, group && h("div", { class: "group", part: "group" }, group), this.rows.map((row, index) => (row.group ?? "") !== group ? null : h("div", { id: `option-${index}`, role: "option", "aria-selected": String(this.selected === row.value), "aria-disabled": String(Boolean(row.disabled)), "data-active": this.active === index ? "" : void 0, part: "option", class: "option", onPointerDown: (event) => event.preventDefault(), onClick: () => this.choose(index, "pointer") }, h("slot", { name: `option-${row.id}` }, h("span", { class: "primary", part: "option-primary" }, row.label), row.description && h("span", { class: "secondary", part: "option-secondary" }, row.description)))))), this.canCreate && h("div", { key: "dbf87523b5c6f17aedf15295d9703557f2d31524", id: `option-${this.rows.length}`, role: "option", "aria-selected": "false", class: "option", part: "option", "data-active": this.active === this.rows.length ? "" : void 0, onPointerDown: (event) => event.preventDefault(), onClick: () => this.choose(this.rows.length, "pointer") }, h("slot", { key: "bd4bdd2b132de7f72c1e5450fb0c0d16254aeedb", name: "create" }, "Create \u201C", this.raw, "\u201D"))), this.loading ? h("div", { class: "message" }, h("slot", { name: "loading" }, "Loading suggestions\u2026")) : this.lookupError ? h("div", { class: "message" }, h("slot", { name: "error" }, this.lookupError)) : !this.rows.length && !this.canCreate ? h("div", { class: "message" }, h("slot", { name: "empty" }, "No suggestions.")) : null), h("div", { key: "0d39fb1acb6d65307fabc3f502785a19710dc4af", id: "validation", class: "message", part: "validation", hidden: !this.validation.issues.length }, this.validation.issues.map((issue) => h("div", null, issue.message))), h("div", { key: "a83334d72b90ca0f411e6161a8bf5e2e8c2e33a8", class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" }, status, " ", this.validation.status === "pending" ? "Checking value\u2026" : this.validation.issues.map((issue) => issue.message).join(" ")));
552
+ } }, h("span", { key: "45678ce468fd7944306d4542e3c6af0fe211af14", "aria-hidden": "true" }, "\u2304"))), this.help && h("ui-tooltip", { key: "a8dc037639a60aff5a12b4651ffa10fc5ccd33eb", id: "help-text", for: "help", toggleOnClick: true, onOpen: () => this.helpOpen = true, onClose: () => this.helpOpen = false }, this.help), h("div", { key: "f13fc7a11c3d22995035b6701ea24637a048a5b8", class: "popup", part: "popup", hidden: !this.expanded, ref: (element) => this.popup = element }, h("div", { key: "9d2bdfcc558f8e7de87f2915ea5607a8f32c1762", id: "listbox", role: "listbox", "aria-label": `${this.label} suggestions`, "aria-busy": String(this.loading) }, groups.map((group) => h("div", { role: group ? "group" : "presentation", "aria-label": group || void 0 }, group && h("div", { class: "group", part: "group" }, group), this.rows.map((row, index) => (row.group ?? "") !== group ? null : h("div", { id: `option-${index}`, role: "option", "aria-selected": String(this.selected === row.value), "aria-disabled": String(Boolean(row.disabled)), "data-active": this.active === index ? "" : void 0, part: "option", class: "option", onPointerDown: (event) => event.preventDefault(), onClick: () => this.choose(index, "pointer") }, h("slot", { name: `option-${row.id}` }, h("span", { class: "primary", part: "option-primary" }, row.label), row.description && h("span", { class: "secondary", part: "option-secondary" }, row.description)))))), this.canCreate && h("div", { key: "9495fd43a721c84621b8083cb8eac776f843ab59", id: `option-${this.rows.length}`, role: "option", "aria-selected": "false", class: "option", part: "option", "data-active": this.active === this.rows.length ? "" : void 0, onPointerDown: (event) => event.preventDefault(), onClick: () => this.choose(this.rows.length, "pointer") }, h("slot", { key: "f0407c5622dcf3b325985c136657f8b9ac8a4ab5", name: "create" }, "Create \u201C", this.raw, "\u201D"))), this.loading ? h("div", { class: "message" }, h("slot", { name: "loading" }, "Loading suggestions\u2026")) : this.lookupError ? h("div", { class: "message" }, h("slot", { name: "error" }, this.lookupError)) : !this.rows.length && !this.canCreate ? h("div", { class: "message" }, h("slot", { name: "empty" }, "No suggestions.")) : null, h("slot", { key: "efcaee3efb029a9e0bb4e033ab61b251331c1c93", name: "footer" })), h("div", { key: "b44ccb319f94ebc9e6ac3204a8c1771d49485a58", id: "validation", class: "message", part: "validation", hidden: !this.validation.issues.length }, this.validation.issues.map((issue) => h("div", null, issue.message))), h("div", { key: "c3cb51dd4603734af4c7a02d8fe0bb42ac69083a", class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" }, status, " ", this.validation.status === "pending" ? "Checking value\u2026" : this.validation.issues.map((issue) => issue.message).join(" ")));
529
553
  }
530
554
  static get watchers() {
531
555
  return {
@@ -549,5 +573,6 @@ var UICombobox = class {
549
573
  };
550
574
  UICombobox.style = uiComboboxCss();
551
575
  export {
576
+ UIChip as ui_chip,
552
577
  UICombobox as ui_combobox
553
578
  };
@@ -14,7 +14,7 @@ import {
14
14
  getElement,
15
15
  h,
16
16
  registerInstance
17
- } from "./chunk-IMHSPETJ.js";
17
+ } from "./chunk-XRJRF3MM.js";
18
18
 
19
19
  // dist/esm/ui-context-menu.entry.js
20
20
  var uiContextMenuCss = () => `:host{display:contents}:host([data-focus-trigger='pointer']) ::slotted(ui-menu-item:focus){outline:none}.menu{position:fixed;inset:auto;margin:0;z-index:var(--ui-z-overlay, 1000);min-width:12rem;opacity:0;transform:translateY(-4px) scale(0.99);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}.menu:popover-open{opacity:1;transform:translateY(0) scale(1)}@starting-style{.menu:popover-open{opacity:0;transform:translateY(-4px) scale(0.99)}}.menu[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){.menu{transition:none}}`;
@@ -226,7 +226,7 @@ var UIContextMenu = class {
226
226
  this.closeMenu("action", "pointer");
227
227
  };
228
228
  render() {
229
- return h(Host, { key: "5d927f41a72e680ad6d6d4a3fa0c913360cb8660", "data-open": this.internalOpen ? "" : void 0, "data-focus-trigger": this.internalOpen ? this.focusTrigger : void 0, onKeyDown: this.onKeydown, onClick: this.onItemClick }, h("slot", { key: "e5b1ec05d96093671fb839e3b81ddefb730575e1", name: "trigger" }), h("div", { key: "a0c4a8ca50bcca2b7d3ee53b4c26db054af93151", class: "menu", "data-open": this.internalOpen ? "" : void 0 }, h("ui-menu", { key: "ac03b9dc3fa56d0cbb28115060726de4500a668b", open: this.internalOpen }, h("slot", { key: "f2d8484cb9fb3956a3a5979795633a74d423577d" }))));
229
+ return h(Host, { key: "171e647667bab4a9f905f2b531aa2db182fc426f", "data-open": this.internalOpen ? "" : void 0, "data-focus-trigger": this.internalOpen ? this.focusTrigger : void 0, onKeyDown: this.onKeydown, onClick: this.onItemClick }, h("slot", { key: "f1a15e54ab3b14515553e05b4b3cf60ed7a99f8b", name: "trigger" }), h("div", { key: "450aaacf3f75a71ecce86300c0d824452ceec4a0", class: "menu", "data-open": this.internalOpen ? "" : void 0 }, h("ui-menu", { key: "667003b7c6ab3ccbaa888b25cb87d921036ab827", open: this.internalOpen }, h("slot", { key: "c0731115bc3dbd02c4125ef8208269dd97e124bf" }))));
230
230
  }
231
231
  static get watchers() {
232
232
  return {