@threadlabs/looma 0.25.4 → 0.25.6
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-card/ui-card.html +27 -2
- package/components/ui-checkbox/ui-checkbox.html +2 -0
- package/components/ui-cluster/ui-cluster.html +35 -2
- package/components/ui-editor-surface/ui-editor-surface.html +23 -0
- package/components/ui-list-item/ui-list-item.html +12 -3
- package/components/ui-scroll-area/ui-scroll-area.html +5 -0
- package/components/ui-stack/ui-stack.html +17 -1
- package/components/ui-text/ui-text.html +5 -0
- package/components/ui-textarea/ui-textarea.html +7 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-card.css +24 -0
- package/styles/ui-cluster.css +28 -0
- package/styles/ui-editor-surface.css +19 -0
- package/styles/ui-list-item.css +11 -3
- package/styles/ui-scroll-area.css +4 -0
- package/styles/ui-stack.css +13 -0
- package/styles/ui-text.css +4 -0
- package/styles/ui-textarea.css +4 -0
- package/vanilla/UiCard.d.ts +1 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -0
- package/vanilla/UiCheckbox.js +18 -15
- package/vanilla/UiCluster.d.ts +4 -1
- package/vanilla/UiCluster.js +10 -4
- package/vanilla/UiEditorSurface.d.ts +14 -0
- package/vanilla/UiEditorSurface.js +27 -0
- package/vanilla/UiListItem.d.ts +1 -0
- package/vanilla/UiListItem.js +4 -2
- package/vanilla/UiScrollArea.d.ts +1 -0
- package/vanilla/UiScrollArea.js +1 -1
- package/vanilla/UiStack.d.ts +2 -0
- package/vanilla/UiStack.js +8 -9
- package/vanilla/UiText.d.ts +1 -0
- package/vanilla/UiText.js +1 -1
- package/vanilla/UiTextarea.d.ts +1 -0
- package/vanilla/UiTextarea.js +4 -1
- package/vanilla/index.js +1 -0
- package/vue/UiCard.d.ts +3 -3
- package/vue/UiCard.vue +34 -5
- package/vue/UiCheckbox.d.ts +9 -0
- package/vue/UiCheckbox.vue +20 -0
- package/vue/UiCluster.d.ts +30 -3
- package/vue/UiCluster.vue +102 -5
- package/vue/UiEditorSurface.d.ts +26 -0
- package/vue/UiEditorSurface.js +2 -0
- package/vue/UiEditorSurface.vue +129 -0
- package/vue/UiListItem.d.ts +9 -0
- package/vue/UiListItem.vue +35 -4
- package/vue/UiScrollArea.d.ts +9 -0
- package/vue/UiScrollArea.vue +28 -2
- package/vue/UiStack.d.ts +18 -0
- package/vue/UiStack.vue +58 -1
- package/vue/UiText.d.ts +9 -0
- package/vue/UiText.vue +33 -0
- package/vue/UiTextarea.d.ts +9 -0
- package/vue/UiTextarea.vue +37 -2
- package/vue/chunks/UiCard.js +10 -3
- package/vue/chunks/UiCheckbox.js +25 -1
- package/vue/chunks/UiCluster.js +85 -3
- package/vue/chunks/UiEditorSurface.js +71 -0
- package/vue/chunks/UiListItem.js +23 -1
- package/vue/chunks/UiScrollArea.js +28 -2
- package/vue/chunks/UiStack.js +46 -1
- package/vue/chunks/UiText.js +43 -1
- package/vue/chunks/UiTextarea.js +28 -2
- package/vue/components.css +255 -162
- package/vue/editor/LoomaEditor.d.ts +12 -0
- package/vue/editor/index.js +7 -2
- package/vue/index.d.ts +1 -0
- package/vue/index.js +2 -1
package/vue/UiTextarea.vue
CHANGED
|
@@ -32,6 +32,13 @@ const propValidityContract = {
|
|
|
32
32
|
description: 'Exposes invalid state to assistive technology and styling.',
|
|
33
33
|
default: false,
|
|
34
34
|
},
|
|
35
|
+
maxRows: {
|
|
36
|
+
type: { kind: 'terminal', name: 'integer' },
|
|
37
|
+
required: false,
|
|
38
|
+
target: { attribute: 'maxrows' },
|
|
39
|
+
description:
|
|
40
|
+
'Optional maximum visible rows, for a growing field in a bounded layout. Extra text scrolls inside the field. Omit it to retain unbounded growth.',
|
|
41
|
+
},
|
|
35
42
|
readonly: {
|
|
36
43
|
type: { kind: 'terminal', name: 'boolean' },
|
|
37
44
|
required: false,
|
|
@@ -75,6 +82,7 @@ const props = defineProps({
|
|
|
75
82
|
autosize: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
76
83
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
77
84
|
invalid: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
85
|
+
maxRows: { type: null as unknown as PropType<number | null>, default: null },
|
|
78
86
|
readonly: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
79
87
|
required: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
80
88
|
rows: { type: null as unknown as PropType<number | null>, default: 4 },
|
|
@@ -86,6 +94,7 @@ const acceptedProps: Record<string, unknown> = {
|
|
|
86
94
|
autosize: false,
|
|
87
95
|
disabled: false,
|
|
88
96
|
invalid: false,
|
|
97
|
+
maxRows: null,
|
|
89
98
|
readonly: false,
|
|
90
99
|
required: false,
|
|
91
100
|
rows: 4,
|
|
@@ -114,6 +123,13 @@ const checkedProps = computed(() => ({
|
|
|
114
123
|
'invalid',
|
|
115
124
|
acceptedProps,
|
|
116
125
|
) as boolean,
|
|
126
|
+
maxRows: checkedProp<number>(
|
|
127
|
+
props['maxRows'],
|
|
128
|
+
{ kind: 'terminal', name: 'integer' },
|
|
129
|
+
false,
|
|
130
|
+
'maxRows',
|
|
131
|
+
acceptedProps,
|
|
132
|
+
),
|
|
117
133
|
readonly: checkedProp<boolean>(
|
|
118
134
|
props['readonly'],
|
|
119
135
|
{ kind: 'terminal', name: 'boolean' },
|
|
@@ -225,6 +241,8 @@ const hostState = computed(() =>
|
|
|
225
241
|
[
|
|
226
242
|
checkedProps.value.size && 'size',
|
|
227
243
|
checkedProps.value.size != null && `size=${encodeURIComponent(checkedProps.value.size)}`,
|
|
244
|
+
checkedProps.value.maxRows && 'maxRows',
|
|
245
|
+
checkedProps.value.maxRows != null && `maxRows=${checkedProps.value.maxRows}`,
|
|
228
246
|
checkedProps.value.autosize && 'autosize',
|
|
229
247
|
].filter(Boolean).join(' ')
|
|
230
248
|
)
|
|
@@ -246,7 +264,17 @@ useComponentHost(() => import('../components/ui-textarea/ui-textarea.js'), {
|
|
|
246
264
|
? (incoming[name] ?? incoming[kebab] ?? null)
|
|
247
265
|
: null
|
|
248
266
|
},
|
|
249
|
-
propNames: [
|
|
267
|
+
propNames: [
|
|
268
|
+
'autosize',
|
|
269
|
+
'disabled',
|
|
270
|
+
'invalid',
|
|
271
|
+
'maxRows',
|
|
272
|
+
'readonly',
|
|
273
|
+
'required',
|
|
274
|
+
'rows',
|
|
275
|
+
'size',
|
|
276
|
+
'value',
|
|
277
|
+
],
|
|
250
278
|
propValidity: (name: string) =>
|
|
251
279
|
propValidityState({ contract: propValidityContract, values: { ...props } }, name),
|
|
252
280
|
})
|
|
@@ -261,11 +289,12 @@ useComponentHost(() => import('../components/ui-textarea/ui-textarea.js'), {
|
|
|
261
289
|
:required="checkedProps.required ?? undefined"
|
|
262
290
|
:aria-invalid="checkedProps.invalid ?? undefined"
|
|
263
291
|
:rows="checkedProps.rows ?? undefined"
|
|
264
|
-
:style="{ '--_rows': checkedProps.rows ?? undefined }"
|
|
292
|
+
:style="{ '--_rows': checkedProps.rows ?? undefined, '--_max-rows': checkedProps.maxRows ?? undefined }"
|
|
265
293
|
v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
|
|
266
294
|
:data-autosize="reflectedProp('autosize', 'autosize', checkedProps.autosize, undefined, false)"
|
|
267
295
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
268
296
|
:data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
|
|
297
|
+
:data-max-rows="reflectedProp('maxRows', 'max-rows', checkedProps.maxRows, undefined, false)"
|
|
269
298
|
:data-readonly="reflectedProp('readonly', 'readonly', checkedProps.readonly, undefined, false)"
|
|
270
299
|
:data-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
|
|
271
300
|
:data-rows="reflectedProp('rows', 'rows', checkedProps.rows, undefined, false)"
|
|
@@ -466,6 +495,12 @@ useComponentHost(() => import('../components/ui-textarea/ui-textarea.js'), {
|
|
|
466
495
|
font-size: var(--ui-font-size-md);
|
|
467
496
|
}
|
|
468
497
|
|
|
498
|
+
[data-component~="ui-textarea"][data-ui-textarea-state~="maxRows"] {
|
|
499
|
+
max-block-size: calc(
|
|
500
|
+
max(var(--_rows), var(--_max-rows)) * 1lh + var(--_padding-block) + var(--_padding-block) + 2px
|
|
501
|
+
);
|
|
502
|
+
}
|
|
503
|
+
|
|
469
504
|
@supports (field-sizing: content) {
|
|
470
505
|
[data-component~="ui-textarea"][data-ui-textarea-state~="autosize"] {
|
|
471
506
|
field-sizing: content;
|
package/vue/chunks/UiCard.js
CHANGED
|
@@ -119,8 +119,15 @@ var UiCard_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
119
119
|
},
|
|
120
120
|
required: false,
|
|
121
121
|
target: { attribute: "tone" },
|
|
122
|
-
description: "
|
|
123
|
-
values: [
|
|
122
|
+
description: "accent, info, success and warning add a quiet semantic surface. danger retains its strong leading edge for consequential content. Tone never changes child\n controls.",
|
|
123
|
+
values: [
|
|
124
|
+
"neutral",
|
|
125
|
+
"accent",
|
|
126
|
+
"info",
|
|
127
|
+
"success",
|
|
128
|
+
"warning",
|
|
129
|
+
"danger"
|
|
130
|
+
],
|
|
124
131
|
default: "neutral"
|
|
125
132
|
},
|
|
126
133
|
variant: {
|
|
@@ -267,6 +274,6 @@ var UiCard_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
267
274
|
}]]);
|
|
268
275
|
};
|
|
269
276
|
}
|
|
270
|
-
}), [["__scopeId", "data-v-
|
|
277
|
+
}), [["__scopeId", "data-v-c589f774"]]);
|
|
271
278
|
//#endregion
|
|
272
279
|
export { UiCard_default as t };
|
package/vue/chunks/UiCheckbox.js
CHANGED
|
@@ -9,6 +9,7 @@ var _hoisted_1 = [
|
|
|
9
9
|
"data-disabled",
|
|
10
10
|
"data-indeterminate",
|
|
11
11
|
"data-invalid",
|
|
12
|
+
"data-label",
|
|
12
13
|
"data-name",
|
|
13
14
|
"data-required",
|
|
14
15
|
"data-size",
|
|
@@ -16,6 +17,7 @@ var _hoisted_1 = [
|
|
|
16
17
|
"data-ui-checkbox-state"
|
|
17
18
|
];
|
|
18
19
|
var _hoisted_2 = [
|
|
20
|
+
"aria-label",
|
|
19
21
|
".indeterminate",
|
|
20
22
|
"disabled",
|
|
21
23
|
"aria-invalid",
|
|
@@ -55,6 +57,10 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
55
57
|
type: null,
|
|
56
58
|
default: false
|
|
57
59
|
},
|
|
60
|
+
label: {
|
|
61
|
+
type: null,
|
|
62
|
+
default: ""
|
|
63
|
+
},
|
|
58
64
|
name: {
|
|
59
65
|
type: null,
|
|
60
66
|
default: ""
|
|
@@ -119,6 +125,16 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
119
125
|
description: "Exposes an externally validated error and styles the checkbox with the field danger colour.",
|
|
120
126
|
default: false
|
|
121
127
|
},
|
|
128
|
+
label: {
|
|
129
|
+
type: {
|
|
130
|
+
kind: "terminal",
|
|
131
|
+
name: "string"
|
|
132
|
+
},
|
|
133
|
+
required: false,
|
|
134
|
+
target: { attribute: "aria-label" },
|
|
135
|
+
description: "An accessible name for a checkbox without a visible label slot. It names the native input.",
|
|
136
|
+
default: ""
|
|
137
|
+
},
|
|
122
138
|
name: {
|
|
123
139
|
type: {
|
|
124
140
|
kind: "terminal",
|
|
@@ -171,6 +187,7 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
171
187
|
disabled: false,
|
|
172
188
|
indeterminate: false,
|
|
173
189
|
invalid: false,
|
|
190
|
+
label: "",
|
|
174
191
|
name: "",
|
|
175
192
|
required: false,
|
|
176
193
|
size: "md",
|
|
@@ -193,6 +210,10 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
193
210
|
kind: "terminal",
|
|
194
211
|
name: "boolean"
|
|
195
212
|
}, false, "invalid", acceptedProps),
|
|
213
|
+
label: checkedProp(props["label"], {
|
|
214
|
+
kind: "terminal",
|
|
215
|
+
name: "string"
|
|
216
|
+
}, false, "label", acceptedProps),
|
|
196
217
|
name: checkedProp(props["name"], {
|
|
197
218
|
kind: "terminal",
|
|
198
219
|
name: "string"
|
|
@@ -284,6 +305,7 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
284
305
|
"disabled",
|
|
285
306
|
"indeterminate",
|
|
286
307
|
"invalid",
|
|
308
|
+
"label",
|
|
287
309
|
"name",
|
|
288
310
|
"required",
|
|
289
311
|
"size",
|
|
@@ -305,6 +327,7 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
305
327
|
"data-disabled": reflectedProp("disabled", "disabled", checkedProps.value.disabled, void 0, false),
|
|
306
328
|
"data-indeterminate": reflectedProp("indeterminate", "indeterminate", checkedProps.value.indeterminate, void 0, false),
|
|
307
329
|
"data-invalid": reflectedProp("invalid", "invalid", checkedProps.value.invalid, void 0, false),
|
|
330
|
+
"data-label": reflectedProp("label", "label", checkedProps.value.label, void 0, false),
|
|
308
331
|
"data-name": reflectedProp("name", "name", checkedProps.value.name, void 0, false),
|
|
309
332
|
"data-required": reflectedProp("required", "required", checkedProps.value.required, void 0, false),
|
|
310
333
|
"data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
|
|
@@ -314,6 +337,7 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
314
337
|
ref: root
|
|
315
338
|
}), [withDirectives(createElementVNode("input", {
|
|
316
339
|
type: "checkbox",
|
|
340
|
+
"aria-label": checkedProps.value.label ?? void 0,
|
|
317
341
|
".indeterminate": checkedProps.value.indeterminate,
|
|
318
342
|
disabled: checkedProps.value.disabled ?? void 0,
|
|
319
343
|
"aria-invalid": checkedProps.value.invalid ?? void 0,
|
|
@@ -339,6 +363,6 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
339
363
|
}]]);
|
|
340
364
|
};
|
|
341
365
|
}
|
|
342
|
-
}), [["__scopeId", "data-v-
|
|
366
|
+
}), [["__scopeId", "data-v-3bebca63"]]);
|
|
343
367
|
//#endregion
|
|
344
368
|
export { UiCheckbox_default as t };
|
package/vue/chunks/UiCluster.js
CHANGED
|
@@ -4,8 +4,11 @@ import { computed, createElementBlock, defineComponent, getCurrentInstance, merg
|
|
|
4
4
|
//#region .build/vue/UiCluster.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = [
|
|
6
6
|
"data-align",
|
|
7
|
+
"data-fixed",
|
|
7
8
|
"data-gap",
|
|
8
9
|
"data-justify",
|
|
10
|
+
"data-padding",
|
|
11
|
+
"data-padding-end",
|
|
9
12
|
"data-wrap",
|
|
10
13
|
"data-ui-cluster-state"
|
|
11
14
|
];
|
|
@@ -19,6 +22,10 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
19
22
|
type: null,
|
|
20
23
|
default: null
|
|
21
24
|
},
|
|
25
|
+
fixed: {
|
|
26
|
+
type: null,
|
|
27
|
+
default: false
|
|
28
|
+
},
|
|
22
29
|
gap: {
|
|
23
30
|
type: null,
|
|
24
31
|
default: null
|
|
@@ -27,6 +34,14 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
27
34
|
type: null,
|
|
28
35
|
default: null
|
|
29
36
|
},
|
|
37
|
+
padding: {
|
|
38
|
+
type: null,
|
|
39
|
+
default: "none"
|
|
40
|
+
},
|
|
41
|
+
paddingEnd: {
|
|
42
|
+
type: null,
|
|
43
|
+
default: "none"
|
|
44
|
+
},
|
|
30
45
|
wrap: {
|
|
31
46
|
type: null,
|
|
32
47
|
default: null
|
|
@@ -41,14 +56,25 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
41
56
|
},
|
|
42
57
|
required: false,
|
|
43
58
|
target: { attribute: "align" },
|
|
44
|
-
description: "How items line up within each row: center (the default) aligns their middles, start their tops, end their bottoms, and stretch makes every item as tall as\n its row.",
|
|
59
|
+
description: "How items line up within each row: center (the default) aligns their middles, start their tops, end their bottoms, and stretch makes every item as tall as\n its row. baseline aligns the first text baselines, including multiline columns.",
|
|
45
60
|
values: [
|
|
46
61
|
"start",
|
|
47
62
|
"center",
|
|
48
63
|
"end",
|
|
49
|
-
"stretch"
|
|
64
|
+
"stretch",
|
|
65
|
+
"baseline"
|
|
50
66
|
]
|
|
51
67
|
},
|
|
68
|
+
fixed: {
|
|
69
|
+
type: {
|
|
70
|
+
kind: "terminal",
|
|
71
|
+
name: "boolean"
|
|
72
|
+
},
|
|
73
|
+
required: false,
|
|
74
|
+
target: { attribute: "fixed" },
|
|
75
|
+
description: "Keeps this group at its content size inside a flex layout.",
|
|
76
|
+
default: false
|
|
77
|
+
},
|
|
52
78
|
gap: {
|
|
53
79
|
type: {
|
|
54
80
|
kind: "terminal",
|
|
@@ -80,6 +106,39 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
80
106
|
"between"
|
|
81
107
|
]
|
|
82
108
|
},
|
|
109
|
+
padding: {
|
|
110
|
+
type: {
|
|
111
|
+
kind: "terminal",
|
|
112
|
+
name: "keyword"
|
|
113
|
+
},
|
|
114
|
+
required: false,
|
|
115
|
+
target: { attribute: "padding" },
|
|
116
|
+
description: "Optional internal space for an action group, using the shared spacing scale.",
|
|
117
|
+
values: [
|
|
118
|
+
"none",
|
|
119
|
+
"s",
|
|
120
|
+
"m",
|
|
121
|
+
"l"
|
|
122
|
+
],
|
|
123
|
+
default: "none"
|
|
124
|
+
},
|
|
125
|
+
paddingEnd: {
|
|
126
|
+
type: {
|
|
127
|
+
kind: "terminal",
|
|
128
|
+
name: "keyword"
|
|
129
|
+
},
|
|
130
|
+
required: false,
|
|
131
|
+
target: { attribute: "paddingend" },
|
|
132
|
+
description: "Optional extra space at the inline end, such as clearance beside another control. xl is 4rem.",
|
|
133
|
+
values: [
|
|
134
|
+
"none",
|
|
135
|
+
"s",
|
|
136
|
+
"m",
|
|
137
|
+
"l",
|
|
138
|
+
"xl"
|
|
139
|
+
],
|
|
140
|
+
default: "none"
|
|
141
|
+
},
|
|
83
142
|
wrap: {
|
|
84
143
|
type: {
|
|
85
144
|
kind: "terminal",
|
|
@@ -94,8 +153,11 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
94
153
|
const props = __props;
|
|
95
154
|
const acceptedProps = {
|
|
96
155
|
align: null,
|
|
156
|
+
fixed: false,
|
|
97
157
|
gap: null,
|
|
98
158
|
justify: null,
|
|
159
|
+
padding: "none",
|
|
160
|
+
paddingEnd: "none",
|
|
99
161
|
wrap: null
|
|
100
162
|
};
|
|
101
163
|
const checkedProps = computed(() => ({
|
|
@@ -103,6 +165,10 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
103
165
|
kind: "terminal",
|
|
104
166
|
name: "keyword"
|
|
105
167
|
}, false, "align", acceptedProps),
|
|
168
|
+
fixed: checkedProp(props["fixed"], {
|
|
169
|
+
kind: "terminal",
|
|
170
|
+
name: "boolean"
|
|
171
|
+
}, false, "fixed", acceptedProps),
|
|
106
172
|
gap: checkedProp(props["gap"], {
|
|
107
173
|
kind: "terminal",
|
|
108
174
|
name: "keyword"
|
|
@@ -111,6 +177,14 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
111
177
|
kind: "terminal",
|
|
112
178
|
name: "keyword"
|
|
113
179
|
}, false, "justify", acceptedProps),
|
|
180
|
+
padding: checkedProp(props["padding"], {
|
|
181
|
+
kind: "terminal",
|
|
182
|
+
name: "keyword"
|
|
183
|
+
}, false, "padding", acceptedProps),
|
|
184
|
+
paddingEnd: checkedProp(props["paddingEnd"], {
|
|
185
|
+
kind: "terminal",
|
|
186
|
+
name: "keyword"
|
|
187
|
+
}, false, "paddingEnd", acceptedProps),
|
|
114
188
|
wrap: checkedProp(props["wrap"], {
|
|
115
189
|
kind: "terminal",
|
|
116
190
|
name: "keyword"
|
|
@@ -142,6 +216,11 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
142
216
|
});
|
|
143
217
|
/** The values the styles' :host-state() rules test. */
|
|
144
218
|
const hostState = computed(() => [
|
|
219
|
+
checkedProps.value.fixed && "fixed",
|
|
220
|
+
checkedProps.value.padding && "padding",
|
|
221
|
+
checkedProps.value.padding != null && `padding=${encodeURIComponent(checkedProps.value.padding)}`,
|
|
222
|
+
checkedProps.value.paddingEnd && "paddingEnd",
|
|
223
|
+
checkedProps.value.paddingEnd != null && `paddingEnd=${encodeURIComponent(checkedProps.value.paddingEnd)}`,
|
|
145
224
|
checkedProps.value.gap && "gap",
|
|
146
225
|
checkedProps.value.gap != null && `gap=${encodeURIComponent(checkedProps.value.gap)}`,
|
|
147
226
|
checkedProps.value.align && "align",
|
|
@@ -154,8 +233,11 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
154
233
|
return (_ctx, _cache) => {
|
|
155
234
|
return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-cluster" }, nativeAttrs(_ctx.$attrs), {
|
|
156
235
|
"data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
|
|
236
|
+
"data-fixed": reflectedProp("fixed", "fixed", checkedProps.value.fixed, void 0, false),
|
|
157
237
|
"data-gap": reflectedProp("gap", "gap", checkedProps.value.gap, void 0, false),
|
|
158
238
|
"data-justify": reflectedProp("justify", "justify", checkedProps.value.justify, void 0, false),
|
|
239
|
+
"data-padding": reflectedProp("padding", "padding", checkedProps.value.padding, void 0, false),
|
|
240
|
+
"data-padding-end": reflectedProp("paddingEnd", "padding-end", checkedProps.value.paddingEnd, void 0, false),
|
|
159
241
|
"data-wrap": reflectedProp("wrap", "wrap", checkedProps.value.wrap, void 0, false),
|
|
160
242
|
"data-ui-cluster-state": hostState.value || void 0
|
|
161
243
|
}), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1)), [[unref(vPropValidity), {
|
|
@@ -164,6 +246,6 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
164
246
|
}]]);
|
|
165
247
|
};
|
|
166
248
|
}
|
|
167
|
-
}), [["__scopeId", "data-v-
|
|
249
|
+
}), [["__scopeId", "data-v-acd23e4a"]]);
|
|
168
250
|
//#endregion
|
|
169
251
|
export { UiCluster_default as t };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { a as vPropValidity, n as checkedProp } from "./props.js";
|
|
3
|
+
import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
|
|
4
|
+
//#region .build/vue/UiEditorSurface.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _hoisted_1 = ["data-density", "data-ui-editor-surface-state"];
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region .build/vue/UiEditorSurface.vue
|
|
8
|
+
var UiEditorSurface_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
9
|
+
inheritAttrs: false,
|
|
10
|
+
__name: "UiEditorSurface",
|
|
11
|
+
props: { density: {
|
|
12
|
+
type: null,
|
|
13
|
+
default: "comfortable"
|
|
14
|
+
} },
|
|
15
|
+
setup(__props) {
|
|
16
|
+
const propValidityContract = { props: { density: {
|
|
17
|
+
type: {
|
|
18
|
+
kind: "terminal",
|
|
19
|
+
name: "keyword"
|
|
20
|
+
},
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: "density" },
|
|
23
|
+
description: "The document canvas. comfortable preserves the editor's normal room and mobile toolbar clearance. compact fits a read-only excerpt to its content without\n outer padding.",
|
|
24
|
+
values: ["comfortable", "compact"],
|
|
25
|
+
default: "comfortable"
|
|
26
|
+
} } };
|
|
27
|
+
const props = __props;
|
|
28
|
+
const acceptedProps = { density: "comfortable" };
|
|
29
|
+
const checkedProps = computed(() => ({ density: checkedProp(props["density"], {
|
|
30
|
+
kind: "terminal",
|
|
31
|
+
name: "keyword"
|
|
32
|
+
}, false, "density", acceptedProps) }));
|
|
33
|
+
checkedProps.value;
|
|
34
|
+
watchSyncEffect(() => {
|
|
35
|
+
checkedProps.value;
|
|
36
|
+
});
|
|
37
|
+
function nativeAttrs(attrs) {
|
|
38
|
+
const names = Object.keys(attrs);
|
|
39
|
+
if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs;
|
|
40
|
+
return Object.fromEntries(names.map((name) => [Object.hasOwn(Object.prototype, name) ? name === "__proto__" ? "__Proto__" : name[0].toUpperCase() + name.slice(1) : name, attrs[name]]));
|
|
41
|
+
}
|
|
42
|
+
const componentInstance = getCurrentInstance();
|
|
43
|
+
function reflectedProp(name, kebab, value, fallback, bound, separator) {
|
|
44
|
+
const incoming = componentInstance?.vnode.props;
|
|
45
|
+
if (!bound && (incoming === null || incoming === void 0 || !Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab))) return fallback;
|
|
46
|
+
if (value === null || value === void 0) return void 0;
|
|
47
|
+
return Array.isArray(value) && separator !== void 0 ? value.join(separator) : typeof value === "object" ? JSON.stringify(value) : String(value);
|
|
48
|
+
}
|
|
49
|
+
const hydrationNode = getCurrentInstance()?.vnode.el;
|
|
50
|
+
if (typeof window !== "undefined" && hydrationNode != null && (!(hydrationNode instanceof Element) || hydrationNode.localName !== "div")) throw Object.assign(/* @__PURE__ */ new Error("HR005: Server markup for <ui-editor-surface> has an incompatible root."), {
|
|
51
|
+
name: "HtmlDiagnosticError",
|
|
52
|
+
diagnostic: Object.freeze({
|
|
53
|
+
code: "HR005",
|
|
54
|
+
message: "Server markup for <ui-editor-surface> has an incompatible root."
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
/** The values the styles' :host-state() rules test. */
|
|
58
|
+
const hostState = computed(() => [checkedProps.value.density && "density", checkedProps.value.density != null && `density=${encodeURIComponent(checkedProps.value.density)}`].filter(Boolean).join(" "));
|
|
59
|
+
return (_ctx, _cache) => {
|
|
60
|
+
return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-editor-surface" }, nativeAttrs(_ctx.$attrs), {
|
|
61
|
+
"data-density": reflectedProp("density", "density", checkedProps.value.density, void 0, false),
|
|
62
|
+
"data-ui-editor-surface-state": hostState.value || void 0
|
|
63
|
+
}), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1)), [[unref(vPropValidity), {
|
|
64
|
+
contract: propValidityContract,
|
|
65
|
+
values: { ...props }
|
|
66
|
+
}]]);
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}), [["__scopeId", "data-v-7e72ed22"]]);
|
|
70
|
+
//#endregion
|
|
71
|
+
export { UiEditorSurface_default as t };
|
package/vue/chunks/UiListItem.js
CHANGED
|
@@ -6,6 +6,7 @@ var _hoisted_1 = [
|
|
|
6
6
|
"aria-current",
|
|
7
7
|
"data-current",
|
|
8
8
|
"data-highlighted",
|
|
9
|
+
"data-leading-interactive",
|
|
9
10
|
"data-variant",
|
|
10
11
|
"data-wrap",
|
|
11
12
|
"data-ui-list-item-state"
|
|
@@ -29,6 +30,10 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
29
30
|
type: null,
|
|
30
31
|
default: false
|
|
31
32
|
},
|
|
33
|
+
leadingInteractive: {
|
|
34
|
+
type: null,
|
|
35
|
+
default: false
|
|
36
|
+
},
|
|
32
37
|
variant: {
|
|
33
38
|
type: null,
|
|
34
39
|
default: "row"
|
|
@@ -60,6 +65,16 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
60
65
|
description: "Gives an item a quiet accent wash without changing its text or announcing selection. Several items may be highlighted, such as new messages. Describe the\n reason in the item's text; use current only for the current destination.",
|
|
61
66
|
default: false
|
|
62
67
|
},
|
|
68
|
+
leadingInteractive: {
|
|
69
|
+
type: {
|
|
70
|
+
kind: "terminal",
|
|
71
|
+
name: "boolean"
|
|
72
|
+
},
|
|
73
|
+
required: false,
|
|
74
|
+
target: { attribute: "leadinginteractive" },
|
|
75
|
+
description: "Makes the leading region an independent control above the row link. Use it for a checkbox or button; keep noninteractive row icons in the title link when\n combining them with a leading control.",
|
|
76
|
+
default: false
|
|
77
|
+
},
|
|
63
78
|
variant: {
|
|
64
79
|
type: {
|
|
65
80
|
kind: "terminal",
|
|
@@ -86,6 +101,7 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
86
101
|
const acceptedProps = {
|
|
87
102
|
current: false,
|
|
88
103
|
highlighted: false,
|
|
104
|
+
leadingInteractive: false,
|
|
89
105
|
variant: "row",
|
|
90
106
|
wrap: false
|
|
91
107
|
};
|
|
@@ -98,6 +114,10 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
98
114
|
kind: "terminal",
|
|
99
115
|
name: "boolean"
|
|
100
116
|
}, false, "highlighted", acceptedProps),
|
|
117
|
+
leadingInteractive: checkedProp(props["leadingInteractive"], {
|
|
118
|
+
kind: "terminal",
|
|
119
|
+
name: "boolean"
|
|
120
|
+
}, false, "leadingInteractive", acceptedProps),
|
|
101
121
|
variant: checkedProp(props["variant"], {
|
|
102
122
|
kind: "terminal",
|
|
103
123
|
name: "keyword"
|
|
@@ -137,6 +157,7 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
137
157
|
checkedProps.value.variant != null && `variant=${encodeURIComponent(checkedProps.value.variant)}`,
|
|
138
158
|
checkedProps.value.highlighted && "highlighted",
|
|
139
159
|
checkedProps.value.current && "current",
|
|
160
|
+
checkedProps.value.leadingInteractive && "leadingInteractive",
|
|
140
161
|
checkedProps.value.wrap && "wrap"
|
|
141
162
|
].filter(Boolean).join(" "));
|
|
142
163
|
return (_ctx, _cache) => {
|
|
@@ -144,6 +165,7 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
144
165
|
"aria-current": checkedProps.value.current ?? void 0,
|
|
145
166
|
"data-current": reflectedProp("current", "current", checkedProps.value.current, void 0, false),
|
|
146
167
|
"data-highlighted": reflectedProp("highlighted", "highlighted", checkedProps.value.highlighted, void 0, false),
|
|
168
|
+
"data-leading-interactive": reflectedProp("leadingInteractive", "leading-interactive", checkedProps.value.leadingInteractive, void 0, false),
|
|
147
169
|
"data-variant": reflectedProp("variant", "variant", checkedProps.value.variant, void 0, false),
|
|
148
170
|
"data-wrap": reflectedProp("wrap", "wrap", checkedProps.value.wrap, void 0, false),
|
|
149
171
|
"data-ui-list-item-state": hostState.value || void 0
|
|
@@ -157,6 +179,6 @@ var UiListItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
157
179
|
}]]);
|
|
158
180
|
};
|
|
159
181
|
}
|
|
160
|
-
}), [["__scopeId", "data-v-
|
|
182
|
+
}), [["__scopeId", "data-v-8b9a3e2b"]]);
|
|
161
183
|
//#endregion
|
|
162
184
|
export { UiListItem_default as t };
|
|
@@ -4,6 +4,7 @@ import { a as vPropValidity, n as checkedProp, r as propValidityState } from "./
|
|
|
4
4
|
import { computed, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, renderSlot, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
|
|
5
5
|
//#region .build/vue/UiScrollArea.vue?vue&type=script&setup=true&lang.ts
|
|
6
6
|
var _hoisted_1 = [
|
|
7
|
+
"data-fill",
|
|
7
8
|
"data-orientation",
|
|
8
9
|
"data-size",
|
|
9
10
|
"data-ui-scroll-area-state"
|
|
@@ -14,6 +15,10 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
14
15
|
inheritAttrs: false,
|
|
15
16
|
__name: "UiScrollArea",
|
|
16
17
|
props: {
|
|
18
|
+
fill: {
|
|
19
|
+
type: null,
|
|
20
|
+
default: false
|
|
21
|
+
},
|
|
17
22
|
orientation: {
|
|
18
23
|
type: null,
|
|
19
24
|
default: "vertical"
|
|
@@ -25,6 +30,16 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
25
30
|
},
|
|
26
31
|
setup(__props) {
|
|
27
32
|
const propValidityContract = { props: {
|
|
33
|
+
fill: {
|
|
34
|
+
type: {
|
|
35
|
+
kind: "terminal",
|
|
36
|
+
name: "boolean"
|
|
37
|
+
},
|
|
38
|
+
required: false,
|
|
39
|
+
target: { attribute: "fill" },
|
|
40
|
+
description: "Grows into remaining space within a flex layout while keeping content independently scrollable.",
|
|
41
|
+
default: false
|
|
42
|
+
},
|
|
28
43
|
orientation: {
|
|
29
44
|
type: {
|
|
30
45
|
kind: "terminal",
|
|
@@ -55,10 +70,15 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
55
70
|
} };
|
|
56
71
|
const props = __props;
|
|
57
72
|
const acceptedProps = {
|
|
73
|
+
fill: false,
|
|
58
74
|
orientation: "vertical",
|
|
59
75
|
size: "content"
|
|
60
76
|
};
|
|
61
77
|
const checkedProps = computed(() => ({
|
|
78
|
+
fill: checkedProp(props["fill"], {
|
|
79
|
+
kind: "terminal",
|
|
80
|
+
name: "boolean"
|
|
81
|
+
}, false, "fill", acceptedProps),
|
|
62
82
|
orientation: checkedProp(props["orientation"], {
|
|
63
83
|
kind: "terminal",
|
|
64
84
|
name: "keyword"
|
|
@@ -97,6 +117,7 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
97
117
|
});
|
|
98
118
|
/** The values the styles' :host-state() rules test. */
|
|
99
119
|
const hostState = computed(() => [
|
|
120
|
+
checkedProps.value.fill && "fill",
|
|
100
121
|
checkedProps.value.orientation && "orientation",
|
|
101
122
|
checkedProps.value.orientation != null && `orientation=${encodeURIComponent(checkedProps.value.orientation)}`,
|
|
102
123
|
checkedProps.value.size && "size",
|
|
@@ -116,7 +137,11 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
116
137
|
const kebab = name.replace(/[A-Z]/g, (letter) => "-" + letter.toLowerCase());
|
|
117
138
|
return incoming !== null && incoming !== void 0 ? incoming[name] ?? incoming[kebab] ?? null : null;
|
|
118
139
|
},
|
|
119
|
-
propNames: [
|
|
140
|
+
propNames: [
|
|
141
|
+
"fill",
|
|
142
|
+
"orientation",
|
|
143
|
+
"size"
|
|
144
|
+
],
|
|
120
145
|
propValidity: (name) => propValidityState({
|
|
121
146
|
contract: propValidityContract,
|
|
122
147
|
values: { ...props }
|
|
@@ -125,6 +150,7 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
125
150
|
});
|
|
126
151
|
return (_ctx, _cache) => {
|
|
127
152
|
return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-scroll-area" }, nativeAttrs(_ctx.$attrs), {
|
|
153
|
+
"data-fill": reflectedProp("fill", "fill", checkedProps.value.fill, void 0, false),
|
|
128
154
|
"data-orientation": reflectedProp("orientation", "orientation", checkedProps.value.orientation, void 0, false),
|
|
129
155
|
"data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
|
|
130
156
|
"data-ui-scroll-area-state": hostState.value || void 0,
|
|
@@ -140,6 +166,6 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
140
166
|
}]]);
|
|
141
167
|
};
|
|
142
168
|
}
|
|
143
|
-
}), [["__scopeId", "data-v-
|
|
169
|
+
}), [["__scopeId", "data-v-1f6366dd"]]);
|
|
144
170
|
//#endregion
|
|
145
171
|
export { UiScrollArea_default as t };
|