@banzamel/mineralui 2.4.3 → 2.5.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 (545) hide show
  1. package/README.md +1 -1
  2. package/dist/MAvatar-CvQuiGvT.cjs +2 -0
  3. package/dist/MAvatar-CvQuiGvT.cjs.map +1 -0
  4. package/dist/MAvatar-EkOBrEtS.js +73 -0
  5. package/dist/MAvatar-EkOBrEtS.js.map +1 -0
  6. package/dist/MButton-BxEky3xQ.cjs +2 -0
  7. package/dist/MButton-BxEky3xQ.cjs.map +1 -0
  8. package/dist/MButton-KELyyBw1.js +123 -0
  9. package/dist/MButton-KELyyBw1.js.map +1 -0
  10. package/dist/{MButtonGroup-BEJxXZ8u.js → MButtonGroup-DDnn8Wfy.js} +3 -3
  11. package/dist/{MButtonGroup-BEJxXZ8u.js.map → MButtonGroup-DDnn8Wfy.js.map} +1 -1
  12. package/dist/{MButtonGroup-DO1Tq3Za.cjs → MButtonGroup-Dz8Fm-oA.cjs} +2 -2
  13. package/dist/{MButtonGroup-DO1Tq3Za.cjs.map → MButtonGroup-Dz8Fm-oA.cjs.map} +1 -1
  14. package/dist/{MCard-P8OoswWM.cjs → MCard-Bqm4BjK_.cjs} +2 -2
  15. package/dist/MCard-Bqm4BjK_.cjs.map +1 -0
  16. package/dist/{MCard-BqSkGAgf.js → MCard-CqZYGaS2.js} +4 -4
  17. package/dist/MCard-CqZYGaS2.js.map +1 -0
  18. package/dist/MCheckbox-CaWgyUn5.js +72 -0
  19. package/dist/MCheckbox-CaWgyUn5.js.map +1 -0
  20. package/dist/MCheckbox-DpKJpnFF.cjs +2 -0
  21. package/dist/MCheckbox-DpKJpnFF.cjs.map +1 -0
  22. package/dist/{MConflictIllustration-znC7ijmP.js → MConflictIllustration-dwZS44ye.js} +1517 -1515
  23. package/dist/MConflictIllustration-dwZS44ye.js.map +1 -0
  24. package/dist/MConflictIllustration-vfHs-jad.cjs +2 -0
  25. package/dist/MConflictIllustration-vfHs-jad.cjs.map +1 -0
  26. package/dist/MDetailList-C3othNs3.js +127 -0
  27. package/dist/MDetailList-C3othNs3.js.map +1 -0
  28. package/dist/MDetailList-DkDHLdJ8.cjs +2 -0
  29. package/dist/MDetailList-DkDHLdJ8.cjs.map +1 -0
  30. package/dist/MDropdownMenu-C4-r7UZM.cjs +2 -0
  31. package/dist/MDropdownMenu-C4-r7UZM.cjs.map +1 -0
  32. package/dist/MDropdownMenu-Dvg9UsHB.js +219 -0
  33. package/dist/MDropdownMenu-Dvg9UsHB.js.map +1 -0
  34. package/dist/MGrid-CQqT8nHi.js +271 -0
  35. package/dist/MGrid-CQqT8nHi.js.map +1 -0
  36. package/dist/MGrid-tBsqShLG.cjs +2 -0
  37. package/dist/MGrid-tBsqShLG.cjs.map +1 -0
  38. package/dist/MHeading-DQSQ8c7L.js +21 -0
  39. package/dist/MHeading-DQSQ8c7L.js.map +1 -0
  40. package/dist/MHeading-DiGYs1FJ.cjs +2 -0
  41. package/dist/MHeading-DiGYs1FJ.cjs.map +1 -0
  42. package/dist/MInput-BeEGufZG.cjs +2 -0
  43. package/dist/MInput-BeEGufZG.cjs.map +1 -0
  44. package/dist/MInput-QnQV9L8U.js +190 -0
  45. package/dist/MInput-QnQV9L8U.js.map +1 -0
  46. package/dist/MInputCVC-CCNRAqHw.cjs +2 -0
  47. package/dist/MInputCVC-CCNRAqHw.cjs.map +1 -0
  48. package/dist/MInputCVC-IXIYZwex.js +410 -0
  49. package/dist/MInputCVC-IXIYZwex.js.map +1 -0
  50. package/dist/MInputSearch-BSIc6m2P.cjs +2 -0
  51. package/dist/MInputSearch-BSIc6m2P.cjs.map +1 -0
  52. package/dist/MInputSearch-CNuTAbYs.js +44 -0
  53. package/dist/MInputSearch-CNuTAbYs.js.map +1 -0
  54. package/dist/{MKbd-BR1GX5oK.cjs → MKbd-CnW3NUIu.cjs} +2 -2
  55. package/dist/{MKbd-BR1GX5oK.cjs.map → MKbd-CnW3NUIu.cjs.map} +1 -1
  56. package/dist/{MKbd-COb7oh_k.js → MKbd-DjfGyajR.js} +2 -2
  57. package/dist/{MKbd-COb7oh_k.js.map → MKbd-DjfGyajR.js.map} +1 -1
  58. package/dist/MLink-C6uwA6db.cjs +2 -0
  59. package/dist/MLink-C6uwA6db.cjs.map +1 -0
  60. package/dist/MLink-ixg0xFFI.js +31 -0
  61. package/dist/MLink-ixg0xFFI.js.map +1 -0
  62. package/dist/MLoader-CViA3zBo.js +44 -0
  63. package/dist/MLoader-CViA3zBo.js.map +1 -0
  64. package/dist/MLoader-DUOoOoNE.cjs +2 -0
  65. package/dist/MLoader-DUOoOoNE.cjs.map +1 -0
  66. package/dist/MPagination-BTGenxWW.js +122 -0
  67. package/dist/MPagination-BTGenxWW.js.map +1 -0
  68. package/dist/MPagination-DitmdtCc.cjs +2 -0
  69. package/dist/MPagination-DitmdtCc.cjs.map +1 -0
  70. package/dist/MPopover-CBDbUOW6.js +183 -0
  71. package/dist/MPopover-CBDbUOW6.js.map +1 -0
  72. package/dist/MPopover-ZeoU9hb5.cjs +2 -0
  73. package/dist/MPopover-ZeoU9hb5.cjs.map +1 -0
  74. package/dist/{MSimpleGrid-Ui8cI0ho.js → MSimpleGrid-C_QvLmck.js} +3 -3
  75. package/dist/MSimpleGrid-C_QvLmck.js.map +1 -0
  76. package/dist/MSimpleGrid-wgvjnxwM.cjs +2 -0
  77. package/dist/MSimpleGrid-wgvjnxwM.cjs.map +1 -0
  78. package/dist/{MSkeleton-Dhu-loDO.js → MSkeleton-BpcpBBJq.js} +12 -10
  79. package/dist/MSkeleton-BpcpBBJq.js.map +1 -0
  80. package/dist/MSkeleton-DuAN8Vcv.cjs +2 -0
  81. package/dist/MSkeleton-DuAN8Vcv.cjs.map +1 -0
  82. package/dist/MSlider-CLASUc2H.js +134 -0
  83. package/dist/MSlider-CLASUc2H.js.map +1 -0
  84. package/dist/MSlider-hONQBulE.cjs +2 -0
  85. package/dist/MSlider-hONQBulE.cjs.map +1 -0
  86. package/dist/MStack-BwAFeGGg.js +39 -0
  87. package/dist/MStack-BwAFeGGg.js.map +1 -0
  88. package/dist/MStack-CGII4A-q.cjs +2 -0
  89. package/dist/MStack-CGII4A-q.cjs.map +1 -0
  90. package/dist/MSubText-BeZk-fhz.js +17 -0
  91. package/dist/MSubText-BeZk-fhz.js.map +1 -0
  92. package/dist/MSubText-Dl1PfToZ.cjs +2 -0
  93. package/dist/MSubText-Dl1PfToZ.cjs.map +1 -0
  94. package/dist/MSurface-B_QnRLr5.js +74 -0
  95. package/dist/MSurface-B_QnRLr5.js.map +1 -0
  96. package/dist/MSurface-BrFo-JMJ.cjs +2 -0
  97. package/dist/MSurface-BrFo-JMJ.cjs.map +1 -0
  98. package/dist/MTag-BZrKN_DS.js +41 -0
  99. package/dist/MTag-BZrKN_DS.js.map +1 -0
  100. package/dist/MTag-DCE1vRJM.cjs +2 -0
  101. package/dist/MTag-DCE1vRJM.cjs.map +1 -0
  102. package/dist/MText-BUWQPoBM.js +45 -0
  103. package/dist/MText-BUWQPoBM.js.map +1 -0
  104. package/dist/MText-nsvLFsSv.cjs +2 -0
  105. package/dist/MText-nsvLFsSv.cjs.map +1 -0
  106. package/dist/MTooltip-BRSPJ3RY.js +100 -0
  107. package/dist/MTooltip-BRSPJ3RY.js.map +1 -0
  108. package/dist/MTooltip-Cj2Fxmzc.cjs +2 -0
  109. package/dist/MTooltip-Cj2Fxmzc.cjs.map +1 -0
  110. package/dist/MTreeView-BWCTlsU-.cjs +2 -0
  111. package/dist/MTreeView-BWCTlsU-.cjs.map +1 -0
  112. package/dist/MTreeView-CWcMwE-Z.js +554 -0
  113. package/dist/MTreeView-CWcMwE-Z.js.map +1 -0
  114. package/dist/calendar-2yhnCkGW.cjs +2 -0
  115. package/dist/calendar-2yhnCkGW.cjs.map +1 -0
  116. package/dist/calendar-DcNYDTVb.js +195 -0
  117. package/dist/calendar-DcNYDTVb.js.map +1 -0
  118. package/dist/calendar.cjs +1 -1
  119. package/dist/calendar.js +1 -1
  120. package/dist/{calendarDates-M_Dawj0j.js → calendarDates-Bpw_G_QR.js} +30 -19
  121. package/dist/calendarDates-Bpw_G_QR.js.map +1 -0
  122. package/dist/calendarDates-Cg0nm69Y.cjs +2 -0
  123. package/dist/calendarDates-Cg0nm69Y.cjs.map +1 -0
  124. package/dist/cards-Bp886TRb.cjs +2 -0
  125. package/dist/cards-Bp886TRb.cjs.map +1 -0
  126. package/dist/cards-BvER6Gx0.js +1277 -0
  127. package/dist/cards-BvER6Gx0.js.map +1 -0
  128. package/dist/cards.cjs +1 -1
  129. package/dist/cards.js +2 -2
  130. package/dist/{cn-YER3QsV1.js → cn-CUSXNnjF.js} +1 -1
  131. package/dist/{cn-YER3QsV1.js.map → cn-CUSXNnjF.js.map} +1 -1
  132. package/dist/{cn-CU5TNITO.cjs → cn-DYFxgzi2.cjs} +1 -1
  133. package/dist/{cn-CU5TNITO.cjs.map → cn-DYFxgzi2.cjs.map} +1 -1
  134. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +1 -1
  135. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +1 -1
  136. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  137. package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
  138. package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +4 -0
  139. package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +1 -1
  140. package/dist/components/cards/MStatCard/MStatCard.d.ts +1 -1
  141. package/dist/components/controls/MCheckbox/MCheckbox.types.d.ts +6 -0
  142. package/dist/components/controls/MLoadMore/MLoadMore.d.ts +1 -1
  143. package/dist/components/controls/MSlider/MSlider.d.ts +1 -1
  144. package/dist/components/controls/MSlider/MSlider.types.d.ts +5 -0
  145. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  146. package/dist/components/data/MTreeView/MTreeView.types.d.ts +6 -0
  147. package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +1 -1
  148. package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -3
  149. package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +1 -1
  150. package/dist/components/dropdowns/MAutocomplete/MAutocomplete.d.ts +1 -1
  151. package/dist/components/dropdowns/MAutocomplete/MAutocomplete.types.d.ts +8 -2
  152. package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
  153. package/dist/components/dropdowns/shared/TimeColumnListbox.d.ts +20 -0
  154. package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
  155. package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
  156. package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
  157. package/dist/components/feedback/MLoader/MLoader.d.ts +1 -1
  158. package/dist/components/feedback/MSpinner/MSpinner.d.ts +1 -1
  159. package/dist/components/feedback/MTag/MTag.d.ts +1 -1
  160. package/dist/components/inputs/MInput/MInput.types.d.ts +6 -1
  161. package/dist/components/inputs/MInput/useFormatCaret.d.ts +8 -0
  162. package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +5 -0
  163. package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
  164. package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
  165. package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
  166. package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
  167. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  168. package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
  169. package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -0
  170. package/dist/components/layout/MSection/MSection.d.ts +1 -1
  171. package/dist/components/layout/MStack/MStack.d.ts +1 -1
  172. package/dist/components/layout/MStickyPanel/MStickyPanel.types.d.ts +4 -0
  173. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  174. package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
  175. package/dist/components/media/MAvatar/MAvatar.types.d.ts +10 -0
  176. package/dist/components/media/MCarousel/MCarousel.d.ts +1 -1
  177. package/dist/components/media/MImage/MImage.d.ts +1 -1
  178. package/dist/components/media/carouselA11y.d.ts +9 -0
  179. package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +1 -1
  180. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +4 -2
  181. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +3 -1
  182. package/dist/components/overlays/MPopconfirm/MPopconfirm.d.ts +1 -1
  183. package/dist/components/overlays/scrollLock.d.ts +14 -0
  184. package/dist/components/primitives/MPopover/MPopover.d.ts +1 -1
  185. package/dist/components/primitives/MPopover/MPopover.types.d.ts +32 -1
  186. package/dist/components/primitives/MPopover/popoverStack.d.ts +6 -0
  187. package/dist/components/typography/MHeading/MHeading.d.ts +2 -3
  188. package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
  189. package/dist/components/typography/MText/MText.d.ts +1 -1
  190. package/dist/controls-B4Dxaab4.js +491 -0
  191. package/dist/controls-B4Dxaab4.js.map +1 -0
  192. package/dist/controls-CyXEIOXD.cjs +2 -0
  193. package/dist/controls-CyXEIOXD.cjs.map +1 -0
  194. package/dist/controls.cjs +1 -1
  195. package/dist/controls.js +5 -5
  196. package/dist/creditCards-Bo2mrc53.cjs +2 -0
  197. package/dist/creditCards-Bo2mrc53.cjs.map +1 -0
  198. package/dist/{creditCards-D_iWmtG6.js → creditCards-DmDOyvcw.js} +20 -31
  199. package/dist/creditCards-DmDOyvcw.js.map +1 -0
  200. package/dist/data-BM3KG8oN.cjs +2 -0
  201. package/dist/data-BM3KG8oN.cjs.map +1 -0
  202. package/dist/data-qnR8OBmj.js +808 -0
  203. package/dist/data-qnR8OBmj.js.map +1 -0
  204. package/dist/data.cjs +1 -1
  205. package/dist/data.js +2 -2
  206. package/dist/{dateUtils-CUY6CRCf.js → dateUtils-B-ToNZq_.js} +5 -6
  207. package/dist/dateUtils-B-ToNZq_.js.map +1 -0
  208. package/dist/dateUtils-z2L7ZaxA.cjs +2 -0
  209. package/dist/dateUtils-z2L7ZaxA.cjs.map +1 -0
  210. package/dist/display-BLMOBofj.cjs +3 -0
  211. package/dist/display-BLMOBofj.cjs.map +1 -0
  212. package/dist/display-Dlb79lkA.js +968 -0
  213. package/dist/display-Dlb79lkA.js.map +1 -0
  214. package/dist/display.cjs +1 -1
  215. package/dist/display.js +2 -2
  216. package/dist/dropdowns-2_7VMEDo.js +2009 -0
  217. package/dist/dropdowns-2_7VMEDo.js.map +1 -0
  218. package/dist/dropdowns-DN7j8J-V.cjs +2 -0
  219. package/dist/dropdowns-DN7j8J-V.cjs.map +1 -0
  220. package/dist/dropdowns.cjs +1 -1
  221. package/dist/dropdowns.js +1 -1
  222. package/dist/feedback-CECayytY.js +335 -0
  223. package/dist/feedback-CECayytY.js.map +1 -0
  224. package/dist/feedback-paV8Ls-h.cjs +2 -0
  225. package/dist/feedback-paV8Ls-h.cjs.map +1 -0
  226. package/dist/feedback.cjs +1 -1
  227. package/dist/feedback.js +5 -5
  228. package/dist/form-Br56h5EF.cjs +2 -0
  229. package/dist/form-Br56h5EF.cjs.map +1 -0
  230. package/dist/form-CJmMZgsH.js +165 -0
  231. package/dist/form-CJmMZgsH.js.map +1 -0
  232. package/dist/form.cjs +1 -1
  233. package/dist/form.js +1 -1
  234. package/dist/{formatters-CNjg_h7-.cjs → formatters-CauWlsnM.cjs} +1 -1
  235. package/dist/{formatters-CNjg_h7-.cjs.map → formatters-CauWlsnM.cjs.map} +1 -1
  236. package/dist/{formatters-T0vvjMtB.js → formatters-Doqdu_w1.js} +1 -1
  237. package/dist/{formatters-T0vvjMtB.js.map → formatters-Doqdu_w1.js.map} +1 -1
  238. package/dist/frameworkTexts-CaqdiKHW.cjs +2 -0
  239. package/dist/frameworkTexts-CaqdiKHW.cjs.map +1 -0
  240. package/dist/frameworkTexts-o43FqY1A.js +505 -0
  241. package/dist/frameworkTexts-o43FqY1A.js.map +1 -0
  242. package/dist/i18n/MI18nProvider.d.ts +6 -1
  243. package/dist/i18n/frameworkTexts.d.ts +511 -0
  244. package/dist/i18n/index.d.ts +1 -0
  245. package/dist/i18n.cjs +1 -1
  246. package/dist/i18n.js +2 -2
  247. package/dist/icons-Bp8bB9TP.cjs +2 -0
  248. package/dist/icons-Bp8bB9TP.cjs.map +1 -0
  249. package/dist/{icons-CBMl-kOM.js → icons-IqEBmGh3.js} +1223 -1220
  250. package/dist/icons-IqEBmGh3.js.map +1 -0
  251. package/dist/icons.cjs +1 -1
  252. package/dist/icons.js +1 -1
  253. package/dist/illustrations.cjs +1 -1
  254. package/dist/illustrations.js +1 -1
  255. package/dist/index.cjs +1 -1
  256. package/dist/index.d.ts +4 -2
  257. package/dist/index.js +56 -56
  258. package/dist/inputs-C0BJzlA-.js +1923 -0
  259. package/dist/inputs-C0BJzlA-.js.map +1 -0
  260. package/dist/inputs-CvNBBLFA.cjs +2 -0
  261. package/dist/inputs-CvNBBLFA.cjs.map +1 -0
  262. package/dist/inputs.cjs +1 -1
  263. package/dist/inputs.js +4 -4
  264. package/dist/layout-BSFqGXLZ.js +1101 -0
  265. package/dist/layout-BSFqGXLZ.js.map +1 -0
  266. package/dist/layout-MKqvUkPv.cjs +2 -0
  267. package/dist/layout-MKqvUkPv.cjs.map +1 -0
  268. package/dist/layout.cjs +1 -1
  269. package/dist/layout.js +6 -6
  270. package/dist/{layoutProps-Ck4VtGm9.cjs → layoutProps-B8y2XwHy.cjs} +1 -1
  271. package/dist/{layoutProps-Ck4VtGm9.cjs.map → layoutProps-B8y2XwHy.cjs.map} +1 -1
  272. package/dist/{layoutProps-Cl6d1KmH.js → layoutProps-CE5-ghKw.js} +1 -1
  273. package/dist/{layoutProps-Cl6d1KmH.js.map → layoutProps-CE5-ghKw.js.map} +1 -1
  274. package/dist/{licensing-f5KYVz7D.js → licensing-BKmoAdfr.js} +5 -4
  275. package/dist/licensing-BKmoAdfr.js.map +1 -0
  276. package/dist/licensing-DVgjkw-s.cjs +2 -0
  277. package/dist/licensing-DVgjkw-s.cjs.map +1 -0
  278. package/dist/media-fiasAbBv.js +485 -0
  279. package/dist/media-fiasAbBv.js.map +1 -0
  280. package/dist/media-tr1s386v.cjs +2 -0
  281. package/dist/media-tr1s386v.cjs.map +1 -0
  282. package/dist/media.cjs +1 -1
  283. package/dist/media.js +2 -2
  284. package/dist/overlays-Df-NpmkW.cjs +2 -0
  285. package/dist/overlays-Df-NpmkW.cjs.map +1 -0
  286. package/dist/overlays-W0WW3fn7.js +607 -0
  287. package/dist/overlays-W0WW3fn7.js.map +1 -0
  288. package/dist/overlays.cjs +1 -1
  289. package/dist/overlays.js +3 -3
  290. package/dist/primitives.cjs +1 -1
  291. package/dist/primitives.js +2 -2
  292. package/dist/radioGroupKeys-Bm-Qeh8G.js +28 -0
  293. package/dist/radioGroupKeys-Bm-Qeh8G.js.map +1 -0
  294. package/dist/radioGroupKeys-COL8uXbH.cjs +2 -0
  295. package/dist/radioGroupKeys-COL8uXbH.cjs.map +1 -0
  296. package/dist/{relativeTime-Cr-NVzij.js → relativeTime-BqCuaBqb.js} +1 -1
  297. package/dist/{relativeTime-Cr-NVzij.js.map → relativeTime-BqCuaBqb.js.map} +1 -1
  298. package/dist/{relativeTime-DgYBUaVm.cjs → relativeTime-DUbW4O44.cjs} +1 -1
  299. package/dist/{relativeTime-DgYBUaVm.cjs.map → relativeTime-DUbW4O44.cjs.map} +1 -1
  300. package/dist/scrollLock-C9P9o6wH.cjs +2 -0
  301. package/dist/scrollLock-C9P9o6wH.cjs.map +1 -0
  302. package/dist/scrollLock-D27VmgPV.js +14 -0
  303. package/dist/scrollLock-D27VmgPV.js.map +1 -0
  304. package/dist/style-runtime.cjs +1 -1
  305. package/dist/style-runtime.js +1 -1
  306. package/dist/styles.css +1 -1
  307. package/dist/theme/MThemeProvider.d.ts +18 -1
  308. package/dist/theme/index.d.ts +2 -2
  309. package/dist/{theme-DAOU1aPs.js → theme-B_juOenJ.js} +71 -61
  310. package/dist/theme-B_juOenJ.js.map +1 -0
  311. package/dist/theme-ByPZH0dh.cjs +2 -0
  312. package/dist/theme-ByPZH0dh.cjs.map +1 -0
  313. package/dist/theme.cjs +1 -1
  314. package/dist/theme.js +2 -2
  315. package/dist/{typography-C806GYT4.js → typography-DNcB8dOy.js} +3 -3
  316. package/dist/{typography-C806GYT4.js.map → typography-DNcB8dOy.js.map} +1 -1
  317. package/dist/{typography-4v01oNWx.cjs → typography-I7aeG8pH.cjs} +2 -2
  318. package/dist/{typography-4v01oNWx.cjs.map → typography-I7aeG8pH.cjs.map} +1 -1
  319. package/dist/typography.cjs +1 -1
  320. package/dist/typography.js +6 -6
  321. package/dist/useGhostText-CKsb8Ufa.js +240 -0
  322. package/dist/useGhostText-CKsb8Ufa.js.map +1 -0
  323. package/dist/useGhostText-DO-tfxS0.cjs +2 -0
  324. package/dist/useGhostText-DO-tfxS0.cjs.map +1 -0
  325. package/dist/useModalLayer-CpOPSDbf.js +128 -0
  326. package/dist/useModalLayer-CpOPSDbf.js.map +1 -0
  327. package/dist/useModalLayer-Cyt93Prs.cjs +2 -0
  328. package/dist/useModalLayer-Cyt93Prs.cjs.map +1 -0
  329. package/dist/utils/calendarDates.d.ts +5 -0
  330. package/dist/utils/radioGroupKeys.d.ts +9 -0
  331. package/dist/utils/useDateGridNav.d.ts +39 -0
  332. package/dist/utils/useGhostText.d.ts +2 -1
  333. package/dist/utils/useKeyboardNav.d.ts +51 -5
  334. package/dist/utils/useModalLayer.d.ts +4 -0
  335. package/dist/utils/useRovingToolbar.d.ts +26 -0
  336. package/dist/utils/validationMessages.d.ts +15 -0
  337. package/dist/utils.cjs +1 -1
  338. package/dist/utils.entry.d.ts +3 -1
  339. package/dist/utils.js +11 -11
  340. package/dist/validationMessages-BFimXxlT.js +23 -0
  341. package/dist/validationMessages-BFimXxlT.js.map +1 -0
  342. package/dist/validationMessages-iHu7apWr.cjs +2 -0
  343. package/dist/validationMessages-iHu7apWr.cjs.map +1 -0
  344. package/dist/validators-SZmLxnir.cjs +2 -0
  345. package/dist/validators-SZmLxnir.cjs.map +1 -0
  346. package/dist/{validators-DVYOtFnw.js → validators-ULebNme2.js} +107 -106
  347. package/dist/validators-ULebNme2.js.map +1 -0
  348. package/package.json +1 -1
  349. package/dist/MAvatar-DHNB3829.cjs +0 -2
  350. package/dist/MAvatar-DHNB3829.cjs.map +0 -1
  351. package/dist/MAvatar-GeRL-CNO.js +0 -63
  352. package/dist/MAvatar-GeRL-CNO.js.map +0 -1
  353. package/dist/MButton-CEwo8lUB.js +0 -115
  354. package/dist/MButton-CEwo8lUB.js.map +0 -1
  355. package/dist/MButton-CnAr77Za.cjs +0 -2
  356. package/dist/MButton-CnAr77Za.cjs.map +0 -1
  357. package/dist/MCard-BqSkGAgf.js.map +0 -1
  358. package/dist/MCard-P8OoswWM.cjs.map +0 -1
  359. package/dist/MCheckbox-BxFBADcE.js +0 -59
  360. package/dist/MCheckbox-BxFBADcE.js.map +0 -1
  361. package/dist/MCheckbox-DozwF2ai.cjs +0 -2
  362. package/dist/MCheckbox-DozwF2ai.cjs.map +0 -1
  363. package/dist/MConflictIllustration-2QL-BHYv.cjs +0 -2
  364. package/dist/MConflictIllustration-2QL-BHYv.cjs.map +0 -1
  365. package/dist/MConflictIllustration-znC7ijmP.js.map +0 -1
  366. package/dist/MDetailList-CThQvoyf.cjs +0 -2
  367. package/dist/MDetailList-CThQvoyf.cjs.map +0 -1
  368. package/dist/MDetailList-Cx9H81xT.js +0 -98
  369. package/dist/MDetailList-Cx9H81xT.js.map +0 -1
  370. package/dist/MDropdownMenu-DnKcCyW6.cjs +0 -2
  371. package/dist/MDropdownMenu-DnKcCyW6.cjs.map +0 -1
  372. package/dist/MDropdownMenu-DxbKN7Ui.js +0 -172
  373. package/dist/MDropdownMenu-DxbKN7Ui.js.map +0 -1
  374. package/dist/MGrid-BkRSGN2t.cjs +0 -2
  375. package/dist/MGrid-BkRSGN2t.cjs.map +0 -1
  376. package/dist/MGrid-CIz-2i6X.js +0 -265
  377. package/dist/MGrid-CIz-2i6X.js.map +0 -1
  378. package/dist/MHeading-AYQ8_GFP.cjs +0 -2
  379. package/dist/MHeading-AYQ8_GFP.cjs.map +0 -1
  380. package/dist/MHeading-DcGxUMwC.js +0 -21
  381. package/dist/MHeading-DcGxUMwC.js.map +0 -1
  382. package/dist/MI18nProvider-CqAwaswx.cjs +0 -2
  383. package/dist/MI18nProvider-CqAwaswx.cjs.map +0 -1
  384. package/dist/MI18nProvider-VH14CI8u.js +0 -72
  385. package/dist/MI18nProvider-VH14CI8u.js.map +0 -1
  386. package/dist/MInput-BYj2BdUe.cjs +0 -2
  387. package/dist/MInput-BYj2BdUe.cjs.map +0 -1
  388. package/dist/MInput-nodE-CZF.js +0 -188
  389. package/dist/MInput-nodE-CZF.js.map +0 -1
  390. package/dist/MInputCVC-9XWryaTz.cjs +0 -2
  391. package/dist/MInputCVC-9XWryaTz.cjs.map +0 -1
  392. package/dist/MInputCVC-CrDTaUXm.js +0 -321
  393. package/dist/MInputCVC-CrDTaUXm.js.map +0 -1
  394. package/dist/MInputSearch-BMgCHjFk.js +0 -43
  395. package/dist/MInputSearch-BMgCHjFk.js.map +0 -1
  396. package/dist/MInputSearch-BiVI1jNc.cjs +0 -2
  397. package/dist/MInputSearch-BiVI1jNc.cjs.map +0 -1
  398. package/dist/MLink-CAl6N6_z.js +0 -31
  399. package/dist/MLink-CAl6N6_z.js.map +0 -1
  400. package/dist/MLink-Dk_ReE6i.cjs +0 -2
  401. package/dist/MLink-Dk_ReE6i.cjs.map +0 -1
  402. package/dist/MLoader-CYp0OJU_.js +0 -41
  403. package/dist/MLoader-CYp0OJU_.js.map +0 -1
  404. package/dist/MLoader-DvmFle31.cjs +0 -2
  405. package/dist/MLoader-DvmFle31.cjs.map +0 -1
  406. package/dist/MPagination-E7IixIeo.js +0 -113
  407. package/dist/MPagination-E7IixIeo.js.map +0 -1
  408. package/dist/MPagination-reDU9xTW.cjs +0 -2
  409. package/dist/MPagination-reDU9xTW.cjs.map +0 -1
  410. package/dist/MPopover-8gYD3Ogq.js +0 -118
  411. package/dist/MPopover-8gYD3Ogq.js.map +0 -1
  412. package/dist/MPopover-B3npyAkL.cjs +0 -2
  413. package/dist/MPopover-B3npyAkL.cjs.map +0 -1
  414. package/dist/MPortal-Ba2Sxset.js +0 -10
  415. package/dist/MPortal-Ba2Sxset.js.map +0 -1
  416. package/dist/MPortal-CuBXhhl_.cjs +0 -2
  417. package/dist/MPortal-CuBXhhl_.cjs.map +0 -1
  418. package/dist/MSimpleGrid-BchGYPMi.cjs +0 -2
  419. package/dist/MSimpleGrid-BchGYPMi.cjs.map +0 -1
  420. package/dist/MSimpleGrid-Ui8cI0ho.js.map +0 -1
  421. package/dist/MSkeleton-DPa_G_2X.cjs +0 -2
  422. package/dist/MSkeleton-DPa_G_2X.cjs.map +0 -1
  423. package/dist/MSkeleton-Dhu-loDO.js.map +0 -1
  424. package/dist/MSlider-BRjhyBSc.js +0 -75
  425. package/dist/MSlider-BRjhyBSc.js.map +0 -1
  426. package/dist/MSlider-w5214a-W.cjs +0 -2
  427. package/dist/MSlider-w5214a-W.cjs.map +0 -1
  428. package/dist/MStack-Dt-rWvg3.js +0 -39
  429. package/dist/MStack-Dt-rWvg3.js.map +0 -1
  430. package/dist/MStack-nc6Y_9K3.cjs +0 -2
  431. package/dist/MStack-nc6Y_9K3.cjs.map +0 -1
  432. package/dist/MSubText-B0tXiuAp.js +0 -17
  433. package/dist/MSubText-B0tXiuAp.js.map +0 -1
  434. package/dist/MSubText-C6v6Exa2.cjs +0 -2
  435. package/dist/MSubText-C6v6Exa2.cjs.map +0 -1
  436. package/dist/MSurface-BjE-mL1L.cjs +0 -2
  437. package/dist/MSurface-BjE-mL1L.cjs.map +0 -1
  438. package/dist/MSurface-CpDJCdb5.js +0 -74
  439. package/dist/MSurface-CpDJCdb5.js.map +0 -1
  440. package/dist/MTag-BgOxiahL.cjs +0 -2
  441. package/dist/MTag-BgOxiahL.cjs.map +0 -1
  442. package/dist/MTag-cw3cIGHX.js +0 -41
  443. package/dist/MTag-cw3cIGHX.js.map +0 -1
  444. package/dist/MText-BDI4mdw8.cjs +0 -2
  445. package/dist/MText-BDI4mdw8.cjs.map +0 -1
  446. package/dist/MText-DhbAjtUE.js +0 -45
  447. package/dist/MText-DhbAjtUE.js.map +0 -1
  448. package/dist/MTooltip-BAgHlv5I.cjs +0 -2
  449. package/dist/MTooltip-BAgHlv5I.cjs.map +0 -1
  450. package/dist/MTooltip-CJxvlkOX.js +0 -92
  451. package/dist/MTooltip-CJxvlkOX.js.map +0 -1
  452. package/dist/MTreeView-DsBnYQMT.js +0 -315
  453. package/dist/MTreeView-DsBnYQMT.js.map +0 -1
  454. package/dist/MTreeView-LiJ5o-zy.cjs +0 -2
  455. package/dist/MTreeView-LiJ5o-zy.cjs.map +0 -1
  456. package/dist/calendar-Bq6NMNnS.js +0 -193
  457. package/dist/calendar-Bq6NMNnS.js.map +0 -1
  458. package/dist/calendar-C57BH8Nd.cjs +0 -2
  459. package/dist/calendar-C57BH8Nd.cjs.map +0 -1
  460. package/dist/calendarDates-M_Dawj0j.js.map +0 -1
  461. package/dist/calendarDates-qm047RW2.cjs +0 -2
  462. package/dist/calendarDates-qm047RW2.cjs.map +0 -1
  463. package/dist/cards-D4xJVd4q.js +0 -1227
  464. package/dist/cards-D4xJVd4q.js.map +0 -1
  465. package/dist/cards-Du6dbZSQ.cjs +0 -2
  466. package/dist/cards-Du6dbZSQ.cjs.map +0 -1
  467. package/dist/controls-BKoc_yel.js +0 -475
  468. package/dist/controls-BKoc_yel.js.map +0 -1
  469. package/dist/controls-Ck-PMt__.cjs +0 -2
  470. package/dist/controls-Ck-PMt__.cjs.map +0 -1
  471. package/dist/creditCards-D_HwRUBz.cjs +0 -2
  472. package/dist/creditCards-D_HwRUBz.cjs.map +0 -1
  473. package/dist/creditCards-D_iWmtG6.js.map +0 -1
  474. package/dist/data-CdQximqm.js +0 -689
  475. package/dist/data-CdQximqm.js.map +0 -1
  476. package/dist/data-PS4ygCyj.cjs +0 -2
  477. package/dist/data-PS4ygCyj.cjs.map +0 -1
  478. package/dist/dateUtils-CUY6CRCf.js.map +0 -1
  479. package/dist/dateUtils-Dq1vaA-D.cjs +0 -2
  480. package/dist/dateUtils-Dq1vaA-D.cjs.map +0 -1
  481. package/dist/display-YC1fVpXA.js +0 -782
  482. package/dist/display-YC1fVpXA.js.map +0 -1
  483. package/dist/display-slIo1bQI.cjs +0 -3
  484. package/dist/display-slIo1bQI.cjs.map +0 -1
  485. package/dist/dropdowns-DFbUoZ8Q.cjs +0 -2
  486. package/dist/dropdowns-DFbUoZ8Q.cjs.map +0 -1
  487. package/dist/dropdowns-nW3MY5XG.js +0 -1715
  488. package/dist/dropdowns-nW3MY5XG.js.map +0 -1
  489. package/dist/feedback-6MNb2Xyk.cjs +0 -2
  490. package/dist/feedback-6MNb2Xyk.cjs.map +0 -1
  491. package/dist/feedback-CPwJaQHY.js +0 -259
  492. package/dist/feedback-CPwJaQHY.js.map +0 -1
  493. package/dist/form-CMsZo6Dm.cjs +0 -2
  494. package/dist/form-CMsZo6Dm.cjs.map +0 -1
  495. package/dist/form-WU6DcQGD.js +0 -164
  496. package/dist/form-WU6DcQGD.js.map +0 -1
  497. package/dist/frameworkTexts-BSXUtXOp.cjs +0 -2
  498. package/dist/frameworkTexts-BSXUtXOp.cjs.map +0 -1
  499. package/dist/frameworkTexts-DP5RUl19.js +0 -131
  500. package/dist/frameworkTexts-DP5RUl19.js.map +0 -1
  501. package/dist/icons-CBMl-kOM.js.map +0 -1
  502. package/dist/icons-D3n9-919.cjs +0 -2
  503. package/dist/icons-D3n9-919.cjs.map +0 -1
  504. package/dist/inputs-B7rGMLMr.js +0 -1753
  505. package/dist/inputs-B7rGMLMr.js.map +0 -1
  506. package/dist/inputs-BiN62hgH.cjs +0 -2
  507. package/dist/inputs-BiN62hgH.cjs.map +0 -1
  508. package/dist/layout-BMggJ_qO.cjs +0 -2
  509. package/dist/layout-BMggJ_qO.cjs.map +0 -1
  510. package/dist/layout-DBYHyCTr.js +0 -883
  511. package/dist/layout-DBYHyCTr.js.map +0 -1
  512. package/dist/licensing-Be3g-PJt.cjs +0 -2
  513. package/dist/licensing-Be3g-PJt.cjs.map +0 -1
  514. package/dist/licensing-f5KYVz7D.js.map +0 -1
  515. package/dist/media-BPzMgzqE.js +0 -405
  516. package/dist/media-BPzMgzqE.js.map +0 -1
  517. package/dist/media-D63hxCAJ.cjs +0 -2
  518. package/dist/media-D63hxCAJ.cjs.map +0 -1
  519. package/dist/overlays-CCeYD6hT.js +0 -555
  520. package/dist/overlays-CCeYD6hT.js.map +0 -1
  521. package/dist/overlays-CsRN5OG8.cjs +0 -2
  522. package/dist/overlays-CsRN5OG8.cjs.map +0 -1
  523. package/dist/popoverStack--0r2oJCD.js +0 -44
  524. package/dist/popoverStack--0r2oJCD.js.map +0 -1
  525. package/dist/popoverStack-BmMk-VZJ.cjs +0 -2
  526. package/dist/popoverStack-BmMk-VZJ.cjs.map +0 -1
  527. package/dist/theme-CJuqObWL.cjs +0 -2
  528. package/dist/theme-CJuqObWL.cjs.map +0 -1
  529. package/dist/theme-DAOU1aPs.js.map +0 -1
  530. package/dist/useGhostText-DG0bzcao.js +0 -68
  531. package/dist/useGhostText-DG0bzcao.js.map +0 -1
  532. package/dist/useGhostText-mibV4s1-.cjs +0 -2
  533. package/dist/useGhostText-mibV4s1-.cjs.map +0 -1
  534. package/dist/useKeyboardNav-CCUoRMgm.cjs +0 -2
  535. package/dist/useKeyboardNav-CCUoRMgm.cjs.map +0 -1
  536. package/dist/useKeyboardNav-iEXOdEMB.js +0 -43
  537. package/dist/useKeyboardNav-iEXOdEMB.js.map +0 -1
  538. package/dist/useModalLayer-Bf4TcEz-.js +0 -58
  539. package/dist/useModalLayer-Bf4TcEz-.js.map +0 -1
  540. package/dist/useModalLayer-DxYhhgRO.cjs +0 -2
  541. package/dist/useModalLayer-DxYhhgRO.cjs.map +0 -1
  542. package/dist/utils/proActivationWarning.d.ts +0 -7
  543. package/dist/validators-B6yWdsu2.cjs +0 -2
  544. package/dist/validators-B6yWdsu2.cjs.map +0 -1
  545. package/dist/validators-DVYOtFnw.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ const e=require(`./frameworkTexts-CaqdiKHW.cjs`),t=require(`./icons-Bp8bB9TP.cjs`),n=require(`./cn-DYFxgzi2.cjs`),r=require(`./MButton-BxEky3xQ.cjs`),i=require(`./locale-C08q7FjE.cjs`),a=require(`./calendarDates-Cg0nm69Y.cjs`);require(`./core-w629c4ND.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`);function c(e,t,n){let[r,i]=(0,o.useState)(t),a=e!==void 0,s=a?e:r,c=(0,o.useRef)(n);c.current=n;let l=(0,o.useRef)(s);return l.current=s,[s,(0,o.useCallback)(e=>{a||i(e),Object.is(e,l.current)||c.current?.(e)},[a])]}var l=new Set([`primary`,`neutral`,`success`,`error`,`warning`,`info`,`light`,`dark`,`news`]);function u(e){return e?l.has(e)?`var(--mineral-${e})`:e:`var(--mineral-primary)`}function d(e){return e?Array.isArray(e)?e:[e]:[]}function f({value:l,defaultValue:f=null,onChange:ee,month:p,defaultMonth:m,onMonthChange:h,min:g,max:_,disabledDates:v,weekStartsOn:y=1,locale:b,highlightRange:x,markers:S,showOutsideDays:te=!0,size:ne=`md`,color:C=`primary`,texts:re,autoFocus:w=!1,className:T,style:E,...D}){let O=i.t(b),k=e._(O,re),[A,j]=c(l,f,e=>{e&&ee?.(e)}),M=a.f(new Date),[N,P]=c(p?a.u(p):void 0,()=>a.u(m??l??f??M),h),[F,I]=(0,o.useState)(()=>a.f(l??f??M)),L=(0,o.useRef)(null),R=(0,o.useRef)(w),z=(0,o.useMemo)(()=>a.l(g??null),[g]),B=(0,o.useMemo)(()=>a.l(_??null),[_]),V=e=>z&&e<z||B&&e>B?!0:typeof v==`function`?v(e):!!v?.some(t=>a.s(t,e)),H=l?a.i(l):null,U=(0,o.useRef)(H);(0,o.useEffect)(()=>{H!==U.current&&(U.current=H,l&&(I(a.f(l)),a.c(l,N)||P(a.u(l))))},[H]),(0,o.useEffect)(()=>{a.c(F,N)||I(a.f(A&&a.c(A,N)?A:N))},[N]),(0,o.useEffect)(()=>{R.current&&(R.current=!1,(L.current?.querySelector(`[data-date="${a.i(F)}"]`))?.focus())},[F]);let W=(0,o.useMemo)(()=>a.a(N,y),[N,y]),G=(0,o.useMemo)(()=>Array.from({length:6},(e,t)=>W.slice(t*7,t*7+7)),[W]),K=(0,o.useMemo)(()=>a.o(O,y,`short`),[O,y]),q=(0,o.useMemo)(()=>a.o(O,y,`long`),[O,y]),J=new Intl.DateTimeFormat(O,{month:`long`,year:`numeric`}).format(N),Y=(0,o.useMemo)(()=>new Intl.DateTimeFormat(O,{weekday:`long`,day:`numeric`,month:`long`,year:`numeric`}),[O]),X=x?a.f(x.start):null,Z=x?a.f(x.end):null,ie=e=>{let t=a.f(e);R.current=!0,I(t),a.c(t,N)||P(a.u(t))},Q=e=>{V(e)||(j(e),I(e),a.c(e,N)||P(a.u(e)))},ae=e=>{let t=F,n=null;switch(e.key){case`ArrowLeft`:n=a.t(t,-1);break;case`ArrowRight`:n=a.t(t,1);break;case`ArrowUp`:n=a.t(t,-7);break;case`ArrowDown`:n=a.t(t,7);break;case`PageUp`:n=a.n(t,e.shiftKey?-12:-1);break;case`PageDown`:n=a.n(t,e.shiftKey?12:1);break;case`Home`:n=a.d(t,y);break;case`End`:n=a.t(a.d(t,y),6);break;case`Enter`:case` `:e.preventDefault(),Q(t);return;default:return}e.preventDefault(),ie(n)},$=e=>{P(a.u(a.n(N,e)))};return(0,s.jsxs)(`div`,{className:n.t(`mineral-mini-calendar`,`mineral-mini-calendar--${ne}`,T),style:{"--mineral-mini-calendar-accent":`var(--mineral-${C})`,"--mineral-mini-calendar-accent-contrast":`var(--mineral-${C}-contrast)`,...E},...D,children:[(0,s.jsxs)(`div`,{className:`mineral-mini-calendar__header`,children:[(0,s.jsx)(r.t,{size:`sm`,variant:`ghost`,color:C,iconOnly:!0,"aria-label":k.previousMonth,startIcon:(0,s.jsx)(t.Ji,{size:16}),onClick:()=>$(-1)}),(0,s.jsx)(`span`,{className:`mineral-mini-calendar__title`,"aria-live":`polite`,children:J}),(0,s.jsx)(r.t,{size:`sm`,variant:`ghost`,color:C,iconOnly:!0,"aria-label":k.nextMonth,startIcon:(0,s.jsx)(t.qi,{size:16}),onClick:()=>$(1)})]}),(0,s.jsxs)(`div`,{ref:L,className:`mineral-mini-calendar__grid`,role:`grid`,"aria-label":J,onKeyDown:ae,children:[(0,s.jsx)(`div`,{className:`mineral-mini-calendar__row`,role:`row`,children:K.map((e,t)=>(0,s.jsx)(`span`,{className:`mineral-mini-calendar__weekday`,role:`columnheader`,"aria-label":q[t],children:e},e+t))}),G.map(e=>(0,s.jsx)(`div`,{className:`mineral-mini-calendar__row`,role:`row`,children:e.map(e=>{let t=!a.c(e,N);if(t&&!te)return(0,s.jsx)(`span`,{className:`mineral-mini-calendar__cell`,role:`gridcell`},a.i(e));let r=V(e),i=!!(A&&a.s(A,e)),o=a.s(M,e),c=!!(X&&Z&&e>=X&&e<=Z),l=S?d(S(e)):[],f=l.map(e=>e.label).filter(Boolean).join(`, `);return(0,s.jsx)(`span`,{className:`mineral-mini-calendar__cell`,role:`gridcell`,"aria-selected":i,children:(0,s.jsxs)(`button`,{type:`button`,"data-date":a.i(e),className:n.t(`mineral-mini-calendar__day`,t&&`mineral-mini-calendar__day--outside`,o&&`mineral-mini-calendar__day--today`,i&&`mineral-mini-calendar__day--selected`,c&&`mineral-mini-calendar__day--in-range`,r&&`mineral-mini-calendar__day--disabled`,r&&`m-unavailable`),tabIndex:a.s(e,F)?0:-1,"aria-disabled":r||void 0,"aria-current":o?`date`:void 0,"aria-label":f?`${Y.format(e)}, ${f}`:Y.format(e),onClick:()=>Q(e),onFocus:()=>{a.s(e,F)||I(e)},children:[(0,s.jsx)(`span`,{className:`mineral-mini-calendar__number`,children:e.getDate()}),l.length>0?(0,s.jsx)(`span`,{className:`mineral-mini-calendar__markers`,"aria-hidden":`true`,children:l.slice(0,3).map((e,t)=>(0,s.jsx)(`span`,{className:`mineral-mini-calendar__marker`,style:{background:u(e.color)}},t))}):null]})},a.i(e))})},a.i(e[0])))]})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
2
+ //# sourceMappingURL=calendar-2yhnCkGW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-2yhnCkGW.cjs","names":[],"sources":["../src/utils/useControllableState.ts","../src/components/calendar/MMiniCalendar/MMiniCalendar.tsx"],"sourcesContent":["import {useCallback, useRef, useState} from 'react'\n\n/**\n * Generic controlled/uncontrolled state. The value is controlled when `value !== undefined`\n * (React convention). `onChange` fires for every requested change, controlled or not.\n */\nexport function useControllableState<T>(\n value: T | undefined,\n defaultValue: T | (() => T),\n onChange?: (next: T) => void\n): [T, (next: T) => void] {\n const [inner, setInner] = useState<T>(defaultValue)\n const controlled = value !== undefined\n const current = controlled ? (value as T) : inner\n const onChangeRef = useRef(onChange)\n onChangeRef.current = onChange\n const currentRef = useRef(current)\n currentRef.current = current\n\n const setValue = useCallback(\n (next: T) => {\n if (!controlled) {\n setInner(next)\n }\n if (!Object.is(next, currentRef.current)) {\n onChangeRef.current?.(next)\n }\n },\n [controlled]\n )\n\n return [current, setValue]\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {CSSProperties, KeyboardEvent} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {useDocumentLocale} from '../../../utils/locale'\nimport {useControllableState} from '../../../utils/useControllableState'\nimport {\n addDays,\n addMonthsClamped,\n getDateKey,\n getMonthMatrix,\n getWeekdayLabels,\n isSameDay,\n isSameMonth,\n normalizeDate,\n startOfMonth,\n startOfWeek,\n stripTime,\n} from '../../../utils/calendarDates'\nimport {useMMiniCalendarTexts} from '../../../i18n/frameworkTexts'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport type {MMiniCalendarMarker, MMiniCalendarProps} from './MMiniCalendar.types'\nimport './MMiniCalendar.css'\n\nconst COLOR_FAMILIES = new Set(['primary', 'neutral', 'success', 'error', 'warning', 'info', 'light', 'dark', 'news'])\n\nfunction markerColor(color?: string): string {\n if (!color) {\n return 'var(--mineral-primary)'\n }\n return COLOR_FAMILIES.has(color) ? `var(--mineral-${color})` : color\n}\n\nfunction toMarkerList(value: MMiniCalendarMarker | MMiniCalendarMarker[] | null | undefined): MMiniCalendarMarker[] {\n if (!value) {\n return []\n }\n return Array.isArray(value) ? value : [value]\n}\n\n/**\n * Compact month grid with WAI-ARIA date-grid keyboard support: arrows move by day or week,\n * PageUp/PageDown by month (Shift: year), Home/End to the week edges, Enter/Space selects.\n */\nexport function MMiniCalendar({\n value,\n defaultValue = null,\n onChange,\n month,\n defaultMonth,\n onMonthChange,\n min,\n max,\n disabledDates,\n weekStartsOn = 1,\n locale: localeProp,\n highlightRange,\n markers,\n showOutsideDays = true,\n size = 'md',\n color = 'primary',\n texts: textsProp,\n autoFocus = false,\n className,\n style,\n ...rest\n}: MMiniCalendarProps) {\n const locale = useDocumentLocale(localeProp)\n const texts = useMMiniCalendarTexts(locale, textsProp)\n const [selected, setSelected] = useControllableState<Date | null>(value, defaultValue, (next) => {\n if (next) {\n onChange?.(next)\n }\n })\n const today = stripTime(new Date())\n const [visibleMonth, setVisibleMonth] = useControllableState<Date>(\n month ? startOfMonth(month) : undefined,\n () => startOfMonth(defaultMonth ?? value ?? defaultValue ?? today),\n onMonthChange\n )\n const [focusDate, setFocusDate] = useState<Date>(() => stripTime(value ?? defaultValue ?? today))\n const gridRef = useRef<HTMLDivElement>(null)\n const shouldFocusRef = useRef(autoFocus)\n\n const minDate = useMemo(() => normalizeDate(min ?? null), [min])\n const maxDate = useMemo(() => normalizeDate(max ?? null), [max])\n\n const isDisabled = (date: Date) => {\n if (minDate && date < minDate) {\n return true\n }\n if (maxDate && date > maxDate) {\n return true\n }\n if (typeof disabledDates === 'function') {\n return disabledDates(date)\n }\n return Boolean(disabledDates?.some((item) => isSameDay(item, date)))\n }\n\n // A value set from outside (controlled `value`) brings its month into view.\n const valueKey = value ? getDateKey(value) : null\n const lastValueKeyRef = useRef(valueKey)\n useEffect(() => {\n if (valueKey === lastValueKeyRef.current) {\n return\n }\n lastValueKeyRef.current = valueKey\n if (!value) {\n return\n }\n setFocusDate(stripTime(value))\n if (!isSameMonth(value, visibleMonth)) {\n setVisibleMonth(startOfMonth(value))\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey])\n\n // Keep the roving focus target inside the displayed month.\n useEffect(() => {\n if (!isSameMonth(focusDate, visibleMonth)) {\n const candidate = selected && isSameMonth(selected, visibleMonth) ? selected : visibleMonth\n setFocusDate(stripTime(candidate))\n }\n }, [visibleMonth])\n\n useEffect(() => {\n if (!shouldFocusRef.current) {\n return\n }\n shouldFocusRef.current = false\n const node = gridRef.current?.querySelector<HTMLButtonElement>(`[data-date=\"${getDateKey(focusDate)}\"]`)\n node?.focus()\n }, [focusDate])\n\n const days = useMemo(() => getMonthMatrix(visibleMonth, weekStartsOn), [visibleMonth, weekStartsOn])\n const weeks = useMemo(() => Array.from({length: 6}, (_, index) => days.slice(index * 7, index * 7 + 7)), [days])\n const weekdayLabels = useMemo(() => getWeekdayLabels(locale, weekStartsOn, 'short'), [locale, weekStartsOn])\n const weekdayLong = useMemo(() => getWeekdayLabels(locale, weekStartsOn, 'long'), [locale, weekStartsOn])\n const monthTitle = new Intl.DateTimeFormat(locale, {month: 'long', year: 'numeric'}).format(visibleMonth)\n const dayLabelFormatter = useMemo(\n () => new Intl.DateTimeFormat(locale, {weekday: 'long', day: 'numeric', month: 'long', year: 'numeric'}),\n [locale]\n )\n\n const rangeStart = highlightRange ? stripTime(highlightRange.start) : null\n const rangeEnd = highlightRange ? stripTime(highlightRange.end) : null\n\n const moveFocus = (next: Date) => {\n const target = stripTime(next)\n shouldFocusRef.current = true\n setFocusDate(target)\n if (!isSameMonth(target, visibleMonth)) {\n setVisibleMonth(startOfMonth(target))\n }\n }\n\n const select = (date: Date) => {\n if (isDisabled(date)) {\n return\n }\n setSelected(date)\n setFocusDate(date)\n if (!isSameMonth(date, visibleMonth)) {\n setVisibleMonth(startOfMonth(date))\n }\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const current = focusDate\n let next: Date | null = null\n switch (event.key) {\n case 'ArrowLeft':\n next = addDays(current, -1)\n break\n case 'ArrowRight':\n next = addDays(current, 1)\n break\n case 'ArrowUp':\n next = addDays(current, -7)\n break\n case 'ArrowDown':\n next = addDays(current, 7)\n break\n case 'PageUp':\n next = addMonthsClamped(current, event.shiftKey ? -12 : -1)\n break\n case 'PageDown':\n next = addMonthsClamped(current, event.shiftKey ? 12 : 1)\n break\n case 'Home':\n next = startOfWeek(current, weekStartsOn)\n break\n case 'End':\n next = addDays(startOfWeek(current, weekStartsOn), 6)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n select(current)\n return\n default:\n return\n }\n event.preventDefault()\n moveFocus(next)\n }\n\n const goMonth = (amount: number) => {\n const nextMonth = startOfMonth(addMonthsClamped(visibleMonth, amount))\n setVisibleMonth(nextMonth)\n }\n\n return (\n <div\n className={cn('mineral-mini-calendar', `mineral-mini-calendar--${size}`, className)}\n style={\n {\n ['--mineral-mini-calendar-accent' as string]: `var(--mineral-${color})`,\n ['--mineral-mini-calendar-accent-contrast' as string]: `var(--mineral-${color}-contrast)`,\n ...style,\n } as CSSProperties\n }\n {...rest}\n >\n <div className={'mineral-mini-calendar__header'}>\n <MButton\n size={'sm'}\n variant={'ghost'}\n color={color}\n iconOnly\n aria-label={texts.previousMonth}\n startIcon={<MChevronLeftIcon size={16} />}\n onClick={() => goMonth(-1)}\n />\n <span className={'mineral-mini-calendar__title'} aria-live={'polite'}>\n {monthTitle}\n </span>\n <MButton\n size={'sm'}\n variant={'ghost'}\n color={color}\n iconOnly\n aria-label={texts.nextMonth}\n startIcon={<MChevronRightIcon size={16} />}\n onClick={() => goMonth(1)}\n />\n </div>\n <div\n ref={gridRef}\n className={'mineral-mini-calendar__grid'}\n role={'grid'}\n aria-label={monthTitle}\n onKeyDown={handleKeyDown}\n >\n <div className={'mineral-mini-calendar__row'} role={'row'}>\n {weekdayLabels.map((label, index) => (\n <span\n key={label + index}\n className={'mineral-mini-calendar__weekday'}\n role={'columnheader'}\n aria-label={weekdayLong[index]}\n >\n {label}\n </span>\n ))}\n </div>\n {weeks.map((week) => (\n <div key={getDateKey(week[0])} className={'mineral-mini-calendar__row'} role={'row'}>\n {week.map((day) => {\n const outside = !isSameMonth(day, visibleMonth)\n if (outside && !showOutsideDays) {\n return (\n <span\n key={getDateKey(day)}\n className={'mineral-mini-calendar__cell'}\n role={'gridcell'}\n />\n )\n }\n const disabled = isDisabled(day)\n const isSelected = Boolean(selected && isSameDay(selected, day))\n const isToday = isSameDay(today, day)\n const inRange = Boolean(rangeStart && rangeEnd && day >= rangeStart && day <= rangeEnd)\n const dayMarkers = markers ? toMarkerList(markers(day)) : []\n const markerText = dayMarkers\n .map((marker) => marker.label)\n .filter(Boolean)\n .join(', ')\n return (\n <span\n key={getDateKey(day)}\n className={'mineral-mini-calendar__cell'}\n role={'gridcell'}\n aria-selected={isSelected}\n >\n <button\n type={'button'}\n data-date={getDateKey(day)}\n className={cn(\n 'mineral-mini-calendar__day',\n outside && 'mineral-mini-calendar__day--outside',\n isToday && 'mineral-mini-calendar__day--today',\n isSelected && 'mineral-mini-calendar__day--selected',\n inRange && 'mineral-mini-calendar__day--in-range',\n disabled && 'mineral-mini-calendar__day--disabled',\n disabled && 'm-unavailable'\n )}\n tabIndex={isSameDay(day, focusDate) ? 0 : -1}\n // Not native `disabled`: the roving tab stop may land on an\n // unavailable day (arrow past min/max) and must stay focusable.\n aria-disabled={disabled || undefined}\n aria-current={isToday ? 'date' : undefined}\n aria-label={\n markerText\n ? `${dayLabelFormatter.format(day)}, ${markerText}`\n : dayLabelFormatter.format(day)\n }\n onClick={() => select(day)}\n onFocus={() => {\n if (!isSameDay(day, focusDate)) {\n setFocusDate(day)\n }\n }}\n >\n <span className={'mineral-mini-calendar__number'}>{day.getDate()}</span>\n {dayMarkers.length > 0 ? (\n <span className={'mineral-mini-calendar__markers'} aria-hidden={'true'}>\n {dayMarkers.slice(0, 3).map((marker, index) => (\n <span\n key={index}\n className={'mineral-mini-calendar__marker'}\n style={{background: markerColor(marker.color)}}\n />\n ))}\n </span>\n ) : null}\n </button>\n </span>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { _ as e } from "./frameworkTexts-o43FqY1A.js";
2
+ import { Ji as t, qi as n } from "./icons-IqEBmGh3.js";
3
+ import { t as r } from "./cn-CUSXNnjF.js";
4
+ import { t as i } from "./MButton-KELyyBw1.js";
5
+ import { t as a } from "./locale-CjJpk9GN.js";
6
+ import { a as o, c as s, d as c, f as l, i as u, l as d, n as f, o as p, s as m, t as h, u as g } from "./calendarDates-Bpw_G_QR.js";
7
+ import { useCallback as _, useEffect as v, useMemo as y, useRef as b, useState as x } from "react";
8
+ import { jsx as S, jsxs as C } from "react/jsx-runtime";
9
+ //#region src/utils/useControllableState.ts
10
+ function w(e, t, n) {
11
+ let [r, i] = x(t), a = e !== void 0, o = a ? e : r, s = b(n);
12
+ s.current = n;
13
+ let c = b(o);
14
+ return c.current = o, [o, _((e) => {
15
+ a || i(e), Object.is(e, c.current) || s.current?.(e);
16
+ }, [a])];
17
+ }
18
+ //#endregion
19
+ //#region src/components/calendar/MMiniCalendar/MMiniCalendar.tsx
20
+ var T = new Set([
21
+ "primary",
22
+ "neutral",
23
+ "success",
24
+ "error",
25
+ "warning",
26
+ "info",
27
+ "light",
28
+ "dark",
29
+ "news"
30
+ ]);
31
+ function ee(e) {
32
+ return e ? T.has(e) ? `var(--mineral-${e})` : e : "var(--mineral-primary)";
33
+ }
34
+ function te(e) {
35
+ return e ? Array.isArray(e) ? e : [e] : [];
36
+ }
37
+ function E({ value: _, defaultValue: T = null, onChange: E, month: D, defaultMonth: ne, onMonthChange: re, min: O, max: k, disabledDates: A, weekStartsOn: j = 1, locale: ie, highlightRange: M, markers: N, showOutsideDays: ae = !0, size: oe = "md", color: P = "primary", texts: se, autoFocus: ce = !1, className: le, style: ue, ...de }) {
38
+ let F = a(ie), I = e(F, se), [L, fe] = w(_, T, (e) => {
39
+ e && E?.(e);
40
+ }), R = l(/* @__PURE__ */ new Date()), [z, B] = w(D ? g(D) : void 0, () => g(ne ?? _ ?? T ?? R), re), [V, H] = x(() => l(_ ?? T ?? R)), U = b(null), W = b(ce), G = y(() => d(O ?? null), [O]), K = y(() => d(k ?? null), [k]), q = (e) => G && e < G || K && e > K ? !0 : typeof A == "function" ? A(e) : !!A?.some((t) => m(t, e)), J = _ ? u(_) : null, Y = b(J);
41
+ v(() => {
42
+ J !== Y.current && (Y.current = J, _ && (H(l(_)), s(_, z) || B(g(_))));
43
+ }, [J]), v(() => {
44
+ s(V, z) || H(l(L && s(L, z) ? L : z));
45
+ }, [z]), v(() => {
46
+ W.current && (W.current = !1, (U.current?.querySelector(`[data-date="${u(V)}"]`))?.focus());
47
+ }, [V]);
48
+ let X = y(() => o(z, j), [z, j]), pe = y(() => Array.from({ length: 6 }, (e, t) => X.slice(t * 7, t * 7 + 7)), [X]), me = y(() => p(F, j, "short"), [F, j]), he = y(() => p(F, j, "long"), [F, j]), Z = new Intl.DateTimeFormat(F, {
49
+ month: "long",
50
+ year: "numeric"
51
+ }).format(z), Q = y(() => new Intl.DateTimeFormat(F, {
52
+ weekday: "long",
53
+ day: "numeric",
54
+ month: "long",
55
+ year: "numeric"
56
+ }), [F]), $ = M ? l(M.start) : null, ge = M ? l(M.end) : null, _e = (e) => {
57
+ let t = l(e);
58
+ W.current = !0, H(t), s(t, z) || B(g(t));
59
+ }, ve = (e) => {
60
+ q(e) || (fe(e), H(e), s(e, z) || B(g(e)));
61
+ }, ye = (e) => {
62
+ let t = V, n = null;
63
+ switch (e.key) {
64
+ case "ArrowLeft":
65
+ n = h(t, -1);
66
+ break;
67
+ case "ArrowRight":
68
+ n = h(t, 1);
69
+ break;
70
+ case "ArrowUp":
71
+ n = h(t, -7);
72
+ break;
73
+ case "ArrowDown":
74
+ n = h(t, 7);
75
+ break;
76
+ case "PageUp":
77
+ n = f(t, e.shiftKey ? -12 : -1);
78
+ break;
79
+ case "PageDown":
80
+ n = f(t, e.shiftKey ? 12 : 1);
81
+ break;
82
+ case "Home":
83
+ n = c(t, j);
84
+ break;
85
+ case "End":
86
+ n = h(c(t, j), 6);
87
+ break;
88
+ case "Enter":
89
+ case " ":
90
+ e.preventDefault(), ve(t);
91
+ return;
92
+ default: return;
93
+ }
94
+ e.preventDefault(), _e(n);
95
+ }, be = (e) => {
96
+ B(g(f(z, e)));
97
+ };
98
+ return /* @__PURE__ */ C("div", {
99
+ className: r("mineral-mini-calendar", `mineral-mini-calendar--${oe}`, le),
100
+ style: {
101
+ "--mineral-mini-calendar-accent": `var(--mineral-${P})`,
102
+ "--mineral-mini-calendar-accent-contrast": `var(--mineral-${P}-contrast)`,
103
+ ...ue
104
+ },
105
+ ...de,
106
+ children: [/* @__PURE__ */ C("div", {
107
+ className: "mineral-mini-calendar__header",
108
+ children: [
109
+ /* @__PURE__ */ S(i, {
110
+ size: "sm",
111
+ variant: "ghost",
112
+ color: P,
113
+ iconOnly: !0,
114
+ "aria-label": I.previousMonth,
115
+ startIcon: /* @__PURE__ */ S(t, { size: 16 }),
116
+ onClick: () => be(-1)
117
+ }),
118
+ /* @__PURE__ */ S("span", {
119
+ className: "mineral-mini-calendar__title",
120
+ "aria-live": "polite",
121
+ children: Z
122
+ }),
123
+ /* @__PURE__ */ S(i, {
124
+ size: "sm",
125
+ variant: "ghost",
126
+ color: P,
127
+ iconOnly: !0,
128
+ "aria-label": I.nextMonth,
129
+ startIcon: /* @__PURE__ */ S(n, { size: 16 }),
130
+ onClick: () => be(1)
131
+ })
132
+ ]
133
+ }), /* @__PURE__ */ C("div", {
134
+ ref: U,
135
+ className: "mineral-mini-calendar__grid",
136
+ role: "grid",
137
+ "aria-label": Z,
138
+ onKeyDown: ye,
139
+ children: [/* @__PURE__ */ S("div", {
140
+ className: "mineral-mini-calendar__row",
141
+ role: "row",
142
+ children: me.map((e, t) => /* @__PURE__ */ S("span", {
143
+ className: "mineral-mini-calendar__weekday",
144
+ role: "columnheader",
145
+ "aria-label": he[t],
146
+ children: e
147
+ }, e + t))
148
+ }), pe.map((e) => /* @__PURE__ */ S("div", {
149
+ className: "mineral-mini-calendar__row",
150
+ role: "row",
151
+ children: e.map((e) => {
152
+ let t = !s(e, z);
153
+ if (t && !ae) return /* @__PURE__ */ S("span", {
154
+ className: "mineral-mini-calendar__cell",
155
+ role: "gridcell"
156
+ }, u(e));
157
+ let n = q(e), i = !!(L && m(L, e)), a = m(R, e), o = !!($ && ge && e >= $ && e <= ge), c = N ? te(N(e)) : [], l = c.map((e) => e.label).filter(Boolean).join(", ");
158
+ return /* @__PURE__ */ S("span", {
159
+ className: "mineral-mini-calendar__cell",
160
+ role: "gridcell",
161
+ "aria-selected": i,
162
+ children: /* @__PURE__ */ C("button", {
163
+ type: "button",
164
+ "data-date": u(e),
165
+ className: r("mineral-mini-calendar__day", t && "mineral-mini-calendar__day--outside", a && "mineral-mini-calendar__day--today", i && "mineral-mini-calendar__day--selected", o && "mineral-mini-calendar__day--in-range", n && "mineral-mini-calendar__day--disabled", n && "m-unavailable"),
166
+ tabIndex: m(e, V) ? 0 : -1,
167
+ "aria-disabled": n || void 0,
168
+ "aria-current": a ? "date" : void 0,
169
+ "aria-label": l ? `${Q.format(e)}, ${l}` : Q.format(e),
170
+ onClick: () => ve(e),
171
+ onFocus: () => {
172
+ m(e, V) || H(e);
173
+ },
174
+ children: [/* @__PURE__ */ S("span", {
175
+ className: "mineral-mini-calendar__number",
176
+ children: e.getDate()
177
+ }), c.length > 0 ? /* @__PURE__ */ S("span", {
178
+ className: "mineral-mini-calendar__markers",
179
+ "aria-hidden": "true",
180
+ children: c.slice(0, 3).map((e, t) => /* @__PURE__ */ S("span", {
181
+ className: "mineral-mini-calendar__marker",
182
+ style: { background: ee(e.color) }
183
+ }, t))
184
+ }) : null]
185
+ })
186
+ }, u(e));
187
+ })
188
+ }, u(e[0])))]
189
+ })]
190
+ });
191
+ }
192
+ //#endregion
193
+ export { E as t };
194
+
195
+ //# sourceMappingURL=calendar-DcNYDTVb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-DcNYDTVb.js","names":[],"sources":["../src/utils/useControllableState.ts","../src/components/calendar/MMiniCalendar/MMiniCalendar.tsx"],"sourcesContent":["import {useCallback, useRef, useState} from 'react'\n\n/**\n * Generic controlled/uncontrolled state. The value is controlled when `value !== undefined`\n * (React convention). `onChange` fires for every requested change, controlled or not.\n */\nexport function useControllableState<T>(\n value: T | undefined,\n defaultValue: T | (() => T),\n onChange?: (next: T) => void\n): [T, (next: T) => void] {\n const [inner, setInner] = useState<T>(defaultValue)\n const controlled = value !== undefined\n const current = controlled ? (value as T) : inner\n const onChangeRef = useRef(onChange)\n onChangeRef.current = onChange\n const currentRef = useRef(current)\n currentRef.current = current\n\n const setValue = useCallback(\n (next: T) => {\n if (!controlled) {\n setInner(next)\n }\n if (!Object.is(next, currentRef.current)) {\n onChangeRef.current?.(next)\n }\n },\n [controlled]\n )\n\n return [current, setValue]\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {CSSProperties, KeyboardEvent} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {useDocumentLocale} from '../../../utils/locale'\nimport {useControllableState} from '../../../utils/useControllableState'\nimport {\n addDays,\n addMonthsClamped,\n getDateKey,\n getMonthMatrix,\n getWeekdayLabels,\n isSameDay,\n isSameMonth,\n normalizeDate,\n startOfMonth,\n startOfWeek,\n stripTime,\n} from '../../../utils/calendarDates'\nimport {useMMiniCalendarTexts} from '../../../i18n/frameworkTexts'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport type {MMiniCalendarMarker, MMiniCalendarProps} from './MMiniCalendar.types'\nimport './MMiniCalendar.css'\n\nconst COLOR_FAMILIES = new Set(['primary', 'neutral', 'success', 'error', 'warning', 'info', 'light', 'dark', 'news'])\n\nfunction markerColor(color?: string): string {\n if (!color) {\n return 'var(--mineral-primary)'\n }\n return COLOR_FAMILIES.has(color) ? `var(--mineral-${color})` : color\n}\n\nfunction toMarkerList(value: MMiniCalendarMarker | MMiniCalendarMarker[] | null | undefined): MMiniCalendarMarker[] {\n if (!value) {\n return []\n }\n return Array.isArray(value) ? value : [value]\n}\n\n/**\n * Compact month grid with WAI-ARIA date-grid keyboard support: arrows move by day or week,\n * PageUp/PageDown by month (Shift: year), Home/End to the week edges, Enter/Space selects.\n */\nexport function MMiniCalendar({\n value,\n defaultValue = null,\n onChange,\n month,\n defaultMonth,\n onMonthChange,\n min,\n max,\n disabledDates,\n weekStartsOn = 1,\n locale: localeProp,\n highlightRange,\n markers,\n showOutsideDays = true,\n size = 'md',\n color = 'primary',\n texts: textsProp,\n autoFocus = false,\n className,\n style,\n ...rest\n}: MMiniCalendarProps) {\n const locale = useDocumentLocale(localeProp)\n const texts = useMMiniCalendarTexts(locale, textsProp)\n const [selected, setSelected] = useControllableState<Date | null>(value, defaultValue, (next) => {\n if (next) {\n onChange?.(next)\n }\n })\n const today = stripTime(new Date())\n const [visibleMonth, setVisibleMonth] = useControllableState<Date>(\n month ? startOfMonth(month) : undefined,\n () => startOfMonth(defaultMonth ?? value ?? defaultValue ?? today),\n onMonthChange\n )\n const [focusDate, setFocusDate] = useState<Date>(() => stripTime(value ?? defaultValue ?? today))\n const gridRef = useRef<HTMLDivElement>(null)\n const shouldFocusRef = useRef(autoFocus)\n\n const minDate = useMemo(() => normalizeDate(min ?? null), [min])\n const maxDate = useMemo(() => normalizeDate(max ?? null), [max])\n\n const isDisabled = (date: Date) => {\n if (minDate && date < minDate) {\n return true\n }\n if (maxDate && date > maxDate) {\n return true\n }\n if (typeof disabledDates === 'function') {\n return disabledDates(date)\n }\n return Boolean(disabledDates?.some((item) => isSameDay(item, date)))\n }\n\n // A value set from outside (controlled `value`) brings its month into view.\n const valueKey = value ? getDateKey(value) : null\n const lastValueKeyRef = useRef(valueKey)\n useEffect(() => {\n if (valueKey === lastValueKeyRef.current) {\n return\n }\n lastValueKeyRef.current = valueKey\n if (!value) {\n return\n }\n setFocusDate(stripTime(value))\n if (!isSameMonth(value, visibleMonth)) {\n setVisibleMonth(startOfMonth(value))\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey])\n\n // Keep the roving focus target inside the displayed month.\n useEffect(() => {\n if (!isSameMonth(focusDate, visibleMonth)) {\n const candidate = selected && isSameMonth(selected, visibleMonth) ? selected : visibleMonth\n setFocusDate(stripTime(candidate))\n }\n }, [visibleMonth])\n\n useEffect(() => {\n if (!shouldFocusRef.current) {\n return\n }\n shouldFocusRef.current = false\n const node = gridRef.current?.querySelector<HTMLButtonElement>(`[data-date=\"${getDateKey(focusDate)}\"]`)\n node?.focus()\n }, [focusDate])\n\n const days = useMemo(() => getMonthMatrix(visibleMonth, weekStartsOn), [visibleMonth, weekStartsOn])\n const weeks = useMemo(() => Array.from({length: 6}, (_, index) => days.slice(index * 7, index * 7 + 7)), [days])\n const weekdayLabels = useMemo(() => getWeekdayLabels(locale, weekStartsOn, 'short'), [locale, weekStartsOn])\n const weekdayLong = useMemo(() => getWeekdayLabels(locale, weekStartsOn, 'long'), [locale, weekStartsOn])\n const monthTitle = new Intl.DateTimeFormat(locale, {month: 'long', year: 'numeric'}).format(visibleMonth)\n const dayLabelFormatter = useMemo(\n () => new Intl.DateTimeFormat(locale, {weekday: 'long', day: 'numeric', month: 'long', year: 'numeric'}),\n [locale]\n )\n\n const rangeStart = highlightRange ? stripTime(highlightRange.start) : null\n const rangeEnd = highlightRange ? stripTime(highlightRange.end) : null\n\n const moveFocus = (next: Date) => {\n const target = stripTime(next)\n shouldFocusRef.current = true\n setFocusDate(target)\n if (!isSameMonth(target, visibleMonth)) {\n setVisibleMonth(startOfMonth(target))\n }\n }\n\n const select = (date: Date) => {\n if (isDisabled(date)) {\n return\n }\n setSelected(date)\n setFocusDate(date)\n if (!isSameMonth(date, visibleMonth)) {\n setVisibleMonth(startOfMonth(date))\n }\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const current = focusDate\n let next: Date | null = null\n switch (event.key) {\n case 'ArrowLeft':\n next = addDays(current, -1)\n break\n case 'ArrowRight':\n next = addDays(current, 1)\n break\n case 'ArrowUp':\n next = addDays(current, -7)\n break\n case 'ArrowDown':\n next = addDays(current, 7)\n break\n case 'PageUp':\n next = addMonthsClamped(current, event.shiftKey ? -12 : -1)\n break\n case 'PageDown':\n next = addMonthsClamped(current, event.shiftKey ? 12 : 1)\n break\n case 'Home':\n next = startOfWeek(current, weekStartsOn)\n break\n case 'End':\n next = addDays(startOfWeek(current, weekStartsOn), 6)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n select(current)\n return\n default:\n return\n }\n event.preventDefault()\n moveFocus(next)\n }\n\n const goMonth = (amount: number) => {\n const nextMonth = startOfMonth(addMonthsClamped(visibleMonth, amount))\n setVisibleMonth(nextMonth)\n }\n\n return (\n <div\n className={cn('mineral-mini-calendar', `mineral-mini-calendar--${size}`, className)}\n style={\n {\n ['--mineral-mini-calendar-accent' as string]: `var(--mineral-${color})`,\n ['--mineral-mini-calendar-accent-contrast' as string]: `var(--mineral-${color}-contrast)`,\n ...style,\n } as CSSProperties\n }\n {...rest}\n >\n <div className={'mineral-mini-calendar__header'}>\n <MButton\n size={'sm'}\n variant={'ghost'}\n color={color}\n iconOnly\n aria-label={texts.previousMonth}\n startIcon={<MChevronLeftIcon size={16} />}\n onClick={() => goMonth(-1)}\n />\n <span className={'mineral-mini-calendar__title'} aria-live={'polite'}>\n {monthTitle}\n </span>\n <MButton\n size={'sm'}\n variant={'ghost'}\n color={color}\n iconOnly\n aria-label={texts.nextMonth}\n startIcon={<MChevronRightIcon size={16} />}\n onClick={() => goMonth(1)}\n />\n </div>\n <div\n ref={gridRef}\n className={'mineral-mini-calendar__grid'}\n role={'grid'}\n aria-label={monthTitle}\n onKeyDown={handleKeyDown}\n >\n <div className={'mineral-mini-calendar__row'} role={'row'}>\n {weekdayLabels.map((label, index) => (\n <span\n key={label + index}\n className={'mineral-mini-calendar__weekday'}\n role={'columnheader'}\n aria-label={weekdayLong[index]}\n >\n {label}\n </span>\n ))}\n </div>\n {weeks.map((week) => (\n <div key={getDateKey(week[0])} className={'mineral-mini-calendar__row'} role={'row'}>\n {week.map((day) => {\n const outside = !isSameMonth(day, visibleMonth)\n if (outside && !showOutsideDays) {\n return (\n <span\n key={getDateKey(day)}\n className={'mineral-mini-calendar__cell'}\n role={'gridcell'}\n />\n )\n }\n const disabled = isDisabled(day)\n const isSelected = Boolean(selected && isSameDay(selected, day))\n const isToday = isSameDay(today, day)\n const inRange = Boolean(rangeStart && rangeEnd && day >= rangeStart && day <= rangeEnd)\n const dayMarkers = markers ? toMarkerList(markers(day)) : []\n const markerText = dayMarkers\n .map((marker) => marker.label)\n .filter(Boolean)\n .join(', ')\n return (\n <span\n key={getDateKey(day)}\n className={'mineral-mini-calendar__cell'}\n role={'gridcell'}\n aria-selected={isSelected}\n >\n <button\n type={'button'}\n data-date={getDateKey(day)}\n className={cn(\n 'mineral-mini-calendar__day',\n outside && 'mineral-mini-calendar__day--outside',\n isToday && 'mineral-mini-calendar__day--today',\n isSelected && 'mineral-mini-calendar__day--selected',\n inRange && 'mineral-mini-calendar__day--in-range',\n disabled && 'mineral-mini-calendar__day--disabled',\n disabled && 'm-unavailable'\n )}\n tabIndex={isSameDay(day, focusDate) ? 0 : -1}\n // Not native `disabled`: the roving tab stop may land on an\n // unavailable day (arrow past min/max) and must stay focusable.\n aria-disabled={disabled || undefined}\n aria-current={isToday ? 'date' : undefined}\n aria-label={\n markerText\n ? `${dayLabelFormatter.format(day)}, ${markerText}`\n : dayLabelFormatter.format(day)\n }\n onClick={() => select(day)}\n onFocus={() => {\n if (!isSameDay(day, focusDate)) {\n setFocusDate(day)\n }\n }}\n >\n <span className={'mineral-mini-calendar__number'}>{day.getDate()}</span>\n {dayMarkers.length > 0 ? (\n <span className={'mineral-mini-calendar__markers'} aria-hidden={'true'}>\n {dayMarkers.slice(0, 3).map((marker, index) => (\n <span\n key={index}\n className={'mineral-mini-calendar__marker'}\n style={{background: markerColor(marker.color)}}\n />\n ))}\n </span>\n ) : null}\n </button>\n </span>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n"],"mappings":"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"}
package/dist/calendar.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  const {ensureStyles}=require('./style-runtime.cjs')
2
2
  ensureStyles()
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./calendar-C57BH8Nd.cjs`);exports.MMiniCalendar=e.t;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./calendar-2yhnCkGW.cjs`);exports.MMiniCalendar=e.t;
package/dist/calendar.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { t as e } from "./calendar-Bq6NMNnS.js";
3
+ import { t as e } from "./calendar-DcNYDTVb.js";
4
4
  export { e as MMiniCalendar };
@@ -7,44 +7,55 @@ function t(e) {
7
7
  function n(e) {
8
8
  return new Date(e.getFullYear(), e.getMonth(), e.getDate());
9
9
  }
10
- function r(r) {
11
- if (!r) return null;
12
- let i = e(r);
13
- return t(i) ? n(i) : null;
14
- }
15
- function i(e, t) {
10
+ var r = /^(\d{4})-(\d{2})-(\d{2})$/;
11
+ function i(i) {
12
+ if (!i) return null;
13
+ if (typeof i == "string") {
14
+ let e = r.exec(i.trim());
15
+ if (e) {
16
+ let t = new Date(Number(e[1]), Number(e[2]) - 1, Number(e[3]));
17
+ return t.getMonth() === Number(e[2]) - 1 ? t : null;
18
+ }
19
+ }
20
+ let a = e(i);
21
+ return t(a) ? n(a) : null;
22
+ }
23
+ function a(e, t) {
16
24
  let n = new Date(e);
17
25
  return n.setDate(n.getDate() + t), n;
18
26
  }
19
- function a(e) {
27
+ function o(e) {
20
28
  return new Date(e.getFullYear(), e.getMonth(), 1);
21
29
  }
22
- function o(e, t) {
30
+ function s(e, t) {
31
+ return new Date(e.getFullYear(), e.getMonth() + t, 1);
32
+ }
33
+ function c(e, t) {
23
34
  let n = new Date(e.getFullYear(), e.getMonth() + t, 1), r = new Date(n.getFullYear(), n.getMonth() + 1, 0).getDate();
24
35
  return n.setDate(Math.min(e.getDate(), r)), n;
25
36
  }
26
- function s(e, t) {
37
+ function l(e, t) {
27
38
  return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
28
39
  }
29
- function c(e, t) {
40
+ function u(e, t) {
30
41
  return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth();
31
42
  }
32
- function l(e, t = 1) {
43
+ function d(e, t = 1) {
33
44
  let r = n(e);
34
- return n(i(r, -((r.getDay() - t + 7) % 7)));
45
+ return n(a(r, -((r.getDay() - t + 7) % 7)));
35
46
  }
36
- function u(e) {
47
+ function f(e) {
37
48
  return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
38
49
  }
39
- function d(e, t = 1) {
40
- let r = l(a(e), t);
41
- return Array.from({ length: 42 }, (e, t) => n(i(r, t)));
50
+ function p(e, t = 1) {
51
+ let r = d(o(e), t);
52
+ return Array.from({ length: 42 }, (e, t) => n(a(r, t)));
42
53
  }
43
- function f(e, t = 1, n = "short") {
54
+ function m(e, t = 1, n = "short") {
44
55
  let r = new Intl.DateTimeFormat(e, { weekday: n });
45
56
  return Array.from({ length: 7 }, (e, n) => r.format(new Date(2023, 0, 1 + (n + t) % 7)));
46
57
  }
47
58
  //#endregion
48
- export { f as a, r as c, n as d, d as i, a as l, o as n, s as o, u as r, c as s, i as t, l as u };
59
+ export { p as a, u as c, d, n as f, f as i, i as l, c as n, m as o, s as r, l as s, a as t, o as u };
49
60
 
50
- //# sourceMappingURL=calendarDates-M_Dawj0j.js.map
61
+ //# sourceMappingURL=calendarDates-Bpw_G_QR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarDates-Bpw_G_QR.js","names":[],"sources":["../src/utils/calendarDates.ts"],"sourcesContent":["/**\n * Internal date helpers shared by the calendar family (MCalendarBoard, MTimelineBoard,\n * MMiniCalendar, MScheduler) and MDatePicker. Basic-safe: no Pro imports, not re-exported\n * from the package root. Every helper works in the browser's local time zone.\n */\n\nexport const MS_PER_MINUTE = 60_000\nexport const MS_PER_HOUR = 3_600_000\nexport const MS_PER_DAY = 24 * MS_PER_HOUR\n\nexport type CalendarWeekStart = 0 | 1\n\nexport function toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value)\n}\n\nexport function isValidDate(value: Date): boolean {\n return !Number.isNaN(value.getTime())\n}\n\nexport function parseHmToMinutes(value?: string): number | null {\n if (!value) {\n return null\n }\n const match = /^(\\d{1,2}):(\\d{2})$/.exec(value)\n if (!match) {\n return null\n }\n return Number(match[1]) * 60 + Number(match[2])\n}\n\nexport function startOfDay(date: Date): Date {\n const next = new Date(date)\n next.setHours(0, 0, 0, 0)\n return next\n}\n\nexport function stripTime(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\n}\n\nconst DATE_ONLY_PATTERN = /^(\\d{4})-(\\d{2})-(\\d{2})$/\n\n/**\n * Calendar day of `value` at local midnight. A date-only string (`yyyy-MM-dd`) is read as a\n * local day — `new Date('2026-09-24')` would read it as UTC midnight, which is the previous\n * day in every UTC−x zone.\n */\nexport function normalizeDate(value?: Date | string | null): Date | null {\n if (!value) {\n return null\n }\n if (typeof value === 'string') {\n const match = DATE_ONLY_PATTERN.exec(value.trim())\n if (match) {\n const local = new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]))\n return local.getMonth() === Number(match[2]) - 1 ? local : null\n }\n }\n const parsed = toDate(value)\n if (!isValidDate(parsed)) {\n return null\n }\n return stripTime(parsed)\n}\n\n/** Adds calendar days (DST-safe, keeps the wall-clock time). */\nexport function addDays(date: Date, amount: number): Date {\n const next = new Date(date)\n next.setDate(next.getDate() + amount)\n return next\n}\n\nexport function addMinutes(date: Date, amount: number): Date {\n return new Date(date.getTime() + amount * MS_PER_MINUTE)\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\n/** First day of the month `amount` months away from `date`. */\nexport function addMonthsToMonth(date: Date, amount: number): Date {\n return new Date(date.getFullYear(), date.getMonth() + amount, 1)\n}\n\n/** Same day of month `amount` months away, clamped to the target month length. */\nexport function addMonthsClamped(date: Date, amount: number): Date {\n const target = new Date(date.getFullYear(), date.getMonth() + amount, 1)\n const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate()\n target.setDate(Math.min(date.getDate(), lastDay))\n return target\n}\n\nexport function isSameDay(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate()\n}\n\nexport function isSameMonth(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth()\n}\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function startOfWeek(date: Date, weekStartsOn: CalendarWeekStart = 1): Date {\n const safeDate = stripTime(date)\n const delta = (safeDate.getDay() - weekStartsOn + 7) % 7\n return stripTime(addDays(safeDate, -delta))\n}\n\nexport function getDateKey(date: Date): string {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n return `${year}-${month}-${day}`\n}\n\nexport function isWeekend(date: Date): boolean {\n const day = date.getDay()\n return day === 0 || day === 6\n}\n\n/** Minutes elapsed since local midnight. */\nexport function minutesOfDay(date: Date): number {\n return date.getHours() * 60 + date.getMinutes() + date.getSeconds() / 60\n}\n\n/** Whole calendar days between two dates (b - a), ignoring the time of day. */\nexport function diffCalendarDays(a: Date, b: Date): number {\n return Math.round((stripTime(b).getTime() - stripTime(a).getTime()) / MS_PER_DAY)\n}\n\n/** The 6 x 7 month grid starting on `weekStartsOn`, outside days included. */\nexport function getMonthMatrix(month: Date, weekStartsOn: CalendarWeekStart = 1): Date[] {\n const gridStart = startOfWeek(startOfMonth(month), weekStartsOn)\n return Array.from({length: 42}, (_, index) => stripTime(addDays(gridStart, index)))\n}\n\n/** Localised short weekday names, ordered from `weekStartsOn`. */\nexport function getWeekdayLabels(\n locale: string,\n weekStartsOn: CalendarWeekStart = 1,\n format: 'narrow' | 'short' | 'long' = 'short'\n): string[] {\n const formatter = new Intl.DateTimeFormat(locale, {weekday: format})\n // 2023-01-01 was a Sunday.\n return Array.from({length: 7}, (_, index) => formatter.format(new Date(2023, 0, 1 + ((index + weekStartsOn) % 7))))\n}\n\nexport function formatHourLabel(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {hour: '2-digit', minute: '2-digit', hour12: false}).format(date)\n}\n\nexport function formatDayLabel(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {weekday: 'short', day: '2-digit', month: 'short'}).format(date)\n}\n\nexport function formatShortWeekday(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {weekday: 'short'}).format(date)\n}\n\nexport function formatRangeLabel(start: Date, end: Date, locale: string): string {\n return `${formatHourLabel(start, locale)} – ${formatHourLabel(end, locale)}`\n}\n\nexport function formatFullDate(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {weekday: 'long', day: 'numeric', month: 'long', year: 'numeric'}).format(\n date\n )\n}\n\nexport function formatMonthTitle(date: Date, locale: string, withYear = true): string {\n return new Intl.DateTimeFormat(locale, withYear ? {month: 'long', year: 'numeric'} : {month: 'long'}).format(date)\n}\n\ntype RangeFormatter = Intl.DateTimeFormat & {formatRange?: (start: Date, end: Date) => string}\n\n/** \"21 – 27 September 2026\", \"28 September – 4 October 2026\", with a plain fallback. */\nexport function formatDateRange(start: Date, endInclusive: Date, locale: string): string {\n const formatter = new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }) as RangeFormatter\n if (isSameDay(start, endInclusive)) {\n return formatter.format(start)\n }\n if (typeof formatter.formatRange === 'function') {\n return formatter.formatRange(start, endInclusive)\n }\n return `${formatter.format(start)} – ${formatter.format(endInclusive)}`\n}\n\nexport type CalendarPeriodView = 'week' | 'day' | 'timeline' | 'month' | 'agenda'\n\n/**\n * Toolbar title for a period. `end` is exclusive. Month uses the month that holds the\n * middle of the range, so a 6-week grid still reads \"September 2026\".\n */\nexport function formatPeriodTitle(view: CalendarPeriodView, start: Date, end: Date, locale: string): string {\n if (view === 'month') {\n const middle = new Date((start.getTime() + end.getTime()) / 2)\n return formatMonthTitle(middle, locale)\n }\n if (view === 'day' || view === 'timeline') {\n return formatFullDate(start, locale)\n }\n const lastDay = addDays(end, -1)\n return formatDateRange(start, lastDay, locale)\n}\n"],"mappings":"AAYA,SAAgB,EAAO,GAA4B;AAC/C,QAAO,aAAiB,OAAO,IAAQ,IAAI,KAAK,EAAM;;AAG1D,SAAgB,EAAY,GAAsB;AAC9C,QAAO,CAAC,OAAO,MAAM,EAAM,SAAS,CAAC;;AAoBzC,SAAgB,EAAU,GAAkB;AACxC,QAAO,IAAI,KAAK,EAAK,aAAa,EAAE,EAAK,UAAU,EAAE,EAAK,SAAS,CAAC;;AAGxE,IAAM,IAAoB;AAO1B,SAAgB,EAAc,GAA2C;AACrE,KAAI,CAAC,EACD,QAAO;AAEX,KAAI,OAAO,KAAU,UAAU;EAC3B,IAAM,IAAQ,EAAkB,KAAK,EAAM,MAAM,CAAC;AAClD,MAAI,GAAO;GACP,IAAM,IAAQ,IAAI,KAAK,OAAO,EAAM,GAAG,EAAE,OAAO,EAAM,GAAG,GAAG,GAAG,OAAO,EAAM,GAAG,CAAC;AAChF,UAAO,EAAM,UAAU,KAAK,OAAO,EAAM,GAAG,GAAG,IAAI,IAAQ;;;CAGnE,IAAM,IAAS,EAAO,EAAM;AAI5B,QAHK,EAAY,EAAO,GAGjB,EAAU,EAAO,GAFb;;AAMf,SAAgB,EAAQ,GAAY,GAAsB;CACtD,IAAM,IAAO,IAAI,KAAK,EAAK;AAE3B,QADA,EAAK,QAAQ,EAAK,SAAS,GAAG,EAAO,EAC9B;;AAOX,SAAgB,EAAa,GAAkB;AAC3C,QAAO,IAAI,KAAK,EAAK,aAAa,EAAE,EAAK,UAAU,EAAE,EAAE;;AAI3D,SAAgB,EAAiB,GAAY,GAAsB;AAC/D,QAAO,IAAI,KAAK,EAAK,aAAa,EAAE,EAAK,UAAU,GAAG,GAAQ,EAAE;;AAIpE,SAAgB,EAAiB,GAAY,GAAsB;CAC/D,IAAM,IAAS,IAAI,KAAK,EAAK,aAAa,EAAE,EAAK,UAAU,GAAG,GAAQ,EAAE,EAClE,IAAU,IAAI,KAAK,EAAO,aAAa,EAAE,EAAO,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS;AAElF,QADA,EAAO,QAAQ,KAAK,IAAI,EAAK,SAAS,EAAE,EAAQ,CAAC,EAC1C;;AAGX,SAAgB,EAAU,GAAS,GAAkB;AACjD,QAAO,EAAE,aAAa,KAAK,EAAE,aAAa,IAAI,EAAE,UAAU,KAAK,EAAE,UAAU,IAAI,EAAE,SAAS,KAAK,EAAE,SAAS;;AAG9G,SAAgB,EAAY,GAAS,GAAkB;AACnD,QAAO,EAAE,aAAa,KAAK,EAAE,aAAa,IAAI,EAAE,UAAU,KAAK,EAAE,UAAU;;AAO/E,SAAgB,EAAY,GAAY,IAAkC,GAAS;CAC/E,IAAM,IAAW,EAAU,EAAK;AAEhC,QAAO,EAAU,EAAQ,GAAU,GADpB,EAAS,QAAQ,GAAG,IAAe,KAAK,GACb,CAAC;;AAG/C,SAAgB,EAAW,GAAoB;AAI3C,QAAO,GAHM,EAAK,aAAa,CAGhB,GAFD,OAAO,EAAK,UAAU,GAAG,EAAE,CAAC,SAAS,GAAG,IAAI,CAElC,GADZ,OAAO,EAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;;AAoBvD,SAAgB,EAAe,GAAa,IAAkC,GAAW;CACrF,IAAM,IAAY,EAAY,EAAa,EAAM,EAAE,EAAa;AAChE,QAAO,MAAM,KAAK,EAAC,QAAQ,IAAG,GAAG,GAAG,MAAU,EAAU,EAAQ,GAAW,EAAM,CAAC,CAAC;;AAIvF,SAAgB,EACZ,GACA,IAAkC,GAClC,IAAsC,SAC9B;CACR,IAAM,IAAY,IAAI,KAAK,eAAe,GAAQ,EAAC,SAAS,GAAO,CAAC;AAEpE,QAAO,MAAM,KAAK,EAAC,QAAQ,GAAE,GAAG,GAAG,MAAU,EAAU,OAAO,IAAI,KAAK,MAAM,GAAG,KAAM,IAAQ,KAAgB,EAAG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ function e(e){return e instanceof Date?e:new Date(e)}function t(e){return!Number.isNaN(e.getTime())}function n(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}var r=/^(\d{4})-(\d{2})-(\d{2})$/;function i(i){if(!i)return null;if(typeof i==`string`){let e=r.exec(i.trim());if(e){let t=new Date(Number(e[1]),Number(e[2])-1,Number(e[3]));return t.getMonth()===Number(e[2])-1?t:null}}let a=e(i);return t(a)?n(a):null}function a(e,t){let n=new Date(e);return n.setDate(n.getDate()+t),n}function o(e){return new Date(e.getFullYear(),e.getMonth(),1)}function s(e,t){return new Date(e.getFullYear(),e.getMonth()+t,1)}function c(e,t){let n=new Date(e.getFullYear(),e.getMonth()+t,1),r=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(e.getDate(),r)),n}function l(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function u(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}function d(e,t=1){let r=n(e);return n(a(r,-((r.getDay()-t+7)%7)))}function f(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function p(e,t=1){let r=d(o(e),t);return Array.from({length:42},(e,t)=>n(a(r,t)))}function m(e,t=1,n=`short`){let r=new Intl.DateTimeFormat(e,{weekday:n});return Array.from({length:7},(e,n)=>r.format(new Date(2023,0,1+(n+t)%7)))}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=calendarDates-Cg0nm69Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarDates-Cg0nm69Y.cjs","names":[],"sources":["../src/utils/calendarDates.ts"],"sourcesContent":["/**\n * Internal date helpers shared by the calendar family (MCalendarBoard, MTimelineBoard,\n * MMiniCalendar, MScheduler) and MDatePicker. Basic-safe: no Pro imports, not re-exported\n * from the package root. Every helper works in the browser's local time zone.\n */\n\nexport const MS_PER_MINUTE = 60_000\nexport const MS_PER_HOUR = 3_600_000\nexport const MS_PER_DAY = 24 * MS_PER_HOUR\n\nexport type CalendarWeekStart = 0 | 1\n\nexport function toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value)\n}\n\nexport function isValidDate(value: Date): boolean {\n return !Number.isNaN(value.getTime())\n}\n\nexport function parseHmToMinutes(value?: string): number | null {\n if (!value) {\n return null\n }\n const match = /^(\\d{1,2}):(\\d{2})$/.exec(value)\n if (!match) {\n return null\n }\n return Number(match[1]) * 60 + Number(match[2])\n}\n\nexport function startOfDay(date: Date): Date {\n const next = new Date(date)\n next.setHours(0, 0, 0, 0)\n return next\n}\n\nexport function stripTime(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\n}\n\nconst DATE_ONLY_PATTERN = /^(\\d{4})-(\\d{2})-(\\d{2})$/\n\n/**\n * Calendar day of `value` at local midnight. A date-only string (`yyyy-MM-dd`) is read as a\n * local day — `new Date('2026-09-24')` would read it as UTC midnight, which is the previous\n * day in every UTC−x zone.\n */\nexport function normalizeDate(value?: Date | string | null): Date | null {\n if (!value) {\n return null\n }\n if (typeof value === 'string') {\n const match = DATE_ONLY_PATTERN.exec(value.trim())\n if (match) {\n const local = new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]))\n return local.getMonth() === Number(match[2]) - 1 ? local : null\n }\n }\n const parsed = toDate(value)\n if (!isValidDate(parsed)) {\n return null\n }\n return stripTime(parsed)\n}\n\n/** Adds calendar days (DST-safe, keeps the wall-clock time). */\nexport function addDays(date: Date, amount: number): Date {\n const next = new Date(date)\n next.setDate(next.getDate() + amount)\n return next\n}\n\nexport function addMinutes(date: Date, amount: number): Date {\n return new Date(date.getTime() + amount * MS_PER_MINUTE)\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\n/** First day of the month `amount` months away from `date`. */\nexport function addMonthsToMonth(date: Date, amount: number): Date {\n return new Date(date.getFullYear(), date.getMonth() + amount, 1)\n}\n\n/** Same day of month `amount` months away, clamped to the target month length. */\nexport function addMonthsClamped(date: Date, amount: number): Date {\n const target = new Date(date.getFullYear(), date.getMonth() + amount, 1)\n const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate()\n target.setDate(Math.min(date.getDate(), lastDay))\n return target\n}\n\nexport function isSameDay(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate()\n}\n\nexport function isSameMonth(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth()\n}\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function startOfWeek(date: Date, weekStartsOn: CalendarWeekStart = 1): Date {\n const safeDate = stripTime(date)\n const delta = (safeDate.getDay() - weekStartsOn + 7) % 7\n return stripTime(addDays(safeDate, -delta))\n}\n\nexport function getDateKey(date: Date): string {\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n return `${year}-${month}-${day}`\n}\n\nexport function isWeekend(date: Date): boolean {\n const day = date.getDay()\n return day === 0 || day === 6\n}\n\n/** Minutes elapsed since local midnight. */\nexport function minutesOfDay(date: Date): number {\n return date.getHours() * 60 + date.getMinutes() + date.getSeconds() / 60\n}\n\n/** Whole calendar days between two dates (b - a), ignoring the time of day. */\nexport function diffCalendarDays(a: Date, b: Date): number {\n return Math.round((stripTime(b).getTime() - stripTime(a).getTime()) / MS_PER_DAY)\n}\n\n/** The 6 x 7 month grid starting on `weekStartsOn`, outside days included. */\nexport function getMonthMatrix(month: Date, weekStartsOn: CalendarWeekStart = 1): Date[] {\n const gridStart = startOfWeek(startOfMonth(month), weekStartsOn)\n return Array.from({length: 42}, (_, index) => stripTime(addDays(gridStart, index)))\n}\n\n/** Localised short weekday names, ordered from `weekStartsOn`. */\nexport function getWeekdayLabels(\n locale: string,\n weekStartsOn: CalendarWeekStart = 1,\n format: 'narrow' | 'short' | 'long' = 'short'\n): string[] {\n const formatter = new Intl.DateTimeFormat(locale, {weekday: format})\n // 2023-01-01 was a Sunday.\n return Array.from({length: 7}, (_, index) => formatter.format(new Date(2023, 0, 1 + ((index + weekStartsOn) % 7))))\n}\n\nexport function formatHourLabel(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {hour: '2-digit', minute: '2-digit', hour12: false}).format(date)\n}\n\nexport function formatDayLabel(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {weekday: 'short', day: '2-digit', month: 'short'}).format(date)\n}\n\nexport function formatShortWeekday(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {weekday: 'short'}).format(date)\n}\n\nexport function formatRangeLabel(start: Date, end: Date, locale: string): string {\n return `${formatHourLabel(start, locale)} – ${formatHourLabel(end, locale)}`\n}\n\nexport function formatFullDate(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {weekday: 'long', day: 'numeric', month: 'long', year: 'numeric'}).format(\n date\n )\n}\n\nexport function formatMonthTitle(date: Date, locale: string, withYear = true): string {\n return new Intl.DateTimeFormat(locale, withYear ? {month: 'long', year: 'numeric'} : {month: 'long'}).format(date)\n}\n\ntype RangeFormatter = Intl.DateTimeFormat & {formatRange?: (start: Date, end: Date) => string}\n\n/** \"21 – 27 September 2026\", \"28 September – 4 October 2026\", with a plain fallback. */\nexport function formatDateRange(start: Date, endInclusive: Date, locale: string): string {\n const formatter = new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }) as RangeFormatter\n if (isSameDay(start, endInclusive)) {\n return formatter.format(start)\n }\n if (typeof formatter.formatRange === 'function') {\n return formatter.formatRange(start, endInclusive)\n }\n return `${formatter.format(start)} – ${formatter.format(endInclusive)}`\n}\n\nexport type CalendarPeriodView = 'week' | 'day' | 'timeline' | 'month' | 'agenda'\n\n/**\n * Toolbar title for a period. `end` is exclusive. Month uses the month that holds the\n * middle of the range, so a 6-week grid still reads \"September 2026\".\n */\nexport function formatPeriodTitle(view: CalendarPeriodView, start: Date, end: Date, locale: string): string {\n if (view === 'month') {\n const middle = new Date((start.getTime() + end.getTime()) / 2)\n return formatMonthTitle(middle, locale)\n }\n if (view === 'day' || view === 'timeline') {\n return formatFullDate(start, locale)\n }\n const lastDay = addDays(end, -1)\n return formatDateRange(start, lastDay, locale)\n}\n"],"mappings":"AAYA,SAAgB,EAAO,EAA4B,CAC/C,OAAO,aAAiB,KAAO,EAAQ,IAAI,KAAK,EAAM,CAG1D,SAAgB,EAAY,EAAsB,CAC9C,MAAO,CAAC,OAAO,MAAM,EAAM,SAAS,CAAC,CAoBzC,SAAgB,EAAU,EAAkB,CACxC,OAAO,IAAI,KAAK,EAAK,aAAa,CAAE,EAAK,UAAU,CAAE,EAAK,SAAS,CAAC,CAGxE,IAAM,EAAoB,4BAO1B,SAAgB,EAAc,EAA2C,CACrE,GAAI,CAAC,EACD,OAAO,KAEX,GAAI,OAAO,GAAU,SAAU,CAC3B,IAAM,EAAQ,EAAkB,KAAK,EAAM,MAAM,CAAC,CAClD,GAAI,EAAO,CACP,IAAM,EAAQ,IAAI,KAAK,OAAO,EAAM,GAAG,CAAE,OAAO,EAAM,GAAG,CAAG,EAAG,OAAO,EAAM,GAAG,CAAC,CAChF,OAAO,EAAM,UAAU,GAAK,OAAO,EAAM,GAAG,CAAG,EAAI,EAAQ,MAGnE,IAAM,EAAS,EAAO,EAAM,CAI5B,OAHK,EAAY,EAAO,CAGjB,EAAU,EAAO,CAFb,KAMf,SAAgB,EAAQ,EAAY,EAAsB,CACtD,IAAM,EAAO,IAAI,KAAK,EAAK,CAE3B,OADA,EAAK,QAAQ,EAAK,SAAS,CAAG,EAAO,CAC9B,EAOX,SAAgB,EAAa,EAAkB,CAC3C,OAAO,IAAI,KAAK,EAAK,aAAa,CAAE,EAAK,UAAU,CAAE,EAAE,CAI3D,SAAgB,EAAiB,EAAY,EAAsB,CAC/D,OAAO,IAAI,KAAK,EAAK,aAAa,CAAE,EAAK,UAAU,CAAG,EAAQ,EAAE,CAIpE,SAAgB,EAAiB,EAAY,EAAsB,CAC/D,IAAM,EAAS,IAAI,KAAK,EAAK,aAAa,CAAE,EAAK,UAAU,CAAG,EAAQ,EAAE,CAClE,EAAU,IAAI,KAAK,EAAO,aAAa,CAAE,EAAO,UAAU,CAAG,EAAG,EAAE,CAAC,SAAS,CAElF,OADA,EAAO,QAAQ,KAAK,IAAI,EAAK,SAAS,CAAE,EAAQ,CAAC,CAC1C,EAGX,SAAgB,EAAU,EAAS,EAAkB,CACjD,OAAO,EAAE,aAAa,GAAK,EAAE,aAAa,EAAI,EAAE,UAAU,GAAK,EAAE,UAAU,EAAI,EAAE,SAAS,GAAK,EAAE,SAAS,CAG9G,SAAgB,EAAY,EAAS,EAAkB,CACnD,OAAO,EAAE,aAAa,GAAK,EAAE,aAAa,EAAI,EAAE,UAAU,GAAK,EAAE,UAAU,CAO/E,SAAgB,EAAY,EAAY,EAAkC,EAAS,CAC/E,IAAM,EAAW,EAAU,EAAK,CAEhC,OAAO,EAAU,EAAQ,EAAU,GADpB,EAAS,QAAQ,CAAG,EAAe,GAAK,GACb,CAAC,CAG/C,SAAgB,EAAW,EAAoB,CAI3C,MAAO,GAHM,EAAK,aAAa,CAGhB,GAFD,OAAO,EAAK,UAAU,CAAG,EAAE,CAAC,SAAS,EAAG,IAAI,CAElC,GADZ,OAAO,EAAK,SAAS,CAAC,CAAC,SAAS,EAAG,IAAI,GAoBvD,SAAgB,EAAe,EAAa,EAAkC,EAAW,CACrF,IAAM,EAAY,EAAY,EAAa,EAAM,CAAE,EAAa,CAChE,OAAO,MAAM,KAAK,CAAC,OAAQ,GAAG,EAAG,EAAG,IAAU,EAAU,EAAQ,EAAW,EAAM,CAAC,CAAC,CAIvF,SAAgB,EACZ,EACA,EAAkC,EAClC,EAAsC,QAC9B,CACR,IAAM,EAAY,IAAI,KAAK,eAAe,EAAQ,CAAC,QAAS,EAAO,CAAC,CAEpE,OAAO,MAAM,KAAK,CAAC,OAAQ,EAAE,EAAG,EAAG,IAAU,EAAU,OAAO,IAAI,KAAK,KAAM,EAAG,GAAM,EAAQ,GAAgB,EAAG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./frameworkTexts-CaqdiKHW.cjs`),t=require(`./icons-Bp8bB9TP.cjs`),n=require(`./cn-DYFxgzi2.cjs`),r=require(`./creditCards-Bo2mrc53.cjs`),i=require(`./useInteractionEffect-CtXlbjhC.cjs`),a=require(`./MPopover-ZeoU9hb5.cjs`),o=require(`./MSurface-BrFo-JMJ.cjs`),s=require(`./MText-nsvLFsSv.cjs`),c=require(`./MHeading-DiGYs1FJ.cjs`),l=require(`./MLink-C6uwA6db.cjs`),u=require(`./MButton-BxEky3xQ.cjs`),d=require(`./MCheckbox-DpKJpnFF.cjs`),f=require(`./MSkeleton-DuAN8Vcv.cjs`),p=require(`./MLoader-DUOoOoNE.cjs`),m=require(`./MGrid-tBsqShLG.cjs`),h=require(`./MStack-CGII4A-q.cjs`),g=require(`./MCard-Bqm4BjK_.cjs`),_=require(`./MInputCVC-CCNRAqHw.cjs`),v=require(`./MAvatar-CvQuiGvT.cjs`),y=require(`./MDetailList-DkDHLdJ8.cjs`),b=require(`./MInputSearch-BSIc6m2P.cjs`),x=require(`./MTreeView-BWCTlsU-.cjs`),S=require(`./MDropdownMenu-C4-r7UZM.cjs`),C=require(`./MPagination-DitmdtCc.cjs`);require(`./core-w629c4ND.cjs`);let w=require(`react`),T=require(`react/jsx-runtime`);function E(e){if(typeof e==`string`)return e;if(typeof e==`function`){let t=e;return t.displayName??t.name??``}if(typeof e==`object`&&e){let t=e;return t.displayName??t.render?.displayName??t.render?.name??``}return``}function D(e){if(e.props.color!==void 0)return!1;if(e.type===u.t)return!0;let t=E(e.type);return t.startsWith(`M`)&&t.endsWith(`Icon`)}function O(e,t){return t?w.Children.map(e,e=>{if(!(0,w.isValidElement)(e))return e;let n=e,r=n.props,i=r.children?O(r.children,t):r.children,a={};return i!==r.children&&(a.children=i),D(n)&&(a.color=t),Object.keys(a).length?(0,w.cloneElement)(n,a):n}):e}function k({component:e,to:t,href:r,target:a,rel:o,color:s,interactive:c=!0,clickEffect:l,rippleColor:u,className:d,children:f,onPointerDown:p,type:m,...h}){let{component:_,href:v,to:y,isInteractive:b}=g.a({component:e,href:r,to:t,interactive:c,hasClickHandler:!!h.onClick,hasPointerHandler:!!p,fallbackComponent:`button`}),{effectClassName:x,effectLayer:S,handlePointerDown:C}=i.t({effect:l??(b?`ripple`:`none`),disabled:!b,color:u});return(0,T.jsxs)(_,{href:_===`a`||e?v:void 0,to:y,target:a,rel:o,type:_===`button`?m??`button`:void 0,className:n.t(`card-action-area`,s&&`color-${s}`,b&&`interactive`,x,d),onPointerDown:e=>{C(e),p?.(e)},...h,children:[S,(0,T.jsx)(`span`,{className:`card-action-area-content`,children:O(f,s)})]})}function A(e){let t=e.replace(/\D/g,``);return t.length<=4?t:`\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 ${t.slice(-4)}`}function j({component:t,to:a,href:o,target:s,rel:c,holder:l,number:u,expiry:d,brand:f,brandIcon:p,balance:m,balanceLabel:h,holderLabel:_,expiryLabel:v,color:y,interactive:b=!1,clickEffect:x,rippleColor:S,className:C,onPointerDown:w,...E}){let D=e.r().cardPayment,O=r.n(u),k=f??O.brand,j=r.t.find(e=>e.brand===k)??O,M=A(u),N=j.iconLabel,{component:P,href:F,to:I,isInteractive:L}=g.a({component:t,href:o,to:a,interactive:b,hasClickHandler:!!E.onClick,hasPointerHandler:!!w}),{effectClassName:R,effectLayer:z,handlePointerDown:B}=i.t({effect:x??(L?`ripple`:`none`),disabled:!L,color:S});return(0,T.jsxs)(P,{href:P===`a`||t?F:void 0,to:I,target:s,rel:c,className:n.t(`card-payment`,y||`primary`,L&&`interactive`,R,C),onPointerDown:e=>{B(e),w?.(e)},...E,children:[z,m!==void 0&&(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`cp-balance-label`,children:h??D.currentBalance}),(0,T.jsx)(`p`,{className:`cp-balance`,children:m})]}),(0,T.jsxs)(`div`,{className:`cp-row`,children:[(0,T.jsx)(`span`,{className:n.t(`cp-brand`,!p&&k),children:p??N}),(0,T.jsx)(`span`,{className:`cp-number`,children:M})]}),(0,T.jsxs)(`div`,{className:`cp-details`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`cp-field-label`,children:_??D.cardHolder}),(0,T.jsx)(`p`,{className:`cp-field-value`,children:l})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`cp-field-label`,children:v??D.expirationDate}),(0,T.jsx)(`p`,{className:`cp-field-value`,children:d})]})]})]})}function M(e){return r.t.find(t=>t.brand===e)?.iconLabel??`CARD`}function N({title:r,actionLabel:i,actionHref:a=`#`,onAction:c,brand:u=`visa`,brandIcon:d,last4:p,badgeLabel:m,summary:h,helperText:g,expiryLabel:v,cvcLabel:y,expiryProps:b,cvcProps:x,color:S,className:C,...w}){let E=e.r().cardPaymentMethod,D=r===void 0?E.title:r,O=i===void 0?E.change:i,k=g===void 0?E.helperText:g,A=v===void 0?E.expirationDate:v,j=y===void 0?E.securityCode:y,N=b?.value??b?.defaultValue,P=m===void 0?E.defaultBadge:m,F=N?e.t(E.creditCardExpires,{date:String(N).replace(`/`,`.`)}):E.creditCard,I=h===void 0?F:h,L=M(u),R={clearable:!0,...b};return(0,T.jsxs)(`div`,{className:n.t(`card-payment-method`,S||`primary`,C),...w,children:[(0,T.jsxs)(`div`,{className:`cpm-header`,children:[(0,T.jsx)(`h3`,{className:`cpm-title`,children:D}),(0,T.jsxs)(l.t,{href:a,tone:`accent`,underline:`none`,className:`cpm-action`,onClick:e=>{c&&(e.preventDefault(),c())},children:[O,(0,T.jsx)(t.Ui,{})]})]}),(0,T.jsxs)(`div`,{className:`cpm-surface`,children:[(0,T.jsxs)(`div`,{className:`cpm-method`,children:[(0,T.jsxs)(o.n,{align:`center`,className:`cpm-method-row`,children:[(0,T.jsx)(`span`,{className:n.t(`cpm-brand`,!d&&u),children:d??L}),(0,T.jsx)(`span`,{className:`cpm-last4`,children:`\u2022\u2022\u2022\u2022 ${p}`}),P&&(0,T.jsx)(f.n,{color:`info`,children:P})]}),I&&(0,T.jsx)(s.t,{tone:`muted`,className:`cpm-summary`,children:I})]}),k&&(0,T.jsx)(s.t,{tone:`muted`,size:`sm`,className:`cpm-helper`,children:k}),(0,T.jsxs)(`div`,{className:`cpm-fields`,children:[(0,T.jsx)(_.n,{label:A,placeholder:`MM/YYYY`,fullWidth:!0,...R}),(0,T.jsx)(_.t,{label:j,placeholder:`123`,fullWidth:!0,...x})]})]})]})}function P(e){return String(e).padStart(2,`0`)}function F(e,t){try{return e.toLocaleString(t??`en`,{month:`short`}).toUpperCase()}catch{return e.toLocaleString(`en`,{month:`short`}).toUpperCase()}}function I({variant:r,title:i,description:a,price:o,currency:s=`PLN`,duration:c,available:l,image:d,gallery:p,galleryAutoPlay:m=!1,rating:h,reviewCount:g,favorite:_,onFavorite:b,menuItems:x,onAddToCart:C,actionLabel:E,icon:D,color:O=`primary`,leader:k,participants:A,maxParticipants:j,quantity:M,onQuantityChange:N,showQuantity:I=!0,date:L,location:R,status:z,className:B,...V}){let H=e.s(),U=e.r(),W=U.serviceCard,G=e.j()?.locale,[K,q]=(0,w.useState)(0),[J,Y]=(0,w.useState)(!1),[ee,te]=(0,w.useState)(1),X=M??ee,Z=p&&p.length>0?p:d?[d]:[];(0,w.useEffect)(()=>{K>=Z.length&&q(0)},[K,Z.length]),(0,w.useEffect)(()=>{if(!J)return;let e=window.setTimeout(()=>{Y(!1)},220);return()=>window.clearTimeout(e)},[K,J]);function ne(e){e===K||e<0||e>=Z.length||(Z.length>1&&Y(!0),q(e))}(0,w.useEffect)(()=>{if(!m||Z.length<=1)return;let e=window.setInterval(()=>{Y(!0),q(e=>(e+1)%Z.length)},3500);return()=>window.clearInterval(e)},[m,Z.length]);function re(e){let t=Math.max(1,e);N?N(t):te(t)}let ie=l===!0?W.available:l===!1?W.unavailable:typeof l==`number`?e.t(W.spots,{count:l}):null,ae=L?L instanceof Date?L:new Date(L):null,Q=ae&&!Number.isNaN(ae.getTime())?ae:null,oe=Q?Q.getDate():null,se=Q?F(Q,G):null,ce=Q?`${Q.getFullYear()}-${P(Q.getMonth()+1)}-${P(Q.getDate())}`:void 0,le=h===void 0?void 0:g===void 0?e.t(W.rating,{value:h.toFixed(1)}):e.t(W.ratingWithReviews,{value:h.toFixed(1),count:g});return(0,T.jsxs)(`div`,{className:n.t(`card-service`,r,`color-${O}`,B),...V,children:[Z.length>0&&(0,T.jsxs)(`div`,{className:`cs-gallery`,children:[(0,T.jsx)(`img`,{src:Z[K],alt:``,className:n.t(`cs-image`,J&&`is-transitioning`)}),Z.length>1&&(0,T.jsx)(`div`,{className:`cs-gallery-dots`,children:Z.map((t,r)=>(0,T.jsx)(`button`,{type:`button`,className:n.t(`cs-dot`,r===K&&`active`),onClick:()=>ne(r),"aria-label":e.t(H.imageNumber,{index:r+1}),"aria-current":r===K?`true`:void 0},r))}),(b||x&&x.length>0)&&(0,T.jsxs)(`div`,{className:`cs-gallery-actions`,children:[x&&x.length>0&&(0,T.jsx)(S.i,{className:`cs-menu-wrap`,trigger:(0,T.jsx)(u.t,{variant:`ghost`,iconOnly:!0,shape:`circle`,"aria-label":H.moreOptions,className:`cs-overlay-btn`,children:(0,T.jsx)(t.Xn,{})}),placement:`bottom-end`,children:x.map((e,t)=>(0,T.jsx)(S.r,{icon:e.icon,color:e.danger?`error`:void 0,label:e.label,onClick:e.onClick},t))}),b&&(0,T.jsx)(u.t,{variant:`ghost`,iconOnly:!0,shape:`circle`,onClick:b,"aria-label":_?U.removeFromFavorites:U.addToFavorites,className:n.t(`cs-overlay-btn`,_&&`cs-fav-active`),children:_?(0,T.jsx)(t.nr,{}):(0,T.jsx)(t.rr,{})})]})]}),(0,T.jsxs)(`div`,{className:`cs-body`,children:[r===`event`&&Q&&(0,T.jsxs)(`div`,{className:`cs-event-header`,children:[(0,T.jsxs)(`time`,{className:`cs-date-block`,dateTime:ce,children:[(0,T.jsx)(`span`,{className:`cs-date-day`,children:oe}),(0,T.jsx)(`span`,{className:`cs-date-month`,children:se})]}),(0,T.jsxs)(`div`,{className:`cs-event-info`,children:[(0,T.jsx)(`h3`,{className:`cs-title`,children:i}),a&&(0,T.jsx)(`p`,{className:`cs-desc`,children:a})]})]}),r!==`event`&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`cs-top`,children:[D&&(0,T.jsx)(`span`,{className:`cs-icon`,children:D}),(0,T.jsx)(`h3`,{className:`cs-title`,children:i})]}),a&&(0,T.jsx)(`p`,{className:`cs-desc`,children:a})]}),r===`event`&&!Q&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`cs-top`,children:[D&&(0,T.jsx)(`span`,{className:`cs-icon`,children:D}),(0,T.jsx)(`h3`,{className:`cs-title`,children:i})]}),a&&(0,T.jsx)(`p`,{className:`cs-desc`,children:a})]}),h!==void 0&&(0,T.jsxs)(`div`,{className:`cs-rating`,role:`img`,"aria-label":le,children:[(0,T.jsx)(y.n,{value:Math.round(h),size:`sm`,color:`warning`,readOnly:!0,className:`cs-stars`}),(0,T.jsx)(`span`,{className:`cs-rating-value`,children:h.toFixed(1)}),g!==void 0&&(0,T.jsxs)(`span`,{className:`cs-review-count`,children:[`(`,g,`)`]})]}),k&&(0,T.jsxs)(`div`,{className:`cs-leader`,children:[(0,T.jsx)(v.t,{src:k.avatar,name:k.name,size:28,color:O}),(0,T.jsx)(`span`,{className:`cs-leader-name`,children:k.name})]}),r===`course`&&A&&(0,T.jsxs)(`div`,{className:`cs-participants`,children:[(0,T.jsx)(`div`,{className:`cs-participants-avatars`,children:A.slice(0,4).map((e,t)=>(0,T.jsx)(v.t,{src:e.avatar,name:e.name,size:28,color:O,className:`cs-participant-avatar`},`${e.name}-${t}`))}),j&&(0,T.jsxs)(`span`,{className:`cs-spots`,role:`img`,"aria-label":e.t(W.participants,{count:A.length,max:j}),children:[A.length,`/`,j]})]}),(0,T.jsxs)(`div`,{className:`cs-meta`,children:[r===`event`&&R&&(0,T.jsx)(f.n,{size:`xs`,color:O,children:R}),c&&(0,T.jsx)(f.n,{size:`xs`,color:O,icon:(0,T.jsx)(t.Li,{}),children:c}),r===`event`&&z&&(0,T.jsx)(f.n,{size:`xs`,color:z.toLowerCase()===`sold out`?`error`:O,children:z}),ie&&r!==`event`&&(0,T.jsx)(f.n,{size:`xs`,color:l===!1?`error`:O,children:ie})]})]}),(0,T.jsxs)(`div`,{className:`cs-footer`,children:[o!==void 0&&(0,T.jsxs)(`span`,{className:`cs-price`,children:[typeof o==`number`?o.toFixed(2):o,` `,(0,T.jsx)(`span`,{className:`cs-currency`,children:s})]}),(0,T.jsxs)(`div`,{className:`cs-actions`,children:[r===`product`&&C&&I&&(0,T.jsxs)(`div`,{className:`cs-qty`,children:[(0,T.jsx)(u.t,{variant:`ghost`,iconOnly:!0,size:`sm`,onClick:()=>re(X-1),"aria-label":H.decrease,className:`cs-qty-btn`,children:(0,T.jsx)(t.Mr,{})}),(0,T.jsx)(`span`,{className:`cs-qty-value`,children:X}),(0,T.jsx)(u.t,{variant:`ghost`,iconOnly:!0,size:`sm`,onClick:()=>re(X+1),"aria-label":H.increase,className:`cs-qty-btn`,children:(0,T.jsx)(t.Nr,{})})]}),C&&(0,T.jsx)(u.t,{variant:`filled`,size:`sm`,color:O,onClick:()=>C(X),disabled:l===!1,className:`cs-cart-btn`,children:E??(r===`event`?W.register:W.addToCart)})]})]})]})}function L(t){let n=e.r().serviceCard,{onAction:r,actionLabel:i,...a}=t;return(0,T.jsx)(I,{variant:`service`,onAddToCart:r?()=>r():void 0,actionLabel:i??n.bookNow,...a})}function R(t){let n=e.r().serviceCard,{onAction:r,actionLabel:i,...a}=t;return(0,T.jsx)(I,{variant:`course`,onAddToCart:r?()=>r():void 0,actionLabel:i??n.joinCourse,...a})}function z({component:r,title:a,description:o,icon:s,color:c=`primary`,to:l,href:d,target:f,rel:p,onClick:m,interactive:h=!1,clickEffect:_,rippleColor:v,image:y,video:b,illustration:x,camera:C,mediaFill:E=!1,overlayPosition:D=`bottom`,favorite:O,onFavorite:k,menuItems:A,className:j,...M}){let N=e.s(),P=e.r(),F=(0,w.useRef)(null);(0,w.useEffect)(()=>{if(!C)return;let e=F.current;if(!e||typeof navigator>`u`||!navigator.mediaDevices?.getUserMedia)return;let t=null,n=!1,r=C===!0?{video:!0}:C;return navigator.mediaDevices.getUserMedia(r).then(r=>{if(n){r.getTracks().forEach(e=>e.stop());return}t=r,e.srcObject=r,e.play().catch(()=>void 0)}).catch(()=>void 0),()=>{n=!0,t&&t.getTracks().forEach(e=>e.stop()),e.srcObject=null}},[C]);let I=!!(y||b||x||C),{component:L,href:R,to:z,isInteractive:B,isLink:V}=g.a({component:r,href:d,to:l,interactive:h,hasClickHandler:!!m,fallbackComponent:`button`}),H=E&&I,{effectClassName:U,effectLayer:W,handlePointerDown:G}=i.t({effect:_??(B?`ripple`:`none`),disabled:!B,color:v});function K(e){e.stopPropagation()}function q(e){m&&(e.preventDefault(),m())}function J(){return I?(0,T.jsxs)(`div`,{className:n.t(`tile-media`,H&&`fill`),children:[y&&(0,T.jsx)(`img`,{src:y,alt:a,className:`tile-image`}),b&&(0,T.jsx)(`video`,{src:b,className:`tile-video`,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,"aria-label":a}),C&&(0,T.jsx)(`video`,{ref:F,className:`tile-video`,autoPlay:!0,muted:!0,playsInline:!0,"aria-label":a}),x&&(0,T.jsx)(`div`,{className:`tile-illustration`,children:x}),H&&(0,T.jsx)(`div`,{className:n.t(`tile-scrim`,`scrim-${D}`)})]}):null}function Y(){return(0,T.jsxs)(`div`,{className:n.t(`tile-body`,H&&`overlay`,H&&`pos-${D}`),children:[(0,T.jsxs)(`div`,{className:`tile-top`,children:[s&&(0,T.jsx)(`span`,{className:`tile-icon`,children:s}),(0,T.jsx)(`h3`,{className:`tile-title`,children:a})]}),o&&(0,T.jsx)(`p`,{className:`tile-desc`,children:o})]})}let ee=k||A&&A.length>0;return(0,T.jsxs)(`div`,{className:n.t(`card-tile`,`color-${c}`,H&&`media-fill`,B&&`interactive`,U,j),onPointerDown:G,...M,children:[W,V&&(0,T.jsx)(L,{href:L===`a`||r?R:void 0,to:z,target:f,rel:p,className:`tile-link`,"aria-label":a,onClick:m?q:void 0}),!V&&m&&(0,T.jsx)(L,{type:`button`,className:`tile-link`,"aria-label":a,onClick:m}),J(),Y(),ee&&(0,T.jsxs)(`div`,{className:`tile-actions`,onClick:K,onPointerDown:K,children:[A&&A.length>0&&(0,T.jsx)(S.i,{className:`tile-menu-wrap`,trigger:(0,T.jsx)(u.t,{variant:`ghost`,iconOnly:!0,shape:`circle`,"aria-label":N.moreOptions,className:`tile-overlay-btn`,children:(0,T.jsx)(t.Xn,{})}),placement:`bottom-end`,children:A.map((e,t)=>(0,T.jsx)(S.r,{icon:e.icon,color:e.danger?`error`:void 0,label:e.label,onClick:e.onClick},t))}),k&&(0,T.jsx)(u.t,{variant:`ghost`,iconOnly:!0,shape:`circle`,onClick:k,"aria-label":O?P.removeFromFavorites:P.addToFavorites,className:n.t(`tile-overlay-btn`,O&&`tile-fav-active`),children:O?(0,T.jsx)(t.nr,{}):(0,T.jsx)(t.rr,{})})]})]})}function B(t){let n=e.r().serviceCard,{addToCartLabel:r,...i}=t;return(0,T.jsx)(I,{variant:`product`,actionLabel:r??n.addToCart,...i})}function V(t){let n=e.r().serviceCard,{onRegister:r,registerLabel:i,...a}=t;return(0,T.jsx)(I,{variant:`event`,onAddToCart:r?()=>r():void 0,actionLabel:i??n.register,...a})}function H(e,t){return t||(typeof e!=`number`||e===0?`neutral`:e>0?`up`:`down`)}function U(e){return typeof e==`number`&&e>0?`+${e}`:e}function W({component:r,to:a,href:o,target:s,rel:c,title:l,value:u,trend:d,trendType:f,icon:p,color:m=`primary`,helperText:h,interactive:_=!1,clickEffect:v,rippleColor:y,className:b,onPointerDown:x,...S}){let C=e.s(),w=d!=null,E=H(d,f),D=U(d),{component:O,href:k,to:A,isInteractive:j}=g.a({component:r,href:o,to:a,interactive:_,hasClickHandler:!!S.onClick,hasPointerHandler:!!x}),{effectClassName:M,effectLayer:N,handlePointerDown:P}=i.t({effect:v??(j?`ripple`:`none`),disabled:!j,color:y});return(0,T.jsxs)(O,{href:O===`a`||r?k:void 0,to:A,target:s,rel:c,className:n.t(`card-widget`,`color-${m}`,j&&`interactive`,M,b),onPointerDown:e=>{P(e),x?.(e)},...S,children:[N,(0,T.jsxs)(`div`,{className:`cw-top`,children:[(0,T.jsxs)(`div`,{className:`cw-meta`,children:[(0,T.jsx)(`span`,{className:`cw-title`,children:l}),(0,T.jsx)(`span`,{className:`cw-value`,children:u})]}),p&&(0,T.jsx)(`span`,{className:`cw-icon`,children:p})]}),w&&(0,T.jsx)(`div`,{className:`cw-bottom`,children:(0,T.jsxs)(`span`,{className:n.t(`cw-trend`,E),children:[E===`up`&&(0,T.jsx)(t.Hi,{size:14}),E===`down`&&(0,T.jsx)(t.Vi,{size:14}),E!==`neutral`&&(0,T.jsxs)(`span`,{className:`card-sr-only`,children:[E===`up`?C.increase:C.decrease,` `]}),(0,T.jsx)(`span`,{children:D})]})}),h&&(0,T.jsx)(`div`,{className:`cw-helper`,children:h})]})}function G(e,t){return t||(typeof e!=`number`||e===0?`neutral`:e>0?`up`:`down`)}function K(e){return typeof e==`number`&&e>0?`+${e}`:e}function q({label:e,value:r,icon:i,badge:a,helperText:c,trend:l,trendType:u,color:d=`primary`,padded:f=!0,className:p,...m}){let _=l!=null,v=G(l,u);return(0,T.jsx)(g.t,{className:n.t(`stat-card`,`color-${d}`,p),padded:f,...m,children:(0,T.jsxs)(h.t,{spacing:`md`,children:[(0,T.jsxs)(o.n,{justify:`between`,align:`start`,children:[(0,T.jsxs)(h.t,{spacing:`xs`,children:[(0,T.jsx)(`span`,{className:`stat-card-label`,children:e}),(0,T.jsx)(`span`,{className:`stat-card-value`,children:r})]}),(0,T.jsxs)(o.n,{align:`center`,children:[a,i&&(0,T.jsx)(`span`,{className:`stat-card-icon`,children:i})]})]}),(_||c)&&(0,T.jsxs)(o.n,{justify:`between`,align:`center`,children:[_?(0,T.jsxs)(`span`,{className:n.t(`stat-card-trend`,v),children:[v===`up`&&(0,T.jsx)(t.Hi,{size:14}),v===`down`&&(0,T.jsx)(t.Vi,{size:14}),(0,T.jsx)(`span`,{children:K(l)})]}):(0,T.jsx)(`span`,{}),c&&(0,T.jsx)(s.t,{size:`sm`,tone:`muted`,children:c})]})]})})}function J(e){if(typeof e==`number`)return{gridTemplateColumns:`repeat(${e}, 1fr)`};let t={};return e.base!==void 0&&(t[`--cols-base`]=e.base),e.sm!==void 0&&(t[`--cols-sm`]=e.sm),e.md!==void 0&&(t[`--cols-md`]=e.md),e.lg!==void 0&&(t[`--cols-lg`]=e.lg),e.xl!==void 0&&(t[`--cols-xl`]=e.xl),e.xxl!==void 0&&(t[`--cols-xxl`]=e.xxl),t}function Y(e,t){let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function ee({items:r,renderCard:i,color:o=`primary`,searchable:s=!1,searchKeys:c,searchPlaceholder:l,search:f,onSearchChange:m,filterable:h=!1,filterKeys:g=[],filters:_,onFiltersChange:v,sortable:y=!1,sortKeys:x=[],defaultSort:S,sort:E,onSortChange:D,pagination:O=!1,pageSize:k=12,page:A,onPageChange:j,total:M,manualSearch:N=!1,manualFilters:P=!1,manualSort:F=!1,manualPagination:I=!1,loading:L=!1,loadingLabel:R,scrollOffset:z,columns:B=3,emptyMessage:V,className:H,style:U,...W}){let G=e.r().cardGrid,K=l===void 0?G.searchPlaceholder:l,q=R===void 0?G.loading:R,ee=V===void 0?G.emptyMessage:V,[te,X]=(0,w.useState)(``),[Z,ne]=(0,w.useState)({}),[re,ie]=(0,w.useState)(S??null),[ae,Q]=(0,w.useState)(1),[oe,se]=(0,w.useState)(!1),[ce,le]=(0,w.useState)(!1),ue=(0,w.useRef)(null),de=(0,w.useRef)(null),fe=(0,w.useId)(),pe=`${fe}-filter`,me=`${fe}-sort`,he=f===void 0?te:f,ge=_===void 0?Z:_,$=E===void 0?re:E,_e=A===void 0?ae:A,ve=(0,w.useCallback)(e=>{f===void 0&&X(e),!I&&A===void 0&&Q(1),m?.(e)},[f,A,I,m]),ye=(0,w.useCallback)(e=>{_===void 0&&ne(e),!I&&A===void 0&&Q(1),v?.(e)},[_,A,I,v]),be=(0,w.useCallback)(e=>{E===void 0&&ie(e),!I&&A===void 0&&Q(1),D?.(e)},[E,A,I,D]),xe=(0,w.useRef)(null),Se=(0,w.useCallback)(e=>{A===void 0&&Q(e),j?.(e),xe.current?.scrollIntoView({block:`start`,behavior:`smooth`})},[A,j]),Ce=(0,w.useCallback)(()=>{se(e=>!e),le(!1)},[]),we=(0,w.useCallback)(()=>{le(e=>!e),se(!1)},[]),Te=(0,w.useMemo)(()=>{let e=r;if(!N&&he&&c&&c.length>0){let t=he.toLowerCase();e=e.filter(e=>c.some(n=>{let r=Y(e,n);return r!=null&&String(r).toLowerCase().includes(t)}))}if(!P)for(let[t,n]of Object.entries(ge))!n||n.length===0||(e=e.filter(e=>{let r=Y(e,t);return r!=null&&n.includes(String(r))}));return!F&&$&&(e=[...e].sort((e,t)=>{let n=Y(e,$.key),r=Y(t,$.key);if(n==null&&r==null)return 0;if(n==null)return 1;if(r==null)return-1;let i=String(n).localeCompare(String(r),void 0,{numeric:!0});return $.direction===`asc`?i:-i})),e===r?[...e]:e},[r,he,c,ge,$,N,P,F]),Ee=I?M??Te.length:Te.length,De=(0,w.useMemo)(()=>{if(!O||I)return Te;let e=(_e-1)*k;return Te.slice(e,e+k)},[Te,O,I,_e,k]);function Oe(e,t){let n=ge[e]??[],r=n.includes(t)?n.filter(e=>e!==t):[...n,t];ye({...ge,[e]:r})}let ke=(0,w.useMemo)(()=>{let e={};for(let t of g){if(t.options){e[t.key]=t.options;continue}let n=new Set;for(let e of r){let r=Y(e,t.key);r!=null&&n.add(String(r))}e[t.key]=Array.from(n).sort()}return e},[r,g]),Ae=x.find(e=>e.key===$?.key);return(0,T.jsxs)(`div`,{ref:xe,className:n.t(`card-grid`,`color-${o}`,H),style:z===void 0?U:{scrollMarginTop:z,...U},...W,children:[(s||h||y)&&(0,T.jsxs)(`div`,{className:`card-grid-toolbar`,children:[s&&(0,T.jsx)(b.t,{className:`card-grid-search`,size:`sm`,fullWidth:!0,placeholder:K,value:he,onChange:e=>ve(e.target.value),onClear:()=>ve(``)}),(0,T.jsxs)(`div`,{className:`card-grid-actions`,children:[h&&g.length>0&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(u.t,{ref:ue,variant:`outlined`,color:o,size:`sm`,startIcon:(0,T.jsx)(t.Jn,{}),"aria-haspopup":`dialog`,"aria-expanded":oe,"aria-controls":oe?pe:void 0,onClick:Ce,children:G.filter}),(0,T.jsx)(a.t,{open:oe,anchorRef:ue,onClose:()=>se(!1),placement:`bottom-end`,role:`dialog`,id:pe,"aria-label":G.filter,initialFocus:`first`,closeOnTabOut:!0,className:`card-grid-dropdown`,children:g.map((e,t)=>(0,T.jsxs)(`div`,{className:`card-grid-filter-group`,role:`group`,"aria-labelledby":`${pe}-group-${t}`,children:[(0,T.jsx)(`span`,{id:`${pe}-group-${t}`,className:`card-grid-filter-label`,children:e.label}),(ke[e.key]??[]).map(t=>(0,T.jsx)(`div`,{className:`card-grid-filter-option`,children:(0,T.jsx)(d.t,{size:`sm`,clickEffect:`none`,checked:ge[e.key]?.includes(t)??!1,onChange:()=>Oe(e.key,t),label:t})},t))]},e.key))})]}),y&&x.length>0&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(u.t,{ref:de,variant:`outlined`,color:o,size:`sm`,startIcon:$?$.direction===`asc`?(0,T.jsx)(t.Hi,{}):(0,T.jsx)(t.Vi,{}):(0,T.jsx)(t.qn,{}),"aria-haspopup":`dialog`,"aria-expanded":ce,"aria-controls":ce?me:void 0,onClick:we,children:[Ae?e.t(G.sortBy,{label:Ae.label}):G.sort,Ae&&$&&(0,T.jsxs)(`span`,{className:`card-grid-sr-only`,children:[`, `,$.direction===`asc`?G.sortAscending:G.sortDescending]})]}),(0,T.jsx)(a.t,{open:ce,anchorRef:de,onClose:()=>le(!1),placement:`bottom-end`,role:`dialog`,id:me,"aria-label":G.sort,initialFocus:`first`,closeOnTabOut:!0,className:`card-grid-dropdown`,children:x.map(e=>(0,T.jsxs)(`button`,{type:`button`,className:n.t(`card-grid-sort-item`,$?.key===e.key&&`active`),"aria-pressed":$?.key===e.key,onClick:()=>{$?.key===e.key?be({key:e.key,direction:$.direction===`asc`?`desc`:`asc`}):be({key:e.key,direction:`asc`})},children:[e.label,$?.key===e.key&&(0,T.jsxs)(`span`,{className:`card-grid-sort-dir`,children:[$.direction===`asc`?(0,T.jsx)(t.Hi,{className:`card-grid-sort-icon`}):(0,T.jsx)(t.Vi,{className:`card-grid-sort-icon`}),(0,T.jsxs)(`span`,{className:`card-grid-sr-only`,children:[`, `,$.direction===`asc`?G.sortAscending:G.sortDescending]})]})]},e.key))})]})]})]}),(0,T.jsxs)(`div`,{className:n.t(`card-grid-body`,L&&`loading`),children:[De.length>0?(0,T.jsx)(`div`,{className:`card-grid-items`,style:J(B),"aria-busy":L||void 0,children:De.map((e,t)=>{let n=e?.id;return(0,T.jsx)(w.Fragment,{children:i(e,t)},n??t)})}):(0,T.jsx)(`div`,{className:`card-grid-empty`,"aria-busy":L||void 0,children:ee}),L&&(0,T.jsx)(`div`,{className:`card-grid-loading`,children:(0,T.jsx)(p.t,{center:!1,minHeight:`auto`,color:o,label:q})})]}),O&&Ee>k&&(0,T.jsx)(`div`,{className:`card-grid-pagination`,children:(0,T.jsx)(C.t,{total:Ee,page:_e,pageSize:k,onChange:Se})})]})}function te({title:t,description:n,color:r=`primary`,workdayStart:i,workdayEnd:a,timeline:l,summary:u,tabs:d=[],footer:f,emptyTimeline:p,..._}){let v=e.r().daySchedule,b=t===void 0?v.title:t,x=p===void 0?(0,T.jsx)(s.t,{tone:`muted`,children:v.emptyTimeline}):p,S=i&&a?`${i}-${a}`:i??a??void 0,C=d.filter(e=>e.items.length>0);return(0,T.jsxs)(g.t,{color:r,..._,children:[(0,T.jsx)(g.i,{children:(0,T.jsxs)(h.t,{children:[(0,T.jsx)(c.t,{level:4,children:b}),(n||S)&&(0,T.jsxs)(s.t,{size:`sm`,tone:`muted`,children:[n,n&&S?` `:null,S]})]})}),(0,T.jsx)(g.n,{children:(0,T.jsxs)(m.t,{type:`row`,align:`start`,children:[(0,T.jsx)(m.t,{type:`col`,xl:7,sm:12,children:l.length?(0,T.jsx)(h.t,{className:`day-schedule-card-timeline`,children:l.map(e=>(0,T.jsxs)(o.n,{align:`start`,className:`day-schedule-card-entry`,children:[(0,T.jsx)(`span`,{className:`day-schedule-card-time`,children:e.time}),(0,T.jsx)(`div`,{className:`day-schedule-card-dot`,"data-color":e.color??r,children:O(e.icon,e.color??r)}),(0,T.jsxs)(`div`,{className:`day-schedule-card-copy`,children:[(0,T.jsx)(s.t,{as:`strong`,children:e.title}),e.description&&(0,T.jsx)(s.t,{size:`sm`,tone:`muted`,children:e.description})]})]},e.id))}):x}),(0,T.jsx)(m.t,{type:`col`,xl:5,sm:12,children:(0,T.jsxs)(h.t,{className:`day-schedule-card-side`,children:[u,C.length>0&&(0,T.jsx)(m.r,{variant:`underline`,size:`sm`,fullWidth:!0,defaultValue:C[0].type,items:C.map(e=>({value:e.type,label:(0,T.jsxs)(`span`,{className:`day-schedule-card-tab-label`,children:[(0,T.jsx)(`span`,{children:e.title}),(0,T.jsx)(`span`,{className:`day-schedule-card-tab-count`,children:e.items.length})]}),content:(0,T.jsx)(y.t,{items:e.items})}))})]})})]})}),f&&(0,T.jsx)(g.r,{children:O(f,r)})]})}function X({title:n,description:r,color:i=`primary`,items:a,selected:l,onSelect:d,defaultExpanded:f,expanded:p,onExpandChange:_,detailsTitle:v,detailsMeta:b,detailsItems:C=[],detailsActions:w=[],renderDetails:E,emptyDetails:D,primaryAction:k,...A}){let j=e.r().cardDocumentTree,M=n===void 0?j.title:n,N=D===void 0?(0,T.jsx)(s.t,{tone:`muted`,children:j.emptyDetails}):D,P=e.s(),F=e=>({...e,icon:O(e.icon,i),children:e.children?.map(F)}),I=a.map(F);return(0,T.jsxs)(g.t,{stretch:!1,color:i,...A,children:[(0,T.jsx)(g.i,{children:(0,T.jsxs)(o.n,{justify:`between`,align:`center`,children:[(0,T.jsxs)(h.t,{children:[(0,T.jsx)(c.t,{level:4,children:M}),r&&(0,T.jsx)(s.t,{size:`sm`,tone:`muted`,children:r})]}),O(k,i)]})}),(0,T.jsx)(g.n,{children:(0,T.jsxs)(m.t,{type:`row`,align:`start`,children:[(0,T.jsx)(m.t,{type:`col`,xl:7,sm:12,children:(0,T.jsx)(x.t,{items:I,color:i,defaultExpanded:f,expanded:p,onExpandChange:_,selected:l,onSelect:d,expandable:!0,selectable:!0,showLines:!0,fileIcons:!0})}),(0,T.jsx)(m.t,{type:`col`,xl:5,sm:12,children:(0,T.jsxs)(h.t,{padding:`sm`,children:[(v||b||w.length>0)&&(0,T.jsxs)(o.n,{justify:`between`,align:`start`,children:[(0,T.jsxs)(h.t,{children:[v&&(0,T.jsx)(c.t,{level:5,children:v}),b&&(0,T.jsx)(s.t,{size:`sm`,tone:`muted`,children:b})]}),w.length>0&&(0,T.jsx)(S.i,{placement:`bottom-end`,trigger:(0,T.jsx)(u.t,{variant:`ghost`,color:i,iconOnly:!0,shape:`circle`,"aria-label":P.documentActions,children:(0,T.jsx)(t.Xn,{})}),children:w.map(e=>(0,T.jsx)(S.r,{icon:O(e.icon,e.color??i),label:e.label,color:e.color??i,disabled:e.disabled,component:e.component,href:e.href,to:e.to,onClick:e.onClick},e.id))})]}),E||(C.length?(0,T.jsx)(y.t,{items:C}):N)]})})]})})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return L}});
2
+ //# sourceMappingURL=cards-Bp886TRb.cjs.map