@xleddyl/443-components-vue 0.2.2 → 0.3.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/README.md +79 -19
- package/dist/chart/BarChart.vue.d.ts +2 -2
- package/dist/chart/ChartLegend.vue.d.ts +4 -4
- package/dist/chart/ChartPanel.vue.d.ts +2 -2
- package/dist/chart/ChartSummary.vue.d.ts +2 -2
- package/dist/chart/DoughnutChart.vue.d.ts +2 -2
- package/dist/chart/LineChart.vue.d.ts +2 -2
- package/dist/components/core/Button.vue.d.ts +2 -2
- package/dist/components/core/FieldMessage.vue +28 -0
- package/dist/components/core/FieldMessage.vue.d.ts +409 -0
- package/dist/components/core/Form.vue +22 -3
- package/dist/components/core/Form.vue.d.ts +18 -4
- package/dist/components/core/FormField.vue +37 -15
- package/dist/components/core/FormField.vue.d.ts +5 -4
- package/dist/components/core/Icon.vue.d.ts +2 -2
- package/dist/components/core/Input.vue.d.ts +4 -4
- package/dist/components/core/Kbd.vue.d.ts +2 -2
- package/dist/components/core/Root.vue.d.ts +6 -6
- package/dist/components/core/Spinner.vue +13 -1
- package/dist/components/core/Spinner.vue.d.ts +4 -2
- package/dist/components/core/Textarea.vue.d.ts +4 -4
- package/dist/components/core/VisuallyHidden.vue.d.ts +6 -6
- package/dist/components/core/index.d.ts +1 -0
- package/dist/components/core/index.mjs +1 -0
- package/dist/components/data/Avatar.vue.d.ts +2 -2
- package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
- package/dist/components/data/Badge.vue.d.ts +2 -2
- package/dist/components/data/DescriptionList.vue.d.ts +2 -2
- package/dist/components/data/FilterPill.vue +35 -0
- package/dist/components/data/FilterPill.vue.d.ts +445 -0
- package/dist/components/data/FilterPills.vue +49 -21
- package/dist/components/data/FilterPills.vue.d.ts +22 -5
- package/dist/components/data/Pagination.vue.d.ts +4 -4
- package/dist/components/data/SelectionBar.vue +78 -0
- package/dist/components/data/SelectionBar.vue.d.ts +427 -0
- package/dist/components/data/Stat.vue.d.ts +8 -8
- package/dist/components/data/Tag.vue.d.ts +4 -4
- package/dist/components/data/Timeline.vue.d.ts +2 -2
- package/dist/components/data/Tree.vue +237 -18
- package/dist/components/data/Tree.vue.d.ts +37 -10
- package/dist/components/data/index.d.ts +3 -0
- package/dist/components/data/index.mjs +3 -0
- package/dist/components/data/types.d.ts +19 -0
- package/dist/components/feedback/Alert.vue.d.ts +18 -18
- package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
- package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
- package/dist/components/feedback/Meter.vue.d.ts +2 -2
- package/dist/components/feedback/Progress.vue.d.ts +2 -2
- package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
- package/dist/components/feedback/Skeleton.vue.d.ts +3 -3
- package/dist/components/forms/Calendar.vue.d.ts +4 -4
- package/dist/components/forms/ColorInput.vue.d.ts +6 -6
- package/dist/components/forms/DateInput.vue.d.ts +14 -14
- package/dist/components/forms/DatePicker.vue.d.ts +6 -6
- package/dist/components/forms/FileInput.vue +80 -26
- package/dist/components/forms/FileInput.vue.d.ts +21 -11
- package/dist/components/forms/InputAddon.vue.d.ts +2 -2
- package/dist/components/forms/InputGroup.vue.d.ts +2 -2
- package/dist/components/forms/NumberInput.vue.d.ts +6 -6
- package/dist/components/forms/PasswordInput.vue.d.ts +16 -16
- package/dist/components/forms/PinInput.vue.d.ts +6 -6
- package/dist/components/forms/Radio.vue.d.ts +2 -2
- package/dist/components/forms/SegmentedControl.vue +32 -8
- package/dist/components/forms/SegmentedControl.vue.d.ts +15 -7
- package/dist/components/forms/Slider.vue.d.ts +6 -6
- package/dist/components/forms/Switch.vue.d.ts +6 -6
- package/dist/components/forms/TimeInput.vue.d.ts +16 -16
- package/dist/components/forms/types.d.ts +14 -0
- package/dist/components/layout/Accordion.vue +25 -5
- package/dist/components/layout/Accordion.vue.d.ts +8 -5
- package/dist/components/layout/AppShell.vue.d.ts +5 -5
- package/dist/components/layout/Breadcrumbs.vue +28 -20
- package/dist/components/layout/Breadcrumbs.vue.d.ts +18 -3
- package/dist/components/layout/Card.vue +22 -3
- package/dist/components/layout/Card.vue.d.ts +10 -4
- package/dist/components/layout/CopyButton.vue.d.ts +4 -4
- package/dist/components/layout/Grid.vue.d.ts +2 -2
- package/dist/components/layout/NavLink.vue.d.ts +8 -8
- package/dist/components/layout/PageHeader.vue +10 -1
- package/dist/components/layout/PageHeader.vue.d.ts +17 -9
- package/dist/components/layout/Separator.vue.d.ts +2 -2
- package/dist/components/layout/Sidebar.vue.d.ts +2 -2
- package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
- package/dist/components/layout/Stack.vue.d.ts +6 -6
- package/dist/components/layout/Tabs.vue +27 -6
- package/dist/components/layout/Tabs.vue.d.ts +7 -4
- package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
- package/dist/components/layout/Toolbar.vue.d.ts +2 -2
- package/dist/components/layout/types.d.ts +7 -1
- package/dist/components/overlays/CommandPalette.vue +25 -4
- package/dist/components/overlays/CommandPalette.vue.d.ts +23 -9
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -6
- package/dist/components/overlays/ConfirmHost.vue +5 -1
- package/dist/components/overlays/ConfirmHost.vue.d.ts +10 -8
- package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
- package/dist/components/overlays/Drawer.vue +4 -2
- package/dist/components/overlays/Drawer.vue.d.ts +8 -6
- package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/overlays/HoverCard.vue +2 -1
- package/dist/components/overlays/HoverCard.vue.d.ts +6 -6
- package/dist/components/overlays/Modal.vue +5 -3
- package/dist/components/overlays/Modal.vue.d.ts +8 -6
- package/dist/components/overlays/Popover.vue +2 -1
- package/dist/components/overlays/Popover.vue.d.ts +6 -6
- package/dist/components/overlays/Toaster.vue.d.ts +4 -4
- package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
- package/dist/components/overlays/types.d.ts +4 -1
- package/dist/components/templates/AccountMenu.vue.d.ts +6 -6
- package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
- package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
- package/dist/components/templates/Brand.vue +34 -5
- package/dist/components/templates/Brand.vue.d.ts +20 -15
- package/dist/components/templates/DashboardLayout.vue +40 -4
- package/dist/components/templates/DashboardLayout.vue.d.ts +34 -22
- package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
- package/dist/components/templates/DetailPage.vue.d.ts +4 -4
- package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
- package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
- package/dist/components/templates/ListPage.vue +16 -10
- package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
- package/dist/components/templates/SaveBar.vue.d.ts +4 -4
- package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
- package/dist/components/templates/SettingsModal.vue +5 -2
- package/dist/components/templates/SettingsModal.vue.d.ts +13 -8
- package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
- package/dist/components/templates/SettingsSection.vue.d.ts +12 -8
- package/dist/components/templates/types.d.ts +24 -1
- package/dist/composables/core.d.ts +1 -0
- package/dist/composables/core.mjs +1 -0
- package/dist/composables/useField.d.ts +2 -0
- package/dist/composables/useField.mjs +5 -2
- package/dist/composables/useFieldBoundary.d.ts +1 -0
- package/dist/composables/useFieldBoundary.mjs +5 -0
- package/dist/composables/useFileDrop.d.ts +7 -0
- package/dist/composables/useFileDrop.mjs +114 -7
- package/dist/composables/useForm.d.ts +32 -19
- package/dist/composables/useForm.mjs +212 -45
- package/dist/editor/RichTextEditor.vue +30 -3
- package/dist/editor/RichTextEditor.vue.d.ts +11 -6
- package/dist/editor/rich-text-editor.css +1 -1
- package/dist/editor/types.d.ts +3 -0
- package/dist/grid/GridToolbar.vue.d.ts +4 -4
- package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
- package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
- package/dist/grid/cells/DateCell.vue.d.ts +2 -2
- package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
- package/dist/grid/cells/LinkCell.vue.d.ts +2 -2
- package/dist/internal/data/tree.d.ts +8 -0
- package/dist/internal/data/tree.mjs +41 -0
- package/dist/internal/forms/FormAlerts.vue +25 -0
- package/dist/internal/forms/FormAlerts.vue.d.ts +393 -0
- package/dist/internal/forms/files.d.ts +2 -0
- package/dist/internal/forms/files.mjs +8 -1
- package/dist/internal/forms/standard-schema.d.ts +17 -0
- package/dist/internal/forms/standard-schema.mjs +40 -0
- package/dist/internal/overlays/DialogFrame.vue +17 -7
- package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
- package/dist/internal/overlays/FieldBoundary.d.ts +4 -0
- package/dist/internal/overlays/FieldBoundary.mjs +9 -0
- package/dist/internal/overlays/MenuList.vue +2 -0
- package/dist/internal/overlays/MenuList.vue.d.ts +5 -5
- package/dist/internal/overlays/OverlayView.vue +2 -0
- package/dist/internal/overlays/OverlayView.vue.d.ts +14 -12
- package/dist/internal/overlays/dialog.d.ts +4 -1
- package/dist/internal/overlays/dialog.mjs +39 -5
- package/dist/internal/overlays/stack.d.ts +2 -1
- package/dist/locale/en.mjs +17 -2
- package/dist/locale/it.mjs +17 -2
- package/dist/locale/types.d.ts +15 -0
- package/dist/nuxt/module.d.ts +5 -4
- package/dist/nuxt/module.mjs +9 -6
- package/dist/nuxt/runtime/layouts/auth.vue.d.ts +8 -8
- package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +8 -8
- package/dist/styles/base.css +7 -0
- package/dist/styles/core/field-message.css +34 -0
- package/dist/styles/core/form-field.css +0 -23
- package/dist/styles/core/form.css +11 -0
- package/dist/styles/core/kbd.css +2 -2
- package/dist/styles/core/spinner.css +19 -0
- package/dist/styles/core.css +1 -0
- package/dist/styles/data/badge.css +1 -1
- package/dist/styles/data/filter-pills.css +40 -3
- package/dist/styles/data/selection-bar.css +85 -0
- package/dist/styles/data/tree.css +156 -1
- package/dist/styles/data.css +1 -0
- package/dist/styles/forms/calendar.css +1 -1
- package/dist/styles/forms/file-input.css +8 -0
- package/dist/styles/forms/segmented.css +8 -0
- package/dist/styles/forms/select.css +1 -1
- package/dist/styles/forms/slider.css +2 -2
- package/dist/styles/layout/accordion.css +16 -0
- package/dist/styles/layout/app-shell.css +4 -0
- package/dist/styles/layout/breadcrumbs.css +16 -1
- package/dist/styles/layout/card.css +19 -1
- package/dist/styles/layout/nav-link.css +1 -1
- package/dist/styles/layout/sidebar.css +1 -1
- package/dist/styles/layout/tabs.css +43 -1
- package/dist/styles/overlays/command.css +20 -2
- package/dist/styles/overlays/menu.css +1 -1
- package/dist/styles/overlays/modal.css +38 -0
- package/dist/styles/templates/brand.css +15 -0
- package/dist/styles/templates/empty-page.css +1 -1
- package/dist/styles/templates/list-page.css +2 -6
- package/dist/styles/templates/settings-modal.css +2 -2
- package/package.json +1 -1
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
<header v-if="hasHeader" :class="`${prefix}-header`">
|
|
15
15
|
<slot name="header" :close="close" :title-id="titleId" :description-id="descriptionId">
|
|
16
16
|
<div :class="`${prefix}-heading`">
|
|
17
|
-
<
|
|
17
|
+
<div v-if="slots['title-trailing']" :class="`${prefix}-title-row`">
|
|
18
|
+
<h2 v-if="hasTitle" :id="titleId" :class="`${prefix}-title`">
|
|
19
|
+
<slot name="title">{{ title }}</slot>
|
|
20
|
+
</h2>
|
|
21
|
+
<slot name="title-trailing" />
|
|
22
|
+
</div>
|
|
23
|
+
<h2 v-else-if="hasTitle" :id="titleId" :class="`${prefix}-title`">
|
|
18
24
|
<slot name="title">{{ title }}</slot>
|
|
19
25
|
</h2>
|
|
20
26
|
<p v-if="hasDescription" :id="descriptionId" :class="`${prefix}-description`">
|
|
@@ -33,7 +39,7 @@
|
|
|
33
39
|
:disabled="loading"
|
|
34
40
|
:class="`${prefix}-close`"
|
|
35
41
|
:aria-label="closeText"
|
|
36
|
-
@click="close"
|
|
42
|
+
@click="requestClose('close-button')"
|
|
37
43
|
/>
|
|
38
44
|
</div>
|
|
39
45
|
</header>
|
|
@@ -51,6 +57,7 @@
|
|
|
51
57
|
import { computed, useId, useTemplateRef } from "vue";
|
|
52
58
|
import Button from "../../components/core/Button.vue";
|
|
53
59
|
import { useLocale } from "../../composables/useLocale";
|
|
60
|
+
import { provideFieldBoundary } from "../../composables/useFieldBoundary";
|
|
54
61
|
import { useModalDialog } from "./dialog";
|
|
55
62
|
const props = defineProps({
|
|
56
63
|
prefix: { type: String, required: true },
|
|
@@ -61,8 +68,10 @@ const props = defineProps({
|
|
|
61
68
|
hideClose: { type: Boolean, required: false },
|
|
62
69
|
closeLabel: { type: String, required: false },
|
|
63
70
|
flush: { type: Boolean, required: false },
|
|
64
|
-
loading: { type: Boolean, required: false }
|
|
71
|
+
loading: { type: Boolean, required: false },
|
|
72
|
+
beforeClose: { type: Function, required: false }
|
|
65
73
|
});
|
|
74
|
+
provideFieldBoundary();
|
|
66
75
|
const { t } = useLocale();
|
|
67
76
|
const closeText = computed(() => props.closeLabel ?? t("common.close"));
|
|
68
77
|
const slots = defineSlots();
|
|
@@ -78,21 +87,22 @@ const hasDescription = computed(() => Boolean(props.description || slots.descrip
|
|
|
78
87
|
const showClose = computed(() => props.dismissible && !props.hideClose);
|
|
79
88
|
const hasHeader = computed(
|
|
80
89
|
() => Boolean(
|
|
81
|
-
hasTitle.value || hasDescription.value || slots.header || slots.actions || showClose.value
|
|
90
|
+
hasTitle.value || hasDescription.value || slots["title-trailing"] || slots.header || slots.actions || showClose.value
|
|
82
91
|
)
|
|
83
92
|
);
|
|
84
|
-
const { present, onCancel, onClose, onPointerDown, onClick } = useModalDialog({
|
|
93
|
+
const { present, requestClose, onCancel, onClose, onPointerDown, onClick } = useModalDialog({
|
|
85
94
|
dialog: dialogRef,
|
|
86
95
|
panel: panelRef,
|
|
87
96
|
open,
|
|
88
97
|
dismissible: () => props.dismissible && !props.loading,
|
|
98
|
+
beforeClose: () => props.beforeClose,
|
|
89
99
|
onOpen: () => emit("open"),
|
|
90
100
|
onClose: () => emit("close"),
|
|
91
101
|
onAfterLeave: () => emit("afterLeave")
|
|
92
102
|
});
|
|
93
103
|
function close() {
|
|
94
|
-
if (props.loading) return;
|
|
95
|
-
|
|
104
|
+
if (props.loading) return Promise.resolve(false);
|
|
105
|
+
return requestClose("action");
|
|
96
106
|
}
|
|
97
107
|
defineExpose({ close, el: dialogRef });
|
|
98
108
|
</script>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DialogBeforeClose } from '../../components/overlays/types';
|
|
1
2
|
export interface DialogSlotScope {
|
|
2
3
|
close: () => void;
|
|
3
4
|
titleId: string;
|
|
@@ -9,6 +10,7 @@ export interface DialogFrameSlots {
|
|
|
9
10
|
}) => unknown;
|
|
10
11
|
header?: (props: DialogSlotScope) => unknown;
|
|
11
12
|
title?: () => unknown;
|
|
13
|
+
'title-trailing'?: () => unknown;
|
|
12
14
|
description?: () => unknown;
|
|
13
15
|
actions?: (props: {
|
|
14
16
|
close: () => void;
|
|
@@ -18,7 +20,7 @@ export interface DialogFrameSlots {
|
|
|
18
20
|
}) => unknown;
|
|
19
21
|
}
|
|
20
22
|
type __VLS_Slots = DialogFrameSlots;
|
|
21
|
-
declare function close():
|
|
23
|
+
declare function close(): Promise<boolean>;
|
|
22
24
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
23
25
|
prefix: "k-modal" | "k-drawer";
|
|
24
26
|
rootClass: unknown;
|
|
@@ -29,12 +31,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
29
31
|
closeLabel?: string;
|
|
30
32
|
flush?: boolean;
|
|
31
33
|
loading?: boolean;
|
|
34
|
+
beforeClose?: DialogBeforeClose;
|
|
32
35
|
open: boolean;
|
|
33
36
|
key?: PropertyKey | undefined;
|
|
34
37
|
style?: import("vue").StyleValue;
|
|
35
38
|
results?: (string | number) | undefined;
|
|
36
39
|
placeholder?: string | undefined | undefined;
|
|
37
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
38
40
|
class?: import("vue").ClassValue;
|
|
39
41
|
role?: string | undefined | undefined;
|
|
40
42
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -147,7 +149,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
147
149
|
'aria-colindex'?: (string | number) | undefined;
|
|
148
150
|
'aria-colspan'?: (string | number) | undefined;
|
|
149
151
|
'aria-controls'?: string | undefined | undefined;
|
|
150
|
-
'aria-current'?: "page" | "
|
|
152
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
151
153
|
'aria-describedby'?: string | undefined | undefined;
|
|
152
154
|
'aria-details'?: string | undefined | undefined;
|
|
153
155
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -184,6 +186,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
184
186
|
'aria-valuemin'?: (string | number) | undefined;
|
|
185
187
|
'aria-valuenow'?: (string | number) | undefined;
|
|
186
188
|
'aria-valuetext'?: string | undefined | undefined;
|
|
189
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
187
190
|
ref_for?: boolean | undefined | undefined;
|
|
188
191
|
ref_key?: string | undefined | undefined;
|
|
189
192
|
accesskey?: string | undefined | undefined;
|
|
@@ -240,12 +243,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
240
243
|
closeLabel?: string;
|
|
241
244
|
flush?: boolean;
|
|
242
245
|
loading?: boolean;
|
|
246
|
+
beforeClose?: DialogBeforeClose;
|
|
243
247
|
open: boolean;
|
|
244
248
|
key?: PropertyKey | undefined;
|
|
245
249
|
style?: import("vue").StyleValue;
|
|
246
250
|
results?: (string | number) | undefined;
|
|
247
251
|
placeholder?: string | undefined | undefined;
|
|
248
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
249
252
|
class?: import("vue").ClassValue;
|
|
250
253
|
role?: string | undefined | undefined;
|
|
251
254
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -358,7 +361,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
358
361
|
'aria-colindex'?: (string | number) | undefined;
|
|
359
362
|
'aria-colspan'?: (string | number) | undefined;
|
|
360
363
|
'aria-controls'?: string | undefined | undefined;
|
|
361
|
-
'aria-current'?: "page" | "
|
|
364
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
362
365
|
'aria-describedby'?: string | undefined | undefined;
|
|
363
366
|
'aria-details'?: string | undefined | undefined;
|
|
364
367
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -395,6 +398,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
395
398
|
'aria-valuemin'?: (string | number) | undefined;
|
|
396
399
|
'aria-valuenow'?: (string | number) | undefined;
|
|
397
400
|
'aria-valuetext'?: string | undefined | undefined;
|
|
401
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
398
402
|
ref_for?: boolean | undefined | undefined;
|
|
399
403
|
ref_key?: string | undefined | undefined;
|
|
400
404
|
accesskey?: string | undefined | undefined;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { defineComponent } from "vue";
|
|
2
|
+
import { provideFieldBoundary } from "../../composables/useFieldBoundary.mjs";
|
|
3
|
+
export default defineComponent({
|
|
4
|
+
name: "KFieldBoundary",
|
|
5
|
+
setup(_, { slots }) {
|
|
6
|
+
provideFieldBoundary();
|
|
7
|
+
return () => slots.default?.();
|
|
8
|
+
}
|
|
9
|
+
});
|
|
@@ -120,7 +120,9 @@ import { ariaKeyShortcuts, formatHotkey } from "../../composables/useHotkey";
|
|
|
120
120
|
import { useLinkResolver } from "../core/link";
|
|
121
121
|
import { useFloatingLayer } from "../floating/layer";
|
|
122
122
|
import { MENU_ROOT_KEY } from "./menu";
|
|
123
|
+
import { provideFieldBoundary } from "../../composables/useFieldBoundary";
|
|
123
124
|
import { useApplePlatform } from "../core/env";
|
|
125
|
+
provideFieldBoundary();
|
|
124
126
|
const props = defineProps({
|
|
125
127
|
items: { type: Array, required: true },
|
|
126
128
|
anchor: { type: Function, required: true },
|
|
@@ -19,7 +19,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
19
19
|
style?: import("vue").StyleValue;
|
|
20
20
|
results?: (string | number) | undefined;
|
|
21
21
|
placeholder?: string | undefined | undefined;
|
|
22
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
23
22
|
class?: import("vue").ClassValue;
|
|
24
23
|
role?: string | undefined | undefined;
|
|
25
24
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -130,7 +129,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
130
129
|
'aria-colindex'?: (string | number) | undefined;
|
|
131
130
|
'aria-colspan'?: (string | number) | undefined;
|
|
132
131
|
'aria-controls'?: string | undefined | undefined;
|
|
133
|
-
'aria-current'?: "page" | "
|
|
132
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
134
133
|
'aria-describedby'?: string | undefined | undefined;
|
|
135
134
|
'aria-details'?: string | undefined | undefined;
|
|
136
135
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -167,6 +166,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
167
166
|
'aria-valuemin'?: (string | number) | undefined;
|
|
168
167
|
'aria-valuenow'?: (string | number) | undefined;
|
|
169
168
|
'aria-valuetext'?: string | undefined | undefined;
|
|
169
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
170
170
|
ref_for?: boolean | undefined | undefined;
|
|
171
171
|
ref_key?: string | undefined | undefined;
|
|
172
172
|
accesskey?: string | undefined | undefined;
|
|
@@ -230,7 +230,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
230
230
|
style?: import("vue").StyleValue;
|
|
231
231
|
results?: (string | number) | undefined;
|
|
232
232
|
placeholder?: string | undefined | undefined;
|
|
233
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
234
233
|
class?: import("vue").ClassValue;
|
|
235
234
|
role?: string | undefined | undefined;
|
|
236
235
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -341,7 +340,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
341
340
|
'aria-colindex'?: (string | number) | undefined;
|
|
342
341
|
'aria-colspan'?: (string | number) | undefined;
|
|
343
342
|
'aria-controls'?: string | undefined | undefined;
|
|
344
|
-
'aria-current'?: "page" | "
|
|
343
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
345
344
|
'aria-describedby'?: string | undefined | undefined;
|
|
346
345
|
'aria-details'?: string | undefined | undefined;
|
|
347
346
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -378,6 +377,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
378
377
|
'aria-valuemin'?: (string | number) | undefined;
|
|
379
378
|
'aria-valuenow'?: (string | number) | undefined;
|
|
380
379
|
'aria-valuetext'?: string | undefined | undefined;
|
|
380
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
381
381
|
ref_for?: boolean | undefined | undefined;
|
|
382
382
|
ref_key?: string | undefined | undefined;
|
|
383
383
|
accesskey?: string | undefined | undefined;
|
|
@@ -419,8 +419,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
419
419
|
onOpenChange?: ((open: boolean) => any) | undefined;
|
|
420
420
|
}>, {
|
|
421
421
|
offset: number;
|
|
422
|
-
level: number;
|
|
423
422
|
placement: Placement;
|
|
423
|
+
level: number;
|
|
424
424
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
425
425
|
declare const _default: typeof __VLS_export;
|
|
426
426
|
export default _default;
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
:close-label="entry.options.closeLabel"
|
|
12
12
|
:flush="entry.options.flush"
|
|
13
13
|
:loading="entry.loading"
|
|
14
|
+
:before-close="entry.options.beforeClose"
|
|
14
15
|
@close="emit('close')"
|
|
15
16
|
@after-leave="emit('afterLeave')"
|
|
16
17
|
>
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
:close-label="entry.options.closeLabel"
|
|
29
30
|
:flush="entry.options.flush"
|
|
30
31
|
:loading="entry.loading"
|
|
32
|
+
:before-close="entry.options.beforeClose"
|
|
31
33
|
@close="emit('close')"
|
|
32
34
|
@after-leave="emit('afterLeave')"
|
|
33
35
|
>
|
|
@@ -10,8 +10,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
10
10
|
placeholder?: string | undefined;
|
|
11
11
|
description?: string;
|
|
12
12
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
13
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
14
|
-
open?: boolean | undefined;
|
|
15
13
|
class?: import("vue").ClassValue;
|
|
16
14
|
role?: string | undefined;
|
|
17
15
|
'aria-label'?: string | undefined;
|
|
@@ -161,6 +159,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
161
159
|
'aria-valuemin'?: (string | number) | undefined;
|
|
162
160
|
'aria-valuenow'?: (string | number) | undefined;
|
|
163
161
|
'aria-valuetext'?: string | undefined;
|
|
162
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
164
163
|
ref_for?: boolean | undefined | undefined;
|
|
165
164
|
ref_key?: string | undefined | undefined;
|
|
166
165
|
accesskey?: string | undefined;
|
|
@@ -197,22 +196,24 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
197
196
|
exportparts?: string;
|
|
198
197
|
part?: string;
|
|
199
198
|
popover?: import("../../index.ts").PopoverMode | "" | boolean;
|
|
200
|
-
|
|
199
|
+
dismissible?: boolean | undefined;
|
|
200
|
+
open?: boolean | undefined;
|
|
201
|
+
"onUpdate:open"?: (((value: boolean) => any) & ((value: boolean) => any)) | undefined;
|
|
201
202
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
202
203
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
203
204
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
204
205
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
205
206
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
206
207
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
208
|
+
onCancel?: ((payload: Event) => void) | undefined;
|
|
209
|
+
side?: import("../../index.ts").DrawerSide;
|
|
207
210
|
flush?: boolean;
|
|
208
|
-
dismissible?: boolean | undefined;
|
|
209
|
-
"onUpdate:open"?: (((value: boolean) => any) & ((value: boolean) => any)) | undefined;
|
|
210
211
|
sheet?: boolean;
|
|
211
|
-
side?: import("../../index.ts").DrawerSide;
|
|
212
212
|
onOpen?: ((() => any) & (() => any)) | undefined;
|
|
213
213
|
rootClass?: unknown;
|
|
214
214
|
hideClose?: boolean;
|
|
215
215
|
closeLabel?: string;
|
|
216
|
+
beforeClose?: import("../../index.ts").DialogBeforeClose;
|
|
216
217
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
217
218
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
218
219
|
close: () => any;
|
|
@@ -229,8 +230,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
229
230
|
placeholder?: string | undefined;
|
|
230
231
|
description?: string;
|
|
231
232
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
232
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
233
|
-
open?: boolean | undefined;
|
|
234
233
|
class?: import("vue").ClassValue;
|
|
235
234
|
role?: string | undefined;
|
|
236
235
|
'aria-label'?: string | undefined;
|
|
@@ -380,6 +379,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
380
379
|
'aria-valuemin'?: (string | number) | undefined;
|
|
381
380
|
'aria-valuenow'?: (string | number) | undefined;
|
|
382
381
|
'aria-valuetext'?: string | undefined;
|
|
382
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
383
383
|
ref_for?: boolean | undefined | undefined;
|
|
384
384
|
ref_key?: string | undefined | undefined;
|
|
385
385
|
accesskey?: string | undefined;
|
|
@@ -416,22 +416,24 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
416
416
|
exportparts?: string;
|
|
417
417
|
part?: string;
|
|
418
418
|
popover?: import("../../index.ts").PopoverMode | "" | boolean;
|
|
419
|
-
|
|
419
|
+
dismissible?: boolean | undefined;
|
|
420
|
+
open?: boolean | undefined;
|
|
421
|
+
"onUpdate:open"?: (((value: boolean) => any) & ((value: boolean) => any)) | undefined;
|
|
420
422
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
421
423
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
422
424
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
423
425
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
424
426
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
425
427
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
428
|
+
onCancel?: ((payload: Event) => void) | undefined;
|
|
429
|
+
side?: import("../../index.ts").DrawerSide;
|
|
426
430
|
flush?: boolean;
|
|
427
|
-
dismissible?: boolean | undefined;
|
|
428
|
-
"onUpdate:open"?: (((value: boolean) => any) & ((value: boolean) => any)) | undefined;
|
|
429
431
|
sheet?: boolean;
|
|
430
|
-
side?: import("../../index.ts").DrawerSide;
|
|
431
432
|
onOpen?: ((() => any) & (() => any)) | undefined;
|
|
432
433
|
rootClass?: unknown;
|
|
433
434
|
hideClose?: boolean;
|
|
434
435
|
closeLabel?: string;
|
|
436
|
+
beforeClose?: import("../../index.ts").DialogBeforeClose;
|
|
435
437
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
436
438
|
}> & Readonly<{
|
|
437
439
|
onClose?: (() => any) | undefined;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { Ref } from 'vue';
|
|
2
|
+
import type { DialogBeforeClose, DialogCloseReason } from '../../components/overlays/types';
|
|
2
3
|
export declare const modalStack: import("vue").ShallowReactive<HTMLDialogElement[]>;
|
|
3
4
|
export interface ModalDialogOptions {
|
|
4
5
|
dialog: Readonly<Ref<HTMLDialogElement | null | undefined>>;
|
|
5
6
|
panel: Readonly<Ref<HTMLElement | null | undefined>>;
|
|
6
7
|
open: Ref<boolean>;
|
|
7
8
|
dismissible: () => boolean;
|
|
9
|
+
beforeClose?: () => DialogBeforeClose | undefined;
|
|
8
10
|
onOpen?: () => void;
|
|
9
11
|
onClose?: () => void;
|
|
10
12
|
onAfterLeave?: () => void;
|
|
11
13
|
}
|
|
12
14
|
export declare function useModalDialog(options: ModalDialogOptions): {
|
|
13
15
|
present: Ref<boolean, boolean>;
|
|
16
|
+
requestClose: (reason: DialogCloseReason) => Promise<boolean>;
|
|
14
17
|
onCancel: (event: Event) => void;
|
|
15
|
-
onClose: () => void
|
|
18
|
+
onClose: () => Promise<void>;
|
|
16
19
|
onPointerDown: (event: PointerEvent) => void;
|
|
17
20
|
onClick: (event: MouseEvent) => void;
|
|
18
21
|
};
|
|
@@ -11,6 +11,35 @@ export function useModalDialog(options) {
|
|
|
11
11
|
const scrollLock = useScrollLock();
|
|
12
12
|
let returnTarget = null;
|
|
13
13
|
let pressedOnBackdrop = false;
|
|
14
|
+
let closing = false;
|
|
15
|
+
async function allowClose(reason) {
|
|
16
|
+
const guard = options.beforeClose?.();
|
|
17
|
+
if (!guard) return true;
|
|
18
|
+
if (closing) return false;
|
|
19
|
+
closing = true;
|
|
20
|
+
try {
|
|
21
|
+
return await guard(reason) !== false;
|
|
22
|
+
} catch {
|
|
23
|
+
return false;
|
|
24
|
+
} finally {
|
|
25
|
+
closing = false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function requestClose(reason) {
|
|
29
|
+
if (!options.open.value) return true;
|
|
30
|
+
if (!await allowClose(reason)) return false;
|
|
31
|
+
options.open.value = false;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
function reopen() {
|
|
35
|
+
const dialog = options.dialog.value;
|
|
36
|
+
if (!dialog || dialog.open || !options.open.value) return;
|
|
37
|
+
try {
|
|
38
|
+
dialog.showModal();
|
|
39
|
+
} catch {
|
|
40
|
+
dialog.setAttribute("open", "");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
14
43
|
async function show() {
|
|
15
44
|
present.value = true;
|
|
16
45
|
await nextTick();
|
|
@@ -63,10 +92,15 @@ export function useModalDialog(options) {
|
|
|
63
92
|
});
|
|
64
93
|
function onCancel(event) {
|
|
65
94
|
event.preventDefault();
|
|
66
|
-
if (options.dismissible())
|
|
95
|
+
if (options.dismissible()) requestClose("escape");
|
|
67
96
|
}
|
|
68
|
-
function onClose() {
|
|
69
|
-
if (options.open.value)
|
|
97
|
+
async function onClose() {
|
|
98
|
+
if (!options.open.value) return;
|
|
99
|
+
if (!options.beforeClose?.()) {
|
|
100
|
+
options.open.value = false;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (!options.dismissible() || !await requestClose("escape")) reopen();
|
|
70
104
|
}
|
|
71
105
|
function onPointerDown(event) {
|
|
72
106
|
pressedOnBackdrop = event.target === event.currentTarget;
|
|
@@ -74,7 +108,7 @@ export function useModalDialog(options) {
|
|
|
74
108
|
function onClick(event) {
|
|
75
109
|
const fromBackdrop = pressedOnBackdrop && event.target === event.currentTarget;
|
|
76
110
|
pressedOnBackdrop = false;
|
|
77
|
-
if (fromBackdrop && options.dismissible())
|
|
111
|
+
if (fromBackdrop && options.dismissible()) requestClose("backdrop");
|
|
78
112
|
}
|
|
79
|
-
return { present, onCancel, onClose, onPointerDown, onClick };
|
|
113
|
+
return { present, requestClose, onCancel, onClose, onPointerDown, onClick };
|
|
80
114
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Component, InjectionKey } from 'vue';
|
|
2
|
-
import type { DrawerSide, DrawerSize, ModalSize } from '../../components/overlays/types';
|
|
2
|
+
import type { DialogBeforeClose, DrawerSide, DrawerSize, ModalSize } from '../../components/overlays/types';
|
|
3
3
|
export type OverlayKind = 'modal' | 'drawer';
|
|
4
4
|
export interface OverlayOptions {
|
|
5
5
|
as?: OverlayKind;
|
|
@@ -12,6 +12,7 @@ export interface OverlayOptions {
|
|
|
12
12
|
dismissible?: boolean;
|
|
13
13
|
hideClose?: boolean;
|
|
14
14
|
closeLabel?: string;
|
|
15
|
+
beforeClose?: DialogBeforeClose;
|
|
15
16
|
}
|
|
16
17
|
export interface OverlayContext<R = unknown> {
|
|
17
18
|
id: number;
|
package/dist/locale/en.mjs
CHANGED
|
@@ -187,7 +187,10 @@ export const en = {
|
|
|
187
187
|
title: "Drop files here or click to browse",
|
|
188
188
|
drop: "Release to add files",
|
|
189
189
|
list: "Selected files",
|
|
190
|
-
selected: "{count} file selected | {count} files selected"
|
|
190
|
+
selected: "{count} file selected | {count} files selected",
|
|
191
|
+
directoryTitle: "Drop a folder here or click to browse",
|
|
192
|
+
loading: "Uploading",
|
|
193
|
+
added: "{count} file added | {count} files added"
|
|
191
194
|
},
|
|
192
195
|
filterPills: {
|
|
193
196
|
label: "Filters"
|
|
@@ -239,6 +242,13 @@ export const en = {
|
|
|
239
242
|
saveBar: {
|
|
240
243
|
message: "You have unsaved changes"
|
|
241
244
|
},
|
|
245
|
+
selectionBar: {
|
|
246
|
+
label: "Selection",
|
|
247
|
+
selectedOf: "{count} of {total} selected",
|
|
248
|
+
selectAll: "Select all {count}",
|
|
249
|
+
clear: "Clear selection",
|
|
250
|
+
cleared: "Selection cleared"
|
|
251
|
+
},
|
|
242
252
|
settings: {
|
|
243
253
|
title: "Settings",
|
|
244
254
|
close: "Close settings",
|
|
@@ -278,7 +288,12 @@ export const en = {
|
|
|
278
288
|
dismiss: "Dismiss notification"
|
|
279
289
|
},
|
|
280
290
|
tree: {
|
|
281
|
-
label: "Tree"
|
|
291
|
+
label: "Tree",
|
|
292
|
+
empty: "No items",
|
|
293
|
+
reorderHint: "Press Alt with the up or down arrow to move",
|
|
294
|
+
reorderNestedHint: "Press Alt with the arrow keys to move: up and down change the position, left and right change the level",
|
|
295
|
+
moved: "{label} moved to position {position} of {count}",
|
|
296
|
+
movedInto: "{label} moved into {parent}, position {position} of {count}"
|
|
282
297
|
}
|
|
283
298
|
}
|
|
284
299
|
};
|
package/dist/locale/it.mjs
CHANGED
|
@@ -187,7 +187,10 @@ export const it = {
|
|
|
187
187
|
title: "Trascina i file qui o fai clic per sfogliare",
|
|
188
188
|
drop: "Rilascia per aggiungere i file",
|
|
189
189
|
list: "File selezionati",
|
|
190
|
-
selected: "{count} file selezionato | {count} file selezionati"
|
|
190
|
+
selected: "{count} file selezionato | {count} file selezionati",
|
|
191
|
+
directoryTitle: "Trascina una cartella qui o fai clic per sfogliare",
|
|
192
|
+
loading: "Caricamento in corso",
|
|
193
|
+
added: "{count} file aggiunto | {count} file aggiunti"
|
|
191
194
|
},
|
|
192
195
|
filterPills: {
|
|
193
196
|
label: "Filtri"
|
|
@@ -239,6 +242,13 @@ export const it = {
|
|
|
239
242
|
saveBar: {
|
|
240
243
|
message: "Hai modifiche non salvate"
|
|
241
244
|
},
|
|
245
|
+
selectionBar: {
|
|
246
|
+
label: "Selezione",
|
|
247
|
+
selectedOf: "{count} di {total} selezionato | {count} di {total} selezionati",
|
|
248
|
+
selectAll: "Seleziona tutti e {count}",
|
|
249
|
+
clear: "Deseleziona tutto",
|
|
250
|
+
cleared: "Selezione annullata"
|
|
251
|
+
},
|
|
242
252
|
settings: {
|
|
243
253
|
title: "Impostazioni",
|
|
244
254
|
close: "Chiudi impostazioni",
|
|
@@ -278,7 +288,12 @@ export const it = {
|
|
|
278
288
|
dismiss: "Chiudi notifica"
|
|
279
289
|
},
|
|
280
290
|
tree: {
|
|
281
|
-
label: "Albero"
|
|
291
|
+
label: "Albero",
|
|
292
|
+
empty: "Nessun elemento",
|
|
293
|
+
reorderHint: "Premi Alt con la freccia su o gi\xF9 per spostare",
|
|
294
|
+
reorderNestedHint: "Premi Alt con le frecce per spostare: su e gi\xF9 cambiano la posizione, sinistra e destra il livello",
|
|
295
|
+
moved: "{label} ora in posizione {position} di {count}",
|
|
296
|
+
movedInto: "{label} ora dentro {parent}, in posizione {position} di {count}"
|
|
282
297
|
}
|
|
283
298
|
}
|
|
284
299
|
};
|
package/dist/locale/types.d.ts
CHANGED
|
@@ -186,6 +186,9 @@ export interface KMessages {
|
|
|
186
186
|
drop: string;
|
|
187
187
|
list: string;
|
|
188
188
|
selected: string;
|
|
189
|
+
directoryTitle: string;
|
|
190
|
+
loading: string;
|
|
191
|
+
added: string;
|
|
189
192
|
};
|
|
190
193
|
filterPills: {
|
|
191
194
|
label: string;
|
|
@@ -237,6 +240,13 @@ export interface KMessages {
|
|
|
237
240
|
saveBar: {
|
|
238
241
|
message: string;
|
|
239
242
|
};
|
|
243
|
+
selectionBar: {
|
|
244
|
+
label: string;
|
|
245
|
+
selectedOf: string;
|
|
246
|
+
selectAll: string;
|
|
247
|
+
clear: string;
|
|
248
|
+
cleared: string;
|
|
249
|
+
};
|
|
240
250
|
settings: {
|
|
241
251
|
title: string;
|
|
242
252
|
close: string;
|
|
@@ -277,6 +287,11 @@ export interface KMessages {
|
|
|
277
287
|
};
|
|
278
288
|
tree: {
|
|
279
289
|
label: string;
|
|
290
|
+
empty: string;
|
|
291
|
+
reorderHint: string;
|
|
292
|
+
reorderNestedHint: string;
|
|
293
|
+
moved: string;
|
|
294
|
+
movedInto: string;
|
|
280
295
|
};
|
|
281
296
|
}
|
|
282
297
|
export interface KLocale {
|
package/dist/nuxt/module.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { DeepPartial, KMessages } from '../locale/types';
|
|
|
5
5
|
export type { KAppConfig } from '../components/templates/types';
|
|
6
6
|
export interface IconCollectionOption {
|
|
7
7
|
prefix: string;
|
|
8
|
+
from?: string;
|
|
8
9
|
include?: string[];
|
|
9
10
|
exclude?: string[];
|
|
10
11
|
}
|
|
@@ -30,12 +31,12 @@ export interface ModuleOptions {
|
|
|
30
31
|
aliases?: Record<string, string>;
|
|
31
32
|
};
|
|
32
33
|
theme: {
|
|
33
|
-
cookie
|
|
34
|
-
default
|
|
34
|
+
cookie?: string | false;
|
|
35
|
+
default?: ThemePreference;
|
|
35
36
|
};
|
|
36
37
|
preset: {
|
|
37
|
-
cookie
|
|
38
|
-
default
|
|
38
|
+
cookie?: string | false;
|
|
39
|
+
default?: ThemePreset;
|
|
39
40
|
};
|
|
40
41
|
fonts: boolean | ThemePreset[];
|
|
41
42
|
locale: string;
|
package/dist/nuxt/module.mjs
CHANGED
|
@@ -109,9 +109,9 @@ export default defineNuxtModule({
|
|
|
109
109
|
viteBuild.cssTarget = options.cssTarget;
|
|
110
110
|
const runtimeConfig = {
|
|
111
111
|
global: options.global,
|
|
112
|
-
themeCookie: options.theme.cookie,
|
|
113
|
-
themeDefault: options.theme.default,
|
|
114
|
-
presetCookie: options.preset.cookie,
|
|
112
|
+
themeCookie: options.theme.cookie ?? "k-theme",
|
|
113
|
+
themeDefault: options.theme.default ?? "system",
|
|
114
|
+
presetCookie: options.preset.cookie ?? "k-preset",
|
|
115
115
|
presetDefault,
|
|
116
116
|
locale: options.locale,
|
|
117
117
|
messages: options.messages
|
|
@@ -149,12 +149,15 @@ export default defineNuxtModule({
|
|
|
149
149
|
].join("\n")
|
|
150
150
|
});
|
|
151
151
|
const collections = [];
|
|
152
|
+
const seenPrefixes = /* @__PURE__ */ new Set();
|
|
152
153
|
for (const entry of options.icons.collections ?? []) {
|
|
153
154
|
const collection = typeof entry === "string" ? { prefix: entry } : entry;
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
if (seenPrefixes.has(collection.prefix)) continue;
|
|
156
|
+
seenPrefixes.add(collection.prefix);
|
|
157
|
+
const file = collection.from ? resolveIconsDir(collection.from, nuxt.options.rootDir) : await resolveCollectionFile(collection.prefix, searchPaths);
|
|
158
|
+
if (!file || !existsSync(file)) {
|
|
156
159
|
console.warn(
|
|
157
|
-
`[@xleddyl/443-components-vue] icon collection "${collection.prefix}" not installed: pnpm add -D @iconify-json/${collection.prefix}`
|
|
160
|
+
collection.from ? `[@xleddyl/443-components-vue] icon collection "${collection.prefix}" not found: ${file}` : `[@xleddyl/443-components-vue] icon collection "${collection.prefix}" not installed: pnpm add -D @iconify-json/${collection.prefix}`
|
|
158
161
|
);
|
|
159
162
|
continue;
|
|
160
163
|
}
|