@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.
- package/components/ui-button/ui-button.html +20 -5
- package/components/ui-combobox/ui-combobox.html +24 -3
- package/components/ui-combobox/ui-combobox.js +18 -3
- package/components/ui-icon-button/ui-icon-button.html +17 -8
- package/components/ui-menu-item/ui-menu-item.html +6 -1
- package/components/ui-select/ui-select.html +12 -0
- package/components/ui-skeleton/ui-skeleton.html +91 -0
- package/dist/index.js +1 -1
- package/docs/README.md +23 -10
- package/docs/catalog.json +246 -31
- package/docs/customizer-render.mjs +36 -20
- package/docs/customizer.js +76 -25
- package/docs/documentation.css +2 -0
- package/docs/palette.mjs +3 -3
- package/docs/site.mjs +1 -1
- package/docs/theme-session.mjs +1 -0
- package/docs/theme.mjs +11 -10
- package/package.json +2 -2
- package/styles/ui-button.css +19 -9
- package/styles/ui-combobox.css +40 -2
- package/styles/ui-icon-button.css +12 -2
- package/styles/ui-menu-item.css +6 -1
- package/styles/ui-select.css +9 -0
- package/styles/ui-skeleton.css +91 -0
- package/theme-system.css +7 -2
- package/vanilla/UiButton.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -0
- package/vanilla/UiCombobox.js +38 -37
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.js +1 -1
- package/vanilla/UiSelect.d.ts +1 -0
- package/vanilla/UiSelect.js +7 -7
- package/vanilla/UiSkeleton.d.ts +26 -0
- package/vanilla/UiSkeleton.js +42 -0
- package/vanilla/index.js +1 -0
- package/vue/UiButton.vue +30 -12
- package/vue/UiCombobox.d.ts +6 -0
- package/vue/UiCombobox.vue +70 -6
- package/vue/UiIconButton.d.ts +2 -2
- package/vue/UiIconButton.vue +23 -18
- package/vue/UiMenuItem.vue +6 -1
- package/vue/UiSelect.d.ts +6 -0
- package/vue/UiSelect.vue +30 -1
- package/vue/UiSkeleton.d.ts +37 -0
- package/vue/UiSkeleton.js +2 -0
- package/vue/UiSkeleton.vue +235 -0
- package/vue/chunks/UiButton.js +4 -4
- package/vue/chunks/UiCombobox.js +72 -46
- package/vue/chunks/UiIconButton.js +6 -7
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiSelect.js +27 -2
- package/vue/chunks/UiSkeleton.js +151 -0
- package/vue/components.css +197 -25
- package/vue/editor/index.js +2 -3
- package/vue/index.d.ts +1 -0
- 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>
|
package/vue/chunks/UiButton.js
CHANGED
|
@@ -335,7 +335,7 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
335
335
|
"warning",
|
|
336
336
|
"info"
|
|
337
337
|
],
|
|
338
|
-
default: "
|
|
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: "
|
|
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: "
|
|
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-
|
|
897
|
+
}), [["__scopeId", "data-v-1eb598b9"]]);
|
|
898
898
|
//#endregion
|
|
899
899
|
export { UiButton_default as t };
|
package/vue/chunks/UiCombobox.js
CHANGED
|
@@ -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
|
|
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
|
|
67
|
+
var _hoisted_8 = [
|
|
63
68
|
"name",
|
|
64
69
|
"^value",
|
|
65
70
|
"disabled"
|
|
66
71
|
];
|
|
67
|
-
var
|
|
72
|
+
var _hoisted_9 = [
|
|
68
73
|
"name",
|
|
69
74
|
"^value",
|
|
70
75
|
"disabled"
|
|
71
76
|
];
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
var
|
|
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
|
|
82
|
-
var
|
|
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
|
|
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
|
|
101
|
+
var _hoisted_18 = {
|
|
97
102
|
key: 0,
|
|
98
103
|
class: "detail",
|
|
99
104
|
"data-hn-ui-combobox": ""
|
|
100
105
|
};
|
|
101
|
-
var
|
|
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
|
|
118
|
+
var _hoisted_24 = [
|
|
114
119
|
"data-multiple",
|
|
115
120
|
"id",
|
|
116
121
|
"data-index"
|
|
117
122
|
];
|
|
118
|
-
var
|
|
123
|
+
var _hoisted_25 = {
|
|
119
124
|
key: 1,
|
|
120
125
|
class: "message",
|
|
121
126
|
"data-hn-ui-combobox": ""
|
|
122
127
|
};
|
|
123
|
-
var
|
|
128
|
+
var _hoisted_26 = {
|
|
124
129
|
key: 2,
|
|
125
130
|
class: "message",
|
|
126
131
|
"data-hn-ui-combobox": ""
|
|
127
132
|
};
|
|
128
|
-
var
|
|
129
|
-
var
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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",
|
|
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",
|
|
2054
|
-
createElementVNode("span",
|
|
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,
|
|
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,
|
|
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,
|
|
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",
|
|
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,
|
|
2112
|
+
], true)], 10, _hoisted_17);
|
|
2087
2113
|
}), 128))]),
|
|
2088
2114
|
_: 2
|
|
2089
2115
|
}, 1024)
|
|
2090
|
-
], 8,
|
|
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,
|
|
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",
|
|
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",
|
|
2110
|
-
], 8,
|
|
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,
|
|
2122
|
-
createElementVNode("div",
|
|
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-
|
|
2163
|
+
}), [["__scopeId", "data-v-4630df88"]]);
|
|
2138
2164
|
//#endregion
|
|
2139
2165
|
export { UiCombobox_default as t };
|