@soyfri/shared-library 2.0.0-beta.4 → 2.0.0-beta.5

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 (488) hide show
  1. package/package.json +164 -43
  2. package/.dockerignore +0 -8
  3. package/.github/workflows/publish.yml +0 -107
  4. package/.prettierrc +0 -3
  5. package/.storybook/main.ts +0 -19
  6. package/.storybook/preview.ts +0 -14
  7. package/.storybook/vitest.setup.ts +0 -9
  8. package/Dockerfile +0 -37
  9. package/Readme.md +0 -243
  10. package/build.js +0 -102
  11. package/chromatic.config.json +0 -5
  12. package/cleanDirectories.js +0 -40
  13. package/dist/package.json +0 -197
  14. package/rollup.config.cjs +0 -87
  15. package/src/components/ActionMenu/ActionMenu.stories.tsx +0 -230
  16. package/src/components/ActionMenu/ActionMenu.tsx +0 -174
  17. package/src/components/ActionMenu/index.ts +0 -2
  18. package/src/components/AppBar/AppBar.stories.tsx +0 -272
  19. package/src/components/AppBar/AppBar.sx.ts +0 -32
  20. package/src/components/AppBar/AppBar.tsx +0 -123
  21. package/src/components/AppBar/AppBarBrand.tsx +0 -120
  22. package/src/components/AppBar/AppBarContext.ts +0 -25
  23. package/src/components/AppBar/AppBarMenuToggle.tsx +0 -90
  24. package/src/components/AppBar/AppBarUserMenu.tsx +0 -217
  25. package/src/components/AppBar/index.ts +0 -25
  26. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -477
  27. package/src/components/Autocomplete/Autocomplete.helpers.ts +0 -60
  28. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -748
  29. package/src/components/Autocomplete/Autocomplete.sx.ts +0 -30
  30. package/src/components/Autocomplete/Autocomplete.tsx +0 -361
  31. package/src/components/Autocomplete/Autocomplete.types.ts +0 -13
  32. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +0 -55
  33. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +0 -17
  34. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +0 -31
  35. package/src/components/Autocomplete/index.ts +0 -12
  36. package/src/components/Avatar/Avatar.definitions.ts +0 -162
  37. package/src/components/Avatar/Avatar.stories.tsx +0 -258
  38. package/src/components/Avatar/Avatar.tsx +0 -206
  39. package/src/components/Avatar/index.ts +0 -1
  40. package/src/components/Button/Button.definition.ts +0 -97
  41. package/src/components/Button/Button.stories.tsx +0 -285
  42. package/src/components/Button/Button.tsx +0 -67
  43. package/src/components/Button/index.ts +0 -1
  44. package/src/components/Card/Card.definition.ts +0 -5
  45. package/src/components/Card/Card.stories.tsx +0 -221
  46. package/src/components/Card/Card.sx.ts +0 -104
  47. package/src/components/Card/Card.tsx +0 -200
  48. package/src/components/Card/index.ts +0 -9
  49. package/src/components/Chip/Chip.definitions.ts +0 -167
  50. package/src/components/Chip/Chip.stories.tsx +0 -265
  51. package/src/components/Chip/Chip.tsx +0 -61
  52. package/src/components/Chip/index.ts +0 -1
  53. package/src/components/Column/Column.tsx +0 -29
  54. package/src/components/Column/index.ts +0 -1
  55. package/src/components/DatePicker/DatePicker.definitions.ts +0 -228
  56. package/src/components/DatePicker/DatePicker.helpers.ts +0 -24
  57. package/src/components/DatePicker/DatePicker.stories.tsx +0 -309
  58. package/src/components/DatePicker/DatePicker.sx.ts +0 -33
  59. package/src/components/DatePicker/DatePicker.tsx +0 -189
  60. package/src/components/DatePicker/DatePicker.types.ts +0 -10
  61. package/src/components/DatePicker/index.ts +0 -9
  62. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  63. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  64. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  65. package/src/components/DateRangePicker/index.ts +0 -1
  66. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -256
  67. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +0 -38
  68. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -418
  69. package/src/components/DateTimePicker/DateTimePicker.sx.ts +0 -30
  70. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -225
  71. package/src/components/DateTimePicker/DateTimePicker.types.ts +0 -10
  72. package/src/components/DateTimePicker/index.ts +0 -9
  73. package/src/components/Drawer/Drawer.stories.tsx +0 -270
  74. package/src/components/Drawer/Drawer.sx.ts +0 -106
  75. package/src/components/Drawer/Drawer.tsx +0 -214
  76. package/src/components/Drawer/DrawerContext.ts +0 -26
  77. package/src/components/Drawer/DrawerItem.tsx +0 -110
  78. package/src/components/Drawer/index.ts +0 -10
  79. package/src/components/Flyout/Flyout.stories.tsx +0 -282
  80. package/src/components/Flyout/Flyout.tsx +0 -122
  81. package/src/components/Flyout/index.ts +0 -1
  82. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  83. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  84. package/src/components/Gallery/Gallery.tsx +0 -118
  85. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  86. package/src/components/Gallery/GalleryMain.tsx +0 -84
  87. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  88. package/src/components/Gallery/index.ts +0 -1
  89. package/src/components/Icon/Icon.stories.tsx +0 -121
  90. package/src/components/Icon/Icon.tsx +0 -175
  91. package/src/components/Icon/index.ts +0 -2
  92. package/src/components/Input/Input.definitions.ts +0 -324
  93. package/src/components/Input/Input.helpers.ts +0 -49
  94. package/src/components/Input/Input.stories.tsx +0 -499
  95. package/src/components/Input/Input.sx.ts +0 -42
  96. package/src/components/Input/Input.tsx +0 -141
  97. package/src/components/Input/Input.types.ts +0 -10
  98. package/src/components/Input/index.ts +0 -9
  99. package/src/components/InputGroup/InputGroup.definitions.ts +0 -158
  100. package/src/components/InputGroup/InputGroup.stories.tsx +0 -267
  101. package/src/components/InputGroup/InputGroup.tsx +0 -179
  102. package/src/components/InputGroup/index.ts +0 -1
  103. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  104. package/src/components/MenuButton/MenuButton.tsx +0 -100
  105. package/src/components/MenuButton/index.ts +0 -1
  106. package/src/components/Modal/Modal.stories.tsx +0 -721
  107. package/src/components/Modal/Modal.tsx +0 -355
  108. package/src/components/Modal/ModalBody.tsx +0 -16
  109. package/src/components/Modal/ModalFooter.tsx +0 -71
  110. package/src/components/Modal/ModalHeader.tsx +0 -18
  111. package/src/components/Modal/index.ts +0 -6
  112. package/src/components/PageLoader/PageLoader.stories.tsx +0 -217
  113. package/src/components/PageLoader/PageLoader.tsx +0 -96
  114. package/src/components/PageLoader/index.ts +0 -2
  115. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +0 -158
  116. package/src/components/ScrollTopButton/ScrollTopButton.tsx +0 -135
  117. package/src/components/ScrollTopButton/index.ts +0 -8
  118. package/src/components/ScrollTopButton/scrollToTop.ts +0 -37
  119. package/src/components/Select/Select.definitions.ts +0 -602
  120. package/src/components/Select/Select.helpers.ts +0 -71
  121. package/src/components/Select/Select.stories.tsx +0 -687
  122. package/src/components/Select/Select.sx.ts +0 -14
  123. package/src/components/Select/Select.tsx +0 -429
  124. package/src/components/Select/Select.types.ts +0 -15
  125. package/src/components/Select/_parts/SelectMenuItem.tsx +0 -40
  126. package/src/components/Select/_parts/SelectSearchHeader.tsx +0 -51
  127. package/src/components/Select/_parts/SelectValue.tsx +0 -96
  128. package/src/components/Select/index.ts +0 -14
  129. package/src/components/Stat/Stat.stories.tsx +0 -85
  130. package/src/components/Stat/Stat.tsx +0 -117
  131. package/src/components/Stat/index.ts +0 -2
  132. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  133. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  134. package/src/components/StatusMessage/index.ts +0 -2
  135. package/src/components/Stepper/Step.tsx +0 -21
  136. package/src/components/Stepper/Stepper.definition.ts +0 -75
  137. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  138. package/src/components/Stepper/Stepper.tsx +0 -75
  139. package/src/components/Stepper/index.ts +0 -2
  140. package/src/components/Table/EmptyTable.png +0 -0
  141. package/src/components/Table/Table.definition.ts +0 -580
  142. package/src/components/Table/Table.stories.tsx +0 -853
  143. package/src/components/Table/Table.tsx +0 -495
  144. package/src/components/Table/data.ts +0 -134
  145. package/src/components/Table/exportsUtils.ts +0 -195
  146. package/src/components/Table/index.ts +0 -3
  147. package/src/components/Table/types.ts +0 -34
  148. package/src/components/Tabs/Tab.definition.ts +0 -53
  149. package/src/components/Tabs/Tab.tsx +0 -19
  150. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  151. package/src/components/Tabs/Tabs.tsx +0 -99
  152. package/src/components/Tabs/_tabUtils.tsx +0 -4
  153. package/src/components/Tabs/index.ts +0 -2
  154. package/src/components/Timeline/Timeline.definition.ts +0 -43
  155. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  156. package/src/components/Timeline/Timeline.tsx +0 -49
  157. package/src/components/Timeline/TimelineItem.tsx +0 -31
  158. package/src/components/Timeline/index.ts +0 -2
  159. package/src/components/Tooltip/Tooltip.stories.tsx +0 -129
  160. package/src/components/Tooltip/Tooltip.tsx +0 -58
  161. package/src/components/Tooltip/index.ts +0 -1
  162. package/src/components/_shared/formField.sx.ts +0 -118
  163. package/src/components/_shared/resolvePreset.ts +0 -35
  164. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  165. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  166. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  167. package/src/hooks/ClipBoard/index.ts +0 -1
  168. package/src/hooks/Wizard/Wizard.stories.tsx +0 -301
  169. package/src/hooks/Wizard/WizardContext.tsx +0 -166
  170. package/src/hooks/Wizard/index.ts +0 -6
  171. package/src/hooks/Wizard/useWizard.ts +0 -13
  172. package/src/index.ts +0 -17
  173. package/src/mui.ts +0 -54
  174. package/src/styles.css +0 -3
  175. package/src/theme/componentStyles.ts +0 -47
  176. package/src/theme/tokens.ts +0 -43
  177. package/tailwind.config.js +0 -10
  178. package/tsconfig.json +0 -48
  179. package/tsup.config.js +0 -41
  180. package/vite.config.js +0 -132
  181. package/vitest.config.ts +0 -35
  182. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  183. /package/{dist/Button-C17mExpd.cjs.map → Button-C17mExpd.cjs.map} +0 -0
  184. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  185. /package/{dist/Button-UkkP-bNw.js.map → Button-UkkP-bNw.js.map} +0 -0
  186. /package/{dist/README.md → README.md} +0 -0
  187. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs +0 -0
  188. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs.map +0 -0
  189. /package/{dist/components → components}/ActionMenu/ActionMenu.d.ts +0 -0
  190. /package/{dist/components → components}/ActionMenu/ActionMenu.js +0 -0
  191. /package/{dist/components → components}/ActionMenu/ActionMenu.js.map +0 -0
  192. /package/{dist/components → components}/ActionMenu/index.d.ts +0 -0
  193. /package/{dist/components → components}/ActionMenu.d.ts +0 -0
  194. /package/{dist/components → components}/AppBar/AppBar.cjs +0 -0
  195. /package/{dist/components → components}/AppBar/AppBar.cjs.map +0 -0
  196. /package/{dist/components → components}/AppBar/AppBar.d.ts +0 -0
  197. /package/{dist/components → components}/AppBar/AppBar.js +0 -0
  198. /package/{dist/components → components}/AppBar/AppBar.js.map +0 -0
  199. /package/{dist/components → components}/AppBar/AppBar.sx.d.ts +0 -0
  200. /package/{dist/components → components}/AppBar/AppBarBrand.d.ts +0 -0
  201. /package/{dist/components → components}/AppBar/AppBarContext.d.ts +0 -0
  202. /package/{dist/components → components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  203. /package/{dist/components → components}/AppBar/AppBarUserMenu.d.ts +0 -0
  204. /package/{dist/components → components}/AppBar/index.d.ts +0 -0
  205. /package/{dist/components → components}/AppBar.d.ts +0 -0
  206. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs +0 -0
  207. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs.map +0 -0
  208. /package/{dist/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  209. /package/{dist/components → components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  210. /package/{dist/components → components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  211. /package/{dist/components → components}/Autocomplete/Autocomplete.js +0 -0
  212. /package/{dist/components → components}/Autocomplete/Autocomplete.js.map +0 -0
  213. /package/{dist/components → components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  214. /package/{dist/components → components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  215. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  216. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  217. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  218. /package/{dist/components → components}/Autocomplete/index.d.ts +0 -0
  219. /package/{dist/components → components}/Autocomplete.d.ts +0 -0
  220. /package/{dist/components → components}/Avatar/Avatar.cjs +0 -0
  221. /package/{dist/components → components}/Avatar/Avatar.cjs.map +0 -0
  222. /package/{dist/components → components}/Avatar/Avatar.d.ts +0 -0
  223. /package/{dist/components → components}/Avatar/Avatar.definitions.d.ts +0 -0
  224. /package/{dist/components → components}/Avatar/Avatar.js +0 -0
  225. /package/{dist/components → components}/Avatar/Avatar.js.map +0 -0
  226. /package/{dist/components → components}/Avatar/index.d.ts +0 -0
  227. /package/{dist/components → components}/Avatar.d.ts +0 -0
  228. /package/{dist/components → components}/Button/Button.cjs +0 -0
  229. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  230. /package/{dist/components → components}/Button/Button.d.ts +0 -0
  231. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  232. /package/{dist/components → components}/Button/Button.js +0 -0
  233. /package/{dist/components → components}/Button/Button.js.map +0 -0
  234. /package/{dist/components → components}/Button/index.d.ts +0 -0
  235. /package/{dist/components → components}/Button.d.ts +0 -0
  236. /package/{dist/components → components}/Card/Card.cjs +0 -0
  237. /package/{dist/components → components}/Card/Card.cjs.map +0 -0
  238. /package/{dist/components → components}/Card/Card.d.ts +0 -0
  239. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  240. /package/{dist/components → components}/Card/Card.js +0 -0
  241. /package/{dist/components → components}/Card/Card.js.map +0 -0
  242. /package/{dist/components → components}/Card/Card.sx.d.ts +0 -0
  243. /package/{dist/components → components}/Card/index.d.ts +0 -0
  244. /package/{dist/components → components}/Card.d.ts +0 -0
  245. /package/{dist/components → components}/Chip/Chip.cjs +0 -0
  246. /package/{dist/components → components}/Chip/Chip.cjs.map +0 -0
  247. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  248. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  249. /package/{dist/components → components}/Chip/Chip.js +0 -0
  250. /package/{dist/components → components}/Chip/Chip.js.map +0 -0
  251. /package/{dist/components → components}/Chip/index.d.ts +0 -0
  252. /package/{dist/components → components}/Chip.d.ts +0 -0
  253. /package/{dist/components → components}/Column/Column.cjs +0 -0
  254. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  255. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  256. /package/{dist/components → components}/Column/Column.js +0 -0
  257. /package/{dist/components → components}/Column/Column.js.map +0 -0
  258. /package/{dist/components → components}/Column/index.d.ts +0 -0
  259. /package/{dist/components → components}/Column.d.ts +0 -0
  260. /package/{dist/components → components}/DatePicker/DatePicker.cjs +0 -0
  261. /package/{dist/components → components}/DatePicker/DatePicker.cjs.map +0 -0
  262. /package/{dist/components → components}/DatePicker/DatePicker.d.ts +0 -0
  263. /package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  264. /package/{dist/components → components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  265. /package/{dist/components → components}/DatePicker/DatePicker.js +0 -0
  266. /package/{dist/components → components}/DatePicker/DatePicker.js.map +0 -0
  267. /package/{dist/components → components}/DatePicker/DatePicker.sx.d.ts +0 -0
  268. /package/{dist/components → components}/DatePicker/DatePicker.types.d.ts +0 -0
  269. /package/{dist/components → components}/DatePicker/index.d.ts +0 -0
  270. /package/{dist/components → components}/DatePicker.d.ts +0 -0
  271. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  272. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  273. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  274. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  275. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  276. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  277. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  278. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  279. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs +0 -0
  280. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  281. /package/{dist/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  282. /package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  283. /package/{dist/components → components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  284. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js +0 -0
  285. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js.map +0 -0
  286. /package/{dist/components → components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  287. /package/{dist/components → components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  288. /package/{dist/components → components}/DateTimePicker/index.d.ts +0 -0
  289. /package/{dist/components → components}/DateTimePicker.d.ts +0 -0
  290. /package/{dist/components → components}/Drawer/Drawer.cjs +0 -0
  291. /package/{dist/components → components}/Drawer/Drawer.cjs.map +0 -0
  292. /package/{dist/components → components}/Drawer/Drawer.d.ts +0 -0
  293. /package/{dist/components → components}/Drawer/Drawer.js +0 -0
  294. /package/{dist/components → components}/Drawer/Drawer.js.map +0 -0
  295. /package/{dist/components → components}/Drawer/Drawer.sx.d.ts +0 -0
  296. /package/{dist/components → components}/Drawer/DrawerContext.d.ts +0 -0
  297. /package/{dist/components → components}/Drawer/DrawerItem.d.ts +0 -0
  298. /package/{dist/components → components}/Drawer/index.d.ts +0 -0
  299. /package/{dist/components → components}/Drawer.d.ts +0 -0
  300. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  301. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  302. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  303. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  304. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  305. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  306. /package/{dist/components → components}/Flyout.d.ts +0 -0
  307. /package/{dist/components → components}/Gallery/Gallery.cjs +0 -0
  308. /package/{dist/components → components}/Gallery/Gallery.cjs.map +0 -0
  309. /package/{dist/components → components}/Gallery/Gallery.d.ts +0 -0
  310. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  311. /package/{dist/components → components}/Gallery/Gallery.js +0 -0
  312. /package/{dist/components → components}/Gallery/Gallery.js.map +0 -0
  313. /package/{dist/components → components}/Gallery/GalleryLightbox.d.ts +0 -0
  314. /package/{dist/components → components}/Gallery/GalleryMain.d.ts +0 -0
  315. /package/{dist/components → components}/Gallery/GalleryThumbnails.d.ts +0 -0
  316. /package/{dist/components → components}/Gallery/index.d.ts +0 -0
  317. /package/{dist/components → components}/Gallery.d.ts +0 -0
  318. /package/{dist/components → components}/Icon/Icon.cjs +0 -0
  319. /package/{dist/components → components}/Icon/Icon.cjs.map +0 -0
  320. /package/{dist/components → components}/Icon/Icon.d.ts +0 -0
  321. /package/{dist/components → components}/Icon/Icon.js +0 -0
  322. /package/{dist/components → components}/Icon/Icon.js.map +0 -0
  323. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  324. /package/{dist/components → components}/Icon.d.ts +0 -0
  325. /package/{dist/components → components}/Input/Input.cjs +0 -0
  326. /package/{dist/components → components}/Input/Input.cjs.map +0 -0
  327. /package/{dist/components → components}/Input/Input.d.ts +0 -0
  328. /package/{dist/components → components}/Input/Input.definitions.d.ts +0 -0
  329. /package/{dist/components → components}/Input/Input.helpers.d.ts +0 -0
  330. /package/{dist/components → components}/Input/Input.js +0 -0
  331. /package/{dist/components → components}/Input/Input.js.map +0 -0
  332. /package/{dist/components → components}/Input/Input.sx.d.ts +0 -0
  333. /package/{dist/components → components}/Input/Input.types.d.ts +0 -0
  334. /package/{dist/components → components}/Input/index.d.ts +0 -0
  335. /package/{dist/components → components}/Input.d.ts +0 -0
  336. /package/{dist/components → components}/InputGroup/InputGroup.cjs +0 -0
  337. /package/{dist/components → components}/InputGroup/InputGroup.cjs.map +0 -0
  338. /package/{dist/components → components}/InputGroup/InputGroup.d.ts +0 -0
  339. /package/{dist/components → components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  340. /package/{dist/components → components}/InputGroup/InputGroup.js +0 -0
  341. /package/{dist/components → components}/InputGroup/InputGroup.js.map +0 -0
  342. /package/{dist/components → components}/InputGroup/index.d.ts +0 -0
  343. /package/{dist/components → components}/InputGroup.d.ts +0 -0
  344. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  345. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  346. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  347. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  348. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  349. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  350. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  351. /package/{dist/components → components}/Modal/Modal.cjs +0 -0
  352. /package/{dist/components → components}/Modal/Modal.cjs.map +0 -0
  353. /package/{dist/components → components}/Modal/Modal.d.ts +0 -0
  354. /package/{dist/components → components}/Modal/Modal.js +0 -0
  355. /package/{dist/components → components}/Modal/Modal.js.map +0 -0
  356. /package/{dist/components → components}/Modal/ModalBody.d.ts +0 -0
  357. /package/{dist/components → components}/Modal/ModalFooter.d.ts +0 -0
  358. /package/{dist/components → components}/Modal/ModalHeader.d.ts +0 -0
  359. /package/{dist/components → components}/Modal/index.d.ts +0 -0
  360. /package/{dist/components → components}/Modal.d.ts +0 -0
  361. /package/{dist/components → components}/PageLoader/PageLoader.cjs +0 -0
  362. /package/{dist/components → components}/PageLoader/PageLoader.cjs.map +0 -0
  363. /package/{dist/components → components}/PageLoader/PageLoader.d.ts +0 -0
  364. /package/{dist/components → components}/PageLoader/PageLoader.js +0 -0
  365. /package/{dist/components → components}/PageLoader/PageLoader.js.map +0 -0
  366. /package/{dist/components → components}/PageLoader/index.d.ts +0 -0
  367. /package/{dist/components → components}/PageLoader.d.ts +0 -0
  368. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  369. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  370. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  371. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js +0 -0
  372. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  373. /package/{dist/components → components}/ScrollTopButton/index.d.ts +0 -0
  374. /package/{dist/components → components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  375. /package/{dist/components → components}/ScrollTopButton.d.ts +0 -0
  376. /package/{dist/components → components}/Select/Select.cjs +0 -0
  377. /package/{dist/components → components}/Select/Select.cjs.map +0 -0
  378. /package/{dist/components → components}/Select/Select.d.ts +0 -0
  379. /package/{dist/components → components}/Select/Select.definitions.d.ts +0 -0
  380. /package/{dist/components → components}/Select/Select.helpers.d.ts +0 -0
  381. /package/{dist/components → components}/Select/Select.js +0 -0
  382. /package/{dist/components → components}/Select/Select.js.map +0 -0
  383. /package/{dist/components → components}/Select/Select.sx.d.ts +0 -0
  384. /package/{dist/components → components}/Select/Select.types.d.ts +0 -0
  385. /package/{dist/components → components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  386. /package/{dist/components → components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  387. /package/{dist/components → components}/Select/_parts/SelectValue.d.ts +0 -0
  388. /package/{dist/components → components}/Select/index.d.ts +0 -0
  389. /package/{dist/components → components}/Select.d.ts +0 -0
  390. /package/{dist/components → components}/Stat/Stat.cjs +0 -0
  391. /package/{dist/components → components}/Stat/Stat.cjs.map +0 -0
  392. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  393. /package/{dist/components → components}/Stat/Stat.js +0 -0
  394. /package/{dist/components → components}/Stat/Stat.js.map +0 -0
  395. /package/{dist/components → components}/Stat/index.d.ts +0 -0
  396. /package/{dist/components → components}/Stat.d.ts +0 -0
  397. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs +0 -0
  398. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs.map +0 -0
  399. /package/{dist/components → components}/StatusMessage/StatusMessage.d.ts +0 -0
  400. /package/{dist/components → components}/StatusMessage/StatusMessage.js +0 -0
  401. /package/{dist/components → components}/StatusMessage/StatusMessage.js.map +0 -0
  402. /package/{dist/components → components}/StatusMessage/index.d.ts +0 -0
  403. /package/{dist/components → components}/StatusMessage.d.ts +0 -0
  404. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  405. /package/{dist/components → components}/Stepper/Stepper.cjs +0 -0
  406. /package/{dist/components → components}/Stepper/Stepper.cjs.map +0 -0
  407. /package/{dist/components → components}/Stepper/Stepper.d.ts +0 -0
  408. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  409. /package/{dist/components → components}/Stepper/Stepper.js +0 -0
  410. /package/{dist/components → components}/Stepper/Stepper.js.map +0 -0
  411. /package/{dist/components → components}/Stepper/index.d.ts +0 -0
  412. /package/{dist/components → components}/Stepper.d.ts +0 -0
  413. /package/{dist/components → components}/Table/Table.cjs +0 -0
  414. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  415. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  416. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  417. /package/{dist/components → components}/Table/Table.js +0 -0
  418. /package/{dist/components → components}/Table/Table.js.map +0 -0
  419. /package/{dist/components → components}/Table/data.d.ts +0 -0
  420. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  421. /package/{dist/components → components}/Table/index.d.ts +0 -0
  422. /package/{dist/components → components}/Table/types.d.ts +0 -0
  423. /package/{dist/components → components}/Table.d.ts +0 -0
  424. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  425. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  426. /package/{dist/components → components}/Tabs/Tabs.cjs +0 -0
  427. /package/{dist/components → components}/Tabs/Tabs.cjs.map +0 -0
  428. /package/{dist/components → components}/Tabs/Tabs.d.ts +0 -0
  429. /package/{dist/components → components}/Tabs/Tabs.js +0 -0
  430. /package/{dist/components → components}/Tabs/Tabs.js.map +0 -0
  431. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  432. /package/{dist/components → components}/Tabs/index.d.ts +0 -0
  433. /package/{dist/components → components}/Tabs.d.ts +0 -0
  434. /package/{dist/components → components}/Timeline/Timeline.cjs +0 -0
  435. /package/{dist/components → components}/Timeline/Timeline.cjs.map +0 -0
  436. /package/{dist/components → components}/Timeline/Timeline.d.ts +0 -0
  437. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  438. /package/{dist/components → components}/Timeline/Timeline.js +0 -0
  439. /package/{dist/components → components}/Timeline/Timeline.js.map +0 -0
  440. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  441. /package/{dist/components → components}/Timeline/index.d.ts +0 -0
  442. /package/{dist/components → components}/Timeline.d.ts +0 -0
  443. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  444. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  445. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  446. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  447. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  448. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  449. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  450. /package/{dist/components → components}/_shared/formField.sx.d.ts +0 -0
  451. /package/{dist/components → components}/_shared/resolvePreset.d.ts +0 -0
  452. /package/{dist/formField.sx-CQ1mbk9M.cjs → formField.sx-CQ1mbk9M.cjs} +0 -0
  453. /package/{dist/formField.sx-CQ1mbk9M.cjs.map → formField.sx-CQ1mbk9M.cjs.map} +0 -0
  454. /package/{dist/formField.sx-DfVbMe0V.js → formField.sx-DfVbMe0V.js} +0 -0
  455. /package/{dist/formField.sx-DfVbMe0V.js.map → formField.sx-DfVbMe0V.js.map} +0 -0
  456. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  457. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  458. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  459. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  460. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  461. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  462. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  463. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  464. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs +0 -0
  465. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs.map +0 -0
  466. /package/{dist/hooks → hooks}/Wizard/Wizard.js +0 -0
  467. /package/{dist/hooks → hooks}/Wizard/Wizard.js.map +0 -0
  468. /package/{dist/hooks → hooks}/Wizard/WizardContext.d.ts +0 -0
  469. /package/{dist/hooks → hooks}/Wizard/index.d.ts +0 -0
  470. /package/{dist/hooks → hooks}/Wizard/useWizard.d.ts +0 -0
  471. /package/{dist/hooks → hooks}/Wizard.d.ts +0 -0
  472. /package/{dist/index.cjs → index.cjs} +0 -0
  473. /package/{dist/index.cjs.map → index.cjs.map} +0 -0
  474. /package/{dist/index.d.ts → index.d.ts} +0 -0
  475. /package/{dist/index.js → index.js} +0 -0
  476. /package/{dist/index.js.map → index.js.map} +0 -0
  477. /package/{dist/mui.d.ts → mui.d.ts} +0 -0
  478. /package/{dist/resolvePreset-B-IB0ehH.js → resolvePreset-B-IB0ehH.js} +0 -0
  479. /package/{dist/resolvePreset-B-IB0ehH.js.map → resolvePreset-B-IB0ehH.js.map} +0 -0
  480. /package/{dist/resolvePreset-CT3kU-K2.cjs → resolvePreset-CT3kU-K2.cjs} +0 -0
  481. /package/{dist/resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +0 -0
  482. /package/{dist/styles.css → styles.css} +0 -0
  483. /package/{dist/theme → theme}/componentStyles.d.ts +0 -0
  484. /package/{dist/theme → theme}/tokens.d.ts +0 -0
  485. /package/{dist/useWizard-CWdIxZzX.cjs → useWizard-CWdIxZzX.cjs} +0 -0
  486. /package/{dist/useWizard-CWdIxZzX.cjs.map → useWizard-CWdIxZzX.cjs.map} +0 -0
  487. /package/{dist/useWizard-CWq--C3o.js → useWizard-CWq--C3o.js} +0 -0
  488. /package/{dist/useWizard-CWq--C3o.js.map → useWizard-CWq--C3o.js.map} +0 -0
@@ -1,131 +0,0 @@
1
- // useClipboard.tsx (Versión Unificada)
2
- import React, { useRef, useEffect, useState, useCallback } from 'react';
3
- import { Snackbar, Alert } from '@mui/material';
4
- import { AlertProps } from '@mui/material/Alert';
5
-
6
- // Tipo para las opciones del Snackbar
7
- interface SnackbarOptions {
8
- message?: string;
9
- duration?: number;
10
- severity?: AlertProps['severity'];
11
- position?: { vertical: 'top' | 'bottom'; horizontal: 'left' | 'center' | 'right' };
12
- }
13
-
14
- /**
15
- * Hook 'useClipboard'.
16
- * Proporciona funcionalidad de copiado de texto y feedback visual (Snackbar).
17
- * Permite dos modos de uso:
18
- * 1. Uso por Referencia (ref): Se adjunta a un elemento, copia su innerText al hacer clic.
19
- * 2. Uso por Función (copy): Recibe el texto a copiar directamente como argumento.
20
- *
21
- * @param options Opciones de configuración para el Snackbar de feedback.
22
- * @returns Un objeto que contiene:
23
- * - 'ref': Una React Ref para adjuntar a un elemento (Modo Ref).
24
- * - 'copy': Una función (text: string) => void para copiar texto (Modo Función).
25
- * - 'CopyMessage': El componente Snackbar para renderizar el feedback.
26
- */
27
- export function useClipboard(options?: SnackbarOptions) {
28
- // --- Elementos de Copiado por Referencia ---
29
- const elementRef = useRef<HTMLElement>(null);
30
-
31
- // --- Estados y Opciones del Snackbar ---
32
- const [snackbarOpen, setSnackbarOpen] = useState(false);
33
- const [snackbarMessage, setSnackbarMessage] = useState(options?.message || '¡Copiado al portapapeles!');
34
- const [snackbarSeverity, setSnackbarSeverity] = useState<AlertProps['severity']>(options?.severity || 'success');
35
- const [snackbarPosition, setSnackbarPosition] = useState<import('@mui/material').SnackbarOrigin>(options?.position || { vertical: 'bottom', horizontal: 'center' });
36
- const [snackbarDuration, setSnackbarDuration] = useState(options?.duration ?? 3000);
37
-
38
- // Función para cerrar el Snackbar
39
- const handleSnackbarClose = useCallback((event?: React.SyntheticEvent | Event, reason?: string) => {
40
- if (reason === 'clickaway') {
41
- return;
42
- }
43
- setSnackbarOpen(false);
44
- }, []);
45
-
46
- /**
47
- * FUNCIÓN PRINCIPAL DE COPIADO.
48
- * Se usa internamente para 'ref' y se expone para 'copy(text)'.
49
- * @param text El texto exacto a copiar.
50
- */
51
- const executeCopy = useCallback((text: string) => {
52
- try {
53
- if (navigator.clipboard && window.isSecureContext) {
54
- // 1. API moderna
55
- navigator.clipboard.writeText(text);
56
- } else {
57
- // 2. Fallback usando textarea
58
- const textarea = document.createElement('textarea');
59
- textarea.value = text;
60
- document.body.appendChild(textarea);
61
- textarea.select();
62
- document.execCommand('copy');
63
- document.body.removeChild(textarea);
64
- }
65
-
66
- // Mostrar éxito
67
- setSnackbarMessage(options?.message || '¡Copiado al portapapeles!');
68
- setSnackbarSeverity(options?.severity || 'success');
69
- setSnackbarPosition(options?.position || { vertical: 'bottom', horizontal: 'center' });
70
- setSnackbarDuration(options?.duration ?? 3000);
71
- setSnackbarOpen(true);
72
-
73
- } catch (err) {
74
- // Mostrar error
75
- console.error('Error al copiar al portapapeles:', err);
76
- setSnackbarMessage('Error al copiar.');
77
- setSnackbarSeverity('error');
78
- setSnackbarPosition(options?.position || { vertical: 'bottom', horizontal: 'center' });
79
- setSnackbarDuration(options?.duration ?? 3000);
80
- setSnackbarOpen(true);
81
- }
82
- }, [options]);
83
-
84
- // --- Lógica del Modo Ref ---
85
- const copyFromRef = useCallback(() => {
86
- if (elementRef.current) {
87
- const textToCopy = elementRef.current.innerText || '';
88
- executeCopy(textToCopy);
89
- }
90
- }, [executeCopy]);
91
-
92
- // Adjunta un event listener de clic al elemento referenciado (Modo Ref)
93
- useEffect(() => {
94
- const currentElement = elementRef.current;
95
- if (currentElement) {
96
- currentElement.style.cursor = 'pointer';
97
- // Adjuntamos la función que copia el texto del ref
98
- currentElement.addEventListener('click', copyFromRef);
99
- }
100
-
101
- return () => {
102
- if (currentElement) {
103
- currentElement.removeEventListener('click', copyFromRef);
104
- }
105
- };
106
- }, [copyFromRef]);
107
-
108
-
109
- // Componente Snackbar encapsulado. Solo se renderiza si duration es > 0.
110
- const CopyMessage = () => {
111
- if (snackbarDuration <= 0) return null; // No renderizar si la duración es 0
112
-
113
- return (
114
- <Snackbar
115
- open={snackbarOpen}
116
- autoHideDuration={snackbarDuration}
117
- onClose={handleSnackbarClose}
118
- anchorOrigin={snackbarPosition}
119
- >
120
- <Alert onClose={handleSnackbarClose} severity={snackbarSeverity} sx={{ width: '100%' }}>
121
- {snackbarMessage}
122
- </Alert>
123
- </Snackbar>
124
- );
125
- };
126
-
127
- // Retorna ambas funcionalidades para que el usuario elija
128
- return { ref: elementRef, copy: executeCopy, CopyMessage };
129
- }
130
-
131
- export default useClipboard;
@@ -1,111 +0,0 @@
1
- // ClipboardUnifiedDemo.tsx
2
- import React from 'react';
3
- import { Button, Table, TableBody, TableCell, TableRow, Paper, Stack, Typography, Box, TableContainer, TableHead } from '@mui/material';
4
- import ContentCopyIcon from '@mui/icons-material/ContentCopy';
5
- import { useClipboard } from './ClipBoard';
6
-
7
- // Datos de ejemplo para la tabla (Modo Función)
8
- const mockData = [
9
- { id: 1, content: 'dato-A-456' },
10
- { id: 2, content: 'dato-B-789' },
11
- ];
12
-
13
- /**
14
- * Componente Wrapper para demostrar ambos modos de uso del hook useClipboard unificado.
15
- * @param {object} args - Propiedades del Snackbar que se pasan al hook.
16
- */
17
- interface ClipboardDemoProps {
18
- message: string;
19
- severity: 'success' | 'info' | 'warning' | 'error';
20
- duration: number;
21
- vertical: 'top' | 'bottom';
22
- horizontal: 'left' | 'center' | 'right';
23
- }
24
-
25
- const ClipboardUnifiedDemo: React.FC<ClipboardDemoProps> = ({ message, severity, duration, vertical, horizontal }) => {
26
- const options = {
27
- message,
28
- severity,
29
- duration,
30
- position: { vertical, horizontal } as const // 'as const' para tipado correcto
31
- };
32
-
33
- // 1. Llamada al hook para el MODO FUNCIÓN (se usará 'copy' y 'CopyMessage')
34
- const { copy, CopyMessage } = useClipboard(options);
35
-
36
- // 2. Llamada al hook para el MODO REF (se usará 'ref' y 'CopyMessageRef')
37
- // Nota: Creamos una segunda instancia con opciones distintas para diferenciar el feedback
38
- const { ref: refModeRef, CopyMessage: CopyMessageRef } = useClipboard({
39
- ...options,
40
- message: options.message + ' (MODO REF)',
41
- severity: 'warning' // Diferenciamos el color
42
- });
43
-
44
- return (
45
- <Stack spacing={4} sx={{ width: '100%', minWidth: 500, p: 3 }}>
46
- <Typography variant="h5">Hook Unificado: Ref vs. Función</Typography>
47
-
48
- {/* ========================================= */}
49
- {/* A. MODO REF (Copia el innerText por clic) */}
50
- {/* ========================================= */}
51
- <Box>
52
- <Typography variant="h6">1. MODO REF (Copia un solo elemento por clic)</Typography>
53
- <Paper
54
- sx={{
55
- p: 2, mt: 1,
56
- border: '1px solid #ccc',
57
- borderRadius: '8px',
58
- backgroundColor: '#eef',
59
- cursor: 'pointer',
60
- '&:hover': { backgroundColor: '#dde' },
61
- }}
62
- >
63
- {/* Adjuntamos la ref. El hook maneja el evento de clic */}
64
- <Typography ref={refModeRef} variant="body1" sx={{ userSelect: 'none' }}>
65
- Texto para copiar con **REF**: Esta línea contiene el texto completo.
66
- </Typography>
67
- <ContentCopyIcon sx={{ fontSize: 16, ml: 1, verticalAlign: 'middle', color: 'text.secondary' }} />
68
- </Paper>
69
- <CopyMessageRef /> {/* Su propio Snackbar */}
70
- </Box>
71
-
72
- {/* ========================================= */}
73
- {/* B. MODO FUNCIÓN (Copia en Iteración) */}
74
- {/* ========================================= */}
75
- <Box>
76
- <Typography variant="h6">2. MODO FUNCIÓN (Copia múltiples elementos en tabla)</Typography>
77
- <TableContainer component={Paper}>
78
- <Table size="small">
79
- <TableHead>
80
- <TableRow><TableCell>ID</TableCell><TableCell>Contenido</TableCell><TableCell>Acción</TableCell></TableRow>
81
- </TableHead>
82
- <TableBody>
83
- {/* Iteración: Se usa la función 'copy' */}
84
- {mockData.map((item) => (
85
- <TableRow key={item.id}>
86
- <TableCell>{item.id}</TableCell>
87
- <TableCell>{item.content}</TableCell>
88
- <TableCell>
89
- <Button
90
- variant="contained"
91
- size="small"
92
- // Llamada a copy() con el texto específico de la fila
93
- onClick={() => copy(item.content)}
94
- >
95
- Copiar {item.id}
96
- </Button>
97
- </TableCell>
98
- </TableRow>
99
- ))}
100
- </TableBody>
101
- </Table>
102
- </TableContainer>
103
- </Box>
104
-
105
- {/* El Snackbar del modo FUNCIÓN se renderiza una sola vez */}
106
- <CopyMessage />
107
- </Stack>
108
- );
109
- };
110
-
111
- export default ClipboardUnifiedDemo;
@@ -1 +0,0 @@
1
- export { default as useClipboard } from './ClipBoard';
@@ -1,301 +0,0 @@
1
- import React from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { Box, Button, Paper, Stack, Typography, Alert } from '@mui/material';
4
-
5
- import { WizardProvider } from './WizardContext';
6
- import { useWizard } from './useWizard';
7
- import Stepper from '../../components/Stepper/Stepper';
8
- import Step from '../../components/Stepper/Step';
9
-
10
- const meta: Meta = {
11
- title: 'Hooks/useWizard',
12
- tags: ['autodocs'],
13
- parameters: {
14
- docs: {
15
- description: {
16
- component:
17
- 'Hook + provider para administrar la navegación de un wizard multi-paso. Reemplaza el `StepperComponent` imperativo de Metronic y es retro-compatible con el `WizardContext` de `@soyfri/fri-web-components` (mismos nombres: `nextStep`, `prevStep`, `goToStep`, `submitStep`).',
18
- },
19
- },
20
- },
21
- };
22
-
23
- export default meta;
24
- type Story = StoryObj;
25
-
26
- // ── Sub-componente: controles del wizard ─────────────────────────────────
27
-
28
- const WizardControls = () => {
29
- const { currentStep, totalSteps, isFirst, isLast, nextStep, prevStep, submitStep, reset, completed } =
30
- useWizard();
31
-
32
- return (
33
- <Stack direction="row" spacing={1} justifyContent="flex-end" sx={{ mt: 3 }}>
34
- <Button variant="text" onClick={reset} disabled={completed}>
35
- Reiniciar
36
- </Button>
37
- <Button
38
- variant="outlined"
39
- onClick={prevStep}
40
- disabled={isFirst || completed}
41
- >
42
- Atrás
43
- </Button>
44
- {isLast ? (
45
- <Button
46
- variant="contained"
47
- color="primary"
48
- onClick={submitStep}
49
- disabled={completed}
50
- >
51
- {completed ? 'Enviado' : 'Enviar'}
52
- </Button>
53
- ) : (
54
- <Button variant="contained" onClick={nextStep}>
55
- Siguiente
56
- </Button>
57
- )}
58
- <Typography
59
- variant="caption"
60
- color="text.secondary"
61
- sx={{ alignSelf: 'center', ml: 2 }}
62
- >
63
- Paso {currentStep + 1} de {totalSteps}
64
- </Typography>
65
- </Stack>
66
- );
67
- };
68
-
69
- // ── Story 1: wizard básico con Stepper ──────────────────────────────────
70
-
71
- const BasicWizardBody = () => {
72
- const { currentStep, completed } = useWizard();
73
-
74
- return (
75
- <Paper sx={{ p: 3, maxWidth: 720, mx: 'auto' }}>
76
- {completed && (
77
- <Alert severity="success" sx={{ mb: 2 }}>
78
- ¡Wizard enviado! Usá "Reiniciar" para volver al paso 1.
79
- </Alert>
80
- )}
81
-
82
- <Stepper>
83
- <Step label="Datos personales">
84
- <Box sx={{ p: 2 }}>
85
- <Typography variant="h6">Paso 1 — Datos personales</Typography>
86
- <Typography color="text.secondary">
87
- Acá iría el formulario de nombre, email, teléfono, etc.
88
- </Typography>
89
- </Box>
90
- </Step>
91
- <Step label="Dirección">
92
- <Box sx={{ p: 2 }}>
93
- <Typography variant="h6">Paso 2 — Dirección</Typography>
94
- <Typography color="text.secondary">
95
- Acá iría el formulario de dirección, ciudad, país.
96
- </Typography>
97
- </Box>
98
- </Step>
99
- <Step label="Confirmación">
100
- <Box sx={{ p: 2 }}>
101
- <Typography variant="h6">Paso 3 — Confirmación</Typography>
102
- <Typography color="text.secondary">
103
- Revisá los datos antes de enviar.
104
- </Typography>
105
- </Box>
106
- </Step>
107
- </Stepper>
108
-
109
- <WizardControls />
110
- <Typography
111
- variant="caption"
112
- color="text.secondary"
113
- sx={{ display: 'block', mt: 1, textAlign: 'right' }}
114
- >
115
- Paso actual (0-based): {currentStep}
116
- </Typography>
117
- </Paper>
118
- );
119
- };
120
-
121
- export const BasicWizard: Story = {
122
- render: () => (
123
- <WizardProvider
124
- totalSteps={3}
125
- onSubmit={(step) => console.log('Submit desde paso', step)}
126
- onStepChange={(newStep, prevStep) =>
127
- console.log(`Cambio: ${prevStep} → ${newStep}`)
128
- }
129
- >
130
- <BasicWizardBody />
131
- </WizardProvider>
132
- ),
133
- parameters: {
134
- docs: {
135
- description: {
136
- story:
137
- 'Wizard de 3 pasos. El `Stepper` lee `currentStep` del `WizardContext` automáticamente (sin necesidad de prop explícita). Los controles usan `useWizard()` para llamar `nextStep`, `prevStep`, `submitStep` y `reset`. Verifica la consola para ver los callbacks `onStepChange` y `onSubmit`.',
138
- },
139
- },
140
- },
141
- };
142
-
143
- // ── Story 2: integración con validación por paso ────────────────────────
144
-
145
- const ValidatedWizardBody = () => {
146
- const { currentStep, isLast, nextStep, prevStep, submitStep, completed } =
147
- useWizard();
148
- const [canAdvance, setCanAdvance] = React.useState(false);
149
-
150
- // Cada vez que cambia el paso, reseteamos el "canAdvance" como si hubiera
151
- // que validar de nuevo.
152
- React.useEffect(() => {
153
- setCanAdvance(false);
154
- }, [currentStep]);
155
-
156
- const handleValidate = () => setCanAdvance(true);
157
-
158
- return (
159
- <Paper sx={{ p: 3, maxWidth: 720, mx: 'auto' }}>
160
- {completed && (
161
- <Alert severity="success" sx={{ mb: 2 }}>
162
- Wizard completado.
163
- </Alert>
164
- )}
165
-
166
- <Stepper>
167
- <Step label="Paso A">
168
- <Box sx={{ p: 2 }}>
169
- <Typography>Validá este paso para continuar.</Typography>
170
- </Box>
171
- </Step>
172
- <Step label="Paso B">
173
- <Box sx={{ p: 2 }}>
174
- <Typography>Validá este paso para continuar.</Typography>
175
- </Box>
176
- </Step>
177
- <Step label="Paso C">
178
- <Box sx={{ p: 2 }}>
179
- <Typography>Último paso — envía el wizard.</Typography>
180
- </Box>
181
- </Step>
182
- </Stepper>
183
-
184
- <Stack direction="row" spacing={1} justifyContent="flex-end" sx={{ mt: 3 }}>
185
- <Button
186
- variant="text"
187
- onClick={handleValidate}
188
- disabled={canAdvance}
189
- >
190
- {canAdvance ? 'Paso válido ✓' : 'Validar paso'}
191
- </Button>
192
- <Button variant="outlined" onClick={prevStep} disabled={currentStep === 0}>
193
- Atrás
194
- </Button>
195
- {isLast ? (
196
- <Button
197
- variant="contained"
198
- onClick={submitStep}
199
- disabled={!canAdvance || completed}
200
- >
201
- Enviar
202
- </Button>
203
- ) : (
204
- <Button variant="contained" onClick={nextStep} disabled={!canAdvance}>
205
- Siguiente
206
- </Button>
207
- )}
208
- </Stack>
209
- </Paper>
210
- );
211
- };
212
-
213
- export const WithPerStepValidation: Story = {
214
- render: () => (
215
- <WizardProvider
216
- totalSteps={3}
217
- onSubmit={() => console.log('Enviado!')}
218
- >
219
- <ValidatedWizardBody />
220
- </WizardProvider>
221
- ),
222
- parameters: {
223
- docs: {
224
- description: {
225
- story:
226
- 'Patrón común: el botón "Siguiente" permanece deshabilitado hasta que el consumer valide el paso actual (normalmente con react-hook-form `trigger()`). El hook solo maneja la navegación — la validación es responsabilidad del consumer.',
227
- },
228
- },
229
- },
230
- };
231
-
232
- // ── Story 3: navegación directa por click en steps ──────────────────────
233
-
234
- const JumpableWizardBody = () => {
235
- const { currentStep, totalSteps, goToStep, nextStep, prevStep } = useWizard();
236
-
237
- return (
238
- <Paper sx={{ p: 3, maxWidth: 720, mx: 'auto' }}>
239
- <Typography variant="subtitle1" sx={{ mb: 2 }}>
240
- Saltar a un paso específico
241
- </Typography>
242
-
243
- <Stack direction="row" spacing={1} sx={{ mb: 3 }}>
244
- {Array.from({ length: totalSteps }).map((_, i) => (
245
- <Button
246
- key={i}
247
- size="small"
248
- variant={i === currentStep ? 'contained' : 'outlined'}
249
- onClick={() => goToStep(i)}
250
- >
251
- Paso {i + 1}
252
- </Button>
253
- ))}
254
- </Stack>
255
-
256
- <Stepper>
257
- <Step label="Uno">
258
- <Box sx={{ p: 2 }}>Paso 1</Box>
259
- </Step>
260
- <Step label="Dos">
261
- <Box sx={{ p: 2 }}>Paso 2</Box>
262
- </Step>
263
- <Step label="Tres">
264
- <Box sx={{ p: 2 }}>Paso 3</Box>
265
- </Step>
266
- <Step label="Cuatro">
267
- <Box sx={{ p: 2 }}>Paso 4</Box>
268
- </Step>
269
- </Stepper>
270
-
271
- <Stack direction="row" spacing={1} justifyContent="flex-end" sx={{ mt: 3 }}>
272
- <Button variant="outlined" onClick={prevStep} disabled={currentStep === 0}>
273
- Atrás
274
- </Button>
275
- <Button
276
- variant="contained"
277
- onClick={nextStep}
278
- disabled={currentStep === totalSteps - 1}
279
- >
280
- Siguiente
281
- </Button>
282
- </Stack>
283
- </Paper>
284
- );
285
- };
286
-
287
- export const JumpToStep: Story = {
288
- render: () => (
289
- <WizardProvider totalSteps={4}>
290
- <JumpableWizardBody />
291
- </WizardProvider>
292
- ),
293
- parameters: {
294
- docs: {
295
- description: {
296
- story:
297
- 'Uso de `goToStep(n)` para saltar a un paso específico. Útil cuando hay un sidebar o tabs que permiten navegación no-lineal (siempre y cuando el consumer valide antes de permitir el salto).',
298
- },
299
- },
300
- },
301
- };