@xleddyl/443-components-vue 0.8.0 → 0.8.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.
Files changed (150) hide show
  1. package/README.md +38 -2
  2. package/dist/chart/BarChart.vue +33 -22
  3. package/dist/chart/BarChart.vue.d.ts +4 -0
  4. package/dist/chart/chart.css +2 -2
  5. package/dist/chart/useChartColors.mjs +8 -8
  6. package/dist/components/core/Button.vue.d.ts +1 -1
  7. package/dist/components/core/Input.vue.d.ts +1 -1
  8. package/dist/components/core/Textarea.vue.d.ts +1 -1
  9. package/dist/components/core/types.d.ts +1 -1
  10. package/dist/components/data/Badge.vue.d.ts +1 -1
  11. package/dist/components/data/FilterPills.vue +43 -4
  12. package/dist/components/data/FilterPills.vue.d.ts +4 -1
  13. package/dist/components/data/Pagination.vue +55 -0
  14. package/dist/components/data/Pagination.vue.d.ts +10 -0
  15. package/dist/components/data/Tag.vue.d.ts +1 -1
  16. package/dist/components/data/Tree.vue.d.ts +1 -1
  17. package/dist/components/data/types.d.ts +1 -0
  18. package/dist/components/feedback/Meter.vue.d.ts +1 -1
  19. package/dist/components/feedback/Progress.vue.d.ts +1 -1
  20. package/dist/components/feedback/ProgressRing.vue.d.ts +1 -1
  21. package/dist/components/forms/Calendar.vue +31 -7
  22. package/dist/components/forms/Calendar.vue.d.ts +13 -2
  23. package/dist/components/forms/ColorInput.vue.d.ts +1 -1
  24. package/dist/components/forms/DateInput.vue.d.ts +2 -2
  25. package/dist/components/forms/DatePicker.vue.d.ts +1 -1
  26. package/dist/components/forms/FileInput.vue.d.ts +1 -1
  27. package/dist/components/forms/NumberInput.vue.d.ts +1 -1
  28. package/dist/components/forms/PasswordInput.vue.d.ts +1 -1
  29. package/dist/components/forms/PinInput.vue.d.ts +1 -1
  30. package/dist/components/forms/Select.vue.d.ts +1 -1
  31. package/dist/components/forms/Slider.vue.d.ts +1 -1
  32. package/dist/components/forms/Switch.vue.d.ts +1 -1
  33. package/dist/components/forms/TimeInput.vue.d.ts +1 -1
  34. package/dist/components/layout/AppShell.vue +4 -2
  35. package/dist/components/layout/AppShell.vue.d.ts +2 -0
  36. package/dist/components/layout/CopyButton.vue.d.ts +1 -1
  37. package/dist/components/layout/PageHeader.vue +15 -3
  38. package/dist/components/layout/PageHeader.vue.d.ts +5 -0
  39. package/dist/components/layout/Separator.vue +17 -4
  40. package/dist/components/layout/Separator.vue.d.ts +7 -1
  41. package/dist/components/layout/Tabs.vue +10 -0
  42. package/dist/components/layout/types.d.ts +3 -0
  43. package/dist/components/overlays/ConfirmDialog.vue.d.ts +6 -2
  44. package/dist/components/overlays/ConfirmHost.vue.d.ts +6 -2
  45. package/dist/components/overlays/ContextMenu.vue.d.ts +2 -0
  46. package/dist/components/overlays/DropdownMenu.vue +5 -1
  47. package/dist/components/overlays/DropdownMenu.vue.d.ts +6 -0
  48. package/dist/components/overlays/Modal.vue +9 -2
  49. package/dist/components/overlays/Modal.vue.d.ts +4 -0
  50. package/dist/components/templates/DashboardLayout.vue +2 -0
  51. package/dist/components/templates/DashboardLayout.vue.d.ts +2 -0
  52. package/dist/components/templates/SettingsModal.vue.d.ts +6 -2
  53. package/dist/components/templates/types.d.ts +1 -0
  54. package/dist/composables/useForm.d.ts +16 -1
  55. package/dist/composables/useForm.mjs +31 -6
  56. package/dist/editor/RichTextEditor.vue +13 -1
  57. package/dist/editor/RichTextEditor.vue.d.ts +1 -1
  58. package/dist/editor/rich-text-editor.css +10 -4
  59. package/dist/editor/types.d.ts +1 -1
  60. package/dist/grid/DataGrid.vue +62 -8
  61. package/dist/grid/DataGrid.vue.d.ts +10 -2
  62. package/dist/grid/cells/DateCell.vue +18 -3
  63. package/dist/grid/data-grid.css +1 -1
  64. package/dist/grid/index.d.ts +1 -1
  65. package/dist/grid/index.mjs +1 -1
  66. package/dist/grid/modules.d.ts +1 -0
  67. package/dist/grid/modules.mjs +9 -0
  68. package/dist/grid/theme.mjs +7 -6
  69. package/dist/grid/types.d.ts +1 -0
  70. package/dist/icons/builtin.d.ts +3 -0
  71. package/dist/icons/builtin.mjs +3 -0
  72. package/dist/index.d.ts +2 -2
  73. package/dist/index.mjs +2 -1
  74. package/dist/internal/core/intl.d.ts +2 -0
  75. package/dist/internal/core/intl.mjs +17 -0
  76. package/dist/internal/keys.d.ts +2 -1
  77. package/dist/internal/keys.mjs +1 -0
  78. package/dist/internal/overlays/MenuList.vue +4 -2
  79. package/dist/internal/overlays/MenuList.vue.d.ts +2 -0
  80. package/dist/internal/overlays/OverlayView.vue.d.ts +6 -2
  81. package/dist/locale/de.d.ts +2 -0
  82. package/dist/locale/de.mjs +362 -0
  83. package/dist/locale/en.mjs +10 -2
  84. package/dist/locale/index.d.ts +2 -1
  85. package/dist/locale/index.mjs +3 -2
  86. package/dist/locale/it.mjs +10 -2
  87. package/dist/locale/types.d.ts +8 -0
  88. package/dist/nuxt/runtime/layouts/dashboard.vue +1 -0
  89. package/dist/styles/base.css +2 -1
  90. package/dist/styles/core/button.css +42 -16
  91. package/dist/styles/core/form-field.css +1 -1
  92. package/dist/styles/core/input.css +2 -2
  93. package/dist/styles/core/kbd.css +1 -1
  94. package/dist/styles/data/avatar.css +1 -1
  95. package/dist/styles/data/badge.css +40 -24
  96. package/dist/styles/data/description-list.css +2 -2
  97. package/dist/styles/data/filter-pills.css +24 -3
  98. package/dist/styles/data/pagination.css +26 -3
  99. package/dist/styles/data/selection-bar.css +1 -1
  100. package/dist/styles/data/stat.css +4 -4
  101. package/dist/styles/data/table.css +4 -4
  102. package/dist/styles/data/tag.css +1 -1
  103. package/dist/styles/data/timeline.css +1 -1
  104. package/dist/styles/data/tree.css +2 -2
  105. package/dist/styles/feedback/empty-state.css +1 -1
  106. package/dist/styles/feedback/loading-host.css +1 -1
  107. package/dist/styles/feedback/loading-overlay.css +1 -1
  108. package/dist/styles/feedback/meter.css +1 -1
  109. package/dist/styles/feedback/progress.css +2 -2
  110. package/dist/styles/forced-colors.css +6 -1
  111. package/dist/styles/forms/calendar.css +30 -3
  112. package/dist/styles/forms/checkbox.css +1 -1
  113. package/dist/styles/forms/choice.css +1 -1
  114. package/dist/styles/forms/combobox.css +2 -2
  115. package/dist/styles/forms/file-input.css +1 -1
  116. package/dist/styles/forms/password-input.css +1 -1
  117. package/dist/styles/forms/pin-input.css +1 -1
  118. package/dist/styles/forms/radio.css +1 -1
  119. package/dist/styles/forms/segmented.css +2 -2
  120. package/dist/styles/forms/select.css +2 -2
  121. package/dist/styles/forms/slider.css +1 -1
  122. package/dist/styles/forms/switch.css +4 -4
  123. package/dist/styles/layout/accordion.css +2 -2
  124. package/dist/styles/layout/app-shell.css +18 -6
  125. package/dist/styles/layout/breadcrumbs.css +3 -3
  126. package/dist/styles/layout/card.css +1 -1
  127. package/dist/styles/layout/nav-link.css +1 -1
  128. package/dist/styles/layout/page-header.css +21 -1
  129. package/dist/styles/layout/separator.css +21 -1
  130. package/dist/styles/layout/sidebar.css +1 -1
  131. package/dist/styles/layout/tabs.css +30 -1
  132. package/dist/styles/layout/theme-switch.css +1 -1
  133. package/dist/styles/overlays/command.css +3 -3
  134. package/dist/styles/overlays/drawer.css +4 -3
  135. package/dist/styles/overlays/floating.css +2 -2
  136. package/dist/styles/overlays/menu.css +5 -1
  137. package/dist/styles/overlays/modal.css +13 -10
  138. package/dist/styles/overlays/toast.css +3 -3
  139. package/dist/styles/overlays/tooltip.css +26 -8
  140. package/dist/styles/shared.css +2 -2
  141. package/dist/styles/templates/account-menu.css +1 -1
  142. package/dist/styles/templates/auth-layout.css +4 -4
  143. package/dist/styles/templates/brand.css +2 -2
  144. package/dist/styles/templates/dashboard-page.css +1 -1
  145. package/dist/styles/templates/empty-page.css +3 -3
  146. package/dist/styles/templates/error-page.css +1 -1
  147. package/dist/styles/templates/save-bar.css +1 -1
  148. package/dist/styles/templates/settings-modal.css +6 -6
  149. package/dist/styles/utilities.css +3 -3
  150. package/package.json +1 -1
