@banzamel/mineralui 1.6.4 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-BHASnoyu.js → MAvatar-BcayQCnp.js} +2 -2
  3. package/dist/{MAvatar-BHASnoyu.js.map → MAvatar-BcayQCnp.js.map} +1 -1
  4. package/dist/{MAvatar-BVJh6kgW.cjs → MAvatar-BgevCYi3.cjs} +2 -2
  5. package/dist/{MAvatar-BVJh6kgW.cjs.map → MAvatar-BgevCYi3.cjs.map} +1 -1
  6. package/dist/MButton-8UCydOik.cjs +2 -0
  7. package/dist/MButton-8UCydOik.cjs.map +1 -0
  8. package/dist/{MButton-y9qXhhGt.js → MButton-DZLLrtQb.js} +38 -36
  9. package/dist/MButton-DZLLrtQb.js.map +1 -0
  10. package/dist/{MCheckbox-B-nT2OBE.js → MCheckbox-B7SpcD4H.js} +1 -1
  11. package/dist/{MCheckbox-B-nT2OBE.js.map → MCheckbox-B7SpcD4H.js.map} +1 -1
  12. package/dist/{MCheckbox-C40ESQRe.cjs → MCheckbox-Dn3p_9-1.cjs} +2 -2
  13. package/dist/{MCheckbox-C40ESQRe.cjs.map → MCheckbox-Dn3p_9-1.cjs.map} +1 -1
  14. package/dist/{MCookieBootstrap-3-wyz3Dk.cjs → MCookieBootstrap-BUqtJO3m.cjs} +1 -1
  15. package/dist/{MCookieBootstrap-3-wyz3Dk.cjs.map → MCookieBootstrap-BUqtJO3m.cjs.map} +1 -1
  16. package/dist/{MCookieBootstrap-CGvYxIK8.js → MCookieBootstrap-Btt49Iuq.js} +1 -1
  17. package/dist/{MCookieBootstrap-CGvYxIK8.js.map → MCookieBootstrap-Btt49Iuq.js.map} +1 -1
  18. package/dist/MDataTable-95_Mb6jE.cjs +2 -0
  19. package/dist/MDataTable-95_Mb6jE.cjs.map +1 -0
  20. package/dist/MDataTable-DxDS5auV.js +297 -0
  21. package/dist/MDataTable-DxDS5auV.js.map +1 -0
  22. package/dist/{MDrawer-W2WQs1sM.js → MDrawer-CXNHYwPO.js} +2 -2
  23. package/dist/{MDrawer-W2WQs1sM.js.map → MDrawer-CXNHYwPO.js.map} +1 -1
  24. package/dist/{MDrawer-DFkrFrnD.cjs → MDrawer-DzqtHVeA.cjs} +2 -2
  25. package/dist/{MDrawer-DFkrFrnD.cjs.map → MDrawer-DzqtHVeA.cjs.map} +1 -1
  26. package/dist/{MDropdownMenu-D79Cm5aS.js → MDropdownMenu-CeiC1tz3.js} +5 -5
  27. package/dist/MDropdownMenu-CeiC1tz3.js.map +1 -0
  28. package/dist/MDropdownMenu-c9U3sEcl.cjs +2 -0
  29. package/dist/MDropdownMenu-c9U3sEcl.cjs.map +1 -0
  30. package/dist/{MGalleryIllustration-BB3DoCl_.cjs → MGalleryIllustration-Dglx_Ckc.cjs} +2 -2
  31. package/dist/{MGalleryIllustration-BB3DoCl_.cjs.map → MGalleryIllustration-Dglx_Ckc.cjs.map} +1 -1
  32. package/dist/MGrid-C4kPZDSa.cjs +2 -0
  33. package/dist/MGrid-C4kPZDSa.cjs.map +1 -0
  34. package/dist/MGrid-DR0fHItF.js +182 -0
  35. package/dist/MGrid-DR0fHItF.js.map +1 -0
  36. package/dist/{MHeading-BhCNoJeW.cjs → MHeading-CKe5lcM_.cjs} +2 -2
  37. package/dist/{MHeading-BhCNoJeW.cjs.map → MHeading-CKe5lcM_.cjs.map} +1 -1
  38. package/dist/{MI18nProvider-B2sE0x5D.cjs → MI18nProvider-DOh5xexz.cjs} +2 -2
  39. package/dist/{MI18nProvider-B2sE0x5D.cjs.map → MI18nProvider-DOh5xexz.cjs.map} +1 -1
  40. package/dist/MImage-BZ6SrSao.cjs +2 -0
  41. package/dist/MImage-BZ6SrSao.cjs.map +1 -0
  42. package/dist/{MImage-BKX-xBm3.js → MImage-Btx_7g2Z.js} +5 -6
  43. package/dist/MImage-Btx_7g2Z.js.map +1 -0
  44. package/dist/{MInput-bzSwK880.js → MInput-7i0Dy1t4.js} +3 -2
  45. package/dist/{MInput-bzSwK880.js.map → MInput-7i0Dy1t4.js.map} +1 -1
  46. package/dist/{MInput-DYqV3-rQ.cjs → MInput-D_zaoWwX.cjs} +2 -2
  47. package/dist/{MInput-DYqV3-rQ.cjs.map → MInput-D_zaoWwX.cjs.map} +1 -1
  48. package/dist/MInputExpDate-DWWwjMYK.cjs +2 -0
  49. package/dist/MInputExpDate-DWWwjMYK.cjs.map +1 -0
  50. package/dist/{MInputCVC-BHpMHTO5.js → MInputExpDate-DhO5zN7L.js} +97 -97
  51. package/dist/MInputExpDate-DhO5zN7L.js.map +1 -0
  52. package/dist/{MInputSearch-Dh4C3Tz5.js → MInputSearch-CmzHPnmC.js} +2 -2
  53. package/dist/{MInputSearch-Dh4C3Tz5.js.map → MInputSearch-CmzHPnmC.js.map} +1 -1
  54. package/dist/{MInputSearch-DfoenJIm.cjs → MInputSearch-DpHSVpmL.cjs} +2 -2
  55. package/dist/{MInputSearch-DfoenJIm.cjs.map → MInputSearch-DpHSVpmL.cjs.map} +1 -1
  56. package/dist/MKbd-DWTS3iS5.cjs +2 -0
  57. package/dist/MKbd-DWTS3iS5.cjs.map +1 -0
  58. package/dist/MKbd-v6-tJ9sP.js +14 -0
  59. package/dist/MKbd-v6-tJ9sP.js.map +1 -0
  60. package/dist/{MLink-CY45UR_j.cjs → MLink-B3ImjkJV.cjs} +2 -2
  61. package/dist/{MLink-CY45UR_j.cjs.map → MLink-B3ImjkJV.cjs.map} +1 -1
  62. package/dist/{MModal-DT5BBgNZ.cjs → MModal-CP0e31pv.cjs} +2 -2
  63. package/dist/{MModal-DT5BBgNZ.cjs.map → MModal-CP0e31pv.cjs.map} +1 -1
  64. package/dist/{MModal-BDTAgnrm.js → MModal-DGmeQlWo.js} +2 -2
  65. package/dist/{MModal-BDTAgnrm.js.map → MModal-DGmeQlWo.js.map} +1 -1
  66. package/dist/{MPagination-CZEJMJzZ.cjs → MPagination-CS62B9kZ.cjs} +2 -2
  67. package/dist/{MPagination-CZEJMJzZ.cjs.map → MPagination-CS62B9kZ.cjs.map} +1 -1
  68. package/dist/{MPagination-CTnaW5AW.js → MPagination-Dr110are.js} +2 -2
  69. package/dist/{MPagination-CTnaW5AW.js.map → MPagination-Dr110are.js.map} +1 -1
  70. package/dist/{MPopover-B4IUb9f0.cjs → MPopover-CxxaY9kr.cjs} +2 -2
  71. package/dist/{MPopover-B4IUb9f0.cjs.map → MPopover-CxxaY9kr.cjs.map} +1 -1
  72. package/dist/{MPortal-Bi24xTGW.cjs → MPortal-BIxPtFYd.cjs} +2 -2
  73. package/dist/{MPortal-Bi24xTGW.cjs.map → MPortal-BIxPtFYd.cjs.map} +1 -1
  74. package/dist/{MQrCode-CCtTkkv9.js → MQrCode-6ANDcExA.js} +150 -100
  75. package/dist/MQrCode-6ANDcExA.js.map +1 -0
  76. package/dist/MQrCode-B0-Np-N3.cjs +2 -0
  77. package/dist/MQrCode-B0-Np-N3.cjs.map +1 -0
  78. package/dist/MSimpleGrid-Bojj4xKH.js +18 -0
  79. package/dist/MSimpleGrid-Bojj4xKH.js.map +1 -0
  80. package/dist/MSimpleGrid-CyLf-9R2.cjs +2 -0
  81. package/dist/MSimpleGrid-CyLf-9R2.cjs.map +1 -0
  82. package/dist/MSkeleton-BdwhPx-k.cjs +2 -0
  83. package/dist/MSkeleton-BdwhPx-k.cjs.map +1 -0
  84. package/dist/MSkeleton-BvXgnYs_.js +136 -0
  85. package/dist/MSkeleton-BvXgnYs_.js.map +1 -0
  86. package/dist/{MSlider-5141rKeH.js → MSlider-CqrusKJQ.js} +1 -1
  87. package/dist/{MSlider-5141rKeH.js.map → MSlider-CqrusKJQ.js.map} +1 -1
  88. package/dist/{MSlider-Ch3VjAJC.cjs → MSlider-qCGmD4UA.cjs} +2 -2
  89. package/dist/{MSlider-Ch3VjAJC.cjs.map → MSlider-qCGmD4UA.cjs.map} +1 -1
  90. package/dist/MStack-ByFYGSsy.cjs +2 -0
  91. package/dist/MStack-ByFYGSsy.cjs.map +1 -0
  92. package/dist/MStack-DFIc3S4_.js +70 -0
  93. package/dist/MStack-DFIc3S4_.js.map +1 -0
  94. package/dist/{MSubText-C-70zn0m.cjs → MSubText-1ilKSz8e.cjs} +2 -2
  95. package/dist/{MSubText-C-70zn0m.cjs.map → MSubText-1ilKSz8e.cjs.map} +1 -1
  96. package/dist/MSurface-CmVIQC1A.js +43 -0
  97. package/dist/MSurface-CmVIQC1A.js.map +1 -0
  98. package/dist/MSurface-CpAuwpHv.cjs +2 -0
  99. package/dist/MSurface-CpAuwpHv.cjs.map +1 -0
  100. package/dist/MTabs-BQZ--mMq.js +89 -0
  101. package/dist/MTabs-BQZ--mMq.js.map +1 -0
  102. package/dist/MTabs-DeUn6bIp.cjs +2 -0
  103. package/dist/MTabs-DeUn6bIp.cjs.map +1 -0
  104. package/dist/{MTag-CH5nMbm7.js → MTag-C4SUJly2.js} +2 -2
  105. package/dist/{MTag-CH5nMbm7.js.map → MTag-C4SUJly2.js.map} +1 -1
  106. package/dist/{MTag-Y4Tswmli.cjs → MTag-DwQ-j1sV.cjs} +2 -2
  107. package/dist/{MTag-Y4Tswmli.cjs.map → MTag-DwQ-j1sV.cjs.map} +1 -1
  108. package/dist/{MText-DEJddMB5.cjs → MText-D0fI_D_Q.cjs} +2 -2
  109. package/dist/{MText-DEJddMB5.cjs.map → MText-D0fI_D_Q.cjs.map} +1 -1
  110. package/dist/{MTimeAgo-DxZGVo2Y.cjs → MTimeAgo-DI3DF7bD.cjs} +2 -2
  111. package/dist/{MTimeAgo-DxZGVo2Y.cjs.map → MTimeAgo-DI3DF7bD.cjs.map} +1 -1
  112. package/dist/{MTimeAgo-C4p80NvI.js → MTimeAgo-Db8gOade.js} +2 -2
  113. package/dist/{MTimeAgo-C4p80NvI.js.map → MTimeAgo-Db8gOade.js.map} +1 -1
  114. package/dist/{MToggle-Dt1Ctr5e.js → MToggle-B6emKoKq.js} +1 -1
  115. package/dist/{MToggle-Dt1Ctr5e.js.map → MToggle-B6emKoKq.js.map} +1 -1
  116. package/dist/{MToggle-C8vYRzpC.cjs → MToggle-BVJm5Bdk.cjs} +2 -2
  117. package/dist/{MToggle-C8vYRzpC.cjs.map → MToggle-BVJm5Bdk.cjs.map} +1 -1
  118. package/dist/{MTooltip-kSTMMpvu.cjs → MTooltip-Dq2vYf3G.cjs} +2 -2
  119. package/dist/{MTooltip-kSTMMpvu.cjs.map → MTooltip-Dq2vYf3G.cjs.map} +1 -1
  120. package/dist/{MTooltip-C43aUKMP.js → MTooltip-jSf4VBtB.js} +1 -1
  121. package/dist/{MTooltip-C43aUKMP.js.map → MTooltip-jSf4VBtB.js.map} +1 -1
  122. package/dist/MTreeView-AqH8XMPz.js +516 -0
  123. package/dist/MTreeView-AqH8XMPz.js.map +1 -0
  124. package/dist/MTreeView-Dp9qbqQh.cjs +2 -0
  125. package/dist/MTreeView-Dp9qbqQh.cjs.map +1 -0
  126. package/dist/{arduino-CXUo7Bjy.cjs → arduino-Bm509TuR.cjs} +1 -1
  127. package/dist/{arduino-CXUo7Bjy.cjs.map → arduino-Bm509TuR.cjs.map} +1 -1
  128. package/dist/{arduino-Eif5KI8O.js → arduino-C5s1z3P1.js} +1 -1
  129. package/dist/{arduino-Eif5KI8O.js.map → arduino-C5s1z3P1.js.map} +1 -1
  130. package/dist/{bash-W4h3o_nx.cjs → bash-CyBbinAU.cjs} +1 -1
  131. package/dist/{bash-W4h3o_nx.cjs.map → bash-CyBbinAU.cjs.map} +1 -1
  132. package/dist/{bash-CCF_TYbb.js → bash-RIFbRcCe.js} +1 -1
  133. package/dist/{bash-CCF_TYbb.js.map → bash-RIFbRcCe.js.map} +1 -1
  134. package/dist/{c-DVgkp6T3.js → c-DAywn1DE.js} +1 -1
  135. package/dist/{c-DVgkp6T3.js.map → c-DAywn1DE.js.map} +1 -1
  136. package/dist/{c-Dm60JY-W.cjs → c-DGOxo0dj.cjs} +1 -1
  137. package/dist/{c-Dm60JY-W.cjs.map → c-DGOxo0dj.cjs.map} +1 -1
  138. package/dist/cards-B9g6Lf1n.cjs +2 -0
  139. package/dist/cards-B9g6Lf1n.cjs.map +1 -0
  140. package/dist/cards-D7oHIHmU.js +1535 -0
  141. package/dist/cards-D7oHIHmU.js.map +1 -0
  142. package/dist/cards.cjs +1 -1
  143. package/dist/cards.js +3 -3
  144. package/dist/components/cards/MCard/MCard.d.ts +1 -1
  145. package/dist/components/cards/MCard/MCard.types.d.ts +2 -5
  146. package/dist/components/cards/MCardActionArea/MCardActionArea.d.ts +2 -0
  147. package/dist/components/cards/MCardActionArea/MCardActionArea.types.d.ts +7 -0
  148. package/dist/components/cards/MCardActionArea/index.d.ts +2 -0
  149. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +2 -0
  150. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.types.d.ts +41 -0
  151. package/dist/components/cards/MCardDaySchedule/index.d.ts +2 -0
  152. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +2 -0
  153. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.types.d.ts +31 -0
  154. package/dist/components/cards/MCardDocumentTree/index.d.ts +2 -0
  155. package/dist/components/cards/MCardFinance/MCardFinance.d.ts +1 -1
  156. package/dist/components/cards/MCardFinance/MCardFinance.types.d.ts +2 -1
  157. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  158. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +23 -5
  159. package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
  160. package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +2 -1
  161. package/dist/components/cards/MCardTile/MCardTile.d.ts +2 -0
  162. package/dist/components/cards/MCardTile/MCardTile.types.d.ts +26 -0
  163. package/dist/components/cards/MCardTile/index.d.ts +2 -0
  164. package/dist/components/cards/MCardWidget/MCardWidget.d.ts +1 -1
  165. package/dist/components/cards/MCardWidget/MCardWidget.types.d.ts +2 -1
  166. package/dist/components/cards/MStatCard/MStatCard.d.ts +3 -0
  167. package/dist/components/cards/MStatCard/MStatCard.types.d.ts +16 -0
  168. package/dist/components/cards/MStatCard/index.d.ts +2 -0
  169. package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.d.ts +1 -1
  170. package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.types.d.ts +1 -3
  171. package/dist/components/cards/index.d.ts +12 -0
  172. package/dist/components/cards/shared/MCardAction.types.d.ts +12 -0
  173. package/dist/components/cards/shared/MCardAction.utils.d.ts +16 -0
  174. package/dist/components/cards/shared/MCardColor.utils.d.ts +3 -0
  175. package/dist/components/cards/shared/index.d.ts +3 -0
  176. package/dist/components/controls/MButton/MButton.types.d.ts +2 -0
  177. package/dist/components/controls/MQuickActions/MQuickActions.d.ts +2 -0
  178. package/dist/components/controls/MQuickActions/MQuickActions.types.d.ts +33 -0
  179. package/dist/components/controls/MQuickActions/index.d.ts +2 -0
  180. package/dist/components/controls/index.d.ts +2 -0
  181. package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +8 -7
  182. package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +75 -6
  183. package/dist/components/data/MCalendarBoard/index.d.ts +2 -2
  184. package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
  185. package/dist/components/data/MDataTable/MDataTable.types.d.ts +23 -0
  186. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  187. package/dist/components/data/MTreeView/MTreeView.types.d.ts +11 -1
  188. package/dist/components/data/index.d.ts +2 -2
  189. package/dist/components/display/MBlur/MBlur.d.ts +2 -0
  190. package/dist/components/display/MBlur/MBlur.types.d.ts +13 -0
  191. package/dist/components/display/MBlur/index.d.ts +2 -0
  192. package/dist/components/display/MDetailList/MDetailList.d.ts +2 -0
  193. package/dist/components/display/MDetailList/MDetailList.types.d.ts +20 -0
  194. package/dist/components/display/MDetailList/index.d.ts +2 -0
  195. package/dist/components/display/index.d.ts +4 -0
  196. package/dist/components/inputs/MInputIBAN/MInputIBAN.types.d.ts +3 -3
  197. package/dist/components/inputs/MInputPhone/MInputPhone.types.d.ts +2 -0
  198. package/dist/components/layout/MAppMenu/MAppMenu.d.ts +2 -0
  199. package/dist/components/layout/MAppMenu/MAppMenu.types.d.ts +63 -0
  200. package/dist/components/layout/MAppMenu/index.d.ts +2 -0
  201. package/dist/components/layout/MGrid/MGrid.d.ts +2 -2
  202. package/dist/components/layout/MGrid/MGrid.types.d.ts +2 -0
  203. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  204. package/dist/components/layout/MInline/MInline.types.d.ts +1 -1
  205. package/dist/components/layout/MSidebar/MSidebar.d.ts +1 -1
  206. package/dist/components/layout/MSidebar/MSidebar.types.d.ts +7 -0
  207. package/dist/components/layout/MStatGrid/MStatGrid.d.ts +2 -0
  208. package/dist/components/layout/MStatGrid/MStatGrid.types.d.ts +9 -0
  209. package/dist/components/layout/MStatGrid/index.d.ts +2 -0
  210. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  211. package/dist/components/layout/MSurface/MSurface.types.d.ts +6 -1
  212. package/dist/components/layout/index.d.ts +6 -0
  213. package/dist/components/media/MGallery/MGallery.types.d.ts +5 -0
  214. package/dist/components/media/MMediaLightbox/MMediaLightbox.d.ts +1 -1
  215. package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +2 -0
  216. package/dist/components/overlays/MCommandPalette/MCommandPalette.types.d.ts +35 -0
  217. package/dist/components/overlays/MCommandPalette/index.d.ts +2 -0
  218. package/dist/components/overlays/MTooltip/MTooltip.types.d.ts +2 -2
  219. package/dist/components/overlays/index.d.ts +2 -0
  220. package/dist/components/typography/MHeading/MHeading.d.ts +3 -3
  221. package/dist/{controls-DCtMOoQe.js → controls-BczTk73I.js} +141 -100
  222. package/dist/controls-BczTk73I.js.map +1 -0
  223. package/dist/controls-BfV0vxeJ.cjs +2 -0
  224. package/dist/controls-BfV0vxeJ.cjs.map +1 -0
  225. package/dist/controls.cjs +1 -1
  226. package/dist/controls.js +6 -6
  227. package/dist/cookie-consent-bootstrap.cjs +1 -1
  228. package/dist/cookie-consent-bootstrap.js +1 -1
  229. package/dist/{core-CB9-PTLK.js → core-BUYr52VU.js} +1 -1
  230. package/dist/{core-CB9-PTLK.js.map → core-BUYr52VU.js.map} +1 -1
  231. package/dist/{core-AKWkE8Bx.cjs → core-DAox0BHy.cjs} +1 -1
  232. package/dist/{core-AKWkE8Bx.cjs.map → core-DAox0BHy.cjs.map} +1 -1
  233. package/dist/{cpp-DyKt1H8n.cjs → cpp-D-FtdQo9.cjs} +1 -1
  234. package/dist/{cpp-DyKt1H8n.cjs.map → cpp-D-FtdQo9.cjs.map} +1 -1
  235. package/dist/{cpp-OOenfB17.js → cpp-Y9cHXDal.js} +1 -1
  236. package/dist/{cpp-OOenfB17.js.map → cpp-Y9cHXDal.js.map} +1 -1
  237. package/dist/creditCards-D_HwRUBz.cjs +2 -0
  238. package/dist/creditCards-D_HwRUBz.cjs.map +1 -0
  239. package/dist/{creditCards-CCysEwry.js → creditCards-D_iWmtG6.js} +14 -8
  240. package/dist/creditCards-D_iWmtG6.js.map +1 -0
  241. package/dist/{css-u5LSEAra.js → css-C__ffGj6.js} +1 -1
  242. package/dist/{css-u5LSEAra.js.map → css-C__ffGj6.js.map} +1 -1
  243. package/dist/{css-DxVbPJLu.cjs → css-DCYZ-Rs6.cjs} +1 -1
  244. package/dist/{css-DxVbPJLu.cjs.map → css-DCYZ-Rs6.cjs.map} +1 -1
  245. package/dist/data-7kG1MC1Z.cjs +2 -0
  246. package/dist/data-7kG1MC1Z.cjs.map +1 -0
  247. package/dist/{data-BiwK5rfx.js → data-z3e8XTSt.js} +1039 -874
  248. package/dist/data-z3e8XTSt.js.map +1 -0
  249. package/dist/data.cjs +1 -1
  250. package/dist/data.js +4 -4
  251. package/dist/display-Cw3-bTsm.cjs +3 -0
  252. package/dist/display-Cw3-bTsm.cjs.map +1 -0
  253. package/dist/{display-Zxj9YHu_.js → display-DyC7084n.js} +68 -41
  254. package/dist/display-DyC7084n.js.map +1 -0
  255. package/dist/display.cjs +1 -1
  256. package/dist/display.js +4 -4
  257. package/dist/dropdowns-6eO0b6eI.cjs +2 -0
  258. package/dist/dropdowns-6eO0b6eI.cjs.map +1 -0
  259. package/dist/{dropdowns-Bw8obCYl.js → dropdowns-zXgrjNXZ.js} +586 -559
  260. package/dist/dropdowns-zXgrjNXZ.js.map +1 -0
  261. package/dist/dropdowns.cjs +1 -1
  262. package/dist/dropdowns.js +1 -1
  263. package/dist/feedback-BvRmoSzV.cjs +2 -0
  264. package/dist/{feedback-Di0SEpRe.cjs.map → feedback-BvRmoSzV.cjs.map} +1 -1
  265. package/dist/{feedback-8H3bmQw5.js → feedback-DfBjzJAw.js} +299 -300
  266. package/dist/{feedback-8H3bmQw5.js.map → feedback-DfBjzJAw.js.map} +1 -1
  267. package/dist/feedback.cjs +1 -1
  268. package/dist/feedback.js +6 -7
  269. package/dist/{form-JHlvtP9r.js → form-BiPQ8SRK.js} +2 -2
  270. package/dist/{form-JHlvtP9r.js.map → form-BiPQ8SRK.js.map} +1 -1
  271. package/dist/{form-BYz99Py5.cjs → form-DlXWN2ul.cjs} +2 -2
  272. package/dist/{form-BYz99Py5.cjs.map → form-DlXWN2ul.cjs.map} +1 -1
  273. package/dist/form.cjs +1 -1
  274. package/dist/form.js +1 -1
  275. package/dist/frameworkTexts-BLJcGUXz.cjs +2 -0
  276. package/dist/frameworkTexts-BLJcGUXz.cjs.map +1 -0
  277. package/dist/{frameworkTexts-CvxcWRXp.js → frameworkTexts-BTFyhWFD.js} +3 -1
  278. package/dist/frameworkTexts-BTFyhWFD.js.map +1 -0
  279. package/dist/i18n/frameworkTexts.d.ts +2 -0
  280. package/dist/i18n.cjs +1 -1
  281. package/dist/icons-CfpYxnfg.js.map +1 -1
  282. package/dist/{icons-DWMgDKgt.cjs → icons-qCoE70hn.cjs} +2 -2
  283. package/dist/{icons-DWMgDKgt.cjs.map → icons-qCoE70hn.cjs.map} +1 -1
  284. package/dist/icons.cjs +1 -1
  285. package/dist/illustrations.cjs +1 -1
  286. package/dist/index.cjs +2 -1
  287. package/dist/index.cjs.map +1 -0
  288. package/dist/index.d.ts +4 -0
  289. package/dist/index.js +88 -53
  290. package/dist/index.js.map +1 -0
  291. package/dist/inputs-C1I1SLZ8.cjs +2 -0
  292. package/dist/inputs-C1I1SLZ8.cjs.map +1 -0
  293. package/dist/{inputs-Bcwd_UTr.js → inputs-Dy1WurNK.js} +556 -441
  294. package/dist/inputs-Dy1WurNK.js.map +1 -0
  295. package/dist/inputs.cjs +1 -1
  296. package/dist/inputs.js +5 -5
  297. package/dist/{javascript-CXjsxb-I.js → javascript-ClV78Svx.js} +1 -1
  298. package/dist/{javascript-CXjsxb-I.js.map → javascript-ClV78Svx.js.map} +1 -1
  299. package/dist/{javascript-CzjCTQxn.cjs → javascript-_Sr9cnsG.cjs} +1 -1
  300. package/dist/{javascript-CzjCTQxn.cjs.map → javascript-_Sr9cnsG.cjs.map} +1 -1
  301. package/dist/{json-9Qq5guN0.cjs → json-BFetU4Pi.cjs} +1 -1
  302. package/dist/{json-9Qq5guN0.cjs.map → json-BFetU4Pi.cjs.map} +1 -1
  303. package/dist/{json-CyV5VF8D.js → json-Dz6EkGZR.js} +1 -1
  304. package/dist/{json-CyV5VF8D.js.map → json-Dz6EkGZR.js.map} +1 -1
  305. package/dist/layout-D1-mF4xn.js +772 -0
  306. package/dist/layout-D1-mF4xn.js.map +1 -0
  307. package/dist/layout-Op6GWQ8w.cjs +2 -0
  308. package/dist/layout-Op6GWQ8w.cjs.map +1 -0
  309. package/dist/layout.cjs +1 -1
  310. package/dist/layout.js +8 -6
  311. package/dist/licensing-DmF0ObpG.cjs +2 -0
  312. package/dist/licensing-DmF0ObpG.cjs.map +1 -0
  313. package/dist/{licensing-CwzqhHH9.js → licensing-ZFCUU4Z8.js} +5 -1
  314. package/dist/licensing-ZFCUU4Z8.js.map +1 -0
  315. package/dist/{locale-CZyqh3ON.cjs → locale-Bz2JXxDZ.cjs} +2 -2
  316. package/dist/{locale-CZyqh3ON.cjs.map → locale-Bz2JXxDZ.cjs.map} +1 -1
  317. package/dist/{locale-JX_gX03k.js → locale-CS1-IY_I.js} +1 -1
  318. package/dist/{locale-JX_gX03k.js.map → locale-CS1-IY_I.js.map} +1 -1
  319. package/dist/media-DbToUupt.cjs +2 -0
  320. package/dist/media-DbToUupt.cjs.map +1 -0
  321. package/dist/{media-IM9mfVAn.js → media-DdChr0Cw.js} +7 -7
  322. package/dist/media-DdChr0Cw.js.map +1 -0
  323. package/dist/media.cjs +1 -1
  324. package/dist/media.js +3 -3
  325. package/dist/overlays-B0khU6Wb.js +392 -0
  326. package/dist/overlays-B0khU6Wb.js.map +1 -0
  327. package/dist/overlays-VAh5PqAe.cjs +2 -0
  328. package/dist/overlays-VAh5PqAe.cjs.map +1 -0
  329. package/dist/overlays.cjs +1 -1
  330. package/dist/overlays.js +6 -6
  331. package/dist/{php-deNqvHeU.js → php-5Erp5xxI.js} +1 -1
  332. package/dist/{php-deNqvHeU.js.map → php-5Erp5xxI.js.map} +1 -1
  333. package/dist/{php-Br75m0HU.cjs → php-jOdR0XS8.cjs} +1 -1
  334. package/dist/{php-Br75m0HU.cjs.map → php-jOdR0XS8.cjs.map} +1 -1
  335. package/dist/primitives.cjs +1 -1
  336. package/dist/style-runtime.cjs +1 -1
  337. package/dist/style-runtime.js +1 -1
  338. package/dist/styles.css +1 -1
  339. package/dist/{theme-CgS-bND3.cjs → theme-BaroO-OB.cjs} +2 -2
  340. package/dist/{theme-CgS-bND3.cjs.map → theme-BaroO-OB.cjs.map} +1 -1
  341. package/dist/theme.cjs +1 -1
  342. package/dist/{typescript-CRgqVaw_.cjs → typescript-C65sNL5w.cjs} +1 -1
  343. package/dist/{typescript-CRgqVaw_.cjs.map → typescript-C65sNL5w.cjs.map} +1 -1
  344. package/dist/{typescript-jNfCpQvl.js → typescript-wdQKWfxO.js} +1 -1
  345. package/dist/{typescript-jNfCpQvl.js.map → typescript-wdQKWfxO.js.map} +1 -1
  346. package/dist/{typography-BSBsn0f8.js → typography-CldwDFse.js} +2 -11
  347. package/dist/typography-CldwDFse.js.map +1 -0
  348. package/dist/typography-D7COsP1O.cjs +2 -0
  349. package/dist/typography-D7COsP1O.cjs.map +1 -0
  350. package/dist/typography.cjs +1 -1
  351. package/dist/typography.js +4 -3
  352. package/dist/{useGhostText-tv1LiSPs.cjs → useGhostText-Dg4P606B.cjs} +2 -2
  353. package/dist/{useGhostText-tv1LiSPs.cjs.map → useGhostText-Dg4P606B.cjs.map} +1 -1
  354. package/dist/{useInteractionEffect-D1ZdNbKU.cjs → useInteractionEffect-Bo8285cg.cjs} +2 -2
  355. package/dist/{useInteractionEffect-D1ZdNbKU.cjs.map → useInteractionEffect-Bo8285cg.cjs.map} +1 -1
  356. package/dist/{useKeyboardNav-CkIlAagq.cjs → useKeyboardNav-CyeQtqF8.cjs} +2 -2
  357. package/dist/{useKeyboardNav-CkIlAagq.cjs.map → useKeyboardNav-CyeQtqF8.cjs.map} +1 -1
  358. package/dist/utils/commandPaletteFromAppMenu.d.ts +42 -0
  359. package/dist/utils/creditCards.d.ts +1 -0
  360. package/dist/utils/licensing.d.ts +4 -0
  361. package/dist/utils/validators.d.ts +2 -0
  362. package/dist/utils.cjs +1 -1
  363. package/dist/utils.js +4 -4
  364. package/dist/{validators-H8tNxb8O.js → validators-D5OCyV2h.js} +23 -20
  365. package/dist/validators-D5OCyV2h.js.map +1 -0
  366. package/dist/{validators-BeNTD8mf.cjs → validators-DRhikiAi.cjs} +2 -2
  367. package/dist/validators-DRhikiAi.cjs.map +1 -0
  368. package/dist/{xml-C_ksWBRH.cjs → xml-B2okahIr.cjs} +1 -1
  369. package/dist/{xml-C_ksWBRH.cjs.map → xml-B2okahIr.cjs.map} +1 -1
  370. package/dist/{xml-0Th6YIDv.js → xml-a3b-XevT.js} +1 -1
  371. package/dist/{xml-0Th6YIDv.js.map → xml-a3b-XevT.js.map} +1 -1
  372. package/package.json +1 -1
  373. package/dist/MBadge-B4x-Lx7e.cjs +0 -2
  374. package/dist/MBadge-B4x-Lx7e.cjs.map +0 -1
  375. package/dist/MBadge-_BggwkrM.js +0 -19
  376. package/dist/MBadge-_BggwkrM.js.map +0 -1
  377. package/dist/MButton-DrkVdRDy.cjs +0 -2
  378. package/dist/MButton-DrkVdRDy.cjs.map +0 -1
  379. package/dist/MButton-y9qXhhGt.js.map +0 -1
  380. package/dist/MDataTable-Bx7W-Ari.cjs +0 -2
  381. package/dist/MDataTable-Bx7W-Ari.cjs.map +0 -1
  382. package/dist/MDataTable-ByvNQqNP.js +0 -149
  383. package/dist/MDataTable-ByvNQqNP.js.map +0 -1
  384. package/dist/MDropdownMenu-BmfXSc46.cjs +0 -2
  385. package/dist/MDropdownMenu-BmfXSc46.cjs.map +0 -1
  386. package/dist/MDropdownMenu-D79Cm5aS.js.map +0 -1
  387. package/dist/MImage-BKX-xBm3.js.map +0 -1
  388. package/dist/MImage-YbDKE-1t.cjs +0 -2
  389. package/dist/MImage-YbDKE-1t.cjs.map +0 -1
  390. package/dist/MInline-CHrh3PHH.cjs +0 -2
  391. package/dist/MInline-CHrh3PHH.cjs.map +0 -1
  392. package/dist/MInline-CoMhfX5V.js +0 -39
  393. package/dist/MInline-CoMhfX5V.js.map +0 -1
  394. package/dist/MInputCVC-5NkYSxV8.cjs +0 -2
  395. package/dist/MInputCVC-5NkYSxV8.cjs.map +0 -1
  396. package/dist/MInputCVC-BHpMHTO5.js.map +0 -1
  397. package/dist/MQrCode-ByfmG33y.cjs +0 -2
  398. package/dist/MQrCode-ByfmG33y.cjs.map +0 -1
  399. package/dist/MQrCode-CCtTkkv9.js.map +0 -1
  400. package/dist/MSkeleton-5j1h9s95.cjs +0 -2
  401. package/dist/MSkeleton-5j1h9s95.cjs.map +0 -1
  402. package/dist/MSkeleton-DGhtNmpI.js +0 -98
  403. package/dist/MSkeleton-DGhtNmpI.js.map +0 -1
  404. package/dist/MSparkline-B6qpt5WM.cjs +0 -2
  405. package/dist/MSparkline-B6qpt5WM.cjs.map +0 -1
  406. package/dist/MSparkline-voNWOLNz.js +0 -207
  407. package/dist/MSparkline-voNWOLNz.js.map +0 -1
  408. package/dist/MStack-Bh-R2opf.cjs +0 -2
  409. package/dist/MStack-Bh-R2opf.cjs.map +0 -1
  410. package/dist/MStack-CSaEbepM.js +0 -39
  411. package/dist/MStack-CSaEbepM.js.map +0 -1
  412. package/dist/MSurface-CpiV1-7f.cjs +0 -2
  413. package/dist/MSurface-CpiV1-7f.cjs.map +0 -1
  414. package/dist/MSurface-DJYSftdM.js +0 -39
  415. package/dist/MSurface-DJYSftdM.js.map +0 -1
  416. package/dist/cards-BiYdorB0.cjs +0 -2
  417. package/dist/cards-BiYdorB0.cjs.map +0 -1
  418. package/dist/cards-fn61xD_5.js +0 -1013
  419. package/dist/cards-fn61xD_5.js.map +0 -1
  420. package/dist/controls-C5PtrGZf.cjs +0 -2
  421. package/dist/controls-C5PtrGZf.cjs.map +0 -1
  422. package/dist/controls-DCtMOoQe.js.map +0 -1
  423. package/dist/creditCards-CCysEwry.js.map +0 -1
  424. package/dist/creditCards-ljs044xt.cjs +0 -2
  425. package/dist/creditCards-ljs044xt.cjs.map +0 -1
  426. package/dist/data-BiwK5rfx.js.map +0 -1
  427. package/dist/data-DOuPqg8d.cjs +0 -2
  428. package/dist/data-DOuPqg8d.cjs.map +0 -1
  429. package/dist/display-BafEcBK_.cjs +0 -3
  430. package/dist/display-BafEcBK_.cjs.map +0 -1
  431. package/dist/display-Zxj9YHu_.js.map +0 -1
  432. package/dist/dropdowns-Bw8obCYl.js.map +0 -1
  433. package/dist/dropdowns-DN7j1HhE.cjs +0 -2
  434. package/dist/dropdowns-DN7j1HhE.cjs.map +0 -1
  435. package/dist/feedback-Di0SEpRe.cjs +0 -2
  436. package/dist/frameworkTexts-CvxcWRXp.js.map +0 -1
  437. package/dist/frameworkTexts-abkS5XZK.cjs +0 -2
  438. package/dist/frameworkTexts-abkS5XZK.cjs.map +0 -1
  439. package/dist/inputs-Bcwd_UTr.js.map +0 -1
  440. package/dist/inputs-FP545Yri.cjs +0 -2
  441. package/dist/inputs-FP545Yri.cjs.map +0 -1
  442. package/dist/layout-BpEnTocp.js +0 -936
  443. package/dist/layout-BpEnTocp.js.map +0 -1
  444. package/dist/layout-rtlHrjDb.cjs +0 -2
  445. package/dist/layout-rtlHrjDb.cjs.map +0 -1
  446. package/dist/licensing-CwzqhHH9.js.map +0 -1
  447. package/dist/licensing-ezfo7ZTh.cjs +0 -2
  448. package/dist/licensing-ezfo7ZTh.cjs.map +0 -1
  449. package/dist/media-CiHsgOmu.cjs +0 -2
  450. package/dist/media-CiHsgOmu.cjs.map +0 -1
  451. package/dist/media-IM9mfVAn.js.map +0 -1
  452. package/dist/overlays-CGlqD3rl.js +0 -186
  453. package/dist/overlays-CGlqD3rl.js.map +0 -1
  454. package/dist/overlays-DrSGzbbA.cjs +0 -2
  455. package/dist/overlays-DrSGzbbA.cjs.map +0 -1
  456. package/dist/typography-BSBsn0f8.js.map +0 -1
  457. package/dist/typography-Zo4Usx9I.cjs +0 -2
  458. package/dist/typography-Zo4Usx9I.cjs.map +0 -1
  459. package/dist/validators-BeNTD8mf.cjs.map +0 -1
  460. package/dist/validators-H8tNxb8O.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-DbToUupt.cjs","names":[],"sources":["../src/components/media/MGallery/MGallery.tsx","../src/components/media/MCarousel/MCarousel.tsx","../src/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.tsx","../src/components/media/MShowcaseCarousel/MShowcaseCarousel.tsx","../src/components/media/MMasonry/MMasonry.tsx","../src/components/media/MMasonryItem/MMasonryItem.tsx","../src/components/media/MAvatarStack/MAvatarStack.tsx"],"sourcesContent":["import type {MGalleryProps} from './MGallery.types'\nimport {useState} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MMediaLightbox} from '../MMediaLightbox/MMediaLightbox'\nimport {usesHoverDim, usesHoverZoom} from '../mediaInteraction'\nimport './MGallery.css'\n\n// Render a responsive image grid gallery.\nexport function MGallery({\n items,\n columns = 3,\n rounded = true,\n preview = false,\n hoverEffect = 'zoom',\n clickEffect = 'ripple',\n className,\n ...rest\n}: MGalleryProps) {\n const [previewOpen, setPreviewOpen] = useState(false)\n const [previewIndex, setPreviewIndex] = useState(0)\n\n return (\n <>\n <div className={cn('gallery', `columns-${columns}`, className)} {...rest}>\n {items.map((item, i) => (\n <GalleryFigure\n key={i}\n item={item}\n rounded={rounded}\n preview={preview}\n hoverEffect={hoverEffect}\n clickEffect={clickEffect}\n onOpen={() => {\n setPreviewIndex(i)\n setPreviewOpen(true)\n }}\n />\n ))}\n </div>\n\n <MMediaLightbox\n open={previewOpen}\n items={items}\n activeIndex={previewIndex}\n onActiveIndexChange={setPreviewIndex}\n onClose={() => setPreviewOpen(false)}\n />\n </>\n )\n}\n\nfunction GalleryFigure({\n item,\n rounded,\n preview,\n hoverEffect,\n clickEffect,\n onOpen,\n}: {\n item: {src: string; thumbnail?: string; alt?: string; caption?: string}\n rounded: boolean\n preview: boolean\n hoverEffect: 'none' | 'zoom' | 'dim' | 'zoom-dim'\n clickEffect: 'none' | 'ripple'\n onOpen: () => void\n}) {\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n })\n return (\n <figure className={cn('gallery-item', rounded && 'rounded')}>\n {preview ? (\n <button\n type=\"button\"\n className={cn(\n 'gallery-trigger',\n rounded && 'rounded',\n 'gallery-button',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName\n )}\n onClick={onOpen}\n onPointerDown={handlePointerDown}\n aria-label={`Preview ${item.alt || 'image'}`}\n >\n <img\n className=\"gallery-image\"\n src={item.thumbnail || item.src}\n alt={item.alt || ''}\n loading=\"lazy\"\n />\n {item.caption && <span className=\"gallery-caption\">{item.caption}</span>}\n {effectLayer}\n </button>\n ) : (\n <div\n className={cn(\n 'gallery-trigger',\n rounded && 'rounded',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName\n )}\n onPointerDown={handlePointerDown}\n >\n <img\n className=\"gallery-image\"\n src={item.thumbnail || item.src}\n alt={item.alt || ''}\n loading=\"lazy\"\n />\n {item.caption && <span className=\"gallery-caption\">{item.caption}</span>}\n {effectLayer}\n </div>\n )}\n </figure>\n )\n}\n","import {useState, useEffect, useCallback, useRef, Children} from 'react'\nimport type * as React from 'react'\nimport type {MCarouselProps} from './MCarousel.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport './MCarousel.css'\n\n// Render a swipeable content slider with arrows, dots and transition modes.\nexport function MCarousel({\n autoPlay = false,\n interval = 5000,\n showDots = true,\n showArrows = true,\n loop = true,\n draggable = true,\n transition = 'slide',\n className,\n children,\n ...rest\n}: MCarouselProps) {\n const slides = Children.toArray(children)\n const count = slides.length\n const [active, setActive] = useState(0)\n const [dragOffset, setDragOffset] = useState(0)\n const [isDragging, setIsDragging] = useState(false)\n const dragStartX = useRef(0)\n const trackRef = useRef<HTMLDivElement>(null)\n\n const goTo = useCallback(\n (index: number) => {\n if (loop) {\n setActive((index + count) % count)\n } else {\n setActive(Math.max(0, Math.min(index, count - 1)))\n }\n },\n [count, loop]\n )\n\n const prev = useCallback(() => goTo(active - 1), [active, goTo])\n const next = useCallback(() => goTo(active + 1), [active, goTo])\n\n useEffect(() => {\n if (!autoPlay || count <= 1 || isDragging) return\n const timer = setInterval(next, interval)\n return () => clearInterval(timer)\n }, [autoPlay, interval, next, count, isDragging])\n\n const handleDragStart = (clientX: number) => {\n if (!draggable) return\n setIsDragging(true)\n dragStartX.current = clientX\n setDragOffset(0)\n }\n\n const handleDragMove = (clientX: number) => {\n if (!isDragging) return\n const diff = clientX - dragStartX.current\n setDragOffset(diff)\n }\n\n const handleDragEnd = () => {\n if (!isDragging) return\n setIsDragging(false)\n const threshold = 50\n if (dragOffset < -threshold) {\n next()\n } else if (dragOffset > threshold) {\n prev()\n }\n setDragOffset(0)\n }\n\n const onPointerDown = (e: React.PointerEvent) => {\n if (!draggable) return\n e.currentTarget.setPointerCapture(e.pointerId)\n handleDragStart(e.clientX)\n }\n\n const onPointerMove = (e: React.PointerEvent) => {\n handleDragMove(e.clientX)\n }\n\n const onPointerUp = () => {\n handleDragEnd()\n }\n\n if (count === 0) return null\n\n const isFade = transition === 'fade'\n const trackStyle = !isFade\n ? {transform: `translateX(calc(-${active * 100}% + ${isDragging ? dragOffset : 0}px))`}\n : undefined\n\n return (\n <div className={cn('carousel', isFade && 'fade', className)} {...rest}>\n <div\n className=\"carousel-viewport\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n style={{\n touchAction: draggable ? 'pan-y' : undefined,\n cursor: draggable ? (isDragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div ref={trackRef} className={cn('carousel-track', isDragging && 'dragging')} style={trackStyle}>\n {slides.map((slide, i) => (\n <div\n key={i}\n className={cn(\n 'carousel-slide',\n isFade && i === active && 'active',\n isFade && i !== active && 'hidden'\n )}\n >\n {slide}\n </div>\n ))}\n </div>\n </div>\n\n {showArrows && count > 1 && (\n <>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={prev}\n aria-label=\"Previous slide\"\n className=\"carousel-arrow carousel-arrow-prev\"\n >\n <MChevronLeftIcon />\n </MButton>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={next}\n aria-label=\"Next slide\"\n className=\"carousel-arrow carousel-arrow-next\"\n >\n <MChevronRightIcon />\n </MButton>\n </>\n )}\n\n {showDots && count > 1 && (\n <div className=\"carousel-dots\">\n {slides.map((_, i) => (\n <button\n key={i}\n className={cn('carousel-dot', i === active && 'active')}\n onClick={() => goTo(i)}\n aria-label={`Slide ${i + 1}`}\n type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {MImage} from '../MImage'\nimport {cn} from '../../../utils/cn'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport type {MShowcaseCarouselItemProps} from './MShowcaseCarouselItem.types'\nimport './MShowcaseCarouselItem.css'\n\nexport function MShowcaseCarouselItem({\n src,\n alt = '',\n media,\n mediaHeight,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'ripple',\n ratio = '16:9',\n fit = 'cover',\n imgProps,\n children,\n}: MShowcaseCarouselItemProps) {\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const cardStyle = mediaHeight\n ? ({\n '--media-height': typeof mediaHeight === 'number' ? `${mediaHeight}px` : mediaHeight,\n } as CSSProperties)\n : undefined\n const hasMedia = Boolean(media || src)\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('showcase card', interactive && 'interactive')}\n style={cardStyle}\n >\n {hasMedia ? (\n <div\n className={cn(\n 'showcase media',\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n >\n {media ? (\n <div className=\"showcase media-content\">{media}</div>\n ) : (\n <MImage\n {...imgProps}\n src={src}\n alt={alt}\n ratio={ratio}\n fit={fit}\n rounded\n shadow\n clickEffect={shouldRipple ? 'ripple' : 'none'}\n />\n )}\n {overlay ? <div className=\"showcase overlay\">{overlay}</div> : null}\n </div>\n ) : null}\n {content ? <MCardBody className=\"showcase body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"showcase footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import {Children, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport type {CSSProperties, PointerEvent as ReactPointerEvent, ReactNode} from 'react'\nimport {MButton} from '../../controls'\nimport {MShowcaseCarouselItem} from '../MShowcaseCarouselItem'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport type {MShowcaseCarouselProps, MShowcaseCarouselSlide} from './MShowcaseCarousel.types'\nimport './MShowcaseCarousel.css'\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null) {\n if (!(target instanceof Element)) {\n return false\n }\n\n return !!target.closest(\n 'button, a, input, select, textarea, label, summary, [role=\"button\"], [role=\"link\"], [data-carousel-ignore-drag=\"true\"]'\n )\n}\n\nfunction getSlides<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n if (items) {\n return items\n .map((item, index) => {\n if (!isShowcaseItem(item)) {\n return null\n }\n\n return <ShowcaseMediaSlide key={index} item={item} />\n })\n .filter(Boolean)\n }\n\n return Children.toArray(children)\n}\n\nfunction isShowcaseItem(value: unknown): value is MShowcaseCarouselSlide {\n const slide = value as {src?: unknown}\n return !!value && typeof value === 'object' && 'src' in value && typeof slide.src === 'string'\n}\n\nfunction ShowcaseMediaSlide({item}: {item: MShowcaseCarouselSlide}) {\n return <MShowcaseCarouselItem src={item.src} alt={item.alt || ''} overlay={item.overlay} />\n}\n\n// Show a centered, mouse-driven carousel with partial side previews.\nexport function MShowcaseCarousel<T = unknown>({\n items,\n renderItem,\n initialIndex,\n showButtons = true,\n loop = true,\n draggable = true,\n wheel = true,\n itemMinWidth = 220,\n itemMaxWidth = 520,\n itemWidthRatio = 0.56,\n className,\n children,\n style,\n ...rest\n}: MShowcaseCarouselProps<T>) {\n const slides = useMemo(() => getSlides(items, renderItem, children), [children, items, renderItem])\n const count = slides.length\n const [active, setActive] = useState(0)\n const [drag, setDrag] = useState(0)\n const [dragging, setDragging] = useState(false)\n const [stageWidth, setStageWidth] = useState(0)\n const stageRef = useRef<HTMLDivElement>(null)\n const startX = useRef(0)\n const wheelLock = useRef(false)\n\n const widthRatio =\n stageWidth < 640\n ? Math.max(itemWidthRatio, 0.78)\n : stageWidth < 960\n ? Math.max(itemWidthRatio, 0.66)\n : itemWidthRatio\n const itemWidth = clamp(stageWidth * widthRatio || itemMinWidth, itemMinWidth, itemMaxWidth)\n const itemGap = clamp(stageWidth * 0.022 || 16, 10, 24)\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const update = () => setStageWidth(node.clientWidth)\n update()\n\n const observer = new ResizeObserver(update)\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [])\n\n useEffect(() => {\n if (!count) return\n\n const defaultIndex = initialIndex ?? Math.floor((count - 1) / 2)\n setActive(clamp(defaultIndex, 0, count - 1))\n }, [count, initialIndex])\n\n const goTo = useCallback(\n (nextIndex: number) => {\n if (count < 1) return\n\n if (loop) {\n setActive((nextIndex + count) % count)\n return\n }\n\n setActive(clamp(nextIndex, 0, count - 1))\n },\n [count, loop]\n )\n\n const prev = useCallback(() => goTo(active - 1), [active, goTo])\n const next = useCallback(() => goTo(active + 1), [active, goTo])\n\n const onPointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!draggable || count <= 1) return\n if (isInteractiveTarget(event.target)) return\n event.currentTarget.setPointerCapture(event.pointerId)\n setDragging(true)\n startX.current = event.clientX\n setDrag(0)\n }\n\n const onPointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!dragging) return\n setDrag(event.clientX - startX.current)\n }\n\n const stopDrag = () => {\n if (!dragging) return\n\n const limit = Math.max(56, itemWidth * 0.12)\n\n if (drag <= -limit) {\n next()\n } else if (drag >= limit) {\n prev()\n }\n\n setDragging(false)\n setDrag(0)\n }\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const handleWheel = (event: WheelEvent) => {\n if (!wheel || count <= 1 || wheelLock.current) return\n\n const axis = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (Math.abs(axis) < 28) return\n\n event.preventDefault()\n event.stopPropagation()\n\n wheelLock.current = true\n window.setTimeout(() => {\n wheelLock.current = false\n }, 260)\n\n if (axis > 0) {\n next()\n } else {\n prev()\n }\n }\n\n node.addEventListener('wheel', handleWheel, {passive: false})\n return () => node.removeEventListener('wheel', handleWheel)\n }, [count, next, prev, wheel])\n\n if (!count) return null\n\n const offset = stageWidth / 2 - active * (itemWidth + itemGap) - itemWidth / 2 + drag\n\n return (\n <div\n className={cn('showcase', className)}\n style={{...style, '--item-width': `${itemWidth}px`} as CSSProperties}\n {...rest}\n >\n <div\n ref={stageRef}\n className=\"showcase-stage\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={stopDrag}\n onPointerCancel={stopDrag}\n onPointerLeave={stopDrag}\n style={{\n cursor: draggable && count > 1 ? (dragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div\n className={cn('showcase-track', dragging && 'dragging')}\n style={{\n transform: `translateX(${offset}px)`,\n gap: `${itemGap}px`,\n }}\n >\n {slides.map((slide, index) => {\n const dist = Math.abs(index - active)\n\n return (\n <div\n key={index}\n className={cn(\n 'showcase-item',\n index === active && 'active',\n dist === 1 && 'near',\n dist >= 2 && 'far'\n )}\n style={{zIndex: Math.max(1, count - dist)}}\n >\n {slide}\n </div>\n )\n })}\n </div>\n </div>\n\n {showButtons && count > 1 && (\n <div className=\"showcase-actions\">\n <MButton\n type=\"button\"\n variant=\"secondary\"\n className=\"showcase-btn\"\n startIcon={<MChevronLeftIcon />}\n onClick={prev}\n >\n Previous\n </MButton>\n <MButton type=\"button\" className=\"showcase-btn\" endIcon={<MChevronRightIcon />} onClick={next}>\n Next\n </MButton>\n </div>\n )}\n </div>\n )\n}\n","import {Children} from 'react'\nimport type {ReactNode} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MMasonryProps} from './MMasonry.types'\nimport './MMasonry.css'\n\nfunction getItems<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n return Children.toArray(children)\n}\n\n// Render a responsive masonry wall for images, cards and uneven content.\nexport function MMasonry<T = unknown>({\n items,\n renderItem,\n columns = 3,\n className,\n children,\n style,\n ...rest\n}: MMasonryProps<T>) {\n const content = getItems(items, renderItem, children)\n\n if (!content.length) return null\n\n return (\n <div className={cn('masonry', className)} style={{...style, columnCount: columns}} {...rest}>\n {content.map((item, index) => (\n <div key={index} className=\"masonry item\">\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport './MMasonryItem.css'\nimport type {MMasonryItemProps} from './MMasonryItem.types'\n\nexport function MMasonryItem({\n src,\n alt = '',\n height,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'none',\n imgProps,\n children,\n}: MMasonryItemProps) {\n const imgStyle = height ? {...imgProps?.style, height} : imgProps?.style\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: shouldRipple ? 'ripple' : 'none',\n })\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('masonry card', interactive && 'interactive')}\n >\n <div\n className={cn(\n 'masonry media',\n effectClassName,\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n onPointerDown={(event) => {\n const target = event.target as HTMLElement\n\n if (target.closest('.masonry.overlay')) {\n return\n }\n\n handlePointerDown(event)\n }}\n >\n <img {...imgProps} src={src} alt={alt} className=\"masonry img\" style={imgStyle} />\n {overlay ? <div className=\"masonry overlay\">{overlay}</div> : null}\n {effectLayer}\n </div>\n {content ? <MCardBody className=\"masonry body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"masonry footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import type {MAvatarStackProps} from './MAvatarStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MAvatar} from '../MAvatar'\nimport './MAvatarStack.css'\n\nexport function MAvatarStack({\n items,\n max = 5,\n size = 'sm',\n color = 'primary',\n hidden,\n overlap = 10,\n className,\n style,\n ...rest\n}: MAvatarStackProps) {\n if (!items || items.length === 0) return null\n\n const visible = items.slice(0, max)\n const overflowCount = items.length - max\n const avatarPx = typeof size === 'number' ? size : ({xs: 20, sm: 28, md: 40, lg: 56, xl: 72}[size] ?? 28)\n\n return (\n <div\n className={cn('avatar-stack', className)}\n style={{'--avatar-stack-overlap': `-${overlap}px`, ...style} as React.CSSProperties}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {visible.map((item, i) => (\n <MAvatar\n key={i}\n src={item.avatar}\n name={item.name}\n size={size}\n color={color}\n className=\"avatar-stack-item\"\n style={{zIndex: i + 1}}\n />\n ))}\n {overflowCount > 0 && (\n <span\n className=\"avatar-stack-overflow\"\n style={{\n width: avatarPx,\n height: avatarPx,\n fontSize: avatarPx * 0.38,\n zIndex: visible.length + 1,\n }}\n >\n +{overflowCount}\n </span>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
