ikoncomponents 1.5.7 → 1.5.8

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 (424) hide show
  1. package/README.md +36 -36
  2. package/bin.js +2 -0
  3. package/dist/commands/init.js +63 -0
  4. package/dist/index.js +14 -116
  5. package/dist/utlis/copyDir.js +7 -0
  6. package/package.json +17 -91
  7. package/templates/default/hooks/use-mobile.ts +19 -0
  8. package/templates/default/ikonS/accordion.tsx +66 -0
  9. package/templates/default/ikonS/alert-dialog.tsx +179 -0
  10. package/templates/default/ikonS/alert.tsx +66 -0
  11. package/templates/default/ikonS/aspect-ratio.tsx +11 -0
  12. package/templates/default/ikonS/avatar.tsx +53 -0
  13. package/templates/default/ikonS/badge.tsx +49 -0
  14. package/templates/default/ikonS/breadcrumb.tsx +109 -0
  15. package/templates/default/ikonS/button.tsx +64 -0
  16. package/templates/default/ikonS/calendar.tsx +227 -0
  17. package/templates/default/ikonS/card.tsx +92 -0
  18. package/templates/default/ikonS/checkbox.tsx +33 -0
  19. package/templates/default/ikonS/collapsible.tsx +33 -0
  20. package/templates/default/ikonS/command.tsx +184 -0
  21. package/templates/default/ikonS/date-input.tsx +259 -0
  22. package/templates/default/ikonS/date-range-picker.tsx +103 -0
  23. package/templates/default/ikonS/dialog.tsx +143 -0
  24. package/templates/default/ikonS/drawer.tsx +134 -0
  25. package/templates/default/ikonS/dropdown-menu.tsx +259 -0
  26. package/templates/default/ikonS/form.tsx +166 -0
  27. package/templates/default/ikonS/hover-card.tsx +44 -0
  28. package/templates/default/ikonS/input-otp.tsx +71 -0
  29. package/templates/default/ikonS/input.tsx +22 -0
  30. package/templates/default/ikonS/label.tsx +24 -0
  31. package/templates/default/ikonS/navigation-menu.tsx +195 -0
  32. package/templates/default/ikonS/popover.tsx +48 -0
  33. package/templates/default/ikonS/progress.tsx +40 -0
  34. package/templates/default/ikonS/radio-group.tsx +45 -0
  35. package/templates/default/ikonS/scroll-area.tsx +58 -0
  36. package/templates/default/ikonS/select.tsx +184 -0
  37. package/templates/default/ikonS/separator.tsx +28 -0
  38. package/templates/default/ikonS/sheet.tsx +139 -0
  39. package/templates/default/ikonS/sidebar.tsx +726 -0
  40. package/templates/default/ikonS/skeleton.tsx +15 -0
  41. package/templates/default/ikonS/slider.tsx +64 -0
  42. package/templates/default/ikonS/sonner.tsx +25 -0
  43. package/templates/default/ikonS/switch.tsx +31 -0
  44. package/templates/default/ikonS/table.tsx +116 -0
  45. package/templates/default/ikonS/tabs.tsx +67 -0
  46. package/templates/default/ikonS/textarea.tsx +18 -0
  47. package/templates/default/ikonS/toggle-group.tsx +83 -0
  48. package/templates/default/ikonS/toggle.tsx +47 -0
  49. package/templates/default/ikonS/tooltip.tsx +65 -0
  50. package/templates/default/ikonS/workflow.tsx +119 -0
  51. package/templates/default/ikoncomponents/action-menu/index.tsx +108 -0
  52. package/templates/default/ikoncomponents/action-menu/type.ts +18 -0
  53. package/templates/default/ikoncomponents/activity-sheet/index.tsx +63 -0
  54. package/templates/default/ikoncomponents/alert-dialog/dialog-context.tsx +65 -0
  55. package/templates/default/ikoncomponents/alert-dialog/index.tsx +80 -0
  56. package/templates/default/ikoncomponents/app-breadcrumb/BreadcrumbProvider.tsx +68 -0
  57. package/templates/default/ikoncomponents/app-breadcrumb/index.tsx +222 -0
  58. package/templates/default/ikoncomponents/big-calendar/big-calender-event/index.tsx +38 -0
  59. package/templates/default/ikoncomponents/big-calendar/big-calender-toolbar/index.tsx +81 -0
  60. package/templates/default/ikoncomponents/big-calendar/index.css +879 -0
  61. package/templates/default/ikoncomponents/big-calendar/index.tsx +59 -0
  62. package/templates/default/ikoncomponents/big-calendar/type.ts +37 -0
  63. package/templates/default/ikoncomponents/buttons/index.tsx +127 -0
  64. package/templates/default/ikoncomponents/combobox-input/index.tsx +75 -0
  65. package/templates/default/ikoncomponents/combobox-input/type.ts +14 -0
  66. package/templates/default/ikoncomponents/custom-combo-dropdown/index.tsx +242 -0
  67. package/templates/default/ikoncomponents/data-table/datatable-column-filter/index.tsx +80 -0
  68. package/templates/default/ikoncomponents/data-table/datatable-faceted-filter/index.tsx +149 -0
  69. package/templates/default/ikoncomponents/data-table/datatable-filter-menu/index.tsx +98 -0
  70. package/templates/default/ikoncomponents/data-table/datatable-pagination/index.tsx +119 -0
  71. package/templates/default/ikoncomponents/data-table/datatable-toolbar/index.tsx +45 -0
  72. package/templates/default/ikoncomponents/data-table/function.ts +7 -0
  73. package/templates/default/ikoncomponents/data-table/index.tsx +549 -0
  74. package/templates/default/ikoncomponents/data-table/type.ts +75 -0
  75. package/templates/default/ikoncomponents/e-chart/index.tsx +183 -0
  76. package/templates/default/ikoncomponents/file-input/index.tsx +27 -0
  77. package/templates/default/ikoncomponents/fileUpload/index.tsx +121 -0
  78. package/templates/default/ikoncomponents/form-fields/combobox-input/index.tsx +111 -0
  79. package/templates/default/ikoncomponents/form-fields/combobox-input-value/index.tsx +121 -0
  80. package/templates/default/ikoncomponents/form-fields/date-input/index.tsx +80 -0
  81. package/templates/default/ikoncomponents/form-fields/file-input/index.tsx +9 -0
  82. package/templates/default/ikoncomponents/form-fields/input/index.tsx +27 -0
  83. package/{dist/ikoncomponents/form-fields/multi-combobox-input/index.js → templates/default/ikoncomponents/form-fields/multi-combobox-input/index.tsx} +574 -381
  84. package/templates/default/ikoncomponents/form-fields/otp-input/index.tsx +39 -0
  85. package/templates/default/ikoncomponents/form-fields/password-input/index.tsx +52 -0
  86. package/templates/default/ikoncomponents/form-fields/phone-input/index.tsx +7 -0
  87. package/templates/default/ikoncomponents/form-fields/textarea/index.tsx +28 -0
  88. package/templates/default/ikoncomponents/form-fields/types/index.ts +46 -0
  89. package/templates/default/ikoncomponents/glowing-effect/index.tsx +171 -0
  90. package/templates/default/ikoncomponents/icon/index.tsx +22 -0
  91. package/templates/default/ikoncomponents/image-cropper-upload/components/cropperImg.css +19 -0
  92. package/{dist/ikoncomponents/image-cropper-upload/components/newCropper.js → templates/default/ikoncomponents/image-cropper-upload/components/newCropper.tsx} +117 -85
  93. package/templates/default/ikoncomponents/image-cropper-upload/components/newImageUploadForm.tsx +352 -0
  94. package/templates/default/ikoncomponents/image-cropper-upload/cropper-form/index.tsx +250 -0
  95. package/templates/default/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.tsx +32 -0
  96. package/{dist/ikoncomponents/image-cropper-upload/image-cropper/index.js → templates/default/ikoncomponents/image-cropper-upload/image-cropper/index.tsx} +119 -87
  97. package/templates/default/ikoncomponents/image-cropper-upload/index.tsx +95 -0
  98. package/templates/default/ikoncomponents/image-cropper-upload/utils/index.ts +117 -0
  99. package/templates/default/ikoncomponents/loading-spinner/index.tsx +43 -0
  100. package/templates/default/ikoncomponents/main-layout/RefreshContext.tsx +30 -0
  101. package/templates/default/ikoncomponents/main-layout/SidebarNavContext.tsx +103 -0
  102. package/templates/default/ikoncomponents/main-layout/app-sidebar.tsx +36 -0
  103. package/templates/default/ikoncomponents/main-layout/footer.tsx +21 -0
  104. package/templates/default/ikoncomponents/main-layout/header.tsx +53 -0
  105. package/templates/default/ikoncomponents/main-layout/index.tsx +38 -0
  106. package/templates/default/ikoncomponents/main-layout/main-sidebar.tsx +389 -0
  107. package/templates/default/ikoncomponents/main-layout/nav-main.tsx +103 -0
  108. package/templates/default/ikoncomponents/multi-combobox/index.tsx +345 -0
  109. package/templates/default/ikoncomponents/no-data/index.tsx +11 -0
  110. package/templates/default/ikoncomponents/page-wrapper/index.tsx +30 -0
  111. package/templates/default/ikoncomponents/password-strength-meter/index.tsx +49 -0
  112. package/templates/default/ikoncomponents/phone-input/index.tsx +72 -0
  113. package/templates/default/ikoncomponents/provider-wrapper/index.tsx +32 -0
  114. package/templates/default/ikoncomponents/search-input/index.tsx +18 -0
  115. package/templates/default/ikoncomponents/sheet/index.tsx +34 -0
  116. package/templates/default/ikoncomponents/simple-widget/index.tsx +54 -0
  117. package/templates/default/ikoncomponents/skeleton-loader/skeleton-table.tsx +34 -0
  118. package/templates/default/ikoncomponents/skeleton-loader/skeleton-widget.tsx +13 -0
  119. package/templates/default/ikoncomponents/tabs/index.tsx +139 -0
  120. package/{dist/ikoncomponents/tabs/type.d.ts → templates/default/ikoncomponents/tabs/type.ts} +20 -19
  121. package/{dist/ikoncomponents/theme-toggle-btn/index.js → templates/default/ikoncomponents/theme-toggle-btn/index.tsx} +189 -118
  122. package/templates/default/ikoncomponents/title-progress/index.tsx +41 -0
  123. package/templates/default/ikoncomponents/tooltip/index.tsx +17 -0
  124. package/templates/default/ikoncomponents/twolevel-dropdown/convertToDropdownNodes.tsx +33 -0
  125. package/templates/default/ikoncomponents/twolevel-dropdown/index.tsx +279 -0
  126. package/templates/default/ikoncomponents/upload-tab/index.tsx +237 -0
  127. package/templates/default/ikoncomponents/widgets/index.tsx +81 -0
  128. package/templates/default/ikoncomponents/widgets/type.ts +11 -0
  129. package/templates/default/ikoncomponents/work-in-progress/index.tsx +16 -0
  130. package/templates/default/styles.css +1159 -0
  131. package/templates/default/utils/actions/account/index.ts +33 -0
  132. package/templates/default/utils/actions/account/type.ts +4 -0
  133. package/{dist/utils/actions/auth/index.js → templates/default/utils/actions/auth/index.ts} +69 -58
  134. package/templates/default/utils/actions/common/revalidate.ts +18 -0
  135. package/templates/default/utils/actions/common/type.ts +4 -0
  136. package/{dist/utils/actions/common/utils.js → templates/default/utils/actions/common/utils.ts} +28 -25
  137. package/templates/default/utils/actions/software/index.ts +106 -0
  138. package/templates/default/utils/api/accountService/index.ts +103 -0
  139. package/templates/default/utils/api/accountService/type.ts +4 -0
  140. package/templates/default/utils/api/file-upload/index.ts +103 -0
  141. package/templates/default/utils/api/file-upload/type.ts +8 -0
  142. package/{dist/utils/api/ikonBaseApi.js → templates/default/utils/api/ikonBaseApi.ts} +132 -104
  143. package/templates/default/utils/api/loginService/index.ts +106 -0
  144. package/{dist/utils/api/loginService/type.d.ts → templates/default/utils/api/loginService/type.ts} +35 -31
  145. package/templates/default/utils/api/softwareService/index.ts +356 -0
  146. package/templates/default/utils/api/softwareService/type.ts +62 -0
  147. package/{dist/utils/border-radius-provider.js → templates/default/utils/border-radius-provider.tsx} +59 -35
  148. package/templates/default/utils/cn.ts +6 -0
  149. package/{dist/utils/font-provider.js → templates/default/utils/font-provider.tsx} +61 -37
  150. package/templates/default/utils/session/cookieSession.ts +49 -0
  151. package/templates/default/utils/theme-provider/index.tsx +11 -0
  152. package/templates/default/utils/token-management/index.ts +115 -0
  153. package/templates/default/utils/token-management/types.ts +6 -0
  154. package/dist/hooks/use-mobile.d.ts +0 -1
  155. package/dist/hooks/use-mobile.js +0 -15
  156. package/dist/ikoncomponents/action-menu/index.d.ts +0 -5
  157. package/dist/ikoncomponents/action-menu/index.js +0 -42
  158. package/dist/ikoncomponents/action-menu/type.d.ts +0 -14
  159. package/dist/ikoncomponents/action-menu/type.js +0 -1
  160. package/dist/ikoncomponents/activity-sheet/index.d.ts +0 -11
  161. package/dist/ikoncomponents/activity-sheet/index.js +0 -23
  162. package/dist/ikoncomponents/alert-dialog/dialog-context.d.ts +0 -21
  163. package/dist/ikoncomponents/alert-dialog/dialog-context.js +0 -30
  164. package/dist/ikoncomponents/alert-dialog/index.d.ts +0 -14
  165. package/dist/ikoncomponents/alert-dialog/index.js +0 -20
  166. package/dist/ikoncomponents/app-breadcrumb/BreadcrumbProvider.d.ts +0 -18
  167. package/dist/ikoncomponents/app-breadcrumb/BreadcrumbProvider.js +0 -43
  168. package/dist/ikoncomponents/app-breadcrumb/index.d.ts +0 -5
  169. package/dist/ikoncomponents/app-breadcrumb/index.js +0 -57
  170. package/dist/ikoncomponents/big-calendar/big-calender-event/index.d.ts +0 -5
  171. package/dist/ikoncomponents/big-calendar/big-calender-event/index.js +0 -16
  172. package/dist/ikoncomponents/big-calendar/big-calender-toolbar/index.d.ts +0 -2
  173. package/dist/ikoncomponents/big-calendar/big-calender-toolbar/index.js +0 -39
  174. package/dist/ikoncomponents/big-calendar/index.d.ts +0 -3
  175. package/dist/ikoncomponents/big-calendar/index.js +0 -35
  176. package/dist/ikoncomponents/big-calendar/type.d.ts +0 -31
  177. package/dist/ikoncomponents/big-calendar/type.js +0 -1
  178. package/dist/ikoncomponents/buttons/index.d.ts +0 -18
  179. package/dist/ikoncomponents/buttons/index.js +0 -38
  180. package/dist/ikoncomponents/combobox-input/index.d.ts +0 -2
  181. package/dist/ikoncomponents/combobox-input/index.js +0 -18
  182. package/dist/ikoncomponents/combobox-input/type.d.ts +0 -13
  183. package/dist/ikoncomponents/combobox-input/type.js +0 -1
  184. package/dist/ikoncomponents/custom-combo-dropdown/index.d.ts +0 -21
  185. package/dist/ikoncomponents/custom-combo-dropdown/index.js +0 -85
  186. package/dist/ikoncomponents/data-table/datatable-column-filter/index.d.ts +0 -2
  187. package/dist/ikoncomponents/data-table/datatable-column-filter/index.js +0 -22
  188. package/dist/ikoncomponents/data-table/datatable-faceted-filter/index.d.ts +0 -2
  189. package/dist/ikoncomponents/data-table/datatable-faceted-filter/index.js +0 -35
  190. package/dist/ikoncomponents/data-table/datatable-filter-menu/index.d.ts +0 -2
  191. package/dist/ikoncomponents/data-table/datatable-filter-menu/index.js +0 -38
  192. package/dist/ikoncomponents/data-table/datatable-pagination/index.d.ts +0 -2
  193. package/dist/ikoncomponents/data-table/datatable-pagination/index.js +0 -13
  194. package/dist/ikoncomponents/data-table/datatable-toolbar/index.d.ts +0 -2
  195. package/dist/ikoncomponents/data-table/datatable-toolbar/index.js +0 -18
  196. package/dist/ikoncomponents/data-table/function.d.ts +0 -1
  197. package/dist/ikoncomponents/data-table/function.js +0 -6
  198. package/dist/ikoncomponents/data-table/index.d.ts +0 -2
  199. package/dist/ikoncomponents/data-table/index.js +0 -223
  200. package/dist/ikoncomponents/data-table/type.d.ts +0 -60
  201. package/dist/ikoncomponents/data-table/type.js +0 -1
  202. package/dist/ikoncomponents/e-chart/index.d.ts +0 -15
  203. package/dist/ikoncomponents/e-chart/index.js +0 -115
  204. package/dist/ikoncomponents/file-input/index.d.ts +0 -1
  205. package/dist/ikoncomponents/file-input/index.js +0 -21
  206. package/dist/ikoncomponents/fileUpload/index.d.ts +0 -15
  207. package/dist/ikoncomponents/fileUpload/index.js +0 -69
  208. package/dist/ikoncomponents/form-fields/combobox-input/index.d.ts +0 -2
  209. package/dist/ikoncomponents/form-fields/combobox-input/index.js +0 -21
  210. package/dist/ikoncomponents/form-fields/combobox-input-value/index.d.ts +0 -18
  211. package/dist/ikoncomponents/form-fields/combobox-input-value/index.js +0 -26
  212. package/dist/ikoncomponents/form-fields/date-input/index.d.ts +0 -2
  213. package/dist/ikoncomponents/form-fields/date-input/index.js +0 -15
  214. package/dist/ikoncomponents/form-fields/file-input/index.d.ts +0 -1
  215. package/dist/ikoncomponents/form-fields/file-input/index.js +0 -4
  216. package/dist/ikoncomponents/form-fields/input/index.d.ts +0 -2
  217. package/dist/ikoncomponents/form-fields/input/index.js +0 -18
  218. package/dist/ikoncomponents/form-fields/multi-combobox-input/index.d.ts +0 -6
  219. package/dist/ikoncomponents/form-fields/otp-input/index.d.ts +0 -2
  220. package/dist/ikoncomponents/form-fields/otp-input/index.js +0 -18
  221. package/dist/ikoncomponents/form-fields/phone-input/index.d.ts +0 -1
  222. package/dist/ikoncomponents/form-fields/phone-input/index.js +0 -4
  223. package/dist/ikoncomponents/form-fields/textarea/index.d.ts +0 -2
  224. package/dist/ikoncomponents/form-fields/textarea/index.js +0 -18
  225. package/dist/ikoncomponents/form-fields/types/index.d.ts +0 -36
  226. package/dist/ikoncomponents/form-fields/types/index.js +0 -1
  227. package/dist/ikoncomponents/glowing-effect/index.d.ts +0 -14
  228. package/dist/ikoncomponents/glowing-effect/index.js +0 -84
  229. package/dist/ikoncomponents/icon/index.d.ts +0 -8
  230. package/dist/ikoncomponents/icon/index.js +0 -23
  231. package/dist/ikoncomponents/image-cropper-upload/components/newCropper.d.ts +0 -15
  232. package/dist/ikoncomponents/image-cropper-upload/components/newImageUploadForm.d.ts +0 -7
  233. package/dist/ikoncomponents/image-cropper-upload/components/newImageUploadForm.js +0 -145
  234. package/dist/ikoncomponents/image-cropper-upload/cropper-form/index.d.ts +0 -6
  235. package/dist/ikoncomponents/image-cropper-upload/cropper-form/index.js +0 -92
  236. package/dist/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.d.ts +0 -6
  237. package/dist/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.js +0 -14
  238. package/dist/ikoncomponents/image-cropper-upload/image-cropper/index.d.ts +0 -14
  239. package/dist/ikoncomponents/image-cropper-upload/index.d.ts +0 -27
  240. package/dist/ikoncomponents/image-cropper-upload/index.js +0 -49
  241. package/dist/ikoncomponents/image-cropper-upload/utils/index.d.ts +0 -16
  242. package/dist/ikoncomponents/image-cropper-upload/utils/index.js +0 -73
  243. package/dist/ikoncomponents/loading-spinner/index.d.ts +0 -9
  244. package/dist/ikoncomponents/loading-spinner/index.js +0 -19
  245. package/dist/ikoncomponents/main-layout/RefreshContext.d.ts +0 -10
  246. package/dist/ikoncomponents/main-layout/RefreshContext.js +0 -17
  247. package/dist/ikoncomponents/main-layout/SidebarNavContext.d.ts +0 -33
  248. package/dist/ikoncomponents/main-layout/SidebarNavContext.js +0 -52
  249. package/dist/ikoncomponents/main-layout/app-sidebar.d.ts +0 -3
  250. package/dist/ikoncomponents/main-layout/app-sidebar.js +0 -24
  251. package/dist/ikoncomponents/main-layout/footer.d.ts +0 -1
  252. package/dist/ikoncomponents/main-layout/footer.js +0 -5
  253. package/dist/ikoncomponents/main-layout/header.d.ts +0 -3
  254. package/dist/ikoncomponents/main-layout/header.js +0 -15
  255. package/dist/ikoncomponents/main-layout/index.d.ts +0 -6
  256. package/dist/ikoncomponents/main-layout/index.js +0 -11
  257. package/dist/ikoncomponents/main-layout/main-sidebar.d.ts +0 -60
  258. package/dist/ikoncomponents/main-layout/main-sidebar.js +0 -119
  259. package/dist/ikoncomponents/main-layout/nav-main.d.ts +0 -11
  260. package/dist/ikoncomponents/main-layout/nav-main.js +0 -33
  261. package/dist/ikoncomponents/multi-combobox/index.d.ts +0 -13
  262. package/dist/ikoncomponents/multi-combobox/index.js +0 -202
  263. package/dist/ikoncomponents/no-data/index.d.ts +0 -3
  264. package/dist/ikoncomponents/no-data/index.js +0 -5
  265. package/dist/ikoncomponents/page-wrapper/index.d.ts +0 -9
  266. package/dist/ikoncomponents/page-wrapper/index.js +0 -7
  267. package/dist/ikoncomponents/password-strength-meter/index.d.ts +0 -3
  268. package/dist/ikoncomponents/password-strength-meter/index.js +0 -40
  269. package/dist/ikoncomponents/phone-input/index.d.ts +0 -1
  270. package/dist/ikoncomponents/phone-input/index.js +0 -41
  271. package/dist/ikoncomponents/provider-wrapper/index.d.ts +0 -6
  272. package/dist/ikoncomponents/provider-wrapper/index.js +0 -11
  273. package/dist/ikoncomponents/search-input/index.d.ts +0 -1
  274. package/dist/ikoncomponents/search-input/index.js +0 -19
  275. package/dist/ikoncomponents/sheet/index.d.ts +0 -10
  276. package/dist/ikoncomponents/sheet/index.js +0 -6
  277. package/dist/ikoncomponents/simple-widget/index.d.ts +0 -14
  278. package/dist/ikoncomponents/simple-widget/index.js +0 -14
  279. package/dist/ikoncomponents/skeleton-loader/skeleton-table.d.ts +0 -5
  280. package/dist/ikoncomponents/skeleton-loader/skeleton-table.js +0 -6
  281. package/dist/ikoncomponents/skeleton-loader/skeleton-widget.d.ts +0 -3
  282. package/dist/ikoncomponents/skeleton-loader/skeleton-widget.js +0 -5
  283. package/dist/ikoncomponents/tabs/index.d.ts +0 -2
  284. package/dist/ikoncomponents/tabs/index.js +0 -50
  285. package/dist/ikoncomponents/tabs/type.js +0 -2
  286. package/dist/ikoncomponents/theme-toggle-btn/index.d.ts +0 -1
  287. package/dist/ikoncomponents/title-progress/index.d.ts +0 -12
  288. package/dist/ikoncomponents/title-progress/index.js +0 -10
  289. package/dist/ikoncomponents/tooltip/index.d.ts +0 -5
  290. package/dist/ikoncomponents/tooltip/index.js +0 -5
  291. package/dist/ikoncomponents/twolevel-dropdown/index.d.ts +0 -31
  292. package/dist/ikoncomponents/twolevel-dropdown/index.js +0 -143
  293. package/dist/ikoncomponents/upload-tab/index.d.ts +0 -1
  294. package/dist/ikoncomponents/upload-tab/index.js +0 -92
  295. package/dist/ikoncomponents/widgets/index.d.ts +0 -2
  296. package/dist/ikoncomponents/widgets/index.js +0 -14
  297. package/dist/ikoncomponents/widgets/type.d.ts +0 -10
  298. package/dist/ikoncomponents/widgets/type.js +0 -2
  299. package/dist/ikoncomponents/work-in-progress/index.d.ts +0 -1
  300. package/dist/ikoncomponents/work-in-progress/index.js +0 -4
  301. package/dist/index.d.ts +0 -138
  302. package/dist/shadcn/accordion.d.ts +0 -7
  303. package/dist/shadcn/accordion.js +0 -33
  304. package/dist/shadcn/alert-dialog.d.ts +0 -20
  305. package/dist/shadcn/alert-dialog.js +0 -83
  306. package/dist/shadcn/alert.d.ts +0 -9
  307. package/dist/shadcn/alert.js +0 -38
  308. package/dist/shadcn/aspect-ratio.d.ts +0 -3
  309. package/dist/shadcn/aspect-ratio.js +0 -19
  310. package/dist/shadcn/avatar.d.ts +0 -6
  311. package/dist/shadcn/avatar.js +0 -28
  312. package/dist/shadcn/badge.d.ts +0 -9
  313. package/dist/shadcn/badge.js +0 -35
  314. package/dist/shadcn/breadcrumb.d.ts +0 -11
  315. package/dist/shadcn/breadcrumb.js +0 -45
  316. package/dist/shadcn/button.d.ts +0 -10
  317. package/dist/shadcn/button.js +0 -47
  318. package/dist/shadcn/calendar.d.ts +0 -8
  319. package/dist/shadcn/calendar.js +0 -61
  320. package/dist/shadcn/card.d.ts +0 -9
  321. package/dist/shadcn/card.js +0 -42
  322. package/dist/shadcn/checkbox.d.ts +0 -4
  323. package/dist/shadcn/checkbox.js +0 -21
  324. package/dist/shadcn/collapsible.d.ts +0 -5
  325. package/dist/shadcn/collapsible.js +0 -27
  326. package/dist/shadcn/command.d.ts +0 -18
  327. package/dist/shadcn/command.js +0 -54
  328. package/dist/shadcn/date-input.d.ts +0 -7
  329. package/dist/shadcn/date-input.js +0 -179
  330. package/dist/shadcn/date-range-picker.d.ts +0 -24
  331. package/dist/shadcn/date-range-picker.js +0 -45
  332. package/dist/shadcn/dialog.d.ts +0 -15
  333. package/dist/shadcn/dialog.js +0 -57
  334. package/dist/shadcn/drawer.d.ts +0 -13
  335. package/dist/shadcn/drawer.js +0 -56
  336. package/dist/shadcn/dropdown-menu.d.ts +0 -25
  337. package/dist/shadcn/dropdown-menu.js +0 -77
  338. package/dist/shadcn/form.d.ts +0 -24
  339. package/dist/shadcn/form.js +0 -70
  340. package/dist/shadcn/hover-card.d.ts +0 -6
  341. package/dist/shadcn/hover-card.js +0 -28
  342. package/dist/shadcn/input-otp.d.ts +0 -34
  343. package/dist/shadcn/input-otp.js +0 -40
  344. package/dist/shadcn/input.d.ts +0 -3
  345. package/dist/shadcn/input.js +0 -18
  346. package/dist/shadcn/label.d.ts +0 -4
  347. package/dist/shadcn/label.js +0 -20
  348. package/dist/shadcn/navigation-menu.d.ts +0 -16
  349. package/dist/shadcn/navigation-menu.js +0 -74
  350. package/dist/shadcn/popover.d.ts +0 -7
  351. package/dist/shadcn/popover.js +0 -32
  352. package/dist/shadcn/progress.d.ts +0 -8
  353. package/dist/shadcn/progress.js +0 -23
  354. package/dist/shadcn/radio-group.d.ts +0 -5
  355. package/dist/shadcn/radio-group.js +0 -25
  356. package/dist/shadcn/scroll-area.d.ts +0 -5
  357. package/dist/shadcn/scroll-area.js +0 -26
  358. package/dist/shadcn/select.d.ts +0 -15
  359. package/dist/shadcn/select.js +0 -59
  360. package/dist/shadcn/separator.d.ts +0 -4
  361. package/dist/shadcn/separator.js +0 -20
  362. package/dist/shadcn/sheet.d.ts +0 -13
  363. package/dist/shadcn/sheet.js +0 -61
  364. package/dist/shadcn/sidebar.d.ts +0 -69
  365. package/dist/shadcn/sidebar.js +0 -242
  366. package/dist/shadcn/skeleton.d.ts +0 -3
  367. package/dist/shadcn/skeleton.js +0 -18
  368. package/dist/shadcn/slider.d.ts +0 -4
  369. package/dist/shadcn/slider.js +0 -26
  370. package/dist/shadcn/sonner.d.ts +0 -3
  371. package/dist/shadcn/sonner.js +0 -25
  372. package/dist/shadcn/switch.d.ts +0 -4
  373. package/dist/shadcn/switch.js +0 -20
  374. package/dist/shadcn/table.d.ts +0 -10
  375. package/dist/shadcn/table.js +0 -47
  376. package/dist/shadcn/tabs.d.ts +0 -7
  377. package/dist/shadcn/tabs.js +0 -32
  378. package/dist/shadcn/textarea.d.ts +0 -3
  379. package/dist/shadcn/textarea.js +0 -18
  380. package/dist/shadcn/toggle-group.d.ts +0 -9
  381. package/dist/shadcn/toggle-group.js +0 -35
  382. package/dist/shadcn/toggle.d.ts +0 -9
  383. package/dist/shadcn/toggle.js +0 -38
  384. package/dist/shadcn/tooltip.d.ts +0 -7
  385. package/dist/shadcn/tooltip.js +0 -32
  386. package/dist/shadcn/workflow.d.ts +0 -20
  387. package/dist/shadcn/workflow.js +0 -20
  388. package/dist/styles.css +0 -6163
  389. package/dist/utils/actions/account/index.d.ts +0 -5
  390. package/dist/utils/actions/account/index.js +0 -28
  391. package/dist/utils/actions/account/type.d.ts +0 -4
  392. package/dist/utils/actions/account/type.js +0 -1
  393. package/dist/utils/actions/auth/index.d.ts +0 -7
  394. package/dist/utils/actions/common/utils.d.ts +0 -5
  395. package/dist/utils/actions/software/index.d.ts +0 -11
  396. package/dist/utils/actions/software/index.js +0 -75
  397. package/dist/utils/api/accountService/index.d.ts +0 -23
  398. package/dist/utils/api/accountService/index.js +0 -64
  399. package/dist/utils/api/accountService/type.d.ts +0 -4
  400. package/dist/utils/api/accountService/type.js +0 -1
  401. package/dist/utils/api/file-upload/index.d.ts +0 -5
  402. package/dist/utils/api/file-upload/index.js +0 -80
  403. package/dist/utils/api/file-upload/type.d.ts +0 -6
  404. package/dist/utils/api/file-upload/type.js +0 -1
  405. package/dist/utils/api/ikonBaseApi.d.ts +0 -12
  406. package/dist/utils/api/loginService/index.d.ts +0 -12
  407. package/dist/utils/api/loginService/index.js +0 -72
  408. package/dist/utils/api/loginService/type.js +0 -1
  409. package/dist/utils/api/softwareService/index.d.ts +0 -64
  410. package/dist/utils/api/softwareService/index.js +0 -212
  411. package/dist/utils/api/softwareService/type.d.ts +0 -54
  412. package/dist/utils/api/softwareService/type.js +0 -1
  413. package/dist/utils/border-radius-provider.d.ts +0 -11
  414. package/dist/utils/cn.d.ts +0 -2
  415. package/dist/utils/cn.js +0 -5
  416. package/dist/utils/font-provider.d.ts +0 -11
  417. package/dist/utils/session/cookieSession.d.ts +0 -8
  418. package/dist/utils/session/cookieSession.js +0 -33
  419. package/dist/utils/theme-provider/index.d.ts +0 -3
  420. package/dist/utils/theme-provider/index.js +0 -18
  421. package/dist/utils/token-management/index.d.ts +0 -10
  422. package/dist/utils/token-management/index.js +0 -69
  423. package/dist/utils/token-management/types.d.ts +0 -6
  424. package/dist/utils/token-management/types.js +0 -1
