@soyfri/shared-library 1.5.0-beta.4 → 1.5.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 (353) 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/Autocomplete/Autocomplete.cjs +109 -0
  12. package/dist/components/Autocomplete/Autocomplete.cjs.map +1 -0
  13. package/dist/components/Autocomplete/Autocomplete.js +109 -0
  14. package/dist/components/Autocomplete/Autocomplete.js.map +1 -0
  15. package/dist/styles.css +112 -0
  16. package/package.json +43 -134
  17. package/rollup.config.cjs +87 -0
  18. package/src/components/Autocomplete/Autocomplete.definitions.ts +254 -0
  19. package/src/components/Autocomplete/Autocomplete.stories.tsx +387 -0
  20. package/src/components/Autocomplete/Autocomplete.tsx +139 -0
  21. package/src/components/Autocomplete/index.ts +1 -0
  22. package/src/components/Avatar/Avatar.stories.tsx +54 -0
  23. package/src/components/Avatar/Avatar.tsx +143 -0
  24. package/src/components/Avatar/index.ts +1 -0
  25. package/src/components/Button/Button.definition.ts +97 -0
  26. package/src/components/Button/Button.stories.tsx +285 -0
  27. package/src/components/Button/Button.tsx +67 -0
  28. package/src/components/Button/index.ts +1 -0
  29. package/src/components/Card/Card.definition.ts +5 -0
  30. package/src/components/Card/Card.stories.tsx +32 -0
  31. package/src/components/Card/Card.tsx +44 -0
  32. package/src/components/Card/index.ts +1 -0
  33. package/src/components/Chip/Chip.definitions.ts +167 -0
  34. package/src/components/Chip/Chip.stories.tsx +265 -0
  35. package/src/components/Chip/Chip.tsx +61 -0
  36. package/src/components/Chip/index.ts +1 -0
  37. package/src/components/Column/Column.tsx +29 -0
  38. package/src/components/Column/index.ts +1 -0
  39. package/src/components/DatePicker/DatePicker.definitions.ts +205 -0
  40. package/src/components/DatePicker/DatePicker.stories.tsx +282 -0
  41. package/src/components/DatePicker/DatePicker.tsx +165 -0
  42. package/src/components/DatePicker/index.ts +1 -0
  43. package/src/components/DateRangePicker/DateRangePicker.definitions.ts +191 -0
  44. package/src/components/DateRangePicker/DateRangePicker.stories.tsx +252 -0
  45. package/src/components/DateRangePicker/DateRangePicker.tsx +56 -0
  46. package/src/components/DateRangePicker/index.ts +1 -0
  47. package/src/components/DateTimePicker/DateTimePicker.definitions.ts +232 -0
  48. package/src/components/DateTimePicker/DateTimePicker.stories.tsx +390 -0
  49. package/src/components/DateTimePicker/DateTimePicker.tsx +191 -0
  50. package/src/components/DateTimePicker/index.ts +1 -0
  51. package/src/components/Flyout/Flyout.stories.tsx +274 -0
  52. package/src/components/Flyout/Flyout.tsx +122 -0
  53. package/src/components/Flyout/index.ts +1 -0
  54. package/src/components/Gallery/Gallery.definition.tsx +37 -0
  55. package/src/components/Gallery/Gallery.stories.tsx +82 -0
  56. package/src/components/Gallery/Gallery.tsx +118 -0
  57. package/src/components/Gallery/GalleryLightbox.tsx +170 -0
  58. package/src/components/Gallery/GalleryMain.tsx +84 -0
  59. package/src/components/Gallery/GalleryThumbnails.tsx +106 -0
  60. package/src/components/Gallery/index.ts +1 -0
  61. package/src/components/Icon/Icon.stories.tsx +54 -0
  62. package/src/components/Icon/Icon.tsx +94 -0
  63. package/src/components/Icon/index.ts +2 -0
  64. package/src/components/Input/Input.definitions.ts +252 -0
  65. package/src/components/Input/Input.stories.tsx +387 -0
  66. package/src/components/Input/Input.tsx +186 -0
  67. package/src/components/Input/index.ts +1 -0
  68. package/src/components/InputGroup/InputGroup.stories.tsx +136 -0
  69. package/src/components/InputGroup/InputGroup.tsx +136 -0
  70. package/src/components/InputGroup/index.ts +1 -0
  71. package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
  72. package/src/components/MenuButton/MenuButton.tsx +100 -0
  73. package/src/components/MenuButton/index.ts +1 -0
  74. package/src/components/Modal/Modal.stories.tsx +293 -0
  75. package/src/components/Modal/Modal.tsx +173 -0
  76. package/src/components/Modal/ModalBody.tsx +16 -0
  77. package/src/components/Modal/ModalFooter.tsx +61 -0
  78. package/src/components/Modal/ModalHeader.tsx +18 -0
  79. package/src/components/Modal/index.ts +1 -0
  80. package/src/components/Select/Select.definitions.ts +488 -0
  81. package/src/components/Select/Select.stories.tsx +569 -0
  82. package/src/components/Select/Select.tsx +468 -0
  83. package/src/components/Select/index.ts +1 -0
  84. package/src/components/Stat/Stat.stories.tsx +85 -0
  85. package/src/components/Stat/Stat.tsx +117 -0
  86. package/src/components/Stat/index.ts +2 -0
  87. package/src/components/StatusMessage/StatusMessage.stories.tsx +130 -0
  88. package/src/components/StatusMessage/StatusMessage.tsx +162 -0
  89. package/src/components/StatusMessage/index.ts +2 -0
  90. package/src/components/Stepper/Step.tsx +21 -0
  91. package/src/components/Stepper/Stepper.definition.ts +75 -0
  92. package/src/components/Stepper/Stepper.stories.tsx +122 -0
  93. package/src/components/Stepper/Stepper.tsx +59 -0
  94. package/src/components/Stepper/index.ts +2 -0
  95. package/src/components/Table/EmptyTable.png +0 -0
  96. package/src/components/Table/Table.definition.ts +580 -0
  97. package/src/components/Table/Table.stories.tsx +853 -0
  98. package/src/components/Table/Table.tsx +495 -0
  99. package/src/components/Table/data.ts +134 -0
  100. package/src/components/Table/exportsUtils.ts +195 -0
  101. package/src/components/Table/index.ts +3 -0
  102. package/src/components/Table/types.ts +34 -0
  103. package/src/components/Tabs/Tab.definition.ts +53 -0
  104. package/src/components/Tabs/Tab.tsx +19 -0
  105. package/src/components/Tabs/Tabs.stories.tsx +118 -0
  106. package/src/components/Tabs/Tabs.tsx +99 -0
  107. package/src/components/Tabs/_tabUtils.tsx +4 -0
  108. package/src/components/Tabs/index.ts +2 -0
  109. package/src/components/Timeline/Timeline.definition.ts +43 -0
  110. package/src/components/Timeline/Timeline.stories.tsx +108 -0
  111. package/src/components/Timeline/Timeline.tsx +49 -0
  112. package/src/components/Timeline/TimelineItem.tsx +31 -0
  113. package/src/components/Timeline/index.ts +2 -0
  114. package/src/components/Tooltip/Tooltip.stories.tsx +117 -0
  115. package/src/components/Tooltip/Tooltip.tsx +58 -0
  116. package/src/components/Tooltip/index.ts +1 -0
  117. package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
  118. package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
  119. package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
  120. package/src/hooks/ClipBoard/index.ts +1 -0
  121. package/src/index.ts +1 -0
  122. package/src/styles.css +3 -0
  123. package/tailwind.config.js +10 -0
  124. package/tsconfig.json +48 -0
  125. package/tsup.config.js +41 -0
  126. package/vite.config.js +132 -0
  127. package/vitest.config.ts +35 -0
  128. package/components/Autocomplete/Autocomplete.cjs +0 -132
  129. package/components/Autocomplete/Autocomplete.cjs.map +0 -1
  130. package/components/Autocomplete/Autocomplete.js +0 -132
  131. package/components/Autocomplete/Autocomplete.js.map +0 -1
  132. /package/{README.md → Readme.md} +0 -0
  133. /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
  134. /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
  135. /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
  136. /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
  137. /package/{DatePicker-BSNboVhN.js → dist/DatePicker-BSNboVhN.js} +0 -0
  138. /package/{DatePicker-BSNboVhN.js.map → dist/DatePicker-BSNboVhN.js.map} +0 -0
  139. /package/{DatePicker-BoqxWAhj.cjs → dist/DatePicker-BoqxWAhj.cjs} +0 -0
  140. /package/{DatePicker-BoqxWAhj.cjs.map → dist/DatePicker-BoqxWAhj.cjs.map} +0 -0
  141. /package/{Input-DFHs7cJ_.js → dist/Input-DFHs7cJ_.js} +0 -0
  142. /package/{Input-DFHs7cJ_.js.map → dist/Input-DFHs7cJ_.js.map} +0 -0
  143. /package/{Input-c8MwNNPg.cjs → dist/Input-c8MwNNPg.cjs} +0 -0
  144. /package/{Input-c8MwNNPg.cjs.map → dist/Input-c8MwNNPg.cjs.map} +0 -0
  145. /package/{Select-BO2N56sm.cjs → dist/Select-BO2N56sm.cjs} +0 -0
  146. /package/{Select-BO2N56sm.cjs.map → dist/Select-BO2N56sm.cjs.map} +0 -0
  147. /package/{Select-BcLkyHSE.js → dist/Select-BcLkyHSE.js} +0 -0
  148. /package/{Select-BcLkyHSE.js.map → dist/Select-BcLkyHSE.js.map} +0 -0
  149. /package/{components → dist/components}/Autocomplete/Autocomplete.d.ts +0 -0
  150. /package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
  151. /package/{components → dist/components}/Autocomplete/index.d.ts +0 -0
  152. /package/{components → dist/components}/Autocomplete.d.ts +0 -0
  153. /package/{components → dist/components}/Avatar/Avatar.cjs +0 -0
  154. /package/{components → dist/components}/Avatar/Avatar.cjs.map +0 -0
  155. /package/{components → dist/components}/Avatar/Avatar.d.ts +0 -0
  156. /package/{components → dist/components}/Avatar/Avatar.js +0 -0
  157. /package/{components → dist/components}/Avatar/Avatar.js.map +0 -0
  158. /package/{components → dist/components}/Avatar/index.d.ts +0 -0
  159. /package/{components → dist/components}/Avatar.d.ts +0 -0
  160. /package/{components → dist/components}/Button/Button.cjs +0 -0
  161. /package/{components → dist/components}/Button/Button.cjs.map +0 -0
  162. /package/{components → dist/components}/Button/Button.d.ts +0 -0
  163. /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
  164. /package/{components → dist/components}/Button/Button.js +0 -0
  165. /package/{components → dist/components}/Button/Button.js.map +0 -0
  166. /package/{components → dist/components}/Button/index.d.ts +0 -0
  167. /package/{components → dist/components}/Button.d.ts +0 -0
  168. /package/{components → dist/components}/Card/Card.cjs +0 -0
  169. /package/{components → dist/components}/Card/Card.cjs.map +0 -0
  170. /package/{components → dist/components}/Card/Card.d.ts +0 -0
  171. /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
  172. /package/{components → dist/components}/Card/Card.js +0 -0
  173. /package/{components → dist/components}/Card/Card.js.map +0 -0
  174. /package/{components → dist/components}/Card/index.d.ts +0 -0
  175. /package/{components → dist/components}/Card.d.ts +0 -0
  176. /package/{components → dist/components}/Chip/Chip.cjs +0 -0
  177. /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
  178. /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
  179. /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
  180. /package/{components → dist/components}/Chip/Chip.js +0 -0
  181. /package/{components → dist/components}/Chip/Chip.js.map +0 -0
  182. /package/{components → dist/components}/Chip/index.d.ts +0 -0
  183. /package/{components → dist/components}/Chip.d.ts +0 -0
  184. /package/{components → dist/components}/Column/Column.cjs +0 -0
  185. /package/{components → dist/components}/Column/Column.cjs.map +0 -0
  186. /package/{components → dist/components}/Column/Column.d.ts +0 -0
  187. /package/{components → dist/components}/Column/Column.js +0 -0
  188. /package/{components → dist/components}/Column/Column.js.map +0 -0
  189. /package/{components → dist/components}/Column/index.d.ts +0 -0
  190. /package/{components → dist/components}/Column.d.ts +0 -0
  191. /package/{components → dist/components}/DatePicker/DatePicker.cjs +0 -0
  192. /package/{components → dist/components}/DatePicker/DatePicker.cjs.map +0 -0
  193. /package/{components → dist/components}/DatePicker/DatePicker.d.ts +0 -0
  194. /package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +0 -0
  195. /package/{components → dist/components}/DatePicker/DatePicker.js +0 -0
  196. /package/{components → dist/components}/DatePicker/DatePicker.js.map +0 -0
  197. /package/{components → dist/components}/DatePicker/index.d.ts +0 -0
  198. /package/{components → dist/components}/DatePicker.d.ts +0 -0
  199. /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs +0 -0
  200. /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
  201. /package/{components → dist/components}/DateRangePicker/DateRangePicker.d.ts +0 -0
  202. /package/{components → dist/components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
  203. /package/{components → dist/components}/DateRangePicker/DateRangePicker.js +0 -0
  204. /package/{components → dist/components}/DateRangePicker/DateRangePicker.js.map +0 -0
  205. /package/{components → dist/components}/DateRangePicker/index.d.ts +0 -0
  206. /package/{components → dist/components}/DateRangePicker.d.ts +0 -0
  207. /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs +0 -0
  208. /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
  209. /package/{components → dist/components}/DateTimePicker/DateTimePicker.d.ts +0 -0
  210. /package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
  211. /package/{components → dist/components}/DateTimePicker/DateTimePicker.js +0 -0
  212. /package/{components → dist/components}/DateTimePicker/DateTimePicker.js.map +0 -0
  213. /package/{components → dist/components}/DateTimePicker/index.d.ts +0 -0
  214. /package/{components → dist/components}/DateTimePicker.d.ts +0 -0
  215. /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
  216. /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
  217. /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
  218. /package/{components → dist/components}/Flyout/Flyout.js +0 -0
  219. /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
  220. /package/{components → dist/components}/Flyout/index.d.ts +0 -0
  221. /package/{components → dist/components}/Flyout.d.ts +0 -0
  222. /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
  223. /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
  224. /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
  225. /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
  226. /package/{components → dist/components}/Gallery/Gallery.js +0 -0
  227. /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
  228. /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
  229. /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
  230. /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
  231. /package/{components → dist/components}/Gallery/index.d.ts +0 -0
  232. /package/{components → dist/components}/Gallery.d.ts +0 -0
  233. /package/{components → dist/components}/Icon/Icon.cjs +0 -0
  234. /package/{components → dist/components}/Icon/Icon.cjs.map +0 -0
  235. /package/{components → dist/components}/Icon/Icon.d.ts +0 -0
  236. /package/{components → dist/components}/Icon/Icon.js +0 -0
  237. /package/{components → dist/components}/Icon/Icon.js.map +0 -0
  238. /package/{components → dist/components}/Icon/index.d.ts +0 -0
  239. /package/{components → dist/components}/Icon.d.ts +0 -0
  240. /package/{components → dist/components}/Input/Input.cjs +0 -0
  241. /package/{components → dist/components}/Input/Input.cjs.map +0 -0
  242. /package/{components → dist/components}/Input/Input.d.ts +0 -0
  243. /package/{components → dist/components}/Input/Input.definitions.d.ts +0 -0
  244. /package/{components → dist/components}/Input/Input.js +0 -0
  245. /package/{components → dist/components}/Input/Input.js.map +0 -0
  246. /package/{components → dist/components}/Input/index.d.ts +0 -0
  247. /package/{components → dist/components}/Input.d.ts +0 -0
  248. /package/{components → dist/components}/InputGroup/InputGroup.cjs +0 -0
  249. /package/{components → dist/components}/InputGroup/InputGroup.cjs.map +0 -0
  250. /package/{components → dist/components}/InputGroup/InputGroup.d.ts +0 -0
  251. /package/{components → dist/components}/InputGroup/InputGroup.js +0 -0
  252. /package/{components → dist/components}/InputGroup/InputGroup.js.map +0 -0
  253. /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
  254. /package/{components → dist/components}/InputGroup.d.ts +0 -0
  255. /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
  256. /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
  257. /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
  258. /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
  259. /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
  260. /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
  261. /package/{components → dist/components}/MenuButton.d.ts +0 -0
  262. /package/{components → dist/components}/Modal/Modal.cjs +0 -0
  263. /package/{components → dist/components}/Modal/Modal.cjs.map +0 -0
  264. /package/{components → dist/components}/Modal/Modal.d.ts +0 -0
  265. /package/{components → dist/components}/Modal/Modal.js +0 -0
  266. /package/{components → dist/components}/Modal/Modal.js.map +0 -0
  267. /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
  268. /package/{components → dist/components}/Modal/ModalFooter.d.ts +0 -0
  269. /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
  270. /package/{components → dist/components}/Modal/index.d.ts +0 -0
  271. /package/{components → dist/components}/Modal.d.ts +0 -0
  272. /package/{components → dist/components}/Select/Select.cjs +0 -0
  273. /package/{components → dist/components}/Select/Select.cjs.map +0 -0
  274. /package/{components → dist/components}/Select/Select.d.ts +0 -0
  275. /package/{components → dist/components}/Select/Select.definitions.d.ts +0 -0
  276. /package/{components → dist/components}/Select/Select.js +0 -0
  277. /package/{components → dist/components}/Select/Select.js.map +0 -0
  278. /package/{components → dist/components}/Select/index.d.ts +0 -0
  279. /package/{components → dist/components}/Select.d.ts +0 -0
  280. /package/{components → dist/components}/Stat/Stat.cjs +0 -0
  281. /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
  282. /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
  283. /package/{components → dist/components}/Stat/Stat.js +0 -0
  284. /package/{components → dist/components}/Stat/Stat.js.map +0 -0
  285. /package/{components → dist/components}/Stat/index.d.ts +0 -0
  286. /package/{components → dist/components}/Stat.d.ts +0 -0
  287. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
  288. /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
  289. /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
  290. /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
  291. /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
  292. /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
  293. /package/{components → dist/components}/StatusMessage.d.ts +0 -0
  294. /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
  295. /package/{components → dist/components}/Stepper/Stepper.cjs +0 -0
  296. /package/{components → dist/components}/Stepper/Stepper.cjs.map +0 -0
  297. /package/{components → dist/components}/Stepper/Stepper.d.ts +0 -0
  298. /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
  299. /package/{components → dist/components}/Stepper/Stepper.js +0 -0
  300. /package/{components → dist/components}/Stepper/Stepper.js.map +0 -0
  301. /package/{components → dist/components}/Stepper/index.d.ts +0 -0
  302. /package/{components → dist/components}/Stepper.d.ts +0 -0
  303. /package/{components → dist/components}/Table/Table.cjs +0 -0
  304. /package/{components → dist/components}/Table/Table.cjs.map +0 -0
  305. /package/{components → dist/components}/Table/Table.d.ts +0 -0
  306. /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
  307. /package/{components → dist/components}/Table/Table.js +0 -0
  308. /package/{components → dist/components}/Table/Table.js.map +0 -0
  309. /package/{components → dist/components}/Table/data.d.ts +0 -0
  310. /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
  311. /package/{components → dist/components}/Table/index.d.ts +0 -0
  312. /package/{components → dist/components}/Table/types.d.ts +0 -0
  313. /package/{components → dist/components}/Table.d.ts +0 -0
  314. /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
  315. /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
  316. /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
  317. /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
  318. /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
  319. /package/{components → dist/components}/Tabs/Tabs.js +0 -0
  320. /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
  321. /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
  322. /package/{components → dist/components}/Tabs/index.d.ts +0 -0
  323. /package/{components → dist/components}/Tabs.d.ts +0 -0
  324. /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
  325. /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
  326. /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
  327. /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
  328. /package/{components → dist/components}/Timeline/Timeline.js +0 -0
  329. /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
  330. /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
  331. /package/{components → dist/components}/Timeline/index.d.ts +0 -0
  332. /package/{components → dist/components}/Timeline.d.ts +0 -0
  333. /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
  334. /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
  335. /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
  336. /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
  337. /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
  338. /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
  339. /package/{components → dist/components}/Tooltip.d.ts +0 -0
  340. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
  341. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
  342. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
  343. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
  344. /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
  345. /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
  346. /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
  347. /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
  348. /package/{index.cjs → dist/index.cjs} +0 -0
  349. /package/{index.cjs.map → dist/index.cjs.map} +0 -0
  350. /package/{index.css → dist/index.css} +0 -0
  351. /package/{index.d.ts → dist/index.d.ts} +0 -0
  352. /package/{index.js → dist/index.js} +0 -0
  353. /package/{index.js.map → dist/index.js.map} +0 -0
@@ -0,0 +1,232 @@
1
+ // DateTimePicker.definitions.ts
2
+
3
+ export const BasicDateTimePickerDefinition = `
4
+ import React, { useState } from 'react';
5
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
6
+ import dayjs from 'dayjs';
7
+ import { Box, Typography } from '@mui/material';
8
+
9
+ export const BasicDateTimePickerExample = () => {
10
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs());
11
+ return (
12
+ <Box sx={{ width: 300 }}>
13
+ <DateTimePicker
14
+ label="Seleccionar Fecha y Hora"
15
+ selectedDateTime={selectedDateTime}
16
+ onDateTimeChange={setSelectedDateTime}
17
+ />
18
+ <Typography sx={{ mt: 2 }}>
19
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
20
+ </Typography>
21
+ </Box>
22
+ );
23
+ };
24
+ `;
25
+
26
+ export const DateTimePickerWithMinMaxDefinition = `
27
+ import React, { useState } from 'react';
28
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
29
+ import dayjs from 'dayjs';
30
+ import { Box, Typography } from '@mui/material';
31
+
32
+ export const DateTimePickerWithMinMaxExample = () => {
33
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs('2023-06-15T10:00'));
34
+ const minDateTime = dayjs('2023-06-01T09:00');
35
+ const maxDateTime = dayjs('2023-06-30T17:00');
36
+ return (
37
+ <Box sx={{ width: 300 }}>
38
+ <DateTimePicker
39
+ label="Fecha y Hora en Junio"
40
+ selectedDateTime={selectedDateTime}
41
+ onDateTimeChange={setSelectedDateTime}
42
+ minDateTime={minDateTime}
43
+ maxDateTime={maxDateTime}
44
+ />
45
+ <Typography sx={{ mt: 2 }}>
46
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
47
+ </Typography>
48
+ <Typography variant="caption" color="text.secondary">
49
+ (Rango: \${minDateTime.format('YYYY-MM-DD HH:mm')} a \${maxDateTime.format('YYYY-MM-DD HH:mm')})
50
+ </Typography>
51
+ </Box>
52
+ );
53
+ };
54
+ `;
55
+
56
+ export const DateTimePickerDisabledDefinition = `
57
+ import React, { useState } => from 'react';
58
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
59
+ import dayjs from 'dayjs';
60
+ import { Box, Typography } from '@mui/material';
61
+
62
+ export const DateTimePickerDisabledExample = () => {
63
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs());
64
+ return (
65
+ <Box sx={{ width: 300 }}>
66
+ <DateTimePicker
67
+ label="Fecha y Hora (Deshabilitado)"
68
+ selectedDateTime={selectedDateTime}
69
+ onDateTimeChange={setSelectedDateTime}
70
+ disabled
71
+ />
72
+ <Typography sx={{ mt: 2 }}>
73
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
74
+ </Typography>
75
+ </Box>
76
+ );
77
+ };
78
+ `;
79
+
80
+ export const DateTimePickerReadOnlyDefinition = `
81
+ import React, { useState } from 'react';
82
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
83
+ import dayjs from 'dayjs';
84
+ import { Box, Typography } from '@mui/material';
85
+
86
+ export const DateTimePickerReadOnlyExample = () => {
87
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs('2024-07-24T14:30'));
88
+ return (
89
+ <Box sx={{ width: 300 }}>
90
+ <DateTimePicker
91
+ label="Fecha y Hora (Solo Lectura)"
92
+ selectedDateTime={selectedDateTime}
93
+ onDateTimeChange={() => {}} // No permite cambios
94
+ readOnly
95
+ />
96
+ <Typography sx={{ mt: 2 }}>
97
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
98
+ </Typography>
99
+ </Box>
100
+ );
101
+ };
102
+ `;
103
+
104
+ export const DateTimePickerWithInitialNullDefinition = `
105
+ import React, { useState } from 'react';
106
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
107
+ import dayjs from 'dayjs';
108
+ import { Box, Typography } from '@mui/material';
109
+
110
+ export const DateTimePickerWithInitialNullExample = () => {
111
+ const [selectedDateTime, setSelectedDateTime] = useState(null);
112
+ return (
113
+ <Box sx={{ width: 300 }}>
114
+ <DateTimePicker
115
+ label="Fecha y Hora (Sin Selección Inicial)"
116
+ selectedDateTime={selectedDateTime}
117
+ onDateTimeChange={setSelectedDateTime}
118
+ />
119
+ <Typography sx={{ mt: 2 }}>
120
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
121
+ </Typography>
122
+ </Box>
123
+ );
124
+ };
125
+ `;
126
+
127
+ export const DateTimePickerSmallSizeDefinition = `
128
+ import React, { useState } from 'react';
129
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
130
+ import dayjs from 'dayjs';
131
+ import { Box, Typography } from '@mui/material';
132
+
133
+ export const DateTimePickerSmallSizeExample = () => {
134
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs());
135
+ return (
136
+ <Box sx={{ width: 250 }}>
137
+ <DateTimePicker
138
+ label="Fecha y Hora (Pequeño)"
139
+ selectedDateTime={selectedDateTime}
140
+ onDateTimeChange={setSelectedDateTime}
141
+ slotProps={{ textField: { size: 'small' } }}
142
+ />
143
+ <Typography sx={{ mt: 2 }}>
144
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
145
+ </Typography>
146
+ </Box>
147
+ );
148
+ };
149
+ `;
150
+
151
+ export const DateTimePickerWithButtonsDefinition = `
152
+ import React, { useState } => from 'react';
153
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
154
+ import dayjs from 'dayjs';
155
+ import { Box, Typography } from '@mui/material';
156
+
157
+ export const DateTimePickerWithButtonsExample = () => {
158
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs());
159
+ return (
160
+ <Box sx={{ width: 300 }}>
161
+ <DateTimePicker
162
+ label="Fecha y Hora (Con Botones por Defecto)"
163
+ selectedDateTime={selectedDateTime}
164
+ onDateTimeChange={setSelectedDateTime}
165
+ slotProps={{
166
+ actionBar: {
167
+ actions: ['clear', 'cancel', 'accept'],
168
+ },
169
+ }}
170
+ />
171
+ <Typography sx={{ mt: 2 }}>
172
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
173
+ </Typography>
174
+ </Box>
175
+ );
176
+ };
177
+ `;
178
+
179
+ export const DateTimePickerWithCustomButtonTextDefinition = `
180
+ import React, { useState } from 'react';
181
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
182
+ import dayjs from 'dayjs';
183
+ import { Box, Typography } from '@mui/material';
184
+
185
+ export const DateTimePickerWithCustomButtonTextExample = () => {
186
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs());
187
+ return (
188
+ <Box sx={{ width: 300 }}>
189
+ <DateTimePicker
190
+ label="Fecha y Hora (Botones Personalizados)"
191
+ selectedDateTime={selectedDateTime}
192
+ onDateTimeChange={setSelectedDateTime}
193
+ clearButtonText="Limpiar Todo"
194
+ cancelButtonText="Descartar"
195
+ acceptButtonText="Confirmar Selección"
196
+ slotProps={{
197
+ actionBar: {
198
+ actions: ['clear', 'cancel', 'accept'],
199
+ },
200
+ }}
201
+ />
202
+ <Typography sx={{ mt: 2 }}>
203
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
204
+ </Typography>
205
+ </Box>
206
+ );
207
+ };
208
+ `;
209
+
210
+ export const DateTimePickerWithCustomInputFormatDefinition = `
211
+ import React, { useState } from 'react';
212
+ import { DateTimePicker } from './DateTimePicker'; // Ajusta la ruta si es necesario
213
+ import dayjs from 'dayjs';
214
+ import { Box, Typography } from '@mui/material';
215
+
216
+ export const DateTimePickerWithCustomInputFormatExample = () => {
217
+ const [selectedDateTime, setSelectedDateTime] = useState(dayjs());
218
+ return (
219
+ <Box sx={{ width: 300 }}>
220
+ <DateTimePicker
221
+ label="Fecha y Hora (Formato dd/MM/YYYY)"
222
+ selectedDateTime={selectedDateTime}
223
+ onDateTimeChange={setSelectedDateTime}
224
+ inputFormat="DD/MM/YYYY HH:mm" // Formato de fecha personalizado
225
+ />
226
+ <Typography sx={{ mt: 2 }}>
227
+ Seleccionado: \${selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
228
+ </Typography>
229
+ </Box>
230
+ );
231
+ };
232
+ `;
@@ -0,0 +1,390 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import React, { useState, useMemo } from 'react';
3
+ import {
4
+ Box,
5
+ Typography,
6
+ TextField, // Necesario para el renderizado del input
7
+ } from '@mui/material';
8
+
9
+ // Importaciones de @mui/x-date-pickers y dayjs
10
+ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
11
+ import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
12
+ import { DateTimePicker as MuiDateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
13
+ import { DateValidationError } from '@mui/x-date-pickers/models';
14
+ import dayjs, { Dayjs } from 'dayjs';
15
+ import { renderMultiSectionDigitalClockTimeView } from '@mui/x-date-pickers/timeViewRenderers';
16
+
17
+ // Importar las definiciones de las historias
18
+ import {
19
+ BasicDateTimePickerDefinition,
20
+ DateTimePickerWithMinMaxDefinition,
21
+ DateTimePickerDisabledDefinition,
22
+ DateTimePickerReadOnlyDefinition,
23
+ DateTimePickerWithInitialNullDefinition,
24
+ DateTimePickerSmallSizeDefinition,
25
+ DateTimePickerWithCustomButtonTextDefinition,
26
+ DateTimePickerWithButtonsDefinition,
27
+ DateTimePickerWithCustomInputFormatDefinition,
28
+ } from './DateTimePicker.definitions'; // Asegúrate de que esta ruta sea correcta
29
+ import { DateTimePicker } from './DateTimePicker';
30
+
31
+
32
+ const meta: Meta<typeof DateTimePicker> = {
33
+ title: 'Components/DateTimePicker',
34
+ component: DateTimePicker,
35
+ tags: ['autodocs'],
36
+ parameters: {
37
+ layout: 'centered',
38
+ docs: {
39
+ description: {
40
+ component: 'Un componente `DateTimePicker` personalizado de Material UI que permite seleccionar tanto la fecha como la hora.',
41
+ },
42
+ },
43
+ },
44
+ argTypes: {
45
+ label: { control: 'text', description: 'Etiqueta para el selector de fecha y hora.' },
46
+ selectedDateTime: { control: 'object', description: 'La fecha y hora actualmente seleccionada.', type: { name: 'object', required: false, value: {} } },
47
+ onDateTimeChange: { action: 'dateTimeChanged', description: 'Callback que se dispara cuando la fecha y hora cambian.' },
48
+ minDateTime: { control: 'object', description: 'La fecha y hora mínima permitida.' },
49
+ maxDateTime: { control: 'object', description: 'La fecha y hora máxima permitida.' },
50
+ disabled: { control: 'boolean', description: 'Si es verdadero, el selector estará deshabilitado.' },
51
+ readOnly: { control: 'boolean', description: 'Si es verdadero, el selector estará en modo de solo lectura.' },
52
+ inputFormat: { control: 'text', description: 'Formato de la fecha y hora en el campo de entrada (ej. "DD/MM/YYYY HH:mm").' }, // Nuevo argType
53
+ slotProps: { control: 'object', description: 'Propiedades pasadas a los slots internos del DateTimePicker (e.g., `textField`, `actionBar`).' },
54
+ clearButtonText: { control: 'text', description: 'Texto personalizado para el botón "Limpiar".', if: { arg: 'slotProps.actionBar.actions', eq: 'clear' } },
55
+ cancelButtonText: { control: 'text', description: 'Texto personalizado para el botón "Cancelar".', if: { arg: 'slotProps.actionBar.actions', eq: 'cancel' } },
56
+ acceptButtonText: { control: 'text', description: 'Texto personalizado para el botón "Aceptar".', if: { arg: 'slotProps.actionBar.actions', eq: 'accept' } },
57
+ },
58
+ };
59
+
60
+ export default meta;
61
+ type Story = StoryObj<typeof DateTimePicker>;
62
+
63
+ // =============================================================================
64
+ // Historias
65
+ // =============================================================================
66
+
67
+ export const BasicDateTimePicker: Story = {
68
+ render: () => {
69
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs());
70
+ return (
71
+ <Box sx={{ width: 300 }}>
72
+ <DateTimePicker
73
+ label="Seleccionar Fecha y Hora"
74
+ selectedDateTime={selectedDateTime}
75
+ onDateTimeChange={setSelectedDateTime}
76
+ />
77
+ <Typography sx={{ mt: 2 }}>
78
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
79
+ </Typography>
80
+ </Box>
81
+ );
82
+ },
83
+ parameters: {
84
+ docs: {
85
+ description: {
86
+ story: "Un `DateTimePicker` básico con selección de fecha y hora actual."
87
+ },
88
+ source: { code: BasicDateTimePickerDefinition.trim() }
89
+ }
90
+ }
91
+ };
92
+
93
+ export const DateTimePickerWithMinMax: Story = {
94
+ render: () => {
95
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs('2023-06-15T10:00'));
96
+ const minDateTime = dayjs('2023-06-01T09:00');
97
+ const maxDateTime = dayjs('2023-06-30T17:00');
98
+ return (
99
+ <Box sx={{ width: 300 }}>
100
+ <DateTimePicker
101
+ label="Fecha y Hora en Junio (Rango)"
102
+ selectedDateTime={selectedDateTime}
103
+ onDateTimeChange={setSelectedDateTime}
104
+ minDateTime={minDateTime}
105
+ maxDateTime={maxDateTime}
106
+ />
107
+ <Typography sx={{ mt: 2 }}>
108
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
109
+ </Typography>
110
+ <Typography variant="caption" color="text.secondary">
111
+ (Rango: ${minDateTime.format('YYYY-MM-DD HH:mm')} a ${maxDateTime.format('YYYY-MM-DD HH:mm')})
112
+ </Typography>
113
+ </Box>
114
+ );
115
+ },
116
+ parameters: {
117
+ docs: {
118
+ description: {
119
+ story: "Muestra un `DateTimePicker` con límites de fecha y hora mínimos y máximos."
120
+ },
121
+ source: { code: DateTimePickerWithMinMaxDefinition.trim() }
122
+ }
123
+ }
124
+ };
125
+
126
+ export const DateTimePickerDisabled: Story = {
127
+ render: () => {
128
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs());
129
+ return (
130
+ <Box sx={{ width: 300 }}>
131
+ <DateTimePicker
132
+ label="Fecha y Hora (Deshabilitado)"
133
+ selectedDateTime={selectedDateTime}
134
+ onDateTimeChange={setSelectedDateTime}
135
+ disabled
136
+ />
137
+ <Typography sx={{ mt: 2 }}>
138
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
139
+ </Typography>
140
+ </Box>
141
+ );
142
+ },
143
+ parameters: {
144
+ docs: {
145
+ description: {
146
+ story: "Demuestra un `DateTimePicker` en estado deshabilitado."
147
+ },
148
+ source: { code: DateTimePickerDisabledDefinition.trim() }
149
+ }
150
+ }
151
+ };
152
+
153
+ export const DateTimePickerReadOnly: Story = {
154
+ render: () => {
155
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs('2024-07-24T14:30'));
156
+ return (
157
+ <Box sx={{ width: 300 }}>
158
+ <DateTimePicker
159
+ label="Fecha y Hora (Solo Lectura)"
160
+ selectedDateTime={selectedDateTime}
161
+ onDateTimeChange={() => {}} // No permite cambios
162
+ readOnly
163
+ />
164
+ <Typography sx={{ mt: 2 }}>
165
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
166
+ </Typography>
167
+ </Box>
168
+ );
169
+ },
170
+ parameters: {
171
+ docs: {
172
+ description: {
173
+ story: "Muestra el `DateTimePicker` en modo de solo lectura."
174
+ },
175
+ source: { code: DateTimePickerReadOnlyDefinition.trim() }
176
+ }
177
+ }
178
+ };
179
+
180
+ export const DateTimePickerWithInitialNull: Story = {
181
+ render: () => {
182
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(null);
183
+ return (
184
+ <Box sx={{ width: 300 }}>
185
+ <DateTimePicker
186
+ label="Fecha y Hora (Sin Selección Inicial)"
187
+ selectedDateTime={selectedDateTime}
188
+ onDateTimeChange={setSelectedDateTime}
189
+ />
190
+ <Typography sx={{ mt: 2 }}>
191
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
192
+ </Typography>
193
+ </Box>
194
+ );
195
+ },
196
+ parameters: {
197
+ docs: {
198
+ description: {
199
+ story: "Muestra un `DateTimePicker` sin fecha y hora seleccionadas inicialmente."
200
+ },
201
+ source: { code: DateTimePickerWithInitialNullDefinition.trim() }
202
+ }
203
+ }
204
+ };
205
+
206
+ export const DateTimePickerSmallSize: Story = {
207
+ render: () => {
208
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs());
209
+ return (
210
+ <Box sx={{ width: 250 }}>
211
+ <DateTimePicker
212
+ label="Fecha y Hora (Pequeño)"
213
+ selectedDateTime={selectedDateTime}
214
+ onDateTimeChange={setSelectedDateTime}
215
+ slotProps={{ textField: { size: 'small' } }}
216
+ />
217
+ <Typography sx={{ mt: 2 }}>
218
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
219
+ </Typography>
220
+ </Box>
221
+ );
222
+ },
223
+ parameters: {
224
+ docs: {
225
+ description: {
226
+ story: "Demuestra cómo aplicar un tamaño más pequeño al `DateTimePicker`."
227
+ },
228
+ source: { code: DateTimePickerSmallSizeDefinition.trim() }
229
+ }
230
+ }
231
+ };
232
+
233
+ export const DateTimePickerWithButtons: Story = {
234
+ render: () => {
235
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs());
236
+ return (
237
+ <Box sx={{ width: 300 }}>
238
+ <DateTimePicker
239
+ label="Fecha y Hora (Con Botones por Defecto)"
240
+ selectedDateTime={selectedDateTime}
241
+ onDateTimeChange={setSelectedDateTime}
242
+ slotProps={{
243
+ actionBar: {
244
+ actions: ['clear', 'cancel', 'accept'],
245
+ },
246
+ }}
247
+ />
248
+ <Typography sx={{ mt: 2 }}>
249
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
250
+ </Typography>
251
+ </Box>
252
+ );
253
+ },
254
+ parameters: {
255
+ docs: {
256
+ description: {
257
+ story: "Muestra el `DateTimePicker` con botones de acción ('Limpiar', 'Cancelar', 'Aceptar') en el pie del selector."
258
+ },
259
+ source: { code: DateTimePickerWithButtonsDefinition.trim() }
260
+ }
261
+ }
262
+ };
263
+
264
+ export const DateTimePickerWithCustomButtonText: Story = {
265
+ render: () => {
266
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs());
267
+ return (
268
+ <Box sx={{ width: 300 }}>
269
+ <DateTimePicker
270
+ label="Fecha y Hora (Botones Personalizados)"
271
+ selectedDateTime={selectedDateTime}
272
+ onDateTimeChange={setSelectedDateTime}
273
+ clearButtonText="Limpiar Todo"
274
+ cancelButtonText="Descartar"
275
+ acceptButtonText="Confirmar Selección"
276
+ slotProps={{
277
+ actionBar: {
278
+ actions: ['clear', 'cancel', 'accept'],
279
+ },
280
+ }}
281
+ />
282
+ <Typography sx={{ mt: 2 }}>
283
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
284
+ </Typography>
285
+ </Box>
286
+ );
287
+ },
288
+ parameters: {
289
+ docs: {
290
+ description: {
291
+ story: "Demuestra cómo personalizar el texto de los botones de acción ('Limpiar', 'Cancelar', 'Aceptar') en el `DateTimePicker`."
292
+ },
293
+ source: { code: DateTimePickerWithCustomButtonTextDefinition.trim() }
294
+ }
295
+ }
296
+ };
297
+
298
+ export const DateTimePickerWithCustomInputFormat: Story = {
299
+ render: () => {
300
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs());
301
+ return (
302
+ <Box sx={{ width: 300 }}>
303
+ <DateTimePicker
304
+ label="Fecha y Hora (Formato dd/MM/YYYY HH:mm)"
305
+ selectedDateTime={selectedDateTime}
306
+ onDateTimeChange={setSelectedDateTime}
307
+ inputFormat="DD/MM/YYYY HH:mm" // Custom date format
308
+ />
309
+ <Typography sx={{ mt: 2 }}>
310
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
311
+ </Typography>
312
+ </Box>
313
+ );
314
+ },
315
+ parameters: {
316
+ docs: {
317
+ description: {
318
+ story: "Muestra el `DateTimePicker` con un formato de fecha y hora personalizado en el campo de entrada, por ejemplo `DD/MM/YYYY HH:mm`."
319
+ },
320
+ source: { code: DateTimePickerWithCustomInputFormatDefinition.trim() }
321
+ }
322
+ }
323
+ };
324
+
325
+ export const DateTimePickerWithAllMinutes: Story = {
326
+ render: () => {
327
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs('2023-06-15T10:00'));
328
+
329
+ return (
330
+ <Box sx={{ width: 300 }}>
331
+ <DateTimePicker
332
+ label="Fecha y Hora en Junio (Rango)"
333
+ selectedDateTime={selectedDateTime}
334
+ onDateTimeChange={setSelectedDateTime}
335
+ viewRenderers={{
336
+ hours: renderMultiSectionDigitalClockTimeView,
337
+ minutes: renderMultiSectionDigitalClockTimeView,
338
+ }}
339
+ minutesStep={1}
340
+ timeSteps={{ minutes: 1 }} // <-- clave en varias versiones
341
+ />
342
+ <Typography sx={{ mt: 2 }}>
343
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
344
+ </Typography>
345
+ </Box>
346
+ );
347
+ },
348
+ parameters: {
349
+ docs: {
350
+ description: {
351
+ story: "Muestra un `DateTimePicker` con todos los minutos habiles."
352
+ },
353
+ source: { code: DateTimePickerWithMinMaxDefinition.trim() }
354
+ }
355
+ }
356
+ };
357
+
358
+ export const DateTimePicker24h: Story = {
359
+ render: () => {
360
+ const [selectedDateTime, setSelectedDateTime] = useState<Dayjs | null>(dayjs('2023-06-15T10:00'));
361
+
362
+ return (
363
+ <Box sx={{ width: 300 }}>
364
+ <DateTimePicker
365
+ label="Fecha y Hora en Junio (Rango)"
366
+ selectedDateTime={selectedDateTime}
367
+ onDateTimeChange={setSelectedDateTime}
368
+ viewRenderers={{
369
+ hours: renderMultiSectionDigitalClockTimeView,
370
+ minutes: renderMultiSectionDigitalClockTimeView,
371
+ }}
372
+ minutesStep={1}
373
+ timeSteps={{ minutes: 1 }} // <-- clave en varias versiones
374
+ ampm={true}
375
+ />
376
+ <Typography sx={{ mt: 2 }}>
377
+ Seleccionado: {selectedDateTime ? selectedDateTime.format('YYYY-MM-DD HH:mm') : 'Ninguna'}
378
+ </Typography>
379
+ </Box>
380
+ );
381
+ },
382
+ parameters: {
383
+ docs: {
384
+ description: {
385
+ story: "Muestra un `DateTimePicker` con formato de 24 horas."
386
+ },
387
+ source: { code: DateTimePickerWithMinMaxDefinition.trim() }
388
+ }
389
+ }
390
+ };