@robuust-digital/vue-components 2.5.0-beta.2 → 2.5.0-beta.4
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.
- package/CHANGELOG.md +33 -2
- package/README.md +15 -0
- 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
- package/dist/_shared/ChevronDownIcon-BYWciGnh.js +41 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/_shared/Tabs.vue_vue_type_script_setup_true_lang-B0RIqYLz.js +696 -0
- 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
- 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
- package/dist/_shared/{XMarkIcon-90mcPzBs.js → XMarkIcon-CPr_Rd8y.js} +2 -2
- package/dist/_shared/{icon-spinner-CP0VP_YM.js → icon-spinner-BYCMrTdL.js} +2 -2
- package/dist/combobox/index.js +1 -1
- package/dist/core/index.js +9 -10
- package/dist/core/pagination.css +2 -0
- package/dist/core/styles.css +0 -1
- package/dist/core/table.css +4 -1
- package/dist/core.d.ts +57 -100
- package/dist/dialogs/index.js +2 -2
- package/dist/dropdown/index.js +1 -1
- package/dist/index/index.js +22 -23
- package/dist/index.d.ts +104 -147
- package/dist/lightswitch/index.js +1 -1
- package/dist/rich-text-editor/index.js +1 -1
- package/dist/toast/index.js +1 -1
- package/dist/tooltip/index.js +1 -1
- package/package.json +37 -8
- package/dist/_shared/Tabs.vue_vue_type_script_setup_true_lang-Dc0jC2cn.js +0 -836
- package/dist/_shared/XMarkIcon-DdMV8USU.js +0 -53
- package/dist/core/file.css +0 -206
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,39 @@
|
|
|
1
|
-
## 2.4.0 (
|
|
1
|
+
## 2.4.0 (UNRELEASED)
|
|
2
2
|
|
|
3
3
|
### Added
|
|
4
4
|
|
|
5
|
-
* Added `
|
|
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
|
+
* `Pagination`: Added `--rvc-pagination-border-color` CSS variable for pagination button border customization
|
|
8
|
+
* `DataTable`: Added support for forwarding `prevIcon` and `nextIcon` props to the built-in `Pagination` component
|
|
9
|
+
|
|
10
|
+
### Updated
|
|
11
|
+
|
|
12
|
+
* `Pagination` and `DataTable` documentation: Added examples and prop documentation for custom pagination navigation icons
|
|
13
|
+
|
|
14
|
+
## 2.3.5 (09-04-2026)
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
* `DataTable`: Added `--rvc-table-head-color` CSS variable to customize header text color
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
* `DataTable`: Increased sort icon hover hint visibility by changing `.rvc-table-sort-icon-invisible` opacity from `0.3` to `0.5`
|
|
23
|
+
|
|
24
|
+
## 2.3.4 (25-03-2026)
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
* `DataTable`: Forward built-in pagination props (`perPage`, `perPageLabel`, `perPageOptions`, `fromLabel`) to the `Pagination` component
|
|
29
|
+
* `Pagination`: Keep the per-page select in sync when `perPage` is updated externally
|
|
30
|
+
|
|
31
|
+
## 2.3.3 (23-01-2026)
|
|
32
|
+
|
|
33
|
+
### Updated
|
|
34
|
+
|
|
35
|
+
* Update dependencies
|
|
36
|
+
* Added Vue as a peer dependency
|
|
6
37
|
|
|
7
38
|
## 2.3.2 (16-12-2025)
|
|
8
39
|
|
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,
|
|
2
|
-
import { S as v } from "./icon-spinner-
|
|
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 {
|
|
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 _,
|
|
5
|
-
import { S as
|
|
6
|
-
function
|
|
7
|
-
return n(),
|
|
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
|
-
|
|
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__ */
|
|
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:
|
|
60
|
-
const a = e,
|
|
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) =>
|
|
73
|
+
set: (t) => d("update:modelValue", t)
|
|
63
74
|
}), T = D({
|
|
64
75
|
get: () => a.requestParams,
|
|
65
|
-
set: (t) =>
|
|
66
|
-
}), N = (t) => a.displayValue(t) || "",
|
|
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
|
-
|
|
70
|
-
},
|
|
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
|
-
|
|
84
|
+
u.value = [];
|
|
74
85
|
return;
|
|
75
86
|
}
|
|
76
87
|
if (t && t.length < a.minLength) {
|
|
77
|
-
|
|
88
|
+
u.value = [];
|
|
78
89
|
return;
|
|
79
90
|
}
|
|
80
|
-
|
|
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:
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
-
|
|
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
|
-
},
|
|
93
|
-
L.value ? (L.value = !1,
|
|
94
|
-
},
|
|
95
|
-
t.target.value?.length === 0 && (
|
|
96
|
-
}, C = (t) => a.multiple ? s.value.some((o) => o[a.itemKey] === t) : s.value?.[a.itemKey] === 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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
e.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) =>
|
|
127
|
-
onSearch:
|
|
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) =>
|
|
144
|
+
onClick: o[2] || (o[2] = (l) => I(f.value || null))
|
|
134
145
|
}, {
|
|
135
146
|
default: g(() => [
|
|
136
|
-
v.value ?
|
|
147
|
+
v.value ? m(t.$slots, "spinner", {
|
|
137
148
|
key: 0,
|
|
138
149
|
spinning: v.value
|
|
139
150
|
}, () => [
|
|
140
|
-
b(r(
|
|
141
|
-
]) : (!e.searchOnly ||
|
|
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(),
|
|
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) =>
|
|
167
|
+
onClick: o[3] || (o[3] = P((l) => d("update:modelValue", e.multiple ? [] : null), ["prevent"]))
|
|
157
168
|
}, [
|
|
158
|
-
|
|
159
|
-
b(r(
|
|
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(),
|
|
164
|
-
(n(!0),
|
|
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
|
-
|
|
178
|
+
m(t.$slots, "chip", {
|
|
168
179
|
optionText: e.optionText(l),
|
|
169
180
|
option: l,
|
|
170
|
-
removeOption:
|
|
181
|
+
removeOption: S
|
|
171
182
|
}, () => [
|
|
172
|
-
b(
|
|
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(
|
|
179
|
-
|
|
189
|
+
U(w(e.optionText(l)) + " ", 1),
|
|
190
|
+
i("button", {
|
|
180
191
|
type: "button",
|
|
181
192
|
"aria-label": "Remove option",
|
|
182
|
-
onClick: P((y) =>
|
|
193
|
+
onClick: P((y) => S(l), ["prevent"])
|
|
183
194
|
}, [
|
|
184
|
-
b(r(
|
|
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 ||
|
|
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(),
|
|
198
|
-
|
|
199
|
-
|
|
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 && !
|
|
202
|
-
|
|
203
|
-
])])) : (n(!0),
|
|
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
|
-
|
|
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
|
-
|
|
227
|
+
m(t.$slots, "option", {
|
|
217
228
|
option: l,
|
|
218
229
|
isActive: C
|
|
219
230
|
}, () => [
|
|
220
|
-
|
|
231
|
+
m(t.$slots, "optionPrefix", {
|
|
221
232
|
option: l[e.itemKey],
|
|
222
233
|
isActive: C
|
|
223
234
|
}),
|
|
224
|
-
|
|
225
|
-
|
|
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,
|
|
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-
|
|
4
|
-
import { u as A } from "./Modal.vue_vue_type_script_setup_true_lang-
|
|
5
|
-
import { r as g } from "./XMarkIcon-
|
|
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 {
|
|
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-
|
|
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,
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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,
|
|
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) => (
|
|
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),
|
|
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
|
-
|
|
26
|
+
g("span", { class: "rvc-lightswitch-toggle" }, null, -1)
|
|
27
27
|
])]),
|
|
28
28
|
_: 1
|
|
29
29
|
}, 16, ["modelValue", "class"]),
|
|
30
|
-
e.$slots.default ? (
|
|
30
|
+
e.$slots.default ? (s(), r(o(b), { key: 0 }, {
|
|
31
31
|
default: a(() => [
|
|
32
|
-
|
|
32
|
+
V(e.$slots, "default")
|
|
33
33
|
]),
|
|
34
34
|
_: 3
|
|
35
|
-
})) :
|
|
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,
|
|
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-
|
|
4
|
-
import { r as w } from "./XMarkIcon-
|
|
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(
|
|
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
|
-
]) :
|
|
135
|
+
]) : S("", !0)
|
|
136
136
|
])
|
|
137
137
|
])
|
|
138
138
|
])),
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
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-
|
|
5
|
-
import { _ as D } from "./FormInput.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { _ as I } from "./Modal.vue_vue_type_script_setup_true_lang-
|
|
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
|
-
|
|
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) ?
|
|
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,
|
|
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(
|
|
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
|
-
]) :
|
|
235
|
+
]) : U("", !0),
|
|
236
236
|
v(f(O), { editor: f(e) }, null, 8, ["editor"])
|
|
237
237
|
], 2)
|
|
238
238
|
], 64));
|