vlite3 0.1.0 → 0.1.2

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 (465) hide show
  1. package/_virtual/_plugin-vue_export-helper.js +9 -0
  2. package/components/Accordion/Accordion.vue.d.ts +44 -0
  3. package/components/Accordion/Accordion.vue.js +95 -0
  4. package/components/Accordion/Accordion.vue2.js +4 -0
  5. package/components/Accordion/AccordionContent.vue.d.ts +22 -0
  6. package/components/Accordion/AccordionContent.vue.js +7 -0
  7. package/components/Accordion/AccordionContent.vue2.js +47 -0
  8. package/components/Accordion/AccordionItem.vue.d.ts +56 -0
  9. package/components/Accordion/AccordionItem.vue.js +115 -0
  10. package/components/Accordion/AccordionItem.vue2.js +4 -0
  11. package/components/Accordion/AccordionTrigger.vue.d.ts +43 -0
  12. package/components/Accordion/AccordionTrigger.vue.js +94 -0
  13. package/components/Accordion/AccordionTrigger.vue2.js +4 -0
  14. package/components/Accordion/index.d.ts +5 -0
  15. package/components/Accordion/types.d.ts +33 -0
  16. package/components/Alert.vue.d.ts +36 -0
  17. package/components/Alert.vue.js +84 -0
  18. package/components/Alert.vue2.js +4 -0
  19. package/components/Avatar.vue.d.ts +32 -0
  20. package/components/Avatar.vue.js +78 -0
  21. package/components/Avatar.vue2.js +4 -0
  22. package/components/AvatarUploader/AvatarUploader.vue.d.ts +32 -0
  23. package/components/AvatarUploader/AvatarUploader.vue.js +99 -0
  24. package/components/AvatarUploader/AvatarUploader.vue2.js +4 -0
  25. package/{src/components/AvatarUploader/index.ts → components/AvatarUploader/index.d.ts} +2 -2
  26. package/components/Badge.vue.d.ts +25 -0
  27. package/components/Badge.vue.js +27 -0
  28. package/components/Badge.vue2.js +4 -0
  29. package/components/Button.vue.d.ts +26 -0
  30. package/components/Button.vue.js +107 -0
  31. package/components/Button.vue2.js +4 -0
  32. package/components/ButtonGroup.vue.d.ts +29 -0
  33. package/components/ButtonGroup.vue.js +7 -0
  34. package/components/ButtonGroup.vue2.js +30 -0
  35. package/components/Carousel/Carousel.vue.d.ts +847 -0
  36. package/components/Carousel/Carousel.vue.js +7 -0
  37. package/components/Carousel/Carousel.vue2.js +68 -0
  38. package/components/Carousel/index.d.ts +2 -0
  39. package/components/Carousel/types.d.ts +24 -0
  40. package/components/CheckBox.vue.d.ts +27 -0
  41. package/components/CheckBox.vue.js +115 -0
  42. package/components/CheckBox.vue2.js +4 -0
  43. package/components/Chip/Chip.vue.d.ts +33 -0
  44. package/components/Chip/Chip.vue.js +113 -0
  45. package/components/Chip/Chip.vue2.js +4 -0
  46. package/components/Chip/index.d.ts +2 -0
  47. package/components/Chip/types.d.ts +12 -0
  48. package/components/ChoiceBox/ChoiceBox.vue.d.ts +32 -0
  49. package/components/ChoiceBox/ChoiceBox.vue.js +141 -0
  50. package/components/ChoiceBox/ChoiceBox.vue2.js +4 -0
  51. package/components/ChoiceBox/index.d.ts +2 -0
  52. package/components/ColorPicker/ColorIro.vue.d.ts +18 -0
  53. package/components/ColorPicker/ColorIro.vue.js +142 -0
  54. package/components/ColorPicker/ColorIro.vue3.js +5 -0
  55. package/components/ColorPicker/ColorPicker.vue.d.ts +22 -0
  56. package/components/ColorPicker/ColorPicker.vue.js +56 -0
  57. package/components/ColorPicker/ColorPicker.vue2.js +4 -0
  58. package/components/ConfirmationModal.vue.d.ts +39 -0
  59. package/components/ConfirmationModal.vue.js +55 -0
  60. package/components/ConfirmationModal.vue2.js +4 -0
  61. package/components/DataTable/DataTable.vue.d.ts +60 -0
  62. package/components/DataTable/DataTable.vue.js +7 -0
  63. package/components/DataTable/DataTable.vue2.js +310 -0
  64. package/components/DataTable/DataTableHeader.vue.d.ts +14 -0
  65. package/components/DataTable/DataTableHeader.vue.js +49 -0
  66. package/components/DataTable/DataTableHeader.vue2.js +4 -0
  67. package/components/DataTable/DataTableRow.vue.d.ts +51 -0
  68. package/components/DataTable/DataTableRow.vue.js +114 -0
  69. package/components/DataTable/DataTableRow.vue2.js +4 -0
  70. package/components/DataTable/DataTableToolbar.vue.d.ts +31 -0
  71. package/components/DataTable/DataTableToolbar.vue.js +45 -0
  72. package/components/DataTable/DataTableToolbar.vue2.js +4 -0
  73. package/components/DataTable/index.d.ts +4 -0
  74. package/components/DataTable/types.d.ts +75 -0
  75. package/components/DatePicker.vue.d.ts +44 -0
  76. package/components/DatePicker.vue.js +84 -0
  77. package/components/DatePicker.vue2.js +4 -0
  78. package/components/Dropdown/Dropdown.vue.d.ts +105 -0
  79. package/components/Dropdown/Dropdown.vue.js +206 -0
  80. package/components/Dropdown/Dropdown.vue2.js +4 -0
  81. package/components/Dropdown/DropdownBooleanItem.vue.d.ts +12 -0
  82. package/components/Dropdown/DropdownBooleanItem.vue.js +41 -0
  83. package/components/Dropdown/DropdownBooleanItem.vue2.js +4 -0
  84. package/components/Dropdown/DropdownGroupedLayout.vue.d.ts +21 -0
  85. package/components/Dropdown/DropdownGroupedLayout.vue.js +73 -0
  86. package/components/Dropdown/DropdownGroupedLayout.vue2.js +4 -0
  87. package/components/Dropdown/DropdownItem.vue.d.ts +35 -0
  88. package/components/Dropdown/DropdownItem.vue.js +56 -0
  89. package/components/Dropdown/DropdownItem.vue2.js +4 -0
  90. package/components/Dropdown/DropdownMenu.vue.d.ts +73 -0
  91. package/components/Dropdown/DropdownMenu.vue.js +232 -0
  92. package/components/Dropdown/DropdownMenu.vue2.js +4 -0
  93. package/components/Dropdown/DropdownTrigger.vue.d.ts +15 -0
  94. package/components/Dropdown/DropdownTrigger.vue.js +26 -0
  95. package/components/Dropdown/DropdownTrigger.vue2.js +4 -0
  96. package/components/Dropdown/composables/useDropdownIds.d.ts +5 -0
  97. package/components/Dropdown/composables/useDropdownIds.js +20 -0
  98. package/components/Dropdown/composables/useDropdownNavigation.d.ts +19 -0
  99. package/components/Dropdown/composables/useDropdownNavigation.js +49 -0
  100. package/components/Dropdown/composables/useDropdownSelection.d.ts +16 -0
  101. package/components/Dropdown/composables/useDropdownSelection.js +41 -0
  102. package/components/Dropdown/index.d.ts +6 -0
  103. package/components/FilePicker/FilePicker.vue.d.ts +65 -0
  104. package/components/FilePicker/FilePicker.vue.js +285 -0
  105. package/components/FilePicker/FilePicker.vue2.js +4 -0
  106. package/components/FilePicker/index.d.ts +2 -0
  107. package/components/FileTree/FileTree.vue.d.ts +20 -0
  108. package/components/FileTree/FileTree.vue.js +139 -0
  109. package/components/FileTree/FileTree.vue2.js +4 -0
  110. package/components/FileTree/FileTreeNode.vue.d.ts +28 -0
  111. package/components/FileTree/FileTreeNode.vue.js +184 -0
  112. package/components/FileTree/FileTreeNode.vue2.js +4 -0
  113. package/components/FileTree/index.d.ts +4 -0
  114. package/components/FileTree/types.d.ts +36 -0
  115. package/components/FileTree/useTreeSelection.d.ts +12 -0
  116. package/components/FileTree/useTreeSelection.js +25 -0
  117. package/components/Form/CustomFields.vue.d.ts +38 -0
  118. package/components/Form/CustomFields.vue.js +7 -0
  119. package/components/Form/CustomFields.vue2.js +161 -0
  120. package/components/Form/Form.vue.d.ts +94 -0
  121. package/components/Form/Form.vue.js +7 -0
  122. package/components/Form/Form.vue2.js +238 -0
  123. package/components/Form/FormField.vue.d.ts +28 -0
  124. package/components/Form/FormField.vue.js +207 -0
  125. package/components/Form/FormField.vue2.js +4 -0
  126. package/components/Form/FormFields.vue.d.ts +29 -0
  127. package/components/Form/FormFields.vue.js +7 -0
  128. package/components/Form/FormFields.vue2.js +95 -0
  129. package/components/Form/composables/useFileUpload.d.ts +24 -0
  130. package/components/Form/composables/useFileUpload.js +40 -0
  131. package/components/Form/composables/useForm.d.ts +48 -0
  132. package/components/Form/composables/useForm.js +109 -0
  133. package/components/Form/index.d.ts +9 -0
  134. package/components/Form/types.d.ts +167 -0
  135. package/components/Form/utils/form.utils.d.ts +44 -0
  136. package/components/Form/utils/form.utils.js +97 -0
  137. package/components/Heatmap/Heatmap.vue.d.ts +26 -0
  138. package/components/Heatmap/Heatmap.vue.js +7 -0
  139. package/components/Heatmap/Heatmap.vue2.js +326 -0
  140. package/components/Heatmap/index.d.ts +2 -0
  141. package/components/Heatmap/types.d.ts +66 -0
  142. package/components/Icon.vue.d.ts +7 -0
  143. package/components/Icon.vue.js +25 -0
  144. package/components/Icon.vue2.js +4 -0
  145. package/components/IconPicker.vue.d.ts +38 -0
  146. package/components/IconPicker.vue.js +124 -0
  147. package/components/IconPicker.vue2.js +4 -0
  148. package/components/Input.vue.d.ts +54 -0
  149. package/components/Input.vue.js +267 -0
  150. package/components/Input.vue2.js +4 -0
  151. package/components/Label.vue.d.ts +23 -0
  152. package/components/Label.vue.js +23 -0
  153. package/components/Label.vue2.js +4 -0
  154. package/components/Logo.vue.d.ts +2 -0
  155. package/components/Logo.vue.js +10 -0
  156. package/components/Logo.vue2.js +4 -0
  157. package/components/Masonry/Masonry.vue.d.ts +31 -0
  158. package/components/Masonry/Masonry.vue.js +7 -0
  159. package/components/Masonry/Masonry.vue2.js +83 -0
  160. package/components/Masonry/index.d.ts +2 -0
  161. package/components/Masonry/types.d.ts +33 -0
  162. package/components/Masonry/types.js +10 -0
  163. package/components/Modal.vue.d.ts +52 -0
  164. package/components/Modal.vue.js +116 -0
  165. package/components/Modal.vue2.js +4 -0
  166. package/components/MultiSelect/MultiSelect.vue.d.ts +40 -0
  167. package/components/MultiSelect/MultiSelect.vue.js +126 -0
  168. package/components/MultiSelect/MultiSelect.vue2.js +4 -0
  169. package/components/MultiSelect/index.d.ts +1 -0
  170. package/components/Navbar/Navbar.vue.d.ts +51 -0
  171. package/components/Navbar/Navbar.vue.js +198 -0
  172. package/components/Navbar/Navbar.vue2.js +4 -0
  173. package/components/Navbar/NavbarGroup.vue.d.ts +24 -0
  174. package/components/Navbar/NavbarGroup.vue.js +23 -0
  175. package/components/Navbar/NavbarGroup.vue2.js +4 -0
  176. package/components/Navbar/NavbarItem.vue.d.ts +40 -0
  177. package/components/Navbar/NavbarItem.vue.js +104 -0
  178. package/components/Navbar/NavbarItem.vue2.js +4 -0
  179. package/components/Navbar/index.d.ts +3 -0
  180. package/components/OTPInput/OTPInput.vue.d.ts +33 -0
  181. package/components/OTPInput/OTPInput.vue.js +115 -0
  182. package/components/OTPInput/OTPInput.vue2.js +4 -0
  183. package/components/OTPInput/index.d.ts +1 -0
  184. package/components/Pagination/Pagination.vue.d.ts +34 -0
  185. package/components/Pagination/Pagination.vue.js +196 -0
  186. package/components/Pagination/Pagination.vue2.js +4 -0
  187. package/components/Pagination/index.d.ts +1 -0
  188. package/components/PricingPlan/PricingPlan.vue.d.ts +22 -0
  189. package/components/PricingPlan/PricingPlan.vue.js +55 -0
  190. package/components/PricingPlan/PricingPlan.vue2.js +4 -0
  191. package/components/PricingPlan/PricingPlanItem.vue.d.ts +17 -0
  192. package/components/PricingPlan/PricingPlanItem.vue.js +94 -0
  193. package/components/PricingPlan/PricingPlanItem.vue2.js +4 -0
  194. package/components/PricingPlan/index.d.ts +3 -0
  195. package/components/PricingPlan/types.d.ts +25 -0
  196. package/components/SidePanel.vue.d.ts +64 -0
  197. package/components/SidePanel.vue.js +7 -0
  198. package/components/SidePanel.vue2.js +131 -0
  199. package/components/SidebarMenu/SidebarMenu.vue.d.ts +11 -0
  200. package/components/SidebarMenu/SidebarMenu.vue.js +78 -0
  201. package/components/SidebarMenu/SidebarMenu.vue2.js +4 -0
  202. package/components/SidebarMenu/SidebarMenuItem.vue.d.ts +9 -0
  203. package/components/SidebarMenu/SidebarMenuItem.vue.js +269 -0
  204. package/components/SidebarMenu/SidebarMenuItem.vue3.js +5 -0
  205. package/components/SidebarMenu/index.d.ts +3 -0
  206. package/components/SidebarMenu/types.d.ts +35 -0
  207. package/components/Slider.vue.d.ts +31 -0
  208. package/components/Slider.vue.js +157 -0
  209. package/components/Slider.vue2.js +4 -0
  210. package/components/Switch.vue.d.ts +16 -0
  211. package/components/Switch.vue.js +40 -0
  212. package/components/Switch.vue2.js +4 -0
  213. package/components/Tabes/Tabes.vue.d.ts +21 -0
  214. package/components/Tabes/Tabes.vue.js +75 -0
  215. package/components/Tabes/Tabes.vue2.js +4 -0
  216. package/components/Tabes/index.d.ts +2 -0
  217. package/components/Tabes/types.d.ts +8 -0
  218. package/components/Textarea.vue.d.ts +22 -0
  219. package/components/Textarea.vue.js +34 -0
  220. package/components/Textarea.vue2.js +4 -0
  221. package/components/ThemeToggle.vue.d.ts +2 -0
  222. package/components/ThemeToggle.vue.js +18 -0
  223. package/components/ThemeToggle.vue2.js +4 -0
  224. package/components/Timeline.vue.d.ts +39 -0
  225. package/components/Timeline.vue.js +174 -0
  226. package/components/Timeline.vue2.js +4 -0
  227. package/components/ToastNotification.vue.d.ts +7 -0
  228. package/components/ToastNotification.vue.js +7 -0
  229. package/components/ToastNotification.vue2.js +151 -0
  230. package/components/Tooltip.vue.d.ts +31 -0
  231. package/components/Tooltip.vue.js +45 -0
  232. package/components/Tooltip.vue2.js +4 -0
  233. package/components/Workbook/Sheet.vue.d.ts +38 -0
  234. package/components/Workbook/Sheet.vue.js +141 -0
  235. package/components/Workbook/Sheet.vue2.js +4 -0
  236. package/components/Workbook/Workbook.vue.d.ts +54 -0
  237. package/components/Workbook/Workbook.vue.js +7 -0
  238. package/components/Workbook/Workbook.vue2.js +146 -0
  239. package/components/Workbook/WorkbookAddButton.vue.d.ts +6 -0
  240. package/components/Workbook/WorkbookAddButton.vue.js +20 -0
  241. package/components/Workbook/WorkbookAddButton.vue2.js +4 -0
  242. package/components/Workbook/index.d.ts +3 -0
  243. package/components/Workbook/types.d.ts +34 -0
  244. package/composables/useKeyStroke.d.ts +21 -0
  245. package/composables/useKeyStroke.js +93 -0
  246. package/composables/useNotifications.d.ts +113 -0
  247. package/composables/useNotifications.js +99 -0
  248. package/composables/useTheme.d.ts +6 -0
  249. package/composables/useTheme.js +32 -0
  250. package/core/config.d.ts +29 -0
  251. package/core/config.js +12 -0
  252. package/core/index.d.ts +31 -0
  253. package/core/index.js +15 -0
  254. package/directives/vRipple.d.ts +4 -0
  255. package/directives/vRipple.js +17 -0
  256. package/index.d.ts +49 -0
  257. package/index.js +156 -0
  258. package/package.json +2 -2
  259. package/style.css +590 -0
  260. package/types/alert.type.d.ts +10 -0
  261. package/{src/types/avatar.type.ts → types/avatar.type.d.ts} +8 -9
  262. package/types/button.d.ts +15 -0
  263. package/types/buttongroup.type.d.ts +1 -0
  264. package/{src/types/config.type.ts → types/config.type.d.ts} +13 -16
  265. package/types/form.type.d.ts +45 -0
  266. package/types/index.d.ts +10 -0
  267. package/types/navbar.type.d.ts +27 -0
  268. package/types/sidepanel.type.d.ts +13 -0
  269. package/types/styles.d.ts +28 -0
  270. package/types/timeline.type.d.ts +9 -0
  271. package/{src/utils/functions.ts → utils/functions.d.ts} +1 -9
  272. package/utils/functions.js +11 -0
  273. package/utils/index.d.ts +2 -0
  274. package/utils/object.d.ts +6 -0
  275. package/utils/object.js +14 -0
  276. package/.vscode/extensions.json +0 -3
  277. package/LICENSE +0 -21
  278. package/index.html +0 -16
  279. package/scripts/bundle-css.js +0 -45
  280. package/src/App.vue +0 -7
  281. package/src/components/Accordion/Accordion.vue +0 -139
  282. package/src/components/Accordion/AccordionContent.vue +0 -63
  283. package/src/components/Accordion/AccordionItem.vue +0 -163
  284. package/src/components/Accordion/AccordionTrigger.vue +0 -125
  285. package/src/components/Accordion/index.ts +0 -5
  286. package/src/components/Accordion/types.ts +0 -41
  287. package/src/components/Alert.vue +0 -112
  288. package/src/components/Avatar.vue +0 -110
  289. package/src/components/AvatarUploader/AvatarUploader.vue +0 -129
  290. package/src/components/Badge.vue +0 -45
  291. package/src/components/Button.vue +0 -122
  292. package/src/components/ButtonGroup.vue +0 -173
  293. package/src/components/Carousel/Carousel.vue +0 -84
  294. package/src/components/Carousel/index.ts +0 -2
  295. package/src/components/Carousel/types.ts +0 -25
  296. package/src/components/CheckBox.vue +0 -132
  297. package/src/components/Chip/Chip.vue +0 -158
  298. package/src/components/Chip/index.ts +0 -2
  299. package/src/components/Chip/types.ts +0 -23
  300. package/src/components/ChoiceBox/ChoiceBox.vue +0 -181
  301. package/src/components/ChoiceBox/index.ts +0 -2
  302. package/src/components/ColorPicker/ColorIro.vue +0 -207
  303. package/src/components/ColorPicker/ColorPicker.vue +0 -61
  304. package/src/components/ConfirmationModal.vue +0 -46
  305. package/src/components/DataTable/DataTable.vue +0 -478
  306. package/src/components/DataTable/DataTableHeader.vue +0 -78
  307. package/src/components/DataTable/DataTableRow.vue +0 -171
  308. package/src/components/DataTable/DataTableToolbar.vue +0 -45
  309. package/src/components/DataTable/index.ts +0 -5
  310. package/src/components/DataTable/types.ts +0 -85
  311. package/src/components/DatePicker.vue +0 -102
  312. package/src/components/Dropdown/Dropdown.vue +0 -348
  313. package/src/components/Dropdown/DropdownBooleanItem.vue +0 -40
  314. package/src/components/Dropdown/DropdownGroupedLayout.vue +0 -115
  315. package/src/components/Dropdown/DropdownItem.vue +0 -56
  316. package/src/components/Dropdown/DropdownMenu.vue +0 -374
  317. package/src/components/Dropdown/DropdownTrigger.vue +0 -27
  318. package/src/components/Dropdown/composables/useDropdownIds.ts +0 -27
  319. package/src/components/Dropdown/composables/useDropdownNavigation.ts +0 -109
  320. package/src/components/Dropdown/composables/useDropdownSelection.ts +0 -106
  321. package/src/components/Dropdown/index.ts +0 -6
  322. package/src/components/FilePicker/FilePicker.vue +0 -459
  323. package/src/components/FilePicker/index.ts +0 -2
  324. package/src/components/FileTree/FileTree.vue +0 -334
  325. package/src/components/FileTree/FileTreeNode.vue +0 -225
  326. package/src/components/FileTree/index.ts +0 -2
  327. package/src/components/FileTree/types.ts +0 -31
  328. package/src/components/FileTree/useTreeSelection.ts +0 -66
  329. package/src/components/Form/CustomFields.vue +0 -294
  330. package/src/components/Form/Form.vue +0 -406
  331. package/src/components/Form/FormField.vue +0 -404
  332. package/src/components/Form/FormFields.vue +0 -161
  333. package/src/components/Form/composables/useFileUpload.ts +0 -112
  334. package/src/components/Form/composables/useForm.ts +0 -356
  335. package/src/components/Form/index.ts +0 -16
  336. package/src/components/Form/types.ts +0 -203
  337. package/src/components/Form/utils/form.utils.ts +0 -209
  338. package/src/components/Heatmap/Heatmap.vue +0 -629
  339. package/src/components/Heatmap/index.ts +0 -2
  340. package/src/components/Heatmap/types.ts +0 -84
  341. package/src/components/Icon.vue +0 -47
  342. package/src/components/IconPicker.vue +0 -138
  343. package/src/components/Input.vue +0 -366
  344. package/src/components/Label.vue +0 -25
  345. package/src/components/Logo.vue +0 -5
  346. package/src/components/Masonry/Masonry.vue +0 -148
  347. package/src/components/Masonry/index.ts +0 -2
  348. package/src/components/Masonry/types.ts +0 -44
  349. package/src/components/Modal.vue +0 -135
  350. package/src/components/MultiSelect/MultiSelect.vue +0 -176
  351. package/src/components/MultiSelect/index.ts +0 -1
  352. package/src/components/Navbar/Navbar.vue +0 -277
  353. package/src/components/Navbar/NavbarGroup.vue +0 -27
  354. package/src/components/Navbar/NavbarItem.vue +0 -124
  355. package/src/components/Navbar/index.ts +0 -3
  356. package/src/components/OTPInput/OTPInput.vue +0 -220
  357. package/src/components/OTPInput/index.ts +0 -1
  358. package/src/components/Pagination/Pagination.vue +0 -238
  359. package/src/components/Pagination/index.ts +0 -1
  360. package/src/components/PricingPlan/PricingPlan.vue +0 -102
  361. package/src/components/PricingPlan/PricingPlanItem.vue +0 -148
  362. package/src/components/PricingPlan/index.ts +0 -3
  363. package/src/components/PricingPlan/types.ts +0 -29
  364. package/src/components/SidePanel.vue +0 -184
  365. package/src/components/SidebarMenu/SidebarMenu.vue +0 -146
  366. package/src/components/SidebarMenu/SidebarMenuItem.vue +0 -333
  367. package/src/components/SidebarMenu/index.ts +0 -3
  368. package/src/components/SidebarMenu/types.ts +0 -54
  369. package/src/components/Slider.vue +0 -181
  370. package/src/components/Switch.vue +0 -51
  371. package/src/components/Tabes/Tabes.vue +0 -112
  372. package/src/components/Tabes/index.ts +0 -2
  373. package/src/components/Tabes/types.ts +0 -17
  374. package/src/components/Textarea.vue +0 -48
  375. package/src/components/ThemeToggle.vue +0 -14
  376. package/src/components/Timeline.vue +0 -250
  377. package/src/components/ToastNotification.vue +0 -257
  378. package/src/components/Tooltip.vue +0 -25
  379. package/src/components/Workbook/Sheet.vue +0 -185
  380. package/src/components/Workbook/Workbook.vue +0 -231
  381. package/src/components/Workbook/WorkbookAddButton.vue +0 -17
  382. package/src/components/Workbook/index.ts +0 -3
  383. package/src/components/Workbook/types.ts +0 -43
  384. package/src/composables/useKeyStroke.ts +0 -291
  385. package/src/composables/useNotifications.ts +0 -206
  386. package/src/composables/useTheme.ts +0 -55
  387. package/src/core/config.ts +0 -37
  388. package/src/core/index.ts +0 -49
  389. package/src/css/base.css +0 -148
  390. package/src/css/input.css +0 -61
  391. package/src/css/main.css +0 -6
  392. package/src/css/theme.css +0 -344
  393. package/src/directives/vRipple.ts +0 -38
  394. package/src/index.ts +0 -53
  395. package/src/main.ts +0 -5
  396. package/src/playground/Playground.vue +0 -429
  397. package/src/playground/composables/useGetUsers.ts +0 -538
  398. package/src/playground/demos/AccordionDemo.vue +0 -361
  399. package/src/playground/demos/AlertDemo.vue +0 -36
  400. package/src/playground/demos/AvatarDemo.vue +0 -41
  401. package/src/playground/demos/AvatarUploaderDemo.vue +0 -133
  402. package/src/playground/demos/BadgeDemo.vue +0 -31
  403. package/src/playground/demos/BadgesDemo.vue +0 -26
  404. package/src/playground/demos/ButtonDemo.vue +0 -99
  405. package/src/playground/demos/ButtonGroupDemo.vue +0 -39
  406. package/src/playground/demos/ButtonsDemo.vue +0 -111
  407. package/src/playground/demos/CarouselDemo.vue +0 -135
  408. package/src/playground/demos/CheckBoxDemo.vue +0 -43
  409. package/src/playground/demos/ChipDemo.vue +0 -190
  410. package/src/playground/demos/ChoiceBoxDemo.vue +0 -160
  411. package/src/playground/demos/ColorPickerDemo.vue +0 -30
  412. package/src/playground/demos/ColorsDemo.vue +0 -295
  413. package/src/playground/demos/DataTableDemo.vue +0 -215
  414. package/src/playground/demos/DatePickerDemo.vue +0 -43
  415. package/src/playground/demos/DisplayDemo.vue +0 -101
  416. package/src/playground/demos/DropdownDemo.vue +0 -651
  417. package/src/playground/demos/FilePickerDemo.vue +0 -175
  418. package/src/playground/demos/FileTreeDemo.vue +0 -150
  419. package/src/playground/demos/FormDemo.vue +0 -1144
  420. package/src/playground/demos/HeatmapDemo.vue +0 -467
  421. package/src/playground/demos/IconPickerDemo.vue +0 -27
  422. package/src/playground/demos/InputDemo.vue +0 -80
  423. package/src/playground/demos/InputsDemo.vue +0 -127
  424. package/src/playground/demos/LabelDemo.vue +0 -32
  425. package/src/playground/demos/MasonryDemo.vue +0 -241
  426. package/src/playground/demos/ModalDemo.vue +0 -67
  427. package/src/playground/demos/MultiSelectDemo.vue +0 -300
  428. package/src/playground/demos/NavbarDemo.vue +0 -59
  429. package/src/playground/demos/NavigationDemo.vue +0 -116
  430. package/src/playground/demos/OTPInputDemo.vue +0 -170
  431. package/src/playground/demos/OverlaysDemo.vue +0 -104
  432. package/src/playground/demos/PaginationDemo.vue +0 -130
  433. package/src/playground/demos/PricingPlanDemo.vue +0 -110
  434. package/src/playground/demos/SidePanelDemo.vue +0 -45
  435. package/src/playground/demos/SidebarMenuDemo.vue +0 -170
  436. package/src/playground/demos/SliderDemo.vue +0 -48
  437. package/src/playground/demos/SwitchDemo.vue +0 -40
  438. package/src/playground/demos/TabesDemo.vue +0 -178
  439. package/src/playground/demos/TextareaDemo.vue +0 -31
  440. package/src/playground/demos/ThemeToggleDemo.vue +0 -20
  441. package/src/playground/demos/TimelineDemo.vue +0 -43
  442. package/src/playground/demos/ToastDemo.vue +0 -111
  443. package/src/playground/demos/TooltipDemo.vue +0 -30
  444. package/src/playground/demos/WorkbookDemo.vue +0 -227
  445. package/src/types/alert.type.ts +0 -11
  446. package/src/types/button.ts +0 -36
  447. package/src/types/buttongroup.type.ts +0 -1
  448. package/src/types/form.type.ts +0 -75
  449. package/src/types/index.ts +0 -11
  450. package/src/types/navbar.type.ts +0 -28
  451. package/src/types/sidepanel.type.ts +0 -14
  452. package/src/types/styles.ts +0 -42
  453. package/src/types/timeline.type.ts +0 -11
  454. package/src/utils/index.ts +0 -2
  455. package/src/utils/object.ts +0 -40
  456. package/tsconfig.app.json +0 -27
  457. package/tsconfig.json +0 -48
  458. package/tsconfig.node.json +0 -18
  459. package/tsconfig.node.tsbuildinfo +0 -1
  460. package/tsconfig.tsbuildinfo +0 -1
  461. package/vercel.json +0 -8
  462. package/vite.config.d.ts +0 -2
  463. package/vite.config.js +0 -63
  464. package/vite.config.ts +0 -64
  465. package/vite.config.vercel.ts +0 -17
