@razorpay/blade 12.120.0 → 12.121.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/build/lib/native/components/Button/BaseButton/BaseButton.js +2 -2
  2. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  3. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  4. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  5. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +1 -1
  6. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
  7. package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js +2 -1
  8. package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js.map +1 -1
  9. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  10. package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js +1 -1
  11. package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
  12. package/build/lib/native/components/Spinner/Spinner/Spinner.js.map +1 -1
  13. package/build/lib/web/development/_virtual/flatten.js +1 -1
  14. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  15. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +23 -31
  16. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  17. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +8 -18
  18. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  19. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +1 -1
  20. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
  21. package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js +1 -0
  22. package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js.map +1 -1
  23. package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js +18 -5
  24. package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
  25. package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js +6 -3
  26. package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js.map +1 -1
  27. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  28. package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js +5 -0
  29. package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
  30. package/build/lib/web/development/components/Spinner/Spinner/Spinner.js.map +1 -1
  31. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  32. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  33. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  34. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  35. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  36. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  37. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +23 -31
  38. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  39. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +8 -18
  40. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  41. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +1 -1
  42. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
  43. package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js +1 -0
  44. package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js.map +1 -1
  45. package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js +18 -5
  46. package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
  47. package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js +6 -3
  48. package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js.map +1 -1
  49. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  50. package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js +5 -0
  51. package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
  52. package/build/lib/web/production/components/Spinner/Spinner/Spinner.js.map +1 -1
  53. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  54. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  55. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  56. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  57. package/build/types/components/index.d.ts +7 -12
  58. package/build/types/components/index.native.d.ts +7 -12
  59. package/package.json +1 -1
