ikoncomponents 1.4.8 → 1.5.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 (576) hide show
  1. package/bin.js +2 -0
  2. package/dist/commands/init.js +57 -0
  3. package/dist/index.js +3 -116
  4. package/dist/utlis/copyDir.js +7 -0
  5. package/package.json +18 -92
  6. package/templates/default/hooks/use-mobile.ts +19 -0
  7. package/templates/default/ikonShade/accordion.tsx +66 -0
  8. package/templates/default/ikonShade/alert-dialog.tsx +179 -0
  9. package/templates/default/ikonShade/alert.tsx +66 -0
  10. package/templates/default/ikonShade/aspect-ratio.tsx +11 -0
  11. package/templates/default/ikonShade/avatar.tsx +53 -0
  12. package/templates/default/ikonShade/badge.tsx +49 -0
  13. package/templates/default/ikonShade/breadcrumb.tsx +109 -0
  14. package/templates/default/ikonShade/button.tsx +64 -0
  15. package/templates/default/ikonShade/calendar.tsx +227 -0
  16. package/templates/default/ikonShade/card.tsx +92 -0
  17. package/templates/default/ikonShade/checkbox.tsx +33 -0
  18. package/templates/default/ikonShade/collapsible.tsx +33 -0
  19. package/templates/default/ikonShade/command.tsx +184 -0
  20. package/templates/default/ikonShade/date-input.tsx +259 -0
  21. package/templates/default/ikonShade/date-range-picker.tsx +103 -0
  22. package/templates/default/ikonShade/dialog.tsx +143 -0
  23. package/templates/default/ikonShade/drawer.tsx +134 -0
  24. package/templates/default/ikonShade/dropdown-menu.tsx +259 -0
  25. package/templates/default/ikonShade/form.tsx +166 -0
  26. package/templates/default/ikonShade/hover-card.tsx +44 -0
  27. package/templates/default/ikonShade/input-otp.tsx +71 -0
  28. package/templates/default/ikonShade/input.tsx +22 -0
  29. package/templates/default/ikonShade/label.tsx +24 -0
  30. package/templates/default/ikonShade/navigation-menu.tsx +195 -0
  31. package/templates/default/ikonShade/popover.tsx +48 -0
  32. package/templates/default/ikonShade/progress.tsx +40 -0
  33. package/templates/default/ikonShade/radio-group.tsx +45 -0
  34. package/templates/default/ikonShade/scroll-area.tsx +58 -0
  35. package/templates/default/ikonShade/select.tsx +184 -0
  36. package/templates/default/ikonShade/separator.tsx +28 -0
  37. package/templates/default/ikonShade/sheet.tsx +139 -0
  38. package/templates/default/ikonShade/sidebar.tsx +726 -0
  39. package/templates/default/ikonShade/skeleton.tsx +15 -0
  40. package/templates/default/ikonShade/slider.tsx +64 -0
  41. package/templates/default/ikonShade/sonner.tsx +25 -0
  42. package/templates/default/ikonShade/switch.tsx +31 -0
  43. package/templates/default/ikonShade/table.tsx +116 -0
  44. package/templates/default/ikonShade/tabs.tsx +67 -0
  45. package/templates/default/ikonShade/textarea.tsx +18 -0
  46. package/templates/default/ikonShade/toggle-group.tsx +83 -0
  47. package/templates/default/ikonShade/toggle.tsx +47 -0
  48. package/templates/default/ikonShade/tooltip.tsx +65 -0
  49. package/templates/default/ikonShade/workflow.tsx +119 -0
  50. package/templates/default/ikoncomponents/action-menu/index.tsx +108 -0
  51. package/templates/default/ikoncomponents/action-menu/type.ts +18 -0
  52. package/templates/default/ikoncomponents/activity-sheet/index.tsx +63 -0
  53. package/templates/default/ikoncomponents/alert-dialog/dialog-context.tsx +65 -0
  54. package/templates/default/ikoncomponents/alert-dialog/index.tsx +80 -0
  55. package/templates/default/ikoncomponents/app-breadcrumb/BreadcrumbProvider.tsx +68 -0
  56. package/templates/default/ikoncomponents/app-breadcrumb/index.tsx +222 -0
  57. package/templates/default/ikoncomponents/big-calendar/big-calender-event/index.tsx +38 -0
  58. package/templates/default/ikoncomponents/big-calendar/big-calender-toolbar/index.tsx +81 -0
  59. package/templates/default/ikoncomponents/big-calendar/index.css +879 -0
  60. package/templates/default/ikoncomponents/big-calendar/index.tsx +59 -0
  61. package/templates/default/ikoncomponents/big-calendar/type.ts +37 -0
  62. package/templates/default/ikoncomponents/buttons/index.tsx +127 -0
  63. package/templates/default/ikoncomponents/combobox-input/index.tsx +75 -0
  64. package/templates/default/ikoncomponents/combobox-input/type.ts +14 -0
  65. package/templates/default/ikoncomponents/custom-combo-dropdown/index.tsx +242 -0
  66. package/templates/default/ikoncomponents/data-table/datatable-column-filter/index.tsx +80 -0
  67. package/templates/default/ikoncomponents/data-table/datatable-faceted-filter/index.tsx +149 -0
  68. package/templates/default/ikoncomponents/data-table/datatable-filter-menu/index.tsx +98 -0
  69. package/templates/default/ikoncomponents/data-table/datatable-pagination/index.tsx +119 -0
  70. package/templates/default/ikoncomponents/data-table/datatable-toolbar/index.tsx +45 -0
  71. package/templates/default/ikoncomponents/data-table/function.ts +7 -0
  72. package/templates/default/ikoncomponents/data-table/index.tsx +549 -0
  73. package/templates/default/ikoncomponents/data-table/type.ts +75 -0
  74. package/templates/default/ikoncomponents/e-chart/index.tsx +183 -0
  75. package/templates/default/ikoncomponents/file-input/index.tsx +27 -0
  76. package/templates/default/ikoncomponents/fileUpload/index.tsx +121 -0
  77. package/templates/default/ikoncomponents/form-fields/combobox-input/index.tsx +111 -0
  78. package/templates/default/ikoncomponents/form-fields/combobox-input-value/index.tsx +121 -0
  79. package/templates/default/ikoncomponents/form-fields/date-input/index.tsx +80 -0
  80. package/templates/default/ikoncomponents/form-fields/file-input/index.tsx +9 -0
  81. package/templates/default/ikoncomponents/form-fields/input/index.tsx +27 -0
  82. package/{dist/ikoncomponents/form-fields/multi-combobox-input/index.js → templates/default/ikoncomponents/form-fields/multi-combobox-input/index.tsx} +574 -381
  83. package/templates/default/ikoncomponents/form-fields/otp-input/index.tsx +39 -0
  84. package/templates/default/ikoncomponents/form-fields/password-input/index.tsx +52 -0
  85. package/templates/default/ikoncomponents/form-fields/phone-input/index.tsx +7 -0
  86. package/templates/default/ikoncomponents/form-fields/textarea/index.tsx +28 -0
  87. package/templates/default/ikoncomponents/form-fields/types/index.ts +46 -0
  88. package/templates/default/ikoncomponents/glowing-effect/index.tsx +171 -0
  89. package/templates/default/ikoncomponents/icon/index.tsx +22 -0
  90. package/templates/default/ikoncomponents/image-cropper-upload/components/cropperImg.css +19 -0
  91. package/{dist/ikoncomponents/image-cropper-upload/components/newCropper.js → templates/default/ikoncomponents/image-cropper-upload/components/newCropper.tsx} +117 -85
  92. package/templates/default/ikoncomponents/image-cropper-upload/components/newImageUploadForm.tsx +352 -0
  93. package/templates/default/ikoncomponents/image-cropper-upload/cropper-form/index.tsx +250 -0
  94. package/templates/default/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.tsx +32 -0
  95. package/{dist/ikoncomponents/image-cropper-upload/image-cropper/index.js → templates/default/ikoncomponents/image-cropper-upload/image-cropper/index.tsx} +119 -87
  96. package/templates/default/ikoncomponents/image-cropper-upload/index.tsx +95 -0
  97. package/templates/default/ikoncomponents/image-cropper-upload/utils/index.ts +117 -0
  98. package/templates/default/ikoncomponents/loading-spinner/index.tsx +43 -0
  99. package/templates/default/ikoncomponents/main-layout/RefreshContext.tsx +30 -0
  100. package/templates/default/ikoncomponents/main-layout/SidebarNavContext.tsx +103 -0
  101. package/templates/default/ikoncomponents/main-layout/app-sidebar.tsx +36 -0
  102. package/templates/default/ikoncomponents/main-layout/footer.tsx +21 -0
  103. package/templates/default/ikoncomponents/main-layout/header.tsx +53 -0
  104. package/templates/default/ikoncomponents/main-layout/index.tsx +43 -0
  105. package/templates/default/ikoncomponents/main-layout/main-sidebar.tsx +389 -0
  106. package/templates/default/ikoncomponents/main-layout/nav-main.tsx +103 -0
  107. package/templates/default/ikoncomponents/multi-combobox/index.tsx +345 -0
  108. package/templates/default/ikoncomponents/no-data/index.tsx +11 -0
  109. package/templates/default/ikoncomponents/page-wrapper/index.tsx +30 -0
  110. package/templates/default/ikoncomponents/password-strength-meter/index.tsx +49 -0
  111. package/templates/default/ikoncomponents/phone-input/index.tsx +72 -0
  112. package/templates/default/ikoncomponents/provider-wrapper/index.tsx +32 -0
  113. package/templates/default/ikoncomponents/search-input/index.tsx +18 -0
  114. package/templates/default/ikoncomponents/sheet/index.tsx +34 -0
  115. package/templates/default/ikoncomponents/simple-widget/index.tsx +54 -0
  116. package/templates/default/ikoncomponents/skeleton-loader/skeleton-table.tsx +34 -0
  117. package/templates/default/ikoncomponents/skeleton-loader/skeleton-widget.tsx +13 -0
  118. package/templates/default/ikoncomponents/tabs/index.tsx +139 -0
  119. package/{dist/ikoncomponents/tabs/type.d.ts → templates/default/ikoncomponents/tabs/type.ts} +20 -20
  120. package/{dist/ikoncomponents/theme-toggle-btn/index.js → templates/default/ikoncomponents/theme-toggle-btn/index.tsx} +189 -118
  121. package/templates/default/ikoncomponents/title-progress/index.tsx +41 -0
  122. package/templates/default/ikoncomponents/tooltip/index.tsx +17 -0
  123. package/templates/default/ikoncomponents/twolevel-dropdown/convertToDropdownNodes.tsx +33 -0
  124. package/templates/default/ikoncomponents/twolevel-dropdown/index.tsx +279 -0
  125. package/templates/default/ikoncomponents/upload-tab/index.tsx +237 -0
  126. package/templates/default/ikoncomponents/widgets/index.tsx +81 -0
  127. package/templates/default/ikoncomponents/widgets/type.ts +11 -0
  128. package/templates/default/ikoncomponents/work-in-progress/index.tsx +16 -0
  129. package/{dist/index.d.ts → templates/default/index.ts} +234 -139
  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 +108 -0
  144. package/{dist/utils/api/loginService/type.d.ts → templates/default/utils/api/loginService/type.ts} +35 -32
  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 -2
  155. package/dist/hooks/use-mobile.d.ts.map +0 -1
  156. package/dist/hooks/use-mobile.js +0 -15
  157. package/dist/ikoncomponents/action-menu/index.d.ts +0 -6
  158. package/dist/ikoncomponents/action-menu/index.d.ts.map +0 -1
  159. package/dist/ikoncomponents/action-menu/index.js +0 -42
  160. package/dist/ikoncomponents/action-menu/type.d.ts +0 -15
  161. package/dist/ikoncomponents/action-menu/type.d.ts.map +0 -1
  162. package/dist/ikoncomponents/action-menu/type.js +0 -1
  163. package/dist/ikoncomponents/activity-sheet/index.d.ts +0 -12
  164. package/dist/ikoncomponents/activity-sheet/index.d.ts.map +0 -1
  165. package/dist/ikoncomponents/activity-sheet/index.js +0 -23
  166. package/dist/ikoncomponents/alert-dialog/dialog-context.d.ts +0 -22
  167. package/dist/ikoncomponents/alert-dialog/dialog-context.d.ts.map +0 -1
  168. package/dist/ikoncomponents/alert-dialog/dialog-context.js +0 -30
  169. package/dist/ikoncomponents/alert-dialog/index.d.ts +0 -15
  170. package/dist/ikoncomponents/alert-dialog/index.d.ts.map +0 -1
  171. package/dist/ikoncomponents/alert-dialog/index.js +0 -20
  172. package/dist/ikoncomponents/app-breadcrumb/BreadcrumbProvider.d.ts +0 -19
  173. package/dist/ikoncomponents/app-breadcrumb/BreadcrumbProvider.d.ts.map +0 -1
  174. package/dist/ikoncomponents/app-breadcrumb/BreadcrumbProvider.js +0 -43
  175. package/dist/ikoncomponents/app-breadcrumb/index.d.ts +0 -6
  176. package/dist/ikoncomponents/app-breadcrumb/index.d.ts.map +0 -1
  177. package/dist/ikoncomponents/app-breadcrumb/index.js +0 -57
  178. package/dist/ikoncomponents/big-calendar/big-calender-event/index.d.ts +0 -6
  179. package/dist/ikoncomponents/big-calendar/big-calender-event/index.d.ts.map +0 -1
  180. package/dist/ikoncomponents/big-calendar/big-calender-event/index.js +0 -16
  181. package/dist/ikoncomponents/big-calendar/big-calender-toolbar/index.d.ts +0 -3
  182. package/dist/ikoncomponents/big-calendar/big-calender-toolbar/index.d.ts.map +0 -1
  183. package/dist/ikoncomponents/big-calendar/big-calender-toolbar/index.js +0 -39
  184. package/dist/ikoncomponents/big-calendar/index.d.ts +0 -4
  185. package/dist/ikoncomponents/big-calendar/index.d.ts.map +0 -1
  186. package/dist/ikoncomponents/big-calendar/index.js +0 -35
  187. package/dist/ikoncomponents/big-calendar/type.d.ts +0 -32
  188. package/dist/ikoncomponents/big-calendar/type.d.ts.map +0 -1
  189. package/dist/ikoncomponents/big-calendar/type.js +0 -1
  190. package/dist/ikoncomponents/buttons/index.d.ts +0 -19
  191. package/dist/ikoncomponents/buttons/index.d.ts.map +0 -1
  192. package/dist/ikoncomponents/buttons/index.js +0 -38
  193. package/dist/ikoncomponents/combobox-input/index.d.ts +0 -3
  194. package/dist/ikoncomponents/combobox-input/index.d.ts.map +0 -1
  195. package/dist/ikoncomponents/combobox-input/index.js +0 -18
  196. package/dist/ikoncomponents/combobox-input/type.d.ts +0 -14
  197. package/dist/ikoncomponents/combobox-input/type.d.ts.map +0 -1
  198. package/dist/ikoncomponents/combobox-input/type.js +0 -1
  199. package/dist/ikoncomponents/custom-combo-dropdown/index.d.ts +0 -22
  200. package/dist/ikoncomponents/custom-combo-dropdown/index.d.ts.map +0 -1
  201. package/dist/ikoncomponents/custom-combo-dropdown/index.js +0 -85
  202. package/dist/ikoncomponents/data-table/datatable-column-filter/index.d.ts +0 -3
  203. package/dist/ikoncomponents/data-table/datatable-column-filter/index.d.ts.map +0 -1
  204. package/dist/ikoncomponents/data-table/datatable-column-filter/index.js +0 -22
  205. package/dist/ikoncomponents/data-table/datatable-faceted-filter/index.d.ts +0 -3
  206. package/dist/ikoncomponents/data-table/datatable-faceted-filter/index.d.ts.map +0 -1
  207. package/dist/ikoncomponents/data-table/datatable-faceted-filter/index.js +0 -35
  208. package/dist/ikoncomponents/data-table/datatable-filter-menu/index.d.ts +0 -3
  209. package/dist/ikoncomponents/data-table/datatable-filter-menu/index.d.ts.map +0 -1
  210. package/dist/ikoncomponents/data-table/datatable-filter-menu/index.js +0 -38
  211. package/dist/ikoncomponents/data-table/datatable-pagination/index.d.ts +0 -3
  212. package/dist/ikoncomponents/data-table/datatable-pagination/index.d.ts.map +0 -1
  213. package/dist/ikoncomponents/data-table/datatable-pagination/index.js +0 -13
  214. package/dist/ikoncomponents/data-table/datatable-toolbar/index.d.ts +0 -3
  215. package/dist/ikoncomponents/data-table/datatable-toolbar/index.d.ts.map +0 -1
  216. package/dist/ikoncomponents/data-table/datatable-toolbar/index.js +0 -18
  217. package/dist/ikoncomponents/data-table/function.d.ts +0 -2
  218. package/dist/ikoncomponents/data-table/function.d.ts.map +0 -1
  219. package/dist/ikoncomponents/data-table/function.js +0 -6
  220. package/dist/ikoncomponents/data-table/index.d.ts +0 -3
  221. package/dist/ikoncomponents/data-table/index.d.ts.map +0 -1
  222. package/dist/ikoncomponents/data-table/index.js +0 -223
  223. package/dist/ikoncomponents/data-table/type.d.ts +0 -61
  224. package/dist/ikoncomponents/data-table/type.d.ts.map +0 -1
  225. package/dist/ikoncomponents/data-table/type.js +0 -1
  226. package/dist/ikoncomponents/e-chart/index.d.ts +0 -16
  227. package/dist/ikoncomponents/e-chart/index.d.ts.map +0 -1
  228. package/dist/ikoncomponents/e-chart/index.js +0 -115
  229. package/dist/ikoncomponents/file-input/index.d.ts +0 -2
  230. package/dist/ikoncomponents/file-input/index.d.ts.map +0 -1
  231. package/dist/ikoncomponents/file-input/index.js +0 -21
  232. package/dist/ikoncomponents/fileUpload/index.d.ts +0 -16
  233. package/dist/ikoncomponents/fileUpload/index.d.ts.map +0 -1
  234. package/dist/ikoncomponents/fileUpload/index.js +0 -69
  235. package/dist/ikoncomponents/form-fields/combobox-input/index.d.ts +0 -3
  236. package/dist/ikoncomponents/form-fields/combobox-input/index.d.ts.map +0 -1
  237. package/dist/ikoncomponents/form-fields/combobox-input/index.js +0 -21
  238. package/dist/ikoncomponents/form-fields/combobox-input-value/index.d.ts +0 -19
  239. package/dist/ikoncomponents/form-fields/combobox-input-value/index.d.ts.map +0 -1
  240. package/dist/ikoncomponents/form-fields/combobox-input-value/index.js +0 -26
  241. package/dist/ikoncomponents/form-fields/date-input/index.d.ts +0 -3
  242. package/dist/ikoncomponents/form-fields/date-input/index.d.ts.map +0 -1
  243. package/dist/ikoncomponents/form-fields/date-input/index.js +0 -15
  244. package/dist/ikoncomponents/form-fields/file-input/index.d.ts +0 -2
  245. package/dist/ikoncomponents/form-fields/file-input/index.d.ts.map +0 -1
  246. package/dist/ikoncomponents/form-fields/file-input/index.js +0 -4
  247. package/dist/ikoncomponents/form-fields/input/index.d.ts +0 -3
  248. package/dist/ikoncomponents/form-fields/input/index.d.ts.map +0 -1
  249. package/dist/ikoncomponents/form-fields/input/index.js +0 -18
  250. package/dist/ikoncomponents/form-fields/multi-combobox-input/index.d.ts +0 -7
  251. package/dist/ikoncomponents/form-fields/multi-combobox-input/index.d.ts.map +0 -1
  252. package/dist/ikoncomponents/form-fields/otp-input/index.d.ts +0 -3
  253. package/dist/ikoncomponents/form-fields/otp-input/index.d.ts.map +0 -1
  254. package/dist/ikoncomponents/form-fields/otp-input/index.js +0 -18
  255. package/dist/ikoncomponents/form-fields/password-input/index.d.ts +0 -3
  256. package/dist/ikoncomponents/form-fields/password-input/index.d.ts.map +0 -1
  257. package/dist/ikoncomponents/form-fields/password-input/index.js +0 -23
  258. package/dist/ikoncomponents/form-fields/phone-input/index.d.ts +0 -2
  259. package/dist/ikoncomponents/form-fields/phone-input/index.d.ts.map +0 -1
  260. package/dist/ikoncomponents/form-fields/phone-input/index.js +0 -4
  261. package/dist/ikoncomponents/form-fields/textarea/index.d.ts +0 -3
  262. package/dist/ikoncomponents/form-fields/textarea/index.d.ts.map +0 -1
  263. package/dist/ikoncomponents/form-fields/textarea/index.js +0 -18
  264. package/dist/ikoncomponents/form-fields/types/index.d.ts +0 -37
  265. package/dist/ikoncomponents/form-fields/types/index.d.ts.map +0 -1
  266. package/dist/ikoncomponents/form-fields/types/index.js +0 -1
  267. package/dist/ikoncomponents/glowing-effect/index.d.ts +0 -15
  268. package/dist/ikoncomponents/glowing-effect/index.d.ts.map +0 -1
  269. package/dist/ikoncomponents/glowing-effect/index.js +0 -84
  270. package/dist/ikoncomponents/icon/index.d.ts +0 -9
  271. package/dist/ikoncomponents/icon/index.d.ts.map +0 -1
  272. package/dist/ikoncomponents/icon/index.js +0 -23
  273. package/dist/ikoncomponents/image-cropper-upload/components/newCropper.d.ts +0 -16
  274. package/dist/ikoncomponents/image-cropper-upload/components/newCropper.d.ts.map +0 -1
  275. package/dist/ikoncomponents/image-cropper-upload/components/newImageUploadForm.d.ts +0 -8
  276. package/dist/ikoncomponents/image-cropper-upload/components/newImageUploadForm.d.ts.map +0 -1
  277. package/dist/ikoncomponents/image-cropper-upload/components/newImageUploadForm.js +0 -145
  278. package/dist/ikoncomponents/image-cropper-upload/cropper-form/index.d.ts +0 -7
  279. package/dist/ikoncomponents/image-cropper-upload/cropper-form/index.d.ts.map +0 -1
  280. package/dist/ikoncomponents/image-cropper-upload/cropper-form/index.js +0 -92
  281. package/dist/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.d.ts +0 -7
  282. package/dist/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.d.ts.map +0 -1
  283. package/dist/ikoncomponents/image-cropper-upload/cropper-form-with-modal/index.js +0 -14
  284. package/dist/ikoncomponents/image-cropper-upload/image-cropper/index.d.ts +0 -15
  285. package/dist/ikoncomponents/image-cropper-upload/image-cropper/index.d.ts.map +0 -1
  286. package/dist/ikoncomponents/image-cropper-upload/index.d.ts +0 -28
  287. package/dist/ikoncomponents/image-cropper-upload/index.d.ts.map +0 -1
  288. package/dist/ikoncomponents/image-cropper-upload/index.js +0 -49
  289. package/dist/ikoncomponents/image-cropper-upload/utils/index.d.ts +0 -17
  290. package/dist/ikoncomponents/image-cropper-upload/utils/index.d.ts.map +0 -1
  291. package/dist/ikoncomponents/image-cropper-upload/utils/index.js +0 -73
  292. package/dist/ikoncomponents/loading-spinner/index.d.ts +0 -10
  293. package/dist/ikoncomponents/loading-spinner/index.d.ts.map +0 -1
  294. package/dist/ikoncomponents/loading-spinner/index.js +0 -19
  295. package/dist/ikoncomponents/main-layout/RefreshContext.d.ts +0 -11
  296. package/dist/ikoncomponents/main-layout/RefreshContext.d.ts.map +0 -1
  297. package/dist/ikoncomponents/main-layout/RefreshContext.js +0 -17
  298. package/dist/ikoncomponents/main-layout/SidebarNavContext.d.ts +0 -34
  299. package/dist/ikoncomponents/main-layout/SidebarNavContext.d.ts.map +0 -1
  300. package/dist/ikoncomponents/main-layout/SidebarNavContext.js +0 -52
  301. package/dist/ikoncomponents/main-layout/app-sidebar.d.ts +0 -4
  302. package/dist/ikoncomponents/main-layout/app-sidebar.d.ts.map +0 -1
  303. package/dist/ikoncomponents/main-layout/app-sidebar.js +0 -24
  304. package/dist/ikoncomponents/main-layout/footer.d.ts +0 -2
  305. package/dist/ikoncomponents/main-layout/footer.d.ts.map +0 -1
  306. package/dist/ikoncomponents/main-layout/footer.js +0 -5
  307. package/dist/ikoncomponents/main-layout/header.d.ts +0 -4
  308. package/dist/ikoncomponents/main-layout/header.d.ts.map +0 -1
  309. package/dist/ikoncomponents/main-layout/header.js +0 -15
  310. package/dist/ikoncomponents/main-layout/index.d.ts +0 -7
  311. package/dist/ikoncomponents/main-layout/index.d.ts.map +0 -1
  312. package/dist/ikoncomponents/main-layout/index.js +0 -12
  313. package/dist/ikoncomponents/main-layout/main-sidebar.d.ts +0 -61
  314. package/dist/ikoncomponents/main-layout/main-sidebar.d.ts.map +0 -1
  315. package/dist/ikoncomponents/main-layout/main-sidebar.js +0 -119
  316. package/dist/ikoncomponents/main-layout/nav-main.d.ts +0 -12
  317. package/dist/ikoncomponents/main-layout/nav-main.d.ts.map +0 -1
  318. package/dist/ikoncomponents/main-layout/nav-main.js +0 -33
  319. package/dist/ikoncomponents/multi-combobox/index.d.ts +0 -14
  320. package/dist/ikoncomponents/multi-combobox/index.d.ts.map +0 -1
  321. package/dist/ikoncomponents/multi-combobox/index.js +0 -202
  322. package/dist/ikoncomponents/no-data/index.d.ts +0 -4
  323. package/dist/ikoncomponents/no-data/index.d.ts.map +0 -1
  324. package/dist/ikoncomponents/no-data/index.js +0 -5
  325. package/dist/ikoncomponents/page-wrapper/index.d.ts +0 -10
  326. package/dist/ikoncomponents/page-wrapper/index.d.ts.map +0 -1
  327. package/dist/ikoncomponents/page-wrapper/index.js +0 -7
  328. package/dist/ikoncomponents/password-strength-meter/index.d.ts +0 -4
  329. package/dist/ikoncomponents/password-strength-meter/index.d.ts.map +0 -1
  330. package/dist/ikoncomponents/password-strength-meter/index.js +0 -40
  331. package/dist/ikoncomponents/phone-input/index.d.ts +0 -2
  332. package/dist/ikoncomponents/phone-input/index.d.ts.map +0 -1
  333. package/dist/ikoncomponents/phone-input/index.js +0 -41
  334. package/dist/ikoncomponents/provider-wrapper/index.d.ts +0 -7
  335. package/dist/ikoncomponents/provider-wrapper/index.d.ts.map +0 -1
  336. package/dist/ikoncomponents/provider-wrapper/index.js +0 -10
  337. package/dist/ikoncomponents/search-input/index.d.ts +0 -2
  338. package/dist/ikoncomponents/search-input/index.d.ts.map +0 -1
  339. package/dist/ikoncomponents/search-input/index.js +0 -19
  340. package/dist/ikoncomponents/sheet/index.d.ts +0 -11
  341. package/dist/ikoncomponents/sheet/index.d.ts.map +0 -1
  342. package/dist/ikoncomponents/sheet/index.js +0 -6
  343. package/dist/ikoncomponents/simple-widget/index.d.ts +0 -15
  344. package/dist/ikoncomponents/simple-widget/index.d.ts.map +0 -1
  345. package/dist/ikoncomponents/simple-widget/index.js +0 -14
  346. package/dist/ikoncomponents/skeleton-loader/skeleton-table.d.ts +0 -6
  347. package/dist/ikoncomponents/skeleton-loader/skeleton-table.d.ts.map +0 -1
  348. package/dist/ikoncomponents/skeleton-loader/skeleton-table.js +0 -6
  349. package/dist/ikoncomponents/skeleton-loader/skeleton-widget.d.ts +0 -4
  350. package/dist/ikoncomponents/skeleton-loader/skeleton-widget.d.ts.map +0 -1
  351. package/dist/ikoncomponents/skeleton-loader/skeleton-widget.js +0 -5
  352. package/dist/ikoncomponents/tabs/index.d.ts +0 -3
  353. package/dist/ikoncomponents/tabs/index.d.ts.map +0 -1
  354. package/dist/ikoncomponents/tabs/index.js +0 -50
  355. package/dist/ikoncomponents/tabs/type.d.ts.map +0 -1
  356. package/dist/ikoncomponents/tabs/type.js +0 -2
  357. package/dist/ikoncomponents/theme-toggle-btn/index.d.ts +0 -2
  358. package/dist/ikoncomponents/theme-toggle-btn/index.d.ts.map +0 -1
  359. package/dist/ikoncomponents/title-progress/index.d.ts +0 -13
  360. package/dist/ikoncomponents/title-progress/index.d.ts.map +0 -1
  361. package/dist/ikoncomponents/title-progress/index.js +0 -10
  362. package/dist/ikoncomponents/tooltip/index.d.ts +0 -6
  363. package/dist/ikoncomponents/tooltip/index.d.ts.map +0 -1
  364. package/dist/ikoncomponents/tooltip/index.js +0 -5
  365. package/dist/ikoncomponents/twolevel-dropdown/convertToDropdownNodes.d.ts +0 -10
  366. package/dist/ikoncomponents/twolevel-dropdown/convertToDropdownNodes.d.ts.map +0 -1
  367. package/dist/ikoncomponents/twolevel-dropdown/convertToDropdownNodes.js +0 -24
  368. package/dist/ikoncomponents/twolevel-dropdown/index.d.ts +0 -32
  369. package/dist/ikoncomponents/twolevel-dropdown/index.d.ts.map +0 -1
  370. package/dist/ikoncomponents/twolevel-dropdown/index.js +0 -143
  371. package/dist/ikoncomponents/upload-tab/index.d.ts +0 -2
  372. package/dist/ikoncomponents/upload-tab/index.d.ts.map +0 -1
  373. package/dist/ikoncomponents/upload-tab/index.js +0 -92
  374. package/dist/ikoncomponents/widgets/index.d.ts +0 -3
  375. package/dist/ikoncomponents/widgets/index.d.ts.map +0 -1
  376. package/dist/ikoncomponents/widgets/index.js +0 -14
  377. package/dist/ikoncomponents/widgets/type.d.ts +0 -11
  378. package/dist/ikoncomponents/widgets/type.d.ts.map +0 -1
  379. package/dist/ikoncomponents/widgets/type.js +0 -2
  380. package/dist/ikoncomponents/work-in-progress/index.d.ts +0 -2
  381. package/dist/ikoncomponents/work-in-progress/index.d.ts.map +0 -1
  382. package/dist/ikoncomponents/work-in-progress/index.js +0 -4
  383. package/dist/index.d.ts.map +0 -1
  384. package/dist/shadcn/accordion.d.ts +0 -8
  385. package/dist/shadcn/accordion.d.ts.map +0 -1
  386. package/dist/shadcn/accordion.js +0 -33
  387. package/dist/shadcn/alert-dialog.d.ts +0 -21
  388. package/dist/shadcn/alert-dialog.d.ts.map +0 -1
  389. package/dist/shadcn/alert-dialog.js +0 -83
  390. package/dist/shadcn/alert.d.ts +0 -10
  391. package/dist/shadcn/alert.d.ts.map +0 -1
  392. package/dist/shadcn/alert.js +0 -38
  393. package/dist/shadcn/aspect-ratio.d.ts +0 -4
  394. package/dist/shadcn/aspect-ratio.d.ts.map +0 -1
  395. package/dist/shadcn/aspect-ratio.js +0 -19
  396. package/dist/shadcn/avatar.d.ts +0 -7
  397. package/dist/shadcn/avatar.d.ts.map +0 -1
  398. package/dist/shadcn/avatar.js +0 -28
  399. package/dist/shadcn/badge.d.ts +0 -10
  400. package/dist/shadcn/badge.d.ts.map +0 -1
  401. package/dist/shadcn/badge.js +0 -35
  402. package/dist/shadcn/breadcrumb.d.ts +0 -12
  403. package/dist/shadcn/breadcrumb.d.ts.map +0 -1
  404. package/dist/shadcn/breadcrumb.js +0 -45
  405. package/dist/shadcn/button.d.ts +0 -11
  406. package/dist/shadcn/button.d.ts.map +0 -1
  407. package/dist/shadcn/button.js +0 -47
  408. package/dist/shadcn/calendar.d.ts +0 -9
  409. package/dist/shadcn/calendar.d.ts.map +0 -1
  410. package/dist/shadcn/calendar.js +0 -61
  411. package/dist/shadcn/card.d.ts +0 -10
  412. package/dist/shadcn/card.d.ts.map +0 -1
  413. package/dist/shadcn/card.js +0 -42
  414. package/dist/shadcn/checkbox.d.ts +0 -5
  415. package/dist/shadcn/checkbox.d.ts.map +0 -1
  416. package/dist/shadcn/checkbox.js +0 -21
  417. package/dist/shadcn/collapsible.d.ts +0 -6
  418. package/dist/shadcn/collapsible.d.ts.map +0 -1
  419. package/dist/shadcn/collapsible.js +0 -27
  420. package/dist/shadcn/command.d.ts +0 -19
  421. package/dist/shadcn/command.d.ts.map +0 -1
  422. package/dist/shadcn/command.js +0 -54
  423. package/dist/shadcn/date-input.d.ts +0 -8
  424. package/dist/shadcn/date-input.d.ts.map +0 -1
  425. package/dist/shadcn/date-input.js +0 -179
  426. package/dist/shadcn/date-range-picker.d.ts +0 -25
  427. package/dist/shadcn/date-range-picker.d.ts.map +0 -1
  428. package/dist/shadcn/date-range-picker.js +0 -45
  429. package/dist/shadcn/dialog.d.ts +0 -16
  430. package/dist/shadcn/dialog.d.ts.map +0 -1
  431. package/dist/shadcn/dialog.js +0 -57
  432. package/dist/shadcn/drawer.d.ts +0 -14
  433. package/dist/shadcn/drawer.d.ts.map +0 -1
  434. package/dist/shadcn/drawer.js +0 -56
  435. package/dist/shadcn/dropdown-menu.d.ts +0 -26
  436. package/dist/shadcn/dropdown-menu.d.ts.map +0 -1
  437. package/dist/shadcn/dropdown-menu.js +0 -77
  438. package/dist/shadcn/form.d.ts +0 -25
  439. package/dist/shadcn/form.d.ts.map +0 -1
  440. package/dist/shadcn/form.js +0 -70
  441. package/dist/shadcn/hover-card.d.ts +0 -7
  442. package/dist/shadcn/hover-card.d.ts.map +0 -1
  443. package/dist/shadcn/hover-card.js +0 -28
  444. package/dist/shadcn/input-otp.d.ts +0 -35
  445. package/dist/shadcn/input-otp.d.ts.map +0 -1
  446. package/dist/shadcn/input-otp.js +0 -40
  447. package/dist/shadcn/input.d.ts +0 -4
  448. package/dist/shadcn/input.d.ts.map +0 -1
  449. package/dist/shadcn/input.js +0 -18
  450. package/dist/shadcn/label.d.ts +0 -5
  451. package/dist/shadcn/label.d.ts.map +0 -1
  452. package/dist/shadcn/label.js +0 -20
  453. package/dist/shadcn/navigation-menu.d.ts +0 -17
  454. package/dist/shadcn/navigation-menu.d.ts.map +0 -1
  455. package/dist/shadcn/navigation-menu.js +0 -74
  456. package/dist/shadcn/popover.d.ts +0 -8
  457. package/dist/shadcn/popover.d.ts.map +0 -1
  458. package/dist/shadcn/popover.js +0 -32
  459. package/dist/shadcn/progress.d.ts +0 -9
  460. package/dist/shadcn/progress.d.ts.map +0 -1
  461. package/dist/shadcn/progress.js +0 -23
  462. package/dist/shadcn/radio-group.d.ts +0 -6
  463. package/dist/shadcn/radio-group.d.ts.map +0 -1
  464. package/dist/shadcn/radio-group.js +0 -25
  465. package/dist/shadcn/scroll-area.d.ts +0 -6
  466. package/dist/shadcn/scroll-area.d.ts.map +0 -1
  467. package/dist/shadcn/scroll-area.js +0 -26
  468. package/dist/shadcn/select.d.ts +0 -16
  469. package/dist/shadcn/select.d.ts.map +0 -1
  470. package/dist/shadcn/select.js +0 -59
  471. package/dist/shadcn/separator.d.ts +0 -5
  472. package/dist/shadcn/separator.d.ts.map +0 -1
  473. package/dist/shadcn/separator.js +0 -20
  474. package/dist/shadcn/sheet.d.ts +0 -14
  475. package/dist/shadcn/sheet.d.ts.map +0 -1
  476. package/dist/shadcn/sheet.js +0 -61
  477. package/dist/shadcn/sidebar.d.ts +0 -70
  478. package/dist/shadcn/sidebar.d.ts.map +0 -1
  479. package/dist/shadcn/sidebar.js +0 -242
  480. package/dist/shadcn/skeleton.d.ts +0 -4
  481. package/dist/shadcn/skeleton.d.ts.map +0 -1
  482. package/dist/shadcn/skeleton.js +0 -18
  483. package/dist/shadcn/slider.d.ts +0 -5
  484. package/dist/shadcn/slider.d.ts.map +0 -1
  485. package/dist/shadcn/slider.js +0 -26
  486. package/dist/shadcn/sonner.d.ts +0 -4
  487. package/dist/shadcn/sonner.d.ts.map +0 -1
  488. package/dist/shadcn/sonner.js +0 -25
  489. package/dist/shadcn/switch.d.ts +0 -5
  490. package/dist/shadcn/switch.d.ts.map +0 -1
  491. package/dist/shadcn/switch.js +0 -20
  492. package/dist/shadcn/table.d.ts +0 -11
  493. package/dist/shadcn/table.d.ts.map +0 -1
  494. package/dist/shadcn/table.js +0 -47
  495. package/dist/shadcn/tabs.d.ts +0 -8
  496. package/dist/shadcn/tabs.d.ts.map +0 -1
  497. package/dist/shadcn/tabs.js +0 -32
  498. package/dist/shadcn/textarea.d.ts +0 -4
  499. package/dist/shadcn/textarea.d.ts.map +0 -1
  500. package/dist/shadcn/textarea.js +0 -18
  501. package/dist/shadcn/toggle-group.d.ts +0 -10
  502. package/dist/shadcn/toggle-group.d.ts.map +0 -1
  503. package/dist/shadcn/toggle-group.js +0 -35
  504. package/dist/shadcn/toggle.d.ts +0 -10
  505. package/dist/shadcn/toggle.d.ts.map +0 -1
  506. package/dist/shadcn/toggle.js +0 -38
  507. package/dist/shadcn/tooltip.d.ts +0 -8
  508. package/dist/shadcn/tooltip.d.ts.map +0 -1
  509. package/dist/shadcn/tooltip.js +0 -32
  510. package/dist/shadcn/workflow.d.ts +0 -21
  511. package/dist/shadcn/workflow.d.ts.map +0 -1
  512. package/dist/shadcn/workflow.js +0 -20
  513. package/dist/styles.css +0 -1302
  514. package/dist/utils/actions/account/index.d.ts +0 -6
  515. package/dist/utils/actions/account/index.d.ts.map +0 -1
  516. package/dist/utils/actions/account/index.js +0 -28
  517. package/dist/utils/actions/account/type.d.ts +0 -5
  518. package/dist/utils/actions/account/type.d.ts.map +0 -1
  519. package/dist/utils/actions/account/type.js +0 -1
  520. package/dist/utils/actions/auth/index.d.ts +0 -8
  521. package/dist/utils/actions/auth/index.d.ts.map +0 -1
  522. package/dist/utils/actions/common/revalidate.d.ts +0 -3
  523. package/dist/utils/actions/common/revalidate.d.ts.map +0 -1
  524. package/dist/utils/actions/common/revalidate.js +0 -14
  525. package/dist/utils/actions/common/type.d.ts +0 -5
  526. package/dist/utils/actions/common/type.d.ts.map +0 -1
  527. package/dist/utils/actions/common/type.js +0 -1
  528. package/dist/utils/actions/common/utils.d.ts +0 -6
  529. package/dist/utils/actions/common/utils.d.ts.map +0 -1
  530. package/dist/utils/actions/software/index.d.ts +0 -12
  531. package/dist/utils/actions/software/index.d.ts.map +0 -1
  532. package/dist/utils/actions/software/index.js +0 -75
  533. package/dist/utils/api/accountService/index.d.ts +0 -24
  534. package/dist/utils/api/accountService/index.d.ts.map +0 -1
  535. package/dist/utils/api/accountService/index.js +0 -64
  536. package/dist/utils/api/accountService/type.d.ts +0 -5
  537. package/dist/utils/api/accountService/type.d.ts.map +0 -1
  538. package/dist/utils/api/accountService/type.js +0 -1
  539. package/dist/utils/api/file-upload/index.d.ts +0 -6
  540. package/dist/utils/api/file-upload/index.d.ts.map +0 -1
  541. package/dist/utils/api/file-upload/index.js +0 -80
  542. package/dist/utils/api/file-upload/type.d.ts +0 -7
  543. package/dist/utils/api/file-upload/type.d.ts.map +0 -1
  544. package/dist/utils/api/file-upload/type.js +0 -1
  545. package/dist/utils/api/ikonBaseApi.d.ts +0 -13
  546. package/dist/utils/api/ikonBaseApi.d.ts.map +0 -1
  547. package/dist/utils/api/loginService/index.d.ts +0 -13
  548. package/dist/utils/api/loginService/index.d.ts.map +0 -1
  549. package/dist/utils/api/loginService/index.js +0 -72
  550. package/dist/utils/api/loginService/type.d.ts.map +0 -1
  551. package/dist/utils/api/loginService/type.js +0 -1
  552. package/dist/utils/api/softwareService/index.d.ts +0 -65
  553. package/dist/utils/api/softwareService/index.d.ts.map +0 -1
  554. package/dist/utils/api/softwareService/index.js +0 -212
  555. package/dist/utils/api/softwareService/type.d.ts +0 -55
  556. package/dist/utils/api/softwareService/type.d.ts.map +0 -1
  557. package/dist/utils/api/softwareService/type.js +0 -1
  558. package/dist/utils/border-radius-provider.d.ts +0 -12
  559. package/dist/utils/border-radius-provider.d.ts.map +0 -1
  560. package/dist/utils/cn.d.ts +0 -3
  561. package/dist/utils/cn.d.ts.map +0 -1
  562. package/dist/utils/cn.js +0 -5
  563. package/dist/utils/font-provider.d.ts +0 -12
  564. package/dist/utils/font-provider.d.ts.map +0 -1
  565. package/dist/utils/session/cookieSession.d.ts +0 -9
  566. package/dist/utils/session/cookieSession.d.ts.map +0 -1
  567. package/dist/utils/session/cookieSession.js +0 -33
  568. package/dist/utils/theme-provider/index.d.ts +0 -4
  569. package/dist/utils/theme-provider/index.d.ts.map +0 -1
  570. package/dist/utils/theme-provider/index.js +0 -18
  571. package/dist/utils/token-management/index.d.ts +0 -11
  572. package/dist/utils/token-management/index.d.ts.map +0 -1
  573. package/dist/utils/token-management/index.js +0 -69
  574. package/dist/utils/token-management/types.d.ts +0 -7
  575. package/dist/utils/token-management/types.d.ts.map +0 -1
  576. package/dist/utils/token-management/types.js +0 -1
