@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,32 +1,42 @@
1
- import type { Meta, StoryObj } from '@storybook/react'
2
- import { FormBuilder, type FormBuilderProps } from '../../../kit/builder/form/components/FormBuilder'
3
- import type { FileRecord } from '../../../kit/components/fileuploader/types'
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import {
3
+ FormBuilder,
4
+ type FormBuilderProps,
5
+ } from '../../../kit/builder/form/components/FormBuilder';
6
+ import type { FileRecord } from '../../../kit/components/fileuploader/types';
4
7
 
5
8
  // Simple mocked uploader with progress + optional failure
6
- function mockUploader(options?: { minMs?: number; maxMs?: number; failRate?: number }) {
7
- const minMs = options?.minMs ?? 700
8
- const maxMs = options?.maxMs ?? 1600
9
- const failRate = options?.failRate ?? 0.15
10
- return async (file: File, onProgress: (pct: number) => void): Promise<Partial<FileRecord>> => {
11
- const willFail = Math.random() < failRate
12
- const total = Math.floor(Math.random() * (maxMs - minMs + 1)) + minMs
13
- const start = Date.now()
9
+ function mockUploader(options?: {
10
+ minMs?: number;
11
+ maxMs?: number;
12
+ failRate?: number;
13
+ }) {
14
+ const minMs = options?.minMs ?? 700;
15
+ const maxMs = options?.maxMs ?? 1600;
16
+ const failRate = options?.failRate ?? 0.15;
17
+ return async (
18
+ file: File,
19
+ onProgress: (pct: number) => void,
20
+ ): Promise<Partial<FileRecord>> => {
21
+ const willFail = Math.random() < failRate;
22
+ const total = Math.floor(Math.random() * (maxMs - minMs + 1)) + minMs;
23
+ const start = Date.now();
14
24
  return new Promise((resolve, reject) => {
15
25
  const iv = setInterval(() => {
16
- const elapsed = Date.now() - start
17
- const pct = Math.min(100, Math.round((elapsed / total) * 100))
18
- onProgress(pct)
26
+ const elapsed = Date.now() - start;
27
+ const pct = Math.min(100, Math.round((elapsed / total) * 100));
28
+ onProgress(pct);
19
29
  if (pct >= 100) {
20
- clearInterval(iv)
30
+ clearInterval(iv);
21
31
  if (willFail) {
22
- reject(new Error('Simulated upload error'))
32
+ reject(new Error('Simulated upload error'));
23
33
  } else {
24
- resolve({ id: `${file.name}-${Date.now()}` })
34
+ resolve({ id: `${file.name}-${Date.now()}` });
25
35
  }
26
36
  }
27
- }, 150)
28
- })
29
- }
37
+ }, 150);
38
+ });
39
+ };
30
40
  }
31
41
 
32
42
  const meta: Meta<typeof FormBuilder> = {
@@ -36,11 +46,11 @@ const meta: Meta<typeof FormBuilder> = {
36
46
  controls: { expanded: true },
37
47
  backgrounds: { disable: true },
38
48
  },
39
- }
49
+ };
40
50
 
41
- export default meta
51
+ export default meta;
42
52
 
43
- type Story = StoryObj<typeof FormBuilder>
53
+ type Story = StoryObj<typeof FormBuilder>;
44
54
 
