@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,7 +1,14 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { FormBuilder } from '../../../kit/builder/form/components/FormBuilder';
3
3
  import type { FormBuilderSectionConfig } from '../../../kit/builder/form/components/FormBuilder';
4
- import { createSection, createField, commonValidations, createDependency, conditions, validators } from '../../../kit/builder/form/utils';
4
+ import {
5
+ createSection,
6
+ createField,
7
+ commonValidations,
8
+ createDependency,
9
+ conditions,
10
+ validators,
11
+ } from '../../../kit/builder/form/utils';
5
12
 
6
13
  const meta: Meta<typeof FormBuilder> = {
7
14
  title: 'Kit/Builder/Form',
@@ -19,21 +26,33 @@ type Story = StoryObj<typeof FormBuilder>;
19
26
  export const ComplexExample: Story = {
20
27
  name: 'Complex example',
21
28
  render: () => {
22
-
23
29
  const handleSubmit = (data: unknown) => {
24
30
  console.log('Complex form submitted:', data);
25
31
  };
26
32
 
27
- const handleFieldChange = (name: string, value: unknown, allValues: Record<string, unknown>) => {
33
+ const handleFieldChange = (
34
+ name: string,
35
+ value: unknown,
36
+ allValues: Record<string, unknown>,
37
+ ) => {
28
38
  console.log(`Field ${name} changed to:`, value);
29
39
  console.log('All form values:', allValues);
30
40
  };
31
41
 
32
42
  const sections = [
33
43
  createSection.card('Personal Information', [
34
- createField.text('firstName', 'First Name', { required: true, placeholder: 'Enter first name' }),
35
- createField.text('lastName', 'Last Name', { required: true, placeholder: 'Enter last name' }),
36
- createField.email('email', 'Email Address', { required: true, placeholder: 'Enter email address' }),
44
+ createField.text('firstName', 'First Name', {
45
+ required: true,
46
+ placeholder: 'Enter first name',
47
+ }),
48
+ createField.text('lastName', 'Last Name', {
49
+ required: true,
50
+ placeholder: 'Enter last name',
51
+ }),
52
+ createField.email('email', 'Email Address', {
53
+ required: true,
54
+ placeholder: 'Enter email address',
55
+ }),
37
56
  createField.date('dateOfBirth', 'Date of Birth', { required: true }),
38
57
  createField.select(
39
58
  'gender',
@@ -49,46 +68,88 @@ export const ComplexExample: Story = {
49
68
  ]),
50
69
 
51
70
  createSection.card('Address Information', [
52
- createField.object('address', 'Primary Address', [
53
- createField.text('street', 'Street Address', { required: true, placeholder: '123 Main St', gridCols: 2 }),
54
- createField.text('city', 'City', { required: true, placeholder: 'New York' }),
55
- createField.text('state', 'State/Province', { required: true, placeholder: 'NY' }),
56
- createField.text('postalCode', 'Postal Code', { required: true, placeholder: '10001' }),
57
- createField.select(
58
- 'country',
59
- 'Country',
60
- [
61
- { label: 'United States', value: 'US' },
62
- { label: 'Canada', value: 'CA' },
63
- { label: 'United Kingdom', value: 'UK' },
64
- { label: 'Australia', value: 'AU' },
65
- ],
66
- { required: true, defaultValue: 'US' },
67
- ),
68
- ], { gridCols: 2 }),
71
+ createField.object(
72
+ 'address',
73
+ 'Primary Address',
74
+ [
75
+ createField.text('street', 'Street Address', {
76
+ required: true,
77
+ placeholder: '123 Main St',
78
+ gridCols: 2,
79
+ }),
80
+ createField.text('city', 'City', {
81
+ required: true,
82
+ placeholder: 'New York',
83
+ }),
84
+ createField.text('state', 'State/Province', {
85
+ required: true,
86
+ placeholder: 'NY',
87
+ }),
88
+ createField.text('postalCode', 'Postal Code', {
89
+ required: true,
90
+ placeholder: '10001',
91
+ }),
92
+ createField.select(
93
+ 'country',
94
+ 'Country',
95
+ [
96
+ { label: 'United States', value: 'US' },
97
+ { label: 'Canada', value: 'CA' },
98
+ { label: 'United Kingdom', value: 'UK' },
99
+ { label: 'Australia', value: 'AU' },
100
+ ],
101
+ { required: true, defaultValue: 'US' },
102
+ ),
103
+ ],
104
+ { gridCols: 2 },
105
+ ),
69
106
 
70
- createField.checkbox('sameAsShipping', 'Billing address same as shipping', { defaultValue: true, gridCols: 2 }),
107
+ createField.checkbox(
108
+ 'sameAsShipping',
109
+ 'Billing address same as shipping',
110
+ { defaultValue: true, gridCols: 2 },
111
+ ),
71
112
 
72
- createField.object('billingAddress', 'Billing Address', [
73
- createField.text('street', 'Street Address', { required: true, placeholder: '123 Main St', gridCols: 2 }),
74
- createField.text('city', 'City', { required: true, placeholder: 'New York' }),
75
- createField.text('state', 'State/Province', { required: true, placeholder: 'NY' }),
76
- createField.text('postalCode', 'Postal Code', { required: true, placeholder: '10001' }),
77
- createField.select(
78
- 'country',
79
- 'Country',
80
- [
81
- { label: 'United States', value: 'US' },
82
- { label: 'Canada', value: 'CA' },
83
- { label: 'United Kingdom', value: 'UK' },
84
- { label: 'Australia', value: 'AU' },
113
+ createField.object(
114
+ 'billingAddress',
115
+ 'Billing Address',
116
+ [
117
+ createField.text('street', 'Street Address', {
118
+ required: true,
119
+ placeholder: '123 Main St',
120
+ gridCols: 2,
121
+ }),
122
+ createField.text('city', 'City', {
123
+ required: true,
124
+ placeholder: 'New York',
125
+ }),
126
+ createField.text('state', 'State/Province', {
127
+ required: true,
128
+ placeholder: 'NY',
129
+ }),
130
+ createField.text('postalCode', 'Postal Code', {
131
+ required: true,
132
+ placeholder: '10001',
133
+ }),
134
+ createField.select(
135
+ 'country',
136
+ 'Country',
137
+ [
138
+ { label: 'United States', value: 'US' },
139
+ { label: 'Canada', value: 'CA' },
140
+ { label: 'United Kingdom', value: 'UK' },
141
+ { label: 'Australia', value: 'AU' },
142
+ ],
143
+ { required: true, defaultValue: 'US' },
144
+ ),
145
+ ],
146
+ {
147
+ gridCols: 2,
148
+ dependencies: [
149
+ createDependency.showWhen('sameAsShipping', conditions.isFalse()),
85
150
  ],
86
- { required: true, defaultValue: 'US' },
87
- ),
88
- ], {
89
- gridCols: 2,
90
- dependencies: [createDependency.showWhen('sameAsShipping', conditions.isFalse())],
91
- }),
151
+ },
152
+ ),
92
153
  ]),
93
154
 
94
155
  createSection.card('Employment Information', [
@@ -108,42 +169,74 @@ export const ComplexExample: Story = {
108
169
  createField.text('company', 'Company Name', {
109
170
  required: true,
110
171
  placeholder: 'Enter company name',
111
- dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('employed'))],
172
+ dependencies: [
173
+ createDependency.showWhen(
174
+ 'employmentStatus',
175
+ conditions.equals('employed'),
176
+ ),
177
+ ],
112
178
  }),
113
179
 
114
180
  createField.text('jobTitle', 'Job Title', {
115
181
  required: true,
116
182
  placeholder: 'Enter job title',
117
- dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('employed'))],
183
+ dependencies: [
184
+ createDependency.showWhen(
185
+ 'employmentStatus',
186
+ conditions.equals('employed'),
187
+ ),
188
+ ],
118
189
  }),
119
190
 
120
191
  createField.text('businessName', 'Business Name', {
121
192
  required: true,
122
193
  placeholder: 'Enter business name',
123
- dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('self_employed'))],
194
+ dependencies: [
195
+ createDependency.showWhen(
196
+ 'employmentStatus',
197
+ conditions.equals('self_employed'),
198
+ ),
199
+ ],
124
200
  }),
125
201
 
126
202
  createField.text('businessType', 'Type of Business', {
127
203
  placeholder: 'e.g., Consulting, Retail, etc.',
128
- dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('self_employed'))],
204
+ dependencies: [
205
+ createDependency.showWhen(
206
+ 'employmentStatus',
207
+ conditions.equals('self_employed'),
208
+ ),
209
+ ],
129
210
  }),
130
211
 
131
212
  createField.text('school', 'School/University', {
132
213
  required: true,
133
214
  placeholder: 'Enter school name',
134
- dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('student'))],
215
+ dependencies: [
216
+ createDependency.showWhen(
217
+ 'employmentStatus',
218
+ conditions.equals('student'),
219
+ ),
220
+ ],
135
221
  }),
136
222
 
137
223
  createField.text('major', 'Major/Field of Study', {
138
224
  placeholder: 'Enter your major',
139
- dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('student'))],
225
+ dependencies: [
226
+ createDependency.showWhen(
227
+ 'employmentStatus',
228
+ conditions.equals('student'),
229
+ ),
230
+ ],
140
231
  }),
