@xleddyl/443-components-vue 0.1.0 → 0.2.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 +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 +14 -0
- package/dist/nuxt/module.mjs +136 -8
- 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/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
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<EmptyState
|
|
18
18
|
variant="plain"
|
|
19
19
|
icon="exclamation-triangle"
|
|
20
|
-
:title="
|
|
20
|
+
:title="errorText"
|
|
21
21
|
:description="typeof error === 'string' ? error : void 0"
|
|
22
22
|
:level="2"
|
|
23
23
|
>
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
size="sm"
|
|
29
29
|
icon="arrow-path"
|
|
30
30
|
@click="emit('retry')"
|
|
31
|
-
>{{
|
|
31
|
+
>{{ retryText }}</Button
|
|
32
32
|
>
|
|
33
33
|
</template>
|
|
34
34
|
</EmptyState>
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<EmptyState
|
|
40
40
|
class="k-list-empty"
|
|
41
41
|
:icon="emptyIcon"
|
|
42
|
-
:title="
|
|
42
|
+
:title="emptyTitleText"
|
|
43
43
|
:description="emptyDescription"
|
|
44
44
|
:level="2"
|
|
45
45
|
>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
</slot>
|
|
51
51
|
|
|
52
52
|
<Card v-else class="k-list-card" padding="none">
|
|
53
|
-
<div v-if="hasToolbar" class="k-list-toolbar" role="search" :aria-label="
|
|
53
|
+
<div v-if="hasToolbar" class="k-list-toolbar" role="search" :aria-label="toolbarText">
|
|
54
54
|
<div class="k-list-toolbar-start">
|
|
55
55
|
<Input
|
|
56
56
|
v-if="searchable"
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
size="sm"
|
|
61
61
|
icon="magnifying-glass"
|
|
62
62
|
clearable
|
|
63
|
-
:placeholder="
|
|
64
|
-
:aria-label="
|
|
63
|
+
:placeholder="searchPlaceholderText"
|
|
64
|
+
:aria-label="searchLabelText"
|
|
65
65
|
@update:model-value="(value) => search = String(value ?? '')"
|
|
66
66
|
/>
|
|
67
67
|
<FilterPills
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
>
|
|
82
82
|
<template v-if="selectable && selected.length">
|
|
83
83
|
<span class="k-list-selection" aria-live="polite">{{
|
|
84
|
-
|
|
84
|
+
selectedLabel(selected.length)
|
|
85
85
|
}}</span>
|
|
86
86
|
<slot name="bulk" :selected="selected" :clear="() => selected = []" />
|
|
87
87
|
</template>
|
|
@@ -119,13 +119,13 @@
|
|
|
119
119
|
variant="plain"
|
|
120
120
|
size="sm"
|
|
121
121
|
icon="magnifying-glass"
|
|
122
|
-
:title="
|
|
123
|
-
:description="isFiltered ?
|
|
122
|
+
:title="noResultsTitleText"
|
|
123
|
+
:description="isFiltered ? noResultsDescriptionText : void 0"
|
|
124
124
|
:level="2"
|
|
125
125
|
>
|
|
126
126
|
<template v-if="isFiltered" #actions>
|
|
127
127
|
<Button size="sm" variant="soft" tone="neutral" @click="clearFilters">{{
|
|
128
|
-
|
|
128
|
+
clearText
|
|
129
129
|
}}</Button>
|
|
130
130
|
</template>
|
|
131
131
|
</EmptyState>
|
|
@@ -157,6 +157,7 @@
|
|
|
157
157
|
|
|
158
158
|
<script setup>
|
|
159
159
|
import { computed, useSlots, watch } from "vue";
|
|
160
|
+
import { useLocale } from "../../composables/useLocale";
|
|
160
161
|
import Button from "../core/Button.vue";
|
|
161
162
|
import { createCollator, readCell, sortRows } from "../../internal/data/rows";
|
|
162
163
|
import { normalizeSearch } from "../../internal/core/text";
|
|
@@ -189,23 +190,38 @@ const props = defineProps({
|
|
|
189
190
|
pageSizes: { type: Array, required: false, default: () => [10, 20, 50] },
|
|
190
191
|
searchable: { type: Boolean, required: false },
|
|
191
192
|
searchKeys: { type: Array, required: false },
|
|
192
|
-
searchPlaceholder: { type: String, required: false
|
|
193
|
-
searchLabel: { type: String, required: false
|
|
193
|
+
searchPlaceholder: { type: String, required: false },
|
|
194
|
+
searchLabel: { type: String, required: false },
|
|
194
195
|
filters: { type: Array, required: false },
|
|
195
196
|
filterKey: { type: String, required: false },
|
|
196
197
|
filterMultiple: { type: Boolean, required: false, default: true },
|
|
197
|
-
filterLabel: { type: String, required: false
|
|
198
|
-
toolbarLabel: { type: String, required: false
|
|
199
|
-
emptyTitle: { type: String, required: false
|
|
198
|
+
filterLabel: { type: String, required: false },
|
|
199
|
+
toolbarLabel: { type: String, required: false },
|
|
200
|
+
emptyTitle: { type: String, required: false },
|
|
200
201
|
emptyDescription: { type: String, required: false },
|
|
201
202
|
emptyIcon: { type: null, required: false, default: "inbox" },
|
|
202
|
-
noResultsTitle: { type: String, required: false
|
|
203
|
-
noResultsDescription: { type: String, required: false
|
|
204
|
-
clearLabel: { type: String, required: false
|
|
205
|
-
errorTitle: { type: String, required: false
|
|
206
|
-
retryLabel: { type: String, required: false
|
|
207
|
-
selectedText: { type: Function, required: false
|
|
203
|
+
noResultsTitle: { type: String, required: false },
|
|
204
|
+
noResultsDescription: { type: String, required: false },
|
|
205
|
+
clearLabel: { type: String, required: false },
|
|
206
|
+
errorTitle: { type: String, required: false },
|
|
207
|
+
retryLabel: { type: String, required: false },
|
|
208
|
+
selectedText: { type: Function, required: false }
|
|
208
209
|
});
|
|
210
|
+
const { locale, t } = useLocale();
|
|
211
|
+
const searchPlaceholderText = computed(() => props.searchPlaceholder ?? t("common.search"));
|
|
212
|
+
const searchLabelText = computed(() => props.searchLabel ?? t("common.search"));
|
|
213
|
+
const toolbarText = computed(() => props.toolbarLabel ?? t("listPage.toolbar"));
|
|
214
|
+
const emptyTitleText = computed(() => props.emptyTitle ?? t("listPage.emptyTitle"));
|
|
215
|
+
const noResultsTitleText = computed(() => props.noResultsTitle ?? t("common.noResults"));
|
|
216
|
+
const noResultsDescriptionText = computed(
|
|
217
|
+
() => props.noResultsDescription ?? t("listPage.noResultsDescription")
|
|
218
|
+
);
|
|
219
|
+
const clearText = computed(() => props.clearLabel ?? t("listPage.clearFilters"));
|
|
220
|
+
const errorText = computed(() => props.errorTitle ?? t("common.somethingWentWrong"));
|
|
221
|
+
const retryText = computed(() => props.retryLabel ?? t("common.retry"));
|
|
222
|
+
function selectedLabel(count) {
|
|
223
|
+
return props.selectedText ? props.selectedText(count) : t("common.selected", { count });
|
|
224
|
+
}
|
|
209
225
|
const emit = defineEmits(["retry", "clear", "rowClick"]);
|
|
210
226
|
defineSlots();
|
|
211
227
|
const page = defineModel("page", { type: Number, ...{ default: 1 } });
|
|
@@ -254,9 +270,9 @@ const filtered = computed(() => {
|
|
|
254
270
|
);
|
|
255
271
|
});
|
|
256
272
|
});
|
|
257
|
-
const collator = createCollator();
|
|
273
|
+
const collator = computed(() => createCollator(locale.value.code));
|
|
258
274
|
const sorted = computed(
|
|
259
|
-
() => serverMode.value ? filtered.value : sortRows(filtered.value, sort.value, props.columns, collator)
|
|
275
|
+
() => serverMode.value ? filtered.value : sortRows(filtered.value, sort.value, props.columns, collator.value)
|
|
260
276
|
);
|
|
261
277
|
const resultTotal = computed(() => serverMode.value ? props.total ?? 0 : sorted.value.length);
|
|
262
278
|
const visibleRows = computed(() => {
|
|
@@ -50,12 +50,12 @@ declare const __VLS_export: <T extends object>(__VLS_props: NonNullable<Awaited<
|
|
|
50
50
|
selected?: RowKey[];
|
|
51
51
|
}) & {
|
|
52
52
|
onClear?: (() => any) | undefined;
|
|
53
|
+
onRetry?: (() => any) | undefined;
|
|
53
54
|
"onUpdate:page"?: ((value: number) => any) | undefined;
|
|
54
55
|
"onUpdate:pageSize"?: ((value: number) => any) | undefined;
|
|
55
56
|
onRowClick?: ((row: T, index: number, event: MouseEvent) => any) | undefined;
|
|
56
57
|
"onUpdate:sort"?: ((value: TableSort | null) => any) | undefined;
|
|
57
58
|
"onUpdate:selected"?: ((value: RowKey[]) => any) | undefined;
|
|
58
|
-
onRetry?: (() => any) | undefined;
|
|
59
59
|
"onUpdate:search"?: ((value: string) => any) | undefined;
|
|
60
60
|
"onUpdate:filter"?: ((value: string | number | (string | number)[] | null) => any) | undefined;
|
|
61
61
|
} & Partial<import("vue").HTMLAttributes & import("vue").ReservedProps>> & (typeof globalThis extends {
|
|
@@ -100,7 +100,7 @@ declare const __VLS_export: <T extends object>(__VLS_props: NonNullable<Awaited<
|
|
|
100
100
|
retry: () => void;
|
|
101
101
|
}) => unknown;
|
|
102
102
|
};
|
|
103
|
-
emit: (((evt: "clear") => void) & ((evt: "rowClick", row: T, index: number, event: MouseEvent) => void)
|
|
103
|
+
emit: (((evt: "clear") => void) & ((evt: "retry") => void) & ((evt: "rowClick", row: T, index: number, event: MouseEvent) => void)) & (((event: "update:page", value: number) => void) & ((event: "update:pageSize", value: number) => void) & ((event: "update:sort", value: TableSort | null) => void) & ((event: "update:selected", value: RowKey[]) => void) & ((event: "update:search", value: string) => void) & ((event: "update:filter", value: string | number | (string | number)[] | null) => void));
|
|
104
104
|
}>) => import("vue").VNode & {
|
|
105
105
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
106
106
|
};
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
<script setup>
|
|
23
23
|
import ErrorPage from "./ErrorPage.vue";
|
|
24
24
|
defineProps({
|
|
25
|
-
title: { type: String, required: false, default:
|
|
26
|
-
message: { type: String, required: false, default:
|
|
25
|
+
title: { type: String, required: false, default: void 0 },
|
|
26
|
+
message: { type: String, required: false, default: void 0 },
|
|
27
27
|
homeTo: { type: [String, Object], required: false, default: "/" },
|
|
28
|
-
homeLabel: { type: [String, Boolean], required: false, default:
|
|
29
|
-
backLabel: { type: [String, Boolean], required: false, default:
|
|
28
|
+
homeLabel: { type: [String, Boolean], required: false, default: void 0 },
|
|
29
|
+
backLabel: { type: [String, Boolean], required: false, default: void 0 },
|
|
30
30
|
brandName: { type: String, required: false },
|
|
31
31
|
brandIcon: { type: null, required: false },
|
|
32
32
|
brandLogo: { type: String, required: false },
|
|
@@ -434,8 +434,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
434
434
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
435
435
|
}> & Readonly<{}>, {
|
|
436
436
|
fill: boolean;
|
|
437
|
-
message: string;
|
|
438
437
|
title: string;
|
|
438
|
+
message: string;
|
|
439
439
|
backLabel: string | false;
|
|
440
440
|
homeTo: LinkTarget;
|
|
441
441
|
homeLabel: string | false;
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="k-savebar-slot" :class="{ 'is-visible': visible }">
|
|
3
|
-
<p class="k-visually-hidden" role="status">{{ visible ?
|
|
3
|
+
<p class="k-visually-hidden" role="status">{{ visible ? messageText : "" }}</p>
|
|
4
4
|
<div
|
|
5
5
|
v-if="visible"
|
|
6
6
|
class="k-savebar"
|
|
7
7
|
role="region"
|
|
8
|
-
:aria-label="
|
|
8
|
+
:aria-label="labelText"
|
|
9
9
|
:aria-busy="saving ? 'true' : void 0"
|
|
10
10
|
>
|
|
11
11
|
<span class="k-savebar-dot" aria-hidden="true" />
|
|
12
12
|
<p class="k-savebar-message">
|
|
13
|
-
<slot>{{
|
|
13
|
+
<slot>{{ messageText }}</slot>
|
|
14
14
|
</p>
|
|
15
15
|
<div class="k-savebar-actions">
|
|
16
16
|
<slot name="actions">
|
|
17
17
|
<Button
|
|
18
|
-
v-if="
|
|
18
|
+
v-if="discardText"
|
|
19
19
|
variant="ghost"
|
|
20
20
|
tone="neutral"
|
|
21
21
|
size="sm"
|
|
22
22
|
:disabled="saving"
|
|
23
23
|
@click="emit('discard')"
|
|
24
|
-
>{{
|
|
24
|
+
>{{ discardText }}</Button
|
|
25
25
|
>
|
|
26
26
|
<Button
|
|
27
27
|
:type="form ? 'submit' : 'button'"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
size="sm"
|
|
30
30
|
:loading="saving"
|
|
31
31
|
@click="form ? void 0 : emit('save')"
|
|
32
|
-
>{{
|
|
32
|
+
>{{ saveText }}</Button
|
|
33
33
|
>
|
|
34
34
|
</slot>
|
|
35
35
|
</div>
|
|
@@ -38,15 +38,24 @@
|
|
|
38
38
|
</template>
|
|
39
39
|
|
|
40
40
|
<script setup>
|
|
41
|
+
import { computed } from "vue";
|
|
42
|
+
import { useLocale } from "../../composables/useLocale";
|
|
41
43
|
import Button from "../core/Button.vue";
|
|
42
|
-
defineProps({
|
|
44
|
+
const props = defineProps({
|
|
43
45
|
visible: { type: Boolean, required: false, default: true },
|
|
44
46
|
saving: { type: Boolean, required: false },
|
|
45
|
-
message: { type: String, required: false
|
|
46
|
-
saveLabel: { type: String, required: false
|
|
47
|
-
discardLabel: { type: [String, Boolean], required: false, default:
|
|
48
|
-
label: { type: String, required: false
|
|
47
|
+
message: { type: String, required: false },
|
|
48
|
+
saveLabel: { type: String, required: false },
|
|
49
|
+
discardLabel: { type: [String, Boolean], required: false, default: void 0 },
|
|
50
|
+
label: { type: String, required: false },
|
|
49
51
|
form: { type: String, required: false }
|
|
50
52
|
});
|
|
53
|
+
const { t } = useLocale();
|
|
54
|
+
const messageText = computed(() => props.message ?? t("saveBar.message"));
|
|
55
|
+
const saveText = computed(() => props.saveLabel ?? t("common.saveChanges"));
|
|
56
|
+
const labelText = computed(() => props.label ?? t("common.unsavedChanges"));
|
|
57
|
+
const discardText = computed(
|
|
58
|
+
() => props.discardLabel === void 0 ? t("common.discard") : props.discardLabel
|
|
59
|
+
);
|
|
51
60
|
const emit = defineEmits(["save", "discard"]);
|
|
52
61
|
</script>
|
|
@@ -13,14 +13,16 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
13
13
|
label?: string;
|
|
14
14
|
form?: string;
|
|
15
15
|
key?: PropertyKey | undefined;
|
|
16
|
-
|
|
16
|
+
prefix?: string | undefined | undefined;
|
|
17
|
+
title?: string | undefined | undefined;
|
|
18
|
+
style?: import("vue").StyleValue;
|
|
19
|
+
results?: (string | number) | undefined;
|
|
17
20
|
placeholder?: string | undefined | undefined;
|
|
21
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
18
22
|
class?: import("vue").ClassValue;
|
|
19
23
|
role?: string | undefined | undefined;
|
|
20
24
|
'aria-label'?: string | undefined | undefined;
|
|
21
25
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
22
|
-
style?: import("vue").StyleValue;
|
|
23
|
-
title?: string | undefined | undefined;
|
|
24
26
|
onCopy?: ((payload: ClipboardEvent) => void) | undefined;
|
|
25
27
|
onCut?: ((payload: ClipboardEvent) => void) | undefined;
|
|
26
28
|
onPaste?: ((payload: ClipboardEvent) => void) | undefined;
|
|
@@ -129,7 +131,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
129
131
|
'aria-colindex'?: (string | number) | undefined;
|
|
130
132
|
'aria-colspan'?: (string | number) | undefined;
|
|
131
133
|
'aria-controls'?: string | undefined | undefined;
|
|
132
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
134
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
133
135
|
'aria-describedby'?: string | undefined | undefined;
|
|
134
136
|
'aria-details'?: string | undefined | undefined;
|
|
135
137
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -138,7 +140,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
138
140
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
139
141
|
'aria-flowto'?: string | undefined | undefined;
|
|
140
142
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
141
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
143
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
142
144
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
143
145
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
144
146
|
'aria-labelledby'?: string | undefined | undefined;
|
|
@@ -174,7 +176,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
174
176
|
dir?: string | undefined | undefined;
|
|
175
177
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
176
178
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
177
|
-
enterKeyHint?: "search" | "done" | "
|
|
179
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
178
180
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
179
181
|
inert?: (boolean | "true" | "false") | undefined;
|
|
180
182
|
spellcheck?: (boolean | "true" | "false") | undefined;
|
|
@@ -183,7 +185,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
183
185
|
about?: string | undefined | undefined;
|
|
184
186
|
datatype?: string | undefined | undefined;
|
|
185
187
|
inlist?: any;
|
|
186
|
-
prefix?: string | undefined | undefined;
|
|
187
188
|
property?: string | undefined | undefined;
|
|
188
189
|
resource?: string | undefined | undefined;
|
|
189
190
|
typeof?: string | undefined | undefined;
|
|
@@ -196,7 +197,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
196
197
|
itemtype?: string | undefined | undefined;
|
|
197
198
|
itemid?: string | undefined | undefined;
|
|
198
199
|
itemref?: string | undefined | undefined;
|
|
199
|
-
results?: (string | number) | undefined;
|
|
200
200
|
security?: string | undefined | undefined;
|
|
201
201
|
unselectable?: "on" | "off" | undefined | undefined;
|
|
202
202
|
inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
@@ -216,14 +216,16 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
216
216
|
label?: string;
|
|
217
217
|
form?: string;
|
|
218
218
|
key?: PropertyKey | undefined;
|
|
219
|
-
|
|
219
|
+
prefix?: string | undefined | undefined;
|
|
220
|
+
title?: string | undefined | undefined;
|
|
221
|
+
style?: import("vue").StyleValue;
|
|
222
|
+
results?: (string | number) | undefined;
|
|
220
223
|
placeholder?: string | undefined | undefined;
|
|
224
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
221
225
|
class?: import("vue").ClassValue;
|
|
222
226
|
role?: string | undefined | undefined;
|
|
223
227
|
'aria-label'?: string | undefined | undefined;
|
|
224
228
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
225
|
-
style?: import("vue").StyleValue;
|
|
226
|
-
title?: string | undefined | undefined;
|
|
227
229
|
onCopy?: ((payload: ClipboardEvent) => void) | undefined;
|
|
228
230
|
onCut?: ((payload: ClipboardEvent) => void) | undefined;
|
|
229
231
|
onPaste?: ((payload: ClipboardEvent) => void) | undefined;
|
|
@@ -332,7 +334,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
332
334
|
'aria-colindex'?: (string | number) | undefined;
|
|
333
335
|
'aria-colspan'?: (string | number) | undefined;
|
|
334
336
|
'aria-controls'?: string | undefined | undefined;
|
|
335
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
337
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
336
338
|
'aria-describedby'?: string | undefined | undefined;
|
|
337
339
|
'aria-details'?: string | undefined | undefined;
|
|
338
340
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -341,7 +343,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
341
343
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
342
344
|
'aria-flowto'?: string | undefined | undefined;
|
|
343
345
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
344
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
346
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
345
347
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
346
348
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
347
349
|
'aria-labelledby'?: string | undefined | undefined;
|
|
@@ -377,7 +379,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
377
379
|
dir?: string | undefined | undefined;
|
|
378
380
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
379
381
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
380
|
-
enterKeyHint?: "search" | "done" | "
|
|
382
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
381
383
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
382
384
|
inert?: (boolean | "true" | "false") | undefined;
|
|
383
385
|
spellcheck?: (boolean | "true" | "false") | undefined;
|
|
@@ -386,7 +388,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
386
388
|
about?: string | undefined | undefined;
|
|
387
389
|
datatype?: string | undefined | undefined;
|
|
388
390
|
inlist?: any;
|
|
389
|
-
prefix?: string | undefined | undefined;
|
|
390
391
|
property?: string | undefined | undefined;
|
|
391
392
|
resource?: string | undefined | undefined;
|
|
392
393
|
typeof?: string | undefined | undefined;
|
|
@@ -399,7 +400,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
399
400
|
itemtype?: string | undefined | undefined;
|
|
400
401
|
itemid?: string | undefined | undefined;
|
|
401
402
|
itemref?: string | undefined | undefined;
|
|
402
|
-
results?: (string | number) | undefined;
|
|
403
403
|
security?: string | undefined | undefined;
|
|
404
404
|
unselectable?: "on" | "off" | undefined | undefined;
|
|
405
405
|
inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
@@ -411,10 +411,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
411
411
|
onSave?: (() => any) | undefined;
|
|
412
412
|
onDiscard?: (() => any) | undefined;
|
|
413
413
|
}>, {
|
|
414
|
-
message: string;
|
|
415
|
-
label: string;
|
|
416
414
|
visible: boolean;
|
|
417
|
-
saveLabel: string;
|
|
418
415
|
discardLabel: string | false;
|
|
419
416
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
420
417
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -22,7 +22,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
22
22
|
dir?: string | undefined | undefined;
|
|
23
23
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
24
24
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
25
|
-
enterKeyHint?: "search" | "done" | "
|
|
25
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
26
26
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
27
27
|
id?: string | undefined | undefined;
|
|
28
28
|
inert?: (boolean | "true" | "false") | undefined;
|
|
@@ -68,7 +68,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
68
68
|
'aria-colindex'?: (string | number) | undefined;
|
|
69
69
|
'aria-colspan'?: (string | number) | undefined;
|
|
70
70
|
'aria-controls'?: string | undefined | undefined;
|
|
71
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
71
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
72
72
|
'aria-describedby'?: string | undefined | undefined;
|
|
73
73
|
'aria-details'?: string | undefined | undefined;
|
|
74
74
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -77,7 +77,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
77
77
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
78
78
|
'aria-flowto'?: string | undefined | undefined;
|
|
79
79
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
80
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
80
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
81
81
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
82
82
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
83
83
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
@@ -219,7 +219,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
219
219
|
dir?: string | undefined | undefined;
|
|
220
220
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
221
221
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
222
|
-
enterKeyHint?: "search" | "done" | "
|
|
222
|
+
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
223
223
|
hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
|
|
224
224
|
id?: string | undefined | undefined;
|
|
225
225
|
inert?: (boolean | "true" | "false") | undefined;
|
|
@@ -265,7 +265,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
265
265
|
'aria-colindex'?: (string | number) | undefined;
|
|
266
266
|
'aria-colspan'?: (string | number) | undefined;
|
|
267
267
|
'aria-controls'?: string | undefined | undefined;
|
|
268
|
-
'aria-current'?: "location" | "time" | (boolean | "true" | "false") | "
|
|
268
|
+
'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
|
|
269
269
|
'aria-describedby'?: string | undefined | undefined;
|
|
270
270
|
'aria-details'?: string | undefined | undefined;
|
|
271
271
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -274,7 +274,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
274
274
|
'aria-expanded'?: (boolean | "true" | "false") | undefined;
|
|
275
275
|
'aria-flowto'?: string | undefined | undefined;
|
|
276
276
|
'aria-grabbed'?: (boolean | "true" | "false") | undefined;
|
|
277
|
-
'aria-haspopup'?: "dialog" | "menu" | (boolean | "true" | "false") | "listbox" |
|
|
277
|
+
'aria-haspopup'?: "grid" | "tree" | "dialog" | "menu" | (boolean | "true" | "false") | "listbox" | undefined;
|
|
278
278
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
279
279
|
'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
|
|
280
280
|
'aria-keyshortcuts'?: string | undefined | undefined;
|
|
@@ -403,7 +403,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
403
403
|
ref_for?: boolean | undefined | undefined;
|
|
404
404
|
ref_key?: string | undefined | undefined;
|
|
405
405
|
}> & Readonly<{}>, {
|
|
406
|
-
level: 2 |
|
|
406
|
+
level: 2 | 4 | 3;
|
|
407
407
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
408
408
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
409
409
|
declare const _default: typeof __VLS_export;
|
|
@@ -6,21 +6,21 @@
|
|
|
6
6
|
flush
|
|
7
7
|
hide-close
|
|
8
8
|
:sheet="false"
|
|
9
|
-
:aria-label="
|
|
9
|
+
:aria-label="titleText"
|
|
10
10
|
@open="emit('open')"
|
|
11
11
|
@close="emit('close')"
|
|
12
12
|
@after-leave="emit('afterLeave')"
|
|
13
13
|
>
|
|
14
14
|
<template #default="{ close }">
|
|
15
15
|
<div class="k-settings-modal-frame">
|
|
16
|
-
<nav class="k-settings-modal-nav" :aria-label="
|
|
16
|
+
<nav class="k-settings-modal-nav" :aria-label="navText">
|
|
17
17
|
<Button
|
|
18
18
|
class="k-settings-modal-close"
|
|
19
19
|
icon="x-mark"
|
|
20
20
|
variant="ghost"
|
|
21
21
|
tone="neutral"
|
|
22
22
|
size="sm"
|
|
23
|
-
:aria-label="
|
|
23
|
+
:aria-label="closeText"
|
|
24
24
|
@click="close"
|
|
25
25
|
/>
|
|
26
26
|
<div class="k-settings-modal-nav-list">
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<hr class="k-settings-modal-divider" />
|
|
76
76
|
<button type="button" class="k-settings-modal-tab is-danger" @click="signOut">
|
|
77
77
|
<Icon name="arrow-left-start-on-rectangle" />
|
|
78
|
-
<span class="k-settings-modal-tab-label">{{
|
|
78
|
+
<span class="k-settings-modal-tab-label">{{ signOutText }}</span>
|
|
79
79
|
</button>
|
|
80
80
|
</template>
|
|
81
81
|
</nav>
|
|
@@ -115,8 +115,8 @@
|
|
|
115
115
|
<slot name="account-fields" :account="account" :close="close" />
|
|
116
116
|
<SettingsGroup
|
|
117
117
|
v-if="onSignOut"
|
|
118
|
-
:label="
|
|
119
|
-
:description="
|
|
118
|
+
:label="sessionLabelText"
|
|
119
|
+
:description="sessionDescriptionText"
|
|
120
120
|
row
|
|
121
121
|
>
|
|
122
122
|
<template #actions>
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
icon="arrow-left-start-on-rectangle"
|
|
128
128
|
@click="signOut"
|
|
129
129
|
>
|
|
130
|
-
{{
|
|
130
|
+
{{ signOutText }}
|
|
131
131
|
</Button>
|
|
132
132
|
</template>
|
|
133
133
|
</SettingsGroup>
|
|
@@ -150,6 +150,7 @@
|
|
|
150
150
|
<script setup>
|
|
151
151
|
import { computed, useId } from "vue";
|
|
152
152
|
import { THEME_PRESETS } from "../../composables/usePreset";
|
|
153
|
+
import { useLocale } from "../../composables/useLocale";
|
|
153
154
|
import { useLinkResolver } from "../../internal/core/link";
|
|
154
155
|
import Button from "../core/Button.vue";
|
|
155
156
|
import Icon from "../core/Icon.vue";
|
|
@@ -162,16 +163,16 @@ const props = defineProps({
|
|
|
162
163
|
sections: { type: Array, required: false, default: void 0 },
|
|
163
164
|
account: { type: Object, required: false },
|
|
164
165
|
presets: { type: [Array, Boolean], required: false, default: () => THEME_PRESETS },
|
|
165
|
-
title: { type: String, required: false
|
|
166
|
-
closeLabel: { type: String, required: false
|
|
167
|
-
navLabel: { type: String, required: false
|
|
168
|
-
signOutLabel: { type: String, required: false
|
|
169
|
-
sessionLabel: { type: String, required: false
|
|
170
|
-
sessionText: { type: String, required: false
|
|
171
|
-
accountLabel: { type: String, required: false
|
|
172
|
-
accountText: { type: String, required: false
|
|
173
|
-
appearanceLabel: { type: String, required: false
|
|
174
|
-
appearanceText: { type: String, required: false
|
|
166
|
+
title: { type: String, required: false },
|
|
167
|
+
closeLabel: { type: String, required: false },
|
|
168
|
+
navLabel: { type: String, required: false },
|
|
169
|
+
signOutLabel: { type: String, required: false },
|
|
170
|
+
sessionLabel: { type: String, required: false },
|
|
171
|
+
sessionText: { type: String, required: false },
|
|
172
|
+
accountLabel: { type: String, required: false },
|
|
173
|
+
accountText: { type: String, required: false },
|
|
174
|
+
appearanceLabel: { type: String, required: false },
|
|
175
|
+
appearanceText: { type: String, required: false },
|
|
175
176
|
themeLabel: { type: String, required: false, default: void 0 },
|
|
176
177
|
themeText: { type: String, required: false, default: void 0 },
|
|
177
178
|
presetLabel: { type: String, required: false, default: void 0 },
|
|
@@ -182,6 +183,13 @@ defineSlots();
|
|
|
182
183
|
const emit = defineEmits(["open", "close", "afterLeave"]);
|
|
183
184
|
const open = defineModel("open", { type: Boolean, ...{ default: false } });
|
|
184
185
|
const section = defineModel("section", { type: String });
|
|
186
|
+
const { t } = useLocale();
|
|
187
|
+
const titleText = computed(() => props.title ?? t("settings.title"));
|
|
188
|
+
const closeText = computed(() => props.closeLabel ?? t("settings.close"));
|
|
189
|
+
const navText = computed(() => props.navLabel ?? t("settings.sections"));
|
|
190
|
+
const signOutText = computed(() => props.signOutLabel ?? t("settings.signOut"));
|
|
191
|
+
const sessionLabelText = computed(() => props.sessionLabel ?? t("settings.session"));
|
|
192
|
+
const sessionDescriptionText = computed(() => props.sessionText ?? t("settings.sessionDescription"));
|
|
185
193
|
const baseId = useId();
|
|
186
194
|
const panelId = `${baseId}-panel`;
|
|
187
195
|
const { resolveLink } = useLinkResolver();
|
|
@@ -191,15 +199,15 @@ const sectionList = computed(() => {
|
|
|
191
199
|
if (props.account)
|
|
192
200
|
list.push({
|
|
193
201
|
id: "account",
|
|
194
|
-
label: props.accountLabel,
|
|
202
|
+
label: props.accountLabel ?? t("account.label"),
|
|
195
203
|
icon: "user-circle",
|
|
196
|
-
description: props.accountText
|
|
204
|
+
description: props.accountText ?? t("settings.accountDescription")
|
|
197
205
|
});
|
|
198
206
|
list.push({
|
|
199
207
|
id: "appearance",
|
|
200
|
-
label: props.appearanceLabel,
|
|
208
|
+
label: props.appearanceLabel ?? t("settings.appearance"),
|
|
201
209
|
icon: "sun",
|
|
202
|
-
description: props.appearanceText
|
|
210
|
+
description: props.appearanceText ?? t("settings.appearanceDescription")
|
|
203
211
|
});
|
|
204
212
|
return list;
|
|
205
213
|
});
|