@soyfri/shared-library 1.5.0 → 1.6.0-beta.1

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 (565) hide show
  1. package/Button-C17mExpd.cjs.map +1 -0
  2. package/Button-UkkP-bNw.js.map +1 -0
  3. package/components/ActionMenu/ActionMenu.cjs +107 -0
  4. package/components/ActionMenu/ActionMenu.cjs.map +1 -0
  5. package/components/ActionMenu/ActionMenu.d.ts +44 -0
  6. package/components/ActionMenu/ActionMenu.js +107 -0
  7. package/components/ActionMenu/ActionMenu.js.map +1 -0
  8. package/components/ActionMenu/index.d.ts +2 -0
  9. package/components/ActionMenu.d.ts +6 -0
  10. package/components/AppBar/AppBar.cjs +129 -0
  11. package/components/AppBar/AppBar.cjs.map +1 -0
  12. package/components/AppBar/AppBar.d.ts +55 -0
  13. package/components/AppBar/AppBar.js +129 -0
  14. package/components/AppBar/AppBar.js.map +1 -0
  15. package/components/AppBar/AppBar.sx.d.ts +12 -0
  16. package/components/AppBar/AppBarContext.d.ts +18 -0
  17. package/components/AppBar/AppBarMenuToggle.d.ts +39 -0
  18. package/components/AppBar/index.d.ts +6 -0
  19. package/components/AppBar.d.ts +6 -0
  20. package/components/Autocomplete/Autocomplete.cjs +313 -0
  21. package/components/Autocomplete/Autocomplete.cjs.map +1 -0
  22. package/components/Autocomplete/Autocomplete.d.ts +86 -0
  23. package/components/Autocomplete/Autocomplete.definitions.d.ts +16 -0
  24. package/components/Autocomplete/Autocomplete.helpers.d.ts +22 -0
  25. package/components/Autocomplete/Autocomplete.js +313 -0
  26. package/components/Autocomplete/Autocomplete.js.map +1 -0
  27. package/components/Autocomplete/Autocomplete.sx.d.ts +7 -0
  28. package/components/Autocomplete/_parts/AutocompleteChips.d.ts +20 -0
  29. package/components/Autocomplete/_parts/AutocompleteLoader.d.ts +9 -0
  30. package/components/Autocomplete/_parts/AutocompleteOption.d.ts +16 -0
  31. package/components/Autocomplete/index.d.ts +2 -0
  32. package/components/Autocomplete.d.ts +6 -0
  33. package/components/Avatar/Avatar.cjs +162 -0
  34. package/components/Avatar/Avatar.cjs.map +1 -0
  35. package/components/Avatar/Avatar.d.ts +33 -0
  36. package/components/Avatar/Avatar.definitions.d.ts +11 -0
  37. package/components/Avatar/Avatar.js +162 -0
  38. package/components/Avatar/Avatar.js.map +1 -0
  39. package/components/Avatar/index.d.ts +2 -0
  40. package/{dist/components → components}/Button/Button.d.ts +5 -5
  41. package/{dist/components → components}/Button/index.d.ts +1 -0
  42. package/components/Card/Card.cjs +98 -0
  43. package/components/Card/Card.cjs.map +1 -0
  44. package/components/Card/Card.d.ts +36 -0
  45. package/components/Card/Card.js +98 -0
  46. package/components/Card/Card.js.map +1 -0
  47. package/components/Card/Card.sx.d.ts +14 -0
  48. package/components/Card/index.d.ts +4 -0
  49. package/components/Card.d.ts +6 -0
  50. package/components/Checkbox/Checkbox.cjs +189 -0
  51. package/components/Checkbox/Checkbox.cjs.map +1 -0
  52. package/components/Checkbox/Checkbox.d.ts +55 -0
  53. package/components/Checkbox/Checkbox.js +189 -0
  54. package/components/Checkbox/Checkbox.js.map +1 -0
  55. package/components/Checkbox/Checkbox.sx.d.ts +13 -0
  56. package/components/Checkbox/index.d.ts +2 -0
  57. package/components/Checkbox.d.ts +6 -0
  58. package/{dist/components → components}/Chip/Chip.cjs +2 -1
  59. package/components/Chip/Chip.cjs.map +1 -0
  60. package/{dist/components → components}/Chip/Chip.js +2 -1
  61. package/components/Chip/Chip.js.map +1 -0
  62. package/components/Chip/index.d.ts +2 -0
  63. package/components/Chip.d.ts +6 -0
  64. package/components/DatePicker/DatePicker.cjs +180 -0
  65. package/components/DatePicker/DatePicker.cjs.map +1 -0
  66. package/components/DatePicker/DatePicker.d.ts +44 -0
  67. package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +1 -0
  68. package/components/DatePicker/DatePicker.helpers.d.ts +7 -0
  69. package/components/DatePicker/DatePicker.js +180 -0
  70. package/components/DatePicker/DatePicker.js.map +1 -0
  71. package/components/DatePicker/DatePicker.sx.d.ts +9 -0
  72. package/components/DatePicker/index.d.ts +2 -0
  73. package/components/DatePicker.d.ts +6 -0
  74. package/components/DateTimePicker/DateTimePicker.cjs +198 -0
  75. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -0
  76. package/components/DateTimePicker/DateTimePicker.d.ts +57 -0
  77. package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +3 -0
  78. package/components/DateTimePicker/DateTimePicker.helpers.d.ts +13 -0
  79. package/components/DateTimePicker/DateTimePicker.js +198 -0
  80. package/components/DateTimePicker/DateTimePicker.js.map +1 -0
  81. package/components/DateTimePicker/DateTimePicker.sx.d.ts +7 -0
  82. package/components/DateTimePicker/index.d.ts +2 -0
  83. package/components/DateTimePicker.d.ts +6 -0
  84. package/components/Drawer/Drawer.cjs +274 -0
  85. package/components/Drawer/Drawer.cjs.map +1 -0
  86. package/components/Drawer/Drawer.d.ts +60 -0
  87. package/components/Drawer/Drawer.js +274 -0
  88. package/components/Drawer/Drawer.js.map +1 -0
  89. package/components/Drawer/Drawer.sx.d.ts +23 -0
  90. package/components/Drawer/DrawerContext.d.ts +18 -0
  91. package/components/Drawer/DrawerItem.d.ts +40 -0
  92. package/components/Drawer/index.d.ts +6 -0
  93. package/components/Drawer.d.ts +6 -0
  94. package/{dist/components → components}/Gallery/Gallery.cjs +154 -79
  95. package/components/Gallery/Gallery.cjs.map +1 -0
  96. package/components/Gallery/Gallery.d.ts +28 -0
  97. package/{dist/components → components}/Gallery/Gallery.js +154 -79
  98. package/components/Gallery/Gallery.js.map +1 -0
  99. package/components/Gallery/GalleryLightbox.d.ts +16 -0
  100. package/{dist/components → components}/Gallery/GalleryMain.d.ts +3 -7
  101. package/components/Gallery/GalleryThumbnails.d.ts +13 -0
  102. package/components/Gallery/index.d.ts +2 -0
  103. package/components/Gallery.d.ts +6 -0
  104. package/{dist/components → components}/Icon/Icon.cjs +49 -10
  105. package/components/Icon/Icon.cjs.map +1 -0
  106. package/components/Icon/Icon.d.ts +48 -0
  107. package/{dist/components → components}/Icon/Icon.js +49 -10
  108. package/components/Icon/Icon.js.map +1 -0
  109. package/components/Icon/index.d.ts +2 -0
  110. package/components/Icon.d.ts +6 -0
  111. package/components/Input/Input.cjs +188 -0
  112. package/components/Input/Input.cjs.map +1 -0
  113. package/components/Input/Input.d.ts +44 -0
  114. package/{dist/components → components}/Input/Input.definitions.d.ts +6 -2
  115. package/components/Input/Input.helpers.d.ts +14 -0
  116. package/components/Input/Input.js +188 -0
  117. package/components/Input/Input.js.map +1 -0
  118. package/components/Input/Input.sx.d.ts +8 -0
  119. package/components/Input/index.d.ts +2 -0
  120. package/components/Input.d.ts +6 -0
  121. package/components/InputGroup/InputGroup.cjs +140 -0
  122. package/components/InputGroup/InputGroup.cjs.map +1 -0
  123. package/components/InputGroup/InputGroup.d.ts +42 -0
  124. package/components/InputGroup/InputGroup.definitions.d.ts +6 -0
  125. package/components/InputGroup/InputGroup.js +140 -0
  126. package/components/InputGroup/InputGroup.js.map +1 -0
  127. package/components/InputGroup/index.d.ts +2 -0
  128. package/components/InputGroup.d.ts +6 -0
  129. package/components/Modal/Modal.cjs +348 -0
  130. package/components/Modal/Modal.cjs.map +1 -0
  131. package/components/Modal/Modal.d.ts +80 -0
  132. package/components/Modal/Modal.js +348 -0
  133. package/components/Modal/Modal.js.map +1 -0
  134. package/components/Modal/ModalBody.d.ts +11 -0
  135. package/components/Modal/ModalFooter.d.ts +27 -0
  136. package/components/Modal/ModalHeader.d.ts +11 -0
  137. package/components/Modal/index.d.ts +8 -0
  138. package/components/Modal.d.ts +6 -0
  139. package/components/RadioGroup/RadioGroup.cjs +204 -0
  140. package/components/RadioGroup/RadioGroup.cjs.map +1 -0
  141. package/components/RadioGroup/RadioGroup.d.ts +59 -0
  142. package/components/RadioGroup/RadioGroup.definitions.d.ts +6 -0
  143. package/components/RadioGroup/RadioGroup.js +204 -0
  144. package/components/RadioGroup/RadioGroup.js.map +1 -0
  145. package/components/RadioGroup/RadioGroup.sx.d.ts +20 -0
  146. package/components/RadioGroup/index.d.ts +2 -0
  147. package/components/RadioGroup.d.ts +6 -0
  148. package/components/Select/Select.cjs +313 -0
  149. package/components/Select/Select.cjs.map +1 -0
  150. package/components/Select/Select.d.ts +95 -0
  151. package/components/Select/Select.helpers.d.ts +15 -0
  152. package/components/Select/Select.js +313 -0
  153. package/components/Select/Select.js.map +1 -0
  154. package/components/Select/Select.sx.d.ts +7 -0
  155. package/components/Select/_parts/SelectMenuItem.d.ts +20 -0
  156. package/components/Select/index.d.ts +2 -0
  157. package/components/Select.d.ts +6 -0
  158. package/{dist/components → components}/Stat/Stat.cjs +2 -2
  159. package/{dist/components → components}/Stat/Stat.cjs.map +1 -1
  160. package/{dist/components → components}/Stat/Stat.js +2 -2
  161. package/{dist/components → components}/Stat/Stat.js.map +1 -1
  162. package/components/Stat/index.d.ts +2 -0
  163. package/components/Stat.d.ts +6 -0
  164. package/components/StatusMessage/StatusMessage.cjs +108 -0
  165. package/components/StatusMessage/StatusMessage.cjs.map +1 -0
  166. package/components/StatusMessage/StatusMessage.d.ts +28 -0
  167. package/components/StatusMessage/StatusMessage.js +108 -0
  168. package/components/StatusMessage/StatusMessage.js.map +1 -0
  169. package/components/StatusMessage/StatusMessageContext.d.ts +16 -0
  170. package/components/StatusMessage/index.d.ts +4 -0
  171. package/components/StatusMessage.d.ts +6 -0
  172. package/components/Stepper/Stepper.cjs +326 -0
  173. package/components/Stepper/Stepper.cjs.map +1 -0
  174. package/components/Stepper/Stepper.d.ts +17 -0
  175. package/components/Stepper/Stepper.js +326 -0
  176. package/components/Stepper/Stepper.js.map +1 -0
  177. package/components/Stepper/StepperContext.d.ts +73 -0
  178. package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  179. package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  180. package/components/Stepper/index.d.ts +6 -0
  181. package/components/Stepper.d.ts +6 -0
  182. package/components/Switch/Switch.cjs +184 -0
  183. package/components/Switch/Switch.cjs.map +1 -0
  184. package/components/Switch/Switch.d.ts +48 -0
  185. package/components/Switch/Switch.definitions.d.ts +7 -0
  186. package/components/Switch/Switch.js +184 -0
  187. package/components/Switch/Switch.js.map +1 -0
  188. package/components/Switch/Switch.sx.d.ts +22 -0
  189. package/components/Switch/Switch.types.d.ts +1 -0
  190. package/components/Switch/index.d.ts +2 -0
  191. package/components/Switch.d.ts +6 -0
  192. package/components/Tabs/Tabs.cjs +112 -0
  193. package/components/Tabs/Tabs.cjs.map +1 -0
  194. package/components/Tabs/Tabs.d.ts +24 -0
  195. package/components/Tabs/Tabs.js +112 -0
  196. package/components/Tabs/Tabs.js.map +1 -0
  197. package/components/Tabs/index.d.ts +4 -0
  198. package/components/Tabs.d.ts +6 -0
  199. package/{dist/components → components}/Timeline/Timeline.cjs +3 -2
  200. package/components/Timeline/Timeline.cjs.map +1 -0
  201. package/components/Timeline/Timeline.d.ts +9 -0
  202. package/{dist/components → components}/Timeline/Timeline.js +3 -2
  203. package/components/Timeline/Timeline.js.map +1 -0
  204. package/components/Timeline/index.d.ts +4 -0
  205. package/components/Timeline.d.ts +6 -0
  206. package/components/_shared/formField.sx.d.ts +33 -0
  207. package/components/_shared/mergeSx.d.ts +7 -0
  208. package/components/_shared/resolvePreset.d.ts +18 -0
  209. package/formField.sx-8_QRnKxv.js +68 -0
  210. package/formField.sx-8_QRnKxv.js.map +1 -0
  211. package/formField.sx-BAX7KwMR.cjs +67 -0
  212. package/formField.sx-BAX7KwMR.cjs.map +1 -0
  213. package/index.cjs +153 -0
  214. package/index.cjs.map +1 -0
  215. package/index.d.ts +4 -0
  216. package/index.js +51 -0
  217. package/index.js.map +1 -0
  218. package/mergeSx-BXoNZjB_.js +10 -0
  219. package/mergeSx-BXoNZjB_.js.map +1 -0
  220. package/mergeSx-Dbccoo_H.cjs +9 -0
  221. package/mergeSx-Dbccoo_H.cjs.map +1 -0
  222. package/mui.d.ts +7 -0
  223. package/package.json +164 -43
  224. package/resolvePreset-B-IB0ehH.js +15 -0
  225. package/resolvePreset-B-IB0ehH.js.map +1 -0
  226. package/resolvePreset-CT3kU-K2.cjs +14 -0
  227. package/resolvePreset-CT3kU-K2.cjs.map +1 -0
  228. package/theme/componentStyles.d.ts +32 -0
  229. package/theme/tokens.d.ts +28 -0
  230. package/tokens-BRrcP_p_.js +21 -0
  231. package/tokens-BRrcP_p_.js.map +1 -0
  232. package/tokens-jaWWNk39.cjs +20 -0
  233. package/tokens-jaWWNk39.cjs.map +1 -0
  234. package/utils/index.d.ts +2 -0
  235. package/utils/scrollToTop.d.ts +28 -0
  236. package/.dockerignore +0 -8
  237. package/.github/workflows/publish.yml +0 -107
  238. package/.prettierrc +0 -3
  239. package/.storybook/main.ts +0 -19
  240. package/.storybook/preview.ts +0 -14
  241. package/.storybook/vitest.setup.ts +0 -9
  242. package/Dockerfile +0 -37
  243. package/build.js +0 -102
  244. package/chromatic.config.json +0 -5
  245. package/cleanDirectories.js +0 -40
  246. package/dist/Button-C17mExpd.cjs.map +0 -1
  247. package/dist/Button-UkkP-bNw.js.map +0 -1
  248. package/dist/DatePicker-BSNboVhN.js +0 -201
  249. package/dist/DatePicker-BSNboVhN.js.map +0 -1
  250. package/dist/DatePicker-BoqxWAhj.cjs +0 -200
  251. package/dist/DatePicker-BoqxWAhj.cjs.map +0 -1
  252. package/dist/Input-DFHs7cJ_.js +0 -171
  253. package/dist/Input-DFHs7cJ_.js.map +0 -1
  254. package/dist/Input-c8MwNNPg.cjs +0 -170
  255. package/dist/Input-c8MwNNPg.cjs.map +0 -1
  256. package/dist/Select-BO2N56sm.cjs +0 -411
  257. package/dist/Select-BO2N56sm.cjs.map +0 -1
  258. package/dist/Select-BcLkyHSE.js +0 -412
  259. package/dist/Select-BcLkyHSE.js.map +0 -1
  260. package/dist/components/Autocomplete/Autocomplete.cjs +0 -109
  261. package/dist/components/Autocomplete/Autocomplete.cjs.map +0 -1
  262. package/dist/components/Autocomplete/Autocomplete.d.ts +0 -28
  263. package/dist/components/Autocomplete/Autocomplete.definitions.d.ts +0 -9
  264. package/dist/components/Autocomplete/Autocomplete.js +0 -109
  265. package/dist/components/Autocomplete/Autocomplete.js.map +0 -1
  266. package/dist/components/Autocomplete/index.d.ts +0 -1
  267. package/dist/components/Autocomplete.d.ts +0 -2
  268. package/dist/components/Avatar/Avatar.cjs +0 -126
  269. package/dist/components/Avatar/Avatar.cjs.map +0 -1
  270. package/dist/components/Avatar/Avatar.d.ts +0 -19
  271. package/dist/components/Avatar/Avatar.js +0 -126
  272. package/dist/components/Avatar/Avatar.js.map +0 -1
  273. package/dist/components/Avatar/index.d.ts +0 -1
  274. package/dist/components/Card/Card.cjs +0 -28
  275. package/dist/components/Card/Card.cjs.map +0 -1
  276. package/dist/components/Card/Card.d.ts +0 -13
  277. package/dist/components/Card/Card.js +0 -28
  278. package/dist/components/Card/Card.js.map +0 -1
  279. package/dist/components/Card/index.d.ts +0 -1
  280. package/dist/components/Card.d.ts +0 -2
  281. package/dist/components/Chip/Chip.cjs.map +0 -1
  282. package/dist/components/Chip/Chip.js.map +0 -1
  283. package/dist/components/Chip/index.d.ts +0 -1
  284. package/dist/components/Chip.d.ts +0 -2
  285. package/dist/components/DatePicker/DatePicker.cjs +0 -5
  286. package/dist/components/DatePicker/DatePicker.cjs.map +0 -1
  287. package/dist/components/DatePicker/DatePicker.d.ts +0 -18
  288. package/dist/components/DatePicker/DatePicker.js +0 -5
  289. package/dist/components/DatePicker/DatePicker.js.map +0 -1
  290. package/dist/components/DatePicker/index.d.ts +0 -1
  291. package/dist/components/DatePicker.d.ts +0 -2
  292. package/dist/components/DateTimePicker/DateTimePicker.cjs +0 -208
  293. package/dist/components/DateTimePicker/DateTimePicker.cjs.map +0 -1
  294. package/dist/components/DateTimePicker/DateTimePicker.d.ts +0 -28
  295. package/dist/components/DateTimePicker/DateTimePicker.js +0 -208
  296. package/dist/components/DateTimePicker/DateTimePicker.js.map +0 -1
  297. package/dist/components/DateTimePicker/index.d.ts +0 -1
  298. package/dist/components/DateTimePicker.d.ts +0 -2
  299. package/dist/components/Gallery/Gallery.cjs.map +0 -1
  300. package/dist/components/Gallery/Gallery.d.ts +0 -12
  301. package/dist/components/Gallery/Gallery.js.map +0 -1
  302. package/dist/components/Gallery/GalleryLightbox.d.ts +0 -20
  303. package/dist/components/Gallery/GalleryThumbnails.d.ts +0 -17
  304. package/dist/components/Gallery/index.d.ts +0 -1
  305. package/dist/components/Gallery.d.ts +0 -2
  306. package/dist/components/Icon/Icon.cjs.map +0 -1
  307. package/dist/components/Icon/Icon.d.ts +0 -21
  308. package/dist/components/Icon/Icon.js.map +0 -1
  309. package/dist/components/Icon/index.d.ts +0 -1
  310. package/dist/components/Icon.d.ts +0 -2
  311. package/dist/components/Input/Input.cjs +0 -5
  312. package/dist/components/Input/Input.cjs.map +0 -1
  313. package/dist/components/Input/Input.d.ts +0 -32
  314. package/dist/components/Input/Input.js +0 -5
  315. package/dist/components/Input/Input.js.map +0 -1
  316. package/dist/components/Input/index.d.ts +0 -1
  317. package/dist/components/Input.d.ts +0 -2
  318. package/dist/components/InputGroup/InputGroup.cjs +0 -126
  319. package/dist/components/InputGroup/InputGroup.cjs.map +0 -1
  320. package/dist/components/InputGroup/InputGroup.d.ts +0 -6
  321. package/dist/components/InputGroup/InputGroup.js +0 -126
  322. package/dist/components/InputGroup/InputGroup.js.map +0 -1
  323. package/dist/components/InputGroup/index.d.ts +0 -1
  324. package/dist/components/InputGroup.d.ts +0 -2
  325. package/dist/components/Modal/Modal.cjs +0 -209
  326. package/dist/components/Modal/Modal.cjs.map +0 -1
  327. package/dist/components/Modal/Modal.d.ts +0 -29
  328. package/dist/components/Modal/Modal.js +0 -209
  329. package/dist/components/Modal/Modal.js.map +0 -1
  330. package/dist/components/Modal/ModalBody.d.ts +0 -6
  331. package/dist/components/Modal/ModalFooter.d.ts +0 -19
  332. package/dist/components/Modal/ModalHeader.d.ts +0 -6
  333. package/dist/components/Modal/index.d.ts +0 -1
  334. package/dist/components/Modal.d.ts +0 -2
  335. package/dist/components/Select/Select.cjs +0 -6
  336. package/dist/components/Select/Select.cjs.map +0 -1
  337. package/dist/components/Select/Select.d.ts +0 -60
  338. package/dist/components/Select/Select.definitions.d.ts +0 -14
  339. package/dist/components/Select/Select.js +0 -6
  340. package/dist/components/Select/Select.js.map +0 -1
  341. package/dist/components/Select/index.d.ts +0 -1
  342. package/dist/components/Select.d.ts +0 -2
  343. package/dist/components/Stat/index.d.ts +0 -1
  344. package/dist/components/Stat.d.ts +0 -2
  345. package/dist/components/StatusMessage/StatusMessage.cjs +0 -79
  346. package/dist/components/StatusMessage/StatusMessage.cjs.map +0 -1
  347. package/dist/components/StatusMessage/StatusMessage.d.ts +0 -44
  348. package/dist/components/StatusMessage/StatusMessage.js +0 -79
  349. package/dist/components/StatusMessage/StatusMessage.js.map +0 -1
  350. package/dist/components/StatusMessage/index.d.ts +0 -1
  351. package/dist/components/StatusMessage.d.ts +0 -2
  352. package/dist/components/Stepper/Stepper.cjs +0 -46
  353. package/dist/components/Stepper/Stepper.cjs.map +0 -1
  354. package/dist/components/Stepper/Stepper.d.ts +0 -11
  355. package/dist/components/Stepper/Stepper.js +0 -46
  356. package/dist/components/Stepper/Stepper.js.map +0 -1
  357. package/dist/components/Stepper/index.d.ts +0 -2
  358. package/dist/components/Stepper.d.ts +0 -2
  359. package/dist/components/Tabs/Tabs.cjs +0 -96
  360. package/dist/components/Tabs/Tabs.cjs.map +0 -1
  361. package/dist/components/Tabs/Tabs.d.ts +0 -19
  362. package/dist/components/Tabs/Tabs.js +0 -96
  363. package/dist/components/Tabs/Tabs.js.map +0 -1
  364. package/dist/components/Tabs/index.d.ts +0 -2
  365. package/dist/components/Tabs.d.ts +0 -2
  366. package/dist/components/Timeline/Timeline.cjs.map +0 -1
  367. package/dist/components/Timeline/Timeline.d.ts +0 -13
  368. package/dist/components/Timeline/Timeline.js.map +0 -1
  369. package/dist/components/Timeline/index.d.ts +0 -2
  370. package/dist/components/Timeline.d.ts +0 -2
  371. package/dist/index.cjs +0 -2
  372. package/dist/index.cjs.map +0 -1
  373. package/dist/index.d.ts +0 -0
  374. package/dist/index.js +0 -2
  375. package/dist/index.js.map +0 -1
  376. package/dist/styles.css +0 -112
  377. package/rollup.config.cjs +0 -87
  378. package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -254
  379. package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -387
  380. package/src/components/Autocomplete/Autocomplete.tsx +0 -139
  381. package/src/components/Autocomplete/index.ts +0 -1
  382. package/src/components/Avatar/Avatar.stories.tsx +0 -54
  383. package/src/components/Avatar/Avatar.tsx +0 -143
  384. package/src/components/Avatar/index.ts +0 -1
  385. package/src/components/Button/Button.definition.ts +0 -97
  386. package/src/components/Button/Button.stories.tsx +0 -285
  387. package/src/components/Button/Button.tsx +0 -67
  388. package/src/components/Button/index.ts +0 -1
  389. package/src/components/Card/Card.definition.ts +0 -5
  390. package/src/components/Card/Card.stories.tsx +0 -32
  391. package/src/components/Card/Card.tsx +0 -44
  392. package/src/components/Card/index.ts +0 -1
  393. package/src/components/Chip/Chip.definitions.ts +0 -167
  394. package/src/components/Chip/Chip.stories.tsx +0 -265
  395. package/src/components/Chip/Chip.tsx +0 -61
  396. package/src/components/Chip/index.ts +0 -1
  397. package/src/components/Column/Column.tsx +0 -29
  398. package/src/components/Column/index.ts +0 -1
  399. package/src/components/DatePicker/DatePicker.definitions.ts +0 -205
  400. package/src/components/DatePicker/DatePicker.stories.tsx +0 -282
  401. package/src/components/DatePicker/DatePicker.tsx +0 -165
  402. package/src/components/DatePicker/index.ts +0 -1
  403. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
  404. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
  405. package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
  406. package/src/components/DateRangePicker/index.ts +0 -1
  407. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -232
  408. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -390
  409. package/src/components/DateTimePicker/DateTimePicker.tsx +0 -191
  410. package/src/components/DateTimePicker/index.ts +0 -1
  411. package/src/components/Flyout/Flyout.stories.tsx +0 -274
  412. package/src/components/Flyout/Flyout.tsx +0 -122
  413. package/src/components/Flyout/index.ts +0 -1
  414. package/src/components/Gallery/Gallery.definition.tsx +0 -37
  415. package/src/components/Gallery/Gallery.stories.tsx +0 -82
  416. package/src/components/Gallery/Gallery.tsx +0 -118
  417. package/src/components/Gallery/GalleryLightbox.tsx +0 -170
  418. package/src/components/Gallery/GalleryMain.tsx +0 -84
  419. package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
  420. package/src/components/Gallery/index.ts +0 -1
  421. package/src/components/Icon/Icon.stories.tsx +0 -54
  422. package/src/components/Icon/Icon.tsx +0 -94
  423. package/src/components/Icon/index.ts +0 -2
  424. package/src/components/Input/Input.definitions.ts +0 -252
  425. package/src/components/Input/Input.stories.tsx +0 -387
  426. package/src/components/Input/Input.tsx +0 -186
  427. package/src/components/Input/index.ts +0 -1
  428. package/src/components/InputGroup/InputGroup.stories.tsx +0 -136
  429. package/src/components/InputGroup/InputGroup.tsx +0 -136
  430. package/src/components/InputGroup/index.ts +0 -1
  431. package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
  432. package/src/components/MenuButton/MenuButton.tsx +0 -100
  433. package/src/components/MenuButton/index.ts +0 -1
  434. package/src/components/Modal/Modal.stories.tsx +0 -293
  435. package/src/components/Modal/Modal.tsx +0 -173
  436. package/src/components/Modal/ModalBody.tsx +0 -16
  437. package/src/components/Modal/ModalFooter.tsx +0 -61
  438. package/src/components/Modal/ModalHeader.tsx +0 -18
  439. package/src/components/Modal/index.ts +0 -1
  440. package/src/components/Select/Select.definitions.ts +0 -488
  441. package/src/components/Select/Select.stories.tsx +0 -569
  442. package/src/components/Select/Select.tsx +0 -468
  443. package/src/components/Select/index.ts +0 -1
  444. package/src/components/Stat/Stat.stories.tsx +0 -85
  445. package/src/components/Stat/Stat.tsx +0 -117
  446. package/src/components/Stat/index.ts +0 -2
  447. package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
  448. package/src/components/StatusMessage/StatusMessage.tsx +0 -162
  449. package/src/components/StatusMessage/index.ts +0 -2
  450. package/src/components/Stepper/Step.tsx +0 -21
  451. package/src/components/Stepper/Stepper.definition.ts +0 -75
  452. package/src/components/Stepper/Stepper.stories.tsx +0 -122
  453. package/src/components/Stepper/Stepper.tsx +0 -59
  454. package/src/components/Stepper/index.ts +0 -2
  455. package/src/components/Table/EmptyTable.png +0 -0
  456. package/src/components/Table/Table.definition.ts +0 -580
  457. package/src/components/Table/Table.stories.tsx +0 -853
  458. package/src/components/Table/Table.tsx +0 -495
  459. package/src/components/Table/data.ts +0 -134
  460. package/src/components/Table/exportsUtils.ts +0 -195
  461. package/src/components/Table/index.ts +0 -3
  462. package/src/components/Table/types.ts +0 -34
  463. package/src/components/Tabs/Tab.definition.ts +0 -53
  464. package/src/components/Tabs/Tab.tsx +0 -19
  465. package/src/components/Tabs/Tabs.stories.tsx +0 -118
  466. package/src/components/Tabs/Tabs.tsx +0 -99
  467. package/src/components/Tabs/_tabUtils.tsx +0 -4
  468. package/src/components/Tabs/index.ts +0 -2
  469. package/src/components/Timeline/Timeline.definition.ts +0 -43
  470. package/src/components/Timeline/Timeline.stories.tsx +0 -108
  471. package/src/components/Timeline/Timeline.tsx +0 -49
  472. package/src/components/Timeline/TimelineItem.tsx +0 -31
  473. package/src/components/Timeline/index.ts +0 -2
  474. package/src/components/Tooltip/Tooltip.stories.tsx +0 -117
  475. package/src/components/Tooltip/Tooltip.tsx +0 -58
  476. package/src/components/Tooltip/index.ts +0 -1
  477. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
  478. package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
  479. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
  480. package/src/hooks/ClipBoard/index.ts +0 -1
  481. package/src/index.ts +0 -1
  482. package/src/styles.css +0 -3
  483. package/tailwind.config.js +0 -10
  484. package/tsconfig.json +0 -48
  485. package/tsup.config.js +0 -41
  486. package/vite.config.js +0 -132
  487. package/vitest.config.ts +0 -35
  488. /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
  489. /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
  490. /package/{Readme.md → README.md} +0 -0
  491. /package/{dist/components → components}/Avatar.d.ts +0 -0
  492. /package/{dist/components → components}/Button/Button.cjs +0 -0
  493. /package/{dist/components → components}/Button/Button.cjs.map +0 -0
  494. /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
  495. /package/{dist/components → components}/Button/Button.js +0 -0
  496. /package/{dist/components → components}/Button/Button.js.map +0 -0
  497. /package/{dist/components → components}/Button.d.ts +0 -0
  498. /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
  499. /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
  500. /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
  501. /package/{dist/components → components}/Column/Column.cjs +0 -0
  502. /package/{dist/components → components}/Column/Column.cjs.map +0 -0
  503. /package/{dist/components → components}/Column/Column.d.ts +0 -0
  504. /package/{dist/components → components}/Column/Column.js +0 -0
  505. /package/{dist/components → components}/Column/Column.js.map +0 -0
  506. /package/{dist/components → components}/Column/index.d.ts +0 -0
  507. /package/{dist/components → components}/Column.d.ts +0 -0
  508. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
  509. /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  510. /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  511. /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  512. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
  513. /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
  514. /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
  515. /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
  516. /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
  517. /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
  518. /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
  519. /package/{dist/components → components}/Flyout/Flyout.js +0 -0
  520. /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
  521. /package/{dist/components → components}/Flyout/index.d.ts +0 -0
  522. /package/{dist/components → components}/Flyout.d.ts +0 -0
  523. /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
  524. /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
  525. /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
  526. /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
  527. /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
  528. /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
  529. /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
  530. /package/{dist/components → components}/MenuButton.d.ts +0 -0
  531. /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
  532. /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
  533. /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
  534. /package/{dist/components → components}/Table/Table.cjs +0 -0
  535. /package/{dist/components → components}/Table/Table.cjs.map +0 -0
  536. /package/{dist/components → components}/Table/Table.d.ts +0 -0
  537. /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
  538. /package/{dist/components → components}/Table/Table.js +0 -0
  539. /package/{dist/components → components}/Table/Table.js.map +0 -0
  540. /package/{dist/components → components}/Table/data.d.ts +0 -0
  541. /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
  542. /package/{dist/components → components}/Table/index.d.ts +0 -0
  543. /package/{dist/components → components}/Table/types.d.ts +0 -0
  544. /package/{dist/components → components}/Table.d.ts +0 -0
  545. /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
  546. /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
  547. /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
  548. /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
  549. /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
  550. /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
  551. /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
  552. /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
  553. /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
  554. /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
  555. /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
  556. /package/{dist/components → components}/Tooltip.d.ts +0 -0
  557. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
  558. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  559. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  560. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
  561. /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
  562. /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  563. /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
  564. /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
  565. /package/{dist/index.css → index.css} +0 -0
