@xleddyl/443-components-vue 0.5.0 → 0.6.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 +25 -6
- package/dist/chart/BarChart.vue +11 -4
- package/dist/chart/BarChart.vue.d.ts +2 -0
- package/dist/chart/ChartLegend.vue +43 -4
- package/dist/chart/ChartLegend.vue.d.ts +4 -2
- package/dist/chart/ChartPanel.vue +10 -10
- package/dist/chart/ChartPanel.vue.d.ts +11 -8
- package/dist/chart/ChartSummary.vue +8 -3
- package/dist/chart/ChartSummary.vue.d.ts +3 -1
- package/dist/chart/DoughnutChart.vue +11 -4
- package/dist/chart/LineChart.vue +8 -2
- package/dist/chart/LineChart.vue.d.ts +2 -0
- package/dist/chart/chart.css +19 -0
- package/dist/chart/patterns.d.ts +6 -0
- package/dist/chart/patterns.mjs +79 -0
- package/dist/chart/types.d.ts +5 -0
- package/dist/chart/useChartColors.mjs +1 -1
- package/dist/components/core/Button.vue +11 -1
- package/dist/components/core/Button.vue.d.ts +1 -1
- package/dist/components/core/FieldMessage.vue +6 -0
- package/dist/components/core/FieldMessage.vue.d.ts +1 -1
- package/dist/components/core/Form.vue +18 -1
- package/dist/components/core/FormAlerts.vue +41 -3
- package/dist/components/core/FormField.vue +43 -24
- package/dist/components/core/Input.vue.d.ts +6 -6
- package/dist/components/core/Root.vue +6 -1
- package/dist/components/core/Root.vue.d.ts +2 -2
- package/dist/components/core/Spinner.vue +6 -11
- package/dist/components/core/Spinner.vue.d.ts +2 -2
- package/dist/components/core/Textarea.vue.d.ts +2 -2
- package/dist/components/core/VisuallyHidden.vue.d.ts +2 -2
- package/dist/components/data/Avatar.vue +8 -5
- package/dist/components/data/AvatarGroup.vue +6 -3
- package/dist/components/data/Badge.vue.d.ts +1 -1
- package/dist/components/data/FilterPills.vue +18 -2
- package/dist/components/data/Pagination.vue +24 -18
- package/dist/components/data/Pagination.vue.d.ts +2 -2
- package/dist/components/data/SelectionBar.vue +32 -3
- package/dist/components/data/Stat.vue +7 -1
- package/dist/components/data/Stat.vue.d.ts +2 -2
- package/dist/components/data/Table.vue +62 -14
- package/dist/components/data/Tag.vue +24 -4
- package/dist/components/data/Tag.vue.d.ts +3 -3
- package/dist/components/data/Timeline.vue +12 -1
- package/dist/components/data/Tree.vue +137 -36
- package/dist/components/data/Tree.vue.d.ts +13 -14
- package/dist/components/data/types.d.ts +2 -1
- package/dist/components/feedback/Alert.vue +18 -9
- package/dist/components/feedback/Alert.vue.d.ts +2 -2
- package/dist/components/feedback/LoadingOverlay.vue +35 -3
- package/dist/components/feedback/Meter.vue +28 -3
- package/dist/components/feedback/Progress.vue +2 -7
- package/dist/components/feedback/Progress.vue.d.ts +1 -1
- package/dist/components/feedback/ProgressRing.vue +2 -6
- package/dist/components/feedback/ProgressRing.vue.d.ts +1 -1
- package/dist/components/forms/Calendar.vue +49 -26
- package/dist/components/forms/Calendar.vue.d.ts +9 -5
- package/dist/components/forms/CheckboxGroup.vue +14 -4
- package/dist/components/forms/CheckboxGroup.vue.d.ts +1 -0
- package/dist/components/forms/ColorInput.vue +68 -15
- package/dist/components/forms/ColorInput.vue.d.ts +16 -13
- package/dist/components/forms/Combobox.vue +18 -4
- package/dist/components/forms/DateInput.vue.d.ts +6 -6
- package/dist/components/forms/DatePicker.vue +23 -7
- package/dist/components/forms/DatePicker.vue.d.ts +4 -2
- package/dist/components/forms/FileInput.vue +31 -13
- package/dist/components/forms/FileInput.vue.d.ts +2 -2
- package/dist/components/forms/InputAddon.vue +18 -2
- package/dist/components/forms/InputGroup.vue +27 -0
- package/dist/components/forms/InputGroup.vue.d.ts +2 -0
- package/dist/components/forms/NumberInput.vue +6 -7
- package/dist/components/forms/NumberInput.vue.d.ts +6 -6
- package/dist/components/forms/PasswordInput.vue +12 -6
- package/dist/components/forms/PasswordInput.vue.d.ts +6 -7
- package/dist/components/forms/PinInput.vue +11 -1
- package/dist/components/forms/PinInput.vue.d.ts +8 -6
- package/dist/components/forms/RadioGroup.vue +15 -5
- package/dist/components/forms/RadioGroup.vue.d.ts +1 -0
- package/dist/components/forms/SegmentedControl.vue +15 -10
- package/dist/components/forms/SegmentedControl.vue.d.ts +1 -0
- package/dist/components/forms/Slider.vue +9 -0
- package/dist/components/forms/Slider.vue.d.ts +8 -6
- package/dist/components/forms/Switch.vue +7 -0
- package/dist/components/forms/Switch.vue.d.ts +2 -2
- package/dist/components/forms/TimeInput.vue.d.ts +6 -6
- package/dist/components/forms/types.d.ts +4 -0
- package/dist/components/layout/Accordion.vue.d.ts +2 -2
- package/dist/components/layout/AppShell.vue +40 -18
- package/dist/components/layout/AppShell.vue.d.ts +11 -9
- package/dist/components/layout/Card.vue +50 -16
- package/dist/components/layout/Card.vue.d.ts +13 -11
- package/dist/components/layout/CopyButton.vue +13 -5
- package/dist/components/layout/CopyButton.vue.d.ts +3 -3
- package/dist/components/layout/NavLink.vue +10 -1
- package/dist/components/layout/NavLink.vue.d.ts +2 -2
- package/dist/components/layout/PageHeader.vue +2 -2
- package/dist/components/layout/Separator.vue +6 -3
- package/dist/components/layout/Sidebar.vue +14 -7
- package/dist/components/layout/Sidebar.vue.d.ts +0 -2
- package/dist/components/layout/SidebarNav.vue +16 -44
- package/dist/components/layout/Stack.vue.d.ts +2 -2
- package/dist/components/layout/Tabs.vue +10 -18
- package/dist/components/layout/Tabs.vue.d.ts +2 -2
- package/dist/components/layout/Toolbar.vue +10 -4
- package/dist/components/layout/Toolbar.vue.d.ts +1 -0
- package/dist/components/layout/types.d.ts +1 -0
- package/dist/components/overlays/CommandPalette.vue +8 -4
- package/dist/components/overlays/CommandPalette.vue.d.ts +3 -8
- package/dist/components/overlays/ConfirmDialog.vue +7 -5
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +12 -8
- package/dist/components/overlays/ConfirmHost.vue +22 -19
- package/dist/components/overlays/ConfirmHost.vue.d.ts +8 -6
- package/dist/components/overlays/ContextMenu.vue +9 -11
- package/dist/components/overlays/ContextMenu.vue.d.ts +2 -2
- package/dist/components/overlays/Drawer.vue +2 -0
- package/dist/components/overlays/Drawer.vue.d.ts +4 -2
- package/dist/components/overlays/DropdownMenu.vue +13 -21
- package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/overlays/HoverCard.vue +8 -2
- package/dist/components/overlays/HoverCard.vue.d.ts +2 -2
- package/dist/components/overlays/Modal.vue +2 -0
- package/dist/components/overlays/Modal.vue.d.ts +4 -2
- package/dist/components/overlays/Popover.vue +19 -4
- package/dist/components/overlays/Popover.vue.d.ts +2 -2
- package/dist/components/overlays/Toaster.vue +39 -7
- package/dist/components/overlays/Tooltip.vue +39 -14
- package/dist/components/overlays/types.d.ts +6 -0
- package/dist/components/templates/AccountMenu.vue.d.ts +2 -2
- package/dist/components/templates/AppearanceSettings.vue +83 -77
- package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
- package/dist/components/templates/AuthLayout.vue +2 -2
- package/dist/components/templates/Brand.vue.d.ts +2 -2
- package/dist/components/templates/DashboardLayout.vue +3 -7
- package/dist/components/templates/DashboardLayout.vue.d.ts +8 -18
- package/dist/components/templates/DetailPage.vue +3 -1
- package/dist/components/templates/DetailPage.vue.d.ts +2 -2
- package/dist/components/templates/ErrorPage.vue +11 -5
- package/dist/components/templates/ErrorPage.vue.d.ts +10 -6
- package/dist/components/templates/FormPage.vue +16 -3
- package/dist/components/templates/ListPage.vue +19 -6
- package/dist/components/templates/ListPage.vue.d.ts +1 -0
- package/dist/components/templates/NotFoundPage.vue +2 -0
- package/dist/components/templates/NotFoundPage.vue.d.ts +4 -0
- package/dist/components/templates/SaveBar.vue +18 -3
- package/dist/components/templates/SaveBar.vue.d.ts +5 -5
- package/dist/components/templates/SettingsGroup.vue +1 -1
- package/dist/components/templates/SettingsGroup.vue.d.ts +3 -1
- package/dist/components/templates/SettingsModal.vue +73 -46
- package/dist/components/templates/SettingsModal.vue.d.ts +9 -11
- package/dist/components/templates/SettingsPage.vue.d.ts +2 -2
- package/dist/components/templates/SettingsSection.vue.d.ts +4 -2
- package/dist/components/templates/types.d.ts +4 -0
- package/dist/composables/useAlert.mjs +5 -10
- package/dist/composables/useConfirm.mjs +5 -5
- package/dist/composables/useField.d.ts +4 -0
- package/dist/composables/useField.mjs +16 -5
- package/dist/composables/useFileDrop.mjs +2 -1
- package/dist/composables/useOverlay.mjs +2 -1
- package/dist/composables/usePreset.mjs +4 -10
- package/dist/composables/usePrompt.mjs +6 -13
- package/dist/composables/useScrollLock.mjs +4 -3
- package/dist/composables/useTheme.mjs +3 -11
- package/dist/composables/useToast.mjs +2 -1
- package/dist/editor/RichTextEditor.vue +31 -6
- package/dist/editor/RichTextEditor.vue.d.ts +2 -2
- package/dist/editor/rich-text-editor.css +9 -4
- package/dist/grid/DataGrid.vue +72 -12
- package/dist/grid/GridToolbar.vue +1 -1
- package/dist/grid/GridToolbar.vue.d.ts +2 -2
- package/dist/grid/cells/BadgeCell.vue +3 -1
- package/dist/grid/cells/BadgeCell.vue.d.ts +17 -3
- package/dist/grid/cells/DateCell.vue +3 -1
- package/dist/grid/cells/DateCell.vue.d.ts +17 -3
- package/dist/grid/cells/EmptyCell.vue +15 -0
- package/dist/grid/cells/EmptyCell.vue.d.ts +392 -0
- package/dist/grid/cells/LinkCell.vue +9 -2
- package/dist/grid/cells/LinkCell.vue.d.ts +17 -3
- package/dist/grid/data-grid.css +5 -5
- package/dist/grid/types.d.ts +2 -0
- package/dist/internal/core/ButtonContent.vue +3 -0
- package/dist/internal/core/LiveRegion.vue +26 -0
- package/dist/internal/core/LiveRegion.vue.d.ts +393 -0
- package/dist/internal/core/copy.d.ts +6 -0
- package/dist/internal/core/copy.mjs +14 -0
- package/dist/internal/core/focus.d.ts +6 -0
- package/dist/internal/core/focus.mjs +46 -0
- package/dist/internal/core/intl.d.ts +4 -2
- package/dist/internal/core/intl.mjs +23 -22
- package/dist/internal/core/live.d.ts +6 -0
- package/dist/internal/core/live.mjs +22 -0
- package/dist/internal/core/preset.d.ts +0 -1
- package/dist/internal/core/preset.mjs +4 -14
- package/dist/internal/core/resize.d.ts +1 -0
- package/dist/internal/core/resize.mjs +11 -0
- package/dist/internal/core/roving.d.ts +7 -0
- package/dist/internal/core/roving.mjs +19 -1
- package/dist/internal/core/scroll-edges.d.ts +5 -0
- package/dist/internal/core/scroll-edges.mjs +63 -0
- package/dist/internal/core/storage.d.ts +2 -0
- package/dist/internal/core/storage.mjs +8 -0
- package/dist/internal/core/theme.d.ts +0 -1
- package/dist/internal/core/theme.mjs +4 -13
- package/dist/internal/core/tone.d.ts +1 -0
- package/dist/internal/core/tone.mjs +4 -0
- package/dist/internal/core/transition.d.ts +1 -0
- package/dist/internal/core/transition.mjs +20 -0
- package/dist/internal/data/rows.mjs +6 -5
- package/dist/internal/data/tree.d.ts +2 -3
- package/dist/internal/feedback/LoadingHost.vue +16 -6
- package/dist/internal/feedback/loading.mjs +2 -1
- package/dist/internal/feedback/progress.d.ts +12 -0
- package/dist/internal/feedback/progress.mjs +13 -0
- package/dist/internal/floating/layer.d.ts +1 -1
- package/dist/internal/floating/layer.mjs +17 -10
- package/dist/internal/forms/keys.d.ts +4 -0
- package/dist/internal/forms/keys.mjs +1 -0
- package/dist/internal/forms/name.d.ts +2 -0
- package/dist/internal/forms/name.mjs +12 -0
- package/dist/internal/forms/standard-schema.d.ts +0 -2
- package/dist/internal/forms/standard-schema.mjs +0 -18
- package/dist/internal/layout/NavGroup.vue +104 -0
- package/dist/internal/layout/NavGroup.vue.d.ts +412 -0
- package/dist/internal/overlays/DialogFrame.vue +53 -6
- package/dist/internal/overlays/DialogFrame.vue.d.ts +5 -2
- package/dist/internal/overlays/MenuList.vue +4 -11
- package/dist/internal/overlays/MenuList.vue.d.ts +6 -6
- package/dist/internal/overlays/OverlayView.vue +2 -0
- package/dist/internal/overlays/OverlayView.vue.d.ts +8 -6
- package/dist/internal/overlays/confirm.d.ts +6 -1
- package/dist/internal/overlays/confirm.mjs +5 -2
- package/dist/internal/overlays/dialog.d.ts +1 -0
- package/dist/internal/overlays/dialog.mjs +9 -9
- package/dist/internal/overlays/hover.d.ts +1 -0
- package/dist/internal/overlays/hover.mjs +20 -3
- package/dist/internal/overlays/menu.d.ts +9 -0
- package/dist/internal/overlays/menu.mjs +15 -0
- package/dist/internal/overlays/stack.d.ts +1 -0
- package/dist/locale/en.mjs +70 -18
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.mjs +5 -11
- package/dist/locale/it.mjs +70 -18
- package/dist/locale/types.d.ts +54 -2
- package/dist/nuxt/runtime/RouteAnnouncer.vue +21 -0
- package/dist/nuxt/runtime/RouteAnnouncer.vue.d.ts +3 -0
- package/dist/nuxt/runtime/layout-head.d.ts +2 -0
- package/dist/nuxt/runtime/layout-head.mjs +13 -0
- package/dist/nuxt/runtime/layouts/auth.vue +4 -0
- package/dist/nuxt/runtime/layouts/auth.vue.d.ts +2 -2
- package/dist/nuxt/runtime/layouts/dashboard.vue +4 -0
- package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +2 -2
- package/dist/nuxt/runtime/locale.mjs +9 -1
- package/dist/nuxt/runtime/theme.mjs +17 -12
- package/dist/styles/base.css +0 -13
- package/dist/styles/core/button.css +8 -8
- package/dist/styles/core/field-message.css +2 -2
- package/dist/styles/core/form-field.css +11 -2
- package/dist/styles/core/input.css +4 -7
- package/dist/styles/core/kbd.css +0 -1
- package/dist/styles/data/badge.css +8 -4
- package/dist/styles/data/description-list.css +2 -2
- package/dist/styles/data/filter-pills.css +5 -8
- package/dist/styles/data/pagination.css +2 -2
- package/dist/styles/data/stat.css +3 -3
- package/dist/styles/data/table.css +2 -2
- package/dist/styles/data/tag.css +1 -2
- package/dist/styles/data/timeline.css +1 -1
- package/dist/styles/data/tree.css +31 -10
- package/dist/styles/feedback/alert.css +0 -3
- package/dist/styles/feedback/loading-host.css +4 -0
- package/dist/styles/feedback/loading-overlay.css +4 -0
- package/dist/styles/forced-colors.css +215 -0
- package/dist/styles/forms/calendar.css +2 -2
- package/dist/styles/forms/choice.css +2 -2
- package/dist/styles/forms/color-input.css +1 -1
- package/dist/styles/forms/combobox.css +2 -24
- package/dist/styles/forms/date-input.css +2 -2
- package/dist/styles/forms/date-picker.css +3 -7
- package/dist/styles/forms/file-input.css +4 -3
- package/dist/styles/forms/input-group.css +6 -0
- package/dist/styles/forms/number-input.css +2 -2
- package/dist/styles/forms/password-input.css +5 -2
- package/dist/styles/forms/pin-input.css +4 -2
- package/dist/styles/forms/segmented.css +2 -2
- package/dist/styles/forms/select.css +6 -6
- package/dist/styles/forms/slider.css +5 -4
- package/dist/styles/forms/switch.css +5 -1
- package/dist/styles/index.css +1 -0
- package/dist/styles/layout/app-shell.css +15 -3
- package/dist/styles/layout/copy-button.css +1 -1
- package/dist/styles/layout/nav-link.css +1 -33
- package/dist/styles/layout/separator.css +1 -1
- package/dist/styles/layout/sidebar-nav.css +15 -4
- package/dist/styles/layout/sidebar.css +20 -6
- package/dist/styles/layout/tabs.css +9 -4
- package/dist/styles/layout/theme-switch.css +0 -6
- package/dist/styles/overlays/command.css +9 -15
- package/dist/styles/overlays/confirm.css +1 -1
- package/dist/styles/overlays/drawer.css +0 -1
- package/dist/styles/overlays/menu.css +2 -17
- package/dist/styles/overlays/modal.css +29 -6
- package/dist/styles/overlays/toast.css +1 -2
- package/dist/styles/presets.css +4 -4
- package/dist/styles/shared.css +96 -3
- package/dist/styles/templates/account-menu.css +3 -3
- package/dist/styles/templates/auth-layout.css +1 -1
- package/dist/styles/templates/brand.css +3 -3
- package/dist/styles/templates/empty-page.css +1 -1
- package/dist/styles/templates/form-page.css +10 -0
- package/dist/styles/templates/save-bar.css +10 -0
- package/dist/styles/templates/settings-modal.css +42 -44
- package/dist/styles/templates/settings-page.css +3 -3
- package/dist/styles/tokens.css +12 -2
- package/package.json +1 -1
- package/dist/internal/overlays/focus.d.ts +0 -1
- package/dist/internal/overlays/focus.mjs +0 -24
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { MenuItem, MenuItems } from '../../components/overlays/types';
|
|
2
|
+
import type { MenuFocusTarget } from './menu';
|
|
2
3
|
import type { AnchorTarget, Placement } from '../floating/position';
|
|
3
|
-
|
|
4
|
-
declare function
|
|
5
|
-
declare function setPendingFocus(focus: FocusTarget): void;
|
|
4
|
+
declare function show(focus?: MenuFocusTarget, source?: HTMLElement | null): void;
|
|
5
|
+
declare function setPendingFocus(focus: MenuFocusTarget): void;
|
|
6
6
|
declare const __VLS_export: import("vue").DefineComponent<{
|
|
7
7
|
items: MenuItems;
|
|
8
8
|
anchor: () => AnchorTarget | null | undefined;
|
|
@@ -19,6 +19,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
19
19
|
style?: import("vue").StyleValue;
|
|
20
20
|
results?: (string | number) | undefined;
|
|
21
21
|
placeholder?: string | undefined | undefined;
|
|
22
|
+
dir?: string | undefined | undefined;
|
|
22
23
|
class?: import("vue").ClassValue;
|
|
23
24
|
role?: string | undefined | undefined;
|
|
24
25
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -172,7 +173,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
172
173
|
accesskey?: string | undefined | undefined;
|
|
173
174
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
174
175
|
contextmenu?: string | undefined | undefined;
|
|
175
|
-
dir?: string | undefined | undefined;
|
|
176
176
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
177
177
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
178
178
|
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -206,7 +206,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
206
206
|
}, {
|
|
207
207
|
show: typeof show;
|
|
208
208
|
hide: () => void;
|
|
209
|
-
toggle: (focus?:
|
|
209
|
+
toggle: (focus?: MenuFocusTarget, source?: HTMLElement | null) => void;
|
|
210
210
|
setPendingFocus: typeof setPendingFocus;
|
|
211
211
|
reposition: () => void;
|
|
212
212
|
isOpen: import("vue").Ref<boolean, boolean>;
|
|
@@ -230,6 +230,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
230
230
|
style?: import("vue").StyleValue;
|
|
231
231
|
results?: (string | number) | undefined;
|
|
232
232
|
placeholder?: string | undefined | undefined;
|
|
233
|
+
dir?: string | undefined | undefined;
|
|
233
234
|
class?: import("vue").ClassValue;
|
|
234
235
|
role?: string | undefined | undefined;
|
|
235
236
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -383,7 +384,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
383
384
|
accesskey?: string | undefined | undefined;
|
|
384
385
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
385
386
|
contextmenu?: string | undefined | undefined;
|
|
386
|
-
dir?: string | undefined | undefined;
|
|
387
387
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
388
388
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
389
389
|
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
v-model:open="entry.open"
|
|
5
5
|
:title="entry.options.title"
|
|
6
6
|
:description="entry.options.description"
|
|
7
|
+
:label="entry.options.label"
|
|
7
8
|
:side="entry.options.side"
|
|
8
9
|
:size="entry.options.size"
|
|
9
10
|
:dismissible="entry.options.dismissible ?? true"
|
|
@@ -22,6 +23,7 @@
|
|
|
22
23
|
v-model:open="entry.open"
|
|
23
24
|
:title="entry.options.title"
|
|
24
25
|
:description="entry.options.description"
|
|
26
|
+
:label="entry.options.label"
|
|
25
27
|
:size="entry.options.size"
|
|
26
28
|
:sheet="entry.options.sheet"
|
|
27
29
|
:dismissible="entry.options.dismissible ?? true"
|
|
@@ -4,12 +4,14 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
4
4
|
key?: PropertyKey | undefined;
|
|
5
5
|
loading?: boolean;
|
|
6
6
|
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
7
|
+
label?: string;
|
|
7
8
|
title?: string | undefined;
|
|
8
9
|
style?: import("vue").StyleValue;
|
|
9
10
|
results?: (string | number) | undefined;
|
|
10
11
|
placeholder?: string | undefined;
|
|
11
12
|
description?: string;
|
|
12
13
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
14
|
+
dir?: string | undefined;
|
|
13
15
|
class?: import("vue").ClassValue;
|
|
14
16
|
role?: string | undefined;
|
|
15
17
|
'aria-label'?: string | undefined;
|
|
@@ -165,7 +167,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
165
167
|
accesskey?: string | undefined;
|
|
166
168
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
167
169
|
contextmenu?: string | undefined;
|
|
168
|
-
dir?: string | undefined;
|
|
169
170
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
170
171
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
171
172
|
enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
|
|
@@ -205,14 +206,14 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
205
206
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
206
207
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
207
208
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
209
|
+
flush?: boolean;
|
|
208
210
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
209
211
|
side?: import("../../index.ts").DrawerSide;
|
|
210
|
-
flush?: boolean;
|
|
211
212
|
sheet?: boolean;
|
|
212
213
|
onOpen?: ((() => any) & (() => any)) | undefined;
|
|
214
|
+
closeLabel?: string;
|
|
213
215
|
rootClass?: unknown;
|
|
214
216
|
hideClose?: boolean;
|
|
215
|
-
closeLabel?: string;
|
|
216
217
|
beforeClose?: import("../../index.ts").DialogBeforeClose;
|
|
217
218
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
218
219
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -224,12 +225,14 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
224
225
|
key?: PropertyKey | undefined;
|
|
225
226
|
loading?: boolean;
|
|
226
227
|
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
228
|
+
label?: string;
|
|
227
229
|
title?: string | undefined;
|
|
228
230
|
style?: import("vue").StyleValue;
|
|
229
231
|
results?: (string | number) | undefined;
|
|
230
232
|
placeholder?: string | undefined;
|
|
231
233
|
description?: string;
|
|
232
234
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
235
|
+
dir?: string | undefined;
|
|
233
236
|
class?: import("vue").ClassValue;
|
|
234
237
|
role?: string | undefined;
|
|
235
238
|
'aria-label'?: string | undefined;
|
|
@@ -385,7 +388,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
385
388
|
accesskey?: string | undefined;
|
|
386
389
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
387
390
|
contextmenu?: string | undefined;
|
|
388
|
-
dir?: string | undefined;
|
|
389
391
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
390
392
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
391
393
|
enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
|
|
@@ -425,14 +427,14 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
425
427
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
426
428
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
427
429
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
430
|
+
flush?: boolean;
|
|
428
431
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
429
432
|
side?: import("../../index.ts").DrawerSide;
|
|
430
|
-
flush?: boolean;
|
|
431
433
|
sheet?: boolean;
|
|
432
434
|
onOpen?: ((() => any) & (() => any)) | undefined;
|
|
435
|
+
closeLabel?: string;
|
|
433
436
|
rootClass?: unknown;
|
|
434
437
|
hideClose?: boolean;
|
|
435
|
-
closeLabel?: string;
|
|
436
438
|
beforeClose?: import("../../index.ts").DialogBeforeClose;
|
|
437
439
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
438
440
|
}> & Readonly<{
|
|
@@ -53,6 +53,11 @@ export interface PromptRequest extends DialogRequestBase, PromptOptions {
|
|
|
53
53
|
export type DialogRequest = ConfirmRequest | AlertRequest | PromptRequest;
|
|
54
54
|
export declare const confirmQueue: import("vue").ShallowReactive<DialogRequest[]>;
|
|
55
55
|
export declare function hasConfirmHost(): boolean;
|
|
56
|
-
|
|
56
|
+
type NewRequest<R> = R extends DialogRequest ? Omit<R, 'id'> : never;
|
|
57
|
+
export declare function enqueueDialog(request: NewRequest<DialogRequest>): void;
|
|
58
|
+
export declare function nativeDialogMessage(options: {
|
|
59
|
+
title?: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
}): string;
|
|
57
62
|
export declare function cancelRequest(request: DialogRequest): void;
|
|
58
63
|
export {};
|
|
@@ -5,9 +5,12 @@ let counter = 0;
|
|
|
5
5
|
export function hasConfirmHost() {
|
|
6
6
|
return hasHost("confirm");
|
|
7
7
|
}
|
|
8
|
-
export function
|
|
8
|
+
export function enqueueDialog(request) {
|
|
9
9
|
counter += 1;
|
|
10
|
-
|
|
10
|
+
confirmQueue.push({ ...request, id: counter });
|
|
11
|
+
}
|
|
12
|
+
export function nativeDialogMessage(options) {
|
|
13
|
+
return [options.title, options.description].filter(Boolean).join("\n\n");
|
|
11
14
|
}
|
|
12
15
|
export function cancelRequest(request) {
|
|
13
16
|
if (request.kind === "confirm") request.resolve(false);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Ref } from 'vue';
|
|
2
2
|
import type { DialogBeforeClose, DialogCloseReason } from '../../components/overlays/types';
|
|
3
3
|
export declare const modalStack: import("vue").ShallowReactive<HTMLDialogElement[]>;
|
|
4
|
+
export declare function releaseModal(dialog: HTMLDialogElement | null | undefined): void;
|
|
4
5
|
export interface ModalDialogOptions {
|
|
5
6
|
dialog: Readonly<Ref<HTMLDialogElement | null | undefined>>;
|
|
6
7
|
panel: Readonly<Ref<HTMLElement | null | undefined>>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { nextTick, onBeforeUnmount, onMounted, ref, shallowReactive, watch } from "vue";
|
|
2
2
|
import { useScrollLock } from "../../composables/useScrollLock.mjs";
|
|
3
|
+
import { activeElement, hasFocusWithin, isFocusLost } from "../core/focus.mjs";
|
|
3
4
|
import { waitForAnimations } from "../floating/support.mjs";
|
|
4
5
|
export const modalStack = shallowReactive([]);
|
|
5
|
-
function
|
|
6
|
+
export function releaseModal(dialog) {
|
|
6
7
|
const index = dialog ? modalStack.indexOf(dialog) : -1;
|
|
7
8
|
if (index !== -1) modalStack.splice(index, 1);
|
|
8
9
|
}
|
|
@@ -46,14 +47,14 @@ export function useModalDialog(options) {
|
|
|
46
47
|
const dialog = options.dialog.value;
|
|
47
48
|
if (!dialog || !options.open.value) return;
|
|
48
49
|
if (dialog.open) return;
|
|
49
|
-
returnTarget =
|
|
50
|
+
returnTarget = activeElement();
|
|
50
51
|
try {
|
|
51
52
|
dialog.showModal();
|
|
52
53
|
} catch {
|
|
53
54
|
dialog.setAttribute("open", "");
|
|
54
55
|
}
|
|
55
56
|
scrollLock.lock();
|
|
56
|
-
|
|
57
|
+
releaseModal(dialog);
|
|
57
58
|
modalStack.push(dialog);
|
|
58
59
|
if (!dialog.querySelector("[autofocus]")) options.panel.value?.focus({ preventScroll: true });
|
|
59
60
|
options.onOpen?.();
|
|
@@ -65,14 +66,13 @@ export function useModalDialog(options) {
|
|
|
65
66
|
present.value = false;
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
release(dialog);
|
|
69
|
+
const focusInside = hasFocusWithin(dialog);
|
|
70
|
+
releaseModal(dialog);
|
|
71
71
|
if (dialog.open) dialog.close();
|
|
72
72
|
const target = returnTarget;
|
|
73
73
|
returnTarget = null;
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
if ((focusInside || isFocusLost(dialog)) && target?.isConnected)
|
|
75
|
+
target.focus({ preventScroll: true });
|
|
76
76
|
options.onClose?.();
|
|
77
77
|
waitForAnimations(dialog).then(() => {
|
|
78
78
|
if (options.open.value) return;
|
|
@@ -86,7 +86,7 @@ export function useModalDialog(options) {
|
|
|
86
86
|
});
|
|
87
87
|
onBeforeUnmount(() => {
|
|
88
88
|
const dialog = options.dialog.value;
|
|
89
|
-
|
|
89
|
+
releaseModal(dialog);
|
|
90
90
|
if (dialog?.open) dialog.close();
|
|
91
91
|
if (returnTarget?.isConnected) returnTarget.focus({ preventScroll: true });
|
|
92
92
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { onBeforeUnmount, watch } from "vue";
|
|
2
|
+
import { isClient } from "../core/env.mjs";
|
|
2
3
|
let lastClosedAt = 0;
|
|
3
4
|
const WARM_WINDOW = 400;
|
|
4
5
|
export function useHoverTrigger(options) {
|
|
@@ -51,9 +52,24 @@ export function useHoverTrigger(options) {
|
|
|
51
52
|
if (next && (attached?.contains(next) || attachedFloating?.contains(next))) return;
|
|
52
53
|
scheduleClose();
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
+
let suppressClick = false;
|
|
56
|
+
function onPointerDown(event) {
|
|
57
|
+
if (options.touch && event.pointerType === "touch" && !options.isOpen.value) {
|
|
58
|
+
if (!options.enabled()) return;
|
|
59
|
+
clearTimers();
|
|
60
|
+
suppressClick = true;
|
|
61
|
+
setTimeout(() => suppressClick = false, 800);
|
|
62
|
+
options.show();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
55
65
|
scheduleClose(true);
|
|
56
66
|
}
|
|
67
|
+
function onClick(event) {
|
|
68
|
+
if (!suppressClick) return;
|
|
69
|
+
suppressClick = false;
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
event.stopPropagation();
|
|
72
|
+
}
|
|
57
73
|
function onKeydown(event) {
|
|
58
74
|
if (event.key !== "Escape" || !options.isOpen.value) return;
|
|
59
75
|
event.preventDefault();
|
|
@@ -69,6 +85,7 @@ export function useHoverTrigger(options) {
|
|
|
69
85
|
element.addEventListener("focusin", onFocusIn);
|
|
70
86
|
element.addEventListener("focusout", onFocusOut);
|
|
71
87
|
element.addEventListener("pointerdown", onPointerDown);
|
|
88
|
+
element.addEventListener("click", onClick, true);
|
|
72
89
|
element.addEventListener("keydown", onKeydown);
|
|
73
90
|
}
|
|
74
91
|
function detach(element) {
|
|
@@ -77,6 +94,7 @@ export function useHoverTrigger(options) {
|
|
|
77
94
|
element.removeEventListener("focusin", onFocusIn);
|
|
78
95
|
element.removeEventListener("focusout", onFocusOut);
|
|
79
96
|
element.removeEventListener("pointerdown", onPointerDown);
|
|
97
|
+
element.removeEventListener("click", onClick, true);
|
|
80
98
|
element.removeEventListener("keydown", onKeydown);
|
|
81
99
|
}
|
|
82
100
|
function attachFloating(element) {
|
|
@@ -122,8 +140,7 @@ export function useHoverTrigger(options) {
|
|
|
122
140
|
clearTimers();
|
|
123
141
|
if (attached) detach(attached);
|
|
124
142
|
if (attachedFloating) detachFloating(attachedFloating);
|
|
125
|
-
if (
|
|
126
|
-
document.removeEventListener("keydown", onDocumentKeydown);
|
|
143
|
+
if (isClient()) document.removeEventListener("keydown", onDocumentKeydown);
|
|
127
144
|
});
|
|
128
145
|
return { scheduleOpen, scheduleClose, clearTimers };
|
|
129
146
|
}
|
|
@@ -3,3 +3,12 @@ export interface MenuRootContext {
|
|
|
3
3
|
close: () => void;
|
|
4
4
|
}
|
|
5
5
|
export declare const MENU_ROOT_KEY: InjectionKey<MenuRootContext>;
|
|
6
|
+
export type MenuFocusTarget = 'first' | 'last' | 'menu' | 'none';
|
|
7
|
+
export interface MenuHandle {
|
|
8
|
+
show: (focus?: MenuFocusTarget, source?: HTMLElement | null) => void;
|
|
9
|
+
setPendingFocus: (focus: MenuFocusTarget) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function menuTriggerHandlers(menu: () => MenuHandle | null | undefined, source: () => HTMLElement | null | undefined, firstKeys?: readonly string[]): {
|
|
12
|
+
onKeydown: (event: KeyboardEvent) => void;
|
|
13
|
+
onPointerDown: (event: PointerEvent) => void;
|
|
14
|
+
};
|
|
@@ -1 +1,16 @@
|
|
|
1
1
|
export const MENU_ROOT_KEY = Symbol("k-menu-root");
|
|
2
|
+
export function menuTriggerHandlers(menu, source, firstKeys = ["ArrowDown"]) {
|
|
3
|
+
function onKeydown(event) {
|
|
4
|
+
const focus = firstKeys.includes(event.key) ? "first" : event.key === "ArrowUp" ? "last" : void 0;
|
|
5
|
+
if (focus) {
|
|
6
|
+
event.preventDefault();
|
|
7
|
+
menu()?.show(focus, source());
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (event.key === "Enter" || event.key === " ") menu()?.setPendingFocus("first");
|
|
11
|
+
}
|
|
12
|
+
function onPointerDown(event) {
|
|
13
|
+
menu()?.setPendingFocus(event.pointerType === "mouse" ? "menu" : "first");
|
|
14
|
+
}
|
|
15
|
+
return { onKeydown, onPointerDown };
|
|
16
|
+
}
|
package/dist/locale/en.mjs
CHANGED
|
@@ -23,7 +23,12 @@ export const en = {
|
|
|
23
23
|
retry: "Try again",
|
|
24
24
|
unsavedChanges: "Unsaved changes",
|
|
25
25
|
somethingWentWrong: "Something went wrong",
|
|
26
|
-
selected: "{count} selected"
|
|
26
|
+
selected: "{count} selected",
|
|
27
|
+
removeItem: "Remove {label}",
|
|
28
|
+
opensInNewTab: "(opens in a new tab)",
|
|
29
|
+
copyFailed: "Could not copy",
|
|
30
|
+
readonly: "Read only",
|
|
31
|
+
empty: "Empty"
|
|
27
32
|
},
|
|
28
33
|
form: {
|
|
29
34
|
required: "This field is required",
|
|
@@ -34,7 +39,8 @@ export const en = {
|
|
|
34
39
|
minItems: "Select at least {count} item | Select at least {count} items",
|
|
35
40
|
maxItems: "Select at most {count} item | Select at most {count} items",
|
|
36
41
|
pattern: "Invalid format",
|
|
37
|
-
invalid: "Invalid value"
|
|
42
|
+
invalid: "Invalid value",
|
|
43
|
+
requiredHint: "(required)"
|
|
38
44
|
},
|
|
39
45
|
editor: {
|
|
40
46
|
bold: "Bold",
|
|
@@ -52,7 +58,9 @@ export const en = {
|
|
|
52
58
|
linkUrl: "Link URL",
|
|
53
59
|
applyLink: "Apply",
|
|
54
60
|
removeLink: "Remove link",
|
|
55
|
-
characters: "{count} character | {count} characters"
|
|
61
|
+
characters: "{count} character | {count} characters",
|
|
62
|
+
limit: "{count} of {max} characters",
|
|
63
|
+
limitReached: "Character limit reached"
|
|
56
64
|
},
|
|
57
65
|
grid: {
|
|
58
66
|
noRows: "No rows to show",
|
|
@@ -70,7 +78,20 @@ export const en = {
|
|
|
70
78
|
selected: "{count} selected",
|
|
71
79
|
copied: "Copied to clipboard",
|
|
72
80
|
yes: "Yes",
|
|
73
|
-
no: "No"
|
|
81
|
+
no: "No",
|
|
82
|
+
label: "Data grid",
|
|
83
|
+
rowCount: "No rows | {count} row | {count} rows",
|
|
84
|
+
checked: "checked",
|
|
85
|
+
unchecked: "not checked",
|
|
86
|
+
indeterminate: "partially checked",
|
|
87
|
+
selectRowHint: "Press Space to select this row",
|
|
88
|
+
deselectRowHint: "Press Space to deselect this row",
|
|
89
|
+
toggleRowHint: "Press Space to select or deselect the row",
|
|
90
|
+
rowSelectionDisabled: "This row cannot be selected",
|
|
91
|
+
selectAllHint: "Press Space to select or deselect all rows",
|
|
92
|
+
selectAllRows: "Select all rows",
|
|
93
|
+
sortHint: "Press Enter to sort",
|
|
94
|
+
tooltip: "Tooltip"
|
|
74
95
|
},
|
|
75
96
|
account: {
|
|
76
97
|
label: "Account"
|
|
@@ -95,22 +116,26 @@ export const en = {
|
|
|
95
116
|
offline: "offline"
|
|
96
117
|
},
|
|
97
118
|
avatarGroup: {
|
|
98
|
-
more: "more"
|
|
119
|
+
more: "{count} more"
|
|
99
120
|
},
|
|
100
121
|
breadcrumbs: {
|
|
101
122
|
label: "Breadcrumb"
|
|
102
123
|
},
|
|
103
124
|
calendar: {
|
|
104
125
|
previousMonth: "Previous month",
|
|
105
|
-
nextMonth: "Next month"
|
|
126
|
+
nextMonth: "Next month",
|
|
127
|
+
rangeStart: "range start",
|
|
128
|
+
rangeEnd: "range end"
|
|
106
129
|
},
|
|
107
130
|
chart: {
|
|
108
131
|
empty: "No data to show",
|
|
109
|
-
loading: "Loading chart"
|
|
132
|
+
loading: "Loading chart",
|
|
133
|
+
legend: "Legend"
|
|
110
134
|
},
|
|
111
135
|
colorInput: {
|
|
112
136
|
pick: "Pick a color",
|
|
113
|
-
swatches: "Preset colors"
|
|
137
|
+
swatches: "Preset colors",
|
|
138
|
+
invalid: "Enter a hex color like #3366ff"
|
|
114
139
|
},
|
|
115
140
|
combobox: {
|
|
116
141
|
clear: "Clear selection",
|
|
@@ -144,7 +169,8 @@ export const en = {
|
|
|
144
169
|
placeholder: "Pick a date",
|
|
145
170
|
clear: "Clear date",
|
|
146
171
|
dialog: "Choose date",
|
|
147
|
-
range: "{start} to {end}"
|
|
172
|
+
range: "{start} to {end}",
|
|
173
|
+
rangePending: "{start} - ..."
|
|
148
174
|
},
|
|
149
175
|
descriptionList: {
|
|
150
176
|
empty: "Not set"
|
|
@@ -192,7 +218,8 @@ export const en = {
|
|
|
192
218
|
mixedTitle: "Drop files or folders here or click to browse",
|
|
193
219
|
browseDirectory: "Upload a folder",
|
|
194
220
|
loading: "Uploading",
|
|
195
|
-
added: "{count} file added | {count} files added"
|
|
221
|
+
added: "{count} file added | {count} files added",
|
|
222
|
+
rejected: "{count} file was not accepted | {count} files were not accepted"
|
|
196
223
|
},
|
|
197
224
|
filterPills: {
|
|
198
225
|
label: "Filters"
|
|
@@ -201,7 +228,8 @@ export const en = {
|
|
|
201
228
|
toolbar: "Filter results",
|
|
202
229
|
emptyTitle: "Nothing here yet",
|
|
203
230
|
noResultsDescription: "Try a different search or clear the filters.",
|
|
204
|
-
clearFilters: "Clear filters"
|
|
231
|
+
clearFilters: "Clear filters",
|
|
232
|
+
results: "No results | {count} result | {count} results"
|
|
205
233
|
},
|
|
206
234
|
numberInput: {
|
|
207
235
|
increase: "Increase",
|
|
@@ -209,7 +237,7 @@ export const en = {
|
|
|
209
237
|
},
|
|
210
238
|
pagination: {
|
|
211
239
|
label: "Pagination",
|
|
212
|
-
page: "Page",
|
|
240
|
+
page: "Page {page}",
|
|
213
241
|
previous: "Previous page",
|
|
214
242
|
next: "Next page",
|
|
215
243
|
pageSize: "Rows per page",
|
|
@@ -266,18 +294,25 @@ export const en = {
|
|
|
266
294
|
sidebar: "Sidebar",
|
|
267
295
|
openNavigation: "Open navigation",
|
|
268
296
|
skipToContent: "Skip to content",
|
|
269
|
-
main: "
|
|
270
|
-
|
|
271
|
-
|
|
297
|
+
main: "Primary",
|
|
298
|
+
closeNavigation: "Close navigation",
|
|
299
|
+
navigation: "Navigation"
|
|
272
300
|
},
|
|
273
301
|
stat: {
|
|
274
302
|
increased: "Increased by",
|
|
275
|
-
decreased: "Decreased by"
|
|
303
|
+
decreased: "Decreased by",
|
|
304
|
+
favorable: "favorable",
|
|
305
|
+
unfavorable: "unfavorable"
|
|
276
306
|
},
|
|
277
307
|
table: {
|
|
278
308
|
selectAll: "Select all rows",
|
|
279
309
|
loading: "Loading rows",
|
|
280
|
-
selectRow: "Select row {index}"
|
|
310
|
+
selectRow: "Select row {index}",
|
|
311
|
+
label: "Table",
|
|
312
|
+
sortedBy: "Sorted by {column}, {direction}",
|
|
313
|
+
ascending: "ascending",
|
|
314
|
+
descending: "descending",
|
|
315
|
+
sortCleared: "Sorting removed"
|
|
281
316
|
},
|
|
282
317
|
theme: {
|
|
283
318
|
label: "Theme",
|
|
@@ -296,7 +331,24 @@ export const en = {
|
|
|
296
331
|
reorderHint: "Press Alt with the up or down arrow to move",
|
|
297
332
|
reorderNestedHint: "Press Alt with the arrow keys to move: up and down change the position, left and right change the level",
|
|
298
333
|
moved: "{label} moved to position {position} of {count}",
|
|
299
|
-
movedInto: "{label} moved into {parent}, position {position} of {count}"
|
|
334
|
+
movedInto: "{label} moved into {parent}, position {position} of {count}",
|
|
335
|
+
moveUp: "Move {label} up",
|
|
336
|
+
moveDown: "Move {label} down",
|
|
337
|
+
indent: "Indent {label}",
|
|
338
|
+
outdent: "Outdent {label}"
|
|
339
|
+
},
|
|
340
|
+
meter: {
|
|
341
|
+
label: "Meter",
|
|
342
|
+
valueText: "{value}, {state}",
|
|
343
|
+
good: "good",
|
|
344
|
+
fair: "fair",
|
|
345
|
+
poor: "poor"
|
|
346
|
+
},
|
|
347
|
+
tone: {
|
|
348
|
+
danger: "Error",
|
|
349
|
+
warning: "Warning",
|
|
350
|
+
info: "Information",
|
|
351
|
+
success: "Success"
|
|
300
352
|
}
|
|
301
353
|
}
|
|
302
354
|
};
|
package/dist/locale/index.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ export interface DefineLocaleOptions {
|
|
|
11
11
|
base?: KLocale;
|
|
12
12
|
}
|
|
13
13
|
export declare function defineLocale(options: DefineLocaleOptions): KLocale;
|
|
14
|
-
export declare function resolveBuiltinLocale(code: string | undefined): KLocale;
|
|
15
14
|
export declare function formatLocaleMessage(code: string, template: string, params?: MessageParams): string;
|
|
16
15
|
export declare function translate(locale: KLocale, key: MessageKey, params?: MessageParams): string;
|
|
16
|
+
export declare function translateOr(locale: KLocale, template: string | undefined, key: MessageKey, params?: MessageParams): string;
|
package/dist/locale/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { pluralRules } from "../internal/core/intl.mjs";
|
|
1
2
|
import { formatMessage } from "../internal/core/text.mjs";
|
|
2
3
|
import { en } from "./en.mjs";
|
|
3
4
|
import { it } from "./it.mjs";
|
|
@@ -21,19 +22,9 @@ export function defineLocale(options) {
|
|
|
21
22
|
messages: mergeMessages(base.messages, options.messages)
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
|
-
export function resolveBuiltinLocale(code) {
|
|
25
|
-
if (!code) return en;
|
|
26
|
-
return builtinLocales[code] ?? builtinLocales[code.split("-")[0]] ?? en;
|
|
27
|
-
}
|
|
28
|
-
const pluralRules = /* @__PURE__ */ new Map();
|
|
29
25
|
function pluralForm(code, forms, count) {
|
|
30
26
|
if (forms.length === 3 && count === 0) return forms[0];
|
|
31
|
-
|
|
32
|
-
if (!rules) {
|
|
33
|
-
rules = new Intl.PluralRules(code);
|
|
34
|
-
pluralRules.set(code, rules);
|
|
35
|
-
}
|
|
36
|
-
const one = rules.select(count) === "one";
|
|
27
|
+
const one = pluralRules(code).select(count) === "one";
|
|
37
28
|
const singular = forms.length === 3 ? forms[1] : forms[0];
|
|
38
29
|
return one ? singular : forms[forms.length - 1];
|
|
39
30
|
}
|
|
@@ -48,3 +39,6 @@ export function translate(locale, key, params = {}) {
|
|
|
48
39
|
const template = locale.messages[group][name] ?? key;
|
|
49
40
|
return formatLocaleMessage(locale.code, template, params);
|
|
50
41
|
}
|
|
42
|
+
export function translateOr(locale, template, key, params = {}) {
|
|
43
|
+
return template ? formatLocaleMessage(locale.code, template, params) : translate(locale, key, params);
|
|
44
|
+
}
|