@code-coaching/vuetiful 0.21.4 → 0.23.0

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 (107) hide show
  1. package/README.md +1 -1
  2. package/dist/style.css +2 -2
  3. package/dist/types/components/VBootstrap.vue.d.ts +15 -0
  4. package/dist/types/components/atoms/VAvatar.vue.d.ts +37 -10
  5. package/dist/types/components/atoms/VBadge.vue.d.ts +22 -1
  6. package/dist/types/components/atoms/VButton.vue.d.ts +27 -0
  7. package/dist/types/components/atoms/VChip.vue.d.ts +22 -1
  8. package/dist/types/components/atoms/VRadio/VRadioGroup.vue.d.ts +18 -0
  9. package/dist/types/components/atoms/VRadio/VRadioItem.vue.d.ts +13 -3
  10. package/dist/types/components/atoms/VSwitch/VSwitch.vue.d.ts +24 -15
  11. package/dist/types/components/atoms/index.d.ts +1 -2
  12. package/dist/types/components/molecules/VAccordion/VAccordion.vue.d.ts +15 -6
  13. package/dist/types/components/molecules/VAccordion/VAccordionItem.vue.d.ts +11 -1
  14. package/dist/types/components/molecules/VAlert.vue.d.ts +39 -3
  15. package/dist/types/components/molecules/VCard/VCard.vue.d.ts +5 -5
  16. package/dist/types/components/molecules/VCard/VCardBody.vue.d.ts +13 -1
  17. package/dist/types/components/molecules/VCard/VCardFooter.vue.d.ts +22 -1
  18. package/dist/types/components/molecules/VCard/VCardHeader.vue.d.ts +22 -1
  19. package/dist/types/components/{atoms → molecules}/VCodeBlock.vue.d.ts +36 -9
  20. package/dist/types/components/molecules/VListbox/VListbox.vue.d.ts +51 -14
  21. package/dist/types/components/molecules/VListbox/VListboxItem.vue.d.ts +13 -3
  22. package/dist/types/components/molecules/VListbox/VListboxItems.vue.d.ts +9 -0
  23. package/dist/types/components/molecules/{VRail.vue.d.ts → VRail/VRail.vue.d.ts} +0 -27
  24. package/dist/types/components/molecules/{VRailTile.vue.d.ts → VRail/VRailTile.vue.d.ts} +2 -15
  25. package/dist/types/components/molecules/VTabs/VTab.vue.d.ts +9 -0
  26. package/dist/types/components/molecules/VTabs/VTabs.vue.d.ts +18 -0
  27. package/dist/types/components/molecules/index.d.ts +4 -3
  28. package/dist/types/props/index.d.ts +1 -0
  29. package/dist/types/props/props.d.ts +14 -0
  30. package/dist/types/services/index.d.ts +5 -3
  31. package/dist/types/services/settings.service.d.ts +132 -0
  32. package/dist/types/services/settings.service.test.d.ts +1 -0
  33. package/dist/types/types/index.d.ts +53 -0
  34. package/dist/vuetiful.es.mjs +944 -618
  35. package/dist/vuetiful.umd.js +22 -9
  36. package/package.json +1 -1
  37. package/src/components/VBootstrap.vue +62 -0
  38. package/src/components/atoms/VAvatar.test.ts +98 -28
  39. package/src/components/atoms/VAvatar.vue +46 -13
  40. package/src/components/atoms/VBadge.test.ts +10 -0
  41. package/src/components/atoms/VBadge.vue +13 -1
  42. package/src/components/atoms/VButton.test.ts +58 -0
  43. package/src/components/atoms/VButton.vue +31 -2
  44. package/src/components/atoms/VChip.test.ts +26 -11
  45. package/src/components/atoms/VChip.vue +13 -1
  46. package/src/components/atoms/VRadio/VRadioDescription.vue +1 -1
  47. package/src/components/atoms/VRadio/VRadioGroup.test.ts +7 -7
  48. package/src/components/atoms/VRadio/VRadioGroup.vue +23 -3
  49. package/src/components/atoms/VRadio/VRadioItem.vue +16 -4
  50. package/src/components/atoms/VRadio/VRadioLabel.vue +1 -1
  51. package/src/components/atoms/VSwitch/VSwitch.test.ts +20 -18
  52. package/src/components/atoms/VSwitch/VSwitch.vue +29 -17
  53. package/src/components/atoms/VSwitch/VSwitchDescription.vue +1 -1
  54. package/src/components/atoms/VSwitch/VSwitchGroup.vue +2 -2
  55. package/src/components/atoms/VSwitch/VSwitchLabel.vue +1 -1
  56. package/src/components/atoms/index.ts +0 -2
  57. package/src/components/molecules/VAccordion/VAccordion.test.ts +11 -0
  58. package/src/components/molecules/VAccordion/VAccordion.vue +16 -7
  59. package/src/components/molecules/VAccordion/VAccordionItem.test.ts +65 -16
  60. package/src/components/molecules/VAccordion/VAccordionItem.vue +53 -32
  61. package/src/components/molecules/VAlert.test.ts +11 -1
  62. package/src/components/molecules/VAlert.vue +33 -7
  63. package/src/components/molecules/VCard/VCard.test.ts +1 -1
  64. package/src/components/molecules/VCard/VCard.vue +12 -7
  65. package/src/components/molecules/VCard/VCardBody.test.ts +18 -0
  66. package/src/components/molecules/VCard/VCardBody.vue +16 -1
  67. package/src/components/molecules/VCard/VCardFooter.test.ts +18 -0
  68. package/src/components/molecules/VCard/VCardFooter.vue +21 -3
  69. package/src/components/molecules/VCard/VCardHeader.test.ts +18 -0
  70. package/src/components/molecules/VCard/VCardHeader.vue +26 -5
  71. package/src/components/molecules/VCodeBlock.test.ts +133 -0
  72. package/src/components/molecules/VCodeBlock.vue +120 -0
  73. package/src/components/molecules/VListbox/VListbox.test.ts +42 -15
  74. package/src/components/molecules/VListbox/VListbox.vue +44 -15
  75. package/src/components/molecules/VListbox/VListboxButton.test.ts +15 -6
  76. package/src/components/molecules/VListbox/VListboxButton.vue +10 -1
  77. package/src/components/molecules/VListbox/VListboxItem.test.ts +2 -2
  78. package/src/components/molecules/VListbox/VListboxItem.vue +18 -7
  79. package/src/components/molecules/VListbox/VListboxItems.test.ts +2 -2
  80. package/src/components/molecules/VListbox/VListboxItems.vue +18 -5
  81. package/src/components/molecules/VListbox/VListboxLabel.test.ts +1 -2
  82. package/src/components/molecules/VListbox/VListboxLabel.vue +1 -1
  83. package/src/components/molecules/VPreview.vue +9 -5
  84. package/src/components/molecules/{VRail.test.ts → VRail/VRail.test.ts} +1 -1
  85. package/src/components/molecules/VRail/VRail.vue +33 -0
  86. package/src/components/molecules/VRail/VRailTile.test.ts +99 -0
  87. package/src/components/molecules/VRail/VRailTile.vue +47 -0
  88. package/src/components/molecules/VTabs/VTab.test.ts +7 -3
  89. package/src/components/molecules/VTabs/VTab.vue +20 -5
  90. package/src/components/molecules/VTabs/VTabPanel.vue +2 -2
  91. package/src/components/molecules/VTabs/VTabs.test.ts +4 -2
  92. package/src/components/molecules/VTabs/VTabs.vue +32 -8
  93. package/src/components/molecules/index.ts +5 -2
  94. package/src/props/index.ts +1 -0
  95. package/src/props/props.ts +62 -0
  96. package/src/services/index.ts +5 -3
  97. package/src/services/settings.service.test.ts +17 -0
  98. package/src/services/settings.service.ts +136 -0
  99. package/src/types/index.ts +58 -0
  100. package/src/components/atoms/VCodeBlock.test.ts +0 -14
  101. package/src/components/atoms/VCodeBlock.vue +0 -92
  102. package/src/components/molecules/VRail.vue +0 -39
  103. package/src/components/molecules/VRailTile.test.ts +0 -14
  104. package/src/components/molecules/VRailTile.vue +0 -83
  105. /package/dist/types/components/{atoms → molecules}/VCodeBlock.test.d.ts +0 -0
  106. /package/dist/types/components/molecules/{VRail.test.d.ts → VRail/VRail.test.d.ts} +0 -0
  107. /package/dist/types/components/molecules/{VRailTile.test.d.ts → VRail/VRailTile.test.d.ts} +0 -0
@@ -1,20 +1,79 @@
1
- import { defineComponent, ref, computed, useAttrs, openBlock, createElementBlock, normalizeClass, createElementVNode, unref, toDisplayString, renderSlot, createBlock, resolveDynamicComponent, withCtx, withDirectives, createTextVNode, onMounted, Fragment, cloneVNode, h as h$1, inject, provide, watchEffect, onUnmounted, watch, nextTick, toRaw, createCommentVNode, reactive, readonly, toRefs, createVNode, Transition, renderList, pushScopeId, popScopeId, mergeProps, vShow, resolveComponent } from "vue";
2
- const _hoisted_1$i = ["src", "alt"];
3
- const _hoisted_2$9 = {
4
- key: 1,
5
- class: "avatar-initials h-full w-full",
6
- viewBox: "0 0 512 512"
1
+ import { defineComponent, ref, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, toDisplayString, readonly, reactive, renderSlot, createBlock, resolveDynamicComponent, withCtx, onMounted, Fragment, cloneVNode, h as h$1, inject, provide, watchEffect, onUnmounted, watch, nextTick, toRaw, createCommentVNode, toRefs, createVNode, Transition, renderList, createTextVNode, pushScopeId, popScopeId, isRef, withDirectives, vShow, useAttrs, resolveComponent } from "vue";
2
+ const Variant = {
3
+ Filled: "filled",
4
+ FilledPrimary: "filled-primary",
5
+ FilledSecondary: "filled-secondary",
6
+ FilledTertiary: "filled-tertiary",
7
+ FilledSuccess: "filled-success",
8
+ FilledWarning: "filled-warning",
9
+ FilledError: "filled-error",
10
+ FilledSurface: "filled-surface",
11
+ Ringed: "ringed",
12
+ RingedPrimary: "ringed-primary",
13
+ RingedSecondary: "ringed-secondary",
14
+ RingedTertiary: "ringed-tertiary",
15
+ RingedSuccess: "ringed-success",
16
+ RingedWarning: "ringed-warning",
17
+ RingedError: "ringed-error",
18
+ RingedSurface: "ringed-surface",
19
+ Ghost: "ghost",
20
+ GhostPrimary: "ghost-primary",
21
+ GhostSecondary: "ghost-secondary",
22
+ GhostTertiary: "ghost-tertiary",
23
+ GhostSuccess: "ghost-success",
24
+ GhostWarning: "ghost-warning",
25
+ GhostError: "ghost-error",
26
+ GhostSurface: "ghost-surface",
27
+ Soft: "soft",
28
+ SoftPrimary: "soft-primary",
29
+ SoftSecondary: "soft-secondary",
30
+ SoftTertiary: "soft-tertiary",
31
+ SoftSuccess: "soft-success",
32
+ SoftWarning: "soft-warning",
33
+ SoftError: "soft-error",
34
+ SoftSurface: "soft-surface",
35
+ Glass: "glass",
36
+ GlassPrimary: "glass-primary",
37
+ GlassSecondary: "glass-secondary",
38
+ GlassTertiary: "glass-tertiary",
39
+ GlassSuccess: "glass-success",
40
+ GlassWarning: "glass-warning",
41
+ GlassError: "glass-error",
42
+ GlassSurface: "glass-surface"
43
+ };
44
+ const Size = {
45
+ XS: "xs",
46
+ SM: "sm",
47
+ MD: "md",
48
+ LG: "lg",
49
+ XL: "xl"
50
+ };
51
+ const sizeProp = {
52
+ type: String,
53
+ default: Size.MD
7
54
  };
55
+ const unstyledProp = {
56
+ type: Boolean,
57
+ default: false
58
+ };
59
+ const variantProp = {
60
+ type: String,
61
+ default: Variant.Filled
62
+ };
63
+ const _hoisted_1$b = ["src", "alt"];
8
64
  const _sfc_main$y = /* @__PURE__ */ defineComponent({
9
65
  __name: "VAvatar",
10
66
  props: {
11
67
  initials: { type: String, default: "" },
12
68
  fill: { type: String, default: "" },
69
+ classInitials: { type: String, default: "" },
13
70
  src: { type: String, default: "" },
14
71
  alt: { type: String, default: "" },
15
72
  fallback: { type: String, default: "" },
16
- width: { type: String, default: "w-16" },
17
- rounded: { type: String, default: "rounded-token" }
73
+ classImage: { type: String, default: "" },
74
+ size: sizeProp,
75
+ variant: variantProp,
76
+ unstyled: unstyledProp
18
77
  },
19
78
  setup(__props) {
20
79
  const props = __props;
@@ -22,24 +81,47 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
22
81
  const fillInitials = computed(() => {
23
82
  if (props.fill)
24
83
  return props.fill;
25
- const attrs = useAttrs();
26
- const classString = attrs.class;
27
- if (classString == null ? void 0 : classString.includes("variant-filled")) {
28
- return "fill-on-surface-token dark:fill-base-token";
84
+ const variantString = props.variant;
85
+ const type = variantString == null ? void 0 : variantString.split("-")[1];
86
+ if (variantString == null ? void 0 : variantString.includes("filled")) {
87
+ if (!type)
88
+ return "fill-white dark:fill-black";
89
+ return "fill-white";
90
+ }
91
+ return "fill-black dark:fill-white";
92
+ });
93
+ const avatarSize = computed(() => {
94
+ switch (props.size) {
95
+ case Size.XS:
96
+ return "w-8";
97
+ case Size.SM:
98
+ return "w-12";
99
+ case Size.MD:
100
+ return "w-16";
101
+ case Size.LG:
102
+ return "w-20";
103
+ case Size.XL:
104
+ return "w-24";
29
105
  }
30
- return "dark:fill-on-surface-token fill-base-token";
31
106
  });
107
+ const { settings: settings2 } = useSettings();
108
+ const isUnstyled = settings2.global.unstyled || settings2.components.avatar.unstyled || props.unstyled;
32
109
  return (_ctx, _cache) => {
33
110
  return openBlock(), createElementBlock("figure", {
34
- class: normalizeClass(`avatar isolate flex aspect-square items-center justify-center overflow-hidden font-semibold ${__props.rounded} ${__props.width}`)
111
+ "data-test": "avatar",
112
+ class: normalizeClass(`vuetiful-avatar ${unref(isUnstyled) ? "" : "isolate flex aspect-square items-center justify-center overflow-hidden font-semibold rounded-token"} ${unref(avatarSize)} variant-${__props.variant}`)
35
113
  }, [
36
114
  __props.src ? (openBlock(), createElementBlock("img", {
37
115
  key: 0,
38
- class: "avatar-image",
116
+ class: normalizeClass(`vuetiful-avatar-image ${__props.classImage}`),
39
117
  src: imgSrc.value,
40
118
  alt: __props.alt,
41
119
  onError: _cache[0] || (_cache[0] = () => imgSrc.value = __props.fallback)
42
- }, null, 40, _hoisted_1$i)) : (openBlock(), createElementBlock("svg", _hoisted_2$9, [
120
+ }, null, 42, _hoisted_1$b)) : (openBlock(), createElementBlock("svg", {
121
+ key: 1,
122
+ class: normalizeClass(`vuetiful-avatar-initials ${unref(isUnstyled) ? "" : "h-full w-full"} ${__props.classInitials}`),
123
+ viewBox: "0 0 512 512"
124
+ }, [
43
125
  createElementVNode("text", {
44
126
  x: "50%",
45
127
  y: "50%",
@@ -47,90 +129,128 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
47
129
  "text-anchor": "middle",
48
130
  "font-weight": "bold",
49
131
  "font-size": 150,
50
- class: normalizeClass(`avatar-text ${unref(fillInitials)}`)
132
+ class: normalizeClass(`vuetiful-avatar-text ${unref(fillInitials)}`)
51
133
  }, toDisplayString(String(__props.initials).substring(0, 2).toUpperCase()), 3)
52
- ]))
134
+ ], 2))
53
135
  ], 2);
54
136
  };
55
137
  }
56
138
  });
