@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,115 @@
1
+ import { createElementBlock as p, openBlock as r, createElementVNode as B, defineComponent as M, createBlock as l, unref as n, normalizeClass as u, withCtx as a, renderSlot as s, createVNode as i, mergeProps as f, Transition as $, Fragment as y, renderList as A, resolveDynamicComponent as m, createCommentVNode as L, createTextVNode as N, toDisplayString as V } from "vue";
2
+ import { Menu as x, MenuButton as v, MenuItems as D, MenuItem as w } from "@headlessui/vue";
3
+ import { _ as I } from "./ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js";
4
+ function Z(t, c) {
5
+ return r(), p("svg", {
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ viewBox: "0 0 20 20",
8
+ fill: "currentColor",
9
+ "aria-hidden": "true",
10
+ "data-slot": "icon"
11
+ }, [
12
+ B("path", { d: "M10 3a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM10 8.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM11.5 15.5a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0Z" })
13
+ ]);
14
+ }
15
+ const z = /* @__PURE__ */ M({
16
+ inheritAttrs: !1,
17
+ __name: "Dropdown",
18
+ props: {
19
+ items: {},
20
+ alignLeft: { type: Boolean, default: !1 },
21
+ fullWidth: { type: Boolean, default: !1 },
22
+ label: { default: "Options" },
23
+ rootClass: { default: "" }
24
+ },
25
+ emits: ["dropdown:click"],
26
+ setup(t, { emit: c }) {
27
+ const b = c, g = (o) => {
28
+ const {
29
+ as: h,
30
+ bindAs: e,
31
+ event: d,
32
+ icon: C,
33
+ name: E,
34
+ ...k
35
+ } = o;
36
+ return k;
37
+ };
38
+ return (o, h) => (r(), l(n(x), {
39
+ as: "div",
40
+ class: u(["rvc-dropdown", t.rootClass])
41
+ }, {
42
+ default: a(() => [
43
+ s(o.$slots, "button", {
44
+ label: t.label,
45
+ button: n(v)
46
+ }, () => [
47
+ i(n(v), f({
48
+ as: I,
49
+ label: t.label,
50
+ color: "light",
51
+ icon: n(Z),
52
+ "icon-left": t.alignLeft
53
+ }, o.$attrs), null, 16, ["label", "icon", "icon-left"])
54
+ ]),
55
+ i($, {
56
+ "enter-active-class": "rvc-dropdown-transition-enter",
57
+ "enter-from-class": "rvc-dropdown-transition-enter-from",
58
+ "enter-to-class": "rvc-dropdown-transition-enter-to",
59
+ "leave-active-class": "rvc-dropdown-transition-leave",
60
+ "leave-from-class": "rvc-dropdown-transition-leave-from",
61
+ "leave-to-class": "rvc-dropdown-transition-leave-to"
62
+ }, {
63
+ default: a(() => [
64
+ i(n(D), {
65
+ class: u([
66
+ "rvc-dropdown-items",
67
+ {
68
+ "rvc-dropdown-items-left": t.alignLeft,
69
+ "rvc-dropdown-items-full": t.fullWidth
70
+ }
71
+ ])
72
+ }, {
73
+ default: a(() => [
74
+ s(o.$slots, "items", {
75
+ items: t.items,
76
+ menuItem: n(w)
77
+ }, () => [
78
+ (r(!0), p(y, null, A(t.items, (e, d) => (r(), l(n(w), {
79
+ key: `${d}-dropdown-item`,
80
+ as: "template"
81
+ }, {
82
+ default: a(() => [
83
+ s(o.$slots, "item", { item: e }, () => [
84
+ (r(), l(m(e.as ? e.as : "button"), f({ class: "rvc-dropdown-item" }, { ref_for: !0 }, g(e), {
85
+ as: e.bindAs ? e.bindAs : void 0,
86
+ onClick: (C) => (b("dropdown:click", e), e.event ? e.event() : null)
87
+ }), {
88
+ default: a(() => [
89
+ e.icon ? (r(), l(m(e.icon), {
90
+ key: 0,
91
+ class: "rvc-dropdown-item-icon"
92
+ })) : L("", !0),
93
+ N(" " + V(e.name), 1)
94
+ ]),
95
+ _: 2
96
+ }, 1040, ["as", "onClick"]))
97
+ ])
98
+ ]),
99
+ _: 2
100
+ }, 1024))), 128))
101
+ ])
102
+ ]),
103
+ _: 3
104
+ }, 8, ["class"])
105
+ ]),
106
+ _: 3
107
+ })
108
+ ]),
109
+ _: 3
110
+ }, 8, ["class"]));
111
+ }
112
+ });
113
+ export {
114
+ z as _
115
+ };
@@ -0,0 +1,74 @@
1
+ import { computed as y, getCurrentInstance as I, defineComponent as g, useSlots as x, ref as B, createElementBlock as o, openBlock as n, normalizeClass as C, createCommentVNode as a, renderSlot as s, unref as i, createBlock as p, resolveDynamicComponent as f, normalizeProps as V, guardReactiveProps as b, withDirectives as z, mergeProps as m, vModelDynamic as F } from "vue";
2
+ const M = () => ({ hasModelBinding: y(() => {
3
+ const l = I();
4
+ return !!(l?.vnode?.props && Object.prototype.hasOwnProperty.call(l.vnode.props, "onUpdate:modelValue"));
5
+ }) }), O = {
6
+ key: 0,
7
+ class: "rvc-input-prefix"
8
+ }, P = ["type"], j = ["type"], D = {
9
+ key: 1,
10
+ class: "rvc-input-suffix"
11
+ }, S = /* @__PURE__ */ g({
12
+ inheritAttrs: !1,
13
+ __name: "FormInput",
14
+ props: {
15
+ modelValue: { default: void 0 },
16
+ rootClass: { default: "" },
17
+ prefixIcon: { type: [Function, Object, null], default: null },
18
+ icon: { type: [Function, Object, null], default: null },
19
+ size: { default: "base" }
20
+ },
21
+ emits: ["update:modelValue"],
22
+ setup(e, { emit: l }) {
23
+ const v = e, h = l, { hasModelBinding: k } = M(), r = x(), u = B(null), c = y({
24
+ get: () => v.modelValue,
25
+ set: (t) => h("update:modelValue", t)
26
+ });
27
+ return (t, d) => (n(), o("div", {
28
+ class: C([
29
+ "rvc-input",
30
+ `rvc-input-${e.size}`,
31
+ e.rootClass
32
+ ])
33
+ }, [
34
+ i(r).prefix || i(r).prefixIcon || e.prefixIcon ? (n(), o("span", O, [
35
+ s(t.$slots, "prefix", {}, () => [
36
+ s(t.$slots, "prefixIcon", { icon: e.prefixIcon }, () => [
37
+ e.prefixIcon ? (n(), p(f(e.prefixIcon), {
38
+ key: 0,
39
+ "aria-hidden": "true"
40
+ })) : a("", !0)
41
+ ])
42
+ ])
43
+ ])) : a("", !0),
44
+ s(t.$slots, "input", V(b(t.$attrs)), () => [
45
+ i(k) ? z((n(), o("input", m({ key: 0 }, t.$attrs, {
46
+ ref_key: "input",
47
+ ref: u,
48
+ "onUpdate:modelValue": d[0] || (d[0] = ($) => c.value = $),
49
+ type: t.$attrs.type || "text"
50
+ }), null, 16, P)), [
51
+ [F, c.value]
52
+ ]) : (n(), o("input", m({ key: 1 }, t.$attrs, {
53
+ ref_key: "input",
54
+ ref: u,
55
+ type: t.$attrs.type || "text"
56
+ }), null, 16, j))
57
+ ]),
58
+ i(r).suffix || i(r).icon || e.icon ? (n(), o("span", D, [
59
+ s(t.$slots, "suffix", {}, () => [
60
+ s(t.$slots, "icon", { icon: e.icon }, () => [
61
+ e.icon ? (n(), p(f(e.icon), {
62
+ key: 0,
63
+ "aria-hidden": "true"
64
+ })) : a("", !0)
65
+ ])
66
+ ])
67
+ ])) : a("", !0)
68
+ ], 2));
69
+ }
70
+ });
71
+ export {
72
+ S as _,
73
+ M as u
74
+ };
@@ -1,31 +1,28 @@
1
- import { ref as C, computed as u, defineComponent as D, createBlock as L, openBlock as y, unref as t, withCtx as d, createVNode as n, withModifiers as T, createElementVNode as r, normalizeClass as I, createElementBlock as $, renderSlot as s, createCommentVNode as N, createTextVNode as R, toDisplayString as S } from "vue";
2
- import { TransitionRoot as V, Dialog as h, TransitionChild as g, DialogPanel as A, DialogTitle as B } from "@headlessui/vue";
3
- import { _ as E } from "./ButtonBase.vue_vue_type_script_setup_true_lang-DeflHqux.js";
1
+ import { ref as C, computed as f, defineComponent as D, createBlock as L, openBlock as p, unref as o, withCtx as d, createVNode as n, withModifiers as T, createElementVNode as r, normalizeClass as I, createElementBlock as $, renderSlot as s, createCommentVNode as N, createTextVNode as R, toDisplayString as S } from "vue";
2
+ import { TransitionRoot as V, Dialog as h, TransitionChild as g, DialogPanel as x, DialogTitle as B } from "@headlessui/vue";
3
+ import { _ as E } from "./ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js";
4
4
  import { r as w } from "./XMarkIcon-90mcPzBs.js";
