@robuust-digital/vue-components 2.5.0-beta.2 → 2.5.0-beta.3

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 +32 -2
  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-BYWciGnh.js +41 -0
  5. package/dist/_shared/{Combobox.vue_vue_type_script_setup_true_lang-C3AfEWj5.js → Combobox.vue_vue_type_script_setup_true_lang-BwTRzqr6.js} +72 -61
  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-B0RIqYLz.js +696 -0
  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/index.js +9 -10
  19. package/dist/core/styles.css +0 -1
  20. package/dist/core/table.css +4 -1
  21. package/dist/core.d.ts +57 -100
  22. package/dist/dialogs/index.js +2 -2
  23. package/dist/dropdown/index.js +1 -1
  24. package/dist/index/index.js +22 -23
  25. package/dist/index.d.ts +104 -147
  26. package/dist/lightswitch/index.js +1 -1
  27. package/dist/rich-text-editor/index.js +1 -1
  28. package/dist/toast/index.js +1 -1
  29. package/dist/tooltip/index.js +1 -1
  30. package/package.json +37 -8
  31. package/dist/_shared/Tabs.vue_vue_type_script_setup_true_lang-Dc0jC2cn.js +0 -836
  32. package/dist/_shared/XMarkIcon-DdMV8USU.js +0 -53
  33. package/dist/core/file.css +0 -206
package/CHANGELOG.md CHANGED
@@ -1,8 +1,38 @@
1
- ## 2.4.0 (16-12-2025)
1
+ ## 2.4.0 (UNRELEASED)
2
2
 
3
3
  ### Added
4
4
 
5
- * Added `FormFile` component with file input, image preview, and delete/clear actions
5
+ * `Pagination`: Added `prevIcon` and `nextIcon` props to customize previous/next navigation icons
6
+ * `Pagination`: Added `prevIcon` and `nextIcon` slots for full control over previous/next navigation icon rendering
7
+ * `DataTable`: Added support for forwarding `prevIcon` and `nextIcon` props to the built-in `Pagination` component
8
+
9
+ ### Updated
10
+
11
+ * `Pagination` and `DataTable` documentation: Added examples and prop documentation for custom pagination navigation icons
12
+
13
+ ## 2.3.5 (09-04-2026)
14
+
15
+ ### Added
16
+
17
+ * `DataTable`: Added `--rvc-table-head-color` CSS variable to customize header text color
18
+
19
+ ### Changed
20
+
21
+ * `DataTable`: Increased sort icon hover hint visibility by changing `.rvc-table-sort-icon-invisible` opacity from `0.3` to `0.5`
22
+
23
+ ## 2.3.4 (25-03-2026)
24
+
25
+ ### Fixed
26
+
27
+ * `DataTable`: Forward built-in pagination props (`perPage`, `perPageLabel`, `perPageOptions`, `fromLabel`) to the `Pagination` component
28
+ * `Pagination`: Keep the per-page select in sync when `perPage` is updated externally
29
+
30
+ ## 2.3.3 (23-01-2026)
31
+
32
+ ### Updated
33
+
34
+ * Update dependencies
35
+ * Added Vue as a peer dependency
6
36
 
7
37
  ## 2.3.2 (16-12-2025)
8
38
 