45
55
  export const FileUploaderForm: Story = {
46
56
  name: 'File Uploader',
@@ -48,7 +58,8 @@ export const FileUploaderForm: Story = {
48
58
  sections: [
49
59
  {
50
60
  title: 'Attachments',
51
- description: 'Demonstrates the FileUploader field integrated with FormBuilder',
61
+ description:
62
+ 'Demonstrates the FileUploader field integrated with FormBuilder',
52
63
  variant: 'card',
53
64
  layout: 'grid',
54
65
  grid: { cols: 1, mdCols: 2, gap: 'gap-4' },
@@ -113,7 +124,7 @@ export const FileUploaderForm: Story = {
113
124
  docs: [] as FileRecord[],
114
125
  },
115
126
  onSubmit: (data: unknown) => {
116
- console.log('Submit (FileUploader form):', data)
127
+ console.log('Submit (FileUploader form):', data);
117
128
  },
118
129
  showActions: true,
119
130
  } satisfies Partial<FormBuilderProps>,
@@ -122,4 +133,4 @@ export const FileUploaderForm: Story = {
122
133
  <FormBuilder {...(args as FormBuilderProps)} />
123
134
  </div>
124
135
  ),
125
- }
136
+ };
@@ -1,31 +1,31 @@
1
- import { useMemo } from 'react'
2
- import type { Meta, StoryObj } from '@storybook/react'
3
- import { useForm } from 'react-hook-form'
4
- import { FormBuilder } from '../../../index'
5
- import type { FormBuilderSectionConfig } from '../../../kit/builder/form/types'
1
+ import { useMemo } from 'react';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ import { useForm } from 'react-hook-form';
4
+ import { FormBuilder } from '../../../index';
5
+ import type { FormBuilderSectionConfig } from '../../../kit/builder/form/types';
6
6
 
7
7
  interface SplitFormValues {
8
- userId: string
9
- firstName: string
10
- lastName: string
11
- email: string
12
- accountType: 'individual' | 'business'
13
- companyName?: string
8
+ userId: string;
9
+ firstName: string;
10
+ lastName: string;
11
+ email: string;
12
+ accountType: 'individual' | 'business';
13
+ companyName?: string;
14
14
  address: {
15
- street: string
16
- city: string
17
- zip: string
18
- }
19
- marketingOptIn: boolean
20
- preferredContactMethod: 'email' | 'phone'
21
- phoneNumber?: string
22
- newsletterTopics: string[]
23
- complianceContactEmail?: string
24
- eventsWebhookUrl?: string
25
- smsOptIn: boolean
26
- smsFrequency?: 'daily' | 'weekly' | 'monthly'
27
- timezone: string
28
- authorizedContacts: Array<{ contactId: string; contactName: string }>
15
+ street: string;
16
+ city: string;
17
+ zip: string;
18
+ };
19
+ marketingOptIn: boolean;
20
+ preferredContactMethod: 'email' | 'phone';
21
+ phoneNumber?: string;
22
+ newsletterTopics: string[];
23
+ complianceContactEmail?: string;
24
+ eventsWebhookUrl?: string;
25
+ smsOptIn: boolean;
26
+ smsFrequency?: 'daily' | 'weekly' | 'monthly';
27
+ timezone: string;
28
+ authorizedContacts: Array<{ contactId: string; contactName: string }>;
29
29
  }
30
30
 
31
31
  const generalInfoSections: FormBuilderSectionConfig<SplitFormValues>[] = [
@@ -113,7 +113,7 @@ const generalInfoSections: FormBuilderSectionConfig<SplitFormValues>[] = [
113
113
  },
114
114
  ],
115
115
  },
116
- ]
116
+ ];
117
117
 
