@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,21 +1,27 @@
1
- import * as React from 'react'
2
- import type { FieldRenderProps } from './types'
3
- import { DateTimeRangePicker } from '../../../../components/datetimepicker/DateTimeRangePicker'
1
+ import * as React from 'react';
2
+ import type { FieldRenderProps } from './types';
3
+ import { DateTimeRangePicker } from '../../../../components/datetimepicker/DateTimeRangePicker';
4
4
 
5
- export function DateTimeRangePickerField({ field, value, onChange, className }: FieldRenderProps) {
5
+ export function DateTimeRangePickerField({
6
+ field,
7
+ value,
8
+ onChange,
9
+ className,
10
+ }: FieldRenderProps) {
6
11
  const v = React.useMemo(() => {
7
- if (!value || typeof value !== 'object') return null as { from?: Date | null; to?: Date | null } | null
8
- const anyVal = value as { from?: unknown; to?: unknown }
12
+ if (!value || typeof value !== 'object')
13
+ return null as { from?: Date | null; to?: Date | null } | null;
14
+ const anyVal = value as { from?: unknown; to?: unknown };
9
15
  const toDate = (x: unknown) => {
10
- if (!x) return undefined
11
- if (x instanceof Date) return x
12
- const d = new Date(x as string)
13
- return Number.isNaN(d.getTime()) ? undefined : d
14
- }
15
- const from = toDate(anyVal.from) ?? null
16
- const to = toDate(anyVal.to) ?? null
17
- return { from, to }
18
- }, [value])
16
+ if (!x) return undefined;
17
+ if (x instanceof Date) return x;
18
+ const d = new Date(x as string);
19
+ return Number.isNaN(d.getTime()) ? undefined : d;
20
+ };
21
+ const from = toDate(anyVal.from) ?? null;
22
+ const to = toDate(anyVal.to) ?? null;
23
+ return { from, to };
24
+ }, [value]);
19
25
 
20
26
  return (
21
27
  <DateTimeRangePicker
@@ -36,7 +42,7 @@ export function DateTimeRangePickerField({ field, value, onChange, className }:
36
42
  cancelLabel={field.cancelLabel}
37
43
  applyLabel={field.applyLabel}
38
44
  />
39
- )
45
+ );
40
46
  }
41
47
 
42
- export default DateTimeRangePickerField
48
+ export default DateTimeRangePickerField;
@@ -1,8 +1,13 @@
1
- import type { FieldRenderProps } from './types'
2
- import { FileUploader } from '../../../../components/fileuploader/FileUploader'
1
+ import type { FieldRenderProps } from './types';
2
+ import { FileUploader } from '../../../../components/fileuploader/FileUploader';
3
3
 
4
- export function FileField({ field, value, onChange, className }: FieldRenderProps) {
5
- const files = Array.isArray(value) ? value : []
4
+ export function FileField({
5
+ field,
6
+ value,
7
+ onChange,
8
+ className,
9
+ }: FieldRenderProps) {
10
+ const files = Array.isArray(value) ? value : [];
6
11
  return (
7
12
  <FileUploader
8
13
  className={className}
@@ -22,5 +27,5 @@ export function FileField({ field, value, onChange, className }: FieldRenderProp
22
27
  onRetry={field.fileOnRetry}
23
28
  onRetryAll={field.fileOnRetryAll}
24
29
  />
25
- )
30
+ );
26
31
  }
@@ -1,14 +1,19 @@
1
- import * as React from 'react'
2
- import type { FieldRenderProps } from './types'
3
- import { MonthInput } from '../../../../components/monthpicker/MonthInput'
1
+ import * as React from 'react';
2
+ import type { FieldRenderProps } from './types';
3
+ import { MonthInput } from '../../../../components/monthpicker/MonthInput';
4
4
 
5
- export function MonthPickerField({ field, value, onChange, className }: FieldRenderProps) {
5
+ export function MonthPickerField({
6
+ field,
7
+ value,
8
+ onChange,
9
+ className,
10
+ }: FieldRenderProps) {
6
11
  const v = React.useMemo(() => {
7
- if (!value) return undefined
8
- if (value instanceof Date) return value
9
- const d = new Date(value as string)
10
- return Number.isNaN(d.getTime()) ? undefined : d
11
- }, [value])
12
+ if (!value) return undefined;
13
+ if (value instanceof Date) return value;
14
+ const d = new Date(value as string);
15
+ return Number.isNaN(d.getTime()) ? undefined : d;
16
+ }, [value]);
12
17
 
13
18
  return (
14
19
  <MonthInput
@@ -17,10 +22,12 @@ export function MonthPickerField({ field, value, onChange, className }: FieldRen
17
22
  onChange={(d: Date | null) => onChange(d)}
18
23
  minDate={field.minDate}
19
24
  maxDate={field.maxDate}
20
- disabledDates={(field.disabledDates?.filter((it): it is Date => it instanceof Date))}
25
+ disabledDates={field.disabledDates?.filter(
26
+ (it): it is Date => it instanceof Date,
27
+ )}
21
28
  showFooter
22
29
  clearLabel={field.cancelLabel}
23
30
  closeLabel={field.applyLabel}
24
31
  />
25
- )
32
+ );
26
33
  }
