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

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