@pautena/react-design-system 0.14.0 → 0.14.2

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 (424) hide show
  1. package/action/cjs/index.js +2 -0
  2. package/action/cjs/index.js.map +1 -0
  3. package/action/cjs/package.json +13 -0
  4. package/action/index.js +1 -1
  5. package/action/index.js.map +1 -1
  6. package/action/package.json +1 -1
  7. package/autocomplete/autocomplete.d.ts +2 -1
  8. package/autocomplete/cjs/index.js +2 -0
  9. package/autocomplete/cjs/index.js.map +1 -0
  10. package/autocomplete/cjs/package.json +11 -0
  11. package/autocomplete/index.js +1 -23
  12. package/autocomplete/index.js.map +1 -1
  13. package/autocomplete/package.json +1 -1
  14. package/board/board.d.ts +1 -1
  15. package/board/cjs/index.js +2 -0
  16. package/board/cjs/index.js.map +1 -0
  17. package/board/cjs/package.json +13 -0
  18. package/board/index.js +1 -1
  19. package/board/index.js.map +1 -1
  20. package/board/package.json +1 -1
  21. package/bootstrap-dialog/bootstrap-dialog.d.ts +1 -1
  22. package/bootstrap-dialog/cjs/index.js +2 -0
  23. package/bootstrap-dialog/cjs/index.js.map +1 -0
  24. package/bootstrap-dialog/cjs/package.json +13 -0
  25. package/bootstrap-dialog/index.js +1 -1
  26. package/bootstrap-dialog/index.js.map +1 -1
  27. package/bootstrap-dialog/package.json +1 -1
  28. package/bullet/bullet.d.ts +1 -1
  29. package/bullet/cjs/index.js +2 -0
  30. package/bullet/cjs/index.js.map +1 -0
  31. package/bullet/cjs/package.json +11 -0
  32. package/bullet/index.js +1 -1
  33. package/bullet/index.js.map +1 -1
  34. package/bullet/package.json +1 -1
  35. package/center-container/center-container.d.ts +1 -1
  36. package/center-container/cjs/index.js +2 -0
  37. package/center-container/cjs/index.js.map +1 -0
  38. package/center-container/cjs/package.json +11 -0
  39. package/center-container/index.js +1 -1
  40. package/center-container/index.js.map +1 -1
  41. package/center-container/package.json +1 -1
  42. package/cjs/index.js +4 -4
  43. package/cjs/index.js.map +1 -1
  44. package/confirm-dialog/cjs/index.js +2 -0
  45. package/confirm-dialog/cjs/index.js.map +1 -0
  46. package/confirm-dialog/cjs/package.json +13 -0
  47. package/confirm-dialog/confirm-dialog.d.ts +1 -1
  48. package/confirm-dialog/index.js +1 -1
  49. package/confirm-dialog/index.js.map +1 -1
  50. package/confirm-dialog/package.json +1 -1
  51. package/content/cjs/index.js +2 -0
  52. package/content/cjs/index.js.map +1 -0
  53. package/content/cjs/package.json +11 -0
  54. package/content/index.js +1 -1
  55. package/content/index.js.map +1 -1
  56. package/content/package.json +1 -1
  57. package/content-placeholder/cjs/index.js +2 -0
  58. package/content-placeholder/cjs/index.js.map +1 -0
  59. package/content-placeholder/cjs/package.json +11 -0
  60. package/content-placeholder/index.js +1 -1
  61. package/content-placeholder/index.js.map +1 -1
  62. package/content-placeholder/package.json +1 -1
  63. package/date-range-calendar/cjs/index.js +2 -0
  64. package/date-range-calendar/cjs/index.js.map +1 -0
  65. package/date-range-calendar/cjs/package.json +13 -0
  66. package/date-range-calendar/index.js +1 -1
  67. package/date-range-calendar/index.js.map +1 -1
  68. package/date-range-calendar/package.json +1 -1
  69. package/date-range-picker/cjs/index.js +2 -0
  70. package/date-range-picker/cjs/index.js.map +1 -0
  71. package/date-range-picker/cjs/package.json +14 -0
  72. package/date-range-picker/index.js +1 -1
  73. package/date-range-picker/index.js.map +1 -1
  74. package/date-range-picker/package.json +1 -1
  75. package/dialog/cjs/index.js +2 -0
  76. package/dialog/cjs/index.js.map +1 -0
  77. package/dialog/cjs/package.json +10 -0
  78. package/dialog/package.json +1 -1
  79. package/drawer/cjs/index.js +2 -0
  80. package/drawer/cjs/index.js.map +1 -0
  81. package/drawer/cjs/package.json +12 -0
  82. package/drawer/drawer.d.ts +3 -3
  83. package/drawer/drawer.types.d.ts +5 -4
  84. package/drawer/index.js +1 -1
  85. package/drawer/index.js.map +1 -1
  86. package/drawer/package.json +1 -1
  87. package/drawer-app-bar/cjs/index.js +2 -0
  88. package/drawer-app-bar/cjs/index.js.map +1 -0
  89. package/drawer-app-bar/cjs/package.json +12 -0
  90. package/drawer-app-bar/index.js +1 -1
  91. package/drawer-app-bar/index.js.map +1 -1
  92. package/drawer-app-bar/package.json +1 -1
  93. package/drawer-content/cjs/index.js +2 -0
  94. package/drawer-content/cjs/index.js.map +1 -0
  95. package/drawer-content/cjs/package.json +13 -0
  96. package/drawer-content/drawer-content.d.ts +1 -1
  97. package/drawer-content/index.js +1 -1
  98. package/drawer-content/index.js.map +1 -1
  99. package/drawer-content/package.json +1 -1
  100. package/drawer-item/cjs/index.js +2 -0
  101. package/drawer-item/cjs/index.js.map +1 -0
  102. package/drawer-item/cjs/package.json +13 -0
  103. package/drawer-item/drawer-item-link.d.ts +1 -1
  104. package/drawer-item/drawer-menu-item.d.ts +1 -1
  105. package/drawer-item/index.js +1 -1
  106. package/drawer-item/index.js.map +1 -1
  107. package/drawer-item/package.json +1 -1
  108. package/drawer-layout/cjs/index.js +2 -0
  109. package/drawer-layout/cjs/index.js.map +1 -0
  110. package/drawer-layout/cjs/package.json +12 -0
  111. package/drawer-layout/index.js +1 -1
  112. package/drawer-layout/index.js.map +1 -1
  113. package/drawer-layout/package.json +1 -1
  114. package/drawer-main/cjs/index.js +2 -0
  115. package/drawer-main/cjs/index.js.map +1 -0
  116. package/drawer-main/cjs/package.json +12 -0
  117. package/drawer-main/index.js +1 -1
  118. package/drawer-main/index.js.map +1 -1
  119. package/drawer-main/package.json +1 -1
  120. package/drawer-provider/cjs/index.js +2 -0
  121. package/drawer-provider/cjs/index.js.map +1 -0
  122. package/drawer-provider/cjs/package.json +12 -0
  123. package/drawer-provider/drawer-context.d.ts +1 -1
  124. package/drawer-provider/drawer.provider.d.ts +1 -1
  125. package/drawer-provider/index.js +1 -1
  126. package/drawer-provider/index.js.map +1 -1
  127. package/drawer-provider/package.json +1 -1
  128. package/drawer-section/cjs/index.js +2 -0
  129. package/drawer-section/cjs/index.js.map +1 -0
  130. package/drawer-section/cjs/package.json +13 -0
  131. package/drawer-section/drawer-section.d.ts +1 -1
  132. package/drawer-section/index.js +1 -1
  133. package/drawer-section/index.js.map +1 -1
  134. package/drawer-section/package.json +1 -1
  135. package/drawer-subheader/cjs/index.js +2 -0
  136. package/drawer-subheader/cjs/index.js.map +1 -0
  137. package/drawer-subheader/cjs/package.json +10 -0
  138. package/drawer-subheader/drawer-subheader.d.ts +5 -5
  139. package/drawer-subheader/index.js +1 -1
  140. package/drawer-subheader/index.js.map +1 -1
  141. package/drawer-subheader/package.json +1 -1
  142. package/enhanced-remote-table/cjs/index.js +24 -0
  143. package/enhanced-remote-table/cjs/index.js.map +1 -0
  144. package/enhanced-remote-table/cjs/package.json +12 -0
  145. package/enhanced-remote-table/enhanced-remote-table.d.ts +1 -1
  146. package/enhanced-remote-table/enhanced-remote-table.mock.d.ts +2 -2
  147. package/enhanced-remote-table/index.js +4 -4
  148. package/enhanced-remote-table/index.js.map +1 -1
  149. package/enhanced-remote-table/package.json +1 -1
  150. package/enhanced-table/cjs/index.js +24 -0
  151. package/enhanced-table/cjs/index.js.map +1 -0
  152. package/enhanced-table/cjs/package.json +12 -0
  153. package/enhanced-table/index.js +4 -4
  154. package/enhanced-table/index.js.map +1 -1
  155. package/enhanced-table/package.json +1 -1
  156. package/expandable-alert/cjs/index.js +2 -0
  157. package/expandable-alert/cjs/index.js.map +1 -0
  158. package/expandable-alert/cjs/package.json +13 -0
  159. package/expandable-alert/expandable-alert.d.ts +3 -3
  160. package/expandable-alert/index.js +1 -1
  161. package/expandable-alert/index.js.map +1 -1
  162. package/expandable-alert/package.json +1 -1
  163. package/form-dialog/cjs/index.js +2 -0
  164. package/form-dialog/cjs/index.js.map +1 -0
  165. package/form-dialog/cjs/package.json +13 -0
  166. package/form-dialog/form-dialog.d.ts +1 -1
  167. package/form-dialog/index.js +1 -1
  168. package/form-dialog/index.js.map +1 -1
  169. package/form-dialog/package.json +1 -1
  170. package/generators/cjs/index.js +2 -0
  171. package/generators/cjs/index.js.map +1 -0
  172. package/generators/cjs/package.json +7 -0
  173. package/generators/package.json +1 -1
  174. package/group-value-card/cjs/index.js +2 -0
  175. package/group-value-card/cjs/index.js.map +1 -0
  176. package/group-value-card/cjs/package.json +11 -0
  177. package/group-value-card/group-value-card.d.ts +1 -1
  178. package/group-value-card/index.js +1 -1
  179. package/group-value-card/index.js.map +1 -1
  180. package/group-value-card/package.json +1 -1
  181. package/header/cjs/index.js +2 -0
  182. package/header/cjs/index.js.map +1 -0
  183. package/header/cjs/package.json +12 -0
  184. package/header/index.js +1 -1
  185. package/header/index.js.map +1 -1
  186. package/header/package.json +1 -1
  187. package/header-layout/cjs/index.js +2 -0
  188. package/header-layout/cjs/index.js.map +1 -0
  189. package/header-layout/cjs/package.json +12 -0
  190. package/header-layout/index.js +1 -1
  191. package/header-layout/index.js.map +1 -1
  192. package/header-layout/package.json +1 -1
  193. package/hooks/cjs/index.js +2 -0
  194. package/hooks/cjs/index.js.map +1 -0
  195. package/hooks/cjs/package.json +11 -0
  196. package/hooks/package.json +1 -1
  197. package/index.js +4 -4
  198. package/index.js.map +1 -1
  199. package/label/cjs/index.js +2 -0
  200. package/label/cjs/index.js.map +1 -0
  201. package/label/cjs/package.json +11 -0
  202. package/label/index.js +1 -1
  203. package/label/index.js.map +1 -1
  204. package/label/label.d.ts +1 -1
  205. package/label/package.json +1 -1
  206. package/link/cjs/index.js +2 -0
  207. package/link/cjs/index.js.map +1 -0
  208. package/link/cjs/package.json +12 -0
  209. package/link/index.js +1 -1
  210. package/link/index.js.map +1 -1
  211. package/link/link.d.ts +5 -5
  212. package/link/package.json +1 -1
  213. package/link-card/cjs/index.js +2 -0
  214. package/link-card/cjs/index.js.map +1 -0
  215. package/link-card/cjs/package.json +12 -0
  216. package/link-card/index.js +1 -1
  217. package/link-card/index.js.map +1 -1
  218. package/link-card/link-card.d.ts +1 -1
  219. package/link-card/package.json +1 -1
  220. package/list-panel/cjs/index.js +2 -0
  221. package/list-panel/cjs/index.js.map +1 -0
  222. package/list-panel/cjs/package.json +11 -0
  223. package/list-panel/index.js +1 -1
  224. package/list-panel/index.js.map +1 -1
  225. package/list-panel/package.json +1 -1
  226. package/loading-area/cjs/index.js +2 -0
  227. package/loading-area/cjs/index.js.map +1 -0
  228. package/loading-area/cjs/package.json +11 -0
  229. package/loading-area/index.js +1 -1
  230. package/loading-area/index.js.map +1 -1
  231. package/loading-area/package.json +1 -1
  232. package/lorem-ipsum-placeholder/cjs/index.js +2 -0
  233. package/lorem-ipsum-placeholder/cjs/index.js.map +1 -0
  234. package/lorem-ipsum-placeholder/cjs/package.json +12 -0
  235. package/lorem-ipsum-placeholder/index.js +1 -1
  236. package/lorem-ipsum-placeholder/index.js.map +1 -1
  237. package/lorem-ipsum-placeholder/package.json +1 -1
  238. package/markdown/cjs/index.js +2 -0
  239. package/markdown/cjs/index.js.map +1 -0
  240. package/markdown/cjs/package.json +12 -0
  241. package/markdown/index.js +1 -1
  242. package/markdown/index.js.map +1 -1
  243. package/markdown/package.json +1 -1
  244. package/model-form/cjs/index.js +2 -0
  245. package/model-form/cjs/index.js.map +1 -0
  246. package/model-form/cjs/package.json +12 -0
  247. package/model-form/index.js +1 -1
  248. package/model-form/index.js.map +1 -1
  249. package/model-form/model-form.d.ts +1 -1
  250. package/model-form/package.json +1 -1
  251. package/model-router/cjs/index.js +24 -0
  252. package/model-router/cjs/index.js.map +1 -0
  253. package/model-router/cjs/package.json +16 -0
  254. package/model-router/index.js +4 -4
  255. package/model-router/index.js.map +1 -1
  256. package/model-router/model-router.d.ts +1 -1
  257. package/model-router/package.json +1 -1
  258. package/model-router/screens/screens.types.d.ts +1 -1
  259. package/model-router/screens/update-screen.d.ts +2 -2
  260. package/model-router/stories/templates.d.ts +7 -7
  261. package/notification-center/cjs/index.js +2 -0
  262. package/notification-center/cjs/index.js.map +1 -0
  263. package/notification-center/cjs/package.json +11 -0
  264. package/notification-center/index.js +1 -1
  265. package/notification-center/index.js.map +1 -1
  266. package/notification-center/notification-center.context.d.ts +3 -3
  267. package/notification-center/package.json +1 -1
  268. package/object-details/cjs/index.js +2 -0
  269. package/object-details/cjs/index.js.map +1 -0
  270. package/object-details/cjs/package.json +15 -0
  271. package/object-details/index.js +1 -1
  272. package/object-details/index.js.map +1 -1
  273. package/object-details/package.json +1 -1
  274. package/package.json +1 -1
  275. package/placeholder/cjs/index.js +2 -0
  276. package/placeholder/cjs/index.js.map +1 -0
  277. package/placeholder/cjs/package.json +11 -0
  278. package/placeholder/index.js +1 -1
  279. package/placeholder/index.js.map +1 -1
  280. package/placeholder/package.json +1 -1
  281. package/query-container/cjs/index.js +2 -0
  282. package/query-container/cjs/index.js.map +1 -0
  283. package/query-container/cjs/package.json +11 -0
  284. package/query-container/index.js +1 -1
  285. package/query-container/index.js.map +1 -1
  286. package/query-container/package.json +1 -1
  287. package/search-input/cjs/index.js +2 -0
  288. package/search-input/cjs/index.js.map +1 -0
  289. package/search-input/cjs/package.json +13 -0
  290. package/search-input/index.js +1 -1
  291. package/search-input/index.js.map +1 -1
  292. package/search-input/package.json +1 -1
  293. package/search-input/search-input.d.ts +1 -1
  294. package/select/cjs/index.js +2 -0
  295. package/select/cjs/index.js.map +1 -0
  296. package/select/cjs/package.json +11 -0
  297. package/select/index.js +1 -1
  298. package/select/index.js.map +1 -1
  299. package/select/package.json +1 -1
  300. package/select/select.d.ts +2 -2
  301. package/sign-in/cjs/index.js +2 -0
  302. package/sign-in/cjs/index.js.map +1 -0
  303. package/sign-in/cjs/package.json +12 -0
  304. package/sign-in/index.js +1 -1
  305. package/sign-in/index.js.map +1 -1
  306. package/sign-in/package.json +1 -1
  307. package/skeleton-card/cjs/index.js +2 -0
  308. package/skeleton-card/cjs/index.js.map +1 -0
  309. package/skeleton-card/cjs/package.json +11 -0
  310. package/skeleton-card/index.js +1 -1
  311. package/skeleton-card/index.js.map +1 -1
  312. package/skeleton-card/package.json +1 -1
  313. package/skeleton-grid/cjs/index.js +2 -0
  314. package/skeleton-grid/cjs/index.js.map +1 -0
  315. package/skeleton-grid/cjs/package.json +11 -0
  316. package/skeleton-grid/index.js +1 -1
  317. package/skeleton-grid/index.js.map +1 -1
  318. package/skeleton-grid/package.json +1 -1
  319. package/tab-card/cjs/index.js +2 -0
  320. package/tab-card/cjs/index.js.map +1 -0
  321. package/tab-card/cjs/package.json +11 -0
  322. package/tab-card/index.js +1 -1
  323. package/tab-card/index.js.map +1 -1
  324. package/tab-card/package.json +1 -1
  325. package/tab-panel/cjs/index.js +2 -0
  326. package/tab-panel/cjs/index.js.map +1 -0
  327. package/tab-panel/cjs/package.json +11 -0
  328. package/tab-panel/index.js +1 -1
  329. package/tab-panel/index.js.map +1 -1
  330. package/tab-panel/package.json +1 -1
  331. package/tab-panel/tab-panel.d.ts +1 -1
  332. package/tab-provider/cjs/index.js +2 -0
  333. package/tab-provider/cjs/index.js.map +1 -0
  334. package/tab-provider/cjs/package.json +10 -0
  335. package/tab-provider/index.js +1 -1
  336. package/tab-provider/index.js.map +1 -1
  337. package/tab-provider/package.json +1 -1
  338. package/table-list/cjs/index.js +24 -0
  339. package/table-list/cjs/index.js.map +1 -0
  340. package/table-list/cjs/package.json +12 -0
  341. package/table-list/index.js +4 -4
  342. package/table-list/index.js.map +1 -1
  343. package/table-list/package.json +1 -1
  344. package/table-list/table-list.d.ts +2 -2
  345. package/text-field/cjs/index.js +2 -0
  346. package/text-field/cjs/index.js.map +1 -0
  347. package/text-field/cjs/package.json +11 -0
  348. package/text-field/index.js +1 -23
  349. package/text-field/index.js.map +1 -1
  350. package/text-field/package.json +1 -1
  351. package/text-field/text-field.d.ts +1 -1
  352. package/utils/cjs/index.js +2 -0
  353. package/utils/cjs/index.js.map +1 -0
  354. package/utils/cjs/package.json +10 -0
  355. package/utils/package.json +1 -1
  356. package/value-base/cjs/index.js +2 -0
  357. package/value-base/cjs/index.js.map +1 -0
  358. package/value-base/cjs/package.json +12 -0
  359. package/value-base/index.js +1 -1
  360. package/value-base/index.js.map +1 -1
  361. package/value-base/package.json +1 -1
  362. package/value-base/value-edit.d.ts +3 -3
  363. package/value-boolean/cjs/index.js +2 -0
  364. package/value-boolean/cjs/index.js.map +1 -0
  365. package/value-boolean/cjs/package.json +12 -0
  366. package/value-boolean/index.js +1 -1
  367. package/value-boolean/index.js.map +1 -1
  368. package/value-boolean/package.json +1 -1
  369. package/value-boolean/value-boolean.d.ts +1 -1
  370. package/value-card/cjs/index.js +2 -0
  371. package/value-card/cjs/index.js.map +1 -0
  372. package/value-card/cjs/package.json +11 -0
  373. package/value-card/index.js +1 -1
  374. package/value-card/index.js.map +1 -1
  375. package/value-card/package.json +1 -1
  376. package/value-content/cjs/index.js +2 -0
  377. package/value-content/cjs/index.js.map +1 -0
  378. package/value-content/cjs/package.json +11 -0
  379. package/value-content/index.js +1 -1
  380. package/value-content/index.js.map +1 -1
  381. package/value-content/package.json +1 -1
  382. package/value-content/value-content.d.ts +2 -2
  383. package/value-datetime/cjs/index.js +2 -0
  384. package/value-datetime/cjs/index.js.map +1 -0
  385. package/value-datetime/cjs/package.json +14 -0
  386. package/value-datetime/index.js +1 -1
  387. package/value-datetime/index.js.map +1 -1
  388. package/value-datetime/package.json +1 -1
  389. package/value-datetime/value-datetime.d.ts +1 -1
  390. package/value-image/cjs/index.js +2 -0
  391. package/value-image/cjs/index.js.map +1 -0
  392. package/value-image/cjs/package.json +11 -0
  393. package/value-image/index.js +1 -1
  394. package/value-image/index.js.map +1 -1
  395. package/value-image/package.json +1 -1
  396. package/value-image/value-image.d.ts +1 -1
  397. package/value-item/cjs/index.js +2 -0
  398. package/value-item/cjs/index.js.map +1 -0
  399. package/value-item/cjs/package.json +11 -0
  400. package/value-item/index.js +1 -1
  401. package/value-item/index.js.map +1 -1
  402. package/value-item/package.json +1 -1
  403. package/value-item/value-item.d.ts +1 -1
  404. package/value-label/cjs/index.js +2 -0
  405. package/value-label/cjs/index.js.map +1 -0
  406. package/value-label/cjs/package.json +12 -0
  407. package/value-label/index.js +1 -1
  408. package/value-label/index.js.map +1 -1
  409. package/value-label/package.json +1 -1
  410. package/value-label/value-label.d.ts +1 -1
  411. package/value-rating/cjs/index.js +2 -0
  412. package/value-rating/cjs/index.js.map +1 -0
  413. package/value-rating/cjs/package.json +12 -0
  414. package/value-rating/index.js +1 -1
  415. package/value-rating/index.js.map +1 -1
  416. package/value-rating/package.json +1 -1
  417. package/value-rating/value-rating.d.ts +1 -1
  418. package/value-text/cjs/index.js +2 -0
  419. package/value-text/cjs/index.js.map +1 -0
  420. package/value-text/cjs/package.json +12 -0
  421. package/value-text/index.js +1 -1
  422. package/value-text/index.js.map +1 -1
  423. package/value-text/package.json +1 -1
  424. package/value-text/value-text.d.ts +1 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),l=require("react"),a=require("@mui/material/Dialog"),t=require("@mui/material/DialogTitle"),i=require("@mui/material/DialogActions"),r=require("@mui/material/IconButton"),n=require("@mui/material/DialogContent"),o=require("@mui/material/CircularProgress"),c=require("@mui/material/Box"),s=require("@mui/material/Button"),u=require("@mui/lab/LoadingButton"),d=require("@mui/icons-material/Close"),p=require("@mui/material/TextField");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var x=m(a),C=m(t),f=m(i),b=m(r),h=m(n),g=m(o),j=m(c),q=m(s),y=m(u),T=m(d),v=m(p);const A=({open:l,title:a,component:t,componentProps:i={},disabled:r,disableAccept:n,disableCancel:o,actions:c=[],children:s,loading:u,cancelable:d,callCloseWhenCancel:p=!0,acceptable:m,acceptText:v="Accept",cancelText:A="Cancel",onAccept:k,onCancel:D=(()=>null),onClose:B,acceptType:P="button"})=>{const W=c.length>0||m||d;return e.jsxs(x.default,{open:l,onClose:B,children:[e.jsxs(C.default,{sx:{display:"flex",alignItems:"center"},children:[a,u&&!m&&e.jsx(g.default,{size:20,sx:{ml:2,color:e=>e.palette.grey[500]}}),e.jsx(b.default,{disabled:r,"aria-label":"close",onClick:B,sx:{position:"absolute",right:8,top:8,color:e=>e.palette.grey[500]},children:e.jsx(T.default,{})})]}),e.jsxs(j.default,{component:t,...i,children:[e.jsx(h.default,{dividers:!0,children:s}),W&&e.jsxs(f.default,{children:[c.map((({id:l,text:a,type:t="button",onClick:i,color:n="primary"})=>e.jsx(q.default,{type:t,disabled:r,onClick:i,color:n,children:a},l))),d&&e.jsx(q.default,{color:"error",disabled:r||o,onClick:()=>{D(),p&&B()},children:A}),m&&e.jsx(y.default,{type:P,loading:u,disabled:r||n,onClick:k,children:v})]})]})]})};exports.ConfirmDialog=({open:a,title:t,loading:i,disabled:r,confirmText:n="Confirm",cancelText:o="Cancel",passphrase:c,children:s,onConfirm:u,onCancel:d})=>{const[p,m]=l.useState(""),x=!c||p===c;return e.jsxs(A,{title:t,loading:i,disabled:i||r,disableAccept:!x,open:a,onClose:d,acceptable:!0,cancelable:!0,callCloseWhenCancel:!1,acceptText:n,cancelText:o,onCancel:d,onAccept:u,children:[s,c&&e.jsx(v.default,{size:"small",fullWidth:!0,value:p,onChange:e=>m(e.target.value),placeholder:c})]})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/bootstrap-dialog/bootstrap-dialog.tsx","../../../src/confirm-dialog/confirm-dialog.tsx"],"sourcesContent":["import Dialog from \"@mui/material/Dialog\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport IconButton from \"@mui/material/IconButton\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport LoadingButton from \"@mui/lab/LoadingButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { BootstrapDialogDialogProps } from \"~/dialog/dialog.types\";\n\nexport const BootstrapDialog = ({\n open,\n title,\n component,\n componentProps = {},\n disabled,\n disableAccept,\n disableCancel,\n actions = [],\n children,\n loading,\n cancelable,\n callCloseWhenCancel = true,\n acceptable,\n acceptText = \"Accept\",\n cancelText = \"Cancel\",\n onAccept,\n onCancel = () => null,\n onClose,\n acceptType = \"button\",\n}: BootstrapDialogDialogProps) => {\n const hasActions = actions.length > 0 || acceptable || cancelable;\n\n return (\n <Dialog open={open} onClose={onClose}>\n <DialogTitle sx={{ display: \"flex\", alignItems: \"center\" }}>\n {title}\n {loading && !acceptable && (\n <CircularProgress size={20} sx={{ ml: 2, color: (theme) => theme.palette.grey[500] }} />\n )}\n <IconButton\n disabled={disabled}\n aria-label=\"close\"\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon />\n </IconButton>\n </DialogTitle>\n <Box component={component} {...componentProps}>\n <DialogContent dividers>{children}</DialogContent>\n {hasActions && (\n <DialogActions>\n {actions.map(({ id, text, type = \"button\", onClick, color = \"primary\" }) => (\n <Button key={id} type={type} disabled={disabled} onClick={onClick} color={color}>\n {text}\n </Button>\n ))}\n {cancelable && (\n <Button\n color=\"error\"\n disabled={disabled || disableCancel}\n onClick={() => {\n onCancel();\n callCloseWhenCancel && onClose();\n }}\n >\n {cancelText}\n </Button>\n )}\n\n {acceptable && (\n <LoadingButton\n type={acceptType}\n loading={loading}\n disabled={disabled || disableAccept}\n onClick={onAccept}\n >\n {acceptText}\n </LoadingButton>\n )}\n </DialogActions>\n )}\n </Box>\n </Dialog>\n );\n};\n","import { useState } from \"react\";\nimport { BootstrapDialog } from \"~/bootstrap-dialog\";\nimport { BootstrapDialogDialogProps } from \"~/dialog/dialog.types\";\nimport TextField from \"@mui/material/TextField\";\n\ntype OmitBaseDialogProps =\n | \"cancelable\"\n | \"acceptable\"\n | \"onAccept\"\n | \"onCancel\"\n | \"onClose\"\n | \"actions\"\n | \"callCloseWhenCancel\"\n | \"component\"\n | \"acceptType\";\nexport interface ConfirmDialogProps extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {\n confirmText?: string;\n canceText?: string;\n passphrase?: string;\n onCancel: () => void;\n onConfirm: () => void;\n}\n\nexport const ConfirmDialog = ({\n open,\n title,\n loading,\n disabled,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n passphrase,\n children,\n onConfirm,\n onCancel,\n}: ConfirmDialogProps) => {\n const [inputPassphrase, setInputPassphrase] = useState(\"\");\n const validPassphrase = !passphrase || inputPassphrase === passphrase;\n\n return (\n <BootstrapDialog\n title={title}\n loading={loading}\n disabled={loading || disabled}\n disableAccept={!validPassphrase}\n open={open}\n onClose={onCancel}\n acceptable\n cancelable\n callCloseWhenCancel={false}\n acceptText={confirmText}\n cancelText={cancelText}\n onCancel={onCancel}\n onAccept={onConfirm}\n >\n {children}\n {passphrase && (\n <TextField\n size=\"small\"\n fullWidth\n value={inputPassphrase}\n onChange={(e) => setInputPassphrase(e.target.value)}\n placeholder={passphrase}\n />\n )}\n </BootstrapDialog>\n );\n};\n"],"names":["BootstrapDialog","open","title","component","componentProps","disabled","disableAccept","disableCancel","actions","children","loading","cancelable","callCloseWhenCancel","acceptable","acceptText","cancelText","onAccept","onCancel","onClose","acceptType","hasActions","length","_jsxs","Dialog","jsxs","DialogTitle","sx","display","alignItems","_jsx","CircularProgress","size","ml","color","theme","palette","grey","IconButton","onClick","position","right","top","CloseIcon","Box","jsx","DialogContent","dividers","DialogActions","map","id","text","type","Button","LoadingButton","confirmText","passphrase","onConfirm","inputPassphrase","setInputPassphrase","useState","validPassphrase","TextField","fullWidth","value","onChange","e","target","placeholder"],"mappings":"irBAYO,MAAMA,EAAkB,EAC7BC,OACAC,QACAC,YACAC,iBAAiB,CAAA,EACjBC,WACAC,gBACAC,gBACAC,UAAU,GACVC,WACAC,UACAC,aACAC,uBAAsB,EACtBC,aACAC,aAAa,SACbC,aAAa,SACbC,WACAC,WAAW,KAAM,MACjBC,UACAC,aAAa,aAEb,MAAMC,EAAaZ,EAAQa,OAAS,GAAKR,GAAcF,EAEvD,OACEW,OAACC,EAAAA,QAAO,CAAAtB,KAAMA,EAAMiB,QAASA,EAC3BT,SAAA,CAAAa,EAAAE,KAACC,EAAW,QAAC,CAAAC,GAAI,CAAEC,QAAS,OAAQC,WAAY,UAAUnB,SAAA,CACvDP,EACAQ,IAAYG,GACXgB,MAACC,EAAgB,QAAA,CAACC,KAAM,GAAIL,GAAI,CAAEM,GAAI,EAAGC,MAAQC,GAAUA,EAAMC,QAAQC,KAAK,QAEhFP,EAAAA,IAACQ,EAAU,SACThC,SAAUA,EAAQ,aACP,QACXiC,QAASpB,EACTQ,GAAI,CACFa,SAAU,WACVC,MAAO,EACPC,IAAK,EACLR,MAAQC,GAAUA,EAAMC,QAAQC,KAAK,MAGvC3B,SAAAoB,EAAAA,IAACa,EAAAA,QAAY,CAAA,QAGjBpB,EAAAA,KAACqB,EAAAA,QAAI,CAAAxC,UAAWA,KAAeC,EAC7BK,SAAA,CAAAoB,EAAAe,IAACC,EAAa,QAAC,CAAAC,UAAU,EAAArC,SAAAA,IACxBW,GACCE,EAAAA,KAACyB,EAAAA,QAAa,CAAAtC,SAAA,CACXD,EAAQwC,KAAI,EAAGC,KAAIC,OAAMC,OAAO,SAAUb,UAASL,QAAQ,aAC1DJ,EAAAA,IAACuB,EAAAA,SAAgBD,KAAMA,EAAM9C,SAAUA,EAAUiC,QAASA,EAASL,MAAOA,EAAKxB,SAC5EyC,GADUD,KAIdtC,GACCkB,EAAAe,IAACQ,EAAM,QAAA,CACLnB,MAAM,QACN5B,SAAUA,GAAYE,EACtB+B,QAAS,KACPrB,IACAL,GAAuBM,GAAS,WAGjCH,IAIJF,GACCgB,EAAAA,IAACwB,EAAa,SACZF,KAAMhC,EACNT,QAASA,EACTL,SAAUA,GAAYC,EACtBgC,QAAStB,EAERP,SAAAK,YAOb,wBCrEyB,EAC3Bb,OACAC,QACAQ,UACAL,WACAiD,cAAc,UACdvC,aAAa,SACbwC,aACA9C,WACA+C,YACAvC,eAEA,MAAOwC,EAAiBC,GAAsBC,EAAQA,SAAC,IACjDC,GAAmBL,GAAcE,IAAoBF,EAE3D,OACEjC,OAACtB,EAAe,CACdE,MAAOA,EACPQ,QAASA,EACTL,SAAUK,GAAWL,EACrBC,eAAgBsD,EAChB3D,KAAMA,EACNiB,QAASD,EACTJ,cACAF,YAAU,EACVC,qBAAqB,EACrBE,WAAYwC,EACZvC,WAAYA,EACZE,SAAUA,EACVD,SAAUwC,YAET/C,EACA8C,GACC1B,MAACgC,EAAAA,QAAS,CACR9B,KAAK,QACL+B,WAAS,EACTC,MAAON,EACPO,SAAWC,GAAMP,EAAmBO,EAAEC,OAAOH,OAC7CI,YAAaZ,MAInB"}
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@pautena/react-design-system/confirm-dialog",
3
+ "private": true,
4
+ "main": "./cjs/index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "dependencies": {
8
+ "@mui/icons-material": "^5.11.16",
9
+ "@mui/lab": "^5.0.0-alpha.134",
10
+ "@mui/material": "^5.13.6",
11
+ "react": "^18.2.0"
12
+ }
13
+ }
@@ -1,4 +1,4 @@
1
- import { BootstrapDialogDialogProps } from "../dialog/dialog.types";
1
+ import { BootstrapDialogDialogProps } from "~/dialog/dialog.types";
2
2
  type OmitBaseDialogProps = "cancelable" | "acceptable" | "onAccept" | "onCancel" | "onClose" | "actions" | "callCloseWhenCancel" | "component" | "acceptType";
