@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,410 @@
1
+ import { p as e, s as t } from "./frameworkTexts-o43FqY1A.js";
2
+ import { Ki as n, Xi as r, Yi as i } from "./icons-IqEBmGh3.js";
3
+ import { t as a } from "./cn-CUSXNnjF.js";
4
+ import { n as o } from "./useGhostText-CKsb8Ufa.js";
5
+ import { t as s } from "./MPopover-CBDbUOW6.js";
6
+ import { n as c, t as l } from "./MInput-QnQV9L8U.js";
7
+ /* empty css */
8
+ import { forwardRef as u, useCallback as d, useId as f, useMemo as p, useRef as m, useState as h } from "react";
9
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
10
+ //#region src/components/inputs/MInputExpDate/MInputExpDate.tsx
11
+ var v = { valid: !0 };
12
+ function y(e) {
13
+ return e.replace(/\D/g, "");
14
+ }
15
+ function b(e) {
16
+ return e ? e.padStart(2, "0").slice(0, 2) : "";
17
+ }
18
+ function x(e, t) {
19
+ let n = b(e), r = t?.slice(0, 4) ?? "";
20
+ return !n && !r ? "" : r ? `${n}/${r}` : n;
21
+ }
22
+ function S(e) {
23
+ let t = e.indexOf("/");
24
+ if (t >= 0) return {
25
+ month: y(e.slice(0, t)).slice(0, 2),
26
+ year: y(e.slice(t + 1)).slice(0, 4)
27
+ };
28
+ let n = y(e).slice(0, 6);
29
+ return {
30
+ month: n.slice(0, 2),
31
+ year: n.slice(2, 6)
32
+ };
33
+ }
34
+ function C(e, t) {
35
+ let n = (/* @__PURE__ */ new Date()).getFullYear(), r = Math.max(e ?? n, n);
36
+ return {
37
+ resolvedMinYear: r,
38
+ resolvedMaxYear: Math.max(t ?? n + 20, r)
39
+ };
40
+ }
41
+ function w(e, { minYear: t, maxYear: n }) {
42
+ if (!e) return v;
43
+ let { month: r, year: i } = S(e);
44
+ if (r.length !== 2 || i.length !== 4) return {
45
+ valid: !1,
46
+ error: "Expiration date is incomplete"
47
+ };
48
+ let a = parseInt(r, 10), o = parseInt(i, 10), { resolvedMinYear: s, resolvedMaxYear: c } = C(t, n);
49
+ if (Number.isNaN(a) || a < 1 || a > 12) return {
50
+ valid: !1,
51
+ error: "Use a valid month"
52
+ };
53
+ if (Number.isNaN(o)) return {
54
+ valid: !1,
55
+ error: "Use a valid year"
56
+ };
57
+ if (o < s) return {
58
+ valid: !1,
59
+ error: `Year must be ${s} or later`
60
+ };
61
+ if (o > c) return {
62
+ valid: !1,
63
+ error: `Year must be ${c} or earlier`
64
+ };
65
+ let l = /* @__PURE__ */ new Date(), u = l.getMonth() + 1, d = l.getFullYear();
66
+ return o < d || o === d && a < u ? {
67
+ valid: !1,
68
+ error: "Card has expired"
69
+ } : v;
70
+ }
71
+ var ee = Array.from({ length: 12 }, (e, t) => String(t + 1).padStart(2, "0"));
72
+ function T({ options: e, value: t, placeholder: r, name: i, onSelect: c, triggerRef: l, listRef: u }) {
73
+ let [d, p] = h(!1), m = f(), v = `${m}-listbox`, y = `${m}-name`, b = `${m}-value`, x = e.indexOf(t), S = (e) => {
74
+ c(e), l.current?.focus(), p(!1);
75
+ }, C = o({
76
+ itemCount: e.length,
77
+ onSelect: (t) => S(e[t]),
78
+ onClose: () => p(!1),
79
+ isOpen: d,
80
+ mode: "roving",
81
+ selectOnSpace: !0,
82
+ loop: !1,
83
+ getItemLabel: (t) => e[t]
84
+ }), w = (e) => {
85
+ C.setActiveIndex(e), p(!0);
86
+ };
87
+ return /* @__PURE__ */ _("div", {
88
+ className: "dropdown menu anchor",
89
+ children: [/* @__PURE__ */ g("div", {
90
+ ref: l,
91
+ className: "dropdown menu trigger",
92
+ role: "button",
93
+ tabIndex: 0,
94
+ "aria-haspopup": "listbox",
95
+ "aria-expanded": d,
96
+ "aria-controls": d ? v : void 0,
97
+ "aria-labelledby": `${y} ${b}`,
98
+ onClick: () => {
99
+ if (d) {
100
+ p(!1);
101
+ return;
102
+ }
103
+ w(x >= 0 ? x : 0);
104
+ },
105
+ onKeyDown: (t) => {
106
+ d || (t.key === "ArrowDown" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), w(x >= 0 ? x : 0)) : t.key === "ArrowUp" && (t.preventDefault(), w(x >= 0 ? x : e.length - 1)));
107
+ },
108
+ onKeyUp: (e) => {
109
+ e.key === " " && e.preventDefault();
110
+ },
111
+ children: /* @__PURE__ */ _("span", {
112
+ className: a("input-exp-date-trigger", d && "open", !t && "placeholder"),
113
+ children: [
114
+ /* @__PURE__ */ g("span", {
115
+ id: y,
116
+ className: "input-exp-date-sr-only",
117
+ children: i
118
+ }),
119
+ /* @__PURE__ */ g("span", {
120
+ id: b,
121
+ children: t || r
122
+ }),
123
+ /* @__PURE__ */ g(n, {
124
+ size: 16,
125
+ "aria-hidden": "true"
126
+ })
127
+ ]
128
+ })
129
+ }), /* @__PURE__ */ g(s, {
130
+ open: d,
131
+ anchorRef: l,
132
+ onClose: () => p(!1),
133
+ placement: "bottom-start",
134
+ className: "dropdown menu popover input-exp-date-popover",
135
+ role: null,
136
+ initialFocus: "first",
137
+ closeOnTabOut: !0,
138
+ children: /* @__PURE__ */ g("div", {
139
+ ref: u,
140
+ id: v,
141
+ className: "dropdown menu list",
142
+ role: "listbox",
143
+ "aria-labelledby": y,
144
+ tabIndex: -1,
145
+ onKeyDown: C.onKeyDown,
146
+ children: e.map((e, n) => {
147
+ let r = C.getItemProps(n), i = e === t;
148
+ return /* @__PURE__ */ g("button", {
149
+ type: "button",
150
+ id: r.id,
151
+ ref: r.ref,
152
+ tabIndex: r.tabIndex,
153
+ onFocus: r.onFocus,
154
+ role: "option",
155
+ "aria-selected": i,
156
+ className: a("dropdown menu item", n === C.activeIndex && "active", i && "selected"),
157
+ onMouseEnter: () => {
158
+ u.current?.contains(document.activeElement) ? C.focusItem(n) : C.setActiveIndex(n);
159
+ },
160
+ onClick: () => S(e),
161
+ children: /* @__PURE__ */ g("span", {
162
+ className: "dropdown menu label",
163
+ children: e
164
+ })
165
+ }, e);
166
+ })
167
+ })
168
+ })]
169
+ });
170
+ }
171
+ var te = u(function({ validateOnBlur: n = !0, validateOnChange: i = !1, minYear: o, maxYear: s, onValidationChange: l, onValueChange: u, value: b, defaultValue: te, name: E, id: D, disabled: O = !1, readOnly: k = !1, required: A = !1, autoFocus: j = !1, variant: M = "outlined", size: ne = "md", color: re, fullWidth: ie = !1, rounded: ae = !1, label: N, helperText: P, errorText: oe, startIcon: se, endIcon: ce, clearable: le = !1, error: ue = !1, success: de, onChange: fe, onFocus: F, onBlur: I, onClear: pe, className: me, style: he, labelClassName: ge }, L) {
172
+ let _e = t(), R = e(), z = m(null), ve = m(null), { currentValue: B, setCurrentValue: ye } = c(b, te), [V, be] = h(v), [H, xe] = h(!1), [U, Se] = h(!1), Ce = m(null), we = m(null), Te = m(null), Ee = m(null), De = `${f()}-label`, { month: W, year: G } = S(B), Oe = !!(W || G), K = O || k, { resolvedMinYear: q, resolvedMaxYear: ke } = C(o, s), Ae = p(() => Array.from({ length: ke - q + 1 }, (e, t) => String(q + t)), [ke, q]), J = d((e) => {
173
+ let t = w(e, {
174
+ minYear: o,
175
+ maxYear: s
176
+ });
177
+ return be(t), l?.(t), t;
178
+ }, [
179
+ s,
180
+ o,
181
+ l
182
+ ]), Y = d((e) => {
183
+ ye(e), u?.(y(e), e);
184
+ let t = L?.current ?? z.current;
185
+ t && ((Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set)?.call(t, e), t.dispatchEvent(new Event("input", { bubbles: !0 })));
186
+ }, [
187
+ u,
188
+ L,
189
+ ye
190
+ ]), X = d((e, t) => {
191
+ let n = x(e, t);
192
+ Y(n), i && H && J(n);
193
+ }, [
194
+ J,
195
+ Y,
196
+ H,
197
+ i
198
+ ]), Z = d(() => {
199
+ (Ce.current ?? L?.current ?? z.current)?.focus();
200
+ }, [L]), je = d((e) => {
201
+ if (U) return;
202
+ Se(!0);
203
+ let t = L?.current ?? z.current;
204
+ t && e.target !== t && F?.(e);
205
+ }, [
206
+ U,
207
+ F,
208
+ L
209
+ ]), Me = d((e) => {
210
+ let t = e.relatedTarget;
211
+ t && (ve.current?.contains(t) || Te.current?.contains(t) || Ee.current?.contains(t)) || (Se(!1), xe(!0), n && B && J(B), I?.(e));
212
+ }, [
213
+ B,
214
+ I,
215
+ J,
216
+ n
217
+ ]), Ne = d((e) => {
218
+ X(e, G);
219
+ }, [X, G]), Pe = d((e) => {
220
+ X(W, e);
221
+ }, [W, X]), Fe = d((e) => {
222
+ let t = e.target;
223
+ e.currentTarget.contains(t) && (t instanceof Element && t.closest(".dropdown.menu.anchor") || Z());
224
+ }, [Z]), Ie = d(() => {
225
+ Y(""), xe(!1), be(v), l?.(v), pe?.(), Z();
226
+ }, [
227
+ Z,
228
+ pe,
229
+ l,
230
+ Y
231
+ ]), Q = ue || H && !V.valid, $ = oe || (H && !V.valid ? V.error : void 0), Le = !Q && (de === void 0 ? H && V.valid && !!(W && G) : de), Re = Q ? "color-error" : re ? `color-${re}` : void 0, ze = a("container", `field-${M}`, `field-${ne}`, U && "focused", Q && "input-error", Le && !Q && "input-success", Re, O && "disabled", ae && "rounded"), Be = W || R.expMonthPlaceholder, Ve = G || R.expYearPlaceholder;
232
+ return /* @__PURE__ */ _("div", {
233
+ ref: ve,
234
+ className: a("input", "input-exp-date", Re, ie && "full-width", me),
235
+ style: he,
236
+ onFocusCapture: je,
237
+ onBlurCapture: Me,
238
+ children: [
239
+ N && /* @__PURE__ */ g("label", {
240
+ id: De,
241
+ htmlFor: D,
242
+ className: a("field-label", U && "focused", Q && "error", Le && !Q && "success", A && "required", ge),
243
+ children: N
244
+ }),
245
+ /* @__PURE__ */ _("div", {
246
+ className: ze,
247
+ onClick: Fe,
248
+ children: [
249
+ se && /* @__PURE__ */ g("span", {
250
+ className: "start-icon",
251
+ children: se
252
+ }),
253
+ /* @__PURE__ */ g("input", {
254
+ ref: L ?? z,
255
+ type: "text",
256
+ value: B,
257
+ name: E,
258
+ id: D,
259
+ readOnly: !0,
260
+ required: A,
261
+ autoFocus: j,
262
+ className: "input-exp-date-native",
263
+ tabIndex: -1,
264
+ "aria-hidden": "true",
265
+ onChange: fe,
266
+ onFocus: F,
267
+ onBlur: I
268
+ }),
269
+ /* @__PURE__ */ _("div", {
270
+ className: "input-exp-date-segments",
271
+ role: "group",
272
+ "aria-label": N ? void 0 : _e.expirationDate,
273
+ "aria-labelledby": N ? De : void 0,
274
+ children: [
275
+ K ? /* @__PURE__ */ g("span", {
276
+ className: a("input-exp-date-trigger", !W && "placeholder", "static"),
277
+ children: /* @__PURE__ */ g("span", { children: Be })
278
+ }) : /* @__PURE__ */ g(T, {
279
+ options: ee,
280
+ value: W,
281
+ placeholder: R.expMonthPlaceholder,
282
+ name: R.expMonth,
283
+ onSelect: Ne,
284
+ triggerRef: Ce,
285
+ listRef: Te
286
+ }),
287
+ /* @__PURE__ */ g("span", {
288
+ className: "input-exp-date-separator",
289
+ "aria-hidden": "true",
290
+ children: "/"
291
+ }),
292
+ K ? /* @__PURE__ */ g("span", {
293
+ className: a("input-exp-date-trigger", !G && "placeholder", "static"),
294
+ children: /* @__PURE__ */ g("span", { children: Ve })
295
+ }) : /* @__PURE__ */ g(T, {
296
+ options: Ae,
297
+ value: G,
298
+ placeholder: R.expYearPlaceholder,
299
+ name: R.expYear,
300
+ onSelect: Pe,
301
+ triggerRef: we,
302
+ listRef: Ee
303
+ })
304
+ ]
305
+ }),
306
+ le && Oe && !K && /* @__PURE__ */ g("button", {
307
+ type: "button",
308
+ className: "clear-btn clear-btn-base",
309
+ onClick: (e) => {
310
+ e.stopPropagation(), Ie();
311
+ },
312
+ tabIndex: -1,
313
+ "aria-label": _e.clearInput,
314
+ children: /* @__PURE__ */ g(r, {})
315
+ }),
316
+ ce && /* @__PURE__ */ g("span", {
317
+ className: "end-icon",
318
+ children: ce
319
+ })
320
+ ]
321
+ }),
322
+ ($ || P) && /* @__PURE__ */ g("div", {
323
+ className: "bottom-row",
324
+ children: /* @__PURE__ */ _("span", { children: [$ && /* @__PURE__ */ g("span", {
325
+ id: D ? `${D}-error` : void 0,
326
+ className: "field-error",
327
+ role: "alert",
328
+ children: $
329
+ }), !$ && P && /* @__PURE__ */ g("span", {
330
+ id: D ? `${D}-helper` : void 0,
331
+ className: "field-helper",
332
+ children: P
333
+ })] })
334
+ })
335
+ ]
336
+ });
337
+ }), E = { valid: !0 };
338
+ function D(e) {
339
+ return e.replace(/\D/g, "");
340
+ }
341
+ function O(e, t) {
342
+ return e ? D(e).length === t ? E : {
343
+ valid: !1,
344
+ error: `Security code must have ${t} digits`
345
+ } : E;
346
+ }
347
+ var k = u(function({ length: e = 3, validateOnBlur: t = !0, validateOnChange: n = !1, onValidationChange: r, onValueChange: o, value: s, defaultValue: c, onChange: u, onBlur: f, onKeyDown: p, error: m, errorText: _, success: v, placeholder: y, className: b, inputClassName: x, ...S }, C) {
348
+ let [w, ee] = h(() => D(c?.toString() ?? "").slice(0, e)), [T, te] = h(E), [k, A] = h(!1), j = s === void 0 ? w : D(s.toString()).slice(0, e), M = d((t) => {
349
+ let n = O(t, e);
350
+ return te(n), r?.(n), n;
351
+ }, [e, r]), ne = d((t) => {
352
+ let r = D(t.target.value).slice(0, e);
353
+ s === void 0 && ee(r), o?.(r), n && k && M(r), u?.(t);
354
+ }, [
355
+ e,
356
+ u,
357
+ o,
358
+ M,
359
+ k,
360
+ n,
361
+ s
362
+ ]), re = d((e) => {
363
+ A(!0), t && j && M(j), f?.(e);
364
+ }, [
365
+ j,
366
+ f,
367
+ M,
368
+ t
369
+ ]), ie = d((e) => {
370
+ if ([
371
+ "Backspace",
372
+ "Delete",
373
+ "Tab",
374
+ "ArrowLeft",
375
+ "ArrowRight",
376
+ "Home",
377
+ "End"
378
+ ].includes(e.key)) {
379
+ p?.(e);
380
+ return;
381
+ }
382
+ if (e.ctrlKey || e.metaKey) {
383
+ p?.(e);
384
+ return;
385
+ }
386
+ /^\d$/.test(e.key) || e.preventDefault(), p?.(e);
387
+ }, [p]), ae = m || k && !T.valid, N = _ || (k && !T.valid ? T.error : void 0), P = !ae && (v === void 0 ? k && j.length === e : v), oe = P ? /* @__PURE__ */ g(i, {}) : void 0;
388
+ return /* @__PURE__ */ g(l, {
389
+ ...S,
390
+ ref: C,
391
+ type: "text",
392
+ inputMode: "numeric",
393
+ value: j,
394
+ onChange: ne,
395
+ onBlur: re,
396
+ onKeyDown: ie,
397
+ error: ae,
398
+ errorText: N,
399
+ success: P,
400
+ placeholder: y ?? "".padEnd(e, "0"),
401
+ maxLength: e,
402
+ endIcon: oe,
403
+ inputClassName: a("input-cvc-field", x),
404
+ className: b
405
+ });
406
+ });
407
+ //#endregion
408
+ export { te as n, k as t };
409
+
410
+ //# sourceMappingURL=MInputCVC-IXIYZwex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MInputCVC-IXIYZwex.js","names":[],"sources":["../src/components/inputs/MInputExpDate/MInputExpDate.tsx","../src/components/inputs/MInputCVC/MInputCVC.tsx"],"sourcesContent":["import {forwardRef, useCallback, useId, useMemo, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MInputExpDateProps} from './MInputExpDate.types'\nimport {cn} from '../../../utils/cn'\nimport {useControllableString} from '../../../utils/useControllableString'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {MCloseIcon, MChevronDownIcon} from '../../../icons'\nimport {MPopover} from '../../primitives'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport '../MInput/MInput.css'\nimport '../../overlays/MDropdownMenu/MDropdownMenu.css'\nimport './MInputExpDate.css'\nimport {useMCommonTexts, useMInputTexts} from '../../../i18n/frameworkTexts'\n\nconst OK: ValidationResult = {valid: true}\n\nfunction stripDigits(value: string) {\n return value.replace(/\\D/g, '')\n}\n\nfunction padMonth(value?: string) {\n if (!value) {\n return ''\n }\n\n return value.padStart(2, '0').slice(0, 2)\n}\n\nfunction formatValue(month?: string, year?: string) {\n const resolvedMonth = padMonth(month)\n const resolvedYear = year?.slice(0, 4) ?? ''\n\n if (!resolvedMonth && !resolvedYear) {\n return ''\n }\n\n if (!resolvedYear) {\n return resolvedMonth\n }\n\n return `${resolvedMonth}/${resolvedYear}`\n}\n\nfunction parseValue(value: string) {\n // `MM/YYYY`, `/YYYY` (year only) or `MM/` — the slash tells the segments apart,\n // so a year picked alone is not read back as month `20` + year `27`.\n const slash = value.indexOf('/')\n if (slash >= 0) {\n return {\n month: stripDigits(value.slice(0, slash)).slice(0, 2),\n year: stripDigits(value.slice(slash + 1)).slice(0, 4),\n }\n }\n\n const digits = stripDigits(value).slice(0, 6)\n\n return {\n month: digits.slice(0, 2),\n year: digits.slice(2, 6),\n }\n}\n\nfunction resolveYearBounds(minYear?: number, maxYear?: number) {\n const currentYear = new Date().getFullYear()\n const resolvedMinYear = Math.max(minYear ?? currentYear, currentYear)\n const resolvedMaxYear = Math.max(maxYear ?? currentYear + 20, resolvedMinYear)\n\n return {\n resolvedMinYear,\n resolvedMaxYear,\n }\n}\n\nfunction validateExpDate(\n value: string,\n {minYear, maxYear}: Pick<MInputExpDateProps, 'minYear' | 'maxYear'>\n): ValidationResult {\n if (!value) {\n return OK\n }\n\n const {month: monthValue, year: yearValue} = parseValue(value)\n\n if (monthValue.length !== 2 || yearValue.length !== 4) {\n return {valid: false, error: 'Expiration date is incomplete'}\n }\n\n const month = parseInt(monthValue, 10)\n const year = parseInt(yearValue, 10)\n const {resolvedMinYear, resolvedMaxYear} = resolveYearBounds(minYear, maxYear)\n\n if (Number.isNaN(month) || month < 1 || month > 12) {\n return {valid: false, error: 'Use a valid month'}\n }\n\n if (Number.isNaN(year)) {\n return {valid: false, error: 'Use a valid year'}\n }\n\n if (year < resolvedMinYear) {\n return {valid: false, error: `Year must be ${resolvedMinYear} or later`}\n }\n\n if (year > resolvedMaxYear) {\n return {valid: false, error: `Year must be ${resolvedMaxYear} or earlier`}\n }\n\n const now = new Date()\n const currentMonth = now.getMonth() + 1\n const currentYear = now.getFullYear()\n\n if (year < currentYear || (year === currentYear && month < currentMonth)) {\n return {valid: false, error: 'Card has expired'}\n }\n\n return OK\n}\n\nconst MONTH_OPTIONS = Array.from({length: 12}, (_, index) => String(index + 1).padStart(2, '0'))\n\ninterface ExpDateSegmentProps {\n options: string[]\n value: string\n placeholder: string\n /** Accessible name of the picker (\"Month\" / \"Year\"). */\n name: string\n onSelect: (value: string) => void\n triggerRef: React.RefObject<HTMLDivElement | null>\n listRef: React.RefObject<HTMLDivElement | null>\n}\n\n/**\n * One segment (month or year) of the expiry date: a button that opens an APG single-select\n * listbox. The markup keeps the original `dropdown menu *` classes so the look does not change.\n */\nfunction ExpDateSegment({options, value, placeholder, name, onSelect, triggerRef, listRef}: ExpDateSegmentProps) {\n const [open, setOpen] = useState(false)\n const baseId = useId()\n const listId = `${baseId}-listbox`\n const nameId = `${baseId}-name`\n const valueId = `${baseId}-value`\n const selectedIndex = options.indexOf(value)\n\n const choose = (option: string) => {\n onSelect(option)\n triggerRef.current?.focus()\n setOpen(false)\n }\n\n const nav = useKeyboardNav({\n itemCount: options.length,\n onSelect: (index) => choose(options[index]),\n onClose: () => setOpen(false),\n isOpen: open,\n mode: 'roving',\n selectOnSpace: true,\n loop: false,\n getItemLabel: (index) => options[index],\n })\n\n const openList = (index: number) => {\n nav.setActiveIndex(index)\n setOpen(true)\n }\n\n const handleTriggerClick = () => {\n if (open) {\n setOpen(false)\n return\n }\n openList(selectedIndex >= 0 ? selectedIndex : 0)\n }\n\n const handleTriggerKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (open) return\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n openList(selectedIndex >= 0 ? selectedIndex : 0)\n } else if (event.key === 'ArrowUp') {\n event.preventDefault()\n openList(selectedIndex >= 0 ? selectedIndex : options.length - 1)\n }\n }\n\n return (\n <div className=\"dropdown menu anchor\">\n <div\n ref={triggerRef}\n className=\"dropdown menu trigger\"\n role=\"button\"\n tabIndex={0}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? listId : undefined}\n aria-labelledby={`${nameId} ${valueId}`}\n onClick={handleTriggerClick}\n onKeyDown={handleTriggerKeyDown}\n onKeyUp={(event) => {\n // Firefox activates on Space keyup even when keydown was prevented.\n if (event.key === ' ') event.preventDefault()\n }}\n >\n <span className={cn('input-exp-date-trigger', open && 'open', !value && 'placeholder')}>\n <span id={nameId} className=\"input-exp-date-sr-only\">\n {name}\n </span>\n <span id={valueId}>{value || placeholder}</span>\n <MChevronDownIcon size={16} aria-hidden=\"true\" />\n </span>\n </div>\n <MPopover\n open={open}\n anchorRef={triggerRef}\n onClose={() => setOpen(false)}\n placement=\"bottom-start\"\n className=\"dropdown menu popover input-exp-date-popover\"\n role={null}\n initialFocus=\"first\"\n closeOnTabOut\n >\n <div\n ref={listRef}\n id={listId}\n className=\"dropdown menu list\"\n role=\"listbox\"\n aria-labelledby={nameId}\n tabIndex={-1}\n onKeyDown={nav.onKeyDown}\n >\n {options.map((option, index) => {\n const itemProps = nav.getItemProps(index)\n const selected = option === value\n return (\n <button\n key={option}\n type=\"button\"\n id={itemProps.id}\n ref={itemProps.ref}\n tabIndex={itemProps.tabIndex}\n onFocus={itemProps.onFocus}\n role=\"option\"\n aria-selected={selected}\n className={cn(\n 'dropdown menu item',\n index === nav.activeIndex && 'active',\n selected && 'selected'\n )}\n onMouseEnter={() => {\n // Follow the pointer with real focus only while focus is already in the list.\n if (listRef.current?.contains(document.activeElement)) nav.focusItem(index)\n else nav.setActiveIndex(index)\n }}\n onClick={() => choose(option)}\n >\n <span className=\"dropdown menu label\">{option}</span>\n </button>\n )\n })}\n </div>\n </MPopover>\n </div>\n )\n}\n\nexport const MInputExpDate = forwardRef<HTMLInputElement, MInputExpDateProps>(function MInputExpDate(\n {\n validateOnBlur = true,\n validateOnChange = false,\n minYear,\n maxYear,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n name,\n id,\n disabled = false,\n readOnly = false,\n required = false,\n autoFocus = false,\n variant = 'outlined',\n size = 'md',\n color,\n fullWidth = false,\n rounded = false,\n label,\n helperText,\n errorText,\n startIcon,\n endIcon,\n clearable = false,\n error = false,\n success,\n onChange,\n onFocus,\n onBlur,\n onClear,\n className,\n style,\n labelClassName,\n },\n ref\n) {\n const texts = useMCommonTexts()\n const inputTexts = useMInputTexts()\n const inputRef = useRef<HTMLInputElement>(null)\n const rootRef = useRef<HTMLDivElement>(null)\n const {currentValue, setCurrentValue} = useControllableString(value, defaultValue)\n const [validation, setValidation] = useState<ValidationResult>(OK)\n const [touched, setTouched] = useState(false)\n const [focused, setFocused] = useState(false)\n const monthTriggerRef = useRef<HTMLDivElement>(null)\n const yearTriggerRef = useRef<HTMLDivElement>(null)\n const monthListRef = useRef<HTMLDivElement>(null)\n const yearListRef = useRef<HTMLDivElement>(null)\n const labelId = `${useId()}-label`\n\n const {month, year} = parseValue(currentValue)\n const hasContent = Boolean(month || year)\n const segmentDisabled = disabled || readOnly\n const {resolvedMinYear, resolvedMaxYear} = resolveYearBounds(minYear, maxYear)\n const yearOptions = useMemo(\n () =>\n Array.from({length: resolvedMaxYear - resolvedMinYear + 1}, (_, index) => String(resolvedMinYear + index)),\n [resolvedMaxYear, resolvedMinYear]\n )\n\n const runValidation = useCallback(\n (formattedValue: string) => {\n const result = validateExpDate(formattedValue, {minYear, maxYear})\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [maxYear, minYear, onValidationChange]\n )\n\n const syncValue = useCallback(\n (formattedValue: string) => {\n setCurrentValue(formattedValue)\n onValueChange?.(stripDigits(formattedValue), formattedValue)\n\n const input = (ref as React.RefObject<HTMLInputElement>)?.current ?? inputRef.current\n if (input) {\n const nativeSet = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set\n nativeSet?.call(input, formattedValue)\n input.dispatchEvent(new Event('input', {bubbles: true}))\n }\n },\n [onValueChange, ref, setCurrentValue]\n )\n\n const updateValue = useCallback(\n (nextMonth?: string, nextYear?: string) => {\n const formattedValue = formatValue(nextMonth, nextYear)\n syncValue(formattedValue)\n\n if (validateOnChange && touched) {\n runValidation(formattedValue)\n }\n },\n [runValidation, syncValue, touched, validateOnChange]\n )\n\n // Keyboard focus lands on the month picker; the native input is aria-hidden and only a form carrier.\n const focusField = useCallback(() => {\n const target =\n monthTriggerRef.current ?? (ref as React.RefObject<HTMLInputElement>)?.current ?? inputRef.current\n target?.focus()\n }, [ref])\n\n const handleRootFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (focused) {\n return\n }\n\n setFocused(true)\n const input = (ref as React.RefObject<HTMLInputElement>)?.current ?? inputRef.current\n if (input && event.target !== input) {\n onFocus?.(event as unknown as React.FocusEvent<HTMLInputElement>)\n }\n },\n [focused, onFocus, ref]\n )\n\n const handleRootBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const nextTarget = event.relatedTarget as Node | null\n\n // The listboxes render in a portal, so moving into them is still \"inside\" the field.\n if (\n nextTarget &&\n (rootRef.current?.contains(nextTarget) ||\n monthListRef.current?.contains(nextTarget) ||\n yearListRef.current?.contains(nextTarget))\n ) {\n return\n }\n\n setFocused(false)\n setTouched(true)\n\n if (validateOnBlur && currentValue) {\n runValidation(currentValue)\n }\n\n onBlur?.(event as unknown as React.FocusEvent<HTMLInputElement>)\n },\n [currentValue, onBlur, runValidation, validateOnBlur]\n )\n\n const handleSelectMonth = useCallback(\n (nextMonth: string) => {\n updateValue(nextMonth, year)\n },\n [updateValue, year]\n )\n\n const handleSelectYear = useCallback(\n (nextYear: string) => {\n updateValue(month, nextYear)\n },\n [month, updateValue]\n )\n\n // A click on the empty part of the field focuses it; clicks on the pickers (including their\n // portalled listboxes, whose React events bubble here) are handled by the pickers themselves.\n const handleContainerClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as Node\n if (!event.currentTarget.contains(target)) return\n if (target instanceof Element && target.closest('.dropdown.menu.anchor')) return\n focusField()\n },\n [focusField]\n )\n\n const handleClear = useCallback(() => {\n syncValue('')\n setTouched(false)\n setValidation(OK)\n onValidationChange?.(OK)\n onClear?.()\n focusField()\n }, [focusField, onClear, onValidationChange, syncValue])\n\n const hasError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess =\n !hasError && (success !== undefined ? success : touched && validation.valid && Boolean(month && year))\n const resolvedColorClass = hasError ? 'color-error' : color ? `color-${color}` : undefined\n\n const containerClasses = cn(\n 'container',\n `field-${variant}`,\n `field-${size}`,\n focused && 'focused',\n hasError && 'input-error',\n isSuccess && !hasError && 'input-success',\n resolvedColorClass,\n disabled && 'disabled',\n rounded && 'rounded'\n )\n\n const monthLabel = month || inputTexts.expMonthPlaceholder\n const yearLabel = year || inputTexts.expYearPlaceholder\n\n return (\n <div\n ref={rootRef}\n className={cn('input', 'input-exp-date', resolvedColorClass, fullWidth && 'full-width', className)}\n style={style}\n onFocusCapture={handleRootFocus}\n onBlurCapture={handleRootBlur}\n >\n {label && (\n <label\n id={labelId}\n htmlFor={id}\n className={cn(\n 'field-label',\n focused && 'focused',\n hasError && 'error',\n isSuccess && !hasError && 'success',\n required && 'required',\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n\n <div className={containerClasses} onClick={handleContainerClick}>\n {startIcon && <span className=\"start-icon\">{startIcon}</span>}\n\n <input\n ref={ref ?? inputRef}\n type=\"text\"\n value={currentValue}\n name={name}\n id={id}\n readOnly\n required={required}\n autoFocus={autoFocus}\n className=\"input-exp-date-native\"\n tabIndex={-1}\n aria-hidden=\"true\"\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n\n <div\n className=\"input-exp-date-segments\"\n role=\"group\"\n aria-label={label ? undefined : texts.expirationDate}\n aria-labelledby={label ? labelId : undefined}\n >\n {segmentDisabled ? (\n <span className={cn('input-exp-date-trigger', !month && 'placeholder', 'static')}>\n <span>{monthLabel}</span>\n </span>\n ) : (\n <ExpDateSegment\n options={MONTH_OPTIONS}\n value={month}\n placeholder={inputTexts.expMonthPlaceholder}\n name={inputTexts.expMonth}\n onSelect={handleSelectMonth}\n triggerRef={monthTriggerRef}\n listRef={monthListRef}\n />\n )}\n\n <span className=\"input-exp-date-separator\" aria-hidden=\"true\">\n /\n </span>\n\n {segmentDisabled ? (\n <span className={cn('input-exp-date-trigger', !year && 'placeholder', 'static')}>\n <span>{yearLabel}</span>\n </span>\n ) : (\n <ExpDateSegment\n options={yearOptions}\n value={year}\n placeholder={inputTexts.expYearPlaceholder}\n name={inputTexts.expYear}\n onSelect={handleSelectYear}\n triggerRef={yearTriggerRef}\n listRef={yearListRef}\n />\n )}\n </div>\n\n {clearable && hasContent && !segmentDisabled && (\n <button\n type=\"button\"\n className=\"clear-btn clear-btn-base\"\n onClick={(event) => {\n event.stopPropagation()\n handleClear()\n }}\n tabIndex={-1}\n aria-label={texts.clearInput}\n >\n <MCloseIcon />\n </button>\n )}\n\n {endIcon && <span className=\"end-icon\">{endIcon}</span>}\n </div>\n\n {(resolvedErrorText || helperText) && (\n <div className=\"bottom-row\">\n <span>\n {resolvedErrorText && (\n <span id={id ? `${id}-error` : undefined} className=\"field-error\" role=\"alert\">\n {resolvedErrorText}\n </span>\n )}\n {!resolvedErrorText && helperText && (\n <span id={id ? `${id}-helper` : undefined} className=\"field-helper\">\n {helperText}\n </span>\n )}\n </span>\n </div>\n )}\n </div>\n )\n})\n","import {forwardRef, useCallback, useState} from 'react'\nimport type * as React from 'react'\nimport type {MInputCVCProps} from './MInputCVC.types'\nimport {MInput} from '../MInput'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {MCheckIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MInputCVC.css'\n\nconst OK: ValidationResult = {valid: true}\n\nfunction stripDigits(value: string) {\n return value.replace(/\\D/g, '')\n}\n\nfunction validateCvc(value: string, length: 3 | 4): ValidationResult {\n if (!value) {\n return OK\n }\n\n const digits = stripDigits(value)\n\n if (digits.length !== length) {\n return {valid: false, error: `Security code must have ${length} digits`}\n }\n\n return OK\n}\n\nexport const MInputCVC = forwardRef<HTMLInputElement, MInputCVCProps>(function MInputCVC(\n {\n length = 3,\n validateOnBlur = true,\n validateOnChange = false,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n onKeyDown,\n error,\n errorText,\n success,\n placeholder,\n className,\n inputClassName,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(() =>\n stripDigits(defaultValue?.toString() ?? '').slice(0, length)\n )\n const [validation, setValidation] = useState<ValidationResult>(OK)\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? stripDigits(value.toString()).slice(0, length) : internalValue\n\n const runValidation = useCallback(\n (nextValue: string) => {\n const result = validateCvc(nextValue, length)\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [length, onValidationChange]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const nextValue = stripDigits(event.target.value).slice(0, length)\n\n if (value === undefined) {\n setInternalValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n\n if (validateOnChange && touched) {\n runValidation(nextValue)\n }\n\n onChange?.(event)\n },\n [length, onChange, onValueChange, runValidation, touched, validateOnChange, value]\n )\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n\n if (validateOnBlur && currentValue) {\n runValidation(currentValue)\n }\n\n onBlur?.(event)\n },\n [currentValue, onBlur, runValidation, validateOnBlur]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (['Backspace', 'Delete', 'Tab', 'ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) {\n onKeyDown?.(event)\n return\n }\n\n if (event.ctrlKey || event.metaKey) {\n onKeyDown?.(event)\n return\n }\n\n if (!/^\\d$/.test(event.key)) {\n event.preventDefault()\n }\n\n onKeyDown?.(event)\n },\n [onKeyDown]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess = !isError && (success !== undefined ? success : touched && currentValue.length === length)\n const endIcon = isSuccess ? <MCheckIcon /> : undefined\n\n return (\n <MInput\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n error={isError}\n errorText={resolvedErrorText}\n success={isSuccess}\n placeholder={placeholder ?? ''.padEnd(length, '0')}\n maxLength={length}\n endIcon={endIcon}\n inputClassName={cn('input-cvc-field', inputClassName)}\n className={className}\n />\n )\n})\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./frameworkTexts-CaqdiKHW.cjs`),t=require(`./icons-Bp8bB9TP.cjs`),n=require(`./useGhostText-DO-tfxS0.cjs`),r=require(`./MInput-BeEGufZG.cjs`);require(`./core-w629c4ND.cjs`);let i=require(`react`),a=require(`react/jsx-runtime`);var o=(0,i.forwardRef)(function({debounceMs:o=300,onSearch:s,value:c,defaultValue:l,onChange:u,onKeyDown:d,onClear:f,clearable:p=!0,placeholder:m,...h},g){let _=e.p(),[v,y]=(0,i.useState)(l?.toString()??``),b=c===void 0?v:c.toString(),x=n.i(e=>s?.(e),o),S=(0,i.useCallback)(e=>{c===void 0&&y(e.target.value),x(e.target.value),u?.(e)},[u,c,x]),C=(0,i.useCallback)(e=>{e.key===`Enter`&&s?.(b),d?.(e)},[b,s,d]),w=(0,i.useCallback)(()=>{c===void 0&&y(``),s?.(``),f?.()},[c,s,f]);return(0,a.jsx)(r.t,{...h,ref:g,type:`text`,value:b,onChange:S,onKeyDown:C,onClear:w,clearable:p,placeholder:m??_.searchPlaceholder,startIcon:(0,a.jsx)(t.Zi,{})})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=MInputSearch-BSIc6m2P.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MInputSearch-BSIc6m2P.cjs","names":[],"sources":["../src/components/inputs/MInputSearch/MInputSearch.tsx"],"sourcesContent":["import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {MInputSearchProps} from './MInputSearch.types'\nimport {MInput} from '../MInput'\nimport {useDebouncedCallback} from '../../../utils/useDebounce'\nimport {MSearchIcon} from '../../../icons'\nimport {useMInputTexts} from '../../../i18n/frameworkTexts'\n\n// Extend the base input with debounced search callbacks and an inline clear action.\nexport const MInputSearch = forwardRef<HTMLInputElement, MInputSearchProps>(function MInputSearch(\n {\n debounceMs = 300,\n onSearch,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onClear,\n clearable = true,\n placeholder,\n ...rest\n },\n ref\n) {\n const texts = useMInputTexts()\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n const debouncedSearch = useDebouncedCallback((val: string) => onSearch?.(val), debounceMs)\n\n // Update local state and debounce search notifications while typing.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n debouncedSearch(e.target.value)\n onChange?.(e)\n },\n [onChange, value, debouncedSearch]\n )\n\n // Run search immediately when the user confirms with Enter.\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onSearch?.(currentValue)\n }\n onKeyDown?.(e)\n },\n [currentValue, onSearch, onKeyDown]\n )\n\n // Clear both the visible field and the emitted search query.\n const handleClear = useCallback(() => {\n if (value === undefined) {\n setInternalValue('')\n }\n onSearch?.('')\n onClear?.()\n }, [value, onSearch, onClear])\n\n return (\n <MInput\n {...rest}\n ref={ref}\n type=\"text\"\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onClear={handleClear}\n clearable={clearable}\n placeholder={placeholder ?? texts.searchPlaceholder}\n startIcon={<MSearchIcon />}\n />\n )\n})\n"],"mappings":"oPASA,IAAa,GAAA,EAAA,EAAA,YAA+D,SACxE,CACI,aAAa,IACb,WACA,QACA,eACA,WACA,YACA,UACA,YAAY,GACZ,cACA,GAAG,GAEP,EACF,CACE,IAAM,EAAQ,EAAA,GAAgB,CACxB,CAAC,EAAe,IAAA,EAAA,EAAA,UAA6B,GAAc,UAAU,EAAI,GAAG,CAC5E,EAAe,IAAU,IAAA,GAA+B,EAAnB,EAAM,UAAU,CAErD,EAAkB,EAAA,EAAsB,GAAgB,IAAW,EAAI,CAAE,EAAW,CAGpF,GAAA,EAAA,EAAA,aACD,GAA2C,CACpC,IAAU,IAAA,IACV,EAAiB,EAAE,OAAO,MAAM,CAEpC,EAAgB,EAAE,OAAO,MAAM,CAC/B,IAAW,EAAE,EAEjB,CAAC,EAAU,EAAO,EAAgB,CACrC,CAGK,GAAA,EAAA,EAAA,aACD,GAA6C,CACtC,EAAE,MAAQ,SACV,IAAW,EAAa,CAE5B,IAAY,EAAE,EAElB,CAAC,EAAc,EAAU,EAAU,CACtC,CAGK,GAAA,EAAA,EAAA,iBAAgC,CAC9B,IAAU,IAAA,IACV,EAAiB,GAAG,CAExB,IAAW,GAAG,CACd,KAAW,EACZ,CAAC,EAAO,EAAU,EAAQ,CAAC,CAE9B,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,GAAI,EACC,MACL,KAAK,OACL,MAAO,EACP,SAAU,EACV,UAAW,EACX,QAAS,EACE,YACX,YAAa,GAAe,EAAM,kBAClC,WAAW,EAAA,EAAA,KAAC,EAAA,GAAD,EAAe,CAAA,CAC5B,CAAA,EAER"}
@@ -0,0 +1,44 @@
1
+ import { p as e } from "./frameworkTexts-o43FqY1A.js";
2
+ import { Zi as t } from "./icons-IqEBmGh3.js";
3
+ import { i as n } from "./useGhostText-CKsb8Ufa.js";
4
+ import { t as r } from "./MInput-QnQV9L8U.js";
5
+ import { forwardRef as i, useCallback as a, useState as o } from "react";
6
+ import { jsx as s } from "react/jsx-runtime";
7
+ //#region src/components/inputs/MInputSearch/MInputSearch.tsx
8
+ var c = i(function({ debounceMs: i = 300, onSearch: c, value: l, defaultValue: u, onChange: d, onKeyDown: f, onClear: p, clearable: m = !0, placeholder: h, ...g }, _) {
9
+ let v = e(), [y, b] = o(u?.toString() ?? ""), x = l === void 0 ? y : l.toString(), S = n((e) => c?.(e), i), C = a((e) => {
10
+ l === void 0 && b(e.target.value), S(e.target.value), d?.(e);
11
+ }, [
12
+ d,
13
+ l,
14
+ S
15
+ ]), w = a((e) => {
16
+ e.key === "Enter" && c?.(x), f?.(e);
17
+ }, [
18
+ x,
19
+ c,
20
+ f
21
+ ]), T = a(() => {
22
+ l === void 0 && b(""), c?.(""), p?.();
23
+ }, [
24
+ l,
25
+ c,
26
+ p
27
+ ]);
28
+ return /* @__PURE__ */ s(r, {
29
+ ...g,
30
+ ref: _,
31
+ type: "text",
32
+ value: x,
33
+ onChange: C,
34
+ onKeyDown: w,
35
+ onClear: T,
36
+ clearable: m,
37
+ placeholder: h ?? v.searchPlaceholder,
38
+ startIcon: /* @__PURE__ */ s(t, {})
39
+ });
40
+ });
41
+ //#endregion
42
+ export { c as t };
43
+
44
+ //# sourceMappingURL=MInputSearch-CNuTAbYs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MInputSearch-CNuTAbYs.js","names":[],"sources":["../src/components/inputs/MInputSearch/MInputSearch.tsx"],"sourcesContent":["import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {MInputSearchProps} from './MInputSearch.types'\nimport {MInput} from '../MInput'\nimport {useDebouncedCallback} from '../../../utils/useDebounce'\nimport {MSearchIcon} from '../../../icons'\nimport {useMInputTexts} from '../../../i18n/frameworkTexts'\n\n// Extend the base input with debounced search callbacks and an inline clear action.\nexport const MInputSearch = forwardRef<HTMLInputElement, MInputSearchProps>(function MInputSearch(\n {\n debounceMs = 300,\n onSearch,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onClear,\n clearable = true,\n placeholder,\n ...rest\n },\n ref\n) {\n const texts = useMInputTexts()\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n const debouncedSearch = useDebouncedCallback((val: string) => onSearch?.(val), debounceMs)\n\n // Update local state and debounce search notifications while typing.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n debouncedSearch(e.target.value)\n onChange?.(e)\n },\n [onChange, value, debouncedSearch]\n )\n\n // Run search immediately when the user confirms with Enter.\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onSearch?.(currentValue)\n }\n onKeyDown?.(e)\n },\n [currentValue, onSearch, onKeyDown]\n )\n\n // Clear both the visible field and the emitted search query.\n const handleClear = useCallback(() => {\n if (value === undefined) {\n setInternalValue('')\n }\n onSearch?.('')\n onClear?.()\n }, [value, onSearch, onClear])\n\n return (\n <MInput\n {...rest}\n ref={ref}\n type=\"text\"\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onClear={handleClear}\n clearable={clearable}\n placeholder={placeholder ?? texts.searchPlaceholder}\n startIcon={<MSearchIcon />}\n />\n )\n})\n"],"mappings":";;;;;;;AASA,IAAa,IAAe,EAAgD,SACxE,EACI,gBAAa,KACb,aACA,UACA,iBACA,aACA,cACA,YACA,eAAY,IACZ,gBACA,GAAG,KAEP,GACF;CACE,IAAM,IAAQ,GAAgB,EACxB,CAAC,GAAe,KAAoB,EAAS,GAAc,UAAU,IAAI,GAAG,EAC5E,IAAe,MAAU,KAAA,IAA+B,IAAnB,EAAM,UAAU,EAErD,IAAkB,GAAsB,MAAgB,IAAW,EAAI,EAAE,EAAW,EAGpF,IAAe,GAChB,MAA2C;AAKxC,EAJI,MAAU,KAAA,KACV,EAAiB,EAAE,OAAO,MAAM,EAEpC,EAAgB,EAAE,OAAO,MAAM,EAC/B,IAAW,EAAE;IAEjB;EAAC;EAAU;EAAO;EAAgB,CACrC,EAGK,IAAgB,GACjB,MAA6C;AAI1C,EAHI,EAAE,QAAQ,WACV,IAAW,EAAa,EAE5B,IAAY,EAAE;IAElB;EAAC;EAAc;EAAU;EAAU,CACtC,EAGK,IAAc,QAAkB;AAKlC,EAJI,MAAU,KAAA,KACV,EAAiB,GAAG,EAExB,IAAW,GAAG,EACd,KAAW;IACZ;EAAC;EAAO;EAAU;EAAQ,CAAC;AAE9B,QACI,kBAAC,GAAD;EACI,GAAI;EACC;EACL,MAAK;EACL,OAAO;EACP,UAAU;EACV,WAAW;EACX,SAAS;EACE;EACX,aAAa,KAAe,EAAM;EAClC,WAAW,kBAAC,GAAD,EAAe,CAAA;EAC5B,CAAA;EAER"}
@@ -1,2 +1,2 @@
1
- const e=require(`./cn-CU5TNITO.cjs`);require(`./core-w629c4ND.cjs`);let t=require(`react/jsx-runtime`);function n({size:n=`md`,className:r,children:i,...a}){return(0,t.jsx)(`kbd`,{className:e.t(`kbd`,n,r),...a,children:i})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
2
- //# sourceMappingURL=MKbd-BR1GX5oK.cjs.map
1
+ const e=require(`./cn-DYFxgzi2.cjs`);require(`./core-w629c4ND.cjs`);let t=require(`react/jsx-runtime`);function n({size:n=`md`,className:r,children:i,...a}){return(0,t.jsx)(`kbd`,{className:e.t(`kbd`,n,r),...a,children:i})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
2
+ //# sourceMappingURL=MKbd-CnW3NUIu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MKbd-BR1GX5oK.cjs","names":[],"sources":["../src/components/typography/MKbd/MKbd.tsx"],"sourcesContent":["import type {MKbdProps} from './MKbd.types'\nimport {cn} from '../../../utils/cn'\nimport './MKbd.css'\n\nexport function MKbd({size = 'md', className, children, ...rest}: MKbdProps) {\n return (\n <kbd className={cn('kbd', size, className)} {...rest}>\n {children}\n </kbd>\n )\n}\n"],"mappings":"uGAIA,SAAgB,EAAK,CAAC,OAAO,KAAM,YAAW,WAAU,GAAG,GAAkB,CACzE,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,MAAO,EAAM,EAAU,CAAE,GAAI,EAC3C,WACC,CAAA"}
1
+ {"version":3,"file":"MKbd-CnW3NUIu.cjs","names":[],"sources":["../src/components/typography/MKbd/MKbd.tsx"],"sourcesContent":["import type {MKbdProps} from './MKbd.types'\nimport {cn} from '../../../utils/cn'\nimport './MKbd.css'\n\nexport function MKbd({size = 'md', className, children, ...rest}: MKbdProps) {\n return (\n <kbd className={cn('kbd', size, className)} {...rest}>\n {children}\n </kbd>\n )\n}\n"],"mappings":"uGAIA,SAAgB,EAAK,CAAC,OAAO,KAAM,YAAW,WAAU,GAAG,GAAkB,CACzE,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,MAAO,EAAM,EAAU,CAAE,GAAI,EAC3C,WACC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./cn-YER3QsV1.js";
1
+ import { t as e } from "./cn-CUSXNnjF.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/components/typography/MKbd/MKbd.tsx
4
4
  function n({ size: n = "md", className: r, children: i, ...a }) {
@@ -11,4 +11,4 @@ function n({ size: n = "md", className: r, children: i, ...a }) {
11
11
  //#endregion
12
12
  export { n as t };
13
13
 
14
- //# sourceMappingURL=MKbd-COb7oh_k.js.map
14
+ //# sourceMappingURL=MKbd-DjfGyajR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MKbd-COb7oh_k.js","names":[],"sources":["../src/components/typography/MKbd/MKbd.tsx"],"sourcesContent":["import type {MKbdProps} from './MKbd.types'\nimport {cn} from '../../../utils/cn'\nimport './MKbd.css'\n\nexport function MKbd({size = 'md', className, children, ...rest}: MKbdProps) {\n return (\n <kbd className={cn('kbd', size, className)} {...rest}>\n {children}\n </kbd>\n )\n}\n"],"mappings":";;;AAIA,SAAgB,EAAK,EAAC,UAAO,MAAM,cAAW,aAAU,GAAG,KAAkB;AACzE,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,OAAO,GAAM,EAAU;EAAE,GAAI;EAC3C;EACC,CAAA"}
1
+ {"version":3,"file":"MKbd-DjfGyajR.js","names":[],"sources":["../src/components/typography/MKbd/MKbd.tsx"],"sourcesContent":["import type {MKbdProps} from './MKbd.types'\nimport {cn} from '../../../utils/cn'\nimport './MKbd.css'\n\nexport function MKbd({size = 'md', className, children, ...rest}: MKbdProps) {\n return (\n <kbd className={cn('kbd', size, className)} {...rest}>\n {children}\n </kbd>\n )\n}\n"],"mappings":";;;AAIA,SAAgB,EAAK,EAAC,UAAO,MAAM,cAAW,aAAU,GAAG,KAAkB;AACzE,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,OAAO,GAAM,EAAU;EAAE,GAAI;EAC3C;EACC,CAAA"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-ByPZH0dh.cjs`),t=require(`./cn-DYFxgzi2.cjs`);require(`./core-w629c4ND.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.forwardRef)(function({component:n,to:i,tone:a=`default`,underline:o=`hover`,hidden:s,hiddenAbove:c,current:l=!1,block:u=!1,disabled:d=!1,className:f,children:p,href:m,onClick:h,...g},_){let v=n??`a`;function y(e){if(d){e.preventDefault();return}h?.(e)}return(0,r.jsx)(v,{ref:_,href:n||d?void 0:m,to:n?i:void 0,className:t.t(`link`,a,o,l&&`current`,u&&`block`,d&&`disabled`,f),"aria-current":l?`page`:void 0,"aria-disabled":d||void 0,onClick:y,...e.r(s,c),...g,children:p})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=MLink-C6uwA6db.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MLink-C6uwA6db.cjs","names":[],"sources":["../src/components/typography/MLink/MLink.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MLinkProps} from './MLink.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MLink.css'\n\n// Render a semantic link that can target anchors or router link components.\nexport const MLink = forwardRef<HTMLElement, MLinkProps>(function MLink(\n {\n component,\n to,\n tone = 'default',\n underline = 'hover',\n hidden,\n hiddenAbove,\n current = false,\n block = false,\n disabled = false,\n className,\n children,\n href,\n onClick,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'a'\n\n // Prevent disabled links from navigating while still exposing their content.\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n onClick?.(event)\n }\n\n return (\n <Component\n ref={ref}\n href={component ? undefined : disabled ? undefined : href}\n to={component ? to : undefined}\n className={cn(\n 'link',\n tone,\n underline,\n current && 'current',\n block && 'block',\n disabled && 'disabled',\n className\n )}\n aria-current={current ? 'page' : undefined}\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n {...getHiddenProps(hidden, hiddenAbove)}\n {...rest}\n >\n {children}\n </Component>\n )\n})\n"],"mappings":"4JAQA,IAAa,GAAA,EAAA,EAAA,YAA4C,SACrD,CACI,YACA,KACA,OAAO,UACP,YAAY,QACZ,SACA,cACA,UAAU,GACV,QAAQ,GACR,WAAW,GACX,YACA,WACA,OACA,UACA,GAAG,GAEP,EACF,CACE,IAAM,EAAY,GAAa,IAG/B,SAAS,EAAY,EAAsC,CACvD,GAAI,EAAU,CACV,EAAM,gBAAgB,CACtB,OAGJ,IAAU,EAAM,CAGpB,OACI,EAAA,EAAA,KAAC,EAAD,CACS,MACL,KAAM,GAAwB,EAAZ,IAAA,GAAmC,EACrD,GAAI,EAAY,EAAK,IAAA,GACrB,UAAW,EAAA,EACP,OACA,EACA,EACA,GAAW,UACX,GAAS,QACT,GAAY,WACZ,EACH,CACD,eAAc,EAAU,OAAS,IAAA,GACjC,gBAAe,GAAY,IAAA,GAC3B,QAAS,EACT,GAAI,EAAA,EAAe,EAAQ,EAAY,CACvC,GAAI,EAEH,WACO,CAAA,EAElB"}
@@ -0,0 +1,31 @@
1
+ import { r as e } from "./theme-B_juOenJ.js";
2
+ import { t } from "./cn-CUSXNnjF.js";
3
+ import { forwardRef as n } from "react";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region src/components/typography/MLink/MLink.tsx
6
+ var i = n(function({ component: n, to: i, tone: a = "default", underline: o = "hover", hidden: s, hiddenAbove: c, current: l = !1, block: u = !1, disabled: d = !1, className: f, children: p, href: m, onClick: h, ...g }, _) {
7
+ let v = n ?? "a";
8
+ function y(e) {
9
+ if (d) {
10
+ e.preventDefault();
11
+ return;
12
+ }
13
+ h?.(e);
14
+ }
15
+ return /* @__PURE__ */ r(v, {
16
+ ref: _,
17
+ href: n || d ? void 0 : m,
18
+ to: n ? i : void 0,
19
+ className: t("link", a, o, l && "current", u && "block", d && "disabled", f),
20
+ "aria-current": l ? "page" : void 0,
21
+ "aria-disabled": d || void 0,
22
+ onClick: y,
23
+ ...e(s, c),
24
+ ...g,
25
+ children: p
26
+ });
27
+ });
28
+ //#endregion
29
+ export { i as t };
30
+
31
+ //# sourceMappingURL=MLink-ixg0xFFI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MLink-ixg0xFFI.js","names":[],"sources":["../src/components/typography/MLink/MLink.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MLinkProps} from './MLink.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MLink.css'\n\n// Render a semantic link that can target anchors or router link components.\nexport const MLink = forwardRef<HTMLElement, MLinkProps>(function MLink(\n {\n component,\n to,\n tone = 'default',\n underline = 'hover',\n hidden,\n hiddenAbove,\n current = false,\n block = false,\n disabled = false,\n className,\n children,\n href,\n onClick,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'a'\n\n // Prevent disabled links from navigating while still exposing their content.\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n onClick?.(event)\n }\n\n return (\n <Component\n ref={ref}\n href={component ? undefined : disabled ? undefined : href}\n to={component ? to : undefined}\n className={cn(\n 'link',\n tone,\n underline,\n current && 'current',\n block && 'block',\n disabled && 'disabled',\n className\n )}\n aria-current={current ? 'page' : undefined}\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n {...getHiddenProps(hidden, hiddenAbove)}\n {...rest}\n >\n {children}\n </Component>\n )\n})\n"],"mappings":";;;;;AAQA,IAAa,IAAQ,EAAoC,SACrD,EACI,cACA,OACA,UAAO,WACP,eAAY,SACZ,WACA,gBACA,aAAU,IACV,WAAQ,IACR,cAAW,IACX,cACA,aACA,SACA,YACA,GAAG,KAEP,GACF;CACE,IAAM,IAAY,KAAa;CAG/B,SAAS,EAAY,GAAsC;AACvD,MAAI,GAAU;AACV,KAAM,gBAAgB;AACtB;;AAGJ,MAAU,EAAM;;AAGpB,QACI,kBAAC,GAAD;EACS;EACL,MAAM,KAAwB,IAAZ,KAAA,IAAmC;EACrD,IAAI,IAAY,IAAK,KAAA;EACrB,WAAW,EACP,QACA,GACA,GACA,KAAW,WACX,KAAS,SACT,KAAY,YACZ,EACH;EACD,gBAAc,IAAU,SAAS,KAAA;EACjC,iBAAe,KAAY,KAAA;EAC3B,SAAS;EACT,GAAI,EAAe,GAAQ,EAAY;EACvC,GAAI;EAEH;EACO,CAAA;EAElB"}