@threadlabs/looma 0.37.5 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/components/ui-button/ui-button.html +20 -5
  2. package/components/ui-combobox/ui-combobox.html +24 -3
  3. package/components/ui-combobox/ui-combobox.js +18 -3
  4. package/components/ui-icon-button/ui-icon-button.html +17 -8
  5. package/components/ui-menu-item/ui-menu-item.html +6 -1
  6. package/components/ui-select/ui-select.html +12 -0
  7. package/components/ui-skeleton/ui-skeleton.html +91 -0
  8. package/dist/index.js +1 -1
  9. package/docs/README.md +23 -10
  10. package/docs/catalog.json +246 -31
  11. package/docs/customizer-render.mjs +36 -20
  12. package/docs/customizer.js +76 -25
  13. package/docs/documentation.css +2 -0
  14. package/docs/palette.mjs +3 -3
  15. package/docs/site.mjs +1 -1
  16. package/docs/theme-session.mjs +1 -0
  17. package/docs/theme.mjs +11 -10
  18. package/package.json +2 -2
  19. package/styles/ui-button.css +19 -9
  20. package/styles/ui-combobox.css +40 -2
  21. package/styles/ui-icon-button.css +12 -2
  22. package/styles/ui-menu-item.css +6 -1
  23. package/styles/ui-select.css +9 -0
  24. package/styles/ui-skeleton.css +91 -0
  25. package/theme-system.css +7 -2
  26. package/vanilla/UiButton.js +1 -1
  27. package/vanilla/UiCombobox.d.ts +1 -0
  28. package/vanilla/UiCombobox.js +38 -37
  29. package/vanilla/UiIconButton.d.ts +1 -1
  30. package/vanilla/UiIconButton.js +1 -1
  31. package/vanilla/UiSelect.d.ts +1 -0
  32. package/vanilla/UiSelect.js +7 -7
  33. package/vanilla/UiSkeleton.d.ts +26 -0
  34. package/vanilla/UiSkeleton.js +42 -0
  35. package/vanilla/index.js +1 -0
  36. package/vue/UiButton.vue +30 -12
  37. package/vue/UiCombobox.d.ts +6 -0
  38. package/vue/UiCombobox.vue +70 -6
  39. package/vue/UiIconButton.d.ts +2 -2
  40. package/vue/UiIconButton.vue +23 -18
  41. package/vue/UiMenuItem.vue +6 -1
  42. package/vue/UiSelect.d.ts +6 -0
  43. package/vue/UiSelect.vue +30 -1
  44. package/vue/UiSkeleton.d.ts +37 -0
  45. package/vue/UiSkeleton.js +2 -0
  46. package/vue/UiSkeleton.vue +235 -0
  47. package/vue/chunks/UiButton.js +4 -4
  48. package/vue/chunks/UiCombobox.js +72 -46
  49. package/vue/chunks/UiIconButton.js +6 -7
  50. package/vue/chunks/UiMenuItem.js +1 -1
  51. package/vue/chunks/UiSelect.js +27 -2
  52. package/vue/chunks/UiSkeleton.js +151 -0
  53. package/vue/components.css +197 -25
  54. package/vue/editor/index.js +2 -3
  55. package/vue/index.d.ts +1 -0
  56. package/vue/index.js +2 -1