@@ -0,0 +1,143 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as DialogPrimitive from "@radix-ui/react-dialog"
5
+ import { XIcon } from "lucide-react"
6
+
7
+ import { cn } from "../utils/cn"
8
+
9
+ function Dialog({
10
+ ...props
11
+ }: React.ComponentProps<typeof DialogPrimitive.Root>) {
12
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />
13
+ }
14
+
15
+ function DialogTrigger({
16
+ ...props
17
+ }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
18
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />
19
+ }
20
+
21
+ function DialogPortal({
22
+ ...props
23
+ }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
24
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />
25
+ }
26
+
27
+ function DialogClose({
28
+ ...props
29
+ }: React.ComponentProps<typeof DialogPrimitive.Close>) {
30
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
31
+ }
32
+
33
+ function DialogOverlay({
34
+ className,
35
+ ...props
36
+ }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
37
+ return (
38
+ <DialogPrimitive.Overlay
39
+ data-slot="dialog-overlay"
40
+ className={cn(
41
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
42
+ className
43
+ )}
44
+ {...props}
45
+ />
46
+ )
47
+ }
48
+
49
+ function DialogContent({
50
+ className,
51
+ children,
52
+ showCloseButton = true,
53
+ ...props
54
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
55
+ showCloseButton?: boolean
56
+ }) {
57
+ return (
58
+ <DialogPortal data-slot="dialog-portal">
59
+ <DialogOverlay />
60
+ <DialogPrimitive.Content
61
+ data-slot="dialog-content"
62
+ className={cn(
63
+ "bg-card data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
64
+ className
65
+ )}
66
+ {...props}
67
+ >
68
+ {children}
69
+ {showCloseButton && (
70
+ <DialogPrimitive.Close
71
+ data-slot="dialog-close"
72
+ className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
73
+ >
74
+ <XIcon />
75
+ <span className="sr-only">Close</span>
76
+ </DialogPrimitive.Close>
77
+ )}
78
+ </DialogPrimitive.Content>
79
+ </DialogPortal>
80
+ )
81
+ }
82
+
83
+ function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
84
+ return (
85
+ <div
86
+ data-slot="dialog-header"
87
+ className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
88
+ {...props}
89
+ />
90
+ )
91
+ }
92
+
93
+ function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
94
+ return (
95
+ <div
96
+ data-slot="dialog-footer"
97
+ className={cn(
98
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
99
+ className
100
+ )}
101
+ {...props}
102
+ />
103
+ )
104
+ }
105
+
106
+ function DialogDescription({
107
+ className,
108
+ ...props
109
+ }: React.ComponentProps<typeof DialogPrimitive.Description>) {
110
+ return (
111
+ <DialogPrimitive.Description
112
+ data-slot="dialog-description"
113
+ className={cn("text-lg leading-none font-semibold", className)}
114
+ {...props}
115
+ />
116
+ )
117
+ }
118
+
119
+ function DialogTitle({
120
+ className,
121
+ ...props
122
+ }: React.ComponentProps<typeof DialogPrimitive.Title>) {
123
+ return (
124
+ <DialogPrimitive.Title
125
+ data-slot="dialog-title"
126
+ className={cn("text-muted-foreground text-sm", className)}
127
+ {...props}
128
+ />
129
+ )
130
+ }
131
+
132
+ export {
133
+ Dialog,
134
+ DialogClose,
135
+ DialogContent,
136
+ DialogDescription,
137
+ DialogFooter,
138
+ DialogHeader,
139
+ DialogOverlay,
140
+ DialogPortal,
141
+ DialogTitle,
142
+ DialogTrigger,
143
+ }
@@ -0,0 +1,134 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Drawer as DrawerPrimitive } from "vaul"
5
+ import { cn } from "../utils/cn"
6
+
7
+ function Drawer({
8
+ ...props
9
+ }: React.ComponentProps<typeof DrawerPrimitive.Root>) {
10
+ return <DrawerPrimitive.Root data-slot="drawer" {...props} />
11
+ }
12
+
13
+ function DrawerTrigger({
14
+ ...props
15
+ }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {
16
+ return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />
17
+ }
18
+
19
+ function DrawerPortal({
20
+ ...props
21
+ }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {
22
+ return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />
23
+ }
24
+
25
+ function DrawerClose({
26
+ ...props
27
+ }: React.ComponentProps<typeof DrawerPrimitive.Close>) {
28
+ return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />
29
+ }
30
+
31
+ function DrawerOverlay({
32
+ className,
33
+ ...props
34
+ }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {
35
+ return (
36
+ <DrawerPrimitive.Overlay
37
+ data-slot="drawer-overlay"
38
+ className={cn(
39
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
40
+ className
41
+ )}
42
+ {...props}
43
+ />
44
+ )
45
+ }
46
+
47
+ function DrawerContent({
48
+ className,
49
+ children,
50
+ ...props
51
+ }: React.ComponentProps<typeof DrawerPrimitive.Content>) {
52
+ return (
53
+ <DrawerPortal data-slot="drawer-portal">
54
+ <DrawerOverlay />
55
+ <DrawerPrimitive.Content
56
+ data-slot="drawer-content"
57
+ className={cn(
58
+ "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
59
+ "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
60
+ "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
61
+ "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
62
+ "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
63
+ className
64
+ )}
65
+ {...props}
66
+ >
67
+ <div className="bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" />
68
+ {children}
69
+ </DrawerPrimitive.Content>
70
+ </DrawerPortal>
71
+ )
72
+ }
73
+
74
+ function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) {
75
+ return (
76
+ <div
77
+ data-slot="drawer-header"
78
+ className={cn(
79
+ "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",
80
+ className
81
+ )}
82
+ {...props}
83
+ />
84
+ )
85
+ }
86
+
87
+ function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) {
88
+ return (
89
+ <div
90
+ data-slot="drawer-footer"
91
+ className={cn("mt-auto flex flex-col gap-2 p-4", className)}
92
+ {...props}
93
+ />
94
+ )
95
+ }
96
+
97
+ function DrawerTitle({
98
+ className,
99
+ ...props
100
+ }: React.ComponentProps<typeof DrawerPrimitive.Title>) {
101
+ return (
102
+ <DrawerPrimitive.Title
103
+ data-slot="drawer-title"
104
+ className={cn("text-foreground font-semibold", className)}
105
+ {...props}
106
+ />
107
+ )
108
+ }
109
+
110
+ function DrawerDescription({
111
+ className,
112
+ ...props
113
+ }: React.ComponentProps<typeof DrawerPrimitive.Description>) {
114
+ return (
115
+ <DrawerPrimitive.Description
116
+ data-slot="drawer-description"
117
+ className={cn("text-muted-foreground text-sm", className)}
118
+ {...props}
119
+ />
120
+ )
121
+ }
122
+
123
+ export {
124
+ Drawer,
125
+ DrawerPortal,
126
+ DrawerOverlay,
127
+ DrawerTrigger,
128
+ DrawerClose,
129
+ DrawerContent,
130
+ DrawerHeader,
131
+ DrawerFooter,
132
+ DrawerTitle,
133
+ DrawerDescription,
134
+ }
@@ -0,0 +1,259 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
5
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
6
+ import { cn } from "../utils/cn"
7
+
8
+ function DropdownMenu({
9
+ ...props
10
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
11
+ return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />
12
+ }
13
+
14
+ function DropdownMenuPortal({
15
+ ...props
16
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
17
+ return (
18
+ <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
19
+ )
20
+ }
21
+
22
+ function DropdownMenuTrigger({
23
+ ...props
24
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
25
+ return (
26
+ <DropdownMenuPrimitive.Trigger
27
+ data-slot="dropdown-menu-trigger"
28
+ {...props}
29
+ />
30
+ )
31
+ }
32
+
33
+ function DropdownMenuContent({
34
+ className,
35
+ sideOffset = 4,
36
+
37
+ ...props
38
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {
39
+ return (
40
+ <DropdownMenuPrimitive.Portal>
41
+ <DropdownMenuPrimitive.Content
42
+ data-slot="dropdown-menu-content"
43
+
44
+ sideOffset={sideOffset}
45
+ className={cn(
46
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
47
+ "bg-[var(--background)]",
48
+ className
49
+ )}
50
+ {...props}
51
+ />
52
+ </DropdownMenuPrimitive.Portal>
53
+ )
54
+ }
55
+
56
+ function DropdownMenuGroup({
57
+ ...props
58
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {
59
+ return (
60
+ <DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
61
+ )
62
+ }
63
+
64
+ function DropdownMenuItem({
65
+ className,
66
+ inset,
67
+ variant = "default",
68
+ ...props
69
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
70
+ inset?: boolean
71
+ variant?: "default" | "destructive"
72
+ }) {
73
+ return (
74
+ <DropdownMenuPrimitive.Item
75
+ data-slot="dropdown-menu-item"
76
+ data-inset={inset}
77
+ data-variant={variant}
78
+ className={cn(
79
+ "focus:bg-[var(--input)] dark:focus:bg-[var(--card)] blue-dark:focus:bg-[var(--secondary)] focus:text-accent-foreground dark:text-foreground focus:dark:text-foreground blue-dark:text-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
80
+ className
81
+ )}
82
+ {...props}
83
+ />
84
+ )
85
+ }
86
+
87
+ function DropdownMenuCheckboxItem({
88
+ className,
89
+ children,
90
+ checked,
91
+ ...props
92
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {
93
+ return (
94
+ <DropdownMenuPrimitive.CheckboxItem
95
+ data-slot="dropdown-menu-checkbox-item"
96
+ className={cn(
97
+ "focus:bg-[var(--input)] focus:text-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
98
+ className
99
+ )}
100
+ checked={checked}
101
+ {...props}
102
+ >
103
+ <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
104
+ <DropdownMenuPrimitive.ItemIndicator>
105
+ <CheckIcon className="size-4" />
106
+ </DropdownMenuPrimitive.ItemIndicator>
107
+ </span>
108
+ {children}
109
+ </DropdownMenuPrimitive.CheckboxItem>
110
+ )
111
+ }
112
+
113
+ function DropdownMenuRadioGroup({
114
+ ...props
115
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
116
+ return (
117
+ <DropdownMenuPrimitive.RadioGroup
118
+ data-slot="dropdown-menu-radio-group"
119
+ {...props}
120
+ />
121
+ )
122
+ }
123
+
124
+ function DropdownMenuRadioItem({
125
+ className,
126
+ children,
127
+ ...props
128
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {
129
+ return (
130
+ <DropdownMenuPrimitive.RadioItem
131
+ data-slot="dropdown-menu-radio-item"
132
+ className={cn(
133
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
134
+ className
135
+ )}
136
+ {...props}
137
+ >
138
+ <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
139
+ <DropdownMenuPrimitive.ItemIndicator>
140
+ <CircleIcon className="size-2 fill-current" />
141
+ </DropdownMenuPrimitive.ItemIndicator>
142
+ </span>
143
+ {children}
144
+ </DropdownMenuPrimitive.RadioItem>
145
+ )
146
+ }
147
+
148
+ function DropdownMenuLabel({
149
+ className,
150
+ inset,
151
+ ...props
152
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
153
+ inset?: boolean
154
+ }) {
155
+ return (
156
+ <DropdownMenuPrimitive.Label
157
+ data-slot="dropdown-menu-label"
158
+ data-inset={inset}
159
+ className={cn(
160
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
161
+ className
162
+ )}
163
+ {...props}
164
+ />
165
+ )
166
+ }
167
+
168
+ function DropdownMenuSeparator({
169
+ className,
170
+ ...props
171
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
172
+ return (
173
+ <DropdownMenuPrimitive.Separator
174
+ data-slot="dropdown-menu-separator"
175
+ className={cn("bg-border -mx-1 my-1 h-px", className)}
176
+ {...props}
177
+ />
178
+ )
179
+ }
180
+
181
+ function DropdownMenuShortcut({
182
+ className,
183
+ ...props
184
+ }: React.ComponentProps<"span">) {
185
+ return (
186
+ <span
187
+ data-slot="dropdown-menu-shortcut"
188
+ className={cn(
189
+ "text-muted-foreground ml-auto text-xs tracking-widest",
190
+ className
191
+ )}
192
+ {...props}
193
+ />
194
+ )
195
+ }
196
+
197
+ function DropdownMenuSub({
198
+ ...props
199
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {
200
+ return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} />
201
+ }
202
+
203
+ function DropdownMenuSubTrigger({
204
+ className,
205
+ inset,
206
+ children,
207
+ ...props
208
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
209
+ inset?: boolean
210
+ }) {
211
+ return (
212
+ <DropdownMenuPrimitive.SubTrigger
213
+ data-slot="dropdown-menu-sub-trigger"
214
+ data-inset={inset}
215
+ className={cn(
216
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
217
+ className
218
+ )}
219
+ {...props}
220
+ >
221
+ {children}
222
+ <ChevronRightIcon className="ml-auto size-4" />
223
+ </DropdownMenuPrimitive.SubTrigger>
224
+ )
225
+ }
226
+
227
+ function DropdownMenuSubContent({
228
+ className,
229
+ ...props
230
+ }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {
231
+ return (
232
+ <DropdownMenuPrimitive.SubContent
233
+ data-slot="dropdown-menu-sub-content"
234
+ className={cn(
235
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
236
+ className
237
+ )}
238
+ {...props}
239
+ />
240
+ )
241
+ }
242
+
243
+ export {
244
+ DropdownMenu,
245
+ DropdownMenuPortal,
246
+ DropdownMenuTrigger,
247
+ DropdownMenuContent,
248
+ DropdownMenuGroup,
249
+ DropdownMenuLabel,
250
+ DropdownMenuItem,
251
+ DropdownMenuCheckboxItem,
252
+ DropdownMenuRadioGroup,
253
+ DropdownMenuRadioItem,
254
+ DropdownMenuSeparator,
255
+ DropdownMenuShortcut,
256
+ DropdownMenuSub,
257
+ DropdownMenuSubTrigger,
258
+ DropdownMenuSubContent,
259
+ }
@@ -0,0 +1,166 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as LabelPrimitive from "@radix-ui/react-label"
5
+ import { Slot } from "@radix-ui/react-slot"
6
+ import {
7
+ Controller,
8
+ FormProvider,
9
+ useFormContext,
10
+ useFormState,
11
+ type ControllerProps,
12
+ type FieldPath,
13
+ type FieldValues,
14
+ } from "react-hook-form"
15
+ import { cn } from "../utils/cn"
16
+ import { Label } from "./label"
17
+
18
+ const Form = FormProvider
19
+
20
+ type FormFieldContextValue<
21
+ TFieldValues extends FieldValues = FieldValues,
22
+ TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
23
+ > = {
24
+ name: TName
25
+ }
26
+
27
+ const FormFieldContext = React.createContext<FormFieldContextValue>(
28
+ {} as FormFieldContextValue
29
+ )
30
+
31
+ const FormField = <
32
+ TFieldValues extends FieldValues = FieldValues,
33
+ TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
34
+ >({
35
+ ...props
36
+ }: ControllerProps<TFieldValues, TName>) => {
37
+ return (
38
+ <FormFieldContext.Provider value={{ name: props.name }}>
39
+ <Controller {...props} />
40
+ </FormFieldContext.Provider>
41
+ )
42
+ }
43
+
44
+ const useFormField = () => {
45
+ const fieldContext = React.useContext(FormFieldContext)
46
+ const itemContext = React.useContext(FormItemContext)
47
+ const { getFieldState } = useFormContext()
48
+ const formState = useFormState({ name: fieldContext.name })
49
+ const fieldState = getFieldState(fieldContext.name, formState)
50
+
51
+ if (!fieldContext) {
52
+ throw new Error("useFormField should be used within <FormField>")
53
+ }
54
+
55
+ const { id } = itemContext
56
+
57
+ return {
58
+ id,
59
+ name: fieldContext.name,
60
+ formItemId: `${id}-form-item`,
61
+ formDescriptionId: `${id}-form-item-description`,
62
+ formMessageId: `${id}-form-item-message`,
63
+ ...fieldState,
64
+ }
65
+ }
66
+
67
+ type FormItemContextValue = {
68
+ id: string
69
+ }
70
+
71
+ const FormItemContext = React.createContext<FormItemContextValue>(
72
+ {} as FormItemContextValue
73
+ )
74
+
75
+ function FormItem({ className, ...props }: React.ComponentProps<"div">) {
76
+ const id = React.useId()
77
+
78
+ return (
79
+ <FormItemContext.Provider value={{ id }}>
80
+ <div
81
+ data-slot="form-item"
82
+ className={cn("grid gap-2", className)}
83
+ {...props}
84
+ />
85
+ </FormItemContext.Provider>
86
+ )
87
+ }
88
+
89
+ function FormLabel({
90
+ className,
91
+ ...props
92
+ }: React.ComponentProps<typeof LabelPrimitive.Root>) {
93
+ const { error, formItemId } = useFormField()
94
+
95
+ return (
96
+ <Label
97
+ data-slot="form-label"
98
+ data-error={!!error}
99
+ className={cn("data-[error=true]:text-destructive", className)}
100
+ htmlFor={formItemId}
101
+ {...props}
102
+ />
103
+ )
104
+ }
105
+
106
+ function FormControl({ ...props }: React.ComponentProps<typeof Slot>) {
107
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField()
108
+
109
+ return (
110
+ <Slot
111
+ data-slot="form-control"
112
+ id={formItemId}
113
+ aria-describedby={
114
+ !error
115
+ ? `${formDescriptionId}`
116
+ : `${formDescriptionId} ${formMessageId}`
117
+ }
118
+ aria-invalid={!!error}
119
+ {...props}
120
+ />
121
+ )
122
+ }
123
+
124
+ function FormDescription({ className, ...props }: React.ComponentProps<"p">) {
125
+ const { formDescriptionId } = useFormField()
126
+
127
+ return (
128
+ <p
129
+ data-slot="form-description"
130
+ id={formDescriptionId}
131
+ className={cn("text-muted-foreground text-sm", className)}
132
+ {...props}
133
+ />
134
+ )
135
+ }
136
+
137
+ function FormMessage({ className, ...props }: React.ComponentProps<"p">) {
138
+ const { error, formMessageId } = useFormField()
139
+ const body = error ? String(error?.message ?? "") : props.children
140
+
141
+ if (!body) {
142
+ return null
143
+ }
144
+
145
+ return (
146
+ <p
147
+ data-slot="form-message"
148
+ id={formMessageId}
149
+ className={cn("text-destructive text-sm", className)}
150
+ {...props}
151
+ >
152
+ {body}
153
+ </p>
154
+ )
155
+ }
156
+
157
+ export {
158
+ useFormField,
159
+ Form,
160
+ FormItem,
161
+ FormLabel,
162
+ FormControl,
163
+ FormDescription,
164
+ FormMessage,
165
+ FormField,
166
+ }