@xleddyl/443-components-vue 0.8.1 → 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 (147) hide show
  1. package/README.md +34 -1
  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 +60 -8
  61. package/dist/grid/DataGrid.vue.d.ts +9 -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 +4 -4
  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 +1 -1
  73. package/dist/index.mjs +1 -0
  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.mjs +10 -2
  82. package/dist/locale/en.mjs +10 -2
  83. package/dist/locale/it.mjs +10 -2
  84. package/dist/locale/types.d.ts +8 -0
  85. package/dist/nuxt/runtime/layouts/dashboard.vue +1 -0
  86. package/dist/styles/base.css +2 -1
  87. package/dist/styles/core/button.css +42 -16
  88. package/dist/styles/core/form-field.css +1 -1
  89. package/dist/styles/core/input.css +2 -2
  90. package/dist/styles/core/kbd.css +1 -1
  91. package/dist/styles/data/avatar.css +1 -1
  92. package/dist/styles/data/badge.css +39 -23
  93. package/dist/styles/data/description-list.css +2 -2
  94. package/dist/styles/data/filter-pills.css +24 -3
  95. package/dist/styles/data/pagination.css +26 -3
  96. package/dist/styles/data/selection-bar.css +1 -1
  97. package/dist/styles/data/stat.css +4 -4
  98. package/dist/styles/data/table.css +4 -4
  99. package/dist/styles/data/tag.css +1 -1
  100. package/dist/styles/data/timeline.css +1 -1
  101. package/dist/styles/data/tree.css +2 -2
  102. package/dist/styles/feedback/empty-state.css +1 -1
  103. package/dist/styles/feedback/loading-host.css +1 -1
  104. package/dist/styles/feedback/loading-overlay.css +1 -1
  105. package/dist/styles/feedback/meter.css +1 -1
  106. package/dist/styles/feedback/progress.css +2 -2
  107. package/dist/styles/forced-colors.css +6 -1
  108. package/dist/styles/forms/calendar.css +30 -3
  109. package/dist/styles/forms/checkbox.css +1 -1
  110. package/dist/styles/forms/choice.css +1 -1
  111. package/dist/styles/forms/combobox.css +2 -2
  112. package/dist/styles/forms/file-input.css +1 -1
  113. package/dist/styles/forms/password-input.css +1 -1
  114. package/dist/styles/forms/pin-input.css +1 -1
  115. package/dist/styles/forms/radio.css +1 -1
  116. package/dist/styles/forms/segmented.css +2 -2
  117. package/dist/styles/forms/select.css +2 -2
  118. package/dist/styles/forms/slider.css +1 -1
  119. package/dist/styles/forms/switch.css +4 -4
  120. package/dist/styles/layout/accordion.css +2 -2
  121. package/dist/styles/layout/app-shell.css +18 -6
  122. package/dist/styles/layout/breadcrumbs.css +3 -3
  123. package/dist/styles/layout/card.css +1 -1
  124. package/dist/styles/layout/nav-link.css +1 -1
  125. package/dist/styles/layout/page-header.css +21 -1
  126. package/dist/styles/layout/separator.css +21 -1
  127. package/dist/styles/layout/sidebar.css +1 -1
  128. package/dist/styles/layout/tabs.css +30 -1
  129. package/dist/styles/layout/theme-switch.css +1 -1
  130. package/dist/styles/overlays/command.css +3 -3
  131. package/dist/styles/overlays/drawer.css +4 -3
  132. package/dist/styles/overlays/floating.css +2 -2
  133. package/dist/styles/overlays/menu.css +5 -1
  134. package/dist/styles/overlays/modal.css +12 -9
  135. package/dist/styles/overlays/toast.css +3 -3
  136. package/dist/styles/overlays/tooltip.css +26 -8
  137. package/dist/styles/shared.css +2 -2
  138. package/dist/styles/templates/account-menu.css +1 -1
  139. package/dist/styles/templates/auth-layout.css +4 -4
  140. package/dist/styles/templates/brand.css +2 -2
  141. package/dist/styles/templates/dashboard-page.css +1 -1
  142. package/dist/styles/templates/empty-page.css +3 -3
  143. package/dist/styles/templates/error-page.css +1 -1
  144. package/dist/styles/templates/save-bar.css +1 -1
  145. package/dist/styles/templates/settings-modal.css +6 -6
  146. package/dist/styles/utilities.css +3 -3
  147. package/package.json +1 -1