@@ -1,404 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, defineAsyncComponent, markRaw, type Component } from 'vue'
3
- import type { IForm, IFormFieldChangePayload } from './types'
4
- import type { InputVariant, InputSize, InputRounded } from '@/types'
5
- import { isComponent } from './utils/form.utils'
6
-
7
- // Core components - imported directly for better tree-shaking and to prevent slot context issues
8
- import Input from '@/components/Input.vue'
9
- import Switch from '@/components/Switch.vue'
10
- import CheckBox from '@/components/CheckBox.vue'
11
- import Textarea from '@/components/Textarea.vue'
12
- import FilePicker from '@/components/FilePicker/FilePicker.vue'
13
- import AvatarUploader from '@/components/AvatarUploader/AvatarUploader.vue'
14
-
15
- // Async imports for complex or heavy components
16
- const Dropdown = defineAsyncComponent(
17
- () => import('@/components/Dropdown/Dropdown.vue'),
18
- )
19
- const MultiSelect = defineAsyncComponent(
20
- () => import('@/components/MultiSelect/MultiSelect.vue'),
21
- )
22
- const DatePicker = defineAsyncComponent(
23
- () => import('@/components/DatePicker.vue'),
24
- )
25
- const ColorPicker = defineAsyncComponent(
26
- () => import('@/components/ColorPicker/ColorPicker.vue'),
27
- )
28
- const IconPicker = defineAsyncComponent(
29
- () => import('@/components/IconPicker.vue'),
30
- )
31
- const CustomFieldsComponent = defineAsyncComponent(
32
- () => import('./CustomFields.vue'),
33
- )
34
-
35
- interface Props {
36
- field: IForm
37
- value: any
38
- values: Record<string, any>
39
- variant?: InputVariant
40
- size?: InputSize
41
- rounded?: InputRounded
42
- disabled?: boolean
43
- readonly?: boolean
44
- error?: string
45
- isUpdate?: boolean
46
- }
47
-
48
- const props = withDefaults(defineProps<Props>(), {
49
- variant: 'outline',
50
- size: 'md',
51
- rounded: 'md',
52
- disabled: false,
53
- readonly: false,
54
- error: '',
55
- isUpdate: false,
56
- })
57
-
58
- const emit = defineEmits<{
59
- (e: 'change', payload: IFormFieldChangePayload): void
60
- }>()
61
-
62
- // Handle value change
63
- const handleChange = (value: any, data?: any) => {
64
- emit('change', { value, data })
65
- }
66
-
67
- // Handle input events (for v-model style components)
68
- const handleInput = (value: any) => {
69
- emit('change', { value })
70
- }
71
-
72
- // Get the component to render based on field type
73
- const fieldComponent = computed(() => {
74
- const type = props.field.type
75
-
76
- // Custom component passed directly
77
- if (isComponent(type)) {
78
- return markRaw(type as Component)
79
- }
80
-
81
- // Map type to component
82
- switch (type) {
83
- case 'text':
84
- case 'email':
85
- case 'password':
86
- case 'number':
87
- case 'tel':
88
- case 'url':
89
- case 'search':
90
- return Input
91
-
92
- case 'textarea':
93
- return Textarea
94
-
95
- case 'switch':
96
- return Switch
97
-
98
- case 'check':
99
- return CheckBox
100
-
101
- case 'select':
102
- return Dropdown
103
-
104
- case 'multiSelect':
105
- return MultiSelect
106
-
107
- case 'date':
108
- case 'time':
109
- return DatePicker
110
-
111
- case 'file':
112
- case 'fileUploader':
113
- return FilePicker
114
-
115
- case 'avatarUpload':
116
- return AvatarUploader
117
-
118
- case 'color':
119
- return ColorPicker
120
-
121
- case 'iconPicker':
122
- return IconPicker
123
-
124
- case 'customFields':
125
- return CustomFieldsComponent
126
-
127
- default:
128
- return Input
129
- }
130
- })
131
-
132
- // Build props for the component
133
- const fieldProps = computed(() => {
134
- const type = props.field.type
135
- const baseProps: Record<string, any> = {
136
- disabled: props.disabled || props.field.disabled === true,
137
- ...(props.field.props || {}),
138
- }
139
-
140
- // Input-based components
141
- if (
142
- type === 'text' ||
143
- type === 'email' ||
144
- type === 'password' ||
145
- type === 'number' ||
146
- type === 'tel' ||
147
- type === 'url' ||
148
- type === 'search' ||
149
- !type
150
- ) {
151
- return {
152
- ...baseProps,
153
- modelValue: props.value ?? '',
154
- type: type || 'text',
155
- placeholder: props.field.placeholder,
156
- icon: props.field.icon,
157
- iconRight: props.field.iconRight,
158
- addonLeft: props.field.addonLeft,
159
- addonRight: props.field.addonRight,
160
- variant: props.variant,
161
- size: props.size,
162
- rounded: props.rounded,
163
- error: props.error,
164
- min: props.field.min,
165
- max: props.field.max,
166
- class: props.field.className,
167
- }
168
- }
169
-
170
- // Textarea
171
- if (type === 'textarea') {
172
- return {
173
- ...baseProps,
174
- modelValue: props.value ?? '',
175
- placeholder: props.field.placeholder,
176
- rows: props.field.props?.rows || 3,
177
- class: props.field.className,
178
- }
179
- }
180
-
181
- // Switch
182
- if (type === 'switch') {
183
- return {
184
- ...baseProps,
185
- modelValue: !!props.value,
186
- label: '', // Label handled externally
187
- }
188
- }
189
-
190
- // Checkbox
191
- if (type === 'check') {
192
- return {
193
- ...baseProps,
194
- modelValue: !!props.value,
195
- label: '', // Label handled externally
196
- }
197
- }
198
-
199
- // Dropdown (Select)
200
- if (type === 'select') {
201
- return {
202
- ...baseProps,
203
- modelValue: props.value,
204
- options: props.field.options || [],
205
- placeholder: props.field.placeholder,
206
- selectable: true,
207
- closeOnSelect: true,
208
- }
209
- }
210
-
211
- // MultiSelect
212
- if (type === 'multiSelect') {
213
- return {
214
- ...baseProps,
215
- modelValue: Array.isArray(props.value) ? props.value : [],
216
- options: props.field.options || [],
217
- placeholder: props.field.placeholder,
218
- }
219
- }
220
-
221
- // DatePicker / TimePicker
222
- if (type === 'date' || type === 'time') {
223
- return {
224
- ...baseProps,
225
- modelValue: props.value,
226
- mode: type === 'time' ? 'time' : 'date',
227
- placeholder: props.field.placeholder,
228
- }
229
- }
230
-
231
- // FilePicker
232
- if (type === 'fileUploader' || type === 'file') {
233
- return {
234
- ...baseProps,
235
- modelValue: props.value,
236
- multiSelect: props.field.props?.multiple || false,
237
- fileTypes: props.field.props?.accept
238
- ? props.field.props.accept.split(',')
239
- : [],
240
- returnFormat: 'base64',
241
- variant: type === 'file' ? 'input' : 'dropzone',
242
- placeholder: props.field.placeholder,
243
- size: props.size,
244
- rounded: props.rounded,
245
- }
246
- }
247
-
248
- // AvatarUploader
249
- if (type === 'avatarUpload') {
250
- return {
251
- ...baseProps,
252
- modelValue: props.value,
253
- editable: !props.readonly,
254
- }
255
- }
256
-
257
- // ColorPicker
258
- if (type === 'color') {
259
- return {
260
- ...baseProps,
261
- modelValue: props.value || '#000000',
262
- }
263
- }
264
-
265
- // IconPicker
266
- if (type === 'iconPicker') {
267
- return {
268
- ...baseProps,
269
- value: props.value || 'lucide:smile',
270
- }
271
- }
272
-
273
- // CustomFields
274
- if (type === 'customFields') {
275
- return {
276
- ...baseProps,
277
- modelValue: Array.isArray(props.value) ? props.value : [],
278
- schema: props.field.props?.schema || [],
279
- headers: props.field.props?.headers || [],
280
- values: props.values,
281
- variant: props.variant,
282
- size: props.size,
283
- rounded: props.rounded,
284
- isUpdate: props.isUpdate,
285
- }
286
- }
287
-
288
- // Custom component
289
- if (isComponent(type)) {
290
- return {
291
- ...baseProps,
292
- value: props.value,
293
- values: props.values,
294
- }
295
- }
296
-
297
- return baseProps
298
- })
299
-
300
- // Build event handlers
301
- const fieldEvents = computed(() => {
302
- const type = props.field.type
303
-
304
- // v-model components (emit 'update:modelValue')
305
- if (
306
- type === 'text' ||
307
- type === 'email' ||
308
- type === 'password' ||
309
- type === 'number' ||
310
- type === 'tel' ||
311
- type === 'url' ||
312
- type === 'search' ||
313
- type === 'textarea' ||
314
- type === 'switch' ||
315
- type === 'check' ||
316
- !type
317
- ) {
318
- return {
319
- 'update:modelValue': handleInput,
320
- }
321
- }
322
-
323
- // Dropdown emits onSelect
324
- if (type === 'select') {
325
- return {
326
- onSelect: (payload: { value: any; data?: any }) => {
327
- handleChange(payload.value, payload.data)
328
- },
329
- }
330
- }
331
-
332
- // MultiSelect emits change
333
- if (type === 'multiSelect') {
334
- return {
335
- change: (value: any) => handleChange(value),
336
- }
337
- }
338
-
339
- // DatePicker emits onChange
340
- if (type === 'date' || type === 'time') {
341
- return {
342
- change: (value: any) => handleChange(value),
343
- }
344
- }
345
-
346
- // FilePicker emits change
347
- if (type === 'fileUploader' || type === 'file') {
348
- return {
349
- change: (value: any) => {
350
- handleChange(value)
351
- },
352
- }
353
- }
354
-
355
- // AvatarUploader emits change
356
- if (type === 'avatarUpload') {
357
- return {
358
- change: (value: any) => {
359
- handleChange(value)
360
- },
361
- }
362
- }
363
-
364
- // ColorPicker emits change
365
- if (type === 'color') {
366
- return {
367
- change: (value: string) => handleChange(value),
368
- }
369
- }
370
-
371
- // IconPicker emits onSelect
372
- if (type === 'iconPicker') {
373
- return {
374
- onSelect: (value: string) => handleChange(value),
375
- }
376
- }
377
-
378
- // CustomFields emits change
379
- if (type === 'customFields') {
380
- return {
381
- change: (value: any) => handleChange(value),
382
- }
383
- }
384
-
385
- // Custom component emits onChange
386
- if (isComponent(type)) {
387
- return {
388
- onChange: (payload: { value: any; data?: any }) => {
389
- handleChange(payload.value, payload.data)
390
- },
391
- }
392
- }
393
-
394
- return {}
395
- })
396
- </script>
397
-
398
- <template>
399
- <component
400
- :is="fieldComponent"
401
- v-bind="fieldProps"
402
- v-on="fieldEvents" />
403
- </template>
404
-
@@ -1,161 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, type Component } from 'vue'
3
- import type { IForm, IFormFieldChangePayload } from './types'
4
- import type { InputVariant, InputSize, InputRounded } from '@/types'
5
- import { getNestedValue, isComponent } from './utils/form.utils'
6
- import Label from '@/components/Label.vue'
7
- import FormField from './FormField.vue'
8
-
9
- interface Props {
10
- schema: IForm[]
11
- values: Record<string, any>
12
- errors: Record<string, string>
13
- variant?: InputVariant
14
- size?: InputSize
15
- rounded?: InputRounded
16
- className?: string
17
- isUpdate?: boolean
18
- /** Function to check if field is visible */
19
- isFieldVisible?: (field: IForm) => boolean
20
- /** Function to check if field is disabled */
21
- isFieldDisabled?: (field: IForm) => boolean
22
- /** Function to check if field is readonly */
23
- isFieldReadonly?: (field: IForm) => boolean
24
- }
25
-
26
- const props = withDefaults(defineProps<Props>(), {
27
- variant: 'outline',
28
- size: 'md',
29
- rounded: 'md',
30
- columns: 1,
31
- isUpdate: false,
32
- })
33
-
34
- const emit = defineEmits<{
35
- (e: 'change', name: string, payload: IFormFieldChangePayload): void
36
- }>()
37
-
38
- // Grid class for layout
39
- const className = computed(() => {
40
- if (props.className) return props.className
41
- })
42
-
43
- // Get value for a field
44
- const getFieldValue = (field: IForm): any => {
45
- return getNestedValue(props.values, field.name)
46
- }
47
-
48
- // Get error for a field
49
- const getFieldError = (field: IForm): string => {
50
- return props.errors[field.name] || ''
51
- }
52
-
53
- // Check if field should be visible
54
- const checkFieldVisible = (field: IForm): boolean => {
55
- if (props.isFieldVisible) {
56
- return props.isFieldVisible(field)
57
- }
58
- return true
59
- }
60
-
61
- // Check if field is disabled
62
- const checkFieldDisabled = (field: IForm): boolean => {
63
- if (props.isFieldDisabled) {
64
- return props.isFieldDisabled(field)
65
- }
66
- return field.disabled === true
67
- }
68
-
69
- // Check if field is readonly
70
- const checkFieldReadonly = (field: IForm): boolean => {
71
- if (props.isFieldReadonly) {
72
- return props.isFieldReadonly(field)
73
- }
74
- return field.readonly === true
75
- }
76
-
77
- // Render label as component or string
78
- const renderLabel = (label: string | Component | undefined): string | Component | undefined => {
79
- if (!label) return undefined
80
- if (isComponent(label)) return label as Component
81
- return label as string
82
- }
83
-
84
- // Handle field change
85
- const handleFieldChange = (field: IForm, payload: IFormFieldChangePayload) => {
86
- emit('change', field.name, payload)
87
- }
88
-
89
- // Get item class for field (for grid column span)
90
- const getItemClass = (field: IForm): string => {
91
- return field.itemClass || ''
92
- }
93
- </script>
94
-
95
- <template>
96
- <div class="grid gap-4" :class="className">
97
- <template v-for="field in schema" :key="field.name">
98
- <div v-if="checkFieldVisible(field)" :class="['form-field-item', getItemClass(field)]">
99
- <!-- Label -->
100
- <Label
101
- v-if="
102
- field.label &&
103
- field.type !== 'switch' &&
104
- field.type !== 'check' &&
105
- field.type !== 'customFields'
106
- "
107
- :for="field.name"
108
- class="mb-2 block text-sm font-medium">
109
- <component v-if="isComponent(field.label)" :is="renderLabel(field.label)" />
110
- <template v-else>
111
- {{ field.label }}
112
- <span v-if="field.required" class="text-destructive ml-0.5">*</span>
113
- </template>
114
- </Label>
115
-
116
- <!-- Field Component -->
117
- <FormField
118
- :field="field"
119
- :value="getFieldValue(field)"
120
- :label="field.type === 'customFields' ? field.label : undefined"
121
- :values="values"
122
- :variant="variant"
123
- :size="size"
124
- :rounded="rounded"
125
- :disabled="checkFieldDisabled(field)"
126
- :readonly="checkFieldReadonly(field)"
127
- :error="getFieldError(field)"
128
- :isUpdate="isUpdate"
129
- @change="(payload) => handleFieldChange(field, payload)" />
130
-
131
- <!-- Inline Label for Switch/Checkbox -->
132
- <Label
133
- v-if="field.label && (field.type === 'switch' || field.type === 'check')"
134
- :for="field.name"
135
- class="ml-2 text-sm font-medium cursor-pointer">
136
- {{ field.label }}
137
- <span v-if="field.required" class="text-destructive ml-0.5">*</span>
138
- </Label>
139
-
140
- <!-- Error Message -->
141
- <p v-if="getFieldError(field)" class="mt-1 text-sm text-destructive">
142
- {{ getFieldError(field) }}
143
- </p>
144
- </div>
145
- </template>
146
- </div>
147
- </template>
148
-
149
- <style scoped>
150
- .form-field-item {
151
- display: flex;
152
- flex-direction: column;
153
- }
154
-
155
- /* Handle switch/checkbox inline layout */
156
- .form-field-item:has([role='switch']),
157
- .form-field-item:has([role='checkbox']) {
158
- flex-direction: row;
159
- align-items: center;
160
- }
161
- </style>
@@ -1,112 +0,0 @@
1
- import { ref } from 'vue'
2
- import { useVLiteConfig } from '@/core/config'
3
-
4
- export interface FileUploadResult {
5
- url: string
6
- fileName?: string
7
- fileType?: string
8
- fileSize?: number
9
- }
10
-
11
- /**
12
- * Composable for handling file uploads.
13
- *
14
- * This composable automatically checks the global VLite configuration
15
- * for a registered 'upload' service. If found, it uses that service.
16
- * Otherwise, it falls back to a mock implementation.
17
- */
18
- export function useFileUpload() {
19
- const loading = ref(false)
20
- const error = ref<string | null>(null)
21
- const config = useVLiteConfig()
22
-
23
- /**
24
- * Upload a file and return the URL
25
- *
26
- * @param file - File object or FilePickerValue to upload
27
- * @param folderId - Optional folder ID for organizing uploads
28
- * @returns Promise resolving to the file URL or null on failure
29
- */
30
- const handleUploadFile = async (
31
- file: File | { file: File; fileName?: string },
32
- folderId?: string | null
33
- ): Promise<string | null | undefined> => {
34
- // Note: We don't set loading globally here if calling from handleUploadFiles
35
- // to avoid flickering, but for single calls it's fine.
36
- // If running in parallel, the parent handles the loading state usually,
37
- // but safe to keep strictly for single file usage.
38
-
39
- try {
40
- // Extract File object if FilePickerValue was passed
41
- const fileToUpload = file instanceof File ? file : file.file
42
-
43
- // ---------------------------------------------------------
44
- // 1. Check for Global Custom Implementation (Registry Pattern)
45
- // ---------------------------------------------------------
46
- if (config.services?.upload) {
47
- try {
48
- const result = await config.services.upload(fileToUpload, folderId)
49
- return result
50
- } catch (customErr) {
51
- throw customErr instanceof Error ? customErr : new Error('External upload service failed')
52
- }
53
- }
54
-
55
- // ---------------------------------------------------------
56
- // 2. Default Fallback Implementation (if no global service registered)
57
- // ---------------------------------------------------------
58
-
59
- // Simulate network delay
60
- await new Promise((resolve) => setTimeout(resolve, 800))
61
-
62
- // Generate a mock URL
63
- const mockId = Math.random().toString(36).substring(7)
64
- const safeName = fileToUpload.name.replace(/[^a-zA-Z0-9.-]/g, '_')
65
-
66
- return `https://storage.googleapis.com/vlite-bucket/${mockId}/${safeName}`
67
-
68
- } catch (err) {
69
- const msg = err instanceof Error ? err.message : 'Upload failed'
70
- console.error('[useFileUpload] Error:', err)
71
- // If called individually, set error. If parallel, this might get overwritten,
72
- // but usually the Promise.all catch block handles the group error.
73
- error.value = msg
74
- return null
75
- }
76
- }
77
-
78
- /**
79
- * Upload multiple files in parallel
80
- */
81
- const handleUploadFiles = async (
82
- files: Array<File | { file: File }>,
83
- folderId?: string | null
84
- ): Promise<Array<string | null>> => {
85
- loading.value = true
86
- error.value = null
87
-
88
- try {
89
- // Create an array of promises for parallel execution
90
- const uploadPromises = files.map((file) => handleUploadFile(file, folderId))
91
-
92
- // Wait for all uploads to complete
93
- const results = await Promise.all(uploadPromises)
94
-
95
- return results
96
- } catch (err) {
97
- error.value = err instanceof Error ? err.message : 'One or more uploads failed'
98
- console.error('[useFileUpload] Parallel Upload Error:', err)
99
- return []
100
- } finally {
101
- loading.value = false
102
- }
103
- }
104
-
105
- return {
106
- handleUploadFile,
107
- handleUploadFiles,
108
- loading,
109
- error,
110
- }
111
- }
112
-