@threadlabs/looma 0.1.24 → 0.1.25

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-UY423IKN.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 +158 -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 +503 -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 +156 -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 +339 -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-314d5c7c.entry.js → p-0e1741cb.entry.js} +1 -1
  132. package/dist/looma/{p-bd00d4e8.entry.js → p-0ef4bf13.entry.js} +1 -1
  133. package/dist/looma/{p-8e254bc4.entry.js → p-166f8593.entry.js} +1 -1
  134. package/dist/looma/p-262a542c.entry.js +1 -0
  135. package/dist/looma/{p-672e3d16.entry.js → p-26d357ae.entry.js} +1 -1
  136. package/dist/looma/{p-b63f6d4f.entry.js → p-30f01909.entry.js} +1 -1
  137. package/dist/looma/p-393e3e02.entry.js +1 -0
  138. package/dist/looma/p-3a44b9f9.entry.js +1 -0
  139. package/dist/looma/{p-fd1e4d22.entry.js → p-558d4f5b.entry.js} +1 -1
  140. package/dist/looma/{p-25e18ad6.entry.js → p-5780cefa.entry.js} +1 -1
  141. package/dist/looma/p-5a7261e1.entry.js +1 -0
  142. package/dist/looma/{p-03f44c45.entry.js → p-7319c147.entry.js} +1 -1
  143. package/dist/looma/{p-f1750fd7.entry.js → p-78b7e466.entry.js} +1 -1
  144. package/dist/looma/{p-7c4a225f.entry.js → p-7eb04f09.entry.js} +1 -1
  145. package/dist/looma/{p-e0f241ab.entry.js → p-81c533f5.entry.js} +1 -1
  146. package/dist/looma/{p-8e6b1001.entry.js → p-87f501cf.entry.js} +1 -1
  147. package/dist/looma/{p-cc915913.entry.js → p-89e71bbb.entry.js} +1 -1
  148. package/dist/looma/{p-a63e2561.entry.js → p-92cd1841.entry.js} +1 -1
  149. package/dist/looma/{p-5a900d89.entry.js → p-95eb3b58.entry.js} +1 -1
  150. package/dist/looma/{p-839faf55.entry.js → p-96ec4d7a.entry.js} +1 -1
  151. package/dist/looma/p-b6c776fb.entry.js +1 -0
  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 +47 -0
  161. package/dist/types/components.d.ts +234 -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-VSSP52ZP.js} +1 -1
  165. package/dist/{ui-avatar-group.entry-XGJKN25W.js → ui-avatar-group.entry-JMCLL6FW.js} +1 -1
  166. package/dist/{ui-avatar.entry-SN3G44HW.js → ui-avatar.entry-X2YQ3QPG.js} +1 -1
  167. package/dist/{ui-badge.entry-B6WDCWJX.js → ui-badge.entry-OJ6FJJKL.js} +1 -1
  168. package/dist/{ui-button.entry-AZYUELLV.js → ui-button.entry-ZN6JLND7.js} +1 -1
  169. package/dist/{ui-callout.entry-QRPWRMPC.js → ui-callout.entry-7K6NXQ7U.js} +1 -1
  170. package/dist/{ui-checkbox.entry-OB6GFC4M.js → ui-checkbox.entry-GUYRVU6O.js} +1 -1
  171. package/dist/{ui-combobox.entry-IIMMUJF7.js → ui-chip_2.entry-M2DOTIGY.js} +32 -7
  172. package/dist/{ui-context-menu.entry-AIULIE5Y.js → ui-context-menu.entry-BM7FHOUJ.js} +2 -2
  173. package/dist/{ui-dialog.entry-QSYWYHLY.js → ui-dialog.entry-AZAD37CG.js} +2 -2
  174. package/dist/{ui-disclosure.entry-3BJEYU3U.js → ui-disclosure.entry-XDPGKMBK.js} +2 -2
  175. package/dist/ui-editable.entry-S3TE6KFT.js +110 -0
  176. package/dist/{ui-floating-action-button.entry-JEVNV6FI.js → ui-floating-action-button.entry-U7HGA3CS.js} +2 -2
  177. package/dist/{ui-form-field.entry-PKSY7UU4.js → ui-form-field.entry-C2ZSP3TM.js} +2 -2
  178. package/dist/{ui-icon-button.entry-TPX7BE7R.js → ui-icon-button.entry-P6H2LY7D.js} +2 -2
  179. package/dist/{ui-input.entry-6NCLNW4E.js → ui-input.entry-GTNQJCQ2.js} +2 -2
  180. package/dist/{ui-menu-item.entry-KA2K3PKV.js → ui-menu-item.entry-2HWOGUO5.js} +2 -2
  181. package/dist/{ui-menu.entry-7GDO5L2T.js → ui-menu.entry-NZ7ER54K.js} +2 -2
  182. package/dist/ui-multi-combobox.entry-DZ5LLSVQ.js +167 -0
  183. package/dist/{ui-popover.entry-FR6YRNK6.js → ui-popover.entry-ZOEQMUWG.js} +2 -2
  184. package/dist/{ui-radio-group.entry-7QHXQSNO.js → ui-radio-group.entry-QCQ46EK5.js} +2 -2
  185. package/dist/{ui-radio.entry-YNMXKLDW.js → ui-radio.entry-QAATWUYT.js} +2 -2
  186. package/dist/{ui-search-result-row.entry-AHVVAAIO.js → ui-search-result-row.entry-2I3DH2OT.js} +2 -2
  187. package/dist/{ui-search-shell.entry-CNBEAMEZ.js → ui-search-shell.entry-7RS55ORF.js} +2 -2
  188. package/dist/{ui-select.entry-TUY6TCTC.js → ui-select.entry-6O4KD4G7.js} +2 -2
  189. package/dist/{ui-switch.entry-26LFI7B5.js → ui-switch.entry-DY5PSHCQ.js} +3 -3
  190. package/dist/{ui-tabs.entry-LXB62RJJ.js → ui-tabs.entry-6X56UOUE.js} +2 -2
  191. package/dist/{ui-textarea.entry-JYGMGPX2.js → ui-textarea.entry-RDYP6O77.js} +2 -2
  192. package/dist/{ui-toast-region.entry-TOW4KZLZ.js → ui-toast-region.entry-EBY42KS5.js} +2 -2
  193. package/dist/{ui-tooltip.entry-SKFNYXPH.js → ui-tooltip.entry-PLXMPOKV.js} +2 -2
  194. package/dist/{ui-top-bar.entry-S3YP52EA.js → ui-top-bar.entry-QKE2DLVD.js} +2 -2
  195. package/dist/{ui-tree-item.entry-LWYIPYLC.js → ui-tree-item.entry-TC6YWIC6.js} +3 -3
  196. package/dist/{ui-tree.entry-LXKUQFRU.js → ui-tree.entry-UL6UHCUT.js} +2 -2
  197. package/package.json +1 -1
  198. package/vue/{chunk-D4AJULDE.js → chunk-GXQY27K2.js} +84 -1
  199. package/vue/editor/index.js +1 -1
  200. package/vue/index.d.ts +118 -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,49 @@ 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
