@boxcustodia/library 2.0.0-alpha.17 → 2.0.0-alpha.19

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 (727) hide show
  1. package/dist/components/accordion/accordion.cjs.js +2 -0
  2. package/dist/components/accordion/accordion.es.js +118 -0
  3. package/dist/components/alert/alert.cjs.js +2 -0
  4. package/dist/components/alert/alert.es.js +99 -0
  5. package/dist/components/alert-dialog/alert-dialog.cjs.js +2 -0
  6. package/dist/components/alert-dialog/alert-dialog.es.js +221 -0
  7. package/dist/components/auto-complete/auto-complete.cjs.js +2 -0
  8. package/dist/components/auto-complete/auto-complete.es.js +344 -0
  9. package/dist/components/avatar/avatar.cjs.js +2 -0
  10. package/dist/components/avatar/avatar.es.js +147 -0
  11. package/dist/components/button/button.cjs.js +2 -0
  12. package/dist/components/button/button.es.js +57 -0
  13. package/dist/components/button/components/base-button.cjs.js +2 -0
  14. package/dist/components/button/components/base-button.es.js +46 -0
  15. package/dist/components/calendar/calendar.cjs.js +2 -0
  16. package/dist/components/calendar/calendar.es.js +138 -0
  17. package/dist/components/card/card.cjs.js +2 -0
  18. package/dist/components/card/card.es.js +142 -0
  19. package/dist/components/center/center.cjs.js +2 -0
  20. package/dist/components/center/center.es.js +23 -0
  21. package/dist/components/checkbox/checkbox.cjs.js +2 -0
  22. package/dist/components/checkbox/checkbox.es.js +229 -0
  23. package/dist/components/checkbox-group/checkbox-group.cjs.js +2 -0
  24. package/dist/components/checkbox-group/checkbox-group.es.js +59 -0
  25. package/dist/components/combobox/combobox.cjs.js +2 -0
  26. package/dist/components/combobox/combobox.es.js +689 -0
  27. package/dist/components/date-picker/date-input.cjs.js +2 -0
  28. package/dist/components/date-picker/date-input.es.js +152 -0
  29. package/dist/components/date-picker/date-picker.cjs.js +2 -0
  30. package/dist/components/date-picker/date-picker.es.js +262 -0
  31. package/dist/components/date-picker/date-picker.utils.cjs.js +1 -0
  32. package/dist/components/date-picker/date-picker.utils.es.js +73 -0
  33. package/dist/components/date-picker/use-date-input-popover.cjs.js +1 -0
  34. package/dist/components/date-picker/use-date-input-popover.es.js +26 -0
  35. package/dist/components/date-picker/use-date-input.cjs.js +1 -0
  36. package/dist/components/date-picker/use-date-input.es.js +64 -0
  37. package/dist/components/dialog/dialog.cjs.js +2 -0
  38. package/dist/components/dialog/dialog.es.js +221 -0
  39. package/dist/components/divider/divider.cjs.js +2 -0
  40. package/dist/components/divider/divider.es.js +27 -0
  41. package/dist/components/dropzone/dropzone.cjs.js +2 -0
  42. package/dist/components/dropzone/dropzone.es.js +303 -0
  43. package/dist/components/dropzone/file-types.cjs.js +1 -0
  44. package/dist/components/dropzone/file-types.es.js +57 -0
  45. package/dist/components/empty/empty.cjs.js +2 -0
  46. package/dist/components/empty/empty.es.js +128 -0
  47. package/dist/components/field/field.cjs.js +2 -0
  48. package/dist/components/field/field.es.js +179 -0
  49. package/dist/components/form/form.cjs.js +2 -0
  50. package/dist/components/form/form.es.js +11 -0
  51. package/dist/components/input/input.cjs.js +2 -0
  52. package/dist/components/input/input.es.js +60 -0
  53. package/dist/components/kbd/kbd.cjs.js +2 -0
  54. package/dist/components/kbd/kbd.es.js +36 -0
  55. package/dist/components/label/label.cjs.js +2 -0
  56. package/dist/components/label/label.es.js +49 -0
  57. package/dist/components/loader/loader.cjs.js +2 -0
  58. package/dist/components/loader/loader.es.js +55 -0
  59. package/dist/components/menu/menu-primitives.cjs.js +2 -0
  60. package/dist/components/menu/menu-primitives.es.js +240 -0
  61. package/dist/components/menu/menu.cjs.js +2 -0
  62. package/dist/components/menu/menu.es.js +89 -0
  63. package/dist/components/number-input/number-input.cjs.js +2 -0
  64. package/dist/components/number-input/number-input.es.js +212 -0
  65. package/dist/components/pagination/pagination.cjs.js +2 -0
  66. package/dist/components/pagination/pagination.es.js +393 -0
  67. package/dist/components/pagination/pagination.model.cjs.js +1 -0
  68. package/dist/components/pagination/pagination.model.es.js +4 -0
  69. package/dist/components/password/password.cjs.js +2 -0
  70. package/dist/components/password/password.es.js +73 -0
  71. package/dist/components/popover/popover.cjs.js +2 -0
  72. package/dist/components/popover/popover.es.js +158 -0
  73. package/dist/components/progress/progress.cjs.js +2 -0
  74. package/dist/components/progress/progress.es.js +114 -0
  75. package/dist/components/scroll-area/scroll-area.cjs.js +2 -0
  76. package/dist/components/scroll-area/scroll-area.es.js +67 -0
  77. package/dist/components/select/select.cjs.js +2 -0
  78. package/dist/components/select/select.es.js +323 -0
  79. package/dist/components/skeleton/skeleton.cjs.js +2 -0
  80. package/dist/components/skeleton/skeleton.es.js +19 -0
  81. package/dist/components/stack/stack.cjs.js +2 -0
  82. package/dist/components/stack/stack.es.js +42 -0
  83. package/dist/components/stepper/stepper.cjs.js +2 -0
  84. package/dist/components/stepper/stepper.es.js +368 -0
  85. package/dist/components/switch/switch.cjs.js +2 -0
  86. package/dist/components/switch/switch.es.js +85 -0
  87. package/dist/components/table/table.cjs.js +2 -0
  88. package/dist/components/table/table.es.js +168 -0
  89. package/dist/components/tabs/tabs.cjs.js +2 -0
  90. package/dist/components/tabs/tabs.es.js +96 -0
  91. package/dist/components/tag/tag.cjs.js +2 -0
  92. package/dist/components/tag/tag.es.js +50 -0
  93. package/dist/components/textarea/textarea.cjs.js +2 -0
  94. package/dist/components/textarea/textarea.es.js +31 -0
  95. package/dist/components/timeline/timeline.cjs.js +2 -0
  96. package/dist/components/timeline/timeline.es.js +263 -0
  97. package/dist/components/toast/toast.cjs.js +2 -0
  98. package/dist/components/toast/toast.es.js +224 -0
  99. package/dist/components/tooltip/tooltip.cjs.js +2 -0
  100. package/dist/components/tooltip/tooltip.es.js +122 -0
  101. package/dist/components/tree/tree.cjs.js +2 -0
  102. package/dist/components/tree/tree.es.js +150 -0
  103. package/dist/hooks/internal/is-browser.cjs.js +1 -0
  104. package/dist/hooks/internal/is-browser.es.js +4 -0
  105. package/dist/hooks/internal/use-isomorphic-layout-effect.cjs.js +1 -0
  106. package/dist/hooks/internal/use-isomorphic-layout-effect.es.js +6 -0
  107. package/dist/hooks/use-array/use-array.cjs.js +1 -0
  108. package/dist/hooks/use-array/use-array.es.js +46 -0
  109. package/dist/hooks/use-async/use-async.cjs.js +1 -0
  110. package/dist/hooks/use-async/use-async.es.js +24 -0
  111. package/dist/hooks/use-click-outside/use-click-outside.cjs.js +1 -0
  112. package/dist/hooks/use-click-outside/use-click-outside.es.js +15 -0
  113. package/dist/hooks/use-clipboard/use-clipboard.cjs.js +1 -0
  114. package/dist/hooks/use-clipboard/use-clipboard.es.js +29 -0
  115. package/dist/hooks/use-debounce-callback/use-debounced-callback.cjs.js +1 -0
  116. package/dist/hooks/use-debounce-callback/use-debounced-callback.es.js +15 -0
  117. package/dist/hooks/use-debounce-value/use-debounced-value.cjs.js +1 -0
  118. package/dist/hooks/use-debounce-value/use-debounced-value.es.js +13 -0
  119. package/dist/hooks/use-disclosure/use-disclosure.cjs.js +1 -0
  120. package/dist/hooks/use-disclosure/use-disclosure.es.js +14 -0
  121. package/dist/hooks/use-document-title/use-document-title.cjs.js +1 -0
  122. package/dist/hooks/use-document-title/use-document-title.es.js +17 -0
  123. package/dist/hooks/use-event-listener/use-event-listener.cjs.js +1 -0
  124. package/dist/hooks/use-event-listener/use-event-listener.es.js +13 -0
  125. package/dist/hooks/use-focus-trap/scope-tab.cjs.js +1 -0
  126. package/dist/hooks/use-focus-trap/scope-tab.es.js +21 -0
  127. package/dist/hooks/use-focus-trap/tabbable.cjs.js +1 -0
  128. package/dist/hooks/use-focus-trap/tabbable.es.js +38 -0
  129. package/dist/hooks/use-focus-trap/use-focus-trap.cjs.js +1 -0
  130. package/dist/hooks/use-focus-trap/use-focus-trap.es.js +34 -0
  131. package/dist/hooks/use-hotkey/use-hotkey.cjs.js +1 -0
  132. package/dist/hooks/use-hotkey/use-hotkey.es.js +18 -0
  133. package/dist/hooks/use-hotkey/utils/create-hotkey-listener.cjs.js +1 -0
  134. package/dist/hooks/use-hotkey/utils/create-hotkey-listener.es.js +10 -0
  135. package/dist/hooks/use-hotkey/utils/is-input-field.cjs.js +1 -0
  136. package/dist/hooks/use-hotkey/utils/is-input-field.es.js +5 -0
  137. package/dist/hooks/use-hotkey/utils/match-key-modifiers.cjs.js +1 -0
  138. package/dist/hooks/use-hotkey/utils/match-key-modifiers.es.js +17 -0
  139. package/dist/hooks/use-hover/use-hover.cjs.js +1 -0
  140. package/dist/hooks/use-hover/use-hover.es.js +20 -0
  141. package/dist/hooks/use-is-visible/use-is-visible.cjs.js +1 -0
  142. package/dist/hooks/use-is-visible/use-is-visible.es.js +31 -0
  143. package/dist/hooks/use-local-storage/use-local-storage.cjs.js +1 -0
  144. package/dist/hooks/use-local-storage/use-local-storage.es.js +29 -0
  145. package/dist/hooks/use-media-query/use-media-query.cjs.js +1 -0
  146. package/dist/hooks/use-media-query/use-media-query.es.js +13 -0
  147. package/dist/hooks/use-memoized-fn/use-memoized-fn.cjs.js +1 -0
  148. package/dist/hooks/use-memoized-fn/use-memoized-fn.es.js +15 -0
  149. package/dist/hooks/use-mutation/use-mutation.cjs.js +1 -0
  150. package/dist/hooks/use-mutation/use-mutation.es.js +27 -0
  151. package/dist/hooks/use-object/use-object.cjs.js +1 -0
  152. package/dist/hooks/use-object/use-object.es.js +26 -0
  153. package/dist/hooks/use-on-mount/use-on-mount.cjs.js +1 -0
  154. package/dist/hooks/use-on-mount/use-on-mount.es.js +11 -0
  155. package/dist/hooks/use-pagination/use-pagination.cjs.js +1 -0
  156. package/dist/hooks/use-pagination/use-pagination.es.js +38 -0
  157. package/dist/hooks/use-portal/use-portal.cjs.js +1 -0
  158. package/dist/hooks/use-portal/use-portal.es.js +31 -0
  159. package/dist/hooks/use-prevent-close-window/use-prevent-close-window.cjs.js +1 -0
  160. package/dist/hooks/use-prevent-close-window/use-prevent-close-window.es.js +15 -0
  161. package/dist/hooks/use-range-pagination/use-range-pagination.cjs.js +1 -0
  162. package/dist/hooks/use-range-pagination/use-range-pagination.es.js +36 -0
  163. package/dist/hooks/use-selection/use-selection.cjs.js +1 -0
  164. package/dist/hooks/use-selection/use-selection.es.js +38 -0
  165. package/dist/hooks/use-step/use-step.cjs.js +1 -0
  166. package/dist/hooks/use-step/use-step.es.js +27 -0
  167. package/dist/hooks/use-toggle/use-toggle.cjs.js +1 -0
  168. package/dist/hooks/use-toggle/use-toggle.es.js +10 -0
  169. package/dist/index.cjs.js +1 -1
  170. package/dist/index.d.ts +2 -2627
  171. package/dist/index.es.js +437 -7544
  172. package/dist/lib/cn.cjs.js +1 -0
  173. package/dist/lib/cn.es.js +10 -0
  174. package/dist/providers/library-provider.cjs.js +1 -0
  175. package/dist/providers/library-provider.es.js +13 -0
  176. package/dist/providers/theme/ThemeProvider.cjs.js +1 -0
  177. package/dist/providers/theme/ThemeProvider.es.js +10 -0
  178. package/dist/providers/theme/useThemeProps.cjs.js +1 -0
  179. package/dist/providers/theme/useThemeProps.es.js +12 -0
  180. package/dist/setupTests.d.ts +0 -0
  181. package/dist/src/__doc__/Examples.d.ts +7 -0
  182. package/dist/src/components/accordion/accordion.d.ts +28 -0
  183. package/dist/src/components/accordion/accordion.test.d.ts +1 -0
  184. package/dist/src/components/accordion/index.d.ts +1 -0
  185. package/dist/src/components/alert/alert.d.ts +26 -0
  186. package/dist/src/components/alert/alert.test.d.ts +1 -0
  187. package/dist/src/components/alert/index.d.ts +1 -0
  188. package/dist/src/components/alert-dialog/alert-dialog.d.ts +104 -0
  189. package/dist/src/components/alert-dialog/alert-dialog.test.d.ts +1 -0
  190. package/dist/src/components/alert-dialog/index.d.ts +1 -0
  191. package/dist/src/components/auto-complete/auto-complete.d.ts +95 -0
  192. package/dist/src/components/auto-complete/auto-complete.test.d.ts +1 -0
  193. package/dist/src/components/auto-complete/index.d.ts +1 -0
  194. package/dist/src/components/avatar/avatar.d.ts +31 -0
  195. package/dist/src/components/avatar/avatar.test.d.ts +1 -0
  196. package/dist/src/components/avatar/index.d.ts +1 -0
  197. package/dist/src/components/button/button.d.ts +11 -0
  198. package/dist/src/components/button/button.test.d.ts +1 -0
  199. package/dist/src/components/button/components/base-button.d.ts +7 -0
  200. package/dist/src/components/button/index.d.ts +2 -0
  201. package/dist/src/components/calendar/calendar.d.ts +3 -0
  202. package/dist/src/components/calendar/calendar.test.d.ts +1 -0
  203. package/dist/src/components/calendar/index.d.ts +1 -0
  204. package/dist/src/components/card/card.d.ts +35 -0
  205. package/dist/src/components/card/card.test.d.ts +1 -0
  206. package/dist/src/components/card/index.d.ts +1 -0
  207. package/dist/src/components/center/center.d.ts +7 -0
  208. package/dist/src/components/center/center.test.d.ts +1 -0
  209. package/dist/src/components/center/index.d.ts +1 -0
  210. package/dist/src/components/checkbox/checkbox.d.ts +74 -0
  211. package/dist/src/components/checkbox/checkbox.test.d.ts +1 -0
  212. package/dist/src/components/checkbox/index.d.ts +1 -0
  213. package/dist/src/components/checkbox-group/checkbox-group.d.ts +21 -0
  214. package/dist/src/components/checkbox-group/checkbox-group.test.d.ts +1 -0
  215. package/dist/src/components/checkbox-group/index.d.ts +1 -0
  216. package/dist/src/components/combobox/combobox.d.ts +112 -0
  217. package/dist/src/components/combobox/combobox.test.d.ts +1 -0
  218. package/dist/src/components/combobox/index.d.ts +1 -0
  219. package/dist/src/components/date-picker/date-input.d.ts +2 -0
  220. package/dist/src/components/date-picker/date-picker.d.ts +5 -0
  221. package/dist/src/components/date-picker/date-picker.model.d.ts +78 -0
  222. package/dist/src/components/date-picker/date-picker.test.d.ts +1 -0
  223. package/dist/src/components/date-picker/date-picker.utils.d.ts +12 -0
  224. package/dist/src/components/date-picker/date-picker.utils.test.d.ts +1 -0
  225. package/dist/src/components/date-picker/index.d.ts +3 -0
  226. package/dist/src/components/date-picker/use-date-input-popover.d.ts +12 -0
  227. package/dist/src/components/date-picker/use-date-input-popover.test.d.ts +1 -0
  228. package/dist/src/components/date-picker/use-date-input.d.ts +16 -0
  229. package/dist/src/components/dialog/dialog.d.ts +100 -0
  230. package/dist/src/components/dialog/dialog.test.d.ts +1 -0
  231. package/dist/src/components/dialog/index.d.ts +1 -0
  232. package/dist/src/components/divider/divider.d.ts +4 -0
  233. package/dist/src/components/divider/divider.test.d.ts +1 -0
  234. package/dist/src/components/divider/index.d.ts +1 -0
  235. package/dist/src/components/dropzone/dropzone.d.ts +67 -0
  236. package/dist/src/components/dropzone/dropzone.test.d.ts +1 -0
  237. package/dist/src/components/dropzone/file-types.d.ts +27 -0
  238. package/dist/src/components/dropzone/index.d.ts +2 -0
  239. package/dist/src/components/empty/empty.d.ts +33 -0
  240. package/dist/src/components/empty/empty.test.d.ts +1 -0
  241. package/dist/src/components/empty/index.d.ts +1 -0
  242. package/dist/src/components/field/field.d.ts +57 -0
  243. package/dist/src/components/field/field.test.d.ts +1 -0
  244. package/dist/src/components/field/index.d.ts +1 -0
  245. package/dist/src/components/form/form.d.ts +5 -0
  246. package/dist/src/components/form/form.test.d.ts +1 -0
  247. package/dist/src/components/form/index.d.ts +1 -0
  248. package/dist/src/components/index.d.ts +43 -0
  249. package/dist/src/components/input/index.d.ts +1 -0
  250. package/dist/src/components/input/input.d.ts +9 -0
  251. package/dist/src/components/input/input.test.d.ts +1 -0
  252. package/dist/src/components/kbd/index.d.ts +1 -0
  253. package/dist/src/components/kbd/kbd.d.ts +3 -0
  254. package/dist/src/components/kbd/kbd.test.d.ts +1 -0
  255. package/dist/src/components/label/index.d.ts +1 -0
  256. package/dist/src/components/label/label.d.ts +15 -0
  257. package/dist/src/components/label/label.test.d.ts +1 -0
  258. package/dist/src/components/loader/index.d.ts +1 -0
  259. package/dist/src/components/loader/loader.d.ts +18 -0
  260. package/dist/src/components/loader/loader.test.d.ts +1 -0
  261. package/dist/src/components/menu/index.d.ts +2 -0
  262. package/dist/src/components/menu/menu-primitives.d.ts +29 -0
  263. package/dist/src/components/menu/menu.d.ts +57 -0
  264. package/dist/src/components/menu/menu.test.d.ts +1 -0
  265. package/dist/src/components/number-input/index.d.ts +1 -0
  266. package/dist/src/components/number-input/number-input.d.ts +31 -0
  267. package/dist/src/components/number-input/number-input.test.d.ts +1 -0
  268. package/dist/src/components/otp/index.d.ts +1 -0
  269. package/dist/src/components/otp/otp.d.ts +16 -0
  270. package/dist/src/components/otp/otp.test.d.ts +1 -0
  271. package/dist/src/components/pagination/index.d.ts +2 -0
  272. package/dist/src/components/pagination/pagination.d.ts +131 -0
  273. package/dist/src/components/pagination/pagination.model.d.ts +2 -0
  274. package/dist/src/components/pagination/pagination.test.d.ts +1 -0
  275. package/dist/src/components/password/index.d.ts +1 -0
  276. package/dist/src/components/password/password.d.ts +19 -0
  277. package/dist/src/components/password/password.test.d.ts +1 -0
  278. package/dist/src/components/popover/index.d.ts +1 -0
  279. package/dist/src/components/popover/popover.d.ts +41 -0
  280. package/dist/src/components/popover/popover.test.d.ts +1 -0
  281. package/dist/src/components/progress/index.d.ts +1 -0
  282. package/dist/src/components/progress/progress.d.ts +22 -0
  283. package/dist/src/components/progress/progress.test.d.ts +1 -0
  284. package/dist/src/components/radio-group/index.d.ts +1 -0
  285. package/dist/src/components/radio-group/radio-group.d.ts +41 -0
  286. package/dist/src/components/radio-group/radio-group.test.d.ts +1 -0
  287. package/dist/src/components/scroll-area/index.d.ts +1 -0
  288. package/dist/src/components/scroll-area/scroll-area.d.ts +8 -0
  289. package/dist/src/components/scroll-area/scroll-area.test.d.ts +1 -0
  290. package/dist/src/components/select/index.d.ts +1 -0
  291. package/dist/src/components/select/select.d.ts +71 -0
  292. package/dist/src/components/select/select.test.d.ts +1 -0
  293. package/dist/src/components/skeleton/index.d.ts +1 -0
  294. package/dist/src/components/skeleton/skeleton.d.ts +2 -0
  295. package/dist/src/components/skeleton/skeleton.test.d.ts +1 -0
  296. package/dist/src/components/stack/index.d.ts +1 -0
  297. package/dist/src/components/stack/stack.d.ts +14 -0
  298. package/dist/src/components/stack/stack.test.d.ts +1 -0
  299. package/dist/src/components/stepper/index.d.ts +1 -0
  300. package/dist/src/components/stepper/stepper.d.ts +83 -0
  301. package/dist/src/components/stepper/stepper.test.d.ts +1 -0
  302. package/dist/src/components/switch/index.d.ts +1 -0
  303. package/dist/src/components/switch/switch.d.ts +21 -0
  304. package/dist/src/components/switch/switch.test.d.ts +1 -0
  305. package/dist/src/components/table/index.d.ts +1 -0
  306. package/dist/src/components/table/table.d.ts +50 -0
  307. package/dist/src/components/table/table.test.d.ts +1 -0
  308. package/dist/src/components/tabs/index.d.ts +1 -0
  309. package/dist/src/components/tabs/tabs.d.ts +11 -0
  310. package/dist/src/components/tabs/tabs.test.d.ts +1 -0
  311. package/dist/src/components/tag/index.d.ts +1 -0
  312. package/dist/src/components/tag/tag.d.ts +7 -0
  313. package/dist/src/components/tag/tag.test.d.ts +1 -0
  314. package/dist/src/components/textarea/index.d.ts +1 -0
  315. package/dist/src/components/textarea/textarea.d.ts +5 -0
  316. package/dist/src/components/textarea/textarea.test.d.ts +1 -0
  317. package/dist/src/components/timeline/index.d.ts +1 -0
  318. package/dist/src/components/timeline/timeline.d.ts +50 -0
  319. package/dist/src/components/timeline/timeline.test.d.ts +1 -0
  320. package/dist/src/components/toast/index.d.ts +1 -0
  321. package/dist/src/components/toast/toast.d.ts +101 -0
  322. package/dist/src/components/toast/toast.test.d.ts +1 -0
  323. package/dist/src/components/tooltip/index.d.ts +1 -0
  324. package/dist/src/components/tooltip/tooltip.d.ts +52 -0
  325. package/dist/src/components/tooltip/tooltip.test.d.ts +1 -0
  326. package/dist/src/components/tree/index.d.ts +1 -0
  327. package/dist/src/components/tree/tree.d.ts +18 -0
  328. package/dist/src/components/tree/tree.test.d.ts +1 -0
  329. package/dist/src/hooks/index.d.ts +27 -0
  330. package/dist/src/hooks/internal/index.d.ts +2 -0
  331. package/dist/src/hooks/internal/is-browser.d.ts +1 -0
  332. package/dist/src/hooks/internal/use-isomorphic-layout-effect.d.ts +2 -0
  333. package/dist/src/hooks/use-array/index.d.ts +1 -0
  334. package/dist/src/hooks/use-array/use-array.d.ts +11 -0
  335. package/dist/src/hooks/use-array/use-array.test.d.ts +1 -0
  336. package/dist/src/hooks/use-async/index.d.ts +1 -0
  337. package/dist/src/hooks/use-async/use-async.d.ts +18 -0
  338. package/dist/src/hooks/use-async/use-async.test.d.ts +1 -0
  339. package/dist/src/hooks/use-click-outside/index.d.ts +1 -0
  340. package/dist/src/hooks/use-click-outside/use-click-outside.d.ts +1 -0
  341. package/dist/src/hooks/use-click-outside/use-click-outside.test.d.ts +1 -0
  342. package/dist/src/hooks/use-clipboard/index.d.ts +1 -0
  343. package/dist/src/hooks/use-clipboard/use-clipboard.d.ts +15 -0
  344. package/dist/src/hooks/use-clipboard/use-clipboard.test.d.ts +1 -0
  345. package/dist/src/hooks/use-debounce-callback/index.d.ts +1 -0
  346. package/dist/src/hooks/use-debounce-callback/use-debounced-callback.d.ts +1 -0
  347. package/dist/src/hooks/use-debounce-callback/use-debounced-callback.test.d.ts +1 -0
  348. package/dist/src/hooks/use-debounce-value/index.d.ts +1 -0
  349. package/dist/src/hooks/use-debounce-value/use-debounced-value.d.ts +1 -0
  350. package/dist/src/hooks/use-debounce-value/use-debounced-value.test.d.ts +1 -0
  351. package/dist/src/hooks/use-disclosure/index.d.ts +1 -0
  352. package/dist/src/hooks/use-disclosure/use-disclosure.d.ts +8 -0
  353. package/dist/src/hooks/use-disclosure/use-disclosure.test.d.ts +1 -0
  354. package/dist/src/hooks/use-document-title/index.d.ts +1 -0
  355. package/dist/src/hooks/use-document-title/use-document-title.d.ts +5 -0
  356. package/dist/src/hooks/use-document-title/use-document-title.test.d.ts +1 -0
  357. package/dist/src/hooks/use-event-listener/index.d.ts +1 -0
  358. package/dist/src/hooks/use-event-listener/use-event-listener.d.ts +1 -0
  359. package/dist/src/hooks/use-event-listener/use-event-listener.test.d.ts +1 -0
  360. package/dist/src/hooks/use-focus-trap/index.d.ts +1 -0
  361. package/dist/src/hooks/use-focus-trap/scope-tab.d.ts +1 -0
  362. package/dist/src/hooks/use-focus-trap/tabbable.d.ts +4 -0
  363. package/dist/src/hooks/use-focus-trap/use-focus-trap.d.ts +1 -0
  364. package/dist/src/hooks/use-focus-trap/use-focus-trap.test.d.ts +1 -0
  365. package/dist/src/hooks/use-hotkey/index.d.ts +1 -0
  366. package/dist/src/hooks/use-hotkey/use-hotkey.d.ts +9 -0
  367. package/dist/src/hooks/use-hotkey/use-hotkey.test.d.ts +1 -0
  368. package/dist/src/hooks/use-hotkey/utils/create-hotkey-listener.d.ts +1 -0
  369. package/dist/src/hooks/use-hotkey/utils/index.d.ts +3 -0
  370. package/dist/src/hooks/use-hotkey/utils/is-input-field.d.ts +2 -0
  371. package/dist/src/hooks/use-hotkey/utils/match-key-modifiers.d.ts +8 -0
  372. package/dist/src/hooks/use-hover/index.d.ts +1 -0
  373. package/dist/src/hooks/use-hover/use-hover.d.ts +12 -0
  374. package/dist/src/hooks/use-hover/use-hover.test.d.ts +1 -0
  375. package/dist/src/hooks/use-is-visible/index.d.ts +1 -0
  376. package/dist/src/hooks/use-is-visible/use-is-visible.d.ts +10 -0
  377. package/dist/src/hooks/use-is-visible/use-is-visible.test.d.ts +1 -0
  378. package/dist/src/hooks/use-local-storage/index.d.ts +1 -0
  379. package/dist/src/hooks/use-local-storage/use-local-storage.d.ts +2 -0
  380. package/dist/src/hooks/use-local-storage/use-local-storage.test.d.ts +1 -0
  381. package/dist/src/hooks/use-media-query/index.d.ts +1 -0
  382. package/dist/src/hooks/use-media-query/use-media-query.d.ts +1 -0
  383. package/dist/src/hooks/use-memoized-fn/index.d.ts +1 -0
  384. package/dist/src/hooks/use-memoized-fn/use-memoized-fn.d.ts +3 -0
  385. package/dist/src/hooks/use-memoized-fn/use-memoized-fn.test.d.ts +1 -0
  386. package/dist/src/hooks/use-mutation/index.d.ts +1 -0
  387. package/dist/src/hooks/use-mutation/use-mutation.d.ts +15 -0
  388. package/dist/src/hooks/use-mutation/use-mutation.test.d.ts +1 -0
  389. package/dist/src/hooks/use-object/index.d.ts +1 -0
  390. package/dist/src/hooks/use-object/use-object.d.ts +6 -0
  391. package/dist/src/hooks/use-object/use-object.test.d.ts +1 -0
  392. package/dist/src/hooks/use-on-mount/index.d.ts +1 -0
  393. package/dist/src/hooks/use-on-mount/use-on-mount.d.ts +2 -0
  394. package/dist/src/hooks/use-on-mount/use-on-mount.test.d.ts +1 -0
  395. package/dist/src/hooks/use-pagination/index.d.ts +1 -0
  396. package/dist/src/hooks/use-pagination/use-pagination.d.ts +46 -0
  397. package/dist/src/hooks/use-pagination/use-pagination.test.d.ts +1 -0
  398. package/dist/src/hooks/use-portal/index.d.ts +1 -0
  399. package/dist/src/hooks/use-portal/use-portal.d.ts +4 -0
  400. package/dist/src/hooks/use-portal/use-portal.test.d.ts +1 -0
  401. package/dist/src/hooks/use-prevent-close-window/index.d.ts +1 -0
  402. package/dist/src/hooks/use-prevent-close-window/use-prevent-close-window.d.ts +13 -0
  403. package/dist/src/hooks/use-prevent-close-window/use-prevent-close-window.test.d.ts +1 -0
  404. package/dist/src/hooks/use-range-pagination/index.d.ts +1 -0
  405. package/dist/src/hooks/use-range-pagination/use-range-pagination.d.ts +22 -0
  406. package/dist/src/hooks/use-range-pagination/use-range-pagination.test.d.ts +1 -0
  407. package/dist/src/hooks/use-selection/index.d.ts +1 -0
  408. package/dist/src/hooks/use-selection/use-selection.d.ts +54 -0
  409. package/dist/src/hooks/use-selection/use-selection.test.d.ts +1 -0
  410. package/dist/src/hooks/use-step/index.d.ts +1 -0
  411. package/dist/src/hooks/use-step/use-step.d.ts +14 -0
  412. package/dist/src/hooks/use-step/use-step.test.d.ts +1 -0
  413. package/dist/src/hooks/use-toggle/index.d.ts +1 -0
  414. package/dist/src/hooks/use-toggle/use-toggle.d.ts +3 -0
  415. package/dist/src/hooks/use-toggle/use-toggle.test.d.ts +1 -0
  416. package/dist/src/index.d.ts +6 -0
  417. package/dist/src/lib/cn.d.ts +3 -0
  418. package/dist/src/lib/index.d.ts +1 -0
  419. package/dist/src/models/Generic.model.d.ts +37 -0
  420. package/dist/src/models/index.d.ts +1 -0
  421. package/dist/src/providers/index.d.ts +2 -0
  422. package/dist/src/providers/library-provider.d.ts +28 -0
  423. package/dist/src/providers/theme/ThemeProvider.d.ts +11 -0
  424. package/dist/src/providers/theme/index.d.ts +3 -0
  425. package/dist/src/providers/theme/types.d.ts +10 -0
  426. package/dist/src/providers/theme/useThemeProps.d.ts +10 -0
  427. package/dist/src/stores/theme.store.d.ts +10 -0
  428. package/dist/src/utils/dates/parseDateRange.utility.d.ts +14 -0
  429. package/dist/src/utils/form.d.ts +32 -0
  430. package/dist/src/utils/form.test.d.ts +1 -0
  431. package/dist/src/utils/functions/createSafeContext.d.ts +2 -0
  432. package/dist/src/utils/functions/createSafeContext.test.d.ts +1 -0
  433. package/dist/src/utils/functions/ensureReactElement.d.ts +9 -0
  434. package/dist/src/utils/functions/ensureReactElement.test.d.ts +1 -0
  435. package/dist/src/utils/functions/getFormData.d.ts +2 -0
  436. package/dist/src/utils/functions/getFormData.test.d.ts +1 -0
  437. package/dist/src/utils/functions/index.d.ts +4 -0
  438. package/dist/src/utils/functions/mergeRefs.d.ts +2 -0
  439. package/dist/src/utils/functions/mergeRefs.test.d.ts +1 -0
  440. package/dist/src/utils/index.d.ts +3 -0
  441. package/dist/src/utils/strings/extractInitials.utility.d.ts +6 -0
  442. package/dist/src/utils/strings/index.d.ts +1 -0
  443. package/dist/src/utils/tests/click.d.ts +1 -0
  444. package/dist/src/utils/tests/index.d.ts +2 -0
  445. package/dist/src/utils/tests/keyboard.d.ts +10 -0
  446. package/dist/src/utils/tests/type.d.ts +1 -0
  447. package/dist/utils/form.cjs.js +1 -0
  448. package/dist/utils/form.es.js +62 -0
  449. package/dist/utils/functions/createSafeContext.cjs.js +1 -0
  450. package/dist/utils/functions/createSafeContext.es.js +13 -0
  451. package/dist/utils/functions/ensureReactElement.cjs.js +1 -0
  452. package/dist/utils/functions/ensureReactElement.es.js +13 -0
  453. package/dist/utils/functions/getFormData.cjs.js +1 -0
  454. package/dist/utils/functions/getFormData.es.js +11 -0
  455. package/dist/utils/functions/mergeRefs.cjs.js +1 -0
  456. package/dist/utils/functions/mergeRefs.es.js +10 -0
  457. package/dist/utils/strings/extractInitials.utility.cjs.js +1 -0
  458. package/dist/utils/strings/extractInitials.utility.es.js +4 -0
  459. package/package.json +6 -10
  460. package/src/components/accordion/accordion.test.tsx +117 -0
  461. package/src/components/accordion/accordion.tsx +2 -0
  462. package/src/components/alert/alert.test.tsx +185 -0
  463. package/src/components/alert/alert.tsx +2 -0
  464. package/src/components/alert-dialog/alert-dialog.test.tsx +208 -22
  465. package/src/components/alert-dialog/alert-dialog.tsx +6 -4
  466. package/src/components/auto-complete/auto-complete.test.tsx +709 -0
  467. package/src/components/auto-complete/auto-complete.tsx +8 -10
  468. package/src/components/avatar/avatar.test.tsx +307 -27
  469. package/src/components/avatar/avatar.tsx +2 -0
  470. package/src/components/button/button.test.tsx +206 -10
  471. package/src/components/button/button.tsx +2 -0
  472. package/src/components/button/components/base-button.tsx +2 -0
  473. package/src/components/calendar/calendar.test.tsx +174 -5
  474. package/src/components/card/card.test.tsx +207 -0
  475. package/src/components/card/card.tsx +2 -0
  476. package/src/components/center/center.test.tsx +63 -0
  477. package/src/components/center/center.tsx +2 -0
  478. package/src/components/checkbox/checkbox.test.tsx +388 -0
  479. package/src/components/checkbox/checkbox.tsx +2 -0
  480. package/src/components/checkbox-group/checkbox-group.test.tsx +156 -0
  481. package/src/components/checkbox-group/checkbox-group.tsx +2 -0
  482. package/src/components/combobox/combobox.test.tsx +458 -0
  483. package/src/components/combobox/combobox.tsx +14 -12
  484. package/src/components/date-picker/date-input.tsx +2 -0
  485. package/src/components/date-picker/date-picker.test.tsx +546 -2
  486. package/src/components/date-picker/date-picker.tsx +2 -0
  487. package/src/components/date-picker/date-picker.utils.test.ts +251 -0
  488. package/src/components/date-picker/use-date-input-popover.test.ts +61 -0
  489. package/src/components/dialog/dialog.test.tsx +302 -3
  490. package/src/components/dialog/dialog.tsx +3 -1
  491. package/src/components/divider/divider.test.tsx +41 -1
  492. package/src/components/divider/divider.tsx +3 -1
  493. package/src/components/dropzone/dropzone.test.tsx +355 -0
  494. package/src/components/dropzone/dropzone.tsx +2 -0
  495. package/src/components/empty/empty.test.tsx +219 -0
  496. package/src/components/empty/empty.tsx +2 -0
  497. package/src/components/field/field.test.tsx +324 -0
  498. package/src/components/field/field.tsx +2 -0
  499. package/src/components/form/form.test.tsx +44 -0
  500. package/src/components/form/form.tsx +2 -0
  501. package/src/components/index.ts +1 -0
  502. package/src/components/input/input.stories.tsx +2 -3
  503. package/src/components/input/input.test.tsx +109 -0
  504. package/src/components/input/input.tsx +2 -0
  505. package/src/components/kbd/kbd.test.tsx +66 -0
  506. package/src/components/kbd/kbd.tsx +2 -0
  507. package/src/components/label/label.test.tsx +46 -0
  508. package/src/components/label/label.tsx +3 -1
  509. package/src/components/loader/loader.test.tsx +63 -1
  510. package/src/components/loader/loader.tsx +2 -0
  511. package/src/components/menu/menu.test.tsx +167 -0
  512. package/src/components/number-input/number-input.test.tsx +216 -47
  513. package/src/components/otp/otp.test.tsx +103 -0
  514. package/src/components/otp/otp.tsx +2 -0
  515. package/src/components/pagination/pagination.test.tsx +61 -1
  516. package/src/components/pagination/pagination.tsx +2 -0
  517. package/src/components/password/password.test.tsx +115 -0
  518. package/src/components/password/password.tsx +2 -0
  519. package/src/components/popover/popover.test.tsx +175 -0
  520. package/src/components/progress/progress.test.tsx +102 -1
  521. package/src/components/progress/progress.tsx +2 -0
  522. package/src/components/radio-group/radio-group.test.tsx +169 -0
  523. package/src/components/radio-group/radio-group.tsx +2 -0
  524. package/src/components/scroll-area/scroll-area.test.tsx +140 -0
  525. package/src/components/select/select.test.tsx +357 -0
  526. package/src/components/select/select.tsx +1 -1
  527. package/src/components/skeleton/skeleton.test.tsx +37 -0
  528. package/src/components/skeleton/skeleton.tsx +2 -0
  529. package/src/components/stack/stack.test.tsx +134 -0
  530. package/src/components/stack/stack.tsx +2 -0
  531. package/src/components/stepper/stepper.test.tsx +378 -23
  532. package/src/components/switch/switch.test.tsx +68 -2
  533. package/src/components/switch/switch.tsx +2 -0
  534. package/src/components/table/table.test.tsx +168 -1
  535. package/src/components/table/table.tsx +2 -0
  536. package/src/components/tabs/tabs.test.tsx +138 -1
  537. package/src/components/tag/tag.test.tsx +40 -1
  538. package/src/components/tag/tag.tsx +2 -0
  539. package/src/components/textarea/textarea.test.tsx +57 -0
  540. package/src/components/timeline/timeline.test.tsx +202 -0
  541. package/src/components/timeline/timeline.tsx +2 -0
  542. package/src/components/toast/toast.test.tsx +287 -3
  543. package/src/components/toast/toast.tsx +3 -1
  544. package/src/components/tooltip/tooltip.test.tsx +120 -7
  545. package/src/components/tooltip/tooltip.tsx +2 -0
  546. package/src/components/tree/tree.test.tsx +146 -5
  547. package/src/hooks/index.ts +26 -25
  548. package/src/hooks/internal/index.ts +2 -0
  549. package/src/hooks/internal/is-browser.ts +1 -0
  550. package/src/hooks/internal/use-isomorphic-layout-effect.ts +4 -0
  551. package/src/hooks/use-array/index.ts +1 -0
  552. package/src/hooks/{useArray/__doc__/useArray.stories.tsx → use-array/use-array.stories.tsx} +2 -2
  553. package/src/hooks/{useArray/__test__/useArray.test.tsx → use-array/use-array.test.tsx} +25 -1
  554. package/src/hooks/{useArray/useArray.ts → use-array/use-array.ts} +4 -6
  555. package/src/hooks/use-async/index.ts +1 -0
  556. package/src/hooks/{useAsync/__doc__/useAsync.stories.tsx → use-async/use-async.stories.tsx} +5 -6
  557. package/src/hooks/{useAsync/__test__/useAsync.test.tsx → use-async/use-async.test.tsx} +1 -1
  558. package/src/hooks/{useAsync/useAsync.ts → use-async/use-async.ts} +1 -2
  559. package/src/hooks/use-click-outside/index.ts +1 -0
  560. package/src/hooks/{useClickOutside/__doc__/useClickOutside.stories.tsx → use-click-outside/use-click-outside.stories.tsx} +2 -2
  561. package/src/hooks/use-click-outside/use-click-outside.test.tsx +39 -0
  562. package/src/hooks/{useClickOutside/useClickOutside.ts → use-click-outside/use-click-outside.ts} +1 -2
  563. package/src/hooks/use-clipboard/index.ts +1 -0
  564. package/src/hooks/use-clipboard/use-clipboard.stories.tsx +168 -0
  565. package/src/hooks/use-clipboard/use-clipboard.test.tsx +114 -0
  566. package/src/hooks/use-clipboard/use-clipboard.tsx +70 -0
  567. package/src/hooks/use-debounce-callback/index.ts +1 -0
  568. package/src/hooks/{useDebounceCallback/__doc__/useDebouncedCallback.stories.tsx → use-debounce-callback/use-debounced-callback.stories.tsx} +3 -3
  569. package/src/hooks/use-debounce-callback/use-debounced-callback.test.ts +88 -0
  570. package/src/hooks/{useDebounceCallback/useDebouncedCallback.ts → use-debounce-callback/use-debounced-callback.ts} +1 -2
  571. package/src/hooks/use-debounce-value/index.ts +1 -0
  572. package/src/hooks/{useDebounceValue/__doc__/useDebouncedValue.stories.tsx → use-debounce-value/use-debounced-value.stories.tsx} +2 -2
  573. package/src/hooks/use-debounce-value/use-debounced-value.test.ts +101 -0
  574. package/src/hooks/{useDebounceValue/useDebouncedValue.ts → use-debounce-value/use-debounced-value.ts} +1 -2
  575. package/src/hooks/use-disclosure/index.ts +1 -0
  576. package/src/hooks/{useDisclosure/__doc__/useDisclosure.stories.tsx → use-disclosure/use-disclosure.stories.tsx} +3 -3
  577. package/src/hooks/use-disclosure/use-disclosure.test.ts +72 -0
  578. package/src/hooks/{useDisclosure/useDisclosure.ts → use-disclosure/use-disclosure.ts} +1 -2
  579. package/src/hooks/use-document-title/index.ts +1 -0
  580. package/src/hooks/use-document-title/use-document-title.stories.tsx +72 -0
  581. package/src/hooks/use-document-title/use-document-title.test.tsx +75 -0
  582. package/src/hooks/use-document-title/use-document-title.tsx +32 -0
  583. package/src/hooks/use-event-listener/index.ts +1 -0
  584. package/src/hooks/{useEventListener/__doc__/useEventListener.stories.tsx → use-event-listener/use-event-listener.stories.tsx} +2 -2
  585. package/src/hooks/{useEventListener/__test__/useEventListener.test.tsx → use-event-listener/use-event-listener.test.tsx} +6 -3
  586. package/src/hooks/{useEventListener/useEventListener.ts → use-event-listener/use-event-listener.ts} +3 -4
  587. package/src/hooks/use-focus-trap/index.ts +1 -0
  588. package/src/hooks/{useFocusTrap/__doc__/useFocusTrap.stories.tsx → use-focus-trap/use-focus-trap.stories.tsx} +2 -2
  589. package/src/hooks/use-focus-trap/use-focus-trap.test.ts +330 -0
  590. package/src/hooks/{useFocusTrap/useFocusTrap.ts → use-focus-trap/use-focus-trap.ts} +2 -3
  591. package/src/hooks/use-hotkey/index.ts +1 -0
  592. package/src/hooks/{useHotkey/__docs__/useHotkey.stories.tsx → use-hotkey/use-hotkey.stories.tsx} +2 -2
  593. package/src/hooks/{useHotkey/__test__/useHotkey.test.tsx → use-hotkey/use-hotkey.test.tsx} +34 -3
  594. package/src/hooks/{useHotkey/useHotkey.ts → use-hotkey/use-hotkey.ts} +3 -4
  595. package/src/hooks/use-hover/index.ts +1 -0
  596. package/src/hooks/use-hover/use-hover.stories.tsx +90 -0
  597. package/src/hooks/use-hover/use-hover.test.tsx +93 -0
  598. package/src/hooks/use-hover/use-hover.tsx +45 -0
  599. package/src/hooks/use-is-visible/index.ts +1 -0
  600. package/src/hooks/{useIsVisible/__doc__/useIsVisible.stories.tsx → use-is-visible/use-is-visible.stories.tsx} +2 -2
  601. package/src/hooks/use-is-visible/use-is-visible.test.tsx +135 -0
  602. package/src/hooks/{useIsVisible/useIsVisible.tsx → use-is-visible/use-is-visible.tsx} +1 -2
  603. package/src/hooks/use-local-storage/index.ts +1 -0
  604. package/src/hooks/{useLocalStorage/__doc__/useLocalStorage.stories.tsx → use-local-storage/use-local-storage.stories.tsx} +2 -2
  605. package/src/hooks/{useLocalStorage/__test__/useLocalStorage.test.ts → use-local-storage/use-local-storage.test.ts} +47 -1
  606. package/src/hooks/{useLocalStorage/useLocalStorage.ts → use-local-storage/use-local-storage.ts} +3 -4
  607. package/src/hooks/use-media-query/index.ts +1 -0
  608. package/src/hooks/{useMediaQuery/__doc__/useMediaQuery.stories.tsx → use-media-query/use-media-query.stories.tsx} +1 -1
  609. package/src/hooks/{useMediaQuery/useMediaQuery.ts → use-media-query/use-media-query.ts} +1 -3
  610. package/src/hooks/use-memoized-fn/index.ts +1 -0
  611. package/src/hooks/use-memoized-fn/use-memoized-fn.test.ts +52 -0
  612. package/src/hooks/{useMemoizedFn/useMemoizedFn.ts → use-memoized-fn/use-memoized-fn.ts} +2 -4
  613. package/src/hooks/use-mutation/index.ts +1 -0
  614. package/src/hooks/{useMutation/__doc__/useMutation.stories.tsx → use-mutation/use-mutation.stories.tsx} +4 -4
  615. package/src/hooks/{useMutation/__test__/useMutation.test.tsx → use-mutation/use-mutation.test.tsx} +1 -1
  616. package/src/hooks/{useMutation/useMutation.tsx → use-mutation/use-mutation.tsx} +3 -4
  617. package/src/hooks/use-object/index.ts +1 -0
  618. package/src/hooks/{useObject/__doc__/useObject.stories.tsx → use-object/use-object.stories.tsx} +2 -2
  619. package/src/hooks/{useObject/__test__/useObject.test.tsx → use-object/use-object.test.tsx} +18 -3
  620. package/src/hooks/{useObject/useObject.tsx → use-object/use-object.tsx} +6 -8
  621. package/src/hooks/use-on-mount/index.ts +1 -0
  622. package/src/hooks/use-on-mount/use-on-mount.stories.tsx +85 -0
  623. package/src/hooks/use-on-mount/use-on-mount.test.tsx +51 -0
  624. package/src/hooks/use-on-mount/use-on-mount.tsx +13 -0
  625. package/src/hooks/use-pagination/index.ts +1 -0
  626. package/src/hooks/{usePagination/__doc__/usePagination.stories.tsx → use-pagination/use-pagination.stories.tsx} +2 -2
  627. package/src/hooks/{usePagination/__test__/usePagination.test.tsx → use-pagination/use-pagination.test.tsx} +1 -1
  628. package/src/hooks/{usePagination/usePagination.tsx → use-pagination/use-pagination.tsx} +1 -2
  629. package/src/hooks/use-portal/index.ts +1 -0
  630. package/src/hooks/{usePortal/__doc__/usePortal.stories.tsx → use-portal/use-portal.stories.tsx} +1 -1
  631. package/src/hooks/use-portal/use-portal.test.tsx +77 -0
  632. package/src/hooks/use-portal/use-portal.ts +59 -0
  633. package/src/hooks/use-prevent-close-window/index.ts +1 -0
  634. package/src/hooks/{usePreventCloseWindow/__doc__/usePreventCloseWindow.stories.tsx → use-prevent-close-window/use-prevent-close-window.stories.tsx} +1 -1
  635. package/src/hooks/use-prevent-close-window/use-prevent-close-window.test.ts +79 -0
  636. package/src/hooks/{usePreventCloseWindow/usePreventCloseWindow.ts → use-prevent-close-window/use-prevent-close-window.ts} +4 -4
  637. package/src/hooks/use-range-pagination/index.ts +1 -0
  638. package/src/hooks/{useRangePagination/__test__/useRangePagination.test.tsx → use-range-pagination/use-range-pagination.test.tsx} +1 -1
  639. package/src/hooks/{useRangePagination/useRangePagination.tsx → use-range-pagination/use-range-pagination.tsx} +4 -3
  640. package/src/hooks/use-selection/index.ts +1 -0
  641. package/src/hooks/{useSelection/__doc__/useSelection.stories.tsx → use-selection/use-selection.stories.tsx} +3 -3
  642. package/src/hooks/use-selection/use-selection.test.tsx +79 -0
  643. package/src/hooks/{useSelection/useSelection.ts → use-selection/use-selection.ts} +1 -2
  644. package/src/hooks/use-step/index.ts +1 -0
  645. package/src/hooks/{useStep/__doc__/useStep.stories.tsx → use-step/use-step.stories.tsx} +3 -3
  646. package/src/hooks/use-step/use-step.test.ts +73 -0
  647. package/src/hooks/{useStep/useStep.ts → use-step/use-step.ts} +4 -6
  648. package/src/hooks/use-toggle/index.ts +1 -0
  649. package/src/hooks/{useToggle/__doc__/useToggle.stories.tsx → use-toggle/use-toggle.stories.tsx} +2 -2
  650. package/src/hooks/{useToggle/__test__/useToggle.test.tsx → use-toggle/use-toggle.test.tsx} +22 -1
  651. package/src/hooks/{useToggle/useToggle.ts → use-toggle/use-toggle.ts} +2 -4
  652. package/src/utils/form.test.tsx +138 -0
  653. package/src/utils/form.tsx +0 -2
  654. package/src/utils/functions/createSafeContext.test.tsx +37 -0
  655. package/src/utils/functions/ensureReactElement.test.tsx +49 -0
  656. package/src/utils/functions/getFormData.test.ts +57 -0
  657. package/src/utils/functions/mergeRefs.test.ts +56 -0
  658. package/src/__doc__/Changelog.mdx +0 -6
  659. package/src/__doc__/Components.mdx +0 -73
  660. package/src/__doc__/Examples.tsx +0 -69
  661. package/src/__doc__/Icons.mdx +0 -41
  662. package/src/__doc__/Intro.mdx +0 -138
  663. package/src/__doc__/MCP.mdx +0 -71
  664. package/src/__doc__/Tabs.mdx +0 -112
  665. package/src/__doc__/Theme.mdx +0 -132
  666. package/src/__doc__/Types.mdx +0 -252
  667. package/src/__doc__/V2.mdx +0 -1245
  668. package/src/components/calendar/calendar.model.ts +0 -86
  669. package/src/components/calendar/components/calendar-navigation.tsx +0 -141
  670. package/src/components/calendar/components/day.tsx +0 -61
  671. package/src/components/calendar/components/decade-view.tsx +0 -45
  672. package/src/components/calendar/components/index.ts +0 -6
  673. package/src/components/calendar/components/month-view.tsx +0 -58
  674. package/src/components/calendar/components/week-days.tsx +0 -27
  675. package/src/components/calendar/components/year-view.tsx +0 -29
  676. package/src/components/calendar/hooks/index.ts +0 -4
  677. package/src/components/calendar/hooks/use-calendar-navigation.ts +0 -79
  678. package/src/components/calendar/hooks/use-calendar.ts +0 -90
  679. package/src/components/calendar/hooks/use-multiple-calendar.ts +0 -34
  680. package/src/components/calendar/hooks/use-range-calendar.ts +0 -91
  681. package/src/components/calendar/hooks/use-single-calendar.ts +0 -18
  682. package/src/components/calendar/utils/typeguards.ts +0 -7
  683. package/src/hooks/useArray/index.ts +0 -1
  684. package/src/hooks/useAsync/index.ts +0 -1
  685. package/src/hooks/useClickOutside/__test__/useClickOutside.test.tsx +0 -33
  686. package/src/hooks/useClickOutside/index.ts +0 -1
  687. package/src/hooks/useClipboard/__doc__/useClipboard.stories.tsx +0 -43
  688. package/src/hooks/useClipboard/__test__/useClipboard.test.tsx +0 -19
  689. package/src/hooks/useClipboard/index.ts +0 -1
  690. package/src/hooks/useClipboard/useClipboard.tsx +0 -28
  691. package/src/hooks/useDebounceCallback/index.ts +0 -1
  692. package/src/hooks/useDebounceValue/index.ts +0 -1
  693. package/src/hooks/useDisclosure/__test__/useDisclosure.test.ts +0 -43
  694. package/src/hooks/useDisclosure/index.ts +0 -1
  695. package/src/hooks/useDocumentTitle/__doc__/useDocumentTitle.stories.tsx +0 -26
  696. package/src/hooks/useDocumentTitle/index.ts +0 -1
  697. package/src/hooks/useDocumentTitle/useDocumentTitle.tsx +0 -11
  698. package/src/hooks/useEventListener/index.ts +0 -1
  699. package/src/hooks/useFocusTrap/index.ts +0 -1
  700. package/src/hooks/useHotkey/index.ts +0 -1
  701. package/src/hooks/useHover/__doc__/useHover.stories.tsx +0 -41
  702. package/src/hooks/useHover/__test__/useHover.test.tsx +0 -45
  703. package/src/hooks/useHover/index.ts +0 -1
  704. package/src/hooks/useHover/useHover.tsx +0 -40
  705. package/src/hooks/useIsVisible/index.ts +0 -1
  706. package/src/hooks/useLocalStorage/index.ts +0 -1
  707. package/src/hooks/useMediaQuery/index.ts +0 -1
  708. package/src/hooks/useMemoizedFn/index.ts +0 -1
  709. package/src/hooks/useMutation/index.ts +0 -1
  710. package/src/hooks/useObject/index.ts +0 -1
  711. package/src/hooks/usePagination/index.ts +0 -2
  712. package/src/hooks/usePortal/__test__/usePortal.test.tsx +0 -20
  713. package/src/hooks/usePortal/index.ts +0 -1
  714. package/src/hooks/usePortal/usePortal.ts +0 -40
  715. package/src/hooks/usePreventCloseWindow/index.ts +0 -1
  716. package/src/hooks/useRangePagination/index.ts +0 -2
  717. package/src/hooks/useSelection/__test__/useSelection.test.tsx +0 -57
  718. package/src/hooks/useSelection/index.ts +0 -1
  719. package/src/hooks/useStep/__test__/useStep.test.ts +0 -51
  720. package/src/hooks/useStep/index.ts +0 -1
  721. package/src/hooks/useToggle/index.ts +0 -1
  722. /package/src/hooks/{useFocusTrap/scopeTab.ts → use-focus-trap/scope-tab.ts} +0 -0
  723. /package/src/hooks/{useFocusTrap → use-focus-trap}/tabbable.ts +0 -0
  724. /package/src/hooks/{useHotkey/__utils__ → use-hotkey/utils}/create-hotkey-listener.ts +0 -0
  725. /package/src/hooks/{useHotkey/__utils__ → use-hotkey/utils}/index.ts +0 -0
  726. /package/src/hooks/{useHotkey/__utils__ → use-hotkey/utils}/is-input-field.ts +0 -0
  727. /package/src/hooks/{useHotkey/__utils__ → use-hotkey/utils}/match-key-modifiers.ts +0 -0
