@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,258 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { within, expect } from 'storybook/test';
3
- import { Avatar } from './Avatar';
4
- import {
5
- DefaultAvatarDefinition,
6
- WithTypeAndTextDefinition,
7
- WithBadgesAndTooltipDefinition,
8
- SizeSmallDefinition,
9
- SizeMediumDefinition,
10
- SizeLargeDefinition,
11
- SizeExtraLargeDefinition,
12
- NumericSizeDefinition,
13
- FallbackIconDefinition,
14
- DisplayedAvatarsLimitDefinition,
15
- CustomStylingDefinition,
16
- } from './Avatar.definitions';
17
-
18
- const meta: Meta<typeof Avatar> = {
19
- title: 'Components/Avatar',
20
- component: Avatar,
21
- parameters: {
22
- layout: 'centered',
23
- docs: {
24
- description: {
25
- component:
26
- 'Avatar basado en MUI Avatar con soporte para stacking, tooltips, fallback a icono/badge y passthrough de sx. Admite imagen, texto y badge por cada item.',
27
- },
28
- },
29
- },
30
- tags: ['autodocs'],
31
- argTypes: {
32
- items: {
33
- control: 'object',
34
- description: 'Array de `AvatarItem` (text/imageUrl/badge/color/backgroundColor).',
35
- },
36
- type: {
37
- control: 'text',
38
- description: 'Etiqueta que antecede al texto cuando hay un único item (ej. "Owner: Maria").',
39
- },
40
- displayedAvatars: {
41
- control: 'number',
42
- description: 'Número máximo de avatares visibles. El resto se contabiliza como `+N`.',
43
- },
44
- size: {
45
- control: 'select',
46
- options: ['sm', 'md', 'lg', 'xl'],
47
- description: 'Tamaño del avatar. Acepta presets (`sm | md | lg | xl`) o un número libre en px.',
48
- },
49
- showText: {
50
- control: 'boolean',
51
- description: 'Muestra el texto al lado del avatar.',
52
- },
53
- showTooltip: {
54
- control: 'boolean',
55
- description: 'Muestra el tooltip con `item.text` al hover.',
56
- },
57
- overlap: {
58
- control: 'number',
59
- description: 'Overlap en px entre avatares cuando hay varios (override del default por tamaño).',
60
- },
61
- sx: {
62
- control: false,
63
- description: 'sx del contenedor raíz. Se mergea sobre los defaults.',
64
- },
65
- avatarSx: {
66
- control: false,
67
- description: 'sx aplicado a cada MuiAvatar individual (borde, colores, etc).',
68
- },
69
- },
70
- };
71
-
72
- export default meta;
73
- type Story = StoryObj<typeof Avatar>;
74
-
75
- export const Default: Story = {
76
- args: {
77
- items: [
78
- { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=1' },
79
- { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=2' },
80
- ],
81
- },
82
- parameters: {
83
- docs: { source: { code: DefaultAvatarDefinition.trim() } },
84
- },
85
- };
86
-
87
- export const WithTypeAndText: Story = {
88
- args: {
89
- type: 'Owner',
90
- items: [{ text: 'Maria', imageUrl: 'https://i.pravatar.cc/150?img=5' }],
91
- showText: true,
92
- },
93
- play: async ({ canvasElement }) => {
94
- const canvas = within(canvasElement);
95
- const text = await canvas.findByTestId('text');
96
- const type = await canvas.findByTestId('type');
97
- expect(text).toBeInTheDocument();
98
- expect(type).toHaveTextContent('Owner:');
99
- },
100
- parameters: {
101
- docs: { source: { code: WithTypeAndTextDefinition.trim() } },
102
- },
103
- };
104
-
105
- export const WithBadgesAndTooltip: Story = {
106
- args: {
107
- showTooltip: true,
108
- items: [
109
- { text: 'John D.', badge: 'JD', backgroundColor: '#EF5350', color: '#fff' },
110
- { text: 'Alice B.', badge: 'AB', backgroundColor: '#AB47BC', color: '#fff' },
111
- ],
112
- },
113
- play: async ({ canvasElement }) => {
114
- const canvas = within(canvasElement);
115
- const badges = await canvas.findAllByTestId('badge');
116
- expect(badges.length).toBe(2);
117
- },
118
- parameters: {
119
- docs: { source: { code: WithBadgesAndTooltipDefinition.trim() } },
120
- },
121
- };
122
-
123
- export const SizeSmall: Story = {
124
- args: {
125
- size: 'sm',
126
- items: [
127
- { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=11' },
128
- { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=12' },
129
- { text: 'User Three', imageUrl: 'https://i.pravatar.cc/150?img=13' },
130
- ],
131
- },
132
- parameters: {
133
- docs: { source: { code: SizeSmallDefinition.trim() } },
134
- },
135
- };
136
-
137
- export const SizeMedium: Story = {
138
- args: {
139
- size: 'md',
140
- items: [
141
- { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=21' },
142
- { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=22' },
143
- { text: 'User Three', imageUrl: 'https://i.pravatar.cc/150?img=23' },
144
- ],
145
- },
146
- parameters: {
147
- docs: { source: { code: SizeMediumDefinition.trim() } },
148
- },
149
- };
150
-
151
- export const SizeLarge: Story = {
152
- args: {
153
- size: 'lg',
154
- items: [
155
- { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=31' },
156
- { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=32' },
157
- ],
158
- },
159
- parameters: {
160
- docs: { source: { code: SizeLargeDefinition.trim() } },
161
- },
162
- };
163
-
164
- export const SizeExtraLarge: Story = {
165
- args: {
166
- size: 'xl',
167
- items: [{ text: 'Maria', imageUrl: 'https://i.pravatar.cc/150?img=5' }],
168
- showText: false,
169
- },
170
- parameters: {
171
- docs: { source: { code: SizeExtraLargeDefinition.trim() } },
172
- },
173
- };
174
-
175
- export const NumericSize: Story = {
176
- args: {
177
- size: 72,
178
- items: [
179
- { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=41' },
180
- { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=42' },
181
- ],
182
- showText: false,
183
- },
184
- parameters: {
185
- docs: {
186
- description: {
187
- story: 'Pasando un número en `size` se calcula automáticamente el borde, font-size y overlap proporcional.',
188
- },
189
- source: { code: NumericSizeDefinition.trim() },
190
- },
191
- },
192
- };
193
-
194
- export const FallbackIcon: Story = {
195
- args: {
196
- showTooltip: true,
197
- items: [
198
- { text: 'Without image' },
199
- { text: 'Broken image', imageUrl: 'https://example.invalid/broken.png' },
200
- ],
201
- },
202
- parameters: {
203
- docs: {
204
- description: {
205
- story: 'Cuando no hay imagen (o falla la carga) y no hay badge, cae al icono `AccountCircle`.',
206
- },
207
- source: { code: FallbackIconDefinition.trim() },
208
- },
209
- },
210
- };
211
-
212
- export const DisplayedAvatarsLimit: Story = {
213
- args: {
214
- displayedAvatars: 3,
215
- items: [
216
- { text: 'User 1', imageUrl: 'https://i.pravatar.cc/150?img=51' },
217
- { text: 'User 2', imageUrl: 'https://i.pravatar.cc/150?img=52' },
218
- { text: 'User 3', imageUrl: 'https://i.pravatar.cc/150?img=53' },
219
- { text: 'User 4', imageUrl: 'https://i.pravatar.cc/150?img=54' },
220
- { text: 'User 5', imageUrl: 'https://i.pravatar.cc/150?img=55' },
221
- ],
222
- },
223
- parameters: {
224
- docs: {
225
- description: {
226
- story: 'Solo se renderizan `displayedAvatars` avatares; el resto se cuenta en el `+N` del texto.',
227
- },
228
- source: { code: DisplayedAvatarsLimitDefinition.trim() },
229
- },
230
- },
231
- };
232
-
233
- export const CustomStyling: Story = {
234
- args: {
235
- size: 'md',
236
- items: [
237
- { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=61' },
238
- { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=62' },
239
- ],
240
- sx: {
241
- p: 1,
242
- borderRadius: 2,
243
- bgcolor: 'action.hover',
244
- },
245
- avatarSx: {
246
- border: (theme) => `3px solid ${theme.palette.primary.main}`,
247
- },
248
- },
249
- parameters: {
250
- docs: {
251
- description: {
252
- story:
253
- 'Demo del passthrough de `sx` (contenedor) y `avatarSx` (cada avatar). El consumidor puede overridear bordes, colores y el layout del wrapper sin tocar el componente.',
254
- },
255
- source: { code: CustomStylingDefinition.trim() },
256
- },
257
- },
258
- };
@@ -1,206 +0,0 @@
1
- import React, { useState } from 'react';
2
- import {
3
- Avatar as MuiAvatar,
4
- Box,
5
- Tooltip,
6
- Typography,
7
- type SxProps,
8
- type Theme,
9
- } from '@mui/material';
10
- import AccountCircleIcon from '@mui/icons-material/AccountCircle';
11
-
12
- export interface AvatarItem {
13
- text?: string;
14
- imageUrl?: string;
15
- badge?: string;
16
- color?: string;
17
- backgroundColor?: string;
18
- }
19
-
20
- export type AvatarSize = 'sm' | 'md' | 'lg' | 'xl' | number;
21
-
22
- export interface AvatarProps {
23
- type?: string;
24
- items: AvatarItem[];
25
- displayedAvatars?: number;
26
- size?: AvatarSize;
27
- showText?: boolean;
28
- showTooltip?: boolean;
29
- /**
30
- * sx aplicado al contenedor raíz.
31
- */
32
- sx?: SxProps<Theme>;
33
- /**
34
- * sx aplicado a cada MuiAvatar individual (se mergea sobre los defaults).
35
- */
36
- avatarSx?: SxProps<Theme>;
37
- className?: string;
38
- /**
39
- * Overlap (px) entre avatares cuando hay varios. Default depende del tamaño.
40
- */
41
- overlap?: number;
42
- }
43
-
44
- // Escala alineada con la escala de MUI (sm=32, md=40, lg=56, xl=96) con borde
45
- // proporcional para el efecto stacked.
46
- const sizeMap: Record<
47
- Exclude<AvatarSize, number>,
48
- { px: number; border: number; font: number; overlap: number }
49
- > = {
50
- sm: { px: 32, border: 2, font: 14, overlap: 8 },
51
- md: { px: 40, border: 2, font: 16, overlap: 10 },
52
- lg: { px: 56, border: 3, font: 22, overlap: 14 },
53
- xl: { px: 96, border: 4, font: 36, overlap: 20 },
54
- };
55
-
56
- const resolveSize = (size: AvatarSize) => {
57
- if (typeof size === 'number') {
58
- return {
59
- px: size,
60
- border: Math.max(2, Math.round(size * 0.05)),
61
- font: Math.round(size * 0.4),
62
- overlap: Math.round(size * 0.25),
63
- };
64
- }
65
- return sizeMap[size];
66
- };
67
-
68
- const mergeSx = (base: SxProps<Theme>, extra?: SxProps<Theme>): SxProps<Theme> => {
69
- if (!extra) return base;
70
- const baseArr = Array.isArray(base) ? base : [base];
71
- const extraArr = Array.isArray(extra) ? extra : [extra];
72
- return [...baseArr, ...extraArr] as SxProps<Theme>;
73
- };
74
-
75
- export const Avatar: React.FC<AvatarProps> = ({
76
- items,
77
- type,
78
- displayedAvatars = 4,
79
- size = 'sm',
80
- showText = true,
81
- showTooltip = false,
82
- sx,
83
- avatarSx,
84
- className,
85
- overlap,
86
- }) => {
87
- const [errorIndex, setErrorIndex] = useState<Set<number>>(new Set());
88
-
89
- const handleImageError = (index: number) => {
90
- setErrorIndex((prev) => {
91
- const next = new Set(prev);
92
- next.add(index);
93
- return next;
94
- });
95
- };
96
-
97
- if (!items || items.length === 0) {
98
- return null;
99
- }
100
-
101
- const s = resolveSize(size);
102
- const effectiveOverlap = overlap ?? s.overlap;
103
- const visibleItems = items.slice(0, displayedAvatars);
104
-
105
- const baseAvatarSx: SxProps<Theme> = {
106
- width: s.px,
107
- height: s.px,
108
- fontSize: s.font,
109
- fontWeight: 700,
110
- border: (theme) => `${s.border}px solid ${theme.palette.background.paper}`,
111
- boxSizing: 'content-box',
112
- };
113
-
114
- const renderSingleAvatar = (item: AvatarItem, i: number) => {
115
- const hasImage = !!item.imageUrl && !errorIndex.has(i);
116
- const showBadgeFallback = !!item.badge;
117
-
118
- // Defaults tirando al theme; item.color / item.backgroundColor tienen prioridad.
119
- const itemSx: SxProps<Theme> = {
120
- bgcolor: item.backgroundColor ?? 'action.selected',
121
- color: item.color ?? 'text.secondary',
122
- // Stacking manual: margen negativo al segundo avatar en adelante.
123
- ...(i > 0 && { marginLeft: `-${effectiveOverlap}px` }),
124
- zIndex: visibleItems.length - i,
125
- };
126
-
127
- const finalSx = mergeSx(mergeSx(baseAvatarSx, itemSx), avatarSx);
128
-
129
- const avatarEl = (
130
- <MuiAvatar
131
- data-testid="avatar"
132
- alt={item.text || 'User avatar'}
133
- src={hasImage ? item.imageUrl : undefined}
134
- imgProps={{
135
- 'data-testid': 'image',
136
- onError: () => handleImageError(i),
137
- } as React.ImgHTMLAttributes<HTMLImageElement>}
138
- sx={finalSx}
139
- >
140
- {!hasImage && showBadgeFallback ? (
141
- <span data-testid="badge" aria-label={item.text}>
142
- {item.badge}
143
- </span>
144
- ) : !hasImage ? (
145
- <AccountCircleIcon
146
- data-testid="icon"
147
- aria-label={item.text}
148
- sx={{ width: '100%', height: '100%' }}
149
- />
150
- ) : null}
151
- </MuiAvatar>
152
- );
153
-
154
- if (showTooltip && item.text) {
155
- return (
156
- <Tooltip key={i} title={item.text}>
157
- {avatarEl}
158
- </Tooltip>
159
- );
160
- }
161
- return <React.Fragment key={i}>{avatarEl}</React.Fragment>;
162
- };
163
-
164
- return (
165
- <Box
166
- data-testid="avatar-container"
167
- className={className}
168
- sx={mergeSx(
169
- {
170
- display: 'flex',
171
- alignItems: 'center',
172
- lineHeight: 1,
173
- width: 'fit-content',
174
- },
175
- sx,
176
- )}
177
- >
178
- <Box sx={{ display: 'flex', alignItems: 'center' }}>
179
- {visibleItems.map((item, i) => renderSingleAvatar(item, i))}
180
- </Box>
181
-
182
- {showText && items[0]?.text && (
183
- <Typography
184
- data-testid="text"
185
- variant="caption"
186
- sx={{
187
- ml: 1,
188
- fontSize: '0.75rem',
189
- fontWeight: 400,
190
- color: 'text.primary',
191
- }}
192
- >
193
- {type && items.length === 1 && (
194
- <Box component="span" data-testid="type" sx={{ mr: 0.5 }}>
195
- {type}:
196
- </Box>
197
- )}
198
- {items[0].text}
199
- {items.length > 1 && ` +${items.length - 1}`}
200
- </Typography>
201
- )}
202
- </Box>
203
- );
204
- };
205
-
206
- export default Avatar;
@@ -1 +0,0 @@
1
- export { default as Avatar} from './Avatar'
@@ -1,97 +0,0 @@
1
- export const DefaultButtonDefinition = `
2
- <Button variant="text">
3
- Button
4
- </Button>
5
- `
6
-
7
- export const OutlinedButtonDefinition = `
8
- <Button variant="outlined">
9
- Button
10
- </Button>
11
- `
12
-
13
- export const ContainedButtonDefinition = `
14
- <Button variant="contained">
15
- Button
16
- </Button>
17
- `
18
-
19
- export const WithStartIconButtonDefinition = `
20
- <Button
21
- data-testid="button"
22
- startIcon={<NotificationsIcon/>}
23
- variant="contained"
24
- >
25
- Button
26
- </Button>
27
- `
28
-
29
- export const WithEndIconButtonDefinition = `
30
- <Button
31
- data-testid="button"
32
- endIcon={<NotificationsIcon/>}
33
- variant="contained"
34
- >
35
- Button
36
- </Button>
37
- `
38
-
39
- export const WithSmallSizeButtonDefinition = `
40
- <Button
41
- data-testid="button"
42
- size="small"
43
- variant="contained"
44
- >
45
- Button
46
- </Button>
47
- `
48
-
49
- export const WithLargeSizeButtonDefinition = `
50
- <Button
51
- data-testid="button"
52
- size="large"
53
- variant="contained"
54
- >
55
- Button
56
- </Button>
57
- `
58
-
59
- export const DisabledStateButtonDefinition = `
60
- <Button
61
- data-testid="button"
62
- disabled
63
- variant="contained"
64
- >
65
- Button
66
- </Button>`
67
-
68
- export const LoadingButtonDefinition = `
69
- <Button
70
- data-testid="button"
71
- loading
72
- variant="contained"
73
- >
74
- Button
75
- </Button>
76
- `
77
-
78
- export const LoadingIndicatorStartButtonDefinition = `
79
- <Button
80
- data-testid="button"
81
- loading
82
- loadingPosition="start"
83
- variant="contained"
84
- >
85
- Button
86
- </Button>
87
- `
88
-
89
- export const LoadingIndicatorEndButtonDefinition = `
90
- <Button
91
- data-testid="button"
92
- loading
93
- loadingPosition="end"
94
- variant="contained"
95
- >
96
- Button
97
- </Button>`