@soyfri/shared-library 2.0.0-beta.3 → 2.0.0-beta.4

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 (488) 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/README.md +243 -0
  12. package/{index.cjs → dist/index.cjs} +24 -0
  13. package/{index.cjs.map → dist/index.cjs.map} +1 -1
  14. package/{index.js → dist/index.js} +7 -1
  15. package/{mui.d.ts → dist/mui.d.ts} +1 -0
  16. package/dist/package.json +197 -0
  17. package/package.json +43 -164
  18. package/rollup.config.cjs +87 -0
  19. package/src/components/ActionMenu/ActionMenu.stories.tsx +230 -0
  20. package/src/components/ActionMenu/ActionMenu.tsx +174 -0
  21. package/src/components/ActionMenu/index.ts +2 -0
  22. package/src/components/AppBar/AppBar.stories.tsx +272 -0
  23. package/src/components/AppBar/AppBar.sx.ts +32 -0
  24. package/src/components/AppBar/AppBar.tsx +123 -0
  25. package/src/components/AppBar/AppBarBrand.tsx +120 -0
  26. package/src/components/AppBar/AppBarContext.ts +25 -0
  27. package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
  28. package/src/components/AppBar/AppBarUserMenu.tsx +217 -0
  29. package/src/components/AppBar/index.ts +25 -0
  30. package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
  31. package/src/components/Autocomplete/Autocomplete.helpers.ts +60 -0
  32. package/src/components/Autocomplete/Autocomplete.stories.tsx +748 -0
  33. package/src/components/Autocomplete/Autocomplete.sx.ts +30 -0
  34. package/src/components/Autocomplete/Autocomplete.tsx +361 -0
  35. package/src/components/Autocomplete/Autocomplete.types.ts +13 -0
  36. package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
  37. package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
  38. package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +31 -0
  39. package/src/components/Autocomplete/index.ts +12 -0
  40. package/src/components/Avatar/Avatar.definitions.ts +162 -0
  41. package/src/components/Avatar/Avatar.stories.tsx +258 -0
  42. package/src/components/Avatar/Avatar.tsx +206 -0
  43. package/src/components/Avatar/index.ts +1 -0
  44. package/src/components/Button/Button.definition.ts +97 -0
  45. package/src/components/Button/Button.stories.tsx +285 -0
  46. package/src/components/Button/Button.tsx +67 -0
  47. package/src/components/Button/index.ts +1 -0
  48. package/src/components/Card/Card.definition.ts +5 -0
  49. package/src/components/Card/Card.stories.tsx +221 -0
  50. package/src/components/Card/Card.sx.ts +104 -0
  51. package/src/components/Card/Card.tsx +200 -0
  52. package/src/components/Card/index.ts +9 -0
  53. package/src/components/Chip/Chip.definitions.ts +167 -0
  54. package/src/components/Chip/Chip.stories.tsx +265 -0
  55. package/src/components/Chip/Chip.tsx +61 -0
  56. package/src/components/Chip/index.ts +1 -0
  57. package/src/components/Column/Column.tsx +29 -0
  58. package/src/components/Column/index.ts +1 -0
  59. package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
  60. package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
  61. package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
  62. package/src/components/DatePicker/DatePicker.sx.ts +33 -0
  63. package/src/components/DatePicker/DatePicker.tsx +189 -0
  64. package/src/components/DatePicker/DatePicker.types.ts +10 -0
  65. package/src/components/DatePicker/index.ts +9 -0
  66. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +191 -0
  67. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +252 -0
  68. package/src/components/DateRangePicker/DateRangePicker.tsx +56 -0
  69. package/src/components/DateRangePicker/index.ts +1 -0
  70. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +256 -0
  71. package/src/components/DateTimePicker/DateTimePicker.helpers.ts +38 -0
  72. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +418 -0
  73. package/src/components/DateTimePicker/DateTimePicker.sx.ts +30 -0
  74. package/src/components/DateTimePicker/DateTimePicker.tsx +225 -0
  75. package/src/components/DateTimePicker/DateTimePicker.types.ts +10 -0
  76. package/src/components/DateTimePicker/index.ts +9 -0
  77. package/src/components/Drawer/Drawer.stories.tsx +270 -0
  78. package/src/components/Drawer/Drawer.sx.ts +106 -0
  79. package/src/components/Drawer/Drawer.tsx +214 -0
  80. package/src/components/Drawer/DrawerContext.ts +26 -0
  81. package/src/components/Drawer/DrawerItem.tsx +110 -0
  82. package/src/components/Drawer/index.ts +10 -0
  83. package/src/components/Flyout/Flyout.stories.tsx +282 -0
  84. package/src/components/Flyout/Flyout.tsx +122 -0
  85. package/src/components/Flyout/index.ts +1 -0
  86. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  87. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  88. package/src/components/Gallery/Gallery.tsx +118 -0
  89. package/src/components/Gallery/GalleryLightbox.tsx +170 -0
  90. package/src/components/Gallery/GalleryMain.tsx +84 -0
  91. package/src/components/Gallery/GalleryThumbnails.tsx +106 -0
  92. package/src/components/Gallery/index.ts +1 -0
  93. package/src/components/Icon/Icon.stories.tsx +121 -0
  94. package/src/components/Icon/Icon.tsx +175 -0
  95. package/src/components/Icon/index.ts +2 -0
  96. package/src/components/Input/Input.definitions.ts +324 -0
  97. package/src/components/Input/Input.helpers.ts +49 -0
  98. package/src/components/Input/Input.stories.tsx +499 -0
  99. package/src/components/Input/Input.sx.ts +42 -0
  100. package/src/components/Input/Input.tsx +141 -0
  101. package/src/components/Input/Input.types.ts +10 -0
  102. package/src/components/Input/index.ts +9 -0
  103. package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
  104. package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
  105. package/src/components/InputGroup/InputGroup.tsx +179 -0
  106. package/src/components/InputGroup/index.ts +1 -0
  107. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  108. package/src/components/MenuButton/MenuButton.tsx +100 -0
  109. package/src/components/MenuButton/index.ts +1 -0
  110. package/src/components/Modal/Modal.stories.tsx +721 -0
  111. package/src/components/Modal/Modal.tsx +355 -0
  112. package/src/components/Modal/ModalBody.tsx +16 -0
  113. package/src/components/Modal/ModalFooter.tsx +71 -0
  114. package/src/components/Modal/ModalHeader.tsx +18 -0
  115. package/src/components/Modal/index.ts +6 -0
  116. package/src/components/PageLoader/PageLoader.stories.tsx +217 -0
  117. package/src/components/PageLoader/PageLoader.tsx +96 -0
  118. package/src/components/PageLoader/index.ts +2 -0
  119. package/src/components/ScrollTopButton/ScrollTopButton.stories.tsx +158 -0
  120. package/src/components/ScrollTopButton/ScrollTopButton.tsx +135 -0
  121. package/src/components/ScrollTopButton/index.ts +8 -0
  122. package/src/components/ScrollTopButton/scrollToTop.ts +37 -0
  123. package/src/components/Select/Select.definitions.ts +602 -0
  124. package/src/components/Select/Select.helpers.ts +71 -0
  125. package/src/components/Select/Select.stories.tsx +687 -0
  126. package/src/components/Select/Select.sx.ts +14 -0
  127. package/src/components/Select/Select.tsx +429 -0
  128. package/src/components/Select/Select.types.ts +15 -0
  129. package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
  130. package/src/components/Select/_parts/SelectSearchHeader.tsx +51 -0
  131. package/src/components/Select/_parts/SelectValue.tsx +96 -0
  132. package/src/components/Select/index.ts +14 -0
  133. package/src/components/Stat/Stat.stories.tsx +85 -0
  134. package/src/components/Stat/Stat.tsx +117 -0
  135. package/src/components/Stat/index.ts +2 -0
  136. package/src/components/StatusMessage/StatusMessage.stories.tsx +130 -0
  137. package/src/components/StatusMessage/StatusMessage.tsx +162 -0
  138. package/src/components/StatusMessage/index.ts +2 -0
  139. package/src/components/Stepper/Step.tsx +21 -0
  140. package/src/components/Stepper/Stepper.definition.ts +75 -0
  141. package/src/components/Stepper/Stepper.stories.tsx +122 -0
  142. package/src/components/Stepper/Stepper.tsx +75 -0
  143. package/src/components/Stepper/index.ts +2 -0
  144. package/src/components/Table/EmptyTable.png +0 -0
  145. package/src/components/Table/Table.definition.ts +580 -0
  146. package/src/components/Table/Table.stories.tsx +853 -0
  147. package/src/components/Table/Table.tsx +495 -0
  148. package/src/components/Table/data.ts +134 -0
  149. package/src/components/Table/exportsUtils.ts +195 -0
  150. package/src/components/Table/index.ts +3 -0
  151. package/src/components/Table/types.ts +34 -0
  152. package/src/components/Tabs/Tab.definition.ts +53 -0
  153. package/src/components/Tabs/Tab.tsx +19 -0
  154. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  155. package/src/components/Tabs/Tabs.tsx +99 -0
  156. package/src/components/Tabs/_tabUtils.tsx +4 -0
  157. package/src/components/Tabs/index.ts +2 -0
  158. package/src/components/Timeline/Timeline.definition.ts +43 -0
  159. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  160. package/src/components/Timeline/Timeline.tsx +49 -0
  161. package/src/components/Timeline/TimelineItem.tsx +31 -0
  162. package/src/components/Timeline/index.ts +2 -0
  163. package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
  164. package/src/components/Tooltip/Tooltip.tsx +58 -0
  165. package/src/components/Tooltip/index.ts +1 -0
  166. package/src/components/_shared/formField.sx.ts +118 -0
  167. package/src/components/_shared/resolvePreset.ts +35 -0
  168. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  169. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  170. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  171. package/src/hooks/ClipBoard/index.ts +1 -0
  172. package/src/hooks/Wizard/Wizard.stories.tsx +301 -0
  173. package/src/hooks/Wizard/WizardContext.tsx +166 -0
  174. package/src/hooks/Wizard/index.ts +6 -0
  175. package/src/hooks/Wizard/useWizard.ts +13 -0
  176. package/src/index.ts +17 -0
  177. package/src/mui.ts +54 -0
  178. package/src/styles.css +3 -0
  179. package/src/theme/componentStyles.ts +47 -0
  180. package/src/theme/tokens.ts +43 -0
  181. package/tailwind.config.js +10 -0
  182. package/tsconfig.json +48 -0
  183. package/tsup.config.js +41 -0
  184. package/vite.config.js +132 -0
  185. package/vitest.config.ts +35 -0
  186. /package/{README.md → Readme.md} +0 -0
  187. /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
  188. /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
  189. /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
  190. /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
  191. /package/{components → dist/components}/ActionMenu/ActionMenu.cjs +0 -0
  192. /package/{components → dist/components}/ActionMenu/ActionMenu.cjs.map +0 -0
  193. /package/{components → dist/components}/ActionMenu/ActionMenu.d.ts +0 -0
  194. /package/{components → dist/components}/ActionMenu/ActionMenu.js +0 -0
  195. /package/{components → dist/components}/ActionMenu/ActionMenu.js.map +0 -0
  196. /package/{components → dist/components}/ActionMenu/index.d.ts +0 -0
  197. /package/{components → dist/components}/ActionMenu.d.ts +0 -0
  198. /package/{components → dist/components}/AppBar/AppBar.cjs +0 -0
  199. /package/{components → dist/components}/AppBar/AppBar.cjs.map +0 -0
  200. /package/{components → dist/components}/AppBar/AppBar.d.ts +0 -0
  201. /package/{components → dist/components}/AppBar/AppBar.js +0 -0
  202. /package/{components → dist/components}/AppBar/AppBar.js.map +0 -0
  203. /package/{components → dist/components}/AppBar/AppBar.sx.d.ts +0 -0
  204. /package/{components → dist/components}/AppBar/AppBarBrand.d.ts +0 -0
  205. /package/{components → dist/components}/AppBar/AppBarContext.d.ts +0 -0
  206. /package/{components → dist/components}/AppBar/AppBarMenuToggle.d.ts +0 -0
  207. /package/{components → dist/components}/AppBar/AppBarUserMenu.d.ts +0 -0
  208. /package/{components → dist/components}/AppBar/index.d.ts +0 -0
  209. /package/{components → dist/components}/AppBar.d.ts +0 -0
  210. /package/{components → dist/components}/Autocomplete/Autocomplete.cjs +0 -0
  211. /package/{components → dist/components}/Autocomplete/Autocomplete.cjs.map +0 -0
  212. /package/{components → dist/components}/Autocomplete/Autocomplete.d.ts +0 -0
  213. /package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  214. /package/{components → dist/components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
  215. /package/{components → dist/components}/Autocomplete/Autocomplete.js +0 -0
  216. /package/{components → dist/components}/Autocomplete/Autocomplete.js.map +0 -0
  217. /package/{components → dist/components}/Autocomplete/Autocomplete.sx.d.ts +0 -0
  218. /package/{components → dist/components}/Autocomplete/Autocomplete.types.d.ts +0 -0
  219. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
  220. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
  221. /package/{components → dist/components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
  222. /package/{components → dist/components}/Autocomplete/index.d.ts +0 -0
  223. /package/{components → dist/components}/Autocomplete.d.ts +0 -0
  224. /package/{components → dist/components}/Avatar/Avatar.cjs +0 -0
  225. /package/{components → dist/components}/Avatar/Avatar.cjs.map +0 -0
  226. /package/{components → dist/components}/Avatar/Avatar.d.ts +0 -0
  227. /package/{components → dist/components}/Avatar/Avatar.definitions.d.ts +0 -0
  228. /package/{components → dist/components}/Avatar/Avatar.js +0 -0
  229. /package/{components → dist/components}/Avatar/Avatar.js.map +0 -0
  230. /package/{components → dist/components}/Avatar/index.d.ts +0 -0
  231. /package/{components → dist/components}/Avatar.d.ts +0 -0
  232. /package/{components → dist/components}/Button/Button.cjs +0 -0
  233. /package/{components → dist/components}/Button/Button.cjs.map +0 -0
  234. /package/{components → dist/components}/Button/Button.d.ts +0 -0
  235. /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
  236. /package/{components → dist/components}/Button/Button.js +0 -0
  237. /package/{components → dist/components}/Button/Button.js.map +0 -0
  238. /package/{components → dist/components}/Button/index.d.ts +0 -0
  239. /package/{components → dist/components}/Button.d.ts +0 -0
  240. /package/{components → dist/components}/Card/Card.cjs +0 -0
  241. /package/{components → dist/components}/Card/Card.cjs.map +0 -0
  242. /package/{components → dist/components}/Card/Card.d.ts +0 -0
  243. /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
  244. /package/{components → dist/components}/Card/Card.js +0 -0
  245. /package/{components → dist/components}/Card/Card.js.map +0 -0
  246. /package/{components → dist/components}/Card/Card.sx.d.ts +0 -0
  247. /package/{components → dist/components}/Card/index.d.ts +0 -0
  248. /package/{components → dist/components}/Card.d.ts +0 -0
  249. /package/{components → dist/components}/Chip/Chip.cjs +0 -0
  250. /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
  251. /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
  252. /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
  253. /package/{components → dist/components}/Chip/Chip.js +0 -0
  254. /package/{components → dist/components}/Chip/Chip.js.map +0 -0
  255. /package/{components → dist/components}/Chip/index.d.ts +0 -0
  256. /package/{components → dist/components}/Chip.d.ts +0 -0
  257. /package/{components → dist/components}/Column/Column.cjs +0 -0
  258. /package/{components → dist/components}/Column/Column.cjs.map +0 -0
  259. /package/{components → dist/components}/Column/Column.d.ts +0 -0
  260. /package/{components → dist/components}/Column/Column.js +0 -0
  261. /package/{components → dist/components}/Column/Column.js.map +0 -0
  262. /package/{components → dist/components}/Column/index.d.ts +0 -0
  263. /package/{components → dist/components}/Column.d.ts +0 -0
  264. /package/{components → dist/components}/DatePicker/DatePicker.cjs +0 -0
  265. /package/{components → dist/components}/DatePicker/DatePicker.cjs.map +0 -0
  266. /package/{components → dist/components}/DatePicker/DatePicker.d.ts +0 -0
  267. /package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  268. /package/{components → dist/components}/DatePicker/DatePicker.helpers.d.ts +0 -0
  269. /package/{components → dist/components}/DatePicker/DatePicker.js +0 -0
  270. /package/{components → dist/components}/DatePicker/DatePicker.js.map +0 -0
  271. /package/{components → dist/components}/DatePicker/DatePicker.sx.d.ts +0 -0
  272. /package/{components → dist/components}/DatePicker/DatePicker.types.d.ts +0 -0
  273. /package/{components → dist/components}/DatePicker/index.d.ts +0 -0
  274. /package/{components → dist/components}/DatePicker.d.ts +0 -0
  275. /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs +0 -0
  276. /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  277. /package/{components → dist/components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  278. /package/{components → dist/components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  279. /package/{components → dist/components}/DateRangePicker/DateRangePicker.js +0 -0
  280. /package/{components → dist/components}/DateRangePicker/DateRangePicker.js.map +0 -0
  281. /package/{components → dist/components}/DateRangePicker/index.d.ts +0 -0
  282. /package/{components → dist/components}/DateRangePicker.d.ts +0 -0
  283. /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs +0 -0
  284. /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  285. /package/{components → dist/components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  286. /package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  287. /package/{components → dist/components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
  288. /package/{components → dist/components}/DateTimePicker/DateTimePicker.js +0 -0
  289. /package/{components → dist/components}/DateTimePicker/DateTimePicker.js.map +0 -0
  290. /package/{components → dist/components}/DateTimePicker/DateTimePicker.sx.d.ts +0 -0
  291. /package/{components → dist/components}/DateTimePicker/DateTimePicker.types.d.ts +0 -0
  292. /package/{components → dist/components}/DateTimePicker/index.d.ts +0 -0
  293. /package/{components → dist/components}/DateTimePicker.d.ts +0 -0
  294. /package/{components → dist/components}/Drawer/Drawer.cjs +0 -0
  295. /package/{components → dist/components}/Drawer/Drawer.cjs.map +0 -0
  296. /package/{components → dist/components}/Drawer/Drawer.d.ts +0 -0
  297. /package/{components → dist/components}/Drawer/Drawer.js +0 -0
  298. /package/{components → dist/components}/Drawer/Drawer.js.map +0 -0
  299. /package/{components → dist/components}/Drawer/Drawer.sx.d.ts +0 -0
  300. /package/{components → dist/components}/Drawer/DrawerContext.d.ts +0 -0
  301. /package/{components → dist/components}/Drawer/DrawerItem.d.ts +0 -0
  302. /package/{components → dist/components}/Drawer/index.d.ts +0 -0
  303. /package/{components → dist/components}/Drawer.d.ts +0 -0
  304. /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
  305. /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
  306. /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
  307. /package/{components → dist/components}/Flyout/Flyout.js +0 -0
  308. /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
  309. /package/{components → dist/components}/Flyout/index.d.ts +0 -0
  310. /package/{components → dist/components}/Flyout.d.ts +0 -0
  311. /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
  312. /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
  313. /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
  314. /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
  315. /package/{components → dist/components}/Gallery/Gallery.js +0 -0
  316. /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
  317. /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
  318. /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
  319. /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
  320. /package/{components → dist/components}/Gallery/index.d.ts +0 -0
  321. /package/{components → dist/components}/Gallery.d.ts +0 -0
  322. /package/{components → dist/components}/Icon/Icon.cjs +0 -0
  323. /package/{components → dist/components}/Icon/Icon.cjs.map +0 -0
  324. /package/{components → dist/components}/Icon/Icon.d.ts +0 -0
  325. /package/{components → dist/components}/Icon/Icon.js +0 -0
  326. /package/{components → dist/components}/Icon/Icon.js.map +0 -0
  327. /package/{components → dist/components}/Icon/index.d.ts +0 -0
  328. /package/{components → dist/components}/Icon.d.ts +0 -0
  329. /package/{components → dist/components}/Input/Input.cjs +0 -0
  330. /package/{components → dist/components}/Input/Input.cjs.map +0 -0
  331. /package/{components → dist/components}/Input/Input.d.ts +0 -0
  332. /package/{components → dist/components}/Input/Input.definitions.d.ts +0 -0
  333. /package/{components → dist/components}/Input/Input.helpers.d.ts +0 -0
  334. /package/{components → dist/components}/Input/Input.js +0 -0
  335. /package/{components → dist/components}/Input/Input.js.map +0 -0
  336. /package/{components → dist/components}/Input/Input.sx.d.ts +0 -0
  337. /package/{components → dist/components}/Input/Input.types.d.ts +0 -0
  338. /package/{components → dist/components}/Input/index.d.ts +0 -0
  339. /package/{components → dist/components}/Input.d.ts +0 -0
  340. /package/{components → dist/components}/InputGroup/InputGroup.cjs +0 -0
  341. /package/{components → dist/components}/InputGroup/InputGroup.cjs.map +0 -0
  342. /package/{components → dist/components}/InputGroup/InputGroup.d.ts +0 -0
  343. /package/{components → dist/components}/InputGroup/InputGroup.definitions.d.ts +0 -0
  344. /package/{components → dist/components}/InputGroup/InputGroup.js +0 -0
  345. /package/{components → dist/components}/InputGroup/InputGroup.js.map +0 -0
  346. /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
  347. /package/{components → dist/components}/InputGroup.d.ts +0 -0
  348. /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
  349. /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
  350. /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
  351. /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
  352. /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
  353. /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
  354. /package/{components → dist/components}/MenuButton.d.ts +0 -0
  355. /package/{components → dist/components}/Modal/Modal.cjs +0 -0
  356. /package/{components → dist/components}/Modal/Modal.cjs.map +0 -0
  357. /package/{components → dist/components}/Modal/Modal.d.ts +0 -0
  358. /package/{components → dist/components}/Modal/Modal.js +0 -0
  359. /package/{components → dist/components}/Modal/Modal.js.map +0 -0
  360. /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
  361. /package/{components → dist/components}/Modal/ModalFooter.d.ts +0 -0
  362. /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
  363. /package/{components → dist/components}/Modal/index.d.ts +0 -0
  364. /package/{components → dist/components}/Modal.d.ts +0 -0
  365. /package/{components → dist/components}/PageLoader/PageLoader.cjs +0 -0
  366. /package/{components → dist/components}/PageLoader/PageLoader.cjs.map +0 -0
  367. /package/{components → dist/components}/PageLoader/PageLoader.d.ts +0 -0
  368. /package/{components → dist/components}/PageLoader/PageLoader.js +0 -0
  369. /package/{components → dist/components}/PageLoader/PageLoader.js.map +0 -0
  370. /package/{components → dist/components}/PageLoader/index.d.ts +0 -0
  371. /package/{components → dist/components}/PageLoader.d.ts +0 -0
  372. /package/{components → dist/components}/ScrollTopButton/ScrollTopButton.cjs +0 -0
  373. /package/{components → dist/components}/ScrollTopButton/ScrollTopButton.cjs.map +0 -0
  374. /package/{components → dist/components}/ScrollTopButton/ScrollTopButton.d.ts +0 -0
  375. /package/{components → dist/components}/ScrollTopButton/ScrollTopButton.js +0 -0
  376. /package/{components → dist/components}/ScrollTopButton/ScrollTopButton.js.map +0 -0
  377. /package/{components → dist/components}/ScrollTopButton/index.d.ts +0 -0
  378. /package/{components → dist/components}/ScrollTopButton/scrollToTop.d.ts +0 -0
  379. /package/{components → dist/components}/ScrollTopButton.d.ts +0 -0
  380. /package/{components → dist/components}/Select/Select.cjs +0 -0
  381. /package/{components → dist/components}/Select/Select.cjs.map +0 -0
  382. /package/{components → dist/components}/Select/Select.d.ts +0 -0
  383. /package/{components → dist/components}/Select/Select.definitions.d.ts +0 -0
  384. /package/{components → dist/components}/Select/Select.helpers.d.ts +0 -0
  385. /package/{components → dist/components}/Select/Select.js +0 -0
  386. /package/{components → dist/components}/Select/Select.js.map +0 -0
  387. /package/{components → dist/components}/Select/Select.sx.d.ts +0 -0
  388. /package/{components → dist/components}/Select/Select.types.d.ts +0 -0
  389. /package/{components → dist/components}/Select/_parts/SelectMenuItem.d.ts +0 -0
  390. /package/{components → dist/components}/Select/_parts/SelectSearchHeader.d.ts +0 -0
  391. /package/{components → dist/components}/Select/_parts/SelectValue.d.ts +0 -0
  392. /package/{components → dist/components}/Select/index.d.ts +0 -0
  393. /package/{components → dist/components}/Select.d.ts +0 -0
  394. /package/{components → dist/components}/Stat/Stat.cjs +0 -0
  395. /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
  396. /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
  397. /package/{components → dist/components}/Stat/Stat.js +0 -0
  398. /package/{components → dist/components}/Stat/Stat.js.map +0 -0
  399. /package/{components → dist/components}/Stat/index.d.ts +0 -0
  400. /package/{components → dist/components}/Stat.d.ts +0 -0
  401. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
  402. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
  403. /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
  404. /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
  405. /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
  406. /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
  407. /package/{components → dist/components}/StatusMessage.d.ts +0 -0
  408. /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
  409. /package/{components → dist/components}/Stepper/Stepper.cjs +0 -0
  410. /package/{components → dist/components}/Stepper/Stepper.cjs.map +0 -0
  411. /package/{components → dist/components}/Stepper/Stepper.d.ts +0 -0
  412. /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
  413. /package/{components → dist/components}/Stepper/Stepper.js +0 -0
  414. /package/{components → dist/components}/Stepper/Stepper.js.map +0 -0
  415. /package/{components → dist/components}/Stepper/index.d.ts +0 -0
  416. /package/{components → dist/components}/Stepper.d.ts +0 -0
  417. /package/{components → dist/components}/Table/Table.cjs +0 -0
  418. /package/{components → dist/components}/Table/Table.cjs.map +0 -0
  419. /package/{components → dist/components}/Table/Table.d.ts +0 -0
  420. /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
  421. /package/{components → dist/components}/Table/Table.js +0 -0
  422. /package/{components → dist/components}/Table/Table.js.map +0 -0
  423. /package/{components → dist/components}/Table/data.d.ts +0 -0
  424. /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
  425. /package/{components → dist/components}/Table/index.d.ts +0 -0
  426. /package/{components → dist/components}/Table/types.d.ts +0 -0
  427. /package/{components → dist/components}/Table.d.ts +0 -0
  428. /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
  429. /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
  430. /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
  431. /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
  432. /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
  433. /package/{components → dist/components}/Tabs/Tabs.js +0 -0
  434. /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
  435. /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
  436. /package/{components → dist/components}/Tabs/index.d.ts +0 -0
  437. /package/{components → dist/components}/Tabs.d.ts +0 -0
  438. /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
  439. /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
  440. /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
  441. /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
  442. /package/{components → dist/components}/Timeline/Timeline.js +0 -0
  443. /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
  444. /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
  445. /package/{components → dist/components}/Timeline/index.d.ts +0 -0
  446. /package/{components → dist/components}/Timeline.d.ts +0 -0
  447. /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
  448. /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
  449. /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
  450. /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
  451. /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
  452. /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
  453. /package/{components → dist/components}/Tooltip.d.ts +0 -0
  454. /package/{components → dist/components}/_shared/formField.sx.d.ts +0 -0
  455. /package/{components → dist/components}/_shared/resolvePreset.d.ts +0 -0
  456. /package/{formField.sx-CQ1mbk9M.cjs → dist/formField.sx-CQ1mbk9M.cjs} +0 -0
  457. /package/{formField.sx-CQ1mbk9M.cjs.map → dist/formField.sx-CQ1mbk9M.cjs.map} +0 -0
  458. /package/{formField.sx-DfVbMe0V.js → dist/formField.sx-DfVbMe0V.js} +0 -0
  459. /package/{formField.sx-DfVbMe0V.js.map → dist/formField.sx-DfVbMe0V.js.map} +0 -0
  460. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
  461. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  462. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  463. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
  464. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
  465. /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  466. /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
  467. /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
  468. /package/{hooks → dist/hooks}/Wizard/Wizard.cjs +0 -0
  469. /package/{hooks → dist/hooks}/Wizard/Wizard.cjs.map +0 -0
  470. /package/{hooks → dist/hooks}/Wizard/Wizard.js +0 -0
  471. /package/{hooks → dist/hooks}/Wizard/Wizard.js.map +0 -0
  472. /package/{hooks → dist/hooks}/Wizard/WizardContext.d.ts +0 -0
  473. /package/{hooks → dist/hooks}/Wizard/index.d.ts +0 -0
  474. /package/{hooks → dist/hooks}/Wizard/useWizard.d.ts +0 -0
  475. /package/{hooks → dist/hooks}/Wizard.d.ts +0 -0
  476. /package/{index.d.ts → dist/index.d.ts} +0 -0
  477. /package/{index.js.map → dist/index.js.map} +0 -0
  478. /package/{resolvePreset-B-IB0ehH.js → dist/resolvePreset-B-IB0ehH.js} +0 -0
  479. /package/{resolvePreset-B-IB0ehH.js.map → dist/resolvePreset-B-IB0ehH.js.map} +0 -0
  480. /package/{resolvePreset-CT3kU-K2.cjs → dist/resolvePreset-CT3kU-K2.cjs} +0 -0
  481. /package/{resolvePreset-CT3kU-K2.cjs.map → dist/resolvePreset-CT3kU-K2.cjs.map} +0 -0
  482. /package/{styles.css → dist/styles.css} +0 -0
  483. /package/{theme → dist/theme}/componentStyles.d.ts +0 -0
  484. /package/{theme → dist/theme}/tokens.d.ts +0 -0
  485. /package/{useWizard-CWdIxZzX.cjs → dist/useWizard-CWdIxZzX.cjs} +0 -0
  486. /package/{useWizard-CWdIxZzX.cjs.map → dist/useWizard-CWdIxZzX.cjs.map} +0 -0
  487. /package/{useWizard-CWq--C3o.js → dist/useWizard-CWq--C3o.js} +0 -0
  488. /package/{useWizard-CWq--C3o.js.map → dist/useWizard-CWq--C3o.js.map} +0 -0
@@ -0,0 +1,166 @@
1
+ import React, {
2
+ createContext,
3
+ useCallback,
4
+ useMemo,
5
+ useState,
6
+ type FC,
7
+ type ReactNode,
8
+ } from 'react';
9
+
10
+ /**
11
+ * API expuesta por `useWizard()`.
12
+ *
13
+ * Nota de retro-compatibilidad: los nombres `submitStep`, `nextStep`,
14
+ * `prevStep`, `goToStep` se mantienen idénticos al `WizardContext` de
15
+ * `@soyfri/fri-web-components` para que consumers migrando no tengan que
16
+ * cambiar sus llamadas. Se agregan campos extra opcionales que antes no
17
+ * existían (`currentStep`, `totalSteps`, `isFirst`, `isLast`, `completed`).
18
+ */
19
+ export interface WizardContextValue {
20
+ /** Índice del paso actual (0-based). */
21
+ currentStep: number;
22
+ /** Total de pasos del wizard. */
23
+ totalSteps: number;
24
+ /** True si `currentStep === 0`. */
25
+ isFirst: boolean;
26
+ /** True si `currentStep === totalSteps - 1`. */
27
+ isLast: boolean;
28
+ /** True tras ejecutar `submitStep()` desde el último paso. */
29
+ completed: boolean;
30
+ /** Avanza al siguiente paso (no pasa de `totalSteps - 1`). */
31
+ nextStep: () => void;
32
+ /** Retrocede al paso anterior (no baja de 0). */
33
+ prevStep: () => void;
34
+ /** Salta a un paso específico (0-based). No-op si fuera de rango. */
35
+ goToStep: (stepNumber: number) => void;
36
+ /**
37
+ * Envía el wizard. Marca `completed = true` y dispara el callback
38
+ * `onSubmit` del provider. En el último paso suele reemplazar a `nextStep`.
39
+ */
40
+ submitStep: () => void;
41
+ /** Resetea el wizard al paso inicial y limpia `completed`. */
42
+ reset: () => void;
43
+ }
44
+
45
+ const defaultValue: WizardContextValue = {
46
+ currentStep: 0,
47
+ totalSteps: 0,
48
+ isFirst: true,
49
+ isLast: true,
50
+ completed: false,
51
+ nextStep: () => {},
52
+ prevStep: () => {},
53
+ goToStep: () => {},
54
+ submitStep: () => {},
55
+ reset: () => {},
56
+ };
57
+
58
+ export const WizardContext = createContext<WizardContextValue>(defaultValue);
59
+
60
+ export interface WizardProviderProps {
61
+ /** Número total de pasos del wizard. Requerido. */
62
+ totalSteps: number;
63
+ /** Paso inicial (0-based). Default: 0. */
64
+ initialStep?: number;
65
+ /**
66
+ * Callback disparado cuando se llama `submitStep()`. Recibe el paso actual.
67
+ * El paquete NO ejecuta ninguna petición; queda a cargo del consumer.
68
+ */
69
+ onSubmit?: (currentStep: number) => void;
70
+ /**
71
+ * Callback disparado en cada cambio de paso (next/prev/goTo).
72
+ * Útil para tracking o validaciones externas.
73
+ */
74
+ onStepChange?: (newStep: number, prevStep: number) => void;
75
+ children?: ReactNode;
76
+ }
77
+
78
+ /**
79
+ * Provider del wizard. Administra el `currentStep` internamente. El consumer
80
+ * no necesita gestionar estado — sólo consumirlo con `useWizard()` desde
81
+ * cualquier descendiente.
82
+ *
83
+ * ```tsx
84
+ * <WizardProvider totalSteps={3} onSubmit={handleFinalSubmit}>
85
+ * <Stepper ... />
86
+ * <StepContent />
87
+ * <WizardControls />
88
+ * </WizardProvider>
89
+ * ```
90
+ */
91
+ export const WizardProvider: FC<WizardProviderProps> = ({
92
+ totalSteps,
93
+ initialStep = 0,
94
+ onSubmit,
95
+ onStepChange,
96
+ children,
97
+ }) => {
98
+ const [currentStep, setCurrentStep] = useState(initialStep);
99
+ const [completed, setCompleted] = useState(false);
100
+
101
+ const changeStep = useCallback(
102
+ (newStep: number) => {
103
+ setCurrentStep((prev) => {
104
+ if (newStep === prev) return prev;
105
+ if (newStep < 0 || newStep >= totalSteps) return prev;
106
+ onStepChange?.(newStep, prev);
107
+ return newStep;
108
+ });
109
+ },
110
+ [totalSteps, onStepChange],
111
+ );
112
+
113
+ const nextStep = useCallback(() => {
114
+ changeStep(currentStep + 1);
115
+ }, [changeStep, currentStep]);
116
+
117
+ const prevStep = useCallback(() => {
118
+ changeStep(currentStep - 1);
119
+ }, [changeStep, currentStep]);
120
+
121
+ const goToStep = useCallback(
122
+ (stepNumber: number) => {
123
+ changeStep(stepNumber);
124
+ },
125
+ [changeStep],
126
+ );
127
+
128
+ const submitStep = useCallback(() => {
129
+ setCompleted(true);
130
+ onSubmit?.(currentStep);
131
+ }, [currentStep, onSubmit]);
132
+
133
+ const reset = useCallback(() => {
134
+ setCurrentStep(initialStep);
135
+ setCompleted(false);
136
+ }, [initialStep]);
137
+
138
+ const value = useMemo<WizardContextValue>(
139
+ () => ({
140
+ currentStep,
141
+ totalSteps,
142
+ isFirst: currentStep === 0,
143
+ isLast: currentStep === totalSteps - 1,
144
+ completed,
145
+ nextStep,
146
+ prevStep,
147
+ goToStep,
148
+ submitStep,
149
+ reset,
150
+ }),
151
+ [
152
+ currentStep,
153
+ totalSteps,
154
+ completed,
155
+ nextStep,
156
+ prevStep,
157
+ goToStep,
158
+ submitStep,
159
+ reset,
160
+ ],
161
+ );
162
+
163
+ return (
164
+ <WizardContext.Provider value={value}>{children}</WizardContext.Provider>
165
+ );
166
+ };
@@ -0,0 +1,6 @@
1
+ export { useWizard } from './useWizard';
2
+ export {
3
+ WizardProvider,
4
+ WizardContext,
5
+ } from './WizardContext';
6
+ export type { WizardContextValue, WizardProviderProps } from './WizardContext';
@@ -0,0 +1,13 @@
1
+ import { useContext } from 'react';
2
+ import { WizardContext, type WizardContextValue } from './WizardContext';
3
+
4
+ /**
5
+ * Hook para consumir el `WizardContext` desde cualquier descendiente de
6
+ * `<WizardProvider>`.
7
+ *
8
+ * Si se llama fuera de un provider, devuelve los valores por defecto (no-op)
9
+ * para mantener compatibilidad con el hook original de fri-web-components.
10
+ */
11
+ export function useWizard(): WizardContextValue {
12
+ return useContext(WizardContext);
13
+ }
package/src/index.ts ADDED
@@ -0,0 +1,17 @@
1
+ import './styles.css';
2
+
3
+ // ── Sistema de presets de estilos (theme.styles) ─────────────────────────
4
+ // Exportar el módulo de tipos ejecuta el `declare module '@mui/material/styles'`
5
+ // para que los consumers tengan `theme.styles` tipado sin imports extra.
6
+ export type {
7
+ LibraryComponentName,
8
+ PresetStyle,
9
+ ComponentPresets,
10
+ LibraryStyles,
11
+ } from './theme/componentStyles';
12
+ export { DEFAULT_PRESET_NAME, resolvePreset } from './components/_shared/resolvePreset';
13
+ import './theme/componentStyles';
14
+
15
+ // ── Pass-through de MUI (punto de entrada único para el consumer) ─────────
16
+ // Regla: el consumer nunca importa de '@mui/material'. Todo viene de acá.
17
+ export * from './mui';
package/src/mui.ts ADDED
@@ -0,0 +1,54 @@
1
+ // -----------------------------------------------------------------------------
2
+ // Pass-through puro de primitivos de MUI.
3
+ //
4
+ // Regla para el consumer: si está en `@soyfri/shared-library`, impórtalo desde
5
+ // acá. NUNCA directamente desde `@mui/material`. Esto nos da un único punto de
6
+ // entrada y facilita un eventual cambio de librería base.
7
+ //
8
+ // Este archivo NO wrappea nada — solo re-exporta. Si se necesita otro
9
+ // primitivo, agregar la línea correspondiente.
10
+ // -----------------------------------------------------------------------------
11
+
12
+ // ── Layout primitives ────────────────────────────────────────────────────
13
+ export {
14
+ Box,
15
+ Stack,
16
+ Grid,
17
+ Container,
18
+ Paper,
19
+ Divider,
20
+ } from '@mui/material';
21
+
22
+ // ── Tipografía ────────────────────────────────────────────────────────────
23
+ export { Typography, Link } from '@mui/material';
24
+
25
+ // ── Listas ────────────────────────────────────────────────────────────────
26
+ export {
27
+ List,
28
+ ListItem,
29
+ ListItemButton,
30
+ ListItemIcon,
31
+ ListItemText,
32
+ ListSubheader,
33
+ } from '@mui/material';
34
+
35
+ // ── Feedback / misc ───────────────────────────────────────────────────────
36
+ export {
37
+ CircularProgress,
38
+ LinearProgress,
39
+ Skeleton,
40
+ Alert,
41
+ AlertTitle,
42
+ Snackbar,
43
+ Backdrop,
44
+ Fade,
45
+ Grow,
46
+ Zoom,
47
+ Collapse,
48
+ } from '@mui/material';
49
+
50
+ // ── Hooks y utilidades de tema ───────────────────────────────────────────
51
+ export { useTheme, useMediaQuery, alpha, styled } from '@mui/material';
52
+
53
+ // ── Tipos más usados ──────────────────────────────────────────────────────
54
+ export type { SxProps, Theme } from '@mui/material/styles';
package/src/styles.css ADDED
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,47 @@
1
+ import type { SxProps, Theme } from '@mui/material/styles';
2
+
3
+ /**
4
+ * Lista de componentes del paquete que soportan presets registrables en el
5
+ * theme. Si en el futuro se agrega otro componente al sistema, se extiende
6
+ * esta union.
7
+ */
8
+ export type LibraryComponentName =
9
+ | 'Input'
10
+ | 'Select'
11
+ | 'Autocomplete'
12
+ | 'DatePicker'
13
+ | 'DateTimePicker'
14
+ | 'Drawer'
15
+ | 'AppBar'
16
+ | 'Card'
17
+ | 'ScrollTopButton';
18
+
19
+ /**
20
+ * Un estilo de preset. Puede ser un objeto sx directo o una función del theme
21
+ * para acceder a palette/typography/etc.
22
+ */
23
+ export type PresetStyle = SxProps<Theme> | ((theme: Theme) => SxProps<Theme>);
24
+
25
+ /**
26
+ * Map de presets disponibles para un componente. Las keys son nombres libres
27
+ * elegidos por el consumidor (p.ej. `reddit`, `compact-filled`). El paquete
28
+ * no registra ninguna entrada: `preset="default"` significa "usar el estilo
29
+ * built-in de fábrica" y no requiere registro.
30
+ */
31
+ export type ComponentPresets = Record<string, PresetStyle>;
32
+
33
+ /**
34
+ * Shape del namespace `theme.styles` — un map de componentes del paquete a
35
+ * sus presets registrados.
36
+ */
37
+ export type LibraryStyles = Partial<Record<LibraryComponentName, ComponentPresets>>;
38
+
39
+ // ── Module augmentation de MUI ───────────────────────────────────────────
40
+ declare module '@mui/material/styles' {
41
+ interface Theme {
42
+ styles: LibraryStyles;
43
+ }
44
+ interface ThemeOptions {
45
+ styles?: LibraryStyles;
46
+ }
47
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Design tokens compartidos por los componentes de formulario
3
+ * (Input, Select, Autocomplete, DatePicker, DateTimePicker).
4
+ *
5
+ * Centralizar estos valores garantiza que:
6
+ * - el espaciado, la tipografía y las animaciones del label sean idénticos
7
+ * en todos los campos;
8
+ * - un cambio visual global (p.ej. cambiar el transform del shrink) se haga
9
+ * en un único archivo.
10
+ */
11
+
12
+ // ── Spacing ──────────────────────────────────────────────────────────────
13
+ /** Margen superior que deja el aire para el label flotante "outside". */
14
+ export const LABEL_MARGIN_TOP = '14px';
15
+
16
+ /** Padding vertical interno del input (TextField/Select/Picker sections). */
17
+ export const FIELD_INPUT_PADDING_Y = '8.5px';
18
+
19
+ // ── Label animation ──────────────────────────────────────────────────────
20
+ /** Transform que aplica el label cuando sube arriba del input (shrink). */
21
+ export const LABEL_SHRINK_TRANSFORM = 'translate(4px, -22px) scale(0.85)';
22
+
23
+ /** Origen del transform para el shrink. */
24
+ export const LABEL_TRANSFORM_ORIGIN = 'top left';
25
+
26
+ /** Transición del label (color + transform + max-width). */
27
+ export const LABEL_TRANSITION =
28
+ 'color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +
29
+ 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +
30
+ 'max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';
31
+
32
+ // ── Label colors (theme-aware) ───────────────────────────────────────────
33
+ /** Color del label en reposo. */
34
+ export const LABEL_COLOR_REST = 'text.secondary';
35
+
36
+ /** Color del label cuando el campo tiene valor (shrink). */
37
+ export const LABEL_COLOR_FILLED = 'text.primary';
38
+
39
+ /** Color del label cuando el campo está focused. */
40
+ export const LABEL_COLOR_FOCUSED = 'primary.main';
41
+
42
+ /** Peso del label cuando sube (filled/focused). */
43
+ export const LABEL_FONT_WEIGHT_FILLED = 500;
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ content: ["./src/**/*.{js,jsx,ts,tsx}"],
3
+ theme: {
4
+ extend: {},
5
+ },
6
+ plugins: [],
7
+ corePlugins: {
8
+ preflight: false, // Disable Tailwind's base styles to avoid conflicts with MUI
9
+ },
10
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "compilerOptions": {
3
+ /* Specifies ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
4
+ "target": "es2017",
5
+ /* Specifies library files to be included in the compilation. */
6
+ "lib": ["dom", "dom.iterable", "esnext"],
7
+ /* Allows JavaScript files to be compiled. */
8
+ "allowJs": true,
9
+ /* Skip type checking of declaration files. */
10
+ "skipLibCheck": true,
11
+ /* Enables emit interoperability between CommonJS and ES Modules. */
12
+ "esModuleInterop": true,
13
+ /* Allows import x from y when a module doesn't have a default export. */
14
+ "allowSyntheticDefaultImports": true,
15
+ /* Enables all strict type-checking options. */
16
+ "strict": true,
17
+ /* Ensures file names are consistent in casing with imports. */
18
+ "forceConsistentCasingInFileNames": true,
19
+ /* Report errors for fallthrough cases in switch statements. */
20
+ "noFallthroughCasesInSwitch": true,
21
+ /* Specifies module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
22
+ "module": "esnext",
23
+ /* Specifies how TypeScript looks up a file from a given module specifier. */
24
+ "moduleResolution": "node",
25
+ /* Allows importing .json files. */
26
+ "resolveJsonModule": true,
27
+ /* Ensures each file can be safely transpiled without relying on other imports. */
28
+ "isolatedModules": true,
29
+ /* Specifies the JSX factory function to use when targeting React JSX emit. */
30
+ "jsx": "react-jsx",
31
+ /* Generates corresponding .d.ts file for each output JavaScript file. */
32
+ "declaration": true,
33
+ /* Specifies the output directory for generated declaration files. */
34
+ "declarationDir": "dist/esm",
35
+ /* Specifies the output directory for all emitted files. */
36
+ "outDir": "dist",
37
+
38
+ /* --- Configuración de Alias de Módulos --- */
39
+ "baseUrl": ".", // 👈 Base para resolver rutas absolutas
40
+ "paths": {
41
+ "@soyfri/shared-library/*": ["src/*"] // 👈 Alias que mapea @soyfri/shared-library a la carpeta src
42
+ }
43
+ },
44
+ /* Specifies a list of glob patterns that match files to be included in compilation. */
45
+ "include": ["src"],
46
+ /* Specifies a list of files to be excluded from compilation. */
47
+ "exclude": ["node_modules", "dist"]
48
+ }
package/tsup.config.js ADDED
@@ -0,0 +1,41 @@
1
+ import { defineConfig } from 'tsup';
2
+ import { glob } from 'glob';
3
+
4
+ // Find all entry points in the 'src/components' directory
5
+ const componentEntries = glob.sync('src/components/*/index.ts');
6
+ const mainEntry = 'src/index.ts';
7
+
8
+ export default defineConfig({
9
+ // Configure multiple entry points for each component and the main library index.
10
+ entry: [mainEntry, ...componentEntries],
11
+
12
+ // Clean the 'dist' directory before building.
13
+ clean: true,
14
+
15
+ // Generate both ESM and CommonJS formats.
16
+ format: ['esm', 'cjs'],
17
+
18
+ // Generate sourcemaps for better debugging.
19
+ sourcemap: true,
20
+
21
+ // Generate declaration files (.d.ts) for TypeScript.
22
+ dts: true,
23
+
24
+ // Split code into chunks for better optimization.
25
+ splitting: true,
26
+
27
+ // Do not bundle these dependencies. They will be handled by the consumer's package manager.
28
+ external: [
29
+ 'react',
30
+ 'react-dom',
31
+ /@mui\/.*/,
32
+ /@emotion\/.*/,
33
+ 'dayjs',
34
+ 'react-hook-form',
35
+ ],
36
+
37
+ // Override tsup's default esbuild options if needed.
38
+ esbuildOptions(options) {
39
+ // You can add custom esbuild configurations here, if necessary.
40
+ },
41
+ });
package/vite.config.js ADDED
@@ -0,0 +1,132 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import { resolve } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import { dirname } from 'path';
6
+ import { globSync } from 'glob';
7
+ import dts from 'vite-plugin-dts';
8
+ import { libInjectCss } from 'vite-plugin-lib-inject-css';
9
+
10
+ // Obtener __dirname en ESM
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = dirname(__filename);
13
+
14
+ // Función para generar los puntos de entrada de componentes y hooks con validación de mayúsculas
15
+ const getEntryPoints = (sourceDir, prefix) => {
16
+ const entryPoints = {};
17
+ const files = globSync(`${sourceDir}/*/index.ts`);
18
+
19
+ files.forEach(file => {
20
+ const componentName = file.split('/').slice(-2, -1)[0];
21
+
22
+ // Verificar si el nombre de la carpeta tiene la inicial en mayúscula
23
+ if (!/^[A-Z]/.test(componentName)) {
24
+ console.log(`Saltando el directorio '${componentName}' porque no empieza con mayúscula.`);
25
+ return;
26
+ }
27
+
28
+ entryPoints[`${prefix}/${componentName}`] = resolve(__dirname, file);
29
+ });
30
+
31
+ return entryPoints;
32
+ };
33
+
34
+ // Generar entry points para componentes
35
+ const componentEntryPoints = getEntryPoints('src/components', 'components');
36
+
37
+ // Generar entry points para hooks
38
+ const hooksEntryPoints = getEntryPoints('src/hooks', 'hooks');
39
+
40
+ export default defineConfig(({ mode }) => {
41
+ const isLibraryBuild = mode === 'lib';
42
+
43
+ const baseConfig = {
44
+ plugins: [
45
+ react(),
46
+ ...(isLibraryBuild ? [
47
+ dts({
48
+ include: ['src'],
49
+ exclude: [
50
+ '**/*.test.*',
51
+ '**/*.spec.*',
52
+ '**/*.stories.*',
53
+ 'src/stories/**'
54
+ ],
55
+ outDir: 'dist',
56
+ insertTypesEntry: true,
57
+ }),
58
+ libInjectCss()
59
+ ] : [])
60
+ ],
61
+ resolve: {
62
+ alias: {
63
+ '@soyfri/shared-library': resolve(__dirname, './src'),
64
+ },
65
+ extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'],
66
+ },
67
+ };
68
+
69
+ // Si estamos haciendo build de librería
70
+ if (isLibraryBuild) {
71
+ return {
72
+ ...baseConfig,
73
+ build: {
74
+ lib: {
75
+ entry: {
76
+ index: resolve(__dirname, 'src/index.ts'),
77
+ ...componentEntryPoints,
78
+ ...hooksEntryPoints,
79
+ },
80
+ formats: ['es', 'cjs'],
81
+ // Lógica para generar la estructura de directorios
82
+ fileName: (format, entryName) => {
83
+ const extension = format === 'es' ? 'js' : 'cjs';
84
+ if (entryName === 'index') {
85
+ return `index.${extension}`;
86
+ }
87
+ // Esto asume que el entryName es algo como 'components/Button' o 'hooks/useHook'
88
+ // y crea la estructura de directorios apropiada.
89
+ const parts = entryName.split('/');
90
+ const type = parts[0]; // 'components' o 'hooks'
91
+ const name = parts[1]; // 'Button' o 'useHook'
92
+ return `${type}/${name}/${name}.${extension}`;
93
+ },
94
+ },
95
+ rollupOptions: {
96
+ external: [
97
+ 'react',
98
+ 'react-dom',
99
+ 'react/jsx-runtime',
100
+ /@mui\/.*/,
101
+ /@emotion\/.*/,
102
+ 'dayjs',
103
+ 'react-hook-form',
104
+ 'tailwindcss',
105
+ 'autoprefixer',
106
+ 'postcss',
107
+ ],
108
+ output: {
109
+ globals: {
110
+ react: 'React',
111
+ 'react-dom': 'ReactDOM',
112
+ 'react/jsx-runtime': 'jsxRuntime',
113
+ },
114
+ assetFileNames: (assetInfo) => {
115
+ if (assetInfo.name === 'style.css') return 'styles.css';
116
+ return assetInfo.name;
117
+ },
118
+ },
119
+ },
120
+ target: 'es2017',
121
+ sourcemap: true,
122
+ minify: false,
123
+ cssCodeSplit: false,
124
+ outDir: 'dist',
125
+ emptyOutDir: true,
126
+ },
127
+ };
128
+ }
129
+
130
+ // Configuración para desarrollo/Storybook (sin cambios)
131
+ return baseConfig;
132
+ });
@@ -0,0 +1,35 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+
4
+ import { defineConfig } from 'vitest/config';
5
+
6
+ import { storybookTest } from '@storybook/addon-vitest/vitest-plugin';
7
+
8
+ const dirname =
9
+ typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url));
10
+
11
+ // More info at: https://storybook.js.org/docs/writing-tests/test-addon
12
+ export default defineConfig({
13
+ test: {
14
+ workspace: [
15
+ {
16
+ extends: true,
17
+ plugins: [
18
+ // The plugin will run tests for the stories defined in your Storybook config
19
+ // See options at: https://storybook.js.org/docs/writing-tests/test-addon#storybooktest
20
+ storybookTest({ configDir: path.join(dirname, '.storybook') }),
21
+ ],
22
+ test: {
23
+ name: 'storybook',
24
+ browser: {
25
+ enabled: true,
26
+ headless: true,
27
+ name: 'chromium',
28
+ provider: 'playwright'
29
+ },
30
+ setupFiles: ['.storybook/vitest.setup.ts'],
31
+ },
32
+ },
33
+ ],
34
+ },
35
+ });
File without changes
File without changes
File without changes