@banzamel/mineralui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/MAvatar-B4Y9P5ua.js +57 -0
- package/dist/MAvatar-B4Y9P5ua.js.map +1 -0
- package/dist/MAvatar-D4ZC9wml.cjs +2 -0
- package/dist/MAvatar-D4ZC9wml.cjs.map +1 -0
- package/dist/MBadge-BaeeIRhu.js +19 -0
- package/dist/MBadge-BaeeIRhu.js.map +1 -0
- package/dist/MBadge-DJuqtMP7.cjs +2 -0
- package/dist/MBadge-DJuqtMP7.cjs.map +1 -0
- package/dist/MButton-Rg85cgO1.cjs +2 -0
- package/dist/{MButton-B8rXmFX9.cjs.map → MButton-Rg85cgO1.cjs.map} +1 -1
- package/dist/MButton-pSNx-6UK.js +113 -0
- package/dist/{MButton-BmTDe5Oa.js.map → MButton-pSNx-6UK.js.map} +1 -1
- package/dist/{MDataTable-Cqwkiq7A.js → MDataTable-D5SnGm3D.js} +3 -3
- package/dist/{MDataTable-Cqwkiq7A.js.map → MDataTable-D5SnGm3D.js.map} +1 -1
- package/dist/{MDataTable-BI7wFZYN.cjs → MDataTable-_afEvx2S.cjs} +2 -2
- package/dist/{MDataTable-BI7wFZYN.cjs.map → MDataTable-_afEvx2S.cjs.map} +1 -1
- package/dist/{MDrawer-CSvjLrhB.cjs → MDrawer-2NDNRU77.cjs} +2 -2
- package/dist/{MDrawer-CSvjLrhB.cjs.map → MDrawer-2NDNRU77.cjs.map} +1 -1
- package/dist/{MDrawer-DXHtAckQ.js → MDrawer-CHvOVWPw.js} +2 -2
- package/dist/{MDrawer-DXHtAckQ.js.map → MDrawer-CHvOVWPw.js.map} +1 -1
- package/dist/MHeading-C5s-kb2D.js +21 -0
- package/dist/MHeading-C5s-kb2D.js.map +1 -0
- package/dist/MHeading-CvAYmqMN.cjs +2 -0
- package/dist/MHeading-CvAYmqMN.cjs.map +1 -0
- package/dist/MImage-DqAx0_B0.cjs +2 -0
- package/dist/MImage-DqAx0_B0.cjs.map +1 -0
- package/dist/MImage-F34N1nhB.js +53 -0
- package/dist/MImage-F34N1nhB.js.map +1 -0
- package/dist/MInline-BKY7arDg.js +41 -0
- package/dist/MInline-BKY7arDg.js.map +1 -0
- package/dist/MInline-FgdIt6kv.cjs +2 -0
- package/dist/MInline-FgdIt6kv.cjs.map +1 -0
- package/dist/{MInput-W7DJQ_ng.cjs → MInput-C_Prnehc.cjs} +2 -2
- package/dist/{MInput-W7DJQ_ng.cjs.map → MInput-C_Prnehc.cjs.map} +1 -1
- package/dist/{MInput-BSaKw0Uc.js → MInput-DI066RK9.js} +2 -2
- package/dist/{MInput-BSaKw0Uc.js.map → MInput-DI066RK9.js.map} +1 -1
- package/dist/{MInputCVC-DH_bjV5R.cjs → MInputCVC-B75iBIRt.cjs} +2 -2
- package/dist/{MInputCVC-DH_bjV5R.cjs.map → MInputCVC-B75iBIRt.cjs.map} +1 -1
- package/dist/{MInputCVC-Dqbl1zG9.js → MInputCVC-BlBZjRft.js} +2 -2
- package/dist/{MInputCVC-Dqbl1zG9.js.map → MInputCVC-BlBZjRft.js.map} +1 -1
- package/dist/{MInputSearch-C7betxTa.cjs → MInputSearch-BKQnKS-9.cjs} +2 -2
- package/dist/{MInputSearch-C7betxTa.cjs.map → MInputSearch-BKQnKS-9.cjs.map} +1 -1
- package/dist/{MInputSearch-CH5ZcjLq.js → MInputSearch-CBsBsuqu.js} +2 -2
- package/dist/{MInputSearch-CH5ZcjLq.js.map → MInputSearch-CBsBsuqu.js.map} +1 -1
- package/dist/MLink-BgYBHhce.js +31 -0
- package/dist/{MLink-ODytrwne.js.map → MLink-BgYBHhce.js.map} +1 -1
- package/dist/MLink-DmB3rcWB.cjs +2 -0
- package/dist/{MLink-DHryXq_D.cjs.map → MLink-DmB3rcWB.cjs.map} +1 -1
- package/dist/{MModal-pMcPs3pw.cjs → MModal-BaA098nr.cjs} +2 -2
- package/dist/{MModal-pMcPs3pw.cjs.map → MModal-BaA098nr.cjs.map} +1 -1
- package/dist/{MModal-DShADuLw.js → MModal-DXZ2SrJt.js} +2 -2
- package/dist/{MModal-DShADuLw.js.map → MModal-DXZ2SrJt.js.map} +1 -1
- package/dist/{MPagination-B7aho7rQ.js → MPagination-BFI_z3y6.js} +2 -2
- package/dist/{MPagination-B7aho7rQ.js.map → MPagination-BFI_z3y6.js.map} +1 -1
- package/dist/{MPagination-BWHAVgWN.cjs → MPagination-C6hnhbTp.cjs} +2 -2
- package/dist/{MPagination-BWHAVgWN.cjs.map → MPagination-C6hnhbTp.cjs.map} +1 -1
- package/dist/{MQrCode-6Cz9B7Qy.js → MQrCode-DfZwkhZV.js} +2 -2
- package/dist/{MQrCode-6Cz9B7Qy.js.map → MQrCode-DfZwkhZV.js.map} +1 -1
- package/dist/{MQrCode-Bp2CWpmX.cjs → MQrCode-L0trT6n3.cjs} +2 -2
- package/dist/{MQrCode-Bp2CWpmX.cjs.map → MQrCode-L0trT6n3.cjs.map} +1 -1
- package/dist/{MSkeleton-BfRBJ6ku.cjs → MSkeleton-BEdflu0F.cjs} +2 -2
- package/dist/{MSkeleton-BfRBJ6ku.cjs.map → MSkeleton-BEdflu0F.cjs.map} +1 -1
- package/dist/{MSkeleton-CauCfkzj.js → MSkeleton-DX9gJ311.js} +2 -2
- package/dist/{MSkeleton-CauCfkzj.js.map → MSkeleton-DX9gJ311.js.map} +1 -1
- package/dist/MStack-BgwBqm-V.cjs +2 -0
- package/dist/MStack-BgwBqm-V.cjs.map +1 -0
- package/dist/MStack-Dk0GNVBT.js +41 -0
- package/dist/MStack-Dk0GNVBT.js.map +1 -0
- package/dist/MSubText-D8VxE877.cjs +2 -0
- package/dist/MSubText-D8VxE877.cjs.map +1 -0
- package/dist/MSubText-DwNeDGYg.js +17 -0
- package/dist/MSubText-DwNeDGYg.js.map +1 -0
- package/dist/MSurface-CFbX5C63.cjs +2 -0
- package/dist/MSurface-CFbX5C63.cjs.map +1 -0
- package/dist/MSurface-COlEjDyo.js +41 -0
- package/dist/MSurface-COlEjDyo.js.map +1 -0
- package/dist/MTag-DZjcHYn0.cjs +2 -0
- package/dist/MTag-DZjcHYn0.cjs.map +1 -0
- package/dist/MTag-wsCYRndK.js +39 -0
- package/dist/MTag-wsCYRndK.js.map +1 -0
- package/dist/MText-CexZuJgV.js +45 -0
- package/dist/MText-CexZuJgV.js.map +1 -0
- package/dist/MText-YIBipYLh.cjs +2 -0
- package/dist/MText-YIBipYLh.cjs.map +1 -0
- package/dist/{cards-BE77zKTI.js → cards-BguCbFp7.js} +10 -10
- package/dist/{cards-BE77zKTI.js.map → cards-BguCbFp7.js.map} +1 -1
- package/dist/{cards-BINs-dmS.cjs → cards-DgOG2sWk.cjs} +2 -2
- package/dist/{cards-BINs-dmS.cjs.map → cards-DgOG2sWk.cjs.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/components/controls/MButton/MButton.types.d.ts +2 -2
- package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
- package/dist/components/feedback/MAlert/MAlert.types.d.ts +2 -2
- package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
- package/dist/components/feedback/MBadge/MBadge.types.d.ts +2 -2
- package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
- package/dist/components/feedback/MBanner/MBanner.types.d.ts +2 -2
- package/dist/components/feedback/MTag/MTag.d.ts +1 -1
- package/dist/components/feedback/MTag/MTag.types.d.ts +2 -2
- package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
- package/dist/components/layout/MContainer/MContainer.types.d.ts +2 -1
- package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
- package/dist/components/layout/MDivider/MDivider.types.d.ts +2 -1
- package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
- package/dist/components/layout/MFooter/MFooter.types.d.ts +2 -1
- package/dist/components/layout/MGrid/MGrid.d.ts +2 -2
- package/dist/components/layout/MGrid/MGrid.types.d.ts +4 -2
- package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
- package/dist/components/layout/MHeader/MHeader.types.d.ts +2 -1
- package/dist/components/layout/MInline/MInline.d.ts +1 -1
- package/dist/components/layout/MInline/MInline.types.d.ts +2 -1
- package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -1
- package/dist/components/layout/MNavs/index.d.ts +1 -1
- package/dist/components/layout/MSection/MSection.d.ts +1 -1
- package/dist/components/layout/MSection/MSection.types.d.ts +2 -1
- package/dist/components/layout/MStack/MStack.d.ts +1 -1
- package/dist/components/layout/MStack/MStack.types.d.ts +2 -1
- package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
- package/dist/components/layout/MSurface/MSurface.types.d.ts +2 -1
- package/dist/components/layout/MTopbar/MTopbar.d.ts +1 -1
- package/dist/components/layout/MTopbar/MTopbar.types.d.ts +2 -2
- package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.types.d.ts +2 -2
- package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +1 -1
- package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +2 -2
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/MImage/MImage.types.d.ts +2 -1
- package/dist/components/typography/MHeading/MHeading.d.ts +563 -2
- package/dist/components/typography/MHeading/MHeading.types.d.ts +2 -2
- package/dist/components/typography/MLink/MLink.types.d.ts +2 -1
- package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
- package/dist/components/typography/MSubText/MSubText.types.d.ts +2 -2
- package/dist/components/typography/MText/MText.d.ts +1 -1
- package/dist/components/typography/MText/MText.types.d.ts +2 -2
- package/dist/controls-CN5d1q6e.cjs +2 -0
- package/dist/{controls-DwL1-nVC.cjs.map → controls-CN5d1q6e.cjs.map} +1 -1
- package/dist/{controls-BMwQ3C1R.js → controls-CVdInuMI.js} +145 -143
- package/dist/{controls-BMwQ3C1R.js.map → controls-CVdInuMI.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +2 -2
- package/dist/data-BZ3Uio4Z.cjs +2 -0
- package/dist/data-BZ3Uio4Z.cjs.map +1 -0
- package/dist/{data-s8Hkht1B.js → data-BpGAUxCL.js} +751 -750
- package/dist/data-BpGAUxCL.js.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/{display-B0lpgApV.cjs → display-CCG1eb0m.cjs} +2 -2
- package/dist/{display-B0lpgApV.cjs.map → display-CCG1eb0m.cjs.map} +1 -1
- package/dist/{display-DuBRiEKr.js → display-gwrOWH2c.js} +3 -3
- package/dist/{display-DuBRiEKr.js.map → display-gwrOWH2c.js.map} +1 -1
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/{dropdowns-BcVrUMPE.js → dropdowns-CNKEy6vf.js} +4 -4
- package/dist/{dropdowns-BcVrUMPE.js.map → dropdowns-CNKEy6vf.js.map} +1 -1
- package/dist/{dropdowns-CK-oxd62.cjs → dropdowns-HY56LZkp.cjs} +2 -2
- package/dist/{dropdowns-CK-oxd62.cjs.map → dropdowns-HY56LZkp.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-D3LLKNlY.js → feedback-BfSdnvUS.js} +304 -301
- package/dist/feedback-BfSdnvUS.js.map +1 -0
- package/dist/feedback-DkQNQVdK.cjs +2 -0
- package/dist/feedback-DkQNQVdK.cjs.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.js +59 -59
- package/dist/{inputs-bCxSLz-U.js → inputs-BO7bjvyf.js} +3 -3
- package/dist/{inputs-bCxSLz-U.js.map → inputs-BO7bjvyf.js.map} +1 -1
- package/dist/{inputs-Dcj6C_Fn.cjs → inputs-vov7Kj6q.cjs} +2 -2
- package/dist/{inputs-Dcj6C_Fn.cjs.map → inputs-vov7Kj6q.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/layout-BvKpFxol.js +905 -0
- package/dist/layout-BvKpFxol.js.map +1 -0
- package/dist/layout-TFV-1uoQ.cjs +2 -0
- package/dist/layout-TFV-1uoQ.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +5 -5
- package/dist/media-BhRjHzpA.cjs +2 -0
- package/dist/{media-D5YGOTm7.cjs.map → media-BhRjHzpA.cjs.map} +1 -1
- package/dist/{media-8aMOtckF.js → media-BuIEAgV-.js} +145 -143
- package/dist/{media-8aMOtckF.js.map → media-BuIEAgV-.js.map} +1 -1
- package/dist/media.cjs +1 -1
- package/dist/media.js +3 -3
- package/dist/{overlays-DCj-oV2H.cjs → overlays-CjEh_HWn.cjs} +2 -2
- package/dist/{overlays-DCj-oV2H.cjs.map → overlays-CjEh_HWn.cjs.map} +1 -1
- package/dist/{overlays-gjg00CAf.js → overlays-D1SAF1F_.js} +3 -3
- package/dist/{overlays-gjg00CAf.js.map → overlays-D1SAF1F_.js.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/MTheme.types.d.ts +5 -0
- package/dist/theme/index.d.ts +2 -1
- package/dist/theme/responsive.d.ts +18 -0
- package/dist/{theme-DLorpkJc.cjs → theme-CyIOdO9W.cjs} +2 -2
- package/dist/theme-CyIOdO9W.cjs.map +1 -0
- package/dist/{theme-BV4qkzZU.js → theme-Dl4EpdnW.js} +14 -2
- package/dist/theme-Dl4EpdnW.js.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/{typography-DKdr1Tds.js → typography-BrIbvz08.js} +2 -2
- package/dist/{typography-DKdr1Tds.js.map → typography-BrIbvz08.js.map} +1 -1
- package/dist/{typography-qbFGv1gA.cjs → typography-DHjL4YTH.cjs} +2 -2
- package/dist/{typography-qbFGv1gA.cjs.map → typography-DHjL4YTH.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +5 -5
- package/package.json +1 -1
- package/dist/MAvatar-BoO51a6m.js +0 -55
- package/dist/MAvatar-BoO51a6m.js.map +0 -1
- package/dist/MAvatar-DJKtca9j.cjs +0 -2
- package/dist/MAvatar-DJKtca9j.cjs.map +0 -1
- package/dist/MBadge-CexVV675.cjs +0 -2
- package/dist/MBadge-CexVV675.cjs.map +0 -1
- package/dist/MBadge-Y1JnZiIC.js +0 -17
- package/dist/MBadge-Y1JnZiIC.js.map +0 -1
- package/dist/MButton-B8rXmFX9.cjs +0 -2
- package/dist/MButton-BmTDe5Oa.js +0 -111
- package/dist/MHeading-C3IgV22T.js +0 -19
- package/dist/MHeading-C3IgV22T.js.map +0 -1
- package/dist/MHeading-DqvWKia1.cjs +0 -2
- package/dist/MHeading-DqvWKia1.cjs.map +0 -1
- package/dist/MImage-BDcrV6IC.js +0 -49
- package/dist/MImage-BDcrV6IC.js.map +0 -1
- package/dist/MImage-BsQJ_eYf.cjs +0 -2
- package/dist/MImage-BsQJ_eYf.cjs.map +0 -1
- package/dist/MInline-BAhu2zT-.cjs +0 -2
- package/dist/MInline-BAhu2zT-.cjs.map +0 -1
- package/dist/MInline-Dfy3Lrjs.js +0 -39
- package/dist/MInline-Dfy3Lrjs.js.map +0 -1
- package/dist/MLink-DHryXq_D.cjs +0 -2
- package/dist/MLink-ODytrwne.js +0 -29
- package/dist/MStack-Cifiqeb2.js +0 -39
- package/dist/MStack-Cifiqeb2.js.map +0 -1
- package/dist/MStack-lrvy7l3w.cjs +0 -2
- package/dist/MStack-lrvy7l3w.cjs.map +0 -1
- package/dist/MSubText-78oYdJQy.cjs +0 -2
- package/dist/MSubText-78oYdJQy.cjs.map +0 -1
- package/dist/MSubText-C2oxXwKT.js +0 -15
- package/dist/MSubText-C2oxXwKT.js.map +0 -1
- package/dist/MSurface-B1LXFczo.js +0 -39
- package/dist/MSurface-B1LXFczo.js.map +0 -1
- package/dist/MSurface-BgZ86iYn.cjs +0 -2
- package/dist/MSurface-BgZ86iYn.cjs.map +0 -1
- package/dist/MTag-C4_rBj4b.cjs +0 -2
- package/dist/MTag-C4_rBj4b.cjs.map +0 -1
- package/dist/MTag-DOcKm3c2.js +0 -37
- package/dist/MTag-DOcKm3c2.js.map +0 -1
- package/dist/MText-CxSZ2md0.cjs +0 -2
- package/dist/MText-CxSZ2md0.cjs.map +0 -1
- package/dist/MText-DX9O7gh7.js +0 -43
- package/dist/MText-DX9O7gh7.js.map +0 -1
- package/dist/controls-DwL1-nVC.cjs +0 -2
- package/dist/data-BESfox0z.cjs +0 -2
- package/dist/data-BESfox0z.cjs.map +0 -1
- package/dist/data-s8Hkht1B.js.map +0 -1
- package/dist/feedback-D3LLKNlY.js.map +0 -1
- package/dist/feedback-DYjg0Dbp.cjs +0 -2
- package/dist/feedback-DYjg0Dbp.cjs.map +0 -1
- package/dist/layout-Cb94o3oU.js +0 -891
- package/dist/layout-Cb94o3oU.js.map +0 -1
- package/dist/layout-DgfsQ-Tn.cjs +0 -2
- package/dist/layout-DgfsQ-Tn.cjs.map +0 -1
- package/dist/media-D5YGOTm7.cjs +0 -2
- package/dist/theme-BV4qkzZU.js.map +0 -1
- package/dist/theme-DLorpkJc.cjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
import { MColor } from '../../../theme';
|
|
2
|
+
import { MColor, MHiddenProps } from '../../../theme';
|
|
3
3
|
import { MTextTone } from '../MText';
|
|
4
4
|
export type MSubTextSize = 'xs' | 'sm' | 'md';
|
|
5
5
|
export type MSubTextTone = MTextTone;
|
|
6
|
-
export interface MSubTextProps extends Omit<HTMLAttributes<HTMLElement>, 'color'
|
|
6
|
+
export interface MSubTextProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'hidden'>, MHiddenProps {
|
|
7
7
|
as?: 'span' | 'p' | 'div' | 'small';
|
|
8
8
|
size?: MSubTextSize;
|
|
9
9
|
tone?: MSubTextTone;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MTextProps } from './MText.types';
|
|
2
|
-
export declare function MText({ as, tone, size, align, color, weight, truncate, spacing, padding, fsize, mt, mb, ml, mr, mx, my, pt, pb, pl, pr, px, py, fullWidth, className, style, children, ...rest }: MTextProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function MText({ as, tone, size, align, hidden, color, weight, truncate, spacing, padding, fsize, mt, mb, ml, mr, mx, my, pt, pb, pl, pr, px, py, fullWidth, className, style, children, ...rest }: MTextProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
import { MColor } from '../../../theme';
|
|
2
|
+
import { MColor, MHiddenProps } from '../../../theme';
|
|
3
3
|
import { LayoutUtilityProps } from '../../../utils/layoutProps';
|
|
4
4
|
export type MTextTone = 'default' | 'muted' | 'accent';
|
|
5
5
|
export type MTextSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
6
6
|
export type MTextAlign = 'left' | 'center' | 'right' | 'justify';
|
|
7
|
-
export interface MTextProps extends Omit<HTMLAttributes<HTMLElement>, 'color'>, LayoutUtilityProps {
|
|
7
|
+
export interface MTextProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'hidden'>, LayoutUtilityProps, MHiddenProps {
|
|
8
8
|
as?: 'p' | 'span' | 'div' | 'strong' | 'em';
|
|
9
9
|
tone?: MTextTone;
|
|
10
10
|
size?: MTextSize;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./theme-CyIOdO9W.cjs`),t=require(`./icons-Dv1T-cF4.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./useInteractionEffect-DnEfbCrX.cjs`),i=require(`./MButton-Rg85cgO1.cjs`);let a=require(`react`),o=require(`react/jsx-runtime`);var s=(0,a.forwardRef)(function({orientation:e=`horizontal`,variant:t,size:r,color:s,attached:c=!0,className:l,children:u,...d},f){let p=(0,a.useMemo)(()=>({variant:t,size:r,color:s}),[t,r,s]);return(0,o.jsx)(i.i.Provider,{value:p,children:(0,o.jsx)(`div`,{ref:f,role:`group`,className:n.t(`button-group`,e,c&&`attached`,l),...d,children:u})})}),c=(0,a.createContext)(null);function l(){return(0,a.useContext)(c)}var u=(0,a.forwardRef)(function({checked:e,defaultChecked:t,name:i,id:s,value:c,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,onChange:h,clickEffect:g=`ripple`,rippleColor:_,className:v,style:y},b){let x=l(),S=x?.name??i,C=x?.disabled??u,w=x?.size??d,T=x?.color??f,E=x?x.value===c:e,{effectClassName:D,effectLayer:O,handlePointerDown:k,triggerEffect:A}=r.t({effect:g,disabled:C,centered:!0,color:_}),j=(0,a.useCallback)(e=>{h?.(e),x?.onChange&&c&&x.onChange(c)},[h,x,c]);return(0,o.jsxs)(`label`,{className:n.t(`radio`,w,m===`left`&&`label-left`,C&&`disabled`,v),style:y,children:[(0,o.jsxs)(`span`,{className:n.t(`circle`,`color-${T}`,D),onPointerDown:k,children:[O,(0,o.jsx)(`input`,{ref:b,type:`radio`,name:S,id:s,value:c,checked:E,defaultChecked:x?void 0:t,disabled:C,onChange:j,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&A(e.currentTarget.parentElement)},className:`input`})]}),p&&(0,o.jsx)(`span`,{className:`label-text`,children:p})]})});function d({name:e,value:t,defaultValue:r,onChange:i,direction:s=`vertical`,children:l,disabled:u=!1,size:d=`md`,color:f=`primary`,error:p=!1,errorText:m,label:h,className:g,style:_}){let[v,y]=(0,a.useState)(r),b=t===void 0?v:t,x=(0,a.useCallback)(e=>{t===void 0&&y(e),i?.(e)},[i,t]),S=(0,a.useMemo)(()=>({name:e,value:b,disabled:u,size:d,color:f,onChange:x}),[e,b,u,d,f,x]);return(0,o.jsx)(c.Provider,{value:S,children:(0,o.jsxs)(`fieldset`,{className:n.t(`radio-group`,s,g),style:_,role:`radiogroup`,children:[h&&(0,o.jsx)(`legend`,{className:n.t(`label`,p&&`error`),children:h}),l,m&&(0,o.jsx)(`span`,{className:`field-error`,role:`alert`,children:m})]})})}function f({onLoadMore:e,loading:t=!1,hasMore:r=!0,loaded:s,total:c,auto:l=!1,autoThreshold:u=100,variant:d=`outlined`,color:f=`primary`,label:p=`Load more`,loadingLabel:m=`Loading...`,doneLabel:h=`All items loaded`,className:g,..._}){let v=(0,a.useRef)(null),y=(0,a.useRef)(e);y.current=e,(0,a.useEffect)(()=>{if(!l||!r||t)return;let e=v.current;if(!e)return;let n=new IntersectionObserver(e=>{e[0].isIntersecting&&y.current()},{rootMargin:`${u}px`});return n.observe(e),()=>n.disconnect()},[l,r,t,u]);let b=(0,a.useCallback)(()=>{!t&&r&&e()},[e,t,r]),x=s!==void 0&&c!==void 0;return(0,o.jsxs)(`div`,{className:n.t(`load-more`,g),..._,children:[x&&(0,o.jsxs)(`span`,{className:`load-more-count`,children:[s,` / `,c]}),r?(0,o.jsx)(i.t,{variant:d,color:f,loading:t,onClick:b,className:`load-more-btn`,children:t?m:p}):(0,o.jsx)(`span`,{className:`load-more-done`,children:h}),l&&r&&(0,o.jsx)(`div`,{ref:v,className:`load-more-sentinel`}),x&&(0,o.jsx)(`div`,{className:`load-more-bar`,children:(0,o.jsx)(`div`,{className:`load-more-bar-fill`,style:{width:`${Math.min(s/c*100,100)}%`}})})]})}function p({threshold:e=300,variant:r=`filled`,color:s=`primary`,smooth:c=!0,className:l}){let[u,d]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{function t(){d(window.scrollY>e)}return t(),window.addEventListener(`scroll`,t,{passive:!0}),()=>window.removeEventListener(`scroll`,t)},[e]),(0,o.jsx)(i.t,{variant:r,color:s,shape:`circle`,size:`lg`,iconOnly:!0,onClick:(0,a.useCallback)(()=>{window.scrollTo({top:0,behavior:c?`smooth`:`instant`})},[c]),"aria-label":`Scroll to top`,className:n.t(`scroll-top`,u&&`visible`,l),children:(0,o.jsx)(t.Oi,{})})}function m(e,t){return(0,o.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,...t,children:e})}function h(e){return m((0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.2`,fill:`#fff`,stroke:`#dadce0`,strokeWidth:`1.2`}),(0,o.jsx)(`path`,{d:`M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z`,fill:`#4285F4`}),(0,o.jsx)(`path`,{d:`M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z`,fill:`#34A853`}),(0,o.jsx)(`path`,{d:`M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z`,fill:`#FBBC05`}),(0,o.jsx)(`path`,{d:`M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z`,fill:`#EA4335`})]}),e)}function g(e){return m((0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`rect`,{x:`2.2`,y:`2.2`,width:`19.6`,height:`19.6`,rx:`6.2`,fill:`#1877F2`}),(0,o.jsx)(`path`,{d:`M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z`,fill:`#fff`})]}),e)}function _(e){return m((0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`path`,{d:`M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z`,fill:`currentColor`}),(0,o.jsx)(`path`,{d:`M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z`,fill:`currentColor`})]}),e)}function v(e){return m((0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`rect`,{x:`3.5`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#F25022`}),(0,o.jsx)(`rect`,{x:`12.7`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#7FBA00`}),(0,o.jsx)(`rect`,{x:`3.5`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#00A4EF`}),(0,o.jsx)(`rect`,{x:`12.7`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#FFB900`})]}),e)}function y(e){return m((0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.1`,fill:`#fff`}),(0,o.jsx)(`path`,{d:`M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z`,fill:`#E60023`})]}),e)}function b(e){return m((0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`rect`,{x:`2.4`,y:`2.4`,width:`19.2`,height:`19.2`,rx:`4.8`,fill:`#fff`}),(0,o.jsx)(`path`,{d:`M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z`,fill:`#0A66C2`})]}),e)}var x={google:{label:`Sign in with Google`,iconLabel:`Google`,mode:`google`,Icon:h},facebook:{label:`Sign in with Facebook`,iconLabel:`Facebook`,mode:`outline`,Icon:g},apple:{label:`Sign in with Apple`,iconLabel:`Apple`,mode:`brand`,Icon:_},microsoft:{label:`Sign in with Microsoft`,iconLabel:`Microsoft`,mode:`brand`,Icon:v},pinterest:{label:`Sign in with Pinterest`,iconLabel:`Pinterest`,mode:`brand`,Icon:y},linkedin:{label:`Sign in with LinkedIn`,iconLabel:`LinkedIn`,mode:`brand`,Icon:b}},S=(0,a.forwardRef)(function({platform:t=`google`,variant:a=`outline`,size:s=`md`,iconOnly:c=!1,iconShape:l=`circle`,hidden:u,fullWidth:d=!1,loading:f=!1,active:p=!1,pulsing:m=!1,clickEffect:h=`ripple`,rippleColor:g,className:_,style:v,children:y,disabled:b=!1,type:S=`button`,onPointerDown:C,onKeyDown:w,"aria-label":T,...E},D){let O=x[t],k=O.Icon,A=y??O.label,j=T??(c?O.iconLabel:void 0),M=O.mode===`google`?a:O.mode,N=b||f,{effectClassName:P,effectLayer:F,handlePointerDown:I,triggerEffect:L}=r.t({effect:h,disabled:N,centered:c,color:g});return(0,o.jsxs)(`button`,{ref:D,type:S,className:n.t(`social-button-root`,t,M,s,d&&`full-width`,c&&`icon-only`,c&&`icon-shape-${l}`,f&&`loading`,p&&`active`,m&&`pulsing`,N&&`disabled`,P,_),style:v,disabled:N,"aria-busy":f||void 0,"aria-label":j,onPointerDown:e=>{I(e),C?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&L(e.currentTarget),w?.(e)},...e.n(u),...E,children:[F,f&&(0,o.jsx)(i.r,{size:`sm`,color:`inherit`,className:`social-button-spinner`,"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`social-button-brand`,"aria-hidden":`true`,children:(0,o.jsx)(k,{className:`social-button-mark`})}),!c&&(0,o.jsx)(`span`,{className:`social-button-label`,children:A})]})});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});
|
|
2
|
+
//# sourceMappingURL=controls-CN5d1q6e.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls-DwL1-nVC.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div className=\"load-more-bar-fill\" style={{width: `${Math.min((loaded / total) * 100, 100)}%`}} />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"kNAOA,IAAa,GAAA,EAAA,EAAA,YAA6D,SACtE,CAAC,cAAc,aAAc,UAAS,OAAM,QAAO,WAAW,GAAM,YAAW,WAAU,GAAG,GAC5F,EACF,CACE,IAAM,GAAA,EAAA,EAAA,cAA+C,CAAC,UAAS,OAAM,QAAM,EAAG,CAAC,EAAS,EAAM,EAAM,CAAC,CAErG,OACI,EAAA,EAAA,KAAC,EAAA,EAAmB,SAApB,CAA6B,MAAO,YAChC,EAAA,EAAA,KAAC,MAAD,CACS,MACL,KAAK,QACL,UAAW,EAAA,EAAG,eAAgB,EAAa,GAAY,WAAY,EAAU,CAC7E,GAAI,EAEH,WACC,CAAA,CACoB,CAAA,EAEpC,CCtBW,GAAA,EAAA,EAAA,eAA6D,KAAK,CAG/E,SAAgB,GAAgD,CAC5D,OAAA,EAAA,EAAA,YAAkB,EAAa,CCEnC,IAAa,GAAA,EAAA,EAAA,YAAmD,SAC5D,CACI,UACA,iBACA,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,EAAQ,GAAe,CAEvB,EAAe,GAAO,MAAQ,EAC9B,EAAmB,GAAO,UAAY,EACtC,EAAe,GAAO,MAAQ,EAC9B,EAAgB,GAAO,OAAS,EAChC,EAAkB,EAAQ,EAAM,QAAU,EAAQ,EAClD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,SAAU,EACV,SAAU,GACV,MAAO,EACV,CAAC,CAGI,GAAA,EAAA,EAAA,aACD,GAA+C,CAC5C,IAAW,EAAM,CACb,GAAO,UAAY,GACnB,EAAM,SAAS,EAAM,EAG7B,CAAC,EAAU,EAAO,EAAM,CAC3B,CAED,OACI,EAAA,EAAA,MAAC,QAAD,CACI,UAAW,EAAA,EACP,QACA,EACA,IAAkB,QAAU,aAC5B,GAAoB,WACpB,EACH,CACM,iBARX,EAUI,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,EAAG,SAAU,SAAS,IAAiB,EAAgB,CAAE,cAAe,WAAzF,CACK,GACD,EAAA,EAAA,KAAC,QAAD,CACS,MACL,KAAK,QACL,KAAM,EACF,KACG,QACP,QAAS,EACT,eAAiB,EAAyB,IAAA,GAAjB,EACzB,SAAU,EACV,SAAU,EACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACZ,CAAA,CACC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAa,CAAA,CACjD,IAEd,CCjFF,SAAgB,EAAY,CACxB,OACA,QACA,eACA,WACA,YAAY,WACZ,WACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QAAQ,GACR,YACA,QACA,YACA,SACiB,CACjB,GAAM,CAAC,EAAe,IAAA,EAAA,EAAA,UAA6B,EAAa,CAC1D,EAAe,IAAU,IAAA,GAAoB,EAAR,EAGrC,GAAA,EAAA,EAAA,aACD,GAAgB,CACT,IAAU,IAAA,IACV,EAAiB,EAAI,CAEzB,IAAW,EAAI,EAEnB,CAAC,EAAU,EAAM,CACpB,CAGK,GAAA,EAAA,EAAA,cACK,CAAC,OAAM,MAAO,EAAc,WAAU,OAAM,QAAO,SAAU,EAAa,EACjF,CAAC,EAAM,EAAc,EAAU,EAAM,EAAO,EAAa,CAC5D,CAED,OACI,EAAA,EAAA,KAAC,EAAa,SAAd,CAAuB,MAAO,YAC1B,EAAA,EAAA,MAAC,WAAD,CAAU,UAAW,EAAA,EAAG,cAAe,EAAW,EAAU,CAAS,QAAO,KAAK,sBAAjF,CACK,IAAS,EAAA,EAAA,KAAC,SAAD,CAAQ,UAAW,EAAA,EAAG,QAAS,GAAS,QAAQ,UAAG,EAAe,CAAA,CAC3E,EACA,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAEJ,GACS,CAAA,CChDhC,SAAgB,EAAU,CACtB,aACA,UAAU,GACV,UAAU,GACV,SACA,QACA,OAAO,GACP,gBAAgB,IAChB,UAAU,WACV,QAAQ,UACR,QAAQ,YACR,eAAe,aACf,YAAY,mBACZ,YACA,GAAG,GACY,CACf,IAAM,GAAA,EAAA,EAAA,QAAqC,KAAK,CAC1C,GAAA,EAAA,EAAA,QAAqB,EAAW,CACtC,EAAY,QAAU,GAEtB,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,GAAQ,CAAC,GAAW,EAAS,OAElC,IAAM,EAAW,EAAY,QAC7B,GAAI,CAAC,EAAU,OAEf,IAAM,EAAW,IAAI,qBAChB,GAAY,CACL,EAAQ,GAAG,gBACX,EAAY,SAAS,EAG7B,CAAC,WAAY,GAAG,EAAc,IAAI,CACrC,CAGD,OADA,EAAS,QAAQ,EAAS,KACb,EAAS,YAAY,EACnC,CAAC,EAAM,EAAS,EAAS,EAAc,CAAC,CAE3C,IAAM,GAAA,EAAA,EAAA,iBAAgC,CAC9B,CAAC,GAAW,GAAS,GAAY,EACtC,CAAC,EAAY,EAAS,EAAQ,CAAC,CAE5B,EAAY,IAAW,IAAA,IAAa,IAAU,IAAA,GAEpD,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,YAAa,EAAU,CAAE,GAAI,WAAhD,CACK,IACG,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,2BAAhB,CACK,EAAO,MAAI,EACT,GAGV,GACG,EAAA,EAAA,KAAC,EAAA,EAAD,CACa,UACF,QACE,UACT,QAAS,EACT,UAAU,yBAET,EAAU,EAAe,EACpB,CAAA,EAEV,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,0BAAkB,EAAiB,CAAA,CAGtD,GAAQ,IAAW,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAa,UAAU,qBAAuB,CAAA,CAE3E,IACG,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,0BACX,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBAAqB,MAAO,CAAC,MAAO,GAAG,KAAK,IAAK,EAAS,EAAS,IAAK,IAAI,CAAC,GAAG,CAAI,CAAA,CACjG,CAAA,CAER,GCzEd,SAAgB,EAAW,CACvB,YAAY,IACZ,UAAU,SACV,QAAQ,UACR,SAAS,GACT,aACgB,CAChB,GAAM,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CAe7C,OAbA,EAAA,EAAA,eAAgB,CACZ,SAAS,GAAW,CAChB,EAAW,OAAO,QAAU,EAAU,CAI1C,OAFA,GAAU,CACV,OAAO,iBAAiB,SAAU,EAAU,CAAC,QAAS,GAAK,CAAC,KAC/C,OAAO,oBAAoB,SAAU,EAAS,EAC5D,CAAC,EAAU,CAAC,EAOX,EAAA,EAAA,KAAC,EAAA,EAAD,CACa,UACF,QACP,MAAM,SACN,KAAK,KACL,SAAA,GACA,SAAA,EAAA,EAAA,iBAX8B,CAClC,OAAO,SAAS,CAAC,IAAK,EAAG,SAAU,EAAS,SAAW,UAAU,CAAC,EACnE,CAAC,EAAO,CAAC,CAUJ,aAAW,gBACX,UAAW,EAAA,EAAG,aAAc,GAAW,UAAW,EAAU,WAE5D,EAAA,EAAA,KAAC,EAAA,GAAD,EAAgB,CAAA,CACV,CAAA,CCrClB,SAAS,EAAW,EAAqB,EAAwB,CAC7D,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,cAAY,OAAO,GAAI,EAC1F,WACC,CAAA,CAId,SAAgB,EAAiB,EAAwB,CACrD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,SAAD,CAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,OAAO,KAAK,OAAO,OAAO,UAAU,YAAY,MAAQ,CAAA,EAClF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,6HACF,KAAK,UACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,0JACF,KAAK,UACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,qHACF,KAAK,UACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,qIACF,KAAK,UACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAmB,EAAwB,CACvD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO,GAAG,MAAM,KAAK,UAAY,CAAA,EAC3E,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,qJACF,KAAK,OACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAgB,EAAwB,CACpD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,kUACF,KAAK,eACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,+GACF,KAAK,eACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAoB,EAAwB,CACxD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,EACzE,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,OAAO,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,EAC1E,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,OAAO,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,EAC1E,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,OAAO,EAAE,OAAO,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,KAAK,UAAY,CAAA,CAC5E,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAoB,EAAwB,CACxD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,SAAD,CAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,OAAO,KAAK,OAAS,CAAA,EAC/C,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,weACF,KAAK,UACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CAGL,SAAgB,EAAmB,EAAwB,CACvD,OAAO,GACH,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,MAAM,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO,GAAG,MAAM,KAAK,OAAS,CAAA,EACxE,EAAA,EAAA,KAAC,OAAD,CACI,EAAE,gQACF,KAAK,UACP,CAAA,CACH,CAAA,CAAA,CACH,EACH,CCtFL,IAAM,EAAqB,CACvB,OAAQ,CACJ,MAAO,sBACP,UAAW,SACX,KAAM,SACN,KAAM,EACT,CACD,SAAU,CACN,MAAO,wBACP,UAAW,WACX,KAAM,UACN,KAAM,EACT,CACD,MAAO,CACH,MAAO,qBACP,UAAW,QACX,KAAM,QACN,KAAM,EACT,CACD,UAAW,CACP,MAAO,yBACP,UAAW,YACX,KAAM,QACN,KAAM,EACT,CACD,UAAW,CACP,MAAO,yBACP,UAAW,YACX,KAAM,QACN,KAAM,EACT,CACD,SAAU,CACN,MAAO,wBACP,UAAW,WACX,KAAM,QACN,KAAM,EACT,CACJ,CAEY,GAAA,EAAA,EAAA,YAAkE,SAC3E,CACI,WAAW,SACX,UAAU,UACV,OAAO,KACP,WAAW,GACX,YAAY,SACZ,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,cAAc,SACd,cACA,YACA,QACA,WACA,WAAW,GACX,OAAO,SACP,gBACA,YACA,aAAc,EACd,GAAG,GAEP,EACF,CACE,IAAM,EAAS,EAAmB,GAC5B,EAAO,EAAO,KACd,EAAQ,GAAY,EAAO,MAC3B,EAAoB,IAAc,EAAW,EAAO,UAAY,IAAA,IAChE,EAAkB,EAAO,OAAS,SAAW,EAAU,EAAO,KAC9D,EAAa,GAAY,EACzB,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAwC,CAC7G,OAAQ,EACR,SAAU,EACV,SAAU,EACV,MAAO,EACV,CAAC,CAEF,OACI,EAAA,EAAA,MAAC,SAAD,CACS,MACC,OACN,UAAW,EAAA,EACP,qBACA,EACA,EACA,EACA,GAAa,aACb,GAAY,YACZ,GAAY,cAAc,IAC1B,GAAW,UACX,GAAU,SACV,GAAW,UACX,GAAc,WACd,EACA,EACH,CACM,QACP,SAAU,EACV,YAAW,GAAW,IAAA,GACtB,aAAY,EACZ,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,CAGtC,IAAY,EAAM,EAEtB,GAAI,WAjCR,CAmCK,EACA,IAAW,EAAA,EAAA,KAAC,EAAA,EAAD,CAAU,KAAK,KAAK,MAAM,UAAU,UAAU,wBAAwB,cAAY,OAAS,CAAA,EACvG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAsB,cAAY,iBAC9C,EAAA,EAAA,KAAC,EAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,CAAA,CACN,CAAC,IAAY,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,+BAAuB,EAAa,CAAA,CAC7D,IAEf"}
|
|
1
|
+
{"version":3,"file":"controls-CN5d1q6e.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div className=\"load-more-bar-fill\" style={{width: `${Math.min((loaded / total) * 100, 100)}%`}} />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n hidden,\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"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"}
|