{"version":3,"sources":["../src/index.tsx","../src/tokens/pentagram-dark.json","../src/tokens/pentagram-light.json","../src/tokens/ltg-dark.json","../src/tokens/blueprints.json","../src/tokens/colors.ts","../src/tokens/spacing.ts","../src/tokens/shape.ts","../src/tokens/shadows.ts","../src/tokens/fonts.ts","../src/tokens/responsive-typography.ts","../src/tokens/typography.ts","../src/fonts/FontLoader.tsx","../src/platform.ts","../src/fonts/fontFaces.ts","../src/styles/TypographyStyleLoader.tsx","../src/tokens/breakpoints.ts","../src/styles/typography-css.ts"],"sourcesContent":["import React, { createContext, useContext, useState, useMemo } from \"react\";\nimport { colors } from \"./tokens/colors\";\nimport { spacing, radiusScale } from \"./tokens/spacing\";\nimport { shape } from \"./tokens/shape\";\nimport { shadow } from \"./tokens/shadows\";\nimport { getFonts } from \"./tokens/fonts\";\nimport {\n  ProductContext,\n  getTypographyTokens,\n  defaultProductContext,\n} from \"./tokens/typography\";\nimport { FontLoader } from \"./fonts/FontLoader\";\nimport { TypographyStyleLoader } from \"./styles/TypographyStyleLoader\";\n\nexport type ThemeMode =\n  | \"dark\"\n  | \"light\"\n  | \"pentagram-dark\"\n  | \"pentagram-light\"\n  | \"ltg-dark\"\n  | \"blueprints\";\n\nconst DEPRECATED_MODES = new Set([\n  \"xsolla-dark\",\n  \"xsolla-light\",\n  \"xsollaDark\",\n  \"xsollaLight\",\n]);\n\nexport const themeConfig = (\n  mode: ThemeMode = \"dark\",\n  productContext: ProductContext = defaultProductContext\n) => {\n  if (DEPRECATED_MODES.has(mode)) {\n    console.warn(\n      `Theme mode \"${mode}\" is deprecated and will be removed in the next major update. Please migrate to \"dark\" or \"light\".`\n    );\n  }\n  const contextFonts = getFonts(productContext);\n  return {\n    colors: colors[mode as keyof typeof colors],\n    spacing,\n    shape,\n    shadow,\n    fonts: contextFonts,\n    typography: {\n      primary: contextFonts.body,\n      heading: contextFonts.heading,\n      body: contextFonts.body,\n    },\n    typographyTokens: getTypographyTokens(productContext),\n    productContext,\n    sizing: {\n      button: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            height: 64,\n            padding: 20,\n            fontSize: 20,\n            lineHeight: 22,\n            sublabelFontSize: 18,\n            spinnerSize: 24,\n            iconSize: 32,\n            iconContainerSize: 64,\n            borderRadius: shape.button.xl.borderRadius,\n            labelIconSize: 22,\n            labelIconGap: 6,\n          },\n          lg: {\n            height: 56,\n            padding: 18,\n            fontSize: 18,\n            lineHeight: 20,\n            sublabelFontSize: 16,\n            spinnerSize: 24,\n            iconSize: 28,\n            iconContainerSize: 56,\n            borderRadius: shape.button.lg.borderRadius,\n            labelIconSize: 20,\n            labelIconGap: 4,\n          },\n          md: {\n            height: 48,\n            padding: 16,\n            fontSize: 16,\n            lineHeight: 18,\n            sublabelFontSize: 14,\n            spinnerSize: 24,\n            iconSize: 24,\n            iconContainerSize: 48,\n            borderRadius: shape.button.md.borderRadius,\n            labelIconSize: 18,\n            labelIconGap: 4,\n          },\n          sm: {\n            height: 40,\n            padding: 14,\n            fontSize: 14,\n            lineHeight: 16,\n            sublabelFontSize: 12,\n            spinnerSize: 24,\n            iconSize: 20,\n            iconContainerSize: 40,\n            borderRadius: shape.button.sm.borderRadius,\n            labelIconSize: 16,\n            labelIconGap: 4,\n          },\n          xs: {\n            height: 32,\n            padding: 12,\n            fontSize: 12,\n            lineHeight: 14,\n            sublabelFontSize: 10,\n            spinnerSize: 16,\n            iconSize: 16,\n            iconContainerSize: 32,\n            borderRadius: shape.button.xs.borderRadius,\n            labelIconSize: 14,\n            labelIconGap: 4,\n          },\n        };\n        return configs[size];\n      },\n      flexButton: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            height: 36,\n            padding: 4,\n            fontSize: 16,\n            spinnerSize: 28,\n            iconSize: 20,\n            borderRadius: radiusScale[\"50\"],\n          },\n          lg: {\n            height: 32,\n            padding: 4,\n            fontSize: 14,\n            spinnerSize: 24,\n            iconSize: 18,\n            borderRadius: radiusScale[\"50\"],\n          },\n          md: {\n            height: 28,\n            padding: 2,\n            fontSize: 14,\n            spinnerSize: 24,\n            iconSize: 16,\n            borderRadius: radiusScale[\"25\"],\n          },\n          sm: {\n            height: 22,\n            padding: 2,\n            fontSize: 12,\n            spinnerSize: 16,\n            iconSize: 14,\n            borderRadius: radiusScale[\"25\"],\n          },\n          xs: {\n            height: 20,\n            padding: 2,\n            fontSize: 12,\n            spinnerSize: 16,\n            iconSize: 12,\n            borderRadius: radiusScale[\"25\"],\n          },\n        };\n        return configs[size];\n      },\n      checkbox: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        const configs = {\n          xl: {\n            size: 22,\n            fontSize: 18,\n            descriptionFontSize: 16,\n            labelGap: 12,\n            textGap: 4,\n            borderRadius: shape.checkbox.xl.borderRadius,\n          },\n          lg: {\n            size: 20,\n            fontSize: 16,\n            descriptionFontSize: 14,\n            labelGap: 10,\n            textGap: 2,\n            borderRadius: shape.checkbox.lg.borderRadius,\n          },\n          md: {\n            size: 18,\n            fontSize: 16,\n            descriptionFontSize: 14,\n            labelGap: 8,\n            textGap: 2,\n            borderRadius: shape.checkbox.md.borderRadius,\n          },\n          sm: {\n            size: 16,\n            fontSize: 14,\n            descriptionFontSize: 12,\n            labelGap: 8,\n            textGap: 0,\n            borderRadius: shape.checkbox.sm.borderRadius,\n          },\n        };\n        return configs[size];\n      },\n      radio: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        const configs = {\n          xl: {\n            size: 24,\n            iconSize: 10,\n            fontSize: 20,\n            lineHeight: 22,\n            descriptionFontSize: 18,\n            descriptionLineHeight: 20,\n            labelGap: 12,\n            textGap: 4,\n            borderWidth: 1,\n          },\n          lg: {\n            size: 20,\n            iconSize: 8,\n            fontSize: 18,\n            lineHeight: 20,\n            descriptionFontSize: 16,\n            descriptionLineHeight: 18,\n            labelGap: 10,\n            textGap: 2,\n            borderWidth: 1,\n          },\n          md: {\n            size: 18,\n            iconSize: 8,\n            fontSize: 16,\n            lineHeight: 18,\n            descriptionFontSize: 14,\n            descriptionLineHeight: 16,\n            labelGap: 8,\n            textGap: 2,\n            borderWidth: 1,\n          },\n          sm: {\n            size: 16,\n            iconSize: 6,\n            fontSize: 14,\n            lineHeight: 16,\n            descriptionFontSize: 12,\n            descriptionLineHeight: 14,\n            labelGap: 6,\n            textGap: 0,\n            borderWidth: 1,\n          },\n        };\n        return configs[size];\n      },\n      input: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            height: 64,\n            paddingVertical: 12,\n            paddingHorizontal: 12,\n            fontSize: 20,\n            iconSize: 18,\n            radius: shape.input.xl.borderRadius,\n            borderWidth: 2,\n            fieldGap: 8,\n            lineHeight: 20,\n          },\n          lg: {\n            height: 56,\n            paddingVertical: 14,\n            paddingHorizontal: 12,\n            fontSize: 18,\n            iconSize: 18,\n            radius: shape.input.lg.borderRadius,\n            borderWidth: 2,\n            fieldGap: 6,\n            lineHeight: 18,\n          },\n          md: {\n            height: 48,\n            paddingVertical: 11,\n            paddingHorizontal: 12,\n            fontSize: 16,\n            iconSize: 18,\n            radius: shape.input.md.borderRadius,\n            borderWidth: 1,\n            fieldGap: 4,\n            lineHeight: 16,\n          },\n          sm: {\n            height: 40,\n            paddingVertical: 7,\n            paddingHorizontal: 10,\n            fontSize: 14,\n            iconSize: 18,\n            radius: shape.input.sm.borderRadius,\n            borderWidth: 1,\n            fieldGap: 4,\n            lineHeight: 14,\n          },\n          xs: {\n            height: 32,\n            paddingVertical: 7,\n            paddingHorizontal: 10,\n            fontSize: 12,\n            iconSize: 18,\n            radius: shape.input.xs.borderRadius,\n            borderWidth: 1,\n            fieldGap: 4,\n            lineHeight: 10,\n          },\n        };\n        return configs[size];\n      },\n      imageUploader: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            box: 200,\n            padding: 14,\n            gap: 10,\n            iconSize: 32,\n            spinnerSize: \"lg\" as const,\n            labelFontSize: 20,\n            labelLineHeight: 22,\n            descriptionFontSize: 20,\n            descriptionLineHeight: 22,\n            errorFontSize: 16,\n            errorLineHeight: 18,\n            errorGap: 8,\n            radius: shape.input.xl.borderRadius,\n            borderWidth: 1,\n          },\n          lg: {\n            box: 168,\n            padding: 14,\n            gap: 10,\n            iconSize: 24,\n            spinnerSize: \"lg\" as const,\n            labelFontSize: 18,\n            labelLineHeight: 24,\n            descriptionFontSize: 18,\n            descriptionLineHeight: 20,\n            errorFontSize: 16,\n            errorLineHeight: 18,\n            errorGap: 8,\n            radius: shape.input.lg.borderRadius,\n            borderWidth: 1,\n          },\n          md: {\n            box: 136,\n            padding: 12,\n            gap: 8,\n            iconSize: 24,\n            spinnerSize: \"md\" as const,\n            labelFontSize: 16,\n            labelLineHeight: 20,\n            descriptionFontSize: 16,\n            descriptionLineHeight: 20,\n            errorFontSize: 14,\n            errorLineHeight: 16,\n            errorGap: 6,\n            radius: shape.input.md.borderRadius,\n            borderWidth: 1,\n          },\n          sm: {\n            box: 104,\n            padding: 10,\n            gap: 6,\n            iconSize: 18,\n            spinnerSize: \"sm\" as const,\n            labelFontSize: 14,\n            labelLineHeight: 18,\n            descriptionFontSize: 14,\n            descriptionLineHeight: 18,\n            errorFontSize: 12,\n            errorLineHeight: 14,\n            errorGap: 6,\n            radius: shape.input.sm.borderRadius,\n            borderWidth: 1,\n          },\n          xs: {\n            box: 72,\n            padding: 8,\n            gap: 4,\n            iconSize: 18,\n            spinnerSize: \"sm\" as const,\n            labelFontSize: 12,\n            labelLineHeight: 16,\n            descriptionFontSize: 12,\n            descriptionLineHeight: 16,\n            errorFontSize: 11,\n            errorLineHeight: 13,\n            errorGap: 4,\n            radius: shape.input.xs.borderRadius,\n            borderWidth: 1,\n          },\n        };\n        return configs[size];\n      },\n      dragDropUploader: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const base = {\n          width: 360,\n          rootGap: 12,\n          radius: 4,\n          borderWidth: 1,\n          textGap: 6,\n          titleFontSize: 14,\n          titleLineHeight: 18,\n          descriptionFontSize: 14,\n          descriptionLineHeight: 18,\n          errorFontSize: 12,\n          errorLineHeight: 16,\n          listGap: 6,\n          itemGap: 8,\n          itemPaddingVertical: 8,\n          itemPaddingLeft: 8,\n          itemPaddingRight: 12,\n          itemIconWrapperSize: 32,\n          itemIconSize: 20,\n          itemTitleFontSize: 14,\n          itemTitleLineHeight: 16,\n          itemDescriptionFontSize: 14,\n          itemDescriptionLineHeight: 18,\n          removeIconSize: 18,\n        };\n        const configs = {\n          xl: {\n            ...base,\n            areaHeight: 240,\n            areaPadding: 20,\n            areaGap: 16,\n            iconSize: 32,\n          },\n          lg: {\n            ...base,\n            areaHeight: 200,\n            areaPadding: 20,\n            areaGap: 16,\n            iconSize: 24,\n          },\n          md: {\n            ...base,\n            areaHeight: 160,\n            areaPadding: 20,\n            areaGap: 16,\n            iconSize: 24,\n          },\n          sm: {\n            ...base,\n            areaHeight: 128,\n            areaPadding: 20,\n            areaGap: 16,\n            iconSize: 24,\n          },\n          xs: {\n            ...base,\n            width: 320,\n            rootGap: 8,\n            areaHeight: 104,\n            areaPadding: 16,\n            areaGap: 8,\n            textGap: 4,\n            iconSize: 16,\n            titleFontSize: 12,\n            titleLineHeight: 16,\n            descriptionFontSize: 12,\n            descriptionLineHeight: 16,\n            listGap: 4,\n            itemGap: 4,\n            itemPaddingVertical: 4,\n            itemPaddingLeft: 4,\n            itemIconWrapperSize: 24,\n            itemIconSize: 16,\n            itemTitleFontSize: 12,\n            itemTitleLineHeight: 14,\n            itemDescriptionFontSize: 12,\n            itemDescriptionLineHeight: 16,\n            removeIconSize: 14,\n          },\n        };\n        return configs[size];\n      },\n      inputPin: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            size: 64,\n            gap: 10,\n            fontSize: 20,\n            radius: shape.input.xl.borderRadius,\n            borderWidth: 1,\n            fieldGap: 8,\n          },\n          lg: {\n            size: 56,\n            gap: 8,\n            fontSize: 18,\n            radius: shape.input.lg.borderRadius,\n            borderWidth: 1,\n            fieldGap: 6,\n          },\n          md: {\n            size: 48,\n            gap: 6,\n            fontSize: 16,\n            radius: shape.input.md.borderRadius,\n            borderWidth: 1,\n            fieldGap: 4,\n          },\n          sm: {\n            size: 40,\n            gap: 4,\n            fontSize: 14,\n            radius: shape.input.sm.borderRadius,\n            borderWidth: 1,\n            fieldGap: 4,\n          },\n          xs: {\n            size: 32,\n            gap: 4,\n            fontSize: 12,\n            radius: shape.input.xs.borderRadius,\n            borderWidth: 1,\n            fieldGap: 4,\n          },\n        };\n        return configs[size];\n      },\n      textarea: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            height: 144,\n            padding: spacing.xl,\n            fontSize: 20,\n            iconSize: 32,\n            radius: shape.input.xl.borderRadius,\n          },\n          lg: {\n            height: 128,\n            padding: spacing.l,\n            fontSize: 18,\n            iconSize: 28,\n            radius: shape.input.lg.borderRadius,\n          },\n          md: {\n            height: 112,\n            padding: spacing.m,\n            fontSize: 16,\n            iconSize: 24,\n            radius: shape.input.md.borderRadius,\n          },\n          sm: {\n            height: 96,\n            padding: spacing.s,\n            fontSize: 14,\n            iconSize: 20,\n            radius: shape.input.sm.borderRadius,\n          },\n          xs: {\n            height: 80,\n            padding: spacing.xs,\n            fontSize: 12,\n            iconSize: 16,\n            radius: shape.input.xs.borderRadius,\n          },\n        };\n        return configs[size];\n      },\n      switch: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        const configs = {\n          xl: {\n            width: 40,\n            height: 22,\n            knobSize: 18,\n            fontSize: 20,\n            lineHeight: 22,\n            descriptionFontSize: 18,\n            descriptionLineHeight: 20,\n            labelGap: 12,\n            textGap: 4,\n            frameBorderRadius: shape.switch.xl.borderRadius,\n            knobBorderRadius: shape.knob.xl.borderRadius,\n          },\n          lg: {\n            width: 36,\n            height: 20,\n            knobSize: 16,\n            fontSize: 18,\n            lineHeight: 20,\n            descriptionFontSize: 16,\n            descriptionLineHeight: 18,\n            labelGap: 10,\n            textGap: 2,\n            frameBorderRadius: shape.switch.lg.borderRadius,\n            knobBorderRadius: shape.knob.lg.borderRadius,\n          },\n          md: {\n            width: 32,\n            height: 18,\n            knobSize: 14,\n            fontSize: 16,\n            lineHeight: 18,\n            descriptionFontSize: 14,\n            descriptionLineHeight: 16,\n            labelGap: 8,\n            textGap: 2,\n            frameBorderRadius: shape.switch.md.borderRadius,\n            knobBorderRadius: shape.knob.md.borderRadius,\n          },\n          sm: {\n            width: 28,\n            height: 16,\n            knobSize: 12,\n            fontSize: 14,\n            lineHeight: 16,\n            descriptionFontSize: 12,\n            descriptionLineHeight: 14,\n            labelGap: 8,\n            textGap: 0,\n            frameBorderRadius: shape.switch.sm.borderRadius,\n            knobBorderRadius: shape.knob.sm.borderRadius,\n          },\n        };\n        return configs[size];\n      },\n      avatar: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\" | \"xxs\") => {\n        // Badge offsets adjusted for XL badge size (20px)\n        const configs = {\n          xl: {\n            size: 64,\n            fontSize: 20,\n            iconSize: 32,\n            badgeSize: 20,\n            badgeOffsetCircle: { right: -4, top: -4 },\n            badgeOffsetSquare: { right: -8, top: -8 },\n            borderRadiusSquare: shape.avatar.xl.borderRadius,\n            borderRadiusCircle: radiusScale[\"999\"],\n          },\n          lg: {\n            size: 56,\n            fontSize: 20,\n            iconSize: 28,\n            badgeSize: 20,\n            badgeOffsetCircle: { right: -4, top: -4 },\n            badgeOffsetSquare: { right: -8, top: -8 },\n            borderRadiusSquare: shape.avatar.lg.borderRadius,\n            borderRadiusCircle: radiusScale[\"999\"],\n          },\n          md: {\n            size: 48,\n            fontSize: 18,\n            iconSize: 24,\n            badgeSize: 20,\n            badgeOffsetCircle: { right: -5, top: -5 },\n            badgeOffsetSquare: { right: -8, top: -8 },\n            borderRadiusSquare: shape.avatar.md.borderRadius,\n            borderRadiusCircle: radiusScale[\"999\"],\n          },\n          sm: {\n            size: 40,\n            fontSize: 16,\n            iconSize: 20,\n            badgeSize: 20,\n            badgeOffsetCircle: { right: -6, top: -6 },\n            badgeOffsetSquare: { right: -8, top: -8 },\n            borderRadiusSquare: shape.avatar.sm.borderRadius,\n            borderRadiusCircle: radiusScale[\"999\"],\n          },\n          xs: {\n            size: 32,\n            fontSize: 12,\n            iconSize: 16,\n            badgeSize: 8,\n            badgeOffsetCircle: { right: -1, top: -1 },\n            badgeOffsetSquare: { right: -3, top: -3 },\n            borderRadiusSquare: shape.avatar.xs.borderRadius,\n            borderRadiusCircle: radiusScale[\"999\"],\n          },\n          xxs: {\n            size: 24,\n            fontSize: 10,\n            iconSize: 12,\n            badgeSize: 6,\n            badgeOffsetCircle: { right: -1, top: -1 },\n            badgeOffsetSquare: { right: -2, top: -2 },\n            borderRadiusSquare: shape.avatar.xxs.borderRadius,\n            borderRadiusCircle: radiusScale[\"999\"],\n          },\n        };\n        return configs[size];\n      },\n      tag: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            height: 48,\n            padding: 13,\n            fontSize: 20,\n            lineHeight: 22,\n            gap: 6,\n            iconSize: 22,\n            radius: shape.tag.xl.borderRadius,\n            borderWidth: 1,\n          },\n          lg: {\n            height: 40,\n            padding: 10,\n            fontSize: 18,\n            lineHeight: 20,\n            gap: 6,\n            iconSize: 20,\n            radius: shape.tag.lg.borderRadius,\n            borderWidth: 1,\n          },\n          md: {\n            height: 32,\n            padding: 7,\n            fontSize: 16,\n            lineHeight: 18,\n            gap: 4,\n            iconSize: 18,\n            radius: shape.tag.md.borderRadius,\n            borderWidth: 1,\n          },\n          sm: {\n            height: 24,\n            padding: 4,\n            fontSize: 14,\n            lineHeight: 16,\n            gap: 4,\n            iconSize: 16,\n            radius: shape.tag.sm.borderRadius,\n            borderWidth: 1,\n          },\n          xs: {\n            height: 20,\n            padding: 3,\n            fontSize: 12,\n            lineHeight: 14,\n            gap: 4,\n            iconSize: 14,\n            radius: shape.tag.xs.borderRadius,\n            borderWidth: 1,\n          },\n        };\n        return configs[size];\n      },\n      divider: (size: \"lg\" | \"md\" | \"sm\") => {\n        const configs = {\n          lg: { height: 18, fontSize: 16, lineWeight: 1 },\n          md: { height: 16, fontSize: 14, lineWeight: 1 },\n          sm: { height: 14, fontSize: 12, lineWeight: 1 },\n        };\n        return configs[size];\n      },\n      spinner: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: { size: 96, strokeWidth: 10 },\n          lg: { size: 48, strokeWidth: 5 },\n          md: { size: 24, strokeWidth: 2 },\n          sm: { size: 16, strokeWidth: 2 },\n          xs: { size: 8, strokeWidth: 1 },\n        };\n        return configs[size];\n      },\n      tabs: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        const configs = {\n          xl: {\n            height: 64,\n            fontSize: 20,\n            lineHeight: 22,\n            iconSize: 24,\n            gap: 10,\n            paddingHorizontal: 20,\n          },\n          lg: {\n            height: 56,\n            fontSize: 18,\n            lineHeight: 20,\n            iconSize: 20,\n            gap: 8,\n            paddingHorizontal: 20,\n          },\n          md: {\n            height: 48,\n            fontSize: 16,\n            lineHeight: 18,\n            iconSize: 18,\n            gap: 6,\n            paddingHorizontal: 20,\n          },\n          sm: {\n            height: 40,\n            fontSize: 14,\n            lineHeight: 16,\n            iconSize: 16,\n            gap: 4,\n            paddingHorizontal: 20,\n          },\n        };\n        return configs[size];\n      },\n      segmented: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        // Sizing based on Figma: node-id=5867-44879\n        const configs = {\n          xl: {\n            height: 64,\n            containerPadding: 4,\n            containerRadius: shape.segmented.xl.borderRadius,\n            itemHeight: 56,\n            itemPaddingHorizontal: 20,\n            itemPaddingVertical: 10,\n            itemRadius: shape.segmentedItem.xl.borderRadius,\n            fontSize: 20,\n            lineHeight: 22,\n            iconSize: 24,\n            gap: 8,\n          },\n          lg: {\n            height: 56,\n            containerPadding: 4,\n            containerRadius: shape.segmented.lg.borderRadius,\n            itemHeight: 48,\n            itemPaddingHorizontal: 20,\n            itemPaddingVertical: 10,\n            itemRadius: shape.segmentedItem.lg.borderRadius,\n            fontSize: 18,\n            lineHeight: 20,\n            iconSize: 24,\n            gap: 8,\n          },\n          md: {\n            height: 48,\n            containerPadding: 4,\n            containerRadius: shape.segmented.md.borderRadius,\n            itemHeight: 40,\n            itemPaddingHorizontal: 16,\n            itemPaddingVertical: 8,\n            itemRadius: shape.segmentedItem.md.borderRadius,\n            fontSize: 16,\n            lineHeight: 18,\n            iconSize: 24,\n            gap: 6,\n          },\n          sm: {\n            height: 40,\n            containerPadding: 4,\n            containerRadius: shape.segmented.sm.borderRadius,\n            itemHeight: 32,\n            itemPaddingHorizontal: 12,\n            itemPaddingVertical: 6,\n            itemRadius: shape.segmentedItem.sm.borderRadius,\n            fontSize: 14,\n            lineHeight: 16,\n            iconSize: 20,\n            gap: 4,\n          },\n        };\n        return configs[size];\n      },\n      tabsSegmented: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        // Sizing based on Figma: node-id=5986-3922\n        const configs = {\n          xl: {\n            height: 64,\n            containerPadding: 4,\n            itemPaddingHorizontal: 16,\n            itemPaddingVertical: 18,\n            fontSize: 20,\n            lineHeight: 22,\n            iconSize: 24,\n            gap: 8,\n          },\n          lg: {\n            height: 56,\n            containerPadding: 4,\n            itemPaddingHorizontal: 16,\n            itemPaddingVertical: 14,\n            fontSize: 18,\n            lineHeight: 20,\n            iconSize: 24,\n            gap: 8,\n          },\n          md: {\n            height: 48,\n            containerPadding: 4,\n            itemPaddingHorizontal: 12,\n            itemPaddingVertical: 11,\n            fontSize: 16,\n            lineHeight: 18,\n            iconSize: 24,\n            gap: 6,\n          },\n          sm: {\n            height: 40,\n            containerPadding: 3,\n            itemPaddingHorizontal: 12,\n            itemPaddingVertical: 8,\n            fontSize: 14,\n            lineHeight: 16,\n            iconSize: 20,\n            gap: 6,\n          },\n        };\n        return configs[size];\n      },\n      checkboxTagGroup: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        const configs = {\n          xl: {\n            height: 64,\n            paddingHorizontal: 16,\n            paddingVertical: 21,\n            fontSize: 20,\n            lineHeight: 22,\n            gap: 8,\n            borderRadius: radiusScale[\"50\"],\n          },\n          lg: {\n            height: 56,\n            paddingHorizontal: 16,\n            paddingVertical: 18,\n            fontSize: 18,\n            lineHeight: 20,\n            gap: 8,\n            borderRadius: radiusScale[\"50\"],\n          },\n          md: {\n            height: 48,\n            paddingHorizontal: 12,\n            paddingVertical: 15,\n            fontSize: 16,\n            lineHeight: 18,\n            gap: 8,\n            borderRadius: radiusScale[\"25\"],\n          },\n          sm: {\n            height: 40,\n            paddingHorizontal: 12,\n            paddingVertical: 11,\n            fontSize: 14,\n            lineHeight: 16,\n            gap: 4,\n            borderRadius: radiusScale[\"25\"],\n          },\n        };\n        return configs[size];\n      },\n      badge: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: {\n            size: 20,\n            fontSize: 12,\n            lineHeight: 14,\n            iconSize: 12,\n            padding: 6,\n          },\n          lg: {\n            size: 16,\n            fontSize: 10,\n            lineHeight: 10,\n            iconSize: 10,\n            padding: 4,\n          },\n          md: {\n            size: 12,\n            fontSize: 10,\n            lineHeight: 10,\n            iconSize: 8,\n            padding: 3,\n          },\n          sm: { size: 8, fontSize: 8, lineHeight: 8, iconSize: 6, padding: 0 },\n          xs: { size: 4, fontSize: 4, lineHeight: 4, iconSize: 4, padding: 0 },\n        };\n        return configs[size];\n      },\n      notification: (type: \"toast\" | \"inline\") => {\n        const configs = {\n          toast: {\n            width: 400,\n            paddingHorizontal: 20,\n            paddingVertical: 16,\n            gap: 16,\n            titleSize: 18,\n            messageSize: 14,\n            iconSize: 20,\n            iconWrapperSize: 32,\n            radius: shape.toast.borderRadius,\n          },\n          inline: {\n            width: \"100%\",\n            paddingHorizontal: 20,\n            paddingVertical: 16,\n            gap: 28,\n            titleSize: 18,\n            messageSize: 14,\n            iconSize: 20,\n            iconWrapperSize: 32,\n            radius: shape.modal.borderRadius,\n          },\n        };\n        return configs[type];\n      },\n      notificationPanel: () => ({\n        minHeight: 66,\n        iconFrameWidth: 54,\n        iconSize: 24,\n        borderRadius: radiusScale[\"100\"],\n        bodyPaddingHorizontal: 16,\n        bodyPaddingVertical: 12,\n        textGap: 2,\n        contentGap: 24,\n        buttonsGap: 8,\n        closeButtonSize: 32,\n        titleFontSize: 16,\n        titleLineHeight: 20,\n        descriptionFontSize: 14,\n        descriptionLineHeight: 20,\n      }),\n      progress: (\n        size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\" | \"xxs\" | \"l\" | \"m\" | \"s\"\n      ) => {\n        const configs = {\n          xl: { height: 10, labelSize: 16, helperSize: 14, gap: 10 },\n          lg: { height: 8, labelSize: 14, helperSize: 12, gap: 8 },\n          md: { height: 6, labelSize: 12, helperSize: 12, gap: 6 },\n          sm: { height: 4, labelSize: 12, helperSize: 12, gap: 4 },\n          xs: { height: 2, labelSize: 10, helperSize: 10, gap: 2 },\n          xxs: { height: 2, labelSize: 10, helperSize: 10, gap: 2 },\n          l: { height: 8, labelSize: 16, helperSize: 14, gap: 10 },\n          m: { height: 6, labelSize: 14, helperSize: 12, gap: 8 },\n          s: { height: 4, labelSize: 12, helperSize: 12, gap: 6 },\n        };\n        return configs[size];\n      },\n      supportingText: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        const configs = {\n          xl: { fontSize: 18, lineHeight: \"20px\", gap: 6, iconSize: 18 },\n          lg: { fontSize: 16, lineHeight: \"18px\", gap: 6, iconSize: 18 },\n          md: { fontSize: 14, lineHeight: \"16px\", gap: 6, iconSize: 18 },\n          sm: { fontSize: 12, lineHeight: \"14px\", gap: 4, iconSize: 16 },\n          xs: { fontSize: 10, lineHeight: \"10px\", gap: 4, iconSize: 16 },\n        };\n        return configs[size];\n      },\n      iconWrapper: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\" | \"xxs\") => {\n        const configs = {\n          xl: { size: 56, iconSize: 32, fontSize: 24 },\n          lg: { size: 48, iconSize: 28, fontSize: 20 },\n          md: { size: 40, iconSize: 24, fontSize: 18 },\n          sm: { size: 32, iconSize: 20, fontSize: 16 },\n          xs: { size: 24, iconSize: 16, fontSize: 14 },\n          xxs: { size: 18, iconSize: 12, fontSize: 12 },\n        };\n        return configs[size];\n      },\n      stepper: (size: \"md\" | \"sm\") => {\n        const configs = {\n          md: {\n            iconSize: 32,\n            titleSize: 16,\n            descSize: 14,\n            gap: 12,\n            currentTitleSize: 20,\n            currentDescSize: 14,\n            currentPadding: 24,\n            tailSize: 5,\n          },\n          sm: {\n            iconSize: 24,\n            titleSize: 14,\n            descSize: 12,\n            gap: 8,\n            currentTitleSize: 16,\n            currentDescSize: 12,\n            currentPadding: 20,\n            tailSize: 3,\n          },\n        };\n        return configs[size];\n      },\n      contextMenu: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n        // Sizing values from Figma design: node-id=5867-47111\n        const configs = {\n          xl: {\n            paddingVertical: 0,\n            itemPaddingHorizontal: 16,\n            itemPaddingVertical: 18,\n            fontSize: 20,\n            lineHeight: 26,\n            descriptionFontSize: 18,\n            iconSize: 18,\n            gap: 12,\n            minWidth: 276,\n            panelWidth: 320,\n            statusDotSize: 12,\n            iconWrapperSize: 40,\n            triggerOffset: 4,\n            borderRadius: 8,\n            // Search sizing from Figma\n            searchPaddingHorizontal: 16,\n            searchPaddingVertical: 18,\n            searchGap: 18,\n            searchFontSize: 20,\n            searchLineHeight: 26,\n            searchIconSize: 18,\n          },\n          lg: {\n            paddingVertical: 0,\n            itemPaddingHorizontal: 14,\n            itemPaddingVertical: 14,\n            fontSize: 18,\n            lineHeight: 24,\n            descriptionFontSize: 16,\n            iconSize: 18,\n            gap: 10,\n            minWidth: 220,\n            panelWidth: 296,\n            statusDotSize: 10,\n            iconWrapperSize: 36,\n            triggerOffset: 4,\n            borderRadius: 8,\n            // Search sizing from Figma\n            searchPaddingHorizontal: 14,\n            searchPaddingVertical: 14,\n            searchGap: 14,\n            searchFontSize: 18,\n            searchLineHeight: 24,\n            searchIconSize: 18,\n          },\n          md: {\n            paddingVertical: 0,\n            itemPaddingHorizontal: 12,\n            itemPaddingVertical: 11,\n            fontSize: 16,\n            lineHeight: 20,\n            descriptionFontSize: 14,\n            iconSize: 18,\n            gap: 8,\n            minWidth: 172,\n            panelWidth: 272,\n            statusDotSize: 8,\n            iconWrapperSize: 32,\n            triggerOffset: 4,\n            borderRadius: 8,\n            // Search sizing from Figma\n            searchPaddingHorizontal: 12,\n            searchPaddingVertical: 11,\n            searchGap: 10,\n            searchFontSize: 16,\n            searchLineHeight: 20,\n            searchIconSize: 18,\n          },\n          sm: {\n            paddingVertical: 0,\n            itemPaddingHorizontal: 10,\n            itemPaddingVertical: 8,\n            fontSize: 14,\n            lineHeight: 18,\n            descriptionFontSize: 12,\n            iconSize: 18,\n            gap: 8,\n            minWidth: 132,\n            panelWidth: 248,\n            statusDotSize: 6,\n            iconWrapperSize: 24,\n            triggerOffset: 4,\n            borderRadius: 4,\n            // Search sizing from Figma\n            searchPaddingHorizontal: 10,\n            searchPaddingVertical: 7,\n            searchGap: 6,\n            searchFontSize: 14,\n            searchLineHeight: 18,\n            searchIconSize: 18,\n          },\n        };\n        return configs[size];\n      },\n      modal: () => {\n        // Sizing values from Figma design: node-id=6910-5615\n        return {\n          borderRadius: shape.modal.borderRadius,\n          headerPadding: \"24px 24px 0\",\n          contentPadding: 24,\n          /** @deprecated Header buttons no longer use IconButton sizes. */\n          headerButtonSize: \"xs\" as const,\n          headerIconSize: 28,\n          headerButtonPadding: 4,\n          headerButtonRadius: 4,\n          headerMinHeight: 44,\n          headerGap: 16,\n          footerGap: 16,\n          /** @deprecated Modal elevation comes from the scrim, not a drop shadow. */\n          shadow:\n            \"0px 8px 12px 6px rgba(7, 7, 8, 0.1), 0px 4px 4px rgba(7, 7, 8, 0.2)\",\n          maxWidth: 680,\n          overlayColor: \"rgba(0, 0, 0, 0.75)\",\n          portalPadding: 20,\n          zIndex: 1000,\n        };\n      },\n      drawer: () => ({\n        // Sizing values from Figma design: B2B Components Library node-id=8291-103845\n        widthSm: 480,\n        widthMd: 620,\n        widthLg: 1056,\n        headerHeight: 80,\n        headerPaddingX: 32,\n        headerPaddingY: 24,\n        headerGap: 24,\n        titleFontSize: 18,\n        titleLineHeight: 24,\n        contentPaddingX: 32,\n        footerPadding: 32,\n        outerPadding: 8,\n        containerRadius: 4,\n        contentRadius: 8,\n        stepperPadding: 16,\n        stepperRadius: 8,\n        stepperContentGap: 8,\n        scrimColor: \"rgba(0, 0, 0, 0.75)\",\n        animationDuration: 300,\n        zIndex: 1000,\n      }),\n      sidebar: () => ({\n        // Sizing values from Figma design: B2B Components Library\n        widthExpanded: 280,\n        widthCollapsed: 48,\n        radius: 4,\n        itemHeight: 32,\n        iconSize: 18,\n        padding: 8,\n        sectionLabelHeight: 20,\n        // Aligns nested item text with parent label (padding 8 + icon 18 + gap 8 = 34)\n        // and centers the rail under the parent icon (padding 8 + iconSize/2 = 17).\n        nestedItemPaddingLeft: 34,\n        nestedItemRailLeft: 17,\n        chevronSize: 14,\n        externalIconSize: 18,\n        chatBadgeSize: 6,\n        itemBadgeSize: 4,\n        focusOutlineWidth: 2,\n        scrollbarWidth: 4,\n        popoverGap: 12,\n        popoverViewportPadding: 8,\n        popoverMinWidth: 180,\n        popoverMaxWidth: 240,\n        popoverShadow: \"0 2px 25px rgba(7, 7, 8, 0.15)\",\n        popoverZIndex: 1000,\n        transitionWidth: \"0.25s ease-in-out\",\n        transitionFadeIn: \"opacity 0.15s ease-in-out 0.1s\",\n        transitionFadeOut: \"opacity 0.1s ease-in-out\",\n        transitionItem:\n          \"background-color 0.15s ease-in-out, color 0.15s ease-in-out\",\n        transitionRows: \"grid-template-rows 0.25s ease-in-out\",\n      }),\n      stepperB2b: () => ({\n        // Sizing values from Figma design: B2B Components Library\n        // variant grid node-id=10999-17988, state grid node-id=10259-5501\n        chipSize: 32,\n        chipRadius: 2,\n        chipPaddingTop: 5,\n        chipPaddingBottom: 4,\n        chipPaddingX: 4,\n        chipIconSize: 16,\n        numberFontSize: 18,\n        numberLineHeight: 24,\n        titleFontSize: 16,\n        titleLineHeight: 20,\n        descriptionFontSize: 14,\n        descriptionLineHeight: 20,\n        captionFontSize: 12,\n        captionLineHeight: 16,\n        itemGap: 12,\n        contentGap: 4,\n        contentMinHeight: 32,\n        contentWidth: 128,\n        activeCardRadiusVertical: 4,\n        activeCardRadiusHorizontal: 6,\n        activeCardPaddingTop: 24,\n        activeCardPaddingX: 24,\n        activeCardPaddingYHorizontal: 12,\n        activeCardPaddingLeftHorizontal: 12,\n        activeCardGapHorizontal: 8,\n        innerConnectorLength: 48,\n        connectorSegment: 24,\n        connectorCellHeight: 24,\n        connectorCellWidth: 80,\n        surfaceRadius: 8,\n        surfacePaddingVertical: 16,\n        surfacePaddingHorizontal: 8,\n        horizontalItemGap: 16,\n        horizontalFirstItemWidth: 220,\n        horizontalItemWidth: 236,\n        horizontalConnectorSegment: 32,\n        horizontalConnectorGap: 12,\n        simpleCardPadding: 12,\n        simpleCardRadius: 4,\n        simpleCardGap: 4,\n        simpleItemGap: 4,\n        simpleHorizontalCellWidth: 56,\n        simpleHorizontalStubLength: 8,\n      }),\n      collapsibleB2b: () => ({\n        // Sizing values from Figma design: B2B Components Library node-id=10469-6509\n        triggerPadding: 16,\n        triggerGap: 12,\n        triggerMinHeight: 56,\n        surfaceRadius: radiusScale[\"50\"],\n        cellRadius: radiusScale[\"100\"],\n        iconSlotSize: 32,\n        iconSlotRadius: radiusScale[\"50\"],\n        chevronSize: 24,\n        trailingGap: 8,\n        textGap: 2,\n        titleFontSize: 16,\n        titleLineHeight: 20,\n        captionFontSize: 12,\n        captionLineHeight: 18,\n        panelPadding: 16,\n        accordionItemGap: 8,\n      }),\n      toast: () => {\n        // Sizing values from Figma design: node-id=3044-8872\n        return {\n          minHeight: 64,\n          paddingHorizontal: 12,\n          paddingVertical: 8,\n          borderRadius: shape.toast.borderRadius,\n          gap: 12,\n          iconSize: 24,\n          closeButtonSize: 24,\n          closeIconSize: 20,\n          fontSize: 16,\n          lineHeight: 20,\n          maxWidth: 400,\n          containerPadding: 12,\n          groupGap: 4,\n        };\n      },\n      toggleButtonGroup: (size: \"xl\" | \"lg\" | \"md\" | \"sm\" | \"xs\") => {\n        // Sizing values from Figma design: node-id=6409-34323\n        const configs = {\n          xl: {\n            height: 64,\n            paddingHorizontal: 21,\n            fontSize: 20,\n            lineHeight: 22,\n            iconSize: 22,\n            gap: 6,\n            borderRadius: shape.toggleButtonGroup.xl.borderRadius,\n            itemGap: 8,\n          },\n          lg: {\n            height: 56,\n            paddingHorizontal: 18,\n            fontSize: 18,\n            lineHeight: 20,\n            iconSize: 20,\n            gap: 4,\n            borderRadius: shape.toggleButtonGroup.lg.borderRadius,\n            itemGap: 8,\n          },\n          md: {\n            height: 48,\n            paddingHorizontal: 15,\n            fontSize: 16,\n            lineHeight: 18,\n            iconSize: 18,\n            gap: 4,\n            borderRadius: shape.toggleButtonGroup.md.borderRadius,\n            itemGap: 6,\n          },\n          sm: {\n            height: 40,\n            paddingHorizontal: 12,\n            fontSize: 14,\n            lineHeight: 16,\n            iconSize: 16,\n            gap: 4,\n            borderRadius: shape.toggleButtonGroup.sm.borderRadius,\n            itemGap: 4,\n          },\n          xs: {\n            height: 32,\n            paddingHorizontal: 9,\n            fontSize: 12,\n            lineHeight: 14,\n            iconSize: 14,\n            gap: 4,\n            borderRadius: shape.toggleButtonGroup.xs.borderRadius,\n            itemGap: 4,\n          },\n        };\n        return configs[size];\n      },\n      table: {\n        containerRadius: 8,\n        containerPaddingVertical: 0,\n        containerGap: 0,\n        captionFontSize: 14,\n        captionLineHeight: 20,\n        headerRowHeight: 56,\n        headerRowPaddingHorizontal: 24,\n        headerCellGap: 4,\n        headerCellFontSize: 14,\n        headerCellLineHeight: 18,\n        rowHeight: 56,\n        rowPaddingHorizontal: 24,\n        cellGap: 16,\n        cellFontSize: 14,\n        cellLineHeight: 18,\n        paginationGap: 16,\n        paginationPaddingHorizontal: 24,\n      },\n    },\n  };\n};\n\n/**\n * The fully-resolved theme object returned by {@link themeConfig} and exposed to\n * components via `useDesignSystem().theme` and `useResolvedTheme().theme`.\n *\n * This is the single canonical theme type. Import it when building custom\n * components that need to receive, store, or pass the theme around:\n *\n * ```tsx\n * import { useResolvedTheme, type Theme } from \"@xsolla/xui-core\";\n *\n * const surface = (theme: Theme) => theme.colors.background.secondary;\n * ```\n */\nexport type Theme = ReturnType<typeof themeConfig>;\n\n/** Resolved color tokens for the active theme mode (`theme.colors`). */\nexport type ThemeColorScheme = Theme[\"colors\"];\n\n/** Spacing scale — `xs`…`xl` (`theme.spacing`). */\nexport type ThemeSpacing = Theme[\"spacing\"];\n\n/** Semantic shape tokens: border-radius + border-width (`theme.shape`). */\nexport type ThemeShape = Theme[\"shape\"];\n\n/** Elevation / shadow tokens (`theme.shadow`). */\nexport type ThemeShadow = Theme[\"shadow\"];\n\n/** Resolved font families for the active product context (`theme.fonts`). */\nexport type ThemeFonts = Theme[\"fonts\"];\n\n/** Typography role families — `primary` / `heading` / `body` (`theme.typography`). */\nexport type ThemeTypographyRoles = Theme[\"typography\"];\n\n/** Per-component sizing-config accessors (`theme.sizing`). */\nexport type ThemeSizing = Theme[\"sizing\"];\n\nexport interface DesignSystemContextType {\n  mode: ThemeMode;\n  setMode: (mode: ThemeMode) => void;\n  productContext: ProductContext;\n  setProductContext: (productContext: ProductContext) => void;\n  theme: Theme;\n  /** Whether the app uses responsive typography (CSS vars + @media). Defaults to true. */\n  responsive: boolean;\n}\n\nconst DesignSystemContext = createContext<DesignSystemContextType | undefined>(\n  undefined\n);\n\nexport const XUIProvider: React.FC<{\n  children: React.ReactNode;\n  initialMode?: ThemeMode;\n  initialProductContext?: ProductContext;\n  /** Use `initialProductContext` instead. */\n  productContext?: never;\n  /** Load toolkit fonts from the Xsolla CDN. Defaults to true on web, no-ops on native. */\n  loadFonts?: boolean;\n  /**\n   * Enable responsive typography via CSS custom properties and @media queries.\n   * When false, all components use fixed (common/desktop) values — suitable for\n   * apps that don't need mobile scaling. Defaults to true.\n   */\n  responsive?: boolean;\n}> = ({\n  children,\n  initialMode = \"dark\",\n  initialProductContext = defaultProductContext,\n  loadFonts = true,\n  responsive = true,\n}) => {\n  const [mode, setMode] = useState<ThemeMode>(initialMode);\n  const [productContext, setProductContext] = useState<ProductContext>(\n    initialProductContext\n  );\n\n  const value = useMemo(\n    () => ({\n      mode,\n      setMode,\n      productContext,\n      setProductContext,\n      theme: themeConfig(mode, productContext),\n      responsive,\n    }),\n    [mode, productContext, responsive]\n  );\n\n  return (\n    <DesignSystemContext.Provider value={value}>\n      {loadFonts && <FontLoader />}\n      {responsive && <TypographyStyleLoader />}\n      {children}\n    </DesignSystemContext.Provider>\n  );\n};\n\nexport const useDesignSystem = (): DesignSystemContextType => {\n  const context = useContext(DesignSystemContext);\n  if (!context) {\n    // Return default theme if provider is missing\n    return {\n      mode: \"dark\" as ThemeMode,\n      setMode: () => {},\n      productContext: defaultProductContext,\n      setProductContext: () => {},\n      theme: themeConfig(\"dark\", defaultProductContext),\n      responsive: true,\n    };\n  }\n  return context;\n};\n\nexport interface ThemeOverrideProps {\n  /** Override the global theme mode for this component */\n  themeMode?: ThemeMode;\n  /** Override the global product context (fonts/typography) for this component */\n  themeProductContext?: ProductContext;\n}\n\nexport const useResolvedTheme = (\n  overrides?: ThemeOverrideProps\n): DesignSystemContextType => {\n  const context = useDesignSystem();\n\n  const resolvedMode = overrides?.themeMode ?? context.mode;\n  const resolvedProductContext =\n    overrides?.themeProductContext ?? context.productContext;\n\n  const theme = useMemo(() => {\n    if (\n      resolvedMode === context.mode &&\n      resolvedProductContext === context.productContext\n    ) {\n      return context.theme;\n    }\n    return themeConfig(resolvedMode, resolvedProductContext);\n  }, [\n    resolvedMode,\n    resolvedProductContext,\n    context.mode,\n    context.productContext,\n    context.theme,\n  ]);\n\n  return {\n    ...context,\n    mode: resolvedMode,\n    productContext: resolvedProductContext,\n    theme,\n  };\n};\n\nlet idCounter = 0;\n\nconst hasReactUseId = typeof React.useId === \"function\";\n\nconst useIdFallback = (): string => {\n  const [id] = useState(() => `xui-${++idCounter}`);\n  return id;\n};\n\nexport const useId: () => string = hasReactUseId ? React.useId : useIdFallback;\n\n/**\n * Context for the current modal's ID.\n * Used by portal-based components (tooltips, dropdowns) to mark their content\n * as belonging to a modal, preventing click-outside from closing the modal.\n */\nexport const ModalIdContext = createContext<string | null>(null);\n\n/**\n * Returns the current modal's ID for use with portal content.\n * Apply as `data-modal-id={modalId}` to portal containers.\n * Returns null if not inside a modal.\n */\nexport const useModalId = (): string | null => useContext(ModalIdContext);\n\nexport * from \"./tokens/colors\";\nexport * from \"./tokens/spacing\";\nexport * from \"./tokens/shape\";\nexport * from \"./tokens/shadows\";\nexport * from \"./tokens/fonts\";\nexport * from \"./tokens/typography\";\nexport * from \"./tokens/breakpoints\";\nexport * from \"./tokens/responsive-typography\";\nexport * from \"./platform\";\nexport { FontLoader } from \"./fonts/FontLoader\";\nexport { fontFacesCSS } from \"./fonts/fontFaces\";\nexport { TypographyStyleLoader } from \"./styles/TypographyStyleLoader\";\nexport { generateTypographyCSS, cssVar } from \"./styles/typography-css\";\nexport type { ProductContext };\n","{\n  \"background\": {\n    \"primary\": \"#1b2628\",\n    \"secondary\": \"#141d1f\",\n    \"brand\": {\n      \"primary\": \"#55dcf6\",\n      \"secondary\": \"#135d6c\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#9580ff\",\n      \"secondary\": \"#301b98\"\n    },\n    \"inverse\": \"#ffffff\",\n    \"static\": {\n      \"dark\": \"#000000\",\n      \"light\": \"#ffffff\"\n    },\n    \"success\": {\n      \"primary\": \"#95ff80\",\n      \"secondary\": \"#1f301c\"\n    },\n    \"warning\": {\n      \"primary\": \"#ffc380\",\n      \"secondary\": \"#6c4313\"\n    },\n    \"alert\": {\n      \"primary\": \"#e84f30\",\n      \"secondary\": \"#6c2213\"\n    },\n    \"neutral\": {\n      \"primary\": \"#99aeb2\",\n      \"secondary\": \"#34474b\"\n    }\n  },\n  \"content\": {\n    \"primary\": \"#e8eced\",\n    \"secondary\": \"rgba(255, 255, 255, 0.72)\",\n    \"tertiary\": \"rgba(255, 255, 255, 0.5)\",\n    \"brand\": {\n      \"primary\": \"#31cae8\",\n      \"secondary\": \"#55dcf6\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#7055f6\",\n      \"secondary\": \"#9580ff\"\n    },\n    \"inverse\": \"#000000\",\n    \"static\": {\n      \"light\": \"#ffffff\",\n      \"dark\": \"#000000\"\n    },\n    \"success\": {\n      \"primary\": \"#70f655\",\n      \"secondary\": \"#3dc322\"\n    },\n    \"warning\": {\n      \"primary\": \"#f6ab55\",\n      \"secondary\": \"#c37822\"\n    },\n    \"alert\": {\n      \"primary\": \"#f67055\",\n      \"secondary\": \"#e84f30\"\n    },\n    \"neutral\": {\n      \"primary\": \"#99aeb2\",\n      \"secondary\": \"#4a6368\"\n    },\n    \"on\": {\n      \"brand\": \"#000000\",\n      \"brandExtra\": \"#ffffff\",\n      \"success\": \"#000000\",\n      \"warning\": \"#000000\",\n      \"alert\": \"#ffffff\",\n      \"neutral\": \"#000000\"\n    }\n  },\n  \"border\": {\n    \"primary\": \"#ffffff\",\n    \"secondary\": \"rgba(127, 169, 178, 0.3)\",\n    \"brand\": \"#31cae8\",\n    \"brandExtra\": \"#9580ff\",\n    \"inverse\": \"rgba(0, 0, 0, 0.14)\",\n    \"success\": \"#3dc322\",\n    \"warning\": \"#c37822\",\n    \"alert\": \"#c33d22\",\n    \"neutral\": \"#607f85\"\n  },\n  \"overlay\": {\n    \"mono\": \"rgba(178, 242, 255, 0.06)\",\n    \"brand\": \"rgba(128, 234, 255, 0.2)\",\n    \"brandExtra\": \"rgba(149, 128, 255, 0.3)\",\n    \"success\": \"rgba(149, 255, 128, 0.2)\",\n    \"warning\": \"rgba(255, 195, 128, 0.24)\",\n    \"alert\": \"rgba(255, 149, 128, 0.32)\",\n    \"neutral\": \"rgba(123, 152, 157, 0.28)\",\n    \"monoHover\": \"rgba(178, 242, 255, 0.12)\"\n  },\n  \"layer\": {\n    \"scrim\": \"rgba(0, 0, 0, 0.45)\",\n    \"float\": \"rgba(0, 0, 0, 0.75)\"\n  },\n  \"control\": {\n    \"brand\": {\n      \"primary\": {\n        \"bg\": \"#80eaff\",\n        \"bgHover\": \"#b2f2ff\",\n        \"bgPress\": \"#55dcf6\",\n        \"bgDisable\": \"rgba(52, 71, 75, 0.85)\",\n        \"border\": \"#31cae8\",\n        \"borderHover\": \"#55dcf6\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\",\n        \"borderDisable\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#135d6c\",\n        \"bgHover\": \"#1b8398\",\n        \"bgPress\": \"#0b3841\",\n        \"border\": \"#22a8c3\",\n        \"borderHover\": \"#22a8c3\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"#0b3841\",\n        \"bgPress\": \"#135d6c\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#80eaff\",\n        \"tertiary\": \"#80eaff\",\n        \"disable\": \"rgba(232, 236, 237, 0.2)\",\n        \"ghost\": \"#80eaff\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(128, 234, 255, 0.04)\",\n        \"bgPress\": \"rgba(128, 234, 255, 0.08)\",\n        \"border\": \"rgba(128, 234, 255, 0.16)\",\n        \"borderHover\": \"rgba(128, 234, 255, 0.24)\",\n        \"borderPress\": \"rgba(128, 234, 255, 0.16)\"\n      }\n    },\n    \"mono\": {\n      \"primary\": {\n        \"bg\": \"#ffffff\",\n        \"bgHover\": \"#e8eced\",\n        \"bgPress\": \"#f4f5f6\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#34474b\",\n        \"bgHover\": \"#4a6368\",\n        \"bgPress\": \"#233134\",\n        \"border\": \"#4a6368\",\n        \"borderHover\": \"#607f85\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"#233134\",\n        \"bgPress\": \"#34474b\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#ffffff\",\n        \"tertiary\": \"#ffffff\",\n        \"ghost\": \"#ffffff\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.04)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.08)\",\n        \"border\": \"rgba(255, 255, 255, 0.16)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0.24)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0.16)\"\n      }\n    },\n    \"brandExtra\": {\n      \"primary\": {\n        \"bg\": \"#7055f6\",\n        \"bgHover\": \"#5031e8\",\n        \"bgPress\": \"#9580ff\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#22136c\",\n        \"bgHover\": \"#301b98\",\n        \"bgPress\": \"#140b41\",\n        \"border\": \"#7055f6\",\n        \"borderHover\": \"#9580ff\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(80, 49, 232, 0)\",\n        \"bgHover\": \"rgba(149, 128, 255, 0.07)\",\n        \"bgPress\": \"rgba(80, 49, 232, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#ffffff\",\n        \"tertiary\": \"#9580ff\",\n        \"ghost\": \"#cef655\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(206, 246, 85, 0.04)\",\n        \"bgPress\": \"rgba(206, 246, 85, 0.08)\",\n        \"border\": \"rgba(206, 246, 85, 0.16)\",\n        \"borderHover\": \"rgba(206, 246, 85, 0.24)\",\n        \"borderPress\": \"rgba(206, 246, 85, 0.16)\"\n      }\n    },\n    \"alert\": {\n      \"bg\": \"#6c2213\",\n      \"border\": \"#f67055\",\n      \"primary\": {\n        \"bg\": \"#f67055\",\n        \"bgHover\": \"#ff9580\",\n        \"bgPress\": \"#e84f30\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#6c2213\",\n        \"bgHover\": \"#98301b\",\n        \"bgPress\": \"#41140b\",\n        \"border\": \"#98301b\",\n        \"borderHover\": \"#c33d22\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(232, 79, 48, 0)\",\n        \"bgHover\": \"rgba(246, 112, 85, 0.07)\",\n        \"bgPress\": \"rgba(246, 112, 85, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#ffffff\",\n        \"tertiary\": \"#f67055\",\n        \"ghost\": \"#f67055\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(246, 112, 85, 0.04)\",\n        \"bgPress\": \"rgba(246, 112, 85, 0.08)\",\n        \"border\": \"rgba(246, 112, 85, 0.16)\",\n        \"borderHover\": \"rgba(246, 112, 85, 0.24)\",\n        \"borderPress\": \"rgba(246, 112, 85, 0.16)\"\n      }\n    },\n    \"input\": {\n      \"bg\": \"rgba(178, 242, 255, 0.1)\",\n      \"bgHover\": \"rgba(178, 242, 255, 0.15)\",\n      \"bgDisable\": \"rgba(178, 242, 255, 0.25)\",\n      \"border\": \"rgba(178, 242, 255, 0.1)\",\n      \"borderHover\": \"rgba(178, 242, 255, 0.15)\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#ffffff\",\n      \"placeholder\": \"rgba(255, 255, 255, 0.56)\",\n      \"textDisable\": \"rgba(255, 255, 255, 0.36)\"\n    },\n    \"focus\": {\n      \"bg\": \"rgba(0, 0, 0, 0.8)\",\n      \"border\": \"#31cae8\"\n    },\n    \"check\": {\n      \"bg\": \"#135d6c\",\n      \"bgHover\": \"#1b8398\",\n      \"bgDisable\": \"rgba(178, 242, 255, 0.25)\",\n      \"border\": \"#22a8c3\",\n      \"borderHover\": \"#22a8c3\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\",\n      \"icon\": \"#80eaff\"\n    },\n    \"faint\": {\n      \"bg\": \"rgba(178, 242, 255, 0.15)\",\n      \"bgHover\": \"rgba(178, 242, 255, 0.2)\",\n      \"border\": \"rgba(178, 242, 255, 0.1)\",\n      \"borderHover\": \"rgba(178, 242, 255, 0.15)\"\n    },\n    \"slider\": {\n      \"bg\": \"#80eaff\",\n      \"bgHover\": \"#b2f2ff\",\n      \"bgDisable\": \"#34474b\"\n    },\n    \"switch\": {\n      \"bg\": \"#135d6c\",\n      \"bgHover\": \"#1b8398\",\n      \"bgDisable\": \"rgba(178, 242, 255, 0.25)\",\n      \"border\": \"#22a8c3\",\n      \"borderHover\": \"#22a8c3\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\"\n    },\n    \"knob\": {\n      \"bg\": \"#80eaff\",\n      \"bgHover\": \"#b2f2ff\",\n      \"bgActive\": \"#80eaff\",\n      \"bgActiveHover\": \"#b2f2ff\",\n      \"bgInactive\": \"#ffffff\",\n      \"bgInactiveHover\": \"#f4f5f6\",\n      \"bgDisable\": \"#34474b\"\n    },\n    \"text\": {\n      \"primary\": \"#ffffff\",\n      \"disable\": \"rgba(255, 255, 255, 0.4)\"\n    },\n    \"link\": {\n      \"primary\": \"#55dcf6\",\n      \"primaryHover\": \"#80eaff\",\n      \"secondary\": \"#9580ff\",\n      \"secondaryHover\": \"#bfb2ff\"\n    },\n    \"segmented\": {\n      \"bg\": \"rgba(178, 242, 255, 0.1)\",\n      \"bgHover\": \"rgba(178, 242, 255, 0.1)\",\n      \"bgActive\": \"rgba(178, 242, 255, 0.15)\",\n      \"border\": \"rgba(178, 242, 255, 0.1)\",\n      \"borderHover\": \"rgba(178, 242, 255, 0.1)\",\n      \"borderActive\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#ffffff\",\n      \"textDisable\": \"rgba(255, 255, 255, 0.4)\"\n    },\n    \"tagLabel\": {\n      \"product\": {\n        \"bg\": \"#d9ff66\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      },\n      \"rarity\": {\n        \"bg\": \"#141d1f\",\n        \"text\": \"#22a8c3\"\n      },\n      \"name\": {\n        \"bg\": \"#233134\",\n        \"text\": \"#b7c5c8\"\n      },\n      \"account\": {\n        \"bg\": \"#9580ff\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      },\n      \"id\": {\n        \"bg\": \"#34474b\",\n        \"bgSeries\": \"#000000\",\n        \"textSeries\": \"#b7c5c8\",\n        \"textNumber\": \"#b7c5c8\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      },\n      \"subentity\": {\n        \"bg\": \"#607f85\",\n        \"text\": \"#000000\"\n      },\n      \"item\": {\n        \"bg\": \"#80eaff\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      }\n    },\n    \"toast\": {\n      \"bg\": \"#34474b\"\n    },\n    \"toggleButton\": {\n      \"bg\": \"rgba(178, 242, 255, 0.1)\",\n      \"bgHover\": \"rgba(178, 242, 255, 0.15)\",\n      \"bgActive\": \"#135d6c\",\n      \"bgDisable\": \"rgba(178, 242, 255, 0.25)\",\n      \"border\": \"rgba(178, 242, 255, 0.1)\",\n      \"borderHover\": \"rgba(178, 242, 255, 0.15)\",\n      \"borderActive\": \"#22a8c3\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#ffffff\",\n      \"textActive\": \"#80eaff\",\n      \"textDisable\": \"rgba(255, 255, 255, 0.36)\"\n    },\n    \"appButton\": {\n      \"bg\": \"#34474b\",\n      \"bgHover\": \"#4b6368\",\n      \"bgPress\": \"#607f85\",\n      \"border\": \"#4b6368\",\n      \"borderHover\": \"#607f85\",\n      \"borderPress\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#b7c5c8\",\n      \"textDisable\": \"rgba(232, 236, 237, 0.2)\"\n    }\n  }\n}\n","{\n  \"background\": {\n    \"primary\": \"#ffffff\",\n    \"secondary\": \"#f5f6f4\",\n    \"brand\": {\n      \"primary\": \"#80eaff\",\n      \"secondary\": \"#b2f2ff\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#7055f6\",\n      \"secondary\": \"#9580ff\"\n    },\n    \"inverse\": \"#000000\",\n    \"static\": {\n      \"dark\": \"#000000\",\n      \"light\": \"#ffffff\"\n    },\n    \"success\": {\n      \"primary\": \"#95ff80\",\n      \"secondary\": \"#bfffb2\"\n    },\n    \"warning\": {\n      \"primary\": \"#ffc380\",\n      \"secondary\": \"#ffdbb2\"\n    },\n    \"alert\": {\n      \"primary\": \"#f67055\",\n      \"secondary\": \"#ffbfb2\"\n    },\n    \"neutral\": {\n      \"primary\": \"#99aeb2\",\n      \"secondary\": \"#d7dee0\"\n    }\n  },\n  \"content\": {\n    \"primary\": \"#000000\",\n    \"secondary\": \"rgba(0, 0, 0, 0.75)\",\n    \"tertiary\": \"rgba(0, 0, 0, 0.55)\",\n    \"brand\": {\n      \"primary\": \"#1b8398\",\n      \"secondary\": \"#31cae8\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#301b98\",\n      \"secondary\": \"#3d22c3\"\n    },\n    \"inverse\": \"#ffffff\",\n    \"static\": {\n      \"light\": \"#ffffff\",\n      \"dark\": \"#000000\"\n    },\n    \"success\": {\n      \"primary\": \"#368f24\",\n      \"secondary\": \"#3dc322\"\n    },\n    \"warning\": {\n      \"primary\": \"#c37822\",\n      \"secondary\": \"#f6ab55\"\n    },\n    \"alert\": {\n      \"primary\": \"#e84f30\",\n      \"secondary\": \"#f67055\"\n    },\n    \"neutral\": {\n      \"primary\": \"#34474b\",\n      \"secondary\": \"#607f85\"\n    },\n    \"on\": {\n      \"brand\": \"#000000\",\n      \"brandExtra\": \"#ffffff\",\n      \"success\": \"#000000\",\n      \"warning\": \"#000000\",\n      \"alert\": \"#ffffff\",\n      \"neutral\": \"#000000\"\n    }\n  },\n  \"border\": {\n    \"primary\": \"#000000\",\n    \"secondary\": \"rgba(0, 0, 0, 0.08)\",\n    \"brand\": \"#31cae8\",\n    \"brandExtra\": \"#5031e8\",\n    \"inverse\": \"rgba(255, 255, 255, 0.17)\",\n    \"success\": \"#50e831\",\n    \"warning\": \"#e89331\",\n    \"alert\": \"#e84f30\",\n    \"neutral\": \"#7b989d\"\n  },\n  \"overlay\": {\n    \"mono\": \"rgba(0, 0, 0, 0.04)\",\n    \"brand\": \"rgba(128, 234, 255, 0.3)\",\n    \"brandExtra\": \"rgba(149, 128, 255, 0.3)\",\n    \"success\": \"rgba(149, 255, 128, 0.24)\",\n    \"warning\": \"rgba(255, 195, 128, 0.28)\",\n    \"alert\": \"rgba(255, 149, 128, 0.24)\",\n    \"neutral\": \"rgba(96, 127, 133, 0.24)\",\n    \"monoHover\": \"rgba(0, 0, 0, 0.1)\"\n  },\n  \"layer\": {\n    \"scrim\": \"rgba(0, 0, 0, 0.75)\",\n    \"float\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"control\": {\n    \"brand\": {\n      \"primary\": {\n        \"bg\": \"#80eaff\",\n        \"bgHover\": \"#b2f2ff\",\n        \"bgPress\": \"#55dcf6\",\n        \"bgDisable\": \"#c2c4ba\",\n        \"border\": \"#31cae8\",\n        \"borderHover\": \"#55dcf6\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\",\n        \"borderDisable\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#d6f8ff\",\n        \"bgHover\": \"#ebfcff\",\n        \"bgPress\": \"#b2f2ff\",\n        \"border\": \"#80eaff\",\n        \"borderHover\": \"#b2f2ff\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"#ebfcff\",\n        \"bgPress\": \"#d6f8ff\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#1b8398\",\n        \"disable\": \"#999999\",\n        \"ghost\": \"#22a8c3\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(34, 168, 195, 0.04)\",\n        \"bgPress\": \"rgba(34, 168, 195, 0.08)\",\n        \"border\": \"rgba(34, 168, 195, 0.1)\",\n        \"borderHover\": \"rgba(34, 168, 195, 0.16)\",\n        \"borderPress\": \"rgba(34, 168, 195, 0.1)\"\n      }\n    },\n    \"mono\": {\n      \"primary\": {\n        \"bg\": \"#141d1f\",\n        \"bgHover\": \"#233134\",\n        \"bgPress\": \"#000000\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#dddfd8\",\n        \"bgHover\": \"#ecede9\",\n        \"bgPress\": \"#c2c4ba\",\n        \"border\": \"#c2c4ba\",\n        \"borderHover\": \"#dddfd8\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"#f5f6f4\",\n        \"bgPress\": \"#ecede9\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#000000\",\n        \"ghost\": \"#000000\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(0, 0, 0, 0.04)\",\n        \"bgPress\": \"rgba(0, 0, 0, 0.08)\",\n        \"border\": \"rgba(0, 0, 0, 0.1)\",\n        \"borderHover\": \"rgba(0, 0, 0, 0.16)\",\n        \"borderPress\": \"rgba(0, 0, 0, 0.1)\"\n      }\n    },\n    \"brandExtra\": {\n      \"primary\": {\n        \"bg\": \"#7055f6\",\n        \"bgHover\": \"#5031e8\",\n        \"bgPress\": \"#3d22c3\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#bfb2ff\",\n        \"bgHover\": \"#ddd6ff\",\n        \"bgPress\": \"#9580ff\",\n        \"border\": \"#9580ff\",\n        \"borderHover\": \"#bfb2ff\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(80, 49, 232, 0)\",\n        \"bgHover\": \"rgba(149, 128, 255, 0.07)\",\n        \"bgPress\": \"rgba(80, 49, 232, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#301b98\",\n        \"ghost\": \"#79971b\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(121, 151, 27, 0.04)\",\n        \"bgPress\": \"rgba(121, 151, 27, 0.08)\",\n        \"border\": \"rgba(121, 151, 27, 0.1)\",\n        \"borderHover\": \"rgba(121, 151, 27, 0.16)\",\n        \"borderPress\": \"rgba(121, 151, 27, 0.1)\"\n      }\n    },\n    \"alert\": {\n      \"bg\": \"#ffbfb2\",\n      \"border\": \"#e84f30\",\n      \"primary\": {\n        \"bg\": \"#e84f30\",\n        \"bgHover\": \"#f67055\",\n        \"bgPress\": \"#c33d22\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#ffbfb2\",\n        \"bgHover\": \"#ffddd6\",\n        \"bgPress\": \"#ff9580\",\n        \"border\": \"#ff9580\",\n        \"borderHover\": \"#ffbfb2\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(232, 79, 48, 0)\",\n        \"bgHover\": \"rgba(232, 79, 48, 0.07)\",\n        \"bgPress\": \"rgba(232, 79, 48, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#c33d22\",\n        \"ghost\": \"#c33d22\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(195, 61, 34, 0.04)\",\n        \"bgPress\": \"rgba(195, 61, 34, 0.08)\",\n        \"border\": \"rgba(195, 61, 34, 0.1)\",\n        \"borderHover\": \"rgba(195, 61, 34, 0.16)\",\n        \"borderPress\": \"rgba(195, 61, 34, 0.1)\"\n      }\n    },\n    \"input\": {\n      \"bg\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.2)\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\",\n      \"text\": \"#000000\",\n      \"placeholder\": \"rgba(0, 0, 0, 0.6)\",\n      \"textDisable\": \"rgba(5, 5, 5, 0.36)\"\n    },\n    \"focus\": {\n      \"bg\": \"rgba(255, 255, 255, 0.8)\",\n      \"border\": \"#31cae8\"\n    },\n    \"check\": {\n      \"bg\": \"#233134\",\n      \"bgHover\": \"#4a6368\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.25)\",\n      \"border\": \"#233134\",\n      \"borderHover\": \"#4a6368\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\",\n      \"icon\": \"#ffffff\"\n    },\n    \"faint\": {\n      \"bg\": \"rgba(0, 0, 0, 0.15)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.2)\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.15)\"\n    },\n    \"slider\": {\n      \"bg\": \"#233134\",\n      \"bgHover\": \"#4a6368\",\n      \"bgDisable\": \"#a6a6a6\"\n    },\n    \"switch\": {\n      \"bg\": \"#233134\",\n      \"bgHover\": \"#4a6368\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.25)\",\n      \"border\": \"#233134\",\n      \"borderHover\": \"#4a6368\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\"\n    },\n    \"knob\": {\n      \"bg\": \"#233134\",\n      \"bgHover\": \"#4a6368\",\n      \"bgActive\": \"#ffffff\",\n      \"bgActiveHover\": \"#f4f5f6\",\n      \"bgInactive\": \"#ffffff\",\n      \"bgInactiveHover\": \"#f4f5f6\",\n      \"bgDisable\": \"#8c8c8c\"\n    },\n    \"text\": {\n      \"primary\": \"#000000\",\n      \"disable\": \"rgba(0, 0, 0, 0.4)\"\n    },\n    \"link\": {\n      \"primary\": \"#1b8398\",\n      \"primaryHover\": \"#22a8c3\",\n      \"secondary\": \"#3d22c3\",\n      \"secondaryHover\": \"#5031e8\"\n    },\n    \"segmented\": {\n      \"bg\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgActive\": \"#ffffff\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderActive\": \"rgba(0, 0, 0, 0)\",\n      \"text\": \"#000000\",\n      \"textDisable\": \"rgba(0, 0, 0, 0.4)\"\n    },\n    \"tagLabel\": {\n      \"product\": {\n        \"bg\": \"#d9ff66\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      },\n      \"rarity\": {\n        \"bg\": \"#141d1f\",\n        \"text\": \"#22a8c3\"\n      },\n      \"name\": {\n        \"bg\": \"#ffffff\",\n        \"text\": \"#000000\"\n      },\n      \"account\": {\n        \"bg\": \"#9580ff\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      },\n      \"id\": {\n        \"bg\": \"#dddfd8\",\n        \"bgSeries\": \"#000000\",\n        \"textSeries\": \"#d7dee0\",\n        \"textNumber\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      },\n      \"subentity\": {\n        \"bg\": \"#a9aca0\",\n        \"text\": \"#000000\"\n      },\n      \"item\": {\n        \"bg\": \"#55dcf6\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      }\n    },\n    \"toast\": {\n      \"bg\": \"#34474b\"\n    },\n    \"toggleButton\": {\n      \"bg\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"bgActive\": \"#233134\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.2)\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"borderActive\": \"#233134\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\",\n      \"text\": \"#000000\",\n      \"textActive\": \"#ffffff\",\n      \"textDisable\": \"rgba(0, 0, 0, 0.36)\"\n    },\n    \"appButton\": {\n      \"bg\": \"#dadbd7\",\n      \"bgHover\": \"#c1c2bc\",\n      \"bgPress\": \"#a8aaa2\",\n      \"border\": \"#c1c2bc\",\n      \"borderHover\": \"#a8aaa2\",\n      \"borderPress\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#000000\",\n      \"textDisable\": \"#999999\"\n    }\n  }\n}\n","{\n  \"background\": {\n    \"primary\": \"#161d45\",\n    \"secondary\": \"#0d143a\",\n    \"brand\": {\n      \"primary\": \"#454f88\",\n      \"secondary\": \"#2b335e\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#292f52\",\n      \"secondary\": \"#2d3358\"\n    },\n    \"inverse\": \"#000000\",\n    \"static\": {\n      \"dark\": \"#000000\",\n      \"light\": \"#ffffff\"\n    },\n    \"success\": {\n      \"primary\": \"#14b87e\",\n      \"secondary\": \"#75f0b9\"\n    },\n    \"warning\": {\n      \"primary\": \"#ffee99\",\n      \"secondary\": \"#ffdd33\"\n    },\n    \"alert\": {\n      \"primary\": \"#e80000\",\n      \"secondary\": \"#f53d3d\"\n    },\n    \"neutral\": {\n      \"primary\": \"#7f8bc9\",\n      \"secondary\": \"#2b335e\"\n    }\n  },\n  \"content\": {\n    \"primary\": \"#ffffff\",\n    \"secondary\": \"rgba(255, 255, 255, 0.76)\",\n    \"tertiary\": \"rgba(255, 255, 255, 0.58)\",\n    \"brand\": {\n      \"primary\": \"#ffffff\",\n      \"secondary\": \"rgba(255, 255, 255, 0.76)\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#8576fd\",\n      \"secondary\": \"#aea0ff\"\n    },\n    \"inverse\": \"#000000\",\n    \"static\": {\n      \"light\": \"#ffffff\",\n      \"dark\": \"#000000\"\n    },\n    \"success\": {\n      \"primary\": \"#66ffa6\",\n      \"secondary\": \"#00ff6a\"\n    },\n    \"warning\": {\n      \"primary\": \"#ffe566\",\n      \"secondary\": \"#ffd400\"\n    },\n    \"alert\": {\n      \"primary\": \"#e80000\",\n      \"secondary\": \"#f53d3d\"\n    },\n    \"neutral\": {\n      \"primary\": \"#aa99ff\",\n      \"secondary\": \"#8066ff\"\n    },\n    \"on\": {\n      \"brand\": \"#ffffff\",\n      \"brandExtra\": \"#0d143a\",\n      \"success\": \"#000000\",\n      \"warning\": \"#000000\",\n      \"alert\": \"#ffffff\",\n      \"neutral\": \"#0d143a\"\n    }\n  },\n  \"border\": {\n    \"primary\": \"#ffffff\",\n    \"secondary\": \"rgba(255, 255, 255, 0.12)\",\n    \"brand\": \"#ffffff\",\n    \"brandExtra\": \"#8576fd\",\n    \"inverse\": \"rgba(0, 0, 0, 0.15)\",\n    \"success\": \"#75f0b9\",\n    \"warning\": \"#ffe566\",\n    \"alert\": \"#f53d3d\",\n    \"neutral\": \"#7f8bc9\"\n  },\n  \"overlay\": {\n    \"mono\": \"rgba(255, 255, 255, 0.1)\",\n    \"brand\": \"rgba(83, 94, 153, 0.5)\",\n    \"brandExtra\": \"rgba(133, 118, 253, 0.3)\",\n    \"success\": \"rgba(20, 184, 126, 0.3)\",\n    \"warning\": \"rgba(255, 229, 102, 0.3)\",\n    \"alert\": \"rgba(245, 61, 61, 0.3)\",\n    \"neutral\": \"rgba(127, 139, 201, 0.3)\",\n    \"monoHover\": \"rgba(255, 255, 255, 0.2)\"\n  },\n  \"layer\": {\n    \"scrim\": \"rgba(0, 0, 0, 0.75)\",\n    \"float\": \"rgba(10, 15, 43, 0.5)\"\n  },\n  \"control\": {\n    \"brand\": {\n      \"primary\": {\n        \"bg\": \"#ffca43\",\n        \"bgHover\": \"#f2c173\",\n        \"bgPress\": \"#ffbb33\",\n        \"bgDisable\": \"#484848\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\",\n        \"borderDisable\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.1)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.5)\",\n        \"border\": \"rgba(255, 255, 255, 0.2)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0.4)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0.1)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.76)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.5)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#ffffff\",\n        \"tertiary\": \"#000000\",\n        \"disable\": \"#c4d1d4\",\n        \"ghost\": \"#ffca43\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 202, 67, 0.04)\",\n        \"bgPress\": \"rgba(255, 202, 67, 0.08)\",\n        \"border\": \"rgba(255, 202, 67, 0.16)\",\n        \"borderHover\": \"rgba(255, 202, 67, 0.24)\",\n        \"borderPress\": \"rgba(255, 202, 67, 0.16)\"\n      }\n    },\n    \"mono\": {\n      \"primary\": {\n        \"bg\": \"#ffffff\",\n        \"bgHover\": \"#f0f4f4\",\n        \"bgPress\": \"#f6f8f9\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"rgba(255, 255, 255, 0.1)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.34)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.44)\",\n        \"border\": \"#ffffff\",\n        \"borderHover\": \"#ffffff\",\n        \"borderPress\": \"#ffffff\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.76)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.5)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#0d143a\",\n        \"secondary\": \"#ffffff\",\n        \"tertiary\": \"#ffffff\",\n        \"ghost\": \"#ffffff\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.04)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.08)\",\n        \"border\": \"rgba(255, 255, 255, 0.16)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0.24)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0.16)\"\n      }\n    },\n    \"brandExtra\": {\n      \"primary\": {\n        \"bg\": \"#8576fd\",\n        \"bgHover\": \"#9d95de\",\n        \"bgPress\": \"#6b5fd4\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"rgba(133, 118, 253, 0.4)\",\n        \"bgHover\": \"rgba(157, 149, 222, 0.4)\",\n        \"bgPress\": \"rgba(107, 95, 212, 0.4)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(133, 118, 253, 0.1)\",\n        \"bgHover\": \"rgba(133, 118, 253, 0.2)\",\n        \"bgPress\": \"rgba(133, 118, 253, 0.3)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#8576fd\",\n        \"ghost\": \"#ffffff\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.04)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.08)\",\n        \"border\": \"rgba(255, 255, 255, 0.16)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0.24)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0.16)\"\n      }\n    },\n    \"alert\": {\n      \"bg\": \"#e80000\",\n      \"border\": \"#f53d3d\",\n      \"primary\": {\n        \"bg\": \"#ff8066\",\n        \"bgHover\": \"#ffaa99\",\n        \"bgPress\": \"#ff5533\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"rgba(255, 128, 102, 0.4)\",\n        \"bgHover\": \"rgba(255, 170, 153, 0.4)\",\n        \"bgPress\": \"rgba(255, 85, 51, 0.4)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(232, 79, 48, 0)\",\n        \"bgHover\": \"rgba(246, 112, 85, 0.07)\",\n        \"bgPress\": \"rgba(246, 112, 85, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#ff8066\",\n        \"ghost\": \"#ffffff\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"rgba(255, 255, 255, 0.04)\",\n        \"bgPress\": \"rgba(255, 255, 255, 0.08)\",\n        \"border\": \"rgba(255, 255, 255, 0.16)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0.24)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0.16)\"\n      }\n    },\n    \"input\": {\n      \"bg\": \"#292f52\",\n      \"bgHover\": \"#2d3661\",\n      \"bgDisable\": \"rgba(255, 255, 255, 0.25)\",\n      \"border\": \"#7f8bc9\",\n      \"borderHover\": \"rgba(127, 139, 201, 0.7)\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#ffffff\",\n      \"placeholder\": \"rgba(255, 255, 255, 0.55)\",\n      \"textDisable\": \"rgba(255, 255, 255, 0.36)\"\n    },\n    \"focus\": {\n      \"bg\": \"#0a0f2b\",\n      \"border\": \"#8576fd\"\n    },\n    \"check\": {\n      \"bg\": \"#ffffff\",\n      \"bgHover\": \"#f6f8f9\",\n      \"bgDisable\": \"rgba(255, 255, 255, 0.2)\",\n      \"border\": \"#ffffff\",\n      \"borderHover\": \"#ffffff\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0.2)\",\n      \"icon\": \"#0d143a\"\n    },\n    \"faint\": {\n      \"bg\": \"rgba(255, 255, 255, 0.15)\",\n      \"bgHover\": \"rgba(255, 255, 255, 0.2)\",\n      \"border\": \"rgba(255, 255, 255, 0)\",\n      \"borderHover\": \"rgba(255, 255, 255, 0.24)\"\n    },\n    \"slider\": {\n      \"bg\": \"#ffffff\",\n      \"bgHover\": \"#ffffff\",\n      \"bgDisable\": \"rgba(255, 255, 255, 0.2)\"\n    },\n    \"switch\": {\n      \"bg\": \"rgba(255, 255, 255, 0.1)\",\n      \"bgHover\": \"rgba(255, 255, 255, 0.15)\",\n      \"bgDisable\": \"rgba(255, 255, 255, 0.2)\",\n      \"border\": \"#ffffff\",\n      \"borderHover\": \"#ffffff\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\"\n    },\n    \"knob\": {\n      \"bg\": \"#ffffff\",\n      \"bgHover\": \"#f6f8f9\",\n      \"bgActive\": \"#ffffff\",\n      \"bgActiveHover\": \"#f6f8f9\",\n      \"bgInactive\": \"#ffffff\",\n      \"bgInactiveHover\": \"#f6f8f9\",\n      \"bgDisable\": \"#ffffff\"\n    },\n    \"text\": {\n      \"primary\": \"#ffffff\",\n      \"disable\": \"#8c8b9a\"\n    },\n    \"link\": {\n      \"primary\": \"#ffffff\",\n      \"primaryHover\": \"rgba(255, 255, 255, 0.7)\",\n      \"secondary\": \"#8576fd\",\n      \"secondaryHover\": \"rgba(157, 149, 222, 0.7)\"\n    },\n    \"segmented\": {\n      \"bg\": \"rgba(255, 255, 255, 0.1)\",\n      \"bgHover\": \"rgba(255, 255, 255, 0.1)\",\n      \"bgActive\": \"rgba(255, 255, 255, 0.15)\",\n      \"border\": \"rgba(255, 255, 255, 0.1)\",\n      \"borderHover\": \"rgba(255, 255, 255, 0.1)\",\n      \"borderActive\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#ffffff\",\n      \"textDisable\": \"rgba(255, 255, 255, 0.4)\"\n    },\n    \"tagLabel\": {\n      \"product\": {\n        \"bg\": \"#d9ff66\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      },\n      \"rarity\": {\n        \"bg\": \"#141d1f\",\n        \"text\": \"#22a8c3\"\n      },\n      \"name\": {\n        \"bg\": \"#ffffff\",\n        \"text\": \"#b7c5c8\"\n      },\n      \"account\": {\n        \"bg\": \"#9580ff\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      },\n      \"id\": {\n        \"bg\": \"#d7dee0\",\n        \"bgSeries\": \"#000000\",\n        \"textSeries\": \"#b7c5c8\",\n        \"textNumber\": \"#b7c5c8\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      },\n      \"subentity\": {\n        \"bg\": \"#607f85\",\n        \"text\": \"#000000\"\n      },\n      \"item\": {\n        \"bg\": \"#80eaff\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(255, 255, 255, 0.48)\"\n      }\n    },\n    \"toast\": {\n      \"bg\": \"#233134\"\n    },\n    \"toggleButton\": {\n      \"bg\": \"rgba(255, 255, 255, 0.1)\",\n      \"bgHover\": \"rgba(255, 255, 255, 0.15)\",\n      \"bgActive\": \"#454f88\",\n      \"bgDisable\": \"rgba(255, 255, 255, 0.25)\",\n      \"border\": \"rgba(255, 255, 255, 0.1)\",\n      \"borderHover\": \"rgba(255, 255, 255, 0.15)\",\n      \"borderActive\": \"#535e99\",\n      \"borderDisable\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#ffffff\",\n      \"textActive\": \"#d0d8ff\",\n      \"textDisable\": \"rgba(255, 255, 255, 0.36)\"\n    },\n    \"appButton\": {\n      \"bg\": \"#ffffff\",\n      \"bgHover\": \"rgba(255, 255, 255, 0.76)\",\n      \"bgPress\": \"rgba(255, 255, 255, 0.5)\",\n      \"border\": \"rgba(255, 255, 255, 0)\",\n      \"borderHover\": \"rgba(255, 255, 255, 0)\",\n      \"borderPress\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#000000\",\n      \"textDisable\": \"#666666\"\n    }\n  }\n}\n","{\n  \"background\": {\n    \"primary\": \"#ffffff\",\n    \"secondary\": \"#f5f6f4\",\n    \"brand\": {\n      \"primary\": \"#80eaff\",\n      \"secondary\": \"#b2f2ff\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#7055f6\",\n      \"secondary\": \"#9580ff\"\n    },\n    \"inverse\": \"#000000\",\n    \"static\": {\n      \"dark\": \"#000000\",\n      \"light\": \"#ffffff\"\n    },\n    \"success\": {\n      \"primary\": \"#95ff80\",\n      \"secondary\": \"#bfffb2\"\n    },\n    \"warning\": {\n      \"primary\": \"#ffc380\",\n      \"secondary\": \"#ffdbb2\"\n    },\n    \"alert\": {\n      \"primary\": \"#f67055\",\n      \"secondary\": \"#ffbfb2\"\n    },\n    \"neutral\": {\n      \"primary\": \"#99aeb2\",\n      \"secondary\": \"#d7dee0\"\n    }\n  },\n  \"content\": {\n    \"primary\": \"#000000\",\n    \"secondary\": \"rgba(0, 0, 0, 0.75)\",\n    \"tertiary\": \"rgba(0, 0, 0, 0.55)\",\n    \"brand\": {\n      \"primary\": \"#22a8c3\",\n      \"secondary\": \"#31cae8\"\n    },\n    \"brandExtra\": {\n      \"primary\": \"#301b98\",\n      \"secondary\": \"#3d22c3\"\n    },\n    \"inverse\": \"#ffffff\",\n    \"static\": {\n      \"light\": \"#ffffff\",\n      \"dark\": \"#000000\"\n    },\n    \"success\": {\n      \"primary\": \"#368f24\",\n      \"secondary\": \"#3dc322\"\n    },\n    \"warning\": {\n      \"primary\": \"#c37822\",\n      \"secondary\": \"#f6ab55\"\n    },\n    \"alert\": {\n      \"primary\": \"#e84f30\",\n      \"secondary\": \"#f67055\"\n    },\n    \"neutral\": {\n      \"primary\": \"#34474b\",\n      \"secondary\": \"#607f85\"\n    },\n    \"on\": {\n      \"brand\": \"#000000\",\n      \"brandExtra\": \"#000000\",\n      \"success\": \"#000000\",\n      \"warning\": \"#000000\",\n      \"alert\": \"#ffffff\",\n      \"neutral\": \"#000000\"\n    }\n  },\n  \"border\": {\n    \"primary\": \"#000000\",\n    \"secondary\": \"rgba(0, 0, 0, 0.08)\",\n    \"brand\": \"#31cae8\",\n    \"brandExtra\": \"#5031e8\",\n    \"inverse\": \"rgba(255, 255, 255, 0.17)\",\n    \"success\": \"#50e831\",\n    \"warning\": \"#e89331\",\n    \"alert\": \"#e84f30\",\n    \"neutral\": \"#7b989d\"\n  },\n  \"overlay\": {\n    \"mono\": \"rgba(0, 0, 0, 0.05)\",\n    \"brand\": \"rgba(128, 234, 255, 0.3)\",\n    \"brandExtra\": \"rgba(149, 128, 255, 0.3)\",\n    \"success\": \"rgba(149, 255, 128, 0.24)\",\n    \"warning\": \"rgba(255, 195, 128, 0.28)\",\n    \"alert\": \"rgba(255, 149, 128, 0.24)\",\n    \"neutral\": \"rgba(96, 127, 133, 0.24)\",\n    \"monoHover\": \"rgba(0, 0, 0, 0.1)\"\n  },\n  \"layer\": {\n    \"scrim\": \"rgba(0, 0, 0, 0.75)\",\n    \"float\": \"rgba(0, 0, 0, 0.5)\"\n  },\n  \"control\": {\n    \"brand\": {\n      \"primary\": {\n        \"bg\": \"#80eaff\",\n        \"bgHover\": \"#b2f2ff\",\n        \"bgPress\": \"#55dcf6\",\n        \"bgDisable\": \"#cccccc\",\n        \"border\": \"#31cae8\",\n        \"borderHover\": \"#55dcf6\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\",\n        \"borderDisable\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#d6f8ff\",\n        \"bgHover\": \"#ebfcff\",\n        \"bgPress\": \"#b2f2ff\",\n        \"border\": \"#80eaff\",\n        \"borderHover\": \"#b2f2ff\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"#ebfcff\",\n        \"bgPress\": \"#d6f8ff\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#1b8398\",\n        \"disable\": \"#999999\",\n        \"ghost\": \"#22a8c3\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(34, 168, 195, 0.04)\",\n        \"bgPress\": \"rgba(34, 168, 195, 0.08)\",\n        \"border\": \"rgba(34, 168, 195, 0.1)\",\n        \"borderHover\": \"rgba(34, 168, 195, 0.16)\",\n        \"borderPress\": \"rgba(34, 168, 195, 0.1)\"\n      }\n    },\n    \"mono\": {\n      \"primary\": {\n        \"bg\": \"#141d1f\",\n        \"bgHover\": \"#233134\",\n        \"bgPress\": \"#000000\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"#dddfd8\",\n        \"bgHover\": \"#ecede9\",\n        \"bgPress\": \"#c2c4ba\",\n        \"border\": \"#c2c4ba\",\n        \"borderHover\": \"#dddfd8\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 255, 255, 0)\",\n        \"bgHover\": \"#f5f6f4\",\n        \"bgPress\": \"#ecede9\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#000000\",\n        \"ghost\": \"#000000\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(0, 0, 0, 0.04)\",\n        \"bgPress\": \"rgba(0, 0, 0, 0.08)\",\n        \"border\": \"rgba(0, 0, 0, 0.1)\",\n        \"borderHover\": \"rgba(0, 0, 0, 0.16)\",\n        \"borderPress\": \"rgba(0, 0, 0, 0.1)\"\n      }\n    },\n    \"brandExtra\": {\n      \"primary\": {\n        \"bg\": \"#7055f6\",\n        \"bgHover\": \"#5031e8\",\n        \"bgPress\": \"#3d22c3\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"rgba(80, 49, 232, 0.4)\",\n        \"bgHover\": \"rgba(149, 128, 255, 0.4)\",\n        \"bgPress\": \"rgba(80, 49, 232, 0.4)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(80, 49, 232, 0)\",\n        \"bgHover\": \"rgba(149, 128, 255, 0.07)\",\n        \"bgPress\": \"rgba(80, 49, 232, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#000000\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#301b98\",\n        \"ghost\": \"#79971b\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(121, 151, 27, 0.04)\",\n        \"bgPress\": \"rgba(121, 151, 27, 0.08)\",\n        \"border\": \"rgba(121, 151, 27, 0.1)\",\n        \"borderHover\": \"rgba(121, 151, 27, 0.16)\",\n        \"borderPress\": \"rgba(121, 151, 27, 0.1)\"\n      }\n    },\n    \"alert\": {\n      \"bg\": \"#ffbfb2\",\n      \"border\": \"#e84f30\",\n      \"primary\": {\n        \"bg\": \"#e84f30\",\n        \"bgHover\": \"#f67055\",\n        \"bgPress\": \"#c33d22\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"secondary\": {\n        \"bg\": \"rgba(232, 79, 48, 0.4)\",\n        \"bgHover\": \"rgba(246, 112, 85, 0.4)\",\n        \"bgPress\": \"rgba(195, 61, 34, 0.4)\",\n        \"border\": \"rgba(246, 112, 85, 0.32)\",\n        \"borderHover\": \"rgba(246, 112, 85, 0.32)\",\n        \"borderPress\": \"rgba(246, 112, 85, 0.32)\"\n      },\n      \"tertiary\": {\n        \"bg\": \"rgba(255, 43, 0, 0)\",\n        \"bgHover\": \"rgba(255, 85, 51, 0.07)\",\n        \"bgPress\": \"rgba(204, 34, 0, 0.12)\",\n        \"border\": \"rgba(255, 255, 255, 0)\",\n        \"borderHover\": \"rgba(255, 255, 255, 0)\",\n        \"borderPress\": \"rgba(255, 255, 255, 0)\"\n      },\n      \"text\": {\n        \"primary\": \"#ffffff\",\n        \"secondary\": \"#000000\",\n        \"tertiary\": \"#c33d22\",\n        \"ghost\": \"#c33d22\"\n      },\n      \"ghost\": {\n        \"bg\": \"rgba(0, 0, 0, 0)\",\n        \"bgHover\": \"rgba(195, 61, 34, 0.04)\",\n        \"bgPress\": \"rgba(195, 61, 34, 0.08)\",\n        \"border\": \"rgba(195, 61, 34, 0.1)\",\n        \"borderHover\": \"rgba(195, 61, 34, 0.16)\",\n        \"borderPress\": \"rgba(195, 61, 34, 0.1)\"\n      }\n    },\n    \"input\": {\n      \"bg\": \"#ffffff\",\n      \"bgHover\": \"#f4f5f6\",\n      \"bgDisable\": \"#e8eced\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\",\n      \"text\": \"#000000\",\n      \"placeholder\": \"rgba(0, 0, 0, 0.6)\",\n      \"textDisable\": \"rgba(5, 5, 5, 0.36)\"\n    },\n    \"focus\": {\n      \"bg\": \"#ffffff\",\n      \"border\": \"#31cae8\"\n    },\n    \"check\": {\n      \"bg\": \"#d6f8ff\",\n      \"bgHover\": \"#ebfcff\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.25)\",\n      \"border\": \"#80eaff\",\n      \"borderHover\": \"#b2f2ff\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\",\n      \"icon\": \"#000000\"\n    },\n    \"faint\": {\n      \"bg\": \"rgba(0, 0, 0, 0.15)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.2)\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.15)\"\n    },\n    \"slider\": {\n      \"bg\": \"#80eaff\",\n      \"bgHover\": \"#b2f2ff\",\n      \"bgDisable\": \"#c2c4ba\"\n    },\n    \"switch\": {\n      \"bg\": \"#000000\",\n      \"bgHover\": \"#1b2628\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.25)\",\n      \"border\": \"rgba(0, 0, 0, 0)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0)\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\"\n    },\n    \"knob\": {\n      \"bg\": \"#ffffff\",\n      \"bgHover\": \"#e8eced\",\n      \"bgActive\": \"#ffffff\",\n      \"bgActiveHover\": \"#e8eced\",\n      \"bgInactive\": \"#000000\",\n      \"bgInactiveHover\": \"#e8eced\",\n      \"bgDisable\": \"#000000\"\n    },\n    \"text\": {\n      \"primary\": \"#000000\",\n      \"disable\": \"rgba(0, 0, 0, 0.4)\"\n    },\n    \"link\": {\n      \"primary\": \"#22a8c3\",\n      \"primaryHover\": \"#31cae8\",\n      \"secondary\": \"#8aad1f\",\n      \"secondaryHover\": \"#b2e51a\"\n    },\n    \"segmented\": {\n      \"bg\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgActive\": \"#ffffff\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderActive\": \"rgba(0, 0, 0, 0)\",\n      \"text\": \"#000000\",\n      \"textDisable\": \"rgba(0, 0, 0, 0.4)\"\n    },\n    \"tagLabel\": {\n      \"product\": {\n        \"bg\": \"#d9ff66\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      },\n      \"rarity\": {\n        \"bg\": \"#141d1f\",\n        \"text\": \"#22a8c3\"\n      },\n      \"name\": {\n        \"bg\": \"#ffffff\",\n        \"text\": \"#000000\"\n      },\n      \"account\": {\n        \"bg\": \"#9580ff\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      },\n      \"id\": {\n        \"bg\": \"#dddfd8\",\n        \"bgSeries\": \"#000000\",\n        \"textSeries\": \"#d7dee0\",\n        \"textNumber\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      },\n      \"subentity\": {\n        \"bg\": \"#a9aca0\",\n        \"text\": \"#000000\"\n      },\n      \"item\": {\n        \"bg\": \"#55dcf6\",\n        \"text\": \"#000000\",\n        \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n      }\n    },\n    \"toast\": {\n      \"bg\": \"#233134\"\n    },\n    \"toggleButton\": {\n      \"bg\": \"rgba(0, 0, 0, 0.08)\",\n      \"bgHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"bgActive\": \"#d6f8ff\",\n      \"bgDisable\": \"rgba(0, 0, 0, 0.2)\",\n      \"border\": \"rgba(0, 0, 0, 0.1)\",\n      \"borderHover\": \"rgba(0, 0, 0, 0.15)\",\n      \"borderActive\": \"#80eaff\",\n      \"borderDisable\": \"rgba(0, 0, 0, 0)\",\n      \"text\": \"#000000\",\n      \"textActive\": \"#000000\",\n      \"textDisable\": \"rgba(0, 0, 0, 0.36)\"\n    },\n    \"appButton\": {\n      \"bg\": \"#dadbd7\",\n      \"bgHover\": \"#c1c2bc\",\n      \"bgPress\": \"#a8aaa2\",\n      \"border\": \"#c1c2bc\",\n      \"borderHover\": \"#a8aaa2\",\n      \"borderPress\": \"rgba(255, 255, 255, 0)\",\n      \"text\": \"#000000\",\n      \"textDisable\": \"#999999\"\n    }\n  }\n}\n","import pentagramDark from \"./pentagram-dark.json\";\nimport pentagramLight from \"./pentagram-light.json\";\nimport ltgDark from \"./ltg-dark.json\";\nimport blueprints from \"./blueprints.json\";\n\n/**\n * NOTE: The \"ghost\" button variant tokens (control.brand.ghost, control.mono.ghost,\n * control.brandExtra.ghost, control.alert.ghost, and their text.ghost counterparts)\n * are developer-added tokens NOT present in the Figma design token exports.\n * Do NOT delete them when syncing tokens from Figma.\n *\n * Similarly, \"appButton\" tokens are developer-added (by r.tallmadge@xsolla.com).\n */\nexport const colors = {\n  dark: pentagramDark,\n  light: pentagramLight,\n  \"pentagram-dark\": pentagramDark,\n  \"pentagram-light\": pentagramLight,\n  \"ltg-dark\": ltgDark,\n  blueprints,\n};\n\nexport type ThemeColors = typeof pentagramDark;\n","export const spacing = {\n  xs: 4,\n  s: 8,\n  m: 16,\n  l: 24,\n  xl: 32,\n};\n\nexport const radius = {\n  button: 4,\n  card: 12,\n  contextMenu: 8,\n  input: 4,\n  tagSmall: 4,\n  tagMedium: 6,\n  tagLarge: 8,\n  avatarSmall: 4,\n  avatarLarge: 8,\n  avatarCircle: 999,\n};\n\n/** Primitive radius scale. Mirrors Figma \"Scale / radius/*\" variables. */\nexport const radiusScale = {\n  \"25\": 2,\n  \"50\": 4,\n  \"75\": 6,\n  \"100\": 8,\n  \"150\": 12,\n  \"200\": 16,\n  \"250\": 20,\n  \"300\": 24,\n  \"350\": 28,\n  \"400\": 32,\n  \"999\": 999,\n} as const;\n\n/** Primitive border-width scale. Mirrors Figma \"Scale / stroke/*\" variables. */\nexport const stroke = {\n  \"1\": 1,\n  \"2\": 2,\n  \"3\": 3,\n} as const;\n","import { radiusScale, stroke } from \"./spacing\";\n\n/**\n * Semantic shape tokens. Mirrors Figma \"Theme / Shape\" variable collection,\n * Xsolla Default mode. Values alias into the radiusScale and stroke primitives.\n */\nexport const shape = {\n  button: {\n    xl: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"75\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    xs: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n  },\n  checkbox: {\n    xl: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n  },\n  input: {\n    xl: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    xs: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n  },\n  segmented: {\n    xl: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n  },\n  segmentedItem: {\n    xl: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"25\"], borderWidth: stroke[\"1\"] },\n  },\n  switch: {\n    xl: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n  },\n  knob: {\n    xl: { borderRadius: radiusScale[\"25\"] },\n    lg: { borderRadius: radiusScale[\"25\"] },\n    md: { borderRadius: radiusScale[\"25\"] },\n    sm: { borderRadius: radiusScale[\"25\"] },\n  },\n  tabItem: {\n    xl: { borderRadius: radiusScale[\"100\"] },\n    lg: { borderRadius: radiusScale[\"100\"] },\n    md: { borderRadius: radiusScale[\"50\"] },\n    sm: { borderRadius: radiusScale[\"50\"] },\n  },\n  tag: {\n    xl: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"75\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    xs: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    label: { borderRadius: 0 },\n  },\n  tooltip: {\n    xl: { borderRadius: radiusScale[\"100\"] },\n    lg: { borderRadius: radiusScale[\"100\"] },\n    md: { borderRadius: radiusScale[\"100\"] },\n    sm: { borderRadius: radiusScale[\"50\"] },\n  },\n  radio: {\n    xl: { borderRadius: radiusScale[\"999\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"999\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"999\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"999\"], borderWidth: stroke[\"1\"] },\n  },\n  contextMenu: {\n    xl: { borderRadius: radiusScale[\"100\"] },\n    lg: { borderRadius: radiusScale[\"100\"] },\n    md: { borderRadius: radiusScale[\"100\"] },\n    sm: { borderRadius: radiusScale[\"50\"] },\n    xs: { borderRadius: radiusScale[\"50\"] },\n  },\n  avatar: {\n    xl: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"2\"] },\n    lg: { borderRadius: radiusScale[\"75\"], borderWidth: stroke[\"2\"] },\n    md: { borderRadius: radiusScale[\"75\"], borderWidth: stroke[\"2\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"2\"] },\n    xs: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"2\"] },\n    xxs: { borderRadius: radiusScale[\"25\"], borderWidth: stroke[\"2\"] },\n  },\n  modal: {\n    borderRadius: radiusScale[\"100\"],\n  },\n  toast: {\n    borderRadius: radiusScale[\"50\"],\n  },\n  toggleButtonGroup: {\n    xl: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    lg: { borderRadius: radiusScale[\"100\"], borderWidth: stroke[\"1\"] },\n    md: { borderRadius: radiusScale[\"75\"], borderWidth: stroke[\"1\"] },\n    sm: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n    xs: { borderRadius: radiusScale[\"50\"], borderWidth: stroke[\"1\"] },\n  },\n  tagLabel: {\n    borderRadius: 0,\n  },\n} as const;\n","export const shadow = {\n  active: \"0px 1px 2px rgba(7, 7, 8, 0.2), 0px 1px 3px 1px rgba(7, 7, 8, 0.1)\",\n  surface: \"0px 1px 2px rgba(7, 7, 8, 0.2), 0px 2px 6px 2px rgba(7, 7, 8, 0.1)\",\n  surfaceHover:\n    \"0px 4px 8px 3px rgba(7, 7, 8, 0.1), 0px 1px 3px rgba(7, 7, 8, 0.2)\",\n  popover:\n    \"0px 6px 10px 4px rgba(7, 7, 8, 0.1), 0px 2px 3px rgba(7, 7, 8, 0.2)\",\n  modal: \"0px 8px 12px 6px rgba(7, 7, 8, 0.1), 0px 4px 4px rgba(7, 7, 8, 0.2)\",\n  contextMenu: \"0px 4px 12px rgba(0, 0, 0, 0.15)\",\n};\n","/**\n * Font family definitions per ProductContext.\n *\n * Figma \"Font\" variable collection defines 3 roles:\n *   - display: heading/display font (Pilat or Pilat Wide)\n *   - compact: body/UI font (Aktiv Grotesk or Montserrat)\n *   - text: paragraph/reading font (same families as compact)\n *\n * The `heading` and `body` exports map to these Figma roles:\n *   heading → display\n *   body → compact (also used for text contexts)\n */\n\nimport type { ProductContext } from \"./typography\";\n\nconst FALLBACK =\n  '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif';\n\nconst displayFontByContext: Record<ProductContext, string> = {\n  b2b: `\"Pilat\", \"Aktiv Grotesk\", \"Noto Sans\", \"Montserrat\", ${FALLBACK}`,\n  b2c: `\"Pilat Wide\", \"Aktiv Grotesk\", \"Noto Sans\", \"Montserrat\", ${FALLBACK}`,\n};\n\nconst bodyFont = `\"Aktiv Grotesk\", \"Noto Sans\", \"Montserrat\", ${FALLBACK}`;\n\n/** Static fonts object (defaults to B2B for backwards compatibility) */\nexport const fonts = {\n  heading: displayFontByContext.b2b,\n  body: bodyFont,\n  /** Paragraph/reading font — same families as body */\n  text: bodyFont,\n  /** @deprecated Use `heading` or `body` instead */\n  primary: bodyFont,\n};\n\n/** Returns context-aware font families */\nexport const getFonts = (productContext: ProductContext = \"b2b\") => ({\n  heading: displayFontByContext[productContext],\n  body: bodyFont,\n  /** Paragraph/reading font — same families as body */\n  text: bodyFont,\n  /** @deprecated Use `heading` or `body` instead */\n  primary: bodyFont,\n});\n\nexport const typography = {\n  button: {\n    fontFamily: fonts.body,\n    fontWeight: \"bold\",\n  },\n};\n","/**\n * Responsive typography scale tokens sourced from the Figma\n * \"Responsive / Typography\" variable collection.\n *\n * Three device modes: Common (default), Mobile, Desktop.\n * Common and Desktop have identical values. Mobile scales down.\n *\n * These are the raw building blocks. Semantic tokens in typography.ts\n * alias into this scale (e.g., B2B heading/h1/font-size → font-size/650).\n *\n * On web, these are injected as CSS custom properties (--xui-font-size-*, --xui-lh-*)\n * with @media overrides for mobile. Components consume a single CSS variable\n * and scale automatically by viewport.\n *\n * @see {@link ../styles/typography-css.ts} for CSS generation\n * @see {@link ./breakpoints.ts} for breakpoint definitions\n */\n\nexport interface ResponsiveValue {\n  common: number;\n  mobile: number;\n}\n\nexport type ScaleStep =\n  | \"75\"\n  | \"100\"\n  | \"125\"\n  | \"150\"\n  | \"175\"\n  | \"200\"\n  | \"250\"\n  | \"300\"\n  | \"350\"\n  | \"450\"\n  | \"550\"\n  | \"650\"\n  | \"750\";\n\nexport const SCALE_STEPS: ScaleStep[] = [\n  \"75\",\n  \"100\",\n  \"125\",\n  \"150\",\n  \"175\",\n  \"200\",\n  \"250\",\n  \"300\",\n  \"350\",\n  \"450\",\n  \"550\",\n  \"650\",\n  \"750\",\n];\n\n/** Font-size scale: 13 steps from 10px to 64px */\nexport const fontSize: Record<ScaleStep, ResponsiveValue> = {\n  \"75\": { common: 10, mobile: 10 },\n  \"100\": { common: 12, mobile: 11 },\n  \"125\": { common: 14, mobile: 12 },\n  \"150\": { common: 16, mobile: 14 },\n  \"175\": { common: 18, mobile: 16 },\n  \"200\": { common: 20, mobile: 18 },\n  \"250\": { common: 24, mobile: 20 },\n  \"300\": { common: 28, mobile: 24 },\n  \"350\": { common: 32, mobile: 28 },\n  \"450\": { common: 40, mobile: 32 },\n  \"550\": { common: 48, mobile: 40 },\n  \"650\": { common: 56, mobile: 48 },\n  \"750\": { common: 64, mobile: 56 },\n};\n\n/** Line-height/display: tight line-heights for headings (roughly 1:1 with font-size) */\nexport const lineHeightDisplay: Record<ScaleStep, ResponsiveValue> = {\n  \"75\": { common: 10, mobile: 10 },\n  \"100\": { common: 12, mobile: 11 },\n  \"125\": { common: 14, mobile: 12 },\n  \"150\": { common: 16, mobile: 14 },\n  \"175\": { common: 18, mobile: 16 },\n  \"200\": { common: 20, mobile: 18 },\n  \"250\": { common: 24, mobile: 20 },\n  \"300\": { common: 28, mobile: 24 },\n  \"350\": { common: 32, mobile: 28 },\n  \"450\": { common: 40, mobile: 32 },\n  \"550\": { common: 48, mobile: 40 },\n  \"650\": { common: 56, mobile: 48 },\n  \"750\": { common: 64, mobile: 56 },\n};\n\n/** Line-height/compact: moderate line-heights for UI body text */\nexport const lineHeightCompact: Record<ScaleStep, ResponsiveValue> = {\n  \"75\": { common: 14, mobile: 13 },\n  \"100\": { common: 16, mobile: 14 },\n  \"125\": { common: 18, mobile: 16 },\n  \"150\": { common: 20, mobile: 18 },\n  \"175\": { common: 24, mobile: 20 },\n  \"200\": { common: 26, mobile: 24 },\n  \"250\": { common: 30, mobile: 26 },\n  \"300\": { common: 36, mobile: 30 },\n  \"350\": { common: 42, mobile: 36 },\n  \"450\": { common: 52, mobile: 42 },\n  \"550\": { common: 62, mobile: 52 },\n  \"650\": { common: 72, mobile: 62 },\n  \"750\": { common: 82, mobile: 72 },\n};\n\n/** Line-height/text: generous line-heights for paragraphs and reading text */\nexport const lineHeightText: Record<ScaleStep, ResponsiveValue> = {\n  \"75\": { common: 14, mobile: 13 },\n  \"100\": { common: 18, mobile: 14 },\n  \"125\": { common: 20, mobile: 16 },\n  \"150\": { common: 22, mobile: 18 },\n  \"175\": { common: 26, mobile: 20 },\n  \"200\": { common: 28, mobile: 24 },\n  \"250\": { common: 34, mobile: 26 },\n  \"300\": { common: 40, mobile: 30 },\n  \"350\": { common: 44, mobile: 36 },\n  \"450\": { common: 56, mobile: 42 },\n  \"550\": { common: 66, mobile: 52 },\n  \"650\": { common: 78, mobile: 62 },\n  \"750\": { common: 88, mobile: 72 },\n};\n\nexport const responsiveTypographyScale = {\n  fontSize,\n  lineHeightDisplay,\n  lineHeightCompact,\n  lineHeightText,\n} as const;\n","/**\n * Typography token definitions for different product contexts.\n *\n * ProductContext determines typography scales — font sizes, line heights,\n * and font weights vary between B2B, B2C, Pay Station, and Presentation.\n *\n * Values are synced from the Figma \"Theme / Typography\" variable collection.\n * Each semantic token (e.g., heading/h1/font-size) aliases into the responsive\n * scale defined in responsive-typography.ts. The `scaleStep` field records\n * which scale step a token maps to, enabling CSS variable consumption on web.\n *\n * Line-height categories:\n *   - Headings and display use \"display\" line-heights (tight, ~1:1)\n *   - Body default/accent use \"compact\" line-heights (moderate)\n *   - Body paragraph uses \"text\" line-heights (generous, for reading)\n */\n\nimport {\n  fontSize,\n  lineHeightDisplay,\n  lineHeightCompact,\n  lineHeightText,\n} from \"./responsive-typography\";\n\nexport type ProductContext = \"b2c\" | \"b2b\";\n\nexport interface TypographyVariant {\n  fontSize: number;\n  lineHeight: string;\n  fontWeight: number;\n  /** The responsive scale step this variant maps to (e.g., \"650\" for 56px) */\n  scaleStep?: string;\n  /** The line-height category: \"display\", \"compact\", or \"text\" */\n  lineHeightCategory?: \"display\" | \"compact\" | \"text\";\n}\n\nexport interface TypographyBodyVariant extends TypographyVariant {\n  accent?: {\n    fontWeight: number;\n  };\n  paragraph?: {\n    lineHeight: string;\n    spacing?: number;\n    /** The line-height scale step for the paragraph variant */\n    lineHeightScaleStep?: string;\n  };\n}\n\nexport interface TypographyTokens {\n  heading: {\n    h1: TypographyVariant;\n    h2: TypographyVariant;\n    h3: TypographyVariant;\n    h4: TypographyVariant;\n    h5: TypographyVariant;\n  };\n  basic: {\n    display: TypographyVariant;\n    \"body-lg\": TypographyBodyVariant;\n    \"body-md\": TypographyBodyVariant;\n    \"body-sm\": TypographyBodyVariant;\n    \"body-xs\": TypographyBodyVariant;\n    \"body-xxs\": TypographyBodyVariant;\n  };\n}\n\nexport const typographyTokens: Record<ProductContext, TypographyTokens> = {\n  b2c: {\n    heading: {\n      h1: {\n        fontSize: fontSize[\"450\"].common,\n        lineHeight: `${lineHeightDisplay[\"450\"].common}px`,\n        fontWeight: 700,\n        scaleStep: \"450\",\n        lineHeightCategory: \"display\",\n      },\n      h2: {\n        fontSize: fontSize[\"350\"].common,\n        lineHeight: `${lineHeightDisplay[\"350\"].common}px`,\n        fontWeight: 700,\n        scaleStep: \"350\",\n        lineHeightCategory: \"display\",\n      },\n      h3: {\n        fontSize: fontSize[\"300\"].common,\n        lineHeight: `${lineHeightDisplay[\"300\"].common}px`,\n        fontWeight: 700,\n        scaleStep: \"300\",\n        lineHeightCategory: \"display\",\n      },\n      h4: {\n        fontSize: fontSize[\"250\"].common,\n        lineHeight: `${lineHeightDisplay[\"250\"].common}px`,\n        fontWeight: 700,\n        scaleStep: \"250\",\n        lineHeightCategory: \"display\",\n      },\n      h5: {\n        fontSize: fontSize[\"200\"].common,\n        lineHeight: `${lineHeightDisplay[\"200\"].common}px`,\n        fontWeight: 700,\n        scaleStep: \"200\",\n        lineHeightCategory: \"display\",\n      },\n    },\n    basic: {\n      display: {\n        fontSize: fontSize[\"550\"].common,\n        lineHeight: `${lineHeightDisplay[\"550\"].common}px`,\n        fontWeight: 800,\n        scaleStep: \"550\",\n        lineHeightCategory: \"display\",\n      },\n      \"body-lg\": {\n        fontSize: fontSize[\"175\"].common,\n        lineHeight: `${lineHeightCompact[\"175\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"175\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"175\"].common}px`,\n          spacing: 20,\n          lineHeightScaleStep: \"175\",\n        },\n      },\n      \"body-md\": {\n        fontSize: fontSize[\"150\"].common,\n        lineHeight: `${lineHeightCompact[\"150\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"150\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"150\"].common}px`,\n          spacing: 16,\n          lineHeightScaleStep: \"150\",\n        },\n      },\n      \"body-sm\": {\n        fontSize: fontSize[\"125\"].common,\n        lineHeight: `${lineHeightCompact[\"125\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"125\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"125\"].common}px`,\n          spacing: 12,\n          lineHeightScaleStep: \"125\",\n        },\n      },\n      \"body-xs\": {\n        fontSize: fontSize[\"100\"].common,\n        lineHeight: `${lineHeightCompact[\"100\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"100\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"100\"].common}px`,\n          spacing: 8,\n          lineHeightScaleStep: \"100\",\n        },\n      },\n      \"body-xxs\": {\n        fontSize: fontSize[\"75\"].common,\n        lineHeight: `${lineHeightCompact[\"75\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"75\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"75\"].common}px`,\n          spacing: 6,\n          lineHeightScaleStep: \"75\",\n        },\n      },\n    },\n  },\n  b2b: {\n    heading: {\n      h1: {\n        fontSize: fontSize[\"650\"].common,\n        lineHeight: `${lineHeightDisplay[\"650\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"650\",\n        lineHeightCategory: \"display\",\n      },\n      h2: {\n        fontSize: fontSize[\"550\"].common,\n        lineHeight: `${lineHeightDisplay[\"550\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"550\",\n        lineHeightCategory: \"display\",\n      },\n      h3: {\n        fontSize: fontSize[\"350\"].common,\n        lineHeight: `${lineHeightDisplay[\"350\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"350\",\n        lineHeightCategory: \"display\",\n      },\n      h4: {\n        fontSize: fontSize[\"250\"].common,\n        lineHeight: `${lineHeightDisplay[\"250\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"250\",\n        lineHeightCategory: \"display\",\n      },\n      h5: {\n        fontSize: fontSize[\"200\"].common,\n        lineHeight: `${lineHeightDisplay[\"200\"].common}px`,\n        fontWeight: 600,\n        scaleStep: \"200\",\n        lineHeightCategory: \"display\",\n      },\n    },\n    basic: {\n      display: {\n        fontSize: fontSize[\"750\"].common,\n        lineHeight: `${lineHeightDisplay[\"750\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"750\",\n        lineHeightCategory: \"display\",\n      },\n      \"body-lg\": {\n        fontSize: fontSize[\"175\"].common,\n        lineHeight: `${lineHeightCompact[\"175\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"175\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"175\"].common}px`,\n          spacing: 20,\n          lineHeightScaleStep: \"175\",\n        },\n      },\n      \"body-md\": {\n        fontSize: fontSize[\"150\"].common,\n        lineHeight: `${lineHeightCompact[\"150\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"150\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"150\"].common}px`,\n          spacing: 16,\n          lineHeightScaleStep: \"150\",\n        },\n      },\n      \"body-sm\": {\n        fontSize: fontSize[\"125\"].common,\n        lineHeight: `${lineHeightCompact[\"125\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"125\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"125\"].common}px`,\n          spacing: 12,\n          lineHeightScaleStep: \"125\",\n        },\n      },\n      \"body-xs\": {\n        fontSize: fontSize[\"100\"].common,\n        lineHeight: `${lineHeightCompact[\"100\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"100\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"100\"].common}px`,\n          spacing: 8,\n          lineHeightScaleStep: \"100\",\n        },\n      },\n      \"body-xxs\": {\n        fontSize: fontSize[\"75\"].common,\n        lineHeight: `${lineHeightCompact[\"75\"].common}px`,\n        fontWeight: 400,\n        scaleStep: \"75\",\n        lineHeightCategory: \"compact\",\n        accent: { fontWeight: 500 },\n        paragraph: {\n          lineHeight: `${lineHeightText[\"75\"].common}px`,\n          spacing: 6,\n          lineHeightScaleStep: \"75\",\n        },\n      },\n    },\n  },\n};\n\nexport const defaultProductContext: ProductContext = \"b2b\";\n\nexport const getTypographyTokens = (\n  productContext: ProductContext = defaultProductContext\n): TypographyTokens => {\n  return (\n    typographyTokens[productContext] || typographyTokens[defaultProductContext]\n  );\n};\n\nexport const getTypographyVariant = (\n  productContext: ProductContext,\n  variant: string\n): TypographyVariant | TypographyBodyVariant | undefined => {\n  const tokens = getTypographyTokens(productContext);\n\n  if (variant in tokens.heading) {\n    return tokens.heading[variant as keyof typeof tokens.heading];\n  }\n\n  if (variant === \"display\") {\n    return tokens.basic.display;\n  }\n\n  const bodyVariantMap: Record<string, keyof typeof tokens.basic> = {\n    bodyLg: \"body-lg\",\n    bodyMd: \"body-md\",\n    bodySm: \"body-sm\",\n    bodyXs: \"body-xs\",\n    bodyXxs: \"body-xxs\",\n  };\n\n  const bodyKey =\n    bodyVariantMap[variant.replace(\"Accent\", \"\").replace(\"Paragraph\", \"\")];\n  if (bodyKey && bodyKey in tokens.basic) {\n    const baseVariant = tokens.basic[\n      bodyKey as keyof typeof tokens.basic\n    ] as TypographyBodyVariant;\n\n    if (variant.includes(\"Accent\") && baseVariant.accent) {\n      return {\n        ...baseVariant,\n        fontWeight: baseVariant.accent.fontWeight,\n      };\n    }\n\n    if (variant.includes(\"Paragraph\") && baseVariant.paragraph) {\n      return {\n        ...baseVariant,\n        lineHeight: baseVariant.paragraph.lineHeight,\n      };\n    }\n\n    return baseVariant;\n  }\n\n  return undefined;\n};\n","import React, { useEffect, useRef } from \"react\";\nimport { isWeb } from \"../platform\";\nimport { fontFacesCSS } from \"./fontFaces\";\n\nlet injected = false;\n\n/**\n * Injects @font-face declarations into the document on web.\n * Safe to render multiple times — the style tag is only created once.\n * No-ops on React Native.\n */\nfunction injectFontStyles(): void {\n  if (!isWeb || injected) return;\n\n  const style = document.createElement(\"style\");\n  style.setAttribute(\"data-xui-fonts\", \"\");\n  style.textContent = fontFacesCSS;\n  document.head.appendChild(style);\n  injected = true;\n}\n\n/**\n * React component that loads the toolkit's font-face declarations.\n * Drop-in for any framework — works in Next.js, Vite, CRA, etc.\n *\n * Renders nothing to the DOM. Injects a single `<style>` tag into `<head>` on mount.\n */\nexport const FontLoader: React.FC = () => {\n  const mountedRef = useRef(false);\n\n  useEffect(() => {\n    if (!mountedRef.current) {\n      injectFontStyles();\n      mountedRef.current = true;\n    }\n  }, []);\n\n  return null;\n};\n\nFontLoader.displayName = \"FontLoader\";\n","export const isWeb = typeof document !== \"undefined\";\nexport const isNative = !isWeb;\n\n// For native platforms, we can check specific globals if needed,\n// but usually we just care about isWeb vs isNative for common logic.\nexport const isIOS =\n  isNative &&\n  typeof global !== \"undefined\" &&\n  (global as any).Platform?.OS === \"ios\";\nexport const isAndroid =\n  isNative &&\n  typeof global !== \"undefined\" &&\n  (global as any).Platform?.OS === \"android\";\n","const CDN = \"https://cdn.xsolla.net/xsolla-ui-toolkit-prod/fonts/v1\";\n\nconst UNICODE_RANGE_LATIN =\n  \"U+0000-024F, U+0250-02AF, U+0300-036F, U+0370-03FF, U+0400-04FF, U+2000-206F, U+20A0-20CF, U+2100-214F\";\nconst UNICODE_RANGE_CN =\n  \"U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE30-FE4F, U+FF00-FFEF\";\nconst UNICODE_RANGE_JP =\n  \"U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF, U+FF65-FF9F\";\nconst UNICODE_RANGE_KR =\n  \"U+1100-11FF, U+3130-318F, U+A960-A97F, U+AC00-D7A3, U+D7B0-D7FF, U+FFA0-FFDC\";\n\n/**\n * @font-face CSS for all toolkit fonts, loaded from Xsolla CDN.\n *\n * Pilat Wide — B2C heading/display font, weights 600, 700, 800.\n * Pilat — B2B heading/display font, weights 300, 400, 500, 600, 700, 800.\n * Aktiv Grotesk — body font for all contexts, weights 400, 500, 600.\n *   Four editions loaded via unicode-range: Latin, CN/SG, JP, KR.\n *   The browser downloads only the subset needed for characters on the page.\n *\n * Weight coverage notes (intentional gaps — licensing constraint, Xsolla\n * does not hold rights to the omitted cuts):\n *   - Pilat Wide 400 — not licensed. Components using weight 400 on Pilat\n *     Wide will render at 600 via browser substitution (heavier).\n *   - Aktiv Grotesk 300 — not licensed. (No component currently requests it.)\n *   - Aktiv Grotesk 700 — not licensed. Substitutes to 600 (lighter).\n *   - CJK editions (cn-sg, jp, kr) — 400/500/600 only; no 700/800.\n *     Heavy weights on CJK text fall back to the Latin file (no glyphs)\n *     and then to the system fallback stack.\n *\n * Do not add @font-face entries for the omitted weights without first\n * confirming the licence has been extended.\n */\nexport const fontFacesCSS = `\n  /* ── Pilat Wide (B2C headings) ── */\n\n  @font-face {\n    font-family: 'Pilat Wide';\n    src: url('${CDN}/pilat-wide/pilat-wide-600.woff2') format('woff2');\n    font-weight: 600;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat Wide';\n    src: url('${CDN}/pilat-wide/pilat-wide-700.woff2') format('woff2');\n    font-weight: 700;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat Wide';\n    src: url('${CDN}/pilat-wide/pilat-wide-800.woff2') format('woff2');\n    font-weight: 800;\n    font-style: normal;\n    font-display: swap;\n  }\n\n  /* ── Pilat (B2B headings) ── */\n\n  @font-face {\n    font-family: 'Pilat';\n    src: url('${CDN}/pilat/pilat-300.woff2') format('woff2');\n    font-weight: 300;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat';\n    src: url('${CDN}/pilat/pilat-400.woff2') format('woff2');\n    font-weight: 400;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat';\n    src: url('${CDN}/pilat/pilat-500.woff2') format('woff2');\n    font-weight: 500;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat';\n    src: url('${CDN}/pilat/pilat-600.woff2') format('woff2');\n    font-weight: 600;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat';\n    src: url('${CDN}/pilat/pilat-700.woff2') format('woff2');\n    font-weight: 700;\n    font-style: normal;\n    font-display: swap;\n  }\n  @font-face {\n    font-family: 'Pilat';\n    src: url('${CDN}/pilat/pilat-800.woff2') format('woff2');\n    font-weight: 800;\n    font-style: normal;\n    font-display: swap;\n  }\n\n  /* ── Aktiv Grotesk (body) — Latin ── */\n\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/latin/aktiv-grotesk-latin-400.woff2') format('woff2');\n    font-weight: 400;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_LATIN};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/latin/aktiv-grotesk-latin-500.woff2') format('woff2');\n    font-weight: 500;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_LATIN};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/latin/aktiv-grotesk-latin-600.woff2') format('woff2');\n    font-weight: 600;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_LATIN};\n  }\n\n  /* ── Aktiv Grotesk (body) — Chinese / SG ── */\n\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/cn-sg/aktiv-grotesk-cn-sg-400.woff2') format('woff2');\n    font-weight: 400;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_CN};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/cn-sg/aktiv-grotesk-cn-sg-500.woff2') format('woff2');\n    font-weight: 500;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_CN};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/cn-sg/aktiv-grotesk-cn-sg-600.woff2') format('woff2');\n    font-weight: 600;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_CN};\n  }\n\n  /* ── Aktiv Grotesk (body) — Japanese ── */\n\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/jp/aktiv-grotesk-jp-400.woff2') format('woff2');\n    font-weight: 400;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_JP};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/jp/aktiv-grotesk-jp-500.woff2') format('woff2');\n    font-weight: 500;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_JP};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/jp/aktiv-grotesk-jp-600.woff2') format('woff2');\n    font-weight: 600;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_JP};\n  }\n\n  /* ── Aktiv Grotesk (body) — Korean ── */\n\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/kr/aktiv-grotesk-kr-400.woff2') format('woff2');\n    font-weight: 400;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_KR};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/kr/aktiv-grotesk-kr-500.woff2') format('woff2');\n    font-weight: 500;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_KR};\n  }\n  @font-face {\n    font-family: 'Aktiv Grotesk';\n    src: url('${CDN}/aktiv-grotesk/kr/aktiv-grotesk-kr-600.woff2') format('woff2');\n    font-weight: 600;\n    font-style: normal;\n    font-display: swap;\n    unicode-range: ${UNICODE_RANGE_KR};\n  }\n`;\n","import React, { useEffect, useRef } from \"react\";\nimport { isWeb } from \"../platform\";\nimport { generateTypographyCSS } from \"./typography-css\";\n\nlet injected = false;\n\n/**\n * Injects responsive typography CSS custom properties into the document.\n * Safe to render multiple times — the style tag is only created once.\n * No-ops on React Native.\n *\n * Injected CSS includes :root variables for all font-size and line-height\n * scale steps, plus @media overrides for mobile breakpoints.\n *\n * @see {@link ./typography-css.ts} for the generated CSS content\n */\nfunction injectTypographyStyles(): void {\n  if (!isWeb || injected) return;\n\n  const style = document.createElement(\"style\");\n  style.setAttribute(\"data-xui-typography\", \"\");\n  style.textContent = generateTypographyCSS();\n  document.head.appendChild(style);\n  injected = true;\n}\n\nexport const TypographyStyleLoader: React.FC = () => {\n  const mountedRef = useRef(false);\n\n  useEffect(() => {\n    if (!mountedRef.current) {\n      injectTypographyStyles();\n      mountedRef.current = true;\n    }\n  }, []);\n\n  return null;\n};\n\nTypographyStyleLoader.displayName = \"TypographyStyleLoader\";\n","/**\n * Responsive breakpoint definitions for the design system.\n *\n * Derived from the Figma \"Responsive / Typography\" variable collection,\n * which has three modes: Common, Mobile, Desktop.\n * Common and Desktop share identical values; Mobile scales down.\n *\n * Usage (CSS):\n *   @media (max-width: 767px) { ... }   // Mobile\n *   @media (min-width: 768px) { ... }    // Desktop\n *\n * Usage (JS):\n *   import { breakpoints } from '@xsolla/xui-core';\n *   const isMobile = window.innerWidth < breakpoints.desktop;\n */\n\nexport const breakpoints = {\n  /** Mobile: 0 – 767px */\n  mobile: 0,\n  /** Desktop: 768px and above */\n  desktop: 768,\n} as const;\n\nexport type BreakpointKey = keyof typeof breakpoints;\n\n/**\n * Max-width media query value for targeting mobile devices.\n * Use in CSS: `@media (max-width: ${MOBILE_MAX_WIDTH}px)`\n */\nexport const MOBILE_MAX_WIDTH = breakpoints.desktop - 1;\n","/**\n * Generates the CSS custom properties string for responsive typography.\n *\n * Produces two blocks:\n * 1. :root — Desktop/Common values (the default)\n * 2. @media (max-width: 767px) :root — Mobile overrides\n *\n * CSS variable naming convention (mirrors Figma variable names):\n *   --xui-font-size-{step}       → e.g. --xui-font-size-150: 16px\n *   --xui-lh-display-{step}      → e.g. --xui-lh-display-150: 16px\n *   --xui-lh-compact-{step}      → e.g. --xui-lh-compact-150: 20px\n *   --xui-lh-text-{step}         → e.g. --xui-lh-text-150: 22px\n *\n * Consumers can use these in CSS or styled-components:\n *   font-size: var(--xui-font-size-350);\n *   line-height: var(--xui-lh-compact-350);\n *\n * @see {@link ../tokens/responsive-typography.ts} for raw token data\n * @see {@link ../tokens/breakpoints.ts} for breakpoint definitions\n */\n\nimport {\n  fontSize,\n  lineHeightDisplay,\n  lineHeightCompact,\n  lineHeightText,\n  SCALE_STEPS,\n} from \"../tokens/responsive-typography\";\nimport { MOBILE_MAX_WIDTH } from \"../tokens/breakpoints\";\n\nfunction buildDeclarations(mode: \"common\" | \"mobile\"): string {\n  const lines: string[] = [];\n\n  for (const step of SCALE_STEPS) {\n    lines.push(`--xui-font-size-${step}:${fontSize[step][mode]}px`);\n  }\n\n  for (const step of SCALE_STEPS) {\n    lines.push(`--xui-lh-display-${step}:${lineHeightDisplay[step][mode]}px`);\n  }\n\n  for (const step of SCALE_STEPS) {\n    lines.push(`--xui-lh-compact-${step}:${lineHeightCompact[step][mode]}px`);\n  }\n\n  for (const step of SCALE_STEPS) {\n    lines.push(`--xui-lh-text-${step}:${lineHeightText[step][mode]}px`);\n  }\n\n  return lines.join(\";\");\n}\n\nlet _cached: string | null = null;\n\n/**\n * Returns the full CSS string for responsive typography custom properties.\n * The result is memoized — safe to call multiple times.\n */\nexport function generateTypographyCSS(): string {\n  if (_cached) return _cached;\n\n  const desktopVars = buildDeclarations(\"common\");\n  const mobileVars = buildDeclarations(\"mobile\");\n\n  _cached =\n    `:root{${desktopVars}}` +\n    `@media(max-width:${MOBILE_MAX_WIDTH}px){:root{${mobileVars}}}`;\n\n  return _cached;\n}\n\n/**\n * Returns the CSS variable name for a given font-size scale step.\n * Useful when the Typography component needs to reference a CSS variable.\n *\n * @example cssVar.fontSize(\"350\") → \"var(--xui-font-size-350)\"\n */\nexport const cssVar = {\n  fontSize: (step: string) => `var(--xui-font-size-${step})`,\n  lhDisplay: (step: string) => `var(--xui-lh-display-${step})`,\n  lhCompact: (step: string) => `var(--xui-lh-compact-${step})`,\n  lhText: (step: string) => `var(--xui-lh-text-${step})`,\n} as const;\n"],"mappings":"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","names":["React","useEffect","useRef","injected","useRef","useEffect","React"]}