@banzamel/mineralui 1.8.0 → 1.9.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 (220) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-BcayQCnp.js → MAvatar-D_dVAPaR.js} +3 -3
  3. package/dist/{MAvatar-BcayQCnp.js.map → MAvatar-D_dVAPaR.js.map} +1 -1
  4. package/dist/{MAvatar-BgevCYi3.cjs → MAvatar-DzZPRbot.cjs} +2 -2
  5. package/dist/{MAvatar-BgevCYi3.cjs.map → MAvatar-DzZPRbot.cjs.map} +1 -1
  6. package/dist/MAvatarStack-CrhkO_SO.js +330 -0
  7. package/dist/MAvatarStack-CrhkO_SO.js.map +1 -0
  8. package/dist/MAvatarStack-DN79aJo1.cjs +2 -0
  9. package/dist/MAvatarStack-DN79aJo1.cjs.map +1 -0
  10. package/dist/{MButton-DZLLrtQb.js → MButton-C1pnL4_j.js} +2 -2
  11. package/dist/{MButton-DZLLrtQb.js.map → MButton-C1pnL4_j.js.map} +1 -1
  12. package/dist/{MButton-8UCydOik.cjs → MButton-DFRHWHzh.cjs} +2 -2
  13. package/dist/{MButton-8UCydOik.cjs.map → MButton-DFRHWHzh.cjs.map} +1 -1
  14. package/dist/{MDataTable-95_Mb6jE.cjs → MDataTable-7nJuwzJR.cjs} +2 -2
  15. package/dist/{MDataTable-95_Mb6jE.cjs.map → MDataTable-7nJuwzJR.cjs.map} +1 -1
  16. package/dist/{MDataTable-DxDS5auV.js → MDataTable-CQt_pINO.js} +4 -4
  17. package/dist/{MDataTable-DxDS5auV.js.map → MDataTable-CQt_pINO.js.map} +1 -1
  18. package/dist/{MDrawer-CXNHYwPO.js → MDrawer-B83--EVv.js} +2 -2
  19. package/dist/{MDrawer-CXNHYwPO.js.map → MDrawer-B83--EVv.js.map} +1 -1
  20. package/dist/{MDrawer-DzqtHVeA.cjs → MDrawer-D6cy9K7J.cjs} +2 -2
  21. package/dist/{MDrawer-DzqtHVeA.cjs.map → MDrawer-D6cy9K7J.cjs.map} +1 -1
  22. package/dist/MGrid-B-fP4GME.cjs +2 -0
  23. package/dist/MGrid-B-fP4GME.cjs.map +1 -0
  24. package/dist/{MGrid-DR0fHItF.js → MGrid-DVluuula.js} +56 -56
  25. package/dist/MGrid-DVluuula.js.map +1 -0
  26. package/dist/{MHeading-MPh8Qm9q.js → MHeading-B7KgSP4T.js} +3 -3
  27. package/dist/{MHeading-MPh8Qm9q.js.map → MHeading-B7KgSP4T.js.map} +1 -1
  28. package/dist/{MHeading-CKe5lcM_.cjs → MHeading-f3hwkW3r.cjs} +2 -2
  29. package/dist/{MHeading-CKe5lcM_.cjs.map → MHeading-f3hwkW3r.cjs.map} +1 -1
  30. package/dist/{MInput-D_zaoWwX.cjs → MInput-BLGduKL_.cjs} +2 -2
  31. package/dist/{MInput-D_zaoWwX.cjs.map → MInput-BLGduKL_.cjs.map} +1 -1
  32. package/dist/{MInput-7i0Dy1t4.js → MInput-IsUELgN2.js} +2 -2
  33. package/dist/{MInput-7i0Dy1t4.js.map → MInput-IsUELgN2.js.map} +1 -1
  34. package/dist/{MInputExpDate-DhO5zN7L.js → MInputExpDate-CeCmw6fj.js} +2 -2
  35. package/dist/{MInputExpDate-DhO5zN7L.js.map → MInputExpDate-CeCmw6fj.js.map} +1 -1
  36. package/dist/{MInputExpDate-DWWwjMYK.cjs → MInputExpDate-DZ8JtSjs.cjs} +2 -2
  37. package/dist/{MInputExpDate-DWWwjMYK.cjs.map → MInputExpDate-DZ8JtSjs.cjs.map} +1 -1
  38. package/dist/{MInputSearch-CmzHPnmC.js → MInputSearch-BBxUF5pw.js} +2 -2
  39. package/dist/{MInputSearch-CmzHPnmC.js.map → MInputSearch-BBxUF5pw.js.map} +1 -1
  40. package/dist/{MInputSearch-DpHSVpmL.cjs → MInputSearch-_7jfFGr1.cjs} +2 -2
  41. package/dist/{MInputSearch-DpHSVpmL.cjs.map → MInputSearch-_7jfFGr1.cjs.map} +1 -1
  42. package/dist/{MLink-rFKN1mcM.js → MLink-Bd8fLH1N.js} +2 -2
  43. package/dist/{MLink-rFKN1mcM.js.map → MLink-Bd8fLH1N.js.map} +1 -1
  44. package/dist/{MLink-B3ImjkJV.cjs → MLink-CRK8YvR4.cjs} +2 -2
  45. package/dist/{MLink-B3ImjkJV.cjs.map → MLink-CRK8YvR4.cjs.map} +1 -1
  46. package/dist/{MModal-DGmeQlWo.js → MModal-DiTjBO8B.js} +2 -2
  47. package/dist/{MModal-DGmeQlWo.js.map → MModal-DiTjBO8B.js.map} +1 -1
  48. package/dist/{MModal-CP0e31pv.cjs → MModal-eJDG6riB.cjs} +2 -2
  49. package/dist/{MModal-CP0e31pv.cjs.map → MModal-eJDG6riB.cjs.map} +1 -1
  50. package/dist/{MPagination-CS62B9kZ.cjs → MPagination-D1hYqLDb.cjs} +2 -2
  51. package/dist/{MPagination-CS62B9kZ.cjs.map → MPagination-D1hYqLDb.cjs.map} +1 -1
  52. package/dist/{MPagination-Dr110are.js → MPagination-DvToi2cs.js} +2 -2
  53. package/dist/{MPagination-Dr110are.js.map → MPagination-DvToi2cs.js.map} +1 -1
  54. package/dist/{MQrCode-B0-Np-N3.cjs → MQrCode-HO2YIC7e.cjs} +2 -2
  55. package/dist/{MQrCode-B0-Np-N3.cjs.map → MQrCode-HO2YIC7e.cjs.map} +1 -1
  56. package/dist/{MQrCode-6ANDcExA.js → MQrCode-Kb997gaE.js} +5 -5
  57. package/dist/{MQrCode-6ANDcExA.js.map → MQrCode-Kb997gaE.js.map} +1 -1
  58. package/dist/{MSkeleton-BvXgnYs_.js → MSkeleton-CVofhuDp.js} +3 -3
  59. package/dist/{MSkeleton-BvXgnYs_.js.map → MSkeleton-CVofhuDp.js.map} +1 -1
  60. package/dist/{MSkeleton-BdwhPx-k.cjs → MSkeleton-CuYA8eN3.cjs} +2 -2
  61. package/dist/{MSkeleton-BdwhPx-k.cjs.map → MSkeleton-CuYA8eN3.cjs.map} +1 -1
  62. package/dist/{MStack-DFIc3S4_.js → MStack-C4Eocfb5.js} +2 -2
  63. package/dist/{MStack-DFIc3S4_.js.map → MStack-C4Eocfb5.js.map} +1 -1
  64. package/dist/{MStack-ByFYGSsy.cjs → MStack-w8XcuIJK.cjs} +2 -2
  65. package/dist/{MStack-ByFYGSsy.cjs.map → MStack-w8XcuIJK.cjs.map} +1 -1
  66. package/dist/{MSubText-BFdfBlpS.js → MSubText-C-N15d4Z.js} +3 -3
  67. package/dist/{MSubText-BFdfBlpS.js.map → MSubText-C-N15d4Z.js.map} +1 -1
  68. package/dist/{MSubText-1ilKSz8e.cjs → MSubText-CIMKPb8o.cjs} +2 -2
  69. package/dist/{MSubText-1ilKSz8e.cjs.map → MSubText-CIMKPb8o.cjs.map} +1 -1
  70. package/dist/{MSurface-CpAuwpHv.cjs → MSurface-KvAS2hkl.cjs} +2 -2
  71. package/dist/{MSurface-CpAuwpHv.cjs.map → MSurface-KvAS2hkl.cjs.map} +1 -1
  72. package/dist/{MSurface-CmVIQC1A.js → MSurface-odrvQXkb.js} +2 -2
  73. package/dist/{MSurface-CmVIQC1A.js.map → MSurface-odrvQXkb.js.map} +1 -1
  74. package/dist/{MTag-DwQ-j1sV.cjs → MTag-DZqV4S13.cjs} +2 -2
  75. package/dist/{MTag-DwQ-j1sV.cjs.map → MTag-DZqV4S13.cjs.map} +1 -1
  76. package/dist/{MTag-C4SUJly2.js → MTag-DgB6ukFJ.js} +3 -3
  77. package/dist/{MTag-C4SUJly2.js.map → MTag-DgB6ukFJ.js.map} +1 -1
  78. package/dist/{MText-D0fI_D_Q.cjs → MText-BHbI7KJO.cjs} +2 -2
  79. package/dist/{MText-D0fI_D_Q.cjs.map → MText-BHbI7KJO.cjs.map} +1 -1
  80. package/dist/{MText-DcB1GAt-.js → MText-CL-LPcXi.js} +2 -2
  81. package/dist/{MText-DcB1GAt-.js.map → MText-CL-LPcXi.js.map} +1 -1
  82. package/dist/{cards-D7oHIHmU.js → cards-C50fpYud.js} +20 -16
  83. package/dist/cards-C50fpYud.js.map +1 -0
  84. package/dist/cards-Ci1FoV9C.cjs +2 -0
  85. package/dist/cards-Ci1FoV9C.cjs.map +1 -0
  86. package/dist/cards.cjs +1 -1
  87. package/dist/cards.js +3 -3
  88. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +40 -1
  89. package/dist/components/cards/MCardGrid/index.d.ts +1 -1
  90. package/dist/components/cards/MStatCard/MStatCard.d.ts +0 -1
  91. package/dist/components/cards/MStatCard/MStatCard.types.d.ts +0 -2
  92. package/dist/components/cards/MStatCard/index.d.ts +2 -2
  93. package/dist/components/cards/index.d.ts +3 -3
  94. package/dist/components/data/MTimelineCalendar/DayStrip.d.ts +11 -0
  95. package/dist/components/data/MTimelineCalendar/EventPopover.d.ts +18 -0
  96. package/dist/components/data/MTimelineCalendar/MTimelineCalendar.d.ts +2 -0
  97. package/dist/components/data/MTimelineCalendar/MTimelineCalendar.helpers.d.ts +55 -0
  98. package/dist/components/data/MTimelineCalendar/MTimelineCalendar.types.d.ts +89 -0
  99. package/dist/components/data/MTimelineCalendar/index.d.ts +2 -0
  100. package/dist/components/data/index.d.ts +4 -0
  101. package/dist/components/layout/MGrid/MGrid.d.ts +1 -1
  102. package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
  103. package/dist/components/layout/MNavbar/MNavbar.types.d.ts +19 -0
  104. package/dist/components/layout/index.d.ts +0 -4
  105. package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +1 -1
  106. package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +14 -1
  107. package/dist/components/typography/MHeading/MHeading.d.ts +1 -562
  108. package/dist/{controls-BfV0vxeJ.cjs → controls-CYQxPd4U.cjs} +2 -2
  109. package/dist/{controls-BfV0vxeJ.cjs.map → controls-CYQxPd4U.cjs.map} +1 -1
  110. package/dist/{controls-BczTk73I.js → controls-CcbEqqWo.js} +3 -3
  111. package/dist/{controls-BczTk73I.js.map → controls-CcbEqqWo.js.map} +1 -1
  112. package/dist/controls.cjs +1 -1
  113. package/dist/controls.js +2 -2
  114. package/dist/data-DtShJEic.cjs +2 -0
  115. package/dist/data-DtShJEic.cjs.map +1 -0
  116. package/dist/data-RXuvb9VI.js +3454 -0
  117. package/dist/data-RXuvb9VI.js.map +1 -0
  118. package/dist/data.cjs +1 -1
  119. package/dist/data.js +3 -3
  120. package/dist/{display-Cw3-bTsm.cjs → display-96-TEGmZ.cjs} +2 -2
  121. package/dist/{display-Cw3-bTsm.cjs.map → display-96-TEGmZ.cjs.map} +1 -1
  122. package/dist/{display-DyC7084n.js → display-C7YRf4Ze.js} +5 -5
  123. package/dist/{display-DyC7084n.js.map → display-C7YRf4Ze.js.map} +1 -1
  124. package/dist/display.cjs +1 -1
  125. package/dist/display.js +2 -2
  126. package/dist/{dropdowns-6eO0b6eI.cjs → dropdowns-Ce3Pb2JM.cjs} +2 -2
  127. package/dist/{dropdowns-6eO0b6eI.cjs.map → dropdowns-Ce3Pb2JM.cjs.map} +1 -1
  128. package/dist/{dropdowns-zXgrjNXZ.js → dropdowns-DfXhVlWQ.js} +4 -4
  129. package/dist/{dropdowns-zXgrjNXZ.js.map → dropdowns-DfXhVlWQ.js.map} +1 -1
  130. package/dist/dropdowns.cjs +1 -1
  131. package/dist/dropdowns.js +1 -1
  132. package/dist/{feedback-DfBjzJAw.js → feedback-DGT28-Zx.js} +11 -11
  133. package/dist/{feedback-DfBjzJAw.js.map → feedback-DGT28-Zx.js.map} +1 -1
  134. package/dist/{feedback-BvRmoSzV.cjs → feedback-Dr7G3K_R.cjs} +2 -2
  135. package/dist/{feedback-BvRmoSzV.cjs.map → feedback-Dr7G3K_R.cjs.map} +1 -1
  136. package/dist/feedback.cjs +1 -1
  137. package/dist/feedback.js +4 -4
  138. package/dist/index.cjs +1 -1
  139. package/dist/index.cjs.map +1 -1
  140. package/dist/index.d.ts +2 -4
  141. package/dist/index.js +52 -52
  142. package/dist/index.js.map +1 -1
  143. package/dist/{inputs-C1I1SLZ8.cjs → inputs-BJMmyEdL.cjs} +2 -2
  144. package/dist/{inputs-C1I1SLZ8.cjs.map → inputs-BJMmyEdL.cjs.map} +1 -1
  145. package/dist/{inputs-Dy1WurNK.js → inputs-CNPeF6gb.js} +3 -3
  146. package/dist/{inputs-Dy1WurNK.js.map → inputs-CNPeF6gb.js.map} +1 -1
  147. package/dist/inputs.cjs +1 -1
  148. package/dist/inputs.js +4 -4
  149. package/dist/layout-dUrQeGc2.cjs +2 -0
  150. package/dist/layout-dUrQeGc2.cjs.map +1 -0
  151. package/dist/{layout-D1-mF4xn.js → layout-tIq6BGQK.js} +240 -301
  152. package/dist/layout-tIq6BGQK.js.map +1 -0
  153. package/dist/layout.cjs +1 -1
  154. package/dist/layout.js +8 -8
  155. package/dist/licensing-9sZ43Cif.cjs +2 -0
  156. package/dist/licensing-9sZ43Cif.cjs.map +1 -0
  157. package/dist/{licensing-ZFCUU4Z8.js → licensing-Bq78CLC_.js} +5 -5
  158. package/dist/licensing-Bq78CLC_.js.map +1 -0
  159. package/dist/media-BySr5LGc.cjs +2 -0
  160. package/dist/media-BySr5LGc.cjs.map +1 -0
  161. package/dist/media-IQ4iYTs-.js +391 -0
  162. package/dist/media-IQ4iYTs-.js.map +1 -0
  163. package/dist/media.cjs +1 -1
  164. package/dist/media.js +4 -4
  165. package/dist/{overlays-B0khU6Wb.js → overlays-BabXGLEM.js} +7 -7
  166. package/dist/{overlays-B0khU6Wb.js.map → overlays-BabXGLEM.js.map} +1 -1
  167. package/dist/{overlays-VAh5PqAe.cjs → overlays-CTR3n21O.cjs} +2 -2
  168. package/dist/{overlays-VAh5PqAe.cjs.map → overlays-CTR3n21O.cjs.map} +1 -1
  169. package/dist/overlays.cjs +1 -1
  170. package/dist/overlays.js +3 -3
  171. package/dist/style-runtime.cjs +1 -1
  172. package/dist/style-runtime.js +1 -1
  173. package/dist/styles.css +1 -1
  174. package/dist/theme/MTheme.types.d.ts +5 -0
  175. package/dist/theme/responsive.d.ts +1 -10
  176. package/dist/{theme-D_f-cmSA.js → theme-DAOU1aPs.js} +4 -3
  177. package/dist/{theme-D_f-cmSA.js.map → theme-DAOU1aPs.js.map} +1 -1
  178. package/dist/{theme-BaroO-OB.cjs → theme-DsTDooyX.cjs} +2 -2
  179. package/dist/{theme-BaroO-OB.cjs.map → theme-DsTDooyX.cjs.map} +1 -1
  180. package/dist/theme.cjs +1 -1
  181. package/dist/theme.js +1 -1
  182. package/dist/{typography-CldwDFse.js → typography-CAW17MDj.js} +2 -2
  183. package/dist/{typography-CldwDFse.js.map → typography-CAW17MDj.js.map} +1 -1
  184. package/dist/{typography-D7COsP1O.cjs → typography-sbLuXqFn.cjs} +2 -2
  185. package/dist/{typography-D7COsP1O.cjs.map → typography-sbLuXqFn.cjs.map} +1 -1
  186. package/dist/typography.cjs +1 -1
  187. package/dist/typography.js +5 -5
  188. package/dist/utils/commandPaletteFromNavGroups.d.ts +74 -0
  189. package/dist/utils/licensing.d.ts +4 -4
  190. package/dist/utils.cjs +1 -1
  191. package/dist/utils.js +1 -1
  192. package/package.json +1 -1
  193. package/dist/MGrid-C4kPZDSa.cjs +0 -2
  194. package/dist/MGrid-C4kPZDSa.cjs.map +0 -1
  195. package/dist/MGrid-DR0fHItF.js.map +0 -1
  196. package/dist/MImage-BZ6SrSao.cjs +0 -2
  197. package/dist/MImage-BZ6SrSao.cjs.map +0 -1
  198. package/dist/MImage-Btx_7g2Z.js +0 -257
  199. package/dist/MImage-Btx_7g2Z.js.map +0 -1
  200. package/dist/cards-B9g6Lf1n.cjs +0 -2
  201. package/dist/cards-B9g6Lf1n.cjs.map +0 -1
  202. package/dist/cards-D7oHIHmU.js.map +0 -1
  203. package/dist/components/layout/MAppMenu/MAppMenu.d.ts +0 -2
  204. package/dist/components/layout/MAppMenu/MAppMenu.types.d.ts +0 -63
  205. package/dist/components/layout/MAppMenu/index.d.ts +0 -2
  206. package/dist/data-7kG1MC1Z.cjs +0 -2
  207. package/dist/data-7kG1MC1Z.cjs.map +0 -1
  208. package/dist/data-z3e8XTSt.js +0 -2692
  209. package/dist/data-z3e8XTSt.js.map +0 -1
  210. package/dist/layout-D1-mF4xn.js.map +0 -1
  211. package/dist/layout-Op6GWQ8w.cjs +0 -2
  212. package/dist/layout-Op6GWQ8w.cjs.map +0 -1
  213. package/dist/licensing-DmF0ObpG.cjs +0 -2
  214. package/dist/licensing-DmF0ObpG.cjs.map +0 -1
  215. package/dist/licensing-ZFCUU4Z8.js.map +0 -1
  216. package/dist/media-DbToUupt.cjs +0 -2
  217. package/dist/media-DbToUupt.cjs.map +0 -1
  218. package/dist/media-DdChr0Cw.js +0 -431
  219. package/dist/media-DdChr0Cw.js.map +0 -1
  220. package/dist/utils/commandPaletteFromAppMenu.d.ts +0 -42