@@ -1,7 +1,12 @@
1
1
  <template>
2
2
  <div
3
3
  class="k-calendar"
4
- :class="{ 'is-range': range, 'is-disabled': disabled, 'is-readonly': readonly }"
4
+ :class="{
5
+ 'is-range': range,
6
+ 'is-disabled': disabled,
7
+ 'is-readonly': readonly,
8
+ 'has-day-text': Boolean(dayText || $slots.day)
9
+ }"
5
10
  >
6
11
  <div class="k-calendar-header">
7
12
  <button
@@ -77,7 +82,22 @@
77
82
  @mouseenter="hoverDate = day.iso"
78
83
  @focus="focusedDate = day.iso"
79
84
  >
80
- <span class="k-calendar-day-number">{{ day.number }}</span>
85
+ <span class="k-calendar-day-number">
86
+ <slot
87
+ name="day"
88
+ :date="day.iso"
89
+ :number="day.number"
90
+ :text="day.text"
91
+ :selected="day.selected"
92
+ :unavailable="day.unavailable"
93
+ :in-month="day.inMonth"
94
+ >
95
+ {{ day.number }}
96
+ <span v-if="day.text" class="k-calendar-day-text" aria-hidden="true">{{
97
+ day.text
98
+ }}</span>
99
+ </slot>
100
+ </span>
81
101
  </td>
82
102
  </tr>
83
103
  </tbody>
@@ -118,7 +138,8 @@ const props = defineProps({
118
138
  nextLabel: { type: String, required: false },
119
139
  disabled: { type: Boolean, required: false },
120
140
  readonly: { type: Boolean, required: false },
121
- level: { type: Number, required: false, default: 2 }
141
+ level: { type: Number, required: false, default: 2 },
142
+ dayText: { type: Function, required: false }
122
143
  });
123
144
  const { locale: appLocale, t } = useLocale();
124
145
  const resolvedLocale = computed(() => props.locale ?? appLocale.value.code);
@@ -176,10 +197,12 @@ function dayLabel(iso, start, end) {
176
197
  month: "long",
177
198
  day: "numeric"
178
199
  });
179
- if (!props.range || !start) return label;
180
- if (iso === start) return `${label}, ${t("calendar.rangeStart")}`;
181
- if (iso === end) return `${label}, ${t("calendar.rangeEnd")}`;
182
- return label;
200
+ const extra = props.dayText?.(iso);
201
+ const described = extra ? `${label}, ${extra}` : label;
202
+ if (!props.range || !start) return described;
203
+ if (iso === start) return `${described}, ${t("calendar.rangeStart")}`;
204
+ if (iso === end) return `${described}, ${t("calendar.rangeEnd")}`;
205
+ return described;
183
206
  }