@@ -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/flatten3.js';
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/flatten4.js';
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/compat/object/cloneDeep.js';
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`, `black` and `transparent` are not feedback colors, so the token
56
- * factories are still called with `primary` and the value is looked up under its
57
- * own key instead of under `base`.
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 === 'black' || color === 'transparent';
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, black and transparent colors, we use 'primary' as the base color
99
- // since the actual token lookup uses the white/black/transparent specific paths
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 === 'black') {
133
- assertBlackIsPrimary(variant);
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 === 'black') {
155
- assertBlackIsPrimary(variant);
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
- focusRingColor: getIn(theme.colors, 'surface.border.primary.muted'),
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":"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"}
1
+ {"version":3,"file":"BaseButton.js","sources":["../../../../../../../src/components/Button/BaseButton/BaseButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { GestureResponderEvent } from 'react-native';\nimport StyledBaseButton from './StyledBaseButton';\nimport type { ButtonTypography, ButtonBoxShadow } from './buttonTokens';\nimport {\n textColor,\n backgroundGradient,\n boxShadow,\n spinnerColor,\n buttonIconOnlySizeToIconSizeMap,\n typography as buttonTypography,\n minHeight as buttonMinHeight,\n buttonSizeToIconSizeMap,\n buttonSizeToSpinnerSizeMap,\n buttonPadding,\n buttonIconOnlyHeightWidth,\n buttonBorderRadius,\n} from './buttonTokens';\nimport type { BaseButtonStyleProps, IconColor } from './types';\nimport AnimatedButtonContent from './AnimatedButtonContent';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\nimport getIn from '~utils/lodashButBetter/get';\nimport type { BaseLinkProps } from '~components/Link/BaseLink';\nimport type { Theme } from '~components/BladeProvider';\nimport type { IconComponent, IconSize } from '~components/Icons';\nimport type { Platform } from '~utils';\nimport { isReactNative } from '~utils';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { useButtonGroupContext } from '~components/ButtonGroup/ButtonGroupContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { useTheme } from '~components/BladeProvider';\nimport { announce } from '~components/LiveAnnouncer';\nimport type { BaseSpinnerProps } from '~components/Spinner/BaseSpinner';\nimport { BaseSpinner } from '~components/Spinner/BaseSpinner';\nimport type { BaseBoxProps } from '~components/Box/BaseBox';\nimport BaseBox from '~components/Box/BaseBox';\nimport type {\n BladeElementRef,\n DataAnalyticsAttribute,\n StringChildrenType,\n TestID,\n} from '~utils/types';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { usePrevious } from '~utils/usePrevious';\nimport { makeSize } from '~utils/makeSize';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeSpace } from '~utils/makeSpace';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport type { BladeCommonEvents } from '~components/types';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BaseButtonCommonProps = {\n href?: BaseLinkProps['href'];\n target?: BaseLinkProps['target'];\n rel?: BaseLinkProps['rel'];\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n id?: string;\n tabIndex?: BaseBoxProps['tabIndex'];\n iconPosition?: 'left' | 'right';\n isDisabled?: boolean;\n isFullWidth?: boolean;\n onKeyDown?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n }>;\n onClick?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.MouseEvent<HTMLButtonElement>) => void;\n }>;\n type?: 'button' | 'reset' | 'submit';\n isLoading?: boolean;\n accessibilityProps?: Partial<AccessibilityProps>;\n variant?: 'primary' | 'secondary' | 'tertiary';\n color?:\n | 'primary'\n | 'white'\n | 'positive'\n | 'negative'\n | 'notice'\n | 'information'\n | 'neutral'\n | 'transparent';\n /**\n * Overrides the size-derived border radius. Used by FloatingActionButton to\n * render a pill. `round` is excluded because a percentage radius distorts on\n * a non-square button.\n */\n _borderRadius?: Exclude<keyof Theme['border']['radius'], 'round'>;\n /**\n * Overrides the size-derived icon size. Used by FloatingActionButton, whose\n * icon is larger than a `size=\"large\"` Button's.\n */\n _iconSize?: IconSize;\n /**\n * Overrides the color of the loading spinner. Used by FloatingActionButton,\n * whose contrast requirements differ from `Button`'s.\n */\n _spinnerColor?: BaseSpinnerProps['color'];\n} & TestID &\n StyledPropsBlade &\n BladeCommonEvents;\n\n/*\nMandatory children prop when icon is not provided\n*/\ntype BaseButtonWithoutIconProps = BaseButtonCommonProps & {\n icon?: undefined;\n children: StringChildrenType;\n} & DataAnalyticsAttribute;\n\n/*\n Optional children prop when icon is provided\n*/\ntype BaseButtonWithIconProps = BaseButtonCommonProps & {\n icon: IconComponent;\n children?: StringChildrenType;\n} & DataAnalyticsAttribute;\n\n/*\n With or without icon prop. We need at least an icon or a children prop present.\n*/\nexport type BaseButtonProps = BaseButtonWithIconProps | BaseButtonWithoutIconProps;\n\ntype BaseButtonColorTokenModifiers = {\n variant: NonNullable<BaseButtonProps['variant']>;\n state: 'default' | 'hover' | 'focus' | 'disabled';\n color: BaseButtonProps['color'];\n};\n\n/**\n * `white` and `transparent` are not feedback colors, so the token factories are\n * still called with `primary` and the value is looked up under its own key\n * instead of under `base`.\n */\nconst isStaticOrTransparentColor = (\n color: BaseButtonProps['color'],\n): color is 'white' | 'transparent' => color === 'white' || color === 'transparent';\n\n/**\n * The filled `neutral` surface needs inverted content and a heavier inner shadow\n * than the shared feedback treatment, so its `primary` emphasis is looked up\n * under a dedicated key. The remaining emphases fall back to `base`.\n */\nconst isFilledNeutral = (\n color: BaseButtonProps['color'],\n variant: NonNullable<BaseButtonProps['variant']>,\n): boolean => color === 'neutral' && variant === 'primary';\n\nconst getSpinnerColor = ({\n variant,\n color,\n}: {\n variant: NonNullable<BaseButtonProps['variant']>;\n color: NonNullable<BaseButtonProps['color']>;\n}): BaseSpinnerProps['color'] => {\n if (color !== 'primary' && color !== 'transparent' && color in spinnerColor) {\n return spinnerColor[color as Exclude<keyof typeof spinnerColor, 'base'>][\n variant as 'primary' | 'secondary'\n ];\n }\n\n return spinnerColor.base[variant];\n};\n\nconst getRenderElement = (href?: string): 'a' | 'button' | undefined => {\n if (isReactNative()) {\n return undefined; // as property doesn't work with react native\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n};\n\nexport const getBackgroundColorToken = ({\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers) => {\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n\n // For white and transparent colors, we use 'primary' as the base color\n // since the actual token lookup uses the white/transparent specific paths\n const gradientColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;\n const tokens = backgroundGradient(gradientColor);\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.base.transparent[_state];\n }\n\n if (color && color !== 'primary') {\n if (variant === 'tertiary') {\n throw new Error(\n `Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"${color}\"`,\n );\n }\n }\n\n return tokens.base[variant][_state];\n};\n\nexport const getBoxShadowToken = ({\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers): ButtonBoxShadow => {\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n const tokenColor = isStaticOrTransparentColor(color) || !color ? 'primary' : color;\n const tokens = boxShadow(tokenColor);\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (isFilledNeutral(color, variant)) {\n return tokens.neutral.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.base.transparent[_state];\n }\n\n return tokens.base[variant][_state];\n};\n\nexport const getTextColorToken = ({\n property,\n variant,\n state,\n color,\n}: BaseButtonColorTokenModifiers & {\n property: 'icon' | 'text';\n}): DotNotationToken<Theme['colors']> => {\n const tokens = textColor(property);\n const _state = state === 'focus' || state === 'hover' ? 'highlighted' : state;\n\n if (color === 'white') {\n return tokens.white[variant][_state];\n }\n\n if (isFilledNeutral(color, variant)) {\n return tokens.neutral.primary[_state];\n }\n\n if (color === 'transparent') {\n if (variant !== 'tertiary') {\n throw new Error(\n `Transparent color can only be used with tertiary variant but received \"${variant}\"`,\n );\n }\n return tokens.transparent.tertiary[_state];\n }\n\n if (color && color !== 'primary') {\n if (variant === 'tertiary') {\n throw new Error(\n `Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"${color}\"`,\n );\n }\n return tokens.color(color)[variant][_state];\n }\n\n return tokens.base[variant][_state];\n};\n\nconst getProps = ({\n buttonTypographyTokens,\n childrenString,\n isDisabled,\n size,\n theme,\n variant,\n color,\n hasIcon,\n _borderRadius,\n _iconSize,\n}: {\n buttonTypographyTokens: ButtonTypography;\n childrenString?: string;\n isDisabled: boolean;\n hasIcon: boolean;\n theme: Theme;\n size: NonNullable<BaseButtonProps['size']>;\n variant: NonNullable<BaseButtonProps['variant']>;\n color: BaseButtonProps['color'];\n _borderRadius?: BaseButtonCommonProps['_borderRadius'];\n _iconSize?: BaseButtonCommonProps['_iconSize'];\n}): BaseButtonStyleProps => {\n if (\n variant === 'tertiary' &&\n color !== 'primary' &&\n color !== 'white' &&\n color !== 'transparent'\n ) {\n throwBladeError({\n moduleName: 'BaseButton',\n message: `Tertiary variant can only be used with color: \"primary\" or \"white\" or \"transparent\" but received \"${color}\"`,\n });\n }\n\n const isIconOnly = hasIcon && (!childrenString || childrenString?.trim().length === 0);\n\n // Resolve background value - either a gradient string or a token path\n const resolveBackgroundValue = (value: string): string => {\n if (value.startsWith('linear-gradient')) {\n return value;\n }\n return getIn(theme.colors, value as DotNotationToken<Theme['colors']>);\n };\n\n const getDefaultBackground = (): string => {\n return resolveBackgroundValue(getBackgroundColorToken({ variant, color, state: 'default' }));\n };\n\n const getBoxShadow = (\n state: 'default' | 'hover' | 'focus' | 'disabled',\n btnColor: BaseButtonProps['color'],\n ): string | undefined => {\n const shadowTokens = getBoxShadowToken({ variant, color: btnColor, state });\n\n if (shadowTokens.length === 0) {\n return undefined;\n }\n\n const shadows = shadowTokens.map((shadow) => {\n const resolvedColor = getIn(theme.colors, shadow.color);\n return `inset 0 ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${resolvedColor}`;\n });\n\n return shadows.join(', ');\n };\n\n const getNativeShadowColors = (\n btnColor: BaseButtonProps['color'],\n ): {\n shadowHighlightColor?: string;\n shadowHighlightHeight?: number;\n shadowBottomColor?: string;\n shadowBottomHeight?: number;\n shadowBorderColor?: string;\n /**\n * Border color from the highlighted/focus box-shadow tokens. Used on press\n * to match web `&:active { boxShadow: focusBoxShadow }` (e.g. secondary/\n * tertiary gray.default → gray.highlighted).\n */\n focusShadowBorderColor?: string;\n shadowRingWidth?: number;\n isShadowGradientVisible?: boolean;\n } => {\n const resolveShadowColors = (\n shadowTokens: ReturnType<typeof getBoxShadowToken>,\n ): {\n highlightColor?: string;\n bottomColor?: string;\n borderColor?: string;\n highlightHeight: number;\n bottomHeight: number;\n ringWidth: number;\n } => {\n let highlightColor: string | undefined,\n bottomColor: string | undefined,\n borderColor: string | undefined;\n let highlightHeight = 0;\n let bottomHeight = 0;\n let ringWidth = 0;\n\n for (const shadow of shadowTokens) {\n const resolved = getIn(theme.colors, shadow.color);\n if (shadow.y > 0 && !highlightColor) {\n highlightColor = resolved;\n highlightHeight = shadow.y;\n } else if (shadow.y < 0 && !bottomColor) {\n bottomColor = resolved;\n bottomHeight = Math.abs(shadow.y);\n } else if (shadow.spread > 0 && !borderColor) {\n borderColor = resolved;\n ringWidth = shadow.spread;\n }\n }\n\n return { highlightColor, bottomColor, borderColor, highlightHeight, bottomHeight, ringWidth };\n };\n\n const defaultColors = resolveShadowColors(\n getBoxShadowToken({ variant, color: btnColor, state: 'default' }),\n );\n if (!defaultColors.highlightColor && !defaultColors.bottomColor && !defaultColors.borderColor) {\n return {};\n }\n\n const focusColors = resolveShadowColors(\n getBoxShadowToken({ variant, color: btnColor, state: 'focus' }),\n );\n\n return {\n shadowHighlightColor: defaultColors.highlightColor,\n shadowHighlightHeight:\n defaultColors.highlightHeight !== 0 ? defaultColors.highlightHeight : undefined,\n shadowBottomColor: defaultColors.bottomColor,\n shadowBottomHeight: defaultColors.bottomHeight !== 0 ? defaultColors.bottomHeight : undefined,\n shadowBorderColor: defaultColors.borderColor,\n focusShadowBorderColor: focusColors.borderColor,\n shadowRingWidth: defaultColors.ringWidth !== 0 ? defaultColors.ringWidth : undefined,\n isShadowGradientVisible: variant === 'primary',\n };\n };\n\n const props: BaseButtonStyleProps = {\n iconSize:\n _iconSize ??\n (isIconOnly ? buttonIconOnlySizeToIconSizeMap[size] : buttonSizeToIconSizeMap[size]),\n spinnerSize: buttonSizeToSpinnerSizeMap[size],\n fontSize: buttonTypographyTokens.fonts.size[size],\n lineHeight: buttonTypographyTokens.lineHeights[size],\n minHeight: makeSize(buttonMinHeight[size]),\n height: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,\n width: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,\n iconColor: getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'default',\n }) as IconColor,\n textColor: getTextColorToken({\n property: 'text',\n variant,\n color,\n state: 'default',\n }) as BaseTextProps['color'],\n buttonPaddingTop: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].top]),\n buttonPaddingBottom: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].bottom]),\n buttonPaddingLeft: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].left]),\n buttonPaddingRight: isIconOnly\n ? makeSpace(0)\n : makeSpace(theme.spacing[buttonPadding[size].right]),\n text: childrenString?.trim(),\n defaultBackgroundColor: getDefaultBackground(),\n defaultBoxShadow: getBoxShadow('default', color),\n hoverBackgroundColor: resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'hover' }),\n ),\n hoverBoxShadow: getBoxShadow('hover', color),\n hoverIconColor: getIn(\n theme.colors,\n getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'hover',\n }),\n ),\n focusBackgroundColor: resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'focus' }),\n ),\n focusBoxShadow: getBoxShadow('focus', color),\n // The system focus ring is a faded primary blue, which the design replaces\n // with a faded neutral ring on the filled neutral surface.\n focusRingColor: getIn(\n theme.colors,\n isFilledNeutral(color, variant)\n ? 'interactive.border.neutral.faded'\n : 'surface.border.primary.muted',\n ),\n borderRadius: makeBorderSize(theme.border.radius[_borderRadius ?? buttonBorderRadius[size]]),\n motionDuration: 'duration.xquick',\n motionEasing: 'easing.standard',\n ...(isReactNative() && !isDisabled ? getNativeShadowColors(color) : {}),\n };\n\n if (isDisabled) {\n const disabledBackgroundColor = resolveBackgroundValue(\n getBackgroundColorToken({ variant, color, state: 'disabled' }),\n );\n props.iconColor = getTextColorToken({\n property: 'icon',\n variant,\n color,\n state: 'disabled',\n }) as IconColor;\n props.textColor = getTextColorToken({\n property: 'text',\n variant,\n color,\n state: 'disabled',\n }) as BaseTextProps['color'];\n props.defaultBackgroundColor = disabledBackgroundColor;\n props.defaultBoxShadow = getBoxShadow('disabled', color);\n props.hoverBackgroundColor = disabledBackgroundColor;\n props.hoverBoxShadow = getBoxShadow('disabled', color);\n props.focusBackgroundColor = disabledBackgroundColor;\n props.focusBoxShadow = getBoxShadow('disabled', color);\n }\n\n return props;\n};\n\nconst ButtonContent = styled(BaseBox)<{ isHidden: boolean }>(({ isHidden }) => ({\n opacity: isHidden ? 0 : 1,\n}));\n\nconst _BaseButton: React.ForwardRefRenderFunction<BladeElementRef, BaseButtonProps> = (\n {\n href,\n target,\n rel,\n tabIndex,\n id,\n variant = 'primary',\n color = 'primary',\n size = 'medium',\n icon: Icon,\n iconPosition = 'left',\n isDisabled = false,\n isFullWidth = false,\n isLoading = false,\n onClick,\n onBlur,\n onKeyDown,\n type = 'button',\n children,\n testID,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n accessibilityProps,\n onTouchEnd,\n onTouchStart,\n _borderRadius,\n _iconSize,\n _spinnerColor,\n ...rest\n },\n ref,\n) => {\n const { theme } = useTheme();\n const buttonGroupProps = useButtonGroupContext();\n const [isPressed, setIsPressed] = React.useState(false);\n const isLink = Boolean(href);\n const childrenString = getStringFromReactText(children);\n const isChildrenComponent = React.isValidElement(children);\n\n // Button cannot be disabled when its rendered as Link\n // button should be allowed to be disabled in any case...\n // either through button group or we should allow to disable an individual button\n const disabled = buttonGroupProps.isDisabled || isLoading || (isDisabled && !isLink);\n\n if (__DEV__) {\n if (!Icon && !childrenString?.trim()) {\n throwBladeError({\n message: 'At least one of icon or text is required to render a button.',\n moduleName: 'BaseButton',\n });\n }\n }\n\n const prevLoading = usePrevious(isLoading);\n\n React.useEffect(() => {\n if (isLoading) announce('Started loading');\n\n if (!isLoading && prevLoading) announce('Stopped loading');\n }, [isLoading, prevLoading]);\n\n // Keep ButtonGroup press index in sync so border-collapse / z-index can\n // reveal this button's highlighted right edge while pressed (RN only).\n // useLayoutEffect ensures the z-index update happens before paint, keeping\n // it in sync with Reanimated's UI-thread press state change.\n React.useLayoutEffect(() => {\n if (typeof buttonGroupProps.buttonIndex !== 'number') return;\n const { buttonIndex, setPressedButtonIndex } = buttonGroupProps;\n if (isPressed) {\n setPressedButtonIndex?.(buttonIndex);\n } else {\n // Only clear if this button still owns the pressed index — otherwise a\n // multi-touch release on A would wipe B's press state.\n setPressedButtonIndex?.((prev) => (prev === buttonIndex ? null : prev));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isPressed, buttonGroupProps.buttonIndex]);\n\n const {\n defaultBackgroundColor,\n defaultBoxShadow,\n minHeight,\n height,\n width,\n buttonPaddingTop,\n buttonPaddingBottom,\n buttonPaddingLeft,\n buttonPaddingRight,\n focusBoxShadow,\n focusBackgroundColor,\n focusRingColor,\n fontSize,\n hoverBoxShadow,\n hoverBackgroundColor,\n hoverIconColor,\n iconColor,\n iconSize,\n spinnerSize,\n lineHeight,\n text,\n textColor,\n borderRadius,\n motionDuration,\n motionEasing,\n shadowHighlightColor,\n shadowHighlightHeight,\n shadowBottomColor,\n shadowBottomHeight,\n shadowBorderColor,\n focusShadowBorderColor,\n shadowRingWidth,\n isShadowGradientVisible,\n } = getProps({\n buttonTypographyTokens: buttonTypography,\n childrenString,\n isDisabled: disabled,\n size: buttonGroupProps.size ?? size,\n variant: buttonGroupProps.variant ?? variant,\n theme,\n color: buttonGroupProps.color ?? color,\n hasIcon: Boolean(Icon),\n _borderRadius,\n _iconSize,\n });\n\n const renderElement = React.useMemo(() => getRenderElement(href), [href]);\n const defaultRole = isLink ? 'link' : 'button';\n\n // On web, ButtonGroup flattens the child buttons' border radius via CSS child\n // selectors and rounds only the outer edges using the group container's\n // `overflow: hidden` + `borderRadius`. React Native has no CSS cascade, so we\n // flatten each button's border radius to 0 here and let the group container do\n // the outer rounding — otherwise the inner (middle) buttons show rounded corners.\n // An explicit `isInsideButtonGroup` flag set by ButtonGroupContext signals we're\n // inside a group; this avoids relying on the presence of `variant` in the\n // default context.\n const isInsideRNButtonGroup = isReactNative() && Boolean(buttonGroupProps.isInsideButtonGroup);\n\n // buttonBorderRadiusValue flattens the base borderRadius to 0 for all buttons\n // in a group. buttonBorderRadii provides per-corner rounding for the outer\n // edges of the first/last buttons. Both are needed: the base value ensures the\n // Pressable itself is square, while borderRadii rounds only the outer corners\n // via per-corner style overrides (and feeds the SVG border overlay).\n const buttonBorderRadiusValue = isInsideRNButtonGroup ? makeBorderSize(0) : borderRadius;\n\n // The group container clips with `overflow: hidden` + `borderRadius`. Since the\n // buttons are square (radius 0), the native border overlay (drawn as a square\n // ring) gets clipped at the group's rounded outer corners. To match web, round\n // only the outer corners of the first/last buttons (both the background and the\n // border overlay) so the ring follows the rounded corner instead of being cut.\n const groupCornerRadius = isInsideRNButtonGroup\n ? theme.border.radius[buttonBorderRadius[buttonGroupProps.size ?? size]]\n : 0;\n const isFirstInGroup = Boolean(buttonGroupProps.isFirstInButtonGroup);\n const isLastInGroup = Boolean(buttonGroupProps.isLastInButtonGroup);\n const buttonBorderRadii = isInsideRNButtonGroup\n ? {\n topLeft: isFirstInGroup ? groupCornerRadius : 0,\n bottomLeft: isFirstInGroup ? groupCornerRadius : 0,\n topRight: isLastInGroup ? groupCornerRadius : 0,\n bottomRight: isLastInGroup ? groupCornerRadius : 0,\n }\n : undefined;\n\n // ButtonGroup computes isGroupBorderCollapsed based on its variant and passes it\n // through context, so BaseButton doesn't need to inspect the variant string.\n const isGroupBorderCollapsed =\n isInsideRNButtonGroup && !isFirstInGroup && Boolean(buttonGroupProps.isGroupBorderCollapsed);\n\n // Match web ButtonGroup: only the first child keeps the radial glow\n // (`backgroundImage: none` on `:not(:first-child)`). On native the white\n // top/left \"glassy\" edge also comes from the inset highlight stroke mapped\n // from box-shadow — suppress that on non-first buttons too so junctions\n // don't show a white left edge on Share/Download.\n const isNonFirstInButtonGroup = isInsideRNButtonGroup && !isFirstInGroup;\n const showShadowGradient = Boolean(isShadowGradientVisible) && !isNonFirstInButtonGroup;\n const effectiveShadowHighlightColor = isNonFirstInButtonGroup ? undefined : shadowHighlightColor;\n\n // Web ButtonGroup sets `flex: 1` on children when isFullWidth. On native,\n // isFullWidth alone applies `width: 100%`, which overflows in a row — use\n // flex instead so siblings share space equally.\n const isInsideFullWidthButtonGroup =\n isInsideRNButtonGroup && Boolean(buttonGroupProps.isFullWidth ?? isFullWidth);\n\n const handlePointerPressedIn = React.useCallback(() => {\n if (disabled) return;\n setIsPressed(true);\n }, [disabled]);\n\n const handlePointerPressedOut = React.useCallback(() => {\n if (disabled) return;\n setIsPressed(false);\n }, [disabled]);\n\n const handleKeyboardPressedIn = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n setIsPressed(true);\n }\n },\n [disabled],\n );\n\n const handleKeyboardPressedOut = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n setIsPressed(false);\n }\n },\n [disabled],\n );\n\n return (\n <StyledBaseButton\n ref={ref as any}\n id={id}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: On React Native it will always be undefined but TS doesn't understand that\n as={renderElement}\n href={href}\n target={target}\n rel={rel}\n accessibilityProps={{\n ...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? defaultRole,\n }),\n }}\n variant={buttonGroupProps.variant ?? variant}\n color={buttonGroupProps.color ?? color}\n size={buttonGroupProps.size ?? size}\n isLoading={isLoading}\n disabled={disabled}\n minHeight={minHeight}\n buttonPaddingTop={buttonPaddingTop}\n buttonPaddingBottom={buttonPaddingBottom}\n buttonPaddingLeft={buttonPaddingLeft}\n buttonPaddingRight={buttonPaddingRight}\n defaultBackgroundColor={defaultBackgroundColor}\n defaultBoxShadow={defaultBoxShadow}\n focusBoxShadow={focusBoxShadow}\n focusBackgroundColor={focusBackgroundColor}\n focusRingColor={focusRingColor}\n hoverBoxShadow={hoverBoxShadow}\n hoverBackgroundColor={hoverBackgroundColor}\n isFullWidth={buttonGroupProps.isFullWidth ?? isFullWidth}\n onClick={onClick}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n tabIndex={tabIndex}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n // Setting type for web fails it on native typecheck and vice versa\n onKeyDown={(event: any) => {\n handleKeyboardPressedIn(event);\n onKeyDown?.(event);\n }}\n onTouchStart={(event: React.TouchEvent) => {\n handlePointerPressedIn();\n onTouchStart?.(event);\n }}\n onTouchEnd={(event: React.TouchEvent) => {\n handlePointerPressedOut();\n onTouchEnd?.(event);\n }}\n type={type}\n borderRadius={buttonBorderRadiusValue}\n {...(buttonBorderRadii ? { borderRadii: buttonBorderRadii } : {})}\n {...(isGroupBorderCollapsed ? { isGroupBorderCollapsed } : {})}\n {...(isNonFirstInButtonGroup ? { isInsetShadowSidesFlattened: true } : {})}\n {...(isInsideFullWidthButtonGroup ? { isInsideFullWidthButtonGroup: true } : {})}\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n height={height}\n width={width}\n isPressed={isPressed}\n hoverIconColor={\n isDisabled\n ? getIn(theme.colors, iconColor as DotNotationToken<Theme['colors']>)\n : hoverIconColor\n }\n onMouseDown={(event: React.MouseEvent) => {\n handlePointerPressedIn();\n onMouseDown?.(event);\n }}\n onMouseUp={handlePointerPressedOut}\n {...(!isReactNative()\n ? { onMouseOut: handlePointerPressedOut, onKeyUp: handleKeyboardPressedOut }\n : {})}\n shadowHighlightColor={effectiveShadowHighlightColor}\n shadowHighlightHeight={isNonFirstInButtonGroup ? undefined : shadowHighlightHeight}\n shadowBottomColor={shadowBottomColor}\n shadowBottomHeight={shadowBottomHeight}\n shadowBorderColor={shadowBorderColor}\n focusShadowBorderColor={focusShadowBorderColor}\n shadowRingWidth={shadowRingWidth}\n isShadowGradientVisible={showShadowGradient}\n {...metaAttribute({ name: MetaConstants.Button, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <AnimatedButtonContent\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n isPressed={isPressed}\n >\n {isLoading ? (\n <BaseBox\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n position=\"absolute\"\n top=\"0px\"\n left=\"0px\"\n bottom=\"0px\"\n right=\"0px\"\n zIndex={1}\n >\n <BaseSpinner\n accessibilityLabel=\"Loading\"\n size={spinnerSize}\n color={_spinnerColor ?? getSpinnerColor({ variant, color })}\n />\n </BaseBox>\n ) : null}\n <ButtonContent\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flex={1}\n isHidden={isLoading}\n zIndex={1}\n >\n {Icon && iconPosition == 'left' ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={iconSize} color={iconColor} />\n </BaseBox>\n ) : null}\n {text ? (\n isChildrenComponent ? (\n children\n ) : (\n <BaseText\n marginX=\"spacing.2\"\n lineHeight={lineHeight}\n fontSize={fontSize}\n // figma and web have different font-smoothing properties\n // which causes web version of button text to look much bolder\n // than figma version. To fix this we are changing font-weight from 600 to 500\n // https://forum.figma.com/t/why-does-a-font-weight-in-figma-seem-lighter-than-the-same-weight-in-the-browser/2207\n fontWeight=\"medium\"\n textAlign=\"center\"\n color={textColor}\n >\n {text}\n </BaseText>\n )\n ) : null}\n {Icon && iconPosition == 'right' ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={iconSize} color={iconColor} />\n </BaseBox>\n ) : null}\n </ButtonContent>\n </AnimatedButtonContent>\n </StyledBaseButton>\n );\n};\n\nconst BaseButton = assignWithoutSideEffects(React.forwardRef(_BaseButton), {\n displayName: 'BaseButton',\n});\n\nexport default BaseButton;\n"],"names":["isStaticOrTransparentColor","color","isFilledNeutral","variant","getSpinnerColor","_ref","spinnerColor","base","getRenderElement","href","isReactNative","undefined","getBackgroundColorToken","_ref2","state","_state","gradientColor","tokens","backgroundGradient","white","Error","concat","transparent","getBoxShadowToken","_ref3","tokenColor","boxShadow","neutral","primary","getTextColorToken","_ref4","property","textColor","tertiary","getProps","_ref5","buttonTypographyTokens","childrenString","isDisabled","size","theme","hasIcon","_borderRadius","_iconSize","throwBladeError","moduleName","message","isIconOnly","trim","length","resolveBackgroundValue","value","startsWith","getIn","colors","getDefaultBackground","getBoxShadow","btnColor","shadowTokens","shadows","map","shadow","resolvedColor","y","blur","spread","join","getNativeShadowColors","resolveShadowColors","highlightColor","bottomColor","borderColor","highlightHeight","bottomHeight","ringWidth","_iterator","_createForOfIteratorHelper","_step","s","n","done","resolved","Math","abs","err","e","f","defaultColors","focusColors","shadowHighlightColor","shadowHighlightHeight","shadowBottomColor","shadowBottomHeight","shadowBorderColor","focusShadowBorderColor","shadowRingWidth","isShadowGradientVisible","props","_objectSpread","iconSize","buttonIconOnlySizeToIconSizeMap","buttonSizeToIconSizeMap","spinnerSize","buttonSizeToSpinnerSizeMap","fontSize","fonts","lineHeight","lineHeights","minHeight","makeSize","buttonMinHeight","height","buttonIconOnlyHeightWidth","width","iconColor","buttonPaddingTop","makeSpace","spacing","buttonPadding","top","buttonPaddingBottom","bottom","buttonPaddingLeft","left","buttonPaddingRight","right","text","defaultBackgroundColor","defaultBoxShadow","hoverBackgroundColor","hoverBoxShadow","hoverIconColor","focusBackgroundColor","focusBoxShadow","focusRingColor","borderRadius","makeBorderSize","border","radius","buttonBorderRadius","motionDuration","motionEasing","disabledBackgroundColor","ButtonContent","styled","BaseBox","withConfig","displayName","componentId","_ref6","isHidden","opacity","_BaseButton","_ref7","ref","_buttonGroupProps$siz","_buttonGroupProps$var","_buttonGroupProps$col","_buttonGroupProps$siz2","_buttonGroupProps$isF","_accessibilityProps$r","_buttonGroupProps$var2","_buttonGroupProps$col2","_buttonGroupProps$siz3","_buttonGroupProps$isF2","target","rel","tabIndex","id","_ref7$variant","_ref7$color","_ref7$size","Icon","icon","_ref7$iconPosition","iconPosition","_ref7$isDisabled","_ref7$isFullWidth","isFullWidth","_ref7$isLoading","isLoading","onClick","onBlur","onKeyDown","_ref7$type","type","children","testID","onFocus","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","accessibilityProps","onTouchEnd","onTouchStart","_spinnerColor","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","buttonGroupProps","useButtonGroupContext","_React$useState","React","useState","_React$useState2","_slicedToArray","isPressed","setIsPressed","isLink","Boolean","getStringFromReactText","isChildrenComponent","isValidElement","disabled","prevLoading","usePrevious","useEffect","announce","useLayoutEffect","buttonIndex","setPressedButtonIndex","prev","_getProps","buttonTypography","renderElement","useMemo","defaultRole","isInsideRNButtonGroup","isInsideButtonGroup","buttonBorderRadiusValue","groupCornerRadius","isFirstInGroup","isFirstInButtonGroup","isLastInGroup","isLastInButtonGroup","buttonBorderRadii","topLeft","bottomLeft","topRight","bottomRight","isGroupBorderCollapsed","isNonFirstInButtonGroup","showShadowGradient","effectiveShadowHighlightColor","isInsideFullWidthButtonGroup","handlePointerPressedIn","useCallback","handlePointerPressedOut","handleKeyboardPressedIn","key","handleKeyboardPressedOut","_jsx","StyledBaseButton","as","makeAccessible","role","event","borderRadii","isInsetShadowSidesFlattened","onMouseUp","onMouseOut","onKeyUp","metaAttribute","name","MetaConstants","Button","getStyledProps","makeAnalyticsAttribute","_jsxs","AnimatedButtonContent","display","justifyContent","alignItems","position","zIndex","BaseSpinner","accessibilityLabel","flexDirection","flex","BaseText","marginX","fontWeight","textAlign","BaseButton","assignWithoutSideEffects","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0IA;AACA;AACA;AACA;AACA;AACA,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAC9BC,KAA+B,EAAA;AAAA,EAAA,OACMA,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,aAAa,CAAA;AAAA,CAAA,CAAA;;AAEnF;AACA;AACA;AACA;AACA;AACA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CACnBD,KAA+B,EAC/BE,OAAgD,EAAA;AAAA,EAAA,OACpCF,KAAK,KAAK,SAAS,IAAIE,OAAO,KAAK,SAAS,CAAA;AAAA,CAAA,CAAA;AAE1D,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAMY;AAAA,EAAA,IAL/BF,OAAO,GAAAE,IAAA,CAAPF,OAAO;IACPF,KAAK,GAAAI,IAAA,CAALJ,KAAK,CAAA;EAKL,IAAIA,KAAK,KAAK,SAAS,IAAIA,KAAK,KAAK,aAAa,IAAIA,KAAK,IAAIK,YAAY,EAAE;AAC3E,IAAA,OAAOA,YAAY,CAACL,KAAK,CAA+C,CACtEE,OAAO,CACR,CAAA;AACH,GAAA;AAEA,EAAA,OAAOG,YAAY,CAACC,IAAI,CAACJ,OAAO,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,IAAMK,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,IAHnCV,OAAO,GAAAU,KAAA,CAAPV,OAAO;IACPW,KAAK,GAAAD,KAAA,CAALC,KAAK;IACLb,KAAK,GAAAY,KAAA,CAALZ,KAAK,CAAA;AAEL,EAAA,IAAMc,MAAM,GAAGD,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,GAAG,aAAa,GAAGA,KAAK,CAAA;;AAE7E;AACA;AACA,EAAA,IAAME,aAAa,GAAGhB,0BAA0B,CAACC,KAAK,CAAC,IAAI,CAACA,KAAK,GAAG,SAAS,GAAGA,KAAK,CAAA;AACrF,EAAA,IAAMgB,MAAM,GAAGC,kBAAkB,CAACF,aAAa,CAAC,CAAA;EAEhD,IAAIf,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOgB,MAAM,CAACE,KAAK,CAAChB,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AACtC,GAAA;EAEA,IAAId,KAAK,KAAK,aAAa,EAAE;IAC3B,IAAIE,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIiB,KAAK,CAAA,0EAAA,CAAAC,MAAA,CAC6DlB,OAAO,OACnF,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAOc,MAAM,CAACV,IAAI,CAACe,WAAW,CAACP,MAAM,CAAC,CAAA;AACxC,GAAA;AAEA,EAAA,IAAId,KAAK,IAAIA,KAAK,KAAK,SAAS,EAAE;IAChC,IAAIE,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIiB,KAAK,CAAA,wFAAA,CAAAC,MAAA,CACuEpB,KAAK,OAC3F,CAAC,CAAA;AACH,KAAA;AACF,GAAA;EAEA,OAAOgB,MAAM,CAACV,IAAI,CAACJ,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AACrC,EAAC;IAEYQ,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAIwB;AAAA,EAAA,IAHpDrB,OAAO,GAAAqB,KAAA,CAAPrB,OAAO;IACPW,KAAK,GAAAU,KAAA,CAALV,KAAK;IACLb,KAAK,GAAAuB,KAAA,CAALvB,KAAK,CAAA;AAEL,EAAA,IAAMc,MAAM,GAAGD,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,GAAG,aAAa,GAAGA,KAAK,CAAA;AAC7E,EAAA,IAAMW,UAAU,GAAGzB,0BAA0B,CAACC,KAAK,CAAC,IAAI,CAACA,KAAK,GAAG,SAAS,GAAGA,KAAK,CAAA;AAClF,EAAA,IAAMgB,MAAM,GAAGS,SAAS,CAACD,UAAU,CAAC,CAAA;EAEpC,IAAIxB,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOgB,MAAM,CAACE,KAAK,CAAChB,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AACtC,GAAA;AAEA,EAAA,IAAIb,eAAe,CAACD,KAAK,EAAEE,OAAO,CAAC,EAAE;AACnC,IAAA,OAAOc,MAAM,CAACU,OAAO,CAACC,OAAO,CAACb,MAAM,CAAC,CAAA;AACvC,GAAA;EAEA,IAAId,KAAK,KAAK,aAAa,EAAE;IAC3B,IAAIE,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIiB,KAAK,CAAA,0EAAA,CAAAC,MAAA,CAC6DlB,OAAO,OACnF,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAOc,MAAM,CAACV,IAAI,CAACe,WAAW,CAACP,MAAM,CAAC,CAAA;AACxC,GAAA;EAEA,OAAOE,MAAM,CAACV,IAAI,CAACJ,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AACrC,EAAC;IAEYc,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAOW;AAAA,EAAA,IANvCC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IACR5B,OAAO,GAAA2B,KAAA,CAAP3B,OAAO;IACPW,KAAK,GAAAgB,KAAA,CAALhB,KAAK;IACLb,KAAK,GAAA6B,KAAA,CAAL7B,KAAK,CAAA;AAIL,EAAA,IAAMgB,MAAM,GAAGe,SAAS,CAACD,QAAQ,CAAC,CAAA;AAClC,EAAA,IAAMhB,MAAM,GAAGD,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,OAAO,GAAG,aAAa,GAAGA,KAAK,CAAA;EAE7E,IAAIb,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOgB,MAAM,CAACE,KAAK,CAAChB,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AACtC,GAAA;AAEA,EAAA,IAAIb,eAAe,CAACD,KAAK,EAAEE,OAAO,CAAC,EAAE;AACnC,IAAA,OAAOc,MAAM,CAACU,OAAO,CAACC,OAAO,CAACb,MAAM,CAAC,CAAA;AACvC,GAAA;EAEA,IAAId,KAAK,KAAK,aAAa,EAAE;IAC3B,IAAIE,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIiB,KAAK,CAAA,0EAAA,CAAAC,MAAA,CAC6DlB,OAAO,OACnF,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAOc,MAAM,CAACK,WAAW,CAACW,QAAQ,CAAClB,MAAM,CAAC,CAAA;AAC5C,GAAA;AAEA,EAAA,IAAId,KAAK,IAAIA,KAAK,KAAK,SAAS,EAAE;IAChC,IAAIE,OAAO,KAAK,UAAU,EAAE;AAC1B,MAAA,MAAM,IAAIiB,KAAK,CAAA,wFAAA,CAAAC,MAAA,CACuEpB,KAAK,OAC3F,CAAC,CAAA;AACH,KAAA;IACA,OAAOgB,MAAM,CAAChB,KAAK,CAACA,KAAK,CAAC,CAACE,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AAC7C,GAAA;EAEA,OAAOE,MAAM,CAACV,IAAI,CAACJ,OAAO,CAAC,CAACY,MAAM,CAAC,CAAA;AACrC,EAAC;AAED,IAAMmB,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;IACLrC,OAAO,GAAAgC,KAAA,CAAPhC,OAAO;IACPF,KAAK,GAAAkC,KAAA,CAALlC,KAAK;IACLwC,OAAO,GAAAN,KAAA,CAAPM,OAAO;IACPC,aAAa,GAAAP,KAAA,CAAbO,aAAa;IACbC,SAAS,GAAAR,KAAA,CAATQ,SAAS,CAAA;AAaT,EAAA,IACExC,OAAO,KAAK,UAAU,IACtBF,KAAK,KAAK,SAAS,IACnBA,KAAK,KAAK,OAAO,IACjBA,KAAK,KAAK,aAAa,EACvB;AACA2C,IAAAA,eAAe,CAAC;AACdC,MAAAA,UAAU,EAAE,YAAY;MACxBC,OAAO,EAAA,2GAAA,CAAAzB,MAAA,CAAuGpB,KAAK,EAAA,IAAA,CAAA;AACrH,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,IAAM8C,UAAU,GAAGN,OAAO,KAAK,CAACJ,cAAc,IAAI,CAAAA,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAc,CAAEW,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,CAACb,KAAK,CAACc,MAAM,EAAEH,KAA0C,CAAC,CAAA;GACvE,CAAA;AAED,EAAA,IAAMI,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAiB;IACzC,OAAOL,sBAAsB,CAACtC,uBAAuB,CAAC;AAAET,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAALA,KAAK;AAAEa,MAAAA,KAAK,EAAE,SAAA;AAAU,KAAC,CAAC,CAAC,CAAA;GAC7F,CAAA;EAED,IAAM0C,YAAY,GAAG,SAAfA,YAAYA,CAChB1C,KAAiD,EACjD2C,QAAkC,EACX;IACvB,IAAMC,YAAY,GAAGnC,iBAAiB,CAAC;AAAEpB,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAAEwD,QAAQ;AAAE3C,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAE3E,IAAA,IAAI4C,YAAY,CAACT,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAA,OAAOtC,SAAS,CAAA;AAClB,KAAA;IAEA,IAAMgD,OAAO,GAAGD,YAAY,CAACE,GAAG,CAAC,UAACC,MAAM,EAAK;MAC3C,IAAMC,aAAa,GAAGT,KAAK,CAACb,KAAK,CAACc,MAAM,EAAEO,MAAM,CAAC5D,KAAK,CAAC,CAAA;MACvD,OAAAoB,UAAAA,CAAAA,MAAA,CAAkBwC,MAAM,CAACE,CAAC,EAAA1C,KAAAA,CAAAA,CAAAA,MAAA,CAAMwC,MAAM,CAACG,IAAI,EAAA3C,KAAAA,CAAAA,CAAAA,MAAA,CAAMwC,MAAM,CAACI,MAAM,EAAA5C,KAAAA,CAAAA,CAAAA,MAAA,CAAMyC,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,CAACb,KAAK,CAACc,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,CACvC7C,iBAAiB,CAAC;AAAEpB,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAAEwD,QAAQ;AAAE3C,MAAAA,KAAK,EAAE,SAAA;AAAU,KAAC,CAClE,CAAC,CAAA;AACD,IAAA,IAAI,CAACyE,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,CACrC7C,iBAAiB,CAAC;AAAEpB,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAAEwD,QAAQ;AAAE3C,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAC,CAChE,CAAC,CAAA;IAED,OAAO;MACL2E,oBAAoB,EAAEF,aAAa,CAAClB,cAAc;MAClDqB,qBAAqB,EACnBH,aAAa,CAACf,eAAe,KAAK,CAAC,GAAGe,aAAa,CAACf,eAAe,GAAG7D,SAAS;MACjFgF,iBAAiB,EAAEJ,aAAa,CAACjB,WAAW;MAC5CsB,kBAAkB,EAAEL,aAAa,CAACd,YAAY,KAAK,CAAC,GAAGc,aAAa,CAACd,YAAY,GAAG9D,SAAS;MAC7FkF,iBAAiB,EAAEN,aAAa,CAAChB,WAAW;MAC5CuB,sBAAsB,EAAEN,WAAW,CAACjB,WAAW;MAC/CwB,eAAe,EAAER,aAAa,CAACb,SAAS,KAAK,CAAC,GAAGa,aAAa,CAACb,SAAS,GAAG/D,SAAS;MACpFqF,uBAAuB,EAAE7F,OAAO,KAAK,SAAA;KACtC,CAAA;GACF,CAAA;EAED,IAAM8F,KAA2B,GAAAC,aAAA,CAAA;AAC/BC,IAAAA,QAAQ,EACNxD,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GACRI,UAAU,GAAGqD,+BAA+B,CAAC7D,IAAI,CAAC,GAAG8D,uBAAuB,CAAC9D,IAAI,CAAE;AACtF+D,IAAAA,WAAW,EAAEC,0BAA0B,CAAChE,IAAI,CAAC;IAC7CiE,QAAQ,EAAEpE,sBAAsB,CAACqE,KAAK,CAAClE,IAAI,CAACA,IAAI,CAAC;AACjDmE,IAAAA,UAAU,EAAEtE,sBAAsB,CAACuE,WAAW,CAACpE,IAAI,CAAC;AACpDqE,IAAAA,SAAS,EAAEC,QAAQ,CAACC,SAAe,CAACvE,IAAI,CAAC,CAAC;IAC1CwE,MAAM,EAAEhE,UAAU,GAAGiE,yBAAyB,CAACzE,IAAI,CAAC,GAAG5B,SAAS;IAChEsG,KAAK,EAAElE,UAAU,GAAGiE,yBAAyB,CAACzE,IAAI,CAAC,GAAG5B,SAAS;IAC/DuG,SAAS,EAAErF,iBAAiB,CAAC;AAC3BE,MAAAA,QAAQ,EAAE,MAAM;AAChB5B,MAAAA,OAAO,EAAPA,OAAO;AACPF,MAAAA,KAAK,EAALA,KAAK;AACLa,MAAAA,KAAK,EAAE,SAAA;AACT,KAAC,CAAc;IACfkB,SAAS,EAAEH,iBAAiB,CAAC;AAC3BE,MAAAA,QAAQ,EAAE,MAAM;AAChB5B,MAAAA,OAAO,EAAPA,OAAO;AACPF,MAAAA,KAAK,EAALA,KAAK;AACLa,MAAAA,KAAK,EAAE,SAAA;AACT,KAAC,CAA2B;IAC5BqG,gBAAgB,EAAEpE,UAAU,GAAGqE,SAAS,CAAC,CAAC,CAAC,GAAGA,SAAS,CAAC5E,KAAK,CAAC6E,OAAO,CAACC,aAAa,CAAC/E,IAAI,CAAC,CAACgF,GAAG,CAAC,CAAC;IAC/FC,mBAAmB,EAAEzE,UAAU,GAC3BqE,SAAS,CAAC,CAAC,CAAC,GACZA,SAAS,CAAC5E,KAAK,CAAC6E,OAAO,CAACC,aAAa,CAAC/E,IAAI,CAAC,CAACkF,MAAM,CAAC,CAAC;IACxDC,iBAAiB,EAAE3E,UAAU,GACzBqE,SAAS,CAAC,CAAC,CAAC,GACZA,SAAS,CAAC5E,KAAK,CAAC6E,OAAO,CAACC,aAAa,CAAC/E,IAAI,CAAC,CAACoF,IAAI,CAAC,CAAC;IACtDC,kBAAkB,EAAE7E,UAAU,GAC1BqE,SAAS,CAAC,CAAC,CAAC,GACZA,SAAS,CAAC5E,KAAK,CAAC6E,OAAO,CAACC,aAAa,CAAC/E,IAAI,CAAC,CAACsF,KAAK,CAAC,CAAC;IACvDC,IAAI,EAAEzF,cAAc,KAAdA,IAAAA,IAAAA,cAAc,uBAAdA,cAAc,CAAEW,IAAI,EAAE;IAC5B+E,sBAAsB,EAAExE,oBAAoB,EAAE;AAC9CyE,IAAAA,gBAAgB,EAAExE,YAAY,CAAC,SAAS,EAAEvD,KAAK,CAAC;AAChDgI,IAAAA,oBAAoB,EAAE/E,sBAAsB,CAC1CtC,uBAAuB,CAAC;AAAET,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAALA,KAAK;AAAEa,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAC,CAC5D,CAAC;AACDoH,IAAAA,cAAc,EAAE1E,YAAY,CAAC,OAAO,EAAEvD,KAAK,CAAC;IAC5CkI,cAAc,EAAE9E,KAAK,CACnBb,KAAK,CAACc,MAAM,EACZzB,iBAAiB,CAAC;AAChBE,MAAAA,QAAQ,EAAE,MAAM;AAChB5B,MAAAA,OAAO,EAAPA,OAAO;AACPF,MAAAA,KAAK,EAALA,KAAK;AACLa,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CACH,CAAC;AACDsH,IAAAA,oBAAoB,EAAElF,sBAAsB,CAC1CtC,uBAAuB,CAAC;AAAET,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAALA,KAAK;AAAEa,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAC,CAC5D,CAAC;AACDuH,IAAAA,cAAc,EAAE7E,YAAY,CAAC,OAAO,EAAEvD,KAAK,CAAC;AAC5C;AACA;AACAqI,IAAAA,cAAc,EAAEjF,KAAK,CACnBb,KAAK,CAACc,MAAM,EACZpD,eAAe,CAACD,KAAK,EAAEE,OAAO,CAAC,GAC3B,kCAAkC,GAClC,8BACN,CAAC;IACDoI,YAAY,EAAEC,cAAc,CAAChG,KAAK,CAACiG,MAAM,CAACC,MAAM,CAAChG,aAAa,aAAbA,aAAa,KAAA,KAAA,CAAA,GAAbA,aAAa,GAAIiG,kBAAkB,CAACpG,IAAI,CAAC,CAAC,CAAC;AAC5FqG,IAAAA,cAAc,EAAE,iBAAiB;AACjCC,IAAAA,YAAY,EAAE,iBAAA;AAAiB,GAAA,EAC3BnI,aAAa,EAAE,IAAI,CAAC4B,UAAU,GAAG6B,qBAAqB,CAAClE,KAAK,CAAC,GAAG,EAAE,CACvE,CAAA;AAED,EAAA,IAAIqC,UAAU,EAAE;AACd,IAAA,IAAMwG,uBAAuB,GAAG5F,sBAAsB,CACpDtC,uBAAuB,CAAC;AAAET,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,KAAK,EAALA,KAAK;AAAEa,MAAAA,KAAK,EAAE,UAAA;AAAW,KAAC,CAC/D,CAAC,CAAA;AACDmF,IAAAA,KAAK,CAACiB,SAAS,GAAGrF,iBAAiB,CAAC;AAClCE,MAAAA,QAAQ,EAAE,MAAM;AAChB5B,MAAAA,OAAO,EAAPA,OAAO;AACPF,MAAAA,KAAK,EAALA,KAAK;AACLa,MAAAA,KAAK,EAAE,UAAA;AACT,KAAC,CAAc,CAAA;AACfmF,IAAAA,KAAK,CAACjE,SAAS,GAAGH,iBAAiB,CAAC;AAClCE,MAAAA,QAAQ,EAAE,MAAM;AAChB5B,MAAAA,OAAO,EAAPA,OAAO;AACPF,MAAAA,KAAK,EAALA,KAAK;AACLa,MAAAA,KAAK,EAAE,UAAA;AACT,KAAC,CAA2B,CAAA;IAC5BmF,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,IAlCD3J,IAAI,GAAAgJ,KAAA,CAAJhJ,IAAI;IACJ4J,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,CACFtJ,OAAO;AAAPA,IAAAA,OAAO,GAAAsK,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,CACjBlH,IAAI;AAAJA,IAAAA,IAAI,GAAAoI,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,CACrBnH,UAAU;AAAVA,IAAAA,UAAU,GAAA0I,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;IACZ1J,aAAa,GAAA+G,KAAA,CAAb/G,aAAa;IACbC,SAAS,GAAA8G,KAAA,CAAT9G,SAAS;IACT0J,aAAa,GAAA5C,KAAA,CAAb4C,aAAa;AACVC,IAAAA,IAAI,GAAAC,wBAAA,CAAA9C,KAAA,EAAA+C,SAAA,CAAA,CAAA;AAIT,EAAA,IAAAC,SAAA,GAAkBC,QAAQ,EAAE;IAApBlK,KAAK,GAAAiK,SAAA,CAALjK,KAAK,CAAA;AACb,EAAA,IAAMmK,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,CAAC5M,IAAI,CAAC,CAAA;AAC5B,EAAA,IAAM4B,cAAc,GAAGiL,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,CAACrK,UAAU,IAAI8I,SAAS,IAAK9I,UAAU,IAAI,CAAC8K,MAAO,CAAA;AAEpF,EAAA,IAAI,KAAO,EAAE;AACX,IAAA,IAAI,CAACxC,IAAI,IAAI,EAACvI,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAA,KAAA,CAAA,IAAdA,cAAc,CAAEW,IAAI,EAAE,CAAE,EAAA;AACpCJ,MAAAA,eAAe,CAAC;AACdE,QAAAA,OAAO,EAAE,8DAA8D;AACvED,QAAAA,UAAU,EAAE,YAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAM6K,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,GAkCIhM,QAAQ,CAAC;AACXE,MAAAA,sBAAsB,EAAE+L,UAAgB;AACxC9L,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,UAAU,EAAEmL,QAAQ;MACpBlL,IAAI,EAAA,CAAAoH,qBAAA,GAAEgD,gBAAgB,CAACpK,IAAI,MAAA,IAAA,IAAAoH,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIpH,IAAI;MACnCpC,OAAO,EAAA,CAAAyJ,qBAAA,GAAE+C,gBAAgB,CAACxM,OAAO,MAAA,IAAA,IAAAyJ,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIzJ,OAAO;AAC5CqC,MAAAA,KAAK,EAALA,KAAK;MACLvC,KAAK,EAAA,CAAA4J,qBAAA,GAAE8C,gBAAgB,CAAC1M,KAAK,MAAA,IAAA,IAAA4J,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI5J,KAAK;AACtCwC,MAAAA,OAAO,EAAE4K,OAAO,CAACzC,IAAI,CAAC;AACtBlI,MAAAA,aAAa,EAAbA,aAAa;AACbC,MAAAA,SAAS,EAATA,SAAAA;AACF,KAAC,CAAC;IA5CAoF,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;IACJ9F,SAAS,GAAAkM,SAAA,CAATlM,SAAS;IACTuG,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,OAAM7N,gBAAgB,CAACC,IAAI,CAAC,CAAA;GAAE,EAAA,CAACA,IAAI,CAAC,CAAC,CAAA;AACzE,EAAA,IAAM6N,WAAW,GAAGlB,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAMmB,qBAAqB,GAAG7N,aAAa,EAAE,IAAI2M,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,GAC3C/L,KAAK,CAACiG,MAAM,CAACC,MAAM,CAACC,kBAAkB,CAAAmB,CAAAA,sBAAA,GAAC6C,gBAAgB,CAACpK,IAAI,MAAA,IAAA,IAAAuH,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAIvH,IAAI,CAAC,CAAC,GACtE,CAAC,CAAA;AACL,EAAA,IAAMoM,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,GACD/N,SAAS,CAAA;;AAEb;AACA;AACA,EAAA,IAAMyO,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,GAAG1O,SAAS,GAAG8E,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;AAClB3N,IAAAA,IAAI,EAAEA,IAAK;AACX4J,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;IACFnO,OAAO,EAAA,CAAA8J,sBAAA,GAAE0C,gBAAgB,CAACxM,OAAO,MAAA,IAAA,IAAA8J,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAI9J,OAAQ;IAC7CF,KAAK,EAAA,CAAAiK,sBAAA,GAAEyC,gBAAgB,CAAC1M,KAAK,MAAA,IAAA,IAAAiK,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAIjK,KAAM;IACvCsC,IAAI,EAAA,CAAA4H,sBAAA,GAAEwC,gBAAgB,CAACpK,IAAI,MAAA,IAAA,IAAA4H,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAI5H,IAAK;AACpC6I,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,EACZ7F,UAAU,GACNe,KAAK,CAACb,KAAK,CAACc,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,CAACjP,aAAa,EAAE,GACjB;AAAE8P,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,GAAG1O,SAAS,GAAG+E,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;AAC5BjP,UAAAA,IAAI,EAAE+D,WAAY;UAClBrG,KAAK,EAAEoM,aAAa,KAAbA,IAAAA,IAAAA,aAAa,cAAbA,aAAa,GAAIjM,eAAe,CAAC;AAAED,YAAAA,OAAO,EAAPA,OAAO;AAAEF,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;AAACrI,YAAAA,IAAI,EAAE4D,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,EAAE+B,SAAU;AAAA0J,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;AAACrI,YAAAA,IAAI,EAAE4D,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;;;;"}
@@ -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
- black: {
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
- black: {
361
+ neutral: {
371
362
  primary: {
372
- "default": "interactive.".concat(property, ".staticWhite.normal"),
373
- highlighted: "interactive.".concat(property, ".staticWhite.normal"),
374
- disabled: "interactive.".concat(property, ".staticWhite.disabled")
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: 'neutral',
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
  };