@@ -0,0 +1,235 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.69 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed, watchSyncEffect } from 'vue'
4
+ import type { PropType } from 'vue'
5
+ import { checkHydratedRoot, nativeAttrs, useReflectedProp } from './host'
6
+ import {
7
+ BINDING_INPUTS_PROP,
8
+ checkedProp,
9
+ checkPropInput,
10
+ type InputBindings,
11
+ READY_INPUT,
12
+ requireInputStatus,
13
+ UNRESOLVED_INPUT,
14
+ vPropValidity,
15
+ vuePropInputs,
16
+ } from './props'
17
+
18
+ defineOptions({ inheritAttrs: false })
19
+
20
+ const propValidityContract = {
21
+ props: {
22
+ animated: {
23
+ type: { kind: 'terminal', name: 'boolean' },
24
+ required: false,
25
+ target: { attribute: 'animated' },
26
+ description:
27
+ 'Gently pulses the placeholder. Off by default, and always still when the reader requests reduced motion.',
28
+ default: false,
29
+ },
30
+ height: {
31
+ type: { kind: 'terminal', name: 'string' },
32
+ required: false,
33
+ target: { attribute: 'height' },
34
+ description:
35
+ 'Block size as a CSS length. Empty reserves one line for text, a square for circles, or 8rem for rectangles. Set only width to keep a circle square.',
36
+ default: '',
37
+ },
38
+ shape: {
39
+ type: { kind: 'terminal', name: 'keyword' },
40
+ required: false,
41
+ target: { attribute: 'shape' },
42
+ description:
43
+ 'The content\'s silhouette. text reserves one inherited line box with a shorter bar inside it; circle matches a medium Avatar; rectangle reserves a media\n area.',
44
+ values: ['text', 'circle', 'rectangle'],
45
+ default: 'text',
46
+ },
47
+ width: {
48
+ type: { kind: 'terminal', name: 'string' },
49
+ required: false,
50
+ target: { attribute: 'width' },
51
+ description:
52
+ 'Inline size as a CSS length or percentage, constrained to the container. Empty fills the available width for text and rectangles, or matches a medium\n Avatar\'s outer size for circles.',
53
+ default: '',
54
+ },
55
+ },
56
+ } as const
57
+ const props = defineProps({
58
+ animated: { type: null as unknown as PropType<boolean | null> },
59
+ height: { type: null as unknown as PropType<string | null> },
60
+ shape: { type: null as unknown as PropType<'text' | 'circle' | 'rectangle' | null> },
61
+ width: { type: null as unknown as PropType<string | null> },
62
+ [BINDING_INPUTS_PROP]: { type: null as unknown as PropType<InputBindings> },
63
+ })
64
+ const acceptedProps: Record<string, unknown> = {
65
+ animated: false,
66
+ height: '',
67
+ shape: 'text',
68
+ width: '',
69
+ }
70
+ const inputTracking = vuePropInputs(acceptedProps, {
71
+ animated: false,
72
+ height: '',
73
+ shape: 'text',
74
+ width: '',
75
+ }, (name, value, source, values) => {
76
+ switch (name) {
77
+ case 'animated':
78
+ return checkPropInput(value, { kind: 'terminal', name: 'boolean' }, true, true)
79
+ case 'height':
80
+ return checkPropInput(value, { kind: 'terminal', name: 'string' }, true, true)
81
+ case 'shape':
82
+ return checkPropInput(value, { kind: 'terminal', name: 'keyword' }, true, true)
83
+ case 'width':
84
+ return checkPropInput(value, { kind: 'terminal', name: 'string' }, true, true)
85
+ default:
86
+ return { ok: false }
87
+ }
88
+ }, () => {
89
+ void checkedProps.value
90
+ })
91
+ const propInputs = inputTracking.inputs
92
+ const checkedProps = computed(() => {
93
+ void inputTracking.version.value
94
+ return ({
95
+ animated: propInputs.value<boolean | null>(
96
+ 'animated',
97
+ props['animated'],
98
+ props[BINDING_INPUTS_PROP],
99
+ ) as boolean,
100
+ height: propInputs.value<string | null>(
101
+ 'height',
102
+ props['height'],
103
+ props[BINDING_INPUTS_PROP],
104
+ ) as string,
105
+ shape: propInputs.value<'text' | 'circle' | 'rectangle' | null>(
106
+ 'shape',
107
+ props['shape'],
108
+ props[BINDING_INPUTS_PROP],
109
+ ) as 'text' | 'circle' | 'rectangle',
110
+ width: propInputs.value<string | null>(
111
+ 'width',
112
+ props['width'],
113
+ props[BINDING_INPUTS_PROP],
114
+ ) as string,
115
+ })
116
+ })
117
+ const inputStatus = (name: string, handlesError: boolean) => {
118
+ void checkedProps.value
119
+ void inputTracking.version.value
120
+ return requireInputStatus(propInputs.status(name), handlesError)
121
+ }
122
+ void checkedProps.value
123
+ watchSyncEffect(() => {
124
+ void checkedProps.value
125
+ })
126
+ const reflectedProp = useReflectedProp()
127
+
128
+ checkHydratedRoot('span', 'ui-skeleton')
129
+
130
+ /** The values the styles' :host() and :state() rules test. */
131
+ const hostState = computed(() =>
132
+ [
133
+ checkedProps.value.shape && 'shape',
134
+ checkedProps.value.shape != null && `shape=${encodeURIComponent(checkedProps.value.shape)}`,
135
+ checkedProps.value.animated && 'animated',
136
+ ].filter(Boolean).join(' ')
137
+ )
138
+ </script>
139
+
140
+ <template>
141
+ <span
142
+ class="ui-skeleton"
143
+ aria-hidden="true"
144
+ v-bind="nativeAttrs($attrs)"
145
+ data-hn
146
+ :style="{
147
+ '--ui-skeleton-width': checkedProps.width ?? undefined,
148
+ '--ui-skeleton-height': checkedProps.height ?? undefined,
149
+ }"
150
+ v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
151
+ :data-ui-skeleton-prop-animated="reflectedProp('animated', 'animated', checkedProps.animated, undefined, false)"
152
+ :data-ui-skeleton-prop-height="reflectedProp('height', 'height', checkedProps.height, undefined, false)"
153
+ :data-ui-skeleton-prop-shape="reflectedProp('shape', 'shape', checkedProps.shape, undefined, false)"
154
+ :data-ui-skeleton-prop-width="reflectedProp('width', 'width', checkedProps.width, undefined, false)"
155
+ :data-ui-skeleton-state="hostState || undefined"
156
+ ></span>
157
+ </template>
158
+
159
+ <style scoped>
160
+ /* Dimensions belong to this placeholder, never a nested or neighbouring one. */
161
+ @property --ui-skeleton-width {
162
+ syntax: "*";
163
+ inherits: false;
164
+ }
165
+ @property --ui-skeleton-height {
166
+ syntax: "*";
167
+ inherits: false;
168
+ }
169
+ @keyframes ui-skeleton-pulse {
170
+ 50% {
171
+ opacity: 0.45;
172
+ }
173
+ }
174
+ @scope (.ui-skeleton) to ([data-hn]) {
175
+ :global(:scope) {
176
+ display: block !important;
177
+ position: relative;
178
+ box-sizing: border-box !important;
179
+ flex: none;
180
+ min-inline-size: 0;
181
+ max-inline-size: 100%;
182
+ inline-size: var(--ui-skeleton-width, 100%);
183
+ block-size: var(--ui-skeleton-height, 1lh);
184
+ margin: 0 !important;
185
+ font: inherit;
186
+ }
187
+
188
+ :global(:scope::before) {
189
+ content: "";
190
+ position: absolute;
191
+ inset: 0;
192
+ border-radius: var(--ui-radius-sm);
193
+ background: color-mix(in srgb, var(--ui-text-primary) 16%, transparent);
194
+ }
195
+
196
+ :global(:scope[data-ui-skeleton-state~="shape=text"]::before) {
197
+ inset-block: 22%;
198
+ }
199
+
200
+ :global(:scope[data-ui-skeleton-state~="shape=circle"]) {
201
+ inline-size: var(--ui-skeleton-width, calc(2.5rem + 2 * var(--ui-border-width)));
202
+ block-size: var(--ui-skeleton-height, auto);
203
+ aspect-ratio: 1;
204
+ }
205
+ :global(:scope[data-ui-skeleton-state~="shape=circle"]::before) {
206
+ border-radius: var(--ui-radius-round);
207
+ }
208
+
209
+ :global(:scope[data-ui-skeleton-state~="shape=rectangle"]) {
210
+ block-size: var(--ui-skeleton-height, 8rem);
211
+ }
212
+ :global(:scope[data-ui-skeleton-state~="shape=rectangle"]::before) {
213
+ border-radius: var(--ui-radius-md);
214
+ }
215
+
216
+ :global(:scope[data-ui-skeleton-state~="animated"]::before) {
217
+ animation: ui-skeleton-pulse 1.6s ease-in-out infinite;
218
+ }
219
+ @media (prefers-reduced-motion: reduce) {
220
+ :global(:scope[data-ui-skeleton-state~="animated"]::before) {
221
+ animation: none;
222
+ }
223
+ }
224
+ @media (forced-colors: active) {
225
+ :global(:scope::before) {
226
+ background: CanvasText;
227
+ opacity: 0.2;
228
+ animation: none;
229
+ }
230
+ }
231
+ :global(:scope[hidden]) {
232
+ display: none !important;
233
+ }
234
+ }
235
+ </style>
@@ -335,7 +335,7 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
335
335
  "warning",
