@metamask-previews/design-system-react 0.0.0-preview.bf69b6b → 0.0.0-preview.e1b50dd
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/dist/components/avatar-account/AvatarAccount.cjs +27 -0
- package/dist/components/avatar-account/AvatarAccount.cjs.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.constants.cjs +12 -0
- package/dist/components/avatar-account/AvatarAccount.constants.cjs.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.constants.d.cts +3 -0
- package/dist/components/avatar-account/AvatarAccount.constants.d.cts.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.constants.d.mts +3 -0
- package/dist/components/avatar-account/AvatarAccount.constants.d.mts.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.constants.mjs +9 -0
- package/dist/components/avatar-account/AvatarAccount.constants.mjs.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.d.cts +4 -0
- package/dist/components/avatar-account/AvatarAccount.d.cts.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.d.mts +4 -0
- package/dist/components/avatar-account/AvatarAccount.d.mts.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.mjs +28 -0
- package/dist/components/avatar-account/AvatarAccount.mjs.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.types.cjs +32 -0
- package/dist/components/avatar-account/AvatarAccount.types.cjs.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.types.d.cts +58 -0
- package/dist/components/avatar-account/AvatarAccount.types.d.cts.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.types.d.mts +58 -0
- package/dist/components/avatar-account/AvatarAccount.types.d.mts.map +1 -0
- package/dist/components/avatar-account/AvatarAccount.types.mjs +29 -0
- package/dist/components/avatar-account/AvatarAccount.types.mjs.map +1 -0
- package/dist/components/avatar-account/index.cjs +9 -0
- package/dist/components/avatar-account/index.cjs.map +1 -0
- package/dist/components/avatar-account/index.d.cts +4 -0
- package/dist/components/avatar-account/index.d.cts.map +1 -0
- package/dist/components/avatar-account/index.d.mts +4 -0
- package/dist/components/avatar-account/index.d.mts.map +1 -0
- package/dist/components/avatar-account/index.mjs +3 -0
- package/dist/components/avatar-account/index.mjs.map +1 -0
- package/dist/components/avatar-base/AvatarBase.cjs +28 -0
- package/dist/components/avatar-base/AvatarBase.cjs.map +1 -0
- package/dist/components/avatar-base/AvatarBase.constants.cjs +19 -0
- package/dist/components/avatar-base/AvatarBase.constants.cjs.map +1 -0
- package/dist/components/avatar-base/AvatarBase.constants.d.cts +4 -0
- package/dist/components/avatar-base/AvatarBase.constants.d.cts.map +1 -0
- package/dist/components/avatar-base/AvatarBase.constants.d.mts +4 -0
- package/dist/components/avatar-base/AvatarBase.constants.d.mts.map +1 -0
- package/dist/components/avatar-base/AvatarBase.constants.mjs +16 -0
- package/dist/components/avatar-base/AvatarBase.constants.mjs.map +1 -0
- package/dist/components/avatar-base/AvatarBase.d.cts +4 -0
- package/dist/components/avatar-base/AvatarBase.d.cts.map +1 -0
- package/dist/components/avatar-base/AvatarBase.d.mts +4 -0
- package/dist/components/avatar-base/AvatarBase.d.mts.map +1 -0
- package/dist/components/avatar-base/AvatarBase.mjs +29 -0
- package/dist/components/avatar-base/AvatarBase.mjs.map +1 -0
- package/dist/components/avatar-base/AvatarBase.types.cjs +38 -0
- package/dist/components/avatar-base/AvatarBase.types.cjs.map +1 -0
- package/dist/components/avatar-base/AvatarBase.types.d.cts +77 -0
- package/dist/components/avatar-base/AvatarBase.types.d.cts.map +1 -0
- package/dist/components/avatar-base/AvatarBase.types.d.mts +77 -0
- package/dist/components/avatar-base/AvatarBase.types.d.mts.map +1 -0
- package/dist/components/avatar-base/AvatarBase.types.mjs +35 -0
- package/dist/components/avatar-base/AvatarBase.types.mjs.map +1 -0
- package/dist/components/avatar-base/index.cjs +9 -0
- package/dist/components/avatar-base/index.cjs.map +1 -0
- package/dist/components/avatar-base/index.d.cts +4 -0
- package/dist/components/{button-link → avatar-base}/index.d.cts.map +1 -1
- package/dist/components/avatar-base/index.d.mts +4 -0
- package/dist/components/{button-link → avatar-base}/index.d.mts.map +1 -1
- package/dist/components/avatar-base/index.mjs +3 -0
- package/dist/components/avatar-base/index.mjs.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.cjs +15 -0
- package/dist/components/avatar-favicon/AvatarFavicon.cjs.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.d.cts +4 -0
- package/dist/components/avatar-favicon/AvatarFavicon.d.cts.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.d.mts +4 -0
- package/dist/components/avatar-favicon/AvatarFavicon.d.mts.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.mjs +16 -0
- package/dist/components/avatar-favicon/AvatarFavicon.mjs.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.cjs +4 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.cjs.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.d.cts +40 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.d.cts.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.d.mts +40 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.d.mts.map +1 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.mjs +2 -0
- package/dist/components/avatar-favicon/AvatarFavicon.types.mjs.map +1 -0
- package/dist/components/avatar-favicon/index.cjs +8 -0
- package/dist/components/avatar-favicon/index.cjs.map +1 -0
- package/dist/components/avatar-favicon/index.d.cts +4 -0
- package/dist/components/avatar-favicon/index.d.cts.map +1 -0
- package/dist/components/avatar-favicon/index.d.mts +4 -0
- package/dist/components/avatar-favicon/index.d.mts.map +1 -0
- package/dist/components/avatar-favicon/index.mjs +3 -0
- package/dist/components/avatar-favicon/index.mjs.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.cjs +19 -0
- package/dist/components/avatar-icon/AvatarIcon.cjs.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.cjs +44 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.cjs.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.d.cts +11 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.d.cts.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.d.mts +11 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.d.mts.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.mjs +41 -0
- package/dist/components/avatar-icon/AvatarIcon.constants.mjs.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.d.cts +4 -0
- package/dist/components/avatar-icon/AvatarIcon.d.cts.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.d.mts +4 -0
- package/dist/components/avatar-icon/AvatarIcon.d.mts.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.mjs +20 -0
- package/dist/components/avatar-icon/AvatarIcon.mjs.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.types.cjs +36 -0
- package/dist/components/avatar-icon/AvatarIcon.types.cjs.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.types.d.cts +57 -0
- package/dist/components/avatar-icon/AvatarIcon.types.d.cts.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.types.d.mts +57 -0
- package/dist/components/avatar-icon/AvatarIcon.types.d.mts.map +1 -0
- package/dist/components/avatar-icon/AvatarIcon.types.mjs +33 -0
- package/dist/components/avatar-icon/AvatarIcon.types.mjs.map +1 -0
- package/dist/components/avatar-icon/index.cjs +9 -0
- package/dist/components/avatar-icon/index.cjs.map +1 -0
- package/dist/components/avatar-icon/index.d.cts +4 -0
- package/dist/components/avatar-icon/index.d.cts.map +1 -0
- package/dist/components/avatar-icon/index.d.mts +4 -0
- package/dist/components/avatar-icon/index.d.mts.map +1 -0
- package/dist/components/avatar-icon/index.mjs +3 -0
- package/dist/components/avatar-icon/index.mjs.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.cjs +15 -0
- package/dist/components/avatar-network/AvatarNetwork.cjs.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.d.cts +4 -0
- package/dist/components/avatar-network/AvatarNetwork.d.cts.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.d.mts +4 -0
- package/dist/components/avatar-network/AvatarNetwork.d.mts.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.mjs +16 -0
- package/dist/components/avatar-network/AvatarNetwork.mjs.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.types.cjs +4 -0
- package/dist/components/avatar-network/AvatarNetwork.types.cjs.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.types.d.cts +40 -0
- package/dist/components/avatar-network/AvatarNetwork.types.d.cts.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.types.d.mts +40 -0
- package/dist/components/avatar-network/AvatarNetwork.types.d.mts.map +1 -0
- package/dist/components/avatar-network/AvatarNetwork.types.mjs +2 -0
- package/dist/components/avatar-network/AvatarNetwork.types.mjs.map +1 -0
- package/dist/components/avatar-network/index.cjs +8 -0
- package/dist/components/avatar-network/index.cjs.map +1 -0
- package/dist/components/avatar-network/index.d.cts +4 -0
- package/dist/components/avatar-network/index.d.cts.map +1 -0
- package/dist/components/avatar-network/index.d.mts +4 -0
- package/dist/components/avatar-network/index.d.mts.map +1 -0
- package/dist/components/avatar-network/index.mjs +3 -0
- package/dist/components/avatar-network/index.mjs.map +1 -0
- package/dist/components/avatar-token/AvatarToken.cjs +15 -0
- package/dist/components/avatar-token/AvatarToken.cjs.map +1 -0
- package/dist/components/avatar-token/AvatarToken.d.cts +4 -0
- package/dist/components/avatar-token/AvatarToken.d.cts.map +1 -0
- package/dist/components/avatar-token/AvatarToken.d.mts +4 -0
- package/dist/components/avatar-token/AvatarToken.d.mts.map +1 -0
- package/dist/components/avatar-token/AvatarToken.mjs +16 -0
- package/dist/components/avatar-token/AvatarToken.mjs.map +1 -0
- package/dist/components/avatar-token/AvatarToken.types.cjs +4 -0
- package/dist/components/avatar-token/AvatarToken.types.cjs.map +1 -0
- package/dist/components/avatar-token/AvatarToken.types.d.cts +40 -0
- package/dist/components/avatar-token/AvatarToken.types.d.cts.map +1 -0
- package/dist/components/avatar-token/AvatarToken.types.d.mts +40 -0
- package/dist/components/avatar-token/AvatarToken.types.d.mts.map +1 -0
- package/dist/components/avatar-token/AvatarToken.types.mjs +2 -0
- package/dist/components/avatar-token/AvatarToken.types.mjs.map +1 -0
- package/dist/components/avatar-token/index.cjs +8 -0
- package/dist/components/avatar-token/index.cjs.map +1 -0
- package/dist/components/avatar-token/index.d.cts +4 -0
- package/dist/components/avatar-token/index.d.cts.map +1 -0
- package/dist/components/avatar-token/index.d.mts +4 -0
- package/dist/components/avatar-token/index.d.mts.map +1 -0
- package/dist/components/avatar-token/index.mjs +3 -0
- package/dist/components/avatar-token/index.mjs.map +1 -0
- package/dist/components/blockies/Blockies.cjs +40 -0
- package/dist/components/blockies/Blockies.cjs.map +1 -0
- package/dist/components/blockies/Blockies.d.cts +7 -0
- package/dist/components/blockies/Blockies.d.cts.map +1 -0
- package/dist/components/blockies/Blockies.d.mts +7 -0
- package/dist/components/blockies/Blockies.d.mts.map +1 -0
- package/dist/components/blockies/Blockies.mjs +21 -0
- package/dist/components/blockies/Blockies.mjs.map +1 -0
- package/dist/components/{button-link/ButtonLink.types.cjs → blockies/Blockies.types.cjs} +1 -1
- package/dist/components/blockies/Blockies.types.cjs.map +1 -0
- package/dist/components/blockies/Blockies.types.d.cts +16 -0
- package/dist/components/blockies/Blockies.types.d.cts.map +1 -0
- package/dist/components/blockies/Blockies.types.d.mts +16 -0
- package/dist/components/blockies/Blockies.types.d.mts.map +1 -0
- package/dist/components/blockies/Blockies.types.mjs +2 -0
- package/dist/components/blockies/Blockies.types.mjs.map +1 -0
- package/dist/components/blockies/index.cjs +6 -0
- package/dist/components/blockies/index.cjs.map +1 -0
- package/dist/components/blockies/index.d.cts +3 -0
- package/dist/components/blockies/index.d.cts.map +1 -0
- package/dist/components/blockies/index.d.mts +3 -0
- package/dist/components/blockies/index.d.mts.map +1 -0
- package/dist/components/blockies/index.mjs +2 -0
- package/dist/components/blockies/index.mjs.map +1 -0
- package/dist/components/button/Button.cjs +25 -0
- package/dist/components/button/Button.cjs.map +1 -0
- package/dist/components/button/Button.d.cts +4 -0
- package/dist/components/button/Button.d.cts.map +1 -0
- package/dist/components/button/Button.d.mts +4 -0
- package/dist/components/button/Button.d.mts.map +1 -0
- package/dist/components/button/Button.mjs +26 -0
- package/dist/components/button/Button.mjs.map +1 -0
- package/dist/components/button/Button.types.cjs +19 -0
- package/dist/components/button/Button.types.cjs.map +1 -0
- package/dist/components/button/Button.types.d.cts +31 -0
- package/dist/components/button/Button.types.d.cts.map +1 -0
- package/dist/components/button/Button.types.d.mts +31 -0
- package/dist/components/button/Button.types.d.mts.map +1 -0
- package/dist/components/button/Button.types.mjs +16 -0
- package/dist/components/button/Button.types.mjs.map +1 -0
- package/dist/components/button/index.cjs +10 -0
- package/dist/components/button/index.cjs.map +1 -0
- package/dist/components/button/index.d.cts +5 -0
- package/dist/components/button/index.d.cts.map +1 -0
- package/dist/components/button/index.d.mts +5 -0
- package/dist/components/button/index.d.mts.map +1 -0
- package/dist/components/button/index.mjs +4 -0
- package/dist/components/button/index.mjs.map +1 -0
- package/dist/components/button-base/ButtonBase.cjs +24 -10
- package/dist/components/button-base/ButtonBase.cjs.map +1 -1
- package/dist/components/button-base/ButtonBase.d.cts.map +1 -1
- package/dist/components/button-base/ButtonBase.d.mts.map +1 -1
- package/dist/components/button-base/ButtonBase.mjs +22 -8
- package/dist/components/button-base/ButtonBase.mjs.map +1 -1
- package/dist/components/button-base/ButtonBase.types.cjs.map +1 -1
- package/dist/components/button-base/ButtonBase.types.d.cts +1 -1
- package/dist/components/button-base/ButtonBase.types.d.mts +1 -1
- package/dist/components/button-base/ButtonBase.types.mjs.map +1 -1
- package/dist/components/button-icon/ButtonIcon.cjs +38 -0
- package/dist/components/button-icon/ButtonIcon.cjs.map +1 -0
- package/dist/components/button-icon/ButtonIcon.constants.cjs +16 -0
- package/dist/components/button-icon/ButtonIcon.constants.cjs.map +1 -0
- package/dist/components/button-icon/ButtonIcon.constants.d.cts +12 -0
- package/dist/components/button-icon/ButtonIcon.constants.d.cts.map +1 -0
- package/dist/components/button-icon/ButtonIcon.constants.d.mts +12 -0
- package/dist/components/button-icon/ButtonIcon.constants.d.mts.map +1 -0
- package/dist/components/button-icon/ButtonIcon.constants.mjs +13 -0
- package/dist/components/button-icon/ButtonIcon.constants.mjs.map +1 -0
- package/dist/components/button-icon/ButtonIcon.d.cts +4 -0
- package/dist/components/button-icon/ButtonIcon.d.cts.map +1 -0
- package/dist/components/button-icon/ButtonIcon.d.mts +4 -0
- package/dist/components/button-icon/ButtonIcon.d.mts.map +1 -0
- package/dist/components/button-icon/ButtonIcon.mjs +39 -0
- package/dist/components/button-icon/ButtonIcon.mjs.map +1 -0
- package/dist/components/button-icon/ButtonIcon.types.cjs +19 -0
- package/dist/components/button-icon/ButtonIcon.types.cjs.map +1 -0
- package/dist/components/button-icon/ButtonIcon.types.d.cts +61 -0
- package/dist/components/button-icon/ButtonIcon.types.d.cts.map +1 -0
- package/dist/components/button-icon/ButtonIcon.types.d.mts +61 -0
- package/dist/components/button-icon/ButtonIcon.types.d.mts.map +1 -0
- package/dist/components/button-icon/ButtonIcon.types.mjs +16 -0
- package/dist/components/button-icon/ButtonIcon.types.mjs.map +1 -0
- package/dist/components/button-icon/index.cjs +8 -0
- package/dist/components/button-icon/index.cjs.map +1 -0
- package/dist/components/button-icon/index.d.cts +4 -0
- package/dist/components/button-icon/index.d.cts.map +1 -0
- package/dist/components/button-icon/index.d.mts +4 -0
- package/dist/components/button-icon/index.d.mts.map +1 -0
- package/dist/components/button-icon/index.mjs +3 -0
- package/dist/components/button-icon/index.mjs.map +1 -0
- package/dist/components/button-primary/ButtonPrimary.cjs +45 -23
- package/dist/components/button-primary/ButtonPrimary.cjs.map +1 -1
- package/dist/components/button-primary/ButtonPrimary.d.cts.map +1 -1
- package/dist/components/button-primary/ButtonPrimary.d.mts.map +1 -1
- package/dist/components/button-primary/ButtonPrimary.mjs +45 -23
- package/dist/components/button-primary/ButtonPrimary.mjs.map +1 -1
- package/dist/components/button-secondary/ButtonSecondary.cjs +26 -25
- package/dist/components/button-secondary/ButtonSecondary.cjs.map +1 -1
- package/dist/components/button-secondary/ButtonSecondary.d.cts.map +1 -1
- package/dist/components/button-secondary/ButtonSecondary.d.mts.map +1 -1
- package/dist/components/button-secondary/ButtonSecondary.mjs +26 -25
- package/dist/components/button-secondary/ButtonSecondary.mjs.map +1 -1
- package/dist/components/button-tertiary/ButtonTertiary.cjs +60 -0
- package/dist/components/button-tertiary/ButtonTertiary.cjs.map +1 -0
- package/dist/components/button-tertiary/ButtonTertiary.d.cts +4 -0
- package/dist/components/button-tertiary/ButtonTertiary.d.cts.map +1 -0
- package/dist/components/button-tertiary/ButtonTertiary.d.mts +4 -0
- package/dist/components/button-tertiary/ButtonTertiary.d.mts.map +1 -0
- package/dist/components/button-tertiary/ButtonTertiary.mjs +61 -0
- package/dist/components/button-tertiary/ButtonTertiary.mjs.map +1 -0
- package/dist/components/button-tertiary/ButtonTertiary.types.cjs +3 -0
- package/dist/components/button-tertiary/ButtonTertiary.types.cjs.map +1 -0
- package/dist/components/{button-link/ButtonLink.types.d.cts → button-tertiary/ButtonTertiary.types.d.cts} +8 -3
- package/dist/components/button-tertiary/ButtonTertiary.types.d.cts.map +1 -0
- package/dist/components/{button-link/ButtonLink.types.d.mts → button-tertiary/ButtonTertiary.types.d.mts} +8 -3
- package/dist/components/button-tertiary/ButtonTertiary.types.d.mts.map +1 -0
- package/dist/components/button-tertiary/ButtonTertiary.types.mjs +2 -0
- package/dist/components/button-tertiary/ButtonTertiary.types.mjs.map +1 -0
- package/dist/components/button-tertiary/index.cjs +8 -0
- package/dist/components/button-tertiary/index.cjs.map +1 -0
- package/dist/components/button-tertiary/index.d.cts +4 -0
- package/dist/components/button-tertiary/index.d.cts.map +1 -0
- package/dist/components/button-tertiary/index.d.mts +4 -0
- package/dist/components/button-tertiary/index.d.mts.map +1 -0
- package/dist/components/button-tertiary/index.mjs +3 -0
- package/dist/components/button-tertiary/index.mjs.map +1 -0
- package/dist/components/index.cjs +40 -9
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +26 -7
- package/dist/components/index.d.cts.map +1 -1
- package/dist/components/index.d.mts +26 -7
- package/dist/components/index.d.mts.map +1 -1
- package/dist/components/index.mjs +14 -6
- package/dist/components/index.mjs.map +1 -1
- package/dist/components/jazzicon/Jazzicon.cjs +98 -0
- package/dist/components/jazzicon/Jazzicon.cjs.map +1 -0
- package/dist/components/jazzicon/Jazzicon.d.cts +7 -0
- package/dist/components/jazzicon/Jazzicon.d.cts.map +1 -0
- package/dist/components/jazzicon/Jazzicon.d.mts +7 -0
- package/dist/components/jazzicon/Jazzicon.d.mts.map +1 -0
- package/dist/components/jazzicon/Jazzicon.mjs +77 -0
- package/dist/components/jazzicon/Jazzicon.mjs.map +1 -0
- package/dist/components/jazzicon/Jazzicon.types.cjs +3 -0
- package/dist/components/jazzicon/Jazzicon.types.cjs.map +1 -0
- package/dist/components/jazzicon/Jazzicon.types.d.cts +16 -0
- package/dist/components/jazzicon/Jazzicon.types.d.cts.map +1 -0
- package/dist/components/jazzicon/Jazzicon.types.d.mts +16 -0
- package/dist/components/jazzicon/Jazzicon.types.d.mts.map +1 -0
- package/dist/components/jazzicon/Jazzicon.types.mjs +2 -0
- package/dist/components/jazzicon/Jazzicon.types.mjs.map +1 -0
- package/dist/components/jazzicon/Jazzicon.utilities.cjs +58 -0
- package/dist/components/jazzicon/Jazzicon.utilities.cjs.map +1 -0
- package/dist/components/jazzicon/Jazzicon.utilities.d.cts +15 -0
- package/dist/components/jazzicon/Jazzicon.utilities.d.cts.map +1 -0
- package/dist/components/jazzicon/Jazzicon.utilities.d.mts +15 -0
- package/dist/components/jazzicon/Jazzicon.utilities.d.mts.map +1 -0
- package/dist/components/jazzicon/Jazzicon.utilities.mjs +52 -0
- package/dist/components/jazzicon/Jazzicon.utilities.mjs.map +1 -0
- package/dist/components/jazzicon/index.cjs +6 -0
- package/dist/components/jazzicon/index.cjs.map +1 -0
- package/dist/components/jazzicon/index.d.cts +3 -0
- package/dist/components/jazzicon/index.d.cts.map +1 -0
- package/dist/components/jazzicon/index.d.mts +3 -0
- package/dist/components/jazzicon/index.d.mts.map +1 -0
- package/dist/components/jazzicon/index.mjs +2 -0
- package/dist/components/jazzicon/index.mjs.map +1 -0
- package/dist/components/text/Text.cjs +2 -2
- package/dist/components/text/Text.cjs.map +1 -1
- package/dist/components/text/Text.d.cts.map +1 -1
- package/dist/components/text/Text.d.mts.map +1 -1
- package/dist/components/text/Text.mjs +2 -2
- package/dist/components/text/Text.mjs.map +1 -1
- package/dist/components/text/Text.types.cjs.map +1 -1
- package/dist/components/text/Text.types.d.cts +4 -0
- package/dist/components/text/Text.types.d.cts.map +1 -1
- package/dist/components/text/Text.types.d.mts +4 -0
- package/dist/components/text/Text.types.d.mts.map +1 -1
- package/dist/components/text/Text.types.mjs.map +1 -1
- package/dist/components/text-button/TextButton.cjs +49 -0
- package/dist/components/text-button/TextButton.cjs.map +1 -0
- package/dist/components/text-button/TextButton.d.cts +4 -0
- package/dist/components/text-button/TextButton.d.cts.map +1 -0
- package/dist/components/text-button/TextButton.d.mts +4 -0
- package/dist/components/text-button/TextButton.d.mts.map +1 -0
- package/dist/components/text-button/TextButton.mjs +50 -0
- package/dist/components/text-button/TextButton.mjs.map +1 -0
- package/dist/components/text-button/TextButton.types.cjs +3 -0
- package/dist/components/text-button/TextButton.types.cjs.map +1 -0
- package/dist/components/text-button/TextButton.types.d.cts +35 -0
- package/dist/components/text-button/TextButton.types.d.cts.map +1 -0
- package/dist/components/text-button/TextButton.types.d.mts +35 -0
- package/dist/components/text-button/TextButton.types.d.mts.map +1 -0
- package/dist/components/text-button/TextButton.types.mjs +2 -0
- package/dist/components/text-button/TextButton.types.mjs.map +1 -0
- package/dist/components/text-button/index.cjs +6 -0
- package/dist/components/text-button/index.cjs.map +1 -0
- package/dist/components/text-button/index.d.cts +3 -0
- package/dist/components/text-button/index.d.cts.map +1 -0
- package/dist/components/text-button/index.d.mts +3 -0
- package/dist/components/text-button/index.d.mts.map +1 -0
- package/dist/components/text-button/index.mjs +2 -0
- package/dist/components/text-button/index.mjs.map +1 -0
- package/package.json +11 -6
- package/dist/components/button-link/ButtonLink.cjs +0 -32
- package/dist/components/button-link/ButtonLink.cjs.map +0 -1
- package/dist/components/button-link/ButtonLink.d.cts +0 -4
- package/dist/components/button-link/ButtonLink.d.cts.map +0 -1
- package/dist/components/button-link/ButtonLink.d.mts +0 -4
- package/dist/components/button-link/ButtonLink.d.mts.map +0 -1
- package/dist/components/button-link/ButtonLink.mjs +0 -33
- package/dist/components/button-link/ButtonLink.mjs.map +0 -1
- package/dist/components/button-link/ButtonLink.types.cjs.map +0 -1
- package/dist/components/button-link/ButtonLink.types.d.cts.map +0 -1
- package/dist/components/button-link/ButtonLink.types.d.mts.map +0 -1
- package/dist/components/button-link/ButtonLink.types.mjs +0 -2
- package/dist/components/button-link/ButtonLink.types.mjs.map +0 -1
- package/dist/components/button-link/index.cjs +0 -8
- package/dist/components/button-link/index.cjs.map +0 -1
- package/dist/components/button-link/index.d.cts +0 -4
- package/dist/components/button-link/index.d.mts +0 -4
- package/dist/components/button-link/index.mjs +0 -3
- package/dist/components/button-link/index.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.types.mjs","sourceRoot":"","sources":["../../../src/components/button/Button.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,aAaX;AAbD,WAAY,aAAa;IACvB;;OAEG;IACH,oCAAmB,CAAA;IACnB;;OAEG;IACH,wCAAuB,CAAA;IACvB;;OAEG;IACH,sCAAqB,CAAA;AACvB,CAAC,EAbW,aAAa,KAAb,aAAa,QAaxB","sourcesContent":["import type { ButtonPrimaryProps } from '../button-primary';\nimport type { ButtonSecondaryProps } from '../button-secondary';\nimport type { ButtonTertiaryProps } from '../button-tertiary';\n\nexport enum ButtonVariant {\n /**\n * Primary button variant - used for primary actions\n */\n Primary = 'primary',\n /**\n * Secondary button variant - used for secondary actions\n */\n Secondary = 'secondary',\n /**\n * Tertiary button variant - used for tertiary-like actions\n */\n Tertiary = 'tertiary',\n}\n\nexport type ButtonProps = {\n /**\n * Optional prop to control the variant of the Button\n * @default ButtonVariant.Primary\n */\n variant?: ButtonVariant;\n} & (\n | (Omit<ButtonPrimaryProps, 'ref'> & {\n variant?: ButtonVariant.Primary;\n })\n | (Omit<ButtonSecondaryProps, 'ref'> & {\n variant?: ButtonVariant.Secondary;\n })\n | (Omit<ButtonTertiaryProps, 'ref'> & {\n variant?: ButtonVariant.Tertiary;\n })\n);\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ButtonSize = exports.ButtonVariant = exports.Button = void 0;
|
|
4
|
+
var Button_1 = require("./Button.cjs");
|
|
5
|
+
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } });
|
|
6
|
+
var Button_types_1 = require("./Button.types.cjs");
|
|
7
|
+
Object.defineProperty(exports, "ButtonVariant", { enumerable: true, get: function () { return Button_types_1.ButtonVariant; } });
|
|
8
|
+
var button_base_1 = require("../button-base/index.cjs");
|
|
9
|
+
Object.defineProperty(exports, "ButtonSize", { enumerable: true, get: function () { return button_base_1.ButtonBaseSize; } });
|
|
10
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,mDAA+C;AAAtC,6GAAA,aAAa,OAAA;AACtB,wDAA8D;AAArD,yGAAA,cAAc,OAAc","sourcesContent":["export { Button } from './Button';\nexport type { ButtonProps } from './Button.types';\nexport { ButtonVariant } from './Button.types';\nexport { ButtonBaseSize as ButtonSize } from '../button-base';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,YAAY,EAAE,WAAW,EAAE,2BAAuB;AAClD,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAC/C,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,iCAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,YAAY,EAAE,WAAW,EAAE,2BAAuB;AAClD,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAC/C,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,iCAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAElC,OAAO,EAAE,aAAa,EAAE,2BAAuB;AAC/C,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,iCAAuB","sourcesContent":["export { Button } from './Button';\nexport type { ButtonProps } from './Button.types';\nexport { ButtonVariant } from './Button.types';\nexport { ButtonBaseSize as ButtonSize } from '../button-base';\n"]}
|
|
@@ -6,18 +6,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ButtonBase = void 0;
|
|
7
7
|
const react_slot_1 = require("@radix-ui/react-slot");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const
|
|
9
|
+
const text_1 = require("../text/index.cjs");
|
|
10
|
+
const icon_1 = require("../icon/index.cjs");
|
|
10
11
|
const tw_merge_1 = require("../../utils/tw-merge.cjs");
|
|
11
12
|
const ButtonBase_constants_1 = require("./ButtonBase.constants.cjs");
|
|
12
13
|
const ButtonBase_types_1 = require("./ButtonBase.types.cjs");
|
|
13
|
-
exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = ButtonBase_types_1.ButtonBaseSize.
|
|
14
|
+
exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = ButtonBase_types_1.ButtonBaseSize.Lg, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, ...props }, ref) => {
|
|
14
15
|
const Component = asChild ? react_slot_1.Slot : 'button';
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const isInteractive = !(isDisabled ?? isLoading);
|
|
17
|
+
const renderLoadingState = () => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
18
|
+
react_1.default.createElement("span", { className: "absolute inline-flex items-center" },
|
|
19
|
+
react_1.default.createElement(icon_1.Icon, { name: icon_1.IconName.Loading, size: icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('animate-spin mr-2 text-inherit', loadingIconProps?.className), ...loadingIconProps }),
|
|
20
|
+
loadingText),
|
|
21
|
+
react_1.default.createElement("span", { className: "invisible inline-flex items-center" }, children)));
|
|
18
22
|
const renderStartContent = () => {
|
|
19
23
|
if (startIconName) {
|
|
20
|
-
return (react_1.default.createElement(
|
|
24
|
+
return (react_1.default.createElement(icon_1.Icon, { name: startIconName, size: icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('mr-2 text-inherit', startIconProps?.className), ...startIconProps }));
|
|
21
25
|
}
|
|
22
26
|
if (startAccessory) {
|
|
23
27
|
return react_1.default.createElement("span", { className: "mr-2" }, startAccessory);
|
|
@@ -26,7 +30,7 @@ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = B
|
|
|
26
30
|
};
|
|
27
31
|
const renderEndContent = () => {
|
|
28
32
|
if (endIconName) {
|
|
29
|
-
return (react_1.default.createElement(
|
|
33
|
+
return (react_1.default.createElement(icon_1.Icon, { name: endIconName, size: icon_1.IconSize.Sm, className: (0, tw_merge_1.twMerge)('ml-2 text-inherit', endIconProps?.className), ...endIconProps }));
|
|
30
34
|
}
|
|
31
35
|
if (endAccessory) {
|
|
32
36
|
return react_1.default.createElement("span", { className: "ml-2" }, endAccessory);
|
|
@@ -35,7 +39,7 @@ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = B
|
|
|
35
39
|
};
|
|
36
40
|
const renderContent = () => {
|
|
37
41
|
if (children && typeof children === 'string') {
|
|
38
|
-
return (react_1.default.createElement(
|
|
42
|
+
return (react_1.default.createElement(text_1.Text, { fontWeight: text_1.FontWeight.Medium, color: text_1.TextColor.Inherit, asChild: true, ...textProps },
|
|
39
43
|
react_1.default.createElement("span", null, children)));
|
|
40
44
|
}
|
|
41
45
|
return children;
|
|
@@ -43,15 +47,25 @@ exports.ButtonBase = react_1.default.forwardRef(({ children, className, size = B
|
|
|
43
47
|
const mergedClassName = (0, tw_merge_1.twMerge)(
|
|
44
48
|
// Base styles
|
|
45
49
|
'inline-flex items-center justify-center', 'rounded-full px-4', 'text-default font-medium', 'bg-muted',
|
|
50
|
+
// Add relative positioning for loading state
|
|
51
|
+
'relative',
|
|
46
52
|
// Size
|
|
47
53
|
ButtonBase_constants_1.BUTTON_BASE_SIZE_CLASS_MAP[size],
|
|
48
54
|
// Full width
|
|
49
55
|
isFullWidth && 'w-full',
|
|
56
|
+
// Animation classes - only applied when interactive
|
|
57
|
+
isInteractive && [
|
|
58
|
+
'transition-[transform,colors,opacity]',
|
|
59
|
+
'duration-100',
|
|
60
|
+
'ease-linear',
|
|
61
|
+
'active:scale-[0.97]',
|
|
62
|
+
'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',
|
|
63
|
+
],
|
|
50
64
|
// Disabled state - apply to both isDisabled and isLoading
|
|
51
|
-
(isDisabled || isLoading) && '
|
|
65
|
+
(isDisabled || isLoading) && 'cursor-not-allowed', isDisabled && 'opacity-50',
|
|
52
66
|
// Custom classes
|
|
53
67
|
className);
|
|
54
|
-
return (react_1.default.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : isDisabled ?? isLoading, style: style, ...props },
|
|
68
|
+
return (react_1.default.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : (isDisabled ?? isLoading), style: style, ...props },
|
|
55
69
|
renderStartContent(),
|
|
56
70
|
react_1.default.createElement(react_slot_1.Slottable, null, isLoading ? renderLoadingState() : renderContent()),
|
|
57
71
|
renderEndContent()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":";;;;;;AAAA,qDAAuD;AACvD,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { Text, FontWeight, TextColor } from '../text';\nimport { Icon, IconName, IconSize } from '../icon';\nimport { twMerge } from '../../utils/tw-merge';\nimport { BUTTON_BASE_SIZE_CLASS_MAP } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\nimport { ButtonBaseSize } from './ButtonBase.types';\n\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Lg,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n const renderLoadingState = () => (\n <>\n <span className=\"absolute inline-flex items-center\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'animate-spin mr-2 text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n {loadingText}\n </span>\n <span className=\"invisible inline-flex items-center\">{children}</span>\n </>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge('mr-2 text-inherit', startIconProps?.className)}\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span className=\"mr-2\">{startAccessory}</span>;\n }\n return null;\n };\n\n const renderEndContent = () => {\n if (endIconName) {\n return (\n <Icon\n name={endIconName}\n size={IconSize.Sm}\n className={twMerge('ml-2 text-inherit', endIconProps?.className)}\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span className=\"ml-2\">{endAccessory}</span>;\n }\n return null;\n };\n\n const renderContent = () => {\n if (children && typeof children === 'string') {\n return (\n <Text\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...textProps}\n >\n <span>{children}</span>\n </Text>\n );\n }\n return children;\n };\n\n const mergedClassName = twMerge(\n // Base styles\n 'inline-flex items-center justify-center',\n 'rounded-full px-4',\n 'text-default font-medium',\n 'bg-muted',\n // Add relative positioning for loading state\n 'relative',\n // Size\n BUTTON_BASE_SIZE_CLASS_MAP[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-[transform,colors,opacity]',\n 'duration-100',\n 'ease-linear',\n 'active:scale-[0.97]',\n 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',\n ],\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'cursor-not-allowed',\n isDisabled && 'opacity-50',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : (isDisabled ?? isLoading)}\n style={style}\n {...props}\n >\n {renderStartContent()}\n <Slottable>\n {isLoading ? renderLoadingState() : renderContent()}\n </Slottable>\n {renderEndContent()}\n </Component>\n );\n },\n);\n\nButtonBase.displayName = 'ButtonBase';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;
|
|
1
|
+
{"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAM1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGA0ItB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;
|
|
1
|
+
{"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAM1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGA0ItB,CAAC"}
|
|
@@ -7,15 +7,19 @@ function $importDefault(module) {
|
|
|
7
7
|
import { Slot, Slottable } from "@radix-ui/react-slot";
|
|
8
8
|
import $React from "react";
|
|
9
9
|
const React = $importDefault($React);
|
|
10
|
-
import {
|
|
10
|
+
import { Text, FontWeight, TextColor } from "../text/index.mjs";
|
|
11
|
+
import { Icon, IconName, IconSize } from "../icon/index.mjs";
|
|
11
12
|
import { twMerge } from "../../utils/tw-merge.mjs";
|
|
12
13
|
import { BUTTON_BASE_SIZE_CLASS_MAP } from "./ButtonBase.constants.mjs";
|
|
13
14
|
import { ButtonBaseSize } from "./ButtonBase.types.mjs";
|
|
14
|
-
export const ButtonBase = React.forwardRef(({ children, className, size = ButtonBaseSize.
|
|
15
|
+
export const ButtonBase = React.forwardRef(({ children, className, size = ButtonBaseSize.Lg, isFullWidth, asChild, isDisabled, isLoading, loadingText, loadingIconProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, textProps, style, ...props }, ref) => {
|
|
15
16
|
const Component = asChild ? Slot : 'button';
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const isInteractive = !(isDisabled ?? isLoading);
|
|
18
|
+
const renderLoadingState = () => (React.createElement(React.Fragment, null,
|
|
19
|
+
React.createElement("span", { className: "absolute inline-flex items-center" },
|
|
20
|
+
React.createElement(Icon, { name: IconName.Loading, size: IconSize.Sm, className: twMerge('animate-spin mr-2 text-inherit', loadingIconProps?.className), ...loadingIconProps }),
|
|
21
|
+
loadingText),
|
|
22
|
+
React.createElement("span", { className: "invisible inline-flex items-center" }, children)));
|
|
19
23
|
const renderStartContent = () => {
|
|
20
24
|
if (startIconName) {
|
|
21
25
|
return (React.createElement(Icon, { name: startIconName, size: IconSize.Sm, className: twMerge('mr-2 text-inherit', startIconProps?.className), ...startIconProps }));
|
|
@@ -36,7 +40,7 @@ export const ButtonBase = React.forwardRef(({ children, className, size = Button
|
|
|
36
40
|
};
|
|
37
41
|
const renderContent = () => {
|
|
38
42
|
if (children && typeof children === 'string') {
|
|
39
|
-
return (React.createElement(Text, { color: TextColor.Inherit, asChild: true, ...textProps },
|
|
43
|
+
return (React.createElement(Text, { fontWeight: FontWeight.Medium, color: TextColor.Inherit, asChild: true, ...textProps },
|
|
40
44
|
React.createElement("span", null, children)));
|
|
41
45
|
}
|
|
42
46
|
return children;
|
|
@@ -44,15 +48,25 @@ export const ButtonBase = React.forwardRef(({ children, className, size = Button
|
|
|
44
48
|
const mergedClassName = twMerge(
|
|
45
49
|
// Base styles
|
|
46
50
|
'inline-flex items-center justify-center', 'rounded-full px-4', 'text-default font-medium', 'bg-muted',
|
|
51
|
+
// Add relative positioning for loading state
|
|
52
|
+
'relative',
|
|
47
53
|
// Size
|
|
48
54
|
BUTTON_BASE_SIZE_CLASS_MAP[size],
|
|
49
55
|
// Full width
|
|
50
56
|
isFullWidth && 'w-full',
|
|
57
|
+
// Animation classes - only applied when interactive
|
|
58
|
+
isInteractive && [
|
|
59
|
+
'transition-[transform,colors,opacity]',
|
|
60
|
+
'duration-100',
|
|
61
|
+
'ease-linear',
|
|
62
|
+
'active:scale-[0.97]',
|
|
63
|
+
'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',
|
|
64
|
+
],
|
|
51
65
|
// Disabled state - apply to both isDisabled and isLoading
|
|
52
|
-
(isDisabled || isLoading) && '
|
|
66
|
+
(isDisabled || isLoading) && 'cursor-not-allowed', isDisabled && 'opacity-50',
|
|
53
67
|
// Custom classes
|
|
54
68
|
className);
|
|
55
|
-
return (React.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : isDisabled ?? isLoading, style: style, ...props },
|
|
69
|
+
return (React.createElement(Component, { ref: ref, className: mergedClassName, disabled: asChild ? undefined : (isDisabled ?? isLoading), style: style, ...props },
|
|
56
70
|
renderStartContent(),
|
|
57
71
|
React.createElement(Slottable, null, isLoading ? renderLoadingState() : renderContent()),
|
|
58
72
|
renderEndContent()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,6BAA6B;AACvD,OAAO,MAAK,cAAc;;AAE1B,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { Text, FontWeight, TextColor } from '../text';\nimport { Icon, IconName, IconSize } from '../icon';\nimport { twMerge } from '../../utils/tw-merge';\nimport { BUTTON_BASE_SIZE_CLASS_MAP } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\nimport { ButtonBaseSize } from './ButtonBase.types';\n\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, ButtonBaseProps>(\n (\n {\n children,\n className,\n size = ButtonBaseSize.Lg,\n isFullWidth,\n asChild,\n isDisabled,\n isLoading,\n loadingText,\n loadingIconProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n textProps,\n style,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : 'button';\n const isInteractive = !(isDisabled ?? isLoading);\n\n const renderLoadingState = () => (\n <>\n <span className=\"absolute inline-flex items-center\">\n <Icon\n name={IconName.Loading}\n size={IconSize.Sm}\n className={twMerge(\n 'animate-spin mr-2 text-inherit',\n loadingIconProps?.className,\n )}\n {...loadingIconProps}\n />\n {loadingText}\n </span>\n <span className=\"invisible inline-flex items-center\">{children}</span>\n </>\n );\n\n const renderStartContent = () => {\n if (startIconName) {\n return (\n <Icon\n name={startIconName}\n size={IconSize.Sm}\n className={twMerge('mr-2 text-inherit', startIconProps?.className)}\n {...startIconProps}\n />\n );\n }\n if (startAccessory) {\n return <span className=\"mr-2\">{startAccessory}</span>;\n }\n return null;\n };\n\n const renderEndContent = () => {\n if (endIconName) {\n return (\n <Icon\n name={endIconName}\n size={IconSize.Sm}\n className={twMerge('ml-2 text-inherit', endIconProps?.className)}\n {...endIconProps}\n />\n );\n }\n if (endAccessory) {\n return <span className=\"ml-2\">{endAccessory}</span>;\n }\n return null;\n };\n\n const renderContent = () => {\n if (children && typeof children === 'string') {\n return (\n <Text\n fontWeight={FontWeight.Medium}\n color={TextColor.Inherit}\n asChild\n {...textProps}\n >\n <span>{children}</span>\n </Text>\n );\n }\n return children;\n };\n\n const mergedClassName = twMerge(\n // Base styles\n 'inline-flex items-center justify-center',\n 'rounded-full px-4',\n 'text-default font-medium',\n 'bg-muted',\n // Add relative positioning for loading state\n 'relative',\n // Size\n BUTTON_BASE_SIZE_CLASS_MAP[size],\n // Full width\n isFullWidth && 'w-full',\n // Animation classes - only applied when interactive\n isInteractive && [\n 'transition-[transform,colors,opacity]',\n 'duration-100',\n 'ease-linear',\n 'active:scale-[0.97]',\n 'active:ease-[cubic-bezier(0.3,0.8,0.3,1)]',\n ],\n // Disabled state - apply to both isDisabled and isLoading\n (isDisabled || isLoading) && 'cursor-not-allowed',\n isDisabled && 'opacity-50',\n // Custom classes\n className,\n );\n\n return (\n <Component\n ref={ref}\n className={mergedClassName}\n disabled={asChild ? undefined : (isDisabled ?? isLoading)}\n style={style}\n {...props}\n >\n {renderStartContent()}\n <Slottable>\n {isLoading ? renderLoadingState() : renderContent()}\n </Slottable>\n {renderEndContent()}\n </Component>\n );\n },\n);\n\nButtonBase.displayName = 'ButtonBase';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonBase.types.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,8BAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.
|
|
1
|
+
{"version":3,"file":"ButtonBase.types.cjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,8BAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.Lg\n */\n size?: ButtonBaseSize;\n /**\n * Optional props to be passed to the Text component when children is a string\n */\n textProps?: Partial<TextProps>;\n /**\n * Optional prop that when true, makes the button take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n /**\n * Optional boolean that determines if the component should merge its props onto its immediate child\n * instead of rendering a button element\n * @default false\n */\n asChild?: boolean;\n /**\n * Optional prop that when true, shows a loading spinner\n * @default false\n */\n isLoading?: boolean;\n /**\n * Optional prop for text to display when button is in loading state\n */\n loadingText?: string;\n /**\n * Optional prop to specify an icon to show at the start of the button\n */\n startIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the start icon\n */\n startIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the start of the button\n */\n startAccessory?: React.ReactNode;\n /**\n * Optional prop to specify an icon to show at the end of the button\n */\n endIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the end icon\n */\n endIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the end of the button\n */\n endAccessory?: React.ReactNode;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop to pass additional properties to the loading icon\n */\n loadingIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonBase.types.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.
|
|
1
|
+
{"version":3,"file":"ButtonBase.types.mjs","sourceRoot":"","sources":["../../../src/components/button-base/ButtonBase.types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport type { MakePropsOptional } from '../../types/make-props-optional';\nimport type { IconName, IconProps } from '../icon';\nimport type { TextProps } from '../text';\n\nexport enum ButtonBaseSize {\n /**\n * Represents a small button size (32px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (40px).\n */\n Md = 'md',\n /**\n * Represents a large button size (48px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonBaseProps = ComponentProps<'button'> & {\n /**\n * Required prop for the content to be rendered within the ButtonBase\n */\n children: React.ReactNode;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonBase component.\n * These classes will be merged with the component's default classes using twMerge.\n */\n className?: string;\n /**\n * Optional prop to control the size of the ButtonBase\n * @default ButtonBaseSize.Lg\n */\n size?: ButtonBaseSize;\n /**\n * Optional props to be passed to the Text component when children is a string\n */\n textProps?: Partial<TextProps>;\n /**\n * Optional prop that when true, makes the button take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n /**\n * Optional boolean that determines if the component should merge its props onto its immediate child\n * instead of rendering a button element\n * @default false\n */\n asChild?: boolean;\n /**\n * Optional prop that when true, shows a loading spinner\n * @default false\n */\n isLoading?: boolean;\n /**\n * Optional prop for text to display when button is in loading state\n */\n loadingText?: string;\n /**\n * Optional prop to specify an icon to show at the start of the button\n */\n startIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the start icon\n */\n startIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the start of the button\n */\n startAccessory?: React.ReactNode;\n /**\n * Optional prop to specify an icon to show at the end of the button\n */\n endIconName?: IconName;\n /**\n * Optional prop to pass additional properties to the end icon\n */\n endIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional prop for a custom element to show at the end of the button\n */\n endAccessory?: React.ReactNode;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop to pass additional properties to the loading icon\n */\n loadingIconProps?: MakePropsOptional<IconProps>;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ButtonIcon = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const tw_merge_1 = require("../../utils/tw-merge.cjs");
|
|
9
|
+
const button_base_1 = require("../button-base/index.cjs");
|
|
10
|
+
const icon_1 = require("../icon/index.cjs");
|
|
11
|
+
const ButtonIcon_constants_1 = require("./ButtonIcon.constants.cjs");
|
|
12
|
+
const ButtonIcon_types_1 = require("./ButtonIcon.types.cjs");
|
|
13
|
+
exports.ButtonIcon = react_1.default.forwardRef(({ className, iconName, iconProps, ariaLabel, isDisabled = false, isInverse = false, isFloating = false, size = ButtonIcon_types_1.ButtonIconSize.Md, style, ...props }, ref) => {
|
|
14
|
+
const isInteractive = !isDisabled;
|
|
15
|
+
const mergedClassName = (0, tw_merge_1.twMerge)(
|
|
16
|
+
// Base styles
|
|
17
|
+
'p-0',
|
|
18
|
+
// Size styles
|
|
19
|
+
ButtonIcon_constants_1.BUTTON_ICON_SIZE_CLASS_MAP[size],
|
|
20
|
+
// Floating styles
|
|
21
|
+
isFloating && [
|
|
22
|
+
'rounded-full',
|
|
23
|
+
!isInverse && 'bg-icon-default text-background-default',
|
|
24
|
+
isInverse && 'bg-icon-default text-background-default',
|
|
25
|
+
],
|
|
26
|
+
// Non-floating styles
|
|
27
|
+
!isFloating && [
|
|
28
|
+
'rounded bg-transparent ',
|
|
29
|
+
// Only apply hover/active styles when interactive
|
|
30
|
+
isInteractive && 'hover:bg-hover active:bg-pressed',
|
|
31
|
+
!isInverse && 'text-icon-default',
|
|
32
|
+
isInverse && 'text-background-default',
|
|
33
|
+
], className);
|
|
34
|
+
return (react_1.default.createElement(button_base_1.ButtonBase, { ref: ref, className: mergedClassName, isDisabled: isDisabled, "aria-label": ariaLabel, ...props },
|
|
35
|
+
react_1.default.createElement(icon_1.Icon, { name: iconName, size: ButtonIcon_constants_1.BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP[size], className: (0, tw_merge_1.twMerge)('text-inherit', iconProps?.className), ...iconProps })));
|
|
36
|
+
});
|
|
37
|
+
exports.ButtonIcon.displayName = 'ButtonIcon';
|
|
38
|
+
//# sourceMappingURL=ButtonIcon.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.cjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uDAA+C;AAC/C,0DAA4C;AAC5C,4CAA+B;AAC/B,qEAGgC;AAEhC,6DAAoD;AAEvC,QAAA,UAAU,GAAG,eAAK,CAAC,UAAU,CACxC,CACE,EACE,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,iCAAc,CAAC,EAAE,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC;IAElC,MAAM,eAAe,GAAG,IAAA,kBAAO;IAC7B,cAAc;IACd,KAAK;IACL,cAAc;IACd,iDAA0B,CAAC,IAAI,CAAC;IAChC,kBAAkB;IAClB,UAAU,IAAI;QACZ,cAAc;QACd,CAAC,SAAS,IAAI,yCAAyC;QACvD,SAAS,IAAI,yCAAyC;KACvD;IACD,sBAAsB;IACtB,CAAC,UAAU,IAAI;QACb,yBAAyB;QACzB,kDAAkD;QAClD,aAAa,IAAI,kCAAkC;QACnD,CAAC,SAAS,IAAI,mBAAmB;QACjC,SAAS,IAAI,yBAAyB;KACvC,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,wBAAU,IACT,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,UAAU,gBACV,SAAS,KACjB,KAAK;QAET,8BAAC,WAAI,IACH,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,8DAAuC,CAAC,IAAI,CAAC,EACnD,SAAS,EAAE,IAAA,kBAAO,EAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,KACpD,SAAS,GACb,CACS,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAU,CAAC,WAAW,GAAG,YAAY,CAAC","sourcesContent":["import React from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { ButtonBase } from '../button-base';\nimport { Icon } from '../icon';\nimport {\n BUTTON_ICON_SIZE_CLASS_MAP,\n BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP,\n} from './ButtonIcon.constants';\nimport type { ButtonIconProps } from './ButtonIcon.types';\nimport { ButtonIconSize } from './ButtonIcon.types';\n\nexport const ButtonIcon = React.forwardRef<HTMLButtonElement, ButtonIconProps>(\n (\n {\n className,\n iconName,\n iconProps,\n ariaLabel,\n isDisabled = false,\n isInverse = false,\n isFloating = false,\n size = ButtonIconSize.Md,\n style,\n ...props\n },\n ref,\n ) => {\n const isInteractive = !isDisabled;\n\n const mergedClassName = twMerge(\n // Base styles\n 'p-0',\n // Size styles\n BUTTON_ICON_SIZE_CLASS_MAP[size],\n // Floating styles\n isFloating && [\n 'rounded-full',\n !isInverse && 'bg-icon-default text-background-default',\n isInverse && 'bg-icon-default text-background-default',\n ],\n // Non-floating styles\n !isFloating && [\n 'rounded bg-transparent ',\n // Only apply hover/active styles when interactive\n isInteractive && 'hover:bg-hover active:bg-pressed',\n !isInverse && 'text-icon-default',\n isInverse && 'text-background-default',\n ],\n className,\n );\n\n return (\n <ButtonBase\n ref={ref}\n className={mergedClassName}\n isDisabled={isDisabled}\n aria-label={ariaLabel}\n {...props}\n >\n <Icon\n name={iconName}\n size={BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP[size]}\n className={twMerge('text-inherit', iconProps?.className)}\n {...iconProps}\n />\n </ButtonBase>\n );\n },\n);\n\nButtonIcon.displayName = 'ButtonIcon';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = exports.BUTTON_ICON_SIZE_CLASS_MAP = void 0;
|
|
4
|
+
const icon_1 = require("../icon/index.cjs");
|
|
5
|
+
const ButtonIcon_types_1 = require("./ButtonIcon.types.cjs");
|
|
6
|
+
exports.BUTTON_ICON_SIZE_CLASS_MAP = {
|
|
7
|
+
[ButtonIcon_types_1.ButtonIconSize.Sm]: 'h-6 w-6',
|
|
8
|
+
[ButtonIcon_types_1.ButtonIconSize.Md]: 'h-8 w-8',
|
|
9
|
+
[ButtonIcon_types_1.ButtonIconSize.Lg]: 'h-10 w-10',
|
|
10
|
+
};
|
|
11
|
+
exports.BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = {
|
|
12
|
+
[ButtonIcon_types_1.ButtonIconSize.Sm]: icon_1.IconSize.Sm,
|
|
13
|
+
[ButtonIcon_types_1.ButtonIconSize.Md]: icon_1.IconSize.Md,
|
|
14
|
+
[ButtonIcon_types_1.ButtonIconSize.Lg]: icon_1.IconSize.Lg,
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=ButtonIcon.constants.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.constants.cjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":";;;AAAA,4CAAmC;AACnC,6DAAoD;AAEvC,QAAA,0BAA0B,GAAG;IACxC,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,SAAS;IAC9B,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,SAAS;IAC9B,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,WAAW;CACxB,CAAC;AAEE,QAAA,uCAAuC,GAAG;IACrD,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,eAAQ,CAAC,EAAE;IAChC,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,eAAQ,CAAC,EAAE;IAChC,CAAC,iCAAc,CAAC,EAAE,CAAC,EAAE,eAAQ,CAAC,EAAE;CACxB,CAAC","sourcesContent":["import { IconSize } from '../icon';\nimport { ButtonIconSize } from './ButtonIcon.types';\n\nexport const BUTTON_ICON_SIZE_CLASS_MAP = {\n [ButtonIconSize.Sm]: 'h-6 w-6',\n [ButtonIconSize.Md]: 'h-8 w-8',\n [ButtonIconSize.Lg]: 'h-10 w-10',\n} as const;\n\nexport const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = {\n [ButtonIconSize.Sm]: IconSize.Sm,\n [ButtonIconSize.Md]: IconSize.Md,\n [ButtonIconSize.Lg]: IconSize.Lg,\n} as const;\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IconSize } from "../icon/index.cjs";
|
|
2
|
+
export declare const BUTTON_ICON_SIZE_CLASS_MAP: {
|
|
3
|
+
readonly sm: "h-6 w-6";
|
|
4
|
+
readonly md: "h-8 w-8";
|
|
5
|
+
readonly lg: "h-10 w-10";
|
|
6
|
+
};
|
|
7
|
+
export declare const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP: {
|
|
8
|
+
readonly sm: IconSize.Sm;
|
|
9
|
+
readonly md: IconSize.Md;
|
|
10
|
+
readonly lg: IconSize.Lg;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=ButtonIcon.constants.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.constants.d.cts","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,0BAAgB;AAGnC,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,uCAAuC;;;;CAI1C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IconSize } from "../icon/index.mjs";
|
|
2
|
+
export declare const BUTTON_ICON_SIZE_CLASS_MAP: {
|
|
3
|
+
readonly sm: "h-6 w-6";
|
|
4
|
+
readonly md: "h-8 w-8";
|
|
5
|
+
readonly lg: "h-10 w-10";
|
|
6
|
+
};
|
|
7
|
+
export declare const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP: {
|
|
8
|
+
readonly sm: IconSize.Sm;
|
|
9
|
+
readonly md: IconSize.Md;
|
|
10
|
+
readonly lg: IconSize.Lg;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=ButtonIcon.constants.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.constants.d.mts","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,0BAAgB;AAGnC,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,uCAAuC;;;;CAI1C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IconSize } from "../icon/index.mjs";
|
|
2
|
+
import { ButtonIconSize } from "./ButtonIcon.types.mjs";
|
|
3
|
+
export const BUTTON_ICON_SIZE_CLASS_MAP = {
|
|
4
|
+
[ButtonIconSize.Sm]: 'h-6 w-6',
|
|
5
|
+
[ButtonIconSize.Md]: 'h-8 w-8',
|
|
6
|
+
[ButtonIconSize.Lg]: 'h-10 w-10',
|
|
7
|
+
};
|
|
8
|
+
export const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = {
|
|
9
|
+
[ButtonIconSize.Sm]: IconSize.Sm,
|
|
10
|
+
[ButtonIconSize.Md]: IconSize.Md,
|
|
11
|
+
[ButtonIconSize.Lg]: IconSize.Lg,
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ButtonIcon.constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.constants.mjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,0BAAgB;AACnC,OAAO,EAAE,cAAc,EAAE,+BAA2B;AAEpD,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS;IAC9B,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS;IAC9B,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACrD,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;IAChC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;IAChC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE;CACxB,CAAC","sourcesContent":["import { IconSize } from '../icon';\nimport { ButtonIconSize } from './ButtonIcon.types';\n\nexport const BUTTON_ICON_SIZE_CLASS_MAP = {\n [ButtonIconSize.Sm]: 'h-6 w-6',\n [ButtonIconSize.Md]: 'h-8 w-8',\n [ButtonIconSize.Lg]: 'h-10 w-10',\n} as const;\n\nexport const BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP = {\n [ButtonIconSize.Sm]: IconSize.Sm,\n [ButtonIconSize.Md]: IconSize.Md,\n [ButtonIconSize.Lg]: IconSize.Lg,\n} as const;\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ButtonIconProps } from "./ButtonIcon.types.cjs";
|
|
3
|
+
export declare const ButtonIcon: React.ForwardRefExoticComponent<Omit<ButtonIconProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
4
|
+
//# sourceMappingURL=ButtonIcon.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.d.cts","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc;AAS1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGAyDtB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ButtonIconProps } from "./ButtonIcon.types.mjs";
|
|
3
|
+
export declare const ButtonIcon: React.ForwardRefExoticComponent<Omit<ButtonIconProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
4
|
+
//# sourceMappingURL=ButtonIcon.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.d.mts","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc;AAS1B,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAG1D,eAAO,MAAM,UAAU,wGAyDtB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
function $importDefault(module) {
|
|
2
|
+
if (module?.__esModule) {
|
|
3
|
+
return module.default;
|
|
4
|
+
}
|
|
5
|
+
return module;
|
|
6
|
+
}
|
|
7
|
+
import $React from "react";
|
|
8
|
+
const React = $importDefault($React);
|
|
9
|
+
import { twMerge } from "../../utils/tw-merge.mjs";
|
|
10
|
+
import { ButtonBase } from "../button-base/index.mjs";
|
|
11
|
+
import { Icon } from "../icon/index.mjs";
|
|
12
|
+
import { BUTTON_ICON_SIZE_CLASS_MAP, BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP } from "./ButtonIcon.constants.mjs";
|
|
13
|
+
import { ButtonIconSize } from "./ButtonIcon.types.mjs";
|
|
14
|
+
export const ButtonIcon = React.forwardRef(({ className, iconName, iconProps, ariaLabel, isDisabled = false, isInverse = false, isFloating = false, size = ButtonIconSize.Md, style, ...props }, ref) => {
|
|
15
|
+
const isInteractive = !isDisabled;
|
|
16
|
+
const mergedClassName = twMerge(
|
|
17
|
+
// Base styles
|
|
18
|
+
'p-0',
|
|
19
|
+
// Size styles
|
|
20
|
+
BUTTON_ICON_SIZE_CLASS_MAP[size],
|
|
21
|
+
// Floating styles
|
|
22
|
+
isFloating && [
|
|
23
|
+
'rounded-full',
|
|
24
|
+
!isInverse && 'bg-icon-default text-background-default',
|
|
25
|
+
isInverse && 'bg-icon-default text-background-default',
|
|
26
|
+
],
|
|
27
|
+
// Non-floating styles
|
|
28
|
+
!isFloating && [
|
|
29
|
+
'rounded bg-transparent ',
|
|
30
|
+
// Only apply hover/active styles when interactive
|
|
31
|
+
isInteractive && 'hover:bg-hover active:bg-pressed',
|
|
32
|
+
!isInverse && 'text-icon-default',
|
|
33
|
+
isInverse && 'text-background-default',
|
|
34
|
+
], className);
|
|
35
|
+
return (React.createElement(ButtonBase, { ref: ref, className: mergedClassName, isDisabled: isDisabled, "aria-label": ariaLabel, ...props },
|
|
36
|
+
React.createElement(Icon, { name: iconName, size: BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP[size], className: twMerge('text-inherit', iconProps?.className), ...iconProps })));
|
|
37
|
+
});
|
|
38
|
+
ButtonIcon.displayName = 'ButtonIcon';
|
|
39
|
+
//# sourceMappingURL=ButtonIcon.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.mjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAK,cAAc;;AAE1B,OAAO,EAAE,OAAO,EAAE,iCAA6B;AAC/C,OAAO,EAAE,UAAU,EAAE,iCAAuB;AAC5C,OAAO,EAAE,IAAI,EAAE,0BAAgB;AAC/B,OAAO,EACL,0BAA0B,EAC1B,uCAAuC,EACxC,mCAA+B;AAEhC,OAAO,EAAE,cAAc,EAAE,+BAA2B;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACxC,CACE,EACE,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,cAAc,CAAC,EAAE,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC;IAElC,MAAM,eAAe,GAAG,OAAO;IAC7B,cAAc;IACd,KAAK;IACL,cAAc;IACd,0BAA0B,CAAC,IAAI,CAAC;IAChC,kBAAkB;IAClB,UAAU,IAAI;QACZ,cAAc;QACd,CAAC,SAAS,IAAI,yCAAyC;QACvD,SAAS,IAAI,yCAAyC;KACvD;IACD,sBAAsB;IACtB,CAAC,UAAU,IAAI;QACb,yBAAyB;QACzB,kDAAkD;QAClD,aAAa,IAAI,kCAAkC;QACnD,CAAC,SAAS,IAAI,mBAAmB;QACjC,SAAS,IAAI,yBAAyB;KACvC,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,oBAAC,UAAU,IACT,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,UAAU,gBACV,SAAS,KACjB,KAAK;QAET,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,uCAAuC,CAAC,IAAI,CAAC,EACnD,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,KACpD,SAAS,GACb,CACS,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC","sourcesContent":["import React from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { ButtonBase } from '../button-base';\nimport { Icon } from '../icon';\nimport {\n BUTTON_ICON_SIZE_CLASS_MAP,\n BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP,\n} from './ButtonIcon.constants';\nimport type { ButtonIconProps } from './ButtonIcon.types';\nimport { ButtonIconSize } from './ButtonIcon.types';\n\nexport const ButtonIcon = React.forwardRef<HTMLButtonElement, ButtonIconProps>(\n (\n {\n className,\n iconName,\n iconProps,\n ariaLabel,\n isDisabled = false,\n isInverse = false,\n isFloating = false,\n size = ButtonIconSize.Md,\n style,\n ...props\n },\n ref,\n ) => {\n const isInteractive = !isDisabled;\n\n const mergedClassName = twMerge(\n // Base styles\n 'p-0',\n // Size styles\n BUTTON_ICON_SIZE_CLASS_MAP[size],\n // Floating styles\n isFloating && [\n 'rounded-full',\n !isInverse && 'bg-icon-default text-background-default',\n isInverse && 'bg-icon-default text-background-default',\n ],\n // Non-floating styles\n !isFloating && [\n 'rounded bg-transparent ',\n // Only apply hover/active styles when interactive\n isInteractive && 'hover:bg-hover active:bg-pressed',\n !isInverse && 'text-icon-default',\n isInverse && 'text-background-default',\n ],\n className,\n );\n\n return (\n <ButtonBase\n ref={ref}\n className={mergedClassName}\n isDisabled={isDisabled}\n aria-label={ariaLabel}\n {...props}\n >\n <Icon\n name={iconName}\n size={BUTTON_ICON_SIZE_TO_ICON_SIZE_CLASS_MAP[size]}\n className={twMerge('text-inherit', iconProps?.className)}\n {...iconProps}\n />\n </ButtonBase>\n );\n },\n);\n\nButtonIcon.displayName = 'ButtonIcon';\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ButtonIconSize = void 0;
|
|
4
|
+
var ButtonIconSize;
|
|
5
|
+
(function (ButtonIconSize) {
|
|
6
|
+
/**
|
|
7
|
+
* Represents a small button size (24px).
|
|
8
|
+
*/
|
|
9
|
+
ButtonIconSize["Sm"] = "sm";
|
|
10
|
+
/**
|
|
11
|
+
* Represents a medium button size (32px).
|
|
12
|
+
*/
|
|
13
|
+
ButtonIconSize["Md"] = "md";
|
|
14
|
+
/**
|
|
15
|
+
* Represents a large button size (40px).
|
|
16
|
+
*/
|
|
17
|
+
ButtonIconSize["Lg"] = "lg";
|
|
18
|
+
})(ButtonIconSize || (exports.ButtonIconSize = ButtonIconSize = {}));
|
|
19
|
+
//# sourceMappingURL=ButtonIcon.types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonIcon.types.cjs","sourceRoot":"","sources":["../../../src/components/button-icon/ButtonIcon.types.ts"],"names":[],"mappings":";;;AAGA,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;IACT;;OAEG;IACH,2BAAS,CAAA;AACX,CAAC,EAbW,cAAc,8BAAd,cAAc,QAazB","sourcesContent":["import type { ButtonBaseProps } from '../button-base';\nimport type { IconName, IconProps } from '../icon';\n\nexport enum ButtonIconSize {\n /**\n * Represents a small button size (24px).\n */\n Sm = 'sm',\n /**\n * Represents a medium button size (32px).\n */\n Md = 'md',\n /**\n * Represents a large button size (40px).\n */\n Lg = 'lg',\n}\n\nexport type ButtonIconProps = Omit<\n ButtonBaseProps,\n // We handle these props in ButtonIcon\n | 'className'\n | 'isDisabled'\n | 'isLoading'\n | 'style'\n | 'children'\n | 'size'\n | 'aria-label'\n> & {\n /**\n * Required prop to specify the icon to show\n */\n iconName: IconName;\n /**\n * Required prop to provide an accessible label for the button\n */\n ariaLabel: string;\n /**\n * Optional prop to pass additional properties to the icon\n */\n iconProps?: Partial<IconProps>;\n /**\n * Optional prop that when true, disables the button\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Optional prop that when true, applies inverse styling to the button\n * @default false\n */\n isInverse?: boolean;\n /**\n * Optional prop that when true, applies floating/contained styling to the button\n * @default false\n */\n isFloating?: boolean;\n /**\n * Optional prop to control the size of the button\n * @default ButtonIconSize.Md\n */\n size?: ButtonIconSize;\n /**\n * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n */\n className?: string;\n /**\n * Optional CSS styles to be applied to the component.\n * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n */\n style?: React.CSSProperties;\n};\n"]}
|