@razorpay/blade 11.24.3 → 11.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/Avatar/TrustedBadgeIcon.native.js +7 -0
- package/build/lib/native/components/Avatar/TrustedBadgeIcon.native.js.map +1 -0
- package/build/lib/native/components/BaseMenu/BaseMenuItem/BaseMenuItem.js +1 -1
- package/build/lib/native/components/BaseMenu/BaseMenuItem/BaseMenuItem.js.map +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/native/components/Indicator/Indicator.js +2 -1
- package/build/lib/native/components/Indicator/Indicator.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/baseInputStyles.js +1 -1
- package/build/lib/native/components/Input/BaseInput/baseInputStyles.js.map +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +4 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js +1 -1
- package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/native/components/StepGroup/StepItemMarker.js +1 -1
- package/build/lib/native/components/StepGroup/StepItemMarker.js.map +1 -1
- package/build/lib/native/components/Table/TableBody.native.js +2 -2
- package/build/lib/native/components/Table/TableBody.native.js.map +1 -1
- package/build/lib/native/components/Table/TableContext.js +6 -0
- package/build/lib/native/components/Table/TableContext.js.map +1 -0
- package/build/lib/native/components/Table/TableEditableCell.native.js +16 -0
- package/build/lib/native/components/Table/TableEditableCell.native.js.map +1 -0
- package/build/lib/native/components/Table/TableEditableCellContext.js +6 -0
- package/build/lib/native/components/Table/TableEditableCellContext.js.map +1 -0
- package/build/lib/native/components/Table/TablePagination.native.js +2 -2
- package/build/lib/native/components/Table/TablePagination.native.js.map +1 -1
- package/build/lib/native/components/Table/TableToolbar.native.js +2 -2
- package/build/lib/native/components/Table/TableToolbar.native.js.map +1 -1
- package/build/lib/native/components/Table/tokens.js +22 -0
- package/build/lib/native/components/Table/tokens.js.map +1 -0
- package/build/lib/native/components/index.js +5 -3
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/tokens/theme/createTheme.js +1 -1
- package/build/lib/native/tokens/theme/createTheme.js.map +1 -1
- package/build/lib/web/development/components/Avatar/Avatar.web.js +42 -3
- package/build/lib/web/development/components/Avatar/Avatar.web.js.map +1 -1
- package/build/lib/web/development/components/Avatar/AvatarButton.js +8 -3
- package/build/lib/web/development/components/Avatar/AvatarButton.js.map +1 -1
- package/build/lib/web/development/components/Avatar/StyledAvatar.js +11 -5
- package/build/lib/web/development/components/Avatar/StyledAvatar.js.map +1 -1
- package/build/lib/web/development/components/Avatar/StyledAvatarButton.js +10 -6
- package/build/lib/web/development/components/Avatar/StyledAvatarButton.js.map +1 -1
- package/build/lib/web/development/components/Avatar/TrustedBadgeIcon.web.js +195 -0
- package/build/lib/web/development/components/Avatar/TrustedBadgeIcon.web.js.map +1 -0
- package/build/lib/web/development/components/Avatar/avatarTokens.js +61 -1
- package/build/lib/web/development/components/Avatar/avatarTokens.js.map +1 -1
- package/build/lib/web/development/components/Avatar/index.js +1 -0
- package/build/lib/web/development/components/Avatar/index.js.map +1 -1
- package/build/lib/web/development/components/BaseMenu/BaseMenuItem/BaseMenuItem.js +1 -1
- package/build/lib/web/development/components/BaseMenu/BaseMenuItem/BaseMenuItem.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js +3 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/development/components/Indicator/Indicator.js +7 -2
- package/build/lib/web/development/components/Indicator/Indicator.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +1 -1
- package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +5 -3
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInputTagSlot.web.js +55 -33
- package/build/lib/web/development/components/Input/BaseInput/BaseInputTagSlot.web.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +4 -4
- package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js +4 -2
- package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js.map +1 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +22 -4
- package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js +3 -3
- package/build/lib/web/development/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/web/development/components/StepGroup/StepItemMarker.js +0 -1
- package/build/lib/web/development/components/StepGroup/StepItemMarker.js.map +1 -1
- package/build/lib/web/development/components/Table/TableBody.web.js +26 -166
- package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableEditableCell.web.js +194 -0
- package/build/lib/web/development/components/Table/TableEditableCell.web.js.map +1 -0
- package/build/lib/web/development/components/Table/TableEditableCellContext.js +12 -0
- package/build/lib/web/development/components/Table/TableEditableCellContext.js.map +1 -0
- package/build/lib/web/development/components/Table/TablePagination.web.js +3 -2
- package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/development/components/Table/index.js +2 -2
- package/build/lib/web/development/components/Table/tokens.js +14 -2
- package/build/lib/web/development/components/Table/tokens.js.map +1 -1
- package/build/lib/web/development/components/index.js +3 -1
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/tokens/theme/createTheme.js +5 -2
- package/build/lib/web/development/tokens/theme/createTheme.js.map +1 -1
- package/build/lib/web/production/components/Avatar/Avatar.web.js +42 -3
- package/build/lib/web/production/components/Avatar/Avatar.web.js.map +1 -1
- package/build/lib/web/production/components/Avatar/AvatarButton.js +8 -3
- package/build/lib/web/production/components/Avatar/AvatarButton.js.map +1 -1
- package/build/lib/web/production/components/Avatar/StyledAvatar.js +11 -5
- package/build/lib/web/production/components/Avatar/StyledAvatar.js.map +1 -1
- package/build/lib/web/production/components/Avatar/StyledAvatarButton.js +10 -6
- package/build/lib/web/production/components/Avatar/StyledAvatarButton.js.map +1 -1
- package/build/lib/web/production/components/Avatar/TrustedBadgeIcon.web.js +195 -0
- package/build/lib/web/production/components/Avatar/TrustedBadgeIcon.web.js.map +1 -0
- package/build/lib/web/production/components/Avatar/avatarTokens.js +61 -1
- package/build/lib/web/production/components/Avatar/avatarTokens.js.map +1 -1
- package/build/lib/web/production/components/Avatar/index.js +1 -0
- package/build/lib/web/production/components/Avatar/index.js.map +1 -1
- package/build/lib/web/production/components/BaseMenu/BaseMenuItem/BaseMenuItem.js +1 -1
- package/build/lib/web/production/components/BaseMenu/BaseMenuItem/BaseMenuItem.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js +3 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/production/components/Indicator/Indicator.js +7 -2
- package/build/lib/web/production/components/Indicator/Indicator.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +1 -1
- package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +5 -3
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInputTagSlot.web.js +55 -33
- package/build/lib/web/production/components/Input/BaseInput/BaseInputTagSlot.web.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +4 -4
- package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js +4 -2
- package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js.map +1 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +22 -4
- package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js +3 -3
- package/build/lib/web/production/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/web/production/components/StepGroup/StepItemMarker.js +0 -1
- package/build/lib/web/production/components/StepGroup/StepItemMarker.js.map +1 -1
- package/build/lib/web/production/components/Table/TableBody.web.js +26 -166
- package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableEditableCell.web.js +194 -0
- package/build/lib/web/production/components/Table/TableEditableCell.web.js.map +1 -0
- package/build/lib/web/production/components/Table/TableEditableCellContext.js +12 -0
- package/build/lib/web/production/components/Table/TableEditableCellContext.js.map +1 -0
- package/build/lib/web/production/components/Table/TablePagination.web.js +3 -2
- package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/production/components/Table/index.js +2 -2
- package/build/lib/web/production/components/Table/tokens.js +14 -2
- package/build/lib/web/production/components/Table/tokens.js.map +1 -1
- package/build/lib/web/production/components/index.js +3 -1
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/tokens/theme/createTheme.js +5 -2
- package/build/lib/web/production/tokens/theme/createTheme.js.map +1 -1
- package/build/types/components/index.d.ts +38 -20
- package/build/types/components/index.native.d.ts +37 -22
- package/build/types/tokens/index.d.ts +6 -3
- package/build/types/tokens/index.native.d.ts +6 -3
- package/package.json +1 -1
- package/build/lib/web/development/components/Table/types.js +0 -2
- package/build/lib/web/development/components/Table/types.js.map +0 -1
- package/build/lib/web/production/components/Table/types.js +0 -2
- package/build/lib/web/production/components/Table/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTheme.js","sources":["../../../../../../src/tokens/theme/createTheme.ts"],"sourcesContent":["import tinycolor from 'tinycolor2';\nimport type { WCAG2Options, ColorInput } from 'tinycolor2';\nimport type { ThemeTokens } from './theme';\nimport overrideTheme from './overrideTheme';\nimport bladeTheme from './bladeTheme';\nimport { colors as globalColors, opacity } from '~tokens/global';\nimport type { ColorChromaticScale } from '~tokens/global/colors';\nimport { throwBladeError } from '~utils/logger';\nimport type { DeepPartial } from '~utils/isPartialMatchObjectKeys';\n\n// WCAG2ContrastOptions are the options used to determine if a color is readable\nconst WCAG2ContrastOptions: WCAG2Options = {\n level: 'AAA',\n size: 'large',\n};\n\n/**\n * getColorWithOpacity\n * @param color - The color to add opacity to\n * @param opacity - The opacity to add to the color\n * @returns The color with the opacity added\n * @example\n * getColorWithOpacity('#fff', 0.5) // returns 'hsla(0, 0%, 100%, 0.5)'\n *\n **/\nconst getColorWithOpacity = (color: ColorInput, opacity: number): string => {\n return tinycolor(color).setAlpha(opacity).toHslString();\n};\n\n/**\n *\n * @description\n * Generates a chromatic color palette based on the base color passed in.\n * The base color is used to generate a palette of 11 colors, 5 shades lighter and 5 shades darker than the base color.\n * @param baseColorInput - The base color to generate the chromatic color palette from in hex, rgb, or hsl format\n * @returns Array of chromatic color palette\n */\nconst generateChromaticBrandColors = (baseColorInput: ColorInput): ColorChromaticScale => {\n const baseColor = tinycolor(baseColorInput);\n const baseColorHslString = baseColor.toHslString();\n if (__DEV__) {\n if (!baseColor.isValid()) {\n throwBladeError({\n message: 'Invalid brandColor passed',\n moduleName: 'createTheme',\n });\n }\n }\n\n const palette = [baseColorHslString]; // Include the original color\n const brightness = tinycolor(baseColor).getBrightness();\n // Determine how much to lighten or darken the colors depending on the brightness of the base color\n const lightnessFactor = brightness > 150 ? 3 : 6;\n const darknessFactor = brightness < 50 ? 3 : 5;\n\n let currentColor = baseColor;\n\n // Generate shades lighter\n for (let lightShadeIndex = 0; lightShadeIndex < 6; lightShadeIndex++) {\n currentColor = currentColor.brighten(lightnessFactor);\n palette.push(currentColor.toHslString());\n }\n\n currentColor = tinycolor(baseColorHslString); // Reset to the base color\n\n // Generate shades darker\n for (let darkShadeIndex = 0; darkShadeIndex < 4; darkShadeIndex++) {\n currentColor = currentColor.darken(darknessFactor);\n palette.unshift(currentColor.toHslString()); // Add shades at the beginning of the palette\n }\n\n const colorPalette = palette.reverse();\n const brandPrimaryColor = colorPalette[6];\n\n const brandColors: ColorChromaticScale = {\n '50': colorPalette[0],\n '100': colorPalette[1],\n '200': colorPalette[2],\n '300': colorPalette[3],\n '400': colorPalette[4],\n '500': colorPalette[5],\n '600': brandPrimaryColor,\n '700': colorPalette[7],\n '800': colorPalette[8],\n '900': colorPalette[9],\n '1000': colorPalette[10],\n a50: getColorWithOpacity(brandPrimaryColor, opacity[100]),\n a150: getColorWithOpacity(brandPrimaryColor, opacity[100]),\n a100: getColorWithOpacity(brandPrimaryColor, opacity[200]),\n a200: getColorWithOpacity(brandPrimaryColor, opacity[300]),\n };\n\n return brandColors;\n};\n\n/**\n *\n * @param brandColors - The brand colors to use to override the light theme\n * @description Returns overrides for the light theme with the brand colors passed in\n * @returns Overrides for the light theme with the custom brand colors\n */\nconst getOnLightOverrides = (\n brandColors: ColorChromaticScale,\n): DeepPartial<ThemeTokens['colors']['onLight']> => {\n // Select the most readable color to use as the foreground color on top of surface color\n // For example: On Secondary Button where the background color is surface color, the text color should be either the brand color or dark color depending on which is more readable on top of that surface color\n const foregroundOnSurface = tinycolor.isReadable(\n globalColors.neutral.blueGrayLight[50],\n brandColors[600],\n WCAG2ContrastOptions,\n )\n ? brandColors[600]\n : globalColors.neutral.blueGrayLight[1100];\n\n const foregroundOnBrand = tinycolor\n .mostReadable(\n brandColors[900],\n [globalColors.neutral.white[500], globalColors.neutral.black[500]],\n WCAG2ContrastOptions,\n )\n .toHslString();\n\n // Overrides for the light theme with the brand colors passed in\n const lightThemeOverrides: DeepPartial<ThemeTokens['colors']['onLight']> = {\n interactive: {\n background: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n fadedHighlighted: brandColors.a150,\n },\n },\n border: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n },\n },\n text: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n icon: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n },\n surface: {\n background: {\n primary: {\n intense: brandColors[600],\n subtle: brandColors[200],\n },\n },\n icon: {\n primary: {\n normal: brandColors[600],\n },\n },\n text: {\n primary: {\n normal: brandColors[600],\n },\n },\n },\n };\n\n return lightThemeOverrides;\n};\n\n/**\n *\n * @param brandColors - The brand colors to use to override the dark theme\n * @description Returns overrides for the dark theme with the brand colors passed in\n * @returns Overrides for the dark theme with the custom brand colors\n */\nconst getOnDarkOverrides = (\n brandColors: ColorChromaticScale,\n): DeepPartial<ThemeTokens['colors']['onDark']> => {\n // Select the most readable color to use as the foreground color on top of surface color\n // For example: On Secondary Button where the background color is surface color, the text color should be either the brand color or dark color depending on which is more readable on top of that surface color\n const foregroundOnSurface = tinycolor.isReadable(\n globalColors.neutral.blueGrayDark[1100],\n brandColors[400],\n WCAG2ContrastOptions,\n )\n ? brandColors[400]\n : globalColors.neutral.blueGrayDark[0];\n\n const foregroundOnBrand = tinycolor\n .mostReadable(\n brandColors[900],\n [globalColors.neutral.white[500], globalColors.neutral.black[500]],\n WCAG2ContrastOptions,\n )\n .toHslString();\n\n // Overrides for the dark theme with the brand colors passed in\n const darkThemeOverrides: DeepPartial<ThemeTokens['colors']['onDark']> = {\n interactive: {\n background: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n fadedHighlighted: brandColors.a150,\n },\n },\n border: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n },\n },\n text: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n icon: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n },\n surface: {\n background: {\n primary: {\n intense: brandColors[600],\n subtle: brandColors[200],\n },\n },\n icon: {\n primary: {\n normal: brandColors[600],\n },\n },\n },\n };\n\n return darkThemeOverrides;\n};\n\n/**\n * @param {Object} themeConfig - The brand color and overrides to apply to the theme\n * @param {string} themeConfig.brandColor - The brand color to use to generate the theme. Can be in hex, rgb, or hsl format.\n * @description\n * Creates a Blade Theme based on the custom brand color\n * @returns The Theme Tokens with the custom brand colors\n * @example\n * const theme = createTheme({ brandColor: '#19BEA2'})\n **/\nexport const createTheme = ({ brandColor }: { brandColor: ColorInput }): ThemeTokens => {\n const chromaticBrandColors = generateChromaticBrandColors(brandColor);\n // Get onLight overrides\n const brandedLightTheme = getOnLightOverrides(chromaticBrandColors);\n // Get onDark overrides\n const brandedDarkTheme = getOnDarkOverrides(chromaticBrandColors);\n // Override the payment theme with the brand colors\n const brandedThemeTokens = overrideTheme({\n baseThemeTokens: bladeTheme,\n overrides: {\n name: `custom-${tinycolor(brandColor).toHex()}`,\n colors: {\n onLight: {\n ...brandedLightTheme,\n },\n onDark: {\n ...brandedDarkTheme,\n },\n },\n },\n });\n\n return brandedThemeTokens;\n};\n"],"names":["WCAG2ContrastOptions","level","size","getColorWithOpacity","color","opacity","tinycolor","setAlpha","toHslString","generateChromaticBrandColors","baseColorInput","baseColor","baseColorHslString","isValid","throwBladeError","message","moduleName","palette","brightness","getBrightness","lightnessFactor","darknessFactor","currentColor","lightShadeIndex","brighten","push","darkShadeIndex","darken","unshift","colorPalette","reverse","brandPrimaryColor","brandColors","a50","a150","a100","a200","getOnLightOverrides","foregroundOnSurface","isReadable","globalColors","neutral","blueGrayLight","foregroundOnBrand","mostReadable","white","black","lightThemeOverrides","interactive","background","primary","highlighted","disabled","faded","fadedHighlighted","border","text","normal","muted","subtle","onPrimary","icon","surface","intense","getOnDarkOverrides","blueGrayDark","darkThemeOverrides","createTheme","_ref","brandColor","chromaticBrandColors","brandedLightTheme","brandedDarkTheme","brandedThemeTokens","overrideTheme","baseThemeTokens","bladeTheme","overrides","name","concat","toHex","colors","onLight","_objectSpread","onDark"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createTheme.js","sources":["../../../../../../src/tokens/theme/createTheme.ts"],"sourcesContent":["import tinycolor from 'tinycolor2';\nimport type { WCAG2Options, ColorInput } from 'tinycolor2';\nimport type { ThemeTokens } from './theme';\nimport overrideTheme from './overrideTheme';\nimport bladeTheme from './bladeTheme';\nimport { colors as globalColors, opacity } from '~tokens/global';\nimport type { ColorChromaticScale } from '~tokens/global/colors';\nimport { throwBladeError } from '~utils/logger';\nimport type { DeepPartial } from '~utils/isPartialMatchObjectKeys';\n\n// WCAG2ContrastOptions are the options used to determine if a color is readable\nconst WCAG2ContrastOptions: WCAG2Options = {\n level: 'AAA',\n size: 'large',\n};\n\n/**\n * getColorWithOpacity\n * @param color - The color to add opacity to\n * @param opacity - The opacity to add to the color\n * @returns The color with the opacity added\n * @example\n * getColorWithOpacity('#fff', 0.5) // returns 'hsla(0, 0%, 100%, 0.5)'\n *\n **/\nconst getColorWithOpacity = (color: ColorInput, opacity: number): string => {\n return tinycolor(color).setAlpha(opacity).toHslString();\n};\n\n/**\n *\n * @description\n * Generates a chromatic color palette based on the base color passed in.\n * The base color is used to generate a palette of 11 colors, 5 shades lighter and 5 shades darker than the base color.\n * @param baseColorInput - The base color to generate the chromatic color palette from in hex, rgb, or hsl format\n * @returns Array of chromatic color palette\n */\nconst generateChromaticBrandColors = (baseColorInput: ColorInput): ColorChromaticScale => {\n const baseColor = tinycolor(baseColorInput);\n const baseColorHslString = baseColor.toHslString();\n if (__DEV__) {\n if (!baseColor.isValid()) {\n throwBladeError({\n message: 'Invalid brandColor passed',\n moduleName: 'createTheme',\n });\n }\n }\n\n const palette = [baseColorHslString]; // Include the original color\n const brightness = tinycolor(baseColor).getBrightness();\n // Determine how much to lighten or darken the colors depending on the brightness of the base color\n const lightnessFactor = brightness > 150 ? 3 : 6;\n const darknessFactor = brightness < 50 ? 3 : 5;\n\n let currentColor = baseColor;\n\n // Generate shades lighter\n for (let lightShadeIndex = 0; lightShadeIndex < 6; lightShadeIndex++) {\n currentColor = currentColor.brighten(lightnessFactor);\n palette.push(currentColor.toHslString());\n }\n\n currentColor = tinycolor(baseColorHslString); // Reset to the base color\n\n // Generate shades darker\n for (let darkShadeIndex = 0; darkShadeIndex < 4; darkShadeIndex++) {\n currentColor = currentColor.darken(darknessFactor);\n palette.unshift(currentColor.toHslString()); // Add shades at the beginning of the palette\n }\n\n const colorPalette = palette.reverse();\n const brandPrimaryColor = colorPalette[6];\n\n const brandColors: ColorChromaticScale = {\n '50': colorPalette[0],\n '100': colorPalette[1],\n '200': colorPalette[2],\n '300': colorPalette[3],\n '400': colorPalette[4],\n '500': colorPalette[5],\n '600': brandPrimaryColor,\n '700': colorPalette[7],\n '800': colorPalette[8],\n '900': colorPalette[9],\n '1000': colorPalette[10],\n a50: getColorWithOpacity(brandPrimaryColor, opacity[100]),\n a150: getColorWithOpacity(brandPrimaryColor, opacity[100]),\n a100: getColorWithOpacity(brandPrimaryColor, opacity[200]),\n a200: getColorWithOpacity(brandPrimaryColor, opacity[300]),\n };\n\n return brandColors;\n};\n\n/**\n *\n * @param brandColors - The brand colors to use to override the light theme\n * @description Returns overrides for the light theme with the brand colors passed in\n * @returns Overrides for the light theme with the custom brand colors\n */\nconst getOnLightOverrides = (\n brandColors: ColorChromaticScale,\n): DeepPartial<ThemeTokens['colors']['onLight']> => {\n // Select the most readable color to use as the foreground color on top of surface color\n // For example: On Secondary Button where the background color is surface color, the text color should be either the brand color or dark color depending on which is more readable on top of that surface color\n const foregroundOnSurface = tinycolor.isReadable(\n globalColors.neutral.blueGrayLight[50],\n brandColors[600],\n WCAG2ContrastOptions,\n )\n ? brandColors[600]\n : globalColors.neutral.blueGrayLight[1100];\n\n const foregroundOnBrand = tinycolor\n .mostReadable(\n brandColors[900],\n [globalColors.neutral.white[500], globalColors.neutral.black[500]],\n WCAG2ContrastOptions,\n )\n .toHslString();\n\n // Overrides for the light theme with the brand colors passed in\n const lightThemeOverrides: DeepPartial<ThemeTokens['colors']['onLight']> = {\n interactive: {\n background: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n fadedHighlighted: brandColors.a150,\n },\n },\n border: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n },\n },\n text: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n icon: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n },\n surface: {\n background: {\n primary: {\n intense: brandColors[600],\n subtle: brandColors[200],\n },\n },\n icon: {\n primary: {\n normal: brandColors[600],\n },\n },\n text: {\n primary: {\n normal: brandColors[600],\n },\n },\n },\n };\n\n return lightThemeOverrides;\n};\n\n/**\n *\n * @param brandColors - The brand colors to use to override the dark theme\n * @description Returns overrides for the dark theme with the brand colors passed in\n * @returns Overrides for the dark theme with the custom brand colors\n */\nconst getOnDarkOverrides = (\n brandColors: ColorChromaticScale,\n): DeepPartial<ThemeTokens['colors']['onDark']> => {\n // Select the most readable color to use as the foreground color on top of surface color\n // For example: On Secondary Button where the background color is surface color, the text color should be either the brand color or dark color depending on which is more readable on top of that surface color\n const foregroundOnSurface = tinycolor.isReadable(\n globalColors.neutral.blueGrayDark[1100],\n brandColors[400],\n WCAG2ContrastOptions,\n )\n ? brandColors[400]\n : globalColors.neutral.blueGrayDark[0];\n\n const foregroundOnBrand = tinycolor\n .mostReadable(\n brandColors[900],\n [globalColors.neutral.white[500], globalColors.neutral.black[500]],\n WCAG2ContrastOptions,\n )\n .toHslString();\n\n // Overrides for the dark theme with the brand colors passed in\n const darkThemeOverrides: DeepPartial<ThemeTokens['colors']['onDark']> = {\n interactive: {\n background: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n fadedHighlighted: brandColors.a150,\n },\n },\n border: {\n primary: {\n default: brandColors[600],\n highlighted: brandColors[700],\n disabled: brandColors.a100,\n faded: brandColors.a100,\n },\n },\n text: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n icon: {\n primary: {\n normal: foregroundOnSurface,\n disabled: foregroundOnSurface,\n muted: foregroundOnSurface,\n subtle: foregroundOnSurface,\n },\n onPrimary: {\n normal: foregroundOnBrand,\n disabled: foregroundOnBrand,\n muted: foregroundOnBrand,\n subtle: foregroundOnBrand,\n },\n },\n },\n surface: {\n background: {\n primary: {\n intense: brandColors[600],\n subtle: brandColors[200],\n },\n },\n icon: {\n primary: {\n normal: brandColors[600],\n },\n },\n },\n };\n\n return darkThemeOverrides;\n};\n\n/**\n * @param {Object} themeConfig - The brand color and overrides to apply to the theme\n * @param {string} themeConfig.brandColor - The brand color to use to generate the theme. Can be in hex, rgb, or hsl format.\n * @description\n * Creates a Blade Theme based on the custom brand color\n * @returns The Theme Tokens with the custom brand colors\n * @example\n * const { theme, brandColors } = createTheme({ brandColor: '#19BEA2'})\n **/\nexport const createTheme = ({\n brandColor,\n}: {\n brandColor: ColorInput;\n}): { theme: ThemeTokens; brandColors: ColorChromaticScale } => {\n const chromaticBrandColors = generateChromaticBrandColors(brandColor);\n // Get onLight overrides\n const brandedLightTheme = getOnLightOverrides(chromaticBrandColors);\n // Get onDark overrides\n const brandedDarkTheme = getOnDarkOverrides(chromaticBrandColors);\n // Override the payment theme with the brand colors\n const brandedThemeTokens = overrideTheme({\n baseThemeTokens: bladeTheme,\n overrides: {\n name: `custom-${tinycolor(brandColor).toHex()}`,\n colors: {\n onLight: {\n ...brandedLightTheme,\n },\n onDark: {\n ...brandedDarkTheme,\n },\n },\n },\n });\n\n return { theme: brandedThemeTokens, brandColors: chromaticBrandColors };\n};\n"],"names":["WCAG2ContrastOptions","level","size","getColorWithOpacity","color","opacity","tinycolor","setAlpha","toHslString","generateChromaticBrandColors","baseColorInput","baseColor","baseColorHslString","isValid","throwBladeError","message","moduleName","palette","brightness","getBrightness","lightnessFactor","darknessFactor","currentColor","lightShadeIndex","brighten","push","darkShadeIndex","darken","unshift","colorPalette","reverse","brandPrimaryColor","brandColors","a50","a150","a100","a200","getOnLightOverrides","foregroundOnSurface","isReadable","globalColors","neutral","blueGrayLight","foregroundOnBrand","mostReadable","white","black","lightThemeOverrides","interactive","background","primary","highlighted","disabled","faded","fadedHighlighted","border","text","normal","muted","subtle","onPrimary","icon","surface","intense","getOnDarkOverrides","blueGrayDark","darkThemeOverrides","createTheme","_ref","brandColor","chromaticBrandColors","brandedLightTheme","brandedDarkTheme","brandedThemeTokens","overrideTheme","baseThemeTokens","bladeTheme","overrides","name","concat","toHex","colors","onLight","_objectSpread","onDark","theme"],"mappings":";;;;;;;;;;;;AAUA;AACA,IAAMA,oBAAkC,GAAG;AACzCC,EAAAA,KAAK,EAAE,KAAK;AACZC,EAAAA,IAAI,EAAE,OAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAiB,EAAEC,OAAe,EAAa;AAC1E,EAAA,OAAOC,SAAS,CAACF,KAAK,CAAC,CAACG,QAAQ,CAACF,OAAO,CAAC,CAACG,WAAW,EAAE,CAAA;AACzD,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAIC,cAA0B,EAA0B;AACxF,EAAA,IAAMC,SAAS,GAAGL,SAAS,CAACI,cAAc,CAAC,CAAA;AAC3C,EAAA,IAAME,kBAAkB,GAAGD,SAAS,CAACH,WAAW,EAAE,CAAA;AAClD,EAAA,IAAI,IAAO,EAAE;AACX,IAAA,IAAI,CAACG,SAAS,CAACE,OAAO,EAAE,EAAE;AACxBC,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAE,2BAA2B;AACpCC,QAAAA,UAAU,EAAE,aAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAMC,OAAO,GAAG,CAACL,kBAAkB,CAAC,CAAC;EACrC,IAAMM,UAAU,GAAGZ,SAAS,CAACK,SAAS,CAAC,CAACQ,aAAa,EAAE,CAAA;AACvD;EACA,IAAMC,eAAe,GAAGF,UAAU,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;EAChD,IAAMG,cAAc,GAAGH,UAAU,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;EAE9C,IAAII,YAAY,GAAGX,SAAS,CAAA;;AAE5B;EACA,KAAK,IAAIY,eAAe,GAAG,CAAC,EAAEA,eAAe,GAAG,CAAC,EAAEA,eAAe,EAAE,EAAE;AACpED,IAAAA,YAAY,GAAGA,YAAY,CAACE,QAAQ,CAACJ,eAAe,CAAC,CAAA;IACrDH,OAAO,CAACQ,IAAI,CAACH,YAAY,CAACd,WAAW,EAAE,CAAC,CAAA;AAC1C,GAAA;AAEAc,EAAAA,YAAY,GAAGhB,SAAS,CAACM,kBAAkB,CAAC,CAAC;;AAE7C;EACA,KAAK,IAAIc,cAAc,GAAG,CAAC,EAAEA,cAAc,GAAG,CAAC,EAAEA,cAAc,EAAE,EAAE;AACjEJ,IAAAA,YAAY,GAAGA,YAAY,CAACK,MAAM,CAACN,cAAc,CAAC,CAAA;IAClDJ,OAAO,CAACW,OAAO,CAACN,YAAY,CAACd,WAAW,EAAE,CAAC,CAAC;AAC9C,GAAA;AAEA,EAAA,IAAMqB,YAAY,GAAGZ,OAAO,CAACa,OAAO,EAAE,CAAA;AACtC,EAAA,IAAMC,iBAAiB,GAAGF,YAAY,CAAC,CAAC,CAAC,CAAA;AAEzC,EAAA,IAAMG,WAAgC,GAAG;AACvC,IAAA,IAAI,EAAEH,YAAY,CAAC,CAAC,CAAC;AACrB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEE,iBAAiB;AACxB,IAAA,KAAK,EAAEF,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,KAAK,EAAEA,YAAY,CAAC,CAAC,CAAC;AACtB,IAAA,MAAM,EAAEA,YAAY,CAAC,EAAE,CAAC;IACxBI,GAAG,EAAE9B,mBAAmB,CAAC4B,iBAAiB,EAAE1B,OAAO,CAAC,GAAG,CAAC,CAAC;IACzD6B,IAAI,EAAE/B,mBAAmB,CAAC4B,iBAAiB,EAAE1B,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D8B,IAAI,EAAEhC,mBAAmB,CAAC4B,iBAAiB,EAAE1B,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D+B,IAAI,EAAEjC,mBAAmB,CAAC4B,iBAAiB,EAAE1B,OAAO,CAAC,GAAG,CAAC,CAAA;GAC1D,CAAA;AAED,EAAA,OAAO2B,WAAW,CAAA;AACpB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmBA,CACvBL,WAAgC,EACkB;AAClD;AACA;AACA,EAAA,IAAMM,mBAAmB,GAAGhC,SAAS,CAACiC,UAAU,CAC9CC,MAAY,CAACC,OAAO,CAACC,aAAa,CAAC,EAAE,CAAC,EACtCV,WAAW,CAAC,GAAG,CAAC,EAChBhC,oBACF,CAAC,GACGgC,WAAW,CAAC,GAAG,CAAC,GAChBQ,MAAY,CAACC,OAAO,CAACC,aAAa,CAAC,IAAI,CAAC,CAAA;AAE5C,EAAA,IAAMC,iBAAiB,GAAGrC,SAAS,CAChCsC,YAAY,CACXZ,WAAW,CAAC,GAAG,CAAC,EAChB,CAACQ,MAAY,CAACC,OAAO,CAACI,KAAK,CAAC,GAAG,CAAC,EAAEL,MAAY,CAACC,OAAO,CAACK,KAAK,CAAC,GAAG,CAAC,CAAC,EAClE9C,oBACF,CAAC,CACAQ,WAAW,EAAE,CAAA;;AAEhB;AACA,EAAA,IAAMuC,mBAAkE,GAAG;AACzEC,IAAAA,WAAW,EAAE;AACXC,MAAAA,UAAU,EAAE;AACVC,QAAAA,OAAO,EAAE;UACP,SAASlB,EAAAA,WAAW,CAAC,GAAG,CAAC;AACzBmB,UAAAA,WAAW,EAAEnB,WAAW,CAAC,GAAG,CAAC;UAC7BoB,QAAQ,EAAEpB,WAAW,CAACG,IAAI;UAC1BkB,KAAK,EAAErB,WAAW,CAACG,IAAI;UACvBmB,gBAAgB,EAAEtB,WAAW,CAACE,IAAAA;AAChC,SAAA;OACD;AACDqB,MAAAA,MAAM,EAAE;AACNL,QAAAA,OAAO,EAAE;UACP,SAASlB,EAAAA,WAAW,CAAC,GAAG,CAAC;AACzBmB,UAAAA,WAAW,EAAEnB,WAAW,CAAC,GAAG,CAAC;UAC7BoB,QAAQ,EAAEpB,WAAW,CAACG,IAAI;UAC1BkB,KAAK,EAAErB,WAAW,CAACG,IAAAA;AACrB,SAAA;OACD;AACDqB,MAAAA,IAAI,EAAE;AACJN,QAAAA,OAAO,EAAE;AACPO,UAAAA,MAAM,EAAEnB,mBAAmB;AAC3Bc,UAAAA,QAAQ,EAAEd,mBAAmB;AAC7BoB,UAAAA,KAAK,EAAEpB,mBAAmB;AAC1BqB,UAAAA,MAAM,EAAErB,mBAAAA;SACT;AACDsB,QAAAA,SAAS,EAAE;AACTH,UAAAA,MAAM,EAAEd,iBAAiB;AACzBS,UAAAA,QAAQ,EAAET,iBAAiB;AAC3Be,UAAAA,KAAK,EAAEf,iBAAiB;AACxBgB,UAAAA,MAAM,EAAEhB,iBAAAA;AACV,SAAA;OACD;AACDkB,MAAAA,IAAI,EAAE;AACJX,QAAAA,OAAO,EAAE;AACPO,UAAAA,MAAM,EAAEnB,mBAAmB;AAC3Bc,UAAAA,QAAQ,EAAEd,mBAAmB;AAC7BoB,UAAAA,KAAK,EAAEpB,mBAAmB;AAC1BqB,UAAAA,MAAM,EAAErB,mBAAAA;SACT;AACDsB,QAAAA,SAAS,EAAE;AACTH,UAAAA,MAAM,EAAEd,iBAAiB;AACzBS,UAAAA,QAAQ,EAAET,iBAAiB;AAC3Be,UAAAA,KAAK,EAAEf,iBAAiB;AACxBgB,UAAAA,MAAM,EAAEhB,iBAAAA;AACV,SAAA;AACF,OAAA;KACD;AACDmB,IAAAA,OAAO,EAAE;AACPb,MAAAA,UAAU,EAAE;AACVC,QAAAA,OAAO,EAAE;AACPa,UAAAA,OAAO,EAAE/B,WAAW,CAAC,GAAG,CAAC;UACzB2B,MAAM,EAAE3B,WAAW,CAAC,GAAG,CAAA;AACzB,SAAA;OACD;AACD6B,MAAAA,IAAI,EAAE;AACJX,QAAAA,OAAO,EAAE;UACPO,MAAM,EAAEzB,WAAW,CAAC,GAAG,CAAA;AACzB,SAAA;OACD;AACDwB,MAAAA,IAAI,EAAE;AACJN,QAAAA,OAAO,EAAE;UACPO,MAAM,EAAEzB,WAAW,CAAC,GAAG,CAAA;AACzB,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AAED,EAAA,OAAOe,mBAAmB,CAAA;AAC5B,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAMiB,kBAAkB,GAAG,SAArBA,kBAAkBA,CACtBhC,WAAgC,EACiB;AACjD;AACA;AACA,EAAA,IAAMM,mBAAmB,GAAGhC,SAAS,CAACiC,UAAU,CAC9CC,MAAY,CAACC,OAAO,CAACwB,YAAY,CAAC,IAAI,CAAC,EACvCjC,WAAW,CAAC,GAAG,CAAC,EAChBhC,oBACF,CAAC,GACGgC,WAAW,CAAC,GAAG,CAAC,GAChBQ,MAAY,CAACC,OAAO,CAACwB,YAAY,CAAC,CAAC,CAAC,CAAA;AAExC,EAAA,IAAMtB,iBAAiB,GAAGrC,SAAS,CAChCsC,YAAY,CACXZ,WAAW,CAAC,GAAG,CAAC,EAChB,CAACQ,MAAY,CAACC,OAAO,CAACI,KAAK,CAAC,GAAG,CAAC,EAAEL,MAAY,CAACC,OAAO,CAACK,KAAK,CAAC,GAAG,CAAC,CAAC,EAClE9C,oBACF,CAAC,CACAQ,WAAW,EAAE,CAAA;;AAEhB;AACA,EAAA,IAAM0D,kBAAgE,GAAG;AACvElB,IAAAA,WAAW,EAAE;AACXC,MAAAA,UAAU,EAAE;AACVC,QAAAA,OAAO,EAAE;UACP,SAASlB,EAAAA,WAAW,CAAC,GAAG,CAAC;AACzBmB,UAAAA,WAAW,EAAEnB,WAAW,CAAC,GAAG,CAAC;UAC7BoB,QAAQ,EAAEpB,WAAW,CAACG,IAAI;UAC1BkB,KAAK,EAAErB,WAAW,CAACG,IAAI;UACvBmB,gBAAgB,EAAEtB,WAAW,CAACE,IAAAA;AAChC,SAAA;OACD;AACDqB,MAAAA,MAAM,EAAE;AACNL,QAAAA,OAAO,EAAE;UACP,SAASlB,EAAAA,WAAW,CAAC,GAAG,CAAC;AACzBmB,UAAAA,WAAW,EAAEnB,WAAW,CAAC,GAAG,CAAC;UAC7BoB,QAAQ,EAAEpB,WAAW,CAACG,IAAI;UAC1BkB,KAAK,EAAErB,WAAW,CAACG,IAAAA;AACrB,SAAA;OACD;AACDqB,MAAAA,IAAI,EAAE;AACJN,QAAAA,OAAO,EAAE;AACPO,UAAAA,MAAM,EAAEnB,mBAAmB;AAC3Bc,UAAAA,QAAQ,EAAEd,mBAAmB;AAC7BoB,UAAAA,KAAK,EAAEpB,mBAAmB;AAC1BqB,UAAAA,MAAM,EAAErB,mBAAAA;SACT;AACDsB,QAAAA,SAAS,EAAE;AACTH,UAAAA,MAAM,EAAEd,iBAAiB;AACzBS,UAAAA,QAAQ,EAAET,iBAAiB;AAC3Be,UAAAA,KAAK,EAAEf,iBAAiB;AACxBgB,UAAAA,MAAM,EAAEhB,iBAAAA;AACV,SAAA;OACD;AACDkB,MAAAA,IAAI,EAAE;AACJX,QAAAA,OAAO,EAAE;AACPO,UAAAA,MAAM,EAAEnB,mBAAmB;AAC3Bc,UAAAA,QAAQ,EAAEd,mBAAmB;AAC7BoB,UAAAA,KAAK,EAAEpB,mBAAmB;AAC1BqB,UAAAA,MAAM,EAAErB,mBAAAA;SACT;AACDsB,QAAAA,SAAS,EAAE;AACTH,UAAAA,MAAM,EAAEd,iBAAiB;AACzBS,UAAAA,QAAQ,EAAET,iBAAiB;AAC3Be,UAAAA,KAAK,EAAEf,iBAAiB;AACxBgB,UAAAA,MAAM,EAAEhB,iBAAAA;AACV,SAAA;AACF,OAAA;KACD;AACDmB,IAAAA,OAAO,EAAE;AACPb,MAAAA,UAAU,EAAE;AACVC,QAAAA,OAAO,EAAE;AACPa,UAAAA,OAAO,EAAE/B,WAAW,CAAC,GAAG,CAAC;UACzB2B,MAAM,EAAE3B,WAAW,CAAC,GAAG,CAAA;AACzB,SAAA;OACD;AACD6B,MAAAA,IAAI,EAAE;AACJX,QAAAA,OAAO,EAAE;UACPO,MAAM,EAAEzB,WAAW,CAAC,GAAG,CAAA;AACzB,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AAED,EAAA,OAAOkC,kBAAkB,CAAA;AAC3B,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAIwC;AAAA,EAAA,IAH9DC,UAAU,GAAAD,IAAA,CAAVC,UAAU,CAAA;AAIV,EAAA,IAAMC,oBAAoB,GAAG7D,4BAA4B,CAAC4D,UAAU,CAAC,CAAA;AACrE;AACA,EAAA,IAAME,iBAAiB,GAAGlC,mBAAmB,CAACiC,oBAAoB,CAAC,CAAA;AACnE;AACA,EAAA,IAAME,gBAAgB,GAAGR,kBAAkB,CAACM,oBAAoB,CAAC,CAAA;AACjE;EACA,IAAMG,kBAAkB,GAAGC,aAAa,CAAC;AACvCC,IAAAA,eAAe,EAAEC,UAAU;AAC3BC,IAAAA,SAAS,EAAE;MACTC,IAAI,EAAA,SAAA,CAAAC,MAAA,CAAYzE,SAAS,CAAC+D,UAAU,CAAC,CAACW,KAAK,EAAE,CAAE;AAC/CC,MAAAA,MAAM,EAAE;AACNC,QAAAA,OAAO,EAAAC,aAAA,CACFZ,EAAAA,EAAAA,iBAAiB,CACrB;QACDa,MAAM,EAAAD,aAAA,CAAA,EAAA,EACDX,gBAAgB,CAAA;AAEvB,OAAA;AACF,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,OAAO;AAAEa,IAAAA,KAAK,EAAEZ,kBAAkB;AAAEzC,IAAAA,WAAW,EAAEsC,oBAAAA;GAAsB,CAAA;AACzE;;;;"}
|
|
@@ -4,20 +4,25 @@ import React__default from 'react';
|
|
|
4
4
|
import { StyledAvatar } from './StyledAvatar.js';
|
|
5
5
|
import { useAvatarGroupContext } from './AvatarGroupContext.js';
|
|
6
6
|
import { AvatarButton } from './AvatarButton.js';
|
|
7
|
+
import { avatarTopAddonOffsets, avatarToIndicatorSize, avatarToBottomAddonSize } from './avatarTokens.js';
|
|
7
8
|
import '../Box/styledProps/index.js';
|
|
8
9
|
import '../../utils/metaAttribute/index.js';
|
|
9
10
|
import '../../utils/assignWithoutSideEffects/index.js';
|
|
10
11
|
import '../../utils/logger/index.js';
|
|
11
12
|
import '../Icons/index.js';
|
|
12
|
-
import
|
|
13
|
+
import '../Box/BaseBox/index.js';
|
|
14
|
+
import '../../utils/isValidAllowedChildren/index.js';
|
|
15
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
13
16
|
import { throwBladeError } from '../../utils/logger/logger.js';
|
|
17
|
+
import { getComponentId } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
14
18
|
import UserIcon from '../Icons/UserIcon/UserIcon.js';
|
|
15
19
|
import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
|
|
16
20
|
import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
17
21
|
import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
|
|
22
|
+
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
18
23
|
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
19
24
|
|
|
20
|
-
var _excluded = ["name", "color", "size", "variant", "icon", "href", "target", "rel", "src", "alt", "srcSet", "crossOrigin", "referrerPolicy", "testID", "onBlur", "onFocus", "onClick", "onMouseLeave", "onMouseMove", "onMouseDown", "onPointerDown", "onPointerEnter", "onTouchStart", "onTouchEnd"];
|
|
25
|
+
var _excluded = ["name", "color", "size", "variant", "icon", "href", "target", "rel", "isSelected", "bottomAddon", "topAddon", "src", "alt", "srcSet", "crossOrigin", "referrerPolicy", "testID", "onBlur", "onFocus", "onClick", "onMouseLeave", "onMouseMove", "onMouseDown", "onPointerDown", "onPointerEnter", "onTouchStart", "onTouchEnd"];
|
|
21
26
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
27
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
28
|
var getInitials = function getInitials(name) {
|
|
@@ -41,6 +46,9 @@ var _Avatar = function _Avatar(_ref, ref) {
|
|
|
41
46
|
href = _ref.href,
|
|
42
47
|
target = _ref.target,
|
|
43
48
|
rel = _ref.rel,
|
|
49
|
+
isSelected = _ref.isSelected,
|
|
50
|
+
BottomAddon = _ref.bottomAddon,
|
|
51
|
+
topAddon = _ref.topAddon,
|
|
44
52
|
src = _ref.src,
|
|
45
53
|
alt = _ref.alt,
|
|
46
54
|
srcSet = _ref.srcSet,
|
|
@@ -65,9 +73,16 @@ var _Avatar = function _Avatar(_ref, ref) {
|
|
|
65
73
|
message: '"alt" or "name" prop is required when the "src" prop is provided.'
|
|
66
74
|
});
|
|
67
75
|
}
|
|
76
|
+
if (topAddon && getComponentId(topAddon) !== 'Indicator') {
|
|
77
|
+
throwBladeError({
|
|
78
|
+
moduleName: 'Avatar',
|
|
79
|
+
message: 'TopAddon only accepts `Indicator` component.'
|
|
80
|
+
});
|
|
81
|
+
}
|
|
68
82
|
}
|
|
69
83
|
var groupProps = useAvatarGroupContext();
|
|
70
84
|
var avatarSize = (_groupProps$size = groupProps === null || groupProps === void 0 ? void 0 : groupProps.size) !== null && _groupProps$size !== void 0 ? _groupProps$size : size;
|
|
85
|
+
var isInteractive = Boolean(onClick || href);
|
|
71
86
|
var commonButtonProps = {
|
|
72
87
|
variant: variant,
|
|
73
88
|
color: color,
|
|
@@ -77,6 +92,7 @@ var _Avatar = function _Avatar(_ref, ref) {
|
|
|
77
92
|
rel: rel,
|
|
78
93
|
onBlur: onBlur,
|
|
79
94
|
onFocus: onFocus,
|
|
95
|
+
isSelected: isSelected,
|
|
80
96
|
onClick: onClick,
|
|
81
97
|
onMouseLeave: onMouseLeave,
|
|
82
98
|
onMouseMove: onMouseMove,
|
|
@@ -110,6 +126,7 @@ var _Avatar = function _Avatar(_ref, ref) {
|
|
|
110
126
|
icon: icon !== null && icon !== void 0 ? icon : UserIcon
|
|
111
127
|
}));
|
|
112
128
|
};
|
|
129
|
+
var isSquare = variant === 'square';
|
|
113
130
|
return /*#__PURE__*/jsx(StyledAvatar, _objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
|
|
114
131
|
name: MetaConstants.Avatar,
|
|
115
132
|
testID: testID
|
|
@@ -117,7 +134,29 @@ var _Avatar = function _Avatar(_ref, ref) {
|
|
|
117
134
|
backgroundColor: "surface.background.gray.intense",
|
|
118
135
|
variant: variant,
|
|
119
136
|
size: avatarSize,
|
|
120
|
-
|
|
137
|
+
isInteractive: isInteractive,
|
|
138
|
+
children: /*#__PURE__*/jsxs(BaseBox, {
|
|
139
|
+
width: "100%",
|
|
140
|
+
height: "100%",
|
|
141
|
+
position: "relative",
|
|
142
|
+
children: [topAddon ? /*#__PURE__*/jsx(BaseBox, {
|
|
143
|
+
position: "absolute",
|
|
144
|
+
top: avatarTopAddonOffsets[variant][size].top,
|
|
145
|
+
right: avatarTopAddonOffsets[variant][size].right,
|
|
146
|
+
children: /*#__PURE__*/React__default.cloneElement(topAddon, {
|
|
147
|
+
size: avatarToIndicatorSize[size],
|
|
148
|
+
display: 'block'
|
|
149
|
+
})
|
|
150
|
+
}) : null, getChildrenToRender(), BottomAddon ? /*#__PURE__*/jsx(BaseBox, {
|
|
151
|
+
position: "absolute",
|
|
152
|
+
bottom: isSquare ? '-10%' : '0%',
|
|
153
|
+
right: isSquare ? '-10%' : '0%',
|
|
154
|
+
children: /*#__PURE__*/jsx(BottomAddon, {
|
|
155
|
+
display: "block",
|
|
156
|
+
size: avatarToBottomAddonSize[size]
|
|
157
|
+
})
|
|
158
|
+
}) : null]
|
|
159
|
+
})
|
|
121
160
|
}));
|
|
122
161
|
};
|
|
123
162
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.web.js","sources":["../../../../../../src/components/Avatar/Avatar.web.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { AvatarProps } from './types';\nimport { StyledAvatar } from './StyledAvatar';\nimport { useAvatarGroupContext } from './AvatarGroupContext';\nimport { AvatarButton } from './AvatarButton';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { UserIcon } from '~components/Icons';\nimport type { BladeElementRef } from '~utils/types';\n\nconst getInitials = (name: string): string => {\n // Combine first and last name initials\n const names = name.trim().toUpperCase().split(' ');\n\n if (names.length === 1) {\n return names[0].substring(0, 2);\n }\n return names[0][0] + names[names.length - 1][0];\n};\n\nconst _Avatar: React.ForwardRefRenderFunction<BladeElementRef, AvatarProps> = (\n {\n name,\n color = 'neutral',\n size = 'medium',\n variant = 'circle',\n icon,\n href,\n target,\n rel,\n // Image Props\n src,\n alt,\n srcSet,\n crossOrigin,\n referrerPolicy,\n testID,\n // interaction props\n onBlur,\n onFocus,\n onClick,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n ...styledProps\n },\n ref,\n): ReactElement => {\n if (__DEV__) {\n if (src && !alt && !name) {\n throwBladeError({\n moduleName: 'Avatar',\n message: '\"alt\" or \"name\" prop is required when the \"src\" prop is provided.',\n });\n }\n }\n\n const groupProps = useAvatarGroupContext();\n const avatarSize = groupProps?.size ?? size;\n\n const commonButtonProps = {\n variant,\n color,\n size: avatarSize,\n href,\n target,\n rel,\n onBlur,\n onFocus,\n onClick,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n };\n\n const getChildrenToRender = (): React.ReactElement => {\n if (src) {\n return (\n <AvatarButton\n {...commonButtonProps}\n ref={ref as never}\n imgProps={{\n src,\n alt: alt ?? name,\n srcSet,\n crossOrigin,\n referrerPolicy,\n }}\n />\n );\n }\n\n if (name && !src) {\n return (\n <AvatarButton ref={ref as never} {...commonButtonProps}>\n {getInitials(name)}\n </AvatarButton>\n );\n }\n\n return <AvatarButton {...commonButtonProps} icon={icon ?? UserIcon} />;\n };\n\n return (\n <StyledAvatar\n {...metaAttribute({ name: MetaConstants.Avatar, testID })}\n {...getStyledProps(styledProps)}\n backgroundColor=\"surface.background.gray.intense\"\n variant={variant}\n size={avatarSize}\n >\n {getChildrenToRender()}\n </StyledAvatar>\n );\n};\n\n/**\n * ### Avatar Component\n * \n * An avatar component is a standardized visual representation of a user or entity.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n <Avatar name=\"Nitin Kumar\" src=\"https://avatars.githubusercontent.com/u/46647141?v=4\" /> \n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-avatar-avatar Avatar Documentation}\n * \n */\nconst Avatar = assignWithoutSideEffects(React.forwardRef(_Avatar), {\n displayName: 'Avatar',\n componentId: 'Avatar',\n});\n\nexport { Avatar };\nexport type { AvatarProps };\n"],"names":["getInitials","name","names","trim","toUpperCase","split","length","substring","_Avatar","_ref","ref","_groupProps$size","_ref$color","color","_ref$size","size","_ref$variant","variant","icon","href","target","rel","src","alt","srcSet","crossOrigin","referrerPolicy","testID","onBlur","onFocus","onClick","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","onTouchStart","onTouchEnd","styledProps","_objectWithoutProperties","_excluded","throwBladeError","moduleName","message","groupProps","useAvatarGroupContext","avatarSize","commonButtonProps","getChildrenToRender","_jsx","AvatarButton","_objectSpread","imgProps","children","UserIcon","StyledAvatar","metaAttribute","MetaConstants","Avatar","getStyledProps","backgroundColor","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Avatar.web.js","sources":["../../../../../../src/components/Avatar/Avatar.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { AvatarProps } from './types';\nimport { StyledAvatar } from './StyledAvatar';\nimport { useAvatarGroupContext } from './AvatarGroupContext';\nimport { AvatarButton } from './AvatarButton';\nimport {\n avatarToBottomAddonSize,\n avatarToIndicatorSize,\n avatarTopAddonOffsets,\n} from './avatarTokens';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { UserIcon } from '~components/Icons';\nimport type { BladeElementRef } from '~utils/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\n\nconst getInitials = (name: string): string => {\n // Combine first and last name initials\n const names = name.trim().toUpperCase().split(' ');\n\n if (names.length === 1) {\n return names[0].substring(0, 2);\n }\n return names[0][0] + names[names.length - 1][0];\n};\n\nconst _Avatar: React.ForwardRefRenderFunction<BladeElementRef, AvatarProps> = (\n {\n name,\n color = 'neutral',\n size = 'medium',\n variant = 'circle',\n icon,\n href,\n target,\n rel,\n isSelected,\n bottomAddon: BottomAddon,\n topAddon,\n // Image Props\n src,\n alt,\n srcSet,\n crossOrigin,\n referrerPolicy,\n testID,\n // interaction props\n onBlur,\n onFocus,\n onClick,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n ...styledProps\n },\n ref,\n) => {\n if (__DEV__) {\n if (src && !alt && !name) {\n throwBladeError({\n moduleName: 'Avatar',\n message: '\"alt\" or \"name\" prop is required when the \"src\" prop is provided.',\n });\n }\n if (topAddon && getComponentId(topAddon) !== 'Indicator') {\n throwBladeError({\n moduleName: 'Avatar',\n message: 'TopAddon only accepts `Indicator` component.',\n });\n }\n }\n\n const groupProps = useAvatarGroupContext();\n const avatarSize = groupProps?.size ?? size;\n const isInteractive = Boolean(onClick || href);\n\n const commonButtonProps = {\n variant,\n color,\n size: avatarSize,\n href,\n target,\n rel,\n onBlur,\n onFocus,\n isSelected,\n onClick,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n };\n\n const getChildrenToRender = (): React.ReactElement => {\n if (src) {\n return (\n <AvatarButton\n {...commonButtonProps}\n ref={ref as never}\n imgProps={{\n src,\n alt: alt ?? name,\n srcSet,\n crossOrigin,\n referrerPolicy,\n }}\n />\n );\n }\n\n if (name && !src) {\n return (\n <AvatarButton ref={ref as never} {...commonButtonProps}>\n {getInitials(name)}\n </AvatarButton>\n );\n }\n\n return <AvatarButton {...commonButtonProps} icon={icon ?? UserIcon} />;\n };\n\n const isSquare = variant === 'square';\n return (\n <StyledAvatar\n {...metaAttribute({ name: MetaConstants.Avatar, testID })}\n {...getStyledProps(styledProps)}\n backgroundColor=\"surface.background.gray.intense\"\n variant={variant}\n size={avatarSize}\n isInteractive={isInteractive}\n >\n <BaseBox width=\"100%\" height=\"100%\" position=\"relative\">\n {topAddon ? (\n <BaseBox\n position=\"absolute\"\n top={avatarTopAddonOffsets[variant][size].top}\n right={avatarTopAddonOffsets[variant][size].right}\n >\n {React.cloneElement(topAddon, { size: avatarToIndicatorSize[size], display: 'block' })}\n </BaseBox>\n ) : null}\n {getChildrenToRender()}\n {BottomAddon ? (\n <BaseBox\n position=\"absolute\"\n bottom={isSquare ? '-10%' : '0%'}\n right={isSquare ? '-10%' : '0%'}\n >\n <BottomAddon display=\"block\" size={avatarToBottomAddonSize[size]} />\n </BaseBox>\n ) : null}\n </BaseBox>\n </StyledAvatar>\n );\n};\n\n/**\n * ### Avatar Component\n * \n * An avatar component is a standardized visual representation of a user or entity.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n <Avatar name=\"Nitin Kumar\" src=\"https://avatars.githubusercontent.com/u/46647141?v=4\" /> \n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-avatar-avatar Avatar Documentation}\n * \n */\nconst Avatar = assignWithoutSideEffects(React.forwardRef(_Avatar), {\n displayName: 'Avatar',\n componentId: 'Avatar',\n});\n\nexport { Avatar };\nexport type { AvatarProps };\n"],"names":["getInitials","name","names","trim","toUpperCase","split","length","substring","_Avatar","_ref","ref","_groupProps$size","_ref$color","color","_ref$size","size","_ref$variant","variant","icon","href","target","rel","isSelected","BottomAddon","bottomAddon","topAddon","src","alt","srcSet","crossOrigin","referrerPolicy","testID","onBlur","onFocus","onClick","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","onTouchStart","onTouchEnd","styledProps","_objectWithoutProperties","_excluded","throwBladeError","moduleName","message","getComponentId","groupProps","useAvatarGroupContext","avatarSize","isInteractive","Boolean","commonButtonProps","getChildrenToRender","_jsx","AvatarButton","_objectSpread","imgProps","children","UserIcon","isSquare","StyledAvatar","metaAttribute","MetaConstants","Avatar","getStyledProps","backgroundColor","_jsxs","BaseBox","width","height","position","top","avatarTopAddonOffsets","right","React","cloneElement","avatarToIndicatorSize","display","bottom","avatarToBottomAddonSize","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
@@ -36,8 +36,11 @@ var _AvatarButton = function _AvatarButton(_ref, ref) {
|
|
|
36
36
|
onPointerDown = _ref.onPointerDown,
|
|
37
37
|
onPointerEnter = _ref.onPointerEnter,
|
|
38
38
|
onTouchStart = _ref.onTouchStart,
|
|
39
|
-
onTouchEnd = _ref.onTouchEnd
|
|
39
|
+
onTouchEnd = _ref.onTouchEnd,
|
|
40
|
+
isSelected = _ref.isSelected;
|
|
40
41
|
var isLink = Boolean(href);
|
|
42
|
+
var isInteractive = Boolean(onClick || isLink);
|
|
43
|
+
var as = isInteractive ? href ? 'a' : 'button' : 'div';
|
|
41
44
|
var defaultRel = target === '_blank' ? 'noreferrer noopener' : undefined;
|
|
42
45
|
var iconColor = getTextColorToken({
|
|
43
46
|
property: 'icon',
|
|
@@ -53,7 +56,9 @@ var _AvatarButton = function _AvatarButton(_ref, ref) {
|
|
|
53
56
|
});
|
|
54
57
|
return /*#__PURE__*/jsx(StyledAvatarButton, {
|
|
55
58
|
ref: ref,
|
|
56
|
-
as:
|
|
59
|
+
as: as,
|
|
60
|
+
isInteractive: isInteractive,
|
|
61
|
+
isSelected: isSelected,
|
|
57
62
|
size: size,
|
|
58
63
|
color: color,
|
|
59
64
|
href: href,
|
|
@@ -61,7 +66,7 @@ var _AvatarButton = function _AvatarButton(_ref, ref) {
|
|
|
61
66
|
target: target,
|
|
62
67
|
rel: rel !== null && rel !== void 0 ? rel : defaultRel,
|
|
63
68
|
accessibilityProps: _objectSpread({}, makeAccessible({
|
|
64
|
-
role: isLink ? 'link' : 'button'
|
|
69
|
+
role: isInteractive ? isLink ? 'link' : 'button' : 'presentation'
|
|
65
70
|
})),
|
|
66
71
|
onBlur: onBlur,
|
|
67
72
|
onFocus: onFocus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarButton.js","sources":["../../../../../../src/components/Avatar/AvatarButton.tsx"],"sourcesContent":["import React from 'react';\nimport { StyledAvatarButton } from './StyledAvatarButton';\nimport type { AvatarButtonProps } from './types';\nimport { avatarTextSizeMapping, avatarIconSizeTokens } from './avatarTokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { Heading, Text } from '~components/Typography';\nimport { getTextColorToken } from '~components/Button/BaseButton/BaseButton';\nimport type { IconColor } from '~components/Button/BaseButton/types';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport type { BladeElementRef } from '~utils/types';\n\nconst _AvatarButton: React.ForwardRefRenderFunction<BladeElementRef, AvatarButtonProps> = (\n {\n href,\n target,\n rel,\n variant = 'circle',\n color = 'neutral',\n size = 'medium',\n icon: Icon,\n imgProps,\n children,\n onBlur,\n onFocus,\n onClick,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n },\n ref,\n): React.ReactElement => {\n const isLink = Boolean(href);\n const defaultRel = target === '_blank' ? 'noreferrer noopener' : undefined;\n const iconColor = getTextColorToken({\n property: 'icon',\n variant: 'secondary',\n color,\n state: 'default',\n }) as IconColor;\n const textColor = getTextColorToken({\n property: 'text',\n variant: 'secondary',\n color,\n state: 'default',\n }) as BaseTextProps['color'];\n\n return (\n <StyledAvatarButton\n ref={ref as never}\n as={
|
|
1
|
+
{"version":3,"file":"AvatarButton.js","sources":["../../../../../../src/components/Avatar/AvatarButton.tsx"],"sourcesContent":["import React from 'react';\nimport { StyledAvatarButton } from './StyledAvatarButton';\nimport type { AvatarButtonProps } from './types';\nimport { avatarTextSizeMapping, avatarIconSizeTokens } from './avatarTokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { Heading, Text } from '~components/Typography';\nimport { getTextColorToken } from '~components/Button/BaseButton/BaseButton';\nimport type { IconColor } from '~components/Button/BaseButton/types';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport type { BladeElementRef } from '~utils/types';\n\nconst _AvatarButton: React.ForwardRefRenderFunction<BladeElementRef, AvatarButtonProps> = (\n {\n href,\n target,\n rel,\n variant = 'circle',\n color = 'neutral',\n size = 'medium',\n icon: Icon,\n imgProps,\n children,\n onBlur,\n onFocus,\n onClick,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n isSelected,\n },\n ref,\n): React.ReactElement => {\n const isLink = Boolean(href);\n const isInteractive = Boolean(onClick || isLink);\n const as = isInteractive ? (href ? 'a' : 'button') : 'div';\n\n const defaultRel = target === '_blank' ? 'noreferrer noopener' : undefined;\n const iconColor = getTextColorToken({\n property: 'icon',\n variant: 'secondary',\n color,\n state: 'default',\n }) as IconColor;\n const textColor = getTextColorToken({\n property: 'text',\n variant: 'secondary',\n color,\n state: 'default',\n }) as BaseTextProps['color'];\n\n return (\n <StyledAvatarButton\n ref={ref as never}\n as={as as never}\n isInteractive={isInteractive}\n isSelected={isSelected}\n size={size}\n color={color}\n href={href}\n variant={variant}\n target={target}\n rel={rel ?? defaultRel}\n accessibilityProps={{\n ...makeAccessible({\n role: isInteractive ? (isLink ? 'link' : 'button') : 'presentation',\n }),\n }}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n zIndex={1}\n height=\"100%\"\n >\n {Icon ? (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Icon size={avatarIconSizeTokens[size]} color={iconColor} />\n </BaseBox>\n ) : null}\n\n {/* eslint-disable-next-line jsx-a11y/alt-text -- alt text is provided in imgProps */}\n {imgProps?.src ? <img {...imgProps} /> : null}\n\n {size === 'xlarge' ? (\n <Heading size={avatarTextSizeMapping[size]} weight=\"semibold\" color={textColor}>\n {children}\n </Heading>\n ) : (\n <Text size={avatarTextSizeMapping[size]} weight=\"semibold\" color={textColor}>\n {children}\n </Text>\n )}\n </BaseBox>\n </StyledAvatarButton>\n );\n};\n\nconst AvatarButton = React.forwardRef(_AvatarButton);\n\nexport { AvatarButton };\n"],"names":["_AvatarButton","_ref","ref","href","target","rel","_ref$variant","variant","_ref$color","color","_ref$size","size","Icon","icon","imgProps","children","onBlur","onFocus","onClick","onMouseLeave","onMouseMove","onMouseDown","onPointerDown","onPointerEnter","onTouchStart","onTouchEnd","isSelected","isLink","Boolean","isInteractive","as","defaultRel","undefined","iconColor","getTextColorToken","property","state","textColor","_jsx","StyledAvatarButton","accessibilityProps","_objectSpread","makeAccessible","role","_jsxs","BaseBox","display","flexDirection","alignItems","justifyContent","zIndex","height","avatarIconSizeTokens","src","Heading","avatarTextSizeMapping","weight","Text","AvatarButton","React","forwardRef"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
1
2
|
import styled from 'styled-components';
|
|
2
3
|
import { avatarSizeTokens, avatarBorderRadiusTokens } from './avatarTokens.js';
|
|
3
4
|
import '../Box/BaseBox/index.js';
|
|
@@ -6,24 +7,29 @@ import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
|
6
7
|
import { makeSize } from '../../utils/makeSize/makeSize.js';
|
|
7
8
|
import { makeBorderSize } from '../../utils/makeBorderSize/makeBorderSize.js';
|
|
8
9
|
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9
12
|
var StyledAvatar = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
10
13
|
displayName: "StyledAvatar",
|
|
11
14
|
componentId: "sc-127ewkg-0"
|
|
12
15
|
})(function (_ref) {
|
|
13
16
|
var theme = _ref.theme,
|
|
14
17
|
variant = _ref.variant,
|
|
15
|
-
size = _ref.size
|
|
16
|
-
|
|
18
|
+
size = _ref.size,
|
|
19
|
+
isInteractive = _ref.isInteractive;
|
|
20
|
+
return _objectSpread({
|
|
17
21
|
display: 'flex',
|
|
18
22
|
width: makeSize(avatarSizeTokens[size]),
|
|
19
23
|
height: makeSize(avatarSizeTokens[size]),
|
|
20
24
|
borderRadius: makeBorderSize(theme.border.radius[avatarBorderRadiusTokens[variant]]),
|
|
21
|
-
outline: "".concat(makeBorderSize(theme.border.width.thinner), " solid ").concat(theme.colors.surface.border.gray.subtle)
|
|
25
|
+
outline: "".concat(makeBorderSize(theme.border.width.thinner), " solid ").concat(theme.colors.surface.border.gray.subtle)
|
|
26
|
+
}, isInteractive ? {
|
|
22
27
|
'&:hover': {
|
|
23
28
|
outline: "".concat(makeBorderSize(theme.border.width.thick), " solid ").concat(theme.colors.surface.border.gray.muted),
|
|
24
|
-
borderColor: theme.colors.surface.border.gray.muted
|
|
29
|
+
borderColor: theme.colors.surface.border.gray.muted,
|
|
30
|
+
backgroundColor: theme.colors.surface.background.gray.moderate
|
|
25
31
|
}
|
|
26
|
-
};
|
|
32
|
+
} : {});
|
|
27
33
|
});
|
|
28
34
|
|
|
29
35
|
export { StyledAvatar };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledAvatar.js","sources":["../../../../../../src/components/Avatar/StyledAvatar.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledAvatarProps } from './types';\nimport { avatarSizeTokens, avatarBorderRadiusTokens } from './avatarTokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeBorderSize, makeSize } from '~utils';\n\nconst StyledAvatar = styled(BaseBox)<StyledAvatarProps>(({ theme, variant, size }) => {\n
|
|
1
|
+
{"version":3,"file":"StyledAvatar.js","sources":["../../../../../../src/components/Avatar/StyledAvatar.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledAvatarProps } from './types';\nimport { avatarSizeTokens, avatarBorderRadiusTokens } from './avatarTokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeBorderSize, makeSize } from '~utils';\n\nconst StyledAvatar = styled(BaseBox)<StyledAvatarProps & { isInteractive?: boolean }>(\n ({ theme, variant, size, isInteractive }) => {\n return {\n display: 'flex',\n width: makeSize(avatarSizeTokens[size]),\n height: makeSize(avatarSizeTokens[size]),\n borderRadius: makeBorderSize(theme.border.radius[avatarBorderRadiusTokens[variant]]),\n outline: `${makeBorderSize(theme.border.width.thinner)} solid ${\n theme.colors.surface.border.gray.subtle\n }`,\n\n ...(isInteractive\n ? {\n '&:hover': {\n outline: `${makeBorderSize(theme.border.width.thick)} solid ${\n theme.colors.surface.border.gray.muted\n }`,\n borderColor: theme.colors.surface.border.gray.muted,\n backgroundColor: theme.colors.surface.background.gray.moderate,\n },\n }\n : {}),\n };\n },\n);\n\nexport { StyledAvatar };\n"],"names":["StyledAvatar","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","variant","size","isInteractive","_objectSpread","display","width","makeSize","avatarSizeTokens","height","borderRadius","makeBorderSize","border","radius","avatarBorderRadiusTokens","outline","concat","thinner","colors","surface","gray","subtle","thick","muted","borderColor","backgroundColor","background","moderate"],"mappings":";;;;;;;;;;;AAMA,IAAMA,YAAY,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,cAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAClC,CAAA,CAAA,UAAAC,IAAA,EAA6C;AAAA,EAAA,IAA1CC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAEC,aAAa,GAAAJ,IAAA,CAAbI,aAAa,CAAA;AACpC,EAAA,OAAAC,aAAA,CAAA;AACEC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,KAAK,EAAEC,QAAQ,CAACC,gBAAgB,CAACN,IAAI,CAAC,CAAC;AACvCO,IAAAA,MAAM,EAAEF,QAAQ,CAACC,gBAAgB,CAACN,IAAI,CAAC,CAAC;AACxCQ,IAAAA,YAAY,EAAEC,cAAc,CAACX,KAAK,CAACY,MAAM,CAACC,MAAM,CAACC,wBAAwB,CAACb,OAAO,CAAC,CAAC,CAAC;IACpFc,OAAO,EAAA,EAAA,CAAAC,MAAA,CAAKL,cAAc,CAACX,KAAK,CAACY,MAAM,CAACN,KAAK,CAACW,OAAO,CAAC,aAAAD,MAAA,CACpDhB,KAAK,CAACkB,MAAM,CAACC,OAAO,CAACP,MAAM,CAACQ,IAAI,CAACC,MAAM,CAAA;AACvC,GAAA,EAEElB,aAAa,GACb;AACE,IAAA,SAAS,EAAE;MACTY,OAAO,EAAA,EAAA,CAAAC,MAAA,CAAKL,cAAc,CAACX,KAAK,CAACY,MAAM,CAACN,KAAK,CAACgB,KAAK,CAAC,EAAAN,SAAAA,CAAAA,CAAAA,MAAA,CAClDhB,KAAK,CAACkB,MAAM,CAACC,OAAO,CAACP,MAAM,CAACQ,IAAI,CAACG,KAAK,CACtC;MACFC,WAAW,EAAExB,KAAK,CAACkB,MAAM,CAACC,OAAO,CAACP,MAAM,CAACQ,IAAI,CAACG,KAAK;MACnDE,eAAe,EAAEzB,KAAK,CAACkB,MAAM,CAACC,OAAO,CAACO,UAAU,CAACN,IAAI,CAACO,QAAAA;AACxD,KAAA;GACD,GACD,EAAE,CAAA,CAAA;AAEV,CAAC;;;;"}
|
|
@@ -20,15 +20,18 @@ var StyledAvatarButton = /*#__PURE__*/styled.button.withConfig({
|
|
|
20
20
|
_ref$variant = _ref.variant,
|
|
21
21
|
variant = _ref$variant === void 0 ? 'circle' : _ref$variant,
|
|
22
22
|
_ref$color = _ref.color,
|
|
23
|
-
color = _ref$color === void 0 ? 'neutral' : _ref$color
|
|
24
|
-
|
|
23
|
+
color = _ref$color === void 0 ? 'neutral' : _ref$color,
|
|
24
|
+
isSelected = _ref.isSelected,
|
|
25
|
+
isInteractive = _ref.isInteractive;
|
|
26
|
+
return _objectSpread({
|
|
27
|
+
display: 'block',
|
|
25
28
|
textAlign: 'center',
|
|
26
29
|
textDecoration: 'none',
|
|
27
|
-
cursor: 'pointer',
|
|
30
|
+
cursor: isInteractive ? 'pointer' : 'default',
|
|
28
31
|
minHeight: makeSize(avatarSizeTokens[size]),
|
|
29
32
|
height: makeSize(avatarSizeTokens[size]),
|
|
30
33
|
width: makeSize(avatarSizeTokens[size]),
|
|
31
|
-
border: 'none',
|
|
34
|
+
border: isSelected ? "".concat(makeBorderSize(theme.border.width.thicker), " solid ").concat(theme.colors.surface.border.primary.normal) : 'none',
|
|
32
35
|
borderRadius: makeBorderSize(theme.border.radius[avatarBorderRadiusTokens[variant]]),
|
|
33
36
|
backgroundColor: getIn(theme.colors, avatarColorTokens.background[color]),
|
|
34
37
|
img: {
|
|
@@ -37,11 +40,12 @@ var StyledAvatarButton = /*#__PURE__*/styled.button.withConfig({
|
|
|
37
40
|
width: avatarSizeTokens[size],
|
|
38
41
|
borderRadius: makeBorderSize(theme.border.radius[avatarBorderRadiusTokens[variant]]),
|
|
39
42
|
objectFit: 'cover'
|
|
40
|
-
}
|
|
43
|
+
}
|
|
44
|
+
}, isInteractive ? {
|
|
41
45
|
'&:focus-visible': _objectSpread({}, getFocusRingStyles({
|
|
42
46
|
theme: theme
|
|
43
47
|
}))
|
|
44
|
-
};
|
|
48
|
+
} : {});
|
|
45
49
|
});
|
|
46
50
|
|
|
47
51
|
export { StyledAvatarButton };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledAvatarButton.js","sources":["../../../../../../src/components/Avatar/StyledAvatarButton.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { AvatarButtonProps } from './types';\nimport { avatarSizeTokens, avatarColorTokens, avatarBorderRadiusTokens } from './avatarTokens';\nimport { makeBorderSize, makeSize } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\nconst StyledAvatarButton = styled.button<AvatarButtonProps>(\n ({
|
|
1
|
+
{"version":3,"file":"StyledAvatarButton.js","sources":["../../../../../../src/components/Avatar/StyledAvatarButton.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { AvatarButtonProps } from './types';\nimport { avatarSizeTokens, avatarColorTokens, avatarBorderRadiusTokens } from './avatarTokens';\nimport { makeBorderSize, makeSize } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\nconst StyledAvatarButton = styled.button<AvatarButtonProps & { isInteractive?: boolean }>(\n ({\n theme,\n size = 'medium',\n variant = 'circle',\n color = 'neutral',\n isSelected,\n isInteractive,\n }) => {\n return {\n display: 'block',\n textAlign: 'center',\n textDecoration: 'none',\n cursor: isInteractive ? 'pointer' : 'default',\n minHeight: makeSize(avatarSizeTokens[size]),\n height: makeSize(avatarSizeTokens[size]),\n width: makeSize(avatarSizeTokens[size]),\n border: isSelected\n ? `${makeBorderSize(theme.border.width.thicker)} solid ${\n theme.colors.surface.border.primary.normal\n }`\n : 'none',\n borderRadius: makeBorderSize(theme.border.radius[avatarBorderRadiusTokens[variant]]),\n backgroundColor: getIn(theme.colors, avatarColorTokens.background[color]),\n\n img: {\n display: 'block',\n height: avatarSizeTokens[size],\n width: avatarSizeTokens[size],\n borderRadius: makeBorderSize(theme.border.radius[avatarBorderRadiusTokens[variant]]),\n objectFit: 'cover',\n },\n\n ...(isInteractive\n ? {\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n },\n }\n : {}),\n };\n },\n);\n\nexport { StyledAvatarButton };\n"],"names":["StyledAvatarButton","styled","button","withConfig","displayName","componentId","_ref","theme","_ref$size","size","_ref$variant","variant","_ref$color","color","isSelected","isInteractive","_objectSpread","display","textAlign","textDecoration","cursor","minHeight","makeSize","avatarSizeTokens","height","width","border","concat","makeBorderSize","thicker","colors","surface","primary","normal","borderRadius","radius","avatarBorderRadiusTokens","backgroundColor","getIn","avatarColorTokens","background","img","objectFit","getFocusRingStyles"],"mappings":";;;;;;;;;;;;AAOA,IAAMA,kBAAkB,gBAAGC,MAAM,CAACC,MAAM,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,oBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACtC,CAAA,CAAA,UAAAC,IAAA,EAOM;AAAA,EAAA,IANJC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAAC,SAAA,GAAAF,IAAA,CACLG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;IAAAE,YAAA,GAAAJ,IAAA,CACfK,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,YAAA;IAAAE,UAAA,GAAAN,IAAA,CAClBO,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,UAAA;IACjBE,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,aAAa,GAAAT,IAAA,CAAbS,aAAa,CAAA;AAEb,EAAA,OAAAC,aAAA,CAAA;AACEC,IAAAA,OAAO,EAAE,OAAO;AAChBC,IAAAA,SAAS,EAAE,QAAQ;AACnBC,IAAAA,cAAc,EAAE,MAAM;AACtBC,IAAAA,MAAM,EAAEL,aAAa,GAAG,SAAS,GAAG,SAAS;AAC7CM,IAAAA,SAAS,EAAEC,QAAQ,CAACC,gBAAgB,CAACd,IAAI,CAAC,CAAC;AAC3Ce,IAAAA,MAAM,EAAEF,QAAQ,CAACC,gBAAgB,CAACd,IAAI,CAAC,CAAC;AACxCgB,IAAAA,KAAK,EAAEH,QAAQ,CAACC,gBAAgB,CAACd,IAAI,CAAC,CAAC;AACvCiB,IAAAA,MAAM,EAAEZ,UAAU,GAAAa,EAAAA,CAAAA,MAAA,CACXC,cAAc,CAACrB,KAAK,CAACmB,MAAM,CAACD,KAAK,CAACI,OAAO,CAAC,EAAAF,SAAAA,CAAAA,CAAAA,MAAA,CAC3CpB,KAAK,CAACuB,MAAM,CAACC,OAAO,CAACL,MAAM,CAACM,OAAO,CAACC,MAAM,IAE5C,MAAM;AACVC,IAAAA,YAAY,EAAEN,cAAc,CAACrB,KAAK,CAACmB,MAAM,CAACS,MAAM,CAACC,wBAAwB,CAACzB,OAAO,CAAC,CAAC,CAAC;AACpF0B,IAAAA,eAAe,EAAEC,KAAK,CAAC/B,KAAK,CAACuB,MAAM,EAAES,iBAAiB,CAACC,UAAU,CAAC3B,KAAK,CAAC,CAAC;AAEzE4B,IAAAA,GAAG,EAAE;AACHxB,MAAAA,OAAO,EAAE,OAAO;AAChBO,MAAAA,MAAM,EAAED,gBAAgB,CAACd,IAAI,CAAC;AAC9BgB,MAAAA,KAAK,EAAEF,gBAAgB,CAACd,IAAI,CAAC;AAC7ByB,MAAAA,YAAY,EAAEN,cAAc,CAACrB,KAAK,CAACmB,MAAM,CAACS,MAAM,CAACC,wBAAwB,CAACzB,OAAO,CAAC,CAAC,CAAC;AACpF+B,MAAAA,SAAS,EAAE,OAAA;AACb,KAAA;AAAC,GAAA,EAEG3B,aAAa,GACb;AACE,IAAA,iBAAiB,EAAAC,aAAA,CACZ2B,EAAAA,EAAAA,kBAAkB,CAAC;AAAEpC,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA;GAEnC,GACD,EAAE,CAAA,CAAA;AAEV,CAAC;;;;"}
|