336
336
  "info"
337
337
  ],
338
- default: "accent"
338
+ default: "neutral"
339
339
  },
340
340
  type: {
341
341
  type: {
@@ -387,7 +387,7 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
387
387
  square: false,
388
388
  stretch: false,
389
389
  target: null,
390
- tone: "accent",
390
+ tone: "neutral",
391
391
  type: "button",
392
392
  variant: "outline"
393
393
  }, {
@@ -401,7 +401,7 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
401
401
  size: "md",
402
402
  square: false,
403
403
  stretch: false,
404
- tone: "accent",
404
+ tone: "neutral",
405
405
  type: "button",
406
406
  variant: "outline"
407
407
  }, (name, value, source, values) => {
@@ -894,6 +894,6 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
894
894
  }]]);
895
895
  };
896
896
  }
897
- }), [["__scopeId", "data-v-f04ec716"]]);
897
+ }), [["__scopeId", "data-v-1eb598b9"]]);
898
898
  //#endregion
899
899
  export { UiButton_default as t };
@@ -21,6 +21,7 @@ var _hoisted_1 = [
21
21
  "data-ui-combobox-prop-label-visibility",
22
22
  "data-ui-combobox-prop-loading",
23
23
  "data-ui-combobox-prop-multiple",
24
+ "data-ui-combobox-prop-muted",
24
25
  "data-ui-combobox-prop-name",
25
26
  "data-ui-combobox-prop-open-on-focus",
26
27
  "data-ui-combobox-prop-placeholder",
@@ -43,12 +44,16 @@ var _hoisted_4 = {
43
44
  class: "entry",
44
45
  "data-hn-ui-combobox": ""
45
46
  };
46
- var _hoisted_5 = [
47
+ var _hoisted_5 = {
48
+ class: "start",
49
+ "data-hn-ui-combobox": ""
50
+ };
51
+ var _hoisted_6 = [
47
52
  "data-index",
48
53
  "disabled",
49
54
  "aria-label"
50
55
  ];
51
- var _hoisted_6 = [
56
+ var _hoisted_7 = [
52
57
  "id",
53
58
  "aria-controls",
54
59
  "aria-expanded",
@@ -59,32 +64,32 @@ var _hoisted_6 = [
59
64
  "readonly",
60
65
  "required"
61
66
  ];
62
- var _hoisted_7 = [
67
+ var _hoisted_8 = [
63
68
  "name",
64
69
  "^value",
65
70
  "disabled"
66
71
  ];
67
- var _hoisted_8 = [
72
+ var _hoisted_9 = [
68
73
  "name",
69
74
  "^value",
70
75
  "disabled"
71
76
  ];
72
- var _hoisted_9 = ["disabled"];
73
- var _hoisted_10 = ["aria-controls", "disabled"];
74
- var _hoisted_11 = ["id", "disabled"];
75
- var _hoisted_12 = ["hidden"];
76
- var _hoisted_13 = [
77
+ var _hoisted_10 = ["disabled"];
78
+ var _hoisted_11 = ["aria-controls", "disabled"];
79
+ var _hoisted_12 = ["id", "disabled"];
80
+ var _hoisted_13 = ["hidden"];
81
+ var _hoisted_14 = [
77
82
  "id",
78
83
  "aria-label",
79
84
  "aria-busy"
80
85
  ];
81
- var _hoisted_14 = ["role", "aria-label"];
82
- var _hoisted_15 = {
86
+ var _hoisted_15 = ["role", "aria-label"];
87
+ var _hoisted_16 = {
83
88
  key: 0,
84
89
  class: "group",
85
90
  "data-hn-ui-combobox": ""
86
91
  };
87
- var _hoisted_16 = [
92
+ var _hoisted_17 = [
88
93
  "data-multiple",
89
94
  "id",
90
95
  "aria-selected",
@@ -93,40 +98,40 @@ var _hoisted_16 = [
93
98
  "aria-labelledby",
94
99
  "aria-describedby"
95
100
  ];
96
- var _hoisted_17 = {
101
+ var _hoisted_18 = {
97
102
  key: 0,
98
103
  class: "detail",
99
104
  "data-hn-ui-combobox": ""
100
105
  };
101
- var _hoisted_18 = {
106
+ var _hoisted_19 = {
102
107
  class: "line",
103
108
  "data-hn-ui-combobox": ""
104
109
  };
105
- var _hoisted_19 = ["id"];
106
110
  var _hoisted_20 = ["id"];
107
111
  var _hoisted_21 = ["id"];
108
- var _hoisted_22 = {
112
+ var _hoisted_22 = ["id"];
113
+ var _hoisted_23 = {
109
114
  key: 1,
110
115
  class: "primary",
111
116
  "data-hn-ui-combobox": ""
112
117
  };
113
- var _hoisted_23 = [
118
+ var _hoisted_24 = [
114
119
  "data-multiple",
115
120
  "id",
116
121
  "data-index"
117
122
  ];
118
- var _hoisted_24 = {
123
+ var _hoisted_25 = {
119
124
  key: 1,
120
125
  class: "message",
121
126
  "data-hn-ui-combobox": ""
122
127
  };
123
- var _hoisted_25 = {
128
+ var _hoisted_26 = {
124
129
  key: 2,
125
130
  class: "message",
126
131
  "data-hn-ui-combobox": ""
127
132
  };
128
- var _hoisted_26 = ["id", "hidden"];
129
- var _hoisted_27 = {
133
+ var _hoisted_27 = ["id", "hidden"];
134
+ var _hoisted_28 = {
130
135
  class: "sr-only",
131
136
  role: "status",
132
137
  "aria-live": "polite",
@@ -154,6 +159,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
154
159
  labelVisibility: { type: null },
155
160
  loading: { type: null },
156
161
  multiple: { type: null },
162
+ muted: { type: null },
157
163
  name: { type: null },
158
164
  openOnFocus: { type: null },
159
165
  placeholder: { type: null },
@@ -435,6 +441,16 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
435
441
  description: "Lets the user choose several options. Each choice becomes a removable badge before the input, the list stays open between picks, and choosing a checked\n option removes it. items-change then reports the whole list of items, and selected-values-change the list of their values; use selectedValues or items,\n not value, in this mode.",
436
442
  default: false
437
443
  },
444
+ muted: {
445
+ type: {
446
+ kind: "terminal",
447
+ name: "boolean"
448
+ },
449
+ required: false,
450
+ target: { attribute: "muted" },
451
+ description: "Shows the selected field value with supporting-text emphasis, for an inherited or default choice. Suggestions keep normal emphasis and the field stays interactive.",
452
+ default: false
453
+ },
438
454
  name: {
439
455
  type: {
440
456
  kind: "terminal",
@@ -452,7 +468,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
452
468
  },
453
469
  required: false,
454
470
  target: { attribute: "openonfocus" },
455
- description: "Opens suggestions when the input receives focus, before typing.",
471
+ description: "Opens suggestions when the input receives focus or is clicked. A committed selection shows all choices until typing filters them; an explicitly supplied query keeps its filtering.",
456
472
  default: false
457
473
  },
458
474
  placeholder: {
@@ -570,6 +586,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
570
586
  labelVisibility: "visible",
571
587
  loading: false,
572
588
  multiple: false,
589
+ muted: false,
573
590
  name: "",
574
591
  openOnFocus: false,
575
592
  placeholder: "",
@@ -596,6 +613,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
596
613
  labelVisibility: "visible",
597
614
  loading: false,
598
615
  multiple: false,
616
+ muted: false,
599
617
  name: "",
600
618
  openOnFocus: false,
601
619
  placeholder: "",
@@ -763,6 +781,10 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
763
781
  kind: "terminal",
764
782
  name: "boolean"
765
783
  }, true, true);
784
+ case "muted": return checkPropInput(value, {
785
+ kind: "terminal",
786
+ name: "boolean"
787
+ }, true, true);
766
788
  case "name": return checkPropInput(value, {
767
789
  kind: "terminal",
768
790
  name: "string"
@@ -837,6 +859,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
837
859
  labelVisibility: propInputs.value("labelVisibility", props["labelVisibility"], props[BINDING_INPUTS_PROP]),
838
860
  loading: propInputs.value("loading", props["loading"], props[BINDING_INPUTS_PROP]),
839
861
  multiple: propInputs.value("multiple", props["multiple"], props[BINDING_INPUTS_PROP]),
862
+ muted: propInputs.value("muted", props["muted"], props[BINDING_INPUTS_PROP]),
840
863
  name: propInputs.value("name", props["name"], props[BINDING_INPUTS_PROP]),
841
864
  openOnFocus: propInputs.value("openOnFocus", props["openOnFocus"], props[BINDING_INPUTS_PROP]),
842
865
  placeholder: propInputs.value("placeholder", props["placeholder"], props[BINDING_INPUTS_PROP]),
@@ -992,6 +1015,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
992
1015
  const hostState = computed(() => [
993
1016
  checkedProps.value.size && "size",
994
1017
  checkedProps.value.size != null && `size=${encodeURIComponent(checkedProps.value.size)}`,
1018
+ checkedProps.value.muted && "muted",
995
1019
  validationStatus.value && "validationStatus",
996
1020
  `validationStatus=${encodeURIComponent(validationStatus.value)}`,
997
1021
  checkedProps.value.invalid && "invalid",
@@ -1754,6 +1778,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1754
1778
  "labelVisibility",
1755
1779
  "loading",
1756
1780
  "multiple",
1781
+ "muted",
1757
1782
  "name",
1758
1783
  "openOnFocus",
1759
1784
  "placeholder",
@@ -1817,6 +1842,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1817
1842
  "data-ui-combobox-prop-label-visibility": unref(reflectedProp)("labelVisibility", "label-visibility", checkedProps.value.labelVisibility, void 0, false),
1818
1843
  "data-ui-combobox-prop-loading": unref(reflectedProp)("loading", "loading", checkedProps.value.loading, void 0, false),
1819
1844
  "data-ui-combobox-prop-multiple": unref(reflectedProp)("multiple", "multiple", checkedProps.value.multiple, void 0, false),
1845
+ "data-ui-combobox-prop-muted": unref(reflectedProp)("muted", "muted", checkedProps.value.muted, void 0, false),
1820
1846
  "data-ui-combobox-prop-name": unref(reflectedProp)("name", "name", checkedProps.value.name, void 0, false),
1821
1847
  "data-ui-combobox-prop-open-on-focus": unref(reflectedProp)("openOnFocus", "open-on-focus", checkedProps.value.openOnFocus, void 0, false),
1822
1848
  "data-ui-combobox-prop-placeholder": unref(reflectedProp)("placeholder", "placeholder", checkedProps.value.placeholder, void 0, false),
@@ -1844,7 +1870,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1844
1870
  ref: fieldElement
1845
1871
  }, [
1846
1872
  createElementVNode("div", _hoisted_4, [
1847
- renderSlot(_ctx.$slots, "start", {}, void 0, true),
1873
+ createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "start", {}, void 0, true)]),
1848
1874
  _cache[2] || (_cache[2] = createTextVNode(toDisplayString(" "), -1)),
1849
1875
  checkedProps.value.multiple ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
1850
1876
  _cache[0] || (_cache[0] = createTextVNode(toDisplayString(" "), -1)),
@@ -1862,7 +1888,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1862
1888
  }, [renderSlot(_ctx.$slots, unref(scopedSlotName)("item"), { item }, () => [createVNode(UiBadge_default, { class: "ui-badge" }, {
1863
1889
  default: withCtx(() => [createTextVNode(toDisplayString(item.label), 1)]),
1864
1890
  _: 2
1865
- }, 1024)], true)], 8, _hoisted_5);
1891
+ }, 1024)], true)], 8, _hoisted_6);
1866
1892
  }), 128))]),
1867
1893
  _: 3
1868
1894
  }),
@@ -1885,7 +1911,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1885
1911
  required: guardedBinding3.value,
1886
1912
  ref_key: "inputElement",
1887
1913
  ref: inputElement
1888
- }, null, 8, _hoisted_6), [[unref(vBindControl), {
1914
+ }, null, 8, _hoisted_7), [[unref(vBindControl), {
1889
1915
  tag: "input",
1890
1916
  name: "value",
1891
1917
  value: display.value,
@@ -1900,7 +1926,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1900
1926
  name: checkedProps.value.name ?? void 0,
1901
1927
  "^value": submitted.value,
1902
1928
  disabled: checkedProps.value.disabled ?? void 0
1903
- }, null, 8, _hoisted_7)) : createCommentVNode("v-if", true),
1929
+ }, null, 8, _hoisted_8)) : createCommentVNode("v-if", true),
1904
1930
  _cache[8] || (_cache[8] = createTextVNode(toDisplayString(" "), -1)),