141
232
 
142
233
  createField.number('annualIncome', 'Annual Income', {
143
234
  placeholder: '50000',
144
235
  validation: validators.minItems(0, 'Income must be positive'),
145
236
  dependencies: [
146
- createDependency.showWhen('employmentStatus', value => ['employed', 'self_employed'].includes(value)),
237
+ createDependency.showWhen('employmentStatus', (value) =>
238
+ ['employed', 'self_employed'].includes(value),
239
+ ),
147
240
  ],
148
241
  }),
149
242
  ]),
@@ -153,7 +246,10 @@ export const ComplexExample: Story = {
153
246
  'skills',
154
247
  'Skills',
155
248
  [
156
- createField.text('name', 'Skill Name', { required: true, placeholder: 'e.g., JavaScript, Project Management' }),
249
+ createField.text('name', 'Skill Name', {
250
+ required: true,
251
+ placeholder: 'e.g., JavaScript, Project Management',
252
+ }),
157
253
  createField.select(
158
254
  'level',
159
255
  'Proficiency Level',
@@ -170,21 +266,43 @@ export const ComplexExample: Story = {
170
266
  validation: validators.minItems(0, 'Years must be positive'),
171
267
  }),
172
268
  ],
173
- { gridCols: 2, defaultValue: [{ name: '', level: '', yearsOfExperience: 0 }] },
269
+ {
270
+ gridCols: 2,
271
+ defaultValue: [{ name: '', level: '', yearsOfExperience: 0 }],
272
+ },
174
273
  ),
