@k3-universe/react-kit 0.0.27 → 0.0.29

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 (422) hide show
  1. package/.storybook/main.ts +1 -1
  2. package/.storybook/preview.ts +18 -10
  3. package/biome.json +10 -0
  4. package/dist/index.js +2319 -1227
  5. package/dist/kit/builder/auth/AuthProvider.d.ts +36 -0
  6. package/dist/kit/builder/auth/AuthProvider.d.ts.map +1 -0
  7. package/dist/kit/builder/auth/adapter.d.ts +14 -0
  8. package/dist/kit/builder/auth/adapter.d.ts.map +1 -0
  9. package/dist/kit/builder/auth/client-adapters.d.ts +149 -0
  10. package/dist/kit/builder/auth/client-adapters.d.ts.map +1 -0
  11. package/dist/kit/builder/auth/components.d.ts +119 -0
  12. package/dist/kit/builder/auth/components.d.ts.map +1 -0
  13. package/dist/kit/builder/auth/hooks.d.ts +158 -0
  14. package/dist/kit/builder/auth/hooks.d.ts.map +1 -0
  15. package/dist/kit/builder/auth/index.d.ts +11 -0
  16. package/dist/kit/builder/auth/index.d.ts.map +1 -0
  17. package/dist/kit/builder/auth/permission-checker.d.ts +31 -0
  18. package/dist/kit/builder/auth/permission-checker.d.ts.map +1 -0
  19. package/dist/kit/builder/auth/storage.d.ts +17 -0
  20. package/dist/kit/builder/auth/storage.d.ts.map +1 -0
  21. package/dist/kit/builder/auth/token-manager.d.ts +9 -0
  22. package/dist/kit/builder/auth/token-manager.d.ts.map +1 -0
  23. package/dist/kit/builder/auth/types.d.ts +183 -0
  24. package/dist/kit/builder/auth/types.d.ts.map +1 -0
  25. package/dist/kit/builder/data-table/components/DataTable.d.ts +2 -1
  26. package/dist/kit/builder/data-table/components/DataTable.d.ts.map +1 -1
  27. package/dist/kit/builder/data-table/components/DataTableColumnHeader.d.ts +2 -2
  28. package/dist/kit/builder/data-table/components/DataTableColumnHeader.d.ts.map +1 -1
  29. package/dist/kit/builder/data-table/components/DataTablePagination.d.ts +2 -1
  30. package/dist/kit/builder/data-table/components/DataTablePagination.d.ts.map +1 -1
  31. package/dist/kit/builder/data-table/components/DataTableViewOptions.d.ts +1 -1
  32. package/dist/kit/builder/data-table/components/DataTableViewOptions.d.ts.map +1 -1
  33. package/dist/kit/builder/data-table/types.d.ts.map +1 -1
  34. package/dist/kit/builder/dialog/index.d.ts +1 -1
  35. package/dist/kit/builder/dialog/index.d.ts.map +1 -1
  36. package/dist/kit/builder/dialog/provider.d.ts +0 -1
  37. package/dist/kit/builder/dialog/provider.d.ts.map +1 -1
  38. package/dist/kit/builder/form/components/FormBuilder.d.ts.map +1 -1
  39. package/dist/kit/builder/form/components/FormBuilderActions.d.ts.map +1 -1
  40. package/dist/kit/builder/form/components/FormBuilderContext.d.ts.map +1 -1
  41. package/dist/kit/builder/form/components/FormBuilderField.d.ts +1 -1
  42. package/dist/kit/builder/form/components/FormBuilderField.d.ts.map +1 -1
  43. package/dist/kit/builder/form/components/fields/ArrayField.d.ts +1 -1
  44. package/dist/kit/builder/form/components/fields/ArrayField.d.ts.map +1 -1
  45. package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts +1 -1
  46. package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts.map +1 -1
  47. package/dist/kit/builder/form/components/fields/CheckboxField.d.ts +1 -1
  48. package/dist/kit/builder/form/components/fields/CheckboxField.d.ts.map +1 -1
  49. package/dist/kit/builder/form/components/fields/DateField.d.ts +1 -1
  50. package/dist/kit/builder/form/components/fields/DateField.d.ts.map +1 -1
  51. package/dist/kit/builder/form/components/fields/DatePickerField.d.ts +1 -1
  52. package/dist/kit/builder/form/components/fields/DatePickerField.d.ts.map +1 -1
  53. package/dist/kit/builder/form/components/fields/DateRangePickerField.d.ts +1 -1
  54. package/dist/kit/builder/form/components/fields/DateRangePickerField.d.ts.map +1 -1
  55. package/dist/kit/builder/form/components/fields/DateTimePickerField.d.ts +1 -1
  56. package/dist/kit/builder/form/components/fields/DateTimePickerField.d.ts.map +1 -1
  57. package/dist/kit/builder/form/components/fields/DateTimeRangePickerField.d.ts +1 -1
  58. package/dist/kit/builder/form/components/fields/DateTimeRangePickerField.d.ts.map +1 -1
  59. package/dist/kit/builder/form/components/fields/FileField.d.ts +1 -1
  60. package/dist/kit/builder/form/components/fields/FileField.d.ts.map +1 -1
  61. package/dist/kit/builder/form/components/fields/MonthPickerField.d.ts +1 -1
  62. package/dist/kit/builder/form/components/fields/MonthPickerField.d.ts.map +1 -1
  63. package/dist/kit/builder/form/components/fields/MonthRangePickerField.d.ts +1 -1
  64. package/dist/kit/builder/form/components/fields/MonthRangePickerField.d.ts.map +1 -1
  65. package/dist/kit/builder/form/components/fields/NumberField.d.ts +1 -1
  66. package/dist/kit/builder/form/components/fields/NumberField.d.ts.map +1 -1
  67. package/dist/kit/builder/form/components/fields/ObjectField.d.ts.map +1 -1
  68. package/dist/kit/builder/form/components/fields/RadioField.d.ts +1 -1
  69. package/dist/kit/builder/form/components/fields/RadioField.d.ts.map +1 -1
  70. package/dist/kit/builder/form/components/fields/SelectField.d.ts +1 -1
  71. package/dist/kit/builder/form/components/fields/SelectField.d.ts.map +1 -1
  72. package/dist/kit/builder/form/components/fields/SwitchField.d.ts +1 -1
  73. package/dist/kit/builder/form/components/fields/SwitchField.d.ts.map +1 -1
  74. package/dist/kit/builder/form/components/fields/TextField.d.ts +1 -1
  75. package/dist/kit/builder/form/components/fields/TextField.d.ts.map +1 -1
  76. package/dist/kit/builder/form/components/fields/TextareaField.d.ts +1 -1
  77. package/dist/kit/builder/form/components/fields/TextareaField.d.ts.map +1 -1
  78. package/dist/kit/builder/form/components/fields/TimePickerField.d.ts +1 -1
  79. package/dist/kit/builder/form/components/fields/TimePickerField.d.ts.map +1 -1
  80. package/dist/kit/builder/form/components/fields/TimeRangePickerField.d.ts +1 -1
  81. package/dist/kit/builder/form/components/fields/TimeRangePickerField.d.ts.map +1 -1
  82. package/dist/kit/builder/form/components/fields/index.d.ts.map +1 -1
  83. package/dist/kit/builder/form/components/fields/types.d.ts.map +1 -1
  84. package/dist/kit/builder/form/components/sectionNodes.d.ts.map +1 -1
  85. package/dist/kit/builder/form/hooks/useFormBuilder.d.ts.map +1 -1
  86. package/dist/kit/builder/form/types.d.ts.map +1 -1
  87. package/dist/kit/builder/form/utils/section-factories.d.ts.map +1 -1
  88. package/dist/kit/builder/page/Page.d.ts.map +1 -1
  89. package/dist/kit/builder/page/index.d.ts.map +1 -1
  90. package/dist/kit/builder/section/SectionBuilder.d.ts +1 -1
  91. package/dist/kit/builder/section/SectionBuilder.d.ts.map +1 -1
  92. package/dist/kit/builder/section/SectionContainer.d.ts +14 -0
  93. package/dist/kit/builder/section/SectionContainer.d.ts.map +1 -0
  94. package/dist/kit/builder/stack-dialog/context.d.ts.map +1 -1
  95. package/dist/kit/builder/stack-dialog/hooks.d.ts.map +1 -1
  96. package/dist/kit/builder/stack-dialog/index.d.ts +3 -3
  97. package/dist/kit/builder/stack-dialog/index.d.ts.map +1 -1
  98. package/dist/kit/builder/stack-dialog/provider.d.ts.map +1 -1
  99. package/dist/kit/builder/stack-dialog/renderer.d.ts.map +1 -1
  100. package/dist/kit/builder/stack-dialog/types.d.ts +1 -1
  101. package/dist/kit/builder/stack-dialog/types.d.ts.map +1 -1
  102. package/dist/kit/components/autocomplete/Autocomplete.d.ts +1 -1
  103. package/dist/kit/components/autocomplete/Autocomplete.d.ts.map +1 -1
  104. package/dist/kit/components/autocomplete/types.d.ts.map +1 -1
  105. package/dist/kit/components/datepicker/DatePicker.d.ts.map +1 -1
  106. package/dist/kit/components/datepicker/DateRangePicker.d.ts.map +1 -1
  107. package/dist/kit/components/datetimepicker/DateTimePicker.d.ts.map +1 -1
  108. package/dist/kit/components/datetimepicker/DateTimeRangePicker.d.ts.map +1 -1
  109. package/dist/kit/components/datetimepicker/index.d.ts.map +1 -1
  110. package/dist/kit/components/fileuploader/FileUploader.d.ts.map +1 -1
  111. package/dist/kit/components/fileuploader/types.d.ts +2 -2
  112. package/dist/kit/components/forminfo/FormInfoError.d.ts.map +1 -1
  113. package/dist/kit/components/login/Login.d.ts +1 -1
  114. package/dist/kit/components/login/Login.d.ts.map +1 -1
  115. package/dist/kit/components/monthpicker/MonthInput.d.ts.map +1 -1
  116. package/dist/kit/components/monthpicker/MonthPicker.d.ts.map +1 -1
  117. package/dist/kit/components/monthpicker/MonthRangeInput.d.ts.map +1 -1
  118. package/dist/kit/components/monthpicker/MonthRangePicker.d.ts.map +1 -1
  119. package/dist/kit/components/timepicker/TimePicker.d.ts.map +1 -1
  120. package/dist/kit/components/timepicker/TimeRangePicker.d.ts.map +1 -1
  121. package/dist/kit/components/timepicker/index.d.ts.map +1 -1
  122. package/dist/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -1
  123. package/dist/kit/layouts/admin/components/ThemeToggle.d.ts.map +1 -1
  124. package/dist/kit/layouts/admin/hooks/menu.d.ts.map +1 -1
  125. package/dist/kit/layouts/admin/providers/AdminMenuProvider.d.ts +1 -1
  126. package/dist/kit/layouts/admin/providers/AdminMenuProvider.d.ts.map +1 -1
  127. package/dist/shadcn/hooks/use-mobile.d.ts.map +1 -1
  128. package/dist/shadcn/ui/accordion.d.ts +2 -2
  129. package/dist/shadcn/ui/accordion.d.ts.map +1 -1
  130. package/dist/shadcn/ui/alert-dialog.d.ts +4 -4
  131. package/dist/shadcn/ui/alert-dialog.d.ts.map +1 -1
  132. package/dist/shadcn/ui/alert.d.ts +4 -4
  133. package/dist/shadcn/ui/alert.d.ts.map +1 -1
  134. package/dist/shadcn/ui/aspect-ratio.d.ts +1 -1
  135. package/dist/shadcn/ui/aspect-ratio.d.ts.map +1 -1
  136. package/dist/shadcn/ui/avatar.d.ts +2 -2
  137. package/dist/shadcn/ui/avatar.d.ts.map +1 -1
  138. package/dist/shadcn/ui/badge.d.ts +2 -2
  139. package/dist/shadcn/ui/badge.d.ts.map +1 -1
  140. package/dist/shadcn/ui/breadcrumb.d.ts +8 -8
  141. package/dist/shadcn/ui/breadcrumb.d.ts.map +1 -1
  142. package/dist/shadcn/ui/button.d.ts +2 -2
  143. package/dist/shadcn/ui/button.d.ts.map +1 -1
  144. package/dist/shadcn/ui/calendar.d.ts +2 -2
  145. package/dist/shadcn/ui/calendar.d.ts.map +1 -1
  146. package/dist/shadcn/ui/card.d.ts +8 -8
  147. package/dist/shadcn/ui/card.d.ts.map +1 -1
  148. package/dist/shadcn/ui/carousel.d.ts +5 -5
  149. package/dist/shadcn/ui/carousel.d.ts.map +1 -1
  150. package/dist/shadcn/ui/chart.d.ts +7 -7
  151. package/dist/shadcn/ui/chart.d.ts.map +1 -1
  152. package/dist/shadcn/ui/checkbox.d.ts +2 -2
  153. package/dist/shadcn/ui/checkbox.d.ts.map +1 -1
  154. package/dist/shadcn/ui/collapsible.d.ts +1 -1
  155. package/dist/shadcn/ui/collapsible.d.ts.map +1 -1
  156. package/dist/shadcn/ui/command.d.ts +2 -2
  157. package/dist/shadcn/ui/command.d.ts.map +1 -1
  158. package/dist/shadcn/ui/context-menu.d.ts +4 -4
  159. package/dist/shadcn/ui/context-menu.d.ts.map +1 -1
  160. package/dist/shadcn/ui/dialog.d.ts +4 -4
  161. package/dist/shadcn/ui/dialog.d.ts.map +1 -1
  162. package/dist/shadcn/ui/drawer.d.ts +3 -3
  163. package/dist/shadcn/ui/drawer.d.ts.map +1 -1
  164. package/dist/shadcn/ui/dropdown-menu.d.ts +4 -4
  165. package/dist/shadcn/ui/dropdown-menu.d.ts.map +1 -1
  166. package/dist/shadcn/ui/form.d.ts +5 -5
  167. package/dist/shadcn/ui/form.d.ts.map +1 -1
  168. package/dist/shadcn/ui/hover-card.d.ts +2 -2
  169. package/dist/shadcn/ui/hover-card.d.ts.map +1 -1
  170. package/dist/shadcn/ui/input-otp.d.ts +4 -4
  171. package/dist/shadcn/ui/input-otp.d.ts.map +1 -1
  172. package/dist/shadcn/ui/input.d.ts +2 -2
  173. package/dist/shadcn/ui/input.d.ts.map +1 -1
  174. package/dist/shadcn/ui/label.d.ts +2 -2
  175. package/dist/shadcn/ui/label.d.ts.map +1 -1
  176. package/dist/shadcn/ui/menubar.d.ts +4 -4
  177. package/dist/shadcn/ui/menubar.d.ts.map +1 -1
  178. package/dist/shadcn/ui/navigation-menu.d.ts +2 -2
  179. package/dist/shadcn/ui/navigation-menu.d.ts.map +1 -1
  180. package/dist/shadcn/ui/pagination.d.ts +6 -6
  181. package/dist/shadcn/ui/pagination.d.ts.map +1 -1
  182. package/dist/shadcn/ui/popover.d.ts +2 -2
  183. package/dist/shadcn/ui/popover.d.ts.map +1 -1
  184. package/dist/shadcn/ui/progress.d.ts +2 -2
  185. package/dist/shadcn/ui/progress.d.ts.map +1 -1
  186. package/dist/shadcn/ui/radio-group.d.ts +2 -2
  187. package/dist/shadcn/ui/radio-group.d.ts.map +1 -1
  188. package/dist/shadcn/ui/resizable.d.ts +2 -2
  189. package/dist/shadcn/ui/resizable.d.ts.map +1 -1
  190. package/dist/shadcn/ui/scroll-area.d.ts +2 -2
  191. package/dist/shadcn/ui/scroll-area.d.ts.map +1 -1
  192. package/dist/shadcn/ui/select.d.ts +3 -3
  193. package/dist/shadcn/ui/select.d.ts.map +1 -1
  194. package/dist/shadcn/ui/separator.d.ts +2 -2
  195. package/dist/shadcn/ui/separator.d.ts.map +1 -1
  196. package/dist/shadcn/ui/sheet.d.ts +5 -5
  197. package/dist/shadcn/ui/sheet.d.ts.map +1 -1
  198. package/dist/shadcn/ui/sidebar.d.ts +26 -26
  199. package/dist/shadcn/ui/sidebar.d.ts.map +1 -1
  200. package/dist/shadcn/ui/skeleton.d.ts +1 -1
  201. package/dist/shadcn/ui/skeleton.d.ts.map +1 -1
  202. package/dist/shadcn/ui/slider.d.ts +2 -2
  203. package/dist/shadcn/ui/slider.d.ts.map +1 -1
  204. package/dist/shadcn/ui/sonner.d.ts.map +1 -1
  205. package/dist/shadcn/ui/switch.d.ts +2 -2
  206. package/dist/shadcn/ui/switch.d.ts.map +1 -1
  207. package/dist/shadcn/ui/table.d.ts +9 -9
  208. package/dist/shadcn/ui/table.d.ts.map +1 -1
  209. package/dist/shadcn/ui/tabs.d.ts +2 -2
  210. package/dist/shadcn/ui/tabs.d.ts.map +1 -1
  211. package/dist/shadcn/ui/textarea.d.ts +2 -2
  212. package/dist/shadcn/ui/textarea.d.ts.map +1 -1
  213. package/dist/shadcn/ui/toggle-group.d.ts +2 -2
  214. package/dist/shadcn/ui/toggle-group.d.ts.map +1 -1
  215. package/dist/shadcn/ui/toggle.d.ts +2 -2
  216. package/dist/shadcn/ui/toggle.d.ts.map +1 -1
  217. package/dist/shadcn/ui/tooltip.d.ts +2 -2
  218. package/dist/shadcn/ui/tooltip.d.ts.map +1 -1
  219. package/package.json +2 -2
  220. package/src/index.ts +1 -1
  221. package/src/kit/builder/auth/AuthProvider.tsx +131 -0
  222. package/src/kit/builder/auth/adapter.ts +436 -0
  223. package/src/kit/builder/auth/client-adapters.ts +398 -0
  224. package/src/kit/builder/auth/components.tsx +221 -0
  225. package/src/kit/builder/auth/hooks.ts +237 -0
  226. package/src/kit/builder/auth/index.ts +134 -0
  227. package/src/kit/builder/auth/permission-checker.ts +150 -0
  228. package/src/kit/builder/auth/storage.ts +366 -0
  229. package/src/kit/builder/auth/token-manager.ts +55 -0
  230. package/src/kit/builder/auth/types.ts +393 -0
  231. package/src/kit/builder/data-table/components/DataTable.tsx +216 -82
  232. package/src/kit/builder/data-table/components/DataTableColumnHeader.tsx +9 -5
  233. package/src/kit/builder/data-table/components/DataTablePagination.tsx +49 -27
  234. package/src/kit/builder/data-table/components/DataTableViewOptions.tsx +13 -4
  235. package/src/kit/builder/data-table/types.ts +18 -3
  236. package/src/kit/builder/dialog/index.ts +5 -1
  237. package/src/kit/builder/dialog/provider.tsx +56 -27
  238. package/src/kit/builder/form/components/FormBuilder.tsx +10 -14
  239. package/src/kit/builder/form/components/FormBuilderActions.tsx +1 -1
  240. package/src/kit/builder/form/components/FormBuilderContext.tsx +13 -6
  241. package/src/kit/builder/form/components/FormBuilderField.tsx +70 -20
  242. package/src/kit/builder/form/components/fields/ArrayField.tsx +148 -62
  243. package/src/kit/builder/form/components/fields/AutocompleteField.tsx +53 -18
  244. package/src/kit/builder/form/components/fields/CheckboxField.tsx +20 -11
  245. package/src/kit/builder/form/components/fields/DateField.tsx +17 -6
  246. package/src/kit/builder/form/components/fields/DatePickerField.tsx +15 -10
  247. package/src/kit/builder/form/components/fields/DateRangePickerField.tsx +20 -15
  248. package/src/kit/builder/form/components/fields/DateTimePickerField.tsx +16 -11
  249. package/src/kit/builder/form/components/fields/DateTimeRangePickerField.tsx +23 -17
  250. package/src/kit/builder/form/components/fields/FileField.tsx +10 -5
  251. package/src/kit/builder/form/components/fields/MonthPickerField.tsx +18 -11
  252. package/src/kit/builder/form/components/fields/MonthRangePickerField.tsx +23 -17
  253. package/src/kit/builder/form/components/fields/NumberField.tsx +9 -4
  254. package/src/kit/builder/form/components/fields/ObjectField.tsx +12 -7
  255. package/src/kit/builder/form/components/fields/RadioField.tsx +32 -14
  256. package/src/kit/builder/form/components/fields/SelectField.tsx +26 -11
  257. package/src/kit/builder/form/components/fields/SwitchField.tsx +20 -11
  258. package/src/kit/builder/form/components/fields/TextField.tsx +11 -5
  259. package/src/kit/builder/form/components/fields/TextareaField.tsx +9 -4
  260. package/src/kit/builder/form/components/fields/TimePickerField.tsx +16 -11
  261. package/src/kit/builder/form/components/fields/TimeRangePickerField.tsx +23 -17
  262. package/src/kit/builder/form/components/fields/index.ts +21 -21
  263. package/src/kit/builder/form/components/fields/types.ts +15 -11
  264. package/src/kit/builder/form/components/sectionNodes.tsx +63 -40
  265. package/src/kit/builder/form/hooks/useFormBuilder.ts +83 -34
  266. package/src/kit/builder/form/types.ts +173 -148
  267. package/src/kit/builder/form/utils/section-factories.ts +4 -1
  268. package/src/kit/builder/form/utils/transformers.ts +4 -4
  269. package/src/kit/builder/form/utils/validations.ts +1 -1
  270. package/src/kit/builder/page/Page.tsx +26 -6
  271. package/src/kit/builder/page/index.ts +1 -1
  272. package/src/kit/builder/section/SectionBuilder.tsx +252 -127
  273. package/src/kit/builder/section/SectionContainer.tsx +85 -0
  274. package/src/kit/builder/stack-dialog/context.ts +10 -4
  275. package/src/kit/builder/stack-dialog/hooks.ts +4 -3
  276. package/src/kit/builder/stack-dialog/index.ts +5 -11
  277. package/src/kit/builder/stack-dialog/provider.tsx +11 -11
  278. package/src/kit/builder/stack-dialog/renderer.tsx +23 -26
  279. package/src/kit/builder/stack-dialog/types.ts +18 -18
  280. package/src/kit/components/autocomplete/Autocomplete.tsx +631 -549
  281. package/src/kit/components/autocomplete/types.ts +17 -17
  282. package/src/kit/components/datepicker/DatePicker.tsx +33 -9
  283. package/src/kit/components/datepicker/DateRangePicker.tsx +159 -87
  284. package/src/kit/components/datetimepicker/DateTimePicker.tsx +136 -30
  285. package/src/kit/components/datetimepicker/DateTimeRangePicker.tsx +257 -67
  286. package/src/kit/components/datetimepicker/index.ts +3 -3
  287. package/src/kit/components/fileuploader/FileUploader.tsx +315 -180
  288. package/src/kit/components/fileuploader/index.ts +3 -3
  289. package/src/kit/components/fileuploader/types.ts +3 -3
  290. package/src/kit/components/forminfo/FormInfoError.tsx +26 -11
  291. package/src/kit/components/login/Login.tsx +13 -4
  292. package/src/kit/components/monthpicker/MonthInput.tsx +13 -4
  293. package/src/kit/components/monthpicker/MonthPicker.tsx +12 -11
  294. package/src/kit/components/monthpicker/MonthRangeInput.tsx +29 -8
  295. package/src/kit/components/monthpicker/MonthRangePicker.tsx +23 -21
  296. package/src/kit/components/timepicker/TimePicker.tsx +19 -11
  297. package/src/kit/components/timepicker/TimeRangePicker.tsx +106 -29
  298. package/src/kit/components/timepicker/index.ts +3 -3
  299. package/src/kit/layouts/admin/components/AdminLayout.tsx +53 -24
  300. package/src/kit/layouts/admin/components/ThemeToggle.tsx +3 -9
  301. package/src/kit/layouts/admin/hooks/menu.ts +11 -5
  302. package/src/kit/layouts/admin/providers/AdminMenuProvider.tsx +59 -39
  303. package/src/kit/layouts/admin/types/index.ts +1 -1
  304. package/src/kit/themes/base.css +1 -1
  305. package/src/kit/themes/clean-slate.css +40 -32
  306. package/src/kit/themes/default.css +34 -24
  307. package/src/kit/themes/minimal-modern.css +37 -29
  308. package/src/kit/themes/spotify.css +56 -39
  309. package/src/shadcn/hooks/use-mobile.ts +13 -11
  310. package/src/shadcn/lib/utils.ts +2 -2
  311. package/src/shadcn/ui/accordion.tsx +14 -14
  312. package/src/shadcn/ui/alert-dialog.tsx +29 -29
  313. package/src/shadcn/ui/alert.tsx +20 -20
  314. package/src/shadcn/ui/aspect-ratio.tsx +4 -4
  315. package/src/shadcn/ui/avatar.tsx +13 -13
  316. package/src/shadcn/ui/badge.tsx +16 -16
  317. package/src/shadcn/ui/breadcrumb.tsx +28 -28
  318. package/src/shadcn/ui/button.tsx +23 -23
  319. package/src/shadcn/ui/calendar.tsx +82 -78
  320. package/src/shadcn/ui/card.tsx +27 -27
  321. package/src/shadcn/ui/carousel.tsx +93 -93
  322. package/src/shadcn/ui/chart.tsx +103 -103
  323. package/src/shadcn/ui/checkbox.tsx +9 -9
  324. package/src/shadcn/ui/collapsible.tsx +6 -6
  325. package/src/shadcn/ui/command.tsx +36 -36
  326. package/src/shadcn/ui/context-menu.tsx +40 -40
  327. package/src/shadcn/ui/dialog.tsx +28 -28
  328. package/src/shadcn/ui/drawer.tsx +30 -30
  329. package/src/shadcn/ui/dropdown-menu.tsx +41 -41
  330. package/src/shadcn/ui/form.tsx +48 -47
  331. package/src/shadcn/ui/hover-card.tsx +11 -11
  332. package/src/shadcn/ui/input-otp.tsx +23 -23
  333. package/src/shadcn/ui/input.tsx +9 -9
  334. package/src/shadcn/ui/label.tsx +8 -8
  335. package/src/shadcn/ui/menubar.tsx +47 -47
  336. package/src/shadcn/ui/navigation-menu.tsx +33 -33
  337. package/src/shadcn/ui/pagination.tsx +28 -28
  338. package/src/shadcn/ui/popover.tsx +12 -12
  339. package/src/shadcn/ui/progress.tsx +8 -8
  340. package/src/shadcn/ui/radio-group.tsx +11 -11
  341. package/src/shadcn/ui/resizable.tsx +14 -14
  342. package/src/shadcn/ui/scroll-area.tsx +15 -15
  343. package/src/shadcn/ui/select.tsx +34 -34
  344. package/src/shadcn/ui/separator.tsx +9 -9
  345. package/src/shadcn/ui/sheet.tsx +36 -36
  346. package/src/shadcn/ui/sidebar.tsx +227 -227
  347. package/src/shadcn/ui/skeleton.tsx +5 -5
  348. package/src/shadcn/ui/slider.tsx +12 -12
  349. package/src/shadcn/ui/sonner.tsx +11 -11
  350. package/src/shadcn/ui/switch.tsx +9 -9
  351. package/src/shadcn/ui/table.tsx +32 -32
  352. package/src/shadcn/ui/tabs.tsx +14 -14
  353. package/src/shadcn/ui/textarea.tsx +7 -7
  354. package/src/shadcn/ui/toggle-group.tsx +17 -17
  355. package/src/shadcn/ui/toggle.tsx +16 -16
  356. package/src/shadcn/ui/tooltip.tsx +11 -11
  357. package/src/stories/FileUploader.stories.tsx +23 -4
  358. package/src/stories/kit/builder/DataTable.Basic.stories.tsx +14 -4
  359. package/src/stories/kit/builder/DataTable.Filters.stories.tsx +36 -14
  360. package/src/stories/kit/builder/DataTable.Pagination.stories.tsx +3 -2
  361. package/src/stories/kit/builder/DataTable.SelectionAndActions.stories.tsx +18 -4
  362. package/src/stories/kit/builder/DataTable.Sorting.stories.tsx +18 -7
  363. package/src/stories/kit/builder/Dialog.stories.tsx +19 -13
  364. package/src/stories/kit/builder/Form.ArrayLayouts.stories.tsx +40 -16
  365. package/src/stories/kit/builder/Form.Autocomplete.stories.tsx +34 -22
  366. package/src/stories/kit/builder/Form.Basic.stories.tsx +38 -6
  367. package/src/stories/kit/builder/Form.Complex.stories.tsx +356 -111
  368. package/src/stories/kit/builder/Form.DateTime.stories.tsx +12 -8
  369. package/src/stories/kit/builder/Form.Dynamic.stories.tsx +695 -132
  370. package/src/stories/kit/builder/Form.Files.stories.tsx +37 -26
  371. package/src/stories/kit/builder/Form.MultipleFormBuilder.stories.tsx +46 -42
  372. package/src/stories/kit/builder/Form.Pickers.stories.tsx +12 -8
  373. package/src/stories/kit/builder/Form.Simple.stories.tsx +15 -6
  374. package/src/stories/kit/builder/Form.Time.stories.tsx +12 -8
  375. package/src/stories/kit/builder/Page.stories.tsx +32 -6
  376. package/src/stories/kit/builder/Section.stories.tsx +58 -11
  377. package/src/stories/kit/components/Autocomplete.stories.tsx +55 -22
  378. package/src/stories/kit/components/DatePicker.stories.tsx +80 -13
  379. package/src/stories/kit/components/DateRangePicker.stories.tsx +52 -11
  380. package/src/stories/kit/components/Login.stories.tsx +8 -2
  381. package/src/stories/kit/components/MonthPicker.stories.tsx +26 -6
  382. package/src/stories/kit/components/MonthRangePicker.stories.tsx +24 -5
  383. package/src/stories/kit/components/TimePicker.stories.tsx +18 -16
  384. package/src/stories/kit/components/TimeRangePicker.stories.tsx +18 -12
  385. package/src/stories/kit/layouts/admin/AdminLayout.Basic.stories.tsx +29 -6
  386. package/src/stories/kit/layouts/admin/AdminLayout.Collapsible.stories.tsx +26 -5
  387. package/src/stories/kit/layouts/admin/AdminLayout.Complex.stories.tsx +101 -18
  388. package/src/stories/kit/layouts/admin/AdminLayout.CustomSidebarHeaderComponent.stories.tsx +18 -4
  389. package/src/stories/kit/layouts/admin/AdminLayout.CustomSidebarTitleAndIcon.stories.tsx +17 -4
  390. package/src/stories/kit/layouts/admin/AdminLayout.HeaderSlots.stories.tsx +28 -6
  391. package/src/stories/shadcn/ui/Accordion.stories.tsx +33 -10
  392. package/src/stories/shadcn/ui/AlertDialog.stories.tsx +3 -1
  393. package/src/stories/shadcn/ui/Button.stories.tsx +3 -1
  394. package/src/stories/shadcn/ui/Calendar.stories.tsx +6 -1
  395. package/src/stories/shadcn/ui/Card.stories.tsx +11 -2
  396. package/src/stories/shadcn/ui/Checkbox.stories.tsx +11 -3
  397. package/src/stories/shadcn/ui/Collapsible.stories.tsx +12 -5
  398. package/src/stories/shadcn/ui/ContextMenu.stories.tsx +12 -4
  399. package/src/stories/shadcn/ui/Dialog.stories.tsx +15 -3
  400. package/src/stories/shadcn/ui/Drawer.stories.tsx +5 -2
  401. package/src/stories/shadcn/ui/DropdownMenu.stories.tsx +15 -5
  402. package/src/stories/shadcn/ui/Form.stories.tsx +5 -2
  403. package/src/stories/shadcn/ui/HoverCard.stories.tsx +8 -2
  404. package/src/stories/shadcn/ui/Input.stories.tsx +3 -1
  405. package/src/stories/shadcn/ui/InputOtp.stories.tsx +9 -2
  406. package/src/stories/shadcn/ui/Menubar.stories.tsx +21 -7
  407. package/src/stories/shadcn/ui/NavigationMenu.stories.tsx +30 -5
  408. package/src/stories/shadcn/ui/Popover.stories.tsx +8 -2
  409. package/src/stories/shadcn/ui/Resizable.stories.tsx +17 -5
  410. package/src/stories/shadcn/ui/ScrollArea.stories.tsx +54 -2
  411. package/src/stories/shadcn/ui/Select.stories.tsx +7 -1
  412. package/src/stories/shadcn/ui/Sheet.stories.tsx +2 -1
  413. package/src/stories/shadcn/ui/Sidebar.stories.tsx +13 -2
  414. package/src/stories/shadcn/ui/Sonner.stories.tsx +12 -2
  415. package/src/stories/shadcn/ui/Table.stories.tsx +86 -27
  416. package/src/stories/shadcn/ui/Tabs.stories.tsx +9 -2
  417. package/src/stories/shadcn/ui/Textarea.stories.tsx +3 -1
  418. package/src/stories/shadcn/ui/Toggle.stories.tsx +10 -2
  419. package/src/stories/shadcn/ui/Tooltip.stories.tsx +6 -1
  420. package/tsconfig.json +1 -5
  421. package/tsconfig.tsbuildinfo +1 -0
  422. package/eslint.config.mjs +0 -19
