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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/{dist/components → components}/Drawer/Drawer.cjs +14 -17
  2. package/components/Drawer/Drawer.cjs.map +1 -0
  3. package/{dist/components → components}/Drawer/Drawer.d.ts +8 -1
  4. package/{dist/components → components}/Drawer/Drawer.js +14 -17
  5. package/components/Drawer/Drawer.js.map +1 -0
  6. package/package.json +164 -43
  7. package/.dockerignore +0 -8
  8. package/.github/workflows/publish.yml +0 -107
  9. package/.prettierrc +0 -3
  10. package/.storybook/main.ts +0 -19
  11. package/.storybook/preview.ts +0 -14
  12. package/.storybook/vitest.setup.ts +0 -9
  13. package/Dockerfile +0 -37
  14. package/Readme.md +0 -243
  15. package/build.js +0 -102
  16. package/chromatic.config.json +0 -5
  17. package/cleanDirectories.js +0 -40
  18. package/dist/components/Drawer/Drawer.cjs.map +0 -1
  19. package/dist/components/Drawer/Drawer.js.map +0 -1
  20. package/dist/package.json +0 -197
  21. package/rollup.config.cjs +0 -87
  22. package/src/components/ActionMenu/ActionMenu.stories.tsx +0 -230
  23. package/src/components/ActionMenu/ActionMenu.tsx +0 -174
  24. package/src/components/ActionMenu/index.ts +0 -2
  25. package/src/components/AppBar/AppBar.stories.tsx +0 -272
  26. package/src/components/AppBar/AppBar.sx.ts +0 -32
  27. package/src/components/AppBar/AppBar.tsx +0 -123
  28. package/src/components/AppBar/AppBarBrand.tsx +0 -120
  29. package/src/components/AppBar/AppBarContext.ts +0 -25
  30. package/src/components/AppBar/AppBarMenuToggle.tsx +0 -90
  31. package/src/components/AppBar/AppBarUserMenu.tsx +0 -217
  32. package/src/components/AppBar/index.ts +0 -25
  33. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -477
  34. package/src/components/Autocomplete/Autocomplete.helpers.ts +0 -60
  35. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -748
  36. package/src/components/Autocomplete/Autocomplete.sx.ts +0 -30
  37. package/src/components/Autocomplete/Autocomplete.tsx +0 -361
  38. package/src/components/Autocomplete/Autocomplete.types.ts +0 -13
  39. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +0 -55
  40. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +0 -17
  41. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +0 -31
  42. package/src/components/Autocomplete/index.ts +0 -12
  43. package/src/components/Avatar/Avatar.definitions.ts +0 -162
  44. package/src/components/Avatar/Avatar.stories.tsx +0 -258
  45. package/src/components/Avatar/Avatar.tsx +0 -206
  46. package/src/components/Avatar/index.ts +0 -1
  47. package/src/components/Button/Button.definition.ts +0 -97
  48. package/src/components/Button/Button.stories.tsx +0 -285
  49. package/src/components/Button/Button.tsx +0 -67
  50. package/src/components/Button/index.ts +0 -1
  51. package/src/components/Card/Card.definition.ts +0 -5
  52. package/src/components/Card/Card.stories.tsx +0 -221
  53. package/src/components/Card/Card.sx.ts +0 -104
  54. package/src/components/Card/Card.tsx +0 -200
  55. package/src/components/Card/index.ts +0 -9
  56. package/src/components/Chip/Chip.definitions.ts +0 -167
  57. package/src/components/Chip/Chip.stories.tsx +0 -265
  58. package/src/components/Chip/Chip.tsx +0 -61
  59. package/src/components/Chip/index.ts +0 -1
  60. package/src/components/Column/Column.tsx +0 -29
  61. package/src/components/Column/index.ts +0 -1
  62. package/src/components/DatePicker/DatePicker.definitions.ts +0 -228
  63. package/src/components/DatePicker/DatePicker.helpers.ts +0 -24
  64. package/src/components/DatePicker/DatePicker.stories.tsx +0 -309
  65. package/src/components/DatePicker/DatePicker.sx.ts +0 -33
  66. package/src/components/DatePicker/DatePicker.tsx +0 -189
  67. package/src/components/DatePicker/DatePicker.types.ts +0 -10
  68. package/src/components/DatePicker/index.ts +0 -9
  69. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  70. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  71. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  72. package/src/components/DateRangePicker/index.ts +0 -1
  73. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -256
  74. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +0 -38
  75. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -418
  76. package/src/components/DateTimePicker/DateTimePicker.sx.ts +0 -30
  77. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -225
  78. package/src/components/DateTimePicker/DateTimePicker.types.ts +0 -10
  79. package/src/components/DateTimePicker/index.ts +0 -9
  80. package/src/components/Drawer/Drawer.stories.tsx +0 -270
  81. package/src/components/Drawer/Drawer.sx.ts +0 -106
  82. package/src/components/Drawer/Drawer.tsx +0 -214
  83. package/src/components/Drawer/DrawerContext.ts +0 -26
  84. package/src/components/Drawer/DrawerItem.tsx +0 -110
  85. package/src/components/Drawer/index.ts +0 -10
  86. package/src/components/Flyout/Flyout.stories.tsx +0 -282
  87. package/src/components/Flyout/Flyout.tsx +0 -122
  88. package/src/components/Flyout/index.ts +0 -1
  89. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  90. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  91. package/src/components/Gallery/Gallery.tsx +0 -118
  92. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  93. package/src/components/Gallery/GalleryMain.tsx +0 -84
  94. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  95. package/src/components/Gallery/index.ts +0 -1
  96. package/src/components/Icon/Icon.stories.tsx +0 -121
  97. package/src/components/Icon/Icon.tsx +0 -175
  98. package/src/components/Icon/index.ts +0 -2
  99. package/src/components/Input/Input.definitions.ts +0 -324
  100. package/src/components/Input/Input.helpers.ts +0 -49
  101. package/src/components/Input/Input.stories.tsx +0 -499
  102. package/src/components/Input/Input.sx.ts +0 -42
  103. package/src/components/Input/Input.tsx +0 -141
  104. package/src/components/Input/Input.types.ts +0 -10
  105. package/src/components/Input/index.ts +0 -9
  106. package/src/components/InputGroup/InputGroup.definitions.ts +0 -158
  107. package/src/components/InputGroup/InputGroup.stories.tsx +0 -267
  108. package/src/components/InputGroup/InputGroup.tsx +0 -179
  109. package/src/components/InputGroup/index.ts +0 -1
  110. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  111. package/src/components/MenuButton/MenuButton.tsx +0 -100
  112. package/src/components/MenuButton/index.ts +0 -1
  113. package/src/components/Modal/Modal.stories.tsx +0 -721
  114. package/src/components/Modal/Modal.tsx +0 -355
  115. package/src/components/Modal/ModalBody.tsx +0 -16
  116. package/src/components/Modal/ModalFooter.tsx +0 -71
  117. package/src/components/Modal/ModalHeader.tsx +0 -18
  118. package/src/components/Modal/index.ts +0 -6
  119. package/src/components/PageLoader/PageLoader.stories.tsx +0 -217
  120. package/src/components/PageLoader/PageLoader.tsx +0 -96
  121. package/src/components/PageLoader/index.ts +0 -2
  122. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +0 -158
  123. package/src/components/ScrollTopButton/ScrollTopButton.tsx +0 -135
  124. package/src/components/ScrollTopButton/index.ts +0 -8
  125. package/src/components/ScrollTopButton/scrollToTop.ts +0 -37
  126. package/src/components/Select/Select.definitions.ts +0 -602
  127. package/src/components/Select/Select.helpers.ts +0 -71
  128. package/src/components/Select/Select.stories.tsx +0 -687
  129. package/src/components/Select/Select.sx.ts +0 -14
  130. package/src/components/Select/Select.tsx +0 -429
  131. package/src/components/Select/Select.types.ts +0 -15
  132. package/src/components/Select/_parts/SelectMenuItem.tsx +0 -40
  133. package/src/components/Select/_parts/SelectSearchHeader.tsx +0 -51
  134. package/src/components/Select/_parts/SelectValue.tsx +0 -96
  135. package/src/components/Select/index.ts +0 -14
  136. package/src/components/Stat/Stat.stories.tsx +0 -85
  137. package/src/components/Stat/Stat.tsx +0 -117
  138. package/src/components/Stat/index.ts +0 -2
  139. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  140. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  141. package/src/components/StatusMessage/index.ts +0 -2
  142. package/src/components/Stepper/Step.tsx +0 -21
  143. package/src/components/Stepper/Stepper.definition.ts +0 -75
  144. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  145. package/src/components/Stepper/Stepper.tsx +0 -75
  146. package/src/components/Stepper/index.ts +0 -2
  147. package/src/components/Table/EmptyTable.png +0 -0
  148. package/src/components/Table/Table.definition.ts +0 -580
  149. package/src/components/Table/Table.stories.tsx +0 -853
  150. package/src/components/Table/Table.tsx +0 -495
  151. package/src/components/Table/data.ts +0 -134
  152. package/src/components/Table/exportsUtils.ts +0 -195
  153. package/src/components/Table/index.ts +0 -3
  154. package/src/components/Table/types.ts +0 -34
  155. package/src/components/Tabs/Tab.definition.ts +0 -53
  156. package/src/components/Tabs/Tab.tsx +0 -19
  157. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  158. package/src/components/Tabs/Tabs.tsx +0 -99
  159. package/src/components/Tabs/_tabUtils.tsx +0 -4
  160. package/src/components/Tabs/index.ts +0 -2
  161. package/src/components/Timeline/Timeline.definition.ts +0 -43
  162. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  163. package/src/components/Timeline/Timeline.tsx +0 -49
  164. package/src/components/Timeline/TimelineItem.tsx +0 -31
  165. package/src/components/Timeline/index.ts +0 -2
  166. package/src/components/Tooltip/Tooltip.stories.tsx +0 -129
  167. package/src/components/Tooltip/Tooltip.tsx +0 -58
  168. package/src/components/Tooltip/index.ts +0 -1
  169. package/src/components/_shared/formField.sx.ts +0 -118
  170. package/src/components/_shared/resolvePreset.ts +0 -35
  171. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  172. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  173. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  174. package/src/hooks/ClipBoard/index.ts +0 -1
  175. package/src/hooks/Wizard/Wizard.stories.tsx +0 -301
  176. package/src/hooks/Wizard/WizardContext.tsx +0 -166
  177. package/src/hooks/Wizard/index.ts +0 -6
  178. package/src/hooks/Wizard/useWizard.ts +0 -13
  179. package/src/index.ts +0 -17
  180. package/src/mui.ts +0 -54
  181. package/src/styles.css +0 -3
  182. package/src/theme/componentStyles.ts +0 -47
  183. package/src/theme/tokens.ts +0 -43
  184. package/tailwind.config.js +0 -10
  185. package/tsconfig.json +0 -48
  186. package/tsup.config.js +0 -41
  187. package/vite.config.js +0 -132
  188. package/vitest.config.ts +0 -35
  189. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  190. /package/{dist/Button-C17mExpd.cjs.map → Button-C17mExpd.cjs.map} +0 -0
  191. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  192. /package/{dist/Button-UkkP-bNw.js.map → Button-UkkP-bNw.js.map} +0 -0
  193. /package/{dist/README.md → README.md} +0 -0
  194. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs +0 -0
  195. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs.map +0 -0
  196. /package/{dist/components → components}/ActionMenu/ActionMenu.d.ts +0 -0
  197. /package/{dist/components → components}/ActionMenu/ActionMenu.js +0 -0
  198. /package/{dist/components → components}/ActionMenu/ActionMenu.js.map +0 -0
  199. /package/{dist/components → components}/ActionMenu/index.d.ts +0 -0
  200. /package/{dist/components → components}/ActionMenu.d.ts +0 -0
  201. /package/{dist/components → components}/AppBar/AppBar.cjs +0 -0
  202. /package/{dist/components → components}/AppBar/AppBar.cjs.map +0 -0
  203. /package/{dist/components → components}/AppBar/AppBar.d.ts +0 -0
  204. /package/{dist/components → components}/AppBar/AppBar.js +0 -0
  205. /package/{dist/components → components}/AppBar/AppBar.js.map +0 -0
  206. /package/{dist/components → components}/AppBar/AppBar.sx.d.ts +0 -0
  207. /package/{dist/components → components}/AppBar/AppBarBrand.d.ts +0 -0
  208. /package/{dist/components → components}/AppBar/AppBarContext.d.ts +0 -0
  209. /package/{dist/components → components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  210. /package/{dist/components → components}/AppBar/AppBarUserMenu.d.ts +0 -0
  211. /package/{dist/components → components}/AppBar/index.d.ts +0 -0
  212. /package/{dist/components → components}/AppBar.d.ts +0 -0
  213. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs +0 -0
  214. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs.map +0 -0
  215. /package/{dist/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  216. /package/{dist/components → components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  217. /package/{dist/components → components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  218. /package/{dist/components → components}/Autocomplete/Autocomplete.js +0 -0
  219. /package/{dist/components → components}/Autocomplete/Autocomplete.js.map +0 -0
  220. /package/{dist/components → components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  221. /package/{dist/components → components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  222. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  223. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  224. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  225. /package/{dist/components → components}/Autocomplete/index.d.ts +0 -0
  226. /package/{dist/components → components}/Autocomplete.d.ts +0 -0
  227. /package/{dist/components → components}/Avatar/Avatar.cjs +0 -0
  228. /package/{dist/components → components}/Avatar/Avatar.cjs.map +0 -0
  229. /package/{dist/components → components}/Avatar/Avatar.d.ts +0 -0
  230. /package/{dist/components → components}/Avatar/Avatar.definitions.d.ts +0 -0
  231. /package/{dist/components → components}/Avatar/Avatar.js +0 -0
  232. /package/{dist/components → components}/Avatar/Avatar.js.map +0 -0
  233. /package/{dist/components → components}/Avatar/index.d.ts +0 -0
  234. /package/{dist/components → components}/Avatar.d.ts +0 -0
  235. /package/{dist/components → components}/Button/Button.cjs +0 -0
  236. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  237. /package/{dist/components → components}/Button/Button.d.ts +0 -0
  238. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  239. /package/{dist/components → components}/Button/Button.js +0 -0
  240. /package/{dist/components → components}/Button/Button.js.map +0 -0
  241. /package/{dist/components → components}/Button/index.d.ts +0 -0
  242. /package/{dist/components → components}/Button.d.ts +0 -0
  243. /package/{dist/components → components}/Card/Card.cjs +0 -0
  244. /package/{dist/components → components}/Card/Card.cjs.map +0 -0
  245. /package/{dist/components → components}/Card/Card.d.ts +0 -0
  246. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  247. /package/{dist/components → components}/Card/Card.js +0 -0
  248. /package/{dist/components → components}/Card/Card.js.map +0 -0
  249. /package/{dist/components → components}/Card/Card.sx.d.ts +0 -0
  250. /package/{dist/components → components}/Card/index.d.ts +0 -0
  251. /package/{dist/components → components}/Card.d.ts +0 -0
  252. /package/{dist/components → components}/Chip/Chip.cjs +0 -0
  253. /package/{dist/components → components}/Chip/Chip.cjs.map +0 -0
  254. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  255. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  256. /package/{dist/components → components}/Chip/Chip.js +0 -0
  257. /package/{dist/components → components}/Chip/Chip.js.map +0 -0
  258. /package/{dist/components → components}/Chip/index.d.ts +0 -0
  259. /package/{dist/components → components}/Chip.d.ts +0 -0
  260. /package/{dist/components → components}/Column/Column.cjs +0 -0
  261. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  262. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  263. /package/{dist/components → components}/Column/Column.js +0 -0
  264. /package/{dist/components → components}/Column/Column.js.map +0 -0
  265. /package/{dist/components → components}/Column/index.d.ts +0 -0
  266. /package/{dist/components → components}/Column.d.ts +0 -0
  267. /package/{dist/components → components}/DatePicker/DatePicker.cjs +0 -0
  268. /package/{dist/components → components}/DatePicker/DatePicker.cjs.map +0 -0
  269. /package/{dist/components → components}/DatePicker/DatePicker.d.ts +0 -0
  270. /package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  271. /package/{dist/components → components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  272. /package/{dist/components → components}/DatePicker/DatePicker.js +0 -0
  273. /package/{dist/components → components}/DatePicker/DatePicker.js.map +0 -0
  274. /package/{dist/components → components}/DatePicker/DatePicker.sx.d.ts +0 -0
  275. /package/{dist/components → components}/DatePicker/DatePicker.types.d.ts +0 -0
  276. /package/{dist/components → components}/DatePicker/index.d.ts +0 -0
  277. /package/{dist/components → components}/DatePicker.d.ts +0 -0
  278. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  279. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  280. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  281. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  282. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  283. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  284. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  285. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  286. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs +0 -0
  287. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  288. /package/{dist/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  289. /package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  290. /package/{dist/components → components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  291. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js +0 -0
  292. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js.map +0 -0
  293. /package/{dist/components → components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  294. /package/{dist/components → components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  295. /package/{dist/components → components}/DateTimePicker/index.d.ts +0 -0
  296. /package/{dist/components → components}/DateTimePicker.d.ts +0 -0
  297. /package/{dist/components → components}/Drawer/Drawer.sx.d.ts +0 -0
  298. /package/{dist/components → components}/Drawer/DrawerContext.d.ts +0 -0
  299. /package/{dist/components → components}/Drawer/DrawerItem.d.ts +0 -0
  300. /package/{dist/components → components}/Drawer/index.d.ts +0 -0
  301. /package/{dist/components → components}/Drawer.d.ts +0 -0
  302. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  303. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  304. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  305. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  306. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  307. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  308. /package/{dist/components → components}/Flyout.d.ts +0 -0
  309. /package/{dist/components → components}/Gallery/Gallery.cjs +0 -0
  310. /package/{dist/components → components}/Gallery/Gallery.cjs.map +0 -0
  311. /package/{dist/components → components}/Gallery/Gallery.d.ts +0 -0
  312. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  313. /package/{dist/components → components}/Gallery/Gallery.js +0 -0
  314. /package/{dist/components → components}/Gallery/Gallery.js.map +0 -0
  315. /package/{dist/components → components}/Gallery/GalleryLightbox.d.ts +0 -0
  316. /package/{dist/components → components}/Gallery/GalleryMain.d.ts +0 -0
  317. /package/{dist/components → components}/Gallery/GalleryThumbnails.d.ts +0 -0
  318. /package/{dist/components → components}/Gallery/index.d.ts +0 -0
  319. /package/{dist/components → components}/Gallery.d.ts +0 -0
  320. /package/{dist/components → components}/Icon/Icon.cjs +0 -0
  321. /package/{dist/components → components}/Icon/Icon.cjs.map +0 -0
  322. /package/{dist/components → components}/Icon/Icon.d.ts +0 -0
  323. /package/{dist/components → components}/Icon/Icon.js +0 -0
  324. /package/{dist/components → components}/Icon/Icon.js.map +0 -0
  325. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  326. /package/{dist/components → components}/Icon.d.ts +0 -0
  327. /package/{dist/components → components}/Input/Input.cjs +0 -0
  328. /package/{dist/components → components}/Input/Input.cjs.map +0 -0
  329. /package/{dist/components → components}/Input/Input.d.ts +0 -0
  330. /package/{dist/components → components}/Input/Input.definitions.d.ts +0 -0
  331. /package/{dist/components → components}/Input/Input.helpers.d.ts +0 -0
  332. /package/{dist/components → components}/Input/Input.js +0 -0
  333. /package/{dist/components → components}/Input/Input.js.map +0 -0
  334. /package/{dist/components → components}/Input/Input.sx.d.ts +0 -0
  335. /package/{dist/components → components}/Input/Input.types.d.ts +0 -0
  336. /package/{dist/components → components}/Input/index.d.ts +0 -0
  337. /package/{dist/components → components}/Input.d.ts +0 -0
  338. /package/{dist/components → components}/InputGroup/InputGroup.cjs +0 -0
  339. /package/{dist/components → components}/InputGroup/InputGroup.cjs.map +0 -0
  340. /package/{dist/components → components}/InputGroup/InputGroup.d.ts +0 -0
  341. /package/{dist/components → components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  342. /package/{dist/components → components}/InputGroup/InputGroup.js +0 -0
  343. /package/{dist/components → components}/InputGroup/InputGroup.js.map +0 -0
  344. /package/{dist/components → components}/InputGroup/index.d.ts +0 -0
  345. /package/{dist/components → components}/InputGroup.d.ts +0 -0
  346. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  347. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  348. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  349. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  350. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  351. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  352. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  353. /package/{dist/components → components}/Modal/Modal.cjs +0 -0
  354. /package/{dist/components → components}/Modal/Modal.cjs.map +0 -0
  355. /package/{dist/components → components}/Modal/Modal.d.ts +0 -0
  356. /package/{dist/components → components}/Modal/Modal.js +0 -0
  357. /package/{dist/components → components}/Modal/Modal.js.map +0 -0
  358. /package/{dist/components → components}/Modal/ModalBody.d.ts +0 -0
  359. /package/{dist/components → components}/Modal/ModalFooter.d.ts +0 -0
  360. /package/{dist/components → components}/Modal/ModalHeader.d.ts +0 -0
  361. /package/{dist/components → components}/Modal/index.d.ts +0 -0
  362. /package/{dist/components → components}/Modal.d.ts +0 -0
  363. /package/{dist/components → components}/PageLoader/PageLoader.cjs +0 -0
  364. /package/{dist/components → components}/PageLoader/PageLoader.cjs.map +0 -0
  365. /package/{dist/components → components}/PageLoader/PageLoader.d.ts +0 -0
  366. /package/{dist/components → components}/PageLoader/PageLoader.js +0 -0
  367. /package/{dist/components → components}/PageLoader/PageLoader.js.map +0 -0
  368. /package/{dist/components → components}/PageLoader/index.d.ts +0 -0
  369. /package/{dist/components → components}/PageLoader.d.ts +0 -0
  370. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  371. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  372. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  373. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js +0 -0
  374. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  375. /package/{dist/components → components}/ScrollTopButton/index.d.ts +0 -0
  376. /package/{dist/components → components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  377. /package/{dist/components → components}/ScrollTopButton.d.ts +0 -0
  378. /package/{dist/components → components}/Select/Select.cjs +0 -0
  379. /package/{dist/components → components}/Select/Select.cjs.map +0 -0
  380. /package/{dist/components → components}/Select/Select.d.ts +0 -0
  381. /package/{dist/components → components}/Select/Select.definitions.d.ts +0 -0
  382. /package/{dist/components → components}/Select/Select.helpers.d.ts +0 -0
  383. /package/{dist/components → components}/Select/Select.js +0 -0
  384. /package/{dist/components → components}/Select/Select.js.map +0 -0
  385. /package/{dist/components → components}/Select/Select.sx.d.ts +0 -0
  386. /package/{dist/components → components}/Select/Select.types.d.ts +0 -0
  387. /package/{dist/components → components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  388. /package/{dist/components → components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  389. /package/{dist/components → components}/Select/_parts/SelectValue.d.ts +0 -0
  390. /package/{dist/components → components}/Select/index.d.ts +0 -0
  391. /package/{dist/components → components}/Select.d.ts +0 -0
  392. /package/{dist/components → components}/Stat/Stat.cjs +0 -0
  393. /package/{dist/components → components}/Stat/Stat.cjs.map +0 -0
  394. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  395. /package/{dist/components → components}/Stat/Stat.js +0 -0
  396. /package/{dist/components → components}/Stat/Stat.js.map +0 -0
  397. /package/{dist/components → components}/Stat/index.d.ts +0 -0
  398. /package/{dist/components → components}/Stat.d.ts +0 -0
  399. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs +0 -0
  400. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs.map +0 -0
  401. /package/{dist/components → components}/StatusMessage/StatusMessage.d.ts +0 -0
  402. /package/{dist/components → components}/StatusMessage/StatusMessage.js +0 -0
  403. /package/{dist/components → components}/StatusMessage/StatusMessage.js.map +0 -0
  404. /package/{dist/components → components}/StatusMessage/index.d.ts +0 -0
  405. /package/{dist/components → components}/StatusMessage.d.ts +0 -0
  406. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  407. /package/{dist/components → components}/Stepper/Stepper.cjs +0 -0
  408. /package/{dist/components → components}/Stepper/Stepper.cjs.map +0 -0
  409. /package/{dist/components → components}/Stepper/Stepper.d.ts +0 -0
  410. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  411. /package/{dist/components → components}/Stepper/Stepper.js +0 -0
  412. /package/{dist/components → components}/Stepper/Stepper.js.map +0 -0
  413. /package/{dist/components → components}/Stepper/index.d.ts +0 -0
  414. /package/{dist/components → components}/Stepper.d.ts +0 -0
  415. /package/{dist/components → components}/Table/Table.cjs +0 -0
  416. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  417. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  418. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  419. /package/{dist/components → components}/Table/Table.js +0 -0
  420. /package/{dist/components → components}/Table/Table.js.map +0 -0
  421. /package/{dist/components → components}/Table/data.d.ts +0 -0
  422. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  423. /package/{dist/components → components}/Table/index.d.ts +0 -0
  424. /package/{dist/components → components}/Table/types.d.ts +0 -0
  425. /package/{dist/components → components}/Table.d.ts +0 -0
  426. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  427. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  428. /package/{dist/components → components}/Tabs/Tabs.cjs +0 -0
  429. /package/{dist/components → components}/Tabs/Tabs.cjs.map +0 -0
  430. /package/{dist/components → components}/Tabs/Tabs.d.ts +0 -0
  431. /package/{dist/components → components}/Tabs/Tabs.js +0 -0
  432. /package/{dist/components → components}/Tabs/Tabs.js.map +0 -0
  433. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  434. /package/{dist/components → components}/Tabs/index.d.ts +0 -0
  435. /package/{dist/components → components}/Tabs.d.ts +0 -0
  436. /package/{dist/components → components}/Timeline/Timeline.cjs +0 -0
  437. /package/{dist/components → components}/Timeline/Timeline.cjs.map +0 -0
  438. /package/{dist/components → components}/Timeline/Timeline.d.ts +0 -0
  439. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  440. /package/{dist/components → components}/Timeline/Timeline.js +0 -0
  441. /package/{dist/components → components}/Timeline/Timeline.js.map +0 -0
  442. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  443. /package/{dist/components → components}/Timeline/index.d.ts +0 -0
  444. /package/{dist/components → components}/Timeline.d.ts +0 -0
  445. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  446. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  447. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  448. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  449. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  450. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  451. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  452. /package/{dist/components → components}/_shared/formField.sx.d.ts +0 -0
  453. /package/{dist/components → components}/_shared/resolvePreset.d.ts +0 -0
  454. /package/{dist/formField.sx-CQ1mbk9M.cjs → formField.sx-CQ1mbk9M.cjs} +0 -0
  455. /package/{dist/formField.sx-CQ1mbk9M.cjs.map → formField.sx-CQ1mbk9M.cjs.map} +0 -0
  456. /package/{dist/formField.sx-DfVbMe0V.js → formField.sx-DfVbMe0V.js} +0 -0
  457. /package/{dist/formField.sx-DfVbMe0V.js.map → formField.sx-DfVbMe0V.js.map} +0 -0
  458. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  459. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  460. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  461. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  462. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  463. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  464. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  465. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  466. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs +0 -0
  467. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs.map +0 -0
  468. /package/{dist/hooks → hooks}/Wizard/Wizard.js +0 -0
  469. /package/{dist/hooks → hooks}/Wizard/Wizard.js.map +0 -0
  470. /package/{dist/hooks → hooks}/Wizard/WizardContext.d.ts +0 -0
  471. /package/{dist/hooks → hooks}/Wizard/index.d.ts +0 -0
  472. /package/{dist/hooks → hooks}/Wizard/useWizard.d.ts +0 -0
  473. /package/{dist/hooks → hooks}/Wizard.d.ts +0 -0
  474. /package/{dist/index.cjs → index.cjs} +0 -0
  475. /package/{dist/index.cjs.map → index.cjs.map} +0 -0
  476. /package/{dist/index.d.ts → index.d.ts} +0 -0
  477. /package/{dist/index.js → index.js} +0 -0
  478. /package/{dist/index.js.map → index.js.map} +0 -0
  479. /package/{dist/mui.d.ts → mui.d.ts} +0 -0
  480. /package/{dist/resolvePreset-B-IB0ehH.js → resolvePreset-B-IB0ehH.js} +0 -0
  481. /package/{dist/resolvePreset-B-IB0ehH.js.map → resolvePreset-B-IB0ehH.js.map} +0 -0
  482. /package/{dist/resolvePreset-CT3kU-K2.cjs → resolvePreset-CT3kU-K2.cjs} +0 -0
  483. /package/{dist/resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +0 -0
  484. /package/{dist/styles.css → styles.css} +0 -0
  485. /package/{dist/theme → theme}/componentStyles.d.ts +0 -0
  486. /package/{dist/theme → theme}/tokens.d.ts +0 -0
  487. /package/{dist/useWizard-CWdIxZzX.cjs → useWizard-CWdIxZzX.cjs} +0 -0
  488. /package/{dist/useWizard-CWdIxZzX.cjs.map → useWizard-CWdIxZzX.cjs.map} +0 -0
  489. /package/{dist/useWizard-CWq--C3o.js → useWizard-CWq--C3o.js} +0 -0
  490. /package/{dist/useWizard-CWq--C3o.js.map → useWizard-CWq--C3o.js.map} +0 -0
@@ -1,687 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import React, { useState } from 'react';
3
- import {
4
- Chip,
5
- Avatar,
6
- Box,
7
- Typography,
8
- } from '@mui/material';
9
- import ClearIcon from '@mui/icons-material/Clear'; // Icono de cerrar
10
-
11
- // Importar las definiciones de las historias
12
- import {
13
- SimpleSelectDefinition,
14
- MultiSelectDefinition,
15
- WithPlaceholderDefinition,
16
- WithFilterDefinition,
17
- WithGroupDefinition,
18
- CustomRenderWithAvatarDefinition,
19
- MultiSelectCustomChipRenderDefinition,
20
- MultiSelectCustomChipRenderFullLabelDefinition,
21
- ConstrainedHeightDefinition,
22
- ConstrainedWidthDefinition,
23
- AllFeaturesCombinedDefinition,
24
- EmptyOptionsDefinition,
25
- SelectWithManyOptionsDefinition,
26
- AsyncSelectDefinition,
27
- LabelPositionFloatingDefinition,
28
- CustomBorderRadiusDefinition,
29
- CustomStylingDefinition,
30
- } from "./Select.definitions";
31
- import Select, { SelectOption, Option } from './Select';
32
-
33
- // =============================================================================
34
- // Datos de ejemplo para las historias
35
- // =============================================================================
36
- const basicOptions: SelectOption[] = [
37
- { value: '10', label: '10' },
38
- { value: '25', label: '25' },
39
- { value: '50', label: '50' },
40
- { value: '100', label: '100' },
41
- ];
42
-
43
- const groupedOptions: SelectOption[] = [
44
- { value: 'gt', label: 'Guatemala', group: 'Centroamérica' },
45
- { value: 'sv', label: 'El Salvador', group: 'Centroamérica' },
46
- { value: 'mx', label: 'México', group: 'Norteamérica' },
47
- { value: 'us', label: 'EE.UU.', group: 'Norteamérica' },
48
- { value: 'ca', label: 'Canadá', group: 'Norteamérica' },
49
- { value: 'br', label: 'Brasil', group: 'Sudamérica' },
50
- { value: 'ar', label: 'Argentina', group: 'Sudamérica' },
51
- ];
52
-
53
- const userOptions: SelectOption[] = [
54
- { value: 'admin', label: 'Administrador', img: 'https://placehold.co/40x40?text=A' },
55
- { value: 'user', label: 'Usuario', img: 'https://placehold.co/40x40?text=U' },
56
- { value: 'moderator', label: 'Moderador', img: 'https://placehold.co/40x40?text=M' },
57
- { value: 'guest', label: 'Invitado', img: 'https://placehold.co/40x40?text=G', disabled: true },
58
- ];
59
-
60
- const transactionStatuses: SelectOption[] = [
61
- { value: 'PENDING', label: 'Pendiente' },
62
- { value: 'REJECTED', label: 'Rechazado' },
63
- { value: 'CANCELED', label: 'Cancelado' },
64
- { value: 'REFUNDED', label: 'Reembolsado' },
65
- { value: 'COMPLETED', label: 'Completado' },
66
- { value: 'EXPIRED', label: 'Expirado' },
67
- ];
68
-
69
- // =============================================================================
70
- // Definición de las meta-propiedades para Storybook
71
- // =============================================================================
72
- const meta: Meta<typeof Select> = {
73
- title: 'Components/Select',
74
- component: Select,
75
- tags: ['autodocs'],
76
- parameters: {
77
- layout: 'padded',
78
- docs: {
79
- description: {
80
- component: 'Componente select personalizado con soporte para múltiples variantes como agrupación, chips, filtros, y renderizado personalizado.',
81
- },
82
- },
83
- },
84
- argTypes: {
85
- label: { control: 'text', description: 'Etiqueta para el campo de selección.' },
86
- options: { control: 'object', description: 'Array de objetos `SelectOption` para las opciones del menú.' },
87
- value: { control: 'object', description: 'Valor(es) seleccionado(s) del select.' },
88
- defaultValue: { control: 'object', description: 'Valor(es) por defecto del select.' },
89
- onChange: { action: 'changed', description: 'Función de callback que se llama cuando el valor del select cambia.' },
90
- size: { control: 'radio', options: ['small', 'medium'], description: 'Define el tamaño del componente Select.' },
91
- multiple: { control: 'boolean', description: 'Si es verdadero, permite la selección de múltiples opciones.' },
92
- filterable: { control: 'boolean', description: 'Si es verdadero, añade un campo de búsqueda para filtrar las opciones.' },
93
- placeholder: { control: 'text', description: 'Texto que se muestra cuando no hay nada seleccionado.' },
94
- children: { control: false, description: 'Componente `Option` para un renderizado personalizado de las opciones del menú.' },
95
- maxHeight: { control: 'number', description: 'Altura máxima del menú desplegable.' },
96
- maxWidth: { control: 'text', description: 'Ancho máximo del menú desplegable.' },
97
- maxChipsToShow: { control: 'number', description: 'Número máximo de chips a mostrar en selección múltiple antes de agrupar.', if: { arg: 'multiple', eq: true } },
98
- renderChipLabel: { control: false, description: 'Función para personalizar el contenido del label de cada chip seleccionado (para múltiple) o del valor mostrado (para individual).', },
99
- labelPosition: {
100
- control: 'radio',
101
- options: ['outside', 'floating'],
102
- description: 'Posición del label. `outside` mantiene el label por encima del input con animación al enfocar. `floating` usa el comportamiento nativo de MUI (label flotando dentro del notched outline).',
103
- },
104
- borderRadius: {
105
- control: 'number',
106
- description: 'Radio del borde del select. Acepta un número (en px) o un string CSS.',
107
- },
108
- sx: {
109
- control: false,
110
- description: 'Prop `sx` que se pasa al MUI Select para overrides personalizados. Se mergea con los estilos por defecto.',
111
- },
112
- }
113
- };
114
-
115
- export default meta;
116
- type Story = StoryObj<typeof Select>;
117
-
118
- // =============================================================================
119
- // Historias existentes (proporcionadas por el usuario)
120
- // =============================================================================
121
- export const SimpleSelect: Story = {
122
- render: () => {
123
- const [value, setValue] = useState<string>('25');
124
- return (
125
- <Box sx={{ width: 200 }}>
126
- <Select
127
- label="Registros por página"
128
- options={basicOptions}
129
- value={value}
130
- onChange={(val) => setValue(val as string)}
131
- maxWidth={150}
132
- />
133
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
134
- </Box>
135
- );
136
- },
137
- parameters: {
138
- docs: {
139
- description: {
140
- story: "Select simple con opciones básicas y valor por defecto."
141
- },
142
- source: { code: SimpleSelectDefinition.trim() } // Referencia a la definición
143
- }
144
- }
145
- };
146
-
147
- export const MultiSelect: Story = {
148
- render: () => {
149
- const [value, setValue] = useState<string[]>([]);
150
- return (
151
- <Box sx={{ width: 400 }}>
152
- <Select
153
- label="Seleccionar estados"
154
- multiple
155
- maxChipsToShow={2}
156
- options={[
157
- { value: 'pending', label: 'Pendiente' },
158
- { value: 'approved', label: 'Aprobado' },
159
- { value: 'rejected', label: 'Rechazado' },
160
- { value: 'canceled', label: 'Cancelado' },
161
- { value: 'completed', label: 'Completado' },
162
- { value: 'invoiced', label: 'Facturado' },
163
- ]}
164
- value={value}
165
- onChange={(val) => setValue(val as string[])}
166
- />
167
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>
168
- </Box>
169
- );
170
- },
171
- parameters: {
172
- docs: {
173
- description: {
174
- story: "Select múltiple que permite seleccionar varias opciones, limitando a 2 chips."
175
- },
176
- source: { code: MultiSelectDefinition.trim() } // Referencia a la definición
177
- }
178
- }
179
- };
180
-
181
- export const WithPlaceholder: Story = {
182
- render: () => {
183
- const [value, setValue] = useState('');
184
- return (
185
- <Box sx={{ width: 300 }}>
186
- <Select
187
- label="Seleccione una opción"
188
- options={basicOptions}
189
- value={value}
190
- onChange={(val) => setValue(val as string)}
191
- placeholder="Ninguna opción seleccionada"
192
- />
193
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value || 'Ninguno'}</Typography>
194
- </Box>
195
- );
196
- },
197
- parameters: {
198
- docs: {
199
- description: {
200
- story: "Select con placeholder sin valor inicial seleccionado."
201
- },
202
- source: { code: WithPlaceholderDefinition.trim() } // Referencia a la definición
203
- }
204
- }
205
- };
206
-
207
- export const WithFilter: Story = {
208
- render: () => {
209
- const [value, setValue] = useState('');
210
- return (
211
- <Box sx={{ width: 300 }}>
212
- <Select
213
- label="Buscar país"
214
- filterable
215
- options={groupedOptions}
216
- value={value}
217
- onChange={(val) => setValue(val as string)}
218
- />
219
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
220
- </Box>
221
- );
222
- },
223
- parameters: {
224
- docs: {
225
- description: {
226
- story: "Select con capacidad de filtrado de opciones."
227
- },
228
- source: { code: WithFilterDefinition.trim() } // Referencia a la definición
229
- }
230
- }
231
- };
232
-
233
- export const WithGroup: Story = {
234
- render: () => {
235
- const [value, setValue] = useState('');
236
- return (
237
- <Box sx={{ width: 300 }}>
238
- <Select
239
- label="País por región"
240
- options={groupedOptions}
241
- value={value}
242
- onChange={(val) => setValue(val as string)}
243
- />
244
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
245
- </Box>
246
- );
247
- },
248
- parameters: {
249
- docs: {
250
- description: {
251
- story: "Select con opciones agrupadas por categorías."
252
- },
253
- source: { code: WithGroupDefinition.trim() } // Referencia a la definición
254
- }
255
- }
256
- };
257
-
258
- export const CustomRenderWithAvatar: Story = {
259
- render: () => {
260
- const [value, setValue] = useState<string[]>([]);
261
- return (
262
- <Box sx={{ width: 300 }}>
263
- <Select
264
- options={userOptions}
265
- multiple
266
- value={value}
267
- onChange={(val) => setValue(val as string[])}
268
- label="Usuarios"
269
- placeholder="Selecciona usuarios"
270
- >
271
- <Option>
272
- {({ img, label }) => (
273
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
274
- <Avatar src={img} sx={{ width: 24, height: 24 }} />
275
- <Typography variant="body2">{label}</Typography>
276
- </Box>
277
- )}
278
- </Option>
279
- </Select>
280
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>
281
- </Box>
282
- );
283
- },
284
- parameters: {
285
- docs: {
286
- description: {
287
- story: "Select con renderizado personalizado de opciones usando avatares."
288
- },
289
- source: { code: CustomRenderWithAvatarDefinition.trim() } // Referencia a la definición
290
- }
291
- }
292
- };
293
-
294
-
295
- // =============================================================================
296
- // Nuevas historias (para cubrir más posibilidades)
297
- // =============================================================================
298
-
299
- export const MultiSelectCustomChipRender: Story = {
300
- render: () => {
301
- const [value, setValue] = useState<string[]>(['pending', 'approved', 'rejected', 'canceled']);
302
- return (
303
- <Box sx={{ width: 400 }}>
304
- <Select
305
- label="Estados de Transacción"
306
- multiple
307
- maxChipsToShow={3} // Muestra 3 chips, luego (+X más)
308
- options={transactionStatuses}
309
- value={value}
310
- onChange={(val) => setValue(val as string[])}
311
- placeholder="Selecciona estados"
312
- renderChipLabel={(item) => ( // Renderizado personalizado para el chip
313
- <Typography variant="caption" sx={{ fontWeight: 'bold' }}>
314
- {item.label.charAt(0).toUpperCase()} {/* Solo la inicial */}
315
- </Typography>
316
- )}
317
- />
318
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>
319
- </Box>
320
- );
321
- },
322
- parameters: {
323
- docs: {
324
- description: {
325
- story: "Select múltiple con un número limitado de chips visibles y un renderizado personalizado para el label de cada chip (solo la inicial)."
326
- },
327
- source: { code: MultiSelectCustomChipRenderDefinition.trim() } // Referencia a la definición
328
- }
329
- }
330
- };
331
-
332
- export const MultiSelectCustomChipRenderFullLabel: Story = {
333
- render: () => {
334
- const [value, setValue] = useState<string[]>(['gt', 'mx', 'us', 'ca', 'br']);
335
- return (
336
- <Box sx={{ width: 400 }}>
337
- <Select
338
- label="Países seleccionados"
339
- multiple
340
- maxChipsToShow={3} // Muestra 3 chips, luego (+X más)
341
- options={groupedOptions}
342
- value={value}
343
- onChange={(val) => setValue(val as string[])}
344
- placeholder="Selecciona países"
345
- renderChipLabel={(item) => ( // Renderizado personalizado para el chip
346
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>
347
- {item.img && <Avatar src={item.img} sx={{ width: 18, height: 18 }} />} {/* Opcional: avatar en el chip */}
348
- <Typography variant="caption" sx={{ fontWeight: 'medium' }}>
349
- {item.label}
350
- </Typography>
351
- </Box>
352
- )}
353
- />
354
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>
355
- </Box>
356
- );
357
- },
358
- parameters: {
359
- docs: {
360
- story: "Select múltiple con renderizado personalizado completo de los chips, incluyendo avatar y texto completo, y limitando el número de chips visibles."
361
- },
362
- source: { code: MultiSelectCustomChipRenderFullLabelDefinition.trim() } // Referencia a la definición
363
- }
364
- };
365
-
366
-
367
- export const ConstrainedHeight: Story = {
368
- render: () => {
369
- const [value, setValue] = useState('');
370
- return (
371
- <Box sx={{ width: 300 }}>
372
- <Select
373
- label="Opciones (Altura Limitada)"
374
- options={groupedOptions.concat(userOptions).concat(transactionStatuses)} // Muchas opciones
375
- value={value}
376
- onChange={(val) => setValue(val as string)}
377
- maxHeight={150} // Altura máxima del menú
378
- />
379
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
380
- </Box>
381
- );
382
- },
383
- parameters: {
384
- docs: {
385
- story: "Select con altura máxima limitada para el menú desplegable, mostrando scroll si es necesario."
386
- },
387
- source: { code: ConstrainedHeightDefinition.trim() } // Referencia a la definición
388
- }
389
- };
390
-
391
- export const ConstrainedWidth: Story = {
392
- render: () => {
393
- const [value, setValue] = useState('');
394
- return (
395
- <Box sx={{ width: 200 }}> {/* El Select en sí es más angosto */}
396
- <Select
397
- label="Opciones (Ancho Limitado)"
398
- options={basicOptions.concat(groupedOptions)}
399
- value={value}
400
- onChange={(val) => setValue(val as string)}
401
- maxWidth={100} // Ancho máximo del menú
402
- />
403
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
404
- </Box>
405
- );
406
- },
407
- parameters: {
408
- docs: {
409
- story: "Select con ancho máximo limitado para el menú desplegable."
410
- },
411
- source: { code: ConstrainedWidthDefinition.trim() } // Referencia a la definición
412
- }
413
- };
414
-
415
- export const AllFeaturesCombined: Story = {
416
- render: () => {
417
- const [value, setValue] = useState<string[]>(['gt', 'admin', 'PENDING', 'ca', 'user', 'COMPLETED']);
418
- return (
419
- <Box sx={{ width: 500 }}>
420
- <Select
421
- label="Selección Completa"
422
- multiple
423
- filterable
424
- maxChipsToShow={3}
425
- maxHeight={250}
426
- maxWidth="400px"
427
- options={groupedOptions.concat(userOptions).concat(transactionStatuses)}
428
- value={value}
429
- onChange={(val) => setValue(val as string[])}
430
- placeholder="Busca y selecciona todo tipo de elementos"
431
- renderChipLabel={(item) => (
432
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>
433
- {item.img && <Avatar src={item.img} sx={{ width: 16, height: 16 }} />}
434
- <Typography variant="caption" sx={{ fontWeight: 'bold' }}>
435
- {item.label.length > 10 ? item.label.substring(0, 7) + '...' : item.label}
436
- </Typography>
437
- </Box>
438
- )}
439
- >
440
- <Option>
441
- {(item) => (
442
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, my: 0.5 }}>
443
- {item.img && <Avatar src={item.img} sx={{ width: 28, height: 28 }} />}
444
- <Box>
445
- <Typography variant="body2" fontWeight="medium">{item.label}</Typography>
446
- {item.group && (
447
- <Typography variant="caption" color="text.secondary">
448
- Grupo: {item.group}
449
- </Typography>
450
- )}
451
- {item.disabled && <Chip label="No disponible" size="small" color="warning" sx={{ ml: 1 }} />}
452
- </Box>
453
- </Box>
454
- )}
455
- </Option>
456
- </Select>
457
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>
458
- </Box>
459
- );
460
- },
461
- parameters: {
462
- docs: {
463
- description: {
464
- story: "Un `Select` que demuestra una combinación de todas las características: selección múltiple, filtrado, opciones agrupadas, renderizado personalizado de opciones y chips, y límites de altura/ancho."
465
- },
466
- source: { code: AllFeaturesCombinedDefinition.trim() } // Referencia a la definición
467
- }
468
- }
469
- };
470
-
471
- export const EmptyOptions: Story = {
472
- args: {
473
- label: 'Seleccionar (Vacío)',
474
- options: [],
475
- value: undefined,
476
- placeholder: 'No hay opciones disponibles',
477
- },
478
- render: (args) => {
479
- const [value, setValue] = useState(args.value);
480
- return (
481
- <Box sx={{ width: 300 }}>
482
- <Select {...args} value={value ?? ''} onChange={setValue} />
483
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value || 'Ninguno'}</Typography>
484
- </Box>
485
- );
486
- },
487
- parameters: {
488
- docs: {
489
- story: "Select que se muestra cuando no hay opciones disponibles."
490
- },
491
- source: { code: EmptyOptionsDefinition.trim() } // Referencia a la definición
492
- }
493
- };
494
-
495
- export const SelectWithManyOptions: Story = {
496
- render: () => {
497
- const manyOptions = Array.from({ length: 50 }, (_, i) => ({
498
- value: `option-${i}`,
499
- label: `Opción ${i + 1}`,
500
- group: i < 25 ? 'Grupo A' : 'Grupo B',
501
- }));
502
- const [value, setValue] = useState('');
503
- return (
504
- <Box sx={{ width: 300 }}>
505
- <Select
506
- label="Muchas Opciones"
507
- options={manyOptions}
508
- value={value}
509
- onChange={(val) => setValue(val as string)}
510
- filterable
511
- maxHeight={200}
512
- />
513
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
514
- </Box>
515
- );
516
- },
517
- parameters: {
518
- docs: {
519
- story: "Select con un gran número de opciones para demostrar el scroll y el filtrado eficiente."
520
- },
521
- source: { code: SelectWithManyOptionsDefinition.trim() } // Referencia a la definición
522
- }
523
- };
524
-
525
- // =============================================================================
526
- // Historias de personalización (labelPosition / borderRadius / sx)
527
- // =============================================================================
528
- export const LabelPositionFloating: Story = {
529
- render: () => {
530
- const [value, setValue] = useState('');
531
- return (
532
- <Box sx={{ width: 300 }}>
533
- <Select
534
- label="Label flotante (MUI nativo)"
535
- options={basicOptions}
536
- value={value}
537
- onChange={(val) => setValue(val as string)}
538
- labelPosition="floating"
539
- />
540
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value || 'Ninguno'}</Typography>
541
- </Box>
542
- );
543
- },
544
- parameters: {
545
- docs: {
546
- description: {
547
- story: "Select con `labelPosition='floating'`, que usa el comportamiento nativo de MUI (label flotando dentro del notched outline al enfocar). Útil cuando se necesita el look estándar de Material UI."
548
- },
549
- source: { code: LabelPositionFloatingDefinition.trim() }
550
- }
551
- }
552
- };
553
-
554
- export const CustomBorderRadius: Story = {
555
- render: () => {
556
- const [valueA, setValueA] = useState('25');
557
- const [valueB, setValueB] = useState('25');
558
- const [valueC, setValueC] = useState('25');
559
- return (
560
- <Box sx={{ width: 300, display: 'flex', flexDirection: 'column', gap: 2 }}>
561
- <Select
562
- label="Sin border radius"
563
- options={basicOptions}
564
- value={valueA}
565
- onChange={(val) => setValueA(val as string)}
566
- borderRadius={0}
567
- />
568
- <Select
569
- label="Border radius estándar"
570
- options={basicOptions}
571
- value={valueB}
572
- onChange={(val) => setValueB(val as string)}
573
- borderRadius={10}
574
- />
575
- <Select
576
- label="Pill-shaped"
577
- options={basicOptions}
578
- value={valueC}
579
- onChange={(val) => setValueC(val as string)}
580
- borderRadius={999}
581
- />
582
- </Box>
583
- );
584
- },
585
- parameters: {
586
- docs: {
587
- description: {
588
- story: "Control del radio del borde mediante la prop `borderRadius`. Acepta un número (en px) o un string CSS como `'0.5rem'`."
589
- },
590
- source: { code: CustomBorderRadiusDefinition.trim() }
591
- }
592
- }
593
- };
594
-
595
- export const CustomStyling: Story = {
596
- render: () => {
597
- const [value, setValue] = useState<string[]>(['admin']);
598
- return (
599
- <Box sx={{ width: 360 }}>
600
- <Select
601
- label="Select con estilos personalizados"
602
- options={userOptions}
603
- multiple
604
- value={value}
605
- onChange={(val) => setValue(val as string[])}
606
- placeholder="Selecciona usuarios"
607
- sx={{
608
- '& .MuiInputBase-root': {
609
- backgroundColor: 'action.hover',
610
- },
611
- '& .MuiOutlinedInput-notchedOutline': {
612
- borderColor: 'primary.main',
613
- borderWidth: '2px',
614
- },
615
- '&:hover .MuiOutlinedInput-notchedOutline': {
616
- borderColor: 'primary.dark',
617
- },
618
- }}
619
- />
620
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>
621
- </Box>
622
- );
623
- },
624
- parameters: {
625
- docs: {
626
- description: {
627
- story: "Demuestra cómo el consumidor puede pasar un `sx` personalizado. El sx del consumidor se mergea sobre los defaults del componente, permitiendo overrides granulares (fondo, borde, hover, etc.) sin romper el comportamiento del label."
628
- },
629
- source: { code: CustomStylingDefinition.trim() }
630
- }
631
- }
632
- };
633
-
634
- export const AsyncSelect: Story = {
635
- render: () => {
636
- const [value, setValue] = useState('');
637
-
638
- const mockAsyncOptions = [
639
- { value: 'apple', label: 'Apple' },
640
- { value: 'banana', label: 'Banana' },
641
- { value: 'orange', label: 'Orange' },
642
- { value: 'grape', label: 'Grape' },
643
- { value: 'strawberry', label: 'Strawberry' },
644
- { value: 'blueberry', label: 'Blueberry' },
645
- { value: 'pineapple', label: 'Pineapple' },
646
- { value: 'watermelon', label: 'Watermelon' },
647
- { value: 'kiwi', label: 'Kiwi' },
648
- { value: 'lemon', label: 'Lemon' },
649
- ];
650
-
651
- // Simulate an API call
652
- const simulatedLoadOptions = (inputValue: string): Promise<SelectOption[]> => {
653
- return new Promise((resolve) => {
654
- setTimeout(() => {
655
- const filtered = mockAsyncOptions.filter(option =>
656
- option.label.toLowerCase().includes(inputValue.toLowerCase())
657
- );
658
- resolve(filtered);
659
- }, 800); // Simulate network delay
660
- });
661
- };
662
-
663
- return (
664
- <Box sx={{ width: 300 }}>
665
- <Select
666
-
667
- loadOptions={simulatedLoadOptions}
668
- value={value}
669
- onChange={(val) => setValue(val as string)}
670
- placeholder="Escribe para buscar..."
671
- loadingMessage="Buscando frutas..."
672
- noOptionsMessage="No se encontraron frutas."
673
- debounceTimeout={500} // tiempo que tardara el input en buscar despues de haber escrito la ultima letra
674
- />
675
- <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>
676
- </Box>
677
- );
678
- },
679
- parameters: {
680
- docs: {
681
- description: {
682
- story: "Un `Select` que carga opciones de forma asíncrona a medida que el usuario escribe, con un retraso simulado."
683
- },
684
- source: { code: AsyncSelectDefinition.trim() }
685
- }
686
- }
687
- };