175
274
  ]),
176
275
 
177
276
  createSection.card('Professional References', [
178
- createField.checkbox('hasReferences', 'I have professional references', { defaultValue: false, gridCols: 2 }),
277
+ createField.checkbox(
278
+ 'hasReferences',
279
+ 'I have professional references',
280
+ { defaultValue: false, gridCols: 2 },
281
+ ),
179
282
  createField.array(
180
283
  'references',
181
284
  'References',
182
285
  [
183
- createField.text('name', 'Full Name', { required: true, placeholder: 'John Doe' }),
184
- createField.text('title', 'Job Title', { required: true, placeholder: 'Senior Manager' }),
185
- createField.text('company', 'Company', { required: true, placeholder: 'ABC Corporation' }),
186
- createField.email('email', 'Email', { required: true, placeholder: 'john.doe@company.com' }),
187
- createField.text('phone', 'Phone', { validation: commonValidations.phone, placeholder: '+1 (555) 123-4567' }),
286
+ createField.text('name', 'Full Name', {
287
+ required: true,
288
+ placeholder: 'John Doe',
289
+ }),
290
+ createField.text('title', 'Job Title', {
291
+ required: true,
292
+ placeholder: 'Senior Manager',
293
+ }),
294
+ createField.text('company', 'Company', {
295
+ required: true,
296
+ placeholder: 'ABC Corporation',
297
+ }),
298
+ createField.email('email', 'Email', {
299
+ required: true,
300
+ placeholder: 'john.doe@company.com',
301
+ }),
302
+ createField.text('phone', 'Phone', {
303
+ validation: commonValidations.phone,
304
+ placeholder: '+1 (555) 123-4567',
305
+ }),
188
306
  createField.select(
189
307
  'relationship',
190
308
  'Relationship',
@@ -197,30 +315,55 @@ export const ComplexExample: Story = {
197
315
  { required: true, placeholder: 'Select relationship' },
198
316
  ),
199
317
  ],
200
- { gridCols: 2, defaultValue: [], dependencies: [createDependency.showWhen('hasReferences', conditions.isTrue())] },
318
+ {
319
+ gridCols: 2,
320
+ defaultValue: [],
321
+ dependencies: [
322
+ createDependency.showWhen('hasReferences', conditions.isTrue()),
323
+ ],
324
+ },
201
325
  ),
202
326
  ]),
203
327
 
204
328
  createSection.card('Additional Information', [
205
- createField.textarea('additionalInfo', 'Additional Comments', { placeholder: "Any additional information you'd like to share...", gridCols: 2 }),
206
- createField.checkbox('agreeToTerms', 'I agree to the terms and conditions', { required: true, gridCols: 2 }),
207
- createField.checkbox('allowMarketing', 'I agree to receive marketing communications', { defaultValue: false, gridCols: 2 }),
329
+ createField.textarea('additionalInfo', 'Additional Comments', {
330
+ placeholder: "Any additional information you'd like to share...",
331
+ gridCols: 2,
332
+ }),
333
+ createField.checkbox(
334
+ 'agreeToTerms',
335
+ 'I agree to the terms and conditions',
336
+ { required: true, gridCols: 2 },
337
+ ),
338
+ createField.checkbox(
339
+ 'allowMarketing',
340
+ 'I agree to receive marketing communications',
341
+ { defaultValue: false, gridCols: 2 },
342
+ ),
208
343
  ]),
209
344
  ];