1905
1931
  checkedProps.value.name && checkedProps.value.multiple ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1906
1932
  _cache[4] || (_cache[4] = createTextVNode(toDisplayString(" "), -1)),
@@ -1913,7 +1939,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1913
1939
  name: checkedProps.value.name ?? void 0,
1914
1940
  "^value": item.value,
1915
1941
  disabled: checkedProps.value.disabled ?? void 0
1916
- }, null, 8, _hoisted_8);
1942
+ }, null, 8, _hoisted_9);
1917
1943
  }), 128))]),
1918
1944
  _: 1
1919
1945
  }),
@@ -1939,7 +1965,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1939
1965
  }, [createElementVNode("path", {
1940
1966
  d: "M7 7l10 10M17 7 7 17",
1941
1967
  "data-hn-ui-combobox": ""
1942
- })], -1)])], 8, _hoisted_9)) : createCommentVNode("v-if", true),
1968
+ })], -1)])], 8, _hoisted_10)) : createCommentVNode("v-if", true),
1943
1969
  _cache[10] || (_cache[10] = createTextVNode(toDisplayString(" "), -1)),
1944
1970
  checkedProps.value.disclosure ? (openBlock(), createElementBlock("button", {
1945
1971
  key: 3,
@@ -1963,7 +1989,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1963
1989
  }, [createElementVNode("path", {
1964
1990
  d: "m6 9 6 6 6-6",
1965
1991
  "data-hn-ui-combobox": ""
1966
- })], -1)])], 8, _hoisted_10)) : createCommentVNode("v-if", true)
1992
+ })], -1)])], 8, _hoisted_11)) : createCommentVNode("v-if", true)
1967
1993
  ], 512), checkedProps.value.help ? (openBlock(), createElementBlock("button", {
1968
1994
  key: 0,
1969
1995
  class: "help",
@@ -1997,7 +2023,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
1997
2023
  d: "M12 17h.01",
1998
2024
  "data-hn-ui-combobox": ""
1999
2025
  })
2000
- ], -1)])], 8, _hoisted_11)) : createCommentVNode("v-if", true)]),
2026
+ ], -1)])], 8, _hoisted_12)) : createCommentVNode("v-if", true)]),
2001
2027
  checkedProps.value.help ? (openBlock(), createBlock(UiTooltip_default, {
2002
2028
  key: 0,
2003
2029
  class: "ui-tooltip",
@@ -2031,7 +2057,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2031
2057
  role: group.role,
2032
2058
  "aria-label": group.label
2033
2059
  }, [
2034
- group.name ? (openBlock(), createElementBlock("div", _hoisted_15, toDisplayString(group.name), 1)) : createCommentVNode("v-if", true),
2060
+ group.name ? (openBlock(), createElementBlock("div", _hoisted_16, toDisplayString(group.name), 1)) : createCommentVNode("v-if", true),
2035
2061
  _cache[17] || (_cache[17] = createTextVNode(toDisplayString(" "), -1)),
2036
2062
  createVNode(unref(KeyedBoundary), null, {
2037
2063
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(uniqueKeys)(group.rows, (row, indexLoop2, loop) => row.id), (row) => {
@@ -2050,13 +2076,13 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2050
2076
  "aria-describedby": row.detail
2051
2077
  }, [renderSlot(_ctx.$slots, unref(scopedSlotName)("option"), { option: row.option }, () => [
2052
2078
  _cache[14] || (_cache[14] = createTextVNode(toDisplayString(" "), -1)),
2053
- row.detail ? (openBlock(), createElementBlock("span", _hoisted_17, [
2054
- createElementVNode("span", _hoisted_18, [
2079
+ row.detail ? (openBlock(), createElementBlock("span", _hoisted_18, [
2080
+ createElementVNode("span", _hoisted_19, [
2055
2081
  createElementVNode("span", {
2056
2082
  class: "primary",
2057
2083
  "data-hn-ui-combobox": "",
2058
2084
  id: unref(concat)(uid.value, "-option-", row.index, "-label")
2059
- }, toDisplayString(row.label), 9, _hoisted_19),
2085
+ }, toDisplayString(row.label), 9, _hoisted_20),
2060
2086
  _cache[12] || (_cache[12] = createTextVNode(toDisplayString(" "), -1)),
2061
2087
  row.tag ? (openBlock(), createBlock(UiBadge_default, {
2062
2088
  key: 0,
@@ -2068,7 +2094,7 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2068
2094
  "data-slotted": "ui-combobox",
2069
2095
  "data-hn-ui-combobox": "",
2070
2096
  id: unref(concat)(uid.value, "-option-", row.index, "-tag")
2071
- }, toDisplayString(row.tag?.label), 9, _hoisted_20)]),
2097
+ }, toDisplayString(row.tag?.label), 9, _hoisted_21)]),
2072
2098
  _: 2
2073
2099
  }, 1032, ["tone", "style"])) : createCommentVNode("v-if", true)
2074
2100
  ]),
@@ -2078,16 +2104,16 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2078
2104
  class: "description",
2079
2105
  "data-hn-ui-combobox": "",
2080
2106
  id: unref(concat)(uid.value, "-option-", row.index, "-description")
2081
- }, toDisplayString(row.description), 9, _hoisted_21)) : createCommentVNode("v-if", true)
2107
+ }, toDisplayString(row.description), 9, _hoisted_22)) : createCommentVNode("v-if", true)
2082
2108
  ])) : createCommentVNode("v-if", true),
