readytech-ui-library-v2 0.0.16 → 0.0.17

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.
@@ -1 +1 @@
1
- .lv-button[data-v-ac3af47a]{border:one;background:red;padding:1rem}.class-input[data-v-f440ad26]{border:none;background:green;padding:1rem}.btn-primary[data-v-ce0d0f31]{background-color:#1976d2;color:#fff}.btn-primary[data-v-ce0d0f31]:hover{background-color:#1565c0}.btn-icon[data-v-ce0d0f31]{padding:0;width:48px;height:48px}.btn-disabled[data-v-ce0d0f31]{opacity:.6;pointer-events:none}.v-badge[aria-label][data-v-02392152]:focus{outline:2px solid #005fcc;outline-offset:4px}.avatar-wrapper[data-v-0d49dde0]{display:flex;gap:16px;justify-content:space-around}.avatar[data-v-0d49dde0]{transition:transform .3s ease;outline:none}.avatar[data-v-0d49dde0]:focus{outline:2px solid #005fcc;outline-offset:4px}.avatar[data-v-0d49dde0]:hover{transform:scale(1.1)}.avatar img[data-v-0d49dde0]{border-radius:50%;object-fit:cover}.v-breadcrumbs-wrapper[data-v-5ccff043]{padding:8px}.v-breadcrumbs-wrapper .v-btn[data-v-5ccff043]{text-transform:none;font-size:14px}.v-breadcrumbs-wrapper span[data-v-5ccff043]{color:#0009;font-size:14px}.v-alert__close[data-v-bae3eb1c]{height:28px;width:28px}.v-alert[data-v-bae3eb1c]:focus{outline:2px solid var(--alert-focus-color, #005fcc);outline-offset:4px}[v-alert][type=error][data-v-bae3eb1c]{background-color:#ffe6e6;border-color:#c00;color:#c00}[v-alert][type=success][data-v-bae3eb1c]{background-color:#e6ffe6;border-color:green;color:green}[v-alert][dense] .alert-content[data-v-bae3eb1c]{line-height:1.4;font-size:.875rem}
1
+ .v-alert__close[data-v-bae3eb1c]{height:28px;width:28px}.v-alert[data-v-bae3eb1c]:focus{outline:2px solid var(--alert-focus-color, #005fcc);outline-offset:4px}[v-alert][type=error][data-v-bae3eb1c]{background-color:#ffe6e6;border-color:#c00;color:#c00}[v-alert][type=success][data-v-bae3eb1c]{background-color:#e6ffe6;border-color:green;color:green}[v-alert][dense] .alert-content[data-v-bae3eb1c]{line-height:1.4;font-size:.875rem}.avatar-wrapper[data-v-0d49dde0]{display:flex;gap:16px;justify-content:space-around}.avatar[data-v-0d49dde0]{transition:transform .3s ease;outline:none}.avatar[data-v-0d49dde0]:focus{outline:2px solid #005fcc;outline-offset:4px}.avatar[data-v-0d49dde0]:hover{transform:scale(1.1)}.avatar img[data-v-0d49dde0]{border-radius:50%;object-fit:cover}.v-badge[aria-label][data-v-02392152]:focus{outline:2px solid #005fcc;outline-offset:4px}.btn-primary[data-v-ce0d0f31]{background-color:#1976d2;color:#fff}.btn-primary[data-v-ce0d0f31]:hover{background-color:#1565c0}.btn-icon[data-v-ce0d0f31]{padding:0;width:48px;height:48px}.btn-disabled[data-v-ce0d0f31]{opacity:.6;pointer-events:none}.v-bottom-navigation-wrapper[data-v-d56f72f0]{position:fixed;bottom:0;width:100%}.v-bottom-navigation-wrapper .v-bottom-navigation__content button.v-btn--selected .v-btn__content i[data-v-d56f72f0]{color:green}.v-btn[data-v-d56f72f0]{text-transform:none}.v-btn-item[data-v-d56f72f0]{border:none}.v-icon[data-v-d56f72f0]{font-size:24px}.v-btn-item[data-v-d56f72f0]:focus{outline:2px solid #005fcc;outline-offset:4px}.v-btn-item[data-v-d56f72f0]:active{background-color:#0000001a}[v-expansion-panel-title][data-v-2c20523a]:focus{outline:2px solid #0078d4}.v-breadcrumbs-wrapper[data-v-5ccff043]{padding:8px}.v-breadcrumbs-wrapper .v-btn[data-v-5ccff043]{text-transform:none;font-size:14px}.v-breadcrumbs-wrapper span[data-v-5ccff043]{color:#0009;font-size:14px}
@@ -1,110 +1,329 @@
1
- import { createElementBlock as g, openBlock as i, renderSlot as y, toDisplayString as m, resolveComponent as c, createBlock as u, mergeProps as x, normalizeClass as S, withCtx as d, createTextVNode as b, computed as v, createVNode as p, createCommentVNode as B, createElementVNode as k } from "vue";
2
- const s = (t, a) => {
1
+ import { resolveComponent as r, createBlock as u, openBlock as d, normalizeClass as V, withCtx as l, createCommentVNode as w, createElementVNode as B, createTextVNode as g, toDisplayString as b, renderSlot as R, createElementBlock as h, createVNode as p, computed as z, Fragment as N, renderList as T, mergeProps as A, withDirectives as L, withKeys as x, withModifiers as k, vShow as E } from "vue";
2
+ const _ = (t, a) => {
3
3
  const e = t.__vccOpts || t;
4
- for (const [l, r] of a)
5
- e[l] = r;
4
+ for (const [s, i] of a)
5
+ e[s] = i;
6
6
  return e;
7
- }, R = {}, C = { class: "lv-button" };
8
- function I(t, a) {
9
- return i(), g("button", C, [
10
- y(t.$slots, "default", {}, void 0, !0)
11
- ]);
12
- }
13
- const z = /* @__PURE__ */ s(R, [["render", I], ["__scopeId", "data-v-ac3af47a"]]), V = {
14
- name: "InputTaras",
7
+ }, M = {
8
+ name: "RtIcon",
15
9
  props: {
16
- prop: {
10
+ // Icon name to display (e.g., 'mdi-home')
11
+ icon: {
12
+ type: String,
17
13
  required: !0
14
+ },
15
+ // Optional size for the icon (e.g., '24', '36', '48', etc.)
16
+ size: {
17
+ type: String,
18
+ default: "24"
19
+ },
20
+ // Optional color for the icon (e.g., 'red', 'blue', 'primary', etc.)
21
+ color: {
22
+ type: String,
23
+ default: ""
24
+ },
25
+ // Optional custom class to apply extra styles
26
+ customClass: {
27
+ type: String,
28
+ default: ""
18
29
  }
19
30
  }
20
- }, A = { class: "class-input" };
21
- function N(t, a, e, l, r, n) {
22
- return i(), g("h1", A, m(e.prop) + " taras", 1);
31
+ };
32
+ function U(t, a, e, s, i, n) {
33
+ const o = r("v-icon");
34
+ return d(), u(o, {
35
+ size: e.size,
36
+ color: e.color,
37
+ class: V(e.customClass),
38
+ icon: e.icon
39
+ }, null, 8, ["size", "color", "class", "icon"]);
23
40
  }
24
- const L = /* @__PURE__ */ s(V, [["render", N], ["__scopeId", "data-v-f440ad26"]]), T = {
25
- name: "RtText",
41
+ const P = /* @__PURE__ */ _(M, [["render", U], ["__scopeId", "data-v-d688a9cc"]]), j = {
42
+ name: "RtAlert",
43
+ components: {
44
+ RtIcon: P
45
+ },
26
46
  props: {
27
- label: {
47
+ density: {
28
48
  type: String,
29
- default: "Input Field"
49
+ default: "default",
50
+ validator(t) {
51
+ return ["default", "comfortable", "compact"].includes(t);
52
+ }
30
53
  },
31
- hint: {
54
+ closable: {
55
+ type: Boolean,
56
+ default: !1
57
+ },
58
+ variant: {
59
+ type: String,
60
+ default: "flat",
61
+ validator(t) {
62
+ return ["plain", "outlined", "tonal", "flat", "elevated", "text"].includes(t);
63
+ }
64
+ },
65
+ text: {
32
66
  type: String,
33
67
  default: ""
34
68
  },
35
- placeholder: {
69
+ border: {
70
+ type: String,
71
+ default: "Start",
72
+ validator(t) {
73
+ return ["start", "top", "end", "bottom", "none"].includes(t);
74
+ }
75
+ },
76
+ icon: {
77
+ type: String,
78
+ default: "info",
79
+ validator(t) {
80
+ return ["info", "success", "error", "warning", "hidden"].includes(t);
81
+ }
82
+ },
83
+ borderColor: {
84
+ type: String,
85
+ default: "info",
86
+ validator(t) {
87
+ return ["info", "success", "error", "warning", "deep-purple accent-4"].includes(t);
88
+ }
89
+ },
90
+ color: {
91
+ type: String,
92
+ default: "info",
93
+ validator(t) {
94
+ return ["info", "success", "error", "warning", "hidden"].includes(t);
95
+ }
96
+ }
97
+ },
98
+ methods: {
99
+ // Dynamically determine aria-live based on type
100
+ getAriaLive() {
101
+ return this.type === "error" || this.type === "warning" ? "assertive" : "polite";
102
+ }
103
+ }
104
+ }, F = { class: "alert-content" };
105
+ function O(t, a, e, s, i, n) {
106
+ const o = r("RtIcon"), c = r("v-alert");
107
+ return d(), u(c, {
108
+ text: e.text,
109
+ type: e.icon,
110
+ "border-color": e.borderColor,
111
+ color: e.color,
112
+ border: e.border,
113
+ variant: e.variant,
114
+ closable: e.closable,
115
+ density: e.density,
116
+ role: "alert",
117
+ "aria-live": n.getAriaLive(),
118
+ "aria-atomic": !0
119
+ }, {
120
+ default: l(() => [
121
+ e.icon ? (d(), u(o, {
122
+ key: 0,
123
+ left: "",
124
+ "aria-hidden": "true"
125
+ }, {
126
+ default: l(() => [
127
+ g(b(e.icon), 1)
128
+ ]),
129
+ _: 1
130
+ })) : w("", !0),
131
+ B("span", F, [
132
+ R(t.$slots, "default", {}, void 0, !0)
133
+ ])
134
+ ]),
135
+ _: 3
136
+ }, 8, ["text", "type", "border-color", "color", "border", "variant", "closable", "density", "aria-live"]);
137
+ }
138
+ const q = /* @__PURE__ */ _(j, [["render", O], ["__scopeId", "data-v-bae3eb1c"]]), D = {
139
+ name: "RtImage",
140
+ props: {
141
+ src: {
142
+ type: String,
143
+ required: !0
144
+ },
145
+ alt: {
146
+ type: String,
147
+ required: !0
148
+ },
149
+ lazySrc: {
36
150
  type: String,
37
151
  default: ""
38
152
  },
39
- modelValue: {
40
- type: [String, Number],
153
+ aspectRatio: {
154
+ type: [Number, String],
155
+ default: null
156
+ },
157
+ gradient: {
158
+ type: String,
41
159
  default: ""
42
160
  },
43
- disabled: {
161
+ loading: {
162
+ type: String,
163
+ default: "lazy",
164
+ // Options: 'lazy', 'eager'
165
+ validator: (t) => ["lazy", "eager"].includes(t)
166
+ },
167
+ transition: {
168
+ type: String,
169
+ default: "fade-transition"
170
+ },
171
+ classes: {
172
+ type: [String, Array, Object],
173
+ default: () => ""
174
+ }
175
+ }
176
+ };
177
+ function K(t, a, e, s, i, n) {
178
+ const o = r("v-img");
179
+ return d(), u(o, {
180
+ src: e.src,
181
+ alt: e.alt,
182
+ "lazy-src": e.lazySrc,
183
+ "aspect-ratio": e.aspectRatio,
184
+ gradient: e.gradient,
185
+ loading: e.loading,
186
+ transition: e.transition,
187
+ class: V(e.classes)
188
+ }, {
189
+ placeholder: l(() => [
190
+ R(t.$slots, "placeholder", {}, () => [
191
+ a[0] || (a[0] = g("Loading..."))
192
+ ], !0)
193
+ ]),
194
+ default: l(() => [
195
+ R(t.$slots, "default", {}, void 0, !0)
196
+ ]),
197
+ _: 3
198
+ }, 8, ["src", "alt", "lazy-src", "aspect-ratio", "gradient", "loading", "transition", "class"]);
199
+ }
200
+ const H = /* @__PURE__ */ _(D, [["render", K], ["__scopeId", "data-v-f3ff4550"]]), G = {
201
+ name: "RtAvatar",
202
+ components: {
203
+ RtImage: H
204
+ },
205
+ props: {
206
+ avatarImage: {
207
+ type: String,
208
+ default: "https://randomuser.me/api/portraits/men/32.jpg"
209
+ },
210
+ alt: {
211
+ type: String,
212
+ default: "Alt"
213
+ },
214
+ ariaLabel: {
215
+ type: String,
216
+ default: "Aria Label"
217
+ },
218
+ name: {
219
+ type: String,
220
+ default: "Name"
221
+ },
222
+ size: {
223
+ type: Number,
224
+ default: 50
225
+ },
226
+ rounded: {
227
+ type: Number,
228
+ default: 1
229
+ }
230
+ },
231
+ computed: {
232
+ initials() {
233
+ return this.name ? this.name.split(" ").map((t) => t[0]).join("").toUpperCase() : "";
234
+ }
235
+ }
236
+ }, J = { class: "avatar-wrapper" }, Q = {
237
+ key: 1,
238
+ class: "initials"
239
+ };
240
+ function W(t, a, e, s, i, n) {
241
+ const o = r("RtImage"), c = r("v-avatar");
242
+ return d(), h("div", J, [
243
+ p(c, {
244
+ size: e.size,
245
+ class: "avatar",
246
+ rounded: e.rounded,
247
+ tabindex: "0",
248
+ role: "img",
249
+ "aria-label": e.ariaLabel
250
+ }, {
251
+ default: l(() => [
252
+ e.avatarImage ? (d(), u(o, {
253
+ key: 0,
254
+ src: e.avatarImage,
255
+ alt: e.alt
256
+ }, null, 8, ["src", "alt"])) : (d(), h("span", Q, b(n.initials), 1))
257
+ ]),
258
+ _: 1
259
+ }, 8, ["size", "rounded", "aria-label"])
260
+ ]);
261
+ }
262
+ const X = /* @__PURE__ */ _(G, [["render", W], ["__scopeId", "data-v-0d49dde0"]]), Y = {
263
+ name: "RtBadge",
264
+ props: {
265
+ value: {
266
+ type: [String, Number],
267
+ default: 0
268
+ },
269
+ color: {
270
+ type: String,
271
+ default: "red"
272
+ },
273
+ dot: {
44
274
  type: Boolean,
45
275
  default: !1
46
276
  },
47
- error: {
277
+ overlap: {
48
278
  type: Boolean,
49
279
  default: !1
50
280
  },
51
- errorMessages: {
52
- type: [String, Array],
53
- default: () => []
54
- },
55
- prependIcon: {
281
+ content: {
56
282
  type: String,
57
283
  default: ""
58
- // Default to no icon
59
284
  },
60
- clearable: {
285
+ size: {
286
+ type: [String, Number],
287
+ default: "20"
288
+ },
289
+ bottom: {
61
290
  type: Boolean,
62
291
  default: !1
63
- // Default is not clearable
64
292
  },
65
- autocomplete: {
66
- type: String,
67
- default: "off"
68
- // Default is 'off'
293
+ top: {
294
+ type: Boolean,
295
+ default: !1
69
296
  }
70
297
  },
71
298
  computed: {
72
- inputValue: {
73
- get() {
74
- return this.modelValue;
75
- },
76
- set(t) {
77
- this.$emit("update:modelValue", t);
78
- }
79
- },
80
- inputProps() {
81
- return { ...this.$props };
82
- }
83
- },
84
- methods: {
85
- handleClear() {
86
- this.$emit("clear");
299
+ getAriaLabel() {
300
+ return this.dot ? "Notification dot" : this.content ? `Badge content: ${this.content}` : this.value ? `Badge value: ${this.value}` : "Badge";
87
301
  }
88
302
  }
89
303
  };
90
- function w(t, a, e, l, r, n) {
91
- const o = c("v-text-field");
92
- return i(), u(o, x(n.inputProps, {
93
- modelValue: n.inputValue,
94
- "onUpdate:modelValue": a[0] || (a[0] = (f) => n.inputValue = f),
95
- label: e.label,
96
- placeholder: e.placeholder,
97
- disabled: e.disabled,
98
- error: e.error,
99
- "error-messages": e.errorMessages,
100
- "prepend-icon": e.prependIcon,
101
- clearable: "",
102
- hint: e.hint,
103
- autocomplete: e.autocomplete,
104
- "onClick:clear": n.handleClear
105
- }), null, 16, ["modelValue", "label", "placeholder", "disabled", "error", "error-messages", "prepend-icon", "hint", "autocomplete", "onClick:clear"]);
304
+ function Z(t, a, e, s, i, n) {
305
+ const o = r("v-badge");
306
+ return d(), u(o, {
307
+ value: e.value,
308
+ color: e.color,
309
+ dot: e.dot,
310
+ overlap: e.overlap,
311
+ content: e.content,
312
+ size: e.size,
313
+ bottom: e.bottom,
314
+ top: e.top,
315
+ role: "status",
316
+ "aria-label": n.getAriaLabel,
317
+ "aria-live": e.dot ? "polite" : "off",
318
+ tabindex: "0"
319
+ }, {
320
+ default: l(() => [
321
+ R(t.$slots, "default", {}, void 0, !0)
322
+ ]),
323
+ _: 3
324
+ }, 8, ["value", "color", "dot", "overlap", "content", "size", "bottom", "top", "aria-label", "aria-live"]);
106
325
  }
107
- const j = /* @__PURE__ */ s(T, [["render", w], ["__scopeId", "data-v-33b97f38"]]), q = {
326
+ const $ = /* @__PURE__ */ _(Y, [["render", Z], ["__scopeId", "data-v-02392152"]]), ee = {
108
327
  name: "RtButton",
109
328
  props: {
110
329
  // Button text label
@@ -212,24 +431,24 @@ const j = /* @__PURE__ */ s(T, [["render", w], ["__scopeId", "data-v-33b97f38"]]
212
431
  setup(t, { emit: a }) {
213
432
  const e = () => {
214
433
  a("click");
215
- }, l = v(() => t.primary ? "flat" : "outlined"), r = v(() => t.label || "Button"), n = v(() => ({
434
+ }, s = z(() => t.primary ? "flat" : "outlined"), i = z(() => t.label || "Button"), n = z(() => ({
216
435
  "btn-primary": t.primary,
217
436
  "btn-icon": t.icon,
218
437
  "btn-disabled": t.disabled
219
438
  }));
220
439
  return {
221
440
  onClick: e,
222
- variant: l,
223
- ariaLabel: r,
441
+ variant: s,
442
+ ariaLabel: i,
224
443
  buttonClasses: n
225
444
  };
226
445
  }
227
446
  };
228
- function O(t, a, e, l, r, n) {
229
- const o = c("v-btn");
230
- return i(), u(o, {
447
+ function te(t, a, e, s, i, n) {
448
+ const o = r("v-btn");
449
+ return d(), u(o, {
231
450
  type: "button",
232
- variant: l.variant,
451
+ variant: s.variant,
233
452
  size: e.size,
234
453
  color: e.color,
235
454
  icon: e.icon,
@@ -249,83 +468,362 @@ function O(t, a, e, l, r, n) {
249
468
  exact: e.exact,
250
469
  append: e.append,
251
470
  "background-color": e.backgroundColor,
252
- class: S(l.buttonClasses),
253
- onClick: l.onClick,
254
- "aria-label": l.ariaLabel
471
+ class: V(s.buttonClasses),
472
+ onClick: s.onClick,
473
+ "aria-label": s.ariaLabel
255
474
  }, {
256
- default: d(() => [
257
- y(t.$slots, "default", {}, () => [
258
- b(m(e.label), 1)
475
+ default: l(() => [
476
+ R(t.$slots, "default", {}, () => [
477
+ g(b(e.label), 1)
259
478
  ], !0)
260
479
  ]),
261
480
  _: 3
262
481
  }, 8, ["variant", "size", "color", "icon", "disabled", "loading", "outlined", "text", "tile", "depressed", "rounded", "block", "href", "target", "elevation", "to", "replace", "exact", "append", "background-color", "class", "onClick", "aria-label"]);
263
482
  }
264
- const h = /* @__PURE__ */ s(q, [["render", O], ["__scopeId", "data-v-ce0d0f31"]]), P = {
265
- name: "RtBadge",
483
+ const C = /* @__PURE__ */ _(ee, [["render", te], ["__scopeId", "data-v-ce0d0f31"]]), ae = {
484
+ name: "RtBottomNavigation",
485
+ components: {
486
+ RtIcon: P,
487
+ RtButton: C
488
+ },
266
489
  props: {
267
- value: {
268
- type: [String, Number],
269
- default: 0
490
+ ariaLabel: {
491
+ type: String,
492
+ default: "Bottom Navigation"
270
493
  },
271
- color: {
494
+ tabs: {
495
+ type: Array,
496
+ default: () => [
497
+ { value: "home", icon: "mdi-home" },
498
+ { value: "favorites", icon: "mdi-heart" },
499
+ { value: "settings", icon: "mdi-cog" }
500
+ ]
501
+ },
502
+ backgroundColor: {
272
503
  type: String,
273
- default: "red"
504
+ default: "primary"
274
505
  },
275
- dot: {
506
+ textColor: {
507
+ type: String,
508
+ default: "white"
509
+ },
510
+ initialTab: {
511
+ type: String,
512
+ default: "home"
513
+ }
514
+ },
515
+ data() {
516
+ return {
517
+ currentTab: this.initialTab
518
+ };
519
+ },
520
+ methods: {
521
+ onTabClick(t) {
522
+ this.$emit("tabSelected", t.value), this.currentTab = t.value;
523
+ }
524
+ }
525
+ };
526
+ function ne(t, a, e, s, i, n) {
527
+ const o = r("RtIcon"), c = r("RtButton"), f = r("v-bottom-navigation");
528
+ return d(), u(f, {
529
+ modelValue: i.currentTab,
530
+ "onUpdate:modelValue": a[0] || (a[0] = (v) => i.currentTab = v),
531
+ "background-color": e.backgroundColor,
532
+ color: e.textColor,
533
+ app: "",
534
+ class: "v-bottom-navigation-wrapper",
535
+ role: "navigation",
536
+ "aria-label": e.ariaLabel
537
+ }, {
538
+ default: l(() => [
539
+ (d(!0), h(N, null, T(e.tabs, (v, y) => (d(), u(c, {
540
+ key: y,
541
+ value: v.value,
542
+ "aria-label": v.value + " tab",
543
+ icon: !0,
544
+ onClick: (I) => n.onTabClick(v),
545
+ "aria-selected": i.currentTab === v.value ? "true" : "false",
546
+ role: "tab",
547
+ class: "v-btn-item"
548
+ }, {
549
+ default: l(() => [
550
+ p(o, {
551
+ icon: v.icon,
552
+ size: 24
553
+ }, null, 8, ["icon"])
554
+ ]),
555
+ _: 2
556
+ }, 1032, ["value", "aria-label", "onClick", "aria-selected"]))), 128))
557
+ ]),
558
+ _: 1
559
+ }, 8, ["modelValue", "background-color", "color", "aria-label"]);
560
+ }
561
+ const oe = /* @__PURE__ */ _(ae, [["render", ne], ["__scopeId", "data-v-d56f72f0"]]), le = {
562
+ name: "RtBottomSheet",
563
+ components: {
564
+ RtButton: C
565
+ },
566
+ data: () => ({
567
+ sheet: !1
568
+ })
569
+ }, re = { class: "text-center" };
570
+ function ie(t, a, e, s, i, n) {
571
+ const o = r("RtButton"), c = r("v-card-text"), f = r("v-card"), v = r("v-bottom-sheet");
572
+ return d(), h("div", re, [
573
+ p(o, {
574
+ class: "open-button",
575
+ size: "x-large",
576
+ text: "Click Me",
577
+ onClick: a[0] || (a[0] = (y) => t.sheet = !t.sheet)
578
+ }),
579
+ p(v, {
580
+ modelValue: t.sheet,
581
+ "onUpdate:modelValue": a[2] || (a[2] = (y) => t.sheet = y)
582
+ }, {
583
+ default: l(() => [
584
+ p(f, {
585
+ class: "text-center",
586
+ height: "200"
587
+ }, {
588
+ default: l(() => [
589
+ p(c, null, {
590
+ default: l(() => [
591
+ p(o, {
592
+ class: "close-button",
593
+ variant: "text",
594
+ onClick: a[1] || (a[1] = (y) => t.sheet = !t.sheet)
595
+ }, {
596
+ default: l(() => a[3] || (a[3] = [
597
+ g(" close ")
598
+ ])),
599
+ _: 1
600
+ }),
601
+ a[4] || (a[4] = B("br", null, null, -1)),
602
+ a[5] || (a[5] = B("br", null, null, -1)),
603
+ a[6] || (a[6] = B("div", null, " This is a bottom sheet using the controlled by v-model instead of activator ", -1))
604
+ ]),
605
+ _: 1
606
+ })
607
+ ]),
608
+ _: 1
609
+ })
610
+ ]),
611
+ _: 1
612
+ }, 8, ["modelValue"])
613
+ ]);
614
+ }
615
+ const de = /* @__PURE__ */ _(le, [["render", ie]]), se = {
616
+ name: "RtText",
617
+ props: {
618
+ label: {
619
+ type: String,
620
+ default: "Input Field"
621
+ },
622
+ hint: {
623
+ type: String,
624
+ default: ""
625
+ },
626
+ placeholder: {
627
+ type: String,
628
+ default: ""
629
+ },
630
+ modelValue: {
631
+ type: [String, Number],
632
+ default: ""
633
+ },
634
+ disabled: {
276
635
  type: Boolean,
277
636
  default: !1
278
637
  },
279
- overlap: {
638
+ error: {
280
639
  type: Boolean,
281
640
  default: !1
282
641
  },
283
- content: {
642
+ errorMessages: {
643
+ type: [String, Array],
644
+ default: () => []
645
+ },
646
+ prependIcon: {
284
647
  type: String,
285
648
  default: ""
649
+ // Default to no icon
286
650
  },
287
- size: {
288
- type: [String, Number],
289
- default: "20"
651
+ clearable: {
652
+ type: Boolean,
653
+ default: !1
654
+ // Default is not clearable
290
655
  },
291
- bottom: {
656
+ autocomplete: {
657
+ type: String,
658
+ default: "off"
659
+ // Default is 'off'
660
+ }
661
+ },
662
+ computed: {
663
+ inputValue: {
664
+ get() {
665
+ return this.modelValue;
666
+ },
667
+ set(t) {
668
+ this.$emit("update:modelValue", t);
669
+ }
670
+ },
671
+ inputProps() {
672
+ return { ...this.$props };
673
+ }
674
+ },
675
+ methods: {
676
+ handleClear() {
677
+ this.$emit("clear");
678
+ }
679
+ }
680
+ };
681
+ function ce(t, a, e, s, i, n) {
682
+ const o = r("v-text-field");
683
+ return d(), u(o, A(n.inputProps, {
684
+ modelValue: n.inputValue,
685
+ "onUpdate:modelValue": a[0] || (a[0] = (c) => n.inputValue = c),
686
+ label: e.label,
687
+ placeholder: e.placeholder,
688
+ disabled: e.disabled,
689
+ error: e.error,
690
+ "error-messages": e.errorMessages,
691
+ "prepend-icon": e.prependIcon,
692
+ clearable: "",
693
+ hint: e.hint,
694
+ autocomplete: e.autocomplete,
695
+ "onClick:clear": n.handleClear
696
+ }), null, 16, ["modelValue", "label", "placeholder", "disabled", "error", "error-messages", "prepend-icon", "hint", "autocomplete", "onClick:clear"]);
697
+ }
698
+ const ue = /* @__PURE__ */ _(se, [["render", ce], ["__scopeId", "data-v-33b97f38"]]), fe = {
699
+ name: "RtExpansionComponent",
700
+ props: {
701
+ disabled: {
292
702
  type: Boolean,
293
703
  default: !1
294
704
  },
295
- top: {
705
+ items: {
706
+ type: Array,
707
+ default: () => []
708
+ },
709
+ variant: {
710
+ type: String,
711
+ default: "default",
712
+ validator(t) {
713
+ return ["default", "accordion", "inset", "popout"].includes(t);
714
+ }
715
+ },
716
+ multiple: {
296
717
  type: Boolean,
297
718
  default: !1
719
+ },
720
+ expandIcon: {
721
+ type: String,
722
+ default: "mdi-chevron-down"
723
+ },
724
+ collapseIcon: {
725
+ type: String,
726
+ default: "mdi-chevron-up"
298
727
  }
299
728
  },
300
- computed: {
301
- getAriaLabel() {
302
- return this.dot ? "Notification dot" : this.content ? `Badge content: ${this.content}` : this.value ? `Badge value: ${this.value}` : "Badge";
729
+ data() {
730
+ return {
731
+ expandedPanels: /* @__PURE__ */ new Set()
732
+ };
733
+ },
734
+ methods: {
735
+ isExpanded(t) {
736
+ return this.expandedPanels.has(t);
737
+ },
738
+ togglePanel(t) {
739
+ this.multiple ? this.expandedPanels.has(t) ? this.expandedPanels.delete(t) : this.expandedPanels.add(t) : this.expandedPanels = new Set(
740
+ this.expandedPanels.has(t) ? [] : [t]
741
+ );
742
+ },
743
+ focusPrevious(t) {
744
+ const a = t > 0 ? t - 1 : this.items.length - 1;
745
+ document.getElementById(`panel-header-${a}`).focus();
746
+ },
747
+ focusNext(t) {
748
+ const a = t < this.items.length - 1 ? t + 1 : 0;
749
+ document.getElementById(`panel-header-${a}`).focus();
750
+ },
751
+ focusFirst() {
752
+ document.getElementById("panel-header-0").focus();
753
+ },
754
+ focusLast() {
755
+ const t = this.items.length - 1;
756
+ document.getElementById(`panel-header-${t}`).focus();
303
757
  }
304
758
  }
305
759
  };
306
- function M(t, a, e, l, r, n) {
307
- const o = c("v-badge");
308
- return i(), u(o, {
309
- value: e.value,
310
- color: e.color,
311
- dot: e.dot,
312
- overlap: e.overlap,
313
- content: e.content,
314
- size: e.size,
315
- bottom: e.bottom,
316
- top: e.top,
317
- role: "status",
318
- "aria-label": n.getAriaLabel,
319
- "aria-live": e.dot ? "polite" : "off",
320
- tabindex: "0"
321
- }, {
322
- default: d(() => [
323
- y(t.$slots, "default", {}, void 0, !0)
760
+ function me(t, a, e, s, i, n) {
761
+ const o = r("v-icon"), c = r("v-expansion-panel-title"), f = r("v-expansion-panel-text"), v = r("v-expansion-panel"), y = r("v-expansion-panels");
762
+ return d(), u(y, A(t.$attrs, {
763
+ multiple: e.multiple,
764
+ variant: e.variant,
765
+ disabled: e.disabled,
766
+ role: "region",
767
+ "aria-multiselectable": "multiple"
768
+ }), {
769
+ default: l(() => [
770
+ (d(!0), h(N, null, T(e.items, (I, m) => (d(), u(v, {
771
+ key: m,
772
+ role: "group"
773
+ }, {
774
+ default: l(() => [
775
+ p(c, {
776
+ role: "button",
777
+ "aria-expanded": n.isExpanded(m),
778
+ id: "panel-header-" + m,
779
+ "aria-controls": "panel-content-" + m,
780
+ onClick: (S) => n.togglePanel(m),
781
+ tabindex: "0",
782
+ onKeydown: [
783
+ x(k((S) => n.togglePanel(m), ["stop", "prevent"]), ["space"]),
784
+ x(k((S) => n.togglePanel(m), ["stop", "prevent"]), ["enter"]),
785
+ x(k((S) => n.focusPrevious(m), ["stop", "prevent"]), ["arrow-up"]),
786
+ x(k((S) => n.focusNext(m), ["stop", "prevent"]), ["arrow-down"]),
787
+ a[0] || (a[0] = x(k((S) => n.focusFirst(), ["stop", "prevent"]), ["home"])),
788
+ a[1] || (a[1] = x(k((S) => n.focusLast(), ["stop", "prevent"]), ["end"]))
789
+ ]
790
+ }, {
791
+ default: l(() => [
792
+ B("span", null, b(I.title), 1)
793
+ ]),
794
+ actions: l(() => [
795
+ e.disabled ? w("", !0) : (d(), u(o, {
796
+ key: 0,
797
+ "aria-hidden": !0
798
+ }, {
799
+ default: l(() => [
800
+ g(b(n.isExpanded(m) ? e.collapseIcon : e.expandIcon), 1)
801
+ ]),
802
+ _: 2
803
+ }, 1024))
804
+ ]),
805
+ _: 2
806
+ }, 1032, ["aria-expanded", "id", "aria-controls", "onClick", "onKeydown"]),
807
+ L(p(f, {
808
+ id: "panel-content-" + m,
809
+ "aria-labelledby": "panel-header-" + m,
810
+ role: "region"
811
+ }, {
812
+ default: l(() => [
813
+ g(b(I.content), 1)
814
+ ]),
815
+ _: 2
816
+ }, 1032, ["id", "aria-labelledby"]), [
817
+ [E, n.isExpanded(m)]
818
+ ])
819
+ ]),
820
+ _: 2
821
+ }, 1024))), 128))
324
822
  ]),
325
- _: 3
326
- }, 8, ["value", "color", "dot", "overlap", "content", "size", "bottom", "top", "aria-label", "aria-live"]);
823
+ _: 1
824
+ }, 16, ["multiple", "variant", "disabled"]);
327
825
  }
328
- const U = /* @__PURE__ */ s(P, [["render", M], ["__scopeId", "data-v-02392152"]]), D = {
826
+ const pe = /* @__PURE__ */ _(fe, [["render", me], ["__scopeId", "data-v-2c20523a"]]), _e = {
329
827
  name: "RtSnackbar",
330
828
  props: {
331
829
  message: {
@@ -362,172 +860,48 @@ const U = /* @__PURE__ */ s(P, [["render", M], ["__scopeId", "data-v-02392152"]]
362
860
  snackbar: !1
363
861
  };
364
862
  }
365
- }, E = { class: "text-center ma-2" };
366
- function H(t, a, e, l, r, n) {
367
- const o = c("v-btn"), f = c("v-snackbar");
368
- return i(), g("div", E, [
863
+ }, ve = { class: "text-center ma-2" };
864
+ function be(t, a, e, s, i, n) {
865
+ const o = r("v-btn"), c = r("v-snackbar");
866
+ return d(), h("div", ve, [
369
867
  p(o, {
370
868
  color: e.buttonColor,
371
- onClick: a[0] || (a[0] = (_) => r.snackbar = !0)
869
+ onClick: a[0] || (a[0] = (f) => i.snackbar = !0)
372
870
  }, {
373
- default: d(() => [
374
- b(m(e.buttonText), 1)
871
+ default: l(() => [
872
+ g(b(e.buttonText), 1)
375
873
  ]),
376
874
  _: 1
377
875
  }, 8, ["color"]),
378
- p(f, {
379
- modelValue: r.snackbar,
380
- "onUpdate:modelValue": a[2] || (a[2] = (_) => r.snackbar = _),
876
+ p(c, {
877
+ modelValue: i.snackbar,
878
+ "onUpdate:modelValue": a[2] || (a[2] = (f) => i.snackbar = f),
381
879
  timeout: e.timeout,
382
880
  color: e.snackbarColor
383
881
  }, {
384
- actions: d(() => [
882
+ actions: l(() => [
385
883
  p(o, {
386
884
  color: e.actionButtonColor,
387
885
  variant: "text",
388
- onClick: a[1] || (a[1] = (_) => r.snackbar = !1)
886
+ onClick: a[1] || (a[1] = (f) => i.snackbar = !1)
389
887
  }, {
390
- default: d(() => [
391
- b(m(e.actionButtonText), 1)
888
+ default: l(() => [
889
+ g(b(e.actionButtonText), 1)
392
890
  ]),
393
891
  _: 1
394
892
  }, 8, ["color"])
395
893
  ]),
396
- default: d(() => [
397
- b(m(e.message) + " ", 1)
894
+ default: l(() => [
895
+ g(b(e.message) + " ", 1)
398
896
  ]),
399
897
  _: 1
400
898
  }, 8, ["modelValue", "timeout", "color"])
401
899
  ]);
402
900
  }
403
- const F = /* @__PURE__ */ s(D, [["render", H], ["__scopeId", "data-v-75ce5462"]]), G = {
404
- name: "RtImage",
405
- props: {
406
- src: {
407
- type: String,
408
- required: !0
409
- },
410
- alt: {
411
- type: String,
412
- required: !0
413
- },
414
- lazySrc: {
415
- type: String,
416
- default: ""
417
- },
418
- aspectRatio: {
419
- type: [Number, String],
420
- default: null
421
- },
422
- gradient: {
423
- type: String,
424
- default: ""
425
- },
426
- loading: {
427
- type: String,
428
- default: "lazy",
429
- // Options: 'lazy', 'eager'
430
- validator: (t) => ["lazy", "eager"].includes(t)
431
- },
432
- transition: {
433
- type: String,
434
- default: "fade-transition"
435
- },
436
- classes: {
437
- type: [String, Array, Object],
438
- default: () => ""
439
- }
440
- }
441
- };
442
- function J(t, a, e, l, r, n) {
443
- const o = c("v-img");
444
- return i(), u(o, {
445
- src: e.src,
446
- alt: e.alt,
447
- "lazy-src": e.lazySrc,
448
- "aspect-ratio": e.aspectRatio,
449
- gradient: e.gradient,
450
- loading: e.loading,
451
- transition: e.transition,
452
- class: S(e.classes)
453
- }, {
454
- placeholder: d(() => [
455
- y(t.$slots, "placeholder", {}, () => [
456
- a[0] || (a[0] = b("Loading..."))
457
- ], !0)
458
- ]),
459
- default: d(() => [
460
- y(t.$slots, "default", {}, void 0, !0)
461
- ]),
462
- _: 3
463
- }, 8, ["src", "alt", "lazy-src", "aspect-ratio", "gradient", "loading", "transition", "class"]);
464
- }
465
- const K = /* @__PURE__ */ s(G, [["render", J], ["__scopeId", "data-v-f3ff4550"]]), Q = {
466
- name: "RtAvatar",
467
- components: {
468
- RtImage: K
469
- },
470
- props: {
471
- avatarImage: {
472
- type: String,
473
- default: "https://randomuser.me/api/portraits/men/32.jpg"
474
- },
475
- alt: {
476
- type: String,
477
- default: "Alt"
478
- },
479
- ariaLabel: {
480
- type: String,
481
- default: "Aria Label"
482
- },
483
- name: {
484
- type: String,
485
- default: "Name"
486
- },
487
- size: {
488
- type: Number,
489
- default: 50
490
- },
491
- rounded: {
492
- type: Number,
493
- default: 1
494
- }
495
- },
496
- computed: {
497
- initials() {
498
- return this.name ? this.name.split(" ").map((t) => t[0]).join("").toUpperCase() : "";
499
- }
500
- }
501
- }, W = { class: "avatar-wrapper" }, X = {
502
- key: 1,
503
- class: "initials"
504
- };
505
- function Y(t, a, e, l, r, n) {
506
- const o = c("RtImage"), f = c("v-avatar");
507
- return i(), g("div", W, [
508
- p(f, {
509
- size: e.size,
510
- class: "avatar",
511
- rounded: e.rounded,
512
- tabindex: "0",
513
- role: "img",
514
- "aria-label": e.ariaLabel
515
- }, {
516
- default: d(() => [
517
- e.avatarImage ? (i(), u(o, {
518
- key: 0,
519
- src: e.avatarImage,
520
- alt: e.alt
521
- }, null, 8, ["src", "alt"])) : (i(), g("span", X, m(n.initials), 1))
522
- ]),
523
- _: 1
524
- }, 8, ["size", "rounded", "aria-label"])
525
- ]);
526
- }
527
- const Z = /* @__PURE__ */ s(Q, [["render", Y], ["__scopeId", "data-v-0d49dde0"]]), $ = {
901
+ const ge = /* @__PURE__ */ _(_e, [["render", be], ["__scopeId", "data-v-75ce5462"]]), ye = {
528
902
  name: "RtBreadcrumbs",
529
903
  components: {
530
- RtButton: h
904
+ RtButton: C
531
905
  },
532
906
  props: {
533
907
  items: {
@@ -543,165 +917,34 @@ const Z = /* @__PURE__ */ s(Q, [["render", Y], ["__scopeId", "data-v-0d49dde0"]]
543
917
  default: "/"
544
918
  }
545
919
  }
546
- }, ee = { key: 1 };
547
- function te(t, a, e, l, r, n) {
548
- const o = c("RtButton"), f = c("v-breadcrumbs");
549
- return i(), u(f, {
920
+ }, he = { key: 1 };
921
+ function Se(t, a, e, s, i, n) {
922
+ const o = r("RtButton"), c = r("v-breadcrumbs");
923
+ return d(), u(c, {
550
924
  class: "v-breadcrumbs-wrapper",
551
925
  divider: e.divider,
552
926
  items: e.items
553
927
  }, {
554
- item: d(({ item: _ }) => [
555
- _.to ? (i(), u(o, {
928
+ item: l(({ item: f }) => [
929
+ f.to ? (d(), u(o, {
556
930
  key: 0,
557
- to: _.to,
931
+ to: f.to,
558
932
  text: ""
559
933
  }, {
560
- default: d(() => [
561
- b(m(_.text), 1)
934
+ default: l(() => [
935
+ g(b(f.text), 1)
562
936
  ]),
563
937
  _: 2
564
- }, 1032, ["to"])) : (i(), g("span", ee, m(_.text), 1))
938
+ }, 1032, ["to"])) : (d(), h("span", he, b(f.text), 1))
565
939
  ]),
566
940
  _: 1
567
941
  }, 8, ["divider", "items"]);
568
942
  }
569
- const ae = /* @__PURE__ */ s($, [["render", te], ["__scopeId", "data-v-5ccff043"]]), ne = {
570
- name: "RtIcon",
571
- props: {
572
- // Icon name to display (e.g., 'mdi-home')
573
- icon: {
574
- type: String,
575
- required: !0
576
- },
577
- // Optional size for the icon (e.g., '24', '36', '48', etc.)
578
- size: {
579
- type: String,
580
- default: "24"
581
- },
582
- // Optional color for the icon (e.g., 'red', 'blue', 'primary', etc.)
583
- color: {
584
- type: String,
585
- default: ""
586
- },
587
- // Optional custom class to apply extra styles
588
- customClass: {
589
- type: String,
590
- default: ""
591
- }
592
- }
593
- };
594
- function oe(t, a, e, l, r, n) {
595
- const o = c("v-icon");
596
- return i(), u(o, {
597
- size: e.size,
598
- color: e.color,
599
- class: S(e.customClass),
600
- icon: e.icon
601
- }, null, 8, ["size", "color", "class", "icon"]);
602
- }
603
- const le = /* @__PURE__ */ s(ne, [["render", oe], ["__scopeId", "data-v-d688a9cc"]]), re = {
604
- name: "RtAlert",
605
- components: {
606
- RtIcon: le
607
- },
608
- props: {
609
- density: {
610
- type: String,
611
- default: "default",
612
- validator(t) {
613
- return ["default", "comfortable", "compact"].includes(t);
614
- }
615
- },
616
- closable: {
617
- type: Boolean,
618
- default: !1
619
- },
620
- variant: {
621
- type: String,
622
- default: "flat",
623
- validator(t) {
624
- return ["plain", "outlined", "tonal", "flat", "elevated", "text"].includes(t);
625
- }
626
- },
627
- text: {
628
- type: String,
629
- default: ""
630
- },
631
- border: {
632
- type: String,
633
- default: "Start",
634
- validator(t) {
635
- return ["start", "top", "end", "bottom", "none"].includes(t);
636
- }
637
- },
638
- icon: {
639
- type: String,
640
- default: "info",
641
- validator(t) {
642
- return ["info", "success", "error", "warning", "hidden"].includes(t);
643
- }
644
- },
645
- borderColor: {
646
- type: String,
647
- default: "info",
648
- validator(t) {
649
- return ["info", "success", "error", "warning", "deep-purple accent-4"].includes(t);
650
- }
651
- },
652
- color: {
653
- type: String,
654
- default: "info",
655
- validator(t) {
656
- return ["info", "success", "error", "warning", "hidden"].includes(t);
657
- }
658
- }
659
- },
660
- methods: {
661
- // Dynamically determine aria-live based on type
662
- getAriaLive() {
663
- return this.type === "error" || this.type === "warning" ? "assertive" : "polite";
664
- }
665
- }
666
- }, ie = { class: "alert-content" };
667
- function de(t, a, e, l, r, n) {
668
- const o = c("RtIcon"), f = c("v-alert");
669
- return i(), u(f, {
670
- text: e.text,
671
- type: e.icon,
672
- "border-color": e.borderColor,
673
- color: e.color,
674
- border: e.border,
675
- variant: e.variant,
676
- closable: e.closable,
677
- density: e.density,
678
- role: "alert",
679
- "aria-live": n.getAriaLive(),
680
- "aria-atomic": !0
681
- }, {
682
- default: d(() => [
683
- e.icon ? (i(), u(o, {
684
- key: 0,
685
- left: "",
686
- "aria-hidden": "true"
687
- }, {
688
- default: d(() => [
689
- b(m(e.icon), 1)
690
- ]),
691
- _: 1
692
- })) : B("", !0),
693
- k("span", ie, [
694
- y(t.$slots, "default", {}, void 0, !0)
695
- ])
696
- ]),
697
- _: 3
698
- }, 8, ["text", "type", "border-color", "color", "border", "variant", "closable", "density", "aria-live"]);
699
- }
700
- const ce = /* @__PURE__ */ s(re, [["render", de], ["__scopeId", "data-v-bae3eb1c"]]), ue = {
943
+ const xe = /* @__PURE__ */ _(ye, [["render", Se], ["__scopeId", "data-v-5ccff043"]]), Be = {
701
944
  install: (t, a) => {
702
- t.component("LearnVueButton", z), t.component("InputTaras", L), t.component("RtText", j), t.component("RtButton", h), t.component("RtBadge", U), t.component("RtSnackbar", F), t.component("RtAvatar", Z), t.component("RtBreadcrumbs", ae), t.component("RtAlert", ce);
945
+ t.component("RtText", ue), t.component("RtButton", C), t.component("RtBadge", $), t.component("RtSnackbar", ge), t.component("RtAvatar", X), t.component("RtBreadcrumbs", xe), t.component("RtAlert", q), t.component("RtBottomNavigation", oe), t.component("RtBottomSheet", de), t.component("RtExpansionComponent", pe);
703
946
  }
704
947
  };
705
948
  export {
706
- ue as default
949
+ Be as default
707
950
  };
@@ -1 +1 @@
1
- (function(t,i){typeof exports=="object"&&typeof module<"u"?module.exports=i(require("vue")):typeof define=="function"&&define.amd?define(["vue"],i):(t=typeof globalThis<"u"?globalThis:t||self,t["readytech-ui-library-v2"]=i(t.Vue))})(this,function(t){"use strict";const i=(a,n)=>{const e=a.__vccOpts||a;for(const[r,c]of n)e[r]=c;return e},f={},m={class:"lv-button"};function p(a,n){return t.openBlock(),t.createElementBlock("button",m,[t.renderSlot(a.$slots,"default",{},void 0,!0)])}const _=i(f,[["render",p],["__scopeId","data-v-ac3af47a"]]),g={name:"InputTaras",props:{prop:{required:!0}}},y={class:"class-input"};function b(a,n,e,r,c,o){return t.openBlock(),t.createElementBlock("h1",y,t.toDisplayString(e.prop)+" taras",1)}const B=i(g,[["render",b],["__scopeId","data-v-f440ad26"]]),k={name:"RtText",props:{label:{type:String,default:"Input Field"},hint:{type:String,default:""},placeholder:{type:String,default:""},modelValue:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},error:{type:Boolean,default:!1},errorMessages:{type:[String,Array],default:()=>[]},prependIcon:{type:String,default:""},clearable:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"}},computed:{inputValue:{get(){return this.modelValue},set(a){this.$emit("update:modelValue",a)}},inputProps(){return{...this.$props}}},methods:{handleClear(){this.$emit("clear")}}};function S(a,n,e,r,c,o){const l=t.resolveComponent("v-text-field");return t.openBlock(),t.createBlock(l,t.mergeProps(o.inputProps,{modelValue:o.inputValue,"onUpdate:modelValue":n[0]||(n[0]=d=>o.inputValue=d),label:e.label,placeholder:e.placeholder,disabled:e.disabled,error:e.error,"error-messages":e.errorMessages,"prepend-icon":e.prependIcon,clearable:"",hint:e.hint,autocomplete:e.autocomplete,"onClick:clear":o.handleClear}),null,16,["modelValue","label","placeholder","disabled","error","error-messages","prepend-icon","hint","autocomplete","onClick:clear"])}const x=i(k,[["render",S],["__scopeId","data-v-33b97f38"]]),h={name:"RtButton",props:{label:{type:String,default:"Click Me"},primary:{type:Boolean,default:!1},size:{type:String,default:"default",validator:a=>["x-small","small","default","large","x-large"].includes(a)},color:{type:String,default:"primary"},backgroundColor:{type:String},icon:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},text:{type:String,default:""},tile:{type:Boolean,default:!1},depressed:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},block:{type:Boolean,default:!1},href:{type:String,default:""},target:{type:String,default:"_self"},to:{type:[String,Object],default:null},replace:{type:Boolean,default:!1},exact:{type:Boolean,default:!1},append:{type:Boolean,default:!1},elevation:{type:[Number,String],default:2}},emits:["click"],setup(a,{emit:n}){const e=()=>{n("click")},r=t.computed(()=>a.primary?"flat":"outlined"),c=t.computed(()=>a.label||"Button"),o=t.computed(()=>({"btn-primary":a.primary,"btn-icon":a.icon,"btn-disabled":a.disabled}));return{onClick:e,variant:r,ariaLabel:c,buttonClasses:o}}};function C(a,n,e,r,c,o){const l=t.resolveComponent("v-btn");return t.openBlock(),t.createBlock(l,{type:"button",variant:r.variant,size:e.size,color:e.color,icon:e.icon,disabled:e.disabled,loading:e.loading,outlined:e.outlined,text:e.text,tile:e.tile,depressed:e.depressed,rounded:e.rounded,block:e.block,href:e.href,target:e.target,elevation:e.elevation,to:e.to,replace:e.replace,exact:e.exact,append:e.append,"background-color":e.backgroundColor,class:t.normalizeClass(r.buttonClasses),onClick:r.onClick,"aria-label":r.ariaLabel},{default:t.withCtx(()=>[t.renderSlot(a.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.label),1)],!0)]),_:3},8,["variant","size","color","icon","disabled","loading","outlined","text","tile","depressed","rounded","block","href","target","elevation","to","replace","exact","append","background-color","class","onClick","aria-label"])}const u=i(h,[["render",C],["__scopeId","data-v-ce0d0f31"]]),R={name:"RtBadge",props:{value:{type:[String,Number],default:0},color:{type:String,default:"red"},dot:{type:Boolean,default:!1},overlap:{type:Boolean,default:!1},content:{type:String,default:""},size:{type:[String,Number],default:"20"},bottom:{type:Boolean,default:!1},top:{type:Boolean,default:!1}},computed:{getAriaLabel(){return this.dot?"Notification dot":this.content?`Badge content: ${this.content}`:this.value?`Badge value: ${this.value}`:"Badge"}}};function I(a,n,e,r,c,o){const l=t.resolveComponent("v-badge");return t.openBlock(),t.createBlock(l,{value:e.value,color:e.color,dot:e.dot,overlap:e.overlap,content:e.content,size:e.size,bottom:e.bottom,top:e.top,role:"status","aria-label":o.getAriaLabel,"aria-live":e.dot?"polite":"off",tabindex:"0"},{default:t.withCtx(()=>[t.renderSlot(a.$slots,"default",{},void 0,!0)]),_:3},8,["value","color","dot","overlap","content","size","bottom","top","aria-label","aria-live"])}const V=i(R,[["render",I],["__scopeId","data-v-02392152"]]),z={name:"RtSnackbar",props:{message:{type:String,default:"Hello, I'm a snackbar!"},timeout:{type:Number,default:6e3},buttonText:{type:String,default:"Open Snackbar"},buttonColor:{type:String,default:"primary"},snackbarColor:{type:String,default:""},actionButtonText:{type:String,default:"Close"},actionButtonColor:{type:String,default:"pink"}},data(){return{snackbar:!1}}},N={class:"text-center ma-2"};function w(a,n,e,r,c,o){const l=t.resolveComponent("v-btn"),d=t.resolveComponent("v-snackbar");return t.openBlock(),t.createElementBlock("div",N,[t.createVNode(l,{color:e.buttonColor,onClick:n[0]||(n[0]=s=>c.snackbar=!0)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.buttonText),1)]),_:1},8,["color"]),t.createVNode(d,{modelValue:c.snackbar,"onUpdate:modelValue":n[2]||(n[2]=s=>c.snackbar=s),timeout:e.timeout,color:e.snackbarColor},{actions:t.withCtx(()=>[t.createVNode(l,{color:e.actionButtonColor,variant:"text",onClick:n[1]||(n[1]=s=>c.snackbar=!1)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.actionButtonText),1)]),_:1},8,["color"])]),default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.message)+" ",1)]),_:1},8,["modelValue","timeout","color"])])}const T=i(z,[["render",w],["__scopeId","data-v-75ce5462"]]),v={name:"RtImage",props:{src:{type:String,required:!0},alt:{type:String,required:!0},lazySrc:{type:String,default:""},aspectRatio:{type:[Number,String],default:null},gradient:{type:String,default:""},loading:{type:String,default:"lazy",validator:a=>["lazy","eager"].includes(a)},transition:{type:String,default:"fade-transition"},classes:{type:[String,Array,Object],default:()=>""}}};function A(a,n,e,r,c,o){const l=t.resolveComponent("v-img");return t.openBlock(),t.createBlock(l,{src:e.src,alt:e.alt,"lazy-src":e.lazySrc,"aspect-ratio":e.aspectRatio,gradient:e.gradient,loading:e.loading,transition:e.transition,class:t.normalizeClass(e.classes)},{placeholder:t.withCtx(()=>[t.renderSlot(a.$slots,"placeholder",{},()=>[n[0]||(n[0]=t.createTextVNode("Loading..."))],!0)]),default:t.withCtx(()=>[t.renderSlot(a.$slots,"default",{},void 0,!0)]),_:3},8,["src","alt","lazy-src","aspect-ratio","gradient","loading","transition","class"])}const L={name:"RtAvatar",components:{RtImage:i(v,[["render",A],["__scopeId","data-v-f3ff4550"]])},props:{avatarImage:{type:String,default:"https://randomuser.me/api/portraits/men/32.jpg"},alt:{type:String,default:"Alt"},ariaLabel:{type:String,default:"Aria Label"},name:{type:String,default:"Name"},size:{type:Number,default:50},rounded:{type:Number,default:1}},computed:{initials(){return this.name?this.name.split(" ").map(a=>a[0]).join("").toUpperCase():""}}},D={class:"avatar-wrapper"},E={key:1,class:"initials"};function j(a,n,e,r,c,o){const l=t.resolveComponent("RtImage"),d=t.resolveComponent("v-avatar");return t.openBlock(),t.createElementBlock("div",D,[t.createVNode(d,{size:e.size,class:"avatar",rounded:e.rounded,tabindex:"0",role:"img","aria-label":e.ariaLabel},{default:t.withCtx(()=>[e.avatarImage?(t.openBlock(),t.createBlock(l,{key:0,src:e.avatarImage,alt:e.alt},null,8,["src","alt"])):(t.openBlock(),t.createElementBlock("span",E,t.toDisplayString(o.initials),1))]),_:1},8,["size","rounded","aria-label"])])}const q=i(L,[["render",j],["__scopeId","data-v-0d49dde0"]]),O={name:"RtBreadcrumbs",components:{RtButton:u},props:{items:{type:Array,default:()=>[{text:"Home",to:"/"},{text:"Products",to:"/products"},{text:"Details",to:null}]},divider:{type:String,default:"/"}}},P={key:1};function M(a,n,e,r,c,o){const l=t.resolveComponent("RtButton"),d=t.resolveComponent("v-breadcrumbs");return t.openBlock(),t.createBlock(d,{class:"v-breadcrumbs-wrapper",divider:e.divider,items:e.items},{item:t.withCtx(({item:s})=>[s.to?(t.openBlock(),t.createBlock(l,{key:0,to:s.to,text:""},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(s.text),1)]),_:2},1032,["to"])):(t.openBlock(),t.createElementBlock("span",P,t.toDisplayString(s.text),1))]),_:1},8,["divider","items"])}const U=i(O,[["render",M],["__scopeId","data-v-5ccff043"]]),H={name:"RtIcon",props:{icon:{type:String,required:!0},size:{type:String,default:"24"},color:{type:String,default:""},customClass:{type:String,default:""}}};function F(a,n,e,r,c,o){const l=t.resolveComponent("v-icon");return t.openBlock(),t.createBlock(l,{size:e.size,color:e.color,class:t.normalizeClass(e.customClass),icon:e.icon},null,8,["size","color","class","icon"])}const G={name:"RtAlert",components:{RtIcon:i(H,[["render",F],["__scopeId","data-v-d688a9cc"]])},props:{density:{type:String,default:"default",validator(a){return["default","comfortable","compact"].includes(a)}},closable:{type:Boolean,default:!1},variant:{type:String,default:"flat",validator(a){return["plain","outlined","tonal","flat","elevated","text"].includes(a)}},text:{type:String,default:""},border:{type:String,default:"Start",validator(a){return["start","top","end","bottom","none"].includes(a)}},icon:{type:String,default:"info",validator(a){return["info","success","error","warning","hidden"].includes(a)}},borderColor:{type:String,default:"info",validator(a){return["info","success","error","warning","deep-purple accent-4"].includes(a)}},color:{type:String,default:"info",validator(a){return["info","success","error","warning","hidden"].includes(a)}}},methods:{getAriaLive(){return this.type==="error"||this.type==="warning"?"assertive":"polite"}}},J={class:"alert-content"};function K(a,n,e,r,c,o){const l=t.resolveComponent("RtIcon"),d=t.resolveComponent("v-alert");return t.openBlock(),t.createBlock(d,{text:e.text,type:e.icon,"border-color":e.borderColor,color:e.color,border:e.border,variant:e.variant,closable:e.closable,density:e.density,role:"alert","aria-live":o.getAriaLive(),"aria-atomic":!0},{default:t.withCtx(()=>[e.icon?(t.openBlock(),t.createBlock(l,{key:0,left:"","aria-hidden":"true"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.icon),1)]),_:1})):t.createCommentVNode("",!0),t.createElementVNode("span",J,[t.renderSlot(a.$slots,"default",{},void 0,!0)])]),_:3},8,["text","type","border-color","color","border","variant","closable","density","aria-live"])}const Q=i(G,[["render",K],["__scopeId","data-v-bae3eb1c"]]);return{install:(a,n)=>{a.component("LearnVueButton",_),a.component("InputTaras",B),a.component("RtText",x),a.component("RtButton",u),a.component("RtBadge",V),a.component("RtSnackbar",T),a.component("RtAvatar",q),a.component("RtBreadcrumbs",U),a.component("RtAlert",Q)}}});
1
+ (function(e,d){typeof exports=="object"&&typeof module<"u"?module.exports=d(require("vue")):typeof define=="function"&&define.amd?define(["vue"],d):(e=typeof globalThis<"u"?globalThis:e||self,e["readytech-ui-library-v2"]=d(e.Vue))})(this,function(e){"use strict";const d=(n,o)=>{const t=n.__vccOpts||n;for(const[i,r]of o)t[i]=r;return t},y={name:"RtIcon",props:{icon:{type:String,required:!0},size:{type:String,default:"24"},color:{type:String,default:""},customClass:{type:String,default:""}}};function h(n,o,t,i,r,a){const l=e.resolveComponent("v-icon");return e.openBlock(),e.createBlock(l,{size:t.size,color:t.color,class:e.normalizeClass(t.customClass),icon:t.icon},null,8,["size","color","class","icon"])}const b=d(y,[["render",h],["__scopeId","data-v-d688a9cc"]]),k={name:"RtAlert",components:{RtIcon:b},props:{density:{type:String,default:"default",validator(n){return["default","comfortable","compact"].includes(n)}},closable:{type:Boolean,default:!1},variant:{type:String,default:"flat",validator(n){return["plain","outlined","tonal","flat","elevated","text"].includes(n)}},text:{type:String,default:""},border:{type:String,default:"Start",validator(n){return["start","top","end","bottom","none"].includes(n)}},icon:{type:String,default:"info",validator(n){return["info","success","error","warning","hidden"].includes(n)}},borderColor:{type:String,default:"info",validator(n){return["info","success","error","warning","deep-purple accent-4"].includes(n)}},color:{type:String,default:"info",validator(n){return["info","success","error","warning","hidden"].includes(n)}}},methods:{getAriaLive(){return this.type==="error"||this.type==="warning"?"assertive":"polite"}}},x={class:"alert-content"};function B(n,o,t,i,r,a){const l=e.resolveComponent("RtIcon"),c=e.resolveComponent("v-alert");return e.openBlock(),e.createBlock(c,{text:t.text,type:t.icon,"border-color":t.borderColor,color:t.color,border:t.border,variant:t.variant,closable:t.closable,density:t.density,role:"alert","aria-live":a.getAriaLive(),"aria-atomic":!0},{default:e.withCtx(()=>[t.icon?(e.openBlock(),e.createBlock(l,{key:0,left:"","aria-hidden":"true"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.icon),1)]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("span",x,[e.renderSlot(n.$slots,"default",{},void 0,!0)])]),_:3},8,["text","type","border-color","color","border","variant","closable","density","aria-live"])}const C=d(k,[["render",B],["__scopeId","data-v-bae3eb1c"]]),S={name:"RtImage",props:{src:{type:String,required:!0},alt:{type:String,required:!0},lazySrc:{type:String,default:""},aspectRatio:{type:[Number,String],default:null},gradient:{type:String,default:""},loading:{type:String,default:"lazy",validator:n=>["lazy","eager"].includes(n)},transition:{type:String,default:"fade-transition"},classes:{type:[String,Array,Object],default:()=>""}}};function w(n,o,t,i,r,a){const l=e.resolveComponent("v-img");return e.openBlock(),e.createBlock(l,{src:t.src,alt:t.alt,"lazy-src":t.lazySrc,"aspect-ratio":t.aspectRatio,gradient:t.gradient,loading:t.loading,transition:t.transition,class:e.normalizeClass(t.classes)},{placeholder:e.withCtx(()=>[e.renderSlot(n.$slots,"placeholder",{},()=>[o[0]||(o[0]=e.createTextVNode("Loading..."))],!0)]),default:e.withCtx(()=>[e.renderSlot(n.$slots,"default",{},void 0,!0)]),_:3},8,["src","alt","lazy-src","aspect-ratio","gradient","loading","transition","class"])}const R={name:"RtAvatar",components:{RtImage:d(S,[["render",w],["__scopeId","data-v-f3ff4550"]])},props:{avatarImage:{type:String,default:"https://randomuser.me/api/portraits/men/32.jpg"},alt:{type:String,default:"Alt"},ariaLabel:{type:String,default:"Aria Label"},name:{type:String,default:"Name"},size:{type:Number,default:50},rounded:{type:Number,default:1}},computed:{initials(){return this.name?this.name.split(" ").map(n=>n[0]).join("").toUpperCase():""}}},V={class:"avatar-wrapper"},N={key:1,class:"initials"};function I(n,o,t,i,r,a){const l=e.resolveComponent("RtImage"),c=e.resolveComponent("v-avatar");return e.openBlock(),e.createElementBlock("div",V,[e.createVNode(c,{size:t.size,class:"avatar",rounded:t.rounded,tabindex:"0",role:"img","aria-label":t.ariaLabel},{default:e.withCtx(()=>[t.avatarImage?(e.openBlock(),e.createBlock(l,{key:0,src:t.avatarImage,alt:t.alt},null,8,["src","alt"])):(e.openBlock(),e.createElementBlock("span",N,e.toDisplayString(a.initials),1))]),_:1},8,["size","rounded","aria-label"])])}const T=d(R,[["render",I],["__scopeId","data-v-0d49dde0"]]),v={name:"RtBadge",props:{value:{type:[String,Number],default:0},color:{type:String,default:"red"},dot:{type:Boolean,default:!1},overlap:{type:Boolean,default:!1},content:{type:String,default:""},size:{type:[String,Number],default:"20"},bottom:{type:Boolean,default:!1},top:{type:Boolean,default:!1}},computed:{getAriaLabel(){return this.dot?"Notification dot":this.content?`Badge content: ${this.content}`:this.value?`Badge value: ${this.value}`:"Badge"}}};function z(n,o,t,i,r,a){const l=e.resolveComponent("v-badge");return e.openBlock(),e.createBlock(l,{value:t.value,color:t.color,dot:t.dot,overlap:t.overlap,content:t.content,size:t.size,bottom:t.bottom,top:t.top,role:"status","aria-label":a.getAriaLabel,"aria-live":t.dot?"polite":"off",tabindex:"0"},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default",{},void 0,!0)]),_:3},8,["value","color","dot","overlap","content","size","bottom","top","aria-label","aria-live"])}const E=d(v,[["render",z],["__scopeId","data-v-02392152"]]),P={name:"RtButton",props:{label:{type:String,default:"Click Me"},primary:{type:Boolean,default:!1},size:{type:String,default:"default",validator:n=>["x-small","small","default","large","x-large"].includes(n)},color:{type:String,default:"primary"},backgroundColor:{type:String},icon:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},text:{type:String,default:""},tile:{type:Boolean,default:!1},depressed:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},block:{type:Boolean,default:!1},href:{type:String,default:""},target:{type:String,default:"_self"},to:{type:[String,Object],default:null},replace:{type:Boolean,default:!1},exact:{type:Boolean,default:!1},append:{type:Boolean,default:!1},elevation:{type:[Number,String],default:2}},emits:["click"],setup(n,{emit:o}){const t=()=>{o("click")},i=e.computed(()=>n.primary?"flat":"outlined"),r=e.computed(()=>n.label||"Button"),a=e.computed(()=>({"btn-primary":n.primary,"btn-icon":n.icon,"btn-disabled":n.disabled}));return{onClick:t,variant:i,ariaLabel:r,buttonClasses:a}}};function A(n,o,t,i,r,a){const l=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(l,{type:"button",variant:i.variant,size:t.size,color:t.color,icon:t.icon,disabled:t.disabled,loading:t.loading,outlined:t.outlined,text:t.text,tile:t.tile,depressed:t.depressed,rounded:t.rounded,block:t.block,href:t.href,target:t.target,elevation:t.elevation,to:t.to,replace:t.replace,exact:t.exact,append:t.append,"background-color":t.backgroundColor,class:e.normalizeClass(i.buttonClasses),onClick:i.onClick,"aria-label":i.ariaLabel},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)],!0)]),_:3},8,["variant","size","color","icon","disabled","loading","outlined","text","tile","depressed","rounded","block","href","target","elevation","to","replace","exact","append","background-color","class","onClick","aria-label"])}const _=d(P,[["render",A],["__scopeId","data-v-ce0d0f31"]]),L={name:"RtBottomNavigation",components:{RtIcon:b,RtButton:_},props:{ariaLabel:{type:String,default:"Bottom Navigation"},tabs:{type:Array,default:()=>[{value:"home",icon:"mdi-home"},{value:"favorites",icon:"mdi-heart"},{value:"settings",icon:"mdi-cog"}]},backgroundColor:{type:String,default:"primary"},textColor:{type:String,default:"white"},initialTab:{type:String,default:"home"}},data(){return{currentTab:this.initialTab}},methods:{onTabClick(n){this.$emit("tabSelected",n.value),this.currentTab=n.value}}};function D(n,o,t,i,r,a){const l=e.resolveComponent("RtIcon"),c=e.resolveComponent("RtButton"),s=e.resolveComponent("v-bottom-navigation");return e.openBlock(),e.createBlock(s,{modelValue:r.currentTab,"onUpdate:modelValue":o[0]||(o[0]=f=>r.currentTab=f),"background-color":t.backgroundColor,color:t.textColor,app:"",class:"v-bottom-navigation-wrapper",role:"navigation","aria-label":t.ariaLabel},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(f,p)=>(e.openBlock(),e.createBlock(c,{key:p,value:f.value,"aria-label":f.value+" tab",icon:!0,onClick:g=>a.onTabClick(f),"aria-selected":r.currentTab===f.value?"true":"false",role:"tab",class:"v-btn-item"},{default:e.withCtx(()=>[e.createVNode(l,{icon:f.icon,size:24},null,8,["icon"])]),_:2},1032,["value","aria-label","onClick","aria-selected"]))),128))]),_:1},8,["modelValue","background-color","color","aria-label"])}const M=d(L,[["render",D],["__scopeId","data-v-d56f72f0"]]),K={name:"RtBottomSheet",components:{RtButton:_},data:()=>({sheet:!1})},j={class:"text-center"};function F(n,o,t,i,r,a){const l=e.resolveComponent("RtButton"),c=e.resolveComponent("v-card-text"),s=e.resolveComponent("v-card"),f=e.resolveComponent("v-bottom-sheet");return e.openBlock(),e.createElementBlock("div",j,[e.createVNode(l,{class:"open-button",size:"x-large",text:"Click Me",onClick:o[0]||(o[0]=p=>n.sheet=!n.sheet)}),e.createVNode(f,{modelValue:n.sheet,"onUpdate:modelValue":o[2]||(o[2]=p=>n.sheet=p)},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-center",height:"200"},{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(l,{class:"close-button",variant:"text",onClick:o[1]||(o[1]=p=>n.sheet=!n.sheet)},{default:e.withCtx(()=>o[3]||(o[3]=[e.createTextVNode(" close ")])),_:1}),o[4]||(o[4]=e.createElementVNode("br",null,null,-1)),o[5]||(o[5]=e.createElementVNode("br",null,null,-1)),o[6]||(o[6]=e.createElementVNode("div",null," This is a bottom sheet using the controlled by v-model instead of activator ",-1))]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const U=d(K,[["render",F]]),q={name:"RtText",props:{label:{type:String,default:"Input Field"},hint:{type:String,default:""},placeholder:{type:String,default:""},modelValue:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},error:{type:Boolean,default:!1},errorMessages:{type:[String,Array],default:()=>[]},prependIcon:{type:String,default:""},clearable:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"}},computed:{inputValue:{get(){return this.modelValue},set(n){this.$emit("update:modelValue",n)}},inputProps(){return{...this.$props}}},methods:{handleClear(){this.$emit("clear")}}};function O(n,o,t,i,r,a){const l=e.resolveComponent("v-text-field");return e.openBlock(),e.createBlock(l,e.mergeProps(a.inputProps,{modelValue:a.inputValue,"onUpdate:modelValue":o[0]||(o[0]=c=>a.inputValue=c),label:t.label,placeholder:t.placeholder,disabled:t.disabled,error:t.error,"error-messages":t.errorMessages,"prepend-icon":t.prependIcon,clearable:"",hint:t.hint,autocomplete:t.autocomplete,"onClick:clear":a.handleClear}),null,16,["modelValue","label","placeholder","disabled","error","error-messages","prepend-icon","hint","autocomplete","onClick:clear"])}const H=d(q,[["render",O],["__scopeId","data-v-33b97f38"]]),G={name:"RtExpansionComponent",props:{disabled:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},variant:{type:String,default:"default",validator(n){return["default","accordion","inset","popout"].includes(n)}},multiple:{type:Boolean,default:!1},expandIcon:{type:String,default:"mdi-chevron-down"},collapseIcon:{type:String,default:"mdi-chevron-up"}},data(){return{expandedPanels:new Set}},methods:{isExpanded(n){return this.expandedPanels.has(n)},togglePanel(n){this.multiple?this.expandedPanels.has(n)?this.expandedPanels.delete(n):this.expandedPanels.add(n):this.expandedPanels=new Set(this.expandedPanels.has(n)?[]:[n])},focusPrevious(n){const o=n>0?n-1:this.items.length-1;document.getElementById(`panel-header-${o}`).focus()},focusNext(n){const o=n<this.items.length-1?n+1:0;document.getElementById(`panel-header-${o}`).focus()},focusFirst(){document.getElementById("panel-header-0").focus()},focusLast(){const n=this.items.length-1;document.getElementById(`panel-header-${n}`).focus()}}};function J(n,o,t,i,r,a){const l=e.resolveComponent("v-icon"),c=e.resolveComponent("v-expansion-panel-title"),s=e.resolveComponent("v-expansion-panel-text"),f=e.resolveComponent("v-expansion-panel"),p=e.resolveComponent("v-expansion-panels");return e.openBlock(),e.createBlock(p,e.mergeProps(n.$attrs,{multiple:t.multiple,variant:t.variant,disabled:t.disabled,role:"region","aria-multiselectable":"multiple"}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(g,m)=>(e.openBlock(),e.createBlock(f,{key:m,role:"group"},{default:e.withCtx(()=>[e.createVNode(c,{role:"button","aria-expanded":a.isExpanded(m),id:"panel-header-"+m,"aria-controls":"panel-content-"+m,onClick:u=>a.togglePanel(m),tabindex:"0",onKeydown:[e.withKeys(e.withModifiers(u=>a.togglePanel(m),["stop","prevent"]),["space"]),e.withKeys(e.withModifiers(u=>a.togglePanel(m),["stop","prevent"]),["enter"]),e.withKeys(e.withModifiers(u=>a.focusPrevious(m),["stop","prevent"]),["arrow-up"]),e.withKeys(e.withModifiers(u=>a.focusNext(m),["stop","prevent"]),["arrow-down"]),o[0]||(o[0]=e.withKeys(e.withModifiers(u=>a.focusFirst(),["stop","prevent"]),["home"])),o[1]||(o[1]=e.withKeys(e.withModifiers(u=>a.focusLast(),["stop","prevent"]),["end"]))]},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(g.title),1)]),actions:e.withCtx(()=>[t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(l,{key:0,"aria-hidden":!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.isExpanded(m)?t.collapseIcon:t.expandIcon),1)]),_:2},1024))]),_:2},1032,["aria-expanded","id","aria-controls","onClick","onKeydown"]),e.withDirectives(e.createVNode(s,{id:"panel-content-"+m,"aria-labelledby":"panel-header-"+m,role:"region"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.content),1)]),_:2},1032,["id","aria-labelledby"]),[[e.vShow,a.isExpanded(m)]])]),_:2},1024))),128))]),_:1},16,["multiple","variant","disabled"])}const Q=d(G,[["render",J],["__scopeId","data-v-2c20523a"]]),W={name:"RtSnackbar",props:{message:{type:String,default:"Hello, I'm a snackbar!"},timeout:{type:Number,default:6e3},buttonText:{type:String,default:"Open Snackbar"},buttonColor:{type:String,default:"primary"},snackbarColor:{type:String,default:""},actionButtonText:{type:String,default:"Close"},actionButtonColor:{type:String,default:"pink"}},data(){return{snackbar:!1}}},X={class:"text-center ma-2"};function Y(n,o,t,i,r,a){const l=e.resolveComponent("v-btn"),c=e.resolveComponent("v-snackbar");return e.openBlock(),e.createElementBlock("div",X,[e.createVNode(l,{color:t.buttonColor,onClick:o[0]||(o[0]=s=>r.snackbar=!0)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.buttonText),1)]),_:1},8,["color"]),e.createVNode(c,{modelValue:r.snackbar,"onUpdate:modelValue":o[2]||(o[2]=s=>r.snackbar=s),timeout:t.timeout,color:t.snackbarColor},{actions:e.withCtx(()=>[e.createVNode(l,{color:t.actionButtonColor,variant:"text",onClick:o[1]||(o[1]=s=>r.snackbar=!1)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.actionButtonText),1)]),_:1},8,["color"])]),default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.message)+" ",1)]),_:1},8,["modelValue","timeout","color"])])}const Z=d(W,[["render",Y],["__scopeId","data-v-75ce5462"]]),$={name:"RtBreadcrumbs",components:{RtButton:_},props:{items:{type:Array,default:()=>[{text:"Home",to:"/"},{text:"Products",to:"/products"},{text:"Details",to:null}]},divider:{type:String,default:"/"}}},ee={key:1};function te(n,o,t,i,r,a){const l=e.resolveComponent("RtButton"),c=e.resolveComponent("v-breadcrumbs");return e.openBlock(),e.createBlock(c,{class:"v-breadcrumbs-wrapper",divider:t.divider,items:t.items},{item:e.withCtx(({item:s})=>[s.to?(e.openBlock(),e.createBlock(l,{key:0,to:s.to,text:""},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.text),1)]),_:2},1032,["to"])):(e.openBlock(),e.createElementBlock("span",ee,e.toDisplayString(s.text),1))]),_:1},8,["divider","items"])}const ne=d($,[["render",te],["__scopeId","data-v-5ccff043"]]);return{install:(n,o)=>{n.component("RtText",H),n.component("RtButton",_),n.component("RtBadge",E),n.component("RtSnackbar",Z),n.component("RtAvatar",T),n.component("RtBreadcrumbs",ne),n.component("RtAlert",C),n.component("RtBottomNavigation",M),n.component("RtBottomSheet",U),n.component("RtExpansionComponent",Q)}}});
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "readytech-ui-library-v2",
3
3
  "description": "ui library",
4
4
  "private": false,
5
- "version": "0.0.16",
5
+ "version": "0.0.17",
6
6
  "exports": {
7
7
  ".": {
8
8
  "import": "./dist/readytech-ui-library-v2.es.js",