@@ -2,10 +2,10 @@ import { r as e } from "./theme-D_f-cmSA.js";
2
2
  import { Fi as t, Pi as n } from "./icons-CfpYxnfg.js";
3
3
  import { t as r } from "./cn-YER3QsV1.js";
4
4
  import { t as i } from "./useInteractionEffect-DtpbVd77.js";
5
- import { t as a } from "./MButton-y9qXhhGt.js";
6
- import { i as o, n as s, r as c } from "./MSkeleton-DGhtNmpI.js";
7
- import { a as l, i as u, n as d, o as f, r as p, s as m, t as h } from "./MImage-BKX-xBm3.js";
8
- import { t as g } from "./MAvatar-BHASnoyu.js";
5
+ import { t as a } from "./MButton-DZLLrtQb.js";
6
+ import { i as o, n as s, r as c } from "./MSkeleton-BvXgnYs_.js";
7
+ import { a as l, i as u, n as d, o as f, r as p, s as m, t as h } from "./MImage-Btx_7g2Z.js";
8
+ import { t as g } from "./MAvatar-BcayQCnp.js";
9
9
  import { Children as _, useCallback as v, useEffect as y, useMemo as b, useRef as x, useState as S } from "react";
10
10
  import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
11
11
  //#region src/components/media/MGallery/MGallery.tsx
