vlite3 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +72 -0
  2. package/_virtual/_plugin-vue_export-helper.js +9 -0
  3. package/components/Accordion/Accordion.vue.d.ts +42 -0
  4. package/components/Accordion/Accordion.vue.js +102 -0
  5. package/components/Accordion/Accordion.vue2.js +4 -0
  6. package/components/Accordion/AccordionContent.vue.d.ts +22 -0
  7. package/components/Accordion/AccordionContent.vue.js +7 -0
  8. package/components/Accordion/AccordionContent.vue2.js +47 -0
  9. package/components/Accordion/AccordionItem.vue.d.ts +54 -0
  10. package/components/Accordion/AccordionItem.vue.js +102 -0
  11. package/components/Accordion/AccordionItem.vue2.js +4 -0
  12. package/components/Accordion/AccordionTrigger.vue.d.ts +40 -0
  13. package/components/Accordion/AccordionTrigger.vue.js +72 -0
  14. package/components/Accordion/AccordionTrigger.vue2.js +4 -0
  15. package/components/Accordion/index.d.ts +5 -0
  16. package/components/Accordion/types.d.ts +30 -0
  17. package/components/Alert.vue.d.ts +36 -0
  18. package/components/Alert.vue.js +84 -0
  19. package/components/Alert.vue2.js +4 -0
  20. package/components/Avatar.vue.d.ts +32 -0
  21. package/components/Avatar.vue.js +78 -0
  22. package/components/Avatar.vue2.js +4 -0
  23. package/components/AvatarUploader/AvatarUploader.vue.d.ts +31 -0
  24. package/components/AvatarUploader/AvatarUploader.vue.js +104 -0
  25. package/components/AvatarUploader/AvatarUploader.vue2.js +4 -0
  26. package/components/AvatarUploader/index.d.ts +2 -0
  27. package/components/Badge.vue.d.ts +25 -0
  28. package/components/Badge.vue.js +31 -0
  29. package/components/Badge.vue2.js +4 -0
  30. package/components/Button.vue.d.ts +26 -0
  31. package/components/Button.vue.js +108 -0
  32. package/components/Button.vue2.js +4 -0
  33. package/components/ButtonGroup.vue.d.ts +29 -0
  34. package/components/ButtonGroup.vue.js +7 -0
  35. package/components/ButtonGroup.vue2.js +33 -0
  36. package/components/CheckBox.vue.d.ts +28 -0
  37. package/components/CheckBox.vue.js +114 -0
  38. package/components/CheckBox.vue2.js +4 -0
  39. package/components/Chip/Chip.vue.d.ts +33 -0
  40. package/components/Chip/Chip.vue.js +118 -0
  41. package/components/Chip/Chip.vue2.js +4 -0
  42. package/components/Chip/index.d.ts +2 -0
  43. package/components/Chip/types.d.ts +12 -0
  44. package/components/ChoiceBox/ChoiceBox.vue.d.ts +32 -0
  45. package/components/ChoiceBox/ChoiceBox.vue.js +141 -0
  46. package/components/ChoiceBox/ChoiceBox.vue2.js +4 -0
  47. package/components/ChoiceBox/index.d.ts +2 -0
  48. package/components/ColorPicker/ColorIro.vue.d.ts +18 -0
  49. package/components/ColorPicker/ColorIro.vue.js +142 -0
  50. package/components/ColorPicker/ColorIro.vue3.js +5 -0
  51. package/components/ColorPicker/ColorPicker.vue.d.ts +22 -0
  52. package/components/ColorPicker/ColorPicker.vue.js +55 -0
  53. package/components/ColorPicker/ColorPicker.vue2.js +4 -0
  54. package/components/ConfirmationModal.vue.d.ts +23 -0
  55. package/components/ConfirmationModal.vue.js +50 -0
  56. package/components/ConfirmationModal.vue2.js +4 -0
  57. package/components/DatePicker.vue.d.ts +44 -0
  58. package/components/DatePicker.vue.js +88 -0
  59. package/components/DatePicker.vue2.js +4 -0
  60. package/components/Dropdown/Dropdown.vue.d.ts +104 -0
  61. package/components/Dropdown/Dropdown.vue.js +200 -0
  62. package/components/Dropdown/Dropdown.vue2.js +4 -0
  63. package/components/Dropdown/DropdownGroupedLayout.vue.d.ts +21 -0
  64. package/components/Dropdown/DropdownGroupedLayout.vue.js +73 -0
  65. package/components/Dropdown/DropdownGroupedLayout.vue2.js +4 -0
  66. package/components/Dropdown/DropdownItem.vue.d.ts +35 -0
  67. package/components/Dropdown/DropdownItem.vue.js +56 -0
  68. package/components/Dropdown/DropdownItem.vue2.js +4 -0
  69. package/components/Dropdown/DropdownMenu.vue.d.ts +71 -0
  70. package/components/Dropdown/DropdownMenu.vue.js +211 -0
  71. package/components/Dropdown/DropdownMenu.vue2.js +4 -0
  72. package/components/Dropdown/DropdownTrigger.vue.d.ts +13 -0
  73. package/components/Dropdown/DropdownTrigger.vue.js +24 -0
  74. package/components/Dropdown/DropdownTrigger.vue2.js +4 -0
  75. package/components/Dropdown/composables/useDropdownIds.d.ts +5 -0
  76. package/components/Dropdown/composables/useDropdownIds.js +20 -0
  77. package/components/Dropdown/composables/useDropdownNavigation.d.ts +19 -0
  78. package/components/Dropdown/composables/useDropdownNavigation.js +53 -0
  79. package/components/Dropdown/composables/useDropdownSelection.d.ts +16 -0
  80. package/components/Dropdown/composables/useDropdownSelection.js +41 -0
  81. package/components/Dropdown/index.d.ts +6 -0
  82. package/components/FilePicker/FilePicker.vue.d.ts +57 -0
  83. package/components/FilePicker/FilePicker.vue.js +205 -0
  84. package/components/FilePicker/FilePicker.vue2.js +4 -0
  85. package/components/FilePicker/index.d.ts +2 -0
  86. package/components/FileTree/FileTree.vue.d.ts +20 -0
  87. package/components/FileTree/FileTree.vue.js +143 -0
  88. package/components/FileTree/FileTree.vue2.js +4 -0
  89. package/components/FileTree/FileTreeNode.vue.d.ts +28 -0
  90. package/components/FileTree/FileTreeNode.vue.js +157 -0
  91. package/components/FileTree/FileTreeNode.vue2.js +4 -0
  92. package/components/FileTree/index.d.ts +2 -0
  93. package/components/FileTree/types.d.ts +28 -0
  94. package/components/FileTree/useTreeSelection.d.ts +12 -0
  95. package/components/Heatmap/Heatmap.vue.d.ts +26 -0
  96. package/components/Heatmap/Heatmap.vue.js +7 -0
  97. package/components/Heatmap/Heatmap.vue2.js +338 -0
  98. package/components/Heatmap/index.d.ts +2 -0
  99. package/components/Heatmap/types.d.ts +66 -0
  100. package/components/Icon.vue.d.ts +7 -0
  101. package/components/Icon.vue.js +34 -0
  102. package/components/Icon.vue2.js +4 -0
  103. package/components/IconPicker.vue.d.ts +38 -0
  104. package/components/IconPicker.vue.js +124 -0
  105. package/components/IconPicker.vue2.js +4 -0
  106. package/components/Input.vue.d.ts +54 -0
  107. package/components/Input.vue.js +250 -0
  108. package/components/Input.vue2.js +4 -0
  109. package/components/Label.vue.d.ts +23 -0
  110. package/components/Label.vue.js +23 -0
  111. package/components/Label.vue2.js +4 -0
  112. package/components/Logo.vue.d.ts +2 -0
  113. package/components/Logo.vue.js +10 -0
  114. package/components/Logo.vue2.js +4 -0
  115. package/components/Masonry/Masonry.vue.d.ts +31 -0
  116. package/components/Masonry/Masonry.vue.js +7 -0
  117. package/components/Masonry/Masonry.vue2.js +77 -0
  118. package/components/Masonry/index.d.ts +2 -0
  119. package/components/Masonry/types.d.ts +33 -0
  120. package/components/Masonry/types.js +10 -0
  121. package/components/Modal.vue.d.ts +43 -0
  122. package/components/Modal.vue.js +100 -0
  123. package/components/Modal.vue2.js +4 -0
  124. package/components/MultiSelect/MultiSelect.vue.d.ts +40 -0
  125. package/components/MultiSelect/MultiSelect.vue.js +126 -0
  126. package/components/MultiSelect/MultiSelect.vue2.js +4 -0
  127. package/components/MultiSelect/index.d.ts +1 -0
  128. package/components/Navbar/Navbar.vue.d.ts +50 -0
  129. package/components/Navbar/Navbar.vue.js +201 -0
  130. package/components/Navbar/Navbar.vue2.js +4 -0
  131. package/components/Navbar/NavbarGroup.vue.d.ts +24 -0
  132. package/components/Navbar/NavbarGroup.vue.js +23 -0
  133. package/components/Navbar/NavbarGroup.vue2.js +4 -0
  134. package/components/Navbar/NavbarItem.vue.d.ts +40 -0
  135. package/components/Navbar/NavbarItem.vue.js +92 -0
  136. package/components/Navbar/NavbarItem.vue2.js +4 -0
  137. package/components/Navbar/index.d.ts +3 -0
  138. package/components/OTPInput/OTPInput.vue.d.ts +33 -0
  139. package/components/OTPInput/OTPInput.vue.js +123 -0
  140. package/components/OTPInput/OTPInput.vue2.js +4 -0
  141. package/components/OTPInput/index.d.ts +1 -0
  142. package/components/Pagination/Pagination.vue.d.ts +34 -0
  143. package/components/Pagination/Pagination.vue.js +198 -0
  144. package/components/Pagination/Pagination.vue2.js +4 -0
  145. package/components/Pagination/index.d.ts +1 -0
  146. package/components/PricingPlan/PricingPlan.vue.d.ts +22 -0
  147. package/components/PricingPlan/PricingPlan.vue.js +55 -0
  148. package/components/PricingPlan/PricingPlan.vue2.js +4 -0
  149. package/components/PricingPlan/PricingPlanItem.vue.d.ts +17 -0
  150. package/components/PricingPlan/PricingPlanItem.vue.js +92 -0
  151. package/components/PricingPlan/PricingPlanItem.vue2.js +4 -0
  152. package/components/PricingPlan/index.d.ts +3 -0
  153. package/components/PricingPlan/types.d.ts +25 -0
  154. package/components/SidePanel.vue.d.ts +58 -0
  155. package/components/SidePanel.vue.js +7 -0
  156. package/components/SidePanel.vue2.js +123 -0
  157. package/components/SidebarMenu/SidebarMenu.vue.d.ts +9 -0
  158. package/components/SidebarMenu/SidebarMenu.vue.js +65 -0
  159. package/components/SidebarMenu/SidebarMenu.vue2.js +4 -0
  160. package/components/SidebarMenu/SidebarMenuItem.vue.d.ts +9 -0
  161. package/components/SidebarMenu/SidebarMenuItem.vue.js +7 -0
  162. package/components/SidebarMenu/SidebarMenuItem.vue2.js +222 -0
  163. package/components/SidebarMenu/index.d.ts +3 -0
  164. package/components/SidebarMenu/types.d.ts +52 -0
  165. package/components/Slider.vue.d.ts +29 -0
  166. package/components/Slider.vue.js +124 -0
  167. package/components/Slider.vue2.js +4 -0
  168. package/components/Switch.vue.d.ts +16 -0
  169. package/components/Switch.vue.js +43 -0
  170. package/components/Switch.vue2.js +4 -0
  171. package/components/Tabes/Tabes.vue.d.ts +20 -0
  172. package/components/Tabes/Tabes.vue.js +86 -0
  173. package/components/Tabes/Tabes.vue2.js +4 -0
  174. package/components/Tabes/index.d.ts +2 -0
  175. package/components/Tabes/types.d.ts +8 -0
  176. package/components/Textarea.vue.d.ts +22 -0
  177. package/components/Textarea.vue.js +34 -0
  178. package/components/Textarea.vue2.js +4 -0
  179. package/components/ThemeToggle.vue.d.ts +2 -0
  180. package/components/ThemeToggle.vue.js +18 -0
  181. package/components/ThemeToggle.vue2.js +4 -0
  182. package/components/Timeline.vue.d.ts +39 -0
  183. package/components/Timeline.vue.js +174 -0
  184. package/components/Timeline.vue2.js +4 -0
  185. package/components/ToastNotification.vue.d.ts +7 -0
  186. package/components/ToastNotification.vue.js +7 -0
  187. package/components/ToastNotification.vue2.js +163 -0
  188. package/components/Tooltip.vue.d.ts +25 -0
  189. package/components/Tooltip.vue.js +39 -0
  190. package/components/Tooltip.vue2.js +4 -0
  191. package/components/Workbook/Sheet.vue.d.ts +38 -0
  192. package/components/Workbook/Sheet.vue.js +141 -0
  193. package/components/Workbook/Sheet.vue2.js +4 -0
  194. package/components/Workbook/Workbook.vue.d.ts +54 -0
  195. package/components/Workbook/Workbook.vue.js +7 -0
  196. package/components/Workbook/Workbook.vue2.js +146 -0
  197. package/components/Workbook/WorkbookAddButton.vue.d.ts +6 -0
  198. package/components/Workbook/WorkbookAddButton.vue.js +20 -0
  199. package/components/Workbook/WorkbookAddButton.vue2.js +4 -0
  200. package/components/Workbook/index.d.ts +3 -0
  201. package/components/Workbook/types.d.ts +34 -0
  202. package/composables/useKeyStroke.d.ts +21 -0
  203. package/composables/useKeyStroke.js +37 -0
  204. package/composables/useNotifications.d.ts +93 -0
  205. package/composables/useNotifications.js +88 -0
  206. package/composables/useTheme.d.ts +6 -0
  207. package/composables/useTheme.js +32 -0
  208. package/directives/vRipple.d.ts +4 -0
  209. package/directives/vRipple.js +17 -0
  210. package/index.css +1 -0
  211. package/index.d.ts +40 -0
  212. package/index.js +110 -0
  213. package/package.json +57 -0
  214. package/types/alert.type.d.ts +10 -0
  215. package/types/avatar.type.d.ts +10 -0
  216. package/types/button.d.ts +15 -0
  217. package/types/buttongroup.type.d.ts +1 -0
  218. package/types/form.type.d.ts +45 -0
  219. package/types/index.d.ts +9 -0
  220. package/types/navbar.type.d.ts +26 -0
  221. package/types/sidepanel.type.d.ts +13 -0
  222. package/types/styles.d.ts +28 -0
  223. package/types/timeline.type.d.ts +9 -0
  224. package/utils/functions.d.ts +9 -0
  225. package/utils/functions.js +11 -0
  226. package/utils/index.d.ts +2 -0
  227. package/utils/object.d.ts +6 -0
  228. package/utils/object.js +14 -0