@@ -0,0 +1,313 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsxs, jsx } from "react/jsx-runtime";
33
+ import { useMemo, Children, isValidElement, useState } from "react";
34
+ import { MenuItem, ListItemIcon, FormControl, InputLabel, Select as Select$1, FormHelperText, ListSubheader, OutlinedInput, Typography, Box, Chip, Avatar } from "@mui/material";
35
+ import { useTheme } from "@mui/material/styles";
36
+ import { Controller } from "react-hook-form";
37
+ import { b as buildFormFieldSx } from "../../formField.sx-8_QRnKxv.js";
38
+ import { r as resolvePreset } from "../../resolvePreset-B-IB0ehH.js";
39
+ import CheckIcon from "@mui/icons-material/Check";
40
+ const buildSelectSx = (borderRadius, labelPosition) => buildFormFieldSx({ borderRadius, labelPosition });
41
+ const groupOptions = (options) => {
42
+ const groups = {};
43
+ options.forEach((opt) => {
44
+ const group = opt.group || "__default";
45
+ if (!groups[group]) groups[group] = [];
46
+ groups[group].push(opt);
47
+ });
48
+ return groups;
49
+ };
50
+ const normalizeSelectValue = (value) => value != null ? value : "";
51
+ const isSelectValueEmpty = (normalizedValue) => {
52
+ if (Array.isArray(normalizedValue)) return normalizedValue.length === 0;
53
+ return normalizedValue === "" || normalizedValue === null || normalizedValue === void 0;
54
+ };
55
+ const renderSelectMenuItem = ({
56
+ option,
57
+ selected,
58
+ customRender
59
+ }) => /* @__PURE__ */ jsxs(
60
+ MenuItem,
61
+ {
62
+ value: option.value,
63
+ disabled: option.disabled,
64
+ selected,
65
+ children: [
66
+ /* @__PURE__ */ jsx(ListItemIcon, { sx: { minWidth: 32 }, children: selected && /* @__PURE__ */ jsx(CheckIcon, { color: "success", fontSize: "small" }) }),
67
+ customRender ? customRender(option) : option.label
68
+ ]
69
+ },
70
+ String(option.value)
71
+ );
72
+ function Option(_props) {
73
+ return null;
74
+ }
75
+ Option.displayName = "Option";
76
+ function Select(props) {
77
+ const _a = props, {
78
+ label,
79
+ options = [],
80
+ defaultValue,
81
+ size = "small",
82
+ placeholder,
83
+ children,
84
+ maxHeight = 300,
85
+ maxWidth,
86
+ disabled = false,
87
+ error = false,
88
+ helperText,
89
+ borderRadius = 10,
90
+ labelPosition = "outside",
91
+ preset,
92
+ sx,
93
+ className,
94
+ multiple = false,
95
+ maxChipsToShow = 3,
96
+ renderChipLabel,
97
+ chipVariant = "outlined",
98
+ name: _nameIgnored,
99
+ control: _controlIgnored,
100
+ validation: _validationIgnored,
101
+ value: _valueIgnored,
102
+ onChange: _onChangeIgnored,
103
+ onValueChange: _onValueChangeIgnored
104
+ } = _a, rest = __objRest(_a, [
105
+ "label",
106
+ "options",
107
+ "defaultValue",
108
+ "size",
109
+ "placeholder",
110
+ "children",
111
+ "maxHeight",
112
+ "maxWidth",
113
+ "disabled",
114
+ "error",
115
+ "helperText",
116
+ "borderRadius",
117
+ "labelPosition",
118
+ "preset",
119
+ "sx",
120
+ "className",
121
+ "multiple",
122
+ "maxChipsToShow",
123
+ "renderChipLabel",
124
+ "chipVariant",
125
+ // Separamos estos aunque no se usen directamente acá — evita que lleguen
126
+ // al DOM del MuiSelect via `{...rest}` y generen warnings de React.
127
+ "name",
128
+ "control",
129
+ "validation",
130
+ "value",
131
+ "onChange",
132
+ "onValueChange"
133
+ ]);
134
+ const theme = useTheme();
135
+ const presetSx = resolvePreset("Select", preset, theme);
136
+ const isRHFMode = "control" in props && props.control !== void 0;
137
+ const customRender = useMemo(() => {
138
+ var _a2;
139
+ if (Children.count(children) === 1) {
140
+ const child = Children.only(children);
141
+ if (isValidElement(child) && ((_a2 = child.type) == null ? void 0 : _a2.displayName) === "Option") {
142
+ return child.props.children;
143
+ }
144
+ }
145
+ return null;
146
+ }, [children]);
147
+ const [isOpen, setIsOpen] = useState(false);
148
+ const [isFocused, setIsFocused] = useState(false);
149
+ const groupedOptions = useMemo(() => groupOptions(options), [options]);
150
+ const isSelected = (currentValue, val) => {
151
+ if (Array.isArray(currentValue)) return currentValue.includes(val);
152
+ return currentValue === val;
153
+ };
154
+ const buildMenuItems = (currentValue) => {
155
+ const items = [];
156
+ Object.entries(groupedOptions).forEach(([group, opts]) => {
157
+ if (group !== "__default") {
158
+ items.push(
159
+ /* @__PURE__ */ jsx(ListSubheader, { disableSticky: true, children: group }, group)
160
+ );
161
+ }
162
+ opts.forEach((opt) => {
163
+ items.push(
164
+ renderSelectMenuItem({
165
+ option: opt,
166
+ selected: isSelected(currentValue, opt.value),
167
+ customRender
168
+ })
169
+ );
170
+ });
171
+ });
172
+ return items;
173
+ };
174
+ const mergedSx = [
175
+ buildSelectSx(borderRadius, labelPosition),
176
+ ...presetSx ? [presetSx] : [],
177
+ ...Array.isArray(sx) ? sx : sx ? [sx] : []
178
+ ];
179
+ const renderSelect = (selectValue, commitValue, onBlur, inputRef, rhfError, rhfHelperText) => {
180
+ const finalError = !!rhfError || !!error;
181
+ const finalHelperText = rhfHelperText != null ? rhfHelperText : helperText;
182
+ const inputElement = labelPosition === "floating" ? /* @__PURE__ */ jsx(OutlinedInput, { label }) : /* @__PURE__ */ jsx(OutlinedInput, {});
183
+ const normalizedValue = multiple ? selectValue != null ? selectValue : [] : normalizeSelectValue(selectValue);
184
+ const isEmpty = isSelectValueEmpty(normalizedValue);
185
+ const shouldShrink = !isEmpty || isFocused || isOpen;
186
+ const shouldDisplayPlaceholder = isEmpty && (isFocused || isOpen) && !!placeholder;
187
+ const renderValueFn = (selected) => {
188
+ var _a2;
189
+ if (multiple) {
190
+ const arr = selected != null ? selected : [];
191
+ if (arr.length === 0) {
192
+ return /* @__PURE__ */ jsx(Typography, { sx: { color: "text.disabled" }, children: placeholder != null ? placeholder : "" });
193
+ }
194
+ const visible = arr.slice(0, maxChipsToShow);
195
+ const hidden = arr.length - visible.length;
196
+ return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", flexWrap: "wrap", gap: 0.5 }, children: [
197
+ visible.map((val) => {
198
+ const item2 = options.find((o) => o.value === val);
199
+ if (!item2) return null;
200
+ return /* @__PURE__ */ jsx(
201
+ Chip,
202
+ {
203
+ variant: chipVariant,
204
+ color: "primary",
205
+ size,
206
+ label: renderChipLabel ? renderChipLabel(item2) : item2.label,
207
+ avatar: item2.img ? /* @__PURE__ */ jsx(Avatar, { src: item2.img }) : void 0,
208
+ onMouseDown: (e) => e.stopPropagation(),
209
+ onDelete: () => {
210
+ commitValue(arr.filter((v) => v !== val));
211
+ }
212
+ },
213
+ String(val)
214
+ );
215
+ }),
216
+ hidden > 0 && /* @__PURE__ */ jsx(
217
+ Chip,
218
+ {
219
+ variant: chipVariant,
220
+ size,
221
+ label: `+${hidden} más`,
222
+ onMouseDown: (e) => e.stopPropagation()
223
+ }
224
+ )
225
+ ] });
226
+ }
227
+ if (isSelectValueEmpty(selected)) {
228
+ return /* @__PURE__ */ jsx(Typography, { sx: { color: "text.disabled" }, children: placeholder != null ? placeholder : "" });
229
+ }
230
+ const item = options.find((opt) => opt.value === selected);
231
+ return (_a2 = item == null ? void 0 : item.label) != null ? _a2 : String(selected);
232
+ };
233
+ return /* @__PURE__ */ jsxs(
234
+ FormControl,
235
+ {
236
+ fullWidth: true,
237
+ size,
238
+ error: finalError,
239
+ disabled,
240
+ className,
241
+ sx: mergedSx,
242
+ children: [
243
+ label && /* @__PURE__ */ jsx(InputLabel, { shrink: shouldShrink, children: label }),
244
+ /* @__PURE__ */ jsx(
245
+ Select$1,
246
+ __spreadProps(__spreadValues({
247
+ multiple,
248
+ value: normalizedValue,
249
+ onChange: (e) => commitValue(e.target.value),
250
+ onBlur: (e) => {
251
+ setIsFocused(false);
252
+ onBlur == null ? void 0 : onBlur(e);
253
+ },
254
+ onFocus: () => setIsFocused(true),
255
+ onOpen: () => setIsOpen(true),
256
+ onClose: () => setIsOpen(false),
257
+ renderValue: renderValueFn,
258
+ displayEmpty: shouldDisplayPlaceholder,
259
+ input: inputElement,
260
+ disabled,
261
+ MenuProps: {
262
+ PaperProps: {
263
+ style: { maxHeight, maxWidth }
264
+ }
265
+ },
266
+ inputRef
267
+ }, rest), {
268
+ children: buildMenuItems(normalizedValue)
269
+ })
270
+ ),
271
+ finalHelperText && /* @__PURE__ */ jsx(FormHelperText, { children: finalHelperText })
272
+ ]
273
+ }
274
+ );
275
+ };
276
+ if (isRHFMode) {
277
+ const { name, control, validation, onValueChange } = props;
278
+ return /* @__PURE__ */ jsx(
279
+ Controller,
280
+ {
281
+ name,
282
+ control,
283
+ rules: validation,
284
+ defaultValue,
285
+ render: ({ field, fieldState: { error: fieldError } }) => {
286
+ var _a2;
287
+ return renderSelect(
288
+ (_a2 = field.value) != null ? _a2 : multiple ? [] : null,
289
+ (next) => {
290
+ field.onChange(next);
291
+ onValueChange == null ? void 0 : onValueChange(next);
292
+ },
293
+ field.onBlur,
294
+ field.ref,
295
+ !!fieldError,
296
+ fieldError == null ? void 0 : fieldError.message
297
+ );
298
+ }
299
+ }
300
+ );
301
+ }
302
+ const standardProps = props;
303
+ return renderSelect(
304
+ standardProps.value,
305
+ (next) => standardProps.onChange(next)
306
+ );
307
+ }
308
+ export {
309
+ Option,
310
+ Select,
311
+ Select as default
312
+ };
313
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.sx.ts","../../../src/components/Select/Select.helpers.ts","../../../src/components/Select/_parts/SelectMenuItem.tsx","../../../src/components/Select/Select.tsx"],"sourcesContent":["import type { SelectProps as MuiSelectProps } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport type { LabelPosition } from './Select';\n\n/**\n * Builder de sx para el Select. Usa el builder compartido\n * `buildFormFieldSx`. El Select no necesita overrides específicos.\n */\nexport const buildSelectSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): MuiSelectProps['sx'] =>\n buildFormFieldSx({ borderRadius, labelPosition }) as MuiSelectProps['sx'];\n","import type { SelectOption } from './Select';\n\n/**\n * Agrupa opciones por la propiedad `group`. Las opciones sin group caen\n * bajo la key especial `__default`. Devuelve un Record para iterar en orden\n * de inserción con Object.entries.\n */\nexport const groupOptions = (\n options: SelectOption[],\n): Record<string, SelectOption[]> => {\n const groups: Record<string, SelectOption[]> = {};\n options.forEach((opt) => {\n const group = opt.group || '__default';\n if (!groups[group]) groups[group] = [];\n groups[group].push(opt);\n });\n return groups;\n};\n\n/**\n * Normaliza el valor single al shape que espera MUI Select: string vacío si\n * el valor es `null`/`undefined`.\n */\nexport const normalizeSelectValue = <T>(value: T | null | undefined): T | '' =>\n (value ?? '') as T | '';\n\n/** `true` si el valor está vacío (para shrink del label + placeholder). En\n * multi se considera vacío cuando el array no tiene elementos. */\nexport const isSelectValueEmpty = (normalizedValue: unknown): boolean => {\n if (Array.isArray(normalizedValue)) return normalizedValue.length === 0;\n return (\n normalizedValue === '' ||\n normalizedValue === null ||\n normalizedValue === undefined\n );\n};\n","import React from 'react';\nimport { ListItemIcon, MenuItem } from '@mui/material';\nimport CheckIcon from '@mui/icons-material/Check';\n\nimport type { SelectOption, RenderOptionItem } from '../Select';\n\ninterface RenderSelectMenuItemArgs {\n option: SelectOption;\n selected: boolean;\n customRender?: RenderOptionItem | null;\n}\n\n/**\n * Render helper (no componente) que devuelve un <MenuItem> listo para\n * colocarse como hijo directo del <MuiSelect>. Se implementa como función\n * y no como componente porque MUI Select inspecciona `props.value` de sus\n * children para resolver la selección, y envolverlo en un componente extra\n * rompe esa detección.\n *\n * Incluye el icono de check a la izquierda cuando `selected` es true. Si el\n * consumer pasó un `<Option>{(opt) => ...}</Option>`, usa ese render para el\n * contenido principal; de lo contrario muestra `option.label`.\n */\nexport const renderSelectMenuItem = ({\n option,\n selected,\n customRender,\n}: RenderSelectMenuItemArgs): React.ReactElement => (\n <MenuItem\n key={String(option.value)}\n value={option.value}\n disabled={option.disabled}\n selected={selected}\n >\n <ListItemIcon sx={{ minWidth: 32 }}>\n {selected && <CheckIcon color=\"success\" fontSize=\"small\" />}\n </ListItemIcon>\n {customRender ? customRender(option) : option.label}\n </MenuItem>\n);\n","import {\n Children,\n isValidElement,\n useMemo,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n Avatar,\n Box,\n Chip,\n FormControl,\n FormHelperText,\n InputLabel,\n ListSubheader,\n OutlinedInput,\n Select as MuiSelect,\n Typography,\n type SelectChangeEvent,\n type SelectProps as MuiSelectProps,\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildSelectSx } from './Select.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport {\n groupOptions,\n isSelectValueEmpty,\n normalizeSelectValue,\n} from './Select.helpers';\nimport { renderSelectMenuItem } from './_parts/SelectMenuItem';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport interface SelectOption {\n value: string | number;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any;\n}\n\nexport type LabelPosition = 'outside' | 'floating';\nexport type SelectSize = 'small' | 'medium';\n\n// ── Render slots ─────────────────────────────────────────────────────────\nexport type RenderOptionItem = (item: SelectOption) => ReactNode;\nexport type RenderChipLabel = (item: SelectOption) => ReactNode;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport interface OptionProps {\n children: RenderOptionItem;\n}\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport interface BaseSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> {\n label?: string;\n options?: SelectOption[];\n defaultValue?: TValue | TValue[];\n size?: SelectSize;\n placeholder?: string;\n children?: ReactElement<{ children: RenderOptionItem }>;\n maxHeight?: number | string;\n maxWidth?: number | string;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Border radius del input (px o string CSS). Default: 10 */\n borderRadius?: number | string;\n /**\n * Posición del label.\n * - \"outside\" (default): label arriba del input, sin animación.\n * - \"floating\": label clásico de MUI (flota dentro del notched outline).\n */\n labelPosition?: LabelPosition;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Select`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: MuiSelectProps['sx'];\n className?: string;\n // ── Props que solo aplican en modo `multiple` ──────────────────────────\n /** Cantidad máxima de chips visibles antes de colapsar al \"+N más\". Default: 3. */\n maxChipsToShow?: number;\n /** Custom render del label de cada chip. Si no se pasa, usa `option.label`. */\n renderChipLabel?: RenderChipLabel;\n /** Variant de los chips. Default: 'outlined'. */\n chipVariant?: 'outlined' | 'filled';\n}\n\n// ── Variantes discriminadas (single / multi / RHF) ──────────────────────\nexport interface SingleStandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n multiple?: false;\n name?: string;\n control?: never;\n validation?: never;\n value: TValue;\n onChange: (val: TValue) => void;\n}\n\nexport interface MultipleStandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n multiple: true;\n name?: string;\n control?: never;\n validation?: never;\n value: TValue[];\n onChange: (val: TValue[]) => void;\n}\n\nexport type StandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> =\n | SingleStandardSelectProps<TValue>\n | MultipleStandardSelectProps<TValue>;\n\nexport interface RHFSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n /** En RHF se acepta como boolean dinámico — `field.value` se trata según\n * esto: array si `multiple`, valor único si no. */\n multiple?: boolean;\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente tiene generics propios (como `TValue` acá), TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda.\n // El `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del Select.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos (ej. reset de municipio al cambiar\n * departamento). NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: TValue | TValue[]) => void;\n value?: never;\n onChange?: never;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type SelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> = RHFSelectProps<TValue> | StandardSelectProps<TValue>;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport function Option(_props: OptionProps) {\n return null;\n}\nOption.displayName = 'Option';\n\n// ── Componente ───────────────────────────────────────────────────────────\nexport function Select<\n TValue extends SelectOption['value'] = SelectOption['value'],\n>(props: SelectProps<TValue>) {\n const {\n label,\n options = [],\n defaultValue,\n size = 'small',\n placeholder,\n children,\n maxHeight = 300,\n maxWidth,\n disabled = false,\n error = false,\n helperText,\n borderRadius = 10,\n labelPosition = 'outside',\n preset,\n sx,\n className,\n multiple = false,\n maxChipsToShow = 3,\n renderChipLabel,\n chipVariant = 'outlined',\n // Separamos estos aunque no se usen directamente acá — evita que lleguen\n // al DOM del MuiSelect via `{...rest}` y generen warnings de React.\n name: _nameIgnored,\n control: _controlIgnored,\n validation: _validationIgnored,\n value: _valueIgnored,\n onChange: _onChangeIgnored,\n onValueChange: _onValueChangeIgnored,\n ...rest\n } = props as MultipleStandardSelectProps<TValue> & {\n name?: string;\n control?: Control<any>;\n validation?: RegisterOptions;\n onValueChange?: (val: TValue | TValue[]) => void;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Select', preset, theme);\n\n const isRHFMode =\n 'control' in props &&\n (props as RHFSelectProps<TValue>).control !== undefined;\n\n // Custom render opcional vía <Option>{item => ...}</Option>\n const customRender: RenderOptionItem | null = useMemo(() => {\n if (Children.count(children) === 1) {\n const child = Children.only(children);\n if (isValidElement(child) && (child.type as any)?.displayName === 'Option') {\n return (child.props as OptionProps).children;\n }\n }\n return null;\n }, [children]);\n\n // Focus/open tracking para el comportamiento del label \"outside\".\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const groupedOptions = useMemo(() => groupOptions(options), [options]);\n\n // Igualdad por valor, soportando single y multi de forma uniforme.\n const isSelected = (\n currentValue: TValue | TValue[] | '',\n val: TValue,\n ): boolean => {\n if (Array.isArray(currentValue)) return currentValue.includes(val);\n return currentValue === val;\n };\n\n const buildMenuItems = (currentValue: TValue | TValue[] | '') => {\n const items: ReactNode[] = [];\n Object.entries(groupedOptions).forEach(([group, opts]) => {\n if (group !== '__default') {\n items.push(\n <ListSubheader key={group} disableSticky>\n {group}\n </ListSubheader>,\n );\n }\n opts.forEach((opt) => {\n items.push(\n renderSelectMenuItem({\n option: opt,\n selected: isSelected(currentValue, opt.value as TValue),\n customRender,\n }),\n );\n });\n });\n return items;\n };\n\n const mergedSx = [\n buildSelectSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n // Render base (común a RHF y controlled). `commitValue` recibe el valor\n // ya resuelto (sin event) — lo usamos también para el delete de chips.\n const renderSelect = (\n selectValue: TValue | TValue[] | null | undefined,\n commitValue: (next: TValue | TValue[]) => void,\n onBlur?: (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void,\n inputRef?: React.Ref<HTMLInputElement>,\n rhfError?: boolean,\n rhfHelperText?: string,\n ) => {\n const finalError = !!rhfError || !!error;\n const finalHelperText = rhfHelperText ?? helperText;\n\n const inputElement =\n labelPosition === 'floating' ? (\n <OutlinedInput label={label} />\n ) : (\n <OutlinedInput />\n );\n\n // Normalizamos según modo: array vacío para multi, '' para single.\n const normalizedValue: TValue | TValue[] | '' = multiple\n ? ((selectValue as TValue[] | null | undefined) ?? [])\n : normalizeSelectValue(selectValue as TValue | null | undefined);\n\n const isEmpty = isSelectValueEmpty(normalizedValue);\n\n // Shrink cuando hay valor, foco, o dropdown abierto.\n const shouldShrink = !isEmpty || isFocused || isOpen;\n // Placeholder solo cuando el label ya subió.\n const shouldDisplayPlaceholder =\n isEmpty && (isFocused || isOpen) && !!placeholder;\n\n const renderValueFn = (selected: any): ReactNode => {\n // ── Multi: render de chips con delete ────────────────────────────\n if (multiple) {\n const arr = (selected ?? []) as TValue[];\n if (arr.length === 0) {\n return (\n <Typography sx={{ color: 'text.disabled' }}>\n {placeholder ?? ''}\n </Typography>\n );\n }\n const visible = arr.slice(0, maxChipsToShow);\n const hidden = arr.length - visible.length;\n return (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}>\n {visible.map((val) => {\n const item = options.find((o) => o.value === val);\n if (!item) return null;\n return (\n <Chip\n key={String(val)}\n variant={chipVariant}\n color=\"primary\"\n size={size}\n label={\n renderChipLabel ? renderChipLabel(item) : item.label\n }\n avatar={item.img ? <Avatar src={item.img} /> : undefined}\n // Evita que el click sobre el chip dispare el open del menú.\n onMouseDown={(e) => e.stopPropagation()}\n onDelete={() => {\n commitValue(arr.filter((v) => v !== val));\n }}\n />\n );\n })}\n {hidden > 0 && (\n <Chip\n variant={chipVariant}\n size={size}\n label={`+${hidden} más`}\n onMouseDown={(e) => e.stopPropagation()}\n />\n )}\n </Box>\n );\n }\n // ── Single: igual que el flujo previo ────────────────────────────\n if (isSelectValueEmpty(selected)) {\n return (\n <Typography sx={{ color: 'text.disabled' }}>\n {placeholder ?? ''}\n </Typography>\n );\n }\n const item = options.find((opt) => opt.value === selected);\n return item?.label ?? String(selected);\n };\n\n return (\n <FormControl\n fullWidth\n size={size}\n error={finalError}\n disabled={disabled}\n className={className}\n sx={mergedSx}\n >\n {label && <InputLabel shrink={shouldShrink}>{label}</InputLabel>}\n <MuiSelect\n multiple={multiple}\n value={normalizedValue as any}\n onChange={(e: SelectChangeEvent<TValue | TValue[]>) =>\n commitValue(e.target.value as TValue | TValue[])\n }\n onBlur={(e) => {\n setIsFocused(false);\n onBlur?.(e);\n }}\n onFocus={() => setIsFocused(true)}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n renderValue={renderValueFn}\n displayEmpty={shouldDisplayPlaceholder}\n input={inputElement}\n disabled={disabled}\n MenuProps={{\n PaperProps: {\n style: { maxHeight, maxWidth },\n },\n }}\n inputRef={inputRef}\n {...(rest as any)}\n >\n {buildMenuItems(normalizedValue)}\n </MuiSelect>\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if (isRHFMode) {\n const { name, control, validation, onValueChange } = props as RHFSelectProps<TValue>;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultValue}\n render={({ field, fieldState: { error: fieldError } }) =>\n renderSelect(\n field.value ?? (multiple ? [] : 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 // ── Controlled mode ───────────────────────────────────────────────────\n const standardProps = props as StandardSelectProps<TValue>;\n return renderSelect(\n standardProps.value as TValue | TValue[] | null | undefined,\n (next) =>\n (standardProps.onChange as (v: TValue | TValue[]) => void)(next),\n );\n}\n\nexport default Select;\n"],"names":["_a","item","MuiSelect"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { SelectProps as MuiSelectProps } from '@mui/material';
2
+ import { LabelPosition } from './Select';
3
+ /**
4
+ * Builder de sx para el Select. Usa el builder compartido
5
+ * `buildFormFieldSx`. El Select no necesita overrides específicos.
6
+ */
7
+ export declare const buildSelectSx: (borderRadius: number | string, labelPosition: LabelPosition) => MuiSelectProps["sx"];
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { SelectOption, RenderOptionItem } from '../Select';
3
+ interface RenderSelectMenuItemArgs {
4
+ option: SelectOption;
5
+ selected: boolean;
6
+ customRender?: RenderOptionItem | null;
7
+ }
8
+ /**
9
+ * Render helper (no componente) que devuelve un <MenuItem> listo para
10
+ * colocarse como hijo directo del <MuiSelect>. Se implementa como función
11
+ * y no como componente porque MUI Select inspecciona `props.value` de sus
12
+ * children para resolver la selección, y envolverlo en un componente extra
13
+ * rompe esa detección.
14
+ *
15
+ * Incluye el icono de check a la izquierda cuando `selected` es true. Si el
16
+ * consumer pasó un `<Option>{(opt) => ...}</Option>`, usa ese render para el
17
+ * contenido principal; de lo contrario muestra `option.label`.
18
+ */
19
+ export declare const renderSelectMenuItem: ({ option, selected, customRender, }: RenderSelectMenuItemArgs) => React.ReactElement;
20
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Select, Option, default } from './Select';
2
+ export type { SelectProps, SelectOption, OptionProps, BaseSelectProps, RHFSelectProps, StandardSelectProps, SingleStandardSelectProps, MultipleStandardSelectProps, RenderOptionItem, RenderChipLabel, LabelPosition, SelectSize, } from './Select';
@@ -0,0 +1,6 @@
1
+ export * from './Select/index'
2
+ export {}
3
+ import _default from './Select/index'
4
+ export default _default
5
+ export * from './Select/index'
6
+ export {}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("../../index.cjs");
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
4
3
  const jsxRuntime = require("react/jsx-runtime");
5
4
  const React = require("react");
6
5
  const material = require("@mui/material");
@@ -82,4 +81,5 @@ const Stat = ({
82
81
  ] });