210
345
 
211
346
  return (
212
347
  <div className="max-w-4xl mx-auto p-6">
213
348
  <div className="mb-8">
214
- <h1 className="text-3xl font-bold text-gray-900">Professional Profile</h1>
349
+ <h1 className="text-3xl font-bold text-gray-900">
350
+ Professional Profile
351
+ </h1>
215
352
  <p className="text-gray-600 mt-2">
216
- Complete your professional profile with detailed information. This form demonstrates complex nested structures and field dependencies.
353
+ Complete your professional profile with detailed information. This
354
+ form demonstrates complex nested structures and field dependencies.
217
355
  </p>
218
356
  </div>
219
357
 
220
- <FormBuilder sections={sections} onSubmit={handleSubmit} onFieldChange={handleFieldChange} className="space-y-8" />
358
+ <FormBuilder
359
+ sections={sections}
360
+ onSubmit={handleSubmit}
361
+ onFieldChange={handleFieldChange}
362
+ className="space-y-8"
363
+ />
221
364
  </div>
222
365
  );
223
- }
366
+ },
224
367
  };
225
368
 
226
369
  export const ComplexTabsExample: Story = {
@@ -230,7 +373,11 @@ export const ComplexTabsExample: Story = {
230
373
  console.log('Complex tabs form submitted:', data);
231
374
  };
232
375
 
233
- const handleFieldChange = (name: string, value: unknown, allValues: Record<string, unknown>) => {
376
+ const handleFieldChange = (
377
+ name: string,
378
+ value: unknown,
379
+ allValues: Record<string, unknown>,
380
+ ) => {
234
381
  console.log(`[Tabs] Field ${name} changed to:`, value);
235
382
  console.log('[Tabs] All form values:', allValues);
236
383
  };
@@ -248,12 +395,22 @@ export const ComplexTabsExample: Story = {
248
395
  id: 'basic',
249
396
  label: 'Basic Info',
250
397
  sections: [
251
- createSection.card('Basic Information', [
252
- createField.text('firstName', 'First Name', { required: true }),
253
- createField.text('lastName', 'Last Name', { required: true }),
254
- createField.email('email', 'Email Address', { required: true }),
255
- createField.date('dateOfBirth', 'Date of Birth', { required: true }),
256
- ], { grid: { cols: 1, mdCols: 2, gap: 'gap-4' } }),
398
+ createSection.card(
399
+ 'Basic Information',
400
+ [
401
+ createField.text('firstName', 'First Name', {
402
+ required: true,
403
+ }),
404
+ createField.text('lastName', 'Last Name', { required: true }),
405
+ createField.email('email', 'Email Address', {
406
+ required: true,
407
+ }),
408
+ createField.date('dateOfBirth', 'Date of Birth', {
409
+ required: true,
410
+ }),
411
+ ],
412
+ { grid: { cols: 1, mdCols: 2, gap: 'gap-4' } },
413
+ ),
257
414
  ],
258
415
  },
259
416
  {
@@ -261,31 +418,77 @@ export const ComplexTabsExample: Story = {
261
418
  label: 'Addresses',
262
419
  sections: [
263
420
  createSection.card('Address Information', [
264
- createField.object('address', 'Primary Address', [
265
- createField.text('street', 'Street Address', { required: true, gridCols: 2 }),
266
- createField.text('city', 'City', { required: true }),
267
- createField.text('state', 'State/Province', { required: true }),
268
- createField.text('postalCode', 'Postal Code', { required: true }),
269
- createField.select('country', 'Country', [
270
- { label: 'United States', value: 'US' },
271
- { label: 'Canada', value: 'CA' },
272
- { label: 'United Kingdom', value: 'UK' },
273
- { label: 'Australia', value: 'AU' },
274
- ], { required: true, defaultValue: 'US' }),
275
- ], { gridCols: 2 }),
276
- createField.checkbox('sameAsShipping', 'Billing same as shipping', { defaultValue: true, gridCols: 2 }),
277
- createField.object('billingAddress', 'Billing Address', [
278
- createField.text('street', 'Street Address', { required: true, gridCols: 2 }),
279
- createField.text('city', 'City', { required: true }),
280
- createField.text('state', 'State/Province', { required: true }),
281
- createField.text('postalCode', 'Postal Code', { required: true }),
282
- createField.select('country', 'Country', [
283
- { label: 'United States', value: 'US' },
284
- { label: 'Canada', value: 'CA' },
285
- { label: 'United Kingdom', value: 'UK' },
286
- { label: 'Australia', value: 'AU' },
287
- ], { required: true, defaultValue: 'US' }),
288
- ], { gridCols: 2, dependencies: [createDependency.showWhen('sameAsShipping', conditions.isFalse())] }),
421
+ createField.object(
422
+ 'address',
423
+ 'Primary Address',
424
+ [
425
+ createField.text('street', 'Street Address', {
426
+ required: true,
427
+ gridCols: 2,
428
+ }),
429
+ createField.text('city', 'City', { required: true }),
430
+ createField.text('state', 'State/Province', {
431
+ required: true,
432
+ }),
433
+ createField.text('postalCode', 'Postal Code', {
434
+ required: true,
435
+ }),
436
+ createField.select(
437
+ 'country',
438
+ 'Country',
439
+ [
440
+ { label: 'United States', value: 'US' },
441
+ { label: 'Canada', value: 'CA' },
442
+ { label: 'United Kingdom', value: 'UK' },
443
+ { label: 'Australia', value: 'AU' },
444
+ ],
445
+ { required: true, defaultValue: 'US' },
446
+ ),
447
+ ],
448
+ { gridCols: 2 },
449
+ ),
450
+ createField.checkbox(
451
+ 'sameAsShipping',
452
+ 'Billing same as shipping',
453
+ { defaultValue: true, gridCols: 2 },
454
+ ),
455
+ createField.object(
456
+ 'billingAddress',
457
+ 'Billing Address',
458
+ [
459
+ createField.text('street', 'Street Address', {
460
+ required: true,
461
+ gridCols: 2,
462
+ }),
463
+ createField.text('city', 'City', { required: true }),
464
+ createField.text('state', 'State/Province', {
465
+ required: true,
466
+ }),
467
+ createField.text('postalCode', 'Postal Code', {
468
+ required: true,
469
+ }),
470
+ createField.select(
471
+ 'country',
472
+ 'Country',
473
+ [
474
+ { label: 'United States', value: 'US' },
475
+ { label: 'Canada', value: 'CA' },
476
+ { label: 'United Kingdom', value: 'UK' },
477
+ { label: 'Australia', value: 'AU' },
478
+ ],
479
+ { required: true, defaultValue: 'US' },
480
+ ),
481
+ ],
482
+ {
483
+ gridCols: 2,
484
+ dependencies: [
485
+ createDependency.showWhen(
486
+ 'sameAsShipping',
487
+ conditions.isFalse(),
488
+ ),
489
+ ],
490
+ },
491
+ ),
289
492
  ]),
290
493
  ],
291
494
  },
@@ -294,16 +497,49 @@ export const ComplexTabsExample: Story = {
294
497
  label: 'Employment',
295
498
  sections: [
296
499
  createSection.card('Employment Information', [
297
- createField.select('employmentStatus', 'Employment Status', [
298
- { label: 'Employed', value: 'employed' },
299
- { label: 'Self-employed', value: 'self_employed' },
300
- { label: 'Unemployed', value: 'unemployed' },
301
- { label: 'Student', value: 'student' },
302
- ], { required: true }),
303
- createField.text('company', 'Company Name', { dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('employed'))] }),
304
- createField.text('jobTitle', 'Job Title', { dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('employed'))] }),
305
- createField.text('businessName', 'Business Name', { dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('self_employed'))] }),
306
- createField.text('school', 'School/University', { dependencies: [createDependency.showWhen('employmentStatus', conditions.equals('student'))] }),
500
+ createField.select(
501
+ 'employmentStatus',
502
+ 'Employment Status',
503
+ [
504
+ { label: 'Employed', value: 'employed' },
505
+ { label: 'Self-employed', value: 'self_employed' },
506
+ { label: 'Unemployed', value: 'unemployed' },
507
+ { label: 'Student', value: 'student' },
508
+ ],
509
+ { required: true },
510
+ ),
511
+ createField.text('company', 'Company Name', {
512
+ dependencies: [
513
+ createDependency.showWhen(
514
+ 'employmentStatus',
515
+ conditions.equals('employed'),
516
+ ),
517
+ ],
518
+ }),
519
+ createField.text('jobTitle', 'Job Title', {
520
+ dependencies: [
521
+ createDependency.showWhen(
522
+ 'employmentStatus',
523
+ conditions.equals('employed'),
524
+ ),
525
+ ],
526
+ }),
527
+ createField.text('businessName', 'Business Name', {
528
+ dependencies: [
529
+ createDependency.showWhen(
530
+ 'employmentStatus',
531
+ conditions.equals('self_employed'),
532
+ ),
533
+ ],
534
+ }),
535
+ createField.text('school', 'School/University', {
536
+ dependencies: [
537
+ createDependency.showWhen(
538
+ 'employmentStatus',
539
+ conditions.equals('student'),
540
+ ),
541
+ ],
542
+ }),
307
543
  ]),