package/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # vlite3
2
+
3
+ A lightweight Vue 3 UI component library built with Tailwind CSS.
4
+
5
+ ## Installation
6
+
7
+ ### NPM
8
+
9
+ ```bash
10
+ npm install vlite3
11
+ ```
12
+
13
+ ### Yarn
14
+
15
+ ```bash
16
+ yarn add vlite3
17
+ ```
18
+
19
+ ## Configuration
20
+
21
+ ### 1. Import Styles
22
+
23
+ Import the library's base styles (for custom component styles) in your main entry file (e.g., `main.ts` or `App.vue`):
24
+
25
+ ```ts
26
+ import 'vlite3/style.css'
27
+ ```
28
+
29
+ ### 2. Tailwind CSS Setup
30
+
31
+ This library relies on Tailwind CSS for utility classes. You must configure your project to scan the library's files so that the necessary classes are generated.
32
+
33
+ #### Tailwind CSS v3 (`tailwind.config.js`)
34
+
35
+ Add the library path to your `content` array:
36
+
37
+ ```js
38
+ module.exports = {
39
+ content: [
40
+ './index.html',
41
+ './src/**/*.{vue,js,ts,jsx,tsx}',
42
+ './node_modules/vlite3/dist/**/*.{js,vue}', // <--- Add this line
43
+ ],
44
+ // ...
45
+ }
46
+ ```
47
+
48
+ #### Tailwind CSS v4
49
+
50
+ If you are using the new CSS-first configuration, add the source path:
51
+
52
+ ```css
53
+ @import 'tailwindcss';
54
+ @source "../node_modules/vlite3/dist";
55
+ ```
56
+
57
+ ## Usage
58
+
59
+ Import components directly in your Vue files:
60
+
61
+ ```vue
62
+ <script setup>
63
+ import { Button, Input } from 'vlite3'
64
+ </script>
65
+
66
+ <template>
67
+ <div class="p-4 space-y-4">
68
+ <Button>Click Me</Button>
69
+ <Input placeholder="Type here..." />
70
+ </div>
71
+ </template>
72
+ ```
@@ -0,0 +1,9 @@
1
+ const s = (t, e) => {
2
+ const o = t.__vccOpts || t;
3
+ for (const [r, c] of e)
4
+ o[r] = c;
5
+ return o;
6
+ };
7
+ export {
8
+ s as default
9
+ };
@@ -0,0 +1,42 @@
1
+ import { AccordionProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {}): any;
6
+ trigger?(_: {
7
+ item: import('./types').AccordionItemSchema;
8
+ open: boolean;
9
+ toggle: () => void;
10
+ triggerClass: string;
11
+ }): any;
12
+ content?(_: {
13
+ close: (id: string) => void;
14
+ item: import('./types').AccordionItemSchema;
15
+ }): any;
16
+ };
17
+ refs: {};
18
+ rootEl: HTMLDivElement;
19
+ };
20
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
+ declare const __VLS_component: import('vue').DefineComponent<AccordionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
+ "update:modelValue": (value: string | string[]) => any;
23
+ change: (value: string | string[]) => any;
24
+ }, string, import('vue').PublicProps, Readonly<AccordionProps> & Readonly<{
25
+ "onUpdate:modelValue"?: (value: string | string[]) => any;
26
+ onChange?: (value: string | string[]) => any;
27
+ }>, {
28
+ disabled: boolean;
29
+ showIndex: boolean;
30
+ iconVariant: "simple" | "solid" | "outline" | "primary" | "ghost";
31
+ variant: import('./types').AccordionVariant;
32
+ attached: boolean;
33
+ items: import('./types').AccordionItemSchema[];
34
+ allowMultiple: boolean;
35
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
36
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
37
+ export default _default;
38
+ type __VLS_WithTemplateSlots<T, S> = T & {
39
+ new (): {
40
+ $slots: S;
41
+ };
42
+ };
@@ -0,0 +1,102 @@
1
+ import { defineComponent as p, ref as b, watch as f, computed as B, openBlock as s, createElementBlock as m, normalizeClass as k, renderSlot as r, Fragment as $, renderList as x, createBlock as A, createSlots as M, withCtx as v } from "vue";
2
+ import O from "./AccordionItem.vue.js";
3
+ const j = /* @__PURE__ */ p({
4
+ __name: "Accordion",
5
+ props: {
6
+ items: { default: () => [] },
7
+ modelValue: {},
8
+ allowMultiple: { type: Boolean, default: !1 },
9
+ defaultValue: {},
10
+ disabled: { type: Boolean, default: !1 },
11
+ variant: { default: "default" },
12
+ attached: { type: Boolean, default: !1 },
13
+ openIcon: {},
14
+ closeIcon: {},
15
+ iconPosition: {},
16
+ iconVariant: { default: "simple" },
17
+ activeIconVariant: {},
18
+ showIndex: { type: Boolean, default: !1 },
19
+ class: {},
20
+ itemClass: {},
21
+ triggerClass: {},
22
+ contentClass: {}
23
+ },
24
+ emits: ["update:modelValue", "change"],
25
+ setup(t, { emit: g }) {
26
+ const l = t, c = g, a = b([]), u = (e) => Array.isArray(e) ? e : typeof e == "string" && e ? [e] : [];
27
+ f(
28
+ () => l.modelValue,
29
+ (e) => {
30
+ a.value = u(e);
31
+ },
32
+ { immediate: !0 }
33
+ ), f(
34
+ () => l.defaultValue,
35
+ (e) => {
36
+ !l.modelValue && e && (a.value = u(e));
37
+ },
38
+ { immediate: !0 }
39
+ );
40
+ const d = (e) => {
41
+ if (l.disabled) return;
42
+ const i = a.value.includes(e);
43
+ l.allowMultiple ? i ? a.value = a.value.filter((n) => n !== e) : a.value = [...a.value, e] : i ? a.value = [] : a.value = [e], h();
44
+ }, h = () => {
45
+ const e = l.allowMultiple ? a.value : a.value[0] || "";
46
+ c("update:modelValue", e), c("change", e);
47
+ }, C = B(() => {
48
+ const e = ["w-full", l.class];
49
+ return l.attached && (e.push("rounded-lg overflow-hidden"), (l.variant === "outline" || l.variant === "default") && e.push("border"), l.variant === "solid" && e.push("border")), e.join(" ");
50
+ });
51
+ return (e, i) => (s(), m("div", {
52
+ class: k(C.value)
53
+ }, [
54
+ r(e.$slots, "default", {}, () => [
55
+ (s(!0), m($, null, x(t.items, (n, I) => (s(), A(O, {
56
+ key: n.id,
57
+ item: n,
58
+ isOpen: a.value.includes(n.id),
59
+ variant: t.variant,
60
+ attached: t.attached,
61
+ disabled: t.disabled,
62
+ index: I + 1,
63
+ showIndex: t.showIndex,
64
+ openIcon: t.openIcon,
65
+ closeIcon: t.closeIcon,
66
+ iconVariant: t.iconVariant,
67
+ activeIconVariant: t.activeIconVariant,
68
+ triggerClass: t.triggerClass,
69
+ contentClass: t.contentClass,
70
+ itemClass: t.itemClass,
71
+ onToggle: d
72
+ }, M({ _: 2 }, [
73
+ e.$slots.trigger ? {
74
+ name: "trigger",
75
+ fn: v(({ item: o, open: V, toggle: w, triggerClass: y }) => [
76
+ r(e.$slots, "trigger", {
77
+ item: o,
78
+ open: V,
79
+ toggle: w,
80
+ triggerClass: y
81
+ })
82
+ ]),
83
+ key: "0"
84
+ } : void 0,
85
+ e.$slots.content ? {
86
+ name: "content",
87
+ fn: v(({ item: o }) => [
88
+ r(e.$slots, "content", {
89
+ close: d,
90
+ item: o
91
+ })
92
+ ]),
93
+ key: "1"
94
+ } : void 0
95
+ ]), 1032, ["item", "isOpen", "variant", "attached", "disabled", "index", "showIndex", "openIcon", "closeIcon", "iconVariant", "activeIconVariant", "triggerClass", "contentClass", "itemClass"]))), 128))
96
+ ])
97
+ ], 2));
98
+ }
99
+ });
100
+ export {
101
+ j as default
102
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Accordion.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,22 @@
1
+ interface Props {
2
+ class?: string;
3
+ }
4
+ declare function __VLS_template(): {
5
+ attrs: Partial<{}>;
6
+ slots: {
7
+ default?(_: {}): any;
8
+ };
9
+ refs: {};
10
+ rootEl: any;
11
+ };
12
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
13
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
14
+ class: string;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
16
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
17
+ export default _default;
18
+ type __VLS_WithTemplateSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./AccordionContent.vue2.js";
2
+ /* empty css */
3
+ import t from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-d71e56f7"]]);
5
+ export {
6
+ f as default
7
+ };
@@ -0,0 +1,47 @@
1
+ import { defineComponent as d, openBlock as h, createBlock as f, Transition as m, withCtx as p, createElementVNode as n, normalizeClass as u, renderSlot as v } from "vue";
2
+ const _ = { class: "overflow-hidden text-sm transition-all duration-300 ease-in-out" }, E = /* @__PURE__ */ d({
3
+ __name: "AccordionContent",
4
+ props: {
5
+ class: { default: "" }
6
+ },
7
+ setup(o) {
8
+ const s = o, r = (t) => {
9
+ const e = t;
10
+ e.style.height = "0";
11
+ }, l = (t) => {
12
+ const e = t;
13
+ e.style.height = e.scrollHeight + "px";
14
+ }, c = (t) => {
15
+ const e = t;
16
+ e.style.height = "auto";
17
+ }, a = (t) => {
18
+ const e = t;
19
+ e.style.height = e.scrollHeight + "px";
20
+ }, i = (t) => {
21
+ const e = t;
22
+ e.style.height = "0";
23
+ };
24
+ return (t, e) => (h(), f(m, {
25
+ name: "accordion",
26
+ onBeforeEnter: r,
27
+ onEnter: l,
28
+ onAfterEnter: c,
29
+ onBeforeLeave: a,
30
+ onLeave: i
31
+ }, {
32
+ default: p(() => [
33
+ n("div", _, [
34
+ n("div", {
35
+ class: u(["pb-4", s.class])
36
+ }, [
37
+ v(t.$slots, "default", {}, void 0, !0)
38
+ ], 2)
39
+ ])
40
+ ]),
41
+ _: 3
42
+ }));
43
+ }
44
+ });
45
+ export {
46
+ E as default
47
+ };
@@ -0,0 +1,54 @@
1
+ import { AccordionItemSchema, AccordionVariant } from './types';
2
+ interface Props {
3
+ item: AccordionItemSchema;
4
+ isOpen: boolean;
5
+ variant?: AccordionVariant;
6
+ attached?: boolean;
7
+ disabled?: boolean;
8
+ index?: number;
9
+ showIndex?: boolean;
10
+ openIcon?: string;
11
+ closeIcon?: string;
12
+ iconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost';
13
+ activeIconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost';
14
+ triggerClass?: string;
15
+ contentClass?: string;
16
+ itemClass?: string;
17
+ class?: string;
18
+ }
19
+ declare function __VLS_template(): {
20
+ attrs: Partial<{}>;
21
+ slots: {
22
+ trigger?(_: {
23
+ item: AccordionItemSchema;
24
+ open: boolean;
25
+ toggle: () => void;
26
+ triggerClass: string;
27
+ }): any;
28
+ content?(_: {
29
+ item: AccordionItemSchema;
30
+ close: () => void;
31
+ }): any;
32
+ };
33
+ refs: {};
34
+ rootEl: HTMLDivElement;
35
+ };
36
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
37
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
38
+ toggle: (id: string) => any;
39
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
40
+ onToggle?: (id: string) => any;
41
+ }>, {
42
+ disabled: boolean;
43
+ class: string;
44
+ showIndex: boolean;
45
+ variant: AccordionVariant;
46
+ attached: boolean;
47
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
48
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
49
+ export default _default;
50
+ type __VLS_WithTemplateSlots<T, S> = T & {
51
+ new (): {
52
+ $slots: S;
53
+ };
54
+ };
@@ -0,0 +1,102 @@
1
+ import { defineComponent as y, computed as s, openBlock as l, createElementBlock as d, normalizeClass as c, renderSlot as u, createVNode as f, withCtx as b, createElementVNode as I, toDisplayString as g, createCommentVNode as v, withDirectives as w, createBlock as k, resolveDynamicComponent as B, vShow as V } from "vue";
2
+ import p from "./AccordionTrigger.vue.js";
3
+ import O from "./AccordionContent.vue.js";
4
+ const T = {
5
+ key: 0,
6
+ class: "ml-2 text-sm text-muted-foreground font-normal"
7
+ }, A = ["innerHTML"], E = /* @__PURE__ */ y({
8
+ __name: "AccordionItem",
9
+ props: {
10
+ item: {},
11
+ isOpen: { type: Boolean },
12
+ variant: { default: "default" },
13
+ attached: { type: Boolean, default: !1 },
14
+ disabled: { type: Boolean, default: !1 },
15
+ index: {},
16
+ showIndex: { type: Boolean, default: !1 },
17
+ openIcon: {},
18
+ closeIcon: {},
19
+ iconVariant: {},
20
+ activeIconVariant: {},
21
+ triggerClass: {},
22
+ contentClass: {},
23
+ itemClass: {},
24
+ class: { default: "" }
25
+ },
26
+ emits: ["toggle"],
27
+ setup(e, { emit: h }) {
28
+ const n = e, C = h, r = () => {
29
+ n.item.disabled || n.disabled || C("toggle", n.item.id);
30
+ }, x = s(() => {
31
+ const { variant: t, attached: i } = n;
32
+ if (i) {
33
+ const o = "transition-all first:rounded-t-lg last:rounded-b-lg";
34
+ let a = "border-b last:border-0";
35
+ return t === "default" || t === "outline" ? `${o} ${a}` : t === "solid" ? "border-b last:border-0 bg-transparent" : t === "ghost" ? "bg-transparent border-b last:border-0" : `${o} ${a}`;
36
+ }
37
+ return t === "solid" ? "mb-2 border rounded-lg overflow-hidden transition-all duration-200" : t === "outline" ? "border mb-2 rounded-lg overflow-hidden" : t === "separated" ? "border mb-4 rounded-lg overflow-hidden" : t === "ghost" ? "border-none bg-transparent mb-1" : "border-b";
38
+ }), m = s(() => {
39
+ const { variant: t, attached: i, isOpen: o } = n, a = n.triggerClass || "";
40
+ return t === "solid" ? `${a} px-4 bg-muted transition-colors` : !i && (t === "ghost" || t === "default") ? `${a} px-0 hover:no-underline` : `${a} px-4 hover:bg-accent`;
41
+ }), $ = s(() => {
42
+ const { variant: t, attached: i } = n, o = n.contentClass || "";
43
+ return t === "solid" ? `${o} px-4 pt-2` : !i && (t === "ghost" || t === "default") ? `${o} px-0` : `${o} px-4`;
44
+ });
45
+ return (t, i) => (l(), d("div", {
46
+ class: c([x.value, n.class, n.itemClass])
47
+ }, [
48
+ u(t.$slots, "trigger", {
49
+ item: e.item,
50
+ open: e.isOpen,
51
+ toggle: r,
52
+ triggerClass: m.value
53
+ }, () => [
54
+ f(p, {
55
+ open: e.isOpen,
56
+ disabled: e.item.disabled || e.disabled,
57
+ icon: e.item.icon,
58
+ index: e.index,
59
+ showIndex: e.showIndex,
60
+ "open-icon": e.openIcon,
61
+ "close-icon": e.closeIcon,
62
+ "icon-variant": e.iconVariant,
63
+ "active-icon-variant": e.activeIconVariant,
64
+ class: c(m.value),
65
+ onClick: r
66
+ }, {
67
+ default: b(() => [
68
+ I("span", null, g(e.item.title), 1),
69
+ e.item.description ? (l(), d("span", T, g(e.item.description), 1)) : v("", !0)
70
+ ]),
71
+ _: 1
72
+ }, 8, ["open", "disabled", "icon", "index", "showIndex", "open-icon", "close-icon", "icon-variant", "active-icon-variant", "class"])
73
+ ]),
74
+ w(f(O, {
75
+ class: c($.value)
76
+ }, {
77
+ default: b(() => [
78
+ u(t.$slots, "content", {
79
+ item: e.item,
80
+ close: r
81
+ }, () => [
82
+ e.item.bodyComponent ? (l(), k(B(e.item.bodyComponent), {
83
+ key: 0,
84
+ item: e.item,
85
+ close: r
86
+ }, null, 8, ["item"])) : e.item.content ? (l(), d("div", {
87
+ key: 1,
88
+ class: "text-muted-foreground leading-relaxed",
89
+ innerHTML: e.item.content
90
+ }, null, 8, A)) : v("", !0)
91
+ ])
92
+ ]),
93
+ _: 3
94
+ }, 8, ["class"]), [
95
+ [V, e.isOpen]
96
+ ])
97
+ ], 2));
98
+ }
99
+ });
100
+ export {
101
+ E as default
102
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./AccordionItem.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,40 @@
1
+ interface Props {
2
+ class?: string;
3
+ icon?: string;
4
+ open?: boolean;
5
+ disabled?: boolean;
6
+ index?: number;
7
+ showIndex?: boolean;
8
+ openIcon?: string;
9
+ closeIcon?: string;
10
+ iconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost';
11
+ activeIconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost';
12
+ chevron?: boolean;
13
+ }
14
+ declare function __VLS_template(): {
15
+ attrs: Partial<{}>;
16
+ slots: {
17
+ default?(_: {}): any;
18
+ icon?(_: {}): any;
19
+ };
20
+ refs: {};
21
+ rootEl: HTMLButtonElement;
22
+ };
23
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
24
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
25
+ click: (event: MouseEvent) => any;
26
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
27
+ onClick?: (event: MouseEvent) => any;
28
+ }>, {
29
+ class: string;
30
+ showIndex: boolean;
31
+ iconVariant: "simple" | "solid" | "outline" | "primary" | "ghost";
32
+ chevron: boolean;
33
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLButtonElement>;
34
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
35
+ export default _default;
36
+ type __VLS_WithTemplateSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };
@@ -0,0 +1,72 @@
1
+ import { defineComponent as I, computed as o, openBlock as r, createElementBlock as s, normalizeClass as a, createElementVNode as f, toDisplayString as k, createCommentVNode as c, createBlock as w, renderSlot as m, createVNode as C } from "vue";
2
+ import p from "../Icon.vue.js";
3
+ const V = ["data-state", "disabled"], $ = { class: "flex items-center gap-3" }, B = {
4
+ key: 0,
5
+ class: "flex items-center justify-center h-7 w-7 rounded-full bg-primary-light text-primary text-xs font-bold shrink-0"
6
+ }, j = { class: "flex flex-col" }, E = /* @__PURE__ */ I({
7
+ __name: "AccordionTrigger",
8
+ props: {
9
+ class: { default: "" },
10
+ icon: {},
11
+ open: { type: Boolean },
12
+ disabled: { type: Boolean },
13
+ index: {},
14
+ showIndex: { type: Boolean, default: !1 },
15
+ openIcon: {},
16
+ closeIcon: {},
17
+ iconVariant: { default: "simple" },
18
+ activeIconVariant: {},
19
+ chevron: { type: Boolean, default: !0 }
20
+ },
21
+ emits: ["click"],
22
+ setup(t, { emit: g }) {
23
+ const e = t, v = g, h = (n) => {
24
+ e.disabled || v("click", n);
25
+ }, x = o(() => e.open && e.openIcon ? e.openIcon : !e.open && e.closeIcon ? e.closeIcon : "lucide:chevron-down"), l = o(() => e.openIcon && e.closeIcon ? "" : e.open ? "rotate-180" : ""), i = o(() => e.open && e.activeIconVariant ? e.activeIconVariant : e.iconVariant), b = o(() => {
26
+ const n = "flex items-center justify-center shrink-0 transition-all duration-300", u = "h-8 w-8 rounded-full", d = {
27
+ simple: "text-muted-foreground bg-transparent",
28
+ solid: "text-foreground bg-muted",
29
+ outline: "text-foreground border bg-transparent",
30
+ primary: "text-primary-dark bg-primary-light",
31
+ ghost: "text-muted-foreground hover:bg-accent bg-transparent"
32
+ }, y = d[i.value] || d.simple;
33
+ return i.value === "simple" ? `text-muted-foreground group-hover:text-foreground ${l.value}` : `${n} ${u} ${y} ${l.value}`;
34
+ });
35
+ return (n, u) => (r(), s("button", {
36
+ type: "button",
37
+ class: a(["group flex flex-1 w-full items-center justify-between py-3 text-left font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2", [
38
+ e.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
39
+ e.class
40
+ ]]),
41
+ "data-state": e.open ? "open" : "closed",
42
+ disabled: e.disabled,
43
+ onClick: h
44
+ }, [
45
+ f("div", $, [
46
+ t.showIndex && t.index !== void 0 ? (r(), s("div", B, k(t.index), 1)) : c("", !0),
47
+ t.icon ? (r(), w(p, {
48
+ key: 1,
49
+ icon: t.icon,
50
+ class: "h-5 w-5 shrink-0 text-muted-foreground group-hover:text-foreground transition-colors"
51
+ }, null, 8, ["icon"])) : c("", !0),
52
+ f("div", j, [
53
+ m(n.$slots, "default")
54
+ ])
55
+ ]),
56
+ m(n.$slots, "icon", {}, () => [
57
+ t.chevron || t.openIcon || t.closeIcon ? (r(), s("div", {
58
+ key: 0,
59
+ class: a(b.value)
60
+ }, [
61
+ C(p, {
62
+ icon: x.value,
63
+ class: a(["h-4 w-4 shrink-0 transition-transform duration-200", { "rotate-0": i.value !== "simple" }])
64
+ }, null, 8, ["icon", "class"])
65
+ ], 2)) : c("", !0)
66
+ ])
67
+ ], 10, V));
68
+ }
69
+ });
70
+ export {
71
+ E as default
72
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./AccordionTrigger.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,5 @@
1
+ export { default as Accordion } from './Accordion.vue';
2
+ export { default as AccordionItem } from './AccordionItem.vue';
3
+ export { default as AccordionTrigger } from './AccordionTrigger.vue';
4
+ export { default as AccordionContent } from './AccordionContent.vue';
5
+ export * from './types';
@@ -0,0 +1,30 @@
1
+ export interface AccordionItemSchema {
2
+ id: string;
3
+ title: string;
4
+ description?: string;
5
+ content?: string;
6
+ bodyComponent?: any;
7
+ disabled?: boolean;
8
+ icon?: string;
9
+ [key: string]: any;
10
+ }
11
+ export type AccordionVariant = 'default' | 'solid' | 'outline' | 'ghost' | 'separated';
12
+ export interface AccordionProps {
13
+ items?: AccordionItemSchema[];
14
+ modelValue?: string | string[];
15
+ allowMultiple?: boolean;
16
+ defaultValue?: string | string[];
17
+ disabled?: boolean;
18
+ variant?: AccordionVariant;
19
+ attached?: boolean;
20
+ openIcon?: string;
21
+ closeIcon?: string;
22
+ iconPosition?: 'left' | 'right';
23
+ iconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost';
24
+ activeIconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost';
25
+ showIndex?: boolean;
26
+ class?: string;
27
+ itemClass?: string;
28
+ triggerClass?: string;
29
+ contentClass?: string;
30
+ }
@@ -0,0 +1,36 @@
1
+ import { AlertVariant } from '../types';
2
+ interface Props {
3
+ title?: string;
4
+ description?: string;
5
+ icon?: string;
6
+ variant?: AlertVariant;
7
+ closable?: boolean;
8
+ role?: 'alert' | 'status' | 'none';
9
+ class?: string;
10
+ }
11
+ declare function __VLS_template(): {
12
+ attrs: Partial<{}>;
13
+ slots: {
14
+ icon?(_: {}): any;
15
+ default?(_: {}): any;
16
+ };
17
+ refs: {};
18
+ rootEl: any;
19
+ };
20
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
+ close: () => any;
23
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
24
+ onClose?: () => any;
25
+ }>, {
26
+ class: string;
27
+ variant: AlertVariant;
28
+ closable: boolean;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
30
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
31
+ export default _default;
32
+ type __VLS_WithTemplateSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };