@k3-universe/react-kit 0.0.28 → 0.0.30

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 (927) 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.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3794 -1426
  7. package/dist/kit/builder/auth/components/Can.d.ts +13 -0
  8. package/dist/kit/builder/auth/components/Can.d.ts.map +1 -0
  9. package/dist/kit/builder/auth/components/RequireAuth.d.ts +45 -0
  10. package/dist/kit/builder/auth/components/RequireAuth.d.ts.map +1 -0
  11. package/dist/kit/builder/auth/components/ShowWhenAuthenticated.d.ts +8 -0
  12. package/dist/kit/builder/auth/components/ShowWhenAuthenticated.d.ts.map +1 -0
  13. package/dist/kit/builder/auth/components/ShowWhenError.d.ts +8 -0
  14. package/dist/kit/builder/auth/components/ShowWhenError.d.ts.map +1 -0
  15. package/dist/kit/builder/auth/components/ShowWhenLoading.d.ts +8 -0
  16. package/dist/kit/builder/auth/components/ShowWhenLoading.d.ts.map +1 -0
  17. package/dist/kit/builder/auth/components/ShowWhenUnauthenticated.d.ts +8 -0
  18. package/dist/kit/builder/auth/components/ShowWhenUnauthenticated.d.ts.map +1 -0
  19. package/dist/kit/builder/auth/components/withPermission.d.ts +7 -0
  20. package/dist/kit/builder/auth/components/withPermission.d.ts.map +1 -0
  21. package/dist/kit/builder/auth/hooks/action-hooks.d.ts +18 -0
  22. package/dist/kit/builder/auth/hooks/action-hooks.d.ts.map +1 -0
  23. package/dist/kit/builder/auth/hooks/core-hooks.d.ts +56 -0
  24. package/dist/kit/builder/auth/hooks/core-hooks.d.ts.map +1 -0
  25. package/dist/kit/builder/auth/hooks/index.d.ts +5 -0
  26. package/dist/kit/builder/auth/hooks/index.d.ts.map +1 -0
  27. package/dist/kit/builder/auth/hooks/permission-hooks.d.ts +18 -0
  28. package/dist/kit/builder/auth/hooks/permission-hooks.d.ts.map +1 -0
  29. package/dist/kit/builder/auth/hooks/token-hooks.d.ts +13 -0
  30. package/dist/kit/builder/auth/hooks/token-hooks.d.ts.map +1 -0
  31. package/dist/kit/builder/auth/index.d.ts +17 -0
  32. package/dist/kit/builder/auth/index.d.ts.map +1 -0
  33. package/dist/kit/builder/auth/providers/AuthProvider.d.ts +36 -0
  34. package/dist/kit/builder/auth/providers/AuthProvider.d.ts.map +1 -0
  35. package/dist/kit/builder/auth/types/adapter-config.d.ts +31 -0
  36. package/dist/kit/builder/auth/types/adapter-config.d.ts.map +1 -0
  37. package/dist/kit/builder/auth/types/adapter.d.ts +80 -0
  38. package/dist/kit/builder/auth/types/adapter.d.ts.map +1 -0
  39. package/dist/kit/builder/auth/types/core.d.ts +16 -0
  40. package/dist/kit/builder/auth/types/core.d.ts.map +1 -0
  41. package/dist/kit/builder/auth/types/index.d.ts +10 -0
  42. package/dist/kit/builder/auth/types/index.d.ts.map +1 -0
  43. package/dist/kit/builder/auth/types/middleware.d.ts +11 -0
  44. package/dist/kit/builder/auth/types/middleware.d.ts.map +1 -0
  45. package/dist/kit/builder/auth/types/permissions.d.ts +17 -0
  46. package/dist/kit/builder/auth/types/permissions.d.ts.map +1 -0
  47. package/dist/kit/builder/auth/types/state.d.ts +13 -0
  48. package/dist/kit/builder/auth/types/state.d.ts.map +1 -0
  49. package/dist/kit/builder/auth/types/storage.d.ts +20 -0
  50. package/dist/kit/builder/auth/types/storage.d.ts.map +1 -0
  51. package/dist/kit/builder/auth/types/token-manager.d.ts +7 -0
  52. package/dist/kit/builder/auth/types/token-manager.d.ts.map +1 -0
  53. package/dist/kit/builder/auth/types/utils.d.ts +7 -0
  54. package/dist/kit/builder/auth/types/utils.d.ts.map +1 -0
  55. package/dist/kit/builder/auth/utils/auth-adapter.d.ts +14 -0
  56. package/dist/kit/builder/auth/utils/auth-adapter.d.ts.map +1 -0
  57. package/dist/kit/builder/auth/utils/client-adapters/apollo-link.d.ts +4 -0
  58. package/dist/kit/builder/auth/utils/client-adapters/apollo-link.d.ts.map +1 -0
  59. package/dist/kit/builder/auth/utils/client-adapters/axios.d.ts +6 -0
  60. package/dist/kit/builder/auth/utils/client-adapters/axios.d.ts.map +1 -0
  61. package/dist/kit/builder/auth/utils/client-adapters/fetch.d.ts +6 -0
  62. package/dist/kit/builder/auth/utils/client-adapters/fetch.d.ts.map +1 -0
  63. package/dist/kit/builder/auth/utils/client-adapters/graphql.d.ts +9 -0
  64. package/dist/kit/builder/auth/utils/client-adapters/graphql.d.ts.map +1 -0
  65. package/dist/kit/builder/auth/utils/client-adapters/index.d.ts +7 -0
  66. package/dist/kit/builder/auth/utils/client-adapters/index.d.ts.map +1 -0
  67. package/dist/kit/builder/auth/utils/client-adapters/rest.d.ts +9 -0
  68. package/dist/kit/builder/auth/utils/client-adapters/rest.d.ts.map +1 -0
  69. package/dist/kit/builder/auth/utils/client-adapters/urql-exchange.d.ts +14 -0
  70. package/dist/kit/builder/auth/utils/client-adapters/urql-exchange.d.ts.map +1 -0
  71. package/dist/kit/builder/auth/utils/permission-checker.d.ts +31 -0
  72. package/dist/kit/builder/auth/utils/permission-checker.d.ts.map +1 -0
  73. package/dist/kit/builder/auth/utils/storage/browser.d.ts +11 -0
  74. package/dist/kit/builder/auth/utils/storage/browser.d.ts.map +1 -0
  75. package/dist/kit/builder/auth/utils/storage/cookie.d.ts +3 -0
  76. package/dist/kit/builder/auth/utils/storage/cookie.d.ts.map +1 -0
  77. package/dist/kit/builder/auth/utils/storage/encryption.d.ts +7 -0
  78. package/dist/kit/builder/auth/utils/storage/encryption.d.ts.map +1 -0
  79. package/dist/kit/builder/auth/utils/storage/env.d.ts +2 -0
  80. package/dist/kit/builder/auth/utils/storage/env.d.ts.map +1 -0
  81. package/dist/kit/builder/auth/utils/storage/factory.d.ts +6 -0
  82. package/dist/kit/builder/auth/utils/storage/factory.d.ts.map +1 -0
  83. package/dist/kit/builder/auth/utils/storage/index.d.ts +7 -0
  84. package/dist/kit/builder/auth/utils/storage/index.d.ts.map +1 -0
  85. package/dist/kit/builder/auth/utils/storage/memory.d.ts +3 -0
  86. package/dist/kit/builder/auth/utils/storage/memory.d.ts.map +1 -0
  87. package/dist/kit/builder/auth/utils/token-manager.d.ts +9 -0
  88. package/dist/kit/builder/auth/utils/token-manager.d.ts.map +1 -0
  89. package/dist/kit/builder/data-table/components/DataTable.d.ts.map +1 -1
  90. package/dist/kit/builder/data-table/components/DataTableColumnHeader.d.ts +2 -2
  91. package/dist/kit/builder/data-table/components/DataTableColumnHeader.d.ts.map +1 -1
  92. package/dist/kit/builder/data-table/components/DataTablePagination.d.ts +1 -1
  93. package/dist/kit/builder/data-table/components/DataTablePagination.d.ts.map +1 -1
  94. package/dist/kit/builder/data-table/components/DataTableViewOptions.d.ts +1 -1
  95. package/dist/kit/builder/data-table/components/DataTableViewOptions.d.ts.map +1 -1
  96. package/dist/kit/builder/data-table/types.d.ts.map +1 -1
  97. package/dist/kit/builder/dialog/index.d.ts +1 -1
  98. package/dist/kit/builder/dialog/index.d.ts.map +1 -1
  99. package/dist/kit/builder/dialog/provider.d.ts +0 -1
  100. package/dist/kit/builder/dialog/provider.d.ts.map +1 -1
  101. package/dist/kit/builder/form/components/FormBuilder.d.ts.map +1 -1
  102. package/dist/kit/builder/form/components/FormBuilderActions.d.ts.map +1 -1
  103. package/dist/kit/builder/form/components/FormBuilderContext.d.ts.map +1 -1
  104. package/dist/kit/builder/form/components/FormBuilderField.d.ts +1 -1
  105. package/dist/kit/builder/form/components/FormBuilderField.d.ts.map +1 -1
  106. package/dist/kit/builder/form/components/fields/ArrayField.d.ts +1 -1
  107. package/dist/kit/builder/form/components/fields/ArrayField.d.ts.map +1 -1
  108. package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts +1 -1
  109. package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts.map +1 -1
  110. package/dist/kit/builder/form/components/fields/CheckboxField.d.ts +1 -1
  111. package/dist/kit/builder/form/components/fields/CheckboxField.d.ts.map +1 -1
  112. package/dist/kit/builder/form/components/fields/DateField.d.ts +1 -1
  113. package/dist/kit/builder/form/components/fields/DateField.d.ts.map +1 -1
  114. package/dist/kit/builder/form/components/fields/DatePickerField.d.ts +1 -1
  115. package/dist/kit/builder/form/components/fields/DatePickerField.d.ts.map +1 -1
  116. package/dist/kit/builder/form/components/fields/DateRangePickerField.d.ts +1 -1
  117. package/dist/kit/builder/form/components/fields/DateRangePickerField.d.ts.map +1 -1
  118. package/dist/kit/builder/form/components/fields/DateTimePickerField.d.ts +1 -1
  119. package/dist/kit/builder/form/components/fields/DateTimePickerField.d.ts.map +1 -1
  120. package/dist/kit/builder/form/components/fields/DateTimeRangePickerField.d.ts +1 -1
  121. package/dist/kit/builder/form/components/fields/DateTimeRangePickerField.d.ts.map +1 -1
  122. package/dist/kit/builder/form/components/fields/FileField.d.ts +1 -1
  123. package/dist/kit/builder/form/components/fields/FileField.d.ts.map +1 -1
  124. package/dist/kit/builder/form/components/fields/MonthPickerField.d.ts +1 -1
  125. package/dist/kit/builder/form/components/fields/MonthPickerField.d.ts.map +1 -1
  126. package/dist/kit/builder/form/components/fields/MonthRangePickerField.d.ts +1 -1
  127. package/dist/kit/builder/form/components/fields/MonthRangePickerField.d.ts.map +1 -1
  128. package/dist/kit/builder/form/components/fields/NumberField.d.ts +1 -1
  129. package/dist/kit/builder/form/components/fields/NumberField.d.ts.map +1 -1
  130. package/dist/kit/builder/form/components/fields/ObjectField.d.ts.map +1 -1
  131. package/dist/kit/builder/form/components/fields/RadioField.d.ts +1 -1
  132. package/dist/kit/builder/form/components/fields/RadioField.d.ts.map +1 -1
  133. package/dist/kit/builder/form/components/fields/SelectField.d.ts +1 -1
  134. package/dist/kit/builder/form/components/fields/SelectField.d.ts.map +1 -1
  135. package/dist/kit/builder/form/components/fields/SwitchField.d.ts +1 -1
  136. package/dist/kit/builder/form/components/fields/SwitchField.d.ts.map +1 -1
  137. package/dist/kit/builder/form/components/fields/TextField.d.ts +1 -1
  138. package/dist/kit/builder/form/components/fields/TextField.d.ts.map +1 -1
  139. package/dist/kit/builder/form/components/fields/TextareaField.d.ts +1 -1
  140. package/dist/kit/builder/form/components/fields/TextareaField.d.ts.map +1 -1
  141. package/dist/kit/builder/form/components/fields/TimePickerField.d.ts +1 -1
  142. package/dist/kit/builder/form/components/fields/TimePickerField.d.ts.map +1 -1
  143. package/dist/kit/builder/form/components/fields/TimeRangePickerField.d.ts +1 -1
  144. package/dist/kit/builder/form/components/fields/TimeRangePickerField.d.ts.map +1 -1
  145. package/dist/kit/builder/form/components/fields/index.d.ts.map +1 -1
  146. package/dist/kit/builder/form/components/fields/types.d.ts.map +1 -1
  147. package/dist/kit/builder/form/components/sectionNodes.d.ts.map +1 -1
  148. package/dist/kit/builder/form/hooks/useFormBuilder.d.ts.map +1 -1
  149. package/dist/kit/builder/form/types.d.ts.map +1 -1
  150. package/dist/kit/builder/form/utils/section-factories.d.ts.map +1 -1
  151. package/dist/kit/builder/page/Page.d.ts.map +1 -1
  152. package/dist/kit/builder/page/index.d.ts.map +1 -1
  153. package/dist/kit/builder/section/SectionBuilder.d.ts +1 -1
  154. package/dist/kit/builder/section/SectionBuilder.d.ts.map +1 -1
  155. package/dist/kit/builder/section/SectionContainer.d.ts +14 -0
  156. package/dist/kit/builder/section/SectionContainer.d.ts.map +1 -0
  157. package/dist/kit/builder/stack-dialog/context.d.ts.map +1 -1
  158. package/dist/kit/builder/stack-dialog/hooks.d.ts.map +1 -1
  159. package/dist/kit/builder/stack-dialog/index.d.ts +3 -3
  160. package/dist/kit/builder/stack-dialog/index.d.ts.map +1 -1
  161. package/dist/kit/builder/stack-dialog/provider.d.ts.map +1 -1
  162. package/dist/kit/builder/stack-dialog/renderer.d.ts.map +1 -1
  163. package/dist/kit/builder/stack-dialog/types.d.ts +1 -1
  164. package/dist/kit/builder/stack-dialog/types.d.ts.map +1 -1
  165. package/dist/kit/components/autocomplete/Autocomplete.d.ts +1 -1
  166. package/dist/kit/components/autocomplete/Autocomplete.d.ts.map +1 -1
  167. package/dist/kit/components/autocomplete/types.d.ts.map +1 -1
  168. package/dist/kit/components/datepicker/DatePicker.d.ts.map +1 -1
  169. package/dist/kit/components/datepicker/DateRangePicker.d.ts.map +1 -1
  170. package/dist/kit/components/datetimepicker/DateTimePicker.d.ts.map +1 -1
  171. package/dist/kit/components/datetimepicker/DateTimeRangePicker.d.ts.map +1 -1
  172. package/dist/kit/components/datetimepicker/index.d.ts.map +1 -1
  173. package/dist/kit/components/fileuploader/FileUploader.d.ts.map +1 -1
  174. package/dist/kit/components/fileuploader/types.d.ts +2 -2
  175. package/dist/kit/components/forminfo/FormInfoError.d.ts.map +1 -1
  176. package/dist/kit/components/login/Login.d.ts +1 -1
  177. package/dist/kit/components/login/Login.d.ts.map +1 -1
  178. package/dist/kit/components/monthpicker/MonthInput.d.ts.map +1 -1
  179. package/dist/kit/components/monthpicker/MonthPicker.d.ts.map +1 -1
  180. package/dist/kit/components/monthpicker/MonthRangeInput.d.ts.map +1 -1
  181. package/dist/kit/components/monthpicker/MonthRangePicker.d.ts.map +1 -1
  182. package/dist/kit/components/timepicker/TimePicker.d.ts.map +1 -1
  183. package/dist/kit/components/timepicker/TimeRangePicker.d.ts.map +1 -1
  184. package/dist/kit/components/timepicker/index.d.ts.map +1 -1
  185. package/dist/kit/layouts/admin/components/AdminLayout.d.ts +2 -1
  186. package/dist/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -1
  187. package/dist/kit/layouts/admin/components/ThemeToggle.d.ts.map +1 -1
  188. package/dist/kit/layouts/admin/hooks/menu.d.ts.map +1 -1
  189. package/dist/kit/layouts/admin/providers/AdminMenuProvider.d.ts +1 -1
  190. package/dist/kit/layouts/admin/providers/AdminMenuProvider.d.ts.map +1 -1
  191. package/dist/kit/themes/base.css +1 -1
  192. package/dist/kit/themes/clean-slate.css +5 -5
  193. package/dist/kit/themes/default.css +5 -5
  194. package/dist/kit/themes/minimal-modern.css +5 -5
  195. package/dist/kit/themes/spotify.css +5 -5
  196. package/dist/shadcn/hooks/use-mobile.d.ts.map +1 -1
  197. package/dist/shadcn/ui/accordion.d.ts +2 -2
  198. package/dist/shadcn/ui/accordion.d.ts.map +1 -1
  199. package/dist/shadcn/ui/alert-dialog.d.ts +4 -4
  200. package/dist/shadcn/ui/alert-dialog.d.ts.map +1 -1
  201. package/dist/shadcn/ui/alert.d.ts +4 -4
  202. package/dist/shadcn/ui/alert.d.ts.map +1 -1
  203. package/dist/shadcn/ui/aspect-ratio.d.ts +1 -1
  204. package/dist/shadcn/ui/aspect-ratio.d.ts.map +1 -1
  205. package/dist/shadcn/ui/avatar.d.ts +2 -2
  206. package/dist/shadcn/ui/avatar.d.ts.map +1 -1
  207. package/dist/shadcn/ui/badge.d.ts +2 -2
  208. package/dist/shadcn/ui/badge.d.ts.map +1 -1
  209. package/dist/shadcn/ui/breadcrumb.d.ts +8 -8
  210. package/dist/shadcn/ui/breadcrumb.d.ts.map +1 -1
  211. package/dist/shadcn/ui/button.d.ts +2 -2
  212. package/dist/shadcn/ui/button.d.ts.map +1 -1
  213. package/dist/shadcn/ui/calendar.d.ts +2 -2
  214. package/dist/shadcn/ui/calendar.d.ts.map +1 -1
  215. package/dist/shadcn/ui/card.d.ts +8 -8
  216. package/dist/shadcn/ui/card.d.ts.map +1 -1
  217. package/dist/shadcn/ui/carousel.d.ts +5 -5
  218. package/dist/shadcn/ui/carousel.d.ts.map +1 -1
  219. package/dist/shadcn/ui/chart.d.ts +7 -7
  220. package/dist/shadcn/ui/chart.d.ts.map +1 -1
  221. package/dist/shadcn/ui/checkbox.d.ts +2 -2
  222. package/dist/shadcn/ui/checkbox.d.ts.map +1 -1
  223. package/dist/shadcn/ui/collapsible.d.ts +1 -1
  224. package/dist/shadcn/ui/collapsible.d.ts.map +1 -1
  225. package/dist/shadcn/ui/command.d.ts +2 -2
  226. package/dist/shadcn/ui/command.d.ts.map +1 -1
  227. package/dist/shadcn/ui/context-menu.d.ts +4 -4
  228. package/dist/shadcn/ui/context-menu.d.ts.map +1 -1
  229. package/dist/shadcn/ui/dialog.d.ts +4 -4
  230. package/dist/shadcn/ui/dialog.d.ts.map +1 -1
  231. package/dist/shadcn/ui/drawer.d.ts +3 -3
  232. package/dist/shadcn/ui/drawer.d.ts.map +1 -1
  233. package/dist/shadcn/ui/dropdown-menu.d.ts +4 -4
  234. package/dist/shadcn/ui/dropdown-menu.d.ts.map +1 -1
  235. package/dist/shadcn/ui/form.d.ts +5 -5
  236. package/dist/shadcn/ui/form.d.ts.map +1 -1
  237. package/dist/shadcn/ui/hover-card.d.ts +2 -2
  238. package/dist/shadcn/ui/hover-card.d.ts.map +1 -1
  239. package/dist/shadcn/ui/input-otp.d.ts +4 -4
  240. package/dist/shadcn/ui/input-otp.d.ts.map +1 -1
  241. package/dist/shadcn/ui/input.d.ts +2 -2
  242. package/dist/shadcn/ui/input.d.ts.map +1 -1
  243. package/dist/shadcn/ui/label.d.ts +2 -2
  244. package/dist/shadcn/ui/label.d.ts.map +1 -1
  245. package/dist/shadcn/ui/menubar.d.ts +4 -4
  246. package/dist/shadcn/ui/menubar.d.ts.map +1 -1
  247. package/dist/shadcn/ui/navigation-menu.d.ts +2 -2
  248. package/dist/shadcn/ui/navigation-menu.d.ts.map +1 -1
  249. package/dist/shadcn/ui/pagination.d.ts +6 -6
  250. package/dist/shadcn/ui/pagination.d.ts.map +1 -1
  251. package/dist/shadcn/ui/popover.d.ts +2 -2
  252. package/dist/shadcn/ui/popover.d.ts.map +1 -1
  253. package/dist/shadcn/ui/progress.d.ts +2 -2
  254. package/dist/shadcn/ui/progress.d.ts.map +1 -1
  255. package/dist/shadcn/ui/radio-group.d.ts +2 -2
  256. package/dist/shadcn/ui/radio-group.d.ts.map +1 -1
  257. package/dist/shadcn/ui/resizable.d.ts +2 -2
  258. package/dist/shadcn/ui/resizable.d.ts.map +1 -1
  259. package/dist/shadcn/ui/scroll-area.d.ts +2 -2
  260. package/dist/shadcn/ui/scroll-area.d.ts.map +1 -1
  261. package/dist/shadcn/ui/select.d.ts +3 -3
  262. package/dist/shadcn/ui/select.d.ts.map +1 -1
  263. package/dist/shadcn/ui/separator.d.ts +2 -2
  264. package/dist/shadcn/ui/separator.d.ts.map +1 -1
  265. package/dist/shadcn/ui/sheet.d.ts +5 -5
  266. package/dist/shadcn/ui/sheet.d.ts.map +1 -1
  267. package/dist/shadcn/ui/sidebar.d.ts +26 -26
  268. package/dist/shadcn/ui/sidebar.d.ts.map +1 -1
  269. package/dist/shadcn/ui/skeleton.d.ts +1 -1
  270. package/dist/shadcn/ui/skeleton.d.ts.map +1 -1
  271. package/dist/shadcn/ui/slider.d.ts +2 -2
  272. package/dist/shadcn/ui/slider.d.ts.map +1 -1
  273. package/dist/shadcn/ui/sonner.d.ts.map +1 -1
  274. package/dist/shadcn/ui/switch.d.ts +2 -2
  275. package/dist/shadcn/ui/switch.d.ts.map +1 -1
  276. package/dist/shadcn/ui/table.d.ts +9 -9
  277. package/dist/shadcn/ui/table.d.ts.map +1 -1
  278. package/dist/shadcn/ui/tabs.d.ts +2 -2
  279. package/dist/shadcn/ui/tabs.d.ts.map +1 -1
  280. package/dist/shadcn/ui/textarea.d.ts +2 -2
  281. package/dist/shadcn/ui/textarea.d.ts.map +1 -1
  282. package/dist/shadcn/ui/toggle-group.d.ts +2 -2
  283. package/dist/shadcn/ui/toggle-group.d.ts.map +1 -1
  284. package/dist/shadcn/ui/toggle.d.ts +2 -2
  285. package/dist/shadcn/ui/toggle.d.ts.map +1 -1
  286. package/dist/shadcn/ui/tooltip.d.ts +2 -2
  287. package/dist/shadcn/ui/tooltip.d.ts.map +1 -1
  288. package/package.json +2 -2
  289. package/src/index.ts +2 -1
  290. package/src/kit/builder/auth/components/Can.tsx +27 -0
  291. package/src/kit/builder/auth/components/RequireAuth.tsx +78 -0
  292. package/src/kit/builder/auth/components/ShowWhenAuthenticated.tsx +10 -0
  293. package/src/kit/builder/auth/components/ShowWhenError.tsx +10 -0
  294. package/src/kit/builder/auth/components/ShowWhenLoading.tsx +10 -0
  295. package/src/kit/builder/auth/components/ShowWhenUnauthenticated.tsx +10 -0
  296. package/src/kit/builder/auth/components/withPermission.tsx +23 -0
  297. package/src/kit/builder/auth/hooks/action-hooks.ts +34 -0
  298. package/src/kit/builder/auth/hooks/core-hooks.ts +65 -0
  299. package/src/kit/builder/auth/hooks/index.ts +4 -0
  300. package/src/kit/builder/auth/hooks/permission-hooks.ts +43 -0
  301. package/src/kit/builder/auth/hooks/token-hooks.ts +25 -0
  302. package/src/kit/builder/auth/index.ts +132 -0
  303. package/src/kit/builder/auth/providers/AuthProvider.tsx +131 -0
  304. package/src/kit/builder/auth/types/adapter-config.ts +44 -0
  305. package/src/kit/builder/auth/types/adapter.ts +132 -0
  306. package/src/kit/builder/auth/types/core.ts +27 -0
  307. package/src/kit/builder/auth/types/index.ts +9 -0
  308. package/src/kit/builder/auth/types/middleware.ts +20 -0
  309. package/src/kit/builder/auth/types/permissions.ts +23 -0
  310. package/src/kit/builder/auth/types/state.ts +16 -0
  311. package/src/kit/builder/auth/types/storage.ts +21 -0
  312. package/src/kit/builder/auth/types/token-manager.ts +9 -0
  313. package/src/kit/builder/auth/types/utils.ts +55 -0
  314. package/src/kit/builder/auth/utils/auth-adapter.ts +437 -0
  315. package/src/kit/builder/auth/utils/client-adapters/apollo-link.ts +30 -0
  316. package/src/kit/builder/auth/utils/client-adapters/axios.ts +61 -0
  317. package/src/kit/builder/auth/utils/client-adapters/fetch.ts +48 -0
  318. package/src/kit/builder/auth/utils/client-adapters/graphql.ts +60 -0
  319. package/src/kit/builder/auth/utils/client-adapters/index.ts +6 -0
  320. package/src/kit/builder/auth/utils/client-adapters/rest.ts +60 -0
  321. package/src/kit/builder/auth/utils/client-adapters/urql-exchange.ts +76 -0
  322. package/src/kit/builder/auth/utils/permission-checker.ts +150 -0
  323. package/src/kit/builder/auth/utils/storage/browser.ts +99 -0
  324. package/src/kit/builder/auth/utils/storage/cookie.ts +116 -0
  325. package/src/kit/builder/auth/utils/storage/encryption.ts +80 -0
  326. package/src/kit/builder/auth/utils/storage/env.ts +2 -0
  327. package/src/kit/builder/auth/utils/storage/factory.ts +37 -0
  328. package/src/kit/builder/auth/utils/storage/index.ts +6 -0
  329. package/src/kit/builder/auth/utils/storage/memory.ts +15 -0
  330. package/src/kit/builder/auth/utils/token-manager.ts +55 -0
  331. package/src/kit/builder/data-table/components/DataTable.tsx +214 -82
  332. package/src/kit/builder/data-table/components/DataTableColumnHeader.tsx +9 -5
  333. package/src/kit/builder/data-table/components/DataTablePagination.tsx +19 -5
  334. package/src/kit/builder/data-table/components/DataTableViewOptions.tsx +13 -4
  335. package/src/kit/builder/data-table/types.ts +18 -3
  336. package/src/kit/builder/dialog/index.ts +5 -1
  337. package/src/kit/builder/dialog/provider.tsx +56 -27
  338. package/src/kit/builder/form/components/FormBuilder.tsx +10 -14
  339. package/src/kit/builder/form/components/FormBuilderActions.tsx +1 -1
  340. package/src/kit/builder/form/components/FormBuilderContext.tsx +13 -6
  341. package/src/kit/builder/form/components/FormBuilderField.tsx +70 -20
  342. package/src/kit/builder/form/components/fields/ArrayField.tsx +148 -62
  343. package/src/kit/builder/form/components/fields/AutocompleteField.tsx +53 -18
  344. package/src/kit/builder/form/components/fields/CheckboxField.tsx +20 -11
  345. package/src/kit/builder/form/components/fields/DateField.tsx +17 -6
  346. package/src/kit/builder/form/components/fields/DatePickerField.tsx +15 -10
  347. package/src/kit/builder/form/components/fields/DateRangePickerField.tsx +20 -15
  348. package/src/kit/builder/form/components/fields/DateTimePickerField.tsx +16 -11
  349. package/src/kit/builder/form/components/fields/DateTimeRangePickerField.tsx +23 -17
  350. package/src/kit/builder/form/components/fields/FileField.tsx +10 -5
  351. package/src/kit/builder/form/components/fields/MonthPickerField.tsx +18 -11
  352. package/src/kit/builder/form/components/fields/MonthRangePickerField.tsx +23 -17
  353. package/src/kit/builder/form/components/fields/NumberField.tsx +9 -4
  354. package/src/kit/builder/form/components/fields/ObjectField.tsx +12 -7
  355. package/src/kit/builder/form/components/fields/RadioField.tsx +32 -14
  356. package/src/kit/builder/form/components/fields/SelectField.tsx +26 -11
  357. package/src/kit/builder/form/components/fields/SwitchField.tsx +20 -11
  358. package/src/kit/builder/form/components/fields/TextField.tsx +11 -5
  359. package/src/kit/builder/form/components/fields/TextareaField.tsx +9 -4
  360. package/src/kit/builder/form/components/fields/TimePickerField.tsx +16 -11
  361. package/src/kit/builder/form/components/fields/TimeRangePickerField.tsx +23 -17
  362. package/src/kit/builder/form/components/fields/index.ts +21 -21
  363. package/src/kit/builder/form/components/fields/types.ts +15 -11
  364. package/src/kit/builder/form/components/sectionNodes.tsx +63 -40
  365. package/src/kit/builder/form/hooks/useFormBuilder.ts +83 -34
  366. package/src/kit/builder/form/types.ts +173 -148
  367. package/src/kit/builder/form/utils/section-factories.ts +4 -1
  368. package/src/kit/builder/form/utils/transformers.ts +4 -4
  369. package/src/kit/builder/form/utils/validations.ts +1 -1
  370. package/src/kit/builder/page/Page.tsx +26 -6
  371. package/src/kit/builder/page/index.ts +1 -1
  372. package/src/kit/builder/section/SectionBuilder.tsx +252 -127
  373. package/src/kit/builder/section/SectionContainer.tsx +85 -0
  374. package/src/kit/builder/stack-dialog/context.ts +10 -4
  375. package/src/kit/builder/stack-dialog/hooks.ts +4 -3
  376. package/src/kit/builder/stack-dialog/index.ts +5 -11
  377. package/src/kit/builder/stack-dialog/provider.tsx +11 -11
  378. package/src/kit/builder/stack-dialog/renderer.tsx +23 -26
  379. package/src/kit/builder/stack-dialog/types.ts +18 -18
  380. package/src/kit/components/autocomplete/Autocomplete.tsx +631 -549
  381. package/src/kit/components/autocomplete/types.ts +17 -17
  382. package/src/kit/components/datepicker/DatePicker.tsx +33 -9
  383. package/src/kit/components/datepicker/DateRangePicker.tsx +159 -87
  384. package/src/kit/components/datetimepicker/DateTimePicker.tsx +136 -30
  385. package/src/kit/components/datetimepicker/DateTimeRangePicker.tsx +257 -67
  386. package/src/kit/components/datetimepicker/index.ts +3 -3
  387. package/src/kit/components/fileuploader/FileUploader.tsx +315 -180
  388. package/src/kit/components/fileuploader/index.ts +3 -3
  389. package/src/kit/components/fileuploader/types.ts +3 -3
  390. package/src/kit/components/forminfo/FormInfoError.tsx +26 -11
  391. package/src/kit/components/login/Login.tsx +22 -11
  392. package/src/kit/components/monthpicker/MonthInput.tsx +13 -4
  393. package/src/kit/components/monthpicker/MonthPicker.tsx +12 -11
  394. package/src/kit/components/monthpicker/MonthRangeInput.tsx +29 -8
  395. package/src/kit/components/monthpicker/MonthRangePicker.tsx +23 -21
  396. package/src/kit/components/timepicker/TimePicker.tsx +19 -11
  397. package/src/kit/components/timepicker/TimeRangePicker.tsx +106 -29
  398. package/src/kit/components/timepicker/index.ts +3 -3
  399. package/src/kit/layouts/admin/components/AdminLayout.tsx +74 -38
  400. package/src/kit/layouts/admin/components/ThemeToggle.tsx +3 -9
  401. package/src/kit/layouts/admin/hooks/menu.ts +11 -5
  402. package/src/kit/layouts/admin/providers/AdminMenuProvider.tsx +59 -39
  403. package/src/kit/layouts/admin/types/index.ts +1 -1
  404. package/src/kit/themes/base.css +1 -1
  405. package/src/kit/themes/clean-slate.css +40 -32
  406. package/src/kit/themes/default.css +34 -24
  407. package/src/kit/themes/minimal-modern.css +37 -29
  408. package/src/kit/themes/spotify.css +56 -39
  409. package/src/shadcn/hooks/use-mobile.ts +13 -11
  410. package/src/shadcn/lib/utils.ts +2 -2
  411. package/src/shadcn/ui/accordion.tsx +14 -14
  412. package/src/shadcn/ui/alert-dialog.tsx +29 -29
  413. package/src/shadcn/ui/alert.tsx +20 -20
  414. package/src/shadcn/ui/aspect-ratio.tsx +4 -4
  415. package/src/shadcn/ui/avatar.tsx +13 -13
  416. package/src/shadcn/ui/badge.tsx +16 -16
  417. package/src/shadcn/ui/breadcrumb.tsx +28 -28
  418. package/src/shadcn/ui/button.tsx +23 -23
  419. package/src/shadcn/ui/calendar.tsx +82 -78
  420. package/src/shadcn/ui/card.tsx +27 -27
  421. package/src/shadcn/ui/carousel.tsx +93 -93
  422. package/src/shadcn/ui/chart.tsx +103 -103
  423. package/src/shadcn/ui/checkbox.tsx +9 -9
  424. package/src/shadcn/ui/collapsible.tsx +6 -6
  425. package/src/shadcn/ui/command.tsx +36 -36
  426. package/src/shadcn/ui/context-menu.tsx +40 -40
  427. package/src/shadcn/ui/dialog.tsx +28 -28
  428. package/src/shadcn/ui/drawer.tsx +30 -30
  429. package/src/shadcn/ui/dropdown-menu.tsx +41 -41
  430. package/src/shadcn/ui/form.tsx +48 -47
  431. package/src/shadcn/ui/hover-card.tsx +11 -11
  432. package/src/shadcn/ui/input-otp.tsx +23 -23
  433. package/src/shadcn/ui/input.tsx +9 -9
  434. package/src/shadcn/ui/label.tsx +8 -8
  435. package/src/shadcn/ui/menubar.tsx +47 -47
  436. package/src/shadcn/ui/navigation-menu.tsx +33 -33
  437. package/src/shadcn/ui/pagination.tsx +28 -28
  438. package/src/shadcn/ui/popover.tsx +12 -12
  439. package/src/shadcn/ui/progress.tsx +8 -8
  440. package/src/shadcn/ui/radio-group.tsx +11 -11
  441. package/src/shadcn/ui/resizable.tsx +14 -14
  442. package/src/shadcn/ui/scroll-area.tsx +15 -15
  443. package/src/shadcn/ui/select.tsx +34 -34
  444. package/src/shadcn/ui/separator.tsx +9 -9
  445. package/src/shadcn/ui/sheet.tsx +36 -36
  446. package/src/shadcn/ui/sidebar.tsx +227 -227
  447. package/src/shadcn/ui/skeleton.tsx +5 -5
  448. package/src/shadcn/ui/slider.tsx +12 -12
  449. package/src/shadcn/ui/sonner.tsx +11 -11
  450. package/src/shadcn/ui/switch.tsx +9 -9
  451. package/src/shadcn/ui/table.tsx +32 -32
  452. package/src/shadcn/ui/tabs.tsx +14 -14
  453. package/src/shadcn/ui/textarea.tsx +7 -7
  454. package/src/shadcn/ui/toggle-group.tsx +17 -17
  455. package/src/shadcn/ui/toggle.tsx +16 -16
  456. package/src/shadcn/ui/tooltip.tsx +11 -11
  457. package/src/stories/FileUploader.stories.tsx +23 -4
  458. package/src/stories/kit/builder/DataTable.Basic.stories.tsx +14 -4
  459. package/src/stories/kit/builder/DataTable.Filters.stories.tsx +36 -14
  460. package/src/stories/kit/builder/DataTable.Pagination.stories.tsx +3 -2
  461. package/src/stories/kit/builder/DataTable.SelectionAndActions.stories.tsx +18 -4
  462. package/src/stories/kit/builder/DataTable.Sorting.stories.tsx +18 -7
  463. package/src/stories/kit/builder/Dialog.stories.tsx +19 -13
  464. package/src/stories/kit/builder/Form.ArrayLayouts.stories.tsx +40 -16
  465. package/src/stories/kit/builder/Form.Autocomplete.stories.tsx +34 -22
  466. package/src/stories/kit/builder/Form.Basic.stories.tsx +38 -6
  467. package/src/stories/kit/builder/Form.Complex.stories.tsx +356 -111
  468. package/src/stories/kit/builder/Form.DateTime.stories.tsx +12 -8
  469. package/src/stories/kit/builder/Form.Dynamic.stories.tsx +695 -132
  470. package/src/stories/kit/builder/Form.Files.stories.tsx +37 -26
  471. package/src/stories/kit/builder/Form.MultipleFormBuilder.stories.tsx +46 -42
  472. package/src/stories/kit/builder/Form.Pickers.stories.tsx +12 -8
  473. package/src/stories/kit/builder/Form.Simple.stories.tsx +15 -6
  474. package/src/stories/kit/builder/Form.Time.stories.tsx +12 -8
  475. package/src/stories/kit/builder/Page.stories.tsx +32 -6
  476. package/src/stories/kit/builder/Section.stories.tsx +58 -11
  477. package/src/stories/kit/components/Autocomplete.stories.tsx +55 -22
  478. package/src/stories/kit/components/DatePicker.stories.tsx +80 -13
  479. package/src/stories/kit/components/DateRangePicker.stories.tsx +52 -11
  480. package/src/stories/kit/components/Login.stories.tsx +8 -2
  481. package/src/stories/kit/components/MonthPicker.stories.tsx +26 -6
  482. package/src/stories/kit/components/MonthRangePicker.stories.tsx +24 -5
  483. package/src/stories/kit/components/TimePicker.stories.tsx +18 -16
  484. package/src/stories/kit/components/TimeRangePicker.stories.tsx +18 -12
  485. package/src/stories/kit/layouts/admin/AdminLayout.Basic.stories.tsx +29 -6
  486. package/src/stories/kit/layouts/admin/AdminLayout.Collapsible.stories.tsx +26 -5
  487. package/src/stories/kit/layouts/admin/AdminLayout.Complex.stories.tsx +101 -18
  488. package/src/stories/kit/layouts/admin/AdminLayout.CustomSidebarHeaderComponent.stories.tsx +18 -4
  489. package/src/stories/kit/layouts/admin/AdminLayout.CustomSidebarTitleAndIcon.stories.tsx +17 -4
  490. package/src/stories/kit/layouts/admin/AdminLayout.HeaderSlots.stories.tsx +28 -6
  491. package/src/stories/shadcn/ui/Accordion.stories.tsx +33 -10
  492. package/src/stories/shadcn/ui/AlertDialog.stories.tsx +3 -1
  493. package/src/stories/shadcn/ui/Button.stories.tsx +3 -1
  494. package/src/stories/shadcn/ui/Calendar.stories.tsx +6 -1
  495. package/src/stories/shadcn/ui/Card.stories.tsx +11 -2
  496. package/src/stories/shadcn/ui/Checkbox.stories.tsx +11 -3
  497. package/src/stories/shadcn/ui/Collapsible.stories.tsx +12 -5
  498. package/src/stories/shadcn/ui/ContextMenu.stories.tsx +12 -4
  499. package/src/stories/shadcn/ui/Dialog.stories.tsx +15 -3
  500. package/src/stories/shadcn/ui/Drawer.stories.tsx +5 -2
  501. package/src/stories/shadcn/ui/DropdownMenu.stories.tsx +15 -5
  502. package/src/stories/shadcn/ui/Form.stories.tsx +5 -2
  503. package/src/stories/shadcn/ui/HoverCard.stories.tsx +8 -2
  504. package/src/stories/shadcn/ui/Input.stories.tsx +3 -1
  505. package/src/stories/shadcn/ui/InputOtp.stories.tsx +9 -2
  506. package/src/stories/shadcn/ui/Menubar.stories.tsx +21 -7
  507. package/src/stories/shadcn/ui/NavigationMenu.stories.tsx +30 -5
  508. package/src/stories/shadcn/ui/Popover.stories.tsx +8 -2
  509. package/src/stories/shadcn/ui/Resizable.stories.tsx +17 -5
  510. package/src/stories/shadcn/ui/ScrollArea.stories.tsx +54 -2
  511. package/src/stories/shadcn/ui/Select.stories.tsx +7 -1
  512. package/src/stories/shadcn/ui/Sheet.stories.tsx +2 -1
  513. package/src/stories/shadcn/ui/Sidebar.stories.tsx +13 -2
  514. package/src/stories/shadcn/ui/Sonner.stories.tsx +12 -2
  515. package/src/stories/shadcn/ui/Table.stories.tsx +86 -27
  516. package/src/stories/shadcn/ui/Tabs.stories.tsx +9 -2
  517. package/src/stories/shadcn/ui/Textarea.stories.tsx +3 -1
  518. package/src/stories/shadcn/ui/Toggle.stories.tsx +10 -2
  519. package/src/stories/shadcn/ui/Tooltip.stories.tsx +6 -1
  520. package/storybook-static/assets/Accordion.stories-KU4JBR8U.js +52 -0
  521. package/storybook-static/assets/AdminLayout-CPvVCwfY.js +53 -0
  522. package/storybook-static/assets/AdminLayout.Basic.stories-DkP2UVXe.js +4 -0
  523. package/storybook-static/assets/AdminLayout.Collapsible.stories-BuuVjtpW.js +4 -0
  524. package/storybook-static/assets/AdminLayout.Complex.stories-D-k4H0hJ.js +29 -0
  525. package/storybook-static/assets/AdminLayout.CustomSidebarHeaderComponent.stories-B_0IEDd4.js +9 -0
  526. package/storybook-static/assets/AdminLayout.CustomSidebarTitleAndIcon.stories-CvAeXUyA.js +4 -0
  527. package/storybook-static/assets/AdminLayout.HeaderSlots.stories-RBFHoSZK.js +7 -0
  528. package/storybook-static/assets/Alert.stories-DKxKtIc0.js +27 -0
  529. package/storybook-static/assets/AlertDialog.stories-BqTpZ_nG.js +43 -0
  530. package/storybook-static/assets/AspectRatio.stories-DPO9QQ5F.js +22 -0
  531. package/storybook-static/assets/Autocomplete-Cpg4CaJe.js +56 -0
  532. package/storybook-static/assets/Autocomplete.stories-CWj4G5fh.js +56 -0
  533. package/storybook-static/assets/Avatar.stories-DPhov_2g.js +12 -0
  534. package/storybook-static/assets/Badge.stories-DFKrRdXq.js +12 -0
  535. package/storybook-static/assets/Breadcrumb.stories-CTE6CZUC.js +25 -0
  536. package/storybook-static/assets/Button.stories-cbt2InL-.js +26 -0
  537. package/storybook-static/assets/Calendar.stories-DRhTw_43.js +3 -0
  538. package/storybook-static/assets/Card.stories-Isf6n_K3.js +15 -0
  539. package/storybook-static/assets/Carousel.stories-Cmg0I3fR.js +15 -0
  540. package/storybook-static/assets/Chart.stories-aQ-fNijT.js +126 -0
  541. package/storybook-static/assets/Checkbox.stories-B7YMXPDc.js +12 -0
  542. package/storybook-static/assets/Collapsible.stories-BUzl17ZZ.js +18 -0
  543. package/storybook-static/assets/Combination-BdQWAuko.js +41 -0
  544. package/storybook-static/assets/Command.stories-DzBlWQs0.js +30 -0
  545. package/storybook-static/assets/ContextMenu.stories-CJlBQyXc.js +31 -0
  546. package/storybook-static/assets/DataTable.Basic.stories-BWYKFDmK.js +6 -0
  547. package/storybook-static/assets/DataTable.Filters.stories-uZdtJk8t.js +21 -0
  548. package/storybook-static/assets/DataTable.Pagination.stories-C5N1khkp.js +24 -0
  549. package/storybook-static/assets/DataTable.SelectionAndActions.stories-FhCqZKvO.js +26 -0
  550. package/storybook-static/assets/DataTable.Sorting.stories-D-k7EtRj.js +6 -0
  551. package/storybook-static/assets/Dialog.stories-C62AF-Gx.js +54 -0
  552. package/storybook-static/assets/Dialog.stories-lrjRwOus.js +18 -0
  553. package/storybook-static/assets/Drawer.stories-CGjkdJeV.js +24 -0
  554. package/storybook-static/assets/DropdownMenu.stories-DkGClRAA.js +35 -0
  555. package/storybook-static/assets/Form.ArrayLayouts.stories-C5d_062d.js +130 -0
  556. package/storybook-static/assets/Form.Autocomplete.stories-CPZPkk4o.js +142 -0
  557. package/storybook-static/assets/Form.Basic.stories-Bhcu3-3n.js +58 -0
  558. package/storybook-static/assets/Form.Complex.stories-QnXh5a7Q.js +361 -0
  559. package/storybook-static/assets/Form.Dynamic.stories-DFW6wIuT.js +502 -0
  560. package/storybook-static/assets/Form.Simple.stories-BhJcyhbE.js +53 -0
  561. package/storybook-static/assets/Form.stories-PFNsMYxO.js +3 -0
  562. package/storybook-static/assets/FormBuilder-BQBBxo_k.js +5 -0
  563. package/storybook-static/assets/HoverCard.stories-CAlQEVn8.js +21 -0
  564. package/storybook-static/assets/Input.stories-CEhODt0V.js +16 -0
  565. package/storybook-static/assets/InputOtp.stories-DSvNP4dS.js +42 -0
  566. package/storybook-static/assets/Label.stories-B3pa8ZLY.js +14 -0
  567. package/storybook-static/assets/Login.stories-C7KQkmR_.js +37 -0
  568. package/storybook-static/assets/Menubar.stories-CHXhSHxc.js +44 -0
  569. package/storybook-static/assets/MonthPicker.stories-BnrOc4fm.js +99 -0
  570. package/storybook-static/assets/MonthRangePicker.stories-55Gk1t-7.js +134 -0
  571. package/storybook-static/assets/NavigationMenu.stories-CXoS080P.js +30 -0
  572. package/storybook-static/assets/Page.stories-GdSJgZ6-.js +91 -0
  573. package/storybook-static/assets/Pagination.stories-BEBwqH4N.js +29 -0
  574. package/storybook-static/assets/Popover.stories-BICy98Cw.js +15 -0
  575. package/storybook-static/assets/Progress.stories-DECHNOME.js +8 -0
  576. package/storybook-static/assets/RadioGroup.stories-DA7-uKfV.js +16 -0
  577. package/storybook-static/assets/Resizable.stories-B99kWkH7.js +25 -0
  578. package/storybook-static/assets/ScrollArea.stories-BqvUAXqU.js +12 -0
  579. package/storybook-static/assets/Section.stories-lFMlFBQn.js +277 -0
  580. package/storybook-static/assets/SectionBuilder-BQW705x0.js +1 -0
  581. package/storybook-static/assets/Select.stories-BsKyZ6Io.js +17 -0
  582. package/storybook-static/assets/Separator.stories-BTDOaOM2.js +17 -0
  583. package/storybook-static/assets/Sheet.stories-Cam1gR6G.js +24 -0
  584. package/storybook-static/assets/Sidebar.stories-DnOa6G7y.js +106 -0
  585. package/storybook-static/assets/Skeleton.stories-BQNIuIe5.js +9 -0
  586. package/storybook-static/assets/Slider.stories-Bslq7hjq.js +6 -0
  587. package/storybook-static/assets/Sonner.stories-D34pBBtI.js +18 -0
  588. package/storybook-static/assets/Switch.stories-Puyb1-Bx.js +3 -0
  589. package/storybook-static/assets/Table.stories-ClZxAhut.js +35 -0
  590. package/storybook-static/assets/Tabs.stories-CURNTETB.js +10 -0
  591. package/storybook-static/assets/Textarea.stories-Cf1ZBrWw.js +17 -0
  592. package/storybook-static/assets/Toggle.stories-CdMHY_bi.js +3 -0
  593. package/storybook-static/assets/ToggleGroup.stories-BM68m1dX.js +13 -0
  594. package/storybook-static/assets/Tooltip.stories-DiQv64dM.js +10 -0
  595. package/storybook-static/assets/accordion-DVgwQcnw.js +1 -0
  596. package/storybook-static/assets/alert-dialog-DCUEwpqm.js +7 -0
  597. package/storybook-static/assets/avatar-BzwOE-mi.js +1 -0
  598. package/storybook-static/assets/axe-HmUsR1st.js +30 -0
  599. package/storybook-static/assets/badge-BnQWua6u.js +1 -0
  600. package/storybook-static/assets/button-0oMkiryo.js +1 -0
  601. package/storybook-static/assets/card-BJpPOzP8.js +1 -0
  602. package/storybook-static/assets/chart-column-DZGb4ZZS.js +6 -0
  603. package/storybook-static/assets/check-B9hBGj6o.js +6 -0
  604. package/storybook-static/assets/checkbox-CyIeaWHX.js +1 -0
  605. package/storybook-static/assets/chevron-down-D_37S6il.js +6 -0
  606. package/storybook-static/assets/chevron-left-BBoN0vbI.js +6 -0
  607. package/storybook-static/assets/chevron-right-B5vIMLxK.js +6 -0
  608. package/storybook-static/assets/circle-C5Lzx6Nx.js +6 -0
  609. package/storybook-static/assets/clean-slate-D1HmMFJM.css +1 -0
  610. package/storybook-static/assets/command-Csa9p8_a.js +6 -0
  611. package/storybook-static/assets/createLucideIcon-BrHXro7t.js +21 -0
  612. package/storybook-static/assets/default-CN_Fo1GY.css +1 -0
  613. package/storybook-static/assets/dependencies-ctrV69dx.js +1 -0
  614. package/storybook-static/assets/dialog-CsnqITTn.js +1 -0
  615. package/storybook-static/assets/dropdown-menu-BWxxwPHL.js +1 -0
  616. package/storybook-static/assets/ellipsis-BRS038RR.js +6 -0
  617. package/storybook-static/assets/grip-vertical-BxXG8KNA.js +6 -0
  618. package/storybook-static/assets/iframe-C9bogcIc.css +1 -0
  619. package/storybook-static/assets/iframe-v7iAhKit.js +1555 -0
  620. package/storybook-static/assets/index-0-qMRXou.js +1 -0
  621. package/storybook-static/assets/index-AvwFFKJc.js +1 -0
  622. package/storybook-static/assets/index-BVDb4dFc.js +1 -0
  623. package/storybook-static/assets/index-B_qx7A5T.js +1 -0
  624. package/storybook-static/assets/index-BdQq_4o_.js +1 -0
  625. package/storybook-static/assets/index-BfiCOk42.js +1 -0
  626. package/storybook-static/assets/index-Bv9yk470.js +1 -0
  627. package/storybook-static/assets/index-Bw1A27Kp.js +1 -0
  628. package/storybook-static/assets/index-ByqivBWx.js +1 -0
  629. package/storybook-static/assets/index-C9Ta0ZTH.js +1 -0
  630. package/storybook-static/assets/index-CDY5kTx5.js +1 -0
  631. package/storybook-static/assets/index-CGnyVRgB.js +1 -0
  632. package/storybook-static/assets/index-CGrAONsN.js +1 -0
  633. package/storybook-static/assets/index-CWjrGFAQ.js +1 -0
  634. package/storybook-static/assets/index-CwBdPBFz.js +9 -0
  635. package/storybook-static/assets/index-D8RXF03I.js +1 -0
  636. package/storybook-static/assets/index-DLIxT4Z7.js +1 -0
  637. package/storybook-static/assets/index-DW48STyt.js +1 -0
  638. package/storybook-static/assets/index-DbaA6-o1.js +1 -0
  639. package/storybook-static/assets/index-Dph_5COR.js +1 -0
  640. package/storybook-static/assets/index-DrN5n71E.js +1 -0
  641. package/storybook-static/assets/index-Tp9IdbR8.js +1 -0
  642. package/storybook-static/assets/index-WyF3-wTE.js +9 -0
  643. package/storybook-static/assets/index-XSmPROEP.js +1 -0
  644. package/storybook-static/assets/index-Z6wF44KX.js +5 -0
  645. package/storybook-static/assets/index-_RPqOjlQ.js +1 -0
  646. package/storybook-static/assets/index-jrimW4QO.js +1 -0
  647. package/storybook-static/assets/index-nqc17SX4.js +1 -0
  648. package/storybook-static/assets/input-11YRd9gD.js +1 -0
  649. package/storybook-static/assets/jsx-runtime-D_zvdyIk.js +9 -0
  650. package/storybook-static/assets/label-Do8ODIVk.js +1 -0
  651. package/storybook-static/assets/lodash-DDwpuhPG.js +73 -0
  652. package/storybook-static/assets/matchers-7Z3WT2CE-T3xScrR7.js +14 -0
  653. package/storybook-static/assets/minimal-modern-BlYVzfQU.css +1 -0
  654. package/storybook-static/assets/popover-CcciSWAw.js +1 -0
  655. package/storybook-static/assets/preload-helper-Dp1pzeXC.js +1 -0
  656. package/storybook-static/assets/radio-group-DiJ0Y_KQ.js +1 -0
  657. package/storybook-static/assets/react-18-Cr9fq_Ip.js +25 -0
  658. package/storybook-static/assets/react-icons.esm-B_ULMmNU.js +1 -0
  659. package/storybook-static/assets/refresh-cw-BmRDhIV_.js +6 -0
  660. package/storybook-static/assets/schemas-CGNYCiJ6.js +18 -0
  661. package/storybook-static/assets/section-factories-DCCY9R35.js +1 -0
  662. package/storybook-static/assets/select-DDrkxaOg.js +6 -0
  663. package/storybook-static/assets/separator-o5SAUnaJ.js +1 -0
  664. package/storybook-static/assets/settings-2-xWGvvbG6.js +6 -0
  665. package/storybook-static/assets/sheet-C7jhU3XE.js +1 -0
  666. package/storybook-static/assets/shopping-cart-BFlrufvo.js +11 -0
  667. package/storybook-static/assets/sidebar-C8hU1Mxy.js +6 -0
  668. package/storybook-static/assets/skeleton-CjDnQs43.js +1 -0
  669. package/storybook-static/assets/spotify-CUDj7g8m.css +1 -0
  670. package/storybook-static/assets/switch-CKGRuk3u.js +1 -0
  671. package/storybook-static/assets/table-CP3vMqFn.js +1 -0
  672. package/storybook-static/assets/tabs-CopK2m3j.js +1 -0
  673. package/storybook-static/assets/textarea-Dw2vruMl.js +1 -0
  674. package/storybook-static/assets/toggle-DmHbWetf.js +16 -0
  675. package/storybook-static/assets/tooltip-_LqYEYFw.js +1 -0
  676. package/storybook-static/assets/trash-2-xdbApPby.js +11 -0
  677. package/storybook-static/assets/utils-D-KgF5mV.js +1 -0
  678. package/storybook-static/assets/x-B1a4fyWM.js +6 -0
  679. package/storybook-static/favicon-wrapper.svg +46 -0
  680. package/storybook-static/favicon.svg +1 -0
  681. package/storybook-static/iframe.html +687 -0
  682. package/storybook-static/index.d.ts +64 -0
  683. package/storybook-static/index.d.ts.map +1 -0
  684. package/storybook-static/index.html +166 -0
  685. package/storybook-static/index.json +1 -0
  686. package/storybook-static/kit/builder/data-table/components/DataTable.d.ts +37 -0
  687. package/storybook-static/kit/builder/data-table/components/DataTable.d.ts.map +1 -0
  688. package/storybook-static/kit/builder/data-table/components/DataTableColumnHeader.d.ts +8 -0
  689. package/storybook-static/kit/builder/data-table/components/DataTableColumnHeader.d.ts.map +1 -0
  690. package/storybook-static/kit/builder/data-table/components/DataTablePagination.d.ts +6 -0
  691. package/storybook-static/kit/builder/data-table/components/DataTablePagination.d.ts.map +1 -0
  692. package/storybook-static/kit/builder/data-table/components/DataTableViewOptions.d.ts +5 -0
  693. package/storybook-static/kit/builder/data-table/components/DataTableViewOptions.d.ts.map +1 -0
  694. package/storybook-static/kit/builder/data-table/index.d.ts +7 -0
  695. package/storybook-static/kit/builder/data-table/index.d.ts.map +1 -0
  696. package/storybook-static/kit/builder/data-table/types.d.ts +27 -0
  697. package/storybook-static/kit/builder/data-table/types.d.ts.map +1 -0
  698. package/storybook-static/kit/builder/data-table/utils/dotAccessor.d.ts +2 -0
  699. package/storybook-static/kit/builder/data-table/utils/dotAccessor.d.ts.map +1 -0
  700. package/storybook-static/kit/builder/dialog/index.d.ts +3 -0
  701. package/storybook-static/kit/builder/dialog/index.d.ts.map +1 -0
  702. package/storybook-static/kit/builder/dialog/provider.d.ts +26 -0
  703. package/storybook-static/kit/builder/dialog/provider.d.ts.map +1 -0
  704. package/storybook-static/kit/builder/form/components/FormBuilder.d.ts +137 -0
  705. package/storybook-static/kit/builder/form/components/FormBuilder.d.ts.map +1 -0
  706. package/storybook-static/kit/builder/form/components/FormBuilderActions.d.ts +20 -0
  707. package/storybook-static/kit/builder/form/components/FormBuilderActions.d.ts.map +1 -0
  708. package/storybook-static/kit/builder/form/components/FormBuilderField.d.ts +12 -0
  709. package/storybook-static/kit/builder/form/components/FormBuilderField.d.ts.map +1 -0
  710. package/storybook-static/kit/builder/form/components/fields/ArrayField.d.ts +3 -0
  711. package/storybook-static/kit/builder/form/components/fields/ArrayField.d.ts.map +1 -0
  712. package/storybook-static/kit/builder/form/components/fields/AutocompleteField.d.ts +3 -0
  713. package/storybook-static/kit/builder/form/components/fields/AutocompleteField.d.ts.map +1 -0
  714. package/storybook-static/kit/builder/form/components/fields/CheckboxField.d.ts +3 -0
  715. package/storybook-static/kit/builder/form/components/fields/CheckboxField.d.ts.map +1 -0
  716. package/storybook-static/kit/builder/form/components/fields/DateField.d.ts +3 -0
  717. package/storybook-static/kit/builder/form/components/fields/DateField.d.ts.map +1 -0
  718. package/storybook-static/kit/builder/form/components/fields/FileField.d.ts +3 -0
  719. package/storybook-static/kit/builder/form/components/fields/FileField.d.ts.map +1 -0
  720. package/storybook-static/kit/builder/form/components/fields/NumberField.d.ts +3 -0
  721. package/storybook-static/kit/builder/form/components/fields/NumberField.d.ts.map +1 -0
  722. package/storybook-static/kit/builder/form/components/fields/ObjectField.d.ts +3 -0
  723. package/storybook-static/kit/builder/form/components/fields/ObjectField.d.ts.map +1 -0
  724. package/storybook-static/kit/builder/form/components/fields/RadioField.d.ts +3 -0
  725. package/storybook-static/kit/builder/form/components/fields/RadioField.d.ts.map +1 -0
  726. package/storybook-static/kit/builder/form/components/fields/SelectField.d.ts +3 -0
  727. package/storybook-static/kit/builder/form/components/fields/SelectField.d.ts.map +1 -0
  728. package/storybook-static/kit/builder/form/components/fields/SwitchField.d.ts +3 -0
  729. package/storybook-static/kit/builder/form/components/fields/SwitchField.d.ts.map +1 -0
  730. package/storybook-static/kit/builder/form/components/fields/TextField.d.ts +3 -0
  731. package/storybook-static/kit/builder/form/components/fields/TextField.d.ts.map +1 -0
  732. package/storybook-static/kit/builder/form/components/fields/TextareaField.d.ts +3 -0
  733. package/storybook-static/kit/builder/form/components/fields/TextareaField.d.ts.map +1 -0
  734. package/storybook-static/kit/builder/form/components/fields/index.d.ts +14 -0
  735. package/storybook-static/kit/builder/form/components/fields/index.d.ts.map +1 -0
  736. package/storybook-static/kit/builder/form/components/fields/types.d.ts +14 -0
  737. package/storybook-static/kit/builder/form/components/fields/types.d.ts.map +1 -0
  738. package/storybook-static/kit/builder/form/components/index.d.ts +4 -0
  739. package/storybook-static/kit/builder/form/components/index.d.ts.map +1 -0
  740. package/storybook-static/kit/builder/form/index.d.ts +3 -0
  741. package/storybook-static/kit/builder/form/index.d.ts.map +1 -0
  742. package/storybook-static/kit/builder/form/utils/common-forms.d.ts +7 -0
  743. package/storybook-static/kit/builder/form/utils/common-forms.d.ts.map +1 -0
  744. package/storybook-static/kit/builder/form/utils/dependencies.d.ts +41 -0
  745. package/storybook-static/kit/builder/form/utils/dependencies.d.ts.map +1 -0
  746. package/storybook-static/kit/builder/form/utils/field-factories.d.ts +23 -0
  747. package/storybook-static/kit/builder/form/utils/field-factories.d.ts.map +1 -0
  748. package/storybook-static/kit/builder/form/utils/index.d.ts +15 -0
  749. package/storybook-static/kit/builder/form/utils/index.d.ts.map +1 -0
  750. package/storybook-static/kit/builder/form/utils/section-factories.d.ts +7 -0
  751. package/storybook-static/kit/builder/form/utils/section-factories.d.ts.map +1 -0
  752. package/storybook-static/kit/builder/form/utils/transformers.d.ts +6 -0
  753. package/storybook-static/kit/builder/form/utils/transformers.d.ts.map +1 -0
  754. package/storybook-static/kit/builder/form/utils/validations.d.ts +13 -0
  755. package/storybook-static/kit/builder/form/utils/validations.d.ts.map +1 -0
  756. package/storybook-static/kit/builder/form/utils/validators.d.ts +8 -0
  757. package/storybook-static/kit/builder/form/utils/validators.d.ts.map +1 -0
  758. package/storybook-static/kit/builder/page/Page.d.ts +48 -0
  759. package/storybook-static/kit/builder/page/Page.d.ts.map +1 -0
  760. package/storybook-static/kit/builder/page/index.d.ts +2 -0
  761. package/storybook-static/kit/builder/page/index.d.ts.map +1 -0
  762. package/storybook-static/kit/builder/section/SectionBuilder.d.ts +3 -0
  763. package/storybook-static/kit/builder/section/SectionBuilder.d.ts.map +1 -0
  764. package/storybook-static/kit/builder/section/index.d.ts +3 -0
  765. package/storybook-static/kit/builder/section/index.d.ts.map +1 -0
  766. package/storybook-static/kit/builder/section/types.d.ts +70 -0
  767. package/storybook-static/kit/builder/section/types.d.ts.map +1 -0
  768. package/storybook-static/kit/builder/stack-dialog/context.d.ts +3 -0
  769. package/storybook-static/kit/builder/stack-dialog/context.d.ts.map +1 -0
  770. package/storybook-static/kit/builder/stack-dialog/hooks.d.ts +6 -0
  771. package/storybook-static/kit/builder/stack-dialog/hooks.d.ts.map +1 -0
  772. package/storybook-static/kit/builder/stack-dialog/index.d.ts +5 -0
  773. package/storybook-static/kit/builder/stack-dialog/index.d.ts.map +1 -0
  774. package/storybook-static/kit/builder/stack-dialog/provider.d.ts +3 -0
  775. package/storybook-static/kit/builder/stack-dialog/provider.d.ts.map +1 -0
  776. package/storybook-static/kit/builder/stack-dialog/renderer.d.ts +6 -0
  777. package/storybook-static/kit/builder/stack-dialog/renderer.d.ts.map +1 -0
  778. package/storybook-static/kit/builder/stack-dialog/types.d.ts +20 -0
  779. package/storybook-static/kit/builder/stack-dialog/types.d.ts.map +1 -0
  780. package/storybook-static/kit/components/autocomplete/Autocomplete.d.ts +53 -0
  781. package/storybook-static/kit/components/autocomplete/Autocomplete.d.ts.map +1 -0
  782. package/storybook-static/kit/components/autocomplete/index.d.ts +4 -0
  783. package/storybook-static/kit/components/autocomplete/index.d.ts.map +1 -0
  784. package/storybook-static/kit/components/autocomplete/types.d.ts +19 -0
  785. package/storybook-static/kit/components/autocomplete/types.d.ts.map +1 -0
  786. package/storybook-static/kit/components/login/Login.d.ts +29 -0
  787. package/storybook-static/kit/components/login/Login.d.ts.map +1 -0
  788. package/storybook-static/kit/components/login/index.d.ts +2 -0
  789. package/storybook-static/kit/components/login/index.d.ts.map +1 -0
  790. package/storybook-static/kit/components/monthpicker/MonthPicker.d.ts +32 -0
  791. package/storybook-static/kit/components/monthpicker/MonthPicker.d.ts.map +1 -0
  792. package/storybook-static/kit/components/monthpicker/MonthRangePicker.d.ts +48 -0
  793. package/storybook-static/kit/components/monthpicker/MonthRangePicker.d.ts.map +1 -0
  794. package/storybook-static/kit/layouts/admin/components/AdminLayout.d.ts +17 -0
  795. package/storybook-static/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -0
  796. package/storybook-static/kit/layouts/admin/components/ThemeToggle.d.ts +5 -0
  797. package/storybook-static/kit/layouts/admin/components/ThemeToggle.d.ts.map +1 -0
  798. package/storybook-static/kit/layouts/admin/hooks/menu.d.ts +13 -0
  799. package/storybook-static/kit/layouts/admin/hooks/menu.d.ts.map +1 -0
  800. package/storybook-static/kit/layouts/admin/providers/AdminMenuProvider.d.ts +7 -0
  801. package/storybook-static/kit/layouts/admin/providers/AdminMenuProvider.d.ts.map +1 -0
  802. package/storybook-static/kit/layouts/admin/types/index.d.ts +27 -0
  803. package/storybook-static/kit/layouts/admin/types/index.d.ts.map +1 -0
  804. package/storybook-static/kit/providers/ThemeProvider.d.ts +14 -0
  805. package/storybook-static/kit/providers/ThemeProvider.d.ts.map +1 -0
  806. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  807. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  808. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  809. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  810. package/storybook-static/project.json +1 -0
  811. package/storybook-static/sb-addons/a11y-5/manager-bundle.js +5 -0
  812. package/storybook-static/sb-addons/essentials-backgrounds-1/manager-bundle.js +3 -0
  813. package/storybook-static/sb-addons/essentials-measure-2/manager-bundle.js +3 -0
  814. package/storybook-static/sb-addons/essentials-outline-3/manager-bundle.js +3 -0
  815. package/storybook-static/sb-addons/interactions-4/manager-bundle.js +57 -0
  816. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +971 -0
  817. package/storybook-static/sb-addons/storysource-6/manager-bundle.js +3 -0
  818. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  819. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  820. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  821. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  822. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  823. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  824. package/storybook-static/sb-manager/globals-module-info.js +797 -0
  825. package/storybook-static/sb-manager/globals-runtime.js +69653 -0
  826. package/storybook-static/sb-manager/globals.js +34 -0
  827. package/storybook-static/sb-manager/runtime.js +13181 -0
  828. package/storybook-static/shadcn/hooks/use-mobile.d.ts +2 -0
  829. package/storybook-static/shadcn/hooks/use-mobile.d.ts.map +1 -0
  830. package/storybook-static/shadcn/lib/utils.d.ts +3 -0
  831. package/storybook-static/shadcn/lib/utils.d.ts.map +1 -0
  832. package/storybook-static/shadcn/ui/accordion.d.ts +8 -0
  833. package/storybook-static/shadcn/ui/accordion.d.ts.map +1 -0
  834. package/storybook-static/shadcn/ui/alert-dialog.d.ts +15 -0
  835. package/storybook-static/shadcn/ui/alert-dialog.d.ts.map +1 -0
  836. package/storybook-static/shadcn/ui/alert.d.ts +10 -0
  837. package/storybook-static/shadcn/ui/alert.d.ts.map +1 -0
  838. package/storybook-static/shadcn/ui/aspect-ratio.d.ts +4 -0
  839. package/storybook-static/shadcn/ui/aspect-ratio.d.ts.map +1 -0
  840. package/storybook-static/shadcn/ui/avatar.d.ts +7 -0
  841. package/storybook-static/shadcn/ui/avatar.d.ts.map +1 -0
  842. package/storybook-static/shadcn/ui/badge.d.ts +10 -0
  843. package/storybook-static/shadcn/ui/badge.d.ts.map +1 -0
  844. package/storybook-static/shadcn/ui/breadcrumb.d.ts +12 -0
  845. package/storybook-static/shadcn/ui/breadcrumb.d.ts.map +1 -0
  846. package/storybook-static/shadcn/ui/button.d.ts +11 -0
  847. package/storybook-static/shadcn/ui/button.d.ts.map +1 -0
  848. package/storybook-static/shadcn/ui/calendar.d.ts +9 -0
  849. package/storybook-static/shadcn/ui/calendar.d.ts.map +1 -0
  850. package/storybook-static/shadcn/ui/card.d.ts +10 -0
  851. package/storybook-static/shadcn/ui/card.d.ts.map +1 -0
  852. package/storybook-static/shadcn/ui/carousel.d.ts +20 -0
  853. package/storybook-static/shadcn/ui/carousel.d.ts.map +1 -0
  854. package/storybook-static/shadcn/ui/chart.d.ts +41 -0
  855. package/storybook-static/shadcn/ui/chart.d.ts.map +1 -0
  856. package/storybook-static/shadcn/ui/checkbox.d.ts +5 -0
  857. package/storybook-static/shadcn/ui/checkbox.d.ts.map +1 -0
  858. package/storybook-static/shadcn/ui/collapsible.d.ts +6 -0
  859. package/storybook-static/shadcn/ui/collapsible.d.ts.map +1 -0
  860. package/storybook-static/shadcn/ui/command.d.ts +19 -0
  861. package/storybook-static/shadcn/ui/command.d.ts.map +1 -0
  862. package/storybook-static/shadcn/ui/context-menu.d.ts +26 -0
  863. package/storybook-static/shadcn/ui/context-menu.d.ts.map +1 -0
  864. package/storybook-static/shadcn/ui/dialog.d.ts +16 -0
  865. package/storybook-static/shadcn/ui/dialog.d.ts.map +1 -0
  866. package/storybook-static/shadcn/ui/drawer.d.ts +14 -0
  867. package/storybook-static/shadcn/ui/drawer.d.ts.map +1 -0
  868. package/storybook-static/shadcn/ui/dropdown-menu.d.ts +26 -0
  869. package/storybook-static/shadcn/ui/dropdown-menu.d.ts.map +1 -0
  870. package/storybook-static/shadcn/ui/form.d.ts +25 -0
  871. package/storybook-static/shadcn/ui/form.d.ts.map +1 -0
  872. package/storybook-static/shadcn/ui/hover-card.d.ts +7 -0
  873. package/storybook-static/shadcn/ui/hover-card.d.ts.map +1 -0
  874. package/storybook-static/shadcn/ui/input-otp.d.ts +12 -0
  875. package/storybook-static/shadcn/ui/input-otp.d.ts.map +1 -0
  876. package/storybook-static/shadcn/ui/input.d.ts +4 -0
  877. package/storybook-static/shadcn/ui/input.d.ts.map +1 -0
  878. package/storybook-static/shadcn/ui/label.d.ts +5 -0
  879. package/storybook-static/shadcn/ui/label.d.ts.map +1 -0
  880. package/storybook-static/shadcn/ui/menubar.d.ts +27 -0
  881. package/storybook-static/shadcn/ui/menubar.d.ts.map +1 -0
  882. package/storybook-static/shadcn/ui/navigation-menu.d.ts +15 -0
  883. package/storybook-static/shadcn/ui/navigation-menu.d.ts.map +1 -0
  884. package/storybook-static/shadcn/ui/pagination.d.ts +14 -0
  885. package/storybook-static/shadcn/ui/pagination.d.ts.map +1 -0
  886. package/storybook-static/shadcn/ui/popover.d.ts +8 -0
  887. package/storybook-static/shadcn/ui/popover.d.ts.map +1 -0
  888. package/storybook-static/shadcn/ui/progress.d.ts +5 -0
  889. package/storybook-static/shadcn/ui/progress.d.ts.map +1 -0
  890. package/storybook-static/shadcn/ui/radio-group.d.ts +6 -0
  891. package/storybook-static/shadcn/ui/radio-group.d.ts.map +1 -0
  892. package/storybook-static/shadcn/ui/resizable.d.ts +9 -0
  893. package/storybook-static/shadcn/ui/resizable.d.ts.map +1 -0
  894. package/storybook-static/shadcn/ui/scroll-area.d.ts +6 -0
  895. package/storybook-static/shadcn/ui/scroll-area.d.ts.map +1 -0
  896. package/storybook-static/shadcn/ui/select.d.ts +16 -0
  897. package/storybook-static/shadcn/ui/select.d.ts.map +1 -0
  898. package/storybook-static/shadcn/ui/separator.d.ts +5 -0
  899. package/storybook-static/shadcn/ui/separator.d.ts.map +1 -0
  900. package/storybook-static/shadcn/ui/sheet.d.ts +14 -0
  901. package/storybook-static/shadcn/ui/sheet.d.ts.map +1 -0
  902. package/storybook-static/shadcn/ui/sidebar.d.ts +70 -0
  903. package/storybook-static/shadcn/ui/sidebar.d.ts.map +1 -0
  904. package/storybook-static/shadcn/ui/skeleton.d.ts +3 -0
  905. package/storybook-static/shadcn/ui/skeleton.d.ts.map +1 -0
  906. package/storybook-static/shadcn/ui/slider.d.ts +5 -0
  907. package/storybook-static/shadcn/ui/slider.d.ts.map +1 -0
  908. package/storybook-static/shadcn/ui/sonner.d.ts +4 -0
  909. package/storybook-static/shadcn/ui/sonner.d.ts.map +1 -0
  910. package/storybook-static/shadcn/ui/switch.d.ts +5 -0
  911. package/storybook-static/shadcn/ui/switch.d.ts.map +1 -0
  912. package/storybook-static/shadcn/ui/table.d.ts +11 -0
  913. package/storybook-static/shadcn/ui/table.d.ts.map +1 -0
  914. package/storybook-static/shadcn/ui/tabs.d.ts +8 -0
  915. package/storybook-static/shadcn/ui/tabs.d.ts.map +1 -0
  916. package/storybook-static/shadcn/ui/textarea.d.ts +4 -0
  917. package/storybook-static/shadcn/ui/textarea.d.ts.map +1 -0
  918. package/storybook-static/shadcn/ui/toggle-group.d.ts +8 -0
  919. package/storybook-static/shadcn/ui/toggle-group.d.ts.map +1 -0
  920. package/storybook-static/shadcn/ui/toggle.d.ts +10 -0
  921. package/storybook-static/shadcn/ui/toggle.d.ts.map +1 -0
  922. package/storybook-static/shadcn/ui/tooltip.d.ts +8 -0
  923. package/storybook-static/shadcn/ui/tooltip.d.ts.map +1 -0
  924. package/storybook-static/vite-inject-mocker-entry.js +18 -0
  925. package/tsconfig.json +1 -5
  926. package/tsconfig.tsbuildinfo +1 -0
  927. package/eslint.config.mjs +0 -19
