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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/{dist/components → components}/Drawer/Drawer.cjs +14 -17
  2. package/components/Drawer/Drawer.cjs.map +1 -0
  3. package/{dist/components → components}/Drawer/Drawer.d.ts +8 -1
  4. package/{dist/components → components}/Drawer/Drawer.js +14 -17
  5. package/components/Drawer/Drawer.js.map +1 -0
  6. package/package.json +164 -43
  7. package/.dockerignore +0 -8
  8. package/.github/workflows/publish.yml +0 -107
  9. package/.prettierrc +0 -3
  10. package/.storybook/main.ts +0 -19
  11. package/.storybook/preview.ts +0 -14
  12. package/.storybook/vitest.setup.ts +0 -9
  13. package/Dockerfile +0 -37
  14. package/Readme.md +0 -243
  15. package/build.js +0 -102
  16. package/chromatic.config.json +0 -5
  17. package/cleanDirectories.js +0 -40
  18. package/dist/components/Drawer/Drawer.cjs.map +0 -1
  19. package/dist/components/Drawer/Drawer.js.map +0 -1
  20. package/dist/package.json +0 -197
  21. package/rollup.config.cjs +0 -87
  22. package/src/components/ActionMenu/ActionMenu.stories.tsx +0 -230
  23. package/src/components/ActionMenu/ActionMenu.tsx +0 -174
  24. package/src/components/ActionMenu/index.ts +0 -2
  25. package/src/components/AppBar/AppBar.stories.tsx +0 -272
  26. package/src/components/AppBar/AppBar.sx.ts +0 -32
  27. package/src/components/AppBar/AppBar.tsx +0 -123
  28. package/src/components/AppBar/AppBarBrand.tsx +0 -120
  29. package/src/components/AppBar/AppBarContext.ts +0 -25
  30. package/src/components/AppBar/AppBarMenuToggle.tsx +0 -90
  31. package/src/components/AppBar/AppBarUserMenu.tsx +0 -217
  32. package/src/components/AppBar/index.ts +0 -25
  33. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -477
  34. package/src/components/Autocomplete/Autocomplete.helpers.ts +0 -60
  35. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -748
  36. package/src/components/Autocomplete/Autocomplete.sx.ts +0 -30
  37. package/src/components/Autocomplete/Autocomplete.tsx +0 -361
  38. package/src/components/Autocomplete/Autocomplete.types.ts +0 -13
  39. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +0 -55
  40. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +0 -17
  41. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +0 -31
  42. package/src/components/Autocomplete/index.ts +0 -12
  43. package/src/components/Avatar/Avatar.definitions.ts +0 -162
  44. package/src/components/Avatar/Avatar.stories.tsx +0 -258
  45. package/src/components/Avatar/Avatar.tsx +0 -206
  46. package/src/components/Avatar/index.ts +0 -1
  47. package/src/components/Button/Button.definition.ts +0 -97
  48. package/src/components/Button/Button.stories.tsx +0 -285
  49. package/src/components/Button/Button.tsx +0 -67
  50. package/src/components/Button/index.ts +0 -1
  51. package/src/components/Card/Card.definition.ts +0 -5
  52. package/src/components/Card/Card.stories.tsx +0 -221
  53. package/src/components/Card/Card.sx.ts +0 -104
  54. package/src/components/Card/Card.tsx +0 -200
  55. package/src/components/Card/index.ts +0 -9
  56. package/src/components/Chip/Chip.definitions.ts +0 -167
  57. package/src/components/Chip/Chip.stories.tsx +0 -265
  58. package/src/components/Chip/Chip.tsx +0 -61
  59. package/src/components/Chip/index.ts +0 -1
  60. package/src/components/Column/Column.tsx +0 -29
  61. package/src/components/Column/index.ts +0 -1
  62. package/src/components/DatePicker/DatePicker.definitions.ts +0 -228
  63. package/src/components/DatePicker/DatePicker.helpers.ts +0 -24
  64. package/src/components/DatePicker/DatePicker.stories.tsx +0 -309
  65. package/src/components/DatePicker/DatePicker.sx.ts +0 -33
  66. package/src/components/DatePicker/DatePicker.tsx +0 -189
  67. package/src/components/DatePicker/DatePicker.types.ts +0 -10
  68. package/src/components/DatePicker/index.ts +0 -9
  69. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  70. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  71. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  72. package/src/components/DateRangePicker/index.ts +0 -1
  73. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -256
  74. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +0 -38
  75. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -418
  76. package/src/components/DateTimePicker/DateTimePicker.sx.ts +0 -30
  77. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -225
  78. package/src/components/DateTimePicker/DateTimePicker.types.ts +0 -10
  79. package/src/components/DateTimePicker/index.ts +0 -9
  80. package/src/components/Drawer/Drawer.stories.tsx +0 -270
  81. package/src/components/Drawer/Drawer.sx.ts +0 -106
  82. package/src/components/Drawer/Drawer.tsx +0 -214
  83. package/src/components/Drawer/DrawerContext.ts +0 -26
  84. package/src/components/Drawer/DrawerItem.tsx +0 -110
  85. package/src/components/Drawer/index.ts +0 -10
  86. package/src/components/Flyout/Flyout.stories.tsx +0 -282
  87. package/src/components/Flyout/Flyout.tsx +0 -122
  88. package/src/components/Flyout/index.ts +0 -1
  89. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  90. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  91. package/src/components/Gallery/Gallery.tsx +0 -118
  92. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  93. package/src/components/Gallery/GalleryMain.tsx +0 -84
  94. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  95. package/src/components/Gallery/index.ts +0 -1
  96. package/src/components/Icon/Icon.stories.tsx +0 -121
  97. package/src/components/Icon/Icon.tsx +0 -175
  98. package/src/components/Icon/index.ts +0 -2
  99. package/src/components/Input/Input.definitions.ts +0 -324
  100. package/src/components/Input/Input.helpers.ts +0 -49
  101. package/src/components/Input/Input.stories.tsx +0 -499
  102. package/src/components/Input/Input.sx.ts +0 -42
  103. package/src/components/Input/Input.tsx +0 -141
  104. package/src/components/Input/Input.types.ts +0 -10
  105. package/src/components/Input/index.ts +0 -9
  106. package/src/components/InputGroup/InputGroup.definitions.ts +0 -158
  107. package/src/components/InputGroup/InputGroup.stories.tsx +0 -267
  108. package/src/components/InputGroup/InputGroup.tsx +0 -179
  109. package/src/components/InputGroup/index.ts +0 -1
  110. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  111. package/src/components/MenuButton/MenuButton.tsx +0 -100
  112. package/src/components/MenuButton/index.ts +0 -1
  113. package/src/components/Modal/Modal.stories.tsx +0 -721
  114. package/src/components/Modal/Modal.tsx +0 -355
  115. package/src/components/Modal/ModalBody.tsx +0 -16
  116. package/src/components/Modal/ModalFooter.tsx +0 -71
  117. package/src/components/Modal/ModalHeader.tsx +0 -18
  118. package/src/components/Modal/index.ts +0 -6
  119. package/src/components/PageLoader/PageLoader.stories.tsx +0 -217
  120. package/src/components/PageLoader/PageLoader.tsx +0 -96
  121. package/src/components/PageLoader/index.ts +0 -2
  122. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +0 -158
  123. package/src/components/ScrollTopButton/ScrollTopButton.tsx +0 -135
  124. package/src/components/ScrollTopButton/index.ts +0 -8
  125. package/src/components/ScrollTopButton/scrollToTop.ts +0 -37
  126. package/src/components/Select/Select.definitions.ts +0 -602
  127. package/src/components/Select/Select.helpers.ts +0 -71
  128. package/src/components/Select/Select.stories.tsx +0 -687
  129. package/src/components/Select/Select.sx.ts +0 -14
  130. package/src/components/Select/Select.tsx +0 -429
  131. package/src/components/Select/Select.types.ts +0 -15
  132. package/src/components/Select/_parts/SelectMenuItem.tsx +0 -40
  133. package/src/components/Select/_parts/SelectSearchHeader.tsx +0 -51
  134. package/src/components/Select/_parts/SelectValue.tsx +0 -96
  135. package/src/components/Select/index.ts +0 -14
  136. package/src/components/Stat/Stat.stories.tsx +0 -85
  137. package/src/components/Stat/Stat.tsx +0 -117
  138. package/src/components/Stat/index.ts +0 -2
  139. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  140. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  141. package/src/components/StatusMessage/index.ts +0 -2
  142. package/src/components/Stepper/Step.tsx +0 -21
  143. package/src/components/Stepper/Stepper.definition.ts +0 -75
  144. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  145. package/src/components/Stepper/Stepper.tsx +0 -75
  146. package/src/components/Stepper/index.ts +0 -2
  147. package/src/components/Table/EmptyTable.png +0 -0
  148. package/src/components/Table/Table.definition.ts +0 -580
  149. package/src/components/Table/Table.stories.tsx +0 -853
  150. package/src/components/Table/Table.tsx +0 -495
  151. package/src/components/Table/data.ts +0 -134
  152. package/src/components/Table/exportsUtils.ts +0 -195
  153. package/src/components/Table/index.ts +0 -3
  154. package/src/components/Table/types.ts +0 -34
  155. package/src/components/Tabs/Tab.definition.ts +0 -53
  156. package/src/components/Tabs/Tab.tsx +0 -19
  157. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  158. package/src/components/Tabs/Tabs.tsx +0 -99
  159. package/src/components/Tabs/_tabUtils.tsx +0 -4
  160. package/src/components/Tabs/index.ts +0 -2
  161. package/src/components/Timeline/Timeline.definition.ts +0 -43
  162. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  163. package/src/components/Timeline/Timeline.tsx +0 -49
  164. package/src/components/Timeline/TimelineItem.tsx +0 -31
  165. package/src/components/Timeline/index.ts +0 -2
  166. package/src/components/Tooltip/Tooltip.stories.tsx +0 -129
  167. package/src/components/Tooltip/Tooltip.tsx +0 -58
  168. package/src/components/Tooltip/index.ts +0 -1
  169. package/src/components/_shared/formField.sx.ts +0 -118
  170. package/src/components/_shared/resolvePreset.ts +0 -35
  171. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  172. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  173. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  174. package/src/hooks/ClipBoard/index.ts +0 -1
  175. package/src/hooks/Wizard/Wizard.stories.tsx +0 -301
  176. package/src/hooks/Wizard/WizardContext.tsx +0 -166
  177. package/src/hooks/Wizard/index.ts +0 -6
  178. package/src/hooks/Wizard/useWizard.ts +0 -13
  179. package/src/index.ts +0 -17
  180. package/src/mui.ts +0 -54
  181. package/src/styles.css +0 -3
  182. package/src/theme/componentStyles.ts +0 -47
  183. package/src/theme/tokens.ts +0 -43
  184. package/tailwind.config.js +0 -10
  185. package/tsconfig.json +0 -48
  186. package/tsup.config.js +0 -41
  187. package/vite.config.js +0 -132
  188. package/vitest.config.ts +0 -35
  189. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  190. /package/{dist/Button-C17mExpd.cjs.map → Button-C17mExpd.cjs.map} +0 -0
  191. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  192. /package/{dist/Button-UkkP-bNw.js.map → Button-UkkP-bNw.js.map} +0 -0
  193. /package/{dist/README.md → README.md} +0 -0
  194. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs +0 -0
  195. /package/{dist/components → components}/ActionMenu/ActionMenu.cjs.map +0 -0
  196. /package/{dist/components → components}/ActionMenu/ActionMenu.d.ts +0 -0
  197. /package/{dist/components → components}/ActionMenu/ActionMenu.js +0 -0
  198. /package/{dist/components → components}/ActionMenu/ActionMenu.js.map +0 -0
  199. /package/{dist/components → components}/ActionMenu/index.d.ts +0 -0
  200. /package/{dist/components → components}/ActionMenu.d.ts +0 -0
  201. /package/{dist/components → components}/AppBar/AppBar.cjs +0 -0
  202. /package/{dist/components → components}/AppBar/AppBar.cjs.map +0 -0
  203. /package/{dist/components → components}/AppBar/AppBar.d.ts +0 -0
  204. /package/{dist/components → components}/AppBar/AppBar.js +0 -0
  205. /package/{dist/components → components}/AppBar/AppBar.js.map +0 -0
  206. /package/{dist/components → components}/AppBar/AppBar.sx.d.ts +0 -0
  207. /package/{dist/components → components}/AppBar/AppBarBrand.d.ts +0 -0
  208. /package/{dist/components → components}/AppBar/AppBarContext.d.ts +0 -0
  209. /package/{dist/components → components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  210. /package/{dist/components → components}/AppBar/AppBarUserMenu.d.ts +0 -0
  211. /package/{dist/components → components}/AppBar/index.d.ts +0 -0
  212. /package/{dist/components → components}/AppBar.d.ts +0 -0
  213. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs +0 -0
  214. /package/{dist/components → components}/Autocomplete/Autocomplete.cjs.map +0 -0
  215. /package/{dist/components → components}/Autocomplete/Autocomplete.d.ts +0 -0
  216. /package/{dist/components → components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  217. /package/{dist/components → components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  218. /package/{dist/components → components}/Autocomplete/Autocomplete.js +0 -0
  219. /package/{dist/components → components}/Autocomplete/Autocomplete.js.map +0 -0
  220. /package/{dist/components → components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  221. /package/{dist/components → components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  222. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  223. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  224. /package/{dist/components → components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  225. /package/{dist/components → components}/Autocomplete/index.d.ts +0 -0
  226. /package/{dist/components → components}/Autocomplete.d.ts +0 -0
  227. /package/{dist/components → components}/Avatar/Avatar.cjs +0 -0
  228. /package/{dist/components → components}/Avatar/Avatar.cjs.map +0 -0
  229. /package/{dist/components → components}/Avatar/Avatar.d.ts +0 -0
  230. /package/{dist/components → components}/Avatar/Avatar.definitions.d.ts +0 -0
  231. /package/{dist/components → components}/Avatar/Avatar.js +0 -0
  232. /package/{dist/components → components}/Avatar/Avatar.js.map +0 -0
  233. /package/{dist/components → components}/Avatar/index.d.ts +0 -0
  234. /package/{dist/components → components}/Avatar.d.ts +0 -0
  235. /package/{dist/components → components}/Button/Button.cjs +0 -0
  236. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  237. /package/{dist/components → components}/Button/Button.d.ts +0 -0
  238. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  239. /package/{dist/components → components}/Button/Button.js +0 -0
  240. /package/{dist/components → components}/Button/Button.js.map +0 -0
  241. /package/{dist/components → components}/Button/index.d.ts +0 -0
  242. /package/{dist/components → components}/Button.d.ts +0 -0
  243. /package/{dist/components → components}/Card/Card.cjs +0 -0
  244. /package/{dist/components → components}/Card/Card.cjs.map +0 -0
  245. /package/{dist/components → components}/Card/Card.d.ts +0 -0
  246. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  247. /package/{dist/components → components}/Card/Card.js +0 -0
  248. /package/{dist/components → components}/Card/Card.js.map +0 -0
  249. /package/{dist/components → components}/Card/Card.sx.d.ts +0 -0
  250. /package/{dist/components → components}/Card/index.d.ts +0 -0
  251. /package/{dist/components → components}/Card.d.ts +0 -0
  252. /package/{dist/components → components}/Chip/Chip.cjs +0 -0
  253. /package/{dist/components → components}/Chip/Chip.cjs.map +0 -0
  254. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  255. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  256. /package/{dist/components → components}/Chip/Chip.js +0 -0
  257. /package/{dist/components → components}/Chip/Chip.js.map +0 -0
  258. /package/{dist/components → components}/Chip/index.d.ts +0 -0
  259. /package/{dist/components → components}/Chip.d.ts +0 -0
  260. /package/{dist/components → components}/Column/Column.cjs +0 -0
  261. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  262. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  263. /package/{dist/components → components}/Column/Column.js +0 -0
  264. /package/{dist/components → components}/Column/Column.js.map +0 -0
  265. /package/{dist/components → components}/Column/index.d.ts +0 -0
  266. /package/{dist/components → components}/Column.d.ts +0 -0
  267. /package/{dist/components → components}/DatePicker/DatePicker.cjs +0 -0
  268. /package/{dist/components → components}/DatePicker/DatePicker.cjs.map +0 -0
  269. /package/{dist/components → components}/DatePicker/DatePicker.d.ts +0 -0
  270. /package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  271. /package/{dist/components → components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  272. /package/{dist/components → components}/DatePicker/DatePicker.js +0 -0
  273. /package/{dist/components → components}/DatePicker/DatePicker.js.map +0 -0
  274. /package/{dist/components → components}/DatePicker/DatePicker.sx.d.ts +0 -0
  275. /package/{dist/components → components}/DatePicker/DatePicker.types.d.ts +0 -0
  276. /package/{dist/components → components}/DatePicker/index.d.ts +0 -0
  277. /package/{dist/components → components}/DatePicker.d.ts +0 -0
  278. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  279. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  280. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  281. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  282. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  283. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  284. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  285. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  286. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs +0 -0
  287. /package/{dist/components → components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  288. /package/{dist/components → components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  289. /package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  290. /package/{dist/components → components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  291. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js +0 -0
  292. /package/{dist/components → components}/DateTimePicker/DateTimePicker.js.map +0 -0
  293. /package/{dist/components → components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  294. /package/{dist/components → components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  295. /package/{dist/components → components}/DateTimePicker/index.d.ts +0 -0
  296. /package/{dist/components → components}/DateTimePicker.d.ts +0 -0
  297. /package/{dist/components → components}/Drawer/Drawer.sx.d.ts +0 -0
  298. /package/{dist/components → components}/Drawer/DrawerContext.d.ts +0 -0
  299. /package/{dist/components → components}/Drawer/DrawerItem.d.ts +0 -0
  300. /package/{dist/components → components}/Drawer/index.d.ts +0 -0
  301. /package/{dist/components → components}/Drawer.d.ts +0 -0
  302. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  303. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  304. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  305. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  306. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  307. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  308. /package/{dist/components → components}/Flyout.d.ts +0 -0
  309. /package/{dist/components → components}/Gallery/Gallery.cjs +0 -0
  310. /package/{dist/components → components}/Gallery/Gallery.cjs.map +0 -0
  311. /package/{dist/components → components}/Gallery/Gallery.d.ts +0 -0
  312. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  313. /package/{dist/components → components}/Gallery/Gallery.js +0 -0
  314. /package/{dist/components → components}/Gallery/Gallery.js.map +0 -0
  315. /package/{dist/components → components}/Gallery/GalleryLightbox.d.ts +0 -0
  316. /package/{dist/components → components}/Gallery/GalleryMain.d.ts +0 -0
  317. /package/{dist/components → components}/Gallery/GalleryThumbnails.d.ts +0 -0
  318. /package/{dist/components → components}/Gallery/index.d.ts +0 -0
  319. /package/{dist/components → components}/Gallery.d.ts +0 -0
  320. /package/{dist/components → components}/Icon/Icon.cjs +0 -0
  321. /package/{dist/components → components}/Icon/Icon.cjs.map +0 -0
  322. /package/{dist/components → components}/Icon/Icon.d.ts +0 -0
  323. /package/{dist/components → components}/Icon/Icon.js +0 -0
  324. /package/{dist/components → components}/Icon/Icon.js.map +0 -0
  325. /package/{dist/components → components}/Icon/index.d.ts +0 -0
  326. /package/{dist/components → components}/Icon.d.ts +0 -0
  327. /package/{dist/components → components}/Input/Input.cjs +0 -0
  328. /package/{dist/components → components}/Input/Input.cjs.map +0 -0
  329. /package/{dist/components → components}/Input/Input.d.ts +0 -0
  330. /package/{dist/components → components}/Input/Input.definitions.d.ts +0 -0
  331. /package/{dist/components → components}/Input/Input.helpers.d.ts +0 -0
  332. /package/{dist/components → components}/Input/Input.js +0 -0
  333. /package/{dist/components → components}/Input/Input.js.map +0 -0
  334. /package/{dist/components → components}/Input/Input.sx.d.ts +0 -0
  335. /package/{dist/components → components}/Input/Input.types.d.ts +0 -0
  336. /package/{dist/components → components}/Input/index.d.ts +0 -0
  337. /package/{dist/components → components}/Input.d.ts +0 -0
  338. /package/{dist/components → components}/InputGroup/InputGroup.cjs +0 -0
  339. /package/{dist/components → components}/InputGroup/InputGroup.cjs.map +0 -0
  340. /package/{dist/components → components}/InputGroup/InputGroup.d.ts +0 -0
  341. /package/{dist/components → components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  342. /package/{dist/components → components}/InputGroup/InputGroup.js +0 -0
  343. /package/{dist/components → components}/InputGroup/InputGroup.js.map +0 -0
  344. /package/{dist/components → components}/InputGroup/index.d.ts +0 -0
  345. /package/{dist/components → components}/InputGroup.d.ts +0 -0
  346. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  347. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  348. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  349. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  350. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  351. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  352. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  353. /package/{dist/components → components}/Modal/Modal.cjs +0 -0
  354. /package/{dist/components → components}/Modal/Modal.cjs.map +0 -0
  355. /package/{dist/components → components}/Modal/Modal.d.ts +0 -0
  356. /package/{dist/components → components}/Modal/Modal.js +0 -0
  357. /package/{dist/components → components}/Modal/Modal.js.map +0 -0
  358. /package/{dist/components → components}/Modal/ModalBody.d.ts +0 -0
  359. /package/{dist/components → components}/Modal/ModalFooter.d.ts +0 -0
  360. /package/{dist/components → components}/Modal/ModalHeader.d.ts +0 -0
  361. /package/{dist/components → components}/Modal/index.d.ts +0 -0
  362. /package/{dist/components → components}/Modal.d.ts +0 -0
  363. /package/{dist/components → components}/PageLoader/PageLoader.cjs +0 -0
  364. /package/{dist/components → components}/PageLoader/PageLoader.cjs.map +0 -0
  365. /package/{dist/components → components}/PageLoader/PageLoader.d.ts +0 -0
  366. /package/{dist/components → components}/PageLoader/PageLoader.js +0 -0
  367. /package/{dist/components → components}/PageLoader/PageLoader.js.map +0 -0
  368. /package/{dist/components → components}/PageLoader/index.d.ts +0 -0
  369. /package/{dist/components → components}/PageLoader.d.ts +0 -0
  370. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  371. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  372. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  373. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js +0 -0
  374. /package/{dist/components → components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  375. /package/{dist/components → components}/ScrollTopButton/index.d.ts +0 -0
  376. /package/{dist/components → components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  377. /package/{dist/components → components}/ScrollTopButton.d.ts +0 -0
  378. /package/{dist/components → components}/Select/Select.cjs +0 -0
  379. /package/{dist/components → components}/Select/Select.cjs.map +0 -0
  380. /package/{dist/components → components}/Select/Select.d.ts +0 -0
  381. /package/{dist/components → components}/Select/Select.definitions.d.ts +0 -0
  382. /package/{dist/components → components}/Select/Select.helpers.d.ts +0 -0
  383. /package/{dist/components → components}/Select/Select.js +0 -0
  384. /package/{dist/components → components}/Select/Select.js.map +0 -0
  385. /package/{dist/components → components}/Select/Select.sx.d.ts +0 -0
  386. /package/{dist/components → components}/Select/Select.types.d.ts +0 -0
  387. /package/{dist/components → components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  388. /package/{dist/components → components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  389. /package/{dist/components → components}/Select/_parts/SelectValue.d.ts +0 -0
  390. /package/{dist/components → components}/Select/index.d.ts +0 -0
  391. /package/{dist/components → components}/Select.d.ts +0 -0
  392. /package/{dist/components → components}/Stat/Stat.cjs +0 -0
  393. /package/{dist/components → components}/Stat/Stat.cjs.map +0 -0
  394. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  395. /package/{dist/components → components}/Stat/Stat.js +0 -0
  396. /package/{dist/components → components}/Stat/Stat.js.map +0 -0
  397. /package/{dist/components → components}/Stat/index.d.ts +0 -0
  398. /package/{dist/components → components}/Stat.d.ts +0 -0
  399. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs +0 -0
  400. /package/{dist/components → components}/StatusMessage/StatusMessage.cjs.map +0 -0
  401. /package/{dist/components → components}/StatusMessage/StatusMessage.d.ts +0 -0
  402. /package/{dist/components → components}/StatusMessage/StatusMessage.js +0 -0
  403. /package/{dist/components → components}/StatusMessage/StatusMessage.js.map +0 -0
  404. /package/{dist/components → components}/StatusMessage/index.d.ts +0 -0
  405. /package/{dist/components → components}/StatusMessage.d.ts +0 -0
  406. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  407. /package/{dist/components → components}/Stepper/Stepper.cjs +0 -0
  408. /package/{dist/components → components}/Stepper/Stepper.cjs.map +0 -0
  409. /package/{dist/components → components}/Stepper/Stepper.d.ts +0 -0
  410. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  411. /package/{dist/components → components}/Stepper/Stepper.js +0 -0
  412. /package/{dist/components → components}/Stepper/Stepper.js.map +0 -0
  413. /package/{dist/components → components}/Stepper/index.d.ts +0 -0
  414. /package/{dist/components → components}/Stepper.d.ts +0 -0
  415. /package/{dist/components → components}/Table/Table.cjs +0 -0
  416. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  417. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  418. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  419. /package/{dist/components → components}/Table/Table.js +0 -0
  420. /package/{dist/components → components}/Table/Table.js.map +0 -0
  421. /package/{dist/components → components}/Table/data.d.ts +0 -0
  422. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  423. /package/{dist/components → components}/Table/index.d.ts +0 -0
  424. /package/{dist/components → components}/Table/types.d.ts +0 -0
  425. /package/{dist/components → components}/Table.d.ts +0 -0
  426. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  427. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  428. /package/{dist/components → components}/Tabs/Tabs.cjs +0 -0
  429. /package/{dist/components → components}/Tabs/Tabs.cjs.map +0 -0
  430. /package/{dist/components → components}/Tabs/Tabs.d.ts +0 -0
  431. /package/{dist/components → components}/Tabs/Tabs.js +0 -0
  432. /package/{dist/components → components}/Tabs/Tabs.js.map +0 -0
  433. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  434. /package/{dist/components → components}/Tabs/index.d.ts +0 -0
  435. /package/{dist/components → components}/Tabs.d.ts +0 -0
  436. /package/{dist/components → components}/Timeline/Timeline.cjs +0 -0
  437. /package/{dist/components → components}/Timeline/Timeline.cjs.map +0 -0
  438. /package/{dist/components → components}/Timeline/Timeline.d.ts +0 -0
  439. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  440. /package/{dist/components → components}/Timeline/Timeline.js +0 -0
  441. /package/{dist/components → components}/Timeline/Timeline.js.map +0 -0
  442. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  443. /package/{dist/components → components}/Timeline/index.d.ts +0 -0
  444. /package/{dist/components → components}/Timeline.d.ts +0 -0
  445. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  446. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  447. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  448. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  449. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  450. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  451. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  452. /package/{dist/components → components}/_shared/formField.sx.d.ts +0 -0
  453. /package/{dist/components → components}/_shared/resolvePreset.d.ts +0 -0
  454. /package/{dist/formField.sx-CQ1mbk9M.cjs → formField.sx-CQ1mbk9M.cjs} +0 -0
  455. /package/{dist/formField.sx-CQ1mbk9M.cjs.map → formField.sx-CQ1mbk9M.cjs.map} +0 -0
  456. /package/{dist/formField.sx-DfVbMe0V.js → formField.sx-DfVbMe0V.js} +0 -0
  457. /package/{dist/formField.sx-DfVbMe0V.js.map → formField.sx-DfVbMe0V.js.map} +0 -0
  458. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  459. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  460. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  461. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  462. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  463. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  464. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  465. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  466. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs +0 -0
  467. /package/{dist/hooks → hooks}/Wizard/Wizard.cjs.map +0 -0
  468. /package/{dist/hooks → hooks}/Wizard/Wizard.js +0 -0
  469. /package/{dist/hooks → hooks}/Wizard/Wizard.js.map +0 -0
  470. /package/{dist/hooks → hooks}/Wizard/WizardContext.d.ts +0 -0
  471. /package/{dist/hooks → hooks}/Wizard/index.d.ts +0 -0
  472. /package/{dist/hooks → hooks}/Wizard/useWizard.d.ts +0 -0
  473. /package/{dist/hooks → hooks}/Wizard.d.ts +0 -0
  474. /package/{dist/index.cjs → index.cjs} +0 -0
  475. /package/{dist/index.cjs.map → index.cjs.map} +0 -0
  476. /package/{dist/index.d.ts → index.d.ts} +0 -0
  477. /package/{dist/index.js → index.js} +0 -0
  478. /package/{dist/index.js.map → index.js.map} +0 -0
  479. /package/{dist/mui.d.ts → mui.d.ts} +0 -0
  480. /package/{dist/resolvePreset-B-IB0ehH.js → resolvePreset-B-IB0ehH.js} +0 -0
  481. /package/{dist/resolvePreset-B-IB0ehH.js.map → resolvePreset-B-IB0ehH.js.map} +0 -0
  482. /package/{dist/resolvePreset-CT3kU-K2.cjs → resolvePreset-CT3kU-K2.cjs} +0 -0
  483. /package/{dist/resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +0 -0
  484. /package/{dist/styles.css → styles.css} +0 -0
  485. /package/{dist/theme → theme}/componentStyles.d.ts +0 -0
  486. /package/{dist/theme → theme}/tokens.d.ts +0 -0
  487. /package/{dist/useWizard-CWdIxZzX.cjs → useWizard-CWdIxZzX.cjs} +0 -0
  488. /package/{dist/useWizard-CWdIxZzX.cjs.map → useWizard-CWdIxZzX.cjs.map} +0 -0
  489. /package/{dist/useWizard-CWq--C3o.js → useWizard-CWq--C3o.js} +0 -0
  490. /package/{dist/useWizard-CWq--C3o.js.map → useWizard-CWq--C3o.js.map} +0 -0
@@ -96,6 +96,7 @@ function Drawer({
96
96
  collapsedWidth = 72,
97
97
  showCollapseButton,
98
98
  header,
99
+ logo,
99
100
  footer,
100
101
  preset,
101
102
  sx,
@@ -133,20 +134,22 @@ function Drawer({
133
134
  sx: paperSx
134
135
  },
135
136
  children: [
136
- header && /* @__PURE__ */ jsxRuntime.jsxs(
137
+ (logo || shouldShowToggle) && /* @__PURE__ */ jsxRuntime.jsxs(
137
138
  material.Box,
138
139
  {
139
140
  sx: {
140
141
  display: "flex",
142
+ flexDirection: contextValue.collapsed ? "column" : "row",
141
143
  alignItems: "center",
142
- justifyContent: contextValue.collapsed ? "center" : "space-between",
144
+ justifyContent: contextValue.collapsed ? "center" : logo ? "space-between" : "flex-end",
145
+ gap: contextValue.collapsed ? 0.5 : 0,
143
146
  px: contextValue.collapsed ? 1 : 2,
144
- py: 1.5,
147
+ py: 1,
145
148
  minHeight: 64,
146
149
  flexShrink: 0
147
150
  },
148
151
  children: [
149
- !contextValue.collapsed && /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { flex: 1, minWidth: 0 }, children: header }),
152
+ logo && /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { display: "flex", alignItems: "center", minWidth: 0 }, children: logo }),
150
153
  shouldShowToggle && /* @__PURE__ */ jsxRuntime.jsx(
151
154
  material.IconButton,
152
155
  {
@@ -159,24 +162,18 @@ function Drawer({
159
162
  ]
160
163
  }
161
164
  ),
162
- !header && shouldShowToggle && /* @__PURE__ */ jsxRuntime.jsx(
165
+ header && !contextValue.collapsed && /* @__PURE__ */ jsxRuntime.jsx(
163
166
  material.Box,
164
167
  {
165
168
  sx: {
166
169
  display: "flex",
167
- justifyContent: contextValue.collapsed ? "center" : "flex-end",
168
- px: 1,
169
- py: 1
170
+ alignItems: "center",
171
+ px: 2,
172
+ py: 1.5,
173
+ minHeight: 56,
174
+ flexShrink: 0
170
175
  },
171
- children: /* @__PURE__ */ jsxRuntime.jsx(
172
- material.IconButton,
173
- {
174
- size: "small",
175
- onClick: onToggleCollapse,
176
- "aria-label": collapsed ? "Expandir menú" : "Colapsar menú",
177
- children: collapsed ? /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, {})
178
- }
179
- )
176
+ children: /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { flex: 1, minWidth: 0 }, children: header })
180
177
  }
181
178
  ),
182
179
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.cjs","sources":["../../../src/components/Drawer/DrawerContext.ts","../../../src/components/Drawer/Drawer.sx.ts","../../../src/components/Drawer/Drawer.tsx","../../../src/components/Drawer/DrawerItem.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Context interno del Drawer. Permite que los sub-componentes (DrawerItem,\n * DrawerSection, etc.) reaccionen al estado `collapsed` sin necesidad de\n * recibirlo por props explícitas.\n */\nexport interface DrawerContextValue {\n /** Si el drawer está en modo mini (solo iconos). */\n collapsed: boolean;\n /** Ancho actual del drawer (útil para sub-componentes que necesiten layout). */\n width: number;\n}\n\nexport const DrawerContext = createContext<DrawerContextValue | null>(null);\n\n/**\n * Hook para leer el estado del drawer desde cualquier sub-componente. Si se\n * llama fuera de un `<Drawer>`, devuelve valores por defecto (collapsed=false)\n * para que los items renderizados sueltos no exploten.\n */\nexport function useDrawerContext(): DrawerContextValue {\n const ctx = useContext(DrawerContext);\n if (ctx) return ctx;\n return { collapsed: false, width: 260 };\n}\n","import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildDrawerSxArgs {\n /** Ancho actual del drawer (expanded o collapsed). */\n width: number;\n /** Duración de la transición de ancho en ms. */\n transitionDuration?: number;\n}\n\n/**\n * sx aplicado al root del MuiDrawer. Controla el ancho animado y el paper\n * interno. Los estilos visuales del paper (background, border) se dejan en\n * manos del theme / preset.\n */\nexport function buildDrawerSx({\n width,\n transitionDuration = 200,\n}: BuildDrawerSxArgs): SxProps<Theme> {\n return {\n width,\n flexShrink: 0,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n transition: (theme) =>\n theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: transitionDuration,\n }),\n '& .MuiDrawer-paper': {\n width,\n boxSizing: 'border-box',\n overflowX: 'hidden',\n transition: (theme) =>\n theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: transitionDuration,\n }),\n },\n };\n}\n\nexport interface BuildDrawerItemSxArgs {\n collapsed: boolean;\n active?: boolean;\n danger?: boolean;\n}\n\n/**\n * sx para un item del drawer. Centra el icono cuando está colapsado y\n * tiñe el fondo cuando el item está activo.\n */\nexport function buildDrawerItemSx({\n collapsed,\n active,\n danger,\n}: BuildDrawerItemSxArgs): SxProps<Theme> {\n return (theme) => ({\n minHeight: 44,\n px: collapsed ? 1 : 2,\n py: 1,\n mx: 1,\n my: 0.25,\n borderRadius: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: collapsed ? 'center' : 'flex-start',\n gap: collapsed ? 0 : 1.5,\n cursor: 'pointer',\n color: danger\n ? theme.palette.error.main\n : active\n ? theme.palette.primary.main\n : theme.palette.text.primary,\n backgroundColor: active\n ? theme.palette.action.selected\n : 'transparent',\n transition: theme.transitions.create(\n ['background-color', 'color', 'padding'],\n { duration: 150 },\n ),\n '&:hover': {\n backgroundColor: danger\n ? theme.palette.error.light + '22'\n : theme.palette.action.hover,\n },\n '& .drawer-item__icon': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n minWidth: 24,\n },\n '& .drawer-item__label': {\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n opacity: collapsed ? 0 : 1,\n width: collapsed ? 0 : 'auto',\n transition: theme.transitions.create(['opacity', 'width'], {\n duration: collapsed ? 100 : 200,\n }),\n },\n });\n}\n","import React, { useMemo, type ReactNode } from 'react';\nimport {\n Drawer as MuiDrawer,\n IconButton,\n Box,\n type DrawerProps as MuiDrawerProps,\n} from '@mui/material';\nimport {\n useTheme,\n type SxProps,\n type Theme,\n} from '@mui/material/styles';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\n\nimport { DrawerContext } from './DrawerContext';\nimport { buildDrawerSx } from './Drawer.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos públicos ──────────────────────────────────────────────────────\nexport type DrawerVariant = 'permanent' | 'persistent' | 'temporary';\nexport type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface DrawerProps {\n /** Contenido del drawer (típicamente `<DrawerItem>`s). */\n children?: ReactNode;\n /**\n * Variante del drawer:\n * - `permanent` (default): siempre visible en desktop, soporta collapsed (mini).\n * - `persistent`: se oculta/muestra, empuja el contenido principal.\n * - `temporary`: flotante con backdrop (típico móvil).\n */\n variant?: DrawerVariant;\n /** Lado del viewport. Default: `'left'`. */\n anchor?: DrawerAnchor;\n /**\n * Estado mini (solo iconos). Solo se aplica con `variant=\"permanent\"` o\n * `\"persistent\"`. Si no se provee, el drawer está siempre expandido.\n */\n collapsed?: boolean;\n /** Callback del botón de toggle (chevron). */\n onToggleCollapse?: () => void;\n /** Estado abierto/cerrado (aplica a `temporary` y `persistent`). */\n open?: boolean;\n /** Callback de cierre (backdrop o ESC en temporary). */\n onClose?: MuiDrawerProps['onClose'];\n /** Ancho en estado expandido. Default: 260. */\n expandedWidth?: number;\n /** Ancho en estado colapsado (solo iconos). Default: 72. */\n collapsedWidth?: number;\n /** Muestra el botón chevron para toggle collapsed. Default: true si `onToggleCollapse` está definido. */\n showCollapseButton?: boolean;\n /** Contenido del header (por encima de los items). Típicamente logo/brand. */\n header?: ReactNode;\n /**\n * Logo/brand que se muestra junto al botón de toggle.\n * - Expandido: logo a la izquierda, toggle a la derecha en la misma fila.\n * - Colapsado: logo arriba centrado, toggle debajo centrado (stack vertical).\n * Siempre visible (a diferencia de `header`, que se oculta al colapsar).\n */\n logo?: ReactNode;\n /** Contenido del footer (por debajo de los items). Típicamente user profile. */\n footer?: ReactNode;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Drawer`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n */\n preset?: string;\n /** sx aplicado al Drawer (root). Se mergea después del preset. */\n sx?: SxProps<Theme>;\n /** sx aplicado al Paper interno. */\n paperSx?: SxProps<Theme>;\n className?: string;\n}\n\nexport function Drawer({\n children,\n variant = 'permanent',\n anchor = 'left',\n collapsed = false,\n onToggleCollapse,\n open,\n onClose,\n expandedWidth = 260,\n collapsedWidth = 72,\n showCollapseButton,\n header,\n logo,\n footer,\n preset,\n sx,\n paperSx,\n className,\n}: DrawerProps) {\n const theme = useTheme();\n const presetSx = resolvePreset('Drawer', preset, theme);\n\n // El mini-variant solo tiene sentido en permanent / persistent.\n const supportsCollapsed = variant !== 'temporary';\n const effectiveWidth =\n supportsCollapsed && collapsed ? collapsedWidth : expandedWidth;\n\n const contextValue = useMemo(\n () => ({\n collapsed: supportsCollapsed && collapsed,\n width: effectiveWidth,\n }),\n [supportsCollapsed, collapsed, effectiveWidth],\n );\n\n const rootSx: SxProps<Theme> = [\n buildDrawerSx({ width: effectiveWidth }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const shouldShowToggle =\n showCollapseButton ?? (supportsCollapsed && !!onToggleCollapse);\n\n const openProp =\n variant === 'permanent'\n ? true\n : open !== undefined\n ? open\n : false;\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <MuiDrawer\n variant={variant}\n anchor={anchor}\n open={openProp}\n onClose={onClose}\n className={className}\n sx={rootSx}\n PaperProps={{\n sx: paperSx,\n }}\n >\n {(logo || shouldShowToggle) && (\n <Box\n sx={{\n display: 'flex',\n flexDirection: contextValue.collapsed ? 'column' : 'row',\n alignItems: 'center',\n justifyContent: contextValue.collapsed\n ? 'center'\n : logo\n ? 'space-between'\n : 'flex-end',\n gap: contextValue.collapsed ? 0.5 : 0,\n px: contextValue.collapsed ? 1 : 2,\n py: 1,\n minHeight: 64,\n flexShrink: 0,\n }}\n >\n {logo && (\n <Box sx={{ display: 'flex', alignItems: 'center', minWidth: 0 }}>\n {logo}\n </Box>\n )}\n {shouldShowToggle && (\n <IconButton\n size=\"small\"\n onClick={onToggleCollapse}\n aria-label={collapsed ? 'Expandir menú' : 'Colapsar menú'}\n >\n {collapsed ? <ChevronRightIcon /> : <ChevronLeftIcon />}\n </IconButton>\n )}\n </Box>\n )}\n\n {header && !contextValue.collapsed && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n px: 2,\n py: 1.5,\n minHeight: 56,\n flexShrink: 0,\n }}\n >\n <Box sx={{ flex: 1, minWidth: 0 }}>{header}</Box>\n </Box>\n )}\n\n <Box\n component=\"nav\"\n sx={{\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n py: 1,\n }}\n >\n {children}\n </Box>\n\n {footer && (\n <Box\n sx={{\n flexShrink: 0,\n borderTop: (t) => `1px solid ${t.palette.divider}`,\n p: contextValue.collapsed ? 1 : 1.5,\n display: 'flex',\n justifyContent: contextValue.collapsed\n ? 'center'\n : 'flex-start',\n }}\n >\n {footer}\n </Box>\n )}\n </MuiDrawer>\n </DrawerContext.Provider>\n );\n}\n\nexport default Drawer;\n","import React, { type ReactNode, type MouseEvent } from 'react';\nimport { Box, Tooltip, Typography } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport { useDrawerContext } from './DrawerContext';\nimport { buildDrawerItemSx } from './Drawer.sx';\n\nexport interface DrawerItemProps {\n /** Icono del item. Se muestra siempre (expanded y collapsed). */\n icon?: ReactNode;\n /** Texto del item. Se oculta cuando el drawer está colapsado (muestra tooltip). */\n label: ReactNode;\n /** Handler de click. */\n onClick?: (event: MouseEvent<HTMLDivElement>) => void;\n /** Marca el item como activo (destaca color y fondo). */\n active?: boolean;\n /** Marca el item como \"destructivo\" (p.ej. cerrar sesión): color error. */\n danger?: boolean;\n /** Deshabilita click + bajo opacidad. */\n disabled?: boolean;\n /** Contenido adicional a la derecha del label (badge, count, chevron). */\n endAdornment?: ReactNode;\n /** sx override del consumer, se mergea al final. */\n sx?: SxProps<Theme>;\n className?: string;\n}\n\n/**\n * Item de un Drawer de shared-library. Lee el estado `collapsed` del\n * DrawerContext para adaptar layout y mostrar tooltip en modo mini.\n *\n * Uso típico:\n * ```tsx\n * <Drawer collapsed={collapsed} onToggleCollapse={toggle}>\n * <DrawerItem icon={<HomeIcon />} label=\"Inicio\" active />\n * <DrawerItem icon={<UserIcon />} label=\"Perfil\" />\n * </Drawer>\n * ```\n */\nexport function DrawerItem({\n icon,\n label,\n onClick,\n active = false,\n danger = false,\n disabled = false,\n endAdornment,\n sx,\n className,\n}: DrawerItemProps) {\n const { collapsed } = useDrawerContext();\n\n const baseSx = buildDrawerItemSx({ collapsed, active, danger });\n\n const mergedSx: SxProps<Theme> = [\n baseSx,\n disabled && { pointerEvents: 'none', opacity: 0.5 },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ].filter(Boolean) as SxProps<Theme>;\n\n const content = (\n <Box\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled}\n onClick={disabled ? undefined : onClick}\n onKeyDown={(event) => {\n if (disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick?.(event as unknown as MouseEvent<HTMLDivElement>);\n }\n }}\n className={className}\n sx={mergedSx}\n >\n {icon !== undefined && (\n <Box className=\"drawer-item__icon\" component=\"span\">\n {icon}\n </Box>\n )}\n <Typography\n component=\"span\"\n variant=\"body2\"\n className=\"drawer-item__label\"\n sx={{ fontWeight: active ? 600 : 400 }}\n >\n {label}\n </Typography>\n {!collapsed && endAdornment && (\n <Box component=\"span\" sx={{ flexShrink: 0, ml: 'auto' }}>\n {endAdornment}\n </Box>\n )}\n </Box>\n );\n\n // Cuando está colapsado, envolvemos en tooltip para revelar el label al hover.\n if (collapsed && typeof label === 'string') {\n return (\n <Tooltip title={label} placement=\"right\" arrow>\n {content}\n </Tooltip>\n );\n }\n\n return content;\n}\n\nexport default DrawerItem;\n"],"names":["createContext","useContext","useTheme","resolvePreset","useMemo","jsx","jsxs","MuiDrawer","Box","IconButton","Typography","Tooltip"],"mappings":"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"}
@@ -34,6 +34,13 @@ export interface DrawerProps {
34
34
  showCollapseButton?: boolean;
35
35
  /** Contenido del header (por encima de los items). Típicamente logo/brand. */
36
36
  header?: ReactNode;
37
+ /**
38
+ * Logo/brand que se muestra junto al botón de toggle.
39
+ * - Expandido: logo a la izquierda, toggle a la derecha en la misma fila.
40
+ * - Colapsado: logo arriba centrado, toggle debajo centrado (stack vertical).
41
+ * Siempre visible (a diferencia de `header`, que se oculta al colapsar).
42
+ */
43
+ logo?: ReactNode;
37
44
  /** Contenido del footer (por debajo de los items). Típicamente user profile. */
38
45
  footer?: ReactNode;
39
46
  /**
@@ -47,5 +54,5 @@ export interface DrawerProps {
47
54
  paperSx?: SxProps<Theme>;
48
55
  className?: string;
49
56
  }
50
- export declare function Drawer({ children, variant, anchor, collapsed, onToggleCollapse, open, onClose, expandedWidth, collapsedWidth, showCollapseButton, header, footer, preset, sx, paperSx, className, }: DrawerProps): import("react/jsx-runtime").JSX.Element;
57
+ export declare function Drawer({ children, variant, anchor, collapsed, onToggleCollapse, open, onClose, expandedWidth, collapsedWidth, showCollapseButton, header, logo, footer, preset, sx, paperSx, className, }: DrawerProps): import("react/jsx-runtime").JSX.Element;
51
58
  export default Drawer;
@@ -94,6 +94,7 @@ function Drawer({
94
94
  collapsedWidth = 72,
95
95
  showCollapseButton,
96
96
  header,
97
+ logo,
97
98
  footer,
98
99
  preset,
99
100
  sx,
@@ -131,20 +132,22 @@ function Drawer({
131
132
  sx: paperSx
132
133
  },
133
134
  children: [
134
- header && /* @__PURE__ */ jsxs(
135
+ (logo || shouldShowToggle) && /* @__PURE__ */ jsxs(
135
136
  Box,
136
137
  {
137
138
  sx: {
138
139
  display: "flex",
140
+ flexDirection: contextValue.collapsed ? "column" : "row",
139
141
  alignItems: "center",
140
- justifyContent: contextValue.collapsed ? "center" : "space-between",
142
+ justifyContent: contextValue.collapsed ? "center" : logo ? "space-between" : "flex-end",
143
+ gap: contextValue.collapsed ? 0.5 : 0,
141
144
  px: contextValue.collapsed ? 1 : 2,
142
- py: 1.5,
145
+ py: 1,
143
146
  minHeight: 64,
144
147
  flexShrink: 0
145
148
  },
146
149
  children: [
147
- !contextValue.collapsed && /* @__PURE__ */ jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: header }),
150
+ logo && /* @__PURE__ */ jsx(Box, { sx: { display: "flex", alignItems: "center", minWidth: 0 }, children: logo }),
148
151
  shouldShowToggle && /* @__PURE__ */ jsx(
149
152
  IconButton,
150
153
  {
@@ -157,24 +160,18 @@ function Drawer({
157
160
  ]
158
161
  }
159
162
  ),
160
- !header && shouldShowToggle && /* @__PURE__ */ jsx(
163
+ header && !contextValue.collapsed && /* @__PURE__ */ jsx(
161
164
  Box,
162
165
  {
163
166
  sx: {
164
167
  display: "flex",
165
- justifyContent: contextValue.collapsed ? "center" : "flex-end",
166
- px: 1,
167
- py: 1
168
+ alignItems: "center",
169
+ px: 2,
170
+ py: 1.5,
171
+ minHeight: 56,
172
+ flexShrink: 0
168
173
  },
169
- children: /* @__PURE__ */ jsx(
170
- IconButton,
171
- {
172
- size: "small",
173
- onClick: onToggleCollapse,
174
- "aria-label": collapsed ? "Expandir menú" : "Colapsar menú",
175
- children: collapsed ? /* @__PURE__ */ jsx(ChevronRightIcon, {}) : /* @__PURE__ */ jsx(ChevronLeftIcon, {})
176
- }
177
- )
174
+ children: /* @__PURE__ */ jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: header })
178
175
  }
179
176
  ),
180
177
  /* @__PURE__ */ jsx(
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sources":["../../../src/components/Drawer/DrawerContext.ts","../../../src/components/Drawer/Drawer.sx.ts","../../../src/components/Drawer/Drawer.tsx","../../../src/components/Drawer/DrawerItem.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Context interno del Drawer. Permite que los sub-componentes (DrawerItem,\n * DrawerSection, etc.) reaccionen al estado `collapsed` sin necesidad de\n * recibirlo por props explícitas.\n */\nexport interface DrawerContextValue {\n /** Si el drawer está en modo mini (solo iconos). */\n collapsed: boolean;\n /** Ancho actual del drawer (útil para sub-componentes que necesiten layout). */\n width: number;\n}\n\nexport const DrawerContext = createContext<DrawerContextValue | null>(null);\n\n/**\n * Hook para leer el estado del drawer desde cualquier sub-componente. Si se\n * llama fuera de un `<Drawer>`, devuelve valores por defecto (collapsed=false)\n * para que los items renderizados sueltos no exploten.\n */\nexport function useDrawerContext(): DrawerContextValue {\n const ctx = useContext(DrawerContext);\n if (ctx) return ctx;\n return { collapsed: false, width: 260 };\n}\n","import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildDrawerSxArgs {\n /** Ancho actual del drawer (expanded o collapsed). */\n width: number;\n /** Duración de la transición de ancho en ms. */\n transitionDuration?: number;\n}\n\n/**\n * sx aplicado al root del MuiDrawer. Controla el ancho animado y el paper\n * interno. Los estilos visuales del paper (background, border) se dejan en\n * manos del theme / preset.\n */\nexport function buildDrawerSx({\n width,\n transitionDuration = 200,\n}: BuildDrawerSxArgs): SxProps<Theme> {\n return {\n width,\n flexShrink: 0,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n transition: (theme) =>\n theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: transitionDuration,\n }),\n '& .MuiDrawer-paper': {\n width,\n boxSizing: 'border-box',\n overflowX: 'hidden',\n transition: (theme) =>\n theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: transitionDuration,\n }),\n },\n };\n}\n\nexport interface BuildDrawerItemSxArgs {\n collapsed: boolean;\n active?: boolean;\n danger?: boolean;\n}\n\n/**\n * sx para un item del drawer. Centra el icono cuando está colapsado y\n * tiñe el fondo cuando el item está activo.\n */\nexport function buildDrawerItemSx({\n collapsed,\n active,\n danger,\n}: BuildDrawerItemSxArgs): SxProps<Theme> {\n return (theme) => ({\n minHeight: 44,\n px: collapsed ? 1 : 2,\n py: 1,\n mx: 1,\n my: 0.25,\n borderRadius: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: collapsed ? 'center' : 'flex-start',\n gap: collapsed ? 0 : 1.5,\n cursor: 'pointer',\n color: danger\n ? theme.palette.error.main\n : active\n ? theme.palette.primary.main\n : theme.palette.text.primary,\n backgroundColor: active\n ? theme.palette.action.selected\n : 'transparent',\n transition: theme.transitions.create(\n ['background-color', 'color', 'padding'],\n { duration: 150 },\n ),\n '&:hover': {\n backgroundColor: danger\n ? theme.palette.error.light + '22'\n : theme.palette.action.hover,\n },\n '& .drawer-item__icon': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n minWidth: 24,\n },\n '& .drawer-item__label': {\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n opacity: collapsed ? 0 : 1,\n width: collapsed ? 0 : 'auto',\n transition: theme.transitions.create(['opacity', 'width'], {\n duration: collapsed ? 100 : 200,\n }),\n },\n });\n}\n","import React, { useMemo, type ReactNode } from 'react';\nimport {\n Drawer as MuiDrawer,\n IconButton,\n Box,\n type DrawerProps as MuiDrawerProps,\n} from '@mui/material';\nimport {\n useTheme,\n type SxProps,\n type Theme,\n} from '@mui/material/styles';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\n\nimport { DrawerContext } from './DrawerContext';\nimport { buildDrawerSx } from './Drawer.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos públicos ──────────────────────────────────────────────────────\nexport type DrawerVariant = 'permanent' | 'persistent' | 'temporary';\nexport type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface DrawerProps {\n /** Contenido del drawer (típicamente `<DrawerItem>`s). */\n children?: ReactNode;\n /**\n * Variante del drawer:\n * - `permanent` (default): siempre visible en desktop, soporta collapsed (mini).\n * - `persistent`: se oculta/muestra, empuja el contenido principal.\n * - `temporary`: flotante con backdrop (típico móvil).\n */\n variant?: DrawerVariant;\n /** Lado del viewport. Default: `'left'`. */\n anchor?: DrawerAnchor;\n /**\n * Estado mini (solo iconos). Solo se aplica con `variant=\"permanent\"` o\n * `\"persistent\"`. Si no se provee, el drawer está siempre expandido.\n */\n collapsed?: boolean;\n /** Callback del botón de toggle (chevron). */\n onToggleCollapse?: () => void;\n /** Estado abierto/cerrado (aplica a `temporary` y `persistent`). */\n open?: boolean;\n /** Callback de cierre (backdrop o ESC en temporary). */\n onClose?: MuiDrawerProps['onClose'];\n /** Ancho en estado expandido. Default: 260. */\n expandedWidth?: number;\n /** Ancho en estado colapsado (solo iconos). Default: 72. */\n collapsedWidth?: number;\n /** Muestra el botón chevron para toggle collapsed. Default: true si `onToggleCollapse` está definido. */\n showCollapseButton?: boolean;\n /** Contenido del header (por encima de los items). Típicamente logo/brand. */\n header?: ReactNode;\n /**\n * Logo/brand que se muestra junto al botón de toggle.\n * - Expandido: logo a la izquierda, toggle a la derecha en la misma fila.\n * - Colapsado: logo arriba centrado, toggle debajo centrado (stack vertical).\n * Siempre visible (a diferencia de `header`, que se oculta al colapsar).\n */\n logo?: ReactNode;\n /** Contenido del footer (por debajo de los items). Típicamente user profile. */\n footer?: ReactNode;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Drawer`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n */\n preset?: string;\n /** sx aplicado al Drawer (root). Se mergea después del preset. */\n sx?: SxProps<Theme>;\n /** sx aplicado al Paper interno. */\n paperSx?: SxProps<Theme>;\n className?: string;\n}\n\nexport function Drawer({\n children,\n variant = 'permanent',\n anchor = 'left',\n collapsed = false,\n onToggleCollapse,\n open,\n onClose,\n expandedWidth = 260,\n collapsedWidth = 72,\n showCollapseButton,\n header,\n logo,\n footer,\n preset,\n sx,\n paperSx,\n className,\n}: DrawerProps) {\n const theme = useTheme();\n const presetSx = resolvePreset('Drawer', preset, theme);\n\n // El mini-variant solo tiene sentido en permanent / persistent.\n const supportsCollapsed = variant !== 'temporary';\n const effectiveWidth =\n supportsCollapsed && collapsed ? collapsedWidth : expandedWidth;\n\n const contextValue = useMemo(\n () => ({\n collapsed: supportsCollapsed && collapsed,\n width: effectiveWidth,\n }),\n [supportsCollapsed, collapsed, effectiveWidth],\n );\n\n const rootSx: SxProps<Theme> = [\n buildDrawerSx({ width: effectiveWidth }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const shouldShowToggle =\n showCollapseButton ?? (supportsCollapsed && !!onToggleCollapse);\n\n const openProp =\n variant === 'permanent'\n ? true\n : open !== undefined\n ? open\n : false;\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <MuiDrawer\n variant={variant}\n anchor={anchor}\n open={openProp}\n onClose={onClose}\n className={className}\n sx={rootSx}\n PaperProps={{\n sx: paperSx,\n }}\n >\n {(logo || shouldShowToggle) && (\n <Box\n sx={{\n display: 'flex',\n flexDirection: contextValue.collapsed ? 'column' : 'row',\n alignItems: 'center',\n justifyContent: contextValue.collapsed\n ? 'center'\n : logo\n ? 'space-between'\n : 'flex-end',\n gap: contextValue.collapsed ? 0.5 : 0,\n px: contextValue.collapsed ? 1 : 2,\n py: 1,\n minHeight: 64,\n flexShrink: 0,\n }}\n >\n {logo && (\n <Box sx={{ display: 'flex', alignItems: 'center', minWidth: 0 }}>\n {logo}\n </Box>\n )}\n {shouldShowToggle && (\n <IconButton\n size=\"small\"\n onClick={onToggleCollapse}\n aria-label={collapsed ? 'Expandir menú' : 'Colapsar menú'}\n >\n {collapsed ? <ChevronRightIcon /> : <ChevronLeftIcon />}\n </IconButton>\n )}\n </Box>\n )}\n\n {header && !contextValue.collapsed && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n px: 2,\n py: 1.5,\n minHeight: 56,\n flexShrink: 0,\n }}\n >\n <Box sx={{ flex: 1, minWidth: 0 }}>{header}</Box>\n </Box>\n )}\n\n <Box\n component=\"nav\"\n sx={{\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n py: 1,\n }}\n >\n {children}\n </Box>\n\n {footer && (\n <Box\n sx={{\n flexShrink: 0,\n borderTop: (t) => `1px solid ${t.palette.divider}`,\n p: contextValue.collapsed ? 1 : 1.5,\n display: 'flex',\n justifyContent: contextValue.collapsed\n ? 'center'\n : 'flex-start',\n }}\n >\n {footer}\n </Box>\n )}\n </MuiDrawer>\n </DrawerContext.Provider>\n );\n}\n\nexport default Drawer;\n","import React, { type ReactNode, type MouseEvent } from 'react';\nimport { Box, Tooltip, Typography } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport { useDrawerContext } from './DrawerContext';\nimport { buildDrawerItemSx } from './Drawer.sx';\n\nexport interface DrawerItemProps {\n /** Icono del item. Se muestra siempre (expanded y collapsed). */\n icon?: ReactNode;\n /** Texto del item. Se oculta cuando el drawer está colapsado (muestra tooltip). */\n label: ReactNode;\n /** Handler de click. */\n onClick?: (event: MouseEvent<HTMLDivElement>) => void;\n /** Marca el item como activo (destaca color y fondo). */\n active?: boolean;\n /** Marca el item como \"destructivo\" (p.ej. cerrar sesión): color error. */\n danger?: boolean;\n /** Deshabilita click + bajo opacidad. */\n disabled?: boolean;\n /** Contenido adicional a la derecha del label (badge, count, chevron). */\n endAdornment?: ReactNode;\n /** sx override del consumer, se mergea al final. */\n sx?: SxProps<Theme>;\n className?: string;\n}\n\n/**\n * Item de un Drawer de shared-library. Lee el estado `collapsed` del\n * DrawerContext para adaptar layout y mostrar tooltip en modo mini.\n *\n * Uso típico:\n * ```tsx\n * <Drawer collapsed={collapsed} onToggleCollapse={toggle}>\n * <DrawerItem icon={<HomeIcon />} label=\"Inicio\" active />\n * <DrawerItem icon={<UserIcon />} label=\"Perfil\" />\n * </Drawer>\n * ```\n */\nexport function DrawerItem({\n icon,\n label,\n onClick,\n active = false,\n danger = false,\n disabled = false,\n endAdornment,\n sx,\n className,\n}: DrawerItemProps) {\n const { collapsed } = useDrawerContext();\n\n const baseSx = buildDrawerItemSx({ collapsed, active, danger });\n\n const mergedSx: SxProps<Theme> = [\n baseSx,\n disabled && { pointerEvents: 'none', opacity: 0.5 },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ].filter(Boolean) as SxProps<Theme>;\n\n const content = (\n <Box\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled}\n onClick={disabled ? undefined : onClick}\n onKeyDown={(event) => {\n if (disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick?.(event as unknown as MouseEvent<HTMLDivElement>);\n }\n }}\n className={className}\n sx={mergedSx}\n >\n {icon !== undefined && (\n <Box className=\"drawer-item__icon\" component=\"span\">\n {icon}\n </Box>\n )}\n <Typography\n component=\"span\"\n variant=\"body2\"\n className=\"drawer-item__label\"\n sx={{ fontWeight: active ? 600 : 400 }}\n >\n {label}\n </Typography>\n {!collapsed && endAdornment && (\n <Box component=\"span\" sx={{ flexShrink: 0, ml: 'auto' }}>\n {endAdornment}\n </Box>\n )}\n </Box>\n );\n\n // Cuando está colapsado, envolvemos en tooltip para revelar el label al hover.\n if (collapsed && typeof label === 'string') {\n return (\n <Tooltip title={label} placement=\"right\" arrow>\n {content}\n </Tooltip>\n );\n }\n\n return content;\n}\n\nexport default DrawerItem;\n"],"names":["MuiDrawer"],"mappings":"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"}
package/package.json CHANGED
@@ -1,22 +1,10 @@
1
1
  {
2
2
  "name": "@soyfri/shared-library",
3
- "version": "2.0.0-beta.4",
3
+ "version": "2.0.0-beta.6",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
- "scripts": {
9
- "test": "echo \"Error: no test specified\" && exit 1",
10
- "build:css": "tailwindcss -i ./src/styles.css -o ./dist/styles.css",
11
- "watch:css": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --watch",
12
- "build": "vite build --mode lib",
13
- "dev": "tsup --watch",
14
- "rm": "node cleanDirectories",
15
- "clean": "rimraf dist",
16
- "storybook": "storybook dev -p 6006",
17
- "build-storybook": "storybook build",
18
- "dist": "node build"
19
- },
20
8
  "keywords": [],
21
9
  "author": "",
22
10
  "license": "ISC",
@@ -40,37 +28,170 @@
40
28
  "react-hook-form": "^7.62.0",
41
29
  "tailwindcss": "^4.1.7"
42
30
  },
43
- "devDependencies": {
44
- "@chromatic-com/storybook": "^4.0.1",
45
- "@rollup/plugin-alias": "^5.1.1",
46
- "@rollup/plugin-commonjs": "^28.0.3",
47
- "@rollup/plugin-node-resolve": "^16.0.1",
48
- "@rollup/plugin-terser": "^0.4.4",
49
- "@storybook/addon-docs": "^9.0.15",
50
- "@storybook/addon-onboarding": "^9.0.15",
51
- "@storybook/addon-vitest": "^9.0.15",
52
- "@storybook/react-vite": "^9.0.15",
53
- "@types/react": "^19.1.6",
54
- "@types/react-dom": "^19.1.5",
55
- "@vitest/browser": "^3.1.4",
56
- "@vitest/coverage-v8": "^3.1.4",
57
- "chromatic": "^12.0.0",
58
- "glob": "^11.0.2",
59
- "playwright": "^1.52.0",
60
- "prettier": "3.5.3",
61
- "rimraf": "^6.0.1",
62
- "rollup": "^4.41.1",
63
- "rollup-plugin-peer-deps-external": "^2.2.4",
64
- "rollup-plugin-postcss": "^4.0.2",
65
- "rollup-plugin-typescript2": "^0.36.0",
66
- "storybook": "^9.0.15",
67
- "tsup": "^8.5.0",
68
- "typescript": "^5.8.3",
69
- "vite-plugin-dts": "^4.5.4",
70
- "vite-plugin-lib-inject-css": "^2.2.2",
71
- "vitest": "^3.1.4"
72
- },
73
31
  "overrides": {
74
32
  "storybook": "$storybook"
33
+ },
34
+ "exports": {
35
+ ".": {
36
+ "import": "./index.js",
37
+ "require": "./index.cjs",
38
+ "types": "./index.d.ts"
39
+ },
40
+ "./package.json": "./package.json",
41
+ "./components/Tooltip": {
42
+ "import": "./components/Tooltip/Tooltip.js",
43
+ "require": "./components/Tooltip/Tooltip.cjs",
44
+ "types": "./components/Tooltip/Tooltip.d.ts"
45
+ },
46
+ "./components/Timeline": {
47
+ "import": "./components/Timeline/Timeline.js",
48
+ "require": "./components/Timeline/Timeline.cjs",
49
+ "types": "./components/Timeline/Timeline.d.ts"
50
+ },
51
+ "./components/Tabs": {
52
+ "import": "./components/Tabs/Tabs.js",
53
+ "require": "./components/Tabs/Tabs.cjs",
54
+ "types": "./components/Tabs/Tabs.d.ts"
55
+ },
56
+ "./components/Table": {
57
+ "import": "./components/Table/Table.js",
58
+ "require": "./components/Table/Table.cjs",
59
+ "types": "./components/Table/Table.d.ts"
60
+ },
61
+ "./components/Stepper": {
62
+ "import": "./components/Stepper/Stepper.js",
63
+ "require": "./components/Stepper/Stepper.cjs",
64
+ "types": "./components/Stepper/Stepper.d.ts"
65
+ },
66
+ "./components/StatusMessage": {
67
+ "import": "./components/StatusMessage/StatusMessage.js",
68
+ "require": "./components/StatusMessage/StatusMessage.cjs",
69
+ "types": "./components/StatusMessage/StatusMessage.d.ts"
70
+ },
71
+ "./components/Stat": {
72
+ "import": "./components/Stat/Stat.js",
73
+ "require": "./components/Stat/Stat.cjs",
74
+ "types": "./components/Stat/Stat.d.ts"
75
+ },
76
+ "./components/Select": {
77
+ "import": "./components/Select/Select.js",
78
+ "require": "./components/Select/Select.cjs",
79
+ "types": "./components/Select/Select.d.ts"
80
+ },
81
+ "./components/ScrollTopButton": {
82
+ "import": "./components/ScrollTopButton/ScrollTopButton.js",
83
+ "require": "./components/ScrollTopButton/ScrollTopButton.cjs",
84
+ "types": "./components/ScrollTopButton/ScrollTopButton.d.ts"
85
+ },
86
+ "./components/PageLoader": {
87
+ "import": "./components/PageLoader/PageLoader.js",
88
+ "require": "./components/PageLoader/PageLoader.cjs",
89
+ "types": "./components/PageLoader/PageLoader.d.ts"
90
+ },
91
+ "./components/Modal": {
92
+ "import": "./components/Modal/Modal.js",
93
+ "require": "./components/Modal/Modal.cjs",
94
+ "types": "./components/Modal/Modal.d.ts"
95
+ },
96
+ "./components/MenuButton": {
97
+ "import": "./components/MenuButton/MenuButton.js",
98
+ "require": "./components/MenuButton/MenuButton.cjs",
99
+ "types": "./components/MenuButton/MenuButton.d.ts"
100
+ },
101
+ "./components/InputGroup": {
102
+ "import": "./components/InputGroup/InputGroup.js",
103
+ "require": "./components/InputGroup/InputGroup.cjs",
104
+ "types": "./components/InputGroup/InputGroup.d.ts"
105
+ },
106
+ "./components/Input": {
107
+ "import": "./components/Input/Input.js",
108
+ "require": "./components/Input/Input.cjs",
109
+ "types": "./components/Input/Input.d.ts"
110
+ },
111
+ "./components/Icon": {
112
+ "import": "./components/Icon/Icon.js",
113
+ "require": "./components/Icon/Icon.cjs",
114
+ "types": "./components/Icon/Icon.d.ts"
115
+ },
116
+ "./components/Gallery": {
117
+ "import": "./components/Gallery/Gallery.js",
118
+ "require": "./components/Gallery/Gallery.cjs",
119
+ "types": "./components/Gallery/Gallery.d.ts"
120
+ },
121
+ "./components/Flyout": {
122
+ "import": "./components/Flyout/Flyout.js",
123
+ "require": "./components/Flyout/Flyout.cjs",
124
+ "types": "./components/Flyout/Flyout.d.ts"
125
+ },
126
+ "./components/Drawer": {
127
+ "import": "./components/Drawer/Drawer.js",
128
+ "require": "./components/Drawer/Drawer.cjs",
129
+ "types": "./components/Drawer/Drawer.d.ts"
130
+ },
131
+ "./components/DateTimePicker": {
132
+ "import": "./components/DateTimePicker/DateTimePicker.js",
133
+ "require": "./components/DateTimePicker/DateTimePicker.cjs",
134
+ "types": "./components/DateTimePicker/DateTimePicker.d.ts"
135
+ },
136
+ "./components/DateRangePicker": {
137
+ "import": "./components/DateRangePicker/DateRangePicker.js",
138
+ "require": "./components/DateRangePicker/DateRangePicker.cjs",
139
+ "types": "./components/DateRangePicker/DateRangePicker.d.ts"
140
+ },
141
+ "./components/DatePicker": {
142
+ "import": "./components/DatePicker/DatePicker.js",
143
+ "require": "./components/DatePicker/DatePicker.cjs",
144
+ "types": "./components/DatePicker/DatePicker.d.ts"
145
+ },
146
+ "./components/Column": {
147
+ "import": "./components/Column/Column.js",
148
+ "require": "./components/Column/Column.cjs",
149
+ "types": "./components/Column/Column.d.ts"
150
+ },
151
+ "./components/Chip": {
152
+ "import": "./components/Chip/Chip.js",
153
+ "require": "./components/Chip/Chip.cjs",
154
+ "types": "./components/Chip/Chip.d.ts"
155
+ },
156
+ "./components/Card": {
157
+ "import": "./components/Card/Card.js",
158
+ "require": "./components/Card/Card.cjs",
159
+ "types": "./components/Card/Card.d.ts"
160
+ },
161
+ "./components/Button": {
162
+ "import": "./components/Button/Button.js",
163
+ "require": "./components/Button/Button.cjs",
164
+ "types": "./components/Button/Button.d.ts"
165
+ },
166
+ "./components/Avatar": {
167
+ "import": "./components/Avatar/Avatar.js",
168
+ "require": "./components/Avatar/Avatar.cjs",
169
+ "types": "./components/Avatar/Avatar.d.ts"
170
+ },
171
+ "./components/Autocomplete": {
172
+ "import": "./components/Autocomplete/Autocomplete.js",
173
+ "require": "./components/Autocomplete/Autocomplete.cjs",
174
+ "types": "./components/Autocomplete/Autocomplete.d.ts"
175
+ },
176
+ "./components/AppBar": {
177
+ "import": "./components/AppBar/AppBar.js",
178
+ "require": "./components/AppBar/AppBar.cjs",
179
+ "types": "./components/AppBar/AppBar.d.ts"
180
+ },
181
+ "./components/ActionMenu": {
182
+ "import": "./components/ActionMenu/ActionMenu.js",
183
+ "require": "./components/ActionMenu/ActionMenu.cjs",
184
+ "types": "./components/ActionMenu/ActionMenu.d.ts"
185
+ },
186
+ "./hooks/Wizard": {
187
+ "import": "./hooks/Wizard/Wizard.js",
188
+ "require": "./hooks/Wizard/Wizard.cjs",
189
+ "types": "./hooks/Wizard/Wizard.d.ts"
190
+ },
191
+ "./hooks/ClipBoard": {
192
+ "import": "./hooks/ClipBoard/ClipBoard.js",
193
+ "require": "./hooks/ClipBoard/ClipBoard.cjs",
194
+ "types": "./hooks/ClipBoard/ClipBoard.d.ts"
195
+ }
75
196
  }
76
197
  }
package/.dockerignore DELETED
@@ -1,8 +0,0 @@
1
- # Ignore dependencies, build artifacts, and local environment files
2
- node_modules
3
- dist
4
-
5
- # Ignore git and docker files
6
- .git
7
- .gitignore
8
- .dockerignore
@@ -1,107 +0,0 @@
1
- name: Node.js CI
2
-
3
- on:
4
- push:
5
- branches: [ "main" ]
6
-
7
- jobs:
8
- build:
9
- runs-on: ubuntu-latest
10
-
11
- strategy:
12
- matrix:
13
- node-version: [v23.6.1]
14
-
15
- steps:
16
- - name: Checkout repository
17
- uses: actions/checkout@v4
18
-
19
- - name: Use Node.js ${{ matrix.node-version }}
20
- uses: actions/setup-node@v4
21
- with:
22
- node-version: ${{ matrix.node-version }}
23
- npm-version: '10.9.2'
24
- cache: 'npm' # Se asume que package-lock.json está en el repositorio
25
-
26
- - name: Install dependencies
27
- run: npm install --frozen-lockfile # Uso de --frozen-lockfile para CI/CD
28
-
29
- - name: Remove underscore-prefixed directories
30
- run: npm run rm --if-present
31
-
32
- - name: Build package
33
- run: npm run build --if-present
34
-
35
- - name: Dist package
36
- run: npm run dist --if-present
37
-
38
- - name: Upload build artifact
39
- uses: actions/upload-artifact@v4
40
- with:
41
- name: dist-package
42
- path: dist/ # Guarda el directorio de distribución como un artefacto
43
-
44
- publish:
45
- runs-on: ubuntu-latest
46
- needs: build # 👈 Depende del trabajo de construcción
47
- environment: production # 👈 Asocia este trabajo con el ambiente 'production'
48
-
49
- steps:
50
- - name: Checkout repository
51
- uses: actions/checkout@v4
52
-
53
- - name: Download build artifact
54
- uses: actions/download-artifact@v4
55
- with:
56
- name: dist-package
57
- path: dist/ # Descarga el artefacto en el directorio 'dist'
58
-
59
- - name: Use Node.js 20.x for publishing
60
- uses: actions/setup-node@v4
61
- with:
62
- node-version: 20.x
63
- npm-version: '10.9.2'
64
- registry-url: 'https://registry.npmjs.org'
65
-
66
- - name: Publish package
67
- working-directory: dist
68
- run: npm publish --access public
69
- env:
70
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
71
-
72
- notify:
73
- runs-on: ubuntu-latest
74
- needs: publish
75
- environment: production
76
-
77
- steps:
78
- - name: Checkout repository
79
- uses: actions/checkout@v4
80
-
81
- - name: Get package version
82
- id: get_version
83
- run: echo "PACKAGE_VERSION=$(npm pkg get version | tr -d '\"')" >> $GITHUB_ENV
84
-
85
- - name: Get commit message and author
86
- id: get_commit_info
87
- run: |
88
- echo "COMMIT_MESSAGE=$(git log -1 --pretty=format:%s)" >> $GITHUB_ENV
89
- echo "COMMIT_AUTHOR=$(git log -1 --pretty=format:%an)" >> $GITHUB_ENV
90
-
91
- - name: Send Discord notification (Success)
92
- if: success()
93
- uses: tsickert/discord-webhook@v5.3.0
94
- with:
95
- webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
96
- content: "✅ **Publicación Exitosa:** Nueva versión de la librería de componentes en npm.\n**Paquete:** [@soyfri/shared-library](https://www.npmjs.com/package/@soyfri/shared-library/v/${{ env.PACKAGE_VERSION }})\n**Versión:** `v${{ env.PACKAGE_VERSION }}`\n**Notas del commit:** ${{ env.COMMIT_MESSAGE }}\n**Autor:** ${{ env.COMMIT_AUTHOR }}"
97
- username: "GitHub Actions"
98
- avatar-url: "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"
99
-
100
- - name: Send Discord notification (Failure)
101
- if: failure()
102
- uses: tsickert/discord-webhook@v5.3.0
103
- with:
104
- webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
105
- content: "❌ **Publicación Fallida:** Falló la publicación de la librería de componentes en npm.\n**Commit:** ${{ env.COMMIT_MESSAGE }}\n**Autor:** ${{ env.COMMIT_AUTHOR }}"
106
- username: "GitHub Actions"
107
- avatar-url: "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"
package/.prettierrc DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "tabWidth": 2
3
- }
@@ -1,19 +0,0 @@
1
- import type { StorybookConfig } from '@storybook/react-vite';
2
-
3
- const config: StorybookConfig = {
4
- "stories": [
5
- "../src/**/*.mdx",
6
- "../src/**/*.stories.@(js|jsx|mjs|ts|tsx|mdx)"
7
- ],
8
- "addons": [
9
- "@storybook/addon-onboarding",
10
- "@chromatic-com/storybook",
11
- "@storybook/addon-vitest",
12
- "@storybook/addon-docs"
13
- ],
14
- "framework": {
15
- "name": "@storybook/react-vite",
16
- "options": {}
17
- }
18
- };
19
- export default config;
@@ -1,14 +0,0 @@
1
- import type { Preview } from '@storybook/react-vite'
2
-
3
- const preview: Preview = {
4
- parameters: {
5
- controls: {
6
- matchers: {
7
- color: /(background|color)$/i,
8
- date: /Date$/i,
9
- },
10
- },
11
- },
12
- };
13
-
14
- export default preview;
@@ -1,9 +0,0 @@
1
- import { beforeAll } from 'vitest';
2
- import { setProjectAnnotations } from '@storybook/react-vite';
3
- import * as projectAnnotations from './preview';
4
-
5
- // This is an important step to apply the right configuration when testing your stories.
6
- // More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
7
- const project = setProjectAnnotations([projectAnnotations]);
8
-
9
- beforeAll(project.beforeAll);