83
82
  };
84
83
  exports.Stat = Stat;
84
+ exports.default = Stat;
85
85
  //# sourceMappingURL=Stat.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stat.cjs","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["useMemo","Typography","jsxs","Fragment","Box","jsx","Stack","Chip","chip"],"mappings":";;;;;;AAsBO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmBA,MAAAA,QAAQ,MAAM;AACrC,QAAI,OAAQ,QAAO;AACnB,QAAI,KAAM,QAAO;AACjB,QAAI,SAAU,QAAO;AACrB,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAE3B,QAAM,oBAAoB,MAAM;AAC9B,WAAO,cAAc,YAAY,IAAI,mCAAKC,qBAAA,EAAW,SAAQ,MAAM,UAAA,KAAA,CAAK;AAAA,EAC1E;AAEA,SACEC,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA,qBAAqB,aACpBD,gCAACE,SAAAA,KAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAAC,+BAACJ,SAAAA,cAAW,SAAQ,MAAK,eAAY,oCAClC,+BACH;AAAA,MACAC,2BAAAA,KAACE,SAAAA,OAAI,WAAU,eAAc,SAAQ,QAAO,YAAW,UAAS,KAAK,GACnE,UAAA;AAAA,QAAAC,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnCI,2BAAAA;AAAAA,UAACD,SAAAA;AAAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAY;AAAA,YACZ,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGD,qBAAqB,YACpBF,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,eAAY,oCACrB,+BACH;AAAA,MACC,SAASI,2BAAAA,IAACJ,SAAAA,YAAA,EAAY,UAAA,MAAA,CAAM;AAAA,IAAA,GAC/B;AAAA,IAGD,qBAAqB,UACpBC,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA;AAAAA,QAACE,SAAAA;AAAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,OAAO,kBAAA;AAAA,UACP,IAAI;AAAA,YACF,iBAAiB;AAAA,YACjB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGD,qBAAqB,cACpBL,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA,IAACC,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAC7B,UAAA,MAAM,IAAI,CAACE,OAAM,MAChBH,2BAAAA;AAAAA,QAACE,SAAAA;AAAAA,QAAA;AAAA,UAEC,OAAOC,MAAK;AAAA,UACZ,IAAI;AAAA,YACF,iBAAiBA,MAAK;AAAA,YACtB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QANK;AAAA,MAAA,CAQR,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAID;AAAA,EAAA,GACH;AAEJ;;"}
