@razorpay/blade 12.120.0 → 12.121.1

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.
Files changed (59) hide show
  1. package/build/lib/native/components/Button/BaseButton/BaseButton.js +2 -2
  2. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  3. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  4. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  5. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +1 -1
  6. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
  7. package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js +2 -1
  8. package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js.map +1 -1
  9. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  10. package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js +1 -1
  11. package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
  12. package/build/lib/native/components/Spinner/Spinner/Spinner.js.map +1 -1
  13. package/build/lib/web/development/_virtual/flatten.js +1 -1
  14. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  15. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +23 -31
  16. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  17. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +8 -18
  18. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  19. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +1 -1
  20. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
  21. package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js +1 -0
  22. package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js.map +1 -1
  23. package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js +18 -5
  24. package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
  25. package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js +6 -3
  26. package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js.map +1 -1
  27. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  28. package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js +5 -0
  29. package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
  30. package/build/lib/web/development/components/Spinner/Spinner/Spinner.js.map +1 -1
  31. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  32. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  33. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  34. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  35. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  36. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  37. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +23 -31
  38. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  39. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +8 -18
  40. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  41. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +1 -1
  42. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
  43. package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js +1 -0
  44. package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js.map +1 -1
  45. package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js +18 -5
  46. package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
  47. package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js +6 -3
  48. package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js.map +1 -1
  49. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  50. package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js +5 -0
  51. package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
  52. package/build/lib/web/production/components/Spinner/Spinner/Spinner.js.map +1 -1
  53. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  54. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  55. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  56. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  57. package/build/types/components/index.d.ts +7 -12
  58. package/build/types/components/index.native.d.ts +7 -12
  59. package/package.json +1 -1
@@ -25,8 +25,8 @@ import '../../../utils/getStringChildren/index.js';
25
25
  import '../../../utils/logger/index.js';
26
26
  import '../../../utils/makeAnalyticsAttribute/index.js';
27
27
  import { jsx, jsxs } from 'react/jsx-runtime';
28
- import { throwBladeError } from '../../../utils/logger/logger.js';
29
28
  import { isReactNative } from '../../../utils/platform/isReactNative.js';
29
+ import { throwBladeError } from '../../../utils/logger/logger.js';
30
30
  import { makeSize } from '../../../utils/makeSize/makeSize.js';
31
31
  import { makeSpace } from '../../../utils/makeSpace/makeSpace.js';
32
32
  import { makeBorderSize } from '../../../utils/makeBorderSize/makeBorderSize.native.js';
@@ -44,7 +44,7 @@ import { BaseSpinner } from '../../Spinner/BaseSpinner/BaseSpinner.js';
44
44
  import { BaseText } from '../../Typography/BaseText/BaseText.native.js';
45
45
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
46
46
 