3
3
  export interface ConfirmDialogProps extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {
4
4
  confirmText?: string;
@@ -1,2 +1,2 @@
1
- import e,{useState as l}from"react";import{Dialog as t,DialogTitle as n,CircularProgress as c,IconButton as a,Box as o,DialogContent as r,DialogActions as i,Button as m,TextField as p}from"@mui/material";import{LoadingButton as s}from"@mui/lab";import d from"@mui/icons-material/Close";const C=({open:l,title:p,component:C,componentProps:b={},disabled:u,disableAccept:E,disableCancel:x,actions:g=[],children:h,loading:f,cancelable:y,callCloseWhenCancel:T=!0,acceptable:k,acceptText:A="Accept",cancelText:v="Cancel",onAccept:W,onCancel:z=(()=>null),onClose:I,acceptType:P="button"})=>{const j=g.length>0||k||y;return e.createElement(t,{open:l,onClose:I},e.createElement(n,{sx:{display:"flex",alignItems:"center"}},p,f&&!k&&e.createElement(c,{size:20,sx:{ml:2,color:e=>e.palette.grey[500]}}),e.createElement(a,{disabled:u,"aria-label":"close",onClick:I,sx:{position:"absolute",right:8,top:8,color:e=>e.palette.grey[500]}},e.createElement(d,null))),e.createElement(o,{component:C,...b},e.createElement(r,{dividers:!0},h),j&&e.createElement(i,null,g.map((({id:l,text:t,type:n="button",onClick:c,color:a="primary"})=>e.createElement(m,{key:l,type:n,disabled:u,onClick:c,color:a},t))),y&&e.createElement(m,{color:"error",disabled:u||x,onClick:()=>{z(),T&&I()}},v),k&&e.createElement(s,{type:P,loading:f,disabled:u||E,onClick:W},A))))},b=({open:t,title:n,loading:c,disabled:a,confirmText:o="Confirm",cancelText:r="Cancel",passphrase:i,children:m,onConfirm:s,onCancel:d})=>{const[b,u]=l(""),E=!i||b===i;return e.createElement(C,{title:n,loading:c,disabled:c||a,disableAccept:!E,open:t,onClose:d,acceptable:!0,cancelable:!0,callCloseWhenCancel:!1,acceptText:o,cancelText:r,onCancel:d,onAccept:s},m,i&&e.createElement(p,{size:"small",fullWidth:!0,value:b,onChange:e=>u(e.target.value),placeholder:i}))};export{b as ConfirmDialog};
1
+ import{jsxs as e,jsx as l}from"react/jsx-runtime";import{useState as o}from"react";import i from"@mui/material/Dialog";import t from"@mui/material/DialogTitle";import a from"@mui/material/DialogActions";import n from"@mui/material/IconButton";import r from"@mui/material/DialogContent";import c from"@mui/material/CircularProgress";import m from"@mui/material/Box";import p from"@mui/material/Button";import d from"@mui/lab/LoadingButton";import s from"@mui/icons-material/Close";import u from"@mui/material/TextField";const C=({open:o,title:u,component:C,componentProps:h={},disabled:b,disableAccept:f,disableCancel:g,actions:x=[],children:T,loading:y,cancelable:A,callCloseWhenCancel:k=!0,acceptable:B,acceptText:D="Accept",cancelText:v="Cancel",onAccept:W,onCancel:z=(()=>null),onClose:I,acceptType:P="button"})=>{const j=x.length>0||B||A;return e(i,{open:o,onClose:I,children:[e(t,{sx:{display:"flex",alignItems:"center"},children:[u,y&&!B&&l(c,{size:20,sx:{ml:2,color:e=>e.palette.grey[500]}}),l(n,{disabled:b,"aria-label":"close",onClick:I,sx:{position:"absolute",right:8,top:8,color:e=>e.palette.grey[500]},children:l(s,{})})]}),e(m,{component:C,...h,children:[l(r,{dividers:!0,children:T}),j&&e(a,{children:[x.map((({id:e,text:o,type:i="button",onClick:t,color:a="primary"})=>l(p,{type:i,disabled:b,onClick:t,color:a,children:o},e))),A&&l(p,{color:"error",disabled:b||g,onClick:()=>{z(),k&&I()},children:v}),B&&l(d,{type:P,loading:y,disabled:b||f,onClick:W,children:D})]})]})]})},h=({open:i,title:t,loading:a,disabled:n,confirmText:r="Confirm",cancelText:c="Cancel",passphrase:m,children:p,onConfirm:d,onCancel:s})=>{const[h,b]=o("");return e(C,{title:t,loading:a,disabled:a||n,disableAccept:!(!m||h===m),open:i,onClose:s,acceptable:!0,cancelable:!0,callCloseWhenCancel:!1,acceptText:r,cancelText:c,onCancel:s,onAccept:d,children:[p,m&&l(u,{size:"small",fullWidth:!0,value:h,onChange:e=>b(e.target.value),placeholder:m})]})};export{h as ConfirmDialog};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/bootstrap-dialog/bootstrap-dialog.tsx","../../src/confirm-dialog/confirm-dialog.tsx"],"sourcesContent":["import {\n Dialog,\n DialogTitle,\n DialogActions,\n Button,\n IconButton,\n DialogContent,\n Box,\n CircularProgress,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport React from \"react\";\nimport { BootstrapDialogDialogProps } from \"../dialog/dialog.types\";\n\nexport const BootstrapDialog = ({\n open,\n title,\n component,\n componentProps = {},\n disabled,\n disableAccept,\n disableCancel,\n actions = [],\n children,\n loading,\n cancelable,\n callCloseWhenCancel = true,\n acceptable,\n acceptText = \"Accept\",\n cancelText = \"Cancel\",\n onAccept,\n onCancel = () => null,\n onClose,\n acceptType = \"button\",\n}: BootstrapDialogDialogProps) => {\n const hasActions = actions.length > 0 || acceptable || cancelable;\n\n return (\n <Dialog open={open} onClose={onClose}>\n <DialogTitle sx={{ display: \"flex\", alignItems: \"center\" }}>\n {title}\n {loading && !acceptable && (\n <CircularProgress size={20} sx={{ ml: 2, color: (theme) => theme.palette.grey[500] }} />\n )}\n <IconButton\n disabled={disabled}\n aria-label=\"close\"\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon />\n </IconButton>\n </DialogTitle>\n <Box component={component} {...componentProps}>\n <DialogContent dividers>{children}</DialogContent>\n {hasActions && (\n <DialogActions>\n {actions.map(({ id, text, type = \"button\", onClick, color = \"primary\" }) => (\n <Button key={id} type={type} disabled={disabled} onClick={onClick} color={color}>\n {text}\n </Button>\n ))}\n {cancelable && (\n <Button\n color=\"error\"\n disabled={disabled || disableCancel}\n onClick={() => {\n onCancel();\n callCloseWhenCancel && onClose();\n }}\n >\n {cancelText}\n </Button>\n )}\n\n {acceptable && (\n <LoadingButton\n type={acceptType}\n loading={loading}\n disabled={disabled || disableAccept}\n onClick={onAccept}\n >\n {acceptText}\n </LoadingButton>\n )}\n </DialogActions>\n )}\n </Box>\n </Dialog>\n );\n};\n","import React, { useState } from \"react\";\nimport { BootstrapDialog } from \"../bootstrap-dialog\";\nimport { BootstrapDialogDialogProps } from \"../dialog/dialog.types\";\nimport { TextField } from \"@mui/material\";\n\ntype OmitBaseDialogProps =\n | \"cancelable\"\n | \"acceptable\"\n | \"onAccept\"\n | \"onCancel\"\n | \"onClose\"\n | \"actions\"\n | \"callCloseWhenCancel\"\n | \"component\"\n | \"acceptType\";\nexport interface ConfirmDialogProps extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {\n confirmText?: string;\n canceText?: string;\n passphrase?: string;\n onCancel: () => void;\n onConfirm: () => void;\n}\n\nexport const ConfirmDialog = ({\n open,\n title,\n loading,\n disabled,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n passphrase,\n children,\n onConfirm,\n onCancel,\n}: ConfirmDialogProps) => {\n const [inputPassphrase, setInputPassphrase] = useState(\"\");\n const validPassphrase = !passphrase || inputPassphrase === passphrase;\n\n return (\n <BootstrapDialog\n title={title}\n loading={loading}\n disabled={loading || disabled}\n disableAccept={!validPassphrase}\n open={open}\n onClose={onCancel}\n acceptable\n cancelable\n callCloseWhenCancel={false}\n acceptText={confirmText}\n cancelText={cancelText}\n onCancel={onCancel}\n onAccept={onConfirm}\n >\n {children}\n {passphrase && (\n <TextField\n size=\"small\"\n fullWidth\n value={inputPassphrase}\n onChange={(e) => setInputPassphrase(e.target.value)}\n placeholder={passphrase}\n />\n )}\n </BootstrapDialog>\n );\n};\n"],"names":["BootstrapDialog","open","title","component","componentProps","disabled","disableAccept","disableCancel","actions","children","loading","cancelable","callCloseWhenCancel","acceptable","acceptText","cancelText","onAccept","onCancel","onClose","acceptType","hasActions","length","React","createElement","Dialog","DialogTitle","sx","display","alignItems","CircularProgress","size","ml","color","theme","palette","grey","IconButton","onClick","position","right","top","CloseIcon","Box","DialogContent","dividers","DialogActions","map","id","text","type","Button","key","LoadingButton","ConfirmDialog","confirmText","passphrase","onConfirm","inputPassphrase","setInputPassphrase","useState","validPassphrase","TextField","fullWidth","value","onChange","e","target","placeholder"],"mappings":"8RAeO,MAAMA,EAAkB,EAC7BC,OACAC,QACAC,YACAC,iBAAiB,CAAA,EACjBC,WACAC,gBACAC,gBACAC,UAAU,GACVC,WACAC,UACAC,aACAC,uBAAsB,EACtBC,aACAC,aAAa,SACbC,aAAa,SACbC,WACAC,WAAW,KAAM,MACjBC,UACAC,aAAa,aAEb,MAAMC,EAAaZ,EAAQa,OAAS,GAAKR,GAAcF,EAEvD,OACEW,EAACC,cAAAC,EAAO,CAAAvB,KAAMA,EAAMiB,QAASA,GAC3BI,EAAAC,cAACE,EAAW,CAACC,GAAI,CAAEC,QAAS,OAAQC,WAAY,WAC7C1B,EACAQ,IAAYG,GACXS,gBAACO,EAAgB,CAACC,KAAM,GAAIJ,GAAI,CAAEK,GAAI,EAAGC,MAAQC,GAAUA,EAAMC,QAAQC,KAAK,QAEhFb,EAAAC,cAACa,EAAU,CACT/B,SAAUA,EAAQ,aACP,QACXgC,QAASnB,EACTQ,GAAI,CACFY,SAAU,WACVC,MAAO,EACPC,IAAK,EACLR,MAAQC,GAAUA,EAAMC,QAAQC,KAAK,OAGvCb,EAACC,cAAAkB,EAAY,QAGjBnB,EAAAC,cAACmB,EAAI,CAAAvC,UAAWA,KAAeC,GAC7BkB,EAAAC,cAACoB,EAAa,CAACC,UAAQ,GAAEnC,GACxBW,GACCE,EAAAC,cAACsB,EAAa,KACXrC,EAAQsC,KAAI,EAAGC,KAAIC,OAAMC,OAAO,SAAUZ,UAASL,QAAQ,aAC1DV,EAAAC,cAAC2B,EAAO,CAAAC,IAAKJ,EAAIE,KAAMA,EAAM5C,SAAUA,EAAUgC,QAASA,EAASL,MAAOA,GACvEgB,KAGJrC,GACCW,EAAAC,cAAC2B,EACC,CAAAlB,MAAM,QACN3B,SAAUA,GAAYE,EACtB8B,QAAS,KACPpB,IACAL,GAAuBM,GAAS,GAGjCH,GAIJF,GACCS,EAACC,cAAA6B,EACC,CAAAH,KAAM9B,EACNT,QAASA,EACTL,SAAUA,GAAYC,EACtB+B,QAASrB,GAERF,KAOb,ECxESuC,EAAgB,EAC3BpD,OACAC,QACAQ,UACAL,WACAiD,cAAc,UACdvC,aAAa,SACbwC,aACA9C,WACA+C,YACAvC,eAEA,MAAOwC,EAAiBC,GAAsBC,EAAS,IACjDC,GAAmBL,GAAcE,IAAoBF,EAE3D,OACEjC,EAACC,cAAAvB,EACC,CAAAE,MAAOA,EACPQ,QAASA,EACTL,SAAUK,GAAWL,EACrBC,eAAgBsD,EAChB3D,KAAMA,EACNiB,QAASD,EACTJ,YAAU,EACVF,YACA,EAAAC,qBAAqB,EACrBE,WAAYwC,EACZvC,WAAYA,EACZE,SAAUA,EACVD,SAAUwC,GAET/C,EACA8C,GACCjC,EAAAC,cAACsC,EAAS,CACR/B,KAAK,QACLgC,aACAC,MAAON,EACPO,SAAWC,GAAMP,EAAmBO,EAAEC,OAAOH,OAC7CI,YAAaZ,IAInB"}
1
+ {"version":3,"file":"index.js","sources":["../../src/bootstrap-dialog/bootstrap-dialog.tsx","../../src/confirm-dialog/confirm-dialog.tsx"],"sourcesContent":["import Dialog from \"@mui/material/Dialog\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport IconButton from \"@mui/material/IconButton\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport LoadingButton from \"@mui/lab/LoadingButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { BootstrapDialogDialogProps } from \"~/dialog/dialog.types\";\n\nexport const BootstrapDialog = ({\n open,\n title,\n component,\n componentProps = {},\n disabled,\n disableAccept,\n disableCancel,\n actions = [],\n children,\n loading,\n cancelable,\n callCloseWhenCancel = true,\n acceptable,\n acceptText = \"Accept\",\n cancelText = \"Cancel\",\n onAccept,\n onCancel = () => null,\n onClose,\n acceptType = \"button\",\n}: BootstrapDialogDialogProps) => {\n const hasActions = actions.length > 0 || acceptable || cancelable;\n\n return (\n <Dialog open={open} onClose={onClose}>\n <DialogTitle sx={{ display: \"flex\", alignItems: \"center\" }}>\n {title}\n {loading && !acceptable && (\n <CircularProgress size={20} sx={{ ml: 2, color: (theme) => theme.palette.grey[500] }} />\n )}\n <IconButton\n disabled={disabled}\n aria-label=\"close\"\n onClick={onClose}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon />\n </IconButton>\n </DialogTitle>\n <Box component={component} {...componentProps}>\n <DialogContent dividers>{children}</DialogContent>\n {hasActions && (\n <DialogActions>\n {actions.map(({ id, text, type = \"button\", onClick, color = \"primary\" }) => (\n <Button key={id} type={type} disabled={disabled} onClick={onClick} color={color}>\n {text}\n </Button>\n ))}\n {cancelable && (\n <Button\n color=\"error\"\n disabled={disabled || disableCancel}\n onClick={() => {\n onCancel();\n callCloseWhenCancel && onClose();\n }}\n >\n {cancelText}\n </Button>\n )}\n\n {acceptable && (\n <LoadingButton\n type={acceptType}\n loading={loading}\n disabled={disabled || disableAccept}\n onClick={onAccept}\n >\n {acceptText}\n </LoadingButton>\n )}\n </DialogActions>\n )}\n </Box>\n </Dialog>\n );\n};\n","import { useState } from \"react\";\nimport { BootstrapDialog } from \"~/bootstrap-dialog\";\nimport { BootstrapDialogDialogProps } from \"~/dialog/dialog.types\";\nimport TextField from \"@mui/material/TextField\";\n\ntype OmitBaseDialogProps =\n | \"cancelable\"\n | \"acceptable\"\n | \"onAccept\"\n | \"onCancel\"\n | \"onClose\"\n | \"actions\"\n | \"callCloseWhenCancel\"\n | \"component\"\n | \"acceptType\";\nexport interface ConfirmDialogProps extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {\n confirmText?: string;\n canceText?: string;\n passphrase?: string;\n onCancel: () => void;\n onConfirm: () => void;\n}\n\nexport const ConfirmDialog = ({\n open,\n title,\n loading,\n disabled,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n passphrase,\n children,\n onConfirm,\n onCancel,\n}: ConfirmDialogProps) => {\n const [inputPassphrase, setInputPassphrase] = useState(\"\");\n const validPassphrase = !passphrase || inputPassphrase === passphrase;\n\n return (\n <BootstrapDialog\n title={title}\n loading={loading}\n disabled={loading || disabled}\n disableAccept={!validPassphrase}\n open={open}\n onClose={onCancel}\n acceptable\n cancelable\n callCloseWhenCancel={false}\n acceptText={confirmText}\n cancelText={cancelText}\n onCancel={onCancel}\n onAccept={onConfirm}\n >\n {children}\n {passphrase && (\n <TextField\n size=\"small\"\n fullWidth\n value={inputPassphrase}\n onChange={(e) => setInputPassphrase(e.target.value)}\n placeholder={passphrase}\n />\n )}\n </BootstrapDialog>\n );\n};\n"],"names":["BootstrapDialog","open","title","component","componentProps","disabled","disableAccept","disableCancel","actions","children","loading","cancelable","callCloseWhenCancel","acceptable","acceptText","cancelText","onAccept","onCancel","onClose","acceptType","hasActions","length","_jsxs","Dialog","DialogTitle","sx","display","alignItems","_jsx","CircularProgress","size","ml","color","theme","palette","grey","IconButton","onClick","position","right","top","CloseIcon","Box","DialogContent","dividers","DialogActions","map","id","text","type","Button","LoadingButton","ConfirmDialog","confirmText","passphrase","onConfirm","inputPassphrase","setInputPassphrase","useState","TextField","fullWidth","value","onChange","e","target","placeholder"],"mappings":"ugBAYO,MAAMA,EAAkB,EAC7BC,OACAC,QACAC,YACAC,iBAAiB,CAAA,EACjBC,WACAC,gBACAC,gBACAC,UAAU,GACVC,WACAC,UACAC,aACAC,uBAAsB,EACtBC,aACAC,aAAa,SACbC,aAAa,SACbC,WACAC,WAAW,KAAM,MACjBC,UACAC,aAAa,aAEb,MAAMC,EAAaZ,EAAQa,OAAS,GAAKR,GAAcF,EAEvD,OACEW,EAACC,EAAO,CAAAtB,KAAMA,EAAMiB,QAASA,EAC3BT,SAAA,CAAAa,EAACE,EAAY,CAAAC,GAAI,CAAEC,QAAS,OAAQC,WAAY,UAAUlB,SAAA,CACvDP,EACAQ,IAAYG,GACXe,EAACC,EAAgB,CAACC,KAAM,GAAIL,GAAI,CAAEM,GAAI,EAAGC,MAAQC,GAAUA,EAAMC,QAAQC,KAAK,QAEhFP,EAACQ,GACC/B,SAAUA,EAAQ,aACP,QACXgC,QAASnB,EACTO,GAAI,CACFa,SAAU,WACVC,MAAO,EACPC,IAAK,EACLR,MAAQC,GAAUA,EAAMC,QAAQC,KAAK,MAGvC1B,SAAAmB,EAACa,EAAY,CAAA,QAGjBnB,EAACoB,EAAI,CAAAvC,UAAWA,KAAeC,EAC7BK,SAAA,CAAAmB,EAACe,EAAc,CAAAC,UAAU,EAAAnC,SAAAA,IACxBW,GACCE,EAACuB,EAAa,CAAApC,SAAA,CACXD,EAAQsC,KAAI,EAAGC,KAAIC,OAAMC,OAAO,SAAUZ,UAASL,QAAQ,aAC1DJ,EAACsB,GAAgBD,KAAMA,EAAM5C,SAAUA,EAAUgC,QAASA,EAASL,MAAOA,EAAKvB,SAC5EuC,GADUD,KAIdpC,GACCiB,EAACsB,EAAM,CACLlB,MAAM,QACN3B,SAAUA,GAAYE,EACtB8B,QAAS,KACPpB,IACAL,GAAuBM,GAAS,WAGjCH,IAIJF,GACCe,EAACuB,GACCF,KAAM9B,EACNT,QAASA,EACTL,SAAUA,GAAYC,EACtB+B,QAASrB,EAERP,SAAAK,YAOb,ECrESsC,EAAgB,EAC3BnD,OACAC,QACAQ,UACAL,WACAgD,cAAc,UACdtC,aAAa,SACbuC,aACA7C,WACA8C,YACAtC,eAEA,MAAOuC,EAAiBC,GAAsBC,EAAS,IAGvD,OACEpC,EAACtB,EAAe,CACdE,MAAOA,EACPQ,QAASA,EACTL,SAAUK,GAAWL,EACrBC,iBAPqBgD,GAAcE,IAAoBF,GAQvDrD,KAAMA,EACNiB,QAASD,EACTJ,cACAF,YAAU,EACVC,qBAAqB,EACrBE,WAAYuC,EACZtC,WAAYA,EACZE,SAAUA,EACVD,SAAUuC,YAET9C,EACA6C,GACC1B,EAAC+B,EAAS,CACR7B,KAAK,QACL8B,WAAS,EACTC,MAAOL,EACPM,SAAWC,GAAMN,EAAmBM,EAAEC,OAAOH,OAC7CI,YAAaX,MAInB"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pautena/react-design-system/confirm-dialog",
3
3
  "private": true,
4
- "main": "../cjs/index.js",
4
+ "main": "./cjs/index.js",
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=r(require("@mui/material/Container"));exports.Content=({children:r})=>e.jsx(t.default,{component:"main",sx:{py:3,flexGrow:1},children:r});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/content/content.tsx"],"sourcesContent":["import Container from \"@mui/material/Container\";\nimport { ContentProps } from \"./content.types\";\n\nexport const Content = ({ children }: ContentProps) => {\n return (\n <Container component=\"main\" sx={{ py: 3, flexGrow: 1 }}>\n {children}\n </Container>\n );\n};\n"],"names":["children","_jsx","Container","component","sx","py","flexGrow"],"mappings":"2OAGuB,EAAGA,cAEtBC,MAACC,EAAS,QAAA,CAACC,UAAU,OAAOC,GAAI,CAAEC,GAAI,EAAGC,SAAU,GAChDN,SAAAA"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@pautena/react-design-system/content",
3
+ "private": true,
4
+ "main": "./cjs/index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "dependencies": {
8
+ "@mui/material": "^5.13.6",
9
+ "react": "^18.2.0"
10
+ }
11
+ }
package/content/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import e from"react";import{Container as r}from"@mui/material";const m=({children:m})=>e.createElement(r,{component:"main",sx:{py:3,flexGrow:1}},m);export{m as Content};
1
+ import{jsx as r}from"react/jsx-runtime";import o from"@mui/material/Container";const e=({children:e})=>r(o,{component:"main",sx:{py:3,flexGrow:1},children:e});export{e as Content};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/content/content.tsx"],"sourcesContent":["import React from \"react\";\nimport { Container } from \"@mui/material\";\nimport { ContentProps } from \"./content.types\";\n\nexport const Content = ({ children }: ContentProps) => {\n return (\n <Container component=\"main\" sx={{ py: 3, flexGrow: 1 }}>\n {children}\n </Container>\n );\n};\n"],"names":["Content","children","React","Container","component","sx","py","flexGrow"],"mappings":"qEAIaA,EAAU,EAAGC,cAEtBC,gBAACC,EAAS,CAACC,UAAU,OAAOC,GAAI,CAAEC,GAAI,EAAGC,SAAU,IAChDN"}
1
+ {"version":3,"file":"index.js","sources":["../../src/content/content.tsx"],"sourcesContent":["import Container from \"@mui/material/Container\";\nimport { ContentProps } from \"./content.types\";\n\nexport const Content = ({ children }: ContentProps) => {\n return (\n <Container component=\"main\" sx={{ py: 3, flexGrow: 1 }}>\n {children}\n </Container>\n );\n};\n"],"names":["Content","children","_jsx","Container","component","sx","py","flexGrow"],"mappings":"qFAGaA,EAAU,EAAGC,cAEtBC,EAACC,EAAS,CAACC,UAAU,OAAOC,GAAI,CAAEC,GAAI,EAAGC,SAAU,GAChDN,SAAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pautena/react-design-system/content",
3
3
  "private": true,
4
- "main": "../cjs/index.js",
4
+ "main": "./cjs/index.js",
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@mui/material/Container"),i=require("@mui/material/Grid");require("@mui/material");var a=require("@mui/material/Box"),r=require("@mui/material/Skeleton");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=n(t),u=n(i),s=n(a),d=n(r);const o=(e,t)=>new Array(e).fill(t),c=({width:t="100%",animation:i=!1})=>e.jsxs(s.default,{width:t,children:[e.jsx(d.default,{animation:i,variant:"rectangular",height:118}),e.jsx(d.default,{animation:i,variant:"rectangular",height:16,sx:{my:1}}),e.jsx(d.default,{animation:i,variant:"rectangular",width:"80%",height:16})]}),m=({size:t=20})=>e.jsx(u.default,{container:!0,spacing:2,children:o(t,0).map(((t,i)=>e.jsx(u.default,{item:!0,xs:4,children:e.jsx(c,{width:1})},i)))});exports.ContentPlaceholder=({size:t=20,children:i,p:a})=>e.jsxs(l.default,{component:"main",sx:{p:a},"data-testid":"content-placeholder-test",children:[i,e.jsx(m,{size:t})]});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/arrays.ts","../../../src/skeleton-card/skeleton-card.tsx","../../../src/skeleton-grid/skeleton-grid.tsx","../../../src/content-placeholder/content-placeholder.tsx"],"sourcesContent":["export const newArrayWithSize = <T>(size: number, fillValue: T) => new Array(size).fill(fillValue);\n\nexport const getRandomItem = <T>(items: T[]): { index: number; item: T } => {\n const index = Math.floor(Math.random() * items.length);\n const item = items[index];\n return { index, item };\n};\n","import Box from \"@mui/material/Box\";\nimport Skeleton from \"@mui/material/Skeleton\";\n\nexport interface SkeletonCardProps {\n width?: number | string;\n animation?: \"pulse\" | \"wave\" | false;\n}\n\nexport const SkeletonCard = ({ width = \"100%\", animation = false }: SkeletonCardProps) => {\n return (\n <Box width={width}>\n <Skeleton animation={animation} variant=\"rectangular\" height={118} />\n <Skeleton animation={animation} variant=\"rectangular\" height={16} sx={{ my: 1 }} />\n <Skeleton animation={animation} variant=\"rectangular\" width=\"80%\" height={16} />\n </Box>\n );\n};\n","import Grid from \"@mui/material/Grid\";\nimport { newArrayWithSize } from \"~/utils\";\nimport { SkeletonCard } from \"~/skeleton-card\";\n\nexport interface SkeletonGridProps {\n size?: number;\n}\n\nexport const SkeletonGrid = ({ size = 20 }: SkeletonGridProps) => {\n return (\n <Grid container spacing={2}>\n {newArrayWithSize(size, 0).map((_, i) => (\n <Grid item key={i} xs={4}>\n <SkeletonCard width={1} />\n </Grid>\n ))}\n </Grid>\n );\n};\n","import Container from \"@mui/material/Container\";\nimport { PropsWithChildren } from \"react\";\nimport { SkeletonGrid } from \"~/skeleton-grid\";\n\nexport type ContentPlaceholderProps = PropsWithChildren<{\n size?: number;\n p?: number;\n}>;\n\nexport const ContentPlaceholder = ({ size = 20, children, p }: ContentPlaceholderProps) => {\n return (\n <Container component=\"main\" sx={{ p }} data-testid=\"content-placeholder-test\">\n {children}\n <SkeletonGrid size={size} />\n </Container>\n );\n};\n"],"names":["newArrayWithSize","size","fillValue","Array","fill","SkeletonCard","width","animation","_jsxs","jsxs","Box","children","_jsx","Skeleton","variant","height","sx","my","jsx","SkeletonGrid","Grid","container","spacing","map","_","i","item","xs","p","Container","component"],"mappings":"oXAAO,MAAMA,EAAmB,CAAIC,EAAcC,IAAiB,IAAIC,MAAMF,GAAMG,KAAKF,GCQ3EG,EAAe,EAAGC,QAAQ,OAAQC,aAAY,KAEvDC,EAAAC,KAACC,UAAG,CAACJ,MAAOA,EACVK,SAAA,CAAAC,EAAAA,IAACC,EAAQ,QAAA,CAACN,UAAWA,EAAWO,QAAQ,cAAcC,OAAQ,MAC9DH,EAAAA,IAACC,EAAQ,QAAA,CAACN,UAAWA,EAAWO,QAAQ,cAAcC,OAAQ,GAAIC,GAAI,CAAEC,GAAI,KAC5EL,EAAAM,IAACL,UAAS,CAAAN,UAAWA,EAAWO,QAAQ,cAAcR,MAAM,MAAMS,OAAQ,QCLnEI,EAAe,EAAGlB,OAAO,MAElCW,EAAAA,IAACQ,EAAAA,QAAI,CAACC,WAAU,EAAAC,QAAS,EACtBX,SAAAX,EAAiBC,EAAM,GAAGsB,KAAI,CAACC,EAAGC,IACjCb,EAAAA,IAACQ,EAAAA,QAAK,CAAAM,QAAaC,GAAI,EAAChB,SACtBC,MAACP,GAAaC,MAAO,KADPmB,kCCHU,EAAGxB,OAAO,GAAIU,WAAUiB,OAEtDpB,EAACC,KAAAoB,EAAS,QAAC,CAAAC,UAAU,OAAOd,GAAI,CAAEY,KAAiB,cAAA,2BAChDjB,SAAA,CAAAA,EACDC,EAAAA,IAACO,EAAY,CAAClB,KAAMA"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@pautena/react-design-system/content-placeholder",
3
+ "private": true,
4
+ "main": "./cjs/index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "dependencies": {
8
+ "@mui/material": "^5.13.6",
9
+ "react": "^18.2.0"
10
+ }
11
+ }
@@ -1,2 +1,2 @@
1
- import{Box as e,Skeleton as t,Grid as a,Container as n}from"@mui/material";import i from"react";const r=({width:a="100%",animation:n=!1})=>i.createElement(e,{width:a},i.createElement(t,{animation:n,variant:"rectangular",height:118}),i.createElement(t,{animation:n,variant:"rectangular",height:16,sx:{my:1}}),i.createElement(t,{animation:n,variant:"rectangular",width:"80%",height:16})),m=({size:e=20})=>i.createElement(a,{container:!0,spacing:2},((e,t)=>new Array(e).fill(t))(e,0).map(((e,t)=>i.createElement(a,{item:!0,key:t,xs:4},i.createElement(r,{width:1}))))),c=({size:e=20,children:t,p:a})=>i.createElement(n,{component:"main",sx:{p:a},"data-testid":"content-placeholder-test"},t,i.createElement(m,{size:e}));export{c as ContentPlaceholder};
1
+ import{jsxs as i,jsx as t}from"react/jsx-runtime";import a from"@mui/material/Container";import r from"@mui/material/Grid";import"@mui/material";import e from"@mui/material/Box";import n from"@mui/material/Skeleton";const m=(i,t)=>new Array(i).fill(t),o=({width:a="100%",animation:r=!1})=>i(e,{width:a,children:[t(n,{animation:r,variant:"rectangular",height:118}),t(n,{animation:r,variant:"rectangular",height:16,sx:{my:1}}),t(n,{animation:r,variant:"rectangular",width:"80%",height:16})]}),l=({size:i=20})=>t(r,{container:!0,spacing:2,children:m(i,0).map(((i,a)=>t(r,{item:!0,xs:4,children:t(o,{width:1})},a)))}),h=({size:r=20,children:e,p:n})=>i(a,{component:"main",sx:{p:n},"data-testid":"content-placeholder-test",children:[e,t(l,{size:r})]});export{h as ContentPlaceholder};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/arrays.ts","../../src/skeleton-card/skeleton-card.tsx","../../src/skeleton-grid/skeleton-grid.tsx","../../src/content-placeholder/content-placeholder.tsx"],"sourcesContent":["export const newArrayWithSize = <T>(size: number, fillValue: T) => new Array(size).fill(fillValue);\n\nexport const getRandomItem = <T>(items: T[]): { index: number; item: T } => {\n const index = Math.floor(Math.random() * items.length);\n const item = items[index];\n return { index, item };\n};\n","import { Box, Skeleton } from \"@mui/material\";\nimport React from \"react\";\n\nexport interface SkeletonCardProps {\n width?: number | string;\n animation?: \"pulse\" | \"wave\" | false;\n}\n\nexport const SkeletonCard = ({ width = \"100%\", animation = false }: SkeletonCardProps) => {\n return (\n <Box width={width}>\n <Skeleton animation={animation} variant=\"rectangular\" height={118} />\n <Skeleton animation={animation} variant=\"rectangular\" height={16} sx={{ my: 1 }} />\n <Skeleton animation={animation} variant=\"rectangular\" width=\"80%\" height={16} />\n </Box>\n );\n};\n","import { Grid } from \"@mui/material\";\nimport React from \"react\";\nimport { newArrayWithSize } from \"~/utils\";\nimport { SkeletonCard } from \"../skeleton-card\";\n\nexport interface SkeletonGridProps {\n size?: number;\n}\n\nexport const SkeletonGrid = ({ size = 20 }: SkeletonGridProps) => {\n return (\n <Grid container spacing={2}>\n {newArrayWithSize(size, 0).map((_, i) => (\n <Grid item key={i} xs={4}>\n <SkeletonCard width={1} />\n </Grid>\n ))}\n </Grid>\n );\n};\n","import { Container } from \"@mui/material\";\nimport React, { PropsWithChildren } from \"react\";\nimport { SkeletonGrid } from \"../skeleton-grid\";\n\nexport type ContentPlaceholderProps = PropsWithChildren<{\n size?: number;\n p?: number;\n}>;\n\nexport const ContentPlaceholder = ({ size = 20, children, p }: ContentPlaceholderProps) => {\n return (\n <Container component=\"main\" sx={{ p }} data-testid=\"content-placeholder-test\">\n {children}\n <SkeletonGrid size={size} />\n </Container>\n );\n};\n"],"names":["SkeletonCard","width","animation","React","createElement","Box","Skeleton","variant","height","sx","my","SkeletonGrid","size","Grid","container","spacing","fillValue","Array","fill","newArrayWithSize","map","_","i","item","key","xs","ContentPlaceholder","children","p","Container","component"],"mappings":"gGAAO,MCQMA,EAAe,EAAGC,QAAQ,OAAQC,aAAY,KAEvDC,EAACC,cAAAC,EAAI,CAAAJ,MAAOA,GACVE,EAAAC,cAACE,EAAQ,CAACJ,UAAWA,EAAWK,QAAQ,cAAcC,OAAQ,MAC9DL,EAACC,cAAAE,GAASJ,UAAWA,EAAWK,QAAQ,cAAcC,OAAQ,GAAIC,GAAI,CAAEC,GAAI,KAC5EP,EAACC,cAAAE,GAASJ,UAAWA,EAAWK,QAAQ,cAAcN,MAAM,MAAMO,OAAQ,MCJnEG,EAAe,EAAGC,OAAO,MAElCT,EAACC,cAAAS,EAAK,CAAAC,aAAUC,QAAS,GFXG,EAAIH,EAAcI,IAAiB,IAAIC,MAAML,GAAMM,KAAKF,GEYjFG,CAAiBP,EAAM,GAAGQ,KAAI,CAACC,EAAGC,IACjCnB,EAACC,cAAAS,EAAK,CAAAU,QAAKC,IAAKF,EAAGG,GAAI,GACrBtB,EAACC,cAAAJ,EAAa,CAAAC,MAAO,QCLlByB,EAAqB,EAAGd,OAAO,GAAIe,WAAUC,OAEtDzB,EAAAC,cAACyB,EAAS,CAACC,UAAU,OAAOrB,GAAI,CAAEmB,mBAAiB,4BAChDD,EACDxB,EAACC,cAAAO,GAAaC,KAAMA"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/arrays.ts","../../src/skeleton-card/skeleton-card.tsx","../../src/skeleton-grid/skeleton-grid.tsx","../../src/content-placeholder/content-placeholder.tsx"],"sourcesContent":["export const newArrayWithSize = <T>(size: number, fillValue: T) => new Array(size).fill(fillValue);\n\nexport const getRandomItem = <T>(items: T[]): { index: number; item: T } => {\n const index = Math.floor(Math.random() * items.length);\n const item = items[index];\n return { index, item };\n};\n","import Box from \"@mui/material/Box\";\nimport Skeleton from \"@mui/material/Skeleton\";\n\nexport interface SkeletonCardProps {\n width?: number | string;\n animation?: \"pulse\" | \"wave\" | false;\n}\n\nexport const SkeletonCard = ({ width = \"100%\", animation = false }: SkeletonCardProps) => {\n return (\n <Box width={width}>\n <Skeleton animation={animation} variant=\"rectangular\" height={118} />\n <Skeleton animation={animation} variant=\"rectangular\" height={16} sx={{ my: 1 }} />\n <Skeleton animation={animation} variant=\"rectangular\" width=\"80%\" height={16} />\n </Box>\n );\n};\n","import Grid from \"@mui/material/Grid\";\nimport { newArrayWithSize } from \"~/utils\";\nimport { SkeletonCard } from \"~/skeleton-card\";\n\nexport interface SkeletonGridProps {\n size?: number;\n}\n\nexport const SkeletonGrid = ({ size = 20 }: SkeletonGridProps) => {\n return (\n <Grid container spacing={2}>\n {newArrayWithSize(size, 0).map((_, i) => (\n <Grid item key={i} xs={4}>\n <SkeletonCard width={1} />\n </Grid>\n ))}\n </Grid>\n );\n};\n","import Container from \"@mui/material/Container\";\nimport { PropsWithChildren } from \"react\";\nimport { SkeletonGrid } from \"~/skeleton-grid\";\n\nexport type ContentPlaceholderProps = PropsWithChildren<{\n size?: number;\n p?: number;\n}>;\n\nexport const ContentPlaceholder = ({ size = 20, children, p }: ContentPlaceholderProps) => {\n return (\n <Container component=\"main\" sx={{ p }} data-testid=\"content-placeholder-test\">\n {children}\n <SkeletonGrid size={size} />\n </Container>\n );\n};\n"],"names":["newArrayWithSize","size","fillValue","Array","fill","SkeletonCard","width","animation","_jsxs","Box","children","_jsx","Skeleton","variant","height","sx","my","SkeletonGrid","Grid","container","spacing","map","_","i","item","xs","ContentPlaceholder","p","Container","component"],"mappings":"wNAAO,MAAMA,EAAmB,CAAIC,EAAcC,IAAiB,IAAIC,MAAMF,GAAMG,KAAKF,GCQ3EG,EAAe,EAAGC,QAAQ,OAAQC,aAAY,KAEvDC,EAACC,EAAG,CAACH,MAAOA,EACVI,SAAA,CAAAC,EAACC,EAAQ,CAACL,UAAWA,EAAWM,QAAQ,cAAcC,OAAQ,MAC9DH,EAACC,EAAQ,CAACL,UAAWA,EAAWM,QAAQ,cAAcC,OAAQ,GAAIC,GAAI,CAAEC,GAAI,KAC5EL,EAACC,EAAS,CAAAL,UAAWA,EAAWM,QAAQ,cAAcP,MAAM,MAAMQ,OAAQ,QCLnEG,EAAe,EAAGhB,OAAO,MAElCU,EAACO,EAAI,CAACC,WAAU,EAAAC,QAAS,EACtBV,SAAAV,EAAiBC,EAAM,GAAGoB,KAAI,CAACC,EAAGC,IACjCZ,EAACO,EAAK,CAAAM,QAAaC,GAAI,EAACf,SACtBC,EAACN,GAAaC,MAAO,KADPiB,OCHXG,EAAqB,EAAGzB,OAAO,GAAIS,WAAUiB,OAEtDnB,EAACoB,EAAU,CAAAC,UAAU,OAAOd,GAAI,CAAEY,KAAiB,cAAA,2BAChDjB,SAAA,CAAAA,EACDC,EAACM,EAAY,CAAChB,KAAMA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pautena/react-design-system/content-placeholder",
3
3
  "private": true,