@@ -1,71 +0,0 @@
1
- import { Meta, Source } from "@storybook/addon-docs/blocks";
2
-
3
- <Meta title="Documentation/MCP" />
4
-
5
- # MCP — AI Integration
6
-
7
- Con este MCP (Model Context Protocol) Claude va a tener acceso directo a la documentación completa de todos los componentes de esta librería: props, variantes, ejemplos reales y patrones de uso.
8
-
9
- Sin el MCP, Claude no conoce esta librería. Inventa props, ignora nuestras convenciones y genera código genérico que no funciona. Con el MCP instalado, Claude consulta la documentación en tiempo real y genera código que usa correctamente `@boxcustodia/library` desde el primer intento, sin necesidad de leer el codebase ni darle contexto adicional.
10
-
11
- ## Requisito previo
12
-
13
- El Storybook está hosteado en un proyecto privado de Chromatic. Para poder autenticarte necesitás tener acceso al proyecto.
14
-
15
- **Pedile a Franco Baigorria que te agregue como colaborador en Chromatic antes de continuar.**
16
-
17
- ## Instalación
18
-
19
- Ejecutar una sola vez por computadora. Se instala globalmente y funciona en todos los proyectos internos automáticamente.
20
-
21
- La URL usa el formato de permalink de Chromatic (`branch--appId`) que siempre apunta al último deploy de la rama `v2`. No uses una URL de build específico — esas cambian con cada deploy.
22
-
23
- <Source
24
- language="bash"
25
- code={`npx mcp-add --type http --url "https://v2--69de51f0642746d263d5c46f.chromatic.com/mcp" --client-id "cdf3737dff9d485485968e50b63fd8b4" --scope global --clients "claude code"`}
26
- />
27
-
28
- El instalador va a hacer algunas preguntas, respondé así:
29
-
30
- - **What is the server name?** → `boxcustodia-library`
31
- - **HTTP headers?** → dejar vacío, Enter
32
- - **claude code OAuth client secret?** → dejar vacío, Enter
33
-
34
- La primera vez que Claude use el MCP abrirá el browser para autenticarse con Chromatic.
35
-
36
- ## Instrucción CLAUDE.md
37
-
38
- Se recomienda agregar este texto al archivo `CLAUDE.md` para que Claude sepa cuándo usar el MCP.
39
-
40
- <Source
41
- language="markdown"
42
- code={`## @boxcustodia/library
43
- Este proyecto usa @boxcustodia/library, que exporta componentes de UI y hooks de React.
44
- Cuando no estés seguro de cómo usar un componente o hook, qué props o parámetros acepta, qué variantes tiene,
45
- o cuál es el componente/hook correcto para una necesidad específica, consultá el MCP boxcustodia-library antes de escribir código.
46
- No es necesario consultarlo para usos básicos y evidentes.`}
47
- />
48
-
49
- Así Claude lo consulta cuando realmente lo necesita — componentes complejos, props no obvias, patrones específicos — sin hacerlo para cada `Button` o `Input`.
50
-
51
- ## Uso
52
-
53
- Una vez instalado, Claude consulta la documentación automáticamente. Algunos ejemplos de lo que podés pedirle:
54
-
55
- **Explorar la librería**
56
-
57
- <Source
58
- language="bash"
59
- code={`¿Qué componentes están disponibles en la librería?`}
60
- />
61
-
62
- **Consultar props y variantes**
63
-
64
- <Source language="bash" code={`¿Qué props acepta el componente Combobox?`} />
65
-
66
- **Implementar funcionalidades**
67
-
68
- <Source
69
- language="bash"
70
- code={`Implementá un buscador con sugerencias usando el componente AutoComplete de la librería.`}
71
- />
@@ -1,112 +0,0 @@
1
- ---
2
- title: Tabs
3
- description: A component for toggling between related panels on the same page.
4
-
5
- links:
6
- doc: https://base-ui.com/react/components/tabs#api-reference
7
- ---
8
-
9
- <ComponentPreview name="p-tabs-1" />
10
-
11
- ## Installation
12
-
13
- <CodeTabs>
14
-
15
- <TabsList>
16
- <TabsTab value="cli">CLI</TabsTab>
17
- <TabsTab value="manual">Manual</TabsTab>
18
- </TabsList>
19
- <TabsPanel value="cli">
20
-
21
- ```bash
22
- npx shadcn@latest add @coss/tabs
23
- ```
24
-
25
- </TabsPanel>
26
-
27
- <TabsPanel value="manual">
28
-
29
- <Steps>
30
-
31
- <Step>Copy and paste the following code into your project.</Step>
32
-
33
- <ComponentSource name="tabs" title="components/ui/tabs.tsx" />
34
-
35
- <Step>Update the import paths to match your project setup.</Step>
36
-
37
- </Steps>
38
-
39
- </TabsPanel>
40
-
41
- </CodeTabs>
42
-
43
- ## Usage
44
-
45
- ```tsx
46
- import { Tabs, TabsList, TabsPanel, TabsTab } from "@/components/ui/tabs"
47
- ```
48
-
49
- ```tsx
50
- <Tabs defaultValue="tab-1">
51
- <TabsList>
52
- <TabsTab value="tab-1">Tab 1</TabsTab>
53
- <TabsTab value="tab-2">Tab 2</TabsTab>
54
- <TabsTab value="tab-3">Tab 3</TabsTab>
55
- </TabsList>
56
- <TabsPanel value="tab-1">Tab 1 content</TabsPanel>
57
- <TabsPanel value="tab-2">Tab 2 content</TabsPanel>
58
- <TabsPanel value="tab-3">Tab 3 content</TabsPanel>
59
- </Tabs>
60
- ```
61
-
62
- ## API Reference
63
-
64
- ### Tabs
65
-
66
- Root component. Styled wrapper for `Tabs.Root` from Base UI. Accepts all `Tabs.Root` props.
67
-
68
- | Prop | Type | Default | Description |
69
- | -------------- | -------------------------------- | -------------- | ------------------------------------ |
70
- | `defaultValue` | `string` | — | Uncontrolled initial active tab |
71
- | `value` | `string` | — | Controlled active tab value |
72
- | `onValueChange`| `(value: string) => void` | — | Callback when active tab changes |
73
- | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` | Layout direction |
74
-
75
- ### TabsList
76
-
77
- Container for tab triggers. Styled wrapper for `Tabs.List` from Base UI. Renders the animated indicator internally.
78
-
79
- | Prop | Type | Default | Description |
80
- | --------- | ---------------------------- | ----------- | ----------------------------- |
81
- | `variant` | `"underline" \| "pill"` | `"underline"` | Underline indicator or pill background |
82
-
83
- ### TabsTab
84
-
85
- Individual tab trigger. Styled wrapper for `Tabs.Tab` from Base UI.
86
-
87
- | Prop | Type | Default | Description |
88
- | ---------- | --------- | ------- | ---------------------------- |
89
- | `value` | `string` | — | Matches the panel to activate |
90
- | `disabled` | `boolean` | `false` | Prevents interaction |
91
-
92
- ### TabsPanel
93
-
94
- Content panel for each tab. Styled wrapper for `Tabs.Panel` from Base UI.
95
-
96
- | Prop | Type | Default | Description |
97
- | ------- | -------- | ------- | ------------------------------- |
98
- | `value` | `string` | — | Matches the trigger that shows this panel |
99
-
100
- ## Examples
101
-
102
- ### Underline Variant
103
-
104
- <ComponentPreview name="p-tabs-2" />
105
-
106
- ### Vertical Orientation
107
-
108
- <ComponentPreview name="p-tabs-3" />
109
-
110
- ### Underline with Vertical Orientation
111
-
112
- <ComponentPreview name="p-tabs-4" />
@@ -1,132 +0,0 @@
1
- import {
2
- Canvas,
3
- ColorItem,
4
- ColorPalette,
5
- Meta,
6
- Source,
7
- } from "@storybook/addon-docs/blocks";
8
- import { BorderRadius } from "./Examples";
9
-
10
- <Meta title="Documentation/Theme" />
11
-
12
- # Theme
13
-
14
- La librería permite la customización de los estilos mediante variables CSS y la personalización detallada de cada componente usando slots.
15
-
16
- ## Personalización mediante Slots
17
-
18
- Cada componente de la librería está construido con una arquitectura basada en slots, lo que permite una personalización detallada de cada parte del componente a nivel global. Los slots son identificados mediante el atributo `data-slot` en los elementos HTML subyacentes.
19
-
20
- ### Cómo personalizar usando Slots
21
-
22
- Puedes sobrescribir los estilos de cualquier slot utilizando selectores CSS que apunten al atributo `data-slot`. Esta personalización se puede aplicar globalmente en tu archivo CSS principal o dentro de un módulo CSS.
23
-
24
- #### Ejemplo: Personalizando un Dialog
25
-
26
- ```css
27
- /* En tu archivo index.css */
28
- [data-slot="input"] {
29
- @apply h-12 rounded-xl border-primary; /* Aplica estilos a todos los inputs */
30
- }
31
-
32
- [data-slot="dialog-content"] {
33
- @apply rounded-3xl; /* Aplica bordes más redondeados a todos los dialog */
34
- }
35
- ```
36
-
37
- ## Border Radius
38
-
39
- Estos son los bordes redondeados por defecto. Se puede customizar `--radius`. La clase `rounded` es equivalente a la mitad del valor de `--radius`
40
-
41
- <BorderRadius />
42
-
43
- ## Paleta de colores
44
-
45
- Colores por defecto de la librería. Se puede customizar con las variables css
46
-
47
- <ColorPalette>
48
- <ColorItem
49
- title="color.primary"
50
- subtitle="Primary Colors"
51
- colors={{
52
- Primary: "var(--color-primary)",
53
- PrimaryForeground: "var(--color-primary-foreground)",
54
- }}
55
- />
56
- <ColorItem
57
- title="color.secondary"
58
- subtitle="Secondary Colors"
59
- colors={{
60
- Secondary: "var(--color-secondary)",
61
- SecondaryForeground: "var(--color-secondary-foreground)",
62
- }}
63
- />
64
- <ColorItem
65
- title="color.error"
66
- subtitle="Error Colors"
67
- colors={{
68
- error: "var(--color-error)",
69
- errorForeground: "var(--color-error-foreground)",
70
- }}
71
- />
72
- <ColorItem
73
- title="color.success"
74
- subtitle="Success Colors"
75
- colors={{
76
- Success: "var(--color-success)",
77
- SuccessForeground: "var(--color-success-foreground)",
78
- }}
79
- />
80
- <ColorItem
81
- title="color.muted"
82
- subtitle="Muted Colors"
83
- colors={{
84
- Muted: "var(--color-muted)",
85
- MutedForeground: "var(--color-muted-foreground)",
86
- }}
87
- />
88
- <ColorItem
89
- title="color.accent"
90
- subtitle="Accent Colors"
91
- colors={{
92
- Accent: "var(--color-accent)",
93
- AccentForeground: "var(--color-accent-foreground)",
94
- }}
95
- />
96
- <ColorItem
97
- title="color.popover"
98
- subtitle="Popover Colors"
99
- colors={{
100
- Popover: "var(--color-popover)",
101
- PopoverForeground: "var(--color-popover-foreground)",
102
- }}
103
- />
104
- <ColorItem
105
- title="color.background"
106
- subtitle="Background Colors"
107
- colors={{
108
- Background: "var(--color-background)",
109
- }}
110
- />
111
- <ColorItem
112
- title="color.foreground"
113
- subtitle="Foreground Colors"
114
- colors={{
115
- Foreground: "var(--color-foreground)",
116
- }}
117
- />
118
- <ColorItem
119
- title="color.input"
120
- subtitle="Input Colors"
121
- colors={{
122
- Input: "var(--color-input)",
123
- }}
124
- />
125
- <ColorItem
126
- title="color.ring"
127
- subtitle="Ring Colors"
128
- colors={{
129
- Ring: "var(--color-ring)",
130
- }}
131
- />
132
- </ColorPalette>
@@ -1,252 +0,0 @@
1
- import {
2
- Canvas,
3
- ColorItem,
4
- ColorPalette,
5
- Meta,
6
- Source,
7
- } from "@storybook/addon-docs/blocks";
8
- import { BorderRadius } from "./Examples";
9
-
10
- <Meta title="Documentation/Types" />
11
-
12
- # Types
13
-
14
- ## Extender interfaces de componentes
15
-
16
- ```ts
17
- // Se puede inferir utilizando la utilidad ComponentProps
18
- import { Input } from "../../components";
19
- type InputProps = ComponentProps<typeof Input>;
20
- ```
21
-
22
- ## Generic types
23
-
24
- ### GenericObject
25
-
26
- Interfaz de objeto genérico
27
-
28
- ```ts
29
- // Definición
30
- type GenericObject<T = any> = { [key: string]: T };
31
-
32
- const myObj: GenericObject = {
33
- test: "TEST",
34
- };
35
-
36
- const myObj: GenericObject<number> = {
37
- test: "TEST", // TS-Error
38
- prop: 4,
39
- };
40
- ```
41
-
42
- ### Nullable
43
-
44
- Permite manejar valores que pueden ser null
45
-
46
- ```ts
47
- // Definición
48
- type Nullable<T> = T | null;
49
-
50
- const [myState, setMyState] = useState<Nullable<number>>(null);
51
- setState(4);
52
- ```
53
-
54
- ### Maybe
55
-
56
- Permite manejar valores que pueden ser undefined o null
57
-
58
- ```ts
59
- // Definición
60
- type Maybe<T> = T | undefined | null;
61
-
62
- interface APIResponse {
63
- data: Maybe<string>; // string | undefined | null
64
- error: Maybe<string>; // string | undefined | null
65
- }
66
- ```
67
-
68
- ### State
69
-
70
- Interfaz de hook `useState`
71
-
72
- ```ts
73
- // Definición
74
- type SetState<T> = Dispatch<SetStateAction<T>>;
75
- type State<T> = [T, SetState<T>];
76
-
77
- interface MyComponentProps {
78
- value: string;
79
- setValue: SetState<string>;
80
- otherState: State<boolean>;
81
- }
82
-
83
- function MyComponent({ value, setValue, otherState }: MyComponentProps) {
84
- ...
85
- }
86
- ```
87
-
88
- ### ClassName
89
-
90
- interfaz simple para clases
91
-
92
- ```ts
93
- // Definición
94
- type ClassName = string | undefined;
95
-
96
- interface MyComponentProps {
97
- className: ClassName
98
- ...
99
- }
100
- ```
101
-
102
- ### ID
103
-
104
- interfaz para ids
105
-
106
- ```ts
107
- // Definición
108
- type ID = string | number;
109
-
110
- interface User {
111
- id: ID;
112
- }
113
- ```
114
-
115
- ### OverrideProps
116
-
117
- Interfaz que sobrescribe las propiedades de un componente por la interfaz que se pase
118
-
119
- ```ts
120
- // Definición
121
- type OverrideProps<T, TOverridden> = Omit<T, keyof TOverridden> & TOverridden;
122
-
123
- type InputExtension = ComponentProps<"input">;
124
- type MyCustomProps = { onChange: (value: string) => any };
125
- type MyComponentProps = OverrideProps<InputExtension, MyCustomProps>; // onChange: (value: string) => any
126
- ```
127
-
128
- ### SafeOmit
129
-
130
- Permite hacer omit de ciertas propiedades de una interfaz brindando autocompletado
131
-
132
- ```ts
133
- // Definición
134
- type SafeOmit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
135
-
136
- interface User {
137
- name: string;
138
- email: string;
139
- age: number;
140
- gender?: string;
141
- }
142
-
143
- type UserMetadata = Omit<User, "age" | "gender">;
144
- ```
145
-
146
- ### AtLeastOne
147
-
148
- Define un array que debe contener al menos 1 elemento
149
-
150
- ```ts
151
- // Definición
152
- type AtLeastOne<T> = [T, ...T[]];
153
-
154
- const myArray: AtLeastOne<number> = []; // ❌ TS-ERROR
155
- const myArray: AtLeastOne<number> = [1]; // ✅
156
- ```
157
-
158
- ### Loose
159
-
160
- Autocompletado de ciertas opciones con la posibilidad de pasar cualquier string
161
-
162
- ```ts
163
- // Definición
164
- type Loose<T> = T | (string & {});
165
-
166
- type Size = "xs" | "md" | "xl";
167
- type LooseSize = Loose<Size>;
168
-
169
- // Autocompleta 'xs', 'md' y 'xl'
170
- // Permite cualquier string
171
- const IconSizes: LooseSize[] = ["xs", "md", "xl", "10px", "100px"];
172
- ```
173
-
174
- ### Controllable
175
-
176
- Interfaz que sobrescribe las propiedades de un HTMLElement para hacerlo controlado
177
-
178
- ```ts
179
- // Definición
180
- type Controllable<C, T extends {}> = OverrideProps<
181
- HTMLProps<C>,
182
- ControllableState<T>
183
- >;
184
-
185
- // ❌ sin usar interfaz
186
- interface TabsProps
187
- extends Omit<
188
- HTMLProps<HTMLDivElement>,
189
- "value" | "defaultValue" | "onChange"
190
- > {
191
- value?: string;
192
- onChange?: (tab: string) => void;
193
- defaultValue?: string;
194
- }
195
-
196
- // ✅ usando interfaz
197
- type TabsProps = Controllable<HTMLDivElement, string>;
198
- ```
199
-
200
- ### ArrayUnion
201
-
202
- Obtiene una unión de todos los elementos de un array
203
-
204
- ```ts
205
- // Definición
206
- type ArrayUnion<V, T extends ReadonlyArray<V>> = T[number];
207
-
208
- const routes = ["dashboard", "login", "settings"] as const;
209
- type Route = ArrayUnion<string, typeof routes>; // "dashboard" | "login" | "settings"
210
- ```
211
-
212
- ### ValuesUnion
213
-
214
- Obtiene una unión de todos los valores de un objeto
215
-
216
- Las claves se pueden obtener con `keyof T`
217
-
218
- ```ts
219
- // Definición
220
- type ValuesUnion<T extends Record<string, any>> = T[keyof T];
221
-
222
- const methods = {
223
- GET: "get",
224
- POST: "post",
225
- } as const;
226
-
227
- type Method = ValuesUnion<typeof methods>; // "get" | "post"
228
- ```
229
-
230
- ### Entity
231
-
232
- Representa una entidad en una base de datos
233
-
234
- ```ts
235
- // Definición
236
- export type BaseEntity = {
237
- id: string;
238
- createdAt: number;
239
- };
240
-
241
- export type Entity<T> = {
242
- [K in keyof T]: T[K];
243
- } & BaseEntity;
244
-
245
- // Uso
246
- type User = Entity<{
247
- firstName: string;
248
- lastName: string;
249
- email: string;
250
- role: "ADMIN" | "USER";
251
- }>;
252
- ```