@banzamel/mineralui 2.1.3 → 2.1.4
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/{MDropdownMenu-C2lftqSx.cjs → MDropdownMenu-BvN5grK5.cjs} +2 -2
- package/dist/{MDropdownMenu-C2lftqSx.cjs.map → MDropdownMenu-BvN5grK5.cjs.map} +1 -1
- package/dist/{MDropdownMenu-BeD_DxPr.js → MDropdownMenu-CFoKJ7V6.js} +2 -2
- package/dist/{MDropdownMenu-BeD_DxPr.js.map → MDropdownMenu-CFoKJ7V6.js.map} +1 -1
- package/dist/{MInputCVC-DvUOzpYp.js → MInputCVC-B4V0QI5h.js} +2 -2
- package/dist/{MInputCVC-DvUOzpYp.js.map → MInputCVC-B4V0QI5h.js.map} +1 -1
- package/dist/{MInputCVC-_2ALihF1.cjs → MInputCVC-BlY5OrVn.cjs} +2 -2
- package/dist/{MInputCVC-_2ALihF1.cjs.map → MInputCVC-BlY5OrVn.cjs.map} +1 -1
- package/dist/MPopover-C5aaGhma.js +150 -0
- package/dist/MPopover-C5aaGhma.js.map +1 -0
- package/dist/MPopover-CV-9MArH.cjs +2 -0
- package/dist/MPopover-CV-9MArH.cjs.map +1 -0
- package/dist/{cards-fRWZkts9.cjs → cards-CQSYgH9U.cjs} +2 -2
- package/dist/{cards-fRWZkts9.cjs.map → cards-CQSYgH9U.cjs.map} +1 -1
- package/dist/{cards-DYmK8TpL.js → cards-Cpr9B8Mu.js} +4 -4
- package/dist/{cards-DYmK8TpL.js.map → cards-Cpr9B8Mu.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +1 -1
- package/dist/components/primitives/MPopover/popoverStack.d.ts +32 -0
- package/dist/{data-CuynADWM.cjs → data-BZ92hzXx.cjs} +2 -2
- package/dist/{data-CuynADWM.cjs.map → data-BZ92hzXx.cjs.map} +1 -1
- package/dist/{data-D8WFA3Et.js → data-C-6DP7iY.js} +2 -2
- package/dist/{data-D8WFA3Et.js.map → data-C-6DP7iY.js.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +1 -1
- package/dist/{dropdowns-5cJf-6UG.js → dropdowns-DiThUF7D.js} +2 -2
- package/dist/{dropdowns-5cJf-6UG.js.map → dropdowns-DiThUF7D.js.map} +1 -1
- package/dist/{dropdowns-C-ASvu7P.cjs → dropdowns-bQ0cEKNN.cjs} +2 -2
- package/dist/{dropdowns-C-ASvu7P.cjs.map → dropdowns-bQ0cEKNN.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +8 -8
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +1 -1
- package/dist/{layout-i8H5tIbO.js → layout-CdSpVJuK.js} +2 -2
- package/dist/{layout-i8H5tIbO.js.map → layout-CdSpVJuK.js.map} +1 -1
- package/dist/{layout-CfolwT8L.cjs → layout-Ddo7HUPu.cjs} +2 -2
- package/dist/{layout-CfolwT8L.cjs.map → layout-Ddo7HUPu.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{overlays-zPzbHW5P.cjs → overlays-BUZEaZaJ.cjs} +2 -2
- package/dist/{overlays-zPzbHW5P.cjs.map → overlays-BUZEaZaJ.cjs.map} +1 -1
- package/dist/{overlays-CAcGmqNv.js → overlays-C1vO_A2I.js} +2 -2
- package/dist/{overlays-CAcGmqNv.js.map → overlays-C1vO_A2I.js.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +2 -2
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +1 -1
- package/package.json +1 -1
- package/dist/MPopover-Cweomcj2.cjs +0 -2
- package/dist/MPopover-Cweomcj2.cjs.map +0 -1
- package/dist/MPopover-DT3vclV1.js +0 -98
- package/dist/MPopover-DT3vclV1.js.map +0 -1
package/dist/dropdowns.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(`./dropdowns-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./dropdowns-bQ0cEKNN.cjs`);exports.MAutocomplete=e.i,exports.MDatePicker=e.r,exports.MDateRangePicker=e.t,exports.MSelect=e.a,exports.MTimePicker=e.n;
|
package/dist/dropdowns.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { a as e, i as t, n, r, t as i } from "./dropdowns-
|
|
3
|
+
import { a as e, i as t, n, r, t as i } from "./dropdowns-DiThUF7D.js";
|
|
4
4
|
export { t as MAutocomplete, r as MDatePicker, i as MDateRangePicker, e as MSelect, n as MTimePicker };
|
package/dist/index.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(`./theme-BfNZicWk.cjs`),t=require(`./MI18nProvider-Cg-vxV6j.cjs`);require(`./i18n.cjs`);const n=require(`./icons-D675Im0B.cjs`),r=require(`./cn-CU5TNITO.cjs`),i=require(`./MConflictIllustration-B2AtfpYO.cjs`),a=require(`./validators-B6yWdsu2.cjs`),o=require(`./creditCards-D_HwRUBz.cjs`),s=require(`./formatters-CNjg_h7-.cjs`),c=require(`./dateUtils-Dq1vaA-D.cjs`),l=require(`./relativeTime-DgYBUaVm.cjs`),u=require(`./useGhostText-Dmkw3Am8.cjs`),d=require(`./licensing-DysMClel.cjs`),f=require(`./useKeyboardNav-HVG9JFD2.cjs`),p=require(`./useInteractionEffect-DFTdcWHl.cjs`),m=require(`./MPortal-BciZHNDC.cjs`),h=require(`./MPopover-Cweomcj2.cjs`);require(`./primitives.cjs`);const g=require(`./layout-CfolwT8L.cjs`),_=require(`./MSurface-CYeVFOw_.cjs`),v=require(`./MText-j6Zbbj5Y.cjs`),y=require(`./MHeading-BLnb3dNv.cjs`),b=require(`./MLink-Biipj7xz.cjs`),x=require(`./typography-Dk9kIORI.cjs`),S=require(`./MSubText-VHsgFsv2.cjs`),C=require(`./MKbd-n4fhKIxb.cjs`),w=require(`./MButton-R08y1HCT.cjs`),T=require(`./feedback-4TjD57rX.cjs`),E=require(`./MButtonGroup-C-LiXWRC.cjs`),D=require(`./MCheckbox-CM5HJQWW.cjs`),O=require(`./controls-CT_0lIPr.cjs`),k=require(`./MSlider-DZnMB49q.cjs`),A=require(`./MSkeleton-CLSU5pL6.cjs`),j=require(`./MTag-BzTp1crT.cjs`),M=require(`./MLoader-XcpKlLrd.cjs`),N=require(`./MGrid-B_0kFUws.cjs`),P=require(`./MStack-BP_BUeCc.cjs`),F=require(`./MSimpleGrid-BwNfaxQP.cjs`),I=require(`./MCard-1OVOl4Ql.cjs`),L=require(`./cards-fRWZkts9.cjs`),R=require(`./MInput-BpTlP8GE.cjs`),z=require(`./MInputCVC-_2ALihF1.cjs`),B=require(`./media-DRz3JZfr.cjs`),V=require(`./MAvatar-bUWENcq-.cjs`),H=require(`./display-DMix8BmD.cjs`),U=require(`./MDetailList-DTLU7HQZ.cjs`),W=require(`./inputs-yaaTPTsY.cjs`),G=require(`./MInputSearch-9wcXlY8-.cjs`),K=require(`./data-CuynADWM.cjs`),q=require(`./MTreeView-DuQkm0ZV.cjs`),J=require(`./overlays-zPzbHW5P.cjs`),Y=require(`./MTooltip-BEfO9jTe.cjs`),X=require(`./MDropdownMenu-C2lftqSx.cjs`),Z=require(`./MPagination-C6QQdEj_.cjs`),Q=require(`./dropdowns-C-ASvu7P.cjs`),$=require(`./form-BWGLrCPi.cjs`);exports.MAccordion=H.p,exports.MAccordionItem=H.m,exports.MAccountantIllustration=i.S,exports.MAirplaneFillIcon=n.$,exports.MAirplaneIcon=n.et,exports.MAlert=T.a,exports.MAmazonColorIcon=n.t,exports.MAmazonIcon=n.n,exports.MAmericanExpressColorIcon=n.Z,exports.MAmericanExpressIcon=n.Q,exports.MAnalyticsIllustration=i.tt,exports.MApartmentIcon=n.ct,exports.MAppShell=g.r,exports.MAppleColorIcon=n.r,exports.MAppleIcon=n.i,exports.MArchiveIcon=n.kt,exports.MArrowDownIcon=n.Vi,exports.MArrowLeftIcon=n.Wi,exports.MArrowRightIcon=n.Ui,exports.MArrowUpDownIcon=n.Bi,exports.MArrowUpIcon=n.Hi,exports.MAttachIcon=n.zi,exports.MAttendanceIllustration=i.f,exports.MAudioFileIllustration=i.a,exports.MAutocomplete=Q.i,exports.MAvatar=V.t,exports.MBadge=A.n,exports.MBankIcon=n.fr,exports.MBanner=T.i,exports.MBasketIcon=n.pn,exports.MCartIcon=n.pn,exports.MBellIcon=n.zn,exports.MBlur=H.a,exports.MBody=g.i,exports.MBoltIcon=n.Pn,exports.MBookIcon=n.st,exports.MBookOpenFillIcon=n.it,exports.MBookOpenIcon=n.at,exports.MBookmarkFillIcon=n.bt,exports.MBookmarkIcon=n.xt,exports.MBooksIcon=n.ot,exports.MBoxIcon=n.Mn,exports.MBreadcrumb=g.a,exports.MBreakpoints=e.t,exports.MBugIcon=n.pr,exports.MBuildingIcon=n.Yn,exports.MButton=w.t,exports.MButtonGroup=E.t,exports.MCalendarBoardIllustration=i.H,exports.MCalendarIcon=n.Ri,exports.MCalendarIllustration=i.et,exports.MCameraIcon=n.gn,exports.MCanvasGrid=g.n,exports.MCarFillIcon=n.nt,exports.MCarIcon=n.rt,exports.MCard=I.t,exports.MCardActionArea=L.p,exports.MCardBody=I.n,exports.MCardCourse=L.l,exports.MCardDaySchedule=L.n,exports.MCardDocumentTree=L.t,exports.MCardEvent=L.o,exports.MCardFooter=I.r,exports.MCardGrid=L.r,exports.MCardHeader=I.i,exports.MCardOffer=L.u,exports.MCardPayment=L.f,exports.MCardPaymentMethod=L.d,exports.MCardProduct=L.s,exports.MCardStat=L.i,exports.MCardTile=L.c,exports.MCardWidget=L.a,exports.MCarousel=B.t,exports.MCertificateIllustration=i.u,exports.MChartIcon=n.dn,exports.MChatIcon=n.yn,exports.MChatIllustration=i.q,exports.MChatsIcon=n.vn,exports.MCheckCircleIcon=n.xi,exports.MCheckIcon=n.Yi,exports.MCheckbox=D.t,exports.MChevronDownIcon=n.Ki,exports.MChevronLeftIcon=n.Ji,exports.MChevronRightIcon=n.qi,exports.MChevronUpIcon=n.Gi,exports.MClassroomIcon=n.gt,exports.MClassroomIllustration=i.g,exports.MClickIcon=n.Hn,exports.MClipboardIcon=n.mn,exports.MClockIcon=n.Li,exports.MCloseIcon=n.Xi,exports.MCode=x.r,exports.MCodeBlock=H.u,exports.MCoinIcon=n.or,exports.MCollapsible=H.h,exports.MColorPicker=H.s,exports.MColumnsIcon=n.vt,exports.MCommandPalette=J.o,exports.MCommentIcon=n._n,exports.MConflictIllustration=i.t,exports.MContainer=g.x,exports.MCopyIcon=n.Kn,exports.MCopyrightIcon=n.Ii,exports.MCorporateIllustration=i.w,exports.MCountUp=H.d,exports.MCountUpIllustration=i.z,exports.MCourseIllustration=i._,exports.MCreditCardIcon=n.cr,exports.MCubeIcon=n.vr,exports.MDashboardIcon=n.kr,exports.MDashboardIllustration=i.lt,exports.MDataTable=K.a,exports.MDataTableIllustration=i.M,exports.MDatabaseIcon=n.jn,exports.MDatePicker=Q.r,exports.MDatePickerIllustration=i.G,exports.MDateRangePicker=Q.t,exports.MDateRangePickerIllustration=i.W,exports.MDetailList=U.t,exports.MDeviceMonitorIcon=n.Ai,exports.MDevicePhoneIcon=n.Mi,exports.MDeviceTabletIcon=n.ji,exports.MDiscordColorIcon=n.j,exports.MDiscordIcon=n.M,exports.MDiscoverColorIcon=n.a,exports.MDiscoverIcon=n.o,exports.MDivider=g.m,exports.MDocCopyIcon=n.hi,exports.MDocIcon=n.An,exports.MDocPlusIcon=n.gi,exports.MDollarIcon=n.Tn,exports.MDownloadIcon=n.Wn,exports.MDrawer=J.n,exports.MDrawerBody=J.r,exports.MDrawerFooter=J.i,exports.MDrawerHeader=J.a,exports.MDropdownDivider=X.t,exports.MDropdownGroup=X.n,exports.MDropdownItem=X.r,exports.MDropdownMenu=X.i,exports.MEditIcon=n.Gn,exports.MEllipsisHorizontalIcon=n.tr,exports.MEllipsisVerticalIcon=n.Xn,exports.MEmptyState=H.o,exports.MEmptyStateIllustration=i.ct,exports.MEnrollmentIllustration=i.p,exports.MErrorIcon=n.wi,exports.MErrorIllustration=i.st,exports.MEuroIcon=n.wn,exports.MExamIllustration=i.d,exports.MExternalLinkIcon=n.Un,exports.MEyeIcon=n.ur,exports.MEyeOffIcon=n.lr,exports.MFacebookColorIcon=n.N,exports.MFacebookIcon=n.P,exports.MFamilyIllustration=i.T,exports.MFigmaColorIcon=n.F,exports.MFigmaIcon=n.I,exports.MFileArchiveIcon=n.ui,exports.MFileCodeIcon=n.di,exports.MFileCssIcon=n.Lr,exports.MFileCsvIcon=n.Rr,exports.MFileDocsIcon=n.zr,exports.MFileExeIcon=n.Br,exports.MFileGifIcon=n.Vr,exports.MFileHtmlIcon=n.Hr,exports.MFileIcon=n._i,exports.MFileImageIcon=n.fi,exports.MFileJpgIcon=n.Ur,exports.MFileJsIcon=n.Wr,exports.MFileJsonIcon=n.Gr,exports.MFileJsxIcon=n.Kr,exports.MFileManagerIllustration=i.V,exports.MFileMdIcon=n.qr,exports.MFileMp3Icon=n.Jr,exports.MFileMp4Icon=n.Yr,exports.MFileOdtIcon=n.Xr,exports.MFilePdfIcon=n.pi,exports.MFilePhpIcon=n.Zr,exports.MFilePngIcon=n.Qr,exports.MFilePptIcon=n.$r,exports.MFileRarIcon=n.ei,exports.MFileSvgIcon=n.ti,exports.MFileTextIcon=n.mi,exports.MFileTsIcon=n.ni,exports.MFileTsxIcon=n.ri,exports.MFileTxtIcon=n.ii,exports.MFileVideoIcon=n.li,exports.MFileWebpIcon=n.ai,exports.MFileXlsIcon=n.oi,exports.MFileXmlIcon=n.si,exports.MFileZipIcon=n.ci,exports.MFilterIcon=n.Jn,exports.MFlagArIcon=n.Kt,exports.MFlagAtIcon=n.Nt,exports.MFlagAuIcon=n.It,exports.MFlagBrIcon=n.Gt,exports.MFlagCaIcon=n.Ut,exports.MFlagChIcon=n.Ft,exports.MFlagCnIcon=n.Zt,exports.MFlagCzIcon=n.Xt,exports.MFlagDeIcon=n.nn,exports.MFlagEsIcon=n.$t,exports.MFlagFrIcon=n.tn,exports.MFlagGbIcon=n.rn,exports.MFlagIeIcon=n.Pt,exports.MFlagInIcon=n.Wt,exports.MFlagItIcon=n.Qt,exports.MFlagJpIcon=n.Jt,exports.MFlagKrIcon=n.Rt,exports.MFlagMxIcon=n.Ht,exports.MFlagNlIcon=n.Vt,exports.MFlagNoIcon=n.zt,exports.MFlagPlIcon=n.an,exports.MFlagPtIcon=n.Mt,exports.MFlagRuIcon=n.qt,exports.MFlagSeIcon=n.Bt,exports.MFlagSkIcon=n.Yt,exports.MFlagTrIcon=n.Lt,exports.MFlagUaIcon=n.en,exports.MFlagUsIcon=n.in,exports.MFlatIcon=n.dt,exports.MFolderIcon=n.Ir,exports.MFolderOpenIcon=n.Fr,exports.MFolderPlusIcon=n.Pr,exports.MFooter=g.y,exports.MForm=$.n,exports.MFormIcon=n.Er,exports.MFormsIllustration=i.F,exports.MGallery=B.n,exports.MGalleryIcon=n.Vn,exports.MGalleryIllustration=i.k,exports.MGitHubColorIcon=n.L,exports.MGitHubIcon=n.R,exports.MGlobeIcon=n.ki,exports.MGoogleColorIcon=n.z,exports.MGoogleIcon=n.B,exports.MGrid=N.t,exports.MGridItem=N.n,exports.MGroupClassIllustration=i.m,exports.MGroupIcon=n.mr,exports.MHeader=g.b,exports.MHeading=y.t,exports.MHeartFillIcon=n.nr,exports.MHeartIcon=n.rr,exports.MHelpIcon=n.Di,exports.MHistoryIcon=n.Ot,exports.MHomeIcon=n.jr,exports.MHouseIcon=n.lt,exports.MI18nIllustration=i.L,exports.MI18nProvider=t.t,exports.MIcon=n.Qi,exports.MIconsIllustration=i.I,exports.MIdCardIcon=n.dr,exports.MIllustration=i.ut,exports.MImage=B.r,exports.MImageIcon=n.Bn,exports.MInfoIcon=n.Ti,exports.MInline=_.n,exports.MInput=R.t,exports.MInputCVC=z.t,exports.MInputCreditCard=W.a,exports.MInputCurrency=W.s,exports.MInputDate=W.o,exports.MInputEmail=W.m,exports.MInputExpDate=z.n,exports.MInputFile=W.t,exports.MInputGroup=W.u,exports.MInputIBAN=W.l,exports.MInputName=W.d,exports.MInputNumber=W.h,exports.MInputOTP=W.r,exports.MInputPassword=W.g,exports.MInputPhone=W.f,exports.MInputPostCode=W.i,exports.MInputSearch=G.t,exports.MInputSlider=W.n,exports.MInputTaxId=W.c,exports.MInputUrl=W.p,exports.MInstagramColorIcon=n.V,exports.MInstagramIcon=n.H,exports.MInvoiceIllustration=i.i,exports.MKanbanIcon=n.Dr,exports.MKbd=C.t,exports.MKeyIcon=n.Tt,exports.MLayoutIcon=n.Ar,exports.MLessonIcon=n._t,exports.MLetsEncryptColorIcon=n.s,exports.MLetsEncryptIcon=n.c,exports.MLibraryIllustration=i.s,exports.MLightbulbIcon=n.Fn,exports.MLink=b.t,exports.MLinkIcon=n.On,exports.MLinkedInColorIcon=n.U,exports.MLinkedInIcon=n.W,exports.MList=x.t,exports.MListIcon=n.yt,exports.MListItem=x.n,exports.MListeningIllustration=i.x,exports.MLoadMore=O.i,exports.MLoader=M.t,exports.MLockIcon=n.Dn,exports.MLockOpenIcon=n.En,exports.MMaestroColorIcon=n.l,exports.MMaestroIcon=n.u,exports.MMagicIcon=n.kn,exports.MMailIcon=n.Fi,exports.MMailIllustration=i.rt,exports.MMailOpenIcon=n.Pi,exports.MMakeupIcon=n.ht,exports.MMasonryIllustration=i.K,exports.MMastercardColorIcon=n.d,exports.MMastercardIcon=n.f,exports.MMenuIcon=n.Zn,exports.MMicrosoftColorIcon=n.p,exports.MMicrosoftIcon=n.m,exports.MMinusIcon=n.Mr,exports.MModal=J.c,exports.MMoneyIcon=n.ar,exports.MMoonIcon=n.In,exports.MMoveIcon=n.Sr,exports.MNavbar=g._,exports.MNavbarIllustration=i.A,exports.MNavs=g.v,exports.MNeutralIcon=n.Si,exports.MNotFoundIllustration=i.ot,exports.MNotificationsIllustration=i.Y,exports.MOfficeIllustration=i.C,exports.MOnboardingIllustration=i.Z,exports.MOnlineLessonIllustration=i.h,exports.MPagination=Z.t,exports.MPaletteIcon=n.Cn,exports.MPayPalColorIcon=n.h,exports.MPayPalIcon=n.g,exports.MPhoneIcon=n.Ni,exports.MPinIcon=n.Oi,exports.MPinterestColorIcon=n._,exports.MPinterestIcon=n.v,exports.MPlayIcon=n.xr,exports.MPlusIcon=n.Nr,exports.MPopconfirm=J.t,exports.MPopover=h.t,exports.MPortal=m.t,exports.MPrinterIcon=n.At,exports.MProgressBar=H.f,exports.MProgressIllustration=i.l,exports.MProgressRing=T.r,exports.MProtectIcon=n.Nn,exports.MPuzzleIcon=n.Sn,exports.MQrCodeIcon=n.un,exports.MQrCodeIllustration=i.B,exports.MQuickActions=O.n,exports.MRadio=O.s,exports.MRadioGroup=O.o,exports.MRating=U.n,exports.MReadingIllustration=i.y,exports.MReceiptIcon=n.ir,exports.MReceiptIllustration=i.r,exports.MRedoIcon=n.Et,exports.MRefreshIcon=n.xn,exports.MRefundIllustration=i.n,exports.MResizeIcon=n.yr,exports.MReveal=H.l,exports.MReviewIllustration=i.c,exports.MRoomIcon=n.ft,exports.MScrollTop=O.r,exports.MSearchIcon=n.Zi,exports.MSearchIllustration=i.it,exports.MSection=g.g,exports.MSecurityIllustration=i.nt,exports.MSelect=Q.a,exports.MSendIcon=n.bn,exports.MSettingsIcon=n.fn,exports.MSettingsIllustration=i.$,exports.MShareIcon=n.jt,exports.MSheet=J.s,exports.MShellBreakpoints=e.n,exports.MShipIcon=n.tt,exports.MShopIcon=n.ut,exports.MShowcaseIllustration=i.U,exports.MSidebar=g.o,exports.MSidebarBody=g.s,exports.MSidebarDivider=g.c,exports.MSidebarFooter=g.l,exports.MSidebarGroup=g.u,exports.MSidebarHeader=g.d,exports.MSidebarIcon=n.Or,exports.MSidebarIllustration=i.N,exports.MSidebarItem=g.f,exports.MSidebarNav=g.p,exports.MSignal1Icon=n.ln,exports.MSignal2Icon=n.cn,exports.MSignal3Icon=n.sn,exports.MSignal4Icon=n.on,exports.MSimpleGrid=F.t,exports.MSkeleton=A.t,exports.MSlackColorIcon=n.G,exports.MSlackIcon=n.K,exports.MSlider=k.t,exports.MSlidersIcon=n.Tr,exports.MSocialButton=O.t,exports.MSortIcon=n.qn,exports.MSpeakingIllustration=i.b,exports.MSpinner=w.r,exports.MSpotifyColorIcon=n.y,exports.MSpotifyIcon=n.b,exports.MStack=P.t,exports.MStarFillIcon=n.vi,exports.MStarIcon=n.yi,exports.MStatGrid=g.h,exports.MStep=H.r,exports.MStepper=H.i,exports.MStickyPanel=g.t,exports.MStopIcon=n.br,exports.MStudentIllustration=i.O,exports.MSubText=S.t,exports.MSuccessIcon=n.Ci,exports.MSuccessIllustration=i.at,exports.MSunIcon=n.Ln,exports.MSurface=_.t,exports.MTabs=N.r,exports.MTag=j.t,exports.MTagIcon=n.hn,exports.MTaskIcon=n.mt,exports.MTaskList=K.i,exports.MTaskListIllustration=i.j,exports.MTeacherIllustration=i.D,exports.MTeamIcon=n.hr,exports.MTeamIllustration=i.X,exports.MTerminalIcon=n.wr,exports.MText=v.t,exports.MTextarea=W._,exports.MThemeProvider=e.a,exports.MTimeAgo=H.c,exports.MTimeAgoIllustration=i.R,exports.MTimePicker=Q.n,exports.MTimeline=H.t,exports.MTimelineItem=H.n,exports.MToastProvider=T.t,exports.MToggle=O.a,exports.MTooltip=Y.t,exports.MTopbarIllustration=i.P,exports.MTranslateIcon=n.Rn,exports.MTrashIcon=n.er,exports.MTreeView=q.t,exports.MTumblrColorIcon=n.x,exports.MTumblrIcon=n.S,exports.MTutorIllustration=i.E,exports.MUndoIcon=n.Dt,exports.MUnityColorIcon=n.C,exports.MUnityIcon=n.w,exports.MUploadIcon=n.bi,exports.MUploadIllustration=i.Q,exports.MUrgentIcon=n.pt,exports.MUserCheckIcon=n.St,exports.MUserIcon=n._r,exports.MUserMinusIcon=n.Ct,exports.MUserPlusIcon=n.wt,exports.MUsersIcon=n.gr,exports.MVimeoColorIcon=n.T,exports.MVimeoIcon=n.E,exports.MVisaColorIcon=n.D,exports.MVisaIcon=n.O,exports.MVkColorIcon=n.k,exports.MVkIcon=n.A,exports.MWalletIcon=n.sr,exports.MWalletIllustration=i.J,exports.MWarningIcon=n.Ei,exports.MWeekGrid=K.r,exports.MWindowIcon=n.Cr,exports.MWorkbookIllustration=i.o,exports.MWritingIllustration=i.v,exports.MXColorIcon=n.q,exports.MXIcon=n.J,exports.MYouTubeColorIcon=n.Y,exports.MYouTubeIcon=n.X,exports.MZoomInIcon=n.$n,exports.MZoomOutIcon=n.Qn,exports.addMonths=c.t,exports.addYears=c.n,exports.adjustCursorAfterFormat=s.t,exports.capitalizeWords=s.n,exports.cn=r.t,exports.composeValidators=a.t,exports.creditCardBrands=o.t,exports.daysInMonth=c.i,exports.detectCardBrand=o.n,exports.firstDayOfMonth=c.a,exports.formatAbsoluteTime=l.t,exports.formatCardNumber=o.r,exports.formatCurrency=s.r,exports.formatDate=c.o,exports.formatIBAN=s.a,exports.formatNIP=s.o,exports.formatPhone=s.s,exports.formatPostCode=a.v,exports.formatRelativeTime=l.n,exports.formatTime=c.c,exports.getAutoUpdateInterval=l.r,exports.getDayNames=c.u,exports.getHiddenProps=e.r,exports.getMineralComponentLicense=d.t,exports.getMineralComponentPlan=d.n,exports.getMonthNames=c.d,exports.getPostCodeRule=a.y,exports.getRelativeTimeValue=l.i,exports.isDateInRange=c.f,exports.isMineralProComponent=d.r,exports.isSameDay=c.p,exports.mineralComponentLicenses=d.i,exports.mineralProComponents=d.a,exports.parseCurrencyToNumber=s.c,exports.parseDate=c.m,exports.parseRelativeThreshold=l.a,exports.parseTime=c.h,exports.postCodeCountries=a.b,exports.postCodeRules=a.x,exports.resolveMCardAction=I.a,exports.stripCardNumber=o.i,exports.stripNonAlphanumeric=s.l,exports.stripNonDigits=s.u,exports.stripTime=c._,exports.toDate=l.o,exports.unformatIBAN=s.d,exports.useClickOutside=d.o,exports.useDebounce=u.n,exports.useDebouncedCallback=u.r,exports.useFormContext=$.r,exports.useFormField=$.t,exports.useGhostText=u.t,exports.useInteractionEffect=p.t,exports.useKeyboardNav=f.t,exports.useMCardGrid=K.t,exports.useMI18n=t.n,exports.useMTable=K.n,exports.useMTheme=e.o,exports.useMToast=T.n,exports.useMaxWidth=e.i,exports.validateCardNumber=o.a,exports.validateEmail=a.o,exports.validateIBAN=a.s,exports.validateMaxLength=a.c,exports.validateMinLength=a.l,exports.validateNIP=a.u,exports.validatePESEL=a.d,exports.validatePattern=a.f,exports.validatePhone=a.p,exports.validatePostCode=a.S,exports.validateREGON=a.m,exports.validateRange=a.h,exports.validateRequired=a.g;
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme-BfNZicWk.cjs`),t=require(`./MI18nProvider-Cg-vxV6j.cjs`);require(`./i18n.cjs`);const n=require(`./icons-D675Im0B.cjs`),r=require(`./cn-CU5TNITO.cjs`),i=require(`./MConflictIllustration-B2AtfpYO.cjs`),a=require(`./validators-B6yWdsu2.cjs`),o=require(`./creditCards-D_HwRUBz.cjs`),s=require(`./formatters-CNjg_h7-.cjs`),c=require(`./dateUtils-Dq1vaA-D.cjs`),l=require(`./relativeTime-DgYBUaVm.cjs`),u=require(`./useGhostText-Dmkw3Am8.cjs`),d=require(`./licensing-DysMClel.cjs`),f=require(`./useKeyboardNav-HVG9JFD2.cjs`),p=require(`./useInteractionEffect-DFTdcWHl.cjs`),m=require(`./MPortal-BciZHNDC.cjs`),h=require(`./MPopover-CV-9MArH.cjs`);require(`./primitives.cjs`);const g=require(`./layout-Ddo7HUPu.cjs`),_=require(`./MSurface-CYeVFOw_.cjs`),v=require(`./MText-j6Zbbj5Y.cjs`),y=require(`./MHeading-BLnb3dNv.cjs`),b=require(`./MLink-Biipj7xz.cjs`),x=require(`./typography-Dk9kIORI.cjs`),S=require(`./MSubText-VHsgFsv2.cjs`),C=require(`./MKbd-n4fhKIxb.cjs`),w=require(`./MButton-R08y1HCT.cjs`),T=require(`./feedback-4TjD57rX.cjs`),E=require(`./MButtonGroup-C-LiXWRC.cjs`),D=require(`./MCheckbox-CM5HJQWW.cjs`),O=require(`./controls-CT_0lIPr.cjs`),k=require(`./MSlider-DZnMB49q.cjs`),A=require(`./MSkeleton-CLSU5pL6.cjs`),j=require(`./MTag-BzTp1crT.cjs`),M=require(`./MLoader-XcpKlLrd.cjs`),N=require(`./MGrid-B_0kFUws.cjs`),P=require(`./MStack-BP_BUeCc.cjs`),F=require(`./MSimpleGrid-BwNfaxQP.cjs`),I=require(`./MCard-1OVOl4Ql.cjs`),L=require(`./cards-CQSYgH9U.cjs`),R=require(`./MInput-BpTlP8GE.cjs`),z=require(`./MInputCVC-BlY5OrVn.cjs`),B=require(`./media-DRz3JZfr.cjs`),V=require(`./MAvatar-bUWENcq-.cjs`),H=require(`./display-DMix8BmD.cjs`),U=require(`./MDetailList-DTLU7HQZ.cjs`),W=require(`./inputs-yaaTPTsY.cjs`),G=require(`./MInputSearch-9wcXlY8-.cjs`),K=require(`./data-BZ92hzXx.cjs`),q=require(`./MTreeView-DuQkm0ZV.cjs`),J=require(`./overlays-BUZEaZaJ.cjs`),Y=require(`./MTooltip-BEfO9jTe.cjs`),X=require(`./MDropdownMenu-BvN5grK5.cjs`),Z=require(`./MPagination-C6QQdEj_.cjs`),Q=require(`./dropdowns-bQ0cEKNN.cjs`),$=require(`./form-BWGLrCPi.cjs`);exports.MAccordion=H.p,exports.MAccordionItem=H.m,exports.MAccountantIllustration=i.S,exports.MAirplaneFillIcon=n.$,exports.MAirplaneIcon=n.et,exports.MAlert=T.a,exports.MAmazonColorIcon=n.t,exports.MAmazonIcon=n.n,exports.MAmericanExpressColorIcon=n.Z,exports.MAmericanExpressIcon=n.Q,exports.MAnalyticsIllustration=i.tt,exports.MApartmentIcon=n.ct,exports.MAppShell=g.r,exports.MAppleColorIcon=n.r,exports.MAppleIcon=n.i,exports.MArchiveIcon=n.kt,exports.MArrowDownIcon=n.Vi,exports.MArrowLeftIcon=n.Wi,exports.MArrowRightIcon=n.Ui,exports.MArrowUpDownIcon=n.Bi,exports.MArrowUpIcon=n.Hi,exports.MAttachIcon=n.zi,exports.MAttendanceIllustration=i.f,exports.MAudioFileIllustration=i.a,exports.MAutocomplete=Q.i,exports.MAvatar=V.t,exports.MBadge=A.n,exports.MBankIcon=n.fr,exports.MBanner=T.i,exports.MBasketIcon=n.pn,exports.MCartIcon=n.pn,exports.MBellIcon=n.zn,exports.MBlur=H.a,exports.MBody=g.i,exports.MBoltIcon=n.Pn,exports.MBookIcon=n.st,exports.MBookOpenFillIcon=n.it,exports.MBookOpenIcon=n.at,exports.MBookmarkFillIcon=n.bt,exports.MBookmarkIcon=n.xt,exports.MBooksIcon=n.ot,exports.MBoxIcon=n.Mn,exports.MBreadcrumb=g.a,exports.MBreakpoints=e.t,exports.MBugIcon=n.pr,exports.MBuildingIcon=n.Yn,exports.MButton=w.t,exports.MButtonGroup=E.t,exports.MCalendarBoardIllustration=i.H,exports.MCalendarIcon=n.Ri,exports.MCalendarIllustration=i.et,exports.MCameraIcon=n.gn,exports.MCanvasGrid=g.n,exports.MCarFillIcon=n.nt,exports.MCarIcon=n.rt,exports.MCard=I.t,exports.MCardActionArea=L.p,exports.MCardBody=I.n,exports.MCardCourse=L.l,exports.MCardDaySchedule=L.n,exports.MCardDocumentTree=L.t,exports.MCardEvent=L.o,exports.MCardFooter=I.r,exports.MCardGrid=L.r,exports.MCardHeader=I.i,exports.MCardOffer=L.u,exports.MCardPayment=L.f,exports.MCardPaymentMethod=L.d,exports.MCardProduct=L.s,exports.MCardStat=L.i,exports.MCardTile=L.c,exports.MCardWidget=L.a,exports.MCarousel=B.t,exports.MCertificateIllustration=i.u,exports.MChartIcon=n.dn,exports.MChatIcon=n.yn,exports.MChatIllustration=i.q,exports.MChatsIcon=n.vn,exports.MCheckCircleIcon=n.xi,exports.MCheckIcon=n.Yi,exports.MCheckbox=D.t,exports.MChevronDownIcon=n.Ki,exports.MChevronLeftIcon=n.Ji,exports.MChevronRightIcon=n.qi,exports.MChevronUpIcon=n.Gi,exports.MClassroomIcon=n.gt,exports.MClassroomIllustration=i.g,exports.MClickIcon=n.Hn,exports.MClipboardIcon=n.mn,exports.MClockIcon=n.Li,exports.MCloseIcon=n.Xi,exports.MCode=x.r,exports.MCodeBlock=H.u,exports.MCoinIcon=n.or,exports.MCollapsible=H.h,exports.MColorPicker=H.s,exports.MColumnsIcon=n.vt,exports.MCommandPalette=J.o,exports.MCommentIcon=n._n,exports.MConflictIllustration=i.t,exports.MContainer=g.x,exports.MCopyIcon=n.Kn,exports.MCopyrightIcon=n.Ii,exports.MCorporateIllustration=i.w,exports.MCountUp=H.d,exports.MCountUpIllustration=i.z,exports.MCourseIllustration=i._,exports.MCreditCardIcon=n.cr,exports.MCubeIcon=n.vr,exports.MDashboardIcon=n.kr,exports.MDashboardIllustration=i.lt,exports.MDataTable=K.a,exports.MDataTableIllustration=i.M,exports.MDatabaseIcon=n.jn,exports.MDatePicker=Q.r,exports.MDatePickerIllustration=i.G,exports.MDateRangePicker=Q.t,exports.MDateRangePickerIllustration=i.W,exports.MDetailList=U.t,exports.MDeviceMonitorIcon=n.Ai,exports.MDevicePhoneIcon=n.Mi,exports.MDeviceTabletIcon=n.ji,exports.MDiscordColorIcon=n.j,exports.MDiscordIcon=n.M,exports.MDiscoverColorIcon=n.a,exports.MDiscoverIcon=n.o,exports.MDivider=g.m,exports.MDocCopyIcon=n.hi,exports.MDocIcon=n.An,exports.MDocPlusIcon=n.gi,exports.MDollarIcon=n.Tn,exports.MDownloadIcon=n.Wn,exports.MDrawer=J.n,exports.MDrawerBody=J.r,exports.MDrawerFooter=J.i,exports.MDrawerHeader=J.a,exports.MDropdownDivider=X.t,exports.MDropdownGroup=X.n,exports.MDropdownItem=X.r,exports.MDropdownMenu=X.i,exports.MEditIcon=n.Gn,exports.MEllipsisHorizontalIcon=n.tr,exports.MEllipsisVerticalIcon=n.Xn,exports.MEmptyState=H.o,exports.MEmptyStateIllustration=i.ct,exports.MEnrollmentIllustration=i.p,exports.MErrorIcon=n.wi,exports.MErrorIllustration=i.st,exports.MEuroIcon=n.wn,exports.MExamIllustration=i.d,exports.MExternalLinkIcon=n.Un,exports.MEyeIcon=n.ur,exports.MEyeOffIcon=n.lr,exports.MFacebookColorIcon=n.N,exports.MFacebookIcon=n.P,exports.MFamilyIllustration=i.T,exports.MFigmaColorIcon=n.F,exports.MFigmaIcon=n.I,exports.MFileArchiveIcon=n.ui,exports.MFileCodeIcon=n.di,exports.MFileCssIcon=n.Lr,exports.MFileCsvIcon=n.Rr,exports.MFileDocsIcon=n.zr,exports.MFileExeIcon=n.Br,exports.MFileGifIcon=n.Vr,exports.MFileHtmlIcon=n.Hr,exports.MFileIcon=n._i,exports.MFileImageIcon=n.fi,exports.MFileJpgIcon=n.Ur,exports.MFileJsIcon=n.Wr,exports.MFileJsonIcon=n.Gr,exports.MFileJsxIcon=n.Kr,exports.MFileManagerIllustration=i.V,exports.MFileMdIcon=n.qr,exports.MFileMp3Icon=n.Jr,exports.MFileMp4Icon=n.Yr,exports.MFileOdtIcon=n.Xr,exports.MFilePdfIcon=n.pi,exports.MFilePhpIcon=n.Zr,exports.MFilePngIcon=n.Qr,exports.MFilePptIcon=n.$r,exports.MFileRarIcon=n.ei,exports.MFileSvgIcon=n.ti,exports.MFileTextIcon=n.mi,exports.MFileTsIcon=n.ni,exports.MFileTsxIcon=n.ri,exports.MFileTxtIcon=n.ii,exports.MFileVideoIcon=n.li,exports.MFileWebpIcon=n.ai,exports.MFileXlsIcon=n.oi,exports.MFileXmlIcon=n.si,exports.MFileZipIcon=n.ci,exports.MFilterIcon=n.Jn,exports.MFlagArIcon=n.Kt,exports.MFlagAtIcon=n.Nt,exports.MFlagAuIcon=n.It,exports.MFlagBrIcon=n.Gt,exports.MFlagCaIcon=n.Ut,exports.MFlagChIcon=n.Ft,exports.MFlagCnIcon=n.Zt,exports.MFlagCzIcon=n.Xt,exports.MFlagDeIcon=n.nn,exports.MFlagEsIcon=n.$t,exports.MFlagFrIcon=n.tn,exports.MFlagGbIcon=n.rn,exports.MFlagIeIcon=n.Pt,exports.MFlagInIcon=n.Wt,exports.MFlagItIcon=n.Qt,exports.MFlagJpIcon=n.Jt,exports.MFlagKrIcon=n.Rt,exports.MFlagMxIcon=n.Ht,exports.MFlagNlIcon=n.Vt,exports.MFlagNoIcon=n.zt,exports.MFlagPlIcon=n.an,exports.MFlagPtIcon=n.Mt,exports.MFlagRuIcon=n.qt,exports.MFlagSeIcon=n.Bt,exports.MFlagSkIcon=n.Yt,exports.MFlagTrIcon=n.Lt,exports.MFlagUaIcon=n.en,exports.MFlagUsIcon=n.in,exports.MFlatIcon=n.dt,exports.MFolderIcon=n.Ir,exports.MFolderOpenIcon=n.Fr,exports.MFolderPlusIcon=n.Pr,exports.MFooter=g.y,exports.MForm=$.n,exports.MFormIcon=n.Er,exports.MFormsIllustration=i.F,exports.MGallery=B.n,exports.MGalleryIcon=n.Vn,exports.MGalleryIllustration=i.k,exports.MGitHubColorIcon=n.L,exports.MGitHubIcon=n.R,exports.MGlobeIcon=n.ki,exports.MGoogleColorIcon=n.z,exports.MGoogleIcon=n.B,exports.MGrid=N.t,exports.MGridItem=N.n,exports.MGroupClassIllustration=i.m,exports.MGroupIcon=n.mr,exports.MHeader=g.b,exports.MHeading=y.t,exports.MHeartFillIcon=n.nr,exports.MHeartIcon=n.rr,exports.MHelpIcon=n.Di,exports.MHistoryIcon=n.Ot,exports.MHomeIcon=n.jr,exports.MHouseIcon=n.lt,exports.MI18nIllustration=i.L,exports.MI18nProvider=t.t,exports.MIcon=n.Qi,exports.MIconsIllustration=i.I,exports.MIdCardIcon=n.dr,exports.MIllustration=i.ut,exports.MImage=B.r,exports.MImageIcon=n.Bn,exports.MInfoIcon=n.Ti,exports.MInline=_.n,exports.MInput=R.t,exports.MInputCVC=z.t,exports.MInputCreditCard=W.a,exports.MInputCurrency=W.s,exports.MInputDate=W.o,exports.MInputEmail=W.m,exports.MInputExpDate=z.n,exports.MInputFile=W.t,exports.MInputGroup=W.u,exports.MInputIBAN=W.l,exports.MInputName=W.d,exports.MInputNumber=W.h,exports.MInputOTP=W.r,exports.MInputPassword=W.g,exports.MInputPhone=W.f,exports.MInputPostCode=W.i,exports.MInputSearch=G.t,exports.MInputSlider=W.n,exports.MInputTaxId=W.c,exports.MInputUrl=W.p,exports.MInstagramColorIcon=n.V,exports.MInstagramIcon=n.H,exports.MInvoiceIllustration=i.i,exports.MKanbanIcon=n.Dr,exports.MKbd=C.t,exports.MKeyIcon=n.Tt,exports.MLayoutIcon=n.Ar,exports.MLessonIcon=n._t,exports.MLetsEncryptColorIcon=n.s,exports.MLetsEncryptIcon=n.c,exports.MLibraryIllustration=i.s,exports.MLightbulbIcon=n.Fn,exports.MLink=b.t,exports.MLinkIcon=n.On,exports.MLinkedInColorIcon=n.U,exports.MLinkedInIcon=n.W,exports.MList=x.t,exports.MListIcon=n.yt,exports.MListItem=x.n,exports.MListeningIllustration=i.x,exports.MLoadMore=O.i,exports.MLoader=M.t,exports.MLockIcon=n.Dn,exports.MLockOpenIcon=n.En,exports.MMaestroColorIcon=n.l,exports.MMaestroIcon=n.u,exports.MMagicIcon=n.kn,exports.MMailIcon=n.Fi,exports.MMailIllustration=i.rt,exports.MMailOpenIcon=n.Pi,exports.MMakeupIcon=n.ht,exports.MMasonryIllustration=i.K,exports.MMastercardColorIcon=n.d,exports.MMastercardIcon=n.f,exports.MMenuIcon=n.Zn,exports.MMicrosoftColorIcon=n.p,exports.MMicrosoftIcon=n.m,exports.MMinusIcon=n.Mr,exports.MModal=J.c,exports.MMoneyIcon=n.ar,exports.MMoonIcon=n.In,exports.MMoveIcon=n.Sr,exports.MNavbar=g._,exports.MNavbarIllustration=i.A,exports.MNavs=g.v,exports.MNeutralIcon=n.Si,exports.MNotFoundIllustration=i.ot,exports.MNotificationsIllustration=i.Y,exports.MOfficeIllustration=i.C,exports.MOnboardingIllustration=i.Z,exports.MOnlineLessonIllustration=i.h,exports.MPagination=Z.t,exports.MPaletteIcon=n.Cn,exports.MPayPalColorIcon=n.h,exports.MPayPalIcon=n.g,exports.MPhoneIcon=n.Ni,exports.MPinIcon=n.Oi,exports.MPinterestColorIcon=n._,exports.MPinterestIcon=n.v,exports.MPlayIcon=n.xr,exports.MPlusIcon=n.Nr,exports.MPopconfirm=J.t,exports.MPopover=h.t,exports.MPortal=m.t,exports.MPrinterIcon=n.At,exports.MProgressBar=H.f,exports.MProgressIllustration=i.l,exports.MProgressRing=T.r,exports.MProtectIcon=n.Nn,exports.MPuzzleIcon=n.Sn,exports.MQrCodeIcon=n.un,exports.MQrCodeIllustration=i.B,exports.MQuickActions=O.n,exports.MRadio=O.s,exports.MRadioGroup=O.o,exports.MRating=U.n,exports.MReadingIllustration=i.y,exports.MReceiptIcon=n.ir,exports.MReceiptIllustration=i.r,exports.MRedoIcon=n.Et,exports.MRefreshIcon=n.xn,exports.MRefundIllustration=i.n,exports.MResizeIcon=n.yr,exports.MReveal=H.l,exports.MReviewIllustration=i.c,exports.MRoomIcon=n.ft,exports.MScrollTop=O.r,exports.MSearchIcon=n.Zi,exports.MSearchIllustration=i.it,exports.MSection=g.g,exports.MSecurityIllustration=i.nt,exports.MSelect=Q.a,exports.MSendIcon=n.bn,exports.MSettingsIcon=n.fn,exports.MSettingsIllustration=i.$,exports.MShareIcon=n.jt,exports.MSheet=J.s,exports.MShellBreakpoints=e.n,exports.MShipIcon=n.tt,exports.MShopIcon=n.ut,exports.MShowcaseIllustration=i.U,exports.MSidebar=g.o,exports.MSidebarBody=g.s,exports.MSidebarDivider=g.c,exports.MSidebarFooter=g.l,exports.MSidebarGroup=g.u,exports.MSidebarHeader=g.d,exports.MSidebarIcon=n.Or,exports.MSidebarIllustration=i.N,exports.MSidebarItem=g.f,exports.MSidebarNav=g.p,exports.MSignal1Icon=n.ln,exports.MSignal2Icon=n.cn,exports.MSignal3Icon=n.sn,exports.MSignal4Icon=n.on,exports.MSimpleGrid=F.t,exports.MSkeleton=A.t,exports.MSlackColorIcon=n.G,exports.MSlackIcon=n.K,exports.MSlider=k.t,exports.MSlidersIcon=n.Tr,exports.MSocialButton=O.t,exports.MSortIcon=n.qn,exports.MSpeakingIllustration=i.b,exports.MSpinner=w.r,exports.MSpotifyColorIcon=n.y,exports.MSpotifyIcon=n.b,exports.MStack=P.t,exports.MStarFillIcon=n.vi,exports.MStarIcon=n.yi,exports.MStatGrid=g.h,exports.MStep=H.r,exports.MStepper=H.i,exports.MStickyPanel=g.t,exports.MStopIcon=n.br,exports.MStudentIllustration=i.O,exports.MSubText=S.t,exports.MSuccessIcon=n.Ci,exports.MSuccessIllustration=i.at,exports.MSunIcon=n.Ln,exports.MSurface=_.t,exports.MTabs=N.r,exports.MTag=j.t,exports.MTagIcon=n.hn,exports.MTaskIcon=n.mt,exports.MTaskList=K.i,exports.MTaskListIllustration=i.j,exports.MTeacherIllustration=i.D,exports.MTeamIcon=n.hr,exports.MTeamIllustration=i.X,exports.MTerminalIcon=n.wr,exports.MText=v.t,exports.MTextarea=W._,exports.MThemeProvider=e.a,exports.MTimeAgo=H.c,exports.MTimeAgoIllustration=i.R,exports.MTimePicker=Q.n,exports.MTimeline=H.t,exports.MTimelineItem=H.n,exports.MToastProvider=T.t,exports.MToggle=O.a,exports.MTooltip=Y.t,exports.MTopbarIllustration=i.P,exports.MTranslateIcon=n.Rn,exports.MTrashIcon=n.er,exports.MTreeView=q.t,exports.MTumblrColorIcon=n.x,exports.MTumblrIcon=n.S,exports.MTutorIllustration=i.E,exports.MUndoIcon=n.Dt,exports.MUnityColorIcon=n.C,exports.MUnityIcon=n.w,exports.MUploadIcon=n.bi,exports.MUploadIllustration=i.Q,exports.MUrgentIcon=n.pt,exports.MUserCheckIcon=n.St,exports.MUserIcon=n._r,exports.MUserMinusIcon=n.Ct,exports.MUserPlusIcon=n.wt,exports.MUsersIcon=n.gr,exports.MVimeoColorIcon=n.T,exports.MVimeoIcon=n.E,exports.MVisaColorIcon=n.D,exports.MVisaIcon=n.O,exports.MVkColorIcon=n.k,exports.MVkIcon=n.A,exports.MWalletIcon=n.sr,exports.MWalletIllustration=i.J,exports.MWarningIcon=n.Ei,exports.MWeekGrid=K.r,exports.MWindowIcon=n.Cr,exports.MWorkbookIllustration=i.o,exports.MWritingIllustration=i.v,exports.MXColorIcon=n.q,exports.MXIcon=n.J,exports.MYouTubeColorIcon=n.Y,exports.MYouTubeIcon=n.X,exports.MZoomInIcon=n.$n,exports.MZoomOutIcon=n.Qn,exports.addMonths=c.t,exports.addYears=c.n,exports.adjustCursorAfterFormat=s.t,exports.capitalizeWords=s.n,exports.cn=r.t,exports.composeValidators=a.t,exports.creditCardBrands=o.t,exports.daysInMonth=c.i,exports.detectCardBrand=o.n,exports.firstDayOfMonth=c.a,exports.formatAbsoluteTime=l.t,exports.formatCardNumber=o.r,exports.formatCurrency=s.r,exports.formatDate=c.o,exports.formatIBAN=s.a,exports.formatNIP=s.o,exports.formatPhone=s.s,exports.formatPostCode=a.v,exports.formatRelativeTime=l.n,exports.formatTime=c.c,exports.getAutoUpdateInterval=l.r,exports.getDayNames=c.u,exports.getHiddenProps=e.r,exports.getMineralComponentLicense=d.t,exports.getMineralComponentPlan=d.n,exports.getMonthNames=c.d,exports.getPostCodeRule=a.y,exports.getRelativeTimeValue=l.i,exports.isDateInRange=c.f,exports.isMineralProComponent=d.r,exports.isSameDay=c.p,exports.mineralComponentLicenses=d.i,exports.mineralProComponents=d.a,exports.parseCurrencyToNumber=s.c,exports.parseDate=c.m,exports.parseRelativeThreshold=l.a,exports.parseTime=c.h,exports.postCodeCountries=a.b,exports.postCodeRules=a.x,exports.resolveMCardAction=I.a,exports.stripCardNumber=o.i,exports.stripNonAlphanumeric=s.l,exports.stripNonDigits=s.u,exports.stripTime=c._,exports.toDate=l.o,exports.unformatIBAN=s.d,exports.useClickOutside=d.o,exports.useDebounce=u.n,exports.useDebouncedCallback=u.r,exports.useFormContext=$.r,exports.useFormField=$.t,exports.useGhostText=u.t,exports.useInteractionEffect=p.t,exports.useKeyboardNav=f.t,exports.useMCardGrid=K.t,exports.useMI18n=t.n,exports.useMTable=K.n,exports.useMTheme=e.o,exports.useMToast=T.n,exports.useMaxWidth=e.i,exports.validateCardNumber=o.a,exports.validateEmail=a.o,exports.validateIBAN=a.s,exports.validateMaxLength=a.c,exports.validateMinLength=a.l,exports.validateNIP=a.u,exports.validatePESEL=a.d,exports.validatePattern=a.f,exports.validatePhone=a.p,exports.validatePostCode=a.S,exports.validateREGON=a.m,exports.validateRange=a.h,exports.validateRequired=a.g;
|
package/dist/index.js
CHANGED
|
@@ -16,9 +16,9 @@ import { a as yo, i as bo, n as xo, o as So, r as Co, t as wo } from "./licensin
|
|
|
16
16
|
import { t as To } from "./useKeyboardNav-iEXOdEMB.js";
|
|
17
17
|
import { t as Eo } from "./useInteractionEffect-DtpbVd77.js";
|
|
18
18
|
import { t as Do } from "./MPortal-Ba2Sxset.js";
|
|
19
|
-
import { t as Oo } from "./MPopover-
|
|
19
|
+
import { t as Oo } from "./MPopover-C5aaGhma.js";
|
|
20
20
|
import "./primitives.js";
|
|
21
|
-
import { _ as ko, a as Ao, b as jo, c as Mo, d as No, f as Po, g as Fo, h as Io, i as Lo, l as Ro, m as zo, n as Bo, o as Vo, p as Ho, r as Uo, s as Wo, t as Go, u as Ko, v as qo, x as Jo, y as Yo } from "./layout-
|
|
21
|
+
import { _ as ko, a as Ao, b as jo, c as Mo, d as No, f as Po, g as Fo, h as Io, i as Lo, l as Ro, m as zo, n as Bo, o as Vo, p as Ho, r as Uo, s as Wo, t as Go, u as Ko, v as qo, x as Jo, y as Yo } from "./layout-CdSpVJuK.js";
|
|
22
22
|
import { n as Xo, t as Zo } from "./MSurface-B-sjyczH.js";
|
|
23
23
|
import { t as Qo } from "./MText-CL-LPcXi.js";
|
|
24
24
|
import { t as $o } from "./MHeading-B7KgSP4T.js";
|
|
@@ -39,21 +39,21 @@ import { n as Ds, r as Os, t as ks } from "./MGrid-CYL3cbUI.js";
|
|
|
39
39
|
import { t as As } from "./MStack-CSCw6to2.js";
|
|
40
40
|
import { t as js } from "./MSimpleGrid-BWKurW6H.js";
|
|
41
41
|
import { a as Ms, i as Ns, n as Ps, r as Fs, t as Is } from "./MCard-azpp4YVD.js";
|
|
42
|
-
import { a as Ls, c as Rs, d as zs, f as Bs, i as Vs, l as Hs, n as Us, o as Ws, p as Gs, r as Ks, s as qs, t as Js, u as Ys } from "./cards-
|
|
42
|
+
import { a as Ls, c as Rs, d as zs, f as Bs, i as Vs, l as Hs, n as Us, o as Ws, p as Gs, r as Ks, s as qs, t as Js, u as Ys } from "./cards-Cpr9B8Mu.js";
|
|
43
43
|
import { t as Xs } from "./MInput-C8ObGzQk.js";
|
|
44
|
-
import { n as Zs, t as Qs } from "./MInputCVC-
|
|
44
|
+
import { n as Zs, t as Qs } from "./MInputCVC-B4V0QI5h.js";
|
|
45
45
|
import { n as $s, r as ec, t as tc } from "./media-vOQOIYFD.js";
|
|
46
46
|
import { t as nc } from "./MAvatar-DtJCj3dD.js";
|
|
47
47
|
import { a as rc, c as ic, d as ac, f as oc, h as sc, i as cc, l as lc, m as uc, n as dc, o as fc, p as pc, r as mc, s as hc, t as gc, u as _c } from "./display-BF4jASt9.js";
|
|
48
48
|
import { n as vc, t as yc } from "./MDetailList-fDhVyhm7.js";
|
|
49
49
|
import { _ as bc, a as xc, c as Sc, d as Cc, f as wc, g as Tc, h as Ec, i as Dc, l as Oc, m as kc, n as Ac, o as jc, p as Mc, r as Nc, s as Pc, t as Fc, u as Ic } from "./inputs-CQoi402V.js";
|
|
50
50
|
import { t as Lc } from "./MInputSearch-BM8gLlJ1.js";
|
|
51
|
-
import { a as Rc, i as zc, n as Bc, r as Vc, t as Hc } from "./data-
|
|
51
|
+
import { a as Rc, i as zc, n as Bc, r as Vc, t as Hc } from "./data-C-6DP7iY.js";
|
|
52
52
|
import { t as Uc } from "./MTreeView-B1J7uqd1.js";
|
|
53
|
-
import { a as Wc, c as Gc, i as Kc, n as qc, o as Jc, r as Yc, s as Xc, t as Zc } from "./overlays-
|
|
53
|
+
import { a as Wc, c as Gc, i as Kc, n as qc, o as Jc, r as Yc, s as Xc, t as Zc } from "./overlays-C1vO_A2I.js";
|
|
54
54
|
import { t as Qc } from "./MTooltip-BTJkzOah.js";
|
|
55
|
-
import { i as $c, n as el, r as tl, t as nl } from "./MDropdownMenu-
|
|
55
|
+
import { i as $c, n as el, r as tl, t as nl } from "./MDropdownMenu-CFoKJ7V6.js";
|
|
56
56
|
import { t as rl } from "./MPagination-CgmNEAZX.js";
|
|
57
|
-
import { a as il, i as al, n as ol, r as sl, t as cl } from "./dropdowns-
|
|
57
|
+
import { a as il, i as al, n as ol, r as sl, t as cl } from "./dropdowns-DiThUF7D.js";
|
|
58
58
|
import { n as ll, r as ul, t as dl } from "./form-CgH1hioG.js";
|
|
59
59
|
export { pc as MAccordion, uc as MAccordionItem, Oi as MAccountantIllustration, a as MAirplaneFillIcon, dn as MAirplaneIcon, cs as MAlert, Dr as MAmazonColorIcon, Qn as MAmazonIcon, jt as MAmericanExpressColorIcon, Be as MAmericanExpressIcon, ua as MAnalyticsIllustration, tn as MApartmentIcon, Uo as MAppShell, _r as MAppleColorIcon, Dn as MAppleIcon, Vn as MArchiveIcon, ft as MArrowDownIcon, _t as MArrowLeftIcon, st as MArrowRightIcon, h as MArrowUpDownIcon, G as MArrowUpIcon, ii as MAttachIcon, Ui as MAttendanceIllustration, Li as MAudioFileIllustration, al as MAutocomplete, nc as MAvatar, Cs as MBadge, hn as MBankIcon, ls as MBanner, Q as MBasketIcon, Q as MCartIcon, ai as MBellIcon, rc as MBlur, Lo as MBody, Le as MBoltIcon, Er as MBookIcon, jn as MBookOpenFillIcon, Gt as MBookOpenIcon, Xt as MBookmarkFillIcon, Zr as MBookmarkIcon, sr as MBooksIcon, Se as MBoxIcon, Ao as MBreadcrumb, n as MBreakpoints, ur as MBugIcon, Ot as MBuildingIcon, ss as MButton, ps as MButtonGroup, _i as MCalendarBoardIllustration, Ke as MCalendarIcon, Hi as MCalendarIllustration, yn as MCameraIcon, Bo as MCanvasGrid, nr as MCarFillIcon, xr as MCarIcon, Is as MCard, Gs as MCardActionArea, Ps as MCardBody, Hs as MCardCourse, Us as MCardDaySchedule, Js as MCardDocumentTree, Ws as MCardEvent, Fs as MCardFooter, Ks as MCardGrid, Ns as MCardHeader, Ys as MCardOffer, Bs as MCardPayment, zs as MCardPaymentMethod, qs as MCardProduct, Vs as MCardStat, Rs as MCardTile, Ls as MCardWidget, tc as MCarousel, da as MCertificateIllustration, an as MChartIcon, ei as MChatIcon, ia as MChatIllustration, zr as MChatsIcon, Jr as MCheckCircleIcon, Dt as MCheckIcon, ms as MCheckbox, de as MChevronDownIcon, oe as MChevronLeftIcon, pr as MChevronRightIcon, B as MChevronUpIcon, xn as MClassroomIcon, Wi as MClassroomIllustration, K as MClickIcon, Yn as MClipboardIcon, ge as MClockIcon, St as MCloseIcon, ns as MCode, _c as MCodeBlock, or as MCoinIcon, sc as MCollapsible, hc as MColorPicker, Vr as MColumnsIcon, Jc as MCommandPalette, Rt as MCommentIcon, la as MConflictIllustration, Jo as MContainer, fe as MCopyIcon, X as MCopyrightIcon, ma as MCorporateIllustration, ac as MCountUp, _a as MCountUpIllustration, Ii as MCourseIllustration, en as MCreditCardIcon, Br as MCubeIcon, Bn as MDashboardIcon, Zi as MDashboardIllustration, Rc as MDataTable, Si as MDataTableIllustration, Pn as MDatabaseIcon, sl as MDatePicker, gi as MDatePickerIllustration, cl as MDateRangePicker, Mi as MDateRangePickerIllustration, yc as MDetailList, u as MDeviceMonitorIcon, xe as MDevicePhoneIcon, Nn as MDeviceTabletIcon, Mn as MDiscordColorIcon, be as MDiscordIcon, Vt as MDiscoverColorIcon, rr as MDiscoverIcon, zo as MDivider, Cn as MDocCopyIcon, d as MDocIcon, vn as MDocPlusIcon, rt as MDollarIcon, vt as MDownloadIcon, qc as MDrawer, Yc as MDrawerBody, Kc as MDrawerFooter, Wc as MDrawerHeader, nl as MDropdownDivider, el as MDropdownGroup, tl as MDropdownItem, $c as MDropdownMenu, V as MEditIcon, Ar as MEllipsisHorizontalIcon, Ct as MEllipsisVerticalIcon, fc as MEmptyState, Bi as MEmptyStateIllustration, ra as MEnrollmentIllustration, Ur as MErrorIcon, ca as MErrorIllustration, Wr as MEuroIcon, Vi as MExamIllustration, ct as MExternalLinkIcon, Fr as MEyeIcon, Gn as MEyeOffIcon, Te as MFacebookColorIcon, Fe as MFacebookIcon, ki as MFamilyIllustration, P as MFigmaColorIcon, Y as MFigmaIcon, Nr as MFileArchiveIcon, rn as MFileCodeIcon, ve as MFileCssIcon, Je as MFileCsvIcon, oi as MFileDocsIcon, _ as MFileExeIcon, mt as MFileGifIcon, q as MFileHtmlIcon, Lt as MFileIcon, pn as MFileImageIcon, lt as MFileJpgIcon, yt as MFileJsIcon, H as MFileJsonIcon, pe as MFileJsxIcon, ji as MFileManagerIllustration, hr as MFileMdIcon, ce as MFileMp3Icon, kt as MFileMp4Icon, wt as MFileOdtIcon, lr as MFilePdfIcon, Pt as MFilePhpIcon, Ue as MFilePngIcon, s as MFilePptIcon, cn as MFileRarIcon, Or as MFileSvgIcon, Jn as MFileTextIcon, $n as MFileTsIcon, vr as MFileTsxIcon, On as MFileTxtIcon, Un as MFileVideoIcon, Ht as MFileWebpIcon, ir as MFileXlsIcon, Cr as MFileXmlIcon, Qt as MFileZipIcon, se as MFilterIcon, me as MFlagArIcon, ke as MFlagAtIcon, ie as MFlagAuIcon, U as MFlagBrIcon, ut as MFlagCaIcon, R as MFlagChIcon, Ft as MFlagCnIcon, Tt as MFlagCzIcon, er as MFlagDeIcon, c as MFlagEsIcon, kr as MFlagFrIcon, yr as MFlagGbIcon, ze as MFlagIeIcon, bt as MFlagInIcon, We as MFlagItIcon, le as MFlagJpIcon, Ye as MFlagKrIcon, J as MFlagMxIcon, ht as MFlagNlIcon, si as MFlagNoIcon, Ut as MFlagPlIcon, we as MFlagPtIcon, gr as MFlagRuIcon, v as MFlagSeIcon, At as MFlagSkIcon, ye as MFlagTrIcon, ln as MFlagUaIcon, kn as MFlagUsIcon, sn as MFlatIcon, re as MFolderIcon, L as MFolderOpenIcon, Re as MFolderPlusIcon, Yo as MFooter, ll as MForm, M as MFormIcon, hi as MFormsIllustration, $s as MGallery, pt as MGalleryIcon, Yi as MGalleryIllustration, he as MGitHubColorIcon, Ge as MGitHubIcon, Rn as MGlobeIcon, ri as MGoogleColorIcon, m as MGoogleIcon, ks as MGrid, Ds as MGridItem, Qi as MGroupClassIllustration, Xn as MGroupIcon, jo as MHeader, $o as MHeading, tr as MHeartFillIcon, br as MHeartIcon, T as MHelpIcon, Pe as MHistoryIcon, Fn as MHomeIcon, Kn as MHouseIcon, xi as MI18nIllustration, i as MI18nProvider, Ve as MIcon, vi as MIconsIllustration, on as MIdCardIcon, fa as MIllustration, ec as MImage, g as MImageIcon, nt as MInfoIcon, Xo as MInline, Xs as MInput, Qs as MInputCVC, xc as MInputCreditCard, Pc as MInputCurrency, jc as MInputDate, kc as MInputEmail, Zs as MInputExpDate, Fc as MInputFile, Ic as MInputGroup, Oc as MInputIBAN, Cc as MInputName, Ec as MInputNumber, Nc as MInputOTP, Tc as MInputPassword, wc as MInputPhone, Dc as MInputPostCode, Lc as MInputSearch, Ac as MInputSlider, Sc as MInputTaxId, Mc as MInputUrl, dt as MInstagramColorIcon, W as MInstagramIcon, Ki as MInvoiceIllustration, D as MKanbanIcon, as as MKbd, at as MKeyIcon, f as MLayoutIcon, Bt as MLessonIcon, Sr as MLetsEncryptColorIcon, Zt as MLetsEncryptIcon, sa as MLibraryIllustration, I as MLightbulbIcon, es as MLink, Me as MLinkIcon, ot as MLinkedInColorIcon, gt as MLinkedInIcon, rs as MList, ni as MListIcon, ts as MListItem, ha as MListeningIllustration, gs as MLoadMore, Es as MLoader, E as MLockIcon, j as MLockOpenIcon, Hn as MMaestroColorIcon, Mr as MMaestroIcon, zn as MMagicIcon, F as MMailIcon, oa as MMailIllustration, Ie as MMailOpenIcon, En as MMakeupIcon, bi as MMasonryIllustration, nn as MMastercardColorIcon, fn as MMastercardIcon, Nt as MMenuIcon, cr as MMicrosoftColorIcon, qn as MMicrosoftIcon, Ce as MMinusIcon, Gc as MModal, Wt as MMoneyIcon, Z as MMoonIcon, $e as MMoveIcon, ko as MNavbar, ui as MNavbarIllustration, qo as MNavs, Ze as MNeutralIcon, na as MNotFoundIllustration, Pi as MNotificationsIllustration, fi as MOfficeIllustration, Fi as MOnboardingIllustration, Gi as MOnlineLessonIllustration, rl as MPagination, x as MPaletteIcon, Sn as MPayPalColorIcon, _n as MPayPalIcon, Ee as MPhoneIcon, je as MPinIcon, It as MPinterestColorIcon, Lr as MPinterestIcon, Xr as MPlayIcon, Oe as MPlusIcon, Zc as MPopconfirm, Oo as MPopover, Do as MPortal, p as MPrinterIcon, oc as MProgressBar, Xi as MProgressIllustration, ds as MProgressRing, De as MProtectIcon, Qe as MPuzzleIcon, Pr as MQrCodeIcon, di as MQrCodeIllustration, _s as MQuickActions, bs as MRadio, vs as MRadioGroup, vc as MRating, ga as MReadingIllustration, An as MReceiptIcon, aa as MReceiptIllustration, N as MRedoIcon, Yr as MRefreshIcon, $i as MRefundIllustration, ti as MResizeIcon, lc as MReveal, $ as MReviewIllustration, gn as MRoomIcon, ys as MScrollTop, Mt as MSearchIcon, qi as MSearchIllustration, Fo as MSection, ea as MSecurityIllustration, il as MSelect, Jt as MSendIcon, mn as MSettingsIcon, li as MSettingsIllustration, In as MShareIcon, Xc as MSheet, ne as MShellBreakpoints, jr as MShipIcon, Ir as MShopIcon, Ai as MShowcaseIllustration, Vo as MSidebar, Wo as MSidebarBody, Mo as MSidebarDivider, Ro as MSidebarFooter, Ko as MSidebarGroup, No as MSidebarHeader, Ne as MSidebarIcon, Ci as MSidebarIllustration, Po as MSidebarItem, Ho as MSidebarNav, Wn as MSignal1Icon, $t as MSignal2Icon, wr as MSignal3Icon, ar as MSignal4Icon, js as MSimpleGrid, ws as MSkeleton, z as MSlackColorIcon, ue as MSlackIcon, Ss as MSlider, it as MSlidersIcon, xs as MSocialButton, mr as MSortIcon, zi as MSpeakingIllustration, os as MSpinner, Qr as MSpotifyColorIcon, Kt as MSpotifyIcon, As as MStack, Rr as MStarFillIcon, $r as MStarIcon, Io as MStatGrid, mc as MStep, cc as MStepper, Go as MStickyPanel, Yt as MStopIcon, wi as MStudentIllustration, is as MSubText, b as MSuccessIcon, Ri as MSuccessIllustration, _e as MSunIcon, Zo as MSurface, Os as MTabs, Ts as MTag, wn as MTagIcon, Zn as MTaskIcon, zc as MTaskList, Ji as MTaskListIllustration, pi as MTeacherIllustration, Tn as MTeamIcon, Ni as MTeamIllustration, Gr as MTerminalIcon, Qo as MText, bc as MTextarea, ee as MThemeProvider, ic as MTimeAgo, Di as MTimeAgoIllustration, ol as MTimePicker, gc as MTimeline, dc as MTimelineItem, fs as MToastProvider, hs as MToggle, Qc as MTooltip, Ti as MTopbarIllustration, qe as MTranslateIcon, un as MTrashIcon, Uc as MTreeView, qr as MTumblrColorIcon, Xe as MTumblrIcon, mi as MTutorIllustration, O as MUndoIcon, y as MUnityColorIcon, Hr as MUnityIcon, qt as MUploadIcon, Ei as MUploadIllustration, dr as MUrgentIcon, et as MUserCheckIcon, zt as MUserIcon, C as MUserMinusIcon, Kr as MUserPlusIcon, bn as MUsersIcon, tt as MVimeoColorIcon, k as MVimeoIcon, w as MVisaColorIcon, Ae as MVisaIcon, Ln as MVkColorIcon, l as MVkIcon, Tr as MWalletIcon, yi as MWalletIllustration, A as MWarningIcon, Vc as MWeekGrid, S as MWindowIcon, ta as MWorkbookIllustration, pa as MWritingIllustration, fr as MXColorIcon, ae as MXIcon, Et as MYouTubeColorIcon, xt as MYouTubeIcon, o as MZoomInIcon, He as MZoomOutIcon, so as addMonths, io as addYears, Ja as adjustCursorAfterFormat, Wa as capitalizeWords, ci as cn, Aa as composeValidators, za as creditCardBrands, no as daysInMonth, La as detectCardBrand, Za as firstDayOfMonth, ho as formatAbsoluteTime, Ra as formatCardNumber, Ka as formatCurrency, ao as formatDate, Ba as formatIBAN, Ga as formatNIP, qa as formatPhone, Ma as formatPostCode, fo as formatRelativeTime, Qa as formatTime, mo as getAutoUpdateInterval, co as getDayNames, t as getHiddenProps, wo as getMineralComponentLicense, xo as getMineralComponentPlan, $a as getMonthNames, Pa as getPostCodeRule, uo as getRelativeTimeValue, eo as isDateInRange, Co as isMineralProComponent, oo as isSameDay, bo as mineralComponentLicenses, yo as mineralProComponents, Va as parseCurrencyToNumber, ro as parseDate, lo as parseRelativeThreshold, to as parseTime, ya as postCodeCountries, Na as postCodeRules, Ms as resolveMCardAction, Ia as stripCardNumber, Ua as stripNonAlphanumeric, Ya as stripNonDigits, Xa as stripTime, po as toDate, Ha as unformatIBAN, So as useClickOutside, go as useDebounce, _o as useDebouncedCallback, ul as useFormContext, dl as useFormField, vo as useGhostText, Eo as useInteractionEffect, To as useKeyboardNav, Hc as useMCardGrid, r as useMI18n, Bc as useMTable, e as useMTheme, us as useMToast, te as useMaxWidth, Fa as validateCardNumber, Da as validateEmail, ka as validateIBAN, ba as validateMaxLength, Ta as validateMinLength, ja as validateNIP, xa as validatePESEL, Sa as validatePattern, Oa as validatePhone, va as validatePostCode, Ea as validateREGON, wa as validateRange, Ca as validateRequired };
|
package/dist/inputs.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(`./MInput-BpTlP8GE.cjs`),t=require(`./MInputCVC-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MInput-BpTlP8GE.cjs`),t=require(`./MInputCVC-BlY5OrVn.cjs`),n=require(`./inputs-yaaTPTsY.cjs`),r=require(`./MInputSearch-9wcXlY8-.cjs`);exports.MInput=e.t,exports.MInputCVC=t.t,exports.MInputCreditCard=n.a,exports.MInputCurrency=n.s,exports.MInputDate=n.o,exports.MInputEmail=n.m,exports.MInputExpDate=t.n,exports.MInputFile=n.t,exports.MInputGroup=n.u,exports.MInputIBAN=n.l,exports.MInputName=n.d,exports.MInputNumber=n.h,exports.MInputOTP=n.r,exports.MInputPassword=n.g,exports.MInputPhone=n.f,exports.MInputPostCode=n.i,exports.MInputSearch=r.t,exports.MInputSlider=n.n,exports.MInputTaxId=n.c,exports.MInputUrl=n.p,exports.MTextarea=n._;
|
package/dist/inputs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
3
|
import { t as e } from "./MInput-C8ObGzQk.js";
|
|
4
|
-
import { n as t, t as n } from "./MInputCVC-
|
|
4
|
+
import { n as t, t as n } from "./MInputCVC-B4V0QI5h.js";
|
|
5
5
|
import { _ as r, a as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y } from "./inputs-CQoi402V.js";
|
|
6
6
|
import { t as b } from "./MInputSearch-BM8gLlJ1.js";
|
|
7
7
|
export { e as MInput, n as MInputCVC, i as MInputCreditCard, _ as MInputCurrency, m as MInputDate, f as MInputEmail, t as MInputExpDate, v as MInputFile, y as MInputGroup, d as MInputIBAN, o as MInputName, l as MInputNumber, g as MInputOTP, c as MInputPassword, s as MInputPhone, u as MInputPostCode, b as MInputSearch, p as MInputSlider, a as MInputTaxId, h as MInputUrl, r as MTextarea };
|
|
@@ -8,7 +8,7 @@ import { t as m } from "./MButton-C1pnL4_j.js";
|
|
|
8
8
|
import { t as h } from "./MButtonGroup-BkNf7fzo.js";
|
|
9
9
|
import { t as g } from "./MSimpleGrid-BWKurW6H.js";
|
|
10
10
|
import { t as _ } from "./MTooltip-BTJkzOah.js";
|
|
11
|
-
import { i as v } from "./MDropdownMenu-
|
|
11
|
+
import { i as v } from "./MDropdownMenu-CFoKJ7V6.js";
|
|
12
12
|
import { Children as y, cloneElement as b, createContext as x, forwardRef as S, isValidElement as C, useCallback as w, useContext as T, useEffect as E, useId as D, useImperativeHandle as O, useMemo as k, useRef as A, useState as j } from "react";
|
|
13
13
|
import { jsx as M, jsxs as N } from "react/jsx-runtime";
|
|
14
14
|
//#region src/components/layout/MContainer/MContainer.tsx
|
|
@@ -879,4 +879,4 @@ var oe = S($), se = "button, a, [role=\"button\"]", ce = S(function({ children:
|
|
|
879
879
|
//#endregion
|
|
880
880
|
export { z as _, Z as a, F as b, X as c, q as d, Y as f, B as g, V as h, re as i, ne as l, H as m, oe as n, K as o, J as p, Q as r, ee as s, ce as t, te as u, L as v, P as x, I as y };
|
|
881
881
|
|
|
882
|
-
//# sourceMappingURL=layout-
|
|
882
|
+
//# sourceMappingURL=layout-CdSpVJuK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-i8H5tIbO.js","names":[],"sources":["../src/components/layout/MContainer/MContainer.tsx","../src/components/layout/MHeader/MHeader.tsx","../src/components/layout/MFooter/MFooter.tsx","../src/components/layout/MNavs/MNavs.tsx","../src/components/layout/MNavbar/MNavbar.tsx","../src/components/layout/MSection/MSection.tsx","../src/components/layout/MStatGrid/MStatGrid.tsx","../src/components/layout/MDivider/MDivider.tsx","../src/components/layout/MSidebar/MSidebar.tsx","../src/components/layout/MBreadcrumb/MBreadcrumb.tsx","../src/components/layout/MAppShell/MAppShell.tsx","../src/components/layout/MCanvasGrid/ScaleToFit.tsx","../src/components/layout/MCanvasGrid/MCanvasGrid.tsx","../src/components/layout/MStickyPanel/MStickyPanel.tsx"],"sourcesContent":["import type {MContainerProps} from './MContainer.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MContainer.css'\n\n// Constrain page content widths and apply shared spacing utilities.\nexport function MContainer({\n size = 'content',\n padded = true,\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MContainerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'container',\n size,\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MHeaderProps} from './MHeader.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MHeader.css'\n\n// Render a reusable page header shell aligned to a shared container.\nexport function MHeader({\n container = 'wide',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n layout = 'split',\n hidden,\n className,\n children,\n ...rest\n}: MHeaderProps) {\n return (\n <header\n className={cn('header', tone, bordered && 'bordered', sticky && 'sticky', className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n <MContainer size={container} padded={padded} className={cn('inner', `layout-${layout}`)}>\n {children}\n </MContainer>\n </header>\n )\n}\n","import type {MFooterProps} from './MFooter.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {MContainer} from '../MContainer'\nimport './MFooter.css'\n\n// Render a reusable page footer shell with shared spacing utilities.\nexport function MFooter({\n container = 'wide',\n padded = true,\n bordered = true,\n tone = 'surface',\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MFooterProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <footer\n className={cn(\n 'footer',\n tone,\n bordered && 'bordered',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"inner\" fullWidth>\n {children}\n </MContainer>\n </footer>\n )\n}\n","import type {MNavsProps} from './MNavs.types'\nimport {cn} from '../../../utils/cn'\nimport {MLink} from '../../typography'\nimport './MNavs.css'\n\n// Render a lightweight navigation list from data or custom children.\nexport function MNavs({items, orientation = 'horizontal', wrap = false, className, children, ...rest}: MNavsProps) {\n return (\n <div className={cn('navs', orientation, wrap && 'wrap', className)} {...rest}>\n {items\n ? items.map((item) => {\n const Icon = item.icon\n const hideLabel = item.iconOnly === true && Icon != null\n const labelAsString = typeof item.label === 'string' ? item.label : undefined\n const ariaLabel = hideLabel ? labelAsString : undefined\n const linkTitle = item.title ?? (hideLabel ? labelAsString : undefined)\n\n return (\n <MLink\n key={item.key ?? item.href ?? item.title?.toString() ?? labelAsString ?? ''}\n component={item.component}\n href={item.href}\n to={item.to}\n target={item.target}\n rel={item.rel}\n title={linkTitle}\n current={item.current}\n disabled={item.disabled}\n className={cn('link', hideLabel && 'icon-only', item.className)}\n aria-label={ariaLabel}\n >\n {Icon ? (\n <span className=\"icon\" aria-hidden={!hideLabel || undefined}>\n <Icon size={item.iconSize} />\n </span>\n ) : null}\n {!hideLabel ? item.label : null}\n </MLink>\n )\n })\n : children}\n </div>\n )\n}\n","import {Children, cloneElement, isValidElement, useEffect, useId, useRef, useState} from 'react'\nimport type {MouseEvent as ReactMouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MNavbarProps} from './MNavbar.types'\nimport {getHiddenProps, MShellBreakpoints, useMaxWidth} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport {MInline} from '../MInline'\nimport type {MInlineProps} from '../MInline'\nimport {MNavs} from '../MNavs'\nimport {MButton} from '../../controls/MButton'\nimport {MMenuIcon} from '../../../icons'\nimport './MNavbar.css'\n\ntype NavLikeElement = ReactElement<{children?: ReactNode; orientation?: 'horizontal' | 'vertical'}>\n\n// Walks the children tree (any depth) looking for MNavs instances so the navbar\n// can pull them into the mobile menu even when wrapped in MInline / MStack.\nfunction findNavLikeChildren(children: ReactNode, found: NavLikeElement[] = []): NavLikeElement[] {\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) {\n return\n }\n if (child.type === MNavs) {\n found.push(child as NavLikeElement)\n return\n }\n const nestedChildren = (child.props as {children?: ReactNode} | null)?.children\n if (nestedChildren !== undefined) {\n findNavLikeChildren(nestedChildren, found)\n }\n })\n return found\n}\n\n// Render a horizontal app or site navigation shell with container alignment.\n// Below the md breakpoint MNavs children are collapsed behind a hamburger toggle\n// that opens either a dropdown panel or a side drawer with the navigation items.\nexport function MNavbar({\n container = 'content',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'between',\n wrap = false,\n mobileMenu = 'dropdown',\n mobileMenuContent,\n mobileMenuFooter,\n collapseActions = false,\n mobileMenuLabel = 'Open navigation',\n mobileBreakpoint = MShellBreakpoints.compact,\n hidden,\n className,\n children,\n ...rest\n}: MNavbarProps) {\n const [open, setOpen] = useState(false)\n const rootRef = useRef<HTMLElement | null>(null)\n const menuId = useId()\n const mobile = useMaxWidth(mobileBreakpoint)\n\n const childArray = Children.toArray(children)\n\n const mobileNavs = findNavLikeChildren(children).map((element, index) =>\n cloneElement(element, {\n key: `mnavbar-mobile-navs-${index}`,\n orientation: 'vertical',\n })\n )\n\n const toggleButton = (\n <MButton\n key=\"mnavbar-toggle\"\n type=\"button\"\n variant=\"ghost\"\n size=\"md\"\n shape=\"circle\"\n iconOnly\n className=\"navbar-toggle\"\n aria-label={mobileMenuLabel}\n aria-expanded={open}\n aria-controls={menuId}\n onClick={handleToggleClick}\n >\n <MMenuIcon />\n </MButton>\n )\n\n let lastInlineIndex = -1\n for (let index = childArray.length - 1; index >= 0; index -= 1) {\n const child = childArray[index]\n if (isValidElement(child) && child.type === MInline) {\n lastInlineIndex = index\n break\n }\n }\n\n // When collapseActions is on and we're below the breakpoint, the last inline\n // (usually theme / lang / search) is pulled out of the bar and rendered in\n // the mobile menu footer. The burger toggle then attaches to the previous\n // inline (typically primary actions) — or sits on its own when none exists.\n const shouldCollapseLastInline = collapseActions && mobile && lastInlineIndex !== -1\n let collapsedActionsInline: ReactElement<MInlineProps> | null = null\n let workingChildren = childArray\n let toggleHostIndex = lastInlineIndex\n if (shouldCollapseLastInline) {\n collapsedActionsInline = childArray[lastInlineIndex] as ReactElement<MInlineProps>\n workingChildren = childArray.filter((_, index) => index !== lastInlineIndex)\n toggleHostIndex = -1\n for (let index = workingChildren.length - 1; index >= 0; index -= 1) {\n const child = workingChildren[index]\n if (isValidElement(child) && child.type === MInline) {\n toggleHostIndex = index\n break\n }\n }\n }\n\n const renderedChildren =\n toggleHostIndex === -1\n ? [...workingChildren, toggleButton]\n : workingChildren.map((child, index) => {\n if (index !== toggleHostIndex) return child\n const inlineChild = child as ReactElement<MInlineProps>\n const inlineChildren = Children.toArray(inlineChild.props.children)\n return cloneElement(inlineChild, {\n key: inlineChild.key ?? `mnavbar-inline-${index}`,\n children: [...inlineChildren, toggleButton],\n })\n })\n\n useEffect(() => {\n if (!open) return\n\n function handlePointerDown(event: PointerEvent) {\n const root = rootRef.current\n if (!root) return\n if (event.target instanceof Node && root.contains(event.target)) return\n setOpen(false)\n }\n\n function handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') setOpen(false)\n }\n\n document.addEventListener('pointerdown', handlePointerDown)\n document.addEventListener('keydown', handleKeydown)\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown)\n document.removeEventListener('keydown', handleKeydown)\n }\n }, [open])\n\n useEffect(() => {\n if (!mobile) {\n setOpen(false)\n }\n }, [mobile])\n\n function handleToggleClick() {\n setOpen((previous) => !previous)\n }\n\n function handleMenuClick(event: ReactMouseEvent<HTMLDivElement>) {\n const target = event.target as HTMLElement | null\n if (!target) return\n if (target.closest('a, [role=\"menuitem\"]')) {\n setOpen(false)\n }\n }\n\n return (\n <nav\n ref={rootRef}\n className={cn(\n 'navbar',\n tone,\n bordered && 'bordered',\n sticky && 'sticky',\n mobile && 'mobile-view',\n open && 'mobile-open',\n `mobile-${mobileMenu}`,\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"container\">\n <div className={cn('inner', justify, wrap && 'wrap')}>{renderedChildren}</div>\n </MContainer>\n\n {mobileMenu === 'drawer' && <div className={cn('mobile-backdrop', open && 'visible')} aria-hidden />}\n\n <div\n id={menuId}\n className={cn('mobile-menu', mobileMenu, open && 'open')}\n role=\"menu\"\n aria-hidden={!open || undefined}\n onClick={handleMenuClick}\n >\n {mobileNavs}\n {mobileMenuContent}\n {collapsedActionsInline ? (\n <div className=\"mobile-menu-footer\">\n {cloneElement(collapsedActionsInline, {\n key: 'mnavbar-collapsed-actions',\n })}\n </div>\n ) : null}\n {mobileMenuFooter ? <div className=\"mobile-menu-footer\">{mobileMenuFooter}</div> : null}\n </div>\n </nav>\n )\n}\n","import type React from 'react'\nimport type {MSectionProps} from './MSection.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MSection.css'\n\n// Render a semantic page section with predefined spacing and tone.\nexport function MSection({\n as = 'section',\n spacing = 'lg',\n tone = 'default',\n hidden,\n className,\n style,\n children,\n ...rest\n}: MSectionProps) {\n const Component = as\n\n return (\n <Component\n className={cn('section', spacing, tone, className)}\n style={style}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import type {MStatGridProps} from './MStatGrid.types'\nimport {MSimpleGrid} from '../MSimpleGrid'\n\nexport function MStatGrid<T>({\n items,\n renderItem,\n children,\n columns = 4,\n minItemWidth = '15rem',\n ...rest\n}: MStatGridProps<T>) {\n return (\n <MSimpleGrid columns={columns} minItemWidth={minItemWidth} {...rest}>\n {items && renderItem ? items.map((item, index) => renderItem(item, index)) : children}\n </MSimpleGrid>\n )\n}\n","import type {MDividerProps} from './MDivider.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MDivider.css'\n\n// Render a semantic divider line between related content blocks.\nexport function MDivider({\n orientation = 'horizontal',\n variant = 'solid',\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n ...rest\n}: MDividerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'divider',\n orientation,\n variant,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n />\n )\n}\n","import {createContext, useContext, useState, useEffect, useCallback, useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronRightIcon, MMenuIcon} from '../../../icons'\nimport {MDropdownMenu, MTooltip} from '../../overlays'\nimport {MShellBreakpoints, useMaxWidth} from '../../../theme'\nimport type {\n MSidebarProps,\n MSidebarHeaderProps,\n MSidebarBodyProps,\n MSidebarNavProps,\n MSidebarItemProps,\n MSidebarGroupProps,\n MSidebarFooterProps,\n MSidebarDividerProps,\n MSidebarMode,\n} from './MSidebar.types'\nimport './MSidebar.css'\n\nconst STORAGE_KEY = 'mineralui-sidebar'\n\ninterface SidebarContextValue {\n mode: MSidebarMode\n mobile: boolean\n mobileOpen: boolean\n canToggle: boolean\n toggleMode: () => void\n}\n\nconst SidebarCtx = createContext<SidebarContextValue>({\n mode: 'expanded',\n mobile: false,\n mobileOpen: false,\n canToggle: false,\n toggleMode: () => {},\n})\n\n// Read shared sidebar state inside slot components.\nfunction useSidebar() {\n return useContext(SidebarCtx)\n}\n\n// Render the sidebar shell and coordinate desktop and mobile behavior.\nexport function MSidebar({\n mode: modeProp = 'auto',\n defaultMode = 'expanded',\n onModeChange,\n persist = false,\n side = 'left',\n tone = 'subtle',\n bordered = true,\n mobileBreakpoint = MShellBreakpoints.mobile,\n compactBreakpoint = MShellBreakpoints.compact,\n className,\n style,\n children,\n}: MSidebarProps) {\n const resolvedCompactBreakpoint = Math.max(compactBreakpoint, mobileBreakpoint)\n const mobile = useMaxWidth(mobileBreakpoint)\n const compactViewport = useMaxWidth(resolvedCompactBreakpoint)\n const compact = !mobile && compactViewport\n const [mobileOpen, setMobileOpen] = useState(false)\n\n const [internalMode, setInternalMode] = useState<MSidebarMode>(() => {\n if (persist) {\n try {\n const v = localStorage.getItem(STORAGE_KEY)\n if (v === 'expanded' || v === 'collapsed') return v\n } catch {\n /* noop */\n }\n }\n\n return defaultMode\n })\n\n const resolvedMode: MSidebarMode = mobile\n ? 'expanded'\n : compact\n ? 'collapsed'\n : modeProp === 'auto'\n ? internalMode\n : modeProp === 'collapsed'\n ? 'collapsed'\n : 'expanded'\n\n // MToggle only the desktop width state. Mobile uses its own overlay flow.\n const toggleMode = useCallback(() => {\n const next: MSidebarMode = resolvedMode === 'expanded' ? 'collapsed' : 'expanded'\n\n setInternalMode(next)\n onModeChange?.(next)\n\n if (persist) {\n try {\n localStorage.setItem(STORAGE_KEY, next)\n } catch {\n /* noop */\n }\n }\n }, [resolvedMode, onModeChange, persist])\n\n const closeMobile = useCallback(() => setMobileOpen(false), [])\n\n // Let Escape close the temporary mobile drawer.\n useEffect(() => {\n if (!mobileOpen) return\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setMobileOpen(false)\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [mobileOpen])\n\n useEffect(() => {\n if (!mobile) {\n setMobileOpen(false)\n }\n }, [mobile])\n\n const canToggle = !mobile && !compact && modeProp === 'auto'\n\n const ctx = useMemo<SidebarContextValue>(\n () => ({mode: resolvedMode, mobile, mobileOpen, canToggle, toggleMode}),\n [resolvedMode, mobile, mobileOpen, canToggle, toggleMode]\n )\n\n const isCollapsed = !mobile && resolvedMode === 'collapsed'\n\n const sidebarCls = cn(\n 'sidebar',\n tone,\n side,\n isCollapsed && 'collapsed',\n compact && 'compact',\n bordered && 'bordered',\n mobile && 'mobile',\n mobile && mobileOpen && 'mobile-open',\n className\n )\n\n return (\n <SidebarCtx.Provider value={ctx}>\n {mobile && mobileOpen && <div className=\"sidebar-backdrop\" onClick={closeMobile} />}\n\n <aside className={sidebarCls} style={style}>\n {children}\n </aside>\n\n {mobile && !mobileOpen && (\n <button\n className={cn('sidebar-hamburger', side)}\n onClick={() => setMobileOpen(true)}\n aria-label=\"Open menu\"\n >\n <span className=\"sidebar-hamburger-icon\" aria-hidden=\"true\">\n <MMenuIcon />\n </span>\n </button>\n )}\n </SidebarCtx.Provider>\n )\n}\n\n// Render the top area with branding and an optional collapse toggle.\nexport function MSidebarHeader({bordered = false, className, children}: MSidebarHeaderProps) {\n const {mode, mobile, canToggle, toggleMode} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n return (\n <div className={cn('sidebar-header', bordered && 'bordered', className)}>\n <div className=\"sidebar-header-content\">{children}</div>\n {canToggle && (\n <MButton\n variant=\"outlined\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={toggleMode}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n className=\"sidebar-toggle\"\n >\n <span className={cn('sidebar-chevron', isCollapsed && 'flipped')}>\n <MChevronRightIcon />\n </span>\n </MButton>\n )}\n </div>\n )\n}\n\n// Wrap the scrollable middle area between header and footer.\nexport function MSidebarBody({className, children}: MSidebarBodyProps) {\n return <div className={cn('sidebar-body', className)}>{children}</div>\n}\n\n// Wrap sidebar links in a navigation landmark.\nexport function MSidebarNav({className, children}: MSidebarNavProps) {\n return <nav className={cn('sidebar-nav', className)}>{children}</nav>\n}\n\n// Render one clickable sidebar row as a link, button or custom component.\nexport function MSidebarItem({\n icon,\n label,\n description,\n href,\n to,\n onClick,\n active = false,\n disabled = false,\n badge,\n color,\n component,\n className,\n}: MSidebarItemProps) {\n const {mode, mobile} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n // ONE tooltip per row: prefer description, fall back to label. The HTML\n // title attribute used in collapsed mode mirrors the same priority but is\n // limited to strings (browsers can't render ReactNodes).\n const tooltipContent = description ?? label\n const titleAttr = typeof description === 'string'\n ? description\n : typeof label === 'string'\n ? label\n : undefined\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? (to ? {to} : href ? {href} : {}) : href ? {href} : to ? {href: to} : {}\n const cls = cn('sidebar-item', active && 'active', disabled && 'disabled', color, className)\n\n return (\n <Tag\n className={cls}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled || undefined}\n title={isCollapsed ? titleAttr : undefined}\n {...linkProps}\n >\n {icon && <span className=\"sidebar-item-icon\">{icon}</span>}\n {!isCollapsed && (\n <MTooltip content={tooltipContent} placement=\"top\" className=\"sidebar-item-label-tooltip\">\n <span className=\"sidebar-item-label\">{label}</span>\n </MTooltip>\n )}\n {!isCollapsed && badge && <span className=\"sidebar-item-badge\">{badge}</span>}\n </Tag>\n )\n}\n\n// Group related sidebar items and swap to a dropdown when collapsed.\nexport function MSidebarGroup({\n label,\n icon,\n active = false,\n defaultOpen = true,\n collapsible = true,\n children,\n className,\n}: MSidebarGroupProps) {\n const sidebarCtx = useSidebar()\n const {mode, mobile} = sidebarCtx\n const isCollapsed = !mobile && mode === 'collapsed'\n const [open, setOpen] = useState(defaultOpen)\n\n const expandedCtx = useMemo<SidebarContextValue>(() => ({...sidebarCtx, mode: 'expanded'}), [sidebarCtx])\n\n // Keep expand/collapse local to this group.\n const toggle = () => {\n if (collapsible) setOpen((o) => !o)\n }\n\n if (isCollapsed) {\n const trigger = (\n <span className={cn('sidebar-group-icon collapsed', active && 'active')} title={label}>\n {icon}\n </span>\n )\n\n return (\n <div className={cn('sidebar-group', className)}>\n <MDropdownMenu trigger={trigger} placement=\"right-start\" closeOnSelect openOn=\"hover\">\n <SidebarCtx.Provider value={expandedCtx}>{children}</SidebarCtx.Provider>\n </MDropdownMenu>\n </div>\n )\n }\n\n return (\n <div className={cn('sidebar-group', className)}>\n <button className={cn('sidebar-group-header', active && 'active')} onClick={toggle} aria-expanded={open}>\n {icon && <span className=\"sidebar-group-icon\">{icon}</span>}\n <span className=\"sidebar-group-label\">{label}</span>\n {collapsible && (\n <span className={cn('sidebar-group-arrow', open && 'open')}>\n <MChevronRightIcon />\n </span>\n )}\n </button>\n {open && <div className=\"sidebar-group-items\">{children}</div>}\n </div>\n )\n}\n\n// Render the bottom slot for version info or quick actions.\nexport function MSidebarFooter({bordered = false, className, children}: MSidebarFooterProps) {\n return <div className={cn('sidebar-footer', bordered && 'bordered', className)}>{children}</div>\n}\n\n// Render a spacing-aware divider between sidebar regions.\nexport function MSidebarDivider({className, spacing = 'md'}: MSidebarDividerProps) {\n return <hr className={cn('sidebar-divider', spacing, className)} />\n}\n","import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MBreadcrumbProps} from './MBreadcrumb.types'\nimport './MBreadcrumb.css'\n\n// Render a compact path and collapse the middle when needed.\nexport function MBreadcrumb({items, separator = '/', maxItems, className, ...rest}: MBreadcrumbProps) {\n // Keep the current page visible while shortening deep paths.\n const visible = useMemo(() => {\n if (!maxItems || maxItems >= items.length) return items\n if (maxItems < 2) return [items[items.length - 1]]\n const head = items.slice(0, 1)\n const tail = items.slice(-(maxItems - 1))\n return [...head, null, ...tail]\n }, [items, maxItems])\n\n return (\n <nav aria-label=\"breadcrumb\" className={cn('breadcrumb', className)} {...rest}>\n <ol className=\"trail\">\n {visible.map((item, i) => {\n if (item === null) {\n return (\n <li key=\"ellipsis\" className=\"crumb dots\">\n <span className=\"sep\">{separator}</span>\n <span>…</span>\n </li>\n )\n }\n\n const isLast = i === visible.length - 1\n\n return (\n <li key={i} className={cn('crumb', isLast && 'active')}>\n {i > 0 && <span className=\"sep\">{separator}</span>}\n {item.href && !isLast ? (\n <a href={item.href} className=\"link\" onClick={item.onClick}>\n {item.label}\n </a>\n ) : item.onClick && !isLast ? (\n <button type=\"button\" className=\"link btn\" onClick={item.onClick}>\n {item.label}\n </button>\n ) : (\n <span className=\"current\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n","import {forwardRef, Children, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {MAppShellProps, MBodyProps} from './MAppShell.types'\nimport {cn} from '../../../utils/cn'\nimport {MSidebar} from '../MSidebar'\nimport './MAppShell.css'\n\nexport const MAppShell = forwardRef<HTMLDivElement, MAppShellProps>(function MAppShell(\n {className, children, ...rest},\n ref\n) {\n const sidebarElements: React.ReactNode[] = []\n const otherElements: React.ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === MSidebar) {\n sidebarElements.push(child)\n } else {\n otherElements.push(child)\n }\n })\n\n return (\n <div ref={ref} className={cn('app-shell', className)} {...rest}>\n {sidebarElements}\n <div className=\"app-main\">{otherElements}</div>\n </div>\n )\n})\n\nexport const MBody = forwardRef<HTMLDivElement, MBodyProps>(function MBody({className, children, ...rest}, ref) {\n return (\n <div ref={ref} className={cn('app-body', className)} {...rest}>\n {children}\n </div>\n )\n})\n","import {useEffect, useRef, useState, type ReactNode} from 'react'\n\ninterface ScaleToFitProps {\n /**\n * Minimum render width (in CSS px). When the parent is narrower, content\n * is rendered at this width and scaled down. When the parent is wider,\n * content is rendered at the parent's width (no scale-up, no padding).\n */\n baseWidth?: number\n children: ReactNode\n}\n\n/**\n * Renders `children` at `max(baseWidth, parentWidth)`, then applies\n * `transform: scale(...)` so the rendered block fits the parent box without\n * scrollbars. Scale never exceeds 1 (no blurry up-scaling). When the parent\n * is wider than baseWidth, render width tracks the parent so content fills\n * the available space natively (no horizontal padding).\n */\nexport function ScaleToFit({baseWidth = 480, children}: ScaleToFitProps) {\n const wrapperRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const [scale, setScale] = useState(1)\n const [renderWidth, setRenderWidth] = useState<number>(baseWidth)\n\n useEffect(() => {\n const wrap = wrapperRef.current\n const content = contentRef.current\n if (!wrap || !content) return\n\n let frame = 0\n const recompute = () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const wW = wrap.clientWidth\n const wH = wrap.clientHeight\n if (wW === 0 || wH === 0) return\n const cW = Math.max(baseWidth, wW)\n const cH = content.offsetHeight\n if (cW === 0 || cH === 0) return\n const sW = wW / cW\n const sH = wH / cH\n const next = Math.min(sW, sH, 1)\n if (next > 0 && Number.isFinite(next)) {\n setRenderWidth(cW)\n setScale(next)\n }\n })\n }\n\n const ro = new ResizeObserver(recompute)\n ro.observe(wrap)\n ro.observe(content)\n recompute()\n return () => {\n cancelAnimationFrame(frame)\n ro.disconnect()\n }\n }, [baseWidth])\n\n return (\n <div ref={wrapperRef} className=\"canvas-grid-scale-wrapper\">\n <div\n ref={contentRef}\n className=\"canvas-grid-scale-content\"\n style={{width: `${renderWidth}px`, transform: `scale(${scale})`}}\n >\n {children}\n </div>\n </div>\n )\n}\n","import {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport type {CSSProperties, ForwardedRef, PointerEvent as ReactPointerEvent, ReactElement, Ref} from 'react'\nimport type {MCanvasGridItem, MCanvasGridPosition, MCanvasGridProps} from './MCanvasGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {MShellBreakpoints, useMaxWidth} from '../../../theme'\nimport {MEditIcon, MMoveIcon, MTrashIcon, MZoomInIcon} from '../../../icons'\nimport {MButton} from '../../controls/MButton'\nimport {MButtonGroup} from '../../controls/MButtonGroup'\nimport {ScaleToFit} from './ScaleToFit'\nimport './MCanvasGrid.css'\n\ninterface DragState {\n itemId: string\n mode: 'drag' | 'resize'\n startClientX: number\n startClientY: number\n original: MCanvasGridPosition\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction MCanvasGridInner<T extends MCanvasGridItem>(\n {\n columns = 24,\n rows = 24,\n snap = 4,\n items,\n renderItem,\n minItemSize,\n maxItemSize: _maxItemSize,\n editable = false,\n onItemMove,\n onItemResize,\n onItemRemove,\n onItemEdit,\n onItemExpand,\n guides = 'always',\n compactBreakpoint = MShellBreakpoints.compact,\n mobileBreakpoint = MShellBreakpoints.mobile,\n height,\n fitContent = 'scroll',\n fitContentBaseWidth = 480,\n className,\n style,\n }: MCanvasGridProps<T>,\n ref: ForwardedRef<HTMLDivElement>\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [size, setSize] = useState({width: 0, height: 0})\n const [drag, setDrag] = useState<DragState | null>(null)\n const [preview, setPreview] = useState<MCanvasGridPosition | null>(null)\n const [touchOrder, setTouchOrder] = useState<Record<string, number>>({})\n const touchCounterRef = useRef(0)\n\n function bringToFront(itemId: string) {\n touchCounterRef.current += 1\n setTouchOrder((prev) => ({...prev, [itemId]: touchCounterRef.current}))\n }\n\n function suppressNextClick() {\n let armed = true\n const stopper = (ev: MouseEvent) => {\n if (!armed) return\n armed = false\n ev.stopPropagation()\n ev.preventDefault()\n window.removeEventListener('click', stopper, true)\n }\n window.addEventListener('click', stopper, true)\n window.setTimeout(() => {\n if (!armed) return\n armed = false\n window.removeEventListener('click', stopper, true)\n }, 60)\n }\n\n const isMobile = useMaxWidth(mobileBreakpoint)\n const isCompact = useMaxWidth(compactBreakpoint) && !isMobile\n\n const totalCols = columns * snap\n const totalRows = rows * snap\n const effectiveCols = isCompact ? Math.max(1, Math.round(totalCols / 2)) : totalCols\n const effectiveRows = isCompact ? Math.max(1, Math.round(totalRows / 2)) : totalRows\n const effectiveCells = isCompact ? Math.max(1, Math.round(columns / 2)) : columns\n const effectiveRowCells = isCompact ? Math.max(1, Math.round(rows / 2)) : rows\n\n const interactive = editable && !isMobile\n\n useEffect(() => {\n const node = innerRef.current\n if (!node || typeof ResizeObserver === 'undefined') return\n const update = () => setSize({width: node.clientWidth, height: node.clientHeight})\n update()\n const observer = new ResizeObserver(update)\n observer.observe(node)\n return () => observer.disconnect()\n }, [])\n\n const setRefs = useCallback(\n (node: HTMLDivElement | null) => {\n innerRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as {current: HTMLDivElement | null}).current = node\n },\n [ref]\n )\n\n function getMin(item: T) {\n const m = minItemSize?.(item)\n if (!m) return {w: snap, h: snap}\n return {w: Math.max(snap, m.w * snap), h: Math.max(snap, m.h * snap)}\n }\n\n function startResize(e: ReactPointerEvent<HTMLDivElement>, item: T) {\n if (!interactive) return\n e.stopPropagation()\n e.preventDefault()\n ;(e.currentTarget as Element).setPointerCapture(e.pointerId)\n bringToFront(item.id)\n setDrag({\n itemId: item.id,\n mode: 'resize',\n startClientX: e.clientX,\n startClientY: e.clientY,\n original: {...item.position},\n })\n setPreview({...item.position})\n }\n\n function startDragFromHeader(e: ReactPointerEvent<HTMLDivElement>, item: T) {\n if (!interactive) return\n if ((e.target as Element).closest('button, [role=\"button\"]')) return\n e.stopPropagation()\n e.preventDefault()\n ;(e.currentTarget as Element).setPointerCapture(e.pointerId)\n bringToFront(item.id)\n setDrag({\n itemId: item.id,\n mode: 'drag',\n startClientX: e.clientX,\n startClientY: e.clientY,\n original: {...item.position},\n })\n setPreview({...item.position})\n }\n\n function handlePointerMove(e: ReactPointerEvent<HTMLDivElement>) {\n if (!drag || size.width === 0 || size.height === 0) return\n const cellPxX = size.width / effectiveCols\n const cellPxY = size.height / effectiveRows\n const dx = Math.round((e.clientX - drag.startClientX) / cellPxX)\n const dy = Math.round((e.clientY - drag.startClientY) / cellPxY)\n const original = drag.original\n\n const targetItem = items.find((it) => it.id === drag.itemId)\n const min = targetItem ? getMin(targetItem) : {w: snap, h: snap}\n\n if (drag.mode === 'drag') {\n const x = clamp(original.x + dx, 0, effectiveCols - original.w)\n const y = clamp(original.y + dy, 0, effectiveRows - original.h)\n setPreview({x, y, w: original.w, h: original.h})\n } else {\n const w = clamp(original.w + dx, min.w, effectiveCols - original.x)\n const h = clamp(original.h + dy, min.h, effectiveRows - original.y)\n setPreview({x: original.x, y: original.y, w, h})\n }\n }\n\n function handlePointerUp(e: ReactPointerEvent<HTMLDivElement>) {\n if (!drag) return\n try {\n ;(e.currentTarget as Element).releasePointerCapture(e.pointerId)\n } catch {\n // pointer may have already been released\n }\n if (preview) {\n if (drag.mode === 'drag') onItemMove?.(drag.itemId, preview)\n else onItemResize?.(drag.itemId, preview)\n }\n setDrag(null)\n setPreview(null)\n }\n\n function handleHeaderPointerUp(e: ReactPointerEvent<HTMLDivElement>) {\n if (drag) {\n suppressNextClick()\n handlePointerUp(e)\n }\n }\n\n const guidesOn =\n guides === 'always' ||\n (guides === 'on-edit' && interactive) ||\n (guides === 'on-drag' && drag !== null)\n\n const heightStyle: CSSProperties | undefined =\n height !== undefined ? {height: typeof height === 'number' ? `${height}px` : height} : undefined\n\n if (isMobile) {\n const ordered = [...items].sort((a, b) => a.position.y - b.position.y)\n return (\n <div\n ref={setRefs}\n className={cn('canvas-grid', 'mobile', className)}\n data-guides=\"off\"\n style={{...heightStyle, ...style}}\n >\n {ordered.map((item) => (\n <div key={item.id} className=\"canvas-grid-item\">\n {renderItem(item)}\n </div>\n ))}\n </div>\n )\n }\n\n const gridStyle: CSSProperties = {\n ...heightStyle,\n ...style,\n gridTemplateColumns: `repeat(${effectiveCols}, 1fr)`,\n gridTemplateRows: `repeat(${effectiveRows}, 1fr)`,\n ['--canvas-grid-cells' as string]: String(effectiveCells),\n ['--canvas-grid-row-cells' as string]: String(effectiveRowCells),\n }\n\n const overlayCells = effectiveCells * effectiveRowCells\n\n return (\n <div\n ref={setRefs}\n className={cn('canvas-grid', isCompact && 'compact', interactive && 'editable', className)}\n data-guides={guidesOn ? 'on' : 'off'}\n style={gridStyle}\n >\n <div className=\"canvas-grid-overlay\" aria-hidden>\n {Array.from({length: overlayCells}, (_, idx) => {\n const isLastCol = (idx + 1) % effectiveCells === 0\n const isLastRow = idx >= overlayCells - effectiveCells\n return (\n <div\n key={idx}\n className={cn('canvas-grid-cell', isLastCol && 'no-right', isLastRow && 'no-bottom')}\n />\n )\n })}\n </div>\n\n {items.map((item) => {\n const isDragging = drag?.itemId === item.id\n const live = isDragging && preview ? preview : item.position\n // half-precision math for compact viewport\n const x = isCompact ? Math.round(live.x / 2) : live.x\n const y = isCompact ? Math.round(live.y / 2) : live.y\n const w = Math.max(1, isCompact ? Math.round(live.w / 2) : live.w)\n const h = Math.max(1, isCompact ? Math.round(live.h / 2) : live.h)\n\n const baseZ = 1 + (touchOrder[item.id] ?? 0)\n const itemStyle: CSSProperties = {\n gridColumn: `${x + 1} / span ${w}`,\n gridRow: `${y + 1} / span ${h}`,\n zIndex: isDragging ? baseZ + 100 : baseZ,\n }\n\n return (\n <div\n key={item.id}\n className={cn('canvas-grid-item', isDragging && 'dragging')}\n style={itemStyle}\n >\n <div\n className=\"canvas-grid-item-header\"\n onPointerDown={(e) => startDragFromHeader(e, item)}\n onPointerMove={handlePointerMove}\n onPointerUp={handleHeaderPointerUp}\n onPointerCancel={handlePointerUp}\n >\n <MButtonGroup variant=\"ghost\" size=\"xs\">\n {interactive && onItemEdit && (\n <MButton\n color=\"primary\"\n iconOnly\n aria-label=\"Edit tile\"\n startIcon={<MEditIcon />}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.stopPropagation()\n onItemEdit(item.id)\n }}\n />\n )}\n {onItemExpand && (\n <MButton\n color=\"primary\"\n iconOnly\n aria-label=\"Expand tile\"\n startIcon={<MZoomInIcon />}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.stopPropagation()\n onItemExpand(item.id)\n }}\n />\n )}\n {interactive && onItemRemove && (\n <MButton\n color=\"error\"\n iconOnly\n aria-label=\"Remove tile\"\n startIcon={<MTrashIcon />}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.stopPropagation()\n onItemRemove(item.id)\n }}\n />\n )}\n </MButtonGroup>\n </div>\n <div className=\"canvas-grid-item-body\">\n {fitContent === 'scale' ? (\n <ScaleToFit baseWidth={fitContentBaseWidth}>{renderItem(item)}</ScaleToFit>\n ) : (\n renderItem(item)\n )}\n </div>\n {!interactive && onItemExpand && (\n <MButton\n className=\"canvas-grid-view-expand-handle\"\n variant=\"filled\"\n shape=\"circle\"\n size=\"sm\"\n color=\"primary\"\n iconOnly\n aria-label=\"Expand tile\"\n startIcon={<MZoomInIcon />}\n onClick={(e) => {\n e.stopPropagation()\n onItemExpand(item.id)\n }}\n />\n )}\n {interactive && isDragging && (\n <div className=\"canvas-grid-item-glass\" aria-hidden>\n <MMoveIcon size={28} />\n </div>\n )}\n {interactive && (\n <div\n className=\"canvas-grid-resize-handle\"\n aria-hidden\n onPointerDown={(e) => startResize(e, item)}\n onPointerMove={handlePointerMove}\n onPointerUp={(e) => {\n if (drag) suppressNextClick()\n handlePointerUp(e)\n }}\n onPointerCancel={handlePointerUp}\n />\n )}\n </div>\n )\n })}\n </div>\n )\n}\n\nexport const MCanvasGrid = forwardRef(MCanvasGridInner) as <T extends MCanvasGridItem>(\n props: MCanvasGridProps<T> & {ref?: Ref<HTMLDivElement>}\n) => ReactElement | null\n","import {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MStickyPanelProps} from './MStickyPanel.types'\nimport {cn} from '../../../utils/cn'\nimport './MStickyPanel.css'\n\nconst INTERACTIVE_SELECTOR = 'button, a, [role=\"button\"]'\n\n// Sticky side-rail panel: sticks to the viewport at `top`, fills viewport-relative height,\n// scrolls internally with an optional hidden scrollbar and click-and-drag scrolling.\nexport const MStickyPanel = forwardRef<HTMLDivElement, MStickyPanelProps>(function MStickyPanel(\n {\n children,\n top = 16,\n bottomGap = 16,\n hideScrollbar = true,\n draggable = true,\n className,\n style,\n ...rest\n },\n forwardedRef\n) {\n const panelRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(forwardedRef, () => panelRef.current as HTMLDivElement)\n const dragState = useRef<{startY: number; startScrollTop: number} | null>(null)\n const [dragging, setDragging] = useState(false)\n\n useEffect(() => {\n if (!draggable) return\n\n const handleMouseMove = (event: MouseEvent) => {\n const drag = dragState.current\n const panel = panelRef.current\n if (!drag || !panel) return\n panel.scrollTop = drag.startScrollTop - (event.clientY - drag.startY)\n }\n\n const handleMouseUp = () => {\n if (!dragState.current) return\n dragState.current = null\n setDragging(false)\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n return () => {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n }\n }, [draggable])\n\n const handleMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!draggable) return\n // Skip drag start when the click originated on an interactive descendant\n // (button, link, role=button) so triggers like MDropdownMenu, MButton or\n // <Link> stay clickable inside the panel.\n const target = event.target as HTMLElement | null\n if (target && target.closest(INTERACTIVE_SELECTOR)) return\n\n const panel = panelRef.current\n if (!panel) return\n\n dragState.current = {startY: event.clientY, startScrollTop: panel.scrollTop}\n setDragging(true)\n event.preventDefault()\n }\n\n const mergedStyle: React.CSSProperties = {\n top,\n height: `calc(100vh - ${top + bottomGap}px)`,\n ...style,\n }\n\n return (\n <div\n ref={panelRef}\n className={cn(\n 'm-sticky-panel',\n draggable && 'draggable',\n dragging && 'is-dragging',\n hideScrollbar && 'hide-scrollbar',\n className\n )}\n style={mergedStyle}\n onMouseDown={handleMouseDown}\n {...rest}\n >\n {children}\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;AAOA,SAAgB,EAAW,EACvB,UAAO,WACP,YAAS,IACT,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACa;CAChB,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,aACA,GACA,KAAU,UACV,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACC,CAAA;;;;AC1Dd,SAAgB,EAAQ,EACpB,eAAY,QACZ,YAAS,IACT,cAAW,IACX,YAAS,IACT,UAAO,WACP,YAAS,SACT,WACA,cACA,aACA,GAAG,KACU;AACb,QACI,kBAAC,UAAD;EACI,WAAW,EAAG,UAAU,GAAM,KAAY,YAAY,KAAU,UAAU,EAAU;EACpF,GAAI,EAAe,EAAO;EAC1B,GAAI;YAEJ,kBAAC,GAAD;GAAY,MAAM;GAAmB;GAAQ,WAAW,EAAG,SAAS,UAAU,IAAS;GAClF;GACQ,CAAA;EACR,CAAA;;;;ACpBjB,SAAgB,EAAQ,EACpB,eAAY,QACZ,YAAS,IACT,cAAW,IACX,UAAO,WACP,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACU;CACb,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,UAAD;EACI,WAAW,EACP,UACA,GACA,KAAY,YACZ,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,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"}
|
|
1
|
+
{"version":3,"file":"layout-CdSpVJuK.js","names":[],"sources":["../src/components/layout/MContainer/MContainer.tsx","../src/components/layout/MHeader/MHeader.tsx","../src/components/layout/MFooter/MFooter.tsx","../src/components/layout/MNavs/MNavs.tsx","../src/components/layout/MNavbar/MNavbar.tsx","../src/components/layout/MSection/MSection.tsx","../src/components/layout/MStatGrid/MStatGrid.tsx","../src/components/layout/MDivider/MDivider.tsx","../src/components/layout/MSidebar/MSidebar.tsx","../src/components/layout/MBreadcrumb/MBreadcrumb.tsx","../src/components/layout/MAppShell/MAppShell.tsx","../src/components/layout/MCanvasGrid/ScaleToFit.tsx","../src/components/layout/MCanvasGrid/MCanvasGrid.tsx","../src/components/layout/MStickyPanel/MStickyPanel.tsx"],"sourcesContent":["import type {MContainerProps} from './MContainer.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MContainer.css'\n\n// Constrain page content widths and apply shared spacing utilities.\nexport function MContainer({\n size = 'content',\n padded = true,\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MContainerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'container',\n size,\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MHeaderProps} from './MHeader.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MHeader.css'\n\n// Render a reusable page header shell aligned to a shared container.\nexport function MHeader({\n container = 'wide',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n layout = 'split',\n hidden,\n className,\n children,\n ...rest\n}: MHeaderProps) {\n return (\n <header\n className={cn('header', tone, bordered && 'bordered', sticky && 'sticky', className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n <MContainer size={container} padded={padded} className={cn('inner', `layout-${layout}`)}>\n {children}\n </MContainer>\n </header>\n )\n}\n","import type {MFooterProps} from './MFooter.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {MContainer} from '../MContainer'\nimport './MFooter.css'\n\n// Render a reusable page footer shell with shared spacing utilities.\nexport function MFooter({\n container = 'wide',\n padded = true,\n bordered = true,\n tone = 'surface',\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MFooterProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <footer\n className={cn(\n 'footer',\n tone,\n bordered && 'bordered',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"inner\" fullWidth>\n {children}\n </MContainer>\n </footer>\n )\n}\n","import type {MNavsProps} from './MNavs.types'\nimport {cn} from '../../../utils/cn'\nimport {MLink} from '../../typography'\nimport './MNavs.css'\n\n// Render a lightweight navigation list from data or custom children.\nexport function MNavs({items, orientation = 'horizontal', wrap = false, className, children, ...rest}: MNavsProps) {\n return (\n <div className={cn('navs', orientation, wrap && 'wrap', className)} {...rest}>\n {items\n ? items.map((item) => {\n const Icon = item.icon\n const hideLabel = item.iconOnly === true && Icon != null\n const labelAsString = typeof item.label === 'string' ? item.label : undefined\n const ariaLabel = hideLabel ? labelAsString : undefined\n const linkTitle = item.title ?? (hideLabel ? labelAsString : undefined)\n\n return (\n <MLink\n key={item.key ?? item.href ?? item.title?.toString() ?? labelAsString ?? ''}\n component={item.component}\n href={item.href}\n to={item.to}\n target={item.target}\n rel={item.rel}\n title={linkTitle}\n current={item.current}\n disabled={item.disabled}\n className={cn('link', hideLabel && 'icon-only', item.className)}\n aria-label={ariaLabel}\n >\n {Icon ? (\n <span className=\"icon\" aria-hidden={!hideLabel || undefined}>\n <Icon size={item.iconSize} />\n </span>\n ) : null}\n {!hideLabel ? item.label : null}\n </MLink>\n )\n })\n : children}\n </div>\n )\n}\n","import {Children, cloneElement, isValidElement, useEffect, useId, useRef, useState} from 'react'\nimport type {MouseEvent as ReactMouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MNavbarProps} from './MNavbar.types'\nimport {getHiddenProps, MShellBreakpoints, useMaxWidth} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport {MInline} from '../MInline'\nimport type {MInlineProps} from '../MInline'\nimport {MNavs} from '../MNavs'\nimport {MButton} from '../../controls/MButton'\nimport {MMenuIcon} from '../../../icons'\nimport './MNavbar.css'\n\ntype NavLikeElement = ReactElement<{children?: ReactNode; orientation?: 'horizontal' | 'vertical'}>\n\n// Walks the children tree (any depth) looking for MNavs instances so the navbar\n// can pull them into the mobile menu even when wrapped in MInline / MStack.\nfunction findNavLikeChildren(children: ReactNode, found: NavLikeElement[] = []): NavLikeElement[] {\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) {\n return\n }\n if (child.type === MNavs) {\n found.push(child as NavLikeElement)\n return\n }\n const nestedChildren = (child.props as {children?: ReactNode} | null)?.children\n if (nestedChildren !== undefined) {\n findNavLikeChildren(nestedChildren, found)\n }\n })\n return found\n}\n\n// Render a horizontal app or site navigation shell with container alignment.\n// Below the md breakpoint MNavs children are collapsed behind a hamburger toggle\n// that opens either a dropdown panel or a side drawer with the navigation items.\nexport function MNavbar({\n container = 'content',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'between',\n wrap = false,\n mobileMenu = 'dropdown',\n mobileMenuContent,\n mobileMenuFooter,\n collapseActions = false,\n mobileMenuLabel = 'Open navigation',\n mobileBreakpoint = MShellBreakpoints.compact,\n hidden,\n className,\n children,\n ...rest\n}: MNavbarProps) {\n const [open, setOpen] = useState(false)\n const rootRef = useRef<HTMLElement | null>(null)\n const menuId = useId()\n const mobile = useMaxWidth(mobileBreakpoint)\n\n const childArray = Children.toArray(children)\n\n const mobileNavs = findNavLikeChildren(children).map((element, index) =>\n cloneElement(element, {\n key: `mnavbar-mobile-navs-${index}`,\n orientation: 'vertical',\n })\n )\n\n const toggleButton = (\n <MButton\n key=\"mnavbar-toggle\"\n type=\"button\"\n variant=\"ghost\"\n size=\"md\"\n shape=\"circle\"\n iconOnly\n className=\"navbar-toggle\"\n aria-label={mobileMenuLabel}\n aria-expanded={open}\n aria-controls={menuId}\n onClick={handleToggleClick}\n >\n <MMenuIcon />\n </MButton>\n )\n\n let lastInlineIndex = -1\n for (let index = childArray.length - 1; index >= 0; index -= 1) {\n const child = childArray[index]\n if (isValidElement(child) && child.type === MInline) {\n lastInlineIndex = index\n break\n }\n }\n\n // When collapseActions is on and we're below the breakpoint, the last inline\n // (usually theme / lang / search) is pulled out of the bar and rendered in\n // the mobile menu footer. The burger toggle then attaches to the previous\n // inline (typically primary actions) — or sits on its own when none exists.\n const shouldCollapseLastInline = collapseActions && mobile && lastInlineIndex !== -1\n let collapsedActionsInline: ReactElement<MInlineProps> | null = null\n let workingChildren = childArray\n let toggleHostIndex = lastInlineIndex\n if (shouldCollapseLastInline) {\n collapsedActionsInline = childArray[lastInlineIndex] as ReactElement<MInlineProps>\n workingChildren = childArray.filter((_, index) => index !== lastInlineIndex)\n toggleHostIndex = -1\n for (let index = workingChildren.length - 1; index >= 0; index -= 1) {\n const child = workingChildren[index]\n if (isValidElement(child) && child.type === MInline) {\n toggleHostIndex = index\n break\n }\n }\n }\n\n const renderedChildren =\n toggleHostIndex === -1\n ? [...workingChildren, toggleButton]\n : workingChildren.map((child, index) => {\n if (index !== toggleHostIndex) return child\n const inlineChild = child as ReactElement<MInlineProps>\n const inlineChildren = Children.toArray(inlineChild.props.children)\n return cloneElement(inlineChild, {\n key: inlineChild.key ?? `mnavbar-inline-${index}`,\n children: [...inlineChildren, toggleButton],\n })\n })\n\n useEffect(() => {\n if (!open) return\n\n function handlePointerDown(event: PointerEvent) {\n const root = rootRef.current\n if (!root) return\n if (event.target instanceof Node && root.contains(event.target)) return\n setOpen(false)\n }\n\n function handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') setOpen(false)\n }\n\n document.addEventListener('pointerdown', handlePointerDown)\n document.addEventListener('keydown', handleKeydown)\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown)\n document.removeEventListener('keydown', handleKeydown)\n }\n }, [open])\n\n useEffect(() => {\n if (!mobile) {\n setOpen(false)\n }\n }, [mobile])\n\n function handleToggleClick() {\n setOpen((previous) => !previous)\n }\n\n function handleMenuClick(event: ReactMouseEvent<HTMLDivElement>) {\n const target = event.target as HTMLElement | null\n if (!target) return\n if (target.closest('a, [role=\"menuitem\"]')) {\n setOpen(false)\n }\n }\n\n return (\n <nav\n ref={rootRef}\n className={cn(\n 'navbar',\n tone,\n bordered && 'bordered',\n sticky && 'sticky',\n mobile && 'mobile-view',\n open && 'mobile-open',\n `mobile-${mobileMenu}`,\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"container\">\n <div className={cn('inner', justify, wrap && 'wrap')}>{renderedChildren}</div>\n </MContainer>\n\n {mobileMenu === 'drawer' && <div className={cn('mobile-backdrop', open && 'visible')} aria-hidden />}\n\n <div\n id={menuId}\n className={cn('mobile-menu', mobileMenu, open && 'open')}\n role=\"menu\"\n aria-hidden={!open || undefined}\n onClick={handleMenuClick}\n >\n {mobileNavs}\n {mobileMenuContent}\n {collapsedActionsInline ? (\n <div className=\"mobile-menu-footer\">\n {cloneElement(collapsedActionsInline, {\n key: 'mnavbar-collapsed-actions',\n })}\n </div>\n ) : null}\n {mobileMenuFooter ? <div className=\"mobile-menu-footer\">{mobileMenuFooter}</div> : null}\n </div>\n </nav>\n )\n}\n","import type React from 'react'\nimport type {MSectionProps} from './MSection.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MSection.css'\n\n// Render a semantic page section with predefined spacing and tone.\nexport function MSection({\n as = 'section',\n spacing = 'lg',\n tone = 'default',\n hidden,\n className,\n style,\n children,\n ...rest\n}: MSectionProps) {\n const Component = as\n\n return (\n <Component\n className={cn('section', spacing, tone, className)}\n style={style}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import type {MStatGridProps} from './MStatGrid.types'\nimport {MSimpleGrid} from '../MSimpleGrid'\n\nexport function MStatGrid<T>({\n items,\n renderItem,\n children,\n columns = 4,\n minItemWidth = '15rem',\n ...rest\n}: MStatGridProps<T>) {\n return (\n <MSimpleGrid columns={columns} minItemWidth={minItemWidth} {...rest}>\n {items && renderItem ? items.map((item, index) => renderItem(item, index)) : children}\n </MSimpleGrid>\n )\n}\n","import type {MDividerProps} from './MDivider.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MDivider.css'\n\n// Render a semantic divider line between related content blocks.\nexport function MDivider({\n orientation = 'horizontal',\n variant = 'solid',\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n ...rest\n}: MDividerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'divider',\n orientation,\n variant,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n />\n )\n}\n","import {createContext, useContext, useState, useEffect, useCallback, useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronRightIcon, MMenuIcon} from '../../../icons'\nimport {MDropdownMenu, MTooltip} from '../../overlays'\nimport {MShellBreakpoints, useMaxWidth} from '../../../theme'\nimport type {\n MSidebarProps,\n MSidebarHeaderProps,\n MSidebarBodyProps,\n MSidebarNavProps,\n MSidebarItemProps,\n MSidebarGroupProps,\n MSidebarFooterProps,\n MSidebarDividerProps,\n MSidebarMode,\n} from './MSidebar.types'\nimport './MSidebar.css'\n\nconst STORAGE_KEY = 'mineralui-sidebar'\n\ninterface SidebarContextValue {\n mode: MSidebarMode\n mobile: boolean\n mobileOpen: boolean\n canToggle: boolean\n toggleMode: () => void\n}\n\nconst SidebarCtx = createContext<SidebarContextValue>({\n mode: 'expanded',\n mobile: false,\n mobileOpen: false,\n canToggle: false,\n toggleMode: () => {},\n})\n\n// Read shared sidebar state inside slot components.\nfunction useSidebar() {\n return useContext(SidebarCtx)\n}\n\n// Render the sidebar shell and coordinate desktop and mobile behavior.\nexport function MSidebar({\n mode: modeProp = 'auto',\n defaultMode = 'expanded',\n onModeChange,\n persist = false,\n side = 'left',\n tone = 'subtle',\n bordered = true,\n mobileBreakpoint = MShellBreakpoints.mobile,\n compactBreakpoint = MShellBreakpoints.compact,\n className,\n style,\n children,\n}: MSidebarProps) {\n const resolvedCompactBreakpoint = Math.max(compactBreakpoint, mobileBreakpoint)\n const mobile = useMaxWidth(mobileBreakpoint)\n const compactViewport = useMaxWidth(resolvedCompactBreakpoint)\n const compact = !mobile && compactViewport\n const [mobileOpen, setMobileOpen] = useState(false)\n\n const [internalMode, setInternalMode] = useState<MSidebarMode>(() => {\n if (persist) {\n try {\n const v = localStorage.getItem(STORAGE_KEY)\n if (v === 'expanded' || v === 'collapsed') return v\n } catch {\n /* noop */\n }\n }\n\n return defaultMode\n })\n\n const resolvedMode: MSidebarMode = mobile\n ? 'expanded'\n : compact\n ? 'collapsed'\n : modeProp === 'auto'\n ? internalMode\n : modeProp === 'collapsed'\n ? 'collapsed'\n : 'expanded'\n\n // MToggle only the desktop width state. Mobile uses its own overlay flow.\n const toggleMode = useCallback(() => {\n const next: MSidebarMode = resolvedMode === 'expanded' ? 'collapsed' : 'expanded'\n\n setInternalMode(next)\n onModeChange?.(next)\n\n if (persist) {\n try {\n localStorage.setItem(STORAGE_KEY, next)\n } catch {\n /* noop */\n }\n }\n }, [resolvedMode, onModeChange, persist])\n\n const closeMobile = useCallback(() => setMobileOpen(false), [])\n\n // Let Escape close the temporary mobile drawer.\n useEffect(() => {\n if (!mobileOpen) return\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setMobileOpen(false)\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [mobileOpen])\n\n useEffect(() => {\n if (!mobile) {\n setMobileOpen(false)\n }\n }, [mobile])\n\n const canToggle = !mobile && !compact && modeProp === 'auto'\n\n const ctx = useMemo<SidebarContextValue>(\n () => ({mode: resolvedMode, mobile, mobileOpen, canToggle, toggleMode}),\n [resolvedMode, mobile, mobileOpen, canToggle, toggleMode]\n )\n\n const isCollapsed = !mobile && resolvedMode === 'collapsed'\n\n const sidebarCls = cn(\n 'sidebar',\n tone,\n side,\n isCollapsed && 'collapsed',\n compact && 'compact',\n bordered && 'bordered',\n mobile && 'mobile',\n mobile && mobileOpen && 'mobile-open',\n className\n )\n\n return (\n <SidebarCtx.Provider value={ctx}>\n {mobile && mobileOpen && <div className=\"sidebar-backdrop\" onClick={closeMobile} />}\n\n <aside className={sidebarCls} style={style}>\n {children}\n </aside>\n\n {mobile && !mobileOpen && (\n <button\n className={cn('sidebar-hamburger', side)}\n onClick={() => setMobileOpen(true)}\n aria-label=\"Open menu\"\n >\n <span className=\"sidebar-hamburger-icon\" aria-hidden=\"true\">\n <MMenuIcon />\n </span>\n </button>\n )}\n </SidebarCtx.Provider>\n )\n}\n\n// Render the top area with branding and an optional collapse toggle.\nexport function MSidebarHeader({bordered = false, className, children}: MSidebarHeaderProps) {\n const {mode, mobile, canToggle, toggleMode} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n return (\n <div className={cn('sidebar-header', bordered && 'bordered', className)}>\n <div className=\"sidebar-header-content\">{children}</div>\n {canToggle && (\n <MButton\n variant=\"outlined\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={toggleMode}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n className=\"sidebar-toggle\"\n >\n <span className={cn('sidebar-chevron', isCollapsed && 'flipped')}>\n <MChevronRightIcon />\n </span>\n </MButton>\n )}\n </div>\n )\n}\n\n// Wrap the scrollable middle area between header and footer.\nexport function MSidebarBody({className, children}: MSidebarBodyProps) {\n return <div className={cn('sidebar-body', className)}>{children}</div>\n}\n\n// Wrap sidebar links in a navigation landmark.\nexport function MSidebarNav({className, children}: MSidebarNavProps) {\n return <nav className={cn('sidebar-nav', className)}>{children}</nav>\n}\n\n// Render one clickable sidebar row as a link, button or custom component.\nexport function MSidebarItem({\n icon,\n label,\n description,\n href,\n to,\n onClick,\n active = false,\n disabled = false,\n badge,\n color,\n component,\n className,\n}: MSidebarItemProps) {\n const {mode, mobile} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n // ONE tooltip per row: prefer description, fall back to label. The HTML\n // title attribute used in collapsed mode mirrors the same priority but is\n // limited to strings (browsers can't render ReactNodes).\n const tooltipContent = description ?? label\n const titleAttr = typeof description === 'string'\n ? description\n : typeof label === 'string'\n ? label\n : undefined\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? (to ? {to} : href ? {href} : {}) : href ? {href} : to ? {href: to} : {}\n const cls = cn('sidebar-item', active && 'active', disabled && 'disabled', color, className)\n\n return (\n <Tag\n className={cls}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled || undefined}\n title={isCollapsed ? titleAttr : undefined}\n {...linkProps}\n >\n {icon && <span className=\"sidebar-item-icon\">{icon}</span>}\n {!isCollapsed && (\n <MTooltip content={tooltipContent} placement=\"top\" className=\"sidebar-item-label-tooltip\">\n <span className=\"sidebar-item-label\">{label}</span>\n </MTooltip>\n )}\n {!isCollapsed && badge && <span className=\"sidebar-item-badge\">{badge}</span>}\n </Tag>\n )\n}\n\n// Group related sidebar items and swap to a dropdown when collapsed.\nexport function MSidebarGroup({\n label,\n icon,\n active = false,\n defaultOpen = true,\n collapsible = true,\n children,\n className,\n}: MSidebarGroupProps) {\n const sidebarCtx = useSidebar()\n const {mode, mobile} = sidebarCtx\n const isCollapsed = !mobile && mode === 'collapsed'\n const [open, setOpen] = useState(defaultOpen)\n\n const expandedCtx = useMemo<SidebarContextValue>(() => ({...sidebarCtx, mode: 'expanded'}), [sidebarCtx])\n\n // Keep expand/collapse local to this group.\n const toggle = () => {\n if (collapsible) setOpen((o) => !o)\n }\n\n if (isCollapsed) {\n const trigger = (\n <span className={cn('sidebar-group-icon collapsed', active && 'active')} title={label}>\n {icon}\n </span>\n )\n\n return (\n <div className={cn('sidebar-group', className)}>\n <MDropdownMenu trigger={trigger} placement=\"right-start\" closeOnSelect openOn=\"hover\">\n <SidebarCtx.Provider value={expandedCtx}>{children}</SidebarCtx.Provider>\n </MDropdownMenu>\n </div>\n )\n }\n\n return (\n <div className={cn('sidebar-group', className)}>\n <button className={cn('sidebar-group-header', active && 'active')} onClick={toggle} aria-expanded={open}>\n {icon && <span className=\"sidebar-group-icon\">{icon}</span>}\n <span className=\"sidebar-group-label\">{label}</span>\n {collapsible && (\n <span className={cn('sidebar-group-arrow', open && 'open')}>\n <MChevronRightIcon />\n </span>\n )}\n </button>\n {open && <div className=\"sidebar-group-items\">{children}</div>}\n </div>\n )\n}\n\n// Render the bottom slot for version info or quick actions.\nexport function MSidebarFooter({bordered = false, className, children}: MSidebarFooterProps) {\n return <div className={cn('sidebar-footer', bordered && 'bordered', className)}>{children}</div>\n}\n\n// Render a spacing-aware divider between sidebar regions.\nexport function MSidebarDivider({className, spacing = 'md'}: MSidebarDividerProps) {\n return <hr className={cn('sidebar-divider', spacing, className)} />\n}\n","import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MBreadcrumbProps} from './MBreadcrumb.types'\nimport './MBreadcrumb.css'\n\n// Render a compact path and collapse the middle when needed.\nexport function MBreadcrumb({items, separator = '/', maxItems, className, ...rest}: MBreadcrumbProps) {\n // Keep the current page visible while shortening deep paths.\n const visible = useMemo(() => {\n if (!maxItems || maxItems >= items.length) return items\n if (maxItems < 2) return [items[items.length - 1]]\n const head = items.slice(0, 1)\n const tail = items.slice(-(maxItems - 1))\n return [...head, null, ...tail]\n }, [items, maxItems])\n\n return (\n <nav aria-label=\"breadcrumb\" className={cn('breadcrumb', className)} {...rest}>\n <ol className=\"trail\">\n {visible.map((item, i) => {\n if (item === null) {\n return (\n <li key=\"ellipsis\" className=\"crumb dots\">\n <span className=\"sep\">{separator}</span>\n <span>…</span>\n </li>\n )\n }\n\n const isLast = i === visible.length - 1\n\n return (\n <li key={i} className={cn('crumb', isLast && 'active')}>\n {i > 0 && <span className=\"sep\">{separator}</span>}\n {item.href && !isLast ? (\n <a href={item.href} className=\"link\" onClick={item.onClick}>\n {item.label}\n </a>\n ) : item.onClick && !isLast ? (\n <button type=\"button\" className=\"link btn\" onClick={item.onClick}>\n {item.label}\n </button>\n ) : (\n <span className=\"current\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n","import {forwardRef, Children, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {MAppShellProps, MBodyProps} from './MAppShell.types'\nimport {cn} from '../../../utils/cn'\nimport {MSidebar} from '../MSidebar'\nimport './MAppShell.css'\n\nexport const MAppShell = forwardRef<HTMLDivElement, MAppShellProps>(function MAppShell(\n {className, children, ...rest},\n ref\n) {\n const sidebarElements: React.ReactNode[] = []\n const otherElements: React.ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === MSidebar) {\n sidebarElements.push(child)\n } else {\n otherElements.push(child)\n }\n })\n\n return (\n <div ref={ref} className={cn('app-shell', className)} {...rest}>\n {sidebarElements}\n <div className=\"app-main\">{otherElements}</div>\n </div>\n )\n})\n\nexport const MBody = forwardRef<HTMLDivElement, MBodyProps>(function MBody({className, children, ...rest}, ref) {\n return (\n <div ref={ref} className={cn('app-body', className)} {...rest}>\n {children}\n </div>\n )\n})\n","import {useEffect, useRef, useState, type ReactNode} from 'react'\n\ninterface ScaleToFitProps {\n /**\n * Minimum render width (in CSS px). When the parent is narrower, content\n * is rendered at this width and scaled down. When the parent is wider,\n * content is rendered at the parent's width (no scale-up, no padding).\n */\n baseWidth?: number\n children: ReactNode\n}\n\n/**\n * Renders `children` at `max(baseWidth, parentWidth)`, then applies\n * `transform: scale(...)` so the rendered block fits the parent box without\n * scrollbars. Scale never exceeds 1 (no blurry up-scaling). When the parent\n * is wider than baseWidth, render width tracks the parent so content fills\n * the available space natively (no horizontal padding).\n */\nexport function ScaleToFit({baseWidth = 480, children}: ScaleToFitProps) {\n const wrapperRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const [scale, setScale] = useState(1)\n const [renderWidth, setRenderWidth] = useState<number>(baseWidth)\n\n useEffect(() => {\n const wrap = wrapperRef.current\n const content = contentRef.current\n if (!wrap || !content) return\n\n let frame = 0\n const recompute = () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const wW = wrap.clientWidth\n const wH = wrap.clientHeight\n if (wW === 0 || wH === 0) return\n const cW = Math.max(baseWidth, wW)\n const cH = content.offsetHeight\n if (cW === 0 || cH === 0) return\n const sW = wW / cW\n const sH = wH / cH\n const next = Math.min(sW, sH, 1)\n if (next > 0 && Number.isFinite(next)) {\n setRenderWidth(cW)\n setScale(next)\n }\n })\n }\n\n const ro = new ResizeObserver(recompute)\n ro.observe(wrap)\n ro.observe(content)\n recompute()\n return () => {\n cancelAnimationFrame(frame)\n ro.disconnect()\n }\n }, [baseWidth])\n\n return (\n <div ref={wrapperRef} className=\"canvas-grid-scale-wrapper\">\n <div\n ref={contentRef}\n className=\"canvas-grid-scale-content\"\n style={{width: `${renderWidth}px`, transform: `scale(${scale})`}}\n >\n {children}\n </div>\n </div>\n )\n}\n","import {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport type {CSSProperties, ForwardedRef, PointerEvent as ReactPointerEvent, ReactElement, Ref} from 'react'\nimport type {MCanvasGridItem, MCanvasGridPosition, MCanvasGridProps} from './MCanvasGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {MShellBreakpoints, useMaxWidth} from '../../../theme'\nimport {MEditIcon, MMoveIcon, MTrashIcon, MZoomInIcon} from '../../../icons'\nimport {MButton} from '../../controls/MButton'\nimport {MButtonGroup} from '../../controls/MButtonGroup'\nimport {ScaleToFit} from './ScaleToFit'\nimport './MCanvasGrid.css'\n\ninterface DragState {\n itemId: string\n mode: 'drag' | 'resize'\n startClientX: number\n startClientY: number\n original: MCanvasGridPosition\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction MCanvasGridInner<T extends MCanvasGridItem>(\n {\n columns = 24,\n rows = 24,\n snap = 4,\n items,\n renderItem,\n minItemSize,\n maxItemSize: _maxItemSize,\n editable = false,\n onItemMove,\n onItemResize,\n onItemRemove,\n onItemEdit,\n onItemExpand,\n guides = 'always',\n compactBreakpoint = MShellBreakpoints.compact,\n mobileBreakpoint = MShellBreakpoints.mobile,\n height,\n fitContent = 'scroll',\n fitContentBaseWidth = 480,\n className,\n style,\n }: MCanvasGridProps<T>,\n ref: ForwardedRef<HTMLDivElement>\n) {\n const innerRef = useRef<HTMLDivElement | null>(null)\n const [size, setSize] = useState({width: 0, height: 0})\n const [drag, setDrag] = useState<DragState | null>(null)\n const [preview, setPreview] = useState<MCanvasGridPosition | null>(null)\n const [touchOrder, setTouchOrder] = useState<Record<string, number>>({})\n const touchCounterRef = useRef(0)\n\n function bringToFront(itemId: string) {\n touchCounterRef.current += 1\n setTouchOrder((prev) => ({...prev, [itemId]: touchCounterRef.current}))\n }\n\n function suppressNextClick() {\n let armed = true\n const stopper = (ev: MouseEvent) => {\n if (!armed) return\n armed = false\n ev.stopPropagation()\n ev.preventDefault()\n window.removeEventListener('click', stopper, true)\n }\n window.addEventListener('click', stopper, true)\n window.setTimeout(() => {\n if (!armed) return\n armed = false\n window.removeEventListener('click', stopper, true)\n }, 60)\n }\n\n const isMobile = useMaxWidth(mobileBreakpoint)\n const isCompact = useMaxWidth(compactBreakpoint) && !isMobile\n\n const totalCols = columns * snap\n const totalRows = rows * snap\n const effectiveCols = isCompact ? Math.max(1, Math.round(totalCols / 2)) : totalCols\n const effectiveRows = isCompact ? Math.max(1, Math.round(totalRows / 2)) : totalRows\n const effectiveCells = isCompact ? Math.max(1, Math.round(columns / 2)) : columns\n const effectiveRowCells = isCompact ? Math.max(1, Math.round(rows / 2)) : rows\n\n const interactive = editable && !isMobile\n\n useEffect(() => {\n const node = innerRef.current\n if (!node || typeof ResizeObserver === 'undefined') return\n const update = () => setSize({width: node.clientWidth, height: node.clientHeight})\n update()\n const observer = new ResizeObserver(update)\n observer.observe(node)\n return () => observer.disconnect()\n }, [])\n\n const setRefs = useCallback(\n (node: HTMLDivElement | null) => {\n innerRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as {current: HTMLDivElement | null}).current = node\n },\n [ref]\n )\n\n function getMin(item: T) {\n const m = minItemSize?.(item)\n if (!m) return {w: snap, h: snap}\n return {w: Math.max(snap, m.w * snap), h: Math.max(snap, m.h * snap)}\n }\n\n function startResize(e: ReactPointerEvent<HTMLDivElement>, item: T) {\n if (!interactive) return\n e.stopPropagation()\n e.preventDefault()\n ;(e.currentTarget as Element).setPointerCapture(e.pointerId)\n bringToFront(item.id)\n setDrag({\n itemId: item.id,\n mode: 'resize',\n startClientX: e.clientX,\n startClientY: e.clientY,\n original: {...item.position},\n })\n setPreview({...item.position})\n }\n\n function startDragFromHeader(e: ReactPointerEvent<HTMLDivElement>, item: T) {\n if (!interactive) return\n if ((e.target as Element).closest('button, [role=\"button\"]')) return\n e.stopPropagation()\n e.preventDefault()\n ;(e.currentTarget as Element).setPointerCapture(e.pointerId)\n bringToFront(item.id)\n setDrag({\n itemId: item.id,\n mode: 'drag',\n startClientX: e.clientX,\n startClientY: e.clientY,\n original: {...item.position},\n })\n setPreview({...item.position})\n }\n\n function handlePointerMove(e: ReactPointerEvent<HTMLDivElement>) {\n if (!drag || size.width === 0 || size.height === 0) return\n const cellPxX = size.width / effectiveCols\n const cellPxY = size.height / effectiveRows\n const dx = Math.round((e.clientX - drag.startClientX) / cellPxX)\n const dy = Math.round((e.clientY - drag.startClientY) / cellPxY)\n const original = drag.original\n\n const targetItem = items.find((it) => it.id === drag.itemId)\n const min = targetItem ? getMin(targetItem) : {w: snap, h: snap}\n\n if (drag.mode === 'drag') {\n const x = clamp(original.x + dx, 0, effectiveCols - original.w)\n const y = clamp(original.y + dy, 0, effectiveRows - original.h)\n setPreview({x, y, w: original.w, h: original.h})\n } else {\n const w = clamp(original.w + dx, min.w, effectiveCols - original.x)\n const h = clamp(original.h + dy, min.h, effectiveRows - original.y)\n setPreview({x: original.x, y: original.y, w, h})\n }\n }\n\n function handlePointerUp(e: ReactPointerEvent<HTMLDivElement>) {\n if (!drag) return\n try {\n ;(e.currentTarget as Element).releasePointerCapture(e.pointerId)\n } catch {\n // pointer may have already been released\n }\n if (preview) {\n if (drag.mode === 'drag') onItemMove?.(drag.itemId, preview)\n else onItemResize?.(drag.itemId, preview)\n }\n setDrag(null)\n setPreview(null)\n }\n\n function handleHeaderPointerUp(e: ReactPointerEvent<HTMLDivElement>) {\n if (drag) {\n suppressNextClick()\n handlePointerUp(e)\n }\n }\n\n const guidesOn =\n guides === 'always' ||\n (guides === 'on-edit' && interactive) ||\n (guides === 'on-drag' && drag !== null)\n\n const heightStyle: CSSProperties | undefined =\n height !== undefined ? {height: typeof height === 'number' ? `${height}px` : height} : undefined\n\n if (isMobile) {\n const ordered = [...items].sort((a, b) => a.position.y - b.position.y)\n return (\n <div\n ref={setRefs}\n className={cn('canvas-grid', 'mobile', className)}\n data-guides=\"off\"\n style={{...heightStyle, ...style}}\n >\n {ordered.map((item) => (\n <div key={item.id} className=\"canvas-grid-item\">\n {renderItem(item)}\n </div>\n ))}\n </div>\n )\n }\n\n const gridStyle: CSSProperties = {\n ...heightStyle,\n ...style,\n gridTemplateColumns: `repeat(${effectiveCols}, 1fr)`,\n gridTemplateRows: `repeat(${effectiveRows}, 1fr)`,\n ['--canvas-grid-cells' as string]: String(effectiveCells),\n ['--canvas-grid-row-cells' as string]: String(effectiveRowCells),\n }\n\n const overlayCells = effectiveCells * effectiveRowCells\n\n return (\n <div\n ref={setRefs}\n className={cn('canvas-grid', isCompact && 'compact', interactive && 'editable', className)}\n data-guides={guidesOn ? 'on' : 'off'}\n style={gridStyle}\n >\n <div className=\"canvas-grid-overlay\" aria-hidden>\n {Array.from({length: overlayCells}, (_, idx) => {\n const isLastCol = (idx + 1) % effectiveCells === 0\n const isLastRow = idx >= overlayCells - effectiveCells\n return (\n <div\n key={idx}\n className={cn('canvas-grid-cell', isLastCol && 'no-right', isLastRow && 'no-bottom')}\n />\n )\n })}\n </div>\n\n {items.map((item) => {\n const isDragging = drag?.itemId === item.id\n const live = isDragging && preview ? preview : item.position\n // half-precision math for compact viewport\n const x = isCompact ? Math.round(live.x / 2) : live.x\n const y = isCompact ? Math.round(live.y / 2) : live.y\n const w = Math.max(1, isCompact ? Math.round(live.w / 2) : live.w)\n const h = Math.max(1, isCompact ? Math.round(live.h / 2) : live.h)\n\n const baseZ = 1 + (touchOrder[item.id] ?? 0)\n const itemStyle: CSSProperties = {\n gridColumn: `${x + 1} / span ${w}`,\n gridRow: `${y + 1} / span ${h}`,\n zIndex: isDragging ? baseZ + 100 : baseZ,\n }\n\n return (\n <div\n key={item.id}\n className={cn('canvas-grid-item', isDragging && 'dragging')}\n style={itemStyle}\n >\n <div\n className=\"canvas-grid-item-header\"\n onPointerDown={(e) => startDragFromHeader(e, item)}\n onPointerMove={handlePointerMove}\n onPointerUp={handleHeaderPointerUp}\n onPointerCancel={handlePointerUp}\n >\n <MButtonGroup variant=\"ghost\" size=\"xs\">\n {interactive && onItemEdit && (\n <MButton\n color=\"primary\"\n iconOnly\n aria-label=\"Edit tile\"\n startIcon={<MEditIcon />}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.stopPropagation()\n onItemEdit(item.id)\n }}\n />\n )}\n {onItemExpand && (\n <MButton\n color=\"primary\"\n iconOnly\n aria-label=\"Expand tile\"\n startIcon={<MZoomInIcon />}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.stopPropagation()\n onItemExpand(item.id)\n }}\n />\n )}\n {interactive && onItemRemove && (\n <MButton\n color=\"error\"\n iconOnly\n aria-label=\"Remove tile\"\n startIcon={<MTrashIcon />}\n onPointerDown={(e) => e.stopPropagation()}\n onClick={(e) => {\n e.stopPropagation()\n onItemRemove(item.id)\n }}\n />\n )}\n </MButtonGroup>\n </div>\n <div className=\"canvas-grid-item-body\">\n {fitContent === 'scale' ? (\n <ScaleToFit baseWidth={fitContentBaseWidth}>{renderItem(item)}</ScaleToFit>\n ) : (\n renderItem(item)\n )}\n </div>\n {!interactive && onItemExpand && (\n <MButton\n className=\"canvas-grid-view-expand-handle\"\n variant=\"filled\"\n shape=\"circle\"\n size=\"sm\"\n color=\"primary\"\n iconOnly\n aria-label=\"Expand tile\"\n startIcon={<MZoomInIcon />}\n onClick={(e) => {\n e.stopPropagation()\n onItemExpand(item.id)\n }}\n />\n )}\n {interactive && isDragging && (\n <div className=\"canvas-grid-item-glass\" aria-hidden>\n <MMoveIcon size={28} />\n </div>\n )}\n {interactive && (\n <div\n className=\"canvas-grid-resize-handle\"\n aria-hidden\n onPointerDown={(e) => startResize(e, item)}\n onPointerMove={handlePointerMove}\n onPointerUp={(e) => {\n if (drag) suppressNextClick()\n handlePointerUp(e)\n }}\n onPointerCancel={handlePointerUp}\n />\n )}\n </div>\n )\n })}\n </div>\n )\n}\n\nexport const MCanvasGrid = forwardRef(MCanvasGridInner) as <T extends MCanvasGridItem>(\n props: MCanvasGridProps<T> & {ref?: Ref<HTMLDivElement>}\n) => ReactElement | null\n","import {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MStickyPanelProps} from './MStickyPanel.types'\nimport {cn} from '../../../utils/cn'\nimport './MStickyPanel.css'\n\nconst INTERACTIVE_SELECTOR = 'button, a, [role=\"button\"]'\n\n// Sticky side-rail panel: sticks to the viewport at `top`, fills viewport-relative height,\n// scrolls internally with an optional hidden scrollbar and click-and-drag scrolling.\nexport const MStickyPanel = forwardRef<HTMLDivElement, MStickyPanelProps>(function MStickyPanel(\n {\n children,\n top = 16,\n bottomGap = 16,\n hideScrollbar = true,\n draggable = true,\n className,\n style,\n ...rest\n },\n forwardedRef\n) {\n const panelRef = useRef<HTMLDivElement>(null)\n useImperativeHandle(forwardedRef, () => panelRef.current as HTMLDivElement)\n const dragState = useRef<{startY: number; startScrollTop: number} | null>(null)\n const [dragging, setDragging] = useState(false)\n\n useEffect(() => {\n if (!draggable) return\n\n const handleMouseMove = (event: MouseEvent) => {\n const drag = dragState.current\n const panel = panelRef.current\n if (!drag || !panel) return\n panel.scrollTop = drag.startScrollTop - (event.clientY - drag.startY)\n }\n\n const handleMouseUp = () => {\n if (!dragState.current) return\n dragState.current = null\n setDragging(false)\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n return () => {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n }\n }, [draggable])\n\n const handleMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!draggable) return\n // Skip drag start when the click originated on an interactive descendant\n // (button, link, role=button) so triggers like MDropdownMenu, MButton or\n // <Link> stay clickable inside the panel.\n const target = event.target as HTMLElement | null\n if (target && target.closest(INTERACTIVE_SELECTOR)) return\n\n const panel = panelRef.current\n if (!panel) return\n\n dragState.current = {startY: event.clientY, startScrollTop: panel.scrollTop}\n setDragging(true)\n event.preventDefault()\n }\n\n const mergedStyle: React.CSSProperties = {\n top,\n height: `calc(100vh - ${top + bottomGap}px)`,\n ...style,\n }\n\n return (\n <div\n ref={panelRef}\n className={cn(\n 'm-sticky-panel',\n draggable && 'draggable',\n dragging && 'is-dragging',\n hideScrollbar && 'hide-scrollbar',\n className\n )}\n style={mergedStyle}\n onMouseDown={handleMouseDown}\n {...rest}\n >\n {children}\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;AAOA,SAAgB,EAAW,EACvB,UAAO,WACP,YAAS,IACT,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACa;CAChB,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,aACA,GACA,KAAU,UACV,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACC,CAAA;;;;AC1Dd,SAAgB,EAAQ,EACpB,eAAY,QACZ,YAAS,IACT,cAAW,IACX,YAAS,IACT,UAAO,WACP,YAAS,SACT,WACA,cACA,aACA,GAAG,KACU;AACb,QACI,kBAAC,UAAD;EACI,WAAW,EAAG,UAAU,GAAM,KAAY,YAAY,KAAU,UAAU,EAAU;EACpF,GAAI,EAAe,EAAO;EAC1B,GAAI;YAEJ,kBAAC,GAAD;GAAY,MAAM;GAAmB;GAAQ,WAAW,EAAG,SAAS,UAAU,IAAS;GAClF;GACQ,CAAA;EACR,CAAA;;;;ACpBjB,SAAgB,EAAQ,EACpB,eAAY,QACZ,YAAS,IACT,cAAW,IACX,UAAO,WACP,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACU;CACb,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,UAAD;EACI,WAAW,EACP,UACA,GACA,KAAY,YACZ,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,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"}
|