5
- function H(m) {
6
- const f = C(null), p = C(!1), l = u(() => m.as === "form"), b = u(() => `${m.id}-title`), v = u(() => `${m.id}-content`), c = u(() => {
7
- var i;
8
- return (i = f.value) == null ? void 0 : i.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
9
- });
5
+ function A(t) {
6
+ const c = C(null), u = C(!1), l = f(() => t.as === "form"), b = f(() => `${t.id}-title`), m = f(() => `${t.id}-content`), v = f(() => c.value?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'));
10
7
  return {
11
- contentRef: f,
12
- ready: p,
8
+ contentRef: c,
9
+ ready: u,
13
10
  isForm: l,
14
11
  titleId: b,
15
- descriptionId: v,
16
- initialFocusElement: c
12
+ descriptionId: m,
13
+ initialFocusElement: v
17
14
  };
18
15
  }
19
- const M = {
16
+ const H = {
20
17
  role: "presentation",
21
18
  class: "rvc-modal-presentation"
22
- }, q = { class: "rvc-modal-container" }, z = {
19
+ }, M = { class: "rvc-modal-container" }, q = {
23
20
  key: 0,
24
21
  class: "rvc-modal-header"
25
- }, P = { class: "rvc-modal-header-inner" }, j = { class: "rvc-modal-close-wrapper" }, G = ["id"], J = {
22
+ }, z = { class: "rvc-modal-header-inner" }, P = { class: "rvc-modal-close-wrapper" }, j = ["id"], G = {
26
23
  key: 2,
27
24
  class: "rvc-modal-footer"
28
- }, W = /* @__PURE__ */ D({
25
+ }, U = /* @__PURE__ */ D({
29
26
  __name: "Modal",
30
27
  props: {
31
28
  as: { default: "div" },
@@ -40,30 +37,30 @@ const M = {
40
37
  resetFooter: { type: Boolean, default: !1 }
41
38
  },
42
39
  emits: ["modal:open", "modal:opened", "modal:close", "modal:save", "modal:closed"],
43
- setup(m, { emit: f }) {
44
- const p = m, l = f, {
40
+ setup(t, { emit: c }) {
41
+ const u = t, l = c, {
45
42
  contentRef: b,
46
- ready: v,
47
- isForm: c,
48
- titleId: i,
43
+ ready: m,
44
+ isForm: v,
45
+ titleId: y,
49
46
  descriptionId: k,
50
47
  initialFocusElement: F
51
- } = H(p);
52
- return (e, o) => (y(), L(t(V), { as: "template" }, {
48
+ } = A(u);
49
+ return (i, e) => (p(), L(o(V), { as: "template" }, {
53
50
  default: d(() => [
54
- n(t(h), {
55
- as: e.as,
51
+ n(o(h), {
52
+ as: t.as,
56
53
  class: "rvc-modal",
57
54
  static: "",
58
55
  "aria-modal": "true",
59
56
  role: "dialog",
60
- "initial-focus": t(F),
61
- "aria-labelledby": t(i),
62
- onClose: o[7] || (o[7] = (a) => l("modal:close")),
63
- onSubmit: o[8] || (o[8] = T((a) => l("modal:save", a), ["prevent"]))
57
+ "initial-focus": o(F),
58
+ "aria-labelledby": o(y),
59
+ onClose: e[7] || (e[7] = (a) => l("modal:close")),
60
+ onSubmit: e[8] || (e[8] = T((a) => l("modal:save", a), ["prevent"]))
64
61
  }, {
65
62
  default: d(() => [
66
- n(t(g), {
63
+ n(o(g), {
67
64
  as: "template",
68
65
  enter: "rvc-modal-backdrop-transition-enter",
69
66
  "enter-from": "rvc-modal-backdrop-transition-enter-from",
@@ -71,10 +68,10 @@ const M = {
71
68
  leave: "rvc-modal-backdrop-transition-leave",
72
69
  "leave-from": "rvc-modal-backdrop-transition-leave-from",
73
70
  "leave-to": "rvc-modal-backdrop-transition-leave-to",
74
- onBeforeEnter: o[0] || (o[0] = (a) => l("modal:open")),
75
- onAfterEnter: o[1] || (o[1] = (a) => l("modal:opened"))
71
+ onBeforeEnter: e[0] || (e[0] = (a) => l("modal:open")),
72
+ onAfterEnter: e[1] || (e[1] = (a) => l("modal:opened"))
76
73
  }, {
77
- default: d(() => [...o[9] || (o[9] = [
74
+ default: d(() => [...e[9] || (e[9] = [
78
75
  r("div", {
79
76
  "aria-hidden": "true",
80
77
  class: "rvc-modal-backdrop"
@@ -82,9 +79,9 @@ const M = {
82
79
  ])]),
83
80
  _: 1
84
81
  }),
85
- r("div", M, [
86
- r("div", q, [
87
- n(t(g), {
82
+ r("div", H, [
83
+ r("div", M, [
84
+ n(o(g), {
88
85
  as: "template",
89
86
  enter: "rvc-modal-transition-enter",
90
87
  "enter-from": "rvc-modal-transition-enter-from",
@@ -92,47 +89,47 @@ const M = {
92
89
  leave: "rvc-modal-transition-leave",
93
90
  "leave-from": "rvc-modal-transition-leave-from",
94
91
  "leave-to": "rvc-modal-transition-leave-to",
95
- onBeforeEnter: o[5] || (o[5] = (a) => v.value = !0),
96
- onAfterLeave: o[6] || (o[6] = (a) => (v.value = !1, l("modal:closed")))
92
+ onBeforeEnter: e[5] || (e[5] = (a) => m.value = !0),
93
+ onAfterLeave: e[6] || (e[6] = (a) => (m.value = !1, l("modal:closed")))
97
94
  }, {
98
95
  default: d(() => [
99
- n(t(A), {
100
- class: I(["rvc-modal-panel", e.panelClass]),
101
- "aria-busy": e.spinning,
102
- "aria-describedby": t(k)
96
+ n(o(x), {
97
+ class: I(["rvc-modal-panel", t.panelClass]),
98
+ "aria-busy": t.spinning,
99
+ "aria-describedby": o(k)
103
100
  }, {
104
101
  default: d(() => [
105
- e.resetHeader ? s(e.$slots, "header", { key: 1 }) : (y(), $("header", z, [
106
- s(e.$slots, "header", { title: e.title }, () => [
107
- r("div", P, [
108
- s(e.$slots, "title", {
109
- id: t(i),
110
- dialogTitle: t(B),
111
- title: e.title
102
+ t.resetHeader ? s(i.$slots, "header", { key: 1 }) : (p(), $("header", q, [
103
+ s(i.$slots, "header", { title: t.title }, () => [
104
+ r("div", z, [
105
+ s(i.$slots, "title", {
106
+ id: o(y),
107
+ dialogTitle: o(B),
108
+ title: t.title
112
109
  }, () => [
113
- n(t(B), {
114
- id: t(i),
110
+ n(o(B), {
111
+ id: o(y),
115
112
  class: "rvc-modal-title"
116
113
  }, {
117
114
  default: d(() => [
118
- R(S(e.title), 1)
115
+ R(S(t.title), 1)
119
116
  ]),
120
117
  _: 1
121
118
  }, 8, ["id"])
122
119
  ]),
123
- e.showClose ? s(e.$slots, "close", {
120
+ t.showClose ? s(i.$slots, "close", {
124
121
  key: 0,
125
- icon: t(w),
122
+ icon: o(w),
126
123
  emitClose: () => l("modal:close")
127
124
  }, () => [
128
- r("div", j, [
125
+ r("div", P, [
129
126
  r("button", {
130
127
  type: "button",
131
128
  class: "rvc-modal-close",
132
129
  "aria-label": "Close panel",
133
- onClick: o[2] || (o[2] = (a) => l("modal:close"))
130
+ onClick: e[2] || (e[2] = (a) => l("modal:close"))
134
131
  }, [
135
- n(t(w), { "aria-hidden": "true" })
132
+ n(o(w), { "aria-hidden": "true" })
136
133
  ])
137
134
  ])
138
135
  ]) : N("", !0)
@@ -140,27 +137,27 @@ const M = {
140
137
  ])
141
138
  ])),
142
139
  r("div", {
143
- id: t(k),
140
+ id: o(k),
144
141
  ref_key: "contentRef",
145
142
  ref: b,
146
143
  class: "rvc-modal-content"
147
144
  }, [
148
- s(e.$slots, "default", { ready: t(v) })
149
- ], 8, G),
150
- e.resetFooter ? s(e.$slots, "footer", { key: 3 }) : (y(), $("footer", J, [
151
- s(e.$slots, "footer", { loading: e.spinning }, () => [
145
+ s(i.$slots, "default", { ready: o(m) })
146
+ ], 8, j),
147
+ t.resetFooter ? s(i.$slots, "footer", { key: 3 }) : (p(), $("footer", G, [
148
+ s(i.$slots, "footer", { loading: t.spinning }, () => [
152
149
  n(E, {
153
- type: t(c) ? "submit" : "button",
154
- label: e.submitLabel,
155
- spinning: e.spinning,
156
- disabled: e.spinning,
157
- onClick: o[3] || (o[3] = (a) => !t(c) && l("modal:save"))
150
+ type: o(v) ? "submit" : "button",
151
+ label: t.submitLabel,
152
+ spinning: t.spinning,
153
+ disabled: t.spinning,
154
+ onClick: e[3] || (e[3] = (a) => !o(v) && l("modal:save"))
158
155
  }, null, 8, ["type", "label", "spinning", "disabled"]),
159
156
  n(E, {
160
157
  type: "button",
161
158
  color: "light",
162
- label: e.cancelLabel,
163
- onClick: o[4] || (o[4] = (a) => l("modal:close"))
159
+ label: t.cancelLabel,
160
+ onClick: e[4] || (e[4] = (a) => l("modal:close"))
164
161
  }, null, 8, ["label"])
165
162
  ])
166
163
  ]))
@@ -181,6 +178,6 @@ const M = {
181
178
  }
182
179
  });
183
180
  export {
184
- W as _,
185
- H as u
181
+ U as _,
182
+ A as u
186
183
  };