118
118
  const preferencesSections: FormBuilderSectionConfig<SplitFormValues>[] = [
119
119
  {
@@ -159,11 +159,13 @@ const preferencesSections: FormBuilderSectionConfig<SplitFormValues>[] = [
159
159
  label: 'Events webhook URL',
160
160
  type: 'text',
161
161
  placeholder: 'https://example.com/webhooks/events',
162
- description: 'Provide a webhook to receive notifications about upcoming events.',
162
+ description:
163
+ 'Provide a webhook to receive notifications about upcoming events.',
163
164
  dependencies: [
164
165
  {
165
166
  field: 'newsletterTopics',
166
- condition: (value) => Array.isArray(value) && value.includes('events'),
167
+ condition: (value) =>
168
+ Array.isArray(value) && value.includes('events'),
167
169
  action: 'show',
168
170
  },
169
171
  ],
@@ -228,7 +230,8 @@ const preferencesSections: FormBuilderSectionConfig<SplitFormValues>[] = [
228
230
  label: 'Compliance contact email',
229
231
  type: 'email',
230
232
  placeholder: 'compliance@company.com',
231
- description: 'Required for business accounts to receive compliance updates.',
233
+ description:
234
+ 'Required for business accounts to receive compliance updates.',
232
235
  dependencies: [
233
236
  {
234
237
  field: 'accountType',
@@ -253,7 +256,8 @@ const preferencesSections: FormBuilderSectionConfig<SplitFormValues>[] = [
253
256
  {
254
257
  name: 'authorizedContacts',
255
258
  label: 'Authorized contacts',
256
- description: 'Names remain editable while hidden IDs stay intact for submission.',
259
+ description:
260
+ 'Names remain editable while hidden IDs stay intact for submission.',
257
261
  type: 'array',
258
262
  arrayLayout: 'table',
259
263
  defaultValue: [
@@ -278,7 +282,7 @@ const preferencesSections: FormBuilderSectionConfig<SplitFormValues>[] = [
278
282
  },
279
283
  ],
280
284
  },
281
- ]
285
+ ];
282
286
 
283
287
  const SplitFormExample = () => {
284
288
  const form = useForm<SplitFormValues>({
@@ -309,15 +313,15 @@ const SplitFormExample = () => {
309
313
  ],
310
314
  },
311
315
  mode: 'onSubmit',
312
- })
316
+ });
313
317
 
314
318
  const logSubmit = useMemo(
315
319
  () =>
316
320
  form.handleSubmit((values) => {
317
- console.log('Story submit', values)
321
+ console.log('Story submit', values);
318
322
  }),
319
323
  [form],
320
- )
324
+ );
321
325
 
322
326
  return (
323
327
  <div className="space-y-6">
@@ -336,7 +340,7 @@ const SplitFormExample = () => {
336
340
  onSubmit={async () => {
337
341
  /* handled by explicit button */
338
342
  }}
339
- customActions={(
343
+ customActions={
340
344
  <button
341
345
  type="button"
342
346
  className="px-4 py-2 text-sm font-medium text-white bg-primary rounded-md"
@@ -344,11 +348,11 @@ const SplitFormExample = () => {
344
348
  >
345
349
  Save all sections
346
350
  </button>
347
- )}
351
+ }
348
352
  />
349
353
  </div>
350
- )
351
- }
354
+ );
355
+ };
352
356
 
353
357
  const meta: Meta<typeof SplitFormExample> = {
354
358
  title: 'Kit/Builder/Form',
@@ -361,13 +365,13 @@ const meta: Meta<typeof SplitFormExample> = {
361
365
  },
362
366
  },
363
367
  },
364
- }
368
+ };
365
369
 
366
- export default meta
370
+ export default meta;
367
371
 
368
- type Story = StoryObj<typeof SplitFormExample>
372
+ type Story = StoryObj<typeof SplitFormExample>;
369
373
 