@@ -1,4 +1,4 @@
1
- import type React from 'react'
1
+ import type React from 'react';
2
2
  import type {
3
3
  Control,
4
4
  DeepPartial,
@@ -8,13 +8,23 @@ import type {
8
8
  UseFormReturn,
9
9
  UseFormSetValue,
10
10
  DefaultValues,
11
- } from 'react-hook-form'
12
- import type { z } from 'zod'
13
- import type { Accept } from 'react-dropzone'
14
- import type { SectionFlexOptions, SectionGridOptions, SectionLayout } from '../section/types'
15
- import type { AutocompleteFetcher, AutocompleteOption } from '../../components/autocomplete/types'
16
- import type { FileRecord, FileUploaderLayout } from '../../components/fileuploader/types'
17
- import { ReactNode } from 'react'
11
+ } from 'react-hook-form';
12
+ import type { z } from 'zod';
13
+ import type { Accept } from 'react-dropzone';
14
+ import type {
15
+ SectionFlexOptions,
16
+ SectionGridOptions,
17
+ SectionLayout,
18
+ } from '../section/types';
19
+ import type {
20
+ AutocompleteFetcher,
21
+ AutocompleteOption,
22
+ } from '../../components/autocomplete/types';
23
+ import type {
24
+ FileRecord,
25
+ FileUploaderLayout,
26
+ } from '../../components/fileuploader/types';
27
+ import type { ReactNode } from 'react';
18
28
 
