@astrake/lumora-ui 0.1.6 → 0.2.1

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 (157) hide show
  1. package/CHANGELOG.md +141 -92
  2. package/dist/LuCodeBlock.vue_vue_type_script_setup_true_lang-BjwcjuXF.js +1623 -0
  3. package/dist/LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-CIksvebU.js +218 -0
  4. package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-DZch4Vrw.js +226 -0
  5. package/dist/components/LuAlert.vue.d.ts +20 -0
  6. package/dist/components/LuAvatar.vue.d.ts +19 -0
  7. package/dist/components/LuBadge.vue.d.ts +16 -0
  8. package/dist/components/LuBreadcrumb.vue.d.ts +16 -0
  9. package/dist/components/LuButton.vue.d.ts +24 -0
  10. package/dist/components/LuCard.vue.d.ts +21 -0
  11. package/dist/components/LuCheckbox.vue.d.ts +27 -0
  12. package/dist/components/LuCodeBlock.vue.d.ts +29 -0
  13. package/dist/components/LuCollapsible.vue.d.ts +25 -0
  14. package/dist/components/LuDivider.vue.d.ts +8 -0
  15. package/dist/components/LuForm.types.d.ts +18 -0
  16. package/dist/components/LuForm.vue.d.ts +55 -0
  17. package/dist/components/LuIcon.vue.d.ts +18 -0
  18. package/dist/components/LuInput.vue.d.ts +26 -0
  19. package/dist/components/LuLink.vue.d.ts +23 -0
  20. package/dist/components/LuMenu.vue.d.ts +26 -0
  21. package/dist/components/LuMenuItem.vue.d.ts +20 -0
  22. package/dist/components/LuModal.vue.d.ts +32 -0
  23. package/dist/components/LuPageHeader.vue.d.ts +10 -0
  24. package/dist/components/LuPagination.vue.d.ts +18 -0
  25. package/dist/components/LuProgressBar.vue.d.ts +7 -0
  26. package/dist/components/LuRadio.vue.d.ts +18 -0
  27. package/dist/components/LuRadioGroup.types.d.ts +8 -0
  28. package/dist/components/LuRadioGroup.vue.d.ts +24 -0
  29. package/dist/components/LuSelect.vue.d.ts +18 -0
  30. package/dist/components/LuSkeleton.vue.d.ts +5 -0
  31. package/dist/components/LuSpinner.vue.d.ts +5 -0
  32. package/dist/components/LuSwitch.vue.d.ts +15 -0
  33. package/dist/components/LuTab.vue.d.ts +16 -0
  34. package/dist/components/LuTabList.vue.d.ts +15 -0
  35. package/dist/components/LuTabPanel.vue.d.ts +16 -0
  36. package/dist/components/LuTable.vue.d.ts +15 -0
  37. package/dist/components/LuTableBody.vue.d.ts +15 -0
  38. package/dist/components/LuTableCell.vue.d.ts +15 -0
  39. package/dist/components/LuTableHead.vue.d.ts +15 -0
  40. package/dist/components/LuTableHeadCell.vue.d.ts +15 -0
  41. package/dist/components/LuTableRow.vue.d.ts +15 -0
  42. package/dist/components/LuTabs.vue.d.ts +20 -0
  43. package/dist/components/LuTag.vue.d.ts +20 -0
  44. package/dist/components/LuText.vue.d.ts +16 -0
  45. package/dist/components/LuTextarea.vue.d.ts +14 -0
  46. package/dist/components/LuThemeSelect.vue.d.ts +2 -0
  47. package/dist/components/LuThemeSwitch.vue.d.ts +2 -0
  48. package/dist/components/LuToggleButton.vue.d.ts +16 -0
  49. package/dist/components/LuToggleGroup.vue.d.ts +20 -0
  50. package/dist/components/LuTooltip.vue.d.ts +19 -0
  51. package/dist/components/__tests__/LuForm.test.d.ts +1 -0
  52. package/{src/components/index.ts → dist/components/index.d.ts} +16 -0
  53. package/dist/components/index.js +47 -0
  54. package/{src/composables/index.ts → dist/composables/index.d.ts} +0 -1
  55. package/dist/composables/index.js +30 -0
  56. package/dist/composables/useRail.d.ts +6 -0
  57. package/dist/composables/useSplit.d.ts +4 -0
  58. package/dist/composables/useTheme.d.ts +7 -0
  59. package/dist/context-0gENwESP.js +62 -0
  60. package/dist/context.d.ts +8 -0
  61. package/{src/index.ts → dist/index.d.ts} +2 -3
  62. package/dist/index.js +94 -0
  63. package/dist/layout/LuDock.vue.d.ts +9 -0
  64. package/dist/layout/LuDockItem.vue.d.ts +16 -0
  65. package/dist/layout/LuFill.vue.d.ts +21 -0
  66. package/dist/layout/LuFixed.vue.d.ts +21 -0
  67. package/dist/layout/LuGrid.vue.d.ts +26 -0
  68. package/dist/layout/LuOverlay.vue.d.ts +15 -0
  69. package/dist/layout/LuScroll.vue.d.ts +15 -0
  70. package/dist/layout/LuSplit.vue.d.ts +16 -0
  71. package/dist/layout/LuSplitPane.vue.d.ts +18 -0
  72. package/dist/layout/LuSplitResizer.vue.d.ts +5 -0
  73. package/dist/layout/LuStack.vue.d.ts +23 -0
  74. package/{src/layout/index.ts → dist/layout/index.d.ts} +1 -14
  75. package/dist/layout/index.js +14 -0
  76. package/dist/plugin.d.ts +6 -0
  77. package/dist/shell/desktop/LuDesktopRailBar.vue.d.ts +17 -0
  78. package/dist/shell/desktop/LuDesktopRailItem.vue.d.ts +18 -0
  79. package/dist/shell/desktop/LuDesktopShell.vue.d.ts +23 -0
  80. package/dist/shell/desktop/LuDesktopSidebar.vue.d.ts +21 -0
  81. package/dist/shell/desktop/LuDesktopStatusBar.vue.d.ts +15 -0
  82. package/dist/shell/desktop/LuDesktopTopBar.vue.d.ts +15 -0
  83. package/dist/shell/embedded/LuEmbeddedShell.vue.d.ts +19 -0
  84. package/dist/shell/embedded/LuEmbeddedStatusBar.vue.d.ts +17 -0
  85. package/dist/shell/embedded/LuEmbeddedTopBar.vue.d.ts +19 -0
  86. package/{src/shell/index.ts → dist/shell/index.d.ts} +4 -2
  87. package/dist/shell/index.js +15 -0
  88. package/dist/shell/mobile/LuMobileHeader.vue.d.ts +19 -0
  89. package/dist/shell/mobile/LuMobileNavBar.vue.d.ts +15 -0
  90. package/dist/shell/mobile/LuMobileShell.vue.d.ts +21 -0
  91. package/dist/skins/default.d.ts +2 -0
  92. package/dist/skins/index.js +416 -0
  93. package/dist/tailwind.d.ts +1 -0
  94. package/dist/tailwind.js +13 -0
  95. package/dist/types.d.ts +15 -0
  96. package/dist/useTheme-Cd4wVaLs.js +21 -0
  97. package/dist/utils.d.ts +21 -0
  98. package/package.json +94 -61
  99. package/src/lumora.css +16 -0
  100. package/src/components/LuAvatar.vue +0 -22
  101. package/src/components/LuBadge.vue +0 -15
  102. package/src/components/LuButton.vue +0 -58
  103. package/src/components/LuCard.vue +0 -20
  104. package/src/components/LuCollapsible.vue +0 -34
  105. package/src/components/LuDivider.vue +0 -18
  106. package/src/components/LuForm.types.ts +0 -24
  107. package/src/components/LuForm.vue +0 -121
  108. package/src/components/LuIcon.vue +0 -39
  109. package/src/components/LuInput.vue +0 -62
  110. package/src/components/LuLink.vue +0 -47
  111. package/src/components/LuPageHeader.vue +0 -24
  112. package/src/components/LuProgressBar.vue +0 -21
  113. package/src/components/LuSelect.vue +0 -67
  114. package/src/components/LuSwitch.vue +0 -74
  115. package/src/components/LuTab.vue +0 -26
  116. package/src/components/LuTabList.vue +0 -15
  117. package/src/components/LuTabPanel.vue +0 -19
  118. package/src/components/LuTable.vue +0 -15
  119. package/src/components/LuTableBody.vue +0 -15
  120. package/src/components/LuTableCell.vue +0 -15
  121. package/src/components/LuTableHead.vue +0 -15
  122. package/src/components/LuTableHeadCell.vue +0 -15
  123. package/src/components/LuTableRow.vue +0 -15
  124. package/src/components/LuTabs.vue +0 -30
  125. package/src/components/LuText.vue +0 -18
  126. package/src/components/LuThemeSelect.vue +0 -26
  127. package/src/components/LuThemeSwitch.vue +0 -22
  128. package/src/components/LuTooltip.vue +0 -36
  129. package/src/components/__tests__/LuForm.test.ts +0 -206
  130. package/src/composables/useRail.ts +0 -24
  131. package/src/composables/useSplit.ts +0 -17
  132. package/src/composables/useTheme.ts +0 -36
  133. package/src/context.ts +0 -36
  134. package/src/layout/LuDock.vue +0 -23
  135. package/src/layout/LuDockItem.vue +0 -18
  136. package/src/layout/LuFill.vue +0 -17
  137. package/src/layout/LuFixed.vue +0 -17
  138. package/src/layout/LuGrid.vue +0 -22
  139. package/src/layout/LuOverlay.vue +0 -17
  140. package/src/layout/LuScroll.vue +0 -17
  141. package/src/layout/LuSplit.vue +0 -23
  142. package/src/layout/LuSplitPane.vue +0 -32
  143. package/src/layout/LuSplitResizer.vue +0 -17
  144. package/src/layout/LuStack.vue +0 -24
  145. package/src/plugin.ts +0 -27
  146. package/src/shell/desktop/LuDesktopRailBar.vue +0 -23
  147. package/src/shell/desktop/LuDesktopRailItem.vue +0 -23
  148. package/src/shell/desktop/LuDesktopShell.vue +0 -25
  149. package/src/shell/desktop/LuDesktopSidebar.vue +0 -36
  150. package/src/shell/desktop/LuDesktopStatusBar.vue +0 -15
  151. package/src/shell/desktop/LuDesktopTopBar.vue +0 -15
  152. package/src/shell/embedded/LuEmbeddedShell.vue +0 -20
  153. package/src/shell/mobile/LuMobileShell.vue +0 -21
  154. package/src/skins/default.ts +0 -94
  155. package/src/types.ts +0 -18
  156. package/tsconfig.json +0 -10
  157. /package/{src/skins/index.ts → dist/skins/index.d.ts} +0 -0