184
207
  const weeks = computed(() => {
185
208
  const currentMonth = monthKey(focusedDate.value);
@@ -195,6 +218,7 @@ const weeks = computed(() => {
195
218
  iso,
196
219
  inMonth,
197
220
  number: Number(iso.slice(8)),
221
+ text: props.dayText?.(iso),
198
222
  label: dayLabel(iso, start, end),
199
223
  unavailable: isUnavailable(iso),
200
224
  selected: selected || Boolean(props.range && start && end && iso > start && iso < end),
@@ -1,7 +1,16 @@
1
1
  import type { CalendarDateDisabled, CalendarRange } from './types';
2
- declare var __VLS_25: {};
2
+ declare var __VLS_25: {
3
+ date: string;
4
+ number: number;
5
+ text: string | undefined;
6
+ selected: boolean;
7
+ unavailable: boolean;
8
+ inMonth: boolean;
9
+ }, __VLS_27: {};
3
10
  type __VLS_Slots = {} & {
4
- footer?: (props: typeof __VLS_25) => any;
11
+ day?: (props: typeof __VLS_25) => any;
12
+ } & {
13
+ footer?: (props: typeof __VLS_27) => any;
5
14
  };
6
15
  declare const __VLS_base: import("vue").DefineComponent<{
7
16
  range?: boolean;
@@ -15,6 +24,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
15
24
  disabled?: boolean;
16
25
  readonly?: boolean;
17
26
  level?: 1 | 2 | 3 | 4 | 5 | 6;
27
+ dayText?: (iso: string) => string | undefined;
18
28
  modelValue?: string | CalendarRange | null | undefined;
19
29
  month?: string | undefined;
20
30
  key?: PropertyKey | undefined;
@@ -227,6 +237,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
227
237
  disabled?: boolean;
228
238
  readonly?: boolean;
229
239
  level?: 1 | 2 | 3 | 4 | 5 | 6;
240
+ dayText?: (iso: string) => string | undefined;
230
241
  modelValue?: string | CalendarRange | null | undefined;
231
242
  month?: string | undefined;
232
243
  key?: PropertyKey | undefined;
@@ -476,10 +476,10 @@ declare const __VLS_export: import("vue").DefineComponent<{
476
476
  }> & Readonly<{
477
477
  "onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
478
478
  }>, {
479
+ size: FieldSize;
479
480
  invalid: boolean;
480
481
  swatches: ColorSwatch[];
481
482
  placeholder: string;
482
- size: FieldSize;
483
483
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
484
484
  declare const _default: typeof __VLS_export;
485
485
  export default _default;
@@ -490,9 +490,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
490
490
  }> & Readonly<{
491
491
  "onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
492
492
  }>, {
493
- invalid: boolean;
494
493
  size: FieldSize;
495
- type: "date" | "datetime-local" | "month" | "week";
494
+ invalid: boolean;
495
+ type: "month" | "week" | "date" | "datetime-local";
496
496
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
497
497
  declare const _default: typeof __VLS_export;
498
498
  export default _default;
@@ -462,8 +462,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
462
462
  }> & Readonly<{
463
463
  "onUpdate:modelValue"?: ((value: string | CalendarRange | null | undefined) => any) | undefined;
464
464
  }>, {
465
- invalid: boolean;
466
465
  size: FieldSize;
466
+ invalid: boolean;
467
467
  format: Intl.DateTimeFormatOptions;
468
468
  closeOnSelect: boolean;
469
469
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -497,9 +497,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
497
497
  onReject?: ((events: FileInvalidEvent[], detail: FileAddDetail) => any) | undefined;
498
498
  }>, {
499
499
  icon: IconName;
500
+ size: FieldSize;
500
501
  invalid: boolean;
501
502
  list: boolean;
502
- size: FieldSize;
503
503
  acceptMode: FileInputAcceptMode;
504
504
  previews: boolean;
505
505
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -486,8 +486,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
486
486
  }> & Readonly<{
487
487
  "onUpdate:modelValue"?: ((value: number | null | undefined) => any) | undefined;
488
488
  }>, {
489
- invalid: boolean;
490
489
  size: FieldSize;
490
+ invalid: boolean;
491
491
  step: number;
492
492
  align: "end" | "start";
493
493
  stepper: boolean;
@@ -517,9 +517,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
517
517
  onGenerate?: ((password: string) => any) | undefined;
518
518
  "onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
519
519
  }>, {
520
+ size: FieldSize;
520
521
  minLength: number;
521
522
  invalid: boolean;
522
- size: FieldSize;
523
523
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
524
524
  declare const _default: typeof __VLS_export;
525
525
  export default _default;
@@ -488,8 +488,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
488
488
  onComplete?: ((value: string) => any) | undefined;
489
489
  }>, {
490
490
  length: number;
491
- invalid: boolean;
492
491
  size: FieldSize;
492
+ invalid: boolean;
493
493
  mode: PinInputMode;
494
494
  autocomplete: string;
495
495
  maskChar: string;
@@ -1,7 +1,7 @@
1
1
  import type { IconName } from '../../composables/useIcons';
2
2
  import type { FieldSize } from '../core/types';
3
3
  import type { SelectOption, SelectOptionGroup } from './types';
4
- declare const __VLS_export: <T extends string | number>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ declare const __VLS_export: <T extends string | number | boolean>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
5
  props: import("vue").PublicProps & __VLS_PrettifyLocal<({
6
6
  options?: (SelectOption<T> | SelectOptionGroup<T>)[];
7
7
  placeholder?: string;
@@ -476,10 +476,10 @@ declare const __VLS_export: import("vue").DefineComponent<{
476
476
  onChange?: ((value: number) => any) | undefined;
477
477
  "onUpdate:modelValue"?: ((value: number | null | undefined) => any) | undefined;
478
478
  }>, {
479
+ size: FieldSize;
479
480
  min: number;
480
481
  max: number;
481
482
  invalid: boolean;
482
- size: FieldSize;
483
483
  format: (value: number) => string;
484
484
  step: number;
485
485
  bubble: SliderBubble;
@@ -448,8 +448,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
448
448
  }> & Readonly<{
449
449
  "onUpdate:modelValue"?: ((value: boolean | null | undefined) => any) | undefined;
450
450
  }>, {
451
- invalid: boolean;
452
451
  size: FieldSize;
452
+ invalid: boolean;
453
453
  labelPosition: "end" | "start";
454
454
  nativeValue: string;
455
455
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -492,8 +492,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
492
492
  }> & Readonly<{
493
493
  "onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
494
494
  }>, {
495
- invalid: boolean;
496
495
  size: FieldSize;
496
+ invalid: boolean;
497
497
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
498
498
  declare const _default: typeof __VLS_export;
499
499
  export default _default;
@@ -7,7 +7,8 @@
7
7
  'is-collapsed': collapsed,
8
8
  'is-nav-open': open,
9
9
  'is-mobile': mobile,
10
- 'is-named': viewTransition
10
+ 'is-named': viewTransition,
11
+ 'is-fill': fill
11
12
  }"
12
13
  @keydown.esc="onEscape"
13
14
  >
@@ -61,7 +62,7 @@
61
62
  <slot name="topbar" :open-nav="openNav" :mobile="mobile" :collapsed="collapsed" />
62
63
  </header>
63
64
  <main :id="mainId" class="k-shell-main" tabindex="-1">
64
- <div class="k-shell-content" :class="{ 'is-fluid': fluid }">
65
+ <div class="k-shell-content" :class="{ 'is-fluid': fluid, 'is-fill': fill }">
65
66
  <slot />
66
67
  </div>
67
68
  </main>
@@ -96,6 +97,7 @@ const props = defineProps({
96
97
  closeLabel: { type: String, required: false },
97
98
  skipLabel: { type: String, required: false },
98
99
  fluid: { type: Boolean, required: false },
100
+ fill: { type: Boolean, required: false },
99
101
  topbar: { type: Boolean, required: false, default: void 0 },
100
102
  storageKey: { type: [String, Boolean], required: false },
101
103
  shortcut: { type: [String, Boolean], required: false, default: false },
@@ -32,6 +32,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
32
32
  closeLabel?: string;
33
33
  skipLabel?: string;
34
34
  fluid?: boolean;
35
+ fill?: boolean;
35
36
  topbar?: boolean;
36
37
  storageKey?: string | false;
37
38
  shortcut?: string | false;
@@ -245,6 +246,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
245
246
  closeLabel?: string;
246
247
  skipLabel?: string;
247
248
  fluid?: boolean;
249
+ fill?: boolean;
248
250
  topbar?: boolean;
249
251
  storageKey?: string | false;
250
252
  shortcut?: string | false;
@@ -406,8 +406,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
406
406
  }> & Readonly<{
407
407
  onCopy?: ((success: boolean) => any) | undefined;
408
408
  }>, {
409
- tone: Tone;
410
409
  size: ButtonSize;
410
+ tone: Tone;
411
411
  variant: ButtonVariant;
412
412
  resetAfter: number;
413
413
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,5 +1,11 @@
1
1
  <template>
2
- <div class="k-page-header" :class="{ 'is-bordered': bordered }">
2
+ <div
3
+ class="k-page-header"
4
+ :class="[
5
+ `k-page-header-align-${align}`,
6
+ { 'is-bordered': bordered, 'is-truncated': truncate }
7
+ ]"
8
+ >
3
9
  <div class="k-page-header-heading">
4
10
  <slot name="breadcrumbs">
5
11
  <Breadcrumbs
@@ -18,7 +24,11 @@
18
24
  </span>
19
25
  <div class="k-page-header-text">
20
26
  <div class="k-page-header-title-line">
21
- <component :is="`h${level}`" class="k-page-header-title">
27
+ <component
28
+ :is="`h${level}`"
29
+ class="k-page-header-title"
30
+ :title="truncate ? title : void 0"
31
+ >
22
32
  <slot name="title">{{ title }}</slot>
23
33
  </component>
24
34
  <slot name="badge" />
@@ -48,6 +58,8 @@ defineProps({
48
58
  breadcrumbs: { type: Array, required: false },
49
59
  breadcrumbsAncestors: { type: Boolean, required: false },
50
60
  level: { type: Number, required: false, default: 1 },
51
- bordered: { type: Boolean, required: false }
61
+ bordered: { type: Boolean, required: false },
62
+ align: { type: String, required: false, default: "end" },
63
+ truncate: { type: Boolean, required: false }
52
64
  });
53
65
  </script>
@@ -30,6 +30,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
30
30
  breadcrumbsAncestors?: boolean;
31
31
  level?: HeadingLevel;
32
32
  bordered?: boolean;
33
+ align?: "start" | "center" | "end";
34
+ truncate?: boolean;
33
35
  innerHTML?: string | undefined | undefined;
34
36
  class?: import("vue").ClassValue;
35
37
  style?: import("vue").StyleValue;
@@ -229,6 +231,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
229
231
  breadcrumbsAncestors?: boolean;
230
232
  level?: HeadingLevel;
231
233
  bordered?: boolean;
234
+ align?: "start" | "center" | "end";
235
+ truncate?: boolean;
232
236
  innerHTML?: string | undefined | undefined;
233
237
  class?: import("vue").ClassValue;
234
238
  style?: import("vue").StyleValue;
@@ -421,6 +425,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
421
425
  ref_for?: boolean | undefined | undefined;
422
426
  ref_key?: string | undefined | undefined;
423
427
  }> & Readonly<{}>, {
428
+ align: "center" | "end" | "start";
424
429
  level: HeadingLevel;
425
430
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
426
431
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,12 +1,20 @@
1
1
  <template>
2
2
  <div
3
3
  class="k-separator"
4
- :class="[`k-separator-${orientation}`, { 'has-label': Boolean(label || $slots.default) }]"
4
+ :class="[`k-separator-${orientation}`, { 'has-label': hasContent }]"
5
5
  :role="plain ? 'none' : 'separator'"
6
6
  :aria-orientation="!plain && orientation === 'vertical' ? 'vertical' : void 0"
7
7
  >
8
- <span v-if="label || $slots.default" class="k-separator-label">
9
- <slot>{{ label }}</slot>
8
+ <span v-if="hasText" class="k-separator-text">
9
+ <span v-if="label || $slots.default" class="k-separator-label">
10
+ <slot>{{ label }}</slot>
11
+ </span>
12
+ <span v-if="description || $slots.description" class="k-separator-description">
13
+ <slot name="description">{{ description }}</slot>
14
+ </span>
15
+ </span>
16
+ <span v-if="$slots.actions" class="k-separator-actions">
17
+ <slot name="actions" />
10
18
  </span>
11
19
  </div>
12
20
  </template>
@@ -16,8 +24,13 @@ import { computed, useSlots } from "vue";
16
24
  const props = defineProps({
17
25
  orientation: { type: String, required: false, default: "horizontal" },
18
26
  label: { type: String, required: false },
27
+ description: { type: String, required: false },
19
28
  decorative: { type: Boolean, required: false }
20
29
  });
21
30
  const slots = useSlots();
22
- const plain = computed(() => props.decorative || Boolean(props.label || slots.default));
31
+ const hasText = computed(
32
+ () => Boolean(props.label || slots.default || props.description || slots.description)
33
+ );
34
+ const hasContent = computed(() => Boolean(hasText.value || slots.actions));
35
+ const plain = computed(() => props.decorative || hasContent.value);
23
36
  </script>
@@ -1,10 +1,15 @@
1
- declare var __VLS_1: {};
1
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
2
2
  type __VLS_Slots = {} & {
3
3
  default?: (props: typeof __VLS_1) => any;
4
+ } & {
5
+ description?: (props: typeof __VLS_3) => any;
6
+ } & {
7
+ actions?: (props: typeof __VLS_5) => any;
4
8
  };
5
9
  declare const __VLS_base: import("vue").DefineComponent<{
6
10
  orientation?: "horizontal" | "vertical";
7
11
  label?: string;
12
+ description?: string;
8
13
  decorative?: boolean;
9
14
  innerHTML?: string | undefined | undefined;
10
15
  class?: import("vue").ClassValue;
@@ -201,6 +206,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
201
206
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
202
207
  orientation?: "horizontal" | "vertical";
203
208
  label?: string;
209
+ description?: string;
204
210
  decorative?: boolean;
205
211
  innerHTML?: string | undefined | undefined;
206
212
  class?: import("vue").ClassValue;
@@ -41,6 +41,14 @@
41
41
  >
42
42
  <span v-if="item.badgeLabel" class="k-visually-hidden">{{ item.badgeLabel }}</span>
43
43
  </template>
44
+ <template v-if="item.dot">
45
+ <span
46
+ class="k-tab-dot"
47
+ :class="`k-tab-dot-${item.dotTone ?? 'danger'}`"
48
+ aria-hidden="true"
49
+ />
50
+ <span class="k-visually-hidden">{{ item.dotLabel ?? t("tabs.dot") }}</span>
51
+ </template>
44
52
  </button>
45
53
  <span class="k-tabs-indicator" aria-hidden="true" />
46
54
  </div>
@@ -76,6 +84,7 @@
76
84
  import { computed, nextTick, onMounted, ref, useId, useTemplateRef, warn, watch } from "vue";
77
85
  import { useResizeObserver } from "../../internal/core/resize";
78
86
  import Icon from "../core/Icon.vue";
87
+ import { useLocale } from "../../composables/useLocale";
79
88
  import { rovingIndex } from "../../internal/core/roving";
80
89
  const props = defineProps({
81
90
  items: { type: Array, required: true },
@@ -89,6 +98,7 @@ const props = defineProps({
89
98
  inset: { type: Boolean, required: false },
90
99
  panelFocusable: { type: Boolean, required: false, default: true }
91
100
  });
101
+ const { t } = useLocale();
92
102
  const slots = defineSlots();
93
103
  const model = defineModel({ type: [String, Number] });
94
104
  const baseId = useId();
@@ -27,6 +27,9 @@ export interface TabItem {
27
27
  badge?: string | number;
28
28
  badgeTone?: Tone;
29
29
  badgeLabel?: string;
30
+ dot?: boolean;
31
+ dotTone?: Tone;
32
+ dotLabel?: string;
30
33
  disabled?: boolean;
31
34
  }
32
35
  export type TabsVariant = 'segmented' | 'underline';
@@ -21,11 +21,11 @@ declare const __VLS_base: import("vue").DefineComponent<{
21
21
  key?: PropertyKey | undefined;
22
22
  loading?: boolean;
23
23
  prefix?: "k-modal" | "k-drawer" | undefined;
24
+ size?: import("./types.ts").ModalSize;
24
25
  label?: string;
25
26
  style?: import("vue").StyleValue;
26
27
  results?: (string | number) | undefined;
27
28
  placeholder?: string | undefined;
28
- size?: import("./types.ts").ModalSize;
29
29
  dir?: string | undefined;
30
30
  class?: import("vue").ClassValue;
31
31
  role?: string | undefined;
@@ -129,6 +129,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
129
129
  color?: string | undefined;
130
130
  id?: string | undefined;
131
131
  lang?: string | undefined;
132
+ width?: string;
132
133
  tabindex?: (string | number) | undefined;
133
134
  'aria-activedescendant'?: string | undefined;
134
135
  'aria-atomic'?: (boolean | "true" | "false") | undefined;
@@ -228,6 +229,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
228
229
  hideClose?: boolean;
229
230
  beforeClose?: import("./types.ts").DialogBeforeClose;
230
231
  closedby?: import("../../index.ts").DialogClosedBy;
232
+ minHeight?: string;
231
233
  }, {
232
234
  confirm: typeof confirm;
233
235
  cancel: typeof cancel;
@@ -249,11 +251,11 @@ declare const __VLS_base: import("vue").DefineComponent<{
249
251
  key?: PropertyKey | undefined;
250
252
  loading?: boolean;
251
253
  prefix?: "k-modal" | "k-drawer" | undefined;
254
+ size?: import("./types.ts").ModalSize;
252
255
  label?: string;
253
256
  style?: import("vue").StyleValue;
254
257
  results?: (string | number) | undefined;
255
258
  placeholder?: string | undefined;
256
- size?: import("./types.ts").ModalSize;
257
259
  dir?: string | undefined;
258
260
  class?: import("vue").ClassValue;
259
261
  role?: string | undefined;
@@ -357,6 +359,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
357
359
  color?: string | undefined;
358
360
  id?: string | undefined;
359
361
  lang?: string | undefined;
362
+ width?: string;
360
363
  tabindex?: (string | number) | undefined;
361
364
  'aria-activedescendant'?: string | undefined;
362
365
  'aria-atomic'?: (boolean | "true" | "false") | undefined;
@@ -456,6 +459,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
456
459
  hideClose?: boolean;
457
460
  beforeClose?: import("./types.ts").DialogBeforeClose;
458
461
  closedby?: import("../../index.ts").DialogClosedBy;
462
+ minHeight?: string;
459
463
  }> & Readonly<{
460
464
  onCancel?: (() => any) | undefined;
461
465
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
@@ -11,11 +11,11 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
11
11
  readonly key?: PropertyKey | undefined;
12
12
  readonly loading?: boolean | undefined;
13
13
  readonly prefix?: "k-modal" | "k-drawer" | undefined;
14
+ readonly size?: import("./types.ts").ModalSize | undefined;
14
15
  readonly label?: string | undefined;
15
16
  readonly style?: import("vue").StyleValue;
16
17
  readonly results?: (string | number) | undefined;
17
18
  readonly placeholder?: string | undefined | undefined;
18
- readonly size?: import("./types.ts").ModalSize | undefined;
19
19
  readonly dir?: string | undefined | undefined;
20
20
  readonly class?: import("vue").ClassValue;
21
21
  readonly role?: string | undefined | undefined;
@@ -119,6 +119,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
119
119
  readonly color?: string | undefined | undefined;
120
120
  readonly id?: string | undefined | undefined;
121
121
  readonly lang?: string | undefined | undefined;
122
+ readonly width?: string | undefined;
122
123
  readonly tabindex?: (string | number) | undefined;
123
124
  readonly 'aria-activedescendant'?: string | undefined | undefined;
124
125
  readonly 'aria-atomic'?: (boolean | "true" | "false") | undefined;
@@ -218,6 +219,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
218
219
  readonly hideClose?: boolean | undefined;
219
220
  readonly beforeClose?: import("./types.ts").DialogBeforeClose | undefined;
220
221
  readonly closedby?: import("../../index.ts").DialogClosedBy | undefined;
222
+ readonly minHeight?: string | undefined;
221
223
  readonly onCancel?: (() => any) | undefined;
222
224
  readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
223
225
  readonly onAfterLeave?: (() => any) | undefined;
@@ -235,11 +237,11 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
235
237
  readonly key?: PropertyKey | undefined;
236
238
  readonly loading?: boolean | undefined;
237
239
  readonly prefix?: "k-modal" | "k-drawer" | undefined;
240
+ readonly size?: import("./types.ts").ModalSize | undefined;
238
241
  readonly label?: string | undefined;
239
242
  readonly style?: import("vue").StyleValue;
240
243
  readonly results?: (string | number) | undefined;
241
244
  readonly placeholder?: string | undefined | undefined;
242
- readonly size?: import("./types.ts").ModalSize | undefined;
243
245
  readonly dir?: string | undefined | undefined;
244
246
  readonly class?: import("vue").ClassValue;
245
247
  readonly role?: string | undefined | undefined;
@@ -343,6 +345,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
343
345
  readonly color?: string | undefined | undefined;
344
346
  readonly id?: string | undefined | undefined;
345
347
  readonly lang?: string | undefined | undefined;
348
+ readonly width?: string | undefined;
346
349
  readonly tabindex?: (string | number) | undefined;
347
350
  readonly 'aria-activedescendant'?: string | undefined | undefined;
348
351
  readonly 'aria-atomic'?: (boolean | "true" | "false") | undefined;
@@ -442,6 +445,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
442
445
  readonly hideClose?: boolean | undefined;
443
446
  readonly beforeClose?: import("./types.ts").DialogBeforeClose | undefined;
444
447
  readonly closedby?: import("../../index.ts").DialogClosedBy | undefined;
448
+ readonly minHeight?: string | undefined;
445
449
  readonly onCancel?: (() => any) | undefined;
446
450
  readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
447
451
  readonly onAfterLeave?: (() => any) | undefined;
@@ -213,6 +213,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
213
213
  level?: number;
214
214
  labelledby?: string;
215
215
  manualPositioning?: boolean;
216
+ matchWidth?: boolean;
216
217
  onOpenChange?: ((open: boolean) => any) | undefined;
217
218
  }, {
218
219
  openAt: (x: number, y: number) => void;
@@ -428,6 +429,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
428
429
  level?: number;
429
430
  labelledby?: string;
430
431
  manualPositioning?: boolean;
432
+ matchWidth?: boolean;
431
433
  onOpenChange?: ((open: boolean) => any) | undefined;
432
434
  }> & Readonly<{
433
435
  onSelect?: ((item: MenuItem, event: Event) => any) | undefined;
@@ -11,6 +11,8 @@
11
11
  :offset="offset"
12
12
  :label="label"
13
13
  :labelledby="label ? void 0 : triggerId"
14
+ :match-width="matchTriggerWidth"
15
+ :style="minWidth ? { minWidth } : void 0"
14
16
  @open-change="isOpen = $event"
15
17
  @select="(item, event) => emit('select', item, event)"
16
18
  />
@@ -27,7 +29,9 @@ const props = defineProps({
27
29
  items: { type: Array, required: true },
28
30
  placement: { type: null, required: false, default: "bottom-start" },
29
31
  offset: { type: Number, required: false, default: 6 },
30
- label: { type: String, required: false }
32
+ label: { type: String, required: false },
33
+ matchTriggerWidth: { type: Boolean, required: false },
34
+ minWidth: { type: String, required: false }
31
35
  });
32
36
  const emit = defineEmits(["select"]);
33
37
  const open = defineModel("open", { type: Boolean, ...{ default: false } });
@@ -10,6 +10,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
10
10
  placement?: OverlayPlacement;
11
11
  offset?: number;
12
12
  label?: string;
13
+ matchTriggerWidth?: boolean;
14
+ minWidth?: string;
13
15
  open?: boolean;
14
16
  key?: PropertyKey | undefined;
15
17
  prefix?: string | undefined;
@@ -212,6 +214,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
212
214
  level?: number;
213
215
  labelledby?: string;
214
216
  manualPositioning?: boolean;
217
+ matchWidth?: boolean;
215
218
  onOpenChange?: ((open: boolean) => any) | undefined;
216
219
  }, {
217
220
  show: () => void | undefined;
@@ -224,6 +227,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
224
227
  placement?: OverlayPlacement;
225
228
  offset?: number;
226
229
  label?: string;
230
+ matchTriggerWidth?: boolean;
231
+ minWidth?: string;
227
232
  open?: boolean;
228
233
  key?: PropertyKey | undefined;
229
234
  prefix?: string | undefined;
@@ -426,6 +431,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
426
431
  level?: number;
427
432
  labelledby?: string;
428
433
  manualPositioning?: boolean;
434
+ matchWidth?: boolean;
429
435
  onOpenChange?: ((open: boolean) => any) | undefined;
430
436
  }> & Readonly<{
431
437
  onSelect?: ((item: MenuItem, event: Event) => any) | undefined;