57
- var _export_sfc = (sfc, props) => {
58
- const target = sfc.__vccOpts || sfc;
59
- for (const [key, val] of props) {
60
- target[key] = val;
61
- }
62
- return target;
139
+ const usePlatform = () => {
140
+ const isBrowser2 = typeof window !== "undefined";
141
+ return {
142
+ isBrowser: isBrowser2
143
+ };
63
144
  };
64
- const _sfc_main$x = {};
65
- const _hoisted_1$h = {
66
- class: /* @__PURE__ */ normalizeClass(`vuetiful-badge badge`)
145
+ const { isBrowser: isBrowser$1 } = usePlatform();
146
+ const MODE = {
147
+ LIGHT: true,
148
+ DARK: false
67
149
  };
68
- function _sfc_render$4(_ctx, _cache) {
69
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
70
- renderSlot(_ctx.$slots, "default")
71
- ]);
72
- }
73
- var VBadge = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$4]]);
74
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
75
- __name: "VButton",
76
- props: {
77
- icon: {
78
- type: Boolean,
79
- default: false
80
- },
81
- tag: {
82
- type: String,
83
- default: "button"
150
+ const modeOsPrefers = ref(MODE.DARK);
151
+ const currentMode = ref(MODE.DARK);
152
+ const modeUserPrefers = ref(void 0);
153
+ const isDark = computed(() => currentMode.value === MODE.DARK);
154
+ const useDarkMode = () => {
155
+ const getModeOsPrefers = () => {
156
+ let prefersLightMode = false;
157
+ if (isBrowser$1)
158
+ prefersLightMode = window.matchMedia("(prefers-color-scheme: light)").matches;
159
+ setModeOsPrefers(prefersLightMode);
160
+ return prefersLightMode;
161
+ };
162
+ const getModeUserPrefers = () => {
163
+ if (isBrowser$1) {
164
+ const mode = localStorage.getItem("modeUserPrefers");
165
+ if (mode !== null)
166
+ modeUserPrefers.value = mode === "true";
84
167
  }
85
- },
86
- emits: ["click"],
87
- setup(__props, { emit }) {
88
- const activate = () => {
89
- emit("click");
90
- };
91
- const clickHandler = (event) => {
92
- event.preventDefault();
93
- activate();
94
- };
95
- const keydownHandler = (event) => {
96
- if (["Enter", " "].includes(event.key))
97
- event.preventDefault();
98
- if (event.key === "Enter")
99
- activate();
100
- };
101
- const keyupHandler = (event) => {
102
- if (event.key === " ") {
103
- event.preventDefault();
104
- activate();
105
- }
168
+ return modeUserPrefers.value;
169
+ };
170
+ const getModeAutoPrefers = () => {
171
+ const os = getModeOsPrefers();
172
+ const user = getModeUserPrefers();
173
+ if (user === void 0)
174
+ return os;
175
+ return user;
176
+ };
177
+ const setModeOsPrefers = (value) => {
178
+ modeOsPrefers.value = value;
179
+ if (isBrowser$1) {
180
+ localStorage.setItem("modeOsPrefers", value.toString());
181
+ }
182
+ };
183
+ const setModeUserPrefers = (value) => {
184
+ modeUserPrefers.value = value;
185
+ if (isBrowser$1) {
186
+ localStorage.setItem("modeUserPrefers", value.toString());
187
+ }
188
+ };
189
+ const setModeCurrent = (value) => {
190
+ const elemHtmlClasses = document.documentElement.classList;
191
+ const classDark = "dark";
192
+ value === MODE.LIGHT ? elemHtmlClasses.remove(classDark) : elemHtmlClasses.add(classDark);
193
+ currentMode.value = value;
194
+ };
195
+ const initializeMode = () => {
196
+ const mode = getModeAutoPrefers();
197
+ setModeCurrent(mode);
198
+ };
199
+ const autoModeWatcher = () => {
200
+ const mql = window.matchMedia("(prefers-color-scheme: light)");
201
+ const setMode = (value) => {
202
+ const elemHtmlClasses = document.documentElement.classList;
203
+ const classDark = `dark`;
204
+ value === MODE.LIGHT ? elemHtmlClasses.remove(classDark) : elemHtmlClasses.add(classDark);
205
+ setModeCurrent(value);
106
206
  };
107
- return (_ctx, _cache) => {
108
- return openBlock(), createBlock(resolveDynamicComponent(__props.tag), {
109
- tabindex: "0",
110
- role: "button",
111
- class: normalizeClass(`vuetiful-button ${__props.icon ? "btn-icon" : "btn"} border-token hover:cursor-pointer`),
112
- onClick: clickHandler,
113
- onKeydown: keydownHandler,
114
- onKeyup: keyupHandler
115
- }, {
116
- default: withCtx(() => [
117
- renderSlot(_ctx.$slots, "default")
118
- ]),
119
- _: 3
120
- }, 40, ["class"]);
207
+ setMode(mql.matches);
208
+ mql.onchange = () => {
209
+ setMode(mql.matches);
121
210
  };
122
- }
211
+ };
212
+ return {
213
+ modeOsPrefers: readonly(modeOsPrefers),
214
+ modeUserPrefers: readonly(modeUserPrefers),
215
+ currentMode: readonly(currentMode),
216
+ isDark: readonly(isDark),
217
+ getModeOsPrefers,
218
+ getModeUserPrefers,
219
+ getModeAutoPrefers,
220
+ setModeUserPrefers,
221
+ setModeCurrent,
222
+ autoModeWatcher,
223
+ initializeMode,
224
+ MODE
225
+ };
226
+ };
227
+ const drawer = reactive({
228
+ id: "default",
229
+ open: false,
230
+ position: "left",
231
+ duration: 300,
232
+ regionBackdrop: "",
233
+ regionDrawer: ""
123
234
  });
124
- const _sfc_main$v = {};
125
- const _hoisted_1$g = {
126
- class: /* @__PURE__ */ normalizeClass(`vuetiful-chip chip`)
235
+ const useDrawer = () => {
236
+ const open = (settings2) => {
237
+ var _a, _b, _c, _d, _e;
238
+ drawer.open = true;
239
+ drawer.id = (_a = settings2 == null ? void 0 : settings2.id) != null ? _a : "default";
240
+ drawer.duration = (_b = settings2 == null ? void 0 : settings2.duration) != null ? _b : 300;
241
+ drawer.regionBackdrop = (_c = settings2 == null ? void 0 : settings2.regionBackdrop) != null ? _c : "";
242
+ drawer.regionDrawer = (_d = settings2 == null ? void 0 : settings2.regionDrawer) != null ? _d : "";
243
+ drawer.position = (_e = settings2 == null ? void 0 : settings2.position) != null ? _e : "left";
244
+ };
245
+ const close = () => {
246
+ drawer.open = false;
247
+ };
248
+ return {
249
+ drawer: readonly(drawer),
250
+ open,
251
+ close
252
+ };
127
253
  };
128
- function _sfc_render$3(_ctx, _cache) {
129
- return openBlock(), createElementBlock("div", _hoisted_1$g, [
130
- renderSlot(_ctx.$slots, "default")
131
- ]);
132
- }
133
- var VChip = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$3]]);
134
254
  var deepFreezeEs6 = { exports: {} };
135
255
  function deepFreeze(obj) {
136
256
  if (obj instanceof Map) {
@@ -46470,100 +46590,205 @@ const useHighlight = () => {
46470
46590
  highlight: highlight2
46471
46591
  };
46472
46592
  };
46473
- var githubDark = "";
46474
- const _hoisted_1$f = { class: "code-block max-w-full bg-neutral-900/90 text-sm text-white shadow rounded-container-token" };
46475
- const _hoisted_2$8 = {
46476
- class: /* @__PURE__ */ normalizeClass(`code-block-language`)
46593
+ const selectedRailTile = ref("");
46594
+ const useRail = () => {
46595
+ return {
46596
+ selectedRailTile
46597
+ };
46477
46598
  };
46478
- const _hoisted_3$5 = ["innerHTML"];
46479
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
46480
- __name: "VCodeBlock",
46481
- props: {
46482
- language: {
46483
- type: String,
46484
- default: "plaintext"
46599
+ const settings = reactive({
46600
+ global: {
46601
+ unstyled: false
46602
+ },
46603
+ components: {
46604
+ radioGroup: {
46605
+ unstyled: false
46485
46606
  },
46486
- code: {
46487
- type: String,
46488
- default: ""
46607
+ radioItem: {
46608
+ unstyled: false
46489
46609
  },
46490
- preventOverflow: {
46491
- type: Boolean,
46492
- default: false
46610
+ switch: {
46611
+ unstyled: false
46493
46612
  },
46494
- headerClass: {
46495
- type: String,
46496
- default: ""
46613
+ avatar: {
46614
+ unstyled: false
46497
46615
  },
46498
- preClass: {
46499
- type: String,
46500
- default: ""
46616
+ badge: {
46617
+ unstyled: false
46501
46618
  },
46502
- buttonClass: {
46503
- type: String,
46504
- default: "btn-sm"
46619
+ button: {
46620
+ unstyled: false
46505
46621
  },
46506
- buttonText: {
46507
- type: String,
46508
- default: "Copy"
46622
+ chip: {
46623
+ unstyled: false
46509
46624
  },
46510
- buttonCopiedText: {
46511
- type: String,
46512
- default: "\u{1F44D}"
46625
+ codeBlock: {
46626
+ unstyled: false
46627
+ },
46628
+ listbox: {
46629
+ unstyled: false
46630
+ },
46631
+ listboxItem: {
46632
+ unstyled: false
46633
+ },
46634
+ accordion: {
46635
+ unstyled: false
46636
+ },
46637
+ accordionItem: {
46638
+ unstyled: false
46639
+ },
46640
+ alert: {
46641
+ unstyled: false
46642
+ },
46643
+ card: {
46644
+ unstyled: false
46645
+ },
46646
+ cardHeader: {
46647
+ unstyled: false
46648
+ },
46649
+ cardBody: {
46650
+ unstyled: false
46651
+ },
46652
+ cardFooter: {
46653
+ unstyled: false
46654
+ },
46655
+ tabs: {
46656
+ unstyled: false
46657
+ },
46658
+ tab: {
46659
+ unstyled: false
46513
46660
  }
46661
+ }
46662
+ });
46663
+ const useSettings = () => {
46664
+ const updateSettings = (partialSettings) => {
46665
+ for (const key in partialSettings) {
46666
+ if (key in settings) {
46667
+ Object.assign(settings[key], partialSettings[key]);
46668
+ }
46669
+ }
46670
+ };
46671
+ return {
46672
+ updateSettings,
46673
+ settings
46674
+ };
46675
+ };
46676
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
46677
+ __name: "VBadge",
46678
+ props: {
46679
+ variant: variantProp,
46680
+ unstyled: unstyledProp
46514
46681
  },
46515
- emits: ["copy"],
46682
+ setup(__props) {
46683
+ const props = __props;
46684
+ const { settings: settings2 } = useSettings();
46685
+ const isUnstyled = settings2.global.unstyled || settings2.components.badge.unstyled || props.unstyled;
46686
+ return (_ctx, _cache) => {
46687
+ return openBlock(), createElementBlock("div", {
46688
+ class: normalizeClass(`vuetiful-badge ${unref(isUnstyled) ? "" : "badge"} variant-${__props.variant}`)
46689
+ }, [
46690
+ renderSlot(_ctx.$slots, "default")
46691
+ ], 2);
46692
+ };
46693
+ }
46694
+ });
46695
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
46696
+ __name: "VButton",
46697
+ props: {
46698
+ icon: {
46699
+ type: Boolean,
46700
+ default: false
46701
+ },
46702
+ tag: {
46703
+ type: String,
46704
+ default: "button"
46705
+ },
46706
+ size: sizeProp,
46707
+ variant: variantProp,
46708
+ unstyled: unstyledProp
46709
+ },
46710
+ emits: ["click"],
46516
46711
  setup(__props, { emit }) {
46517
46712
  const props = __props;
46518
- const { highlight: highlight2 } = useHighlight();
46519
- const copyState = ref(false);
46520
- function languageFormatter(lang) {
46521
- if (lang === "js")
46522
- return "javascript";
46523
- if (lang === "ts")
46524
- return "typescript";
46525
- if (["sh", "bash", "zsh", "shell"].includes(lang))
46526
- return "console";
46527
- return lang;
46528
- }
46529
- function onCopyClick() {
46530
- copyState.value = true;
46531
- setTimeout(() => {
46532
- copyState.value = false;
46533
- }, 2e3);
46534
- emit("copy");
46535
- }
46713
+ const activate = () => {
46714
+ emit("click");
46715
+ };
46716
+ const clickHandler = (event) => {
46717
+ event.preventDefault();
46718
+ activate();
46719
+ };
46720
+ const keydownHandler = (event) => {
46721
+ if (["Enter", " "].includes(event.key))
46722
+ event.preventDefault();
46723
+ if (event.key === "Enter")
46724
+ activate();
46725
+ };
46726
+ const keyupHandler = (event) => {
46727
+ if (event.key === " ") {
46728
+ event.preventDefault();
46729
+ activate();
46730
+ }
46731
+ };
46732
+ const btnSize = computed(() => {
46733
+ switch (props.size) {
46734
+ case "xs":
46735
+ return "px-2.5 py-1.5 text-xs";
46736
+ case "sm":
46737
+ return "px-3 py-2 text-sm leading-4";
46738
+ case "md":
46739
+ return "px-4 py-2 text-sm";
46740
+ case "lg":
46741
+ return "px-4 py-2 text-base";
46742
+ case "xl":
46743
+ return "px-6 py-3 text-base";
46744
+ }
46745
+ });
46746
+ const { settings: settings2 } = useSettings();
46747
+ const isUnstyled = settings2.global.unstyled || settings2.components.button.unstyled || props.unstyled;
46536
46748
  return (_ctx, _cache) => {
46537
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
46538
- createElementVNode("header", {
46539
- class: normalizeClass(`code-block-header flex items-center justify-between p-2 pb-0 pl-4 text-xs uppercase text-white/50 ${__props.headerClass}`)
46540
- }, [
46541
- createElementVNode("span", _hoisted_2$8, toDisplayString(languageFormatter(__props.language)), 1),
46542
- withDirectives((openBlock(), createBlock(unref(_sfc_main$w), {
46543
- class: normalizeClass(`code-block-btn ${__props.buttonClass}`),
46544
- onClick: _cache[0] || (_cache[0] = ($event) => onCopyClick())
46545
- }, {
46546
- default: withCtx(() => [
46547
- createTextVNode(toDisplayString(!copyState.value ? __props.buttonText : __props.buttonCopiedText), 1)
46548
- ]),
46549
- _: 1
46550
- }, 8, ["class"])), [
46551
- [unref(clipboard), props.code]
46552
- ])
46553
- ], 2),
46554
- createElementVNode("pre", {
46555
- class: normalizeClass(`code-block-pre ${__props.preventOverflow ? "whitespace-pre-wrap break-all" : "overflow-auto"} p-4 pt-1 ${__props.preClass}`)
46556
- }, [
46557
- createElementVNode("code", {
46558
- class: normalizeClass(`code-block-code language-${__props.language}`),
46559
- innerHTML: unref(highlight2)(props.code, props.language)
46560
- }, null, 10, _hoisted_3$5)
46561
- ], 2)
46562
- ]);
46749
+ return openBlock(), createBlock(resolveDynamicComponent(__props.tag), {
46750
+ tabindex: "0",
46751
+ role: "button",
46752
+ class: normalizeClass(`vuetiful-button ${unref(isUnstyled) ? "" : `${__props.icon ? "btn-icon" : "btn"} border-token hover:cursor-pointer`} ${unref(btnSize)} variant-${__props.variant}`),
46753
+ onClick: clickHandler,
46754
+ onKeydown: keydownHandler,
46755
+ onKeyup: keyupHandler
46756
+ }, {
46757
+ default: withCtx(() => [
46758
+ renderSlot(_ctx.$slots, "default")
46759
+ ]),
46760
+ _: 3
46761
+ }, 40, ["class"]);
46563
46762
  };
46564
46763
  }
46565
46764
  });
46566
- const _sfc_main$t = defineComponent({
46765
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
46766
+ __name: "VChip",
46767
+ props: {
46768
+ unstyled: unstyledProp,
46769
+ variant: variantProp
46770
+ },
46771
+ setup(__props) {
46772
+ const props = __props;
46773
+ const { settings: settings2 } = useSettings();
46774
+ const isUnstyled = settings2.global.unstyled || settings2.components.chip.unstyled || props.unstyled;
46775
+ return (_ctx, _cache) => {
46776
+ return openBlock(), createElementBlock("div", {
46777
+ class: normalizeClass(`vuetiful-chip ${unref(isUnstyled) ? "" : "chip"} variant-${__props.variant}`)
46778
+ }, [
46779
+ renderSlot(_ctx.$slots, "default")
46780
+ ], 2);
46781
+ };
46782
+ }
46783
+ });
46784
+ var _export_sfc = (sfc, props) => {
46785
+ const target = sfc.__vccOpts || sfc;
46786
+ for (const [key, val] of props) {
46787
+ target[key] = val;
46788
+ }
46789
+ return target;
46790
+ };
46791
+ const _sfc_main$u = defineComponent({
46567
46792
  props: {
46568
46793
  bgLight: {
46569
46794
  type: String,
@@ -46654,9 +46879,9 @@ const _sfc_main$t = defineComponent({
46654
46879
  };
46655
46880
  }
46656
46881
  });
46657
- const _hoisted_1$e = ["aria-checked", "title"];
46658
- const _hoisted_2$7 = ["d"];
46659
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
46882
+ const _hoisted_1$a = ["aria-checked", "title"];
46883
+ const _hoisted_2$6 = ["d"];
46884
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
46660
46885
  return openBlock(), createElementBlock("div", {
46661
46886
  class: normalizeClass(`lightswitch-track ${_ctx.classesTrack}`),
46662
46887
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onToggleHandler && _ctx.onToggleHandler(...args)),
@@ -46680,12 +46905,12 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
46680
46905
  createElementVNode("path", {
46681
46906
  fill: "currentColor",
46682
46907
  d: _ctx.currentMode ? _ctx.svgPath.sun : _ctx.svgPath.moon
46683
- }, null, 8, _hoisted_2$7)
46908
+ }, null, 8, _hoisted_2$6)
46684
46909
  ], 2))
46685
46910
  ], 2)
46686
- ], 42, _hoisted_1$e);
46911
+ ], 42, _hoisted_1$a);
46687
46912
  }