370
374
  export const SharedFormInstance: Story = {
371
375
  name: 'Shared form instance across sections',
372
376
  render: () => <SplitFormExample />,
373
- }
377
+ };
@@ -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 Pickers: Story = {
18
21
  name: 'Pickers (Date, Date Range, Month, Month Range)',
@@ -20,7 +23,8 @@ export const Pickers: Story = {
20
23
  sections: [
21
24
  {
22
25
  title: 'Pickers',
23
- description: 'Showcase of DatePicker, DateRangePicker, MonthPicker, and MonthRangePicker via FormBuilder fields',
26
+ description:
27
+ 'Showcase of DatePicker, DateRangePicker, MonthPicker, and MonthRangePicker via FormBuilder fields',
24
28
  variant: 'card',
25
29
  layout: 'grid',
26
30
  grid: { cols: 1, mdCols: 2, gap: 'gap-4' },
@@ -59,7 +63,7 @@ export const Pickers: Story = {
59
63
  },
60
64
  ],
61
65
  onSubmit: (data: unknown) => {
62
- console.log('Submit (pickers):', data)
66
+ console.log('Submit (pickers):', data);
63
67
  },
64
68
  showActions: true,
65
69
  } satisfies Partial<FormBuilderProps>,
@@ -68,4 +72,4 @@ export const Pickers: Story = {
68
72
  <FormBuilder {...(args as FormBuilderProps)} />
69
73
  </div>
70
74
  ),
71
- }
75
+ };
@@ -1,6 +1,10 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { FormBuilder } from '../../../kit/builder/form/components/FormBuilder';
3
- import { createSection, createField, commonValidations } from '../../../kit/builder/form/utils';
3
+ import {
4
+ createSection,
5
+ createField,
6
+ commonValidations,
7
+ } from '../../../kit/builder/form/utils';
4
8
 
