@soyfri/shared-library 2.0.0-beta.2 → 2.0.0-beta.20

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 (657) hide show
  1. package/.dockerignore +8 -0
  2. package/.github/workflows/publish.yml +107 -0
  3. package/.prettierrc +3 -0
  4. package/.storybook/main.ts +19 -0
  5. package/.storybook/preview.ts +14 -0
  6. package/.storybook/vitest.setup.ts +9 -0
  7. package/Dockerfile +37 -0
  8. package/build.js +117 -0
  9. package/chromatic.config.json +5 -0
  10. package/cleanDirectories.js +40 -0
  11. package/dist/Autocomplete-C_lW1VER.js +337 -0
  12. package/dist/Autocomplete-C_lW1VER.js.map +1 -0
  13. package/dist/Autocomplete-CejWztBY.cjs +336 -0
  14. package/dist/Autocomplete-CejWztBY.cjs.map +1 -0
  15. package/dist/Avatar-CgT7955R.js +162 -0
  16. package/dist/Avatar-CgT7955R.js.map +1 -0
  17. package/dist/Avatar-CuSrK8Wn.cjs +161 -0
  18. package/dist/Avatar-CuSrK8Wn.cjs.map +1 -0
  19. package/dist/Button-C17mExpd.cjs.map +1 -1
  20. package/dist/Button-UkkP-bNw.js.map +1 -1
  21. package/dist/Card-B1wtavyl.js +98 -0
  22. package/dist/Card-B1wtavyl.js.map +1 -0
  23. package/dist/Card-DfdU610V.cjs +97 -0
  24. package/dist/Card-DfdU610V.cjs.map +1 -0
  25. package/dist/Checkbox-BCqMFWt4.cjs +187 -0
  26. package/dist/Checkbox-BCqMFWt4.cjs.map +1 -0
  27. package/dist/Checkbox-gB5YKkVo.js +188 -0
  28. package/dist/Checkbox-gB5YKkVo.js.map +1 -0
  29. package/dist/{components/DateRangePicker/DateRangePicker.js → Chip-OPYQ1uQ_.js} +33 -35
  30. package/dist/Chip-OPYQ1uQ_.js.map +1 -0
  31. package/dist/{components/DateRangePicker/DateRangePicker.cjs → Chip-qoJLDiva.cjs} +33 -36
  32. package/dist/Chip-qoJLDiva.cjs.map +1 -0
  33. package/dist/DatePicker-_IGWc3I5.js +178 -0
  34. package/dist/DatePicker-_IGWc3I5.js.map +1 -0
  35. package/dist/DatePicker-t7uDTZMl.cjs +177 -0
  36. package/dist/DatePicker-t7uDTZMl.cjs.map +1 -0
  37. package/dist/DateTimePicker-BxQyjTCY.cjs +229 -0
  38. package/dist/DateTimePicker-BxQyjTCY.cjs.map +1 -0
  39. package/dist/DateTimePicker-CrmWav_j.js +230 -0
  40. package/dist/DateTimePicker-CrmWav_j.js.map +1 -0
  41. package/dist/Input-CScC87J5.cjs +185 -0
  42. package/dist/Input-CScC87J5.cjs.map +1 -0
  43. package/dist/Input-DP_fKl38.js +186 -0
  44. package/dist/Input-DP_fKl38.js.map +1 -0
  45. package/dist/Modal-BN5s-Tfk.cjs +347 -0
  46. package/dist/Modal-BN5s-Tfk.cjs.map +1 -0
  47. package/dist/Modal-BRZMPwDj.js +348 -0
  48. package/dist/Modal-BRZMPwDj.js.map +1 -0
  49. package/dist/README.md +243 -0
  50. package/dist/RadioGroup-Dd0rHXSX.cjs +202 -0
  51. package/dist/RadioGroup-Dd0rHXSX.cjs.map +1 -0
  52. package/dist/RadioGroup-bO-ahP9T.js +203 -0
  53. package/dist/RadioGroup-bO-ahP9T.js.map +1 -0
  54. package/dist/Select-D5OrjVj3.js +253 -0
  55. package/dist/Select-D5OrjVj3.js.map +1 -0
  56. package/dist/Select-Dyvc4bVo.cjs +252 -0
  57. package/dist/Select-Dyvc4bVo.cjs.map +1 -0
  58. package/dist/Stat-BUcFCGrz.cjs +83 -0
  59. package/dist/Stat-BUcFCGrz.cjs.map +1 -0
  60. package/dist/Stat-C06A_izS.js +84 -0
  61. package/dist/Stat-C06A_izS.js.map +1 -0
  62. package/dist/StatusMessage-B3nXpuRl.cjs +88 -0
  63. package/dist/StatusMessage-B3nXpuRl.cjs.map +1 -0
  64. package/dist/StatusMessage-D0WgSBx7.js +89 -0
  65. package/dist/StatusMessage-D0WgSBx7.js.map +1 -0
  66. package/dist/Step-BArsou1V.js +301 -0
  67. package/dist/Step-BArsou1V.js.map +1 -0
  68. package/dist/Step-Nd7SJbRZ.cjs +300 -0
  69. package/dist/Step-Nd7SJbRZ.cjs.map +1 -0
  70. package/dist/Switch-CQFOopYy.cjs +182 -0
  71. package/dist/Switch-CQFOopYy.cjs.map +1 -0
  72. package/dist/Switch-D72dpkH2.js +183 -0
  73. package/dist/Switch-D72dpkH2.js.map +1 -0
  74. package/dist/Tab-BbP8jBcK.cjs +110 -0
  75. package/dist/Tab-BbP8jBcK.cjs.map +1 -0
  76. package/dist/Tab-BxSxKJsP.js +111 -0
  77. package/dist/Tab-BxSxKJsP.js.map +1 -0
  78. package/dist/Table-C2LbW0B1.js +531 -0
  79. package/dist/Table-C2LbW0B1.js.map +1 -0
  80. package/dist/Table-C4OM6rrC.cjs +530 -0
  81. package/dist/Table-C4OM6rrC.cjs.map +1 -0
  82. package/dist/components/ActionMenu/ActionMenu.cjs +52 -52
  83. package/dist/components/ActionMenu/ActionMenu.cjs.map +1 -1
  84. package/dist/components/ActionMenu/ActionMenu.d.ts +20 -36
  85. package/dist/components/ActionMenu/ActionMenu.js +55 -55
  86. package/dist/components/ActionMenu/ActionMenu.js.map +1 -1
  87. package/dist/components/ActionMenu/index.d.ts +2 -2
  88. package/dist/components/AppBar/AppBar.cjs +3 -220
  89. package/dist/components/AppBar/AppBar.cjs.map +1 -1
  90. package/dist/components/AppBar/AppBar.d.ts +6 -6
  91. package/dist/components/AppBar/AppBar.js +6 -223
  92. package/dist/components/AppBar/AppBar.js.map +1 -1
  93. package/dist/components/AppBar/index.d.ts +0 -6
  94. package/dist/components/Autocomplete/Autocomplete.cjs +4 -311
  95. package/dist/components/Autocomplete/Autocomplete.cjs.map +1 -1
  96. package/dist/components/Autocomplete/Autocomplete.d.ts +8 -6
  97. package/dist/components/Autocomplete/Autocomplete.helpers.d.ts +8 -4
  98. package/dist/components/Autocomplete/Autocomplete.js +4 -311
  99. package/dist/components/Autocomplete/Autocomplete.js.map +1 -1
  100. package/dist/components/Autocomplete/_parts/AutocompleteOption.d.ts +5 -8
  101. package/dist/components/Autocomplete/index.d.ts +1 -1
  102. package/dist/components/Avatar/Avatar.cjs +2 -160
  103. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  104. package/dist/components/Avatar/Avatar.js +2 -160
  105. package/dist/components/Avatar/Avatar.js.map +1 -1
  106. package/dist/components/Avatar/index.d.ts +1 -0
  107. package/dist/components/Button/Button.d.ts +5 -5
  108. package/dist/components/Button/index.d.ts +1 -0
  109. package/dist/components/Card/Card.cjs +4 -184
  110. package/dist/components/Card/Card.cjs.map +1 -1
  111. package/dist/components/Card/Card.d.ts +3 -50
  112. package/dist/components/Card/Card.js +4 -184
  113. package/dist/components/Card/Card.js.map +1 -1
  114. package/dist/components/Card/Card.sx.d.ts +3 -6
  115. package/dist/components/Card/index.d.ts +1 -1
  116. package/dist/components/Checkbox/Checkbox.cjs +6 -0
  117. package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
  118. package/dist/components/Checkbox/Checkbox.d.ts +55 -0
  119. package/dist/components/Checkbox/Checkbox.js +6 -0
  120. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  121. package/dist/components/Checkbox/Checkbox.sx.d.ts +13 -0
  122. package/dist/components/Checkbox/index.d.ts +2 -0
  123. package/dist/components/Checkbox.d.ts +6 -0
  124. package/dist/components/Chip/Chip.cjs +4 -72
  125. package/dist/components/Chip/Chip.cjs.map +1 -1
  126. package/dist/components/Chip/Chip.js +3 -71
  127. package/dist/components/Chip/Chip.js.map +1 -1
  128. package/dist/components/Chip/index.d.ts +2 -1
  129. package/dist/components/Chip.d.ts +4 -0
  130. package/dist/components/Column/Column.cjs +1 -1
  131. package/dist/components/Column/Column.cjs.map +1 -1
  132. package/dist/components/Column/Column.d.ts +1 -1
  133. package/dist/components/Column/Column.js +1 -1
  134. package/dist/components/Column/Column.js.map +1 -1
  135. package/dist/components/Column/index.d.ts +1 -0
  136. package/dist/components/DatePicker/DatePicker.cjs +3 -200
  137. package/dist/components/DatePicker/DatePicker.cjs.map +1 -1
  138. package/dist/components/DatePicker/DatePicker.d.ts +1 -13
  139. package/dist/components/DatePicker/DatePicker.js +3 -200
  140. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  141. package/dist/components/DatePicker/index.d.ts +1 -1
  142. package/dist/components/DateTimePicker/DateTimePicker.cjs +3 -219
  143. package/dist/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  144. package/dist/components/DateTimePicker/DateTimePicker.d.ts +10 -6
  145. package/dist/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
  146. package/dist/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
  147. package/dist/components/DateTimePicker/DateTimePicker.js +3 -219
  148. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  149. package/dist/components/DateTimePicker/index.d.ts +1 -1
  150. package/dist/components/Drawer/Drawer.cjs +25 -24
  151. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  152. package/dist/components/Drawer/Drawer.d.ts +8 -1
  153. package/dist/components/Drawer/Drawer.js +26 -25
  154. package/dist/components/Drawer/Drawer.js.map +1 -1
  155. package/dist/components/Drawer/DrawerItem.d.ts +6 -1
  156. package/dist/components/Gallery/Gallery.cjs +154 -79
  157. package/dist/components/Gallery/Gallery.cjs.map +1 -1
  158. package/dist/components/Gallery/Gallery.d.ts +25 -9
  159. package/dist/components/Gallery/Gallery.js +154 -79
  160. package/dist/components/Gallery/Gallery.js.map +1 -1
  161. package/dist/components/Gallery/GalleryLightbox.d.ts +6 -10
  162. package/dist/components/Gallery/GalleryMain.d.ts +3 -7
  163. package/dist/components/Gallery/GalleryThumbnails.d.ts +7 -11
  164. package/dist/components/Gallery/index.d.ts +2 -1
  165. package/dist/components/Gallery.d.ts +4 -0
  166. package/dist/components/Icon/Icon.cjs +6 -8
  167. package/dist/components/Icon/Icon.cjs.map +1 -1
  168. package/dist/components/Icon/Icon.d.ts +11 -17
  169. package/dist/components/Icon/Icon.js +7 -9
  170. package/dist/components/Icon/Icon.js.map +1 -1
  171. package/dist/components/Icon/index.d.ts +2 -1
  172. package/dist/components/Icon.d.ts +4 -0
  173. package/dist/components/Input/Input.cjs +3 -172
  174. package/dist/components/Input/Input.cjs.map +1 -1
  175. package/dist/components/Input/Input.d.ts +9 -2
  176. package/dist/components/Input/Input.definitions.d.ts +1 -0
  177. package/dist/components/Input/Input.helpers.d.ts +3 -3
  178. package/dist/components/Input/Input.js +3 -172
  179. package/dist/components/Input/Input.js.map +1 -1
  180. package/dist/components/Input/index.d.ts +1 -1
  181. package/dist/components/InputGroup/InputGroup.cjs +23 -22
  182. package/dist/components/InputGroup/InputGroup.cjs.map +1 -1
  183. package/dist/components/InputGroup/InputGroup.d.ts +4 -4
  184. package/dist/components/InputGroup/InputGroup.js +22 -21
  185. package/dist/components/InputGroup/InputGroup.js.map +1 -1
  186. package/dist/components/InputGroup/index.d.ts +2 -1
  187. package/dist/components/InputGroup.d.ts +4 -0
  188. package/dist/components/Modal/Modal.cjs +7 -317
  189. package/dist/components/Modal/Modal.cjs.map +1 -1
  190. package/dist/components/Modal/Modal.d.ts +20 -5
  191. package/dist/components/Modal/Modal.js +6 -316
  192. package/dist/components/Modal/Modal.js.map +1 -1
  193. package/dist/components/Modal/ModalBody.d.ts +6 -1
  194. package/dist/components/Modal/ModalFooter.d.ts +4 -4
  195. package/dist/components/Modal/ModalHeader.d.ts +6 -1
  196. package/dist/components/Modal/index.d.ts +4 -1
  197. package/dist/components/Modal.d.ts +4 -0
  198. package/dist/components/RadioGroup/RadioGroup.cjs +6 -0
  199. package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -0
  200. package/dist/components/RadioGroup/RadioGroup.d.ts +59 -0
  201. package/dist/components/RadioGroup/RadioGroup.definitions.d.ts +6 -0
  202. package/dist/components/RadioGroup/RadioGroup.js +6 -0
  203. package/dist/components/RadioGroup/RadioGroup.js.map +1 -0
  204. package/dist/components/RadioGroup/RadioGroup.sx.d.ts +20 -0
  205. package/dist/components/RadioGroup/index.d.ts +2 -0
  206. package/dist/components/RadioGroup.d.ts +6 -0
  207. package/dist/components/Select/Select.cjs +4 -445
  208. package/dist/components/Select/Select.cjs.map +1 -1
  209. package/dist/components/Select/Select.d.ts +13 -18
  210. package/dist/components/Select/Select.helpers.d.ts +5 -19
  211. package/dist/components/Select/Select.js +4 -445
  212. package/dist/components/Select/Select.js.map +1 -1
  213. package/dist/components/Select/index.d.ts +1 -1
  214. package/dist/components/Stat/Stat.cjs +4 -83
  215. package/dist/components/Stat/Stat.cjs.map +1 -1
  216. package/dist/components/Stat/Stat.js +3 -82
  217. package/dist/components/Stat/Stat.js.map +1 -1
  218. package/dist/components/Stat/index.d.ts +2 -1
  219. package/dist/components/Stat.d.ts +4 -0
  220. package/dist/components/StatusMessage/StatusMessage.cjs +4 -77
  221. package/dist/components/StatusMessage/StatusMessage.cjs.map +1 -1
  222. package/dist/components/StatusMessage/StatusMessage.d.ts +20 -36
  223. package/dist/components/StatusMessage/StatusMessage.js +3 -76
  224. package/dist/components/StatusMessage/StatusMessage.js.map +1 -1
  225. package/dist/components/StatusMessage/index.d.ts +2 -1
  226. package/dist/components/StatusMessage.d.ts +4 -0
  227. package/dist/components/Stepper/Stepper.cjs +8 -47
  228. package/dist/components/Stepper/Stepper.cjs.map +1 -1
  229. package/dist/components/Stepper/Stepper.d.ts +9 -8
  230. package/dist/components/Stepper/Stepper.js +7 -46
  231. package/dist/components/Stepper/Stepper.js.map +1 -1
  232. package/dist/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
  233. package/dist/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  234. package/dist/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  235. package/dist/components/Stepper/index.d.ts +6 -2
  236. package/dist/components/Stepper.d.ts +4 -0
  237. package/dist/components/Switch/Switch.cjs +6 -0
  238. package/dist/components/Switch/Switch.cjs.map +1 -0
  239. package/dist/components/Switch/Switch.d.ts +48 -0
  240. package/dist/components/Switch/Switch.definitions.d.ts +7 -0
  241. package/dist/components/Switch/Switch.js +6 -0
  242. package/dist/components/Switch/Switch.js.map +1 -0
  243. package/dist/components/Switch/Switch.sx.d.ts +22 -0
  244. package/dist/components/Switch/Switch.types.d.ts +1 -0
  245. package/dist/components/Switch/index.d.ts +2 -0
  246. package/dist/components/Switch.d.ts +6 -0
  247. package/dist/components/Table/Table.cjs +2 -528
  248. package/dist/components/Table/Table.cjs.map +1 -1
  249. package/dist/components/Table/Table.d.ts +1 -1
  250. package/dist/components/Table/Table.js +2 -528
  251. package/dist/components/Table/Table.js.map +1 -1
  252. package/dist/components/Tabs/Tabs.cjs +5 -94
  253. package/dist/components/Tabs/Tabs.cjs.map +1 -1
  254. package/dist/components/Tabs/Tabs.d.ts +21 -16
  255. package/dist/components/Tabs/Tabs.js +4 -93
  256. package/dist/components/Tabs/Tabs.js.map +1 -1
  257. package/dist/components/Tabs/index.d.ts +4 -2
  258. package/dist/components/Tabs.d.ts +4 -0
  259. package/dist/components/Timeline/Timeline.cjs +3 -2
  260. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  261. package/dist/components/Timeline/Timeline.d.ts +4 -8
  262. package/dist/components/Timeline/Timeline.js +3 -2
  263. package/dist/components/Timeline/Timeline.js.map +1 -1
  264. package/dist/components/Timeline/index.d.ts +4 -2
  265. package/dist/components/Timeline.d.ts +4 -0
  266. package/dist/components/_shared/mergeSx.d.ts +7 -0
  267. package/dist/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
  268. package/dist/formField.sx-8_QRnKxv.js.map +1 -0
  269. package/dist/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
  270. package/dist/formField.sx-BAX7KwMR.cjs.map +1 -0
  271. package/dist/index.cjs +92 -2
  272. package/dist/index.cjs.map +1 -1
  273. package/dist/index.d.ts +32 -0
  274. package/dist/index.js +66 -3
  275. package/dist/index.js.map +1 -1
  276. package/dist/mergeSx-BXoNZjB_.js +10 -0
  277. package/dist/mergeSx-BXoNZjB_.js.map +1 -0
  278. package/dist/mergeSx-Dbccoo_H.cjs +9 -0
  279. package/dist/mergeSx-Dbccoo_H.cjs.map +1 -0
  280. package/dist/mui.d.ts +3 -1
  281. package/dist/package.json +190 -0
  282. package/dist/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
  283. package/dist/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
  284. package/dist/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
  285. package/dist/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.map} +1 -1
  286. package/dist/theme/componentStyles.d.ts +1 -1
  287. package/dist/tokens-BRrcP_p_.js +21 -0
  288. package/dist/tokens-BRrcP_p_.js.map +1 -0
  289. package/dist/tokens-jaWWNk39.cjs +20 -0
  290. package/dist/tokens-jaWWNk39.cjs.map +1 -0
  291. package/dist/utils/index.d.ts +2 -0
  292. package/dist/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
  293. package/package.json +25 -48
  294. package/rollup.config.cjs +87 -0
  295. package/scripts/gen-dist-pkg.mjs +15 -0
  296. package/shared-library-comercios-MUI.code-workspace +10 -0
  297. package/src/components/ActionMenu/ActionMenu.stories.tsx +427 -0
  298. package/src/components/ActionMenu/ActionMenu.tsx +153 -0
  299. package/src/components/ActionMenu/index.ts +2 -0
  300. package/src/components/AppBar/AppBar.stories.tsx +316 -0
  301. package/src/components/AppBar/AppBar.sx.ts +32 -0
  302. package/src/components/AppBar/AppBar.tsx +119 -0
  303. package/src/components/AppBar/AppBarContext.ts +25 -0
  304. package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
  305. package/src/components/AppBar/index.ts +12 -0
  306. package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
  307. package/src/components/Autocomplete/Autocomplete.helpers.ts +80 -0
  308. package/src/components/Autocomplete/Autocomplete.stories.tsx +784 -0
  309. package/src/components/Autocomplete/Autocomplete.sx.ts +30 -0
  310. package/src/components/Autocomplete/Autocomplete.tsx +393 -0
  311. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
  312. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
  313. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +29 -0
  314. package/src/components/Autocomplete/index.ts +12 -0
  315. package/src/components/Avatar/Avatar.definitions.ts +162 -0
  316. package/src/components/Avatar/Avatar.stories.tsx +258 -0
  317. package/src/components/Avatar/Avatar.tsx +206 -0
  318. package/src/components/Avatar/index.ts +2 -0
  319. package/src/components/Button/Button.definition.ts +97 -0
  320. package/src/components/Button/Button.stories.tsx +285 -0
  321. package/src/components/Button/Button.tsx +66 -0
  322. package/src/components/Button/index.ts +2 -0
  323. package/src/components/Card/Card.definition.ts +5 -0
  324. package/src/components/Card/Card.stories.tsx +102 -0
  325. package/src/components/Card/Card.sx.ts +58 -0
  326. package/src/components/Card/Card.tsx +85 -0
  327. package/src/components/Card/index.ts +4 -0
  328. package/src/components/Checkbox/Checkbox.stories.tsx +212 -0
  329. package/src/components/Checkbox/Checkbox.sx.ts +67 -0
  330. package/src/components/Checkbox/Checkbox.tsx +208 -0
  331. package/src/components/Checkbox/index.ts +10 -0
  332. package/src/components/Chip/Chip.definitions.ts +167 -0
  333. package/src/components/Chip/Chip.stories.tsx +265 -0
  334. package/src/components/Chip/Chip.tsx +61 -0
  335. package/src/components/Chip/index.ts +2 -0
  336. package/src/components/Column/Column.tsx +29 -0
  337. package/src/components/Column/index.ts +2 -0
  338. package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
  339. package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
  340. package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
  341. package/src/components/DatePicker/DatePicker.sx.ts +33 -0
  342. package/src/components/DatePicker/DatePicker.tsx +133 -0
  343. package/src/components/DatePicker/index.ts +7 -0
  344. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +317 -0
  345. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +45 -0
  346. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +415 -0
  347. package/src/components/DateTimePicker/DateTimePicker.sx.ts +30 -0
  348. package/src/components/DateTimePicker/DateTimePicker.tsx +240 -0
  349. package/src/components/DateTimePicker/index.ts +9 -0
  350. package/src/components/Drawer/Drawer.stories.tsx +438 -0
  351. package/src/components/Drawer/Drawer.sx.ts +106 -0
  352. package/src/components/Drawer/Drawer.tsx +224 -0
  353. package/src/components/Drawer/DrawerContext.ts +26 -0
  354. package/src/components/Drawer/DrawerItem.tsx +120 -0
  355. package/src/components/Drawer/index.ts +10 -0
  356. package/src/components/Flyout/Flyout.stories.tsx +282 -0
  357. package/src/components/Flyout/Flyout.tsx +122 -0
  358. package/src/components/Flyout/index.ts +1 -0
  359. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  360. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  361. package/src/components/Gallery/Gallery.tsx +158 -0
  362. package/src/components/Gallery/GalleryLightbox.tsx +186 -0
  363. package/src/components/Gallery/GalleryMain.tsx +87 -0
  364. package/src/components/Gallery/GalleryThumbnails.tsx +122 -0
  365. package/src/components/Gallery/index.ts +2 -0
  366. package/src/components/Icon/Icon.stories.tsx +121 -0
  367. package/src/components/Icon/Icon.tsx +163 -0
  368. package/src/components/Icon/index.ts +2 -0
  369. package/src/components/Input/Input.definitions.ts +348 -0
  370. package/src/components/Input/Input.helpers.ts +50 -0
  371. package/src/components/Input/Input.stories.tsx +528 -0
  372. package/src/components/Input/Input.sx.ts +42 -0
  373. package/src/components/Input/Input.tsx +162 -0
  374. package/src/components/Input/index.ts +10 -0
  375. package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
  376. package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
  377. package/src/components/InputGroup/InputGroup.tsx +180 -0
  378. package/src/components/InputGroup/index.ts +2 -0
  379. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  380. package/src/components/MenuButton/MenuButton.tsx +100 -0
  381. package/src/components/MenuButton/index.ts +1 -0
  382. package/src/components/Modal/Modal.stories.tsx +721 -0
  383. package/src/components/Modal/Modal.tsx +407 -0
  384. package/src/components/Modal/ModalBody.tsx +23 -0
  385. package/src/components/Modal/ModalFooter.tsx +83 -0
  386. package/src/components/Modal/ModalHeader.tsx +33 -0
  387. package/src/components/Modal/index.ts +11 -0
  388. package/src/components/RadioGroup/RadioGroup.definitions.ts +177 -0
  389. package/src/components/RadioGroup/RadioGroup.stories.tsx +231 -0
  390. package/src/components/RadioGroup/RadioGroup.sx.ts +75 -0
  391. package/src/components/RadioGroup/RadioGroup.tsx +207 -0
  392. package/src/components/RadioGroup/index.ts +10 -0
  393. package/src/components/Select/Select.helpers.ts +31 -0
  394. package/src/components/Select/Select.stories.tsx +393 -0
  395. package/src/components/Select/Select.sx.ts +14 -0
  396. package/src/components/Select/Select.tsx +327 -0
  397. package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
  398. package/src/components/Select/_parts/SelectValue.tsx +95 -0
  399. package/src/components/Select/index.ts +12 -0
  400. package/src/components/Stat/Stat.stories.tsx +85 -0
  401. package/src/components/Stat/Stat.tsx +117 -0
  402. package/src/components/Stat/index.ts +2 -0
  403. package/src/components/StatusMessage/StatusMessage.stories.tsx +159 -0
  404. package/src/components/StatusMessage/StatusMessage.tsx +143 -0
  405. package/src/components/StatusMessage/index.ts +3 -0
  406. package/src/components/Stepper/Step.tsx +21 -0
  407. package/src/components/Stepper/Stepper.definition.ts +75 -0
  408. package/src/components/Stepper/Stepper.stories.tsx +194 -0
  409. package/src/components/Stepper/Stepper.tsx +194 -0
  410. package/src/components/Stepper/StepperContext.tsx +176 -0
  411. package/src/components/Stepper/StepperProvider.stories.tsx +286 -0
  412. package/src/components/Stepper/_hooks/useHorizontalScroll.ts +56 -0
  413. package/src/components/Stepper/_parts/StepperScrollArrow.tsx +50 -0
  414. package/src/components/Stepper/index.ts +15 -0
  415. package/src/components/Switch/Switch.definitions.ts +134 -0
  416. package/src/components/Switch/Switch.stories.tsx +213 -0
  417. package/src/components/Switch/Switch.sx.ts +81 -0
  418. package/src/components/Switch/Switch.tsx +188 -0
  419. package/src/components/Switch/Switch.types.ts +10 -0
  420. package/src/components/Switch/index.ts +9 -0
  421. package/src/components/Table/EmptyTable.png +0 -0
  422. package/src/components/Table/Table.definition.ts +580 -0
  423. package/src/components/Table/Table.stories.tsx +853 -0
  424. package/src/components/Table/Table.tsx +494 -0
  425. package/src/components/Table/data.ts +134 -0
  426. package/src/components/Table/exportsUtils.ts +195 -0
  427. package/src/components/Table/index.ts +3 -0
  428. package/src/components/Table/types.ts +34 -0
  429. package/src/components/Tabs/Tab.definition.ts +53 -0
  430. package/src/components/Tabs/Tab.tsx +19 -0
  431. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  432. package/src/components/Tabs/Tabs.tsx +163 -0
  433. package/src/components/Tabs/_tabUtils.tsx +4 -0
  434. package/src/components/Tabs/index.ts +5 -0
  435. package/src/components/Timeline/Timeline.definition.ts +43 -0
  436. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  437. package/src/components/Timeline/Timeline.tsx +44 -0
  438. package/src/components/Timeline/TimelineItem.tsx +31 -0
  439. package/src/components/Timeline/index.ts +5 -0
  440. package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
  441. package/src/components/Tooltip/Tooltip.tsx +58 -0
  442. package/src/components/Tooltip/index.ts +1 -0
  443. package/src/components/_shared/formField.sx.ts +118 -0
  444. package/src/components/_shared/mergeSx.ts +16 -0
  445. package/src/components/_shared/resolvePreset.ts +38 -0
  446. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  447. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  448. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  449. package/src/hooks/ClipBoard/index.ts +1 -0
  450. package/src/index.ts +51 -0
  451. package/src/mui.ts +57 -0
  452. package/src/styles.css +3 -0
  453. package/src/theme/componentStyles.ts +50 -0
  454. package/src/theme/tokens.ts +43 -0
  455. package/src/utils/index.ts +2 -0
  456. package/src/utils/scrollToTop.ts +36 -0
  457. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  458. package/storybook-static/assets/AccountCircle-BDZFsbTw.js +1 -0
  459. package/storybook-static/assets/ActionMenu-EynP8yU1.js +19 -0
  460. package/storybook-static/assets/ActionMenu.stories-DqSqRGix.js +185 -0
  461. package/storybook-static/assets/Alert-3zvTPc0p.js +1 -0
  462. package/storybook-static/assets/AppBar.stories-DcX3M5th.js +172 -0
  463. package/storybook-static/assets/Autocomplete.stories-CXJm8FOT.js +788 -0
  464. package/storybook-static/assets/Avatar-NbFfkZws.js +1 -0
  465. package/storybook-static/assets/Avatar.stories-CwOYCzqU.js +390 -0
  466. package/storybook-static/assets/Box-BnhEcfFm.js +1 -0
  467. package/storybook-static/assets/Button-D9h7OggD.js +1 -0
  468. package/storybook-static/assets/Button-DBpqmVB_.js +1 -0
  469. package/storybook-static/assets/Button.stories-F20dmnjq.js +320 -0
  470. package/storybook-static/assets/ButtonBase-qyaMEhe4.js +74 -0
  471. package/storybook-static/assets/Card.stories-B3NpAhO0.js +154 -0
  472. package/storybook-static/assets/CheckCircleOutline-CEj5mDsl.js +1 -0
  473. package/storybook-static/assets/Chip-C3vKPpzR.js +1 -0
  474. package/storybook-static/assets/Chip.stories-sxcfHVo9.js +333 -0
  475. package/storybook-static/assets/CircularProgress-DC7ZNWwl.js +28 -0
  476. package/storybook-static/assets/Clear-4kYcKvT3.js +1 -0
  477. package/storybook-static/assets/ClipBoard-DvLBdNHe.js +1 -0
  478. package/storybook-static/assets/ClipBoard.stories-BGUo47r6.js +108 -0
  479. package/storybook-static/assets/Close-CgHeRgmh.js +1 -0
  480. package/storybook-static/assets/Close-Cy8nELYU.js +1 -0
  481. package/storybook-static/assets/Color-AVL7NMMY-BJKvwERm.js +1 -0
  482. package/storybook-static/assets/ContentCopy-BfLTDb10.js +1 -0
  483. package/storybook-static/assets/DatePicker-Clkpr-Ku.js +1 -0
  484. package/storybook-static/assets/DatePicker.stories-EaUCMkh3.js +444 -0
  485. package/storybook-static/assets/DateRangePicker.stories-BMlkj-8K.js +390 -0
  486. package/storybook-static/assets/DateTimePicker.stories-B6gdzKq5.js +555 -0
  487. package/storybook-static/assets/DefaultPropsProvider-BGoQxtDa.js +16 -0
  488. package/storybook-static/assets/Delete-D2SMMmIA.js +1 -0
  489. package/storybook-static/assets/DialogContent-BeCDKgax.js +1 -0
  490. package/storybook-static/assets/Divider-BbCj9wT4.js +1 -0
  491. package/storybook-static/assets/DocsRenderer-PQXLIZUC-BebLK5Y_.js +1243 -0
  492. package/storybook-static/assets/Drawer-DcFwy73r.js +1 -0
  493. package/storybook-static/assets/Drawer.stories-C5AZkJBk.js +173 -0
  494. package/storybook-static/assets/EmptyTable-B-RKtgVs.png +0 -0
  495. package/storybook-static/assets/ErrorOutline-D9gM7ART.js +1 -0
  496. package/storybook-static/assets/Fade-Ll96CvH8.js +1 -0
  497. package/storybook-static/assets/Flyout.stories-Cf7z6MNw.js +163 -0
  498. package/storybook-static/assets/Gallery.stories-DdpWVTF6.js +127 -0
  499. package/storybook-static/assets/Grow-8y4FglGK.js +1 -0
  500. package/storybook-static/assets/Home-BRvJEp2L.js +1 -0
  501. package/storybook-static/assets/Icon.stories-D0mUiW_t.js +78 -0
  502. package/storybook-static/assets/IconButton-9OYSTH58.js +1 -0
  503. package/storybook-static/assets/Input-CjX0t4h-.js +1 -0
  504. package/storybook-static/assets/Input.stories-BRxekliy.js +650 -0
  505. package/storybook-static/assets/InputGroup.stories-DH6gUfmn.js +306 -0
  506. package/storybook-static/assets/KeyboardArrowRight-WO_attK2.js +1 -0
  507. package/storybook-static/assets/KeyboardArrowUp-DsyVef-i.js +1 -0
  508. package/storybook-static/assets/ListItem-D3O0103N.js +1 -0
  509. package/storybook-static/assets/ListItemIcon-hca6xN79.js +1 -0
  510. package/storybook-static/assets/ListItemText-BFLAwLdl.js +1 -0
  511. package/storybook-static/assets/Logout-gj-P3AfU.js +1 -0
  512. package/storybook-static/assets/Menu-ClzfjLc3.js +1 -0
  513. package/storybook-static/assets/MenuButton.stories-B-W_QVDt.js +162 -0
  514. package/storybook-static/assets/MenuItem-iU6tAqJI.js +1 -0
  515. package/storybook-static/assets/Modal-3okp9H2i.js +1 -0
  516. package/storybook-static/assets/Modal.stories-DIWzm4qR.js +468 -0
  517. package/storybook-static/assets/MoreVert-BoIVG4gh.js +1 -0
  518. package/storybook-static/assets/Notifications-DY_A-Sho.js +1 -0
  519. package/storybook-static/assets/PageLoader.stories-DmtO1mlm.js +158 -0
  520. package/storybook-static/assets/Paper-SwQBhqI7.js +1 -0
  521. package/storybook-static/assets/Person-CkQl-mpq.js +1 -0
  522. package/storybook-static/assets/PickersModalDialog-Tjnr_cu5.js +10 -0
  523. package/storybook-static/assets/PickersToolbarButton-Tt185-si.js +1 -0
  524. package/storybook-static/assets/Popper-CnCTYXxy.js +1 -0
  525. package/storybook-static/assets/Portal-Cj8XF9Lf.js +1 -0
  526. package/storybook-static/assets/ScrollTopButton.stories-BflQCwNP.js +90 -0
  527. package/storybook-static/assets/Select-CjcuMAY0.js +4 -0
  528. package/storybook-static/assets/Select-DJh2biEb.js +3 -0
  529. package/storybook-static/assets/Select.stories-DU1Gb3I2.js +1103 -0
  530. package/storybook-static/assets/Settings-BLKc1CnO.js +1 -0
  531. package/storybook-static/assets/Snackbar-BtVeKTw6.js +1 -0
  532. package/storybook-static/assets/Stack-D01OUIXi.js +1 -0
  533. package/storybook-static/assets/Stat.stories-Bn9-iuPT.js +60 -0
  534. package/storybook-static/assets/StatusMessage.stories-hnfX8FeU.js +73 -0
  535. package/storybook-static/assets/Stepper-BtKB5ykn.js +2 -0
  536. package/storybook-static/assets/Stepper.stories-CTEZbgPc.js +165 -0
  537. package/storybook-static/assets/Table.stories-CTn2Ktmn.js +1260 -0
  538. package/storybook-static/assets/TableContainer-CzLNaEU-.js +1 -0
  539. package/storybook-static/assets/TableRow-CS88-1HF.js +2 -0
  540. package/storybook-static/assets/Tabs-DLpDOu_n.js +1 -0
  541. package/storybook-static/assets/Tabs.stories-BFVuFy_5.js +159 -0
  542. package/storybook-static/assets/TextField-22T-xHBm.js +1 -0
  543. package/storybook-static/assets/Timeline.stories-DJU_U2Hv.js +97 -0
  544. package/storybook-static/assets/Tooltip-DbnHUxNj.js +1 -0
  545. package/storybook-static/assets/Tooltip.stories-B7tA3dnV.js +66 -0
  546. package/storybook-static/assets/Typography-BgntX2Ep.js +1 -0
  547. package/storybook-static/assets/Wizard.stories-CVrJLK_D.js +23 -0
  548. package/storybook-static/assets/createSimplePaletteValueFilter-bm0fmN_7.js +1 -0
  549. package/storybook-static/assets/createSvgIcon-D_Gca4vA.js +1 -0
  550. package/storybook-static/assets/debounce-Be36O1Ab.js +1 -0
  551. package/storybook-static/assets/emotion-react.browser.esm--g-C9cX9.js +8 -0
  552. package/storybook-static/assets/extendSxProp-CEpa30hT.js +1 -0
  553. package/storybook-static/assets/formField.sx-DMCmZIAa.js +1 -0
  554. package/storybook-static/assets/getReactElementRef-BQ3ANZdy.js +1 -0
  555. package/storybook-static/assets/iframe-BAJnc_4n.js +1079 -0
  556. package/storybook-static/assets/index-B1tlhOpe.js +240 -0
  557. package/storybook-static/assets/index-BF3FAXTk.js +9 -0
  558. package/storybook-static/assets/index-CIeucmOB.js +2 -0
  559. package/storybook-static/assets/index-CY7j4a7o.js +1 -0
  560. package/storybook-static/assets/index-CxkKctw5.js +1 -0
  561. package/storybook-static/assets/isFocusVisible-B8k4qzLc.js +1 -0
  562. package/storybook-static/assets/isMuiElement-CTZSFcY5.js +1 -0
  563. package/storybook-static/assets/jsx-runtime-D_zvdyIk.js +9 -0
  564. package/storybook-static/assets/listItemTextClasses-CC_rwJam.js +1 -0
  565. package/storybook-static/assets/mergeSlotProps-B0UBKBMe.js +1 -0
  566. package/storybook-static/assets/ownerDocument-DW-IO8s5.js +1 -0
  567. package/storybook-static/assets/ownerWindow-HkKU3E4x.js +1 -0
  568. package/storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
  569. package/storybook-static/assets/react-18-BUJ64QCV.js +25 -0
  570. package/storybook-static/assets/resolvePreset-CN2aOJJr.js +1 -0
  571. package/storybook-static/assets/useControlled-DsVh1a5j.js +1 -0
  572. package/storybook-static/assets/useForkRef-0ANIrxcF.js +1 -0
  573. package/storybook-static/assets/useId-b4fZxjOL.js +1 -0
  574. package/storybook-static/assets/useMobilePicker-DK-c8xbD.js +1 -0
  575. package/storybook-static/assets/usePreviousProps-WR0rG4aR.js +1 -0
  576. package/storybook-static/assets/useSlot-b6pXgp5_.js +1 -0
  577. package/storybook-static/assets/useSlotProps-C0uMfuBt.js +1 -0
  578. package/storybook-static/assets/useTheme-BmOJK7ra.js +1 -0
  579. package/storybook-static/assets/useThemeProps-DYtxXiUU.js +1 -0
  580. package/storybook-static/assets/useThemeProps-U4yXiZ_5.js +1 -0
  581. package/storybook-static/assets/useTimeout-DNjRaOWc.js +1 -0
  582. package/storybook-static/assets/visuallyHidden-Dan1xhjv.js +1 -0
  583. package/storybook-static/favicon-wrapper.svg +46 -0
  584. package/storybook-static/favicon.svg +1 -0
  585. package/storybook-static/iframe.html +686 -0
  586. package/storybook-static/index.html +160 -0
  587. package/storybook-static/index.json +1 -0
  588. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  589. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  590. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  591. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  592. package/storybook-static/project.json +1 -0
  593. package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js +356 -0
  594. package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js.LEGAL.txt +40 -0
  595. package/storybook-static/sb-addons/docs-4/manager-bundle.js +151 -0
  596. package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +127 -0
  597. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +971 -0
  598. package/storybook-static/sb-addons/vitest-3/manager-bundle.js +3 -0
  599. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  600. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  601. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  602. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  603. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  604. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  605. package/storybook-static/sb-manager/globals-module-info.js +797 -0
  606. package/storybook-static/sb-manager/globals-runtime.js +69679 -0
  607. package/storybook-static/sb-manager/globals.js +34 -0
  608. package/storybook-static/sb-manager/runtime.js +13195 -0
  609. package/storybook-static/vite-inject-mocker-entry.js +18 -0
  610. package/tailwind.config.js +10 -0
  611. package/tsconfig.json +48 -0
  612. package/tsup.config.js +41 -0
  613. package/vite.config.js +132 -0
  614. package/vitest.config.ts +35 -0
  615. package/dist/components/AppBar/AppBarBrand.d.ts +0 -31
  616. package/dist/components/AppBar/AppBarUserMenu.d.ts +0 -65
  617. package/dist/components/Autocomplete/Autocomplete.types.d.ts +0 -1
  618. package/dist/components/DatePicker/DatePicker.types.d.ts +0 -1
  619. package/dist/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
  620. package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -15
  621. package/dist/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
  622. package/dist/components/DateRangePicker/DateRangePicker.js.map +0 -1
  623. package/dist/components/DateRangePicker/index.d.ts +0 -1
  624. package/dist/components/DateRangePicker.d.ts +0 -2
  625. package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
  626. package/dist/components/Input/Input.types.d.ts +0 -1
  627. package/dist/components/PageLoader/PageLoader.cjs +0 -61
  628. package/dist/components/PageLoader/PageLoader.cjs.map +0 -1
  629. package/dist/components/PageLoader/PageLoader.d.ts +0 -38
  630. package/dist/components/PageLoader/PageLoader.js +0 -61
  631. package/dist/components/PageLoader/PageLoader.js.map +0 -1
  632. package/dist/components/PageLoader/index.d.ts +0 -2
  633. package/dist/components/PageLoader.d.ts +0 -6
  634. package/dist/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
  635. package/dist/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
  636. package/dist/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
  637. package/dist/components/ScrollTopButton/ScrollTopButton.js +0 -79
  638. package/dist/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
  639. package/dist/components/ScrollTopButton/index.d.ts +0 -4
  640. package/dist/components/ScrollTopButton.d.ts +0 -6
  641. package/dist/components/Select/Select.definitions.d.ts +0 -17
  642. package/dist/components/Select/Select.types.d.ts +0 -1
  643. package/dist/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
  644. package/dist/formField.sx-CQ1mbk9M.cjs.map +0 -1
  645. package/dist/formField.sx-DfVbMe0V.js.map +0 -1
  646. package/dist/hooks/Wizard/Wizard.cjs +0 -7
  647. package/dist/hooks/Wizard/Wizard.cjs.map +0 -1
  648. package/dist/hooks/Wizard/Wizard.js +0 -7
  649. package/dist/hooks/Wizard/Wizard.js.map +0 -1
  650. package/dist/hooks/Wizard/index.d.ts +0 -3
  651. package/dist/hooks/Wizard/useWizard.d.ts +0 -9
  652. package/dist/hooks/Wizard.d.ts +0 -2
  653. package/dist/useWizard-CWdIxZzX.cjs +0 -94
  654. package/dist/useWizard-CWdIxZzX.cjs.map +0 -1
  655. package/dist/useWizard-CWq--C3o.js +0 -95
  656. package/dist/useWizard-CWq--C3o.js.map +0 -1
  657. /package/dist/{styles.css → index.css} +0 -0
