@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.
- package/README.md +1 -1
- package/dist/{MAvatar-BcayQCnp.js → MAvatar-D_dVAPaR.js} +3 -3
- package/dist/{MAvatar-BcayQCnp.js.map → MAvatar-D_dVAPaR.js.map} +1 -1
- package/dist/{MAvatar-BgevCYi3.cjs → MAvatar-DzZPRbot.cjs} +2 -2
- package/dist/{MAvatar-BgevCYi3.cjs.map → MAvatar-DzZPRbot.cjs.map} +1 -1
- package/dist/MAvatarStack-CrhkO_SO.js +330 -0
- package/dist/MAvatarStack-CrhkO_SO.js.map +1 -0
- package/dist/MAvatarStack-DN79aJo1.cjs +2 -0
- package/dist/MAvatarStack-DN79aJo1.cjs.map +1 -0
- package/dist/{MButton-DZLLrtQb.js → MButton-C1pnL4_j.js} +2 -2
- package/dist/{MButton-DZLLrtQb.js.map → MButton-C1pnL4_j.js.map} +1 -1
- package/dist/{MButton-8UCydOik.cjs → MButton-DFRHWHzh.cjs} +2 -2
- package/dist/{MButton-8UCydOik.cjs.map → MButton-DFRHWHzh.cjs.map} +1 -1
- package/dist/{MDataTable-95_Mb6jE.cjs → MDataTable-7nJuwzJR.cjs} +2 -2
- package/dist/{MDataTable-95_Mb6jE.cjs.map → MDataTable-7nJuwzJR.cjs.map} +1 -1
- package/dist/{MDataTable-DxDS5auV.js → MDataTable-CQt_pINO.js} +4 -4
- package/dist/{MDataTable-DxDS5auV.js.map → MDataTable-CQt_pINO.js.map} +1 -1
- package/dist/{MDrawer-CXNHYwPO.js → MDrawer-B83--EVv.js} +2 -2
- package/dist/{MDrawer-CXNHYwPO.js.map → MDrawer-B83--EVv.js.map} +1 -1
- package/dist/{MDrawer-DzqtHVeA.cjs → MDrawer-D6cy9K7J.cjs} +2 -2
- package/dist/{MDrawer-DzqtHVeA.cjs.map → MDrawer-D6cy9K7J.cjs.map} +1 -1
- package/dist/MGrid-B-fP4GME.cjs +2 -0
- package/dist/MGrid-B-fP4GME.cjs.map +1 -0
- package/dist/{MGrid-DR0fHItF.js → MGrid-DVluuula.js} +56 -56
- package/dist/MGrid-DVluuula.js.map +1 -0
- package/dist/{MHeading-MPh8Qm9q.js → MHeading-B7KgSP4T.js} +3 -3
- package/dist/{MHeading-MPh8Qm9q.js.map → MHeading-B7KgSP4T.js.map} +1 -1
- package/dist/{MHeading-CKe5lcM_.cjs → MHeading-f3hwkW3r.cjs} +2 -2
- package/dist/{MHeading-CKe5lcM_.cjs.map → MHeading-f3hwkW3r.cjs.map} +1 -1
- package/dist/{MInput-D_zaoWwX.cjs → MInput-BLGduKL_.cjs} +2 -2
- package/dist/{MInput-D_zaoWwX.cjs.map → MInput-BLGduKL_.cjs.map} +1 -1
- package/dist/{MInput-7i0Dy1t4.js → MInput-IsUELgN2.js} +2 -2
- package/dist/{MInput-7i0Dy1t4.js.map → MInput-IsUELgN2.js.map} +1 -1
- package/dist/{MInputExpDate-DhO5zN7L.js → MInputExpDate-CeCmw6fj.js} +2 -2
- package/dist/{MInputExpDate-DhO5zN7L.js.map → MInputExpDate-CeCmw6fj.js.map} +1 -1
- package/dist/{MInputExpDate-DWWwjMYK.cjs → MInputExpDate-DZ8JtSjs.cjs} +2 -2
- package/dist/{MInputExpDate-DWWwjMYK.cjs.map → MInputExpDate-DZ8JtSjs.cjs.map} +1 -1
- package/dist/{MInputSearch-CmzHPnmC.js → MInputSearch-BBxUF5pw.js} +2 -2
- package/dist/{MInputSearch-CmzHPnmC.js.map → MInputSearch-BBxUF5pw.js.map} +1 -1
- package/dist/{MInputSearch-DpHSVpmL.cjs → MInputSearch-_7jfFGr1.cjs} +2 -2
- package/dist/{MInputSearch-DpHSVpmL.cjs.map → MInputSearch-_7jfFGr1.cjs.map} +1 -1
- package/dist/{MLink-rFKN1mcM.js → MLink-Bd8fLH1N.js} +2 -2
- package/dist/{MLink-rFKN1mcM.js.map → MLink-Bd8fLH1N.js.map} +1 -1
- package/dist/{MLink-B3ImjkJV.cjs → MLink-CRK8YvR4.cjs} +2 -2
- package/dist/{MLink-B3ImjkJV.cjs.map → MLink-CRK8YvR4.cjs.map} +1 -1
- package/dist/{MModal-DGmeQlWo.js → MModal-DiTjBO8B.js} +2 -2
- package/dist/{MModal-DGmeQlWo.js.map → MModal-DiTjBO8B.js.map} +1 -1
- package/dist/{MModal-CP0e31pv.cjs → MModal-eJDG6riB.cjs} +2 -2
- package/dist/{MModal-CP0e31pv.cjs.map → MModal-eJDG6riB.cjs.map} +1 -1
- package/dist/{MPagination-CS62B9kZ.cjs → MPagination-D1hYqLDb.cjs} +2 -2
- package/dist/{MPagination-CS62B9kZ.cjs.map → MPagination-D1hYqLDb.cjs.map} +1 -1
- package/dist/{MPagination-Dr110are.js → MPagination-DvToi2cs.js} +2 -2
- package/dist/{MPagination-Dr110are.js.map → MPagination-DvToi2cs.js.map} +1 -1
- package/dist/{MQrCode-B0-Np-N3.cjs → MQrCode-HO2YIC7e.cjs} +2 -2
- package/dist/{MQrCode-B0-Np-N3.cjs.map → MQrCode-HO2YIC7e.cjs.map} +1 -1
- package/dist/{MQrCode-6ANDcExA.js → MQrCode-Kb997gaE.js} +5 -5
- package/dist/{MQrCode-6ANDcExA.js.map → MQrCode-Kb997gaE.js.map} +1 -1
- package/dist/{MSkeleton-BvXgnYs_.js → MSkeleton-CVofhuDp.js} +3 -3
- package/dist/{MSkeleton-BvXgnYs_.js.map → MSkeleton-CVofhuDp.js.map} +1 -1
- package/dist/{MSkeleton-BdwhPx-k.cjs → MSkeleton-CuYA8eN3.cjs} +2 -2
- package/dist/{MSkeleton-BdwhPx-k.cjs.map → MSkeleton-CuYA8eN3.cjs.map} +1 -1
- package/dist/{MStack-DFIc3S4_.js → MStack-C4Eocfb5.js} +2 -2
- package/dist/{MStack-DFIc3S4_.js.map → MStack-C4Eocfb5.js.map} +1 -1
- package/dist/{MStack-ByFYGSsy.cjs → MStack-w8XcuIJK.cjs} +2 -2
- package/dist/{MStack-ByFYGSsy.cjs.map → MStack-w8XcuIJK.cjs.map} +1 -1
- package/dist/{MSubText-BFdfBlpS.js → MSubText-C-N15d4Z.js} +3 -3
- package/dist/{MSubText-BFdfBlpS.js.map → MSubText-C-N15d4Z.js.map} +1 -1
- package/dist/{MSubText-1ilKSz8e.cjs → MSubText-CIMKPb8o.cjs} +2 -2
- package/dist/{MSubText-1ilKSz8e.cjs.map → MSubText-CIMKPb8o.cjs.map} +1 -1
- package/dist/{MSurface-CpAuwpHv.cjs → MSurface-KvAS2hkl.cjs} +2 -2
- package/dist/{MSurface-CpAuwpHv.cjs.map → MSurface-KvAS2hkl.cjs.map} +1 -1
- package/dist/{MSurface-CmVIQC1A.js → MSurface-odrvQXkb.js} +2 -2
- package/dist/{MSurface-CmVIQC1A.js.map → MSurface-odrvQXkb.js.map} +1 -1
- package/dist/{MTag-DwQ-j1sV.cjs → MTag-DZqV4S13.cjs} +2 -2
- package/dist/{MTag-DwQ-j1sV.cjs.map → MTag-DZqV4S13.cjs.map} +1 -1
- package/dist/{MTag-C4SUJly2.js → MTag-DgB6ukFJ.js} +3 -3
- package/dist/{MTag-C4SUJly2.js.map → MTag-DgB6ukFJ.js.map} +1 -1
- package/dist/{MText-D0fI_D_Q.cjs → MText-BHbI7KJO.cjs} +2 -2
- package/dist/{MText-D0fI_D_Q.cjs.map → MText-BHbI7KJO.cjs.map} +1 -1
- package/dist/{MText-DcB1GAt-.js → MText-CL-LPcXi.js} +2 -2
- package/dist/{MText-DcB1GAt-.js.map → MText-CL-LPcXi.js.map} +1 -1
- package/dist/{cards-D7oHIHmU.js → cards-C50fpYud.js} +20 -16
- package/dist/cards-C50fpYud.js.map +1 -0
- package/dist/cards-Ci1FoV9C.cjs +2 -0
- package/dist/cards-Ci1FoV9C.cjs.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +3 -3
- package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +40 -1
- package/dist/components/cards/MCardGrid/index.d.ts +1 -1
- package/dist/components/cards/MStatCard/MStatCard.d.ts +0 -1
- package/dist/components/cards/MStatCard/MStatCard.types.d.ts +0 -2
- package/dist/components/cards/MStatCard/index.d.ts +2 -2
- package/dist/components/cards/index.d.ts +3 -3
- package/dist/components/data/MTimelineCalendar/DayStrip.d.ts +11 -0
- package/dist/components/data/MTimelineCalendar/EventPopover.d.ts +18 -0
- package/dist/components/data/MTimelineCalendar/MTimelineCalendar.d.ts +2 -0
- package/dist/components/data/MTimelineCalendar/MTimelineCalendar.helpers.d.ts +55 -0
- package/dist/components/data/MTimelineCalendar/MTimelineCalendar.types.d.ts +89 -0
- package/dist/components/data/MTimelineCalendar/index.d.ts +2 -0
- package/dist/components/data/index.d.ts +4 -0
- package/dist/components/layout/MGrid/MGrid.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.types.d.ts +19 -0
- package/dist/components/layout/index.d.ts +0 -4
- package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +1 -1
- package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +14 -1
- package/dist/components/typography/MHeading/MHeading.d.ts +1 -562
- package/dist/{controls-BfV0vxeJ.cjs → controls-CYQxPd4U.cjs} +2 -2
- package/dist/{controls-BfV0vxeJ.cjs.map → controls-CYQxPd4U.cjs.map} +1 -1
- package/dist/{controls-BczTk73I.js → controls-CcbEqqWo.js} +3 -3
- package/dist/{controls-BczTk73I.js.map → controls-CcbEqqWo.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +2 -2
- package/dist/data-DtShJEic.cjs +2 -0
- package/dist/data-DtShJEic.cjs.map +1 -0
- package/dist/data-RXuvb9VI.js +3454 -0
- package/dist/data-RXuvb9VI.js.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/{display-Cw3-bTsm.cjs → display-96-TEGmZ.cjs} +2 -2
- package/dist/{display-Cw3-bTsm.cjs.map → display-96-TEGmZ.cjs.map} +1 -1
- package/dist/{display-DyC7084n.js → display-C7YRf4Ze.js} +5 -5
- package/dist/{display-DyC7084n.js.map → display-C7YRf4Ze.js.map} +1 -1
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/{dropdowns-6eO0b6eI.cjs → dropdowns-Ce3Pb2JM.cjs} +2 -2
- package/dist/{dropdowns-6eO0b6eI.cjs.map → dropdowns-Ce3Pb2JM.cjs.map} +1 -1
- package/dist/{dropdowns-zXgrjNXZ.js → dropdowns-DfXhVlWQ.js} +4 -4
- package/dist/{dropdowns-zXgrjNXZ.js.map → dropdowns-DfXhVlWQ.js.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-DfBjzJAw.js → feedback-DGT28-Zx.js} +11 -11
- package/dist/{feedback-DfBjzJAw.js.map → feedback-DGT28-Zx.js.map} +1 -1
- package/dist/{feedback-BvRmoSzV.cjs → feedback-Dr7G3K_R.cjs} +2 -2
- package/dist/{feedback-BvRmoSzV.cjs.map → feedback-Dr7G3K_R.cjs.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.js +52 -52
- package/dist/index.js.map +1 -1
- package/dist/{inputs-C1I1SLZ8.cjs → inputs-BJMmyEdL.cjs} +2 -2
- package/dist/{inputs-C1I1SLZ8.cjs.map → inputs-BJMmyEdL.cjs.map} +1 -1
- package/dist/{inputs-Dy1WurNK.js → inputs-CNPeF6gb.js} +3 -3
- package/dist/{inputs-Dy1WurNK.js.map → inputs-CNPeF6gb.js.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/layout-dUrQeGc2.cjs +2 -0
- package/dist/layout-dUrQeGc2.cjs.map +1 -0
- package/dist/{layout-D1-mF4xn.js → layout-tIq6BGQK.js} +240 -301
- package/dist/layout-tIq6BGQK.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +8 -8
- package/dist/licensing-9sZ43Cif.cjs +2 -0
- package/dist/licensing-9sZ43Cif.cjs.map +1 -0
- package/dist/{licensing-ZFCUU4Z8.js → licensing-Bq78CLC_.js} +5 -5
- package/dist/licensing-Bq78CLC_.js.map +1 -0
- package/dist/media-BySr5LGc.cjs +2 -0
- package/dist/media-BySr5LGc.cjs.map +1 -0
- package/dist/media-IQ4iYTs-.js +391 -0
- package/dist/media-IQ4iYTs-.js.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +4 -4
- package/dist/{overlays-B0khU6Wb.js → overlays-BabXGLEM.js} +7 -7
- package/dist/{overlays-B0khU6Wb.js.map → overlays-BabXGLEM.js.map} +1 -1
- package/dist/{overlays-VAh5PqAe.cjs → overlays-CTR3n21O.cjs} +2 -2
- package/dist/{overlays-VAh5PqAe.cjs.map → overlays-CTR3n21O.cjs.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/MTheme.types.d.ts +5 -0
- package/dist/theme/responsive.d.ts +1 -10
- package/dist/{theme-D_f-cmSA.js → theme-DAOU1aPs.js} +4 -3
- package/dist/{theme-D_f-cmSA.js.map → theme-DAOU1aPs.js.map} +1 -1
- package/dist/{theme-BaroO-OB.cjs → theme-DsTDooyX.cjs} +2 -2
- package/dist/{theme-BaroO-OB.cjs.map → theme-DsTDooyX.cjs.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/{typography-CldwDFse.js → typography-CAW17MDj.js} +2 -2
- package/dist/{typography-CldwDFse.js.map → typography-CAW17MDj.js.map} +1 -1
- package/dist/{typography-D7COsP1O.cjs → typography-sbLuXqFn.cjs} +2 -2
- package/dist/{typography-D7COsP1O.cjs.map → typography-sbLuXqFn.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +5 -5
- package/dist/utils/commandPaletteFromNavGroups.d.ts +74 -0
- package/dist/utils/licensing.d.ts +4 -4
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/MGrid-C4kPZDSa.cjs +0 -2
- package/dist/MGrid-C4kPZDSa.cjs.map +0 -1
- package/dist/MGrid-DR0fHItF.js.map +0 -1
- package/dist/MImage-BZ6SrSao.cjs +0 -2
- package/dist/MImage-BZ6SrSao.cjs.map +0 -1
- package/dist/MImage-Btx_7g2Z.js +0 -257
- package/dist/MImage-Btx_7g2Z.js.map +0 -1
- package/dist/cards-B9g6Lf1n.cjs +0 -2
- package/dist/cards-B9g6Lf1n.cjs.map +0 -1
- package/dist/cards-D7oHIHmU.js.map +0 -1
- package/dist/components/layout/MAppMenu/MAppMenu.d.ts +0 -2
- package/dist/components/layout/MAppMenu/MAppMenu.types.d.ts +0 -63
- package/dist/components/layout/MAppMenu/index.d.ts +0 -2
- package/dist/data-7kG1MC1Z.cjs +0 -2
- package/dist/data-7kG1MC1Z.cjs.map +0 -1
- package/dist/data-z3e8XTSt.js +0 -2692
- package/dist/data-z3e8XTSt.js.map +0 -1
- package/dist/layout-D1-mF4xn.js.map +0 -1
- package/dist/layout-Op6GWQ8w.cjs +0 -2
- package/dist/layout-Op6GWQ8w.cjs.map +0 -1
- package/dist/licensing-DmF0ObpG.cjs +0 -2
- package/dist/licensing-DmF0ObpG.cjs.map +0 -1
- package/dist/licensing-ZFCUU4Z8.js.map +0 -1
- package/dist/media-DbToUupt.cjs +0 -2
- package/dist/media-DbToUupt.cjs.map +0 -1
- package/dist/media-DdChr0Cw.js +0 -431
- package/dist/media-DdChr0Cw.js.map +0 -1
- package/dist/utils/commandPaletteFromAppMenu.d.ts +0 -42
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./theme-BaroO-OB.cjs`),t=require(`./icons-qCoE70hn.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./useInteractionEffect-Bo8285cg.cjs`),i=require(`./MButton-8UCydOik.cjs`),a=require(`./MSimpleGrid-CyLf-9R2.cjs`);require(`./core-DAox0BHy.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`);var c=(0,o.forwardRef)(function({orientation:e=`horizontal`,variant:t,size:r,color:a,attached:c=!0,className:l,children:u,...d},f){let p=(0,o.useMemo)(()=>({variant:t,size:r,color:a}),[t,r,a]);return(0,s.jsx)(i.i.Provider,{value:p,children:(0,s.jsx)(`div`,{ref:f,role:`group`,className:n.t(`button-group`,e,c&&`attached`,l),...d,children:u})})}),l=(0,o.createContext)(null);function u(){return(0,o.useContext)(l)}var d=(0,o.forwardRef)(function({checked:e,defaultChecked:t,name:i,id:a,value:c,disabled:l=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,onChange:h,clickEffect:g=`ripple`,rippleColor:_,className:v,style:y},b){let x=u(),S=x?.name??i,C=x?.disabled??l,w=x?.size??d,T=x?.color??f,E=x?x.value===c:e,{effectClassName:D,effectLayer:O,handlePointerDown:k,triggerEffect:A}=r.t({effect:g,disabled:C,centered:!0,color:_}),j=(0,o.useCallback)(e=>{h?.(e),x?.onChange&&c&&x.onChange(c)},[h,x,c]);return(0,s.jsxs)(`label`,{className:n.t(`radio`,w,m===`left`&&`label-left`,C&&`disabled`,v),style:y,children:[(0,s.jsxs)(`span`,{className:n.t(`circle`,`color-${T}`,D),onPointerDown:k,children:[O,(0,s.jsx)(`input`,{ref:b,type:`radio`,name:S,id:a,value:c,checked:E,defaultChecked:x?void 0:t,disabled:C,onChange:j,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&A(e.currentTarget.parentElement)},className:`input`})]}),p&&(0,s.jsx)(`span`,{className:`label-text`,children:p})]})});function f({name:e,value:t,defaultValue:r,onChange:i,direction:a=`vertical`,children:c,disabled:u=!1,size:d=`md`,color:f=`primary`,error:p=!1,errorText:m,label:h,className:g,style:_}){let[v,y]=(0,o.useState)(r),b=t===void 0?v:t,x=(0,o.useCallback)(e=>{t===void 0&&y(e),i?.(e)},[i,t]),S=(0,o.useMemo)(()=>({name:e,value:b,disabled:u,size:d,color:f,onChange:x}),[e,b,u,d,f,x]);return(0,s.jsx)(l.Provider,{value:S,children:(0,s.jsxs)(`fieldset`,{className:n.t(`radio-group`,a,g),style:_,role:`radiogroup`,children:[h&&(0,s.jsx)(`legend`,{className:n.t(`label`,p&&`error`),children:h}),c,m&&(0,s.jsx)(`span`,{className:`field-error`,role:`alert`,children:m})]})})}function p({onLoadMore:e,loading:t=!1,hasMore:r=!0,loaded:a,total:c,auto:l=!1,autoThreshold:u=100,variant:d=`outlined`,color:f=`primary`,label:p=`Load more`,loadingLabel:m=`Loading...`,doneLabel:h=`All items loaded`,className:g,..._}){let v=(0,o.useRef)(null),y=(0,o.useRef)(e);y.current=e,(0,o.useEffect)(()=>{if(!l||!r||t)return;let e=v.current;if(!e)return;let n=new IntersectionObserver(e=>{e[0].isIntersecting&&y.current()},{rootMargin:`${u}px`});return n.observe(e),()=>n.disconnect()},[l,r,t,u]);let b=(0,o.useCallback)(()=>{!t&&r&&e()},[e,t,r]),x=a!==void 0&&c!==void 0;return(0,s.jsxs)(`div`,{className:n.t(`load-more`,g),..._,children:[x&&(0,s.jsxs)(`span`,{className:`load-more-count`,children:[a,` / `,c]}),r?(0,s.jsx)(i.t,{variant:d,color:f,loading:t,onClick:b,className:`load-more-btn`,children:t?m:p}):(0,s.jsx)(`span`,{className:`load-more-done`,children:h}),l&&r&&(0,s.jsx)(`div`,{ref:v,className:`load-more-sentinel`}),x&&(0,s.jsx)(`div`,{className:`load-more-bar`,children:(0,s.jsx)(`div`,{className:`load-more-bar-fill`,style:{width:`${Math.min(a/c*100,100)}%`}})})]})}function m({threshold:e=300,variant:r=`filled`,color:a=`primary`,smooth:c=!0,className:l}){let[u,d]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{function t(){d(window.scrollY>e)}return t(),window.addEventListener(`scroll`,t,{passive:!0}),()=>window.removeEventListener(`scroll`,t)},[e]),(0,s.jsx)(i.t,{variant:r,color:a,shape:`circle`,size:`lg`,iconOnly:!0,onClick:(0,o.useCallback)(()=>{window.scrollTo({top:0,behavior:c?`smooth`:`instant`})},[c]),"aria-label":`Scroll to top`,className:n.t(`scroll-top`,u&&`visible`,l),children:(0,s.jsx)(t.ki,{})})}function h({items:e,layout:t=`group`,orientation:r=`horizontal`,columns:o=4,size:l=`sm`,color:u,variant:d=`ghost`,fullWidth:f=!0,className:p,...m}){let h=e.map(e=>(0,s.jsx)(i.t,{component:e.component,to:e.to,href:e.href,target:e.target,rel:e.rel,onClick:e.onClick,color:e.color??u,variant:e.variant??d,size:l,startIcon:e.icon,badge:e.badge,badgeColor:e.badgeColor,badgePulsing:e.badgePulsing,pulsing:e.pulsing,disabled:e.disabled,fullWidth:t===`grid`?!0:f,children:e.label},e.key??e.to??e.href??e.label?.toString()));return t===`grid`?(0,s.jsx)(a.t,{columns:o,className:n.t(`quick-actions`,f&&`full-width`,p),...m,children:h}):(0,s.jsx)(`div`,{className:n.t(`quick-actions`,f&&`full-width`,p),...m,children:(0,s.jsx)(c,{orientation:r,size:l,variant:d,color:u,attached:!1,children:h})})}function g(e,t){return(0,s.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,...t,children:e})}function _(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.2`,fill:`#fff`,stroke:`#dadce0`,strokeWidth:`1.2`}),(0,s.jsx)(`path`,{d:`M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z`,fill:`#4285F4`}),(0,s.jsx)(`path`,{d:`M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z`,fill:`#34A853`}),(0,s.jsx)(`path`,{d:`M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z`,fill:`#FBBC05`}),(0,s.jsx)(`path`,{d:`M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z`,fill:`#EA4335`})]}),e)}function v(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:`2.2`,y:`2.2`,width:`19.6`,height:`19.6`,rx:`6.2`,fill:`#1877F2`}),(0,s.jsx)(`path`,{d:`M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z`,fill:`#fff`})]}),e)}function y(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`path`,{d:`M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z`,fill:`currentColor`}),(0,s.jsx)(`path`,{d:`M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z`,fill:`currentColor`})]}),e)}function b(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:`3.5`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#F25022`}),(0,s.jsx)(`rect`,{x:`12.7`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#7FBA00`}),(0,s.jsx)(`rect`,{x:`3.5`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#00A4EF`}),(0,s.jsx)(`rect`,{x:`12.7`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#FFB900`})]}),e)}function x(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.1`,fill:`#fff`}),(0,s.jsx)(`path`,{d:`M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z`,fill:`#E60023`})]}),e)}function S(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:`2.4`,y:`2.4`,width:`19.2`,height:`19.2`,rx:`4.8`,fill:`#fff`}),(0,s.jsx)(`path`,{d:`M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z`,fill:`#0A66C2`})]}),e)}var C={google:{label:`Sign in with Google`,iconLabel:`Google`,mode:`google`,Icon:_},facebook:{label:`Sign in with Facebook`,iconLabel:`Facebook`,mode:`outline`,Icon:v},apple:{label:`Sign in with Apple`,iconLabel:`Apple`,mode:`brand`,Icon:y},microsoft:{label:`Sign in with Microsoft`,iconLabel:`Microsoft`,mode:`brand`,Icon:b},pinterest:{label:`Sign in with Pinterest`,iconLabel:`Pinterest`,mode:`brand`,Icon:x},linkedin:{label:`Sign in with LinkedIn`,iconLabel:`LinkedIn`,mode:`brand`,Icon:S}},w=(0,o.forwardRef)(function({platform:t=`google`,variant:a=`outline`,size:o=`md`,iconOnly:c=!1,iconShape:l=`circle`,hidden:u,fullWidth:d=!1,loading:f=!1,active:p=!1,pulsing:m=!1,clickEffect:h=`ripple`,rippleColor:g,className:_,style:v,children:y,disabled:b=!1,type:x=`button`,onPointerDown:S,onKeyDown:w,"aria-label":T,...E},D){let O=C[t],k=O.Icon,A=y??O.label,j=T??(c?O.iconLabel:void 0),M=O.mode===`google`?a:O.mode,N=b||f,{effectClassName:P,effectLayer:F,handlePointerDown:I,triggerEffect:L}=r.t({effect:h,disabled:N,centered:c,color:g});return(0,s.jsxs)(`button`,{ref:D,type:x,className:n.t(`social-button-root`,t,M,o,d&&`full-width`,c&&`icon-only`,c&&`icon-shape-${l}`,f&&`loading`,p&&`active`,m&&`pulsing`,N&&`disabled`,P,_),style:v,disabled:N,"aria-busy":f||void 0,"aria-label":j,onPointerDown:e=>{I(e),S?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&L(e.currentTarget),w?.(e)},...e.r(u),...E,children:[F,f&&(0,s.jsx)(i.r,{size:`sm`,color:`inherit`,className:`social-button-spinner`,"aria-hidden":`true`}),(0,s.jsx)(`span`,{className:`social-button-brand`,"aria-hidden":`true`,children:(0,s.jsx)(k,{className:`social-button-mark`})}),!c&&(0,s.jsx)(`span`,{className:`social-button-label`,children:A})]})});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return w}});
|
|
2
|
-
//# sourceMappingURL=controls-
|
|
1
|
+
const e=require(`./theme-DsTDooyX.cjs`),t=require(`./icons-qCoE70hn.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./useInteractionEffect-Bo8285cg.cjs`),i=require(`./MButton-DFRHWHzh.cjs`),a=require(`./MSimpleGrid-CyLf-9R2.cjs`);require(`./core-DAox0BHy.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`);var c=(0,o.forwardRef)(function({orientation:e=`horizontal`,variant:t,size:r,color:a,attached:c=!0,className:l,children:u,...d},f){let p=(0,o.useMemo)(()=>({variant:t,size:r,color:a}),[t,r,a]);return(0,s.jsx)(i.i.Provider,{value:p,children:(0,s.jsx)(`div`,{ref:f,role:`group`,className:n.t(`button-group`,e,c&&`attached`,l),...d,children:u})})}),l=(0,o.createContext)(null);function u(){return(0,o.useContext)(l)}var d=(0,o.forwardRef)(function({checked:e,defaultChecked:t,name:i,id:a,value:c,disabled:l=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,onChange:h,clickEffect:g=`ripple`,rippleColor:_,className:v,style:y},b){let x=u(),S=x?.name??i,C=x?.disabled??l,w=x?.size??d,T=x?.color??f,E=x?x.value===c:e,{effectClassName:D,effectLayer:O,handlePointerDown:k,triggerEffect:A}=r.t({effect:g,disabled:C,centered:!0,color:_}),j=(0,o.useCallback)(e=>{h?.(e),x?.onChange&&c&&x.onChange(c)},[h,x,c]);return(0,s.jsxs)(`label`,{className:n.t(`radio`,w,m===`left`&&`label-left`,C&&`disabled`,v),style:y,children:[(0,s.jsxs)(`span`,{className:n.t(`circle`,`color-${T}`,D),onPointerDown:k,children:[O,(0,s.jsx)(`input`,{ref:b,type:`radio`,name:S,id:a,value:c,checked:E,defaultChecked:x?void 0:t,disabled:C,onChange:j,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&A(e.currentTarget.parentElement)},className:`input`})]}),p&&(0,s.jsx)(`span`,{className:`label-text`,children:p})]})});function f({name:e,value:t,defaultValue:r,onChange:i,direction:a=`vertical`,children:c,disabled:u=!1,size:d=`md`,color:f=`primary`,error:p=!1,errorText:m,label:h,className:g,style:_}){let[v,y]=(0,o.useState)(r),b=t===void 0?v:t,x=(0,o.useCallback)(e=>{t===void 0&&y(e),i?.(e)},[i,t]),S=(0,o.useMemo)(()=>({name:e,value:b,disabled:u,size:d,color:f,onChange:x}),[e,b,u,d,f,x]);return(0,s.jsx)(l.Provider,{value:S,children:(0,s.jsxs)(`fieldset`,{className:n.t(`radio-group`,a,g),style:_,role:`radiogroup`,children:[h&&(0,s.jsx)(`legend`,{className:n.t(`label`,p&&`error`),children:h}),c,m&&(0,s.jsx)(`span`,{className:`field-error`,role:`alert`,children:m})]})})}function p({onLoadMore:e,loading:t=!1,hasMore:r=!0,loaded:a,total:c,auto:l=!1,autoThreshold:u=100,variant:d=`outlined`,color:f=`primary`,label:p=`Load more`,loadingLabel:m=`Loading...`,doneLabel:h=`All items loaded`,className:g,..._}){let v=(0,o.useRef)(null),y=(0,o.useRef)(e);y.current=e,(0,o.useEffect)(()=>{if(!l||!r||t)return;let e=v.current;if(!e)return;let n=new IntersectionObserver(e=>{e[0].isIntersecting&&y.current()},{rootMargin:`${u}px`});return n.observe(e),()=>n.disconnect()},[l,r,t,u]);let b=(0,o.useCallback)(()=>{!t&&r&&e()},[e,t,r]),x=a!==void 0&&c!==void 0;return(0,s.jsxs)(`div`,{className:n.t(`load-more`,g),..._,children:[x&&(0,s.jsxs)(`span`,{className:`load-more-count`,children:[a,` / `,c]}),r?(0,s.jsx)(i.t,{variant:d,color:f,loading:t,onClick:b,className:`load-more-btn`,children:t?m:p}):(0,s.jsx)(`span`,{className:`load-more-done`,children:h}),l&&r&&(0,s.jsx)(`div`,{ref:v,className:`load-more-sentinel`}),x&&(0,s.jsx)(`div`,{className:`load-more-bar`,children:(0,s.jsx)(`div`,{className:`load-more-bar-fill`,style:{width:`${Math.min(a/c*100,100)}%`}})})]})}function m({threshold:e=300,variant:r=`filled`,color:a=`primary`,smooth:c=!0,className:l}){let[u,d]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{function t(){d(window.scrollY>e)}return t(),window.addEventListener(`scroll`,t,{passive:!0}),()=>window.removeEventListener(`scroll`,t)},[e]),(0,s.jsx)(i.t,{variant:r,color:a,shape:`circle`,size:`lg`,iconOnly:!0,onClick:(0,o.useCallback)(()=>{window.scrollTo({top:0,behavior:c?`smooth`:`instant`})},[c]),"aria-label":`Scroll to top`,className:n.t(`scroll-top`,u&&`visible`,l),children:(0,s.jsx)(t.ki,{})})}function h({items:e,layout:t=`group`,orientation:r=`horizontal`,columns:o=4,size:l=`sm`,color:u,variant:d=`ghost`,fullWidth:f=!0,className:p,...m}){let h=e.map(e=>(0,s.jsx)(i.t,{component:e.component,to:e.to,href:e.href,target:e.target,rel:e.rel,onClick:e.onClick,color:e.color??u,variant:e.variant??d,size:l,startIcon:e.icon,badge:e.badge,badgeColor:e.badgeColor,badgePulsing:e.badgePulsing,pulsing:e.pulsing,disabled:e.disabled,fullWidth:t===`grid`?!0:f,children:e.label},e.key??e.to??e.href??e.label?.toString()));return t===`grid`?(0,s.jsx)(a.t,{columns:o,className:n.t(`quick-actions`,f&&`full-width`,p),...m,children:h}):(0,s.jsx)(`div`,{className:n.t(`quick-actions`,f&&`full-width`,p),...m,children:(0,s.jsx)(c,{orientation:r,size:l,variant:d,color:u,attached:!1,children:h})})}function g(e,t){return(0,s.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,...t,children:e})}function _(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.2`,fill:`#fff`,stroke:`#dadce0`,strokeWidth:`1.2`}),(0,s.jsx)(`path`,{d:`M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z`,fill:`#4285F4`}),(0,s.jsx)(`path`,{d:`M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z`,fill:`#34A853`}),(0,s.jsx)(`path`,{d:`M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z`,fill:`#FBBC05`}),(0,s.jsx)(`path`,{d:`M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z`,fill:`#EA4335`})]}),e)}function v(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:`2.2`,y:`2.2`,width:`19.6`,height:`19.6`,rx:`6.2`,fill:`#1877F2`}),(0,s.jsx)(`path`,{d:`M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z`,fill:`#fff`})]}),e)}function y(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`path`,{d:`M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z`,fill:`currentColor`}),(0,s.jsx)(`path`,{d:`M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z`,fill:`currentColor`})]}),e)}function b(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:`3.5`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#F25022`}),(0,s.jsx)(`rect`,{x:`12.7`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#7FBA00`}),(0,s.jsx)(`rect`,{x:`3.5`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#00A4EF`}),(0,s.jsx)(`rect`,{x:`12.7`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#FFB900`})]}),e)}function x(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.1`,fill:`#fff`}),(0,s.jsx)(`path`,{d:`M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z`,fill:`#E60023`})]}),e)}function S(e){return g((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`rect`,{x:`2.4`,y:`2.4`,width:`19.2`,height:`19.2`,rx:`4.8`,fill:`#fff`}),(0,s.jsx)(`path`,{d:`M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z`,fill:`#0A66C2`})]}),e)}var C={google:{label:`Sign in with Google`,iconLabel:`Google`,mode:`google`,Icon:_},facebook:{label:`Sign in with Facebook`,iconLabel:`Facebook`,mode:`outline`,Icon:v},apple:{label:`Sign in with Apple`,iconLabel:`Apple`,mode:`brand`,Icon:y},microsoft:{label:`Sign in with Microsoft`,iconLabel:`Microsoft`,mode:`brand`,Icon:b},pinterest:{label:`Sign in with Pinterest`,iconLabel:`Pinterest`,mode:`brand`,Icon:x},linkedin:{label:`Sign in with LinkedIn`,iconLabel:`LinkedIn`,mode:`brand`,Icon:S}},w=(0,o.forwardRef)(function({platform:t=`google`,variant:a=`outline`,size:o=`md`,iconOnly:c=!1,iconShape:l=`circle`,hidden:u,fullWidth:d=!1,loading:f=!1,active:p=!1,pulsing:m=!1,clickEffect:h=`ripple`,rippleColor:g,className:_,style:v,children:y,disabled:b=!1,type:x=`button`,onPointerDown:S,onKeyDown:w,"aria-label":T,...E},D){let O=C[t],k=O.Icon,A=y??O.label,j=T??(c?O.iconLabel:void 0),M=O.mode===`google`?a:O.mode,N=b||f,{effectClassName:P,effectLayer:F,handlePointerDown:I,triggerEffect:L}=r.t({effect:h,disabled:N,centered:c,color:g});return(0,s.jsxs)(`button`,{ref:D,type:x,className:n.t(`social-button-root`,t,M,o,d&&`full-width`,c&&`icon-only`,c&&`icon-shape-${l}`,f&&`loading`,p&&`active`,m&&`pulsing`,N&&`disabled`,P,_),style:v,disabled:N,"aria-busy":f||void 0,"aria-label":j,onPointerDown:e=>{I(e),S?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&L(e.currentTarget),w?.(e)},...e.r(u),...E,children:[F,f&&(0,s.jsx)(i.r,{size:`sm`,color:`inherit`,className:`social-button-spinner`,"aria-hidden":`true`}),(0,s.jsx)(`span`,{className:`social-button-brand`,"aria-hidden":`true`,children:(0,s.jsx)(k,{className:`social-button-mark`})}),!c&&(0,s.jsx)(`span`,{className:`social-button-label`,children:A})]})});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return w}});
|
|
2
|
+
//# sourceMappingURL=controls-CYQxPd4U.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls-BfV0vxeJ.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MQuickActions/MQuickActions.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div className=\"load-more-bar-fill\" style={{width: `${Math.min((loaded / total) * 100, 100)}%`}} />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {MQuickActionsProps} from './MQuickActions.types'\nimport {MButton} from '../MButton'\nimport {MButtonGroup} from '../MButtonGroup'\nimport {MSimpleGrid} from '../../layout'\nimport {cn} from '../../../utils/cn'\nimport './MQuickActions.css'\n\nexport function MQuickActions({\n items,\n layout = 'group',\n orientation = 'horizontal',\n columns = 4,\n size = 'sm',\n color,\n variant = 'ghost',\n fullWidth = true,\n className,\n ...rest\n}: MQuickActionsProps) {\n const buttons = items.map((item) => (\n <MButton\n key={item.key ?? item.to ?? item.href ?? item.label?.toString()}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onClick={item.onClick}\n color={item.color ?? color}\n variant={item.variant ?? variant}\n size={size}\n startIcon={item.icon}\n badge={item.badge}\n badgeColor={item.badgeColor}\n badgePulsing={item.badgePulsing}\n pulsing={item.pulsing}\n disabled={item.disabled}\n fullWidth={layout === 'grid' ? true : fullWidth}\n >\n {item.label}\n </MButton>\n ))\n\n if (layout === 'grid') {\n return (\n <MSimpleGrid\n columns={columns}\n className={cn('quick-actions', fullWidth && 'full-width', className)}\n {...rest}\n >\n {buttons}\n </MSimpleGrid>\n )\n }\n\n return (\n <div className={cn('quick-actions', fullWidth && 'full-width', className)} {...rest}>\n <MButtonGroup orientation={orientation} size={size} variant={variant} color={color} attached={false}>\n {buttons}\n </MButtonGroup>\n </div>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n hidden,\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"2TAOA,IAAa,GAAA,EAAA,EAAA,YAA6D,SACtE,CAAC,cAAc,aAAc,UAAS,OAAM,QAAO,WAAW,GAAM,YAAW,WAAU,GAAG,GAC5F,EACF,CACE,IAAM,GAAA,EAAA,EAAA,cAA+C,CAAC,UAAS,OAAM,QAAM,EAAG,CAAC,EAAS,EAAM,EAAM,CAAC,CAErG,OACI,EAAA,EAAA,KAAC,EAAA,EAAmB,SAApB,CAA6B,MAAO,YAChC,EAAA,EAAA,KAAC,MAAD,CACS,MACL,KAAK,QACL,UAAW,EAAA,EAAG,eAAgB,EAAa,GAAY,WAAY,EAAU,CAC7E,GAAI,EAEH,WACC,CAAA,CACoB,CAAA,EAEpC,CCtBW,GAAA,EAAA,EAAA,eAA6D,KAAK,CAG/E,SAAgB,GAAgD,CAC5D,OAAA,EAAA,EAAA,YAAkB,EAAa,CCEnC,IAAa,GAAA,EAAA,EAAA,YAAmD,SAC5D,CACI,UACA,iBACA,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,EAAQ,GAAe,CAEvB,EAAe,GAAO,MAAQ,EAC9B,EAAmB,GAAO,UAAY,EACtC,EAAe,GAAO,MAAQ,EAC9B,EAAgB,GAAO,OAAS,EAChC,EAAkB,EAAQ,EAAM,QAAU,EAAQ,EAClD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,SAAU,EACV,SAAU,GACV,MAAO,EACV,CAAC,CAGI,GAAA,EAAA,EAAA,aACD,GAA+C,CAC5C,IAAW,EAAM,CACb,GAAO,UAAY,GACnB,EAAM,SAAS,EAAM,EAG7B,CAAC,EAAU,EAAO,EAAM,CAC3B,CAED,OACI,EAAA,EAAA,MAAC,QAAD,CACI,UAAW,EAAA,EACP,QACA,EACA,IAAkB,QAAU,aAC5B,GAAoB,WACpB,EACH,CACM,iBARX,EAUI,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,EAAG,SAAU,SAAS,IAAiB,EAAgB,CAAE,cAAe,WAAzF,CACK,GACD,EAAA,EAAA,KAAC,QAAD,CACS,MACL,KAAK,QACL,KAAM,EACF,KACG,QACP,QAAS,EACT,eAAiB,EAAyB,IAAA,GAAjB,EACzB,SAAU,EACV,SAAU,EACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACZ,CAAA,CACC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAa,CAAA,CACjD,IAEd,CCjFF,SAAgB,EAAY,CACxB,OACA,QACA,eACA,WACA,YAAY,WACZ,WACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QAAQ,GACR,YACA,QACA,YACA,SACiB,CACjB,GAAM,CAAC,EAAe,IAAA,EAAA,EAAA,UAA6B,EAAa,CAC1D,EAAe,IAAU,IAAA,GAAoB,EAAR,EAGrC,GAAA,EAAA,EAAA,aACD,GAAgB,CACT,IAAU,IAAA,IACV,EAAiB,EAAI,CAEzB,IAAW,EAAI,EAEnB,CAAC,EAAU,EAAM,CACpB,CAGK,GAAA,EAAA,EAAA,cACK,CAAC,OAAM,MAAO,EAAc,WAAU,OAAM,QAAO,SAAU,EAAa,EACjF,CAAC,EAAM,EAAc,EAAU,EAAM,EAAO,EAAa,CAC5D,CAED,OACI,EAAA,EAAA,KAAC,EAAa,SAAd,CAAuB,MAAO,YAC1B,EAAA,EAAA,MAAC,WAAD,CAAU,UAAW,EAAA,EAAG,cAAe,EAAW,EAAU,CAAS,QAAO,KAAK,sBAAjF,CACK,IAAS,EAAA,EAAA,KAAC,SAAD,CAAQ,UAAW,EAAA,EAAG,QAAS,GAAS,QAAQ,UAAG,EAAe,CAAA,CAC3E,EACA,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAEJ,GACS,CAAA,CChDhC,SAAgB,EAAU,CACtB,aACA,UAAU,GACV,UAAU,GACV,SACA,QACA,OAAO,GACP,gBAAgB,IAChB,UAAU,WACV,QAAQ,UACR,QAAQ,YACR,eAAe,aACf,YAAY,mBACZ,YACA,GAAG,GACY,CACf,IAAM,GAAA,EAAA,EAAA,QAAqC,KAAK,CAC1C,GAAA,EAAA,EAAA,QAAqB,EAAW,CACtC,EAAY,QAAU,GAEtB,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,GAAQ,CAAC,GAAW,EAAS,OAElC,IAAM,EAAW,EAAY,QAC7B,GAAI,CAAC,EAAU,OAEf,IAAM,EAAW,IAAI,qBAChB,GAAY,CACL,EAAQ,GAAG,gBACX,EAAY,SAAS,EAG7B,CAAC,WAAY,GAAG,EAAc,IAAI,CACrC,CAGD,OADA,EAAS,QAAQ,EAAS,KACb,EAAS,YAAY,EACnC,CAAC,EAAM,EAAS,EAAS,EAAc,CAAC,CAE3C,IAAM,GAAA,EAAA,EAAA,iBAAgC,CAC9B,CAAC,GAAW,GAAS,GAAY,EACtC,CAAC,EAAY,EAAS,EAAQ,CAAC,CAE5B,EAAY,IAAW,IAAA,IAAa,IAAU,IAAA,GAEpD,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,YAAa,EAAU,CAAE,GAAI,WAAhD,CACK,IACG,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,2BAAhB,CACK,EAAO,MAAI,EACT,GAGV,GACG,EAAA,EAAA,KAAC,EAAA,EAAD,CACa,UACF,QACE,UACT,QAAS,EACT,UAAU,yBAET,EAAU,EAAe,EACpB,CAAA,EAEV,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,0BAAkB,EAAiB,CAAA,CAGtD,GAAQ,IAAW,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAa,UAAU,qBAAuB,CAAA,CAE3E,IACG,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,0BACX,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBAAqB,MAAO,CAAC,MAAO,GAAG,KAAK,IAAK,EAAS,EAAS,IAAK,IAAI,CAAC,GAAG,CAAI,CAAA,CACjG,CAAA,CAER,GCzEd,SAAgB,EAAW,CACvB,YAAY,IACZ,UAAU,SACV,QAAQ,UACR,SAAS,GACT,aACgB,CAChB,GAAM,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CAe7C,OAbA,EAAA,EAAA,eAAgB,CACZ,SAAS,GAAW,CAChB,EAAW,OAAO,QAAU,EAAU,CAI1C,OAFA,GAAU,CACV,OAAO,iBAAiB,SAAU,EAAU,CAAC,QAAS,GAAK,CAAC,KAC/C,OAAO,oBAAoB,SAAU,EAAS,EAC5D,CAAC,EAAU,CAAC,EAOX,EAAA,EAAA,KAAC,EAAA,EAAD,CACa,UACF,QACP,MAAM,SACN,KAAK,KACL,SAAA,GACA,SAAA,EAAA,EAAA,iBAX8B,CAClC,OAAO,SAAS,CAAC,IAAK,EAAG,SAAU,EAAS,SAAW,UAAU,CAAC,EACnE,CAAC,EAAO,CAAC,CAUJ,aAAW,gBACX,UAAW,EAAA,EAAG,aAAc,GAAW,UAAW,EAAU,WAE5D,EAAA,EAAA,KAAC,EAAA,GAAD,EAAgB,CAAA,CACV,CAAA,CClClB,SAAgB,EAAc,CAC1B,QACA,SAAS,QACT,cAAc,aACd,UAAU,EACV,OAAO,KACP,QACA,UAAU,QACV,YAAY,GACZ,YACA,GAAG,GACgB,CACnB,IAAM,EAAU,EAAM,IAAK,IACvB,EAAA,EAAA,KAAC,EAAA,EAAD,CAEI,UAAW,EAAK,UAChB,GAAI,EAAK,GACT,KAAM,EAAK,KACX,OAAQ,EAAK,OACb,IAAK,EAAK,IACV,QAAS,EAAK,QACd,MAAO,EAAK,OAAS,EACrB,QAAS,EAAK,SAAW,EACnB,OACN,UAAW,EAAK,KAChB,MAAO,EAAK,MACZ,WAAY,EAAK,WACjB,aAAc,EAAK,aACnB,QAAS,EAAK,QACd,SAAU,EAAK,SACf,UAAW,IAAW,OAAS,GAAO,WAErC,EAAK,MACA,CAnBD,EAAK,KAAO,EAAK,IAAM,EAAK,MAAQ,EAAK,OAAO,UAAU,CAmBzD,CACZ,CAcF,OAZI,IAAW,QAEP,EAAA,EAAA,KAAC,EAAA,EAAD,CACa,UACT,UAAW,EAAA,EAAG,gBAAiB,GAAa,aAAc,EAAU,CACpE,GAAI,WAEH,EACS,CAAA,EAKlB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,gBAAiB,GAAa,aAAc,EAAU,CAAE,GAAI,YAC3E,EAAA,EAAA,KAAC,EAAD,CAA2B,cAAmB,OAAe,UAAgB,QAAO,SAAU,YACzF,EACU,CAAA,CACb,CAAA,CCxDd,SAAS,EAAW,EAAqB,EAAwB,CAC7D,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,cAAY,OAAO,GAAI,EAC1F,WACC,CAAA,CAId,SAAgB,EAAiB,EAAwB,CACrD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,SAAD,CAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,OAAO,KAAK,OAAO,OAAO,UAAU,YAAY,MAAQ,CAAA,EAClF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,6HACF,KAAK,UACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,0JACF,KAAK,UACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,qHACF,KAAK,UACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,qIACF,KAAK,UACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAmB,EAAwB,CACvD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO,GAAG,MAAM,KAAK,UAAY,CAAA,EAC3E,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,qJACF,KAAK,OACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAgB,EAAwB,CACpD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,kUACF,KAAK,eACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,+GACF,KAAK,eACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAoB,EAAwB,CACxD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,EACzE,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,OAAO,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,EAC1E,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,OAAO,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,EAC1E,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,OAAO,EAAE,OAAO,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,CAC5E,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAoB,EAAwB,CACxD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,SAAD,CAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,OAAO,KAAK,OAAS,CAAA,EAC/C,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,weACF,KAAK,UACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAmB,EAAwB,CACvD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO,GAAG,MAAM,KAAK,OAAS,CAAA,EACxE,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,gQACF,KAAK,UACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CCrFL,IAAM,EAAqB,CACvB,OAAQ,CACJ,MAAO,sBACP,UAAW,SACX,KAAM,SACN,KAAM,EACT,CACD,SAAU,CACN,MAAO,wBACP,UAAW,WACX,KAAM,UACN,KAAM,EACT,CACD,MAAO,CACH,MAAO,qBACP,UAAW,QACX,KAAM,QACN,KAAM,EACT,CACD,UAAW,CACP,MAAO,yBACP,UAAW,YACX,KAAM,QACN,KAAM,EACT,CACD,UAAW,CACP,MAAO,yBACP,UAAW,YACX,KAAM,QACN,KAAM,EACT,CACD,SAAU,CACN,MAAO,wBACP,UAAW,WACX,KAAM,QACN,KAAM,EACT,CACJ,CAEY,GAAA,EAAA,EAAA,YAAkE,SAC3E,CACI,WAAW,SACX,UAAU,UACV,OAAO,KACP,WAAW,GACX,YAAY,SACZ,SACA,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,cAAc,SACd,cACA,YACA,QACA,WACA,WAAW,GACX,OAAO,SACP,gBACA,YACA,aAAc,EACd,GAAG,GAEP,EACF,CACE,IAAM,EAAS,EAAmB,GAC5B,EAAO,EAAO,KACd,EAAQ,GAAY,EAAO,MAC3B,EAAoB,IAAc,EAAW,EAAO,UAAY,IAAA,IAChE,EAAkB,EAAO,OAAS,SAAW,EAAU,EAAO,KAC9D,EAAa,GAAY,EACzB,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAwC,CAC7G,OAAQ,EACR,SAAU,EACV,SAAU,EACV,MAAO,EACV,CAAC,CAEF,OACI,EAAA,EAAA,MAAC,SAAD,CACS,MACC,OACN,UAAW,EAAA,EACP,qBACA,EACA,EACA,EACA,GAAa,aACb,GAAY,YACZ,GAAY,cAAc,IAC1B,GAAW,UACX,GAAU,SACV,GAAW,UACX,GAAc,WACd,EACA,EACH,CACM,QACP,SAAU,EACV,YAAW,GAAW,IAAA,GACtB,aAAY,EACZ,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,CAGtC,IAAY,EAAM,EAEtB,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlCR,CAoCK,EACA,IAAW,EAAA,EAAA,KAAC,EAAA,EAAD,CAAU,KAAK,KAAK,MAAM,UAAU,UAAU,wBAAwB,cAAY,OAAS,CAAA,EACvG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAsB,cAAY,iBAC9C,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,CAAA,CACN,CAAC,IAAY,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,+BAAuB,EAAa,CAAA,CAC7D,IAEf"}
|
|
1
|
+
{"version":3,"file":"controls-CYQxPd4U.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MQuickActions/MQuickActions.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div className=\"load-more-bar-fill\" style={{width: `${Math.min((loaded / total) * 100, 100)}%`}} />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {MQuickActionsProps} from './MQuickActions.types'\nimport {MButton} from '../MButton'\nimport {MButtonGroup} from '../MButtonGroup'\nimport {MSimpleGrid} from '../../layout'\nimport {cn} from '../../../utils/cn'\nimport './MQuickActions.css'\n\nexport function MQuickActions({\n items,\n layout = 'group',\n orientation = 'horizontal',\n columns = 4,\n size = 'sm',\n color,\n variant = 'ghost',\n fullWidth = true,\n className,\n ...rest\n}: MQuickActionsProps) {\n const buttons = items.map((item) => (\n <MButton\n key={item.key ?? item.to ?? item.href ?? item.label?.toString()}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onClick={item.onClick}\n color={item.color ?? color}\n variant={item.variant ?? variant}\n size={size}\n startIcon={item.icon}\n badge={item.badge}\n badgeColor={item.badgeColor}\n badgePulsing={item.badgePulsing}\n pulsing={item.pulsing}\n disabled={item.disabled}\n fullWidth={layout === 'grid' ? true : fullWidth}\n >\n {item.label}\n </MButton>\n ))\n\n if (layout === 'grid') {\n return (\n <MSimpleGrid\n columns={columns}\n className={cn('quick-actions', fullWidth && 'full-width', className)}\n {...rest}\n >\n {buttons}\n </MSimpleGrid>\n )\n }\n\n return (\n <div className={cn('quick-actions', fullWidth && 'full-width', className)} {...rest}>\n <MButtonGroup orientation={orientation} size={size} variant={variant} color={color} attached={false}>\n {buttons}\n </MButtonGroup>\n </div>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n hidden,\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as e } from "./theme-
|
|
1
|
+
import { r as e } from "./theme-DAOU1aPs.js";
|
|
2
2
|
import { ki as t } from "./icons-CfpYxnfg.js";
|
|
3
3
|
import { t as n } from "./cn-YER3QsV1.js";
|
|
4
4
|
import { t as r } from "./useInteractionEffect-DtpbVd77.js";
|
|
5
|
-
import { i, r as a, t as o } from "./MButton-
|
|
5
|
+
import { i, r as a, t as o } from "./MButton-C1pnL4_j.js";
|
|
6
6
|
import { t as s } from "./MSimpleGrid-Bojj4xKH.js";
|
|
7
7
|
import { createContext as c, forwardRef as l, useCallback as u, useContext as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
|
|
8
8
|
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
@@ -449,4 +449,4 @@ var P = {
|
|
|
449
449
|
//#endregion
|
|
450
450
|
export { C as a, w as i, E as n, S as o, T as r, y as s, F as t };
|
|
451
451
|
|
|
452
|
-
//# sourceMappingURL=controls-
|
|
452
|
+
//# sourceMappingURL=controls-CcbEqqWo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls-BczTk73I.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MQuickActions/MQuickActions.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div className=\"load-more-bar-fill\" style={{width: `${Math.min((loaded / total) * 100, 100)}%`}} />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {MQuickActionsProps} from './MQuickActions.types'\nimport {MButton} from '../MButton'\nimport {MButtonGroup} from '../MButtonGroup'\nimport {MSimpleGrid} from '../../layout'\nimport {cn} from '../../../utils/cn'\nimport './MQuickActions.css'\n\nexport function MQuickActions({\n items,\n layout = 'group',\n orientation = 'horizontal',\n columns = 4,\n size = 'sm',\n color,\n variant = 'ghost',\n fullWidth = true,\n className,\n ...rest\n}: MQuickActionsProps) {\n const buttons = items.map((item) => (\n <MButton\n key={item.key ?? item.to ?? item.href ?? item.label?.toString()}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onClick={item.onClick}\n color={item.color ?? color}\n variant={item.variant ?? variant}\n size={size}\n startIcon={item.icon}\n badge={item.badge}\n badgeColor={item.badgeColor}\n badgePulsing={item.badgePulsing}\n pulsing={item.pulsing}\n disabled={item.disabled}\n fullWidth={layout === 'grid' ? true : fullWidth}\n >\n {item.label}\n </MButton>\n ))\n\n if (layout === 'grid') {\n return (\n <MSimpleGrid\n columns={columns}\n className={cn('quick-actions', fullWidth && 'full-width', className)}\n {...rest}\n >\n {buttons}\n </MSimpleGrid>\n )\n }\n\n return (\n <div className={cn('quick-actions', fullWidth && 'full-width', className)} {...rest}>\n <MButtonGroup orientation={orientation} size={size} variant={variant} color={color} attached={false}>\n {buttons}\n </MButtonGroup>\n </div>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n hidden,\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controls-CcbEqqWo.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MQuickActions/MQuickActions.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div className=\"load-more-bar-fill\" style={{width: `${Math.min((loaded / total) * 100, 100)}%`}} />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {MQuickActionsProps} from './MQuickActions.types'\nimport {MButton} from '../MButton'\nimport {MButtonGroup} from '../MButtonGroup'\nimport {MSimpleGrid} from '../../layout'\nimport {cn} from '../../../utils/cn'\nimport './MQuickActions.css'\n\nexport function MQuickActions({\n items,\n layout = 'group',\n orientation = 'horizontal',\n columns = 4,\n size = 'sm',\n color,\n variant = 'ghost',\n fullWidth = true,\n className,\n ...rest\n}: MQuickActionsProps) {\n const buttons = items.map((item) => (\n <MButton\n key={item.key ?? item.to ?? item.href ?? item.label?.toString()}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onClick={item.onClick}\n color={item.color ?? color}\n variant={item.variant ?? variant}\n size={size}\n startIcon={item.icon}\n badge={item.badge}\n badgeColor={item.badgeColor}\n badgePulsing={item.badgePulsing}\n pulsing={item.pulsing}\n disabled={item.disabled}\n fullWidth={layout === 'grid' ? true : fullWidth}\n >\n {item.label}\n </MButton>\n ))\n\n if (layout === 'grid') {\n return (\n <MSimpleGrid\n columns={columns}\n className={cn('quick-actions', fullWidth && 'full-width', className)}\n {...rest}\n >\n {buttons}\n </MSimpleGrid>\n )\n }\n\n return (\n <div className={cn('quick-actions', fullWidth && 'full-width', className)} {...rest}>\n <MButtonGroup orientation={orientation} size={size} variant={variant} color={color} attached={false}>\n {buttons}\n </MButtonGroup>\n </div>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n hidden,\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"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"}
|
package/dist/controls.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(`./MButton-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MButton-DFRHWHzh.cjs`),t=require(`./controls-CYQxPd4U.cjs`),n=require(`./MCheckbox-Dn3p_9-1.cjs`),r=require(`./MToggle-BVJm5Bdk.cjs`),i=require(`./MSlider-qCGmD4UA.cjs`);exports.MButton=e.t,exports.MButtonGroup=t.s,exports.MCheckbox=n.t,exports.MLoadMore=t.i,exports.MQuickActions=t.n,exports.MRadio=t.o,exports.MRadioGroup=t.a,exports.MScrollTop=t.r,exports.MSlider=i.t,exports.MSocialButton=t.t,exports.MToggle=r.t;
|
package/dist/controls.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { t as e } from "./MButton-
|
|
4
|
-
import { a as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./controls-
|
|
3
|
+
import { t as e } from "./MButton-C1pnL4_j.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 "./controls-CcbEqqWo.js";
|
|
5
5
|
import { t as c } from "./MCheckbox-B7SpcD4H.js";
|
|
6
6
|
import { t as l } from "./MToggle-B6emKoKq.js";
|
|
7
7
|
import { t as u } from "./MSlider-CqrusKJQ.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./theme-DsTDooyX.cjs`),t=require(`./icons-qCoE70hn.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./MPortal-BIxPtFYd.cjs`),i=require(`./MPopover-CxxaY9kr.cjs`),a=require(`./MStack-w8XcuIJK.cjs`),o=require(`./MText-BHbI7KJO.cjs`),s=require(`./MHeading-f3hwkW3r.cjs`),c=require(`./MSubText-CIMKPb8o.cjs`),l=require(`./MButton-DFRHWHzh.cjs`),u=require(`./MCheckbox-Dn3p_9-1.cjs`),d=require(`./MSkeleton-CuYA8eN3.cjs`),f=require(`./MModal-eJDG6riB.cjs`),p=require(`./MInputSearch-_7jfFGr1.cjs`),m=require(`./MTooltip-Dq2vYf3G.cjs`),h=require(`./MDropdownMenu-c9U3sEcl.cjs`),g=require(`./locale-Bz2JXxDZ.cjs`),_=require(`./MTimeAgo-DI3DF7bD.cjs`),v=require(`./MAvatarStack-DN79aJo1.cjs`),y=require(`./MAvatar-DzZPRbot.cjs`),b=require(`./MTreeView-Dp9qbqQh.cjs`),x=require(`./frameworkTexts-BLJcGUXz.cjs`),S=require(`./MTabs-DeUn6bIp.cjs`);require(`./core-DAox0BHy.cjs`);let C=require(`react`),w=require(`react/jsx-runtime`);var T=(0,C.createContext)({});function E(){return(0,C.useContext)(T)}function D(e,t){return(0,C.isValidElement)(e)&&!!e.type[t]}function O({variant:e=`inline`,open:i,onToggle:a,unreadCount:o,color:s=`primary`,className:c,children:u,...d}){let f=null,p=null,m=[];C.Children.forEach(u,e=>{if(D(e,`__chatHeader`)){f=e;return}if(D(e,`__chatConversationList`)){p=e;return}m.push(e)});let h=(0,C.useMemo)(()=>({color:s}),[s]),g=(0,w.jsx)(T.Provider,{value:h,children:(0,w.jsxs)(`div`,{className:n.t(`chat`,e,`color-${s}`,e===`floating`&&i&&`open`,c),...d,children:[p&&(0,w.jsx)(`div`,{className:`chat-sidebar`,children:p}),(0,w.jsxs)(`div`,{className:`chat-main`,children:[f,m]})]})});return e===`floating`?(0,w.jsx)(r.t,{children:(0,w.jsxs)(`div`,{className:n.t(`chat-floating-wrapper`,i&&`open`),children:[i&&g,(0,w.jsx)(l.t,{variant:`filled`,color:s,shape:`circle`,size:`lg`,className:`chat-floating-trigger`,onClick:a,"aria-label":i?`Close chat`:`Open chat`,badge:!i&&o?o:void 0,badgeColor:`error`,badgePulsing:!i&&!!o,children:(0,w.jsx)(t.At,{})})]})}):g}function k({bordered:e=!1,className:t,children:r,...i}){return(0,w.jsx)(`div`,{className:n.t(`chat-header`,e&&`bordered`,t),...i,children:r})}k.__chatHeader=!0;function A({status:e}){if(!e)return null;let t=e===`delivered`||e===`read`;return(0,w.jsx)(`span`,{className:n.t(`chat-status`,e===`read`?`chat-status-read`:``),"aria-label":e,children:t?`✓✓`:`✓`})}function j({message:e,showAvatar:t=!0,showTimestamp:r=!0,color:i,className:a,...s}){let{content:l,sender:u,timestamp:d,status:f,isOwn:p,images:m}=e;return(0,w.jsxs)(`div`,{className:n.t(`chat-message`,p&&`own`,i||void 0,a),...s,children:[t&&!p&&(0,w.jsx)(y.t,{src:u.avatar,name:u.name,size:`sm`,color:i,className:`chat-message-avatar`}),(0,w.jsxs)(`div`,{className:`chat-message-content`,children:[!p&&(0,w.jsx)(o.t,{className:`chat-message-sender`,color:`neutral`,children:u.name}),(0,w.jsxs)(`div`,{className:`chat-message-bubble`,children:[l&&(0,w.jsx)(o.t,{children:l}),m&&m.length>0&&(0,w.jsx)(`div`,{className:n.t(`chat-message-images`,m.length>1&&`grid`),children:m.map((e,t)=>(0,w.jsx)(v.n,{src:e,alt:``,fit:`cover`,rounded:!0,className:`chat-message-image`},t))})]}),(0,w.jsxs)(`div`,{className:`chat-message-meta`,children:[p&&(0,w.jsx)(A,{status:f}),r&&(0,w.jsx)(c.t,{className:`chat-message-time`,children:(0,w.jsx)(_.t,{value:d})})]})]})]})}function M({messages:e,onScrollTop:t,loading:r=!1,color:i,className:a,children:o,...s}){let{color:c}=E(),u=i??c,d=(0,C.useRef)(null),f=(0,C.useRef)(!0),p=(0,C.useRef)(0),m=(0,C.useCallback)(()=>{let e=d.current;e&&(e.scrollTop=e.scrollHeight)},[]);return(0,C.useEffect)(()=>{let t=e?.length??0;t>p.current&&f.current&&m(),p.current=t},[e?.length,m]),(0,C.useEffect)(()=>{m()},[m]),(0,w.jsxs)(`div`,{ref:d,className:n.t(`chat-body`,a),onScroll:()=>{let e=d.current;e&&(f.current=e.scrollHeight-e.scrollTop-e.clientHeight<40,e.scrollTop<40&&t&&!r&&t())},...s,children:[r&&(0,w.jsx)(`div`,{className:`chat-body-loader`,children:(0,w.jsx)(l.r,{size:`sm`})}),e?.map(e=>(0,w.jsx)(j,{message:e,color:u},e.id)),o]})}var ee=[{label:`Smileys`,emojis:`😀.😃.😄.😁.😆.😅.🤣.😂.🙂.😊.😇.🥰.😍.🤩.😘.😗.😋.😛.😜.🤪.😝.🤗.🤔.🫡.🤐.🤨.😐.😑.😶.🫠.😏.😒.🙄.😬.😮💨.🤥.😌.😔.😪.🤤.😴.😷.🤒.🤕.🤢.🤮.🤧.🥵.🥶.😵.🤯.🥳.🥸.😎.🤓.🧐`.split(`.`)},{label:`Gestures`,emojis:`👋.🤚.🖐️.✋.🖖.🫱.🫲.👌.🤌.🤏.✌️.🤞.🫰.🤟.🤘.🤙.👈.👉.👆.👇.☝️.👍.👎.✊.👊.🤛.🤜.👏.🙌.🫶.👐.🤝`.split(`.`)},{label:`Hearts`,emojis:[`❤️`,`🧡`,`💛`,`💚`,`💙`,`💜`,`🖤`,`🤍`,`🤎`,`💔`,`❤️🔥`,`❤️🩹`,`💕`,`💞`,`💓`,`💗`,`💖`,`💘`,`💝`,`💟`]},{label:`Objects`,emojis:[`🔥`,`✨`,`🌟`,`💫`,`⚡`,`💥`,`🎉`,`🎊`,`🏆`,`🥇`,`🎯`,`💡`,`📌`,`📎`,`✅`,`❌`,`⭐`,`💬`,`👁️🗨️`,`🔔`]}],te=`image/png,image/jpeg,image/gif,image/webp`;function N({onSend:e,placeholder:r=`Type a message…`,disabled:a=!1,showEmoji:o=!0,showAttach:s=!0,onTyping:c,color:u,className:d,...f}){let{color:p}=E(),m=u??p,[h,g]=(0,C.useState)(``),[_,y]=(0,C.useState)(!1),[b,x]=(0,C.useState)([]),[S,T]=(0,C.useState)([]),[D,O]=(0,C.useState)(!1),k=(0,C.useRef)(null),A=(0,C.useRef)(null),j=(0,C.useRef)(null),M=(0,C.useRef)(!1),N=(0,C.useRef)(void 0),P=(0,C.useCallback)(e=>{let t=e.filter(e=>e.type.startsWith(`image/`));t.length!==0&&(x(e=>[...e,...t]),t.forEach(e=>{let t=URL.createObjectURL(e);T(e=>[...e,t])}))},[]),ne=(0,C.useCallback)(e=>{T(t=>(URL.revokeObjectURL(t[e]),t.filter((t,n)=>n!==e))),x(t=>t.filter((t,n)=>n!==e))},[]);(0,C.useEffect)(()=>()=>S.forEach(e=>URL.revokeObjectURL(e)),[]);let re=(0,C.useCallback)(()=>{let t=h.trim();!t&&b.length===0||a||(e?.(t,b.length>0?b:void 0),g(``),x([]),T(e=>(e.forEach(e=>URL.revokeObjectURL(e)),[])),k.current&&(k.current.style.height=`auto`),M.current&&(M.current=!1,c?.(!1)))},[h,b,a,e,c]),ie=e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),re())},ae=e=>{g(e.target.value),oe(e.target),c&&(M.current||(M.current=!0,c(!0)),clearTimeout(N.current),N.current=setTimeout(()=>{M.current=!1,c(!1)},1500))},oe=e=>{e.style.height=`auto`,e.style.height=Math.min(e.scrollHeight,120)+`px`};(0,C.useEffect)(()=>()=>clearTimeout(N.current),[]);let se=e=>{g(t=>t+e),y(!1),k.current?.focus()},ce=e=>{e.preventDefault(),O(!0)},le=e=>{e.preventDefault(),O(!1)},F=e=>{e.preventDefault(),O(!1),P(Array.from(e.dataTransfer.files))},ue=()=>{let e=j.current?.files;e&&P(Array.from(e)),j.current&&(j.current.value=``)},de=h.trim()||b.length>0;return(0,w.jsxs)(`div`,{className:n.t(`chat-input`,D&&`drag-over`,d),onDragOver:ce,onDragLeave:le,onDrop:F,...f,children:[S.length>0&&(0,w.jsx)(`div`,{className:`chat-input-previews`,children:S.map((e,n)=>(0,w.jsxs)(`div`,{className:`chat-input-preview`,children:[(0,w.jsx)(v.n,{src:e,alt:``,fit:`cover`,rounded:!0,className:`chat-input-preview-img`}),(0,w.jsx)(`button`,{type:`button`,className:`chat-input-preview-remove`,onClick:()=>ne(n),"aria-label":`Remove image`,children:(0,w.jsx)(t.Li,{})})]},n))}),(0,w.jsxs)(`div`,{className:`chat-input-field`,children:[o&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`button`,{ref:A,type:`button`,className:`chat-input-emoji-trigger`,onClick:()=>y(e=>!e),"aria-label":`Emoji`,disabled:a,children:`😊`}),(0,w.jsx)(i.t,{open:_,anchorRef:A,onClose:()=>y(!1),placement:`top-start`,children:(0,w.jsx)(`div`,{className:`chat-emoji-picker`,children:ee.map(e=>(0,w.jsxs)(`div`,{className:`chat-emoji-category`,children:[(0,w.jsx)(`div`,{className:`chat-emoji-category-label`,children:e.label}),(0,w.jsx)(`div`,{className:`chat-emoji-grid`,children:e.emojis.map(e=>(0,w.jsx)(`button`,{type:`button`,className:`chat-emoji-btn`,onClick:()=>se(e),children:e},e))})]},e.label))})})]}),s&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{ref:j,type:`file`,accept:te,multiple:!0,className:`chat-input-file-hidden`,onChange:ue,tabIndex:-1}),(0,w.jsx)(`button`,{type:`button`,className:`chat-input-attach-trigger`,onClick:()=>j.current?.click(),"aria-label":`Attach image`,disabled:a,children:(0,w.jsx)(t.Ei,{color:`inherit`})})]}),(0,w.jsx)(`textarea`,{ref:k,className:`chat-input-textarea`,value:h,onChange:ae,onKeyDown:ie,placeholder:r,disabled:a,rows:1}),(0,w.jsx)(l.t,{variant:`filled`,size:`sm`,color:m??`primary`,iconOnly:!0,shape:`circle`,className:`chat-input-send`,onClick:re,disabled:a||!de,"aria-label":`Send`,children:(0,w.jsx)(t.jt,{})})]})]})}function P({users:e=[],visible:t=!0,className:r,...i}){if(!t||e.length===0)return null;let a=e.length===1?`${e[0].name} is typing`:e.length===2?`${e[0].name} and ${e[1].name} are typing`:`${e[0].name} and ${e.length-1} others are typing`;return(0,w.jsxs)(`div`,{className:n.t(`chat-typing`,r),"aria-label":a,...i,children:[e.length===1&&(0,w.jsx)(y.t,{src:e[0].avatar,name:e[0].name,size:`sm`,className:`chat-typing-avatar`}),(0,w.jsxs)(`div`,{className:`chat-typing-dots`,children:[(0,w.jsx)(`span`,{className:`chat-typing-dot`}),(0,w.jsx)(`span`,{className:`chat-typing-dot`}),(0,w.jsx)(`span`,{className:`chat-typing-dot`})]})]})}function ne({className:e,children:t,...r}){return(0,w.jsx)(`div`,{className:n.t(`chat-conversation-list`,e),...r,children:t})}ne.__chatConversationList=!0;function re({conversation:e,active:t=!1,color:r,onClick:i,className:a,...s}){let{color:l}=E(),u=r??l,{title:f,participants:p,lastMessage:m,unreadCount:h}=e,g=f??p.map(e=>e.name).join(`, `),v=p[0],b=p.some(e=>e.online);return(0,w.jsxs)(`div`,{className:n.t(`chat-conversation-item`,t&&`active`,a),onClick:()=>i?.(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),i?.(e))},...s,children:[(0,w.jsx)(y.t,{src:v?.avatar,name:v?.name,size:`md`,color:u,badge:b,badgeColor:`success`,className:`chat-conversation-avatar`}),(0,w.jsxs)(`div`,{className:`chat-conversation-info`,children:[(0,w.jsxs)(`div`,{className:`chat-conversation-top`,children:[(0,w.jsx)(o.t,{className:`chat-conversation-name`,children:g}),m&&(0,w.jsx)(c.t,{className:`chat-conversation-time`,children:(0,w.jsx)(_.t,{value:m.timestamp})})]}),m&&(0,w.jsxs)(`div`,{className:`chat-conversation-bottom`,children:[(0,w.jsxs)(c.t,{className:`chat-conversation-preview`,children:[m.isOwn?`You: `:``,m.content]}),!!h&&h>0&&(0,w.jsx)(d.s,{color:u??`primary`,size:`sm`,rounded:!0,children:h})]})]})]})}function ie({items:e,color:t=`primary`,strikethrough:r=!0,onChange:i,className:a,...o}){return(0,w.jsx)(`div`,{className:n.t(`task list`,`color-${t}`,a),role:`list`,...o,children:e.map(e=>(0,w.jsxs)(`div`,{className:n.t(`task item`,e.checked&&`checked`,e.disabled&&`disabled`),role:`listitem`,onClick:t=>{e.disabled||t.target.closest(`.checkbox`)||i?.(e.id,!(e.checked??!1))},children:[(0,w.jsx)(u.t,{className:`task control`,checked:e.checked??!1,color:t,size:`sm`,disabled:e.disabled,onChange:t=>i?.(e.id,t.target.checked),clickEffect:`ripple`}),(0,w.jsx)(`span`,{className:n.t(`task label`,e.checked&&r&&`done`),children:e.label})]},e.id))})}var ae=36e5,oe=6e4,se=24*ae;function ce(){return typeof window>`u`?960:Math.max(320,Math.min(1600,window.innerWidth-200))}function le(e){return e instanceof Date?e:new Date(e)}function F(e){if(!e)return null;let t=/^(\d{1,2}):(\d{2})$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}function ue(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function de(e,t){let n=new Date(e);return n.setDate(n.getDate()+t),n}function fe(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function pe(e,t){return new Intl.DateTimeFormat(t,{hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(e)}function me(e,t){return new Intl.DateTimeFormat(t,{weekday:`short`,day:`2-digit`,month:`short`}).format(e)}function I(e,t){return new Intl.DateTimeFormat(t,{weekday:`short`}).format(e)}function L(e,t,n){return`${pe(e,n)} – ${pe(t,n)}`}function he(e,t){return new Intl.DateTimeFormat(t,{weekday:`long`,day:`numeric`,month:`long`,year:`numeric`}).format(e)}function R(e,t){let n=[],r=[],i=new Map(e.map((e,t)=>[e,t]));return e.forEach(e=>{let a=i.get(e)??0,o=t.filter(t=>t.rowId===e).map(e=>({event:e,startMs:le(e.startAt).getTime(),endMs:le(e.endAt).getTime()})).filter(e=>e.endMs>e.startMs).sort((e,t)=>e.startMs-t.startMs);o.forEach((e,t)=>{let r=!1;for(let n=0;n<o.length;n+=1)if(n!==t&&o[n].startMs<e.endMs&&o[n].endMs>e.startMs){r=!0;break}n.push({event:e.event,startMs:e.startMs,endMs:e.endMs,rowIndex:a,overlapping:r})});let s=[];o.forEach(e=>{s.push({time:e.startMs,delta:1}),s.push({time:e.endMs,delta:-1})}),s.sort((e,t)=>e.time-t.time||e.delta-t.delta);let c=0,l=null,u=0;s.forEach(e=>{let t=c;c+=e.delta,t<2&&c>=2?(l=e.time,u=c):t>=2&&c>=2?u=Math.max(u,c):t>=2&&c<2&&l!==null&&(r.push({rowIndex:a,startMs:l,endMs:e.time,count:u}),l=null,u=0)})}),{positioned:n,bands:r}}function ge(e,t,n){let r=null,i=null;return e.forEach(e=>{e.endMs<=t?(!r||e.endMs>r.targetMs)&&(r={direction:`before`,targetMs:e.startMs,daysAway:Math.floor((t-e.endMs)/se)+1}):e.startMs>=n&&(!i||e.startMs<i.targetMs)&&(i={direction:`after`,targetMs:e.startMs,daysAway:Math.floor((e.startMs-n)/se)+1})}),{before:r,after:i}}function _e(e,t,n){let r=[5,10,15,30,60,120,180,240,360,720,1440],i=60/n*96,a=r.find(e=>e>=i)??r[r.length-1],o=a*oe,s=Math.ceil(e/o)*o,c=[];for(let e=s;e<=t;e+=o){let t=new Date(e),n=t.getHours()===0&&t.getMinutes()===0,r=n||a>=60;c.push({time:e,major:r,isDayBoundary:n})}return c}function ve(e,t,n,r){if(e===null||t===null||t<=e)return[];let i=ue(new Date(n)),a=[];for(let o=i.getTime()-se;o<=r+se;o+=se){let i=o+e*oe,s=o+t*oe;s<n||i>r||a.push({startMs:i,endMs:s})}return a}function ye({centerAt:e,now:r,locale:i,days:a,conflictDayKeys:o,onSelectDay:s,onStep:c}){let u=(0,C.useMemo)(()=>{let t=ue(e),n=[];for(let e=-a;e<=a;e+=1)n.push(de(t,e));return n},[e,a]);return(0,w.jsxs)(`div`,{className:`mtimeline-day-strip`,role:`tablist`,"aria-label":`Day navigator`,children:[(0,w.jsx)(l.t,{size:`sm`,variant:`outlined`,color:`neutral`,iconOnly:!0,"aria-label":`Previous day`,className:`mtimeline-day-arrow`,startIcon:(0,w.jsx)(t.Fi,{size:16}),onClick:()=>c(-1)}),(0,w.jsx)(`div`,{className:`mtimeline-day-strip-track`,children:u.map(t=>{let a=fe(t,e),c=fe(t,r),l=t.toISOString().slice(0,10),u=o.has(l);return(0,w.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":a,className:n.t(`mtimeline-day-cell`,a&&`active`,c&&`today`,u&&`has-conflict`),onClick:()=>s(t),children:[(0,w.jsx)(`span`,{className:`mtimeline-day-cell-weekday`,children:I(t,i)}),(0,w.jsx)(`span`,{className:`mtimeline-day-cell-number`,children:t.getDate()}),u&&(0,w.jsx)(`span`,{className:`mtimeline-day-cell-dot`,"aria-hidden":`true`})]},l)})}),(0,w.jsx)(l.t,{size:`sm`,variant:`outlined`,color:`neutral`,iconOnly:!0,"aria-label":`Next day`,className:`mtimeline-day-arrow`,startIcon:(0,w.jsx)(t.Pi,{size:16}),onClick:()=>c(1)})]})}function be({event:e,locale:n,startMs:r,endMs:i,rowLabel:a,overlapping:c,eventActionsLabel:u,menuItems:f,renderDetails:p,onLeaderClick:m,onParticipantClick:g,onClose:_}){let b=new Date(r),x=new Date(i),S=e.leader,C=!!(m&&S),T=S?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(y.t,{size:`md`,src:S.avatar,name:S.name,backgroundColor:S.color}),(0,w.jsxs)(`div`,{className:`mtimeline-popover-leader-text`,children:[(0,w.jsx)(o.t,{size:`sm`,weight:`semibold`,children:S.name}),S.role?(0,w.jsx)(o.t,{size:`xs`,tone:`muted`,children:S.role}):null]})]}):null;return(0,w.jsx)(d.n,{className:`mtimeline-popover-card`,outlined:!1,children:(0,w.jsx)(d.r,{children:(0,w.jsxs)(`div`,{className:`mtimeline-popover`,children:[(0,w.jsxs)(`div`,{className:`mtimeline-popover-head`,children:[(0,w.jsx)(`div`,{className:`mtimeline-popover-accent`,style:e.color?{"--mineral-timeline-event-color":e.color}:void 0,"aria-hidden":`true`}),(0,w.jsxs)(`div`,{className:`mtimeline-popover-titles`,children:[(0,w.jsx)(s.t,{level:5,children:e.title??L(b,x,n)}),(0,w.jsx)(o.t,{size:`xs`,tone:`muted`,children:a})]}),f.length>0&&(0,w.jsx)(h.i,{placement:`bottom-end`,trigger:(0,w.jsx)(l.t,{size:`sm`,variant:`ghost`,color:`neutral`,iconOnly:!0,"aria-label":u,startIcon:(0,w.jsx)(t.sn,{})}),children:f.map(t=>t.href?(0,w.jsx)(h.r,{icon:t.icon,label:t.label,href:t.href,color:t.color,disabled:t.disabled},t.id):(0,w.jsx)(h.r,{icon:t.icon,label:t.label,color:t.color,disabled:t.disabled,onClick:()=>{t.onSelect?.(e),_()}},t.id))})]}),(0,w.jsxs)(`div`,{className:`mtimeline-popover-meta`,children:[(0,w.jsxs)(o.t,{size:`sm`,children:[he(b,n),` · `,L(b,x,n)]}),c&&(0,w.jsxs)(d.s,{color:`warning`,size:`sm`,children:[(0,w.jsx)(t.pi,{size:12}),` Conflict`]})]}),e.location&&(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:e.location}),e.description&&(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:e.description}),S&&(C?(0,w.jsx)(`button`,{type:`button`,className:`mtimeline-popover-leader interactive`,onClick:()=>{m?.(S,e),_()},children:T}):(0,w.jsx)(`div`,{className:`mtimeline-popover-leader`,children:T})),e.participants&&e.participants.length>0&&(0,w.jsxs)(`div`,{className:`mtimeline-popover-participants`,children:[(0,w.jsxs)(o.t,{size:`xs`,tone:`muted`,weight:`semibold`,children:[`Participants (`,e.participants.length,e.capacity?` / ${e.capacity}`:null,`)`]}),(0,w.jsx)(v.t,{items:e.participants.map((t,n)=>({id:t.id??`${t.name}-${n}`,name:t.name,description:t.role,avatar:t.avatar,backgroundColor:t.color,onClick:g?()=>{g(t,e),_()}:void 0})),max:e.capacity??8,size:`sm`})]}),p?(0,w.jsx)(`div`,{className:`mtimeline-popover-extra`,children:p(e)}):null]})})})}function z({rows:e,events:r,centerAt:a,defaultCenterAt:s,pixelsPerHour:c=96,rowLabelWidth:u=168,rowHeight:d=56,headerHeight:f=56,dayStripHeight:p=56,dayStripDays:m=14,workdayStart:h,workdayEnd:_,showNowLine:v=!0,showDayStrip:b=!0,overlapHighlight:x=!0,panKeyStepMinutes:S=30,locale:T,emptyStateText:E,height:D,fullHeight:O=!0,eventMenuItems:k,renderEventDetails:A,eventActionsLabel:j=`Event actions`,onEventClick:M,onEventOpen:ee,onLeaderClick:te,onParticipantClick:N,onCenterChange:P,onRangeChange:ne,rangeBufferRatio:re=1,rangeChangeDebounceMs:ie=200,loading:se,className:le,style:fe,...pe}){let I=g.t(T),he=a!==void 0,[z,xe]=(0,C.useState)(()=>s??new Date),[B,V]=(0,C.useState)(()=>ce()),[Se,Ce]=(0,C.useState)(null),[we,Te]=(0,C.useState)(()=>new Date),Ee=(0,C.useRef)(null),De=(0,C.useRef)(new Map),H=(0,C.useRef)(null),U=(0,C.useRef)(null),W=(0,C.useRef)(null),Oe=(0,C.useRef)(null);(0,C.useEffect)(()=>{he&&a&&xe(a)},[he,a]),(0,C.useLayoutEffect)(()=>{let e=Ee.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();t.width>0&&V(t.width)};t();let n=null;typeof window<`u`&&(n=window.requestAnimationFrame(t));let r=null;return typeof ResizeObserver<`u`&&(r=new ResizeObserver(e=>{let t=e[0];t&&t.contentRect.width>0&&V(t.contentRect.width)}),r.observe(e)),()=>{n!==null&&typeof window<`u`&&window.cancelAnimationFrame(n),r?.disconnect()}},[]),(0,C.useEffect)(()=>{if(!v)return;let e=()=>Te(new Date);return e(),U.current=window.setInterval(e,3e4),()=>{U.current!==null&&window.clearInterval(U.current)}},[v]);let G=he?a??z:z,ke=c,K=ke/ae,q=(0,C.useCallback)(e=>{he||xe(e),P?.(e)},[he,P]),J=e.length*d,Ae=Math.max(B,320)/2/K,Y=G.getTime()-Ae,X=G.getTime()+Ae,je=Ae*2*Math.max(0,re),{positioned:Z,bands:Q}=(0,C.useMemo)(()=>R(e.map(e=>e.id),r),[e,r]),$=(0,C.useMemo)(()=>Z.filter(e=>e.endMs>Y&&e.startMs<X),[Z,Y,X]),Me=(0,C.useMemo)(()=>x?Q.filter(e=>e.endMs>Y&&e.startMs<X):[],[Q,x,Y,X]),Ne=(0,C.useMemo)(()=>ge(Q,Y,X),[Q,Y,X]),Pe=(0,C.useMemo)(()=>{let e=new Set;return Q.forEach(t=>{let n=ue(new Date(t.startMs));e.add(n.toISOString().slice(0,10))}),e},[Q]),Fe=(0,C.useMemo)(()=>_e(Y,X,ke),[Y,X,ke]),Ie=(0,C.useMemo)(()=>ve(F(h),F(_),Y,X),[h,_,Y,X]),Le=e=>(e-Y)*K;(0,C.useEffect)(()=>{if(!ne)return;let e=Math.round(Y),t=Math.round(X),n=Oe.current;if(!(n&&n.startMs===e&&n.endMs===t))return W.current!==null&&window.clearTimeout(W.current),W.current=window.setTimeout(()=>{let n={visibleStart:new Date(Y),visibleEnd:new Date(X),bufferStart:new Date(Y-je),bufferEnd:new Date(X+je),pixelsPerHour:ke};Oe.current={startMs:e,endMs:t},ne(n)},Math.max(0,ie)),()=>{W.current!==null&&(window.clearTimeout(W.current),W.current=null)}},[Y,X,je,ke,ne,ie]);let Re=(0,C.useCallback)(e=>{let t=new Date(e);t.setHours(12,0,0,0),q(t)},[q]),ze=(0,C.useCallback)(e=>q(de(G,e)),[G,q]),Be=(0,C.useCallback)(e=>{let t=ue(new Date(e));t.setHours(12,0,0,0),q(t)},[q]),Ve=e=>{if(e.button!==0&&e.pointerType===`mouse`)return;let t=e.target;if(t.closest(`.mtimeline-event`)||t.closest(`.mtimeline-conflict-marker`)||t.closest(`.mtimeline-loading`))return;let n=Ee.current;n&&(n.setPointerCapture(e.pointerId),H.current={pointerId:e.pointerId,startX:e.clientX,centerAtMs:G.getTime(),moved:!1})},He=e=>{let t=H.current;if(!t||t.pointerId!==e.pointerId)return;let n=e.clientX-t.startX;Math.abs(n)>3&&(t.moved=!0);let r=n/K;q(new Date(t.centerAtMs-r))},Ue=e=>{let t=H.current;if(t&&t.pointerId===e.pointerId){let t=Ee.current;t&&t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),H.current=null}},We=e=>{if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-1:1;if(e.shiftKey){ze(t);return}let n=S*oe;q(new Date(G.getTime()+t*n))}else e.key===`Home`&&(e.preventDefault(),q(new Date))},Ge={...fe,"--mineral-timeline-row-height":`${d}px`,"--mineral-timeline-row-label-width":`${u}px`,"--mineral-timeline-header-height":`${f}px`,"--mineral-timeline-day-strip-height":`${p}px`};D!==void 0&&(Ge.height=typeof D==`number`?`${D}px`:D);let Ke=r.length===0,qe=Se?Z.find(e=>e.event.id===Se)??null:null,Je={get current(){return Se?De.current.get(Se)??null:null},set current(e){}},Ye=qe?e[qe.rowIndex]?.label??``:``,Xe=qe&&k?k(qe.event):[];return(0,w.jsxs)(`div`,{className:n.t(`mtimeline`,O&&`full-height`,le),style:Ge,...pe,children:[b&&(0,w.jsx)(ye,{centerAt:G,now:we,locale:I,days:m,conflictDayKeys:Pe,onSelectDay:Re,onStep:ze}),(0,w.jsxs)(`div`,{className:`mtimeline-body`,children:[(0,w.jsxs)(`div`,{className:`mtimeline-rail`,children:[(0,w.jsx)(`div`,{className:`mtimeline-rail-header`,"aria-hidden":`true`,children:(0,w.jsx)(o.t,{size:`xs`,tone:`muted`,children:me(G,I)})}),(0,w.jsx)(`div`,{className:`mtimeline-rail-rows`,style:{height:`${J}px`},children:e.map(e=>(0,w.jsxs)(`div`,{className:`mtimeline-rail-row`,style:{height:`${d}px`},children:[e.avatar||e.icon?(0,w.jsx)(`span`,{className:`mtimeline-rail-avatar`,style:e.color?{"--mineral-timeline-row-accent":e.color}:void 0,children:e.avatar?(0,w.jsx)(y.t,{size:`sm`,src:e.avatar,name:e.label}):e.icon}):null,(0,w.jsxs)(`span`,{className:`mtimeline-rail-text`,children:[(0,w.jsx)(o.t,{size:`sm`,weight:`semibold`,children:e.label}),e.sublabel?(0,w.jsx)(o.t,{size:`xs`,tone:`muted`,children:e.sublabel}):null]})]},e.id))})]}),(0,w.jsxs)(`div`,{ref:Ee,className:`mtimeline-viewport`,role:`region`,"aria-label":`Timeline`,tabIndex:0,"data-mtimeline-viewport-width":Math.round(B),"data-mtimeline-tick-count":Fe.length,"data-mtimeline-event-count":$.length,onPointerDown:Ve,onPointerMove:He,onPointerUp:Ue,onPointerCancel:Ue,onKeyDown:We,children:[(0,w.jsxs)(`div`,{className:`mtimeline-header`,children:[Ie.map((e,t)=>(0,w.jsx)(`span`,{className:`mtimeline-workday-marker`,style:{left:`${Le(e.startMs)}px`,width:`${(e.endMs-e.startMs)*K}px`},"aria-hidden":`true`},`workday-${t}`)),Fe.map(e=>{let t=new Date(e.time);return(0,w.jsx)(`div`,{className:n.t(`mtimeline-tick`,e.major&&`major`,e.isDayBoundary&&`day-boundary`),style:{left:`${Le(e.time)}px`},children:(0,w.jsx)(`span`,{className:`mtimeline-tick-label`,children:e.isDayBoundary?me(t,I):new Intl.DateTimeFormat(I,{hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(t)})},e.time)})]}),(0,w.jsxs)(`div`,{className:`mtimeline-canvas`,style:{height:`${J}px`},children:[Ie.map((e,t)=>(0,w.jsx)(`span`,{className:`mtimeline-workday-band`,style:{left:`${Le(e.startMs)}px`,width:`${(e.endMs-e.startMs)*K}px`},"aria-hidden":`true`},`workday-canvas-${t}`)),Fe.map(e=>(0,w.jsx)(`span`,{className:n.t(`mtimeline-gridline`,e.major&&`major`,e.isDayBoundary&&`day-boundary`),style:{left:`${Le(e.time)}px`},"aria-hidden":`true`},`gridline-${e.time}`)),e.map((e,t)=>(0,w.jsx)(`span`,{className:`mtimeline-row-line`,style:{top:`${(t+1)*d}px`},"aria-hidden":`true`},`row-line-${t}`)),$.map(e=>{let t=Le(e.startMs),r=Math.max(2,(e.endMs-e.startMs)*K),i=e.rowIndex*d+6,a=d-12,o=e.event.color,s=Se===e.event.id;return(0,w.jsxs)(`button`,{ref:t=>{t?De.current.set(e.event.id,t):De.current.delete(e.event.id)},type:`button`,className:n.t(`mtimeline-event`,e.overlapping&&`overlapping`,s&&`active`),style:{left:`${t}px`,width:`${r}px`,top:`${i}px`,height:`${a}px`,...o?{"--mineral-timeline-event-color":o}:null},onClick:t=>{H.current?.moved||(t.stopPropagation(),e.event.onClick?.(e.event),M?.(e.event),Ce(e.event.id),ee?.(e.event))},title:e.event.title?`${e.event.title} · ${L(new Date(e.startMs),new Date(e.endMs),I)}`:L(new Date(e.startMs),new Date(e.endMs),I),children:[(0,w.jsx)(`span`,{className:`mtimeline-event-time`,children:L(new Date(e.startMs),new Date(e.endMs),I)}),e.event.title?(0,w.jsx)(`span`,{className:`mtimeline-event-title`,children:e.event.title}):null,e.event.icon?(0,w.jsx)(`span`,{className:`mtimeline-event-icon`,children:e.event.icon}):null]},e.event.id)}),Me.map((e,n)=>(0,w.jsx)(`span`,{className:`mtimeline-overlap`,role:`note`,style:{left:`${Le(e.startMs)}px`,width:`${Math.max(2,(e.endMs-e.startMs)*K)}px`,top:`${e.rowIndex*d}px`,height:`${d}px`},title:`${e.count} overlapping events`,children:(0,w.jsx)(`span`,{className:`mtimeline-overlap-icon`,"aria-hidden":`true`,children:(0,w.jsx)(t.pi,{size:12})})},`overlap-${n}`)),v?(0,w.jsx)(`span`,{className:`mtimeline-now`,style:{left:`${Le(we.getTime())}px`},"aria-hidden":`true`}):null]}),(()=>{let e=Ne.before;return e?(0,w.jsxs)(l.t,{size:`sm`,variant:`outlined`,color:`warning`,shape:`circle`,className:`mtimeline-conflict-marker before`,onPointerDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),Be(e.targetMs)},startIcon:(0,w.jsx)(t.Fi,{size:14}),title:`Conflict ${e.daysAway} day(s) earlier`,children:[(0,w.jsx)(t.pi,{size:12}),(0,w.jsxs)(`span`,{className:`mtimeline-conflict-marker-label`,children:[e.daysAway,`d`]})]}):null})(),(()=>{let e=Ne.after;return e?(0,w.jsxs)(l.t,{size:`sm`,variant:`outlined`,color:`warning`,shape:`circle`,className:`mtimeline-conflict-marker after`,onPointerDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),Be(e.targetMs)},endIcon:(0,w.jsx)(t.Pi,{size:14}),title:`Conflict in ${e.daysAway} day(s)`,children:[(0,w.jsxs)(`span`,{className:`mtimeline-conflict-marker-label`,children:[e.daysAway,`d`]}),(0,w.jsx)(t.pi,{size:12})]}):null})(),Ke?(0,w.jsx)(`div`,{className:`mtimeline-empty`,children:(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:E??`No events to show`})}):null,se?(0,w.jsxs)(`div`,{className:`mtimeline-loading`,"aria-live":`polite`,children:[(0,w.jsx)(`span`,{className:`mtimeline-loading-dot`,"aria-hidden":`true`}),(0,w.jsx)(o.t,{size:`xs`,tone:`muted`,children:`Loading…`})]}):null]})]}),(0,w.jsx)(i.t,{open:qe!==null,anchorRef:Je,onClose:()=>Ce(null),placement:`bottom-start`,children:qe&&(0,w.jsx)(be,{event:qe.event,locale:I,startMs:qe.startMs,endMs:qe.endMs,rowLabel:Ye,overlapping:qe.overlapping,eventActionsLabel:j,menuItems:Xe,renderDetails:A,onLeaderClick:te,onParticipantClick:N,onClose:()=>Ce(null)})})]})}var xe={pdf:(0,w.jsx)(t.ei,{}),ts:(0,w.jsx)(t.Ur,{}),tsx:(0,w.jsx)(t.Wr,{}),js:(0,w.jsx)(t.jr,{}),jsx:(0,w.jsx)(t.Qr,{}),css:(0,w.jsx)(t.wr,{}),scss:(0,w.jsx)(t.wr,{}),html:(0,w.jsx)(t.kr,{}),json:(0,w.jsx)(t.Mr,{}),md:(0,w.jsx)(t.Pr,{}),txt:(0,w.jsx)(t.Gr,{}),csv:(0,w.jsx)(t.Tr,{}),zip:(0,w.jsx)(t.Yr,{}),rar:(0,w.jsx)(t.Vr,{}),svg:(0,w.jsx)(t.Hr,{}),png:(0,w.jsx)(t.zr,{}),jpg:(0,w.jsx)(t.Ar,{}),jpeg:(0,w.jsx)(t.$r,{}),gif:(0,w.jsx)(t.Or,{}),webp:(0,w.jsx)(t.Kr,{}),php:(0,w.jsx)(t.Rr,{}),xml:(0,w.jsx)(t.Jr,{}),xls:(0,w.jsx)(t.qr,{}),ppt:(0,w.jsx)(t.Br,{}),odt:(0,w.jsx)(t.Lr,{}),exe:(0,w.jsx)(t.Dr,{}),mp3:(0,w.jsx)(t.Fr,{}),mp4:(0,w.jsx)(t.Ir,{})};function B(e){let t=e.lastIndexOf(`.`);return t<1?null:e.slice(t+1).toLowerCase()}function V(e){return e?.kind===`folder`||!!e?.children?.length}function Se(e){let n=B(e);return n?xe[n]??(0,w.jsx)(t.ti,{}):(0,w.jsx)(t.ii,{})}function Ce(e,n=!1){return e.icon?e.icon:V(e)?n?(0,w.jsx)(t.Sr,{}):(0,w.jsx)(t.Cr,{}):Se(e.label)}function we(e){if(!e||e<1)return null;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;let i=n>=100||r===0?0:1;return`${n.toFixed(i)} ${t[r]}`}function Te(e,t){if(!e)return null;let n=e instanceof Date?e:new Date(e);return Number.isNaN(n.getTime())?null:new Intl.DateTimeFormat(t,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(n)}function Ee(e){let t=new Map,n=new Map;function r(e,i){for(let a of e)t.set(a.id,a),n.set(a.id,i),a.children?.length&&r(a.children,a.id)}return r(e,null),{nodeMap:t,parentMap:n}}function De(e){return e.flatMap(e=>V(e)?[{...e,kind:`folder`,children:De(e.children??[])}]:[])}function H(e,t,n){let r=[],i=e;for(;i;){let e=t.get(i);if(!e)break;r.unshift(e),i=n.get(i)??null}return r}function U(e,t,n){if(!e)return null;let r=t.get(e);return r?V(r)?r.id:n.get(r.id)??null:null}function W(e,t){return e?e.children??[]:t}function Oe(e,t,n,r,i){let a=e?t.get(e)??null:null,o=a?n.get(a.id)??null:null;return{id:e,node:a,parentId:o,parentNode:o?t.get(o)??null:null,activeFolderId:r,activeFolder:i}}function G(e,n){return[...V(e)?[]:[{id:`download`,label:n.download,icon:(0,w.jsx)(t.tn,{}),color:`primary`}],{id:`rename`,label:n.rename,icon:(0,w.jsx)(t.nn,{})},{id:`move`,label:n.moveTo,icon:(0,w.jsx)(t.Ai,{})},{id:`delete`,label:n.delete,icon:(0,w.jsx)(t.dn,{}),color:`error`}]}function ke(e,n){return[...V(e)?[{id:`new-folder`,label:n.newFolder,icon:(0,w.jsx)(t.xr,{})}]:[],...G(e,n)]}function K({items:e,locale:r,defaultExpanded:i=[],expanded:s,onExpandChange:c,folderId:u,defaultFolderId:f=null,onFolderChange:m,selectedId:_,onSelectionChange:v,view:y,defaultView:S=`list`,onViewChange:T,searchValue:E,defaultSearchValue:D=``,onSearchChange:O,searchable:k=!0,searchPlaceholder:A,showSidebar:j=!0,showPreview:M=!0,emptyText:ee,toolbarActions:te=[],onToolbarAction:N,onOpenItem:P,onItemAction:ne,onContextMenuAction:re,canDrop:ie,onMove:ae,renderPreview:oe,className:se,...ce}){let le=g.t(r),F=x.a(),[ue,de]=(0,C.useState)(f),[fe,pe]=(0,C.useState)(null),[me,I]=(0,C.useState)(S),[L,he]=(0,C.useState)(D),{nodeMap:R,parentMap:ge}=(0,C.useMemo)(()=>Ee(e),[e]),_e=(0,C.useMemo)(()=>De(e),[e]),ve=U(u===void 0?ue:u,R,ge),ye=ve?R.get(ve)??null:null,be=_===void 0?fe:_,z=be?R.get(be)??null:null,xe=z?z.id:null,B=y??me,Se=E??L,K=W(ye,e),q=Se.trim().toLowerCase(),J=H(ve,R,ge),Ae=A??F.searchPlaceholder,Y=ee??F.emptyText,X=!!(ne||re),je=(0,C.useMemo)(()=>q?K.filter(e=>e.label.toLowerCase().includes(q)):K,[K,q]);function Z(e){let t=U(e,R,ge),n=t?R.get(t)??null:null;m?m(t,n):de(t)}function Q(e,t=ve,n=ye){let r=Oe(e,R,ge,t,n);v?v(r):pe(e)}function $(e){T?T(e):I(e)}function Me(e){O?O(e):he(e)}function Ne(e,t){Z(e),Q(e,t.id,t)}function Pe(e){if(V(e)){Z(e.id),Q(e.id,e.id,e);return}Q(e.id)}function Fe(e){N&&N({...Oe(xe,R,ge,ve,ye),actionId:e,visibleItems:je})}function Ie(e,t){(ne??re)?.(e,t)}function Le(e,t){(re??ne)?.(e,t)}function Re(e){let t=[],n=we(e.size),r=Te(e.modifiedAt,le);return V(e)&&t.push(F.itemsCount(e.children?.length??0)),n&&t.push(n),r&&t.push(r),t.join(` / `)}return(0,w.jsxs)(`div`,{className:n.t(`file-manager`,!j&&`no-sidebar`,!M&&`no-preview`,se),...ce,children:[(0,w.jsxs)(`div`,{className:`toolbar`,children:[(0,w.jsxs)(`div`,{className:`toolbar-main`,children:[(0,w.jsxs)(`div`,{className:`breadcrumbs`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`breadcrumb root`,onClick:()=>Z(null),children:[(0,w.jsx)(t.vr,{}),(0,w.jsx)(o.t,{as:`span`,weight:`semibold`,children:F.home})]}),J.map(e=>(0,w.jsxs)(`div`,{className:`breadcrumbs`,children:[(0,w.jsx)(`span`,{className:`breadcrumb-separator`,children:`/`}),(0,w.jsx)(`button`,{type:`button`,className:`breadcrumb`,onClick:()=>Z(e.id),children:(0,w.jsx)(o.t,{as:`span`,children:e.label})})]},e.id))]}),k&&(0,w.jsx)(p.t,{className:`toolbar-search`,size:`sm`,placeholder:Ae,value:Se,onChange:e=>Me(e.target.value),onClear:()=>Me(``)})]}),(0,w.jsxs)(`div`,{className:`toolbar-actions`,children:[te.map(e=>(0,w.jsx)(l.t,{size:`sm`,variant:e.variant??`ghost`,color:e.color,disabled:e.disabled,onClick:()=>Fe(e.id),startIcon:e.icon,children:e.label},e.id)),(0,w.jsxs)(`div`,{className:`view-switch`,children:[(0,w.jsx)(l.t,{size:`sm`,variant:B===`list`?`secondary`:`ghost`,onClick:()=>$(`list`),children:F.listView}),(0,w.jsx)(l.t,{size:`sm`,variant:B===`grid`?`secondary`:`ghost`,onClick:()=>$(`grid`),children:F.gridView})]})]})]}),(0,w.jsxs)(`div`,{className:`body`,children:[j&&(0,w.jsxs)(`aside`,{className:`panel`,children:[(0,w.jsxs)(`div`,{className:`panel-header`,children:[(0,w.jsx)(o.t,{weight:`semibold`,children:F.folders}),(0,w.jsx)(d.s,{size:`sm`,color:`info`,children:_e.length})]}),(0,w.jsx)(`div`,{className:`panel-body sidebar-body`,children:_e.length>0?(0,w.jsx)(b.t,{items:_e,selectable:!0,fileIcons:!0,defaultExpanded:i,expanded:s,onExpandChange:c,selected:ve,onSelect:(e,t)=>Ne(e,t),draggable:!!ae,canDrop:ie?(e,t)=>ie(e,t):void 0,onMove:ae?e=>ae({draggedId:e.draggedId,draggedNode:e.draggedNode,targetId:e.targetId,targetNode:e.targetNode}):void 0,contextMenuItems:X?e=>ke(e,F):void 0,onContextMenuAction:X?(e,t)=>Le(e,t):void 0}):(0,w.jsx)(`div`,{className:`empty-state`,children:F.noFoldersAvailable})})]}),(0,w.jsxs)(`section`,{className:`panel`,children:[(0,w.jsxs)(`div`,{className:`panel-header`,children:[(0,w.jsxs)(a.n,{align:`center`,wrap:`wrap`,children:[(0,w.jsx)(o.t,{weight:`semibold`,children:ye?.label??F.home}),(0,w.jsx)(d.s,{size:`sm`,children:je.length})]}),(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:q?F.filteredBy(Se):F.currentFolder})]}),(0,w.jsx)(`div`,{className:`panel-body`,children:je.length>0?(0,w.jsx)(`div`,{className:n.t(`content-items`,B),children:je.map(e=>{let r=xe===e.id,i=Re(e),a=X?G(e,F):[];return(0,w.jsxs)(`div`,{className:n.t(`item-card`,r&&`selected`),children:[(0,w.jsxs)(`button`,{type:`button`,className:`item-card-main`,onClick:()=>Pe(e),onDoubleClick:()=>P?.(e),children:[(0,w.jsx)(`span`,{className:`item-icon`,children:Ce(e)}),(0,w.jsxs)(`span`,{className:`item-text`,children:[(0,w.jsx)(o.t,{as:`span`,weight:`semibold`,truncate:!0,children:e.label}),e.description?(0,w.jsx)(o.t,{as:`span`,size:`sm`,tone:`muted`,truncate:2,children:e.description}):null,(0,w.jsxs)(`span`,{className:`item-meta`,children:[(0,w.jsx)(d.s,{size:`sm`,color:V(e)?`info`:`primary`,children:V(e)?F.folder:F.file}),i?(0,w.jsx)(o.t,{as:`span`,size:`sm`,tone:`muted`,truncate:!0,children:i}):null]})]})]}),a.length>0?(0,w.jsx)(`div`,{className:`item-card-actions`,children:(0,w.jsx)(h.i,{placement:`bottom-end`,trigger:(0,w.jsx)(l.t,{"aria-label":`${F.preview}: ${e.label}`,variant:`ghost`,size:`sm`,iconOnly:!0,children:(0,w.jsx)(t.sn,{})}),children:a.map(t=>(0,w.jsx)(h.r,{icon:t.icon,label:t.label,color:t.color,onClick:()=>Ie(t.id,e)},t.id))})}):null]},e.id)})}):(0,w.jsx)(`div`,{className:`empty-state`,children:Y})})]}),M&&(0,w.jsxs)(`aside`,{className:`panel`,children:[(0,w.jsxs)(`div`,{className:`panel-header`,children:[(0,w.jsx)(o.t,{weight:`semibold`,children:F.preview}),z?(0,w.jsx)(d.s,{size:`sm`,color:V(z)?`info`:`primary`,children:V(z)?F.folder:F.file}):null]}),(0,w.jsx)(`div`,{className:`panel-body`,children:z?(0,w.jsxs)(a.t,{children:[(0,w.jsx)(`div`,{className:`preview-visual`,children:oe?oe(z):z.preview?z.preview:(0,w.jsx)(`span`,{className:`preview-icon`,children:Ce(z,!0)})}),(0,w.jsx)(o.t,{weight:`semibold`,children:z.label}),z.description?(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:z.description}):null,(0,w.jsxs)(`div`,{className:`preview-meta`,children:[(0,w.jsx)(d.s,{size:`sm`,color:V(z)?`info`:`primary`,children:V(z)?F.folder:F.file}),we(z.size)?(0,w.jsx)(d.s,{size:`sm`,children:we(z.size)}):null,Te(z.modifiedAt,le)?(0,w.jsx)(d.s,{size:`sm`,color:`neutral`,children:Te(z.modifiedAt,le)}):null]}),(0,w.jsxs)(o.t,{size:`sm`,tone:`muted`,children:[F.path,`:`,` `,[F.home,...H(z.id,R,ge).map(e=>e.label)].join(` / `)]})]}):(0,w.jsx)(`div`,{className:`preview-empty`,children:F.selectItemToInspect})})]})]})]})}var q=24,J=60,Ae=56,Y=110,X=6,je=[`rgba(14, 165, 233, 0.85)`,`rgba(244, 63, 94, 0.85)`];function Z(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function Q(e){if(!e)return null;if(e instanceof Date)return Z(e);let t=new Date(e);return Number.isNaN(t.getTime())?null:Z(t)}function $(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function Me(e){return Q(e.date)}function Ne(e,t){let n=new Date(e);return n.setDate(n.getDate()+t),Z(n)}function Pe(e,t){let n=Z(e);return Ne(n,-((n.getDay()-t+7)%7))}function Fe(e){return[...e].sort((e,t)=>{let n=e.startTime??`99:99`,r=t.startTime??`99:99`;return n.localeCompare(r)})}function Ie(e,t){let n=Pe(new Date(e.getFullYear(),e.getMonth(),1),t);return Array.from({length:42},(e,t)=>Ne(n,t))}function Le(e){switch(e){case`active`:return`rgba(14, 165, 233, 1)`;case`done`:return`rgba(34, 197, 94, 1)`;case`cancelled`:return`rgba(239, 68, 68, 1)`;default:return`rgba(245, 158, 11, 1)`}}function Re(e){return e.color??Le(e.status)}function ze(e,t){return new Intl.DateTimeFormat(t,{weekday:`long`,day:`numeric`,month:`long`,year:`numeric`}).format(e)}function Be(e,t){let n=Ne(e,6),r=new Intl.DateTimeFormat(t,{day:`numeric`,month:`short`});return`${r.format(e)} - ${r.format(n)}`}function Ve(e,t){return e.startTime&&e.endTime?`${e.startTime} - ${e.endTime}`:e.startTime?e.startTime:t.allDay}function He(e){let t=/^(\d{1,2}):(\d{2})$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}function Ue(e){if(!e.startTime||!e.endTime)return null;let t=He(e.startTime),n=He(e.endTime);if(t===null||n===null||n<=t)return null;let r=n-t,i=Math.floor(r/60),a=r%60;return i===0?`${a}m`:a===0?`${i}h`:`${i}h ${a}m`}function We(e,t){let n=new Date,r=new Date(e);r.setHours(t,0,0,0);let i=new Date(r);return i.setHours(t+1,0,0,0),i<=n?`past`:r<=n&&i>n?`active`:`upcoming`}function Ge(e){if(!e)return null;let[t,n]=e.split(`:`),r=Number(t),i=Number(n??0);return Number.isNaN(r)||Number.isNaN(i)?null:r*J+i}function Ke(e){let t=Ge(e.startTime);if(t===null)return null;let n=Ge(e.endTime),r=n!==null&&n>t?n:t+J;return{start:t,end:Math.min(r,q*J)}}function qe(e,t){let n=t*J,r=n+J,i=[];return e.forEach(e=>{let t=Ke(e);if(!t)return;let a=Math.max(t.start,n),o=Math.min(t.end,r);o<=a||i.push({event:e,fromPercent:(a-n)/J*100,toPercent:(o-n)/J*100})}),i}function Je(e){let t=new Set,n=e.map(e=>{let t=Ke(e);return t?{event:e,...t}:null}).filter(e=>e!==null).sort((e,t)=>e.start-t.start);for(let e=0;e<n.length;e+=1)for(let r=e+1;r<n.length&&!(n[r].start>=n[e].end);r+=1)t.add(n[e].event.id),t.add(n[r].event.id);return t}function Ye(e,t,n){if(!t.length||!n.length)return e;let r=t.filter(e=>n.includes(e.id));return r.length?e.filter(e=>r.some(t=>t.predicate(e))):e}function Xe(e,t,n,r){return t===`week`?Be(Pe(e,r),n):new Intl.DateTimeFormat(n,{month:`long`,year:`numeric`}).format(e)}function Ze(e,t){return e===`week`?t.weekView:t.monthView}function Qe(e,n){let r=[];return e&&r.push({id:`add`,label:n??`Add event`,icon:(0,w.jsx)(t.br,{}),onSelect:t=>e(t)}),r}function $e(e,n,r){let i=[];e.href&&i.push({id:`open`,label:`Open`,icon:(0,w.jsx)(t.en,{}),href:e.href});let a=e.onEdit??n;a&&i.push({id:`edit`,label:`Edit`,icon:(0,w.jsx)(t.nn,{}),onSelect:a});let o=e.onDelete??r;return o&&i.push({id:`delete`,label:`Delete`,icon:(0,w.jsx)(t.dn,{}),color:`error`,onSelect:o}),i}function et({date:e,events:t,overlapWarning:r=!1,orientation:i=`vertical`,className:a,...o}){let s=x.t(),c=(0,C.useMemo)(()=>Je(t),[t]),l=Array.from({length:q},(e,t)=>t);return(0,w.jsx)(`div`,{className:n.t(`calendar hourbar`,i,a),"aria-hidden":`true`,...o,children:l.map(e=>{let i=qe(t,e),a=Math.min(100,i.reduce((e,t)=>e+(t.toPercent-t.fromPercent),0)),o=r&&i.some(e=>c.has(e.event.id));return(0,w.jsx)(`div`,{className:n.t(`hourbar slot`,i.length>0&&`filled`,o&&`overlap`),style:{"--mineral-hourbar-fill":`${a}%`},children:i.map((e,t)=>{let n=o&&i.length>1?je[t%je.length]:Re(e.event),r=Ue(e.event),a=Ve(e.event,s);return(0,w.jsx)(m.t,{placement:`left`,delay:120,className:`hourbar segment-wrapper`,style:{position:`absolute`,left:0,right:0,top:`${e.fromPercent}%`,height:`${e.toPercent-e.fromPercent}%`,background:n},content:(0,w.jsxs)(`div`,{className:`hourbar tooltip-content`,children:[(0,w.jsx)(`strong`,{children:e.event.title}),(0,w.jsx)(`span`,{children:r?`${a} · ${r}`:a})]}),children:(0,w.jsx)(`span`,{className:`hourbar segment-fill`,"aria-hidden":`true`})},`${e.event.id}-${t}`)})},e)})})}function tt({filters:e,activeFilterIds:t,onToggle:n}){return e.length?(0,w.jsx)(`div`,{className:`calendar filters`,children:e.map(e=>{let r=t.includes(e.id);return(0,w.jsx)(l.t,{type:`button`,size:`sm`,variant:`outlined`,color:r?`primary`:`neutral`,active:r,className:`calendar filter button`,onClick:()=>n(e.id),children:e.label},e.id)})}):null}function nt({days:e,eventsByDay:t,selectedDate:n,activeDate:r,onDayInteract:i,dayBadge:a,renderDayCell:o,showHourBar:s,overlapWarning:c,onAddEvent:l,addEventLabel:u}){let f=$(Z(new Date));return(0,w.jsx)(`div`,{className:`calendar week`,children:e.map(e=>{let p=$(e),m=t.get(p)??[],h=a?.(e,m)??(m.length>0?(0,w.jsx)(d.s,{size:`sm`,children:m.length}):null),g=!!(n&&$(n)===p),_={date:e,events:m,badge:h,isToday:p===f,isSelected:g,isOutsideMonth:!1};return(0,w.jsx)(`div`,{className:`calendar week column`,children:(0,w.jsx)(rt,{date:e,events:m,badge:h,isToday:_.isToday,isSelected:g||!!(r&&$(r)===p),isOutsideMonth:!1,showHourBar:s,overlapWarning:c,onAddEvent:l?e=>l(e):void 0,addEventLabel:u,onClick:t=>i(e,t.currentTarget,m),children:o?o(e,_):void 0})},p)})})}function rt({date:e,events:r=[],badge:i,isToday:a=!1,isSelected:o=!1,isOutsideMonth:s=!1,showHourBar:c=!1,overlapWarning:l=!1,onAddEvent:u,addEventLabel:d,className:f,children:p,...m}){let h=t=>{t.stopPropagation(),u?.(e)};return(0,w.jsx)(`button`,{type:`button`,className:n.t(`calendar day cell`,a&&`today`,o&&`selected`,s&&`outside-month`,c&&`has-hourbar`,f),...m,children:p??(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`day inner`,children:[(0,w.jsxs)(`div`,{className:`day header`,children:[(0,w.jsx)(`span`,{className:`day number`,children:e.getDate()}),(0,w.jsx)(`div`,{className:`day meta`,children:i})]}),u&&(0,w.jsx)(`div`,{className:`day footer`,children:(0,w.jsx)(`span`,{role:`button`,tabIndex:-1,"aria-label":d,title:d,className:`day add`,onClick:h,children:(0,w.jsx)(t.br,{size:14})})})]}),c&&(0,w.jsx)(et,{date:e,events:r,overlapWarning:l,className:`embedded`})]})})}function it({event:e,locale:r,className:i,currentDate:a,menuItems:c,renderMenu:l,showActions:u=!0,overlap:f=!1,onSelect:p,onEdit:m,onDelete:_,...v}){let b=g.t(r),S=x.t(),C=e.status===`cancelled`?`error`:e.status===`done`?`success`:e.status===`active`?`info`:`warning`,T=e.menuItems??c??l?.(e)??$e(e,m,_),E=!!(e.href||e.onClick||p),D=Re(e),O=t=>{t.target.closest(`.event-menu, .event-menu-trigger`)||(e.onClick?.(e),p?.(e))},k=r=>(0,w.jsxs)(r,{...r===`a`?{href:e.href,target:(e.href,void 0)}:{},...r===`button`?{type:`button`,onClick:O}:{},...r===`a`?{onClick:O}:{},className:n.t(`calendar event item`,E&&`interactive`,f&&`overlap`,i),style:{"--mineral-event-accent":D},...v,children:[(0,w.jsxs)(`div`,{className:`event time`,children:[(0,w.jsx)(`span`,{className:`event accent`,"aria-hidden":`true`}),Ve(e,S)]}),(0,w.jsxs)(`div`,{className:`event content`,children:[(0,w.jsxs)(`div`,{className:`event title row`,children:[(0,w.jsx)(s.t,{level:5,children:e.title}),(0,w.jsxs)(`div`,{className:`event title meta`,children:[f&&(0,w.jsxs)(d.s,{color:`warning`,size:`sm`,children:[(0,w.jsx)(t.pi,{size:12}),` Overlap`]}),e.status&&(0,w.jsx)(d.s,{color:C,size:`sm`,children:e.status})]})]}),e.description&&(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:e.description}),(0,w.jsxs)(`div`,{className:`event details`,children:[e.type&&(0,w.jsx)(d.s,{color:`neutral`,size:`sm`,children:e.type}),e.badgeLabel&&(0,w.jsx)(d.s,{size:`sm`,children:e.badgeLabel}),e.user&&(0,w.jsxs)(`span`,{className:`event user`,children:[(0,w.jsx)(y.t,{size:`sm`,src:e.user.avatar,name:e.user.name,backgroundColor:e.user.color}),e.user.name]}),!e.startTime&&!e.endTime&&a&&(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:ze(a,b)})]})]}),u&&T.length>0&&(0,w.jsx)(`div`,{className:`event-menu`,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:(0,w.jsx)(h.i,{placement:`bottom-end`,trigger:(0,w.jsx)(`span`,{className:`event-menu-trigger`,"aria-label":`Event actions`,role:`presentation`,children:(0,w.jsx)(t.sn,{size:16})}),children:T.map(t=>t.href?(0,w.jsx)(h.r,{icon:t.icon,label:t.label,href:t.href,color:t.color,disabled:t.disabled},t.id):(0,w.jsx)(h.r,{icon:t.icon,label:t.label,color:t.color,disabled:t.disabled,onClick:()=>t.onSelect?.(e)},t.id))})})]});return e.href?k(`a`):k(E?`button`:`div`)}function at({events:e,locale:t,currentDate:r,emptyStateText:i,overlapWarning:s=!1,renderEventItem:c,renderEventMenu:l,onEventSelect:u,onEventEdit:d,onEventDelete:f,className:p,...m}){let h=g.t(t),_=x.t(),v=(0,C.useMemo)(()=>s?Je(e):new Set,[e,s]);return e.length?(0,w.jsx)(`div`,{className:n.t(`calendar event list`,p),...m,children:(0,w.jsx)(a.t,{children:Fe(e).map(e=>c?(0,w.jsx)(`div`,{children:c(e)},e.id):(0,w.jsx)(it,{event:e,locale:h,currentDate:r,renderMenu:l,overlap:v.has(e.id),onSelect:u,onEdit:d,onDelete:f},e.id))})}):(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,className:n.t(`calendar event list`,p),...m,children:i??_.emptyStateText})}function ot({event:e,locale:t,date:r,timeLabel:a,overlap:o,renderEventMenu:s,onSelect:c,onEdit:l,onDelete:u}){let[f,p]=(0,C.useState)(!1),m=(0,C.useRef)(null);return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`button`,{ref:m,type:`button`,className:n.t(`timeline event-chip`,o&&`overlap`,f&&`open`),style:{"--mineral-event-color":Re(e)},onClick:()=>p(e=>!e),children:[(0,w.jsx)(`span`,{className:`timeline event-chip-time`,children:a}),(0,w.jsx)(`span`,{className:`timeline event-chip-title`,children:e.title})]}),(0,w.jsx)(i.t,{open:f,anchorRef:m,onClose:()=>p(!1),placement:`right-start`,children:(0,w.jsx)(d.n,{className:`timeline event-popup`,outlined:!1,children:(0,w.jsx)(d.r,{children:(0,w.jsx)(it,{event:e,locale:t,currentDate:r,renderMenu:s,overlap:o,onSelect:c,onEdit:l,onDelete:u})})})})]})}function st({date:e,events:r,locale:i,startHour:c=0,endHour:l=23,emptyStateText:u,overlapWarning:f=!1,onAddEvent:p,addEventLabel:m,renderEventItem:h,renderEventMenu:_,onEventSelect:v,onEventEdit:y,onEventDelete:b,className:T,...E}){let D=g.t(i),O=x.t(),k=Math.max(0,Math.min(c,q-1)),A=Math.max(k,Math.min(l,q-1)),j=Array.from({length:A-k+1},(e,t)=>k+t),M=r.filter(e=>!e.startTime),ee=(0,C.useMemo)(()=>f?Je(r):new Set,[r,f]),te=(0,w.jsx)(`div`,{className:`timeline allday-panel`,children:M.length>0?(0,w.jsx)(a.t,{spacing:`xs`,children:M.map(t=>h?(0,w.jsx)(`div`,{children:h(t)},t.id):(0,w.jsx)(it,{event:t,locale:D,currentDate:e,renderMenu:_,overlap:ee.has(t.id),onSelect:v,onEdit:y,onDelete:b},t.id))}):(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:u??O.emptyStateText})}),N=k*J,P=(A+1)*J,ne=(A-k+1)*Ae,re=(0,C.useMemo)(()=>{let e=Fe(r.filter(e=>!!e.startTime)),t=[];e.forEach(e=>{let n=Ke(e);!n||n.end<=N||n.start>=P||t.push({event:e,start:n.start,end:n.end,column:0,columns:1})});let n=[];t.forEach(e=>{let t=-1;for(let r=0;r<n.length;r++)if(n[r]<=e.start){t=r,n[r]=e.end;break}t===-1&&(t=n.length,n.push(e.end)),e.column=t});let i=0;for(;i<t.length;){let e=i,n=t[i].end;for(;e+1<t.length&&t[e+1].start<n;)e++,n=Math.max(n,t[e].end);let r=0;for(let n=i;n<=e;n++)r=Math.max(r,t[n].column+1);for(let n=i;n<=e;n++)t[n].columns=r;i=e+1}return t},[r,N,P]),ie=(0,w.jsxs)(`div`,{className:`timeline canvas`,style:{"--timeline-hour-height":`${Ae}px`,height:`${ne}px`},children:[(0,w.jsx)(`div`,{className:`timeline rows`,children:j.map(r=>{let i=We(e,r),a=p?()=>p(e,r):void 0;return(0,w.jsxs)(`div`,{className:n.t(`timeline row`,i),children:[(0,w.jsxs)(`div`,{className:`row time-cell`,children:[(0,w.jsx)(`span`,{children:`${String(r).padStart(2,`0`)}:00`}),a&&(0,w.jsx)(`button`,{type:`button`,className:`row add`,"aria-label":m,title:m,onClick:a,children:(0,w.jsx)(t.br,{size:12})})]}),(0,w.jsx)(`div`,{className:`row rail`,"aria-hidden":`true`}),(0,w.jsx)(`div`,{className:`row body`,"aria-hidden":`true`})]},r)})}),(0,w.jsx)(`div`,{className:`timeline events`,children:re.length===0?(0,w.jsx)(`div`,{className:`timeline events-empty`,children:(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:u??O.timelineEmptyState})}):re.map(t=>{let n=Math.max(t.start,N)-N,r=Math.min(t.end,P)-N,i=n/J*Ae,a=Math.max((r-n)/J*Ae,28),o=t.column*(Y+X);return(0,w.jsx)(`div`,{className:`timeline event-block`,style:{top:`${i}px`,height:`${a}px`,left:`${o}px`,width:`${Y}px`},children:h?h(t.event):(0,w.jsx)(ot,{event:t.event,locale:D,date:e,timeLabel:Ve(t.event,O),overlap:ee.has(t.event.id),renderEventMenu:_,onSelect:v,onEdit:y,onDelete:b})},t.event.id)})})]});return(0,w.jsx)(`div`,{className:n.t(`calendar timeline`,T),...E,children:(0,w.jsxs)(a.t,{children:[(0,w.jsxs)(`div`,{className:`timeline header`,children:[(0,w.jsx)(s.t,{level:5,children:O.timelineTitle}),f&&ee.size>0&&(0,w.jsxs)(d.s,{color:`warning`,size:`sm`,children:[(0,w.jsx)(t.pi,{size:12}),` Overlap`]})]}),M.length>0?(0,w.jsx)(S.t,{className:`calendar timeline-tabs`,variant:`underline`,size:`sm`,fullWidth:!0,defaultValue:`timeline`,items:[{value:`timeline`,label:O.timelineTab,content:ie},{value:`allday`,label:`${O.allDayTab} (${M.length})`,content:te}]}):ie]})})}function ct({date:e,events:n,locale:r,timelineStartHour:i,timelineEndHour:c,showTimeline:l,overlapWarning:u,emptyStateText:d,addEventLabel:f,dayMenuLabel:p,onAddEvent:m,renderDayMenu:g,onEventSelect:_,onEventEdit:v,onEventDelete:y,renderEventItem:b,renderEventMenu:S}){let C=x.t();if(!e)return null;let T=g?.(e,n)??Qe(m,f);return(0,w.jsxs)(a.t,{children:[(0,w.jsxs)(`div`,{className:`calendar details header`,children:[(0,w.jsxs)(a.t,{spacing:`xs`,children:[(0,w.jsx)(s.t,{level:4,children:ze(e,r)}),(0,w.jsx)(o.t,{tone:`muted`,size:`sm`,children:n.length>0?C.itemsCount(n.length):d})]}),T.length>0&&(0,w.jsx)(h.i,{placement:`bottom-end`,trigger:(0,w.jsx)(`button`,{type:`button`,className:`day-menu-trigger`,"aria-label":p??`Day actions`,title:p??`Day actions`,children:(0,w.jsx)(t.cn,{size:18})}),children:T.map(t=>t.href?(0,w.jsx)(h.r,{icon:t.icon,label:t.label,href:t.href,color:t.color,disabled:t.disabled},t.id):(0,w.jsx)(h.r,{icon:t.icon,label:t.label,color:t.color,disabled:t.disabled,onClick:()=>t.onSelect?.(e,n)},t.id))})]}),l?(0,w.jsx)(st,{date:e,events:n,locale:r,startHour:i,endHour:c,overlapWarning:u,onAddEvent:m,addEventLabel:f,renderEventItem:b,renderEventMenu:S,onEventSelect:_,onEventEdit:v,onEventDelete:y,emptyStateText:d}):(0,w.jsx)(at,{events:n,locale:r,currentDate:e,emptyStateText:d,overlapWarning:u,renderEventItem:b,renderEventMenu:S,onEventSelect:_,onEventEdit:v,onEventDelete:y})]})}function lt({open:e,anchorRef:t,onClose:a,date:o,events:s,locale:c,timelineStartHour:l=0,timelineEndHour:u=23,showTimeline:f=!0,emptyStateText:p,overlapWarning:m=!1,onAddEvent:h,addEventLabel:_,dayMenuLabel:v,onEventSelect:y,onEventEdit:b,onEventDelete:S,renderEventItem:C,renderEventMenu:T,renderDayMenu:E,className:D,style:O}){let k=g.t(c),A=x.t();return(0,w.jsxs)(w.Fragment,{children:[e&&(0,w.jsx)(r.t,{children:(0,w.jsx)(`div`,{className:`calendar popover-shield`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),a()},onClick:e=>{e.preventDefault(),e.stopPropagation()},"aria-hidden":`true`})}),(0,w.jsx)(i.t,{open:e,anchorRef:t,onClose:a,placement:`bottom-start`,className:n.t(`calendar popover`,D),style:O,children:(0,w.jsx)(d.n,{className:`calendar event-popover`,children:(0,w.jsx)(d.r,{children:(0,w.jsx)(`div`,{className:`calendar popover-scroll`,children:(0,w.jsx)(ct,{date:o,events:s,locale:k,timelineStartHour:l,timelineEndHour:u,showTimeline:f,overlapWarning:m,emptyStateText:p??A.emptyStateText,addEventLabel:_,dayMenuLabel:v,onAddEvent:h,renderDayMenu:E,onEventSelect:y,onEventEdit:b,onEventDelete:S,renderEventItem:C,renderEventMenu:T})})})})})]})}function ut({month:t,defaultMonth:r,onMonthChange:i,events:c=[],locale:u,weekStartsOn:p=1,view:m,defaultView:h=`month`,views:_=[`month`,`week`],onViewChange:v,selectedDate:y,defaultSelectedDate:b,onDayClick:S,dayBadge:T,renderDayCell:E,renderEventItem:D,renderEventMenu:O,detailsMode:k=`auto`,showTimeline:A=!0,showHourBar:j=!0,timelineStartHour:M=0,timelineEndHour:ee=23,overlapWarning:te=!1,onAddEvent:N,addEventLabel:P=`Add event`,dayMenuLabel:ne,renderDayMenu:re,onEventSelect:ie,onEventEdit:ae,onEventDelete:oe,emptyStateText:se,filters:ce=[],activeFilters:le,defaultActiveFilters:F=[],onActiveFiltersChange:ue,fullWidth:de=!1,className:fe,...pe}){let me=g.t(u),I=x.r(),L=x.t(),he=Z(new Date),[R,ge]=(0,C.useState)(Z(r??t??he)),[_e,ve]=(0,C.useState)(h),[ye,be]=(0,C.useState)(Q(b)),[z,xe]=(0,C.useState)(F),[B,V]=(0,C.useState)(null),[Se,Ce]=(0,C.useState)(!1),[we,Te]=(0,C.useState)(!1),Ee=(0,C.useRef)(null),De=t!==void 0&&typeof i==`function`,H=Z(De?t??R:R),U=m??_e,W=Q(y)??ye,Oe=le??z;(0,C.useEffect)(()=>{let t=window.matchMedia(`(max-width: ${e.t.md}px)`),n=()=>Te(t.matches);return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[]),(0,C.useEffect)(()=>{De&&t&&ge(Z(t))},[De,t]),(0,C.useEffect)(()=>{m&&ve(m)},[m]),(0,C.useEffect)(()=>{y!==void 0&&be(Q(y))},[y]);let G=(0,C.useMemo)(()=>Ye(c,ce,Oe),[c,ce,Oe]),ke=(0,C.useMemo)(()=>{let e=new Map;return G.forEach(t=>{let n=Me(t);if(!n)return;let r=$(n),i=e.get(r)??[];i.push(t),e.set(r,i)}),e},[G]),K=(0,C.useMemo)(()=>{if(U===`week`){let e=Pe(W??H,p);return Array.from({length:7},(t,n)=>Ne(e,n))}return Ie(H,p)},[U,W,H,p]),q=k===`auto`?we?`modal`:`popover`:k,J=B?ke.get($(B))??[]:[],Ae=_.includes(`month`),Y=_.includes(`week`),X=e=>{let t=Z(e);ge(t),i?.(t)},je=e=>{if(U===`week`){let t=Ne(W??H,e*7);X(t),be(t),V(t),Ce(!1);return}X(new Date(H.getFullYear(),H.getMonth()+e,1)),Ce(!1),V(null)},Fe=e=>{ve(e),v?.(e)},Le=(e,t)=>{let n=Z(e);be(n),S?.(n,t)},Re=(e,t,n)=>{Ee.current=t,V(e),Le(e,n),Ce(!0)},ze=(e,t,n)=>{Re(e,t,n),U===`month`&&e.getMonth()!==H.getMonth()&&X(new Date(e.getFullYear(),e.getMonth(),1))},Be=e=>{let t=Oe.includes(e)?Oe.filter(t=>t!==e):[...Oe,e];xe(t),ue?.(t)},Ve=Pe(U===`week`?W??H:H,p);return(0,w.jsxs)(`div`,{className:n.t(`calendar board`,de&&`full-width`,fe),...pe,children:[(0,w.jsxs)(`div`,{className:`calendar header`,children:[(0,w.jsxs)(a.t,{children:[(0,w.jsx)(s.t,{level:3,children:Xe(H,U,me,p)}),(0,w.jsx)(o.t,{size:`sm`,tone:`muted`,children:Ze(U,L)})]}),(0,w.jsxs)(a.t,{align:`end`,children:[(0,w.jsxs)(`div`,{className:`calendar actions`,children:[(0,w.jsx)(l.t,{type:`button`,size:`sm`,variant:`outlined`,color:`neutral`,onClick:()=>je(-1),children:U===`week`?L.previousWeek:I.previousMonth}),(0,w.jsx)(l.t,{type:`button`,size:`sm`,variant:`outlined`,color:`neutral`,onClick:()=>je(1),children:U===`week`?L.nextWeek:I.nextMonth})]}),(Ae||Y)&&(0,w.jsxs)(`div`,{className:`calendar views`,children:[Ae&&(0,w.jsx)(l.t,{type:`button`,size:`sm`,variant:`outlined`,color:U===`month`?`primary`:`neutral`,active:U===`month`,onClick:()=>Fe(`month`),children:L.monthView}),Y&&(0,w.jsx)(l.t,{type:`button`,size:`sm`,variant:`outlined`,color:U===`week`?`primary`:`neutral`,active:U===`week`,onClick:()=>Fe(`week`),children:L.weekView})]})]})]}),(0,w.jsx)(tt,{filters:ce,activeFilterIds:Oe,onToggle:Be}),(0,w.jsx)(`div`,{className:`calendar days`,children:Array.from({length:7},(e,t)=>Ne(Ve,t)).map(e=>(0,w.jsx)(`div`,{className:`calendar day`,children:new Intl.DateTimeFormat(me,{weekday:`short`}).format(e)},$(e)))}),U===`week`?(0,w.jsx)(nt,{days:K,eventsByDay:ke,selectedDate:W,activeDate:B,onDayInteract:ze,dayBadge:T,renderDayCell:E,showHourBar:j,overlapWarning:te,onAddEvent:N,addEventLabel:P}):(0,w.jsx)(`div`,{className:`calendar grid`,children:K.map(e=>{let t=$(e),n=ke.get(t)??[],r=T?.(e,n)??(n.length>0?(0,w.jsx)(d.s,{size:`sm`,children:n.length}):null),i=t===$(he),a=!!(W&&t===$(W)),o=e.getMonth()!==H.getMonth(),s={date:e,events:n,badge:r,isToday:i,isSelected:a,isOutsideMonth:o};return(0,w.jsx)(rt,{date:e,events:n,badge:r,isToday:i,isSelected:a||!!(B&&t===$(B)),isOutsideMonth:o,showHourBar:j,overlapWarning:te,onAddEvent:N?e=>N(e):void 0,addEventLabel:P,onClick:t=>ze(e,t.currentTarget,n),children:E?E(e,s):void 0},t)})}),q===`popover`?(0,w.jsx)(lt,{open:Se&&!!B&&!!Ee.current,anchorRef:Ee,onClose:()=>Ce(!1),date:B,events:J,locale:me,timelineStartHour:M,timelineEndHour:ee,showTimeline:A,overlapWarning:te,onAddEvent:N,addEventLabel:P,dayMenuLabel:ne,renderDayMenu:re,onEventSelect:ie,onEventEdit:ae,onEventDelete:oe,emptyStateText:se??L.emptyStateText,renderEventItem:D,renderEventMenu:O}):(0,w.jsx)(f.t,{open:Se&&!!B,onClose:()=>Ce(!1),size:`lg`,children:(0,w.jsx)(`div`,{className:`calendar popover-scroll`,children:(0,w.jsx)(ct,{date:B,events:J,locale:me,timelineStartHour:M,timelineEndHour:ee,showTimeline:A,overlapWarning:te,emptyStateText:se??L.emptyStateText,addEventLabel:P,dayMenuLabel:ne,onAddEvent:N,renderDayMenu:re,onEventSelect:ie,onEventEdit:ae,onEventDelete:oe,renderEventItem:D,renderEventMenu:O})})})]})}var dt=[`primary`,`info`,`success`,`warning`,`error`,`news`,`neutral`,`dark`],ft={top:20,right:20,bottom:40,left:50},pt={top:20,right:20,bottom:55,left:65};function mt(e){return Math.abs(e)>=1e6?(e/1e6).toFixed(1).replace(/\.0$/,``)+`M`:Math.abs(e)>=1e3?(e/1e3).toFixed(1).replace(/\.0$/,``)+`k`:Number.isInteger(e)?String(e):e.toFixed(1)}function ht(e){return e}function gt({x:e,y:t,width:n,height:r,horizontalLines:i,verticalLines:a}){return(0,w.jsxs)(`g`,{className:`chart-grid`,children:[i.map((t,r)=>(0,w.jsx)(`line`,{x1:e,y1:t,x2:e+n,y2:t,className:`chart-grid-line`},`h${r}`)),a?.map((e,n)=>(0,w.jsx)(`line`,{x1:e,y1:t,x2:e,y2:t+r,className:`chart-grid-line chart-grid-line-vertical`},`v${n}`))]})}function _t({type:e,x:t,y:n,length:r,ticks:i,title:a}){let o=e===`x`;return(0,w.jsxs)(`g`,{className:`chart-axis chart-axis-${e}`,children:[(0,w.jsx)(`line`,{x1:t,y1:n,x2:o?t+r:t,y2:o?n:n-r,className:`chart-axis-line`}),i.map((e,r)=>(0,w.jsx)(`g`,{children:o?(0,w.jsx)(`text`,{x:e.position,y:n+16,textAnchor:`middle`,className:`chart-axis-label`,children:e.label}):(0,w.jsx)(`text`,{x:t-8,y:e.position,textAnchor:`end`,dominantBaseline:`middle`,className:`chart-axis-label`,children:e.label})},r)),a&&(o?(0,w.jsx)(`text`,{x:t+r/2,y:n+36,textAnchor:`middle`,className:`chart-axis-title`,children:a}):(0,w.jsx)(`text`,{x:t-40,y:n-r/2,textAnchor:`middle`,dominantBaseline:`middle`,transform:`rotate(-90, ${t-40}, ${n-r/2})`,className:`chart-axis-title`,children:a}))]})}function vt({data:e,colors:t,innerWidth:n,innerHeight:r,padding:i,xAxis:a,yAxis:o,showGrid:s,showXAxis:c,showYAxis:l,curved:u,animated:d,valueFormatter:f=mt,onTooltip:p,onDataClick:m}){let[h,g]=(0,C.useState)(null),_=n-i.left-i.right,v=r-i.top-i.bottom,{yMin:y,yMax:x,yTicks:S,xLabels:T,seriesPoints:E}=(0,C.useMemo)(()=>{let t=e.map(e=>e.data),[n,r]=b.u(t),i=o?.min??b.p(n),s=o?.max??b.f(r,n),c=b.l(i,s,o?.ticks??5),l=Math.max(...t.map(e=>e.length),1),u=a?.labels??Array.from({length:l},(e,t)=>String(t)),d=b.c([0,Math.max(l-1,1)],[0,_]),f=b.c([i,s],[v,0]);return{yMin:i,yMax:s,yTicks:c,xLabels:u,seriesPoints:t.map(e=>e.map((e,t)=>({x:d(t),y:f(e)})))}},[e,_,v,a,o]),D=b.c([y,x],[v,0]),O=b.c([0,Math.max(T.length-1,1)],[0,_]),k=(0,C.useCallback)(r=>{let a=r.currentTarget.closest(`svg`);if(!a)return;let o=a.getBoundingClientRect(),s=n/o.width,c=(r.clientX-o.left)*s-i.left,l=Math.round(c/_*Math.max(T.length-1,1)),u=Math.max(0,Math.min(l,T.length-1));g(u),p({label:T[u],items:e.map((e,n)=>({name:e.label,value:e.data[u]??0,color:e.color??t[n%t.length]})),x:r.clientX-o.left,y:r.clientY-o.top})},[e,t,T,_,i.left,n,p]),A=(0,C.useCallback)(()=>{g(null),p(null)},[p]),j=S.map(e=>i.top+D(e)),M=T.map((e,t)=>i.left+O(t)),ee=S.map(e=>({position:i.top+D(e),label:(o?.formatter??f)(e)})),te=T.map((e,t)=>({position:i.left+O(t),label:e}));return(0,w.jsxs)(`g`,{children:[s&&(0,w.jsx)(gt,{x:i.left,y:i.top,width:_,height:v,horizontalLines:j,verticalLines:M}),l&&(0,w.jsx)(_t,{type:`y`,x:i.left,y:i.top+v,length:v,ticks:ee,title:o?.title}),c&&(0,w.jsx)(_t,{type:`x`,x:i.left,y:i.top+v,length:_,ticks:te,title:a?.title}),(0,w.jsxs)(`g`,{onMouseMove:k,onMouseLeave:A,children:[(0,w.jsx)(`rect`,{x:i.left,y:i.top,width:_,height:v,fill:`transparent`}),E.map((n,r)=>{let a=e[r].color??t[r%t.length],o=u?b.i(n.map(e=>({x:e.x+i.left,y:e.y+i.top}))):b.a(n.map(e=>({x:e.x+i.left,y:e.y+i.top})));return(0,w.jsxs)(`g`,{children:[(0,w.jsx)(`path`,{className:`chart-line ${a} ${d?`animated`:``}`,d:o}),n.map((t,n)=>(0,w.jsx)(`circle`,{className:`chart-dot ${a} ${h===n?`active`:``}`,cx:t.x+i.left,cy:t.y+i.top,r:h===n?5:3,onClick:()=>m?.(r,n,e[r].data[n]),style:{cursor:m?`pointer`:void 0}},n))]},r)}),h!==null&&(0,w.jsx)(`line`,{className:`chart-crosshair`,x1:i.left+O(h),y1:i.top,x2:i.left+O(h),y2:i.top+v})]})]})}function yt({data:e,colors:t,innerWidth:n,innerHeight:r,padding:i,xAxis:a,yAxis:o,showGrid:s,showXAxis:c,showYAxis:l,stacked:u,animated:d,valueFormatter:f=mt,onTooltip:p,onDataClick:m}){let[h,g]=(0,C.useState)(null),_=n-i.left-i.right,v=r-i.top-i.bottom,{yMin:y,yMax:x,yTicks:S,xLabels:T,maxLen:E}=(0,C.useMemo)(()=>{let t=e.map(e=>e.data),n=Math.max(...t.map(e=>e.length),1),r,i;u?[r,i]=b.d(t):[r,i]=b.u(t);let s=o?.min??b.p(r),c=o?.max??b.f(i,r);return{yMin:s,yMax:c,yTicks:b.l(s,c,o?.ticks??5),xLabels:a?.labels??Array.from({length:n},(e,t)=>String(t)),maxLen:n}},[e,a,o,u]),D=b.c([y,x],[v,0]),O=_/E,k=Math.max(O*.1,2),A=e.length,j=(0,C.useCallback)((n,r,i)=>{g({di:n,pi:r});let a=i.currentTarget.closest(`svg`);if(!a)return;let o=a.getBoundingClientRect();p({label:T[r],items:u?e.map((e,n)=>({name:e.label,value:e.data[r]??0,color:e.color??t[n%t.length]})):[{name:e[n].label,value:e[n].data[r],color:e[n].color??t[n%t.length]}],x:i.clientX-o.left,y:i.clientY-o.top})},[e,t,T,u,p]),M=(0,C.useCallback)(()=>{g(null),p(null)},[p]),ee=S.map(e=>i.top+D(e)),te=T.map((e,t)=>({position:i.left+O*t+O/2,label:e})),N=S.map(e=>({position:i.top+D(e),label:(o?.formatter??f)(e)})),P=D(0);return(0,w.jsxs)(`g`,{children:[s&&(0,w.jsx)(gt,{x:i.left,y:i.top,width:_,height:v,horizontalLines:ee}),l&&(0,w.jsx)(_t,{type:`y`,x:i.left,y:i.top+v,length:v,ticks:N,title:o?.title}),c&&(0,w.jsx)(_t,{type:`x`,x:i.left,y:i.top+v,length:_,ticks:te,title:a?.title}),(0,w.jsx)(`g`,{onMouseLeave:M,children:u?T.map((n,r)=>{let a=P,o=O-k*2,s=i.left+O*r+k;return(0,w.jsx)(`g`,{children:e.map((n,c)=>{let l=n.data[r]??0,u=P-D(l),f=a-u;a=f;let p=n.color??t[c%t.length],g=h?.di===c&&h?.pi===r;return(0,w.jsx)(`rect`,{className:`chart-bar ${p} ${d?`animated`:``} ${g?`active`:``}`,x:s,y:i.top+f,width:Math.max(o,1),height:Math.max(u,0),rx:c===e.length-1?3:0,onMouseEnter:e=>j(c,r,e),onClick:()=>m?.(c,r,l),style:{cursor:m?`pointer`:void 0}},c)})},r)}):e.map((e,n)=>{let r=(O-k*2)/A;return(0,w.jsx)(`g`,{children:e.data.map((a,o)=>{let s=P-D(a),c=i.left+O*o+k+r*n,l=Math.min(P,D(a)),u=e.color??t[n%t.length],f=h?.di===n&&h?.pi===o;return(0,w.jsx)(`rect`,{className:`chart-bar ${u} ${d?`animated`:``} ${f?`active`:``}`,x:c,y:i.top+l,width:Math.max(r,1),height:Math.max(Math.abs(s),0),rx:3,onMouseEnter:e=>j(n,o,e),onClick:()=>m?.(n,o,a),style:{cursor:m?`pointer`:void 0}},o)})},n)})})]})}function bt({data:e,colors:t,innerWidth:n,innerHeight:r,padding:i,xAxis:a,yAxis:o,showGrid:s,showXAxis:c,showYAxis:l,curved:u,stacked:d,animated:f,valueFormatter:p=mt,onTooltip:m,onDataClick:h}){let[g,_]=(0,C.useState)(null),v=n-i.left-i.right,y=r-i.top-i.bottom,{yMin:x,yMax:S,yTicks:T,xLabels:E,seriesPoints:D,stackedPaths:O}=(0,C.useMemo)(()=>{let t=e.map(e=>e.data),n=Math.max(...t.map(e=>e.length),1),r,s;d?[r,s]=b.d(t):[r,s]=b.u(t);let c=o?.min??b.p(r),l=o?.max??b.f(s,r),f=b.l(c,l,o?.ticks??5),p=a?.labels??Array.from({length:n},(e,t)=>String(t)),m=b.c([0,Math.max(n-1,1)],[0,v]),h=b.c([c,l],[y,0]);if(d){let e=[];for(let r=0;r<t.length;r++){e[r]=[];for(let i=0;i<n;i++)e[r][i]=(t[r][i]??0)+(r>0?e[r-1][i]:0)}return{yMin:c,yMax:l,yTicks:f,xLabels:p,seriesPoints:[],stackedPaths:e.map((t,n)=>{let r=t.map((e,t)=>({x:i.left+m(t),y:i.top+h(e)}));return{area:b.s(r,n===0?t.map((e,t)=>({x:i.left+m(t),y:i.top+h(0)})):e[n-1].map((e,t)=>({x:i.left+m(t),y:i.top+h(e)})),u),line:u?b.i(r):b.a(r),topPts:r}})}}return{yMin:c,yMax:l,yTicks:f,xLabels:p,seriesPoints:t.map(e=>e.map((e,t)=>({x:i.left+m(t),y:i.top+h(e)}))),stackedPaths:void 0}},[e,v,y,a,o,d,u,i]),k=b.c([x,S],[y,0]),A=b.c([0,Math.max(E.length-1,1)],[0,v]),j=(0,C.useCallback)(r=>{let a=r.currentTarget.closest(`svg`);if(!a)return;let o=a.getBoundingClientRect(),s=n/o.width,c=(r.clientX-o.left)*s-i.left,l=Math.round(c/v*Math.max(E.length-1,1)),u=Math.max(0,Math.min(l,E.length-1));_(u),m({label:E[u],items:e.map((e,n)=>({name:e.label,value:e.data[u]??0,color:e.color??t[n%t.length]})),x:r.clientX-o.left,y:r.clientY-o.top})},[e,t,E,v,i.left,n,m]),M=(0,C.useCallback)(()=>{_(null),m(null)},[m]),ee=T.map(e=>i.top+k(e)),te=T.map(e=>({position:i.top+k(e),label:(o?.formatter??p)(e)})),N=E.map((e,t)=>({position:i.left+A(t),label:e}));return(0,w.jsxs)(`g`,{children:[s&&(0,w.jsx)(gt,{x:i.left,y:i.top,width:v,height:y,horizontalLines:ee}),l&&(0,w.jsx)(_t,{type:`y`,x:i.left,y:i.top+y,length:y,ticks:te,title:o?.title}),c&&(0,w.jsx)(_t,{type:`x`,x:i.left,y:i.top+y,length:v,ticks:N,title:a?.title}),(0,w.jsxs)(`g`,{onMouseMove:j,onMouseLeave:M,children:[(0,w.jsx)(`rect`,{x:i.left,y:i.top,width:v,height:y,fill:`transparent`}),d&&O?O.map((n,r)=>{let i=e[r].color??t[r%t.length];return(0,w.jsxs)(`g`,{children:[(0,w.jsx)(`path`,{className:`chart-area-fill ${i}`,d:n.area}),(0,w.jsx)(`path`,{className:`chart-line ${i} ${f?`animated`:``}`,d:n.line})]},r)}):D.map((n,r)=>{let a=e[r].color??t[r%t.length],o=u?b.i(n):b.a(n),s=b.r(n,i.top+y,u);return(0,w.jsxs)(`g`,{children:[(0,w.jsx)(`path`,{className:`chart-area-fill ${a}`,d:s}),(0,w.jsx)(`path`,{className:`chart-line ${a} ${f?`animated`:``}`,d:o}),n.map((t,n)=>(0,w.jsx)(`circle`,{className:`chart-dot ${a} ${g===n?`active`:``}`,cx:t.x,cy:t.y,r:g===n?5:3,onClick:()=>h?.(r,n,e[r].data[n]),style:{cursor:h?`pointer`:void 0}},n))]},r)}),g!==null&&(0,w.jsx)(`line`,{className:`chart-crosshair`,x1:i.left+A(g),y1:i.top,x2:i.left+A(g),y2:i.top+y})]})]})}function xt({data:e,colors:t,innerWidth:n,innerHeight:r,donut:i,donutWidth:a,animated:o,valueFormatter:s=mt,xAxis:c,onTooltip:l,onDataClick:u}){let[d,f]=(0,C.useState)(null),p=n/2,m=r/2,h=Math.min(p,m)-10,g=i?h-(a??h*.4):0,_=(0,C.useMemo)(()=>{let n=e.length===1?e[0].data:e.map(e=>e.data[0]??0),r=e.length===1?c?.labels??n.map((e,t)=>`Segment ${t+1}`):e.map(e=>e.label),i=n.reduce((e,t)=>e+Math.max(t,0),0)||1,a=-Math.PI/2;return n.map((n,o)=>{let s=Math.max(n,0)/i*Math.PI*2,c={value:n,label:r[o]??`Segment ${o+1}`,color:(e.length===1?void 0:e[o].color)??t[o%t.length],startAngle:a,endAngle:a+s,percentage:Math.max(n,0)/i*100};return a+=s,c})},[e,t,c]),v=(0,C.useCallback)((e,t)=>{f(e);let n=t.currentTarget.closest(`svg`);if(!n)return;let r=n.getBoundingClientRect();l({label:_[e].label,items:[{name:_[e].label,value:_[e].value,color:_[e].color}],x:t.clientX-r.left,y:t.clientY-r.top})},[_,l]),y=(0,C.useCallback)(()=>{f(null),l(null)},[l]);return(0,w.jsxs)(`g`,{children:[_.map((e,t)=>{let n=d===t,r=b.o(p,m,n?h+4:h,g,e.startAngle,e.endAngle);return(0,w.jsx)(`path`,{className:`chart-pie-segment ${e.color} ${o?`animated`:``} ${n?`active`:``}`,d:r,onMouseEnter:e=>v(t,e),onMouseLeave:y,onMouseMove:t=>{let n=t.currentTarget.closest(`svg`);if(!n)return;let r=n.getBoundingClientRect();l({label:e.label,items:[{name:e.label,value:e.value,color:e.color}],x:t.clientX-r.left,y:t.clientY-r.top})},onClick:()=>u?.(0,t,e.value),style:{cursor:u?`pointer`:void 0}},t)}),i&&(0,w.jsx)(`text`,{x:p,y:m,textAnchor:`middle`,dominantBaseline:`middle`,className:`chart-pie-center`,children:s(d===null?_.reduce((e,t)=>e+t.value,0):_[d].value)})]})}var St=[`primary`,`info`,`success`,`warning`,`error`,`news`,`neutral`,`dark`,`light`];function Ct(){return(0,w.jsxs)(`defs`,{children:[St.map(e=>(0,w.jsxs)(`linearGradient`,{id:`chart-bar-grad-${e}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,w.jsx)(`stop`,{offset:`0%`,className:`chart-grad-stop-start ${e}`}),(0,w.jsx)(`stop`,{offset:`100%`,className:`chart-grad-stop-end ${e}`})]},`bar-${e}`)),St.map(e=>(0,w.jsxs)(`linearGradient`,{id:`chart-pie-grad-${e}`,x1:`0.3`,y1:`0`,x2:`0.7`,y2:`1`,children:[(0,w.jsx)(`stop`,{offset:`0%`,className:`chart-grad-stop-start ${e}`}),(0,w.jsx)(`stop`,{offset:`100%`,className:`chart-grad-stop-end ${e}`})]},`pie-${e}`)),St.map(e=>(0,w.jsxs)(`linearGradient`,{id:`chart-area-grad-${e}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,w.jsx)(`stop`,{offset:`0%`,className:`chart-grad-area-start ${e}`}),(0,w.jsx)(`stop`,{offset:`100%`,className:`chart-grad-area-end ${e}`})]},`area-${e}`))]})}function wt({data:e,valueFormatter:t}){return e?(0,w.jsxs)(`div`,{className:`chart-tooltip`,style:{left:e.x,top:e.y},children:[(0,w.jsx)(`div`,{className:`chart-tooltip-label`,children:e.label}),e.items.map((e,n)=>(0,w.jsxs)(`div`,{className:`chart-tooltip-row`,children:[(0,w.jsx)(`span`,{className:`chart-tooltip-dot ${e.color}`}),(0,w.jsx)(`span`,{className:`chart-tooltip-name`,children:e.name}),(0,w.jsx)(`span`,{className:`chart-tooltip-value`,children:t(e.value)})]},n))]}):null}function Tt({items:e}){return e.length<=1?null:(0,w.jsx)(`div`,{className:`chart-legend`,children:e.map((e,t)=>(0,w.jsxs)(`div`,{className:`chart-legend-item`,children:[(0,w.jsx)(`span`,{className:`chart-legend-dot ${e.color}`}),(0,w.jsx)(`span`,{className:`chart-legend-label`,children:e.label})]},t))})}function Et({type:e,data:t,width:r=`100%`,height:i=300,aspectRatio:a,xAxis:o,yAxis:s,showGrid:c=!0,showXAxis:l=!0,showYAxis:u=!0,showLegend:d=!0,showTooltip:f=!0,animated:p=!0,stacked:m=!1,curved:h=!1,donut:g=!1,donutWidth:_,valueFormatter:v=mt,labelFormatter:y=ht,onDataClick:b,className:x,style:S,...T}){let E=(0,C.useRef)(null),[D,O]=(0,C.useState)(null),k=dt,A=o?.title||s?.title?pt:ft,j=a?void 0:typeof i==`number`?i:300,M=j??300,ee=(0,C.useCallback)(e=>{f&&O(e)},[f]),te=(0,C.useMemo)(()=>e===`pie`&&t.length===1?(o?.labels??t[0].data.map((e,t)=>`Segment ${t+1}`)).map((e,t)=>({label:e,color:k[t%k.length]})):t.map((e,t)=>({label:e.label,color:e.color??k[t%k.length]})),[t,k,e,o]),N={data:t,colors:k,innerWidth:600,innerHeight:M,padding:A,xAxis:o,yAxis:s,showGrid:c,showXAxis:l,showYAxis:u,animated:p,valueFormatter:v,onTooltip:ee,onDataClick:b};return(0,w.jsxs)(`div`,{ref:E,className:n.t(`chart`,x),style:{width:r,height:a?void 0:j,aspectRatio:a?String(a):void 0,...S},...T,children:[(0,w.jsxs)(`svg`,{viewBox:`0 0 600 ${M}`,preserveAspectRatio:`xMidYMid meet`,className:`chart-svg`,children:[(0,w.jsx)(Ct,{}),e===`line`&&(0,w.jsx)(vt,{...N,curved:h}),e===`bar`&&(0,w.jsx)(yt,{...N,stacked:m}),e===`area`&&(0,w.jsx)(bt,{...N,curved:h,stacked:m}),e===`pie`&&(0,w.jsx)(xt,{...N,donut:g,donutWidth:_})]}),f&&(0,w.jsx)(wt,{data:D,valueFormatter:v}),d&&(0,w.jsx)(Tt,{items:te})]})}function Dt(e){return(0,w.jsx)(Et,{type:`line`,...e})}function Ot(e){return(0,w.jsx)(Et,{type:`bar`,...e})}function kt(e){return(0,w.jsx)(Et,{type:`area`,...e})}function At(e){return(0,w.jsx)(Et,{type:`pie`,...e})}Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return ut}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return at}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return st}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return kt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Ot}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return At}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return M}});
|
|
2
|
+
//# sourceMappingURL=data-DtShJEic.cjs.map
|