47
- var _excluded=["href","target","rel","tabIndex","id","variant","color","size","icon","iconPosition","isDisabled","isFullWidth","isLoading","onClick","onBlur","onKeyDown","type","children","testID","onFocus","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","accessibilityProps","onTouchEnd","onTouchStart","_borderRadius","_iconSize","_spinnerColor"];var _this=undefined,_jsxFileName="/home/runner/work/blade/blade/packages/blade/src/components/Button/BaseButton/BaseButton.tsx";var isStaticOrTransparentColor=function isStaticOrTransparentColor(color){return color==='white'||color==='black'||color==='transparent';};var getSpinnerColor=function getSpinnerColor(_ref){var variant=_ref.variant,color=_ref.color;if(color==='black'){return spinnerColor.black.primary;}if(color!=='primary'&&color!=='transparent'&&color in spinnerColor){return spinnerColor[color][variant];}return spinnerColor.base[variant];};var assertBlackIsPrimary=function assertBlackIsPrimary(variant){if(variant!=='primary'){throwBladeError({moduleName:'BaseButton',message:`Black color can only be used with primary variant but received "${variant}"`});}};var getRenderElement=function getRenderElement(href){if(isReactNative()){return undefined;}if(href){return 'a';}return 'button';};var getBackgroundColorToken=function getBackgroundColorToken(_ref2){var variant=_ref2.variant,state=_ref2.state,color=_ref2.color;var _state=state==='focus'||state==='hover'?'highlighted':state;var gradientColor=isStaticOrTransparentColor(color)||!color?'primary':color;var tokens=backgroundGradient(gradientColor);if(color==='white'){return tokens.white[variant][_state];}if(color==='black'){assertBlackIsPrimary(variant);return tokens.black.primary[_state];}if(color==='transparent'){if(variant!=='tertiary'){throw new Error(`Transparent color can only be used with tertiary variant but received "${variant}"`);}return tokens.base.transparent[_state];}if(color&&color!=='primary'){if(variant==='tertiary'){throw new Error(`Tertiary variant can only be used with color: "primary" or "white" but received "${color}"`);}}return tokens.base[variant][_state];};var getBoxShadowToken=function getBoxShadowToken(_ref3){var variant=_ref3.variant,state=_ref3.state,color=_ref3.color;var _state=state==='focus'||state==='hover'?'highlighted':state;var tokenColor=isStaticOrTransparentColor(color)||!color?'primary':color;var tokens=boxShadow(tokenColor);if(color==='white'){return tokens.white[variant][_state];}if(color==='black'){assertBlackIsPrimary(variant);return tokens.black.primary[_state];}if(color==='transparent'){if(variant!=='tertiary'){throw new Error(`Transparent color can only be used with tertiary variant but received "${variant}"`);}return tokens.base.transparent[_state];}return tokens.base[variant][_state];};var getTextColorToken=function getTextColorToken(_ref4){var property=_ref4.property,variant=_ref4.variant,state=_ref4.state,color=_ref4.color;var tokens=textColor(property);var _state=state==='focus'||state==='hover'?'highlighted':state;if(color==='white'){return tokens.white[variant][_state];}if(color==='black'){assertBlackIsPrimary(variant);return tokens.black.primary[_state];}if(color==='transparent'){if(variant!=='tertiary'){throw new Error(`Transparent color can only be used with tertiary variant but received "${variant}"`);}return tokens.transparent.tertiary[_state];}if(color&&color!=='primary'){if(variant==='tertiary'){throw new Error(`Tertiary variant can only be used with color: "primary" or "white" but received "${color}"`);}return tokens.color(color)[variant][_state];}return tokens.base[variant][_state];};var getProps=function getProps(_ref5){var buttonTypographyTokens=_ref5.buttonTypographyTokens,childrenString=_ref5.childrenString,isDisabled=_ref5.isDisabled,size=_ref5.size,theme=_ref5.theme,variant=_ref5.variant,color=_ref5.color,hasIcon=_ref5.hasIcon,_borderRadius=_ref5._borderRadius,_iconSize=_ref5._iconSize;if(variant==='tertiary'&&color!=='primary'&&color!=='white'&&color!=='transparent'){throwBladeError({moduleName:'BaseButton',message:`Tertiary variant can only be used with color: "primary" or "white" or "transparent" but received "${color}"`});}var isIconOnly=hasIcon&&(!childrenString||(childrenString==null?void 0:childrenString.trim().length)===0);var resolveBackgroundValue=function resolveBackgroundValue(value){if(value.startsWith('linear-gradient')){return value;}return getIn(theme.colors,value);};var getDefaultBackground=function getDefaultBackground(){return resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'default'}));};var getBoxShadow=function getBoxShadow(state,btnColor){var shadowTokens=getBoxShadowToken({variant:variant,color:btnColor,state:state});if(shadowTokens.length===0){return undefined;}var shadows=shadowTokens.map(function(shadow){var resolvedColor=getIn(theme.colors,shadow.color);return `inset 0 ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${resolvedColor}`;});return shadows.join(', ');};var getNativeShadowColors=function getNativeShadowColors(btnColor){var resolveShadowColors=function resolveShadowColors(shadowTokens){var highlightColor,bottomColor,borderColor;var highlightHeight=0;var bottomHeight=0;var ringWidth=0;for(var shadow of shadowTokens){var resolved=getIn(theme.colors,shadow.color);if(shadow.y>0&&!highlightColor){highlightColor=resolved;highlightHeight=shadow.y;}else if(shadow.y<0&&!bottomColor){bottomColor=resolved;bottomHeight=Math.abs(shadow.y);}else if(shadow.spread>0&&!borderColor){borderColor=resolved;ringWidth=shadow.spread;}}return {highlightColor:highlightColor,bottomColor:bottomColor,borderColor:borderColor,highlightHeight:highlightHeight,bottomHeight:bottomHeight,ringWidth:ringWidth};};var defaultColors=resolveShadowColors(getBoxShadowToken({variant:variant,color:btnColor,state:'default'}));if(!defaultColors.highlightColor&&!defaultColors.bottomColor&&!defaultColors.borderColor){return {};}var focusColors=resolveShadowColors(getBoxShadowToken({variant:variant,color:btnColor,state:'focus'}));return {shadowHighlightColor:defaultColors.highlightColor,shadowHighlightHeight:defaultColors.highlightHeight!==0?defaultColors.highlightHeight:undefined,shadowBottomColor:defaultColors.bottomColor,shadowBottomHeight:defaultColors.bottomHeight!==0?defaultColors.bottomHeight:undefined,shadowBorderColor:defaultColors.borderColor,focusShadowBorderColor:focusColors.borderColor,shadowRingWidth:defaultColors.ringWidth!==0?defaultColors.ringWidth:undefined,isShadowGradientVisible:variant==='primary'};};var props=Object.assign({iconSize:_iconSize!=null?_iconSize:isIconOnly?buttonIconOnlySizeToIconSizeMap[size]:buttonSizeToIconSizeMap[size],spinnerSize:buttonSizeToSpinnerSizeMap[size],fontSize:buttonTypographyTokens.fonts.size[size],lineHeight:buttonTypographyTokens.lineHeights[size],minHeight:makeSize(minHeight[size]),height:isIconOnly?buttonIconOnlyHeightWidth[size]:undefined,width:isIconOnly?buttonIconOnlyHeightWidth[size]:undefined,iconColor:getTextColorToken({property:'icon',variant:variant,color:color,state:'default'}),textColor:getTextColorToken({property:'text',variant:variant,color:color,state:'default'}),buttonPaddingTop:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].top]),buttonPaddingBottom:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].bottom]),buttonPaddingLeft:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].left]),buttonPaddingRight:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].right]),text:childrenString==null?void 0:childrenString.trim(),defaultBackgroundColor:getDefaultBackground(),defaultBoxShadow:getBoxShadow('default',color),hoverBackgroundColor:resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'hover'})),hoverBoxShadow:getBoxShadow('hover',color),hoverIconColor:getIn(theme.colors,getTextColorToken({property:'icon',variant:variant,color:color,state:'hover'})),focusBackgroundColor:resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'focus'})),focusBoxShadow:getBoxShadow('focus',color),focusRingColor:getIn(theme.colors,'surface.border.primary.muted'),borderRadius:makeBorderSize(theme.border.radius[_borderRadius!=null?_borderRadius:buttonBorderRadius[size]]),motionDuration:'duration.xquick',motionEasing:'easing.standard'},isReactNative()&&!isDisabled?getNativeShadowColors(color):{});if(isDisabled){var disabledBackgroundColor=resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'disabled'}));props.iconColor=getTextColorToken({property:'icon',variant:variant,color:color,state:'disabled'});props.textColor=getTextColorToken({property:'text',variant:variant,color:color,state:'disabled'});props.defaultBackgroundColor=disabledBackgroundColor;props.defaultBoxShadow=getBoxShadow('disabled',color);props.hoverBackgroundColor=disabledBackgroundColor;props.hoverBoxShadow=getBoxShadow('disabled',color);props.focusBackgroundColor=disabledBackgroundColor;props.focusBoxShadow=getBoxShadow('disabled',color);}return props;};var ButtonContent=styled(BaseBox)(function(_ref6){var isHidden=_ref6.isHidden;return {opacity:isHidden?0:1};});var _BaseButton=function _BaseButton(_ref7,ref){var _buttonGroupProps$siz,_buttonGroupProps$var,_buttonGroupProps$col,_buttonGroupProps$siz2,_buttonGroupProps$isF,_accessibilityProps$r,_buttonGroupProps$var2,_buttonGroupProps$col2,_buttonGroupProps$siz3,_buttonGroupProps$isF2;var href=_ref7.href,target=_ref7.target,rel=_ref7.rel,tabIndex=_ref7.tabIndex,id=_ref7.id,_ref7$variant=_ref7.variant,variant=_ref7$variant===void 0?'primary':_ref7$variant,_ref7$color=_ref7.color,color=_ref7$color===void 0?'primary':_ref7$color,_ref7$size=_ref7.size,size=_ref7$size===void 0?'medium':_ref7$size,Icon=_ref7.icon,_ref7$iconPosition=_ref7.iconPosition,iconPosition=_ref7$iconPosition===void 0?'left':_ref7$iconPosition,_ref7$isDisabled=_ref7.isDisabled,isDisabled=_ref7$isDisabled===void 0?false:_ref7$isDisabled,_ref7$isFullWidth=_ref7.isFullWidth,isFullWidth=_ref7$isFullWidth===void 0?false:_ref7$isFullWidth,_ref7$isLoading=_ref7.isLoading,isLoading=_ref7$isLoading===void 0?false:_ref7$isLoading,onClick=_ref7.onClick,onBlur=_ref7.onBlur,_onKeyDown=_ref7.onKeyDown,_ref7$type=_ref7.type,type=_ref7$type===void 0?'button':_ref7$type,children=_ref7.children,testID=_ref7.testID,onFocus=_ref7.onFocus,onMouseLeave=_ref7.onMouseLeave,onMouseMove=_ref7.onMouseMove,_onMouseDown=_ref7.onMouseDown,onPointerDown=_ref7.onPointerDown,onPointerEnter=_ref7.onPointerEnter,accessibilityProps=_ref7.accessibilityProps,_onTouchEnd=_ref7.onTouchEnd,_onTouchStart=_ref7.onTouchStart,_borderRadius=_ref7._borderRadius,_iconSize=_ref7._iconSize,_spinnerColor=_ref7._spinnerColor,rest=_objectWithoutProperties(_ref7,_excluded);var _useTheme=useTheme(),theme=_useTheme.theme;var buttonGroupProps=useButtonGroupContext();var _React$useState=React__default.useState(false),_React$useState2=_slicedToArray(_React$useState,2),isPressed=_React$useState2[0],setIsPressed=_React$useState2[1];var isLink=Boolean(href);var childrenString=getStringFromReactText(children);var isChildrenComponent=React__default.isValidElement(children);var disabled=buttonGroupProps.isDisabled||isLoading||isDisabled&&!isLink;if(__DEV__){if(!Icon&&!(childrenString!=null&&childrenString.trim())){throwBladeError({message:'At least one of icon or text is required to render a button.',moduleName:'BaseButton'});}}var prevLoading=usePrevious(isLoading);React__default.useEffect(function(){if(isLoading)announce('Started loading');if(!isLoading&&prevLoading)announce('Stopped loading');},[isLoading,prevLoading]);React__default.useLayoutEffect(function(){if(typeof buttonGroupProps.buttonIndex!=='number')return;var buttonIndex=buttonGroupProps.buttonIndex,setPressedButtonIndex=buttonGroupProps.setPressedButtonIndex;if(isPressed){setPressedButtonIndex==null?void 0:setPressedButtonIndex(buttonIndex);}else {setPressedButtonIndex==null?void 0:setPressedButtonIndex(function(prev){return prev===buttonIndex?null:prev;});}},[isPressed,buttonGroupProps.buttonIndex]);var _getProps=getProps({buttonTypographyTokens:typography,childrenString:childrenString,isDisabled:disabled,size:(_buttonGroupProps$siz=buttonGroupProps.size)!=null?_buttonGroupProps$siz:size,variant:(_buttonGroupProps$var=buttonGroupProps.variant)!=null?_buttonGroupProps$var:variant,theme:theme,color:(_buttonGroupProps$col=buttonGroupProps.color)!=null?_buttonGroupProps$col:color,hasIcon:Boolean(Icon),_borderRadius:_borderRadius,_iconSize:_iconSize}),defaultBackgroundColor=_getProps.defaultBackgroundColor,defaultBoxShadow=_getProps.defaultBoxShadow,minHeight=_getProps.minHeight,height=_getProps.height,width=_getProps.width,buttonPaddingTop=_getProps.buttonPaddingTop,buttonPaddingBottom=_getProps.buttonPaddingBottom,buttonPaddingLeft=_getProps.buttonPaddingLeft,buttonPaddingRight=_getProps.buttonPaddingRight,focusBoxShadow=_getProps.focusBoxShadow,focusBackgroundColor=_getProps.focusBackgroundColor,focusRingColor=_getProps.focusRingColor,fontSize=_getProps.fontSize,hoverBoxShadow=_getProps.hoverBoxShadow,hoverBackgroundColor=_getProps.hoverBackgroundColor,hoverIconColor=_getProps.hoverIconColor,iconColor=_getProps.iconColor,iconSize=_getProps.iconSize,spinnerSize=_getProps.spinnerSize,lineHeight=_getProps.lineHeight,text=_getProps.text,textColor=_getProps.textColor,borderRadius=_getProps.borderRadius,motionDuration=_getProps.motionDuration,motionEasing=_getProps.motionEasing,shadowHighlightColor=_getProps.shadowHighlightColor,shadowHighlightHeight=_getProps.shadowHighlightHeight,shadowBottomColor=_getProps.shadowBottomColor,shadowBottomHeight=_getProps.shadowBottomHeight,shadowBorderColor=_getProps.shadowBorderColor,focusShadowBorderColor=_getProps.focusShadowBorderColor,shadowRingWidth=_getProps.shadowRingWidth,isShadowGradientVisible=_getProps.isShadowGradientVisible;var renderElement=React__default.useMemo(function(){return getRenderElement(href);},[href]);var defaultRole=isLink?'link':'button';var isInsideRNButtonGroup=isReactNative()&&Boolean(buttonGroupProps.isInsideButtonGroup);var buttonBorderRadiusValue=isInsideRNButtonGroup?makeBorderSize(0):borderRadius;var groupCornerRadius=isInsideRNButtonGroup?theme.border.radius[buttonBorderRadius[(_buttonGroupProps$siz2=buttonGroupProps.size)!=null?_buttonGroupProps$siz2:size]]:0;var isFirstInGroup=Boolean(buttonGroupProps.isFirstInButtonGroup);var isLastInGroup=Boolean(buttonGroupProps.isLastInButtonGroup);var buttonBorderRadii=isInsideRNButtonGroup?{topLeft:isFirstInGroup?groupCornerRadius:0,bottomLeft:isFirstInGroup?groupCornerRadius:0,topRight:isLastInGroup?groupCornerRadius:0,bottomRight:isLastInGroup?groupCornerRadius:0}:undefined;var isGroupBorderCollapsed=isInsideRNButtonGroup&&!isFirstInGroup&&Boolean(buttonGroupProps.isGroupBorderCollapsed);var isNonFirstInButtonGroup=isInsideRNButtonGroup&&!isFirstInGroup;var showShadowGradient=Boolean(isShadowGradientVisible)&&!isNonFirstInButtonGroup;var effectiveShadowHighlightColor=isNonFirstInButtonGroup?undefined:shadowHighlightColor;var isInsideFullWidthButtonGroup=isInsideRNButtonGroup&&Boolean((_buttonGroupProps$isF=buttonGroupProps.isFullWidth)!=null?_buttonGroupProps$isF:isFullWidth);var handlePointerPressedIn=React__default.useCallback(function(){if(disabled)return;setIsPressed(true);},[disabled]);var handlePointerPressedOut=React__default.useCallback(function(){if(disabled)return;setIsPressed(false);},[disabled]);var handleKeyboardPressedIn=React__default.useCallback(function(e){if(disabled)return;if(e.key===' '||e.key==='Enter'){setIsPressed(true);}},[disabled]);var handleKeyboardPressedOut=React__default.useCallback(function(e){if(disabled)return;if(e.key===' '||e.key==='Enter'){setIsPressed(false);}},[disabled]);return jsx(StyledBaseButton,Object.assign({ref:ref,id:id,as:renderElement,href:href,target:target,rel:rel,accessibilityProps:Object.assign({},makeAccessible(Object.assign({},accessibilityProps,{role:(_accessibilityProps$r=accessibilityProps==null?void 0:accessibilityProps.role)!=null?_accessibilityProps$r:defaultRole}))),variant:(_buttonGroupProps$var2=buttonGroupProps.variant)!=null?_buttonGroupProps$var2:variant,color:(_buttonGroupProps$col2=buttonGroupProps.color)!=null?_buttonGroupProps$col2:color,size:(_buttonGroupProps$siz3=buttonGroupProps.size)!=null?_buttonGroupProps$siz3:size,isLoading:isLoading,disabled:disabled,minHeight:minHeight,buttonPaddingTop:buttonPaddingTop,buttonPaddingBottom:buttonPaddingBottom,buttonPaddingLeft:buttonPaddingLeft,buttonPaddingRight:buttonPaddingRight,defaultBackgroundColor:defaultBackgroundColor,defaultBoxShadow:defaultBoxShadow,focusBoxShadow:focusBoxShadow,focusBackgroundColor:focusBackgroundColor,focusRingColor:focusRingColor,hoverBoxShadow:hoverBoxShadow,hoverBackgroundColor:hoverBackgroundColor,isFullWidth:(_buttonGroupProps$isF2=buttonGroupProps.isFullWidth)!=null?_buttonGroupProps$isF2:isFullWidth,onClick:onClick,onBlur:onBlur,onFocus:onFocus,onMouseLeave:onMouseLeave,onMouseMove:onMouseMove,tabIndex:tabIndex,onPointerDown:onPointerDown,onPointerEnter:onPointerEnter,onKeyDown:function onKeyDown(event){handleKeyboardPressedIn(event);_onKeyDown==null?void 0:_onKeyDown(event);},onTouchStart:function onTouchStart(event){handlePointerPressedIn();_onTouchStart==null?void 0:_onTouchStart(event);},onTouchEnd:function onTouchEnd(event){handlePointerPressedOut();_onTouchEnd==null?void 0:_onTouchEnd(event);},type:type,borderRadius:buttonBorderRadiusValue},buttonBorderRadii?{borderRadii:buttonBorderRadii}:{},isGroupBorderCollapsed?{isGroupBorderCollapsed:isGroupBorderCollapsed}:{},isNonFirstInButtonGroup?{isInsetShadowSidesFlattened:true}:{},isInsideFullWidthButtonGroup?{isInsideFullWidthButtonGroup:true}:{},{motionDuration:motionDuration,motionEasing:motionEasing,height:height,width:width,isPressed:isPressed,hoverIconColor:isDisabled?getIn(theme.colors,iconColor):hoverIconColor,onMouseDown:function onMouseDown(event){handlePointerPressedIn();_onMouseDown==null?void 0:_onMouseDown(event);},onMouseUp:handlePointerPressedOut},!isReactNative()?{onMouseOut:handlePointerPressedOut,onKeyUp:handleKeyboardPressedOut}:{},{shadowHighlightColor:effectiveShadowHighlightColor,shadowHighlightHeight:isNonFirstInButtonGroup?undefined:shadowHighlightHeight,shadowBottomColor:shadowBottomColor,shadowBottomHeight:shadowBottomHeight,shadowBorderColor:shadowBorderColor,focusShadowBorderColor:focusShadowBorderColor,shadowRingWidth:shadowRingWidth,isShadowGradientVisible:showShadowGradient},metaAttribute({name:MetaConstants.Button,testID:testID}),getStyledProps(rest),makeAnalyticsAttribute(rest),{children:jsxs(AnimatedButtonContent,{motionDuration:motionDuration,motionEasing:motionEasing,isPressed:isPressed,children:[isLoading?jsx(BaseBox,{display:"flex",justifyContent:"center",alignItems:"center",position:"absolute",top:"0px",left:"0px",bottom:"0px",right:"0px",zIndex:1,children:jsx(BaseSpinner,{accessibilityLabel:"Loading",size:spinnerSize,color:_spinnerColor!=null?_spinnerColor:getSpinnerColor({variant:variant,color:color})})}):null,jsxs(ButtonContent,{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",flex:1,isHidden:isLoading,zIndex:1,children:[Icon&&iconPosition=='left'?jsx(BaseBox,{display:"flex",justifyContent:"center",alignItems:"center",children:jsx(Icon,{size:iconSize,color:iconColor})}):null,text?isChildrenComponent?children:jsx(BaseText,{marginX:"spacing.2",lineHeight:lineHeight,fontSize:fontSize,fontWeight:"medium",textAlign:"center",color:textColor,children:text}):null,Icon&&iconPosition=='right'?jsx(BaseBox,{display:"flex",justifyContent:"center",alignItems:"center",children:jsx(Icon,{size:iconSize,color:iconColor})}):null]})]})}));};var BaseButton=assignWithoutSideEffects(React__default.forwardRef(_BaseButton),{displayName:'BaseButton'});
47
+ var _excluded=["href","target","rel","tabIndex","id","variant","color","size","icon","iconPosition","isDisabled","isFullWidth","isLoading","onClick","onBlur","onKeyDown","type","children","testID","onFocus","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","accessibilityProps","onTouchEnd","onTouchStart","_borderRadius","_iconSize","_spinnerColor"];var _this=undefined,_jsxFileName="/home/runner/work/blade/blade/packages/blade/src/components/Button/BaseButton/BaseButton.tsx";var isStaticOrTransparentColor=function isStaticOrTransparentColor(color){return color==='white'||color==='transparent';};var isFilledNeutral=function isFilledNeutral(color,variant){return color==='neutral'&&variant==='primary';};var getSpinnerColor=function getSpinnerColor(_ref){var variant=_ref.variant,color=_ref.color;if(color!=='primary'&&color!=='transparent'&&color in spinnerColor){return spinnerColor[color][variant];}return spinnerColor.base[variant];};var getRenderElement=function getRenderElement(href){if(isReactNative()){return undefined;}if(href){return 'a';}return 'button';};var getBackgroundColorToken=function getBackgroundColorToken(_ref2){var variant=_ref2.variant,state=_ref2.state,color=_ref2.color;var _state=state==='focus'||state==='hover'?'highlighted':state;var gradientColor=isStaticOrTransparentColor(color)||!color?'primary':color;var tokens=backgroundGradient(gradientColor);if(color==='white'){return tokens.white[variant][_state];}if(color==='transparent'){if(variant!=='tertiary'){throw new Error(`Transparent color can only be used with tertiary variant but received "${variant}"`);}return tokens.base.transparent[_state];}if(color&&color!=='primary'){if(variant==='tertiary'){throw new Error(`Tertiary variant can only be used with color: "primary" or "white" but received "${color}"`);}}return tokens.base[variant][_state];};var getBoxShadowToken=function getBoxShadowToken(_ref3){var variant=_ref3.variant,state=_ref3.state,color=_ref3.color;var _state=state==='focus'||state==='hover'?'highlighted':state;var tokenColor=isStaticOrTransparentColor(color)||!color?'primary':color;var tokens=boxShadow(tokenColor);if(color==='white'){return tokens.white[variant][_state];}if(isFilledNeutral(color,variant)){return tokens.neutral.primary[_state];}if(color==='transparent'){if(variant!=='tertiary'){throw new Error(`Transparent color can only be used with tertiary variant but received "${variant}"`);}return tokens.base.transparent[_state];}return tokens.base[variant][_state];};var getTextColorToken=function getTextColorToken(_ref4){var property=_ref4.property,variant=_ref4.variant,state=_ref4.state,color=_ref4.color;var tokens=textColor(property);var _state=state==='focus'||state==='hover'?'highlighted':state;if(color==='white'){return tokens.white[variant][_state];}if(isFilledNeutral(color,variant)){return tokens.neutral.primary[_state];}if(color==='transparent'){if(variant!=='tertiary'){throw new Error(`Transparent color can only be used with tertiary variant but received "${variant}"`);}return tokens.transparent.tertiary[_state];}if(color&&color!=='primary'){if(variant==='tertiary'){throw new Error(`Tertiary variant can only be used with color: "primary" or "white" but received "${color}"`);}return tokens.color(color)[variant][_state];}return tokens.base[variant][_state];};var getProps=function getProps(_ref5){var buttonTypographyTokens=_ref5.buttonTypographyTokens,childrenString=_ref5.childrenString,isDisabled=_ref5.isDisabled,size=_ref5.size,theme=_ref5.theme,variant=_ref5.variant,color=_ref5.color,hasIcon=_ref5.hasIcon,_borderRadius=_ref5._borderRadius,_iconSize=_ref5._iconSize;if(variant==='tertiary'&&color!=='primary'&&color!=='white'&&color!=='transparent'){throwBladeError({moduleName:'BaseButton',message:`Tertiary variant can only be used with color: "primary" or "white" or "transparent" but received "${color}"`});}var isIconOnly=hasIcon&&(!childrenString||(childrenString==null?void 0:childrenString.trim().length)===0);var resolveBackgroundValue=function resolveBackgroundValue(value){if(value.startsWith('linear-gradient')){return value;}return getIn(theme.colors,value);};var getDefaultBackground=function getDefaultBackground(){return resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'default'}));};var getBoxShadow=function getBoxShadow(state,btnColor){var shadowTokens=getBoxShadowToken({variant:variant,color:btnColor,state:state});if(shadowTokens.length===0){return undefined;}var shadows=shadowTokens.map(function(shadow){var resolvedColor=getIn(theme.colors,shadow.color);return `inset 0 ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${resolvedColor}`;});return shadows.join(', ');};var getNativeShadowColors=function getNativeShadowColors(btnColor){var resolveShadowColors=function resolveShadowColors(shadowTokens){var highlightColor,bottomColor,borderColor;var highlightHeight=0;var bottomHeight=0;var ringWidth=0;for(var shadow of shadowTokens){var resolved=getIn(theme.colors,shadow.color);if(shadow.y>0&&!highlightColor){highlightColor=resolved;highlightHeight=shadow.y;}else if(shadow.y<0&&!bottomColor){bottomColor=resolved;bottomHeight=Math.abs(shadow.y);}else if(shadow.spread>0&&!borderColor){borderColor=resolved;ringWidth=shadow.spread;}}return {highlightColor:highlightColor,bottomColor:bottomColor,borderColor:borderColor,highlightHeight:highlightHeight,bottomHeight:bottomHeight,ringWidth:ringWidth};};var defaultColors=resolveShadowColors(getBoxShadowToken({variant:variant,color:btnColor,state:'default'}));if(!defaultColors.highlightColor&&!defaultColors.bottomColor&&!defaultColors.borderColor){return {};}var focusColors=resolveShadowColors(getBoxShadowToken({variant:variant,color:btnColor,state:'focus'}));return {shadowHighlightColor:defaultColors.highlightColor,shadowHighlightHeight:defaultColors.highlightHeight!==0?defaultColors.highlightHeight:undefined,shadowBottomColor:defaultColors.bottomColor,shadowBottomHeight:defaultColors.bottomHeight!==0?defaultColors.bottomHeight:undefined,shadowBorderColor:defaultColors.borderColor,focusShadowBorderColor:focusColors.borderColor,shadowRingWidth:defaultColors.ringWidth!==0?defaultColors.ringWidth:undefined,isShadowGradientVisible:variant==='primary'};};var props=Object.assign({iconSize:_iconSize!=null?_iconSize:isIconOnly?buttonIconOnlySizeToIconSizeMap[size]:buttonSizeToIconSizeMap[size],spinnerSize:buttonSizeToSpinnerSizeMap[size],fontSize:buttonTypographyTokens.fonts.size[size],lineHeight:buttonTypographyTokens.lineHeights[size],minHeight:makeSize(minHeight[size]),height:isIconOnly?buttonIconOnlyHeightWidth[size]:undefined,width:isIconOnly?buttonIconOnlyHeightWidth[size]:undefined,iconColor:getTextColorToken({property:'icon',variant:variant,color:color,state:'default'}),textColor:getTextColorToken({property:'text',variant:variant,color:color,state:'default'}),buttonPaddingTop:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].top]),buttonPaddingBottom:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].bottom]),buttonPaddingLeft:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].left]),buttonPaddingRight:isIconOnly?makeSpace(0):makeSpace(theme.spacing[buttonPadding[size].right]),text:childrenString==null?void 0:childrenString.trim(),defaultBackgroundColor:getDefaultBackground(),defaultBoxShadow:getBoxShadow('default',color),hoverBackgroundColor:resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'hover'})),hoverBoxShadow:getBoxShadow('hover',color),hoverIconColor:getIn(theme.colors,getTextColorToken({property:'icon',variant:variant,color:color,state:'hover'})),focusBackgroundColor:resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'focus'})),focusBoxShadow:getBoxShadow('focus',color),focusRingColor:getIn(theme.colors,isFilledNeutral(color,variant)?'interactive.border.neutral.faded':'surface.border.primary.muted'),borderRadius:makeBorderSize(theme.border.radius[_borderRadius!=null?_borderRadius:buttonBorderRadius[size]]),motionDuration:'duration.xquick',motionEasing:'easing.standard'},isReactNative()&&!isDisabled?getNativeShadowColors(color):{});if(isDisabled){var disabledBackgroundColor=resolveBackgroundValue(getBackgroundColorToken({variant:variant,color:color,state:'disabled'}));props.iconColor=getTextColorToken({property:'icon',variant:variant,color:color,state:'disabled'});props.textColor=getTextColorToken({property:'text',variant:variant,color:color,state:'disabled'});props.defaultBackgroundColor=disabledBackgroundColor;props.defaultBoxShadow=getBoxShadow('disabled',color);props.hoverBackgroundColor=disabledBackgroundColor;props.hoverBoxShadow=getBoxShadow('disabled',color);props.focusBackgroundColor=disabledBackgroundColor;props.focusBoxShadow=getBoxShadow('disabled',color);}return props;};var ButtonContent=styled(BaseBox)(function(_ref6){var isHidden=_ref6.isHidden;return {opacity:isHidden?0:1};});var _BaseButton=function _BaseButton(_ref7,ref){var _buttonGroupProps$siz,_buttonGroupProps$var,_buttonGroupProps$col,_buttonGroupProps$siz2,_buttonGroupProps$isF,_accessibilityProps$r,_buttonGroupProps$var2,_buttonGroupProps$col2,_buttonGroupProps$siz3,_buttonGroupProps$isF2;var href=_ref7.href,target=_ref7.target,rel=_ref7.rel,tabIndex=_ref7.tabIndex,id=_ref7.id,_ref7$variant=_ref7.variant,variant=_ref7$variant===void 0?'primary':_ref7$variant,_ref7$color=_ref7.color,color=_ref7$color===void 0?'primary':_ref7$color,_ref7$size=_ref7.size,size=_ref7$size===void 0?'medium':_ref7$size,Icon=_ref7.icon,_ref7$iconPosition=_ref7.iconPosition,iconPosition=_ref7$iconPosition===void 0?'left':_ref7$iconPosition,_ref7$isDisabled=_ref7.isDisabled,isDisabled=_ref7$isDisabled===void 0?false:_ref7$isDisabled,_ref7$isFullWidth=_ref7.isFullWidth,isFullWidth=_ref7$isFullWidth===void 0?false:_ref7$isFullWidth,_ref7$isLoading=_ref7.isLoading,isLoading=_ref7$isLoading===void 0?false:_ref7$isLoading,onClick=_ref7.onClick,onBlur=_ref7.onBlur,_onKeyDown=_ref7.onKeyDown,_ref7$type=_ref7.type,type=_ref7$type===void 0?'button':_ref7$type,children=_ref7.children,testID=_ref7.testID,onFocus=_ref7.onFocus,onMouseLeave=_ref7.onMouseLeave,onMouseMove=_ref7.onMouseMove,_onMouseDown=_ref7.onMouseDown,onPointerDown=_ref7.onPointerDown,onPointerEnter=_ref7.onPointerEnter,accessibilityProps=_ref7.accessibilityProps,_onTouchEnd=_ref7.onTouchEnd,_onTouchStart=_ref7.onTouchStart,_borderRadius=_ref7._borderRadius,_iconSize=_ref7._iconSize,_spinnerColor=_ref7._spinnerColor,rest=_objectWithoutProperties(_ref7,_excluded);var _useTheme=useTheme(),theme=_useTheme.theme;var buttonGroupProps=useButtonGroupContext();var _React$useState=React__default.useState(false),_React$useState2=_slicedToArray(_React$useState,2),isPressed=_React$useState2[0],setIsPressed=_React$useState2[1];var isLink=Boolean(href);var childrenString=getStringFromReactText(children);var isChildrenComponent=React__default.isValidElement(children);var disabled=buttonGroupProps.isDisabled||isLoading||isDisabled&&!isLink;if(__DEV__){if(!Icon&&!(childrenString!=null&&childrenString.trim())){throwBladeError({message:'At least one of icon or text is required to render a button.',moduleName:'BaseButton'});}}var prevLoading=usePrevious(isLoading);React__default.useEffect(function(){if(isLoading)announce('Started loading');if(!isLoading&&prevLoading)announce('Stopped loading');},[isLoading,prevLoading]);React__default.useLayoutEffect(function(){if(typeof buttonGroupProps.buttonIndex!=='number')return;var buttonIndex=buttonGroupProps.buttonIndex,setPressedButtonIndex=buttonGroupProps.setPressedButtonIndex;if(isPressed){setPressedButtonIndex==null?void 0:setPressedButtonIndex(buttonIndex);}else {setPressedButtonIndex==null?void 0:setPressedButtonIndex(function(prev){return prev===buttonIndex?null:prev;});}},[isPressed,buttonGroupProps.buttonIndex]);var _getProps=getProps({buttonTypographyTokens:typography,childrenString:childrenString,isDisabled:disabled,size:(_buttonGroupProps$siz=buttonGroupProps.size)!=null?_buttonGroupProps$siz:size,variant:(_buttonGroupProps$var=buttonGroupProps.variant)!=null?_buttonGroupProps$var:variant,theme:theme,color:(_buttonGroupProps$col=buttonGroupProps.color)!=null?_buttonGroupProps$col:color,hasIcon:Boolean(Icon),_borderRadius:_borderRadius,_iconSize:_iconSize}),defaultBackgroundColor=_getProps.defaultBackgroundColor,defaultBoxShadow=_getProps.defaultBoxShadow,minHeight=_getProps.minHeight,height=_getProps.height,width=_getProps.width,buttonPaddingTop=_getProps.buttonPaddingTop,buttonPaddingBottom=_getProps.buttonPaddingBottom,buttonPaddingLeft=_getProps.buttonPaddingLeft,buttonPaddingRight=_getProps.buttonPaddingRight,focusBoxShadow=_getProps.focusBoxShadow,focusBackgroundColor=_getProps.focusBackgroundColor,focusRingColor=_getProps.focusRingColor,fontSize=_getProps.fontSize,hoverBoxShadow=_getProps.hoverBoxShadow,hoverBackgroundColor=_getProps.hoverBackgroundColor,hoverIconColor=_getProps.hoverIconColor,iconColor=_getProps.iconColor,iconSize=_getProps.iconSize,spinnerSize=_getProps.spinnerSize,lineHeight=_getProps.lineHeight,text=_getProps.text,textColor=_getProps.textColor,borderRadius=_getProps.borderRadius,motionDuration=_getProps.motionDuration,motionEasing=_getProps.motionEasing,shadowHighlightColor=_getProps.shadowHighlightColor,shadowHighlightHeight=_getProps.shadowHighlightHeight,shadowBottomColor=_getProps.shadowBottomColor,shadowBottomHeight=_getProps.shadowBottomHeight,shadowBorderColor=_getProps.shadowBorderColor,focusShadowBorderColor=_getProps.focusShadowBorderColor,shadowRingWidth=_getProps.shadowRingWidth,isShadowGradientVisible=_getProps.isShadowGradientVisible;var renderElement=React__default.useMemo(function(){return getRenderElement(href);},[href]);var defaultRole=isLink?'link':'button';var isInsideRNButtonGroup=isReactNative()&&Boolean(buttonGroupProps.isInsideButtonGroup);var buttonBorderRadiusValue=isInsideRNButtonGroup?makeBorderSize(0):borderRadius;var groupCornerRadius=isInsideRNButtonGroup?theme.border.radius[buttonBorderRadius[(_buttonGroupProps$siz2=buttonGroupProps.size)!=null?_buttonGroupProps$siz2:size]]:0;var isFirstInGroup=Boolean(buttonGroupProps.isFirstInButtonGroup);var isLastInGroup=Boolean(buttonGroupProps.isLastInButtonGroup);var buttonBorderRadii=isInsideRNButtonGroup?{topLeft:isFirstInGroup?groupCornerRadius:0,bottomLeft:isFirstInGroup?groupCornerRadius:0,topRight:isLastInGroup?groupCornerRadius:0,bottomRight:isLastInGroup?groupCornerRadius:0}:undefined;var isGroupBorderCollapsed=isInsideRNButtonGroup&&!isFirstInGroup&&Boolean(buttonGroupProps.isGroupBorderCollapsed);var isNonFirstInButtonGroup=isInsideRNButtonGroup&&!isFirstInGroup;var showShadowGradient=Boolean(isShadowGradientVisible)&&!isNonFirstInButtonGroup;var effectiveShadowHighlightColor=isNonFirstInButtonGroup?undefined:shadowHighlightColor;var isInsideFullWidthButtonGroup=isInsideRNButtonGroup&&Boolean((_buttonGroupProps$isF=buttonGroupProps.isFullWidth)!=null?_buttonGroupProps$isF:isFullWidth);var handlePointerPressedIn=React__default.useCallback(function(){if(disabled)return;setIsPressed(true);},[disabled]);var handlePointerPressedOut=React__default.useCallback(function(){if(disabled)return;setIsPressed(false);},[disabled]);var handleKeyboardPressedIn=React__default.useCallback(function(e){if(disabled)return;if(e.key===' '||e.key==='Enter'){setIsPressed(true);}},[disabled]);var handleKeyboardPressedOut=React__default.useCallback(function(e){if(disabled)return;if(e.key===' '||e.key==='Enter'){setIsPressed(false);}},[disabled]);return jsx(StyledBaseButton,Object.assign({ref:ref,id:id,as:renderElement,href:href,target:target,rel:rel,accessibilityProps:Object.assign({},makeAccessible(Object.assign({},accessibilityProps,{role:(_accessibilityProps$r=accessibilityProps==null?void 0:accessibilityProps.role)!=null?_accessibilityProps$r:defaultRole}))),variant:(_buttonGroupProps$var2=buttonGroupProps.variant)!=null?_buttonGroupProps$var2:variant,color:(_buttonGroupProps$col2=buttonGroupProps.color)!=null?_buttonGroupProps$col2:color,size:(_buttonGroupProps$siz3=buttonGroupProps.size)!=null?_buttonGroupProps$siz3:size,isLoading:isLoading,disabled:disabled,minHeight:minHeight,buttonPaddingTop:buttonPaddingTop,buttonPaddingBottom:buttonPaddingBottom,buttonPaddingLeft:buttonPaddingLeft,buttonPaddingRight:buttonPaddingRight,defaultBackgroundColor:defaultBackgroundColor,defaultBoxShadow:defaultBoxShadow,focusBoxShadow:focusBoxShadow,focusBackgroundColor:focusBackgroundColor,focusRingColor:focusRingColor,hoverBoxShadow:hoverBoxShadow,hoverBackgroundColor:hoverBackgroundColor,isFullWidth:(_buttonGroupProps$isF2=buttonGroupProps.isFullWidth)!=null?_buttonGroupProps$isF2:isFullWidth,onClick:onClick,onBlur:onBlur,onFocus:onFocus,onMouseLeave:onMouseLeave,onMouseMove:onMouseMove,tabIndex:tabIndex,onPointerDown:onPointerDown,onPointerEnter:onPointerEnter,onKeyDown:function onKeyDown(event){handleKeyboardPressedIn(event);_onKeyDown==null?void 0:_onKeyDown(event);},onTouchStart:function onTouchStart(event){handlePointerPressedIn();_onTouchStart==null?void 0:_onTouchStart(event);},onTouchEnd:function onTouchEnd(event){handlePointerPressedOut();_onTouchEnd==null?void 0:_onTouchEnd(event);},type:type,borderRadius:buttonBorderRadiusValue},buttonBorderRadii?{borderRadii:buttonBorderRadii}:{},isGroupBorderCollapsed?{isGroupBorderCollapsed:isGroupBorderCollapsed}:{},isNonFirstInButtonGroup?{isInsetShadowSidesFlattened:true}:{},isInsideFullWidthButtonGroup?{isInsideFullWidthButtonGroup:true}:{},{motionDuration:motionDuration,motionEasing:motionEasing,height:height,width:width,isPressed:isPressed,hoverIconColor:isDisabled?getIn(theme.colors,iconColor):hoverIconColor,onMouseDown:function onMouseDown(event){handlePointerPressedIn();_onMouseDown==null?void 0:_onMouseDown(event);},onMouseUp:handlePointerPressedOut},!isReactNative()?{onMouseOut:handlePointerPressedOut,onKeyUp:handleKeyboardPressedOut}:{},{shadowHighlightColor:effectiveShadowHighlightColor,shadowHighlightHeight:isNonFirstInButtonGroup?undefined:shadowHighlightHeight,shadowBottomColor:shadowBottomColor,shadowBottomHeight:shadowBottomHeight,shadowBorderColor:shadowBorderColor,focusShadowBorderColor:focusShadowBorderColor,shadowRingWidth:shadowRingWidth,isShadowGradientVisible:showShadowGradient},metaAttribute({name:MetaConstants.Button,testID:testID}),getStyledProps(rest),makeAnalyticsAttribute(rest),{children:jsxs(AnimatedButtonContent,{motionDuration:motionDuration,motionEasing:motionEasing,isPressed:isPressed,children:[isLoading?jsx(BaseBox,{display:"flex",justifyContent:"center",alignItems:"center",position:"absolute",top:"0px",left:"0px",bottom:"0px",right:"0px",zIndex:1,children:jsx(BaseSpinner,{accessibilityLabel:"Loading",size:spinnerSize,color:_spinnerColor!=null?_spinnerColor:getSpinnerColor({variant:variant,color:color})})}):null,jsxs(ButtonContent,{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",flex:1,isHidden:isLoading,zIndex:1,children:[Icon&&iconPosition=='left'?jsx(BaseBox,{display:"flex",justifyContent:"center",alignItems:"center",children:jsx(Icon,{size:iconSize,color:iconColor})}):null,text?isChildrenComponent?children:jsx(BaseText,{marginX:"spacing.2",lineHeight:lineHeight,fontSize:fontSize,fontWeight:"medium",textAlign:"center",color:textColor,children:text}):null,Icon&&iconPosition=='right'?jsx(BaseBox,{display:"flex",justifyContent:"center",alignItems:"center",children:jsx(Icon,{size:iconSize,color:iconColor})}):null]})]})}));};var BaseButton=assignWithoutSideEffects(React__default.forwardRef(_BaseButton),{displayName:'BaseButton'});
48
48
 
49
49
  export { BaseButton as default, getBackgroundColorToken, getBoxShadowToken, getTextColorToken };
50
50
  //# sourceMappingURL=BaseButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseButton.js","sources":["../../../../../../src/components/Button/BaseButton/BaseButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { GestureResponderEvent } from 'react-native';\nimport StyledBaseButton from './StyledBaseButton';\nimport type { ButtonTypography, ButtonBoxShadow } from './buttonTokens';\nimport {\n textColor,\n backgroundGradient,\n boxShadow,\n spinnerColor,\n buttonIconOnlySizeToIconSizeMap,\n typography as buttonTypography,\n minHeight as buttonMinHeight,\n buttonSizeToIconSizeMap,\n buttonSizeToSpinnerSizeMap,\n buttonPadding,\n buttonIconOnlyHeightWidth,\n buttonBorderRadius,\n} from './buttonTokens';\nimport type { BaseButtonStyleProps, IconColor } from './types';\nimport AnimatedButtonContent from './AnimatedButtonContent';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { BaseLinkProps } from '~components/Link/BaseLink';\nimport type { Theme } from '~components/BladeProvider';\nimport type { IconComponent, IconSize } from '~components/Icons';\nimport type { Platform } from '~utils';\nimport { isReactNative } from '~utils';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { useButtonGroupContext } from '~components/ButtonGroup/ButtonGroupContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { useTheme } from '~components/BladeProvider';\nimport { announce } from '~components/LiveAnnouncer';\nimport type { BaseSpinnerProps } from '~components/Spinner/BaseSpinner';\nimport { BaseSpinner } from '~components/Spinner/BaseSpinner';\nimport type { BaseBoxProps } from '~components/Box/BaseBox';\nimport BaseBox from '~components/Box/BaseBox';\nimport type {\n BladeElementRef,\n DataAnalyticsAttribute,\n StringChildrenType,\n TestID,\n} from '~utils/types';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { usePrevious } from '~utils/usePrevious';\nimport { makeSize } from '~utils/makeSize';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeSpace } from '~utils/makeSpace';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport type { BladeCommonEvents } from '~components/types';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BaseButtonCommonProps = {\n href?: BaseLinkProps['href'];\n target?: BaseLinkProps['target'];\n rel?: BaseLinkProps['rel'];\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n id?: string;\n tabIndex?: BaseBoxProps['tabIndex'];\n iconPosition?: 'left' | 'right';\n isDisabled?: boolean;\n isFullWidth?: boolean;\n onKeyDown?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n }>;\n onClick?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.MouseEvent<HTMLButtonElement>) => void;\n }>;\n type?: 'button' | 'reset' | 'submit';\n isLoading?: boolean;\n accessibilityProps?: Partial<AccessibilityProps>;\n variant?: 'primary' | 'secondary' | 'tertiary';\n color?:\n | 'primary'\n | 'white'\n | 'positive'\n | 'negative'\n | 'notice'\n | 'information'\n | 'neutral'\n | 'transparent'\n /**\n * Only supported with `variant=\"primary\"`. Consumed by FloatingActionButton\n * and intentionally not exposed on `Button`.\n */\n | 'black';\n /**\n * Overrides the size-derived border radius. Used by FloatingActionButton to\n * render a pill. `round` is excluded because a percentage radius distorts on\n * a non-square button.\n */\n _borderRadius?: Exclude<keyof Theme['border']['radius'], 'round'>;\n /**\n * Overrides the size-derived icon size. Used by FloatingActionButton, whose\n * icon is larger than a `size=\"large\"` Button's.\n */\n _iconSize?: IconSize;\n /**\n * Overrides the color of the loading spinner. Used by FloatingActionButton,\n * whose contrast requirements differ from `Button`'s.\n */\n _spinnerColor?: BaseSpinnerProps['color'];\n} & TestID &\n StyledPropsBlade &\n BladeCommonEvents;\n\n/*\nMandatory children prop when icon is not provided\n*/\ntype BaseButtonWithoutIconProps = BaseButtonCommonProps & {\n icon?: undefined;\n children: StringChildrenType;\n} & DataAnalyticsAttribute;\n\n/*\n Optional children prop when icon is provided\n*/\ntype BaseButtonWithIconProps = BaseButtonCommonProps & {\n icon: IconComponent;\n children?: StringChildrenType;\n} & DataAnalyticsAttribute;\n\n/*\n With or without icon prop. We need at least an icon or a children prop present.\n*/\nexport type BaseButtonProps = BaseButtonWithIconProps | BaseButtonWithoutIconProps;\n\ntype BaseButtonColorTokenModifiers = {\n variant: NonNullable<BaseButtonProps['variant']>;\n state: 'default' | 'hover' | 'focus' | 'disabled';\n color: BaseButtonProps['color'];\n};\n\n/**\n * `white`, `black` and `transparent` are not feedback colors, so the token\n * factories are still called with `primary` and the value is looked up under its\n * own key instead of under `base`.\n */\nconst isStaticOrTransparentColor = (\n color: BaseButtonProps['color'],\n): color is 'white' | 'black' | 'transparent' =>\n color === 'white' || color === 'black' || color === 'transparent';\n\nconst getSpinnerColor = ({\n variant,\n color,\n}: {\n variant: NonNullable<BaseButtonProps['variant']>;\n color: NonNullable<BaseButtonProps['color']>;\n}): BaseSpinnerProps['color'] => {\n // `black` only exists as a primary button, so it is looked up separately from\n // the colors that carry a full variant record.\n if (color === 'black') {\n return spinnerColor.black.primary;\n }\n\n if (color !== 'primary' && color !== 'transparent' && color in spinnerColor) {\n return spinnerColor[color as Exclude<keyof typeof spinnerColor, 'base' | 'black'>][\n variant as 'primary' | 'secondary'\n ];\n }\n\n return spinnerColor.base[variant];\n};\n\nconst assertBlackIsPrimary = (variant: NonNullable<BaseButtonProps['variant']>): void => {\n if (variant !== 'primary') {\n throwBladeError({\n moduleName: 'BaseButton',\n message: `Black color can only be used with primary variant but received \"${variant}\"`,\n });\n }\n};\n\nconst getRenderElement = (href?: string): 'a' | 'button' | undefined => {\n if (isReactNative()) {\n return undefined; // as property doesn't work with react native\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n};\n\nexport const getBackgroundColorToken = ({\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers) => {\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n\n // For white, black and transparent colors, we use 'primary' as the base color\n // since the actual token lookup uses the white/black/transparent specific paths\n const gradientColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;\n const tokens = backgroundGradient(gradientColor);\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (color === 'black') {\n assertBlackIsPrimary(variant);\n return tokens.black.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.base.transparent[_state];\n }\n\n if (color && color !== 'primary') {\n if (variant === 'tertiary') {\n throw new Error(\n `Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"${color}\"`,\n );\n }\n }\n\n return tokens.base[variant][_state];\n};\n\nexport const getBoxShadowToken = ({\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers): ButtonBoxShadow => {\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n const tokenColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;\n const tokens = boxShadow(tokenColor);\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (color === 'black') {\n assertBlackIsPrimary(variant);\n return tokens.black.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.base.transparent[_state];\n }\n\n return tokens.base[variant][_state];\n};\n\nexport const getTextColorToken = ({\n property,\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers & {\n property: 'icon' | 'text';\n}): DotNotationToken<Theme['colors']> => {\n const tokens = textColor(property);\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (color === 'black') {\n assertBlackIsPrimary(variant);\n return tokens.black.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.transparent.tertiary[_state];\n }\n\n if (color && color !== 'primary') {\n if (variant === 'tertiary') {\n throw new Error(\n `Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"${color}\"`,\n );\n }\n return tokens.color(color)[variant][_state];\n }\n\n return tokens.base[variant][_state];\n};\n\nconst getProps = ({\n buttonTypographyTokens,\n childrenString,\n isDisabled,\n size,\n theme,\n variant,\n color,\n hasIcon,\n _borderRadius,\n _iconSize,\n}: {\n buttonTypographyTokens: ButtonTypography;\n childrenString?: string;\n isDisabled: boolean;\n hasIcon: boolean;\n theme: Theme;\n size: NonNullable<BaseButtonProps['size']>;\n variant: NonNullable<BaseButtonProps['variant']>;\n color: BaseButtonProps['color'];\n _borderRadius?: BaseButtonCommonProps['_borderRadius'];\n _iconSize?: BaseButtonCommonProps['_iconSize'];\n}): BaseButtonStyleProps => {\n if (\n variant === 'tertiary' &&\n color !== 'primary' &&\n color !== 'white' &&\n color !== 'transparent'\n ) {\n throwBladeError({\n moduleName: 'BaseButton',\n message: `Tertiary variant can only be used with color: \"primary\" or \"white\" or \"transparent\" but received \"${color}\"`,\n });\n }\n\n const isIconOnly = hasIcon && (!childrenString || childrenString?.trim().length === 0);\n\n // Resolve background value - either a gradient string or a token path\n const resolveBackgroundValue = (value: string): string => {\n if (value.startsWith('linear-gradient')) {\n return value;\n }\n return getIn(theme.colors, value as DotNotationToken<Theme['colors']>);\n };\n\n const getDefaultBackground = (): string => {\n return resolveBackgroundValue(getBackgroundColorToken({ variant, color, state: 'default' }));\n };\n\n const getBoxShadow = (\n state: 'default' | 'hover' | 'focus' | 'disabled',\n btnColor: BaseButtonProps['color'],\n ): string | undefined => {\n const shadowTokens = getBoxShadowToken({ variant, color: btnColor, state });\n\n if (shadowTokens.length === 0) {\n return undefined;\n }\n\n const shadows = shadowTokens.map((shadow) => {\n const resolvedColor = getIn(theme.colors, shadow.color);\n return `inset 0 ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${resolvedColor}`;\n });\n\n return shadows.join(', ');\n };\n\n const getNativeShadowColors = (\n btnColor: BaseButtonProps['color'],\n ): {\n shadowHighlightColor?: string;\n shadowHighlightHeight?: number;\n shadowBottomColor?: string;\n shadowBottomHeight?: number;\n shadowBorderColor?: string;\n /**\n * Border color from the highlighted/focus box-shadow tokens. Used on press\n * to match web `&:active { boxShadow: focusBoxShadow }` (e.g. secondary/\n * tertiary gray.default → gray.highlighted).\n */\n focusShadowBorderColor?: string;\n shadowRingWidth?: number;\n isShadowGradientVisible?: boolean;\n } => {\n const resolveShadowColors = (\n shadowTokens: ReturnType<typeof getBoxShadowToken>,\n ): {\n highlightColor?: string;\n bottomColor?: string;\n borderColor?: string;\n highlightHeight: number;\n bottomHeight: number;\n ringWidth: number;\n } => {\n let highlightColor: string | undefined,\n bottomColor: string | undefined,\n borderColor: string | undefined;\n let highlightHeight = 0;\n let bottomHeight = 0;\n let ringWidth = 0;\n\n for (const shadow of shadowTokens) {\n const resolved = getIn(theme.colors, shadow.color);\n if (shadow.y > 0 && !highlightColor) {\n highlightColor = resolved;\n highlightHeight = shadow.y;\n } else if (shadow.y < 0 && !bottomColor) {\n bottomColor = resolved;\n bottomHeight = Math.abs(shadow.y);\n } else if (shadow.spread > 0 && !borderColor) {\n borderColor = resolved;\n ringWidth = shadow.spread;\n }\n }\n\n return { highlightColor, bottomColor, borderColor, highlightHeight, bottomHeight, ringWidth };\n };\n\n const defaultColors = resolveShadowColors(\n getBoxShadowToken({ variant, color: btnColor, state: 'default' }),\n );\n if (!defaultColors.highlightColor && !defaultColors.bottomColor && !defaultColors.borderColor) {\n return {};\n }\n\n const focusColors = resolveShadowColors(\n getBoxShadowToken({ variant, color: btnColor, state: 'focus' }),\n );\n\n return {\n shadowHighlightColor: defaultColors.highlightColor,\n shadowHighlightHeight:\n defaultColors.highlightHeight !== 0 ? defaultColors.highlightHeight : undefined,\n shadowBottomColor: defaultColors.bottomColor,\n shadowBottomHeight: defaultColors.bottomHeight !== 0 ? defaultColors.bottomHeight : undefined,\n shadowBorderColor: defaultColors.borderColor,\n focusShadowBorderColor: focusColors.borderColor,\n shadowRingWidth: defaultColors.ringWidth !== 0 ? defaultColors.ringWidth : undefined,\n isShadowGradientVisible: variant === 'primary',\n };\n };\n\n const props: BaseButtonStyleProps = {\n iconSize:\n _iconSize ??\n (isIconOnly ? buttonIconOnlySizeToIconSizeMap[size] : buttonSizeToIconSizeMap[size]),\n spinnerSize: buttonSizeToSpinnerSizeMap[size],\n fontSize: buttonTypographyTokens.fonts.size[size],\n lineHeight: buttonTypographyTokens.lineHeights[size],\n minHeight: makeSize(buttonMinHeight[size]),\n height: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,\n width: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,\n iconColor: getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'default',\n }) as IconColor,\n textColor: getTextColorToken({\n property: 'text',\n variant,\n color,\n state: 'default',\n }) as BaseTextProps['color'],\n buttonPaddingTop: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].top]),\n buttonPaddingBottom: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].bottom]),\n buttonPaddingLeft: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].left]),\n buttonPaddingRight: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].right]),\n text: childrenString?.trim(),\n defaultBackgroundColor: getDefaultBackground(),\n defaultBoxShadow: getBoxShadow('default', color),\n hoverBackgroundColor: resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'hover' }),\n ),\n hoverBoxShadow: getBoxShadow('hover', color),\n hoverIconColor: getIn(\n theme.colors,\n getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'hover',\n }),\n ),\n focusBackgroundColor: resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'focus' }),\n ),\n focusBoxShadow: getBoxShadow('focus', color),\n focusRingColor: getIn(theme.colors, 'surface.border.primary.muted'),\n borderRadius: makeBorderSize(theme.border.radius[_borderRadius ?? buttonBorderRadius[size]]),\n motionDuration: 'duration.xquick',\n motionEasing: 'easing.standard',\n ...(isReactNative() && !isDisabled ? getNativeShadowColors(color) : {}),\n };\n\n if (isDisabled) {\n const disabledBackgroundColor = resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'disabled' }),\n );\n props.iconColor = getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'disabled',\n }) as IconColor;\n props.textColor = getTextColorToken({\n property: 'text',\n variant,\n color,\n state: 'disabled',\n }) as BaseTextProps['color'];\n props.defaultBackgroundColor = disabledBackgroundColor;\n props.defaultBoxShadow = getBoxShadow('disabled', color);\n props.hoverBackgroundColor = disabledBackgroundColor;\n props.hoverBoxShadow = getBoxShadow('disabled', color);\n props.focusBackgroundColor = disabledBackgroundColor;\n props.focusBoxShadow = getBoxShadow('disabled', color);\n }\n\n return props;\n};\n\nconst ButtonContent = styled(BaseBox)<{ isHidden: boolean }>(({ isHidden }) => ({\n opacity: isHidden ? 0 : 1,\n}));\n\nconst _BaseButton: React.ForwardRefRenderFunction<BladeElementRef, BaseButtonProps> = (\n {\n href,\n target,\n rel,\n tabIndex,\n id,\n variant = 'primary',\n color = 'primary',\n size = 'medium',\n icon: Icon,\n iconPosition = 'left',\n isDisabled = false,\n isFullWidth = false,\n isLoading = false,\n onClick,\n onBlur,\n onKeyDown,\n type = 'button',\n children,\n testID,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n accessibilityProps,\n onTouchEnd,\n onTouchStart,\n _borderRadius,\n _iconSize,\n _spinnerColor,\n ...rest\n },\n ref,\n) => {\n const { theme } = useTheme();\n const buttonGroupProps = useButtonGroupContext();\n const [isPressed, setIsPressed] = React.useState(false);\n const isLink = Boolean(href);\n const childrenString = getStringFromReactText(children);\n const isChildrenComponent = React.isValidElement(children);\n\n // Button cannot be disabled when its rendered as Link\n // button should be allowed to be disabled in any case...\n // either through button group or we should allow to disable an individual button\n const disabled = buttonGroupProps.isDisabled || isLoading || (isDisabled && !isLink);\n\n if (__DEV__) {\n if (!Icon && !childrenString?.trim()) {\n throwBladeError({\n message: 'At least one of icon or text is required to render a button.',\n moduleName: 'BaseButton',\n });\n }\n }\n\n const prevLoading = usePrevious(isLoading);\n\n React.useEffect(() => {\n if (isLoading) announce('Started loading');\n\n if (!isLoading && prevLoading) announce('Stopped loading');\n }, [isLoading, prevLoading]);\n\n // Keep ButtonGroup press index in sync so border-collapse / z-index can\n // reveal this button's highlighted right edge while pressed (RN only).\n // useLayoutEffect ensures the z-index update happens before paint, keeping\n // it in sync with Reanimated's UI-thread press state change.\n React.useLayoutEffect(() => {\n if (typeof buttonGroupProps.buttonIndex !== 'number') return;\n const { buttonIndex, setPressedButtonIndex } = buttonGroupProps;\n if (isPressed) {\n setPressedButtonIndex?.(buttonIndex);\n } else {\n // Only clear if this button still owns the pressed index — otherwise a\n // multi-touch release on A would wipe B's press state.\n setPressedButtonIndex?.((prev) => (prev === buttonIndex ? null : prev));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isPressed, buttonGroupProps.buttonIndex]);\n\n const {\n defaultBackgroundColor,\n defaultBoxShadow,\n minHeight,\n height,\n width,\n buttonPaddingTop,\n buttonPaddingBottom,\n buttonPaddingLeft,\n buttonPaddingRight,\n focusBoxShadow,\n focusBackgroundColor,\n focusRingColor,\n fontSize,\n hoverBoxShadow,\n hoverBackgroundColor,\n hoverIconColor,\n iconColor,\n iconSize,\n spinnerSize,\n lineHeight,\n text,\n textColor,\n borderRadius,\n motionDuration,\n motionEasing,\n shadowHighlightColor,\n shadowHighlightHeight,\n shadowBottomColor,\n shadowBottomHeight,\n shadowBorderColor,\n focusShadowBorderColor,\n shadowRingWidth,\n isShadowGradientVisible,\n } = getProps({\n buttonTypographyTokens: buttonTypography,\n childrenString,\n isDisabled: disabled,\n size: buttonGroupProps.size ?? size,\n variant: buttonGroupProps.variant ?? variant,\n theme,\n color: buttonGroupProps.color ?? color,\n hasIcon: Boolean(Icon),\n _borderRadius,\n _iconSize,\n });\n\n const renderElement = React.useMemo(() => getRenderElement(href), [href]);\n const defaultRole = isLink ? 'link' : 'button';\n\n // On web, ButtonGroup flattens the child buttons' border radius via CSS child\n // selectors and rounds only the outer edges using the group container's\n // `overflow: hidden` + `borderRadius`. React Native has no CSS cascade, so we\n // flatten each button's border radius to 0 here and let the group container do\n // the outer rounding — otherwise the inner (middle) buttons show rounded corners.\n // An explicit `isInsideButtonGroup` flag set by ButtonGroupContext signals we're\n // inside a group; this avoids relying on the presence of `variant` in the\n // default context.\n const isInsideRNButtonGroup = isReactNative() && Boolean(buttonGroupProps.isInsideButtonGroup);\n\n // buttonBorderRadiusValue flattens the base borderRadius to 0 for all buttons\n // in a group. buttonBorderRadii provides per-corner rounding for the outer\n // edges of the first/last buttons. Both are needed: the base value ensures the\n // Pressable itself is square, while borderRadii rounds only the outer corners\n // via per-corner style overrides (and feeds the SVG border overlay).\n const buttonBorderRadiusValue = isInsideRNButtonGroup ? makeBorderSize(0) : borderRadius;\n\n // The group container clips with `overflow: hidden` + `borderRadius`. Since the\n // buttons are square (radius 0), the native border overlay (drawn as a square\n // ring) gets clipped at the group's rounded outer corners. To match web, round\n // only the outer corners of the first/last buttons (both the background and the\n // border overlay) so the ring follows the rounded corner instead of being cut.\n const groupCornerRadius = isInsideRNButtonGroup\n ? theme.border.radius[buttonBorderRadius[buttonGroupProps.size ?? size]]\n : 0;\n const isFirstInGroup = Boolean(buttonGroupProps.isFirstInButtonGroup);\n const isLastInGroup = Boolean(buttonGroupProps.isLastInButtonGroup);\n const buttonBorderRadii = isInsideRNButtonGroup\n ? {\n topLeft: isFirstInGroup ? groupCornerRadius : 0,\n bottomLeft: isFirstInGroup ? groupCornerRadius : 0,\n topRight: isLastInGroup ? groupCornerRadius : 0,\n bottomRight: isLastInGroup ? groupCornerRadius : 0,\n }\n : undefined;\n\n // ButtonGroup computes isGroupBorderCollapsed based on its variant and passes it\n // through context, so BaseButton doesn't need to inspect the variant string.\n const isGroupBorderCollapsed =\n isInsideRNButtonGroup && !isFirstInGroup && Boolean(buttonGroupProps.isGroupBorderCollapsed);\n\n // Match web ButtonGroup: only the first child keeps the radial glow\n // (`backgroundImage: none` on `:not(:first-child)`). On native the white\n // top/left \"glassy\" edge also comes from the inset highlight stroke mapped\n // from box-shadow — suppress that on non-first buttons too so junctions\n // don't show a white left edge on Share/Download.\n const isNonFirstInButtonGroup = isInsideRNButtonGroup && !isFirstInGroup;\n const showShadowGradient = Boolean(isShadowGradientVisible) && !isNonFirstInButtonGroup;\n const effectiveShadowHighlightColor = isNonFirstInButtonGroup ? undefined : shadowHighlightColor;\n\n // Web ButtonGroup sets `flex: 1` on children when isFullWidth. On native,\n // isFullWidth alone applies `width: 100%`, which overflows in a row — use\n // flex instead so siblings share space equally.\n const isInsideFullWidthButtonGroup =\n isInsideRNButtonGroup && Boolean(buttonGroupProps.isFullWidth ?? isFullWidth);\n\n const handlePointerPressedIn = React.useCallback(() => {\n if (disabled) return;\n setIsPressed(true);\n }, [disabled]);\n\n const handlePointerPressedOut = React.useCallback(() => {\n if (disabled) return;\n setIsPressed(false);\n }, [disabled]);\n\n const handleKeyboardPressedIn = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n setIsPressed(true);\n }\n },\n [disabled],\n );\n\n const handleKeyboardPressedOut = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n setIsPressed(false);\n }\n },\n [disabled],\n );\n\n return (\n <StyledBaseButton\n ref={ref as any}\n id={id}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: On React Native it will always be undefined but TS doesn't understand that\n as={renderElement}\n href={href}\n target={target}\n rel={rel}\n accessibilityProps={{\n ...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? defaultRole,\n }),\n }}\n variant={buttonGroupProps.variant ?? variant}\n color={buttonGroupProps.color ?? color}\n size={buttonGroupProps.size ?? size}\n isLoading={isLoading}\n disabled={disabled}\n minHeight={minHeight}\n buttonPaddingTop={buttonPaddingTop}\n buttonPaddingBottom={buttonPaddingBottom}\n buttonPaddingLeft={buttonPaddingLeft}\n buttonPaddingRight={buttonPaddingRight}\n defaultBackgroundColor={defaultBackgroundColor}\n defaultBoxShadow={defaultBoxShadow}\n focusBoxShadow={focusBoxShadow}\n focusBackgroundColor={focusBackgroundColor}\n focusRingColor={focusRingColor}\n hoverBoxShadow={hoverBoxShadow}\n hoverBackgroundColor={hoverBackgroundColor}\n isFullWidth={buttonGroupProps.isFullWidth ?? isFullWidth}\n onClick={onClick}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n tabIndex={tabIndex}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n // Setting type for web fails it on native typecheck and vice versa\n onKeyDown={(event: any) => {\n handleKeyboardPressedIn(event);\n onKeyDown?.(event);\n }}\n onTouchStart={(event: React.TouchEvent) => {\n handlePointerPressedIn();\n onTouchStart?.(event);\n }}\n onTouchEnd={(event: React.TouchEvent) => {\n handlePointerPressedOut();\n onTouchEnd?.(event);\n }}\n type={type}\n borderRadius={buttonBorderRadiusValue}\n {...(buttonBorderRadii ? { borderRadii: buttonBorderRadii } : {})}\n {...(isGroupBorderCollapsed ? { isGroupBorderCollapsed } : {})}\n {...(isNonFirstInButtonGroup ? { isInsetShadowSidesFlattened: true } : {})}\n {...(isInsideFullWidthButtonGroup ? { isInsideFullWidthButtonGroup: true } : {})}\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n height={height}\n width={width}\n isPressed={isPressed}\n hoverIconColor={\n isDisabled\n ? getIn(theme.colors, iconColor as DotNotationToken<Theme['colors']>)\n : hoverIconColor\n }\n onMouseDown={(event: React.MouseEvent) => {\n handlePointerPressedIn();\n onMouseDown?.(event);\n }}\n onMouseUp={handlePointerPressedOut}\n {...(!isReactNative()\n ? { onMouseOut: handlePointerPressedOut, onKeyUp: handleKeyboardPressedOut }\n : {})}\n shadowHighlightColor={effectiveShadowHighlightColor}\n shadowHighlightHeight={isNonFirstInButtonGroup ? undefined : shadowHighlightHeight}\n shadowBottomColor={shadowBottomColor}\n shadowBottomHeight={shadowBottomHeight}\n shadowBorderColor={shadowBorderColor}\n focusShadowBorderColor={focusShadowBorderColor}\n shadowRingWidth={shadowRingWidth}\n isShadowGradientVisible={showShadowGradient}\n {...metaAttribute({ name: MetaConstants.Button, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <AnimatedButtonContent\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n isPressed={isPressed}\n >\n {isLoading ? (\n <BaseBox\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n position=\"absolute\"\n top=\"0px\"\n left=\"0px\"\n bottom=\"0px\"\n right=\"0px\"\n zIndex={1}\n >\n <BaseSpinner\n accessibilityLabel=\"Loading\"\n size={spinnerSize}\n color={_spinnerColor ?? getSpinnerColor({ variant, color })}\n />\n </BaseBox>\n ) : null}\n <ButtonContent\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flex={1}\n isHidden={isLoading}\n zIndex={1}\n >\n {Icon && iconPosition == 'left' ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={iconSize} color={iconColor} />\n </BaseBox>\n ) : null}\n {text ? (\n isChildrenComponent ? (\n children\n ) : (\n <BaseText\n marginX=\"spacing.2\"\n lineHeight={lineHeight}\n fontSize={fontSize}\n // figma and web have different font-smoothing properties\n // which causes web version of button text to look much bolder\n // than figma version. To fix this we are changing font-weight from 600 to 500\n // https://forum.figma.com/t/why-does-a-font-weight-in-figma-seem-lighter-than-the-same-weight-in-the-browser/2207\n fontWeight=\"medium\"\n textAlign=\"center\"\n color={textColor}\n >\n {text}\n </BaseText>\n )\n ) : null}\n {Icon && iconPosition == 'right' ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={iconSize} color={iconColor} />\n </BaseBox>\n ) : null}\n </ButtonContent>\n </AnimatedButtonContent>\n </StyledBaseButton>\n );\n};\n\nconst BaseButton = assignWithoutSideEffects(React.forwardRef(_BaseButton), {\n displayName: 'BaseButton',\n});\n\nexport default BaseButton;\n"],"names":["isStaticOrTransparentColor","color","getSpinnerColor","_ref","variant","spinnerColor","black","primary","base","assertBlackIsPrimary","throwBladeError","moduleName","message","getRenderElement","href","isReactNative","undefined","getBackgroundColorToken","_ref2","state","_state","gradientColor","tokens","backgroundGradient","white","Error","transparent","getBoxShadowToken","_ref3","tokenColor","boxShadow","getTextColorToken","_ref4","property","textColor","tertiary","getProps","_ref5","buttonTypographyTokens","childrenString","isDisabled","size","theme","hasIcon","_borderRadius","_iconSize","isIconOnly","trim","length","resolveBackgroundValue","value","startsWith","getIn","colors","getDefaultBackground","getBoxShadow","btnColor","shadowTokens","shadows","map","shadow","resolvedColor","y","blur","spread","join","getNativeShadowColors","resolveShadowColors","highlightColor","bottomColor","borderColor","highlightHeight","bottomHeight","ringWidth","resolved","Math","abs","defaultColors","focusColors","shadowHighlightColor","shadowHighlightHeight","shadowBottomColor","shadowBottomHeight","shadowBorderColor","focusShadowBorderColor","shadowRingWidth","isShadowGradientVisible","props","Object","assign","iconSize","buttonIconOnlySizeToIconSizeMap","buttonSizeToIconSizeMap","spinnerSize","buttonSizeToSpinnerSizeMap","fontSize","fonts","lineHeight","lineHeights","minHeight","makeSize","buttonMinHeight","height","buttonIconOnlyHeightWidth","width","iconColor","buttonPaddingTop","makeSpace","spacing","buttonPadding","top","buttonPaddingBottom","bottom","buttonPaddingLeft","left","buttonPaddingRight","right","text","defaultBackgroundColor","defaultBoxShadow","hoverBackgroundColor","hoverBoxShadow","hoverIconColor","focusBackgroundColor","focusBoxShadow","focusRingColor","borderRadius","makeBorderSize","border","radius","buttonBorderRadius","motionDuration","motionEasing","disabledBackgroundColor","ButtonContent","styled","BaseBox","_ref6","isHidden","opacity","_BaseButton","_ref7","ref","_buttonGroupProps$siz","_buttonGroupProps$var","_buttonGroupProps$col","_buttonGroupProps$siz2","_buttonGroupProps$isF","_accessibilityProps$r","_buttonGroupProps$var2","_buttonGroupProps$col2","_buttonGroupProps$siz3","_buttonGroupProps$isF2","target","rel","tabIndex","id","_ref7$variant","_ref7$color","_ref7$size","Icon","icon","_ref7$iconPosition","iconPosition","_ref7$isDisabled","_ref7$isFullWidth","isFullWidth","_ref7$isLoading","isLoading","onClick","onBlur","onKeyDown","_ref7$type","type","children","testID","onFocus","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","accessibilityProps","onTouchEnd","onTouchStart","_spinnerColor","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","buttonGroupProps","useButtonGroupContext","_React$useState","React","useState","_React$useState2","_slicedToArray","isPressed","setIsPressed","isLink","Boolean","getStringFromReactText","isChildrenComponent","isValidElement","disabled","__DEV__","prevLoading","usePrevious","useEffect","announce","useLayoutEffect","buttonIndex","setPressedButtonIndex","prev","_getProps","buttonTypography","renderElement","useMemo","defaultRole","isInsideRNButtonGroup","isInsideButtonGroup","buttonBorderRadiusValue","groupCornerRadius","isFirstInGroup","isFirstInButtonGroup","isLastInGroup","isLastInButtonGroup","buttonBorderRadii","topLeft","bottomLeft","topRight","bottomRight","isGroupBorderCollapsed","isNonFirstInButtonGroup","showShadowGradient","effectiveShadowHighlightColor","isInsideFullWidthButtonGroup","handlePointerPressedIn","useCallback","handlePointerPressedOut","handleKeyboardPressedIn","e","key","handleKeyboardPressedOut","_jsx","StyledBaseButton","as","makeAccessible","role","event","borderRadii","isInsetShadowSidesFlattened","onMouseUp","onMouseOut","onKeyUp","metaAttribute","name","MetaConstants","Button","getStyledProps","makeAnalyticsAttribute","_jsxs","AnimatedButtonContent","display","justifyContent","alignItems","position","zIndex","BaseSpinner","accessibilityLabel","flexDirection","flex","BaseText","marginX","fontWeight","textAlign","BaseButton","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"BaseButton.js","sources":["../../../../../../src/components/Button/BaseButton/BaseButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { GestureResponderEvent } from 'react-native';\nimport StyledBaseButton from './StyledBaseButton';\nimport type { ButtonTypography, ButtonBoxShadow } from './buttonTokens';\nimport {\n textColor,\n backgroundGradient,\n boxShadow,\n spinnerColor,\n buttonIconOnlySizeToIconSizeMap,\n typography as buttonTypography,\n minHeight as buttonMinHeight,\n buttonSizeToIconSizeMap,\n buttonSizeToSpinnerSizeMap,\n buttonPadding,\n buttonIconOnlyHeightWidth,\n buttonBorderRadius,\n} from './buttonTokens';\nimport type { BaseButtonStyleProps, IconColor } from './types';\nimport AnimatedButtonContent from './AnimatedButtonContent';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { BaseLinkProps } from '~components/Link/BaseLink';\nimport type { Theme } from '~components/BladeProvider';\nimport type { IconComponent, IconSize } from '~components/Icons';\nimport type { Platform } from '~utils';\nimport { isReactNative } from '~utils';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { useButtonGroupContext } from '~components/ButtonGroup/ButtonGroupContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { useTheme } from '~components/BladeProvider';\nimport { announce } from '~components/LiveAnnouncer';\nimport type { BaseSpinnerProps } from '~components/Spinner/BaseSpinner';\nimport { BaseSpinner } from '~components/Spinner/BaseSpinner';\nimport type { BaseBoxProps } from '~components/Box/BaseBox';\nimport BaseBox from '~components/Box/BaseBox';\nimport type {\n BladeElementRef,\n DataAnalyticsAttribute,\n StringChildrenType,\n TestID,\n} from '~utils/types';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { usePrevious } from '~utils/usePrevious';\nimport { makeSize } from '~utils/makeSize';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeSpace } from '~utils/makeSpace';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport type { BladeCommonEvents } from '~components/types';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BaseButtonCommonProps = {\n href?: BaseLinkProps['href'];\n target?: BaseLinkProps['target'];\n rel?: BaseLinkProps['rel'];\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n id?: string;\n tabIndex?: BaseBoxProps['tabIndex'];\n iconPosition?: 'left' | 'right';\n isDisabled?: boolean;\n isFullWidth?: boolean;\n onKeyDown?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n }>;\n onClick?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.MouseEvent<HTMLButtonElement>) => void;\n }>;\n type?: 'button' | 'reset' | 'submit';\n isLoading?: boolean;\n accessibilityProps?: Partial<AccessibilityProps>;\n variant?: 'primary' | 'secondary' | 'tertiary';\n color?:\n | 'primary'\n | 'white'\n | 'positive'\n | 'negative'\n | 'notice'\n | 'information'\n | 'neutral'\n | 'transparent';\n /**\n * Overrides the size-derived border radius. Used by FloatingActionButton to\n * render a pill. `round` is excluded because a percentage radius distorts on\n * a non-square button.\n */\n _borderRadius?: Exclude<keyof Theme['border']['radius'], 'round'>;\n /**\n * Overrides the size-derived icon size. Used by FloatingActionButton, whose\n * icon is larger than a `size=\"large\"` Button's.\n */\n _iconSize?: IconSize;\n /**\n * Overrides the color of the loading spinner. Used by FloatingActionButton,\n * whose contrast requirements differ from `Button`'s.\n */\n _spinnerColor?: BaseSpinnerProps['color'];\n} & TestID &\n StyledPropsBlade &\n BladeCommonEvents;\n\n/*\nMandatory children prop when icon is not provided\n*/\ntype BaseButtonWithoutIconProps = BaseButtonCommonProps & {\n icon?: undefined;\n children: StringChildrenType;\n} & DataAnalyticsAttribute;\n\n/*\n Optional children prop when icon is provided\n*/\ntype BaseButtonWithIconProps = BaseButtonCommonProps & {\n icon: IconComponent;\n children?: StringChildrenType;\n} & DataAnalyticsAttribute;\n\n/*\n With or without icon prop. We need at least an icon or a children prop present.\n*/\nexport type BaseButtonProps = BaseButtonWithIconProps | BaseButtonWithoutIconProps;\n\ntype BaseButtonColorTokenModifiers = {\n variant: NonNullable<BaseButtonProps['variant']>;\n state: 'default' | 'hover' | 'focus' | 'disabled';\n color: BaseButtonProps['color'];\n};\n\n/**\n * `white` and `transparent` are not feedback colors, so the token factories are\n * still called with `primary` and the value is looked up under its own key\n * instead of under `base`.\n */\nconst isStaticOrTransparentColor = (\n color: BaseButtonProps['color'],\n): color is 'white' | 'transparent' => color === 'white' || color === 'transparent';\n\n/**\n * The filled `neutral` surface needs inverted content and a heavier inner shadow\n * than the shared feedback treatment, so its `primary` emphasis is looked up\n * under a dedicated key. The remaining emphases fall back to `base`.\n */\nconst isFilledNeutral = (\n color: BaseButtonProps['color'],\n variant: NonNullable<BaseButtonProps['variant']>,\n): boolean => color === 'neutral' && variant === 'primary';\n\nconst getSpinnerColor = ({\n variant,\n color,\n}: {\n variant: NonNullable<BaseButtonProps['variant']>;\n color: NonNullable<BaseButtonProps['color']>;\n}): BaseSpinnerProps['color'] => {\n if (color !== 'primary' && color !== 'transparent' && color in spinnerColor) {\n return spinnerColor[color as Exclude<keyof typeof spinnerColor, 'base'>][\n variant as 'primary' | 'secondary'\n ];\n }\n\n return spinnerColor.base[variant];\n};\n\nconst getRenderElement = (href?: string): 'a' | 'button' | undefined => {\n if (isReactNative()) {\n return undefined; // as property doesn't work with react native\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n};\n\nexport const getBackgroundColorToken = ({\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers) => {\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n\n // For white and transparent colors, we use 'primary' as the base color\n // since the actual token lookup uses the white/transparent specific paths\n const gradientColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;\n const tokens = backgroundGradient(gradientColor);\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.base.transparent[_state];\n }\n\n if (color && color !== 'primary') {\n if (variant === 'tertiary') {\n throw new Error(\n `Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"${color}\"`,\n );\n }\n }\n\n return tokens.base[variant][_state];\n};\n\nexport const getBoxShadowToken = ({\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers): ButtonBoxShadow => {\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n const tokenColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;\n const tokens = boxShadow(tokenColor);\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (isFilledNeutral(color, variant)) {\n return tokens.neutral.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.base.transparent[_state];\n }\n\n return tokens.base[variant][_state];\n};\n\nexport const getTextColorToken = ({\n property,\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers & {\n property: 'icon' | 'text';\n}): DotNotationToken<Theme['colors']> => {\n const tokens = textColor(property);\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (isFilledNeutral(color, variant)) {\n return tokens.neutral.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.transparent.tertiary[_state];\n }\n\n if (color && color !== 'primary') {\n if (variant === 'tertiary') {\n throw new Error(\n `Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"${color}\"`,\n );\n }\n return tokens.color(color)[variant][_state];\n }\n\n return tokens.base[variant][_state];\n};\n\nconst getProps = ({\n buttonTypographyTokens,\n childrenString,\n isDisabled,\n size,\n theme,\n variant,\n color,\n hasIcon,\n _borderRadius,\n _iconSize,\n}: {\n buttonTypographyTokens: ButtonTypography;\n childrenString?: string;\n isDisabled: boolean;\n hasIcon: boolean;\n theme: Theme;\n size: NonNullable<BaseButtonProps['size']>;\n variant: NonNullable<BaseButtonProps['variant']>;\n color: BaseButtonProps['color'];\n _borderRadius?: BaseButtonCommonProps['_borderRadius'];\n _iconSize?: BaseButtonCommonProps['_iconSize'];\n}): BaseButtonStyleProps => {\n if (\n variant === 'tertiary' &&\n color !== 'primary' &&\n color !== 'white' &&\n color !== 'transparent'\n ) {\n throwBladeError({\n moduleName: 'BaseButton',\n message: `Tertiary variant can only be used with color: \"primary\" or \"white\" or \"transparent\" but received \"${color}\"`,\n });\n }\n\n const isIconOnly = hasIcon && (!childrenString || childrenString?.trim().length === 0);\n\n // Resolve background value - either a gradient string or a token path\n const resolveBackgroundValue = (value: string): string => {\n if (value.startsWith('linear-gradient')) {\n return value;\n }\n return getIn(theme.colors, value as DotNotationToken<Theme['colors']>);\n };\n\n const getDefaultBackground = (): string => {\n return resolveBackgroundValue(getBackgroundColorToken({ variant, color, state: 'default' }));\n };\n\n const getBoxShadow = (\n state: 'default' | 'hover' | 'focus' | 'disabled',\n btnColor: BaseButtonProps['color'],\n ): string | undefined => {\n const shadowTokens = getBoxShadowToken({ variant, color: btnColor, state });\n\n if (shadowTokens.length === 0) {\n return undefined;\n }\n\n const shadows = shadowTokens.map((shadow) => {\n const resolvedColor = getIn(theme.colors, shadow.color);\n return `inset 0 ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${resolvedColor}`;\n });\n\n return shadows.join(', ');\n };\n\n const getNativeShadowColors = (\n btnColor: BaseButtonProps['color'],\n ): {\n shadowHighlightColor?: string;\n shadowHighlightHeight?: number;\n shadowBottomColor?: string;\n shadowBottomHeight?: number;\n shadowBorderColor?: string;\n /**\n * Border color from the highlighted/focus box-shadow tokens. Used on press\n * to match web `&:active { boxShadow: focusBoxShadow }` (e.g. secondary/\n * tertiary gray.default → gray.highlighted).\n */\n focusShadowBorderColor?: string;\n shadowRingWidth?: number;\n isShadowGradientVisible?: boolean;\n } => {\n const resolveShadowColors = (\n shadowTokens: ReturnType<typeof getBoxShadowToken>,\n ): {\n highlightColor?: string;\n bottomColor?: string;\n borderColor?: string;\n highlightHeight: number;\n bottomHeight: number;\n ringWidth: number;\n } => {\n let highlightColor: string | undefined,\n bottomColor: string | undefined,\n borderColor: string | undefined;\n let highlightHeight = 0;\n let bottomHeight = 0;\n let ringWidth = 0;\n\n for (const shadow of shadowTokens) {\n const resolved = getIn(theme.colors, shadow.color);\n if (shadow.y > 0 && !highlightColor) {\n highlightColor = resolved;\n highlightHeight = shadow.y;\n } else if (shadow.y < 0 && !bottomColor) {\n bottomColor = resolved;\n bottomHeight = Math.abs(shadow.y);\n } else if (shadow.spread > 0 && !borderColor) {\n borderColor = resolved;\n ringWidth = shadow.spread;\n }\n }\n\n return { highlightColor, bottomColor, borderColor, highlightHeight, bottomHeight, ringWidth };\n };\n\n const defaultColors = resolveShadowColors(\n getBoxShadowToken({ variant, color: btnColor, state: 'default' }),\n );\n if (!defaultColors.highlightColor && !defaultColors.bottomColor && !defaultColors.borderColor) {\n return {};\n }\n\n const focusColors = resolveShadowColors(\n getBoxShadowToken({ variant, color: btnColor, state: 'focus' }),\n );\n\n return {\n shadowHighlightColor: defaultColors.highlightColor,\n shadowHighlightHeight:\n defaultColors.highlightHeight !== 0 ? defaultColors.highlightHeight : undefined,\n shadowBottomColor: defaultColors.bottomColor,\n shadowBottomHeight: defaultColors.bottomHeight !== 0 ? defaultColors.bottomHeight : undefined,\n shadowBorderColor: defaultColors.borderColor,\n focusShadowBorderColor: focusColors.borderColor,\n shadowRingWidth: defaultColors.ringWidth !== 0 ? defaultColors.ringWidth : undefined,\n isShadowGradientVisible: variant === 'primary',\n };\n };\n\n const props: BaseButtonStyleProps = {\n iconSize:\n _iconSize ??\n (isIconOnly ? buttonIconOnlySizeToIconSizeMap[size] : buttonSizeToIconSizeMap[size]),\n spinnerSize: buttonSizeToSpinnerSizeMap[size],\n fontSize: buttonTypographyTokens.fonts.size[size],\n lineHeight: buttonTypographyTokens.lineHeights[size],\n minHeight: makeSize(buttonMinHeight[size]),\n height: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,\n width: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,\n iconColor: getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'default',\n }) as IconColor,\n textColor: getTextColorToken({\n property: 'text',\n variant,\n color,\n state: 'default',\n }) as BaseTextProps['color'],\n buttonPaddingTop: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].top]),\n buttonPaddingBottom: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].bottom]),\n buttonPaddingLeft: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].left]),\n buttonPaddingRight: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].right]),\n text: childrenString?.trim(),\n defaultBackgroundColor: getDefaultBackground(),\n defaultBoxShadow: getBoxShadow('default', color),\n hoverBackgroundColor: resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'hover' }),\n ),\n hoverBoxShadow: getBoxShadow('hover', color),\n hoverIconColor: getIn(\n theme.colors,\n getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'hover',\n }),\n ),\n focusBackgroundColor: resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'focus' }),\n ),\n focusBoxShadow: getBoxShadow('focus', color),\n // The system focus ring is a faded primary blue, which the design replaces\n // with a faded neutral ring on the filled neutral surface.\n focusRingColor: getIn(\n theme.colors,\n isFilledNeutral(color, variant)\n ? 'interactive.border.neutral.faded'\n : 'surface.border.primary.muted',\n ),\n borderRadius: makeBorderSize(theme.border.radius[_borderRadius ?? buttonBorderRadius[size]]),\n motionDuration: 'duration.xquick',\n motionEasing: 'easing.standard',\n ...(isReactNative() && !isDisabled ? getNativeShadowColors(color) : {}),\n };\n\n if (isDisabled) {\n const disabledBackgroundColor = resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'disabled' }),\n );\n props.iconColor = getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'disabled',\n }) as IconColor;\n props.textColor = getTextColorToken({\n property: 'text',\n variant,\n color,\n state: 'disabled',\n }) as BaseTextProps['color'];\n props.defaultBackgroundColor = disabledBackgroundColor;\n props.defaultBoxShadow = getBoxShadow('disabled', color);\n props.hoverBackgroundColor = disabledBackgroundColor;\n props.hoverBoxShadow = getBoxShadow('disabled', color);\n props.focusBackgroundColor = disabledBackgroundColor;\n props.focusBoxShadow = getBoxShadow('disabled', color);\n }\n\n return props;\n};\n\nconst ButtonContent = styled(BaseBox)<{ isHidden: boolean }>(({ isHidden }) => ({\n opacity: isHidden ? 0 : 1,\n}));\n\nconst _BaseButton: React.ForwardRefRenderFunction<BladeElementRef, BaseButtonProps> = (\n {\n href,\n target,\n rel,\n tabIndex,\n id,\n variant = 'primary',\n color = 'primary',\n size = 'medium',\n icon: Icon,\n iconPosition = 'left',\n isDisabled = false,\n isFullWidth = false,\n isLoading = false,\n onClick,\n onBlur,\n onKeyDown,\n type = 'button',\n children,\n testID,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n accessibilityProps,\n onTouchEnd,\n onTouchStart,\n _borderRadius,\n _iconSize,\n _spinnerColor,\n ...rest\n },\n ref,\n) => {\n const { theme } = useTheme();\n const buttonGroupProps = useButtonGroupContext();\n const [isPressed, setIsPressed] = React.useState(false);\n const isLink = Boolean(href);\n const childrenString = getStringFromReactText(children);\n const isChildrenComponent = React.isValidElement(children);\n\n // Button cannot be disabled when its rendered as Link\n // button should be allowed to be disabled in any case...\n // either through button group or we should allow to disable an individual button\n const disabled = buttonGroupProps.isDisabled || isLoading || (isDisabled && !isLink);\n\n if (__DEV__) {\n if (!Icon && !childrenString?.trim()) {\n throwBladeError({\n message: 'At least one of icon or text is required to render a button.',\n moduleName: 'BaseButton',\n });\n }\n }\n\n const prevLoading = usePrevious(isLoading);\n\n React.useEffect(() => {\n if (isLoading) announce('Started loading');\n\n if (!isLoading && prevLoading) announce('Stopped loading');\n }, [isLoading, prevLoading]);\n\n // Keep ButtonGroup press index in sync so border-collapse / z-index can\n // reveal this button's highlighted right edge while pressed (RN only).\n // useLayoutEffect ensures the z-index update happens before paint, keeping\n // it in sync with Reanimated's UI-thread press state change.\n React.useLayoutEffect(() => {\n if (typeof buttonGroupProps.buttonIndex !== 'number') return;\n const { buttonIndex, setPressedButtonIndex } = buttonGroupProps;\n if (isPressed) {\n setPressedButtonIndex?.(buttonIndex);\n } else {\n // Only clear if this button still owns the pressed index — otherwise a\n // multi-touch release on A would wipe B's press state.\n setPressedButtonIndex?.((prev) => (prev === buttonIndex ? null : prev));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isPressed, buttonGroupProps.buttonIndex]);\n\n const {\n defaultBackgroundColor,\n defaultBoxShadow,\n minHeight,\n height,\n width,\n buttonPaddingTop,\n buttonPaddingBottom,\n buttonPaddingLeft,\n buttonPaddingRight,\n focusBoxShadow,\n focusBackgroundColor,\n focusRingColor,\n fontSize,\n hoverBoxShadow,\n hoverBackgroundColor,\n hoverIconColor,\n iconColor,\n iconSize,\n spinnerSize,\n lineHeight,\n text,\n textColor,\n borderRadius,\n motionDuration,\n motionEasing,\n shadowHighlightColor,\n shadowHighlightHeight,\n shadowBottomColor,\n shadowBottomHeight,\n shadowBorderColor,\n focusShadowBorderColor,\n shadowRingWidth,\n isShadowGradientVisible,\n } = getProps({\n buttonTypographyTokens: buttonTypography,\n childrenString,\n isDisabled: disabled,\n size: buttonGroupProps.size ?? size,\n variant: buttonGroupProps.variant ?? variant,\n theme,\n color: buttonGroupProps.color ?? color,\n hasIcon: Boolean(Icon),\n _borderRadius,\n _iconSize,\n });\n\n const renderElement = React.useMemo(() => getRenderElement(href), [href]);\n const defaultRole = isLink ? 'link' : 'button';\n\n // On web, ButtonGroup flattens the child buttons' border radius via CSS child\n // selectors and rounds only the outer edges using the group container's\n // `overflow: hidden` + `borderRadius`. React Native has no CSS cascade, so we\n // flatten each button's border radius to 0 here and let the group container do\n // the outer rounding — otherwise the inner (middle) buttons show rounded corners.\n // An explicit `isInsideButtonGroup` flag set by ButtonGroupContext signals we're\n // inside a group; this avoids relying on the presence of `variant` in the\n // default context.\n const isInsideRNButtonGroup = isReactNative() && Boolean(buttonGroupProps.isInsideButtonGroup);\n\n // buttonBorderRadiusValue flattens the base borderRadius to 0 for all buttons\n // in a group. buttonBorderRadii provides per-corner rounding for the outer\n // edges of the first/last buttons. Both are needed: the base value ensures the\n // Pressable itself is square, while borderRadii rounds only the outer corners\n // via per-corner style overrides (and feeds the SVG border overlay).\n const buttonBorderRadiusValue = isInsideRNButtonGroup ? makeBorderSize(0) : borderRadius;\n\n // The group container clips with `overflow: hidden` + `borderRadius`. Since the\n // buttons are square (radius 0), the native border overlay (drawn as a square\n // ring) gets clipped at the group's rounded outer corners. To match web, round\n // only the outer corners of the first/last buttons (both the background and the\n // border overlay) so the ring follows the rounded corner instead of being cut.\n const groupCornerRadius = isInsideRNButtonGroup\n ? theme.border.radius[buttonBorderRadius[buttonGroupProps.size ?? size]]\n : 0;\n const isFirstInGroup = Boolean(buttonGroupProps.isFirstInButtonGroup);\n const isLastInGroup = Boolean(buttonGroupProps.isLastInButtonGroup);\n const buttonBorderRadii = isInsideRNButtonGroup\n ? {\n topLeft: isFirstInGroup ? groupCornerRadius : 0,\n bottomLeft: isFirstInGroup ? groupCornerRadius : 0,\n topRight: isLastInGroup ? groupCornerRadius : 0,\n bottomRight: isLastInGroup ? groupCornerRadius : 0,\n }\n : undefined;\n\n // ButtonGroup computes isGroupBorderCollapsed based on its variant and passes it\n // through context, so BaseButton doesn't need to inspect the variant string.\n const isGroupBorderCollapsed =\n isInsideRNButtonGroup && !isFirstInGroup && Boolean(buttonGroupProps.isGroupBorderCollapsed);\n\n // Match web ButtonGroup: only the first child keeps the radial glow\n // (`backgroundImage: none` on `:not(:first-child)`). On native the white\n // top/left \"glassy\" edge also comes from the inset highlight stroke mapped\n // from box-shadow — suppress that on non-first buttons too so junctions\n // don't show a white left edge on Share/Download.\n const isNonFirstInButtonGroup = isInsideRNButtonGroup && !isFirstInGroup;\n const showShadowGradient = Boolean(isShadowGradientVisible) && !isNonFirstInButtonGroup;\n const effectiveShadowHighlightColor = isNonFirstInButtonGroup ? undefined : shadowHighlightColor;\n\n // Web ButtonGroup sets `flex: 1` on children when isFullWidth. On native,\n // isFullWidth alone applies `width: 100%`, which overflows in a row — use\n // flex instead so siblings share space equally.\n const isInsideFullWidthButtonGroup =\n isInsideRNButtonGroup && Boolean(buttonGroupProps.isFullWidth ?? isFullWidth);\n\n const handlePointerPressedIn = React.useCallback(() => {\n if (disabled) return;\n setIsPressed(true);\n }, [disabled]);\n\n const handlePointerPressedOut = React.useCallback(() => {\n if (disabled) return;\n setIsPressed(false);\n }, [disabled]);\n\n const handleKeyboardPressedIn = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n setIsPressed(true);\n }\n },\n [disabled],\n );\n\n const handleKeyboardPressedOut = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n setIsPressed(false);\n }\n },\n [disabled],\n );\n\n return (\n <StyledBaseButton\n ref={ref as any}\n id={id}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: On React Native it will always be undefined but TS doesn't understand that\n as={renderElement}\n href={href}\n target={target}\n rel={rel}\n accessibilityProps={{\n ...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? defaultRole,\n }),\n }}\n variant={buttonGroupProps.variant ?? variant}\n color={buttonGroupProps.color ?? color}\n size={buttonGroupProps.size ?? size}\n isLoading={isLoading}\n disabled={disabled}\n minHeight={minHeight}\n buttonPaddingTop={buttonPaddingTop}\n buttonPaddingBottom={buttonPaddingBottom}\n buttonPaddingLeft={buttonPaddingLeft}\n buttonPaddingRight={buttonPaddingRight}\n defaultBackgroundColor={defaultBackgroundColor}\n defaultBoxShadow={defaultBoxShadow}\n focusBoxShadow={focusBoxShadow}\n focusBackgroundColor={focusBackgroundColor}\n focusRingColor={focusRingColor}\n hoverBoxShadow={hoverBoxShadow}\n hoverBackgroundColor={hoverBackgroundColor}\n isFullWidth={buttonGroupProps.isFullWidth ?? isFullWidth}\n onClick={onClick}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n tabIndex={tabIndex}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n // Setting type for web fails it on native typecheck and vice versa\n onKeyDown={(event: any) => {\n handleKeyboardPressedIn(event);\n onKeyDown?.(event);\n }}\n onTouchStart={(event: React.TouchEvent) => {\n handlePointerPressedIn();\n onTouchStart?.(event);\n }}\n onTouchEnd={(event: React.TouchEvent) => {\n handlePointerPressedOut();\n onTouchEnd?.(event);\n }}\n type={type}\n borderRadius={buttonBorderRadiusValue}\n {...(buttonBorderRadii ? { borderRadii: buttonBorderRadii } : {})}\n {...(isGroupBorderCollapsed ? { isGroupBorderCollapsed } : {})}\n {...(isNonFirstInButtonGroup ? { isInsetShadowSidesFlattened: true } : {})}\n {...(isInsideFullWidthButtonGroup ? { isInsideFullWidthButtonGroup: true } : {})}\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n height={height}\n width={width}\n isPressed={isPressed}\n hoverIconColor={\n isDisabled\n ? getIn(theme.colors, iconColor as DotNotationToken<Theme['colors']>)\n : hoverIconColor\n }\n onMouseDown={(event: React.MouseEvent) => {\n handlePointerPressedIn();\n onMouseDown?.(event);\n }}\n onMouseUp={handlePointerPressedOut}\n {...(!isReactNative()\n ? { onMouseOut: handlePointerPressedOut, onKeyUp: handleKeyboardPressedOut }\n : {})}\n shadowHighlightColor={effectiveShadowHighlightColor}\n shadowHighlightHeight={isNonFirstInButtonGroup ? undefined : shadowHighlightHeight}\n shadowBottomColor={shadowBottomColor}\n shadowBottomHeight={shadowBottomHeight}\n shadowBorderColor={shadowBorderColor}\n focusShadowBorderColor={focusShadowBorderColor}\n shadowRingWidth={shadowRingWidth}\n isShadowGradientVisible={showShadowGradient}\n {...metaAttribute({ name: MetaConstants.Button, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <AnimatedButtonContent\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n isPressed={isPressed}\n >\n {isLoading ? (\n <BaseBox\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n position=\"absolute\"\n top=\"0px\"\n left=\"0px\"\n bottom=\"0px\"\n right=\"0px\"\n zIndex={1}\n >\n <BaseSpinner\n accessibilityLabel=\"Loading\"\n size={spinnerSize}\n color={_spinnerColor ?? getSpinnerColor({ variant, color })}\n />\n </BaseBox>\n ) : null}\n <ButtonContent\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flex={1}\n isHidden={isLoading}\n zIndex={1}\n >\n {Icon && iconPosition == 'left' ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={iconSize} color={iconColor} />\n </BaseBox>\n ) : null}\n {text ? (\n isChildrenComponent ? (\n children\n ) : (\n <BaseText\n marginX=\"spacing.2\"\n lineHeight={lineHeight}\n fontSize={fontSize}\n // figma and web have different font-smoothing properties\n // which causes web version of button text to look much bolder\n // than figma version. To fix this we are changing font-weight from 600 to 500\n // https://forum.figma.com/t/why-does-a-font-weight-in-figma-seem-lighter-than-the-same-weight-in-the-browser/2207\n fontWeight=\"medium\"\n textAlign=\"center\"\n color={textColor}\n >\n {text}\n </BaseText>\n )\n ) : null}\n {Icon && iconPosition == 'right' ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={iconSize} color={iconColor} />\n </BaseBox>\n ) : null}\n </ButtonContent>\n </AnimatedButtonContent>\n </StyledBaseButton>\n );\n};\n\nconst BaseButton = assignWithoutSideEffects(React.forwardRef(_BaseButton), {\n displayName: 'BaseButton',\n});\n\nexport default BaseButton;\n"],"names":["isStaticOrTransparentColor","color","isFilledNeutral","variant","getSpinnerColor","_ref","spinnerColor","base","getRenderElement","href","isReactNative","undefined","getBackgroundColorToken","_ref2","state","_state","gradientColor","tokens","backgroundGradient","white","Error","transparent","getBoxShadowToken","_ref3","tokenColor","boxShadow","neutral","primary","getTextColorToken","_ref4","property","textColor","tertiary","getProps","_ref5","buttonTypographyTokens","childrenString","isDisabled","size","theme","hasIcon","_borderRadius","_iconSize","throwBladeError","moduleName","message","isIconOnly","trim","length","resolveBackgroundValue","value","startsWith","getIn","colors","getDefaultBackground","getBoxShadow","btnColor","shadowTokens","shadows","map","shadow","resolvedColor","y","blur","spread","join","getNativeShadowColors","resolveShadowColors","highlightColor","bottomColor","borderColor","highlightHeight","bottomHeight","ringWidth","resolved","Math","abs","defaultColors","focusColors","shadowHighlightColor","shadowHighlightHeight","shadowBottomColor","shadowBottomHeight","shadowBorderColor","focusShadowBorderColor","shadowRingWidth","isShadowGradientVisible","props","Object","assign","iconSize","buttonIconOnlySizeToIconSizeMap","buttonSizeToIconSizeMap","spinnerSize","buttonSizeToSpinnerSizeMap","fontSize","fonts","lineHeight","lineHeights","minHeight","makeSize","buttonMinHeight","height","buttonIconOnlyHeightWidth","width","iconColor","buttonPaddingTop","makeSpace","spacing","buttonPadding","top","buttonPaddingBottom","bottom","buttonPaddingLeft","left","buttonPaddingRight","right","text","defaultBackgroundColor","defaultBoxShadow","hoverBackgroundColor","hoverBoxShadow","hoverIconColor","focusBackgroundColor","focusBoxShadow","focusRingColor","borderRadius","makeBorderSize","border","radius","buttonBorderRadius","motionDuration","motionEasing","disabledBackgroundColor","ButtonContent","styled","BaseBox","_ref6","isHidden","opacity","_BaseButton","_ref7","ref","_buttonGroupProps$siz","_buttonGroupProps$var","_buttonGroupProps$col","_buttonGroupProps$siz2","_buttonGroupProps$isF","_accessibilityProps$r","_buttonGroupProps$var2","_buttonGroupProps$col2","_buttonGroupProps$siz3","_buttonGroupProps$isF2","target","rel","tabIndex","id","_ref7$variant","_ref7$color","_ref7$size","Icon","icon","_ref7$iconPosition","iconPosition","_ref7$isDisabled","_ref7$isFullWidth","isFullWidth","_ref7$isLoading","isLoading","onClick","onBlur","onKeyDown","_ref7$type","type","children","testID","onFocus","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","accessibilityProps","onTouchEnd","onTouchStart","_spinnerColor","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","buttonGroupProps","useButtonGroupContext","_React$useState","React","useState","_React$useState2","_slicedToArray","isPressed","setIsPressed","isLink","Boolean","getStringFromReactText","isChildrenComponent","isValidElement","disabled","__DEV__","prevLoading","usePrevious","useEffect","announce","useLayoutEffect","buttonIndex","setPressedButtonIndex","prev","_getProps","buttonTypography","renderElement","useMemo","defaultRole","isInsideRNButtonGroup","isInsideButtonGroup","buttonBorderRadiusValue","groupCornerRadius","isFirstInGroup","isFirstInButtonGroup","isLastInGroup","isLastInButtonGroup","buttonBorderRadii","topLeft","bottomLeft","topRight","bottomRight","isGroupBorderCollapsed","isNonFirstInButtonGroup","showShadowGradient","effectiveShadowHighlightColor","isInsideFullWidthButtonGroup","handlePointerPressedIn","useCallback","handlePointerPressedOut","handleKeyboardPressedIn","e","key","handleKeyboardPressedOut","_jsx","StyledBaseButton","as","makeAccessible","role","event","borderRadii","isInsetShadowSidesFlattened","onMouseUp","onMouseOut","onKeyUp","metaAttribute","name","MetaConstants","Button","getStyledProps","makeAnalyticsAttribute","_jsxs","AnimatedButtonContent","display","justifyContent","alignItems","position","zIndex","BaseSpinner","accessibilityLabel","flexDirection","flex","BaseText","marginX","fontWeight","textAlign","BaseButton","assignWithoutSideEffects","forwardRef","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yfA+IA,IAAMA,0BAA0B,CAAG,SAA7BA,0BAA0BA,CAC9BC,KAA+B,CAAA,CAAA,OACMA,KAAK,GAAK,OAAO,EAAIA,KAAK,GAAK,aAAa,CAAA,CAAA,CAOnF,IAAMC,eAAe,CAAG,SAAlBA,eAAeA,CACnBD,KAA+B,CAC/BE,OAAgD,CAAA,CAAA,OACpCF,KAAK,GAAK,SAAS,EAAIE,OAAO,GAAK,SAAS,CAAA,CAAA,CAE1D,IAAMC,eAAe,CAAG,SAAlBA,eAAeA,CAAAC,IAAA,CAMY,CAL/B,IAAAF,OAAO,CAAAE,IAAA,CAAPF,OAAO,CACPF,KAAK,CAAAI,IAAA,CAALJ,KAAK,CAKL,GAAIA,KAAK,GAAK,SAAS,EAAIA,KAAK,GAAK,aAAa,EAAIA,KAAK,IAAIK,YAAY,CAAE,CAC3E,OAAOA,YAAY,CAACL,KAAK,CAA+C,CACtEE,OAAO,CACR,CACH,CAEA,OAAOG,YAAY,CAACC,IAAI,CAACJ,OAAO,CAAC,CACnC,CAAC,CAED,IAAMK,gBAAgB,CAAG,SAAnBA,gBAAgBA,CAAIC,IAAa,CAAiC,CACtE,GAAIC,aAAa,EAAE,CAAE,CACnB,OAAOC,SAAS,CAClB,CAEA,GAAIF,IAAI,CAAE,CACR,OAAO,GAAG,CACZ,CAEA,OAAO,QAAQ,CACjB,CAAC,CAEY,IAAAG,uBAAuB,CAAG,SAA1BA,uBAAuBA,CAAAC,KAAA,CAIC,CAHnC,IAAAV,OAAO,CAAAU,KAAA,CAAPV,OAAO,CACPW,KAAK,CAAAD,KAAA,CAALC,KAAK,CACLb,KAAK,CAAAY,KAAA,CAALZ,KAAK,CAEL,IAAMc,MAAM,CAAGD,KAAK,GAAK,OAAO,EAAIA,KAAK,GAAK,OAAO,CAAG,aAAa,CAAGA,KAAK,CAI7E,IAAME,aAAa,CAAGhB,0BAA0B,CAACC,KAAK,CAAC,EAAI,CAACA,KAAK,CAAG,SAAS,CAAGA,KAAK,CACrF,IAAMgB,MAAM,CAAGC,kBAAkB,CAACF,aAAa,CAAC,CAEhD,GAAIf,KAAK,GAAK,OAAO,CAAE,CACrB,OAAOgB,MAAM,CAACE,KAAK,CAAChB,OAAO,CAAC,CAACY,MAAM,CAAC,CACtC,CAEA,GAAId,KAAK,GAAK,aAAa,CAAE,CAC3B,GAAIE,OAAO,GAAK,UAAU,CAAE,CAC1B,MAAU,IAAAiB,KAAK,CACb,0EAA0EjB,OAAO,CAAA,CAAA,CACnF,CAAC,CACH,CACA,OAAOc,MAAM,CAACV,IAAI,CAACc,WAAW,CAACN,MAAM,CAAC,CACxC,CAEA,GAAId,KAAK,EAAIA,KAAK,GAAK,SAAS,CAAE,CAChC,GAAIE,OAAO,GAAK,UAAU,CAAE,CAC1B,MAAU,IAAAiB,KAAK,CACb,CAAoFnB,iFAAAA,EAAAA,KAAK,CAC3F,CAAA,CAAA,CAAC,CACH,CACF,CAEA,OAAOgB,MAAM,CAACV,IAAI,CAACJ,OAAO,CAAC,CAACY,MAAM,CAAC,CACrC,EAEa,IAAAO,iBAAiB,CAAG,SAApBA,iBAAiBA,CAAAC,KAAA,CAIwB,CAAA,IAHpDpB,OAAO,CAAAoB,KAAA,CAAPpB,OAAO,CACPW,KAAK,CAAAS,KAAA,CAALT,KAAK,CACLb,KAAK,CAAAsB,KAAA,CAALtB,KAAK,CAEL,IAAMc,MAAM,CAAGD,KAAK,GAAK,OAAO,EAAIA,KAAK,GAAK,OAAO,CAAG,aAAa,CAAGA,KAAK,CAC7E,IAAMU,UAAU,CAAGxB,0BAA0B,CAACC,KAAK,CAAC,EAAI,CAACA,KAAK,CAAG,SAAS,CAAGA,KAAK,CAClF,IAAMgB,MAAM,CAAGQ,SAAS,CAACD,UAAU,CAAC,CAEpC,GAAIvB,KAAK,GAAK,OAAO,CAAE,CACrB,OAAOgB,MAAM,CAACE,KAAK,CAAChB,OAAO,CAAC,CAACY,MAAM,CAAC,CACtC,CAEA,GAAIb,eAAe,CAACD,KAAK,CAAEE,OAAO,CAAC,CAAE,CACnC,OAAOc,MAAM,CAACS,OAAO,CAACC,OAAO,CAACZ,MAAM,CAAC,CACvC,CAEA,GAAId,KAAK,GAAK,aAAa,CAAE,CAC3B,GAAIE,OAAO,GAAK,UAAU,CAAE,CAC1B,MAAU,IAAAiB,KAAK,CACb,CAA0EjB,uEAAAA,EAAAA,OAAO,CACnF,CAAA,CAAA,CAAC,CACH,CACA,OAAOc,MAAM,CAACV,IAAI,CAACc,WAAW,CAACN,MAAM,CAAC,CACxC,CAEA,OAAOE,MAAM,CAACV,IAAI,CAACJ,OAAO,CAAC,CAACY,MAAM,CAAC,CACrC,EAEa,IAAAa,iBAAiB,CAAG,SAApBA,iBAAiBA,CAAAC,KAAA,CAOW,CAAA,IANvCC,QAAQ,CAAAD,KAAA,CAARC,QAAQ,CACR3B,OAAO,CAAA0B,KAAA,CAAP1B,OAAO,CACPW,KAAK,CAAAe,KAAA,CAALf,KAAK,CACLb,KAAK,CAAA4B,KAAA,CAAL5B,KAAK,CAIL,IAAMgB,MAAM,CAAGc,SAAS,CAACD,QAAQ,CAAC,CAClC,IAAMf,MAAM,CAAGD,KAAK,GAAK,OAAO,EAAIA,KAAK,GAAK,OAAO,CAAG,aAAa,CAAGA,KAAK,CAE7E,GAAIb,KAAK,GAAK,OAAO,CAAE,CACrB,OAAOgB,MAAM,CAACE,KAAK,CAAChB,OAAO,CAAC,CAACY,MAAM,CAAC,CACtC,CAEA,GAAIb,eAAe,CAACD,KAAK,CAAEE,OAAO,CAAC,CAAE,CACnC,OAAOc,MAAM,CAACS,OAAO,CAACC,OAAO,CAACZ,MAAM,CAAC,CACvC,CAEA,GAAId,KAAK,GAAK,aAAa,CAAE,CAC3B,GAAIE,OAAO,GAAK,UAAU,CAAE,CAC1B,UAAUiB,KAAK,CACb,CAAA,uEAAA,EAA0EjB,OAAO,CAAA,CAAA,CACnF,CAAC,CACH,CACA,OAAOc,MAAM,CAACI,WAAW,CAACW,QAAQ,CAACjB,MAAM,CAAC,CAC5C,CAEA,GAAId,KAAK,EAAIA,KAAK,GAAK,SAAS,CAAE,CAChC,GAAIE,OAAO,GAAK,UAAU,CAAE,CAC1B,MAAM,IAAIiB,KAAK,CACb,CAAA,iFAAA,EAAoFnB,KAAK,CAAA,CAAA,CAC3F,CAAC,CACH,CACA,OAAOgB,MAAM,CAAChB,KAAK,CAACA,KAAK,CAAC,CAACE,OAAO,CAAC,CAACY,MAAM,CAAC,CAC7C,CAEA,OAAOE,MAAM,CAACV,IAAI,CAACJ,OAAO,CAAC,CAACY,MAAM,CAAC,CACrC,EAEA,IAAMkB,QAAQ,CAAG,SAAXA,QAAQA,CAAAC,KAAA,CAsBc,CArB1B,IAAAC,sBAAsB,CAAAD,KAAA,CAAtBC,sBAAsB,CACtBC,cAAc,CAAAF,KAAA,CAAdE,cAAc,CACdC,UAAU,CAAAH,KAAA,CAAVG,UAAU,CACVC,IAAI,CAAAJ,KAAA,CAAJI,IAAI,CACJC,KAAK,CAAAL,KAAA,CAALK,KAAK,CACLpC,OAAO,CAAA+B,KAAA,CAAP/B,OAAO,CACPF,KAAK,CAAAiC,KAAA,CAALjC,KAAK,CACLuC,OAAO,CAAAN,KAAA,CAAPM,OAAO,CACPC,aAAa,CAAAP,KAAA,CAAbO,aAAa,CACbC,SAAS,CAAAR,KAAA,CAATQ,SAAS,CAaT,GACEvC,OAAO,GAAK,UAAU,EACtBF,KAAK,GAAK,SAAS,EACnBA,KAAK,GAAK,OAAO,EACjBA,KAAK,GAAK,aAAa,CACvB,CACA0C,eAAe,CAAC,CACdC,UAAU,CAAE,YAAY,CACxBC,OAAO,CAAE,CAAqG5C,kGAAAA,EAAAA,KAAK,CACrH,CAAA,CAAA,CAAC,CAAC,CACJ,CAEA,IAAM6C,UAAU,CAAGN,OAAO,GAAK,CAACJ,cAAc,EAAI,CAAAA,cAAc,EAAA,IAAA,CAAA,KAAA,CAAA,CAAdA,cAAc,CAAEW,IAAI,EAAE,CAACC,MAAM,IAAK,CAAC,CAAC,CAGtF,IAAMC,sBAAsB,CAAG,SAAzBA,sBAAsBA,CAAIC,KAAa,CAAa,CACxD,GAAIA,KAAK,CAACC,UAAU,CAAC,iBAAiB,CAAC,CAAE,CACvC,OAAOD,KAAK,CACd,CACA,OAAOE,KAAK,CAACb,KAAK,CAACc,MAAM,CAAEH,KAA0C,CAAC,CACxE,CAAC,CAED,IAAMI,oBAAoB,CAAG,SAAvBA,oBAAoBA,EAAiB,CACzC,OAAOL,sBAAsB,CAACrC,uBAAuB,CAAC,CAAET,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAALA,KAAK,CAAEa,KAAK,CAAE,SAAU,CAAC,CAAC,CAAC,CAC9F,CAAC,CAED,IAAMyC,YAAY,CAAG,SAAfA,YAAYA,CAChBzC,KAAiD,CACjD0C,QAAkC,CACX,CACvB,IAAMC,YAAY,CAAGnC,iBAAiB,CAAC,CAAEnB,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAAEuD,QAAQ,CAAE1C,KAAK,CAALA,KAAM,CAAC,CAAC,CAE3E,GAAI2C,YAAY,CAACT,MAAM,GAAK,CAAC,CAAE,CAC7B,OAAOrC,SAAS,CAClB,CAEA,IAAM+C,OAAO,CAAGD,YAAY,CAACE,GAAG,CAAC,SAACC,MAAM,CAAK,CAC3C,IAAMC,aAAa,CAAGT,KAAK,CAACb,KAAK,CAACc,MAAM,CAAEO,MAAM,CAAC3D,KAAK,CAAC,CACvD,OAAO,CAAA,QAAA,EAAW2D,MAAM,CAACE,CAAC,CAAA,GAAA,EAAMF,MAAM,CAACG,IAAI,CAAA,GAAA,EAAMH,MAAM,CAACI,MAAM,CAAMH,GAAAA,EAAAA,aAAa,CAAE,CAAA,CACrF,CAAC,CAAC,CAEF,OAAOH,OAAO,CAACO,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC,CAED,IAAMC,qBAAqB,CAAG,SAAxBA,qBAAqBA,CACzBV,QAAkC,CAe/B,CACH,IAAMW,mBAAmB,CAAG,SAAtBA,mBAAmBA,CACvBV,YAAkD,CAQ/C,CACH,IAAIW,cAAkC,CACpCC,WAA+B,CAC/BC,WAA+B,CACjC,IAAIC,eAAe,CAAG,CAAC,CACvB,IAAIC,YAAY,CAAG,CAAC,CACpB,IAAIC,SAAS,CAAG,CAAC,CAEjB,IAAK,IAAMb,MAAM,IAAIH,YAAY,CAAE,CACjC,IAAMiB,QAAQ,CAAGtB,KAAK,CAACb,KAAK,CAACc,MAAM,CAAEO,MAAM,CAAC3D,KAAK,CAAC,CAClD,GAAI2D,MAAM,CAACE,CAAC,CAAG,CAAC,EAAI,CAACM,cAAc,CAAE,CACnCA,cAAc,CAAGM,QAAQ,CACzBH,eAAe,CAAGX,MAAM,CAACE,CAAC,CAC5B,CAAC,KAAUF,GAAAA,MAAM,CAACE,CAAC,CAAG,CAAC,EAAI,CAACO,WAAW,CAAE,CACvCA,WAAW,CAAGK,QAAQ,CACtBF,YAAY,CAAGG,IAAI,CAACC,GAAG,CAAChB,MAAM,CAACE,CAAC,CAAC,CACnC,CAAC,KAAM,GAAIF,MAAM,CAACI,MAAM,CAAG,CAAC,EAAI,CAACM,WAAW,CAAE,CAC5CA,WAAW,CAAGI,QAAQ,CACtBD,SAAS,CAAGb,MAAM,CAACI,MAAM,CAC3B,CACF,CAEA,OAAO,CAAEI,cAAc,CAAdA,cAAc,CAAEC,WAAW,CAAXA,WAAW,CAAEC,WAAW,CAAXA,WAAW,CAAEC,eAAe,CAAfA,eAAe,CAAEC,YAAY,CAAZA,YAAY,CAAEC,SAAS,CAATA,SAAU,CAAC,CAC/F,CAAC,CAED,IAAMI,aAAa,CAAGV,mBAAmB,CACvC7C,iBAAiB,CAAC,CAAEnB,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAAEuD,QAAQ,CAAE1C,KAAK,CAAE,SAAU,CAAC,CAClE,CAAC,CACD,GAAI,CAAC+D,aAAa,CAACT,cAAc,EAAI,CAACS,aAAa,CAACR,WAAW,EAAI,CAACQ,aAAa,CAACP,WAAW,CAAE,CAC7F,OAAO,EAAE,CACX,CAEA,IAAMQ,WAAW,CAAGX,mBAAmB,CACrC7C,iBAAiB,CAAC,CAAEnB,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAAEuD,QAAQ,CAAE1C,KAAK,CAAE,OAAQ,CAAC,CAChE,CAAC,CAED,OAAO,CACLiE,oBAAoB,CAAEF,aAAa,CAACT,cAAc,CAClDY,qBAAqB,CACnBH,aAAa,CAACN,eAAe,GAAK,CAAC,CAAGM,aAAa,CAACN,eAAe,CAAG5D,SAAS,CACjFsE,iBAAiB,CAAEJ,aAAa,CAACR,WAAW,CAC5Ca,kBAAkB,CAAEL,aAAa,CAACL,YAAY,GAAK,CAAC,CAAGK,aAAa,CAACL,YAAY,CAAG7D,SAAS,CAC7FwE,iBAAiB,CAAEN,aAAa,CAACP,WAAW,CAC5Cc,sBAAsB,CAAEN,WAAW,CAACR,WAAW,CAC/Ce,eAAe,CAAER,aAAa,CAACJ,SAAS,GAAK,CAAC,CAAGI,aAAa,CAACJ,SAAS,CAAG9D,SAAS,CACpF2E,uBAAuB,CAAEnF,OAAO,GAAK,SACvC,CAAC,CACH,CAAC,CAED,IAAMoF,KAA2B,CAAAC,MAAA,CAAAC,MAAA,CAC/BC,CAAAA,QAAQ,CACNhD,SAAS,EAAA,IAAA,CAATA,SAAS,CACRI,UAAU,CAAG6C,+BAA+B,CAACrD,IAAI,CAAC,CAAGsD,uBAAuB,CAACtD,IAAI,CAAE,CACtFuD,WAAW,CAAEC,0BAA0B,CAACxD,IAAI,CAAC,CAC7CyD,QAAQ,CAAE5D,sBAAsB,CAAC6D,KAAK,CAAC1D,IAAI,CAACA,IAAI,CAAC,CACjD2D,UAAU,CAAE9D,sBAAsB,CAAC+D,WAAW,CAAC5D,IAAI,CAAC,CACpD6D,SAAS,CAAEC,QAAQ,CAACC,SAAe,CAAC/D,IAAI,CAAC,CAAC,CAC1CgE,MAAM,CAAExD,UAAU,CAAGyD,yBAAyB,CAACjE,IAAI,CAAC,CAAG3B,SAAS,CAChE6F,KAAK,CAAE1D,UAAU,CAAGyD,yBAAyB,CAACjE,IAAI,CAAC,CAAG3B,SAAS,CAC/D8F,SAAS,CAAE7E,iBAAiB,CAAC,CAC3BE,QAAQ,CAAE,MAAM,CAChB3B,OAAO,CAAPA,OAAO,CACPF,KAAK,CAALA,KAAK,CACLa,KAAK,CAAE,SACT,CAAC,CAAc,CACfiB,SAAS,CAAEH,iBAAiB,CAAC,CAC3BE,QAAQ,CAAE,MAAM,CAChB3B,OAAO,CAAPA,OAAO,CACPF,KAAK,CAALA,KAAK,CACLa,KAAK,CAAE,SACT,CAAC,CAA2B,CAC5B4F,gBAAgB,CAAE5D,UAAU,CAAG6D,SAAS,CAAC,CAAC,CAAC,CAAGA,SAAS,CAACpE,KAAK,CAACqE,OAAO,CAACC,aAAa,CAACvE,IAAI,CAAC,CAACwE,GAAG,CAAC,CAAC,CAC/FC,mBAAmB,CAAEjE,UAAU,CAC3B6D,SAAS,CAAC,CAAC,CAAC,CACZA,SAAS,CAACpE,KAAK,CAACqE,OAAO,CAACC,aAAa,CAACvE,IAAI,CAAC,CAAC0E,MAAM,CAAC,CAAC,CACxDC,iBAAiB,CAAEnE,UAAU,CACzB6D,SAAS,CAAC,CAAC,CAAC,CACZA,SAAS,CAACpE,KAAK,CAACqE,OAAO,CAACC,aAAa,CAACvE,IAAI,CAAC,CAAC4E,IAAI,CAAC,CAAC,CACtDC,kBAAkB,CAAErE,UAAU,CAC1B6D,SAAS,CAAC,CAAC,CAAC,CACZA,SAAS,CAACpE,KAAK,CAACqE,OAAO,CAACC,aAAa,CAACvE,IAAI,CAAC,CAAC8E,KAAK,CAAC,CAAC,CACvDC,IAAI,CAAEjF,cAAc,EAAA,IAAA,CAAA,KAAA,CAAA,CAAdA,cAAc,CAAEW,IAAI,EAAE,CAC5BuE,sBAAsB,CAAEhE,oBAAoB,EAAE,CAC9CiE,gBAAgB,CAAEhE,YAAY,CAAC,SAAS,CAAEtD,KAAK,CAAC,CAChDuH,oBAAoB,CAAEvE,sBAAsB,CAC1CrC,uBAAuB,CAAC,CAAET,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAALA,KAAK,CAAEa,KAAK,CAAE,OAAQ,CAAC,CAC5D,CAAC,CACD2G,cAAc,CAAElE,YAAY,CAAC,OAAO,CAAEtD,KAAK,CAAC,CAC5CyH,cAAc,CAAEtE,KAAK,CACnBb,KAAK,CAACc,MAAM,CACZzB,iBAAiB,CAAC,CAChBE,QAAQ,CAAE,MAAM,CAChB3B,OAAO,CAAPA,OAAO,CACPF,KAAK,CAALA,KAAK,CACLa,KAAK,CAAE,OACT,CAAC,CACH,CAAC,CACD6G,oBAAoB,CAAE1E,sBAAsB,CAC1CrC,uBAAuB,CAAC,CAAET,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAALA,KAAK,CAAEa,KAAK,CAAE,OAAQ,CAAC,CAC5D,CAAC,CACD8G,cAAc,CAAErE,YAAY,CAAC,OAAO,CAAEtD,KAAK,CAAC,CAG5C4H,cAAc,CAAEzE,KAAK,CACnBb,KAAK,CAACc,MAAM,CACZnD,eAAe,CAACD,KAAK,CAAEE,OAAO,CAAC,CAC3B,kCAAkC,CAClC,8BACN,CAAC,CACD2H,YAAY,CAAEC,cAAc,CAACxF,KAAK,CAACyF,MAAM,CAACC,MAAM,CAACxF,aAAa,EAAbA,IAAAA,CAAAA,aAAa,CAAIyF,kBAAkB,CAAC5F,IAAI,CAAC,CAAC,CAAC,CAC5F6F,cAAc,CAAE,iBAAiB,CACjCC,YAAY,CAAE,iBAAiB,CAC3B1H,CAAAA,aAAa,EAAE,EAAI,CAAC2B,UAAU,CAAG6B,qBAAqB,CAACjE,KAAK,CAAC,CAAG,EAAE,CACvE,CAED,GAAIoC,UAAU,CAAE,CACd,IAAMgG,uBAAuB,CAAGpF,sBAAsB,CACpDrC,uBAAuB,CAAC,CAAET,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAALA,KAAK,CAAEa,KAAK,CAAE,UAAW,CAAC,CAC/D,CAAC,CACDyE,KAAK,CAACkB,SAAS,CAAG7E,iBAAiB,CAAC,CAClCE,QAAQ,CAAE,MAAM,CAChB3B,OAAO,CAAPA,OAAO,CACPF,KAAK,CAALA,KAAK,CACLa,KAAK,CAAE,UACT,CAAC,CAAc,CACfyE,KAAK,CAACxD,SAAS,CAAGH,iBAAiB,CAAC,CAClCE,QAAQ,CAAE,MAAM,CAChB3B,OAAO,CAAPA,OAAO,CACPF,KAAK,CAALA,KAAK,CACLa,KAAK,CAAE,UACT,CAAC,CAA2B,CAC5ByE,KAAK,CAAC+B,sBAAsB,CAAGe,uBAAuB,CACtD9C,KAAK,CAACgC,gBAAgB,CAAGhE,YAAY,CAAC,UAAU,CAAEtD,KAAK,CAAC,CACxDsF,KAAK,CAACiC,oBAAoB,CAAGa,uBAAuB,CACpD9C,KAAK,CAACkC,cAAc,CAAGlE,YAAY,CAAC,UAAU,CAAEtD,KAAK,CAAC,CACtDsF,KAAK,CAACoC,oBAAoB,CAAGU,uBAAuB,CACpD9C,KAAK,CAACqC,cAAc,CAAGrE,YAAY,CAAC,UAAU,CAAEtD,KAAK,CAAC,CACxD,CAEA,OAAOsF,KAAK,CACd,CAAC,CAED,IAAM+C,aAAa,CAAGC,MAAM,CAACC,OAAO,CAAC,CAAwB,SAAAC,KAAA,CAAA,CAAA,IAAGC,QAAQ,CAAAD,KAAA,CAARC,QAAQ,CAAA,OAAQ,CAC9EC,OAAO,CAAED,QAAQ,CAAG,CAAC,CAAG,CAC1B,CAAC,CAAC,CAAA,CAAC,CAEH,IAAME,WAA6E,CAAG,SAAhFA,WAA6EA,CAAAC,KAAA,CAmCjFC,GAAG,CACA,CAAAC,IAAAA,qBAAA,CAAAC,qBAAA,CAAAC,qBAAA,CAAAC,sBAAA,CAAAC,qBAAA,CAAAC,qBAAA,CAAAC,sBAAA,CAAAC,sBAAA,CAAAC,sBAAA,CAAAC,sBAAA,CAAA,IAlCD/I,IAAI,CAAAoI,KAAA,CAAJpI,IAAI,CACJgJ,MAAM,CAAAZ,KAAA,CAANY,MAAM,CACNC,GAAG,CAAAb,KAAA,CAAHa,GAAG,CACHC,QAAQ,CAAAd,KAAA,CAARc,QAAQ,CACRC,EAAE,CAAAf,KAAA,CAAFe,EAAE,CAAAC,aAAA,CAAAhB,KAAA,CACF1I,OAAO,CAAPA,OAAO,CAAA0J,aAAA,GAAG,KAAA,CAAA,CAAA,SAAS,CAAAA,aAAA,CAAAC,WAAA,CAAAjB,KAAA,CACnB5I,KAAK,CAALA,KAAK,CAAA6J,WAAA,UAAG,SAAS,CAAAA,WAAA,CAAAC,UAAA,CAAAlB,KAAA,CACjBvG,IAAI,CAAJA,IAAI,CAAAyH,UAAA,GAAA,KAAA,CAAA,CAAG,QAAQ,CAAAA,UAAA,CACTC,IAAI,CAAAnB,KAAA,CAAVoB,IAAI,CAAAC,kBAAA,CAAArB,KAAA,CACJsB,YAAY,CAAZA,YAAY,CAAAD,kBAAA,GAAA,KAAA,CAAA,CAAG,MAAM,CAAAA,kBAAA,CAAAE,gBAAA,CAAAvB,KAAA,CACrBxG,UAAU,CAAVA,UAAU,CAAA+H,gBAAA,GAAA,KAAA,CAAA,CAAG,KAAK,CAAAA,gBAAA,CAAAC,iBAAA,CAAAxB,KAAA,CAClByB,WAAW,CAAXA,WAAW,CAAAD,iBAAA,GAAG,KAAA,CAAA,CAAA,KAAK,CAAAA,iBAAA,CAAAE,eAAA,CAAA1B,KAAA,CACnB2B,SAAS,CAATA,SAAS,CAAAD,eAAA,UAAG,KAAK,CAAAA,eAAA,CACjBE,OAAO,CAAA5B,KAAA,CAAP4B,OAAO,CACPC,MAAM,CAAA7B,KAAA,CAAN6B,MAAM,CACNC,UAAS,CAAA9B,KAAA,CAAT8B,SAAS,CAAAC,UAAA,CAAA/B,KAAA,CACTgC,IAAI,CAAJA,IAAI,CAAAD,UAAA,GAAG,KAAA,CAAA,CAAA,QAAQ,CAAAA,UAAA,CACfE,QAAQ,CAAAjC,KAAA,CAARiC,QAAQ,CACRC,MAAM,CAAAlC,KAAA,CAANkC,MAAM,CACNC,OAAO,CAAAnC,KAAA,CAAPmC,OAAO,CACPC,YAAY,CAAApC,KAAA,CAAZoC,YAAY,CACZC,WAAW,CAAArC,KAAA,CAAXqC,WAAW,CACXC,YAAW,CAAAtC,KAAA,CAAXsC,WAAW,CACXC,aAAa,CAAAvC,KAAA,CAAbuC,aAAa,CACbC,cAAc,CAAAxC,KAAA,CAAdwC,cAAc,CACdC,kBAAkB,CAAAzC,KAAA,CAAlByC,kBAAkB,CAClBC,WAAU,CAAA1C,KAAA,CAAV0C,UAAU,CACVC,aAAY,CAAA3C,KAAA,CAAZ2C,YAAY,CACZ/I,aAAa,CAAAoG,KAAA,CAAbpG,aAAa,CACbC,SAAS,CAAAmG,KAAA,CAATnG,SAAS,CACT+I,aAAa,CAAA5C,KAAA,CAAb4C,aAAa,CACVC,IAAI,CAAAC,wBAAA,CAAA9C,KAAA,CAAA+C,SAAA,CAIT,CAAA,IAAAC,SAAA,CAAkBC,QAAQ,EAAE,CAApBvJ,KAAK,CAAAsJ,SAAA,CAALtJ,KAAK,CACb,IAAMwJ,gBAAgB,CAAGC,qBAAqB,EAAE,CAChD,IAAAC,eAAA,CAAkCC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC,CAAAC,gBAAA,CAAAC,cAAA,CAAAJ,eAAA,CAAhDK,CAAAA,CAAAA,CAAAA,SAAS,CAAAF,gBAAA,CAAA,CAAA,CAAA,CAAEG,YAAY,CAAAH,gBAAA,CAAA,CAAA,CAAA,CAC9B,IAAMI,MAAM,CAAGC,OAAO,CAAChM,IAAI,CAAC,CAC5B,IAAM2B,cAAc,CAAGsK,sBAAsB,CAAC5B,QAAQ,CAAC,CACvD,IAAM6B,mBAAmB,CAAGT,cAAK,CAACU,cAAc,CAAC9B,QAAQ,CAAC,CAK1D,IAAM+B,QAAQ,CAAGd,gBAAgB,CAAC1J,UAAU,EAAImI,SAAS,EAAKnI,UAAU,EAAI,CAACmK,MAAO,CAEpF,GAAIM,OAAO,CAAE,CACX,GAAI,CAAC9C,IAAI,EAAI,EAAC5H,cAAc,QAAdA,cAAc,CAAEW,IAAI,EAAE,CAAA,CAAE,CACpCJ,eAAe,CAAC,CACdE,OAAO,CAAE,8DAA8D,CACvED,UAAU,CAAE,YACd,CAAC,CAAC,CACJ,CACF,CAEA,IAAMmK,WAAW,CAAGC,WAAW,CAACxC,SAAS,CAAC,CAE1C0B,cAAK,CAACe,SAAS,CAAC,UAAM,CACpB,GAAIzC,SAAS,CAAE0C,QAAQ,CAAC,iBAAiB,CAAC,CAE1C,GAAI,CAAC1C,SAAS,EAAIuC,WAAW,CAAEG,QAAQ,CAAC,iBAAiB,CAAC,CAC5D,CAAC,CAAE,CAAC1C,SAAS,CAAEuC,WAAW,CAAC,CAAC,CAM5Bb,cAAK,CAACiB,eAAe,CAAC,UAAM,CAC1B,GAAI,OAAOpB,gBAAgB,CAACqB,WAAW,GAAK,QAAQ,CAAE,OACtD,IAAQA,WAAW,CAA4BrB,gBAAgB,CAAvDqB,WAAW,CAAEC,qBAAqB,CAAKtB,gBAAgB,CAA1CsB,qBAAqB,CAC1C,GAAIf,SAAS,CAAE,CACbe,qBAAqB,EAAA,IAAA,CAAA,KAAA,CAAA,CAArBA,qBAAqB,CAAGD,WAAW,CAAC,CACtC,CAAC,KAAM,CAGLC,qBAAqB,EAArBA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,qBAAqB,CAAG,SAACC,IAAI,CAAA,CAAA,OAAMA,IAAI,GAAKF,WAAW,CAAG,IAAI,CAAGE,IAAI,CAAA,CAAC,CAAC,CACzE,CAEF,CAAC,CAAE,CAAChB,SAAS,CAAEP,gBAAgB,CAACqB,WAAW,CAAC,CAAC,CAE7C,IAAAG,SAAA,CAkCItL,QAAQ,CAAC,CACXE,sBAAsB,CAAEqL,UAAgB,CACxCpL,cAAc,CAAdA,cAAc,CACdC,UAAU,CAAEwK,QAAQ,CACpBvK,IAAI,CAAA,CAAAyG,qBAAA,CAAEgD,gBAAgB,CAACzJ,IAAI,GAAA,IAAA,CAAAyG,qBAAA,CAAIzG,IAAI,CACnCnC,OAAO,CAAA,CAAA6I,qBAAA,CAAE+C,gBAAgB,CAAC5L,OAAO,GAAA,IAAA,CAAA6I,qBAAA,CAAI7I,OAAO,CAC5CoC,KAAK,CAALA,KAAK,CACLtC,KAAK,CAAAgJ,CAAAA,qBAAA,CAAE8C,gBAAgB,CAAC9L,KAAK,GAAAgJ,IAAAA,CAAAA,qBAAA,CAAIhJ,KAAK,CACtCuC,OAAO,CAAEiK,OAAO,CAACzC,IAAI,CAAC,CACtBvH,aAAa,CAAbA,aAAa,CACbC,SAAS,CAATA,SACF,CAAC,CAAC,CA5CA4E,sBAAsB,CAAAiG,SAAA,CAAtBjG,sBAAsB,CACtBC,gBAAgB,CAAAgG,SAAA,CAAhBhG,gBAAgB,CAChBpB,SAAS,CAAAoH,SAAA,CAATpH,SAAS,CACTG,MAAM,CAAAiH,SAAA,CAANjH,MAAM,CACNE,KAAK,CAAA+G,SAAA,CAAL/G,KAAK,CACLE,gBAAgB,CAAA6G,SAAA,CAAhB7G,gBAAgB,CAChBK,mBAAmB,CAAAwG,SAAA,CAAnBxG,mBAAmB,CACnBE,iBAAiB,CAAAsG,SAAA,CAAjBtG,iBAAiB,CACjBE,kBAAkB,CAAAoG,SAAA,CAAlBpG,kBAAkB,CAClBS,cAAc,CAAA2F,SAAA,CAAd3F,cAAc,CACdD,oBAAoB,CAAA4F,SAAA,CAApB5F,oBAAoB,CACpBE,cAAc,CAAA0F,SAAA,CAAd1F,cAAc,CACd9B,QAAQ,CAAAwH,SAAA,CAARxH,QAAQ,CACR0B,cAAc,CAAA8F,SAAA,CAAd9F,cAAc,CACdD,oBAAoB,CAAA+F,SAAA,CAApB/F,oBAAoB,CACpBE,cAAc,CAAA6F,SAAA,CAAd7F,cAAc,CACdjB,SAAS,CAAA8G,SAAA,CAAT9G,SAAS,CACTf,QAAQ,CAAA6H,SAAA,CAAR7H,QAAQ,CACRG,WAAW,CAAA0H,SAAA,CAAX1H,WAAW,CACXI,UAAU,CAAAsH,SAAA,CAAVtH,UAAU,CACVoB,IAAI,CAAAkG,SAAA,CAAJlG,IAAI,CACJtF,SAAS,CAAAwL,SAAA,CAATxL,SAAS,CACT+F,YAAY,CAAAyF,SAAA,CAAZzF,YAAY,CACZK,cAAc,CAAAoF,SAAA,CAAdpF,cAAc,CACdC,YAAY,CAAAmF,SAAA,CAAZnF,YAAY,CACZrD,oBAAoB,CAAAwI,SAAA,CAApBxI,oBAAoB,CACpBC,qBAAqB,CAAAuI,SAAA,CAArBvI,qBAAqB,CACrBC,iBAAiB,CAAAsI,SAAA,CAAjBtI,iBAAiB,CACjBC,kBAAkB,CAAAqI,SAAA,CAAlBrI,kBAAkB,CAClBC,iBAAiB,CAAAoI,SAAA,CAAjBpI,iBAAiB,CACjBC,sBAAsB,CAAAmI,SAAA,CAAtBnI,sBAAsB,CACtBC,eAAe,CAAAkI,SAAA,CAAflI,eAAe,CACfC,uBAAuB,CAAAiI,SAAA,CAAvBjI,uBAAuB,CAczB,IAAMmI,aAAa,CAAGvB,cAAK,CAACwB,OAAO,CAAC,UAAM,CAAA,OAAAlN,gBAAgB,CAACC,IAAI,CAAC,CAAA,CAAA,CAAE,CAACA,IAAI,CAAC,CAAC,CACzE,IAAMkN,WAAW,CAAGnB,MAAM,CAAG,MAAM,CAAG,QAAQ,CAU9C,IAAMoB,qBAAqB,CAAGlN,aAAa,EAAE,EAAI+L,OAAO,CAACV,gBAAgB,CAAC8B,mBAAmB,CAAC,CAO9F,IAAMC,uBAAuB,CAAGF,qBAAqB,CAAG7F,cAAc,CAAC,CAAC,CAAC,CAAGD,YAAY,CAOxF,IAAMiG,iBAAiB,CAAGH,qBAAqB,CAC3CrL,KAAK,CAACyF,MAAM,CAACC,MAAM,CAACC,kBAAkB,CAAAgB,CAAAA,sBAAA,CAAC6C,gBAAgB,CAACzJ,IAAI,GAAA,IAAA,CAAA4G,sBAAA,CAAI5G,IAAI,CAAC,CAAC,CACtE,CAAC,CACL,IAAM0L,cAAc,CAAGvB,OAAO,CAACV,gBAAgB,CAACkC,oBAAoB,CAAC,CACrE,IAAMC,aAAa,CAAGzB,OAAO,CAACV,gBAAgB,CAACoC,mBAAmB,CAAC,CACnE,IAAMC,iBAAiB,CAAGR,qBAAqB,CAC3C,CACES,OAAO,CAAEL,cAAc,CAAGD,iBAAiB,CAAG,CAAC,CAC/CO,UAAU,CAAEN,cAAc,CAAGD,iBAAiB,CAAG,CAAC,CAClDQ,QAAQ,CAAEL,aAAa,CAAGH,iBAAiB,CAAG,CAAC,CAC/CS,WAAW,CAAEN,aAAa,CAAGH,iBAAiB,CAAG,CACnD,CAAC,CACDpN,SAAS,CAIb,IAAM8N,sBAAsB,CAC1Bb,qBAAqB,EAAI,CAACI,cAAc,EAAIvB,OAAO,CAACV,gBAAgB,CAAC0C,sBAAsB,CAAC,CAO9F,IAAMC,uBAAuB,CAAGd,qBAAqB,EAAI,CAACI,cAAc,CACxE,IAAMW,kBAAkB,CAAGlC,OAAO,CAACnH,uBAAuB,CAAC,EAAI,CAACoJ,uBAAuB,CACvF,IAAME,6BAA6B,CAAGF,uBAAuB,CAAG/N,SAAS,CAAGoE,oBAAoB,CAKhG,IAAM8J,4BAA4B,CAChCjB,qBAAqB,EAAInB,OAAO,CAAA,CAAAtD,qBAAA,CAAC4C,gBAAgB,CAACzB,WAAW,GAAAnB,IAAAA,CAAAA,qBAAA,CAAImB,WAAW,CAAC,CAE/E,IAAMwE,sBAAsB,CAAG5C,cAAK,CAAC6C,WAAW,CAAC,UAAM,CACrD,GAAIlC,QAAQ,CAAE,OACdN,YAAY,CAAC,IAAI,CAAC,CACpB,CAAC,CAAE,CAACM,QAAQ,CAAC,CAAC,CAEd,IAAMmC,uBAAuB,CAAG9C,cAAK,CAAC6C,WAAW,CAAC,UAAM,CACtD,GAAIlC,QAAQ,CAAE,OACdN,YAAY,CAAC,KAAK,CAAC,CACrB,CAAC,CAAE,CAACM,QAAQ,CAAC,CAAC,CAEd,IAAMoC,uBAAuB,CAAG/C,cAAK,CAAC6C,WAAW,CAC/C,SAACG,CAAsB,CAAK,CAC1B,GAAIrC,QAAQ,CAAE,OACd,GAAIqC,CAAC,CAACC,GAAG,GAAK,GAAG,EAAID,CAAC,CAACC,GAAG,GAAK,OAAO,CAAE,CACtC5C,YAAY,CAAC,IAAI,CAAC,CACpB,CACF,CAAC,CACD,CAACM,QAAQ,CACX,CAAC,CAED,IAAMuC,wBAAwB,CAAGlD,cAAK,CAAC6C,WAAW,CAChD,SAACG,CAAsB,CAAK,CAC1B,GAAIrC,QAAQ,CAAE,OACd,GAAIqC,CAAC,CAACC,GAAG,GAAK,GAAG,EAAID,CAAC,CAACC,GAAG,GAAK,OAAO,CAAE,CACtC5C,YAAY,CAAC,KAAK,CAAC,CACrB,CACF,CAAC,CACD,CAACM,QAAQ,CACX,CAAC,CAED,OACEwC,GAAA,CAACC,gBAAgB,CAAA9J,MAAA,CAAAC,MAAA,CACfqD,CAAAA,GAAG,CAAEA,GAAW,CAChBc,EAAE,CAAEA,EAAG,CAGP2F,EAAE,CAAE9B,aAAc,CAClBhN,IAAI,CAAEA,IAAK,CACXgJ,MAAM,CAAEA,MAAO,CACfC,GAAG,CAAEA,GAAI,CACT4B,kBAAkB,CAAA9F,MAAA,CAAAC,MAAA,CACb+J,EAAAA,CAAAA,cAAc,CAAAhK,MAAA,CAAAC,MAAA,CACZ6F,EAAAA,CAAAA,kBAAkB,CACrBmE,CAAAA,IAAI,CAAArG,CAAAA,qBAAA,CAAEkC,kBAAkB,cAAlBA,kBAAkB,CAAEmE,IAAI,GAAA,IAAA,CAAArG,qBAAA,CAAIuE,WAAW,CAAA,CAC9C,CAAC,CACF,CACFxN,OAAO,CAAAkJ,CAAAA,sBAAA,CAAE0C,gBAAgB,CAAC5L,OAAO,GAAA,IAAA,CAAAkJ,sBAAA,CAAIlJ,OAAQ,CAC7CF,KAAK,CAAA,CAAAqJ,sBAAA,CAAEyC,gBAAgB,CAAC9L,KAAK,GAAAqJ,IAAAA,CAAAA,sBAAA,CAAIrJ,KAAM,CACvCqC,IAAI,CAAAiH,CAAAA,sBAAA,CAAEwC,gBAAgB,CAACzJ,IAAI,GAAAiH,IAAAA,CAAAA,sBAAA,CAAIjH,IAAK,CACpCkI,SAAS,CAAEA,SAAU,CACrBqC,QAAQ,CAAEA,QAAS,CACnB1G,SAAS,CAAEA,SAAU,CACrBO,gBAAgB,CAAEA,gBAAiB,CACnCK,mBAAmB,CAAEA,mBAAoB,CACzCE,iBAAiB,CAAEA,iBAAkB,CACrCE,kBAAkB,CAAEA,kBAAmB,CACvCG,sBAAsB,CAAEA,sBAAuB,CAC/CC,gBAAgB,CAAEA,gBAAiB,CACnCK,cAAc,CAAEA,cAAe,CAC/BD,oBAAoB,CAAEA,oBAAqB,CAC3CE,cAAc,CAAEA,cAAe,CAC/BJ,cAAc,CAAEA,cAAe,CAC/BD,oBAAoB,CAAEA,oBAAqB,CAC3C8C,WAAW,CAAA,CAAAd,sBAAA,CAAEuC,gBAAgB,CAACzB,WAAW,GAAAd,IAAAA,CAAAA,sBAAA,CAAIc,WAAY,CACzDG,OAAO,CAAEA,OAAQ,CACjBC,MAAM,CAAEA,MAAO,CACfM,OAAO,CAAEA,OAAQ,CACjBC,YAAY,CAAEA,YAAa,CAC3BC,WAAW,CAAEA,WAAY,CACzBvB,QAAQ,CAAEA,QAAS,CACnByB,aAAa,CAAEA,aAAc,CAC7BC,cAAc,CAAEA,cAAe,CAE/BV,SAAS,CAAE,SAAXA,SAASA,CAAG+E,KAAU,CAAK,CACzBT,uBAAuB,CAACS,KAAK,CAAC,CAC9B/E,UAAS,EAATA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,UAAS,CAAG+E,KAAK,CAAC,CACpB,CAAE,CACFlE,YAAY,CAAE,SAAdA,YAAYA,CAAGkE,KAAuB,CAAK,CACzCZ,sBAAsB,EAAE,CACxBtD,aAAY,EAAZA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,aAAY,CAAGkE,KAAK,CAAC,CACvB,CAAE,CACFnE,UAAU,CAAE,SAAZA,UAAUA,CAAGmE,KAAuB,CAAK,CACvCV,uBAAuB,EAAE,CACzBzD,WAAU,EAAVA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,WAAU,CAAGmE,KAAK,CAAC,CACrB,CAAE,CACF7E,IAAI,CAAEA,IAAK,CACX/C,YAAY,CAAEgG,uBAAwB,CACjCM,CAAAA,iBAAiB,CAAG,CAAEuB,WAAW,CAAEvB,iBAAkB,CAAC,CAAG,EAAE,CAC3DK,sBAAsB,CAAG,CAAEA,sBAAsB,CAAtBA,sBAAuB,CAAC,CAAG,EAAE,CACxDC,uBAAuB,CAAG,CAAEkB,2BAA2B,CAAE,IAAK,CAAC,CAAG,EAAE,CACpEf,4BAA4B,CAAG,CAAEA,4BAA4B,CAAE,IAAK,CAAC,CAAG,EAAE,CAAA,CAC/E1G,cAAc,CAAEA,cAAe,CAC/BC,YAAY,CAAEA,YAAa,CAC3B9B,MAAM,CAAEA,MAAO,CACfE,KAAK,CAAEA,KAAM,CACb8F,SAAS,CAAEA,SAAU,CACrB5E,cAAc,CACZrF,UAAU,CACNe,KAAK,CAACb,KAAK,CAACc,MAAM,CAAEoD,SAA8C,CAAC,CACnEiB,cACL,CACDyD,WAAW,CAAE,SAAbA,WAAWA,CAAGuE,KAAuB,CAAK,CACxCZ,sBAAsB,EAAE,CACxB3D,YAAW,EAAXA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,YAAW,CAAGuE,KAAK,CAAC,CACtB,CAAE,CACFG,SAAS,CAAEb,uBAAwB,CAAA,CAC9B,CAACtO,aAAa,EAAE,CACjB,CAAEoP,UAAU,CAAEd,uBAAuB,CAAEe,OAAO,CAAEX,wBAAyB,CAAC,CAC1E,EAAE,CACNrK,CAAAA,oBAAoB,CAAE6J,6BAA8B,CACpD5J,qBAAqB,CAAE0J,uBAAuB,CAAG/N,SAAS,CAAGqE,qBAAsB,CACnFC,iBAAiB,CAAEA,iBAAkB,CACrCC,kBAAkB,CAAEA,kBAAmB,CACvCC,iBAAiB,CAAEA,iBAAkB,CACrCC,sBAAsB,CAAEA,sBAAuB,CAC/CC,eAAe,CAAEA,eAAgB,CACjCC,uBAAuB,CAAEqJ,kBAAmB,CACxCqB,CAAAA,aAAa,CAAC,CAAEC,IAAI,CAAEC,aAAa,CAACC,MAAM,CAAEpF,MAAM,CAANA,MAAO,CAAC,CAAC,CACrDqF,cAAc,CAAC1E,IAAI,CAAC,CACpB2E,sBAAsB,CAAC3E,IAAI,CAAC,CAAAZ,CAAAA,QAAA,CAEhCwF,IAAA,CAACC,qBAAqB,CAAA,CACpBpI,cAAc,CAAEA,cAAe,CAC/BC,YAAY,CAAEA,YAAa,CAC3BkE,SAAS,CAAEA,SAAU,CAAAxB,QAAA,CAEpBN,CAAAA,SAAS,CACR6E,GAAA,CAAC7G,OAAO,CACNgI,CAAAA,OAAO,CAAC,MAAM,CACdC,cAAc,CAAC,QAAQ,CACvBC,UAAU,CAAC,QAAQ,CACnBC,QAAQ,CAAC,UAAU,CACnB7J,GAAG,CAAC,KAAK,CACTI,IAAI,CAAC,KAAK,CACVF,MAAM,CAAC,KAAK,CACZI,KAAK,CAAC,KAAK,CACXwJ,MAAM,CAAE,CAAE,CAAA9F,QAAA,CAEVuE,GAAA,CAACwB,WAAW,CACVC,CAAAA,kBAAkB,CAAC,SAAS,CAC5BxO,IAAI,CAAEuD,WAAY,CAClB5F,KAAK,CAAEwL,aAAa,OAAbA,aAAa,CAAIrL,eAAe,CAAC,CAAED,OAAO,CAAPA,OAAO,CAAEF,KAAK,CAALA,KAAM,CAAC,CAAE,CAC7D,CAAC,CACK,CAAC,CACR,IAAI,CACRqQ,IAAA,CAAChI,aAAa,CACZkI,CAAAA,OAAO,CAAC,MAAM,CACdO,aAAa,CAAC,KAAK,CACnBL,UAAU,CAAC,QAAQ,CACnBD,cAAc,CAAC,QAAQ,CACvBO,IAAI,CAAE,CAAE,CACRtI,QAAQ,CAAE8B,SAAU,CACpBoG,MAAM,CAAE,CAAE,CAAA9F,QAAA,CAETd,CAAAA,IAAI,EAAIG,YAAY,EAAI,MAAM,CAC7BkF,GAAA,CAAC7G,OAAO,CAAA,CAACgI,OAAO,CAAC,MAAM,CAACC,cAAc,CAAC,QAAQ,CAACC,UAAU,CAAC,QAAQ,CAAA5F,QAAA,CACjEuE,GAAA,CAACrF,IAAI,CAAA,CAAC1H,IAAI,CAAEoD,QAAS,CAACzF,KAAK,CAAEwG,SAAU,CAAE,CAAC,CACnC,CAAC,CACR,IAAI,CACPY,IAAI,CACHsF,mBAAmB,CACjB7B,QAAQ,CAERuE,GAAA,CAAC4B,QAAQ,EACPC,OAAO,CAAC,WAAW,CACnBjL,UAAU,CAAEA,UAAW,CACvBF,QAAQ,CAAEA,QAAS,CAKnBoL,UAAU,CAAC,QAAQ,CACnBC,SAAS,CAAC,QAAQ,CAClBnR,KAAK,CAAE8B,SAAU,CAAA+I,QAAA,CAEhBzD,IAAI,CACG,CACX,CACC,IAAI,CACP2C,IAAI,EAAIG,YAAY,EAAI,OAAO,CAC9BkF,GAAA,CAAC7G,OAAO,CAACgI,CAAAA,OAAO,CAAC,MAAM,CAACC,cAAc,CAAC,QAAQ,CAACC,UAAU,CAAC,QAAQ,CAAA5F,QAAA,CACjEuE,GAAA,CAACrF,IAAI,CAAA,CAAC1H,IAAI,CAAEoD,QAAS,CAACzF,KAAK,CAAEwG,SAAU,CAAE,CAAC,CACnC,CAAC,CACR,IAAI,CACK,CAAA,CAAC,EACK,CAAC,CAAA,CACR,CAAC,CAEvB,CAAC,CAEK,IAAA4K,UAAU,CAAGC,wBAAwB,CAACpF,cAAK,CAACqF,UAAU,CAAC3I,WAAW,CAAC,CAAE,CACzE4I,WAAW,CAAE,YACf,CAAC;;;;"}
@@ -3,7 +3,7 @@ import '../../../utils/index.js';
3
3
  import { size } from '../../../tokens/global/size.js';
4
4
  import { makeSize } from '../../../utils/makeSize/makeSize.js';
5
5
 
6
- var backgroundGradient=function backgroundGradient(color){return {base:{primary:{default:`interactive.background.${color}.default`,highlighted:`interactive.background.${color}.highlighted`,disabled:`interactive.background.${color}.disabled`},secondary:{default:'surface.background.gray.intense',highlighted:'surface.background.gray.intense',disabled:'interactive.background.staticWhite.ghost'},tertiary:{default:'surface.background.gray.intense',highlighted:'surface.background.gray.intense',disabled:'interactive.background.staticWhite.ghost'},transparent:{default:'transparent',highlighted:'interactive.background.gray.faded',disabled:'interactive.background.gray.disabled'}},white:{primary:{default:'interactive.background.staticWhite.default',highlighted:'interactive.background.staticWhite.highlighted',disabled:'interactive.background.staticWhite.disabled'},secondary:{default:'interactive.background.staticWhite.faded',highlighted:'interactive.background.staticBlack.faded',disabled:'interactive.background.gray.disabled'},tertiary:{default:'interactive.background.staticWhite.faded',highlighted:'interactive.background.staticBlack.faded',disabled:'interactive.background.gray.disabled'}},black:{primary:{default:'interactive.background.staticBlack.default',highlighted:'interactive.background.staticBlack.highlighted',disabled:'interactive.background.staticBlack.fadedHighlighted'}}};};var boxShadow=function boxShadow(color){return {base:{primary:{default:[{y:-1.5,blur:0,spread:0,color:`interactive.border.${color}.highlighted`},{y:0,blur:0,spread:0.5,color:`interactive.border.${color}.default`},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.faded'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.faded'}],highlighted:[{y:-1.5,blur:0,spread:0,color:`interactive.border.${color}.highlighted`},{y:0,blur:0,spread:0.5,color:`interactive.border.${color}.highlighted`},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.faded'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.faded'}],disabled:[]},secondary:{default:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.default'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],highlighted:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.highlighted'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.gray.disabled'}]},tertiary:{default:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.default'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],highlighted:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.highlighted'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.gray.disabled'}]},transparent:{default:[],highlighted:[],disabled:[]}},white:{primary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.fadedHighlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.fadedHighlighted'}],disabled:[]},secondary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.disabled'}]},tertiary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.disabled'}]}},black:{primary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.highlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.highlighted'},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.highlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.highlighted'},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'}],disabled:[]}}};};var textColor=function textColor(property){return {base:{primary:{default:`interactive.${property}.onPrimary.normal`,highlighted:`interactive.${property}.onPrimary.normal`,disabled:`interactive.${property}.primary.disabled`},secondary:{default:`interactive.${property}.gray.normal`,highlighted:`interactive.${property}.gray.normal`,disabled:`interactive.${property}.gray.disabled`},tertiary:{default:`interactive.${property}.gray.normal`,highlighted:`interactive.${property}.gray.normal`,disabled:`interactive.${property}.gray.disabled`}},white:{primary:{default:`interactive.${property}.staticBlack.muted`,highlighted:`interactive.${property}.staticBlack.muted`,disabled:`interactive.${property}.staticBlack.disabled`},secondary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.staticWhite.disabled`},tertiary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.staticWhite.disabled`}},black:{primary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.staticWhite.disabled`}},transparent:{tertiary:{default:property==='icon'?'interactive.icon.gray.muted':'surface.text.gray.normal',highlighted:property==='icon'?'interactive.icon.gray.subtle':'surface.text.gray.normal',disabled:`interactive.${property}.gray.disabled`}},color:function color(_color){return {primary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.${_color}.disabled`},secondary:{default:`interactive.${property}.${_color}.normal`,highlighted:`interactive.${property}.${_color}.normal`,disabled:`interactive.${property}.${_color}.disabled`}};}};};var typography={fonts:{size:{xsmall:75,small:75,medium:100,large:200}},lineHeights:{xsmall:75,small:75,medium:100,large:200}};var minHeight={xsmall:size[28],small:size[32],medium:size[36],large:size[48]};var buttonPadding={xsmall:{top:0,bottom:0,left:3,right:3},small:{top:0,bottom:0,left:3,right:3},medium:{top:0,bottom:0,left:4,right:4},large:{top:0,bottom:0,left:5,right:5}};var buttonBorderRadius={xsmall:'small',small:'small',medium:'small',large:'medium'};var buttonIconOnlyHeightWidth={xsmall:makeSize(size['28']),small:makeSize(size['32']),medium:makeSize(size['36']),large:makeSize(size['48'])};var buttonSizeToIconSizeMap={xsmall:'small',small:'small',medium:'medium',large:'medium'};var buttonIconOnlySizeToIconSizeMap={xsmall:'medium',small:'medium',medium:'medium',large:'medium'};var buttonSizeToSpinnerSizeMap={xsmall:'medium',small:'medium',medium:'medium',large:'large'};var spinnerColor={base:{primary:'primary',secondary:'neutral',tertiary:'neutral',transparent:'primary'},white:{primary:'white',secondary:'white',tertiary:'white'},black:{primary:'white'},positive:{primary:'positive',secondary:'positive'},negative:{primary:'negative',secondary:'negative'},notice:{primary:'notice',secondary:'notice'},information:{primary:'information',secondary:'information'},neutral:{primary:'neutral',secondary:'neutral'}};
6
+ var backgroundGradient=function backgroundGradient(color){return {base:{primary:{default:`interactive.background.${color}.default`,highlighted:`interactive.background.${color}.highlighted`,disabled:`interactive.background.${color}.disabled`},secondary:{default:'surface.background.gray.intense',highlighted:'surface.background.gray.intense',disabled:'interactive.background.staticWhite.ghost'},tertiary:{default:'surface.background.gray.intense',highlighted:'surface.background.gray.intense',disabled:'interactive.background.staticWhite.ghost'},transparent:{default:'transparent',highlighted:'interactive.background.gray.faded',disabled:'interactive.background.gray.disabled'}},white:{primary:{default:'interactive.background.staticWhite.default',highlighted:'interactive.background.staticWhite.highlighted',disabled:'interactive.background.staticWhite.disabled'},secondary:{default:'interactive.background.staticWhite.faded',highlighted:'interactive.background.staticBlack.faded',disabled:'interactive.background.gray.disabled'},tertiary:{default:'interactive.background.staticWhite.faded',highlighted:'interactive.background.staticBlack.faded',disabled:'interactive.background.gray.disabled'}}};};var boxShadow=function boxShadow(color){return {base:{primary:{default:[{y:-1.5,blur:0,spread:0,color:`interactive.border.${color}.highlighted`},{y:0,blur:0,spread:0.5,color:`interactive.border.${color}.default`},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.faded'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.faded'}],highlighted:[{y:-1.5,blur:0,spread:0,color:`interactive.border.${color}.highlighted`},{y:0,blur:0,spread:0.5,color:`interactive.border.${color}.highlighted`},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.faded'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.faded'}],disabled:[]},secondary:{default:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.default'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],highlighted:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.highlighted'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.gray.disabled'}]},tertiary:{default:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.default'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],highlighted:[{y:-1,blur:0.5,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.gray.highlighted'},{y:-1.5,blur:0,spread:0,color:'interactive.border.gray.default'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.gray.disabled'}]},transparent:{default:[],highlighted:[],disabled:[]}},white:{primary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.fadedHighlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.fadedHighlighted'}],disabled:[]},secondary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.disabled'}]},tertiary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.fadedHighlighted'},{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.highlighted'}],disabled:[{y:0,blur:0,spread:1,color:'interactive.border.staticWhite.disabled'}]}},neutral:{primary:{default:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.highlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.highlighted'},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'}],highlighted:[{y:-1.5,blur:0,spread:0,color:'interactive.border.staticBlack.highlighted'},{y:0,blur:0,spread:0.5,color:'interactive.border.staticBlack.highlighted'},{y:1.5,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'},{y:-2,blur:0,spread:0,color:'interactive.border.staticWhite.fadedHighlighted'}],disabled:[]}}};};var textColor=function textColor(property){return {base:{primary:{default:`interactive.${property}.onPrimary.normal`,highlighted:`interactive.${property}.onPrimary.normal`,disabled:`interactive.${property}.primary.disabled`},secondary:{default:`interactive.${property}.gray.normal`,highlighted:`interactive.${property}.gray.normal`,disabled:`interactive.${property}.gray.disabled`},tertiary:{default:`interactive.${property}.gray.normal`,highlighted:`interactive.${property}.gray.normal`,disabled:`interactive.${property}.gray.disabled`}},white:{primary:{default:`interactive.${property}.staticBlack.muted`,highlighted:`interactive.${property}.staticBlack.muted`,disabled:`interactive.${property}.staticBlack.disabled`},secondary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.staticWhite.disabled`},tertiary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.staticWhite.disabled`}},neutral:{primary:{default:`interactive.${property}.onNeutral.normal`,highlighted:`interactive.${property}.onNeutral.normal`,disabled:`interactive.${property}.onNeutral.disabled`}},transparent:{tertiary:{default:property==='icon'?'interactive.icon.gray.muted':'surface.text.gray.normal',highlighted:property==='icon'?'interactive.icon.gray.subtle':'surface.text.gray.normal',disabled:`interactive.${property}.gray.disabled`}},color:function color(_color){return {primary:{default:`interactive.${property}.staticWhite.normal`,highlighted:`interactive.${property}.staticWhite.normal`,disabled:`interactive.${property}.${_color}.disabled`},secondary:{default:`interactive.${property}.${_color}.normal`,highlighted:`interactive.${property}.${_color}.normal`,disabled:`interactive.${property}.${_color}.disabled`}};}};};var typography={fonts:{size:{xsmall:75,small:75,medium:100,large:200}},lineHeights:{xsmall:75,small:75,medium:100,large:200}};var minHeight={xsmall:size[28],small:size[32],medium:size[36],large:size[48]};var buttonPadding={xsmall:{top:0,bottom:0,left:3,right:3},small:{top:0,bottom:0,left:3,right:3},medium:{top:0,bottom:0,left:4,right:4},large:{top:0,bottom:0,left:5,right:5}};var buttonBorderRadius={xsmall:'small',small:'small',medium:'small',large:'medium'};var buttonIconOnlyHeightWidth={xsmall:makeSize(size['28']),small:makeSize(size['32']),medium:makeSize(size['36']),large:makeSize(size['48'])};var buttonSizeToIconSizeMap={xsmall:'small',small:'small',medium:'medium',large:'medium'};var buttonIconOnlySizeToIconSizeMap={xsmall:'medium',small:'medium',medium:'medium',large:'medium'};var buttonSizeToSpinnerSizeMap={xsmall:'medium',small:'medium',medium:'medium',large:'large'};var spinnerColor={base:{primary:'primary',secondary:'neutral',tertiary:'neutral',transparent:'primary'},white:{primary:'white',secondary:'white',tertiary:'white'},positive:{primary:'positive',secondary:'positive'},negative:{primary:'negative',secondary:'negative'},notice:{primary:'notice',secondary:'notice'},information:{primary:'information',secondary:'information'},neutral:{primary:'onNeutral',secondary:'neutral'}};
7
7
 
8
8
  export { backgroundGradient, boxShadow, buttonBorderRadius, buttonIconOnlyHeightWidth, buttonIconOnlySizeToIconSizeMap, buttonPadding, buttonSizeToIconSizeMap, buttonSizeToSpinnerSizeMap, minHeight, spinnerColor, textColor, typography };
9
9
  //# sourceMappingURL=buttonTokens.js.map