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,160 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref } from 'vue'
3
- import { ChoiceBox, type ChoiceBoxOption } from '@/components/ChoiceBox'
4
- import Icon from '@/components/Icon.vue'
5
-
6
- const plans: ChoiceBoxOption[] = [
7
- {
8
- id: 'basic',
9
- title: 'Basic Plan',
10
- description:
11
- 'Perfect for starters. Includes basic features and community support.',
12
- icon: 'lucide:box',
13
- badge: 'Free',
14
- },
15
- {
16
- id: 'pro',
17
- title: 'Pro Plan',
18
- description:
19
- 'For growing businesses. Advanced analytics and priority support.',
20
- icon: 'lucide:zap',
21
- badge: 'Popular',
22
- },
23
- {
24
- id: 'enterprise',
25
- title: 'Enterprise',
26
- description: 'Unlimited possibilities for large scale organizations.',
27
- icon: 'lucide:building-2',
28
- },
29
- ]
30
-
31
- const features: ChoiceBoxOption[] = [
32
- {
33
- id: 'seo',
34
- title: 'SEO Optimization',
35
- description: 'Rank higher on search engines.',
36
- icon: 'lucide:search',
37
- },
38
- {
39
- id: 'analytics',
40
- title: 'Advanced Analytics',
41
- description: 'Know your audience better.',
42
- icon: 'lucide:bar-chart',
43
- },
44
- {
45
- id: 'security',
46
- title: 'Enhanced Security',
47
- description: 'Keep your data safe.',
48
- icon: 'lucide:shield-check',
49
- },
50
- {
51
- id: 'backup',
52
- title: 'Daily Backups',
53
- description: 'Never lose your data.',
54
- icon: 'lucide:database',
55
- disabled: true,
56
- },
57
- ]
58
-
59
- const selectedPlan = ref<string>('pro')
60
- const selectedFeatures = ref<string[]>(['seo', 'security'])
61
- const layoutVal = ref('grid')
62
-
63
- const handleChange = (label: string, val: any) => {
64
- console.log(`[${label}] Changed:`, val)
65
- }
66
- </script>
67
-
68
- <template>
69
- <div class="space-y-8 p-4 max-w-4xl mx-auto">
70
- <div>
71
- <h2 class="text-2xl font-bold mb-2">ChoiceBox Component</h2>
72
- <p class="text-gray-500 mb-6">
73
- A rich selection component for presenting options with titles,
74
- descriptions, and icons.
75
- </p>
76
- </div>
77
-
78
- <!-- 1. Single Select (Plans) -->
79
- <section class="space-y-4">
80
- <h3 class="text-lg font-semibold flex items-center gap-2">
81
- <Icon
82
- icon="lucide:check-circle"
83
- class="text-primary" />
84
- Single Selection (Radio Style)
85
- </h3>
86
- <div class="p-6 border rounded-xl bg-gray-50/50">
87
- <ChoiceBox
88
- v-model="selectedPlan"
89
- :options="plans"
90
- title="Choose your plan"
91
- description="Select the plan that fits your needs best."
92
- :grid="3"
93
- @change="(v) => handleChange('Plan', v)" />
94
- <div
95
- class="mt-6 text-sm text-gray-600 bg-white p-3 rounded border">
96
- Selected Plan ID: <strong>{{ selectedPlan }}</strong>
97
- </div>
98
- </div>
99
- </section>
100
-
101
- <!-- 2. Multi Select (Features) -->
102
- <section class="space-y-4">
103
- <h3 class="text-lg font-semibold flex items-center gap-2">
104
- <Icon
105
- icon="lucide:check-square"
106
- class="text-primary" />
107
- Multi Selection (Checkbox Style)
108
- </h3>
109
- <div class="p-6 border rounded-xl bg-gray-50/50">
110
- <ChoiceBox
111
- v-model="selectedFeatures"
112
- :options="features"
113
- multiple
114
- title="Add-on Features"
115
- description="Enhance your workspace with these powerful tools."
116
- :grid="2"
117
- @change="(v) => handleChange('Features', v)" />
118
- <div
119
- class="mt-6 text-sm text-gray-600 bg-white p-3 rounded border">
120
- Selected Features: <strong>{{ selectedFeatures }}</strong>
121
- </div>
122
- </div>
123
- </section>
124
-
125
- <!-- 3. Layout Variations -->
126
- <section class="space-y-4">
127
- <h3 class="text-lg font-semibold flex items-center gap-2">
128
- <Icon
129
- icon="lucide:layout-grid"
130
- class="text-primary" />
131
- Layout Options
132
- </h3>
133
- <div class="p-6 border rounded-xl bg-gray-50/50 space-y-6">
134
- <!-- Stacked list -->
135
- <div>
136
- <p class="text-sm font-medium mb-3">
137
- Vertical List (Grid = 1)
138
- </p>
139
- <ChoiceBox
140
- v-model="layoutVal"
141
- :options="[
142
- {
143
- id: 'grid',
144
- title: 'Grid Layout',
145
- description: 'Items arranged in columns',
146
- icon: 'lucide:layout-grid',
147
- },
148
- {
149
- id: 'list',
150
- title: 'List Layout',
151
- description: 'Items stacked vertically',
152
- icon: 'lucide:list',
153
- },
154
- ]"
155
- :grid="1" />
156
- </div>
157
- </div>
158
- </section>
159
- </div>
160
- </template>
@@ -1,30 +0,0 @@
1
- <script setup lang="ts">
2
- import ColorPicker from '@/components/ColorPicker/ColorPicker.vue'
3
- import Label from '@/components/Label.vue'
4
- import { ref } from 'vue'
5
-
6
- const color = ref('#4f46e5')
7
- </script>
8
-
9
- <template>
10
- <div class="space-y-10">
11
- <div class="space-y-2">
12
- <h2 class="text-2xl font-bold">ColorPicker</h2>
13
- <p class="text-gray-500">
14
- A component to pick colors conveniently.
15
- </p>
16
- </div>
17
-
18
- <section class="space-y-4">
19
- <h3 class="text-lg font-semibold">Usage</h3>
20
- <div class="flex flex-col gap-2">
21
- <Label>Accent Color</Label>
22
- <ColorPicker v-model="color" />
23
- <p class="text-sm text-gray-500 mt-2">
24
- Selected:
25
- <span class="font-mono text-gray-900">{{ color }}</span>
26
- </p>
27
- </div>
28
- </section>
29
- </div>
30
- </template>
@@ -1,295 +0,0 @@
1
- <script setup lang="ts">
2
- import Icon from '@/components/Icon.vue'
3
-
4
- const semanticColors = [
5
- {
6
- title: 'Background',
7
- colors: [
8
- {
9
- name: 'Background',
10
- bg: 'bg-background',
11
- text: 'text-foreground',
12
- var: '--background',
13
- textVar: '--foreground',
14
- },
15
- {
16
- name: 'Card',
17
- bg: 'bg-card',
18
- text: 'text-card-foreground',
19
- var: '--card',
20
- textVar: '--card-foreground',
21
- },
22
- {
23
- name: 'Card Muted',
24
- bg: 'bg-card-muted',
25
- text: 'text-card-foreground',
26
- var: '--card-muted',
27
- textVar: '--card-foreground',
28
- },
29
- {
30
- name: 'Muted',
31
- bg: 'bg-muted',
32
- text: 'text-muted-foreground',
33
- var: '--muted',
34
- textVar: '--muted-foreground',
35
- },
36
- ],
37
- },
38
- {
39
- title: 'Actions',
40
- colors: [
41
- {
42
- name: 'Primary',
43
- bg: 'bg-primary',
44
- text: 'text-primary-foreground',
45
- var: '--primary',
46
- textVar: '--primary-foreground',
47
- },
48
- {
49
- name: 'Secondary',
50
- bg: 'bg-secondary',
51
- text: 'text-secondary-foreground',
52
- var: '--secondary',
53
- textVar: '--secondary-foreground',
54
- },
55
- {
56
- name: 'Accent',
57
- bg: 'bg-accent',
58
- text: 'text-accent-foreground',
59
- var: '--accent',
60
- textVar: '--accent-foreground',
61
- },
62
- {
63
- name: 'Destructive',
64
- bg: 'bg-destructive',
65
- text: 'text-destructive-foreground',
66
- var: '--destructive',
67
- textVar: '--destructive-foreground',
68
- },
69
- ],
70
- },
71
- {
72
- title: 'Status',
73
- colors: [
74
- {
75
- name: 'Danger',
76
- bg: 'bg-danger',
77
- text: 'text-danger-fg',
78
- var: '--color-danger',
79
- textVar: '--color-danger-fg',
80
- },
81
- {
82
- name: 'Warning',
83
- bg: 'bg-warning',
84
- text: 'text-warning-fg',
85
- var: '--color-warning',
86
- textVar: '--color-warning-fg',
87
- },
88
- {
89
- name: 'Info',
90
- bg: 'bg-info',
91
- text: 'text-info-fg',
92
- var: '--color-info',
93
- textVar: '--color-info-fg',
94
- },
95
- {
96
- name: 'Success',
97
- bg: 'bg-success',
98
- text: 'text-success-fg',
99
- var: '--color-success',
100
- textVar: '--color-success-fg',
101
- },
102
- ],
103
- },
104
- ]
105
-
106
- const variantColors = [
107
- {
108
- name: 'Primary',
109
- variants: [
110
- {
111
- label: 'Light',
112
- bg: 'bg-primary-light',
113
- text: 'text-primary-fg-light',
114
- var: '--color-primary-light',
115
- },
116
- { label: 'Main', bg: 'bg-primary', text: 'text-primary-fg', var: '--color-primary' },
117
- {
118
- label: 'Dark',
119
- bg: 'bg-primary-dark',
120
- text: 'text-primary-fg',
121
- var: '--color-primary-dark',
122
- },
123
- ],
124
- },
125
- {
126
- name: 'Danger',
127
- variants: [
128
- {
129
- label: 'Light',
130
- bg: 'bg-danger-light',
131
- text: 'text-danger-fg-light',
132
- var: '--color-danger-light',
133
- },
134
- { label: 'Main', bg: 'bg-danger', text: 'text-danger-fg', var: '--color-danger' },
135
- { label: 'Dark', bg: 'bg-danger-dark', text: 'text-danger-fg', var: '--color-danger-dark' },
136
- ],
137
- },
138
- {
139
- name: 'Warning',
140
- variants: [
141
- {
142
- label: 'Light',
143
- bg: 'bg-warning-light',
144
- text: 'text-warning-fg-light',
145
- var: '--color-warning-light',
146
- },
147
- { label: 'Main', bg: 'bg-warning', text: 'text-warning-fg', var: '--color-warning' },
148
- {
149
- label: 'Dark',
150
- bg: 'bg-warning-dark',
151
- text: 'text-warning-fg',
152
- var: '--color-warning-dark',
153
- },
154
- ],
155
- },
156
- {
157
- name: 'Success',
158
- variants: [
159
- {
160
- label: 'Light',
161
- bg: 'bg-success-light',
162
- text: 'text-success-fg-light',
163
- var: '--color-success-light',
164
- },
165
- { label: 'Main', bg: 'bg-success', text: 'text-success-fg', var: '--color-success' },
166
- {
167
- label: 'Dark',
168
- bg: 'bg-success-dark',
169
- text: 'text-success-fg',
170
- var: '--color-success-dark',
171
- },
172
- ],
173
- },
174
- {
175
- name: 'Info',
176
- variants: [
177
- {
178
- label: 'Light',
179
- bg: 'bg-info-light',
180
- text: 'text-info-fg-light',
181
- var: '--color-info-light',
182
- },
183
- { label: 'Main', bg: 'bg-info', text: 'text-info-fg', var: '--color-info' },
184
- { label: 'Dark', bg: 'bg-info-dark', text: 'text-info-fg', var: '--color-info-dark' },
185
- ],
186
- },
187
- ]
188
-
189
- const grayShades = [
190
- 'bg-gray-50',
191
- 'bg-gray-100',
192
- 'bg-gray-150',
193
- 'bg-gray-200',
194
- 'bg-gray-250',
195
- 'bg-gray-300',
196
- 'bg-gray-400',
197
- 'bg-gray-500',
198
- 'bg-gray-600',
199
- 'bg-gray-700',
200
- 'bg-gray-800',
201
- 'bg-gray-900',
202
- 'bg-gray-950',
203
- 'bg-white',
204
- 'bg-black',
205
- ]
206
-
207
- const borderColors = [
208
- { name: 'border', var: '--border' },
209
- { name: 'input', var: '--input' },
210
- ]
211
- </script>
212
-
213
- <template>
214
- <div class="max-w-7xl mx-auto p-6 space-y-14">
215
- <!-- Semantic -->
216
- <div v-for="group in semanticColors" :key="group.title" class="space-y-4">
217
- <h2 class="text-lg font-semibold text-foreground">{{ group.title }}</h2>
218
- <div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4">
219
- <div
220
- v-for="c in group.colors"
221
- :key="c.name"
222
- :class="[c.bg, 'rounded-lg p-4 h-24 flex flex-col justify-between border border-border']">
223
- <div :class="[c.text, 'text-sm font-semibold']">{{ c.name }}</div>
224
- <div :class="[c.text, 'text-[10px] font-mono opacity-70']">
225
- {{ c.var }}
226
- </div>
227
- </div>
228
- </div>
229
- </div>
230
-
231
- <!-- Variants -->
232
- <div class="space-y-6">
233
- <h2 class="text-lg font-semibold text-foreground">Variants</h2>
234
- <div v-for="group in variantColors" :key="group.name" class="space-y-3">
235
- <div class="text-sm font-medium text-muted-foreground">{{ group.name }}</div>
236
- <div class="grid grid-cols-3 gap-4">
237
- <div
238
- v-for="v in group.variants"
239
- :key="v.label"
240
- :class="[v.bg, 'rounded-lg h-20 p-3 flex flex-col justify-between']">
241
- <span :class="[v.text, 'text-xs font-semibold']">{{ v.label }}</span>
242
- <span :class="[v.text, 'text-[10px] font-mono opacity-70']">{{ v.var }}</span>
243
- </div>
244
- </div>
245
- </div>
246
- </div>
247
-
248
- <!-- Grays -->
249
- <div class="space-y-4">
250
- <h2 class="text-lg font-semibold text-foreground">Grays</h2>
251
- <div class="grid grid-cols-6 md:grid-cols-11 gap-3">
252
- <div v-for="g in grayShades" :key="g" class="space-y-1 text-center">
253
- <div :class="`${g}`" class="h-16 rounded-md border border-border"></div>
254
- <code class="text-[10px] font-mono text-muted-foreground">{{ g }}</code>
255
- </div>
256
- </div>
257
- </div>
258
-
259
- <!-- Borders -->
260
- <div class="space-y-4">
261
- <h2 class="text-lg font-semibold text-foreground">Borders</h2>
262
- <div class="grid grid-cols-3 gap-4">
263
- <div
264
- v-for="b in borderColors"
265
- :key="b.name"
266
- class="rounded-lg p-4 bg-card border border-border space-y-2">
267
- <div :class="`border-4 border-${b.name}`" class="h-10 rounded-md bg-background"></div>
268
- <code class="text-[10px] font-mono text-muted-foreground">{{ b.var }}</code>
269
- </div>
270
- </div>
271
- </div>
272
-
273
- <!-- Minimal UI Proof -->
274
- <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
275
- <button class="bg-primary text-primary-foreground rounded-lg py-3 font-semibold">
276
- Primary
277
- </button>
278
-
279
- <div class="bg-danger-light text-danger-fg-light rounded-lg p-3 flex items-center gap-2">
280
- <Icon icon="lucide:alert-circle" class="w-4 h-4" />
281
- Error
282
- </div>
283
-
284
- <div class="bg-success text-success-fg rounded-lg p-3 flex items-center gap-2">
285
- <Icon icon="lucide:check-circle" class="w-4 h-4" />
286
- Success
287
- </div>
288
-
289
- <div class="bg-info-light text-info-fg-light rounded-lg p-3 flex items-center gap-2">
290
- <Icon icon="lucide:info" class="w-4 h-4" />
291
- Info
292
- </div>
293
- </div>
294
- </div>
295
- </template>
@@ -1,215 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, computed, watch } from 'vue'
3
- import { DataTable } from '@/components/DataTable'
4
- import Input from '@/components/Input.vue'
5
- import Button from '@/components/Button.vue'
6
- import Badge from '@/components/Badge.vue'
7
- import Avatar from '@/components/Avatar.vue'
8
- import type {
9
- TableHeader,
10
- TableFilter,
11
- PageInfo,
12
- PaginationConfig,
13
- SortConfig,
14
- SelectionState,
15
- TableState,
16
- } from '@/components/DataTable/types'
17
- import { useGetUsers, type User } from '../composables/useGetUsers'
18
-
19
- const searchQuery = ref('')
20
- // selectedCount definition removed (ref defined later)
21
-
22
- const { result, loading, refetch } = useGetUsers()
23
-
24
- const users = computed<User[]>(() => result.value?.users || [])
25
- const pageInfo = computed<PageInfo | undefined>(() => result.value?.pageInfo)
26
-
27
- const columns = ref<TableHeader[]>([
28
- {
29
- field: 'name',
30
- title: 'User',
31
- sortable: true,
32
- },
33
- {
34
- field: 'email',
35
- title: 'Email',
36
- width: '20%',
37
- sortable: true,
38
- hideOnMobile: true,
39
- },
40
- {
41
- field: 'role',
42
- title: 'Role',
43
- width: '12%',
44
- sortable: true,
45
- capitalize: true,
46
- },
47
- {
48
- field: 'department',
49
- title: 'Department',
50
- width: '15%',
51
- sortable: true,
52
- hideOnMobile: true,
53
- },
54
- {
55
- field: 'status',
56
- title: 'Status',
57
- width: '10%',
58
- sortable: true,
59
- capitalize: true,
60
- addStatusColor: true,
61
- },
62
- {
63
- field: 'action',
64
- title: 'Actions',
65
- width: '8%',
66
- sortable: false,
67
- align: 'center',
68
- },
69
- ])
70
-
71
- // Initial state
72
- const currentTableState = ref<TableState>({
73
- pagination: {
74
- page: 1,
75
- limit: 10,
76
- },
77
- sorting: {
78
- field: '',
79
- order: '',
80
- },
81
- search: '',
82
- })
83
-
84
- const handleTableChange = async (state: TableState) => {
85
- console.log('handleTableChange', state)
86
- currentTableState.value = state
87
- await refreshData()
88
- }
89
-
90
- const refreshData = async () => {
91
- const filter: TableFilter = {
92
- pagination: currentTableState.value.pagination,
93
- filter: {
94
- search: currentTableState.value.search,
95
- sorting: currentTableState.value.sorting,
96
- },
97
- }
98
- console.log('Fetching data with:', filter)
99
- await refetch(filter)
100
- }
101
-
102
- const handleEdit = (user: User) => {
103
- console.log('Edit user:', user)
104
- alert(`Edit user: ${user.name}`)
105
- }
106
-
107
- const handleView = (user: User) => {
108
- console.log('View user:', user)
109
- alert(`View user: ${user.name}`)
110
- }
111
-
112
- const getStatusVariant = (status: string) => {
113
- const map: Record<string, 'success' | 'secondary' | 'warning'> = {
114
- active: 'success',
115
- inactive: 'secondary',
116
- pending: 'warning',
117
- }
118
- return map[status] || 'secondary'
119
- }
120
-
121
- const handleAddUser = () => {
122
- alert('Add User Clicked')
123
- }
124
-
125
- const handleDelete = (rows: User[]) => {
126
- console.log('Delete rows:', rows)
127
- alert(
128
- `Deleting ${rows.length} users:\n` + rows.map((u) => u.name).join(', '),
129
- )
130
- }
131
- </script>
132
-
133
- <template>
134
- <div class="space-y-8">
135
- <!-- Header -->
136
- <div class="space-y-2">
137
- <h1 class="text-2xl font-bold">DataTable</h1>
138
- <p class="text-muted-foreground">
139
- Refactored DataTable with external controls (Search, Actions)
140
- and built-in pagination.
141
- </p>
142
- </div>
143
-
144
- <!-- Main Demo -->
145
- <section class="space-y-4">
146
- <h2 class="text-lg font-semibold">User Management</h2>
147
-
148
- <DataTable
149
- :rows="users"
150
- :headers="columns"
151
- :page-info="pageInfo"
152
- :loading="loading"
153
- :search="searchQuery"
154
- :items-per-page-options="[10, 25, 50, 100]"
155
- key-field="_id"
156
- selectable
157
- hoverable
158
- bordered
159
- @change="handleTableChange"
160
- @delete="handleDelete">
161
- <template #toolbar-right>
162
- <div class="">
163
- <Button
164
- variant="primary"
165
- icon="lucide:plus"
166
- @click="handleAddUser"
167
- >Add User</Button
168
- >
169
- </div>
170
- </template>
171
- <!-- Custom User Cell with Avatar -->
172
- <template #name="{ value }">
173
- <div class="flex items-center gap-3">
174
- <Avatar
175
- :src="value.avatar"
176
- :alt="value.name"
177
- size="sm" />
178
- <div class="min-w-0">
179
- <p class="font-medium text-foreground truncate">
180
- {{ value.name }}
181
- </p>
182
- <p
183
- class="text-xs text-muted-foreground truncate md:hidden">
184
- {{ value.email }}
185
- </p>
186
- </div>
187
- </div>
188
- </template>
189
-
190
- <!-- Status Badge -->
191
- <template #status="{ value }">
192
- <Badge :variant="getStatusVariant(value.status)">
193
- {{ value.status }}
194
- </Badge>
195
- </template>
196
-
197
- <!-- Actions Column -->
198
- <template #action="{ value }">
199
- <div class="flex items-center justify-center gap-1">
200
- <Button
201
- variant="ghost"
202
- size="xs"
203
- icon="lucide:eye"
204
- @click.stop="handleView(value)" />
205
- <Button
206
- variant="ghost"
207
- size="xs"
208
- icon="lucide:pencil"
209
- @click.stop="handleEdit(value)" />
210
- </div>
211
- </template>
212
- </DataTable>
213
- </section>
214
- </div>
215
- </template>