@@ -0,0 +1,391 @@
1
+ import { Fi as e, Pi as t } from "./icons-CfpYxnfg.js";
2
+ import { t as n } from "./cn-YER3QsV1.js";
3
+ import { t as r } from "./useInteractionEffect-DtpbVd77.js";
4
+ import { t as i } from "./MButton-C1pnL4_j.js";
5
+ import { i as a, n as o, r as s } from "./MSkeleton-CVofhuDp.js";
6
+ import { a as c, c as l, i as u, n as d, o as f, r as p, s as m } from "./MAvatarStack-CrhkO_SO.js";
7
+ import { Children as h, useCallback as g, useEffect as _, useMemo as v, useRef as y, useState as b } from "react";
8
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
9
+ //#region src/components/media/MGallery/MGallery.tsx
10
+ function w({ items: e, columns: t = 3, rounded: r = !0, preview: i = !1, hoverEffect: a = "zoom", clickEffect: o = "ripple", className: s, ...c }) {
11
+ let [u, d] = b(!1), [f, p] = b(0);
12
+ return /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S("div", {
13
+ className: n("gallery", `columns-${t}`, s),
14
+ ...c,
15
+ children: e.map((e, t) => /* @__PURE__ */ S(T, {
16
+ item: e,
17
+ rounded: r,
18
+ preview: i,
19
+ hoverEffect: a,
20
+ clickEffect: o,
21
+ onOpen: () => {
22
+ p(t), d(!0);
23
+ }
24
+ }, t))
25
+ }), /* @__PURE__ */ S(l, {
26
+ open: u,
27
+ items: e,
28
+ activeIndex: f,
29
+ onActiveIndexChange: p,
30
+ onClose: () => d(!1)
31
+ })] });
32
+ }
33
+ function T({ item: e, rounded: t, preview: i, hoverEffect: a, clickEffect: o, onOpen: s }) {
34
+ let { effectClassName: l, effectLayer: d, handlePointerDown: f } = r({ effect: o });
35
+ return /* @__PURE__ */ S("figure", {
36
+ className: n("gallery-item", t && "rounded"),
37
+ children: i ? /* @__PURE__ */ C("button", {
38
+ type: "button",
39
+ className: n("gallery-trigger", t && "rounded", "gallery-button", c(a) && "effect-zoom", u(a) && "effect-dim", l),
40
+ onClick: s,
41
+ onPointerDown: f,
42
+ "aria-label": `Preview ${e.alt || "image"}`,
43
+ children: [
44
+ /* @__PURE__ */ S("img", {
45
+ className: "gallery-image",
46
+ src: e.thumbnail || e.src,
47
+ alt: e.alt || "",
48
+ loading: "lazy"
49
+ }),
50
+ e.caption && /* @__PURE__ */ S("span", {
51
+ className: "gallery-caption",
52
+ children: e.caption
53
+ }),
54
+ d
55
+ ]
56
+ }) : /* @__PURE__ */ C("div", {
57
+ className: n("gallery-trigger", t && "rounded", c(a) && "effect-zoom", u(a) && "effect-dim", l),
58
+ onPointerDown: f,
59
+ children: [
60
+ /* @__PURE__ */ S("img", {
61
+ className: "gallery-image",
62
+ src: e.thumbnail || e.src,
63
+ alt: e.alt || "",
64
+ loading: "lazy"
65
+ }),
66
+ e.caption && /* @__PURE__ */ S("span", {
67
+ className: "gallery-caption",
68
+ children: e.caption
69
+ }),
70
+ d
71
+ ]
72
+ })
73
+ });
74
+ }
75
+ //#endregion
76
+ //#region src/components/media/MCarousel/MCarousel.tsx
77
+ function E({ autoPlay: r = !1, interval: a = 5e3, showDots: o = !0, showArrows: s = !0, loop: c = !0, draggable: l = !0, transition: u = "slide", className: d, children: f, ...p }) {
78
+ let m = h.toArray(f), v = m.length, [w, T] = b(0), [E, D] = b(0), [O, k] = b(!1), A = y(0), j = y(null), M = g((e) => {
79
+ T(c ? (e + v) % v : Math.max(0, Math.min(e, v - 1)));
80
+ }, [v, c]), N = g(() => M(w - 1), [w, M]), P = g(() => M(w + 1), [w, M]);
81
+ _(() => {
82
+ if (!r || v <= 1 || O) return;
83
+ let e = setInterval(P, a);
84
+ return () => clearInterval(e);
85
+ }, [
86
+ r,
87
+ a,
88
+ P,
89
+ v,
90
+ O
91
+ ]);
92
+ let F = (e) => {
93
+ l && (k(!0), A.current = e, D(0));
94
+ }, I = (e) => {
95
+ O && D(e - A.current);
96
+ }, L = () => {
97
+ O && (k(!1), E < -50 ? P() : E > 50 && N(), D(0));
98
+ }, R = (e) => {
99
+ l && (e.currentTarget.setPointerCapture(e.pointerId), F(e.clientX));
100
+ }, z = (e) => {
101
+ I(e.clientX);
102
+ }, B = () => {
103
+ L();
104
+ };
105
+ if (v === 0) return null;
106
+ let V = u === "fade", H = V ? void 0 : { transform: `translateX(calc(-${w * 100}% + ${O ? E : 0}px))` };
107
+ return /* @__PURE__ */ C("div", {
108
+ className: n("carousel", V && "fade", d),
109
+ ...p,
110
+ children: [
111
+ /* @__PURE__ */ S("div", {
112
+ className: "carousel-viewport",
113
+ onPointerDown: R,
114
+ onPointerMove: z,
115
+ onPointerUp: B,
116
+ onPointerCancel: B,
117
+ style: {
118
+ touchAction: l ? "pan-y" : void 0,
119
+ cursor: l ? O ? "grabbing" : "grab" : void 0
120
+ },
121
+ children: /* @__PURE__ */ S("div", {
122
+ ref: j,
123
+ className: n("carousel-track", O && "dragging"),
124
+ style: H,
125
+ children: m.map((e, t) => /* @__PURE__ */ S("div", {
126
+ className: n("carousel-slide", V && t === w && "active", V && t !== w && "hidden"),
127
+ children: e
128
+ }, t))
129
+ })
130
+ }),
131
+ s && v > 1 && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(i, {
132
+ variant: "ghost",
133
+ color: "primary",
134
+ iconOnly: !0,
135
+ shape: "circle",
136
+ onClick: N,
137
+ "aria-label": "Previous slide",
138
+ className: "carousel-arrow carousel-arrow-prev",
139
+ children: /* @__PURE__ */ S(e, {})
140
+ }), /* @__PURE__ */ S(i, {
141
+ variant: "ghost",
142
+ color: "primary",
143
+ iconOnly: !0,
144
+ shape: "circle",
145
+ onClick: P,
146
+ "aria-label": "Next slide",
147
+ className: "carousel-arrow carousel-arrow-next",
148
+ children: /* @__PURE__ */ S(t, {})
149
+ })] }),
150
+ o && v > 1 && /* @__PURE__ */ S("div", {
151
+ className: "carousel-dots",
152
+ children: m.map((e, t) => /* @__PURE__ */ S("button", {
153
+ className: n("carousel-dot", t === w && "active"),
154
+ onClick: () => M(t),
155
+ "aria-label": `Slide ${t + 1}`,
156
+ type: "button"
157
+ }, t))
158
+ })
159
+ ]
160
+ });
161
+ }
162
+ //#endregion
163
+ //#region src/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.tsx
164
+ function D({ src: e, alt: t = "", media: r, mediaHeight: i, overlay: c, body: l, footer: u, interactive: h = !1, imageClickEffect: g = "ripple", ratio: _ = "16:9", fit: v = "cover", imgProps: y, children: b }) {
165
+ let x = l ?? b, w = f(g), T = i ? { "--media-height": typeof i == "number" ? `${i}px` : i } : void 0, E = !!(r || e);
166
+ return /* @__PURE__ */ C(o, {
167
+ interactive: h,
168
+ clickEffect: g === "none" ? void 0 : "none",
169
+ className: n("showcase card", h && "interactive"),
170
+ style: T,
171
+ children: [
172
+ E ? /* @__PURE__ */ C("div", {
173
+ className: n("showcase media", m(g) && "effect-zoom", p(g) && "effect-dim"),
174
+ children: [r ? /* @__PURE__ */ S("div", {
175
+ className: "showcase media-content",
176
+ children: r
177
+ }) : /* @__PURE__ */ S(d, {
178
+ ...y,
179
+ src: e,
180
+ alt: t,
181
+ ratio: _,
182
+ fit: v,
183
+ rounded: !0,
184
+ shadow: !0,
185
+ clickEffect: w ? "ripple" : "none"
186
+ }), c ? /* @__PURE__ */ S("div", {
187
+ className: "showcase overlay",
188
+ children: c
189
+ }) : null]
190
+ }) : null,
191
+ x ? /* @__PURE__ */ S(s, {
192
+ className: "showcase body",
193
+ children: x
194
+ }) : null,
195
+ u ? /* @__PURE__ */ S(a, {
196
+ className: "showcase footer",
197
+ children: u
198
+ }) : null
199
+ ]
200
+ });
201
+ }
202
+ //#endregion
203
+ //#region src/components/media/MShowcaseCarousel/MShowcaseCarousel.tsx
204
+ function O(e, t, n) {
205
+ return Math.min(Math.max(e, t), n);
206
+ }
207
+ function k(e) {
208
+ return e instanceof Element ? !!e.closest("button, a, input, select, textarea, label, summary, [role=\"button\"], [role=\"link\"], [data-carousel-ignore-drag=\"true\"]") : !1;
209
+ }
210
+ function A(e, t, n) {
211
+ return e && t ? e.map((e, n) => t(e, n)) : e ? e.map((e, t) => j(e) ? /* @__PURE__ */ S(M, { item: e }, t) : null).filter(Boolean) : h.toArray(n);
212
+ }
213
+ function j(e) {
214
+ let t = e;
215
+ return !!e && typeof e == "object" && "src" in e && typeof t.src == "string";
216
+ }
217
+ function M({ item: e }) {
218
+ return /* @__PURE__ */ S(D, {
219
+ src: e.src,
220
+ alt: e.alt || "",
221
+ overlay: e.overlay
222
+ });
223
+ }
224
+ function N({ items: r, renderItem: a, initialIndex: o, showButtons: s = !0, loop: c = !0, draggable: l = !0, wheel: u = !0, itemMinWidth: d = 220, itemMaxWidth: f = 520, itemWidthRatio: p = .56, className: m, children: h, style: x, ...w }) {
225
+ let T = v(() => A(r, a, h), [
226
+ h,
227
+ r,
228
+ a
229
+ ]), E = T.length, [D, j] = b(0), [M, N] = b(0), [P, F] = b(!1), [I, L] = b(0), R = y(null), z = y(0), B = y(!1), V = O(I * (I < 640 ? Math.max(p, .78) : I < 960 ? Math.max(p, .66) : p) || d, d, f), H = O(I * .022 || 16, 10, 24);
230
+ _(() => {
231
+ let e = R.current;
232
+ if (!e) return;
233
+ let t = () => L(e.clientWidth);
234
+ t();
235
+ let n = new ResizeObserver(t);
236
+ return n.observe(e), () => n.disconnect();
237
+ }, []), _(() => {
238
+ E && j(O(o ?? Math.floor((E - 1) / 2), 0, E - 1));
239
+ }, [E, o]);
240
+ let U = g((e) => {
241
+ if (!(E < 1)) {
242
+ if (c) {
243
+ j((e + E) % E);
244
+ return;
245
+ }
246
+ j(O(e, 0, E - 1));
247
+ }
248
+ }, [E, c]), W = g(() => U(D - 1), [D, U]), G = g(() => U(D + 1), [D, U]), K = (e) => {
249
+ !l || E <= 1 || k(e.target) || (e.currentTarget.setPointerCapture(e.pointerId), F(!0), z.current = e.clientX, N(0));
250
+ }, q = (e) => {
251
+ P && N(e.clientX - z.current);
252
+ }, J = () => {
253
+ if (!P) return;
254
+ let e = Math.max(56, V * .12);
255
+ M <= -e ? G() : M >= e && W(), F(!1), N(0);
256
+ };
257
+ if (_(() => {
258
+ let e = R.current;
259
+ if (!e) return;
260
+ let t = (e) => {
261
+ if (!u || E <= 1 || B.current) return;
262
+ let t = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? e.deltaX : e.deltaY;
263
+ Math.abs(t) < 28 || (e.preventDefault(), e.stopPropagation(), B.current = !0, window.setTimeout(() => {
264
+ B.current = !1;
265
+ }, 260), t > 0 ? G() : W());
266
+ };
267
+ return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
268
+ }, [
269
+ E,
270
+ G,
271
+ W,
272
+ u
273
+ ]), !E) return null;
274
+ let Y = I / 2 - D * (V + H) - V / 2 + M;
275
+ return /* @__PURE__ */ C("div", {
276
+ className: n("showcase", m),
277
+ style: {
278
+ ...x,
279
+ "--item-width": `${V}px`
280
+ },
281
+ ...w,
282
+ children: [/* @__PURE__ */ S("div", {
283
+ ref: R,
284
+ className: "showcase-stage",
285
+ onPointerDown: K,
286
+ onPointerMove: q,
287
+ onPointerUp: J,
288
+ onPointerCancel: J,
289
+ onPointerLeave: J,
290
+ style: { cursor: l && E > 1 ? P ? "grabbing" : "grab" : void 0 },
291
+ children: /* @__PURE__ */ S("div", {
292
+ className: n("showcase-track", P && "dragging"),
293
+ style: {
294
+ transform: `translateX(${Y}px)`,
295
+ gap: `${H}px`
296
+ },
297
+ children: T.map((e, t) => {
298
+ let r = Math.abs(t - D);
299
+ return /* @__PURE__ */ S("div", {
300
+ className: n("showcase-item", t === D && "active", r === 1 && "near", r >= 2 && "far"),
301
+ style: { zIndex: Math.max(1, E - r) },
302
+ children: e
303
+ }, t);
304
+ })
305
+ })
306
+ }), s && E > 1 && /* @__PURE__ */ C("div", {
307
+ className: "showcase-actions",
308
+ children: [/* @__PURE__ */ S(i, {
309
+ type: "button",
310
+ variant: "secondary",
311
+ className: "showcase-btn",
312
+ startIcon: /* @__PURE__ */ S(e, {}),
313
+ onClick: W,
314
+ children: "Previous"
315
+ }), /* @__PURE__ */ S(i, {
316
+ type: "button",
317
+ className: "showcase-btn",
318
+ endIcon: /* @__PURE__ */ S(t, {}),
319
+ onClick: G,
320
+ children: "Next"
321
+ })]
322
+ })]
323
+ });
324
+ }
325
+ //#endregion
326
+ //#region src/components/media/MMasonry/MMasonry.tsx
327
+ function P(e, t, n) {
328
+ return e && t ? e.map((e, n) => t(e, n)) : h.toArray(n);
329
+ }
330
+ function F({ items: e, renderItem: t, columns: r = 3, className: i, children: a, style: o, ...s }) {
331
+ let c = P(e, t, a);
332
+ return c.length ? /* @__PURE__ */ S("div", {
333
+ className: n("masonry", i),
334
+ style: {
335
+ ...o,
336
+ columnCount: r
337
+ },
338
+ ...s,
339
+ children: c.map((e, t) => /* @__PURE__ */ S("div", {
340
+ className: "masonry item",
341
+ children: e
342
+ }, t))
343
+ }) : null;
344
+ }
345
+ //#endregion
346
+ //#region src/components/media/MMasonryItem/MMasonryItem.tsx
347
+ function I({ src: e, alt: t = "", height: i, overlay: c, body: l, footer: u, interactive: d = !1, imageClickEffect: h = "none", imgProps: g, children: _ }) {
348
+ let v = i ? {
349
+ ...g?.style,
350
+ height: i
351
+ } : g?.style, y = l ?? _, { effectClassName: b, effectLayer: x, handlePointerDown: w } = r({ effect: f(h) ? "ripple" : "none" });
352
+ return /* @__PURE__ */ C(o, {
353
+ interactive: d,
354
+ clickEffect: h === "none" ? void 0 : "none",
355
+ className: n("masonry card", d && "interactive"),
356
+ children: [
357
+ /* @__PURE__ */ C("div", {
358
+ className: n("masonry media", b, m(h) && "effect-zoom", p(h) && "effect-dim"),
359
+ onPointerDown: (e) => {
360
+ e.target.closest(".masonry.overlay") || w(e);
361
+ },
362
+ children: [
363
+ /* @__PURE__ */ S("img", {
364
+ ...g,
365
+ src: e,
366
+ alt: t,
367
+ className: "masonry img",
368
+ style: v
369
+ }),
370
+ c ? /* @__PURE__ */ S("div", {
371
+ className: "masonry overlay",
372
+ children: c
373
+ }) : null,
374
+ x
375
+ ]
376
+ }),
377
+ y ? /* @__PURE__ */ S(s, {
378
+ className: "masonry body",
379
+ children: y
380
+ }) : null,
381
+ u ? /* @__PURE__ */ S(a, {
382
+ className: "masonry footer",
383
+ children: u
384
+ }) : null
385
+ ]
386
+ });
387
+ }
388
+ //#endregion
389
+ export { E as a, D as i, F as n, w as o, N as r, I as t };
390
+
391
+ //# sourceMappingURL=media-IQ4iYTs-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-IQ4iYTs-.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"],"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"],"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-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;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MAvatarStack-DN79aJo1.cjs`),t=require(`./media-BySr5LGc.cjs`),n=require(`./MAvatar-DzZPRbot.cjs`);exports.MAvatar=n.t,exports.MAvatarStack=e.t,exports.MCarousel=t.a,exports.MGallery=t.o,exports.MImage=e.n,exports.MMasonry=t.n,exports.MMasonryItem=t.t,exports.MShowcaseCarousel=t.r,exports.MShowcaseCarouselItem=t.i;
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-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
- 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 };
3
+ import { n as e, t } from "./MAvatarStack-CrhkO_SO.js";
4
+ import { a as n, i as r, n as i, o as a, r as o, t as s } from "./media-IQ4iYTs-.js";
5
+ import { t as c } from "./MAvatar-D_dVAPaR.js";
6
+ export { c as MAvatar, t as MAvatarStack, n as MCarousel, a as MGallery, e as MImage, i as MMasonry, s as MMasonryItem, o as MShowcaseCarousel, r as MShowcaseCarouselItem };
@@ -3,13 +3,13 @@ import { t as r } from "./cn-YER3QsV1.js";
3
3
  import { t as i } from "./useKeyboardNav-iEXOdEMB.js";
4
4
  import { t as a } from "./MPortal-Ba2Sxset.js";
5
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";
6
+ import { n as s, t as c } from "./MStack-C4Eocfb5.js";
7
+ import { t as l } from "./MText-CL-LPcXi.js";
8
+ import { t as u } from "./MHeading-B7KgSP4T.js";
9
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";
10
+ import { t as f } from "./MButton-C1pnL4_j.js";
11
+ import { a as p, i as m, n as h, r as g, s as _ } from "./MSkeleton-CVofhuDp.js";
12
+ import { t as v } from "./MInputSearch-BBxUF5pw.js";
13
13
  import { t as y } from "./MTooltip-jSf4VBtB.js";
14
14
  import { t as b } from "./MSimpleGrid-Bojj4xKH.js";
15
15
  import { useCallback as x, useEffect as S, useId as ee, useMemo as C, useRef as w, useState as T } from "react";
@@ -389,4 +389,4 @@ function L({ title: e, description: t, onConfirm: n, onCancel: i, confirmText: a
389
389
  //#endregion
390
390
  export { I as n, j as r, L as t };
391
391
 
392
- //# sourceMappingURL=overlays-B0khU6Wb.js.map
392
+ //# sourceMappingURL=overlays-BabXGLEM.js.map