5
9
  const meta: Meta<typeof FormBuilder> = {
6
10
  title: 'Kit/Builder/Form',
@@ -21,7 +25,7 @@ export const SimpleExample: Story = {
21
25
  const handleSubmit = (data: unknown) => {
22
26
  console.log('Form submitted:', data);
23
27
  };
24
-
28
+
25
29
  const sections = [
26
30
  createSection.card('Contact Information', [
27
31
  createField.text('name', 'Full Name', {
@@ -65,17 +69,22 @@ export const SimpleExample: Story = {
65
69
  }),
66
70
  ]),
67
71
  ];
68
-
72
+
69
73
  return (
70
74
  <div className="max-w-2xl mx-auto p-6">
71
75
  <div className="mb-6">
72
76
  <h1 className="text-2xl font-bold text-gray-900">Contact Us</h1>
73
77
  <p className="text-gray-600 mt-2">
74
- Fill out the form below and we'll get back to you as soon as possible.
78
+ Fill out the form below and we'll get back to you as soon as
79
+ possible.
75
80
  </p>
76
81
  </div>
77
-
78
- <FormBuilder sections={sections} onSubmit={handleSubmit} className="space-y-6" />
82
+
83
+ <FormBuilder
84
+ sections={sections}
85
+ onSubmit={handleSubmit}
86
+ className="space-y-6"
87
+ />
79
88
  </div>
80
89
  );
81
90
  },
@@ -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 TimeFields: Story = {
18
21
  name: 'Time fields (12/24h, precision)',
@@ -20,7 +23,8 @@ export const TimeFields: Story = {
20
23
  sections: [
21
24
  {
22
25
  title: 'Time',
23
- description: 'TimePicker fields with different precisions and hour cycles',
26
+ description:
27
+ 'TimePicker fields with different precisions and hour cycles',
24
28
  variant: 'card',
25
29
  layout: 'grid',
26
30
  grid: { cols: 1, mdCols: 2, gap: 'gap-4' },
@@ -52,7 +56,7 @@ export const TimeFields: Story = {
52
56
  },
53
57
  ],
54
58
  onSubmit: (data: unknown) => {
55
- console.log('Submit (time):', data)
59
+ console.log('Submit (time):', data);
56
60
  },
57
61
  showActions: true,
58
62
  } satisfies Partial<FormBuilderProps>,
@@ -61,4 +65,4 @@ export const TimeFields: Story = {
61
65
  <FormBuilder {...(args as FormBuilderProps)} />
62
66
  </div>
63
67
  ),
64
- }
68
+ };
@@ -1,7 +1,13 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { Page, type PageAction } from '../../../kit/builder/page';
3
3
  import { Button } from '../../../shadcn/ui/button';
4
- import { Plus, Download, MoreHorizontal, RefreshCw, Trash2 } from 'lucide-react';
4
+ import {
5
+ Plus,
6
+ Download,
7
+ MoreHorizontal,
8
+ RefreshCw,
9
+ Trash2,
10
+ } from 'lucide-react';
5
11
 
6
12
  const meta: Meta<typeof Page> = {
7
13
  title: 'kit/Builder/Page',
@@ -15,7 +21,11 @@ type Story = StoryObj<typeof Page>;
15
21
  export const Basic: Story = {
16
22
  name: 'Basic',
17
23
  render: () => (
18
- <Page title="Orders" subtitle="Manage and review customer orders" containerWidth="lg">
24
+ <Page
25
+ title="Orders"
26
+ subtitle="Manage and review customer orders"
27
+ containerWidth="lg"
28
+ >
19
29
  <div className="rounded-md border bg-card p-6 text-sm text-muted-foreground">
20
30
  Page content goes here.
21
31
  </div>
@@ -49,15 +59,29 @@ export const WithActions: Story = {
49
59
  leftIcon: <MoreHorizontal className="h-4 w-4" />,
50
60
  },
51
61
  items: [
52
- { label: 'Refresh', leftIcon: <RefreshCw className="h-4 w-4" />, onSelect: () => console.log('refresh') },
62
+ {
63
+ label: 'Refresh',
64
+ leftIcon: <RefreshCw className="h-4 w-4" />,
65
+ onSelect: () => console.log('refresh'),
66
+ },
53
67
  { type: 'separator' },
54
- { label: 'Delete selected', leftIcon: <Trash2 className="h-4 w-4" />, destructive: true, onSelect: () => console.log('delete') },
68
+ {
69
+ label: 'Delete selected',
70
+ leftIcon: <Trash2 className="h-4 w-4" />,
71
+ destructive: true,
72
+ onSelect: () => console.log('delete'),
73
+ },
55
74
  ],
56
75
  },
57
76
  ];
58
77
 
59
78
  return (
60
- <Page title="Orders" subtitle="Manage and review customer orders" actions={actions} containerWidth="xl">
79
+ <Page
80
+ title="Orders"
81
+ subtitle="Manage and review customer orders"
82
+ actions={actions}
83
+ containerWidth="xl"
84
+ >
61
85
  <div className="rounded-md border bg-card p-6 text-sm text-muted-foreground">
62
86
  Content with actions.
63
87
  </div>
@@ -76,7 +100,9 @@ export const WithFooter: Story = {
76
100
  footerLeft={<span className="text-xs">Last updated 2 hours ago</span>}
77
101
  footerRight={
78
102
  <div className="flex gap-2">
79
- <Button variant="outline" onClick={() => console.log('cancel')}>Cancel</Button>
103
+ <Button variant="outline" onClick={() => console.log('cancel')}>
104
+ Cancel
105
+ </Button>
80
106
  <Button onClick={() => console.log('save')}>Save changes</Button>
81
107
  </div>
82
108
  }
@@ -1,6 +1,9 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import SectionBuilder from '../../../kit/builder/section/SectionBuilder';
3
- import type { SectionLeaf, SectionNode } from '../../../kit/builder/section/types';
3
+ import type {
4
+ SectionLeaf,
5
+ SectionNode,
6
+ } from '../../../kit/builder/section/types';
4
7
 
5
8
  const meta: Meta<typeof SectionBuilder> = {
6
9
  title: 'Kit/Builder/Section',
@@ -35,8 +38,16 @@ export const TabsLayout: Story = {
35
38
  layout: 'grid',
36
39
  grid: { cols: 1, mdCols: 12, gap: 'gap-4' },
37
40
  children: [
38
- { key: 't1', content: demoBox('Overview content A'), span: { md: 6 } },
39
- { key: 't2', content: demoBox('Overview content B'), span: { md: 6 } },
41
+ {
42
+ key: 't1',
43
+ content: demoBox('Overview content A'),
44
+ span: { md: 6 },
45
+ },
46
+ {
47
+ key: 't2',
48
+ content: demoBox('Overview content B'),
49
+ span: { md: 6 },
50
+ },
40
51
  ],
41
52
  },
42
53
  },
@@ -55,9 +66,21 @@ export const TabsLayout: Story = {
55
66
  layout: 'grid',
56
67
  grid: { cols: 1, mdCols: 12 },
57
68
  children: [
58
- { key: 'd1', content: demoBox('Detail 1'), span: { md: 4 } },
59
- { key: 'd2', content: demoBox('Detail 2'), span: { md: 4 } },
60
- { key: 'd3', content: demoBox('Detail 3'), span: { md: 4 } },
69
+ {
70
+ key: 'd1',
71
+ content: demoBox('Detail 1'),
72
+ span: { md: 4 },
73
+ },
74
+ {
75
+ key: 'd2',
76
+ content: demoBox('Detail 2'),
77
+ span: { md: 4 },
78
+ },
79
+ {
80
+ key: 'd3',
81
+ content: demoBox('Detail 3'),
82
+ span: { md: 4 },
83
+ },
61
84
  ],
62
85
  } as unknown as SectionNode,
63
86
  ],
@@ -74,7 +97,11 @@ export default meta;
74
97
 
75
98
  function demoBox(text: string, className?: string) {
76
99
  return (
77
- <div className={['rounded border p-3 text-sm', className].filter(Boolean).join(' ')}>
100
+ <div
101
+ className={['rounded border p-3 text-sm', className]
102
+ .filter(Boolean)
103
+ .join(' ')}
104
+ >
78
105
  {text}
79
106
  </div>
80
107
  );
@@ -156,7 +183,13 @@ export const FlexLayout: Story = {
156
183
  title: 'Horizontal flex with wrap',
157
184
  variant: 'card',
158
185
  layout: 'flex',
159
- flex: { direction: 'row', wrap: true, gap: 'gap-3', align: 'start', justify: 'start' },
186
+ flex: {
187
+ direction: 'row',
188
+ wrap: true,
189
+ gap: 'gap-3',
190
+ align: 'start',
191
+ justify: 'start',
192
+ },
160
193
  children: [
161
194
  { key: 'f1', content: demoBox('Item 1'), className: 'w-56' },
162
195
  { key: 'f2', content: demoBox('Item 2'), className: 'w-56' },
@@ -219,14 +252,28 @@ export const CustomLeafRenderer: Story = {
219
252
  layout: 'grid',
220
253
  grid: { cols: 1, mdCols: 12 },
221
254
  children: [
222
- { key: 'x', label: 'Name', labelLayout: 'inline', content: 'Jane Doe', span: { md: 6 } },
223
- { key: 'y', label: 'Email', labelLayout: 'inline', content: 'jane@example.com', span: { md: 6 } },
255
+ {
256
+ key: 'x',
257
+ label: 'Name',
258
+ labelLayout: 'inline',
259
+ content: 'Jane Doe',
260
+ span: { md: 6 },
261
+ },
262
+ {
263
+ key: 'y',
264
+ label: 'Email',
265
+ labelLayout: 'inline',
266
+ content: 'jane@example.com',
267
+ span: { md: 6 },
268
+ },
224
269
  ],
225
270
  },
226
271
  ] satisfies SectionNode[],
227
272
  renderLeaf: (leaf) => (
228
273
  <div className="rounded border p-3">
229
- <div className="text-[10px] uppercase tracking-wide text-muted-foreground">{leaf.label ?? 'Field'}</div>
274
+ <div className="text-[10px] uppercase tracking-wide text-muted-foreground">
275
+ {leaf.label ?? 'Field'}
276
+ </div>
230
277
  <div className="text-sm">{leaf.content}</div>
231
278
  </div>
232
279
  ),