@razorpay/blade 12.120.0 → 12.121.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/Input/ColorInput/ColorSwatch.native.js +2 -1
- package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js.map +1 -1
- package/build/lib/native/components/Input/OTPInput/OTPInput.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/Input/ColorInput/ColorInput.web.js +1 -0
- package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js.map +1 -1
- package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js +18 -5
- package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
- package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js +6 -3
- package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js.map +1 -1
- package/build/lib/web/development/components/Input/OTPInput/OTPInput.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/_virtual/cloneDeep.js +1 -1
- package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
- 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/Input/ColorInput/ColorInput.web.js +1 -0
- package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js.map +1 -1
- package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js +18 -5
- package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
- package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js +6 -3
- package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js.map +1 -1
- package/build/lib/web/production/components/Input/OTPInput/OTPInput.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/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
- package/build/types/components/index.d.ts +7 -12
- package/build/types/components/index.native.d.ts +7 -12
- package/package.json +1 -1
|
@@ -5,14 +5,14 @@ import '../../../../../_virtual/keysIn.js';
|
|
|
5
5
|
import '../../../../../_virtual/unset.js';
|
|
6
6
|
import '../../../../../_virtual/getSymbolsIn.js';
|
|
7
7
|
import '../../../../../_virtual/isDeepKey.js';
|
|
8
|
-
import '../../../../../_virtual/
|
|
8
|
+
import '../../../../../_virtual/flatten.js';
|
|
9
9
|
import '../../../../../_virtual/isPlainObject.js';
|
|
10
10
|
import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
|
|
11
11
|
import { __exports as keysIn } from '../../../../../_virtual/keysIn2.js';
|
|
12
12
|
import { __exports as unset } from '../../../../../_virtual/unset2.js';
|
|
13
13
|
import { __exports as getSymbolsIn } from '../../../../../_virtual/getSymbolsIn2.js';
|
|
14
14
|
import { __exports as isDeepKey } from '../../../../../_virtual/isDeepKey2.js';
|
|
15
|
-
import { __exports as flatten } from '../../../../../_virtual/
|
|
15
|
+
import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
|
|
16
16
|
import { __exports as isPlainObject } from '../../../../../_virtual/isPlainObject2.js';
|
|
17
17
|
|
|
18
18
|
(function (exports) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../node_modules/es-toolkit/dist/
|
|
1
|
+
import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
|
|
2
2
|
//# sourceMappingURL=cloneDeep.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
|
|
1
|
+
import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
|
|
2
2
|
//# sourceMappingURL=cloneDeep3.js.map
|
|
@@ -26,8 +26,8 @@ import '../../../utils/getStringChildren/index.js';
|
|
|
26
26
|
import '../../../utils/logger/index.js';
|
|
27
27
|
import '../../../utils/makeAnalyticsAttribute/index.js';
|
|
28
28
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
29
|
-
import { throwBladeError } from '../../../utils/logger/logger.js';
|
|
30
29
|
import { isReactNative } from '../../../utils/platform/isReactNative.js';
|
|
30
|
+
import { throwBladeError } from '../../../utils/logger/logger.js';
|
|
31
31
|
import { makeSize } from '../../../utils/makeSize/makeSize.js';
|
|
32
32
|
import { makeSpace } from '../../../utils/makeSpace/makeSpace.js';
|
|
33
33
|
import { makeBorderSize } from '../../../utils/makeBorderSize/makeBorderSize.js';
|
|
@@ -52,34 +52,30 @@ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol
|
|
|
52
52
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
53
53
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
54
54
|
/**
|
|
55
|
-
* `white
|
|
56
|
-
*
|
|
57
|
-
*
|
|
55
|
+
* `white` and `transparent` are not feedback colors, so the token factories are
|
|
56
|
+
* still called with `primary` and the value is looked up under its own key
|
|
57
|
+
* instead of under `base`.
|
|
58
58
|
*/
|
|
59
59
|
var isStaticOrTransparentColor = function isStaticOrTransparentColor(color) {
|
|
60
|
-
return color === 'white' || color === '
|
|
60
|
+
return color === 'white' || color === 'transparent';
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The filled `neutral` surface needs inverted content and a heavier inner shadow
|
|
65
|
+
* than the shared feedback treatment, so its `primary` emphasis is looked up
|
|
66
|
+
* under a dedicated key. The remaining emphases fall back to `base`.
|
|
67
|
+
*/
|
|
68
|
+
var isFilledNeutral = function isFilledNeutral(color, variant) {
|
|
69
|
+
return color === 'neutral' && variant === 'primary';
|
|
61
70
|
};
|
|
62
71
|
var getSpinnerColor = function getSpinnerColor(_ref) {
|
|
63
72
|
var variant = _ref.variant,
|
|
64
73
|
color = _ref.color;
|
|
65
|
-
// `black` only exists as a primary button, so it is looked up separately from
|
|
66
|
-
// the colors that carry a full variant record.
|
|
67
|
-
if (color === 'black') {
|
|
68
|
-
return spinnerColor.black.primary;
|
|
69
|
-
}
|
|
70
74
|
if (color !== 'primary' && color !== 'transparent' && color in spinnerColor) {
|
|
71
75
|
return spinnerColor[color][variant];
|
|
72
76
|
}
|
|
73
77
|
return spinnerColor.base[variant];
|
|
74
78
|
};
|
|
75
|
-
var assertBlackIsPrimary = function assertBlackIsPrimary(variant) {
|
|
76
|
-
if (variant !== 'primary') {
|
|
77
|
-
throwBladeError({
|
|
78
|
-
moduleName: 'BaseButton',
|
|
79
|
-
message: "Black color can only be used with primary variant but received \"".concat(variant, "\"")
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
79
|
var getRenderElement = function getRenderElement(href) {
|
|
84
80
|
if (isReactNative()) {
|
|
85
81
|
return undefined; // as property doesn't work with react native
|
|
@@ -95,17 +91,13 @@ var getBackgroundColorToken = function getBackgroundColorToken(_ref2) {
|
|
|
95
91
|
color = _ref2.color;
|
|
96
92
|
var _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;
|
|
97
93
|
|
|
98
|
-
// For white
|
|
99
|
-
// since the actual token lookup uses the white/
|
|
94
|
+
// For white and transparent colors, we use 'primary' as the base color
|
|
95
|
+
// since the actual token lookup uses the white/transparent specific paths
|
|
100
96
|
var gradientColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;
|
|
101
97
|
var tokens = backgroundGradient(gradientColor);
|
|
102
98
|
if (color === 'white') {
|
|
103
99
|
return tokens.white[variant][_state];
|
|
104
100
|
}
|
|
105
|
-
if (color === 'black') {
|
|
106
|
-
assertBlackIsPrimary(variant);
|
|
107
|
-
return tokens.black.primary[_state];
|
|
108
|
-
}
|
|
109
101
|
if (color === 'transparent') {
|
|
110
102
|
if (variant !== 'tertiary') {
|
|
111
103
|
throw new Error("Transparent color can only be used with tertiary variant but received \"".concat(variant, "\""));
|
|
@@ -129,9 +121,8 @@ var getBoxShadowToken = function getBoxShadowToken(_ref3) {
|
|
|
129
121
|
if (color === 'white') {
|
|
130
122
|
return tokens.white[variant][_state];
|
|
131
123
|
}
|
|
132
|
-
if (color
|
|
133
|
-
|
|
134
|
-
return tokens.black.primary[_state];
|
|
124
|
+
if (isFilledNeutral(color, variant)) {
|
|
125
|
+
return tokens.neutral.primary[_state];
|
|
135
126
|
}
|
|
136
127
|
if (color === 'transparent') {
|
|
137
128
|
if (variant !== 'tertiary') {
|
|
@@ -151,9 +142,8 @@ var getTextColorToken = function getTextColorToken(_ref4) {
|
|
|
151
142
|
if (color === 'white') {
|
|
152
143
|
return tokens.white[variant][_state];
|
|
153
144
|
}
|
|
154
|
-
if (color
|
|
155
|
-
|
|
156
|
-
return tokens.black.primary[_state];
|
|
145
|
+
if (isFilledNeutral(color, variant)) {
|
|
146
|
+
return tokens.neutral.primary[_state];
|
|
157
147
|
}
|
|
158
148
|
if (color === 'transparent') {
|
|
159
149
|
if (variant !== 'tertiary') {
|
|
@@ -323,7 +313,9 @@ var getProps = function getProps(_ref5) {
|
|
|
323
313
|
state: 'focus'
|
|
324
314
|
})),
|
|
325
315
|
focusBoxShadow: getBoxShadow('focus', color),
|
|
326
|
-
|
|
316
|
+
// The system focus ring is a faded primary blue, which the design replaces
|
|
317
|
+
// with a faded neutral ring on the filled neutral surface.
|
|
318
|
+
focusRingColor: getIn(theme.colors, isFilledNeutral(color, variant) ? 'interactive.border.neutral.faded' : 'surface.border.primary.muted'),
|
|
327
319
|
borderRadius: makeBorderSize(theme.border.radius[_borderRadius !== null && _borderRadius !== void 0 ? _borderRadius : buttonBorderRadius[size]]),
|
|
328
320
|
motionDuration: 'duration.xquick',
|
|
329
321
|
motionEasing: 'easing.standard'
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IA;AACA;AACA;AACA;AACA;AACA,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAC9BC,KAA+B,EAAA;EAAA,OAE/BA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,aAAa,CAAA;AAAA,CAAA,CAAA;AAEnE,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAMY;AAAA,EAAA,IAL/BC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPH,KAAK,GAAAE,IAAA,CAALF,KAAK,CAAA;AAKL;AACA;EACA,IAAIA,KAAK,KAAK,OAAO,EAAE;AACrB,IAAA,OAAOI,YAAY,CAACC,KAAK,CAACC,OAAO,CAAA;AACnC,GAAA;EAEA,IAAIN,KAAK,KAAK,SAAS,IAAIA,KAAK,KAAK,aAAa,IAAIA,KAAK,IAAII,YAAY,EAAE;AAC3E,IAAA,OAAOA,YAAY,CAACJ,KAAK,CAAyD,CAChFG,OAAO,CACR,CAAA;AACH,GAAA;AAEA,EAAA,OAAOC,YAAY,CAACG,IAAI,CAACJ,OAAO,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIL,OAAgD,EAAW;EACvF,IAAIA,OAAO,KAAK,SAAS,EAAE;AACzBM,IAAAA,eAAe,CAAC;AACdC,MAAAA,UAAU,EAAE,YAAY;MACxBC,OAAO,EAAA,mEAAA,CAAAC,MAAA,CAAqET,OAAO,EAAA,IAAA,CAAA;AACrF,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAC,CAAA;AAED,IAAMU,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,IAAa,EAAiC;EACtE,IAAIC,aAAa,EAAE,EAAE;IACnB,OAAOC,SAAS,CAAC;AACnB,GAAA;AAEA,EAAA,IAAIF,IAAI,EAAE;AACR,IAAA,OAAO,GAAG,CAAA;AACZ,GAAA;AAEA,EAAA,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;IAEYG,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,KAAA,EAIC;AAAA,EAAA,IAHnCf,OAAO,GAAAe,KAAA,CAAPf,OAAO;IACPgB,KAAK,GAAAD,KAAA,CAALC,KAAK;IACLnB,KAAK,GAAAkB,KAAA,CAALlB,KAAK,CAAA;AAEL,EAAA,IAAMoB,MAAM,GAAGD,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,GAAG,aAAa,GAAGA,KAAK,CAAA;;AAE7E;AACA;AACA,EAAA,IAAME,aAAa,GAAGtB,0BAA0B,CAACC,KAAK,CAAC,IAAI,CAACA,KAAK,GAAG,SAAS,GAAGA,KAAK,CAAA;AACrF,EAAA,IAAMsB,MAAM,GAAGC,kBAAkB,CAACF,aAAa,CAAC,CAAA;EAEhD,IAAIrB,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOsB,MAAM,CAACE,KAAK,CAACrB,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AACtC,GAAA;EAEA,IAAIpB,KAAK,KAAK,OAAO,EAAE;IACrBQ,oBAAoB,CAACL,OAAO,CAAC,CAAA;AAC7B,IAAA,OAAOmB,MAAM,CAACjB,KAAK,CAACC,OAAO,CAACc,MAAM,CAAC,CAAA;AACrC,GAAA;EAEA,IAAIpB,KAAK,KAAK,aAAa,EAAE;IAC3B,IAAIG,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIsB,KAAK,CAAA,0EAAA,CAAAb,MAAA,CAC6DT,OAAO,OACnF,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAOmB,MAAM,CAACf,IAAI,CAACmB,WAAW,CAACN,MAAM,CAAC,CAAA;AACxC,GAAA;AAEA,EAAA,IAAIpB,KAAK,IAAIA,KAAK,KAAK,SAAS,EAAE;IAChC,IAAIG,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIsB,KAAK,CAAA,wFAAA,CAAAb,MAAA,CACuEZ,KAAK,OAC3F,CAAC,CAAA;AACH,KAAA;AACF,GAAA;EAEA,OAAOsB,MAAM,CAACf,IAAI,CAACJ,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AACrC,EAAC;IAEYO,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAIwB;AAAA,EAAA,IAHpDzB,OAAO,GAAAyB,KAAA,CAAPzB,OAAO;IACPgB,KAAK,GAAAS,KAAA,CAALT,KAAK;IACLnB,KAAK,GAAA4B,KAAA,CAAL5B,KAAK,CAAA;AAEL,EAAA,IAAMoB,MAAM,GAAGD,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,GAAG,aAAa,GAAGA,KAAK,CAAA;AAC7E,EAAA,IAAMU,UAAU,GAAG9B,0BAA0B,CAACC,KAAK,CAAC,IAAI,CAACA,KAAK,GAAG,SAAS,GAAGA,KAAK,CAAA;AAClF,EAAA,IAAMsB,MAAM,GAAGQ,SAAS,CAACD,UAAU,CAAC,CAAA;EAEpC,IAAI7B,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOsB,MAAM,CAACE,KAAK,CAACrB,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AACtC,GAAA;EAEA,IAAIpB,KAAK,KAAK,OAAO,EAAE;IACrBQ,oBAAoB,CAACL,OAAO,CAAC,CAAA;AAC7B,IAAA,OAAOmB,MAAM,CAACjB,KAAK,CAACC,OAAO,CAACc,MAAM,CAAC,CAAA;AACrC,GAAA;EAEA,IAAIpB,KAAK,KAAK,aAAa,EAAE;IAC3B,IAAIG,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIsB,KAAK,CAAA,0EAAA,CAAAb,MAAA,CAC6DT,OAAO,OACnF,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAOmB,MAAM,CAACf,IAAI,CAACmB,WAAW,CAACN,MAAM,CAAC,CAAA;AACxC,GAAA;EAEA,OAAOE,MAAM,CAACf,IAAI,CAACJ,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AACrC,EAAC;IAEYW,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAOW;AAAA,EAAA,IANvCC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IACR9B,OAAO,GAAA6B,KAAA,CAAP7B,OAAO;IACPgB,KAAK,GAAAa,KAAA,CAALb,KAAK;IACLnB,KAAK,GAAAgC,KAAA,CAALhC,KAAK,CAAA;AAIL,EAAA,IAAMsB,MAAM,GAAGY,SAAS,CAACD,QAAQ,CAAC,CAAA;AAClC,EAAA,IAAMb,MAAM,GAAGD,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,GAAG,aAAa,GAAGA,KAAK,CAAA;EAE7E,IAAInB,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOsB,MAAM,CAACE,KAAK,CAACrB,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AACtC,GAAA;EAEA,IAAIpB,KAAK,KAAK,OAAO,EAAE;IACrBQ,oBAAoB,CAACL,OAAO,CAAC,CAAA;AAC7B,IAAA,OAAOmB,MAAM,CAACjB,KAAK,CAACC,OAAO,CAACc,MAAM,CAAC,CAAA;AACrC,GAAA;EAEA,IAAIpB,KAAK,KAAK,aAAa,EAAE;IAC3B,IAAIG,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIsB,KAAK,CAAA,0EAAA,CAAAb,MAAA,CAC6DT,OAAO,OACnF,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAOmB,MAAM,CAACI,WAAW,CAACS,QAAQ,CAACf,MAAM,CAAC,CAAA;AAC5C,GAAA;AAEA,EAAA,IAAIpB,KAAK,IAAIA,KAAK,KAAK,SAAS,EAAE;IAChC,IAAIG,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIsB,KAAK,CAAA,wFAAA,CAAAb,MAAA,CACuEZ,KAAK,OAC3F,CAAC,CAAA;AACH,KAAA;IACA,OAAOsB,MAAM,CAACtB,KAAK,CAACA,KAAK,CAAC,CAACG,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AAC7C,GAAA;EAEA,OAAOE,MAAM,CAACf,IAAI,CAACJ,OAAO,CAAC,CAACiB,MAAM,CAAC,CAAA;AACrC,EAAC;AAED,IAAMgB,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,KAAA,EAsBc;AAAA,EAAA,IArB1BC,sBAAsB,GAAAD,KAAA,CAAtBC,sBAAsB;IACtBC,cAAc,GAAAF,KAAA,CAAdE,cAAc;IACdC,UAAU,GAAAH,KAAA,CAAVG,UAAU;IACVC,IAAI,GAAAJ,KAAA,CAAJI,IAAI;IACJC,KAAK,GAAAL,KAAA,CAALK,KAAK;IACLvC,OAAO,GAAAkC,KAAA,CAAPlC,OAAO;IACPH,KAAK,GAAAqC,KAAA,CAALrC,KAAK;IACL2C,OAAO,GAAAN,KAAA,CAAPM,OAAO;IACPC,aAAa,GAAAP,KAAA,CAAbO,aAAa;IACbC,SAAS,GAAAR,KAAA,CAATQ,SAAS,CAAA;AAaT,EAAA,IACE1C,OAAO,KAAK,UAAU,IACtBH,KAAK,KAAK,SAAS,IACnBA,KAAK,KAAK,OAAO,IACjBA,KAAK,KAAK,aAAa,EACvB;AACAS,IAAAA,eAAe,CAAC;AACdC,MAAAA,UAAU,EAAE,YAAY;MACxBC,OAAO,EAAA,2GAAA,CAAAC,MAAA,CAAuGZ,KAAK,EAAA,IAAA,CAAA;AACrH,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,IAAM8C,UAAU,GAAGH,OAAO,KAAK,CAACJ,cAAc,IAAI,CAAAA,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAc,CAAEQ,IAAI,EAAE,CAACC,MAAM,MAAK,CAAC,CAAC,CAAA;;AAEtF;AACA,EAAA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,KAAa,EAAa;AACxD,IAAA,IAAIA,KAAK,CAACC,UAAU,CAAC,iBAAiB,CAAC,EAAE;AACvC,MAAA,OAAOD,KAAK,CAAA;AACd,KAAA;AACA,IAAA,OAAOE,KAAK,CAACV,KAAK,CAACW,MAAM,EAAEH,KAA0C,CAAC,CAAA;GACvE,CAAA;AAED,EAAA,IAAMI,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAiB;IACzC,OAAOL,sBAAsB,CAAChC,uBAAuB,CAAC;AAAEd,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAALA,KAAK;AAAEmB,MAAAA,KAAK,EAAE,SAAA;AAAU,KAAC,CAAC,CAAC,CAAA;GAC7F,CAAA;EAED,IAAMoC,YAAY,GAAG,SAAfA,YAAYA,CAChBpC,KAAiD,EACjDqC,QAAkC,EACX;IACvB,IAAMC,YAAY,GAAG9B,iBAAiB,CAAC;AAAExB,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAAEwD,QAAQ;AAAErC,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAE3E,IAAA,IAAIsC,YAAY,CAACT,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAA,OAAOhC,SAAS,CAAA;AAClB,KAAA;IAEA,IAAM0C,OAAO,GAAGD,YAAY,CAACE,GAAG,CAAC,UAACC,MAAM,EAAK;MAC3C,IAAMC,aAAa,GAAGT,KAAK,CAACV,KAAK,CAACW,MAAM,EAAEO,MAAM,CAAC5D,KAAK,CAAC,CAAA;MACvD,OAAAY,UAAAA,CAAAA,MAAA,CAAkBgD,MAAM,CAACE,CAAC,EAAAlD,KAAAA,CAAAA,CAAAA,MAAA,CAAMgD,MAAM,CAACG,IAAI,EAAAnD,KAAAA,CAAAA,CAAAA,MAAA,CAAMgD,MAAM,CAACI,MAAM,EAAApD,KAAAA,CAAAA,CAAAA,MAAA,CAAMiD,aAAa,CAAA,CAAA;AACnF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOH,OAAO,CAACO,IAAI,CAAC,IAAI,CAAC,CAAA;GAC1B,CAAA;AAED,EAAA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CACzBV,QAAkC,EAe/B;AACH,IAAA,IAAMW,mBAAmB,GAAG,SAAtBA,mBAAmBA,CACvBV,YAAkD,EAQ/C;AACH,MAAA,IAAIW,cAAkC,EACpCC,WAA+B,EAC/BC,WAA+B,CAAA;MACjC,IAAIC,eAAe,GAAG,CAAC,CAAA;MACvB,IAAIC,YAAY,GAAG,CAAC,CAAA;MACpB,IAAIC,SAAS,GAAG,CAAC,CAAA;AAAC,MAAA,IAAAC,SAAA,GAAAC,0BAAA,CAEGlB,YAAY,CAAA;QAAAmB,KAAA,CAAA;AAAA,MAAA,IAAA;QAAjC,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAAmC;AAAA,UAAA,IAAxBnB,MAAM,GAAAgB,KAAA,CAAA1B,KAAA,CAAA;UACf,IAAM8B,QAAQ,GAAG5B,KAAK,CAACV,KAAK,CAACW,MAAM,EAAEO,MAAM,CAAC5D,KAAK,CAAC,CAAA;UAClD,IAAI4D,MAAM,CAACE,CAAC,GAAG,CAAC,IAAI,CAACM,cAAc,EAAE;AACnCA,YAAAA,cAAc,GAAGY,QAAQ,CAAA;YACzBT,eAAe,GAAGX,MAAM,CAACE,CAAC,CAAA;WAC3B,MAAM,IAAIF,MAAM,CAACE,CAAC,GAAG,CAAC,IAAI,CAACO,WAAW,EAAE;AACvCA,YAAAA,WAAW,GAAGW,QAAQ,CAAA;YACtBR,YAAY,GAAGS,IAAI,CAACC,GAAG,CAACtB,MAAM,CAACE,CAAC,CAAC,CAAA;WAClC,MAAM,IAAIF,MAAM,CAACI,MAAM,GAAG,CAAC,IAAI,CAACM,WAAW,EAAE;AAC5CA,YAAAA,WAAW,GAAGU,QAAQ,CAAA;YACtBP,SAAS,GAAGb,MAAM,CAACI,MAAM,CAAA;AAC3B,WAAA;AACF,SAAA;AAAC,OAAA,CAAA,OAAAmB,GAAA,EAAA;QAAAT,SAAA,CAAAU,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAT,QAAAA,SAAA,CAAAW,CAAA,EAAA,CAAA;AAAA,OAAA;MAED,OAAO;AAAEjB,QAAAA,cAAc,EAAdA,cAAc;AAAEC,QAAAA,WAAW,EAAXA,WAAW;AAAEC,QAAAA,WAAW,EAAXA,WAAW;AAAEC,QAAAA,eAAe,EAAfA,eAAe;AAAEC,QAAAA,YAAY,EAAZA,YAAY;AAAEC,QAAAA,SAAS,EAATA,SAAAA;OAAW,CAAA;KAC9F,CAAA;AAED,IAAA,IAAMa,aAAa,GAAGnB,mBAAmB,CACvCxC,iBAAiB,CAAC;AAAExB,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAAEwD,QAAQ;AAAErC,MAAAA,KAAK,EAAE,SAAA;AAAU,KAAC,CAClE,CAAC,CAAA;AACD,IAAA,IAAI,CAACmE,aAAa,CAAClB,cAAc,IAAI,CAACkB,aAAa,CAACjB,WAAW,IAAI,CAACiB,aAAa,CAAChB,WAAW,EAAE;AAC7F,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;AAEA,IAAA,IAAMiB,WAAW,GAAGpB,mBAAmB,CACrCxC,iBAAiB,CAAC;AAAExB,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAAEwD,QAAQ;AAAErC,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAC,CAChE,CAAC,CAAA;IAED,OAAO;MACLqE,oBAAoB,EAAEF,aAAa,CAAClB,cAAc;MAClDqB,qBAAqB,EACnBH,aAAa,CAACf,eAAe,KAAK,CAAC,GAAGe,aAAa,CAACf,eAAe,GAAGvD,SAAS;MACjF0E,iBAAiB,EAAEJ,aAAa,CAACjB,WAAW;MAC5CsB,kBAAkB,EAAEL,aAAa,CAACd,YAAY,KAAK,CAAC,GAAGc,aAAa,CAACd,YAAY,GAAGxD,SAAS;MAC7F4E,iBAAiB,EAAEN,aAAa,CAAChB,WAAW;MAC5CuB,sBAAsB,EAAEN,WAAW,CAACjB,WAAW;MAC/CwB,eAAe,EAAER,aAAa,CAACb,SAAS,KAAK,CAAC,GAAGa,aAAa,CAACb,SAAS,GAAGzD,SAAS;MACpF+E,uBAAuB,EAAE5F,OAAO,KAAK,SAAA;KACtC,CAAA;GACF,CAAA;EAED,IAAM6F,KAA2B,GAAAC,aAAA,CAAA;AAC/BC,IAAAA,QAAQ,EACNrD,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GACRC,UAAU,GAAGqD,+BAA+B,CAAC1D,IAAI,CAAC,GAAG2D,uBAAuB,CAAC3D,IAAI,CAAE;AACtF4D,IAAAA,WAAW,EAAEC,0BAA0B,CAAC7D,IAAI,CAAC;IAC7C8D,QAAQ,EAAEjE,sBAAsB,CAACkE,KAAK,CAAC/D,IAAI,CAACA,IAAI,CAAC;AACjDgE,IAAAA,UAAU,EAAEnE,sBAAsB,CAACoE,WAAW,CAACjE,IAAI,CAAC;AACpDkE,IAAAA,SAAS,EAAEC,QAAQ,CAACC,SAAe,CAACpE,IAAI,CAAC,CAAC;IAC1CqE,MAAM,EAAEhE,UAAU,GAAGiE,yBAAyB,CAACtE,IAAI,CAAC,GAAGzB,SAAS;IAChEgG,KAAK,EAAElE,UAAU,GAAGiE,yBAAyB,CAACtE,IAAI,CAAC,GAAGzB,SAAS;IAC/DiG,SAAS,EAAElF,iBAAiB,CAAC;AAC3BE,MAAAA,QAAQ,EAAE,MAAM;AAChB9B,MAAAA,OAAO,EAAPA,OAAO;AACPH,MAAAA,KAAK,EAALA,KAAK;AACLmB,MAAAA,KAAK,EAAE,SAAA;AACT,KAAC,CAAc;IACfe,SAAS,EAAEH,iBAAiB,CAAC;AAC3BE,MAAAA,QAAQ,EAAE,MAAM;AAChB9B,MAAAA,OAAO,EAAPA,OAAO;AACPH,MAAAA,KAAK,EAALA,KAAK;AACLmB,MAAAA,KAAK,EAAE,SAAA;AACT,KAAC,CAA2B;IAC5B+F,gBAAgB,EAAEpE,UAAU,GAAGqE,SAAS,CAAC,CAAC,CAAC,GAAGA,SAAS,CAACzE,KAAK,CAAC0E,OAAO,CAACC,aAAa,CAAC5E,IAAI,CAAC,CAAC6E,GAAG,CAAC,CAAC;IAC/FC,mBAAmB,EAAEzE,UAAU,GAC3BqE,SAAS,CAAC,CAAC,CAAC,GACZA,SAAS,CAACzE,KAAK,CAAC0E,OAAO,CAACC,aAAa,CAAC5E,IAAI,CAAC,CAAC+E,MAAM,CAAC,CAAC;IACxDC,iBAAiB,EAAE3E,UAAU,GACzBqE,SAAS,CAAC,CAAC,CAAC,GACZA,SAAS,CAACzE,KAAK,CAAC0E,OAAO,CAACC,aAAa,CAAC5E,IAAI,CAAC,CAACiF,IAAI,CAAC,CAAC;IACtDC,kBAAkB,EAAE7E,UAAU,GAC1BqE,SAAS,CAAC,CAAC,CAAC,GACZA,SAAS,CAACzE,KAAK,CAAC0E,OAAO,CAACC,aAAa,CAAC5E,IAAI,CAAC,CAACmF,KAAK,CAAC,CAAC;IACvDC,IAAI,EAAEtF,cAAc,KAAdA,IAAAA,IAAAA,cAAc,uBAAdA,cAAc,CAAEQ,IAAI,EAAE;IAC5B+E,sBAAsB,EAAExE,oBAAoB,EAAE;AAC9CyE,IAAAA,gBAAgB,EAAExE,YAAY,CAAC,SAAS,EAAEvD,KAAK,CAAC;AAChDgI,IAAAA,oBAAoB,EAAE/E,sBAAsB,CAC1ChC,uBAAuB,CAAC;AAAEd,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAALA,KAAK;AAAEmB,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAC,CAC5D,CAAC;AACD8G,IAAAA,cAAc,EAAE1E,YAAY,CAAC,OAAO,EAAEvD,KAAK,CAAC;IAC5CkI,cAAc,EAAE9E,KAAK,CACnBV,KAAK,CAACW,MAAM,EACZtB,iBAAiB,CAAC;AAChBE,MAAAA,QAAQ,EAAE,MAAM;AAChB9B,MAAAA,OAAO,EAAPA,OAAO;AACPH,MAAAA,KAAK,EAALA,KAAK;AACLmB,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CACH,CAAC;AACDgH,IAAAA,oBAAoB,EAAElF,sBAAsB,CAC1ChC,uBAAuB,CAAC;AAAEd,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAALA,KAAK;AAAEmB,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAC,CAC5D,CAAC;AACDiH,IAAAA,cAAc,EAAE7E,YAAY,CAAC,OAAO,EAAEvD,KAAK,CAAC;IAC5CqI,cAAc,EAAEjF,KAAK,CAACV,KAAK,CAACW,MAAM,EAAE,8BAA8B,CAAC;IACnEiF,YAAY,EAAEC,cAAc,CAAC7F,KAAK,CAAC8F,MAAM,CAACC,MAAM,CAAC7F,aAAa,aAAbA,aAAa,KAAA,KAAA,CAAA,GAAbA,aAAa,GAAI8F,kBAAkB,CAACjG,IAAI,CAAC,CAAC,CAAC;AAC5FkG,IAAAA,cAAc,EAAE,iBAAiB;AACjCC,IAAAA,YAAY,EAAE,iBAAA;AAAiB,GAAA,EAC3B7H,aAAa,EAAE,IAAI,CAACyB,UAAU,GAAG0B,qBAAqB,CAAClE,KAAK,CAAC,GAAG,EAAE,CACvE,CAAA;AAED,EAAA,IAAIwC,UAAU,EAAE;AACd,IAAA,IAAMqG,uBAAuB,GAAG5F,sBAAsB,CACpDhC,uBAAuB,CAAC;AAAEd,MAAAA,OAAO,EAAPA,OAAO;AAAEH,MAAAA,KAAK,EAALA,KAAK;AAAEmB,MAAAA,KAAK,EAAE,UAAA;AAAW,KAAC,CAC/D,CAAC,CAAA;AACD6E,IAAAA,KAAK,CAACiB,SAAS,GAAGlF,iBAAiB,CAAC;AAClCE,MAAAA,QAAQ,EAAE,MAAM;AAChB9B,MAAAA,OAAO,EAAPA,OAAO;AACPH,MAAAA,KAAK,EAALA,KAAK;AACLmB,MAAAA,KAAK,EAAE,UAAA;AACT,KAAC,CAAc,CAAA;AACf6E,IAAAA,KAAK,CAAC9D,SAAS,GAAGH,iBAAiB,CAAC;AAClCE,MAAAA,QAAQ,EAAE,MAAM;AAChB9B,MAAAA,OAAO,EAAPA,OAAO;AACPH,MAAAA,KAAK,EAALA,KAAK;AACLmB,MAAAA,KAAK,EAAE,UAAA;AACT,KAAC,CAA2B,CAAA;IAC5B6E,KAAK,CAAC8B,sBAAsB,GAAGe,uBAAuB,CAAA;IACtD7C,KAAK,CAAC+B,gBAAgB,GAAGxE,YAAY,CAAC,UAAU,EAAEvD,KAAK,CAAC,CAAA;IACxDgG,KAAK,CAACgC,oBAAoB,GAAGa,uBAAuB,CAAA;IACpD7C,KAAK,CAACiC,cAAc,GAAG1E,YAAY,CAAC,UAAU,EAAEvD,KAAK,CAAC,CAAA;IACtDgG,KAAK,CAACmC,oBAAoB,GAAGU,uBAAuB,CAAA;IACpD7C,KAAK,CAACoC,cAAc,GAAG7E,YAAY,CAAC,UAAU,EAAEvD,KAAK,CAAC,CAAA;AACxD,GAAA;AAEA,EAAA,OAAOgG,KAAK,CAAA;AACd,CAAC,CAAA;AAED,IAAM8C,aAAa,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,2BAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAAA,CAAA,CAAwB,UAAAC,KAAA,EAAA;AAAA,EAAA,IAAGC,QAAQ,GAAAD,KAAA,CAARC,QAAQ,CAAA;EAAA,OAAQ;AAC9EC,IAAAA,OAAO,EAAED,QAAQ,GAAG,CAAC,GAAG,CAAA;GACzB,CAAA;AAAA,CAAC,CAAC,CAAA;AAEH,IAAME,WAA6E,GAAG,SAAhFA,WAA6EA,CAAAC,KAAA,EAmCjFC,GAAG,EACA;AAAA,EAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;AAAA,EAAA,IAlCDrJ,IAAI,GAAA0I,KAAA,CAAJ1I,IAAI;IACJsJ,MAAM,GAAAZ,KAAA,CAANY,MAAM;IACNC,GAAG,GAAAb,KAAA,CAAHa,GAAG;IACHC,QAAQ,GAAAd,KAAA,CAARc,QAAQ;IACRC,EAAE,GAAAf,KAAA,CAAFe,EAAE;IAAAC,aAAA,GAAAhB,KAAA,CACFrJ,OAAO;AAAPA,IAAAA,OAAO,GAAAqK,aAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,aAAA;IAAAC,WAAA,GAAAjB,KAAA,CACnBxJ,KAAK;AAALA,IAAAA,KAAK,GAAAyK,WAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,WAAA;IAAAC,UAAA,GAAAlB,KAAA,CACjB/G,IAAI;AAAJA,IAAAA,IAAI,GAAAiI,UAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,UAAA;IACTC,IAAI,GAAAnB,KAAA,CAAVoB,IAAI;IAAAC,kBAAA,GAAArB,KAAA,CACJsB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,kBAAA;IAAAE,gBAAA,GAAAvB,KAAA,CACrBhH,UAAU;AAAVA,IAAAA,UAAU,GAAAuI,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;IAAAC,iBAAA,GAAAxB,KAAA,CAClByB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA;IAAAE,eAAA,GAAA1B,KAAA,CACnB2B,SAAS;AAATA,IAAAA,SAAS,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IACjBE,OAAO,GAAA5B,KAAA,CAAP4B,OAAO;IACPC,MAAM,GAAA7B,KAAA,CAAN6B,MAAM;IACNC,UAAS,GAAA9B,KAAA,CAAT8B,SAAS;IAAAC,UAAA,GAAA/B,KAAA,CACTgC,IAAI;AAAJA,IAAAA,IAAI,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,UAAA;IACfE,QAAQ,GAAAjC,KAAA,CAARiC,QAAQ;IACRC,MAAM,GAAAlC,KAAA,CAANkC,MAAM;IACNC,OAAO,GAAAnC,KAAA,CAAPmC,OAAO;IACPC,YAAY,GAAApC,KAAA,CAAZoC,YAAY;IACZC,WAAW,GAAArC,KAAA,CAAXqC,WAAW;IACXC,YAAW,GAAAtC,KAAA,CAAXsC,WAAW;IACXC,aAAa,GAAAvC,KAAA,CAAbuC,aAAa;IACbC,cAAc,GAAAxC,KAAA,CAAdwC,cAAc;IACdC,kBAAkB,GAAAzC,KAAA,CAAlByC,kBAAkB;IAClBC,WAAU,GAAA1C,KAAA,CAAV0C,UAAU;IACVC,aAAY,GAAA3C,KAAA,CAAZ2C,YAAY;IACZvJ,aAAa,GAAA4G,KAAA,CAAb5G,aAAa;IACbC,SAAS,GAAA2G,KAAA,CAAT3G,SAAS;IACTuJ,aAAa,GAAA5C,KAAA,CAAb4C,aAAa;AACVC,IAAAA,IAAI,GAAAC,wBAAA,CAAA9C,KAAA,EAAA+C,SAAA,CAAA,CAAA;AAIT,EAAA,IAAAC,SAAA,GAAkBC,QAAQ,EAAE;IAApB/J,KAAK,GAAA8J,SAAA,CAAL9J,KAAK,CAAA;AACb,EAAA,IAAMgK,gBAAgB,GAAGC,qBAAqB,EAAE,CAAA;AAChD,EAAA,IAAAC,eAAA,GAAkCC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAhDK,IAAAA,SAAS,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAMI,MAAM,GAAGC,OAAO,CAACtM,IAAI,CAAC,CAAA;AAC5B,EAAA,IAAMyB,cAAc,GAAG8K,sBAAsB,CAAC5B,QAAQ,CAAC,CAAA;AACvD,EAAA,IAAM6B,mBAAmB,gBAAGT,cAAK,CAACU,cAAc,CAAC9B,QAAQ,CAAC,CAAA;;AAE1D;AACA;AACA;EACA,IAAM+B,QAAQ,GAAGd,gBAAgB,CAAClK,UAAU,IAAI2I,SAAS,IAAK3I,UAAU,IAAI,CAAC2K,MAAO,CAAA;AAEpF,EAAA,IAAI,KAAO,EAAE;AACX,IAAA,IAAI,CAACxC,IAAI,IAAI,EAACpI,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAA,KAAA,CAAA,IAAdA,cAAc,CAAEQ,IAAI,EAAE,CAAE,EAAA;AACpCtC,MAAAA,eAAe,CAAC;AACdE,QAAAA,OAAO,EAAE,8DAA8D;AACvED,QAAAA,UAAU,EAAE,YAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAM+M,WAAW,GAAGC,WAAW,CAACvC,SAAS,CAAC,CAAA;EAE1C0B,cAAK,CAACc,SAAS,CAAC,YAAM;AACpB,IAAA,IAAIxC,SAAS,EAAEyC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAE1C,IAAI,CAACzC,SAAS,IAAIsC,WAAW,EAAEG,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAC5D,GAAC,EAAE,CAACzC,SAAS,EAAEsC,WAAW,CAAC,CAAC,CAAA;;AAE5B;AACA;AACA;AACA;EACAZ,cAAK,CAACgB,eAAe,CAAC,YAAM;AAC1B,IAAA,IAAI,OAAOnB,gBAAgB,CAACoB,WAAW,KAAK,QAAQ,EAAE,OAAA;AACtD,IAAA,IAAQA,WAAW,GAA4BpB,gBAAgB,CAAvDoB,WAAW;MAAEC,qBAAqB,GAAKrB,gBAAgB,CAA1CqB,qBAAqB,CAAA;AAC1C,IAAA,IAAId,SAAS,EAAE;AACbc,MAAAA,qBAAqB,aAArBA,qBAAqB,KAAA,KAAA,CAAA,IAArBA,qBAAqB,CAAGD,WAAW,CAAC,CAAA;AACtC,KAAC,MAAM;AACL;AACA;AACAC,MAAAA,qBAAqB,aAArBA,qBAAqB,KAAA,KAAA,CAAA,IAArBA,qBAAqB,CAAG,UAACC,IAAI,EAAA;AAAA,QAAA,OAAMA,IAAI,KAAKF,WAAW,GAAG,IAAI,GAAGE,IAAI,CAAA;AAAA,OAAC,CAAC,CAAA;AACzE,KAAA;AACA;GACD,EAAE,CAACf,SAAS,EAAEP,gBAAgB,CAACoB,WAAW,CAAC,CAAC,CAAA;EAE7C,IAAAG,SAAA,GAkCI7L,QAAQ,CAAC;AACXE,MAAAA,sBAAsB,EAAE4L,UAAgB;AACxC3L,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,UAAU,EAAEgL,QAAQ;MACpB/K,IAAI,EAAA,CAAAiH,qBAAA,GAAEgD,gBAAgB,CAACjK,IAAI,MAAA,IAAA,IAAAiH,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIjH,IAAI;MACnCtC,OAAO,EAAA,CAAAwJ,qBAAA,GAAE+C,gBAAgB,CAACvM,OAAO,MAAA,IAAA,IAAAwJ,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIxJ,OAAO;AAC5CuC,MAAAA,KAAK,EAALA,KAAK;MACL1C,KAAK,EAAA,CAAA4J,qBAAA,GAAE8C,gBAAgB,CAAC1M,KAAK,MAAA,IAAA,IAAA4J,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI5J,KAAK;AACtC2C,MAAAA,OAAO,EAAEyK,OAAO,CAACzC,IAAI,CAAC;AACtB/H,MAAAA,aAAa,EAAbA,aAAa;AACbC,MAAAA,SAAS,EAATA,SAAAA;AACF,KAAC,CAAC;IA5CAiF,sBAAsB,GAAAmG,SAAA,CAAtBnG,sBAAsB;IACtBC,gBAAgB,GAAAkG,SAAA,CAAhBlG,gBAAgB;IAChBpB,SAAS,GAAAsH,SAAA,CAATtH,SAAS;IACTG,MAAM,GAAAmH,SAAA,CAANnH,MAAM;IACNE,KAAK,GAAAiH,SAAA,CAALjH,KAAK;IACLE,gBAAgB,GAAA+G,SAAA,CAAhB/G,gBAAgB;IAChBK,mBAAmB,GAAA0G,SAAA,CAAnB1G,mBAAmB;IACnBE,iBAAiB,GAAAwG,SAAA,CAAjBxG,iBAAiB;IACjBE,kBAAkB,GAAAsG,SAAA,CAAlBtG,kBAAkB;IAClBS,cAAc,GAAA6F,SAAA,CAAd7F,cAAc;IACdD,oBAAoB,GAAA8F,SAAA,CAApB9F,oBAAoB;IACpBE,cAAc,GAAA4F,SAAA,CAAd5F,cAAc;IACd9B,QAAQ,GAAA0H,SAAA,CAAR1H,QAAQ;IACR0B,cAAc,GAAAgG,SAAA,CAAdhG,cAAc;IACdD,oBAAoB,GAAAiG,SAAA,CAApBjG,oBAAoB;IACpBE,cAAc,GAAA+F,SAAA,CAAd/F,cAAc;IACdjB,SAAS,GAAAgH,SAAA,CAAThH,SAAS;IACTf,QAAQ,GAAA+H,SAAA,CAAR/H,QAAQ;IACRG,WAAW,GAAA4H,SAAA,CAAX5H,WAAW;IACXI,UAAU,GAAAwH,SAAA,CAAVxH,UAAU;IACVoB,IAAI,GAAAoG,SAAA,CAAJpG,IAAI;IACJ3F,SAAS,GAAA+L,SAAA,CAAT/L,SAAS;IACToG,YAAY,GAAA2F,SAAA,CAAZ3F,YAAY;IACZK,cAAc,GAAAsF,SAAA,CAAdtF,cAAc;IACdC,YAAY,GAAAqF,SAAA,CAAZrF,YAAY;IACZpD,oBAAoB,GAAAyI,SAAA,CAApBzI,oBAAoB;IACpBC,qBAAqB,GAAAwI,SAAA,CAArBxI,qBAAqB;IACrBC,iBAAiB,GAAAuI,SAAA,CAAjBvI,iBAAiB;IACjBC,kBAAkB,GAAAsI,SAAA,CAAlBtI,kBAAkB;IAClBC,iBAAiB,GAAAqI,SAAA,CAAjBrI,iBAAiB;IACjBC,sBAAsB,GAAAoI,SAAA,CAAtBpI,sBAAsB;IACtBC,eAAe,GAAAmI,SAAA,CAAfnI,eAAe;IACfC,uBAAuB,GAAAkI,SAAA,CAAvBlI,uBAAuB,CAAA;AAczB,EAAA,IAAMoI,aAAa,GAAGtB,cAAK,CAACuB,OAAO,CAAC,YAAA;IAAA,OAAMvN,gBAAgB,CAACC,IAAI,CAAC,CAAA;GAAE,EAAA,CAACA,IAAI,CAAC,CAAC,CAAA;AACzE,EAAA,IAAMuN,WAAW,GAAGlB,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAMmB,qBAAqB,GAAGvN,aAAa,EAAE,IAAIqM,OAAO,CAACV,gBAAgB,CAAC6B,mBAAmB,CAAC,CAAA;;AAE9F;AACA;AACA;AACA;AACA;EACA,IAAMC,uBAAuB,GAAGF,qBAAqB,GAAG/F,cAAc,CAAC,CAAC,CAAC,GAAGD,YAAY,CAAA;;AAExF;AACA;AACA;AACA;AACA;EACA,IAAMmG,iBAAiB,GAAGH,qBAAqB,GAC3C5L,KAAK,CAAC8F,MAAM,CAACC,MAAM,CAACC,kBAAkB,CAAAmB,CAAAA,sBAAA,GAAC6C,gBAAgB,CAACjK,IAAI,MAAA,IAAA,IAAAoH,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAIpH,IAAI,CAAC,CAAC,GACtE,CAAC,CAAA;AACL,EAAA,IAAMiM,cAAc,GAAGtB,OAAO,CAACV,gBAAgB,CAACiC,oBAAoB,CAAC,CAAA;AACrE,EAAA,IAAMC,aAAa,GAAGxB,OAAO,CAACV,gBAAgB,CAACmC,mBAAmB,CAAC,CAAA;EACnE,IAAMC,iBAAiB,GAAGR,qBAAqB,GAC3C;AACES,IAAAA,OAAO,EAAEL,cAAc,GAAGD,iBAAiB,GAAG,CAAC;AAC/CO,IAAAA,UAAU,EAAEN,cAAc,GAAGD,iBAAiB,GAAG,CAAC;AAClDQ,IAAAA,QAAQ,EAAEL,aAAa,GAAGH,iBAAiB,GAAG,CAAC;AAC/CS,IAAAA,WAAW,EAAEN,aAAa,GAAGH,iBAAiB,GAAG,CAAA;AACnD,GAAC,GACDzN,SAAS,CAAA;;AAEb;AACA;AACA,EAAA,IAAMmO,sBAAsB,GAC1Bb,qBAAqB,IAAI,CAACI,cAAc,IAAItB,OAAO,CAACV,gBAAgB,CAACyC,sBAAsB,CAAC,CAAA;;AAE9F;AACA;AACA;AACA;AACA;AACA,EAAA,IAAMC,uBAAuB,GAAGd,qBAAqB,IAAI,CAACI,cAAc,CAAA;EACxE,IAAMW,kBAAkB,GAAGjC,OAAO,CAACrH,uBAAuB,CAAC,IAAI,CAACqJ,uBAAuB,CAAA;AACvF,EAAA,IAAME,6BAA6B,GAAGF,uBAAuB,GAAGpO,SAAS,GAAGwE,oBAAoB,CAAA;;AAEhG;AACA;AACA;AACA,EAAA,IAAM+J,4BAA4B,GAChCjB,qBAAqB,IAAIlB,OAAO,EAAAtD,qBAAA,GAAC4C,gBAAgB,CAACzB,WAAW,MAAAnB,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAImB,WAAW,CAAC,CAAA;AAE/E,EAAA,IAAMuE,sBAAsB,GAAG3C,cAAK,CAAC4C,WAAW,CAAC,YAAM;AACrD,IAAA,IAAIjC,QAAQ,EAAE,OAAA;IACdN,YAAY,CAAC,IAAI,CAAC,CAAA;AACpB,GAAC,EAAE,CAACM,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,IAAMkC,uBAAuB,GAAG7C,cAAK,CAAC4C,WAAW,CAAC,YAAM;AACtD,IAAA,IAAIjC,QAAQ,EAAE,OAAA;IACdN,YAAY,CAAC,KAAK,CAAC,CAAA;AACrB,GAAC,EAAE,CAACM,QAAQ,CAAC,CAAC,CAAA;EAEd,IAAMmC,uBAAuB,GAAG9C,cAAK,CAAC4C,WAAW,CAC/C,UAACrK,CAAsB,EAAK;AAC1B,IAAA,IAAIoI,QAAQ,EAAE,OAAA;IACd,IAAIpI,CAAC,CAACwK,GAAG,KAAK,GAAG,IAAIxK,CAAC,CAACwK,GAAG,KAAK,OAAO,EAAE;MACtC1C,YAAY,CAAC,IAAI,CAAC,CAAA;AACpB,KAAA;AACF,GAAC,EACD,CAACM,QAAQ,CACX,CAAC,CAAA;EAED,IAAMqC,wBAAwB,GAAGhD,cAAK,CAAC4C,WAAW,CAChD,UAACrK,CAAsB,EAAK;AAC1B,IAAA,IAAIoI,QAAQ,EAAE,OAAA;IACd,IAAIpI,CAAC,CAACwK,GAAG,KAAK,GAAG,IAAIxK,CAAC,CAACwK,GAAG,KAAK,OAAO,EAAE;MACtC1C,YAAY,CAAC,KAAK,CAAC,CAAA;AACrB,KAAA;AACF,GAAC,EACD,CAACM,QAAQ,CACX,CAAC,CAAA;EAED,oBACEsC,GAAA,CAACC,gBAAgB,EAAA9J,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACfwD,IAAAA,GAAG,EAAEA,GAAW;AAChBc,IAAAA,EAAE,EAAEA,EAAAA;AACJ;AACA;AAAA;AACAyF,IAAAA,EAAE,EAAE7B,aAAc;AAClBrN,IAAAA,IAAI,EAAEA,IAAK;AACXsJ,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,GAAG,EAAEA,GAAI;IACT4B,kBAAkB,EAAAhG,aAAA,CACbgK,EAAAA,EAAAA,cAAc,CAAAhK,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZgG,kBAAkB,CAAA,EAAA,EAAA,EAAA;AACrBiE,MAAAA,IAAI,EAAAnG,CAAAA,qBAAA,GAAEkC,kBAAkB,aAAlBA,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,kBAAkB,CAAEiE,IAAI,MAAA,IAAA,IAAAnG,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIsE,WAAAA;AAAW,KAAA,CAC9C,CAAC,CACF;IACFlO,OAAO,EAAA,CAAA6J,sBAAA,GAAE0C,gBAAgB,CAACvM,OAAO,MAAA,IAAA,IAAA6J,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAI7J,OAAQ;IAC7CH,KAAK,EAAA,CAAAiK,sBAAA,GAAEyC,gBAAgB,CAAC1M,KAAK,MAAA,IAAA,IAAAiK,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAIjK,KAAM;IACvCyC,IAAI,EAAA,CAAAyH,sBAAA,GAAEwC,gBAAgB,CAACjK,IAAI,MAAA,IAAA,IAAAyH,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAIzH,IAAK;AACpC0I,IAAAA,SAAS,EAAEA,SAAU;AACrBqC,IAAAA,QAAQ,EAAEA,QAAS;AACnB7G,IAAAA,SAAS,EAAEA,SAAU;AACrBO,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCK,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCE,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCE,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCG,IAAAA,sBAAsB,EAAEA,sBAAuB;AAC/CC,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCK,IAAAA,cAAc,EAAEA,cAAe;AAC/BD,IAAAA,oBAAoB,EAAEA,oBAAqB;AAC3CE,IAAAA,cAAc,EAAEA,cAAe;AAC/BJ,IAAAA,cAAc,EAAEA,cAAe;AAC/BD,IAAAA,oBAAoB,EAAEA,oBAAqB;IAC3CiD,WAAW,EAAA,CAAAd,sBAAA,GAAEuC,gBAAgB,CAACzB,WAAW,MAAA,IAAA,IAAAd,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAIc,WAAY;AACzDG,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,MAAM,EAAEA,MAAO;AACfM,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BC,IAAAA,WAAW,EAAEA,WAAY;AACzBvB,IAAAA,QAAQ,EAAEA,QAAS;AACnByB,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,cAAc,EAAEA,cAAAA;AAChB;AAAA;AACAV,IAAAA,SAAS,EAAE,SAAXA,SAASA,CAAG6E,KAAU,EAAK;MACzBR,uBAAuB,CAACQ,KAAK,CAAC,CAAA;AAC9B7E,MAAAA,UAAS,aAATA,UAAS,KAAA,KAAA,CAAA,IAATA,UAAS,CAAG6E,KAAK,CAAC,CAAA;KAClB;AACFhE,IAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAGgE,KAAuB,EAAK;AACzCX,MAAAA,sBAAsB,EAAE,CAAA;AACxBrD,MAAAA,aAAY,aAAZA,aAAY,KAAA,KAAA,CAAA,IAAZA,aAAY,CAAGgE,KAAK,CAAC,CAAA;KACrB;AACFjE,IAAAA,UAAU,EAAE,SAAZA,UAAUA,CAAGiE,KAAuB,EAAK;AACvCT,MAAAA,uBAAuB,EAAE,CAAA;AACzBxD,MAAAA,WAAU,aAAVA,WAAU,KAAA,KAAA,CAAA,IAAVA,WAAU,CAAGiE,KAAK,CAAC,CAAA;KACnB;AACF3E,IAAAA,IAAI,EAAEA,IAAK;AACXlD,IAAAA,YAAY,EAAEkG,uBAAAA;AAAwB,GAAA,EACjCM,iBAAiB,GAAG;AAAEsB,IAAAA,WAAW,EAAEtB,iBAAAA;AAAkB,GAAC,GAAG,EAAE,CAAA,EAC3DK,sBAAsB,GAAG;AAAEA,IAAAA,sBAAsB,EAAtBA,sBAAAA;AAAuB,GAAC,GAAG,EAAE,CAAA,EACxDC,uBAAuB,GAAG;AAAEiB,IAAAA,2BAA2B,EAAE,IAAA;AAAK,GAAC,GAAG,EAAE,CAAA,EACpEd,4BAA4B,GAAG;AAAEA,IAAAA,4BAA4B,EAAE,IAAA;GAAM,GAAG,EAAE,CAAA,EAAA,EAAA,EAAA;AAC/E5G,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,YAAY,EAAEA,YAAa;AAC3B9B,IAAAA,MAAM,EAAEA,MAAO;AACfE,IAAAA,KAAK,EAAEA,KAAM;AACbiG,IAAAA,SAAS,EAAEA,SAAU;AACrB/E,IAAAA,cAAc,EACZ1F,UAAU,GACNY,KAAK,CAACV,KAAK,CAACW,MAAM,EAAE4D,SAA8C,CAAC,GACnEiB,cACL;AACD4D,IAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAGqE,KAAuB,EAAK;AACxCX,MAAAA,sBAAsB,EAAE,CAAA;AACxB1D,MAAAA,YAAW,aAAXA,YAAW,KAAA,KAAA,CAAA,IAAXA,YAAW,CAAGqE,KAAK,CAAC,CAAA;KACpB;AACFG,IAAAA,SAAS,EAAEZ,uBAAAA;AAAwB,GAAA,EAC9B,CAAC3O,aAAa,EAAE,GACjB;AAAEwP,IAAAA,UAAU,EAAEb,uBAAuB;AAAEc,IAAAA,OAAO,EAAEX,wBAAAA;GAA0B,GAC1E,EAAE,CAAA,EAAA,EAAA,EAAA;AACNrK,IAAAA,oBAAoB,EAAE8J,6BAA8B;AACpD7J,IAAAA,qBAAqB,EAAE2J,uBAAuB,GAAGpO,SAAS,GAAGyE,qBAAsB;AACnFC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,sBAAsB,EAAEA,sBAAuB;AAC/CC,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,uBAAuB,EAAEsJ,kBAAAA;AAAmB,GAAA,EACxCoB,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,MAAM;AAAElF,IAAAA,MAAM,EAANA,MAAAA;GAAQ,CAAC,CACrDmF,EAAAA,cAAc,CAACxE,IAAI,CAAC,CACpByE,EAAAA,sBAAsB,CAACzE,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAZ,QAAA,eAEhCsF,IAAA,CAACC,qBAAqB,EAAA;AACpBrI,MAAAA,cAAc,EAAEA,cAAe;AAC/BC,MAAAA,YAAY,EAAEA,YAAa;AAC3BqE,MAAAA,SAAS,EAAEA,SAAU;AAAAxB,MAAAA,QAAA,EAEpBN,CAAAA,SAAS,gBACR2E,GAAA,CAAC9G,OAAO,EAAA;AACNiI,QAAAA,OAAO,EAAC,MAAM;AACdC,QAAAA,cAAc,EAAC,QAAQ;AACvBC,QAAAA,UAAU,EAAC,QAAQ;AACnBC,QAAAA,QAAQ,EAAC,UAAU;AACnB9J,QAAAA,GAAG,EAAC,KAAK;AACTI,QAAAA,IAAI,EAAC,KAAK;AACVF,QAAAA,MAAM,EAAC,KAAK;AACZI,QAAAA,KAAK,EAAC,KAAK;AACXyJ,QAAAA,MAAM,EAAE,CAAE;QAAA5F,QAAA,eAEVqE,GAAA,CAACwB,WAAW,EAAA;AACVC,UAAAA,kBAAkB,EAAC,SAAS;AAC5B9O,UAAAA,IAAI,EAAE4D,WAAY;UAClBrG,KAAK,EAAEoM,aAAa,KAAbA,IAAAA,IAAAA,aAAa,cAAbA,aAAa,GAAInM,eAAe,CAAC;AAAEE,YAAAA,OAAO,EAAPA,OAAO;AAAEH,YAAAA,KAAK,EAALA,KAAAA;WAAO,CAAA;SAC3D,CAAA;AAAC,OACK,CAAC,GACR,IAAI,eACR+Q,IAAA,CAACjI,aAAa,EAAA;AACZmI,QAAAA,OAAO,EAAC,MAAM;AACdO,QAAAA,aAAa,EAAC,KAAK;AACnBL,QAAAA,UAAU,EAAC,QAAQ;AACnBD,QAAAA,cAAc,EAAC,QAAQ;AACvBO,QAAAA,IAAI,EAAE,CAAE;AACRpI,QAAAA,QAAQ,EAAE8B,SAAU;AACpBkG,QAAAA,MAAM,EAAE,CAAE;QAAA5F,QAAA,EAAA,CAETd,IAAI,IAAIG,YAAY,IAAI,MAAM,gBAC7BgF,GAAA,CAAC9G,OAAO,EAAA;AAACiI,UAAAA,OAAO,EAAC,MAAM;AAACC,UAAAA,cAAc,EAAC,QAAQ;AAACC,UAAAA,UAAU,EAAC,QAAQ;UAAA1F,QAAA,eACjEqE,GAAA,CAACnF,IAAI,EAAA;AAAClI,YAAAA,IAAI,EAAEyD,QAAS;AAAClG,YAAAA,KAAK,EAAEiH,SAAAA;WAAY,CAAA;AAAC,SACnC,CAAC,GACR,IAAI,EACPY,IAAI,GACHyF,mBAAmB,GACjB7B,QAAQ,gBAERqE,GAAA,CAAC4B,QAAQ,EAAA;AACPC,UAAAA,OAAO,EAAC,WAAW;AACnBlL,UAAAA,UAAU,EAAEA,UAAW;AACvBF,UAAAA,QAAQ,EAAEA,QAAAA;AACV;AACA;AACA;AACA;AAAA;AACAqL,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,SAAS,EAAC,QAAQ;AAClB7R,UAAAA,KAAK,EAAEkC,SAAU;AAAAuJ,UAAAA,QAAA,EAEhB5D,IAAAA;AAAI,SACG,CACX,GACC,IAAI,EACP8C,IAAI,IAAIG,YAAY,IAAI,OAAO,gBAC9BgF,GAAA,CAAC9G,OAAO,EAAA;AAACiI,UAAAA,OAAO,EAAC,MAAM;AAACC,UAAAA,cAAc,EAAC,QAAQ;AAACC,UAAAA,UAAU,EAAC,QAAQ;UAAA1F,QAAA,eACjEqE,GAAA,CAACnF,IAAI,EAAA;AAAClI,YAAAA,IAAI,EAAEyD,QAAS;AAAClG,YAAAA,KAAK,EAAEiH,SAAAA;WAAY,CAAA;SAClC,CAAC,GACR,IAAI,CAAA;AAAA,OACK,CAAC,CAAA;KACK,CAAA;AAAC,GAAA,CACR,CAAC,CAAA;AAEvB,CAAC,CAAA;AAEK6K,IAAAA,UAAU,gBAAGC,wBAAwB,cAAClF,cAAK,CAACmF,UAAU,CAACzI,WAAW,CAAC,EAAE;AACzEL,EAAAA,WAAW,EAAE,YAAA;AACf,CAAC;;;;"}
|
|
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
|
};
|