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
@@ -0,0 +1,250 @@
1
+ import { defineComponent as U, useSlots as W, ref as z, computed as a, onMounted as q, nextTick as P, openBlock as r, createElementBlock as s, normalizeClass as c, createBlock as x, withCtx as G, createTextVNode as h, toDisplayString as v, createCommentVNode as i, createElementVNode as w, renderSlot as S, createVNode as k } from "vue";
2
+ import f from "./Icon.vue.js";
3
+ import H from "./Label.vue.js";
4
+ import J from "./Textarea.vue.js";
5
+ const K = { class: "relative w-full" }, O = ["type", "value", "placeholder", "disabled", "min", "max"], Q = { class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2" }, X = {
6
+ key: 1,
7
+ class: "text-sm font-medium text-danger"
8
+ }, te = /* @__PURE__ */ U({
9
+ __name: "Input",
10
+ props: {
11
+ modelValue: { default: "" },
12
+ type: { default: "text" },
13
+ label: {},
14
+ placeholder: {},
15
+ disabled: { type: Boolean, default: !1 },
16
+ loading: { type: Boolean, default: !1 },
17
+ error: {},
18
+ icon: {},
19
+ iconRight: {},
20
+ showClearButton: { type: Boolean, default: !0 },
21
+ autofocus: { type: Boolean, default: !1 },
22
+ class: { default: "" },
23
+ inputClass: { default: "" },
24
+ rows: { default: 3 },
25
+ lazy: { type: Boolean, default: !1 },
26
+ variant: { default: "outline" },
27
+ size: { default: "md" },
28
+ rounded: { default: "md" },
29
+ labelPosition: { default: "top" },
30
+ addonLeft: {},
31
+ addonRight: {},
32
+ addonLeftClass: { default: "" },
33
+ addonRightClass: { default: "" },
34
+ min: {},
35
+ max: {}
36
+ },
37
+ emits: ["update:modelValue", "focus", "blur", "change", "click:icon", "click:icon-right"],
38
+ setup(t, { emit: L }) {
39
+ const e = t, u = L, m = W(), y = z(null), b = z(!1), $ = a(() => e.type === "password" && b.value ? "text" : e.type), C = a(() => e.modelValue !== "" && e.modelValue !== null && e.modelValue !== void 0), g = a(() => !!e.addonLeft || !!m["addon-left"]), p = a(
40
+ () => !!e.addonRight || !!m["addon-right"]
41
+ ), A = a(() => [
42
+ "relative w-full",
43
+ e.class,
44
+ e.labelPosition === "left" ? "flex items-center gap-4" : "",
45
+ e.labelPosition === "right" ? "flex flex-row-reverse items-center gap-4" : "space-y-2"
46
+ ].join(" ")), I = a(() => [
47
+ "relative flex w-full items-stretch",
48
+ e.labelPosition !== "top" ? "flex-1" : ""
49
+ ].join(" ")), V = a(() => {
50
+ const d = "block w-full bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 transition-all focus-visible:outline-none", o = {
51
+ solid: "bg-muted border-transparent focus-visible:border-primary",
52
+ outline: "border border-input focus-visible:border-primary",
53
+ "outline-b": "border-b border-input bg-transparent rounded-none focus-visible:border-primary",
54
+ transparent: "border-none bg-transparent shadow-none"
55
+ }, n = {
56
+ sm: "h-8 text-xs",
57
+ md: "h-10 text-sm",
58
+ lg: "h-12 text-base"
59
+ }, j = {
60
+ none: "rounded-none",
61
+ sm: "rounded-sm",
62
+ md: "rounded-md",
63
+ lg: "rounded-lg",
64
+ xl: "rounded-xl",
65
+ "2xl": "rounded-2xl",
66
+ full: "rounded-full"
67
+ };
68
+ let l = j[e.rounded];
69
+ g.value && (l = l.replace("rounded-", "rounded-r-").replace("rounded-l-", ""), e.rounded === "md" && (l = "rounded-r-md rounded-l-none"), e.rounded === "sm" && (l = "rounded-r-sm rounded-l-none"), e.rounded === "lg" && (l = "rounded-r-lg rounded-l-none"), e.rounded === "full" && (l = "rounded-r-full rounded-l-none")), p.value && (j[e.rounded], g.value ? l = "rounded-none" : (e.rounded === "md" && (l = "rounded-l-md rounded-r-none"), e.rounded === "sm" && (l = "rounded-l-sm rounded-r-none"), e.rounded === "lg" && (l = "rounded-l-lg rounded-r-none"), e.rounded === "full" && (l = "rounded-l-full rounded-r-none"))), e.variant === "outline-b" && (l = "rounded-none");
70
+ const R = e.variant === "outline-b" || e.variant === "transparent";
71
+ return [
72
+ d,
73
+ o[e.variant],
74
+ n[e.size],
75
+ l,
76
+ e.error ? "border-destructive focus-visible:ring-destructive" : "",
77
+ // Left Padding
78
+ e.icon ? "pl-9" : R && !g.value ? "pl-0" : "",
79
+ // Right Padding
80
+ e.showClearButton && C.value || e.type === "password" || e.loading || e.iconRight ? "pr-9" : R && !p.value ? "pr-0" : "",
81
+ e.inputClass
82
+ ].join(" ");
83
+ }), B = {
84
+ sm: "text-xs",
85
+ md: "text-sm",
86
+ lg: "text-base"
87
+ }, N = a(() => {
88
+ const d = {
89
+ sm: "rounded-l-sm",
90
+ md: "rounded-l-md",
91
+ lg: "rounded-l-lg",
92
+ full: "rounded-l-full",
93
+ none: "rounded-none",
94
+ xl: "rounded-l-xl",
95
+ "2xl": "rounded-l-2xl"
96
+ }, o = !!m["addon-left"];
97
+ return [
98
+ "flex items-center justify-center whitespace-nowrap",
99
+ o ? "border-none" : "bg-muted border border-input border-r-0! px-3 text-muted-foreground",
100
+ o ? "" : B[e.size],
101
+ d[e.rounded] || "rounded-l-md",
102
+ e.addonLeftClass
103
+ ].join(" ");
104
+ }), T = a(() => {
105
+ const d = {
106
+ sm: "rounded-r-sm",
107
+ md: "rounded-r-md",
108
+ lg: "rounded-r-lg",
109
+ full: "rounded-r-full",
110
+ none: "rounded-none",
111
+ xl: "rounded-r-xl",
112
+ "2xl": "rounded-r-2xl"
113
+ }, o = !!m["addon-right"];
114
+ return [
115
+ "flex items-center justify-center whitespace-nowrap",
116
+ o ? "border-none" : "bg-muted border border-input border-l-0! px-3 text-muted-foreground",
117
+ o ? "" : B[e.size],
118
+ d[e.rounded] || "rounded-r-md",
119
+ e.addonRightClass
120
+ ].join(" ");
121
+ }), E = (d) => {
122
+ if (e.lazy) return;
123
+ const o = d.target;
124
+ u("update:modelValue", o.value);
125
+ }, F = (d) => {
126
+ const o = d.target;
127
+ e.lazy && u("update:modelValue", o.value), u("change", o.value);
128
+ }, M = () => {
129
+ b.value = !b.value;
130
+ }, D = () => {
131
+ u("update:modelValue", ""), P(() => {
132
+ y.value?.focus();
133
+ });
134
+ };
135
+ return q(() => {
136
+ e.autofocus && P(() => {
137
+ y.value?.focus();
138
+ });
139
+ }), (d, o) => (r(), s("div", {
140
+ class: c(A.value)
141
+ }, [
142
+ t.label ? (r(), x(H, {
143
+ key: 0,
144
+ for: t.label,
145
+ class: c(["mb-1.5", t.labelPosition !== "top" ? "mb-0" : ""].join(" "))
146
+ }, {
147
+ default: G(() => [
148
+ h(v(t.label), 1)
149
+ ]),
150
+ _: 1
151
+ }, 8, ["for", "class"])) : i("", !0),
152
+ w("div", {
153
+ class: c(I.value)
154
+ }, [
155
+ g.value ? (r(), s("div", {
156
+ key: 0,
157
+ class: c(N.value)
158
+ }, [
159
+ S(d.$slots, "addon-left", {}, () => [
160
+ h(v(t.addonLeft), 1)
161
+ ])
162
+ ], 2)) : i("", !0),
163
+ w("div", K, [
164
+ t.type === "textarea" ? (r(), x(J, {
165
+ key: 0,
166
+ "model-value": String(t.modelValue),
167
+ placeholder: t.placeholder,
168
+ disabled: t.disabled,
169
+ rows: t.rows,
170
+ class: c(V.value),
171
+ "onUpdate:modelValue": o[0] || (o[0] = (n) => u("update:modelValue", n)),
172
+ onBlur: o[1] || (o[1] = (n) => u("blur", n)),
173
+ onFocus: o[2] || (o[2] = (n) => u("focus", n))
174
+ }, null, 8, ["model-value", "placeholder", "disabled", "rows", "class"])) : (r(), s("input", {
175
+ key: 1,
176
+ ref_key: "inputRef",
177
+ ref: y,
178
+ type: $.value,
179
+ value: t.modelValue,
180
+ placeholder: t.placeholder,
181
+ disabled: t.disabled,
182
+ min: t.min,
183
+ max: t.max,
184
+ class: c(V.value),
185
+ onInput: E,
186
+ onChange: F,
187
+ onBlur: o[3] || (o[3] = (n) => u("blur", n)),
188
+ onFocus: o[4] || (o[4] = (n) => u("focus", n))
189
+ }, null, 42, O)),
190
+ t.icon ? (r(), s("div", {
191
+ key: 2,
192
+ class: "absolute left-3 top-1/2 -translate-y-1/2 flex items-center justify-center cursor-pointer text-muted-foreground hover:text-foreground",
193
+ onClick: o[5] || (o[5] = (n) => u("click:icon", n))
194
+ }, [
195
+ k(f, {
196
+ icon: t.icon,
197
+ class: "h-4 w-4"
198
+ }, null, 8, ["icon"])
199
+ ])) : i("", !0),
200
+ w("div", Q, [
201
+ t.loading ? (r(), x(f, {
202
+ key: 0,
203
+ icon: "lucide:loader-2",
204
+ class: "h-4 w-4 animate-spin text-muted-foreground"
205
+ })) : t.iconRight ? (r(), x(f, {
206
+ key: 1,
207
+ icon: t.iconRight,
208
+ class: "h-4 w-4 text-muted-foreground cursor-pointer hover:text-foreground",
209
+ onClick: o[6] || (o[6] = (n) => u("click:icon-right", n))
210
+ }, null, 8, ["icon"])) : i("", !0),
211
+ t.type === "password" && !t.disabled ? (r(), s("button", {
212
+ key: 2,
213
+ type: "button",
214
+ class: "flex items-center justify-center text-muted-foreground hover:text-foreground focus:outline-none",
215
+ onClick: M
216
+ }, [
217
+ k(f, {
218
+ icon: b.value ? "lucide:eye-off" : "lucide:eye",
219
+ class: "h-4 w-4"
220
+ }, null, 8, ["icon"])
221
+ ])) : i("", !0),
222
+ t.showClearButton && C.value && !t.disabled && !t.loading && t.type !== "textarea" && t.type !== "password" ? (r(), s("button", {
223
+ key: 3,
224
+ type: "button",
225
+ class: "flex items-center justify-center text-muted-foreground hover:text-foreground focus:outline-none",
226
+ onClick: D
227
+ }, [
228
+ k(f, {
229
+ icon: "lucide:x-circle",
230
+ class: "h-4 w-4"
231
+ })
232
+ ])) : i("", !0)
233
+ ])
234
+ ]),
235
+ p.value ? (r(), s("div", {
236
+ key: 1,
237
+ class: c(T.value)
238
+ }, [
239
+ S(d.$slots, "addon-right", {}, () => [
240
+ h(v(t.addonRight), 1)
241
+ ])
242
+ ], 2)) : i("", !0)
243
+ ], 2),
244
+ t.error ? (r(), s("p", X, v(t.error), 1)) : i("", !0)
245
+ ], 2));
246
+ }
247
+ });
248
+ export {
249
+ te as default
250
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Input.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,23 @@
1
+ interface Props {
2
+ for?: string;
3
+ class?: string;
4
+ }
5
+ declare function __VLS_template(): {
6
+ attrs: Partial<{}>;
7
+ slots: {
8
+ default?(_: {}): any;
9
+ };
10
+ refs: {};
11
+ rootEl: HTMLLabelElement;
12
+ };
13
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
14
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
15
+ class: string;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLLabelElement>;
17
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
18
+ export default _default;
19
+ type __VLS_WithTemplateSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,23 @@
1
+ import { defineComponent as l, computed as r, openBlock as a, createElementBlock as n, normalizeClass as c, renderSlot as d } from "vue";
2
+ const p = ["for"], m = /* @__PURE__ */ l({
3
+ __name: "Label",
4
+ props: {
5
+ for: {},
6
+ class: { default: "" }
7
+ },
8
+ setup(o) {
9
+ const e = o, s = r(() => [
10
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
11
+ e.class
12
+ ].join(" "));
13
+ return (t, f) => (a(), n("label", {
14
+ for: e.for,
15
+ class: c(s.value)
16
+ }, [
17
+ d(t.$slots, "default")
18
+ ], 10, p));
19
+ }
20
+ });
21
+ export {
22
+ m as default
23
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Label.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { defineComponent as e } from "vue";
2
+ const _ = /* @__PURE__ */ e({
3
+ __name: "Logo",
4
+ setup(n) {
5
+ return (o, t) => null;
6
+ }
7
+ });
8
+ export {
9
+ _ as default
10
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Logo.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,31 @@
1
+ import { MasonryProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {
6
+ data: any;
7
+ index: number;
8
+ colIndex: number;
9
+ }): any;
10
+ };
11
+ refs: {
12
+ containerRef: unknown;
13
+ };
14
+ rootEl: any;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<MasonryProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<MasonryProps> & Readonly<{}>, {
18
+ gap: number;
19
+ cols: number | Record<string | number, number>;
20
+ tag: string;
21
+ itemKey: string;
22
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
23
+ containerRef: unknown;
24
+ }, any>;
25
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
26
+ export default _default;
27
+ type __VLS_WithTemplateSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./Masonry.vue2.js";
2
+ /* empty css */
3
+ import r from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-5c6cb3dc"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -0,0 +1,77 @@
1
+ import { defineComponent as N, ref as d, computed as p, onMounted as B, onUnmounted as K, openBlock as s, createBlock as O, resolveDynamicComponent as z, normalizeStyle as v, withCtx as C, createElementBlock as i, Fragment as y, renderList as g, renderSlot as S } from "vue";
2
+ import { MASONRY_BREAKPOINTS as b } from "./types.js";
3
+ import { debounce as A } from "../../utils/functions.js";
4
+ const j = /* @__PURE__ */ N({
5
+ __name: "Masonry",
6
+ props: {
7
+ data: {},
8
+ cols: { default: () => ({ default: 1, sm: 2, lg: 3 }) },
9
+ gap: { default: 16 },
10
+ tag: { default: "div" },
11
+ itemKey: { default: "id" }
12
+ },
13
+ setup(c) {
14
+ const l = c, a = d(null), f = d(0), u = d(null), x = () => {
15
+ a.value && (f.value = a.value.clientWidth);
16
+ }, h = p(() => {
17
+ if (typeof l.cols == "number") return l.cols;
18
+ const t = f.value;
19
+ if (!t) return l.cols.default || 1;
20
+ let n = l.cols.default || 1;
21
+ const o = Object.keys(l.cols).map((e) => {
22
+ let r = 0;
23
+ return typeof e == "number" || !isNaN(Number(e)) ? r = Number(e) : e in b && (r = b[e]), { k: e, px: r, val: l.cols[e] };
24
+ }).filter((e) => e.val !== void 0).sort((e, r) => e.px - r.px);
25
+ for (const e of o)
26
+ t >= e.px && (n = e.val);
27
+ return n || 1;
28
+ }), R = p(() => {
29
+ const t = h.value, n = Array.from({ length: t }, () => []), o = l.data.length;
30
+ for (let e = 0; e < o; e++)
31
+ n[e % t].push(l.data[e]);
32
+ return n;
33
+ });
34
+ B(() => {
35
+ x();
36
+ const t = A((n) => {
37
+ const o = n[0];
38
+ o && (f.value = o.contentRect.width);
39
+ }, 100);
40
+ u.value = new ResizeObserver(t), a.value && u.value.observe(a.value);
41
+ }), K(() => {
42
+ u.value && (u.value.disconnect(), u.value = null);
43
+ });
44
+ const w = (t, n) => t && typeof t == "object" && l.itemKey in t ? t[l.itemKey] : n;
45
+ return (t, n) => (s(), O(z(c.tag), {
46
+ ref_key: "containerRef",
47
+ ref: a,
48
+ class: "flex w-full",
49
+ style: v({ gap: `${c.gap}px` })
50
+ }, {
51
+ default: C(() => [
52
+ (s(!0), i(y, null, g(R.value, (o, e) => (s(), i("div", {
53
+ key: e,
54
+ class: "flex flex-col flex-1 min-w-0",
55
+ style: v({ gap: `${c.gap}px` }),
56
+ role: "list"
57
+ }, [
58
+ (s(!0), i(y, null, g(o, (r, m) => (s(), i("div", {
59
+ key: w(r, m),
60
+ class: "masonry-item",
61
+ role: "listitem"
62
+ }, [
63
+ S(t.$slots, "default", {
64
+ data: r,
65
+ index: m,
66
+ colIndex: e
67
+ }, void 0, !0)
68
+ ]))), 128))
69
+ ], 4))), 128))
70
+ ]),
71
+ _: 3
72
+ }, 8, ["style"]));
73
+ }
74
+ });
75
+ export {
76
+ j as default
77
+ };
@@ -0,0 +1,2 @@
1
+ export { default as Masonry } from './Masonry.vue';
2
+ export * from './types';
@@ -0,0 +1,33 @@
1
+ export interface MasonryProps {
2
+ /**
3
+ * Array of items to render
4
+ */
5
+ data: any[];
6
+ /**
7
+ * Column configuration object.
8
+ * Can be number keys (width in px) or string keys ('sm', 'md', 'lg', 'xl', '2xl').
9
+ * Values are element counts.
10
+ * Example: { default: 1, md: 2, lg: 3 }
11
+ */
12
+ cols?: number | Record<string | number, number>;
13
+ /**
14
+ * Gap between columns and rows (in px or tailwind class number equivalent if implemented manually).
15
+ * For simplicity here, we assume it's a number representing pixels or 'rem' spacing via style,
16
+ * or a simple numeric multiplier for standard spacing.
17
+ * Defaults to 16 (px) or similar.
18
+ */
19
+ gap?: number;
20
+ /**
21
+ * Element used for the root container
22
+ */
23
+ tag?: string;
24
+ /**
25
+ * Key property name in data items to use as unique key.
26
+ * Defaults to 'id'. If not found, uses index (not recommended for large lists).
27
+ */
28
+ itemKey?: string;
29
+ }
30
+ /**
31
+ * Breakpoint values mapping in pixels
32
+ */
33
+ export declare const MASONRY_BREAKPOINTS: Record<string, number>;
@@ -0,0 +1,10 @@
1
+ const l = {
2
+ sm: 640,
3
+ md: 768,
4
+ lg: 1024,
5
+ xl: 1280,
6
+ "2xl": 1536
7
+ };
8
+ export {
9
+ l as MASONRY_BREAKPOINTS
10
+ };
@@ -0,0 +1,43 @@
1
+ interface Props {
2
+ show: boolean;
3
+ title?: string;
4
+ maxWidth?: string;
5
+ closeOutside?: boolean;
6
+ description?: string;
7
+ triggerClass?: string;
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ trigger?(_: {}): any;
13
+ default?(_: {
14
+ close: () => void;
15
+ }): any;
16
+ footer?(_: {
17
+ close: () => void;
18
+ }): any;
19
+ };
20
+ refs: {};
21
+ rootEl: any;
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
+ close: () => any;
26
+ onOpen: () => any;
27
+ "update:show": (value: boolean) => any;
28
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
29
+ onClose?: () => any;
30
+ onOnOpen?: () => any;
31
+ "onUpdate:show"?: (value: boolean) => any;
32
+ }>, {
33
+ show: boolean;
34
+ maxWidth: string;
35
+ closeOutside: boolean;
36
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
37
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
38
+ export default _default;
39
+ type __VLS_WithTemplateSlots<T, S> = T & {
40
+ new (): {
41
+ $slots: S;
42
+ };
43
+ };
@@ -0,0 +1,100 @@
1
+ import { defineComponent as k, ref as w, watch as f, onUnmounted as C, openBlock as o, createElementBlock as n, Fragment as B, createElementVNode as i, normalizeClass as m, withModifiers as p, renderSlot as c, createBlock as $, Teleport as O, createVNode as h, Transition as S, withCtx as z, toDisplayString as y, createCommentVNode as a } from "vue";
2
+ import E from "./Button.vue.js";
3
+ import { useKeyStroke as N } from "../composables/useKeyStroke.js";
4
+ const V = {
5
+ key: 0,
6
+ class: "flex-none flex flex-col space-y-1.5 pb-0 border-b"
7
+ }, _ = { class: "flex items-center justify-between bg-muted py-2.5 px-4 rounded-t-xl" }, j = { class: "text-lg font-semibold leading-none tracking-tight" }, K = { class: "flex-1 overflow-y-auto px-4 py-4 min-h-0" }, M = {
8
+ key: 0,
9
+ class: "text-sm text-muted-foreground mb-2"
10
+ }, T = {
11
+ key: 1,
12
+ class: "flex-none flex items-center px-4 py-3 border-t rounded-b-xl"
13
+ }, U = /* @__PURE__ */ k({
14
+ __name: "Modal",
15
+ props: {
16
+ show: { type: Boolean, default: !1 },
17
+ title: {},
18
+ maxWidth: { default: "sm:max-w-lg" },
19
+ closeOutside: { type: Boolean, default: !0 },
20
+ description: {},
21
+ triggerClass: {}
22
+ },
23
+ emits: ["close", "update:show", "onOpen"],
24
+ setup(t, { emit: x }) {
25
+ const r = t, d = x, s = w(r.show);
26
+ f(
27
+ () => r.show,
28
+ (e) => {
29
+ s.value = e, e && d("onOpen");
30
+ }
31
+ );
32
+ const b = () => {
33
+ s.value = !0;
34
+ }, l = () => {
35
+ s.value = !1, d("update:show", !1), d("close");
36
+ }, v = () => {
37
+ r.closeOutside && l();
38
+ }, { onKeyStroke: g } = N();
39
+ return g("Escape", l), f(s, (e) => {
40
+ e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "";
41
+ }), C(() => {
42
+ document.body.style.overflow = "";
43
+ }), (e, u) => (o(), n(B, null, [
44
+ i("span", {
45
+ onClick: p(b, ["stop"]),
46
+ class: m(`${t.triggerClass}`)
47
+ }, [
48
+ c(e.$slots, "trigger")
49
+ ], 2),
50
+ (o(), $(O, { to: "body" }, [
51
+ h(S, {
52
+ "enter-active-class": "transition duration-200 ease-out",
53
+ "enter-from-class": "opacity-0",
54
+ "enter-to-class": "opacity-100",
55
+ "leave-active-class": "transition duration-150 ease-in",
56
+ "leave-from-class": "opacity-100",
57
+ "leave-to-class": "opacity-0"
58
+ }, {
59
+ default: z(() => [
60
+ s.value ? (o(), n("div", {
61
+ key: 0,
62
+ class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",
63
+ onClick: v
64
+ }, [
65
+ i("div", {
66
+ class: m(["relative w-full rounded border border-border bg-background text-foreground shadow-lg flex flex-col max-h-[85vh] sm:max-h-[90vh]", [t.maxWidth]]),
67
+ onClick: u[0] || (u[0] = p(() => {
68
+ }, ["stop"]))
69
+ }, [
70
+ t.title ? (o(), n("div", V, [
71
+ i("div", _, [
72
+ i("h3", j, y(t.title), 1),
73
+ h(E, {
74
+ rounded: "full",
75
+ size: "sm",
76
+ icon: "lucide:x",
77
+ variant: "ghost",
78
+ onClick: l
79
+ })
80
+ ])
81
+ ])) : a("", !0),
82
+ i("div", K, [
83
+ t.description ? (o(), n("p", M, y(t.description), 1)) : a("", !0),
84
+ c(e.$slots, "default", { close: l })
85
+ ]),
86
+ e.$slots.footer ? (o(), n("div", T, [
87
+ c(e.$slots, "footer", { close: l })
88
+ ])) : a("", !0)
89
+ ], 2)
90
+ ])) : a("", !0)
91
+ ]),
92
+ _: 3
93
+ })
94
+ ]))
95
+ ], 64));
96
+ }
97
+ });
98
+ export {
99
+ U as default
100
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Modal.vue.js";
2
+ export {
3
+ f as default
4
+ };