@robuust-digital/vue-components 2.4.0-beta.8 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +15 -0
  3. package/dist/_shared/{ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js → ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js} +2 -2
  4. package/dist/_shared/{ChevronDownIcon-CcE_K1lg.js → ChevronDownIcon-BYWciGnh.js} +1 -1
  5. package/dist/_shared/{Combobox.vue_vue_type_script_setup_true_lang-CxRv55TC.js → Combobox.vue_vue_type_script_setup_true_lang-BwTRzqr6.js} +3 -3
  6. package/dist/_shared/{Drawer.vue_vue_type_script_setup_true_lang-XMND_Yzl.js → Drawer.vue_vue_type_script_setup_true_lang-CZMVooMV.js} +4 -4
  7. package/dist/_shared/{Dropdown.vue_vue_type_script_setup_true_lang-BtkiBqxy.js → Dropdown.vue_vue_type_script_setup_true_lang-L_lQEUBC.js} +2 -2
  8. package/dist/_shared/{FormInput.vue_vue_type_script_setup_true_lang-C_1WSzbH.js → FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js} +9 -9
  9. package/dist/_shared/{Lightswitch.vue_vue_type_script_setup_true_lang-DX23lEFd.js → Lightswitch.vue_vue_type_script_setup_true_lang-hiuDVfo5.js} +7 -7
  10. package/dist/_shared/{Modal.vue_vue_type_script_setup_true_lang-2AljJgxw.js → Modal.vue_vue_type_script_setup_true_lang-CB0Gez7v.js} +5 -5
  11. package/dist/_shared/{RichTextEditor.vue_vue_type_script_setup_true_lang-BLs_S_-D.js → RichTextEditor.vue_vue_type_script_setup_true_lang-DaCv0Gii.js} +11 -11
  12. package/dist/_shared/{Tabs.vue_vue_type_script_setup_true_lang-DMUJ5Emt.js → Tabs.vue_vue_type_script_setup_true_lang-B0RIqYLz.js} +170 -144
  13. package/dist/_shared/{Toast.vue_vue_type_script_setup_true_lang-BfMkJm5T.js → Toast.vue_vue_type_script_setup_true_lang-DS6keeu7.js} +2 -2
  14. package/dist/_shared/{Tooltip.vue_vue_type_script_setup_true_lang-CKp1wzE2.js → Tooltip.vue_vue_type_script_setup_true_lang-B3MHy48T.js} +3 -3
  15. package/dist/_shared/{XMarkIcon-90mcPzBs.js → XMarkIcon-CPr_Rd8y.js} +2 -2
  16. package/dist/_shared/{icon-spinner-CP0VP_YM.js → icon-spinner-BYCMrTdL.js} +2 -2
  17. package/dist/combobox/index.js +1 -1
  18. package/dist/core/badge.css +4 -0
  19. package/dist/core/empty-state.css +4 -0
  20. package/dist/core/index.js +4 -4
  21. package/dist/core/pagination.css +10 -3
  22. package/dist/core/table.css +12 -1
  23. package/dist/core/tabs.css +6 -0
  24. package/dist/core.d.ts +26 -0
  25. package/dist/dialogs/index.js +2 -2
  26. package/dist/dropdown/index.js +1 -1
  27. package/dist/index/index.js +12 -12
  28. package/dist/index.d.ts +26 -0
  29. package/dist/lightswitch/index.js +1 -1
  30. package/dist/rich-text-editor/index.js +1 -1
  31. package/dist/toast/index.js +1 -1
  32. package/dist/tooltip/index.js +1 -1
  33. package/package.json +8 -4
@@ -1,6 +1,6 @@
1
- import { defineComponent as y, onMounted as h, watch as w, createBlock as n, openBlock as o, unref as c, withCtx as m, resolveDynamicComponent as u, normalizeClass as C, renderSlot as a, createElementVNode as $, createCommentVNode as l, createElementBlock as f, toDisplayString as k, createVNode as b } from "vue";
1
+ import { defineComponent as y, onMounted as h, watch as w, openBlock as o, createBlock as n, unref as c, withCtx as m, resolveDynamicComponent as u, normalizeClass as C, renderSlot as a, createCommentVNode as l, createElementVNode as $, createElementBlock as f, toDisplayString as k, createVNode as b } from "vue";
2
2
  import { TransitionRoot as B } from "@headlessui/vue";
