@soyfri/shared-library 2.0.0-beta.16 → 2.0.0-beta.18

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 (730) hide show
  1. package/.dockerignore +8 -0
  2. package/.github/workflows/publish.yml +107 -0
  3. package/.prettierrc +3 -0
  4. package/.storybook/main.ts +19 -0
  5. package/.storybook/preview.ts +14 -0
  6. package/.storybook/vitest.setup.ts +9 -0
  7. package/Dockerfile +37 -0
  8. package/build.js +117 -0
  9. package/chromatic.config.json +5 -0
  10. package/cleanDirectories.js +40 -0
  11. package/{Autocomplete-4i0dNDKr.cjs → dist/Autocomplete-DBWWcKQO.cjs} +5 -4
  12. package/dist/Autocomplete-DBWWcKQO.cjs.map +1 -0
  13. package/{Autocomplete-i3-V38n1.js → dist/Autocomplete-QTPCObBL.js} +5 -4
  14. package/dist/Autocomplete-QTPCObBL.js.map +1 -0
  15. package/{DatePicker-CtCFqXDw.cjs → dist/DatePicker-CUHUAzW4.cjs} +5 -4
  16. package/dist/DatePicker-CUHUAzW4.cjs.map +1 -0
  17. package/{DatePicker-D0Bz9Ryg.js → dist/DatePicker-kWjQEXIQ.js} +5 -4
  18. package/dist/DatePicker-kWjQEXIQ.js.map +1 -0
  19. package/{DateTimePicker-CTnRQCZo.cjs → dist/DateTimePicker-AVmtL4vS.cjs} +5 -4
  20. package/dist/DateTimePicker-AVmtL4vS.cjs.map +1 -0
  21. package/{DateTimePicker-77w-9TP5.js → dist/DateTimePicker-BO76eZ0P.js} +5 -4
  22. package/dist/DateTimePicker-BO76eZ0P.js.map +1 -0
  23. package/{Input-jYapjJYM.cjs → dist/Input-5VGBxiO2.cjs} +5 -4
  24. package/dist/Input-5VGBxiO2.cjs.map +1 -0
  25. package/{Input-rVVhI_wk.js → dist/Input-BVaetLBc.js} +5 -4
  26. package/dist/Input-BVaetLBc.js.map +1 -0
  27. package/dist/README.md +243 -0
  28. package/{Select-bSVQokFX.js → dist/Select-8fFMOx-I.js} +4 -4
  29. package/dist/Select-8fFMOx-I.js.map +1 -0
  30. package/{Select-B6jE3WH_.cjs → dist/Select-DyWV0aL9.cjs} +4 -4
  31. package/dist/Select-DyWV0aL9.cjs.map +1 -0
  32. package/{components → dist/components}/Autocomplete/Autocomplete.cjs +1 -1
  33. package/{components → dist/components}/Autocomplete/Autocomplete.js +1 -1
  34. package/{components → dist/components}/Autocomplete/Autocomplete.sx.d.ts +1 -1
  35. package/{components → dist/components}/DatePicker/DatePicker.cjs +1 -1
  36. package/{components → dist/components}/DatePicker/DatePicker.js +1 -1
  37. package/{components → dist/components}/DatePicker/DatePicker.sx.d.ts +1 -1
  38. package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs +1 -1
  39. package/{components → dist/components}/DateTimePicker/DateTimePicker.js +1 -1
  40. package/{components → dist/components}/DateTimePicker/DateTimePicker.sx.d.ts +1 -1
  41. package/{components → dist/components}/Input/Input.cjs +1 -1
  42. package/{components → dist/components}/Input/Input.js +1 -1
  43. package/{components → dist/components}/Input/Input.sx.d.ts +1 -1
  44. package/{components → dist/components}/Select/Select.cjs +1 -1
  45. package/{components → dist/components}/Select/Select.js +1 -1
  46. package/{components → dist/components}/Select/Select.sx.d.ts +1 -1
  47. package/{components → dist/components}/_shared/formField.sx.d.ts +11 -1
  48. package/{formField.sx-8_QRnKxv.js → dist/formField.sx-Cmhj9iGb.js} +15 -15
  49. package/dist/formField.sx-Cmhj9iGb.js.map +1 -0
  50. package/{formField.sx-BAX7KwMR.cjs → dist/formField.sx-V9PLO0wv.cjs} +15 -15
  51. package/dist/formField.sx-V9PLO0wv.cjs.map +1 -0
  52. package/{index.cjs → dist/index.cjs} +5 -7
  53. package/{index.cjs.map → dist/index.cjs.map} +1 -1
  54. package/{index.d.ts → dist/index.d.ts} +0 -1
  55. package/{index.js → dist/index.js} +6 -8
  56. package/{index.js.map → dist/index.js.map} +1 -1
  57. package/dist/package.json +190 -0
  58. package/package.json +57 -171
  59. package/rollup.config.cjs +87 -0
  60. package/scripts/gen-dist-pkg.mjs +15 -0
  61. package/shared-library-comercios-MUI.code-workspace +10 -0
  62. package/src/components/ActionMenu/ActionMenu.stories.tsx +427 -0
  63. package/src/components/ActionMenu/ActionMenu.tsx +153 -0
  64. package/src/components/ActionMenu/index.ts +2 -0
  65. package/src/components/AppBar/AppBar.stories.tsx +316 -0
  66. package/src/components/AppBar/AppBar.sx.ts +32 -0
  67. package/src/components/AppBar/AppBar.tsx +119 -0
  68. package/src/components/AppBar/AppBarContext.ts +25 -0
  69. package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
  70. package/src/components/AppBar/index.ts +12 -0
  71. package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
  72. package/src/components/Autocomplete/Autocomplete.helpers.ts +80 -0
  73. package/src/components/Autocomplete/Autocomplete.stories.tsx +784 -0
  74. package/src/components/Autocomplete/Autocomplete.sx.ts +32 -0
  75. package/src/components/Autocomplete/Autocomplete.tsx +394 -0
  76. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
  77. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
  78. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +29 -0
  79. package/src/components/Autocomplete/index.ts +12 -0
  80. package/src/components/Avatar/Avatar.definitions.ts +162 -0
  81. package/src/components/Avatar/Avatar.stories.tsx +258 -0
  82. package/src/components/Avatar/Avatar.tsx +206 -0
  83. package/src/components/Avatar/index.ts +2 -0
  84. package/src/components/Button/Button.definition.ts +97 -0
  85. package/src/components/Button/Button.stories.tsx +285 -0
  86. package/src/components/Button/Button.tsx +66 -0
  87. package/src/components/Button/index.ts +2 -0
  88. package/src/components/Card/Card.definition.ts +5 -0
  89. package/src/components/Card/Card.stories.tsx +102 -0
  90. package/src/components/Card/Card.sx.ts +58 -0
  91. package/src/components/Card/Card.tsx +85 -0
  92. package/src/components/Card/index.ts +4 -0
  93. package/src/components/Checkbox/Checkbox.stories.tsx +212 -0
  94. package/src/components/Checkbox/Checkbox.sx.ts +67 -0
  95. package/src/components/Checkbox/Checkbox.tsx +208 -0
  96. package/src/components/Checkbox/index.ts +10 -0
  97. package/src/components/Chip/Chip.definitions.ts +167 -0
  98. package/src/components/Chip/Chip.stories.tsx +265 -0
  99. package/src/components/Chip/Chip.tsx +61 -0
  100. package/src/components/Chip/index.ts +2 -0
  101. package/src/components/Column/Column.tsx +29 -0
  102. package/src/components/Column/index.ts +2 -0
  103. package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
  104. package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
  105. package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
  106. package/src/components/DatePicker/DatePicker.sx.ts +35 -0
  107. package/src/components/DatePicker/DatePicker.tsx +134 -0
  108. package/src/components/DatePicker/index.ts +7 -0
  109. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +317 -0
  110. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +45 -0
  111. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +415 -0
  112. package/src/components/DateTimePicker/DateTimePicker.sx.ts +32 -0
  113. package/src/components/DateTimePicker/DateTimePicker.tsx +241 -0
  114. package/src/components/DateTimePicker/index.ts +9 -0
  115. package/src/components/Drawer/Drawer.stories.tsx +438 -0
  116. package/src/components/Drawer/Drawer.sx.ts +106 -0
  117. package/src/components/Drawer/Drawer.tsx +224 -0
  118. package/src/components/Drawer/DrawerContext.ts +26 -0
  119. package/src/components/Drawer/DrawerItem.tsx +120 -0
  120. package/src/components/Drawer/index.ts +10 -0
  121. package/src/components/Flyout/Flyout.stories.tsx +282 -0
  122. package/src/components/Flyout/Flyout.tsx +122 -0
  123. package/src/components/Flyout/index.ts +1 -0
  124. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  125. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  126. package/src/components/Gallery/Gallery.tsx +158 -0
  127. package/src/components/Gallery/GalleryLightbox.tsx +186 -0
  128. package/src/components/Gallery/GalleryMain.tsx +87 -0
  129. package/src/components/Gallery/GalleryThumbnails.tsx +122 -0
  130. package/src/components/Gallery/index.ts +2 -0
  131. package/src/components/Icon/Icon.stories.tsx +121 -0
  132. package/src/components/Icon/Icon.tsx +163 -0
  133. package/src/components/Icon/index.ts +2 -0
  134. package/src/components/Input/Input.definitions.ts +348 -0
  135. package/src/components/Input/Input.helpers.ts +50 -0
  136. package/src/components/Input/Input.stories.tsx +528 -0
  137. package/src/components/Input/Input.sx.ts +44 -0
  138. package/src/components/Input/Input.tsx +163 -0
  139. package/src/components/Input/index.ts +10 -0
  140. package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
  141. package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
  142. package/src/components/InputGroup/InputGroup.tsx +180 -0
  143. package/src/components/InputGroup/index.ts +2 -0
  144. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  145. package/src/components/MenuButton/MenuButton.tsx +100 -0
  146. package/src/components/MenuButton/index.ts +1 -0
  147. package/src/components/Modal/Modal.stories.tsx +721 -0
  148. package/src/components/Modal/Modal.tsx +407 -0
  149. package/src/components/Modal/ModalBody.tsx +23 -0
  150. package/src/components/Modal/ModalFooter.tsx +83 -0
  151. package/src/components/Modal/ModalHeader.tsx +33 -0
  152. package/src/components/Modal/index.ts +11 -0
  153. package/src/components/RadioGroup/RadioGroup.definitions.ts +177 -0
  154. package/src/components/RadioGroup/RadioGroup.stories.tsx +231 -0
  155. package/src/components/RadioGroup/RadioGroup.sx.ts +75 -0
  156. package/src/components/RadioGroup/RadioGroup.tsx +207 -0
  157. package/src/components/RadioGroup/index.ts +10 -0
  158. package/src/components/Select/Select.helpers.ts +31 -0
  159. package/src/components/Select/Select.stories.tsx +393 -0
  160. package/src/components/Select/Select.sx.ts +15 -0
  161. package/src/components/Select/Select.tsx +328 -0
  162. package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
  163. package/src/components/Select/_parts/SelectValue.tsx +95 -0
  164. package/src/components/Select/index.ts +12 -0
  165. package/src/components/Stat/Stat.stories.tsx +85 -0
  166. package/src/components/Stat/Stat.tsx +117 -0
  167. package/src/components/Stat/index.ts +2 -0
  168. package/src/components/StatusMessage/StatusMessage.stories.tsx +159 -0
  169. package/src/components/StatusMessage/StatusMessage.tsx +143 -0
  170. package/src/components/StatusMessage/index.ts +3 -0
  171. package/src/components/Stepper/Step.tsx +21 -0
  172. package/src/components/Stepper/Stepper.definition.ts +75 -0
  173. package/src/components/Stepper/Stepper.stories.tsx +194 -0
  174. package/src/components/Stepper/Stepper.tsx +194 -0
  175. package/src/components/Stepper/StepperContext.tsx +176 -0
  176. package/src/components/Stepper/StepperProvider.stories.tsx +286 -0
  177. package/src/components/Stepper/_hooks/useHorizontalScroll.ts +56 -0
  178. package/src/components/Stepper/_parts/StepperScrollArrow.tsx +50 -0
  179. package/src/components/Stepper/index.ts +15 -0
  180. package/src/components/Switch/Switch.definitions.ts +134 -0
  181. package/src/components/Switch/Switch.stories.tsx +213 -0
  182. package/src/components/Switch/Switch.sx.ts +81 -0
  183. package/src/components/Switch/Switch.tsx +188 -0
  184. package/src/components/Switch/Switch.types.ts +10 -0
  185. package/src/components/Switch/index.ts +9 -0
  186. package/src/components/Table/EmptyTable.png +0 -0
  187. package/src/components/Table/Table.definition.ts +580 -0
  188. package/src/components/Table/Table.stories.tsx +853 -0
  189. package/src/components/Table/Table.tsx +494 -0
  190. package/src/components/Table/data.ts +134 -0
  191. package/src/components/Table/exportsUtils.ts +195 -0
  192. package/src/components/Table/index.ts +3 -0
  193. package/src/components/Table/types.ts +34 -0
  194. package/src/components/Tabs/Tab.definition.ts +53 -0
  195. package/src/components/Tabs/Tab.tsx +19 -0
  196. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  197. package/src/components/Tabs/Tabs.tsx +163 -0
  198. package/src/components/Tabs/_tabUtils.tsx +4 -0
  199. package/src/components/Tabs/index.ts +5 -0
  200. package/src/components/Timeline/Timeline.definition.ts +43 -0
  201. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  202. package/src/components/Timeline/Timeline.tsx +44 -0
  203. package/src/components/Timeline/TimelineItem.tsx +31 -0
  204. package/src/components/Timeline/index.ts +5 -0
  205. package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
  206. package/src/components/Tooltip/Tooltip.tsx +58 -0
  207. package/src/components/Tooltip/index.ts +1 -0
  208. package/src/components/_shared/formField.sx.ts +134 -0
  209. package/src/components/_shared/mergeSx.ts +16 -0
  210. package/src/components/_shared/resolvePreset.ts +38 -0
  211. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  212. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  213. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  214. package/src/hooks/ClipBoard/index.ts +1 -0
  215. package/src/index.ts +51 -0
  216. package/src/mui.ts +57 -0
  217. package/src/styles.css +3 -0
  218. package/src/theme/componentStyles.ts +50 -0
  219. package/src/theme/tokens.ts +43 -0
  220. package/src/utils/index.ts +2 -0
  221. package/src/utils/scrollToTop.ts +36 -0
  222. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  223. package/storybook-static/assets/AccountCircle-BDZFsbTw.js +1 -0
  224. package/storybook-static/assets/ActionMenu-EynP8yU1.js +19 -0
  225. package/storybook-static/assets/ActionMenu.stories-DqSqRGix.js +185 -0
  226. package/storybook-static/assets/Alert-3zvTPc0p.js +1 -0
  227. package/storybook-static/assets/AppBar.stories-DcX3M5th.js +172 -0
  228. package/storybook-static/assets/Autocomplete.stories-CXJm8FOT.js +788 -0
  229. package/storybook-static/assets/Avatar-NbFfkZws.js +1 -0
  230. package/storybook-static/assets/Avatar.stories-CwOYCzqU.js +390 -0
  231. package/storybook-static/assets/Box-BnhEcfFm.js +1 -0
  232. package/storybook-static/assets/Button-D9h7OggD.js +1 -0
  233. package/storybook-static/assets/Button-DBpqmVB_.js +1 -0
  234. package/storybook-static/assets/Button.stories-F20dmnjq.js +320 -0
  235. package/storybook-static/assets/ButtonBase-qyaMEhe4.js +74 -0
  236. package/storybook-static/assets/Card.stories-B3NpAhO0.js +154 -0
  237. package/storybook-static/assets/CheckCircleOutline-CEj5mDsl.js +1 -0
  238. package/storybook-static/assets/Chip-C3vKPpzR.js +1 -0
  239. package/storybook-static/assets/Chip.stories-sxcfHVo9.js +333 -0
  240. package/storybook-static/assets/CircularProgress-DC7ZNWwl.js +28 -0
  241. package/storybook-static/assets/Clear-4kYcKvT3.js +1 -0
  242. package/storybook-static/assets/ClipBoard-DvLBdNHe.js +1 -0
  243. package/storybook-static/assets/ClipBoard.stories-BGUo47r6.js +108 -0
  244. package/storybook-static/assets/Close-CgHeRgmh.js +1 -0
  245. package/storybook-static/assets/Close-Cy8nELYU.js +1 -0
  246. package/storybook-static/assets/Color-AVL7NMMY-BJKvwERm.js +1 -0
  247. package/storybook-static/assets/ContentCopy-BfLTDb10.js +1 -0
  248. package/storybook-static/assets/DatePicker-Clkpr-Ku.js +1 -0
  249. package/storybook-static/assets/DatePicker.stories-EaUCMkh3.js +444 -0
  250. package/storybook-static/assets/DateRangePicker.stories-BMlkj-8K.js +390 -0
  251. package/storybook-static/assets/DateTimePicker.stories-B6gdzKq5.js +555 -0
  252. package/storybook-static/assets/DefaultPropsProvider-BGoQxtDa.js +16 -0
  253. package/storybook-static/assets/Delete-D2SMMmIA.js +1 -0
  254. package/storybook-static/assets/DialogContent-BeCDKgax.js +1 -0
  255. package/storybook-static/assets/Divider-BbCj9wT4.js +1 -0
  256. package/storybook-static/assets/DocsRenderer-PQXLIZUC-BebLK5Y_.js +1243 -0
  257. package/storybook-static/assets/Drawer-DcFwy73r.js +1 -0
  258. package/storybook-static/assets/Drawer.stories-C5AZkJBk.js +173 -0
  259. package/storybook-static/assets/EmptyTable-B-RKtgVs.png +0 -0
  260. package/storybook-static/assets/ErrorOutline-D9gM7ART.js +1 -0
  261. package/storybook-static/assets/Fade-Ll96CvH8.js +1 -0
  262. package/storybook-static/assets/Flyout.stories-Cf7z6MNw.js +163 -0
  263. package/storybook-static/assets/Gallery.stories-DdpWVTF6.js +127 -0
  264. package/storybook-static/assets/Grow-8y4FglGK.js +1 -0
  265. package/storybook-static/assets/Home-BRvJEp2L.js +1 -0
  266. package/storybook-static/assets/Icon.stories-D0mUiW_t.js +78 -0
  267. package/storybook-static/assets/IconButton-9OYSTH58.js +1 -0
  268. package/storybook-static/assets/Input-CjX0t4h-.js +1 -0
  269. package/storybook-static/assets/Input.stories-BRxekliy.js +650 -0
  270. package/storybook-static/assets/InputGroup.stories-DH6gUfmn.js +306 -0
  271. package/storybook-static/assets/KeyboardArrowRight-WO_attK2.js +1 -0
  272. package/storybook-static/assets/KeyboardArrowUp-DsyVef-i.js +1 -0
  273. package/storybook-static/assets/ListItem-D3O0103N.js +1 -0
  274. package/storybook-static/assets/ListItemIcon-hca6xN79.js +1 -0
  275. package/storybook-static/assets/ListItemText-BFLAwLdl.js +1 -0
  276. package/storybook-static/assets/Logout-gj-P3AfU.js +1 -0
  277. package/storybook-static/assets/Menu-ClzfjLc3.js +1 -0
  278. package/storybook-static/assets/MenuButton.stories-B-W_QVDt.js +162 -0
  279. package/storybook-static/assets/MenuItem-iU6tAqJI.js +1 -0
  280. package/storybook-static/assets/Modal-3okp9H2i.js +1 -0
  281. package/storybook-static/assets/Modal.stories-DIWzm4qR.js +468 -0
  282. package/storybook-static/assets/MoreVert-BoIVG4gh.js +1 -0
  283. package/storybook-static/assets/Notifications-DY_A-Sho.js +1 -0
  284. package/storybook-static/assets/PageLoader.stories-DmtO1mlm.js +158 -0
  285. package/storybook-static/assets/Paper-SwQBhqI7.js +1 -0
  286. package/storybook-static/assets/Person-CkQl-mpq.js +1 -0
  287. package/storybook-static/assets/PickersModalDialog-Tjnr_cu5.js +10 -0
  288. package/storybook-static/assets/PickersToolbarButton-Tt185-si.js +1 -0
  289. package/storybook-static/assets/Popper-CnCTYXxy.js +1 -0
  290. package/storybook-static/assets/Portal-Cj8XF9Lf.js +1 -0
  291. package/storybook-static/assets/ScrollTopButton.stories-BflQCwNP.js +90 -0
  292. package/storybook-static/assets/Select-CjcuMAY0.js +4 -0
  293. package/storybook-static/assets/Select-DJh2biEb.js +3 -0
  294. package/storybook-static/assets/Select.stories-DU1Gb3I2.js +1103 -0
  295. package/storybook-static/assets/Settings-BLKc1CnO.js +1 -0
  296. package/storybook-static/assets/Snackbar-BtVeKTw6.js +1 -0
  297. package/storybook-static/assets/Stack-D01OUIXi.js +1 -0
  298. package/storybook-static/assets/Stat.stories-Bn9-iuPT.js +60 -0
  299. package/storybook-static/assets/StatusMessage.stories-hnfX8FeU.js +73 -0
  300. package/storybook-static/assets/Stepper-BtKB5ykn.js +2 -0
  301. package/storybook-static/assets/Stepper.stories-CTEZbgPc.js +165 -0
  302. package/storybook-static/assets/Table.stories-CTn2Ktmn.js +1260 -0
  303. package/storybook-static/assets/TableContainer-CzLNaEU-.js +1 -0
  304. package/storybook-static/assets/TableRow-CS88-1HF.js +2 -0
  305. package/storybook-static/assets/Tabs-DLpDOu_n.js +1 -0
  306. package/storybook-static/assets/Tabs.stories-BFVuFy_5.js +159 -0
  307. package/storybook-static/assets/TextField-22T-xHBm.js +1 -0
  308. package/storybook-static/assets/Timeline.stories-DJU_U2Hv.js +97 -0
  309. package/storybook-static/assets/Tooltip-DbnHUxNj.js +1 -0
  310. package/storybook-static/assets/Tooltip.stories-B7tA3dnV.js +66 -0
  311. package/storybook-static/assets/Typography-BgntX2Ep.js +1 -0
  312. package/storybook-static/assets/Wizard.stories-CVrJLK_D.js +23 -0
  313. package/storybook-static/assets/createSimplePaletteValueFilter-bm0fmN_7.js +1 -0
  314. package/storybook-static/assets/createSvgIcon-D_Gca4vA.js +1 -0
  315. package/storybook-static/assets/debounce-Be36O1Ab.js +1 -0
  316. package/storybook-static/assets/emotion-react.browser.esm--g-C9cX9.js +8 -0
  317. package/storybook-static/assets/extendSxProp-CEpa30hT.js +1 -0
  318. package/storybook-static/assets/formField.sx-DMCmZIAa.js +1 -0
  319. package/storybook-static/assets/getReactElementRef-BQ3ANZdy.js +1 -0
  320. package/storybook-static/assets/iframe-BAJnc_4n.js +1079 -0
  321. package/storybook-static/assets/index-B1tlhOpe.js +240 -0
  322. package/storybook-static/assets/index-BF3FAXTk.js +9 -0
  323. package/storybook-static/assets/index-CIeucmOB.js +2 -0
  324. package/storybook-static/assets/index-CY7j4a7o.js +1 -0
  325. package/storybook-static/assets/index-CxkKctw5.js +1 -0
  326. package/storybook-static/assets/isFocusVisible-B8k4qzLc.js +1 -0
  327. package/storybook-static/assets/isMuiElement-CTZSFcY5.js +1 -0
  328. package/storybook-static/assets/jsx-runtime-D_zvdyIk.js +9 -0
  329. package/storybook-static/assets/listItemTextClasses-CC_rwJam.js +1 -0
  330. package/storybook-static/assets/mergeSlotProps-B0UBKBMe.js +1 -0
  331. package/storybook-static/assets/ownerDocument-DW-IO8s5.js +1 -0
  332. package/storybook-static/assets/ownerWindow-HkKU3E4x.js +1 -0
  333. package/storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
  334. package/storybook-static/assets/react-18-BUJ64QCV.js +25 -0
  335. package/storybook-static/assets/resolvePreset-CN2aOJJr.js +1 -0
  336. package/storybook-static/assets/useControlled-DsVh1a5j.js +1 -0
  337. package/storybook-static/assets/useForkRef-0ANIrxcF.js +1 -0
  338. package/storybook-static/assets/useId-b4fZxjOL.js +1 -0
  339. package/storybook-static/assets/useMobilePicker-DK-c8xbD.js +1 -0
  340. package/storybook-static/assets/usePreviousProps-WR0rG4aR.js +1 -0
  341. package/storybook-static/assets/useSlot-b6pXgp5_.js +1 -0
  342. package/storybook-static/assets/useSlotProps-C0uMfuBt.js +1 -0
  343. package/storybook-static/assets/useTheme-BmOJK7ra.js +1 -0
  344. package/storybook-static/assets/useThemeProps-DYtxXiUU.js +1 -0
  345. package/storybook-static/assets/useThemeProps-U4yXiZ_5.js +1 -0
  346. package/storybook-static/assets/useTimeout-DNjRaOWc.js +1 -0
  347. package/storybook-static/assets/visuallyHidden-Dan1xhjv.js +1 -0
  348. package/storybook-static/favicon-wrapper.svg +46 -0
  349. package/storybook-static/favicon.svg +1 -0
  350. package/storybook-static/iframe.html +686 -0
  351. package/storybook-static/index.html +160 -0
  352. package/storybook-static/index.json +1 -0
  353. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  354. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  355. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  356. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  357. package/storybook-static/project.json +1 -0
  358. package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js +356 -0
  359. package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js.LEGAL.txt +40 -0
  360. package/storybook-static/sb-addons/docs-4/manager-bundle.js +151 -0
  361. package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +127 -0
  362. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +971 -0
  363. package/storybook-static/sb-addons/vitest-3/manager-bundle.js +3 -0
  364. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  365. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  366. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  367. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  368. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  369. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  370. package/storybook-static/sb-manager/globals-module-info.js +797 -0
  371. package/storybook-static/sb-manager/globals-runtime.js +69679 -0
  372. package/storybook-static/sb-manager/globals.js +34 -0
  373. package/storybook-static/sb-manager/runtime.js +13195 -0
  374. package/storybook-static/vite-inject-mocker-entry.js +18 -0
  375. package/tailwind.config.js +10 -0
  376. package/tsconfig.json +48 -0
  377. package/tsup.config.js +41 -0
  378. package/vite.config.js +132 -0
  379. package/vitest.config.ts +35 -0
  380. package/Autocomplete-4i0dNDKr.cjs.map +0 -1
  381. package/Autocomplete-i3-V38n1.js.map +0 -1
  382. package/DatePicker-CtCFqXDw.cjs.map +0 -1
  383. package/DatePicker-D0Bz9Ryg.js.map +0 -1
  384. package/DateRangePicker-BVpeJCHI.js +0 -76
  385. package/DateRangePicker-BVpeJCHI.js.map +0 -1
  386. package/DateRangePicker-B_hKQhbj.cjs +0 -75
  387. package/DateRangePicker-B_hKQhbj.cjs.map +0 -1
  388. package/DateTimePicker-77w-9TP5.js.map +0 -1
  389. package/DateTimePicker-CTnRQCZo.cjs.map +0 -1
  390. package/Input-jYapjJYM.cjs.map +0 -1
  391. package/Input-rVVhI_wk.js.map +0 -1
  392. package/Select-B6jE3WH_.cjs.map +0 -1
  393. package/Select-bSVQokFX.js.map +0 -1
  394. package/components/DateRangePicker/DateRangePicker.cjs +0 -5
  395. package/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
  396. package/components/DateRangePicker/DateRangePicker.d.ts +0 -15
  397. package/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
  398. package/components/DateRangePicker/DateRangePicker.js +0 -5
  399. package/components/DateRangePicker/DateRangePicker.js.map +0 -1
  400. package/components/DateRangePicker/index.d.ts +0 -1
  401. package/components/DateRangePicker.d.ts +0 -2
  402. package/formField.sx-8_QRnKxv.js.map +0 -1
  403. package/formField.sx-BAX7KwMR.cjs.map +0 -1
  404. /package/{README.md → Readme.md} +0 -0
  405. /package/{Avatar-CgT7955R.js → dist/Avatar-CgT7955R.js} +0 -0
  406. /package/{Avatar-CgT7955R.js.map → dist/Avatar-CgT7955R.js.map} +0 -0
  407. /package/{Avatar-CuSrK8Wn.cjs → dist/Avatar-CuSrK8Wn.cjs} +0 -0
  408. /package/{Avatar-CuSrK8Wn.cjs.map → dist/Avatar-CuSrK8Wn.cjs.map} +0 -0
  409. /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
  410. /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
  411. /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
  412. /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
  413. /package/{Card-B1wtavyl.js → dist/Card-B1wtavyl.js} +0 -0
  414. /package/{Card-B1wtavyl.js.map → dist/Card-B1wtavyl.js.map} +0 -0
  415. /package/{Card-DfdU610V.cjs → dist/Card-DfdU610V.cjs} +0 -0
  416. /package/{Card-DfdU610V.cjs.map → dist/Card-DfdU610V.cjs.map} +0 -0
  417. /package/{Checkbox-BCqMFWt4.cjs → dist/Checkbox-BCqMFWt4.cjs} +0 -0
  418. /package/{Checkbox-BCqMFWt4.cjs.map → dist/Checkbox-BCqMFWt4.cjs.map} +0 -0
  419. /package/{Checkbox-gB5YKkVo.js → dist/Checkbox-gB5YKkVo.js} +0 -0
  420. /package/{Checkbox-gB5YKkVo.js.map → dist/Checkbox-gB5YKkVo.js.map} +0 -0
  421. /package/{Chip-OPYQ1uQ_.js → dist/Chip-OPYQ1uQ_.js} +0 -0
  422. /package/{Chip-OPYQ1uQ_.js.map → dist/Chip-OPYQ1uQ_.js.map} +0 -0
  423. /package/{Chip-qoJLDiva.cjs → dist/Chip-qoJLDiva.cjs} +0 -0
  424. /package/{Chip-qoJLDiva.cjs.map → dist/Chip-qoJLDiva.cjs.map} +0 -0
  425. /package/{Modal-BN5s-Tfk.cjs → dist/Modal-BN5s-Tfk.cjs} +0 -0
  426. /package/{Modal-BN5s-Tfk.cjs.map → dist/Modal-BN5s-Tfk.cjs.map} +0 -0
  427. /package/{Modal-BRZMPwDj.js → dist/Modal-BRZMPwDj.js} +0 -0
  428. /package/{Modal-BRZMPwDj.js.map → dist/Modal-BRZMPwDj.js.map} +0 -0
  429. /package/{RadioGroup-Dd0rHXSX.cjs → dist/RadioGroup-Dd0rHXSX.cjs} +0 -0
  430. /package/{RadioGroup-Dd0rHXSX.cjs.map → dist/RadioGroup-Dd0rHXSX.cjs.map} +0 -0
  431. /package/{RadioGroup-bO-ahP9T.js → dist/RadioGroup-bO-ahP9T.js} +0 -0
  432. /package/{RadioGroup-bO-ahP9T.js.map → dist/RadioGroup-bO-ahP9T.js.map} +0 -0
  433. /package/{Stat-BUcFCGrz.cjs → dist/Stat-BUcFCGrz.cjs} +0 -0
  434. /package/{Stat-BUcFCGrz.cjs.map → dist/Stat-BUcFCGrz.cjs.map} +0 -0
  435. /package/{Stat-C06A_izS.js → dist/Stat-C06A_izS.js} +0 -0
  436. /package/{Stat-C06A_izS.js.map → dist/Stat-C06A_izS.js.map} +0 -0
  437. /package/{StatusMessage-B3nXpuRl.cjs → dist/StatusMessage-B3nXpuRl.cjs} +0 -0
  438. /package/{StatusMessage-B3nXpuRl.cjs.map → dist/StatusMessage-B3nXpuRl.cjs.map} +0 -0
  439. /package/{StatusMessage-D0WgSBx7.js → dist/StatusMessage-D0WgSBx7.js} +0 -0
  440. /package/{StatusMessage-D0WgSBx7.js.map → dist/StatusMessage-D0WgSBx7.js.map} +0 -0
  441. /package/{Step-BArsou1V.js → dist/Step-BArsou1V.js} +0 -0
  442. /package/{Step-BArsou1V.js.map → dist/Step-BArsou1V.js.map} +0 -0
  443. /package/{Step-Nd7SJbRZ.cjs → dist/Step-Nd7SJbRZ.cjs} +0 -0
  444. /package/{Step-Nd7SJbRZ.cjs.map → dist/Step-Nd7SJbRZ.cjs.map} +0 -0
  445. /package/{Switch-CQFOopYy.cjs → dist/Switch-CQFOopYy.cjs} +0 -0
  446. /package/{Switch-CQFOopYy.cjs.map → dist/Switch-CQFOopYy.cjs.map} +0 -0
  447. /package/{Switch-D72dpkH2.js → dist/Switch-D72dpkH2.js} +0 -0
  448. /package/{Switch-D72dpkH2.js.map → dist/Switch-D72dpkH2.js.map} +0 -0
  449. /package/{Tab-BbP8jBcK.cjs → dist/Tab-BbP8jBcK.cjs} +0 -0
  450. /package/{Tab-BbP8jBcK.cjs.map → dist/Tab-BbP8jBcK.cjs.map} +0 -0
  451. /package/{Tab-BxSxKJsP.js → dist/Tab-BxSxKJsP.js} +0 -0
  452. /package/{Tab-BxSxKJsP.js.map → dist/Tab-BxSxKJsP.js.map} +0 -0
  453. /package/{Table-C2LbW0B1.js → dist/Table-C2LbW0B1.js} +0 -0
  454. /package/{Table-C2LbW0B1.js.map → dist/Table-C2LbW0B1.js.map} +0 -0
  455. /package/{Table-C4OM6rrC.cjs → dist/Table-C4OM6rrC.cjs} +0 -0
  456. /package/{Table-C4OM6rrC.cjs.map → dist/Table-C4OM6rrC.cjs.map} +0 -0
  457. /package/{components → dist/components}/ActionMenu/ActionMenu.cjs +0 -0
  458. /package/{components → dist/components}/ActionMenu/ActionMenu.cjs.map +0 -0
  459. /package/{components → dist/components}/ActionMenu/ActionMenu.d.ts +0 -0
  460. /package/{components → dist/components}/ActionMenu/ActionMenu.js +0 -0
  461. /package/{components → dist/components}/ActionMenu/ActionMenu.js.map +0 -0
  462. /package/{components → dist/components}/ActionMenu/index.d.ts +0 -0
  463. /package/{components → dist/components}/ActionMenu.d.ts +0 -0
  464. /package/{components → dist/components}/AppBar/AppBar.cjs +0 -0
  465. /package/{components → dist/components}/AppBar/AppBar.cjs.map +0 -0
  466. /package/{components → dist/components}/AppBar/AppBar.d.ts +0 -0
  467. /package/{components → dist/components}/AppBar/AppBar.js +0 -0
  468. /package/{components → dist/components}/AppBar/AppBar.js.map +0 -0
  469. /package/{components → dist/components}/AppBar/AppBar.sx.d.ts +0 -0
  470. /package/{components → dist/components}/AppBar/AppBarContext.d.ts +0 -0
  471. /package/{components → dist/components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  472. /package/{components → dist/components}/AppBar/index.d.ts +0 -0
  473. /package/{components → dist/components}/AppBar.d.ts +0 -0
  474. /package/{components → dist/components}/Autocomplete/Autocomplete.cjs.map +0 -0
  475. /package/{components → dist/components}/Autocomplete/Autocomplete.d.ts +0 -0
  476. /package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  477. /package/{components → dist/components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  478. /package/{components → dist/components}/Autocomplete/Autocomplete.js.map +0 -0
  479. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  480. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  481. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  482. /package/{components → dist/components}/Autocomplete/index.d.ts +0 -0
  483. /package/{components → dist/components}/Autocomplete.d.ts +0 -0
  484. /package/{components → dist/components}/Avatar/Avatar.cjs +0 -0
  485. /package/{components → dist/components}/Avatar/Avatar.cjs.map +0 -0
  486. /package/{components → dist/components}/Avatar/Avatar.d.ts +0 -0
  487. /package/{components → dist/components}/Avatar/Avatar.definitions.d.ts +0 -0
  488. /package/{components → dist/components}/Avatar/Avatar.js +0 -0
  489. /package/{components → dist/components}/Avatar/Avatar.js.map +0 -0
  490. /package/{components → dist/components}/Avatar/index.d.ts +0 -0
  491. /package/{components → dist/components}/Avatar.d.ts +0 -0
  492. /package/{components → dist/components}/Button/Button.cjs +0 -0
  493. /package/{components → dist/components}/Button/Button.cjs.map +0 -0
  494. /package/{components → dist/components}/Button/Button.d.ts +0 -0
  495. /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
  496. /package/{components → dist/components}/Button/Button.js +0 -0
  497. /package/{components → dist/components}/Button/Button.js.map +0 -0
  498. /package/{components → dist/components}/Button/index.d.ts +0 -0
  499. /package/{components → dist/components}/Button.d.ts +0 -0
  500. /package/{components → dist/components}/Card/Card.cjs +0 -0
  501. /package/{components → dist/components}/Card/Card.cjs.map +0 -0
  502. /package/{components → dist/components}/Card/Card.d.ts +0 -0
  503. /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
  504. /package/{components → dist/components}/Card/Card.js +0 -0
  505. /package/{components → dist/components}/Card/Card.js.map +0 -0
  506. /package/{components → dist/components}/Card/Card.sx.d.ts +0 -0
  507. /package/{components → dist/components}/Card/index.d.ts +0 -0
  508. /package/{components → dist/components}/Card.d.ts +0 -0
  509. /package/{components → dist/components}/Checkbox/Checkbox.cjs +0 -0
  510. /package/{components → dist/components}/Checkbox/Checkbox.cjs.map +0 -0
  511. /package/{components → dist/components}/Checkbox/Checkbox.d.ts +0 -0
  512. /package/{components → dist/components}/Checkbox/Checkbox.js +0 -0
  513. /package/{components → dist/components}/Checkbox/Checkbox.js.map +0 -0
  514. /package/{components → dist/components}/Checkbox/Checkbox.sx.d.ts +0 -0
  515. /package/{components → dist/components}/Checkbox/index.d.ts +0 -0
  516. /package/{components → dist/components}/Checkbox.d.ts +0 -0
  517. /package/{components → dist/components}/Chip/Chip.cjs +0 -0
  518. /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
  519. /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
  520. /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
  521. /package/{components → dist/components}/Chip/Chip.js +0 -0
  522. /package/{components → dist/components}/Chip/Chip.js.map +0 -0
  523. /package/{components → dist/components}/Chip/index.d.ts +0 -0
  524. /package/{components → dist/components}/Chip.d.ts +0 -0
  525. /package/{components → dist/components}/Column/Column.cjs +0 -0
  526. /package/{components → dist/components}/Column/Column.cjs.map +0 -0
  527. /package/{components → dist/components}/Column/Column.d.ts +0 -0
  528. /package/{components → dist/components}/Column/Column.js +0 -0
  529. /package/{components → dist/components}/Column/Column.js.map +0 -0
  530. /package/{components → dist/components}/Column/index.d.ts +0 -0
  531. /package/{components → dist/components}/Column.d.ts +0 -0
  532. /package/{components → dist/components}/DatePicker/DatePicker.cjs.map +0 -0
  533. /package/{components → dist/components}/DatePicker/DatePicker.d.ts +0 -0
  534. /package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  535. /package/{components → dist/components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  536. /package/{components → dist/components}/DatePicker/DatePicker.js.map +0 -0
  537. /package/{components → dist/components}/DatePicker/index.d.ts +0 -0
  538. /package/{components → dist/components}/DatePicker.d.ts +0 -0
  539. /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  540. /package/{components → dist/components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  541. /package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  542. /package/{components → dist/components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  543. /package/{components → dist/components}/DateTimePicker/DateTimePicker.js.map +0 -0
  544. /package/{components → dist/components}/DateTimePicker/index.d.ts +0 -0
  545. /package/{components → dist/components}/DateTimePicker.d.ts +0 -0
  546. /package/{components → dist/components}/Drawer/Drawer.cjs +0 -0
  547. /package/{components → dist/components}/Drawer/Drawer.cjs.map +0 -0
  548. /package/{components → dist/components}/Drawer/Drawer.d.ts +0 -0
  549. /package/{components → dist/components}/Drawer/Drawer.js +0 -0
  550. /package/{components → dist/components}/Drawer/Drawer.js.map +0 -0
  551. /package/{components → dist/components}/Drawer/Drawer.sx.d.ts +0 -0
  552. /package/{components → dist/components}/Drawer/DrawerContext.d.ts +0 -0
  553. /package/{components → dist/components}/Drawer/DrawerItem.d.ts +0 -0
  554. /package/{components → dist/components}/Drawer/index.d.ts +0 -0
  555. /package/{components → dist/components}/Drawer.d.ts +0 -0
  556. /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
  557. /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
  558. /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
  559. /package/{components → dist/components}/Flyout/Flyout.js +0 -0
  560. /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
  561. /package/{components → dist/components}/Flyout/index.d.ts +0 -0
  562. /package/{components → dist/components}/Flyout.d.ts +0 -0
  563. /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
  564. /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
  565. /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
  566. /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
  567. /package/{components → dist/components}/Gallery/Gallery.js +0 -0
  568. /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
  569. /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
  570. /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
  571. /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
  572. /package/{components → dist/components}/Gallery/index.d.ts +0 -0
  573. /package/{components → dist/components}/Gallery.d.ts +0 -0
  574. /package/{components → dist/components}/Icon/Icon.cjs +0 -0
  575. /package/{components → dist/components}/Icon/Icon.cjs.map +0 -0
  576. /package/{components → dist/components}/Icon/Icon.d.ts +0 -0
  577. /package/{components → dist/components}/Icon/Icon.js +0 -0
  578. /package/{components → dist/components}/Icon/Icon.js.map +0 -0
  579. /package/{components → dist/components}/Icon/index.d.ts +0 -0
  580. /package/{components → dist/components}/Icon.d.ts +0 -0
  581. /package/{components → dist/components}/Input/Input.cjs.map +0 -0
  582. /package/{components → dist/components}/Input/Input.d.ts +0 -0
  583. /package/{components → dist/components}/Input/Input.definitions.d.ts +0 -0
  584. /package/{components → dist/components}/Input/Input.helpers.d.ts +0 -0
  585. /package/{components → dist/components}/Input/Input.js.map +0 -0
  586. /package/{components → dist/components}/Input/index.d.ts +0 -0
  587. /package/{components → dist/components}/Input.d.ts +0 -0
  588. /package/{components → dist/components}/InputGroup/InputGroup.cjs +0 -0
  589. /package/{components → dist/components}/InputGroup/InputGroup.cjs.map +0 -0
  590. /package/{components → dist/components}/InputGroup/InputGroup.d.ts +0 -0
  591. /package/{components → dist/components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  592. /package/{components → dist/components}/InputGroup/InputGroup.js +0 -0
  593. /package/{components → dist/components}/InputGroup/InputGroup.js.map +0 -0
  594. /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
  595. /package/{components → dist/components}/InputGroup.d.ts +0 -0
  596. /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
  597. /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
  598. /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
  599. /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
  600. /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
  601. /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
  602. /package/{components → dist/components}/MenuButton.d.ts +0 -0
  603. /package/{components → dist/components}/Modal/Modal.cjs +0 -0
  604. /package/{components → dist/components}/Modal/Modal.cjs.map +0 -0
  605. /package/{components → dist/components}/Modal/Modal.d.ts +0 -0
  606. /package/{components → dist/components}/Modal/Modal.js +0 -0
  607. /package/{components → dist/components}/Modal/Modal.js.map +0 -0
  608. /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
  609. /package/{components → dist/components}/Modal/ModalFooter.d.ts +0 -0
  610. /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
  611. /package/{components → dist/components}/Modal/index.d.ts +0 -0
  612. /package/{components → dist/components}/Modal.d.ts +0 -0
  613. /package/{components → dist/components}/RadioGroup/RadioGroup.cjs +0 -0
  614. /package/{components → dist/components}/RadioGroup/RadioGroup.cjs.map +0 -0
  615. /package/{components → dist/components}/RadioGroup/RadioGroup.d.ts +0 -0
  616. /package/{components → dist/components}/RadioGroup/RadioGroup.definitions.d.ts +0 -0
  617. /package/{components → dist/components}/RadioGroup/RadioGroup.js +0 -0
  618. /package/{components → dist/components}/RadioGroup/RadioGroup.js.map +0 -0
  619. /package/{components → dist/components}/RadioGroup/RadioGroup.sx.d.ts +0 -0
  620. /package/{components → dist/components}/RadioGroup/index.d.ts +0 -0
  621. /package/{components → dist/components}/RadioGroup.d.ts +0 -0
  622. /package/{components → dist/components}/Select/Select.cjs.map +0 -0
  623. /package/{components → dist/components}/Select/Select.d.ts +0 -0
  624. /package/{components → dist/components}/Select/Select.helpers.d.ts +0 -0
  625. /package/{components → dist/components}/Select/Select.js.map +0 -0
  626. /package/{components → dist/components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  627. /package/{components → dist/components}/Select/_parts/SelectValue.d.ts +0 -0
  628. /package/{components → dist/components}/Select/index.d.ts +0 -0
  629. /package/{components → dist/components}/Select.d.ts +0 -0
  630. /package/{components → dist/components}/Stat/Stat.cjs +0 -0
  631. /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
  632. /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
  633. /package/{components → dist/components}/Stat/Stat.js +0 -0
  634. /package/{components → dist/components}/Stat/Stat.js.map +0 -0
  635. /package/{components → dist/components}/Stat/index.d.ts +0 -0
  636. /package/{components → dist/components}/Stat.d.ts +0 -0
  637. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
  638. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
  639. /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
  640. /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
  641. /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
  642. /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
  643. /package/{components → dist/components}/StatusMessage.d.ts +0 -0
  644. /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
  645. /package/{components → dist/components}/Stepper/Stepper.cjs +0 -0
  646. /package/{components → dist/components}/Stepper/Stepper.cjs.map +0 -0
  647. /package/{components → dist/components}/Stepper/Stepper.d.ts +0 -0
  648. /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
  649. /package/{components → dist/components}/Stepper/Stepper.js +0 -0
  650. /package/{components → dist/components}/Stepper/Stepper.js.map +0 -0
  651. /package/{components → dist/components}/Stepper/StepperContext.d.ts +0 -0
  652. /package/{components → dist/components}/Stepper/_hooks/useHorizontalScroll.d.ts +0 -0
  653. /package/{components → dist/components}/Stepper/_parts/StepperScrollArrow.d.ts +0 -0
  654. /package/{components → dist/components}/Stepper/index.d.ts +0 -0
  655. /package/{components → dist/components}/Stepper.d.ts +0 -0
  656. /package/{components → dist/components}/Switch/Switch.cjs +0 -0
  657. /package/{components → dist/components}/Switch/Switch.cjs.map +0 -0
  658. /package/{components → dist/components}/Switch/Switch.d.ts +0 -0
  659. /package/{components → dist/components}/Switch/Switch.definitions.d.ts +0 -0
  660. /package/{components → dist/components}/Switch/Switch.js +0 -0
  661. /package/{components → dist/components}/Switch/Switch.js.map +0 -0
  662. /package/{components → dist/components}/Switch/Switch.sx.d.ts +0 -0
  663. /package/{components → dist/components}/Switch/Switch.types.d.ts +0 -0
  664. /package/{components → dist/components}/Switch/index.d.ts +0 -0
  665. /package/{components → dist/components}/Switch.d.ts +0 -0
  666. /package/{components → dist/components}/Table/Table.cjs +0 -0
  667. /package/{components → dist/components}/Table/Table.cjs.map +0 -0
  668. /package/{components → dist/components}/Table/Table.d.ts +0 -0
  669. /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
  670. /package/{components → dist/components}/Table/Table.js +0 -0
  671. /package/{components → dist/components}/Table/Table.js.map +0 -0
  672. /package/{components → dist/components}/Table/data.d.ts +0 -0
  673. /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
  674. /package/{components → dist/components}/Table/index.d.ts +0 -0
  675. /package/{components → dist/components}/Table/types.d.ts +0 -0
  676. /package/{components → dist/components}/Table.d.ts +0 -0
  677. /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
  678. /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
  679. /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
  680. /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
  681. /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
  682. /package/{components → dist/components}/Tabs/Tabs.js +0 -0
  683. /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
  684. /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
  685. /package/{components → dist/components}/Tabs/index.d.ts +0 -0
  686. /package/{components → dist/components}/Tabs.d.ts +0 -0
  687. /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
  688. /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
  689. /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
  690. /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
  691. /package/{components → dist/components}/Timeline/Timeline.js +0 -0
  692. /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
  693. /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
  694. /package/{components → dist/components}/Timeline/index.d.ts +0 -0
  695. /package/{components → dist/components}/Timeline.d.ts +0 -0
  696. /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
  697. /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
  698. /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
  699. /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
  700. /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
  701. /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
  702. /package/{components → dist/components}/Tooltip.d.ts +0 -0
  703. /package/{components → dist/components}/_shared/mergeSx.d.ts +0 -0
  704. /package/{components → dist/components}/_shared/resolvePreset.d.ts +0 -0
  705. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
  706. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  707. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  708. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
  709. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
  710. /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  711. /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
  712. /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
  713. /package/{index.css → dist/index.css} +0 -0
  714. /package/{mergeSx-BXoNZjB_.js → dist/mergeSx-BXoNZjB_.js} +0 -0
  715. /package/{mergeSx-BXoNZjB_.js.map → dist/mergeSx-BXoNZjB_.js.map} +0 -0
  716. /package/{mergeSx-Dbccoo_H.cjs → dist/mergeSx-Dbccoo_H.cjs} +0 -0
  717. /package/{mergeSx-Dbccoo_H.cjs.map → dist/mergeSx-Dbccoo_H.cjs.map} +0 -0
  718. /package/{mui.d.ts → dist/mui.d.ts} +0 -0
  719. /package/{resolvePreset-CxTI6_Ln.cjs → dist/resolvePreset-CxTI6_Ln.cjs} +0 -0
  720. /package/{resolvePreset-CxTI6_Ln.cjs.map → dist/resolvePreset-CxTI6_Ln.cjs.map} +0 -0
  721. /package/{resolvePreset-K6_BfWHD.js → dist/resolvePreset-K6_BfWHD.js} +0 -0
  722. /package/{resolvePreset-K6_BfWHD.js.map → dist/resolvePreset-K6_BfWHD.js.map} +0 -0
  723. /package/{theme → dist/theme}/componentStyles.d.ts +0 -0
  724. /package/{theme → dist/theme}/tokens.d.ts +0 -0
  725. /package/{tokens-BRrcP_p_.js → dist/tokens-BRrcP_p_.js} +0 -0
  726. /package/{tokens-BRrcP_p_.js.map → dist/tokens-BRrcP_p_.js.map} +0 -0
  727. /package/{tokens-jaWWNk39.cjs → dist/tokens-jaWWNk39.cjs} +0 -0
  728. /package/{tokens-jaWWNk39.cjs.map → dist/tokens-jaWWNk39.cjs.map} +0 -0
  729. /package/{utils → dist/utils}/index.d.ts +0 -0
  730. /package/{utils → dist/utils}/scrollToTop.d.ts +0 -0
@@ -0,0 +1,1260 @@
1
+ import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{r as T,R as pa}from"./iframe-BAJnc_4n.js";import{c as le}from"./createSvgIcon-D_Gca4vA.js";import{K as ua,a as ga}from"./KeyboardArrowRight-WO_attK2.js";import{T as ha}from"./TableContainer-CzLNaEU-.js";import{T as xa,a as ya,b as ea,c as Te,d as fa}from"./TableRow-CS88-1HF.js";import{g as $e,a as Ue,s as ie,b as te,d as Me,r as na,u as Ye,c as xe,m as Oe,h as he,e as ba,i as va,j as Ca}from"./DefaultPropsProvider-BGoQxtDa.js";import{u as Sa,S as Ta}from"./Select-DJh2biEb.js";import{u as re}from"./useSlot-b6pXgp5_.js";import{u as la}from"./useControlled-DsVh1a5j.js";import{B as Ea}from"./ButtonBase-qyaMEhe4.js";import{c as Ze}from"./createSimplePaletteValueFilter-bm0fmN_7.js";import{m as ja}from"./mergeSlotProps-B0UBKBMe.js";import{T as s}from"./Typography-BgntX2Ep.js";import{B as w}from"./Box-BnhEcfFm.js";import{M as wa}from"./MenuItem-iU6tAqJI.js";import{I as Ee}from"./IconButton-9OYSTH58.js";import{B as ge}from"./Button-DBpqmVB_.js";import{S as Ia}from"./Snackbar-BtVeKTw6.js";import{A as ka}from"./Alert-3zvTPc0p.js";import{A as We}from"./Avatar-NbFfkZws.js";import{C as $}from"./Chip-C3vKPpzR.js";import{a as Pa}from"./useSlotProps-C0uMfuBt.js";import{u as ia}from"./useId-b4fZxjOL.js";import{u as za}from"./useForkRef-0ANIrxcF.js";import{v as Ba}from"./visuallyHidden-Dan1xhjv.js";import{i as Le}from"./isFocusVisible-B8k4qzLc.js";import{u as Ra}from"./useTheme-BmOJK7ra.js";import"./preload-helper-PPVm8Dsz.js";import"./Menu-ClzfjLc3.js";import"./Paper-SwQBhqI7.js";import"./ownerDocument-DW-IO8s5.js";import"./ownerWindow-HkKU3E4x.js";import"./debounce-Be36O1Ab.js";import"./Grow-8y4FglGK.js";import"./getReactElementRef-BQ3ANZdy.js";import"./useTimeout-DNjRaOWc.js";import"./index-CY7j4a7o.js";import"./index-BF3FAXTk.js";import"./Modal-3okp9H2i.js";import"./Portal-Cj8XF9Lf.js";import"./Fade-Ll96CvH8.js";import"./emotion-react.browser.esm--g-C9cX9.js";import"./extendSxProp-CEpa30hT.js";import"./listItemTextClasses-CC_rwJam.js";import"./CircularProgress-DC7ZNWwl.js";import"./Close-Cy8nELYU.js";function Da(o){return $e("PrivateSwitchBase",o)}Ue("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const Fa=o=>{const{classes:a,checked:t,disabled:r,edge:l}=o,p={root:["root",t&&"checked",r&&"disabled",l&&`edge${te(l)}`],input:["input"]};return Me(p,Da,a)},Aa=ie(Ea,{name:"MuiSwitchBase"})({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:o,ownerState:a})=>o==="start"&&a.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:o,ownerState:a})=>o==="end"&&a.size!=="small",style:{marginRight:-12}}]}),Va=ie("input",{name:"MuiSwitchBase",shouldForwardProp:na})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Na=T.forwardRef(function(a,t){const{autoFocus:r,checked:l,checkedIcon:p,defaultChecked:n,disabled:u,disableFocusRipple:f=!1,edge:h=!1,icon:x,id:y,inputProps:E,inputRef:j,name:v,onBlur:R,onChange:D,onFocus:z,readOnly:A,required:S=!1,tabIndex:g,type:P,value:J,slots:se={},slotProps:H={},...ee}=a,[M,ae]=la({controlled:l,default:!!n,name:"SwitchBase",state:"checked"}),V=Sa(),oe=C=>{z&&z(C),V&&V.onFocus&&V.onFocus(C)},_=C=>{R&&R(C),V&&V.onBlur&&V.onBlur(C)},ce=C=>{if(C.nativeEvent.defaultPrevented)return;const F=C.target.checked;ae(F),D&&D(C,F)};let B=u;V&&typeof B>"u"&&(B=V.disabled);const k=P==="checkbox"||P==="radio",N={...a,checked:M,disabled:B,disableFocusRipple:f,edge:h},O=Fa(N),X={slots:se,slotProps:{input:E,...H}},[de,me]=re("root",{ref:t,elementType:Aa,className:O.root,shouldForwardComponentProp:!0,externalForwardedProps:{...X,component:"span",...ee},getSlotProps:C=>({...C,onFocus:F=>{C.onFocus?.(F),oe(F)},onBlur:F=>{C.onBlur?.(F),_(F)}}),ownerState:N,additionalProps:{centerRipple:!0,focusRipple:!f,disabled:B,role:void 0,tabIndex:null}}),[ye,fe]=re("input",{ref:j,elementType:Va,className:O.input,externalForwardedProps:X,getSlotProps:C=>({...C,onChange:F=>{C.onChange?.(F),ce(F)}}),ownerState:N,additionalProps:{autoFocus:r,checked:l,defaultChecked:n,disabled:B,id:k?y:void 0,name:v,readOnly:A,required:S,tabIndex:g,type:P,...P==="checkbox"&&J===void 0?{}:{value:J}}});return e.jsxs(de,{...me,children:[e.jsx(ye,{...fe}),M?p:x]})}),La=le(e.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"})),$a=le(e.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})),Ua=le(e.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}));function Ma(o){return $e("MuiCheckbox",o)}const Ke=Ue("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),Oa=o=>{const{classes:a,indeterminate:t,color:r,size:l}=o,p={root:["root",t&&"indeterminate",`color${te(r)}`,`size${te(l)}`]},n=Me(p,Ma,a);return{...a,...n}},Wa=ie(Na,{shouldForwardProp:o=>na(o)||o==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:t}=o;return[a.root,t.indeterminate&&a.indeterminate,a[`size${te(t.size)}`],t.color!=="default"&&a[`color${te(t.color)}`]]}})(Oe(({theme:o})=>({color:(o.vars||o).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:o.alpha((o.vars||o).palette.action.active,(o.vars||o).palette.action.hoverOpacity)}}},...Object.entries(o.palette).filter(Ze()).map(([a])=>({props:{color:a,disableRipple:!1},style:{"&:hover":{backgroundColor:o.alpha((o.vars||o).palette[a].main,(o.vars||o).palette.action.hoverOpacity)}}})),...Object.entries(o.palette).filter(Ze()).map(([a])=>({props:{color:a},style:{[`&.${Ke.checked}, &.${Ke.indeterminate}`]:{color:(o.vars||o).palette[a].main},[`&.${Ke.disabled}`]:{color:(o.vars||o).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),qa=e.jsx($a,{}),Ha=e.jsx(La,{}),_a=e.jsx(Ua,{}),aa=T.forwardRef(function(a,t){const r=Ye({props:a,name:"MuiCheckbox"}),{checkedIcon:l=qa,color:p="primary",icon:n=Ha,indeterminate:u=!1,indeterminateIcon:f=_a,inputProps:h,size:x="medium",disableRipple:y=!1,className:E,slots:j={},slotProps:v={},...R}=r,D=u?f:n,z=u?f:l,A={...r,disableRipple:y,color:p,indeterminate:u,size:x},S=Oa(A),g=v.input??h,[P,J]=re("root",{ref:t,elementType:Wa,className:xe(S.root,E),shouldForwardComponentProp:!0,externalForwardedProps:{slots:j,slotProps:v,...R},ownerState:A,additionalProps:{type:"checkbox",icon:T.cloneElement(D,{fontSize:D.props.fontSize??x}),checkedIcon:T.cloneElement(z,{fontSize:z.props.fontSize??x}),disableRipple:y,slots:j,slotProps:{input:ja(typeof g=="function"?g(A):g,{"data-indeterminate":u})}}});return e.jsx(P,{...J,classes:S})});function Xa(o){return $e("MuiLink",o)}const Ga=Ue("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Ka=({theme:o,ownerState:a})=>{const t=a.color;if("colorSpace"in o&&o.colorSpace){const p=he(o,`palette.${t}.main`)||he(o,`palette.${t}`)||a.color;return o.alpha(p,.4)}const r=he(o,`palette.${t}.main`,!1)||he(o,`palette.${t}`,!1)||a.color,l=he(o,`palette.${t}.mainChannel`)||he(o,`palette.${t}Channel`);return"vars"in o&&l?`rgba(${l} / 0.4)`:ba(r,.4)},oa={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},Ja=o=>{const{classes:a,component:t,focusVisible:r,underline:l}=o,p={root:["root",`underline${te(l)}`,t==="button"&&"button",r&&"focusVisible"]};return Me(p,Xa,a)},Za=ie(s,{name:"MuiLink",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:t}=o;return[a.root,a[`underline${te(t.underline)}`],t.component==="button"&&a.button]}})(Oe(({theme:o})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:a,ownerState:t})=>a==="always"&&t.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},{props:({underline:a,ownerState:t})=>a==="always"&&t.color==="inherit",style:o.colorSpace?{textDecorationColor:o.alpha("currentColor",.4)}:null},...Object.entries(o.palette).filter(Ze()).map(([a])=>({props:{underline:"always",color:a},style:{"--Link-underlineColor":o.alpha((o.vars||o).palette[a].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":o.alpha((o.vars||o).palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":o.alpha((o.vars||o).palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(o.vars||o).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Ga.focusVisible}`]:{outline:"auto"}}}]}))),Ya=T.forwardRef(function(a,t){const r=Ye({props:a,name:"MuiLink"}),l=Ra(),{className:p,color:n="primary",component:u="a",onBlur:f,onFocus:h,TypographyClasses:x,underline:y="always",variant:E="inherit",sx:j,...v}=r,[R,D]=T.useState(!1),z=P=>{Le(P.target)||D(!1),f&&f(P)},A=P=>{Le(P.target)&&D(!0),h&&h(P)},S={...r,color:n,component:u,focusVisible:R,underline:y,variant:E},g=Ja(S);return e.jsx(Za,{color:n,className:xe(g.root,p),classes:x,component:u,onBlur:z,onFocus:A,ref:t,ownerState:S,variant:E,...v,sx:[...oa[n]===void 0?[{color:n}]:[],...Array.isArray(j)?j:[j]],style:{...v.style,...y==="always"&&n!=="inherit"&&!oa[n]&&{"--Link-underlineColor":Ka({theme:l,ownerState:S})}}})}),Qa=le(e.jsx("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"})),eo=le(e.jsx("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}));function ao(o){return $e("MuiRating",o)}const Ce=Ue("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function oo(o){const a=o.toString().split(".")[1];return a?a.length:0}function Je(o,a){if(o==null)return o;const t=Math.round(o/a)*a;return Number(t.toFixed(oo(a)))}const to=o=>{const{classes:a,size:t,readOnly:r,disabled:l,emptyValueFocused:p,focusVisible:n}=o,u={root:["root",`size${te(t)}`,l&&"disabled",n&&"focusVisible",r&&"readOnly"],label:["label","pristine"],labelEmptyValue:[p&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return Me(u,ao,a)},ro=ie("span",{name:"MuiRating",slot:"Root",overridesResolver:(o,a)=>{const{ownerState:t}=o;return[{[`& .${Ce.visuallyHidden}`]:a.visuallyHidden},a.root,a[`size${te(t.size)}`],t.readOnly&&a.readOnly]}})(Oe(({theme:o})=>({display:"inline-flex",position:"relative",fontSize:o.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent",[`&.${Ce.disabled}`]:{opacity:(o.vars||o).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${Ce.focusVisible} .${Ce.iconActive}`]:{outline:"1px solid #999"},[`& .${Ce.visuallyHidden}`]:Ba,variants:[{props:{size:"small"},style:{fontSize:o.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:o.typography.pxToRem(30)}},{props:({ownerState:a})=>a.readOnly,style:{pointerEvents:"none"}}]}))),sa=ie("label",{name:"MuiRating",slot:"Label",overridesResolver:({ownerState:o},a)=>[a.label,o.emptyValueFocused&&a.labelEmptyValueActive]})({cursor:"inherit",variants:[{props:({ownerState:o})=>o.emptyValueFocused,style:{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"}}]}),no=ie("span",{name:"MuiRating",slot:"Icon",overridesResolver:(o,a)=>{const{ownerState:t}=o;return[a.icon,t.iconEmpty&&a.iconEmpty,t.iconFilled&&a.iconFilled,t.iconHover&&a.iconHover,t.iconFocus&&a.iconFocus,t.iconActive&&a.iconActive]}})(Oe(({theme:o})=>({display:"flex",transition:o.transitions.create("transform",{duration:o.transitions.duration.shortest}),pointerEvents:"none",variants:[{props:({ownerState:a})=>a.iconActive,style:{transform:"scale(1.2)"}},{props:({ownerState:a})=>a.iconEmpty,style:{color:(o.vars||o).palette.action.disabled}}]}))),lo=ie("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:o=>va(o)&&o!=="iconActive",overridesResolver:(o,a)=>{const{iconActive:t}=o;return[a.decimal,t&&a.iconActive]}})({position:"relative",variants:[{props:({iconActive:o})=>o,style:{transform:"scale(1.2)"}}]});function io(o){const{value:a,...t}=o;return e.jsx("span",{...t})}function ta(o){const{classes:a,disabled:t,emptyIcon:r,focus:l,getLabelText:p,highlightSelectedOnly:n,hover:u,icon:f,IconContainerComponent:h,isActive:x,itemValue:y,labelProps:E,name:j,onBlur:v,onChange:R,onClick:D,onFocus:z,readOnly:A,ownerState:S,ratingValue:g,ratingValueRounded:P,slots:J={},slotProps:se={}}=o,H=n?y===g:y<=g,ee=y<=u,M=y<=l,ae=y===P,V=`${j}-${ia()}`,oe={slots:J,slotProps:se},[_,ce]=re("icon",{elementType:no,className:xe(a.icon,H?a.iconFilled:a.iconEmpty,ee&&a.iconHover,M&&a.iconFocus,x&&a.iconActive),externalForwardedProps:oe,ownerState:{...S,iconEmpty:!H,iconFilled:H,iconHover:ee,iconFocus:M,iconActive:x},additionalProps:{value:y},internalForwardedProps:{as:h}}),[B,k]=re("label",{elementType:sa,externalForwardedProps:oe,ownerState:{...S,emptyValueFocused:void 0},additionalProps:{style:E?.style,htmlFor:V}}),N=e.jsx(_,{...ce,children:r&&!H?r:f});return A?e.jsx("span",{...E,children:N}):e.jsxs(T.Fragment,{children:[e.jsxs(B,{...k,children:[N,e.jsx("span",{className:a.visuallyHidden,children:p(y)})]}),e.jsx("input",{className:a.visuallyHidden,onFocus:z,onBlur:v,onChange:R,onClick:D,disabled:t,value:y,id:V,type:"radio",name:j,checked:ae})]})}const so=e.jsx(Qa,{fontSize:"inherit"}),co=e.jsx(eo,{fontSize:"inherit"});function mo(o){return`${o||"0"} Star${o!==1?"s":""}`}const Qe=T.forwardRef(function(a,t){const r=Ye({name:"MuiRating",props:a}),{component:l="span",className:p,defaultValue:n=null,disabled:u=!1,emptyIcon:f=co,emptyLabelText:h="Empty",getLabelText:x=mo,highlightSelectedOnly:y=!1,icon:E=so,IconContainerComponent:j=io,max:v=5,name:R,onChange:D,onChangeActive:z,onMouseLeave:A,onMouseMove:S,precision:g=1,readOnly:P=!1,size:J="medium",value:se,slots:H={},slotProps:ee={},...M}=r,ae=ia(R),[V,oe]=la({controlled:se,default:n,name:"Rating"}),_=Je(V,g),ce=Pa(),[{hover:B,focus:k},N]=T.useState({hover:-1,focus:-1});let O=_;B!==-1&&(O=B),k!==-1&&(O=k);const[X,de]=T.useState(!1),me=T.useRef(),ye=za(me,t),fe=m=>{S&&S(m);const c=me.current,{right:b,left:L,width:W}=c.getBoundingClientRect();let K;ce?K=(b-m.clientX)/W:K=(m.clientX-L)/W;let q=Je(v*K+g/2,g);q=Ca(q,g,v),N(Q=>Q.hover===q&&Q.focus===q?Q:{hover:q,focus:q}),de(!1),z&&B!==q&&z(m,q)},C=m=>{A&&A(m);const c=-1;N({hover:c,focus:c}),z&&B!==c&&z(m,c)},F=m=>{let c=m.target.value===""?null:parseFloat(m.target.value);B!==-1&&(c=B),oe(c),D&&D(m,c)},G=m=>{m.clientX===0&&m.clientY===0||(N({hover:-1,focus:-1}),oe(null),D&&parseFloat(m.target.value)===_&&D(m,null))},Z=m=>{Le(m.target)&&de(!0);const c=parseFloat(m.target.value);N(b=>({hover:b.hover,focus:c}))},pe=m=>{if(B!==-1)return;Le(m.target)||de(!1);const c=-1;N(b=>({hover:b.hover,focus:c}))},[qe,He]=T.useState(!1),ue={...r,component:l,defaultValue:n,disabled:u,emptyIcon:f,emptyLabelText:h,emptyValueFocused:qe,focusVisible:X,getLabelText:x,icon:E,IconContainerComponent:j,max:v,precision:g,readOnly:P,size:J},Y=to(ue),be={slots:H,slotProps:ee},[Se,ve]=re("root",{ref:ye,className:xe(Y.root,p),elementType:ro,externalForwardedProps:{...be,...M,component:l},getSlotProps:m=>({...m,onMouseMove:c=>{fe(c),m.onMouseMove?.(c)},onMouseLeave:c=>{C(c),m.onMouseLeave?.(c)}}),ownerState:ue,additionalProps:{role:P?"img":null,"aria-label":P?x(O):null}}),[_e,Xe]=re("label",{className:xe(Y.label,Y.labelEmptyValue),elementType:sa,externalForwardedProps:be,ownerState:ue}),[d,I]=re("decimal",{className:Y.decimal,elementType:lo,externalForwardedProps:be,ownerState:ue});return e.jsxs(Se,{...ve,children:[Array.from(new Array(v)).map((m,c)=>{const b=c+1,L={classes:Y,disabled:u,emptyIcon:f,focus:k,getLabelText:x,highlightSelectedOnly:y,hover:B,icon:E,IconContainerComponent:j,name:ae,onBlur:pe,onChange:F,onClick:G,onFocus:Z,ratingValue:O,ratingValueRounded:_,readOnly:P,ownerState:ue,slots:H,slotProps:ee},W=b===Math.ceil(O)&&(B!==-1||k!==-1);if(g<1){const K=Array.from(new Array(1/g));return T.createElement(d,{...I,key:b,className:xe(I.className,W&&Y.iconActive),iconActive:W},K.map((q,Q)=>{const Ge=Je(b-1+(Q+1)*g,g);return e.jsx(ta,{...L,isActive:!1,itemValue:Ge,labelProps:{style:K.length-1===Q?{}:{width:Ge===O?`${(Q+1)*g*100}%`:"0%",overflow:"hidden",position:"absolute"}}},Ge)}))}return e.jsx(ta,{...L,isActive:W,itemValue:b},b)}),!P&&!u&&e.jsxs(_e,{...Xe,children:[e.jsx("input",{className:Y.visuallyHidden,value:"",id:`${ae}-empty`,type:"radio",name:ae,checked:_==null,onFocus:()=>He(!0),onBlur:()=>He(!1),onChange:F}),e.jsx("span",{className:Y.visuallyHidden,children:h})]})]})}),ra=le(e.jsx("path",{d:"M19 9h-4V3H9v6H5l7 7zm-8 2V5h2v6h1.17L12 13.17 9.83 11zm-6 7h14v2H5z"})),po=le(e.jsx("path",{d:"M18.41 16.59 13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"})),uo=le(e.jsx("path",{d:"M5.59 7.41 10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"})),go=o=>{const{data:a,columns:t,fileName:r,exportColumns:l,setSnackbarOpen:p,setSnackbarMessage:n,setSnackbarSeverity:u}=o;if(!a||a.length===0){n("No hay datos para exportar a CSV."),u("warning"),p(!0);return}n("Exportando datos a CSV..."),u("info"),p(!0);try{const f=l?t.filter(v=>l.includes(v.props.name)):t,h=f.map(v=>`"${v.props.name.replace(/"/g,'""')}"`).join(","),x=a.map(v=>f.map(D=>{const z=D.props.field;let A;Array.isArray(z)?A=v[z[0]]:A=v[z];let S=String(A||"");return(S.includes(",")||S.includes('"')||S.includes(`
2
+ `))&&(S=`"${S.replace(/"/g,'""')}"`),S}).join(",")),y=[h,...x].join(`
3
+ `),E=new Blob([y],{type:"text/csv;charset=utf-8;"}),j=document.createElement("a");if(j.download!==void 0){const v=URL.createObjectURL(E);j.setAttribute("href",v),j.setAttribute("download",r+".csv"),j.style.visibility="hidden",document.body.appendChild(j),j.click(),document.body.removeChild(j),URL.revokeObjectURL(v),n("¡Exportación a CSV completada!"),u("success")}else n("Tu navegador no soporta la descarga directa para CSV. Por favor, copia el contenido manualmente."),u("error")}catch(f){console.error("Error al exportar los datos a CSV:",f),n("Error al exportar los datos a CSV."),u("error")}finally{p(!0)}},ho=o=>{const{data:a,columns:t,fileName:r,exportColumns:l,setSnackbarOpen:p,setSnackbarMessage:n,setSnackbarSeverity:u}=o;if(!a||a.length===0){n("No hay datos para exportar a Excel."),u("warning"),p(!0);return}n("Exportando datos a Excel (XLSX)..."),u("info"),p(!0);try{const f=l?t.filter(E=>l.includes(E.props.name)):t;let h=`
4
+ <html xmlns:o="urn:schemas-microsoft-com:office:office"
5
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
6
+ xmlns="http://www.w3.org/TR/REC-html40">
7
+ <head>
8
+ <meta charset="utf-8" />
9
+ <!--[if gte mso 9]><xml>
10
+ <x:ExcelWorkbook>
11
+ <x:ExcelWorksheets>
12
+ <x:ExcelWorksheet>
13
+ <x:Name>Hoja1</x:Name>
14
+ <x:WorksheetOptions>
15
+ <x:DisplayGridlines/>
16
+ </x:WorksheetOptions>
17
+ </x:ExcelWorksheet>
18
+ </x:ExcelWorksheets>
19
+ </x:ExcelWorkbook>
20
+ </xml><![endif]-->
21
+ </head>
22
+ <body>
23
+ <table>
24
+ <thead>
25
+ <tr>
26
+ ${f.map(E=>`<th>${E.props.name}</th>`).join("")}
27
+ </tr>
28
+ </thead>
29
+ <tbody>
30
+ ${a.map(E=>`
31
+ <tr>
32
+ ${f.map(j=>{const v=j.props.field;let R;return Array.isArray(v)?R=E[v[0]]:R=E[v],`<td>${String(R||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}</td>`}).join("")}
33
+ </tr>
34
+ `).join("")}
35
+ </tbody>
36
+ </table>
37
+ </body>
38
+ </html>
39
+ `;const x=new Blob([h],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8;"}),y=document.createElement("a");if(y.download!==void 0){const E=URL.createObjectURL(x);y.setAttribute("href",E),y.setAttribute("download",r+".xlsx"),y.style.visibility="hidden",document.body.appendChild(y),y.click(),document.body.removeChild(y),URL.revokeObjectURL(E),n("¡Exportación a Excel (XLSX) completada!"),u("success")}else n("Tu navegador no soporta la descarga directa para Excel (XLSX). Por favor, copia el contenido manualmente."),u("error")}catch(f){console.error("Error al exportar los datos a Excel (XLSX):",f),n("Error al exportar los datos a Excel (XLSX)."),u("error")}finally{p(!0)}},xo=""+new URL("EmptyTable-B-RKtgVs.png",import.meta.url).href,yo=pa.forwardRef(function(a,t){return e.jsx(ka,{elevation:6,ref:t,variant:"filled",...a})});function U({data:o,children:a,currentPage:t,pageSize:r,totalPages:l,previousPage:p,nextPage:n,pageSizeSelectorValue:u=10,onPageChange:f,onPageSizeChange:h,visiblePageNumbers:x=5,enableCSVExport:y=!1,csvExportFileName:E="data.csv",csvExportButtonText:j="Exportar CSV",csvExportColumns:v,enableExcelExport:R=!1,excelExportFileName:D="data.xlsx",excelExportButtonText:z="Exportar Excel",excelExportColumns:A,enableRowSelection:S=!1,rowIdentifier:g,onSelectionChange:P,showPageSizeSelector:J=!0,emptyTitle:se="No hay datos disponibles",emptyMessage:H,emptyImageSrc:ee=e.jsx(w,{mb:2,children:e.jsx("img",{src:xo,alt:"No data",style:{maxWidth:"150px",opacity:.6}})})}){const M=T.Children.toArray(a).filter(d=>T.isValidElement(d)&&d.type.displayName==="Column"),[ae,V]=T.useState(!1),[oe,_]=T.useState(""),[ce,B]=T.useState("info"),[k,N]=T.useState([]);T.useEffect(()=>{N([])},[o,t,r]),T.useEffect(()=>{P?.(k)},[k,P]);const O=(d,I)=>{I!=="clickaway"&&V(!1)},X=typeof f=="function"&&typeof t=="number",[de,me]=T.useState(1),[ye,fe]=T.useState(u),C=X?t:de,F=X?r:ye,G=X?o:o.slice((C-1)*F,C*F),Z=X?l:Math.ceil(o.length/F),pe=d=>{d<1||d>Z||(X?f?.(d):me(d))},qe=d=>{X?(h?.(d),f?.(1)):(fe(d),me(1))},ue=(()=>{const d=[],I=Z,m=C,c=Math.floor(x/2);let b=Math.max(1,m-c),L=Math.min(I,m+c);L-b+1<x&&(b===1?L=Math.min(I,b+x-1):L===I&&(b=Math.max(1,I-x+1)));for(let W=b;W<=L;W++)d.push(W);return d})(),Y=d=>{if(!g){console.warn("`rowIdentifier` prop is required for row selection.");return}if(d.target.checked){const I=[...k];G.forEach(m=>{const c=m[g];I.some(b=>b[g]===c)||I.push(m)}),N(I)}else{const I=k.filter(m=>!G.some(c=>c[g]===m[g]));N(I)}},be=(d,I)=>{if(!g){console.warn("`rowIdentifier` prop is required for row selection.");return}const m=I[g],c=k.findIndex(L=>L[g]===m);let b=[];c===-1?b=b.concat(k,I):c===0?b=b.concat(k.slice(1)):c===k.length-1?b=b.concat(k.slice(0,-1)):c>0&&(b=b.concat(k.slice(0,c),k.slice(c+1))),N(b)},Se=d=>g?k.some(I=>I[g]===d[g]):!1,ve=G.filter(Se).length,_e=G.length>0&&ve===G.length,Xe=ve>0&&ve<G.length;return e.jsxs(ha,{children:[e.jsxs(xa,{sx:{minWidth:650},"aria-label":"custom table",style:G.length===0?{display:"none"}:{},children:[e.jsx(ya,{sx:{backgroundColor:"#fff"},children:e.jsxs(ea,{children:[S&&e.jsxs(Te,{padding:"checkbox",sx:{width:"50px"},children:[" ",e.jsx(aa,{color:"primary",indeterminate:Xe,checked:_e,onChange:Y,inputProps:{"aria-label":"select all desserts"}})]}),M.map((d,I)=>e.jsx(Te,{sx:{fontSize:"12px",color:m=>m.palette.text.secondary,width:d.props.width||"auto",whiteSpace:"nowrap"},children:e.jsx(s,{sx:{fontSize:"12px"},children:d.props.name})},I))]})}),e.jsx(fa,{sx:{borderRadius:"10px",overflow:"hidden"},children:G.map((d,I)=>{const m=S&&Se(d);return e.jsxs(ea,{sx:{backgroundColor:"#F8F8F8","&:last-child td, &:last-child th":{border:0},"&:hover":{backgroundColor:c=>"#FFF"}},selected:m,children:[S&&e.jsxs(Te,{padding:"checkbox",sx:{width:"50px"},children:[" ",e.jsx(aa,{color:"primary",checked:m,onClick:c=>be(c,d),inputProps:{"aria-labelledby":`table-checkbox-${I}`}})]}),M.map((c,b)=>{const{field:L,children:W}=c.props;let K;return Array.isArray(L)?L.length===0?K={...d}:K=L.reduce((q,Q)=>(q[Q]=d[Q],q),{}):K={[L]:d[L]},e.jsx(Te,{sx:{fontSize:"14px",width:c.props.width||"auto",whiteSpace:"nowrap",padding:"12px 16px",borderBottom:"none"},children:W(K)},b)})]},I)})})]}),G.length===0&&e.jsxs(w,{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",p:4,children:[ee,e.jsx(s,{variant:"body2",color:"#878E9A",fontSize:"18px",fontWeight:"600",children:se||"No hay datos disponibles para mostrar."}),e.jsx(s,{variant:"body2",color:"#878E9A",fontSize:"14px",mt:1,children:H||"Intente ajustar sus filtros o agregar nuevos datos."})]}),(Z>0||y||R||S&&k.length>0)&&e.jsxs(w,{display:"flex",justifyContent:"space-between",alignItems:"center",p:2,children:[Z>0&&J&&e.jsx(Ta,{size:"small",value:F,onChange:d=>qe(Number(d.target.value)),children:[1,2,3,5,10,20,50,100].map(d=>e.jsxs(wa,{value:d,children:["Mostrar ",d]},d))}),Z>0&&e.jsxs(w,{display:"flex",alignItems:"center",gap:.5,sx:{flexGrow:1,justifyContent:"center"},children:[e.jsx(Ee,{onClick:()=>pe(1),disabled:C<=1,size:"small",color:"primary",children:e.jsx(po,{fontSize:"small"})}),e.jsx(Ee,{onClick:()=>pe(C-1),disabled:C<=1,size:"small",color:"primary",children:e.jsx(ua,{fontSize:"small"})}),ue.map(d=>e.jsx(ge,{onClick:()=>pe(d),variant:C===d?"contained":"text",size:"small",sx:{minWidth:"32px",height:"32px"},children:d},d)),e.jsx(Ee,{onClick:()=>pe(C+1),disabled:C>=Z,size:"small",color:"primary",children:e.jsx(ga,{fontSize:"small"})}),e.jsx(Ee,{onClick:()=>pe(Z),disabled:C>=Z,size:"small",color:"primary",children:e.jsx(uo,{fontSize:"small"})})]}),S&&k.length>0&&e.jsxs(s,{variant:"subtitle2",sx:{mr:2},children:[k.length," seleccionados"]}),(y||R)&&e.jsxs(w,{display:"flex",alignItems:"center",gap:1,children:[y&&e.jsx(ge,{variant:"text",color:"primary",onClick:()=>go({data:o,columns:M,fileName:E,exportColumns:v,setSnackbarOpen:V,setSnackbarMessage:_,setSnackbarSeverity:B}),size:"small",startIcon:e.jsx(ra,{}),children:j}),R&&e.jsx(ge,{variant:"text",color:"primary",onClick:()=>ho({data:o,columns:M,fileName:D,exportColumns:A,setSnackbarOpen:V,setSnackbarMessage:_,setSnackbarSeverity:B}),size:"small",startIcon:e.jsx(ra,{}),children:z})]})]}),e.jsx(Ia,{open:ae,autoHideDuration:3e3,onClose:O,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:e.jsx(yo,{onClose:O,severity:ce,sx:{width:"100%"},children:oe})})]})}U.__docgenInfo={description:"",methods:[],displayName:"Table",props:{data:{required:!0,tsType:{name:"Array",elements:[{name:"T"}],raw:"T[]"},description:""},children:{required:!0,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:""},currentPage:{required:!1,tsType:{name:"number"},description:""},pageSize:{required:!1,tsType:{name:"number"},description:""},totalPages:{required:!1,tsType:{name:"number"},description:""},previousPage:{required:!1,tsType:{name:"number"},description:""},nextPage:{required:!1,tsType:{name:"number"},description:""},pageSizeSelectorValue:{required:!1,tsType:{name:"number"},description:"",defaultValue:{value:"10",computed:!1}},onPageChange:{required:!1,tsType:{name:"signature",type:"function",raw:"(newPage: number) => void",signature:{arguments:[{type:{name:"number"},name:"newPage"}],return:{name:"void"}}},description:""},onPageSizeChange:{required:!1,tsType:{name:"signature",type:"function",raw:"(newSize: number) => void",signature:{arguments:[{type:{name:"number"},name:"newSize"}],return:{name:"void"}}},description:""},visiblePageNumbers:{required:!1,tsType:{name:"number"},description:"",defaultValue:{value:"5",computed:!1}},enableCSVExport:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1}},csvExportFileName:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'data.csv'",computed:!1}},csvExportButtonText:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'Exportar CSV'",computed:!1}},csvExportColumns:{required:!1,tsType:{name:"Array",elements:[{name:"string"}],raw:"string[]"},description:""},enableExcelExport:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1}},excelExportFileName:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'data.xlsx'",computed:!1}},excelExportButtonText:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'Exportar Excel'",computed:!1}},excelExportColumns:{required:!1,tsType:{name:"Array",elements:[{name:"string"}],raw:"string[]"},description:""},enableRowSelection:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1}},rowIdentifier:{required:!1,tsType:{name:"T"},description:""},onSelectionChange:{required:!1,tsType:{name:"signature",type:"function",raw:"(selectedItems: T[]) => void",signature:{arguments:[{type:{name:"Array",elements:[{name:"T"}],raw:"T[]"},name:"selectedItems"}],return:{name:"void"}}},description:""},showPageSizeSelector:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1}},emptyTitle:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'No hay datos disponibles'",computed:!1}},emptyMessage:{required:!1,tsType:{name:"string"},description:""},emptyImageSrc:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:"",defaultValue:{value:`<Box mb={2}>
40
+ <img src={EmptyImage} alt="No data" style={{ maxWidth: '150px', opacity: 0.6 }} />
41
+ </Box>`,computed:!1}}}};function i(o){return null}i.displayName="Column";const ne=[{id:1,nombre:"Juan Pérez",email:"juan@example.com",avatar:"https://placehold.co/50x50/F0F8FF/333333?text=JP",edad:25,activo:!0,rol:"admin",fechaRegistro:"2023-01-15",puntuacion:4.5},{id:2,nombre:"Ana García",email:"ana@example.com",avatar:"https://placehold.co/50x50/FFF0F5/333333?text=AG",edad:30,activo:!1,rol:"usuario",fechaRegistro:"2023-02-20",puntuacion:3.8},{id:3,nombre:"Carlos López",email:"carlos@example.com",avatar:"https://placehold.co/50x50/F5FFFA/333333?text=CL",edad:28,activo:!0,rol:"moderador",fechaRegistro:"2023-03-10",puntuacion:4.2},{id:4,nombre:"María Rodríguez",email:"maria@example.com",avatar:"https://placehold.co/50x50/F8F8FF/333333?text=MR",edad:35,activo:!0,rol:"usuario",fechaRegistro:"2023-04-05",puntuacion:4.9},{id:5,nombre:"Luis Martínez",email:"luis@example.com",avatar:"https://placehold.co/50x50/E6E6FA/333333?text=LM",edad:22,activo:!1,rol:"usuario",fechaRegistro:"2023-05-12",puntuacion:3.2}],ca=[{id:1,nombre:"iPhone 15",precio:999,categoria:"Electrónicos",stock:15,imagen:"https://placehold.co/60x60/ADD8E6/000000?text=I15",enOferta:!0,rating:4.8},{id:2,nombre:"Samsung Galaxy S24",precio:899,categoria:"Electrónicos",stock:8,imagen:"https://placehold.co/60x60/90EE90/000000?text=S24",enOferta:!1,rating:4.6},{id:3,nombre:"MacBook Pro",precio:1999,categoria:"Computadoras",stock:3,imagen:"https://placehold.co/60x60/DDA0DD/000000?text=MBP",enOferta:!0,rating:4.9},{id:4,nombre:"Dell XPS 13",precio:1299,categoria:"Computadoras",stock:0,imagen:"https://placehold.co/60x60/FFB6C1/000000?text=DX13",enOferta:!1,rating:4.4}],da=[{id:1,nombre:"Roberto",apellido:"Silva",departamento:"Desarrollo",salario:75e3,fechaIngreso:"2022-01-15",activo:!0,avatar:"https://placehold.co/50x50/B0E0E6/000000?text=RS"},{id:2,nombre:"Sofía",apellido:"Herrera",departamento:"Diseño",salario:65e3,fechaIngreso:"2022-03-20",activo:!0,avatar:"https://placehold.co/50x50/F5DEB3/000000?text=SH"},{id:3,nombre:"Diego",apellido:"Morales",departamento:"Marketing",salario:55e3,fechaIngreso:"2021-11-10",activo:!1,avatar:"https://placehold.co/50x50/D8BFD8/000000?text=DM"}],fo=`
42
+ <Table data={data} visiblePageNumbers={5} pageSizeSelectorValue={1} pageSize={1}>
43
+ <Column name="Nombre" field="nombre">
44
+ {({ nombre }) => <Typography variant="body2">{nombre}</Typography>}
45
+ </Column>
46
+ <Column name="Email" field="email">
47
+ {({ email }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
48
+ </Column>
49
+ <Column name="Edad" field="edad">
50
+ {({ edad }) => <Typography variant="body2">{edad} años</Typography>}
51
+ </Column>
52
+ </Table>
53
+ `,bo=`
54
+ <Table data={data}>
55
+ <Column name="Usuario" field={['avatar', 'nombre']}>
56
+ {({ avatar, nombre }) => (
57
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
58
+ <Avatar src={avatar} alt={nombre} sx={{ width: 40, height: 40 }} />
59
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
60
+ </Box>
61
+ )}
62
+ </Column>
63
+ <Column name="Estado" field="activo">
64
+ {({ activo }) => (
65
+ <Chip
66
+ label={activo ? 'Activo' : 'Inactivo'}
67
+ color={activo ? 'success' : 'default'}
68
+ size="small"
69
+ />
70
+ )}
71
+ </Column>
72
+ <Column name="Rol" field="rol">
73
+ {({ rol }) => (
74
+ <Chip
75
+ label={rol!.charAt(0).toUpperCase() + rol!.slice(1)}
76
+ color={rol === 'admin' ? 'primary' : rol === 'moderador' ? 'secondary' : 'default'}
77
+ variant="outlined"
78
+ size="small"
79
+ />
80
+ )}
81
+ </Column>
82
+ <Column name="Puntuación" field="puntuacion">
83
+ {({ puntuacion }) => (
84
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
85
+ <Rating value={puntuacion} max={5} precision={0.1} size="small" readOnly />
86
+ <Typography variant="caption" color="text.secondary">
87
+ {puntuacion}
88
+ </Typography>
89
+ </Box>
90
+ )}
91
+ </Column>
92
+ </Table>
93
+ `,vo=`
94
+ const [currentPage, setCurrentPage] = useState(1);
95
+ const [pageSize, setPageSize] = useState(2);
96
+ const totalItems = usuarios.length;
97
+ const totalPages = Math.ceil(totalItems / pageSize);
98
+
99
+ const startIndex = (currentPage - 1) * pageSize;
100
+ const currentData = usuarios.slice(startIndex, startIndex + pageSize);
101
+
102
+ const previousPageNum = currentPage > 1 ? currentPage - 1 : 1;
103
+ const nextPageNum = currentPage < totalPages ? currentPage + 1 : totalPages;
104
+
105
+ return (
106
+ <Table
107
+ data={currentData} // Pasa solo los datos de la página actual
108
+ currentPage={currentPage}
109
+ pageSize={pageSize}
110
+ totalPages={totalPages}
111
+ previousPage={previousPageNum}
112
+ nextPage={nextPageNum}
113
+ onPageChange={setCurrentPage}
114
+ onPageSizeChange={setPageSize}
115
+ >
116
+ <Column name="Nombre" field="nombre">
117
+ {({ nombre }) => <Typography variant="body2" fontWeight="medium">{nombre}</Typography>}
118
+ </Column>
119
+ <Column name="Email" field="email">
120
+ {({ email }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
121
+ </Column>
122
+ <Column name="Estado" field="activo">
123
+ {({ activo }) => (
124
+ <Chip
125
+ label={activo ? 'Activo' : 'Inactivo'}
126
+ color={activo ? 'success' : 'default'}
127
+ size="small"
128
+ />
129
+ )}
130
+ </Column>
131
+ <Column name="Fecha de Registro" field="fechaRegistro">
132
+ {({ fechaRegistro }) => (
133
+ <Typography variant="body2">
134
+ {new Date(fechaRegistro!).toLocaleDateString('es-ES')}
135
+ </Typography>
136
+ )}
137
+ </Column>
138
+ </Table>
139
+ );
140
+ `,Co=`
141
+ <Table data={data} pageSizeSelectorValue={pageSizeSelectorValue}>
142
+ <Column name="Producto" field={['imagen', 'nombre']}>
143
+ {({ imagen, nombre }) => (
144
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
145
+ <Box
146
+ component="img"
147
+ src={imagen}
148
+ alt={nombre}
149
+ sx={{ width: 50, height: 50, borderRadius: 1, objectFit: 'cover' }}
150
+ />
151
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
152
+ </Box>
153
+ )}
154
+ </Column>
155
+ <Column name="Precio" field={['precio', 'enOferta']}>
156
+ {({ precio, enOferta }) => (
157
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
158
+ <Typography
159
+ variant="body2"
160
+ color={enOferta ? 'error.main' : 'text.primary'}
161
+ fontWeight={enOferta ? 'bold' : 'normal'}
162
+ >
163
+ \${precio!.toLocaleString()}
164
+ </Typography>
165
+ {enOferta && (
166
+ <Chip label="OFERTA" color="error" size="small" />
167
+ )}
168
+ </Box>
169
+ )}
170
+ </Column>
171
+ <Column name="Stock" field="stock">
172
+ {({ stock }) => (
173
+ <Chip
174
+ label={stock! > 0 ? \`\${stock} unidades\` : 'Sin stock'}
175
+ color={stock! > 5 ? 'success' : stock! > 0 ? 'warning' : 'error'}
176
+ size="small"
177
+ />
178
+ )}
179
+ </Column>
180
+ <Column name="Categoría" field="categoria">
181
+ {({ categoria }) => (
182
+ <Typography variant="body2">{categoria}</Typography>
183
+ )}
184
+ </Column>
185
+ <Column name="Rating" field="rating">
186
+ {({ rating }) => (
187
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
188
+ <Rating value={rating} max={5} precision={0.1} size="small" readOnly />
189
+ <Typography variant="caption">({rating})</Typography>
190
+ </Box>
191
+ )}
192
+ </Column>
193
+ </Table>
194
+ `,So=`
195
+ <Table data={data} pageSizeSelectorValue={pageSizeSelectorValue}>
196
+ <Column name="Empleado" field={['avatar', 'nombre', 'apellido']}>
197
+ {({ avatar, nombre, apellido }) => (
198
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
199
+ <Avatar src={avatar} sx={{ width: 40, height: 40 }}>
200
+ {avatar ? '' : \`\${nombre!.charAt(0)}\${apellido!.charAt(0)}\`}
201
+ </Avatar>
202
+ <Typography variant="body2" fontWeight="medium">
203
+ {nombre} {apellido}
204
+ </Typography>
205
+ </Box>
206
+ )}
207
+ </Column>
208
+ <Column name="Departamento" field="departamento">
209
+ {({ departamento }) => (
210
+ <Chip
211
+ label={departamento}
212
+ color="info"
213
+ variant="filled"
214
+ size="small"
215
+ />
216
+ )}
217
+ </Column>
218
+ <Column name="Salario" field="salario">
219
+ {({ salario }) => (
220
+ <Typography variant="body2" fontWeight="bold" color="success.dark">
221
+ \${salario!.toLocaleString('es-ES')}
222
+ </Typography>
223
+ )}
224
+ </Column>
225
+ <Column name="Estado" field={['activo', 'fechaIngreso']}>
226
+ {({ activo, fechaIngreso }) => (
227
+ <Box>
228
+ <Chip
229
+ label={activo ? 'Contratado' : 'Inactivo'}
230
+ color={activo ? 'success' : 'error'}
231
+ size="small"
232
+ />
233
+ <Typography variant="caption" display="block" color="text.secondary" sx={{ mt: 0.5 }}>
234
+ Desde: {new Date(fechaIngreso!).toLocaleDateString('es-ES')}
235
+ </Typography>
236
+ </Box>
237
+ )}
238
+ </Column>
239
+ </Table>
240
+ `,To=`
241
+ <Table data={data}>
242
+ <Column name="Nombre" field="nombre">
243
+ {({ nombre }) => <Typography variant="body2">{nombre}</Typography>}
244
+ </Column>
245
+ <Column name="Email" field="email">
246
+ {({ email }) => <Typography variant="body2">{email}</Typography>}
247
+ </Column>
248
+ <Column name="Estado" field="activo">
249
+ {({ activo }) => <Chip label={activo ? 'Activo' : 'Inactivo'} size="small" />}
250
+ </Column>
251
+ </Table>
252
+ `,Eo=`
253
+ <Table data={data}>
254
+ <Column name="Usuario" field={['avatar', 'nombre', 'email']}>
255
+ {({ avatar, nombre, email }) => (
256
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
257
+ <Avatar src={avatar} alt={nombre} />
258
+ <Box>
259
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
260
+ <Typography variant="caption" color="text.secondary">{email}</Typography>
261
+ </Box>
262
+ </Box>
263
+ )}
264
+ </Column>
265
+ <Column<Usuario> name="Información" field={[]}>
266
+ {(user) => (
267
+ <>
268
+ <Typography variant="body2">{user.edad} años</Typography>
269
+ <Box sx={{ display: 'flex', gap: 1, mt: 0.5 }}>
270
+ <Chip label={user.rol} size="small" color="primary" variant="outlined" />
271
+ <Chip
272
+ label={user.activo ? 'Activo' : 'Inactivo'}
273
+ size="small"
274
+ color={user.activo ? 'success' : 'default'}
275
+ />
276
+ </Box>
277
+ </>
278
+ )}
279
+ </Column>
280
+ </Table>
281
+ `,jo=`
282
+ <Table data={data}>
283
+ <Column name="Producto" field={['imagen', 'nombre']}>
284
+ {({ imagen, nombre }) => (
285
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
286
+ <Box
287
+ component="img"
288
+ src={imagen}
289
+ alt={nombre}
290
+ sx={{ width: 50, height: 50, borderRadius: 1, objectFit: 'cover' }}
291
+ />
292
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
293
+ </Box>
294
+ )}
295
+ </Column>
296
+ <Column name="Precio" field={['precio', 'enOferta']}>
297
+ {({ precio, enOferta }) => (
298
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
299
+ <Typography
300
+ variant="body2"
301
+ color={enOferta ? 'error.main' : 'text.primary'}
302
+ fontWeight={enOferta ? 'bold' : 'normal'}
303
+ >
304
+ \${precio!.toLocaleString()}
305
+ </Typography>
306
+ {enOferta && (
307
+ <Chip label="OFERTA" color="error" size="small" />
308
+ )}
309
+ </Box>
310
+ )}
311
+ </Column>
312
+ <Column name="Stock" field="stock">
313
+ {({ stock }) => (
314
+ <Chip
315
+ label={stock! > 0 ? \`\${stock} unidades\` : 'Sin stock'}
316
+ color={stock!> 5 ? 'success' : stock! > 0 ? 'warning' : 'error'}
317
+ size="small"
318
+ sx={{ backgroundColor: stock === 0 ? 'rgba(255, 0, 0, 0.1)' : undefined }}
319
+ />
320
+ )}
321
+ </Column>
322
+ <Column name="Rating" field="rating">
323
+ {({ rating }) => (
324
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
325
+ <Rating value={rating} max={5} precision={0.1} size="small" readOnly />
326
+ <Typography variant="caption">({rating})</Typography>
327
+ </Box>
328
+ )}
329
+ </Column>
330
+ </Table>
331
+ `,wo=`
332
+ <Table data={data}>
333
+ <Column name="Empleado" field={['nombre', 'apellido', 'avatar']}>
334
+ {({ nombre, apellido, avatar }) => (
335
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
336
+ <Avatar src={avatar} sx={{ width: 40, height: 40 }}>
337
+ {avatar ? '' : \`\${nombre!.charAt(0)}\${apellido!.charAt(0)}\`}
338
+ </Avatar>
339
+ <Typography variant="body2" fontWeight="medium">
340
+ {nombre} {apellido}
341
+ </Typography>
342
+ </Box>
343
+ )}
344
+ </Column>
345
+ <Column name="Departamento" field="departamento">
346
+ {({ departamento }) => (
347
+ <Chip
348
+ label={departamento}
349
+ color="info"
350
+ variant="filled"
351
+ size="small"
352
+ />
353
+ )}
354
+ </Column>
355
+ <Column name="Salario" field="salario">
356
+ {({ salario }) => (
357
+ <Typography variant="body2" fontWeight="bold" color="success.dark">
358
+ \${salario!.toLocaleString('es-ES')}
359
+ </Typography>
360
+ )}
361
+ </Column>
362
+ <Column name="Estado de Contratación" field={['activo', 'fechaIngreso']}>
363
+ {({ activo, fechaIngreso }) => (
364
+ <Box>
365
+ <Chip
366
+ label={activo ? 'Contratado' : 'Inactivo'}
367
+ color={activo ? 'success' : 'error'}
368
+ size="small"
369
+ />
370
+ <Typography variant="caption" display="block" color="text.secondary" sx={{ mt: 0.5 }}>
371
+ Desde: {new Date(fechaIngreso!).toLocaleDateString('es-ES')}
372
+ </Typography>
373
+ </Box>
374
+ )}
375
+ </Column>
376
+ </Table>
377
+ `,Io=`
378
+ <Table data={data}>
379
+ <Column name="Nombre" field="nombre">
380
+ {({ nombre }) => <Typography variant="body2">{nombre}</Typography>}
381
+ </Column>
382
+ <Column name="Email" field="email">
383
+ {({ email }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
384
+ </Column>
385
+ <Column name="Acciones" field="id">
386
+ {({ id }) => (
387
+ <Button
388
+ variant="contained"
389
+ color="primary"
390
+ size="small"
391
+ onClick={() => alert('ID del usuario: '+id )} // Log al hacer clic
392
+ >
393
+ Ver Detalles ({id})
394
+ </Button>
395
+ )}
396
+ </Column>
397
+ </Table>
398
+ `,ko=`
399
+ <Table<Usuario>
400
+ data={usuarios}
401
+ enableExport={enableExport}
402
+ exportFileName={exportFileName}
403
+ exportButtonText={exportButtonText}
404
+ exportColumns={exportColumns}
405
+ >
406
+ <Column<Usuario> name="ID" field="id">
407
+ {(row) => <Typography>{row.id}</Typography>}
408
+ </Column>
409
+ <Column<Usuario> name="Nombre" field="nombre">
410
+ {(row) => <Typography>{row.nombre}</Typography>}
411
+ </Column>
412
+ <Column<Usuario> name="Email" field="email">
413
+ {({ email }) => <Link href={\`mailto:\${email}\`}>{email}</Link>}
414
+ </Column>
415
+ <Column<Usuario> name="Edad" field="edad">
416
+ {(row) => <Typography>{row.edad}</Typography>}
417
+ </Column>
418
+ <Column<Usuario> name="Rol" field="rol">
419
+ {({ rol }) => <Chip label={rol} size="small" />}
420
+ </Column>
421
+ <Column<Usuario> name="Acciones" field="id">
422
+ {({ id }) => (
423
+ <Button variant="outlined" size="small" onClick={() => alert(\`Ver detalles de usuario \${id}\`)}>
424
+ Ver
425
+ </Button>
426
+ )}
427
+ </Column>
428
+ </Table>
429
+ `,Po=`
430
+
431
+ const [selectedItems, setSelectedItems] = useState<UserData[]>([]);
432
+
433
+ const handleSelectionChange = (items: UserData[]) => {
434
+ setSelectedItems(items);
435
+ args.onSelectionChange?.(items);
436
+ };
437
+
438
+ const handleBulkDelete = () => {
439
+ if (selectedItems.length > 0) {
440
+ alert(\`Eliminando \${selectedItems.length} usuarios: \${selectedItems.map(item => item.nombre).join(', ')}\`);
441
+ setSelectedItems([]);
442
+ } else {
443
+ alert('No hay elementos seleccionados para eliminar.');
444
+ }
445
+ };
446
+
447
+ const handleBulkUpdateCity = () => {
448
+ if (selectedItems.length > 0) {
449
+ const newCity = prompt('Ingresa la nueva ciudad para los seleccionados:');
450
+ if (newCity) {
451
+ alert(\`Actualizando ciudad de \${selectedItems.length} usuarios a \${newCity}\`);
452
+ setSelectedItems([]);
453
+ }
454
+ } else {
455
+ alert('No hay elementos seleccionados para actualizar.');
456
+ }
457
+ };
458
+
459
+ return (
460
+ <Box>
461
+ <Typography variant="h6" gutterBottom>
462
+ Tabla con Selección de Filas
463
+ </Typography>
464
+ {selectedItems.length > 0 && (
465
+ <Box sx={{ mb: 2, display: 'flex', gap: 1 }}>
466
+ <Button variant="contained" color="error" onClick={handleBulkDelete}>
467
+ Eliminar ({selectedItems.length})
468
+ </Button>
469
+ <Button variant="contained" color="primary" onClick={handleBulkUpdateCity}>
470
+ Actualizar Ciudad ({selectedItems.length})
471
+ </Button>
472
+ <Typography variant="body2" sx={{ alignSelf: 'center', ml: 2 }}>
473
+ Elementos seleccionados: {selectedItems.length}
474
+ </Typography>
475
+ </Box>
476
+ )}
477
+ <Table<UserData>
478
+ {...args}
479
+ data={sampleData} // Usamos sampleData para esta historia
480
+ enableRowSelection={true}
481
+ rowIdentifier="id" // Es crucial que coincida con una clave única en tus datos
482
+ onSelectionChange={handleSelectionChange}
483
+ pageSizeSelectorValue={5}
484
+ >
485
+ <Column<UserData>
486
+ name="ID"
487
+ field="id"
488
+ children={(row) => <Typography>{row.id}</Typography>}
489
+ />
490
+ <Column<UserData>
491
+ name="Nombre"
492
+ field="name"
493
+ children={(row) => <Typography>{row.name}</Typography>}
494
+ />
495
+ <Column<UserData>
496
+ name="Email"
497
+ field="email"
498
+ children={(row) => <Typography>{row.email}</Typography>}
499
+ />
500
+ <Column<UserData>
501
+ name="Ciudad"
502
+ field="city"
503
+ children={(row) => <Typography>{row.city}</Typography>}
504
+ />
505
+ </Table>
506
+ </Box>
507
+ );
508
+
509
+ `,zo=`
510
+ const [selectedItems, setSelectedItems] = useState<UserData[]>([]);
511
+
512
+ const handleSelectionChange = (items: UserData[]) => {
513
+ setSelectedItems(items);
514
+ args.onSelectionChange?.(items);
515
+ };
516
+
517
+ return (
518
+ <Box>
519
+ <Typography variant="h6" gutterBottom>
520
+ Tabla con Exportación y Selección de Filas
521
+ </Typography>
522
+ {selectedItems.length > 0 && (
523
+ <Box sx={{ mb: 2 }}>
524
+ <Typography variant="body2">
525
+ Elementos seleccionados: {selectedItems.length}
526
+ </Typography>
527
+ </Box>
528
+ )}
529
+ <Table<UserData>
530
+ {...args}
531
+ data={sampleData} // Usamos sampleData para esta historia
532
+ enableRowSelection={true}
533
+ rowIdentifier="id"
534
+ onSelectionChange={handleSelectionChange}
535
+ pageSizeSelectorValue={5}
536
+ enableCSVExport={true}
537
+ csvExportFileName="users_data_with_selection"
538
+ enableExcelExport={true}
539
+ excelExportFileName="users_data_with_selection"
540
+ >
541
+ <Column<UserData>
542
+ name="ID"
543
+ field="id"
544
+ children={(row) => <Typography>{row.id}</Typography>}
545
+ />
546
+ <Column<UserData>
547
+ name="Nombre"
548
+ field="name"
549
+ children={(row) => <Typography>{row.name}</Typography>}
550
+ />
551
+ <Column<UserData>
552
+ name="Email"
553
+ field="email"
554
+ children={(row) => <Typography>{row.email}</Typography>}
555
+ />
556
+ <Column<UserData>
557
+ name="Ciudad"
558
+ field="city"
559
+ children={(row) => <Typography>{row.city}</Typography>}
560
+ />
561
+ </Table>
562
+ </Box>
563
+ );
564
+ `,ma=[{id:1,name:"Alice Smith",age:28,city:"New York",email:"alice@example.com"},{id:2,name:"Bob Johnson",age:34,city:"London",email:"bob@example.com"},{id:3,name:"Charlie Brown",age:22,city:"Paris",email:"charlie@example.com"},{id:4,name:"Diana Prince",age:40,city:"Themyscira",email:"diana@example.com"},{id:5,name:"Eve Adams",age:19,city:"Berlin",email:"eve@example.com"},{id:6,name:"Frank White",age:55,city:"Tokyo",email:"frank@example.com"},{id:7,name:"Grace Lee",age:31,city:"Seoul",email:"grace@example.com"},{id:8,name:"Henry Ford",age:60,city:"Detroit",email:"henry@example.com"},{id:9,name:"Ivy Green",age:25,city:"Rome",email:"ivy@example.com"},{id:10,name:"Jack Black",age:45,city:"Los Angeles",email:"jack@example.com"},{id:11,name:"Karen Millen",age:33,city:"Madrid",email:"karen@example.com"},{id:12,name:"Leo Messi",age:37,city:"Miami",email:"leo@example.com"}],Et={title:"Components/Table",component:U,parameters:{layout:"padded",docs:{description:{component:"Componente de tabla flexible y tipado que permite definir columnas de forma declarativa con paginación interna o externa."}}},tags:["autodocs"],argTypes:{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."},children:{control:!1,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)."},currentPage:{control:"number",description:"Número de página actual (para paginación controlada).",if:{arg:"onPageChange",exists:!0}},pageSize:{control:"number",description:"Número de elementos por página (para paginación controlada).",if:{arg:"onPageChange",exists:!0}},totalPages:{control:"number",description:"Número total de páginas (para paginación controlada).",if:{arg:"onPageChange",exists:!0}},previousPage:{control:"number",description:"Página anterior (para paginación controlada).",if:{arg:"onPageChange",exists:!0}},nextPage:{control:"number",description:"Página siguiente (para paginación controlada).",if:{arg:"onPageChange",exists:!0}},pageSizeSelectorValue:{control:"number",description:"Valor por defecto para el selector de tamaño de página cuando la paginación es interna."},onPageChange:{action:"page changed",description:"Callback para manejar el cambio de página (activa paginación controlada)."},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:!0}},enableCSVExport:{control:"boolean",description:"Habilita o deshabilita la funcionalidad de exportación a CSV.",defaultValue:!1},csvExportFileName:{control:"text",description:"Nombre del archivo CSV al exportar.",defaultValue:"data.csv",if:{arg:"enableCSVExport",eq:!0}},enableExcelExport:{control:"boolean",description:"Habilita o deshabilita la funcionalidad de exportación a Excel.",defaultValue:!1},excelExportFileName:{control:"text",description:"Nombre del archivo Excel al exportar.",defaultValue:"data.xlsx",if:{arg:"enableExcelExport",eq:!0}},csvExportButtonText:{control:"text",description:"Texto del botón de exportar.",defaultValue:"Exportar CSV",if:{arg:"enableCSVExport",eq:!0}},excelExportButtonText:{control:"text",description:"Texto del botón de exportar.",defaultValue:"Exportar Excel",if:{arg:"enableExcelExport",eq:!0}},csvExportColumns:{control:"text",description:"Array de nombres de columnas a exportar. Si no se especifica, se exportan todas.",if:{arg:"enableCSVExport",eq:!0}},enableRowSelection:{control:"boolean",description:"Habilita o deshabilita la selección de filas con checkboxes.",defaultValue:!1},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:!0}},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:!0}}}},je={args:{data:ne},render:({data:o})=>e.jsxs(U,{data:o,pageSizeSelectorValue:1,pageSize:1,children:[e.jsx(i,{name:"Nombre",field:"nombre",children:({nombre:a})=>e.jsx(s,{children:a})}),e.jsx(i,{name:"Email",field:"email",children:({email:a})=>e.jsx(s,{color:"text.secondary",children:a})}),e.jsx(i,{width:"10%",name:"Edad",field:"edad",children:({edad:a})=>e.jsxs(s,{children:[a," años"]})})]}),parameters:{docs:{description:{story:"Tabla básica con datos simples y columnas de texto. La paginación es interna por defecto."},source:{code:fo.trim()}}}},we={args:{data:ne.slice(0,4)},render:({data:o})=>e.jsxs(U,{data:o,children:[e.jsx(i,{name:"Usuario",field:["avatar","nombre"],children:({avatar:a,nombre:t})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:2},children:[e.jsx(We,{src:a,alt:t,sx:{width:40,height:40}}),e.jsx(s,{variant:"body2",fontWeight:"medium",children:t})]})}),e.jsx(i,{name:"Estado",field:"activo",children:({activo:a})=>e.jsx($,{label:a?"Activo":"Inactivo",color:a?"success":"default",size:"small"})}),e.jsx(i,{name:"Rol",field:"rol",children:({rol:a})=>e.jsx($,{label:a.charAt(0).toUpperCase()+a.slice(1),color:a==="admin"?"primary":a==="moderador"?"secondary":"default",variant:"outlined",size:"small"})}),e.jsx(i,{name:"Puntuación",field:"puntuacion",children:({puntuacion:a})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(Qe,{value:a,max:5,precision:.1,size:"small",readOnly:!0}),e.jsx(s,{variant:"caption",color:"text.secondary",children:a})]})})]}),parameters:{docs:{description:{story:"Tabla con componentes complejos como avatars, chips y ratings. La paginación es interna por defecto."},source:{code:bo.trim()}}}},Ie={render:()=>{const[o,a]=T.useState(1),[t,r]=T.useState(2),l=ne.length,p=Math.ceil(l/t),n=(o-1)*t,u=ne.slice(n,n+t),f=o>1?o-1:1,h=o<p?o+1:p;return e.jsxs(U,{data:u,currentPage:o,pageSize:t,totalPages:p,previousPage:f,nextPage:h,onPageChange:a,onPageSizeChange:r,children:[e.jsx(i,{name:"Nombre",field:"nombre",children:({nombre:x})=>e.jsx(s,{variant:"body2",fontWeight:"medium",children:x})}),e.jsx(i,{name:"Email",field:"email",children:({email:x})=>e.jsx(s,{variant:"body2",color:"text.secondary",children:x})}),e.jsx(i,{name:"Estado",field:"activo",children:({activo:x})=>e.jsx($,{label:x?"Activo":"Inactivo",color:x?"success":"default",size:"small"})}),e.jsx(i,{name:"Fecha de Registro",field:"fechaRegistro",children:({fechaRegistro:x})=>e.jsx(s,{variant:"body2",children:new Date(x).toLocaleDateString("es-ES")})})]})},parameters:{docs:{description:{story:"Tabla con paginación controlada externamente. El componente `Table` no gestiona el estado de la paginación, solo la UI."},source:{code:vo.trim()}}}},ke={args:{data:ca,pageSizeSelectorValue:1},render:({data:o,pageSizeSelectorValue:a})=>e.jsxs(U,{data:o,pageSizeSelectorValue:a,children:[e.jsx(i,{name:"Producto",field:["imagen","nombre"],children:({imagen:t,nombre:r})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:2},children:[e.jsx(w,{component:"img",src:t,alt:r,sx:{width:50,height:50,borderRadius:1,objectFit:"cover"}}),e.jsx(s,{variant:"body2",fontWeight:"medium",children:r})]})}),e.jsx(i,{name:"Precio",field:["precio","enOferta"],children:({precio:t,enOferta:r})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsxs(s,{variant:"body2",color:r?"error.main":"text.primary",fontWeight:r?"bold":"normal",children:["$",t.toLocaleString()]}),r&&e.jsx($,{label:"OFERTA",color:"error",size:"small"})]})}),e.jsx(i,{name:"Stock",field:"stock",children:({stock:t})=>e.jsx($,{label:t>0?`${t} unidades`:"Sin stock",color:t>5?"success":t>0?"warning":"error",size:"small"})}),e.jsx(i,{name:"Categoría",field:"categoria",children:({categoria:t})=>e.jsx(s,{variant:"body2",children:t})}),e.jsx(i,{name:"Rating",field:"rating",children:({rating:t})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(Qe,{value:t,max:5,precision:.1,size:"small",readOnly:!0}),e.jsxs(s,{variant:"caption",children:["(",t,")"]})]})})]}),parameters:{docs:{description:{story:"Tabla de productos con imágenes, precios, stock y calificaciones. Paginación interna."},source:{code:Co.trim()}}}},Pe={args:{data:da,pageSizeSelectorValue:1},render:({data:o,pageSizeSelectorValue:a})=>e.jsxs(U,{data:o,pageSizeSelectorValue:a,children:[e.jsx(i,{name:"Empleado",field:["avatar","nombre","apellido"],children:({avatar:t,nombre:r,apellido:l})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:2},children:[e.jsx(We,{src:t,sx:{width:40,height:40},children:t?"":`${r.charAt(0)}${l.charAt(0)}`}),e.jsxs(s,{variant:"body2",fontWeight:"medium",children:[r," ",l]})]})}),e.jsx(i,{name:"Departamento",field:"departamento",children:({departamento:t})=>e.jsx($,{label:t,color:"info",variant:"filled",size:"small"})}),e.jsx(i,{name:"Salario",field:"salario",children:({salario:t})=>e.jsxs(s,{variant:"body2",fontWeight:"bold",color:"success.dark",children:["$",t.toLocaleString("es-ES")]})}),e.jsx(i,{name:"Estado",field:["activo","fechaIngreso"],children:({activo:t,fechaIngreso:r})=>e.jsxs(w,{children:[e.jsx($,{label:t?"Contratado":"Inactivo",color:t?"success":"error",size:"small"}),e.jsxs(s,{variant:"caption",display:"block",color:"text.secondary",sx:{mt:.5},children:["Desde: ",new Date(r).toLocaleDateString("es-ES")]})]})})]}),parameters:{docs:{description:{story:"Tabla de empleados con múltiples campos combinados en una sola columna. Paginación interna."},source:{code:So.trim()}}}},ze={args:{data:[]},render:({data:o})=>e.jsxs(U,{data:o,emptyTitle:"No se encontraron registros",emptyMessage:"Intente ajustar sus filtros o agregar nuevos datos.",children:[e.jsx(i,{name:"Nombre",field:"nombre",children:({nombre:a})=>e.jsx(s,{variant:"body2",children:a})}),e.jsx(i,{name:"Email",field:"email",children:({email:a})=>e.jsx(s,{variant:"body2",children:a})}),e.jsx(i,{name:"Estado",field:"activo",children:({activo:a})=>e.jsx($,{label:a?"Activo":"Inactivo",size:"small"})})]}),parameters:{docs:{description:{story:"Tabla sin datos para mostrar el estado vacío y el mensaje correspondiente."},source:{code:To.trim()}}}},Be={args:{data:[ne[0]]},render:({data:o})=>e.jsxs(U,{data:o,children:[e.jsx(i,{name:"Usuario",field:["avatar","nombre","email"],children:({avatar:a,nombre:t,email:r})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:2},children:[e.jsx(We,{src:a,alt:t}),e.jsxs(w,{children:[e.jsx(s,{variant:"body2",fontWeight:"medium",children:t}),e.jsx(s,{variant:"caption",color:"text.secondary",children:r})]})]})}),e.jsx(i,{name:"Información",field:[],children:a=>e.jsxs(e.Fragment,{children:[e.jsxs(s,{variant:"body2",children:[a.edad," años"]}),e.jsxs(w,{sx:{display:"flex",gap:1,mt:.5},children:[e.jsx($,{label:a.rol,size:"small",color:"primary",variant:"outlined"}),e.jsx($,{label:a.activo?"Activo":"Inactivo",size:"small",color:a.activo?"success":"default"})]})]})})]}),parameters:{docs:{description:{story:"Tabla con una sola fila de datos."},source:{code:Eo.trim()}}}},Re={args:{data:ca},render:({data:o})=>e.jsxs(U,{data:o,children:[e.jsx(i,{name:"Producto",field:["imagen","nombre"],children:({imagen:a,nombre:t})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:2},children:[e.jsx(w,{component:"img",src:a,alt:t,sx:{width:50,height:50,borderRadius:1,objectFit:"cover"}}),e.jsx(s,{variant:"body2",fontWeight:"medium",children:t})]})}),e.jsx(i,{name:"Precio",field:["precio","enOferta"],children:({precio:a,enOferta:t})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsxs(s,{variant:"body2",color:t?"error.main":"text.primary",fontWeight:t?"bold":"normal",children:["$",a.toLocaleString()]}),t&&e.jsx($,{label:"OFERTA",color:"error",size:"small"})]})}),e.jsx(i,{name:"Stock",field:"stock",children:({stock:a})=>e.jsx($,{label:a>0?`${a} unidades`:"Sin stock",color:a>5?"success":a>0?"warning":"error",size:"small",sx:{backgroundColor:a===0?"rgba(255, 0, 0, 0.1)":void 0}})}),e.jsx(i,{name:"Rating",field:"rating",children:({rating:a})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(Qe,{value:a,max:5,precision:.1,size:"small",readOnly:!0}),e.jsxs(s,{variant:"caption",children:["(",a,")"]})]})})]}),parameters:{docs:{description:{story:"Muestra la tabla de productos resaltando visualmente los productos sin stock. Paginación interna."},source:{code:jo.trim()}}}},De={args:{data:da},render:({data:o})=>e.jsxs(U,{data:o,children:[e.jsx(i,{name:"Empleado",field:["nombre","apellido","avatar"],children:({nombre:a,apellido:t,avatar:r})=>e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:2},children:[e.jsx(We,{src:r,sx:{width:40,height:40},children:r?"":`${a.charAt(0)}${t.charAt(0)}`}),e.jsxs(s,{variant:"body2",fontWeight:"medium",children:[a," ",t]})]})}),e.jsx(i,{name:"Departamento",field:"departamento",children:({departamento:a})=>e.jsx($,{label:a,color:"info",variant:"filled",size:"small"})}),e.jsx(i,{name:"Salario",field:"salario",children:({salario:a})=>e.jsxs(s,{variant:"body2",fontWeight:"bold",color:"success.dark",children:["$",a.toLocaleString("es-ES")]})}),e.jsx(i,{name:"Estado de Contratación",field:["activo","fechaIngreso"],children:({activo:a,fechaIngreso:t})=>e.jsxs(w,{children:[e.jsx($,{label:a?"Contratado":"Inactivo",color:a?"success":"error",size:"small"}),e.jsxs(s,{variant:"caption",display:"block",color:"text.secondary",sx:{mt:.5},children:["Desde: ",new Date(t).toLocaleDateString("es-ES")]})]})})]}),parameters:{docs:{description:{story:"Muestra una tabla de empleados con un resumen detallado de su estado de contratación y fecha de ingreso. Paginación interna."},source:{code:wo.trim()}}}},Fe={args:{data:ne.slice(0,3)},render:({data:o})=>e.jsxs(U,{data:o,children:[e.jsx(i,{name:"Nombre",field:"nombre",children:({nombre:a})=>e.jsx(s,{variant:"body2",children:a})}),e.jsx(i,{name:"Email",field:"email",children:({email:a})=>e.jsx(s,{variant:"body2",color:"text.secondary",children:a})}),e.jsx(i,{name:"Acciones",field:"id",children:({id:a})=>e.jsxs(ge,{variant:"contained",color:"primary",size:"small",onClick:()=>alert("ID del usuario: "+a),children:["Ver Detalles (",a,")"]})})]}),parameters:{docs:{description:{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."},source:{code:Io.trim()}}}},Ae={args:{data:ne,enableCSVExport:!0,enableExcelExport:!0,csvExportFileName:"usuarios_data",csvExportButtonText:".csv",excelExportFileName:"usuarios_data",excelExportButtonText:".xlsx",csvExportColumns:["ID","Nombre","Email","Edad"],excelExportColumns:["ID","Nombre","Email","Edad"]},render:({data:o,enableCSVExport:a,enableExcelExport:t,csvExportFileName:r,csvExportButtonText:l,excelExportFileName:p,excelExportButtonText:n,csvExportColumns:u,excelExportColumns:f})=>e.jsxs(U,{data:ne,enableCSVExport:a,enableExcelExport:t,csvExportFileName:r,csvExportButtonText:l,excelExportFileName:p,excelExportButtonText:n,csvExportColumns:u,excelExportColumns:f,children:[e.jsx(i,{name:"ID",field:"id",children:h=>e.jsx(s,{children:h.id})}),e.jsx(i,{name:"Nombre",field:"nombre",children:h=>e.jsx(s,{children:h.nombre})}),e.jsx(i,{name:"Email",field:"email",children:({email:h})=>e.jsx(Ya,{href:`mailto:${h}`,children:h})}),e.jsx(i,{name:"Edad",field:"edad",children:h=>e.jsx(s,{children:h.edad})}),e.jsx(i,{name:"Rol",field:"rol",children:({rol:h})=>e.jsx($,{label:h,size:"small"})}),e.jsx(i,{name:"Acciones",field:"id",children:({id:h})=>e.jsx(ge,{variant:"outlined",size:"small",onClick:()=>alert(`Ver detalles de usuario ${h}`),children:"Ver"})})]}),parameters:{docs:{description:{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."},source:{code:ko.trim()}}}},Ve={render:o=>{const[a,t]=T.useState([]),r=n=>{t(n),o.onSelectionChange?.(n)},l=()=>{a.length>0?(alert(`Eliminando ${a.length} usuarios: ${a.map(n=>n.name).join(", ")}`),t([])):alert("No hay elementos seleccionados para eliminar.")},p=()=>{if(a.length>0){const n=prompt("Ingresa la nueva ciudad para los seleccionados:");n&&(alert(`Actualizando ciudad de ${a.length} usuarios a ${n}`),t([]))}else alert("No hay elementos seleccionados para actualizar.")};return e.jsxs(w,{children:[e.jsx(s,{variant:"h6",gutterBottom:!0,children:"Tabla con Selección de Filas"}),a.length>0&&e.jsxs(w,{sx:{mb:2,display:"flex",gap:1},children:[e.jsxs(ge,{variant:"contained",color:"error",onClick:l,children:["Eliminar (",a.length,")"]}),e.jsxs(ge,{variant:"contained",color:"primary",onClick:p,children:["Actualizar Ciudad (",a.length,")"]}),e.jsxs(s,{variant:"body2",sx:{alignSelf:"center",ml:2},children:["Elementos seleccionados: ",a.length]})]}),e.jsxs(U,{...o,data:ma,enableRowSelection:!0,rowIdentifier:"id",onSelectionChange:r,pageSizeSelectorValue:5,children:[e.jsx(i,{name:"ID",field:"id",children:n=>e.jsx(s,{children:n.id})}),e.jsx(i,{name:"Nombre",field:"name",children:n=>e.jsx(s,{children:n.name})}),e.jsx(i,{name:"Email",field:"email",children:n=>e.jsx(s,{children:n.email})}),e.jsx(i,{name:"Ciudad",field:"city",children:n=>e.jsx(s,{children:n.city})})]})]})},args:{},parameters:{docs:{description:{story:"Tabla con la funcionalidad de selección de filas. Puedes seleccionar una o muchas filas y realizar acciones en masa."},source:{code:Po.trim()}}}},Ne={render:o=>{const[a,t]=T.useState([]),r=l=>{t(l),o.onSelectionChange?.(l)};return e.jsxs(w,{children:[e.jsx(s,{variant:"h6",gutterBottom:!0,children:"Tabla con Exportación y Selección de Filas"}),a.length>0&&e.jsx(w,{sx:{mb:2},children:e.jsxs(s,{variant:"body2",children:["Elementos seleccionados: ",a.length]})}),e.jsxs(U,{...o,data:ma,enableRowSelection:!0,rowIdentifier:"id",onSelectionChange:r,pageSizeSelectorValue:5,enableCSVExport:!0,csvExportFileName:"users_data_with_selection",enableExcelExport:!0,excelExportFileName:"users_data_with_selection",children:[e.jsx(i,{name:"ID",field:"id",children:l=>e.jsx(s,{children:l.id})}),e.jsx(i,{name:"Nombre",field:"name",children:l=>e.jsx(s,{children:l.name})}),e.jsx(i,{name:"Email",field:"email",children:l=>e.jsx(s,{children:l.email})}),e.jsx(i,{name:"Ciudad",field:"city",children:l=>e.jsx(s,{children:l.city})})]})]})},args:{},parameters:{docs:{description:{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."},source:{code:zo.trim()}}}};je.parameters={...je.parameters,docs:{...je.parameters?.docs,source:{originalSource:`{
565
+ args: {
566
+ data: usuarios
567
+ },
568
+ render: ({
569
+ data
570
+ }) => <Table data={data} pageSizeSelectorValue={1} pageSize={1}>
571
+ <Column name="Nombre" field="nombre">
572
+ {({
573
+ nombre
574
+ }) => <Typography>{nombre}</Typography>}
575
+ </Column>
576
+ <Column name="Email" field="email">
577
+ {({
578
+ email
579
+ }) => <Typography color="text.secondary">{email}</Typography>}
580
+ </Column>
581
+ <Column width='10%' name="Edad" field="edad">
582
+ {({
583
+ edad
584
+ }) => <Typography>{edad} años</Typography>}
585
+ </Column>
586
+ </Table>,
587
+ parameters: {
588
+ docs: {
589
+ description: {
590
+ story: 'Tabla básica con datos simples y columnas de texto. La paginación es interna por defecto.'
591
+ },
592
+ source: {
593
+ code: BasicTableCode.trim()
594
+ }
595
+ }
596
+ }
597
+ }`,...je.parameters?.docs?.source}}};we.parameters={...we.parameters,docs:{...we.parameters?.docs,source:{originalSource:`{
598
+ args: {
599
+ data: usuarios.slice(0, 4)
600
+ },
601
+ render: ({
602
+ data
603
+ }) => <Table data={data}>
604
+ <Column name="Usuario" field={['avatar', 'nombre']}>
605
+ {({
606
+ avatar,
607
+ nombre
608
+ }) => <Box sx={{
609
+ display: 'flex',
610
+ alignItems: 'center',
611
+ gap: 2
612
+ }}>
613
+ <Avatar src={avatar} alt={nombre} sx={{
614
+ width: 40,
615
+ height: 40
616
+ }} />
617
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
618
+ </Box>}
619
+ </Column>
620
+ <Column name="Estado" field="activo">
621
+ {({
622
+ activo
623
+ }) => <Chip label={activo ? 'Activo' : 'Inactivo'} color={activo ? 'success' : 'default'} size="small" />}
624
+ </Column>
625
+ <Column name="Rol" field="rol">
626
+ {({
627
+ rol
628
+ }) => <Chip label={rol!.charAt(0).toUpperCase() + rol!.slice(1)} color={rol === 'admin' ? 'primary' : rol === 'moderador' ? 'secondary' : 'default'} variant="outlined" size="small" />}
629
+ </Column>
630
+ <Column name="Puntuación" field="puntuacion">
631
+ {({
632
+ puntuacion
633
+ }) => <Box sx={{
634
+ display: 'flex',
635
+ alignItems: 'center',
636
+ gap: 1
637
+ }}>
638
+ <Rating value={puntuacion} max={5} precision={0.1} size="small" readOnly />
639
+ <Typography variant="caption" color="text.secondary">
640
+ {puntuacion}
641
+ </Typography>
642
+ </Box>}
643
+ </Column>
644
+ </Table>,
645
+ parameters: {
646
+ docs: {
647
+ description: {
648
+ story: 'Tabla con componentes complejos como avatars, chips y ratings. La paginación es interna por defecto.'
649
+ },
650
+ source: {
651
+ code: ComplexComponentsCode.trim()
652
+ }
653
+ }
654
+ }
655
+ }`,...we.parameters?.docs?.source}}};Ie.parameters={...Ie.parameters,docs:{...Ie.parameters?.docs,source:{originalSource:`{
656
+ render: () => {
657
+ const [currentPage, setCurrentPage] = useState(1);
658
+ const [pageSize, setPageSize] = useState(2);
659
+ const totalItems = usuarios.length;
660
+ const totalPages = Math.ceil(totalItems / pageSize);
661
+ const startIndex = (currentPage - 1) * pageSize;
662
+ const currentData = usuarios.slice(startIndex, startIndex + pageSize);
663
+ const previousPageNum = currentPage > 1 ? currentPage - 1 : 1;
664
+ const nextPageNum = currentPage < totalPages ? currentPage + 1 : totalPages;
665
+ return <Table data={currentData} currentPage={currentPage} pageSize={pageSize} totalPages={totalPages} previousPage={previousPageNum} nextPage={nextPageNum} onPageChange={setCurrentPage} onPageSizeChange={setPageSize}>
666
+ <Column name="Nombre" field="nombre">
667
+ {({
668
+ nombre
669
+ }) => <Typography variant="body2" fontWeight="medium">{nombre}</Typography>}
670
+ </Column>
671
+ <Column name="Email" field="email">
672
+ {({
673
+ email
674
+ }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
675
+ </Column>
676
+ <Column name="Estado" field="activo">
677
+ {({
678
+ activo
679
+ }) => <Chip label={activo ? 'Activo' : 'Inactivo'} color={activo ? 'success' : 'default'} size="small" />}
680
+ </Column>
681
+ <Column name="Fecha de Registro" field="fechaRegistro">
682
+ {({
683
+ fechaRegistro
684
+ }) => <Typography variant="body2">
685
+ {new Date(fechaRegistro!).toLocaleDateString('es-ES')}
686
+ </Typography>}
687
+ </Column>
688
+ </Table>;
689
+ },
690
+ parameters: {
691
+ docs: {
692
+ description: {
693
+ story: 'Tabla con paginación controlada externamente. El componente \`Table\` no gestiona el estado de la paginación, solo la UI.'
694
+ },
695
+ source: {
696
+ code: WithExternalPaginationControlCode.trim()
697
+ }
698
+ }
699
+ }
700
+ }`,...Ie.parameters?.docs?.source}}};ke.parameters={...ke.parameters,docs:{...ke.parameters?.docs,source:{originalSource:`{
701
+ args: {
702
+ data: productos,
703
+ pageSizeSelectorValue: 1
704
+ },
705
+ render: ({
706
+ data,
707
+ pageSizeSelectorValue
708
+ }) => <Table data={data} pageSizeSelectorValue={pageSizeSelectorValue}>
709
+ <Column name="Producto" field={['imagen', 'nombre']}>
710
+ {({
711
+ imagen,
712
+ nombre
713
+ }) => <Box sx={{
714
+ display: 'flex',
715
+ alignItems: 'center',
716
+ gap: 2
717
+ }}>
718
+ <Box component="img" src={imagen} alt={nombre} sx={{
719
+ width: 50,
720
+ height: 50,
721
+ borderRadius: 1,
722
+ objectFit: 'cover'
723
+ }} />
724
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
725
+ </Box>}
726
+ </Column>
727
+ <Column name="Precio" field={['precio', 'enOferta']}>
728
+ {({
729
+ precio,
730
+ enOferta
731
+ }) => <Box sx={{
732
+ display: 'flex',
733
+ alignItems: 'center',
734
+ gap: 1
735
+ }}>
736
+ <Typography variant="body2" color={enOferta ? 'error.main' : 'text.primary'} fontWeight={enOferta ? 'bold' : 'normal'}>
737
+ \${precio!.toLocaleString()}
738
+ </Typography>
739
+ {enOferta && <Chip label="OFERTA" color="error" size="small" />}
740
+ </Box>}
741
+ </Column>
742
+ <Column name="Stock" field="stock">
743
+ {({
744
+ stock
745
+ }) => <Chip label={stock! > 0 ? \`\${stock} unidades\` : 'Sin stock'} color={stock! > 5 ? 'success' : stock! > 0 ? 'warning' : 'error'} size="small" />}
746
+ </Column>
747
+ <Column name="Categoría" field="categoria">
748
+ {({
749
+ categoria
750
+ }) => <Typography variant="body2">{categoria}</Typography>}
751
+ </Column>
752
+ <Column name="Rating" field="rating">
753
+ {({
754
+ rating
755
+ }) => <Box sx={{
756
+ display: 'flex',
757
+ alignItems: 'center',
758
+ gap: 1
759
+ }}>
760
+ <Rating value={rating} max={5} precision={0.1} size="small" readOnly />
761
+ <Typography variant="caption">({rating})</Typography>
762
+ </Box>}
763
+ </Column>
764
+ </Table>,
765
+ parameters: {
766
+ docs: {
767
+ description: {
768
+ story: 'Tabla de productos con imágenes, precios, stock y calificaciones. Paginación interna.'
769
+ },
770
+ source: {
771
+ code: ProductTableCode.trim()
772
+ }
773
+ }
774
+ }
775
+ }`,...ke.parameters?.docs?.source}}};Pe.parameters={...Pe.parameters,docs:{...Pe.parameters?.docs,source:{originalSource:`{
776
+ args: {
777
+ data: empleados,
778
+ pageSizeSelectorValue: 1
779
+ },
780
+ render: ({
781
+ data,
782
+ pageSizeSelectorValue
783
+ }) => <Table data={data} pageSizeSelectorValue={pageSizeSelectorValue}>
784
+ <Column name="Empleado" field={['avatar', 'nombre', 'apellido']}>
785
+ {({
786
+ avatar,
787
+ nombre,
788
+ apellido
789
+ }) => <Box sx={{
790
+ display: 'flex',
791
+ alignItems: 'center',
792
+ gap: 2
793
+ }}>
794
+ <Avatar src={avatar} sx={{
795
+ width: 40,
796
+ height: 40
797
+ }}>
798
+ {avatar ? '' : \`\${nombre!.charAt(0)}\${apellido!.charAt(0)}\`}
799
+ </Avatar>
800
+ <Typography variant="body2" fontWeight="medium">
801
+ {nombre} {apellido}
802
+ </Typography>
803
+ </Box>}
804
+ </Column>
805
+ <Column name="Departamento" field="departamento">
806
+ {({
807
+ departamento
808
+ }) => <Chip label={departamento} color="info" variant="filled" size="small" />}
809
+ </Column>
810
+ <Column name="Salario" field="salario">
811
+ {({
812
+ salario
813
+ }) => <Typography variant="body2" fontWeight="bold" color="success.dark">
814
+ \${salario!.toLocaleString('es-ES')}
815
+ </Typography>}
816
+ </Column>
817
+ <Column name="Estado" field={['activo', 'fechaIngreso']}>
818
+ {({
819
+ activo,
820
+ fechaIngreso
821
+ }) => <Box>
822
+ <Chip label={activo ? 'Contratado' : 'Inactivo'} color={activo ? 'success' : 'error'} size="small" />
823
+ <Typography variant="caption" display="block" color="text.secondary" sx={{
824
+ mt: 0.5
825
+ }}>
826
+ Desde: {new Date(fechaIngreso!).toLocaleDateString('es-ES')}
827
+ </Typography>
828
+ </Box>}
829
+ </Column>
830
+ </Table>,
831
+ parameters: {
832
+ docs: {
833
+ description: {
834
+ story: 'Tabla de empleados con múltiples campos combinados en una sola columna. Paginación interna.'
835
+ },
836
+ source: {
837
+ code: EmployeeTableCode.trim()
838
+ }
839
+ }
840
+ }
841
+ }`,...Pe.parameters?.docs?.source}}};ze.parameters={...ze.parameters,docs:{...ze.parameters?.docs,source:{originalSource:`{
842
+ args: {
843
+ data: []
844
+ },
845
+ render: ({
846
+ data
847
+ }) => <Table data={data} emptyTitle="No se encontraron registros" emptyMessage="Intente ajustar sus filtros o agregar nuevos datos."
848
+ // emptyImageSrc={<img src="path/to/empty/image.png" alt="No data" />}
849
+ >
850
+ <Column name="Nombre" field="nombre">
851
+ {({
852
+ nombre
853
+ }) => <Typography variant="body2">{nombre}</Typography>}
854
+ </Column>
855
+ <Column name="Email" field="email">
856
+ {({
857
+ email
858
+ }) => <Typography variant="body2">{email}</Typography>}
859
+ </Column>
860
+ <Column name="Estado" field="activo">
861
+ {({
862
+ activo
863
+ }) => <Chip label={activo ? 'Activo' : 'Inactivo'} size="small" />}
864
+ </Column>
865
+ </Table>,
866
+ parameters: {
867
+ docs: {
868
+ description: {
869
+ story: 'Tabla sin datos para mostrar el estado vacío y el mensaje correspondiente.'
870
+ },
871
+ source: {
872
+ code: EmptyTableCode.trim()
873
+ }
874
+ }
875
+ }
876
+ }`,...ze.parameters?.docs?.source}}};Be.parameters={...Be.parameters,docs:{...Be.parameters?.docs,source:{originalSource:`{
877
+ args: {
878
+ data: [usuarios[0]]
879
+ },
880
+ render: ({
881
+ data
882
+ }) => <Table data={data}>
883
+ <Column name="Usuario" field={['avatar', 'nombre', 'email']}>
884
+ {({
885
+ avatar,
886
+ nombre,
887
+ email
888
+ }) => <Box sx={{
889
+ display: 'flex',
890
+ alignItems: 'center',
891
+ gap: 2
892
+ }}>
893
+ <Avatar src={avatar} alt={nombre} />
894
+ <Box>
895
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
896
+ <Typography variant="caption" color="text.secondary">{email}</Typography>
897
+ </Box>
898
+ </Box>}
899
+ </Column>
900
+ <Column<Usuario> name="Información" field={[]}>
901
+ {user => <>
902
+ <Typography variant="body2">{user.edad} años</Typography>
903
+ <Box sx={{
904
+ display: 'flex',
905
+ gap: 1,
906
+ mt: 0.5
907
+ }}>
908
+ <Chip label={user.rol} size="small" color="primary" variant="outlined" />
909
+ <Chip label={user.activo ? 'Activo' : 'Inactivo'} size="small" color={user.activo ? 'success' : 'default'} />
910
+ </Box>
911
+ </>}
912
+ </Column>
913
+ </Table>,
914
+ parameters: {
915
+ docs: {
916
+ description: {
917
+ story: 'Tabla con una sola fila de datos.'
918
+ },
919
+ source: {
920
+ code: SingleRowCode.trim()
921
+ }
922
+ }
923
+ }
924
+ }`,...Be.parameters?.docs?.source}}};Re.parameters={...Re.parameters,docs:{...Re.parameters?.docs,source:{originalSource:`{
925
+ args: {
926
+ data: productos
927
+ },
928
+ render: ({
929
+ data
930
+ }) => <Table data={data}>
931
+ <Column name="Producto" field={['imagen', 'nombre']}>
932
+ {({
933
+ imagen,
934
+ nombre
935
+ }) => <Box sx={{
936
+ display: 'flex',
937
+ alignItems: 'center',
938
+ gap: 2
939
+ }}>
940
+ <Box component="img" src={imagen} alt={nombre} sx={{
941
+ width: 50,
942
+ height: 50,
943
+ borderRadius: 1,
944
+ objectFit: 'cover'
945
+ }} />
946
+ <Typography variant="body2" fontWeight="medium">{nombre}</Typography>
947
+ </Box>}
948
+ </Column>
949
+ <Column name="Precio" field={['precio', 'enOferta']}>
950
+ {({
951
+ precio,
952
+ enOferta
953
+ }) => <Box sx={{
954
+ display: 'flex',
955
+ alignItems: 'center',
956
+ gap: 1
957
+ }}>
958
+ <Typography variant="body2" color={enOferta ? 'error.main' : 'text.primary'} fontWeight={enOferta ? 'bold' : 'normal'}>
959
+ \${precio!.toLocaleString()}
960
+ </Typography>
961
+ {enOferta && <Chip label="OFERTA" color="error" size="small" />}
962
+ </Box>}
963
+ </Column>
964
+ <Column name="Stock" field="stock">
965
+ {({
966
+ stock
967
+ }) => <Chip label={stock! > 0 ? \`\${stock} unidades\` : 'Sin stock'} color={stock! > 5 ? 'success' : stock! > 0 ? 'warning' : 'error'} size="small" sx={{
968
+ backgroundColor: stock === 0 ? 'rgba(255, 0, 0, 0.1)' : undefined
969
+ }} />}
970
+ </Column>
971
+ <Column name="Rating" field="rating">
972
+ {({
973
+ rating
974
+ }) => <Box sx={{
975
+ display: 'flex',
976
+ alignItems: 'center',
977
+ gap: 1
978
+ }}>
979
+ <Rating value={rating} max={5} precision={0.1} size="small" readOnly />
980
+ <Typography variant="caption">({rating})</Typography>
981
+ </Box>}
982
+ </Column>
983
+ </Table>,
984
+ parameters: {
985
+ docs: {
986
+ description: {
987
+ story: 'Muestra la tabla de productos resaltando visualmente los productos sin stock. Paginación interna.'
988
+ },
989
+ source: {
990
+ code: ProductTableWithZeroStockHighlightedCode.trim()
991
+ }
992
+ }
993
+ }
994
+ }`,...Re.parameters?.docs?.source}}};De.parameters={...De.parameters,docs:{...De.parameters?.docs,source:{originalSource:`{
995
+ args: {
996
+ data: empleados
997
+ },
998
+ render: ({
999
+ data
1000
+ }) => <Table data={data}>
1001
+ <Column name="Empleado" field={['nombre', 'apellido', 'avatar']}>
1002
+ {({
1003
+ nombre,
1004
+ apellido,
1005
+ avatar
1006
+ }) => <Box sx={{
1007
+ display: 'flex',
1008
+ alignItems: 'center',
1009
+ gap: 2
1010
+ }}>
1011
+ <Avatar src={avatar} sx={{
1012
+ width: 40,
1013
+ height: 40
1014
+ }}>
1015
+ {avatar ? '' : \`\${nombre!.charAt(0)}\${apellido!.charAt(0)}\`}
1016
+ </Avatar>
1017
+ <Typography variant="body2" fontWeight="medium">
1018
+ {nombre} {apellido}
1019
+ </Typography>
1020
+ </Box>}
1021
+ </Column>
1022
+ <Column name="Departamento" field="departamento">
1023
+ {({
1024
+ departamento
1025
+ }) => <Chip label={departamento} color="info" variant="filled" size="small" />}
1026
+ </Column>
1027
+ <Column name="Salario" field="salario">
1028
+ {({
1029
+ salario
1030
+ }) => <Typography variant="body2" fontWeight="bold" color="success.dark">
1031
+ \${salario!.toLocaleString('es-ES')}
1032
+ </Typography>}
1033
+ </Column>
1034
+ <Column name="Estado de Contratación" field={['activo', 'fechaIngreso']}>
1035
+ {({
1036
+ activo,
1037
+ fechaIngreso
1038
+ }) => <Box>
1039
+ <Chip label={activo ? 'Contratado' : 'Inactivo'} color={activo ? 'success' : 'error'} size="small" />
1040
+ <Typography variant="caption" display="block" color="text.secondary" sx={{
1041
+ mt: 0.5
1042
+ }}>
1043
+ Desde: {new Date(fechaIngreso!).toLocaleDateString('es-ES')}
1044
+ </Typography>
1045
+ </Box>}
1046
+ </Column>
1047
+ </Table>,
1048
+ parameters: {
1049
+ docs: {
1050
+ description: {
1051
+ story: 'Muestra una tabla de empleados con un resumen detallado de su estado de contratación y fecha de ingreso. Paginación interna.'
1052
+ },
1053
+ source: {
1054
+ code: EmployeeDetailedStatusCode.trim()
1055
+ }
1056
+ }
1057
+ }
1058
+ }`,...De.parameters?.docs?.source}}};Fe.parameters={...Fe.parameters,docs:{...Fe.parameters?.docs,source:{originalSource:`{
1059
+ args: {
1060
+ data: usuarios.slice(0, 3)
1061
+ },
1062
+ render: ({
1063
+ data
1064
+ }) => <Table data={data}>
1065
+ <Column name="Nombre" field="nombre">
1066
+ {({
1067
+ nombre
1068
+ }) => <Typography variant="body2">{nombre}</Typography>}
1069
+ </Column>
1070
+ <Column name="Email" field="email">
1071
+ {({
1072
+ email
1073
+ }) => <Typography variant="body2" color="text.secondary">{email}</Typography>}
1074
+ </Column>
1075
+ <Column name="Acciones" field="id">
1076
+ {({
1077
+ id
1078
+ }) => <Button variant="contained" color="primary" size="small" onClick={() => alert('ID del usuario: ' + id)}>
1079
+ Ver Detalles ({id})
1080
+ </Button>}
1081
+ </Column>
1082
+ </Table>,
1083
+ parameters: {
1084
+ docs: {
1085
+ description: {
1086
+ 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.'
1087
+ },
1088
+ source: {
1089
+ code: ActionsColumnCode.trim()
1090
+ }
1091
+ }
1092
+ }
1093
+ }`,...Fe.parameters?.docs?.source}}};Ae.parameters={...Ae.parameters,docs:{...Ae.parameters?.docs,source:{originalSource:`{
1094
+ args: {
1095
+ data: usuarios,
1096
+ enableCSVExport: true,
1097
+ enableExcelExport: true,
1098
+ csvExportFileName: 'usuarios_data',
1099
+ csvExportButtonText: '.csv',
1100
+ excelExportFileName: 'usuarios_data',
1101
+ excelExportButtonText: '.xlsx',
1102
+ csvExportColumns: ['ID', 'Nombre', 'Email', 'Edad'],
1103
+ excelExportColumns: ['ID', 'Nombre', 'Email', 'Edad']
1104
+ },
1105
+ render: ({
1106
+ data,
1107
+ enableCSVExport,
1108
+ enableExcelExport,
1109
+ csvExportFileName,
1110
+ csvExportButtonText,
1111
+ excelExportFileName,
1112
+ excelExportButtonText,
1113
+ csvExportColumns,
1114
+ excelExportColumns
1115
+ }) => <Table<Usuario> data={usuarios} enableCSVExport={enableCSVExport} enableExcelExport={enableExcelExport} csvExportFileName={csvExportFileName} csvExportButtonText={csvExportButtonText} excelExportFileName={excelExportFileName} excelExportButtonText={excelExportButtonText} csvExportColumns={csvExportColumns} excelExportColumns={excelExportColumns}>
1116
+ <Column<Usuario> name="ID" field="id">
1117
+ {row => <Typography>{row.id}</Typography>}
1118
+ </Column>
1119
+ <Column<Usuario> name="Nombre" field="nombre">
1120
+ {row => <Typography>{row.nombre}</Typography>}
1121
+ </Column>
1122
+ <Column<Usuario> name="Email" field="email">
1123
+ {({
1124
+ email
1125
+ }) => <Link href={\`mailto:\${email}\`}>{email}</Link>}
1126
+ </Column>
1127
+ <Column<Usuario> name="Edad" field="edad">
1128
+ {row => <Typography>{row.edad}</Typography>}
1129
+ </Column>
1130
+ <Column<Usuario> name="Rol" field="rol">
1131
+ {({
1132
+ rol
1133
+ }) => <Chip label={rol} size="small" />}
1134
+ </Column>
1135
+ <Column<Usuario> name="Acciones" field="id">
1136
+ {({
1137
+ id
1138
+ }) => <Button variant="outlined" size="small" onClick={() => alert(\`Ver detalles de usuario \${id}\`)}>
1139
+ Ver
1140
+ </Button>}
1141
+ </Column>
1142
+ </Table>,
1143
+ parameters: {
1144
+ docs: {
1145
+ description: {
1146
+ 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.'
1147
+ },
1148
+ source: {
1149
+ code: TableWithExportCode.trim()
1150
+ }
1151
+ }
1152
+ }
1153
+ }`,...Ae.parameters?.docs?.source}}};Ve.parameters={...Ve.parameters,docs:{...Ve.parameters?.docs,source:{originalSource:`{
1154
+ render: args => {
1155
+ const [selectedItems, setSelectedItems] = useState<UserData[]>([]);
1156
+ const handleSelectionChange = (items: UserData[]) => {
1157
+ setSelectedItems(items);
1158
+ args.onSelectionChange?.(items);
1159
+ };
1160
+ const handleBulkDelete = () => {
1161
+ if (selectedItems.length > 0) {
1162
+ alert(\`Eliminando \${selectedItems.length} usuarios: \${selectedItems.map(item => item.name).join(', ')}\`);
1163
+ setSelectedItems([]);
1164
+ } else {
1165
+ alert('No hay elementos seleccionados para eliminar.');
1166
+ }
1167
+ };
1168
+ const handleBulkUpdateCity = () => {
1169
+ if (selectedItems.length > 0) {
1170
+ const newCity = prompt('Ingresa la nueva ciudad para los seleccionados:');
1171
+ if (newCity) {
1172
+ alert(\`Actualizando ciudad de \${selectedItems.length} usuarios a \${newCity}\`);
1173
+ setSelectedItems([]);
1174
+ }
1175
+ } else {
1176
+ alert('No hay elementos seleccionados para actualizar.');
1177
+ }
1178
+ };
1179
+ return <Box>
1180
+ <Typography variant="h6" gutterBottom>
1181
+ Tabla con Selección de Filas
1182
+ </Typography>
1183
+ {selectedItems.length > 0 && <Box sx={{
1184
+ mb: 2,
1185
+ display: 'flex',
1186
+ gap: 1
1187
+ }}>
1188
+ <Button variant="contained" color="error" onClick={handleBulkDelete}>
1189
+ Eliminar ({selectedItems.length})
1190
+ </Button>
1191
+ <Button variant="contained" color="primary" onClick={handleBulkUpdateCity}>
1192
+ Actualizar Ciudad ({selectedItems.length})
1193
+ </Button>
1194
+ <Typography variant="body2" sx={{
1195
+ alignSelf: 'center',
1196
+ ml: 2
1197
+ }}>
1198
+ Elementos seleccionados: {selectedItems.length}
1199
+ </Typography>
1200
+ </Box>}
1201
+ <Table<UserData> {...args} data={sampleData} // Usamos sampleData para esta historia
1202
+ enableRowSelection={true} rowIdentifier="id" // Es crucial que coincida con una clave única en tus datos
1203
+ onSelectionChange={handleSelectionChange} pageSizeSelectorValue={5}>
1204
+ <Column<UserData> name="ID" field="id" children={row => <Typography>{row.id}</Typography>} />
1205
+ <Column<UserData> name="Nombre" field="name" children={row => <Typography>{row.name}</Typography>} />
1206
+ <Column<UserData> name="Email" field="email" children={row => <Typography>{row.email}</Typography>} />
1207
+ <Column<UserData> name="Ciudad" field="city" children={row => <Typography>{row.city}</Typography>} />
1208
+ </Table>
1209
+ </Box>;
1210
+ },
1211
+ args: {},
1212
+ parameters: {
1213
+ docs: {
1214
+ description: {
1215
+ story: 'Tabla con la funcionalidad de selección de filas. Puedes seleccionar una o muchas filas y realizar acciones en masa.'
1216
+ },
1217
+ source: {
1218
+ code: WithRowSelectionCode.trim()
1219
+ }
1220
+ }
1221
+ }
1222
+ }`,...Ve.parameters?.docs?.source}}};Ne.parameters={...Ne.parameters,docs:{...Ne.parameters?.docs,source:{originalSource:`{
1223
+ render: args => {
1224
+ const [selectedItems, setSelectedItems] = useState<UserData[]>([]);
1225
+ const handleSelectionChange = (items: UserData[]) => {
1226
+ setSelectedItems(items);
1227
+ args.onSelectionChange?.(items);
1228
+ };
1229
+ return <Box>
1230
+ <Typography variant="h6" gutterBottom>
1231
+ Tabla con Exportación y Selección de Filas
1232
+ </Typography>
1233
+ {selectedItems.length > 0 && <Box sx={{
1234
+ mb: 2
1235
+ }}>
1236
+ <Typography variant="body2">
1237
+ Elementos seleccionados: {selectedItems.length}
1238
+ </Typography>
1239
+ </Box>}
1240
+ <Table<UserData> {...args} data={sampleData} // Usamos sampleData para esta historia
1241
+ enableRowSelection={true} rowIdentifier="id" onSelectionChange={handleSelectionChange} pageSizeSelectorValue={5} enableCSVExport={true} csvExportFileName="users_data_with_selection" enableExcelExport={true} excelExportFileName="users_data_with_selection">
1242
+ <Column<UserData> name="ID" field="id" children={row => <Typography>{row.id}</Typography>} />
1243
+ <Column<UserData> name="Nombre" field="name" children={row => <Typography>{row.name}</Typography>} />
1244
+ <Column<UserData> name="Email" field="email" children={row => <Typography>{row.email}</Typography>} />
1245
+ <Column<UserData> name="Ciudad" field="city" children={row => <Typography>{row.city}</Typography>} />
1246
+ </Table>
1247
+ </Box>;
1248
+ },
1249
+ args: {},
1250
+ parameters: {
1251
+ docs: {
1252
+ description: {
1253
+ 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.'
1254
+ },
1255
+ source: {
1256
+ code: WithExportAndSelectionCode.trim()
1257
+ }
1258
+ }
1259
+ }
1260
+ }`,...Ne.parameters?.docs?.source}}};const jt=["BasicTable","ComplexComponents","WithExternalPaginationControl","ProductTable","EmployeeTable","EmptyTable","SingleRow","ProductTableWithZeroStockHighlighted","EmployeeDetailedStatus","ActionsColumn","TableWithExport","WithRowSelection","WithExportAndSelection"];export{Fe as ActionsColumn,je as BasicTable,we as ComplexComponents,De as EmployeeDetailedStatus,Pe as EmployeeTable,ze as EmptyTable,ke as ProductTable,Re as ProductTableWithZeroStockHighlighted,Be as SingleRow,Ae as TableWithExport,Ne as WithExportAndSelection,Ie as WithExternalPaginationControl,Ve as WithRowSelection,jt as __namedExportsOrder,Et as default};