@dasidev/dasi-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/README.md +346 -0
  2. package/bin/dasi-cli.cjs +184 -0
  3. package/dist/date-selector-test-BlukYeWl.js +91 -0
  4. package/dist/favicon.ico +0 -0
  5. package/dist/html2canvas.esm-CKxSAI8P.js +4886 -0
  6. package/dist/img/brand/ic_pln.svg +12 -0
  7. package/dist/img/brand/mapp_power_logo.svg +21 -0
  8. package/dist/img/common/pltu_ulumbu_flores_ntt.jpeg +0 -0
  9. package/dist/index-BQSA2aPs.js +126556 -0
  10. package/dist/index.es-DQWt-PZn.js +5769 -0
  11. package/dist/index.es.js +11 -0
  12. package/dist/index.umd.js +8564 -0
  13. package/dist/informasi-gudang-BmoEy2RL.js +164 -0
  14. package/dist/informasi-gudang-DXfS46Nh.js +50 -0
  15. package/dist/purify.es-C-9oolON.js +546 -0
  16. package/dist/scripts/pdf.worker.min.js +29 -0
  17. package/dist/scripts/pdf.worker.min.mjs +29 -0
  18. package/dist/scripts/pdf.worker.mjs +57722 -0
  19. package/dist/scripts/pdf.worker.mjs.map +1 -0
  20. package/dist/style.css +1 -0
  21. package/dist/test-schema-JFghGc0_.js +8 -0
  22. package/dist/test-schema-uusFsJe4.js +438 -0
  23. package/dist/types-l0sNRNKZ.js +1 -0
  24. package/package.json +178 -0
  25. package/src/App.vue +18 -0
  26. package/src/__tests__/index.test.ts +9 -0
  27. package/src/api/api.ts +117 -0
  28. package/src/assets/app-selector.svg +3 -0
  29. package/src/assets/dasi.png +0 -0
  30. package/src/assets/foto_ss.svg +21 -0
  31. package/src/assets/icons/circle-blue.svg +4 -0
  32. package/src/assets/icons/circle-gray.svg +15 -0
  33. package/src/assets/icons/circle-green.svg +4 -0
  34. package/src/assets/icons/circle-orange.svg +4 -0
  35. package/src/assets/icons/circle-purple.svg +4 -0
  36. package/src/assets/icons/circle-red.svg +15 -0
  37. package/src/assets/icons/harbor.svg +12 -0
  38. package/src/assets/icons/ic-box-red.svg +8 -0
  39. package/src/assets/icons/ic-chevron-right.svg +1 -0
  40. package/src/assets/icons/ic-loading.svg +9 -0
  41. package/src/assets/icons/ic-reset.svg +16 -0
  42. package/src/assets/icons/ic-sailing.svg +5 -0
  43. package/src/assets/icons/icon-app-selector.svg +3 -0
  44. package/src/assets/icons/icon-browser-check.svg +4 -0
  45. package/src/assets/icons/icon-calendar.svg +3 -0
  46. package/src/assets/icons/icon-chart-bar.svg +3 -0
  47. package/src/assets/icons/icon-chart-doc.svg +16 -0
  48. package/src/assets/icons/icon-chart-line.svg +10 -0
  49. package/src/assets/icons/icon-chart-mix.svg +15 -0
  50. package/src/assets/icons/icon-chart-pie.svg +11 -0
  51. package/src/assets/icons/icon-continue.svg +12 -0
  52. package/src/assets/icons/icon-dashboard-2.svg +17 -0
  53. package/src/assets/icons/icon-dashboard.svg +3 -0
  54. package/src/assets/icons/icon-data-kelistrikan.svg +19 -0
  55. package/src/assets/icons/icon-data-sentral.svg +11 -0
  56. package/src/assets/icons/icon-database.svg +5 -0
  57. package/src/assets/icons/icon-desktop.svg +3 -0
  58. package/src/assets/icons/icon-download.svg +13 -0
  59. package/src/assets/icons/icon-energi-primer.svg +12 -0
  60. package/src/assets/icons/icon-faba-apk2.svg +11 -0
  61. package/src/assets/icons/icon-faba.svg +11 -0
  62. package/src/assets/icons/icon-factory.svg +14 -0
  63. package/src/assets/icons/icon-globe-doc.svg +19 -0
  64. package/src/assets/icons/icon-ikk.svg +10 -0
  65. package/src/assets/icons/icon-kbb.svg +13 -0
  66. package/src/assets/icons/icon-kos.svg +16 -0
  67. package/src/assets/icons/icon-kpi-bod.svg +15 -0
  68. package/src/assets/icons/icon-kss.svg +14 -0
  69. package/src/assets/icons/icon-map.svg +12 -0
  70. package/src/assets/icons/icon-monitoring-harian.svg +13 -0
  71. package/src/assets/icons/icon-notification.svg +4 -0
  72. package/src/assets/icons/icon-overview.svg +17 -0
  73. package/src/assets/icons/icon-pltu.svg +13 -0
  74. package/src/assets/icons/icon-sebaran-sentral.svg +12 -0
  75. package/src/assets/icons/icon-select-data-kelistrikan.svg +19 -0
  76. package/src/assets/icons/icon-select-data-sentral.svg +11 -0
  77. package/src/assets/icons/icon-select-energi-primer.svg +12 -0
  78. package/src/assets/icons/icon-select-faba-apk2.svg +11 -0
  79. package/src/assets/icons/icon-select-ikk.svg +10 -0
  80. package/src/assets/icons/icon-select-kbb.svg +13 -0
  81. package/src/assets/icons/icon-select-kos.svg +16 -0
  82. package/src/assets/icons/icon-select-kpi-bod.svg +15 -0
  83. package/src/assets/icons/icon-select-kss.svg +14 -0
  84. package/src/assets/icons/icon-select-monitoring-harian.svg +13 -0
  85. package/src/assets/icons/icon-select-overview.svg +17 -0
  86. package/src/assets/icons/icon-select-sebaran-sentral.svg +12 -0
  87. package/src/assets/icons/icon-sentral-white.svg +13 -0
  88. package/src/assets/icons/icon-shipping.svg +5 -0
  89. package/src/assets/icons/icon-sort.svg +5 -0
  90. package/src/assets/icons/icon-tree-box.svg +14 -0
  91. package/src/assets/icons/icon-warehouse.svg +12 -0
  92. package/src/assets/icons/pin-green.svg +3 -0
  93. package/src/assets/icons/pin-orange.svg +3 -0
  94. package/src/assets/icons/pin-purple.svg +3 -0
  95. package/src/assets/icons/ship.svg +3 -0
  96. package/src/assets/icons/shipment/icon-antri.svg +15 -0
  97. package/src/assets/icons/shipment/icon-bongkar.svg +4 -0
  98. package/src/assets/icons/shipment/icon-invoice.svg +6 -0
  99. package/src/assets/icons/shipment/icon-loading.svg +8 -0
  100. package/src/assets/icons/shipment/icon-pembayaran.svg +13 -0
  101. package/src/assets/icons/shipment/icon-pengiriman.svg +4 -0
  102. package/src/assets/icons/shipment/icon-sailing.svg +4 -0
  103. package/src/assets/icons/shipment/icon-shipment-completed.svg +6 -0
  104. package/src/assets/icons/shipment/icon-shipment-in-progress.svg +6 -0
  105. package/src/assets/icons/shipment/icon-shipment-over-sla.svg +6 -0
  106. package/src/assets/icons/shipment/icon-spt.svg +4 -0
  107. package/src/assets/icons/shipment/icon-total-shipment.svg +4 -0
  108. package/src/assets/icons/upload_doc_icon.svg +42 -0
  109. package/src/assets/icons/upload_icon_blue.svg +14 -0
  110. package/src/assets/login-bg-day-min.jpg +0 -0
  111. package/src/assets/login-bg-night-min.jpg +0 -0
  112. package/src/assets/login-bg.jpg +0 -0
  113. package/src/assets/login-day.png +0 -0
  114. package/src/assets/login-night.png +0 -0
  115. package/src/assets/lucide-circle-plus-blue.svg +1 -0
  116. package/src/assets/pdf-logo.svg +11 -0
  117. package/src/assets/pemasok-card-bg.svg +6 -0
  118. package/src/assets/success_animation.gif +0 -0
  119. package/src/assets/success_animation.mp4 +0 -0
  120. package/src/assets/success_animation.webm +0 -0
  121. package/src/components/button/BtnAddOutline.vue +14 -0
  122. package/src/components/button/BtnCircle.vue +10 -0
  123. package/src/components/button/BtnOutline.vue +15 -0
  124. package/src/components/button/BtnPrimary.vue +25 -0
  125. package/src/components/button/BtnSecondary.vue +26 -0
  126. package/src/components/detail/AccountDetailTimeline.vue +144 -0
  127. package/src/components/detail/ApprovalInfo.vue +288 -0
  128. package/src/components/detail/DCI2.vue +164 -0
  129. package/src/components/detail/DetailContentHeader.vue +83 -0
  130. package/src/components/detail/DetailContentItem.vue +186 -0
  131. package/src/components/detail/DetailContentItems.vue +388 -0
  132. package/src/components/detail/DetailContentLoading.vue +12 -0
  133. package/src/components/detail/DetailContentTablet.vue +10 -0
  134. package/src/components/detail/DetailSheet.vue +294 -0
  135. package/src/components/detail/DetailTimeline.vue +191 -0
  136. package/src/components/detail/DocApprovalDialog.vue +29 -0
  137. package/src/components/detail/DocViewerContent.vue +991 -0
  138. package/src/components/dialog/ConfirmDialog.vue +96 -0
  139. package/src/components/dialog/DialogBase.vue +53 -0
  140. package/src/components/dialog/DialogSelect.vue +212 -0
  141. package/src/components/dialog/ErrorDialog.vue +63 -0
  142. package/src/components/dialog/FormDialog.vue +141 -0
  143. package/src/components/dialog/FormInputerDialog.vue +91 -0
  144. package/src/components/dialog/InfoDialog.vue +74 -0
  145. package/src/components/dialog/SuccessDialog.vue +51 -0
  146. package/src/components/examples/TestSchemaExample.vue +288 -0
  147. package/src/components/forms/auth/LoginForm.vue +806 -0
  148. package/src/components/forms/auth/PwdScore.vue +68 -0
  149. package/src/components/helper/ApiTester.vue +153 -0
  150. package/src/components/helper/ChangePwd.vue +150 -0
  151. package/src/components/helper/CheckboxElement.vue +43 -0
  152. package/src/components/helper/ConfigSwitcher.vue +54 -0
  153. package/src/components/helper/Copyright.vue +10 -0
  154. package/src/components/helper/ErrorScreen.vue +40 -0
  155. package/src/components/helper/LucideIcon.vue +27 -0
  156. package/src/components/helper/PdfViewer.vue +103 -0
  157. package/src/components/helper/PinInputer.vue +205 -0
  158. package/src/components/helper/PrivacyPolicy.vue +122 -0
  159. package/src/components/layout/PageActivityHeader.vue +48 -0
  160. package/src/components/layout/PageHeader.vue +70 -0
  161. package/src/components/loadings/LoadingDialog.vue +29 -0
  162. package/src/components/loadings/LoadingDialogSpin.vue +25 -0
  163. package/src/components/loadings/LoadingIndicator.vue +38 -0
  164. package/src/components/loadings/LoadingScreen.vue +23 -0
  165. package/src/components/notif/Notif.vue +103 -0
  166. package/src/components/notif/NotifItem.vue +41 -0
  167. package/src/components/pages/Header.vue +431 -0
  168. package/src/components/pages/Leftbar.vue +417 -0
  169. package/src/components/pages/PageActivity.vue +108 -0
  170. package/src/components/pages/PageActivityContent.vue +597 -0
  171. package/src/components/pages/PageContentTable.vue +589 -0
  172. package/src/components/pages/PageTab.vue +84 -0
  173. package/src/components/selector/BaseSelector.vue +1136 -0
  174. package/src/components/selector/ConfigDataSelector.vue +136 -0
  175. package/src/components/settings/SettingsItem.vue +38 -0
  176. package/src/components/tab/TabView.vue +11 -0
  177. package/src/components/tab/TabViewItem.vue +18 -0
  178. package/src/components/tab/TabViewItemBar.vue +9 -0
  179. package/src/components/tables/CellHover.vue +65 -0
  180. package/src/components/tables/DashboardDataTable.vue +707 -0
  181. package/src/components/tables/DataStatusTag.vue +52 -0
  182. package/src/components/tables/DataTable.vue +156 -0
  183. package/src/components/tables/DataTableAccordion.vue +249 -0
  184. package/src/components/tables/DataTableActionRow.vue +64 -0
  185. package/src/components/tables/DataTableCell.vue +272 -0
  186. package/src/components/tables/DataTableHeader.vue +60 -0
  187. package/src/components/tables/DataTableRow.vue +213 -0
  188. package/src/components/tables/ExpandedTable.vue +259 -0
  189. package/src/components/tables/PageTable.vue +73 -0
  190. package/src/components/tables/Pagination.vue +98 -0
  191. package/src/components/tables/dropdown/BaseDropdownTable.vue +140 -0
  192. package/src/components/tables/dropdown/DropdownTableActivity.vue +33 -0
  193. package/src/components/tables/dropdown/DropdownTableAsset.vue +30 -0
  194. package/src/components/tables/dropdown/DropdownTableConfig.vue +30 -0
  195. package/src/components/tables/dropdown/DropdownTableDataKonektor.vue +31 -0
  196. package/src/components/tables/dropdown/DropdownTableDataLabel.vue +30 -0
  197. package/src/components/tables/dropdown/DropdownTableDataSchema.vue +31 -0
  198. package/src/components/tables/dropdown/DropdownTableFabaPemanfaat.vue +30 -0
  199. package/src/components/tables/dropdown/DropdownTableGroup.vue +36 -0
  200. package/src/components/tables/dropdown/DropdownTableHalaman.vue +33 -0
  201. package/src/components/tables/dropdown/DropdownTableLevel.vue +66 -0
  202. package/src/components/tables/dropdown/DropdownTableOrganization.vue +47 -0
  203. package/src/components/tables/dropdown/DropdownTablePengelola.vue +28 -0
  204. package/src/components/tables/dropdown/DropdownTableQueryLayer.vue +29 -0
  205. package/src/components/tables/dropdown/DropdownTableSentral.vue +33 -0
  206. package/src/components/tables/dropdown/DropdownTableWarehouse.vue +30 -0
  207. package/src/components/tables/dropdown/TableDropdown.vue +52 -0
  208. package/src/components/ui/accordion/Accordion.vue +19 -0
  209. package/src/components/ui/accordion/AccordionContent.vue +24 -0
  210. package/src/components/ui/accordion/AccordionItem.vue +24 -0
  211. package/src/components/ui/accordion/AccordionTrigger.vue +42 -0
  212. package/src/components/ui/accordion/index.ts +4 -0
  213. package/src/components/ui/alert-dialog/AlertDialog.vue +14 -0
  214. package/src/components/ui/alert-dialog/AlertDialogAction.vue +20 -0
  215. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +20 -0
  216. package/src/components/ui/alert-dialog/AlertDialogContent.vue +42 -0
  217. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +25 -0
  218. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +21 -0
  219. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +16 -0
  220. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +22 -0
  221. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +11 -0
  222. package/src/components/ui/alert-dialog/index.ts +9 -0
  223. package/src/components/ui/avatar/Avatar.vue +24 -0
  224. package/src/components/ui/avatar/AvatarFallback.vue +11 -0
  225. package/src/components/ui/avatar/AvatarImage.vue +9 -0
  226. package/src/components/ui/avatar/UsersAvatar.vue +28 -0
  227. package/src/components/ui/avatar/index.ts +24 -0
  228. package/src/components/ui/button/Button.vue +27 -0
  229. package/src/components/ui/button/index.ts +34 -0
  230. package/src/components/ui/calendar/Calendar.vue +325 -0
  231. package/src/components/ui/calendar/index.ts +22 -0
  232. package/src/components/ui/checkbox/Checkbox.vue +33 -0
  233. package/src/components/ui/checkbox/index.ts +1 -0
  234. package/src/components/ui/command/Command.vue +30 -0
  235. package/src/components/ui/command/CommandDialog.vue +21 -0
  236. package/src/components/ui/command/CommandEmpty.vue +20 -0
  237. package/src/components/ui/command/CommandGroup.vue +29 -0
  238. package/src/components/ui/command/CommandInput.vue +33 -0
  239. package/src/components/ui/command/CommandItem.vue +26 -0
  240. package/src/components/ui/command/CommandList.vue +27 -0
  241. package/src/components/ui/command/CommandSeparator.vue +23 -0
  242. package/src/components/ui/command/CommandShortcut.vue +14 -0
  243. package/src/components/ui/command/index.ts +9 -0
  244. package/src/components/ui/context-menu/ContextMenu.vue +15 -0
  245. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +40 -0
  246. package/src/components/ui/context-menu/ContextMenuContent.vue +36 -0
  247. package/src/components/ui/context-menu/ContextMenuGroup.vue +11 -0
  248. package/src/components/ui/context-menu/ContextMenuItem.vue +34 -0
  249. package/src/components/ui/context-menu/ContextMenuLabel.vue +25 -0
  250. package/src/components/ui/context-menu/ContextMenuPortal.vue +11 -0
  251. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +19 -0
  252. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +40 -0
  253. package/src/components/ui/context-menu/ContextMenuSeparator.vue +20 -0
  254. package/src/components/ui/context-menu/ContextMenuShortcut.vue +14 -0
  255. package/src/components/ui/context-menu/ContextMenuSub.vue +19 -0
  256. package/src/components/ui/context-menu/ContextMenuSubContent.vue +35 -0
  257. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +34 -0
  258. package/src/components/ui/context-menu/ContextMenuTrigger.vue +13 -0
  259. package/src/components/ui/context-menu/index.ts +14 -0
  260. package/src/components/ui/datetime/DatetimeRangeComponent.vue +52 -0
  261. package/src/components/ui/dialog/Dialog.vue +14 -0
  262. package/src/components/ui/dialog/DialogClose.vue +11 -0
  263. package/src/components/ui/dialog/DialogContent.vue +53 -0
  264. package/src/components/ui/dialog/DialogDescription.vue +24 -0
  265. package/src/components/ui/dialog/DialogFooter.vue +19 -0
  266. package/src/components/ui/dialog/DialogHeader.vue +16 -0
  267. package/src/components/ui/dialog/DialogScrollContent.vue +59 -0
  268. package/src/components/ui/dialog/DialogTitle.vue +29 -0
  269. package/src/components/ui/dialog/DialogTrigger.vue +11 -0
  270. package/src/components/ui/dialog/index.ts +9 -0
  271. package/src/components/ui/dropdown-menu/DropdownMenu.vue +14 -0
  272. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +40 -0
  273. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +38 -0
  274. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +11 -0
  275. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +28 -0
  276. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +24 -0
  277. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +19 -0
  278. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +41 -0
  279. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +22 -0
  280. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
  281. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +19 -0
  282. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +30 -0
  283. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +33 -0
  284. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +13 -0
  285. package/src/components/ui/dropdown-menu/index.ts +16 -0
  286. package/src/components/ui/form/FormControl.vue +16 -0
  287. package/src/components/ui/form/FormDescription.vue +20 -0
  288. package/src/components/ui/form/FormItem.vue +25 -0
  289. package/src/components/ui/form/FormLabel.vue +23 -0
  290. package/src/components/ui/form/FormMessage.vue +16 -0
  291. package/src/components/ui/form/index.ts +6 -0
  292. package/src/components/ui/form/useFormField.ts +30 -0
  293. package/src/components/ui/hover-card/HoverCard.vue +14 -0
  294. package/src/components/ui/hover-card/HoverCardContent.vue +41 -0
  295. package/src/components/ui/hover-card/HoverCardTrigger.vue +11 -0
  296. package/src/components/ui/hover-card/index.ts +3 -0
  297. package/src/components/ui/input/Input.vue +24 -0
  298. package/src/components/ui/input/index.ts +1 -0
  299. package/src/components/ui/label/Label.vue +27 -0
  300. package/src/components/ui/label/index.ts +1 -0
  301. package/src/components/ui/pagination/PaginationEllipsis.vue +22 -0
  302. package/src/components/ui/pagination/PaginationFirst.vue +29 -0
  303. package/src/components/ui/pagination/PaginationLast.vue +29 -0
  304. package/src/components/ui/pagination/PaginationNext.vue +29 -0
  305. package/src/components/ui/pagination/PaginationPrev.vue +29 -0
  306. package/src/components/ui/pagination/index.ts +10 -0
  307. package/src/components/ui/pin-input/PinInput.vue +23 -0
  308. package/src/components/ui/pin-input/PinInputGroup.vue +18 -0
  309. package/src/components/ui/pin-input/PinInputInput.vue +18 -0
  310. package/src/components/ui/pin-input/PinInputSeparator.vue +15 -0
  311. package/src/components/ui/pin-input/index.ts +4 -0
  312. package/src/components/ui/popover/Popover.vue +15 -0
  313. package/src/components/ui/popover/PopoverContent.vue +48 -0
  314. package/src/components/ui/popover/PopoverTrigger.vue +11 -0
  315. package/src/components/ui/popover/index.ts +4 -0
  316. package/src/components/ui/preview/PreviewPdf.vue +118 -0
  317. package/src/components/ui/progress/ProgressCircle.vue +27 -0
  318. package/src/components/ui/progress/SemiCircularProgressBar.vue +83 -0
  319. package/src/components/ui/progress/TotalCalories.vue +31 -0
  320. package/src/components/ui/radio-group/RadioGroup.vue +25 -0
  321. package/src/components/ui/radio-group/RadioGroupItem.vue +37 -0
  322. package/src/components/ui/radio-group/index.ts +2 -0
  323. package/src/components/ui/scroll-area/ScrollArea.vue +29 -0
  324. package/src/components/ui/scroll-area/ScrollBar.vue +30 -0
  325. package/src/components/ui/scroll-area/index.ts +2 -0
  326. package/src/components/ui/select/Select.vue +15 -0
  327. package/src/components/ui/select/SelectContent.vue +52 -0
  328. package/src/components/ui/select/SelectGroup.vue +19 -0
  329. package/src/components/ui/select/SelectInline.vue +84 -0
  330. package/src/components/ui/select/SelectItem.vue +44 -0
  331. package/src/components/ui/select/SelectItemText.vue +11 -0
  332. package/src/components/ui/select/SelectLabel.vue +13 -0
  333. package/src/components/ui/select/SelectScrollDownButton.vue +24 -0
  334. package/src/components/ui/select/SelectScrollUpButton.vue +24 -0
  335. package/src/components/ui/select/SelectSeparator.vue +17 -0
  336. package/src/components/ui/select/SelectTrigger.vue +31 -0
  337. package/src/components/ui/select/SelectTriggerCustom.vue +23 -0
  338. package/src/components/ui/select/SelectValue.vue +11 -0
  339. package/src/components/ui/select/index.ts +12 -0
  340. package/src/components/ui/separator/Separator.vue +20 -0
  341. package/src/components/ui/separator/index.ts +1 -0
  342. package/src/components/ui/sheet/Sheet.vue +14 -0
  343. package/src/components/ui/sheet/SheetClose.vue +11 -0
  344. package/src/components/ui/sheet/SheetContent.vue +48 -0
  345. package/src/components/ui/sheet/SheetDescription.vue +22 -0
  346. package/src/components/ui/sheet/SheetFooter.vue +19 -0
  347. package/src/components/ui/sheet/SheetHeader.vue +16 -0
  348. package/src/components/ui/sheet/SheetTitle.vue +22 -0
  349. package/src/components/ui/sheet/SheetTrigger.vue +11 -0
  350. package/src/components/ui/sheet/index.ts +31 -0
  351. package/src/components/ui/skeleton/Skeleton.vue +28 -0
  352. package/src/components/ui/skeleton/index.ts +1 -0
  353. package/src/components/ui/sonner/Sonner.vue +22 -0
  354. package/src/components/ui/sonner/index.ts +1 -0
  355. package/src/components/ui/star/StarRating.vue +19 -0
  356. package/src/components/ui/switch/Switch.vue +37 -0
  357. package/src/components/ui/switch/index.ts +1 -0
  358. package/src/components/ui/table/Table.vue +16 -0
  359. package/src/components/ui/table/TableBody.vue +14 -0
  360. package/src/components/ui/table/TableCaption.vue +14 -0
  361. package/src/components/ui/table/TableCell.vue +21 -0
  362. package/src/components/ui/table/TableEmpty.vue +37 -0
  363. package/src/components/ui/table/TableFooter.vue +14 -0
  364. package/src/components/ui/table/TableHead.vue +14 -0
  365. package/src/components/ui/table/TableHeader.vue +14 -0
  366. package/src/components/ui/table/TableRow.vue +14 -0
  367. package/src/components/ui/table/index.ts +8 -0
  368. package/src/components/ui/tabs/Tabs.vue +15 -0
  369. package/src/components/ui/tabs/TabsContent.vue +22 -0
  370. package/src/components/ui/tabs/TabsList.vue +25 -0
  371. package/src/components/ui/tabs/TabsTrigger.vue +27 -0
  372. package/src/components/ui/tabs/index.ts +4 -0
  373. package/src/components/ui/tags-input/TagsInput.vue +22 -0
  374. package/src/components/ui/tags-input/TagsInputInput.vue +19 -0
  375. package/src/components/ui/tags-input/TagsInputItem.vue +22 -0
  376. package/src/components/ui/tags-input/TagsInputItemDelete.vue +24 -0
  377. package/src/components/ui/tags-input/TagsInputItemText.vue +19 -0
  378. package/src/components/ui/tags-input/index.ts +5 -0
  379. package/src/components/ui/textarea/Textarea.vue +24 -0
  380. package/src/components/ui/textarea/index.ts +1 -0
  381. package/src/components/ui/tooltip/Tooltip.vue +14 -0
  382. package/src/components/ui/tooltip/TooltipContent.vue +31 -0
  383. package/src/components/ui/tooltip/TooltipProvider.vue +11 -0
  384. package/src/components/ui/tooltip/TooltipTrigger.vue +11 -0
  385. package/src/components/ui/tooltip/index.ts +4 -0
  386. package/src/composables/useAppConfig.ts +332 -0
  387. package/src/composables/useDarkMode.ts +71 -0
  388. package/src/config/app.config.ts +318 -0
  389. package/src/config/examples/ecommerce.config.ts +132 -0
  390. package/src/config/examples/generic.config.ts +132 -0
  391. package/src/config/menu.config.ts +149 -0
  392. package/src/config/my-app.config.ts +134 -0
  393. package/src/config/test-config.ts +32 -0
  394. package/src/config/theme.config.ts +250 -0
  395. package/src/docs/index.ts +21 -0
  396. package/src/docs.scss +403 -0
  397. package/src/index.d.ts +5 -0
  398. package/src/index.ts +20 -0
  399. package/src/layouts/AuthLayout.vue +68 -0
  400. package/src/layouts/DefaultLayout.vue +119 -0
  401. package/src/layouts/DocsLayout.vue +681 -0
  402. package/src/layouts/FormGlobal.vue +50 -0
  403. package/src/layouts/GlobalDialog.vue +122 -0
  404. package/src/layouts/RakorConfirmDialog.vue +95 -0
  405. package/src/layouts/SettingsLayout.vue +115 -0
  406. package/src/lib/constants.ts +2 -0
  407. package/src/lib/detail.utils.ts +213 -0
  408. package/src/lib/form.utils.ts +1009 -0
  409. package/src/lib/page.flow.utils.ts +81 -0
  410. package/src/lib/page.utils.ts +865 -0
  411. package/src/lib/performance.utils.ts +302 -0
  412. package/src/lib/tablerow.utils.ts +51 -0
  413. package/src/lib/utils.ts +643 -0
  414. package/src/main.scss +717 -0
  415. package/src/main.ts +74 -0
  416. package/src/menu.ts +78 -0
  417. package/src/nestedlist_color.scss +161 -0
  418. package/src/router/index.ts +92 -0
  419. package/src/stores/auth.ts +117 -0
  420. package/src/stores/counter.ts +12 -0
  421. package/src/stores/dialog.ts +168 -0
  422. package/src/stores/form.ts +103 -0
  423. package/src/stores/tabs.ts +52 -0
  424. package/src/tw.scss +419 -0
  425. package/src/types/form.types.ts +348 -0
  426. package/src/types/types.ts +7 -0
  427. package/src/utils/config.utils.ts +149 -0
  428. package/src/views/NotFound.vue +30 -0
  429. package/src/views/PageActivity.vue +15 -0
  430. package/src/views/auth/LoginView.vue +7 -0
  431. package/src/views/auth/OauthCallback.vue +101 -0
  432. package/src/views/dashboard/index.vue +16 -0
  433. package/src/views/settings/AccountSettingsView.vue +70 -0
  434. package/src/views/settings/AuditLogsSettingsView.vue +116 -0
  435. package/src/views/settings/DeviceSettingsView.vue +70 -0
  436. package/src/views/settings/MainSettingsView.vue +12 -0
  437. package/src/views/settings/ProfileSettingsView.vue +104 -0
  438. package/src/vueform/config/informasi-gudang.ts +47 -0
  439. package/src/vueform/config/test-schema.ts +8 -0
  440. package/src/vueform/config/types.ts +768 -0
  441. package/src/vueform/customization/classes.js +46 -0
  442. package/src/vueform/customization/tailwind.classes.js +2117 -0
  443. package/src/vueform/elements/ConfigDataSelectorElement.vue +50 -0
  444. package/src/vueform/elements/DateSelectorElement.vue +323 -0
  445. package/src/vueform/elements/SelectorElement.vue +153 -0
  446. package/src/vueform/schemas/date-selector-test.ts +103 -0
  447. package/src/vueform/schemas/informasi-gudang.ts +160 -0
  448. package/src/vueform/schemas/test-schema.ts +483 -0
  449. package/src/vueform.config.js +77 -0
  450. package/src/vueform.validator.ts +77 -0