@@ -1,22 +1,28 @@
1
- import * as React from 'react'
2
- import type { FieldRenderProps } from './types'
3
- import { MonthRangeInput } from '../../../../components/monthpicker/MonthRangeInput'
1
+ import * as React from 'react';
2
+ import type { FieldRenderProps } from './types';
3
+ import { MonthRangeInput } from '../../../../components/monthpicker/MonthRangeInput';
4
4
 
5
- export function MonthRangePickerField({ field, value, onChange, className }: FieldRenderProps) {
5
+ export function MonthRangePickerField({
6
+ field,
7
+ value,
8
+ onChange,
9
+ className,
10
+ }: FieldRenderProps) {
6
11
  const v = React.useMemo(() => {
7
- if (!value || typeof value !== 'object') return undefined as { start: Date; end: Date } | undefined
8
- const anyVal = value as { start?: unknown; end?: unknown }
12
+ if (!value || typeof value !== 'object')
13
+ return undefined as { start: Date; end: Date } | undefined;
14
+ const anyVal = value as { start?: unknown; end?: unknown };
9
15
  const toDate = (x: unknown) => {
10
- if (!x) return undefined
11
- if (x instanceof Date) return x
12
- const d = new Date(x as string)
13
- return Number.isNaN(d.getTime()) ? undefined : d
14
- }
15
- const start = toDate(anyVal.start)
16
- const end = toDate(anyVal.end)
17
- if (!start || !end) return undefined
18
- return { start, end }
19
- }, [value])
16
+ if (!x) return undefined;
17
+ if (x instanceof Date) return x;
18
+ const d = new Date(x as string);
19
+ return Number.isNaN(d.getTime()) ? undefined : d;
20
+ };
21
+ const start = toDate(anyVal.start);
22
+ const end = toDate(anyVal.end);
23
+ if (!start || !end) return undefined;
24
+ return { start, end };
25
+ }, [value]);
20
26
 
21
27
  return (
22
28
  <MonthRangeInput
@@ -31,5 +37,5 @@ export function MonthRangePickerField({ field, value, onChange, className }: Fie
31
37
  cancelLabel={field.cancelLabel}
32
38
  applyLabel={field.applyLabel}
33
39
  />
34
- )
40
+ );
35
41
  }
@@ -1,7 +1,12 @@
1
- import { Input } from '../../../../../shadcn/ui/input'
2
- import type { FieldRenderProps } from './types'
1
+ import { Input } from '../../../../../shadcn/ui/input';
2
+ import type { FieldRenderProps } from './types';
3
3
 