19
29
  export type FieldType =
20
30
  | 'text'
@@ -40,178 +50,193 @@ export type FieldType =
40
50
  | 'hidden'
41
51
  | 'object'
42
52
  | 'array'
43
- | 'custom_field'
53
+ | 'custom_field';
44
54
 
45
55
  export interface Dependency<TFieldValues extends FieldValues> {
46
- field: Path<TFieldValues>
47
- condition: (value: unknown) => boolean
48
- action: 'show' | 'hide' | 'enable' | 'disable' | 'setValue'
49
- value?: unknown
56
+ field: Path<TFieldValues>;
57
+ condition: (value: unknown) => boolean;
58
+ action: 'show' | 'hide' | 'enable' | 'disable' | 'setValue';
59
+ value?: unknown;
50
60
  }
51
61
 
52
62
  export interface FormBuilderFieldConfig<
53
63
  TFieldValues extends FieldValues = FieldValues,
54
- TName extends Path<TFieldValues> | string = Path<TFieldValues>
64
+ TName extends Path<TFieldValues> | string = Path<TFieldValues>,
55
65
  > {
56
- id?: string
57
- name: TName
58
- label: string
59
- type: FieldType
60
- placeholder?: string
61
- description?: string
62
- required?: boolean
63
- disabled?: boolean
64
- options?: { label: string; value: string | number | boolean | null }[]
65
- autocompleteMode?: 'client' | 'server'
66
- fetcher?: AutocompleteFetcher
67
- fetcherFilter?: () => Record<string, string | number | boolean | null>
68
- pageSize?: number
69
- renderOption?: (option: AutocompleteOption, selected: boolean) => React.ReactNode
70
- multiple?: boolean
71
- allowCustomValue?: boolean
72
- chipVariant?: 'default' | 'secondary' | 'destructive' | 'outline'
73
- chipClassName?: string
74
- clearable?: boolean
75
- initialSelectedOptions?: AutocompleteOption | AutocompleteOption[] | null
76
- loadSelected?: (values: Array<string | number>) => Promise<AutocompleteOption[]>
66
+ id?: string;
67
+ name: TName;
68
+ label: string;
69
+ type: FieldType;
70
+ placeholder?: string;
71
+ description?: string;
72
+ required?: boolean;
73
+ disabled?: boolean;
74
+ options?: { label: string; value: string | number | boolean | null }[];
75
+ autocompleteMode?: 'client' | 'server';
76
+ fetcher?: AutocompleteFetcher;
77
+ fetcherFilter?: () => Record<string, string | number | boolean | null>;
78
+ pageSize?: number;
79
+ renderOption?: (
80
+ option: AutocompleteOption,
81
+ selected: boolean,
82
+ ) => React.ReactNode;
83
+ multiple?: boolean;
84
+ allowCustomValue?: boolean;
85
+ chipVariant?: 'default' | 'secondary' | 'destructive' | 'outline';
86
+ chipClassName?: string;
87
+ clearable?: boolean;
88
+ initialSelectedOptions?: AutocompleteOption | AutocompleteOption[] | null;
89
+ loadSelected?: (
90
+ values: Array<string | number>,
91
+ ) => Promise<AutocompleteOption[]>;
77
92
  validation?:
78
93
  | z.ZodType<unknown>
79
94
  | {
80
- pattern?: { value: RegExp; message: string }
81
- min?: { value: number; message: string }
82
- max?: { value: number; message: string }
83
- minLength?: { value: number; message: string }
84
- maxLength?: { value: number; message: string }
85
- minItems?: { value: number; message: string }
86
- maxItems?: { value: number; message: string }
87
- }
95
+ pattern?: { value: RegExp; message: string };
96
+ min?: { value: number; message: string };
97
+ max?: { value: number; message: string };
98
+ minLength?: { value: number; message: string };
99
+ maxLength?: { value: number; message: string };
100
+ minItems?: { value: number; message: string };
101
+ maxItems?: { value: number; message: string };
102
+ };
88
103
  // Accept any for defaultValue to support relative string names for nested fields