1
+ {"version":3,"file":"Stat.cjs","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["useMemo","Typography","jsxs","Fragment","Box","jsx","Stack","Chip","chip"],"mappings":";;;;;AAsBO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmBA,MAAAA,QAAQ,MAAM;AACrC,QAAI,OAAQ,QAAO;AACnB,QAAI,KAAM,QAAO;AACjB,QAAI,SAAU,QAAO;AACrB,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAE3B,QAAM,oBAAoB,MAAM;AAC9B,WAAO,cAAc,YAAY,IAAI,mCAAKC,qBAAA,EAAW,SAAQ,MAAM,UAAA,KAAA,CAAK;AAAA,EAC1E;AAEA,SACEC,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA,qBAAqB,aACpBD,gCAACE,SAAAA,KAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAAC,+BAACJ,SAAAA,cAAW,SAAQ,MAAK,eAAY,oCAClC,+BACH;AAAA,MACAC,2BAAAA,KAACE,SAAAA,OAAI,WAAU,eAAc,SAAQ,QAAO,YAAW,UAAS,KAAK,GACnE,UAAA;AAAA,QAAAC,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnCI,2BAAAA;AAAAA,UAACD,SAAAA;AAAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAY;AAAA,YACZ,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGD,qBAAqB,YACpBF,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,eAAY,oCACrB,+BACH;AAAA,MACC,SAASI,2BAAAA,IAACJ,SAAAA,YAAA,EAAY,UAAA,MAAA,CAAM;AAAA,IAAA,GAC/B;AAAA,IAGD,qBAAqB,UACpBC,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA;AAAAA,QAACE,SAAAA;AAAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,OAAO,kBAAA;AAAA,UACP,IAAI;AAAA,YACF,iBAAiB;AAAA,YACjB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGD,qBAAqB,cACpBL,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA,IAACC,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAC7B,UAAA,MAAM,IAAI,CAACE,OAAM,MAChBH,2BAAAA;AAAAA,QAACE,SAAAA;AAAAA,QAAA;AAAA,UAEC,OAAOC,MAAK;AAAA,UACZ,IAAI;AAAA,YACF,iBAAiBA,MAAK;AAAA,YACtB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QANK;AAAA,MAAA,CAQR,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAID;AAAA,EAAA,GACH;AAEJ;;;"}
@@ -1,4 +1,3 @@
1
- import "../../index.js";
2
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
2
  import { useMemo } from "react";
4
3
  import { Box, Typography, Stack, Chip } from "@mui/material";
@@ -80,6 +79,7 @@ const Stat = ({
80
79
  ] });
