@nuxt/ui 3.2.0 → 3.3.1
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/.nuxt/ui/button.ts +42 -42
- package/.nuxt/ui/command-palette.ts +2 -1
- package/.nuxt/ui/drawer.ts +1 -1
- package/.nuxt/ui/file-upload.ts +290 -0
- package/.nuxt/ui/index.ts +1 -0
- package/.nuxt/ui/input.ts +1 -1
- package/.nuxt/ui/kbd.ts +167 -3
- package/.nuxt/ui/select.ts +7 -7
- package/.nuxt/ui/table.ts +8 -0
- package/.nuxt/ui/tabs.ts +4 -2
- package/.nuxt/ui/textarea.ts +1 -1
- package/.nuxt/ui/toast.ts +8 -15
- package/.nuxt/ui/tooltip.ts +1 -1
- package/cli/templates.mjs +8 -3
- package/dist/module.d.mts +15 -1
- package/dist/module.json +2 -2
- package/dist/module.mjs +3 -3
- package/dist/runtime/components/Accordion.vue.d.ts +1 -1
- package/dist/runtime/components/Alert.vue.d.ts +2 -2
- package/dist/runtime/components/App.vue.d.ts +1 -1
- package/dist/runtime/components/Avatar.vue.d.ts +1 -1
- package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
- package/dist/runtime/components/Badge.vue.d.ts +1 -1
- package/dist/runtime/components/Breadcrumb.vue.d.ts +1 -1
- package/dist/runtime/components/Button.vue +6 -6
- package/dist/runtime/components/Button.vue.d.ts +1 -5
- package/dist/runtime/components/ButtonGroup.vue.d.ts +1 -1
- package/dist/runtime/components/Calendar.vue.d.ts +1 -1
- package/dist/runtime/components/Card.vue.d.ts +1 -1
- package/dist/runtime/components/Carousel.vue +18 -14
- package/dist/runtime/components/Carousel.vue.d.ts +1 -1
- package/dist/runtime/components/Checkbox.vue.d.ts +1 -1
- package/dist/runtime/components/CheckboxGroup.vue.d.ts +1 -1
- package/dist/runtime/components/Chip.vue.d.ts +2 -2
- package/dist/runtime/components/Collapsible.vue.d.ts +1 -1
- package/dist/runtime/components/ColorPicker.vue +1 -2
- package/dist/runtime/components/ColorPicker.vue.d.ts +1 -1
- package/dist/runtime/components/CommandPalette.vue +4 -0
- package/dist/runtime/components/CommandPalette.vue.d.ts +6 -1
- package/dist/runtime/components/Container.vue.d.ts +1 -1
- package/dist/runtime/components/ContextMenu.vue.d.ts +1 -1
- package/dist/runtime/components/ContextMenuContent.vue +5 -3
- package/dist/runtime/components/ContextMenuContent.vue.d.ts +1 -1
- package/dist/runtime/components/Drawer.vue +4 -4
- package/dist/runtime/components/Drawer.vue.d.ts +6 -1
- package/dist/runtime/components/DropdownMenu.vue.d.ts +1 -1
- package/dist/runtime/components/DropdownMenuContent.vue +5 -3
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +8 -5
- package/dist/runtime/components/FileUpload.vue +248 -0
- package/dist/runtime/components/FileUpload.vue.d.ts +167 -0
- package/dist/runtime/components/Form.vue +3 -3
- package/dist/runtime/components/Form.vue.d.ts +6 -5
- package/dist/runtime/components/FormField.vue +2 -2
- package/dist/runtime/components/FormField.vue.d.ts +4 -4
- package/dist/runtime/components/Icon.vue.d.ts +1 -1
- package/dist/runtime/components/Input.vue +10 -7
- package/dist/runtime/components/Input.vue.d.ts +9 -9
- package/dist/runtime/components/InputMenu.vue +25 -13
- package/dist/runtime/components/InputMenu.vue.d.ts +16 -221
- package/dist/runtime/components/InputNumber.vue +3 -2
- package/dist/runtime/components/InputNumber.vue.d.ts +7 -81
- package/dist/runtime/components/InputTags.vue +2 -0
- package/dist/runtime/components/InputTags.vue.d.ts +7 -5
- package/dist/runtime/components/Kbd.vue +2 -1
- package/dist/runtime/components/Kbd.vue.d.ts +5 -1
- package/dist/runtime/components/Link.vue +6 -5
- package/dist/runtime/components/Link.vue.d.ts +1 -3
- package/dist/runtime/components/LinkBase.vue.d.ts +1 -1
- package/dist/runtime/components/Modal.vue.d.ts +2 -2
- package/dist/runtime/components/NavigationMenu.vue +3 -2
- package/dist/runtime/components/NavigationMenu.vue.d.ts +1 -1
- package/dist/runtime/components/OverlayProvider.vue.d.ts +1 -1
- package/dist/runtime/components/Pagination.vue.d.ts +1 -1
- package/dist/runtime/components/PinInput.vue +3 -1
- package/dist/runtime/components/PinInput.vue.d.ts +5 -5
- package/dist/runtime/components/Popover.vue +2 -1
- package/dist/runtime/components/Popover.vue.d.ts +8 -2
- package/dist/runtime/components/Progress.vue.d.ts +1 -1
- package/dist/runtime/components/RadioGroup.vue +1 -1
- package/dist/runtime/components/RadioGroup.vue.d.ts +5 -4
- package/dist/runtime/components/Select.vue +16 -6
- package/dist/runtime/components/Select.vue.d.ts +3 -3
- package/dist/runtime/components/SelectMenu.vue +18 -10
- package/dist/runtime/components/SelectMenu.vue.d.ts +3 -3
- package/dist/runtime/components/Separator.vue.d.ts +1 -1
- package/dist/runtime/components/Skeleton.vue.d.ts +1 -1
- package/dist/runtime/components/Slideover.vue.d.ts +2 -2
- package/dist/runtime/components/Slider.vue.d.ts +5 -5
- package/dist/runtime/components/Stepper.vue.d.ts +1 -1
- package/dist/runtime/components/Switch.vue.d.ts +1 -1
- package/dist/runtime/components/Table.vue +83 -8
- package/dist/runtime/components/Table.vue.d.ts +20 -4
- package/dist/runtime/components/Tabs.vue +12 -2
- package/dist/runtime/components/Tabs.vue.d.ts +8 -3
- package/dist/runtime/components/Textarea.vue +10 -7
- package/dist/runtime/components/Textarea.vue.d.ts +10 -9
- package/dist/runtime/components/Timeline.vue.d.ts +1 -1
- package/dist/runtime/components/Toast.vue +12 -4
- package/dist/runtime/components/Toast.vue.d.ts +14 -13
- package/dist/runtime/components/Toaster.vue.d.ts +1 -1
- package/dist/runtime/components/Tooltip.vue +4 -3
- package/dist/runtime/components/Tooltip.vue.d.ts +8 -2
- package/dist/runtime/components/Tree.vue +31 -28
- package/dist/runtime/components/Tree.vue.d.ts +2 -1
- package/dist/runtime/composables/defineShortcuts.js +5 -3
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useComponentIcons.d.ts +1 -1
- package/dist/runtime/composables/useFileUpload.d.ts +19 -0
- package/dist/runtime/composables/useFileUpload.js +69 -0
- package/dist/runtime/composables/useFormField.d.ts +3 -6
- package/dist/runtime/composables/useFormField.js +5 -2
- package/dist/runtime/composables/useKbd.d.ts +1 -1
- package/dist/runtime/composables/useLocale.js +2 -2
- package/dist/runtime/composables/useOverlay.d.ts +29 -2
- package/dist/runtime/composables/useOverlay.js +8 -7
- package/dist/runtime/composables/usePortal.d.ts +1 -1
- package/dist/runtime/inertia/components/Link.vue.d.ts +1 -1
- package/dist/runtime/inertia/components/LinkBase.vue.d.ts +1 -1
- package/dist/runtime/inertia/stubs.d.ts +1 -0
- package/dist/runtime/inertia/stubs.js +4 -2
- package/dist/runtime/locale/ar.js +5 -1
- package/dist/runtime/locale/az.js +4 -0
- package/dist/runtime/locale/bg.js +4 -0
- package/dist/runtime/locale/bn.js +4 -0
- package/dist/runtime/locale/ca.js +4 -0
- package/dist/runtime/locale/ckb.js +5 -1
- package/dist/runtime/locale/cs.js +4 -0
- package/dist/runtime/locale/da.js +4 -0
- package/dist/runtime/locale/de.js +4 -0
- package/dist/runtime/locale/el.js +4 -0
- package/dist/runtime/locale/en.js +4 -0
- package/dist/runtime/locale/es.js +4 -0
- package/dist/runtime/locale/et.js +4 -0
- package/dist/runtime/locale/fa_ir.js +4 -0
- package/dist/runtime/locale/fi.js +4 -0
- package/dist/runtime/locale/fr.js +4 -0
- package/dist/runtime/locale/he.js +4 -0
- package/dist/runtime/locale/hi.js +5 -1
- package/dist/runtime/locale/hu.js +4 -0
- package/dist/runtime/locale/hy.js +4 -0
- package/dist/runtime/locale/id.js +4 -0
- package/dist/runtime/locale/it.js +4 -0
- package/dist/runtime/locale/ja.js +4 -0
- package/dist/runtime/locale/kk.js +4 -0
- package/dist/runtime/locale/km.js +5 -1
- package/dist/runtime/locale/ko.js +4 -0
- package/dist/runtime/locale/ky.js +4 -0
- package/dist/runtime/locale/lb.js +4 -0
- package/dist/runtime/locale/lt.js +4 -0
- package/dist/runtime/locale/mn.js +4 -0
- package/dist/runtime/locale/ms.js +4 -0
- package/dist/runtime/locale/nb_no.js +4 -0
- package/dist/runtime/locale/nl.js +4 -0
- package/dist/runtime/locale/pl.js +4 -0
- package/dist/runtime/locale/pt.js +4 -0
- package/dist/runtime/locale/pt_br.js +4 -0
- package/dist/runtime/locale/ro.js +4 -0
- package/dist/runtime/locale/ru.js +4 -0
- package/dist/runtime/locale/sk.js +4 -0
- package/dist/runtime/locale/sl.js +4 -0
- package/dist/runtime/locale/sv.js +4 -0
- package/dist/runtime/locale/th.js +4 -0
- package/dist/runtime/locale/tj.js +4 -0
- package/dist/runtime/locale/tr.js +4 -0
- package/dist/runtime/locale/ug_cn.js +4 -0
- package/dist/runtime/locale/uk.js +4 -0
- package/dist/runtime/locale/ur.js +4 -0
- package/dist/runtime/locale/uz.js +4 -0
- package/dist/runtime/locale/vi.js +4 -0
- package/dist/runtime/locale/zh_cn.js +4 -0
- package/dist/runtime/locale/zh_tw.js +4 -0
- package/dist/runtime/types/index.d.ts +1 -0
- package/dist/runtime/types/index.js +1 -0
- package/dist/runtime/types/locale.d.ts +4 -0
- package/dist/runtime/utils/index.d.ts +6 -0
- package/dist/runtime/utils/index.js +27 -0
- package/dist/runtime/vue/components/Icon.vue.d.ts +1 -1
- package/dist/runtime/vue/components/Link.vue.d.ts +1 -1
- package/dist/runtime/vue/stubs.d.ts +1 -0
- package/dist/runtime/vue/stubs.js +3 -1
- package/dist/shared/{ui.BPVxSPGY.mjs → ui.BTUFJHYJ.mjs} +299 -36
- package/dist/unplugin.d.mts +2 -0
- package/dist/unplugin.mjs +6 -3
- package/dist/vite.mjs +1 -1
- package/package.json +31 -27
|
@@ -10,6 +10,7 @@ import { useAppConfig } from "#imports";
|
|
|
10
10
|
import { get } from "../utils";
|
|
11
11
|
import { tv } from "../utils/tv";
|
|
12
12
|
import UIcon from "./Icon.vue";
|
|
13
|
+
defineOptions({ inheritAttrs: false });
|
|
13
14
|
const props = defineProps({
|
|
14
15
|
as: { type: null, required: false },
|
|
15
16
|
color: { type: null, required: false },
|
|
@@ -72,35 +73,37 @@ const defaultExpanded = computed(
|
|
|
72
73
|
@toggle="item.onToggle"
|
|
73
74
|
@select="item.onSelect"
|
|
74
75
|
>
|
|
75
|
-
<
|
|
76
|
-
<
|
|
77
|
-
<slot :name="item.slot
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
<span v-if="getItemLabel(item) || !!slots[item.slot ? `${item.slot}-label` : 'item-label']" :class="ui.linkLabel({ class: [props.ui?.linkLabel, item.ui?.linkLabel] })">
|
|
91
|
-
<slot :name="item.slot ? `${item.slot}-label` : 'item-label'" v-bind="{ item, index, level, expanded: isExpanded, selected: isSelected }" :item="item">
|
|
92
|
-
{{ getItemLabel(item) }}
|
|
76
|
+
<slot :name="item.slot ? `${item.slot}-wrapper` : 'item-wrapper'" v-bind="{ item, index, level, expanded: isExpanded, selected: isSelected }" :item="item">
|
|
77
|
+
<button type="button" :disabled="item.disabled || disabled" :class="ui.link({ class: [props.ui?.link, item.ui?.link, item.class], selected: isSelected, disabled: item.disabled || disabled })">
|
|
78
|
+
<slot :name="item.slot || 'item'" v-bind="{ index, level, expanded: isExpanded, selected: isSelected }" :item="item">
|
|
79
|
+
<slot :name="item.slot ? `${item.slot}-leading` : 'item-leading'" v-bind="{ index, level, expanded: isExpanded, selected: isSelected }" :item="item">
|
|
80
|
+
<UIcon
|
|
81
|
+
v-if="item.icon"
|
|
82
|
+
:name="item.icon"
|
|
83
|
+
:class="ui.linkLeadingIcon({ class: [props.ui?.linkLeadingIcon, item.ui?.linkLeadingIcon] })"
|
|
84
|
+
/>
|
|
85
|
+
<UIcon
|
|
86
|
+
v-else-if="item.children?.length"
|
|
87
|
+
:name="isExpanded ? expandedIcon ?? appConfig.ui.icons.folderOpen : collapsedIcon ?? appConfig.ui.icons.folder"
|
|
88
|
+
:class="ui.linkLeadingIcon({ class: [props.ui?.linkLeadingIcon, item.ui?.linkLeadingIcon] })"
|
|
89
|
+
/>
|
|
93
90
|
</slot>
|
|
94
|
-
</span>
|
|
95
91
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
</
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
92
|
+
<span v-if="getItemLabel(item) || !!slots[item.slot ? `${item.slot}-label` : 'item-label']" :class="ui.linkLabel({ class: [props.ui?.linkLabel, item.ui?.linkLabel] })">
|
|
93
|
+
<slot :name="item.slot ? `${item.slot}-label` : 'item-label'" v-bind="{ item, index, level, expanded: isExpanded, selected: isSelected }" :item="item">
|
|
94
|
+
{{ getItemLabel(item) }}
|
|
95
|
+
</slot>
|
|
96
|
+
</span>
|
|
97
|
+
|
|
98
|
+
<span v-if="item.trailingIcon || item.children?.length || !!slots[item.slot ? `${item.slot}-trailing` : 'item-trailing']" :class="ui.linkTrailing({ class: [props.ui?.linkTrailing, item.ui?.linkTrailing] })">
|
|
99
|
+
<slot :name="item.slot ? `${item.slot}-trailing` : 'item-trailing'" v-bind="{ item, index, level, expanded: isExpanded, selected: isSelected }" :item="item">
|
|
100
|
+
<UIcon v-if="item.trailingIcon" :name="item.trailingIcon" :class="ui.linkTrailingIcon({ class: [props.ui?.linkTrailingIcon, item.ui?.linkTrailingIcon] })" />
|
|
101
|
+
<UIcon v-else-if="item.children?.length" :name="trailingIcon ?? appConfig.ui.icons.chevronDown" :class="ui.linkTrailingIcon({ class: [props.ui?.linkTrailingIcon, item.ui?.linkTrailingIcon] })" />
|
|
102
|
+
</slot>
|
|
103
|
+
</span>
|
|
104
|
+
</slot>
|
|
105
|
+
</button>
|
|
106
|
+
</slot>
|
|
104
107
|
|
|
105
108
|
<ul v-if="item.children?.length && isExpanded" :class="ui.listWithChildren({ class: [props.ui?.listWithChildren, item.ui?.listWithChildren] })">
|
|
106
109
|
<ReuseTreeTemplate :items="item.children" :level="level + 1" />
|
|
@@ -110,7 +113,7 @@ const defaultExpanded = computed(
|
|
|
110
113
|
</DefineTreeTemplate>
|
|
111
114
|
|
|
112
115
|
<TreeRoot
|
|
113
|
-
v-bind="rootProps"
|
|
116
|
+
v-bind="{ ...rootProps, ...$attrs }"
|
|
114
117
|
:class="ui.root({ class: [props.ui?.root, props.class] })"
|
|
115
118
|
:get-key="getItemValue"
|
|
116
119
|
:default-expanded="defaultExpanded"
|
|
@@ -85,6 +85,7 @@ type SlotProps<T extends TreeItem> = (props: {
|
|
|
85
85
|
selected: boolean;
|
|
86
86
|
}) => any;
|
|
87
87
|
export type TreeSlots<A extends TreeItem[] = TreeItem[], T extends NestedItem<A> = NestedItem<A>> = {
|
|
88
|
+
'item-wrapper': SlotProps<T>;
|
|
88
89
|
'item': SlotProps<T>;
|
|
89
90
|
'item-leading': SlotProps<T>;
|
|
90
91
|
'item-label': SlotProps<T>;
|
|
@@ -109,5 +110,5 @@ declare const _default: <T extends TreeItem[], VK extends GetItemKeys<T> = "valu
|
|
|
109
110
|
};
|
|
110
111
|
export default _default;
|
|
111
112
|
type __VLS_PrettifyLocal<T> = {
|
|
112
|
-
[K in keyof T]: T[K];
|
|
113
|
+
[K in keyof T as K]: T[K];
|
|
113
114
|
} & {};
|
|
@@ -3,6 +3,7 @@ import { useEventListener, useActiveElement, useDebounceFn } from "@vueuse/core"
|
|
|
3
3
|
import { useKbd } from "./useKbd.js";
|
|
4
4
|
const chainedShortcutRegex = /^[^-]+.*-.*[^-]+$/;
|
|
5
5
|
const combinedShortcutRegex = /^[^_]+.*_.*[^_]+$/;
|
|
6
|
+
const shiftableKeys = ["arrowleft", "arrowright", "arrowup", "arrowright", "tab", "escape", "enter", "backspace"];
|
|
6
7
|
export function extractShortcuts(items) {
|
|
7
8
|
const shortcuts = {};
|
|
8
9
|
function traverse(items2) {
|
|
@@ -34,7 +35,8 @@ export function defineShortcuts(config, options = {}) {
|
|
|
34
35
|
if (!e.key) {
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
|
-
const
|
|
38
|
+
const alphabetKey = /^[a-z]{1}$/i.test(e.key);
|
|
39
|
+
const shiftableKey = shiftableKeys.includes(e.key.toLowerCase());
|
|
38
40
|
let chainedKey;
|
|
39
41
|
chainedInputs.value.push(e.key);
|
|
40
42
|
if (chainedInputs.value.length >= 2) {
|
|
@@ -61,12 +63,12 @@ export function defineShortcuts(config, options = {}) {
|
|
|
61
63
|
if (e.ctrlKey !== shortcut.ctrlKey) {
|
|
62
64
|
continue;
|
|
63
65
|
}
|
|
64
|
-
if (
|
|
66
|
+
if ((alphabetKey || shiftableKey) && e.shiftKey !== shortcut.shiftKey) {
|
|
65
67
|
continue;
|
|
66
68
|
}
|
|
67
69
|
if (shortcut.enabled) {
|
|
68
70
|
e.preventDefault();
|
|
69
|
-
shortcut.handler();
|
|
71
|
+
shortcut.handler(e);
|
|
70
72
|
}
|
|
71
73
|
clearChainedInput();
|
|
72
74
|
return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ComputedRef, InjectionKey } from 'vue';
|
|
2
2
|
import type { AvatarGroupProps } from '../types';
|
|
3
3
|
export declare const avatarGroupInjectionKey: InjectionKey<ComputedRef<{
|
|
4
4
|
size: AvatarGroupProps['size'];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MaybeRef } from '@vueuse/core';
|
|
2
|
+
export interface UseFileUploadOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Specifies the allowed file types. Provide a comma-separated list of MIME types or file extensions.
|
|
5
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept
|
|
6
|
+
* @defaultValue '*'
|
|
7
|
+
*/
|
|
8
|
+
accept?: MaybeRef<string>;
|
|
9
|
+
reset?: boolean;
|
|
10
|
+
multiple?: boolean;
|
|
11
|
+
dropzone?: boolean;
|
|
12
|
+
onUpdate: (files: File[]) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useFileUpload(options: UseFileUploadOptions): {
|
|
15
|
+
isDragging: import("vue").Ref<boolean, boolean>;
|
|
16
|
+
open: () => void;
|
|
17
|
+
inputRef: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
|
|
18
|
+
dropzoneRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
19
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ref, computed, unref, onMounted, watch, reactive } from "vue";
|
|
2
|
+
import { useFileDialog, useDropZone } from "@vueuse/core";
|
|
3
|
+
function parseAcceptToDataTypes(accept) {
|
|
4
|
+
if (!accept || accept === "*") {
|
|
5
|
+
return void 0;
|
|
6
|
+
}
|
|
7
|
+
const types = accept.split(",").map((type) => {
|
|
8
|
+
const trimmedType = type.trim();
|
|
9
|
+
if (trimmedType.includes("/") && trimmedType.endsWith("/*")) {
|
|
10
|
+
return trimmedType.split("/")[0] || trimmedType;
|
|
11
|
+
}
|
|
12
|
+
return trimmedType;
|
|
13
|
+
}).filter((type) => {
|
|
14
|
+
return !type.startsWith(".");
|
|
15
|
+
});
|
|
16
|
+
return types.length > 0 ? types : void 0;
|
|
17
|
+
}
|
|
18
|
+
export function useFileUpload(options) {
|
|
19
|
+
const {
|
|
20
|
+
accept = "*",
|
|
21
|
+
reset = false,
|
|
22
|
+
multiple = false,
|
|
23
|
+
dropzone = true,
|
|
24
|
+
onUpdate
|
|
25
|
+
} = options;
|
|
26
|
+
const inputRef = ref();
|
|
27
|
+
const dropzoneRef = ref();
|
|
28
|
+
const dataTypes = computed(() => parseAcceptToDataTypes(unref(accept)));
|
|
29
|
+
const onDrop = (files) => {
|
|
30
|
+
if (!files || files.length === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (files instanceof FileList) {
|
|
34
|
+
files = Array.from(files);
|
|
35
|
+
}
|
|
36
|
+
if (files.length > 1 && !multiple) {
|
|
37
|
+
files = [files[0]];
|
|
38
|
+
}
|
|
39
|
+
onUpdate(files);
|
|
40
|
+
};
|
|
41
|
+
const isDragging = ref(false);
|
|
42
|
+
const fileDialog = reactive({
|
|
43
|
+
open: () => {
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
function open() {
|
|
47
|
+
fileDialog.open();
|
|
48
|
+
}
|
|
49
|
+
onMounted(() => {
|
|
50
|
+
const { isOverDropZone } = dropzone ? useDropZone(dropzoneRef, { dataTypes: dataTypes.value, onDrop }) : { isOverDropZone: ref(false) };
|
|
51
|
+
watch(isOverDropZone, (value) => {
|
|
52
|
+
isDragging.value = value;
|
|
53
|
+
});
|
|
54
|
+
const { onChange, open: open2 } = useFileDialog({
|
|
55
|
+
accept: unref(accept),
|
|
56
|
+
multiple,
|
|
57
|
+
input: unref(inputRef),
|
|
58
|
+
reset
|
|
59
|
+
});
|
|
60
|
+
fileDialog.open = open2;
|
|
61
|
+
onChange((fileList) => onDrop(fileList));
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
isDragging,
|
|
65
|
+
open,
|
|
66
|
+
inputRef,
|
|
67
|
+
dropzoneRef
|
|
68
|
+
};
|
|
69
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { InjectionKey, Ref, ComputedRef } from 'vue';
|
|
2
|
+
import type { UseEventBusReturn } from '@vueuse/core';
|
|
3
3
|
import type { FormFieldProps } from '../types';
|
|
4
4
|
import type { FormEvent, FormFieldInjectedOptions, FormInjectedOptions } from '../types/form';
|
|
5
5
|
import type { GetObjectField } from '../types/utils';
|
|
@@ -34,9 +34,6 @@ export declare function useFormField<T>(props?: Props<T>, opts?: {
|
|
|
34
34
|
emitFormInput: import("@vueuse/shared").UseDebounceFnReturn<() => void>;
|
|
35
35
|
emitFormChange: () => void;
|
|
36
36
|
emitFormFocus: () => void;
|
|
37
|
-
ariaAttrs: ComputedRef<
|
|
38
|
-
'aria-describedby': string;
|
|
39
|
-
'aria-invalid': boolean;
|
|
40
|
-
} | undefined>;
|
|
37
|
+
ariaAttrs: ComputedRef<Record<string, any> | undefined>;
|
|
41
38
|
};
|
|
42
39
|
export {};
|
|
@@ -57,10 +57,13 @@ export function useFormField(props, opts) {
|
|
|
57
57
|
ariaAttrs: computed(() => {
|
|
58
58
|
if (!formField?.value) return;
|
|
59
59
|
const descriptiveAttrs = ["error", "hint", "description", "help"].filter((type) => formField?.value?.[type]).map((type) => `${formField?.value.ariaId}-${type}`) || [];
|
|
60
|
-
|
|
61
|
-
"aria-describedby": descriptiveAttrs.join(" "),
|
|
60
|
+
const attrs = {
|
|
62
61
|
"aria-invalid": !!formField?.value.error
|
|
63
62
|
};
|
|
63
|
+
if (descriptiveAttrs.length > 0) {
|
|
64
|
+
attrs["aria-describedby"] = descriptiveAttrs.join(" ");
|
|
65
|
+
}
|
|
66
|
+
return attrs;
|
|
64
67
|
})
|
|
65
68
|
};
|
|
66
69
|
}
|
|
@@ -30,7 +30,7 @@ export declare const kbdKeysMap: {
|
|
|
30
30
|
export type KbdKey = keyof typeof kbdKeysMap;
|
|
31
31
|
export type KbdKeySpecific = keyof KbdKeysSpecificMap;
|
|
32
32
|
export declare const useKbd: () => {
|
|
33
|
-
macOS: import("vue").ComputedRef<false | "" | RegExpMatchArray | null
|
|
33
|
+
macOS: import("vue").ComputedRef<false | "" | RegExpMatchArray | null>;
|
|
34
34
|
getKbdKey: (value?: KbdKey | string) => string | undefined;
|
|
35
35
|
};
|
|
36
36
|
export {};
|
|
@@ -4,7 +4,7 @@ import { buildLocaleContext } from "../utils/locale.js";
|
|
|
4
4
|
import en from "../locale/en.js";
|
|
5
5
|
export const localeContextInjectionKey = Symbol.for("nuxt-ui.locale-context");
|
|
6
6
|
const _useLocale = (localeOverrides) => {
|
|
7
|
-
const locale = localeOverrides || toRef(inject(localeContextInjectionKey));
|
|
7
|
+
const locale = localeOverrides || toRef(inject(localeContextInjectionKey, en));
|
|
8
8
|
return buildLocaleContext(computed(() => locale.value || en));
|
|
9
9
|
};
|
|
10
|
-
export const useLocale =
|
|
10
|
+
export const useLocale = import.meta.client ? createSharedComposable(_useLocale) : _useLocale;
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
import type { Component } from 'vue';
|
|
2
2
|
import type { ComponentProps, ComponentEmit } from 'vue-component-type-helpers';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* This is a workaround for a design limitation in TypeScript.
|
|
5
|
+
*
|
|
6
|
+
* Conditional types only match the last function overload, not a union of all possible
|
|
7
|
+
* parameter types. This workaround forces TypeScript to properly extract the 'close'
|
|
8
|
+
* event argument type from component emits with multiple event signatures.
|
|
9
|
+
*
|
|
10
|
+
* @see https://github.com/microsoft/TypeScript/issues/32164
|
|
11
|
+
*/
|
|
12
|
+
type CloseEventArgType<T> = T extends {
|
|
13
|
+
(event: 'close', arg_0: infer Arg, ...args: any[]): void;
|
|
14
|
+
(...args: any[]): void;
|
|
15
|
+
(...args: any[]): void;
|
|
16
|
+
(...args: any[]): void;
|
|
17
|
+
(...args: any[]): void;
|
|
18
|
+
(...args: any[]): void;
|
|
19
|
+
(...args: any[]): void;
|
|
20
|
+
(...args: any[]): void;
|
|
21
|
+
(...args: any[]): void;
|
|
22
|
+
(...args: any[]): void;
|
|
23
|
+
(...args: any[]): void;
|
|
24
|
+
(...args: any[]): void;
|
|
25
|
+
(...args: any[]): void;
|
|
26
|
+
(...args: any[]): void;
|
|
27
|
+
(...args: any[]): void;
|
|
28
|
+
(...args: any[]): void;
|
|
29
|
+
(...args: any[]): void;
|
|
30
|
+
} ? Arg : never;
|
|
4
31
|
export type OverlayOptions<OverlayAttrs = Record<string, any>> = {
|
|
5
32
|
defaultOpen?: boolean;
|
|
6
33
|
props?: OverlayAttrs;
|
|
@@ -23,7 +50,7 @@ type OverlayInstance<T extends Component> = Omit<ManagedOverlayOptionsPrivate<T>
|
|
|
23
50
|
};
|
|
24
51
|
type OpenedOverlay<T extends Component> = Omit<OverlayInstance<T>, 'open' | 'close' | 'patch' | 'modelValue' | 'resolvePromise'> & {
|
|
25
52
|
result: Promise<CloseEventArgType<ComponentEmit<T>>>;
|
|
26
|
-
}
|
|
53
|
+
} & Promise<CloseEventArgType<ComponentEmit<T>>>;
|
|
27
54
|
declare function _useOverlay(): {
|
|
28
55
|
overlays: import("vue").ShallowReactive<Overlay[]>;
|
|
29
56
|
open: <T extends Component>(id: symbol, props?: ComponentProps<T>) => OpenedOverlay<T>;
|
|
@@ -11,7 +11,7 @@ function _useOverlay() {
|
|
|
11
11
|
isMounted: !!defaultOpen,
|
|
12
12
|
destroyOnClose: !!destroyOnClose,
|
|
13
13
|
originalProps: props || {},
|
|
14
|
-
props: { ...props
|
|
14
|
+
props: { ...props }
|
|
15
15
|
});
|
|
16
16
|
overlays.push(options);
|
|
17
17
|
return {
|
|
@@ -24,18 +24,19 @@ function _useOverlay() {
|
|
|
24
24
|
const open = (id, props) => {
|
|
25
25
|
const overlay = getOverlay(id);
|
|
26
26
|
if (props) {
|
|
27
|
-
|
|
27
|
+
overlay.props = { ...overlay.originalProps, ...props };
|
|
28
28
|
} else {
|
|
29
|
-
|
|
29
|
+
overlay.props = { ...overlay.originalProps };
|
|
30
30
|
}
|
|
31
31
|
overlay.isOpen = true;
|
|
32
32
|
overlay.isMounted = true;
|
|
33
|
-
|
|
33
|
+
const result = new Promise((resolve) => overlay.resolvePromise = resolve);
|
|
34
|
+
return Object.assign(result, {
|
|
34
35
|
id,
|
|
35
36
|
isMounted: overlay.isMounted,
|
|
36
37
|
isOpen: overlay.isOpen,
|
|
37
|
-
result
|
|
38
|
-
};
|
|
38
|
+
result
|
|
39
|
+
});
|
|
39
40
|
};
|
|
40
41
|
const close = (id, value) => {
|
|
41
42
|
const overlay = getOverlay(id);
|
|
@@ -58,7 +59,7 @@ function _useOverlay() {
|
|
|
58
59
|
};
|
|
59
60
|
const patch = (id, props) => {
|
|
60
61
|
const overlay = getOverlay(id);
|
|
61
|
-
overlay.props = { ...props };
|
|
62
|
+
overlay.props = { ...overlay.props, ...props };
|
|
62
63
|
};
|
|
63
64
|
const getOverlay = (id) => {
|
|
64
65
|
const overlay = overlays.find((overlay2) => overlay2.id === id);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Ref, InjectionKey } from 'vue';
|
|
2
2
|
export declare const portalTargetInjectionKey: InjectionKey<Ref<string | HTMLElement>>;
|
|
3
3
|
export declare function usePortal(portal: Ref<string | HTMLElement | boolean | undefined>): import("vue").ComputedRef<{
|
|
4
4
|
to: string | HTMLElement;
|
|
@@ -48,7 +48,7 @@ export interface LinkSlots {
|
|
|
48
48
|
active: boolean;
|
|
49
49
|
}): any;
|
|
50
50
|
}
|
|
51
|
-
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkProps,
|
|
51
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
|
|
52
52
|
type: "reset" | "submit" | "button";
|
|
53
53
|
as: any;
|
|
54
54
|
activeClass: string;
|
|
@@ -9,7 +9,7 @@ export interface LinkBaseProps {
|
|
|
9
9
|
active?: boolean;
|
|
10
10
|
isExternal?: boolean;
|
|
11
11
|
}
|
|
12
|
-
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkBaseProps,
|
|
12
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkBaseProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkBaseProps> & Readonly<{}>, {
|
|
13
13
|
type: string;
|
|
14
14
|
as: string;
|
|
15
15
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ref, onScopeDispose } from "vue";
|
|
2
2
|
import { createHooks } from "hookable";
|
|
3
|
-
import appConfig from "#build/app.config";
|
|
4
|
-
import { useColorMode as useColorModeVueUse } from "@vueuse/core";
|
|
5
3
|
import { usePage } from "@inertiajs/vue3";
|
|
4
|
+
import { useColorMode as useColorModeVueUse } from "@vueuse/core";
|
|
5
|
+
import appConfig from "#build/app.config";
|
|
6
6
|
export { useHead } from "@unhead/vue";
|
|
7
7
|
export { useAppConfig } from "../vue/composables/useAppConfig.js";
|
|
8
8
|
export { defineShortcuts } from "../composables/defineShortcuts.js";
|
|
@@ -16,6 +16,8 @@ export const useRoute = () => {
|
|
|
16
16
|
};
|
|
17
17
|
export const useRouter = () => {
|
|
18
18
|
};
|
|
19
|
+
export const clearError = () => {
|
|
20
|
+
};
|
|
19
21
|
export const useColorMode = () => {
|
|
20
22
|
if (!appConfig.colorMode) {
|
|
21
23
|
return {
|
|
@@ -38,7 +38,8 @@ export default defineLocale({
|
|
|
38
38
|
carousel: {
|
|
39
39
|
prev: "\u0627\u0644\u0633\u0627\u0628\u0642",
|
|
40
40
|
next: "\u0627\u0644\u062A\u0627\u0644\u064A",
|
|
41
|
-
|
|
41
|
+
dots: "\u0627\u062E\u062A\u0631 \u0627\u0644\u0634\u0631\u064A\u062D\u0629 \u0627\u0644\u0645\u0631\u0627\u062F \u0639\u0631\u0636\u0647\u0627",
|
|
42
|
+
goto: "\u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0634\u0631\u064A\u062D\u0629 {slide}"
|
|
42
43
|
},
|
|
43
44
|
modal: {
|
|
44
45
|
close: "\u0625\u063A\u0644\u0627\u0642"
|
|
@@ -51,6 +52,9 @@ export default defineLocale({
|
|
|
51
52
|
},
|
|
52
53
|
table: {
|
|
53
54
|
noData: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A"
|
|
55
|
+
},
|
|
56
|
+
fileUpload: {
|
|
57
|
+
removeFile: "\u0625\u0632\u0627\u0644\u0629 {filename}"
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "\u018Fvv\u0259lki",
|
|
39
39
|
next: "N\xF6vb\u0259ti",
|
|
40
|
+
dots: "G\xF6st\u0259rm\u0259k \xFC\xE7\xFCn slayd se\xE7in",
|
|
40
41
|
goto: "Slayd {slide} ke\xE7"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "M\u0259lumat yoxdur"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "{filename} sil"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "\u041D\u0430\u0437\u0430\u0434",
|
|
39
39
|
next: "\u041D\u0430\u043F\u0440\u0435\u0434",
|
|
40
|
+
dots: "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u043B\u0430\u0439\u0434 \u0437\u0430 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u043D\u0435",
|
|
40
41
|
goto: "\u041E\u0442\u0438\u0434\u0435\u0442\u0435 \u043D\u0430 \u0441\u043B\u0430\u0439\u0434 {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "\u041D\u044F\u043C\u0430 \u0434\u0430\u043D\u043D\u0438"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "\u041F\u0440\u0435\u043C\u0430\u0445\u043D\u0438 {filename}"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "\u09AA\u09C2\u09B0\u09CD\u09AC\u09AC\u09B0\u09CD\u09A4\u09C0",
|
|
39
39
|
next: "\u09AA\u09B0\u09AC\u09B0\u09CD\u09A4\u09C0",
|
|
40
|
+
dots: "\u09AA\u09CD\u09B0\u09A6\u09B0\u09CD\u09B6\u09A8\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u09B8\u09CD\u09B2\u09BE\u0987\u09A1 \u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
40
41
|
goto: "\u09B8\u09CD\u09B2\u09BE\u0987\u09A1 {slide} \u098F \u09AF\u09BE\u09A8"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "\u0995\u09CB\u09A8 \u09A4\u09A5\u09CD\u09AF \u09A8\u09C7\u0987"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "{filename} \u09B8\u09B0\u09BE\u09A8"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "Anterior",
|
|
39
39
|
next: "Seg\xFCent",
|
|
40
|
+
dots: "Tria la diapositiva a mostrar",
|
|
40
41
|
goto: "Anar a la diapositiva {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "Sense dades"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "Eliminar {filename}"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -36,8 +36,9 @@ export default defineLocale({
|
|
|
36
36
|
close: "\u062F\u0627\u062E\u0633\u062A\u0646"
|
|
37
37
|
},
|
|
38
38
|
carousel: {
|
|
39
|
-
prev: "\u067E\u06CE\u0634\u0648\u0648",
|
|
39
|
+
prev: "\u067E\u06CE\u0634\u0648\u0648\u06CC",
|
|
40
40
|
next: "\u062F\u0627\u0647\u0627\u062A\u0648\u0648",
|
|
41
|
+
dots: "\u0633\u0644\u0627\u06CC\u062F\u06CE\u06A9 \u0647\u06D5\u06B5\u0628\u0698\u06CE\u0631\u06D5 \u0628\u06C6 \u067E\u06CC\u0634\u0627\u0646\u062F\u0627\u0646",
|
|
41
42
|
goto: "\u0628\u0695\u06C6 \u0628\u06C6 \u0633\u0644\u0627\u06CC\u062F\u06CC {slide}"
|
|
42
43
|
},
|
|
43
44
|
modal: {
|
|
@@ -51,6 +52,9 @@ export default defineLocale({
|
|
|
51
52
|
},
|
|
52
53
|
table: {
|
|
53
54
|
noData: "\u0647\u06CC\u0686 \u062F\u0627\u062A\u0627\u06CC\u06D5\u06A9 \u0646\u06CC\u06CC\u06D5"
|
|
55
|
+
},
|
|
56
|
+
fileUpload: {
|
|
57
|
+
removeFile: "{filename} \u0628\u0633\u0695\u06D5\u0648\u06D5"
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "P\u0159edchoz\xED",
|
|
39
39
|
next: "Dal\u0161\xED",
|
|
40
|
+
dots: "Vyberte sn\xEDmek k zobrazen\xED",
|
|
40
41
|
goto: "P\u0159ej\xEDt na {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "\u017D\xE1dn\xE1 data"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "Odebrat {filename}"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "Forrige",
|
|
39
39
|
next: "N\xE6ste",
|
|
40
|
+
dots: "V\xE6lg dias til visning",
|
|
40
41
|
goto: "G\xE5 til slide {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "Ingen data"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "Fjern {filename}"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "Zur\xFCck",
|
|
39
39
|
next: "Weiter",
|
|
40
|
+
dots: "Folie zur Anzeige ausw\xE4hlen",
|
|
40
41
|
goto: "Gehe zu {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "Keine Daten"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "{filename} entfernen"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03BF",
|
|
39
39
|
next: "\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03BF",
|
|
40
|
+
dots: "\u0395\u03C0\u03B9\u03BB\u03AD\u03BE\u03C4\u03B5 \u03B4\u03B9\u03B1\u03C6\u03AC\u03BD\u03B5\u03B9\u03B1 \u03B3\u03B9\u03B1 \u03B5\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7",
|
|
40
41
|
goto: "\u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03B7 \u03B4\u03B9\u03B1\u03C6\u03AC\u03BD\u03B5\u03B9\u03B1 {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 {filename}"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -37,6 +37,7 @@ export default defineLocale({
|
|
|
37
37
|
carousel: {
|
|
38
38
|
prev: "Prev",
|
|
39
39
|
next: "Next",
|
|
40
|
+
dots: "Choose slide to display",
|
|
40
41
|
goto: "Go to slide {slide}"
|
|
41
42
|
},
|
|
42
43
|
modal: {
|
|
@@ -50,6 +51,9 @@ export default defineLocale({
|
|
|
50
51
|
},
|
|
51
52
|
table: {
|
|
52
53
|
noData: "No data"
|
|
54
|
+
},
|
|
55
|
+
fileUpload: {
|
|
56
|
+
removeFile: "Remove {filename}"
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
});
|