@@ -0,0 +1,1623 @@
1
+ import { defineComponent as k, computed as o, resolveComponent as ue, useAttrs as pe, openBlock as i, createBlock as A, resolveDynamicComponent as K, mergeProps as S, withCtx as w, renderSlot as b, inject as H, ref as T, onMounted as R, onUnmounted as G, createElementBlock as m, normalizeClass as p, createCommentVNode as V, createElementVNode as C, unref as I, useSlots as fe, Fragment as q, renderList as se, toDisplayString as M, watch as F, provide as J, withDirectives as ie, vShow as ce, normalizeStyle as ke, createTextVNode as E, createVNode as B, readonly as oe, withModifiers as U, onBeforeUnmount as de, Transition as te, Teleport as be } from "vue";
2
+ import { u as g, c as ne, r as ge } from "./context-0gENwESP.js";
3
+ import { u as ve } from "./useTheme-Cd4wVaLs.js";
4
+ import { createHighlighter as he } from "shiki";
5
+ const Z = /* @__PURE__ */ k({
6
+ __name: "LuButton",
7
+ props: {
8
+ type: {},
9
+ disabled: { type: Boolean },
10
+ variant: {},
11
+ as: {},
12
+ to: {},
13
+ href: {}
14
+ },
15
+ emits: ["click"],
16
+ setup(a, { emit: l }) {
17
+ const e = a, t = l, n = o(() => {
18
+ if (e.as) return e.as;
19
+ if (e.to) {
20
+ const u = ue("RouterLink");
21
+ return typeof u == "string" ? "a" : u;
22
+ }
23
+ return e.href ? "a" : "button";
24
+ }), r = o(() => {
25
+ const u = { ...e, ...pe() };
26
+ return delete u.variant, delete u.as, n.value !== "button" && delete u.type, e.disabled && n.value, u;
27
+ }), { resolveSkin: s } = g(), c = o(() => s("LuButton", e.variant));
28
+ return (u, d) => (i(), A(K(n.value), S(r.value, {
29
+ class: c.value,
30
+ onClick: d[0] || (d[0] = (v) => t("click", v))
31
+ }), {
32
+ default: w(() => [
33
+ b(u.$slots, "default")
34
+ ]),
35
+ _: 3
36
+ }, 16, ["class"]));
37
+ }
38
+ }), D = Symbol("LuFormContext"), Le = {
39
+ key: 0,
40
+ class: "relative w-full"
41
+ }, ye = ["value", "name", "disabled"], Se = ["value", "name", "disabled"], Xe = /* @__PURE__ */ k({
42
+ __name: "LuInput",
43
+ props: {
44
+ modelValue: {},
45
+ variant: {},
46
+ name: {},
47
+ error: {}
48
+ },
49
+ emits: ["update:modelValue", "blur"],
50
+ setup(a, { emit: l }) {
51
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuInput", e.variant)), s = o(() => n("LuInputPrepend", e.variant)), c = o(() => n("LuInputAppend", e.variant)), u = H(D, null), d = T(e.modelValue), v = (L) => {
52
+ const f = L.target.value;
53
+ d.value = f, t("update:modelValue", f);
54
+ }, h = () => {
55
+ e.name && u && (u.validateOn.value === "blur" || u.validateOn.value), t("blur");
56
+ };
57
+ return R(() => {
58
+ !e.name || !u || u.register({
59
+ name: e.name,
60
+ getValue: () => d.value,
61
+ setValue: (L) => {
62
+ d.value = L;
63
+ },
64
+ setError: (L) => {
65
+ }
66
+ });
67
+ }), G(() => {
68
+ e.name && u && u.unregister(e.name);
69
+ }), (L, f) => {
70
+ var $, y;
71
+ return L.$slots.prepend || L.$slots.append ? (i(), m("div", Le, [
72
+ L.$slots.prepend ? (i(), m("div", {
73
+ key: 0,
74
+ class: p(s.value)
75
+ }, [
76
+ b(L.$slots, "prepend")
77
+ ], 2)) : V("", !0),
78
+ C("input", S(L.$attrs, {
79
+ class: [r.value, L.$slots.prepend && "pl-9", L.$slots.append && "pr-9"],
80
+ value: a.modelValue,
81
+ name: a.name,
82
+ disabled: ($ = I(u)) == null ? void 0 : $.disabled.value,
83
+ onInput: v,
84
+ onBlur: h
85
+ }), null, 16, ye),
86
+ L.$slots.append ? (i(), m("div", {
87
+ key: 1,
88
+ class: p(c.value)
89
+ }, [
90
+ b(L.$slots, "append")
91
+ ], 2)) : V("", !0)
92
+ ])) : (i(), m("input", S({ key: 1 }, L.$attrs, {
93
+ class: r.value,
94
+ value: a.modelValue,
95
+ name: a.name,
96
+ disabled: (y = I(u)) == null ? void 0 : y.disabled.value,
97
+ onInput: v,
98
+ onBlur: h
99
+ }), null, 16, Se));
100
+ };
101
+ }
102
+ }), P = /* @__PURE__ */ k({
103
+ __name: "LuIcon",
104
+ props: {
105
+ variant: {},
106
+ name: {},
107
+ size: {},
108
+ strokeWidth: {}
109
+ },
110
+ setup(a) {
111
+ const l = a, e = fe(), { resolveSkin: t, resolveIcon: n } = g(), r = o(() => t("LuIcon", l.variant)), s = o(() => e.default || !l.name ? null : n(l.name, l.size)), c = o(
112
+ () => l.size ? { width: `${l.size}px`, height: `${l.size}px` } : void 0
113
+ );
114
+ return (u, d) => (i(), m("span", S(u.$attrs, {
115
+ class: r.value,
116
+ "aria-hidden": "true",
117
+ style: c.value
118
+ }), [
119
+ b(u.$slots, "default", {}, () => [
120
+ s.value ? (i(), A(K(s.value), {
121
+ key: 0,
122
+ size: a.size,
123
+ "stroke-width": a.strokeWidth
124
+ }, null, 8, ["size", "stroke-width"])) : V("", !0)
125
+ ])
126
+ ], 16));
127
+ }
128
+ }), le = /* @__PURE__ */ k({
129
+ __name: "LuText",
130
+ props: {
131
+ variant: {},
132
+ as: {}
133
+ },
134
+ setup(a) {
135
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuText", l.variant));
136
+ return (n, r) => (i(), A(K(a.as ?? "span"), S(n.$attrs, { class: t.value }), {
137
+ default: w(() => [
138
+ b(n.$slots, "default")
139
+ ]),
140
+ _: 3
141
+ }, 16, ["class"]));
142
+ }
143
+ }), $e = ["name", "aria-checked", "disabled"], Ce = /* @__PURE__ */ k({
144
+ __name: "LuSwitch",
145
+ props: {
146
+ modelValue: { type: Boolean },
147
+ variant: {},
148
+ disabled: { type: Boolean },
149
+ name: {},
150
+ error: {}
151
+ },
152
+ emits: ["update:modelValue", "blur"],
153
+ setup(a, { emit: l }) {
154
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuSwitch", e.variant)), s = o(() => n("LuSwitch", "checked")), c = o(() => n("LuSwitchThumb", e.variant)), u = o(() => n("LuSwitchThumb", "checked")), d = H(D, null), v = T(e.modelValue), h = o(() => e.modelValue !== void 0 ? e.modelValue : !!v.value), L = o(() => e.disabled || (d == null ? void 0 : d.disabled.value)), f = () => {
155
+ if (L.value) return;
156
+ const y = !h.value;
157
+ v.value = y, t("update:modelValue", y);
158
+ }, $ = () => {
159
+ e.name && d && (d.validateOn.value === "blur" || d.validateOn.value), t("blur");
160
+ };
161
+ return R(() => {
162
+ !e.name || !d || d.register({
163
+ name: e.name,
164
+ getValue: () => v.value,
165
+ setValue: (y) => {
166
+ v.value = !!y;
167
+ },
168
+ setError: (y) => {
169
+ }
170
+ });
171
+ }), G(() => {
172
+ e.name && d && d.unregister(e.name);
173
+ }), (y, _) => (i(), m("button", {
174
+ role: "switch",
175
+ type: "button",
176
+ name: a.name,
177
+ "aria-checked": h.value,
178
+ disabled: L.value,
179
+ class: p(I(ne)(r.value, h.value ? s.value : "")),
180
+ onClick: f,
181
+ onBlur: $
182
+ }, [
183
+ C("span", {
184
+ class: p(I(ne)(c.value, h.value ? u.value : ""))
185
+ }, null, 2)
186
+ ], 42, $e));
187
+ }
188
+ }), Ve = ["value", "name", "disabled"], _e = ["value"], Be = /* @__PURE__ */ k({
189
+ __name: "LuSelect",
190
+ props: {
191
+ modelValue: {},
192
+ variant: {},
193
+ options: {},
194
+ name: {},
195
+ error: {}
196
+ },
197
+ emits: ["update:modelValue", "blur"],
198
+ setup(a, { emit: l }) {
199
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuSelect", e.variant)), s = H(D, null), c = T(e.modelValue), u = (v) => {
200
+ const h = v.target.value;
201
+ c.value = h, t("update:modelValue", h);
202
+ }, d = () => {
203
+ e.name && s && (s.validateOn.value === "blur" || s.validateOn.value), t("blur");
204
+ };
205
+ return R(() => {
206
+ !e.name || !s || s.register({
207
+ name: e.name,
208
+ getValue: () => c.value,
209
+ setValue: (v) => {
210
+ c.value = v;
211
+ },
212
+ setError: (v) => {
213
+ }
214
+ });
215
+ }), G(() => {
216
+ e.name && s && s.unregister(e.name);
217
+ }), (v, h) => {
218
+ var L;
219
+ return i(), m("select", S(v.$attrs, {
220
+ class: r.value,
221
+ value: a.modelValue,
222
+ name: a.name,
223
+ disabled: (L = I(s)) == null ? void 0 : L.disabled.value,
224
+ onChange: u,
225
+ onBlur: d
226
+ }), [
227
+ (i(!0), m(q, null, se(a.options, (f) => (i(), m("option", {
228
+ key: f.value,
229
+ value: f.value
230
+ }, M(f.label), 9, _e))), 128))
231
+ ], 16, Ve);
232
+ };
233
+ }
234
+ }), Ye = /* @__PURE__ */ k({
235
+ __name: "LuThemeSwitch",
236
+ setup(a) {
237
+ const { resolved: l, setMode: e } = ve(), t = o(() => l.value === "dark"), n = (r) => {
238
+ e(r ? "dark" : "light");
239
+ };
240
+ return (r, s) => (i(), A(Ce, S({
241
+ "model-value": t.value,
242
+ variant: "theme"
243
+ }, r.$attrs, { "onUpdate:modelValue": n }), null, 16, ["model-value"]));
244
+ }
245
+ }), Ze = /* @__PURE__ */ k({
246
+ __name: "LuThemeSelect",
247
+ setup(a) {
248
+ const { mode: l, setMode: e } = ve(), t = [
249
+ { value: "system", label: "System" },
250
+ { value: "light", label: "Light" },
251
+ { value: "dark", label: "Dark" }
252
+ ], n = (r) => {
253
+ e(r);
254
+ };
255
+ return (r, s) => (i(), A(Be, S({
256
+ "model-value": I(l),
257
+ variant: "theme",
258
+ options: t
259
+ }, r.$attrs, { "onUpdate:modelValue": n }), null, 16, ["model-value"]));
260
+ }
261
+ }), we = /* @__PURE__ */ k({
262
+ __name: "LuTabs",
263
+ props: {
264
+ variant: {},
265
+ modelValue: {}
266
+ },
267
+ emits: ["update:modelValue"],
268
+ setup(a, { emit: l }) {
269
+ const e = a, t = l, n = T(e.modelValue);
270
+ F(() => e.modelValue, (c) => n.value = c), F(n, (c) => {
271
+ c !== void 0 && t("update:modelValue", c);
272
+ }), J("lu-tabs-active", n);
273
+ const { resolveSkin: r } = g(), s = o(() => r("LuTabs", e.variant));
274
+ return (c, u) => (i(), m("div", S(c.$attrs, { class: s.value }), [
275
+ b(c.$slots, "default")
276
+ ], 16));
277
+ }
278
+ }), Te = /* @__PURE__ */ k({
279
+ __name: "LuTabList",
280
+ props: {
281
+ variant: {}
282
+ },
283
+ setup(a) {
284
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTabList", l.variant));
285
+ return (n, r) => (i(), m("div", S(n.$attrs, { class: t.value }), [
286
+ b(n.$slots, "default")
287
+ ], 16));
288
+ }
289
+ }), re = /* @__PURE__ */ k({
290
+ __name: "LuTab",
291
+ props: {
292
+ variant: {},
293
+ value: {}
294
+ },
295
+ setup(a) {
296
+ const l = a, e = H("lu-tabs-active"), t = o(() => (e == null ? void 0 : e.value) === l.value), n = () => {
297
+ e && (e.value = l.value);
298
+ }, { resolveSkin: r } = g(), s = o(() => r("LuTab", l.variant)), c = o(() => r("LuTab", "active"));
299
+ return (u, d) => (i(), m("button", S(u.$attrs, {
300
+ class: [s.value, t.value ? c.value : ""],
301
+ onClick: n
302
+ }), [
303
+ b(u.$slots, "default")
304
+ ], 16));
305
+ }
306
+ }), xe = /* @__PURE__ */ k({
307
+ __name: "LuTabPanel",
308
+ props: {
309
+ variant: {},
310
+ value: {}
311
+ },
312
+ setup(a) {
313
+ const l = a, e = H("lu-tabs-active"), t = o(() => (e == null ? void 0 : e.value) === l.value), { resolveSkin: n } = g(), r = o(() => n("LuTabPanel", l.variant));
314
+ return (s, c) => ie((i(), m("div", S(s.$attrs, { class: r.value }), [
315
+ b(s.$slots, "default")
316
+ ], 16)), [
317
+ [ce, t.value]
318
+ ]);
319
+ }
320
+ }), ea = /* @__PURE__ */ k({
321
+ __name: "LuBadge",
322
+ props: {
323
+ variant: {},
324
+ as: {}
325
+ },
326
+ setup(a) {
327
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuBadge", l.variant));
328
+ return (n, r) => (i(), A(K(a.as || "span"), S(n.$attrs, { class: t.value }), {
329
+ default: w(() => [
330
+ b(n.$slots, "default")
331
+ ]),
332
+ _: 3
333
+ }, 16, ["class"]));
334
+ }
335
+ }), aa = /* @__PURE__ */ k({
336
+ __name: "LuProgressBar",
337
+ props: {
338
+ variant: {},
339
+ value: {},
340
+ max: {}
341
+ },
342
+ setup(a) {
343
+ const l = a, e = o(() => {
344
+ const s = l.max ?? 100;
345
+ return Math.max(0, Math.min(100, l.value / s * 100));
346
+ }), { resolveSkin: t } = g(), n = o(() => t("LuProgressBar", l.variant)), r = o(() => t("LuProgressBarFill", l.variant));
347
+ return (s, c) => (i(), m("div", S(s.$attrs, { class: n.value }), [
348
+ C("div", {
349
+ class: p(r.value),
350
+ style: ke({ width: `${e.value}%` })
351
+ }, null, 6)
352
+ ], 16));
353
+ }
354
+ }), ta = /* @__PURE__ */ k({
355
+ __name: "LuTooltip",
356
+ props: {
357
+ variant: {},
358
+ position: {},
359
+ delay: {}
360
+ },
361
+ setup(a) {
362
+ const l = a, e = T(!1);
363
+ let t = null;
364
+ const n = () => {
365
+ t && clearTimeout(t), l.delay ? t = setTimeout(() => e.value = !0, l.delay) : e.value = !0;
366
+ }, r = () => {
367
+ t && clearTimeout(t), e.value = !1;
368
+ }, { resolveSkin: s } = g(), c = o(() => s("LuTooltip", l.variant)), u = o(() => s("LuTooltipContent", l.position ?? l.variant));
369
+ return (d, v) => (i(), m("div", S(d.$attrs, {
370
+ class: c.value,
371
+ onMouseenter: n,
372
+ onMouseleave: r
373
+ }), [
374
+ b(d.$slots, "trigger"),
375
+ e.value ? (i(), m("div", {
376
+ key: 0,
377
+ class: p(u.value)
378
+ }, [
379
+ b(d.$slots, "content")
380
+ ], 2)) : V("", !0)
381
+ ], 16));
382
+ }
383
+ }), na = /* @__PURE__ */ k({
384
+ __name: "LuCollapsible",
385
+ props: {
386
+ variant: {},
387
+ modelValue: { type: Boolean },
388
+ defaultOpen: { type: Boolean }
389
+ },
390
+ emits: ["update:modelValue"],
391
+ setup(a, { emit: l }) {
392
+ const e = a, t = l, n = T(e.modelValue ?? e.defaultOpen ?? !1);
393
+ F(() => e.modelValue, (v) => {
394
+ v !== void 0 && (n.value = v);
395
+ });
396
+ const r = () => {
397
+ n.value = !n.value, t("update:modelValue", n.value);
398
+ }, { resolveSkin: s } = g(), c = o(() => s("LuCollapsible", e.variant)), u = o(() => s("LuCollapsibleTrigger", e.variant)), d = o(() => s("LuCollapsibleContent", e.variant));
399
+ return (v, h) => (i(), m("div", S(v.$attrs, { class: c.value }), [
400
+ C("button", {
401
+ class: p(u.value),
402
+ onClick: r
403
+ }, [
404
+ b(v.$slots, "trigger", { isOpen: n.value })
405
+ ], 2),
406
+ ie(C("div", {
407
+ class: p(d.value)
408
+ }, [
409
+ b(v.$slots, "content")
410
+ ], 2), [
411
+ [ce, n.value]
412
+ ])
413
+ ], 16));
414
+ }
415
+ }), Oe = ["data-size"], Ae = ["src", "alt"], la = /* @__PURE__ */ k({
416
+ __name: "LuAvatar",
417
+ props: {
418
+ variant: {},
419
+ src: {},
420
+ fallback: {},
421
+ alt: {},
422
+ size: {}
423
+ },
424
+ setup(a) {
425
+ const l = a, e = T(!1), { resolveSkin: t } = g(), n = o(() => t("LuAvatar", l.variant)), r = o(() => t("LuAvatarImage", l.variant)), s = o(() => t("LuAvatarFallback", l.variant));
426
+ return (c, u) => (i(), m("div", S(c.$attrs, {
427
+ class: n.value,
428
+ "data-size": a.size
429
+ }), [
430
+ a.src && !e.value ? (i(), m("img", {
431
+ key: 0,
432
+ src: a.src,
433
+ alt: a.alt,
434
+ class: p(r.value),
435
+ onError: u[0] || (u[0] = (d) => e.value = !0)
436
+ }, null, 42, Ae)) : (i(), m("div", {
437
+ key: 1,
438
+ class: p(s.value)
439
+ }, [
440
+ b(c.$slots, "default", {}, () => [
441
+ E(M(a.fallback), 1)
442
+ ])
443
+ ], 2))
444
+ ], 16, Oe));
445
+ }
446
+ }), Me = /* @__PURE__ */ k({
447
+ __name: "LuLink",
448
+ props: {
449
+ variant: {},
450
+ as: {},
451
+ to: {},
452
+ href: {},
453
+ target: {}
454
+ },
455
+ emits: ["click"],
456
+ setup(a, { emit: l }) {
457
+ const e = a, t = l, n = o(() => {
458
+ if (e.as) return e.as;
459
+ if (e.to) {
460
+ const u = ue("RouterLink");
461
+ return typeof u == "string" ? "a" : u;
462
+ }
463
+ return "a";
464
+ }), r = o(() => {
465
+ const u = { ...e };
466
+ return delete u.variant, delete u.as, u;
467
+ }), { resolveSkin: s } = g(), c = o(() => s("LuLink", e.variant));
468
+ return (u, d) => (i(), A(K(n.value), S(r.value, {
469
+ class: c.value,
470
+ onClick: d[0] || (d[0] = (v) => t("click", v))
471
+ }), {
472
+ default: w(() => [
473
+ b(u.$slots, "default")
474
+ ]),
475
+ _: 3
476
+ }, 16, ["class"]));
477
+ }
478
+ }), sa = /* @__PURE__ */ k({
479
+ __name: "LuDivider",
480
+ props: {
481
+ variant: {},
482
+ orientation: { default: "horizontal" }
483
+ },
484
+ setup(a) {
485
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuDivider", l.variant || l.orientation));
486
+ return (n, r) => (i(), m("div", S(n.$attrs, { class: t.value }), null, 16));
487
+ }
488
+ }), oa = /* @__PURE__ */ k({
489
+ __name: "LuPageHeader",
490
+ props: {
491
+ variant: {},
492
+ title: {},
493
+ description: {},
494
+ level: { default: "h1" }
495
+ },
496
+ setup(a) {
497
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuPageHeader", l.variant));
498
+ return (n, r) => (i(), m("div", S(n.$attrs, { class: t.value }), [
499
+ B(le, {
500
+ as: a.level,
501
+ variant: "page-title"
502
+ }, {
503
+ default: w(() => [
504
+ E(M(a.title), 1)
505
+ ]),
506
+ _: 1
507
+ }, 8, ["as"]),
508
+ a.description ? (i(), A(le, {
509
+ key: 0,
510
+ as: "p",
511
+ variant: "page-subtitle",
512
+ class: "mt-2"
513
+ }, {
514
+ default: w(() => [
515
+ E(M(a.description), 1)
516
+ ]),
517
+ _: 1
518
+ })) : V("", !0)
519
+ ], 16));
520
+ }
521
+ }), ra = /* @__PURE__ */ k({
522
+ __name: "LuCard",
523
+ props: {
524
+ variant: {},
525
+ as: { default: "div" },
526
+ padding: {},
527
+ width: {},
528
+ height: {}
529
+ },
530
+ setup(a) {
531
+ const l = a, { resolveSkin: e } = g(), t = o(() => ne(
532
+ e("LuCard", l.variant),
533
+ ge(l)
534
+ ));
535
+ return (n, r) => (i(), A(K(a.as), S(n.$attrs, { class: t.value }), {
536
+ default: w(() => [
537
+ b(n.$slots, "default")
538
+ ]),
539
+ _: 3
540
+ }, 16, ["class"]));
541
+ }
542
+ }), ua = /* @__PURE__ */ k({
543
+ __name: "LuTable",
544
+ props: {
545
+ variant: {}
546
+ },
547
+ setup(a) {
548
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTable", l.variant));
549
+ return (n, r) => (i(), m("table", S(n.$attrs, { class: t.value }), [
550
+ b(n.$slots, "default")
551
+ ], 16));
552
+ }
553
+ }), ia = /* @__PURE__ */ k({
554
+ __name: "LuTableHead",
555
+ props: {
556
+ variant: {}
557
+ },
558
+ setup(a) {
559
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTableHead", l.variant));
560
+ return (n, r) => (i(), m("thead", S(n.$attrs, { class: t.value }), [
561
+ b(n.$slots, "default")
562
+ ], 16));
563
+ }
564
+ }), ca = /* @__PURE__ */ k({
565
+ __name: "LuTableBody",
566
+ props: {
567
+ variant: {}
568
+ },
569
+ setup(a) {
570
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTableBody", l.variant));
571
+ return (n, r) => (i(), m("tbody", S(n.$attrs, { class: t.value }), [
572
+ b(n.$slots, "default")
573
+ ], 16));
574
+ }
575
+ }), da = /* @__PURE__ */ k({
576
+ __name: "LuTableRow",
577
+ props: {
578
+ variant: {}
579
+ },
580
+ setup(a) {
581
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTableRow", l.variant));
582
+ return (n, r) => (i(), m("tr", S(n.$attrs, { class: t.value }), [
583
+ b(n.$slots, "default")
584
+ ], 16));
585
+ }
586
+ }), va = /* @__PURE__ */ k({
587
+ __name: "LuTableHeadCell",
588
+ props: {
589
+ variant: {}
590
+ },
591
+ setup(a) {
592
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTableHeadCell", l.variant));
593
+ return (n, r) => (i(), m("th", S(n.$attrs, { class: t.value }), [
594
+ b(n.$slots, "default")
595
+ ], 16));
596
+ }
597
+ }), ma = /* @__PURE__ */ k({
598
+ __name: "LuTableCell",
599
+ props: {
600
+ variant: {}
601
+ },
602
+ setup(a) {
603
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuTableCell", l.variant));
604
+ return (n, r) => (i(), m("td", S(n.$attrs, { class: t.value }), [
605
+ b(n.$slots, "default")
606
+ ], 16));
607
+ }
608
+ }), pa = /* @__PURE__ */ k({
609
+ __name: "LuForm",
610
+ props: {
611
+ rules: { default: () => ({}) },
612
+ validateOn: { default: "submit" },
613
+ resetOnSubmit: { type: Boolean, default: !1 },
614
+ disabled: { type: Boolean, default: !1 }
615
+ },
616
+ emits: ["submit", "reset", "error"],
617
+ setup(a, { expose: l, emit: e }) {
618
+ const t = a, n = e, r = /* @__PURE__ */ new Map(), s = T({}), c = T(!1), u = o(() => Object.keys(s.value).length > 0);
619
+ async function d() {
620
+ var $;
621
+ const f = {};
622
+ for (const [y, _] of r) {
623
+ const O = ($ = t.rules) == null ? void 0 : $[y];
624
+ if (!O) continue;
625
+ const N = Array.isArray(O) ? O : [O], Q = _.getValue();
626
+ for (const W of N) {
627
+ const z = await W(Q);
628
+ if (z) {
629
+ f[y] = z, _.setError(z);
630
+ break;
631
+ } else
632
+ _.setError(null);
633
+ }
634
+ }
635
+ return s.value = f, Object.keys(f).length === 0;
636
+ }
637
+ async function v() {
638
+ c.value = !0;
639
+ try {
640
+ if (!await d()) {
641
+ n("error", s.value);
642
+ return;
643
+ }
644
+ const $ = {};
645
+ for (const [y, _] of r)
646
+ $[y] = _.getValue();
647
+ n("submit", $), t.resetOnSubmit && h();
648
+ } finally {
649
+ c.value = !1;
650
+ }
651
+ }
652
+ function h() {
653
+ s.value = {};
654
+ for (const f of r.values())
655
+ f.setValue(void 0), f.setError(null);
656
+ n("reset");
657
+ }
658
+ const L = {
659
+ register(f) {
660
+ r.set(f.name, f);
661
+ },
662
+ unregister(f) {
663
+ r.delete(f);
664
+ },
665
+ getError(f) {
666
+ return s.value[f] ?? null;
667
+ },
668
+ validateOn: o(() => t.validateOn),
669
+ disabled: o(() => t.disabled)
670
+ };
671
+ return J(D, L), l({
672
+ submit: v,
673
+ reset: h,
674
+ errors: oe(s),
675
+ pending: oe(c),
676
+ values: o(() => {
677
+ const f = {};
678
+ for (const [$, y] of r) f[$] = y.getValue();
679
+ return f;
680
+ })
681
+ }), (f, $) => (i(), m("form", {
682
+ onSubmit: U(v, ["prevent"]),
683
+ onReset: U(h, ["prevent"])
684
+ }, [
685
+ b(f.$slots, "default"),
686
+ b(f.$slots, "errors", {
687
+ errors: s.value,
688
+ hasErrors: u.value
689
+ }),
690
+ b(f.$slots, "actions", {
691
+ submit: v,
692
+ reset: h,
693
+ pending: c.value
694
+ })
695
+ ], 32));
696
+ }
697
+ }), Pe = ["value", "name", "disabled"], fa = /* @__PURE__ */ k({
698
+ __name: "LuTextarea",
699
+ props: {
700
+ modelValue: {},
701
+ variant: {},
702
+ name: {},
703
+ error: {}
704
+ },
705
+ emits: ["update:modelValue", "blur"],
706
+ setup(a, { emit: l }) {
707
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuTextarea", e.variant)), s = H(D, null), c = T(e.modelValue), u = (v) => {
708
+ const h = v.target.value;
709
+ c.value = h, t("update:modelValue", h);
710
+ }, d = () => {
711
+ e.name && s && (s.validateOn.value === "blur" || s.validateOn.value), t("blur");
712
+ };
713
+ return R(() => {
714
+ !e.name || !s || s.register({
715
+ name: e.name,
716
+ getValue: () => c.value,
717
+ setValue: (v) => {
718
+ c.value = v;
719
+ },
720
+ setError: (v) => {
721
+ }
722
+ });
723
+ }), G(() => {
724
+ e.name && s && s.unregister(e.name);
725
+ }), (v, h) => {
726
+ var L;
727
+ return i(), m("textarea", S(v.$attrs, {
728
+ class: r.value,
729
+ value: a.modelValue,
730
+ name: a.name,
731
+ disabled: (L = I(s)) == null ? void 0 : L.disabled.value,
732
+ onInput: u,
733
+ onBlur: d
734
+ }), null, 16, Pe);
735
+ };
736
+ }
737
+ }), Ee = ["checked", "name", "disabled"], ka = /* @__PURE__ */ k({
738
+ __name: "LuCheckbox",
739
+ props: {
740
+ modelValue: { type: Boolean },
741
+ variant: {},
742
+ name: {},
743
+ label: {},
744
+ error: {}
745
+ },
746
+ emits: ["update:modelValue", "change", "blur"],
747
+ setup(a, { emit: l }) {
748
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuCheckboxContainer", e.variant)), s = o(() => n("LuCheckbox", e.variant)), c = o(() => n("LuCheckboxLabel", e.variant)), u = H(D, null), d = T(!!e.modelValue);
749
+ F(() => e.modelValue, (f) => {
750
+ d.value = !!f;
751
+ });
752
+ const v = (f) => {
753
+ const y = f.target.checked;
754
+ d.value = y, t("update:modelValue", y), t("change", y), e.name && u && (u.validateOn.value === "blur" || u.validateOn.value);
755
+ }, h = () => {
756
+ if (u != null && u.disabled.value || "disabled" in e && e.disabled !== !1) return;
757
+ const f = !d.value;
758
+ d.value = f, t("update:modelValue", f), t("change", f), e.name && u && (u.validateOn.value === "blur" || u.validateOn.value);
759
+ }, L = () => {
760
+ e.name && u && (u.validateOn.value === "blur" || u.validateOn.value), t("blur");
761
+ };
762
+ return R(() => {
763
+ !e.name || !u || u.register({
764
+ name: e.name,
765
+ getValue: () => d.value,
766
+ setValue: (f) => {
767
+ d.value = !!f;
768
+ },
769
+ setError: (f) => {
770
+ }
771
+ });
772
+ }), G(() => {
773
+ e.name && u && u.unregister(e.name);
774
+ }), (f, $) => {
775
+ var y;
776
+ return i(), m("div", {
777
+ class: p(r.value)
778
+ }, [
779
+ C("input", S({ type: "checkbox" }, f.$attrs, {
780
+ class: s.value,
781
+ checked: a.modelValue,
782
+ name: a.name,
783
+ disabled: (y = I(u)) == null ? void 0 : y.disabled.value,
784
+ onChange: v,
785
+ onBlur: L
786
+ }), null, 16, Ee),
787
+ f.$slots.default || a.label ? (i(), m("label", {
788
+ key: 0,
789
+ class: p(c.value),
790
+ onClick: U(h, ["prevent"])
791
+ }, [
792
+ b(f.$slots, "default", {}, () => [
793
+ E(M(a.label), 1)
794
+ ])
795
+ ], 2)) : V("", !0)
796
+ ], 2);
797
+ };
798
+ }
799
+ }), me = Symbol("LuRadioGroupContext"), He = ["aria-disabled"], ba = /* @__PURE__ */ k({
800
+ __name: "LuRadioGroup",
801
+ props: {
802
+ modelValue: {},
803
+ name: {},
804
+ variant: {},
805
+ disabled: { type: Boolean }
806
+ },
807
+ emits: ["update:modelValue", "change"],
808
+ setup(a, { emit: l }) {
809
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuRadioGroup", e.variant)), s = H(D, null), c = T(e.modelValue);
810
+ F(() => e.modelValue, (d) => {
811
+ c.value = d;
812
+ });
813
+ const u = (d) => {
814
+ e.disabled || s != null && s.disabled.value || (c.value = d, t("update:modelValue", d), t("change", d), e.name && s && (s.validateOn.value === "blur" || s.validateOn.value));
815
+ };
816
+ return J(me, {
817
+ name: e.name,
818
+ modelValue: o(() => c.value),
819
+ updateValue: u,
820
+ disabled: o(() => !!e.disabled || !!(s != null && s.disabled.value))
821
+ }), R(() => {
822
+ !e.name || !s || s.register({
823
+ name: e.name,
824
+ getValue: () => c.value,
825
+ setValue: (d) => {
826
+ c.value = d;
827
+ },
828
+ setError: (d) => {
829
+ }
830
+ });
831
+ }), G(() => {
832
+ e.name && s && s.unregister(e.name);
833
+ }), (d, v) => {
834
+ var h;
835
+ return i(), m("div", {
836
+ class: p(r.value),
837
+ role: "radiogroup",
838
+ "aria-disabled": a.disabled || ((h = I(s)) == null ? void 0 : h.disabled.value)
839
+ }, [
840
+ b(d.$slots, "default")
841
+ ], 10, He);
842
+ };
843
+ }
844
+ }), Ie = ["name", "value", "checked", "disabled"], ga = /* @__PURE__ */ k({
845
+ __name: "LuRadio",
846
+ props: {
847
+ value: {},
848
+ variant: {},
849
+ label: {},
850
+ disabled: { type: Boolean }
851
+ },
852
+ setup(a) {
853
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuRadioContainer", l.variant)), n = o(() => e("LuRadio", l.variant)), r = o(() => e("LuRadioLabel", l.variant)), s = H(me, null);
854
+ s || console.warn("LuRadio must be used within a LuRadioGroup");
855
+ const c = o(() => (s == null ? void 0 : s.modelValue.value) === l.value), u = () => {
856
+ l.disabled || s != null && s.disabled.value || s == null || s.updateValue(l.value);
857
+ }, d = () => {
858
+ l.disabled || s != null && s.disabled.value || s == null || s.updateValue(l.value);
859
+ };
860
+ return (v, h) => {
861
+ var L, f;
862
+ return i(), m("div", {
863
+ class: p(t.value)
864
+ }, [
865
+ C("input", S({ type: "radio" }, v.$attrs, {
866
+ class: n.value,
867
+ name: (L = I(s)) == null ? void 0 : L.name,
868
+ value: a.value,
869
+ checked: c.value,
870
+ disabled: ((f = I(s)) == null ? void 0 : f.disabled.value) || a.disabled,
871
+ onChange: u
872
+ }), null, 16, Ie),
873
+ v.$slots.default || a.label ? (i(), m("label", {
874
+ key: 0,
875
+ class: p(r.value),
876
+ onClick: U(d, ["prevent"])
877
+ }, [
878
+ b(v.$slots, "default", {}, () => [
879
+ E(M(a.label), 1)
880
+ ])
881
+ ], 2)) : V("", !0)
882
+ ], 2);
883
+ };
884
+ }
885
+ }), ha = /* @__PURE__ */ k({
886
+ __name: "LuAlert",
887
+ props: {
888
+ variant: {},
889
+ icon: {}
890
+ },
891
+ setup(a) {
892
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuAlert", l.variant)), n = o(() => e("LuAlertIcon", l.variant)), r = o(() => e("LuAlertContent", l.variant)), s = o(() => e("LuAlertAction", l.variant));
893
+ return (c, u) => (i(), m("div", {
894
+ class: p(t.value),
895
+ role: "alert"
896
+ }, [
897
+ c.$slots.icon || a.icon ? (i(), m("div", {
898
+ key: 0,
899
+ class: p(n.value)
900
+ }, [
901
+ b(c.$slots, "icon", {}, () => [
902
+ a.icon ? (i(), A(P, {
903
+ key: 0,
904
+ name: a.icon
905
+ }, null, 8, ["name"])) : V("", !0)
906
+ ])
907
+ ], 2)) : V("", !0),
908
+ C("div", {
909
+ class: p(r.value)
910
+ }, [
911
+ b(c.$slots, "default")
912
+ ], 2),
913
+ c.$slots.action ? (i(), m("div", {
914
+ key: 1,
915
+ class: p(s.value)
916
+ }, [
917
+ b(c.$slots, "action")
918
+ ], 2)) : V("", !0)
919
+ ], 2));
920
+ }
921
+ }), La = /* @__PURE__ */ k({
922
+ __name: "LuSpinner",
923
+ props: {
924
+ variant: {}
925
+ },
926
+ setup(a) {
927
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuSpinner", l.variant));
928
+ return (n, r) => (i(), m("svg", {
929
+ class: p(t.value),
930
+ xmlns: "http://www.w3.org/2000/svg",
931
+ fill: "none",
932
+ viewBox: "0 0 24 24",
933
+ role: "status",
934
+ "aria-label": "Loading"
935
+ }, [...r[0] || (r[0] = [
936
+ C("circle", {
937
+ class: "opacity-25",
938
+ cx: "12",
939
+ cy: "12",
940
+ r: "10",
941
+ stroke: "currentColor",
942
+ "stroke-width": "4"
943
+ }, null, -1),
944
+ C("path", {
945
+ class: "opacity-75",
946
+ fill: "currentColor",
947
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
948
+ }, null, -1)
949
+ ])], 2));
950
+ }
951
+ }), ya = /* @__PURE__ */ k({
952
+ __name: "LuSkeleton",
953
+ props: {
954
+ variant: {}
955
+ },
956
+ setup(a) {
957
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuSkeleton", l.variant));
958
+ return (n, r) => (i(), m("div", {
959
+ class: p(t.value),
960
+ "aria-hidden": "true"
961
+ }, null, 2));
962
+ }
963
+ }), Sa = /* @__PURE__ */ k({
964
+ __name: "LuTag",
965
+ props: {
966
+ variant: {},
967
+ closable: { type: Boolean }
968
+ },
969
+ emits: ["close"],
970
+ setup(a, { emit: l }) {
971
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuTag", e.variant)), s = o(() => n("LuTagCloseButton", e.variant)), c = o(() => n("LuTagIcon", e.variant));
972
+ return (u, d) => (i(), m("span", {
973
+ class: p(r.value)
974
+ }, [
975
+ b(u.$slots, "default"),
976
+ a.closable ? (i(), m("button", {
977
+ key: 0,
978
+ type: "button",
979
+ class: p(s.value),
980
+ onClick: d[0] || (d[0] = U((v) => t("close"), ["stop"])),
981
+ "aria-label": "Remove"
982
+ }, [
983
+ B(P, {
984
+ name: "x",
985
+ class: p(c.value)
986
+ }, null, 8, ["class"])
987
+ ], 2)) : V("", !0)
988
+ ], 2));
989
+ }
990
+ }), Re = { "aria-label": "breadcrumb" }, ze = ["aria-current"], $a = /* @__PURE__ */ k({
991
+ __name: "LuBreadcrumb",
992
+ props: {
993
+ items: {},
994
+ variant: {},
995
+ separatorIcon: { default: "chevron-right" }
996
+ },
997
+ setup(a) {
998
+ const l = a, { resolveSkin: e } = g(), t = o(() => e("LuBreadcrumb", l.variant)), n = o(() => e("LuBreadcrumbItem", l.variant)), r = o(() => e("LuBreadcrumbLink", l.variant)), s = o(() => e("LuBreadcrumbPage", l.variant)), c = o(() => e("LuBreadcrumbSeparator", l.variant));
999
+ return (u, d) => (i(), m("nav", Re, [
1000
+ C("ol", {
1001
+ class: p(t.value)
1002
+ }, [
1003
+ (i(!0), m(q, null, se(a.items, (v, h) => (i(), m("li", {
1004
+ key: h,
1005
+ class: p(n.value)
1006
+ }, [
1007
+ v.href || v.to ? (i(), A(Me, {
1008
+ key: 0,
1009
+ href: v.href,
1010
+ to: v.to,
1011
+ variant: v.current ? "nav-active" : "nav",
1012
+ "aria-current": v.current ? "page" : void 0,
1013
+ class: p(r.value)
1014
+ }, {
1015
+ default: w(() => [
1016
+ v.icon ? (i(), A(P, {
1017
+ key: 0,
1018
+ name: v.icon,
1019
+ class: "mr-2 h-4 w-4"
1020
+ }, null, 8, ["name"])) : V("", !0),
1021
+ E(" " + M(v.label), 1)
1022
+ ]),
1023
+ _: 2
1024
+ }, 1032, ["href", "to", "variant", "aria-current", "class"])) : (i(), m("span", {
1025
+ key: 1,
1026
+ class: p(s.value),
1027
+ "aria-current": v.current ? "page" : void 0
1028
+ }, [
1029
+ v.icon ? (i(), A(P, {
1030
+ key: 0,
1031
+ name: v.icon,
1032
+ class: "mr-2 h-4 w-4"
1033
+ }, null, 8, ["name"])) : V("", !0),
1034
+ E(" " + M(v.label), 1)
1035
+ ], 10, ze)),
1036
+ h < a.items.length - 1 ? (i(), A(P, {
1037
+ key: 2,
1038
+ name: a.separatorIcon,
1039
+ class: p(c.value)
1040
+ }, null, 8, ["name", "class"])) : V("", !0)
1041
+ ], 2))), 128))
1042
+ ], 2)
1043
+ ]));
1044
+ }
1045
+ }), Fe = ["aria-expanded"], Ca = /* @__PURE__ */ k({
1046
+ __name: "LuMenu",
1047
+ props: {
1048
+ variant: {},
1049
+ align: { default: "left" }
1050
+ },
1051
+ emits: ["open", "close"],
1052
+ setup(a, { emit: l }) {
1053
+ const e = a, t = l, n = T(!1), r = T(null), { resolveSkin: s } = g(), c = o(() => s("LuMenu", e.variant)), u = o(() => s("LuMenuTrigger", e.variant)), d = o(() => s("LuMenuContent", e.variant)), v = o(() => s("LuMenuGroup", e.variant)), h = o(() => e.align === "right" ? "right-0 origin-top-right" : "left-0 origin-top-left"), L = () => {
1054
+ n.value = !n.value, n.value ? t("open") : t("close");
1055
+ }, f = () => {
1056
+ n.value && (n.value = !1, t("close"));
1057
+ }, $ = (y) => {
1058
+ r.value && !r.value.contains(y.target) && f();
1059
+ };
1060
+ return R(() => {
1061
+ document.addEventListener("click", $);
1062
+ }), de(() => {
1063
+ document.removeEventListener("click", $);
1064
+ }), (y, _) => (i(), m("div", {
1065
+ class: p(c.value),
1066
+ ref_key: "dropdownRef",
1067
+ ref: r
1068
+ }, [
1069
+ C("div", {
1070
+ onClick: L,
1071
+ class: p(u.value),
1072
+ "aria-haspopup": "true",
1073
+ "aria-expanded": n.value
1074
+ }, [
1075
+ b(y.$slots, "trigger", {}, () => [
1076
+ B(Z, { variant: "default" }, {
1077
+ default: w(() => [
1078
+ _[0] || (_[0] = E("Options ", -1)),
1079
+ B(P, {
1080
+ name: "chevron-down",
1081
+ class: "ml-2 h-4 w-4"
1082
+ })
1083
+ ]),
1084
+ _: 1
1085
+ })
1086
+ ])
1087
+ ], 10, Fe),
1088
+ B(te, {
1089
+ "enter-active-class": "transition ease-out duration-100",
1090
+ "enter-from-class": "transform opacity-0 scale-95",
1091
+ "enter-to-class": "transform opacity-100 scale-100",
1092
+ "leave-active-class": "transition ease-in duration-75",
1093
+ "leave-from-class": "transform opacity-100 scale-100",
1094
+ "leave-to-class": "transform opacity-0 scale-95"
1095
+ }, {
1096
+ default: w(() => [
1097
+ n.value ? (i(), m("div", {
1098
+ key: 0,
1099
+ class: p([d.value, h.value])
1100
+ }, [
1101
+ C("div", {
1102
+ class: p(v.value),
1103
+ role: "menu",
1104
+ "aria-orientation": "vertical",
1105
+ "aria-labelledby": "options-menu"
1106
+ }, [
1107
+ b(y.$slots, "default")
1108
+ ], 2)
1109
+ ], 2)) : V("", !0)
1110
+ ]),
1111
+ _: 3
1112
+ })
1113
+ ], 2));
1114
+ }
1115
+ }), De = ["disabled", "data-disabled"], Va = /* @__PURE__ */ k({
1116
+ __name: "LuMenuItem",
1117
+ props: {
1118
+ variant: {},
1119
+ disabled: { type: Boolean }
1120
+ },
1121
+ emits: ["click"],
1122
+ setup(a, { emit: l }) {
1123
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuMenuItem", e.variant)), s = (c) => {
1124
+ if (e.disabled) {
1125
+ c.preventDefault();
1126
+ return;
1127
+ }
1128
+ t("click", c);
1129
+ };
1130
+ return (c, u) => (i(), m("button", {
1131
+ type: "button",
1132
+ class: p(r.value),
1133
+ role: "menuitem",
1134
+ disabled: a.disabled,
1135
+ "data-disabled": a.disabled ? "" : void 0,
1136
+ onClick: s
1137
+ }, [
1138
+ b(c.$slots, "default")
1139
+ ], 10, De));
1140
+ }
1141
+ }), _a = /* @__PURE__ */ k({
1142
+ __name: "LuPagination",
1143
+ props: {
1144
+ modelValue: {},
1145
+ total: {},
1146
+ pageSize: { default: 10 },
1147
+ siblingCount: { default: 1 },
1148
+ variant: {}
1149
+ },
1150
+ emits: ["update:modelValue", "change"],
1151
+ setup(a, { emit: l }) {
1152
+ const e = a, t = l, n = o(() => Math.ceil(e.total / e.pageSize)), r = o(() => {
1153
+ const y = e.modelValue, _ = n.value, O = e.siblingCount;
1154
+ if (_ <= 1) return [1];
1155
+ const N = Math.max(y - O, 1), Q = Math.min(y + O, _), W = N > 2, z = Q < _ - 1;
1156
+ if (!W && z) {
1157
+ const j = 3 + 2 * O;
1158
+ return [...Array.from({ length: Math.min(j, _) }, (x, ee) => ee + 1), "...", _];
1159
+ }
1160
+ if (W && !z) {
1161
+ const j = 3 + 2 * O;
1162
+ return [1, "...", ...Array.from({ length: Math.min(j, _) }, (x, ee) => _ - j + ee + 1)];
1163
+ }
1164
+ return W && z ? [1, "...", ...Array.from({ length: Q - N + 1 }, (X, x) => N + x), "...", _] : Array.from({ length: _ }, (j, X) => X + 1);
1165
+ }), { resolveSkin: s } = g(), c = o(() => s("LuPagination", e.variant)), u = o(() => s("LuPaginationButton", e.variant)), d = o(() => s("LuPaginationPages", e.variant)), v = o(() => s("LuPaginationPageButton", e.variant)), h = o(() => s("LuPaginationEllipsis", e.variant)), L = (y) => {
1166
+ y !== e.modelValue && (t("update:modelValue", y), t("change", y));
1167
+ }, f = () => {
1168
+ e.modelValue > 1 && L(e.modelValue - 1);
1169
+ }, $ = () => {
1170
+ e.modelValue < n.value && L(e.modelValue + 1);
1171
+ };
1172
+ return (y, _) => (i(), m("nav", {
1173
+ "aria-label": "Pagination",
1174
+ class: p(c.value)
1175
+ }, [
1176
+ B(Z, {
1177
+ variant: "ghost",
1178
+ disabled: a.modelValue <= 1,
1179
+ onClick: f,
1180
+ class: p(u.value),
1181
+ "aria-label": "Previous page"
1182
+ }, {
1183
+ default: w(() => [
1184
+ B(P, {
1185
+ name: "chevron-left",
1186
+ class: "h-4 w-4"
1187
+ })
1188
+ ]),
1189
+ _: 1
1190
+ }, 8, ["disabled", "class"]),
1191
+ C("div", {
1192
+ class: p(d.value)
1193
+ }, [
1194
+ (i(!0), m(q, null, se(r.value, (O) => (i(), m(q, { key: O }, [
1195
+ O === "..." ? (i(), m("span", {
1196
+ key: 0,
1197
+ class: p(h.value)
1198
+ }, "...", 2)) : (i(), A(Z, {
1199
+ key: 1,
1200
+ variant: O === a.modelValue ? "primary" : "ghost",
1201
+ onClick: (N) => L(O),
1202
+ class: p(v.value),
1203
+ "aria-current": O === a.modelValue ? "page" : void 0
1204
+ }, {
1205
+ default: w(() => [
1206
+ E(M(O), 1)
1207
+ ]),
1208
+ _: 2
1209
+ }, 1032, ["variant", "onClick", "class", "aria-current"]))
1210
+ ], 64))), 128))
1211
+ ], 2),
1212
+ B(Z, {
1213
+ variant: "ghost",
1214
+ disabled: a.modelValue >= n.value,
1215
+ onClick: $,
1216
+ class: p(u.value),
1217
+ "aria-label": "Next page"
1218
+ }, {
1219
+ default: w(() => [
1220
+ B(P, {
1221
+ name: "chevron-right",
1222
+ class: "h-4 w-4"
1223
+ })
1224
+ ]),
1225
+ _: 1
1226
+ }, 8, ["disabled", "class"])
1227
+ ], 2));
1228
+ }
1229
+ }), Ba = /* @__PURE__ */ k({
1230
+ __name: "LuModal",
1231
+ props: {
1232
+ modelValue: { type: Boolean },
1233
+ title: {},
1234
+ variant: {},
1235
+ closable: { type: Boolean, default: !0 },
1236
+ closeOnOverlayClick: { type: Boolean, default: !0 }
1237
+ },
1238
+ emits: ["update:modelValue", "close"],
1239
+ setup(a, { emit: l }) {
1240
+ const e = a, t = l, { resolveSkin: n } = g(), r = o(() => n("LuModalOverlay", e.variant)), s = o(() => n("LuModal", e.variant)), c = o(() => n("LuModalHeader", e.variant)), u = o(() => n("LuModalContent", e.variant)), d = o(() => n("LuModalFooter", e.variant)), v = o(() => n("LuModalCloseButton", e.variant)), h = () => {
1241
+ e.closable && (t("update:modelValue", !1), t("close"));
1242
+ }, L = () => {
1243
+ e.closeOnOverlayClick && h();
1244
+ }, f = ($) => {
1245
+ $.key === "Escape" && e.modelValue && h();
1246
+ };
1247
+ return F(() => e.modelValue, ($) => {
1248
+ typeof document < "u" && ($ ? document.body.style.overflow = "hidden" : document.body.style.overflow = "");
1249
+ }, { immediate: !0 }), R(() => {
1250
+ document.addEventListener("keydown", f);
1251
+ }), de(() => {
1252
+ document.removeEventListener("keydown", f), typeof document < "u" && (document.body.style.overflow = "");
1253
+ }), ($, y) => (i(), A(be, { to: "body" }, [
1254
+ B(te, {
1255
+ "enter-active-class": "transition ease-out duration-200",
1256
+ "enter-from-class": "opacity-0",
1257
+ "enter-to-class": "opacity-100",
1258
+ "leave-active-class": "transition ease-in duration-150",
1259
+ "leave-from-class": "opacity-100",
1260
+ "leave-to-class": "opacity-0"
1261
+ }, {
1262
+ default: w(() => [
1263
+ a.modelValue ? (i(), m("div", {
1264
+ key: 0,
1265
+ class: p(r.value),
1266
+ onClick: L,
1267
+ "aria-modal": "true",
1268
+ role: "dialog",
1269
+ tabindex: "-1"
1270
+ }, [
1271
+ B(te, {
1272
+ "enter-active-class": "transition ease-out duration-200",
1273
+ "enter-from-class": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
1274
+ "enter-to-class": "opacity-100 translate-y-0 sm:scale-100",
1275
+ "leave-active-class": "transition ease-in duration-150",
1276
+ "leave-from-class": "opacity-100 translate-y-0 sm:scale-100",
1277
+ "leave-to-class": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
1278
+ appear: ""
1279
+ }, {
1280
+ default: w(() => [
1281
+ a.modelValue ? (i(), m("div", {
1282
+ key: 0,
1283
+ class: p(s.value),
1284
+ onClick: y[0] || (y[0] = U(() => {
1285
+ }, ["stop"]))
1286
+ }, [
1287
+ $.$slots.header || a.title ? (i(), m("div", {
1288
+ key: 0,
1289
+ class: p(c.value)
1290
+ }, [
1291
+ b($.$slots, "header", {}, () => [
1292
+ B(le, { variant: "section-title" }, {
1293
+ default: w(() => [
1294
+ E(M(a.title), 1)
1295
+ ]),
1296
+ _: 1
1297
+ })
1298
+ ]),
1299
+ a.closable ? (i(), m("button", {
1300
+ key: 0,
1301
+ type: "button",
1302
+ class: p(v.value),
1303
+ onClick: h,
1304
+ "aria-label": "Close modal"
1305
+ }, [
1306
+ B(P, {
1307
+ name: "x",
1308
+ class: "h-5 w-5"
1309
+ })
1310
+ ], 2)) : V("", !0)
1311
+ ], 2)) : V("", !0),
1312
+ C("div", {
1313
+ class: p(u.value)
1314
+ }, [
1315
+ b($.$slots, "default")
1316
+ ], 2),
1317
+ $.$slots.footer ? (i(), m("div", {
1318
+ key: 1,
1319
+ class: p(d.value)
1320
+ }, [
1321
+ b($.$slots, "footer")
1322
+ ], 2)) : V("", !0)
1323
+ ], 2)) : V("", !0)
1324
+ ]),
1325
+ _: 3
1326
+ })
1327
+ ], 2)) : V("", !0)
1328
+ ]),
1329
+ _: 3
1330
+ })
1331
+ ]));
1332
+ }
1333
+ }), wa = /* @__PURE__ */ k({
1334
+ __name: "LuToggleGroup",
1335
+ props: {
1336
+ modelValue: { type: [String, Number, Boolean] },
1337
+ variant: {}
1338
+ },
1339
+ emits: ["update:modelValue"],
1340
+ setup(a, { emit: l }) {
1341
+ const e = a, t = l;
1342
+ J("lu-toggle-value", o(() => e.modelValue)), J("lu-toggle-set", (s) => {
1343
+ t("update:modelValue", s);
1344
+ });
1345
+ const { resolveSkin: n } = g(), r = o(() => n("LuToggleGroup", e.variant));
1346
+ return (s, c) => (i(), m("div", S(s.$attrs, {
1347
+ class: r.value,
1348
+ role: "group"
1349
+ }), [
1350
+ b(s.$slots, "default")
1351
+ ], 16));
1352
+ }
1353
+ }), Ne = ["aria-pressed"], Ta = /* @__PURE__ */ k({
1354
+ __name: "LuToggleButton",
1355
+ props: {
1356
+ value: { type: [String, Number, Boolean] },
1357
+ variant: {}
1358
+ },
1359
+ setup(a) {
1360
+ const l = a, e = H("lu-toggle-value"), t = H("lu-toggle-set"), n = o(() => (e == null ? void 0 : e.value) === l.value), r = () => {
1361
+ t && t(l.value);
1362
+ }, { resolveSkin: s } = g(), c = o(() => s("LuToggleButton", l.variant)), u = o(() => s("LuToggleButton", "active"));
1363
+ return (d, v) => (i(), m("button", S(d.$attrs, {
1364
+ class: [c.value, n.value ? u.value : ""],
1365
+ onClick: r,
1366
+ "aria-pressed": n.value
1367
+ }), [
1368
+ b(d.$slots, "default")
1369
+ ], 16, Ne));
1370
+ }
1371
+ }), je = ["innerHTML"], Ue = ["innerHTML"], Ke = ["innerHTML"];
1372
+ let Y = null, ae = null;
1373
+ async function Ge() {
1374
+ return Y || (ae || (ae = he({
1375
+ themes: ["one-dark-pro"],
1376
+ langs: ["bash", "vue", "ts", "html", "css", "json"]
1377
+ })), Y = await ae, Y);
1378
+ }
1379
+ const Oa = /* @__PURE__ */ k({
1380
+ __name: "LuCodeBlock",
1381
+ props: {
1382
+ code: {},
1383
+ lang: { default: "vue" },
1384
+ variant: { default: "default" },
1385
+ layout: { default: "tabbed" },
1386
+ title: {},
1387
+ description: {}
1388
+ },
1389
+ setup(a) {
1390
+ const l = a, { resolveSkin: e } = g(), t = o(() => ({
1391
+ container: e("LuCodeBlock", "container"),
1392
+ header: e("LuCodeBlock", "header"),
1393
+ title: e("LuCodeBlock", "title"),
1394
+ description: e("LuCodeBlock", "description"),
1395
+ card: e("LuCodeBlock", "card"),
1396
+ previewArea: e("LuCodeBlock", "previewArea"),
1397
+ codeArea: e("LuCodeBlock", "codeArea"),
1398
+ splitCodeArea: e("LuCodeBlock", "splitCodeArea"),
1399
+ splitContainer: e("LuCodeBlock", "splitContainer"),
1400
+ codeHeader: e("LuCodeBlock", "codeHeader"),
1401
+ badge: e("LuCodeBlock", "badge"),
1402
+ copyButton: e("LuCodeBlock", "copyButton"),
1403
+ codeContent: e("LuCodeBlock", "codeContent")
1404
+ })), n = T(""), r = T("preview"), s = T(!1), c = async () => {
1405
+ if (!l.code) {
1406
+ n.value = "";
1407
+ return;
1408
+ }
1409
+ try {
1410
+ const d = await Ge();
1411
+ n.value = d.codeToHtml(l.code, {
1412
+ lang: l.lang || "vue",
1413
+ theme: "one-dark-pro"
1414
+ });
1415
+ } catch (d) {
1416
+ console.error("Failed to highlight code", d), n.value = `<pre><code>${l.code.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</code></pre>`;
1417
+ }
1418
+ };
1419
+ R(() => {
1420
+ c();
1421
+ }), F(() => [l.code, l.lang], () => {
1422
+ c();
1423
+ });
1424
+ const u = async () => {
1425
+ try {
1426
+ await navigator.clipboard.writeText(l.code), s.value = !0, setTimeout(() => s.value = !1, 2e3);
1427
+ } catch (d) {
1428
+ console.error("Failed to copy", d);
1429
+ }
1430
+ };
1431
+ return (d, v) => (i(), m("div", S(d.$attrs, {
1432
+ class: t.value.container
1433
+ }), [
1434
+ a.title || a.description ? (i(), m("div", {
1435
+ key: 0,
1436
+ class: p(t.value.header)
1437
+ }, [
1438
+ a.title ? (i(), m("h3", {
1439
+ key: 0,
1440
+ class: p(t.value.title)
1441
+ }, M(a.title), 3)) : V("", !0),
1442
+ a.description ? (i(), m("p", {
1443
+ key: 1,
1444
+ class: p(t.value.description)
1445
+ }, M(a.description), 3)) : V("", !0)
1446
+ ], 2)) : V("", !0),
1447
+ a.variant === "preview" ? (i(), m("div", {
1448
+ key: 1,
1449
+ class: p(t.value.card)
1450
+ }, [
1451
+ a.layout === "tabbed" ? (i(), m(q, { key: 0 }, [
1452
+ B(we, {
1453
+ modelValue: r.value,
1454
+ "onUpdate:modelValue": v[0] || (v[0] = (h) => r.value = h),
1455
+ variant: "default"
1456
+ }, {
1457
+ default: w(() => [
1458
+ B(Te, { variant: "card-header" }, {
1459
+ default: w(() => [
1460
+ B(re, { value: "preview" }, {
1461
+ default: w(() => [...v[1] || (v[1] = [
1462
+ E("Preview", -1)
1463
+ ])]),
1464
+ _: 1
1465
+ }),
1466
+ B(re, { value: "code" }, {
1467
+ default: w(() => [...v[2] || (v[2] = [
1468
+ E("Code", -1)
1469
+ ])]),
1470
+ _: 1
1471
+ })
1472
+ ]),
1473
+ _: 1
1474
+ })
1475
+ ]),
1476
+ _: 1
1477
+ }, 8, ["modelValue"]),
1478
+ r.value === "preview" ? (i(), m("div", {
1479
+ key: 0,
1480
+ class: p(t.value.previewArea)
1481
+ }, [
1482
+ b(d.$slots, "preview")
1483
+ ], 2)) : V("", !0),
1484
+ r.value === "code" ? (i(), m("div", {
1485
+ key: 1,
1486
+ class: p(t.value.codeArea)
1487
+ }, [
1488
+ C("div", {
1489
+ class: p(t.value.codeHeader)
1490
+ }, [
1491
+ C("div", {
1492
+ class: p(t.value.badge)
1493
+ }, M(a.lang), 3),
1494
+ C("button", {
1495
+ onClick: u,
1496
+ class: p(t.value.copyButton),
1497
+ "aria-label": "Copy code"
1498
+ }, [
1499
+ B(P, {
1500
+ name: s.value ? "check" : "copy",
1501
+ class: "w-4 h-4"
1502
+ }, null, 8, ["name"])
1503
+ ], 2)
1504
+ ], 2),
1505
+ C("div", {
1506
+ class: p(t.value.codeContent),
1507
+ innerHTML: n.value
1508
+ }, null, 10, je)
1509
+ ], 2)) : V("", !0)
1510
+ ], 64)) : a.layout === "split" ? (i(), m("div", {
1511
+ key: 1,
1512
+ class: p(t.value.splitContainer)
1513
+ }, [
1514
+ C("div", {
1515
+ class: p(t.value.previewArea)
1516
+ }, [
1517
+ b(d.$slots, "preview")
1518
+ ], 2),
1519
+ C("div", {
1520
+ class: p(t.value.splitCodeArea)
1521
+ }, [
1522
+ C("div", {
1523
+ class: p(t.value.codeHeader)
1524
+ }, [
1525
+ C("div", {
1526
+ class: p(t.value.badge)
1527
+ }, M(a.lang), 3),
1528
+ C("button", {
1529
+ onClick: u,
1530
+ class: p(t.value.copyButton),
1531
+ "aria-label": "Copy code"
1532
+ }, [
1533
+ B(P, {
1534
+ name: s.value ? "check" : "copy",
1535
+ class: "w-4 h-4"
1536
+ }, null, 8, ["name"])
1537
+ ], 2)
1538
+ ], 2),
1539
+ C("div", {
1540
+ class: p(t.value.codeContent),
1541
+ innerHTML: n.value
1542
+ }, null, 10, Ue)
1543
+ ], 2)
1544
+ ], 2)) : V("", !0)
1545
+ ], 2)) : (i(), m("div", {
1546
+ key: 2,
1547
+ class: p(t.value.card)
1548
+ }, [
1549
+ C("div", {
1550
+ class: p(t.value.codeArea)
1551
+ }, [
1552
+ C("div", {
1553
+ class: p(t.value.codeHeader)
1554
+ }, [
1555
+ C("div", {
1556
+ class: p(t.value.badge)
1557
+ }, M(a.lang), 3),
1558
+ C("button", {
1559
+ onClick: u,
1560
+ class: p(t.value.copyButton),
1561
+ "aria-label": "Copy code"
1562
+ }, [
1563
+ B(P, {
1564
+ name: s.value ? "check" : "copy",
1565
+ class: "w-4 h-4"
1566
+ }, null, 8, ["name"])
1567
+ ], 2)
1568
+ ], 2),
1569
+ C("div", {
1570
+ class: p(t.value.codeContent),
1571
+ innerHTML: n.value
1572
+ }, null, 10, Ke)
1573
+ ], 2)
1574
+ ], 2))
1575
+ ], 16));
1576
+ }
1577
+ });
1578
+ export {
1579
+ Te as A,
1580
+ xe as B,
1581
+ ua as C,
1582
+ ca as D,
1583
+ ma as E,
1584
+ ia as F,
1585
+ va as G,
1586
+ da as H,
1587
+ we as I,
1588
+ Sa as J,
1589
+ le as K,
1590
+ fa as L,
1591
+ Ze as M,
1592
+ Ye as N,
1593
+ Ta as O,
1594
+ wa as P,
1595
+ ta as Q,
1596
+ ha as _,
1597
+ la as a,
1598
+ ea as b,
1599
+ $a as c,
1600
+ Z as d,
1601
+ ra as e,
1602
+ ka as f,
1603
+ Oa as g,
1604
+ na as h,
1605
+ sa as i,
1606
+ pa as j,
1607
+ P as k,
1608
+ Xe as l,
1609
+ Me as m,
1610
+ Ca as n,
1611
+ Va as o,
1612
+ Ba as p,
1613
+ oa as q,
1614
+ _a as r,
1615
+ aa as s,
1616
+ ga as t,
1617
+ ba as u,
1618
+ Be as v,
1619
+ ya as w,
1620
+ La as x,
1621
+ Ce as y,
1622
+ re as z
1623
+ };