@@ -0,0 +1,31 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Data Konektor')"
23
+ >Edit data konektor</DropdownMenuItem
24
+ >
25
+
26
+ <DropdownMenuSeparator />
27
+ <DropdownMenuItem class="cursor-pointer">Hapus data konektor</DropdownMenuItem>
28
+ </DropdownMenuContent>
29
+ </DropdownMenu>
30
+ </div>
31
+ </template>
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Data Label')">Edit data label
23
+ </DropdownMenuItem>
24
+
25
+ <DropdownMenuSeparator />
26
+ <DropdownMenuItem class="cursor-pointer">Hapus data label</DropdownMenuItem>
27
+ </DropdownMenuContent>
28
+ </DropdownMenu>
29
+ </div>
30
+ </template>
@@ -0,0 +1,31 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Data Schema')"
23
+ >Edit data schema</DropdownMenuItem
24
+ >
25
+
26
+ <DropdownMenuSeparator />
27
+ <DropdownMenuItem class="cursor-pointer">Hapus data schema</DropdownMenuItem>
28
+ </DropdownMenuContent>
29
+ </DropdownMenu>
30
+ </div>
31
+ </template>
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet', 'openSheet2', 'openSheet3'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Grup')"
23
+ >Edit Pemanfaat</DropdownMenuItem
24
+ >
25
+ <DropdownMenuSeparator />
26
+ <DropdownMenuItem class="cursor-pointer">Hapus Pemanfaat</DropdownMenuItem>
27
+ </DropdownMenuContent>
28
+ </DropdownMenu>
29
+ </div>
30
+ </template>
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet', 'openSheet2', 'openSheet3'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Grup')"
23
+ >Edit akses grup</DropdownMenuItem
24
+ >
25
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet2('Sesuaikan Akses')"
26
+ >Sesuaikan akses</DropdownMenuItem
27
+ >
28
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet3('Sesuaikan Anggota Akses')"
29
+ >Tambah anggota akses</DropdownMenuItem
30
+ >
31
+ <DropdownMenuSeparator />
32
+ <DropdownMenuItem class="cursor-pointer">Hapus grup</DropdownMenuItem>
33
+ </DropdownMenuContent>
34
+ </DropdownMenu>
35
+ </div>
36
+ </template>
@@ -0,0 +1,33 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Halaman')"
23
+ >Edit aktifitas</DropdownMenuItem
24
+ >
25
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Sesuaikan Akses')"
26
+ >Sesuaikan akses</DropdownMenuItem
27
+ >
28
+ <DropdownMenuSeparator />
29
+ <DropdownMenuItem class="cursor-pointer">Hapus halaman</DropdownMenuItem>
30
+ </DropdownMenuContent>
31
+ </DropdownMenu>
32
+ </div>
33
+ </template>
@@ -0,0 +1,66 @@
1
+ <script setup lang="ts">
2
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, DropdownMenuShortcut } from "@/components/ui/dropdown-menu";
3
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from "@/components/ui/alert-dialog";
4
+ import BtnCircle from "@/components/button/BtnCircle.vue";
5
+ import { EllipsisVertical, LucideEdit, LucideShieldCheck, LucideTrash2, LucideUsers, Star } from "lucide-vue-next";
6
+ import { ref } from "vue";
7
+
8
+ const confirmOpen = ref(false);
9
+
10
+ defineProps(["row", "openSheet", "openSheet2", "openSheet3", "deleteItem"]);
11
+ </script>
12
+
13
+ <template>
14
+ <div class="flex items-center justify-end pr-1">
15
+ <BtnCircle>
16
+ <Star :stroke-width="1.6" :size="20"></Star>
17
+ </BtnCircle>
18
+ <DropdownMenu>
19
+ <DropdownMenuTrigger as-child>
20
+ <BtnCircle>
21
+ <EllipsisVertical :size="22" />
22
+ </BtnCircle>
23
+ </DropdownMenuTrigger>
24
+ <DropdownMenuContent class="w-56" align="end">
25
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Level')">
26
+ <LucideEdit :size="18" :stroke-width="1" class="mr-2" />
27
+ <span>Edit akses level</span>
28
+ <DropdownMenuShortcut>⇧⌘E</DropdownMenuShortcut>
29
+ </DropdownMenuItem>
30
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet2('Sesuaikan Akses')">
31
+ <LucideShieldCheck :size="18" :stroke-width="1.2" class="mr-2" />
32
+ <span>Sesuaikan akses</span>
33
+ <DropdownMenuShortcut>⇧⌘A</DropdownMenuShortcut>
34
+ </DropdownMenuItem>
35
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet3('Sesuaikan Anggota Akses')">
36
+ <LucideUsers :size="18" :stroke-width="1.2" class="mr-2" />
37
+ <span>Tambah anggota</span>
38
+ <DropdownMenuShortcut>⇧⌘M</DropdownMenuShortcut>
39
+ </DropdownMenuItem>
40
+ <DropdownMenuSeparator />
41
+ <DropdownMenuItem class="cursor-pointer !text-red-500" @click="confirmOpen = true">
42
+ <LucideTrash2 :size="18" :stroke-width="1" class="mr-2" />
43
+ <span>Hapus akses</span>
44
+ <DropdownMenuShortcut>⇧⌘D</DropdownMenuShortcut>
45
+ </DropdownMenuItem>
46
+ </DropdownMenuContent>
47
+ </DropdownMenu>
48
+ </div>
49
+ <AlertDialog v-model:open="confirmOpen">
50
+ <AlertDialogContent class="w-96">
51
+ <AlertDialogHeader>
52
+ <AlertDialogTitle>Hapus Akses Level</AlertDialogTitle>
53
+ <AlertDialogDescription
54
+ >Apakah Anda yakin ingin menghapus <b>{{ row.original.name || "akses level" }}</b
55
+ >? Data terhapus akan dipindah ke dalam folder Deleted</AlertDialogDescription
56
+ >
57
+ </AlertDialogHeader>
58
+ <AlertDialogFooter class="pt-4">
59
+ <AlertDialogCancel class="hover:bg-primary_main_hover border-none text-primary_main shadow-none transition">Batal</AlertDialogCancel>
60
+ <AlertDialogAction v-on:click="deleteItem(row.index, row.original)" class="bg-red-500 pr-4 transition hover:bg-red-600"
61
+ ><LucideTrash2 :size="18" class="-ml-1 mr-2" /> Hapus Level</AlertDialogAction
62
+ >
63
+ </AlertDialogFooter>
64
+ </AlertDialogContent>
65
+ </AlertDialog>
66
+ </template>
@@ -0,0 +1,47 @@
1
+ <script setup lang="ts">
2
+ import BtnCircle from '@/components/button/BtnCircle.vue';
3
+ import {
4
+ DropdownMenu,
5
+ DropdownMenuContent,
6
+ DropdownMenuItem,
7
+ DropdownMenuSeparator,
8
+ DropdownMenuShortcut,
9
+ DropdownMenuTrigger
10
+ } from '@/components/ui/dropdown-menu'
11
+ import { EllipsisVertical, LucideEdit, LucideShieldCheck, LucideStar, LucideTrash2 } from 'lucide-vue-next'
12
+
13
+ defineProps(['openSheet', 'openSheet2'])
14
+ </script>
15
+
16
+ <template>
17
+ <div class="flex items-center justify-end pr-1">
18
+ <BtnCircle>
19
+ <LucideStar :stroke-width="1.6" :size="20"/>
20
+ </BtnCircle>
21
+ <DropdownMenu>
22
+ <DropdownMenuTrigger as-child>
23
+ <BtnCircle>
24
+ <EllipsisVertical :size="22"/>
25
+ </BtnCircle>
26
+ </DropdownMenuTrigger>
27
+ <DropdownMenuContent class="w-56" align="end">
28
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Level')">
29
+ <LucideEdit :size="18" :stroke-width="1" class="mr-2"/>
30
+ <span>Edit Organisasi</span>
31
+ <DropdownMenuShortcut>⇧⌘E</DropdownMenuShortcut>
32
+ </DropdownMenuItem>
33
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet2('Sesuaikan Akses')">
34
+ <LucideShieldCheck :size="18" :stroke-width="1.2" class="mr-2"/>
35
+ <span>Sesuaikan Akses</span>
36
+ <DropdownMenuShortcut>⇧⌘A</DropdownMenuShortcut>
37
+ </DropdownMenuItem>
38
+ <DropdownMenuSeparator />
39
+ <DropdownMenuItem class="cursor-pointer !text-red-500">
40
+ <LucideTrash2 :size="18" :stroke-width="1" class="mr-2"/>
41
+ <span>Hapus Organisasi</span>
42
+ <DropdownMenuShortcut>⇧⌘D</DropdownMenuShortcut>
43
+ </DropdownMenuItem>
44
+ </DropdownMenuContent>
45
+ </DropdownMenu>
46
+ </div>
47
+ </template>
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet', 'openSheet2'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Pengelola')">Edit Pengelola</DropdownMenuItem>
23
+ <DropdownMenuSeparator />
24
+ <DropdownMenuItem class="cursor-pointer">Hapus Pengelola</DropdownMenuItem>
25
+ </DropdownMenuContent>
26
+ </DropdownMenu>
27
+ </div>
28
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet', 'openSheet2'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Query Layer')">Edit query layer
23
+ </DropdownMenuItem>
24
+ <DropdownMenuSeparator />
25
+ <DropdownMenuItem class="cursor-pointer">Hapus query layer</DropdownMenuItem>
26
+ </DropdownMenuContent>
27
+ </DropdownMenu>
28
+ </div>
29
+ </template>
@@ -0,0 +1,33 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet', 'openSheet2'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Sentral')"
23
+ >Edit sentral</DropdownMenuItem
24
+ >
25
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet2('Sesuaikan Akses')"
26
+ >Sesuaikan akses</DropdownMenuItem
27
+ >
28
+ <DropdownMenuSeparator />
29
+ <DropdownMenuItem class="cursor-pointer">Hapus sentral</DropdownMenuItem>
30
+ </DropdownMenuContent>
31
+ </DropdownMenu>
32
+ </div>
33
+ </template>
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuSeparator,
7
+ DropdownMenuTrigger
8
+ } from '@/components/ui/dropdown-menu'
9
+
10
+ import { EllipsisVertical } from 'lucide-vue-next'
11
+
12
+ defineProps(['openSheet'])
13
+ </script>
14
+
15
+ <template>
16
+ <div>
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger as-child>
19
+ <EllipsisVertical class="cursor-pointer" />
20
+ </DropdownMenuTrigger>
21
+ <DropdownMenuContent class="w-56" align="end">
22
+ <DropdownMenuItem class="cursor-pointer" @click="openSheet('Edit Gudang')"
23
+ >Edit Gudang</DropdownMenuItem
24
+ >
25
+ <DropdownMenuSeparator />
26
+ <DropdownMenuItem class="cursor-pointer">Hapus Gudang</DropdownMenuItem>
27
+ </DropdownMenuContent>
28
+ </DropdownMenu>
29
+ </div>
30
+ </template>
@@ -0,0 +1,52 @@
1
+ <script setup lang="ts">
2
+ import type { PropType } from 'vue'
3
+ import {
4
+ DropdownMenu,
5
+ DropdownMenuContent,
6
+ DropdownMenuItem,
7
+ DropdownMenuSeparator,
8
+ DropdownMenuTrigger
9
+ } from '@/components/ui/dropdown-menu'
10
+
11
+ import { EllipsisVertical } from 'lucide-vue-next'
12
+
13
+ interface List {
14
+ title: string
15
+ trigger: () => void
16
+ }
17
+
18
+ defineProps({
19
+ dropdownListTop: {
20
+ type: Array as PropType<List[]>,
21
+ required: true
22
+ },
23
+ dropdownListBottom: Array as PropType<List[]>
24
+ })
25
+ </script>
26
+
27
+ <template>
28
+ <div>
29
+ <DropdownMenu>
30
+ <DropdownMenuTrigger as-child>
31
+ <EllipsisVertical class="cursor-pointer" />
32
+ </DropdownMenuTrigger>
33
+ <DropdownMenuContent class="w-56" align="end">
34
+ <DropdownMenuItem
35
+ v-for="(list, idx) in dropdownListTop"
36
+ :key="idx"
37
+ class="cursor-pointer"
38
+ @click="list.trigger"
39
+ >{{ list.title }}</DropdownMenuItem
40
+ >
41
+ <DropdownMenuSeparator v-if="dropdownListBottom" />
42
+ <DropdownMenuItem
43
+ v-for="(list, idx) in dropdownListBottom"
44
+ :key="idx"
45
+ @click="list.trigger"
46
+ class="cursor-pointer"
47
+ >{{ list?.title }}</DropdownMenuItem
48
+ >
49
+ </DropdownMenuContent>
50
+ </DropdownMenu>
51
+ </div>
52
+ </template>
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import {
3
+ AccordionRoot,
4
+ type AccordionRootEmits,
5
+ type AccordionRootProps,
6
+ useForwardPropsEmits,
7
+ } from 'radix-vue'
8
+
9
+ const props = defineProps<AccordionRootProps>()
10
+ const emits = defineEmits<AccordionRootEmits>()
11
+
12
+ const forwarded = useForwardPropsEmits(props, emits)
13
+ </script>
14
+
15
+ <template>
16
+ <AccordionRoot v-bind="forwarded">
17
+ <slot />
18
+ </AccordionRoot>
19
+ </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { AccordionContent, type AccordionContentProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<AccordionContentProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <AccordionContent
17
+ v-bind="delegatedProps"
18
+ class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
19
+ >
20
+ <div :class="cn('pb-4 pt-0', props.class)">
21
+ <slot />
22
+ </div>
23
+ </AccordionContent>
24
+ </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { AccordionItem, type AccordionItemProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<AccordionItemProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <AccordionItem
19
+ v-bind="forwardedProps"
20
+ :class="cn('border-b', props.class)"
21
+ >
22
+ <slot />
23
+ </AccordionItem>
24
+ </template>
@@ -0,0 +1,42 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from "vue";
3
+ import {
4
+ AccordionHeader,
5
+ AccordionTrigger,
6
+ type AccordionTriggerProps,
7
+ } from "radix-vue";
8
+ import { ChevronDownIcon } from "@radix-icons/vue";
9
+ import { CircleChevronUp } from "lucide-vue-next";
10
+ import { cn } from "@/lib/utils";
11
+
12
+ const props = defineProps<
13
+ AccordionTriggerProps & { class?: HTMLAttributes["class"] }
14
+ >();
15
+
16
+ const delegatedProps = computed(() => {
17
+ const { class: _, ...delegated } = props;
18
+
19
+ return delegated;
20
+ });
21
+ </script>
22
+
23
+ <template>
24
+ <AccordionHeader class="flex">
25
+ <AccordionTrigger
26
+ v-bind="delegatedProps"
27
+ :class="
28
+ cn(
29
+ 'flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',
30
+ props.class
31
+ )
32
+ "
33
+ >
34
+ <slot name="icon">
35
+ <CircleChevronUp
36
+ class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200"
37
+ />
38
+ </slot>
39
+ <slot />
40
+ </AccordionTrigger>
41
+ </AccordionHeader>
42
+ </template>
@@ -0,0 +1,4 @@
1
+ export { default as Accordion } from './Accordion.vue'
2
+ export { default as AccordionContent } from './AccordionContent.vue'
3
+ export { default as AccordionItem } from './AccordionItem.vue'
4
+ export { default as AccordionTrigger } from './AccordionTrigger.vue'
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import { type AlertDialogEmits, type AlertDialogProps, AlertDialogRoot, useForwardPropsEmits } from 'radix-vue'
3
+
4
+ const props = defineProps<AlertDialogProps>()
5
+ const emits = defineEmits<AlertDialogEmits>()
6
+
7
+ const forwarded = useForwardPropsEmits(props, emits)
8
+ </script>
9
+
10
+ <template>
11
+ <AlertDialogRoot v-bind="forwarded">
12
+ <slot />
13
+ </AlertDialogRoot>
14
+ </template>
@@ -0,0 +1,20 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { AlertDialogAction, type AlertDialogActionProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { buttonVariants } from '@/components/ui/button'
6
+
7
+ const props = defineProps<AlertDialogActionProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+ </script>
15
+
16
+ <template>
17
+ <AlertDialogAction v-bind="delegatedProps" :class="cn(buttonVariants(), props.class)">
18
+ <slot />
19
+ </AlertDialogAction>
20
+ </template>
@@ -0,0 +1,20 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { AlertDialogCancel, type AlertDialogCancelProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { buttonVariants } from '@/components/ui/button'
6
+
7
+ const props = defineProps<AlertDialogCancelProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+ </script>
15
+
16
+ <template>
17
+ <AlertDialogCancel v-bind="delegatedProps" :class="cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', props.class)">
18
+ <slot />
19
+ </AlertDialogCancel>
20
+ </template>