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

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-Dycmh9vt.js +256 -0
  55. package/dist/Select-Dycmh9vt.js.map +1 -0
  56. package/dist/Select-kqR48jZU.cjs +255 -0
  57. package/dist/Select-kqR48jZU.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 +15 -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 +332 -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,224 @@
1
+ import { useMemo, type ReactNode } from 'react';
2
+ import {
3
+ Drawer as MuiDrawer,
4
+ IconButton,
5
+ Box,
6
+ type DrawerProps as MuiDrawerProps,
7
+ } from '@mui/material';
8
+ import {
9
+ useTheme,
10
+ type SxProps,
11
+ type Theme,
12
+ } from '@mui/material/styles';
13
+ import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
14
+ import ChevronRightIcon from '@mui/icons-material/ChevronRight';
15
+
16
+ import { DrawerContext } from './DrawerContext';
17
+ import { buildDrawerSx } from './Drawer.sx';
18
+ import { resolvePreset } from '../_shared/resolvePreset';
19
+
20
+ // ── Tipos públicos ──────────────────────────────────────────────────────
21
+ export type DrawerVariant = 'permanent' | 'persistent' | 'temporary';
22
+ export type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom';
23
+
24
+ export interface DrawerProps {
25
+ /** Contenido del drawer (típicamente `<DrawerItem>`s). */
26
+ children?: ReactNode;
27
+ /**
28
+ * Variante del drawer:
29
+ * - `permanent` (default): siempre visible en desktop, soporta collapsed (mini).
30
+ * - `persistent`: se oculta/muestra, empuja el contenido principal.
31
+ * - `temporary`: flotante con backdrop (típico móvil).
32
+ */
33
+ variant?: DrawerVariant;
34
+ /** Lado del viewport. Default: `'left'`. */
35
+ anchor?: DrawerAnchor;
36
+ /**
37
+ * Estado mini (solo iconos). Solo se aplica con `variant="permanent"` o
38
+ * `"persistent"`. Si no se provee, el drawer está siempre expandido.
39
+ */
40
+ collapsed?: boolean;
41
+ /** Callback del botón de toggle (chevron). */
42
+ onToggleCollapse?: () => void;
43
+ /** Estado abierto/cerrado (aplica a `temporary` y `persistent`). */
44
+ open?: boolean;
45
+ /** Callback de cierre (backdrop o ESC en temporary). */
46
+ onClose?: MuiDrawerProps['onClose'];
47
+ /** Ancho en estado expandido. Default: 260. */
48
+ expandedWidth?: number;
49
+ /** Ancho en estado colapsado (solo iconos). Default: 72. */
50
+ collapsedWidth?: number;
51
+ /** Muestra el botón chevron para toggle collapsed. Default: true si `onToggleCollapse` está definido. */
52
+ showCollapseButton?: boolean;
53
+ /** Contenido del header (por encima de los items). Típicamente logo/brand. */
54
+ header?: ReactNode;
55
+ /**
56
+ * Logo/brand que se muestra junto al botón de toggle.
57
+ * - Expandido: logo a la izquierda, toggle a la derecha en la misma fila.
58
+ * - Colapsado: logo arriba centrado, toggle debajo centrado (stack vertical).
59
+ * Siempre visible (a diferencia de `header`, que se oculta al colapsar).
60
+ */
61
+ logo?: ReactNode;
62
+ /** Contenido del footer (por debajo de los items). Típicamente user profile. */
63
+ footer?: ReactNode;
64
+ /**
65
+ * Nombre del preset de estilo registrado en `theme.styles.Drawer`.
66
+ * - `"default"` (o ausente) = estilo built-in del paquete.
67
+ */
68
+ preset?: string;
69
+ /** sx aplicado al Drawer (root). Se mergea después del preset. */
70
+ sx?: SxProps<Theme>;
71
+ /** sx aplicado al Paper interno. */
72
+ paperSx?: SxProps<Theme>;
73
+ className?: string;
74
+ }
75
+
76
+ export function Drawer({
77
+ children,
78
+ variant = 'permanent',
79
+ anchor = 'left',
80
+ collapsed = false,
81
+ onToggleCollapse,
82
+ open,
83
+ onClose,
84
+ expandedWidth = 260,
85
+ collapsedWidth = 72,
86
+ showCollapseButton,
87
+ header,
88
+ logo,
89
+ footer,
90
+ preset,
91
+ sx,
92
+ paperSx,
93
+ className,
94
+ }: DrawerProps) {
95
+ const theme = useTheme();
96
+ const presetSx = resolvePreset('Drawer', preset, theme);
97
+
98
+ // El mini-variant solo tiene sentido en permanent / persistent.
99
+ const supportsCollapsed = variant !== 'temporary';
100
+ const effectiveWidth =
101
+ supportsCollapsed && collapsed ? collapsedWidth : expandedWidth;
102
+
103
+ const contextValue = useMemo(
104
+ () => ({
105
+ collapsed: supportsCollapsed && collapsed,
106
+ width: effectiveWidth,
107
+ }),
108
+ [supportsCollapsed, collapsed, effectiveWidth],
109
+ );
110
+
111
+ const rootSx: SxProps<Theme> = [
112
+ buildDrawerSx({ width: effectiveWidth }),
113
+ ...(presetSx ? [presetSx] : []),
114
+ ...(Array.isArray(sx) ? sx : sx ? [sx] : []),
115
+ ];
116
+
117
+ const shouldShowToggle =
118
+ showCollapseButton ?? (supportsCollapsed && !!onToggleCollapse);
119
+
120
+ const openProp =
121
+ variant === 'permanent'
122
+ ? true
123
+ : open !== undefined
124
+ ? open
125
+ : false;
126
+
127
+ return (
128
+ <DrawerContext.Provider value={contextValue}>
129
+ <MuiDrawer
130
+ variant={variant}
131
+ anchor={anchor}
132
+ open={openProp}
133
+ onClose={onClose}
134
+ className={className}
135
+ sx={rootSx}
136
+ slotProps={{
137
+ paper: {
138
+ sx: paperSx,
139
+ },
140
+ }}
141
+ >
142
+ {(logo || shouldShowToggle) && (
143
+ <Box
144
+ sx={{
145
+ display: 'flex',
146
+ flexDirection: contextValue.collapsed ? 'column' : 'row',
147
+ alignItems: 'center',
148
+ justifyContent: contextValue.collapsed
149
+ ? 'center'
150
+ : logo
151
+ ? 'space-between'
152
+ : 'flex-end',
153
+ gap: contextValue.collapsed ? 0.5 : 0,
154
+ px: contextValue.collapsed ? 1 : 2,
155
+ py: 1,
156
+ minHeight: 64,
157
+ flexShrink: 0,
158
+ }}
159
+ >
160
+ {logo && (
161
+ <Box sx={{ display: 'flex', alignItems: 'center', minWidth: 0 }}>
162
+ {logo}
163
+ </Box>
164
+ )}
165
+ {shouldShowToggle && (
166
+ <IconButton
167
+ size="small"
168
+ onClick={onToggleCollapse}
169
+ aria-label={collapsed ? 'Expandir menú' : 'Colapsar menú'}
170
+ >
171
+ {collapsed ? <ChevronRightIcon /> : <ChevronLeftIcon />}
172
+ </IconButton>
173
+ )}
174
+ </Box>
175
+ )}
176
+
177
+ {header && !contextValue.collapsed && (
178
+ <Box
179
+ sx={{
180
+ display: 'flex',
181
+ alignItems: 'center',
182
+ px: 2,
183
+ py: 1.5,
184
+ minHeight: 56,
185
+ flexShrink: 0,
186
+ }}
187
+ >
188
+ <Box sx={{ flex: 1, minWidth: 0 }}>{header}</Box>
189
+ </Box>
190
+ )}
191
+
192
+ <Box
193
+ component="nav"
194
+ sx={{
195
+ flex: 1,
196
+ overflowY: 'auto',
197
+ overflowX: 'hidden',
198
+ py: 1,
199
+ }}
200
+ >
201
+ {children}
202
+ </Box>
203
+
204
+ {footer && (
205
+ <Box
206
+ sx={{
207
+ flexShrink: 0,
208
+ borderTop: (t) => `1px solid ${t.palette.divider}`,
209
+ p: contextValue.collapsed ? 1 : 1.5,
210
+ display: 'flex',
211
+ justifyContent: contextValue.collapsed
212
+ ? 'center'
213
+ : 'flex-start',
214
+ }}
215
+ >
216
+ {footer}
217
+ </Box>
218
+ )}
219
+ </MuiDrawer>
220
+ </DrawerContext.Provider>
221
+ );
222
+ }
223
+
224
+ export default Drawer;
@@ -0,0 +1,26 @@
1
+ import { createContext, useContext } from 'react';
2
+
3
+ /**
4
+ * Context interno del Drawer. Permite que los sub-componentes (DrawerItem,
5
+ * DrawerSection, etc.) reaccionen al estado `collapsed` sin necesidad de
6
+ * recibirlo por props explícitas.
7
+ */
8
+ export interface DrawerContextValue {
9
+ /** Si el drawer está en modo mini (solo iconos). */
10
+ collapsed: boolean;
11
+ /** Ancho actual del drawer (útil para sub-componentes que necesiten layout). */
12
+ width: number;
13
+ }
14
+
15
+ export const DrawerContext = createContext<DrawerContextValue | null>(null);
16
+
17
+ /**
18
+ * Hook para leer el estado del drawer desde cualquier sub-componente. Si se
19
+ * llama fuera de un `<Drawer>`, devuelve valores por defecto (collapsed=false)
20
+ * para que los items renderizados sueltos no exploten.
21
+ */
22
+ export function useDrawerContext(): DrawerContextValue {
23
+ const ctx = useContext(DrawerContext);
24
+ if (ctx) return ctx;
25
+ return { collapsed: false, width: 260 };
26
+ }
@@ -0,0 +1,120 @@
1
+ import React, { type ReactNode, type MouseEvent } from 'react';
2
+ import { Box, Tooltip, Typography } from '@mui/material';
3
+ import type { SxProps, Theme } from '@mui/material/styles';
4
+
5
+ import { useDrawerContext } from './DrawerContext';
6
+ import { buildDrawerItemSx } from './Drawer.sx';
7
+
8
+ export interface DrawerItemProps {
9
+ /** Icono del item. Se muestra siempre (expanded y collapsed). */
10
+ icon?: ReactNode;
11
+ /** Texto del item. Se oculta cuando el drawer está colapsado (muestra tooltip). */
12
+ label: ReactNode;
13
+ /**
14
+ * Texto del tooltip en modo collapsed. Si no se provee y `label` es string,
15
+ * se usa `label`. Necesario cuando `label` es un ReactNode complejo.
16
+ */
17
+ tooltipText?: string;
18
+ /** Handler de click. */
19
+ onClick?: (event: MouseEvent<HTMLDivElement>) => void;
20
+ /** Marca el item como activo (destaca color y fondo). */
21
+ active?: boolean;
22
+ /** Marca el item como "destructivo" (p.ej. cerrar sesión): color error. */
23
+ danger?: boolean;
24
+ /** Deshabilita click + bajo opacidad. */
25
+ disabled?: boolean;
26
+ /** Contenido adicional a la derecha del label (badge, count, chevron). */
27
+ endAdornment?: ReactNode;
28
+ /** sx override del consumer, se mergea al final. */
29
+ sx?: SxProps<Theme>;
30
+ className?: string;
31
+ }
32
+
33
+ /**
34
+ * Item de un Drawer de shared-library. Lee el estado `collapsed` del
35
+ * DrawerContext para adaptar layout y mostrar tooltip en modo mini.
36
+ *
37
+ * Uso típico:
38
+ * ```tsx
39
+ * <Drawer collapsed={collapsed} onToggleCollapse={toggle}>
40
+ * <DrawerItem icon={<HomeIcon />} label="Inicio" active />
41
+ * <DrawerItem icon={<UserIcon />} label="Perfil" />
42
+ * </Drawer>
43
+ * ```
44
+ */
45
+ export function DrawerItem({
46
+ icon,
47
+ label,
48
+ tooltipText,
49
+ onClick,
50
+ active = false,
51
+ danger = false,
52
+ disabled = false,
53
+ endAdornment,
54
+ sx,
55
+ className,
56
+ }: DrawerItemProps) {
57
+ const { collapsed } = useDrawerContext();
58
+
59
+ const baseSx = buildDrawerItemSx({ collapsed, active, danger });
60
+
61
+ const mergedSx: SxProps<Theme> = [
62
+ baseSx,
63
+ disabled && { pointerEvents: 'none', opacity: 0.5 },
64
+ ...(Array.isArray(sx) ? sx : sx ? [sx] : []),
65
+ ].filter(Boolean) as SxProps<Theme>;
66
+
67
+ const content = (
68
+ <Box
69
+ role="button"
70
+ tabIndex={disabled ? -1 : 0}
71
+ aria-disabled={disabled}
72
+ onClick={disabled ? undefined : onClick}
73
+ onKeyDown={(event) => {
74
+ if (disabled) return;
75
+ if (event.key === 'Enter' || event.key === ' ') {
76
+ event.preventDefault();
77
+ onClick?.(event as unknown as MouseEvent<HTMLDivElement>);
78
+ }
79
+ }}
80
+ className={className}
81
+ sx={mergedSx}
82
+ >
83
+ {icon && (
84
+ <Box className="drawer-item__icon" component="span">
85
+ {icon}
86
+ </Box>
87
+ )}
88
+ <Typography
89
+ component="span"
90
+ variant="body2"
91
+ className="drawer-item__label"
92
+ sx={{ fontWeight: active ? 600 : 400 }}
93
+ >
94
+ {label}
95
+ </Typography>
96
+ {!collapsed && endAdornment && (
97
+ <Box component="span" sx={{ flexShrink: 0, ml: 'auto' }}>
98
+ {endAdornment}
99
+ </Box>
100
+ )}
101
+ </Box>
102
+ );
103
+
104
+ // Cuando está colapsado, envolvemos en tooltip para revelar el label al hover.
105
+ // Prioriza `tooltipText` explícito; si no, cae al `label` si es string.
106
+ const resolvedTooltip =
107
+ tooltipText ?? (typeof label === 'string' ? label : undefined);
108
+
109
+ if (collapsed && resolvedTooltip) {
110
+ return (
111
+ <Tooltip title={resolvedTooltip} placement="right" arrow>
112
+ {content}
113
+ </Tooltip>
114
+ );
115
+ }
116
+
117
+ return content;
118
+ }
119
+
120
+ export default DrawerItem;
@@ -0,0 +1,10 @@
1
+ export { Drawer, default } from './Drawer';
2
+ export { DrawerItem } from './DrawerItem';
3
+ export { useDrawerContext } from './DrawerContext';
4
+ export type {
5
+ DrawerProps,
6
+ DrawerVariant,
7
+ DrawerAnchor,
8
+ } from './Drawer';
9
+ export type { DrawerItemProps } from './DrawerItem';
10
+ export type { DrawerContextValue } from './DrawerContext';
@@ -0,0 +1,282 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import React, { useState } from 'react';
3
+ import { Box, Button, List, ListItem, ListItemText, Typography } from '@mui/material';
4
+ import Flyout from './Flyout'; // Adjust the import path if your Flyout.tsx is in a different directory
5
+ import { Input } from '../Input/Input';
6
+
7
+ // Define the Meta for the Flyout component
8
+ const meta: Meta<typeof Flyout> = {
9
+ title: 'Components/Flyout', // Category in Storybook
10
+ component: Flyout,
11
+ tags: ['autodocs'], // Automatically generate documentation
12
+ argTypes: {
13
+ open: {
14
+ control: 'boolean',
15
+ description: 'Controls the visibility of the flyout.',
16
+ },
17
+ onClose: {
18
+ action: 'closed', // Log the onClose event in Storybook actions panel
19
+ description: 'Callback function when the flyout is requested to close.',
20
+ },
21
+ title: {
22
+ control: 'text',
23
+ description: 'Title displayed at the top of the flyout.',
24
+ },
25
+ anchor: {
26
+ control: 'select',
27
+ options: ['left', 'top', 'right', 'bottom'],
28
+ description: 'Side from which the flyout will appear.',
29
+ },
30
+ size: {
31
+ control: 'select',
32
+ options: ['small', 'medium', 'large'],
33
+ description: 'Predefined size of the flyout (width for left/right, height for top/bottom).',
34
+ },
35
+ height: {
36
+ control: 'text',
37
+ description: 'Custom height for top/bottom anchored flyouts (e.g., "50vh", "300px").',
38
+ if: { arg: 'anchor', eq: ['top', 'bottom'] }, // Only show if anchor is top or bottom
39
+ },
40
+ children: {
41
+ control: 'text', // Can be set to 'text' for simple string content, or 'disable'
42
+ description: 'Content to be rendered inside the flyout.',
43
+ },
44
+ },
45
+ parameters: {
46
+ docs: {
47
+ description: {
48
+ component: 'A customizable Drawer component that slides in from a specified anchor point, ideal for displaying supplementary content or forms without navigating away from the main page.',
49
+ },
50
+ },
51
+ },
52
+ };
53
+
54
+ export default meta;
55
+
56
+ type Story = StoryObj<typeof Flyout>;
57
+
58
+ // --- Helper component for demonstration content ---
59
+ const DefaultValueInput: React.FC = () => {
60
+ const [value, setValue] = useState<string | number>('Some text');
61
+ return (
62
+ <Box sx={{ my: 2 }}>
63
+ <Input
64
+ label="Input Field"
65
+ value={value}
66
+ onChange={(next) => setValue(next)}
67
+ />
68
+ </Box>
69
+ );
70
+ };
71
+
72
+ const DemoContent: React.FC = () => (
73
+ <Box>
74
+ <Typography variant="body1" paragraph>
75
+ This is some example content inside the flyout. It can contain any React elements.
76
+ </Typography>
77
+ <List dense>
78
+ <ListItem disablePadding>
79
+ <ListItemText primary="Item 1:" secondary="Detail A" />
80
+ </ListItem>
81
+ <ListItem disablePadding>
82
+ <ListItemText primary="Item 2:" secondary="Detail B" />
83
+ </ListItem>
84
+ <ListItem disablePadding>
85
+ <ListItemText primary="Item 3:" secondary="Detail C" />
86
+ </ListItem>
87
+ {[...Array(15)].map((_, i) => ( // Add more items to demonstrate scrolling
88
+ <ListItem key={i + 4} disablePadding>
89
+ <ListItemText primary={`More Item ${i + 4}:`} secondary={`More Detail ${i + 4}`} />
90
+ </ListItem>
91
+ ))}
92
+ </List>
93
+ <DefaultValueInput />
94
+ <Button variant="contained" color="primary" sx={{ mt: 2 }}>
95
+ Action Button
96
+ </Button>
97
+ </Box>
98
+ );
99
+
100
+
101
+ // --- Stories ---
102
+
103
+ // Default story for a basic right-anchored flyout
104
+ export const Default: Story = {
105
+ render: (args) => {
106
+ const [isOpen, setIsOpen] = useState(false);
107
+ return (
108
+ <Box sx={{ height: '200vh', p: 2, backgroundColor: '#f0f0f0' }}> {/* Added height to simulate scrollable page */}
109
+ <Typography variant="h5" mb={2}>Default Flyout Example</Typography>
110
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
111
+ Open Flyout (Right)
112
+ </Button>
113
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
114
+ <DemoContent />
115
+ </Flyout>
116
+ </Box>
117
+ );
118
+ },
119
+ args: {
120
+ title: 'Flyout Title',
121
+ anchor: 'right',
122
+ size: 'medium',
123
+ // children is handled by the render function with DemoContent
124
+ },
125
+ };
126
+
127
+ // Story for a small flyout from the left
128
+ export const SmallLeft: Story = {
129
+ render: (args) => {
130
+ const [isOpen, setIsOpen] = useState(false);
131
+ return (
132
+ <Box sx={{ p: 2 }}>
133
+ <Typography variant="h5" mb={2}>Small Flyout from Left</Typography>
134
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
135
+ Open Small Flyout (Left)
136
+ </Button>
137
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
138
+ <DemoContent />
139
+ </Flyout>
140
+ </Box>
141
+ );
142
+ },
143
+ args: {
144
+ title: 'Small Flyout',
145
+ anchor: 'left',
146
+ size: 'small',
147
+ },
148
+ };
149
+
150
+ // Story for a large flyout from the right
151
+ export const LargeRight: Story = {
152
+ render: (args) => {
153
+ const [isOpen, setIsOpen] = useState(false);
154
+ return (
155
+ <Box sx={{ p: 2 }}>
156
+ <Typography variant="h5" mb={2}>Large Flyout from Right</Typography>
157
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
158
+ Open Large Flyout (Right)
159
+ </Button>
160
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
161
+ <DemoContent />
162
+ </Flyout>
163
+ </Box>
164
+ );
165
+ },
166
+ args: {
167
+ title: 'Large Flyout',
168
+ anchor: 'right',
169
+ size: 'large',
170
+ },
171
+ };
172
+
173
+ // Story for a top-anchored flyout with custom height
174
+ export const TopAnchor: Story = {
175
+ render: (args) => {
176
+ const [isOpen, setIsOpen] = useState(false);
177
+ return (
178
+ <Box sx={{ p: 2 }}>
179
+ <Typography variant="h5" mb={2}>Top Anchored Flyout</Typography>
180
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
181
+ Open Top Flyout
182
+ </Button>
183
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
184
+ <DemoContent />
185
+ </Flyout>
186
+ </Box>
187
+ );
188
+ },
189
+ args: {
190
+ title: 'Top Flyout',
191
+ anchor: 'top',
192
+ height: '300px', // Custom height for top/bottom anchor
193
+ size: 'medium', // Size prop still applies but width is 100% for top/bottom
194
+ },
195
+ };
196
+
197
+ // Story for a bottom-anchored flyout with custom height
198
+ export const BottomAnchor: Story = {
199
+ render: (args) => {
200
+ const [isOpen, setIsOpen] = useState(false);
201
+ return (
202
+ <Box sx={{ p: 2 }}>
203
+ <Typography variant="h5" mb={2}>Bottom Anchored Flyout</Typography>
204
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
205
+ Open Bottom Flyout
206
+ </Button>
207
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
208
+ <DemoContent />
209
+ </Flyout>
210
+ </Box>
211
+ );
212
+ },
213
+ args: {
214
+ title: 'Bottom Flyout',
215
+ anchor: 'bottom',
216
+ height: '40vh', // Custom height using viewport units
217
+ size: 'medium',
218
+ },
219
+ };
220
+
221
+ // Story with no title
222
+ export const NoTitle: Story = {
223
+ render: (args) => {
224
+ const [isOpen, setIsOpen] = useState(false);
225
+ return (
226
+ <Box sx={{ p: 2 }}>
227
+ <Typography variant="h5" mb={2}>Flyout with No Title</Typography>
228
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
229
+ Open Flyout (No Title)
230
+ </Button>
231
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
232
+ <DemoContent />
233
+ </Flyout>
234
+ </Box>
235
+ );
236
+ },
237
+ args: {
238
+ title: undefined, // Explicitly no title
239
+ anchor: 'right',
240
+ size: 'medium',
241
+ },
242
+ };
243
+
244
+ // Story with custom content
245
+ export const CustomContent: Story = {
246
+ render: (args) => {
247
+ const [isOpen, setIsOpen] = useState(false);
248
+ const [customText, setCustomText] = useState('This is some custom text that can be edited.');
249
+ return (
250
+ <Box sx={{ p: 2 }}>
251
+ <Typography variant="h5" mb={2}>Flyout with Custom Content</Typography>
252
+ <Button variant="contained" onClick={() => setIsOpen(true)}>
253
+ Open Custom Content Flyout
254
+ </Button>
255
+ <Flyout {...args} open={isOpen} onClose={() => setIsOpen(false)}>
256
+ <Box sx={{ p: 2 }}>
257
+ <Typography variant="h6" gutterBottom>Custom Form</Typography>
258
+ <Box sx={{ mb: 2 }}>
259
+ <Input
260
+ label="Your Message"
261
+ multiline
262
+ rows={4}
263
+ fullWidth
264
+ value={customText}
265
+ onChange={(next) => setCustomText(String(next))}
266
+ />
267
+ </Box>
268
+ <Button variant="contained" color="secondary">
269
+ Submit Custom Content
270
+ </Button>
271
+ </Box>
272
+ </Flyout>
273
+ </Box>
274
+ );
275
+ },
276
+ args: {
277
+ title: 'Custom Content Flyout',
278
+ anchor: 'right',
279
+ size: 'medium',
280
+ // children is handled by the render function
281
+ },
282
+ };