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

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 (490) hide show
  1. package/{dist/components → components}/Drawer/Drawer.cjs +14 -17
  2. package/components/Drawer/Drawer.cjs.map +1 -0
  3. package/{dist/components → components}/Drawer/Drawer.d.ts +8 -1
  4. package/{dist/components → components}/Drawer/Drawer.js +14 -17
  5. package/components/Drawer/Drawer.js.map +1 -0
  6. package/package.json +164 -43
  7. package/.dockerignore +0 -8
  8. package/.github/workflows/publish.yml +0 -107
  9. package/.prettierrc +0 -3
  10. package/.storybook/main.ts +0 -19
  11. package/.storybook/preview.ts +0 -14
  12. package/.storybook/vitest.setup.ts +0 -9
  13. package/Dockerfile +0 -37
  14. package/Readme.md +0 -243
  15. package/build.js +0 -102
  16. package/chromatic.config.json +0 -5
  17. package/cleanDirectories.js +0 -40
  18. package/dist/components/Drawer/Drawer.cjs.map +0 -1
  19. package/dist/components/Drawer/Drawer.js.map +0 -1
  20. package/dist/package.json +0 -197
  21. package/rollup.config.cjs +0 -87
  22. package/src/components/ActionMenu/ActionMenu.stories.tsx +0 -230
  23. package/src/components/ActionMenu/ActionMenu.tsx +0 -174
  24. package/src/components/ActionMenu/index.ts +0 -2
  25. package/src/components/AppBar/AppBar.stories.tsx +0 -272
  26. package/src/components/AppBar/AppBar.sx.ts +0 -32
  27. package/src/components/AppBar/AppBar.tsx +0 -123
  28. package/src/components/AppBar/AppBarBrand.tsx +0 -120
  29. package/src/components/AppBar/AppBarContext.ts +0 -25
  30. package/src/components/AppBar/AppBarMenuToggle.tsx +0 -90
  31. package/src/components/AppBar/AppBarUserMenu.tsx +0 -217
  32. package/src/components/AppBar/index.ts +0 -25
  33. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -477
  34. package/src/components/Autocomplete/Autocomplete.helpers.ts +0 -60
  35. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -748
  36. package/src/components/Autocomplete/Autocomplete.sx.ts +0 -30
  37. package/src/components/Autocomplete/Autocomplete.tsx +0 -361
  38. package/src/components/Autocomplete/Autocomplete.types.ts +0 -13
  39. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +0 -55
  40. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +0 -17
  41. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +0 -31
  42. package/src/components/Autocomplete/index.ts +0 -12
  43. package/src/components/Avatar/Avatar.definitions.ts +0 -162
  44. package/src/components/Avatar/Avatar.stories.tsx +0 -258
  45. package/src/components/Avatar/Avatar.tsx +0 -206
  46. package/src/components/Avatar/index.ts +0 -1
  47. package/src/components/Button/Button.definition.ts +0 -97
  48. package/src/components/Button/Button.stories.tsx +0 -285
  49. package/src/components/Button/Button.tsx +0 -67
  50. package/src/components/Button/index.ts +0 -1
  51. package/src/components/Card/Card.definition.ts +0 -5
  52. package/src/components/Card/Card.stories.tsx +0 -221
  53. package/src/components/Card/Card.sx.ts +0 -104
  54. package/src/components/Card/Card.tsx +0 -200
  55. package/src/components/Card/index.ts +0 -9
  56. package/src/components/Chip/Chip.definitions.ts +0 -167
  57. package/src/components/Chip/Chip.stories.tsx +0 -265
  58. package/src/components/Chip/Chip.tsx +0 -61
  59. package/src/components/Chip/index.ts +0 -1
  60. package/src/components/Column/Column.tsx +0 -29
  61. package/src/components/Column/index.ts +0 -1
  62. package/src/components/DatePicker/DatePicker.definitions.ts +0 -228
  63. package/src/components/DatePicker/DatePicker.helpers.ts +0 -24
  64. package/src/components/DatePicker/DatePicker.stories.tsx +0 -309
  65. package/src/components/DatePicker/DatePicker.sx.ts +0 -33
  66. package/src/components/DatePicker/DatePicker.tsx +0 -189
  67. package/src/components/DatePicker/DatePicker.types.ts +0 -10
  68. package/src/components/DatePicker/index.ts +0 -9
  69. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  70. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  71. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  72. package/src/components/DateRangePicker/index.ts +0 -1
  73. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -256
  74. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +0 -38
  75. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -418
  76. package/src/components/DateTimePicker/DateTimePicker.sx.ts +0 -30
  77. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -225
  78. package/src/components/DateTimePicker/DateTimePicker.types.ts +0 -10
  79. package/src/components/DateTimePicker/index.ts +0 -9
  80. package/src/components/Drawer/Drawer.stories.tsx +0 -270
  81. package/src/components/Drawer/Drawer.sx.ts +0 -106
  82. package/src/components/Drawer/Drawer.tsx +0 -214
  83. package/src/components/Drawer/DrawerContext.ts +0 -26
  84. package/src/components/Drawer/DrawerItem.tsx +0 -110
  85. package/src/components/Drawer/index.ts +0 -10
  86. package/src/components/Flyout/Flyout.stories.tsx +0 -282
  87. package/src/components/Flyout/Flyout.tsx +0 -122
  88. package/src/components/Flyout/index.ts +0 -1
  89. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  90. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  91. package/src/components/Gallery/Gallery.tsx +0 -118
  92. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  93. package/src/components/Gallery/GalleryMain.tsx +0 -84
  94. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  95. package/src/components/Gallery/index.ts +0 -1
  96. package/src/components/Icon/Icon.stories.tsx +0 -121
  97. package/src/components/Icon/Icon.tsx +0 -175
  98. package/src/components/Icon/index.ts +0 -2
  99. package/src/components/Input/Input.definitions.ts +0 -324
  100. package/src/components/Input/Input.helpers.ts +0 -49
  101. package/src/components/Input/Input.stories.tsx +0 -499
  102. package/src/components/Input/Input.sx.ts +0 -42
  103. package/src/components/Input/Input.tsx +0 -141
  104. package/src/components/Input/Input.types.ts +0 -10
  105. package/src/components/Input/index.ts +0 -9
  106. package/src/components/InputGroup/InputGroup.definitions.ts +0 -158
  107. package/src/components/InputGroup/InputGroup.stories.tsx +0 -267
  108. package/src/components/InputGroup/InputGroup.tsx +0 -179
  109. package/src/components/InputGroup/index.ts +0 -1
  110. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  111. package/src/components/MenuButton/MenuButton.tsx +0 -100
  112. package/src/components/MenuButton/index.ts +0 -1
  113. package/src/components/Modal/Modal.stories.tsx +0 -721
  114. package/src/components/Modal/Modal.tsx +0 -355
  115. package/src/components/Modal/ModalBody.tsx +0 -16
  116. package/src/components/Modal/ModalFooter.tsx +0 -71
  117. package/src/components/Modal/ModalHeader.tsx +0 -18
  118. package/src/components/Modal/index.ts +0 -6
  119. package/src/components/PageLoader/PageLoader.stories.tsx +0 -217
  120. package/src/components/PageLoader/PageLoader.tsx +0 -96
  121. package/src/components/PageLoader/index.ts +0 -2
  122. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +0 -158
  123. package/src/components/ScrollTopButton/ScrollTopButton.tsx +0 -135
  124. package/src/components/ScrollTopButton/index.ts +0 -8
  125. package/src/components/ScrollTopButton/scrollToTop.ts +0 -37
  126. package/src/components/Select/Select.definitions.ts +0 -602
  127. package/src/components/Select/Select.helpers.ts +0 -71
  128. package/src/components/Select/Select.stories.tsx +0 -687
  129. package/src/components/Select/Select.sx.ts +0 -14
  130. package/src/components/Select/Select.tsx +0 -429
  131. package/src/components/Select/Select.types.ts +0 -15
  132. package/src/components/Select/_parts/SelectMenuItem.tsx +0 -40
  133. package/src/components/Select/_parts/SelectSearchHeader.tsx +0 -51
  134. package/src/components/Select/_parts/SelectValue.tsx +0 -96
  135. package/src/components/Select/index.ts +0 -14
  136. package/src/components/Stat/Stat.stories.tsx +0 -85
  137. package/src/components/Stat/Stat.tsx +0 -117
  138. package/src/components/Stat/index.ts +0 -2
  139. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  140. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  141. package/src/components/StatusMessage/index.ts +0 -2
  142. package/src/components/Stepper/Step.tsx +0 -21
  143. package/src/components/Stepper/Stepper.definition.ts +0 -75
  144. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  145. package/src/components/Stepper/Stepper.tsx +0 -75
  146. package/src/components/Stepper/index.ts +0 -2
  147. package/src/components/Table/EmptyTable.png +0 -0
  148. package/src/components/Table/Table.definition.ts +0 -580
  149. package/src/components/Table/Table.stories.tsx +0 -853
  150. package/src/components/Table/Table.tsx +0 -495
  151. package/src/components/Table/data.ts +0 -134
  152. package/src/components/Table/exportsUtils.ts +0 -195
  153. package/src/components/Table/index.ts +0 -3
  154. package/src/components/Table/types.ts +0 -34
  155. package/src/components/Tabs/Tab.definition.ts +0 -53
  156. package/src/components/Tabs/Tab.tsx +0 -19
  157. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  158. package/src/components/Tabs/Tabs.tsx +0 -99
  159. package/src/components/Tabs/_tabUtils.tsx +0 -4
  160. package/src/components/Tabs/index.ts +0 -2
  161. package/src/components/Timeline/Timeline.definition.ts +0 -43
  162. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  163. package/src/components/Timeline/Timeline.tsx +0 -49
  164. package/src/components/Timeline/TimelineItem.tsx +0 -31
  165. package/src/components/Timeline/index.ts +0 -2
  166. package/src/components/Tooltip/Tooltip.stories.tsx +0 -129
  167. package/src/components/Tooltip/Tooltip.tsx +0 -58
  168. package/src/components/Tooltip/index.ts +0 -1
  169. package/src/components/_shared/formField.sx.ts +0 -118
  170. package/src/components/_shared/resolvePreset.ts +0 -35
  171. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  172. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  173. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  174. package/src/hooks/ClipBoard/index.ts +0 -1
  175. package/src/hooks/Wizard/Wizard.stories.tsx +0 -301
  176. package/src/hooks/Wizard/WizardContext.tsx +0 -166
  177. package/src/hooks/Wizard/index.ts +0 -6
  178. package/src/hooks/Wizard/useWizard.ts +0 -13
  179. package/src/index.ts +0 -17
  180. package/src/mui.ts +0 -54
  181. package/src/styles.css +0 -3
  182. package/src/theme/componentStyles.ts +0 -47
  183. package/src/theme/tokens.ts +0 -43
  184. package/tailwind.config.js +0 -10
  185. package/tsconfig.json +0 -48
  186. package/tsup.config.js +0 -41
  187. package/vite.config.js +0 -132
  188. package/vitest.config.ts +0 -35
  189. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  190. /package/{dist/Button-C17mExpd.cjs.map → Button-C17mExpd.cjs.map} +0 -0
  191. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  192. /package/{dist/Button-UkkP-bNw.js.map → Button-UkkP-bNw.js.map} +0 -0
  193. /package/{dist/README.md → README.md} +0 -0
  194. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs +0 -0
  195. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs.map +0 -0
  196. /package/{dist/components → components}/ActionMenu/ActionMenu.d.ts +0 -0
  197. /package/{dist/components → components}/ActionMenu/ActionMenu.js +0 -0
  198. /package/{dist/components → components}/ActionMenu/ActionMenu.js.map +0 -0
  199. /package/{dist/components → components}/ActionMenu/index.d.ts +0 -0
  200. /package/{dist/components → components}/ActionMenu.d.ts +0 -0
  201. /package/{dist/components → components}/AppBar/AppBar.cjs +0 -0
  202. /package/{dist/components → components}/AppBar/AppBar.cjs.map +0 -0
  203. /package/{dist/components → components}/AppBar/AppBar.d.ts +0 -0
  204. /package/{dist/components → components}/AppBar/AppBar.js +0 -0
  205. /package/{dist/components → components}/AppBar/AppBar.js.map +0 -0
  206. /package/{dist/components → components}/AppBar/AppBar.sx.d.ts +0 -0
  207. /package/{dist/components → components}/AppBar/AppBarBrand.d.ts +0 -0
  208. /package/{dist/components → components}/AppBar/AppBarContext.d.ts +0 -0
  209. /package/{dist/components → components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  210. /package/{dist/components → components}/AppBar/AppBarUserMenu.d.ts +0 -0
  211. /package/{dist/components → components}/AppBar/index.d.ts +0 -0
  212. /package/{dist/components → components}/AppBar.d.ts +0 -0
  213. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs +0 -0
  214. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs.map +0 -0
  215. /package/{dist/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  216. /package/{dist/components → components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  217. /package/{dist/components → components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  218. /package/{dist/components → components}/Autocomplete/Autocomplete.js +0 -0
  219. /package/{dist/components → components}/Autocomplete/Autocomplete.js.map +0 -0
  220. /package/{dist/components → components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  221. /package/{dist/components → components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  222. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  223. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  224. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  225. /package/{dist/components → components}/Autocomplete/index.d.ts +0 -0
  226. /package/{dist/components → components}/Autocomplete.d.ts +0 -0
  227. /package/{dist/components → components}/Avatar/Avatar.cjs +0 -0
  228. /package/{dist/components → components}/Avatar/Avatar.cjs.map +0 -0
  229. /package/{dist/components → components}/Avatar/Avatar.d.ts +0 -0
  230. /package/{dist/components → components}/Avatar/Avatar.definitions.d.ts +0 -0
  231. /package/{dist/components → components}/Avatar/Avatar.js +0 -0
  232. /package/{dist/components → components}/Avatar/Avatar.js.map +0 -0
  233. /package/{dist/components → components}/Avatar/index.d.ts +0 -0
  234. /package/{dist/components → components}/Avatar.d.ts +0 -0
  235. /package/{dist/components → components}/Button/Button.cjs +0 -0
  236. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  237. /package/{dist/components → components}/Button/Button.d.ts +0 -0
  238. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  239. /package/{dist/components → components}/Button/Button.js +0 -0
  240. /package/{dist/components → components}/Button/Button.js.map +0 -0
  241. /package/{dist/components → components}/Button/index.d.ts +0 -0
  242. /package/{dist/components → components}/Button.d.ts +0 -0
  243. /package/{dist/components → components}/Card/Card.cjs +0 -0
  244. /package/{dist/components → components}/Card/Card.cjs.map +0 -0
  245. /package/{dist/components → components}/Card/Card.d.ts +0 -0
  246. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  247. /package/{dist/components → components}/Card/Card.js +0 -0
  248. /package/{dist/components → components}/Card/Card.js.map +0 -0
  249. /package/{dist/components → components}/Card/Card.sx.d.ts +0 -0
  250. /package/{dist/components → components}/Card/index.d.ts +0 -0
  251. /package/{dist/components → components}/Card.d.ts +0 -0
  252. /package/{dist/components → components}/Chip/Chip.cjs +0 -0
  253. /package/{dist/components → components}/Chip/Chip.cjs.map +0 -0
  254. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  255. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  256. /package/{dist/components → components}/Chip/Chip.js +0 -0
  257. /package/{dist/components → components}/Chip/Chip.js.map +0 -0
  258. /package/{dist/components → components}/Chip/index.d.ts +0 -0
  259. /package/{dist/components → components}/Chip.d.ts +0 -0
  260. /package/{dist/components → components}/Column/Column.cjs +0 -0
  261. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  262. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  263. /package/{dist/components → components}/Column/Column.js +0 -0
  264. /package/{dist/components → components}/Column/Column.js.map +0 -0
  265. /package/{dist/components → components}/Column/index.d.ts +0 -0
  266. /package/{dist/components → components}/Column.d.ts +0 -0
  267. /package/{dist/components → components}/DatePicker/DatePicker.cjs +0 -0
  268. /package/{dist/components → components}/DatePicker/DatePicker.cjs.map +0 -0
  269. /package/{dist/components → components}/DatePicker/DatePicker.d.ts +0 -0
  270. /package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  271. /package/{dist/components → components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  272. /package/{dist/components → components}/DatePicker/DatePicker.js +0 -0
  273. /package/{dist/components → components}/DatePicker/DatePicker.js.map +0 -0
  274. /package/{dist/components → components}/DatePicker/DatePicker.sx.d.ts +0 -0
  275. /package/{dist/components → components}/DatePicker/DatePicker.types.d.ts +0 -0
  276. /package/{dist/components → components}/DatePicker/index.d.ts +0 -0
  277. /package/{dist/components → components}/DatePicker.d.ts +0 -0
  278. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  279. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  280. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  281. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  282. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  283. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  284. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  285. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  286. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs +0 -0
  287. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  288. /package/{dist/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  289. /package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  290. /package/{dist/components → components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  291. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js +0 -0
  292. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js.map +0 -0
  293. /package/{dist/components → components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  294. /package/{dist/components → components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  295. /package/{dist/components → components}/DateTimePicker/index.d.ts +0 -0
  296. /package/{dist/components → components}/DateTimePicker.d.ts +0 -0
  297. /package/{dist/components → components}/Drawer/Drawer.sx.d.ts +0 -0
  298. /package/{dist/components → components}/Drawer/DrawerContext.d.ts +0 -0
  299. /package/{dist/components → components}/Drawer/DrawerItem.d.ts +0 -0
  300. /package/{dist/components → components}/Drawer/index.d.ts +0 -0
  301. /package/{dist/components → components}/Drawer.d.ts +0 -0
  302. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  303. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  304. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  305. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  306. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  307. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  308. /package/{dist/components → components}/Flyout.d.ts +0 -0
  309. /package/{dist/components → components}/Gallery/Gallery.cjs +0 -0
  310. /package/{dist/components → components}/Gallery/Gallery.cjs.map +0 -0
  311. /package/{dist/components → components}/Gallery/Gallery.d.ts +0 -0
  312. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  313. /package/{dist/components → components}/Gallery/Gallery.js +0 -0
  314. /package/{dist/components → components}/Gallery/Gallery.js.map +0 -0
  315. /package/{dist/components → components}/Gallery/GalleryLightbox.d.ts +0 -0
  316. /package/{dist/components → components}/Gallery/GalleryMain.d.ts +0 -0
  317. /package/{dist/components → components}/Gallery/GalleryThumbnails.d.ts +0 -0
  318. /package/{dist/components → components}/Gallery/index.d.ts +0 -0
  319. /package/{dist/components → components}/Gallery.d.ts +0 -0
  320. /package/{dist/components → components}/Icon/Icon.cjs +0 -0
  321. /package/{dist/components → components}/Icon/Icon.cjs.map +0 -0
  322. /package/{dist/components → components}/Icon/Icon.d.ts +0 -0
  323. /package/{dist/components → components}/Icon/Icon.js +0 -0
  324. /package/{dist/components → components}/Icon/Icon.js.map +0 -0
  325. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  326. /package/{dist/components → components}/Icon.d.ts +0 -0
  327. /package/{dist/components → components}/Input/Input.cjs +0 -0
  328. /package/{dist/components → components}/Input/Input.cjs.map +0 -0
  329. /package/{dist/components → components}/Input/Input.d.ts +0 -0
  330. /package/{dist/components → components}/Input/Input.definitions.d.ts +0 -0
  331. /package/{dist/components → components}/Input/Input.helpers.d.ts +0 -0
  332. /package/{dist/components → components}/Input/Input.js +0 -0
  333. /package/{dist/components → components}/Input/Input.js.map +0 -0
  334. /package/{dist/components → components}/Input/Input.sx.d.ts +0 -0
  335. /package/{dist/components → components}/Input/Input.types.d.ts +0 -0
  336. /package/{dist/components → components}/Input/index.d.ts +0 -0
  337. /package/{dist/components → components}/Input.d.ts +0 -0
  338. /package/{dist/components → components}/InputGroup/InputGroup.cjs +0 -0
  339. /package/{dist/components → components}/InputGroup/InputGroup.cjs.map +0 -0
  340. /package/{dist/components → components}/InputGroup/InputGroup.d.ts +0 -0
  341. /package/{dist/components → components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  342. /package/{dist/components → components}/InputGroup/InputGroup.js +0 -0
  343. /package/{dist/components → components}/InputGroup/InputGroup.js.map +0 -0
  344. /package/{dist/components → components}/InputGroup/index.d.ts +0 -0
  345. /package/{dist/components → components}/InputGroup.d.ts +0 -0
  346. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  347. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  348. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  349. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  350. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  351. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  352. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  353. /package/{dist/components → components}/Modal/Modal.cjs +0 -0
  354. /package/{dist/components → components}/Modal/Modal.cjs.map +0 -0
  355. /package/{dist/components → components}/Modal/Modal.d.ts +0 -0
  356. /package/{dist/components → components}/Modal/Modal.js +0 -0
  357. /package/{dist/components → components}/Modal/Modal.js.map +0 -0
  358. /package/{dist/components → components}/Modal/ModalBody.d.ts +0 -0
  359. /package/{dist/components → components}/Modal/ModalFooter.d.ts +0 -0
  360. /package/{dist/components → components}/Modal/ModalHeader.d.ts +0 -0
  361. /package/{dist/components → components}/Modal/index.d.ts +0 -0
  362. /package/{dist/components → components}/Modal.d.ts +0 -0
  363. /package/{dist/components → components}/PageLoader/PageLoader.cjs +0 -0
  364. /package/{dist/components → components}/PageLoader/PageLoader.cjs.map +0 -0
  365. /package/{dist/components → components}/PageLoader/PageLoader.d.ts +0 -0
  366. /package/{dist/components → components}/PageLoader/PageLoader.js +0 -0
  367. /package/{dist/components → components}/PageLoader/PageLoader.js.map +0 -0
  368. /package/{dist/components → components}/PageLoader/index.d.ts +0 -0
  369. /package/{dist/components → components}/PageLoader.d.ts +0 -0
  370. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  371. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  372. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  373. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js +0 -0
  374. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  375. /package/{dist/components → components}/ScrollTopButton/index.d.ts +0 -0
  376. /package/{dist/components → components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  377. /package/{dist/components → components}/ScrollTopButton.d.ts +0 -0
  378. /package/{dist/components → components}/Select/Select.cjs +0 -0
  379. /package/{dist/components → components}/Select/Select.cjs.map +0 -0
  380. /package/{dist/components → components}/Select/Select.d.ts +0 -0
  381. /package/{dist/components → components}/Select/Select.definitions.d.ts +0 -0
  382. /package/{dist/components → components}/Select/Select.helpers.d.ts +0 -0
  383. /package/{dist/components → components}/Select/Select.js +0 -0
  384. /package/{dist/components → components}/Select/Select.js.map +0 -0
  385. /package/{dist/components → components}/Select/Select.sx.d.ts +0 -0
  386. /package/{dist/components → components}/Select/Select.types.d.ts +0 -0
  387. /package/{dist/components → components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  388. /package/{dist/components → components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  389. /package/{dist/components → components}/Select/_parts/SelectValue.d.ts +0 -0
  390. /package/{dist/components → components}/Select/index.d.ts +0 -0
  391. /package/{dist/components → components}/Select.d.ts +0 -0
  392. /package/{dist/components → components}/Stat/Stat.cjs +0 -0
  393. /package/{dist/components → components}/Stat/Stat.cjs.map +0 -0
  394. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  395. /package/{dist/components → components}/Stat/Stat.js +0 -0
  396. /package/{dist/components → components}/Stat/Stat.js.map +0 -0
  397. /package/{dist/components → components}/Stat/index.d.ts +0 -0
  398. /package/{dist/components → components}/Stat.d.ts +0 -0
  399. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs +0 -0
  400. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs.map +0 -0
  401. /package/{dist/components → components}/StatusMessage/StatusMessage.d.ts +0 -0
  402. /package/{dist/components → components}/StatusMessage/StatusMessage.js +0 -0
  403. /package/{dist/components → components}/StatusMessage/StatusMessage.js.map +0 -0
  404. /package/{dist/components → components}/StatusMessage/index.d.ts +0 -0
  405. /package/{dist/components → components}/StatusMessage.d.ts +0 -0
  406. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  407. /package/{dist/components → components}/Stepper/Stepper.cjs +0 -0
  408. /package/{dist/components → components}/Stepper/Stepper.cjs.map +0 -0
  409. /package/{dist/components → components}/Stepper/Stepper.d.ts +0 -0
  410. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  411. /package/{dist/components → components}/Stepper/Stepper.js +0 -0
  412. /package/{dist/components → components}/Stepper/Stepper.js.map +0 -0
  413. /package/{dist/components → components}/Stepper/index.d.ts +0 -0
  414. /package/{dist/components → components}/Stepper.d.ts +0 -0
  415. /package/{dist/components → components}/Table/Table.cjs +0 -0
  416. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  417. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  418. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  419. /package/{dist/components → components}/Table/Table.js +0 -0
  420. /package/{dist/components → components}/Table/Table.js.map +0 -0
  421. /package/{dist/components → components}/Table/data.d.ts +0 -0
  422. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  423. /package/{dist/components → components}/Table/index.d.ts +0 -0
  424. /package/{dist/components → components}/Table/types.d.ts +0 -0
  425. /package/{dist/components → components}/Table.d.ts +0 -0
  426. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  427. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  428. /package/{dist/components → components}/Tabs/Tabs.cjs +0 -0
  429. /package/{dist/components → components}/Tabs/Tabs.cjs.map +0 -0
  430. /package/{dist/components → components}/Tabs/Tabs.d.ts +0 -0
  431. /package/{dist/components → components}/Tabs/Tabs.js +0 -0
  432. /package/{dist/components → components}/Tabs/Tabs.js.map +0 -0
  433. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  434. /package/{dist/components → components}/Tabs/index.d.ts +0 -0
  435. /package/{dist/components → components}/Tabs.d.ts +0 -0
  436. /package/{dist/components → components}/Timeline/Timeline.cjs +0 -0
  437. /package/{dist/components → components}/Timeline/Timeline.cjs.map +0 -0
  438. /package/{dist/components → components}/Timeline/Timeline.d.ts +0 -0
  439. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  440. /package/{dist/components → components}/Timeline/Timeline.js +0 -0
  441. /package/{dist/components → components}/Timeline/Timeline.js.map +0 -0
  442. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  443. /package/{dist/components → components}/Timeline/index.d.ts +0 -0
  444. /package/{dist/components → components}/Timeline.d.ts +0 -0
  445. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  446. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  447. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  448. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  449. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  450. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  451. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  452. /package/{dist/components → components}/_shared/formField.sx.d.ts +0 -0
  453. /package/{dist/components → components}/_shared/resolvePreset.d.ts +0 -0
  454. /package/{dist/formField.sx-CQ1mbk9M.cjs → formField.sx-CQ1mbk9M.cjs} +0 -0
  455. /package/{dist/formField.sx-CQ1mbk9M.cjs.map → formField.sx-CQ1mbk9M.cjs.map} +0 -0
  456. /package/{dist/formField.sx-DfVbMe0V.js → formField.sx-DfVbMe0V.js} +0 -0
  457. /package/{dist/formField.sx-DfVbMe0V.js.map → formField.sx-DfVbMe0V.js.map} +0 -0
  458. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  459. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  460. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  461. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  462. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  463. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  464. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  465. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  466. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs +0 -0
  467. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs.map +0 -0
  468. /package/{dist/hooks → hooks}/Wizard/Wizard.js +0 -0
  469. /package/{dist/hooks → hooks}/Wizard/Wizard.js.map +0 -0
  470. /package/{dist/hooks → hooks}/Wizard/WizardContext.d.ts +0 -0
  471. /package/{dist/hooks → hooks}/Wizard/index.d.ts +0 -0
  472. /package/{dist/hooks → hooks}/Wizard/useWizard.d.ts +0 -0
  473. /package/{dist/hooks → hooks}/Wizard.d.ts +0 -0
  474. /package/{dist/index.cjs → index.cjs} +0 -0
  475. /package/{dist/index.cjs.map → index.cjs.map} +0 -0
  476. /package/{dist/index.d.ts → index.d.ts} +0 -0
  477. /package/{dist/index.js → index.js} +0 -0
  478. /package/{dist/index.js.map → index.js.map} +0 -0
  479. /package/{dist/mui.d.ts → mui.d.ts} +0 -0
  480. /package/{dist/resolvePreset-B-IB0ehH.js → resolvePreset-B-IB0ehH.js} +0 -0
  481. /package/{dist/resolvePreset-B-IB0ehH.js.map → resolvePreset-B-IB0ehH.js.map} +0 -0
  482. /package/{dist/resolvePreset-CT3kU-K2.cjs → resolvePreset-CT3kU-K2.cjs} +0 -0
  483. /package/{dist/resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +0 -0
  484. /package/{dist/styles.css → styles.css} +0 -0
  485. /package/{dist/theme → theme}/componentStyles.d.ts +0 -0
  486. /package/{dist/theme → theme}/tokens.d.ts +0 -0
  487. /package/{dist/useWizard-CWdIxZzX.cjs → useWizard-CWdIxZzX.cjs} +0 -0
  488. /package/{dist/useWizard-CWdIxZzX.cjs.map → useWizard-CWdIxZzX.cjs.map} +0 -0
  489. /package/{dist/useWizard-CWq--C3o.js → useWizard-CWq--C3o.js} +0 -0
  490. /package/{dist/useWizard-CWq--C3o.js.map → useWizard-CWq--C3o.js.map} +0 -0
@@ -1,853 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react'
2
- import React, { useState, useEffect } from 'react' // Añadido useEffect para historias con selección
3
- import { Table } from './Table'
4
- import { Column } from '../Column/Column'
5
- import { Box, Chip, Avatar, Rating, Typography, Link, Button } from '@mui/material'
6
- import { usuarios, productos, empleados } from './data' // Mantener las importaciones de datos existentes
7
- import {
8
- ActionsColumnCode,
9
- BasicTableCode,
10
- ComplexComponentsCode,
11
- EmployeeDetailedStatusCode,
12
- EmployeeTableCode,
13
- EmptyTableCode,
14
- ProductTableCode,
15
- ProductTableWithZeroStockHighlightedCode,
16
- SingleRowCode,
17
- TableWithExportCode,
18
- UserTableSortedByAgeCode,
19
- WithExportAndSelectionCode,
20
- WithExternalPaginationControlCode,
21
- WithRowSelectionCode,
22
- } from './Table.definition'
23
-
24
- // -----------------------------------------------------------------------------
25
- // Definición de las historias de Storybook
26
- // -----------------------------------------------------------------------------
27
-
28
- // Define un tipo de datos de ejemplo para las nuevas historias (distinto de 'Usuario' de data.ts si es necesario)
29
- interface UserData {
30
- id: number;
31
- name: string;
32
- age: number;
33
- city: string;
34
- email: string;
35
- }
36
-
37
- // Datos de ejemplo para las nuevas historias
38
- const sampleData: UserData[] = [
39
- { id: 1, name: 'Alice Smith', age: 28, city: 'New York', email: 'alice@example.com' },
40
- { id: 2, name: 'Bob Johnson', age: 34, city: 'London', email: 'bob@example.com' },
41
- { id: 3, name: 'Charlie Brown', age: 22, city: 'Paris', email: 'charlie@example.com' },
42
- { id: 4, name: 'Diana Prince', age: 40, city: 'Themyscira', email: 'diana@example.com' },
43
- { id: 5, name: 'Eve Adams', age: 19, city: 'Berlin', email: 'eve@example.com' },
44
- { id: 6, name: 'Frank White', age: 55, city: 'Tokyo', email: 'frank@example.com' },
45
- { id: 7, name: 'Grace Lee', age: 31, city: 'Seoul', email: 'grace@example.com' },
46
- { id: 8, name: 'Henry Ford', age: 60, city: 'Detroit', email: 'henry@example.com' },
47
- { id: 9, name: 'Ivy Green', age: 25, city: 'Rome', email: 'ivy@example.com' },
48
- { id: 10, name: 'Jack Black', age: 45, city: 'Los Angeles', email: 'jack@example.com' },
49
- { id: 11, name: 'Karen Millen', age: 33, city: 'Madrid', email: 'karen@example.com' },
50
- { id: 12, name: 'Leo Messi', age: 37, city: 'Miami', email: 'leo@example.com' },
51
- ];
52
-
53
- const meta: Meta<typeof Table> = {
54
- title: 'Components/Table',
55
- component: Table,
56
- parameters: {
57
- layout: 'padded',
58
- docs: {
59
- description: {
60
- component: 'Componente de tabla flexible y tipado que permite definir columnas de forma declarativa con paginación interna o externa.'
61
- }
62
-
63
- }
64
- },
65
- tags: ['autodocs'],
66
- argTypes: {
67
- data: { control: 'object', description: 'Array de objetos de datos a mostrar en la tabla. Las columnas heredarán el tipo definido del arreglo de datos.' },
68
- children: { control: false, description: 'Componentes `Column` que definen la estructura de las columnas. Las columnas definen requieren las propiedades: `name` que es el nombre que se verá en la columna y `field` que son los atributos a los cuales se podran acceder desde el scope interno de la columna. Si el atributo `field` tiene un arreglo vacio, se utilizará el objeto completo (todos los campos del objeto).' },
69
- currentPage: { control: 'number', description: 'Número de página actual (para paginación controlada).', if: { arg: 'onPageChange', exists: true } },
70
- pageSize: { control: 'number', description: 'Número de elementos por página (para paginación controlada).', if: { arg: 'onPageChange', exists: true } },
71
- totalPages: { control: 'number', description: 'Número total de páginas (para paginación controlada).', if: { arg: 'onPageChange', exists: true } },
72
- previousPage: { control: 'number', description: 'Página anterior (para paginación controlada).', if: { arg: 'onPageChange', exists: true } },
73
- nextPage: { control: 'number', description: 'Página siguiente (para paginación controlada).', if: { arg: 'onPageChange', exists: true } },
74
- pageSizeSelectorValue: { control: 'number', description: 'Valor por defecto para el selector de tamaño de página cuando la paginación es interna.' },
75
- onPageChange: { action: 'page changed', description: 'Callback para manejar el cambio de página (activa paginación controlada).' },
76
- onPageSizeChange: { action: 'page size changed', description: 'Callback para manejar el cambio de tamaño de página (activa paginación controlada).', if: { arg: 'onPageChange', exists: true } },
77
- enableCSVExport: { control: 'boolean', description: 'Habilita o deshabilita la funcionalidad de exportación a CSV.', defaultValue: false },
78
- csvExportFileName: { control: 'text', description: 'Nombre del archivo CSV al exportar.', defaultValue: 'data.csv', if: { arg: 'enableCSVExport', eq: true } },
79
- enableExcelExport: { control: 'boolean', description: 'Habilita o deshabilita la funcionalidad de exportación a Excel.', defaultValue: false },
80
- excelExportFileName: { control: 'text', description: 'Nombre del archivo Excel al exportar.', defaultValue: 'data.xlsx', if: { arg: 'enableExcelExport', eq: true } },
81
- csvExportButtonText: { control: 'text', description: 'Texto del botón de exportar.', defaultValue: 'Exportar CSV', if: { arg: 'enableCSVExport', eq: true } },
82
- excelExportButtonText: { control: 'text', description: 'Texto del botón de exportar.', defaultValue: 'Exportar Excel', if: { arg: 'enableExcelExport', eq: true } },
83
- csvExportColumns: { control: 'text', description: 'Array de nombres de columnas a exportar. Si no se especifica, se exportan todas.', if: { arg: 'enableCSVExport', eq: true } },
84
- // NUEVOS argTypes para selección de filas
85
- enableRowSelection: { control: 'boolean', description: 'Habilita o deshabilita la selección de filas con checkboxes.', defaultValue: false },
86
- rowIdentifier: { control: 'text', description: 'La clave única en el objeto de datos utilizada como identificador para las filas seleccionables (ej. "id").', if: { arg: 'enableRowSelection', eq: true } },
87
- onSelectionChange: { action: 'selectionChanged', description: 'Callback que se dispara cuando cambia la selección de filas. Devuelve un array con los objetos seleccionados.', if: { arg: 'enableRowSelection', eq: true } },
88
- }
89
- };
90
-
91
- export default meta;
92
- type Story = StoryObj<typeof meta>;
93
-
94
- // --- Historias para el componente Table ---
95
-
96
- export const BasicTable: Story = {
97
- args: {
98
- data: usuarios,
99
- },
100
- render: ({ data }) => (
101
- <Table data={data} pageSizeSelectorValue={1} pageSize={1}>
102
- <Column name="Nombre" field="nombre">
103
- {({ nombre }) => <Typography>{nombre}</Typography>}
104
- </Column>
105
- <Column name="Email" field="email">
106
- {({ email }) => <Typography color="text.secondary">{email}</Typography>}
107
- </Column>
108
- <Column width='10%' name="Edad" field="edad">
109
- {({ edad }) => <Typography>{edad} años</Typography>}
110
- </Column>
111
- </Table>
112
- ),
113
- parameters: {
114
- docs: {
115
- description: {
116
- story: 'Tabla básica con datos simples y columnas de texto. La paginación es interna por defecto.'
117
- },
118
- source: {
119
- code: BasicTableCode.trim()
120
- }
121
-
122
- }
123
- }
124
- };
125
-
126
- export const ComplexComponents: Story = {
127
- args: {
128
- data: usuarios.slice(0, 4),
129
- },
130
- render: ({ data }) => (
131
- <Table data={data}>
132
- <Column name="Usuario" field={['avatar', 'nombre']}>
133
- {({ avatar, nombre }) => (
134
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
135
- <Avatar src={avatar} alt={nombre} sx={{ width: 40, height: 40 }} />
136
- <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
137
- </Box>
138
- )}
139
- </Column>
140
- <Column name="Estado" field="activo">
141
- {({ activo }) => (
142
- <Chip
143
- label={activo ? 'Activo' : 'Inactivo'}
144
- color={activo ? 'success' : 'default'}
145
- size="small"
146
- />
147
- )}
148
- </Column>
149
- <Column name="Rol" field="rol">
150
- {({ rol }) => (
151
- <Chip
152
- label={rol!.charAt(0).toUpperCase() + rol!.slice(1)}
153
- color={rol === 'admin' ? 'primary' : rol === 'moderador' ? 'secondary' : 'default'}
154
- variant="outlined"
155
- size="small"
156
- />
157
- )}
158
- </Column>
159
- <Column name="Puntuación" field="puntuacion">
160
- {({ puntuacion }) => (
161
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
162
- <Rating value={puntuacion} max={5} precision={0.1} size="small" readOnly />
163
- <Typography variant="caption" color="text.secondary">
164
- {puntuacion}
165
- </Typography>
166
- </Box>
167
- )}
168
- </Column>
169
- </Table>
170
- ),
171
- parameters: {
172
- docs: {
173
- description: {
174
- story: 'Tabla con componentes complejos como avatars, chips y ratings. La paginación es interna por defecto.'
175
- },
176
- source: {
177
- code: ComplexComponentsCode.trim()
178
- }
179
- }
180
- }
181
- };
182
-
183
- export const WithExternalPaginationControl: Story = {
184
- render: () => {
185
- const [currentPage, setCurrentPage] = useState(1);
186
- const [pageSize, setPageSize] = useState(2);
187
- const totalItems = usuarios.length;
188
- const totalPages = Math.ceil(totalItems / pageSize);
189
-
190
- const startIndex = (currentPage - 1) * pageSize;
191
- const currentData = usuarios.slice(startIndex, startIndex + pageSize);
192
-
193
- const previousPageNum = currentPage > 1 ? currentPage - 1 : 1;
194
- const nextPageNum = currentPage < totalPages ? currentPage + 1 : totalPages;
195
-
196
- return (
197
- <Table
198
- data={currentData}
199
- currentPage={currentPage}
200
- pageSize={pageSize}
201
- totalPages={totalPages}
202
- previousPage={previousPageNum}
203
- nextPage={nextPageNum}
204
- onPageChange={setCurrentPage}
205
- onPageSizeChange={setPageSize}
206
- >
207
- <Column name="Nombre" field="nombre">
208
- {({ nombre }) => <Typography variant="body2" fontWeight="medium">{nombre}</Typography>}
209
- </Column>
210
- <Column name="Email" field="email">
211
- {({ email }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
212
- </Column>
213
- <Column name="Estado" field="activo">
214
- {({ activo }) => (
215
- <Chip
216
- label={activo ? 'Activo' : 'Inactivo'}
217
- color={activo ? 'success' : 'default'}
218
- size="small"
219
- />
220
- )}
221
- </Column>
222
- <Column name="Fecha de Registro" field="fechaRegistro">
223
- {({ fechaRegistro }) => (
224
- <Typography variant="body2">
225
- {new Date(fechaRegistro!).toLocaleDateString('es-ES')}
226
- </Typography>
227
- )}
228
- </Column>
229
- </Table>
230
- );
231
- },
232
- parameters: {
233
- docs: {
234
- description: {
235
- story: 'Tabla con paginación controlada externamente. El componente `Table` no gestiona el estado de la paginación, solo la UI.'
236
- },
237
- source: {
238
- code: WithExternalPaginationControlCode.trim()
239
-
240
- }
241
- }
242
- }
243
- };
244
-
245
- export const ProductTable: Story = {
246
- args: {
247
- data: productos,
248
- pageSizeSelectorValue: 1,
249
- },
250
- render: ({ data, pageSizeSelectorValue }) => (
251
- <Table data={data} pageSizeSelectorValue={pageSizeSelectorValue}>
252
- <Column name="Producto" field={['imagen', 'nombre']}>
253
- {({ imagen, nombre }) => (
254
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
255
- <Box
256
- component="img"
257
- src={imagen}
258
- alt={nombre}
259
- sx={{ width: 50, height: 50, borderRadius: 1, objectFit: 'cover' }}
260
- />
261
- <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
262
- </Box>
263
- )}
264
- </Column>
265
- <Column name="Precio" field={['precio', 'enOferta']}>
266
- {({ precio, enOferta }) => (
267
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
268
- <Typography
269
- variant="body2"
270
- color={enOferta ? 'error.main' : 'text.primary'}
271
- fontWeight={enOferta ? 'bold' : 'normal'}
272
- >
273
- ${precio!.toLocaleString()}
274
- </Typography>
275
- {enOferta && (
276
- <Chip label="OFERTA" color="error" size="small" />
277
- )}
278
- </Box>
279
- )}
280
- </Column>
281
- <Column name="Stock" field="stock">
282
- {({ stock }) => (
283
- <Chip
284
- label={stock! > 0 ? `${stock} unidades` : 'Sin stock'}
285
- color={stock! > 5 ? 'success' : stock! > 0 ? 'warning' : 'error'}
286
- size="small"
287
- />
288
- )}
289
- </Column>
290
- <Column name="Categoría" field="categoria">
291
- {({ categoria }) => (
292
- <Typography variant="body2">{categoria}</Typography>
293
- )}
294
- </Column>
295
- <Column name="Rating" field="rating">
296
- {({ rating }) => (
297
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
298
- <Rating value={rating} max={5} precision={0.1} size="small" readOnly />
299
- <Typography variant="caption">({rating})</Typography>
300
- </Box>
301
- )}
302
- </Column>
303
- </Table>
304
- ),
305
- parameters: {
306
- docs: {
307
- description: {
308
- story: 'Tabla de productos con imágenes, precios, stock y calificaciones. Paginación interna.'
309
- },
310
- source: {
311
- code: ProductTableCode.trim()
312
- }
313
- }
314
- }
315
- };
316
-
317
- export const EmployeeTable: Story = {
318
- args: {
319
- data: empleados,
320
- pageSizeSelectorValue: 1,
321
- },
322
- render: ({ data, pageSizeSelectorValue }) => (
323
- <Table data={data} pageSizeSelectorValue={pageSizeSelectorValue}>
324
- <Column name="Empleado" field={['avatar', 'nombre', 'apellido']}>
325
- {({ avatar, nombre, apellido }) => (
326
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
327
- <Avatar src={avatar} sx={{ width: 40, height: 40 }}>
328
- {avatar ? '' : `${nombre!.charAt(0)}${apellido!.charAt(0)}`}
329
- </Avatar>
330
- <Typography variant="body2" fontWeight="medium">
331
- {nombre} {apellido}
332
- </Typography>
333
- </Box>
334
- )}
335
- </Column>
336
- <Column name="Departamento" field="departamento">
337
- {({ departamento }) => (
338
- <Chip
339
- label={departamento}
340
- color="info"
341
- variant="filled"
342
- size="small"
343
- />
344
- )}
345
- </Column>
346
- <Column name="Salario" field="salario">
347
- {({ salario }) => (
348
- <Typography variant="body2" fontWeight="bold" color="success.dark">
349
- ${salario!.toLocaleString('es-ES')}
350
- </Typography>
351
- )}
352
- </Column>
353
- <Column name="Estado" field={['activo', 'fechaIngreso']}>
354
- {({ activo, fechaIngreso }) => (
355
- <Box>
356
- <Chip
357
- label={activo ? 'Contratado' : 'Inactivo'}
358
- color={activo ? 'success' : 'error'}
359
- size="small"
360
- />
361
- <Typography variant="caption" display="block" color="text.secondary" sx={{ mt: 0.5 }}>
362
- Desde: {new Date(fechaIngreso!).toLocaleDateString('es-ES')}
363
- </Typography>
364
- </Box>
365
- )}
366
- </Column>
367
- </Table>
368
- ),
369
- parameters: {
370
- docs: {
371
- description: {
372
- story: 'Tabla de empleados con múltiples campos combinados en una sola columna. Paginación interna.'
373
- },
374
- source: {
375
- code: EmployeeTableCode.trim()
376
- }
377
- }
378
- }
379
- };
380
-
381
- export const EmptyTable: Story = {
382
- args: {
383
- data: [],
384
- },
385
- render: ({ data }) => (
386
- <Table
387
- data={data}
388
- emptyTitle="No se encontraron registros"
389
- emptyMessage="Intente ajustar sus filtros o agregar nuevos datos."
390
- // emptyImageSrc={<img src="path/to/empty/image.png" alt="No data" />}
391
- >
392
- <Column name="Nombre" field="nombre">
393
- {({ nombre }) => <Typography variant="body2">{nombre}</Typography>}
394
- </Column>
395
- <Column name="Email" field="email">
396
- {({ email }) => <Typography variant="body2">{email}</Typography>}
397
- </Column>
398
- <Column name="Estado" field="activo">
399
- {({ activo }) => <Chip label={activo ? 'Activo' : 'Inactivo'} size="small" />}
400
- </Column>
401
- </Table>
402
- ),
403
- parameters: {
404
- docs: {
405
- description: {
406
- story: 'Tabla sin datos para mostrar el estado vacío y el mensaje correspondiente.'
407
- },
408
- source: {
409
- code: EmptyTableCode.trim()
410
- }
411
- }
412
- }
413
- };
414
-
415
- export const SingleRow: Story = {
416
- args: {
417
- data: [usuarios[0]],
418
- },
419
- render: ({ data }) => (
420
- <Table data={data}>
421
- <Column name="Usuario" field={['avatar', 'nombre', 'email']}>
422
- {({ avatar, nombre, email }) => (
423
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
424
- <Avatar src={avatar} alt={nombre} />
425
- <Box>
426
- <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
427
- <Typography variant="caption" color="text.secondary">{email}</Typography>
428
- </Box>
429
- </Box>
430
- )}
431
- </Column>
432
- <Column<Usuario> name="Información" field={[]}>
433
- {(user) => (
434
- <>
435
- <Typography variant="body2">{user.edad} años</Typography>
436
- <Box sx={{ display: 'flex', gap: 1, mt: 0.5 }}>
437
- <Chip label={user.rol} size="small" color="primary" variant="outlined" />
438
- <Chip
439
- label={user.activo ? 'Activo' : 'Inactivo'}
440
- size="small"
441
- color={user.activo ? 'success' : 'default'}
442
- />
443
- </Box>
444
- </>
445
- )}
446
- </Column>
447
- </Table>
448
- ),
449
- parameters: {
450
- docs: {
451
- description: {
452
- story: 'Tabla con una sola fila de datos.'
453
- },
454
- source: {
455
- code: SingleRowCode.trim()
456
- }
457
- }
458
- }
459
- };
460
-
461
- export const ProductTableWithZeroStockHighlighted: Story = {
462
- args: {
463
- data: productos,
464
- },
465
- render: ({ data }) => (
466
- <Table data={data}>
467
- <Column name="Producto" field={['imagen', 'nombre']}>
468
- {({ imagen, nombre }) => (
469
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
470
- <Box
471
- component="img"
472
- src={imagen}
473
- alt={nombre}
474
- sx={{ width: 50, height: 50, borderRadius: 1, objectFit: 'cover' }}
475
- />
476
- <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
477
- </Box>
478
- )}
479
- </Column>
480
- <Column name="Precio" field={['precio', 'enOferta']}>
481
- {({ precio, enOferta }) => (
482
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
483
- <Typography
484
- variant="body2"
485
- color={enOferta ? 'error.main' : 'text.primary'}
486
- fontWeight={enOferta ? 'bold' : 'normal'}
487
- >
488
- ${precio!.toLocaleString()}
489
- </Typography>
490
- {enOferta && (
491
- <Chip label="OFERTA" color="error" size="small" />
492
- )}
493
- </Box>
494
- )}
495
- </Column>
496
- <Column name="Stock" field="stock">
497
- {({ stock }) => (
498
- <Chip
499
- label={stock! > 0 ? `${stock} unidades` : 'Sin stock'}
500
- color={stock! > 5 ? 'success' : stock! > 0 ? 'warning' : 'error'}
501
- size="small"
502
- sx={{ backgroundColor: stock === 0 ? 'rgba(255, 0, 0, 0.1)' : undefined }}
503
- />
504
- )}
505
- </Column>
506
- <Column name="Rating" field="rating">
507
- {({ rating }) => (
508
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
509
- <Rating value={rating} max={5} precision={0.1} size="small" readOnly />
510
- <Typography variant="caption">({rating})</Typography>
511
- </Box>
512
- )}
513
- </Column>
514
- </Table>
515
- ),
516
- parameters: {
517
- docs: {
518
- description: {
519
- story: 'Muestra la tabla de productos resaltando visualmente los productos sin stock. Paginación interna.'
520
- },
521
- source: {
522
- code: ProductTableWithZeroStockHighlightedCode.trim()
523
- }
524
- }
525
- }
526
- };
527
-
528
-
529
- export const EmployeeDetailedStatus: Story = {
530
- args: {
531
- data: empleados,
532
- },
533
- render: ({ data }) => (
534
- <Table data={data}>
535
- <Column name="Empleado" field={['nombre', 'apellido', 'avatar']}>
536
- {({ nombre, apellido, avatar }) => (
537
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
538
- <Avatar src={avatar} sx={{ width: 40, height: 40 }}>
539
- {avatar ? '' : `${nombre!.charAt(0)}${apellido!.charAt(0)}`}
540
- </Avatar>
541
- <Typography variant="body2" fontWeight="medium">
542
- {nombre} {apellido}
543
- </Typography>
544
- </Box>
545
- )}
546
- </Column>
547
- <Column name="Departamento" field="departamento">
548
- {({ departamento }) => (
549
- <Chip
550
- label={departamento}
551
- color="info"
552
- variant="filled"
553
- size="small"
554
- />
555
- )}
556
- </Column>
557
- <Column name="Salario" field="salario">
558
- {({ salario }) => (
559
- <Typography variant="body2" fontWeight="bold" color="success.dark">
560
- ${salario!.toLocaleString('es-ES')}
561
- </Typography>
562
- )}
563
- </Column>
564
- <Column name="Estado de Contratación" field={['activo', 'fechaIngreso']}>
565
- {({ activo, fechaIngreso }) => (
566
- <Box>
567
- <Chip
568
- label={activo ? 'Contratado' : 'Inactivo'}
569
- color={activo ? 'success' : 'error'}
570
- size="small"
571
- />
572
- <Typography variant="caption" display="block" color="text.secondary" sx={{ mt: 0.5 }}>
573
- Desde: {new Date(fechaIngreso!).toLocaleDateString('es-ES')}
574
- </Typography>
575
- </Box>
576
- )}
577
- </Column>
578
- </Table>
579
- ),
580
- parameters: {
581
- docs: {
582
- description: {
583
- story: 'Muestra una tabla de empleados con un resumen detallado de su estado de contratación y fecha de ingreso. Paginación interna.'
584
- },
585
- source: {
586
- code: EmployeeDetailedStatusCode.trim()
587
- }
588
- }
589
- }
590
- };
591
-
592
- export const ActionsColumn: Story = {
593
- args: {
594
- data: usuarios.slice(0, 3),
595
- },
596
- render: ({ data }) => (
597
- <Table data={data}>
598
- <Column name="Nombre" field="nombre">
599
- {({ nombre }) => <Typography variant="body2">{nombre}</Typography>}
600
- </Column>
601
- <Column name="Email" field="email">
602
- {({ email }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
603
- </Column>
604
- <Column name="Acciones" field="id">
605
- {({ id }) => (
606
- <Button
607
- variant="contained"
608
- color="primary"
609
- size="small"
610
- onClick={() => alert('ID del usuario: ' + id)}
611
- >
612
- Ver Detalles ({id})
613
- </Button>
614
- )}
615
- </Column>
616
- </Table>
617
- ),
618
- parameters: {
619
- docs: {
620
- description: {
621
- story: 'Ejemplo de tabla con una columna de acciones que, al hacer clic en un botón, registra el ID del elemento en la consola.'
622
- },
623
- source: {
624
- code: ActionsColumnCode.trim()
625
- }
626
- }
627
- }
628
- };
629
-
630
- export const TableWithExport: Story = {
631
- args: {
632
- data: usuarios,
633
- enableCSVExport: true,
634
- enableExcelExport: true,
635
- csvExportFileName: 'usuarios_data',
636
- csvExportButtonText: '.csv',
637
- excelExportFileName: 'usuarios_data',
638
- excelExportButtonText: '.xlsx',
639
- csvExportColumns: ['ID', 'Nombre', 'Email', 'Edad'],
640
- excelExportColumns: ['ID', 'Nombre', 'Email', 'Edad'],
641
- },
642
- render: ({ data, enableCSVExport, enableExcelExport, csvExportFileName, csvExportButtonText, excelExportFileName, excelExportButtonText, csvExportColumns, excelExportColumns }) => (
643
- <Table<Usuario>
644
- data={usuarios}
645
- enableCSVExport={enableCSVExport}
646
- enableExcelExport={enableExcelExport}
647
- csvExportFileName={csvExportFileName}
648
- csvExportButtonText={csvExportButtonText}
649
- excelExportFileName={excelExportFileName}
650
- excelExportButtonText={excelExportButtonText}
651
- csvExportColumns={csvExportColumns}
652
- excelExportColumns={excelExportColumns}
653
- >
654
- <Column<Usuario> name="ID" field="id">
655
- {(row) => <Typography>{row.id}</Typography>}
656
- </Column>
657
- <Column<Usuario> name="Nombre" field="nombre">
658
- {(row) => <Typography>{row.nombre}</Typography>}
659
- </Column>
660
- <Column<Usuario> name="Email" field="email">
661
- {({ email }) => <Link href={`mailto:${email}`}>{email}</Link>}
662
- </Column>
663
- <Column<Usuario> name="Edad" field="edad">
664
- {(row) => <Typography>{row.edad}</Typography>}
665
- </Column>
666
- <Column<Usuario> name="Rol" field="rol">
667
- {({ rol }) => <Chip label={rol} size="small" />}
668
- </Column>
669
- <Column<Usuario> name="Acciones" field="id">
670
- {({ id }) => (
671
- <Button variant="outlined" size="small" onClick={() => alert(`Ver detalles de usuario ${id}`)}>
672
- Ver
673
- </Button>
674
- )}
675
- </Column>
676
- </Table>
677
- ),
678
- parameters: {
679
- docs: {
680
- description: {
681
- story: 'Tabla con la funcionalidad de exportar sus datos a un archivo CSV. Puedes especificar qué columnas incluir en la exportación y el nombre del archivo.'
682
- },
683
- source: {
684
- code: TableWithExportCode.trim()
685
- }
686
- }
687
- }
688
- };
689
-
690
-
691
- export const WithRowSelection: Story = {
692
- render: (args) => {
693
- const [selectedItems, setSelectedItems] = useState<UserData[]>([]);
694
-
695
- const handleSelectionChange = (items: UserData[]) => {
696
- setSelectedItems(items);
697
- args.onSelectionChange?.(items);
698
- };
699
-
700
- const handleBulkDelete = () => {
701
- if (selectedItems.length > 0) {
702
- alert(`Eliminando ${selectedItems.length} usuarios: ${selectedItems.map(item => item.name).join(', ')}`);
703
- setSelectedItems([]);
704
- } else {
705
- alert('No hay elementos seleccionados para eliminar.');
706
- }
707
- };
708
-
709
- const handleBulkUpdateCity = () => {
710
- if (selectedItems.length > 0) {
711
- const newCity = prompt('Ingresa la nueva ciudad para los seleccionados:');
712
- if (newCity) {
713
- alert(`Actualizando ciudad de ${selectedItems.length} usuarios a ${newCity}`);
714
- setSelectedItems([]);
715
- }
716
- } else {
717
- alert('No hay elementos seleccionados para actualizar.');
718
- }
719
- };
720
-
721
- return (
722
- <Box>
723
- <Typography variant="h6" gutterBottom>
724
- Tabla con Selección de Filas
725
- </Typography>
726
- {selectedItems.length > 0 && (
727
- <Box sx={{ mb: 2, display: 'flex', gap: 1 }}>
728
- <Button variant="contained" color="error" onClick={handleBulkDelete}>
729
- Eliminar ({selectedItems.length})
730
- </Button>
731
- <Button variant="contained" color="primary" onClick={handleBulkUpdateCity}>
732
- Actualizar Ciudad ({selectedItems.length})
733
- </Button>
734
- <Typography variant="body2" sx={{ alignSelf: 'center', ml: 2 }}>
735
- Elementos seleccionados: {selectedItems.length}
736
- </Typography>
737
- </Box>
738
- )}
739
- <Table<UserData>
740
- {...args}
741
- data={sampleData} // Usamos sampleData para esta historia
742
- enableRowSelection={true}
743
- rowIdentifier="id" // Es crucial que coincida con una clave única en tus datos
744
- onSelectionChange={handleSelectionChange}
745
- pageSizeSelectorValue={5}
746
- >
747
- <Column<UserData>
748
- name="ID"
749
- field="id"
750
- children={(row) => <Typography>{row.id}</Typography>}
751
- />
752
- <Column<UserData>
753
- name="Nombre"
754
- field="name"
755
- children={(row) => <Typography>{row.name}</Typography>}
756
- />
757
- <Column<UserData>
758
- name="Email"
759
- field="email"
760
- children={(row) => <Typography>{row.email}</Typography>}
761
- />
762
- <Column<UserData>
763
- name="Ciudad"
764
- field="city"
765
- children={(row) => <Typography>{row.city}</Typography>}
766
- />
767
- </Table>
768
- </Box>
769
- );
770
- },
771
- args: {
772
- },
773
- parameters: {
774
- docs: {
775
- description: {
776
- story: 'Tabla con la funcionalidad de selección de filas. Puedes seleccionar una o muchas filas y realizar acciones en masa.'
777
- },
778
- source: {
779
- code: WithRowSelectionCode.trim()
780
- }
781
- }
782
- },
783
- };
784
-
785
- export const WithExportAndSelection: Story = {
786
- render: (args) => {
787
- const [selectedItems, setSelectedItems] = useState<UserData[]>([]);
788
-
789
- const handleSelectionChange = (items: UserData[]) => {
790
- setSelectedItems(items);
791
- args.onSelectionChange?.(items);
792
- };
793
-
794
- return (
795
- <Box>
796
- <Typography variant="h6" gutterBottom>
797
- Tabla con Exportación y Selección de Filas
798
- </Typography>
799
- {selectedItems.length > 0 && (
800
- <Box sx={{ mb: 2 }}>
801
- <Typography variant="body2">
802
- Elementos seleccionados: {selectedItems.length}
803
- </Typography>
804
- </Box>
805
- )}
806
- <Table<UserData>
807
- {...args}
808
- data={sampleData} // Usamos sampleData para esta historia
809
- enableRowSelection={true}
810
- rowIdentifier="id"
811
- onSelectionChange={handleSelectionChange}
812
- pageSizeSelectorValue={5}
813
- enableCSVExport={true}
814
- csvExportFileName="users_data_with_selection"
815
- enableExcelExport={true}
816
- excelExportFileName="users_data_with_selection"
817
- >
818
- <Column<UserData>
819
- name="ID"
820
- field="id"
821
- children={(row) => <Typography>{row.id}</Typography>}
822
- />
823
- <Column<UserData>
824
- name="Nombre"
825
- field="name"
826
- children={(row) => <Typography>{row.name}</Typography>}
827
- />
828
- <Column<UserData>
829
- name="Email"
830
- field="email"
831
- children={(row) => <Typography>{row.email}</Typography>}
832
- />
833
- <Column<UserData>
834
- name="Ciudad"
835
- field="city"
836
- children={(row) => <Typography>{row.city}</Typography>}
837
- />
838
- </Table>
839
- </Box>
840
- );
841
- },
842
- args: {},
843
- parameters: {
844
- docs: {
845
- description: {
846
- story: 'Tabla con la funcionalidad de exportar sus datos a un archivo CSV y Excel. Puedes especificar qué columnas incluir en la exportación y el nombre del archivo.'
847
- },
848
- source: {
849
- code: WithExportAndSelectionCode.trim()
850
- }
851
- }
852
- }
853
- };