@@ -0,0 +1,345 @@
1
+ // import React, { useEffect, useState } from 'react'
2
+ // import { Popover, PopoverContent, PopoverTrigger } from '@/shadcn/ui/popover'
3
+ // import { Button } from '@/shadcn/ui/button'
4
+ // import { cn } from '@/shadcn/lib/utils'
5
+ // import { Check, ChevronsUpDown } from 'lucide-react'
6
+ // import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@/shadcn/ui/command'
7
+
8
+ // interface MultiComboboxProps {
9
+ // placeholder: string;
10
+ // items: { value: string; label?: string }[];
11
+ // onValueChange: (selectedItems: string[]) => void;
12
+ // defaultValue?: string[];
13
+ // }
14
+
15
+ // export default function MultiCombobox({ placeholder, items, onValueChange, defaultValue }: MultiComboboxProps) {
16
+ // const [selectedItems, setSelectedItems] = useState<string[]>(defaultValue ? defaultValue : []);
17
+ // useEffect(() => {
18
+ // onValueChange(selectedItems)
19
+ // }, [selectedItems])
20
+ // return (
21
+ // <>
22
+ // <Popover>
23
+ // <PopoverTrigger asChild>
24
+ // <Button
25
+ // variant="outline"
26
+ // role="combobox"
27
+ // className={cn(
28
+ // "justify-between",
29
+ // selectedItems.length == 0 && "text-muted-foreground"
30
+ // )}
31
+ // >
32
+ // {selectedItems && selectedItems.length > 0 ? (
33
+ // <div className='flex gap-2 items-center'>
34
+ // {
35
+ // selectedItems.map((value: string) => (
36
+ // <span
37
+ // key={value}
38
+ // className="px-2 py-1 bg-secondary text-secondary-foreground rounded-md"
39
+ // >
40
+ // {
41
+ // (items.find(
42
+ // (item) => item.value === value
43
+ // )?.label || value)
44
+ // }
45
+ // </span>
46
+ // ))
47
+ // }
48
+ // </div>
49
+ // ) : placeholder}
50
+ // <ChevronsUpDown className="opacity-50" />
51
+ // </Button>
52
+ // </PopoverTrigger>
53
+ // <PopoverContent className="p-0" align='start'>
54
+ // <Command>
55
+ // <CommandInput
56
+ // placeholder="Search..."
57
+ // />
58
+ // <CommandList>
59
+ // <CommandEmpty>No items found.</CommandEmpty>
60
+ // <CommandGroup>
61
+ // {
62
+ // items.map((item) => {
63
+ // const isSelected = selectedItems.includes(item.value);
64
+ // return (
65
+ // <CommandItem
66
+ // value={item.value}
67
+ // key={item.value}
68
+ // onSelect={(value) => {
69
+ // let updatedItems;
70
+ // if (selectedItems.includes(value)) {
71
+ // updatedItems = selectedItems.filter((val) => val !== value);
72
+ // } else {
73
+ // updatedItems = [...selectedItems, value];
74
+ // }
75
+ // setSelectedItems(updatedItems);
76
+ // }}
77
+ // >
78
+ // {item?.label || item.value}
79
+ // <Check
80
+ // className={cn(
81
+ // "ml-auto",
82
+ // isSelected
83
+ // ? "opacity-100"
84
+ // : "opacity-0"
85
+ // )}
86
+ // />
87
+ // </CommandItem>
88
+ // )
89
+ // })
90
+ // }
91
+ // </CommandGroup>
92
+ // </CommandList>
93
+ // </Command>
94
+ // </PopoverContent>
95
+ // </Popover>
96
+ // </>
97
+ // )
98
+ // }
99
+
100
+
101
+
102
+ import React, { useEffect, useState, useRef, useCallback } from 'react';
103
+ import { Popover, PopoverContent, PopoverTrigger } from '../../ikonShade/popover';
104
+ import { Button } from '../../ikonShade/button';
105
+ import { cn } from '../../utils/cn';
106
+ import { ChevronsUpDown, X } from 'lucide-react';
107
+ import {
108
+ Command,
109
+ CommandEmpty,
110
+ CommandGroup,
111
+ CommandInput,
112
+ CommandItem,
113
+ CommandList
114
+ } from '../../ikonShade/command';
115
+ import {
116
+ Tooltip,
117
+ TooltipContent,
118
+ TooltipProvider,
119
+ TooltipTrigger
120
+ } from '../../ikonShade/tooltip';
121
+ import { Checkbox } from '../../ikonShade/checkbox';
122
+
123
+ interface MultiComboboxProps {
124
+ placeholder: string;
125
+ items: { value: string; label?: string; disabled?: boolean | ((item: any) => boolean) }[];
126
+ onValueChange: (selectedItems: string[]) => void;
127
+ defaultValue?: string[];
128
+ defaultOptions?: number;
129
+ }
130
+
131
+ export function MultiCombobox({
132
+ placeholder,
133
+ items,
134
+ onValueChange,
135
+ defaultValue,
136
+ defaultOptions = 2
137
+ }: MultiComboboxProps) {
138
+ const [selectedItems, setSelectedItems] = useState<string[]>(defaultValue || []);
139
+ const [search, setSearch] = useState("");
140
+ const containerRef = useRef<HTMLDivElement>(null);
141
+ const [open, setOpen] = useState(false);
142
+
143
+ useEffect(() => {
144
+ onValueChange(selectedItems);
145
+ }, [selectedItems, onValueChange]);
146
+
147
+ const filteredItems = items
148
+ .filter((item) =>
149
+ (item.label || item.value).toLowerCase().includes(search.toLowerCase())
150
+ )
151
+ .sort((a, b) => (a?.label ?? "").localeCompare(b?.label ?? ""));
152
+
153
+ const onWheel = (e: React.WheelEvent<HTMLDivElement>) => {
154
+ const el = e.currentTarget;
155
+ el.scrollTop += e.deltaY;
156
+ e.preventDefault();
157
+ };
158
+
159
+ const toggleItem = (value: string) => {
160
+ const updatedItems = selectedItems.includes(value)
161
+ ? selectedItems.filter((val) => val !== value)
162
+ : [...selectedItems, value];
163
+ setSelectedItems(updatedItems);
164
+ };
165
+
166
+ const [visibleCount, setVisibleCount] = useState(selectedItems.length);
167
+
168
+ const calculateVisibleItems = useCallback(() => {
169
+ const container = containerRef.current;
170
+ if (!container) return visibleCount;
171
+
172
+ const children = Array.from(container.children) as HTMLElement[];
173
+
174
+ let availableWidth = container.offsetWidth;
175
+ let usedWidth = 0;
176
+ let fitCount = 0;
177
+
178
+ for (const child of children) {
179
+ const childWidth = child.offsetWidth + 4; // Account for gap
180
+ if (usedWidth + childWidth <= availableWidth) {
181
+ usedWidth += childWidth;
182
+ fitCount++;
183
+ } else {
184
+ break;
185
+ }
186
+ }
187
+ return fitCount;
188
+ }, [visibleCount]);
189
+
190
+ useEffect(() => {
191
+ const container = containerRef.current;
192
+ if (!container) return;
193
+
194
+ let animationFrameId: number | null = null;
195
+
196
+ const resizeObserver = new ResizeObserver(() => {
197
+ if (animationFrameId) cancelAnimationFrame(animationFrameId);
198
+ animationFrameId = requestAnimationFrame(() => {
199
+ const newVisibleCount = calculateVisibleItems();
200
+ setVisibleCount((prevVisibleCount) =>
201
+ prevVisibleCount !== newVisibleCount ? newVisibleCount : prevVisibleCount
202
+ );
203
+ });
204
+ });
205
+
206
+ resizeObserver.observe(container);
207
+ setVisibleCount(calculateVisibleItems());
208
+
209
+ return () => {
210
+ if (animationFrameId) cancelAnimationFrame(animationFrameId);
211
+ resizeObserver.disconnect();
212
+ };
213
+ }, [calculateVisibleItems]);
214
+
215
+ return (
216
+ <Popover open={open} onOpenChange={setOpen}>
217
+ <PopoverTrigger asChild className="w-full">
218
+ <Button
219
+ variant="outline"
220
+ role="combobox"
221
+ className={cn("justify-between px-3 py-2 h-10", selectedItems.length === 0 && "text-foreground/50", "bg-secondary")}
222
+ onClick={() => setOpen((prev) => !prev)}
223
+ >
224
+ {selectedItems.length > 0 ? (
225
+ <TooltipProvider>
226
+ <div ref={containerRef} className="flex flex-wrap gap-2 items-center overflow-hidden flex-1">
227
+ {selectedItems.slice(0, defaultOptions).map((value) => {
228
+ const label = items.find((item) => item.value === value)?.label || value;
229
+ return (
230
+ <span
231
+ key={value}
232
+ className="flex items-center px-2 py-1 bg-secondary text-secondary-foreground rounded-md truncate max-w-full"
233
+ title={label}
234
+ >
235
+ <span className="truncate max-w-[120px]">{label}</span>
236
+ <span
237
+ role="button"
238
+ tabIndex={0}
239
+ onClick={(e) => {
240
+ e.stopPropagation();
241
+ toggleItem(value);
242
+ }}
243
+ onKeyDown={(e) => {
244
+ if (e.key === 'Enter' || e.key === ' ') {
245
+ e.preventDefault();
246
+ e.stopPropagation();
247
+ toggleItem(value);
248
+ }
249
+ }}
250
+ className="ml-1 text-muted-foreground hover:text-destructive cursor-pointer outline-none"
251
+ >
252
+ <X className="w-3 h-3 ml-1" />
253
+ </span>
254
+ </span>
255
+ );
256
+ })}
257
+ {selectedItems.length > defaultOptions && (
258
+ <Tooltip>
259
+ <TooltipTrigger asChild>
260
+ <span className="px-2 py-1 bg-secondary text-secondary-foreground dark:bg-secondary dark:text-secondary-foreground keross:bg-secondary keross:text-secondary-foreground rounded-md cursor-pointer">
261
+ +{selectedItems.length - defaultOptions} more
262
+ </span>
263
+ </TooltipTrigger>
264
+ <TooltipContent className="max-w-xs break-words">
265
+ <div
266
+ onWheel={onWheel}
267
+ className="flex flex-col gap-1 max-h-[200px] overflow-auto"
268
+ >
269
+ {selectedItems.slice(defaultOptions).map((value) => (
270
+ <span key={value} className="text-sm">
271
+ {items.find((item) => item.value === value)?.label || value}
272
+ </span>
273
+ ))}
274
+ </div>
275
+ </TooltipContent>
276
+ </Tooltip>
277
+ )}
278
+ </div>
279
+ </TooltipProvider>
280
+ ) : (
281
+ <span className="flex-1 text-left truncate">{placeholder}</span>
282
+ )}
283
+ <ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
284
+ </Button>
285
+ </PopoverTrigger>
286
+ <PopoverContent
287
+ className="p-0 min-w-[var(--radix-popover-trigger-width)]"
288
+ style={{ width: 'max-content', maxWidth: 'min(500px, 90vw)' }}
289
+ align="start"
290
+ >
291
+ <Command onMouseDown={(e) => e.preventDefault()}>
292
+ <CommandInput
293
+ placeholder="Search..."
294
+ value={search}
295
+ onValueChange={setSearch}
296
+ />
297
+ <CommandList onWheel={onWheel} className="max-h-60 overflow-auto">
298
+ <CommandEmpty>No items found.</CommandEmpty>
299
+ <CommandGroup>
300
+ {filteredItems.map((item) => {
301
+ const isSelected = selectedItems.includes(item.value);
302
+ const isDisabled = item.disabled === true || (typeof item.disabled === "function" && item.disabled(item));
303
+ return (
304
+ <CommandItem
305
+ key={item.value}
306
+ value={item.label || item.value}
307
+ disabled={isDisabled}
308
+ onPointerDown={(e) => {
309
+ e.preventDefault();
310
+ e.stopPropagation();
311
+ }}
312
+ onSelect={() => {
313
+ if (!isDisabled) {
314
+ toggleItem(item.value);
315
+ }
316
+ }}
317
+ className={cn(
318
+ "flex items-center justify-between space-x-2",
319
+ isDisabled && "opacity-50 cursor-not-allowed"
320
+ )}
321
+ >
322
+ <Checkbox
323
+ checked={isSelected}
324
+ onCheckedChange={() => {
325
+ if (!isDisabled) {
326
+ toggleItem(item.value);
327
+ }
328
+ }}
329
+ onClick={(e) => e.stopPropagation()}
330
+ disabled={isDisabled}
331
+ />
332
+ <span className="flex-grow text-left">
333
+ {item?.label || item.value}
334
+ </span>
335
+ </CommandItem>
336
+ );
337
+ })}
338
+ </CommandGroup>
339
+ </CommandList>
340
+ </Command>
341
+ </PopoverContent>
342
+ </Popover>
343
+ );
344
+ }
345
+
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { CircleAlert } from "lucide-react";
3
+
4
+ export function NoDataComponent({ text }: { text?: string }) {
5
+ return (
6
+ <div className="flex flex-col h-full justify-center text-center gap-2">
7
+ <CircleAlert className="text-muted-foreground mx-auto" size={36} />
8
+ <p className="text-muted-foreground">{text ? text : "No Data Available"}</p>
9
+ </div>
10
+ );
11
+ }
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+
3
+ import React, { ReactNode } from "react";
4
+
5
+ interface Props {
6
+ title?: string | ReactNode;
7
+ subtitle?: string | ReactNode;
8
+ tools?: ReactNode;
9
+ children: ReactNode;
10
+ }
11
+
12
+ export function PageWrapper({ title, subtitle, tools, children }: Props) {
13
+ title = title ?? '';
14
+ subtitle = subtitle ?? '';
15
+
16
+ return (
17
+ <div className={"flex flex-col gap-4 h-full"}>
18
+ <div className={"flex items-center justify-between gap-4"}>
19
+ <div className={'grid grid-cols-1 gap-1'}>
20
+ {title && <h1 className={'text-2xl font-semibold'}>{title}</h1>}
21
+ {subtitle && <p className={'text-muted-foreground/60'}>{subtitle}</p>}
22
+ </div>
23
+ <div>
24
+ {tools}
25
+ </div>
26
+ </div>
27
+ {children}
28
+ </div>
29
+ );
30
+ }
@@ -0,0 +1,49 @@
1
+ import { Progress } from "../../ikonShade/progress";
2
+ import React, { useState } from "react";
3
+ import zxcvbn from "zxcvbn";
4
+
5
+ export const PasswordStrengthMeter = ({ value }: { value: string }) => {
6
+ const testResult = zxcvbn(value);
7
+ const num = (testResult.score * 100) / 4;
8
+
9
+ const createPassLabel = () => {
10
+ switch (testResult.score) {
11
+ case 0:
12
+ return "Very weak";
13
+ case 1:
14
+ return "Weak";
15
+ case 2:
16
+ return "Fair";
17
+ case 3:
18
+ return "Good";
19
+ case 4:
20
+ return "Strong";
21
+ default:
22
+ return "";
23
+ }
24
+ };
25
+
26
+ const funcProgressColor = () => {
27
+ switch (testResult.score) {
28
+ case 0:
29
+ return "#828282";
30
+ case 1:
31
+ return "#EA1111";
32
+ case 2:
33
+ return "#FFAD00";
34
+ case 3:
35
+ return "#9bc158";
36
+ case 4:
37
+ return "#00b500";
38
+ default:
39
+ return "";
40
+ }
41
+ };
42
+
43
+
44
+ return (
45
+ <>
46
+ <Progress value={num} indicatorColor={funcProgressColor()} />
47
+ </>
48
+ );
49
+ };
@@ -0,0 +1,72 @@
1
+ import * as React from "react";
2
+ import { Button } from '../../ikonShade/button'
3
+ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../../ikonShade/command'
4
+ import { Popover, PopoverContent, PopoverTrigger } from '../../ikonShade/popover'
5
+ import { Check, ChevronsUpDown } from 'lucide-react'
6
+ import { useState } from 'react'
7
+ import { countries } from 'countries-list'
8
+ import * as Flags from "country-flag-icons/react/3x2";
9
+
10
+ const Flag = ({ code }: { code: string }) => {
11
+ const FlagComponent = Flags[code as keyof typeof Flags];
12
+ return <FlagComponent />;
13
+ };
14
+
15
+ export function PhoneInput({ className, ...props }: any) {
16
+ const [open, setOpen] = useState(false)
17
+ const [value, setValue] = useState<string>("")
18
+ const [countryCode, setCountryCode] = useState<string>("")
19
+
20
+ return (
21
+ <Popover open={open} onOpenChange={setOpen}>
22
+ <PopoverTrigger asChild>
23
+ <Button
24
+ variant="outline"
25
+ role="combobox"
26
+ aria-expanded={open}
27
+ className="justify-between bg-secondary"
28
+ >
29
+ {countryCode
30
+ ? <Flag code={countryCode} />
31
+ : "..."}
32
+ <ChevronsUpDown className="opacity-50" />
33
+ </Button>
34
+ </PopoverTrigger>
35
+ <PopoverContent className="p-0" align='start'>
36
+ <Command
37
+ filter={(value, search, keywords = []) => {
38
+ const extendValue = value.toLowerCase() + ' ' + keywords.join(' ').toLowerCase()
39
+ if (extendValue.includes(search.toLowerCase())) return 1
40
+ return 0
41
+ }}
42
+
43
+ >
44
+ <CommandInput placeholder="Search ..." className="h-9" />
45
+ <CommandList>
46
+ <CommandEmpty>No country found.</CommandEmpty>
47
+ <CommandGroup>
48
+ {Object.entries(countries).map(([code, country]) => (
49
+ country.phone.map((phone) =>
50
+ <CommandItem
51
+ key={phone}
52
+ value={`${phone}`}
53
+ keywords={[country.name, "+" + phone.toString(), code]}
54
+ onSelect={(currentValue) => {
55
+ setValue(currentValue === value ? "" : currentValue)
56
+ setCountryCode(code)
57
+ setOpen(false)
58
+ }}
59
+ //className={(value == phone.toString()) ? "bg-accent" : ""}
60
+ >
61
+ <Flag code={code} /> {country.name} +{phone}
62
+
63
+ </CommandItem>
64
+ )
65
+ ))}
66
+ </CommandGroup>
67
+ </CommandList>
68
+ </Command>
69
+ </PopoverContent>
70
+ </Popover>
71
+ )
72
+ }
@@ -0,0 +1,32 @@
1
+ "use client";
2
+
3
+ import React from "react";
4
+ import { ThemeProvider } from "../../utils/theme-provider";
5
+ import { FontProvider } from "../../utils/font-provider";
6
+ import { RadiusProvider } from "../../utils/border-radius-provider";
7
+ import { BreadcrumbProvider } from "../app-breadcrumb/BreadcrumbProvider";
8
+ import { MainLayout } from "../main-layout";
9
+
10
+ export function ProviderWrapper({
11
+ children,
12
+ baseUrl,
13
+ platformUrl
14
+ }: {
15
+ children: React.ReactNode;
16
+ baseUrl: string;
17
+ platformUrl: string;
18
+ }) {
19
+ return (
20
+ <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
21
+ <FontProvider>
22
+ <RadiusProvider>
23
+ <BreadcrumbProvider>
24
+ <MainLayout baseUrl={baseUrl} platformUrl={platformUrl}>
25
+ {children}
26
+ </MainLayout>
27
+ </BreadcrumbProvider>
28
+ </RadiusProvider>
29
+ </FontProvider>
30
+ </ThemeProvider>
31
+ );
32
+ }
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { Input } from '../../ikonShade/input'
3
+ import { cx } from 'class-variance-authority'
4
+ import { Search } from 'lucide-react'
5
+
6
+ export function SearchInput({ className, ...props }: any) {
7
+ return (
8
+ <div className="relative w-auto flex items-center">
9
+ <Search className="absolute left-2 mr-2 h-4 w-4 shrink-0 opacity-50" />
10
+ <Input
11
+ className={cx(
12
+ 'pl-8 h-8',
13
+ className
14
+ )}
15
+ {...props} />
16
+ </div>
17
+ )
18
+ }
@@ -0,0 +1,34 @@
1
+ import * as React from "react"
2
+ import { Button } from "../../ikonShade/button"
3
+ import { Sheet, SheetContent, SheetTitle, SheetTrigger } from "../../ikonShade/sheet"
4
+
5
+ export function SheetComponent({
6
+ buttonText,
7
+ buttonIcon,
8
+ buttonStyle,
9
+ sheetContent,
10
+ sheetDescription,
11
+ sheetTitle,
12
+ closeButton
13
+ }: {
14
+ buttonText?: React.ReactNode,
15
+ buttonIcon?: React.ReactNode,
16
+ buttonStyle?: string,
17
+ sheetTitle?: React.ReactNode,
18
+ sheetDescription?: React.ReactNode,
19
+ sheetContent?: React.ReactNode,
20
+ closeButton?: boolean
21
+
22
+ }) {
23
+ return (
24
+ <Sheet>
25
+ <SheetTrigger asChild>
26
+ <Button variant='outline' className={buttonStyle} size={"smIcon"}>{buttonText}{buttonIcon}</Button>
27
+ </SheetTrigger>
28
+ <SheetContent className="p-4" >
29
+ <SheetTitle>{sheetTitle}</SheetTitle>
30
+ {sheetContent}
31
+ </SheetContent>
32
+ </Sheet>
33
+ )
34
+ }
@@ -0,0 +1,54 @@
1
+ import { Card, CardContent } from "../../ikonShade/card";
2
+ import { icons, LoaderCircle, LucideIcon } from "lucide-react";
3
+ import React, { ReactNode } from "react";
4
+
5
+ interface Props {
6
+ title: string;
7
+ iconName?: string;
8
+ iconSize?: number;
9
+ iconClass?: string;
10
+ primaryText: number | string | ReactNode;
11
+ secondaryText?: string | ReactNode;
12
+ mainClassName?: string;
13
+ loading?: boolean;
14
+ loadingMessage?: string;
15
+ }
16
+
17
+ const LUCID_ICONS: Record<string, LucideIcon> = icons;
18
+
19
+ export function SimpleWidget({ title, iconName, iconSize, iconClass, primaryText, secondaryText, mainClassName = '', loading, loadingMessage }: Props) {
20
+ let IconComponent: LucideIcon | null = null;
21
+
22
+ if (iconName) {
23
+ IconComponent = LUCID_ICONS[iconName]
24
+ }
25
+
26
+ iconSize = iconSize === undefined ? 20 : iconSize;
27
+ iconClass = iconClass ?? '';
28
+ loadingMessage = loadingMessage ?? 'Loading...';
29
+
30
+ return (
31
+ <Card className={mainClassName}>
32
+ <CardContent className={'p-5'}>
33
+ <div className={'flex items-center justify-between gap-4'}>
34
+ <span>{title}</span>
35
+ {loading ? (
36
+ <LoaderCircle size={iconSize} className={'animate-spin ' + iconClass} />
37
+ ) : (
38
+ IconComponent && <IconComponent size={iconSize} className={iconClass} />
39
+ )}
40
+ </div>
41
+
42
+ <div className={'mt-6 text-2xl font-semibold'}>
43
+ {loading ? '...' : primaryText}
44
+ </div>
45
+
46
+ {secondaryText && (
47
+ <small className={'mt-2 text-gray-400'}>
48
+ {loading ? loadingMessage : secondaryText}
49
+ </small>
50
+ )}
51
+ </CardContent>
52
+ </Card>
53
+ );
54
+ }
@@ -0,0 +1,34 @@
1
+ "use client";
2
+
3
+ import { Skeleton } from "../../ikonShade/skeleton";
4
+
5
+ export interface GradeTableLoaderProps {
6
+ rowCount?: number;
7
+ showToolbar?: boolean;
8
+ }
9
+
10
+ export function GradeTableLoader({
11
+ rowCount = 6,
12
+ showToolbar = true,
13
+ }: GradeTableLoaderProps) {
14
+ return (
15
+ <div className="space-y-4">
16
+ {/* Top action bar */}
17
+ {showToolbar && (
18
+ <div className="flex justify-between">
19
+ <Skeleton className="h-8 w-64 rounded-md" />
20
+ <Skeleton className="h-8 w-32 rounded-md" />
21
+ </div>
22
+ )}
23
+
24
+ {/* Table body rows */}
25
+ <div className="space-y-4">
26
+ {[...Array(rowCount)].map((_, i) => (
27
+ <div key={i} className="grid gap-4 items-center">
28
+ <Skeleton className="h-8 w-full" />
29
+ </div>
30
+ ))}
31
+ </div>
32
+ </div>
33
+ );
34
+ }