@robuust-digital/vue-components 2.2.1 → 2.3.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 (31) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/_shared/{ButtonBase.vue_vue_type_script_setup_true_lang-DeflHqux.js → ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js} +23 -23
  3. package/dist/_shared/{ChevronDownIcon-DaaXfD3C.js → ChevronDownIcon-CcE_K1lg.js} +12 -12
  4. package/dist/_shared/Combobox.vue_vue_type_script_setup_true_lang-CxRv55TC.js +256 -0
  5. package/dist/_shared/{Drawer.vue_vue_type_script_setup_true_lang-CD5914Fk.js → Drawer.vue_vue_type_script_setup_true_lang-XMND_Yzl.js} +62 -62
  6. package/dist/_shared/Dropdown.vue_vue_type_script_setup_true_lang-BtkiBqxy.js +115 -0
  7. package/dist/_shared/FormInput.vue_vue_type_script_setup_true_lang-C_1WSzbH.js +74 -0
  8. package/dist/_shared/{Modal.vue_vue_type_script_setup_true_lang-CoHkAJj3.js → Modal.vue_vue_type_script_setup_true_lang-2AljJgxw.js} +68 -71
  9. package/dist/_shared/{RichTextEditor.vue_vue_type_script_setup_true_lang-CIVhqJtE.js → RichTextEditor.vue_vue_type_script_setup_true_lang-BLs_S_-D.js} +102 -133
  10. package/dist/_shared/Tabs.vue_vue_type_script_setup_true_lang-DMUJ5Emt.js +670 -0
  11. package/dist/_shared/Toast.vue_vue_type_script_setup_true_lang-BfMkJm5T.js +78 -0
  12. package/dist/_shared/Tooltip.vue_vue_type_script_setup_true_lang-CKp1wzE2.js +95 -0
  13. package/dist/combobox/index.js +1 -1
  14. package/dist/core/checkbox.css +10 -5
  15. package/dist/core/index.js +4 -4
  16. package/dist/core/radio.css +11 -6
  17. package/dist/core.d.ts +2 -2
  18. package/dist/dialogs/index.js +2 -2
  19. package/dist/dropdown/index.js +1 -1
  20. package/dist/index/index.js +11 -11
  21. package/dist/index.d.ts +2 -2
  22. package/dist/rich-text-editor/index.js +1 -1
  23. package/dist/toast/index.js +1 -1
  24. package/dist/tooltip/index.js +1 -1
  25. package/package.json +19 -19
  26. package/dist/_shared/Combobox.vue_vue_type_script_setup_true_lang-CP3x2DUA.js +0 -266
  27. package/dist/_shared/Dropdown.vue_vue_type_script_setup_true_lang-CmYj-7WQ.js +0 -115
  28. package/dist/_shared/FormInput.vue_vue_type_script_setup_true_lang-BhJpG-Fw.js +0 -75
  29. package/dist/_shared/Tabs.vue_vue_type_script_setup_true_lang-DnzOq9GZ.js +0 -679
  30. package/dist/_shared/Toast.vue_vue_type_script_setup_true_lang-Be3i_0zE.js +0 -78
  31. package/dist/_shared/Tooltip.vue_vue_type_script_setup_true_lang-CoydN9sS.js +0 -96