308
544
  ],
309
545
  },
@@ -314,10 +550,19 @@ export const ComplexTabsExample: Story = {
314
550
  return (
315
551
  <div className="max-w-4xl mx-auto p-6">
316
552
  <div className="mb-8">
317
- <h1 className="text-3xl font-bold text-gray-900">Professional Profile (Tabs)</h1>
318
- <p className="text-gray-600 mt-2">This story shows how to organize complex forms into tabs.</p>
553
+ <h1 className="text-3xl font-bold text-gray-900">
554
+ Professional Profile (Tabs)
555
+ </h1>
556
+ <p className="text-gray-600 mt-2">
557
+ This story shows how to organize complex forms into tabs.
558
+ </p>
319
559
  </div>
320
- <FormBuilder sections={sections} onSubmit={handleSubmit} onFieldChange={handleFieldChange} className="space-y-8" />
560
+ <FormBuilder
561
+ sections={sections}
562
+ onSubmit={handleSubmit}
563
+ onFieldChange={handleFieldChange}
564
+ className="space-y-8"
565
+ />
321
566
  </div>
322
567
  );
323
568
  },
@@ -1,5 +1,8 @@
1
- import type { Meta, StoryObj } from '@storybook/react'
2
- import { FormBuilder, type FormBuilderProps } from '../../../kit/builder/form/components/FormBuilder'
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import {
3
+ FormBuilder,
4
+ type FormBuilderProps,
5
+ } from '../../../kit/builder/form/components/FormBuilder';
3
6
 
