@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
@@ -1,836 +0,0 @@
1
- import { createElementBlock as n, openBlock as t, createElementVNode as u, defineComponent as L, Fragment as C, renderList as P, renderSlot as c, createTextVNode as T, toDisplayString as y, createVNode as V, unref as p, normalizeClass as $, createBlock as B, resolveDynamicComponent as I, withCtx as A, createCommentVNode as h, computed as x, useAttrs as R, ref as S, withDirectives as z, mergeProps as k, vModelDynamic as U, normalizeProps as H, guardReactiveProps as G, vModelSelect as J, useSlots as Q, watch as X, withKeys as Z, withModifiers as E, vModelText as Y } from "vue";
2
- import { r as _ } from "./XMarkIcon-90mcPzBs.js";
3
- import { u as j } from "./FormInput.vue_vue_type_script_setup_true_lang-C_1WSzbH.js";
4
- import { S as ee } from "./icon-spinner-CP0VP_YM.js";
5
- import { _ as D } from "./ButtonBase.vue_vue_type_script_setup_true_lang-BLm8QzEC.js";
6
- import { r as te, a as le } from "./XMarkIcon-DdMV8USU.js";
7
- function ae(e, r) {
8
- return t(), n("svg", {
9
- xmlns: "http://www.w3.org/2000/svg",
10
- viewBox: "0 0 24 24",
11
- fill: "currentColor",
12
- "aria-hidden": "true",
13
- "data-slot": "icon"
14
- }, [
15
- u("path", {
16
- "fill-rule": "evenodd",
17
- d: "M19.916 4.626a.75.75 0 0 1 .208 1.04l-9 13.5a.75.75 0 0 1-1.154.114l-6-6a.75.75 0 0 1 1.06-1.06l5.353 5.353 8.493-12.74a.75.75 0 0 1 1.04-.207Z",
18
- "clip-rule": "evenodd"
19
- })
20
- ]);
21
- }
22
- function ne(e, r) {
23
- return t(), n("svg", {
24
- xmlns: "http://www.w3.org/2000/svg",
25
- viewBox: "0 0 24 24",
26
- fill: "currentColor",
27
- "aria-hidden": "true",
28
- "data-slot": "icon"
29
- }, [
30
- u("path", {
31
- "fill-rule": "evenodd",
32
- d: "M12 3.75a.75.75 0 0 1 .75.75v6.75h6.75a.75.75 0 0 1 0 1.5h-6.75v6.75a.75.75 0 0 1-1.5 0v-6.75H4.5a.75.75 0 0 1 0-1.5h6.75V4.5a.75.75 0 0 1 .75-.75Z",
33
- "clip-rule": "evenodd"
34
- })
35
- ]);
36
- }
37
- const se = { class: "rvc-accordion" }, oe = ["open", "name"], ie = ["innerHTML"], tt = /* @__PURE__ */ L({
38
- __name: "Accordion",
39
- props: {
40
- items: {},
41
- name: {},
42
- defaultOpenIndex: {},
43
- contentClass: {}
44
- },
45
- setup(e) {
46
- return (r, d) => (t(), n("div", se, [
47
- (t(!0), n(C, null, P(e.items, (f, s) => (t(), n("details", {
48
- key: s,
49
- open: e.defaultOpenIndex === s,
50
- name: e.name
51
- }, [
52
- u("summary", null, [
53
- c(r.$slots, "summary", {
54
- item: f,
55
- index: s
56
- }, () => [
57
- T(y(f.title) + " ", 1),
58
- c(r.$slots, "icon", { classList: "rvc-accordion-icon" }, () => [
59
- V(p(ne), { class: "rvc-accordion-icon" })
60
- ])
61
- ])
62
- ]),
63
- u("div", {
64
- class: $(["rvc-accordion-content", e.contentClass])
65
- }, [
66
- c(r.$slots, "content", {
67
- item: f,
68
- index: s
69
- }, () => [
70
- u("div", {
71
- innerHTML: f.content
72
- }, null, 8, ie)
73
- ])
74
- ], 2)
75
- ], 8, oe))), 128))
76
- ]));
77
- }
78
- }), re = { class: "rvc-alert-title" }, lt = /* @__PURE__ */ L({
79
- __name: "Alert",
80
- props: {
81
- as: { default: "div" },
82
- title: { default: "" },
83
- icon: { type: [Function, Object, null], default: null },
84
- type: { default: "info" },
85
- close: { type: Boolean, default: !1 }
86
- },
87
- emits: ["alert:close"],
88
- setup(e) {
89
- return (r, d) => (t(), B(I(e.as), {
90
- class: $(["rvc-alert", `rvc-alert-${e.type}`])
91
- }, {
92
- default: A(() => [
93
- c(r.$slots, "icon", {}, () => [
94
- e.icon ? (t(), B(I(e.icon), {
95
- key: 0,
96
- class: "rvc-alert-icon"
97
- })) : h("", !0)
98
- ]),
99
- u("div", null, [
100
- c(r.$slots, "title", {}, () => [
101
- u("span", re, y(e.title), 1)
102
- ]),
103
- c(r.$slots, "default")
104
- ]),
105
- c(r.$slots, "close", {}, () => [
106
- e.close ? (t(), n("button", {
107
- key: 0,
108
- type: "button",
109
- class: "rvc-alert-close",
110
- onClick: d[0] || (d[0] = (f) => r.$emit("alert:close"))
111
- }, [
112
- V(p(_))
113
- ])) : h("", !0)
114
- ])
115
- ]),
116
- _: 3
117
- }, 8, ["class"]));
118
- }
119
- }), ce = { class: "rvc-checkbox-input" }, ue = {
120
- key: 0,
121
- class: "rvc-checkbox-label"
122
- }, at = /* @__PURE__ */ L({
123
- inheritAttrs: !1,
124
- __name: "Checkbox",
125
- props: {
126
- modelValue: { type: [Number, String, Object, Array, Boolean, null], default: null },
127
- label: { default: "" },
128
- rootClass: { default: "" }
129
- },
130
- emits: ["update:modelValue"],
131
- setup(e, { emit: r }) {
132
- const d = e, f = r, s = x({
133
- get: () => d.modelValue,
134
- set: (l) => f("update:modelValue", l)
135
- }), { hasModelBinding: v } = j(), g = R(), a = x(() => ({
136
- ...g,
137
- type: "checkbox"
138
- })), o = S(null);
139
- return (l, i) => (t(), n("label", {
140
- class: $(["rvc-checkbox", e.rootClass])
141
- }, [
142
- u("div", ce, [
143
- p(v) ? z((t(), n("input", k({ key: 0 }, a.value, {
144
- ref_key: "input",
145
- ref: o,
146
- "onUpdate:modelValue": i[0] || (i[0] = (b) => s.value = b)
147
- }), null, 16)), [
148
- [U, s.value]
149
- ]) : (t(), n("input", k({ key: 1 }, a.value, {
150
- ref_key: "input",
151
- ref: o
152
- }), null, 16)),
153
- c(l.$slots, "icon", {}, () => [
154
- V(p(ae))
155
- ])
156
- ]),
157
- c(l.$slots, "default", { label: e.label }, () => [
158
- e.label ? (t(), n("span", ue, y(e.label), 1)) : h("", !0)
159
- ])
160
- ], 2));
161
- }
162
- });
163
- function de(e, r) {
164
- return t(), n("svg", {
165
- xmlns: "http://www.w3.org/2000/svg",
166
- viewBox: "0 0 16 16",
167
- fill: "currentColor",
168
- "aria-hidden": "true",
169
- "data-slot": "icon"
170
- }, [
171
- u("path", {
172
- "fill-rule": "evenodd",
173
- d: "M8 14a.75.75 0 0 1-.75-.75V4.56L4.03 7.78a.75.75 0 0 1-1.06-1.06l4.5-4.5a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1-1.06 1.06L8.75 4.56v8.69A.75.75 0 0 1 8 14Z",
174
- "clip-rule": "evenodd"
175
- })
176
- ]);
177
- }
178
- function ve(e, r) {
179
- return t(), n("svg", {
180
- xmlns: "http://www.w3.org/2000/svg",
181
- viewBox: "0 0 20 20",
182
- fill: "currentColor",
183
- "aria-hidden": "true",
184
- "data-slot": "icon"
185
- }, [
186
- u("path", {
187
- "fill-rule": "evenodd",
188
- d: "M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z",
189
- "clip-rule": "evenodd"
190
- })
191
- ]);
192
- }
193
- function fe(e, r) {
194
- return t(), n("svg", {
195
- xmlns: "http://www.w3.org/2000/svg",
196
- viewBox: "0 0 20 20",
197
- fill: "currentColor",
198
- "aria-hidden": "true",
199
- "data-slot": "icon"
200
- }, [
201
- u("path", {
202
- "fill-rule": "evenodd",
203
- d: "M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z",
204
- "clip-rule": "evenodd"
205
- })
206
- ]);
207
- }
208
- function ge(e, r) {
209
- return t(), n("svg", {
210
- xmlns: "http://www.w3.org/2000/svg",
211
- viewBox: "0 0 20 20",
212
- fill: "currentColor",
213
- "aria-hidden": "true",
214
- "data-slot": "icon"
215
- }, [
216
- u("path", {
217
- "fill-rule": "evenodd",
218
- d: "M8.75 1A2.75 2.75 0 0 0 6 3.75v.443c-.795.077-1.584.176-2.365.298a.75.75 0 1 0 .23 1.482l.149-.022.841 10.518A2.75 2.75 0 0 0 7.596 19h4.807a2.75 2.75 0 0 0 2.742-2.53l.841-10.52.149.023a.75.75 0 0 0 .23-1.482A41.03 41.03 0 0 0 14 4.193V3.75A2.75 2.75 0 0 0 11.25 1h-2.5ZM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4ZM8.58 7.72a.75.75 0 0 0-1.5.06l.3 7.5a.75.75 0 1 0 1.5-.06l-.3-7.5Zm4.34.06a.75.75 0 1 0-1.5-.06l-.3 7.5a.75.75 0 1 0 1.5.06l.3-7.5Z",
219
- "clip-rule": "evenodd"
220
- })
221
- ]);
222
- }
223
- const me = ["value"], be = ["value"], K = /* @__PURE__ */ L({
224
- inheritAttrs: !1,
225
- __name: "FormSelect",
226
- props: {
227
- modelValue: { type: [String, Number, Object, Boolean, null], default: null },
228
- rootClass: { default: "" },
229
- prefixIcon: { type: [Function, Object, null], default: null },
230
- icon: { type: [Function, Object, null], default: null },
231
- size: { default: "base" },
232
- options: { default: () => [] },
233
- optionLabel: { default: "name" },
234
- optionValue: { default: "id" }
235
- },
236
- emits: ["update:modelValue"],
237
- setup(e, { emit: r }) {
238
- const d = e, f = r, s = x({
239
- get: () => d.modelValue,
240
- set: (a) => f("update:modelValue", a)
241
- }), { hasModelBinding: v } = j(), g = S(null);
242
- return (a, o) => (t(), n("div", {
243
- class: $([
244
- "rvc-select",
245
- `rvc-select-${e.size}`,
246
- e.rootClass
247
- ])
248
- }, [
249
- e.prefixIcon ? c(a.$slots, "prefixIcon", {
250
- key: 0,
251
- icon: e.prefixIcon
252
- }, () => [
253
- (t(), B(I(e.prefixIcon), { "aria-hidden": "true" }))
254
- ]) : h("", !0),
255
- c(a.$slots, "select", H(G(a.$attrs)), () => [
256
- p(v) ? z((t(), n("select", k({ key: 0 }, a.$attrs, {
257
- ref_key: "select",
258
- ref: g,
259
- "onUpdate:modelValue": o[0] || (o[0] = (l) => s.value = l)
260
- }), [
261
- c(a.$slots, "default", {}, () => [
262
- e.options.length > 0 ? (t(!0), n(C, { key: 0 }, P(e.options, (l, i) => (t(), n("option", {
263
- key: `option-${i}-${l[e.optionValue]}`,
264
- value: l[e.optionValue]
265
- }, y(l[e.optionLabel]), 9, me))), 128)) : h("", !0)
266
- ])
267
- ], 16)), [
268
- [J, s.value]
269
- ]) : (t(), n("select", k({ key: 1 }, a.$attrs, {
270
- ref_key: "select",
271
- ref: g
272
- }), [
273
- c(a.$slots, "default", {}, () => [
274
- e.options.length > 0 ? (t(!0), n(C, { key: 0 }, P(e.options, (l, i) => (t(), n("option", {
275
- key: `option-${i}-${l[e.optionValue]}`,
276
- value: l[e.optionValue]
277
- }, y(l[e.optionLabel]), 9, be))), 128)) : h("", !0)
278
- ])
279
- ], 16))
280
- ]),
281
- c(a.$slots, "icon", { icon: e.icon }, () => [
282
- (t(), B(I(e.icon ?? p(te)), { "aria-hidden": "true" }))
283
- ])
284
- ], 2));
285
- }
286
- }), he = {
287
- key: 0,
288
- class: "rvc-pagination"
289
- }, ye = ["value"], pe = { class: "rvc-pagination-info" }, $e = { class: "rvc-pagination-nav-list" }, ke = ["disabled", "onClick"], we = { key: 2 }, Ve = { key: 3 }, Ce = /* @__PURE__ */ L({
290
- __name: "Pagination",
291
- props: {
292
- pagination: {},
293
- perPage: { default: 10 },
294
- perPageLabel: { default: "per page" },
295
- perPageOptions: { default: () => [10, 20, 50] },
296
- fromLabel: { default: "of" }
297
- },
298
- emits: ["pagination:change", "pagination:perPage"],
299
- setup(e, { emit: r }) {
300
- const d = e, f = r, s = S(d.perPage);
301
- return (v, g) => e.pagination?.total ? (t(), n("div", he, [
302
- c(v.$slots, "perPage", k(e.pagination, { perPage: s.value }), () => [
303
- V(K, {
304
- modelValue: s.value,
305
- "onUpdate:modelValue": [
306
- g[0] || (g[0] = (a) => s.value = a),
307
- g[1] || (g[1] = (a) => f("pagination:perPage", Number(a)))
308
- ],
309
- size: "sm",
310
- "root-class": "rvc-pagination-per-page"
311
- }, {
312
- default: A(() => [
313
- (t(!0), n(C, null, P(e.perPageOptions, (a) => (t(), n("option", {
314
- key: `pagination-items-per-page-option-${a}`,
315
- value: a
316
- }, y(a) + " " + y(e.perPageLabel), 9, ye))), 128))
317
- ]),
318
- _: 1
319
- }, 8, ["modelValue"])
320
- ]),
321
- c(v.$slots, "info", k(e.pagination, { fromLabel: e.fromLabel }), () => [
322
- u("div", pe, y(e.pagination.from) + " - " + y(e.pagination.to) + " " + y(e.fromLabel) + " " + y(e.pagination.total), 1)
323
- ]),
324
- u("nav", null, [
325
- u("ol", $e, [
326
- (t(!0), n(C, null, P(e.pagination.links, (a, o) => (t(), n("li", {
327
- key: `pagination-link-${a.label}-${o}`,
328
- class: "rvc-pagination-nav-list-item"
329
- }, [
330
- u("button", {
331
- type: "button",
332
- disabled: a.label === "..." || !a.url,
333
- class: $([
334
- "rvc-pagination-button",
335
- { "rvc-pagination-button-active": a.active }
336
- ]),
337
- onClick: (l) => a.url && f("pagination:change", a.url)
338
- }, [
339
- a.url !== "..." && o === 0 ? (t(), B(p(ve), {
340
- key: 0,
341
- "aria-hidden": "true",
342
- class: $([
343
- "rvc-pagination-button-icon",
344
- { "rvc-pagination-button-icon-disabled": !a.url }
345
- ])
346
- }, null, 8, ["class"])) : a.label !== "..." && o === e.pagination.links.length - 1 ? (t(), B(p(fe), {
347
- key: 1,
348
- "aria-hidden": "true",
349
- class: $([
350
- "rvc-pagination-button-icon",
351
- { "rvc-pagination-button-icon-disabled": !a.url }
352
- ])
353
- }, null, 8, ["class"])) : a.label === "..." ? (t(), n("span", we, " ... ")) : (t(), n("span", Ve, y(a.label), 1))
354
- ], 10, ke)
355
- ]))), 128))
356
- ])
357
- ])
358
- ])) : h("", !0);
359
- }
360
- }), xe = { key: 0 }, Be = ["aria-label", "onClick"], Le = ["innerHTML"], Pe = { key: 1 }, Ie = ["colspan"], Se = { key: 2 }, Ae = ["colspan"], Fe = { class: "rvc-table-spinner-wrapper" }, Me = { key: 1 }, nt = /* @__PURE__ */ L({
361
- __name: "DataTable",
362
- props: {
363
- headers: { default: () => [] },
364
- items: {},
365
- noResultsText: { default: "No results found." },
366
- loadingText: { default: "Loading content..." },
367
- striped: { type: Boolean, default: !1 },
368
- spinning: { type: Boolean, default: !1 },
369
- pagination: { default: null },
370
- wrapperClass: { default: "" },
371
- defaultSort: { default: null }
372
- },
373
- emits: ["table:sortBy", "pagination:change", "pagination:perPage"],
374
- setup(e, { emit: r }) {
375
- const d = e, f = r, s = S(d.defaultSort), v = (a) => d.headers.find((o) => o.key === a), g = (a) => {
376
- a.key && (!s.value || s.value.key !== a.key ? s.value = {
377
- key: a.key,
378
- direction: "asc"
379
- } : s.value.direction === "asc" ? s.value = {
380
- key: a.key,
381
- direction: "desc"
382
- } : s.value = null, f("table:sortBy", s.value));
383
- };
384
- return (a, o) => (t(), n("div", null, [
385
- u("div", {
386
- class: $(["rvc-table-wrapper", e.wrapperClass])
387
- }, [
388
- u("table", {
389
- class: $([{ "rvc-table-striped": e.striped }, "rvc-table"])
390
- }, [
391
- e.headers.length ? (t(), n("thead", xe, [
392
- c(a.$slots, "headers", { headers: e.headers }, () => [
393
- u("tr", null, [
394
- (t(!0), n(C, null, P(e.headers, (l, i) => c(a.$slots, "header", {
395
- header: l,
396
- index: i
397
- }, () => [
398
- (t(), n("th", k({ ref_for: !0 }, { ...l, id: String(l.id) }, {
399
- key: `rvc-table-header-${l.id}`,
400
- class: {
401
- "rvc-table-text-left": l.align === "left" || !l.align,
402
- "rvc-table-text-center": l.align === "center",
403
- "rvc-table-text-right": l.align === "right"
404
- }
405
- }), [
406
- l.sortable && l.key ? (t(), n("button", {
407
- key: 0,
408
- type: "button",
409
- "aria-label": `Sort on ${l.label}`,
410
- class: $([
411
- "rvc-table-sort-button",
412
- {
413
- "rvc-table-sort-button-center": l.align === "center",
414
- "rvc-table-sort-button-right": l.align === "right"
415
- }
416
- ]),
417
- onClick: (b) => g(l)
418
- }, [
419
- c(a.$slots, "header-label", {
420
- sortBy: s.value,
421
- header: l
422
- }, () => [
423
- T(y(l.label), 1)
424
- ]),
425
- V(p(de), {
426
- class: $([
427
- "rvc-table-sort-icon",
428
- {
429
- "rvc-table-sort-icon-visible": s.value?.key === l.key,
430
- "rvc-table-sort-icon-invisible": !s.value || s.value.key !== l.key,
431
- "rvc-table-sort-icon-rotated": s.value?.key === l.key && s.value.direction === "desc"
432
- }
433
- ])
434
- }, null, 8, ["class"])
435
- ], 10, Be)) : c(a.$slots, "header-label", {
436
- key: 1,
437
- sortBy: s.value,
438
- header: l
439
- }, () => [
440
- T(y(l.label), 1)
441
- ])
442
- ], 16))
443
- ])), 256))
444
- ])
445
- ])
446
- ])) : h("", !0),
447
- u("tbody", null, [
448
- e.items.length && !e.spinning ? (t(!0), n(C, { key: 0 }, P(e.items, (l, i) => c(a.$slots, "items", {
449
- item: l,
450
- index: i
451
- }, () => [
452
- (t(), n("tr", {
453
- key: `rvc-table-row-${i}-${l.id}`
454
- }, [
455
- c(a.$slots, "item", {
456
- item: l,
457
- index: i
458
- }, () => [
459
- (t(!0), n(C, null, P(l, (b, w) => (t(), n("td", k({
460
- key: `rvc-table-row-${i}-column-${w}-${l.id}`
461
- }, { ref_for: !0 }, l.attrs, {
462
- class: {
463
- "rvc-table-text-left": v(String(w))?.align === "left" || !v(String(w))?.align,
464
- "rvc-table-text-center": v(String(w))?.align === "center",
465
- "rvc-table-text-right": v(String(w))?.align === "right"
466
- },
467
- innerHTML: b
468
- }), null, 16, Le))), 128))
469
- ])
470
- ]))
471
- ])), 256)) : !e.items.length && !e.spinning ? (t(), n("tr", Pe, [
472
- u("td", {
473
- colspan: e.headers.length,
474
- class: "rvc-table-state"
475
- }, [
476
- u("p", null, y(e.noResultsText), 1)
477
- ], 8, Ie)
478
- ])) : (t(), n("tr", Se, [
479
- u("td", {
480
- colspan: e.headers.length,
481
- class: "rvc-table-state"
482
- }, [
483
- c(a.$slots, "spinner", {
484
- spinning: e.spinning,
485
- label: e.loadingText
486
- }, () => [
487
- u("div", Fe, [
488
- e.spinning ? (t(), B(p(ee), {
489
- key: 0,
490
- "aria-hidden": "true",
491
- class: "rvc-table-spinner"
492
- })) : h("", !0),
493
- T(" " + y(e.loadingText), 1)
494
- ])
495
- ])
496
- ], 8, Ae)
497
- ]))
498
- ]),
499
- a.$slots.footer ? (t(), n("tfoot", Me, [
500
- c(a.$slots, "footer", {
501
- headers: e.headers,
502
- items: e.items
503
- })
504
- ])) : h("", !0)
505
- ], 2)
506
- ], 2),
507
- e.pagination ? c(a.$slots, "pagination", H(k({ key: 0 }, e.pagination)), () => [
508
- V(Ce, {
509
- pagination: e.pagination,
510
- "onPagination:change": o[0] || (o[0] = (l) => f("pagination:change", l)),
511
- "onPagination:perPage": o[1] || (o[1] = (l) => f("pagination:perPage", l))
512
- }, null, 8, ["pagination"])
513
- ]) : h("", !0)
514
- ]));
515
- }
516
- }), Te = {
517
- key: 1,
518
- class: "rvc-empty-state-title"
519
- }, st = /* @__PURE__ */ L({
520
- __name: "EmptyState",
521
- props: {
522
- title: {},
523
- background: { type: Boolean },
524
- icon: { type: [Function, Object, null] }
525
- },
526
- setup(e) {
527
- return (r, d) => (t(), n("div", {
528
- class: $(["rvc-empty-state", { "rvc-empty-state-bg": e.background }])
529
- }, [
530
- e.icon ? (t(), B(I(e.icon), {
531
- key: 0,
532
- class: "rvc-empty-state-icon"
533
- })) : h("", !0),
534
- e.title ? (t(), n("p", Te, y(e.title), 1)) : h("", !0),
535
- c(r.$slots, "default")
536
- ], 2));
537
- }
538
- }), ze = ["onKeydown"], je = {
539
- key: 0,
540
- class: "rvc-file-prefix"
541
- }, Oe = { class: "rvc-file-label" }, Ee = {
542
- key: 1,
543
- class: "rvc-file-suffix"
544
- }, Ne = {
545
- key: 0,
546
- class: "rvc-file-preview"
547
- }, Ze = ["src", "alt"], De = {
548
- key: 1,
549
- class: "rvc-file-actions"
550
- }, Re = {
551
- key: 0,
552
- class: "rvc-file-clear"
553
- }, Ue = {
554
- key: 1,
555
- class: "rvc-file-delete"
556
- }, ot = /* @__PURE__ */ L({
557
- inheritAttrs: !1,
558
- __name: "FormFile",
559
- props: {
560
- modelValue: { default: null },
561
- rootClass: { default: "" },
562
- prefixIcon: { type: [Function, Object, null], default: null },
563
- icon: { type: [Function, Object, null], default: null },
564
- size: { default: "base" },
565
- placeholder: { default: "Choose a file..." },
566
- showPreview: { type: Boolean, default: !0 },
567
- clearLabel: { default: "Clear" },
568
- deleteLabel: { default: "Delete" }
569
- },
570
- emits: ["update:modelValue", "delete"],
571
- setup(e, { emit: r }) {
572
- const d = e, f = r, s = Q(), v = S(null), g = S(null), a = (m) => m instanceof File, o = (m) => m !== null && !a(m) && typeof m == "object" && "url" in m && "name" in m, l = x(() => d.modelValue ? d.modelValue.name : d.placeholder), i = x(() => a(d.modelValue)), b = x(() => o(d.modelValue)), w = () => {
573
- v.value && v.value.click();
574
- }, N = (m) => {
575
- const M = m.target.files?.[0] || null;
576
- f("update:modelValue", M);
577
- }, O = () => {
578
- v.value && (v.value.value = ""), f("update:modelValue", null);
579
- }, W = () => {
580
- f("delete");
581
- };
582
- return X(() => d.modelValue, (m) => {
583
- if (!m || !d.showPreview) {
584
- g.value = null;
585
- return;
586
- }
587
- if (a(m))
588
- if (m.type.startsWith("image/")) {
589
- const F = new FileReader();
590
- F.onload = (M) => {
591
- g.value = M.target?.result;
592
- }, F.readAsDataURL(m);
593
- } else
594
- g.value = null;
595
- else if (o(m)) {
596
- const M = [".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg"].some((q) => m.url.toLowerCase().endsWith(q));
597
- g.value = M ? m.url : null;
598
- }
599
- }, { immediate: !0 }), (m, F) => (t(), n("div", {
600
- class: $([
601
- "rvc-file",
602
- `rvc-file-${e.size}`,
603
- e.rootClass
604
- ])
605
- }, [
606
- u("input", k({
607
- ref_key: "fileInput",
608
- ref: v
609
- }, m.$attrs, {
610
- type: "file",
611
- class: "rvc-file-input",
612
- onChange: N
613
- }), null, 16),
614
- u("div", {
615
- class: "rvc-file-display",
616
- role: "button",
617
- tabindex: "0",
618
- onClick: w,
619
- onKeydown: [
620
- Z(w, ["enter"]),
621
- Z(E(w, ["prevent"]), ["space"])
622
- ]
623
- }, [
624
- p(s).prefix || p(s).prefixIcon || e.prefixIcon ? (t(), n("span", je, [
625
- c(m.$slots, "prefix", {}, () => [
626
- c(m.$slots, "prefixIcon", { icon: e.prefixIcon }, () => [
627
- e.prefixIcon ? (t(), B(I(e.prefixIcon), {
628
- key: 0,
629
- "aria-hidden": "true"
630
- })) : h("", !0)
631
- ])
632
- ])
633
- ])) : h("", !0),
634
- u("span", Oe, y(l.value), 1),
635
- p(s).suffix || p(s).icon || e.icon ? (t(), n("span", Ee, [
636
- c(m.$slots, "suffix", {}, () => [
637
- c(m.$slots, "icon", { icon: e.icon }, () => [
638
- e.icon ? (t(), B(I(e.icon), {
639
- key: 0,
640
- "aria-hidden": "true"
641
- })) : h("", !0)
642
- ])
643
- ])
644
- ])) : h("", !0)
645
- ], 40, ze),
646
- g.value ? (t(), n("div", Ne, [
647
- u("img", {
648
- src: g.value,
649
- alt: l.value,
650
- class: "rvc-file-preview-image"
651
- }, null, 8, Ze)
652
- ])) : h("", !0),
653
- i.value || b.value ? (t(), n("div", De, [
654
- i.value ? (t(), n("div", Re, [
655
- V(D, {
656
- color: "clear",
657
- size: e.size,
658
- label: e.clearLabel,
659
- onClick: E(O, ["prevent"])
660
- }, {
661
- icon: A(() => [
662
- c(m.$slots, "clearIcon", {}, () => [
663
- V(p(le))
664
- ])
665
- ]),
666
- _: 3
667
- }, 8, ["size", "label"])
668
- ])) : h("", !0),
669
- b.value ? (t(), n("div", Ue, [
670
- V(D, {
671
- color: "clear",
672
- size: e.size,
673
- label: e.deleteLabel,
674
- onClick: E(W, ["prevent"])
675
- }, {
676
- icon: A(() => [
677
- c(m.$slots, "deleteIcon", {}, () => [
678
- V(p(ge))
679
- ])
680
- ]),
681
- _: 3
682
- }, 8, ["size", "label"])
683
- ])) : h("", !0)
684
- ])) : h("", !0)
685
- ], 2));
686
- }
687
- }), it = /* @__PURE__ */ L({
688
- __name: "FormTextarea",
689
- props: {
690
- modelValue: { default: void 0 },
691
- size: { default: "base" }
692
- },
693
- emits: ["update:modelValue"],
694
- setup(e, { emit: r }) {
695
- const d = e, f = r, { hasModelBinding: s } = j(), v = S(null), g = x({
696
- get: () => d.modelValue,
697
- set: (o) => f("update:modelValue", o)
698
- }), a = x(() => [
699
- "rvc-textarea",
700
- `rvc-textarea-${d.size}`
701
- ]);
702
- return (o, l) => p(s) ? z((t(), n("textarea", {
703
- key: 0,
704
- ref_key: "textarea",
705
- ref: v,
706
- "onUpdate:modelValue": l[0] || (l[0] = (i) => g.value = i),
707
- class: $(a.value)
708
- }, null, 2)), [
709
- [Y, g.value]
710
- ]) : (t(), n("textarea", {
711
- key: 1,
712
- ref_key: "textarea",
713
- ref: v,
714
- class: $(a.value)
715
- }, null, 2));
716
- }
717
- }), He = { class: "rvc-radio-input" }, Ke = { class: "rvc-radio-label" }, rt = /* @__PURE__ */ L({
718
- inheritAttrs: !1,
719
- __name: "Radio",
720
- props: {
721
- modelValue: { type: [Boolean, String, Array, Object, Number, null], default: null },
722
- label: { default: "" },
723
- rootClass: { default: "" }
724
- },
725
- emits: ["update:modelValue"],
726
- setup(e, { emit: r }) {
727
- const d = e, f = r, s = x({
728
- get: () => d.modelValue,
729
- set: (l) => f("update:modelValue", l)
730
- }), { hasModelBinding: v } = j(), g = R(), a = x(() => ({
731
- ...g,
732
- type: "radio"
733
- })), o = S(null);
734
- return (l, i) => (t(), n("label", {
735
- class: $(["rvc-radio", e.rootClass])
736
- }, [
737
- u("div", He, [
738
- p(v) ? z((t(), n("input", k({ key: 0 }, a.value, {
739
- ref_key: "input",
740
- ref: o,
741
- "onUpdate:modelValue": i[0] || (i[0] = (b) => s.value = b)
742
- }), null, 16)), [
743
- [U, s.value]
744
- ]) : (t(), n("input", k({ key: 1 }, a.value, {
745
- ref_key: "input",
746
- ref: o
747
- }), null, 16))
748
- ]),
749
- c(l.$slots, "default", {}, () => [
750
- u("span", Ke, y(e.label), 1)
751
- ])
752
- ], 2));
753
- }
754
- }), We = { class: "rvc-tabs-nav" }, qe = ["value", "selected"], ct = /* @__PURE__ */ L({
755
- inheritAttrs: !1,
756
- __name: "Tabs",
757
- props: {
758
- modelValue: { default: void 0 },
759
- tabs: { default: () => [] },
760
- tabStyle: { default: "default" }
761
- },
762
- emits: ["update:modelValue", "tabs:change"],
763
- setup(e, { emit: r }) {
764
- const d = e, f = r, s = () => {
765
- const o = d.tabs.findIndex((l) => l.active);
766
- return o >= 0 ? o : 0;
767
- }, v = x({
768
- get: () => d.modelValue ?? s(),
769
- set: (o) => {
770
- const l = d.tabs[o];
771
- f("update:modelValue", o), l && f("tabs:change", l);
772
- }
773
- }), g = (o) => {
774
- const i = +o.target.value;
775
- v.value = i;
776
- const b = d.tabs[i];
777
- b?.selectEvent && b.selectEvent();
778
- }, a = (o) => {
779
- const {
780
- active: l,
781
- as: i,
782
- bindAs: b,
783
- selectEvent: w,
784
- name: N,
785
- ...O
786
- } = o;
787
- return O;
788
- };
789
- return (o, l) => (t(), n(C, null, [
790
- u("div", k(o.$attrs, {
791
- class: ["rvc-tabs", { "rvc-tabs-buttons": e.tabStyle === "buttons" }]
792
- }), [
793
- u("nav", We, [
794
- (t(!0), n(C, null, P(e.tabs, (i, b) => (t(), B(I(i.as ? i.as : "button"), k({ ref_for: !0 }, a(i), {
795
- key: `${b}-tab-item`,
796
- as: i.bindAs ? i.bindAs : void 0,
797
- class: ["rvc-tab", { "rvc-tab-active": v.value === b }],
798
- onClick: (w) => v.value = b
799
- }), {
800
- default: A(() => [
801
- T(y(i.name), 1)
802
- ]),
803
- _: 2
804
- }, 1040, ["as", "class", "onClick"]))), 128))
805
- ])
806
- ], 16),
807
- V(K, k(o.$attrs, {
808
- "root-class": "rvc-tabs-select",
809
- value: v.value,
810
- onChange: g
811
- }), {
812
- default: A(() => [
813
- (t(!0), n(C, null, P(e.tabs, (i, b) => (t(), n("option", {
814
- key: `${b}-tab-item-select-option`,
815
- value: b,
816
- selected: v.value === b
817
- }, y(i.name), 9, qe))), 128))
818
- ]),
819
- _: 1
820
- }, 16, ["value"])
821
- ], 64));
822
- }
823
- });
824
- export {
825
- tt as _,
826
- lt as a,
827
- at as b,
828
- nt as c,
829
- st as d,
830
- ot as e,
831
- K as f,
832
- it as g,
833
- Ce as h,
834
- rt as i,
835
- ct as j
836
- };