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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/package.json +164 -43
  2. package/.dockerignore +0 -8
  3. package/.github/workflows/publish.yml +0 -107
  4. package/.prettierrc +0 -3
  5. package/.storybook/main.ts +0 -19
  6. package/.storybook/preview.ts +0 -14
  7. package/.storybook/vitest.setup.ts +0 -9
  8. package/Dockerfile +0 -37
  9. package/Readme.md +0 -243
  10. package/build.js +0 -102
  11. package/chromatic.config.json +0 -5
  12. package/cleanDirectories.js +0 -40
  13. package/dist/package.json +0 -197
  14. package/rollup.config.cjs +0 -87
  15. package/src/components/ActionMenu/ActionMenu.stories.tsx +0 -230
  16. package/src/components/ActionMenu/ActionMenu.tsx +0 -174
  17. package/src/components/ActionMenu/index.ts +0 -2
  18. package/src/components/AppBar/AppBar.stories.tsx +0 -272
  19. package/src/components/AppBar/AppBar.sx.ts +0 -32
  20. package/src/components/AppBar/AppBar.tsx +0 -123
  21. package/src/components/AppBar/AppBarBrand.tsx +0 -120
  22. package/src/components/AppBar/AppBarContext.ts +0 -25
  23. package/src/components/AppBar/AppBarMenuToggle.tsx +0 -90
  24. package/src/components/AppBar/AppBarUserMenu.tsx +0 -217
  25. package/src/components/AppBar/index.ts +0 -25
  26. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -477
  27. package/src/components/Autocomplete/Autocomplete.helpers.ts +0 -60
  28. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -748
  29. package/src/components/Autocomplete/Autocomplete.sx.ts +0 -30
  30. package/src/components/Autocomplete/Autocomplete.tsx +0 -361
  31. package/src/components/Autocomplete/Autocomplete.types.ts +0 -13
  32. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +0 -55
  33. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +0 -17
  34. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +0 -31
  35. package/src/components/Autocomplete/index.ts +0 -12
  36. package/src/components/Avatar/Avatar.definitions.ts +0 -162
  37. package/src/components/Avatar/Avatar.stories.tsx +0 -258
  38. package/src/components/Avatar/Avatar.tsx +0 -206
  39. package/src/components/Avatar/index.ts +0 -1
  40. package/src/components/Button/Button.definition.ts +0 -97
  41. package/src/components/Button/Button.stories.tsx +0 -285
  42. package/src/components/Button/Button.tsx +0 -67
  43. package/src/components/Button/index.ts +0 -1
  44. package/src/components/Card/Card.definition.ts +0 -5
  45. package/src/components/Card/Card.stories.tsx +0 -221
  46. package/src/components/Card/Card.sx.ts +0 -104
  47. package/src/components/Card/Card.tsx +0 -200
  48. package/src/components/Card/index.ts +0 -9
  49. package/src/components/Chip/Chip.definitions.ts +0 -167
  50. package/src/components/Chip/Chip.stories.tsx +0 -265
  51. package/src/components/Chip/Chip.tsx +0 -61
  52. package/src/components/Chip/index.ts +0 -1
  53. package/src/components/Column/Column.tsx +0 -29
  54. package/src/components/Column/index.ts +0 -1
  55. package/src/components/DatePicker/DatePicker.definitions.ts +0 -228
  56. package/src/components/DatePicker/DatePicker.helpers.ts +0 -24
  57. package/src/components/DatePicker/DatePicker.stories.tsx +0 -309
  58. package/src/components/DatePicker/DatePicker.sx.ts +0 -33
  59. package/src/components/DatePicker/DatePicker.tsx +0 -189
  60. package/src/components/DatePicker/DatePicker.types.ts +0 -10
  61. package/src/components/DatePicker/index.ts +0 -9
  62. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  63. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  64. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  65. package/src/components/DateRangePicker/index.ts +0 -1
  66. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -256
  67. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +0 -38
  68. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -418
  69. package/src/components/DateTimePicker/DateTimePicker.sx.ts +0 -30
  70. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -225
  71. package/src/components/DateTimePicker/DateTimePicker.types.ts +0 -10
  72. package/src/components/DateTimePicker/index.ts +0 -9
  73. package/src/components/Drawer/Drawer.stories.tsx +0 -270
  74. package/src/components/Drawer/Drawer.sx.ts +0 -106
  75. package/src/components/Drawer/Drawer.tsx +0 -214
  76. package/src/components/Drawer/DrawerContext.ts +0 -26
  77. package/src/components/Drawer/DrawerItem.tsx +0 -110
  78. package/src/components/Drawer/index.ts +0 -10
  79. package/src/components/Flyout/Flyout.stories.tsx +0 -282
  80. package/src/components/Flyout/Flyout.tsx +0 -122
  81. package/src/components/Flyout/index.ts +0 -1
  82. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  83. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  84. package/src/components/Gallery/Gallery.tsx +0 -118
  85. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  86. package/src/components/Gallery/GalleryMain.tsx +0 -84
  87. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  88. package/src/components/Gallery/index.ts +0 -1
  89. package/src/components/Icon/Icon.stories.tsx +0 -121
  90. package/src/components/Icon/Icon.tsx +0 -175
  91. package/src/components/Icon/index.ts +0 -2
  92. package/src/components/Input/Input.definitions.ts +0 -324
  93. package/src/components/Input/Input.helpers.ts +0 -49
  94. package/src/components/Input/Input.stories.tsx +0 -499
  95. package/src/components/Input/Input.sx.ts +0 -42
  96. package/src/components/Input/Input.tsx +0 -141
  97. package/src/components/Input/Input.types.ts +0 -10
  98. package/src/components/Input/index.ts +0 -9
  99. package/src/components/InputGroup/InputGroup.definitions.ts +0 -158
  100. package/src/components/InputGroup/InputGroup.stories.tsx +0 -267
  101. package/src/components/InputGroup/InputGroup.tsx +0 -179
  102. package/src/components/InputGroup/index.ts +0 -1
  103. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  104. package/src/components/MenuButton/MenuButton.tsx +0 -100
  105. package/src/components/MenuButton/index.ts +0 -1
  106. package/src/components/Modal/Modal.stories.tsx +0 -721
  107. package/src/components/Modal/Modal.tsx +0 -355
  108. package/src/components/Modal/ModalBody.tsx +0 -16
  109. package/src/components/Modal/ModalFooter.tsx +0 -71
  110. package/src/components/Modal/ModalHeader.tsx +0 -18
  111. package/src/components/Modal/index.ts +0 -6
  112. package/src/components/PageLoader/PageLoader.stories.tsx +0 -217
  113. package/src/components/PageLoader/PageLoader.tsx +0 -96
  114. package/src/components/PageLoader/index.ts +0 -2
  115. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +0 -158
  116. package/src/components/ScrollTopButton/ScrollTopButton.tsx +0 -135
  117. package/src/components/ScrollTopButton/index.ts +0 -8
  118. package/src/components/ScrollTopButton/scrollToTop.ts +0 -37
  119. package/src/components/Select/Select.definitions.ts +0 -602
  120. package/src/components/Select/Select.helpers.ts +0 -71
  121. package/src/components/Select/Select.stories.tsx +0 -687
  122. package/src/components/Select/Select.sx.ts +0 -14
  123. package/src/components/Select/Select.tsx +0 -429
  124. package/src/components/Select/Select.types.ts +0 -15
  125. package/src/components/Select/_parts/SelectMenuItem.tsx +0 -40
  126. package/src/components/Select/_parts/SelectSearchHeader.tsx +0 -51
  127. package/src/components/Select/_parts/SelectValue.tsx +0 -96
  128. package/src/components/Select/index.ts +0 -14
  129. package/src/components/Stat/Stat.stories.tsx +0 -85
  130. package/src/components/Stat/Stat.tsx +0 -117
  131. package/src/components/Stat/index.ts +0 -2
  132. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  133. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  134. package/src/components/StatusMessage/index.ts +0 -2
  135. package/src/components/Stepper/Step.tsx +0 -21
  136. package/src/components/Stepper/Stepper.definition.ts +0 -75
  137. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  138. package/src/components/Stepper/Stepper.tsx +0 -75
  139. package/src/components/Stepper/index.ts +0 -2
  140. package/src/components/Table/EmptyTable.png +0 -0
  141. package/src/components/Table/Table.definition.ts +0 -580
  142. package/src/components/Table/Table.stories.tsx +0 -853
  143. package/src/components/Table/Table.tsx +0 -495
  144. package/src/components/Table/data.ts +0 -134
  145. package/src/components/Table/exportsUtils.ts +0 -195
  146. package/src/components/Table/index.ts +0 -3
  147. package/src/components/Table/types.ts +0 -34
  148. package/src/components/Tabs/Tab.definition.ts +0 -53
  149. package/src/components/Tabs/Tab.tsx +0 -19
  150. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  151. package/src/components/Tabs/Tabs.tsx +0 -99
  152. package/src/components/Tabs/_tabUtils.tsx +0 -4
  153. package/src/components/Tabs/index.ts +0 -2
  154. package/src/components/Timeline/Timeline.definition.ts +0 -43
  155. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  156. package/src/components/Timeline/Timeline.tsx +0 -49
  157. package/src/components/Timeline/TimelineItem.tsx +0 -31
  158. package/src/components/Timeline/index.ts +0 -2
  159. package/src/components/Tooltip/Tooltip.stories.tsx +0 -129
  160. package/src/components/Tooltip/Tooltip.tsx +0 -58
  161. package/src/components/Tooltip/index.ts +0 -1
  162. package/src/components/_shared/formField.sx.ts +0 -118
  163. package/src/components/_shared/resolvePreset.ts +0 -35
  164. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  165. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  166. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  167. package/src/hooks/ClipBoard/index.ts +0 -1
  168. package/src/hooks/Wizard/Wizard.stories.tsx +0 -301
  169. package/src/hooks/Wizard/WizardContext.tsx +0 -166
  170. package/src/hooks/Wizard/index.ts +0 -6
  171. package/src/hooks/Wizard/useWizard.ts +0 -13
  172. package/src/index.ts +0 -17
  173. package/src/mui.ts +0 -54
  174. package/src/styles.css +0 -3
  175. package/src/theme/componentStyles.ts +0 -47
  176. package/src/theme/tokens.ts +0 -43
  177. package/tailwind.config.js +0 -10
  178. package/tsconfig.json +0 -48
  179. package/tsup.config.js +0 -41
  180. package/vite.config.js +0 -132
  181. package/vitest.config.ts +0 -35
  182. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  183. /package/{dist/Button-C17mExpd.cjs.map → Button-C17mExpd.cjs.map} +0 -0
  184. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  185. /package/{dist/Button-UkkP-bNw.js.map → Button-UkkP-bNw.js.map} +0 -0
  186. /package/{dist/README.md → README.md} +0 -0
  187. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs +0 -0
  188. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs.map +0 -0
  189. /package/{dist/components → components}/ActionMenu/ActionMenu.d.ts +0 -0
  190. /package/{dist/components → components}/ActionMenu/ActionMenu.js +0 -0
  191. /package/{dist/components → components}/ActionMenu/ActionMenu.js.map +0 -0
  192. /package/{dist/components → components}/ActionMenu/index.d.ts +0 -0
  193. /package/{dist/components → components}/ActionMenu.d.ts +0 -0
  194. /package/{dist/components → components}/AppBar/AppBar.cjs +0 -0
  195. /package/{dist/components → components}/AppBar/AppBar.cjs.map +0 -0
  196. /package/{dist/components → components}/AppBar/AppBar.d.ts +0 -0
  197. /package/{dist/components → components}/AppBar/AppBar.js +0 -0
  198. /package/{dist/components → components}/AppBar/AppBar.js.map +0 -0
  199. /package/{dist/components → components}/AppBar/AppBar.sx.d.ts +0 -0
  200. /package/{dist/components → components}/AppBar/AppBarBrand.d.ts +0 -0
  201. /package/{dist/components → components}/AppBar/AppBarContext.d.ts +0 -0
  202. /package/{dist/components → components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  203. /package/{dist/components → components}/AppBar/AppBarUserMenu.d.ts +0 -0
  204. /package/{dist/components → components}/AppBar/index.d.ts +0 -0
  205. /package/{dist/components → components}/AppBar.d.ts +0 -0
  206. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs +0 -0
  207. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs.map +0 -0
  208. /package/{dist/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  209. /package/{dist/components → components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  210. /package/{dist/components → components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  211. /package/{dist/components → components}/Autocomplete/Autocomplete.js +0 -0
  212. /package/{dist/components → components}/Autocomplete/Autocomplete.js.map +0 -0
  213. /package/{dist/components → components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  214. /package/{dist/components → components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  215. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  216. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  217. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  218. /package/{dist/components → components}/Autocomplete/index.d.ts +0 -0
  219. /package/{dist/components → components}/Autocomplete.d.ts +0 -0
  220. /package/{dist/components → components}/Avatar/Avatar.cjs +0 -0
  221. /package/{dist/components → components}/Avatar/Avatar.cjs.map +0 -0
  222. /package/{dist/components → components}/Avatar/Avatar.d.ts +0 -0
  223. /package/{dist/components → components}/Avatar/Avatar.definitions.d.ts +0 -0
  224. /package/{dist/components → components}/Avatar/Avatar.js +0 -0
  225. /package/{dist/components → components}/Avatar/Avatar.js.map +0 -0
  226. /package/{dist/components → components}/Avatar/index.d.ts +0 -0
  227. /package/{dist/components → components}/Avatar.d.ts +0 -0
  228. /package/{dist/components → components}/Button/Button.cjs +0 -0
  229. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  230. /package/{dist/components → components}/Button/Button.d.ts +0 -0
  231. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  232. /package/{dist/components → components}/Button/Button.js +0 -0
  233. /package/{dist/components → components}/Button/Button.js.map +0 -0
  234. /package/{dist/components → components}/Button/index.d.ts +0 -0
  235. /package/{dist/components → components}/Button.d.ts +0 -0
  236. /package/{dist/components → components}/Card/Card.cjs +0 -0
  237. /package/{dist/components → components}/Card/Card.cjs.map +0 -0
  238. /package/{dist/components → components}/Card/Card.d.ts +0 -0
  239. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  240. /package/{dist/components → components}/Card/Card.js +0 -0
  241. /package/{dist/components → components}/Card/Card.js.map +0 -0
  242. /package/{dist/components → components}/Card/Card.sx.d.ts +0 -0
  243. /package/{dist/components → components}/Card/index.d.ts +0 -0
  244. /package/{dist/components → components}/Card.d.ts +0 -0
  245. /package/{dist/components → components}/Chip/Chip.cjs +0 -0
  246. /package/{dist/components → components}/Chip/Chip.cjs.map +0 -0
  247. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  248. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  249. /package/{dist/components → components}/Chip/Chip.js +0 -0
  250. /package/{dist/components → components}/Chip/Chip.js.map +0 -0
  251. /package/{dist/components → components}/Chip/index.d.ts +0 -0
  252. /package/{dist/components → components}/Chip.d.ts +0 -0
  253. /package/{dist/components → components}/Column/Column.cjs +0 -0
  254. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  255. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  256. /package/{dist/components → components}/Column/Column.js +0 -0
  257. /package/{dist/components → components}/Column/Column.js.map +0 -0
  258. /package/{dist/components → components}/Column/index.d.ts +0 -0
  259. /package/{dist/components → components}/Column.d.ts +0 -0
  260. /package/{dist/components → components}/DatePicker/DatePicker.cjs +0 -0
  261. /package/{dist/components → components}/DatePicker/DatePicker.cjs.map +0 -0
  262. /package/{dist/components → components}/DatePicker/DatePicker.d.ts +0 -0
  263. /package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  264. /package/{dist/components → components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  265. /package/{dist/components → components}/DatePicker/DatePicker.js +0 -0
  266. /package/{dist/components → components}/DatePicker/DatePicker.js.map +0 -0
  267. /package/{dist/components → components}/DatePicker/DatePicker.sx.d.ts +0 -0
  268. /package/{dist/components → components}/DatePicker/DatePicker.types.d.ts +0 -0
  269. /package/{dist/components → components}/DatePicker/index.d.ts +0 -0
  270. /package/{dist/components → components}/DatePicker.d.ts +0 -0
  271. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  272. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  273. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  274. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  275. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  276. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  277. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  278. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  279. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs +0 -0
  280. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  281. /package/{dist/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  282. /package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  283. /package/{dist/components → components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  284. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js +0 -0
  285. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js.map +0 -0
  286. /package/{dist/components → components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  287. /package/{dist/components → components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  288. /package/{dist/components → components}/DateTimePicker/index.d.ts +0 -0
  289. /package/{dist/components → components}/DateTimePicker.d.ts +0 -0
  290. /package/{dist/components → components}/Drawer/Drawer.cjs +0 -0
  291. /package/{dist/components → components}/Drawer/Drawer.cjs.map +0 -0
  292. /package/{dist/components → components}/Drawer/Drawer.d.ts +0 -0
  293. /package/{dist/components → components}/Drawer/Drawer.js +0 -0
  294. /package/{dist/components → components}/Drawer/Drawer.js.map +0 -0
  295. /package/{dist/components → components}/Drawer/Drawer.sx.d.ts +0 -0
  296. /package/{dist/components → components}/Drawer/DrawerContext.d.ts +0 -0
  297. /package/{dist/components → components}/Drawer/DrawerItem.d.ts +0 -0
  298. /package/{dist/components → components}/Drawer/index.d.ts +0 -0
  299. /package/{dist/components → components}/Drawer.d.ts +0 -0
  300. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  301. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  302. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  303. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  304. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  305. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  306. /package/{dist/components → components}/Flyout.d.ts +0 -0
  307. /package/{dist/components → components}/Gallery/Gallery.cjs +0 -0
  308. /package/{dist/components → components}/Gallery/Gallery.cjs.map +0 -0
  309. /package/{dist/components → components}/Gallery/Gallery.d.ts +0 -0
  310. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  311. /package/{dist/components → components}/Gallery/Gallery.js +0 -0
  312. /package/{dist/components → components}/Gallery/Gallery.js.map +0 -0
  313. /package/{dist/components → components}/Gallery/GalleryLightbox.d.ts +0 -0
  314. /package/{dist/components → components}/Gallery/GalleryMain.d.ts +0 -0
  315. /package/{dist/components → components}/Gallery/GalleryThumbnails.d.ts +0 -0
  316. /package/{dist/components → components}/Gallery/index.d.ts +0 -0
  317. /package/{dist/components → components}/Gallery.d.ts +0 -0
  318. /package/{dist/components → components}/Icon/Icon.cjs +0 -0
  319. /package/{dist/components → components}/Icon/Icon.cjs.map +0 -0
  320. /package/{dist/components → components}/Icon/Icon.d.ts +0 -0
  321. /package/{dist/components → components}/Icon/Icon.js +0 -0
  322. /package/{dist/components → components}/Icon/Icon.js.map +0 -0
  323. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  324. /package/{dist/components → components}/Icon.d.ts +0 -0
  325. /package/{dist/components → components}/Input/Input.cjs +0 -0
  326. /package/{dist/components → components}/Input/Input.cjs.map +0 -0
  327. /package/{dist/components → components}/Input/Input.d.ts +0 -0
  328. /package/{dist/components → components}/Input/Input.definitions.d.ts +0 -0
  329. /package/{dist/components → components}/Input/Input.helpers.d.ts +0 -0
  330. /package/{dist/components → components}/Input/Input.js +0 -0
  331. /package/{dist/components → components}/Input/Input.js.map +0 -0
  332. /package/{dist/components → components}/Input/Input.sx.d.ts +0 -0
  333. /package/{dist/components → components}/Input/Input.types.d.ts +0 -0
  334. /package/{dist/components → components}/Input/index.d.ts +0 -0
  335. /package/{dist/components → components}/Input.d.ts +0 -0
  336. /package/{dist/components → components}/InputGroup/InputGroup.cjs +0 -0
  337. /package/{dist/components → components}/InputGroup/InputGroup.cjs.map +0 -0
  338. /package/{dist/components → components}/InputGroup/InputGroup.d.ts +0 -0
  339. /package/{dist/components → components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  340. /package/{dist/components → components}/InputGroup/InputGroup.js +0 -0
  341. /package/{dist/components → components}/InputGroup/InputGroup.js.map +0 -0
  342. /package/{dist/components → components}/InputGroup/index.d.ts +0 -0
  343. /package/{dist/components → components}/InputGroup.d.ts +0 -0
  344. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  345. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  346. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  347. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  348. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  349. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  350. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  351. /package/{dist/components → components}/Modal/Modal.cjs +0 -0
  352. /package/{dist/components → components}/Modal/Modal.cjs.map +0 -0
  353. /package/{dist/components → components}/Modal/Modal.d.ts +0 -0
  354. /package/{dist/components → components}/Modal/Modal.js +0 -0
  355. /package/{dist/components → components}/Modal/Modal.js.map +0 -0
  356. /package/{dist/components → components}/Modal/ModalBody.d.ts +0 -0
  357. /package/{dist/components → components}/Modal/ModalFooter.d.ts +0 -0
  358. /package/{dist/components → components}/Modal/ModalHeader.d.ts +0 -0
  359. /package/{dist/components → components}/Modal/index.d.ts +0 -0
  360. /package/{dist/components → components}/Modal.d.ts +0 -0
  361. /package/{dist/components → components}/PageLoader/PageLoader.cjs +0 -0
  362. /package/{dist/components → components}/PageLoader/PageLoader.cjs.map +0 -0
  363. /package/{dist/components → components}/PageLoader/PageLoader.d.ts +0 -0
  364. /package/{dist/components → components}/PageLoader/PageLoader.js +0 -0
  365. /package/{dist/components → components}/PageLoader/PageLoader.js.map +0 -0
  366. /package/{dist/components → components}/PageLoader/index.d.ts +0 -0
  367. /package/{dist/components → components}/PageLoader.d.ts +0 -0
  368. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  369. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  370. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  371. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js +0 -0
  372. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  373. /package/{dist/components → components}/ScrollTopButton/index.d.ts +0 -0
  374. /package/{dist/components → components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  375. /package/{dist/components → components}/ScrollTopButton.d.ts +0 -0
  376. /package/{dist/components → components}/Select/Select.cjs +0 -0
  377. /package/{dist/components → components}/Select/Select.cjs.map +0 -0
  378. /package/{dist/components → components}/Select/Select.d.ts +0 -0
  379. /package/{dist/components → components}/Select/Select.definitions.d.ts +0 -0
  380. /package/{dist/components → components}/Select/Select.helpers.d.ts +0 -0
  381. /package/{dist/components → components}/Select/Select.js +0 -0
  382. /package/{dist/components → components}/Select/Select.js.map +0 -0
  383. /package/{dist/components → components}/Select/Select.sx.d.ts +0 -0
  384. /package/{dist/components → components}/Select/Select.types.d.ts +0 -0
  385. /package/{dist/components → components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  386. /package/{dist/components → components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  387. /package/{dist/components → components}/Select/_parts/SelectValue.d.ts +0 -0
  388. /package/{dist/components → components}/Select/index.d.ts +0 -0
  389. /package/{dist/components → components}/Select.d.ts +0 -0
  390. /package/{dist/components → components}/Stat/Stat.cjs +0 -0
  391. /package/{dist/components → components}/Stat/Stat.cjs.map +0 -0
  392. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  393. /package/{dist/components → components}/Stat/Stat.js +0 -0
  394. /package/{dist/components → components}/Stat/Stat.js.map +0 -0
  395. /package/{dist/components → components}/Stat/index.d.ts +0 -0
  396. /package/{dist/components → components}/Stat.d.ts +0 -0
  397. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs +0 -0
  398. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs.map +0 -0
  399. /package/{dist/components → components}/StatusMessage/StatusMessage.d.ts +0 -0
  400. /package/{dist/components → components}/StatusMessage/StatusMessage.js +0 -0
  401. /package/{dist/components → components}/StatusMessage/StatusMessage.js.map +0 -0
  402. /package/{dist/components → components}/StatusMessage/index.d.ts +0 -0
  403. /package/{dist/components → components}/StatusMessage.d.ts +0 -0
  404. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  405. /package/{dist/components → components}/Stepper/Stepper.cjs +0 -0
  406. /package/{dist/components → components}/Stepper/Stepper.cjs.map +0 -0
  407. /package/{dist/components → components}/Stepper/Stepper.d.ts +0 -0
  408. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  409. /package/{dist/components → components}/Stepper/Stepper.js +0 -0
  410. /package/{dist/components → components}/Stepper/Stepper.js.map +0 -0
  411. /package/{dist/components → components}/Stepper/index.d.ts +0 -0
  412. /package/{dist/components → components}/Stepper.d.ts +0 -0
  413. /package/{dist/components → components}/Table/Table.cjs +0 -0
  414. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  415. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  416. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  417. /package/{dist/components → components}/Table/Table.js +0 -0
  418. /package/{dist/components → components}/Table/Table.js.map +0 -0
  419. /package/{dist/components → components}/Table/data.d.ts +0 -0
  420. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  421. /package/{dist/components → components}/Table/index.d.ts +0 -0
  422. /package/{dist/components → components}/Table/types.d.ts +0 -0
  423. /package/{dist/components → components}/Table.d.ts +0 -0
  424. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  425. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  426. /package/{dist/components → components}/Tabs/Tabs.cjs +0 -0
  427. /package/{dist/components → components}/Tabs/Tabs.cjs.map +0 -0
  428. /package/{dist/components → components}/Tabs/Tabs.d.ts +0 -0
  429. /package/{dist/components → components}/Tabs/Tabs.js +0 -0
  430. /package/{dist/components → components}/Tabs/Tabs.js.map +0 -0
  431. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  432. /package/{dist/components → components}/Tabs/index.d.ts +0 -0
  433. /package/{dist/components → components}/Tabs.d.ts +0 -0
  434. /package/{dist/components → components}/Timeline/Timeline.cjs +0 -0
  435. /package/{dist/components → components}/Timeline/Timeline.cjs.map +0 -0
  436. /package/{dist/components → components}/Timeline/Timeline.d.ts +0 -0
  437. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  438. /package/{dist/components → components}/Timeline/Timeline.js +0 -0
  439. /package/{dist/components → components}/Timeline/Timeline.js.map +0 -0
  440. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  441. /package/{dist/components → components}/Timeline/index.d.ts +0 -0
  442. /package/{dist/components → components}/Timeline.d.ts +0 -0
  443. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  444. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  445. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  446. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  447. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  448. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  449. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  450. /package/{dist/components → components}/_shared/formField.sx.d.ts +0 -0
  451. /package/{dist/components → components}/_shared/resolvePreset.d.ts +0 -0
  452. /package/{dist/formField.sx-CQ1mbk9M.cjs → formField.sx-CQ1mbk9M.cjs} +0 -0
  453. /package/{dist/formField.sx-CQ1mbk9M.cjs.map → formField.sx-CQ1mbk9M.cjs.map} +0 -0
  454. /package/{dist/formField.sx-DfVbMe0V.js → formField.sx-DfVbMe0V.js} +0 -0
  455. /package/{dist/formField.sx-DfVbMe0V.js.map → formField.sx-DfVbMe0V.js.map} +0 -0
  456. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  457. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  458. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  459. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  460. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  461. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  462. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  463. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  464. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs +0 -0
  465. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs.map +0 -0
  466. /package/{dist/hooks → hooks}/Wizard/Wizard.js +0 -0
  467. /package/{dist/hooks → hooks}/Wizard/Wizard.js.map +0 -0
  468. /package/{dist/hooks → hooks}/Wizard/WizardContext.d.ts +0 -0
  469. /package/{dist/hooks → hooks}/Wizard/index.d.ts +0 -0
  470. /package/{dist/hooks → hooks}/Wizard/useWizard.d.ts +0 -0
  471. /package/{dist/hooks → hooks}/Wizard.d.ts +0 -0
  472. /package/{dist/index.cjs → index.cjs} +0 -0
  473. /package/{dist/index.cjs.map → index.cjs.map} +0 -0
  474. /package/{dist/index.d.ts → index.d.ts} +0 -0
  475. /package/{dist/index.js → index.js} +0 -0
  476. /package/{dist/index.js.map → index.js.map} +0 -0
  477. /package/{dist/mui.d.ts → mui.d.ts} +0 -0
  478. /package/{dist/resolvePreset-B-IB0ehH.js → resolvePreset-B-IB0ehH.js} +0 -0
  479. /package/{dist/resolvePreset-B-IB0ehH.js.map → resolvePreset-B-IB0ehH.js.map} +0 -0
  480. /package/{dist/resolvePreset-CT3kU-K2.cjs → resolvePreset-CT3kU-K2.cjs} +0 -0
  481. /package/{dist/resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +0 -0
  482. /package/{dist/styles.css → styles.css} +0 -0
  483. /package/{dist/theme → theme}/componentStyles.d.ts +0 -0
  484. /package/{dist/theme → theme}/tokens.d.ts +0 -0
  485. /package/{dist/useWizard-CWdIxZzX.cjs → useWizard-CWdIxZzX.cjs} +0 -0
  486. /package/{dist/useWizard-CWdIxZzX.cjs.map → useWizard-CWdIxZzX.cjs.map} +0 -0
  487. /package/{dist/useWizard-CWq--C3o.js → useWizard-CWq--C3o.js} +0 -0
  488. /package/{dist/useWizard-CWq--C3o.js.map → useWizard-CWq--C3o.js.map} +0 -0
@@ -1,270 +0,0 @@
1
- import React, { useState } from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { Box, Typography, Avatar } from '@mui/material';
4
- import HomeIcon from '@mui/icons-material/Home';
5
- import PersonIcon from '@mui/icons-material/Person';
6
- import SettingsIcon from '@mui/icons-material/Settings';
7
- import ReceiptIcon from '@mui/icons-material/Receipt';
8
- import LogoutIcon from '@mui/icons-material/Logout';
9
- import NotificationsIcon from '@mui/icons-material/Notifications';
10
-
11
- import { Drawer } from './Drawer';
12
- import { DrawerItem } from './DrawerItem';
13
-
14
- const meta: Meta<typeof Drawer> = {
15
- title: 'Components/Drawer',
16
- component: Drawer,
17
- tags: ['autodocs'],
18
- parameters: {
19
- layout: 'fullscreen',
20
- docs: {
21
- description: {
22
- component:
23
- 'Drawer lateral para navegación. Soporta modo `collapsed` (mini-variant con solo iconos) y reemplaza el `DrawerComponent` de Metronic. Los sub-componentes `DrawerItem` reaccionan al estado `collapsed` vía context y muestran tooltip automático al hover cuando el drawer está mini.',
24
- },
25
- },
26
- },
27
- argTypes: {
28
- variant: {
29
- control: 'select',
30
- options: ['permanent', 'persistent', 'temporary'],
31
- description:
32
- '`permanent` (default) = siempre visible en desktop. `persistent` = oculta/muestra empujando contenido. `temporary` = flotante con backdrop (típico móvil).',
33
- },
34
- anchor: {
35
- control: 'select',
36
- options: ['left', 'right', 'top', 'bottom'],
37
- },
38
- collapsed: {
39
- control: 'boolean',
40
- description: 'Estado mini (solo iconos). Solo aplica en `permanent`/`persistent`.',
41
- },
42
- expandedWidth: { control: { type: 'number', min: 180, max: 400, step: 10 } },
43
- collapsedWidth: { control: { type: 'number', min: 48, max: 120, step: 4 } },
44
- },
45
- };
46
-
47
- export default meta;
48
- type Story = StoryObj<typeof Drawer>;
49
-
50
- // ── Helpers ──────────────────────────────────────────────────────────────
51
-
52
- const SampleLogo = () => (
53
- <Typography variant="h6" sx={{ fontWeight: 700, color: 'primary.main' }}>
54
- soyfri
55
- </Typography>
56
- );
57
-
58
- const SampleFooter = ({ collapsed }: { collapsed: boolean }) => (
59
- <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>
60
- <Avatar sx={{ width: 36, height: 36 }}>AP</Avatar>
61
- {!collapsed && (
62
- <Box sx={{ minWidth: 0 }}>
63
- <Typography variant="body2" noWrap sx={{ fontWeight: 600 }}>
64
- Andrea Pérez
65
- </Typography>
66
- <Typography variant="caption" color="text.secondary" noWrap>
67
- admin@soyfri.com
68
- </Typography>
69
- </Box>
70
- )}
71
- </Box>
72
- );
73
-
74
- // ── Stories ──────────────────────────────────────────────────────────────
75
-
76
- export const ExpandedPermanent: Story = {
77
- args: {
78
- variant: 'permanent',
79
- anchor: 'left',
80
- collapsed: false,
81
- expandedWidth: 260,
82
- collapsedWidth: 72,
83
- header: <SampleLogo />,
84
- },
85
- render: (args) => (
86
- <Box sx={{ display: 'flex', height: '100vh' }}>
87
- <Drawer {...args}>
88
- <DrawerItem icon={<HomeIcon />} label="Inicio" active />
89
- <DrawerItem icon={<PersonIcon />} label="Perfil" />
90
- <DrawerItem
91
- icon={<NotificationsIcon />}
92
- label="Notificaciones"
93
- endAdornment={
94
- <Typography
95
- variant="caption"
96
- sx={{
97
- bgcolor: 'primary.main',
98
- color: '#fff',
99
- borderRadius: 10,
100
- px: 1,
101
- py: 0.25,
102
- fontWeight: 600,
103
- }}
104
- >
105
- 3
106
- </Typography>
107
- }
108
- />
109
- <DrawerItem icon={<ReceiptIcon />} label="Facturación" />
110
- <DrawerItem icon={<SettingsIcon />} label="Configuración" />
111
- </Drawer>
112
- <Box sx={{ flex: 1, p: 3 }}>
113
- <Typography variant="h5">Contenido principal</Typography>
114
- <Typography color="text.secondary">
115
- El drawer permanente convive con el contenido y no lo tapa.
116
- </Typography>
117
- </Box>
118
- </Box>
119
- ),
120
- parameters: {
121
- docs: {
122
- description: {
123
- story:
124
- 'Drawer permanente expandido con logo en header y lista de items. Uno de los items tiene un badge como `endAdornment`.',
125
- },
126
- },
127
- },
128
- };
129
-
130
- export const CollapsedPermanent: Story = {
131
- ...ExpandedPermanent,
132
- args: {
133
- ...ExpandedPermanent.args,
134
- collapsed: true,
135
- },
136
- parameters: {
137
- docs: {
138
- description: {
139
- story:
140
- 'El mismo drawer en modo mini. Los labels se ocultan y al hacer hover sobre cada item aparece un tooltip con su texto. Notar que el badge `endAdornment` se oculta también en modo collapsed.',
141
- },
142
- },
143
- },
144
- };
145
-
146
- export const ToggleableDrawer: Story = {
147
- render: () => {
148
- const [collapsed, setCollapsed] = useState(false);
149
-
150
- return (
151
- <Box sx={{ display: 'flex', height: '100vh' }}>
152
- <Drawer
153
- variant="permanent"
154
- collapsed={collapsed}
155
- onToggleCollapse={() => setCollapsed((v) => !v)}
156
- header={<SampleLogo />}
157
- footer={<SampleFooter collapsed={collapsed} />}
158
- >
159
- <DrawerItem icon={<HomeIcon />} label="Inicio" active />
160
- <DrawerItem icon={<PersonIcon />} label="Perfil" />
161
- <DrawerItem icon={<ReceiptIcon />} label="Facturación" />
162
- <DrawerItem icon={<SettingsIcon />} label="Configuración" />
163
- <DrawerItem icon={<LogoutIcon />} label="Cerrar sesión" danger />
164
- </Drawer>
165
- <Box sx={{ flex: 1, p: 3 }}>
166
- <Typography variant="h5">
167
- Drawer: {collapsed ? 'colapsado' : 'expandido'}
168
- </Typography>
169
- <Typography color="text.secondary">
170
- Usá el chevron del header para alternar. El footer se adapta
171
- (avatar solo cuando está mini, avatar + texto cuando está
172
- expandido).
173
- </Typography>
174
- </Box>
175
- </Box>
176
- );
177
- },
178
- parameters: {
179
- docs: {
180
- description: {
181
- story:
182
- 'Drawer con botón chevron funcional (el que provee el paquete) y footer que reacciona al estado. Incluye un item `danger` (cerrar sesión) que se pinta en color error.',
183
- },
184
- },
185
- },
186
- };
187
-
188
- export const TemporaryDrawer: Story = {
189
- render: () => {
190
- const [open, setOpen] = useState(false);
191
-
192
- return (
193
- <Box sx={{ height: '100vh', p: 3 }}>
194
- <Typography variant="h5" gutterBottom>
195
- Drawer temporal (para móvil)
196
- </Typography>
197
- <Typography
198
- sx={{ cursor: 'pointer', color: 'primary.main' }}
199
- onClick={() => setOpen(true)}
200
- >
201
- → Abrir drawer
202
- </Typography>
203
-
204
- <Drawer
205
- variant="temporary"
206
- open={open}
207
- onClose={() => setOpen(false)}
208
- header={<SampleLogo />}
209
- >
210
- <DrawerItem
211
- icon={<HomeIcon />}
212
- label="Inicio"
213
- onClick={() => setOpen(false)}
214
- />
215
- <DrawerItem
216
- icon={<PersonIcon />}
217
- label="Perfil"
218
- onClick={() => setOpen(false)}
219
- />
220
- <DrawerItem
221
- icon={<SettingsIcon />}
222
- label="Configuración"
223
- onClick={() => setOpen(false)}
224
- />
225
- </Drawer>
226
- </Box>
227
- );
228
- },
229
- parameters: {
230
- docs: {
231
- description: {
232
- story:
233
- 'Drawer `temporary`: flota por encima del contenido con backdrop. Cierra con ESC, click en backdrop, o handler explícito en cada item. El modo `collapsed` no aplica acá.',
234
- },
235
- },
236
- },
237
- };
238
-
239
- export const RightAnchored: Story = {
240
- args: {
241
- variant: 'permanent',
242
- anchor: 'right',
243
- expandedWidth: 320,
244
- header: (
245
- <Typography variant="subtitle1" sx={{ fontWeight: 600 }}>
246
- Panel lateral
247
- </Typography>
248
- ),
249
- },
250
- render: (args) => (
251
- <Box sx={{ display: 'flex', height: '100vh' }}>
252
- <Box sx={{ flex: 1, p: 3 }}>
253
- <Typography variant="h5">Contenido principal</Typography>
254
- </Box>
255
- <Drawer {...args}>
256
- <DrawerItem icon={<NotificationsIcon />} label="Notificaciones" />
257
- <DrawerItem icon={<PersonIcon />} label="Contactos" />
258
- <DrawerItem icon={<SettingsIcon />} label="Ajustes" />
259
- </Drawer>
260
- </Box>
261
- ),
262
- parameters: {
263
- docs: {
264
- description: {
265
- story:
266
- 'Drawer anclado a la derecha. Útil para paneles secundarios (inbox, notificaciones, detalles) en lugar de navegación principal.',
267
- },
268
- },
269
- },
270
- };
@@ -1,106 +0,0 @@
1
- import type { SxProps, Theme } from '@mui/material/styles';
2
-
3
- export interface BuildDrawerSxArgs {
4
- /** Ancho actual del drawer (expanded o collapsed). */
5
- width: number;
6
- /** Duración de la transición de ancho en ms. */
7
- transitionDuration?: number;
8
- }
9
-
10
- /**
11
- * sx aplicado al root del MuiDrawer. Controla el ancho animado y el paper
12
- * interno. Los estilos visuales del paper (background, border) se dejan en
13
- * manos del theme / preset.
14
- */
15
- export function buildDrawerSx({
16
- width,
17
- transitionDuration = 200,
18
- }: BuildDrawerSxArgs): SxProps<Theme> {
19
- return {
20
- width,
21
- flexShrink: 0,
22
- whiteSpace: 'nowrap',
23
- boxSizing: 'border-box',
24
- transition: (theme) =>
25
- theme.transitions.create('width', {
26
- easing: theme.transitions.easing.sharp,
27
- duration: transitionDuration,
28
- }),
29
- '& .MuiDrawer-paper': {
30
- width,
31
- boxSizing: 'border-box',
32
- overflowX: 'hidden',
33
- transition: (theme) =>
34
- theme.transitions.create('width', {
35
- easing: theme.transitions.easing.sharp,
36
- duration: transitionDuration,
37
- }),
38
- },
39
- };
40
- }
41
-
42
- export interface BuildDrawerItemSxArgs {
43
- collapsed: boolean;
44
- active?: boolean;
45
- danger?: boolean;
46
- }
47
-
48
- /**
49
- * sx para un item del drawer. Centra el icono cuando está colapsado y
50
- * tiñe el fondo cuando el item está activo.
51
- */
52
- export function buildDrawerItemSx({
53
- collapsed,
54
- active,
55
- danger,
56
- }: BuildDrawerItemSxArgs): SxProps<Theme> {
57
- return (theme) => ({
58
- minHeight: 44,
59
- px: collapsed ? 1 : 2,
60
- py: 1,
61
- mx: 1,
62
- my: 0.25,
63
- borderRadius: 1,
64
- display: 'flex',
65
- alignItems: 'center',
66
- justifyContent: collapsed ? 'center' : 'flex-start',
67
- gap: collapsed ? 0 : 1.5,
68
- cursor: 'pointer',
69
- color: danger
70
- ? theme.palette.error.main
71
- : active
72
- ? theme.palette.primary.main
73
- : theme.palette.text.primary,
74
- backgroundColor: active
75
- ? theme.palette.action.selected
76
- : 'transparent',
77
- transition: theme.transitions.create(
78
- ['background-color', 'color', 'padding'],
79
- { duration: 150 },
80
- ),
81
- '&:hover': {
82
- backgroundColor: danger
83
- ? theme.palette.error.light + '22'
84
- : theme.palette.action.hover,
85
- },
86
- '& .drawer-item__icon': {
87
- display: 'flex',
88
- alignItems: 'center',
89
- justifyContent: 'center',
90
- flexShrink: 0,
91
- minWidth: 24,
92
- },
93
- '& .drawer-item__label': {
94
- flex: 1,
95
- minWidth: 0,
96
- overflow: 'hidden',
97
- textOverflow: 'ellipsis',
98
- whiteSpace: 'nowrap',
99
- opacity: collapsed ? 0 : 1,
100
- width: collapsed ? 0 : 'auto',
101
- transition: theme.transitions.create(['opacity', 'width'], {
102
- duration: collapsed ? 100 : 200,
103
- }),
104
- },
105
- });
106
- }
@@ -1,214 +0,0 @@
1
- import React, { useMemo, type ReactNode } from 'react';
2
- import {
3
- Drawer as MuiDrawer,
4
- IconButton,
5
- Box,
6
- type DrawerProps as MuiDrawerProps,
7
- } from '@mui/material';
8
- import {
9
- useTheme,
10
- type SxProps,
11
- type Theme,
12
- } from '@mui/material/styles';
13
- import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
14
- import ChevronRightIcon from '@mui/icons-material/ChevronRight';
15
-
16
- import { DrawerContext } from './DrawerContext';
17
- import { buildDrawerSx } from './Drawer.sx';
18
- import { resolvePreset } from '../_shared/resolvePreset';
19
-
20
- // ── Tipos públicos ──────────────────────────────────────────────────────
21
- export type DrawerVariant = 'permanent' | 'persistent' | 'temporary';
22
- export type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom';
23
-
24
- export interface DrawerProps {
25
- /** Contenido del drawer (típicamente `<DrawerItem>`s). */
26
- children?: ReactNode;
27
- /**
28
- * Variante del drawer:
29
- * - `permanent` (default): siempre visible en desktop, soporta collapsed (mini).
30
- * - `persistent`: se oculta/muestra, empuja el contenido principal.
31
- * - `temporary`: flotante con backdrop (típico móvil).
32
- */
33
- variant?: DrawerVariant;
34
- /** Lado del viewport. Default: `'left'`. */
35
- anchor?: DrawerAnchor;
36
- /**
37
- * Estado mini (solo iconos). Solo se aplica con `variant="permanent"` o
38
- * `"persistent"`. Si no se provee, el drawer está siempre expandido.
39
- */
40
- collapsed?: boolean;
41
- /** Callback del botón de toggle (chevron). */
42
- onToggleCollapse?: () => void;
43
- /** Estado abierto/cerrado (aplica a `temporary` y `persistent`). */
44
- open?: boolean;
45
- /** Callback de cierre (backdrop o ESC en temporary). */
46
- onClose?: MuiDrawerProps['onClose'];
47
- /** Ancho en estado expandido. Default: 260. */
48
- expandedWidth?: number;
49
- /** Ancho en estado colapsado (solo iconos). Default: 72. */
50
- collapsedWidth?: number;
51
- /** Muestra el botón chevron para toggle collapsed. Default: true si `onToggleCollapse` está definido. */
52
- showCollapseButton?: boolean;
53
- /** Contenido del header (por encima de los items). Típicamente logo/brand. */
54
- header?: ReactNode;
55
- /** Contenido del footer (por debajo de los items). Típicamente user profile. */
56
- footer?: ReactNode;
57
- /**
58
- * Nombre del preset de estilo registrado en `theme.styles.Drawer`.
59
- * - `"default"` (o ausente) = estilo built-in del paquete.
60
- */
61
- preset?: string;
62
- /** sx aplicado al Drawer (root). Se mergea después del preset. */
63
- sx?: SxProps<Theme>;
64
- /** sx aplicado al Paper interno. */
65
- paperSx?: SxProps<Theme>;
66
- className?: string;
67
- }
68
-
69
- export function Drawer({
70
- children,
71
- variant = 'permanent',
72
- anchor = 'left',
73
- collapsed = false,
74
- onToggleCollapse,
75
- open,
76
- onClose,
77
- expandedWidth = 260,
78
- collapsedWidth = 72,
79
- showCollapseButton,
80
- header,
81
- footer,
82
- preset,
83
- sx,
84
- paperSx,
85
- className,
86
- }: DrawerProps) {
87
- const theme = useTheme();
88
- const presetSx = resolvePreset('Drawer', preset, theme);
89
-
90
- // El mini-variant solo tiene sentido en permanent / persistent.
91
- const supportsCollapsed = variant !== 'temporary';
92
- const effectiveWidth =
93
- supportsCollapsed && collapsed ? collapsedWidth : expandedWidth;
94
-
95
- const contextValue = useMemo(
96
- () => ({
97
- collapsed: supportsCollapsed && collapsed,
98
- width: effectiveWidth,
99
- }),
100
- [supportsCollapsed, collapsed, effectiveWidth],
101
- );
102
-
103
- const rootSx: SxProps<Theme> = [
104
- buildDrawerSx({ width: effectiveWidth }),
105
- ...(presetSx ? [presetSx] : []),
106
- ...(Array.isArray(sx) ? sx : sx ? [sx] : []),
107
- ];
108
-
109
- const shouldShowToggle =
110
- showCollapseButton ?? (supportsCollapsed && !!onToggleCollapse);
111
-
112
- const openProp =
113
- variant === 'permanent'
114
- ? true
115
- : open !== undefined
116
- ? open
117
- : false;
118
-
119
- return (
120
- <DrawerContext.Provider value={contextValue}>
121
- <MuiDrawer
122
- variant={variant}
123
- anchor={anchor}
124
- open={openProp}
125
- onClose={onClose}
126
- className={className}
127
- sx={rootSx}
128
- PaperProps={{
129
- sx: paperSx,
130
- }}
131
- >
132
- {header && (
133
- <Box
134
- sx={{
135
- display: 'flex',
136
- alignItems: 'center',
137
- justifyContent: contextValue.collapsed
138
- ? 'center'
139
- : 'space-between',
140
- px: contextValue.collapsed ? 1 : 2,
141
- py: 1.5,
142
- minHeight: 64,
143
- flexShrink: 0,
144
- }}
145
- >
146
- {!contextValue.collapsed && (
147
- <Box sx={{ flex: 1, minWidth: 0 }}>{header}</Box>
148
- )}
149
- {shouldShowToggle && (
150
- <IconButton
151
- size="small"
152
- onClick={onToggleCollapse}
153
- aria-label={collapsed ? 'Expandir menú' : 'Colapsar menú'}
154
- >
155
- {collapsed ? <ChevronRightIcon /> : <ChevronLeftIcon />}
156
- </IconButton>
157
- )}
158
- </Box>
159
- )}
160
-
161
- {!header && shouldShowToggle && (
162
- <Box
163
- sx={{
164
- display: 'flex',
165
- justifyContent: contextValue.collapsed
166
- ? 'center'
167
- : 'flex-end',
168
- px: 1,
169
- py: 1,
170
- }}
171
- >
172
- <IconButton
173
- size="small"
174
- onClick={onToggleCollapse}
175
- aria-label={collapsed ? 'Expandir menú' : 'Colapsar menú'}
176
- >
177
- {collapsed ? <ChevronRightIcon /> : <ChevronLeftIcon />}
178
- </IconButton>
179
- </Box>
180
- )}
181
-
182
- <Box
183
- component="nav"
184
- sx={{
185
- flex: 1,
186
- overflowY: 'auto',
187
- overflowX: 'hidden',
188
- py: 1,
189
- }}
190
- >
191
- {children}
192
- </Box>
193
-
194
- {footer && (
195
- <Box
196
- sx={{
197
- flexShrink: 0,
198
- borderTop: (t) => `1px solid ${t.palette.divider}`,
199
- p: contextValue.collapsed ? 1 : 1.5,
200
- display: 'flex',
201
- justifyContent: contextValue.collapsed
202
- ? 'center'
203
- : 'flex-start',
204
- }}
205
- >
206
- {footer}
207
- </Box>
208
- )}
209
- </MuiDrawer>
210
- </DrawerContext.Provider>
211
- );
212
- }
213
-
214
- export default Drawer;
@@ -1,26 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
-
3
- /**
4
- * Context interno del Drawer. Permite que los sub-componentes (DrawerItem,
5
- * DrawerSection, etc.) reaccionen al estado `collapsed` sin necesidad de
6
- * recibirlo por props explícitas.
7
- */
8
- export interface DrawerContextValue {
9
- /** Si el drawer está en modo mini (solo iconos). */
10
- collapsed: boolean;
11
- /** Ancho actual del drawer (útil para sub-componentes que necesiten layout). */
12
- width: number;
13
- }
14
-
15
- export const DrawerContext = createContext<DrawerContextValue | null>(null);
16
-
17
- /**
18
- * Hook para leer el estado del drawer desde cualquier sub-componente. Si se
19
- * llama fuera de un `<Drawer>`, devuelve valores por defecto (collapsed=false)
20
- * para que los items renderizados sueltos no exploten.
21
- */
22
- export function useDrawerContext(): DrawerContextValue {
23
- const ctx = useContext(DrawerContext);
24
- if (ctx) return ctx;
25
- return { collapsed: false, width: 260 };
26
- }