4
7
  const meta: Meta<typeof FormBuilder> = {
5
8
  title: 'Kit/Builder/Form',
@@ -8,11 +11,11 @@ const meta: Meta<typeof FormBuilder> = {
8
11
  controls: { expanded: true },
9
12
  backgrounds: { disable: true },
10
13
  },
11
- }
14
+ };
12
15
 
13
- export default meta
16
+ export default meta;
14
17
 
15
- type Story = StoryObj<typeof FormBuilder>
18
+ type Story = StoryObj<typeof FormBuilder>;
16
19
 
17
20
  export const DateTimeFields: Story = {
18
21
  name: 'Date/Time fields',
@@ -20,7 +23,8 @@ export const DateTimeFields: Story = {
20
23
  sections: [
21
24
  {
22
25
  title: 'Date & Time',
23
- description: 'Examples of DateTimePicker, DateTimeRangePicker and TimeRangePicker fields',
26
+ description:
27
+ 'Examples of DateTimePicker, DateTimeRangePicker and TimeRangePicker fields',
24
28
  variant: 'card',
25
29
  layout: 'grid',
26
30
  grid: { cols: 1, mdCols: 2, gap: 'gap-4' },
@@ -54,7 +58,7 @@ export const DateTimeFields: Story = {
54
58
  onSubmit: (data: unknown) => {
55
59
  // Showing output in console for demo
56
60
  // eslint-disable-next-line no-console
57
- console.log('Submit (date/time):', data)
61
+ console.log('Submit (date/time):', data);
58
62
  },
59
63
  showActions: true,
60
64
  } satisfies Partial<FormBuilderProps>,
@@ -63,4 +67,4 @@ export const DateTimeFields: Story = {
63
67
  <FormBuilder {...(args as FormBuilderProps)} />
64
68
  </div>
65
69
  ),
66
- }
70
+ };