@@ -45,7 +45,7 @@ function D({ item: e, rounded: t, preview: n, hoverEffect: a, clickEffect: o, on
45
45
  children: [
46
46
  /* @__PURE__ */ w("img", {
47
47
  className: "gallery-image",
48
- src: e.src,
48
+ src: e.thumbnail || e.src,
49
49
  alt: e.alt || "",
50
50
  loading: "lazy"
51
51
  }),
@@ -61,7 +61,7 @@ function D({ item: e, rounded: t, preview: n, hoverEffect: a, clickEffect: o, on
61
61
  children: [
62
62
  /* @__PURE__ */ w("img", {
63
63
  className: "gallery-image",
64
- src: e.src,
64
+ src: e.thumbnail || e.src,
65
65
  alt: e.alt || "",
66
66
  loading: "lazy"
67
67
  }),
@@ -428,4 +428,4 @@ function z({ items: t, max: n = 5, size: i = "sm", color: a = "primary", hidden:
428
428
  //#endregion
429
429
  export { k as a, F as i, R as n, O as o, L as r, E as s, z as t };
430
430
 
431
- //# sourceMappingURL=media-IM9mfVAn.js.map
431
+ //# sourceMappingURL=media-DdChr0Cw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-DdChr0Cw.js","names":[],"sources":["../src/components/media/MGallery/MGallery.tsx","../src/components/media/MCarousel/MCarousel.tsx","../src/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.tsx","../src/components/media/MShowcaseCarousel/MShowcaseCarousel.tsx","../src/components/media/MMasonry/MMasonry.tsx","../src/components/media/MMasonryItem/MMasonryItem.tsx","../src/components/media/MAvatarStack/MAvatarStack.tsx"],"sourcesContent":["import type {MGalleryProps} from './MGallery.types'\nimport {useState} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MMediaLightbox} from '../MMediaLightbox/MMediaLightbox'\nimport {usesHoverDim, usesHoverZoom} from '../mediaInteraction'\nimport './MGallery.css'\n\n// Render a responsive image grid gallery.\nexport function MGallery({\n items,\n columns = 3,\n rounded = true,\n preview = false,\n hoverEffect = 'zoom',\n clickEffect = 'ripple',\n className,\n ...rest\n}: MGalleryProps) {\n const [previewOpen, setPreviewOpen] = useState(false)\n const [previewIndex, setPreviewIndex] = useState(0)\n\n return (\n <>\n <div className={cn('gallery', `columns-${columns}`, className)} {...rest}>\n {items.map((item, i) => (\n <GalleryFigure\n key={i}\n item={item}\n rounded={rounded}\n preview={preview}\n hoverEffect={hoverEffect}\n clickEffect={clickEffect}\n onOpen={() => {\n setPreviewIndex(i)\n setPreviewOpen(true)\n }}\n />\n ))}\n </div>\n\n <MMediaLightbox\n open={previewOpen}\n items={items}\n activeIndex={previewIndex}\n onActiveIndexChange={setPreviewIndex}\n onClose={() => setPreviewOpen(false)}\n />\n </>\n )\n}\n\nfunction GalleryFigure({\n item,\n rounded,\n preview,\n hoverEffect,\n clickEffect,\n onOpen,\n}: {\n item: {src: string; thumbnail?: string; alt?: string; caption?: string}\n rounded: boolean\n preview: boolean\n hoverEffect: 'none' | 'zoom' | 'dim' | 'zoom-dim'\n clickEffect: 'none' | 'ripple'\n onOpen: () => void\n}) {\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n })\n return (\n <figure className={cn('gallery-item', rounded && 'rounded')}>\n {preview ? (\n <button\n type=\"button\"\n className={cn(\n 'gallery-trigger',\n rounded && 'rounded',\n 'gallery-button',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName\n )}\n onClick={onOpen}\n onPointerDown={handlePointerDown}\n aria-label={`Preview ${item.alt || 'image'}`}\n >\n <img\n className=\"gallery-image\"\n src={item.thumbnail || item.src}\n alt={item.alt || ''}\n loading=\"lazy\"\n />\n {item.caption && <span className=\"gallery-caption\">{item.caption}</span>}\n {effectLayer}\n </button>\n ) : (\n <div\n className={cn(\n 'gallery-trigger',\n rounded && 'rounded',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName\n )}\n onPointerDown={handlePointerDown}\n >\n <img\n className=\"gallery-image\"\n src={item.thumbnail || item.src}\n alt={item.alt || ''}\n loading=\"lazy\"\n />\n {item.caption && <span className=\"gallery-caption\">{item.caption}</span>}\n {effectLayer}\n </div>\n )}\n </figure>\n )\n}\n","import {useState, useEffect, useCallback, useRef, Children} from 'react'\nimport type * as React from 'react'\nimport type {MCarouselProps} from './MCarousel.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport './MCarousel.css'\n\n// Render a swipeable content slider with arrows, dots and transition modes.\nexport function MCarousel({\n autoPlay = false,\n interval = 5000,\n showDots = true,\n showArrows = true,\n loop = true,\n draggable = true,\n transition = 'slide',\n className,\n children,\n ...rest\n}: MCarouselProps) {\n const slides = Children.toArray(children)\n const count = slides.length\n const [active, setActive] = useState(0)\n const [dragOffset, setDragOffset] = useState(0)\n const [isDragging, setIsDragging] = useState(false)\n const dragStartX = useRef(0)\n const trackRef = useRef<HTMLDivElement>(null)\n\n const goTo = useCallback(\n (index: number) => {\n if (loop) {\n setActive((index + count) % count)\n } else {\n setActive(Math.max(0, Math.min(index, count - 1)))\n }\n },\n [count, loop]\n )\n\n const prev = useCallback(() => goTo(active - 1), [active, goTo])\n const next = useCallback(() => goTo(active + 1), [active, goTo])\n\n useEffect(() => {\n if (!autoPlay || count <= 1 || isDragging) return\n const timer = setInterval(next, interval)\n return () => clearInterval(timer)\n }, [autoPlay, interval, next, count, isDragging])\n\n const handleDragStart = (clientX: number) => {\n if (!draggable) return\n setIsDragging(true)\n dragStartX.current = clientX\n setDragOffset(0)\n }\n\n const handleDragMove = (clientX: number) => {\n if (!isDragging) return\n const diff = clientX - dragStartX.current\n setDragOffset(diff)\n }\n\n const handleDragEnd = () => {\n if (!isDragging) return\n setIsDragging(false)\n const threshold = 50\n if (dragOffset < -threshold) {\n next()\n } else if (dragOffset > threshold) {\n prev()\n }\n setDragOffset(0)\n }\n\n const onPointerDown = (e: React.PointerEvent) => {\n if (!draggable) return\n e.currentTarget.setPointerCapture(e.pointerId)\n handleDragStart(e.clientX)\n }\n\n const onPointerMove = (e: React.PointerEvent) => {\n handleDragMove(e.clientX)\n }\n\n const onPointerUp = () => {\n handleDragEnd()\n }\n\n if (count === 0) return null\n\n const isFade = transition === 'fade'\n const trackStyle = !isFade\n ? {transform: `translateX(calc(-${active * 100}% + ${isDragging ? dragOffset : 0}px))`}\n : undefined\n\n return (\n <div className={cn('carousel', isFade && 'fade', className)} {...rest}>\n <div\n className=\"carousel-viewport\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n style={{\n touchAction: draggable ? 'pan-y' : undefined,\n cursor: draggable ? (isDragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div ref={trackRef} className={cn('carousel-track', isDragging && 'dragging')} style={trackStyle}>\n {slides.map((slide, i) => (\n <div\n key={i}\n className={cn(\n 'carousel-slide',\n isFade && i === active && 'active',\n isFade && i !== active && 'hidden'\n )}\n >\n {slide}\n </div>\n ))}\n </div>\n </div>\n\n {showArrows && count > 1 && (\n <>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={prev}\n aria-label=\"Previous slide\"\n className=\"carousel-arrow carousel-arrow-prev\"\n >\n <MChevronLeftIcon />\n </MButton>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={next}\n aria-label=\"Next slide\"\n className=\"carousel-arrow carousel-arrow-next\"\n >\n <MChevronRightIcon />\n </MButton>\n </>\n )}\n\n {showDots && count > 1 && (\n <div className=\"carousel-dots\">\n {slides.map((_, i) => (\n <button\n key={i}\n className={cn('carousel-dot', i === active && 'active')}\n onClick={() => goTo(i)}\n aria-label={`Slide ${i + 1}`}\n type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {MImage} from '../MImage'\nimport {cn} from '../../../utils/cn'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport type {MShowcaseCarouselItemProps} from './MShowcaseCarouselItem.types'\nimport './MShowcaseCarouselItem.css'\n\nexport function MShowcaseCarouselItem({\n src,\n alt = '',\n media,\n mediaHeight,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'ripple',\n ratio = '16:9',\n fit = 'cover',\n imgProps,\n children,\n}: MShowcaseCarouselItemProps) {\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const cardStyle = mediaHeight\n ? ({\n '--media-height': typeof mediaHeight === 'number' ? `${mediaHeight}px` : mediaHeight,\n } as CSSProperties)\n : undefined\n const hasMedia = Boolean(media || src)\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('showcase card', interactive && 'interactive')}\n style={cardStyle}\n >\n {hasMedia ? (\n <div\n className={cn(\n 'showcase media',\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n >\n {media ? (\n <div className=\"showcase media-content\">{media}</div>\n ) : (\n <MImage\n {...imgProps}\n src={src}\n alt={alt}\n ratio={ratio}\n fit={fit}\n rounded\n shadow\n clickEffect={shouldRipple ? 'ripple' : 'none'}\n />\n )}\n {overlay ? <div className=\"showcase overlay\">{overlay}</div> : null}\n </div>\n ) : null}\n {content ? <MCardBody className=\"showcase body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"showcase footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import {Children, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport type {CSSProperties, PointerEvent as ReactPointerEvent, ReactNode} from 'react'\nimport {MButton} from '../../controls'\nimport {MShowcaseCarouselItem} from '../MShowcaseCarouselItem'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport type {MShowcaseCarouselProps, MShowcaseCarouselSlide} from './MShowcaseCarousel.types'\nimport './MShowcaseCarousel.css'\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null) {\n if (!(target instanceof Element)) {\n return false\n }\n\n return !!target.closest(\n 'button, a, input, select, textarea, label, summary, [role=\"button\"], [role=\"link\"], [data-carousel-ignore-drag=\"true\"]'\n )\n}\n\nfunction getSlides<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n if (items) {\n return items\n .map((item, index) => {\n if (!isShowcaseItem(item)) {\n return null\n }\n\n return <ShowcaseMediaSlide key={index} item={item} />\n })\n .filter(Boolean)\n }\n\n return Children.toArray(children)\n}\n\nfunction isShowcaseItem(value: unknown): value is MShowcaseCarouselSlide {\n const slide = value as {src?: unknown}\n return !!value && typeof value === 'object' && 'src' in value && typeof slide.src === 'string'\n}\n\nfunction ShowcaseMediaSlide({item}: {item: MShowcaseCarouselSlide}) {\n return <MShowcaseCarouselItem src={item.src} alt={item.alt || ''} overlay={item.overlay} />\n}\n\n// Show a centered, mouse-driven carousel with partial side previews.\nexport function MShowcaseCarousel<T = unknown>({\n items,\n renderItem,\n initialIndex,\n showButtons = true,\n loop = true,\n draggable = true,\n wheel = true,\n itemMinWidth = 220,\n itemMaxWidth = 520,\n itemWidthRatio = 0.56,\n className,\n children,\n style,\n ...rest\n}: MShowcaseCarouselProps<T>) {\n const slides = useMemo(() => getSlides(items, renderItem, children), [children, items, renderItem])\n const count = slides.length\n const [active, setActive] = useState(0)\n const [drag, setDrag] = useState(0)\n const [dragging, setDragging] = useState(false)\n const [stageWidth, setStageWidth] = useState(0)\n const stageRef = useRef<HTMLDivElement>(null)\n const startX = useRef(0)\n const wheelLock = useRef(false)\n\n const widthRatio =\n stageWidth < 640\n ? Math.max(itemWidthRatio, 0.78)\n : stageWidth < 960\n ? Math.max(itemWidthRatio, 0.66)\n : itemWidthRatio\n const itemWidth = clamp(stageWidth * widthRatio || itemMinWidth, itemMinWidth, itemMaxWidth)\n const itemGap = clamp(stageWidth * 0.022 || 16, 10, 24)\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const update = () => setStageWidth(node.clientWidth)\n update()\n\n const observer = new ResizeObserver(update)\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [])\n\n useEffect(() => {\n if (!count) return\n\n const defaultIndex = initialIndex ?? Math.floor((count - 1) / 2)\n setActive(clamp(defaultIndex, 0, count - 1))\n }, [count, initialIndex])\n\n const goTo = useCallback(\n (nextIndex: number) => {\n if (count < 1) return\n\n if (loop) {\n setActive((nextIndex + count) % count)\n return\n }\n\n setActive(clamp(nextIndex, 0, count - 1))\n },\n [count, loop]\n )\n\n const prev = useCallback(() => goTo(active - 1), [active, goTo])\n const next = useCallback(() => goTo(active + 1), [active, goTo])\n\n const onPointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!draggable || count <= 1) return\n if (isInteractiveTarget(event.target)) return\n event.currentTarget.setPointerCapture(event.pointerId)\n setDragging(true)\n startX.current = event.clientX\n setDrag(0)\n }\n\n const onPointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!dragging) return\n setDrag(event.clientX - startX.current)\n }\n\n const stopDrag = () => {\n if (!dragging) return\n\n const limit = Math.max(56, itemWidth * 0.12)\n\n if (drag <= -limit) {\n next()\n } else if (drag >= limit) {\n prev()\n }\n\n setDragging(false)\n setDrag(0)\n }\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const handleWheel = (event: WheelEvent) => {\n if (!wheel || count <= 1 || wheelLock.current) return\n\n const axis = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (Math.abs(axis) < 28) return\n\n event.preventDefault()\n event.stopPropagation()\n\n wheelLock.current = true\n window.setTimeout(() => {\n wheelLock.current = false\n }, 260)\n\n if (axis > 0) {\n next()\n } else {\n prev()\n }\n }\n\n node.addEventListener('wheel', handleWheel, {passive: false})\n return () => node.removeEventListener('wheel', handleWheel)\n }, [count, next, prev, wheel])\n\n if (!count) return null\n\n const offset = stageWidth / 2 - active * (itemWidth + itemGap) - itemWidth / 2 + drag\n\n return (\n <div\n className={cn('showcase', className)}\n style={{...style, '--item-width': `${itemWidth}px`} as CSSProperties}\n {...rest}\n >\n <div\n ref={stageRef}\n className=\"showcase-stage\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={stopDrag}\n onPointerCancel={stopDrag}\n onPointerLeave={stopDrag}\n style={{\n cursor: draggable && count > 1 ? (dragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div\n className={cn('showcase-track', dragging && 'dragging')}\n style={{\n transform: `translateX(${offset}px)`,\n gap: `${itemGap}px`,\n }}\n >\n {slides.map((slide, index) => {\n const dist = Math.abs(index - active)\n\n return (\n <div\n key={index}\n className={cn(\n 'showcase-item',\n index === active && 'active',\n dist === 1 && 'near',\n dist >= 2 && 'far'\n )}\n style={{zIndex: Math.max(1, count - dist)}}\n >\n {slide}\n </div>\n )\n })}\n </div>\n </div>\n\n {showButtons && count > 1 && (\n <div className=\"showcase-actions\">\n <MButton\n type=\"button\"\n variant=\"secondary\"\n className=\"showcase-btn\"\n startIcon={<MChevronLeftIcon />}\n onClick={prev}\n >\n Previous\n </MButton>\n <MButton type=\"button\" className=\"showcase-btn\" endIcon={<MChevronRightIcon />} onClick={next}>\n Next\n </MButton>\n </div>\n )}\n </div>\n )\n}\n","import {Children} from 'react'\nimport type {ReactNode} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MMasonryProps} from './MMasonry.types'\nimport './MMasonry.css'\n\nfunction getItems<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n return Children.toArray(children)\n}\n\n// Render a responsive masonry wall for images, cards and uneven content.\nexport function MMasonry<T = unknown>({\n items,\n renderItem,\n columns = 3,\n className,\n children,\n style,\n ...rest\n}: MMasonryProps<T>) {\n const content = getItems(items, renderItem, children)\n\n if (!content.length) return null\n\n return (\n <div className={cn('masonry', className)} style={{...style, columnCount: columns}} {...rest}>\n {content.map((item, index) => (\n <div key={index} className=\"masonry item\">\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport './MMasonryItem.css'\nimport type {MMasonryItemProps} from './MMasonryItem.types'\n\nexport function MMasonryItem({\n src,\n alt = '',\n height,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'none',\n imgProps,\n children,\n}: MMasonryItemProps) {\n const imgStyle = height ? {...imgProps?.style, height} : imgProps?.style\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: shouldRipple ? 'ripple' : 'none',\n })\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('masonry card', interactive && 'interactive')}\n >\n <div\n className={cn(\n 'masonry media',\n effectClassName,\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n onPointerDown={(event) => {\n const target = event.target as HTMLElement\n\n if (target.closest('.masonry.overlay')) {\n return\n }\n\n handlePointerDown(event)\n }}\n >\n <img {...imgProps} src={src} alt={alt} className=\"masonry img\" style={imgStyle} />\n {overlay ? <div className=\"masonry overlay\">{overlay}</div> : null}\n {effectLayer}\n </div>\n {content ? <MCardBody className=\"masonry body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"masonry footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import type {MAvatarStackProps} from './MAvatarStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MAvatar} from '../MAvatar'\nimport './MAvatarStack.css'\n\nexport function MAvatarStack({\n items,\n max = 5,\n size = 'sm',\n color = 'primary',\n hidden,\n overlap = 10,\n className,\n style,\n ...rest\n}: MAvatarStackProps) {\n if (!items || items.length === 0) return null\n\n const visible = items.slice(0, max)\n const overflowCount = items.length - max\n const avatarPx = typeof size === 'number' ? size : ({xs: 20, sm: 28, md: 40, lg: 56, xl: 72}[size] ?? 28)\n\n return (\n <div\n className={cn('avatar-stack', className)}\n style={{'--avatar-stack-overlap': `-${overlap}px`, ...style} as React.CSSProperties}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {visible.map((item, i) => (\n <MAvatar\n key={i}\n src={item.avatar}\n name={item.name}\n size={size}\n color={color}\n className=\"avatar-stack-item\"\n style={{zIndex: i + 1}}\n />\n ))}\n {overflowCount > 0 && (\n <span\n className=\"avatar-stack-overflow\"\n style={{\n width: avatarPx,\n height: avatarPx,\n fontSize: avatarPx * 0.38,\n zIndex: visible.length + 1,\n }}\n >\n +{overflowCount}\n </span>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
package/dist/media.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(`./MImage-YbDKE-1t.cjs`),t=require(`./media-CiHsgOmu.cjs`),n=require(`./MAvatar-BVJh6kgW.cjs`);exports.MAvatar=n.t,exports.MAvatarStack=t.t,exports.MCarousel=t.o,exports.MGallery=t.s,exports.MImage=e.t,exports.MMasonry=t.r,exports.MMasonryItem=t.n,exports.MShowcaseCarousel=t.i,exports.MShowcaseCarouselItem=t.a;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MImage-BZ6SrSao.cjs`),t=require(`./media-DbToUupt.cjs`),n=require(`./MAvatar-BgevCYi3.cjs`);exports.MAvatar=n.t,exports.MAvatarStack=t.t,exports.MCarousel=t.o,exports.MGallery=t.s,exports.MImage=e.t,exports.MMasonry=t.r,exports.MMasonryItem=t.n,exports.MShowcaseCarousel=t.i,exports.MShowcaseCarouselItem=t.a;
package/dist/media.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { t as e } from "./MImage-BKX-xBm3.js";
4
- import { a as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./media-IM9mfVAn.js";
5
- import { t as c } from "./MAvatar-BHASnoyu.js";
3
+ import { t as e } from "./MImage-Btx_7g2Z.js";
4
+ import { a as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./media-DdChr0Cw.js";
5
+ import { t as c } from "./MAvatar-BcayQCnp.js";
6
6
  export { c as MAvatar, s as MAvatarStack, i as MCarousel, o as MGallery, e as MImage, a as MMasonry, r as MMasonryItem, n as MShowcaseCarousel, t as MShowcaseCarouselItem };
@@ -0,0 +1,392 @@
1
+ import { Li as e, Ri as t, zt as n } from "./icons-CfpYxnfg.js";
2
+ import { t as r } from "./cn-YER3QsV1.js";
3
+ import { t as i } from "./useKeyboardNav-iEXOdEMB.js";
4
+ import { t as a } from "./MPortal-Ba2Sxset.js";
5
+ import { t as o } from "./MPopover-Cqz5TsHg.js";
6
+ import { n as s, t as c } from "./MStack-DFIc3S4_.js";
7
+ import { t as l } from "./MText-DcB1GAt-.js";
8
+ import { t as u } from "./MHeading-MPh8Qm9q.js";
9
+ import { t as d } from "./MKbd-v6-tJ9sP.js";
10
+ import { t as f } from "./MButton-DZLLrtQb.js";
11
+ import { a as p, i as m, n as h, r as g, s as _ } from "./MSkeleton-BvXgnYs_.js";
12
+ import { t as v } from "./MInputSearch-CmzHPnmC.js";
13
+ import { t as y } from "./MTooltip-jSf4VBtB.js";
14
+ import { t as b } from "./MSimpleGrid-Bojj4xKH.js";
15
+ import { useCallback as x, useEffect as S, useId as ee, useMemo as C, useRef as w, useState as T } from "react";
16
+ import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
17
+ //#region src/components/overlays/MSheet/MSheet.tsx
18
+ var k = 540, A = 72, te = {
19
+ sm: "32vh",
20
+ md: "52vh",
21
+ lg: "72vh",
22
+ full: "92vh"
23
+ };
24
+ function j({ open: t, onClose: n, title: i, description: o, footer: s, size: c = "md", closeOnBackdrop: l = !0, closeOnEscape: u = !0, className: d, children: _, style: v, ...y }) {
25
+ let b = ee(), [x, C] = T(!1), [E, j] = T(!1), [M, N] = T(0), P = w(null), F = w(0);
26
+ S(() => {
27
+ t && (C(!0), j(!1), N(0), F.current = 0);
28
+ }, [t]), S(() => {
29
+ if (!t && x) {
30
+ j(!0);
31
+ let e = window.setTimeout(() => {
32
+ C(!1), j(!1);
33
+ }, k);
34
+ return () => window.clearTimeout(e);
35
+ }
36
+ }, [t, x]), S(() => {
37
+ if (!x) return;
38
+ let e = document.body.style.overflow;
39
+ return document.body.style.overflow = "hidden", () => {
40
+ document.body.style.overflow = e;
41
+ };
42
+ }, [x]), S(() => {
43
+ if (!t || !u) return;
44
+ let e = (e) => {
45
+ e.key === "Escape" && n();
46
+ };
47
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
48
+ }, [
49
+ u,
50
+ n,
51
+ t
52
+ ]);
53
+ function I(e) {
54
+ l && e.target === e.currentTarget && n();
55
+ }
56
+ function L(e) {
57
+ e.preventDefault(), e.currentTarget.setPointerCapture(e.pointerId), P.current = {
58
+ pointerId: e.pointerId,
59
+ startY: e.clientY
60
+ }, N(0), F.current = 0;
61
+ }
62
+ function R(e) {
63
+ let t = P.current;
64
+ if (!t || t.pointerId !== e.pointerId) return;
65
+ let n = Math.max(e.clientY - t.startY, 0);
66
+ F.current = n, N(n);
67
+ }
68
+ function z(e) {
69
+ let t = P.current;
70
+ if (!(!t || t.pointerId !== e)) {
71
+ if (P.current = null, F.current > A) {
72
+ N(0), F.current = 0, n();
73
+ return;
74
+ }
75
+ N(0), F.current = 0;
76
+ }
77
+ }
78
+ if (!x) return null;
79
+ let B = te[c], V = M > 0 ? `translateY(${M}px)` : void 0;
80
+ return /* @__PURE__ */ D(a, { children: /* @__PURE__ */ D("div", {
81
+ className: r("mineral-backdrop", "sheet-backdrop", E && "closing"),
82
+ onMouseDown: I,
83
+ children: /* @__PURE__ */ D("div", {
84
+ className: "sheet-shell",
85
+ style: { transform: V },
86
+ children: /* @__PURE__ */ O(h, {
87
+ className: r("sheet", `size-${c}`, d),
88
+ role: "dialog",
89
+ "aria-modal": "true",
90
+ "aria-labelledby": i ? b : void 0,
91
+ style: {
92
+ ...v,
93
+ height: c === "full" ? B : void 0,
94
+ maxHeight: B
95
+ },
96
+ ...y,
97
+ children: [
98
+ /* @__PURE__ */ D("button", {
99
+ type: "button",
100
+ className: "sheet-grabber",
101
+ onPointerDown: L,
102
+ onPointerMove: R,
103
+ onPointerUp: (e) => z(e.pointerId),
104
+ onPointerCancel: (e) => z(e.pointerId),
105
+ "aria-label": "Drag down to close",
106
+ children: /* @__PURE__ */ D("span", { className: "sheet-handle" })
107
+ }),
108
+ (i || o) && /* @__PURE__ */ O(p, {
109
+ className: "sheet-header",
110
+ children: [/* @__PURE__ */ O("div", {
111
+ className: "sheet-copy",
112
+ children: [i && /* @__PURE__ */ D("div", {
113
+ id: b,
114
+ className: "sheet-title",
115
+ children: i
116
+ }), o && /* @__PURE__ */ D("div", {
117
+ className: "sheet-description",
118
+ children: o
119
+ })]
120
+ }), /* @__PURE__ */ D(f, {
121
+ variant: "link",
122
+ color: "neutral",
123
+ iconOnly: !0,
124
+ size: "sm",
125
+ onClick: n,
126
+ "aria-label": "Close",
127
+ className: "sheet-close",
128
+ children: /* @__PURE__ */ D(e, {})
129
+ })]
130
+ }),
131
+ /* @__PURE__ */ D(g, {
132
+ className: "sheet-body",
133
+ children: _
134
+ }),
135
+ s && /* @__PURE__ */ D(m, {
136
+ className: "sheet-footer",
137
+ children: s
138
+ })
139
+ ]
140
+ })
141
+ })
142
+ }) });
143
+ }
144
+ //#endregion
145
+ //#region src/components/overlays/MCommandPalette/MCommandPalette.tsx
146
+ function M(e) {
147
+ return typeof e == "string" || typeof e == "number" ? e.toString() : "";
148
+ }
149
+ function N(e, t) {
150
+ let n = t.toLowerCase().replace(/\s+/g, "").split("+"), r = n[n.length - 1];
151
+ if (!r) return !1;
152
+ let i = n.includes("ctrl"), a = n.includes("meta") || n.includes("cmd"), o = n.includes("shift"), s = n.includes("alt") || n.includes("option");
153
+ return e.key.toLowerCase() === r && !!i === e.ctrlKey && !!a === e.metaKey && !!o === e.shiftKey && !!s === e.altKey;
154
+ }
155
+ function P(e, t) {
156
+ if (!t.trim()) return e;
157
+ let n = t.trim().toLowerCase();
158
+ return e.filter((e) => [
159
+ M(e.title),
160
+ M(e.description),
161
+ M(e.group),
162
+ M(e.actionLabel),
163
+ ...e.keywords ?? []
164
+ ].some((e) => e.toLowerCase().includes(n)));
165
+ }
166
+ function F(e) {
167
+ let t = /* @__PURE__ */ new Map();
168
+ return e.forEach((e) => {
169
+ let n = M(e.group) || "General", r = t.get(n) ?? {
170
+ label: e.group ?? "General",
171
+ items: []
172
+ };
173
+ r.items.push(e), t.set(n, r);
174
+ }), Array.from(t.values());
175
+ }
176
+ function I({ items: e, featuredItems: a = [], open: o, defaultOpen: m = !1, onOpenChange: x, onSelect: ee, title: k = "Command palette", description: A, trigger: te, shortcut: I = "ctrl+k", placeholder: L = "Search modules, records and actions...", emptyLabel: R = "No matching results.", footer: z, size: B = "lg", closeOnSelect: V = !0 }) {
177
+ let [ne, re] = T(m), [H, U] = T(""), [ie, W] = T(null), G = o !== void 0, K = G ? o : ne, q = w(null);
178
+ function J(e) {
179
+ G || re(e), x?.(e);
180
+ }
181
+ let Y = C(() => P(e, H), [e, H]), X = C(() => F(Y), [Y]), Z = C(() => X.flatMap((e) => e.items), [X]), ae = C(() => a.length ? a : e.slice(0, 6), [a, e]);
182
+ function Q(e) {
183
+ e.onSelect?.(), ee?.(e), !e.onSelect && e.href && window.location.assign(e.href), V && (J(!1), U(""), W(null));
184
+ }
185
+ let { activeIndex: $, setActiveIndex: oe, resetIndex: se, onKeyDown: ce } = i({
186
+ itemCount: Z.length,
187
+ isOpen: K,
188
+ onClose: () => J(!1),
189
+ onSelect: (e) => {
190
+ let t = Z[e];
191
+ t && Q(t);
192
+ }
193
+ });
194
+ S(() => {
195
+ let e = (e) => {
196
+ N(e, I) && (e.preventDefault(), J(!0));
197
+ };
198
+ return window.addEventListener("keydown", e), () => {
199
+ window.removeEventListener("keydown", e);
200
+ };
201
+ }, [I]), S(() => {
202
+ if (!K) {
203
+ se(), W(null);
204
+ return;
205
+ }
206
+ queueMicrotask(() => q.current?.focus());
207
+ }, [K, se]), S(() => {
208
+ if ($ < 0 || $ >= Z.length) {
209
+ W(null);
210
+ return;
211
+ }
212
+ W(Z[$]?.id ?? null);
213
+ }, [$, Z]);
214
+ function le(e) {
215
+ ce(e);
216
+ }
217
+ return /* @__PURE__ */ O(E, { children: [te ?? /* @__PURE__ */ D(f, {
218
+ variant: "filled",
219
+ size: "sm",
220
+ color: "primary",
221
+ iconOnly: !0,
222
+ startIcon: /* @__PURE__ */ D(t, {}),
223
+ "aria-label": typeof k == "string" ? k : "Open command palette",
224
+ onClick: () => J(!0)
225
+ }), /* @__PURE__ */ D(j, {
226
+ open: K,
227
+ onClose: () => J(!1),
228
+ title: k,
229
+ description: A,
230
+ size: B,
231
+ footer: z,
232
+ children: /* @__PURE__ */ O("div", {
233
+ className: "command-palette-body",
234
+ children: [/* @__PURE__ */ D("div", {
235
+ className: "command-palette-search",
236
+ children: /* @__PURE__ */ D(v, {
237
+ ref: q,
238
+ value: H,
239
+ onChange: (e) => {
240
+ U(e.target.value), oe(-1);
241
+ },
242
+ onKeyDown: le,
243
+ placeholder: L,
244
+ clearable: !0,
245
+ fullWidth: !0
246
+ })
247
+ }), /* @__PURE__ */ O("div", {
248
+ className: "command-palette-grid",
249
+ children: [/* @__PURE__ */ O(h, {
250
+ stretch: !1,
251
+ children: [/* @__PURE__ */ O(p, { children: [/* @__PURE__ */ D(u, {
252
+ level: 4,
253
+ children: "Featured"
254
+ }), /* @__PURE__ */ D(l, {
255
+ size: "sm",
256
+ tone: "muted",
257
+ children: "Quick launch for the most frequent dashboard actions."
258
+ })] }), /* @__PURE__ */ D(g, { children: /* @__PURE__ */ D(b, {
259
+ columns: 4,
260
+ children: ae.map((e) => {
261
+ let t = e.actionLabel ?? e.title, r = typeof t == "string" ? t : M(t);
262
+ return /* @__PURE__ */ D(y, {
263
+ content: t,
264
+ children: /* @__PURE__ */ D(f, {
265
+ variant: "ghost",
266
+ color: "primary",
267
+ component: e.component,
268
+ to: e.to,
269
+ href: e.href,
270
+ target: e.target,
271
+ rel: e.rel,
272
+ startIcon: e.icon ?? /* @__PURE__ */ D(n, {}),
273
+ iconOnly: !0,
274
+ "aria-label": r || void 0,
275
+ onClick: () => Q(e)
276
+ })
277
+ }, e.id);
278
+ })
279
+ }) })]
280
+ }), /* @__PURE__ */ O(h, {
281
+ stretch: !1,
282
+ children: [/* @__PURE__ */ O(p, { children: [/* @__PURE__ */ D(u, {
283
+ level: 4,
284
+ children: "Results"
285
+ }), /* @__PURE__ */ O(s, {
286
+ align: "center",
287
+ padding: "xs",
288
+ children: [/* @__PURE__ */ O(l, {
289
+ size: "sm",
290
+ tone: "muted",
291
+ children: [Z.length, " ready"]
292
+ }), /* @__PURE__ */ D(d, { children: I.toUpperCase() })]
293
+ })] }), /* @__PURE__ */ D(g, { children: X.length ? /* @__PURE__ */ D(c, {
294
+ padding: "xs",
295
+ className: "command-palette-results",
296
+ children: X.map((e) => /* @__PURE__ */ O(c, {
297
+ padding: "xs",
298
+ children: [/* @__PURE__ */ D(l, {
299
+ size: "sm",
300
+ tone: "muted",
301
+ children: e.label
302
+ }), e.items.map((e) => /* @__PURE__ */ O("button", {
303
+ type: "button",
304
+ className: r("command-palette-item", ie === e.id && "active"),
305
+ onMouseEnter: () => W(e.id),
306
+ onClick: () => Q(e),
307
+ children: [
308
+ /* @__PURE__ */ D("span", {
309
+ className: "command-palette-item-icon",
310
+ children: e.icon ?? /* @__PURE__ */ D(n, {})
311
+ }),
312
+ /* @__PURE__ */ O("span", {
313
+ className: "command-palette-item-copy",
314
+ children: [/* @__PURE__ */ D("span", {
315
+ className: "command-palette-item-title",
316
+ children: e.title
317
+ }), e.description && /* @__PURE__ */ D("span", {
318
+ className: "command-palette-item-description",
319
+ children: e.description
320
+ })]
321
+ }),
322
+ e.badge && /* @__PURE__ */ D("span", {
323
+ className: "command-palette-item-badge",
324
+ children: /* @__PURE__ */ D(_, {
325
+ color: "primary",
326
+ size: "sm",
327
+ children: e.badge
328
+ })
329
+ })
330
+ ]
331
+ }, e.id))]
332
+ }, M(e.label) || "general"))
333
+ }) : /* @__PURE__ */ D(l, {
334
+ tone: "muted",
335
+ children: R
336
+ }) })]
337
+ })]
338
+ })]
339
+ })
340
+ })] });
341
+ }
342
+ //#endregion
343
+ //#region src/components/overlays/MPopconfirm/MPopconfirm.tsx
344
+ function L({ title: e, description: t, onConfirm: n, onCancel: i, confirmText: a = "Yes", cancelText: s = "No", color: c = "warning", icon: l, placement: u = "top-start", open: d, onOpenChange: p, anchorRef: m, className: h }) {
345
+ let g = x(() => {
346
+ p(!1), i?.();
347
+ }, [p, i]), _ = x(() => {
348
+ p(!1), n();
349
+ }, [p, n]);
350
+ return /* @__PURE__ */ O(o, {
351
+ open: d,
352
+ anchorRef: m,
353
+ onClose: g,
354
+ placement: u,
355
+ className: r("popconfirm", `color-${c}`, h),
356
+ children: [/* @__PURE__ */ O("div", {
357
+ className: "body",
358
+ children: [l && /* @__PURE__ */ D("div", {
359
+ className: "icon",
360
+ children: l
361
+ }), /* @__PURE__ */ O("div", {
362
+ className: "content",
363
+ children: [/* @__PURE__ */ D("div", {
364
+ className: "title",
365
+ children: e
366
+ }), t && /* @__PURE__ */ D("div", {
367
+ className: "description",
368
+ children: t
369
+ })]
370
+ })]
371
+ }), /* @__PURE__ */ O("div", {
372
+ className: "actions",
373
+ children: [/* @__PURE__ */ D(f, {
374
+ variant: "ghost",
375
+ size: "sm",
376
+ color: "neutral",
377
+ onClick: g,
378
+ children: s
379
+ }), /* @__PURE__ */ D(f, {
380
+ variant: "ghost",
381
+ size: "sm",
382
+ color: c,
383
+ onClick: _,
384
+ children: a
385
+ })]
386
+ })]
387
+ });
388
+ }
389
+ //#endregion
390
+ export { I as n, j as r, L as t };
391
+
392
+ //# sourceMappingURL=overlays-B0khU6Wb.js.map