@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
@@ -36,7 +36,7 @@ import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
36
36
  import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
37
37
  import { DatePicker as DatePicker$1 } from "@mui/x-date-pickers/DatePicker";
38
38
  import require$$0 from "dayjs";
39
- import { b as buildFormFieldSx } from "./formField.sx-8_QRnKxv.js";
39
+ import { b as buildFormFieldSx } from "./formField.sx-Cmhj9iGb.js";
40
40
  import { F as FIELD_INPUT_PADDING_Y } from "./tokens-BRrcP_p_.js";
41
41
  import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
42
42
  var enGb$1 = { exports: {} };
@@ -62,10 +62,11 @@ function requireEnGb() {
62
62
  return enGb$1.exports;
63
63
  }
64
64
  requireEnGb();
65
- const buildDatePickerSx = (borderRadius, labelPosition) => buildFormFieldSx({
65
+ const buildDatePickerSx = (borderRadius, labelPosition, layoutOnly = false) => buildFormFieldSx({
66
66
  borderRadius,
67
67
  labelPosition,
68
68
  includePickersApi: true,
69
+ layoutOnly,
69
70
  extraOutsideSx: {
70
71
  "& .MuiInputBase-input": {
71
72
  paddingTop: FIELD_INPUT_PADDING_Y,
@@ -141,7 +142,7 @@ const DatePicker = (_a) => {
141
142
  const theme = useTheme();
142
143
  const presetSx = resolvePreset("DatePicker", preset, theme);
143
144
  const mergedSx = [
144
- buildDatePickerSx(borderRadius, labelPosition),
145
+ buildDatePickerSx(borderRadius, labelPosition, !!presetSx),
145
146
  ...presetSx ? [presetSx] : [],
146
147
  ...Array.isArray(sx) ? sx : sx ? [sx] : []
147
148
  ];
@@ -176,4 +177,4 @@ const DatePicker = (_a) => {
176
177
  export {
177
178
  DatePicker as D
178
179
  };
179
- //# sourceMappingURL=DatePicker-D0Bz9Ryg.js.map
180
+ //# sourceMappingURL=DatePicker-kWjQEXIQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker-kWjQEXIQ.js","sources":["../node_modules/dayjs/locale/en-gb.js","../src/components/DatePicker/DatePicker.sx.ts","../src/components/DatePicker/DatePicker.helpers.ts","../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["!function(e,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],a):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_gb=a(e.dayjs)}(this,(function(e){\"use strict\";function a(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=a(e),_={name:\"en-gb\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekStart:1,yearStart:4,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},ordinal:function(e){var a=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(a[(t-20)%10]||a[t]||a[0])+\"]\"}};return t.default.locale(_,null,!0),_}));","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 './DatePicker';\n\n/**\n * Builder de sx para el DatePicker. Reutiliza `buildFormFieldSx` con\n * `includePickersApi: true` para cubrir tanto la API clásica (MuiInputBase /\n * MuiOutlinedInput) como la nueva (MuiPickersInputBase / MuiPickersOutlinedInput)\n * del DatePicker de MUI X v8.\n */\nexport const buildDatePickerSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n layoutOnly = false,\n): SxProps<Theme> =>\n buildFormFieldSx({\n borderRadius,\n labelPosition,\n includePickersApi: true,\n layoutOnly,\n extraOutsideSx: {\n '& .MuiInputBase-input': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n\n // Secciones editables del PickersTextField (DD/MM/YYYY en API nueva).\n '& .MuiPickersInputBase-sectionsContainer': {\n paddingTop: FIELD_INPUT_PADDING_Y,\n paddingBottom: FIELD_INPUT_PADDING_Y,\n },\n },\n });\n","import type { DateValidationError } from '@mui/x-date-pickers/models';\n\n/**\n * Traduce el código de error del DatePicker de MUI X a un mensaje en español.\n * Se usa internamente para poblar `helperText` cuando hay error de validación\n * y el consumer no pasó un mensaje propio.\n */\nexport const getDateValidationMessage = (\n error: DateValidationError | null,\n): string => {\n switch (error) {\n case 'minDate':\n case 'maxDate':\n return 'Fecha fuera del rango permitido';\n case 'invalidDate':\n return 'Formato de fecha inválido';\n case 'disableFuture':\n return 'No se permiten fechas futuras';\n case 'disablePast':\n return 'No se permiten fechas pasadas';\n default:\n return '';\n }\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 DatePicker as MuiDatePicker,\n type DatePickerProps as MuiDatePickerProps,\n} from '@mui/x-date-pickers/DatePicker';\nimport { DateValidationError } from '@mui/x-date-pickers/models';\nimport { Dayjs } from 'dayjs';\nimport 'dayjs/locale/en-gb';\n\nimport { buildDatePickerSx } from './DatePicker.sx';\nimport { getDateValidationMessage } from './DatePicker.helpers';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type LabelPosition = 'outside' | 'floating';\nexport type DatePickerSize = 'small' | 'medium';\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport interface BaseDatePickerProps\n extends Omit<MuiDatePickerProps, 'value' | 'onChange' | 'slotProps'> {\n label?: string;\n minDate?: Dayjs;\n maxDate?: Dayjs;\n disabled?: boolean;\n readOnly?: boolean;\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 /** Tamaño del TextField renderizado. Default: 'small' */\n size?: DatePickerSize;\n /** helperText pasado al TextField (se sobrescribe por el error de validación si hay). */\n helperText?: string;\n /** Error external override. */\n error?: boolean;\n /** sx que se mergea al TextField interno del picker. */\n sx?: SxProps<Theme>;\n className?: string;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.DatePicker`.\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 para el adaptador dayjs. Default: 'en-gb'. */\n adapterLocale?: string;\n /** Passthrough a slotProps.textField. */\n textFieldProps?: Record<string, any>;\n /** Passthrough completo a slotProps del MuiDatePicker. */\n slotProps?: MuiDatePickerProps['slotProps'];\n}\n\n// ── API pública ──────────────────────────────────────────────────────────\nexport interface DatePickerProps extends BaseDatePickerProps {\n selectedDate: Dayjs | null;\n onDateChange: (date: Dayjs | null) => void;\n}\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n label,\n selectedDate,\n onDateChange,\n minDate,\n maxDate,\n disabled,\n readOnly,\n borderRadius = 10,\n labelPosition = 'outside',\n size = 'small',\n helperText,\n error: errorProp,\n sx,\n className,\n preset,\n adapterLocale = 'en-gb',\n textFieldProps,\n slotProps: slotPropsProp,\n ...rest\n}) => {\n const [validationError, setValidationError] = React.useState<DateValidationError | null>(null);\n\n const validationErrorMessage = useMemo(\n () => getDateValidationMessage(validationError),\n [validationError],\n );\n\n const theme = useTheme();\n const presetSx = resolvePreset('DatePicker', preset, theme);\n\n const mergedSx = [\n buildDatePickerSx(borderRadius, labelPosition, !!presetSx),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const finalError = !!validationErrorMessage || !!errorProp;\n const finalHelperText = validationErrorMessage || helperText;\n\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={adapterLocale}>\n <MuiDatePicker\n label={label}\n value={selectedDate}\n onChange={onDateChange}\n minDate={minDate}\n maxDate={maxDate}\n onError={setValidationError}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n sx={mergedSx}\n slotProps={{\n ...slotPropsProp,\n textField: {\n fullWidth: true,\n size,\n variant: 'outlined',\n ...(slotPropsProp?.textField as Record<string, any> | undefined),\n ...textFieldProps,\n error: !!finalError,\n helperText: finalHelperText,\n } as any,\n }}\n {...rest}\n />\n </LocalizationProvider>\n );\n};\n\nexport default DatePicker;\n"],"names":["this","e","a","t","React","MuiDatePicker"],"mappings":"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","x_google_ignoreList":[0]}
@@ -37,13 +37,14 @@ const AdapterDayjs = require("@mui/x-date-pickers/AdapterDayjs");
37
37
  const LocalizationProvider = require("@mui/x-date-pickers/LocalizationProvider");
38
38
  const DateTimePicker$1 = require("@mui/x-date-pickers/DateTimePicker");
39
39
  const reactHookForm = require("react-hook-form");
40
- const formField_sx = require("./formField.sx-BAX7KwMR.cjs");
40
+ const formField_sx = require("./formField.sx-V9PLO0wv.cjs");
41
41
  const tokens = require("./tokens-jaWWNk39.cjs");
42
42
  const resolvePreset = require("./resolvePreset-CxTI6_Ln.cjs");
43
- const buildDateTimePickerSx = (borderRadius, labelPosition) => formField_sx.buildFormFieldSx({
43
+ const buildDateTimePickerSx = (borderRadius, labelPosition, layoutOnly = false) => formField_sx.buildFormFieldSx({
44
44
  borderRadius,
45
45
  labelPosition,
46
46
  includePickersApi: true,
47
+ layoutOnly,
47
48
  extraOutsideSx: {
48
49
  "& .MuiInputBase-input": {
49
50
  paddingTop: tokens.FIELD_INPUT_PADDING_Y,
@@ -147,7 +148,7 @@ const DateTimePicker = (props) => {
147
148
  const theme = styles.useTheme();
148
149
  const presetSx = resolvePreset.resolvePreset("DateTimePicker", preset, theme);
149
150
  const mergedSx = [
150
- buildDateTimePickerSx(borderRadius, labelPosition),
151
+ buildDateTimePickerSx(borderRadius, labelPosition, !!presetSx),
151
152
  ...presetSx ? [presetSx] : [],
152
153
  ...Array.isArray(sx) ? sx : [sx]
153
154
  ];
@@ -227,4 +228,4 @@ const DateTimePicker = (props) => {
227
228
  return renderPicker(selectedDateTime, onDateTimeChange);
228
229
  };
229
230
  exports.DateTimePicker = DateTimePicker;
230
- //# sourceMappingURL=DateTimePicker-CTnRQCZo.cjs.map
231
+ //# sourceMappingURL=DateTimePicker-AVmtL4vS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker-AVmtL4vS.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 layoutOnly = false,\n): SxProps<Theme> =>\n buildFormFieldSx({\n borderRadius,\n labelPosition,\n includePickersApi: true,\n layoutOnly,\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, !!presetSx),\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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"}
@@ -36,13 +36,14 @@ import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
36
36
  import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
37
37
  import { DateTimePicker as DateTimePicker$1 } from "@mui/x-date-pickers/DateTimePicker";
38
38
  import { Controller } from "react-hook-form";
39
- import { b as buildFormFieldSx } from "./formField.sx-8_QRnKxv.js";
39
+ import { b as buildFormFieldSx } from "./formField.sx-Cmhj9iGb.js";
40
40
  import { F as FIELD_INPUT_PADDING_Y } from "./tokens-BRrcP_p_.js";
41
41
  import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
42
- const buildDateTimePickerSx = (borderRadius, labelPosition) => buildFormFieldSx({
42
+ const buildDateTimePickerSx = (borderRadius, labelPosition, layoutOnly = false) => buildFormFieldSx({
43
43
  borderRadius,
44
44
  labelPosition,
45
45
  includePickersApi: true,
46
+ layoutOnly,
46
47
  extraOutsideSx: {
47
48
  "& .MuiInputBase-input": {
48
49
  paddingTop: FIELD_INPUT_PADDING_Y,
@@ -146,7 +147,7 @@ const DateTimePicker = (props) => {
146
147
  const theme = useTheme();
147
148
  const presetSx = resolvePreset("DateTimePicker", preset, theme);
148
149
  const mergedSx = [
149
- buildDateTimePickerSx(borderRadius, labelPosition),
150
+ buildDateTimePickerSx(borderRadius, labelPosition, !!presetSx),
150
151
  ...presetSx ? [presetSx] : [],
151
152
  ...Array.isArray(sx) ? sx : [sx]
152
153
  ];
@@ -228,4 +229,4 @@ const DateTimePicker = (props) => {
228
229
  export {
229
230
  DateTimePicker as D
230
231
  };
231
- //# sourceMappingURL=DateTimePicker-77w-9TP5.js.map
232
+ //# sourceMappingURL=DateTimePicker-BO76eZ0P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker-BO76eZ0P.js","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 layoutOnly = false,\n): SxProps<Theme> =>\n buildFormFieldSx({\n borderRadius,\n labelPosition,\n includePickersApi: true,\n layoutOnly,\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, !!presetSx),\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":["React","MuiDateTimePicker","_a"],"mappings":"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"}
@@ -34,7 +34,7 @@ const jsxRuntime = require("react/jsx-runtime");
34
34
  const material = require("@mui/material");
35
35
  const styles = require("@mui/material/styles");
36
36
  const reactHookForm = require("react-hook-form");
37
- const formField_sx = require("./formField.sx-BAX7KwMR.cjs");
37
+ const formField_sx = require("./formField.sx-V9PLO0wv.cjs");
38
38
  const tokens = require("./tokens-jaWWNk39.cjs");
39
39
  const resolvePreset = require("./resolvePreset-CxTI6_Ln.cjs");
40
40
  const parseValue = (raw, type) => {
@@ -52,11 +52,12 @@ const buildSlotProps = (type, min, max, maxLength, customSlotProps, customInputP
52
52
  inputLabel: __spreadValues({}, customSlotProps == null ? void 0 : customSlotProps.inputLabel)
53
53
  });
54
54
  };
55
- const buildInputSx = (borderRadius, labelPosition) => {
55
+ const buildInputSx = (borderRadius, labelPosition, layoutOnly = false) => {
56
56
  const radius = typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
57
57
  return formField_sx.buildFormFieldSx({
58
58
  borderRadius,
59
59
  labelPosition,
60
+ layoutOnly,
60
61
  extraOutsideSx: {
61
62
  "& .MuiInputBase-input": {
62
63
  paddingTop: tokens.FIELD_INPUT_PADDING_Y,
@@ -121,7 +122,7 @@ const Input = (props) => {
121
122
  readOnly
122
123
  );
123
124
  const mergedSx = [
124
- buildInputSx(borderRadius, labelPosition),
125
+ buildInputSx(borderRadius, labelPosition, !!presetSx),
125
126
  ...presetSx ? [presetSx] : [],
126
127
  ...Array.isArray(sx) ? sx : sx ? [sx] : []
127
128
  ];
@@ -183,4 +184,4 @@ const Input = (props) => {
183
184
  );
184
185
  };
185
186
  exports.Input = Input;
186
- //# sourceMappingURL=Input-jYapjJYM.cjs.map
187
+ //# sourceMappingURL=Input-5VGBxiO2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input-5VGBxiO2.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 layoutOnly = false,\n): TextFieldProps['sx'] => {\n const radius = typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n return buildFormFieldSx({\n borderRadius,\n labelPosition,\n layoutOnly,\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, !!presetSx),\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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"}
@@ -33,7 +33,7 @@ import { jsx } from "react/jsx-runtime";
33
33
  import { TextField } from "@mui/material";
34
34
  import { useTheme } from "@mui/material/styles";
35
35
  import { Controller } from "react-hook-form";
36
- import { b as buildFormFieldSx } from "./formField.sx-8_QRnKxv.js";
36
+ import { b as buildFormFieldSx } from "./formField.sx-Cmhj9iGb.js";
37
37
  import { F as FIELD_INPUT_PADDING_Y } from "./tokens-BRrcP_p_.js";
38
38
  import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
39
39
  const parseValue = (raw, type) => {
@@ -51,11 +51,12 @@ const buildSlotProps = (type, min, max, maxLength, customSlotProps, customInputP
51
51
  inputLabel: __spreadValues({}, customSlotProps == null ? void 0 : customSlotProps.inputLabel)
52
52
  });
53
53
  };
54
- const buildInputSx = (borderRadius, labelPosition) => {
54
+ const buildInputSx = (borderRadius, labelPosition, layoutOnly = false) => {
55
55
  const radius = typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
56
56
  return buildFormFieldSx({
57
57
  borderRadius,
58
58
  labelPosition,
59
+ layoutOnly,
59
60
  extraOutsideSx: {
60
61
  "& .MuiInputBase-input": {
61
62
  paddingTop: FIELD_INPUT_PADDING_Y,
@@ -120,7 +121,7 @@ const Input = (props) => {
120
121
  readOnly
121
122
  );
122
123
  const mergedSx = [
123
- buildInputSx(borderRadius, labelPosition),
124
+ buildInputSx(borderRadius, labelPosition, !!presetSx),
124
125
  ...presetSx ? [presetSx] : [],
125
126
  ...Array.isArray(sx) ? sx : sx ? [sx] : []
126
127
  ];
@@ -184,4 +185,4 @@ const Input = (props) => {
184
185
  export {
185
186
  Input as I
186
187
  };
187
- //# sourceMappingURL=Input-rVVhI_wk.js.map
188
+ //# sourceMappingURL=Input-BVaetLBc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input-BVaetLBc.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 layoutOnly = false,\n): TextFieldProps['sx'] => {\n const radius = typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n return buildFormFieldSx({\n borderRadius,\n labelPosition,\n layoutOnly,\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, !!presetSx),\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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"}
package/dist/README.md ADDED
@@ -0,0 +1,243 @@
1
+ # @soyfri/shared-library
2
+
3
+ Una librería de componentes React reutilizables construida con Material-UI, TypeScript y Tailwind CSS, diseñada para proporcionar componentes UI consistentes y bien documentados.
4
+
5
+ ## 📋 Tabla de Contenidos
6
+
7
+ - [Características](#características)
8
+ - [Instalación](#instalación)
9
+ - [Uso](#uso)
10
+ - [Componentes Disponibles](#componentes-disponibles)
11
+ - [Desarrollo](#desarrollo)
12
+ - [Scripts Disponibles](#scripts-disponibles)
13
+ - [Storybook](#storybook)
14
+ - [Testing](#testing)
15
+ - [Tecnologías](#tecnologías)
16
+ - [Estructura del Proyecto](#estructura-del-proyecto)
17
+
18
+ ## ✨ Características
19
+
20
+ - 🎨 **Componentes tipados**: Todos los componentes están construidos con TypeScript para mayor seguridad de tipos
21
+ - 📚 **Documentación con Storybook**: Cada componente incluye historias interactivas y documentación
22
+ - 🎯 **Material-UI**: Basado en Material-UI para un diseño consistente y accesible
23
+ - 🌈 **Tailwind CSS**: Integración con Tailwind para estilos utilitarios
24
+ - 🧪 **Testing**: Configurado con Vitest y Playwright para testing de componentes
25
+ - 📦 **Build optimizado**: Configuración con Rollup para generar builds ESM y CommonJS
26
+
27
+ ## 📦 Instalación
28
+
29
+ ```bash
30
+ npm install @soyfri/shared-library
31
+ ```
32
+
33
+ ## 🚀 Uso
34
+
35
+ ```tsx
36
+ import { Button, Table, Select } from '@soyfri/shared-library';
37
+ import '@soyfri/shared-library/dist/styles.css';
38
+
39
+ function App() {
40
+ return (
41
+ <div>
42
+ <Button variant="contained" color="primary">
43
+ Mi Botón
44
+ </Button>
45
+ </div>
46
+ );
47
+ }
48
+ ```
49
+
50
+ ## 🧩 Componentes Disponibles
51
+
52
+ ### Button
53
+ Componente de botón personalizable basado en Material-UI con soporte para iconos, diferentes tamaños y estados.
54
+
55
+ **Características:**
56
+ - Variantes: `text`, `outlined`, `contained`
57
+ - Tamaños: `small`, `medium`, `large`
58
+ - Soporte para iconos de inicio y fin
59
+ - Estados de carga
60
+ - Completamente tipado
61
+
62
+ ### Table
63
+ Componente de tabla flexible con paginación interna y externa, ordenamiento y renderizado personalizado de columnas.
64
+
65
+ **Características:**
66
+ - Paginación interna automática
67
+ - Paginación externa controlada
68
+ - Columnas personalizables con renderizado custom
69
+ - Soporte para componentes complejos en celdas
70
+ - Completamente tipado con generics
71
+
72
+ ### Select
73
+ Componente select avanzado con soporte para selección múltiple, filtros, agrupación y renderizado personalizado.
74
+
75
+ **Características:**
76
+ - Selección simple y múltiple
77
+ - Filtrado de opciones
78
+ - Agrupación de opciones
79
+ - Renderizado personalizado con avatars
80
+ - Placeholder configurable
81
+
82
+ ### Avatar
83
+ Componente para mostrar avatares de usuarios con soporte para imágenes y texto.
84
+
85
+ ### Icon
86
+ Wrapper para iconos de Material-UI con propiedades consistentes.
87
+
88
+ ### Stat
89
+ Componente para mostrar estadísticas con diferentes plantillas de visualización.
90
+
91
+ **Características:**
92
+ - Plantilla simple
93
+ - Plantilla con chip
94
+ - Plantilla con lista de chips
95
+ - Colores personalizables
96
+
97
+ ### Column
98
+ Componente auxiliar para definir columnas en el componente Table.
99
+
100
+ ## 🛠️ Desarrollo
101
+
102
+ ### Prerrequisitos
103
+
104
+ - Node.js (versión 18 o superior)
105
+ - npm o yarn
106
+
107
+ ### Configuración del entorno de desarrollo
108
+
109
+ 1. Clona el repositorio:
110
+ ```bash
111
+ git clone <repository-url>
112
+ cd shared-library
113
+ ```
114
+
115
+ 2. Instala las dependencias:
116
+ ```bash
117
+ npm install
118
+ ```
119
+
120
+ 3. Inicia el entorno de desarrollo:
121
+ ```bash
122
+ npm run dev
123
+ ```
124
+
125
+ ## 📜 Scripts Disponibles
126
+
127
+ - `npm run build` - Construye la librería para producción
128
+ - `npm run dev` - Inicia el modo de desarrollo con watch
129
+ - `npm run build:css` - Construye los estilos CSS
130
+ - `npm run watch:css` - Observa cambios en los estilos CSS
131
+ - `npm run clean` - Limpia la carpeta dist
132
+ - `npm run prepare` - Limpia y construye la librería
133
+ - `npm run storybook` - Inicia Storybook en modo desarrollo
134
+ - `npm run build-storybook` - Construye Storybook para producción
135
+ - `npm run dist` - Ejecuta el script de distribución personalizado
136
+
137
+ ## 📚 Storybook
138
+
139
+ La librería incluye Storybook para documentación interactiva y desarrollo de componentes.
140
+
141
+ ### Iniciar Storybook
142
+
143
+ ```bash
144
+ npm run storybook
145
+ ```
146
+
147
+ Esto abrirá Storybook en `http://localhost:6006` donde podrás:
148
+
149
+ - Ver todos los componentes disponibles
150
+ - Interactuar con las propiedades de cada componente
151
+ - Ver ejemplos de uso
152
+ - Acceder a la documentación detallada
153
+
154
+ ### Construir Storybook
155
+
156
+ ```bash
157
+ npm run build-storybook
158
+ ```
159
+
160
+ ## 🧪 Testing
161
+
162
+ La librería está configurada con Vitest y Playwright para testing de componentes.
163
+
164
+ ### Configuración de Testing
165
+
166
+ - **Vitest**: Para unit tests y testing de componentes
167
+ - **Playwright**: Para testing de browser
168
+ - **Storybook Test Addon**: Para testing de historias de Storybook
169
+
170
+ ## 🔧 Tecnologías
171
+
172
+ ### Dependencias Principales
173
+
174
+ - **React 19.1.0**: Librería de UI
175
+ - **Material-UI 7.1.0**: Sistema de diseño y componentes
176
+ - **TypeScript 5.8.3**: Tipado estático
177
+ - **Tailwind CSS 4.1.7**: Framework de CSS utilitario
178
+
179
+ ### Herramientas de Desarrollo
180
+
181
+ - **Storybook 9.0.8**: Documentación y desarrollo de componentes
182
+ - **Rollup**: Bundler para la construcción de la librería
183
+ - **Vitest**: Framework de testing
184
+ - **Playwright**: Testing de browser
185
+ - **Prettier**: Formateo de código
186
+
187
+ ## 📁 Estructura del Proyecto
188
+
189
+ ```
190
+ shared-library/
191
+ ├── .storybook/ # Configuración de Storybook
192
+ ├── src/
193
+ │ ├── components/ # Componentes de la librería
194
+ │ │ ├── Avatar/
195
+ │ │ ├── Button/
196
+ │ │ ├── Column/
197
+ │ │ ├── Icon/
198
+ │ │ ├── Select/
199
+ │ │ ├── Stat/
200
+ │ │ └── Table/
201
+ │ ├── index.ts # Punto de entrada principal
202
+ │ └── styles.css # Estilos globales
203
+ ├── dist/ # Archivos construidos
204
+ ├── package.json
205
+ ├── tsconfig.json
206
+ ├── tailwind.config.js
207
+ ├── rollup.config.cjs
208
+ └── vitest.config.ts
209
+ ```
210
+
211
+ ### Estructura de Componentes
212
+
213
+ Cada componente sigue una estructura consistente:
214
+
215
+ ```
216
+ ComponentName/
217
+ ├── ComponentName.tsx # Implementación del componente
218
+ ├── ComponentName.stories.tsx # Historias de Storybook
219
+ ├── ComponentName.definition.ts # Definiciones de código (opcional)
220
+ ├── index.ts # Exportaciones
221
+ └── types.ts # Tipos específicos (opcional)
222
+ ```
223
+
224
+ ## 🤝 Contribución
225
+
226
+ Para contribuir al proyecto:
227
+
228
+ 1. Fork el repositorio
229
+ 2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`)
230
+ 3. Commit tus cambios (`git commit -am 'Agrega nueva funcionalidad'`)
231
+ 4. Push a la rama (`git push origin feature/nueva-funcionalidad`)
232
+ 5. Crea un Pull Request
233
+
234
+ ## 📄 Licencia
235
+
236
+ ISC License
237
+
238
+ ---
239
+
240
+ **Versión actual:** 1.0.1
241
+
242
+ Para más información y ejemplos detallados, consulta la documentación en Storybook ejecutando `npm run storybook`.
243
+
@@ -34,10 +34,10 @@ import { useMemo, Children, isValidElement, useState } from "react";
34
34
  import { MenuItem, ListItemIcon, FormControl, InputLabel, Select as Select$1, Typography, FormHelperText, ListSubheader, OutlinedInput } from "@mui/material";
35
35
  import { useTheme } from "@mui/material/styles";
36
36
  import { Controller } from "react-hook-form";
37
- import { b as buildFormFieldSx } from "./formField.sx-8_QRnKxv.js";
37
+ import { b as buildFormFieldSx } from "./formField.sx-Cmhj9iGb.js";
38
38
  import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
39
39
  import CheckIcon from "@mui/icons-material/Check";
40
- const buildSelectSx = (borderRadius, labelPosition) => buildFormFieldSx({ borderRadius, labelPosition });
40
+ const buildSelectSx = (borderRadius, labelPosition, layoutOnly = false) => buildFormFieldSx({ borderRadius, labelPosition, layoutOnly });
41
41
  const groupOptions = (options) => {
42
42
  const groups = {};
43
43
  options.forEach((opt) => {
@@ -156,7 +156,7 @@ function Select(props) {
156
156
  return items;
157
157
  };
158
158
  const mergedSx = [
159
- buildSelectSx(borderRadius, labelPosition),
159
+ buildSelectSx(borderRadius, labelPosition, !!presetSx),
160
160
  ...presetSx ? [presetSx] : [],
161
161
  ...Array.isArray(sx) ? sx : sx ? [sx] : []
162
162
  ];
@@ -251,4 +251,4 @@ export {
251
251
  Option as O,
252
252
  Select as S
253
253
  };
254
- //# sourceMappingURL=Select-bSVQokFX.js.map
254
+ //# sourceMappingURL=Select-8fFMOx-I.js.map