package/README.md CHANGED
@@ -16,6 +16,7 @@ A modern and customizable component library built with **Vue 3** and **Tailwind
16
16
  - [📚 Table of Contents](#-table-of-contents)
17
17
  - [Documentation](#documentation)
18
18
  - [Three-shaking](#three-shaking)
19
+ - [MCP Server](#mcp-server)
19
20
  - [Getting Started](#getting-started)
20
21
 
21
22
  ## Documentation
@@ -35,6 +36,20 @@ This library is built with Vue 3 and Tailwind 4 CSS, and is designed to be tree-
35
36
  - [`@robuust-digital/vue-components/rich-text-editor`](./src/rich-text-editor) - `RichTextEditor` component
36
37
  - [`@robuust-digital/vue-components/tooltip`](./src/tooltip) - `Tooltip` component with `@floating-ui/vue`
37
38
 
39
+ ## MCP Server
40
+
41
+ This repository includes an MCP server that exposes component docs and CSS variables for AI agents.
42
+
43
+ ```bash
44
+ # Generate a JSON snapshot (optional, useful for CI checks)
45
+ yarn mcp:build-catalog
46
+
47
+ # Start the MCP server over stdio
48
+ yarn mcp:serve
49
+ ```
50
+
51
+ See [`mcp/README.md`](./mcp/README.md) for setup examples in Codex and Claude Desktop.
52
+
38
53
  ## Getting Started
39
54
 
40
55
  **Clone the repository** and install dependencies:
@@ -1,5 +1,5 @@
1
- import { defineComponent as b, watchEffect as r, createBlock as a, openBlock as l, resolveDynamicComponent as c, mergeProps as d, withCtx as f, createElementBlock as y, renderSlot as t, createCommentVNode as i, createTextVNode as u, toDisplayString as s, unref as m } from "vue";
2
- import { S as v } from "./icon-spinner-CP0VP_YM.js";
1
+ import { defineComponent as b, watchEffect as r, openBlock as l, createBlock as a, resolveDynamicComponent as c, mergeProps as d, withCtx as f, createElementBlock as y, renderSlot as t, createTextVNode as u, toDisplayString as s, createCommentVNode as i, unref as m } from "vue";
2
+ import { S as v } from "./icon-spinner-BYCMrTdL.js";
3
3
  const g = {
4
4
  key: 0,
5
5
  class: "rvc-button-label"
@@ -0,0 +1,41 @@
1
+ import { defineComponent as t, openBlock as l, createBlock as r, resolveDynamicComponent as o, normalizeClass as n, withCtx as c, renderSlot as d, createTextVNode as s, toDisplayString as i, createElementBlock as u, createElementVNode as f } from "vue";
2
+ const b = /* @__PURE__ */ t({
3
+ __name: "Badge",
4
+ props: {
5
+ as: { default: "span" },
6
+ label: { default: "" },
7
+ size: { default: "base" },
8
+ color: { default: "default" }
9
+ },
10
+ setup(e) {
11
+ return (a, m) => (l(), r(o(e.as), {
12
+ class: n(["rvc-badge", `rvc-badge-${e.color}`, `rvc-badge-${e.size}`])
13
+ }, {
14
+ default: c(() => [
15
+ d(a.$slots, "default", { label: e.label }, () => [
16
+ s(i(e.label), 1)
17
+ ])
18
+ ]),
19
+ _: 3
20
+ }, 8, ["class"]));
21
+ }
22
+ });
23
+ function g(e, a) {
24
+ return l(), u("svg", {
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ viewBox: "0 0 20 20",
27
+ fill: "currentColor",
28
+ "aria-hidden": "true",
29
+ "data-slot": "icon"
30
+ }, [
31
+ f("path", {
32
+ "fill-rule": "evenodd",
33
+ d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z",
34
+ "clip-rule": "evenodd"
35
+ })
36
+ ]);
37
+ }
38
+ export {
39
+ b as _,
40
+ g as r
41
+ };
@@ -1,23 +1,34 @@
1
- import { createElementBlock as m, openBlock as n, createElementVNode as u, defineComponent as Z, ref as h, computed as D, createBlock as x, unref as r, mergeProps as F, withCtx as g, createCommentVNode as p, renderSlot as d, createVNode as b, resolveDynamicComponent as O, withModifiers as P, Fragment as q, renderList as z, createTextVNode as U, toDisplayString as $, normalizeClass as G } from "vue";
1
+ import { openBlock as n, createElementBlock as c, createElementVNode as i, defineComponent as j, ref as h, computed as D, createBlock as x, unref as r, mergeProps as F, withCtx as g, renderSlot as m, resolveDynamicComponent as O, createCommentVNode as p, createVNode as b, withModifiers as P, Fragment as q, renderList as z, createTextVNode as U, toDisplayString as w, normalizeClass as G } from "vue";
2
2
  import { useDebounceFn as H } from "@vueuse/core";
3
3
  import { Combobox as J, ComboboxInput as Q, ComboboxButton as W, ComboboxOptions as X, ComboboxOption as Y } from "@headlessui/vue";
4
- import { r as _, a as ee, _ as te } from "./XMarkIcon-DdMV8USU.js";
5
- import { S as le } from "./icon-spinner-CP0VP_YM.js";
6
- function oe(e, w) {
7
- return n(), m("svg", {
4
+ import { r as _, _ as ee } from "./ChevronDownIcon-BYWciGnh.js";
5
+ import { S as te } from "./icon-spinner-BYCMrTdL.js";
6
+ function le(e, V) {
7
+ return n(), c("svg", {
8
8
  xmlns: "http://www.w3.org/2000/svg",
9
9
  viewBox: "0 0 16 16",
10
10
  fill: "currentColor",
11
11
  "aria-hidden": "true",
12
12
  "data-slot": "icon"
13
13
  }, [
14
- u("path", {
14
+ i("path", {
15
15
  "fill-rule": "evenodd",
16
16
  d: "M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm2.78-4.22a.75.75 0 0 1-1.06 0L8 9.06l-1.72 1.72a.75.75 0 1 1-1.06-1.06L6.94 8 5.22 6.28a.75.75 0 0 1 1.06-1.06L8 6.94l1.72-1.72a.75.75 0 1 1 1.06 1.06L9.06 8l1.72 1.72a.75.75 0 0 1 0 1.06Z",
17
17
  "clip-rule": "evenodd"
18
18
  })
19
19
  ]);
20
20
  }
21
+ function oe(e, V) {
22
+ return n(), c("svg", {
23
+ xmlns: "http://www.w3.org/2000/svg",
24
+ viewBox: "0 0 20 20",
25
+ fill: "currentColor",
26
+ "aria-hidden": "true",
27
+ "data-slot": "icon"
28
+ }, [
29
+ i("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
30
+ ]);
31
+ }
21
32
  const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrapper" }, ie = { class: "rvc-combobox-field" }, ue = {
22
33
  key: 0,
23
34
  class: "rvc-combobox-chips"
@@ -27,7 +38,7 @@ const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrap
27
38
  }, ce = {
28
39
  key: 1,
29
40
  class: "rvc-combobox-content"
30
- }, de = { class: "rvc-combobox-option-text" }, he = /* @__PURE__ */ Z({
41
+ }, de = { class: "rvc-combobox-option-text" }, he = /* @__PURE__ */ j({
31
42
  inheritAttrs: !1,
32
43
  __name: "Combobox",
33
44
  props: {
@@ -56,44 +67,44 @@ const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrap
56
67
  onCancel: { type: Function, default: void 0 }
57
68
  },
58
69
  emits: ["update:modelValue", "update:requestParams", "combobox:noResults", "combobox:error"],
59
- setup(e, { emit: w }) {
60
- const a = e, c = w, i = h([]), v = h(!1), f = h(null), L = h(!0), V = h(null), s = D({
70
+ setup(e, { emit: V }) {
71
+ const a = e, d = V, u = h([]), v = h(!1), f = h(null), L = h(!0), k = h(null), s = D({
61
72
  get: () => a.multiple ? a.modelValue || [] : a.modelValue,
62
- set: (t) => c("update:modelValue", t)
73
+ set: (t) => d("update:modelValue", t)
63
74
  }), T = D({
64
75
  get: () => a.requestParams,
65
- set: (t) => c("update:requestParams", t)
66
- }), N = (t) => a.displayValue(t) || "", R = (t) => new Promise((o) => {
76
+ set: (t) => d("update:requestParams", t)
77
+ }), N = (t) => a.displayValue(t) || "", M = (t) => new Promise((o) => {
67
78
  setTimeout(o, t);
68
79
  }), A = (t, o) => {
69
- i.value = [], c("combobox:error", t), c("combobox:noResults", o);
70
- }, I = async (t) => {
80
+ u.value = [], d("combobox:error", t), d("combobox:noResults", o);
81
+ }, B = async (t) => {
71
82
  if (!a.onSearch) return;
72
83
  if (a.searchOnly && !t) {
73
- i.value = [];
84
+ u.value = [];
74
85
  return;
75
86
  }
76
87
  if (t && t.length < a.minLength) {
77
- i.value = [];
88
+ u.value = [];
78
89
  return;
79
90
  }
80
- V.value && a.onCancel && a.onCancel(V.value), v.value = !0;
91
+ k.value && a.onCancel && a.onCancel(k.value), v.value = !0;
81
92
  const o = Date.now();
82
93
  try {
83
- const { data: l, error: y, cancel: j } = await a.onSearch(t, T.value, a.endpoint);
84
- V.value = j || null;
85
- const k = a.responseData(l), K = Date.now() - o;
86
- !k.length && y && A(y, t), K < a.minLoadingTime && await R(a.minLoadingTime - K), k?.length ? i.value = k : (i.value = [], c("combobox:noResults", t));
94
+ const { data: l, error: y, cancel: Z } = await a.onSearch(t, T.value, a.endpoint);
95
+ k.value = Z || null;
96
+ const $ = a.responseData(l), K = Date.now() - o;
97
+ !$.length && y && A(y, t), K < a.minLoadingTime && await M(a.minLoadingTime - K), $?.length ? u.value = $ : (u.value = [], d("combobox:noResults", t));
87
98
  } catch (l) {
88
99
  l?.cancelled || A(l, t);
89
100
  } finally {
90
101
  v.value = !1;
91
102
  }
92
- }, E = H(I, a.debounce), S = (t) => {
93
- L.value ? (L.value = !1, I(t)) : E(t);
94
- }, M = (t) => {
95
- t.target.value?.length === 0 && (i.value = [], c("update:modelValue", null)), a.manualInput && c("update:modelValue", T.value.query);
96
- }, C = (t) => a.multiple ? s.value.some((o) => o[a.itemKey] === t) : s.value?.[a.itemKey] === t, B = (t) => {
103
+ }, R = H(B, a.debounce), I = (t) => {
104
+ L.value ? (L.value = !1, B(t)) : R(t);
105
+ }, E = (t) => {
106
+ t.target.value?.length === 0 && (u.value = [], d("update:modelValue", null)), a.manualInput && d("update:modelValue", T.value.query);
107
+ }, C = (t) => a.multiple ? s.value.some((o) => o[a.itemKey] === t) : s.value?.[a.itemKey] === t, S = (t) => {
97
108
  s.value = s.value.filter((o) => o[a.itemKey] !== t[a.itemKey]);
98
109
  };
99
110
  return (t, o) => (n(), x(r(J), F({
@@ -109,10 +120,10 @@ const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrap
109
120
  ]
110
121
  }), {
111
122
  default: g(() => [
112
- u("div", ae, [
113
- u("div", ne, [
114
- u("div", ie, [
115
- e.prefixIcon ? d(t.$slots, "prefixIcon", {
123
+ i("div", ae, [
124
+ i("div", ne, [
125
+ i("div", ie, [
126
+ e.prefixIcon ? m(t.$slots, "prefixIcon", {
116
127
  key: 0,
117
128
  icon: e.prefixIcon
118
129
  }, () => [
@@ -123,22 +134,22 @@ const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrap
123
134
  "display-value": N,
124
135
  disabled: e.disabled,
125
136
  autocomplete: "off",
126
- onChange: o[0] || (o[0] = (l) => S(l.target.value)),
127
- onSearch: M,
137
+ onChange: o[0] || (o[0] = (l) => I(l.target.value)),
138
+ onSearch: E,
128
139
  onInput: o[1] || (o[1] = (l) => f.value = l.target.value)
129
140
  }), null, 16, ["id", "disabled"]),
130
141
  b(r(W), {
131
142
  disabled: e.disabled,
132
143
  class: "rvc-combobox-button",
133
- onClick: o[2] || (o[2] = (l) => S(f.value || null))
144
+ onClick: o[2] || (o[2] = (l) => I(f.value || null))
134
145
  }, {
135
146
  default: g(() => [
136
- v.value ? d(t.$slots, "spinner", {
147
+ v.value ? m(t.$slots, "spinner", {
137
148
  key: 0,
138
149
  spinning: v.value
139
150
  }, () => [
140
- b(r(le), { class: "rvc-combobox-spinner" })
141
- ]) : (!e.searchOnly || i.value?.length) && !v.value ? d(t.$slots, "icon", {
151
+ b(r(te), { class: "rvc-combobox-spinner" })
152
+ ]) : (!e.searchOnly || u.value?.length) && !v.value ? m(t.$slots, "icon", {
142
153
  key: 1,
143
154
  icon: e.icon
144
155
  }, () => [
@@ -148,40 +159,40 @@ const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrap
148
159
  _: 3
149
160
  }, 8, ["disabled"])
150
161
  ]),
151
- e.clearable && (Array.isArray(e.modelValue) ? e.modelValue?.length : e.modelValue?.id) ? (n(), m("button", {
162
+ e.clearable && (Array.isArray(e.modelValue) ? e.modelValue?.length : e.modelValue?.id) ? (n(), c("button", {
152
163
  key: 0,
153
164
  type: "button",
154
165
  "aria-label": "Clear selection",
155
166
  class: "rvc-combobox-clear",
156
- onClick: o[3] || (o[3] = P((l) => c("update:modelValue", e.multiple ? [] : null), ["prevent"]))
167
+ onClick: o[3] || (o[3] = P((l) => d("update:modelValue", e.multiple ? [] : null), ["prevent"]))
157
168
  }, [
158
- d(t.$slots, "clear", {}, () => [
159
- b(r(ee))
169
+ m(t.$slots, "clear", {}, () => [
170
+ b(r(oe))
160
171
  ])
161
172
  ])) : p("", !0)
162
173
  ]),
163
- e.multiple && Array.isArray(s.value) && s.value?.length ? (n(), m("ul", ue, [
164
- (n(!0), m(q, null, z(s.value, (l) => (n(), m("li", {
174
+ e.multiple && Array.isArray(s.value) && s.value?.length ? (n(), c("ul", ue, [
175
+ (n(!0), c(q, null, z(s.value, (l) => (n(), c("li", {
165
176
  key: `${e.id}-selected-option-${l[e.itemKey]}`
166
177
  }, [
167
- d(t.$slots, "chip", {
178
+ m(t.$slots, "chip", {
168
179
  optionText: e.optionText(l),
169
180
  option: l,
170
- removeOption: B
181
+ removeOption: S
171
182
  }, () => [
172
- b(te, {
183
+ b(ee, {
173
184
  color: "gray",
174
185
  class: "rvc-combobox-chip",
175
186
  size: e.size
176
187
  }, {
177
188
  default: g(() => [
178
- U($(e.optionText(l)) + " ", 1),
179
- u("button", {
189
+ U(w(e.optionText(l)) + " ", 1),
190
+ i("button", {
180
191
  type: "button",
181
192
  "aria-label": "Remove option",
182
- onClick: P((y) => B(l), ["prevent"])
193
+ onClick: P((y) => S(l), ["prevent"])
183
194
  }, [
184
- b(r(oe))
195
+ b(r(le))
185
196
  ], 8, se)
186
197
  ]),
187
198
  _: 2
@@ -189,40 +200,40 @@ const ae = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrap
189
200
  ])
190
201
  ]))), 128))
191
202
  ])) : p("", !0),
192
- (!e.searchOnly || f.value?.length) && (!v.value || i.value.length) ? (n(), x(r(X), {
203
+ (!e.searchOnly || f.value?.length) && (!v.value || u.value.length) ? (n(), x(r(X), {
193
204
  key: 1,
194
205
  class: "rvc-combobox-options"
195
206
  }, {
196
207
  default: g(() => [
197
- f.value && f.value.length < e.minLength ? (n(), m("div", re, [
198
- u("div", null, [
199
- u("em", null, "Minimal " + $(e.minLength) + " characters.", 1)
208
+ f.value && f.value.length < e.minLength ? (n(), c("div", re, [
209
+ i("div", null, [
210
+ i("em", null, "Minimal " + w(e.minLength) + " characters.", 1)
200
211
  ])
201
- ])) : !v.value && !i.value.length ? (n(), m("div", ce, [...o[5] || (o[5] = [
202
- u("div", null, " No results found. ", -1)
203
- ])])) : (n(!0), m(q, { key: 2 }, z(i.value, (l) => (n(), x(r(Y), {
212
+ ])) : !v.value && !u.value.length ? (n(), c("div", ce, [...o[5] || (o[5] = [
213
+ i("div", null, " No results found. ", -1)
214
+ ])])) : (n(!0), c(q, { key: 2 }, z(u.value, (l) => (n(), x(r(Y), {
204
215
  key: `option-${l[e.itemKey]}`,
205
216
  value: l,
206
217
  as: "template"
207
218
  }, {
208
219
  default: g(({ active: y }) => [
209
- u("li", {
220
+ i("li", {
210
221
  class: G([
211
222
  "rvc-combobox-option",
212
223
  { "rvc-combobox-option-hover": y },
213
224
  { "rvc-combobox-option-active": C(l[e.itemKey]) }
214
225
  ])
215
226
  }, [
216
- d(t.$slots, "option", {
227
+ m(t.$slots, "option", {
217
228
  option: l,
218
229
  isActive: C
219
230
  }, () => [
220
- d(t.$slots, "optionPrefix", {
231
+ m(t.$slots, "optionPrefix", {
221
232
  option: l[e.itemKey],
222
233
  isActive: C
223
234
  }),
224
- u("span", de, $(e.optionText(l)), 1),
225
- d(t.$slots, "optionSuffix", {
235
+ i("span", de, w(e.optionText(l)), 1),
236
+ m(t.$slots, "optionSuffix", {
226
237
  option: l[e.itemKey],
227
238
  isActive: C
228
239
  })
@@ -1,8 +1,8 @@
1
- import { defineComponent as S, createBlock as m, openBlock as c, unref as t, withCtx as d, createVNode as s, withModifiers as L, createElementVNode as a, normalizeClass as w, createElementBlock as b, renderSlot as i, createCommentVNode as y, createTextVNode as T, toDisplayString as F } from "vue";
1
+ import { defineComponent as S, openBlock as c, createBlock as m, unref as t, withCtx as d, createVNode as s, withModifiers as L, createElementVNode as a, normalizeClass as w, createElementBlock as b, renderSlot as i, createTextVNode as T, toDisplayString as F, createCommentVNode as y } from "vue";
2
2
  import { TransitionRoot as N, Dialog as V, TransitionChild as k, DialogPanel as R, DialogTitle as p } from "@headlessui/vue";
3
- import { _ as C } from "./ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js";
4
- import { u as A } from "./Modal.vue_vue_type_script_setup_true_lang-2AljJgxw.js";
5
- import { r as g } from "./XMarkIcon-90mcPzBs.js";
3
+ import { _ as C } from "./ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
+ import { u as A } from "./Modal.vue_vue_type_script_setup_true_lang-CB0Gez7v.js";
5
+ import { r as g } from "./XMarkIcon-CPr_Rd8y.js";
6
6
  const H = {
7
7
  class: "rvc-drawer-presentation",
8
8
  role: "presentation"
@@ -1,6 +1,6 @@
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";
1
+ import { openBlock as r, createElementBlock as p, 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
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";
3
+ import { _ as I } from "./ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
4
  function Z(t, c) {
5
5
  return r(), p("svg", {
6
6
  xmlns: "http://www.w3.org/2000/svg",
@@ -1,4 +1,4 @@
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";
1
+ import { computed as y, getCurrentInstance as I, defineComponent as g, useSlots as x, ref as B, openBlock as n, createElementBlock as o, normalizeClass as C, unref as s, renderSlot as i, createBlock as p, resolveDynamicComponent as f, createCommentVNode as a, normalizeProps as V, guardReactiveProps as b, withDirectives as z, mergeProps as m, vModelDynamic as F } from "vue";
2
2
  const M = () => ({ hasModelBinding: y(() => {
3
3
  const l = I();
4
4
  return !!(l?.vnode?.props && Object.prototype.hasOwnProperty.call(l.vnode.props, "onUpdate:modelValue"));
@@ -31,9 +31,9 @@ const M = () => ({ hasModelBinding: y(() => {
31
31
  e.rootClass
32
32
  ])
33
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 }, () => [
34
+ s(r).prefix || s(r).prefixIcon || e.prefixIcon ? (n(), o("span", O, [
35
+ i(t.$slots, "prefix", {}, () => [
36
+ i(t.$slots, "prefixIcon", { icon: e.prefixIcon }, () => [
37
37
  e.prefixIcon ? (n(), p(f(e.prefixIcon), {
38
38
  key: 0,
39
39
  "aria-hidden": "true"
@@ -41,8 +41,8 @@ const M = () => ({ hasModelBinding: y(() => {
41
41
  ])
42
42
  ])
43
43
  ])) : a("", !0),
44
- s(t.$slots, "input", V(b(t.$attrs)), () => [
45
- i(k) ? z((n(), o("input", m({ key: 0 }, t.$attrs, {
44
+ i(t.$slots, "input", V(b(t.$attrs)), () => [
45
+ s(k) ? z((n(), o("input", m({ key: 0 }, t.$attrs, {
46
46
  ref_key: "input",
47
47
  ref: u,
48
48
  "onUpdate:modelValue": d[0] || (d[0] = ($) => c.value = $),
@@ -55,9 +55,9 @@ const M = () => ({ hasModelBinding: y(() => {
55
55
  type: t.$attrs.type || "text"
56
56
  }), null, 16, j))
57
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 }, () => [
58
+ s(r).suffix || s(r).icon || e.icon ? (n(), o("span", D, [
59
+ i(t.$slots, "suffix", {}, () => [
60
+ i(t.$slots, "icon", { icon: e.icon }, () => [
61
61
  e.icon ? (n(), p(f(e.icon), {
62
62
  key: 0,
63
63
  "aria-hidden": "true"
@@ -1,4 +1,4 @@
1
- import { defineComponent as c, computed as p, createBlock as s, openBlock as r, unref as o, withCtx as a, createVNode as f, createCommentVNode as h, mergeProps as g, createElementVNode as V, renderSlot as w } from "vue";
1
+ import { defineComponent as c, computed as p, openBlock as s, createBlock as r, unref as o, withCtx as a, createVNode as f, mergeProps as h, createElementVNode as g, renderSlot as V, createCommentVNode as w } from "vue";
2
2
  import { SwitchGroup as v, Switch as S, SwitchLabel as b } from "@headlessui/vue";
3
3
  const C = /* @__PURE__ */ c({
4
4
  inheritAttrs: !1,
@@ -12,27 +12,27 @@ const C = /* @__PURE__ */ c({
12
12
  get: () => i.modelValue,
13
13
  set: (e) => n("update:modelValue", e)
14
14
  });
15
- return (e, t) => (r(), s(o(v), {
15
+ return (e, t) => (s(), r(o(v), {
16
16
  as: "div",
17
17
  class: "rvc-lightswitch-group"
18
18
  }, {
19
19
  default: a(() => [
20
- f(o(S), g({
20
+ f(o(S), h({
21
21
  modelValue: l.value,
22
22
  "onUpdate:modelValue": t[0] || (t[0] = (m) => l.value = m),
23
23
  class: [{ "rvc-lightswitch-enabled": l.value }, "rvc-lightswitch"]
24
24
  }, e.$attrs), {
25
25
  default: a(() => [...t[1] || (t[1] = [
26
- V("span", { class: "rvc-lightswitch-toggle" }, null, -1)
26
+ g("span", { class: "rvc-lightswitch-toggle" }, null, -1)
27
27
  ])]),
28
28
  _: 1
29
29
  }, 16, ["modelValue", "class"]),
30
- e.$slots.default ? (r(), s(o(b), { key: 0 }, {
30
+ e.$slots.default ? (s(), r(o(b), { key: 0 }, {
31
31
  default: a(() => [
32
- w(e.$slots, "default")
32
+ V(e.$slots, "default")
33
33
  ]),
34
34
  _: 3
35
- })) : h("", !0)
35
+ })) : w("", !0)
36
36
  ]),
37
37
  _: 3
38
38
  }));
@@ -1,7 +1,7 @@
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";
1
+ import { ref as C, computed as f, defineComponent as D, openBlock as p, createBlock as L, unref as o, withCtx as d, createVNode as n, withModifiers as T, createElementVNode as r, normalizeClass as I, createElementBlock as $, renderSlot as s, createTextVNode as N, toDisplayString as R, createCommentVNode as S } from "vue";
2
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
- import { r as w } from "./XMarkIcon-90mcPzBs.js";
3
+ import { _ as E } from "./ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
+ import { r as w } from "./XMarkIcon-CPr_Rd8y.js";
5
5
  function A(t) {
6
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"])'));
7
7
  return {
@@ -112,7 +112,7 @@ const H = {
112
112
  class: "rvc-modal-title"
113
113
  }, {
114
114
  default: d(() => [
115
- R(S(t.title), 1)
115
+ N(R(t.title), 1)
116
116
  ]),
117
117
  _: 1
118
118
  }, 8, ["id"])
@@ -132,7 +132,7 @@ const H = {
132
132
  n(o(w), { "aria-hidden": "true" })
133
133
  ])
134
134
  ])
135
- ]) : N("", !0)
135
+ ]) : S("", !0)
136
136
  ])
137
137
  ])
138
138
  ])),
@@ -1,9 +1,9 @@
1
- import { createElementBlock as r, openBlock as o, createElementVNode as s, defineComponent as L, ref as p, useAttrs as $, computed as x, watch as B, Fragment as C, createVNode as v, renderSlot as A, withCtx as _, normalizeClass as M, createCommentVNode as y, unref as f, renderList as E, createBlock as S, resolveDynamicComponent as U } from "vue";
1
+ import { openBlock as o, createElementBlock as r, createElementVNode as s, defineComponent as L, ref as p, useAttrs as $, computed as x, watch as B, Fragment as C, createVNode as v, withCtx as A, renderSlot as _, normalizeClass as M, unref as f, renderList as y, createBlock as E, resolveDynamicComponent as S, createCommentVNode as U } from "vue";
2
2
  import { useEditor as N, EditorContent as O } from "@tiptap/vue-3";
3
3
  import T from "@tiptap/starter-kit";
4
- import { _ as z } from "./Tooltip.vue_vue_type_script_setup_true_lang-CKp1wzE2.js";
5
- import { _ as D } from "./FormInput.vue_vue_type_script_setup_true_lang-C_1WSzbH.js";
6
- import { _ as I } from "./Modal.vue_vue_type_script_setup_true_lang-2AljJgxw.js";
4
+ import { _ as z } from "./Tooltip.vue_vue_type_script_setup_true_lang-B3MHy48T.js";
5
+ import { _ as D } from "./FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js";
6
+ import { _ as I } from "./Modal.vue_vue_type_script_setup_true_lang-CB0Gez7v.js";
7
7
  function q(n, c) {
8
8
  return o(), r("svg", {
9
9
  xmlns: "http://www.w3.org/2000/svg",
@@ -187,7 +187,7 @@ const j = { class: "rvc-rich-text-toolbar" }, G = ["disabled", "aria-label", "on
187
187
  "onModal:close": i[1] || (i[1] = (t) => u.value = !1),
188
188
  "onModal:save": H
189
189
  }, {
190
- default: _(() => [
190
+ default: A(() => [
191
191
  v(D, {
192
192
  modelValue: d.value,
193
193
  "onUpdate:modelValue": i[0] || (i[0] = (t) => d.value = t),
@@ -198,17 +198,17 @@ const j = { class: "rvc-rich-text-toolbar" }, G = ["disabled", "aria-label", "on
198
198
  ]),
199
199
  _: 1
200
200
  }, 8, ["id", "show"]),
201
- A(l.$slots, "default"),
201
+ _(l.$slots, "default"),
202
202
  s("div", {
203
203
  class: M(["rvc-rich-text", n.rootClass, { "rvc-rich-text-disabled": n.disabled }])
204
204
  }, [
205
- f(e) ? A(l.$slots, "toolbar", {
205
+ f(e) ? _(l.$slots, "toolbar", {
206
206
  key: 0,
207
207
  commands: g.value,
208
208
  tiptap: f(e)
209
209
  }, () => [
210
210
  s("ul", j, [
211
- (o(!0), r(C, null, E(g.value.filter((t) => t.isVisible), (t) => (o(), r("li", {
211
+ (o(!0), r(C, null, y(g.value.filter((t) => t.isVisible), (t) => (o(), r("li", {
212
212
  key: `toolbar-item-command-${t.name}`
213
213
  }, [
214
214
  v(z, {
@@ -217,7 +217,7 @@ const j = { class: "rvc-rich-text-toolbar" }, G = ["disabled", "aria-label", "on
217
217
  size: "sm",
218
218
  class: "rvc-rich-text-tooltip"
219
219
  }, {
220
- default: _(() => [
220
+ default: A(() => [
221
221
  s("button", {
222
222
  disabled: t.disabled,
223
223
  type: "button",
@@ -225,14 +225,14 @@ const j = { class: "rvc-rich-text-toolbar" }, G = ["disabled", "aria-label", "on
225
225
  class: M([{ "rvc-rich-text-button-active": t.isActive() }, "rvc-rich-text-button"]),
226
226
  onClick: t.action
227
227
  }, [
228
- (o(), S(U(t.icon)))
228
+ (o(), E(S(t.icon)))
229
229
  ], 10, G)
230
230
  ]),
231
231
  _: 2
232
232
  }, 1032, ["content"])
233
233
  ]))), 128))
234
234
  ])
235
- ]) : y("", !0),
235
+ ]) : U("", !0),
236
236
  v(f(O), { editor: f(e) }, null, 8, ["editor"])
237
237
  ], 2)
238
238
  ], 64));