@soyfri/shared-library 1.5.0-beta.4 → 2.0.0-beta.0

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 (564) hide show
  1. package/.dockerignore +8 -0
  2. package/.github/workflows/publish.yml +107 -0
  3. package/.prettierrc +3 -0
  4. package/.storybook/main.ts +19 -0
  5. package/.storybook/preview.ts +14 -0
  6. package/.storybook/vitest.setup.ts +9 -0
  7. package/Dockerfile +37 -0
  8. package/build.js +102 -0
  9. package/chromatic.config.json +5 -0
  10. package/cleanDirectories.js +40 -0
  11. package/dist/components/ActionMenu/ActionMenu.cjs +107 -0
  12. package/dist/components/ActionMenu/ActionMenu.cjs.map +1 -0
  13. package/dist/components/ActionMenu/ActionMenu.d.ts +60 -0
  14. package/dist/components/ActionMenu/ActionMenu.js +107 -0
  15. package/dist/components/ActionMenu/ActionMenu.js.map +1 -0
  16. package/dist/components/ActionMenu/index.d.ts +2 -0
  17. package/dist/components/ActionMenu.d.ts +6 -0
  18. package/dist/components/AppBar/AppBar.cjs +346 -0
  19. package/dist/components/AppBar/AppBar.cjs.map +1 -0
  20. package/dist/components/AppBar/AppBar.d.ts +55 -0
  21. package/dist/components/AppBar/AppBar.js +346 -0
  22. package/dist/components/AppBar/AppBar.js.map +1 -0
  23. package/dist/components/AppBar/AppBar.sx.d.ts +12 -0
  24. package/dist/components/AppBar/AppBarBrand.d.ts +31 -0
  25. package/dist/components/AppBar/AppBarContext.d.ts +18 -0
  26. package/dist/components/AppBar/AppBarMenuToggle.d.ts +39 -0
  27. package/dist/components/AppBar/AppBarUserMenu.d.ts +65 -0
  28. package/dist/components/AppBar/index.d.ts +12 -0
  29. package/dist/components/AppBar.d.ts +6 -0
  30. package/dist/components/Autocomplete/Autocomplete.cjs +314 -0
  31. package/dist/components/Autocomplete/Autocomplete.cjs.map +1 -0
  32. package/dist/components/Autocomplete/Autocomplete.d.ts +83 -0
  33. package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +6 -0
  34. package/dist/components/Autocomplete/Autocomplete.helpers.d.ts +18 -0
  35. package/dist/components/Autocomplete/Autocomplete.js +314 -0
  36. package/dist/components/Autocomplete/Autocomplete.js.map +1 -0
  37. package/dist/components/Autocomplete/Autocomplete.sx.d.ts +7 -0
  38. package/dist/components/Autocomplete/Autocomplete.types.d.ts +1 -0
  39. package/dist/components/Autocomplete/_parts/AutocompleteChips.d.ts +19 -0
  40. package/dist/components/Autocomplete/_parts/AutocompleteLoader.d.ts +9 -0
  41. package/dist/components/Autocomplete/_parts/AutocompleteOption.d.ts +19 -0
  42. package/dist/components/Autocomplete/index.d.ts +2 -0
  43. package/dist/components/Autocomplete.d.ts +6 -0
  44. package/dist/components/Avatar/Avatar.cjs +163 -0
  45. package/dist/components/Avatar/Avatar.cjs.map +1 -0
  46. package/dist/components/Avatar/Avatar.d.ts +33 -0
  47. package/dist/components/Avatar/Avatar.definitions.d.ts +11 -0
  48. package/dist/components/Avatar/Avatar.js +163 -0
  49. package/dist/components/Avatar/Avatar.js.map +1 -0
  50. package/dist/components/Card/Card.cjs +187 -0
  51. package/dist/components/Card/Card.cjs.map +1 -0
  52. package/dist/components/Card/Card.d.ts +83 -0
  53. package/dist/components/Card/Card.js +187 -0
  54. package/dist/components/Card/Card.js.map +1 -0
  55. package/dist/components/Card/Card.sx.d.ts +17 -0
  56. package/dist/components/Card/index.d.ts +4 -0
  57. package/dist/components/Card.d.ts +6 -0
  58. package/dist/components/DatePicker/DatePicker.cjs +203 -0
  59. package/dist/components/DatePicker/DatePicker.cjs.map +1 -0
  60. package/dist/components/DatePicker/DatePicker.d.ts +56 -0
  61. package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +1 -0
  62. package/dist/components/DatePicker/DatePicker.helpers.d.ts +7 -0
  63. package/dist/components/DatePicker/DatePicker.js +203 -0
  64. package/dist/components/DatePicker/DatePicker.js.map +1 -0
  65. package/dist/components/DatePicker/DatePicker.sx.d.ts +9 -0
  66. package/dist/components/DatePicker/DatePicker.types.d.ts +1 -0
  67. package/dist/components/DatePicker/index.d.ts +2 -0
  68. package/dist/components/DatePicker.d.ts +6 -0
  69. package/dist/components/DateTimePicker/DateTimePicker.cjs +222 -0
  70. package/dist/components/DateTimePicker/DateTimePicker.cjs.map +1 -0
  71. package/dist/components/DateTimePicker/DateTimePicker.d.ts +65 -0
  72. package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +1 -0
  73. package/dist/components/DateTimePicker/DateTimePicker.helpers.d.ts +11 -0
  74. package/dist/components/DateTimePicker/DateTimePicker.js +222 -0
  75. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -0
  76. package/dist/components/DateTimePicker/DateTimePicker.sx.d.ts +7 -0
  77. package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +1 -0
  78. package/dist/components/DateTimePicker/index.d.ts +2 -0
  79. package/dist/components/DateTimePicker.d.ts +6 -0
  80. package/dist/components/Drawer/Drawer.cjs +271 -0
  81. package/dist/components/Drawer/Drawer.cjs.map +1 -0
  82. package/dist/components/Drawer/Drawer.d.ts +51 -0
  83. package/dist/components/Drawer/Drawer.js +271 -0
  84. package/dist/components/Drawer/Drawer.js.map +1 -0
  85. package/dist/components/Drawer/Drawer.sx.d.ts +23 -0
  86. package/dist/components/Drawer/DrawerContext.d.ts +18 -0
  87. package/dist/components/Drawer/DrawerItem.d.ts +35 -0
  88. package/dist/components/Drawer/index.d.ts +6 -0
  89. package/dist/components/Drawer.d.ts +6 -0
  90. package/{components → dist/components}/Icon/Icon.cjs +44 -3
  91. package/dist/components/Icon/Icon.cjs.map +1 -0
  92. package/dist/components/Icon/Icon.d.ts +54 -0
  93. package/{components → dist/components}/Icon/Icon.js +44 -3
  94. package/dist/components/Icon/Icon.js.map +1 -0
  95. package/dist/components/Input/Input.cjs +175 -0
  96. package/dist/components/Input/Input.cjs.map +1 -0
  97. package/dist/components/Input/Input.d.ts +37 -0
  98. package/{components → dist/components}/Input/Input.definitions.d.ts +5 -2
  99. package/dist/components/Input/Input.helpers.d.ts +14 -0
  100. package/dist/components/Input/Input.js +175 -0
  101. package/dist/components/Input/Input.js.map +1 -0
  102. package/dist/components/Input/Input.sx.d.ts +8 -0
  103. package/dist/components/Input/Input.types.d.ts +1 -0
  104. package/dist/components/Input/index.d.ts +2 -0
  105. package/dist/components/Input.d.ts +6 -0
  106. package/dist/components/InputGroup/InputGroup.cjs +139 -0
  107. package/dist/components/InputGroup/InputGroup.cjs.map +1 -0
  108. package/dist/components/InputGroup/InputGroup.d.ts +42 -0
  109. package/dist/components/InputGroup/InputGroup.definitions.d.ts +6 -0
  110. package/dist/components/InputGroup/InputGroup.js +139 -0
  111. package/dist/components/InputGroup/InputGroup.js.map +1 -0
  112. package/dist/components/Modal/Modal.cjs +319 -0
  113. package/dist/components/Modal/Modal.cjs.map +1 -0
  114. package/dist/components/Modal/Modal.d.ts +65 -0
  115. package/dist/components/Modal/Modal.js +319 -0
  116. package/dist/components/Modal/Modal.js.map +1 -0
  117. package/{components → dist/components}/Modal/ModalFooter.d.ts +9 -1
  118. package/dist/components/Modal/index.d.ts +6 -0
  119. package/dist/components/PageLoader/PageLoader.cjs +61 -0
  120. package/dist/components/PageLoader/PageLoader.cjs.map +1 -0
  121. package/dist/components/PageLoader/PageLoader.d.ts +38 -0
  122. package/dist/components/PageLoader/PageLoader.js +61 -0
  123. package/dist/components/PageLoader/PageLoader.js.map +1 -0
  124. package/dist/components/PageLoader/index.d.ts +2 -0
  125. package/dist/components/PageLoader.d.ts +6 -0
  126. package/dist/components/ScrollTopButton/ScrollTopButton.cjs +79 -0
  127. package/dist/components/ScrollTopButton/ScrollTopButton.cjs.map +1 -0
  128. package/dist/components/ScrollTopButton/ScrollTopButton.d.ts +48 -0
  129. package/dist/components/ScrollTopButton/ScrollTopButton.js +79 -0
  130. package/dist/components/ScrollTopButton/ScrollTopButton.js.map +1 -0
  131. package/dist/components/ScrollTopButton/index.d.ts +4 -0
  132. package/dist/components/ScrollTopButton/scrollToTop.d.ts +29 -0
  133. package/dist/components/ScrollTopButton.d.ts +6 -0
  134. package/dist/components/Select/Select.cjs +448 -0
  135. package/dist/components/Select/Select.cjs.map +1 -0
  136. package/{components → dist/components}/Select/Select.d.ts +33 -13
  137. package/{components → dist/components}/Select/Select.definitions.d.ts +3 -0
  138. package/dist/components/Select/Select.helpers.d.ts +28 -0
  139. package/dist/components/Select/Select.js +448 -0
  140. package/dist/components/Select/Select.js.map +1 -0
  141. package/dist/components/Select/Select.sx.d.ts +7 -0
  142. package/dist/components/Select/Select.types.d.ts +1 -0
  143. package/dist/components/Select/_parts/SelectMenuItem.d.ts +20 -0
  144. package/dist/components/Select/_parts/SelectSearchHeader.d.ts +15 -0
  145. package/dist/components/Select/_parts/SelectValue.d.ts +22 -0
  146. package/dist/components/Select/index.d.ts +2 -0
  147. package/dist/components/Select.d.ts +6 -0
  148. package/{components → dist/components}/Stat/Stat.cjs +1 -1
  149. package/{components → dist/components}/Stat/Stat.js +1 -1
  150. package/{components → dist/components}/Stepper/Stepper.cjs +4 -1
  151. package/dist/components/Stepper/Stepper.cjs.map +1 -0
  152. package/{components → dist/components}/Stepper/Stepper.d.ts +5 -0
  153. package/{components → dist/components}/Stepper/Stepper.js +4 -1
  154. package/dist/components/Stepper/Stepper.js.map +1 -0
  155. package/dist/components/_shared/formField.sx.d.ts +33 -0
  156. package/dist/components/_shared/resolvePreset.d.ts +18 -0
  157. package/dist/formField.sx-CQ1mbk9M.cjs +76 -0
  158. package/dist/formField.sx-CQ1mbk9M.cjs.map +1 -0
  159. package/dist/formField.sx-DfVbMe0V.js +77 -0
  160. package/dist/formField.sx-DfVbMe0V.js.map +1 -0
  161. package/dist/hooks/Wizard/Wizard.cjs +7 -0
  162. package/dist/hooks/Wizard/Wizard.cjs.map +1 -0
  163. package/dist/hooks/Wizard/Wizard.js +7 -0
  164. package/dist/hooks/Wizard/Wizard.js.map +1 -0
  165. package/dist/hooks/Wizard/WizardContext.d.ts +67 -0
  166. package/dist/hooks/Wizard/index.d.ts +3 -0
  167. package/dist/hooks/Wizard/useWizard.d.ts +9 -0
  168. package/dist/hooks/Wizard.d.ts +2 -0
  169. package/dist/index.cjs +100 -0
  170. package/dist/index.cjs.map +1 -0
  171. package/dist/index.d.ts +3 -0
  172. package/dist/index.js +31 -0
  173. package/{index.js.map → dist/index.js.map} +1 -1
  174. package/dist/mui.d.ts +5 -0
  175. package/dist/resolvePreset-B-IB0ehH.js +15 -0
  176. package/dist/resolvePreset-B-IB0ehH.js.map +1 -0
  177. package/dist/resolvePreset-CT3kU-K2.cjs +14 -0
  178. package/dist/resolvePreset-CT3kU-K2.cjs.map +1 -0
  179. package/dist/theme/componentStyles.d.ts +32 -0
  180. package/dist/theme/tokens.d.ts +28 -0
  181. package/dist/useWizard-CWdIxZzX.cjs +94 -0
  182. package/dist/useWizard-CWdIxZzX.cjs.map +1 -0
  183. package/dist/useWizard-CWq--C3o.js +95 -0
  184. package/dist/useWizard-CWq--C3o.js.map +1 -0
  185. package/package.json +43 -134
  186. package/rollup.config.cjs +87 -0
  187. package/src/components/ActionMenu/ActionMenu.stories.tsx +230 -0
  188. package/src/components/ActionMenu/ActionMenu.tsx +174 -0
  189. package/src/components/ActionMenu/index.ts +2 -0
  190. package/src/components/AppBar/AppBar.stories.tsx +272 -0
  191. package/src/components/AppBar/AppBar.sx.ts +32 -0
  192. package/src/components/AppBar/AppBar.tsx +123 -0
  193. package/src/components/AppBar/AppBarBrand.tsx +120 -0
  194. package/src/components/AppBar/AppBarContext.ts +25 -0
  195. package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
  196. package/src/components/AppBar/AppBarUserMenu.tsx +217 -0
  197. package/src/components/AppBar/index.ts +25 -0
  198. package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
  199. package/src/components/Autocomplete/Autocomplete.helpers.ts +60 -0
  200. package/src/components/Autocomplete/Autocomplete.stories.tsx +748 -0
  201. package/src/components/Autocomplete/Autocomplete.sx.ts +30 -0
  202. package/src/components/Autocomplete/Autocomplete.tsx +361 -0
  203. package/src/components/Autocomplete/Autocomplete.types.ts +13 -0
  204. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
  205. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
  206. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +31 -0
  207. package/src/components/Autocomplete/index.ts +12 -0
  208. package/src/components/Avatar/Avatar.definitions.ts +162 -0
  209. package/src/components/Avatar/Avatar.stories.tsx +258 -0
  210. package/src/components/Avatar/Avatar.tsx +206 -0
  211. package/src/components/Avatar/index.ts +1 -0
  212. package/src/components/Button/Button.definition.ts +97 -0
  213. package/src/components/Button/Button.stories.tsx +285 -0
  214. package/src/components/Button/Button.tsx +67 -0
  215. package/src/components/Button/index.ts +1 -0
  216. package/src/components/Card/Card.definition.ts +5 -0
  217. package/src/components/Card/Card.stories.tsx +221 -0
  218. package/src/components/Card/Card.sx.ts +104 -0
  219. package/src/components/Card/Card.tsx +200 -0
  220. package/src/components/Card/index.ts +9 -0
  221. package/src/components/Chip/Chip.definitions.ts +167 -0
  222. package/src/components/Chip/Chip.stories.tsx +265 -0
  223. package/src/components/Chip/Chip.tsx +61 -0
  224. package/src/components/Chip/index.ts +1 -0
  225. package/src/components/Column/Column.tsx +29 -0
  226. package/src/components/Column/index.ts +1 -0
  227. package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
  228. package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
  229. package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
  230. package/src/components/DatePicker/DatePicker.sx.ts +33 -0
  231. package/src/components/DatePicker/DatePicker.tsx +189 -0
  232. package/src/components/DatePicker/DatePicker.types.ts +10 -0
  233. package/src/components/DatePicker/index.ts +9 -0
  234. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +191 -0
  235. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +252 -0
  236. package/src/components/DateRangePicker/DateRangePicker.tsx +56 -0
  237. package/src/components/DateRangePicker/index.ts +1 -0
  238. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +256 -0
  239. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +38 -0
  240. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +418 -0
  241. package/src/components/DateTimePicker/DateTimePicker.sx.ts +30 -0
  242. package/src/components/DateTimePicker/DateTimePicker.tsx +225 -0
  243. package/src/components/DateTimePicker/DateTimePicker.types.ts +10 -0
  244. package/src/components/DateTimePicker/index.ts +9 -0
  245. package/src/components/Drawer/Drawer.stories.tsx +270 -0
  246. package/src/components/Drawer/Drawer.sx.ts +106 -0
  247. package/src/components/Drawer/Drawer.tsx +214 -0
  248. package/src/components/Drawer/DrawerContext.ts +26 -0
  249. package/src/components/Drawer/DrawerItem.tsx +110 -0
  250. package/src/components/Drawer/index.ts +10 -0
  251. package/src/components/Flyout/Flyout.stories.tsx +282 -0
  252. package/src/components/Flyout/Flyout.tsx +122 -0
  253. package/src/components/Flyout/index.ts +1 -0
  254. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  255. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  256. package/src/components/Gallery/Gallery.tsx +118 -0
  257. package/src/components/Gallery/GalleryLightbox.tsx +170 -0
  258. package/src/components/Gallery/GalleryMain.tsx +84 -0
  259. package/src/components/Gallery/GalleryThumbnails.tsx +106 -0
  260. package/src/components/Gallery/index.ts +1 -0
  261. package/src/components/Icon/Icon.stories.tsx +121 -0
  262. package/src/components/Icon/Icon.tsx +175 -0
  263. package/src/components/Icon/index.ts +2 -0
  264. package/src/components/Input/Input.definitions.ts +324 -0
  265. package/src/components/Input/Input.helpers.ts +49 -0
  266. package/src/components/Input/Input.stories.tsx +499 -0
  267. package/src/components/Input/Input.sx.ts +42 -0
  268. package/src/components/Input/Input.tsx +141 -0
  269. package/src/components/Input/Input.types.ts +10 -0
  270. package/src/components/Input/index.ts +9 -0
  271. package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
  272. package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
  273. package/src/components/InputGroup/InputGroup.tsx +179 -0
  274. package/src/components/InputGroup/index.ts +1 -0
  275. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  276. package/src/components/MenuButton/MenuButton.tsx +100 -0
  277. package/src/components/MenuButton/index.ts +1 -0
  278. package/src/components/Modal/Modal.stories.tsx +721 -0
  279. package/src/components/Modal/Modal.tsx +355 -0
  280. package/src/components/Modal/ModalBody.tsx +16 -0
  281. package/src/components/Modal/ModalFooter.tsx +71 -0
  282. package/src/components/Modal/ModalHeader.tsx +18 -0
  283. package/src/components/Modal/index.ts +6 -0
  284. package/src/components/PageLoader/PageLoader.stories.tsx +217 -0
  285. package/src/components/PageLoader/PageLoader.tsx +96 -0
  286. package/src/components/PageLoader/index.ts +2 -0
  287. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +158 -0
  288. package/src/components/ScrollTopButton/ScrollTopButton.tsx +135 -0
  289. package/src/components/ScrollTopButton/index.ts +8 -0
  290. package/src/components/ScrollTopButton/scrollToTop.ts +37 -0
  291. package/src/components/Select/Select.definitions.ts +602 -0
  292. package/src/components/Select/Select.helpers.ts +71 -0
  293. package/src/components/Select/Select.stories.tsx +687 -0
  294. package/src/components/Select/Select.sx.ts +14 -0
  295. package/src/components/Select/Select.tsx +429 -0
  296. package/src/components/Select/Select.types.ts +15 -0
  297. package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
  298. package/src/components/Select/_parts/SelectSearchHeader.tsx +51 -0
  299. package/src/components/Select/_parts/SelectValue.tsx +96 -0
  300. package/src/components/Select/index.ts +14 -0
  301. package/src/components/Stat/Stat.stories.tsx +85 -0
  302. package/src/components/Stat/Stat.tsx +117 -0
  303. package/src/components/Stat/index.ts +2 -0
  304. package/src/components/StatusMessage/StatusMessage.stories.tsx +130 -0
  305. package/src/components/StatusMessage/StatusMessage.tsx +162 -0
  306. package/src/components/StatusMessage/index.ts +2 -0
  307. package/src/components/Stepper/Step.tsx +21 -0
  308. package/src/components/Stepper/Stepper.definition.ts +75 -0
  309. package/src/components/Stepper/Stepper.stories.tsx +122 -0
  310. package/src/components/Stepper/Stepper.tsx +75 -0
  311. package/src/components/Stepper/index.ts +2 -0
  312. package/src/components/Table/EmptyTable.png +0 -0
  313. package/src/components/Table/Table.definition.ts +580 -0
  314. package/src/components/Table/Table.stories.tsx +853 -0
  315. package/src/components/Table/Table.tsx +495 -0
  316. package/src/components/Table/data.ts +134 -0
  317. package/src/components/Table/exportsUtils.ts +195 -0
  318. package/src/components/Table/index.ts +3 -0
  319. package/src/components/Table/types.ts +34 -0
  320. package/src/components/Tabs/Tab.definition.ts +53 -0
  321. package/src/components/Tabs/Tab.tsx +19 -0
  322. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  323. package/src/components/Tabs/Tabs.tsx +99 -0
  324. package/src/components/Tabs/_tabUtils.tsx +4 -0
  325. package/src/components/Tabs/index.ts +2 -0
  326. package/src/components/Timeline/Timeline.definition.ts +43 -0
  327. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  328. package/src/components/Timeline/Timeline.tsx +49 -0
  329. package/src/components/Timeline/TimelineItem.tsx +31 -0
  330. package/src/components/Timeline/index.ts +2 -0
  331. package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
  332. package/src/components/Tooltip/Tooltip.tsx +58 -0
  333. package/src/components/Tooltip/index.ts +1 -0
  334. package/src/components/_shared/formField.sx.ts +118 -0
  335. package/src/components/_shared/resolvePreset.ts +35 -0
  336. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  337. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  338. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  339. package/src/hooks/ClipBoard/index.ts +1 -0
  340. package/src/hooks/Wizard/Wizard.stories.tsx +301 -0
  341. package/src/hooks/Wizard/WizardContext.tsx +166 -0
  342. package/src/hooks/Wizard/index.ts +6 -0
  343. package/src/hooks/Wizard/useWizard.ts +13 -0
  344. package/src/index.ts +17 -0
  345. package/src/mui.ts +44 -0
  346. package/src/styles.css +3 -0
  347. package/src/theme/componentStyles.ts +47 -0
  348. package/src/theme/tokens.ts +43 -0
  349. package/tailwind.config.js +10 -0
  350. package/tsconfig.json +48 -0
  351. package/tsup.config.js +41 -0
  352. package/vite.config.js +132 -0
  353. package/vitest.config.ts +35 -0
  354. package/DatePicker-BSNboVhN.js +0 -201
  355. package/DatePicker-BSNboVhN.js.map +0 -1
  356. package/DatePicker-BoqxWAhj.cjs +0 -200
  357. package/DatePicker-BoqxWAhj.cjs.map +0 -1
  358. package/Input-DFHs7cJ_.js +0 -171
  359. package/Input-DFHs7cJ_.js.map +0 -1
  360. package/Input-c8MwNNPg.cjs +0 -170
  361. package/Input-c8MwNNPg.cjs.map +0 -1
  362. package/Select-BO2N56sm.cjs +0 -411
  363. package/Select-BO2N56sm.cjs.map +0 -1
  364. package/Select-BcLkyHSE.js +0 -412
  365. package/Select-BcLkyHSE.js.map +0 -1
  366. package/components/Autocomplete/Autocomplete.cjs +0 -132
  367. package/components/Autocomplete/Autocomplete.cjs.map +0 -1
  368. package/components/Autocomplete/Autocomplete.d.ts +0 -28
  369. package/components/Autocomplete/Autocomplete.js +0 -132
  370. package/components/Autocomplete/Autocomplete.js.map +0 -1
  371. package/components/Autocomplete/index.d.ts +0 -1
  372. package/components/Autocomplete.d.ts +0 -2
  373. package/components/Avatar/Avatar.cjs +0 -126
  374. package/components/Avatar/Avatar.cjs.map +0 -1
  375. package/components/Avatar/Avatar.d.ts +0 -19
  376. package/components/Avatar/Avatar.js +0 -126
  377. package/components/Avatar/Avatar.js.map +0 -1
  378. package/components/Card/Card.cjs +0 -28
  379. package/components/Card/Card.cjs.map +0 -1
  380. package/components/Card/Card.d.ts +0 -13
  381. package/components/Card/Card.js +0 -28
  382. package/components/Card/Card.js.map +0 -1
  383. package/components/Card/index.d.ts +0 -1
  384. package/components/Card.d.ts +0 -2
  385. package/components/DatePicker/DatePicker.cjs +0 -5
  386. package/components/DatePicker/DatePicker.cjs.map +0 -1
  387. package/components/DatePicker/DatePicker.d.ts +0 -18
  388. package/components/DatePicker/DatePicker.js +0 -5
  389. package/components/DatePicker/DatePicker.js.map +0 -1
  390. package/components/DatePicker/index.d.ts +0 -1
  391. package/components/DatePicker.d.ts +0 -2
  392. package/components/DateTimePicker/DateTimePicker.cjs +0 -208
  393. package/components/DateTimePicker/DateTimePicker.cjs.map +0 -1
  394. package/components/DateTimePicker/DateTimePicker.d.ts +0 -28
  395. package/components/DateTimePicker/DateTimePicker.js +0 -208
  396. package/components/DateTimePicker/DateTimePicker.js.map +0 -1
  397. package/components/DateTimePicker/index.d.ts +0 -1
  398. package/components/DateTimePicker.d.ts +0 -2
  399. package/components/Icon/Icon.cjs.map +0 -1
  400. package/components/Icon/Icon.d.ts +0 -21
  401. package/components/Icon/Icon.js.map +0 -1
  402. package/components/Input/Input.cjs +0 -5
  403. package/components/Input/Input.cjs.map +0 -1
  404. package/components/Input/Input.d.ts +0 -32
  405. package/components/Input/Input.js +0 -5
  406. package/components/Input/Input.js.map +0 -1
  407. package/components/Input/index.d.ts +0 -1
  408. package/components/Input.d.ts +0 -2
  409. package/components/InputGroup/InputGroup.cjs +0 -126
  410. package/components/InputGroup/InputGroup.cjs.map +0 -1
  411. package/components/InputGroup/InputGroup.d.ts +0 -6
  412. package/components/InputGroup/InputGroup.js +0 -126
  413. package/components/InputGroup/InputGroup.js.map +0 -1
  414. package/components/Modal/Modal.cjs +0 -209
  415. package/components/Modal/Modal.cjs.map +0 -1
  416. package/components/Modal/Modal.d.ts +0 -29
  417. package/components/Modal/Modal.js +0 -209
  418. package/components/Modal/Modal.js.map +0 -1
  419. package/components/Modal/index.d.ts +0 -1
  420. package/components/Select/Select.cjs +0 -6
  421. package/components/Select/Select.cjs.map +0 -1
  422. package/components/Select/Select.js +0 -6
  423. package/components/Select/Select.js.map +0 -1
  424. package/components/Select/index.d.ts +0 -1
  425. package/components/Select.d.ts +0 -2
  426. package/components/Stepper/Stepper.cjs.map +0 -1
  427. package/components/Stepper/Stepper.js.map +0 -1
  428. package/index.cjs +0 -2
  429. package/index.cjs.map +0 -1
  430. package/index.d.ts +0 -0
  431. package/index.js +0 -2
  432. /package/{README.md → Readme.md} +0 -0
  433. /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
  434. /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
  435. /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
  436. /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
  437. /package/{components → dist/components}/Avatar/index.d.ts +0 -0
  438. /package/{components → dist/components}/Avatar.d.ts +0 -0
  439. /package/{components → dist/components}/Button/Button.cjs +0 -0
  440. /package/{components → dist/components}/Button/Button.cjs.map +0 -0
  441. /package/{components → dist/components}/Button/Button.d.ts +0 -0
  442. /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
  443. /package/{components → dist/components}/Button/Button.js +0 -0
  444. /package/{components → dist/components}/Button/Button.js.map +0 -0
  445. /package/{components → dist/components}/Button/index.d.ts +0 -0
  446. /package/{components → dist/components}/Button.d.ts +0 -0
  447. /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
  448. /package/{components → dist/components}/Chip/Chip.cjs +0 -0
  449. /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
  450. /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
  451. /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
  452. /package/{components → dist/components}/Chip/Chip.js +0 -0
  453. /package/{components → dist/components}/Chip/Chip.js.map +0 -0
  454. /package/{components → dist/components}/Chip/index.d.ts +0 -0
  455. /package/{components → dist/components}/Chip.d.ts +0 -0
  456. /package/{components → dist/components}/Column/Column.cjs +0 -0
  457. /package/{components → dist/components}/Column/Column.cjs.map +0 -0
  458. /package/{components → dist/components}/Column/Column.d.ts +0 -0
  459. /package/{components → dist/components}/Column/Column.js +0 -0
  460. /package/{components → dist/components}/Column/Column.js.map +0 -0
  461. /package/{components → dist/components}/Column/index.d.ts +0 -0
  462. /package/{components → dist/components}/Column.d.ts +0 -0
  463. /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs +0 -0
  464. /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  465. /package/{components → dist/components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  466. /package/{components → dist/components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  467. /package/{components → dist/components}/DateRangePicker/DateRangePicker.js +0 -0
  468. /package/{components → dist/components}/DateRangePicker/DateRangePicker.js.map +0 -0
  469. /package/{components → dist/components}/DateRangePicker/index.d.ts +0 -0
  470. /package/{components → dist/components}/DateRangePicker.d.ts +0 -0
  471. /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
  472. /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
  473. /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
  474. /package/{components → dist/components}/Flyout/Flyout.js +0 -0
  475. /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
  476. /package/{components → dist/components}/Flyout/index.d.ts +0 -0
  477. /package/{components → dist/components}/Flyout.d.ts +0 -0
  478. /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
  479. /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
  480. /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
  481. /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
  482. /package/{components → dist/components}/Gallery/Gallery.js +0 -0
  483. /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
  484. /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
  485. /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
  486. /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
  487. /package/{components → dist/components}/Gallery/index.d.ts +0 -0
  488. /package/{components → dist/components}/Gallery.d.ts +0 -0
  489. /package/{components → dist/components}/Icon/index.d.ts +0 -0
  490. /package/{components → dist/components}/Icon.d.ts +0 -0
  491. /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
  492. /package/{components → dist/components}/InputGroup.d.ts +0 -0
  493. /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
  494. /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
  495. /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
  496. /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
  497. /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
  498. /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
  499. /package/{components → dist/components}/MenuButton.d.ts +0 -0
  500. /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
  501. /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
  502. /package/{components → dist/components}/Modal.d.ts +0 -0
  503. /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
  504. /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
  505. /package/{components → dist/components}/Stat/Stat.js.map +0 -0
  506. /package/{components → dist/components}/Stat/index.d.ts +0 -0
  507. /package/{components → dist/components}/Stat.d.ts +0 -0
  508. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
  509. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
  510. /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
  511. /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
  512. /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
  513. /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
  514. /package/{components → dist/components}/StatusMessage.d.ts +0 -0
  515. /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
  516. /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
  517. /package/{components → dist/components}/Stepper/index.d.ts +0 -0
  518. /package/{components → dist/components}/Stepper.d.ts +0 -0
  519. /package/{components → dist/components}/Table/Table.cjs +0 -0
  520. /package/{components → dist/components}/Table/Table.cjs.map +0 -0
  521. /package/{components → dist/components}/Table/Table.d.ts +0 -0
  522. /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
  523. /package/{components → dist/components}/Table/Table.js +0 -0
  524. /package/{components → dist/components}/Table/Table.js.map +0 -0
  525. /package/{components → dist/components}/Table/data.d.ts +0 -0
  526. /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
  527. /package/{components → dist/components}/Table/index.d.ts +0 -0
  528. /package/{components → dist/components}/Table/types.d.ts +0 -0
  529. /package/{components → dist/components}/Table.d.ts +0 -0
  530. /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
  531. /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
  532. /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
  533. /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
  534. /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
  535. /package/{components → dist/components}/Tabs/Tabs.js +0 -0
  536. /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
  537. /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
  538. /package/{components → dist/components}/Tabs/index.d.ts +0 -0
  539. /package/{components → dist/components}/Tabs.d.ts +0 -0
  540. /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
  541. /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
  542. /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
  543. /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
  544. /package/{components → dist/components}/Timeline/Timeline.js +0 -0
  545. /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
  546. /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
  547. /package/{components → dist/components}/Timeline/index.d.ts +0 -0
  548. /package/{components → dist/components}/Timeline.d.ts +0 -0
  549. /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
  550. /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
  551. /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
  552. /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
  553. /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
  554. /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
  555. /package/{components → dist/components}/Tooltip.d.ts +0 -0
  556. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
  557. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  558. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  559. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
  560. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
  561. /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  562. /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
  563. /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
  564. /package/{index.css → dist/styles.css} +0 -0
@@ -1,170 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __spreadValues = (a, b) => {
10
- for (var prop in b || (b = {}))
11
- if (__hasOwnProp.call(b, prop))
12
- __defNormalProp(a, prop, b[prop]);
13
- if (__getOwnPropSymbols)
14
- for (var prop of __getOwnPropSymbols(b)) {
15
- if (__propIsEnum.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- }
18
- return a;
19
- };
20
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
- var __objRest = (source, exclude) => {
22
- var target = {};
23
- for (var prop in source)
24
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
- target[prop] = source[prop];
26
- if (source != null && __getOwnPropSymbols)
27
- for (var prop of __getOwnPropSymbols(source)) {
28
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
- target[prop] = source[prop];
30
- }
31
- return target;
32
- };
33
- const jsxRuntime = require("react/jsx-runtime");
34
- const React = require("react");
35
- const material = require("@mui/material");
36
- const system = require("@mui/system");
37
- const reactHookForm = require("react-hook-form");
38
- const StyledTextField = system.styled(material.TextField)(({ theme }) => ({
39
- "& .MuiInputBase-root": {
40
- maxHeight: "34px",
41
- padding: "8px 10px",
42
- borderRadius: "10px",
43
- display: "flex",
44
- alignItems: "center",
45
- fontSize: "14px"
46
- },
47
- "& .MuiInputBase-input": {
48
- padding: "0 !important",
49
- height: "18px",
50
- display: "flex",
51
- alignItems: "center",
52
- marginTop: "-4px"
53
- },
54
- "& .MuiInputLabel-root": {
55
- top: "50%",
56
- transform: "translate(14px, -50%)",
57
- "&.MuiInputLabel-shrink": {
58
- transform: "translate(1px, -200%) scale(0.75)",
59
- fontSize: "16px !important",
60
- "> legend": {
61
- display: "none"
62
- }
63
- }
64
- },
65
- "& .MuiInputLabel-root.Mui-error": {
66
- top: "25%"
67
- },
68
- "& .MuiInputBase-root > fieldset > legend": {
69
- display: "none"
70
- },
71
- "& .MuiOutlinedInput-notchedOutline": {
72
- border: "0.7px solid",
73
- borderColor: "#e0e0e0"
74
- }
75
- }));
76
- const Input = React.forwardRef((_a, ref) => {
77
- var _b = _a, {
78
- type = "text",
79
- variant = "outlined",
80
- min,
81
- max,
82
- inputProps: customInputProps,
83
- slotProps: customSlotProps,
84
- value,
85
- onChange
86
- } = _b, rest = __objRest(_b, [
87
- "type",
88
- "variant",
89
- "min",
90
- "max",
91
- "inputProps",
92
- "slotProps",
93
- "value",
94
- "onChange"
95
- ]);
96
- const isRHFMode = "control" in rest && rest.control !== void 0;
97
- const htmlInputProps = __spreadValues({}, customInputProps);
98
- if (type === "number") {
99
- htmlInputProps.min = min !== void 0 ? min : Number.NEGATIVE_INFINITY;
100
- if (max !== void 0) {
101
- htmlInputProps.max = max;
102
- }
103
- }
104
- const finalSlotProps = __spreadProps(__spreadValues({}, customSlotProps), {
105
- htmlInput: __spreadValues(__spreadValues({}, customSlotProps == null ? void 0 : customSlotProps.htmlInput), htmlInputProps)
106
- });
107
- const handleChangeInternal = (event, rhfOnChange) => {
108
- const rawValue = event.target.value;
109
- let newValue;
110
- if (type === "number") {
111
- newValue = rawValue === "" || rawValue === "-" ? rawValue : parseFloat(rawValue);
112
- if (isNaN(newValue) && rawValue !== "" && rawValue !== "-") newValue = rawValue;
113
- } else {
114
- newValue = rawValue;
115
- }
116
- if (isRHFMode) {
117
- rhfOnChange == null ? void 0 : rhfOnChange(newValue);
118
- } else {
119
- onChange == null ? void 0 : onChange(newValue);
120
- }
121
- };
122
- if (isRHFMode) {
123
- const rhfProps = rest;
124
- return /* @__PURE__ */ jsxRuntime.jsx(
125
- reactHookForm.Controller,
126
- {
127
- name: rhfProps.name,
128
- control: rhfProps.control,
129
- rules: rhfProps.validation,
130
- render: ({ field, fieldState: { error } }) => {
131
- var _a2;
132
- return /* @__PURE__ */ jsxRuntime.jsx(
133
- StyledTextField,
134
- __spreadValues({
135
- fullWidth: true,
136
- value: (_a2 = field.value) != null ? _a2 : "",
137
- onChange: (e) => handleChangeInternal(e, field.onChange),
138
- onBlur: field.onBlur,
139
- type,
140
- variant,
141
- slotProps: finalSlotProps,
142
- inputRef: field.ref,
143
- error: !!error,
144
- helperText: error == null ? void 0 : error.message
145
- }, rest)
146
- );
147
- }
148
- }
149
- );
150
- } else {
151
- const standardProps = rest;
152
- return /* @__PURE__ */ jsxRuntime.jsx(
153
- StyledTextField,
154
- __spreadValues({
155
- fullWidth: true,
156
- name: standardProps.name,
157
- value: value != null ? value : "",
158
- onChange: (e) => handleChangeInternal(e),
159
- type,
160
- variant,
161
- slotProps: finalSlotProps,
162
- inputRef: ref,
163
- error: standardProps.error,
164
- helperText: standardProps.helperText
165
- }, rest)
166
- );
167
- }
168
- });
169
- exports.Input = Input;
170
- //# sourceMappingURL=Input-c8MwNNPg.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Input-c8MwNNPg.cjs","sources":["../src/components/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { TextField, TextFieldProps } from '@mui/material';\nimport { styled } from '@mui/system';\nimport { Controller, Control, RegisterOptions } from 'react-hook-form';\n\n\n\n\ninterface BaseInputProps extends Omit<TextFieldProps, 'value' | 'onChange' | 'variant' | 'type' | 'inputProps' | 'slotProps' | 'error' | 'helperText'> {\n type?: 'text' | 'number' | 'email' | 'password' | 'tel' | 'url' | 'search' | 'date' | 'datetime-local' | 'month' | 'week' | 'time' | 'color';\n variant?: 'outlined' | 'filled' | 'standard';\n min?: number;\n max?: number;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>; \n slotProps?: TextFieldProps['slotProps']; \n disabled?: boolean;\n readOnly?: boolean;\n error?: boolean;\n helperText?: string;\n}\n\ninterface RHFInputProps extends BaseInputProps {\n name: string;\n control: Control<any>;\n validation?: RegisterOptions;\n value?: string | number;\n onChange?: (value: string | number) => void;\n}\n\ninterface StandardInputPropsWithOptionalName extends BaseInputProps {\n name?: string; \n control?: never;\n validation?: never;\n value: string | number;\n onChange: (value: string | number) => void;\n}\n\nexport type InputProps = RHFInputProps | StandardInputPropsWithOptionalName;\n\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n '& .MuiInputBase-root': {\n maxHeight: '34px',\n padding: '8px 10px',\n borderRadius: '10px',\n display: 'flex',\n alignItems: 'center',\n fontSize: '14px',\n },\n '& .MuiInputBase-input': {\n padding: '0 !important',\n height: '18px',\n display: 'flex',\n alignItems: 'center',\n marginTop: '-4px'\n },\n '& .MuiInputLabel-root': {\n top: '50%',\n transform: 'translate(14px, -50%)',\n '&.MuiInputLabel-shrink': {\n transform: 'translate(1px, -200%) scale(0.75)',\n fontSize: '16px !important',\n '> legend': {\n display: 'none',\n }\n }\n },\n '& .MuiInputLabel-root.Mui-error': {\n top: '25%'\n \n },\n '& .MuiInputBase-root > fieldset > legend':{\n display: 'none',\n },\n '& .MuiOutlinedInput-notchedOutline': {\n border: '0.7px solid',\n borderColor: '#e0e0e0',\n },\n}));\n\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(({\n type = 'text',\n variant = 'outlined',\n min,\n max,\n inputProps: customInputProps, \n slotProps: customSlotProps, \n \n value, \n onChange,\n ...rest \n}, ref) => {\n const isRHFMode = 'control' in rest && rest.control !== undefined;\n\n \n const htmlInputProps: React.InputHTMLAttributes<HTMLInputElement> = {\n ...customInputProps, \n };\n\n if (type === 'number') {\n htmlInputProps.min = min !== undefined ? min : Number.NEGATIVE_INFINITY;\n if (max !== undefined) {\n htmlInputProps.max = max;\n }\n }\n\n \n const finalSlotProps: TextFieldProps['slotProps'] = {\n ...customSlotProps,\n htmlInput: {\n ...customSlotProps?.htmlInput,\n ...htmlInputProps,\n },\n };\n\n \n const handleChangeInternal = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>, rhfOnChange?: (...event: any[]) => void) => {\n const rawValue = event.target.value;\n let newValue: string | number;\n\n if (type === 'number') {\n newValue = rawValue === '' || rawValue === '-' ? rawValue : parseFloat(rawValue);\n \n if (isNaN(newValue as number) && rawValue !== '' && rawValue !== '-') newValue = rawValue;\n } else {\n newValue = rawValue;\n }\n\n if (isRHFMode) {\n rhfOnChange?.(newValue); \n } else {\n \n (onChange as (value: string | number) => void)?.(newValue); \n }\n };\n\n \n if (isRHFMode) {\n const rhfProps = rest as RHFInputProps;\n return (\n <Controller\n name={rhfProps.name}\n control={rhfProps.control}\n rules={rhfProps.validation}\n render={({ field, fieldState: { error } }) => {\n return (\n <StyledTextField\n fullWidth={true}\n value={field.value ?? ''}\n onChange={(e) => handleChangeInternal(e, field.onChange)} \n onBlur={field.onBlur}\n type={type}\n variant={variant}\n slotProps={finalSlotProps} \n inputRef={field.ref}\n error={!!error}\n helperText={error?.message}\n {...rest}\n />\n );\n }}\n />\n );\n } else {\n \n const standardProps = rest as StandardInputPropsWithOptionalName;\n return (\n <StyledTextField\n fullWidth={true}\n name={standardProps.name} \n value={value ?? ''} \n onChange={(e) => handleChangeInternal(e)} \n type={type}\n variant={variant}\n slotProps={finalSlotProps} \n inputRef={ref} \n error={standardProps.error}\n helperText={standardProps.helperText}\n {...rest} \n />\n );\n }\n});\n\nexport default Input;"],"names":["styled","TextField","forwardRef","jsx","Controller","_a"],"mappings":"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"}
@@ -1,411 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __spreadValues = (a, b) => {
10
- for (var prop in b || (b = {}))
11
- if (__hasOwnProp.call(b, prop))
12
- __defNormalProp(a, prop, b[prop]);
13
- if (__getOwnPropSymbols)
14
- for (var prop of __getOwnPropSymbols(b)) {
15
- if (__propIsEnum.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- }
18
- return a;
19
- };
20
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
- var __objRest = (source, exclude) => {
22
- var target = {};
23
- for (var prop in source)
24
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
- target[prop] = source[prop];
26
- if (source != null && __getOwnPropSymbols)
27
- for (var prop of __getOwnPropSymbols(source)) {
28
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
- target[prop] = source[prop];
30
- }
31
- return target;
32
- };
33
- const jsxRuntime = require("react/jsx-runtime");
34
- const React = require("react");
35
- const material = require("@mui/material");
36
- const system = require("@mui/system");
37
- const ClearIcon = require("@mui/icons-material/Clear");
38
- const CheckIcon = require("@mui/icons-material/Check");
39
- const reactHookForm = require("react-hook-form");
40
- function Option(_props) {
41
- return null;
42
- }
43
- Option.displayName = "Option";
44
- const StyledSelect = system.styled(material.Select)(({ theme }) => ({
45
- "& .MuiInputBase-root": {
46
- maxHeight: "4px",
47
- padding: "8px 10px",
48
- borderRadius: "10px",
49
- display: "flex",
50
- alignItems: "center",
51
- fontSize: "14px"
52
- },
53
- "& .MuiSelect-select": {
54
- padding: "0 !important",
55
- height: "28px !important",
56
- display: "flex",
57
- alignItems: "center",
58
- marginLeft: "8px"
59
- },
60
- "& .MuiOutlinedInput-notchedOutline": {
61
- marginBottom: "-4px !important",
62
- borderRadius: "10px"
63
- },
64
- "& .MuiSelect-icon": {
65
- top: "50%",
66
- transform: "translateY(-50%)"
67
- },
68
- "& .MuiOutlinedInput-notchedOutline > legend": {
69
- display: "none"
70
- }
71
- }));
72
- const StyledLabel = system.styled(material.InputLabel)(({ theme }) => ({
73
- "&.MuiInputLabel-root": {
74
- top: "50%",
75
- transform: "translate(14px, -50%)"
76
- },
77
- "&.MuiInputLabel-shrink": {
78
- transform: "translate(1px, -200%) scale(0.75)",
79
- fontSize: "16px",
80
- "> legend": {
81
- display: "none"
82
- }
83
- },
84
- "&.MuiInputLabel-animated": {
85
- "&.MuiInputLabel-shrink": {
86
- display: "block"
87
- }
88
- }
89
- }));
90
- const StyledOutlinedInput = system.styled(material.OutlinedInput)(({ theme }) => ({
91
- "& .MuiInputBase-root": {
92
- maxHeight: "34px",
93
- padding: "8px 10px",
94
- borderRadius: "10px",
95
- display: "flex",
96
- alignItems: "center",
97
- fontSize: "14px",
98
- " & > .MuiAvatar-img": {
99
- width: "14px",
100
- height: "14px"
101
- }
102
- },
103
- "& .MuiInputBase-input": {
104
- padding: "0 !important",
105
- height: "18px",
106
- display: "flex",
107
- alignItems: "center"
108
- },
109
- "& .MuiOutlinedInput-notchedOutline": {
110
- border: "0.7px solid",
111
- borderColor: "#e0e0e0"
112
- }
113
- }));
114
- function Select(props) {
115
- const _a = props, {
116
- label,
117
- options = [],
118
- value,
119
- onChange,
120
- defaultValue,
121
- size = "medium",
122
- multiple = false,
123
- filterable = false,
124
- placeholder,
125
- children,
126
- maxHeight = 300,
127
- maxWidth,
128
- maxChipsToShow = 3,
129
- renderChipLabel,
130
- chipVariant = "outlined",
131
- loadOptions,
132
- loadingMessage = "Cargando opciones...",
133
- noOptionsMessage = "No hay opciones",
134
- debounceTimeout = 300,
135
- disabled = false,
136
- error = false,
137
- helperText
138
- } = _a, rest = __objRest(_a, [
139
- "label",
140
- "options",
141
- "value",
142
- "onChange",
143
- "defaultValue",
144
- "size",
145
- "multiple",
146
- "filterable",
147
- "placeholder",
148
- "children",
149
- "maxHeight",
150
- "maxWidth",
151
- "maxChipsToShow",
152
- "renderChipLabel",
153
- "chipVariant",
154
- "loadOptions",
155
- "loadingMessage",
156
- "noOptionsMessage",
157
- "debounceTimeout",
158
- "disabled",
159
- "error",
160
- "helperText"
161
- ]);
162
- const isRHFMode = "control" in rest && rest.control !== void 0;
163
- const customRender = React.useMemo(() => {
164
- var _a2;
165
- if (React.Children.count(children) === 1) {
166
- const child = React.Children.only(children);
167
- if (React.isValidElement(child) && ((_a2 = child.type) == null ? void 0 : _a2.displayName) === "Option") {
168
- return child.props.children;
169
- }
170
- }
171
- return null;
172
- }, [children]);
173
- const [search, setSearch] = React.useState("");
174
- const [asyncOptions, setAsyncOptions] = React.useState([]);
175
- const [loading, setLoading] = React.useState(false);
176
- const debounceTimerRef = React.useRef(null);
177
- const searchInputRef = React.useRef(null);
178
- const isAsync = typeof loadOptions === "function";
179
- const currentOptions = isAsync ? asyncOptions : options;
180
- React.useEffect(() => {
181
- if (isAsync) {
182
- if (debounceTimerRef.current) {
183
- clearTimeout(debounceTimerRef.current);
184
- }
185
- if (search) {
186
- setLoading(true);
187
- debounceTimerRef.current = window.setTimeout(() => {
188
- loadOptions(search).then((loadedOpts) => {
189
- setAsyncOptions(loadedOpts);
190
- }).finally(() => {
191
- setLoading(false);
192
- if (searchInputRef.current) {
193
- searchInputRef.current.focus();
194
- }
195
- });
196
- }, debounceTimeout);
197
- } else {
198
- setAsyncOptions([]);
199
- setLoading(false);
200
- if (searchInputRef.current) {
201
- searchInputRef.current.focus();
202
- }
203
- }
204
- }
205
- }, [search, isAsync, loadOptions, debounceTimeout]);
206
- const filteredOptions = React.useMemo(() => {
207
- if (isAsync) {
208
- return currentOptions;
209
- }
210
- if (!filterable || !search) return currentOptions;
211
- return currentOptions.filter(
212
- (opt) => opt.label.toLowerCase().includes(search.toLowerCase())
213
- );
214
- }, [search, filterable, currentOptions, isAsync]);
215
- const groupedOptions = React.useMemo(() => {
216
- const groups = {};
217
- filteredOptions.forEach((opt) => {
218
- const group = opt.group || "__default";
219
- if (!groups[group]) groups[group] = [];
220
- groups[group].push(opt);
221
- });
222
- return groups;
223
- }, [filteredOptions]);
224
- const renderValue = (selected) => {
225
- var _a2;
226
- if (!selected || Array.isArray(selected) && selected.length === 0) {
227
- return /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { color: "text.disabled" }, children: placeholder || "" });
228
- }
229
- if (!multiple) {
230
- const item = currentOptions.find((opt) => opt.value === selected);
231
- return renderChipLabel && item ? renderChipLabel(item) : (_a2 = item == null ? void 0 : item.label) != null ? _a2 : String(selected);
232
- }
233
- const selectedValuesArray = selected;
234
- const displayedChips = selectedValuesArray.slice(0, maxChipsToShow);
235
- const hiddenChipsCount = selectedValuesArray.length - maxChipsToShow;
236
- return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 0.5 }, children: [
237
- displayedChips.map((val) => {
238
- const item = currentOptions.find((o) => o.value === val);
239
- if (!item) return null;
240
- const handleDelete = (chipValue) => {
241
- const newSelected = value.filter((v) => v !== chipValue);
242
- onChange == null ? void 0 : onChange(newSelected);
243
- };
244
- return /* @__PURE__ */ jsxRuntime.jsx(
245
- material.Chip,
246
- {
247
- variant: chipVariant,
248
- color: "primary",
249
- label: renderChipLabel ? renderChipLabel(item) : item.label,
250
- avatar: item.img ? /* @__PURE__ */ jsxRuntime.jsx(
251
- material.Avatar,
252
- {
253
- sx: {
254
- "& > .MuiAvatar-root, .MuiChip-avatar": {
255
- backgroundColor: "red"
256
- }
257
- },
258
- src: item.img
259
- }
260
- ) : void 0,
261
- onDelete: () => handleDelete(val),
262
- deleteIcon: /* @__PURE__ */ jsxRuntime.jsx(ClearIcon, { sx: { fontSize: "12px !important" } }),
263
- sx: {
264
- height: "27px",
265
- marginTop: "1px"
266
- }
267
- },
268
- val
269
- );
270
- }),
271
- hiddenChipsCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
272
- material.Chip,
273
- {
274
- sx: {
275
- height: "27px",
276
- marginTop: "0px"
277
- },
278
- label: `+${hiddenChipsCount} más`,
279
- variant: chipVariant
280
- }
281
- )
282
- ] });
283
- };
284
- const menuItems = React.useMemo(() => {
285
- const items = [];
286
- if (filterable || isAsync) {
287
- items.push(
288
- /* @__PURE__ */ jsxRuntime.jsx(material.ListSubheader, { sx: { px: 2, pt: 1, pb: 1, backgroundColor: "background.paper", zIndex: 1, position: "sticky", top: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(
289
- material.TextField,
290
- {
291
- inputRef: searchInputRef,
292
- placeholder: "Buscar...",
293
- variant: "standard",
294
- size: "small",
295
- fullWidth: true,
296
- value: search,
297
- onChange: (e) => setSearch(e.target.value),
298
- inputProps: { autoFocus: true },
299
- onClick: (e) => e.stopPropagation(),
300
- onKeyDown: (e) => e.stopPropagation()
301
- }
302
- ) }, "search-header")
303
- );
304
- }
305
- if (loading) {
306
- items.push(
307
- /* @__PURE__ */ jsxRuntime.jsx(material.MenuItem, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
308
- /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: 20 }),
309
- /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: loadingMessage })
310
- ] }) }, "loading-message")
311
- );
312
- } else if (Object.keys(groupedOptions).length === 0 || Object.keys(groupedOptions).length === 1 && groupedOptions["__default"] && groupedOptions["__default"].length === 0) {
313
- items.push(
314
- /* @__PURE__ */ jsxRuntime.jsx(material.MenuItem, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: noOptionsMessage }) }, "no-options-message")
315
- );
316
- } else {
317
- Object.entries(groupedOptions).forEach(([group, opts]) => {
318
- if (group !== "__default") {
319
- items.push(
320
- /* @__PURE__ */ jsxRuntime.jsx(material.ListSubheader, { disableSticky: true, children: group }, group)
321
- );
322
- }
323
- opts.forEach((opt) => {
324
- const isSelected = multiple ? value == null ? void 0 : value.includes(opt.value) : value === opt.value;
325
- items.push(
326
- /* @__PURE__ */ jsxRuntime.jsxs(material.MenuItem, { value: opt.value, disabled: opt.disabled, selected: isSelected, children: [
327
- /* @__PURE__ */ jsxRuntime.jsx(material.ListItemIcon, { sx: { minWidth: 32 }, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { sx: { color: "green" } }) }),
328
- customRender ? customRender(opt) : opt.label
329
- ] }, opt.value)
330
- );
331
- });
332
- });
333
- }
334
- return items;
335
- }, [groupedOptions, customRender, filterable, isAsync, search, loading, loadingMessage, noOptionsMessage, multiple, value]);
336
- const showLabel = label && !placeholder;
337
- const handleChangeInternal = (event, rhfOnChange) => {
338
- const newValue = event.target.value;
339
- if (isRHFMode) {
340
- rhfOnChange == null ? void 0 : rhfOnChange(newValue);
341
- } else {
342
- onChange == null ? void 0 : onChange(newValue);
343
- }
344
- };
345
- const isRHFModeRender = "control" in rest && rest.control !== void 0;
346
- const renderSelect = (selectValue, selectOnChange, onBlur, inputRef) => /* @__PURE__ */ jsxRuntime.jsxs(material.FormControl, { fullWidth: true, size, error, disabled, children: [
347
- showLabel && /* @__PURE__ */ jsxRuntime.jsx(StyledLabel, { children: label }),
348
- /* @__PURE__ */ jsxRuntime.jsxs(
349
- material.Box,
350
- {
351
- sx: {
352
- width: "100%",
353
- display: "grid",
354
- marginBottom: "10px",
355
- marginTop: "10px"
356
- },
357
- children: [
358
- /* @__PURE__ */ jsxRuntime.jsx(
359
- StyledSelect,
360
- __spreadProps(__spreadValues({
361
- label,
362
- value: selectValue != null ? selectValue : multiple ? [] : "",
363
- defaultValue,
364
- multiple,
365
- onChange: selectOnChange,
366
- onBlur,
367
- renderValue,
368
- displayEmpty: true,
369
- input: /* @__PURE__ */ jsxRuntime.jsx(StyledOutlinedInput, { label }),
370
- disabled,
371
- MenuProps: {
372
- PaperProps: {
373
- style: {
374
- maxHeight,
375
- maxWidth
376
- }
377
- }
378
- },
379
- inputRef
380
- }, rest), {
381
- children: menuItems
382
- })
383
- ),
384
- helperText && /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "caption", color: "error", sx: { mt: 1 }, children: helperText })
385
- ]
386
- }
387
- )
388
- ] });
389
- if (isRHFModeRender) {
390
- const rhfProps = rest;
391
- return /* @__PURE__ */ jsxRuntime.jsx(
392
- reactHookForm.Controller,
393
- {
394
- name: rhfProps.name,
395
- control: rhfProps.control,
396
- rules: rhfProps.validation,
397
- render: ({ field, fieldState: { error: error2 } }) => renderSelect(
398
- field.value,
399
- (e) => handleChangeInternal(e, field.onChange),
400
- field.onBlur,
401
- field.ref
402
- )
403
- }
404
- );
405
- } else {
406
- return renderSelect(value, (e) => handleChangeInternal(e));
407
- }
408
- }
409
- exports.Option = Option;
410
- exports.Select = Select;
411
- //# sourceMappingURL=Select-BO2N56sm.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select-BO2N56sm.cjs","sources":["../src/components/Select/Select.tsx"],"sourcesContent":["import React, { ReactElement, useMemo, useState, Children, isValidElement, useEffect, useRef } from 'react';\nimport {\n FormControl,\n InputLabel,\n MenuItem,\n Select as MuiSelect,\n Chip,\n Avatar,\n Box,\n Typography,\n OutlinedInput,\n TextField,\n ListSubheader,\n CircularProgress,\n ListItemIcon,\n SelectChangeEvent,\n} from '@mui/material';\nimport { styled } from '@mui/system';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport CheckIcon from '@mui/icons-material/Check';\nimport { Controller, Control, RegisterOptions } from 'react-hook-form';\n\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\ntype RenderOptionItem = (item: SelectOption) => React.ReactNode;\ntype RenderChipLabel = (item: SelectOption) => React.ReactNode;\n\n// --- Definición de Props con Union Type ---\n\n// Props comunes para ambos modos\ninterface BaseSelectProps<TValue extends SelectOption['value'] = SelectOption['value']> {\n label?: string;\n options?: SelectOption[];\n defaultValue?: TValue | TValue[];\n size?: 'small' | 'medium';\n multiple?: boolean;\n filterable?: boolean;\n placeholder?: string;\n children?: ReactElement<{ children: RenderOptionItem }>;\n maxHeight?: number | string;\n maxWidth?: number | string;\n maxChipsToShow?: number;\n renderChipLabel?: RenderChipLabel;\n chipVariant?: 'outlined' | 'filled';\n loadOptions?: (inputValue: string) => Promise<SelectOption[]>;\n loadingMessage?: React.ReactNode;\n noOptionsMessage?: React.ReactNode;\n debounceTimeout?: number;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n}\n\n// Props para el modo React Hook Form\ninterface RHFSelectProps<TValue extends SelectOption['value'] = SelectOption['value']> extends BaseSelectProps<TValue> {\n name: string;\n control: Control<any>;\n validation?: RegisterOptions;\n value?: TValue | TValue[];\n onChange?: (val: TValue | TValue[]) => void;\n}\n\n// Props para el modo controlado estándar\ninterface StandardSelectProps<TValue extends SelectOption['value'] = SelectOption['value']> extends BaseSelectProps<TValue> {\n name?: string;\n control?: never;\n validation?: never;\n value: TValue | TValue[];\n onChange: (val: TValue | TValue[]) => void;\n}\n\nexport type SelectProps<TValue extends SelectOption['value'] = SelectOption['value']> = RHFSelectProps<TValue> | StandardSelectProps<TValue>;\n\nexport interface OptionProps {\n children: RenderOptionItem;\n}\n\nexport function Option(_props: OptionProps) {\n return null;\n}\nOption.displayName = 'Option';\n\nconst StyledSelect = styled(MuiSelect)(({ theme }) => ({\n '& .MuiInputBase-root': {\n maxHeight: '4px',\n padding: '8px 10px',\n borderRadius: '10px',\n display: 'flex',\n alignItems: 'center',\n fontSize: '14px',\n },\n '& .MuiSelect-select': {\n padding: '0 !important',\n height: '28px !important',\n display: 'flex',\n alignItems: 'center',\n marginLeft: '8px'\n },\n '& .MuiOutlinedInput-notchedOutline': {\n marginBottom: '-4px !important',\n borderRadius: '10px',\n },\n '& .MuiSelect-icon': {\n top: '50%',\n transform: 'translateY(-50%)',\n },\n '& .MuiOutlinedInput-notchedOutline > legend':{\n display: 'none',\n },\n}));\n\nconst StyledLabel = styled(InputLabel)(({theme}) =>({\n '&.MuiInputLabel-root': {\n top: '50%',\n transform: 'translate(14px, -50%)',\n },\n '&.MuiInputLabel-shrink': {\n transform: 'translate(1px, -200%) scale(0.75)',\n fontSize: '16px',\n '> legend': {\n display: 'none',\n }\n },\n '&.MuiInputLabel-animated': {\n '&.MuiInputLabel-shrink': {\n display: 'block'\n }\n }\n}));\n\nconst StyledOutlinedInput = styled(OutlinedInput)(({ theme }) => ({\n '& .MuiInputBase-root': {\n maxHeight: '34px',\n padding: '8px 10px',\n borderRadius: '10px',\n display: 'flex',\n alignItems: 'center',\n fontSize: '14px',\n ' & > .MuiAvatar-img': {\n width: '14px',\n height: '14px',\n }\n },\n '& .MuiInputBase-input': {\n padding: '0 !important',\n height: '18px',\n display: 'flex',\n alignItems: 'center',\n },\n '& .MuiOutlinedInput-notchedOutline': {\n border: '0.7px solid',\n borderColor: '#e0e0e0',\n },\n}));\n\nexport function Select<TValue extends SelectOption['value'] = SelectOption['value']>(props: SelectProps<TValue>) {\n const {\n label,\n options = [],\n value,\n onChange,\n defaultValue,\n size = 'medium',\n multiple = false,\n filterable = false,\n placeholder,\n children,\n maxHeight = 300,\n maxWidth,\n maxChipsToShow = 3,\n renderChipLabel,\n chipVariant = 'outlined',\n loadOptions,\n loadingMessage = 'Cargando opciones...',\n noOptionsMessage = 'No hay opciones',\n debounceTimeout = 300,\n disabled = false,\n error = false,\n helperText,\n ...rest\n } = props;\n\n const isRHFMode = 'control' in rest && rest.control !== undefined;\n\n const customRender: RenderOptionItem | null = useMemo(() => {\n if (React.Children.count(children) === 1) {\n const child = React.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 const [search, setSearch] = useState('');\n const [asyncOptions, setAsyncOptions] = useState<SelectOption[]>([]);\n const [loading, setLoading] = useState(false);\n const debounceTimerRef = useRef<number | null>(null);\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const isAsync = typeof loadOptions === 'function';\n const currentOptions = isAsync ? asyncOptions : options;\n\n useEffect(() => {\n if (isAsync) {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n\n if (search) {\n setLoading(true);\n debounceTimerRef.current = window.setTimeout(() => {\n loadOptions(search)\n .then(loadedOpts => {\n setAsyncOptions(loadedOpts);\n })\n .finally(() => {\n setLoading(false);\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n });\n }, debounceTimeout);\n } else {\n setAsyncOptions([]);\n setLoading(false);\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n }\n }, [search, isAsync, loadOptions, debounceTimeout]);\n\n const filteredOptions = useMemo(() => {\n if (isAsync) {\n return currentOptions;\n }\n if (!filterable || !search) return currentOptions;\n return currentOptions.filter(opt =>\n opt.label.toLowerCase().includes(search.toLowerCase())\n );\n }, [search, filterable, currentOptions, isAsync]);\n\n const groupedOptions = useMemo(() => {\n const groups: Record<string, SelectOption[]> = {};\n filteredOptions.forEach(opt => {\n const group = opt.group || '__default';\n if (!groups[group]) groups[group] = [];\n groups[group].push(opt);\n });\n return groups;\n }, [filteredOptions]);\n\n const renderValue = (selected: any) => {\n if (!selected || (Array.isArray(selected) && selected.length === 0)) {\n return <Typography sx={{ color: 'text.disabled' }}>{placeholder || ''}</Typography>;\n }\n\n if (!multiple) {\n const item = currentOptions.find((opt) => opt.value === selected);\n return renderChipLabel && item ? renderChipLabel(item) : (item?.label ?? String(selected));\n }\n\n const selectedValuesArray = selected as TValue[];\n const displayedChips = selectedValuesArray.slice(0, maxChipsToShow);\n const hiddenChipsCount = selectedValuesArray.length - maxChipsToShow;\n\n return (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}>\n {displayedChips.map((val) => {\n const item = currentOptions.find((o) => o.value === val);\n if (!item) return null;\n\n const handleDelete = (chipValue: TValue) => {\n const newSelected = (value as TValue[]).filter(v => v !== chipValue);\n (onChange as (val: TValue | TValue[]) => void)?.(newSelected);\n };\n\n return (\n <Chip\n variant={chipVariant}\n color=\"primary\"\n key={val}\n label={renderChipLabel ? renderChipLabel(item) : item.label}\n avatar={item.img ?\n <Avatar\n sx={\n {\n '& > .MuiAvatar-root, .MuiChip-avatar': {\n backgroundColor: 'red',\n }\n }\n }\n src={item.img}\n /> : undefined}\n onDelete={() => handleDelete(val)}\n deleteIcon={<ClearIcon sx={{ fontSize: '12px !important' }} />}\n sx={\n {\n height: '27px',\n marginTop: '1px',\n }\n }\n />\n );\n })}\n {hiddenChipsCount > 0 && (\n <Chip\n sx={{\n height: '27px',\n marginTop: '0px',\n }}\n label={`+${hiddenChipsCount} más`} variant={chipVariant} />\n )}\n </Box>\n );\n };\n\n const menuItems = useMemo(() => {\n const items: React.ReactNode[] = [];\n\n if (filterable || isAsync) {\n items.push(\n <ListSubheader key=\"search-header\" sx={{ px: 2, pt: 1, pb: 1, backgroundColor: 'background.paper', zIndex: 1, position: 'sticky', top: 0 }}>\n <TextField\n inputRef={searchInputRef}\n placeholder=\"Buscar...\"\n variant=\"standard\"\n size=\"small\"\n fullWidth\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n inputProps={{ autoFocus: true }}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n />\n </ListSubheader>\n );\n }\n\n if (loading) {\n items.push(\n <MenuItem key=\"loading-message\" disabled>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <CircularProgress size={20} />\n <Typography>{loadingMessage}</Typography>\n </Box>\n </MenuItem>\n );\n } else if (Object.keys(groupedOptions).length === 0 || (Object.keys(groupedOptions).length === 1 && groupedOptions['__default'] && groupedOptions['__default'].length === 0)) {\n items.push(\n <MenuItem key=\"no-options-message\" disabled>\n <Typography>{noOptionsMessage}</Typography>\n </MenuItem>\n );\n } else {\n Object.entries(groupedOptions).forEach(([group, opts]) => {\n if (group !== '__default') {\n items.push(\n <ListSubheader key={group} disableSticky>{group}</ListSubheader>\n );\n }\n opts.forEach((opt) => {\n const isSelected = multiple\n ? (value as TValue[] | undefined)?.includes(opt.value as TValue)\n : value === opt.value;\n\n items.push(\n <MenuItem key={opt.value} value={opt.value} disabled={opt.disabled} selected={isSelected}>\n <ListItemIcon sx={{ minWidth: 32 }}>\n {isSelected && (\n <CheckIcon sx={{ color: 'green' }} />\n )}\n </ListItemIcon>\n {customRender ? customRender(opt) : opt.label}\n </MenuItem>\n );\n });\n });\n }\n return items;\n }, [groupedOptions, customRender, filterable, isAsync, search, loading, loadingMessage, noOptionsMessage, multiple, value]);\n\n const showLabel = label && !placeholder;\n\n // Lógica para manejar el cambio de valor\n const handleChangeInternal = (event: SelectChangeEvent<any>, rhfOnChange?: (...event: any[]) => void) => {\n const newValue = event.target.value;\n if (isRHFMode) {\n rhfOnChange?.(newValue);\n } else {\n (onChange as (val: TValue | TValue[]) => void)?.(newValue);\n }\n };\n\n // Renderizado condicional basado en el modo\n const isRHFModeRender = 'control' in rest && rest.control !== undefined;\n\n const renderSelect = (selectValue: any, selectOnChange: any, onBlur?: any, inputRef?: any) => (\n <FormControl fullWidth size={size} error={error} disabled={disabled}>\n {showLabel && <StyledLabel>{label}</StyledLabel>}\n <Box\n sx={{\n width: '100%',\n display: 'grid',\n marginBottom: '10px',\n marginTop: '10px'\n }}>\n <StyledSelect\n label={label}\n value={selectValue ?? (multiple ? [] : '')}\n defaultValue={defaultValue}\n multiple={multiple}\n onChange={selectOnChange}\n onBlur={onBlur}\n renderValue={renderValue}\n displayEmpty\n input={<StyledOutlinedInput label={label} />}\n disabled={disabled}\n MenuProps={{\n PaperProps: {\n style: {\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n },\n },\n }}\n inputRef={inputRef}\n {...rest}\n >\n {menuItems}\n </StyledSelect>\n {helperText && <Typography variant=\"caption\" color=\"error\" sx={{ mt: 1 }}>{helperText}</Typography>}\n </Box>\n </FormControl>\n );\n\n if (isRHFModeRender) {\n const rhfProps = rest as RHFSelectProps<TValue>;\n return (\n <Controller\n name={rhfProps.name}\n control={rhfProps.control}\n rules={rhfProps.validation}\n render={({ field, fieldState: { error } }) => (\n renderSelect(\n field.value,\n (e: SelectChangeEvent<any>) => handleChangeInternal(e, field.onChange),\n field.onBlur,\n field.ref\n )\n )}\n />\n );\n } else {\n return renderSelect(value, (e: SelectChangeEvent<any>) => handleChangeInternal(e));\n }\n}\n\nexport default Select;"],"names":["styled","MuiSelect","InputLabel","OutlinedInput","useMemo","isValidElement","_a","useState","useRef","useEffect","jsx","Typography","jsxs","Box","Chip","Avatar","ListSubheader","TextField","MenuItem","CircularProgress","ListItemIcon","FormControl","Controller","error"],"mappings":"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"}