89
- defaultValue?: unknown
104
+ defaultValue?: unknown;
90
105
  // For nested object/array fields, use relative names (eg. 'uomName')
91
- fields?: Array<FormBuilderFieldConfig<TFieldValues, string>>
92
- dependencies?: Array<Dependency<TFieldValues>>
106
+ fields?: Array<FormBuilderFieldConfig<TFieldValues, string>>;
107
+ dependencies?: Array<Dependency<TFieldValues>>;
93
108
  onChange?: (
94
109
  value: unknown,
95
110
  extras: unknown,
96
111
  setValue: UseFormSetValue<TFieldValues>,
97
- getValues: UseFormGetValues<TFieldValues>
98
- ) => void
99
- className?: string
100
- gridCols?: number
101
- rows?: number
102
- itemType?: string
103
- arrayLayout?: 'card' | 'table' | 'custom'
112
+ getValues: UseFormGetValues<TFieldValues>,
113
+ ) => void;
114
+ className?: string;
115
+ gridCols?: number;
116
+ rows?: number;
117
+ itemType?: string;
118
+ arrayLayout?: 'card' | 'table' | 'custom';
104
119
  arrayRender?: (params: {
105
- field: FormBuilderFieldConfig<TFieldValues>
106
- control: Control<TFieldValues>
107
- fieldPath: string
108
- value: unknown
109
- onChange: (value: unknown) => void
110
- addItem: () => void
111
- removeItem: (index: number) => void
112
- disabled?: boolean
113
- rows?: { id: string }[]
114
- }) => React.ReactNode
120
+ field: FormBuilderFieldConfig<TFieldValues>;
121
+ control: Control<TFieldValues>;
122
+ fieldPath: string;
123
+ value: unknown;
124
+ onChange: (value: unknown) => void;
125
+ addItem: () => void;
126
+ removeItem: (index: number) => void;
127
+ disabled?: boolean;
128
+ rows?: { id: string }[];
129
+ }) => React.ReactNode;
115
130
  arrayColors?: {
116
- headerBgClass?: string
117
- headerTextClass?: string
118
- rowAltBgClass?: string
119
- }
131
+ headerBgClass?: string;
132
+ headerTextClass?: string;
133
+ rowAltBgClass?: string;
134
+ };
120
135
  conditional?: {
121
- field: Path<TFieldValues>
122
- value: unknown
123
- }
124
- hidden?: boolean
125
- labelPlacement?: 'stacked' | 'inline' | 'hidden'
126
- wrapperClassName?: string
127
- minDate?: Date
128
- maxDate?: Date
129
- disabledDates?: Array<Date | { from: Date; to: Date }>
130
- numberOfMonths?: number
131
- popoverSide?: 'top' | 'right' | 'bottom' | 'left'
132
- showFooter?: boolean
133
- cancelLabel?: string
134
- applyLabel?: string
135
- timePrecision?: 'hour' | 'minute' | 'second'
136
- hourCycle?: 12 | 24
137
- minuteStep?: number
138
- secondStep?: number
139
- fileMultiple?: boolean
140
- fileMaxFiles?: number
141
- fileAccept?: Accept
142
- fileLayout?: FileUploaderLayout
143
- fileWithDownload?: boolean
144
- fileUploader?: (file: File, onProgress: (pct: number) => void) => Promise<Partial<FileRecord>>
145
- fileOnUploadSuccess?: (file: FileRecord) => void
146
- fileOnUploadError?: (file: FileRecord, error: unknown) => void
147
- fileOnRemove?: (file: FileRecord) => void | Promise<void>
148
- fileOnRetry?: (file: FileRecord) => void
149
- fileOnRetryAll?: (files: FileRecord[]) => void
136
+ field: Path<TFieldValues>;
137
+ value: unknown;
138
+ };
139
+ hidden?: boolean;
140
+ labelPlacement?: 'stacked' | 'inline' | 'hidden';
141
+ wrapperClassName?: string;
142
+ minDate?: Date;
143
+ maxDate?: Date;
144
+ disabledDates?: Array<Date | { from: Date; to: Date }>;
145
+ numberOfMonths?: number;
146
+ popoverSide?: 'top' | 'right' | 'bottom' | 'left';
147
+ showFooter?: boolean;
148
+ cancelLabel?: string;
149
+ applyLabel?: string;
150
+ timePrecision?: 'hour' | 'minute' | 'second';
151
+ hourCycle?: 12 | 24;
152
+ minuteStep?: number;
153
+ secondStep?: number;
154
+ fileMultiple?: boolean;
155
+ fileMaxFiles?: number;
156
+ fileAccept?: Accept;
157
+ fileLayout?: FileUploaderLayout;
158
+ fileWithDownload?: boolean;
159
+ fileUploader?: (
160
+ file: File,
161
+ onProgress: (pct: number) => void,
162
+ ) => Promise<Partial<FileRecord>>;
163
+ fileOnUploadSuccess?: (file: FileRecord) => void;
164
+ fileOnUploadError?: (file: FileRecord, error: unknown) => void;
165
+ fileOnRemove?: (file: FileRecord) => void | Promise<void>;
166
+ fileOnRetry?: (file: FileRecord) => void;
167
+ fileOnRetryAll?: (files: FileRecord[]) => void;
150
168
  customRender?: (fieldControl: {
151
- field: FormBuilderFieldConfig<TFieldValues, string>,
152
- fieldPath: string,
153
- control: Control<TFieldValues>,
154
- value: TFieldValues,
155
- handleChange: (value: unknown, ...extras: unknown[]) => void,
156
- }) => React.ReactNode
169
+ field: FormBuilderFieldConfig<TFieldValues, string>;
170
+ fieldPath: string;
171
+ control: Control<TFieldValues>;
172
+ value: TFieldValues;
173
+ handleChange: (value: unknown, ...extras: unknown[]) => void;
174
+ }) => React.ReactNode;
157
175
  }
