@xleddyl/443-components-vue 0.1.0 → 0.2.2
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 +81 -20
- package/dist/chart/BarChart.vue.d.ts +6 -6
- package/dist/chart/ChartLegend.vue.d.ts +16 -16
- package/dist/chart/ChartPanel.vue +10 -6
- package/dist/chart/ChartPanel.vue.d.ts +6 -8
- package/dist/chart/ChartSummary.vue.d.ts +6 -6
- package/dist/chart/DoughnutChart.vue.d.ts +6 -6
- package/dist/chart/LineChart.vue.d.ts +6 -6
- package/dist/components/core/Button.vue +3 -1
- package/dist/components/core/Button.vue.d.ts +6 -6
- package/dist/components/core/FormField.vue.d.ts +6 -6
- package/dist/components/core/Icon.vue +9 -1
- package/dist/components/core/Icon.vue.d.ts +4 -4
- package/dist/components/core/Input.vue +6 -3
- package/dist/components/core/Input.vue.d.ts +18 -19
- package/dist/components/core/Kbd.vue.d.ts +6 -6
- package/dist/components/core/Root.vue.d.ts +10 -10
- package/dist/components/core/Spinner.vue +7 -3
- package/dist/components/core/Spinner.vue.d.ts +6 -7
- package/dist/components/core/Textarea.vue +36 -23
- package/dist/components/core/Textarea.vue.d.ts +31 -21
- package/dist/components/core/VisuallyHidden.vue.d.ts +10 -10
- package/dist/components/data/Avatar.vue +4 -2
- package/dist/components/data/Avatar.vue.d.ts +6 -6
- package/dist/components/data/AvatarGroup.vue +5 -2
- package/dist/components/data/AvatarGroup.vue.d.ts +7 -8
- package/dist/components/data/Badge.vue.d.ts +6 -6
- package/dist/components/data/DescriptionList.vue +7 -3
- package/dist/components/data/DescriptionList.vue.d.ts +7 -8
- package/dist/components/data/FilterPills.vue +13 -4
- package/dist/components/data/FilterPills.vue.d.ts +16 -18
- package/dist/components/data/Pagination.vue +23 -14
- package/dist/components/data/Pagination.vue.d.ts +16 -23
- package/dist/components/data/Stat.vue +9 -6
- package/dist/components/data/Stat.vue.d.ts +10 -13
- package/dist/components/data/Table.vue +12 -7
- package/dist/components/data/Tag.vue +7 -4
- package/dist/components/data/Tag.vue.d.ts +16 -17
- package/dist/components/data/Timeline.vue.d.ts +6 -6
- package/dist/components/data/Tree.vue +5 -2
- package/dist/components/data/Tree.vue.d.ts +16 -17
- package/dist/components/feedback/Alert.vue +5 -2
- package/dist/components/feedback/Alert.vue.d.ts +14 -15
- package/dist/components/feedback/EmptyState.vue.d.ts +7 -7
- package/dist/components/feedback/LoadingOverlay.vue +8 -4
- package/dist/components/feedback/LoadingOverlay.vue.d.ts +6 -7
- package/dist/components/feedback/Meter.vue.d.ts +6 -6
- package/dist/components/feedback/Progress.vue +6 -3
- package/dist/components/feedback/Progress.vue.d.ts +6 -7
- package/dist/components/feedback/ProgressRing.vue +5 -2
- package/dist/components/feedback/ProgressRing.vue.d.ts +6 -7
- package/dist/components/feedback/Skeleton.vue.d.ts +6 -6
- package/dist/components/forms/Calendar.vue +16 -11
- package/dist/components/forms/Calendar.vue.d.ts +17 -21
- package/dist/components/forms/ColorInput.vue +8 -4
- package/dist/components/forms/ColorInput.vue.d.ts +18 -20
- package/dist/components/forms/Combobox.vue +31 -19
- package/dist/components/forms/Combobox.vue.d.ts +2 -2
- package/dist/components/forms/DateInput.vue.d.ts +16 -16
- package/dist/components/forms/DatePicker.vue +17 -11
- package/dist/components/forms/DatePicker.vue.d.ts +14 -18
- package/dist/components/forms/FileInput.vue +23 -13
- package/dist/components/forms/FileInput.vue.d.ts +17 -23
- package/dist/components/forms/InputAddon.vue.d.ts +6 -6
- package/dist/components/forms/InputGroup.vue.d.ts +6 -6
- package/dist/components/forms/NumberInput.vue +15 -10
- package/dist/components/forms/NumberInput.vue.d.ts +16 -19
- package/dist/components/forms/PasswordInput.vue +21 -13
- package/dist/components/forms/PasswordInput.vue.d.ts +14 -20
- package/dist/components/forms/PinInput.vue +7 -2
- package/dist/components/forms/PinInput.vue.d.ts +18 -16
- package/dist/components/forms/Radio.vue.d.ts +6 -6
- package/dist/components/forms/Slider.vue.d.ts +18 -18
- package/dist/components/forms/Switch.vue.d.ts +16 -16
- package/dist/components/forms/TimeInput.vue.d.ts +16 -16
- package/dist/components/layout/Accordion.vue.d.ts +16 -16
- package/dist/components/layout/AppShell.vue +11 -6
- package/dist/components/layout/AppShell.vue.d.ts +16 -19
- package/dist/components/layout/Breadcrumbs.vue +5 -2
- package/dist/components/layout/Breadcrumbs.vue.d.ts +6 -7
- package/dist/components/layout/Card.vue.d.ts +8 -8
- package/dist/components/layout/CopyButton.vue +11 -6
- package/dist/components/layout/CopyButton.vue.d.ts +16 -18
- package/dist/components/layout/Grid.vue.d.ts +7 -7
- package/dist/components/layout/NavLink.vue.d.ts +10 -10
- package/dist/components/layout/PageHeader.vue.d.ts +6 -6
- package/dist/components/layout/Separator.vue.d.ts +6 -6
- package/dist/components/layout/Sidebar.vue +10 -5
- package/dist/components/layout/Sidebar.vue.d.ts +7 -11
- package/dist/components/layout/SidebarSection.vue.d.ts +6 -6
- package/dist/components/layout/Stack.vue.d.ts +10 -10
- package/dist/components/layout/Tabs.vue.d.ts +16 -16
- package/dist/components/layout/ThemeSwitch.vue +12 -6
- package/dist/components/layout/ThemeSwitch.vue.d.ts +6 -7
- package/dist/components/layout/Toolbar.vue.d.ts +6 -6
- package/dist/components/overlays/CommandPalette.vue +38 -24
- package/dist/components/overlays/CommandPalette.vue.d.ts +18 -30
- package/dist/components/overlays/ConfirmDialog.vue +14 -9
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +12 -15
- package/dist/components/overlays/ConfirmHost.vue +6 -3
- package/dist/components/overlays/ConfirmHost.vue.d.ts +16 -16
- package/dist/components/overlays/ContextMenu.vue +6 -3
- package/dist/components/overlays/ContextMenu.vue.d.ts +11 -13
- package/dist/components/overlays/Drawer.vue +1 -1
- package/dist/components/overlays/Drawer.vue.d.ts +10 -11
- package/dist/components/overlays/DropdownMenu.vue.d.ts +10 -10
- package/dist/components/overlays/HoverCard.vue.d.ts +16 -16
- package/dist/components/overlays/Modal.vue +1 -1
- package/dist/components/overlays/Modal.vue.d.ts +10 -11
- package/dist/components/overlays/OverlayHost.vue.d.ts +1 -1
- package/dist/components/overlays/Popover.vue.d.ts +16 -16
- package/dist/components/overlays/Toaster.vue +8 -4
- package/dist/components/overlays/Toaster.vue.d.ts +8 -10
- package/dist/components/overlays/Tooltip.vue.d.ts +6 -6
- package/dist/components/templates/AccountMenu.vue +5 -2
- package/dist/components/templates/AccountMenu.vue.d.ts +18 -19
- package/dist/components/templates/AppearanceSettings.vue +26 -12
- package/dist/components/templates/AppearanceSettings.vue.d.ts +7 -11
- package/dist/components/templates/AuthLayout.vue +11 -7
- package/dist/components/templates/AuthLayout.vue.d.ts +6 -9
- package/dist/components/templates/Brand.vue.d.ts +10 -10
- package/dist/components/templates/DashboardLayout.vue +25 -16
- package/dist/components/templates/DashboardLayout.vue.d.ts +12 -24
- package/dist/components/templates/DashboardPage.vue +7 -3
- package/dist/components/templates/DashboardPage.vue.d.ts +6 -7
- package/dist/components/templates/DetailPage.vue +14 -8
- package/dist/components/templates/DetailPage.vue.d.ts +14 -18
- package/dist/components/templates/EmptyPage.vue +15 -8
- package/dist/components/templates/EmptyPage.vue.d.ts +7 -11
- package/dist/components/templates/ErrorPage.vue +32 -25
- package/dist/components/templates/ErrorPage.vue.d.ts +6 -6
- package/dist/components/templates/FormPage.vue +19 -11
- package/dist/components/templates/FormPage.vue.d.ts +3 -3
- package/dist/components/templates/ListPage.vue +39 -23
- package/dist/components/templates/ListPage.vue.d.ts +2 -2
- package/dist/components/templates/NotFoundPage.vue +4 -4
- package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
- package/dist/components/templates/SaveBar.vue +20 -11
- package/dist/components/templates/SaveBar.vue.d.ts +16 -19
- package/dist/components/templates/SettingsGroup.vue.d.ts +7 -7
- package/dist/components/templates/SettingsModal.vue +29 -21
- package/dist/components/templates/SettingsModal.vue.d.ts +15 -25
- package/dist/components/templates/SettingsPage.vue +8 -5
- package/dist/components/templates/SettingsPage.vue.d.ts +18 -21
- package/dist/components/templates/SettingsSection.vue +7 -3
- package/dist/components/templates/SettingsSection.vue.d.ts +8 -9
- package/dist/composables/core.d.ts +1 -0
- package/dist/composables/core.mjs +1 -0
- package/dist/composables/useAlert.mjs +3 -1
- package/dist/composables/useConfirm.mjs +5 -3
- package/dist/composables/useDirtyGuard.mjs +7 -5
- package/dist/composables/useForm.d.ts +4 -1
- package/dist/composables/useForm.mjs +33 -16
- package/dist/composables/useIcons.d.ts +4 -0
- package/dist/composables/useIcons.mjs +10 -0
- package/dist/composables/useLocale.d.ts +11 -0
- package/dist/composables/useLocale.mjs +26 -0
- package/dist/composables/usePasswordStrength.mjs +11 -7
- package/dist/composables/usePrompt.mjs +3 -1
- package/dist/editor/RichTextEditor.vue +20 -14
- package/dist/editor/RichTextEditor.vue.d.ts +22 -15
- package/dist/editor/index.d.ts +0 -1
- package/dist/editor/index.mjs +0 -1
- package/dist/editor/types.d.ts +3 -18
- package/dist/grid/DataGrid.vue +11 -2
- package/dist/grid/GridToolbar.vue +6 -2
- package/dist/grid/GridToolbar.vue.d.ts +21 -20
- package/dist/grid/cells/BadgeCell.vue.d.ts +6 -6
- package/dist/grid/cells/BooleanCell.vue +5 -2
- package/dist/grid/cells/BooleanCell.vue.d.ts +6 -6
- package/dist/grid/cells/DateCell.vue +4 -1
- package/dist/grid/cells/DateCell.vue.d.ts +6 -6
- package/dist/grid/cells/ImageCell.vue.d.ts +6 -6
- package/dist/grid/cells/LinkCell.vue.d.ts +6 -6
- package/dist/grid/index.d.ts +0 -1
- package/dist/grid/index.mjs +0 -1
- package/dist/grid/types.d.ts +5 -17
- package/dist/icons/collections.d.ts +39 -0
- package/dist/icons/collections.mjs +67 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.mjs +11 -1
- package/dist/internal/feedback/LoadingHost.vue +6 -3
- package/dist/internal/feedback/LoadingHost.vue.d.ts +0 -1
- package/dist/internal/forms/files.mjs +1 -1
- package/dist/internal/forms/standard-schema.d.ts +26 -0
- package/dist/internal/forms/standard-schema.mjs +21 -0
- package/dist/internal/keys.d.ts +4 -1
- package/dist/internal/keys.mjs +2 -0
- package/dist/internal/overlays/DialogFrame.vue +5 -2
- package/dist/internal/overlays/DialogFrame.vue.d.ts +14 -14
- package/dist/internal/overlays/MenuList.vue.d.ts +16 -16
- package/dist/internal/overlays/OverlayView.vue.d.ts +16 -16
- package/dist/internal/overlays/confirm.d.ts +3 -0
- package/dist/locale/en.d.ts +2 -0
- package/dist/locale/en.mjs +284 -0
- package/dist/locale/index.d.ts +16 -0
- package/dist/locale/index.mjs +50 -0
- package/dist/locale/it.d.ts +2 -0
- package/dist/locale/it.mjs +284 -0
- package/dist/locale/types.d.ts +292 -0
- package/dist/locale/types.mjs +0 -0
- package/dist/nuxt/module.d.ts +18 -4
- package/dist/nuxt/module.mjs +138 -9
- package/dist/nuxt/runtime/layouts/auth.vue.d.ts +16 -16
- package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +16 -16
- package/dist/nuxt/runtime/locale.d.ts +2 -0
- package/dist/nuxt/runtime/locale.mjs +20 -0
- package/dist/nuxt/runtime/theme.mjs +3 -3
- package/dist/styles/core/icon.css +4 -0
- package/dist/styles/core/textarea.css +21 -0
- package/package.json +1 -1
- package/dist/editor/messages.d.ts +0 -2
- package/dist/editor/messages.mjs +0 -18
- package/dist/grid/messages.d.ts +0 -3
- package/dist/grid/messages.mjs +0 -21
|
@@ -16,7 +16,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
16
16
|
dir?: string | undefined | undefined;
|
|
17
17
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
18
18
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
19
|
-
enterKeyHint?: "search" | "done" | "
|
|
19
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
20
20
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
21
21
|
id?: string | undefined | undefined;
|
|
22
22
|
inert?: (boolean | "true" | "false") | undefined;
|
|
@@ -62,7 +62,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
62
62
|
'aria-colindex'?: (string | number) | undefined;
|
|
63
63
|
'aria-colspan'?: (string | number) | undefined;
|
|
64
64
|
'aria-controls'?: string | undefined | undefined;
|
|
65
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
65
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
66
66
|
'aria-describedby'?: string | undefined | undefined;
|
|
67
67
|
'aria-details'?: string | undefined | undefined;
|
|
68
68
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -71,7 +71,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
71
71
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
72
72
|
'aria-flowto'?: string | undefined | undefined;
|
|
73
73
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
74
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
74
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
75
75
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
76
76
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
77
77
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
@@ -213,7 +213,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
213
213
|
dir?: string | undefined | undefined;
|
|
214
214
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
215
215
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
216
|
-
enterKeyHint?: "search" | "done" | "
|
|
216
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
217
217
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
218
218
|
id?: string | undefined | undefined;
|
|
219
219
|
inert?: (boolean | "true" | "false") | undefined;
|
|
@@ -259,7 +259,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
259
259
|
'aria-colindex'?: (string | number) | undefined;
|
|
260
260
|
'aria-colspan'?: (string | number) | undefined;
|
|
261
261
|
'aria-controls'?: string | undefined | undefined;
|
|
262
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
262
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
263
263
|
'aria-describedby'?: string | undefined | undefined;
|
|
264
264
|
'aria-details'?: string | undefined | undefined;
|
|
265
265
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -268,7 +268,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
268
268
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
269
269
|
'aria-flowto'?: string | undefined | undefined;
|
|
270
270
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
271
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
271
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
272
272
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
273
273
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
274
274
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
@click="open = true"
|
|
11
11
|
>
|
|
12
12
|
<Icon name="magnifying-glass" class="k-command-trigger-icon" />
|
|
13
|
-
<span class="k-command-trigger-text">{{
|
|
13
|
+
<span class="k-command-trigger-text">{{ triggerText }}</span>
|
|
14
14
|
<span v-if="shortcut" class="k-command-trigger-keys" aria-hidden="true">
|
|
15
15
|
<Kbd v-for="(key, index) in shortcutKeys" :key="index" size="sm">{{ key }}</Kbd>
|
|
16
16
|
</span>
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
>
|
|
28
28
|
<div v-if="present" ref="panelRef" class="k-modal-panel k-command-panel" tabindex="-1">
|
|
29
29
|
<div class="k-command-bar">
|
|
30
|
-
<label :id="labelId" :for="inputId" class="k-visually-hidden">{{
|
|
30
|
+
<label :id="labelId" :for="inputId" class="k-visually-hidden">{{ labelText }}</label>
|
|
31
31
|
<Icon name="magnifying-glass" class="k-command-bar-icon" />
|
|
32
32
|
<input
|
|
33
33
|
:id="inputId"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
type="text"
|
|
38
38
|
role="combobox"
|
|
39
39
|
class="k-command-input"
|
|
40
|
-
:placeholder="
|
|
40
|
+
:placeholder="placeholderText"
|
|
41
41
|
autocomplete="off"
|
|
42
42
|
autocapitalize="off"
|
|
43
43
|
spellcheck="false"
|
|
@@ -117,9 +117,9 @@
|
|
|
117
117
|
</div>
|
|
118
118
|
</div>
|
|
119
119
|
<div class="k-command-footer" aria-hidden="true">
|
|
120
|
-
<span><Kbd size="sm">↑</Kbd><Kbd size="sm">↓</Kbd> {{
|
|
121
|
-
<span><Kbd size="sm">↵</Kbd> {{
|
|
122
|
-
<span><Kbd size="sm">Esc</Kbd> {{
|
|
120
|
+
<span><Kbd size="sm">↑</Kbd><Kbd size="sm">↓</Kbd> {{ moveText }}</span>
|
|
121
|
+
<span><Kbd size="sm">↵</Kbd> {{ selectText }}</span>
|
|
122
|
+
<span><Kbd size="sm">Esc</Kbd> {{ closeText }}</span>
|
|
123
123
|
</div>
|
|
124
124
|
<p class="k-visually-hidden" aria-live="polite">{{ status }}</p>
|
|
125
125
|
</div>
|
|
@@ -129,6 +129,7 @@
|
|
|
129
129
|
<script setup>
|
|
130
130
|
import { computed, nextTick, onMounted, ref, shallowRef, useId, useTemplateRef, watch } from "vue";
|
|
131
131
|
import { ariaKeyShortcuts, formatHotkey, useHotkey } from "../../composables/useHotkey";
|
|
132
|
+
import { useLocale } from "../../composables/useLocale";
|
|
132
133
|
import { useModalDialog } from "../../internal/overlays/dialog";
|
|
133
134
|
import { nextEnabledIndex } from "../../internal/core/roving";
|
|
134
135
|
import { useAsyncSearch } from "../../internal/core/search";
|
|
@@ -146,23 +147,35 @@ const props = defineProps({
|
|
|
146
147
|
minQueryLength: { type: Number, required: false, default: 0 },
|
|
147
148
|
filter: { type: Boolean, required: false, default: true },
|
|
148
149
|
loading: { type: Boolean, required: false },
|
|
149
|
-
placeholder: { type: String, required: false
|
|
150
|
-
label: { type: String, required: false
|
|
150
|
+
placeholder: { type: String, required: false },
|
|
151
|
+
label: { type: String, required: false },
|
|
151
152
|
shortcut: { type: [String, Boolean], required: false, default: "mod+k" },
|
|
152
153
|
trigger: { type: Boolean, required: false, default: true },
|
|
153
|
-
triggerLabel: { type: String, required: false
|
|
154
|
+
triggerLabel: { type: String, required: false },
|
|
154
155
|
recentKey: { type: String, required: false },
|
|
155
156
|
recentLimit: { type: Number, required: false, default: 5 },
|
|
156
|
-
recentLabel: { type: String, required: false
|
|
157
|
-
emptyText: { type: String, required: false
|
|
158
|
-
minQueryText: { type: String, required: false
|
|
159
|
-
errorText: { type: String, required: false
|
|
160
|
-
loadingText: { type: String, required: false
|
|
161
|
-
resultsText: { type: Function, required: false
|
|
162
|
-
footerMove: { type: String, required: false
|
|
163
|
-
footerSelect: { type: String, required: false
|
|
164
|
-
footerClose: { type: String, required: false
|
|
157
|
+
recentLabel: { type: String, required: false },
|
|
158
|
+
emptyText: { type: String, required: false },
|
|
159
|
+
minQueryText: { type: String, required: false },
|
|
160
|
+
errorText: { type: String, required: false },
|
|
161
|
+
loadingText: { type: String, required: false },
|
|
162
|
+
resultsText: { type: Function, required: false },
|
|
163
|
+
footerMove: { type: String, required: false },
|
|
164
|
+
footerSelect: { type: String, required: false },
|
|
165
|
+
footerClose: { type: String, required: false }
|
|
165
166
|
});
|
|
167
|
+
const { t } = useLocale();
|
|
168
|
+
const placeholderText = computed(() => props.placeholder ?? t("commandPalette.placeholder"));
|
|
169
|
+
const labelText = computed(() => props.label ?? t("commandPalette.label"));
|
|
170
|
+
const triggerText = computed(() => props.triggerLabel ?? t("common.search"));
|
|
171
|
+
const recentText = computed(() => props.recentLabel ?? t("commandPalette.recent"));
|
|
172
|
+
const emptyLabel = computed(() => props.emptyText ?? t("common.noResults"));
|
|
173
|
+
const minQueryLabel = computed(() => props.minQueryText ?? t("commandPalette.minQuery"));
|
|
174
|
+
const errorLabel = computed(() => props.errorText ?? t("commandPalette.error"));
|
|
175
|
+
const loadingLabel = computed(() => props.loadingText ?? t("common.loading"));
|
|
176
|
+
const moveText = computed(() => props.footerMove ?? t("commandPalette.move"));
|
|
177
|
+
const selectText = computed(() => props.footerSelect ?? t("commandPalette.select"));
|
|
178
|
+
const closeText = computed(() => props.footerClose ?? t("commandPalette.close"));
|
|
166
179
|
const emit = defineEmits(["select", "open", "close"]);
|
|
167
180
|
const open = defineModel("open", { type: Boolean, ...{ default: false } });
|
|
168
181
|
const query = defineModel("query", { type: String, ...{ default: "" } });
|
|
@@ -203,7 +216,7 @@ const rendered = computed(() => {
|
|
|
203
216
|
if (!term.value && props.recentKey && recent.value.length) {
|
|
204
217
|
list.push({
|
|
205
218
|
key: "recent",
|
|
206
|
-
label:
|
|
219
|
+
label: recentText.value,
|
|
207
220
|
recent: true,
|
|
208
221
|
items: recent.value.map((snapshot) => {
|
|
209
222
|
const item = allItems.value.find((candidate) => candidate.id === snapshot.id) ?? snapshot;
|
|
@@ -228,15 +241,16 @@ const rendered = computed(() => {
|
|
|
228
241
|
const flat = computed(() => rendered.value.flatMap((group) => group.items));
|
|
229
242
|
const activeId = computed(() => flat.value.length ? optionId(active.value) : void 0);
|
|
230
243
|
const hint = computed(() => {
|
|
231
|
-
if (belowMinimum.value) return
|
|
232
|
-
if (search.failed.value) return
|
|
233
|
-
if (!busy.value && !flat.value.length && (term.value || !props.search)) return
|
|
244
|
+
if (belowMinimum.value) return minQueryLabel.value;
|
|
245
|
+
if (search.failed.value) return errorLabel.value;
|
|
246
|
+
if (!busy.value && !flat.value.length && (term.value || !props.search)) return emptyLabel.value;
|
|
234
247
|
return "";
|
|
235
248
|
});
|
|
236
249
|
const status = computed(() => {
|
|
237
250
|
if (hint.value) return hint.value;
|
|
238
|
-
if (busy.value) return
|
|
239
|
-
|
|
251
|
+
if (busy.value) return loadingLabel.value;
|
|
252
|
+
const count = flat.value.length;
|
|
253
|
+
return props.resultsText ? props.resultsText(count) : t("commandPalette.results", { count });
|
|
240
254
|
});
|
|
241
255
|
function optionId(index) {
|
|
242
256
|
return `${listId}-option-${index}`;
|
|
@@ -36,7 +36,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
36
36
|
open?: boolean;
|
|
37
37
|
query?: string;
|
|
38
38
|
key?: PropertyKey | undefined;
|
|
39
|
+
prefix?: string | undefined | undefined;
|
|
39
40
|
value?: string | number | readonly string[] | undefined;
|
|
41
|
+
form?: string | undefined | undefined;
|
|
42
|
+
title?: string | undefined | undefined;
|
|
43
|
+
style?: import("vue").StyleValue;
|
|
44
|
+
results?: (string | number) | undefined;
|
|
40
45
|
name?: string | undefined | undefined;
|
|
41
46
|
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
42
47
|
ref?: import("vue").VNodeRef | undefined;
|
|
@@ -44,9 +49,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
44
49
|
role?: string | undefined | undefined;
|
|
45
50
|
'aria-label'?: string | undefined | undefined;
|
|
46
51
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
47
|
-
style?: import("vue").StyleValue;
|
|
48
|
-
form?: string | undefined | undefined;
|
|
49
|
-
title?: string | undefined | undefined;
|
|
50
52
|
onCopy?: ((payload: ClipboardEvent) => void) | undefined;
|
|
51
53
|
onCut?: ((payload: ClipboardEvent) => void) | undefined;
|
|
52
54
|
onPaste?: ((payload: ClipboardEvent) => void) | undefined;
|
|
@@ -154,7 +156,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
154
156
|
'aria-colindex'?: (string | number) | undefined;
|
|
155
157
|
'aria-colspan'?: (string | number) | undefined;
|
|
156
158
|
'aria-controls'?: string | undefined | undefined;
|
|
157
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
159
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
158
160
|
'aria-describedby'?: string | undefined | undefined;
|
|
159
161
|
'aria-details'?: string | undefined | undefined;
|
|
160
162
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -163,7 +165,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
163
165
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
164
166
|
'aria-flowto'?: string | undefined | undefined;
|
|
165
167
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
166
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
168
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
167
169
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
168
170
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
169
171
|
'aria-labelledby'?: string | undefined | undefined;
|
|
@@ -199,7 +201,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
199
201
|
dir?: string | undefined | undefined;
|
|
200
202
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
201
203
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
202
|
-
enterKeyHint?: "search" | "done" | "
|
|
204
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
203
205
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
204
206
|
inert?: (boolean | "true" | "false") | undefined;
|
|
205
207
|
spellcheck?: (boolean | "true" | "false") | undefined;
|
|
@@ -208,7 +210,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
208
210
|
about?: string | undefined | undefined;
|
|
209
211
|
datatype?: string | undefined | undefined;
|
|
210
212
|
inlist?: any;
|
|
211
|
-
prefix?: string | undefined | undefined;
|
|
212
213
|
property?: string | undefined | undefined;
|
|
213
214
|
resource?: string | undefined | undefined;
|
|
214
215
|
typeof?: string | undefined | undefined;
|
|
@@ -221,7 +222,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
221
222
|
itemtype?: string | undefined | undefined;
|
|
222
223
|
itemid?: string | undefined | undefined;
|
|
223
224
|
itemref?: string | undefined | undefined;
|
|
224
|
-
results?: (string | number) | undefined;
|
|
225
225
|
security?: string | undefined | undefined;
|
|
226
226
|
unselectable?: "on" | "off" | undefined | undefined;
|
|
227
227
|
inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
@@ -243,8 +243,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
243
243
|
hide: () => boolean;
|
|
244
244
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
245
245
|
close: () => any;
|
|
246
|
-
open: () => any;
|
|
247
246
|
select: (item: CommandItem) => any;
|
|
247
|
+
open: () => any;
|
|
248
248
|
"update:open": (value: boolean) => any;
|
|
249
249
|
"update:query": (value: string) => any;
|
|
250
250
|
}, string, import("vue").PublicProps, Readonly<{
|
|
@@ -273,7 +273,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
273
273
|
open?: boolean;
|
|
274
274
|
query?: string;
|
|
275
275
|
key?: PropertyKey | undefined;
|
|
276
|
+
prefix?: string | undefined | undefined;
|
|
276
277
|
value?: string | number | readonly string[] | undefined;
|
|
278
|
+
form?: string | undefined | undefined;
|
|
279
|
+
title?: string | undefined | undefined;
|
|
280
|
+
style?: import("vue").StyleValue;
|
|
281
|
+
results?: (string | number) | undefined;
|
|
277
282
|
name?: string | undefined | undefined;
|
|
278
283
|
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
279
284
|
ref?: import("vue").VNodeRef | undefined;
|
|
@@ -281,9 +286,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
281
286
|
role?: string | undefined | undefined;
|
|
282
287
|
'aria-label'?: string | undefined | undefined;
|
|
283
288
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
284
|
-
style?: import("vue").StyleValue;
|
|
285
|
-
form?: string | undefined | undefined;
|
|
286
|
-
title?: string | undefined | undefined;
|
|
287
289
|
onCopy?: ((payload: ClipboardEvent) => void) | undefined;
|
|
288
290
|
onCut?: ((payload: ClipboardEvent) => void) | undefined;
|
|
289
291
|
onPaste?: ((payload: ClipboardEvent) => void) | undefined;
|
|
@@ -391,7 +393,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
391
393
|
'aria-colindex'?: (string | number) | undefined;
|
|
392
394
|
'aria-colspan'?: (string | number) | undefined;
|
|
393
395
|
'aria-controls'?: string | undefined | undefined;
|
|
394
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
396
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
395
397
|
'aria-describedby'?: string | undefined | undefined;
|
|
396
398
|
'aria-details'?: string | undefined | undefined;
|
|
397
399
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -400,7 +402,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
400
402
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
401
403
|
'aria-flowto'?: string | undefined | undefined;
|
|
402
404
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
403
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
405
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
404
406
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
405
407
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
406
408
|
'aria-labelledby'?: string | undefined | undefined;
|
|
@@ -436,7 +438,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
436
438
|
dir?: string | undefined | undefined;
|
|
437
439
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
438
440
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
439
|
-
enterKeyHint?: "search" | "done" | "
|
|
441
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
440
442
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
441
443
|
inert?: (boolean | "true" | "false") | undefined;
|
|
442
444
|
spellcheck?: (boolean | "true" | "false") | undefined;
|
|
@@ -445,7 +447,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
445
447
|
about?: string | undefined | undefined;
|
|
446
448
|
datatype?: string | undefined | undefined;
|
|
447
449
|
inlist?: any;
|
|
448
|
-
prefix?: string | undefined | undefined;
|
|
449
450
|
property?: string | undefined | undefined;
|
|
450
451
|
resource?: string | undefined | undefined;
|
|
451
452
|
typeof?: string | undefined | undefined;
|
|
@@ -458,7 +459,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
458
459
|
itemtype?: string | undefined | undefined;
|
|
459
460
|
itemid?: string | undefined | undefined;
|
|
460
461
|
itemref?: string | undefined | undefined;
|
|
461
|
-
results?: (string | number) | undefined;
|
|
462
462
|
security?: string | undefined | undefined;
|
|
463
463
|
unselectable?: "on" | "off" | undefined | undefined;
|
|
464
464
|
inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
@@ -477,30 +477,18 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
477
477
|
popovertargetaction?: import("../../index.ts").PopoverTargetAction | undefined;
|
|
478
478
|
}> & Readonly<{
|
|
479
479
|
onClose?: (() => any) | undefined;
|
|
480
|
-
onOpen?: (() => any) | undefined;
|
|
481
480
|
onSelect?: ((item: CommandItem) => any) | undefined;
|
|
481
|
+
onOpen?: (() => any) | undefined;
|
|
482
482
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
483
483
|
"onUpdate:query"?: ((value: string) => any) | undefined;
|
|
484
484
|
}>, {
|
|
485
485
|
filter: boolean;
|
|
486
|
-
placeholder: string;
|
|
487
|
-
label: string;
|
|
488
|
-
emptyText: string;
|
|
489
|
-
loadingText: string;
|
|
490
486
|
debounce: number;
|
|
491
487
|
minQueryLength: number;
|
|
492
|
-
resultsText: (count: number) => string;
|
|
493
488
|
shortcut: string | false;
|
|
494
489
|
groups: CommandGroup[];
|
|
495
490
|
trigger: boolean;
|
|
496
|
-
triggerLabel: string;
|
|
497
491
|
recentLimit: number;
|
|
498
|
-
recentLabel: string;
|
|
499
|
-
minQueryText: string;
|
|
500
|
-
errorText: string;
|
|
501
|
-
footerMove: string;
|
|
502
|
-
footerSelect: string;
|
|
503
|
-
footerClose: string;
|
|
504
492
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
505
493
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
506
494
|
declare const _default: typeof __VLS_export;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
:class="`k-confirm-${tone}`"
|
|
6
6
|
role="alertdialog"
|
|
7
7
|
size="sm"
|
|
8
|
-
:title="
|
|
8
|
+
:title="titleText"
|
|
9
9
|
:description="description"
|
|
10
10
|
:loading="loading"
|
|
11
11
|
hide-close
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<Icon :name="icon" />
|
|
19
19
|
</span>
|
|
20
20
|
<div class="k-confirm-heading">
|
|
21
|
-
<h2 :id="titleId" class="k-modal-title">{{
|
|
21
|
+
<h2 :id="titleId" class="k-modal-title">{{ titleText }}</h2>
|
|
22
22
|
<p v-if="description" :id="descriptionId" class="k-modal-description">
|
|
23
23
|
{{ description }}
|
|
24
24
|
</p>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<template #footer>
|
|
34
34
|
<Button
|
|
35
35
|
v-if="!hideCancel"
|
|
36
|
-
:label="
|
|
36
|
+
:label="cancelText"
|
|
37
37
|
variant="soft"
|
|
38
38
|
tone="neutral"
|
|
39
39
|
:disabled="loading"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
@click="cancel"
|
|
42
42
|
/>
|
|
43
43
|
<Button
|
|
44
|
-
:label="
|
|
44
|
+
:label="confirmText"
|
|
45
45
|
:tone="tone"
|
|
46
46
|
:loading="loading"
|
|
47
47
|
:autofocus="tone !== 'danger' || hideCancel || void 0"
|
|
@@ -52,20 +52,25 @@
|
|
|
52
52
|
</template>
|
|
53
53
|
|
|
54
54
|
<script setup>
|
|
55
|
-
import { ref, watch } from "vue";
|
|
55
|
+
import { computed, ref, watch } from "vue";
|
|
56
|
+
import { useLocale } from "../../composables/useLocale";
|
|
56
57
|
import Button from "../core/Button.vue";
|
|
57
58
|
import Icon from "../core/Icon.vue";
|
|
58
59
|
import Modal from "./Modal.vue";
|
|
59
60
|
const props = defineProps({
|
|
60
|
-
title: { type: String, required: false
|
|
61
|
+
title: { type: String, required: false },
|
|
61
62
|
description: { type: String, required: false },
|
|
62
|
-
confirmLabel: { type: String, required: false
|
|
63
|
-
cancelLabel: { type: String, required: false
|
|
63
|
+
confirmLabel: { type: String, required: false },
|
|
64
|
+
cancelLabel: { type: String, required: false },
|
|
64
65
|
tone: { type: String, required: false, default: "accent" },
|
|
65
66
|
icon: { type: null, required: false },
|
|
66
67
|
hideCancel: { type: Boolean, required: false },
|
|
67
68
|
onConfirm: { type: Function, required: false }
|
|
68
69
|
});
|
|
70
|
+
const { t } = useLocale();
|
|
71
|
+
const titleText = computed(() => props.title ?? t("common.areYouSure"));
|
|
72
|
+
const confirmText = computed(() => props.confirmLabel ?? t("common.confirm"));
|
|
73
|
+
const cancelText = computed(() => props.cancelLabel ?? t("common.cancel"));
|
|
69
74
|
const emit = defineEmits(["cancel", "resolve", "afterLeave"]);
|
|
70
75
|
const open = defineModel("open", { type: Boolean, ...{ default: false } });
|
|
71
76
|
const loading = ref(false);
|
|
@@ -84,7 +89,7 @@ async function confirm() {
|
|
|
84
89
|
try {
|
|
85
90
|
if (await props.onConfirm() === false) return;
|
|
86
91
|
} catch (cause) {
|
|
87
|
-
error.value = cause instanceof Error ? cause.message : String(cause || "
|
|
92
|
+
error.value = cause instanceof Error ? cause.message : String(cause || t("common.somethingWentWrong"));
|
|
88
93
|
return;
|
|
89
94
|
} finally {
|
|
90
95
|
loading.value = false;
|
|
@@ -17,14 +17,17 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
17
17
|
onConfirm?: () => unknown;
|
|
18
18
|
open?: boolean | undefined;
|
|
19
19
|
key?: PropertyKey | undefined;
|
|
20
|
+
loading?: boolean;
|
|
21
|
+
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
22
|
+
style?: import("vue").StyleValue;
|
|
23
|
+
results?: (string | number) | undefined;
|
|
24
|
+
placeholder?: string | undefined;
|
|
20
25
|
size?: import("./types.ts").ModalSize;
|
|
21
26
|
ref?: import("vue").VNodeRef | undefined;
|
|
22
|
-
placeholder?: string | undefined;
|
|
23
27
|
class?: import("vue").ClassValue;
|
|
24
28
|
role?: string | undefined;
|
|
25
29
|
'aria-label'?: string | undefined;
|
|
26
30
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
27
|
-
style?: import("vue").StyleValue;
|
|
28
31
|
onCopy?: ((payload: ClipboardEvent) => void) | undefined;
|
|
29
32
|
onCut?: ((payload: ClipboardEvent) => void) | undefined;
|
|
30
33
|
onPaste?: ((payload: ClipboardEvent) => void) | undefined;
|
|
@@ -187,7 +190,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
187
190
|
about?: string | undefined;
|
|
188
191
|
datatype?: string | undefined;
|
|
189
192
|
inlist?: any;
|
|
190
|
-
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
191
193
|
property?: string | undefined;
|
|
192
194
|
resource?: string | undefined;
|
|
193
195
|
typeof?: string | undefined;
|
|
@@ -200,7 +202,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
200
202
|
itemtype?: string | undefined;
|
|
201
203
|
itemid?: string | undefined;
|
|
202
204
|
itemref?: string | undefined;
|
|
203
|
-
results?: (string | number) | undefined;
|
|
204
205
|
security?: string | undefined;
|
|
205
206
|
unselectable?: "on" | "off" | undefined;
|
|
206
207
|
inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
|
|
@@ -208,7 +209,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
208
209
|
exportparts?: string;
|
|
209
210
|
part?: string;
|
|
210
211
|
popover?: import("../../index.ts").PopoverMode | "" | boolean;
|
|
211
|
-
loading?: boolean;
|
|
212
212
|
onClose?: (() => any) | undefined;
|
|
213
213
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
214
214
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
@@ -222,7 +222,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
222
222
|
onOpen?: (() => any) | undefined;
|
|
223
223
|
rootClass?: unknown;
|
|
224
224
|
hideClose?: boolean;
|
|
225
|
-
closeLabel?: string
|
|
225
|
+
closeLabel?: string;
|
|
226
226
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
227
227
|
}, {
|
|
228
228
|
confirm: typeof confirm;
|
|
@@ -243,14 +243,17 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
243
243
|
onConfirm?: () => unknown;
|
|
244
244
|
open?: boolean | undefined;
|
|
245
245
|
key?: PropertyKey | undefined;
|
|
246
|
+
loading?: boolean;
|
|
247
|
+
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
248
|
+
style?: import("vue").StyleValue;
|
|
249
|
+
results?: (string | number) | undefined;
|
|
250
|
+
placeholder?: string | undefined;
|
|
246
251
|
size?: import("./types.ts").ModalSize;
|
|
247
252
|
ref?: import("vue").VNodeRef | undefined;
|
|
248
|
-
placeholder?: string | undefined;
|
|
249
253
|
class?: import("vue").ClassValue;
|
|
250
254
|
role?: string | undefined;
|
|
251
255
|
'aria-label'?: string | undefined;
|
|
252
256
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
253
|
-
style?: import("vue").StyleValue;
|
|
254
257
|
onCopy?: ((payload: ClipboardEvent) => void) | undefined;
|
|
255
258
|
onCut?: ((payload: ClipboardEvent) => void) | undefined;
|
|
256
259
|
onPaste?: ((payload: ClipboardEvent) => void) | undefined;
|
|
@@ -413,7 +416,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
413
416
|
about?: string | undefined;
|
|
414
417
|
datatype?: string | undefined;
|
|
415
418
|
inlist?: any;
|
|
416
|
-
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
417
419
|
property?: string | undefined;
|
|
418
420
|
resource?: string | undefined;
|
|
419
421
|
typeof?: string | undefined;
|
|
@@ -426,7 +428,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
426
428
|
itemtype?: string | undefined;
|
|
427
429
|
itemid?: string | undefined;
|
|
428
430
|
itemref?: string | undefined;
|
|
429
|
-
results?: (string | number) | undefined;
|
|
430
431
|
security?: string | undefined;
|
|
431
432
|
unselectable?: "on" | "off" | undefined;
|
|
432
433
|
inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
|
|
@@ -434,7 +435,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
434
435
|
exportparts?: string;
|
|
435
436
|
part?: string;
|
|
436
437
|
popover?: import("../../index.ts").PopoverMode | "" | boolean;
|
|
437
|
-
loading?: boolean;
|
|
438
438
|
onClose?: (() => any) | undefined;
|
|
439
439
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
440
440
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
@@ -448,7 +448,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
448
448
|
onOpen?: (() => any) | undefined;
|
|
449
449
|
rootClass?: unknown;
|
|
450
450
|
hideClose?: boolean;
|
|
451
|
-
closeLabel?: string
|
|
451
|
+
closeLabel?: string;
|
|
452
452
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
453
453
|
}> & Readonly<{
|
|
454
454
|
onCancel?: (() => any) | undefined;
|
|
@@ -456,10 +456,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
456
456
|
onAfterLeave?: (() => any) | undefined;
|
|
457
457
|
onResolve?: ((confirmed: boolean) => any) | undefined;
|
|
458
458
|
}>, {
|
|
459
|
-
title: string;
|
|
460
459
|
tone: Tone;
|
|
461
|
-
confirmLabel: string;
|
|
462
|
-
cancelLabel: string;
|
|
463
460
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
464
461
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
465
462
|
declare const _default: typeof __VLS_export;
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
@resolve="onResolve"
|
|
16
16
|
@after-leave="onAfterLeave"
|
|
17
17
|
>
|
|
18
|
+
<component :is="current.body" v-if="current && current.kind !== 'prompt' && current.body" />
|
|
18
19
|
<FormField
|
|
19
|
-
v-if="current?.kind === 'prompt'"
|
|
20
|
+
v-else-if="current?.kind === 'prompt'"
|
|
20
21
|
:label="current.label"
|
|
21
22
|
:required="current.required"
|
|
22
23
|
:error="promptError || void 0"
|
|
@@ -36,10 +37,12 @@
|
|
|
36
37
|
<script setup>
|
|
37
38
|
import { computed, onBeforeUnmount, ref, shallowRef, useTemplateRef, watch } from "vue";
|
|
38
39
|
import { cancelRequest, confirmQueue } from "../../internal/overlays/confirm";
|
|
40
|
+
import { useLocale } from "../../composables/useLocale";
|
|
39
41
|
import { useHostClaim } from "../../internal/overlays/host";
|
|
40
42
|
import FormField from "../core/FormField.vue";
|
|
41
43
|
import Input from "../core/Input.vue";
|
|
42
44
|
import ConfirmDialog from "./ConfirmDialog.vue";
|
|
45
|
+
const { t } = useLocale();
|
|
43
46
|
const active = useHostClaim("confirm");
|
|
44
47
|
const dialogRef = useTemplateRef("dialogRef");
|
|
45
48
|
const open = ref(false);
|
|
@@ -49,7 +52,7 @@ const promptError = ref("");
|
|
|
49
52
|
const confirmLabel = computed(() => {
|
|
50
53
|
const request = current.value;
|
|
51
54
|
if (request?.confirmLabel) return request.confirmLabel;
|
|
52
|
-
return request?.kind === "alert" ? "
|
|
55
|
+
return request?.kind === "alert" ? t("common.ok") : void 0;
|
|
53
56
|
});
|
|
54
57
|
function next() {
|
|
55
58
|
if (!active.value || current.value || !confirmQueue.length) return;
|
|
@@ -67,7 +70,7 @@ async function onConfirm() {
|
|
|
67
70
|
if (!request || request.kind === "alert") return;
|
|
68
71
|
if (request.kind === "confirm") return request.onConfirm?.();
|
|
69
72
|
const value = promptText();
|
|
70
|
-
const error = request.required && !value.trim() ? request.requiredText ?? "
|
|
73
|
+
const error = request.required && !value.trim() ? request.requiredText ?? t("form.required") : request.validate?.(value);
|
|
71
74
|
if (error) {
|
|
72
75
|
promptError.value = error;
|
|
73
76
|
return false;
|