4
- "main": "../cjs/index.js",
4
+ "main": "./cjs/index.js",
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),a=require("@mui/material/Box"),r=require("@mui/material/styles"),t=require("@mui/x-date-pickers"),s=require("date-fns"),i=require("date-fns/esm"),d=require("react");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=o(a);const n=r.styled(u.default,{shouldForwardProp:e=>"dayIsBetween"!==e&&"isFirstDay"!==e&&"isLastDay"!==e&&"isStartOfWeek"!==e&&"isEndOfWeek"!==e})((({theme:e,dayIsBetween:a,isFirstDay:r,isLastDay:t})=>({...(r||t||a)&&{borderRadius:0,backgroundColor:`${e.palette.primary.light}40`,margin:0},...r&&{borderTopLeftRadius:"50%",borderBottomLeftRadius:"50%"},...t&&{borderTopRightRadius:"50%",borderBottomRightRadius:"50%"}}))),l=a=>{const{day:r,dateRange:d,...o}=a;if(null==d)return e.jsx(t.PickersDay,{day:r,...o});const[u,l]=d,y=!!l&&s.isAfter(r,u)&&i.isBefore(r,l),c=s.isSameDay(r,u),f=!!l&&s.isSameDay(r,l),m=s.isSameDay(r,s.startOfWeek(r)),D=s.isSameDay(r,s.endOfWeek(r));return e.jsx(n,{dayIsBetween:y,isFirstDay:c||y&&m,isLastDay:f||y&&D,"aria-label":s.format(r,"yyyy-MM-dd"),"aria-selected":y||c||f,role:"gridcell",children:e.jsx(t.PickersDay,{...o,day:r,selected:c||f})})};exports.DateRangeCalendar=({defaultValue:a,onValueChange:r})=>{const[s,i]=d.useState(a),[o,u]=d.useState(0),n=(e,a,t)=>{i(e),r(e,a),u(t)};return e.jsx(t.DateCalendar,{value:null,onChange:e=>{if(e)return 1===o&&e<s[0]||0===o&&s[1]&&e>s[1]?n([e,void 0],0,1):void n([0===o?e:s[0],1===o?e:s[1]],o,0===o?1:0)},slots:{day:l},slotProps:{day:{dateRange:s}},"aria-label":"calendar range picker"})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/date-range-calendar/date-range-calendar.tsx"],"sourcesContent":["import Box, { BoxProps } from \"@mui/material/Box\";\nimport { styled } from \"@mui/material/styles\";\nimport { DateCalendar, PickersDay, PickersDayProps } from \"@mui/x-date-pickers\";\nimport { endOfWeek, format, isAfter, isSameDay, startOfWeek } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport { useState } from \"react\";\n\ntype DateRange = [Date, Date | undefined];\n\ninterface CustomPickerDayProps extends BoxProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n}\n\nconst CustomPickersDayBackground = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isStartOfWeek\" &&\n prop !== \"isEndOfWeek\",\n})<CustomPickerDayProps>(({ theme, dayIsBetween, isFirstDay, isLastDay }) => {\n return {\n ...((isFirstDay || isLastDay || dayIsBetween) && {\n borderRadius: 0,\n backgroundColor: `${theme.palette.primary.light}40`,\n margin: 0,\n }),\n ...(isFirstDay && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n ...(isLastDay && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n };\n}) as React.ComponentType<CustomPickerDayProps>;\n\nconst Day = (props: PickersDayProps<Date> & { dateRange?: DateRange | null }) => {\n const { day, dateRange, ...other } = props;\n\n if (dateRange == null) {\n return <PickersDay day={day} {...other} />;\n }\n\n const [start, end] = dateRange;\n\n const dayIsBetween = !!end && isAfter(day, start) && isBefore(day, end);\n const isFirstDay = isSameDay(day, start);\n const isLastDay = !!end && isSameDay(day, end);\n const isStartOfWeek = isSameDay(day, startOfWeek(day));\n const isEndOfWeek = isSameDay(day, endOfWeek(day));\n\n return (\n <CustomPickersDayBackground\n dayIsBetween={dayIsBetween}\n isFirstDay={isFirstDay || (dayIsBetween && isStartOfWeek)}\n isLastDay={isLastDay || (dayIsBetween && isEndOfWeek)}\n aria-label={format(day, \"yyyy-MM-dd\")}\n aria-selected={dayIsBetween || isFirstDay || isLastDay}\n role=\"gridcell\"\n >\n <PickersDay {...other} day={day} selected={isFirstDay || isLastDay} />\n </CustomPickersDayBackground>\n );\n};\n\nexport interface DateRangeCalendarProps {\n defaultValue: DateRange;\n onValueChange: (value: DateRange, updatedIndex: number) => void;\n}\nexport const DateRangeCalendar = ({ defaultValue, onValueChange }: DateRangeCalendarProps) => {\n const [value, setValue] = useState(defaultValue);\n const [index, setIndex] = useState(0);\n\n const setValueRange = (newRange: DateRange, index: number, newIndex: number) => {\n setValue(newRange);\n onValueChange(newRange, index);\n setIndex(newIndex);\n };\n\n const handleChange = (newValue: Date | null) => {\n if (!newValue) {\n return;\n }\n\n // If is the end date and is minor than the start date\n if (index === 1 && newValue < value[0]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // If is the start date and is bigger than the end date\n if (index === 0 && value[1] && newValue > value[1]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // Default case\n setValueRange(\n [index === 0 ? newValue : value[0], index === 1 ? newValue : value[1]],\n index,\n index === 0 ? 1 : 0,\n );\n };\n return (\n <DateCalendar\n value={null}\n onChange={handleChange}\n slots={{ day: Day }}\n slotProps={{\n day: {\n dateRange: value,\n } as any,\n }}\n aria-label=\"calendar range picker\"\n />\n );\n};\n"],"names":["CustomPickersDayBackground","styled","Box","shouldForwardProp","prop","theme","dayIsBetween","isFirstDay","isLastDay","borderRadius","backgroundColor","palette","primary","light","margin","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Day","props","day","dateRange","other","_jsx","PickersDay","start","end","isAfter","isBefore","isSameDay","isStartOfWeek","startOfWeek","isEndOfWeek","endOfWeek","format","role","children","selected","defaultValue","onValueChange","value","setValue","useState","index","setIndex","setValueRange","newRange","newIndex","DateCalendar","onChange","newValue","undefined","slots","slotProps"],"mappings":"+VAeA,MAAMA,EAA6BC,EAAMA,OAACC,UAAK,CAC7CC,kBAAoBC,GACT,iBAATA,GACS,eAATA,GACS,cAATA,GACS,kBAATA,GACS,gBAATA,GAN+BH,EAOV,EAAGI,QAAOC,eAAcC,aAAYC,gBACpD,KACAD,GAAcC,GAAaF,IAAiB,CAC/CG,aAAc,EACdC,gBAAiB,GAAGL,EAAMM,QAAQC,QAAQC,UAC1CC,OAAQ,MAENP,GAAc,CAChBQ,oBAAqB,MACrBC,uBAAwB,UAEtBR,GAAa,CACfS,qBAAsB,MACtBC,wBAAyB,WAKzBC,EAAOC,IACX,MAAMC,IAAEA,EAAGC,UAAEA,KAAcC,GAAUH,EAErC,GAAiB,MAAbE,EACF,OAAOE,EAAAA,IAACC,EAAAA,WAAW,CAAAJ,IAAKA,KAASE,IAGnC,MAAOG,EAAOC,GAAOL,EAEfhB,IAAiBqB,GAAOC,UAAQP,EAAKK,IAAUG,EAAQA,SAACR,EAAKM,GAC7DpB,EAAauB,EAAAA,UAAUT,EAAKK,GAC5BlB,IAAcmB,GAAOG,EAAAA,UAAUT,EAAKM,GACpCI,EAAgBD,EAAAA,UAAUT,EAAKW,EAAAA,YAAYX,IAC3CY,EAAcH,EAAAA,UAAUT,EAAKa,EAAAA,UAAUb,IAE7C,OACEG,EAAAA,IAACxB,EAA0B,CACzBM,aAAcA,EACdC,WAAYA,GAAeD,GAAgByB,EAC3CvB,UAAWA,GAAcF,GAAgB2B,EAAY,aACzCE,EAAAA,OAAOd,EAAK,cAAa,gBACtBf,GAAgBC,GAAcC,EAC7C4B,KAAK,WAAUC,SAEfb,EAAAA,IAACC,EAAUA,WAAK,IAAAF,EAAOF,IAAKA,EAAKiB,SAAU/B,GAAcC,KAE3D,4BAO6B,EAAG+B,eAAcC,oBAChD,MAAOC,EAAOC,GAAYC,EAAQA,SAACJ,IAC5BK,EAAOC,GAAYF,EAAQA,SAAC,GAE7BG,EAAgB,CAACC,EAAqBH,EAAeI,KACzDN,EAASK,GACTP,EAAcO,EAAUH,GACxBC,EAASG,EAAS,EAyBpB,OACExB,MAACyB,EAAAA,aAAY,CACXR,MAAO,KACPS,SAzBkBC,IACpB,GAAKA,EAKL,OAAc,IAAVP,GAAeO,EAAWV,EAAM,IAKtB,IAAVG,GAAeH,EAAM,IAAMU,EAAWV,EAAM,GAJvCK,EAAc,CAACK,OAAUC,GAAY,EAAG,QASjDN,EACE,CAAW,IAAVF,EAAcO,EAAWV,EAAM,GAAc,IAAVG,EAAcO,EAAWV,EAAM,IACnEG,EACU,IAAVA,EAAc,EAAI,EACnB,EAMCS,MAAO,CAAEhC,IAAKF,GACdmC,UAAW,CACTjC,IAAK,CACHC,UAAWmB,IAGJ,aAAA,yBAEb"}
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@pautena/react-design-system/date-range-calendar",
3
+ "private": true,
4
+ "main": "./cjs/index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "dependencies": {
8
+ "@mui/material": "^5.13.6",
9
+ "@mui/x-date-pickers": "^6.9.0",
10
+ "date-fns": "^2.30.0",
11
+ "react": "^18.2.0"
12
+ }
13
+ }
@@ -1,2 +1,2 @@
1
- import{styled as e,Box as a}from"@mui/material";import{DateCalendar as r,PickersDay as t}from"@mui/x-date-pickers";import{isAfter as o,isSameDay as i,startOfWeek as s,endOfWeek as d,format as n}from"date-fns";import{isBefore as l}from"date-fns/esm";import m,{useState as u}from"react";const y=e(a,{shouldForwardProp:e=>"dayIsBetween"!==e&&"isFirstDay"!==e&&"isLastDay"!==e&&"isStartOfWeek"!==e&&"isEndOfWeek"!==e})((({theme:e,dayIsBetween:a,isFirstDay:r,isLastDay:t})=>({...(r||t||a)&&{borderRadius:0,backgroundColor:`${e.palette.primary.light}40`,margin:0},...r&&{borderTopLeftRadius:"50%",borderBottomLeftRadius:"50%"},...t&&{borderTopRightRadius:"50%",borderBottomRightRadius:"50%"}}))),c=e=>{const{day:a,dateRange:r,...u}=e;if(null==r)return m.createElement(t,{day:a,...u});const[c,f]=r,p=!!f&&o(a,c)&&l(a,f),g=i(a,c),R=!!f&&i(a,f),b=i(a,s(a)),h=i(a,d(a));return m.createElement(y,{dayIsBetween:p,isFirstDay:g||p&&b,isLastDay:R||p&&h,"aria-label":n(a,"yyyy-MM-dd"),"aria-selected":p||g||R,role:"gridcell"},m.createElement(t,{...u,day:a,selected:g||R}))},f=({defaultValue:e,onValueChange:a})=>{const[t,o]=u(e),[i,s]=u(0),d=(e,r,t)=>{o(e),a(e,r),s(t)};return m.createElement(r,{value:null,onChange:e=>{if(e)return 1===i&&e<t[0]||0===i&&t[1]&&e>t[1]?d([e,void 0],0,1):void d([0===i?e:t[0],1===i?e:t[1]],i,0===i?1:0)},slots:{day:c},slotProps:{day:{dateRange:t}},"aria-label":"calendar range picker"})};export{f as DateRangeCalendar};
1
+ import{jsx as e}from"react/jsx-runtime";import r from"@mui/material/Box";import{styled as a}from"@mui/material/styles";import{DateCalendar as t,PickersDay as i}from"@mui/x-date-pickers";import{isAfter as o,isSameDay as s,startOfWeek as d,endOfWeek as l,format as n}from"date-fns";import{isBefore as m}from"date-fns/esm";import{useState as u}from"react";const y=a(r,{shouldForwardProp:e=>"dayIsBetween"!==e&&"isFirstDay"!==e&&"isLastDay"!==e&&"isStartOfWeek"!==e&&"isEndOfWeek"!==e})((({theme:e,dayIsBetween:r,isFirstDay:a,isLastDay:t})=>({...(a||t||r)&&{borderRadius:0,backgroundColor:`${e.palette.primary.light}40`,margin:0},...a&&{borderTopLeftRadius:"50%",borderBottomLeftRadius:"50%"},...t&&{borderTopRightRadius:"50%",borderBottomRightRadius:"50%"}}))),f=r=>{const{day:a,dateRange:t,...u}=r;if(null==t)return e(i,{day:a,...u});const[f,p]=t,c=!!p&&o(a,f)&&m(a,p),g=s(a,f),R=!!p&&s(a,p),b=s(a,d(a)),h=s(a,l(a));return e(y,{dayIsBetween:c,isFirstDay:g||c&&b,isLastDay:R||c&&h,"aria-label":n(a,"yyyy-MM-dd"),"aria-selected":c||g||R,role:"gridcell",children:e(i,{...u,day:a,selected:g||R})})},p=({defaultValue:r,onValueChange:a})=>{const[i,o]=u(r),[s,d]=u(0),l=(e,r,t)=>{o(e),a(e,r),d(t)};return e(t,{value:null,onChange:e=>{if(e)return 1===s&&e<i[0]||0===s&&i[1]&&e>i[1]?l([e,void 0],0,1):void l([0===s?e:i[0],1===s?e:i[1]],s,0===s?1:0)},slots:{day:f},slotProps:{day:{dateRange:i}},"aria-label":"calendar range picker"})};export{p as DateRangeCalendar};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/date-range-calendar/date-range-calendar.tsx"],"sourcesContent":["import { Box, BoxProps, styled } from \"@mui/material\";\nimport { DateCalendar, PickersDay, PickersDayProps } from \"@mui/x-date-pickers\";\nimport { endOfWeek, format, isAfter, isSameDay, startOfWeek } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport React, { useState } from \"react\";\n\ntype DateRange = [Date, Date | undefined];\n\ninterface CustomPickerDayProps extends BoxProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n}\n\nconst CustomPickersDayBackground = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isStartOfWeek\" &&\n prop !== \"isEndOfWeek\",\n})<CustomPickerDayProps>(({ theme, dayIsBetween, isFirstDay, isLastDay }) => {\n return {\n ...((isFirstDay || isLastDay || dayIsBetween) && {\n borderRadius: 0,\n backgroundColor: `${theme.palette.primary.light}40`,\n margin: 0,\n }),\n ...(isFirstDay && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n ...(isLastDay && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n };\n}) as React.ComponentType<CustomPickerDayProps>;\n\nconst Day = (props: PickersDayProps<Date> & { dateRange?: DateRange | null }) => {\n const { day, dateRange, ...other } = props;\n\n if (dateRange == null) {\n return <PickersDay day={day} {...other} />;\n }\n\n const [start, end] = dateRange;\n\n const dayIsBetween = !!end && isAfter(day, start) && isBefore(day, end);\n const isFirstDay = isSameDay(day, start);\n const isLastDay = !!end && isSameDay(day, end);\n const isStartOfWeek = isSameDay(day, startOfWeek(day));\n const isEndOfWeek = isSameDay(day, endOfWeek(day));\n\n return (\n <CustomPickersDayBackground\n dayIsBetween={dayIsBetween}\n isFirstDay={isFirstDay || (dayIsBetween && isStartOfWeek)}\n isLastDay={isLastDay || (dayIsBetween && isEndOfWeek)}\n aria-label={format(day, \"yyyy-MM-dd\")}\n aria-selected={dayIsBetween || isFirstDay || isLastDay}\n role=\"gridcell\"\n >\n <PickersDay {...other} day={day} selected={isFirstDay || isLastDay} />\n </CustomPickersDayBackground>\n );\n};\n\nexport interface DateRangeCalendarProps {\n defaultValue: DateRange;\n onValueChange: (value: DateRange, updatedIndex: number) => void;\n}\nexport const DateRangeCalendar = ({ defaultValue, onValueChange }: DateRangeCalendarProps) => {\n const [value, setValue] = useState(defaultValue);\n const [index, setIndex] = useState(0);\n\n const setValueRange = (newRange: DateRange, index: number, newIndex: number) => {\n setValue(newRange);\n onValueChange(newRange, index);\n setIndex(newIndex);\n };\n\n const handleChange = (newValue: Date | null) => {\n if (!newValue) {\n return;\n }\n\n // If is the end date and is minor than the start date\n if (index === 1 && newValue < value[0]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // If is the start date and is bigger than the end date\n if (index === 0 && value[1] && newValue > value[1]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // Default case\n setValueRange(\n [index === 0 ? newValue : value[0], index === 1 ? newValue : value[1]],\n index,\n index === 0 ? 1 : 0,\n );\n };\n return (\n <DateCalendar\n value={null}\n onChange={handleChange}\n slots={{ day: Day }}\n slotProps={{\n day: {\n dateRange: value,\n } as any,\n }}\n aria-label=\"calendar range picker\"\n />\n );\n};\n"],"names":["CustomPickersDayBackground","styled","Box","shouldForwardProp","prop","theme","dayIsBetween","isFirstDay","isLastDay","borderRadius","backgroundColor","palette","primary","light","margin","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Day","props","day","dateRange","other","React","createElement","PickersDay","start","end","isAfter","isBefore","isSameDay","isStartOfWeek","startOfWeek","isEndOfWeek","endOfWeek","format","role","selected","DateRangeCalendar","defaultValue","onValueChange","value","setValue","useState","index","setIndex","setValueRange","newRange","newIndex","DateCalendar","onChange","newValue","undefined","slots","slotProps"],"mappings":"6RAcA,MAAMA,EAA6BC,EAAOC,EAAK,CAC7CC,kBAAoBC,GACT,iBAATA,GACS,eAATA,GACS,cAATA,GACS,kBAATA,GACS,gBAATA,GAN+BH,EAOV,EAAGI,QAAOC,eAAcC,aAAYC,gBACpD,KACAD,GAAcC,GAAaF,IAAiB,CAC/CG,aAAc,EACdC,gBAAiB,GAAGL,EAAMM,QAAQC,QAAQC,UAC1CC,OAAQ,MAENP,GAAc,CAChBQ,oBAAqB,MACrBC,uBAAwB,UAEtBR,GAAa,CACfS,qBAAsB,MACtBC,wBAAyB,WAKzBC,EAAOC,IACX,MAAMC,IAAEA,EAAGC,UAAEA,KAAcC,GAAUH,EAErC,GAAiB,MAAbE,EACF,OAAOE,EAAAC,cAACC,EAAW,CAAAL,IAAKA,KAASE,IAGnC,MAAOI,EAAOC,GAAON,EAEfhB,IAAiBsB,GAAOC,EAAQR,EAAKM,IAAUG,EAAST,EAAKO,GAC7DrB,EAAawB,EAAUV,EAAKM,GAC5BnB,IAAcoB,GAAOG,EAAUV,EAAKO,GACpCI,EAAgBD,EAAUV,EAAKY,EAAYZ,IAC3Ca,EAAcH,EAAUV,EAAKc,EAAUd,IAE7C,OACEG,EAACC,cAAAzB,GACCM,aAAcA,EACdC,WAAYA,GAAeD,GAAgB0B,EAC3CxB,UAAWA,GAAcF,GAAgB4B,eAC7BE,EAAOf,EAAK,cACT,gBAAAf,GAAgBC,GAAcC,EAC7C6B,KAAK,YAELb,EAAAC,cAACC,EAAe,IAAAH,EAAOF,IAAKA,EAAKiB,SAAU/B,GAAcC,IAE3D,EAOS+B,EAAoB,EAAGC,eAAcC,oBAChD,MAAOC,EAAOC,GAAYC,EAASJ,IAC5BK,EAAOC,GAAYF,EAAS,GAE7BG,EAAgB,CAACC,EAAqBH,EAAeI,KACzDN,EAASK,GACTP,EAAcO,EAAUH,GACxBC,EAASG,EAAS,EAyBpB,OACEzB,gBAAC0B,EAAY,CACXR,MAAO,KACPS,SAzBkBC,IACpB,GAAKA,EAKL,OAAc,IAAVP,GAAeO,EAAWV,EAAM,IAKtB,IAAVG,GAAeH,EAAM,IAAMU,EAAWV,EAAM,GAJvCK,EAAc,CAACK,OAAUC,GAAY,EAAG,QASjDN,EACE,CAAW,IAAVF,EAAcO,EAAWV,EAAM,GAAc,IAAVG,EAAcO,EAAWV,EAAM,IACnEG,EACU,IAAVA,EAAc,EAAI,EACnB,EAMCS,MAAO,CAAEjC,IAAKF,GACdoC,UAAW,CACTlC,IAAK,CACHC,UAAWoB,IAGJ,aAAA,yBAEb"}
1
+ {"version":3,"file":"index.js","sources":["../../src/date-range-calendar/date-range-calendar.tsx"],"sourcesContent":["import Box, { BoxProps } from \"@mui/material/Box\";\nimport { styled } from \"@mui/material/styles\";\nimport { DateCalendar, PickersDay, PickersDayProps } from \"@mui/x-date-pickers\";\nimport { endOfWeek, format, isAfter, isSameDay, startOfWeek } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport { useState } from \"react\";\n\ntype DateRange = [Date, Date | undefined];\n\ninterface CustomPickerDayProps extends BoxProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n}\n\nconst CustomPickersDayBackground = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isStartOfWeek\" &&\n prop !== \"isEndOfWeek\",\n})<CustomPickerDayProps>(({ theme, dayIsBetween, isFirstDay, isLastDay }) => {\n return {\n ...((isFirstDay || isLastDay || dayIsBetween) && {\n borderRadius: 0,\n backgroundColor: `${theme.palette.primary.light}40`,\n margin: 0,\n }),\n ...(isFirstDay && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n ...(isLastDay && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n };\n}) as React.ComponentType<CustomPickerDayProps>;\n\nconst Day = (props: PickersDayProps<Date> & { dateRange?: DateRange | null }) => {\n const { day, dateRange, ...other } = props;\n\n if (dateRange == null) {\n return <PickersDay day={day} {...other} />;\n }\n\n const [start, end] = dateRange;\n\n const dayIsBetween = !!end && isAfter(day, start) && isBefore(day, end);\n const isFirstDay = isSameDay(day, start);\n const isLastDay = !!end && isSameDay(day, end);\n const isStartOfWeek = isSameDay(day, startOfWeek(day));\n const isEndOfWeek = isSameDay(day, endOfWeek(day));\n\n return (\n <CustomPickersDayBackground\n dayIsBetween={dayIsBetween}\n isFirstDay={isFirstDay || (dayIsBetween && isStartOfWeek)}\n isLastDay={isLastDay || (dayIsBetween && isEndOfWeek)}\n aria-label={format(day, \"yyyy-MM-dd\")}\n aria-selected={dayIsBetween || isFirstDay || isLastDay}\n role=\"gridcell\"\n >\n <PickersDay {...other} day={day} selected={isFirstDay || isLastDay} />\n </CustomPickersDayBackground>\n );\n};\n\nexport interface DateRangeCalendarProps {\n defaultValue: DateRange;\n onValueChange: (value: DateRange, updatedIndex: number) => void;\n}\nexport const DateRangeCalendar = ({ defaultValue, onValueChange }: DateRangeCalendarProps) => {\n const [value, setValue] = useState(defaultValue);\n const [index, setIndex] = useState(0);\n\n const setValueRange = (newRange: DateRange, index: number, newIndex: number) => {\n setValue(newRange);\n onValueChange(newRange, index);\n setIndex(newIndex);\n };\n\n const handleChange = (newValue: Date | null) => {\n if (!newValue) {\n return;\n }\n\n // If is the end date and is minor than the start date\n if (index === 1 && newValue < value[0]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // If is the start date and is bigger than the end date\n if (index === 0 && value[1] && newValue > value[1]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // Default case\n setValueRange(\n [index === 0 ? newValue : value[0], index === 1 ? newValue : value[1]],\n index,\n index === 0 ? 1 : 0,\n );\n };\n return (\n <DateCalendar\n value={null}\n onChange={handleChange}\n slots={{ day: Day }}\n slotProps={{\n day: {\n dateRange: value,\n } as any,\n }}\n aria-label=\"calendar range picker\"\n />\n );\n};\n"],"names":["CustomPickersDayBackground","styled","Box","shouldForwardProp","prop","theme","dayIsBetween","isFirstDay","isLastDay","borderRadius","backgroundColor","palette","primary","light","margin","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Day","props","day","dateRange","other","_jsx","PickersDay","start","end","isAfter","isBefore","isSameDay","isStartOfWeek","startOfWeek","isEndOfWeek","endOfWeek","format","role","children","selected","DateRangeCalendar","defaultValue","onValueChange","value","setValue","useState","index","setIndex","setValueRange","newRange","newIndex","DateCalendar","onChange","newValue","undefined","slots","slotProps"],"mappings":"iWAeA,MAAMA,EAA6BC,EAAOC,EAAK,CAC7CC,kBAAoBC,GACT,iBAATA,GACS,eAATA,GACS,cAATA,GACS,kBAATA,GACS,gBAATA,GAN+BH,EAOV,EAAGI,QAAOC,eAAcC,aAAYC,gBACpD,KACAD,GAAcC,GAAaF,IAAiB,CAC/CG,aAAc,EACdC,gBAAiB,GAAGL,EAAMM,QAAQC,QAAQC,UAC1CC,OAAQ,MAENP,GAAc,CAChBQ,oBAAqB,MACrBC,uBAAwB,UAEtBR,GAAa,CACfS,qBAAsB,MACtBC,wBAAyB,WAKzBC,EAAOC,IACX,MAAMC,IAAEA,EAAGC,UAAEA,KAAcC,GAAUH,EAErC,GAAiB,MAAbE,EACF,OAAOE,EAACC,EAAW,CAAAJ,IAAKA,KAASE,IAGnC,MAAOG,EAAOC,GAAOL,EAEfhB,IAAiBqB,GAAOC,EAAQP,EAAKK,IAAUG,EAASR,EAAKM,GAC7DpB,EAAauB,EAAUT,EAAKK,GAC5BlB,IAAcmB,GAAOG,EAAUT,EAAKM,GACpCI,EAAgBD,EAAUT,EAAKW,EAAYX,IAC3CY,EAAcH,EAAUT,EAAKa,EAAUb,IAE7C,OACEG,EAACxB,EAA0B,CACzBM,aAAcA,EACdC,WAAYA,GAAeD,GAAgByB,EAC3CvB,UAAWA,GAAcF,GAAgB2B,EAAY,aACzCE,EAAOd,EAAK,cAAa,gBACtBf,GAAgBC,GAAcC,EAC7C4B,KAAK,WAAUC,SAEfb,EAACC,EAAe,IAAAF,EAAOF,IAAKA,EAAKiB,SAAU/B,GAAcC,KAE3D,EAOS+B,EAAoB,EAAGC,eAAcC,oBAChD,MAAOC,EAAOC,GAAYC,EAASJ,IAC5BK,EAAOC,GAAYF,EAAS,GAE7BG,EAAgB,CAACC,EAAqBH,EAAeI,KACzDN,EAASK,GACTP,EAAcO,EAAUH,GACxBC,EAASG,EAAS,EAyBpB,OACEzB,EAAC0B,EAAY,CACXR,MAAO,KACPS,SAzBkBC,IACpB,GAAKA,EAKL,OAAc,IAAVP,GAAeO,EAAWV,EAAM,IAKtB,IAAVG,GAAeH,EAAM,IAAMU,EAAWV,EAAM,GAJvCK,EAAc,CAACK,OAAUC,GAAY,EAAG,QASjDN,EACE,CAAW,IAAVF,EAAcO,EAAWV,EAAM,GAAc,IAAVG,EAAcO,EAAWV,EAAM,IACnEG,EACU,IAAVA,EAAc,EAAI,EACnB,EAMCS,MAAO,CAAEjC,IAAKF,GACdoC,UAAW,CACTlC,IAAK,CACHC,UAAWoB,IAGJ,aAAA,yBAEb"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pautena/react-design-system/date-range-calendar",
3
3
  "private": true,
4
- "main": "../cjs/index.js",
4
+ "main": "./cjs/index.js",
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),a=require("react"),r=require("date-fns"),t=require("@mui/material/Collapse"),i=require("@mui/material/IconButton"),s=require("@mui/material/InputAdornment"),l=require("@mui/material/TextField"),u=require("@mui/material/Paper"),d=require("@mui/icons-material/Event"),n=require("@mui/material/Box"),o=require("@mui/material/styles"),m=require("@mui/x-date-pickers"),c=require("date-fns/esm");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=f(t),p=f(i),x=f(s),h=f(l),g=f(u),j=f(d),b=f(n);const D=o.styled(b.default,{shouldForwardProp:e=>"dayIsBetween"!==e&&"isFirstDay"!==e&&"isLastDay"!==e&&"isStartOfWeek"!==e&&"isEndOfWeek"!==e})((({theme:e,dayIsBetween:a,isFirstDay:r,isLastDay:t})=>({...(r||t||a)&&{borderRadius:0,backgroundColor:`${e.palette.primary.light}40`,margin:0},...r&&{borderTopLeftRadius:"50%",borderBottomLeftRadius:"50%"},...t&&{borderTopRightRadius:"50%",borderBottomRightRadius:"50%"}}))),q=a=>{const{day:t,dateRange:i,...s}=a;if(null==i)return e.jsx(m.PickersDay,{day:t,...s});const[l,u]=i,d=!!u&&r.isAfter(t,l)&&c.isBefore(t,u),n=r.isSameDay(t,l),o=!!u&&r.isSameDay(t,u),f=r.isSameDay(t,r.startOfWeek(t)),y=r.isSameDay(t,r.endOfWeek(t));return e.jsx(D,{dayIsBetween:d,isFirstDay:n||d&&f,isLastDay:o||d&&y,"aria-label":r.format(t,"yyyy-MM-dd"),"aria-selected":d||n||o,role:"gridcell",children:e.jsx(m.PickersDay,{...s,day:t,selected:n||o})})},k=({defaultValue:r,onValueChange:t})=>{const[i,s]=a.useState(r),[l,u]=a.useState(0),d=(e,a,r)=>{s(e),t(e,a),u(r)};return e.jsx(m.DateCalendar,{value:null,onChange:e=>{if(e)return 1===l&&e<i[0]||0===l&&i[1]&&e>i[1]?d([e,void 0],0,1):void d([0===l?e:i[0],1===l?e:i[1]],l,0===l?1:0)},slots:{day:q},slotProps:{day:{dateRange:i}},"aria-label":"calendar range picker"})};exports.DateRangePicker=({defaultValue:t,format:i,label:s,fullWidth:l,onValueChange:u,size:d="medium"})=>{const[n,o]=a.useState(!1),[m,c]=a.useState(t);return e.jsxs(e.Fragment,{children:[e.jsx(h.default,{label:s,fullWidth:l,size:d,value:`${r.format(m[0],i)} - ${m[1]?r.format(m[1],i):i.toUpperCase()}`,InputProps:{endAdornment:e.jsx(x.default,{position:"end",children:e.jsx(p.default,{onClick:()=>o((e=>!e)),"aria-label":"open calendar",children:e.jsx(j.default,{})})})}}),e.jsx(g.default,{children:e.jsx(y.default,{in:n,"aria-label":"calendar collapse",children:e.jsx(k,{defaultValue:t,onValueChange:(e,a)=>{c(e),u(e,a),o(a<1)}})})})]})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/date-range-calendar/date-range-calendar.tsx","../../../src/date-range-picker/date-range-picker.tsx"],"sourcesContent":["import Box, { BoxProps } from \"@mui/material/Box\";\nimport { styled } from \"@mui/material/styles\";\nimport { DateCalendar, PickersDay, PickersDayProps } from \"@mui/x-date-pickers\";\nimport { endOfWeek, format, isAfter, isSameDay, startOfWeek } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport { useState } from \"react\";\n\ntype DateRange = [Date, Date | undefined];\n\ninterface CustomPickerDayProps extends BoxProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n}\n\nconst CustomPickersDayBackground = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isStartOfWeek\" &&\n prop !== \"isEndOfWeek\",\n})<CustomPickerDayProps>(({ theme, dayIsBetween, isFirstDay, isLastDay }) => {\n return {\n ...((isFirstDay || isLastDay || dayIsBetween) && {\n borderRadius: 0,\n backgroundColor: `${theme.palette.primary.light}40`,\n margin: 0,\n }),\n ...(isFirstDay && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n ...(isLastDay && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n };\n}) as React.ComponentType<CustomPickerDayProps>;\n\nconst Day = (props: PickersDayProps<Date> & { dateRange?: DateRange | null }) => {\n const { day, dateRange, ...other } = props;\n\n if (dateRange == null) {\n return <PickersDay day={day} {...other} />;\n }\n\n const [start, end] = dateRange;\n\n const dayIsBetween = !!end && isAfter(day, start) && isBefore(day, end);\n const isFirstDay = isSameDay(day, start);\n const isLastDay = !!end && isSameDay(day, end);\n const isStartOfWeek = isSameDay(day, startOfWeek(day));\n const isEndOfWeek = isSameDay(day, endOfWeek(day));\n\n return (\n <CustomPickersDayBackground\n dayIsBetween={dayIsBetween}\n isFirstDay={isFirstDay || (dayIsBetween && isStartOfWeek)}\n isLastDay={isLastDay || (dayIsBetween && isEndOfWeek)}\n aria-label={format(day, \"yyyy-MM-dd\")}\n aria-selected={dayIsBetween || isFirstDay || isLastDay}\n role=\"gridcell\"\n >\n <PickersDay {...other} day={day} selected={isFirstDay || isLastDay} />\n </CustomPickersDayBackground>\n );\n};\n\nexport interface DateRangeCalendarProps {\n defaultValue: DateRange;\n onValueChange: (value: DateRange, updatedIndex: number) => void;\n}\nexport const DateRangeCalendar = ({ defaultValue, onValueChange }: DateRangeCalendarProps) => {\n const [value, setValue] = useState(defaultValue);\n const [index, setIndex] = useState(0);\n\n const setValueRange = (newRange: DateRange, index: number, newIndex: number) => {\n setValue(newRange);\n onValueChange(newRange, index);\n setIndex(newIndex);\n };\n\n const handleChange = (newValue: Date | null) => {\n if (!newValue) {\n return;\n }\n\n // If is the end date and is minor than the start date\n if (index === 1 && newValue < value[0]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // If is the start date and is bigger than the end date\n if (index === 0 && value[1] && newValue > value[1]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // Default case\n setValueRange(\n [index === 0 ? newValue : value[0], index === 1 ? newValue : value[1]],\n index,\n index === 0 ? 1 : 0,\n );\n };\n return (\n <DateCalendar\n value={null}\n onChange={handleChange}\n slots={{ day: Day }}\n slotProps={{\n day: {\n dateRange: value,\n } as any,\n }}\n aria-label=\"calendar range picker\"\n />\n );\n};\n","import { useState } from \"react\";\nimport { format } from \"date-fns\";\nimport Collapse from \"@mui/material/Collapse\";\nimport IconButton from \"@mui/material/IconButton\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport Paper from \"@mui/material/Paper\";\nimport EventIcon from \"@mui/icons-material/Event\";\nimport { DateRangeCalendar } from \"~/date-range-calendar\";\n\ntype DateRange = [Date, Date | undefined];\nexport interface DateRangePickerProps {\n label: string;\n defaultValue: DateRange;\n format: string;\n fullWidth?: boolean;\n size?: \"small\" | \"medium\";\n onValueChange: (value: DateRange, index: number) => void;\n}\n\nexport const DateRangePicker = ({\n defaultValue,\n format: fmt,\n label,\n fullWidth,\n onValueChange,\n size = \"medium\",\n}: DateRangePickerProps) => {\n const [isPopoverOpened, setIsPopoverOpened] = useState(false);\n const [value, setValue] = useState(defaultValue);\n\n const handleValueChange = (newValue: DateRange, index: number) => {\n setValue(newValue);\n onValueChange(newValue, index);\n setIsPopoverOpened(index < 1);\n };\n\n return (\n <>\n <TextField\n label={label}\n fullWidth={fullWidth}\n size={size}\n value={`${format(value[0], fmt)} - ${value[1] ? format(value[1], fmt) : fmt.toUpperCase()}`}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton onClick={() => setIsPopoverOpened((o) => !o)} aria-label=\"open calendar\">\n <EventIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n <Paper>\n <Collapse in={isPopoverOpened} aria-label=\"calendar collapse\">\n <DateRangeCalendar defaultValue={defaultValue} onValueChange={handleValueChange} />\n </Collapse>\n </Paper>\n </>\n );\n};\n"],"names":["CustomPickersDayBackground","styled","Box","shouldForwardProp","prop","theme","dayIsBetween","isFirstDay","isLastDay","borderRadius","backgroundColor","palette","primary","light","margin","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Day","props","day","dateRange","other","_jsx","PickersDay","start","end","isAfter","isBefore","isSameDay","isStartOfWeek","startOfWeek","isEndOfWeek","endOfWeek","format","role","children","selected","DateRangeCalendar","defaultValue","onValueChange","value","setValue","useState","index","setIndex","setValueRange","newRange","newIndex","DateCalendar","onChange","newValue","undefined","slots","slotProps","fmt","label","fullWidth","size","isPopoverOpened","setIsPopoverOpened","_jsxs","_Fragment","TextField","toUpperCase","InputProps","endAdornment","jsx","InputAdornment","position","IconButton","onClick","o","EventIcon","Paper","Collapse","in"],"mappings":"0mBAeA,MAAMA,EAA6BC,EAAMA,OAACC,UAAK,CAC7CC,kBAAoBC,GACT,iBAATA,GACS,eAATA,GACS,cAATA,GACS,kBAATA,GACS,gBAATA,GAN+BH,EAOV,EAAGI,QAAOC,eAAcC,aAAYC,gBACpD,KACAD,GAAcC,GAAaF,IAAiB,CAC/CG,aAAc,EACdC,gBAAiB,GAAGL,EAAMM,QAAQC,QAAQC,UAC1CC,OAAQ,MAENP,GAAc,CAChBQ,oBAAqB,MACrBC,uBAAwB,UAEtBR,GAAa,CACfS,qBAAsB,MACtBC,wBAAyB,WAKzBC,EAAOC,IACX,MAAMC,IAAEA,EAAGC,UAAEA,KAAcC,GAAUH,EAErC,GAAiB,MAAbE,EACF,OAAOE,EAAAA,IAACC,EAAAA,WAAW,CAAAJ,IAAKA,KAASE,IAGnC,MAAOG,EAAOC,GAAOL,EAEfhB,IAAiBqB,GAAOC,UAAQP,EAAKK,IAAUG,EAAQA,SAACR,EAAKM,GAC7DpB,EAAauB,EAAAA,UAAUT,EAAKK,GAC5BlB,IAAcmB,GAAOG,EAAAA,UAAUT,EAAKM,GACpCI,EAAgBD,EAAAA,UAAUT,EAAKW,EAAAA,YAAYX,IAC3CY,EAAcH,EAAAA,UAAUT,EAAKa,EAAAA,UAAUb,IAE7C,OACEG,EAAAA,IAACxB,EAA0B,CACzBM,aAAcA,EACdC,WAAYA,GAAeD,GAAgByB,EAC3CvB,UAAWA,GAAcF,GAAgB2B,EAAY,aACzCE,EAAAA,OAAOd,EAAK,cAAa,gBACtBf,GAAgBC,GAAcC,EAC7C4B,KAAK,WAAUC,SAEfb,EAAAA,IAACC,EAAUA,WAAK,IAAAF,EAAOF,IAAKA,EAAKiB,SAAU/B,GAAcC,KAE3D,EAOS+B,EAAoB,EAAGC,eAAcC,oBAChD,MAAOC,EAAOC,GAAYC,EAAQA,SAACJ,IAC5BK,EAAOC,GAAYF,EAAQA,SAAC,GAE7BG,EAAgB,CAACC,EAAqBH,EAAeI,KACzDN,EAASK,GACTP,EAAcO,EAAUH,GACxBC,EAASG,EAAS,EAyBpB,OACEzB,MAAC0B,EAAAA,aAAY,CACXR,MAAO,KACPS,SAzBkBC,IACpB,GAAKA,EAKL,OAAc,IAAVP,GAAeO,EAAWV,EAAM,IAKtB,IAAVG,GAAeH,EAAM,IAAMU,EAAWV,EAAM,GAJvCK,EAAc,CAACK,OAAUC,GAAY,EAAG,QASjDN,EACE,CAAW,IAAVF,EAAcO,EAAWV,EAAM,GAAc,IAAVG,EAAcO,EAAWV,EAAM,IACnEG,EACU,IAAVA,EAAc,EAAI,EACnB,EAMCS,MAAO,CAAEjC,IAAKF,GACdoC,UAAW,CACTlC,IAAK,CACHC,UAAWoB,IAGJ,aAAA,yBAEb,0BCjG2B,EAC7BF,eACAL,OAAQqB,EACRC,QACAC,YACAjB,gBACAkB,OAAO,aAEP,MAAOC,EAAiBC,GAAsBjB,EAAQA,UAAC,IAChDF,EAAOC,GAAYC,EAAQA,SAACJ,GAQnC,OACEsB,EAAAA,KACEC,EAAAA,SAAA,CAAA1B,SAAA,CAAAb,EAAAA,IAACwC,EAAAA,QAAS,CACRP,MAAOA,EACPC,UAAWA,EACXC,KAAMA,EACNjB,MAAO,GAAGP,EAAMA,OAACO,EAAM,GAAIc,QAAUd,EAAM,GAAKP,EAAMA,OAACO,EAAM,GAAIc,GAAOA,EAAIS,gBAC5EC,WAAY,CACVC,aACE3C,EAAC4C,IAAAC,WAAeC,SAAS,MAAKjC,SAC5Bb,MAAC+C,EAAAA,QAAU,CAACC,QAAS,IAAMX,GAAoBY,IAAOA,IAAe,aAAA,yBACnEjD,EAAC4C,IAAAM,UAAY,CAAA,UAMvBlD,EAAAA,IAACmD,EAAK,QAAA,CAAAtC,SACJb,MAACoD,EAAAA,QAAS,CAAAC,GAAIjB,EAA4B,aAAA,oBACxCvB,SAAAb,EAAAA,IAACe,EAAiB,CAACC,aAAcA,EAAcC,cAzB7B,CAACW,EAAqBP,KAC9CF,EAASS,GACTX,EAAcW,EAAUP,GACxBgB,EAAmBhB,EAAQ,EAAE,UA0B7B"}
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@pautena/react-design-system/date-range-picker",
3
+ "private": true,
4
+ "main": "./cjs/index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "dependencies": {
8
+ "@mui/icons-material": "^5.11.16",
9
+ "@mui/material": "^5.13.6",
10
+ "@mui/x-date-pickers": "^6.9.0",
11
+ "date-fns": "^2.30.0",
12
+ "react": "^18.2.0"
13
+ }
14
+ }
@@ -1,2 +1,2 @@
1
- import e,{useState as a}from"react";import{isAfter as t,isSameDay as r,startOfWeek as l,endOfWeek as n,format as o}from"date-fns";import{styled as i,Box as d,TextField as s,InputAdornment as m,IconButton as u,Paper as c,Collapse as p}from"@mui/material";import f from"@mui/icons-material/Event";import{DateCalendar as y,PickersDay as g}from"@mui/x-date-pickers";import{isBefore as E}from"date-fns/esm";const b=i(d,{shouldForwardProp:e=>"dayIsBetween"!==e&&"isFirstDay"!==e&&"isLastDay"!==e&&"isStartOfWeek"!==e&&"isEndOfWeek"!==e})((({theme:e,dayIsBetween:a,isFirstDay:t,isLastDay:r})=>({...(t||r||a)&&{borderRadius:0,backgroundColor:`${e.palette.primary.light}40`,margin:0},...t&&{borderTopLeftRadius:"50%",borderBottomLeftRadius:"50%"},...r&&{borderTopRightRadius:"50%",borderBottomRightRadius:"50%"}}))),h=a=>{const{day:i,dateRange:d,...s}=a;if(null==d)return e.createElement(g,{day:i,...s});const[m,u]=d,c=!!u&&t(i,m)&&E(i,u),p=r(i,m),f=!!u&&r(i,u),y=r(i,l(i)),h=r(i,n(i));return e.createElement(b,{dayIsBetween:c,isFirstDay:p||c&&y,isLastDay:f||c&&h,"aria-label":o(i,"yyyy-MM-dd"),"aria-selected":c||p||f,role:"gridcell"},e.createElement(g,{...s,day:i,selected:p||f}))},R=({defaultValue:t,onValueChange:r})=>{const[l,n]=a(t),[o,i]=a(0),d=(e,a,t)=>{n(e),r(e,a),i(t)};return e.createElement(y,{value:null,onChange:e=>{if(e)return 1===o&&e<l[0]||0===o&&l[1]&&e>l[1]?d([e,void 0],0,1):void d([0===o?e:l[0],1===o?e:l[1]],o,0===o?1:0)},slots:{day:h},slotProps:{day:{dateRange:l}},"aria-label":"calendar range picker"})},C=({defaultValue:t,format:r,label:l,fullWidth:n,onValueChange:i,size:d="medium"})=>{const[y,g]=a(!1),[E,b]=a(t);return e.createElement(e.Fragment,null,e.createElement(s,{label:l,fullWidth:n,size:d,value:`${o(E[0],r)} - ${E[1]?o(E[1],r):r.toUpperCase()}`,InputProps:{endAdornment:e.createElement(m,{position:"end"},e.createElement(u,{onClick:()=>g((e=>!e)),"aria-label":"open calendar"},e.createElement(f,null)))}}),e.createElement(c,null,e.createElement(p,{in:y,"aria-label":"calendar collapse"},e.createElement(R,{defaultValue:t,onValueChange:(e,a)=>{b(e),i(e,a),g(a<1)}}))))};export{C as DateRangePicker};
1
+ import{jsx as e,jsxs as a,Fragment as r}from"react/jsx-runtime";import{useState as t}from"react";import{isAfter as i,isSameDay as o,startOfWeek as l,endOfWeek as n,format as m}from"date-fns";import d from"@mui/material/Collapse";import s from"@mui/material/IconButton";import u from"@mui/material/InputAdornment";import p from"@mui/material/TextField";import f from"@mui/material/Paper";import c from"@mui/icons-material/Event";import y from"@mui/material/Box";import{styled as h}from"@mui/material/styles";import{DateCalendar as g,PickersDay as b}from"@mui/x-date-pickers";import{isBefore as R}from"date-fns/esm";const C=h(y,{shouldForwardProp:e=>"dayIsBetween"!==e&&"isFirstDay"!==e&&"isLastDay"!==e&&"isStartOfWeek"!==e&&"isEndOfWeek"!==e})((({theme:e,dayIsBetween:a,isFirstDay:r,isLastDay:t})=>({...(r||t||a)&&{borderRadius:0,backgroundColor:`${e.palette.primary.light}40`,margin:0},...r&&{borderTopLeftRadius:"50%",borderBottomLeftRadius:"50%"},...t&&{borderTopRightRadius:"50%",borderBottomRightRadius:"50%"}}))),B=a=>{const{day:r,dateRange:t,...d}=a;if(null==t)return e(b,{day:r,...d});const[s,u]=t,p=!!u&&i(r,s)&&R(r,u),f=o(r,s),c=!!u&&o(r,u),y=o(r,l(r)),h=o(r,n(r));return e(C,{dayIsBetween:p,isFirstDay:f||p&&y,isLastDay:c||p&&h,"aria-label":m(r,"yyyy-MM-dd"),"aria-selected":p||f||c,role:"gridcell",children:e(b,{...d,day:r,selected:f||c})})},k=({defaultValue:a,onValueChange:r})=>{const[i,o]=t(a),[l,n]=t(0),m=(e,a,t)=>{o(e),r(e,a),n(t)};return e(g,{value:null,onChange:e=>{if(e)return 1===l&&e<i[0]||0===l&&i[1]&&e>i[1]?m([e,void 0],0,1):void m([0===l?e:i[0],1===l?e:i[1]],l,0===l?1:0)},slots:{day:B},slotProps:{day:{dateRange:i}},"aria-label":"calendar range picker"})},D=({defaultValue:i,format:o,label:l,fullWidth:n,onValueChange:y,size:h="medium"})=>{const[g,b]=t(!1),[R,C]=t(i);return a(r,{children:[e(p,{label:l,fullWidth:n,size:h,value:`${m(R[0],o)} - ${R[1]?m(R[1],o):o.toUpperCase()}`,InputProps:{endAdornment:e(u,{position:"end",children:e(s,{onClick:()=>b((e=>!e)),"aria-label":"open calendar",children:e(c,{})})})}}),e(f,{children:e(d,{in:g,"aria-label":"calendar collapse",children:e(k,{defaultValue:i,onValueChange:(e,a)=>{C(e),y(e,a),b(a<1)}})})})]})};export{D as DateRangePicker};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/date-range-calendar/date-range-calendar.tsx","../../src/date-range-picker/date-range-picker.tsx"],"sourcesContent":["import { Box, BoxProps, styled } from \"@mui/material\";\nimport { DateCalendar, PickersDay, PickersDayProps } from \"@mui/x-date-pickers\";\nimport { endOfWeek, format, isAfter, isSameDay, startOfWeek } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport React, { useState } from \"react\";\n\ntype DateRange = [Date, Date | undefined];\n\ninterface CustomPickerDayProps extends BoxProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n}\n\nconst CustomPickersDayBackground = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isStartOfWeek\" &&\n prop !== \"isEndOfWeek\",\n})<CustomPickerDayProps>(({ theme, dayIsBetween, isFirstDay, isLastDay }) => {\n return {\n ...((isFirstDay || isLastDay || dayIsBetween) && {\n borderRadius: 0,\n backgroundColor: `${theme.palette.primary.light}40`,\n margin: 0,\n }),\n ...(isFirstDay && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n ...(isLastDay && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n };\n}) as React.ComponentType<CustomPickerDayProps>;\n\nconst Day = (props: PickersDayProps<Date> & { dateRange?: DateRange | null }) => {\n const { day, dateRange, ...other } = props;\n\n if (dateRange == null) {\n return <PickersDay day={day} {...other} />;\n }\n\n const [start, end] = dateRange;\n\n const dayIsBetween = !!end && isAfter(day, start) && isBefore(day, end);\n const isFirstDay = isSameDay(day, start);\n const isLastDay = !!end && isSameDay(day, end);\n const isStartOfWeek = isSameDay(day, startOfWeek(day));\n const isEndOfWeek = isSameDay(day, endOfWeek(day));\n\n return (\n <CustomPickersDayBackground\n dayIsBetween={dayIsBetween}\n isFirstDay={isFirstDay || (dayIsBetween && isStartOfWeek)}\n isLastDay={isLastDay || (dayIsBetween && isEndOfWeek)}\n aria-label={format(day, \"yyyy-MM-dd\")}\n aria-selected={dayIsBetween || isFirstDay || isLastDay}\n role=\"gridcell\"\n >\n <PickersDay {...other} day={day} selected={isFirstDay || isLastDay} />\n </CustomPickersDayBackground>\n );\n};\n\nexport interface DateRangeCalendarProps {\n defaultValue: DateRange;\n onValueChange: (value: DateRange, updatedIndex: number) => void;\n}\nexport const DateRangeCalendar = ({ defaultValue, onValueChange }: DateRangeCalendarProps) => {\n const [value, setValue] = useState(defaultValue);\n const [index, setIndex] = useState(0);\n\n const setValueRange = (newRange: DateRange, index: number, newIndex: number) => {\n setValue(newRange);\n onValueChange(newRange, index);\n setIndex(newIndex);\n };\n\n const handleChange = (newValue: Date | null) => {\n if (!newValue) {\n return;\n }\n\n // If is the end date and is minor than the start date\n if (index === 1 && newValue < value[0]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // If is the start date and is bigger than the end date\n if (index === 0 && value[1] && newValue > value[1]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // Default case\n setValueRange(\n [index === 0 ? newValue : value[0], index === 1 ? newValue : value[1]],\n index,\n index === 0 ? 1 : 0,\n );\n };\n return (\n <DateCalendar\n value={null}\n onChange={handleChange}\n slots={{ day: Day }}\n slotProps={{\n day: {\n dateRange: value,\n } as any,\n }}\n aria-label=\"calendar range picker\"\n />\n );\n};\n","import React, { useState } from \"react\";\nimport { format } from \"date-fns\";\nimport {\n Box,\n Button,\n Collapse,\n Grid,\n IconButton,\n InputAdornment,\n Paper,\n TextField,\n} from \"@mui/material\";\nimport EventIcon from \"@mui/icons-material/Event\";\nimport { DateRangeCalendar } from \"../date-range-calendar\";\n\ntype DateRange = [Date, Date | undefined];\nexport interface DateRangePickerProps {\n label: string;\n defaultValue: DateRange;\n format: string;\n fullWidth?: boolean;\n size?: \"small\" | \"medium\";\n onValueChange: (value: DateRange, index: number) => void;\n}\n\nexport const DateRangePicker = ({\n defaultValue,\n format: fmt,\n label,\n fullWidth,\n onValueChange,\n size = \"medium\",\n}: DateRangePickerProps) => {\n const [isPopoverOpened, setIsPopoverOpened] = useState(false);\n const [value, setValue] = useState(defaultValue);\n\n const handleValueChange = (newValue: DateRange, index: number) => {\n setValue(newValue);\n onValueChange(newValue, index);\n setIsPopoverOpened(index < 1);\n };\n\n return (\n <>\n <TextField\n label={label}\n fullWidth={fullWidth}\n size={size}\n value={`${format(value[0], fmt)} - ${value[1] ? format(value[1], fmt) : fmt.toUpperCase()}`}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton onClick={() => setIsPopoverOpened((o) => !o)} aria-label=\"open calendar\">\n <EventIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n <Paper>\n <Collapse in={isPopoverOpened} aria-label=\"calendar collapse\">\n <DateRangeCalendar defaultValue={defaultValue} onValueChange={handleValueChange} />\n </Collapse>\n </Paper>\n </>\n );\n};\n"],"names":["CustomPickersDayBackground","styled","Box","shouldForwardProp","prop","theme","dayIsBetween","isFirstDay","isLastDay","borderRadius","backgroundColor","palette","primary","light","margin","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Day","props","day","dateRange","other","React","createElement","PickersDay","start","end","isAfter","isBefore","isSameDay","isStartOfWeek","startOfWeek","isEndOfWeek","endOfWeek","format","role","selected","DateRangeCalendar","defaultValue","onValueChange","value","setValue","useState","index","setIndex","setValueRange","newRange","newIndex","DateCalendar","onChange","newValue","undefined","slots","slotProps","DateRangePicker","fmt","label","fullWidth","size","isPopoverOpened","setIsPopoverOpened","Fragment","TextField","toUpperCase","InputProps","endAdornment","InputAdornment","position","IconButton","onClick","o","EventIcon","Paper","Collapse","in"],"mappings":"kZAcA,MAAMA,EAA6BC,EAAOC,EAAK,CAC7CC,kBAAoBC,GACT,iBAATA,GACS,eAATA,GACS,cAATA,GACS,kBAATA,GACS,gBAATA,GAN+BH,EAOV,EAAGI,QAAOC,eAAcC,aAAYC,gBACpD,KACAD,GAAcC,GAAaF,IAAiB,CAC/CG,aAAc,EACdC,gBAAiB,GAAGL,EAAMM,QAAQC,QAAQC,UAC1CC,OAAQ,MAENP,GAAc,CAChBQ,oBAAqB,MACrBC,uBAAwB,UAEtBR,GAAa,CACfS,qBAAsB,MACtBC,wBAAyB,WAKzBC,EAAOC,IACX,MAAMC,IAAEA,EAAGC,UAAEA,KAAcC,GAAUH,EAErC,GAAiB,MAAbE,EACF,OAAOE,EAAAC,cAACC,EAAW,CAAAL,IAAKA,KAASE,IAGnC,MAAOI,EAAOC,GAAON,EAEfhB,IAAiBsB,GAAOC,EAAQR,EAAKM,IAAUG,EAAST,EAAKO,GAC7DrB,EAAawB,EAAUV,EAAKM,GAC5BnB,IAAcoB,GAAOG,EAAUV,EAAKO,GACpCI,EAAgBD,EAAUV,EAAKY,EAAYZ,IAC3Ca,EAAcH,EAAUV,EAAKc,EAAUd,IAE7C,OACEG,EAACC,cAAAzB,GACCM,aAAcA,EACdC,WAAYA,GAAeD,GAAgB0B,EAC3CxB,UAAWA,GAAcF,GAAgB4B,eAC7BE,EAAOf,EAAK,cACT,gBAAAf,GAAgBC,GAAcC,EAC7C6B,KAAK,YAELb,EAAAC,cAACC,EAAe,IAAAH,EAAOF,IAAKA,EAAKiB,SAAU/B,GAAcC,IAE3D,EAOS+B,EAAoB,EAAGC,eAAcC,oBAChD,MAAOC,EAAOC,GAAYC,EAASJ,IAC5BK,EAAOC,GAAYF,EAAS,GAE7BG,EAAgB,CAACC,EAAqBH,EAAeI,KACzDN,EAASK,GACTP,EAAcO,EAAUH,GACxBC,EAASG,EAAS,EAyBpB,OACEzB,gBAAC0B,EAAY,CACXR,MAAO,KACPS,SAzBkBC,IACpB,GAAKA,EAKL,OAAc,IAAVP,GAAeO,EAAWV,EAAM,IAKtB,IAAVG,GAAeH,EAAM,IAAMU,EAAWV,EAAM,GAJvCK,EAAc,CAACK,OAAUC,GAAY,EAAG,QASjDN,EACE,CAAW,IAAVF,EAAcO,EAAWV,EAAM,GAAc,IAAVG,EAAcO,EAAWV,EAAM,IACnEG,EACU,IAAVA,EAAc,EAAI,EACnB,EAMCS,MAAO,CAAEjC,IAAKF,GACdoC,UAAW,CACTlC,IAAK,CACHC,UAAWoB,IAGJ,aAAA,yBAEb,EC3FSc,EAAkB,EAC7BhB,eACAJ,OAAQqB,EACRC,QACAC,YACAlB,gBACAmB,OAAO,aAEP,MAAOC,EAAiBC,GAAsBlB,GAAS,IAChDF,EAAOC,GAAYC,EAASJ,GAQnC,OACEhB,EAAAC,cAAAD,EAAAuC,SAAA,KACEvC,EAACC,cAAAuC,EACC,CAAAN,MAAOA,EACPC,UAAWA,EACXC,KAAMA,EACNlB,MAAO,GAAGN,EAAOM,EAAM,GAAIe,QAAUf,EAAM,GAAKN,EAAOM,EAAM,GAAIe,GAAOA,EAAIQ,gBAC5EC,WAAY,CACVC,aACE3C,EAAAC,cAAC2C,EAAe,CAAAC,SAAS,OACvB7C,EAAAC,cAAC6C,EAAW,CAAAC,QAAS,IAAMT,GAAoBU,IAAOA,iBAAe,iBACnEhD,EAAAC,cAACgD,EAAS,WAMpBjD,EAAAC,cAACiD,EAAK,KACJlD,EAAAC,cAACkD,EAAS,CAAAC,GAAIf,eAA4B,qBACxCrC,EAAAC,cAACc,EAAiB,CAACC,aAAcA,EAAcC,cAzB7B,CAACW,EAAqBP,KAC9CF,EAASS,GACTX,EAAcW,EAAUP,GACxBiB,EAAmBjB,EAAQ,EAAE,MA0B7B"}
1
+ {"version":3,"file":"index.js","sources":["../../src/date-range-calendar/date-range-calendar.tsx","../../src/date-range-picker/date-range-picker.tsx"],"sourcesContent":["import Box, { BoxProps } from \"@mui/material/Box\";\nimport { styled } from \"@mui/material/styles\";\nimport { DateCalendar, PickersDay, PickersDayProps } from \"@mui/x-date-pickers\";\nimport { endOfWeek, format, isAfter, isSameDay, startOfWeek } from \"date-fns\";\nimport { isBefore } from \"date-fns/esm\";\nimport { useState } from \"react\";\n\ntype DateRange = [Date, Date | undefined];\n\ninterface CustomPickerDayProps extends BoxProps {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n}\n\nconst CustomPickersDayBackground = styled(Box, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" &&\n prop !== \"isFirstDay\" &&\n prop !== \"isLastDay\" &&\n prop !== \"isStartOfWeek\" &&\n prop !== \"isEndOfWeek\",\n})<CustomPickerDayProps>(({ theme, dayIsBetween, isFirstDay, isLastDay }) => {\n return {\n ...((isFirstDay || isLastDay || dayIsBetween) && {\n borderRadius: 0,\n backgroundColor: `${theme.palette.primary.light}40`,\n margin: 0,\n }),\n ...(isFirstDay && {\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n }),\n ...(isLastDay && {\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n };\n}) as React.ComponentType<CustomPickerDayProps>;\n\nconst Day = (props: PickersDayProps<Date> & { dateRange?: DateRange | null }) => {\n const { day, dateRange, ...other } = props;\n\n if (dateRange == null) {\n return <PickersDay day={day} {...other} />;\n }\n\n const [start, end] = dateRange;\n\n const dayIsBetween = !!end && isAfter(day, start) && isBefore(day, end);\n const isFirstDay = isSameDay(day, start);\n const isLastDay = !!end && isSameDay(day, end);\n const isStartOfWeek = isSameDay(day, startOfWeek(day));\n const isEndOfWeek = isSameDay(day, endOfWeek(day));\n\n return (\n <CustomPickersDayBackground\n dayIsBetween={dayIsBetween}\n isFirstDay={isFirstDay || (dayIsBetween && isStartOfWeek)}\n isLastDay={isLastDay || (dayIsBetween && isEndOfWeek)}\n aria-label={format(day, \"yyyy-MM-dd\")}\n aria-selected={dayIsBetween || isFirstDay || isLastDay}\n role=\"gridcell\"\n >\n <PickersDay {...other} day={day} selected={isFirstDay || isLastDay} />\n </CustomPickersDayBackground>\n );\n};\n\nexport interface DateRangeCalendarProps {\n defaultValue: DateRange;\n onValueChange: (value: DateRange, updatedIndex: number) => void;\n}\nexport const DateRangeCalendar = ({ defaultValue, onValueChange }: DateRangeCalendarProps) => {\n const [value, setValue] = useState(defaultValue);\n const [index, setIndex] = useState(0);\n\n const setValueRange = (newRange: DateRange, index: number, newIndex: number) => {\n setValue(newRange);\n onValueChange(newRange, index);\n setIndex(newIndex);\n };\n\n const handleChange = (newValue: Date | null) => {\n if (!newValue) {\n return;\n }\n\n // If is the end date and is minor than the start date\n if (index === 1 && newValue < value[0]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // If is the start date and is bigger than the end date\n if (index === 0 && value[1] && newValue > value[1]) {\n return setValueRange([newValue, undefined], 0, 1);\n }\n\n // Default case\n setValueRange(\n [index === 0 ? newValue : value[0], index === 1 ? newValue : value[1]],\n index,\n index === 0 ? 1 : 0,\n );\n };\n return (\n <DateCalendar\n value={null}\n onChange={handleChange}\n slots={{ day: Day }}\n slotProps={{\n day: {\n dateRange: value,\n } as any,\n }}\n aria-label=\"calendar range picker\"\n />\n );\n};\n","import { useState } from \"react\";\nimport { format } from \"date-fns\";\nimport Collapse from \"@mui/material/Collapse\";\nimport IconButton from \"@mui/material/IconButton\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport Paper from \"@mui/material/Paper\";\nimport EventIcon from \"@mui/icons-material/Event\";\nimport { DateRangeCalendar } from \"~/date-range-calendar\";\n\ntype DateRange = [Date, Date | undefined];\nexport interface DateRangePickerProps {\n label: string;\n defaultValue: DateRange;\n format: string;\n fullWidth?: boolean;\n size?: \"small\" | \"medium\";\n onValueChange: (value: DateRange, index: number) => void;\n}\n\nexport const DateRangePicker = ({\n defaultValue,\n format: fmt,\n label,\n fullWidth,\n onValueChange,\n size = \"medium\",\n}: DateRangePickerProps) => {\n const [isPopoverOpened, setIsPopoverOpened] = useState(false);\n const [value, setValue] = useState(defaultValue);\n\n const handleValueChange = (newValue: DateRange, index: number) => {\n setValue(newValue);\n onValueChange(newValue, index);\n setIsPopoverOpened(index < 1);\n };\n\n return (\n <>\n <TextField\n label={label}\n fullWidth={fullWidth}\n size={size}\n value={`${format(value[0], fmt)} - ${value[1] ? format(value[1], fmt) : fmt.toUpperCase()}`}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton onClick={() => setIsPopoverOpened((o) => !o)} aria-label=\"open calendar\">\n <EventIcon />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n <Paper>\n <Collapse in={isPopoverOpened} aria-label=\"calendar collapse\">\n <DateRangeCalendar defaultValue={defaultValue} onValueChange={handleValueChange} />\n </Collapse>\n </Paper>\n </>\n );\n};\n"],"names":["CustomPickersDayBackground","styled","Box","shouldForwardProp","prop","theme","dayIsBetween","isFirstDay","isLastDay","borderRadius","backgroundColor","palette","primary","light","margin","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Day","props","day","dateRange","other","_jsx","PickersDay","start","end","isAfter","isBefore","isSameDay","isStartOfWeek","startOfWeek","isEndOfWeek","endOfWeek","format","role","children","selected","DateRangeCalendar","defaultValue","onValueChange","value","setValue","useState","index","setIndex","setValueRange","newRange","newIndex","DateCalendar","onChange","newValue","undefined","slots","slotProps","DateRangePicker","fmt","label","fullWidth","size","isPopoverOpened","setIsPopoverOpened","_jsxs","_Fragment","TextField","toUpperCase","InputProps","endAdornment","InputAdornment","position","IconButton","onClick","o","EventIcon","Paper","Collapse","in"],"mappings":"smBAeA,MAAMA,EAA6BC,EAAOC,EAAK,CAC7CC,kBAAoBC,GACT,iBAATA,GACS,eAATA,GACS,cAATA,GACS,kBAATA,GACS,gBAATA,GAN+BH,EAOV,EAAGI,QAAOC,eAAcC,aAAYC,gBACpD,KACAD,GAAcC,GAAaF,IAAiB,CAC/CG,aAAc,EACdC,gBAAiB,GAAGL,EAAMM,QAAQC,QAAQC,UAC1CC,OAAQ,MAENP,GAAc,CAChBQ,oBAAqB,MACrBC,uBAAwB,UAEtBR,GAAa,CACfS,qBAAsB,MACtBC,wBAAyB,WAKzBC,EAAOC,IACX,MAAMC,IAAEA,EAAGC,UAAEA,KAAcC,GAAUH,EAErC,GAAiB,MAAbE,EACF,OAAOE,EAACC,EAAW,CAAAJ,IAAKA,KAASE,IAGnC,MAAOG,EAAOC,GAAOL,EAEfhB,IAAiBqB,GAAOC,EAAQP,EAAKK,IAAUG,EAASR,EAAKM,GAC7DpB,EAAauB,EAAUT,EAAKK,GAC5BlB,IAAcmB,GAAOG,EAAUT,EAAKM,GACpCI,EAAgBD,EAAUT,EAAKW,EAAYX,IAC3CY,EAAcH,EAAUT,EAAKa,EAAUb,IAE7C,OACEG,EAACxB,EAA0B,CACzBM,aAAcA,EACdC,WAAYA,GAAeD,GAAgByB,EAC3CvB,UAAWA,GAAcF,GAAgB2B,EAAY,aACzCE,EAAOd,EAAK,cAAa,gBACtBf,GAAgBC,GAAcC,EAC7C4B,KAAK,WAAUC,SAEfb,EAACC,EAAe,IAAAF,EAAOF,IAAKA,EAAKiB,SAAU/B,GAAcC,KAE3D,EAOS+B,EAAoB,EAAGC,eAAcC,oBAChD,MAAOC,EAAOC,GAAYC,EAASJ,IAC5BK,EAAOC,GAAYF,EAAS,GAE7BG,EAAgB,CAACC,EAAqBH,EAAeI,KACzDN,EAASK,GACTP,EAAcO,EAAUH,GACxBC,EAASG,EAAS,EAyBpB,OACEzB,EAAC0B,EAAY,CACXR,MAAO,KACPS,SAzBkBC,IACpB,GAAKA,EAKL,OAAc,IAAVP,GAAeO,EAAWV,EAAM,IAKtB,IAAVG,GAAeH,EAAM,IAAMU,EAAWV,EAAM,GAJvCK,EAAc,CAACK,OAAUC,GAAY,EAAG,QASjDN,EACE,CAAW,IAAVF,EAAcO,EAAWV,EAAM,GAAc,IAAVG,EAAcO,EAAWV,EAAM,IACnEG,EACU,IAAVA,EAAc,EAAI,EACnB,EAMCS,MAAO,CAAEjC,IAAKF,GACdoC,UAAW,CACTlC,IAAK,CACHC,UAAWoB,IAGJ,aAAA,yBAEb,ECjGSc,EAAkB,EAC7BhB,eACAL,OAAQsB,EACRC,QACAC,YACAlB,gBACAmB,OAAO,aAEP,MAAOC,EAAiBC,GAAsBlB,GAAS,IAChDF,EAAOC,GAAYC,EAASJ,GAQnC,OACEuB,EACEC,EAAA,CAAA3B,SAAA,CAAAb,EAACyC,EAAS,CACRP,MAAOA,EACPC,UAAWA,EACXC,KAAMA,EACNlB,MAAO,GAAGP,EAAOO,EAAM,GAAIe,QAAUf,EAAM,GAAKP,EAAOO,EAAM,GAAIe,GAAOA,EAAIS,gBAC5EC,WAAY,CACVC,aACE5C,EAAC6C,GAAeC,SAAS,MAAKjC,SAC5Bb,EAAC+C,EAAU,CAACC,QAAS,IAAMV,GAAoBW,IAAOA,IAAe,aAAA,yBACnEjD,EAACkD,EAAY,CAAA,UAMvBlD,EAACmD,EAAK,CAAAtC,SACJb,EAACoD,EAAS,CAAAC,GAAIhB,EAA4B,aAAA,oBACxCxB,SAAAb,EAACe,EAAiB,CAACC,aAAcA,EAAcC,cAzB7B,CAACW,EAAqBP,KAC9CF,EAASS,GACTX,EAAcW,EAAUP,GACxBiB,EAAmBjB,EAAQ,EAAE,UA0B7B"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pautena/react-design-system/date-range-picker",
3
3
  "private": true,
4
- "main": "../cjs/index.js",
4
+ "main": "./cjs/index.js",
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");exports.useDialog=(s=!1)=>{const[t,r]=e.useState(s);return{isOpen:t,open:()=>r(!0),close:()=>r(!1),setIsOpen:r}};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/dialog/use-dialog.ts"],"sourcesContent":["import { useState } from \"react\";\n\nexport const useDialog = (intialOpen = false) => {\n const [isOpen, setIsOpen] = useState(intialOpen);\n\n const open = () => setIsOpen(true);\n const close = () => setIsOpen(false);\n\n return { isOpen, open, close, setIsOpen };\n};\n"],"names":["intialOpen","isOpen","setIsOpen","useState","open","close"],"mappings":"6GAEyB,CAACA,GAAa,KACrC,MAAOC,EAAQC,GAAaC,EAAQA,SAACH,GAKrC,MAAO,CAAEC,SAAQG,KAHJ,IAAMF,GAAU,GAGNG,MAFT,IAAMH,GAAU,GAEAA,YAAW"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "@pautena/react-design-system/dialog",
3
+ "private": true,
4
+ "main": "./cjs/index.js",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "dependencies": {
8
+ "react": "^18.2.0"
9
+ }
10
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pautena/react-design-system/dialog",
3
3
  "private": true,
