@soyfri/shared-library 2.0.0-beta.1 → 2.0.0-beta.3

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 (486) 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/build.js +0 -139
  10. package/chromatic.config.json +0 -5
  11. package/cleanDirectories.js +0 -40
  12. package/rollup.config.cjs +0 -87
  13. package/src/components/ActionMenu/ActionMenu.stories.tsx +0 -230
  14. package/src/components/ActionMenu/ActionMenu.tsx +0 -174
  15. package/src/components/ActionMenu/index.ts +0 -2
  16. package/src/components/AppBar/AppBar.stories.tsx +0 -272
  17. package/src/components/AppBar/AppBar.sx.ts +0 -32
  18. package/src/components/AppBar/AppBar.tsx +0 -123
  19. package/src/components/AppBar/AppBarBrand.tsx +0 -120
  20. package/src/components/AppBar/AppBarContext.ts +0 -25
  21. package/src/components/AppBar/AppBarMenuToggle.tsx +0 -90
  22. package/src/components/AppBar/AppBarUserMenu.tsx +0 -217
  23. package/src/components/AppBar/index.ts +0 -25
  24. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -477
  25. package/src/components/Autocomplete/Autocomplete.helpers.ts +0 -60
  26. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -748
  27. package/src/components/Autocomplete/Autocomplete.sx.ts +0 -30
  28. package/src/components/Autocomplete/Autocomplete.tsx +0 -361
  29. package/src/components/Autocomplete/Autocomplete.types.ts +0 -13
  30. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +0 -55
  31. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +0 -17
  32. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +0 -31
  33. package/src/components/Autocomplete/index.ts +0 -12
  34. package/src/components/Avatar/Avatar.definitions.ts +0 -162
  35. package/src/components/Avatar/Avatar.stories.tsx +0 -258
  36. package/src/components/Avatar/Avatar.tsx +0 -206
  37. package/src/components/Avatar/index.ts +0 -1
  38. package/src/components/Button/Button.definition.ts +0 -97
  39. package/src/components/Button/Button.stories.tsx +0 -285
  40. package/src/components/Button/Button.tsx +0 -67
  41. package/src/components/Button/index.ts +0 -1
  42. package/src/components/Card/Card.definition.ts +0 -5
  43. package/src/components/Card/Card.stories.tsx +0 -221
  44. package/src/components/Card/Card.sx.ts +0 -104
  45. package/src/components/Card/Card.tsx +0 -200
  46. package/src/components/Card/index.ts +0 -9
  47. package/src/components/Chip/Chip.definitions.ts +0 -167
  48. package/src/components/Chip/Chip.stories.tsx +0 -265
  49. package/src/components/Chip/Chip.tsx +0 -61
  50. package/src/components/Chip/index.ts +0 -1
  51. package/src/components/Column/Column.tsx +0 -29
  52. package/src/components/Column/index.ts +0 -1
  53. package/src/components/DatePicker/DatePicker.definitions.ts +0 -228
  54. package/src/components/DatePicker/DatePicker.helpers.ts +0 -24
  55. package/src/components/DatePicker/DatePicker.stories.tsx +0 -309
  56. package/src/components/DatePicker/DatePicker.sx.ts +0 -33
  57. package/src/components/DatePicker/DatePicker.tsx +0 -189
  58. package/src/components/DatePicker/DatePicker.types.ts +0 -10
  59. package/src/components/DatePicker/index.ts +0 -9
  60. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  61. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  62. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  63. package/src/components/DateRangePicker/index.ts +0 -1
  64. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -256
  65. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +0 -38
  66. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -418
  67. package/src/components/DateTimePicker/DateTimePicker.sx.ts +0 -30
  68. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -225
  69. package/src/components/DateTimePicker/DateTimePicker.types.ts +0 -10
  70. package/src/components/DateTimePicker/index.ts +0 -9
  71. package/src/components/Drawer/Drawer.stories.tsx +0 -270
  72. package/src/components/Drawer/Drawer.sx.ts +0 -106
  73. package/src/components/Drawer/Drawer.tsx +0 -214
  74. package/src/components/Drawer/DrawerContext.ts +0 -26
  75. package/src/components/Drawer/DrawerItem.tsx +0 -110
  76. package/src/components/Drawer/index.ts +0 -10
  77. package/src/components/Flyout/Flyout.stories.tsx +0 -282
  78. package/src/components/Flyout/Flyout.tsx +0 -122
  79. package/src/components/Flyout/index.ts +0 -1
  80. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  81. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  82. package/src/components/Gallery/Gallery.tsx +0 -118
  83. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  84. package/src/components/Gallery/GalleryMain.tsx +0 -84
  85. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  86. package/src/components/Gallery/index.ts +0 -1
  87. package/src/components/Icon/Icon.stories.tsx +0 -121
  88. package/src/components/Icon/Icon.tsx +0 -175
  89. package/src/components/Icon/index.ts +0 -2
  90. package/src/components/Input/Input.definitions.ts +0 -324
  91. package/src/components/Input/Input.helpers.ts +0 -49
  92. package/src/components/Input/Input.stories.tsx +0 -499
  93. package/src/components/Input/Input.sx.ts +0 -42
  94. package/src/components/Input/Input.tsx +0 -141
  95. package/src/components/Input/Input.types.ts +0 -10
  96. package/src/components/Input/index.ts +0 -9
  97. package/src/components/InputGroup/InputGroup.definitions.ts +0 -158
  98. package/src/components/InputGroup/InputGroup.stories.tsx +0 -267
  99. package/src/components/InputGroup/InputGroup.tsx +0 -179
  100. package/src/components/InputGroup/index.ts +0 -1
  101. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  102. package/src/components/MenuButton/MenuButton.tsx +0 -100
  103. package/src/components/MenuButton/index.ts +0 -1
  104. package/src/components/Modal/Modal.stories.tsx +0 -721
  105. package/src/components/Modal/Modal.tsx +0 -355
  106. package/src/components/Modal/ModalBody.tsx +0 -16
  107. package/src/components/Modal/ModalFooter.tsx +0 -71
  108. package/src/components/Modal/ModalHeader.tsx +0 -18
  109. package/src/components/Modal/index.ts +0 -6
  110. package/src/components/PageLoader/PageLoader.stories.tsx +0 -217
  111. package/src/components/PageLoader/PageLoader.tsx +0 -96
  112. package/src/components/PageLoader/index.ts +0 -2
  113. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +0 -158
  114. package/src/components/ScrollTopButton/ScrollTopButton.tsx +0 -135
  115. package/src/components/ScrollTopButton/index.ts +0 -8
  116. package/src/components/ScrollTopButton/scrollToTop.ts +0 -37
  117. package/src/components/Select/Select.definitions.ts +0 -602
  118. package/src/components/Select/Select.helpers.ts +0 -71
  119. package/src/components/Select/Select.stories.tsx +0 -687
  120. package/src/components/Select/Select.sx.ts +0 -14
  121. package/src/components/Select/Select.tsx +0 -429
  122. package/src/components/Select/Select.types.ts +0 -15
  123. package/src/components/Select/_parts/SelectMenuItem.tsx +0 -40
  124. package/src/components/Select/_parts/SelectSearchHeader.tsx +0 -51
  125. package/src/components/Select/_parts/SelectValue.tsx +0 -96
  126. package/src/components/Select/index.ts +0 -14
  127. package/src/components/Stat/Stat.stories.tsx +0 -85
  128. package/src/components/Stat/Stat.tsx +0 -117
  129. package/src/components/Stat/index.ts +0 -2
  130. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  131. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  132. package/src/components/StatusMessage/index.ts +0 -2
  133. package/src/components/Stepper/Step.tsx +0 -21
  134. package/src/components/Stepper/Stepper.definition.ts +0 -75
  135. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  136. package/src/components/Stepper/Stepper.tsx +0 -75
  137. package/src/components/Stepper/index.ts +0 -2
  138. package/src/components/Table/EmptyTable.png +0 -0
  139. package/src/components/Table/Table.definition.ts +0 -580
  140. package/src/components/Table/Table.stories.tsx +0 -853
  141. package/src/components/Table/Table.tsx +0 -495
  142. package/src/components/Table/data.ts +0 -134
  143. package/src/components/Table/exportsUtils.ts +0 -195
  144. package/src/components/Table/index.ts +0 -3
  145. package/src/components/Table/types.ts +0 -34
  146. package/src/components/Tabs/Tab.definition.ts +0 -53
  147. package/src/components/Tabs/Tab.tsx +0 -19
  148. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  149. package/src/components/Tabs/Tabs.tsx +0 -99
  150. package/src/components/Tabs/_tabUtils.tsx +0 -4
  151. package/src/components/Tabs/index.ts +0 -2
  152. package/src/components/Timeline/Timeline.definition.ts +0 -43
  153. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  154. package/src/components/Timeline/Timeline.tsx +0 -49
  155. package/src/components/Timeline/TimelineItem.tsx +0 -31
  156. package/src/components/Timeline/index.ts +0 -2
  157. package/src/components/Tooltip/Tooltip.stories.tsx +0 -129
  158. package/src/components/Tooltip/Tooltip.tsx +0 -58
  159. package/src/components/Tooltip/index.ts +0 -1
  160. package/src/components/_shared/formField.sx.ts +0 -118
  161. package/src/components/_shared/resolvePreset.ts +0 -35
  162. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  163. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  164. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  165. package/src/hooks/ClipBoard/index.ts +0 -1
  166. package/src/hooks/Wizard/Wizard.stories.tsx +0 -301
  167. package/src/hooks/Wizard/WizardContext.tsx +0 -166
  168. package/src/hooks/Wizard/index.ts +0 -6
  169. package/src/hooks/Wizard/useWizard.ts +0 -13
  170. package/src/index.ts +0 -17
  171. package/src/mui.ts +0 -44
  172. package/src/styles.css +0 -3
  173. package/src/theme/componentStyles.ts +0 -47
  174. package/src/theme/tokens.ts +0 -43
  175. package/tailwind.config.js +0 -10
  176. package/tsconfig.json +0 -48
  177. package/tsup.config.js +0 -41
  178. package/vite.config.js +0 -132
  179. package/vitest.config.ts +0 -35
  180. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  181. /package/{dist/Button-C17mExpd.cjs.map → Button-C17mExpd.cjs.map} +0 -0
  182. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  183. /package/{dist/Button-UkkP-bNw.js.map → Button-UkkP-bNw.js.map} +0 -0
  184. /package/{Readme.md → README.md} +0 -0
  185. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs +0 -0
  186. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs.map +0 -0
  187. /package/{dist/components → components}/ActionMenu/ActionMenu.d.ts +0 -0
  188. /package/{dist/components → components}/ActionMenu/ActionMenu.js +0 -0
  189. /package/{dist/components → components}/ActionMenu/ActionMenu.js.map +0 -0
  190. /package/{dist/components → components}/ActionMenu/index.d.ts +0 -0
  191. /package/{dist/components → components}/ActionMenu.d.ts +0 -0
  192. /package/{dist/components → components}/AppBar/AppBar.cjs +0 -0
  193. /package/{dist/components → components}/AppBar/AppBar.cjs.map +0 -0
  194. /package/{dist/components → components}/AppBar/AppBar.d.ts +0 -0
  195. /package/{dist/components → components}/AppBar/AppBar.js +0 -0
  196. /package/{dist/components → components}/AppBar/AppBar.js.map +0 -0
  197. /package/{dist/components → components}/AppBar/AppBar.sx.d.ts +0 -0
  198. /package/{dist/components → components}/AppBar/AppBarBrand.d.ts +0 -0
  199. /package/{dist/components → components}/AppBar/AppBarContext.d.ts +0 -0
  200. /package/{dist/components → components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  201. /package/{dist/components → components}/AppBar/AppBarUserMenu.d.ts +0 -0
  202. /package/{dist/components → components}/AppBar/index.d.ts +0 -0
  203. /package/{dist/components → components}/AppBar.d.ts +0 -0
  204. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs +0 -0
  205. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs.map +0 -0
  206. /package/{dist/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  207. /package/{dist/components → components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  208. /package/{dist/components → components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  209. /package/{dist/components → components}/Autocomplete/Autocomplete.js +0 -0
  210. /package/{dist/components → components}/Autocomplete/Autocomplete.js.map +0 -0
  211. /package/{dist/components → components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  212. /package/{dist/components → components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  213. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  214. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  215. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  216. /package/{dist/components → components}/Autocomplete/index.d.ts +0 -0
  217. /package/{dist/components → components}/Autocomplete.d.ts +0 -0
  218. /package/{dist/components → components}/Avatar/Avatar.cjs +0 -0
  219. /package/{dist/components → components}/Avatar/Avatar.cjs.map +0 -0
  220. /package/{dist/components → components}/Avatar/Avatar.d.ts +0 -0
  221. /package/{dist/components → components}/Avatar/Avatar.definitions.d.ts +0 -0
  222. /package/{dist/components → components}/Avatar/Avatar.js +0 -0
  223. /package/{dist/components → components}/Avatar/Avatar.js.map +0 -0
  224. /package/{dist/components → components}/Avatar/index.d.ts +0 -0
  225. /package/{dist/components → components}/Avatar.d.ts +0 -0
  226. /package/{dist/components → components}/Button/Button.cjs +0 -0
  227. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  228. /package/{dist/components → components}/Button/Button.d.ts +0 -0
  229. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  230. /package/{dist/components → components}/Button/Button.js +0 -0
  231. /package/{dist/components → components}/Button/Button.js.map +0 -0
  232. /package/{dist/components → components}/Button/index.d.ts +0 -0
  233. /package/{dist/components → components}/Button.d.ts +0 -0
  234. /package/{dist/components → components}/Card/Card.cjs +0 -0
  235. /package/{dist/components → components}/Card/Card.cjs.map +0 -0
  236. /package/{dist/components → components}/Card/Card.d.ts +0 -0
  237. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  238. /package/{dist/components → components}/Card/Card.js +0 -0
  239. /package/{dist/components → components}/Card/Card.js.map +0 -0
  240. /package/{dist/components → components}/Card/Card.sx.d.ts +0 -0
  241. /package/{dist/components → components}/Card/index.d.ts +0 -0
  242. /package/{dist/components → components}/Card.d.ts +0 -0
  243. /package/{dist/components → components}/Chip/Chip.cjs +0 -0
  244. /package/{dist/components → components}/Chip/Chip.cjs.map +0 -0
  245. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  246. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  247. /package/{dist/components → components}/Chip/Chip.js +0 -0
  248. /package/{dist/components → components}/Chip/Chip.js.map +0 -0
  249. /package/{dist/components → components}/Chip/index.d.ts +0 -0
  250. /package/{dist/components → components}/Chip.d.ts +0 -0
  251. /package/{dist/components → components}/Column/Column.cjs +0 -0
  252. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  253. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  254. /package/{dist/components → components}/Column/Column.js +0 -0
  255. /package/{dist/components → components}/Column/Column.js.map +0 -0
  256. /package/{dist/components → components}/Column/index.d.ts +0 -0
  257. /package/{dist/components → components}/Column.d.ts +0 -0
  258. /package/{dist/components → components}/DatePicker/DatePicker.cjs +0 -0
  259. /package/{dist/components → components}/DatePicker/DatePicker.cjs.map +0 -0
  260. /package/{dist/components → components}/DatePicker/DatePicker.d.ts +0 -0
  261. /package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  262. /package/{dist/components → components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  263. /package/{dist/components → components}/DatePicker/DatePicker.js +0 -0
  264. /package/{dist/components → components}/DatePicker/DatePicker.js.map +0 -0
  265. /package/{dist/components → components}/DatePicker/DatePicker.sx.d.ts +0 -0
  266. /package/{dist/components → components}/DatePicker/DatePicker.types.d.ts +0 -0
  267. /package/{dist/components → components}/DatePicker/index.d.ts +0 -0
  268. /package/{dist/components → components}/DatePicker.d.ts +0 -0
  269. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  270. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  271. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  272. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  273. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  274. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  275. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  276. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  277. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs +0 -0
  278. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  279. /package/{dist/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  280. /package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  281. /package/{dist/components → components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  282. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js +0 -0
  283. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js.map +0 -0
  284. /package/{dist/components → components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  285. /package/{dist/components → components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  286. /package/{dist/components → components}/DateTimePicker/index.d.ts +0 -0
  287. /package/{dist/components → components}/DateTimePicker.d.ts +0 -0
  288. /package/{dist/components → components}/Drawer/Drawer.cjs +0 -0
  289. /package/{dist/components → components}/Drawer/Drawer.cjs.map +0 -0
  290. /package/{dist/components → components}/Drawer/Drawer.d.ts +0 -0
  291. /package/{dist/components → components}/Drawer/Drawer.js +0 -0
  292. /package/{dist/components → components}/Drawer/Drawer.js.map +0 -0
  293. /package/{dist/components → components}/Drawer/Drawer.sx.d.ts +0 -0
  294. /package/{dist/components → components}/Drawer/DrawerContext.d.ts +0 -0
  295. /package/{dist/components → components}/Drawer/DrawerItem.d.ts +0 -0
  296. /package/{dist/components → components}/Drawer/index.d.ts +0 -0
  297. /package/{dist/components → components}/Drawer.d.ts +0 -0
  298. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  299. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  300. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  301. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  302. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  303. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  304. /package/{dist/components → components}/Flyout.d.ts +0 -0
  305. /package/{dist/components → components}/Gallery/Gallery.cjs +0 -0
  306. /package/{dist/components → components}/Gallery/Gallery.cjs.map +0 -0
  307. /package/{dist/components → components}/Gallery/Gallery.d.ts +0 -0
  308. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  309. /package/{dist/components → components}/Gallery/Gallery.js +0 -0
  310. /package/{dist/components → components}/Gallery/Gallery.js.map +0 -0
  311. /package/{dist/components → components}/Gallery/GalleryLightbox.d.ts +0 -0
  312. /package/{dist/components → components}/Gallery/GalleryMain.d.ts +0 -0
  313. /package/{dist/components → components}/Gallery/GalleryThumbnails.d.ts +0 -0
  314. /package/{dist/components → components}/Gallery/index.d.ts +0 -0
  315. /package/{dist/components → components}/Gallery.d.ts +0 -0
  316. /package/{dist/components → components}/Icon/Icon.cjs +0 -0
  317. /package/{dist/components → components}/Icon/Icon.cjs.map +0 -0
  318. /package/{dist/components → components}/Icon/Icon.d.ts +0 -0
  319. /package/{dist/components → components}/Icon/Icon.js +0 -0
  320. /package/{dist/components → components}/Icon/Icon.js.map +0 -0
  321. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  322. /package/{dist/components → components}/Icon.d.ts +0 -0
  323. /package/{dist/components → components}/Input/Input.cjs +0 -0
  324. /package/{dist/components → components}/Input/Input.cjs.map +0 -0
  325. /package/{dist/components → components}/Input/Input.d.ts +0 -0
  326. /package/{dist/components → components}/Input/Input.definitions.d.ts +0 -0
  327. /package/{dist/components → components}/Input/Input.helpers.d.ts +0 -0
  328. /package/{dist/components → components}/Input/Input.js +0 -0
  329. /package/{dist/components → components}/Input/Input.js.map +0 -0
  330. /package/{dist/components → components}/Input/Input.sx.d.ts +0 -0
  331. /package/{dist/components → components}/Input/Input.types.d.ts +0 -0
  332. /package/{dist/components → components}/Input/index.d.ts +0 -0
  333. /package/{dist/components → components}/Input.d.ts +0 -0
  334. /package/{dist/components → components}/InputGroup/InputGroup.cjs +0 -0
  335. /package/{dist/components → components}/InputGroup/InputGroup.cjs.map +0 -0
  336. /package/{dist/components → components}/InputGroup/InputGroup.d.ts +0 -0
  337. /package/{dist/components → components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  338. /package/{dist/components → components}/InputGroup/InputGroup.js +0 -0
  339. /package/{dist/components → components}/InputGroup/InputGroup.js.map +0 -0
  340. /package/{dist/components → components}/InputGroup/index.d.ts +0 -0
  341. /package/{dist/components → components}/InputGroup.d.ts +0 -0
  342. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  343. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  344. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  345. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  346. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  347. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  348. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  349. /package/{dist/components → components}/Modal/Modal.cjs +0 -0
  350. /package/{dist/components → components}/Modal/Modal.cjs.map +0 -0
  351. /package/{dist/components → components}/Modal/Modal.d.ts +0 -0
  352. /package/{dist/components → components}/Modal/Modal.js +0 -0
  353. /package/{dist/components → components}/Modal/Modal.js.map +0 -0
  354. /package/{dist/components → components}/Modal/ModalBody.d.ts +0 -0
  355. /package/{dist/components → components}/Modal/ModalFooter.d.ts +0 -0
  356. /package/{dist/components → components}/Modal/ModalHeader.d.ts +0 -0
  357. /package/{dist/components → components}/Modal/index.d.ts +0 -0
  358. /package/{dist/components → components}/Modal.d.ts +0 -0
  359. /package/{dist/components → components}/PageLoader/PageLoader.cjs +0 -0
  360. /package/{dist/components → components}/PageLoader/PageLoader.cjs.map +0 -0
  361. /package/{dist/components → components}/PageLoader/PageLoader.d.ts +0 -0
  362. /package/{dist/components → components}/PageLoader/PageLoader.js +0 -0
  363. /package/{dist/components → components}/PageLoader/PageLoader.js.map +0 -0
  364. /package/{dist/components → components}/PageLoader/index.d.ts +0 -0
  365. /package/{dist/components → components}/PageLoader.d.ts +0 -0
  366. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  367. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  368. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  369. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js +0 -0
  370. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  371. /package/{dist/components → components}/ScrollTopButton/index.d.ts +0 -0
  372. /package/{dist/components → components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  373. /package/{dist/components → components}/ScrollTopButton.d.ts +0 -0
  374. /package/{dist/components → components}/Select/Select.cjs +0 -0
  375. /package/{dist/components → components}/Select/Select.cjs.map +0 -0
  376. /package/{dist/components → components}/Select/Select.d.ts +0 -0
  377. /package/{dist/components → components}/Select/Select.definitions.d.ts +0 -0
  378. /package/{dist/components → components}/Select/Select.helpers.d.ts +0 -0
  379. /package/{dist/components → components}/Select/Select.js +0 -0
  380. /package/{dist/components → components}/Select/Select.js.map +0 -0
  381. /package/{dist/components → components}/Select/Select.sx.d.ts +0 -0
  382. /package/{dist/components → components}/Select/Select.types.d.ts +0 -0
  383. /package/{dist/components → components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  384. /package/{dist/components → components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  385. /package/{dist/components → components}/Select/_parts/SelectValue.d.ts +0 -0
  386. /package/{dist/components → components}/Select/index.d.ts +0 -0
  387. /package/{dist/components → components}/Select.d.ts +0 -0
  388. /package/{dist/components → components}/Stat/Stat.cjs +0 -0
  389. /package/{dist/components → components}/Stat/Stat.cjs.map +0 -0
  390. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  391. /package/{dist/components → components}/Stat/Stat.js +0 -0
  392. /package/{dist/components → components}/Stat/Stat.js.map +0 -0
  393. /package/{dist/components → components}/Stat/index.d.ts +0 -0
  394. /package/{dist/components → components}/Stat.d.ts +0 -0
  395. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs +0 -0
  396. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs.map +0 -0
  397. /package/{dist/components → components}/StatusMessage/StatusMessage.d.ts +0 -0
  398. /package/{dist/components → components}/StatusMessage/StatusMessage.js +0 -0
  399. /package/{dist/components → components}/StatusMessage/StatusMessage.js.map +0 -0
  400. /package/{dist/components → components}/StatusMessage/index.d.ts +0 -0
  401. /package/{dist/components → components}/StatusMessage.d.ts +0 -0
  402. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  403. /package/{dist/components → components}/Stepper/Stepper.cjs +0 -0
  404. /package/{dist/components → components}/Stepper/Stepper.cjs.map +0 -0
  405. /package/{dist/components → components}/Stepper/Stepper.d.ts +0 -0
  406. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  407. /package/{dist/components → components}/Stepper/Stepper.js +0 -0
  408. /package/{dist/components → components}/Stepper/Stepper.js.map +0 -0
  409. /package/{dist/components → components}/Stepper/index.d.ts +0 -0
  410. /package/{dist/components → components}/Stepper.d.ts +0 -0
  411. /package/{dist/components → components}/Table/Table.cjs +0 -0
  412. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  413. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  414. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  415. /package/{dist/components → components}/Table/Table.js +0 -0
  416. /package/{dist/components → components}/Table/Table.js.map +0 -0
  417. /package/{dist/components → components}/Table/data.d.ts +0 -0
  418. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  419. /package/{dist/components → components}/Table/index.d.ts +0 -0
  420. /package/{dist/components → components}/Table/types.d.ts +0 -0
  421. /package/{dist/components → components}/Table.d.ts +0 -0
  422. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  423. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  424. /package/{dist/components → components}/Tabs/Tabs.cjs +0 -0
  425. /package/{dist/components → components}/Tabs/Tabs.cjs.map +0 -0
  426. /package/{dist/components → components}/Tabs/Tabs.d.ts +0 -0
  427. /package/{dist/components → components}/Tabs/Tabs.js +0 -0
  428. /package/{dist/components → components}/Tabs/Tabs.js.map +0 -0
  429. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  430. /package/{dist/components → components}/Tabs/index.d.ts +0 -0
  431. /package/{dist/components → components}/Tabs.d.ts +0 -0
  432. /package/{dist/components → components}/Timeline/Timeline.cjs +0 -0
  433. /package/{dist/components → components}/Timeline/Timeline.cjs.map +0 -0
  434. /package/{dist/components → components}/Timeline/Timeline.d.ts +0 -0
  435. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  436. /package/{dist/components → components}/Timeline/Timeline.js +0 -0
  437. /package/{dist/components → components}/Timeline/Timeline.js.map +0 -0
  438. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  439. /package/{dist/components → components}/Timeline/index.d.ts +0 -0
  440. /package/{dist/components → components}/Timeline.d.ts +0 -0
  441. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  442. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  443. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  444. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  445. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  446. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  447. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  448. /package/{dist/components → components}/_shared/formField.sx.d.ts +0 -0
  449. /package/{dist/components → components}/_shared/resolvePreset.d.ts +0 -0
  450. /package/{dist/formField.sx-CQ1mbk9M.cjs → formField.sx-CQ1mbk9M.cjs} +0 -0
  451. /package/{dist/formField.sx-CQ1mbk9M.cjs.map → formField.sx-CQ1mbk9M.cjs.map} +0 -0
  452. /package/{dist/formField.sx-DfVbMe0V.js → formField.sx-DfVbMe0V.js} +0 -0
  453. /package/{dist/formField.sx-DfVbMe0V.js.map → formField.sx-DfVbMe0V.js.map} +0 -0
  454. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  455. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  456. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  457. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  458. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  459. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  460. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  461. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  462. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs +0 -0
  463. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs.map +0 -0
  464. /package/{dist/hooks → hooks}/Wizard/Wizard.js +0 -0
  465. /package/{dist/hooks → hooks}/Wizard/Wizard.js.map +0 -0
  466. /package/{dist/hooks → hooks}/Wizard/WizardContext.d.ts +0 -0
  467. /package/{dist/hooks → hooks}/Wizard/index.d.ts +0 -0
  468. /package/{dist/hooks → hooks}/Wizard/useWizard.d.ts +0 -0
  469. /package/{dist/hooks → hooks}/Wizard.d.ts +0 -0
  470. /package/{dist/index.cjs → index.cjs} +0 -0
  471. /package/{dist/index.cjs.map → index.cjs.map} +0 -0
  472. /package/{dist/index.d.ts → index.d.ts} +0 -0
  473. /package/{dist/index.js → index.js} +0 -0
  474. /package/{dist/index.js.map → index.js.map} +0 -0
  475. /package/{dist/mui.d.ts → mui.d.ts} +0 -0
  476. /package/{dist/resolvePreset-B-IB0ehH.js → resolvePreset-B-IB0ehH.js} +0 -0
  477. /package/{dist/resolvePreset-B-IB0ehH.js.map → resolvePreset-B-IB0ehH.js.map} +0 -0
  478. /package/{dist/resolvePreset-CT3kU-K2.cjs → resolvePreset-CT3kU-K2.cjs} +0 -0
  479. /package/{dist/resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +0 -0
  480. /package/{dist/styles.css → styles.css} +0 -0
  481. /package/{dist/theme → theme}/componentStyles.d.ts +0 -0
  482. /package/{dist/theme → theme}/tokens.d.ts +0 -0
  483. /package/{dist/useWizard-CWdIxZzX.cjs → useWizard-CWdIxZzX.cjs} +0 -0
  484. /package/{dist/useWizard-CWdIxZzX.cjs.map → useWizard-CWdIxZzX.cjs.map} +0 -0
  485. /package/{dist/useWizard-CWq--C3o.js → useWizard-CWq--C3o.js} +0 -0
  486. /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
- };