@@ -14,23 +14,24 @@ export function createGridTheme(density) {
14
14
  textColor: "var(--k-text-toned)",
15
15
  borderColor: "var(--k-line)",
16
16
  chromeBackgroundColor: "var(--k-subtle)",
17
- headerBackgroundColor: "var(--k-subtle)",
18
- headerTextColor: "var(--k-text-muted)",
17
+ headerBackgroundColor: "var(--k-grid-header-background, var(--k-subtle))",
18
+ headerTextColor: "var(--k-grid-header-text, var(--k-text-muted))",
19
+ headerFontFamily: "var(--k-grid-header-font, var(--k-font-sans))",
19
20
  headerFontSize: 12,
20
- headerFontWeight: 500,
21
+ headerFontWeight: "var(--k-grid-header-font-weight, var(--k-font-weight-medium, 500))",
21
22
  headerRowBorder: { color: "var(--k-line)" },
22
23
  headerColumnBorder: false,
23
24
  rowBorder: { color: "var(--k-line)" },
24
25
  columnBorder: false,
25
26
  rowHoverColor: "var(--k-hover)",
26
- selectedRowBackgroundColor: "var(--k-accent-soft)",
27
+ selectedRowBackgroundColor: "var(--k-grid-selected-background, var(--k-accent-soft))",
27
28
  oddRowBackgroundColor: "transparent",
28
29
  fontFamily: "var(--k-font-sans)",
29
- fontSize: 13,
30
+ fontSize: "var(--k-grid-font-size, 13px)",
30
31
  iconSize: 14,
31
32
  spacing: spacingByDensity[density],
32
33
  borderRadius: "var(--k-radius-sm)",
33
- wrapperBorderRadius: "var(--k-radius-lg)",
34
+ wrapperBorderRadius: "var(--k-grid-radius, var(--k-radius-lg))",
34
35
  wrapperBorder: { color: "var(--k-line)" },
35
36
  menuBackgroundColor: "var(--k-elevated)",
36
37
  menuShadow: "var(--k-shadow-overlay)",
@@ -38,6 +38,7 @@ export interface BooleanCellParams {
38
38
  export interface DateCellParams {
39
39
  locale?: string;
40
40
  options?: Intl.DateTimeFormatOptions;
41
+ relative?: boolean | Intl.RelativeTimeFormatOptions;
41
42
  }
42
43
  export interface BadgeCellParams {
43
44
  tones?: Record<string, Tone>;
@@ -8,6 +8,9 @@ export declare const builtinIcons: {
8
8
  readonly 'chevron-left': readonly ["M15.75 19.5 8.25 12l7.5-7.5"];
9
9
  readonly 'chevron-right': readonly ["m8.25 4.5 7.5 7.5-7.5 7.5"];
10
10
  readonly 'chevron-up-down': readonly ["M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"];
11
+ readonly 'chevron-double-left': readonly ["m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"];
12
+ readonly 'chevron-double-right': readonly ["m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"];
13
+ readonly underline: readonly ["M17.995 3.744v7.5a6 6 0 1 1-12 0v-7.5m-2.25 16.502h16.5"];
11
14
  readonly 'arrow-path': readonly ["M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"];
12
15
  readonly 'arrow-right': readonly ["M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"];
13
16
  readonly 'arrow-left': readonly ["M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"];
@@ -8,6 +8,9 @@ export const builtinIcons = {
8
8
  "chevron-left": ["M15.75 19.5 8.25 12l7.5-7.5"],
9
9
  "chevron-right": ["m8.25 4.5 7.5 7.5-7.5 7.5"],
10
10
  "chevron-up-down": ["M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"],
11
+ "chevron-double-left": ["m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"],
12
+ "chevron-double-right": ["m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"],
13
+ underline: ["M17.995 3.744v7.5a6 6 0 1 1-12 0v-7.5m-2.25 16.502h16.5"],
11
14
  "arrow-path": [
12
15
  "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"
13
16
  ],
package/dist/index.d.ts CHANGED
@@ -7,9 +7,9 @@ export * from './components/overlays';
7
7
  export * from './components/templates';
8
8
  export * from './composables';
9
9
  export { builtinIcons } from './icons/builtin';
10
- export { builtinLocales, defineLocale, en, it } from './locale';
10
+ export { builtinLocales, de, defineLocale, en, it } from './locale';
11
11
  export type { DefineLocaleOptions } from './locale';
12
12
  export type * from './locale/types';
13
13
  export type { BuiltinIconName } from './icons/builtin';
14
- export { FIELD_KEY, FORM_KEY, ICON_USAGE_KEY, ICONS_KEY, LINK_KEY, LOCALE_KEY, PRESET_KEY, THEME_KEY, } from './internal/keys';
14
+ export { FIELD_KEY, FORM_CONFIG_KEY, FORM_KEY, ICON_USAGE_KEY, ICONS_KEY, LINK_KEY, LOCALE_KEY, PRESET_KEY, THEME_KEY, } from './internal/keys';
15
15
  export type * from './types/dom';
package/dist/index.mjs CHANGED
@@ -7,9 +7,10 @@ export * from "./components/overlays/index.mjs";
7
7
  export * from "./components/templates/index.mjs";
8
8
  export * from "./composables/index.mjs";
9
9
  export { builtinIcons } from "./icons/builtin.mjs";
10
- export { builtinLocales, defineLocale, en, it } from "./locale/index.mjs";
10
+ export { builtinLocales, de, defineLocale, en, it } from "./locale/index.mjs";
11
11
  export {
12
12
  FIELD_KEY,
13
+ FORM_CONFIG_KEY,
13
14
  FORM_KEY,
14
15
  ICON_USAGE_KEY,
15
16
  ICONS_KEY,
@@ -2,3 +2,5 @@ export declare const numberFormat: (locale?: string, options?: Intl.NumberFormat
2
2
  export declare const dateTimeFormat: (locale?: string, options?: Intl.DateTimeFormatOptions) => Intl.DateTimeFormat;
3
3
  export declare const pluralRules: (locale?: string, options?: Intl.PluralRulesOptions) => Intl.PluralRules;
4
4
  export declare const collator: (locale?: string, options?: Intl.CollatorOptions) => Intl.Collator;
5
+ export declare const relativeTimeFormat: (locale?: string, options?: Intl.RelativeTimeFormatOptions) => Intl.RelativeTimeFormat;
6
+ export declare function formatRelativeTime(date: Date, locale?: string, options?: Intl.RelativeTimeFormatOptions, now?: number): string;
@@ -22,3 +22,20 @@ export const pluralRules = cachedIntl(
22
22
  export const collator = cachedIntl(
23
23
  (locale, options) => new Intl.Collator(locale, options)
24
24
  );
25
+ export const relativeTimeFormat = cachedIntl(
26
+ (locale, options) => new Intl.RelativeTimeFormat(locale, options)
27
+ );
28
+ const relativeUnits = [
29
+ ["year", 31536e3],
30
+ ["month", 2592e3],
31
+ ["week", 604800],
32
+ ["day", 86400],
33
+ ["hour", 3600],
34
+ ["minute", 60],
35
+ ["second", 1]
36
+ ];
37
+ export function formatRelativeTime(date, locale, options = { numeric: "auto" }, now = Date.now()) {
38
+ const seconds = Math.round((date.getTime() - now) / 1e3);
39
+ const [unit, size] = relativeUnits.find(([, length]) => Math.abs(seconds) >= length) ?? relativeUnits.at(-1);
40
+ return relativeTimeFormat(locale, options).format(Math.round(seconds / size), unit);
41
+ }
@@ -1,6 +1,6 @@
1
1
  import type { Component, ComputedRef, InjectionKey, Ref } from 'vue';
2
2
  import type { FieldContext, FieldControlRole } from '../composables/useField';
3
- import type { FormContext } from '../composables/useForm';
3
+ import type { FormConfig, FormContext } from '../composables/useForm';
4
4
  import type { IconRegistry } from '../composables/useIcons';
5
5
  import type { ThemePreference } from '../composables/useTheme';
6
6
  import type { KLocale } from '../locale/types';
@@ -14,4 +14,5 @@ export declare const FIELD_KEY: InjectionKey<FieldContext>;
14
14
  export declare const FIELD_ROLE_KEY: InjectionKey<FieldControlRole>;
15
15
  export declare const ROOT_KEY: InjectionKey<true>;
16
16
  export declare const FORM_KEY: InjectionKey<FormContext>;
17
+ export declare const FORM_CONFIG_KEY: InjectionKey<FormConfig>;
17
18
  export declare const LOCALE_KEY: InjectionKey<ComputedRef<KLocale>>;
@@ -7,4 +7,5 @@ export const FIELD_KEY = Symbol("k-field");
7
7
  export const FIELD_ROLE_KEY = Symbol("k-field-role");
8
8
  export const ROOT_KEY = Symbol("k-root");
9
9
  export const FORM_KEY = Symbol("k-form");
10
+ export const FORM_CONFIG_KEY = Symbol("k-form-config");
10
11
  export const LOCALE_KEY = Symbol("k-locale");
@@ -5,7 +5,7 @@
5
5
  :popover="layer.popoverMode.value"
6
6
  :data-side="layer.side.value"
7
7
  class="k-floating k-menu"
8
- :class="{ 'is-submenu': level > 0 }"
8
+ :class="{ 'is-submenu': level > 0, 'is-match-width': matchWidth && level === 0 }"
9
9
  role="menu"
10
10
  :aria-label="label"
11
11
  :aria-labelledby="labelledby"
@@ -133,7 +133,8 @@ const props = defineProps({
133
133
  label: { type: String, required: false },
134
134
  labelledby: { type: String, required: false },
135
135
  id: { type: String, required: false },
136
- manualPositioning: { type: Boolean, required: false }
136
+ manualPositioning: { type: Boolean, required: false },
137
+ matchWidth: { type: Boolean, required: false }
137
138
  });
138
139
  const emit = defineEmits(["openChange", "select"]);
139
140
  const generatedId = useId();
@@ -156,6 +157,7 @@ const layer = useFloatingLayer({
156
157
  placement: () => props.placement,
157
158
  offset: () => props.offset,
158
159
  mode: "auto",
160
+ matchWidth: Boolean(props.matchWidth) && props.level === 0,
159
161
  manualPositioning: () => props.manualPositioning || !(props.anchor() instanceof Element),
160
162
  onOpen: () => {
161
163
  const target = pendingFocus;
@@ -13,6 +13,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
13
13
  labelledby?: string;
14
14
  id?: string | undefined;
15
15
  manualPositioning?: boolean;
16
+ matchWidth?: boolean;
16
17
  key?: PropertyKey | undefined;
17
18
  prefix?: string | undefined | undefined;
18
19
  title?: string | undefined | undefined;
@@ -224,6 +225,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
224
225
  labelledby?: string;
225
226
  id?: string | undefined;
226
227
  manualPositioning?: boolean;
228
+ matchWidth?: boolean;
227
229
  key?: PropertyKey | undefined;
228
230
  prefix?: string | undefined | undefined;
229
231
  title?: string | undefined | undefined;
@@ -4,13 +4,13 @@ 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
+ size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
7
8
  label?: string;
8
9
  title?: string | undefined;
9
10
  style?: import("vue").StyleValue;
10
11
  results?: (string | number) | undefined;
11
12
  placeholder?: string | undefined;
12
13
  description?: string;
13
- size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
14
14
  dir?: string | undefined;
15
15
  class?: import("vue").ClassValue;
16
16
  role?: string | undefined;
@@ -114,6 +114,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
114
114
  color?: string | undefined;
115
115
  id?: string | undefined;
116
116
  lang?: string | undefined;
117
+ width?: string;
117
118
  tabindex?: (string | number) | undefined;
118
119
  'aria-activedescendant'?: string | undefined;
119
120
  'aria-atomic'?: (boolean | "true" | "false") | undefined;
@@ -216,6 +217,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
216
217
  hideClose?: boolean;
217
218
  beforeClose?: import("../../index.ts").DialogBeforeClose;
218
219
  closedby?: import("../../index.ts").DialogClosedBy;
220
+ minHeight?: string;
219
221
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
220
222
  close: () => any;
221
223
  afterLeave: () => any;
@@ -225,13 +227,13 @@ declare const __VLS_export: import("vue").DefineComponent<{
225
227
  key?: PropertyKey | undefined;
226
228
  loading?: boolean;
227
229
  prefix?: "k-modal" | "k-drawer" | undefined;
230
+ size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
228
231
  label?: string;
229
232
  title?: string | undefined;
230
233
  style?: import("vue").StyleValue;
231
234
  results?: (string | number) | undefined;
232
235
  placeholder?: string | undefined;
233
236
  description?: string;
234
- size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
235
237
  dir?: string | undefined;
236
238
  class?: import("vue").ClassValue;
237
239
  role?: string | undefined;
@@ -335,6 +337,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
335
337
  color?: string | undefined;
336
338
  id?: string | undefined;
337
339
  lang?: string | undefined;
340
+ width?: string;
338
341
  tabindex?: (string | number) | undefined;
339
342
  'aria-activedescendant'?: string | undefined;
340
343
  'aria-atomic'?: (boolean | "true" | "false") | undefined;
@@ -437,6 +440,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
437
440
  hideClose?: boolean;
438
441
  beforeClose?: import("../../index.ts").DialogBeforeClose;
439
442
  closedby?: import("../../index.ts").DialogClosedBy;
443
+ minHeight?: string;
440
444
  }> & Readonly<{
441
445
  onClose?: (() => any) | undefined;
442
446
  onAfterLeave?: (() => any) | undefined;
@@ -0,0 +1,2 @@
1
+ import type { KLocale } from './types';
2
+ export declare const de: KLocale;
@@ -0,0 +1,362 @@
1
+ export const de = {
2
+ code: "de",
3
+ dir: "ltr",
4
+ messages: {
5
+ common: {
6
+ cancel: "Abbrechen",
7
+ confirm: "Best\xE4tigen",
8
+ close: "Schlie\xDFen",
9
+ ok: "OK",
10
+ clear: "Leeren",
11
+ loading: "Wird geladen",
12
+ areYouSure: "Bist du sicher?",
13
+ noResults: "Keine Ergebnisse",
14
+ remove: "Entfernen",
15
+ dismiss: "Ausblenden",
16
+ copy: "Kopieren",
17
+ copied: "Kopiert",
18
+ search: "Suchen",
19
+ back: "Zur\xFCck",
20
+ save: "Speichern",
21
+ saveChanges: "\xC4nderungen speichern",
22
+ discard: "Verwerfen",
23
+ retry: "Erneut versuchen",
24
+ unsavedChanges: "Ungespeicherte \xC4nderungen",
25
+ somethingWentWrong: "Etwas ist schiefgelaufen",
26
+ selected: "{count} ausgew\xE4hlt",
27
+ removeItem: "{label} entfernen",
28
+ opensInNewTab: "(\xF6ffnet in einem neuen Tab)",
29
+ copyFailed: "Kopieren fehlgeschlagen",
30
+ readonly: "Schreibgesch\xFCtzt",
31
+ empty: "Leer"
32
+ },
33
+ form: {
34
+ required: "Dieses Feld ist erforderlich",
35
+ min: "Muss mindestens {min} sein",
36
+ max: "Darf h\xF6chstens {max} sein",
37
+ minLength: "Mindestens {count} Zeichen | Mindestens {count} Zeichen",
38
+ maxLength: "H\xF6chstens {count} Zeichen | H\xF6chstens {count} Zeichen",
39
+ minItems: "W\xE4hle mindestens {count} Eintrag | W\xE4hle mindestens {count} Eintr\xE4ge",
40
+ maxItems: "W\xE4hle h\xF6chstens {count} Eintrag | W\xE4hle h\xF6chstens {count} Eintr\xE4ge",
41
+ pattern: "Ung\xFCltiges Format",
42
+ invalid: "Ung\xFCltiger Wert",
43
+ requiredHint: "(erforderlich)"
44
+ },
45
+ editor: {
46
+ bold: "Fett",
47
+ italic: "Kursiv",
48
+ strike: "Durchgestrichen",
49
+ underline: "Unterstrichen",
50
+ code: "Code",
51
+ heading: "\xDCberschrift {level}",
52
+ bulletList: "Aufz\xE4hlung",
53
+ orderedList: "Nummerierte Liste",
54
+ blockquote: "Zitat",
55
+ link: "Link",
56
+ undo: "R\xFCckg\xE4ngig",
57
+ redo: "Wiederholen",
58
+ toolbar: "Formatierung",
59
+ linkUrl: "Link-URL",
60
+ applyLink: "\xDCbernehmen",
61
+ removeLink: "Link entfernen",
62
+ characters: "{count} Zeichen | {count} Zeichen",
63
+ limit: "{count} von {max} Zeichen",
64
+ limitReached: "Zeichenlimit erreicht"
65
+ },
66
+ grid: {
67
+ noRows: "Keine Zeilen vorhanden",
68
+ loading: "Wird geladen",
69
+ search: "Suchen",
70
+ clearSearch: "Suche leeren",
71
+ toolbar: "Tabellenwerkzeuge",
72
+ columns: "Spalten",
73
+ resetColumns: "Spalten zur\xFCcksetzen",
74
+ exportCsv: "CSV exportieren",
75
+ rowsPerPage: "Zeilen pro Seite",
76
+ previousPage: "Vorherige Seite",
77
+ nextPage: "N\xE4chste Seite",
78
+ pageStatus: "{from}-{to} von {total}",
79
+ selected: "{count} ausgew\xE4hlt",
80
+ copied: "In die Zwischenablage kopiert",
81
+ yes: "Ja",
82
+ no: "Nein",
83
+ label: "Datentabelle",
84
+ rowCount: "Keine Zeilen | {count} Zeile | {count} Zeilen",
85
+ checked: "ausgew\xE4hlt",
86
+ unchecked: "nicht ausgew\xE4hlt",
87
+ indeterminate: "teilweise ausgew\xE4hlt",
88
+ selectRowHint: "Leertaste dr\xFCcken, um diese Zeile auszuw\xE4hlen",
89
+ deselectRowHint: "Leertaste dr\xFCcken, um die Auswahl dieser Zeile aufzuheben",
90
+ toggleRowHint: "Leertaste dr\xFCcken, um die Zeile aus- oder abzuw\xE4hlen",
91
+ rowSelectionDisabled: "Diese Zeile kann nicht ausgew\xE4hlt werden",
92
+ selectAllHint: "Leertaste dr\xFCcken, um alle Zeilen aus- oder abzuw\xE4hlen",
93
+ selectAllRows: "Alle Zeilen ausw\xE4hlen",
94
+ sortHint: "Eingabetaste dr\xFCcken, um zu sortieren",
95
+ tooltip: "Tooltip"
96
+ },
97
+ account: {
98
+ label: "Konto"
99
+ },
100
+ alert: {
101
+ title: "Hinweis"
102
+ },
103
+ appearance: {
104
+ theme: "Design",
105
+ themeDescription: "W\xE4hle das Aussehen der Oberfl\xE4che. System folgt deinem Ger\xE4t.",
106
+ style: "Stil",
107
+ styleDescription: "Markenfarben, Schriften und Eckenradius."
108
+ },
109
+ auth: {
110
+ aside: "Info"
111
+ },
112
+ avatar: {
113
+ label: "Avatar",
114
+ online: "online",
115
+ away: "abwesend",
116
+ busy: "besch\xE4ftigt",
117
+ offline: "offline"
118
+ },
119
+ avatarGroup: {
120
+ more: "{count} weitere"
121
+ },
122
+ breadcrumbs: {
123
+ label: "Brotkrumennavigation"
124
+ },
125
+ calendar: {
126
+ previousMonth: "Vorheriger Monat",
127
+ nextMonth: "N\xE4chster Monat",
128
+ rangeStart: "Beginn des Zeitraums",
129
+ rangeEnd: "Ende des Zeitraums"
130
+ },
131
+ chart: {
132
+ empty: "Keine Daten vorhanden",
133
+ loading: "Diagramm wird geladen",
134
+ legend: "Legende"
135
+ },
136
+ colorInput: {
137
+ pick: "Farbe w\xE4hlen",
138
+ swatches: "Vordefinierte Farben",
139
+ invalid: "Gib eine Hex-Farbe wie #3366ff ein"
140
+ },
141
+ combobox: {
142
+ clear: "Auswahl leeren",
143
+ toggle: "Optionen anzeigen",
144
+ list: "Optionen",
145
+ create: '"{query}" erstellen',
146
+ results: "{count} Ergebnis verf\xFCgbar | {count} Ergebnisse verf\xFCgbar"
147
+ },
148
+ commandPalette: {
149
+ placeholder: "Befehl eingeben oder suchen",
150
+ label: "Befehlspalette",
151
+ recent: "Zuletzt verwendet",
152
+ minQuery: "Weiter tippen, um zu suchen",
153
+ error: "Suche fehlgeschlagen. Versuche es erneut.",
154
+ results: "{count} Ergebnis | {count} Ergebnisse",
155
+ move: "zum Bewegen",
156
+ select: "zum Ausw\xE4hlen",
157
+ close: "zum Schlie\xDFen"
158
+ },
159
+ contextMenu: {
160
+ label: "Kontextmen\xFC"
161
+ },
162
+ dashboardLayout: {
163
+ pages: "Seiten",
164
+ searchPlaceholder: "Seiten und Aktionen suchen"
165
+ },
166
+ dashboardPage: {
167
+ stats: "Kennzahlen"
168
+ },
169
+ datePicker: {
170
+ placeholder: "Datum w\xE4hlen",
171
+ clear: "Datum leeren",
172
+ dialog: "Datum ausw\xE4hlen",
173
+ range: "{start} bis {end}",
174
+ rangePending: "{start} - ..."
175
+ },
176
+ descriptionList: {
177
+ empty: "Nicht festgelegt"
178
+ },
179
+ detailPage: {
180
+ sections: "Abschnitte",
181
+ details: "Details",
182
+ error: "Dieser Eintrag konnte nicht geladen werden"
183
+ },
184
+ dirtyGuard: {
185
+ title: "Ungespeicherte \xC4nderungen verwerfen?",
186
+ description: "Die \xC4nderungen auf dieser Seite gehen verloren.",
187
+ confirm: "\xC4nderungen verwerfen",
188
+ cancel: "Weiter bearbeiten"
189
+ },
190
+ emptyPage: {
191
+ title: "Willkommen",
192
+ steps: "Erste Schritte",
193
+ done: "(erledigt)",
194
+ todo: "(offen)"
195
+ },
196
+ errorPage: {
197
+ home: "Zur Startseite",
198
+ back: "Zur\xFCck",
199
+ retry: "Erneut versuchen",
200
+ badRequestTitle: "Ung\xFCltige Anfrage",
201
+ badRequestMessage: "Die Anfrage konnte nicht verarbeitet werden.",
202
+ signInTitle: "Anmeldung erforderlich",
203
+ signInMessage: "Du musst dich anmelden, um diese Seite zu sehen.",
204
+ forbiddenTitle: "Zugriff verweigert",
205
+ forbiddenMessage: "Du hast keine Berechtigung, diese Seite zu sehen.",
206
+ notFoundTitle: "Seite nicht gefunden",
207
+ notFoundMessage: "Die gesuchte Seite existiert nicht oder wurde verschoben.",
208
+ serverTitle: "Etwas ist schiefgelaufen",
209
+ serverMessage: "Ein unerwarteter Fehler ist aufgetreten. Versuche es gleich noch einmal.",
210
+ unavailableTitle: "Dienst nicht verf\xFCgbar",
211
+ unavailableMessage: "Wir f\xFChren Wartungsarbeiten durch. Bald wieder da."
212
+ },
213
+ fileInput: {
214
+ title: "Dateien hier ablegen oder zum Durchsuchen klicken",
215
+ drop: "Loslassen, um Dateien hinzuzuf\xFCgen",
216
+ list: "Ausgew\xE4hlte Dateien",
217
+ selected: "{count} Datei ausgew\xE4hlt | {count} Dateien ausgew\xE4hlt",
218
+ directoryTitle: "Ordner hier ablegen oder zum Durchsuchen klicken",
219
+ mixedTitle: "Dateien oder Ordner hier ablegen oder zum Durchsuchen klicken",
220
+ browseDirectory: "Ordner hochladen",
221
+ loading: "Wird hochgeladen",
222
+ added: "{count} Datei hinzugef\xFCgt | {count} Dateien hinzugef\xFCgt",
223
+ rejected: "{count} Datei wurde nicht akzeptiert | {count} Dateien wurden nicht akzeptiert"
224
+ },
225
+ filterPills: {
226
+ label: "Filter",
227
+ remove: "{label} entfernen"
228
+ },
229
+ tabs: {
230
+ dot: "Erfordert Aufmerksamkeit"
231
+ },
232
+ listPage: {
233
+ toolbar: "Ergebnisse filtern",
234
+ emptyTitle: "Noch nichts vorhanden",
235
+ noResultsDescription: "Versuche eine andere Suche oder entferne die Filter.",
236
+ clearFilters: "Filter entfernen",
237
+ results: "Keine Ergebnisse | {count} Ergebnis | {count} Ergebnisse"
238
+ },
239
+ numberInput: {
240
+ increase: "Erh\xF6hen",
241
+ decrease: "Verringern"
242
+ },
243
+ pagination: {
244
+ label: "Seitennavigation",
245
+ page: "Seite {page}",
246
+ previous: "Vorherige Seite",
247
+ next: "N\xE4chste Seite",
248
+ pageSize: "Zeilen pro Seite",
249
+ of: "von",
250
+ first: "Erste Seite",
251
+ last: "Letzte Seite",
252
+ jump: "Gehe zu Seite"
253
+ },
254
+ passwordInput: {
255
+ show: "Passwort anzeigen",
256
+ hide: "Passwort verbergen",
257
+ generate: "Passwort generieren",
258
+ copy: "Passwort kopieren",
259
+ strength: "Passwortst\xE4rke"
260
+ },
261
+ passwordStrength: {
262
+ tooShort: "Zu kurz",
263
+ weak: "Schwach",
264
+ fair: "Ausreichend",
265
+ good: "Gut",
266
+ strong: "Stark"
267
+ },
268
+ preset: {
269
+ default: "Standard",
270
+ defaultDescription: "Geist, Indigo-Akzent",
271
+ suedtirolDescription: "Funnel, Waldgr\xFCn und Limette",
272
+ spotfishDescription: "Unbounded, Signalgelb"
273
+ },
274
+ progress: {
275
+ label: "Fortschritt"
276
+ },
277
+ prompt: {
278
+ title: "Wert eingeben"
279
+ },
280
+ saveBar: {
281
+ message: "Du hast ungespeicherte \xC4nderungen"
282
+ },
283
+ selectionBar: {
284
+ label: "Auswahl",
285
+ selectedOf: "{count} von {total} ausgew\xE4hlt",
286
+ selectAll: "Alle {count} ausw\xE4hlen",
287
+ clear: "Auswahl aufheben",
288
+ cleared: "Auswahl aufgehoben"
289
+ },
290
+ settings: {
291
+ title: "Einstellungen",
292
+ close: "Einstellungen schlie\xDFen",
293
+ sections: "Einstellungsbereiche",
294
+ signOut: "Abmelden",
295
+ session: "Sitzung",
296
+ sessionDescription: "Auf diesem Ger\xE4t abmelden.",
297
+ accountDescription: "Dein Profil und deine Sitzung.",
298
+ appearance: "Darstellung",
299
+ appearanceDescription: "Design und Stil der Oberfl\xE4che."
300
+ },
301
+ shell: {
302
+ sidebar: "Seitenleiste",
303
+ openNavigation: "Navigation \xF6ffnen",
304
+ skipToContent: "Zum Inhalt springen",
305
+ main: "Hauptnavigation",
306
+ closeNavigation: "Navigation schlie\xDFen",
307
+ navigation: "Navigation"
308
+ },
309
+ stat: {
310
+ increased: "Gestiegen um",
311
+ decreased: "Gesunken um",
312
+ favorable: "positiv",
313
+ unfavorable: "negativ"
314
+ },
315
+ table: {
316
+ selectAll: "Alle Zeilen ausw\xE4hlen",
317
+ loading: "Zeilen werden geladen",
318
+ selectRow: "Zeile {index} ausw\xE4hlen",
319
+ label: "Tabelle",
320
+ sortedBy: "Sortiert nach {column}, {direction}",
321
+ ascending: "aufsteigend",
322
+ descending: "absteigend",
323
+ sortCleared: "Sortierung entfernt"
324
+ },
325
+ theme: {
326
+ label: "Design",
327
+ system: "System",
328
+ light: "Hell",
329
+ dark: "Dunkel"
330
+ },
331
+ toaster: {
332
+ label: "Benachrichtigungen",
333
+ dismiss: "Benachrichtigung schlie\xDFen",
334
+ actionHint: "{hotkey} dr\xFCcken, um {action} zu erreichen"
335
+ },
336
+ tree: {
337
+ label: "Baum",
338
+ empty: "Keine Eintr\xE4ge",
339
+ reorderHint: "Alt mit Pfeil nach oben oder unten dr\xFCcken, um zu verschieben",
340
+ reorderNestedHint: "Alt mit den Pfeiltasten dr\xFCcken, um zu verschieben: oben und unten \xE4ndern die Position, links und rechts die Ebene",
341
+ moved: "{label} an Position {position} von {count} verschoben",
342
+ movedInto: "{label} nach {parent} verschoben, Position {position} von {count}",
343
+ moveUp: "{label} nach oben verschieben",
344
+ moveDown: "{label} nach unten verschieben",
345
+ indent: "{label} einr\xFCcken",
346
+ outdent: "{label} ausr\xFCcken"
347
+ },
348
+ meter: {
349
+ label: "Messanzeige",
350
+ valueText: "{value}, {state}",
351
+ good: "gut",
352
+ fair: "mittel",
353
+ poor: "schlecht"
354
+ },
355
+ tone: {
356
+ danger: "Fehler",
357
+ warning: "Warnung",
358
+ info: "Information",
359
+ success: "Erfolg"
360
+ }
361
+ }
362
+ };
@@ -46,6 +46,7 @@ export const en = {
46
46
  bold: "Bold",
47
47
  italic: "Italic",
48
48
  strike: "Strikethrough",
49
+ underline: "Underline",
49
50
  code: "Inline code",
50
51
  heading: "Heading {level}",
51
52
  bulletList: "Bullet list",
@@ -222,7 +223,11 @@ export const en = {
222
223
  rejected: "{count} file was not accepted | {count} files were not accepted"
223
224
  },
224
225
  filterPills: {
225
- label: "Filters"
226
+ label: "Filters",
227
+ remove: "Remove {label}"
228
+ },
229
+ tabs: {
230
+ dot: "Needs attention"
226
231
  },
227
232
  listPage: {
228
233
  toolbar: "Filter results",
@@ -241,7 +246,10 @@ export const en = {
241
246
  previous: "Previous page",
242
247
  next: "Next page",
243
248
  pageSize: "Rows per page",
244
- of: "of"
249
+ of: "of",
250
+ first: "First page",
251
+ last: "Last page",
252
+ jump: "Go to page"
245
253
  },
246
254
  passwordInput: {
247
255
  show: "Show password",
@@ -1,7 +1,8 @@
1
+ import { de } from './de';
1
2
  import { en } from './en';
2
3
  import { it } from './it';
3
4
  import type { DeepPartial, KLocale, KMessages, MessageKey, MessageParams } from './types';
4
- export { en, it };
5
+ export { de, en, it };
5
6
  export type * from './types';
6
7
  export declare const builtinLocales: Readonly<Record<string, KLocale>>;
7
8
  export interface DefineLocaleOptions {
@@ -1,9 +1,10 @@
1
1
  import { pluralRules } from "../internal/core/intl.mjs";
2
2
  import { formatMessage } from "../internal/core/text.mjs";
3
+ import { de } from "./de.mjs";
3
4
  import { en } from "./en.mjs";
4
5
  import { it } from "./it.mjs";
5
- export { en, it };
6
- export const builtinLocales = { en, it };
6
+ export { de, en, it };
7
+ export const builtinLocales = { de, en, it };
7
8
  function mergeMessages(base, overrides) {
8
9
  if (!overrides) return base;
9
10
  const merged = { ...base };