2083
2109
  _cache[15] || (_cache[15] = createTextVNode(toDisplayString(" "), -1)),
2084
- !row.detail ? (openBlock(), createElementBlock("span", _hoisted_22, toDisplayString(row.label), 1)) : createCommentVNode("v-if", true),
2110
+ !row.detail ? (openBlock(), createElementBlock("span", _hoisted_23, toDisplayString(row.label), 1)) : createCommentVNode("v-if", true),
2085
2111
  _cache[16] || (_cache[16] = createTextVNode(toDisplayString(" "), -1))
2086
- ], true)], 10, _hoisted_16);
2112
+ ], true)], 10, _hoisted_17);
2087
2113
  }), 128))]),
2088
2114
  _: 2
2089
2115
  }, 1024)
2090
- ], 8, _hoisted_14);
2116
+ ], 8, _hoisted_15);
2091
2117
  }), 128))]),
2092
2118
  _: 3
2093
2119
  }),
@@ -2102,12 +2128,12 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2102
2128
  "data-multiple": checkedProps.value.multiple ? "" : void 0,
2103
2129
  id: guardedBinding11.value,
2104
2130
  "data-index": createIndex.value
2105
- }, toDisplayString(guardedBinding12.value), 11, _hoisted_23)) : createCommentVNode("v-if", true),
2131
+ }, toDisplayString(guardedBinding12.value), 11, _hoisted_24)) : createCommentVNode("v-if", true),
2106
2132
  _cache[20] || (_cache[20] = createTextVNode(toDisplayString(" "), -1)),