158
176
 
159
- export interface FormBuilderSectionConfig<TFieldValues extends FieldValues = FieldValues> {
160
- id?: string
161
- title?: string
162
- description?: string
163
- fields?: Array<FormBuilderFieldConfig<TFieldValues>>
164
- variant?: 'card' | 'separator' | 'plain'
165
- className?: string
166
- collapsible?: boolean
167
- defaultCollapsed?: boolean
168
- layout?: SectionLayout
169
- grid?: SectionGridOptions
170
- flex?: SectionFlexOptions
171
- hidden?: boolean
177
+ export interface FormBuilderSectionConfig<
178
+ TFieldValues extends FieldValues = FieldValues,
179
+ > {
180
+ id?: string;
181
+ title?: string;
182
+ description?: string;
183
+ fields?: Array<FormBuilderFieldConfig<TFieldValues>>;
184
+ variant?: 'card' | 'separator' | 'plain';
185
+ className?: string;
186
+ collapsible?: boolean;
187
+ defaultCollapsed?: boolean;
188
+ layout?: SectionLayout;
189
+ grid?: SectionGridOptions;
190
+ flex?: SectionFlexOptions;
191
+ hidden?: boolean;
172
192
  tabs?: Array<{
173
- id: string
174
- label: ReactNode,
175
- sections: Array<FormBuilderSectionConfig<TFieldValues>>
176
- className?: string
177
- contentClassName?: string
178
- }>
179
- defaultTabId?: string
180
- tabsListClassName?: string
181
- tabsContentClassName?: string
193
+ id: string;
194
+ label: ReactNode;
195
+ sections: Array<FormBuilderSectionConfig<TFieldValues>>;
196
+ className?: string;
197
+ contentClassName?: string;
198
+ }>;
199
+ defaultTabId?: string;
200
+ tabsListClassName?: string;
201
+ tabsContentClassName?: string;
182
202
  }
