@razorpay/blade 12.119.1 → 12.121.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/Button/BaseButton/BaseButton.js +2 -2
- package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
- package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js +1 -1
- package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/native/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/build/lib/web/development/_virtual/flatten.js +1 -1
- package/build/lib/web/development/_virtual/flatten3.js +1 -1
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +23 -31
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +8 -18
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
- package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js +5 -0
- package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/web/development/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +23 -31
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +8 -18
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
- package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js +5 -0
- package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/web/production/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/build/types/components/index.d.ts +6 -11
- package/build/types/components/index.native.d.ts +6 -11
- package/package.json +1 -1
|
@@ -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","concat","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","_iterator","_createForOfIteratorHelper","_step","s","n","done","resolved","Math","abs","err","e","f","defaultColors","focusColors","shadowHighlightColor","shadowHighlightHeight","shadowBottomColor","shadowBottomHeight","shadowBorderColor","focusShadowBorderColor","shadowRingWidth","isShadowGradientVisible","props","_objectSpread","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","withConfig","displayName","componentId","_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","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","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"],"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","concat","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","_iterator","_createForOfIteratorHelper","_step","s","n","done","resolved","Math","abs","err","e","f","defaultColors","focusColors","shadowHighlightColor","shadowHighlightHeight","shadowBottomColor","shadowBottomHeight","shadowBorderColor","focusShadowBorderColor","shadowRingWidth","isShadowGradientVisible","props","_objectSpread","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","withConfig","displayName","componentId","_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","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","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"],"mappings":"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"}
|
|
@@ -45,15 +45,6 @@ var backgroundGradient = function backgroundGradient(color) {
|
|
|
45
45
|
highlighted: 'interactive.background.staticBlack.faded',
|
|
46
46
|
disabled: 'interactive.background.gray.disabled'
|
|
47
47
|
}
|
|
48
|
-
},
|
|
49
|
-
// Only the `primary` emphasis exists in the design for the black color, which
|
|
50
|
-
// is currently used by FloatingActionButton and is not exposed on `Button`.
|
|
51
|
-
black: {
|
|
52
|
-
primary: {
|
|
53
|
-
"default": 'interactive.background.staticBlack.default',
|
|
54
|
-
highlighted: 'interactive.background.staticBlack.highlighted',
|
|
55
|
-
disabled: 'interactive.background.staticBlack.fadedHighlighted'
|
|
56
|
-
}
|
|
57
48
|
}
|
|
58
49
|
};
|
|
59
50
|
};
|
|
@@ -282,7 +273,7 @@ var boxShadow = function boxShadow(color) {
|
|
|
282
273
|
}]
|
|
283
274
|
}
|
|
284
275
|
},
|
|
285
|
-
|
|
276
|
+
neutral: {
|
|
286
277
|
primary: {
|
|
287
278
|
"default": [{
|
|
288
279
|
y: -1.5,
|
|
@@ -367,11 +358,11 @@ var textColor = function textColor(property) {
|
|
|
367
358
|
disabled: "interactive.".concat(property, ".staticWhite.disabled")
|
|
368
359
|
}
|
|
369
360
|
},
|
|
370
|
-
|
|
361
|
+
neutral: {
|
|
371
362
|
primary: {
|
|
372
|
-
"default": "interactive.".concat(property, ".
|
|
373
|
-
highlighted: "interactive.".concat(property, ".
|
|
374
|
-
disabled: "interactive.".concat(property, ".
|
|
363
|
+
"default": "interactive.".concat(property, ".onNeutral.normal"),
|
|
364
|
+
highlighted: "interactive.".concat(property, ".onNeutral.normal"),
|
|
365
|
+
disabled: "interactive.".concat(property, ".onNeutral.disabled")
|
|
375
366
|
}
|
|
376
367
|
},
|
|
377
368
|
transparent: {
|
|
@@ -491,9 +482,6 @@ var spinnerColor = {
|
|
|
491
482
|
secondary: 'white',
|
|
492
483
|
tertiary: 'white'
|
|
493
484
|
},
|
|
494
|
-
black: {
|
|
495
|
-
primary: 'white'
|
|
496
|
-
},
|
|
497
485
|
positive: {
|
|
498
486
|
primary: 'positive',
|
|
499
487
|
secondary: 'positive'
|
|
@@ -511,7 +499,9 @@ var spinnerColor = {
|
|
|
511
499
|
secondary: 'information'
|
|
512
500
|
},
|
|
513
501
|
neutral: {
|
|
514
|
-
primary
|
|
502
|
+
// The primary emphasis renders content on a filled neutral surface, so the
|
|
503
|
+
// spinner follows the same inverted treatment as the label.
|
|
504
|
+
primary: 'onNeutral',
|
|
515
505
|
secondary: 'neutral'
|
|
516
506
|
}
|
|
517
507
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonTokens.js","sources":["../../../../../../../src/components/Button/BaseButton/buttonTokens.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { BaseButtonProps } from './BaseButton';\nimport type { Theme } from '~components/BladeProvider';\nimport type { IconSize } from '~components/Icons';\nimport type { SpinnerProps } from '~components/Spinner';\nimport type { Size } from '~tokens/global';\nimport { size } from '~tokens/global';\nimport type { FeedbackColors } from '~tokens/theme/theme';\nimport { makeSize } from '~utils';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\nexport type ButtonMinHeight = Size[28] | Size[32] | Size[36] | Size[48];\n\nexport type ButtonTypography = {\n fonts: {\n size: Record<NonNullable<BaseButtonProps['size']>, keyof Theme['typography']['fonts']['size']>;\n };\n lineHeights: Record<\n NonNullable<BaseButtonProps['size']>,\n keyof Theme['typography']['lineHeights']\n >;\n};\n\nconst backgroundGradient = (color: FeedbackColors | 'primary') => {\n return {\n base: {\n primary: {\n default: `interactive.background.${color}.default`,\n highlighted: `interactive.background.${color}.highlighted`,\n disabled: `interactive.background.${color}.disabled`,\n },\n secondary: {\n default: 'surface.background.gray.intense',\n highlighted: 'surface.background.gray.intense',\n disabled: 'interactive.background.staticWhite.ghost',\n },\n tertiary: {\n default: 'surface.background.gray.intense',\n highlighted: 'surface.background.gray.intense',\n disabled: 'interactive.background.staticWhite.ghost',\n },\n transparent: {\n default: 'transparent',\n highlighted: 'interactive.background.gray.faded',\n disabled: 'interactive.background.gray.disabled',\n },\n },\n white: {\n primary: {\n default: 'interactive.background.staticWhite.default',\n highlighted: 'interactive.background.staticWhite.highlighted',\n disabled: 'interactive.background.staticWhite.disabled',\n },\n secondary: {\n default: 'interactive.background.staticWhite.faded',\n highlighted: 'interactive.background.staticBlack.faded',\n disabled: 'interactive.background.gray.disabled',\n },\n tertiary: {\n default: 'interactive.background.staticWhite.faded',\n highlighted: 'interactive.background.staticBlack.faded',\n disabled: 'interactive.background.gray.disabled',\n },\n },\n // Only the `primary` emphasis exists in the design for the black color, which\n // is currently used by FloatingActionButton and is not exposed on `Button`.\n black: {\n primary: {\n default: 'interactive.background.staticBlack.default',\n highlighted: 'interactive.background.staticBlack.highlighted',\n disabled: 'interactive.background.staticBlack.fadedHighlighted',\n },\n },\n } as const;\n};\n\ntype BoxShadowValue = {\n y: number;\n blur: number;\n spread: number;\n color: DotNotationToken<Theme['colors']>;\n};\n\ntype ButtonBoxShadow = BoxShadowValue[];\n\n/**\n * Box-shadow tokens for buttons (includes border + 3D effects)\n * Each shadow is: inset 0 {y}px {blur}px {spread}px {color}\n */\nconst boxShadow = (\n color: FeedbackColors | 'primary',\n): {\n base: Record<\n 'primary' | 'secondary' | 'tertiary' | 'transparent',\n Record<'default' | 'highlighted' | 'disabled', ButtonBoxShadow>\n >;\n white: Record<\n 'primary' | 'secondary' | 'tertiary',\n Record<'default' | 'highlighted' | 'disabled', ButtonBoxShadow>\n >;\n black: Record<'primary', Record<'default' | 'highlighted' | 'disabled', ButtonBoxShadow>>;\n} => {\n return {\n base: {\n primary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: `interactive.border.${color}.highlighted` },\n { y: 0, blur: 0, spread: 0.5, color: `interactive.border.${color}.default` },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: `interactive.border.${color}.highlighted` },\n { y: 0, blur: 0, spread: 0.5, color: `interactive.border.${color}.highlighted` },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n ],\n disabled: [],\n },\n secondary: {\n default: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.default' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n highlighted: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.highlighted' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.disabled' }],\n },\n tertiary: {\n default: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.default' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n highlighted: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.highlighted' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.disabled' }],\n },\n transparent: {\n default: [],\n highlighted: [],\n disabled: [],\n },\n },\n white: {\n primary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n {\n y: 0,\n blur: 0,\n spread: 0.5,\n color: 'interactive.border.staticBlack.fadedHighlighted',\n },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n {\n y: 0,\n blur: 0,\n spread: 0.5,\n color: 'interactive.border.staticBlack.fadedHighlighted',\n },\n ],\n disabled: [],\n },\n secondary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.disabled' }],\n },\n tertiary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.disabled' }],\n },\n },\n black: {\n primary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.highlighted' },\n { y: 0, blur: 0, spread: 0.5, color: 'interactive.border.staticBlack.highlighted' },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.highlighted' },\n { y: 0, blur: 0, spread: 0.5, color: 'interactive.border.staticBlack.highlighted' },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n ],\n disabled: [],\n },\n },\n };\n};\n\nconst textColor = (property: 'icon' | 'text') => {\n return {\n base: {\n primary: {\n default: `interactive.${property}.onPrimary.normal`,\n highlighted: `interactive.${property}.onPrimary.normal`,\n disabled: `interactive.${property}.primary.disabled`,\n },\n secondary: {\n default: `interactive.${property}.gray.normal`,\n highlighted: `interactive.${property}.gray.normal`,\n disabled: `interactive.${property}.gray.disabled`,\n },\n tertiary: {\n default: `interactive.${property}.gray.normal`,\n highlighted: `interactive.${property}.gray.normal`,\n disabled: `interactive.${property}.gray.disabled`,\n },\n },\n white: {\n primary: {\n default: `interactive.${property}.staticBlack.muted`,\n highlighted: `interactive.${property}.staticBlack.muted`,\n disabled: `interactive.${property}.staticBlack.disabled`,\n },\n secondary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.staticWhite.disabled`,\n },\n tertiary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.staticWhite.disabled`,\n },\n },\n black: {\n primary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.staticWhite.disabled`,\n },\n },\n transparent: {\n tertiary: {\n default: property === 'icon' ? 'interactive.icon.gray.muted' : 'surface.text.gray.normal',\n highlighted:\n property === 'icon' ? 'interactive.icon.gray.subtle' : 'surface.text.gray.normal',\n disabled: `interactive.${property}.gray.disabled`,\n },\n },\n\n color: (color: FeedbackColors) => {\n return {\n primary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.${color}.disabled`,\n },\n secondary: {\n default: `interactive.${property}.${color}.normal`,\n highlighted: `interactive.${property}.${color}.normal`,\n disabled: `interactive.${property}.${color}.disabled`,\n },\n } as const;\n },\n } as const;\n};\n\nconst typography: ButtonTypography = {\n fonts: {\n size: {\n xsmall: 75,\n small: 75,\n medium: 100,\n large: 200,\n },\n },\n lineHeights: {\n xsmall: 75,\n small: 75,\n medium: 100,\n large: 200,\n },\n};\n\nconst minHeight: Record<NonNullable<BaseButtonProps['size']>, ButtonMinHeight> = {\n xsmall: size[28],\n small: size[32],\n medium: size[36],\n large: size[48],\n};\n\nconst buttonPadding: Record<\n NonNullable<BaseButtonProps['size']>,\n Record<'top' | 'bottom' | 'left' | 'right', keyof Theme['spacing']>\n> = {\n xsmall: {\n top: 0,\n bottom: 0,\n left: 3,\n right: 3,\n },\n small: {\n top: 0,\n bottom: 0,\n left: 3,\n right: 3,\n },\n medium: {\n top: 0,\n bottom: 0,\n left: 4,\n right: 4,\n },\n large: {\n top: 0,\n bottom: 0,\n left: 5,\n right: 5,\n },\n};\n\nconst buttonBorderRadius = {\n xsmall: 'small',\n small: 'small',\n medium: 'small',\n large: 'medium',\n} as const;\n\nconst buttonIconOnlyHeightWidth = {\n xsmall: makeSize(size['28']),\n small: makeSize(size['32']),\n medium: makeSize(size['36']),\n large: makeSize(size['48']),\n} as const;\n\nconst buttonSizeToIconSizeMap: Record<NonNullable<BaseButtonProps['size']>, IconSize> = {\n xsmall: 'small',\n small: 'small',\n medium: 'medium',\n large: 'medium',\n};\n\nconst buttonIconOnlySizeToIconSizeMap: Record<NonNullable<BaseButtonProps['size']>, IconSize> = {\n xsmall: 'medium',\n small: 'medium',\n medium: 'medium',\n large: 'medium',\n};\n\nconst buttonSizeToSpinnerSizeMap: Record<\n NonNullable<BaseButtonProps['size']>,\n SpinnerProps['size']\n> = {\n xsmall: 'medium',\n small: 'medium',\n medium: 'medium',\n large: 'large',\n};\n\n/**\n * Spinner color mapping based on button variant and color\n */\nconst spinnerColor = {\n base: {\n primary: 'primary',\n secondary: 'neutral',\n tertiary: 'neutral',\n transparent: 'primary',\n },\n white: {\n primary: 'white',\n secondary: 'white',\n tertiary: 'white',\n },\n black: {\n primary: 'white',\n },\n positive: {\n primary: 'positive',\n secondary: 'positive',\n },\n negative: {\n primary: 'negative',\n secondary: 'negative',\n },\n notice: {\n primary: 'notice',\n secondary: 'notice',\n },\n information: {\n primary: 'information',\n secondary: 'information',\n },\n neutral: {\n primary: 'neutral',\n secondary: 'neutral',\n },\n} as const;\n\nexport {\n boxShadow,\n backgroundGradient,\n textColor,\n spinnerColor,\n typography,\n minHeight,\n buttonSizeToIconSizeMap,\n buttonIconOnlySizeToIconSizeMap,\n buttonSizeToSpinnerSizeMap,\n buttonPadding,\n buttonIconOnlyHeightWidth,\n buttonBorderRadius,\n};\n\nexport type { ButtonBoxShadow };\n"],"names":["backgroundGradient","color","base","primary","concat","highlighted","disabled","secondary","tertiary","transparent","white","black","boxShadow","y","blur","spread","textColor","property","typography","fonts","size","xsmall","small","medium","large","lineHeights","minHeight","buttonPadding","top","bottom","left","right","buttonBorderRadius","buttonIconOnlyHeightWidth","makeSize","buttonSizeToIconSizeMap","buttonIconOnlySizeToIconSizeMap","buttonSizeToSpinnerSizeMap","spinnerColor","positive","negative","notice","information","neutral"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buttonTokens.js","sources":["../../../../../../../src/components/Button/BaseButton/buttonTokens.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { BaseButtonProps } from './BaseButton';\nimport type { Theme } from '~components/BladeProvider';\nimport type { IconSize } from '~components/Icons';\nimport type { SpinnerProps } from '~components/Spinner';\nimport type { Size } from '~tokens/global';\nimport { size } from '~tokens/global';\nimport type { FeedbackColors } from '~tokens/theme/theme';\nimport { makeSize } from '~utils';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\nexport type ButtonMinHeight = Size[28] | Size[32] | Size[36] | Size[48];\n\nexport type ButtonTypography = {\n fonts: {\n size: Record<NonNullable<BaseButtonProps['size']>, keyof Theme['typography']['fonts']['size']>;\n };\n lineHeights: Record<\n NonNullable<BaseButtonProps['size']>,\n keyof Theme['typography']['lineHeights']\n >;\n};\n\nconst backgroundGradient = (color: FeedbackColors | 'primary') => {\n return {\n base: {\n primary: {\n default: `interactive.background.${color}.default`,\n highlighted: `interactive.background.${color}.highlighted`,\n disabled: `interactive.background.${color}.disabled`,\n },\n secondary: {\n default: 'surface.background.gray.intense',\n highlighted: 'surface.background.gray.intense',\n disabled: 'interactive.background.staticWhite.ghost',\n },\n tertiary: {\n default: 'surface.background.gray.intense',\n highlighted: 'surface.background.gray.intense',\n disabled: 'interactive.background.staticWhite.ghost',\n },\n transparent: {\n default: 'transparent',\n highlighted: 'interactive.background.gray.faded',\n disabled: 'interactive.background.gray.disabled',\n },\n },\n white: {\n primary: {\n default: 'interactive.background.staticWhite.default',\n highlighted: 'interactive.background.staticWhite.highlighted',\n disabled: 'interactive.background.staticWhite.disabled',\n },\n secondary: {\n default: 'interactive.background.staticWhite.faded',\n highlighted: 'interactive.background.staticBlack.faded',\n disabled: 'interactive.background.gray.disabled',\n },\n tertiary: {\n default: 'interactive.background.staticWhite.faded',\n highlighted: 'interactive.background.staticBlack.faded',\n disabled: 'interactive.background.gray.disabled',\n },\n },\n } as const;\n};\n\ntype BoxShadowValue = {\n y: number;\n blur: number;\n spread: number;\n color: DotNotationToken<Theme['colors']>;\n};\n\ntype ButtonBoxShadow = BoxShadowValue[];\n\n/**\n * Box-shadow tokens for buttons (includes border + 3D effects)\n * Each shadow is: inset 0 {y}px {blur}px {spread}px {color}\n */\nconst boxShadow = (\n color: FeedbackColors | 'primary',\n): {\n base: Record<\n 'primary' | 'secondary' | 'tertiary' | 'transparent',\n Record<'default' | 'highlighted' | 'disabled', ButtonBoxShadow>\n >;\n white: Record<\n 'primary' | 'secondary' | 'tertiary',\n Record<'default' | 'highlighted' | 'disabled', ButtonBoxShadow>\n >;\n neutral: Record<'primary', Record<'default' | 'highlighted' | 'disabled', ButtonBoxShadow>>;\n} => {\n return {\n base: {\n primary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: `interactive.border.${color}.highlighted` },\n { y: 0, blur: 0, spread: 0.5, color: `interactive.border.${color}.default` },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: `interactive.border.${color}.highlighted` },\n { y: 0, blur: 0, spread: 0.5, color: `interactive.border.${color}.highlighted` },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.faded' },\n ],\n disabled: [],\n },\n secondary: {\n default: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.default' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n highlighted: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.highlighted' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.disabled' }],\n },\n tertiary: {\n default: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.default' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n highlighted: [\n { y: -1, blur: 0.5, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.highlighted' },\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.gray.default' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.gray.disabled' }],\n },\n transparent: {\n default: [],\n highlighted: [],\n disabled: [],\n },\n },\n white: {\n primary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n {\n y: 0,\n blur: 0,\n spread: 0.5,\n color: 'interactive.border.staticBlack.fadedHighlighted',\n },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n {\n y: 0,\n blur: 0,\n spread: 0.5,\n color: 'interactive.border.staticBlack.fadedHighlighted',\n },\n ],\n disabled: [],\n },\n secondary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.disabled' }],\n },\n tertiary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.fadedHighlighted' },\n { y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.highlighted' },\n ],\n disabled: [{ y: 0, blur: 0, spread: 1, color: 'interactive.border.staticWhite.disabled' }],\n },\n },\n neutral: {\n primary: {\n default: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.highlighted' },\n { y: 0, blur: 0, spread: 0.5, color: 'interactive.border.staticBlack.highlighted' },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n ],\n highlighted: [\n { y: -1.5, blur: 0, spread: 0, color: 'interactive.border.staticBlack.highlighted' },\n { y: 0, blur: 0, spread: 0.5, color: 'interactive.border.staticBlack.highlighted' },\n { y: 1.5, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n { y: -2, blur: 0, spread: 0, color: 'interactive.border.staticWhite.fadedHighlighted' },\n ],\n disabled: [],\n },\n },\n };\n};\n\nconst textColor = (property: 'icon' | 'text') => {\n return {\n base: {\n primary: {\n default: `interactive.${property}.onPrimary.normal`,\n highlighted: `interactive.${property}.onPrimary.normal`,\n disabled: `interactive.${property}.primary.disabled`,\n },\n secondary: {\n default: `interactive.${property}.gray.normal`,\n highlighted: `interactive.${property}.gray.normal`,\n disabled: `interactive.${property}.gray.disabled`,\n },\n tertiary: {\n default: `interactive.${property}.gray.normal`,\n highlighted: `interactive.${property}.gray.normal`,\n disabled: `interactive.${property}.gray.disabled`,\n },\n },\n white: {\n primary: {\n default: `interactive.${property}.staticBlack.muted`,\n highlighted: `interactive.${property}.staticBlack.muted`,\n disabled: `interactive.${property}.staticBlack.disabled`,\n },\n secondary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.staticWhite.disabled`,\n },\n tertiary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.staticWhite.disabled`,\n },\n },\n neutral: {\n primary: {\n default: `interactive.${property}.onNeutral.normal`,\n highlighted: `interactive.${property}.onNeutral.normal`,\n disabled: `interactive.${property}.onNeutral.disabled`,\n },\n },\n transparent: {\n tertiary: {\n default: property === 'icon' ? 'interactive.icon.gray.muted' : 'surface.text.gray.normal',\n highlighted:\n property === 'icon' ? 'interactive.icon.gray.subtle' : 'surface.text.gray.normal',\n disabled: `interactive.${property}.gray.disabled`,\n },\n },\n\n color: (color: FeedbackColors) => {\n return {\n primary: {\n default: `interactive.${property}.staticWhite.normal`,\n highlighted: `interactive.${property}.staticWhite.normal`,\n disabled: `interactive.${property}.${color}.disabled`,\n },\n secondary: {\n default: `interactive.${property}.${color}.normal`,\n highlighted: `interactive.${property}.${color}.normal`,\n disabled: `interactive.${property}.${color}.disabled`,\n },\n } as const;\n },\n } as const;\n};\n\nconst typography: ButtonTypography = {\n fonts: {\n size: {\n xsmall: 75,\n small: 75,\n medium: 100,\n large: 200,\n },\n },\n lineHeights: {\n xsmall: 75,\n small: 75,\n medium: 100,\n large: 200,\n },\n};\n\nconst minHeight: Record<NonNullable<BaseButtonProps['size']>, ButtonMinHeight> = {\n xsmall: size[28],\n small: size[32],\n medium: size[36],\n large: size[48],\n};\n\nconst buttonPadding: Record<\n NonNullable<BaseButtonProps['size']>,\n Record<'top' | 'bottom' | 'left' | 'right', keyof Theme['spacing']>\n> = {\n xsmall: {\n top: 0,\n bottom: 0,\n left: 3,\n right: 3,\n },\n small: {\n top: 0,\n bottom: 0,\n left: 3,\n right: 3,\n },\n medium: {\n top: 0,\n bottom: 0,\n left: 4,\n right: 4,\n },\n large: {\n top: 0,\n bottom: 0,\n left: 5,\n right: 5,\n },\n};\n\nconst buttonBorderRadius = {\n xsmall: 'small',\n small: 'small',\n medium: 'small',\n large: 'medium',\n} as const;\n\nconst buttonIconOnlyHeightWidth = {\n xsmall: makeSize(size['28']),\n small: makeSize(size['32']),\n medium: makeSize(size['36']),\n large: makeSize(size['48']),\n} as const;\n\nconst buttonSizeToIconSizeMap: Record<NonNullable<BaseButtonProps['size']>, IconSize> = {\n xsmall: 'small',\n small: 'small',\n medium: 'medium',\n large: 'medium',\n};\n\nconst buttonIconOnlySizeToIconSizeMap: Record<NonNullable<BaseButtonProps['size']>, IconSize> = {\n xsmall: 'medium',\n small: 'medium',\n medium: 'medium',\n large: 'medium',\n};\n\nconst buttonSizeToSpinnerSizeMap: Record<\n NonNullable<BaseButtonProps['size']>,\n SpinnerProps['size']\n> = {\n xsmall: 'medium',\n small: 'medium',\n medium: 'medium',\n large: 'large',\n};\n\n/**\n * Spinner color mapping based on button variant and color\n */\nconst spinnerColor = {\n base: {\n primary: 'primary',\n secondary: 'neutral',\n tertiary: 'neutral',\n transparent: 'primary',\n },\n white: {\n primary: 'white',\n secondary: 'white',\n tertiary: 'white',\n },\n positive: {\n primary: 'positive',\n secondary: 'positive',\n },\n negative: {\n primary: 'negative',\n secondary: 'negative',\n },\n notice: {\n primary: 'notice',\n secondary: 'notice',\n },\n information: {\n primary: 'information',\n secondary: 'information',\n },\n neutral: {\n // The primary emphasis renders content on a filled neutral surface, so the\n // spinner follows the same inverted treatment as the label.\n primary: 'onNeutral',\n secondary: 'neutral',\n },\n} as const;\n\nexport {\n boxShadow,\n backgroundGradient,\n textColor,\n spinnerColor,\n typography,\n minHeight,\n buttonSizeToIconSizeMap,\n buttonIconOnlySizeToIconSizeMap,\n buttonSizeToSpinnerSizeMap,\n buttonPadding,\n buttonIconOnlyHeightWidth,\n buttonBorderRadius,\n};\n\nexport type { ButtonBoxShadow };\n"],"names":["backgroundGradient","color","base","primary","concat","highlighted","disabled","secondary","tertiary","transparent","white","boxShadow","y","blur","spread","neutral","textColor","property","typography","fonts","size","xsmall","small","medium","large","lineHeights","minHeight","buttonPadding","top","bottom","left","right","buttonBorderRadius","buttonIconOnlyHeightWidth","makeSize","buttonSizeToIconSizeMap","buttonIconOnlySizeToIconSizeMap","buttonSizeToSpinnerSizeMap","spinnerColor","positive","negative","notice","information"],"mappings":"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"}
|
package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingActionButton.js","sources":["../../../../../../src/components/FloatingActionButton/FloatingActionButton.tsx"],"sourcesContent":["import React from 'react';\nimport { FloatingActionButtonContainer } from './FloatingActionButtonContainer';\nimport type { FloatingActionButtonProps } from './types';\nimport BaseButton from '~components/Button/BaseButton';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { BladeElementRef } from '~utils/types';\n\n/**\n * The shared spinner map would render a white spinner on the white button, where\n * it is invisible.\n */\nconst colorToSpinnerColor = {\n primary: 'white',\n
|
|
1
|
+
{"version":3,"file":"FloatingActionButton.js","sources":["../../../../../../src/components/FloatingActionButton/FloatingActionButton.tsx"],"sourcesContent":["import React from 'react';\nimport { FloatingActionButtonContainer } from './FloatingActionButtonContainer';\nimport type { FloatingActionButtonProps } from './types';\nimport BaseButton from '~components/Button/BaseButton';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { BladeElementRef } from '~utils/types';\n\n/**\n * The shared spinner map would render a white spinner on the white button, where\n * it is invisible.\n */\nconst colorToSpinnerColor = {\n primary: 'white',\n neutral: 'onNeutral',\n white: 'neutral',\n} as const;\n\n/**\n * ### FloatingActionButton component\n *\n * A persistent, elevated button anchored to the bottom of the viewport, used for the single most important action on a screen.\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <FloatingActionButton icon={PlusIcon} onClick={() => createPayment()}>\n * Create payment\n * </FloatingActionButton>\n *\n * // icon-only, accessibilityLabel is required\n * <FloatingActionButton\n * icon={PlusIcon}\n * accessibilityLabel=\"Create payment\"\n * onClick={() => createPayment()}\n * />\n * ```\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-floatingactionbutton--docs FloatingActionButton Documentation}\n */\nconst _FloatingActionButton: React.ForwardRefRenderFunction<\n BladeElementRef,\n FloatingActionButtonProps\n> = (\n {\n children,\n icon,\n color = 'primary',\n placement = 'bottom-end',\n offset = 'spacing.5',\n zIndex = componentZIndices.fab,\n isDisabled = false,\n isLoading = false,\n href,\n target,\n rel,\n type = 'button',\n accessibilityLabel,\n onClick,\n onBlur,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n testID,\n ...rest\n },\n ref,\n) => {\n return (\n <FloatingActionButtonContainer\n placement={placement}\n offset={offset}\n zIndex={zIndex}\n testID={testID}\n {...rest}\n >\n <BaseButton\n ref={ref}\n icon={icon}\n variant=\"primary\"\n color={color}\n size=\"large\"\n _borderRadius=\"max\"\n _iconSize=\"xlarge\"\n _spinnerColor={colorToSpinnerColor[color]}\n accessibilityProps={{ label: accessibilityLabel }}\n href={href}\n target={target}\n rel={rel}\n type={type}\n isDisabled={isDisabled}\n isLoading={isLoading}\n onClick={onClick}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n >\n {children}\n </BaseButton>\n </FloatingActionButtonContainer>\n );\n};\n\nconst FloatingActionButton = assignWithoutSideEffects(React.forwardRef(_FloatingActionButton), {\n displayName: 'FloatingActionButton',\n componentId: 'FloatingActionButton',\n});\n\nexport { FloatingActionButton };\n"],"names":["colorToSpinnerColor","primary","neutral","white","_FloatingActionButton","_ref","ref","children","icon","_ref$color","color","_ref$placement","placement","_ref$offset","offset","_ref$zIndex","zIndex","componentZIndices","fab","_ref$isDisabled","isDisabled","_ref$isLoading","isLoading","href","target","rel","_ref$type","type","accessibilityLabel","onClick","onBlur","onFocus","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","onTouchStart","onTouchEnd","testID","rest","_objectWithoutProperties","_excluded","_jsx","FloatingActionButtonContainer","_objectSpread","BaseButton","variant","size","_borderRadius","_iconSize","_spinnerColor","accessibilityProps","label","FloatingActionButton","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":";;;;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA,IAAMA,mBAAmB,GAAG;AAC1BC,EAAAA,OAAO,EAAE,OAAO;AAChBC,EAAAA,OAAO,EAAE,WAAW;AACpBC,EAAAA,KAAK,EAAE,SAAA;AACT,CAAU,CAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,qBAGL,GAAG,SAHEA,qBAGLA,CAAAC,IAAA,EA4BCC,GAAG,EACA;AAAA,EAAA,IA3BDC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAAC,UAAA,GAAAJ,IAAA,CACJK,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,UAAA;IAAAE,cAAA,GAAAN,IAAA,CACjBO,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,YAAY,GAAAA,cAAA;IAAAE,WAAA,GAAAR,IAAA,CACxBS,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,WAAW,GAAAA,WAAA;IAAAE,WAAA,GAAAV,IAAA,CACpBW,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,GAAG,GAAAH,WAAA;IAAAI,eAAA,GAAAd,IAAA,CAC9Be,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAAAE,cAAA,GAAAhB,IAAA,CAClBiB,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IACjBE,IAAI,GAAAlB,IAAA,CAAJkB,IAAI;IACJC,MAAM,GAAAnB,IAAA,CAANmB,MAAM;IACNC,GAAG,GAAApB,IAAA,CAAHoB,GAAG;IAAAC,SAAA,GAAArB,IAAA,CACHsB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;IACfE,kBAAkB,GAAAvB,IAAA,CAAlBuB,kBAAkB;IAClBC,OAAO,GAAAxB,IAAA,CAAPwB,OAAO;IACPC,MAAM,GAAAzB,IAAA,CAANyB,MAAM;IACNC,OAAO,GAAA1B,IAAA,CAAP0B,OAAO;IACPC,YAAY,GAAA3B,IAAA,CAAZ2B,YAAY;IACZC,WAAW,GAAA5B,IAAA,CAAX4B,WAAW;IACXC,WAAW,GAAA7B,IAAA,CAAX6B,WAAW;IACXC,aAAa,GAAA9B,IAAA,CAAb8B,aAAa;IACbC,cAAc,GAAA/B,IAAA,CAAd+B,cAAc;IACdC,YAAY,GAAAhC,IAAA,CAAZgC,YAAY;IACZC,UAAU,GAAAjC,IAAA,CAAViC,UAAU;IACVC,MAAM,GAAAlC,IAAA,CAANkC,MAAM;AACHC,IAAAA,IAAI,GAAAC,wBAAA,CAAApC,IAAA,EAAAqC,SAAA,CAAA,CAAA;AAIT,EAAA,oBACEC,GAAA,CAACC,6BAA6B,EAAAC,aAAA,CAAAA,aAAA,CAAA;AAC5BjC,IAAAA,SAAS,EAAEA,SAAU;AACrBE,IAAAA,MAAM,EAAEA,MAAO;AACfE,IAAAA,MAAM,EAAEA,MAAO;AACfuB,IAAAA,MAAM,EAAEA,MAAAA;AAAO,GAAA,EACXC,IAAI,CAAA,EAAA,EAAA,EAAA;IAAAjC,QAAA,eAERoC,GAAA,CAACG,UAAU,EAAA;AACTxC,MAAAA,GAAG,EAAEA,GAAI;AACTE,MAAAA,IAAI,EAAEA,IAAK;AACXuC,MAAAA,OAAO,EAAC,SAAS;AACjBrC,MAAAA,KAAK,EAAEA,KAAM;AACbsC,MAAAA,IAAI,EAAC,OAAO;AACZC,MAAAA,aAAa,EAAC,KAAK;AACnBC,MAAAA,SAAS,EAAC,QAAQ;AAClBC,MAAAA,aAAa,EAAEnD,mBAAmB,CAACU,KAAK,CAAE;AAC1C0C,MAAAA,kBAAkB,EAAE;AAAEC,QAAAA,KAAK,EAAEzB,kBAAAA;OAAqB;AAClDL,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,MAAM,EAAEA,MAAO;AACfC,MAAAA,GAAG,EAAEA,GAAI;AACTE,MAAAA,IAAI,EAAEA,IAAK;AACXP,MAAAA,UAAU,EAAEA,UAAW;AACvBE,MAAAA,SAAS,EAAEA,SAAU;AACrBO,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,MAAM,EAAEA,MAAO;AACfC,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,aAAa,EAAEA,aAAc;AAC7BC,MAAAA,cAAc,EAAEA,cAAe;AAC/BC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,UAAU,EAAEA,UAAW;AAAA/B,MAAAA,QAAA,EAEtBA,QAAAA;KACS,CAAA;AAAC,GAAA,CACgB,CAAC,CAAA;AAEpC,CAAC,CAAA;AAEK+C,IAAAA,oBAAoB,gBAAGC,wBAAwB,cAACC,cAAK,CAACC,UAAU,CAACrD,qBAAqB,CAAC,EAAE;AAC7FsD,EAAAA,WAAW,EAAE,sBAAsB;AACnCC,EAAAA,WAAW,EAAE,sBAAA;AACf,CAAC;;;;"}
|
|
@@ -31,6 +31,11 @@ var getColor = function getColor(_ref) {
|
|
|
31
31
|
if (color && color === 'white') {
|
|
32
32
|
return getIn(theme.colors, 'interactive.icon.staticWhite.subtle');
|
|
33
33
|
}
|
|
34
|
+
// `onNeutral` renders on a filled neutral surface, which inverts with the
|
|
35
|
+
// theme, so it tracks the surface instead of resolving to a static color.
|
|
36
|
+
if (color && color === 'onNeutral') {
|
|
37
|
+
return getIn(theme.colors, 'interactive.icon.onNeutral.normal');
|
|
38
|
+
}
|
|
34
39
|
if (color && color !== 'neutral') {
|
|
35
40
|
return getIn(theme.colors, "interactive.icon.".concat(color, ".subtle"));
|
|
36
41
|
}
|