@threadlabs/looma 0.7.3 → 0.8.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-avatar/ui-avatar.html +1 -1
- package/components/ui-avatar-group/ui-avatar-group.html +1 -1
- package/components/ui-badge/ui-badge.html +20 -0
- package/components/ui-button/ui-button.html +38 -15
- package/components/ui-combobox/ui-combobox.html +1 -1
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +1 -1
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +1 -1
- package/components/ui-form-field/ui-form-field.html +3 -3
- package/components/ui-tree-item/ui-tree-item.html +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-avatar-group.css +1 -1
- package/styles/ui-avatar.css +1 -1
- package/styles/ui-badge.css +22 -0
- package/styles/ui-button.css +20 -14
- package/styles/ui-combobox.css +1 -1
- package/styles/ui-editor-slash-menu.css +1 -1
- package/styles/ui-editor-table-context-menu.css +1 -1
- package/styles/ui-editor-table-toolbar.css +1 -1
- package/styles/ui-form-field.css +3 -3
- package/styles/ui-tree-item.css +1 -1
- package/tokens.css +2 -3
- package/vanilla/UiBadge.d.ts +1 -0
- package/vanilla/UiBadge.js +4 -2
- package/vanilla/UiButton.d.ts +5 -0
- package/vanilla/UiButton.js +8 -6
- package/vue/UiAvatar.vue +1 -1
- package/vue/UiAvatarGroup.vue +1 -1
- package/vue/UiBadge.d.ts +2 -0
- package/vue/UiBadge.vue +29 -0
- package/vue/UiButton.d.ts +9 -2
- package/vue/UiButton.vue +48 -18
- package/vue/UiCombobox.vue +1 -1
- package/vue/UiEditorSlashMenu.vue +1 -1
- package/vue/UiEditorTableContextMenu.vue +1 -1
- package/vue/UiEditorTableToolbar.vue +1 -1
- package/vue/UiFormField.vue +3 -3
- package/vue/UiTreeItem.vue +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBadge.js +7 -2
- package/vue/chunks/UiButton.js +52 -10
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiFormField.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +270 -241
package/vue/UiButton.vue
CHANGED
|
@@ -6,19 +6,26 @@ defineOptions({ inheritAttrs: false })
|
|
|
6
6
|
|
|
7
7
|
const props = withDefaults(
|
|
8
8
|
defineProps<{
|
|
9
|
+
as?: 'button' | 'a'
|
|
9
10
|
align?: 'center' | 'start'
|
|
10
11
|
disabled?: boolean
|
|
12
|
+
href?: string
|
|
13
|
+
rel?: string
|
|
11
14
|
size?: 'sm' | 'md' | 'lg'
|
|
12
15
|
stretch?: boolean
|
|
16
|
+
target?: string
|
|
13
17
|
tone?: 'accent' | 'neutral' | 'danger' | 'success' | 'warning' | 'info'
|
|
18
|
+
type?: 'button' | 'submit' | 'reset'
|
|
14
19
|
variant?: 'outline' | 'solid' | 'danger' | 'ghost' | 'link'
|
|
15
20
|
}>(),
|
|
16
21
|
{
|
|
22
|
+
as: 'button',
|
|
17
23
|
align: 'center',
|
|
18
24
|
disabled: false,
|
|
19
25
|
size: 'md',
|
|
20
26
|
stretch: false,
|
|
21
27
|
tone: 'accent',
|
|
28
|
+
type: 'button',
|
|
22
29
|
variant: 'outline',
|
|
23
30
|
},
|
|
24
31
|
)
|
|
@@ -33,18 +40,38 @@ const hostState = computed(() =>
|
|
|
33
40
|
props.tone && `tone tone=${props.tone}`,
|
|
34
41
|
].filter(Boolean).join(' ')
|
|
35
42
|
)
|
|
43
|
+
|
|
44
|
+
function text(value: unknown): string {
|
|
45
|
+
if (Array.isArray(value)) return value.map(text).join(' ')
|
|
46
|
+
return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function attribute(value: unknown): any {
|
|
50
|
+
if (
|
|
51
|
+
value === null || value === undefined || value === false
|
|
52
|
+
|| (typeof value === 'object' && !Array.isArray(value))
|
|
53
|
+
) return undefined
|
|
54
|
+
return value === true ? '' : text(value)
|
|
55
|
+
}
|
|
36
56
|
</script>
|
|
37
57
|
|
|
38
58
|
<template>
|
|
39
|
-
<
|
|
59
|
+
<component
|
|
60
|
+
:is="as"
|
|
40
61
|
data-component="ui-button"
|
|
41
|
-
type="button"
|
|
42
62
|
v-bind="$attrs"
|
|
43
|
-
:
|
|
63
|
+
:type="attribute(({ true: type, false: null })[`${!href}`])"
|
|
64
|
+
:disabled="attribute(({ true: true, false: null })[`${disabled && !href}`])"
|
|
65
|
+
:href="attribute(({ true: null, false: href })[`${disabled}`])"
|
|
66
|
+
:target="target"
|
|
67
|
+
:rel="rel"
|
|
68
|
+
:aria-disabled="typeof (({ true: 'true', false: null })[`${Boolean(disabled && href)}`]) === 'boolean'
|
|
69
|
+
? String(({ true: 'true', false: null })[`${Boolean(disabled && href)}`])
|
|
70
|
+
: attribute(({ true: 'true', false: null })[`${Boolean(disabled && href)}`])"
|
|
44
71
|
:data-ui-button-state="hostState || undefined"
|
|
45
72
|
>
|
|
46
73
|
<slot />
|
|
47
|
-
</
|
|
74
|
+
</component>
|
|
48
75
|
</template>
|
|
49
76
|
|
|
50
77
|
<style scoped>
|
|
@@ -89,6 +116,7 @@ const hostState = computed(() =>
|
|
|
89
116
|
color: var(--ui-button-text, var(--_tone-text));
|
|
90
117
|
font: inherit;
|
|
91
118
|
font-weight: var(--ui-font-medium);
|
|
119
|
+
text-decoration: none;
|
|
92
120
|
line-height: var(--ui-line-height-tight);
|
|
93
121
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
94
122
|
background-image: var(--ui-raised-highlight);
|
|
@@ -112,22 +140,24 @@ const hostState = computed(() =>
|
|
|
112
140
|
[data-component~="ui-button"][data-ui-button-state~="size=sm"] {
|
|
113
141
|
min-block-size: var(--ui-control-size-sm);
|
|
114
142
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
115
|
-
font-size:
|
|
143
|
+
font-size: var(--ui-font-size-sm);
|
|
116
144
|
}
|
|
117
145
|
|
|
118
146
|
[data-component~="ui-button"][data-ui-button-state~="size=lg"] {
|
|
119
147
|
min-block-size: var(--ui-control-size-lg);
|
|
120
148
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
121
|
-
font-size:
|
|
149
|
+
font-size: var(--ui-font-size-md);
|
|
122
150
|
}
|
|
123
151
|
|
|
124
|
-
|
|
152
|
+
/* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
|
|
153
|
+
is exactly :enabled, at the same specificity, and it also matches a link that can be followed. */
|
|
154
|
+
[data-component~="ui-button"]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
125
155
|
border-color: var(--ui-button-hover-border, var(--_tone-hover));
|
|
126
156
|
background-color: var(--ui-button-hover-surface, oklch(from var(--_tone) l c h / 12%));
|
|
127
157
|
}
|
|
128
158
|
|
|
129
159
|
/* Pressed reads as pressed in: the highlight goes, and the shadow moves inside. */
|
|
130
|
-
[data-component~="ui-button"]:active:
|
|
160
|
+
[data-component~="ui-button"]:active:not(:disabled, [aria-disabled="true"]) {
|
|
131
161
|
background-color: var(--ui-button-active-surface, oklch(from var(--_tone) l c h / 18%));
|
|
132
162
|
background-image: none;
|
|
133
163
|
box-shadow: var(--ui-pressed);
|
|
@@ -141,12 +171,12 @@ const hostState = computed(() =>
|
|
|
141
171
|
box-shadow: var(--ui-button-solid-shadow, var(--ui-raised));
|
|
142
172
|
}
|
|
143
173
|
|
|
144
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"], [data-component~="ui-button"][data-ui-button-state~="variant=danger"]):hover:
|
|
174
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"], [data-component~="ui-button"][data-ui-button-state~="variant=danger"]):hover:not(:disabled, [aria-disabled="true"]) {
|
|
145
175
|
background-color: var(--_tone-hover);
|
|
146
176
|
border-color: var(--_tone-hover);
|
|
147
177
|
}
|
|
148
178
|
|
|
149
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"], [data-component~="ui-button"][data-ui-button-state~="variant=danger"]):active:
|
|
179
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"], [data-component~="ui-button"][data-ui-button-state~="variant=danger"]):active:not(:disabled, [aria-disabled="true"]) {
|
|
150
180
|
background-color: var(--_tone-active);
|
|
151
181
|
border-color: var(--_tone-active);
|
|
152
182
|
background-image: none;
|
|
@@ -204,12 +234,12 @@ const hostState = computed(() =>
|
|
|
204
234
|
}
|
|
205
235
|
|
|
206
236
|
/* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
|
|
207
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:hover:
|
|
237
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
208
238
|
background-color: var(--ui-button-ghost-hover-surface, oklch(from var(--_tone) l c h / 10%));
|
|
209
239
|
border-color: transparent;
|
|
210
240
|
}
|
|
211
241
|
|
|
212
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:active:
|
|
242
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:active:not(:disabled, [aria-disabled="true"]) {
|
|
213
243
|
background-color: var(--ui-button-ghost-active-surface, oklch(from var(--_tone) l c h / 16%));
|
|
214
244
|
border-color: transparent;
|
|
215
245
|
box-shadow: var(--ui-pressed);
|
|
@@ -233,7 +263,7 @@ const hostState = computed(() =>
|
|
|
233
263
|
disabled outline is still an outline and a disabled ghost still has no edge. Intent goes — an
|
|
234
264
|
unavailable action says "unavailable", not "unavailable, and destructive" — and so do the
|
|
235
265
|
highlight and shadow, because nothing that cannot be pressed should look raised. */
|
|
236
|
-
[data-component~="ui-button"]:disabled {
|
|
266
|
+
[data-component~="ui-button"]:is(:disabled, [aria-disabled="true"]) {
|
|
237
267
|
/* Derived from the tone itself, not from a separate disabled palette: faded toward the
|
|
238
268
|
page, which desaturates it at the same time. Toward the page rather than toward white,
|
|
239
269
|
so a dark theme dims where a light one lightens — the same rule, both schemes. */
|
|
@@ -250,7 +280,7 @@ const hostState = computed(() =>
|
|
|
250
280
|
}
|
|
251
281
|
|
|
252
282
|
/* A filled button keeps its fill, faded further so its text stays legible on it. */
|
|
253
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"], [data-component~="ui-button"][data-ui-button-state~="variant=danger"]):disabled {
|
|
283
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"], [data-component~="ui-button"][data-ui-button-state~="variant=danger"]):is(:disabled, [aria-disabled="true"]) {
|
|
254
284
|
--_tone: color-mix(in oklab, var(--_hue) 34%, var(--ui-surface));
|
|
255
285
|
}
|
|
256
286
|
|
|
@@ -258,7 +288,7 @@ const hostState = computed(() =>
|
|
|
258
288
|
it takes a surface rather than reading as plain text. The surface is a wash of the faded tone,
|
|
259
289
|
the way hover washes the live one, so it stays light in every tone. An opaque mix toward the
|
|
260
290
|
hue came out a mid-grey slab for neutral, whose hue is the ink: louder than the enabled button. */
|
|
261
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:disabled {
|
|
291
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:is(:disabled, [aria-disabled="true"]) {
|
|
262
292
|
background-color: oklch(from var(--_tone) l c h / 14%);
|
|
263
293
|
border-color: transparent;
|
|
264
294
|
}
|
|
@@ -290,19 +320,19 @@ const hostState = computed(() =>
|
|
|
290
320
|
text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
291
321
|
}
|
|
292
322
|
|
|
293
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:hover:
|
|
323
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
294
324
|
color: var(--ui-button-link-hover-text, var(--ui-text-primary));
|
|
295
325
|
text-decoration-color: currentColor;
|
|
296
326
|
background: none;
|
|
297
327
|
transform: none;
|
|
298
328
|
}
|
|
299
329
|
|
|
300
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:active:
|
|
330
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:active:not(:disabled, [aria-disabled="true"]) {
|
|
301
331
|
background: none;
|
|
302
332
|
transform: none;
|
|
303
333
|
}
|
|
304
334
|
|
|
305
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:disabled {
|
|
335
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:is(:disabled, [aria-disabled="true"]) {
|
|
306
336
|
background: none;
|
|
307
337
|
border-color: transparent;
|
|
308
338
|
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
package/vue/UiCombobox.vue
CHANGED
|
@@ -648,7 +648,7 @@ defineExpose({
|
|
|
648
648
|
}
|
|
649
649
|
label {
|
|
650
650
|
color: var(--ui-combobox-label-text, var(--ui-text-primary));
|
|
651
|
-
font-size: var(--ui-combobox-label-font-size,
|
|
651
|
+
font-size: var(--ui-combobox-label-font-size, var(--ui-font-size-sm));
|
|
652
652
|
font-weight: 500;
|
|
653
653
|
}
|
|
654
654
|
/* The field and anything that annotates it sit on one row; the help button is beside the box,
|
|
@@ -246,7 +246,7 @@ useComponentHost(controllerModule.default, {
|
|
|
246
246
|
align-items: center;
|
|
247
247
|
justify-content: center;
|
|
248
248
|
font-family: var(--ui-font-family-mono, ui-monospace, monospace);
|
|
249
|
-
font-size:
|
|
249
|
+
font-size: var(--ui-font-size-2xs);
|
|
250
250
|
background: var(--ui-surface-hover);
|
|
251
251
|
border: 1px solid var(--ui-border);
|
|
252
252
|
border-radius: 3px;
|
|
@@ -260,7 +260,7 @@ useComponentHost(controllerModule.default, {
|
|
|
260
260
|
|
|
261
261
|
.heading {
|
|
262
262
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
263
|
-
font-size:
|
|
263
|
+
font-size: var(--ui-font-size-2xs);
|
|
264
264
|
font-weight: 700;
|
|
265
265
|
letter-spacing: 0.05em;
|
|
266
266
|
text-transform: uppercase;
|
|
@@ -356,7 +356,7 @@ useComponentHost(controllerModule.default, {
|
|
|
356
356
|
|
|
357
357
|
.menu-heading {
|
|
358
358
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
359
|
-
font-size:
|
|
359
|
+
font-size: var(--ui-font-size-2xs);
|
|
360
360
|
font-weight: 700;
|
|
361
361
|
letter-spacing: 0.05em;
|
|
362
362
|
text-transform: uppercase;
|
package/vue/UiFormField.vue
CHANGED
|
@@ -58,12 +58,12 @@ useComponentHost(controllerModule.default, {
|
|
|
58
58
|
|
|
59
59
|
.label {
|
|
60
60
|
color: var(--ui-text-secondary);
|
|
61
|
-
font-size:
|
|
61
|
+
font-size: var(--ui-font-size-sm);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.help {
|
|
65
65
|
color: var(--ui-text-muted);
|
|
66
|
-
font-size:
|
|
66
|
+
font-size: var(--ui-font-size-sm);
|
|
67
67
|
line-height: var(--ui-line-height-md);
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -74,7 +74,7 @@ useComponentHost(controllerModule.default, {
|
|
|
74
74
|
.error,
|
|
75
75
|
:slotted([role="alert"]) {
|
|
76
76
|
color: var(--ui-accent-active);
|
|
77
|
-
font-size:
|
|
77
|
+
font-size: var(--ui-font-size-sm);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
package/vue/UiTreeItem.vue
CHANGED
|
@@ -179,7 +179,7 @@ useComponentHost(controllerModule.default, {
|
|
|
179
179
|
align-items: center;
|
|
180
180
|
min-block-size: var(--ui-tree-item-min-block-size, var(--_tree-row-min-height));
|
|
181
181
|
min-inline-size: 0;
|
|
182
|
-
font-size: var(--ui-tree-item-font-size, var(--ui-font-size-
|
|
182
|
+
font-size: var(--ui-tree-item-font-size, var(--ui-font-size-sm));
|
|
183
183
|
border-radius: var(--ui-radius-md);
|
|
184
184
|
color: var(--ui-text-secondary);
|
|
185
185
|
transition:
|
package/vue/chunks/UiAvatar.js
CHANGED
|
@@ -44,6 +44,6 @@ var UiAvatarGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
44
44
|
}, toDisplayString(`+${overflowCount.value}`), 9, _hoisted_2)], 16, _hoisted_1);
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
}), [["__scopeId", "data-v-
|
|
47
|
+
}), [["__scopeId", "data-v-9e8e1291"]]);
|
|
48
48
|
//#endregion
|
|
49
49
|
export { UiAvatarGroup_default as t };
|
package/vue/chunks/UiBadge.js
CHANGED
|
@@ -8,17 +8,22 @@ var UiBadge_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
8
8
|
inheritAttrs: false,
|
|
9
9
|
__name: "UiBadge",
|
|
10
10
|
props: {
|
|
11
|
+
shape: { default: "pill" },
|
|
11
12
|
tone: { default: "neutral" },
|
|
12
13
|
variant: { default: "subtle" }
|
|
13
14
|
},
|
|
14
15
|
setup(__props) {
|
|
15
16
|
const props = __props;
|
|
16
17
|
/** The values the styles' :host-state() rules test. */
|
|
17
|
-
const hostState = computed(() => [
|
|
18
|
+
const hostState = computed(() => [
|
|
19
|
+
props.tone && `tone tone=${props.tone}`,
|
|
20
|
+
props.variant && `variant variant=${props.variant}`,
|
|
21
|
+
props.shape && `shape shape=${props.shape}`
|
|
22
|
+
].filter(Boolean).join(" "));
|
|
18
23
|
return (_ctx, _cache) => {
|
|
19
24
|
return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-badge" }, _ctx.$attrs, { "data-ui-badge-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
|
|
20
25
|
};
|
|
21
26
|
}
|
|
22
|
-
}), [["__scopeId", "data-v-
|
|
27
|
+
}), [["__scopeId", "data-v-c0ffc4d8"]]);
|
|
23
28
|
//#endregion
|
|
24
29
|
export { UiBadge_default as t };
|
package/vue/chunks/UiButton.js
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import { computed,
|
|
3
|
-
//#region .build/vue/UiButton.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var _hoisted_1 = ["disabled", "data-ui-button-state"];
|
|
2
|
+
import { computed, createBlock, defineComponent, mergeProps, openBlock, renderSlot, resolveDynamicComponent, withCtx } from "vue";
|
|
5
3
|
//#endregion
|
|
6
4
|
//#region .build/vue/UiButton.vue
|
|
7
5
|
var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
8
6
|
inheritAttrs: false,
|
|
9
7
|
__name: "UiButton",
|
|
10
8
|
props: {
|
|
9
|
+
as: { default: "button" },
|
|
11
10
|
align: { default: "center" },
|
|
12
11
|
disabled: {
|
|
13
12
|
type: Boolean,
|
|
14
13
|
default: false
|
|
15
14
|
},
|
|
15
|
+
href: {},
|
|
16
|
+
rel: {},
|
|
16
17
|
size: { default: "md" },
|
|
17
18
|
stretch: {
|
|
18
19
|
type: Boolean,
|
|
19
20
|
default: false
|
|
20
21
|
},
|
|
22
|
+
target: {},
|
|
21
23
|
tone: { default: "accent" },
|
|
24
|
+
type: { default: "button" },
|
|
22
25
|
variant: { default: "outline" }
|
|
23
26
|
},
|
|
24
27
|
setup(__props) {
|
|
@@ -31,16 +34,55 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
31
34
|
props.variant && `variant variant=${props.variant}`,
|
|
32
35
|
props.tone && `tone tone=${props.tone}`
|
|
33
36
|
].filter(Boolean).join(" "));
|
|
37
|
+
function text(value) {
|
|
38
|
+
if (Array.isArray(value)) return value.map(text).join(" ");
|
|
39
|
+
return value === null || value === void 0 || typeof value === "object" ? "" : String(value);
|
|
40
|
+
}
|
|
41
|
+
function attribute(value) {
|
|
42
|
+
if (value === null || value === void 0 || value === false || typeof value === "object" && !Array.isArray(value)) return void 0;
|
|
43
|
+
return value === true ? "" : text(value);
|
|
44
|
+
}
|
|
34
45
|
return (_ctx, _cache) => {
|
|
35
|
-
return openBlock(),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
return openBlock(), createBlock(resolveDynamicComponent(__props.as), mergeProps({ "data-component": "ui-button" }, _ctx.$attrs, {
|
|
47
|
+
type: attribute({
|
|
48
|
+
true: __props.type,
|
|
49
|
+
false: null
|
|
50
|
+
}[`${!__props.href}`]),
|
|
51
|
+
disabled: attribute({
|
|
52
|
+
true: true,
|
|
53
|
+
false: null
|
|
54
|
+
}[`${__props.disabled && !__props.href}`]),
|
|
55
|
+
href: attribute({
|
|
56
|
+
true: null,
|
|
57
|
+
false: __props.href
|
|
58
|
+
}[`${__props.disabled}`]),
|
|
59
|
+
target: __props.target,
|
|
60
|
+
rel: __props.rel,
|
|
61
|
+
"aria-disabled": typeof {
|
|
62
|
+
true: "true",
|
|
63
|
+
false: null
|
|
64
|
+
}[`${Boolean(__props.disabled && __props.href)}`] === "boolean" ? String({
|
|
65
|
+
true: "true",
|
|
66
|
+
false: null
|
|
67
|
+
}[`${Boolean(__props.disabled && __props.href)}`]) : attribute({
|
|
68
|
+
true: "true",
|
|
69
|
+
false: null
|
|
70
|
+
}[`${Boolean(__props.disabled && __props.href)}`]),
|
|
40
71
|
"data-ui-button-state": hostState.value || void 0
|
|
41
|
-
}),
|
|
72
|
+
}), {
|
|
73
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
|
|
74
|
+
_: 3
|
|
75
|
+
}, 16, [
|
|
76
|
+
"type",
|
|
77
|
+
"disabled",
|
|
78
|
+
"href",
|
|
79
|
+
"target",
|
|
80
|
+
"rel",
|
|
81
|
+
"aria-disabled",
|
|
82
|
+
"data-ui-button-state"
|
|
83
|
+
]);
|
|
42
84
|
};
|
|
43
85
|
}
|
|
44
|
-
}), [["__scopeId", "data-v-
|
|
86
|
+
}), [["__scopeId", "data-v-1cd0b390"]]);
|
|
45
87
|
//#endregion
|
|
46
88
|
export { UiButton_default as t };
|
package/vue/chunks/UiCombobox.js
CHANGED
|
@@ -451,6 +451,6 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
451
451
|
], 16, _hoisted_1);
|
|
452
452
|
};
|
|
453
453
|
}
|
|
454
|
-
}), [["__scopeId", "data-v-
|
|
454
|
+
}), [["__scopeId", "data-v-3b8b0ecf"]]);
|
|
455
455
|
//#endregion
|
|
456
456
|
export { UiCombobox_default as t };
|
|
@@ -95,6 +95,6 @@ var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
|
|
|
95
95
|
], 16, _hoisted_1);
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
|
-
}), [["__scopeId", "data-v-
|
|
98
|
+
}), [["__scopeId", "data-v-e7d0f904"]]);
|
|
99
99
|
//#endregion
|
|
100
100
|
export { UiEditorSlashMenu_default as t };
|
|
@@ -93,6 +93,6 @@ var UiEditorTableContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_d
|
|
|
93
93
|
}), 128))], 16, _hoisted_1);
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
|
-
}), [["__scopeId", "data-v-
|
|
96
|
+
}), [["__scopeId", "data-v-2d9eb67c"]]);
|
|
97
97
|
//#endregion
|
|
98
98
|
export { UiEditorTableContextMenu_default as t };
|
|
@@ -175,6 +175,6 @@ var UiEditorTableToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_defau
|
|
|
175
175
|
], 16, _hoisted_1);
|
|
176
176
|
};
|
|
177
177
|
}
|
|
178
|
-
}), [["__scopeId", "data-v-
|
|
178
|
+
}), [["__scopeId", "data-v-1b253cb1"]]);
|
|
179
179
|
//#endregion
|
|
180
180
|
export { UiEditorTableToolbar_default as t };
|
package/vue/chunks/UiTreeItem.js
CHANGED
|
@@ -210,6 +210,6 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
210
210
|
], 16, _hoisted_1);
|
|
211
211
|
};
|
|
212
212
|
}
|
|
213
|
-
}), [["__scopeId", "data-v-
|
|
213
|
+
}), [["__scopeId", "data-v-d093d318"]]);
|
|
214
214
|
//#endregion
|
|
215
215
|
export { UiTreeItem_default as t };
|