183
203
 
184
- export interface FormBuilderProps<TFieldValues extends FieldValues = FieldValues> {
204
+ export interface FormBuilderProps<
205
+ TFieldValues extends FieldValues = FieldValues,
206
+ > {
185
207
  // Accept form from useFormBuilder hook
186
- form?: UseFormReturn<TFieldValues>
187
- sections: Array<FormBuilderSectionConfig<TFieldValues>>
188
-
208
+ form?: UseFormReturn<TFieldValues>;
209
+ sections: Array<FormBuilderSectionConfig<TFieldValues>>;
210
+
189
211
  // Optional overrides (for backward compatibility)
190
- schema?: z.ZodType<TFieldValues>
191
- defaultValues?: DeepPartial<TFieldValues> | DefaultValues<TFieldValues> | null
192
-
212
+ schema?: z.ZodType<TFieldValues>;
213
+ defaultValues?:
214
+ | DeepPartial<TFieldValues>
215
+ | DefaultValues<TFieldValues>
216
+ | null;
217
+
193
218
  // Handlers
194
- onSubmit: (data: TFieldValues) => void | Promise<void>
195
- onCancel?: () => void
196
- onReset?: () => void
219
+ onSubmit: (data: TFieldValues) => void | Promise<void>;
220
+ onCancel?: () => void;
221
+ onReset?: () => void;
197
222
  onFieldChange?: (
198
223
  name: Path<TFieldValues> | string,
199
224
  value: unknown,
200
- allValues: TFieldValues
201
- ) => void
202
-
225
+ allValues: TFieldValues,
226
+ ) => void;
227
+
203
228
  // UI customization
204
- submitLabel?: string
205
- cancelLabel?: string
206
- resetLabel?: string
207
- isSubmitting?: boolean
208
- className?: string
209
- formClassName?: string
210
- actionsClassName?: string
211
- showActions?: boolean
212
- customActions?: React.ReactNode
213
- showActionsSeparator?: boolean
229
+ submitLabel?: string;
230
+ cancelLabel?: string;
231
+ resetLabel?: string;
232
+ isSubmitting?: boolean;
233
+ className?: string;
234
+ formClassName?: string;
235
+ actionsClassName?: string;
236
+ showActions?: boolean;
237
+ customActions?: React.ReactNode;
238
+ showActionsSeparator?: boolean;
214
239
  }
