@asphalt-react/button
Version:
Button
60 lines (47 loc) • 32 kB
JavaScript
import React, { forwardRef } from 'react';
import PropTypes from 'prop-types';
import cn from 'classnames';
import { SvgNormalizer } from '@asphalt-react/svg-normalizer';
import { sendStyles } from '@asphalt-react/context';
import { propsUtil, svgUtil } from '@asphalt-react/helper';
import { Qualifier } from '@asphalt-react/qualifier';
function _extends() {
return _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, _extends.apply(null, arguments);
}
const NewTab=()=>React.createElement("svg",{height:"16",width:"16",fill:"none",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg","data-testid":"new-tab-icon"},React.createElement("path",{d:"M2.77772 13.2222L2.77772 2.55556L8.04509 2.55556C8.28084 2.55556 8.50693 2.46191 8.67363 2.29521C9.23116 1.73767 8.84043 0.786085 8.05538 0.777832H1.88889C1.4 0.777832 1 1.17783 1 1.66672V14.1112C1 14.3585 1.10235 14.583 1.26677 14.7446C1.4274 14.9023 1.64727 15 1.88883 15L14.3333 15C14.8222 15 15.2222 14.6 15.2222 14.1111V7.94459C15.2139 7.15956 14.2623 6.76884 13.7048 7.32637C13.5381 7.49307 13.4444 7.71916 13.4444 7.95491V13.2223H2.77778V13.2222H2.77772Z",fill:"currentColor",fillRule:"evenodd"}),React.createElement("path",{d:"M15.1023 0H11.5467C11.0578 0 10.6578 0.39975 10.6578 0.888334C10.6578 1.37692 11.0578 1.77667 11.5467 1.77667H12.9601L10.0356 4.69929C9.87561 4.85919 9.77783 5.08127 9.77783 5.33C9.77783 5.81859 10.1778 6.21834 10.6667 6.21834C10.9156 6.21834 11.1378 6.12062 11.2978 5.96072L14.2223 3.0381V4.45055C14.2223 4.93914 14.6223 5.33889 15.1112 5.33889C15.6001 5.33889 16.0001 4.93914 16.0001 4.45055V0.897217C15.9912 0.39975 15.5912 0 15.1023 0Z",fill:"currentColor",fillRule:"evenodd"}));NewTab.iconName="NewTab";
const svgSize=(sizeObj,size)=>{switch(size){case"xs":return sizeObj.xs;case"s":return sizeObj.sm;case"m":return sizeObj.md;case"l":return sizeObj.lg;default:return sizeObj.md}};const opensInNewTab=target=>target&&!(target==="_self"||target==="_top"||target==="_parent");const getRelAttributes=target=>opensInNewTab(target)?{rel:"noreferrer"}:{};const resolveSizeProp=size=>{const supportedSizes=["xs","s","m","l"];return supportedSizes.includes(size)?size:"m"};
const qualifierSVGSizes={xs:{height:"14",width:"14"},sm:{height:"14",width:"14"},md:{height:"16",width:"16"},lg:{height:"16",width:"16"}};const iconSVGSizes={xs:{height:"14",width:"14"},sm:{height:"16",width:"16"},md:{height:"18",width:"18"},lg:{height:"20",width:"20"}};
function styleInject(css, ref) {
if ( ref === void 0 ) ref = {};
var insertAt = ref.insertAt;
if (!css || typeof document === 'undefined') { return; }
var head = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (insertAt === 'top') {
if (head.firstChild) {
head.insertBefore(style, head.firstChild);
} else {
head.appendChild(style);
}
} else {
head.appendChild(style);
}
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
}
var css_248z = ".Button__yXAkD {\n /** Border properties */\n --focus-appearance: var(--focus-outline, 2px solid);\n --focus-color: var(--interactive-focus, #86afff);\n --focus: var(--focus-appearance) var(--focus-color);\n --button-border-inactive: var(--interactive-default, #cbcfd7);\n --button-border-radius: var(--roundness-action-control, 0.375rem);\n\n display: inline-flex;\n justify-content: center;\n align-items: center;\n white-space: nowrap;\n border: 0px solid transparent;\n border-radius: var(--button-border-radius);\n box-sizing: border-box;\n background: var(--button-surface-color);\n color: var(--button-content-color);\n font: var(--button-font);\n /* WebKit browsers add margin around the buttons, which hinders the use case of grouping the buttons */\n margin: 0;\n}\n\n.Button__yXAkD:focus {\n /* Provide a fallback style for browsers\n that don't support :focus-visible */\n outline: var(--focus);\n}\n\n.Button__yXAkD:focus:not(:focus-visible) {\n /* Remove the focus indicator on mouse-focus for browsers\n that do support :focus-visible */\n outline: none;\n}\n\n.Button__yXAkD:focus-visible {\n outline: var(--focus);\n}\n\n.stretch__3qC8p {\n width: 100%;\n}\n\n/* primary styles */\n.primary__VOpsr {\n --button-content-color: var(--content-on-brand, #ffffff);\n}\n\n.primaryBrand__Krr2l {\n --button-surface-color: var(\n --interactive-surface-brand-primary-default,\n #00aa13\n );\n}\n\n.primaryBrand__Krr2l:hover {\n --button-surface-color: var(\n --interactive-surface-brand-primary-hover,\n #33bb42\n );\n}\n\n.primaryBrand__Krr2l:active {\n --button-surface-color: var(\n --interactive-surface-brand-primary-active,\n #067817\n );\n}\n\n.primaryDanger__NfS2o {\n --button-surface-color: var(\n --interactive-support-danger-primary-default,\n #d83950\n );\n --button-content-color: var(--content-on-support, #ffffff);\n}\n\n.primaryDanger__NfS2o:hover {\n --button-surface-color: var(\n --interactive-support-danger-primary-hover,\n #f05f74\n );\n}\n\n.primaryDanger__NfS2o:active {\n --button-surface-color: var(\n --interactive-support-danger-primary-active,\n #bb1a31\n );\n}\n\n.primarySystem__zsZ-u {\n --button-surface-color: var(\n --interactive-surface-inverse-primary-default,\n #383942\n );\n}\n\n.primarySystem__zsZ-u:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-primary-hover,\n #444651\n );\n}\n\n.primarySystem__zsZ-u:active {\n --button-surface-color: var(\n --interactive-surface-inverse-primary-active,\n #0a0d1d\n );\n}\n\n/* secondary styles */\n.secondary__zealy {\n --button-surface-color: var(--interactive-surface-primary-default, #ffffff);\n border: 2px solid var(--button-border-inactive);\n}\n\n.secondaryBrand__jfdxk {\n --button-content-color: var(--content-brand, #00aa13);\n}\n\n.secondaryBrand__jfdxk:hover {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-hover,\n #eff8f0\n );\n}\n\n.secondaryBrand__jfdxk:active {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-active,\n #bdecc6\n );\n}\n\n.secondaryDanger__-U1QE {\n --button-content-color: var(--content-danger, #bb354e);\n}\n\n.secondaryDanger__-U1QE:hover {\n --button-surface-color: var(\n --interactive-support-danger-secondary-hover,\n #fff1f4\n );\n}\n\n.secondaryDanger__-U1QE:active {\n --button-surface-color: var(\n --interactive-support-danger-secondary-active,\n #ffc6d0\n );\n}\n\n.secondarySystem__PJ4Xx {\n --button-content-color: var(--content-primary, #2d2e34);\n}\n\n.secondarySystem__PJ4Xx:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-hover,\n #e9eef4\n );\n}\n\n.secondarySystem__PJ4Xx:active {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-active,\n #b7c2d2\n );\n}\n\n/* tertiary styles */\n.tertiaryBrand__1-455 {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-default,\n #dff6e0\n );\n --button-content-color: var(--content-brand, #00aa13);\n}\n\n.tertiaryBrand__1-455:hover {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-hover,\n #eff8f0\n );\n}\n\n.tertiaryBrand__1-455:active {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-active,\n #bdecc6\n );\n}\n\n.tertiaryDanger__tqihQ {\n --button-surface-color: var(\n --interactive-support-danger-secondary-default,\n #fee1e7\n );\n --button-content-color: var(--content-danger, #bb354e);\n}\n\n.tertiaryDanger__tqihQ:hover {\n --button-surface-color: var(\n --interactive-support-danger-secondary-hover,\n #fff1f4\n );\n}\n\n.tertiaryDanger__tqihQ:active {\n --button-surface-color: var(\n --interactive-support-danger-secondary-active,\n #ffc6d0\n );\n}\n\n.tertiarySystem__-S7oN {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-default,\n #d9dfe8\n );\n --button-content-color: var(--content-primary, #2d2e34);\n}\n\n.tertiarySystem__-S7oN:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-hover,\n #e9eef4\n );\n}\n\n.tertiarySystem__-S7oN:active {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-active,\n #b7c2d2\n );\n}\n\n/* nude styles */\n.nude__SJHsv {\n --button-surface-color: transparent;\n}\n\n.nudeBrand__aDE26 {\n --button-content-color: var(--content-brand, #00aa13);\n}\n\n.nudeBrand__aDE26:hover {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-hover,\n #eff8f0\n );\n}\n\n.nudeBrand__aDE26:active {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-active,\n #bdecc6\n );\n}\n\n.nudeDanger__zOqPK {\n --button-content-color: var(--content-danger, #bb354e);\n}\n\n.nudeDanger__zOqPK:hover {\n --button-surface-color: var(\n --interactive-support-danger-secondary-hover,\n #fff1f4\n );\n}\n\n.nudeDanger__zOqPK:active {\n --button-surface-color: var(\n --interactive-support-danger-secondary-active,\n #ffc6d0\n );\n}\n\n.nudeSystem__PdH9G {\n --button-content-color: var(--content-primary, #2d2e34);\n}\n\n.nudeSystem__PdH9G:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-hover,\n #e9eef4\n );\n}\n\n.nudeSystem__PdH9G:active {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-active,\n #b7c2d2\n );\n}\n\n/* compact icon styles */\n.compactIcon__8D7Nl {\n border-radius: var(--button-border-radius);\n}\n\n/* disabled styles */\n.primary__VOpsr:disabled,\n.secondary__zealy:disabled,\n.tertiary__pRmHg:disabled,\n.nude__SJHsv:disabled {\n --button-surface-color: var(--interactive-surface-disabled, #f1f3f6);\n --button-content-color: var(--content-disabled, #9a9eaa);\n border-color: transparent;\n cursor: not-allowed;\n}\n\n.qualifier__JJPaq {\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n\n.qualifierStart__6o51Y {\n margin-left: 0;\n margin-right: 0.625rem;\n}\n\n.qualifierEnd__Yb2zt {\n margin-left: 0.625rem;\n margin-right: 0;\n}\n\n/** rtl style for qualifier */\n\n*[dir=\"rtl\"] .qualifierStart__6o51Y {\n margin-left: 0.625rem;\n margin-right: 0;\n}\n\n*[dir=\"rtl\"] .qualifierEnd__Yb2zt {\n margin-right: 0.625rem;\n margin-left: 0;\n}\n\n/* sizes */\n.buttonL__dT9zq {\n padding: 1.0625rem 2rem;\n --button-font: var(\n --text-bold-L,\n 600 1.125rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonL__dT9zq:is(:not(.secondary__zealy)) {\n padding-block: 1.1875rem;\n padding-inline: 2.125rem;\n}\n\n.buttonM__jmSYx {\n padding: 0.875rem 2rem;\n --button-font: var(\n --text-bold-M,\n 600 1rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonM__jmSYx:is(:not(.secondary__zealy)) {\n padding-block: 1rem;\n padding-inline: 2.125rem;\n}\n\n.buttonS__MrlZh {\n padding: 0.625rem 1.5rem;\n --button-font: var(\n --text-bold-M,\n 600 1rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonS__MrlZh:is(:not(.secondary__zealy)) {\n padding-block: 0.75rem;\n padding-inline: 1.625rem;\n}\n\n.buttonXs__r9M7f {\n padding: 0.5625rem 1rem;\n --button-font: var(\n --text-bold-S,\n 600 0.875rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonXs__r9M7f:is(:not(.secondary__zealy)) {\n padding-block: 0.6875rem;\n padding-inline: 1.125rem;\n}\n\n.iconL__9Ee56 {\n padding: 1rem;\n}\n.iconL__9Ee56:is(:not(.secondary__zealy)) {\n padding-block: 1.125rem;\n padding-inline: 1.125rem;\n}\n\n.iconM__7SUOV {\n padding: 0.8125rem;\n}\n.iconM__7SUOV:is(:not(.secondary__zealy)) {\n padding-block: 0.9375rem;\n padding-inline: 0.9375rem;\n}\n\n.iconS__ItZGm {\n padding: 0.625rem;\n}\n.iconS__ItZGm:is(:not(.secondary__zealy)) {\n padding-block: 0.75rem;\n padding-inline: 0.75rem;\n}\n\n.iconXs__5mF1K {\n padding: 0.5625rem;\n}\n.iconXs__5mF1K:is(:not(.secondary__zealy)) {\n padding-block: 0.6875rem;\n padding-inline: 0.6875rem;\n}\n\n/** compact */\n\n.compactL__lisV7 {\n padding: 0.563rem;\n}\n.compactL__lisV7:is(:not(.secondary__zealy)) {\n padding-block: 0.688rem;\n padding-inline: 0.688rem;\n}\n\n.compactM__hqnWo {\n padding: 0.375rem;\n}\n.compactM__hqnWo:is(:not(.secondary__zealy)) {\n padding-block: 0.5rem;\n padding-inline: 0.5rem;\n}\n\n.compactS__nuYcM {\n padding: 0.125rem;\n}\n.compactS__nuYcM:is(:not(.secondary__zealy)) {\n padding-block: 0.25rem;\n padding-inline: 0.25rem;\n}\n\n.compactXs__AywxT {\n padding: 0.063rem;\n}\n.compactXs__AywxT:is(:not(.secondary__zealy)) {\n padding-block: 0.188rem;\n padding-inline: 0.188rem;\n}\n\n.compactIconL__L0Ed1 {\n padding: 0.5rem;\n}\n.compactIconL__L0Ed1:is(:not(.secondary__zealy)) {\n padding-block: 0.625rem;\n padding-inline: 0.625rem;\n}\n\n.compactIconM__b6gxq {\n padding: 0.3125rem;\n}\n.compactIconM__b6gxq:is(:not(.secondary__zealy)) {\n padding-block: 0.4375rem;\n padding-inline: 0.4375rem;\n}\n\n.compactIconS__H7G01 {\n padding: 0.125rem;\n}\n.compactIconS__H7G01:is(:not(.secondary__zealy)) {\n padding-block: 0.25rem;\n padding-inline: 0.25rem;\n}\n\n.compactIconXs__ei3A0 {\n padding: 0.0625rem;\n}\n.compactIconXs__ei3A0:is(:not(.secondary__zealy)) {\n padding-block: 0.1875rem;\n padding-inline: 0.1875rem;\n}\n\n/** link style */\n.link__OB7N- {\n text-decoration: underline;\n}\n\n.qualifierWrapper__QSvCa {\n display: inline-flex;\n pointer-events: none;\n}\n\n.iconWrapper__avueo {\n display: inline-flex;\n pointer-events: none;\n}\n\n.stickStart__XljCt {\n border-top-left-radius: var(--roundness-sharp, 0rem);\n border-bottom-left-radius: var(--roundness-sharp, 0rem);\n}\n\n.stickEnd__KBlxz {\n border-top-right-radius: var(--roundness-sharp, 0rem);\n border-bottom-right-radius: var(--roundness-sharp, 0rem);\n}\n\n.stickStart__XljCt:focus-visible {\n position: relative;\n}\n\n.stickEnd__KBlxz:focus-visible {\n position: relative;\n}\n\n@supports not selector(:focus-visible) {\n .stickStart__XljCt:focus {\n position: relative;\n }\n\n .stickEnd__KBlxz:focus {\n position: relative;\n }\n}\n\n.stickPrimary__5OgXf {\n margin-left: 1px;\n}\n\n.stickSecondary__mt79y {\n border-left: 0;\n}\n\n.stickTertiary__pRNFE {\n margin-left: 1px;\n}\n\n.stickNude__ppKxQ {\n margin-left: 1px;\n}\n\n.noUnderline__4ntOt {\n text-decoration: none;\n}\n";
var styles = {"Button":"Button__yXAkD","stretch":"stretch__3qC8p","primary":"primary__VOpsr","primaryBrand":"primaryBrand__Krr2l","primaryDanger":"primaryDanger__NfS2o","primarySystem":"primarySystem__zsZ-u","secondary":"secondary__zealy","secondaryBrand":"secondaryBrand__jfdxk","secondaryDanger":"secondaryDanger__-U1QE","secondarySystem":"secondarySystem__PJ4Xx","tertiaryBrand":"tertiaryBrand__1-455","tertiaryDanger":"tertiaryDanger__tqihQ","tertiarySystem":"tertiarySystem__-S7oN","nude":"nude__SJHsv","nudeBrand":"nudeBrand__aDE26","nudeDanger":"nudeDanger__zOqPK","nudeSystem":"nudeSystem__PdH9G","compactIcon":"compactIcon__8D7Nl","tertiary":"tertiary__pRmHg","qualifier":"qualifier__JJPaq","qualifierStart":"qualifierStart__6o51Y","qualifierEnd":"qualifierEnd__Yb2zt","buttonL":"buttonL__dT9zq","buttonM":"buttonM__jmSYx","buttonS":"buttonS__MrlZh","buttonXs":"buttonXs__r9M7f","iconL":"iconL__9Ee56","iconM":"iconM__7SUOV","iconS":"iconS__ItZGm","iconXs":"iconXs__5mF1K","compactL":"compactL__lisV7","compactM":"compactM__hqnWo","compactS":"compactS__nuYcM","compactXs":"compactXs__AywxT","compactIconL":"compactIconL__L0Ed1","compactIconM":"compactIconM__b6gxq","compactIconS":"compactIconS__H7G01","compactIconXs":"compactIconXs__ei3A0","link":"link__OB7N-","qualifierWrapper":"qualifierWrapper__QSvCa","iconWrapper":"iconWrapper__avueo","stickStart":"stickStart__XljCt","stickEnd":"stickEnd__KBlxz","stickPrimary":"stickPrimary__5OgXf","stickSecondary":"stickSecondary__mt79y","stickTertiary":"stickTertiary__pRNFE","stickNude":"stickNude__ppKxQ","noUnderline":"noUnderline__4ntOt"};
var stylesheet=".Button__yXAkD {\n /** Border properties */\n --focus-appearance: var(--focus-outline, 2px solid);\n --focus-color: var(--interactive-focus, #86afff);\n --focus: var(--focus-appearance) var(--focus-color);\n --button-border-inactive: var(--interactive-default, #cbcfd7);\n --button-border-radius: var(--roundness-action-control, 0.375rem);\n\n display: inline-flex;\n justify-content: center;\n align-items: center;\n white-space: nowrap;\n border: 0px solid transparent;\n border-radius: var(--button-border-radius);\n box-sizing: border-box;\n background: var(--button-surface-color);\n color: var(--button-content-color);\n font: var(--button-font);\n /* WebKit browsers add margin around the buttons, which hinders the use case of grouping the buttons */\n margin: 0;\n}\n\n.Button__yXAkD:focus {\n /* Provide a fallback style for browsers\n that don't support :focus-visible */\n outline: var(--focus);\n}\n\n.Button__yXAkD:focus:not(:focus-visible) {\n /* Remove the focus indicator on mouse-focus for browsers\n that do support :focus-visible */\n outline: none;\n}\n\n.Button__yXAkD:focus-visible {\n outline: var(--focus);\n}\n\n.stretch__3qC8p {\n width: 100%;\n}\n\n/* primary styles */\n.primary__VOpsr {\n --button-content-color: var(--content-on-brand, #ffffff);\n}\n\n.primaryBrand__Krr2l {\n --button-surface-color: var(\n --interactive-surface-brand-primary-default,\n #00aa13\n );\n}\n\n.primaryBrand__Krr2l:hover {\n --button-surface-color: var(\n --interactive-surface-brand-primary-hover,\n #33bb42\n );\n}\n\n.primaryBrand__Krr2l:active {\n --button-surface-color: var(\n --interactive-surface-brand-primary-active,\n #067817\n );\n}\n\n.primaryDanger__NfS2o {\n --button-surface-color: var(\n --interactive-support-danger-primary-default,\n #d83950\n );\n --button-content-color: var(--content-on-support, #ffffff);\n}\n\n.primaryDanger__NfS2o:hover {\n --button-surface-color: var(\n --interactive-support-danger-primary-hover,\n #f05f74\n );\n}\n\n.primaryDanger__NfS2o:active {\n --button-surface-color: var(\n --interactive-support-danger-primary-active,\n #bb1a31\n );\n}\n\n.primarySystem__zsZ-u {\n --button-surface-color: var(\n --interactive-surface-inverse-primary-default,\n #383942\n );\n}\n\n.primarySystem__zsZ-u:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-primary-hover,\n #444651\n );\n}\n\n.primarySystem__zsZ-u:active {\n --button-surface-color: var(\n --interactive-surface-inverse-primary-active,\n #0a0d1d\n );\n}\n\n/* secondary styles */\n.secondary__zealy {\n --button-surface-color: var(--interactive-surface-primary-default, #ffffff);\n border: 2px solid var(--button-border-inactive);\n}\n\n.secondaryBrand__jfdxk {\n --button-content-color: var(--content-brand, #00aa13);\n}\n\n.secondaryBrand__jfdxk:hover {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-hover,\n #eff8f0\n );\n}\n\n.secondaryBrand__jfdxk:active {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-active,\n #bdecc6\n );\n}\n\n.secondaryDanger__-U1QE {\n --button-content-color: var(--content-danger, #bb354e);\n}\n\n.secondaryDanger__-U1QE:hover {\n --button-surface-color: var(\n --interactive-support-danger-secondary-hover,\n #fff1f4\n );\n}\n\n.secondaryDanger__-U1QE:active {\n --button-surface-color: var(\n --interactive-support-danger-secondary-active,\n #ffc6d0\n );\n}\n\n.secondarySystem__PJ4Xx {\n --button-content-color: var(--content-primary, #2d2e34);\n}\n\n.secondarySystem__PJ4Xx:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-hover,\n #e9eef4\n );\n}\n\n.secondarySystem__PJ4Xx:active {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-active,\n #b7c2d2\n );\n}\n\n/* tertiary styles */\n.tertiaryBrand__1-455 {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-default,\n #dff6e0\n );\n --button-content-color: var(--content-brand, #00aa13);\n}\n\n.tertiaryBrand__1-455:hover {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-hover,\n #eff8f0\n );\n}\n\n.tertiaryBrand__1-455:active {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-active,\n #bdecc6\n );\n}\n\n.tertiaryDanger__tqihQ {\n --button-surface-color: var(\n --interactive-support-danger-secondary-default,\n #fee1e7\n );\n --button-content-color: var(--content-danger, #bb354e);\n}\n\n.tertiaryDanger__tqihQ:hover {\n --button-surface-color: var(\n --interactive-support-danger-secondary-hover,\n #fff1f4\n );\n}\n\n.tertiaryDanger__tqihQ:active {\n --button-surface-color: var(\n --interactive-support-danger-secondary-active,\n #ffc6d0\n );\n}\n\n.tertiarySystem__-S7oN {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-default,\n #d9dfe8\n );\n --button-content-color: var(--content-primary, #2d2e34);\n}\n\n.tertiarySystem__-S7oN:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-hover,\n #e9eef4\n );\n}\n\n.tertiarySystem__-S7oN:active {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-active,\n #b7c2d2\n );\n}\n\n/* nude styles */\n.nude__SJHsv {\n --button-surface-color: transparent;\n}\n\n.nudeBrand__aDE26 {\n --button-content-color: var(--content-brand, #00aa13);\n}\n\n.nudeBrand__aDE26:hover {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-hover,\n #eff8f0\n );\n}\n\n.nudeBrand__aDE26:active {\n --button-surface-color: var(\n --interactive-surface-brand-secondary-active,\n #bdecc6\n );\n}\n\n.nudeDanger__zOqPK {\n --button-content-color: var(--content-danger, #bb354e);\n}\n\n.nudeDanger__zOqPK:hover {\n --button-surface-color: var(\n --interactive-support-danger-secondary-hover,\n #fff1f4\n );\n}\n\n.nudeDanger__zOqPK:active {\n --button-surface-color: var(\n --interactive-support-danger-secondary-active,\n #ffc6d0\n );\n}\n\n.nudeSystem__PdH9G {\n --button-content-color: var(--content-primary, #2d2e34);\n}\n\n.nudeSystem__PdH9G:hover {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-hover,\n #e9eef4\n );\n}\n\n.nudeSystem__PdH9G:active {\n --button-surface-color: var(\n --interactive-surface-inverse-secondary-active,\n #b7c2d2\n );\n}\n\n/* compact icon styles */\n.compactIcon__8D7Nl {\n border-radius: var(--button-border-radius);\n}\n\n/* disabled styles */\n.primary__VOpsr:disabled,\n.secondary__zealy:disabled,\n.tertiary__pRmHg:disabled,\n.nude__SJHsv:disabled {\n --button-surface-color: var(--interactive-surface-disabled, #f1f3f6);\n --button-content-color: var(--content-disabled, #9a9eaa);\n border-color: transparent;\n cursor: not-allowed;\n}\n\n.qualifier__JJPaq {\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n\n.qualifierStart__6o51Y {\n margin-left: 0;\n margin-right: 0.625rem;\n}\n\n.qualifierEnd__Yb2zt {\n margin-left: 0.625rem;\n margin-right: 0;\n}\n\n/** rtl style for qualifier */\n\n*[dir=\"rtl\"] .qualifierStart__6o51Y {\n margin-left: 0.625rem;\n margin-right: 0;\n}\n\n*[dir=\"rtl\"] .qualifierEnd__Yb2zt {\n margin-right: 0.625rem;\n margin-left: 0;\n}\n\n/* sizes */\n.buttonL__dT9zq {\n padding: 1.0625rem 2rem;\n --button-font: var(\n --text-bold-L,\n 600 1.125rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonL__dT9zq:is(:not(.secondary__zealy)) {\n padding-block: 1.1875rem;\n padding-inline: 2.125rem;\n}\n\n.buttonM__jmSYx {\n padding: 0.875rem 2rem;\n --button-font: var(\n --text-bold-M,\n 600 1rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonM__jmSYx:is(:not(.secondary__zealy)) {\n padding-block: 1rem;\n padding-inline: 2.125rem;\n}\n\n.buttonS__MrlZh {\n padding: 0.625rem 1.5rem;\n --button-font: var(\n --text-bold-M,\n 600 1rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonS__MrlZh:is(:not(.secondary__zealy)) {\n padding-block: 0.75rem;\n padding-inline: 1.625rem;\n}\n\n.buttonXs__r9M7f {\n padding: 0.5625rem 1rem;\n --button-font: var(\n --text-bold-S,\n 600 0.875rem/1.5 Maison Neue,\n Helvetica,\n Open Sans,\n sans-serif\n );\n line-height: 1;\n}\n.buttonXs__r9M7f:is(:not(.secondary__zealy)) {\n padding-block: 0.6875rem;\n padding-inline: 1.125rem;\n}\n\n.iconL__9Ee56 {\n padding: 1rem;\n}\n.iconL__9Ee56:is(:not(.secondary__zealy)) {\n padding-block: 1.125rem;\n padding-inline: 1.125rem;\n}\n\n.iconM__7SUOV {\n padding: 0.8125rem;\n}\n.iconM__7SUOV:is(:not(.secondary__zealy)) {\n padding-block: 0.9375rem;\n padding-inline: 0.9375rem;\n}\n\n.iconS__ItZGm {\n padding: 0.625rem;\n}\n.iconS__ItZGm:is(:not(.secondary__zealy)) {\n padding-block: 0.75rem;\n padding-inline: 0.75rem;\n}\n\n.iconXs__5mF1K {\n padding: 0.5625rem;\n}\n.iconXs__5mF1K:is(:not(.secondary__zealy)) {\n padding-block: 0.6875rem;\n padding-inline: 0.6875rem;\n}\n\n/** compact */\n\n.compactL__lisV7 {\n padding: 0.563rem;\n}\n.compactL__lisV7:is(:not(.secondary__zealy)) {\n padding-block: 0.688rem;\n padding-inline: 0.688rem;\n}\n\n.compactM__hqnWo {\n padding: 0.375rem;\n}\n.compactM__hqnWo:is(:not(.secondary__zealy)) {\n padding-block: 0.5rem;\n padding-inline: 0.5rem;\n}\n\n.compactS__nuYcM {\n padding: 0.125rem;\n}\n.compactS__nuYcM:is(:not(.secondary__zealy)) {\n padding-block: 0.25rem;\n padding-inline: 0.25rem;\n}\n\n.compactXs__AywxT {\n padding: 0.063rem;\n}\n.compactXs__AywxT:is(:not(.secondary__zealy)) {\n padding-block: 0.188rem;\n padding-inline: 0.188rem;\n}\n\n.compactIconL__L0Ed1 {\n padding: 0.5rem;\n}\n.compactIconL__L0Ed1:is(:not(.secondary__zealy)) {\n padding-block: 0.625rem;\n padding-inline: 0.625rem;\n}\n\n.compactIconM__b6gxq {\n padding: 0.3125rem;\n}\n.compactIconM__b6gxq:is(:not(.secondary__zealy)) {\n padding-block: 0.4375rem;\n padding-inline: 0.4375rem;\n}\n\n.compactIconS__H7G01 {\n padding: 0.125rem;\n}\n.compactIconS__H7G01:is(:not(.secondary__zealy)) {\n padding-block: 0.25rem;\n padding-inline: 0.25rem;\n}\n\n.compactIconXs__ei3A0 {\n padding: 0.0625rem;\n}\n.compactIconXs__ei3A0:is(:not(.secondary__zealy)) {\n padding-block: 0.1875rem;\n padding-inline: 0.1875rem;\n}\n\n/** link style */\n.link__OB7N- {\n text-decoration: underline;\n}\n\n.qualifierWrapper__QSvCa {\n display: inline-flex;\n pointer-events: none;\n}\n\n.iconWrapper__avueo {\n display: inline-flex;\n pointer-events: none;\n}\n\n.stickStart__XljCt {\n border-top-left-radius: var(--roundness-sharp, 0rem);\n border-bottom-left-radius: var(--roundness-sharp, 0rem);\n}\n\n.stickEnd__KBlxz {\n border-top-right-radius: var(--roundness-sharp, 0rem);\n border-bottom-right-radius: var(--roundness-sharp, 0rem);\n}\n\n.stickStart__XljCt:focus-visible {\n position: relative;\n}\n\n.stickEnd__KBlxz:focus-visible {\n position: relative;\n}\n\n@supports not selector(:focus-visible) {\n .stickStart__XljCt:focus {\n position: relative;\n }\n\n .stickEnd__KBlxz:focus {\n position: relative;\n }\n}\n\n.stickPrimary__5OgXf {\n margin-left: 1px;\n}\n\n.stickSecondary__mt79y {\n border-left: 0;\n}\n\n.stickTertiary__pRNFE {\n margin-left: 1px;\n}\n\n.stickNude__ppKxQ {\n margin-left: 1px;\n}\n\n.noUnderline__4ntOt {\n text-decoration: none;\n}\n";
styleInject(css_248z);
const{isSVG}=svgUtil;const{concatClasses,resolvePropCollision}=propsUtil;const Button=forwardRef(({children,size="m",primary=false,secondary=false,tertiary=false,nude=false,brand=false,danger=false,system=false,qualifier=null,qualifierEnd=false,stretch=false,icon=false,compact=false,link=false,as:Link="a",asProps={href:"."},stickStart=false,stickEnd=false,stick=false,underline=true,...props},ref)=>{sendStyles(stylesheet);const{collision:variantCollision,value:variant}=resolvePropCollision({primary,secondary,tertiary,nude},"primary");if(variantCollision){console.warn(`Button: Multiple variants detected, falling back to "primary"`);}const{collision:intentCollision,value:intent}=resolvePropCollision({brand,danger,system},"brand");if(intentCollision){console.warn(`Button: Multiple intents detected, falling back to "brand"`);}const{style,className,...rest}=props;const isCompactIcon=icon&&compact;const isCompactButton=!icon&&compact;const resolvedSize=resolveSizeProp(size);const compactIconClass=cn(styles.compactIcon,styles[`${concatClasses("compact","icon",resolvedSize)}`]);const compactClass=cn(styles[`${concatClasses("compact",resolvedSize)}`]);const btnClasses=cn(styles.Button,styles[variant],styles[`${concatClasses(variant,intent)}`],{[styles[`${concatClasses("button",resolvedSize)}`]]:!icon},{[styles[`${concatClasses("icon",resolvedSize)}`]]:icon},{[compactIconClass]:isCompactIcon,[compactClass]:isCompactButton},{[styles.link]:link},{[styles.stretch]:stretch},{[styles.stickStart]:stickStart},{[styles.stickEnd]:stickEnd},{[styles[`${concatClasses("stick",variant)}`]]:stick},{[styles.noUnderline]:link&&!underline});if(link&&opensInNewTab(asProps?.target)&&!qualifier){qualifier=React.createElement(NewTab,null);}const getQualifier=()=>React.createElement("span",{"data-testid":"qualifier",className:cn(styles.qualifier,qualifierEnd?styles.qualifierEnd:styles.qualifierStart)},React.createElement("div",{className:styles.qualifierWrapper},React.createElement(Qualifier,{iconSize:svgSize(qualifierSVGSizes,size)},qualifier)));const getIcon=()=>{if(icon&&!isSVG(children)){console.warn("Icon can only be SVG");children="";}return React.createElement("div",{className:styles.iconWrapper},React.createElement(SvgNormalizer,{dimension:svgSize(iconSVGSizes,size)},children))};const getQualifierWithChildren=()=>{return React.createElement(React.Fragment,null,qualifier&&!qualifierEnd&&getQualifier(),children,qualifier&&qualifierEnd&&getQualifier())};if(link){const{style,...restAsProps}=asProps||{};if(props.disabled){console.warn("Button: LinkButton can not be disabled");}return React.createElement(Link,_extends({},getRelAttributes(asProps?.target),restAsProps,{className:btnClasses,ref:ref}),icon?getIcon():getQualifierWithChildren())}if(icon){return React.createElement("button",_extends({type:"button"},rest,{className:btnClasses,ref:ref}),getIcon())}return React.createElement("button",_extends({type:"button"},rest,{className:btnClasses,ref:ref}),getQualifierWithChildren())});Button.displayName="Button";Button.propTypes={children:PropTypes.node.isRequired,primary:PropTypes.bool,secondary:PropTypes.bool,tertiary:PropTypes.bool,nude:PropTypes.bool,brand:PropTypes.bool,danger:PropTypes.bool,system:PropTypes.bool,link:PropTypes.bool,as:PropTypes.elementType,asProps:PropTypes.object,icon:PropTypes.bool,compact:PropTypes.bool,qualifier:PropTypes.oneOfType([PropTypes.element,PropTypes.string]),qualifierEnd:PropTypes.bool,size:PropTypes.oneOf(["xs","s","m","l"]),stretch:PropTypes.bool,stickStart:PropTypes.bool,stickEnd:PropTypes.bool,stick:PropTypes.bool,underline:PropTypes.bool};Button.defaultProps={size:"m",stretch:false,primary:false,secondary:false,tertiary:false,nude:false,brand:false,danger:false,system:false,qualifier:null,qualifierEnd:false,icon:false,compact:false,link:false,as:"a",asProps:{href:"."},stickEnd:false,stickStart:false,stick:false,underline:true};
export { Button };