+ }
330
408
  interface UiPopover {
331
409
  /**
332
410
  * @default false
@@ -603,6 +681,14 @@ export interface UiComboboxCustomEvent<T> extends CustomEvent<T> {
603
681
  detail: T;
604
682
  target: HTMLUiComboboxElement;
605
683
  }
684
+ export interface UiEditableCustomEvent<T> extends CustomEvent<T> {
685
+ detail: T;
686
+ target: HTMLUiEditableElement;
687
+ }
688
+ export interface UiMultiComboboxCustomEvent<T> extends CustomEvent<T> {
689
+ detail: T;
690
+ target: HTMLUiMultiComboboxElement;
691
+ }
606
692
  export interface UiTooltipCustomEvent<T> extends CustomEvent<T> {
607
693
  detail: T;
608
694
  target: HTMLUiTooltipElement;
@@ -706,6 +792,26 @@ declare global {
706
792
  prototype: HTMLUiDisclosureElement;
707
793
  new (): HTMLUiDisclosureElement;
708
794
  };
795
+ interface HTMLUiEditableElementEventMap {
796
+ "edit-change": EditableChange;
797
+ }
798
+ /**
799
+ * Swaps an explicit presentation trigger for a focused editing control.
800
+ */
801
+ interface HTMLUiEditableElement extends Components.UiEditable, HTMLStencilElement {
802
+ addEventListener<K extends keyof HTMLUiEditableElementEventMap>(type: K, listener: (this: HTMLUiEditableElement, ev: UiEditableCustomEvent<HTMLUiEditableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
803
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
804
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
805
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
806
+ removeEventListener<K extends keyof HTMLUiEditableElementEventMap>(type: K, listener: (this: HTMLUiEditableElement, ev: UiEditableCustomEvent<HTMLUiEditableElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
807
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
808
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
809
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
810
+ }
811
+ var HTMLUiEditableElement: {
812
+ prototype: HTMLUiEditableElement;
813
+ new (): HTMLUiEditableElement;
814
+ };
709
815
  interface HTMLUiFloatingActionButtonElement extends Components.UiFloatingActionButton, HTMLStencilElement {
710
816
  }
711
817
  var HTMLUiFloatingActionButtonElement: {
@@ -742,6 +848,30 @@ declare global {
742
848
  prototype: HTMLUiMenuItemElement;
743
849
  new (): HTMLUiMenuItemElement;
744
850
  };
851
+ interface HTMLUiMultiComboboxElementEventMap {
852
+ "query-change": { query: string; display: string; trigger: 'keyboard' | 'pointer' | 'programmatic' };
853
+ "add-item": MultiComboboxItemChange;
854
+ "remove-item": MultiComboboxItemChange;
855
+ "create-item": MultiComboboxCreate;
856
+ "options-change": readonly ComboboxOption[];
857
+ }
858
+ /**
859
+ * A multi-value combobox with removable, customizable selected items.
860
+ */
861
+ interface HTMLUiMultiComboboxElement extends Components.UiMultiCombobox, HTMLStencilElement {
862
+ addEventListener<K extends keyof HTMLUiMultiComboboxElementEventMap>(type: K, listener: (this: HTMLUiMultiComboboxElement, ev: UiMultiComboboxCustomEvent<HTMLUiMultiComboboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
863
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
864
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
865
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
866
+ removeEventListener<K extends keyof HTMLUiMultiComboboxElementEventMap>(type: K, listener: (this: HTMLUiMultiComboboxElement, ev: UiMultiComboboxCustomEvent<HTMLUiMultiComboboxElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
867
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
868
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
869
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
870
+ }
871
+ var HTMLUiMultiComboboxElement: {
872
+ prototype: HTMLUiMultiComboboxElement;
873
+ new (): HTMLUiMultiComboboxElement;
874
+ };
745
875
  interface HTMLUiPopoverElement extends Components.UiPopover, HTMLStencilElement {
746
876
  }
747
877
  var HTMLUiPopoverElement: {
@@ -851,12 +981,14 @@ declare global {
851
981
  "ui-context-menu": HTMLUiContextMenuElement;
852
982
  "ui-dialog": HTMLUiDialogElement;
853
983
  "ui-disclosure": HTMLUiDisclosureElement;
984
+ "ui-editable": HTMLUiEditableElement;
854
985
  "ui-floating-action-button": HTMLUiFloatingActionButtonElement;
855
986
  "ui-form-field": HTMLUiFormFieldElement;
856
987
  "ui-icon-button": HTMLUiIconButtonElement;
857
988
  "ui-input": HTMLUiInputElement;
858
989
  "ui-menu": HTMLUiMenuElement;
859
990
  "ui-menu-item": HTMLUiMenuItemElement;
991
+ "ui-multi-combobox": HTMLUiMultiComboboxElement;
860
992
  "ui-popover": HTMLUiPopoverElement;
861
993
  "ui-radio": HTMLUiRadioElement;
862
994
  "ui-radio-group": HTMLUiRadioGroupElement;
@@ -968,6 +1100,11 @@ declare namespace LocalJSX {
968
1100
  * @default 'tag'
969
1101
  */
970
1102
  "appearance"?: 'tag' | 'pill';
1103
+ /**
1104
+ * Compact typography size.
1105
+ * @default 'xs'
1106
+ */
1107
+ "size"?: 'xs' | 'sm';
971
1108
  }
972
1109
  /**
973
1110
  * A single editable field with contextual suggestions, optional help and field validation.
@@ -1005,6 +1142,11 @@ declare namespace LocalJSX {
1005
1142
  * @default ''
1006
1143
  */
1007
1144
  "label"?: string;
1145
+ /**
1146
+ * Keep the native label accessible while allowing compact composed controls.
1147
+ * @default 'visible'
1148
+ */
1149
+ "labelVisibility"?: 'visible' | 'sr-only';
1008
1150
  /**
1009
1151
  * @default ''
1010
1152
  */
@@ -1096,6 +1238,24 @@ declare namespace LocalJSX {
1096
1238
  */
1097
1239
  "open"?: boolean;
1098
1240
  }
1241
+ /**
1242
+ * Swaps an explicit presentation trigger for a focused editing control.
1243
+ */
1244
+ interface UiEditable {
1245
+ /**
1246
+ * @default false
1247
+ */
1248
+ "defaultEdit"?: boolean;
1249
+ /**
1250
+ * @default false
1251
+ */
1252
+ "disabled"?: boolean;
1253
+ /**
1254
+ * Controlled edit state. Omit it to use defaultEdit and local interaction state.
1255
+ */
1256
+ "edit"?: boolean;
1257
+ "onEdit-change"?: (event: UiEditableCustomEvent<EditableChange>) => void;
1258
+ }
1099
1259
  interface UiFloatingActionButton {
1100
1260
  /**
1101
1261
  * @default false
@@ -1195,6 +1355,53 @@ declare namespace LocalJSX {
1195
1355
  */
1196
1356
  "value"?: string;
1197
1357
  }
1358
+ /**
1359
+ * A multi-value combobox with removable, customizable selected items.
1360
+ */
1361
+ interface UiMultiCombobox {
1362
+ /**
1363
+ * @default {}
1364
+ */
1365
+ "config"?: ComboboxConfig;
1366
+ /**
1367
+ * @default ''
1368
+ */
1369
+ "defaultQuery"?: string;
1370
+ /**
1371
+ * @default false
1372
+ */
1373
+ "disabled"?: boolean;
1374
+ /**
1375
+ * @default []
1376
+ */
1377
+ "items"?: readonly MultiComboboxItem[];
1378
+ /**
1379
+ * @default ''
1380
+ */
1381
+ "label"?: string;
1382
+ /**
1383
+ * @default ''
1384
+ */
1385
+ "name"?: string;
1386
+ "onAdd-item"?: (event: UiMultiComboboxCustomEvent<MultiComboboxItemChange>) => void;
1387
+ "onCreate-item"?: (event: UiMultiComboboxCustomEvent<MultiComboboxCreate>) => void;
1388
+ "onOptions-change"?: (event: UiMultiComboboxCustomEvent<readonly ComboboxOption[]>) => void;
1389
+ "onQuery-change"?: (event: UiMultiComboboxCustomEvent<{ query: string; display: string; trigger: 'keyboard' | 'pointer' | 'programmatic' }>) => void;
1390
+ "onRemove-item"?: (event: UiMultiComboboxCustomEvent<MultiComboboxItemChange>) => void;
1391
+ /**
1392
+ * @default ''
1393
+ */
1394
+ "placeholder"?: string;
1395
+ "query"?: string;
1396
+ /**
1397
+ * @default false
1398
+ */
1399
+ "readOnly"?: boolean;
1400
+ /**
1401
+ * @default false
1402
+ */
1403
+ "required"?: boolean;
1404
+ }
1198
1405
  interface UiPopover {
1199
1406
  /**
1200
1407
  * @default false
@@ -1504,6 +1711,7 @@ declare namespace LocalJSX {
1504
1711
  }
1505
1712
  interface UiChipAttributes {
1506
1713
  "appearance": 'tag' | 'pill';
1714
+ "size": 'xs' | 'sm';
1507
1715
  }
1508
1716
  interface UiComboboxAttributes {
1509
1717
  "label": string;
@@ -1517,6 +1725,7 @@ declare namespace LocalJSX {
1517
1725
  "readOnly": boolean;
1518
1726
  "required": boolean;
1519
1727
  "size": 'sm' | 'md';
1728
+ "labelVisibility": 'visible' | 'sr-only';
1520
1729
  "disclosure": boolean;
1521
1730
  "clearable": boolean;
1522
1731
  "help": string;
@@ -1538,6 +1747,11 @@ declare namespace LocalJSX {
1538
1747
  "defaultOpen": boolean;
1539
1748
  "disabled": boolean;
1540
1749
  }
1750
+ interface UiEditableAttributes {
1751
+ "edit": boolean;
1752
+ "defaultEdit": boolean;
1753
+ "disabled": boolean;
1754
+ }
1541
1755
  interface UiFloatingActionButtonAttributes {
1542
1756
  "disabled": boolean;
1543
1757
  "mobileOnly": boolean;
@@ -1572,6 +1786,16 @@ declare namespace LocalJSX {
1572
1786
  "disabled": boolean;
1573
1787
  "value": string;
1574
1788
  }
1789
+ interface UiMultiComboboxAttributes {
1790
+ "label": string;
1791
+ "placeholder": string;
1792
+ "query": string;
1793
+ "defaultQuery": string;
1794
+ "disabled": boolean;
1795
+ "readOnly": boolean;
1796
+ "required": boolean;
1797
+ "name": string;
1798
+ }
1575
1799
  interface UiPopoverAttributes {
1576
1800
  "open": boolean;
1577
1801
  "defaultOpen": boolean;
@@ -1670,12 +1894,14 @@ declare namespace LocalJSX {
1670
1894
  "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
1895
  "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
1896
  "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] };
1897
+ "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
1898
  "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
1899
  "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
1900
  "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
1901
  "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
1902
  "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
1903
  "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] };
1904
+ "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
1905
  "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
1906
  "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
1907
  "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 +1943,20 @@ declare module "@stencil/core" {
1717
1943
  "ui-context-menu": LocalJSX.IntrinsicElements["ui-context-menu"] & JSXBase.HTMLAttributes<HTMLUiContextMenuElement>;
1718
1944
  "ui-dialog": LocalJSX.IntrinsicElements["ui-dialog"] & JSXBase.HTMLAttributes<HTMLUiDialogElement>;
1719
1945
  "ui-disclosure": LocalJSX.IntrinsicElements["ui-disclosure"] & JSXBase.HTMLAttributes<HTMLUiDisclosureElement>;
1946
+ /**
1947
+ * Swaps an explicit presentation trigger for a focused editing control.
1948
+ */
1949
+ "ui-editable": LocalJSX.IntrinsicElements["ui-editable"] & JSXBase.HTMLAttributes<HTMLUiEditableElement>;
1720
1950
  "ui-floating-action-button": LocalJSX.IntrinsicElements["ui-floating-action-button"] & JSXBase.HTMLAttributes<HTMLUiFloatingActionButtonElement>;
1721
1951
  "ui-form-field": LocalJSX.IntrinsicElements["ui-form-field"] & JSXBase.HTMLAttributes<HTMLUiFormFieldElement>;
1722
1952
  "ui-icon-button": LocalJSX.IntrinsicElements["ui-icon-button"] & JSXBase.HTMLAttributes<HTMLUiIconButtonElement>;
1723
1953
  "ui-input": LocalJSX.IntrinsicElements["ui-input"] & JSXBase.HTMLAttributes<HTMLUiInputElement>;
1724
1954
  "ui-menu": LocalJSX.IntrinsicElements["ui-menu"] & JSXBase.HTMLAttributes<HTMLUiMenuElement>;
1725
1955
  "ui-menu-item": LocalJSX.IntrinsicElements["ui-menu-item"] & JSXBase.HTMLAttributes<HTMLUiMenuItemElement>;
1956
+ /**
1957
+ * A multi-value combobox with removable, customizable selected items.
1958
+ */
1959
+ "ui-multi-combobox": LocalJSX.IntrinsicElements["ui-multi-combobox"] & JSXBase.HTMLAttributes<HTMLUiMultiComboboxElement>;
1726
1960
  "ui-popover": LocalJSX.IntrinsicElements["ui-popover"] & JSXBase.HTMLAttributes<HTMLUiPopoverElement>;
1727
1961
  "ui-radio": LocalJSX.IntrinsicElements["ui-radio"] & JSXBase.HTMLAttributes<HTMLUiRadioElement>;
1728
1962
  "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-UY423IKN.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-UY423IKN.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-UY423IKN.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-UY423IKN.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-UY423IKN.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-UY423IKN.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-UY423IKN.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-UY423IKN.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-UY423IKN.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 {