3
- import { r as p } from "./XMarkIcon-90mcPzBs.js";
3
+ import { r as p } from "./XMarkIcon-CPr_Rd8y.js";
4
4
  const T = {
5
5
  key: 0,
6
6
  class: "rvc-toast-title"
@@ -1,4 +1,4 @@
1
- import { defineComponent as b, shallowRef as a, createElementBlock as p, openBlock as f, renderSlot as d, createElementVNode as u, normalizeStyle as x, normalizeClass as $, unref as w, createCommentVNode as R, mergeProps as k } from "vue";
1
+ import { defineComponent as b, shallowRef as a, openBlock as p, createElementBlock as f, renderSlot as d, createElementVNode as u, normalizeStyle as x, unref as w, normalizeClass as $, createCommentVNode as R, mergeProps as k } from "vue";
2
2
  import { useFloating as z, autoUpdate as S, autoPlacement as C, offset as W, shift as M, arrow as P, size as A } from "@floating-ui/vue";
3
3
  const B = ["innerHTML"], T = /* @__PURE__ */ b({
4
4
  __name: "Tooltip",
@@ -58,7 +58,7 @@ const B = ["innerHTML"], T = /* @__PURE__ */ b({
58
58
  }
59
59
  };
60
60
  };
61
- return (e, o) => (f(), p("div", {
61
+ return (e, o) => (p(), f("div", {
62
62
  ref_key: "wrapperRef",
63
63
  ref: s,
64
64
  class: "rvc-tooltip-wrapper"
@@ -76,7 +76,7 @@ const B = ["innerHTML"], T = /* @__PURE__ */ b({
76
76
  style: x(w(h))
77
77
  }, [
78
78
  d(e.$slots, "content", { content: t.content }, () => [
79
- t.content ? (f(), p("div", {
79
+ t.content ? (p(), f("div", {
80
80
  key: 0,
81
81
  innerHTML: t.content
82
82
  }, null, 8, B)) : R("", !0)
@@ -1,6 +1,6 @@
1
- import { createElementBlock as e, openBlock as r, createElementVNode as l } from "vue";
1
+ import { openBlock as e, createElementBlock as r, createElementVNode as l } from "vue";
2
2
  function n(o, t) {
3
- return r(), e("svg", {
3
+ return e(), r("svg", {
4
4
  xmlns: "http://www.w3.org/2000/svg",
5
5
  viewBox: "0 0 24 24",
6
6
  fill: "currentColor",
@@ -1,11 +1,11 @@
1
- import { createElementBlock as o, openBlock as t, createElementVNode as r } from "vue";
1
+ import { openBlock as o, createElementBlock as t, createElementVNode as r } from "vue";
2
2
  const n = {
3
3
  xmlns: "http://www.w3.org/2000/svg",
4
4
  fill: "none",
5
5
  viewBox: "0 0 24 24"
6
6
  };
7
7
  function l(c, e) {
8
- return t(), o("svg", n, [...e[0] || (e[0] = [
8
+ return o(), t("svg", n, [...e[0] || (e[0] = [
9
9
  r("circle", {
10
10
  cx: "12",
11
11
  cy: "12",
@@ -1,4 +1,4 @@
1
- import { _ as a } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-CxRv55TC.js";
1
+ import { _ as a } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-BwTRzqr6.js";
2
2
  export {
3
3
  a as Combobox,
4
4
  a as default
@@ -5,6 +5,9 @@
5
5
  --rvc-badge-padding-y: calc(var(--spacing) * 1.5);
6
6
  --rvc-badge-font-weight: var(--font-weight-medium);
7
7
  --rvc-badge-border-radius: calc(infinity * 1px);
8
+ --rvc-badge-border-width: 0;
9
+ --rvc-badge-border-style: solid;
10
+ --rvc-badge-border-color: transparent;
8
11
  --rvc-badge-font-size: var(--text-base);
9
12
  --rvc-badge-gap: calc(var(--spacing) * 1);
10
13
 
@@ -61,6 +64,7 @@
61
64
  height: var(--rvc-badge-height);
62
65
  padding-block: var(--rvc-badge-padding-y);
63
66
  padding-inline: var(--rvc-badge-padding-x);
67
+ border: var(--rvc-badge-border-width) var(--rvc-badge-border-style) var(--rvc-badge-border-color);
64
68
  border-radius: var(--rvc-badge-border-radius);
65
69
  background-color: var(--rvc-badge-bg-color);
66
70
  color: var(--rvc-badge-color);
@@ -1,5 +1,8 @@
1
1
  :root {
2
2
  --rvc-empty-state-border-radius: var(--rvc-base-border-radius);
3
+ --rvc-empty-state-border-width: 0;
4
+ --rvc-empty-state-border-style: solid;
5
+ --rvc-empty-state-border-color: transparent;
3
6
  --rvc-empty-state-color: var(--color-slate-700);
4
7
  --rvc-empty-state-bg-color: var(--color-slate-50);
5
8
  --rvc-empty-state-padding-x: calc(var(--spacing) * 12);
@@ -15,6 +18,7 @@
15
18
 
16
19
  @layer components {
17
20
  .rvc-empty-state {
21
+ border: var(--rvc-empty-state-border-width) var(--rvc-empty-state-border-style) var(--rvc-empty-state-border-color);
18
22
  color: var(--rvc-empty-state-color);
19
23
  font-size: var(--rvc-empty-state-font-size);
20
24
 
@@ -1,7 +1,7 @@
1
- import { _ as e, a as s, b as t, c as r, d as m, e as p, f as x, g as c, h as f, i } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-DMUJ5Emt.js";
2
- import { _ as b } from "../_shared/ChevronDownIcon-CcE_K1lg.js";
3
- import { _ } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js";
4
- import { _ as l } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-C_1WSzbH.js";
1
+ import { _ as e, a as s, b as t, c as r, d as m, e as p, f as x, g as c, h as f, i } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-B0RIqYLz.js";
2
+ import { _ as b } from "../_shared/ChevronDownIcon-BYWciGnh.js";
3
+ import { _ } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
+ import { _ as l } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js";
5
5
  export {
6
6
  e as Accordion,
7
7
  s as Alert,
@@ -9,9 +9,14 @@
9
9
  --rvc-pagination-color: var(--color-slate-600);
10
10
  --rvc-pagination-color-active: var(--color-slate-800);
11
11
  --rvc-pagination-bg-color: transparent;
12
+ --rvc-pagination-bg-color-active: var(--rvc-pagination-bg-color);
12
13
  --rvc-pagination-bg-color-hover: var(--color-slate-100);
14
+ --rvc-pagination-border-color: transparent;
15
+ --rvc-pagination-nav-gap-md: calc(var(--spacing) * 0.5);
16
+ --rvc-pagination-nav-gap-xl: calc(var(--spacing) * 1);
13
17
  --rvc-pagination-info-color: var(--color-slate-400);
14
18
  --rvc-pagination-info-font-size: var(--text-sm);
19
+ --rvc-pagination-icon-color: var(--color-slate-800);
15
20
  }
16
21
 
17
22
  @layer components {
@@ -36,6 +41,7 @@
36
41
  width: var(--rvc-pagination-size);
37
42
  height: var(--rvc-pagination-size);
38
43
  transition: color, background-color var(--rvc-pagination-transition-duration) var(--rvc-pagination-transition-timing-function);
44
+ border: 1px solid var(--rvc-pagination-border-color);
39
45
  border-radius: var(--rvc-pagination-border-radius);
40
46
  background-color: var(--rvc-pagination-bg-color);
41
47
  color: var(--rvc-pagination-color);
@@ -44,6 +50,7 @@
44
50
  text-align: center;
45
51
 
46
52
  &.rvc-pagination-button-active {
53
+ background-color: var(--rvc-pagination-bg-color-active);
47
54
  color: var(--rvc-pagination-color-active);
48
55
  font-weight: var(--rvc-pagination-font-weight-active);
49
56
  }
@@ -70,11 +77,11 @@
70
77
  justify-content: flex-end;
71
78
 
72
79
  @media (width >= theme(--breakpoint-md)) {
73
- gap: calc(var(--spacing) * 0.5);
80
+ gap: var(--rvc-pagination-nav-gap-md);
74
81
  }
75
82
 
76
83
  @media (width >= theme(--breakpoint-xl)) {
77
- gap: calc(var(--spacing) * 1);
84
+ gap: var(--rvc-pagination-nav-gap-xl);
78
85
  }
79
86
  }
80
87
 
@@ -97,7 +104,7 @@
97
104
  .rvc-pagination-button-icon {
98
105
  width: calc(var(--spacing) * 5);
99
106
  height: calc(var(--spacing) * 5);
100
- color: var(--color-slate-800);
107
+ color: var(--rvc-pagination-icon-color);
101
108
 
102
109
  &.rvc-pagination-button-icon-disabled {
103
110
  opacity: 0.5;
@@ -5,6 +5,7 @@
5
5
  --rvc-table-border-style: var(--rvc-base-border-style);
6
6
  --rvc-table-border-width: var(--rvc-base-border-width);
7
7
  --rvc-table-head-bg-color: var(--color-slate-200);
8
+ --rvc-table-head-color: inherit;
8
9
  --rvc-table-bg-color: var(--color-slate-50);
9
10
  --rvc-table-font-size: var(--text-sm);
10
11
  --rvc-table-head-font-size: var(--text-sm);
@@ -15,6 +16,9 @@
15
16
  --rvc-table-white-space: nowrap;
16
17
  --rvc-table-line-height: 1.1;
17
18
  --rvc-table-spinner-size: calc(var(--spacing) * 5);
19
+ --rvc-table-striped-cell-border-color: transparent;
20
+ --rvc-table-striped-cell-border-style: solid;
21
+ --rvc-table-striped-cell-border-width: 0;
18
22
  }
19
23
 
20
24
  @layer components {
@@ -39,6 +43,11 @@
39
43
 
40
44
  td {
41
45
  padding-inline: var(--rvc-table-padding-x);
46
+ border-bottom: var(--rvc-table-striped-cell-border-width) var(--rvc-table-striped-cell-border-style) var(--rvc-table-striped-cell-border-color);
47
+ }
48
+
49
+ tr:hover td {
50
+ background-color: var(--rvc-table-striped-row-bg-color-hover);
42
51
  }
43
52
  }
44
53
 
@@ -62,6 +71,7 @@
62
71
 
63
72
  th {
64
73
  padding-block: var(--rvc-table-padding-y);
74
+ color: var(--rvc-table-head-color);
65
75
  font-size: var(--rvc-table-head-font-size);
66
76
  font-weight: var(--rvc-table-head-font-weight);
67
77
  line-height: var(--rvc-table-line-height);
@@ -92,13 +102,14 @@
92
102
  display: flex;
93
103
  width: 100%;
94
104
  column-gap: calc(var(--spacing) * 1.5);
105
+ color: inherit;
95
106
 
96
107
  &:hover {
97
108
  text-decoration: underline;
98
109
  }
99
110
 
100
111
  &:hover .rvc-table-sort-icon-invisible {
101
- opacity: 0.3;
112
+ opacity: 0.5;
102
113
  }
103
114
  }
104
115
 
@@ -16,6 +16,10 @@
16
16
  --rvc-tabs-tab-active-border-color: var(--color-indigo-600);
17
17
  --rvc-tabs-tab-button-height: calc(var(--spacing) * 9);
18
18
  --rvc-tabs-tab-button-padding-x: calc(var(--spacing) * 3);
19
+ --rvc-tabs-tab-button-border-width: 0;
20
+ --rvc-tabs-tab-button-border-style: solid;
21
+ --rvc-tabs-tab-button-border-color: transparent;
22
+ --rvc-tabs-tab-button-border-color-active: var(--rvc-tabs-tab-button-border-color);
19
23
  --rvc-tabs-tab-active-button-bg-color: var(--color-indigo-100);
20
24
  }
21
25
 
@@ -43,10 +47,12 @@
43
47
  height: var(--rvc-tabs-tab-button-height);
44
48
  padding-bottom: 0;
45
49
  padding-inline: var(--rvc-tabs-tab-button-padding-x);
50
+ border: var(--rvc-tabs-tab-button-border-width) var(--rvc-tabs-tab-button-border-style) var(--rvc-tabs-tab-button-border-color);
46
51
  border-bottom: 0;
47
52
  border-radius: var(--rvc-tabs-tab-button-border-radius);
48
53
 
49
54
  &.rvc-tab-active {
55
+ border-color: var(--rvc-tabs-tab-button-border-color-active);
50
56
  background-color: var(--rvc-tabs-tab-active-button-bg-color);
51
57
  }
52
58
  }
package/dist/core.d.ts CHANGED
@@ -20,6 +20,8 @@ perPage: number;
20
20
  perPageLabel: string;
21
21
  perPageOptions: number[];
22
22
  fromLabel: string;
23
+ prevIcon: Icon | null;
24
+ nextIcon: Icon | null;
23
25
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
24
26
 
25
27
  declare const __VLS_component_11: DefineComponent<RadioProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
@@ -88,6 +90,12 @@ declare const __VLS_component_6: DefineComponent<DataTableProps, {}, {}, {}, {},
88
90
  }>, {
89
91
  spinning: boolean;
90
92
  pagination: DataTablePagination | null;
93
+ perPage: number;
94
+ perPageLabel: string;
95
+ perPageOptions: number[];
96
+ fromLabel: string;
97
+ prevIcon: Icon | null;
98
+ nextIcon: Icon | null;
91
99
  headers: DataTableHeader[];
92
100
  noResultsText: string;
93
101
  loadingText: string;
@@ -165,6 +173,16 @@ declare function __VLS_template_10(): {
165
173
  to: number;
166
174
  links: PaginationLink[];
167
175
  }): any;
176
+ prevIcon?(_: {
177
+ icon: Icon | null;
178
+ link: PaginationLink;
179
+ index: number;
180
+ }): any;
181
+ nextIcon?(_: {
182
+ icon: Icon | null;
183
+ link: PaginationLink;
184
+ index: number;
185
+ }): any;
168
186
  };
169
187
  refs: {};
170
188
  rootEl: any;
@@ -532,6 +550,12 @@ declare interface DataTableProps {
532
550
  striped?: boolean;
533
551
  spinning?: boolean;
534
552
  pagination?: DataTablePagination | null;
553
+ perPage?: number;
554
+ perPageLabel?: string;
555
+ perPageOptions?: number[];
556
+ fromLabel?: string;
557
+ prevIcon?: Icon | null;
558
+ nextIcon?: Icon | null;
535
559
  wrapperClass?: string;
536
560
  defaultSort?: DataTableSortBy | null;
537
561
  }
@@ -626,6 +650,8 @@ declare interface PaginationProps {
626
650
  perPageLabel?: string;
627
651
  perPageOptions?: number[];
628
652
  fromLabel?: string;
653
+ prevIcon?: Icon | null;
654
+ nextIcon?: Icon | null;
629
655
  }
630
656
 
631
657
  export declare const Radio: __VLS_WithTemplateSlots_11<typeof __VLS_component_11, __VLS_TemplateResult_11["slots"]>;
@@ -1,5 +1,5 @@
1
- import { _ as a } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-XMND_Yzl.js";
2
- import { _ as f } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-2AljJgxw.js";
1
+ import { _ as a } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-CZMVooMV.js";
2
+ import { _ as f } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-CB0Gez7v.js";
3
3
  export {
4
4
  a as Drawer,
5
5
  f as Modal
@@ -1,4 +1,4 @@
1
- import { _ as o } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-BtkiBqxy.js";
1
+ import { _ as o } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-L_lQEUBC.js";
2
2
  export {
3
3
  o as Dropdown,
4
4
  o as default
@@ -1,15 +1,15 @@
1
- import { _ as r, a as t, b as e, c as s, d as m, e as p, f as x, g as f, h as _, i } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-DMUJ5Emt.js";
2
- import { _ as d } from "../_shared/ChevronDownIcon-CcE_K1lg.js";
3
- import { _ as n } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js";
4
- import { _ as h } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-C_1WSzbH.js";
5
- import { _ as g } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-CxRv55TC.js";
6
- import { _ as B } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-XMND_Yzl.js";
7
- import { _ as F } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-2AljJgxw.js";
8
- import { _ as A } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-BtkiBqxy.js";
9
- import { _ as E } from "../_shared/Lightswitch.vue_vue_type_script_setup_true_lang-DX23lEFd.js";
10
- import { _ as S } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-BLs_S_-D.js";
11
- import { _ as y } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-BfMkJm5T.js";
12
- import { _ as L } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-CKp1wzE2.js";
1
+ import { _ as r, a as t, b as e, c as s, d as m, e as p, f as x, g as f, h as _, i } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-B0RIqYLz.js";
2
+ import { _ as d } from "../_shared/ChevronDownIcon-BYWciGnh.js";
3
+ import { _ as n } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
+ import { _ as h } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js";
5
+ import { _ as g } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-BwTRzqr6.js";
6
+ import { _ as B } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-CZMVooMV.js";
7
+ import { _ as F } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-CB0Gez7v.js";
8
+ import { _ as A } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-L_lQEUBC.js";
9
+ import { _ as E } from "../_shared/Lightswitch.vue_vue_type_script_setup_true_lang-hiuDVfo5.js";
10
+ import { _ as S } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-DaCv0Gii.js";
11
+ import { _ as y } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-DS6keeu7.js";
12
+ import { _ as L } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-B3MHy48T.js";
13
13
  export {
14
14
  r as Accordion,
15
15
  t as Alert,
package/dist/index.d.ts CHANGED
@@ -30,6 +30,8 @@ perPage: number;
30
30
  perPageLabel: string;
31
31
  perPageOptions: number[];
32
32
  fromLabel: string;
33
+ prevIcon: Icon | null;
34
+ nextIcon: Icon | null;
33
35
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
34
36
 
35
37
  declare const __VLS_component_11: DefineComponent<RadioProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
@@ -250,6 +252,12 @@ declare const __VLS_component_6: DefineComponent<DataTableProps, {}, {}, {}, {},
250
252
  }>, {
251
253
  spinning: boolean;
252
254
  pagination: DataTablePagination | null;
255
+ perPage: number;
256
+ perPageLabel: string;
257
+ perPageOptions: number[];
258
+ fromLabel: string;
259
+ prevIcon: Icon | null;
260
+ nextIcon: Icon | null;
253
261
  headers: DataTableHeader[];
254
262
  noResultsText: string;
255
263
  loadingText: string;
@@ -327,6 +335,16 @@ declare function __VLS_template_10(): {
327
335
  to: number;
328
336
  links: PaginationLink[];
329
337
  }): any;
338
+ prevIcon?(_: {
339
+ icon: Icon | null;
340
+ link: PaginationLink;
341
+ index: number;
342
+ }): any;
343
+ nextIcon?(_: {
344
+ icon: Icon | null;
345
+ link: PaginationLink;
346
+ index: number;
347
+ }): any;
330
348
  };
331
349
  refs: {};
332
350
  rootEl: any;
@@ -1103,6 +1121,12 @@ declare interface DataTableProps {
1103
1121
  striped?: boolean;
1104
1122
  spinning?: boolean;
1105
1123
  pagination?: DataTablePagination | null;
1124
+ perPage?: number;
1125
+ perPageLabel?: string;
1126
+ perPageOptions?: number[];
1127
+ fromLabel?: string;
1128
+ prevIcon?: Icon | null;
1129
+ nextIcon?: Icon | null;
1106
1130
  wrapperClass?: string;
1107
1131
  defaultSort?: DataTableSortBy | null;
1108
1132
  }
@@ -1254,6 +1278,8 @@ declare interface PaginationProps {
1254
1278
  perPageLabel?: string;
1255
1279
  perPageOptions?: number[];
1256
1280
  fromLabel?: string;
1281
+ prevIcon?: Icon | null;
1282
+ nextIcon?: Icon | null;
1257
1283
  }
1258
1284
 
1259
1285
  export declare const Radio: __VLS_WithTemplateSlots_11<typeof __VLS_component_11, __VLS_TemplateResult_11["slots"]>;
@@ -1,4 +1,4 @@
1
- import { _ as s } from "../_shared/Lightswitch.vue_vue_type_script_setup_true_lang-DX23lEFd.js";
1
+ import { _ as s } from "../_shared/Lightswitch.vue_vue_type_script_setup_true_lang-hiuDVfo5.js";
2
2
  export {
3
3
  s as Lightswitch,
4
4
  s as default
@@ -1,4 +1,4 @@
1
- import { _ as t } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-BLs_S_-D.js";
1
+ import { _ as t } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-DaCv0Gii.js";
2
2
  export {
3
3
  t as RichTextEditor,
4
4
  t as default
@@ -1,4 +1,4 @@
1
- import { _ as s } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-BfMkJm5T.js";
1
+ import { _ as s } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-DS6keeu7.js";
2
2
  export {
3
3
  s as Toast,
4
4
  s as default
@@ -1,4 +1,4 @@
1
- import { _ as o } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-CKp1wzE2.js";
1
+ import { _ as o } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-B3MHy48T.js";
2
2
  export {
3
3
  o as Tooltip,
4
4
  o as default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robuust-digital/vue-components",
3
- "version": "2.4.0-beta.8",
3
+ "version": "2.4.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -78,6 +78,8 @@
78
78
  "docs:dev": "vitepress dev docs --host",
79
79
  "docs:build": "vitepress build docs",
80
80
  "docs:preview": "vitepress preview docs",
81
+ "mcp:build-catalog": "node scripts/generate-mcp-catalog.mjs",
82
+ "mcp:serve": "node mcp/server.mjs",
81
83
  "test:unit": "vitest run",
82
84
  "lint": "eslint .",
83
85
  "lint:style": "stylelint 'src/**/*.{vue,css}'",
@@ -118,6 +120,7 @@
118
120
  }
119
121
  },
120
122
  "devDependencies": {
123
+ "@modelcontextprotocol/sdk": "^1.27.1",
121
124
  "@rushstack/eslint-patch": "^1.14.1",
122
125
  "@tailwindcss/postcss": "^4.1.17",
123
126
  "@tailwindcss/vite": "^4.1.17",
@@ -130,12 +133,12 @@
130
133
  "@vue/test-utils": "^2.4.6",
131
134
  "eslint": "^8.57.1",
132
135
  "eslint-plugin-vue": "^9.33.0",
133
- "jsdom": "^27.1.0",
136
+ "jsdom": "^28.1.0",
134
137
  "postcss": "^8.5.6",
135
138
  "postcss-html": "^1.8.0",
136
139
  "postcss-scss": "^4.0.9",
137
140
  "stylelint": "^17.0.0",
138
- "stylelint-config-property-sort-order-smacss": "^10.0.0",
141
+ "stylelint-config-property-sort-order-smacss": "^11.1.0",
139
142
  "stylelint-config-standard": "^40.0.0",
140
143
  "tailwindcss": "^4.1.17",
141
144
  "typescript": "^5.9.3",
@@ -145,7 +148,8 @@
145
148
  "vite-plugin-vue-devtools": "^8.0.3",
146
149
  "vite-svg-loader": "^5.1.0",
147
150
  "vitepress": "^2.0.0-alpha.12",
148
- "vitest": "^3.2.4"
151
+ "vitest": "^3.2.4",
152
+ "zod": "^4.3.6"
149
153
  },
150
154
  "packageManager": "yarn@4.12.0"
151
155
  }