215
240
 
216
241
  // Re-export for external consumers that build custom section nodes
217
- export type { SectionNode } from '../section/types'
242
+ export type { SectionNode } from '../section/types';
@@ -1,4 +1,7 @@
1
- import type { FormBuilderFieldConfig, FormBuilderSectionConfig } from '../types';
1
+ import type {
2
+ FormBuilderFieldConfig,
3
+ FormBuilderSectionConfig,
4
+ } from '../types';
2
5
 
3
6
  // Section factory functions
4
7
  export const createSection = {
@@ -6,7 +6,7 @@ export const transformers = {
6
6
  if (Array.isArray(obj)) {
7
7
  return obj
8
8
  .map(clean)
9
- .filter(item => item !== null && item !== undefined);
9
+ .filter((item) => item !== null && item !== undefined);
10
10
  }
11
11
 
12
12
  if (obj && typeof obj === 'object') {
@@ -47,11 +47,11 @@ export const transformers = {
47
47
  result[key] = parseValue(obj[key], [...path, key]);
48
48
 
49
49
  if (
50
- numberFields.includes(currentPath)
51
- && typeof result[key] === 'string'
50
+ numberFields.includes(currentPath) &&
51
+ typeof result[key] === 'string'
52
52
  ) {
53
53
  const num = Number(result[key]);
54
- if (!isNaN(num)) {
54
+ if (!Number.isNaN(num)) {
55
55
  result[key] = num;
56
56
  }
57
57
  }
@@ -5,7 +5,7 @@ export const commonValidations = {
5
5
  email: z.string().email('Please enter a valid email address'),
6
6
  phone: z
7
7
  .string()
8
- .regex(/^[\+]?[1-9][\d]{0,15}$/, 'Please enter a valid phone number'),
8
+ .regex(/^[+]?[1-9][\d]{0,15}$/, 'Please enter a valid phone number'),
9
9
  url: z.string().url('Please enter a valid URL'),
10
10
  password: z.string().min(8, 'Password must be at least 8 characters'),
11
11
  strongPassword: z
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type React from 'react';
2
2
  import { Button, buttonVariants } from '../../../shadcn/ui/button';
3
3
  import {
4
4
  DropdownMenu,
@@ -37,7 +37,7 @@ export type PageDropdownAction = {
37
37
  type: 'dropdown';
38
38
  key?: string;
39
39
  trigger: Omit<PageButtonAction, 'type'>;
40
- items: (PageDropdownActionItem | { type: 'separator'; key?: string; })[];
40
+ items: (PageDropdownActionItem | { type: 'separator'; key?: string })[];
41
41
  };
42
42
 
43
43
  export type PageAction = PageButtonAction | PageDropdownAction;
@@ -65,7 +65,16 @@ const widthToClass: Record<PageContainerWidth, string> = {
65
65
 
66
66
  function renderAction(action: PageAction) {
67
67
  if (action.type === 'button') {
68
- const { label, onClick, variant, size, leftIcon, rightIcon, disabled, className } = action;
68
+ const {
69
+ label,
70
+ onClick,
71
+ variant,
72
+ size,
73
+ leftIcon,
74
+ rightIcon,
75
+ disabled,
76
+ className,
77
+ } = action;
69
78
  return (
70
79
  <Button
71
80
  key={action.key ?? String(label)}
@@ -90,7 +99,7 @@ function renderAction(action: PageAction) {
90
99
  type="button"
91
100
  className={cn(
92
101
  buttonVariants({ variant: trigger.variant, size: trigger.size }),
93
- trigger.className
102
+ trigger.className,
94
103
  )}
95
104
  onClick={trigger.onClick}
96
105
  disabled={trigger.disabled}
@@ -143,8 +152,19 @@ export function Page({
143
152
  }: PageProps) {
144
153
  return (
145
154
  <div className={cn('w-full', className)}>
146
- <div className={cn('px-4 sm:px-6 lg:px-8', widthToClass[containerWidth], 'mx-auto')}>
147
- <header className={cn('flex items-start justify-between gap-3 py-6', headerClassName)}>
155
+ <div
156
+ className={cn(
157
+ 'px-4 sm:px-6 lg:px-8',
158
+ widthToClass[containerWidth],
159
+ 'mx-auto',
160
+ )}
161
+ >
162
+ <header
163
+ className={cn(
164
+ 'flex items-start justify-between gap-3 py-6',
165
+ headerClassName,
166
+ )}
167
+ >
148
168
  <div className="flex min-w-0 flex-col gap-1">
149
169
  <h1 className="text-2xl font-semibold leading-none tracking-tight text-foreground">
150
170
  {title}
@@ -1 +1 @@
1
- export * from './Page'
1
+ export * from './Page';