81
80
  };
82
81
  export {
83
- Stat
82
+ Stat,
83
+ Stat as default
84
84
  };
85
85
  //# sourceMappingURL=Stat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stat.js","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["chip"],"mappings":";;;;AAsBO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmB,QAAQ,MAAM;AACrC,QAAI,OAAQ,QAAO;AACnB,QAAI,KAAM,QAAO;AACjB,QAAI,SAAU,QAAO;AACrB,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAE3B,QAAM,oBAAoB,MAAM;AAC9B,WAAO,cAAc,YAAY,IAAI,wBAAK,YAAA,EAAW,SAAQ,MAAM,UAAA,KAAA,CAAK;AAAA,EAC1E;AAEA,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,qBAAqB,aACpB,qBAAC,KAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAA,oBAAC,cAAW,SAAQ,MAAK,eAAY,oCAClC,+BACH;AAAA,MACA,qBAAC,OAAI,WAAU,eAAc,SAAQ,QAAO,YAAW,UAAS,KAAK,GACnE,UAAA;AAAA,QAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAY;AAAA,YACZ,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGD,qBAAqB,YACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC,oBAAC,YAAA,EAAW,eAAY,oCACrB,+BACH;AAAA,MACC,SAAS,oBAAC,YAAA,EAAY,UAAA,MAAA,CAAM;AAAA,IAAA,GAC/B;AAAA,IAGD,qBAAqB,UACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,OAAO,kBAAA;AAAA,UACP,IAAI;AAAA,YACF,iBAAiB;AAAA,YACjB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGD,qBAAqB,cACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC,oBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAC7B,UAAA,MAAM,IAAI,CAACA,OAAM,MAChB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAOA,MAAK;AAAA,UACZ,IAAI;AAAA,YACF,iBAAiBA,MAAK;AAAA,YACtB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QANK;AAAA,MAAA,CAQR,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAID;AAAA,EAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"Stat.js","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["chip"],"mappings":";;;AAsBO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmB,QAAQ,MAAM;AACrC,QAAI,OAAQ,QAAO;AACnB,QAAI,KAAM,QAAO;AACjB,QAAI,SAAU,QAAO;AACrB,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAE3B,QAAM,oBAAoB,MAAM;AAC9B,WAAO,cAAc,YAAY,IAAI,wBAAK,YAAA,EAAW,SAAQ,MAAM,UAAA,KAAA,CAAK;AAAA,EAC1E;AAEA,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,qBAAqB,aACpB,qBAAC,KAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAA,oBAAC,cAAW,SAAQ,MAAK,eAAY,oCAClC,+BACH;AAAA,MACA,qBAAC,OAAI,WAAU,eAAc,SAAQ,QAAO,YAAW,UAAS,KAAK,GACnE,UAAA;AAAA,QAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAY;AAAA,YACZ,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGD,qBAAqB,YACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC,oBAAC,YAAA,EAAW,eAAY,oCACrB,+BACH;AAAA,MACC,SAAS,oBAAC,YAAA,EAAY,UAAA,MAAA,CAAM;AAAA,IAAA,GAC/B;AAAA,IAGD,qBAAqB,UACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,OAAO,kBAAA;AAAA,UACP,IAAI;AAAA,YACF,iBAAiB;AAAA,YACjB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGD,qBAAqB,cACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC,oBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAC7B,UAAA,MAAM,IAAI,CAACA,OAAM,MAChB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAOA,MAAK;AAAA,UACZ,IAAI;AAAA,YACF,iBAAiBA,MAAK;AAAA,YACtB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QANK;AAAA,MAAA,CAQR,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAID;AAAA,EAAA,GACH;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ export { Stat, default } from './Stat';