2107
- message.value ? (openBlock(), createElementBlock("div", _hoisted_24, toDisplayString(message.value), 1)) : createCommentVNode("v-if", true),
2133
+ message.value ? (openBlock(), createElementBlock("div", _hoisted_25, toDisplayString(message.value), 1)) : createCommentVNode("v-if", true),
2108
2134
  _cache[21] || (_cache[21] = createTextVNode(toDisplayString(" "), -1)),
2109
- !checkedProps.value.loading && !rows.value[0] && !creatable.value && !lookupError.value ? (openBlock(), createElementBlock("div", _hoisted_25, [renderSlot(_ctx.$slots, "empty", {}, () => [_cache[18] || (_cache[18] = createTextVNode("No suggestions.", -1))], true)])) : createCommentVNode("v-if", true)
2110
- ], 8, _hoisted_13), renderSlot(_ctx.$slots, "footer", {}, void 0, true)], 8, _hoisted_12),
2135
+ !checkedProps.value.loading && !rows.value[0] && !creatable.value && !lookupError.value ? (openBlock(), createElementBlock("div", _hoisted_26, [renderSlot(_ctx.$slots, "empty", {}, () => [_cache[18] || (_cache[18] = createTextVNode("No suggestions.", -1))], true)])) : createCommentVNode("v-if", true)
2136
+ ], 8, _hoisted_14), renderSlot(_ctx.$slots, "footer", {}, void 0, true)], 8, _hoisted_13),
2111
2137
  createElementVNode("div", {
2112
2138
  class: "message",
2113
2139
  "data-hn-ui-combobox": "",
@@ -2118,8 +2144,8 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2118
2144
  key: indexLoop3,
2119
2145
  "data-hn-ui-combobox": ""
2120
2146
  }, toDisplayString(issue.message), 1);
2121
- }), 128))], 8, _hoisted_26),
2122
- createElementVNode("div", _hoisted_27, toDisplayString(statusText.value), 1),
2147
+ }), 128))], 8, _hoisted_27),
2148
+ createElementVNode("div", _hoisted_28, toDisplayString(statusText.value), 1),
2123
2149
  createElementVNode("div", {
2124
2150
  class: "authored-options",
2125
2151
  hidden: "",
@@ -2134,6 +2160,6 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
2134
2160
  }]]);
2135
2161
  };
2136
2162
  }
2137
- }), [["__scopeId", "data-v-26d1683e"]]);
2163
+ }), [["__scopeId", "data-v-4630df88"]]);
2138
2164
  //#endregion
2139
2165
  export { UiCombobox_default as t };