@@ -0,0 +1,30 @@
1
+ import type { SxProps, Theme } from '@mui/material/styles';
2
+
3
+ import { buildFormFieldSx } from '../_shared/formField.sx';
4
+ import type { LabelPosition } from './Autocomplete';
5
+
6
+ /**
7
+ * Builder del sx del Autocomplete. Reutiliza `buildFormFieldSx` y añade
8
+ * los paddings propios del Autocomplete (chips + input interno).
9
+ */
10
+ export const buildAutocompleteSx = (
11
+ borderRadius: number | string,
12
+ labelPosition: LabelPosition,
13
+ ): SxProps<Theme> =>
14
+ buildFormFieldSx({
15
+ borderRadius,
16
+ labelPosition,
17
+ extraOutsideSx: {
18
+ // El input interno del Autocomplete.
19
+ '& .MuiAutocomplete-input': {
20
+ paddingTop: '4px',
21
+ paddingBottom: '4px',
22
+ },
23
+
24
+ // Contenedor del input (donde viven los chips en modo multiple).
25
+ '& .MuiAutocomplete-inputRoot': {
26
+ paddingTop: '4px',
27
+ paddingBottom: '4px',
28
+ },
29
+ },
30
+ });
@@ -0,0 +1,393 @@
1
+ import React, {
2
+ useMemo,
3
+ useRef,
4
+ useState,
5
+ type ReactNode,
6
+ type SyntheticEvent,
7
+ } from 'react';
8
+ import {
9
+ Autocomplete as MuiAutocomplete,
10
+ TextField,
11
+ type TextFieldProps,
12
+ } from '@mui/material';
13
+ import { useTheme, type SxProps, type Theme } from '@mui/material/styles';
14
+ import { Controller, type Control, type RegisterOptions } from 'react-hook-form';
15
+
16
+ import { buildAutocompleteSx } from './Autocomplete.sx';
17
+ import {
18
+ areResolvedValuesEqual,
19
+ isResolvedValueEmpty,
20
+ resolveMultipleValue,
21
+ resolveSingleValue,
22
+ } from './Autocomplete.helpers';
23
+ import { resolvePreset } from '../_shared/resolvePreset';
24
+ import { AutocompleteOption } from './_parts/AutocompleteOption';
25
+ import { AutocompleteChips } from './_parts/AutocompleteChips';
26
+ import { AutocompleteLoader } from './_parts/AutocompleteLoader';
27
+
28
+ // ── Tipos de dominio ─────────────────────────────────────────────────────
29
+ export interface SelectOption {
30
+ value: string | number;
31
+ label: string;
32
+ img?: string;
33
+ disabled?: boolean;
34
+ group?: string;
35
+ [key: string]: any; //campos extras que puede tener la opcion
36
+ }
37
+
38
+ export type LabelPosition = 'outside' | 'floating';
39
+ export type AutocompleteSize = 'small' | 'medium';
40
+
41
+ // ── Render slots ─────────────────────────────────────────────────────────
42
+ export type RenderOptionItem = (item: SelectOption) => ReactNode;
43
+ export type RenderChipLabel = (item: SelectOption) => ReactNode;
44
+
45
+ // ── Props base ───────────────────────────────────────────────────────────
46
+ export type BaseAutocompleteProps<
47
+ _TValue extends SelectOption['value'] = SelectOption['value'],
48
+ > = {
49
+ label?: string;
50
+ options: SelectOption[];
51
+ placeholder?: string;
52
+ multiple?: boolean;
53
+ disabled?: boolean;
54
+ readOnly?: boolean;
55
+ loading?: boolean;
56
+ error?: boolean;
57
+ helperText?: string;
58
+ maxChipsToShow?: number;
59
+ renderOptionItem?: RenderOptionItem;
60
+ renderChipLabel?: RenderChipLabel;
61
+ /** Border radius del input. Default: 10. */
62
+ borderRadius?: number | string;
63
+ /** "outside" (default) = label arriba del input; "floating" = comportamiento nativo MUI. */
64
+ labelPosition?: LabelPosition;
65
+ /** Tamaño del TextField. Default: 'small'. */
66
+ size?: AutocompleteSize;
67
+ /** Texto cuando no hay coincidencias. */
68
+ noOptionsText?: ReactNode;
69
+ /** Texto cuando está cargando. */
70
+ loadingText?: ReactNode;
71
+ sx?: SxProps<Theme>;
72
+ /**
73
+ * Nombre del preset de estilo registrado en `theme.styles.Autocomplete`.
74
+ * - `"default"` (o ausente) = estilo built-in del paquete.
75
+ * - Cualquier otro string = mergea el preset encima del estilo built-in.
76
+ */
77
+ preset?: string;
78
+ /** Props para el TextField subyacente. */
79
+ textFieldProps?: Partial<TextFieldProps>;
80
+
81
+ // ── Búsqueda asíncrona / remota ──────────────────────────────────────
82
+ /** Se dispara cada vez que el usuario escribe. Útil para llamadas a servicios
83
+ * (debounce recomendado en el consumer). */
84
+ onInputChange?: (
85
+ event: SyntheticEvent,
86
+ value: string,
87
+ reason: 'input' | 'reset' | 'clear' | 'blur' | 'selectOption' | 'removeOption',
88
+ ) => void;
89
+ /** Valor controlado del texto de búsqueda. */
90
+ inputValue?: string;
91
+ /** Filtro custom. Para búsqueda remota pasar `(x) => x` y confiar sólo en el servicio. */
92
+ filterOptions?: (options: SelectOption[], state: any) => SelectOption[];
93
+ /** Permite valores arbitrarios (no solo de la lista). */
94
+ freeSolo?: boolean;
95
+ open?: boolean;
96
+ onOpen?: (event: SyntheticEvent) => void;
97
+ onClose?: (event: SyntheticEvent, reason: string) => void;
98
+ };
99
+
100
+ // ── Variantes discriminadas (RHF vs controlado) ──────────────────────────
101
+ export interface ControlledAutocompleteProps<
102
+ TValue extends SelectOption['value'] = SelectOption['value'],
103
+ > extends BaseAutocompleteProps<TValue> {
104
+ value: TValue | TValue[] | null;
105
+ onChange: (val: TValue | TValue[] | null) => void;
106
+ name?: string;
107
+ control?: never;
108
+ validation?: never;
109
+ }
110
+
111
+ export interface RHFAutocompleteProps<
112
+ TValue extends SelectOption['value'] = SelectOption['value'],
113
+ > extends BaseAutocompleteProps<TValue> {
114
+ name: string;
115
+ // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en
116
+ // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).
117
+ // Cuando el componente o su uso involucra generics adicionales, TS se
118
+ // confunde narroweando el discriminated union y `Control<any>` no logra
119
+ // absorber `Control<MyForm>` en la comparación estructural profunda. El
120
+ // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos
121
+ // fuertes — solo degradamos la superficie del prop del componente.
122
+ control: any;
123
+ validation?: RegisterOptions;
124
+ /**
125
+ * Side-effect que corre después de que RHF actualiza el form state.
126
+ * Útil para cascadas entre campos. NO reemplaza al handler de RHF.
127
+ */
128
+ onValueChange?: (val: TValue | TValue[] | null) => void;
129
+ value?: never;
130
+ onChange?: never;
131
+ }
132
+
133
+ // ── API pública final ────────────────────────────────────────────────────
134
+ export type AutocompleteProps<
135
+ TValue extends SelectOption['value'] = SelectOption['value'],
136
+ > = ControlledAutocompleteProps<TValue> | RHFAutocompleteProps<TValue>;
137
+
138
+ export function Autocomplete<
139
+ TValue extends SelectOption['value'] = SelectOption['value'],
140
+ >(props: AutocompleteProps<TValue>) {
141
+ const {
142
+ label,
143
+ options,
144
+ placeholder,
145
+ multiple = false,
146
+ disabled = false,
147
+ readOnly = false,
148
+ loading = false,
149
+ error: errorProp = false,
150
+ helperText,
151
+ maxChipsToShow = 3,
152
+ renderOptionItem,
153
+ renderChipLabel,
154
+ borderRadius = 10,
155
+ labelPosition = 'outside',
156
+ size = 'small',
157
+ noOptionsText = 'No hay opciones',
158
+ loadingText,
159
+ sx,
160
+ preset,
161
+ textFieldProps,
162
+ onInputChange,
163
+ inputValue,
164
+ filterOptions,
165
+ freeSolo,
166
+ open,
167
+ onOpen,
168
+ onClose,
169
+ } = props as BaseAutocompleteProps<TValue>;
170
+
171
+ // Focus tracking para mostrar placeholder solo cuando el label sube.
172
+ const [isFocused, setIsFocused] = useState(false);
173
+
174
+ // Cache interno de opciones vistas (indexado por value). Crítico para async
175
+ // multiple: cuando `options` cambian por un nuevo search, los items ya
176
+ // seleccionados no desaparecen de los chips porque los recordamos acá.
177
+ const seenOptionsRef = useRef<Map<SelectOption['value'], SelectOption>>(
178
+ new Map(),
179
+ );
180
+ for (const opt of options) {
181
+ seenOptionsRef.current.set(opt.value, opt);
182
+ }
183
+
184
+ // Pool de opciones para resolver values (merge de options + vistas).
185
+ const resolvePool = useMemo<SelectOption[]>(() => {
186
+ const merged = new Map(seenOptionsRef.current);
187
+ for (const opt of options) merged.set(opt.value, opt);
188
+ return Array.from(merged.values());
189
+ }, [options]);
190
+
191
+ // Estabiliza la referencia del resolvedValue que pasamos a MUI Autocomplete.
192
+ // MUI compara value con `!==`: una referencia nueva con mismo contenido
193
+ // dispara resetInputValue() y borra el texto que el usuario está escribiendo.
194
+ const prevResolvedRef = useRef<SelectOption[] | SelectOption | null>(
195
+ multiple ? [] : null,
196
+ );
197
+
198
+ const stabilizeResolved = (
199
+ newVal: SelectOption[] | SelectOption | null,
200
+ ): SelectOption[] | SelectOption | null => {
201
+ if (areResolvedValuesEqual(prevResolvedRef.current, newVal, multiple)) {
202
+ return prevResolvedRef.current;
203
+ }
204
+ prevResolvedRef.current = newVal;
205
+ return newVal;
206
+ };
207
+
208
+ const theme = useTheme();
209
+ const presetSx = resolvePreset('Autocomplete', preset, theme);
210
+
211
+ const mergedSx = [
212
+ ...(presetSx ? [presetSx] : [buildAutocompleteSx(borderRadius, labelPosition)]),
213
+ ...(Array.isArray(sx) ? sx : sx ? [sx] : []),
214
+ ];
215
+
216
+ const renderAutocomplete = (
217
+ resolvedValue: any,
218
+ handleChange: (event: any, newValue: any) => void,
219
+ onBlur?: () => void,
220
+ inputRef?: React.Ref<any>,
221
+ rhfError?: boolean,
222
+ rhfHelperText?: string,
223
+ ) => {
224
+ const finalError = !!rhfError || !!errorProp;
225
+ const finalHelperText = rhfHelperText || helperText;
226
+
227
+ const isEmpty = isResolvedValueEmpty(resolvedValue, multiple);
228
+ const showPlaceholder = isEmpty && isFocused && !!placeholder;
229
+
230
+ return (
231
+ <MuiAutocomplete
232
+ multiple={multiple}
233
+ options={options}
234
+ value={resolvedValue}
235
+ disabled={disabled}
236
+ readOnly={readOnly}
237
+ loading={loading}
238
+ sx={mergedSx}
239
+ freeSolo={freeSolo as any}
240
+ open={open}
241
+ onOpen={onOpen}
242
+ onClose={onClose}
243
+ inputValue={inputValue}
244
+ onInputChange={onInputChange}
245
+ filterOptions={filterOptions as any}
246
+ getOptionLabel={(opt) =>
247
+ typeof opt === 'string' ? opt : (opt?.label ?? '')
248
+ }
249
+ isOptionEqualToValue={(a, b) => {
250
+ if (typeof a === 'string' || typeof b === 'string') return a === b;
251
+ return a?.value === b?.value;
252
+ }}
253
+ getOptionDisabled={(opt) =>
254
+ typeof opt === 'string' ? false : !!opt?.disabled
255
+ }
256
+ onChange={handleChange}
257
+ onFocus={() => setIsFocused(true)}
258
+ onBlur={() => {
259
+ setIsFocused(false);
260
+ onBlur?.();
261
+ }}
262
+ renderOption={(liProps, option) => {
263
+ // MUI inyecta la `key` dentro de `liProps`. React necesita la key
264
+ // en el elemento más externo que devuelve `renderOption` (acá el
265
+ // wrapper), no en el `<li>` interno. La extraemos acá y se la
266
+ // pasamos al wrapper; el resto de `liProps` viaja al `<li>`.
267
+ const { key, ...liRest } = liProps as React.HTMLAttributes<HTMLLIElement> & {
268
+ key?: React.Key;
269
+ };
270
+ return (
271
+ <AutocompleteOption
272
+ key={key}
273
+ liProps={liRest}
274
+ option={option}
275
+ customRender={renderOptionItem}
276
+ />
277
+ );
278
+ }}
279
+ renderValue={
280
+ multiple
281
+ ? (value, getItemProps) => (
282
+ <AutocompleteChips
283
+ value={value as SelectOption[]}
284
+ getTagProps={getItemProps}
285
+ size={size}
286
+ maxChipsToShow={maxChipsToShow}
287
+ renderChipLabel={renderChipLabel}
288
+ />
289
+ )
290
+ : undefined
291
+ }
292
+ noOptionsText={noOptionsText}
293
+ loadingText={loadingText ?? <AutocompleteLoader />}
294
+ renderInput={(params) => (
295
+ // @ts-ignore — Ref<any> type mismatch between @types/react versions in monorepo
296
+ <TextField
297
+ {...params}
298
+ label={label}
299
+ size={size}
300
+ variant="outlined"
301
+ placeholder={showPlaceholder ? placeholder : undefined}
302
+ error={finalError}
303
+ helperText={finalHelperText}
304
+ inputRef={inputRef}
305
+ {...textFieldProps}
306
+ InputLabelProps={{
307
+ ...(params.InputLabelProps as Record<string, any>),
308
+ ...(textFieldProps?.InputLabelProps as Record<string, any> | undefined),
309
+ shrink:
310
+ labelPosition === 'outside'
311
+ ? !isEmpty || isFocused
312
+ : (params.InputLabelProps as any)?.shrink,
313
+ }}
314
+ />
315
+ )}
316
+ />
317
+ );
318
+ };
319
+
320
+ //obtiene el primitivo primero
321
+ const extractValue = (opt: any) =>
322
+ typeof opt === 'string' ? opt : (opt?.value ?? null);
323
+
324
+ const handleControlledChange = (_event: any, newValue: any) => {
325
+ const onChange = (props as ControlledAutocompleteProps<TValue>).onChange;
326
+ if (multiple) {
327
+ const values = (newValue ?? []).map(
328
+ (opt: SelectOption | string) => extractValue(opt) as TValue,
329
+ );
330
+ onChange(values);
331
+ } else {
332
+ onChange(extractValue(newValue) as TValue | null);
333
+ }
334
+ };
335
+
336
+ // --- RHF mode ---
337
+ if ('control' in props && props.control) {
338
+ const { name, control, validation, onValueChange } =
339
+ props as RHFAutocompleteProps<TValue>;
340
+ return (
341
+ <Controller
342
+ name={name}
343
+ control={control}
344
+ rules={validation}
345
+ render={({ field, fieldState: { error: fieldError } }) => {
346
+ const resolvedValue = stabilizeResolved(
347
+ multiple
348
+ ? resolveMultipleValue(resolvePool, field.value)
349
+ : resolveSingleValue(resolvePool, field.value),
350
+ );
351
+
352
+ const handleChange = (_event: any, newValue: any) => {
353
+ if (multiple) {
354
+ const next = (newValue ?? []).map(
355
+ (opt: SelectOption | string) => extractValue(opt),
356
+ ) as TValue[];
357
+ field.onChange(next);
358
+ onValueChange?.(next);
359
+ } else {
360
+ const next = extractValue(newValue) as TValue | null;
361
+ field.onChange(next);
362
+ onValueChange?.(next);
363
+ }
364
+ };
365
+
366
+ return renderAutocomplete(
367
+ resolvedValue,
368
+ handleChange,
369
+ field.onBlur,
370
+ field.ref,
371
+ !!fieldError,
372
+ fieldError?.message,
373
+ );
374
+ }}
375
+ />
376
+ );
377
+ }
378
+
379
+ // --- Controlled mode ---
380
+ const controlledValue = (props as ControlledAutocompleteProps<TValue>).value;
381
+ const resolvedValue = stabilizeResolved(
382
+ multiple
383
+ ? resolveMultipleValue(resolvePool, controlledValue as SelectOption['value'][])
384
+ : resolveSingleValue(resolvePool, controlledValue as SelectOption['value']),
385
+ );
386
+
387
+ return renderAutocomplete(resolvedValue, handleControlledChange);
388
+ }
389
+
390
+ /** Alias de `Autocomplete`. Ambos nombres son equivalentes. */
391
+ export const AutocompleteSelect = Autocomplete;
392
+
393
+ export default Autocomplete;
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import { Avatar, Chip } from '@mui/material';
3
+ import ClearIcon from '@mui/icons-material/Clear';
4
+
5
+ import type {
6
+ SelectOption,
7
+ RenderChipLabel,
8
+ AutocompleteSize,
9
+ } from '../Autocomplete';
10
+
11
+ interface AutocompleteChipsProps {
12
+ value: SelectOption[];
13
+ getTagProps: (args: { index: number }) => Record<string, any>;
14
+ size: AutocompleteSize;
15
+ maxChipsToShow: number;
16
+ renderChipLabel?: RenderChipLabel;
17
+ }
18
+
19
+ /**
20
+ * Render de los chips del Autocomplete en modo multiple.
21
+ * Trunca después de `maxChipsToShow` con un chip "+N más".
22
+ * El `getTagProps({ index })` viene de MUI y contiene el handler de delete,
23
+ * la key, etc. — se spreadea tal cual al Chip.
24
+ */
25
+ export const AutocompleteChips: React.FC<AutocompleteChipsProps> = ({
26
+ value,
27
+ getTagProps,
28
+ size,
29
+ maxChipsToShow,
30
+ renderChipLabel,
31
+ }) => {
32
+ const displayed = value.slice(0, maxChipsToShow);
33
+ const hidden = value.length - maxChipsToShow;
34
+
35
+ return (
36
+ <>
37
+ {displayed.map((option, index) => {
38
+ const { key: _ignored, ...tagProps } = getTagProps({ index });
39
+ return (
40
+ <Chip
41
+ key={option.value}
42
+ {...tagProps}
43
+ size={size}
44
+ label={renderChipLabel ? renderChipLabel(option) : option.label}
45
+ avatar={option.img ? <Avatar src={option.img} /> : undefined}
46
+ deleteIcon={<ClearIcon />}
47
+ />
48
+ );
49
+ })}
50
+ {hidden > 0 && <Chip size={size} label={`+${hidden} más`} />}
51
+ </>
52
+ );
53
+ };
54
+
55
+ export default AutocompleteChips;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { Box, CircularProgress, Typography } from '@mui/material';
3
+
4
+ /**
5
+ * Loader por defecto para el `loadingText` del Autocomplete.
6
+ * El consumer puede sobrescribirlo pasando `loadingText` al componente padre.
7
+ */
8
+ export const AutocompleteLoader: React.FC<{ text?: string }> = ({
9
+ text = 'Cargando...',
10
+ }) => (
11
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
12
+ <CircularProgress size={16} />
13
+ <Typography variant="body2">{text}</Typography>
14
+ </Box>
15
+ );
16
+
17
+ export default AutocompleteLoader;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import type { SelectOption, RenderOptionItem } from '../Autocomplete';
3
+
4
+ interface AutocompleteOptionProps {
5
+ liProps: React.HTMLAttributes<HTMLLIElement>;
6
+ option: SelectOption;
7
+ customRender?: RenderOptionItem;
8
+ }
9
+
10
+ /**
11
+ * Render por defecto de un `<li>` del dropdown del Autocomplete.
12
+ * MUI lo invoca desde `renderOption={(props, option) => ...}` en el padre.
13
+ *
14
+ * La `key` la maneja el padre (`renderOption` en Autocomplete.tsx). Este
15
+ * componente solo recibe los props restantes del `<li>` para spread.
16
+ */
17
+ export const AutocompleteOption: React.FC<AutocompleteOptionProps> = ({
18
+ liProps,
19
+ option,
20
+ customRender,
21
+ }) => {
22
+ return (
23
+ <li {...liProps}>
24
+ {customRender ? customRender(option) : option.label}
25
+ </li>
26
+ );
27
+ };
28
+
29
+ export default AutocompleteOption;
@@ -0,0 +1,12 @@
1
+ export { Autocomplete, AutocompleteSelect, default } from './Autocomplete';
2
+ export type {
3
+ AutocompleteProps,
4
+ SelectOption,
5
+ BaseAutocompleteProps,
6
+ ControlledAutocompleteProps,
7
+ RHFAutocompleteProps,
8
+ RenderOptionItem,
9
+ RenderChipLabel,
10
+ LabelPosition,
11
+ AutocompleteSize,
12
+ } from './Autocomplete';
@@ -0,0 +1,162 @@
1
+ export const DefaultAvatarDefinition = `
2
+ import { Avatar } from './Avatar';
3
+
4
+ export const DefaultAvatarExample = () => (
5
+ <Avatar
6
+ items={[
7
+ { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=1' },
8
+ { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=2' },
9
+ ]}
10
+ />
11
+ );
12
+ `;
13
+
14
+ export const WithTypeAndTextDefinition = `
15
+ import { Avatar } from './Avatar';
16
+
17
+ export const WithTypeAndTextExample = () => (
18
+ <Avatar
19
+ type="Owner"
20
+ items={[{ text: 'Maria', imageUrl: 'https://i.pravatar.cc/150?img=5' }]}
21
+ showText
22
+ />
23
+ );
24
+ `;
25
+
26
+ export const WithBadgesAndTooltipDefinition = `
27
+ import { Avatar } from './Avatar';
28
+
29
+ export const WithBadgesAndTooltipExample = () => (
30
+ <Avatar
31
+ showTooltip
32
+ items={[
33
+ { text: 'John D.', badge: 'JD', backgroundColor: '#EF5350', color: '#fff' },
34
+ { text: 'Alice B.', badge: 'AB', backgroundColor: '#AB47BC', color: '#fff' },
35
+ ]}
36
+ />
37
+ );
38
+ `;
39
+
40
+ export const SizeSmallDefinition = `
41
+ import { Avatar } from './Avatar';
42
+
43
+ export const SizeSmallExample = () => (
44
+ <Avatar
45
+ size="sm"
46
+ items={[
47
+ { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=11' },
48
+ { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=12' },
49
+ { text: 'User Three', imageUrl: 'https://i.pravatar.cc/150?img=13' },
50
+ ]}
51
+ />
52
+ );
53
+ `;
54
+
55
+ export const SizeMediumDefinition = `
56
+ import { Avatar } from './Avatar';
57
+
58
+ export const SizeMediumExample = () => (
59
+ <Avatar
60
+ size="md"
61
+ items={[
62
+ { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=21' },
63
+ { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=22' },
64
+ { text: 'User Three', imageUrl: 'https://i.pravatar.cc/150?img=23' },
65
+ ]}
66
+ />
67
+ );
68
+ `;
69
+
70
+ export const SizeLargeDefinition = `
71
+ import { Avatar } from './Avatar';
72
+
73
+ export const SizeLargeExample = () => (
74
+ <Avatar
75
+ size="lg"
76
+ items={[
77
+ { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=31' },
78
+ { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=32' },
79
+ ]}
80
+ />
81
+ );
82
+ `;
83
+
84
+ export const SizeExtraLargeDefinition = `
85
+ import { Avatar } from './Avatar';
86
+
87
+ export const SizeExtraLargeExample = () => (
88
+ <Avatar
89
+ size="xl"
90
+ items={[{ text: 'Maria', imageUrl: 'https://i.pravatar.cc/150?img=5' }]}
91
+ showText={false}
92
+ />
93
+ );
94
+ `;
95
+
96
+ export const NumericSizeDefinition = `
97
+ import { Avatar } from './Avatar';
98
+
99
+ export const NumericSizeExample = () => (
100
+ <Avatar
101
+ size={72}
102
+ items={[
103
+ { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=41' },
104
+ { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=42' },
105
+ ]}
106
+ showText={false}
107
+ />
108
+ );
109
+ `;
110
+
111
+ export const FallbackIconDefinition = `
112
+ import { Avatar } from './Avatar';
113
+
114
+ export const FallbackIconExample = () => (
115
+ <Avatar
116
+ items={[
117
+ { text: 'Without image' },
118
+ { text: 'Broken image', imageUrl: 'https://example.invalid/broken.png' },
119
+ ]}
120
+ showTooltip
121
+ />
122
+ );
123
+ `;
124
+
125
+ export const DisplayedAvatarsLimitDefinition = `
126
+ import { Avatar } from './Avatar';
127
+
128
+ export const DisplayedAvatarsLimitExample = () => (
129
+ <Avatar
130
+ displayedAvatars={3}
131
+ items={[
132
+ { text: 'User 1', imageUrl: 'https://i.pravatar.cc/150?img=51' },
133
+ { text: 'User 2', imageUrl: 'https://i.pravatar.cc/150?img=52' },
134
+ { text: 'User 3', imageUrl: 'https://i.pravatar.cc/150?img=53' },
135
+ { text: 'User 4', imageUrl: 'https://i.pravatar.cc/150?img=54' },
136
+ { text: 'User 5', imageUrl: 'https://i.pravatar.cc/150?img=55' },
137
+ ]}
138
+ />
139
+ );
140
+ `;
141
+
142
+ export const CustomStylingDefinition = `
143
+ import { Avatar } from './Avatar';
144
+
145
+ export const CustomStylingExample = () => (
146
+ <Avatar
147
+ size="md"
148
+ items={[
149
+ { text: 'User One', imageUrl: 'https://i.pravatar.cc/150?img=61' },
150
+ { text: 'User Two', imageUrl: 'https://i.pravatar.cc/150?img=62' },
151
+ ]}
152
+ sx={{
153
+ p: 1,
154
+ borderRadius: 2,
155
+ bgcolor: 'action.hover',
156
+ }}
157
+ avatarSx={{
158
+ border: (theme) => '3px solid ' + theme.palette.primary.main,
159
+ }}
160
+ />
161
+ );
162
+ `;