@@ -0,0 +1,76 @@
1
+ export function createUrqlAuthExchange(
2
+ getToken: () => string | null,
3
+ options?: {
4
+ tokenType?: string
5
+ refreshToken?: () => Promise<void>
6
+ onTokenExpired?: () => void
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ willAuthError?: (params: { authState: any; operation: any }) => boolean
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ didAuthError?: (params: { error: any; operation: any }) => boolean
11
+ },
12
+ ) {
13
+ const tokenType = options?.tokenType ?? 'Bearer'
14
+
15
+ // Avoid direct dependency on @urql/exchange-auth. Return a factory that accepts it.
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ return (authExchange: any) =>
18
+ authExchange({
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ addAuthToOperation: ({ authState, operation }: any) => {
21
+ const token = authState?.token ?? getToken()
22
+ if (!token) return operation
23
+
24
+ const fetchOptions =
25
+ typeof operation.context.fetchOptions === 'function'
26
+ ? operation.context.fetchOptions()
27
+ : operation.context.fetchOptions || {}
28
+
29
+ return {
30
+ ...operation,
31
+ context: {
32
+ ...operation.context,
33
+ fetchOptions: {
34
+ ...fetchOptions,
35
+ headers: {
36
+ ...fetchOptions.headers,
37
+ Authorization: `${tokenType} ${token}`,
38
+ },
39
+ },
40
+ },
41
+ }
42
+ },
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ getAuth: async ({ authState }: any) => {
45
+ if (!authState) {
46
+ const token = getToken()
47
+ if (token) return { token }
48
+ return null
49
+ }
50
+
51
+ if (options?.refreshToken) {
52
+ try {
53
+ await options.refreshToken()
54
+ const token = getToken()
55
+ if (token) return { token }
56
+ } catch (_e) {
57
+ options.onTokenExpired?.()
58
+ return null
59
+ }
60
+ }
61
+ return null
62
+ },
63
+ willAuthError: options?.willAuthError,
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ didAuthError: (params: { error: any; operation: any }) => {
66
+ if (options?.didAuthError) return options.didAuthError(params)
67
+ const { error } = params
68
+ return (
69
+ error?.graphQLErrors?.some(
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
+ (e: any) => e.extensions?.code === 'UNAUTHENTICATED',
72
+ ) || error?.response?.status === 401
73
+ )
74
+ },
75
+ })
76
+ }
@@ -0,0 +1,150 @@
1
+ import type {
2
+ PermissionHierarchy,
3
+ PermissionPolicy,
4
+ PermissionRule,
5
+ RoleHierarchy,
6
+ } from '../types';
7
+
8
+ /**
9
+ * Expands permissions based on hierarchy
10
+ * e.g., if user has 'admin' and hierarchy defines admin: ['read', 'write'],
11
+ * user effectively has ['admin', 'read', 'write']
12
+ */
13
+ export function expandPermissions<T extends string>(
14
+ permissions: T[],
15
+ hierarchy?: PermissionHierarchy<T>,
16
+ ): T[] {
17
+ if (!hierarchy) return permissions;
18
+
19
+ const expanded = new Set<T>(permissions);
20
+ const queue = [...permissions];
21
+
22
+ while (queue.length > 0) {
23
+ const current = queue.shift();
24
+ if (!current) continue;
25
+ const children = hierarchy[current];
26
+
27
+ if (children) {
28
+ for (const child of children) {
29
+ if (!expanded.has(child)) {
30
+ expanded.add(child);
31
+ queue.push(child);
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ return Array.from(expanded);
38
+ }
39
+
40
+ /**
41
+ * Expands roles based on hierarchy
42
+ * e.g., if user has 'admin' and hierarchy defines admin: ['moderator', 'user'],
43
+ * user effectively has ['admin', 'moderator', 'user']
44
+ */
45
+ export function expandRoles<T extends string>(
46
+ roles: T[],
47
+ hierarchy?: RoleHierarchy<T>,
48
+ ): T[] {
49
+ if (!hierarchy) return roles;
50
+
51
+ const expanded = new Set<T>(roles);
52
+ const queue = [...roles];
53
+
54
+ while (queue.length > 0) {
55
+ const current = queue.shift();
56
+ if (!current) continue;
57
+ const children = hierarchy[current];
58
+
59
+ if (children) {
60
+ for (const child of children) {
61
+ if (!expanded.has(child)) {
62
+ expanded.add(child);
63
+ queue.push(child);
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ return Array.from(expanded);
70
+ }
71
+
72
+ /**
73
+ * Checks if target permissions match against user permissions
74
+ * Supports both array of permissions and permission policies (AND/OR operations)
75
+ */
76
+ export function checkPermissions<T extends string>(
77
+ userPermissions: T[],
78
+ target: T | T[] | PermissionPolicy<T>,
79
+ options?: { requireAll?: boolean },
80
+ ): boolean {
81
+ // Handle permission policy (with AND/OR operator)
82
+ if (typeof target === 'object' && 'permissions' in target) {
83
+ const policy = target as PermissionPolicy<T>;
84
+ const operator = policy.operator ?? 'AND';
85
+
86
+ if (operator === 'AND') {
87
+ return policy.permissions.every((p) => userPermissions.includes(p));
88
+ } else {
89
+ return policy.permissions.some((p) => userPermissions.includes(p));
90
+ }
91
+ }
92
+
93
+ // Handle simple string or array
94
+ const targets = Array.isArray(target) ? target : [target];
95
+ const requireAll = options?.requireAll ?? true;
96
+
97
+ if (targets.length === 0) return true;
98
+
99
+ return requireAll
100
+ ? targets.every((p) => userPermissions.includes(p))
101
+ : targets.some((p) => userPermissions.includes(p));
102
+ }
103
+
104
+ /**
105
+ * Checks if target roles match against user roles
106
+ */
107
+ export function checkRoles<T extends string>(
108
+ userRoles: T[],
109
+ target: T | T[],
110
+ options?: { requireAll?: boolean },
111
+ ): boolean {
112
+ const targets = Array.isArray(target) ? target : [target];
113
+ const requireAll = options?.requireAll ?? true;
114
+
115
+ if (targets.length === 0) return true;
116
+
117
+ return requireAll
118
+ ? targets.every((r) => userRoles.includes(r))
119
+ : targets.some((r) => userRoles.includes(r));
120
+ }
121
+
122
+ /**
123
+ * Evaluates a permission rule (combination of roles and permissions)
124
+ */
125
+ export function evaluatePermissionRule<
126
+ TRole extends string = string,
127
+ TPermission extends string = string,
128
+ >(
129
+ userRoles: TRole[],
130
+ userPermissions: TPermission[],
131
+ rule: PermissionRule<TRole, TPermission>,
132
+ ): boolean {
133
+ if (!rule.roles && !rule.permissions) {
134
+ return true;
135
+ }
136
+
137
+ const requireAll = rule.requireAll ?? true;
138
+
139
+ const roleAllowed = rule.roles
140
+ ? checkRoles(userRoles, rule.roles, { requireAll })
141
+ : true;
142
+
143
+ const permissionAllowed = rule.permissions
144
+ ? checkPermissions(userPermissions, rule.permissions, { requireAll })
145
+ : true;
146
+
147
+ return requireAll
148
+ ? roleAllowed && permissionAllowed
149
+ : roleAllowed || permissionAllowed;
150
+ }
@@ -0,0 +1,99 @@
1
+ import type { AuthStorage } from '../../types'
2
+ import { isBrowser } from './env'
3
+ import { createMemoryStorage } from './memory'
4
+ import { SimpleEncryption } from './encryption'
5
+
6
+ export type BrowserStorageOptions<T> = {
7
+ key: string
8
+ serialize?: (value: T | null) => Promise<string | null> | string | null
9
+ deserialize?: (value: string | null) => Promise<T | null> | T | null
10
+ storage?: Storage
11
+ encrypt?: boolean
12
+ encryptionKey?: string
13
+ }
14
+
15
+ export const createBrowserStorage = <T>(
16
+ options: BrowserStorageOptions<T>,
17
+ ): AuthStorage<T> => {
18
+ const fallback = createMemoryStorage<T>()
19
+ const targetStorage =
20
+ options.storage ?? (isBrowser ? window.localStorage : undefined)
21
+
22
+ const encryption =
23
+ options.encrypt && options.encryptionKey
24
+ ? new SimpleEncryption(options.encryptionKey)
25
+ : null
26
+
27
+ const defaultSerialize = async (value: T | null): Promise<string | null> => {
28
+ if (value === null) return null
29
+ const json = JSON.stringify(value)
30
+ return encryption ? await encryption.encrypt(json) : json
31
+ }
32
+
33
+ const defaultDeserialize = async (
34
+ value: string | null,
35
+ ): Promise<T | null> => {
36
+ if (!value) return null
37
+ try {
38
+ const decrypted = encryption ? await encryption.decrypt(value) : value
39
+ return JSON.parse(decrypted) as T
40
+ } catch {
41
+ return null
42
+ }
43
+ }
44
+
45
+ const serialize = options.serialize
46
+ ? async (value: T | null) => {
47
+ const result = await options.serialize?.(value)
48
+ return result ?? null
49
+ }
50
+ : defaultSerialize
51
+
52
+ const deserialize = options.deserialize
53
+ ? async (value: string | null) => {
54
+ const result = await options.deserialize?.(value)
55
+ return result ?? null
56
+ }
57
+ : defaultDeserialize
58
+
59
+ if (!targetStorage) {
60
+ return fallback
61
+ }
62
+
63
+ return {
64
+ get: async () => {
65
+ try {
66
+ const raw = targetStorage.getItem(options.key)
67
+ const value = await deserialize(raw)
68
+ fallback.set(value)
69
+ return value
70
+ } catch (error) {
71
+ console.warn('[auth2][storage] Failed to read from storage', error)
72
+ return fallback.get()
73
+ }
74
+ },
75
+ set: async (value) => {
76
+ try {
77
+ const serialized = await serialize(value)
78
+ if (serialized === null) {
79
+ targetStorage.removeItem(options.key)
80
+ } else {
81
+ targetStorage.setItem(options.key, serialized)
82
+ }
83
+ fallback.set(value)
84
+ } catch (error) {
85
+ console.warn('[auth2][storage] Failed to write to storage', error)
86
+ fallback.set(value)
87
+ }
88
+ },
89
+ clear: () => {
90
+ try {
91
+ targetStorage.removeItem(options.key)
92
+ } catch (error) {
93
+ console.warn('[auth2][storage] Failed to clear storage', error)
94
+ } finally {
95
+ fallback.clear()
96
+ }
97
+ },
98
+ }
99
+ }
@@ -0,0 +1,116 @@
1
+ import type { AuthStorage, StorageOptions } from '../../types'
2
+ import { isBrowser } from './env'
3
+ import { createMemoryStorage } from './memory'
4
+ import { SimpleEncryption } from './encryption'
5
+
6
+ export const createCookieStorage = <T>(
7
+ options: StorageOptions,
8
+ ): AuthStorage<T> => {
9
+ const key = options.key ?? 'auth2_session'
10
+ const cookieOpts = options.cookieOptions ?? {}
11
+ const fallback = createMemoryStorage<T>()
12
+ const encryption =
13
+ options.encrypt && options.encryptionKey
14
+ ? new SimpleEncryption(options.encryptionKey)
15
+ : null
16
+ const cookieSetter =
17
+ typeof Document !== 'undefined'
18
+ ? Object.getOwnPropertyDescriptor(Document.prototype, 'cookie')?.set
19
+ : undefined
20
+
21
+ const assignCookie = (value: string) => {
22
+ if (!isBrowser || typeof document === 'undefined') return
23
+ if (cookieSetter) {
24
+ cookieSetter.call(document, value)
25
+ return
26
+ }
27
+ Reflect.set(document, 'cookie', value)
28
+ }
29
+
30
+ const serialize = async (value: T | null): Promise<string | null> => {
31
+ if (value === null) return null
32
+ const json = JSON.stringify(value)
33
+ return encryption ? await encryption.encrypt(json) : json
34
+ }
35
+
36
+ const deserialize = async (value: string | null): Promise<T | null> => {
37
+ if (!value) return null
38
+ try {
39
+ const decrypted = encryption ? await encryption.decrypt(value) : value
40
+ return JSON.parse(decrypted) as T
41
+ } catch {
42
+ return null
43
+ }
44
+ }
45
+
46
+ const getCookie = (name: string): string | null => {
47
+ if (!isBrowser) return null
48
+ const matches = document.cookie.match(
49
+ new RegExp(
50
+ `(?:^|; )${name.replace(/([.$?*|{}()\[\]\\/+^])/g, '\\$1')}=([^;]*)`,
51
+ ),
52
+ )
53
+ return matches ? decodeURIComponent(matches[1]) : null
54
+ }
55
+
56
+ const setCookie = (
57
+ name: string,
58
+ value: string,
59
+ opts: typeof cookieOpts = {},
60
+ ) => {
61
+ if (!isBrowser) return
62
+
63
+ let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`
64
+
65
+ if (opts.maxAge) cookie += `; max-age=${opts.maxAge}`
66
+ if (opts.domain) cookie += `; domain=${opts.domain}`
67
+ if (opts.path !== undefined) cookie += `; path=${opts.path}`
68
+ else cookie += '; path=/'
69
+ if (opts.secure) cookie += '; secure'
70
+ if (opts.sameSite) cookie += `; samesite=${opts.sameSite}`
71
+
72
+ assignCookie(cookie)
73
+ }
74
+
75
+ const deleteCookie = (name: string) => {
76
+ if (!isBrowser) return
77
+ assignCookie(`${name}=; max-age=0; path=/`)
78
+ }
79
+
80
+ return {
81
+ get: async () => {
82
+ try {
83
+ const raw = getCookie(key)
84
+ const value = await deserialize(raw)
85
+ fallback.set(value)
86
+ return value
87
+ } catch (error) {
88
+ console.warn('[auth2][storage] Failed to read from cookie', error)
89
+ return fallback.get()
90
+ }
91
+ },
92
+ set: async (value) => {
93
+ try {
94
+ const serialized = await serialize(value)
95
+ if (serialized === null) {
96
+ deleteCookie(key)
97
+ } else {
98
+ setCookie(key, serialized, cookieOpts)
99
+ }
100
+ fallback.set(value)
101
+ } catch (error) {
102
+ console.warn('[auth2][storage] Failed to write to cookie', error)
103
+ fallback.set(value)
104
+ }
105
+ },
106
+ clear: () => {
107
+ try {
108
+ deleteCookie(key)
109
+ } catch (error) {
110
+ console.warn('[auth2][storage] Failed to clear cookie', error)
111
+ } finally {
112
+ fallback.clear()
113
+ }
114
+ },
115
+ }
116
+ }
@@ -0,0 +1,80 @@
1
+ export class SimpleEncryption {
2
+ private key: string
3
+
4
+ constructor(key: string) {
5
+ this.key = key
6
+ }
7
+
8
+ async encrypt(text: string): Promise<string> {
9
+ if (!crypto?.subtle) {
10
+ console.warn('[auth2][storage] Crypto API not available, storing unencrypted')
11
+ return text
12
+ }
13
+
14
+ try {
15
+ const encoder = new TextEncoder()
16
+ const data = encoder.encode(text)
17
+ const keyData = encoder.encode(this.key.padEnd(32, '0').slice(0, 32))
18
+
19
+ const cryptoKey = await crypto.subtle.importKey(
20
+ 'raw',
21
+ keyData,
22
+ { name: 'AES-GCM', length: 256 },
23
+ false,
24
+ ['encrypt'],
25
+ )
26
+
27
+ const iv = crypto.getRandomValues(new Uint8Array(12))
28
+ const encrypted = await crypto.subtle.encrypt(
29
+ { name: 'AES-GCM', iv },
30
+ cryptoKey,
31
+ data,
32
+ )
33
+
34
+ const result = new Uint8Array(iv.length + encrypted.byteLength)
35
+ result.set(iv, 0)
36
+ result.set(new Uint8Array(encrypted), iv.length)
37
+
38
+ return btoa(String.fromCharCode(...result))
39
+ } catch (error) {
40
+ console.error('[auth2][storage] Encryption failed:', error)
41
+ return text
42
+ }
43
+ }
44
+
45
+ async decrypt(encrypted: string): Promise<string> {
46
+ if (!crypto?.subtle) {
47
+ console.warn('[auth2][storage] Crypto API not available, reading unencrypted')
48
+ return encrypted
49
+ }
50
+
51
+ try {
52
+ const encoder = new TextEncoder()
53
+ const decoder = new TextDecoder()
54
+ const keyData = encoder.encode(this.key.padEnd(32, '0').slice(0, 32))
55
+
56
+ const cryptoKey = await crypto.subtle.importKey(
57
+ 'raw',
58
+ keyData,
59
+ { name: 'AES-GCM', length: 256 },
60
+ false,
61
+ ['decrypt'],
62
+ )
63
+
64
+ const data = Uint8Array.from(atob(encrypted), (c) => c.charCodeAt(0))
65
+ const iv = data.slice(0, 12)
66
+ const encryptedData = data.slice(12)
67
+
68
+ const decrypted = await crypto.subtle.decrypt(
69
+ { name: 'AES-GCM', iv },
70
+ cryptoKey,
71
+ encryptedData,
72
+ )
73
+
74
+ return decoder.decode(decrypted)
75
+ } catch (error) {
76
+ console.error('[auth2][storage] Decryption failed:', error)
77
+ return encrypted
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,2 @@
1
+ export const isBrowser =
2
+ typeof window !== "undefined" && typeof window.localStorage !== "undefined";
@@ -0,0 +1,37 @@
1
+ import type { AuthStorage, StorageOptions } from '../../types'
2
+ import { isBrowser } from './env'
3
+ import { createMemoryStorage } from './memory'
4
+ import { createCookieStorage } from './cookie'
5
+ import { createBrowserStorage } from './browser'
6
+
7
+ /**
8
+ * Creates appropriate storage based on options
9
+ */
10
+ export function createStorage<T>(options: StorageOptions = {}): AuthStorage<T> {
11
+ const storageType = options.storage ?? 'local'
12
+ const key = options.key ?? 'auth2_session'
13
+
14
+ switch (storageType) {
15
+ case 'cookie':
16
+ return createCookieStorage<T>(options)
17
+
18
+ case 'session':
19
+ return createBrowserStorage<T>({
20
+ key,
21
+ storage: isBrowser ? window.sessionStorage : undefined,
22
+ encrypt: options.encrypt,
23
+ encryptionKey: options.encryptionKey,
24
+ })
25
+
26
+ case 'local':
27
+ return createBrowserStorage<T>({
28
+ key,
29
+ storage: isBrowser ? window.localStorage : undefined,
30
+ encrypt: options.encrypt,
31
+ encryptionKey: options.encryptionKey,
32
+ })
33
+
34
+ default:
35
+ return createMemoryStorage<T>()
36
+ }
37
+ }
@@ -0,0 +1,6 @@
1
+ export * from './env'
2
+ export * from './encryption'
3
+ export * from './memory'
4
+ export * from './cookie'
5
+ export * from './browser'
6
+ export * from './factory'
@@ -0,0 +1,15 @@
1
+ import type { AuthStorage } from '../../types'
2
+
3
+ export const createMemoryStorage = <T>(): AuthStorage<T> => {
4
+ let value: T | null = null
5
+
6
+ return {
7
+ get: () => value,
8
+ set: (next) => {
9
+ value = next
10
+ },
11
+ clear: () => {
12
+ value = null
13
+ },
14
+ }
15
+ }
@@ -0,0 +1,55 @@
1
+ import type { TokenManager } from '../types';
2
+
3
+ /**
4
+ * Default token manager implementation
5
+ * Handles token expiration checks and refresh scheduling
6
+ */
7
+ export function createTokenManager(config?: {
8
+ refreshThreshold?: number; // seconds before expiry to trigger refresh
9
+ }): TokenManager {
10
+ const refreshThreshold = config?.refreshThreshold ?? 300; // default 5 minutes
11
+
12
+ const isExpired = (expiresAt?: number | null): boolean => {
13
+ if (!expiresAt) return false;
14
+ return Date.now() >= expiresAt;
15
+ };
16
+
17
+ const shouldRefresh = (
18
+ expiresAt?: number | null,
19
+ threshold?: number,
20
+ ): boolean => {
21
+ if (!expiresAt) return false;
22
+ const thresholdMs = (threshold ?? refreshThreshold) * 1000;
23
+ return Date.now() >= expiresAt - thresholdMs;
24
+ };
25
+
26
+ const getTimeUntilExpiry = (expiresAt?: number | null): number => {
27
+ if (!expiresAt) return Infinity;
28
+ const timeLeft = expiresAt - Date.now();
29
+ return Math.max(0, timeLeft);
30
+ };
31
+
32
+ const scheduleRefresh = (
33
+ callback: () => void,
34
+ expiresAt?: number | null,
35
+ ): (() => void) => {
36
+ if (!expiresAt) return () => {};
37
+
38
+ const timeUntilRefresh = expiresAt - Date.now() - refreshThreshold * 1000;
39
+
40
+ if (timeUntilRefresh <= 0) {
41
+ callback();
42
+ return () => {};
43
+ }
44
+
45
+ const timeoutId = setTimeout(callback, timeUntilRefresh);
46
+ return () => clearTimeout(timeoutId);
47
+ };
48
+
49
+ return {
50
+ isExpired,
51
+ shouldRefresh,
52
+ getTimeUntilExpiry,
53
+ scheduleRefresh,
54
+ };
55
+ }