@@ -0,0 +1,78 @@
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";
2
+ import { TransitionRoot as B } from "@headlessui/vue";
3
+ import { r as p } from "./XMarkIcon-90mcPzBs.js";
4
+ const T = {
5
+ key: 0,
6
+ class: "rvc-toast-title"
7
+ }, S = /* @__PURE__ */ y({
8
+ __name: "Toast",
9
+ props: {
10
+ show: { type: Boolean, default: !1 },
11
+ as: { default: "div" },
12
+ title: { default: "" },
13
+ icon: { type: [Function, Object, null], default: null },
14
+ timeout: { type: [Number, Boolean], default: 5e3 },
15
+ position: { default: "bottom" },
16
+ type: { default: "info" },
17
+ showClose: { type: Boolean, default: !1 }
18
+ },
19
+ emits: ["toast:close"],
20
+ setup(t, { emit: v }) {
21
+ const s = t, d = v, i = () => {
22
+ s.timeout && s.show && setTimeout(() => {
23
+ d("toast:close");
24
+ }, s.timeout);
25
+ };
26
+ return h(() => {
27
+ i();
28
+ }), w(() => s.show, (e) => {
29
+ e && i();
30
+ }), (e, r) => (o(), n(c(B), {
31
+ show: t.show,
32
+ as: "template",
33
+ enter: "rvc-toast-transition-enter",
34
+ "enter-from": "rvc-toast-transition-enter-from",
35
+ "enter-to": "rvc-toast-transition-enter-to",
36
+ leave: "rvc-toast-transition-leave",
37
+ "leave-from": "rvc-toast-transition-leave-from",
38
+ "leave-to": "rvc-toast-transition-leave-to"
39
+ }, {
40
+ default: m(() => [
41
+ (o(), n(u(t.as), {
42
+ class: C(["rvc-toast", `rvc-toast-${t.position}`, `rvc-toast-${t.type}`, { "rvc-toast-open": t.show }])
43
+ }, {
44
+ default: m(() => [
45
+ a(e.$slots, "icon", {}, () => [
46
+ t.icon ? (o(), n(u(t.icon), {
47
+ key: 0,
48
+ class: "rvc-toast-icon"
49
+ })) : l("", !0)
50
+ ]),
51
+ $("div", null, [
52
+ a(e.$slots, "title", {}, () => [
53
+ t.title ? (o(), f("span", T, k(t.title), 1)) : l("", !0)
54
+ ]),
55
+ a(e.$slots, "default")
56
+ ]),
57
+ a(e.$slots, "close", {}, () => [
58
+ t.showClose ? (o(), f("button", {
59
+ key: 0,
60
+ type: "button",
61
+ class: "rvc-toast-close",
62
+ "aria-label": "Close",
63
+ onClick: r[0] || (r[0] = (N) => e.$emit("toast:close"))
64
+ }, [
65
+ b(c(p))
66
+ ])) : l("", !0)
67
+ ])
68
+ ]),
69
+ _: 3
70
+ }, 8, ["class"]))
71
+ ]),
72
+ _: 3
73
+ }, 8, ["show"]));
74
+ }
75
+ });
76
+ export {
77
+ S as _
78
+ };
@@ -0,0 +1,95 @@
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";
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
+ const B = ["innerHTML"], T = /* @__PURE__ */ b({
4
+ __name: "Tooltip",
5
+ props: {
6
+ content: {},
7
+ blur: { type: Boolean, default: !0 },
8
+ maxWidth: { default: null },
9
+ tooltipClass: { default: "" },
10
+ placement: { default: void 0 },
11
+ size: { default: "base" }
12
+ },
13
+ setup(t) {
14
+ const r = t, s = a(), i = a(), n = a(), {
15
+ floatingStyles: h,
16
+ middlewareData: v,
17
+ placement: c
18
+ } = z(s, i, {
19
+ middleware: [
20
+ ...r.placement ? [] : [C()],
21
+ W(r.size === "sm" ? 7 : 10),
22
+ M({ crossAxis: !0, padding: 5 }),
23
+ P({ element: n }),
24
+ A({
25
+ apply({ availableWidth: e, availableHeight: o, elements: l }) {
26
+ Object.assign(l.floating.style, {
27
+ maxWidth: r.maxWidth ? `${Math.min(e, r.maxWidth) / 16}rem` : "",
28
+ maxHeight: `${o / 16}rem `
29
+ });
30
+ }
31
+ })
32
+ ],
33
+ whileElementsMounted: S,
34
+ placement: r.placement
35
+ }), y = (e) => {
36
+ const o = {
37
+ top: 0,
38
+ bottom: 180,
39
+ left: -90,
40
+ right: 90
41
+ }, l = e.split("-")[0];
42
+ return l && o[l] || 0;
43
+ }, g = (e) => {
44
+ const o = c.value.split("-")[0], m = o ? {
45
+ left: "right",
46
+ right: "left",
47
+ bottom: "top",
48
+ top: "bottom"
49
+ }[o] : "";
50
+ return {
51
+ style: {
52
+ left: e.arrow?.x ? `${e.arrow.x}px` : "",
53
+ top: e.arrow?.y ? `${e.arrow.y}px` : "",
54
+ bottom: "",
55
+ right: "",
56
+ ...m ? { [m]: n.value ? `${n.value.offsetWidth * -1}px` : "" } : {},
57
+ transform: `rotate(${y(c.value)}deg)`
58
+ }
59
+ };
60
+ };
61
+ return (e, o) => (f(), p("div", {
62
+ ref_key: "wrapperRef",
63
+ ref: s,
64
+ class: "rvc-tooltip-wrapper"
65
+ }, [
66
+ d(e.$slots, "default"),
67
+ u("div", {
68
+ ref_key: "tooltipRef",
69
+ ref: i,
70
+ class: $([
71
+ "rvc-tooltip",
72
+ t.tooltipClass,
73
+ `rvc-tooltip-${t.size}`,
74
+ { "rvc-tooltip-blur": t.blur }
75
+ ]),
76
+ style: x(w(h))
77
+ }, [
78
+ d(e.$slots, "content", { content: t.content }, () => [
79
+ t.content ? (f(), p("div", {
80
+ key: 0,
81
+ innerHTML: t.content
82
+ }, null, 8, B)) : R("", !0)
83
+ ]),
84
+ u("div", k({
85
+ ref_key: "arrowRef",
86
+ ref: n,
87
+ class: "rvc-tooltip-arrow"
88
+ }, g(w(v))), null, 16)
89
+ ], 6)
90
+ ], 512));
91
+ }
92
+ });
93
+ export {
94
+ T as _
95
+ };
@@ -1,4 +1,4 @@
1
- import { _ as a } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-CP3x2DUA.js";
1
+ import { _ as a } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-CxRv55TC.js";
2
2
  export {
3
3
  a as Combobox,
4
4
  a as default
@@ -38,11 +38,13 @@
38
38
 
39
39
  .rvc-checkbox-input {
40
40
  display: flex;
41
+ position: relative;
42
+ flex-shrink: 0;
41
43
  align-items: center;
42
44
  justify-content: center;
43
45
  width: var(--rvc-checkbox-input-size);
44
46
  height: var(--rvc-checkbox-input-size);
45
- margin-top: calc(var(--spacing) * 0.5);
47
+ margin-top: calc(var(--spacing) * 0.75);
46
48
  border-width: var(--rvc-checkbox-input-border-width);
47
49
  border-radius: var(--rvc-checkbox-input-border-radius);
48
50
  border-color: var(--rvc-checkbox-input-border-color);
@@ -57,10 +59,13 @@
57
59
  }
58
60
 
59
61
  input {
60
- display: none;
62
+ appearance: none;
63
+ position: absolute;
64
+ opacity: 0;
65
+ inset: 0;
61
66
  }
62
67
 
63
- input:checked + .rvc-checkbox-input {
68
+ .rvc-checkbox-input:has(input:checked) {
64
69
  border-color: var(--rvc-checkbox-input-checked-border-color);
65
70
  background-color: var(--rvc-checkbox-input-checked-bg-color);
66
71
 
@@ -69,13 +74,13 @@
69
74
  }
70
75
  }
71
76
 
72
- input:disabled + .rvc-checkbox-input {
77
+ .rvc-checkbox-input:has(input:disabled) {
73
78
  opacity: var(--rvc-checkbox-input-disabled-opacity);
74
79
  background-color: var(--rvc-checkbox-input-bg-color-disabled);
75
80
  cursor: default;
76
81
  }
77
82
 
78
- input:focus + .rvc-checkbox-input {
83
+ .rvc-checkbox-input:focus-within {
79
84
  @apply rvc-focus;
80
85
  }
81
86
  }
@@ -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-DnzOq9GZ.js";
2
- import { _ as b } from "../_shared/ChevronDownIcon-DaaXfD3C.js";
3
- import { _ } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-DeflHqux.js";
4
- import { _ as l } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-BhJpG-Fw.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-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";
5
5
  export {
6
6
  e as Accordion,
7
7
  s as Alert,
@@ -36,11 +36,13 @@
36
36
 
37
37
  .rvc-radio-input {
38
38
  display: inline-flex;
39
+ position: relative;
40
+ flex-shrink: 0;
39
41
  align-items: center;
40
42
  justify-content: center;
41
43
  width: var(--rvc-radio-input-size);
42
44
  height: var(--rvc-radio-input-size);
43
- margin-top: calc(var(--spacing) * 1);
45
+ margin-top: calc(var(--spacing) * 0.75);
44
46
  border-width: var(--rvc-radio-input-border-width);
45
47
  border-radius: var(--rvc-radio-input-border-radius);
46
48
  border-color: var(--rvc-radio-input-border-color);
@@ -48,7 +50,7 @@
48
50
  box-shadow: var(--rvc-radio-input-box-shadow);
49
51
 
50
52
  &::before {
51
- content: "";
53
+ content: '';
52
54
  width: calc(var(--spacing) * 1.5);
53
55
  height: calc(var(--spacing) * 1.5);
54
56
  border-radius: calc(infinity * 1px);
@@ -58,10 +60,13 @@
58
60
  }
59
61
 
60
62
  input {
61
- display: none;
63
+ appearance: none;
64
+ position: absolute;
65
+ opacity: 0;
66
+ inset: 0;
62
67
  }
63
68
 
64
- input:checked + .rvc-radio-input {
69
+ .rvc-radio-input:has(input:checked) {
65
70
  border-color: var(--rvc-radio-input-checked-border-color);
66
71
  background-color: var(--rvc-radio-input-checked-bg-color);
67
72
 
@@ -70,13 +75,13 @@
70
75
  }
71
76
  }
72
77
 
73
- input:disabled + .rvc-radio-input {
78
+ .rvc-radio-input:has(input:disabled) {
74
79
  opacity: var(--rvc-radio-input-disabled-opacity);
75
80
  background-color: var(--rvc-radio-input-bg-color-disabled);
76
81
  cursor: default;
77
82
  }
78
83
 
79
- input:focus + .rvc-radio-input {
84
+ .rvc-radio-input:focus-within {
80
85
  @apply rvc-focus;
81
86
  }
82
87
  }
package/dist/core.d.ts CHANGED
@@ -29,6 +29,7 @@ declare const __VLS_component_11: DefineComponent<RadioProps, {}, {}, {}, {}, Co
29
29
  }>, {
30
30
  label: string;
31
31
  modelValue: RadioModelValue;
32
+ rootClass: string;
32
33
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
33
34
  input: HTMLInputElement;
34
35
  }, any>;
@@ -172,7 +173,6 @@ declare function __VLS_template_10(): {
172
173
  declare function __VLS_template_11(): {
173
174
  attrs: Partial<{}>;
174
175
  slots: {
175
- input?(_: {}): any;
176
176
  default?(_: {}): any;
177
177
  };
178
178
  refs: {
@@ -227,7 +227,6 @@ declare function __VLS_template_4(): {
227
227
  declare function __VLS_template_5(): {
228
228
  attrs: Partial<{}>;
229
229
  slots: {
230
- input?(_: {}): any;
231
230
  icon?(_: {}): any;
232
231
  default?(_: {
233
232
  label: string;
@@ -636,6 +635,7 @@ declare type RadioModelValue = boolean | string | Array<unknown> | object | numb
636
635
  declare interface RadioProps {
637
636
  modelValue?: RadioModelValue;
638
637
  label?: string;
638
+ rootClass?: string;
639
639
  }
640
640
 
641
641
  declare interface TabItem {
@@ -1,5 +1,5 @@
1
- import { _ as a } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-CD5914Fk.js";
2
- import { _ as f } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-CoHkAJj3.js";
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";
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-CmYj-7WQ.js";
1
+ import { _ as o } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-BtkiBqxy.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-DnzOq9GZ.js";
2
- import { _ as d } from "../_shared/ChevronDownIcon-DaaXfD3C.js";
3
- import { _ as n } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-DeflHqux.js";
4
- import { _ as h } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-BhJpG-Fw.js";
5
- import { _ as g } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-CP3x2DUA.js";
6
- import { _ as B } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-CD5914Fk.js";
7
- import { _ as F } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-CoHkAJj3.js";
8
- import { _ as A } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-CmYj-7WQ.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-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
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-CIVhqJtE.js";
11
- import { _ as y } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-Be3i_0zE.js";
12
- import { _ as L } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-CoydN9sS.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";
13
13
  export {
14
14
  r as Accordion,
15
15
  t as Alert,
package/dist/index.d.ts CHANGED
@@ -39,6 +39,7 @@ declare const __VLS_component_11: DefineComponent<RadioProps, {}, {}, {}, {}, Co
39
39
  }>, {
40
40
  label: string;
41
41
  modelValue: RadioModelValue;
42
+ rootClass: string;
42
43
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
43
44
  input: HTMLInputElement;
44
45
  }, any>;
@@ -334,7 +335,6 @@ declare function __VLS_template_10(): {
334
335
  declare function __VLS_template_11(): {
335
336
  attrs: Partial<{}>;
336
337
  slots: {
337
- input?(_: {}): any;
338
338
  default?(_: {}): any;
339
339
  };
340
340
  refs: {
@@ -688,7 +688,6 @@ declare function __VLS_template_4(): {
688
688
  declare function __VLS_template_5(): {
689
689
  attrs: Partial<{}>;
690
690
  slots: {
691
- input?(_: {}): any;
692
691
  icon?(_: {}): any;
693
692
  default?(_: {
694
693
  label: string;
@@ -1264,6 +1263,7 @@ declare type RadioModelValue = boolean | string | Array<unknown> | object | numb
1264
1263
  declare interface RadioProps {
1265
1264
  modelValue?: RadioModelValue;
1266
1265
  label?: string;
1266
+ rootClass?: string;
1267
1267
  }
1268
1268
 
1269
1269
  declare type RichTextConfig = 'default' | 'simple';
@@ -1,4 +1,4 @@
1
- import { _ as t } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-CIVhqJtE.js";
1
+ import { _ as t } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-BLs_S_-D.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-Be3i_0zE.js";
1
+ import { _ as s } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-BfMkJm5T.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-CoydN9sS.js";
1
+ import { _ as o } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-CKp1wzE2.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.2.1",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -87,37 +87,37 @@
87
87
  "@floating-ui/vue": "^1.1.9",
88
88
  "@headlessui/vue": "^1.7.23",
89
89
  "@heroicons/vue": "^2.2.0",
90
- "@tiptap/starter-kit": "^3.5.0",
91
- "@tiptap/vue-3": "^3.5.0",
92
- "@vueuse/core": "^13.9.0",
93
- "vue": "^3.5.21"
90
+ "@tiptap/starter-kit": "^3.10.1",
91
+ "@tiptap/vue-3": "^3.10.1",
92
+ "@vueuse/core": "^14.0.0",
93
+ "vue": "^3.5.22"
94
94
  },
95
95
  "devDependencies": {
96
- "@rushstack/eslint-patch": "^1.12.0",
97
- "@tailwindcss/postcss": "^4.1.13",
98
- "@tailwindcss/vite": "^4.1.13",
99
- "@types/node": "^24.5.2",
100
- "@typescript-eslint/eslint-plugin": "^8.44.1",
101
- "@typescript-eslint/parser": "^8.44.1",
96
+ "@rushstack/eslint-patch": "^1.14.1",
97
+ "@tailwindcss/postcss": "^4.1.16",
98
+ "@tailwindcss/vite": "^4.1.16",
99
+ "@types/node": "^24.9.2",
100
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
101
+ "@typescript-eslint/parser": "^8.46.2",
102
102
  "@vitejs/plugin-vue": "^6.0.1",
103
103
  "@vitest/coverage-v8": "^3.2.4",
104
104
  "@vue/eslint-config-airbnb-with-typescript": "^8.0.0",
105
105
  "@vue/test-utils": "^2.4.6",
106
106
  "eslint": "^8.57.1",
107
107
  "eslint-plugin-vue": "^9.33.0",
108
- "jsdom": "^27.0.0",
108
+ "jsdom": "^27.1.0",
109
109
  "postcss": "^8.5.6",
110
110
  "postcss-html": "^1.8.0",
111
111
  "postcss-scss": "^4.0.9",
112
- "stylelint": "^16.24.0",
112
+ "stylelint": "^16.25.0",
113
113
  "stylelint-config-property-sort-order-smacss": "^10.0.0",
114
- "stylelint-config-standard": "^39.0.0",
115
- "tailwindcss": "^4.1.13",
116
- "typescript": "^5.9.2",
117
- "vite": "^6.3.6",
114
+ "stylelint-config-standard": "^39.0.1",
115
+ "tailwindcss": "^4.1.16",
116
+ "typescript": "^5.9.3",
117
+ "vite": "^7.1.12",
118
118
  "vite-plugin-dts": "^4.5.4",
119
- "vite-plugin-static-copy": "^3.1.2",
120
- "vite-plugin-vue-devtools": "^8.0.2",
119
+ "vite-plugin-static-copy": "^3.1.4",
120
+ "vite-plugin-vue-devtools": "^8.0.3",
121
121
  "vite-svg-loader": "^5.1.0",
122
122
  "vitepress": "^2.0.0-alpha.12",
123
123
  "vitest": "^3.2.4"