46688
- var VLightSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$2]]);
46913
+ var VLightSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$1]]);
46689
46914
  function u$2(r2, n2, ...a2) {
46690
46915
  if (r2 in n2) {
46691
46916
  let e2 = n2[r2];
@@ -47796,7 +48021,7 @@ let j = Symbol("TabsSSRContext"), xe = defineComponent({ name: "TabGroup", emits
47796
48021
  return !m2.value && a2.unmount && !a2.static ? h$1(f$1, { as: "span", ...h2 }) : H$2({ ourProps: h2, theirProps: w2, slot: r2, attrs: v2, slots: i2, features: N$1.Static | N$1.RenderStrategy, visible: m2.value, name: "TabPanel" });
47797
48022
  };
47798
48023
  } });
47799
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
48024
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
47800
48025
  __name: "VRadioDescription",
47801
48026
  props: {
47802
48027
  as: {
@@ -47806,7 +48031,10 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
47806
48031
  },
47807
48032
  setup(__props) {
47808
48033
  return (_ctx, _cache) => {
47809
- return openBlock(), createBlock(unref(Se$1), { as: __props.as }, {
48034
+ return openBlock(), createBlock(unref(Se$1), {
48035
+ as: __props.as,
48036
+ class: "vuetiful-radio-group-description"
48037
+ }, {
47810
48038
  default: withCtx(() => [
47811
48039
  renderSlot(_ctx.$slots, "default")
47812
48040
  ]),
@@ -47815,7 +48043,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
47815
48043
  };
47816
48044
  }
47817
48045
  });
47818
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
48046
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
47819
48047
  __name: "VRadioGroup",
47820
48048
  props: {
47821
48049
  as: {
@@ -47836,7 +48064,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
47836
48064
  },
47837
48065
  hover: {
47838
48066
  type: String,
47839
- default: "hover:variant-ghost"
48067
+ default: "hover:variant-ghost hover:text-surface-900 dark:hover:text-surface-50"
47840
48068
  },
47841
48069
  background: {
47842
48070
  type: String,
@@ -47845,6 +48073,14 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
47845
48073
  text: {
47846
48074
  type: String,
47847
48075
  default: "text-surface-900 dark:text-surface-50"
48076
+ },
48077
+ classItem: {
48078
+ type: String,
48079
+ default: ""
48080
+ },
48081
+ unstyled: {
48082
+ type: Boolean,
48083
+ default: false
47848
48084
  }
47849
48085
  },
47850
48086
  emits: ["update:modelValue"],
@@ -47865,13 +48101,16 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
47865
48101
  );
47866
48102
  provide("active", props.active);
47867
48103
  provide("hover", props.hover);
48104
+ provide("classItem", props.classItem);
48105
+ const { settings: settings2 } = useSettings();
48106
+ const isUnstyled = settings2.global.unstyled || settings2.components.radioGroup.unstyled || props.unstyled;
47868
48107
  return (_ctx, _cache) => {
47869
48108
  return openBlock(), createBlock(unref(ke), {
47870
48109
  "data-test": "radio-group",
47871
48110
  as: __props.as,
47872
48111
  disabled: __props.disabled,
47873
48112
  by: __props.by,
47874
- class: normalizeClass(`radio-group inline-flex gap-1 p-1 ${__props.background} ${__props.text} border-token border-surface-400-500-token rounded-container-token`),
48113
+ class: normalizeClass(`vuetiful-radio-group inline-flex ${unref(isUnstyled) ? "" : `gap-1 p-1 border-token border-surface-400-500-token rounded-container-token`} ${__props.background} ${__props.text}`),
47875
48114
  modelValue: parentModelValue.value,
47876
48115
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => parentModelValue.value = $event)
47877
48116
  }, {
@@ -47883,23 +48122,31 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
47883
48122
  };
47884
48123
  }
47885
48124
  });
47886
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
48125
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
47887
48126
  __name: "VRadioItem",
47888
48127
  props: {
47889
48128
  value: {
47890
48129
  type: [String, Number, Boolean, Object],
47891
48130
  required: true
48131
+ },
48132
+ unstyled: {
48133
+ type: Boolean,
48134
+ default: false
47892
48135
  }
47893
48136
  },
47894
48137
  setup(__props) {
48138
+ const props = __props;
47895
48139
  const active = inject("active");
47896
48140
  const hover = inject("hover");
48141
+ const classItem = inject("classItem");
48142
+ const { settings: settings2 } = useSettings();
48143
+ const isUnstyled = settings2.global.unstyled || settings2.components.radioItem.unstyled || props.unstyled;
47897
48144
  return (_ctx, _cache) => {
47898
48145
  return openBlock(), createBlock(unref(Ee), { value: __props.value }, {
47899
48146
  default: withCtx(({ checked, disabled }) => [
47900
48147
  createElementVNode("div", {
47901
48148
  "data-test": "radio-item",
47902
- class: normalizeClass(`radio-item px-4 py-1 text-center text-base rounded-token ${checked ? unref(active) : unref(hover)} ${disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"}`)
48149
+ class: normalizeClass(`vuetiful-radio-item ${unref(isUnstyled) ? "" : `px-4 py-1 text-center text-base rounded-token`} ${checked ? unref(active) : unref(hover)} ${disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"} ${unref(classItem)}`)
47903
48150
  }, [
47904
48151
  renderSlot(_ctx.$slots, "default")
47905
48152
  ], 2)
@@ -47909,7 +48156,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
47909
48156
  };
47910
48157
  }
47911
48158
  });
47912
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
48159
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
47913
48160
  __name: "VRadioLabel",
47914
48161
  props: {
47915
48162
  as: {
@@ -47919,7 +48166,10 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
47919
48166
  },
47920
48167
  setup(__props) {
47921
48168
  return (_ctx, _cache) => {
47922
- return openBlock(), createBlock(unref(we), { as: __props.as }, {
48169
+ return openBlock(), createBlock(unref(we), {
48170
+ as: __props.as,
48171
+ class: "vuetiful-radio-label"
48172
+ }, {
47923
48173
  default: withCtx(() => [
47924
48174
  renderSlot(_ctx.$slots, "default")
47925
48175
  ]),
@@ -47928,11 +48178,11 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
47928
48178
  };
47929
48179
  }
47930
48180
  });
47931
- const _hoisted_1$d = {
48181
+ const _hoisted_1$9 = {
47932
48182
  key: 0,
47933
48183
  class: "sr-only"
47934
48184
  };
47935
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
48185
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
47936
48186
  __name: "VSwitch",
47937
48187
  props: {
47938
48188
  modelValue: {
@@ -47943,15 +48193,11 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
47943
48193
  type: Boolean,
47944
48194
  default: false
47945
48195
  },
47946
- size: {
47947
- type: String,
47948
- default: "md"
47949
- },
47950
- switchClass: {
48196
+ classTrack: {
47951
48197
  type: String,
47952
48198
  default: "variant-filled"
47953
48199
  },
47954
- thumbClass: {
48200
+ classThumb: {
47955
48201
  type: String,
47956
48202
  default: "bg-surface-100-800-token"
47957
48203
  },
@@ -47962,7 +48208,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
47962
48208
  name: {
47963
48209
  type: String,
47964
48210
  default: ""
47965
- }
48211
+ },
48212
+ size: sizeProp,
48213
+ unstyled: unstyledProp
47966
48214
  },
47967
48215
  emits: ["update:modelValue"],
47968
48216
  setup(__props, { emit }) {
@@ -47992,13 +48240,14 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
47992
48240
  return "w-20 h-10";
47993
48241
  case "xl":
47994
48242
  return "w-24 h-12";
47995
- default:
47996
- return props.size;
47997
48243
  }
47998
48244
  });
48245
+ const { settings: settings2 } = useSettings();
48246
+ const isUnstyled = settings2.global.unstyled || settings2.components.switch.unstyled || props.unstyled;
47999
48247
  return (_ctx, _cache) => {
48000
48248
  return openBlock(), createBlock(unref(ue), {
48001
- class: normalizeClass(`slide-toggle rounded-container-token ${__props.disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"}`),
48249
+ "data-test": "switch",
48250
+ class: normalizeClass(`vuetiful-slide-toggle ${unref(isUnstyled) ? "" : `rounded-container-token ${__props.disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"}`}`),
48002
48251
  name: __props.name,
48003
48252
  as: __props.as,
48004
48253
  modelValue: parentModelValue.value,
@@ -48006,13 +48255,19 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
48006
48255
  }, {
48007
48256
  default: withCtx(({ checked }) => [
48008
48257
  createElementVNode("div", {
48009
- class: normalizeClass(`slide-toggle-track flex transition-all duration-[150ms] border-token rounded-token ${unref(trackSize)} ${__props.disabled ? "cursor-not-allowed" : "cursor-pointer"} ${__props.switchClass}`)
48258
+ "data-test": "switch-track",
48259
+ class: normalizeClass(`vuetiful-slide-toggle-track flex ${unref(isUnstyled) ? "" : `transition-all duration-[150ms] border-token rounded-token`}
48260
+ ${__props.disabled ? "cursor-not-allowed" : "cursor-pointer"}
48261
+ ${unref(trackSize)} ${__props.classTrack}`)
48010
48262
  }, [
48011
- _ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_1$d, [
48263
+ _ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_1$9, [
48012
48264
  renderSlot(_ctx.$slots, "default")
48013
48265
  ])) : createCommentVNode("", true),
48014
48266
  createElementVNode("div", {
48015
- class: normalizeClass(`slide-toggle-thumb h-full w-[50%] scale-[0.8] shadow transition-all duration-[150ms] rounded-token ${checked ? "translate-x-full" : "opacity-90"} ${__props.disabled ? "cursor-not-allowed" : "cursor-pointer"} ${__props.thumbClass} bg-opacity-90`)
48267
+ "data-test": "switch-thumb",
48268
+ class: normalizeClass(`vuetiful-slide-toggle-thumb w-[50%] scale-[0.8] ${unref(isUnstyled) ? "" : `bg-opactiy-90 shadow transition-all duration-[150ms] rounded-token `}
48269
+ ${__props.disabled ? "cursor-not-allowed" : "cursor-pointer"}
48270
+ ${checked ? "translate-x-full" : `${unref(isUnstyled) ? "" : "opacity-90"}`} ${__props.classThumb}`)
48016
48271
  }, null, 2)
48017
48272
  ], 2)
48018
48273
  ]),
@@ -48021,7 +48276,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
48021
48276
  };
48022
48277
  }
48023
48278
  });
48024
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
48279
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
48025
48280
  __name: "VSwitchDescription",
48026
48281
  props: {
48027
48282
  as: {
@@ -48031,7 +48286,10 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
48031
48286
  },
48032
48287
  setup(__props) {
48033
48288
  return (_ctx, _cache) => {
48034
- return openBlock(), createBlock(unref(ce), { as: __props.as }, {
48289
+ return openBlock(), createBlock(unref(ce), {
48290
+ class: "vuetiful-switch-description",
48291
+ as: __props.as
48292
+ }, {
48035
48293
  default: withCtx(() => [
48036
48294
  renderSlot(_ctx.$slots, "default")
48037
48295
  ]),
@@ -48040,17 +48298,20 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
48040
48298
  };
48041
48299
  }
48042
48300
  });
48043
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
48301
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
48044
48302
  __name: "VSwitchGroup",
48045
48303
  props: {
48046
48304
  as: {
48047
48305
  type: String,
48048
- default: "template"
48306
+ default: "div"
48049
48307
  }
48050
48308
  },
48051
48309
  setup(__props) {
48052
48310
  return (_ctx, _cache) => {
48053
- return openBlock(), createBlock(unref(ae), { as: __props.as }, {
48311
+ return openBlock(), createBlock(unref(ae), {
48312
+ class: "vuetiful-switch-group",
48313
+ as: __props.as
48314
+ }, {
48054
48315
  default: withCtx(() => [
48055
48316
  renderSlot(_ctx.$slots, "default")
48056
48317
  ]),
@@ -48059,7 +48320,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
48059
48320
  };
48060
48321
  }
48061
48322
  });
48062
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
48323
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
48063
48324
  __name: "VSwitchLabel",
48064
48325
  props: {
48065
48326
  as: {
@@ -48074,6 +48335,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
48074
48335
  setup(__props) {
48075
48336
  return (_ctx, _cache) => {
48076
48337
  return openBlock(), createBlock(unref(de), {
48338
+ class: "vuetiful-switch-label",
48077
48339
  as: __props.as,
48078
48340
  passive: __props.passive
48079
48341
  }, {
@@ -48085,129 +48347,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
48085
48347
  };
48086
48348
  }
48087
48349
  });
48088
- const selectedRailTile = ref("");
48089
- const useRail = () => {
48090
- return {
48091
- selectedRailTile
48092
- };
48093
- };
48094
- const drawer = reactive({
48095
- id: "default",
48096
- open: false,
48097
- position: "left",
48098
- duration: 300,
48099
- regionBackdrop: "",
48100
- regionDrawer: ""
48101
- });
48102
- const useDrawer = () => {
48103
- const open = (settings) => {
48104
- var _a, _b, _c, _d, _e;
48105
- drawer.open = true;
48106
- drawer.id = (_a = settings == null ? void 0 : settings.id) != null ? _a : "default";
48107
- drawer.duration = (_b = settings == null ? void 0 : settings.duration) != null ? _b : 300;
48108
- drawer.regionBackdrop = (_c = settings == null ? void 0 : settings.regionBackdrop) != null ? _c : "";
48109
- drawer.regionDrawer = (_d = settings == null ? void 0 : settings.regionDrawer) != null ? _d : "";
48110
- drawer.position = (_e = settings == null ? void 0 : settings.position) != null ? _e : "left";
48111
- };
48112
- const close = () => {
48113
- drawer.open = false;
48114
- };
48115
- return {
48116
- drawer: readonly(drawer),
48117
- open,
48118
- close
48119
- };
48120
- };
48121
- const usePlatform = () => {
48122
- const isBrowser2 = typeof window !== "undefined";
48123
- return {
48124
- isBrowser: isBrowser2
48125
- };
48126
- };
48127
- const { isBrowser: isBrowser$1 } = usePlatform();
48128
- const MODE = {
48129
- LIGHT: true,
48130
- DARK: false
48131
- };
48132
- const modeOsPrefers = ref(MODE.DARK);
48133
- const currentMode = ref(MODE.DARK);
48134
- const modeUserPrefers = ref(void 0);
48135
- const isDark = computed(() => currentMode.value === MODE.DARK);
48136
- const useDarkMode = () => {
48137
- const getModeOsPrefers = () => {
48138
- let prefersLightMode = false;
48139
- if (isBrowser$1)
48140
- prefersLightMode = window.matchMedia("(prefers-color-scheme: light)").matches;
48141
- setModeOsPrefers(prefersLightMode);
48142
- return prefersLightMode;
48143
- };
48144
- const getModeUserPrefers = () => {
48145
- if (isBrowser$1) {
48146
- const mode = localStorage.getItem("modeUserPrefers");
48147
- if (mode !== null)
48148
- modeUserPrefers.value = mode === "true";
48149
- }
48150
- return modeUserPrefers.value;
48151
- };
48152
- const getModeAutoPrefers = () => {
48153
- const os = getModeOsPrefers();
48154
- const user = getModeUserPrefers();
48155
- if (user === void 0)
48156
- return os;
48157
- return user;
48158
- };
48159
- const setModeOsPrefers = (value) => {
48160
- modeOsPrefers.value = value;
48161
- if (isBrowser$1) {
48162
- localStorage.setItem("modeOsPrefers", value.toString());
48163
- }
48164
- };
48165
- const setModeUserPrefers = (value) => {
48166
- modeUserPrefers.value = value;
48167
- if (isBrowser$1) {
48168
- localStorage.setItem("modeUserPrefers", value.toString());
48169
- }
48170
- };
48171
- const setModeCurrent = (value) => {
48172
- const elemHtmlClasses = document.documentElement.classList;
48173
- const classDark = "dark";
48174
- value === MODE.LIGHT ? elemHtmlClasses.remove(classDark) : elemHtmlClasses.add(classDark);
48175
- currentMode.value = value;
48176
- };
48177
- const initializeMode = () => {
48178
- const mode = getModeAutoPrefers();
48179
- setModeCurrent(mode);
48180
- };
48181
- const autoModeWatcher = () => {
48182
- const mql = window.matchMedia("(prefers-color-scheme: light)");
48183
- const setMode = (value) => {
48184
- const elemHtmlClasses = document.documentElement.classList;
48185
- const classDark = `dark`;
48186
- value === MODE.LIGHT ? elemHtmlClasses.remove(classDark) : elemHtmlClasses.add(classDark);
48187
- setModeCurrent(value);
48188
- };
48189
- setMode(mql.matches);
48190
- mql.onchange = () => {
48191
- setMode(mql.matches);
48192
- };
48193
- };
48194
- return {
48195
- modeOsPrefers: readonly(modeOsPrefers),
48196
- modeUserPrefers: readonly(modeUserPrefers),
48197
- currentMode: readonly(currentMode),
48198
- isDark: readonly(isDark),
48199
- getModeOsPrefers,
48200
- getModeUserPrefers,
48201
- getModeAutoPrefers,
48202
- setModeUserPrefers,
48203
- setModeCurrent,
48204
- autoModeWatcher,
48205
- initializeMode,
48206
- MODE
48207
- };
48208
- };
48209
- const _hoisted_1$c = ["aria-labelledby", "aria-describedby"];
48210
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
48350
+ const _hoisted_1$8 = ["aria-labelledby", "aria-describedby"];
48351
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
48211
48352
  __name: "VDrawer",
48212
48353
  props: {
48213
48354
  regionBackdrop: {
@@ -48271,7 +48412,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
48271
48412
  "aria-describedby": unref(describedby)
48272
48413
  }, [
48273
48414
  renderSlot(_ctx.$slots, "default")
48274
- ], 10, _hoisted_1$c)) : createCommentVNode("", true)
48415
+ ], 10, _hoisted_1$8)) : createCommentVNode("", true)
48275
48416
  ]),
48276
48417
  _: 3
48277
48418
  }, 8, ["name"]),
@@ -48295,9 +48436,9 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
48295
48436
  }
48296
48437
  });
48297
48438
  var VPreview_vue_vue_type_style_index_0_scoped_true_lang = "";
48298
- const _withScopeId$3 = (n2) => (pushScopeId("data-v-0d055d3d"), n2 = n2(), popScopeId(), n2);
48299
- const _hoisted_1$b = { class: "vuetiful-previewer overflow-hidden shadow-2xl shadow-surface-500/10 rounded-container-token dark:shadow-black/10" };
48300
- const _hoisted_2$6 = { class: "flex items-center gap-2" };
48439
+ const _withScopeId$3 = (n2) => (pushScopeId("data-v-73195296"), n2 = n2(), popScopeId(), n2);
48440
+ const _hoisted_1$7 = { class: "vuetiful-previewer overflow-hidden shadow-2xl shadow-surface-500/10 rounded-container-token dark:shadow-black/10" };
48441
+ const _hoisted_2$5 = { class: "flex items-center gap-2" };
48301
48442
  const _hoisted_3$4 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("svg", {
48302
48443
  class: "icon",
48303
48444
  xmlns: "http://www.w3.org/2000/svg",
@@ -48347,7 +48488,7 @@ const _hoisted_9$1 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ create
48347
48488
  }, [
48348
48489
  /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z" })
48349
48490
  ], -1));
48350
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
48491
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
48351
48492
  __name: "VPreview",
48352
48493
  props: {
48353
48494
  hideMobileToggle: {
@@ -48403,17 +48544,17 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48403
48544
  const swatches = ref(false);
48404
48545
  const toggleSwatches = () => swatches.value = !swatches.value;
48405
48546
  return (_ctx, _cache) => {
48406
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
48547
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
48407
48548
  createElementVNode("header", {
48408
48549
  class: normalizeClass(`vuetiful-previewer-header flex items-center justify-between gap-4 p-4 bg-surface-200-700-token ${__props.regionHeader}`)
48409
48550
  }, [
48410
- createElementVNode("div", _hoisted_2$6, [
48411
- createVNode(unref(_sfc_main$r), {
48551
+ createElementVNode("div", _hoisted_2$5, [
48552
+ createVNode(unref(_sfc_main$s), {
48412
48553
  modelValue: tabView.value,
48413
48554
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => tabView.value = $event)
48414
48555
  }, {
48415
48556
  default: withCtx(() => [
48416
- createVNode(unref(_sfc_main$q), {
48557
+ createVNode(unref(_sfc_main$r), {
48417
48558
  "data-test": "radio-item-preview",
48418
48559
  value: "preview",
48419
48560
  title: "Preview"
@@ -48425,7 +48566,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48425
48566
  ]),
48426
48567
  _: 3
48427
48568
  }),
48428
- createVNode(unref(_sfc_main$q), {
48569
+ createVNode(unref(_sfc_main$r), {
48429
48570
  "data-test": "radio-item-code",
48430
48571
  value: "code",
48431
48572
  title: "Code"
@@ -48440,14 +48581,14 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48440
48581
  ]),
48441
48582
  _: 3
48442
48583
  }, 8, ["modelValue"]),
48443
- !__props.hideMobileToggle && tabView.value === "preview" ? (openBlock(), createBlock(unref(_sfc_main$r), {
48584
+ !__props.hideMobileToggle && tabView.value === "preview" ? (openBlock(), createBlock(unref(_sfc_main$s), {
48444
48585
  key: 0,
48445
48586
  class: "hidden sm:!inline-flex",
48446
48587
  modelValue: radioSize.value,
48447
48588
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => radioSize.value = $event)
48448
48589
  }, {
48449
48590
  default: withCtx(() => [
48450
- createVNode(unref(_sfc_main$q), {
48591
+ createVNode(unref(_sfc_main$r), {
48451
48592
  "data-test": "radio-item-mobile",
48452
48593
  value: "mobile"
48453
48594
  }, {
@@ -48458,7 +48599,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48458
48599
  ]),
48459
48600
  _: 3
48460
48601
  }),
48461
- createVNode(unref(_sfc_main$q), { value: "full" }, {
48602
+ createVNode(unref(_sfc_main$r), { value: "full" }, {
48462
48603
  default: withCtx(() => [
48463
48604
  renderSlot(_ctx.$slots, "desktop-item", {}, () => [
48464
48605
  _hoisted_6$2
@@ -48473,7 +48614,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48473
48614
  !__props.hideSwatches ? (openBlock(), createBlock(unref(_sfc_main$w), {
48474
48615
  key: 0,
48475
48616
  "data-test": "swatch-button",
48476
- class: normalizeClass(`${swatches.value ? "variant-filled" : "variant-ghost"} px-4 py-1 border-token border-surface-400-500-token`),
48617
+ variant: swatches.value ? "filled" : "",
48618
+ class: normalizeClass([
48619
+ "px-4 py-1 border-token border-surface-400-500-token",
48620
+ swatches.value ? "" : "text-center text-base rounded-token hover:variant-ghost hover:text-surface-900 dark:hover:text-surface-50"
48621
+ ]),
48477
48622
  onClick: toggleSwatches,
48478
48623
  title: "Backgrounds"
48479
48624
  }, {
@@ -48483,9 +48628,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48483
48628
  ], true)
48484
48629
  ]),
48485
48630
  _: 3
48486
- }, 8, ["class"])) : createCommentVNode("", true)
48631
+ }, 8, ["variant", "class"])) : createCommentVNode("", true)
48487
48632
  ], 2),
48488
- swatches.value ? (openBlock(), createBlock(unref(_sfc_main$r), {
48633
+ swatches.value ? (openBlock(), createBlock(unref(_sfc_main$s), {
48489
48634
  key: 0,
48490
48635
  "data-test": "swatches",
48491
48636
  class: normalizeClass(`vuetiful-previewer-swatches variant-soft grid grid-cols-6 gap-2 !rounded-none p-4 sm:grid-cols-12`),
@@ -48496,7 +48641,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48496
48641
  }, {
48497
48642
  default: withCtx(() => [
48498
48643
  (openBlock(true), createElementBlock(Fragment, null, renderList(Object.entries(backgrounds), ([key, value], index2) => {
48499
- return openBlock(), createBlock(unref(_sfc_main$q), {
48644
+ return openBlock(), createBlock(unref(_sfc_main$r), {
48500
48645
  value: key,
48501
48646
  key: index2,
48502
48647
  class: normalizeClass(`${value} flex aspect-square cursor-pointer items-center justify-center rounded ring-[1px] ring-surface-500/50`),
@@ -48539,7 +48684,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48539
48684
  tabView.value === "code" ? (openBlock(), createElementBlock("div", {
48540
48685
  key: 2,
48541
48686
  "data-test": "previewer-source",
48542
- class: normalizeClass(`vuetiful-previewer-source p-4 ${backgrounds["neutral"]} ${__props.regionSource}`)
48687
+ class: normalizeClass(`vuetiful-previewer-source p-4 md:p-10 ${backgrounds["neutral"]} ${__props.regionSource}`)
48543
48688
  }, [
48544
48689
  renderSlot(_ctx.$slots, "source", {}, () => [
48545
48690
  createTextVNode("(source)")
@@ -48549,68 +48694,48 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48549
48694
  };
48550
48695
  }
48551
48696
  });
48552
- var VPreview = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-0d055d3d"]]);
48553
- const _hoisted_1$a = { class: "v-rail grid h-full w-[70px] grid-rows-[auto_1fr_auto] gap-0 overflow-y-auto sm:w-20" };
48554
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
48697
+ var VPreview = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-73195296"]]);
48698
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
48555
48699
  __name: "VRail",
48556
48700
  props: {
48557
48701
  active: {
48558
48702
  type: String,
48559
- default: "bg-secondary-active-token"
48703
+ default: "variant-filled"
48560
48704
  },
48561
48705
  hover: {
48562
48706
  type: String,
48563
- default: "hover:bg-secondary-hover-token"
48564
- },
48565
- regionLead: {
48566
- type: String,
48567
- default: ""
48568
- },
48569
- regionDefault: {
48570
- type: String,
48571
- default: ""
48572
- },
48573
- regionTrail: {
48574
- type: String,
48575
- default: ""
48707
+ default: "hover:variant-ghost hover:text-surface-900 dark:hover:text-surface-50"
48576
48708
  }
48577
48709
  },
48578
48710
  setup(__props) {
48579
48711
  const props = __props;
48580
- provide("active", props.active);
48581
- provide("hover", props.hover);
48712
+ const { selectedRailTile: selectedRailTile2 } = useRail();
48713
+ provide("activeRail", props.active);
48714
+ provide("hoverRail", props.hover);
48582
48715
  return (_ctx, _cache) => {
48583
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
48584
- createElementVNode("div", {
48585
- class: normalizeClass(["v-bar-lead", __props.regionLead])
48586
- }, [
48587
- renderSlot(_ctx.$slots, "lead")
48588
- ], 2),
48589
- createElementVNode("div", {
48590
- class: normalizeClass(["v-bar-default", __props.regionDefault])
48591
- }, [
48716
+ return openBlock(), createBlock(unref(_sfc_main$s), {
48717
+ modelValue: unref(selectedRailTile2),
48718
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(selectedRailTile2) ? selectedRailTile2.value = $event : null),
48719
+ unstyled: "",
48720
+ hover: "",
48721
+ active: "",
48722
+ class: "flex h-full w-[70px] flex-col overflow-y-auto"
48723
+ }, {
48724
+ default: withCtx(() => [
48592
48725
  renderSlot(_ctx.$slots, "default")
48593
- ], 2),
48594
- createElementVNode("div", {
48595
- class: normalizeClass(["v-bar-trail", __props.regionTrail])
48596
- }, [
48597
- renderSlot(_ctx.$slots, "trail")
48598
- ], 2)
48599
- ]);
48726
+ ]),
48727
+ _: 3
48728
+ }, 8, ["modelValue"]);
48600
48729
  };
48601
48730
  }
48602
48731
  });
48603
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
48732
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
48604
48733
  __name: "VRailTile",
48605
48734
  props: {
48606
48735
  value: {
48607
48736
  type: String,
48608
48737
  default: ""
48609
48738
  },
48610
- tag: {
48611
- type: String,
48612
- default: "button"
48613
- },
48614
48739
  label: {
48615
48740
  type: String,
48616
48741
  default: ""
@@ -48624,61 +48749,36 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
48624
48749
  default: ""
48625
48750
  }
48626
48751
  },
48627
- emits: ["click"],
48628
- setup(__props, { emit }) {
48629
- const props = __props;
48630
- const attrs = useAttrs();
48752
+ setup(__props) {
48631
48753
  const { selectedRailTile: selectedRailTile2 } = useRail();
48632
- const active = inject("active");
48633
- const hover = inject("hover");
48634
- const activate = () => {
48635
- selectedRailTile2.value = props.value;
48636
- emit("click");
48637
- };
48638
- const clickHandler = (event) => {
48639
- event.preventDefault();
48640
- activate();
48641
- };
48642
- const keydownHandler = (event) => {
48643
- if (["Enter", " "].includes(event.key))
48644
- event.preventDefault();
48645
- if (event.key === "Enter")
48646
- activate();
48647
- };
48648
- const keyupHandler = (event) => {
48649
- if (event.key === " ") {
48650
- event.preventDefault();
48651
- activate();
48652
- }
48653
- };
48754
+ const activeRail = inject("activeRail");
48755
+ const hoverRail = inject("hoverRail");
48654
48756
  return (_ctx, _cache) => {
48655
- return openBlock(), createBlock(resolveDynamicComponent(__props.tag), mergeProps({
48656
- onClick: clickHandler,
48657
- onKeydown: keydownHandler,
48658
- onKeyup: keyupHandler
48659
- }, unref(attrs), {
48660
- class: `app-rail-tile unstyled grid aspect-square w-full cursor-pointer place-content-center place-items-center space-y-1.5 ${unref(hover)} ${unref(selectedRailTile2) === __props.value ? `${unref(active)}` : ""}`
48661
- }), {
48757
+ return openBlock(), createBlock(unref(_sfc_main$r), {
48758
+ unstyled: "",
48759
+ value: __props.value,
48760
+ class: normalizeClass(`vuetiful-rail-tile grid aspect-square w-full cursor-pointer place-content-center place-items-center ${unref(selectedRailTile2) === __props.value ? `${unref(activeRail)}` : `${unref(hoverRail)}`}`)
48761
+ }, {
48662
48762
  default: withCtx(() => [
48663
48763
  _ctx.$slots.default ? (openBlock(), createElementBlock("div", {
48664
48764
  key: 0,
48665
- class: normalizeClass(`app-rail-tile-icon ${__props.regionIcon}`)
48765
+ class: normalizeClass(`vuetiful-rail-tile-icon ${__props.regionIcon}`)
48666
48766
  }, [
48667
48767
  renderSlot(_ctx.$slots, "default")
48668
48768
  ], 2)) : createCommentVNode("", true),
48669
48769
  __props.label ? (openBlock(), createElementBlock("div", {
48670
48770
  key: 1,
48671
- class: normalizeClass(`app-rail-tile-label text-center text-xs font-bold ${__props.regionLabel}`)
48771
+ class: normalizeClass(`vuetiful-rail-tile-label text-center text-xs font-bold ${__props.regionLabel}`)
48672
48772
  }, toDisplayString(__props.label), 3)) : createCommentVNode("", true)
48673
48773
  ]),
48674
48774
  _: 3
48675
- }, 16, ["class"]);
48775
+ }, 8, ["value", "class"]);
48676
48776
  };
48677
48777
  }
48678
48778
  });
48679
- const _hoisted_1$9 = { class: "vuetiful-shell flex h-full w-full flex-col overflow-hidden" };
48680
- const _hoisted_2$5 = { class: "vuetiful-shell-content flex h-full w-full flex-auto overflow-hidden" };
48681
- const _sfc_main$g = defineComponent({
48779
+ const _hoisted_1$6 = { class: "vuetiful-shell flex h-full w-full flex-col overflow-hidden" };
48780
+ const _hoisted_2$4 = { class: "vuetiful-shell-content flex h-full w-full flex-auto overflow-hidden" };
48781
+ const _sfc_main$h = defineComponent({
48682
48782
  __name: "VShell",
48683
48783
  props: {
48684
48784
  regionPage: { type: String, default: "" },
@@ -48693,14 +48793,14 @@ const _sfc_main$g = defineComponent({
48693
48793
  setup(__props) {
48694
48794
  return (_ctx, _cache) => {
48695
48795
  var _a;
48696
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
48796
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
48697
48797
  _ctx.$slots.fixedHeader ? (openBlock(), createElementBlock("header", {
48698
48798
  key: 0,
48699
48799
  class: normalizeClass(`vuetiful-fixed-header ${__props.slotFixedHeader}`)
48700
48800
  }, [
48701
48801
  renderSlot(_ctx.$slots, "fixedHeader")
48702
48802
  ], 2)) : createCommentVNode("", true),
48703
- createElementVNode("div", _hoisted_2$5, [
48803
+ createElementVNode("div", _hoisted_2$4, [
48704
48804
  _ctx.$slots.sidebarLeft ? (openBlock(), createElementBlock("aside", {
48705
48805
  key: 0,
48706
48806
  class: normalizeClass(`vuetiful-sidebar-left overflow-y-auto overflow-x-hidden ${__props.slotSidebarLeft}`)
@@ -48747,9 +48847,9 @@ const _sfc_main$g = defineComponent({
48747
48847
  }
48748
48848
  });
48749
48849
  var VListboxButton_vue_vue_type_style_index_0_scoped_true_lang = "";
48750
- const _withScopeId$2 = (n2) => (pushScopeId("data-v-85546624"), n2 = n2(), popScopeId(), n2);
48751
- const _hoisted_1$8 = { key: 0 };
48752
- const _hoisted_2$4 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("svg", {
48850
+ const _withScopeId$2 = (n2) => (pushScopeId("data-v-5635c35e"), n2 = n2(), popScopeId(), n2);
48851
+ const _hoisted_1$5 = { key: 0 };
48852
+ const _hoisted_2$3 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("svg", {
48753
48853
  class: "icon",
48754
48854
  xmlns: "http://www.w3.org/2000/svg",
48755
48855
  viewBox: "0 0 512 512"
@@ -48763,7 +48863,7 @@ const _hoisted_3$3 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ create
48763
48863
  }, [
48764
48864
  /* @__PURE__ */ createElementVNode("path", { d: "M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z" })
48765
48865
  ], -1));
48766
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
48866
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
48767
48867
  __name: "VListboxButton",
48768
48868
  props: {
48769
48869
  as: {
@@ -48776,16 +48876,19 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
48776
48876
  }
48777
48877
  },
48778
48878
  setup(__props) {
48879
+ const unstyled = inject("unstyled");
48880
+ const { settings: settings2 } = useSettings();
48881
+ const isUnstyled = settings2.global.unstyled || settings2.components.listbox.unstyled || unstyled;
48779
48882
  return (_ctx, _cache) => {
48780
48883
  return openBlock(), createBlock(unref(Fe), {
48781
48884
  as: __props.as,
48782
- class: "variant-filled btn flex w-full justify-between active:scale-[100%]"
48885
+ class: normalizeClass(`vuetiful-listbox-button ${unref(isUnstyled) ? "flex" : "variant-filled btn flex w-full justify-between active:scale-[100%]"}`)
48783
48886
  }, {
48784
48887
  default: withCtx(({ open }) => [
48785
48888
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
48786
- !__props.hideIcon ? (openBlock(), createElementBlock("span", _hoisted_1$8, [
48889
+ !__props.hideIcon ? (openBlock(), createElementBlock("span", _hoisted_1$5, [
48787
48890
  !open ? renderSlot(_ctx.$slots, "open-icon", { key: 0 }, () => [
48788
- _hoisted_2$4
48891
+ _hoisted_2$3
48789
48892
  ], true) : createCommentVNode("", true),
48790
48893
  open ? renderSlot(_ctx.$slots, "close-icon", { key: 1 }, () => [
48791
48894
  _hoisted_3$3
@@ -48793,12 +48896,12 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
48793
48896
  ])) : createCommentVNode("", true)
48794
48897
  ]),
48795
48898
  _: 3
48796
- }, 8, ["as"]);
48899
+ }, 8, ["as", "class"]);
48797
48900
  };
48798
48901
  }
48799
48902
  });
48800
- var VListboxButton = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-85546624"]]);
48801
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
48903
+ var VListboxButton = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-5635c35e"]]);
48904
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
48802
48905
  __name: "VListboxItems",
48803
48906
  props: {
48804
48907
  as: {
@@ -48808,32 +48911,36 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
48808
48911
  static: {
48809
48912
  type: Boolean,
48810
48913
  default: false
48914
+ },
48915
+ unstyled: {
48916
+ type: Boolean,
48917
+ default: false
48811
48918
  }
48812
48919
  },
48813
48920
  setup(__props) {
48921
+ const props = __props;
48814
48922
  const background = inject("background");
48815
48923
  const text = inject("text");
48816
48924
  const horizontal = inject("horizontal");
48925
+ const classItems = inject("classItems");
48926
+ const { settings: settings2 } = useSettings();
48927
+ const isUnstyled = settings2.global.unstyled || settings2.components.listbox.unstyled || props.unstyled;
48817
48928
  return (_ctx, _cache) => {
48818
48929
  return openBlock(), createBlock(unref(Be), {
48819
48930
  as: __props.as,
48820
48931
  static: __props.static,
48821
- class: normalizeClass(`p-4 border-token border-surface-400-500-token rounded-container-token ${unref(background)} ${unref(text)}`)
48932
+ class: normalizeClass(`z-10 ${unref(isUnstyled) ? "" : `rounded-container-token' gap-1 p-4 border-token border-surface-400-500-token`} ${unref(background)} ${unref(text)} ${unref(horizontal) ? "flex" : "flex-col"} ${unref(classItems)}`),
48933
+ "data-test": "listbox-items"
48822
48934
  }, {
48823
48935
  default: withCtx(() => [
48824
- createElementVNode("div", {
48825
- "data-test": "listbox-items",
48826
- class: normalizeClass(`flex ${unref(horizontal) ? "flex" : "flex-col"} gap-1`)
48827
- }, [
48828
- renderSlot(_ctx.$slots, "default")
48829
- ], 2)
48936
+ renderSlot(_ctx.$slots, "default")
48830
48937
  ]),
48831
48938
  _: 3
48832
48939
  }, 8, ["as", "static", "class"]);
48833
48940
  };
48834
48941
  }
48835
48942
  });
48836
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
48943
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
48837
48944
  __name: "VListboxLabel",
48838
48945
  props: {
48839
48946
  as: {
@@ -48843,7 +48950,10 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
48843
48950
  },
48844
48951
  setup(__props) {
48845
48952
  return (_ctx, _cache) => {
48846
- return openBlock(), createBlock(unref(Ae), { as: __props.as }, {
48953
+ return openBlock(), createBlock(unref(Ae), {
48954
+ class: "vuetiful-listbox-label",
48955
+ as: __props.as
48956
+ }, {
48847
48957
  default: withCtx(() => [
48848
48958
  renderSlot(_ctx.$slots, "default")
48849
48959
  ]),
@@ -48852,27 +48962,39 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
48852
48962
  };
48853
48963
  }
48854
48964
  });
48855
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
48965
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
48856
48966
  __name: "VListbox",
48857
48967
  props: {
48968
+ modelValue: je.props["modelValue"],
48858
48969
  by: {
48859
48970
  type: String
48860
48971
  },
48861
48972
  display: {
48862
48973
  type: String
48863
48974
  },
48864
- labelText: {
48975
+ textLabel: {
48865
48976
  type: String
48866
48977
  },
48867
- labelClasses: {
48868
- type: Boolean,
48869
- default: false
48978
+ classLabel: {
48979
+ type: String,
48980
+ default: ""
48870
48981
  },
48871
- buttonText: {
48982
+ textButton: {
48872
48983
  type: String,
48873
48984
  default: "Select an option"
48874
48985
  },
48875
- modelValue: je.props["modelValue"],
48986
+ classButton: {
48987
+ type: String,
48988
+ default: ""
48989
+ },
48990
+ classItem: {
48991
+ type: String,
48992
+ default: ""
48993
+ },
48994
+ classItems: {
48995
+ type: String,
48996
+ default: ""
48997
+ },
48876
48998
  horizontal: {
48877
48999
  type: Boolean,
48878
49000
  default: false
@@ -48887,7 +49009,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
48887
49009
  },
48888
49010
  hover: {
48889
49011
  type: String,
48890
- default: "variant-ghost"
49012
+ default: "hover:variant-ghost"
48891
49013
  },
48892
49014
  background: {
48893
49015
  type: String,
@@ -48896,7 +49018,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
48896
49018
  text: {
48897
49019
  type: String,
48898
49020
  default: "text-surface-900 dark:text-surface-50"
48899
- }
49021
+ },
49022
+ unstyled: unstyledProp
48900
49023
  },
48901
49024
  emits: ["update:modelValue"],
48902
49025
  setup(__props, { emit }) {
@@ -48919,44 +49042,49 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
48919
49042
  provide("background", props.background);
48920
49043
  provide("text", props.text);
48921
49044
  provide("horizontal", props.horizontal);
49045
+ provide("unstyled", props.unstyled);
49046
+ provide("classItem", props.classItem);
49047
+ provide("classItems", props.classItems);
48922
49048
  const showText = computed(() => {
48923
49049
  var _a;
48924
49050
  if (props.display && parentModelValue.value)
48925
49051
  return parentModelValue.value[props.display];
48926
49052
  const length = (_a = parentModelValue.value) == null ? void 0 : _a.length;
48927
49053
  if (props.multiple && length === 0)
48928
- return props.buttonText;
49054
+ return props.textButton;
48929
49055
  if (props.multiple && length === 1)
48930
49056
  return parentModelValue.value[0];
48931
49057
  if (props.multiple && length > 1)
48932
49058
  return `${length} options selected`;
48933
49059
  if (parentModelValue.value)
48934
49060
  return parentModelValue.value;
48935
- return props.buttonText;
49061
+ return props.textButton;
48936
49062
  });
49063
+ const { settings: settings2 } = useSettings();
49064
+ const isUnstyled = settings2.global.unstyled || settings2.components.listbox.unstyled || props.unstyled;
48937
49065
  return (_ctx, _cache) => {
48938
49066
  return openBlock(), createBlock(unref(je), {
48939
- "data-test": "v-listbox",
49067
+ "data-test": "listbox",
48940
49068
  as: "div",
48941
49069
  by: __props.by,
48942
49070
  multiple: __props.multiple,
48943
- class: "vuetiful-listbox relative rounded-container-token",
49071
+ class: normalizeClass(`vuetiful-listbox ${unref(isUnstyled) ? "" : "relative rounded-container-token"}`),
48944
49072
  modelValue: parentModelValue.value,
48945
49073
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => parentModelValue.value = $event)
48946
49074
  }, {
48947
49075
  default: withCtx(() => [
48948
- __props.labelText ? (openBlock(), createBlock(_sfc_main$d, {
49076
+ __props.textLabel ? (openBlock(), createBlock(_sfc_main$e, {
48949
49077
  key: 0,
48950
- class: normalizeClass(__props.labelClasses)
49078
+ class: normalizeClass(__props.classLabel)
48951
49079
  }, {
48952
49080
  default: withCtx(() => [
48953
- createTextVNode(toDisplayString(__props.labelText), 1)
49081
+ createTextVNode(toDisplayString(__props.textLabel), 1)
48954
49082
  ]),
48955
49083
  _: 1
48956
49084
  }, 8, ["class"])) : createCommentVNode("", true),
48957
49085
  createVNode(VListboxButton, {
48958
- "data-test": "v-listbox-button",
48959
- class: normalizeClass(`${__props.background} ${__props.text}`)
49086
+ "data-test": "listbox-button",
49087
+ class: normalizeClass(`${__props.background} ${__props.text} ${__props.classButton}`)
48960
49088
  }, {
48961
49089
  default: withCtx(() => [
48962
49090
  createTextVNode(toDisplayString(unref(showText)), 1)
@@ -48972,38 +49100,54 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
48972
49100
  "leave-to-class": "opacity-0"
48973
49101
  }, {
48974
49102
  default: withCtx(() => [
48975
- createVNode(_sfc_main$e, { class: "absolute mt-1 min-w-full" }, {
49103
+ createVNode(_sfc_main$f, {
49104
+ "data-test": "listbox-items",
49105
+ unstyled: __props.unstyled,
49106
+ class: normalizeClass(`${unref(isUnstyled) ? "" : "absolute mt-1 min-w-full"}`)
49107
+ }, {
48976
49108
  default: withCtx(() => [
48977
49109
  renderSlot(_ctx.$slots, "default")
48978
49110
  ]),
48979
49111
  _: 3
48980
- })
49112
+ }, 8, ["unstyled", "class"])
48981
49113
  ]),
48982
49114
  _: 3
48983
49115
  })
48984
49116
  ]),
48985
49117
  _: 3
48986
- }, 8, ["by", "multiple", "modelValue"]);
49118
+ }, 8, ["by", "multiple", "class", "modelValue"]);
48987
49119
  };
48988
49120
  }
48989
49121
  });
48990
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
49122
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
48991
49123
  __name: "VListboxItem",
48992
49124
  props: {
48993
49125
  value: {
48994
49126
  type: [String, Number, Boolean, Object],
48995
49127
  required: true
49128
+ },
49129
+ unstyled: {
49130
+ type: Boolean,
49131
+ default: false
48996
49132
  }
48997
49133
  },
48998
49134
  setup(__props) {
49135
+ const props = __props;
48999
49136
  const activeClass = inject("active");
49000
49137
  const hoverClass = inject("hover");
49138
+ const classItem = inject("classItem");
49139
+ const { settings: settings2 } = useSettings();
49140
+ const isUnstyled = settings2.global.unstyled || settings2.components.listboxItem.unstyled || props.unstyled;
49001
49141
  return (_ctx, _cache) => {
49002
49142
  return openBlock(), createBlock(unref(Ke), { value: __props.value }, {
49003
49143
  default: withCtx(({ selected, disabled, active }) => [
49004
49144
  createElementVNode("div", {
49005
- "data-test": "v-listbox-item",
49006
- class: normalizeClass(`vuetiful-listbox-item px-4 py-1 text-base rounded-token ${selected ? unref(activeClass) : `hover:${unref(hoverClass)}`} ${disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"} ${active && !selected ? unref(hoverClass) : ""}`)
49145
+ "data-test": "listbox-item",
49146
+ class: normalizeClass(`vuetiful-listbox-item ${unref(isUnstyled) ? "" : "px-4 py-1 text-base rounded-token"}
49147
+ ${selected ? unref(activeClass) : unref(hoverClass)}
49148
+ ${disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"}
49149
+ ${active && !selected ? unref(hoverClass) : ""}
49150
+ ${unref(classItem)}`)
49007
49151
  }, [
49008
49152
  renderSlot(_ctx.$slots, "default")
49009
49153
  ], 2)
@@ -49013,37 +49157,42 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
49013
49157
  };
49014
49158
  }
49015
49159
  });
49016
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
49160
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
49017
49161
  __name: "VTab",
49018
49162
  props: {
49019
49163
  disabled: {
49020
49164
  type: Boolean,
49021
49165
  default: false
49022
- }
49166
+ },
49167
+ unstyled: unstyledProp
49023
49168
  },
49024
49169
  setup(__props) {
49170
+ const props = __props;
49025
49171
  const activeClass = inject("active");
49026
49172
  const hoverClass = inject("hover");
49027
49173
  const vertical = inject("vertical");
49028
49174
  const classTab = inject("classTab");
49029
49175
  const hideSeparator = inject("hideSeparator");
49176
+ const classTabSeparator = inject("classTabSeparator");
49030
49177
  const tabClass = computed(() => {
49031
49178
  return classTab ? classTab : "w-full px-4 py-2";
49032
49179
  });
49180
+ const { settings: settings2 } = useSettings();
49181
+ const isUnstyled = settings2.global.unstyled || settings2.components.tab.unstyled || props.unstyled;
49033
49182
  return (_ctx, _cache) => {
49034
49183
  return openBlock(), createBlock(unref(ye), {
49035
49184
  disabled: __props.disabled,
49036
- class: normalizeClass(`flex ${unref(vertical) ? "flex-row justify-between" : "flex-col"}`)
49185
+ class: normalizeClass(["vuetiful-tab", `flex ${unref(vertical) ? "flex-row justify-between" : "flex-col"}`])
49037
49186
  }, {
49038
49187
  default: withCtx(({ selected }) => [
49039
49188
  createElementVNode("div", {
49040
49189
  "data-test": "slot-container",
49041
- class: normalizeClass(`text-base rounded-token ${selected ? unref(activeClass) : unref(hoverClass)} ${unref(tabClass)}`)
49190
+ class: normalizeClass(["vuetiful-tab-content", `text-base ${unref(isUnstyled) ? "" : "rounded-token"} ${selected ? unref(activeClass) : unref(hoverClass)} ${unref(tabClass)}`])
49042
49191
  }, [
49043
49192
  renderSlot(_ctx.$slots, "default")
49044
49193
  ], 2),
49045
49194
  withDirectives(createElementVNode("div", {
49046
- class: normalizeClass(`z-10 border-surface-900-50-token ${unref(vertical) ? "mr-[-2px] h-full border-r-2" : "mb-[-2px] border-b-2"}`)
49195
+ class: normalizeClass(["vuetiful-tab-separator", `z-10 ${unref(vertical) ? "mr-[-2px] h-full border-r-2" : "mb-[-2px] w-full border-b-2"} ${unref(classTabSeparator)}`])
49047
49196
  }, null, 2), [
49048
49197
  [vShow, selected && !unref(hideSeparator)]
49049
49198
  ])
@@ -49053,11 +49202,11 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
49053
49202
  };
49054
49203
  }
49055
49204
  });
49056
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
49205
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
49057
49206
  __name: "VTabPanel",
49058
49207
  setup(__props) {
49059
49208
  return (_ctx, _cache) => {
49060
- return openBlock(), createBlock(unref(ge), null, {
49209
+ return openBlock(), createBlock(unref(ge), { class: "vuetiful-tab-panel" }, {
49061
49210
  default: withCtx(() => [
49062
49211
  renderSlot(_ctx.$slots, "default")
49063
49212
  ]),
@@ -49066,7 +49215,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
49066
49215
  };
49067
49216
  }
49068
49217
  });
49069
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
49218
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
49070
49219
  __name: "VTabs",
49071
49220
  props: {
49072
49221
  hideSeparator: {
@@ -49099,12 +49248,17 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
49099
49248
  },
49100
49249
  classSeparator: {
49101
49250
  type: String,
49102
- default: "border border-surface-400-500-token"
49251
+ default: "border-surface-400-500-token"
49252
+ },
49253
+ classTabSeparator: {
49254
+ type: String,
49255
+ default: "border-surface-900-50-token"
49103
49256
  },
49104
49257
  defaultIndex: {
49105
49258
  type: Number,
49106
49259
  default: 0
49107
- }
49260
+ },
49261
+ unstyled: unstyledProp
49108
49262
  },
49109
49263
  setup(__props) {
49110
49264
  const props = __props;
@@ -49113,17 +49267,22 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
49113
49267
  provide("vertical", props.vertical);
49114
49268
  provide("classTab", props.classTab);
49115
49269
  provide("hideSeparator", props.hideSeparator);
49270
+ provide("classTabSeparator", props.classTabSeparator);
49271
+ const { settings: settings2 } = useSettings();
49272
+ const isUnstyled = settings2.global.unstyled || settings2.components.tabs.unstyled || props.unstyled;
49116
49273
  return (_ctx, _cache) => {
49117
49274
  return openBlock(), createBlock(unref(xe), {
49118
49275
  as: "div",
49119
49276
  vertical: __props.vertical,
49120
49277
  defaultIndex: __props.defaultIndex,
49121
- class: normalizeClass(`${__props.vertical ? "flex" : ""}`)
49278
+ class: normalizeClass(["vuetiful-tab-group", `${__props.vertical ? "flex" : ""}`])
49122
49279
  }, {
49123
49280
  default: withCtx(() => [
49124
49281
  createVNode(unref(Ie), {
49125
49282
  "data-test": "vuetiful-tab-list",
49126
- class: normalizeClass(`vuetiful-tab-list flex ${__props.vertical ? "flex-col" : ""} ${__props.vertical ? "!rounded-br-none !rounded-tr-none" : "!rounded-bl-none !rounded-br-none"} rounded-container-token ${__props.classTabs}`)
49283
+ class: normalizeClass(`vuetiful-tab-list flex ${__props.vertical ? "flex-col" : ""}
49284
+ ${unref(isUnstyled) ? "" : `${__props.vertical ? "!rounded-br-none !rounded-tr-none" : "!rounded-bl-none !rounded-br-none"} rounded-container-token `}
49285
+ ${__props.classTabs}`)
49127
49286
  }, {
49128
49287
  default: withCtx(() => [
49129
49288
  renderSlot(_ctx.$slots, "tabs")
@@ -49133,11 +49292,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
49133
49292
  !__props.hideSeparator ? (openBlock(), createElementBlock("div", {
49134
49293
  key: 0,
49135
49294
  "data-test": "vuetiful-tab-separator",
49136
- class: normalizeClass(`${__props.classSeparator}`)
49295
+ class: normalizeClass(`border ${__props.classSeparator}`)
49137
49296
  }, null, 2)) : createCommentVNode("", true),
49138
49297
  createVNode(unref(Se), {
49139
49298
  "data-test": "vuetiful-tab-panels",
49140
- class: normalizeClass(`vuetiful-tab-panels ${__props.vertical ? "!rounded-bl-none !rounded-tl-none" : "!rounded-tl-none !rounded-tr-none"} rounded-container-token ${__props.classPanels}`)
49299
+ class: normalizeClass(`vuetiful-tab-panels
49300
+ ${unref(isUnstyled) ? "" : `p-4 ${__props.vertical ? "!rounded-bl-none !rounded-tl-none" : "!rounded-tl-none !rounded-tr-none"} rounded-container-token`} ${__props.classPanels}`)
49141
49301
  }, {
49142
49302
  default: withCtx(() => [
49143
49303
  renderSlot(_ctx.$slots, "default")
@@ -49150,58 +49310,72 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
49150
49310
  };
49151
49311
  }
49152
49312
  });
49153
- const _hoisted_1$7 = { class: "vuetiful-accordion flex w-full flex-col gap-1" };
49154
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
49313
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
49155
49314
  __name: "VAccordion",
49156
49315
  props: {
49157
- hover: {
49316
+ classQuestion: {
49158
49317
  type: String,
49159
- default: "hover:variant-soft"
49318
+ default: "bg-surface-200-700-token hover:variant-soft"
49160
49319
  },
49161
- background: {
49320
+ classAnswer: {
49162
49321
  type: String,
49163
49322
  default: "bg-surface-200-700-token"
49323
+ },
49324
+ unstyled: {
49325
+ type: Boolean,
49326
+ default: false
49164
49327
  }
49165
49328
  },
49166
49329
  setup(__props) {
49167
49330
  const props = __props;
49168
- provide("hover", props.hover);
49169
- provide("background", props.background);
49331
+ provide("classQuestion", props.classQuestion);
49332
+ provide("classAnswer", props.classAnswer);
49333
+ const { settings: settings2 } = useSettings();
49334
+ const isUnstyled = settings2.global.unstyled || settings2.components.accordion.unstyled || props.unstyled;
49170
49335
  return (_ctx, _cache) => {
49171
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
49336
+ return openBlock(), createElementBlock("div", {
49337
+ class: normalizeClass(`vuetiful-accordion ${unref(isUnstyled) ? "" : "flex w-full flex-col gap-1"}`)
49338
+ }, [
49172
49339
  renderSlot(_ctx.$slots, "default")
49173
- ]);
49340
+ ], 2);
49174
49341
  };
49175
49342
  }
49176
49343
  });
49177
49344
  var VAccordionItem_vue_vue_type_style_index_0_scoped_true_lang = "";
49178
- const _withScopeId$1 = (n2) => (pushScopeId("data-v-75f8b8b4"), n2 = n2(), popScopeId(), n2);
49179
- const _hoisted_1$6 = { class: "vuetiful-accordion-title" };
49180
- const _hoisted_2$3 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("svg", {
49181
- class: "icon",
49345
+ const _withScopeId$1 = (n2) => (pushScopeId("data-v-6c055e30"), n2 = n2(), popScopeId(), n2);
49346
+ const _hoisted_1$4 = { class: "vuetiful-accordion-title" };
49347
+ const _hoisted_2$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("svg", {
49348
+ class: "vuetiful-accordion-item-icon-plus icon",
49182
49349
  xmlns: "http://www.w3.org/2000/svg",
49183
49350
  viewBox: "0 0 448 512"
49184
49351
  }, [
49185
49352
  /* @__PURE__ */ createElementVNode("path", { d: "M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z" })
49186
49353
  ], -1));
49187
49354
  const _hoisted_3$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("svg", {
49188
- class: "icon",
49355
+ class: "vuetiful-accordion-item-icon-minus icon",
49189
49356
  xmlns: "http://www.w3.org/2000/svg",
49190
49357
  viewBox: "0 0 448 512"
49191
49358
  }, [
49192
49359
  /* @__PURE__ */ createElementVNode("path", { d: "M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z" })
49193
49360
  ], -1));
49194
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
49361
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
49195
49362
  __name: "VAccordionItem",
49196
49363
  props: {
49197
49364
  title: {
49198
49365
  type: String,
49199
49366
  required: true
49367
+ },
49368
+ unstyled: {
49369
+ type: Boolean,
49370
+ default: false
49200
49371
  }
49201
49372
  },
49202
49373
  setup(__props) {
49203
- const hover = inject("hover");
49204
- const background = inject("background");
49374
+ const props = __props;
49375
+ const classQuestion = inject("classQuestion");
49376
+ const classAnswer = inject("classAnswer");
49377
+ const { settings: settings2 } = useSettings();
49378
+ const isUnstyled = settings2.global.unstyled || settings2.components.accordionItem.unstyled || props.unstyled;
49205
49379
  return (_ctx, _cache) => {
49206
49380
  return openBlock(), createBlock(unref(Q), {
49207
49381
  class: "vuetiful-accordion-item",
@@ -49209,25 +49383,23 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
49209
49383
  }, {
49210
49384
  default: withCtx(({ open }) => [
49211
49385
  createVNode(unref(V), {
49212
- class: normalizeClass([`${unref(background)} ${unref(hover)} ${open ? "!rounded-bl-none !rounded-br-none" : ""}`, "vuetiful-accordion-item-button w-full rounded-container-token"])
49386
+ class: normalizeClass([`${unref(isUnstyled) ? "" : `${open ? "!rounded-bl-none !rounded-br-none" : ""}`}
49387
+ ${unref(isUnstyled) ? "" : "items-center justify-between p-4 py-2 rounded-container-token hover:cursor-pointer"}
49388
+ ${unref(classQuestion)}`, "vuetiful-accordion-item-button flex w-full"])
49213
49389
  }, {
49214
49390
  default: withCtx(() => [
49215
- createElementVNode("div", {
49216
- class: normalizeClass(["flex items-center justify-between p-4 rounded-container-token hover:cursor-pointer", `${unref(background)} ${unref(hover)} ${open ? "!rounded-bl-none !rounded-br-none" : ""}`])
49217
- }, [
49218
- createElementVNode("span", _hoisted_1$6, toDisplayString(__props.title), 1),
49219
- !open ? renderSlot(_ctx.$slots, "open-item", { key: 0 }, () => [
49220
- _hoisted_2$3
49221
- ], true) : createCommentVNode("", true),
49222
- open ? renderSlot(_ctx.$slots, "close-item", { key: 1 }, () => [
49223
- _hoisted_3$2
49224
- ], true) : createCommentVNode("", true)
49225
- ], 2)
49391
+ createElementVNode("span", _hoisted_1$4, toDisplayString(__props.title), 1),
49392
+ !open ? renderSlot(_ctx.$slots, "open-item", { key: 0 }, () => [
49393
+ _hoisted_2$2
49394
+ ], true) : createCommentVNode("", true),
49395
+ open ? renderSlot(_ctx.$slots, "close-item", { key: 1 }, () => [
49396
+ _hoisted_3$2
49397
+ ], true) : createCommentVNode("", true)
49226
49398
  ]),
49227
49399
  _: 2
49228
49400
  }, 1032, ["class"]),
49229
49401
  createVNode(unref(X), {
49230
- class: normalizeClass(["vuetiful-accordion-item-panel p-4 pt-0 rounded-container-token", `${open ? `${unref(background)} !rounded-tl-none !rounded-tr-none` : ""}`])
49402
+ class: normalizeClass(["vuetiful-accordion-item-panel", `${open ? `${unref(isUnstyled) ? "" : "!rounded-tl-none !rounded-tr-none"}` : ""} ${unref(isUnstyled) ? "" : "p-4 py-2 rounded-container-token"} ${unref(classAnswer)}`])
49231
49403
  }, {
49232
49404
  default: withCtx(() => [
49233
49405
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
@@ -49240,56 +49412,54 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
49240
49412
  };
49241
49413
  }
49242
49414
  });
49243
- var VAccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-75f8b8b4"]]);
49415
+ var VAccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-6c055e30"]]);
49244
49416
  var VAlert_vue_vue_type_style_index_0_scoped_true_lang = "";
49245
- const _withScopeId = (n2) => (pushScopeId("data-v-c395555e"), n2 = n2(), popScopeId(), n2);
49246
- const _hoisted_1$5 = { key: 0 };
49247
- const _hoisted_2$2 = {
49417
+ const _withScopeId = (n2) => (pushScopeId("data-v-5df26a83"), n2 = n2(), popScopeId(), n2);
49418
+ const _hoisted_1$3 = {
49248
49419
  key: 0,
49249
49420
  class: "icon",
49250
49421
  xmlns: "http://www.w3.org/2000/svg",
49251
49422
  viewBox: "0 0 512 512"
49252
49423
  };
49253
- const _hoisted_3$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" }, null, -1));
49254
- const _hoisted_4$1 = [
49255
- _hoisted_3$1
49424
+ const _hoisted_2$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" }, null, -1));
49425
+ const _hoisted_3$1 = [
49426
+ _hoisted_2$1
49256
49427
  ];
49257
- const _hoisted_5$1 = {
49428
+ const _hoisted_4$1 = {
49258
49429
  key: 1,
49259
49430
  class: "icon",
49260
49431
  xmlns: "http://www.w3.org/2000/svg",
49261
49432
  viewBox: "0 0 512 512"
49262
49433
  };
49263
- const _hoisted_6$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z" }, null, -1));
49264
- const _hoisted_7 = [
49265
- _hoisted_6$1
49434
+ const _hoisted_5$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z" }, null, -1));
49435
+ const _hoisted_6$1 = [
49436
+ _hoisted_5$1
49266
49437
  ];
49267
- const _hoisted_8 = {
49438
+ const _hoisted_7 = {
49268
49439
  key: 2,
49269
49440
  class: "icon",
49270
49441
  xmlns: "http://www.w3.org/2000/svg",
49271
49442
  viewBox: "0 0 512 512"
49272
49443
  };
49273
- const _hoisted_9 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" }, null, -1));
49274
- const _hoisted_10 = [
49275
- _hoisted_9
49444
+ const _hoisted_8 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" }, null, -1));
49445
+ const _hoisted_9 = [
49446
+ _hoisted_8
49276
49447
  ];
49277
- const _hoisted_11 = {
49448
+ const _hoisted_10 = {
49278
49449
  key: 3,
49279
49450
  class: "icon",
49280
49451
  xmlns: "http://www.w3.org/2000/svg",
49281
49452
  viewBox: "0 0 512 512"
49282
49453
  };
49283
- const _hoisted_12 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z" }, null, -1));
49284
- const _hoisted_13 = [
49285
- _hoisted_12
49454
+ const _hoisted_11 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z" }, null, -1));
49455
+ const _hoisted_12 = [
49456
+ _hoisted_11
49286
49457
  ];
49287
- const _hoisted_14 = { class: "vuetiful-alert-message flex-auto" };
49288
- const _hoisted_15 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" }, null, -1));
49289
- const _hoisted_16 = [
49290
- _hoisted_15
49458
+ const _hoisted_13 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" }, null, -1));
49459
+ const _hoisted_14 = [
49460
+ _hoisted_13
49291
49461
  ];
49292
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49462
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
49293
49463
  __name: "VAlert",
49294
49464
  props: {
49295
49465
  hideIcon: {
@@ -49307,6 +49477,22 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49307
49477
  type: {
49308
49478
  type: String,
49309
49479
  default: ""
49480
+ },
49481
+ classPre: {
49482
+ type: String,
49483
+ default: ""
49484
+ },
49485
+ classMessage: {
49486
+ type: String,
49487
+ default: ""
49488
+ },
49489
+ classClose: {
49490
+ type: String,
49491
+ default: ""
49492
+ },
49493
+ unstyled: {
49494
+ type: Boolean,
49495
+ default: false
49310
49496
  }
49311
49497
  },
49312
49498
  emits: ["close"],
@@ -49322,8 +49508,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49322
49508
  return "variant-filled-warning";
49323
49509
  case "error":
49324
49510
  return "variant-filled-error";
49325
- default:
49326
- return "variant-filled-primary";
49511
+ case "":
49512
+ return "";
49327
49513
  }
49328
49514
  });
49329
49515
  const close = () => emit("close");
@@ -49332,23 +49518,30 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49332
49518
  close();
49333
49519
  }
49334
49520
  };
49521
+ const { settings: settings2 } = useSettings();
49522
+ const isUnstyled = settings2.global.unstyled || settings2.components.alert.unstyled || props.unstyled;
49335
49523
  return (_ctx, _cache) => {
49336
49524
  return __props.show ? (openBlock(), createElementBlock("aside", {
49337
49525
  key: 0,
49338
- class: normalizeClass(`vuetiful-alert flex w-full flex-row items-center gap-4 p-4 border-token rounded-container-token ${unref(typeBackground)}`)
49526
+ class: normalizeClass(`vuetiful-alert flex ${unref(isUnstyled) ? "" : "w-full items-center gap-4 p-4 border-token rounded-container-token"} ${unref(typeBackground)}`)
49339
49527
  }, [
49340
- !__props.hideIcon ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
49528
+ !__props.hideIcon ? (openBlock(), createElementBlock("div", {
49529
+ key: 0,
49530
+ class: normalizeClass(`vuetiful-alert-pre ${__props.classPre}`)
49531
+ }, [
49341
49532
  _ctx.$slots.pre ? renderSlot(_ctx.$slots, "pre", { key: 0 }, void 0, true) : createCommentVNode("", true),
49342
49533
  !_ctx.$slots.pre ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
49343
- __props.type === "info" ? (openBlock(), createElementBlock("svg", _hoisted_2$2, _hoisted_4$1)) : createCommentVNode("", true),
49344
- __props.type === "success" ? (openBlock(), createElementBlock("svg", _hoisted_5$1, _hoisted_7)) : createCommentVNode("", true),
49345
- __props.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_8, _hoisted_10)) : createCommentVNode("", true),
49346
- __props.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_11, _hoisted_13)) : createCommentVNode("", true)
49534
+ __props.type === "info" ? (openBlock(), createElementBlock("svg", _hoisted_1$3, _hoisted_3$1)) : createCommentVNode("", true),
49535
+ __props.type === "success" ? (openBlock(), createElementBlock("svg", _hoisted_4$1, _hoisted_6$1)) : createCommentVNode("", true),
49536
+ __props.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_7, _hoisted_9)) : createCommentVNode("", true),
49537
+ __props.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_10, _hoisted_12)) : createCommentVNode("", true)
49347
49538
  ], 64)) : createCommentVNode("", true)
49348
- ])) : createCommentVNode("", true),
49349
- createElementVNode("div", _hoisted_14, [
49539
+ ], 2)) : createCommentVNode("", true),
49540
+ createElementVNode("div", {
49541
+ class: normalizeClass(`vuetiful-alert-message ${unref(isUnstyled) ? "" : "flex-auto"} ${__props.classMessage}`)
49542
+ }, [
49350
49543
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
49351
- ]),
49544
+ ], 2),
49352
49545
  renderSlot(_ctx.$slots, "actions", {}, void 0, true),
49353
49546
  __props.showClose ? (openBlock(), createElementBlock("svg", {
49354
49547
  key: 1,
@@ -49356,18 +49549,18 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49356
49549
  tabindex: "0",
49357
49550
  onKeydown: handleKeydown,
49358
49551
  onClick: close,
49359
- class: "icon hover:cursor-pointer",
49552
+ class: normalizeClass(`vuetiful-alert-close-icon icon hover:cursor-pointer ${__props.classClose}`),
49360
49553
  xmlns: "http://www.w3.org/2000/svg",
49361
49554
  viewBox: "0 0 384 512"
49362
- }, _hoisted_16, 32)) : createCommentVNode("", true)
49555
+ }, _hoisted_14, 34)) : createCommentVNode("", true)
49363
49556
  ], 2)) : createCommentVNode("", true);
49364
49557
  };
49365
49558
  }
49366
49559
  });
49367
- var VAlert = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-c395555e"]]);
49560
+ var VAlert = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-5df26a83"]]);
49368
49561
  var VCard_vue_vue_type_style_index_0_lang = "";
49369
- const _hoisted_1$4 = ["tabindex"];
49370
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49562
+ const _hoisted_1$2 = ["tabindex"];
49563
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
49371
49564
  __name: "VCard",
49372
49565
  props: {
49373
49566
  hideSeparator: {
@@ -49382,14 +49575,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49382
49575
  type: String,
49383
49576
  default: "text-surface-900-50-token"
49384
49577
  },
49385
- horizontal: {
49386
- type: Boolean,
49387
- default: false
49388
- },
49389
49578
  clickable: {
49390
49579
  type: Boolean,
49391
49580
  default: false
49392
- }
49581
+ },
49582
+ unstyled: unstyledProp
49393
49583
  },
49394
49584
  emits: ["click"],
49395
49585
  setup(__props, { emit }) {
@@ -49412,61 +49602,84 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49412
49602
  emit("click");
49413
49603
  }
49414
49604
  };
49605
+ const { settings: settings2 } = useSettings();
49606
+ const isUnstyled = settings2.global.unstyled || settings2.components.card.unstyled || props.unstyled;
49415
49607
  return (_ctx, _cache) => {
49416
49608
  return openBlock(), createElementBlock("div", {
49417
49609
  onClick,
49418
49610
  onKeydown,
49419
49611
  tabindex: __props.clickable ? 0 : void 0,
49420
- class: normalizeClass(`vuetiful-card flex border-token rounded-container-token ring-outline-token ${__props.horizontal ? "flex-row" : "flex-col"} ${__props.background} ${__props.text} ${__props.clickable ? "card-hover hover:cursor-pointer" : ""}`)
49612
+ class: normalizeClass(`vuetiful-card flex flex-col ${unref(isUnstyled) ? "" : "border-token rounded-container-token ring-outline-token"} ${__props.background} ${__props.text} ${__props.clickable ? `${unref(isUnstyled) ? "" : "card-hover"} hover:cursor-pointer` : ""}`)
49421
49613
  }, [
49422
49614
  renderSlot(_ctx.$slots, "default")
49423
- ], 42, _hoisted_1$4);
49615
+ ], 42, _hoisted_1$2);
49424
49616
  };
49425
49617
  }
49426
49618
  });
49427
- const _sfc_main$3 = {};
49428
- const _hoisted_1$3 = {
49429
- "data-test": "vuetiful-card-body-content",
49430
- class: "vuetiful-card-body p-4"
49431
- };
49432
- function _sfc_render$1(_ctx, _cache) {
49433
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
49434
- renderSlot(_ctx.$slots, "default")
49435
- ]);
49436
- }
49437
- var VCardBody = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$1]]);
49438
- const _hoisted_1$2 = {
49439
- key: 0,
49440
- "data-test": "vuetiful-card-footer-separator",
49441
- class: "opacity-90"
49442
- };
49443
- const _hoisted_2$1 = {
49444
- "data-test": "vuetiful-card-footer-content",
49445
- class: "vuetiful-card-footer p-4"
49446
- };
49447
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
49619
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
49620
+ __name: "VCardBody",
49621
+ props: {
49622
+ unstyled: unstyledProp
49623
+ },
49624
+ setup(__props) {
49625
+ const props = __props;
49626
+ const { settings: settings2 } = useSettings();
49627
+ const isUnstyled = settings2.global.unstyled || settings2.components.cardBody.unstyled || props.unstyled;
49628
+ return (_ctx, _cache) => {
49629
+ return openBlock(), createElementBlock("div", {
49630
+ "data-test": "vuetiful-card-body-content",
49631
+ class: normalizeClass(`vuetiful-card-body ${unref(isUnstyled) ? "" : "p-4"}`)
49632
+ }, [
49633
+ renderSlot(_ctx.$slots, "default")
49634
+ ], 2);
49635
+ };
49636
+ }
49637
+ });
49638
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
49448
49639
  __name: "VCardFooter",
49640
+ props: {
49641
+ classSeparator: {
49642
+ type: String,
49643
+ default: "opacity-90"
49644
+ },
49645
+ unstyled: unstyledProp
49646
+ },
49449
49647
  setup(__props) {
49648
+ const props = __props;
49450
49649
  const hideSeparator = inject("hideSeparator", false);
49650
+ const attrs = useAttrs();
49651
+ const classAttribute = attrs.class;
49652
+ const { settings: settings2 } = useSettings();
49653
+ const isUnstyled = settings2.global.unstyled || settings2.components.cardBody.unstyled || props.unstyled;
49451
49654
  return (_ctx, _cache) => {
49452
49655
  return openBlock(), createElementBlock(Fragment, null, [
49453
- !unref(hideSeparator) ? (openBlock(), createElementBlock("hr", _hoisted_1$2)) : createCommentVNode("", true),
49454
- createElementVNode("div", _hoisted_2$1, [
49656
+ !unref(hideSeparator) ? (openBlock(), createElementBlock("hr", {
49657
+ key: 0,
49658
+ "data-test": "vuetiful-card-footer-separator",
49659
+ class: normalizeClass(["divider", __props.classSeparator])
49660
+ }, null, 2)) : createCommentVNode("", true),
49661
+ createElementVNode("div", {
49662
+ "data-test": "vuetiful-card-footer-content",
49663
+ class: normalizeClass(`vuetiful-card-footer ${unref(isUnstyled) ? "" : "p-4"} ${unref(classAttribute)}`)
49664
+ }, [
49455
49665
  renderSlot(_ctx.$slots, "default")
49456
- ])
49666
+ ], 2)
49457
49667
  ], 64);
49458
49668
  };
49459
49669
  }
49460
49670
  });
49461
49671
  var VCardHeader_vue_vue_type_style_index_0_lang = "";
49462
- const _hoisted_1$1 = {
49463
- key: 0,
49464
- "data-test": "vuetiful-card-header-separator",
49465
- class: "opacity-90"
49466
- };
49467
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
49672
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
49468
49673
  __name: "VCardHeader",
49674
+ props: {
49675
+ classSeparator: {
49676
+ type: String,
49677
+ default: "opacity-90"
49678
+ },
49679
+ unstyled: unstyledProp
49680
+ },
49469
49681
  setup(__props) {
49682
+ const props = __props;
49470
49683
  const headerRef = ref();
49471
49684
  const hasImageAsChild = computed(() => {
49472
49685
  var _a;
@@ -49477,58 +49690,171 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
49477
49690
  return childrenArray.some((child) => child.tagName === "IMG");
49478
49691
  });
49479
49692
  const hideSeparator = inject("hideSeparator", false);
49693
+ const attrs = useAttrs();
49694
+ const classAttribute = attrs.class;
49695
+ const { settings: settings2 } = useSettings();
49696
+ const isUnstyled = settings2.global.unstyled || settings2.components.cardHeader.unstyled || props.unstyled;
49480
49697
  return (_ctx, _cache) => {
49481
49698
  return openBlock(), createElementBlock(Fragment, null, [
49482
49699
  createElementVNode("div", {
49483
49700
  ref_key: "headerRef",
49484
49701
  ref: headerRef,
49485
49702
  "data-test": "vuetiful-card-header-content",
49486
- class: normalizeClass(`vuetiful-card-header ${unref(hasImageAsChild) ? "" : "p-4"}`)
49703
+ class: normalizeClass(`vuetiful-card-header ${unref(hasImageAsChild) ? "" : `${unref(isUnstyled) ? "" : "p-4"}`} ${unref(classAttribute)}`)
49487
49704
  }, [
49488
49705
  renderSlot(_ctx.$slots, "default")
49489
49706
  ], 2),
49490
- !unref(hideSeparator) ? (openBlock(), createElementBlock("hr", _hoisted_1$1)) : createCommentVNode("", true)
49707
+ !unref(hideSeparator) ? (openBlock(), createElementBlock("hr", {
49708
+ key: 0,
49709
+ "data-test": "vuetiful-card-header-separator",
49710
+ class: normalizeClass(["divider", __props.classSeparator])
49711
+ }, null, 2)) : createCommentVNode("", true)
49491
49712
  ], 64);
49492
49713
  };
49493
49714
  }
49494
49715
  });
49716
+ var githubDark = "";
49717
+ const _hoisted_1$1 = ["innerHTML"];
49718
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
49719
+ __name: "VCodeBlock",
49720
+ props: {
49721
+ language: {
49722
+ type: String,
49723
+ default: "plaintext"
49724
+ },
49725
+ code: {
49726
+ type: String,
49727
+ default: ""
49728
+ },
49729
+ preventOverflow: {
49730
+ type: Boolean,
49731
+ default: false
49732
+ },
49733
+ classHeader: {
49734
+ type: String,
49735
+ default: ""
49736
+ },
49737
+ classLanguage: {
49738
+ type: String,
49739
+ default: ""
49740
+ },
49741
+ classPre: {
49742
+ type: String,
49743
+ default: ""
49744
+ },
49745
+ classCode: {
49746
+ type: String,
49747
+ default: ""
49748
+ },
49749
+ classButton: {
49750
+ type: String,
49751
+ default: ""
49752
+ },
49753
+ buttonText: {
49754
+ type: String,
49755
+ default: "Copy"
49756
+ },
49757
+ buttonCopiedText: {
49758
+ type: String,
49759
+ default: "\u{1F44D}"
49760
+ },
49761
+ unstyled: unstyledProp
49762
+ },
49763
+ emits: ["copy"],
49764
+ setup(__props, { emit }) {
49765
+ const props = __props;
49766
+ const { highlight: highlight2 } = useHighlight();
49767
+ const copyState = ref(false);
49768
+ function languageFormatter(lang) {
49769
+ if (lang === "js")
49770
+ return "javascript";
49771
+ if (lang === "ts")
49772
+ return "typescript";
49773
+ if (["sh", "bash", "zsh", "shell"].includes(lang))
49774
+ return "console";
49775
+ return lang;
49776
+ }
49777
+ function onCopyClick() {
49778
+ copyState.value = true;
49779
+ setTimeout(() => {
49780
+ copyState.value = false;
49781
+ }, 2e3);
49782
+ emit("copy");
49783
+ }
49784
+ const { settings: settings2 } = useSettings();
49785
+ const isUnstyled = settings2.global.unstyled || settings2.components.codeBlock.unstyled || props.unstyled;
49786
+ return (_ctx, _cache) => {
49787
+ return openBlock(), createElementBlock("div", {
49788
+ class: normalizeClass(`vuetiful-code-block code-block ${unref(isUnstyled) ? "" : "max-w-full bg-[#171717] text-sm text-white shadow rounded-container-token"}`)
49789
+ }, [
49790
+ createElementVNode("header", {
49791
+ class: normalizeClass(`vuetiful-code-block-header ${unref(isUnstyled) ? "" : "flex items-center justify-between p-2 pb-0 pl-4 text-xs uppercase text-[#a4a4a4]"} ${__props.classHeader}`)
49792
+ }, [
49793
+ createElementVNode("span", {
49794
+ class: normalizeClass(`vuetiful-code-block-language ${__props.classLanguage}`)
49795
+ }, toDisplayString(languageFormatter(__props.language)), 3),
49796
+ withDirectives((openBlock(), createBlock(unref(_sfc_main$w), {
49797
+ size: "sm",
49798
+ class: normalizeClass(`vuetiful-code-block-button ${__props.classButton ? __props.classButton : "bg-[#171717] dark:bg-[#171717] text-[#a4a4a4] dark:text-[#a4a4a4]"}`),
49799
+ onClick: _cache[0] || (_cache[0] = ($event) => onCopyClick())
49800
+ }, {
49801
+ default: withCtx(() => [
49802
+ createTextVNode(toDisplayString(!copyState.value ? __props.buttonText : __props.buttonCopiedText), 1)
49803
+ ]),
49804
+ _: 1
49805
+ }, 8, ["class"])), [
49806
+ [unref(clipboard), __props.code]
49807
+ ])
49808
+ ], 2),
49809
+ createElementVNode("pre", {
49810
+ class: normalizeClass(`vuetiful-code-block-pre ${unref(isUnstyled) ? "" : "!rounded-t-none bg-transparent p-4 !pt-0"} ${__props.preventOverflow ? "whitespace-pre-wrap break-all" : "overflow-auto"} ${__props.classPre}`)
49811
+ }, [
49812
+ createElementVNode("code", {
49813
+ class: normalizeClass(`vuetiful-code-block-code language-${__props.language} ${__props.classCode}`),
49814
+ innerHTML: unref(highlight2)(__props.code, __props.language)
49815
+ }, null, 10, _hoisted_1$1)
49816
+ ], 2)
49817
+ ], 2);
49818
+ };
49819
+ }
49820
+ });
49495
49821
  var components = /* @__PURE__ */ Object.freeze({
49496
49822
  __proto__: null,
49497
49823
  [Symbol.toStringTag]: "Module",
49498
49824
  VAvatar: _sfc_main$y,
49499
49825
  VButton: _sfc_main$w,
49500
- VBadge,
49501
- VChip,
49502
- VCodeBlock: _sfc_main$u,
49826
+ VBadge: _sfc_main$x,
49827
+ VChip: _sfc_main$v,
49503
49828
  VLightSwitch,
49504
- VRadioGroup: _sfc_main$r,
49505
- VRadioItem: _sfc_main$q,
49506
- VRadioLabel: _sfc_main$p,
49507
- VRadioDescription: _sfc_main$s,
49508
- VSwitchGroup: _sfc_main$m,
49509
- VSwitchLabel: _sfc_main$l,
49510
- VSwitchDescription: _sfc_main$n,
49511
- VSwitch: _sfc_main$o,
49512
- VAccordion: _sfc_main$7,
49829
+ VRadioGroup: _sfc_main$s,
49830
+ VRadioItem: _sfc_main$r,
49831
+ VRadioLabel: _sfc_main$q,
49832
+ VRadioDescription: _sfc_main$t,
49833
+ VSwitchGroup: _sfc_main$n,
49834
+ VSwitchLabel: _sfc_main$m,
49835
+ VSwitchDescription: _sfc_main$o,
49836
+ VSwitch: _sfc_main$p,
49837
+ VAccordion: _sfc_main$8,
49513
49838
  VAccordionItem,
49514
49839
  VAlert,
49515
- VCard: _sfc_main$4,
49516
- VCardBody,
49517
- VCardFooter: _sfc_main$2,
49518
- VCardHeader: _sfc_main$1,
49519
- VDrawer: _sfc_main$k,
49520
- VListbox: _sfc_main$c,
49840
+ VCard: _sfc_main$5,
49841
+ VCardBody: _sfc_main$4,
49842
+ VCardFooter: _sfc_main$3,
49843
+ VCardHeader: _sfc_main$2,
49844
+ VCodeBlock: _sfc_main$1,
49845
+ VDrawer: _sfc_main$l,
49846
+ VListbox: _sfc_main$d,
49521
49847
  VListboxButton,
49522
- VListboxItem: _sfc_main$b,
49523
- VListboxItems: _sfc_main$e,
49524
- VListboxLabel: _sfc_main$d,
49848
+ VListboxItem: _sfc_main$c,
49849
+ VListboxItems: _sfc_main$f,
49850
+ VListboxLabel: _sfc_main$e,
49525
49851
  VPreview,
49526
- VRail: _sfc_main$i,
49527
- VRailTile: _sfc_main$h,
49528
- VShell: _sfc_main$g,
49529
- VTab: _sfc_main$a,
49530
- VTabPanel: _sfc_main$9,
49531
- VTabs: _sfc_main$8
49852
+ VRail: _sfc_main$j,
49853
+ VRailTile: _sfc_main$i,
49854
+ VShell: _sfc_main$h,
49855
+ VTab: _sfc_main$b,
49856
+ VTabPanel: _sfc_main$a,
49857
+ VTabs: _sfc_main$9
49532
49858
  });
49533
49859
  var main = "";
49534
49860
  var tailwind = "";
@@ -49775,4 +50101,4 @@ function install(app) {
49775
50101
  }
49776
50102
  }
49777
50103
  var index = { install };
49778
- export { themeSwitcher as ThemeSwitcher, _sfc_main$7 as VAccordion, VAccordionItem, VAlert, _sfc_main$y as VAvatar, VBadge, _sfc_main$w as VButton, _sfc_main$4 as VCard, VCardBody, _sfc_main$2 as VCardFooter, _sfc_main$1 as VCardHeader, VChip, _sfc_main$u as VCodeBlock, _sfc_main$k as VDrawer, VLightSwitch, _sfc_main$c as VListbox, VListboxButton, _sfc_main$b as VListboxItem, _sfc_main$e as VListboxItems, _sfc_main$d as VListboxLabel, VPreview, _sfc_main$s as VRadioDescription, _sfc_main$r as VRadioGroup, _sfc_main$q as VRadioItem, _sfc_main$p as VRadioLabel, _sfc_main$i as VRail, _sfc_main$h as VRailTile, _sfc_main$g as VShell, _sfc_main$o as VSwitch, _sfc_main$n as VSwitchDescription, _sfc_main$m as VSwitchGroup, _sfc_main$l as VSwitchLabel, _sfc_main$a as VTab, _sfc_main$9 as VTabPanel, _sfc_main$8 as VTabs, index as default, useDarkMode, useDrawer, useHighlight, useRail, useTheme, clipboard as vClipboard };
50104
+ export { themeSwitcher as ThemeSwitcher, _sfc_main$8 as VAccordion, VAccordionItem, VAlert, _sfc_main$y as VAvatar, _sfc_main$x as VBadge, _sfc_main$w as VButton, _sfc_main$5 as VCard, _sfc_main$4 as VCardBody, _sfc_main$3 as VCardFooter, _sfc_main$2 as VCardHeader, _sfc_main$v as VChip, _sfc_main$1 as VCodeBlock, _sfc_main$l as VDrawer, VLightSwitch, _sfc_main$d as VListbox, VListboxButton, _sfc_main$c as VListboxItem, _sfc_main$f as VListboxItems, _sfc_main$e as VListboxLabel, VPreview, _sfc_main$t as VRadioDescription, _sfc_main$s as VRadioGroup, _sfc_main$r as VRadioItem, _sfc_main$q as VRadioLabel, _sfc_main$j as VRail, _sfc_main$i as VRailTile, _sfc_main$h as VShell, _sfc_main$p as VSwitch, _sfc_main$o as VSwitchDescription, _sfc_main$n as VSwitchGroup, _sfc_main$m as VSwitchLabel, _sfc_main$b as VTab, _sfc_main$a as VTabPanel, _sfc_main$9 as VTabs, index as default, useDarkMode, useDrawer, useHighlight, useRail, useSettings, useTheme, clipboard as vClipboard };