2
+ export type { StatProps, StatChip } from './Stat';
@@ -0,0 +1,6 @@
1
+ export * from './Stat/index'
2
+ export {}
3
+ import _default from './Stat/index'
4
+ export default _default
5
+ export * from './Stat/index'
6
+ export {}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const React = require("react");
5
+ const material = require("@mui/material");
6
+ const iconsMaterial = require("@mui/icons-material");
7
+ const StatusMessage = ({
8
+ title,
9
+ description,
10
+ messageType = "success",
11
+ displayType = "alert",
12
+ close,
13
+ open: controlledOpen
14
+ }) => {
15
+ const [internalOpen, setInternalOpen] = React.useState(true);
16
+ const titleId = React.useId();
17
+ const descId = React.useId();
18
+ const isControlled = controlledOpen !== void 0;
19
+ const isOpen = isControlled ? controlledOpen : internalOpen;
20
+ const handleClose = () => {
21
+ if (!isControlled) setInternalOpen(false);
22
+ close == null ? void 0 : close();
23
+ };
24
+ const alertVariant = messageType === "danger" ? "error" : messageType;
25
+ const icon = messageType === "success" ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.CheckCircleOutline, { sx: { fontSize: 64, color: "success.main" } }) : messageType === "danger" ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.ErrorOutline, { sx: { fontSize: 64, color: "error.main" } }) : /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.WarningAmber, { sx: { fontSize: 64, color: "warning.main" } });
26
+ if (!description) return null;
27
+ if (!isOpen) return null;
28
+ if (displayType === "modal") {
29
+ return /* @__PURE__ */ jsxRuntime.jsxs(
30
+ material.Dialog,
31
+ {
32
+ open: isOpen,
33
+ onClose: handleClose,
34
+ "aria-labelledby": title ? titleId : void 0,
35
+ "aria-describedby": descId,
36
+ maxWidth: "md",
37
+ slotProps: {
38
+ paper: {
39
+ sx: { borderRadius: "16px", p: 2 }
40
+ }
41
+ },
42
+ children: [
43
+ /* @__PURE__ */ jsxRuntime.jsxs(
44
+ material.DialogContent,
45
+ {
46
+ sx: {
47
+ display: "flex",
48
+ flexDirection: "column",
49
+ alignItems: "center",
50
+ textAlign: "center",
51
+ p: 4,
52
+ gap: 2
53
+ },
54
+ children: [
55
+ /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { mb: 2 }, children: icon }),
56
+ title && /* @__PURE__ */ jsxRuntime.jsx(
57
+ material.Typography,
58
+ {
59
+ id: titleId,
60
+ variant: "h4",
61
+ component: "h2",
62
+ sx: { fontWeight: "bold" },
63
+ children: title
64
+ }
65
+ ),
66
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { id: descId, variant: "body1", color: "text.secondary", children: description })
67
+ ]
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsxRuntime.jsx(material.DialogActions, { sx: { justifyContent: "center", p: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(material.Button, { onClick: handleClose, variant: "contained", color: alertVariant, children: "Aceptar" }) })
71
+ ]
72
+ }
73
+ );
74
+ }
75
+ return /* @__PURE__ */ jsxRuntime.jsxs(
76
+ material.Alert,
77
+ {
78
+ severity: alertVariant,
79
+ sx: { mb: 2, mt: 2 },
80
+ onClose: close !== void 0 ? handleClose : void 0,
81
+ children: [
82
+ title && /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "h6", sx: { fontWeight: "bold" }, children: title }),
83
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "body2", sx: { mt: 1 }, children: description })
84
+ ]
85
+ }
86
+ );
87
+ };
88
+ const initialValues = {
89
+ state: void 0,
90
+ setMessage: () => {
91
+ },
92
+ cleanMessage: () => {
93
+ }
94
+ };
95
+ const StatusMessageContext = React.createContext(initialValues);
96
+ const useStatusMessageContext = () => React.useContext(StatusMessageContext);
97
+ const StatusMessageProvider = ({ children }) => {
98
+ const [stateMessage, setMessage] = React.useState(void 0);
99
+ const cleanMessage = () => {
100
+ setMessage(void 0);
101
+ };
102
+ return /* @__PURE__ */ jsxRuntime.jsx(StatusMessageContext.Provider, { value: { setMessage, cleanMessage, state: stateMessage }, children });
103
+ };
104
+ exports.StatusMessage = StatusMessage;
105
+ exports.StatusMessageProvider = StatusMessageProvider;
106
+ exports.default = StatusMessage;
107
+ exports.useStatusMessageContext = useStatusMessageContext;
108
+ //# sourceMappingURL=StatusMessage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusMessage.cjs","sources":["../../../src/components/StatusMessage/StatusMessage.tsx","../../../src/components/StatusMessage/StatusMessageContext.tsx"],"sourcesContent":["import { useId, useState, type FC } from 'react';\nimport {\n Alert,\n Box,\n Typography,\n Dialog,\n DialogContent,\n DialogActions,\n Button,\n} from '@mui/material';\nimport {\n ErrorOutline as ErrorOutlineIcon,\n CheckCircleOutline as CheckCircleOutlineIcon,\n WarningAmber as WarningAmberIcon,\n} from '@mui/icons-material';\n\nexport interface StatusMessageProps {\n /** Título del mensaje. */\n title?: string;\n /** Descripción/contenido detallado. Requerido para que el componente renderice. */\n description?: string;\n /** Tipo de mensaje (controla color + icono). `danger` mapea a `error` de MUI. */\n messageType?: 'success' | 'danger' | 'warning';\n /** Forma de presentación: alerta inline o modal. Default: `'alert'`. */\n displayType?: 'alert' | 'modal';\n /** Callback al cerrar. Si se omite, no se muestra botón de cerrar. */\n close?: () => void;\n /**\n * Controla visibilidad. Si se omite, el componente maneja su propio\n * state (se oculta solo al llamar `close`). Si se pasa, queda controlled\n * y el consumer es responsable de actualizarlo.\n */\n open?: boolean;\n}\n\n/**\n * Mensaje de éxito / error / advertencia en forma de alerta inline o modal.\n *\n * - **Uncontrolled**: sin pasar `open`, el componente maneja su propia\n * visibilidad. Al llamar `close`, se oculta automáticamente.\n * - **Controlled**: pasando `open`, el consumer decide cuándo mostrar/ocultar.\n */\nexport const StatusMessage: FC<StatusMessageProps> = ({\n title,\n description,\n messageType = 'success',\n displayType = 'alert',\n close,\n open: controlledOpen,\n}) => {\n const [internalOpen, setInternalOpen] = useState(true);\n const titleId = useId();\n const descId = useId();\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const handleClose = () => {\n if (!isControlled) setInternalOpen(false);\n close?.();\n };\n\n const alertVariant = messageType === 'danger' ? 'error' : messageType;\n\n const icon =\n messageType === 'success' ? (\n <CheckCircleOutlineIcon sx={{ fontSize: 64, color: 'success.main' }} />\n ) : messageType === 'danger' ? (\n <ErrorOutlineIcon sx={{ fontSize: 64, color: 'error.main' }} />\n ) : (\n <WarningAmberIcon sx={{ fontSize: 64, color: 'warning.main' }} />\n );\n\n if (!description) return null;\n if (!isOpen) return null;\n\n if (displayType === 'modal') {\n return (\n <Dialog\n open={isOpen}\n onClose={handleClose}\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={descId}\n maxWidth=\"md\"\n slotProps={{\n paper: {\n sx: { borderRadius: '16px', p: 2 },\n },\n }}\n >\n <DialogContent\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n p: 4,\n gap: 2,\n }}\n >\n <Box sx={{ mb: 2 }}>{icon}</Box>\n {title && (\n <Typography\n id={titleId}\n variant=\"h4\"\n component=\"h2\"\n sx={{ fontWeight: 'bold' }}\n >\n {title}\n </Typography>\n )}\n <Typography id={descId} variant=\"body1\" color=\"text.secondary\">\n {description}\n </Typography>\n </DialogContent>\n <DialogActions sx={{ justifyContent: 'center', p: 2 }}>\n <Button onClick={handleClose} variant=\"contained\" color={alertVariant}>\n Aceptar\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n return (\n <Alert\n severity={alertVariant}\n sx={{ mb: 2, mt: 2 }}\n onClose={close !== undefined ? handleClose : undefined}\n >\n {title && (\n <Typography variant=\"h6\" sx={{ fontWeight: 'bold' }}>\n {title}\n </Typography>\n )}\n <Typography variant=\"body2\" sx={{ mt: 1 }}>\n {description}\n </Typography>\n </Alert>\n );\n};\n\nexport default StatusMessage;\n","import {\n createContext,\n useState,\n useContext,\n type Dispatch,\n type SetStateAction,\n type ReactNode,\n} from 'react';\nimport type { StatusMessageProps } from './StatusMessage';\n\nexport type StatusMessageState = {\n [K in 'title' | 'description' | 'messageType']: StatusMessageProps[K] | undefined;\n} & Pick<StatusMessageProps, 'displayType'>;\n\ninterface StatusMessageContextValue {\n state: StatusMessageState | undefined;\n setMessage: Dispatch<SetStateAction<StatusMessageState | undefined>>;\n cleanMessage: () => void;\n}\n\nconst initialValues: StatusMessageContextValue = {\n state: undefined,\n setMessage: () => {},\n cleanMessage: () => {},\n};\n\nconst StatusMessageContext = createContext<StatusMessageContextValue>(initialValues);\n\nexport const useStatusMessageContext = () => useContext(StatusMessageContext);\n\ninterface StatusMessageProviderProps {\n children: ReactNode;\n}\n\nexport const StatusMessageProvider = ({ children }: StatusMessageProviderProps) => {\n const [stateMessage, setMessage] = useState<StatusMessageState | undefined>(undefined);\n const cleanMessage = () => {\n setMessage(undefined);\n };\n\n return (\n <StatusMessageContext.Provider value={{ setMessage, cleanMessage, state: stateMessage }}>\n {children}\n </StatusMessageContext.Provider>\n );\n};\n"],"names":["useState","useId","jsx","CheckCircleOutlineIcon","ErrorOutlineIcon","WarningAmberIcon","jsxs","Dialog","DialogContent","Box","Typography","DialogActions","Button","Alert","createContext","useContext"],"mappings":"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"}