4
- export function NumberField({ field, value, onChange, className }: FieldRenderProps) {
4
+ export function NumberField({
5
+ field,
6
+ value,
7
+ onChange,
8
+ className,
9
+ }: FieldRenderProps) {
5
10
  return (
6
11
  <Input
7
12
  className={className}
@@ -11,5 +16,5 @@ export function NumberField({ field, value, onChange, className }: FieldRenderPr
11
16
  value={(value as number | string) ?? ''}
12
17
  onChange={(e) => onChange(Number(e.target.value))}
13
18
  />
14
- )
19
+ );
15
20
  }
@@ -1,10 +1,15 @@
1
- import { Card, CardContent, CardHeader, CardTitle } from '../../../../../shadcn/ui/card'
2
- import { cn } from '../../../../../shadcn/lib/utils'
3
- import type { FieldRenderProps } from './types'
4
- import { FormBuilderField } from '../FormBuilderField'
1
+ import {
2
+ Card,
3
+ CardContent,
4
+ CardHeader,
5
+ CardTitle,
6
+ } from '../../../../../shadcn/ui/card';
7
+ import { cn } from '../../../../../shadcn/lib/utils';
8
+ import type { FieldRenderProps } from './types';
9
+ import { FormBuilderField } from '../FormBuilderField';
5
10
 
6
11
  export function ObjectField({ field, control, fieldPath }: FieldRenderProps) {
7
- if (!field.fields) return null
12
+ if (!field.fields) return null;
8
13
  return (
9
14
  <Card className={cn(field.className)}>
10
15
  <CardHeader className="pb-3">
@@ -15,7 +20,7 @@ export function ObjectField({ field, control, fieldPath }: FieldRenderProps) {
15
20
  </CardHeader>
16
21
  <CardContent className="space-y-4">
17
22
  <div className="grid gap-4 md:grid-cols-2">
18
- {field.fields.map(subField => (
23
+ {field.fields.map((subField) => (
19
24
  <FormBuilderField
20
25
  key={subField.name}
21
26
  field={subField}
@@ -26,5 +31,5 @@ export function ObjectField({ field, control, fieldPath }: FieldRenderProps) {
26
31
  </div>
27
32
  </CardContent>
28
33
  </Card>
29
- )
34
+ );
30
35
  }
@@ -1,15 +1,25 @@
1
- import { RadioGroup, RadioGroupItem } from '../../../../../shadcn/ui/radio-group'
2
- import { Label } from '../../../../../shadcn/ui/label'
3
- import type { FieldRenderProps } from './types'
1
+ import {
2
+ RadioGroup,
3
+ RadioGroupItem,
4
+ } from '../../../../../shadcn/ui/radio-group';
5
+ import { Label } from '../../../../../shadcn/ui/label';
6
+ import type { FieldRenderProps } from './types';
4
7
 
5
- const NULL_SENTINEL = '__NULL__'
8
+ const NULL_SENTINEL = '__NULL__';
6
9
 
7
- export function RadioField({ field, value, onChange, className, fieldPath }: FieldRenderProps) {
8
- const toUiValue = (val: unknown) => (val === null || val === undefined ? NULL_SENTINEL : String(val))
10
+ export function RadioField({
11
+ field,
12
+ value,
13
+ onChange,
14
+ className,
15
+ fieldPath,
16
+ }: FieldRenderProps) {
17
+ const toUiValue = (val: unknown) =>
18
+ val === null || val === undefined ? NULL_SENTINEL : String(val);
9
19
  const fromUiValue = (val: string) => {
10
- const match = field.options?.find(opt => toUiValue(opt.value) === val)
11
- return match ? match.value : null
12
- }
20
+ const match = field.options?.find((opt) => toUiValue(opt.value) === val);
21
+ return match ? match.value : null;
22
+ };
13
23
 
14
24
  return (
15
25
  <RadioGroup
@@ -18,12 +28,20 @@ export function RadioField({ field, value, onChange, className, fieldPath }: Fie
18
28
  disabled={field.disabled}
19
29
  className={className}
20
30
  >
21
- {field.options?.map(option => (
22
- <div key={toUiValue(option.value)} className="flex items-center space-x-2">
23
- <RadioGroupItem value={toUiValue(option.value)} id={`${fieldPath}-${toUiValue(option.value)}`} />
24
- <Label htmlFor={`${fieldPath}-${toUiValue(option.value)}`}>{option.label}</Label>
31
+ {field.options?.map((option) => (
32
+ <div
33
+ key={toUiValue(option.value)}
34
+ className="flex items-center space-x-2"
35
+ >
36
+ <RadioGroupItem
37
+ value={toUiValue(option.value)}
38
+ id={`${fieldPath}-${toUiValue(option.value)}`}
39
+ />
40
+ <Label htmlFor={`${fieldPath}-${toUiValue(option.value)}`}>
41
+ {option.label}
42
+ </Label>
25
43
  </div>
26
44
  ))}
27
45
  </RadioGroup>
28
- )
46
+ );
29
47
  }
@@ -1,14 +1,26 @@
1
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../../shadcn/ui/select'
2
- import type { FieldRenderProps } from './types'
1
+ import {
2
+ Select,
3
+ SelectContent,
4
+ SelectItem,
5
+ SelectTrigger,
6
+ SelectValue,
7
+ } from '../../../../../shadcn/ui/select';
8
+ import type { FieldRenderProps } from './types';
3
9
 
4
- const NULL_SENTINEL = '__NULL__'
10
+ const NULL_SENTINEL = '__NULL__';
5
11
 
6
- export function SelectField({ field, value, onChange, className }: FieldRenderProps) {
7
- const toUiValue = (val: unknown) => (val === null || val === undefined ? NULL_SENTINEL : String(val))
12
+ export function SelectField({
13
+ field,
14
+ value,
15
+ onChange,
16
+ className,
17
+ }: FieldRenderProps) {
18
+ const toUiValue = (val: unknown) =>
19
+ val === null || val === undefined ? NULL_SENTINEL : String(val);
8
20
  const fromUiValue = (val: string) => {
9
- const match = field.options?.find(opt => toUiValue(opt.value) === val)
10
- return match ? match.value : null
11
- }
21
+ const match = field.options?.find((opt) => toUiValue(opt.value) === val);
22
+ return match ? match.value : null;
23
+ };
12
24
 
13
25
  return (
14
26
  <Select
@@ -20,12 +32,15 @@ export function SelectField({ field, value, onChange, className }: FieldRenderPr
20
32
  <SelectValue placeholder={field.placeholder} />
21
33
  </SelectTrigger>
22
34
  <SelectContent>
23
- {field.options?.map(option => (
24
- <SelectItem key={toUiValue(option.value)} value={toUiValue(option.value)}>
35
+ {field.options?.map((option) => (
36
+ <SelectItem
37
+ key={toUiValue(option.value)}
38
+ value={toUiValue(option.value)}
39
+ >
25
40
  {option.label}
26
41
  </SelectItem>
27
42
  ))}
28
43
  </SelectContent>
29
44
  </Select>
30
- )
45
+ );
31
46
  }
@@ -1,13 +1,19 @@
1
- import { Switch } from '../../../../../shadcn/ui/switch'
2
- import { Label } from '../../../../../shadcn/ui/label'
3
- import { cn } from '../../../../../shadcn/lib/utils'
4
- import type { FieldRenderProps } from './types'
1
+ import { Switch } from '../../../../../shadcn/ui/switch';
2
+ import { Label } from '../../../../../shadcn/ui/label';
3
+ import { cn } from '../../../../../shadcn/lib/utils';
4
+ import type { FieldRenderProps } from './types';
5
5
 
6
- export function SwitchField({ field, fieldPath, value, onChange, className }: FieldRenderProps) {
7
- const placement = field.labelPlacement ?? 'inline'
6
+ export function SwitchField({
7
+ field,
8
+ fieldPath,
9
+ value,
10
+ onChange,
11
+ className,
12
+ }: FieldRenderProps) {
13
+ const placement = field.labelPlacement ?? 'inline';
8
14
 
9
15
  if (placement === 'stacked') {
10
- const labelId = `${fieldPath}-label`
16
+ const labelId = `${fieldPath}-label`;
11
17
  return (
12
18
  <div className="space-y-2">
13
19
  <Label id={labelId} className="text-sm font-medium">
@@ -23,7 +29,7 @@ export function SwitchField({ field, fieldPath, value, onChange, className }: Fi
23
29
  className={cn(className)}
24
30
  />
25
31
  </div>
26
- )
32
+ );
27
33
  }
28
34
 
29
35
  if (placement === 'hidden') {
@@ -35,7 +41,7 @@ export function SwitchField({ field, fieldPath, value, onChange, className }: Fi
35
41
  disabled={field.disabled}
36
42
  className={cn(className)}
37
43
  />
38
- )
44
+ );
39
45
  }
40
46
 
41
47
  return (
@@ -47,10 +53,13 @@ export function SwitchField({ field, fieldPath, value, onChange, className }: Fi
47
53
  disabled={field.disabled}
48
54
  className={cn(className)}
49
55
  />
50
- <Label htmlFor={fieldPath} className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70">
56
+ <Label
57
+ htmlFor={fieldPath}
58
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
59
+ >
51
60
  {field.label}
52
61
  {field.required && <span className="text-destructive ml-1">*</span>}
53
62
  </Label>
54
63
  </div>
55
- )
64
+ );
56
65
  }
@@ -1,9 +1,15 @@
1
- import { Input } from '../../../../../shadcn/ui/input'
2
- import type { FieldRenderProps } from './types'
1
+ import { Input } from '../../../../../shadcn/ui/input';
2
+ import type { FieldRenderProps } from './types';
3
3
 
4
- export function TextField({ field, fieldPath, value, onChange, className }: FieldRenderProps) {
4
+ export function TextField({
5
+ field,
6
+ fieldPath,
7
+ value,
8
+ onChange,
9
+ className,
10
+ }: FieldRenderProps) {
5
11
  const type: 'text' | 'email' | 'password' =
6
- field.type === 'email' || field.type === 'password' ? field.type : 'text'
12
+ field.type === 'email' || field.type === 'password' ? field.type : 'text';
7
13
  return (
8
14
  <Input
9
15
  id={fieldPath}
@@ -14,5 +20,5 @@ export function TextField({ field, fieldPath, value, onChange, className }: Fiel
14
20
  value={(value as string) || ''}
15
21
  onChange={(e) => onChange(e.target.value)}
16
22
  />
17
- )
23
+ );
18
24
  }
@@ -1,7 +1,12 @@
1
- import { Textarea } from '../../../../../shadcn/ui/textarea'
2
- import type { FieldRenderProps } from './types'
1
+ import { Textarea } from '../../../../../shadcn/ui/textarea';
2
+ import type { FieldRenderProps } from './types';
3
3
 
4
- export function TextareaField({ field, value, onChange, className }: FieldRenderProps) {
4
+ export function TextareaField({
5
+ field,
6
+ value,
7
+ onChange,
8
+ className,
9
+ }: FieldRenderProps) {
5
10
  return (
6
11
  <Textarea
7
12
  className={className}
@@ -11,5 +16,5 @@ export function TextareaField({ field, value, onChange, className }: FieldRender
11
16
  onChange={(e) => onChange(e.target.value)}
12
17
  rows={4}
13
18
  />
14
- )
19
+ );
15
20
  }
@@ -1,14 +1,19 @@
1
- import * as React from 'react'
2
- import type { FieldRenderProps } from './types'
3
- import { TimePicker } from '../../../../components/timepicker/TimePicker'
1
+ import * as React from 'react';
2
+ import type { FieldRenderProps } from './types';
3
+ import { TimePicker } from '../../../../components/timepicker/TimePicker';
4
4
 
5
- export function TimePickerField({ field, value, onChange, className }: FieldRenderProps) {
5
+ export function TimePickerField({
6
+ field,
7
+ value,
8
+ onChange,
9
+ className,
10
+ }: FieldRenderProps) {
6
11
  const v = React.useMemo(() => {
7
- if (!value) return null
8
- if (value instanceof Date) return value
9
- const d = new Date(value as string)
10
- return Number.isNaN(d.getTime()) ? null : d
11
- }, [value])
12
+ if (!value) return null;
13
+ if (value instanceof Date) return value;
14
+ const d = new Date(value as string);
15
+ return Number.isNaN(d.getTime()) ? null : d;
16
+ }, [value]);
12
17
 
13
18
  return (
14
19
  <TimePicker
@@ -24,7 +29,7 @@ export function TimePickerField({ field, value, onChange, className }: FieldRend
24
29
  cancelLabel={field.cancelLabel}
25
30
  applyLabel={field.applyLabel}
26
31
  />
27
- )
32
+ );
28
33
  }
29
34
 
30
- export default TimePickerField
35
+ export default TimePickerField;
@@ -1,21 +1,27 @@
1
- import * as React from 'react'
2
- import type { FieldRenderProps } from './types'
3
- import { TimeRangePicker } from '../../../../components/timepicker/TimeRangePicker'
1
+ import * as React from 'react';
2
+ import type { FieldRenderProps } from './types';
3
+ import { TimeRangePicker } from '../../../../components/timepicker/TimeRangePicker';
4
4
 
5
- export function TimeRangePickerField({ field, value, onChange, className }: FieldRenderProps) {
5
+ export function TimeRangePickerField({
6
+ field,
7
+ value,
8
+ onChange,
9
+ className,
10
+ }: FieldRenderProps) {
6
11
  const v = React.useMemo(() => {
7
- if (!value || typeof value !== 'object') return null as { from?: Date | null; to?: Date | null } | null
8
- const anyVal = value as { from?: unknown; to?: unknown }
12
+ if (!value || typeof value !== 'object')
13
+ return null as { from?: Date | null; to?: Date | null } | null;
14
+ const anyVal = value as { from?: unknown; to?: unknown };
9
15
  const toDate = (x: unknown) => {
10
- if (!x) return undefined
11
- if (x instanceof Date) return x
12
- const d = new Date(x as string)
13
- return Number.isNaN(d.getTime()) ? undefined : d
14
- }
15
- const from = toDate(anyVal.from) ?? null
16
- const to = toDate(anyVal.to) ?? null
17
- return { from, to }
18
- }, [value])
16
+ if (!x) return undefined;
17
+ if (x instanceof Date) return x;
18
+ const d = new Date(x as string);
19
+ return Number.isNaN(d.getTime()) ? undefined : d;
20
+ };
21
+ const from = toDate(anyVal.from) ?? null;
22
+ const to = toDate(anyVal.to) ?? null;
23
+ return { from, to };
24
+ }, [value]);
19
25
 
20
26
  return (
21
27
  <TimeRangePicker
@@ -31,7 +37,7 @@ export function TimeRangePickerField({ field, value, onChange, className }: Fiel
31
37
  cancelLabel={field.cancelLabel}
32
38
  applyLabel={field.applyLabel}
33
39
  />
34
- )
40
+ );
35
41
  }
36
42
 
37
- export default TimeRangePickerField
43
+ export default TimeRangePickerField;
@@ -1,21 +1,21 @@
1
- export * from './types'
2
- export * from './AutocompleteField'
3
- export * from './TextField'
4
- export * from './NumberField'
5
- export * from './TextareaField'
6
- export * from './SelectField'
7
- export * from './CheckboxField'
8
- export * from './SwitchField'
9
- export * from './RadioField'
10
- export * from './DateField'
11
- export * from './DatePickerField'
12
- export * from './DateRangePickerField'
13
- export * from './MonthPickerField'
14
- export * from './MonthRangePickerField'
15
- export * from './TimePickerField'
16
- export * from './TimeRangePickerField'
17
- export * from './DateTimePickerField'
18
- export * from './DateTimeRangePickerField'
19
- export * from './FileField'
20
- export * from './ObjectField'
21
- export * from './ArrayField'
1
+ export * from './types';
2
+ export * from './AutocompleteField';
3
+ export * from './TextField';
4
+ export * from './NumberField';
5
+ export * from './TextareaField';
6
+ export * from './SelectField';
7
+ export * from './CheckboxField';
8
+ export * from './SwitchField';
9
+ export * from './RadioField';
10
+ export * from './DateField';
11
+ export * from './DatePickerField';
12
+ export * from './DateRangePickerField';
13
+ export * from './MonthPickerField';
14
+ export * from './MonthRangePickerField';
15
+ export * from './TimePickerField';
16
+ export * from './TimeRangePickerField';
17
+ export * from './DateTimePickerField';
18
+ export * from './DateTimeRangePickerField';
19
+ export * from './FileField';
20
+ export * from './ObjectField';
21
+ export * from './ArrayField';
@@ -1,14 +1,18 @@
1
- import type { Control, FieldValues } from 'react-hook-form'
2
- import type { FormBuilderFieldConfig } from '../../types'
1
+ import type { Control, FieldValues } from 'react-hook-form';
2
+ import type { FormBuilderFieldConfig } from '../../types';
3
3
 
4
4
  export interface FieldRenderProps {
5
- field: FormBuilderFieldConfig<any, any>
6
- control: Control<FieldValues>
7
- fieldPath: string
8
- value: unknown
9
- onChange: (value: unknown, ...extras: unknown[]) => void
10
- className?: string
11
- disabled?: boolean
12
- errorMessage?: string
13
- onFieldChange?: (name: string, value: unknown, allValues: Record<string, unknown>) => void
5
+ field: FormBuilderFieldConfig<any, any>;
6
+ control: Control<FieldValues>;
7
+ fieldPath: string;
8
+ value: unknown;
9
+ onChange: (value: unknown, ...extras: unknown[]) => void;
10
+ className?: string;
11
+ disabled?: boolean;
12
+ errorMessage?: string;
13
+ onFieldChange?: (
14
+ name: string,
15
+ value: unknown,
16
+ allValues: Record<string, unknown>,
17
+ ) => void;
14
18
  }