4
- "main": "../cjs/index.js",
4
+ "main": "./cjs/index.js",
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@mui/material/styles"),t=require("@mui/material/Drawer"),i=require("@mui/material/Paper"),n=require("@mui/material/Divider"),a=require("@mui/material/IconButton"),s=require("@mui/icons-material/ChevronLeft"),o=require("react");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(t),l=d(n),u=d(a),c=d(s);const m=o.createContext(void 0),h=new Error("DrawerContext.Provider is required and was undefined"),x=e=>({width:240,transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.enteringScreen}),overflowX:"hidden"}),w=e=>({transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.leavingScreen}),overflowX:"hidden",width:`calc(${e.spacing(7)} + 1px)`,[e.breakpoints.up("sm")]:{width:`calc(${e.spacing(8)} + 1px)`}}),f=r.styled("div")((({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"flex-end",padding:e.spacing(0,1),...e.mixins.toolbar}))),g={temporary:!0,mini:!0,persistent:!0,clipped:!1},v={temporary:"temporary",mini:"permanent",clipped:"permanent",persistent:"persistent"},y=()=>({}),C={mini:(e,r)=>({boxSizing:"border-box",[`& .${i.paperClasses.root}`]:{zIndex:r.zIndex.drawer-1}}),temporary:y,clipped:y,persistent:y};exports.Drawer=({children:i,...n})=>{const a=r.useTheme(),{state:s,switchState:d,underAppBar:y,close:j,drawerWidth:q,variant:b}=(()=>{const e=o.useContext(m);if(void 0===e)throw h;return e})(),D={width:q,flexShrink:0,whiteSpace:"nowrap",..."open"===s&&{...x(a),[`& .${t.drawerClasses.paper}`]:x(a)},..."open"!==s&&{...w(a),[`& .${t.drawerClasses.paper}`]:w(a)},...C[b](s,a)};return e.jsxs(p.default,{open:"open"===s,variant:v[b],role:"menu","aria-hidden":"close"===s,onClose:j,sx:D,...n,children:[e.jsx(f,{children:!y&&g[b]&&e.jsx(u.default,{onClick:d,children:e.jsx(c.default,{})})}),e.jsx(l.default,{}),i]})},exports.DrawerHeader=f,exports.getDrawerItemColors=(e,r)=>({color:r?e.palette.primary.main:void 0,fontWeight:r?e.typography.fontWeightBold:e.typography.fontWeightMedium});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/drawer-provider/drawer-context.ts","../../../src/drawer-provider/drawer-mixins.ts","../../../src/drawer/drawer.tsx","../../../src/drawer/drawer.types.ts"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"~/drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { Theme, CSSObject } from \"@mui/material/styles\";\n\nexport const drawerWidth = 240;\n\nexport const openedMixin = (theme: Theme): CSSObject => ({\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: \"hidden\",\n});\n\nexport const closedMixin = (theme: Theme): CSSObject => ({\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: `calc(${theme.spacing(7)} + 1px)`,\n [theme.breakpoints.up(\"sm\")]: {\n width: `calc(${theme.spacing(8)} + 1px)`,\n },\n});\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"~/drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"~/drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"~/bullet\";\nimport { LabelVariant } from \"~/label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"~/drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","openedMixin","theme","width","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","spacing","breakpoints","up","DrawerHeader","styled","display","alignItems","justifyContent","padding","mixins","toolbar","showCloseButton","temporary","mini","persistent","clipped","muiDrawerVariant","NoopSxGenerator","variantsSx","state","boxSizing","paperClasses","root","zIndex","drawer","children","rest","useTheme","switchState","underAppBar","close","drawerWidth","variant","context","useContext","useDrawer","sx","flexShrink","whiteSpace","drawerClasses","paper","_jsxs","MuiDrawer","open","role","onClose","_jsx","IconButton","onClick","ChevronLeftIcon","Divider","selected","color","palette","primary","main","fontWeight","typography","fontWeightBold","fontWeightMedium"],"mappings":"6bAgBO,MAAMA,EAAgBC,EAAAA,mBAA8CC,GAC9DC,EAAoB,IAAIC,MAAM,wDCb9BC,EAAeC,IAA6B,CACvDC,MAHyB,IAIzBC,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASC,iBAEvCC,UAAW,WAGAC,EAAeV,IAA6B,CACvDE,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASI,gBAEvCF,UAAW,SACXR,MAAO,QAAQD,EAAMY,QAAQ,YAC7B,CAACZ,EAAMa,YAAYC,GAAG,OAAQ,CAC5Bb,MAAO,QAAQD,EAAMY,QAAQ,eCXpBG,EAAeC,EAAAA,OAAO,MAAPA,EAAc,EAAGhB,YAAa,CACxDiB,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASpB,EAAMY,QAAQ,EAAG,MACvBZ,EAAMqB,OAAOC,YAGZC,EAAkD,CACtDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAoF,CACxFJ,UAAW,YACXC,KAAM,YACNE,QAAS,YACTD,WAAY,cAIRG,EAAkB,KAAO,CAAE,GAC3BC,EAA2D,CAC/DL,KAAM,CAACM,EAAoB/B,KAAkB,CAC3CgC,UAAW,aACX,CAAC,MAAMC,eAAaC,QAAS,CAC3BC,OAAQnC,EAAMmC,OAAOC,OAAS,KAGlCZ,UAAWK,EACXF,QAASE,EACTH,WAAYG,kBAGyB,EAAGQ,cAAaC,MACrD,MAAMtC,EAAQuC,EAAAA,YACRR,MAAEA,EAAKS,YAAEA,EAAWC,YAAEA,EAAWC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GF7BtC,MACvB,MAAMC,EAAUC,aAAWpD,GAE3B,QAAgBE,IAAZiD,EACF,MAAMhD,EAGR,OAAOgD,CAAO,EEsB2DE,GAEnEC,EAAU,CACd/C,MAAO0C,EACPM,WAAY,EACZC,WAAY,YACE,SAAVnB,GAAoB,IACnBhC,EAAYC,GACf,CAAC,MAAMmD,EAAaA,cAACC,SAAUrD,EAAYC,OAE/B,SAAV+B,GAAoB,IACnBrB,EAAYV,GACf,CAAC,MAAMmD,EAAaA,cAACC,SAAU1C,EAAYV,OAE1C8B,EAAWc,GAASb,EAAO/B,IAGhC,OACEqD,OAACC,EAAAA,QAAS,CACRC,KAAgB,SAAVxB,EACNa,QAAShB,EAAiBgB,GAC1BY,KAAK,OACQ,cAAU,UAAVzB,EACb0B,QAASf,EACTM,GAAIA,KACAV,EAEJD,SAAA,CAAAqB,MAAC3C,EAAY,CAAAsB,UACTI,GAAelB,EAAgBqB,IAC/Bc,MAACC,EAAAA,SAAWC,QAASpB,EAAWH,SAC9BqB,EAAAA,IAACG,EAAe,QAAG,QAIzBH,EAAAA,IAACI,EAAO,QAAG,IACVzB,IAEH,qDCX+B,CAACrC,EAAc+D,KAAmC,CACnFC,MAAOD,EAAW/D,EAAMiE,QAAQC,QAAQC,UAAOvE,EAC/CwE,WAAYL,EAAW/D,EAAMqE,WAAWC,eAAiBtE,EAAMqE,WAAWE"}