@soyfri/shared-library 2.0.0-beta.17 → 2.0.0-beta.18

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 (718) 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/{Autocomplete-4i0dNDKr.cjs → dist/Autocomplete-DBWWcKQO.cjs} +5 -4
  12. package/dist/Autocomplete-DBWWcKQO.cjs.map +1 -0
  13. package/{Autocomplete-i3-V38n1.js → dist/Autocomplete-QTPCObBL.js} +5 -4
  14. package/dist/Autocomplete-QTPCObBL.js.map +1 -0
  15. package/{DatePicker-CtCFqXDw.cjs → dist/DatePicker-CUHUAzW4.cjs} +5 -4
  16. package/dist/DatePicker-CUHUAzW4.cjs.map +1 -0
  17. package/{DatePicker-D0Bz9Ryg.js → dist/DatePicker-kWjQEXIQ.js} +5 -4
  18. package/dist/DatePicker-kWjQEXIQ.js.map +1 -0
  19. package/{DateTimePicker-CTnRQCZo.cjs → dist/DateTimePicker-AVmtL4vS.cjs} +5 -4
  20. package/dist/DateTimePicker-AVmtL4vS.cjs.map +1 -0
  21. package/{DateTimePicker-77w-9TP5.js → dist/DateTimePicker-BO76eZ0P.js} +5 -4
  22. package/dist/DateTimePicker-BO76eZ0P.js.map +1 -0
  23. package/{Input-jYapjJYM.cjs → dist/Input-5VGBxiO2.cjs} +5 -4
  24. package/dist/Input-5VGBxiO2.cjs.map +1 -0
  25. package/{Input-rVVhI_wk.js → dist/Input-BVaetLBc.js} +5 -4
  26. package/dist/Input-BVaetLBc.js.map +1 -0
  27. package/dist/README.md +243 -0
  28. package/{Select-bSVQokFX.js → dist/Select-8fFMOx-I.js} +4 -4
  29. package/dist/Select-8fFMOx-I.js.map +1 -0
  30. package/{Select-B6jE3WH_.cjs → dist/Select-DyWV0aL9.cjs} +4 -4
  31. package/dist/Select-DyWV0aL9.cjs.map +1 -0
  32. package/{components → dist/components}/Autocomplete/Autocomplete.cjs +1 -1
  33. package/{components → dist/components}/Autocomplete/Autocomplete.js +1 -1
  34. package/{components → dist/components}/Autocomplete/Autocomplete.sx.d.ts +1 -1
  35. package/{components → dist/components}/DatePicker/DatePicker.cjs +1 -1
  36. package/{components → dist/components}/DatePicker/DatePicker.js +1 -1
  37. package/{components → dist/components}/DatePicker/DatePicker.sx.d.ts +1 -1
  38. package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs +1 -1
  39. package/{components → dist/components}/DateTimePicker/DateTimePicker.js +1 -1
  40. package/{components → dist/components}/DateTimePicker/DateTimePicker.sx.d.ts +1 -1
  41. package/{components → dist/components}/Input/Input.cjs +1 -1
  42. package/{components → dist/components}/Input/Input.js +1 -1
  43. package/{components → dist/components}/Input/Input.sx.d.ts +1 -1
  44. package/{components → dist/components}/Select/Select.cjs +1 -1
  45. package/{components → dist/components}/Select/Select.js +1 -1
  46. package/{components → dist/components}/Select/Select.sx.d.ts +1 -1
  47. package/{components → dist/components}/_shared/formField.sx.d.ts +11 -1
  48. package/{formField.sx-8_QRnKxv.js → dist/formField.sx-Cmhj9iGb.js} +15 -15
  49. package/dist/formField.sx-Cmhj9iGb.js.map +1 -0
  50. package/{formField.sx-BAX7KwMR.cjs → dist/formField.sx-V9PLO0wv.cjs} +15 -15
  51. package/dist/formField.sx-V9PLO0wv.cjs.map +1 -0
  52. package/{index.cjs → dist/index.cjs} +5 -5
  53. package/{index.js → dist/index.js} +5 -5
  54. package/dist/package.json +190 -0
  55. package/package.json +57 -166
  56. package/rollup.config.cjs +87 -0
  57. package/scripts/gen-dist-pkg.mjs +15 -0
  58. package/shared-library-comercios-MUI.code-workspace +10 -0
  59. package/src/components/ActionMenu/ActionMenu.stories.tsx +427 -0
  60. package/src/components/ActionMenu/ActionMenu.tsx +153 -0
  61. package/src/components/ActionMenu/index.ts +2 -0
  62. package/src/components/AppBar/AppBar.stories.tsx +316 -0
  63. package/src/components/AppBar/AppBar.sx.ts +32 -0
  64. package/src/components/AppBar/AppBar.tsx +119 -0
  65. package/src/components/AppBar/AppBarContext.ts +25 -0
  66. package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
  67. package/src/components/AppBar/index.ts +12 -0
  68. package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
  69. package/src/components/Autocomplete/Autocomplete.helpers.ts +80 -0
  70. package/src/components/Autocomplete/Autocomplete.stories.tsx +784 -0
  71. package/src/components/Autocomplete/Autocomplete.sx.ts +32 -0
  72. package/src/components/Autocomplete/Autocomplete.tsx +394 -0
  73. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
  74. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
  75. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +29 -0
  76. package/src/components/Autocomplete/index.ts +12 -0
  77. package/src/components/Avatar/Avatar.definitions.ts +162 -0
  78. package/src/components/Avatar/Avatar.stories.tsx +258 -0
  79. package/src/components/Avatar/Avatar.tsx +206 -0
  80. package/src/components/Avatar/index.ts +2 -0
  81. package/src/components/Button/Button.definition.ts +97 -0
  82. package/src/components/Button/Button.stories.tsx +285 -0
  83. package/src/components/Button/Button.tsx +66 -0
  84. package/src/components/Button/index.ts +2 -0
  85. package/src/components/Card/Card.definition.ts +5 -0
  86. package/src/components/Card/Card.stories.tsx +102 -0
  87. package/src/components/Card/Card.sx.ts +58 -0
  88. package/src/components/Card/Card.tsx +85 -0
  89. package/src/components/Card/index.ts +4 -0
  90. package/src/components/Checkbox/Checkbox.stories.tsx +212 -0
  91. package/src/components/Checkbox/Checkbox.sx.ts +67 -0
  92. package/src/components/Checkbox/Checkbox.tsx +208 -0
  93. package/src/components/Checkbox/index.ts +10 -0
  94. package/src/components/Chip/Chip.definitions.ts +167 -0
  95. package/src/components/Chip/Chip.stories.tsx +265 -0
  96. package/src/components/Chip/Chip.tsx +61 -0
  97. package/src/components/Chip/index.ts +2 -0
  98. package/src/components/Column/Column.tsx +29 -0
  99. package/src/components/Column/index.ts +2 -0
  100. package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
  101. package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
  102. package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
  103. package/src/components/DatePicker/DatePicker.sx.ts +35 -0
  104. package/src/components/DatePicker/DatePicker.tsx +134 -0
  105. package/src/components/DatePicker/index.ts +7 -0
  106. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +317 -0
  107. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +45 -0
  108. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +415 -0
  109. package/src/components/DateTimePicker/DateTimePicker.sx.ts +32 -0
  110. package/src/components/DateTimePicker/DateTimePicker.tsx +241 -0
  111. package/src/components/DateTimePicker/index.ts +9 -0
  112. package/src/components/Drawer/Drawer.stories.tsx +438 -0
  113. package/src/components/Drawer/Drawer.sx.ts +106 -0
  114. package/src/components/Drawer/Drawer.tsx +224 -0
  115. package/src/components/Drawer/DrawerContext.ts +26 -0
  116. package/src/components/Drawer/DrawerItem.tsx +120 -0
  117. package/src/components/Drawer/index.ts +10 -0
  118. package/src/components/Flyout/Flyout.stories.tsx +282 -0
  119. package/src/components/Flyout/Flyout.tsx +122 -0
  120. package/src/components/Flyout/index.ts +1 -0
  121. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  122. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  123. package/src/components/Gallery/Gallery.tsx +158 -0
  124. package/src/components/Gallery/GalleryLightbox.tsx +186 -0
  125. package/src/components/Gallery/GalleryMain.tsx +87 -0
  126. package/src/components/Gallery/GalleryThumbnails.tsx +122 -0
  127. package/src/components/Gallery/index.ts +2 -0
  128. package/src/components/Icon/Icon.stories.tsx +121 -0
  129. package/src/components/Icon/Icon.tsx +163 -0
  130. package/src/components/Icon/index.ts +2 -0
  131. package/src/components/Input/Input.definitions.ts +348 -0
  132. package/src/components/Input/Input.helpers.ts +50 -0
  133. package/src/components/Input/Input.stories.tsx +528 -0
  134. package/src/components/Input/Input.sx.ts +44 -0
  135. package/src/components/Input/Input.tsx +163 -0
  136. package/src/components/Input/index.ts +10 -0
  137. package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
  138. package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
  139. package/src/components/InputGroup/InputGroup.tsx +180 -0
  140. package/src/components/InputGroup/index.ts +2 -0
  141. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  142. package/src/components/MenuButton/MenuButton.tsx +100 -0
  143. package/src/components/MenuButton/index.ts +1 -0
  144. package/src/components/Modal/Modal.stories.tsx +721 -0
  145. package/src/components/Modal/Modal.tsx +407 -0
  146. package/src/components/Modal/ModalBody.tsx +23 -0
  147. package/src/components/Modal/ModalFooter.tsx +83 -0
  148. package/src/components/Modal/ModalHeader.tsx +33 -0
  149. package/src/components/Modal/index.ts +11 -0
  150. package/src/components/RadioGroup/RadioGroup.definitions.ts +177 -0
  151. package/src/components/RadioGroup/RadioGroup.stories.tsx +231 -0
  152. package/src/components/RadioGroup/RadioGroup.sx.ts +75 -0
  153. package/src/components/RadioGroup/RadioGroup.tsx +207 -0
  154. package/src/components/RadioGroup/index.ts +10 -0
  155. package/src/components/Select/Select.helpers.ts +31 -0
  156. package/src/components/Select/Select.stories.tsx +393 -0
  157. package/src/components/Select/Select.sx.ts +15 -0
  158. package/src/components/Select/Select.tsx +328 -0
  159. package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
  160. package/src/components/Select/_parts/SelectValue.tsx +95 -0
  161. package/src/components/Select/index.ts +12 -0
  162. package/src/components/Stat/Stat.stories.tsx +85 -0
  163. package/src/components/Stat/Stat.tsx +117 -0
  164. package/src/components/Stat/index.ts +2 -0
  165. package/src/components/StatusMessage/StatusMessage.stories.tsx +159 -0
  166. package/src/components/StatusMessage/StatusMessage.tsx +143 -0
  167. package/src/components/StatusMessage/index.ts +3 -0
  168. package/src/components/Stepper/Step.tsx +21 -0
  169. package/src/components/Stepper/Stepper.definition.ts +75 -0
  170. package/src/components/Stepper/Stepper.stories.tsx +194 -0
  171. package/src/components/Stepper/Stepper.tsx +194 -0
  172. package/src/components/Stepper/StepperContext.tsx +176 -0
  173. package/src/components/Stepper/StepperProvider.stories.tsx +286 -0
  174. package/src/components/Stepper/_hooks/useHorizontalScroll.ts +56 -0
  175. package/src/components/Stepper/_parts/StepperScrollArrow.tsx +50 -0
  176. package/src/components/Stepper/index.ts +15 -0
  177. package/src/components/Switch/Switch.definitions.ts +134 -0
  178. package/src/components/Switch/Switch.stories.tsx +213 -0
  179. package/src/components/Switch/Switch.sx.ts +81 -0
  180. package/src/components/Switch/Switch.tsx +188 -0
  181. package/src/components/Switch/Switch.types.ts +10 -0
  182. package/src/components/Switch/index.ts +9 -0
  183. package/src/components/Table/EmptyTable.png +0 -0
  184. package/src/components/Table/Table.definition.ts +580 -0
  185. package/src/components/Table/Table.stories.tsx +853 -0
  186. package/src/components/Table/Table.tsx +494 -0
  187. package/src/components/Table/data.ts +134 -0
  188. package/src/components/Table/exportsUtils.ts +195 -0
  189. package/src/components/Table/index.ts +3 -0
  190. package/src/components/Table/types.ts +34 -0
  191. package/src/components/Tabs/Tab.definition.ts +53 -0
  192. package/src/components/Tabs/Tab.tsx +19 -0
  193. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  194. package/src/components/Tabs/Tabs.tsx +163 -0
  195. package/src/components/Tabs/_tabUtils.tsx +4 -0
  196. package/src/components/Tabs/index.ts +5 -0
  197. package/src/components/Timeline/Timeline.definition.ts +43 -0
  198. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  199. package/src/components/Timeline/Timeline.tsx +44 -0
  200. package/src/components/Timeline/TimelineItem.tsx +31 -0
  201. package/src/components/Timeline/index.ts +5 -0
  202. package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
  203. package/src/components/Tooltip/Tooltip.tsx +58 -0
  204. package/src/components/Tooltip/index.ts +1 -0
  205. package/src/components/_shared/formField.sx.ts +134 -0
  206. package/src/components/_shared/mergeSx.ts +16 -0
  207. package/src/components/_shared/resolvePreset.ts +38 -0
  208. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  209. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  210. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  211. package/src/hooks/ClipBoard/index.ts +1 -0
  212. package/src/index.ts +51 -0
  213. package/src/mui.ts +57 -0
  214. package/src/styles.css +3 -0
  215. package/src/theme/componentStyles.ts +50 -0
  216. package/src/theme/tokens.ts +43 -0
  217. package/src/utils/index.ts +2 -0
  218. package/src/utils/scrollToTop.ts +36 -0
  219. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  220. package/storybook-static/assets/AccountCircle-BDZFsbTw.js +1 -0
  221. package/storybook-static/assets/ActionMenu-EynP8yU1.js +19 -0
  222. package/storybook-static/assets/ActionMenu.stories-DqSqRGix.js +185 -0
  223. package/storybook-static/assets/Alert-3zvTPc0p.js +1 -0
  224. package/storybook-static/assets/AppBar.stories-DcX3M5th.js +172 -0
  225. package/storybook-static/assets/Autocomplete.stories-CXJm8FOT.js +788 -0
  226. package/storybook-static/assets/Avatar-NbFfkZws.js +1 -0
  227. package/storybook-static/assets/Avatar.stories-CwOYCzqU.js +390 -0
  228. package/storybook-static/assets/Box-BnhEcfFm.js +1 -0
  229. package/storybook-static/assets/Button-D9h7OggD.js +1 -0
  230. package/storybook-static/assets/Button-DBpqmVB_.js +1 -0
  231. package/storybook-static/assets/Button.stories-F20dmnjq.js +320 -0
  232. package/storybook-static/assets/ButtonBase-qyaMEhe4.js +74 -0
  233. package/storybook-static/assets/Card.stories-B3NpAhO0.js +154 -0
  234. package/storybook-static/assets/CheckCircleOutline-CEj5mDsl.js +1 -0
  235. package/storybook-static/assets/Chip-C3vKPpzR.js +1 -0
  236. package/storybook-static/assets/Chip.stories-sxcfHVo9.js +333 -0
  237. package/storybook-static/assets/CircularProgress-DC7ZNWwl.js +28 -0
  238. package/storybook-static/assets/Clear-4kYcKvT3.js +1 -0
  239. package/storybook-static/assets/ClipBoard-DvLBdNHe.js +1 -0
  240. package/storybook-static/assets/ClipBoard.stories-BGUo47r6.js +108 -0
  241. package/storybook-static/assets/Close-CgHeRgmh.js +1 -0
  242. package/storybook-static/assets/Close-Cy8nELYU.js +1 -0
  243. package/storybook-static/assets/Color-AVL7NMMY-BJKvwERm.js +1 -0
  244. package/storybook-static/assets/ContentCopy-BfLTDb10.js +1 -0
  245. package/storybook-static/assets/DatePicker-Clkpr-Ku.js +1 -0
  246. package/storybook-static/assets/DatePicker.stories-EaUCMkh3.js +444 -0
  247. package/storybook-static/assets/DateRangePicker.stories-BMlkj-8K.js +390 -0
  248. package/storybook-static/assets/DateTimePicker.stories-B6gdzKq5.js +555 -0
  249. package/storybook-static/assets/DefaultPropsProvider-BGoQxtDa.js +16 -0
  250. package/storybook-static/assets/Delete-D2SMMmIA.js +1 -0
  251. package/storybook-static/assets/DialogContent-BeCDKgax.js +1 -0
  252. package/storybook-static/assets/Divider-BbCj9wT4.js +1 -0
  253. package/storybook-static/assets/DocsRenderer-PQXLIZUC-BebLK5Y_.js +1243 -0
  254. package/storybook-static/assets/Drawer-DcFwy73r.js +1 -0
  255. package/storybook-static/assets/Drawer.stories-C5AZkJBk.js +173 -0
  256. package/storybook-static/assets/EmptyTable-B-RKtgVs.png +0 -0
  257. package/storybook-static/assets/ErrorOutline-D9gM7ART.js +1 -0
  258. package/storybook-static/assets/Fade-Ll96CvH8.js +1 -0
  259. package/storybook-static/assets/Flyout.stories-Cf7z6MNw.js +163 -0
  260. package/storybook-static/assets/Gallery.stories-DdpWVTF6.js +127 -0
  261. package/storybook-static/assets/Grow-8y4FglGK.js +1 -0
  262. package/storybook-static/assets/Home-BRvJEp2L.js +1 -0
  263. package/storybook-static/assets/Icon.stories-D0mUiW_t.js +78 -0
  264. package/storybook-static/assets/IconButton-9OYSTH58.js +1 -0
  265. package/storybook-static/assets/Input-CjX0t4h-.js +1 -0
  266. package/storybook-static/assets/Input.stories-BRxekliy.js +650 -0
  267. package/storybook-static/assets/InputGroup.stories-DH6gUfmn.js +306 -0
  268. package/storybook-static/assets/KeyboardArrowRight-WO_attK2.js +1 -0
  269. package/storybook-static/assets/KeyboardArrowUp-DsyVef-i.js +1 -0
  270. package/storybook-static/assets/ListItem-D3O0103N.js +1 -0
  271. package/storybook-static/assets/ListItemIcon-hca6xN79.js +1 -0
  272. package/storybook-static/assets/ListItemText-BFLAwLdl.js +1 -0
  273. package/storybook-static/assets/Logout-gj-P3AfU.js +1 -0
  274. package/storybook-static/assets/Menu-ClzfjLc3.js +1 -0
  275. package/storybook-static/assets/MenuButton.stories-B-W_QVDt.js +162 -0
  276. package/storybook-static/assets/MenuItem-iU6tAqJI.js +1 -0
  277. package/storybook-static/assets/Modal-3okp9H2i.js +1 -0
  278. package/storybook-static/assets/Modal.stories-DIWzm4qR.js +468 -0
  279. package/storybook-static/assets/MoreVert-BoIVG4gh.js +1 -0
  280. package/storybook-static/assets/Notifications-DY_A-Sho.js +1 -0
  281. package/storybook-static/assets/PageLoader.stories-DmtO1mlm.js +158 -0
  282. package/storybook-static/assets/Paper-SwQBhqI7.js +1 -0
  283. package/storybook-static/assets/Person-CkQl-mpq.js +1 -0
  284. package/storybook-static/assets/PickersModalDialog-Tjnr_cu5.js +10 -0
  285. package/storybook-static/assets/PickersToolbarButton-Tt185-si.js +1 -0
  286. package/storybook-static/assets/Popper-CnCTYXxy.js +1 -0
  287. package/storybook-static/assets/Portal-Cj8XF9Lf.js +1 -0
  288. package/storybook-static/assets/ScrollTopButton.stories-BflQCwNP.js +90 -0
  289. package/storybook-static/assets/Select-CjcuMAY0.js +4 -0
  290. package/storybook-static/assets/Select-DJh2biEb.js +3 -0
  291. package/storybook-static/assets/Select.stories-DU1Gb3I2.js +1103 -0
  292. package/storybook-static/assets/Settings-BLKc1CnO.js +1 -0
  293. package/storybook-static/assets/Snackbar-BtVeKTw6.js +1 -0
  294. package/storybook-static/assets/Stack-D01OUIXi.js +1 -0
  295. package/storybook-static/assets/Stat.stories-Bn9-iuPT.js +60 -0
  296. package/storybook-static/assets/StatusMessage.stories-hnfX8FeU.js +73 -0
  297. package/storybook-static/assets/Stepper-BtKB5ykn.js +2 -0
  298. package/storybook-static/assets/Stepper.stories-CTEZbgPc.js +165 -0
  299. package/storybook-static/assets/Table.stories-CTn2Ktmn.js +1260 -0
  300. package/storybook-static/assets/TableContainer-CzLNaEU-.js +1 -0
  301. package/storybook-static/assets/TableRow-CS88-1HF.js +2 -0
  302. package/storybook-static/assets/Tabs-DLpDOu_n.js +1 -0
  303. package/storybook-static/assets/Tabs.stories-BFVuFy_5.js +159 -0
  304. package/storybook-static/assets/TextField-22T-xHBm.js +1 -0
  305. package/storybook-static/assets/Timeline.stories-DJU_U2Hv.js +97 -0
  306. package/storybook-static/assets/Tooltip-DbnHUxNj.js +1 -0
  307. package/storybook-static/assets/Tooltip.stories-B7tA3dnV.js +66 -0
  308. package/storybook-static/assets/Typography-BgntX2Ep.js +1 -0
  309. package/storybook-static/assets/Wizard.stories-CVrJLK_D.js +23 -0
  310. package/storybook-static/assets/createSimplePaletteValueFilter-bm0fmN_7.js +1 -0
  311. package/storybook-static/assets/createSvgIcon-D_Gca4vA.js +1 -0
  312. package/storybook-static/assets/debounce-Be36O1Ab.js +1 -0
  313. package/storybook-static/assets/emotion-react.browser.esm--g-C9cX9.js +8 -0
  314. package/storybook-static/assets/extendSxProp-CEpa30hT.js +1 -0
  315. package/storybook-static/assets/formField.sx-DMCmZIAa.js +1 -0
  316. package/storybook-static/assets/getReactElementRef-BQ3ANZdy.js +1 -0
  317. package/storybook-static/assets/iframe-BAJnc_4n.js +1079 -0
  318. package/storybook-static/assets/index-B1tlhOpe.js +240 -0
  319. package/storybook-static/assets/index-BF3FAXTk.js +9 -0
  320. package/storybook-static/assets/index-CIeucmOB.js +2 -0
  321. package/storybook-static/assets/index-CY7j4a7o.js +1 -0
  322. package/storybook-static/assets/index-CxkKctw5.js +1 -0
  323. package/storybook-static/assets/isFocusVisible-B8k4qzLc.js +1 -0
  324. package/storybook-static/assets/isMuiElement-CTZSFcY5.js +1 -0
  325. package/storybook-static/assets/jsx-runtime-D_zvdyIk.js +9 -0
  326. package/storybook-static/assets/listItemTextClasses-CC_rwJam.js +1 -0
  327. package/storybook-static/assets/mergeSlotProps-B0UBKBMe.js +1 -0
  328. package/storybook-static/assets/ownerDocument-DW-IO8s5.js +1 -0
  329. package/storybook-static/assets/ownerWindow-HkKU3E4x.js +1 -0
  330. package/storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
  331. package/storybook-static/assets/react-18-BUJ64QCV.js +25 -0
  332. package/storybook-static/assets/resolvePreset-CN2aOJJr.js +1 -0
  333. package/storybook-static/assets/useControlled-DsVh1a5j.js +1 -0
  334. package/storybook-static/assets/useForkRef-0ANIrxcF.js +1 -0
  335. package/storybook-static/assets/useId-b4fZxjOL.js +1 -0
  336. package/storybook-static/assets/useMobilePicker-DK-c8xbD.js +1 -0
  337. package/storybook-static/assets/usePreviousProps-WR0rG4aR.js +1 -0
  338. package/storybook-static/assets/useSlot-b6pXgp5_.js +1 -0
  339. package/storybook-static/assets/useSlotProps-C0uMfuBt.js +1 -0
  340. package/storybook-static/assets/useTheme-BmOJK7ra.js +1 -0
  341. package/storybook-static/assets/useThemeProps-DYtxXiUU.js +1 -0
  342. package/storybook-static/assets/useThemeProps-U4yXiZ_5.js +1 -0
  343. package/storybook-static/assets/useTimeout-DNjRaOWc.js +1 -0
  344. package/storybook-static/assets/visuallyHidden-Dan1xhjv.js +1 -0
  345. package/storybook-static/favicon-wrapper.svg +46 -0
  346. package/storybook-static/favicon.svg +1 -0
  347. package/storybook-static/iframe.html +686 -0
  348. package/storybook-static/index.html +160 -0
  349. package/storybook-static/index.json +1 -0
  350. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  351. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  352. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  353. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  354. package/storybook-static/project.json +1 -0
  355. package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js +356 -0
  356. package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js.LEGAL.txt +40 -0
  357. package/storybook-static/sb-addons/docs-4/manager-bundle.js +151 -0
  358. package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +127 -0
  359. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +971 -0
  360. package/storybook-static/sb-addons/vitest-3/manager-bundle.js +3 -0
  361. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  362. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  363. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  364. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  365. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  366. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  367. package/storybook-static/sb-manager/globals-module-info.js +797 -0
  368. package/storybook-static/sb-manager/globals-runtime.js +69679 -0
  369. package/storybook-static/sb-manager/globals.js +34 -0
  370. package/storybook-static/sb-manager/runtime.js +13195 -0
  371. package/storybook-static/vite-inject-mocker-entry.js +18 -0
  372. package/tailwind.config.js +10 -0
  373. package/tsconfig.json +48 -0
  374. package/tsup.config.js +41 -0
  375. package/vite.config.js +132 -0
  376. package/vitest.config.ts +35 -0
  377. package/Autocomplete-4i0dNDKr.cjs.map +0 -1
  378. package/Autocomplete-i3-V38n1.js.map +0 -1
  379. package/DatePicker-CtCFqXDw.cjs.map +0 -1
  380. package/DatePicker-D0Bz9Ryg.js.map +0 -1
  381. package/DateTimePicker-77w-9TP5.js.map +0 -1
  382. package/DateTimePicker-CTnRQCZo.cjs.map +0 -1
  383. package/Input-jYapjJYM.cjs.map +0 -1
  384. package/Input-rVVhI_wk.js.map +0 -1
  385. package/Select-B6jE3WH_.cjs.map +0 -1
  386. package/Select-bSVQokFX.js.map +0 -1
  387. package/formField.sx-8_QRnKxv.js.map +0 -1
  388. package/formField.sx-BAX7KwMR.cjs.map +0 -1
  389. /package/{README.md → Readme.md} +0 -0
  390. /package/{Avatar-CgT7955R.js → dist/Avatar-CgT7955R.js} +0 -0
  391. /package/{Avatar-CgT7955R.js.map → dist/Avatar-CgT7955R.js.map} +0 -0
  392. /package/{Avatar-CuSrK8Wn.cjs → dist/Avatar-CuSrK8Wn.cjs} +0 -0
  393. /package/{Avatar-CuSrK8Wn.cjs.map → dist/Avatar-CuSrK8Wn.cjs.map} +0 -0
  394. /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
  395. /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
  396. /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
  397. /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
  398. /package/{Card-B1wtavyl.js → dist/Card-B1wtavyl.js} +0 -0
  399. /package/{Card-B1wtavyl.js.map → dist/Card-B1wtavyl.js.map} +0 -0
  400. /package/{Card-DfdU610V.cjs → dist/Card-DfdU610V.cjs} +0 -0
  401. /package/{Card-DfdU610V.cjs.map → dist/Card-DfdU610V.cjs.map} +0 -0
  402. /package/{Checkbox-BCqMFWt4.cjs → dist/Checkbox-BCqMFWt4.cjs} +0 -0
  403. /package/{Checkbox-BCqMFWt4.cjs.map → dist/Checkbox-BCqMFWt4.cjs.map} +0 -0
  404. /package/{Checkbox-gB5YKkVo.js → dist/Checkbox-gB5YKkVo.js} +0 -0
  405. /package/{Checkbox-gB5YKkVo.js.map → dist/Checkbox-gB5YKkVo.js.map} +0 -0
  406. /package/{Chip-OPYQ1uQ_.js → dist/Chip-OPYQ1uQ_.js} +0 -0
  407. /package/{Chip-OPYQ1uQ_.js.map → dist/Chip-OPYQ1uQ_.js.map} +0 -0
  408. /package/{Chip-qoJLDiva.cjs → dist/Chip-qoJLDiva.cjs} +0 -0
  409. /package/{Chip-qoJLDiva.cjs.map → dist/Chip-qoJLDiva.cjs.map} +0 -0
  410. /package/{Modal-BN5s-Tfk.cjs → dist/Modal-BN5s-Tfk.cjs} +0 -0
  411. /package/{Modal-BN5s-Tfk.cjs.map → dist/Modal-BN5s-Tfk.cjs.map} +0 -0
  412. /package/{Modal-BRZMPwDj.js → dist/Modal-BRZMPwDj.js} +0 -0
  413. /package/{Modal-BRZMPwDj.js.map → dist/Modal-BRZMPwDj.js.map} +0 -0
  414. /package/{RadioGroup-Dd0rHXSX.cjs → dist/RadioGroup-Dd0rHXSX.cjs} +0 -0
  415. /package/{RadioGroup-Dd0rHXSX.cjs.map → dist/RadioGroup-Dd0rHXSX.cjs.map} +0 -0
  416. /package/{RadioGroup-bO-ahP9T.js → dist/RadioGroup-bO-ahP9T.js} +0 -0
  417. /package/{RadioGroup-bO-ahP9T.js.map → dist/RadioGroup-bO-ahP9T.js.map} +0 -0
  418. /package/{Stat-BUcFCGrz.cjs → dist/Stat-BUcFCGrz.cjs} +0 -0
  419. /package/{Stat-BUcFCGrz.cjs.map → dist/Stat-BUcFCGrz.cjs.map} +0 -0
  420. /package/{Stat-C06A_izS.js → dist/Stat-C06A_izS.js} +0 -0
  421. /package/{Stat-C06A_izS.js.map → dist/Stat-C06A_izS.js.map} +0 -0
  422. /package/{StatusMessage-B3nXpuRl.cjs → dist/StatusMessage-B3nXpuRl.cjs} +0 -0
  423. /package/{StatusMessage-B3nXpuRl.cjs.map → dist/StatusMessage-B3nXpuRl.cjs.map} +0 -0
  424. /package/{StatusMessage-D0WgSBx7.js → dist/StatusMessage-D0WgSBx7.js} +0 -0
  425. /package/{StatusMessage-D0WgSBx7.js.map → dist/StatusMessage-D0WgSBx7.js.map} +0 -0
  426. /package/{Step-BArsou1V.js → dist/Step-BArsou1V.js} +0 -0
  427. /package/{Step-BArsou1V.js.map → dist/Step-BArsou1V.js.map} +0 -0
  428. /package/{Step-Nd7SJbRZ.cjs → dist/Step-Nd7SJbRZ.cjs} +0 -0
  429. /package/{Step-Nd7SJbRZ.cjs.map → dist/Step-Nd7SJbRZ.cjs.map} +0 -0
  430. /package/{Switch-CQFOopYy.cjs → dist/Switch-CQFOopYy.cjs} +0 -0
  431. /package/{Switch-CQFOopYy.cjs.map → dist/Switch-CQFOopYy.cjs.map} +0 -0
  432. /package/{Switch-D72dpkH2.js → dist/Switch-D72dpkH2.js} +0 -0
  433. /package/{Switch-D72dpkH2.js.map → dist/Switch-D72dpkH2.js.map} +0 -0
  434. /package/{Tab-BbP8jBcK.cjs → dist/Tab-BbP8jBcK.cjs} +0 -0
  435. /package/{Tab-BbP8jBcK.cjs.map → dist/Tab-BbP8jBcK.cjs.map} +0 -0
  436. /package/{Tab-BxSxKJsP.js → dist/Tab-BxSxKJsP.js} +0 -0
  437. /package/{Tab-BxSxKJsP.js.map → dist/Tab-BxSxKJsP.js.map} +0 -0
  438. /package/{Table-C2LbW0B1.js → dist/Table-C2LbW0B1.js} +0 -0
  439. /package/{Table-C2LbW0B1.js.map → dist/Table-C2LbW0B1.js.map} +0 -0
  440. /package/{Table-C4OM6rrC.cjs → dist/Table-C4OM6rrC.cjs} +0 -0
  441. /package/{Table-C4OM6rrC.cjs.map → dist/Table-C4OM6rrC.cjs.map} +0 -0
  442. /package/{components → dist/components}/ActionMenu/ActionMenu.cjs +0 -0
  443. /package/{components → dist/components}/ActionMenu/ActionMenu.cjs.map +0 -0
  444. /package/{components → dist/components}/ActionMenu/ActionMenu.d.ts +0 -0
  445. /package/{components → dist/components}/ActionMenu/ActionMenu.js +0 -0
  446. /package/{components → dist/components}/ActionMenu/ActionMenu.js.map +0 -0
  447. /package/{components → dist/components}/ActionMenu/index.d.ts +0 -0
  448. /package/{components → dist/components}/ActionMenu.d.ts +0 -0
  449. /package/{components → dist/components}/AppBar/AppBar.cjs +0 -0
  450. /package/{components → dist/components}/AppBar/AppBar.cjs.map +0 -0
  451. /package/{components → dist/components}/AppBar/AppBar.d.ts +0 -0
  452. /package/{components → dist/components}/AppBar/AppBar.js +0 -0
  453. /package/{components → dist/components}/AppBar/AppBar.js.map +0 -0
  454. /package/{components → dist/components}/AppBar/AppBar.sx.d.ts +0 -0
  455. /package/{components → dist/components}/AppBar/AppBarContext.d.ts +0 -0
  456. /package/{components → dist/components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  457. /package/{components → dist/components}/AppBar/index.d.ts +0 -0
  458. /package/{components → dist/components}/AppBar.d.ts +0 -0
  459. /package/{components → dist/components}/Autocomplete/Autocomplete.cjs.map +0 -0
  460. /package/{components → dist/components}/Autocomplete/Autocomplete.d.ts +0 -0
  461. /package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  462. /package/{components → dist/components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  463. /package/{components → dist/components}/Autocomplete/Autocomplete.js.map +0 -0
  464. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  465. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  466. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  467. /package/{components → dist/components}/Autocomplete/index.d.ts +0 -0
  468. /package/{components → dist/components}/Autocomplete.d.ts +0 -0
  469. /package/{components → dist/components}/Avatar/Avatar.cjs +0 -0
  470. /package/{components → dist/components}/Avatar/Avatar.cjs.map +0 -0
  471. /package/{components → dist/components}/Avatar/Avatar.d.ts +0 -0
  472. /package/{components → dist/components}/Avatar/Avatar.definitions.d.ts +0 -0
  473. /package/{components → dist/components}/Avatar/Avatar.js +0 -0
  474. /package/{components → dist/components}/Avatar/Avatar.js.map +0 -0
  475. /package/{components → dist/components}/Avatar/index.d.ts +0 -0
  476. /package/{components → dist/components}/Avatar.d.ts +0 -0
  477. /package/{components → dist/components}/Button/Button.cjs +0 -0
  478. /package/{components → dist/components}/Button/Button.cjs.map +0 -0
  479. /package/{components → dist/components}/Button/Button.d.ts +0 -0
  480. /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
  481. /package/{components → dist/components}/Button/Button.js +0 -0
  482. /package/{components → dist/components}/Button/Button.js.map +0 -0
  483. /package/{components → dist/components}/Button/index.d.ts +0 -0
  484. /package/{components → dist/components}/Button.d.ts +0 -0
  485. /package/{components → dist/components}/Card/Card.cjs +0 -0
  486. /package/{components → dist/components}/Card/Card.cjs.map +0 -0
  487. /package/{components → dist/components}/Card/Card.d.ts +0 -0
  488. /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
  489. /package/{components → dist/components}/Card/Card.js +0 -0
  490. /package/{components → dist/components}/Card/Card.js.map +0 -0
  491. /package/{components → dist/components}/Card/Card.sx.d.ts +0 -0
  492. /package/{components → dist/components}/Card/index.d.ts +0 -0
  493. /package/{components → dist/components}/Card.d.ts +0 -0
  494. /package/{components → dist/components}/Checkbox/Checkbox.cjs +0 -0
  495. /package/{components → dist/components}/Checkbox/Checkbox.cjs.map +0 -0
  496. /package/{components → dist/components}/Checkbox/Checkbox.d.ts +0 -0
  497. /package/{components → dist/components}/Checkbox/Checkbox.js +0 -0
  498. /package/{components → dist/components}/Checkbox/Checkbox.js.map +0 -0
  499. /package/{components → dist/components}/Checkbox/Checkbox.sx.d.ts +0 -0
  500. /package/{components → dist/components}/Checkbox/index.d.ts +0 -0
  501. /package/{components → dist/components}/Checkbox.d.ts +0 -0
  502. /package/{components → dist/components}/Chip/Chip.cjs +0 -0
  503. /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
  504. /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
  505. /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
  506. /package/{components → dist/components}/Chip/Chip.js +0 -0
  507. /package/{components → dist/components}/Chip/Chip.js.map +0 -0
  508. /package/{components → dist/components}/Chip/index.d.ts +0 -0
  509. /package/{components → dist/components}/Chip.d.ts +0 -0
  510. /package/{components → dist/components}/Column/Column.cjs +0 -0
  511. /package/{components → dist/components}/Column/Column.cjs.map +0 -0
  512. /package/{components → dist/components}/Column/Column.d.ts +0 -0
  513. /package/{components → dist/components}/Column/Column.js +0 -0
  514. /package/{components → dist/components}/Column/Column.js.map +0 -0
  515. /package/{components → dist/components}/Column/index.d.ts +0 -0
  516. /package/{components → dist/components}/Column.d.ts +0 -0
  517. /package/{components → dist/components}/DatePicker/DatePicker.cjs.map +0 -0
  518. /package/{components → dist/components}/DatePicker/DatePicker.d.ts +0 -0
  519. /package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  520. /package/{components → dist/components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  521. /package/{components → dist/components}/DatePicker/DatePicker.js.map +0 -0
  522. /package/{components → dist/components}/DatePicker/index.d.ts +0 -0
  523. /package/{components → dist/components}/DatePicker.d.ts +0 -0
  524. /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  525. /package/{components → dist/components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  526. /package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  527. /package/{components → dist/components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  528. /package/{components → dist/components}/DateTimePicker/DateTimePicker.js.map +0 -0
  529. /package/{components → dist/components}/DateTimePicker/index.d.ts +0 -0
  530. /package/{components → dist/components}/DateTimePicker.d.ts +0 -0
  531. /package/{components → dist/components}/Drawer/Drawer.cjs +0 -0
  532. /package/{components → dist/components}/Drawer/Drawer.cjs.map +0 -0
  533. /package/{components → dist/components}/Drawer/Drawer.d.ts +0 -0
  534. /package/{components → dist/components}/Drawer/Drawer.js +0 -0
  535. /package/{components → dist/components}/Drawer/Drawer.js.map +0 -0
  536. /package/{components → dist/components}/Drawer/Drawer.sx.d.ts +0 -0
  537. /package/{components → dist/components}/Drawer/DrawerContext.d.ts +0 -0
  538. /package/{components → dist/components}/Drawer/DrawerItem.d.ts +0 -0
  539. /package/{components → dist/components}/Drawer/index.d.ts +0 -0
  540. /package/{components → dist/components}/Drawer.d.ts +0 -0
  541. /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
  542. /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
  543. /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
  544. /package/{components → dist/components}/Flyout/Flyout.js +0 -0
  545. /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
  546. /package/{components → dist/components}/Flyout/index.d.ts +0 -0
  547. /package/{components → dist/components}/Flyout.d.ts +0 -0
  548. /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
  549. /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
  550. /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
  551. /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
  552. /package/{components → dist/components}/Gallery/Gallery.js +0 -0
  553. /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
  554. /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
  555. /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
  556. /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
  557. /package/{components → dist/components}/Gallery/index.d.ts +0 -0
  558. /package/{components → dist/components}/Gallery.d.ts +0 -0
  559. /package/{components → dist/components}/Icon/Icon.cjs +0 -0
  560. /package/{components → dist/components}/Icon/Icon.cjs.map +0 -0
  561. /package/{components → dist/components}/Icon/Icon.d.ts +0 -0
  562. /package/{components → dist/components}/Icon/Icon.js +0 -0
  563. /package/{components → dist/components}/Icon/Icon.js.map +0 -0
  564. /package/{components → dist/components}/Icon/index.d.ts +0 -0
  565. /package/{components → dist/components}/Icon.d.ts +0 -0
  566. /package/{components → dist/components}/Input/Input.cjs.map +0 -0
  567. /package/{components → dist/components}/Input/Input.d.ts +0 -0
  568. /package/{components → dist/components}/Input/Input.definitions.d.ts +0 -0
  569. /package/{components → dist/components}/Input/Input.helpers.d.ts +0 -0
  570. /package/{components → dist/components}/Input/Input.js.map +0 -0
  571. /package/{components → dist/components}/Input/index.d.ts +0 -0
  572. /package/{components → dist/components}/Input.d.ts +0 -0
  573. /package/{components → dist/components}/InputGroup/InputGroup.cjs +0 -0
  574. /package/{components → dist/components}/InputGroup/InputGroup.cjs.map +0 -0
  575. /package/{components → dist/components}/InputGroup/InputGroup.d.ts +0 -0
  576. /package/{components → dist/components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  577. /package/{components → dist/components}/InputGroup/InputGroup.js +0 -0
  578. /package/{components → dist/components}/InputGroup/InputGroup.js.map +0 -0
  579. /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
  580. /package/{components → dist/components}/InputGroup.d.ts +0 -0
  581. /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
  582. /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
  583. /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
  584. /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
  585. /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
  586. /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
  587. /package/{components → dist/components}/MenuButton.d.ts +0 -0
  588. /package/{components → dist/components}/Modal/Modal.cjs +0 -0
  589. /package/{components → dist/components}/Modal/Modal.cjs.map +0 -0
  590. /package/{components → dist/components}/Modal/Modal.d.ts +0 -0
  591. /package/{components → dist/components}/Modal/Modal.js +0 -0
  592. /package/{components → dist/components}/Modal/Modal.js.map +0 -0
  593. /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
  594. /package/{components → dist/components}/Modal/ModalFooter.d.ts +0 -0
  595. /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
  596. /package/{components → dist/components}/Modal/index.d.ts +0 -0
  597. /package/{components → dist/components}/Modal.d.ts +0 -0
  598. /package/{components → dist/components}/RadioGroup/RadioGroup.cjs +0 -0
  599. /package/{components → dist/components}/RadioGroup/RadioGroup.cjs.map +0 -0
  600. /package/{components → dist/components}/RadioGroup/RadioGroup.d.ts +0 -0
  601. /package/{components → dist/components}/RadioGroup/RadioGroup.definitions.d.ts +0 -0
  602. /package/{components → dist/components}/RadioGroup/RadioGroup.js +0 -0
  603. /package/{components → dist/components}/RadioGroup/RadioGroup.js.map +0 -0
  604. /package/{components → dist/components}/RadioGroup/RadioGroup.sx.d.ts +0 -0
  605. /package/{components → dist/components}/RadioGroup/index.d.ts +0 -0
  606. /package/{components → dist/components}/RadioGroup.d.ts +0 -0
  607. /package/{components → dist/components}/Select/Select.cjs.map +0 -0
  608. /package/{components → dist/components}/Select/Select.d.ts +0 -0
  609. /package/{components → dist/components}/Select/Select.helpers.d.ts +0 -0
  610. /package/{components → dist/components}/Select/Select.js.map +0 -0
  611. /package/{components → dist/components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  612. /package/{components → dist/components}/Select/_parts/SelectValue.d.ts +0 -0
  613. /package/{components → dist/components}/Select/index.d.ts +0 -0
  614. /package/{components → dist/components}/Select.d.ts +0 -0
  615. /package/{components → dist/components}/Stat/Stat.cjs +0 -0
  616. /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
  617. /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
  618. /package/{components → dist/components}/Stat/Stat.js +0 -0
  619. /package/{components → dist/components}/Stat/Stat.js.map +0 -0
  620. /package/{components → dist/components}/Stat/index.d.ts +0 -0
  621. /package/{components → dist/components}/Stat.d.ts +0 -0
  622. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
  623. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
  624. /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
  625. /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
  626. /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
  627. /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
  628. /package/{components → dist/components}/StatusMessage.d.ts +0 -0
  629. /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
  630. /package/{components → dist/components}/Stepper/Stepper.cjs +0 -0
  631. /package/{components → dist/components}/Stepper/Stepper.cjs.map +0 -0
  632. /package/{components → dist/components}/Stepper/Stepper.d.ts +0 -0
  633. /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
  634. /package/{components → dist/components}/Stepper/Stepper.js +0 -0
  635. /package/{components → dist/components}/Stepper/Stepper.js.map +0 -0
  636. /package/{components → dist/components}/Stepper/StepperContext.d.ts +0 -0
  637. /package/{components → dist/components}/Stepper/_hooks/useHorizontalScroll.d.ts +0 -0
  638. /package/{components → dist/components}/Stepper/_parts/StepperScrollArrow.d.ts +0 -0
  639. /package/{components → dist/components}/Stepper/index.d.ts +0 -0
  640. /package/{components → dist/components}/Stepper.d.ts +0 -0
  641. /package/{components → dist/components}/Switch/Switch.cjs +0 -0
  642. /package/{components → dist/components}/Switch/Switch.cjs.map +0 -0
  643. /package/{components → dist/components}/Switch/Switch.d.ts +0 -0
  644. /package/{components → dist/components}/Switch/Switch.definitions.d.ts +0 -0
  645. /package/{components → dist/components}/Switch/Switch.js +0 -0
  646. /package/{components → dist/components}/Switch/Switch.js.map +0 -0
  647. /package/{components → dist/components}/Switch/Switch.sx.d.ts +0 -0
  648. /package/{components → dist/components}/Switch/Switch.types.d.ts +0 -0
  649. /package/{components → dist/components}/Switch/index.d.ts +0 -0
  650. /package/{components → dist/components}/Switch.d.ts +0 -0
  651. /package/{components → dist/components}/Table/Table.cjs +0 -0
  652. /package/{components → dist/components}/Table/Table.cjs.map +0 -0
  653. /package/{components → dist/components}/Table/Table.d.ts +0 -0
  654. /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
  655. /package/{components → dist/components}/Table/Table.js +0 -0
  656. /package/{components → dist/components}/Table/Table.js.map +0 -0
  657. /package/{components → dist/components}/Table/data.d.ts +0 -0
  658. /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
  659. /package/{components → dist/components}/Table/index.d.ts +0 -0
  660. /package/{components → dist/components}/Table/types.d.ts +0 -0
  661. /package/{components → dist/components}/Table.d.ts +0 -0
  662. /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
  663. /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
  664. /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
  665. /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
  666. /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
  667. /package/{components → dist/components}/Tabs/Tabs.js +0 -0
  668. /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
  669. /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
  670. /package/{components → dist/components}/Tabs/index.d.ts +0 -0
  671. /package/{components → dist/components}/Tabs.d.ts +0 -0
  672. /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
  673. /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
  674. /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
  675. /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
  676. /package/{components → dist/components}/Timeline/Timeline.js +0 -0
  677. /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
  678. /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
  679. /package/{components → dist/components}/Timeline/index.d.ts +0 -0
  680. /package/{components → dist/components}/Timeline.d.ts +0 -0
  681. /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
  682. /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
  683. /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
  684. /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
  685. /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
  686. /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
  687. /package/{components → dist/components}/Tooltip.d.ts +0 -0
  688. /package/{components → dist/components}/_shared/mergeSx.d.ts +0 -0
  689. /package/{components → dist/components}/_shared/resolvePreset.d.ts +0 -0
  690. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
  691. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  692. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  693. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
  694. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
  695. /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  696. /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
  697. /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
  698. /package/{index.cjs.map → dist/index.cjs.map} +0 -0
  699. /package/{index.css → dist/index.css} +0 -0
  700. /package/{index.d.ts → dist/index.d.ts} +0 -0
  701. /package/{index.js.map → dist/index.js.map} +0 -0
  702. /package/{mergeSx-BXoNZjB_.js → dist/mergeSx-BXoNZjB_.js} +0 -0
  703. /package/{mergeSx-BXoNZjB_.js.map → dist/mergeSx-BXoNZjB_.js.map} +0 -0
  704. /package/{mergeSx-Dbccoo_H.cjs → dist/mergeSx-Dbccoo_H.cjs} +0 -0
  705. /package/{mergeSx-Dbccoo_H.cjs.map → dist/mergeSx-Dbccoo_H.cjs.map} +0 -0
  706. /package/{mui.d.ts → dist/mui.d.ts} +0 -0
  707. /package/{resolvePreset-CxTI6_Ln.cjs → dist/resolvePreset-CxTI6_Ln.cjs} +0 -0
  708. /package/{resolvePreset-CxTI6_Ln.cjs.map → dist/resolvePreset-CxTI6_Ln.cjs.map} +0 -0
  709. /package/{resolvePreset-K6_BfWHD.js → dist/resolvePreset-K6_BfWHD.js} +0 -0
  710. /package/{resolvePreset-K6_BfWHD.js.map → dist/resolvePreset-K6_BfWHD.js.map} +0 -0
  711. /package/{theme → dist/theme}/componentStyles.d.ts +0 -0
  712. /package/{theme → dist/theme}/tokens.d.ts +0 -0
  713. /package/{tokens-BRrcP_p_.js → dist/tokens-BRrcP_p_.js} +0 -0
  714. /package/{tokens-BRrcP_p_.js.map → dist/tokens-BRrcP_p_.js.map} +0 -0
  715. /package/{tokens-jaWWNk39.cjs → dist/tokens-jaWWNk39.cjs} +0 -0
  716. /package/{tokens-jaWWNk39.cjs.map → dist/tokens-jaWWNk39.cjs.map} +0 -0
  717. /package/{utils → dist/utils}/index.d.ts +0 -0
  718. /package/{utils → dist/utils}/scrollToTop.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateTimePicker-CTnRQCZo.cjs","sources":["../src/components/DateTimePicker/DateTimePicker.sx.ts","../src/components/DateTimePicker/DateTimePicker.helpers.ts","../src/components/DateTimePicker/DateTimePicker.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport { FIELD_INPUT_PADDING_Y } from '../../theme/tokens';\nimport type { LabelPosition } from './DateTimePicker';\n\n/**\n * Builder de sx para el DateTimePicker. Mismo patrón que DatePicker.\n * Usa `includePickersApi: true` para soportar la API nueva de MUI X v8.\n */\nexport const buildDateTimePickerSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): SxProps<Theme> =>\n buildFormFieldSx({\n borderRadius,\n labelPosition,\n includePickersApi: true,\n extraOutsideSx: {\n '& .MuiInputBase-input': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n\n '& .MuiPickersInputBase-sectionsContainer': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n },\n });\n","import type { DateTimeValidationError } from '@mui/x-date-pickers/models';\n\n/**\n * Traduce el error del DateTimePicker a un mensaje en español. Se usa\n * internamente para poblar `helperText` cuando hay error de validación.\n * Cubre tanto errores de fecha (`minDate`, `maxDate`, etc.) como de hora\n * (`minTime`, `maxTime`, `minutesStep`, etc.).\n */\nexport const getDateTimeValidationMessage = (\n error: DateTimeValidationError | null,\n): string => {\n switch (error) {\n case 'minDate':\n case 'maxDate':\n case 'minTime':\n case 'maxTime':\n return 'Fecha/hora fuera del rango permitido';\n case 'invalidDate':\n return 'Formato de fecha/hora inválido';\n case 'disableFuture':\n return 'No se permiten fechas/horas futuras';\n case 'disablePast':\n return 'No se permiten fechas/horas pasadas';\n case 'minutesStep':\n return 'Minutos no válidos para el paso configurado';\n default:\n return '';\n }\n};\n\n/**\n * Construye el `localeText` que MUI acepta para overridear los labels de los\n * botones del popover (Cancel / OK / Clear).\n */\nexport const buildLocaleText = (\n clearButtonText?: string,\n cancelButtonText?: string,\n acceptButtonText?: string,\n): Record<string, string> => {\n const text: Record<string, string> = {};\n if (clearButtonText) text.clearButtonLabel = clearButtonText;\n if (cancelButtonText) text.cancelButtonLabel = cancelButtonText;\n if (acceptButtonText) text.okButtonLabel = acceptButtonText;\n return text;\n};\n","import React, { useMemo } from 'react';\nimport type { SxProps, Theme } from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport {\n DateTimePicker as MuiDateTimePicker,\n type DateTimePickerProps as MuiDateTimePickerProps,\n} from '@mui/x-date-pickers/DateTimePicker';\nimport type { DateTimeValidationError } from '@mui/x-date-pickers/models';\nimport { Dayjs } from 'dayjs';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildDateTimePickerSx } from './DateTimePicker.sx';\nimport {\n buildLocaleText,\n getDateTimeValidationMessage,\n} from './DateTimePicker.helpers';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type LabelPosition = 'outside' | 'floating';\nexport type DateTimePickerSize = 'small' | 'medium';\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport interface BaseDateTimePickerProps\n extends Omit<MuiDateTimePickerProps, 'value' | 'onChange' | 'slotProps' | 'format'> {\n label?: string;\n minDateTime?: Dayjs;\n maxDateTime?: Dayjs;\n disabled?: boolean;\n readOnly?: boolean;\n /** Formato de la fecha/hora. Default: 'DD/MM/YYYY HH:mm'. */\n inputFormat?: string;\n /** Border radius del input. Default: 10. */\n borderRadius?: number | string;\n /** \"outside\" (default) o \"floating\". */\n labelPosition?: LabelPosition;\n /** Tamaño del TextField. Default: 'small'. */\n size?: DateTimePickerSize;\n helperText?: string;\n error?: boolean;\n sx?: SxProps<Theme>;\n className?: string;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.DateTimePicker`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n /** Locale del adaptador dayjs. */\n adapterLocale?: string;\n /** Textos de los botones del popover. */\n clearButtonText?: string;\n cancelButtonText?: string;\n acceptButtonText?: string;\n minutesStep?: number;\n minTime?: Dayjs;\n /** Si es true usa formato 12h (AM/PM), false = 24h. Default: false. */\n ampm?: boolean;\n viewRenderers?: MuiDateTimePickerProps['viewRenderers'];\n timeSteps?: MuiDateTimePickerProps['timeSteps'];\n textFieldProps?: Record<string, any>;\n /** Passthrough completo a slotProps del MuiDateTimePicker. */\n slotProps?: MuiDateTimePickerProps['slotProps'];\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFDateTimePickerProps extends BaseDateTimePickerProps {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos. NO reemplaza al handler de RHF.\n */\n onValueChange?: (dateTime: Dayjs | null) => void;\n selectedDateTime?: never;\n onDateTimeChange?: never;\n}\n\nexport interface ControlledDateTimePickerProps extends BaseDateTimePickerProps {\n name?: string;\n control?: never;\n validation?: never;\n selectedDateTime: Dayjs | null;\n onDateTimeChange: (dateTime: Dayjs | null) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type DateTimePickerProps =\n | RHFDateTimePickerProps\n | ControlledDateTimePickerProps;\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = (props) => {\n const {\n label,\n minDateTime,\n maxDateTime,\n disabled,\n readOnly,\n inputFormat,\n borderRadius = 10,\n labelPosition = 'outside',\n size = 'small',\n helperText,\n error: errorProp,\n sx,\n className,\n preset,\n adapterLocale,\n clearButtonText,\n cancelButtonText,\n acceptButtonText,\n minutesStep,\n minTime,\n ampm = false,\n viewRenderers,\n timeSteps,\n textFieldProps,\n slotProps: slotPropsProp,\n ...rest\n } = props as ControlledDateTimePickerProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const [validationError, setValidationError] = React.useState<DateTimeValidationError | null>(null);\n\n const validationErrorMessage = useMemo(\n () => getDateTimeValidationMessage(validationError),\n [validationError],\n );\n\n const customLocaleText = useMemo(\n () => buildLocaleText(clearButtonText, cancelButtonText, acceptButtonText),\n [clearButtonText, cancelButtonText, acceptButtonText],\n );\n\n const theme = useTheme();\n const presetSx = resolvePreset('DateTimePicker', preset, theme);\n\n const mergedSx = [\n buildDateTimePickerSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : [sx]),\n ];\n\n const renderPicker = (\n value: Dayjs | null,\n onChange: (date: Dayjs | null) => void,\n onBlur?: () => void,\n inputRef?: React.Ref<any>,\n rhfError?: boolean,\n rhfHelperText?: string,\n ) => {\n const finalError = rhfError || !!validationErrorMessage || !!errorProp;\n const finalHelperText = rhfHelperText || validationErrorMessage || helperText;\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterDayjs}\n adapterLocale={adapterLocale}\n >\n <MuiDateTimePicker\n className={className}\n label={label}\n value={value}\n onChange={onChange}\n onError={setValidationError}\n minDateTime={minDateTime}\n maxDateTime={maxDateTime}\n minutesStep={minutesStep}\n disabled={disabled}\n readOnly={readOnly}\n minTime={minTime}\n format={inputFormat ?? 'DD/MM/YYYY HH:mm'}\n ampm={ampm}\n viewRenderers={viewRenderers}\n timeSteps={timeSteps}\n sx={mergedSx}\n slotProps={{\n ...slotPropsProp,\n textField: {\n fullWidth: true,\n size,\n variant: 'outlined',\n // Consumer overrides visuales / de comportamiento opcionales.\n ...(slotPropsProp?.textField as Record<string, any> | undefined),\n ...textFieldProps,\n // Props críticas al final: ganan al consumer para no romper la\n // integración con RHF ni desactivar el visual de error.\n onBlur,\n inputRef,\n error: !!finalError,\n helperText: finalHelperText,\n } as any,\n }}\n localeText={customLocaleText}\n {...rest}\n />\n </LocalizationProvider>\n );\n };\n\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } = props as RHFDateTimePickerProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n render={({ field, fieldState: { error: fieldError } }) =>\n renderPicker(\n field.value ?? null,\n (next) => {\n field.onChange(next);\n onValueChange?.(next);\n },\n field.onBlur,\n field.ref,\n !!fieldError,\n fieldError?.message,\n )\n }\n />\n );\n }\n\n const { selectedDateTime, onDateTimeChange } = props as ControlledDateTimePickerProps;\n return renderPicker(selectedDateTime, onDateTimeChange);\n};\n\nexport default DateTimePicker;\n"],"names":["buildFormFieldSx","FIELD_INPUT_PADDING_Y","useMemo","useTheme","resolvePreset","jsx","LocalizationProvider","AdapterDayjs","MuiDateTimePicker","Controller","_a"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Input-jYapjJYM.cjs","sources":["../src/components/Input/Input.helpers.ts","../src/components/Input/Input.sx.ts","../src/components/Input/Input.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport type { TextFieldProps } from '@mui/material';\nimport type { InputType } from './Input';\n\n/**\n * Convierte el valor raw del evento al tipo apropiado.\n * Para type=\"number\" intenta parsear a número; si falla, devuelve el raw\n * (permite estados intermedios como \"\" o \"-\" mientras el usuario tipea).\n */\nexport const parseValue = (raw: string, type: InputType): string | number => {\n if (type !== 'number') return raw;\n if (raw === '' || raw === '-') return raw;\n const n = parseFloat(raw);\n return isNaN(n) ? raw : n;\n};\n\n/**\n * Construye los slotProps del TextField consolidando htmlInput + inputLabel.\n * Maneja los atributos min/max cuando type=\"number\", maxLength y readOnly.\n */\nexport const buildSlotProps = (\n type: InputType,\n min: number | undefined,\n max: number | undefined,\n maxLength: number | undefined,\n customSlotProps: TextFieldProps['slotProps'],\n customInputProps: InputHTMLAttributes<HTMLInputElement> | undefined,\n readOnly?: boolean,\n): TextFieldProps['slotProps'] => {\n const numberAttrs =\n type === 'number'\n ? { min: min ?? Number.NEGATIVE_INFINITY, ...(max !== undefined && { max }) }\n : {};\n\n return {\n ...customSlotProps,\n htmlInput: {\n ...customInputProps,\n ...(customSlotProps as any)?.htmlInput,\n ...numberAttrs,\n ...(maxLength !== undefined && { maxLength }),\n ...(readOnly && { readOnly: true }),\n },\n // Dejamos que MUI maneje el shrink nativamente (animación inside → up).\n // El consumidor puede forzar shrink con slotProps.inputLabel.shrink=true si lo necesita.\n inputLabel: {\n ...(customSlotProps as any)?.inputLabel,\n },\n };\n};\n","import type { TextFieldProps } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport { FIELD_INPUT_PADDING_Y } from '../../theme/tokens';\nimport type { LabelPosition } from './Input';\n\n/**\n * Builder de sx para el Input. Usa el builder compartido\n * `buildFormFieldSx` y añade overrides específicos de TextField\n * (padding del input base, filled, standard).\n */\nexport const buildInputSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): TextFieldProps['sx'] => {\n const radius = typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n return buildFormFieldSx({\n borderRadius,\n labelPosition,\n extraOutsideSx: {\n '& .MuiInputBase-input': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n\n // Filled: quitar el padding-top reservado para el label flotante dentro.\n '& .MuiFilledInput-root': {\n paddingTop: 0,\n borderRadius: `${radius} ${radius} 0 0`,\n },\n '& .MuiFilledInput-input': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n },\n\n // Standard: quitar el margin-top reservado para el label flotante.\n '& .MuiInput-root': {\n marginTop: 0,\n },\n },\n });\n};\n","import { TextField, type TextFieldProps } from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { parseValue, buildSlotProps } from './Input.helpers';\nimport { buildInputSx } from './Input.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type InputType =\n | 'text' | 'number' | 'email' | 'password' | 'tel'\n | 'url' | 'search' | 'date' | 'datetime-local'\n | 'month' | 'week' | 'time' | 'color';\n\nexport type LabelPosition = 'outside' | 'floating';\n\n// ── Props base (todo lo común entre RHF y controlado) ────────────────────\nexport interface BaseInputProps\n extends Omit<TextFieldProps, 'value' | 'onChange' | 'type'> {\n type?: InputType;\n min?: number;\n max?: number;\n maxLength?: number;\n /** Border radius del input. Default: 10 */\n borderRadius?: number | string;\n /** \"outside\" = label arriba del campo (default). \"floating\" = label clásico MUI dentro del borde */\n labelPosition?: LabelPosition;\n readOnly?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Input`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFInputProps extends BaseInputProps {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos (ej. reset de municipio al cambiar\n * departamento). NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: string | number) => void;\n value?: never;\n onChange?: never;\n}\n\nexport interface ControlledInputProps extends BaseInputProps {\n name?: string;\n control?: never;\n validation?: never;\n value: string | number;\n onChange: (value: string | number) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type InputProps = RHFInputProps | ControlledInputProps;\n\nexport const Input: React.FC<InputProps> = (props) => {\n const {\n type = 'text',\n variant = 'outlined',\n size = 'small',\n borderRadius = 10,\n labelPosition = 'outside',\n preset,\n min,\n max,\n maxLength,\n readOnly,\n inputProps,\n slotProps,\n sx,\n onBlur,\n ...rest\n } = props as ControlledInputProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Input', preset, theme);\n\n const finalSlotProps = buildSlotProps(\n type,\n min,\n max,\n maxLength,\n slotProps,\n inputProps,\n readOnly,\n );\n const mergedSx = [\n buildInputSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } = props as RHFInputProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n render={({ field, fieldState: { error } }) => (\n <TextField\n fullWidth\n {...rest}\n name={field.name}\n value={field.value ?? ''}\n onChange={(e) => {\n const parsed = parseValue(e.target.value, type);\n field.onChange(parsed);\n onValueChange?.(parsed);\n }}\n onBlur={(e) => {\n field.onBlur();\n onBlur?.(e);\n }}\n inputRef={field.ref}\n type={type}\n variant={variant}\n size={size}\n slotProps={finalSlotProps}\n sx={mergedSx}\n error={!!error || rest.error}\n helperText={error?.message ?? rest.helperText}\n />\n )}\n />\n );\n }\n\n const { value, onChange } = props as ControlledInputProps;\n return (\n <TextField\n fullWidth\n {...rest}\n value={value ?? ''}\n onChange={(e) => onChange(parseValue(e.target.value, type))}\n onBlur={onBlur}\n type={type}\n variant={variant}\n size={size}\n slotProps={finalSlotProps}\n sx={mergedSx}\n />\n );\n};\n\nexport default Input;\n"],"names":["buildFormFieldSx","FIELD_INPUT_PADDING_Y","useTheme","resolvePreset","jsx","Controller","TextField","_a"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Input-rVVhI_wk.js","sources":["../src/components/Input/Input.helpers.ts","../src/components/Input/Input.sx.ts","../src/components/Input/Input.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport type { TextFieldProps } from '@mui/material';\nimport type { InputType } from './Input';\n\n/**\n * Convierte el valor raw del evento al tipo apropiado.\n * Para type=\"number\" intenta parsear a número; si falla, devuelve el raw\n * (permite estados intermedios como \"\" o \"-\" mientras el usuario tipea).\n */\nexport const parseValue = (raw: string, type: InputType): string | number => {\n if (type !== 'number') return raw;\n if (raw === '' || raw === '-') return raw;\n const n = parseFloat(raw);\n return isNaN(n) ? raw : n;\n};\n\n/**\n * Construye los slotProps del TextField consolidando htmlInput + inputLabel.\n * Maneja los atributos min/max cuando type=\"number\", maxLength y readOnly.\n */\nexport const buildSlotProps = (\n type: InputType,\n min: number | undefined,\n max: number | undefined,\n maxLength: number | undefined,\n customSlotProps: TextFieldProps['slotProps'],\n customInputProps: InputHTMLAttributes<HTMLInputElement> | undefined,\n readOnly?: boolean,\n): TextFieldProps['slotProps'] => {\n const numberAttrs =\n type === 'number'\n ? { min: min ?? Number.NEGATIVE_INFINITY, ...(max !== undefined && { max }) }\n : {};\n\n return {\n ...customSlotProps,\n htmlInput: {\n ...customInputProps,\n ...(customSlotProps as any)?.htmlInput,\n ...numberAttrs,\n ...(maxLength !== undefined && { maxLength }),\n ...(readOnly && { readOnly: true }),\n },\n // Dejamos que MUI maneje el shrink nativamente (animación inside → up).\n // El consumidor puede forzar shrink con slotProps.inputLabel.shrink=true si lo necesita.\n inputLabel: {\n ...(customSlotProps as any)?.inputLabel,\n },\n };\n};\n","import type { TextFieldProps } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport { FIELD_INPUT_PADDING_Y } from '../../theme/tokens';\nimport type { LabelPosition } from './Input';\n\n/**\n * Builder de sx para el Input. Usa el builder compartido\n * `buildFormFieldSx` y añade overrides específicos de TextField\n * (padding del input base, filled, standard).\n */\nexport const buildInputSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): TextFieldProps['sx'] => {\n const radius = typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n return buildFormFieldSx({\n borderRadius,\n labelPosition,\n extraOutsideSx: {\n '& .MuiInputBase-input': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n\n // Filled: quitar el padding-top reservado para el label flotante dentro.\n '& .MuiFilledInput-root': {\n paddingTop: 0,\n borderRadius: `${radius} ${radius} 0 0`,\n },\n '& .MuiFilledInput-input': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n },\n\n // Standard: quitar el margin-top reservado para el label flotante.\n '& .MuiInput-root': {\n marginTop: 0,\n },\n },\n });\n};\n","import { TextField, type TextFieldProps } from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { parseValue, buildSlotProps } from './Input.helpers';\nimport { buildInputSx } from './Input.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type InputType =\n | 'text' | 'number' | 'email' | 'password' | 'tel'\n | 'url' | 'search' | 'date' | 'datetime-local'\n | 'month' | 'week' | 'time' | 'color';\n\nexport type LabelPosition = 'outside' | 'floating';\n\n// ── Props base (todo lo común entre RHF y controlado) ────────────────────\nexport interface BaseInputProps\n extends Omit<TextFieldProps, 'value' | 'onChange' | 'type'> {\n type?: InputType;\n min?: number;\n max?: number;\n maxLength?: number;\n /** Border radius del input. Default: 10 */\n borderRadius?: number | string;\n /** \"outside\" = label arriba del campo (default). \"floating\" = label clásico MUI dentro del borde */\n labelPosition?: LabelPosition;\n readOnly?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Input`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFInputProps extends BaseInputProps {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos (ej. reset de municipio al cambiar\n * departamento). NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: string | number) => void;\n value?: never;\n onChange?: never;\n}\n\nexport interface ControlledInputProps extends BaseInputProps {\n name?: string;\n control?: never;\n validation?: never;\n value: string | number;\n onChange: (value: string | number) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type InputProps = RHFInputProps | ControlledInputProps;\n\nexport const Input: React.FC<InputProps> = (props) => {\n const {\n type = 'text',\n variant = 'outlined',\n size = 'small',\n borderRadius = 10,\n labelPosition = 'outside',\n preset,\n min,\n max,\n maxLength,\n readOnly,\n inputProps,\n slotProps,\n sx,\n onBlur,\n ...rest\n } = props as ControlledInputProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Input', preset, theme);\n\n const finalSlotProps = buildSlotProps(\n type,\n min,\n max,\n maxLength,\n slotProps,\n inputProps,\n readOnly,\n );\n const mergedSx = [\n buildInputSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } = props as RHFInputProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n render={({ field, fieldState: { error } }) => (\n <TextField\n fullWidth\n {...rest}\n name={field.name}\n value={field.value ?? ''}\n onChange={(e) => {\n const parsed = parseValue(e.target.value, type);\n field.onChange(parsed);\n onValueChange?.(parsed);\n }}\n onBlur={(e) => {\n field.onBlur();\n onBlur?.(e);\n }}\n inputRef={field.ref}\n type={type}\n variant={variant}\n size={size}\n slotProps={finalSlotProps}\n sx={mergedSx}\n error={!!error || rest.error}\n helperText={error?.message ?? rest.helperText}\n />\n )}\n />\n );\n }\n\n const { value, onChange } = props as ControlledInputProps;\n return (\n <TextField\n fullWidth\n {...rest}\n value={value ?? ''}\n onChange={(e) => onChange(parseValue(e.target.value, type))}\n onBlur={onBlur}\n type={type}\n variant={variant}\n size={size}\n slotProps={finalSlotProps}\n sx={mergedSx}\n />\n );\n};\n\nexport default Input;\n"],"names":["_a"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select-B6jE3WH_.cjs","sources":["../src/components/Select/Select.sx.ts","../src/components/Select/Select.helpers.ts","../src/components/Select/_parts/SelectMenuItem.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["import type { SelectProps as MuiSelectProps } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport type { LabelPosition } from './Select';\n\n/**\n * Builder de sx para el Select. Usa el builder compartido\n * `buildFormFieldSx`. El Select no necesita overrides específicos.\n */\nexport const buildSelectSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): MuiSelectProps['sx'] =>\n buildFormFieldSx({ borderRadius, labelPosition }) as MuiSelectProps['sx'];\n","import type { SelectOption } from './Select';\n\n/**\n * Agrupa opciones por la propiedad `group`. Las opciones sin group caen\n * bajo la key especial `__default`. Devuelve un Record para iterar en orden\n * de inserción con Object.entries.\n */\nexport const groupOptions = (\n options: SelectOption[],\n): Record<string, SelectOption[]> => {\n const groups: Record<string, SelectOption[]> = {};\n options.forEach((opt) => {\n const group = opt.group || '__default';\n if (!groups[group]) groups[group] = [];\n groups[group].push(opt);\n });\n return groups;\n};\n\n/**\n * Normaliza el valor single al shape que espera MUI Select: string vacío si\n * el valor es `null`/`undefined`.\n */\nexport const normalizeSelectValue = <T>(value: T | null | undefined): T | '' =>\n (value ?? '') as T | '';\n\n/** `true` si el valor está vacío (para shrink del label + placeholder). */\nexport const isSelectValueEmpty = (normalizedValue: unknown): boolean =>\n normalizedValue === '' ||\n normalizedValue === null ||\n normalizedValue === undefined;\n","import React from 'react';\nimport { ListItemIcon, MenuItem } from '@mui/material';\nimport CheckIcon from '@mui/icons-material/Check';\n\nimport type { SelectOption, RenderOptionItem } from '../Select';\n\ninterface RenderSelectMenuItemArgs {\n option: SelectOption;\n selected: boolean;\n customRender?: RenderOptionItem | null;\n}\n\n/**\n * Render helper (no componente) que devuelve un <MenuItem> listo para\n * colocarse como hijo directo del <MuiSelect>. Se implementa como función\n * y no como componente porque MUI Select inspecciona `props.value` de sus\n * children para resolver la selección, y envolverlo en un componente extra\n * rompe esa detección.\n *\n * Incluye el icono de check a la izquierda cuando `selected` es true. Si el\n * consumer pasó un `<Option>{(opt) => ...}</Option>`, usa ese render para el\n * contenido principal; de lo contrario muestra `option.label`.\n */\nexport const renderSelectMenuItem = ({\n option,\n selected,\n customRender,\n}: RenderSelectMenuItemArgs): React.ReactElement => (\n <MenuItem\n key={String(option.value)}\n value={option.value}\n disabled={option.disabled}\n selected={selected}\n >\n <ListItemIcon sx={{ minWidth: 32 }}>\n {selected && <CheckIcon color=\"success\" fontSize=\"small\" />}\n </ListItemIcon>\n {customRender ? customRender(option) : option.label}\n </MenuItem>\n);\n","import {\n Children,\n isValidElement,\n useMemo,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n FormControl,\n FormHelperText,\n InputLabel,\n ListSubheader,\n OutlinedInput,\n Select as MuiSelect,\n Typography,\n type SelectChangeEvent,\n type SelectProps as MuiSelectProps,\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildSelectSx } from './Select.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport {\n groupOptions,\n isSelectValueEmpty,\n normalizeSelectValue,\n} from './Select.helpers';\nimport { renderSelectMenuItem } from './_parts/SelectMenuItem';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport interface SelectOption {\n value: string | number;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any;\n}\n\nexport type LabelPosition = 'outside' | 'floating';\nexport type SelectSize = 'small' | 'medium';\n\n// ── Render slots ─────────────────────────────────────────────────────────\nexport type RenderOptionItem = (item: SelectOption) => ReactNode;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport interface OptionProps {\n children: RenderOptionItem;\n}\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport interface BaseSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> {\n label?: string;\n options?: SelectOption[];\n defaultValue?: TValue;\n size?: SelectSize;\n placeholder?: string;\n children?: ReactElement<{ children: RenderOptionItem }>;\n maxHeight?: number | string;\n maxWidth?: number | string;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Border radius del input (px o string CSS). Default: 10 */\n borderRadius?: number | string;\n /**\n * Posición del label.\n * - \"outside\" (default): label arriba del input, sin animación.\n * - \"floating\": label clásico de MUI (flota dentro del notched outline).\n */\n labelPosition?: LabelPosition;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Select`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: MuiSelectProps['sx'];\n className?: string;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente tiene generics propios (como `TValue` acá), TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda.\n // El `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del Select.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos (ej. reset de municipio al cambiar\n * departamento). NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: TValue) => void;\n value?: never;\n onChange?: never;\n}\n\nexport interface StandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n name?: string;\n control?: never;\n validation?: never;\n value: TValue;\n onChange: (val: TValue) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type SelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> = RHFSelectProps<TValue> | StandardSelectProps<TValue>;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport function Option(_props: OptionProps) {\n return null;\n}\nOption.displayName = 'Option';\n\n// ── Componente ───────────────────────────────────────────────────────────\nexport function Select<\n TValue extends SelectOption['value'] = SelectOption['value'],\n>(props: SelectProps<TValue>) {\n const {\n label,\n options = [],\n defaultValue,\n size = 'small',\n placeholder,\n children,\n maxHeight = 300,\n maxWidth,\n disabled = false,\n error = false,\n helperText,\n borderRadius = 10,\n labelPosition = 'outside',\n preset,\n sx,\n className,\n // Separamos estos aunque no se usen directamente acá — evita que lleguen\n // al DOM del MuiSelect via `{...rest}` y generen warnings de React.\n name: _nameIgnored,\n control: _controlIgnored,\n validation: _validationIgnored,\n value: _valueIgnored,\n onChange: _onChangeIgnored,\n ...rest\n } = props as StandardSelectProps<TValue> & {\n name?: string;\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Select', preset, theme);\n\n const isRHFMode = 'control' in props && (props as RHFSelectProps<TValue>).control !== undefined;\n\n // Custom render opcional vía <Option>{item => ...}</Option>\n const customRender: RenderOptionItem | null = useMemo(() => {\n if (Children.count(children) === 1) {\n const child = Children.only(children);\n if (isValidElement(child) && (child.type as any)?.displayName === 'Option') {\n return (child.props as OptionProps).children;\n }\n }\n return null;\n }, [children]);\n\n // Focus/open tracking para el comportamiento del label \"outside\".\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const groupedOptions = useMemo(() => groupOptions(options), [options]);\n\n // Items del menú (grupos + opciones). Un solo memoizado — sin search/async.\n const buildMenuItems = (currentValue: TValue | '') => {\n const items: ReactNode[] = [];\n Object.entries(groupedOptions).forEach(([group, opts]) => {\n if (group !== '__default') {\n items.push(\n <ListSubheader key={group} disableSticky>\n {group}\n </ListSubheader>,\n );\n }\n opts.forEach((opt) => {\n const selected = currentValue === opt.value;\n items.push(\n renderSelectMenuItem({\n option: opt,\n selected,\n customRender,\n }),\n );\n });\n });\n return items;\n };\n\n const mergedSx = [\n buildSelectSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n // Render base (común a RHF y controlled)\n const renderSelect = (\n selectValue: TValue | null | undefined,\n selectOnChange: (event: SelectChangeEvent<TValue>) => void,\n onBlur?: (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void,\n inputRef?: React.Ref<HTMLInputElement>,\n rhfError?: boolean,\n rhfHelperText?: string,\n ) => {\n const finalError = !!rhfError || !!error;\n const finalHelperText = rhfHelperText ?? helperText;\n\n const inputElement =\n labelPosition === 'floating' ? (\n <OutlinedInput label={label} />\n ) : (\n <OutlinedInput />\n );\n\n const normalizedValue = normalizeSelectValue(selectValue);\n const isEmpty = isSelectValueEmpty(normalizedValue);\n\n // Shrink cuando hay valor, foco, o dropdown abierto.\n const shouldShrink = !isEmpty || isFocused || isOpen;\n // Placeholder solo cuando el label ya subió.\n const shouldDisplayPlaceholder =\n isEmpty && (isFocused || isOpen) && !!placeholder;\n\n return (\n <FormControl\n fullWidth\n size={size}\n error={finalError}\n disabled={disabled}\n className={className}\n sx={mergedSx}\n >\n {label && <InputLabel shrink={shouldShrink}>{label}</InputLabel>}\n <MuiSelect<TValue>\n value={normalizedValue as TValue}\n onChange={selectOnChange}\n onBlur={(e) => {\n setIsFocused(false);\n onBlur?.(e);\n }}\n onFocus={() => setIsFocused(true)}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n renderValue={(selected) => {\n if (isSelectValueEmpty(selected)) {\n return (\n <Typography sx={{ color: 'text.disabled' }}>\n {placeholder ?? ''}\n </Typography>\n );\n }\n const item = options.find((opt) => opt.value === selected);\n return item?.label ?? String(selected);\n }}\n displayEmpty={shouldDisplayPlaceholder}\n input={inputElement}\n disabled={disabled}\n MenuProps={{\n PaperProps: {\n style: { maxHeight, maxWidth },\n },\n }}\n inputRef={inputRef}\n {...(rest as any)}\n >\n {buildMenuItems(normalizedValue as TValue | '')}\n </MuiSelect>\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if (isRHFMode) {\n const { name, control, validation, onValueChange } = props as RHFSelectProps<TValue>;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultValue}\n render={({ field, fieldState: { error: fieldError } }) =>\n renderSelect(\n field.value ?? null,\n (e) => {\n const next = e.target.value as TValue;\n field.onChange(next);\n onValueChange?.(next);\n },\n field.onBlur,\n field.ref,\n !!fieldError,\n fieldError?.message,\n )\n }\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const { value, onChange } = props as StandardSelectProps<TValue>;\n return renderSelect(value, (e) => onChange(e.target.value as TValue));\n}\n\nexport default Select;\n"],"names":["buildFormFieldSx","jsxs","MenuItem","jsx","ListItemIcon","useTheme","resolvePreset","useMemo","Children","isValidElement","_a","useState","ListSubheader","OutlinedInput","FormControl","InputLabel","MuiSelect","Typography","FormHelperText","Controller"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select-bSVQokFX.js","sources":["../src/components/Select/Select.sx.ts","../src/components/Select/Select.helpers.ts","../src/components/Select/_parts/SelectMenuItem.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["import type { SelectProps as MuiSelectProps } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport type { LabelPosition } from './Select';\n\n/**\n * Builder de sx para el Select. Usa el builder compartido\n * `buildFormFieldSx`. El Select no necesita overrides específicos.\n */\nexport const buildSelectSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): MuiSelectProps['sx'] =>\n buildFormFieldSx({ borderRadius, labelPosition }) as MuiSelectProps['sx'];\n","import type { SelectOption } from './Select';\n\n/**\n * Agrupa opciones por la propiedad `group`. Las opciones sin group caen\n * bajo la key especial `__default`. Devuelve un Record para iterar en orden\n * de inserción con Object.entries.\n */\nexport const groupOptions = (\n options: SelectOption[],\n): Record<string, SelectOption[]> => {\n const groups: Record<string, SelectOption[]> = {};\n options.forEach((opt) => {\n const group = opt.group || '__default';\n if (!groups[group]) groups[group] = [];\n groups[group].push(opt);\n });\n return groups;\n};\n\n/**\n * Normaliza el valor single al shape que espera MUI Select: string vacío si\n * el valor es `null`/`undefined`.\n */\nexport const normalizeSelectValue = <T>(value: T | null | undefined): T | '' =>\n (value ?? '') as T | '';\n\n/** `true` si el valor está vacío (para shrink del label + placeholder). */\nexport const isSelectValueEmpty = (normalizedValue: unknown): boolean =>\n normalizedValue === '' ||\n normalizedValue === null ||\n normalizedValue === undefined;\n","import React from 'react';\nimport { ListItemIcon, MenuItem } from '@mui/material';\nimport CheckIcon from '@mui/icons-material/Check';\n\nimport type { SelectOption, RenderOptionItem } from '../Select';\n\ninterface RenderSelectMenuItemArgs {\n option: SelectOption;\n selected: boolean;\n customRender?: RenderOptionItem | null;\n}\n\n/**\n * Render helper (no componente) que devuelve un <MenuItem> listo para\n * colocarse como hijo directo del <MuiSelect>. Se implementa como función\n * y no como componente porque MUI Select inspecciona `props.value` de sus\n * children para resolver la selección, y envolverlo en un componente extra\n * rompe esa detección.\n *\n * Incluye el icono de check a la izquierda cuando `selected` es true. Si el\n * consumer pasó un `<Option>{(opt) => ...}</Option>`, usa ese render para el\n * contenido principal; de lo contrario muestra `option.label`.\n */\nexport const renderSelectMenuItem = ({\n option,\n selected,\n customRender,\n}: RenderSelectMenuItemArgs): React.ReactElement => (\n <MenuItem\n key={String(option.value)}\n value={option.value}\n disabled={option.disabled}\n selected={selected}\n >\n <ListItemIcon sx={{ minWidth: 32 }}>\n {selected && <CheckIcon color=\"success\" fontSize=\"small\" />}\n </ListItemIcon>\n {customRender ? customRender(option) : option.label}\n </MenuItem>\n);\n","import {\n Children,\n isValidElement,\n useMemo,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n FormControl,\n FormHelperText,\n InputLabel,\n ListSubheader,\n OutlinedInput,\n Select as MuiSelect,\n Typography,\n type SelectChangeEvent,\n type SelectProps as MuiSelectProps,\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildSelectSx } from './Select.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport {\n groupOptions,\n isSelectValueEmpty,\n normalizeSelectValue,\n} from './Select.helpers';\nimport { renderSelectMenuItem } from './_parts/SelectMenuItem';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport interface SelectOption {\n value: string | number;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any;\n}\n\nexport type LabelPosition = 'outside' | 'floating';\nexport type SelectSize = 'small' | 'medium';\n\n// ── Render slots ─────────────────────────────────────────────────────────\nexport type RenderOptionItem = (item: SelectOption) => ReactNode;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport interface OptionProps {\n children: RenderOptionItem;\n}\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport interface BaseSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> {\n label?: string;\n options?: SelectOption[];\n defaultValue?: TValue;\n size?: SelectSize;\n placeholder?: string;\n children?: ReactElement<{ children: RenderOptionItem }>;\n maxHeight?: number | string;\n maxWidth?: number | string;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Border radius del input (px o string CSS). Default: 10 */\n borderRadius?: number | string;\n /**\n * Posición del label.\n * - \"outside\" (default): label arriba del input, sin animación.\n * - \"floating\": label clásico de MUI (flota dentro del notched outline).\n */\n labelPosition?: LabelPosition;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Select`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: MuiSelectProps['sx'];\n className?: string;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente tiene generics propios (como `TValue` acá), TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda.\n // El `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del Select.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos (ej. reset de municipio al cambiar\n * departamento). NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: TValue) => void;\n value?: never;\n onChange?: never;\n}\n\nexport interface StandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n name?: string;\n control?: never;\n validation?: never;\n value: TValue;\n onChange: (val: TValue) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type SelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> = RHFSelectProps<TValue> | StandardSelectProps<TValue>;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport function Option(_props: OptionProps) {\n return null;\n}\nOption.displayName = 'Option';\n\n// ── Componente ───────────────────────────────────────────────────────────\nexport function Select<\n TValue extends SelectOption['value'] = SelectOption['value'],\n>(props: SelectProps<TValue>) {\n const {\n label,\n options = [],\n defaultValue,\n size = 'small',\n placeholder,\n children,\n maxHeight = 300,\n maxWidth,\n disabled = false,\n error = false,\n helperText,\n borderRadius = 10,\n labelPosition = 'outside',\n preset,\n sx,\n className,\n // Separamos estos aunque no se usen directamente acá — evita que lleguen\n // al DOM del MuiSelect via `{...rest}` y generen warnings de React.\n name: _nameIgnored,\n control: _controlIgnored,\n validation: _validationIgnored,\n value: _valueIgnored,\n onChange: _onChangeIgnored,\n ...rest\n } = props as StandardSelectProps<TValue> & {\n name?: string;\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Select', preset, theme);\n\n const isRHFMode = 'control' in props && (props as RHFSelectProps<TValue>).control !== undefined;\n\n // Custom render opcional vía <Option>{item => ...}</Option>\n const customRender: RenderOptionItem | null = useMemo(() => {\n if (Children.count(children) === 1) {\n const child = Children.only(children);\n if (isValidElement(child) && (child.type as any)?.displayName === 'Option') {\n return (child.props as OptionProps).children;\n }\n }\n return null;\n }, [children]);\n\n // Focus/open tracking para el comportamiento del label \"outside\".\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const groupedOptions = useMemo(() => groupOptions(options), [options]);\n\n // Items del menú (grupos + opciones). Un solo memoizado — sin search/async.\n const buildMenuItems = (currentValue: TValue | '') => {\n const items: ReactNode[] = [];\n Object.entries(groupedOptions).forEach(([group, opts]) => {\n if (group !== '__default') {\n items.push(\n <ListSubheader key={group} disableSticky>\n {group}\n </ListSubheader>,\n );\n }\n opts.forEach((opt) => {\n const selected = currentValue === opt.value;\n items.push(\n renderSelectMenuItem({\n option: opt,\n selected,\n customRender,\n }),\n );\n });\n });\n return items;\n };\n\n const mergedSx = [\n buildSelectSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n // Render base (común a RHF y controlled)\n const renderSelect = (\n selectValue: TValue | null | undefined,\n selectOnChange: (event: SelectChangeEvent<TValue>) => void,\n onBlur?: (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void,\n inputRef?: React.Ref<HTMLInputElement>,\n rhfError?: boolean,\n rhfHelperText?: string,\n ) => {\n const finalError = !!rhfError || !!error;\n const finalHelperText = rhfHelperText ?? helperText;\n\n const inputElement =\n labelPosition === 'floating' ? (\n <OutlinedInput label={label} />\n ) : (\n <OutlinedInput />\n );\n\n const normalizedValue = normalizeSelectValue(selectValue);\n const isEmpty = isSelectValueEmpty(normalizedValue);\n\n // Shrink cuando hay valor, foco, o dropdown abierto.\n const shouldShrink = !isEmpty || isFocused || isOpen;\n // Placeholder solo cuando el label ya subió.\n const shouldDisplayPlaceholder =\n isEmpty && (isFocused || isOpen) && !!placeholder;\n\n return (\n <FormControl\n fullWidth\n size={size}\n error={finalError}\n disabled={disabled}\n className={className}\n sx={mergedSx}\n >\n {label && <InputLabel shrink={shouldShrink}>{label}</InputLabel>}\n <MuiSelect<TValue>\n value={normalizedValue as TValue}\n onChange={selectOnChange}\n onBlur={(e) => {\n setIsFocused(false);\n onBlur?.(e);\n }}\n onFocus={() => setIsFocused(true)}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n renderValue={(selected) => {\n if (isSelectValueEmpty(selected)) {\n return (\n <Typography sx={{ color: 'text.disabled' }}>\n {placeholder ?? ''}\n </Typography>\n );\n }\n const item = options.find((opt) => opt.value === selected);\n return item?.label ?? String(selected);\n }}\n displayEmpty={shouldDisplayPlaceholder}\n input={inputElement}\n disabled={disabled}\n MenuProps={{\n PaperProps: {\n style: { maxHeight, maxWidth },\n },\n }}\n inputRef={inputRef}\n {...(rest as any)}\n >\n {buildMenuItems(normalizedValue as TValue | '')}\n </MuiSelect>\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if (isRHFMode) {\n const { name, control, validation, onValueChange } = props as RHFSelectProps<TValue>;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultValue}\n render={({ field, fieldState: { error: fieldError } }) =>\n renderSelect(\n field.value ?? null,\n (e) => {\n const next = e.target.value as TValue;\n field.onChange(next);\n onValueChange?.(next);\n },\n field.onBlur,\n field.ref,\n !!fieldError,\n fieldError?.message,\n )\n }\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const { value, onChange } = props as StandardSelectProps<TValue>;\n return renderSelect(value, (e) => onChange(e.target.value as TValue));\n}\n\nexport default Select;\n"],"names":["_a","MuiSelect"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"formField.sx-8_QRnKxv.js","sources":["../src/components/_shared/formField.sx.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nimport {\n LABEL_COLOR_FILLED,\n LABEL_COLOR_FOCUSED,\n LABEL_COLOR_REST,\n LABEL_FONT_WEIGHT_FILLED,\n LABEL_MARGIN_TOP,\n LABEL_SHRINK_TRANSFORM,\n LABEL_TRANSFORM_ORIGIN,\n LABEL_TRANSITION,\n} from '../../theme/tokens';\n\nexport type LabelPosition = 'outside' | 'floating';\n\nexport interface BuildFormFieldSxOptions {\n borderRadius: number | string;\n labelPosition: LabelPosition;\n /**\n * Si es `true`, los selectores incluyen también la API nueva de MUI X\n * Pickers (v8): `MuiPickersInputBase-root`, `MuiPickersOutlinedInput-*`.\n */\n includePickersApi?: boolean;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'outside'.\n * Usar para paddings específicos del componente (p.ej. MuiAutocomplete-input).\n */\n extraOutsideSx?: Record<string, any>;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'floating'.\n */\n extraFloatingSx?: Record<string, any>;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Builder del sx compartido por todos los campos de formulario\n * (Input/Select/Autocomplete/DatePicker/DateTimePicker).\n *\n * Produce:\n * - en modo \"floating\": sólo el border-radius del outlined input;\n * - en modo \"outside\": todo el pack (margen superior, label flotante afuera,\n * input base, notched outline oculto, helper text sin margen izquierdo).\n *\n * Componentes con paddings o selectores propios pueden inyectarlos vía\n * `extraOutsideSx` / `extraFloatingSx`.\n */\nexport const buildFormFieldSx = ({\n borderRadius,\n labelPosition,\n includePickersApi = false,\n extraOutsideSx,\n extraFloatingSx,\n}: BuildFormFieldSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n // ── Selectores (alternan según la API de pickers) ────────────────────\n const outlinedRootSelector = includePickersApi\n ? '& .MuiOutlinedInput-root, & .MuiPickersOutlinedInput-root'\n : '& .MuiOutlinedInput-root';\n\n const inputBaseSelector = includePickersApi\n ? '& .MuiInputBase-root, & .MuiPickersInputBase-root'\n : '& .MuiInputBase-root';\n\n const notchedOutlineSelector = includePickersApi\n ? '& .MuiOutlinedInput-notchedOutline, & .MuiPickersOutlinedInput-notchedOutline'\n : '& .MuiOutlinedInput-notchedOutline';\n\n // ── Floating ─────────────────────────────────────────────────────────\n if (labelPosition === 'floating') {\n return {\n [outlinedRootSelector]: { borderRadius: radius },\n ...(extraFloatingSx ?? {}),\n };\n }\n\n // ── Outside ──────────────────────────────────────────────────────────\n return {\n marginTop: LABEL_MARGIN_TOP,\n\n '& .MuiInputLabel-root': {\n color: LABEL_COLOR_REST,\n transition: LABEL_TRANSITION,\n\n // Estado shrunk (focused o con valor): flota ARRIBA del input.\n '&.MuiInputLabel-shrink': {\n transform: LABEL_SHRINK_TRANSFORM,\n transformOrigin: LABEL_TRANSFORM_ORIGIN,\n color: LABEL_COLOR_FILLED,\n fontWeight: LABEL_FONT_WEIGHT_FILLED,\n },\n\n '&.Mui-focused': { color: LABEL_COLOR_FOCUSED },\n },\n\n // Input base — centra verticalmente (clásico y, si aplica, pickers).\n [inputBaseSelector]: {\n borderRadius: radius,\n display: 'flex',\n alignItems: 'center',\n },\n\n // El label flota afuera: ocultar legend del notch.\n [notchedOutlineSelector]: {\n top: 0,\n '& legend': { display: 'none' },\n },\n\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n\n ...(extraOutsideSx ?? {}),\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkCA,MAAM,WAAW,CAAC,iBAChB,OAAO,iBAAiB,WAAW,GAAG,YAAY,OAAO;AAcpD,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AACF,MAA+C;AAC7C,QAAM,SAAS,SAAS,YAAY;AAGpC,QAAM,uBAAuB,oBACzB,8DACA;AAEJ,QAAM,oBAAoB,oBACtB,sDACA;AAEJ,QAAM,yBAAyB,oBAC3B,kFACA;AAGJ,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,MACL,CAAC,oBAAoB,GAAG,EAAE,cAAc,OAAA;AAAA,OACpC,4CAAmB,CAAA;AAAA,EAE3B;AAGA,SAAO;AAAA,IACL,WAAW;AAAA,IAEX,yBAAyB;AAAA,MACvB,OAAO;AAAA,MACP,YAAY;AAAA;AAAA,MAGZ,0BAA0B;AAAA,QACxB,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA;AAAA,MAGd,iBAAiB,EAAE,OAAO,oBAAA;AAAA,IAAoB;AAAA;AAAA,IAIhD,CAAC,iBAAiB,GAAG;AAAA,MACnB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,IAAA;AAAA;AAAA,IAId,CAAC,sBAAsB,GAAG;AAAA,MACxB,KAAK;AAAA,MACL,YAAY,EAAE,SAAS,OAAA;AAAA,IAAO;AAAA,IAGhC,6BAA6B;AAAA,MAC3B,YAAY;AAAA,IAAA;AAAA,KAGV,0CAAkB,CAAA;AAE1B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"formField.sx-BAX7KwMR.cjs","sources":["../src/components/_shared/formField.sx.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nimport {\n LABEL_COLOR_FILLED,\n LABEL_COLOR_FOCUSED,\n LABEL_COLOR_REST,\n LABEL_FONT_WEIGHT_FILLED,\n LABEL_MARGIN_TOP,\n LABEL_SHRINK_TRANSFORM,\n LABEL_TRANSFORM_ORIGIN,\n LABEL_TRANSITION,\n} from '../../theme/tokens';\n\nexport type LabelPosition = 'outside' | 'floating';\n\nexport interface BuildFormFieldSxOptions {\n borderRadius: number | string;\n labelPosition: LabelPosition;\n /**\n * Si es `true`, los selectores incluyen también la API nueva de MUI X\n * Pickers (v8): `MuiPickersInputBase-root`, `MuiPickersOutlinedInput-*`.\n */\n includePickersApi?: boolean;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'outside'.\n * Usar para paddings específicos del componente (p.ej. MuiAutocomplete-input).\n */\n extraOutsideSx?: Record<string, any>;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'floating'.\n */\n extraFloatingSx?: Record<string, any>;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Builder del sx compartido por todos los campos de formulario\n * (Input/Select/Autocomplete/DatePicker/DateTimePicker).\n *\n * Produce:\n * - en modo \"floating\": sólo el border-radius del outlined input;\n * - en modo \"outside\": todo el pack (margen superior, label flotante afuera,\n * input base, notched outline oculto, helper text sin margen izquierdo).\n *\n * Componentes con paddings o selectores propios pueden inyectarlos vía\n * `extraOutsideSx` / `extraFloatingSx`.\n */\nexport const buildFormFieldSx = ({\n borderRadius,\n labelPosition,\n includePickersApi = false,\n extraOutsideSx,\n extraFloatingSx,\n}: BuildFormFieldSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n // ── Selectores (alternan según la API de pickers) ────────────────────\n const outlinedRootSelector = includePickersApi\n ? '& .MuiOutlinedInput-root, & .MuiPickersOutlinedInput-root'\n : '& .MuiOutlinedInput-root';\n\n const inputBaseSelector = includePickersApi\n ? '& .MuiInputBase-root, & .MuiPickersInputBase-root'\n : '& .MuiInputBase-root';\n\n const notchedOutlineSelector = includePickersApi\n ? '& .MuiOutlinedInput-notchedOutline, & .MuiPickersOutlinedInput-notchedOutline'\n : '& .MuiOutlinedInput-notchedOutline';\n\n // ── Floating ─────────────────────────────────────────────────────────\n if (labelPosition === 'floating') {\n return {\n [outlinedRootSelector]: { borderRadius: radius },\n ...(extraFloatingSx ?? {}),\n };\n }\n\n // ── Outside ──────────────────────────────────────────────────────────\n return {\n marginTop: LABEL_MARGIN_TOP,\n\n '& .MuiInputLabel-root': {\n color: LABEL_COLOR_REST,\n transition: LABEL_TRANSITION,\n\n // Estado shrunk (focused o con valor): flota ARRIBA del input.\n '&.MuiInputLabel-shrink': {\n transform: LABEL_SHRINK_TRANSFORM,\n transformOrigin: LABEL_TRANSFORM_ORIGIN,\n color: LABEL_COLOR_FILLED,\n fontWeight: LABEL_FONT_WEIGHT_FILLED,\n },\n\n '&.Mui-focused': { color: LABEL_COLOR_FOCUSED },\n },\n\n // Input base — centra verticalmente (clásico y, si aplica, pickers).\n [inputBaseSelector]: {\n borderRadius: radius,\n display: 'flex',\n alignItems: 'center',\n },\n\n // El label flota afuera: ocultar legend del notch.\n [notchedOutlineSelector]: {\n top: 0,\n '& legend': { display: 'none' },\n },\n\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n\n ...(extraOutsideSx ?? {}),\n };\n};\n"],"names":["LABEL_MARGIN_TOP","LABEL_COLOR_REST","LABEL_TRANSITION","LABEL_SHRINK_TRANSFORM","LABEL_TRANSFORM_ORIGIN","LABEL_COLOR_FILLED","LABEL_FONT_WEIGHT_FILLED","LABEL_COLOR_FOCUSED"],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,MAAM,WAAW,CAAC,iBAChB,OAAO,iBAAiB,WAAW,GAAG,YAAY,OAAO;AAcpD,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AACF,MAA+C;AAC7C,QAAM,SAAS,SAAS,YAAY;AAGpC,QAAM,uBAAuB,oBACzB,8DACA;AAEJ,QAAM,oBAAoB,oBACtB,sDACA;AAEJ,QAAM,yBAAyB,oBAC3B,kFACA;AAGJ,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,MACL,CAAC,oBAAoB,GAAG,EAAE,cAAc,OAAA;AAAA,OACpC,4CAAmB,CAAA;AAAA,EAE3B;AAGA,SAAO;AAAA,IACL,WAAWA,OAAAA;AAAAA,IAEX,yBAAyB;AAAA,MACvB,OAAOC,OAAAA;AAAAA,MACP,YAAYC,OAAAA;AAAAA;AAAAA,MAGZ,0BAA0B;AAAA,QACxB,WAAWC,OAAAA;AAAAA,QACX,iBAAiBC,OAAAA;AAAAA,QACjB,OAAOC,OAAAA;AAAAA,QACP,YAAYC,OAAAA;AAAAA,MAAA;AAAA,MAGd,iBAAiB,EAAE,OAAOC,OAAAA,oBAAA;AAAA,IAAoB;AAAA;AAAA,IAIhD,CAAC,iBAAiB,GAAG;AAAA,MACnB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,IAAA;AAAA;AAAA,IAId,CAAC,sBAAsB,GAAG;AAAA,MACxB,KAAK;AAAA,MACL,YAAY,EAAE,SAAS,OAAA;AAAA,IAAO;AAAA,IAGhC,6BAA6B;AAAA,MAC3B,YAAY;AAAA,IAAA;AAAA,KAGV,0CAAkB,CAAA;AAE1B;;"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes