@xsolla/xui-core 0.149.0 → 0.149.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/tokens/pentagram-dark.json","../src/tokens/pentagram-light.json","../src/tokens/ltg-dark.json","../src/tokens/colors.ts","../src/tokens/spacing.ts","../src/tokens/shadows.ts","../src/tokens/fonts.ts","../src/tokens/typography.ts","../src/fonts/FontLoader.tsx","../src/platform.ts","../src/fonts/fontFaces.ts","../src/styles/TypographyStyleLoader.tsx","../src/tokens/responsive-typography.ts","../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, radius } from \"./tokens/spacing\";\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\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 radius,\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 sublabelFontSize: 18,\n spinnerSize: 24,\n iconSize: 32,\n iconContainerSize: 64,\n iconPadding: 20,\n loadingPadding: 40,\n borderRadius: 8,\n labelIconSize: 18,\n labelIconGap: 6,\n },\n lg: {\n height: 56,\n padding: 20,\n fontSize: 18,\n sublabelFontSize: 16,\n spinnerSize: 24,\n iconSize: 32,\n iconContainerSize: 56,\n iconPadding: 20,\n loadingPadding: 36,\n borderRadius: 8,\n labelIconSize: 16,\n labelIconGap: 6,\n },\n md: {\n height: 48,\n padding: 20,\n fontSize: 16,\n sublabelFontSize: 14,\n spinnerSize: 20,\n iconSize: 28,\n iconContainerSize: 48,\n iconPadding: 20,\n loadingPadding: 32,\n borderRadius: 8,\n labelIconSize: 14,\n labelIconGap: 4,\n },\n sm: {\n height: 40,\n padding: 20,\n fontSize: 14,\n sublabelFontSize: 12,\n spinnerSize: 16,\n iconSize: 28,\n iconContainerSize: 40,\n iconPadding: 20,\n loadingPadding: 28,\n borderRadius: 4,\n labelIconSize: 12,\n labelIconGap: 4,\n },\n xs: {\n height: 32,\n padding: 20,\n fontSize: 12,\n sublabelFontSize: 10,\n spinnerSize: 16,\n iconSize: 24,\n iconContainerSize: 32,\n iconPadding: 20,\n loadingPadding: 28,\n borderRadius: 4,\n labelIconSize: 10,\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: 4,\n },\n lg: {\n height: 32,\n padding: 4,\n fontSize: 14,\n spinnerSize: 24,\n iconSize: 18,\n borderRadius: 4,\n },\n md: {\n height: 28,\n padding: 2,\n fontSize: 14,\n spinnerSize: 24,\n iconSize: 16,\n borderRadius: 2,\n },\n sm: {\n height: 22,\n padding: 2,\n fontSize: 12,\n spinnerSize: 16,\n iconSize: 14,\n borderRadius: 2,\n },\n xs: {\n height: 20,\n padding: 2,\n fontSize: 12,\n spinnerSize: 16,\n iconSize: 12,\n borderRadius: 2,\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: 2,\n },\n lg: {\n size: 20,\n fontSize: 16,\n descriptionFontSize: 14,\n labelGap: 10,\n textGap: 2,\n borderRadius: 2,\n },\n md: {\n size: 18,\n fontSize: 16,\n descriptionFontSize: 14,\n labelGap: 8,\n textGap: 2,\n borderRadius: 2,\n },\n sm: {\n size: 16,\n fontSize: 14,\n descriptionFontSize: 12,\n labelGap: 8,\n textGap: 0,\n borderRadius: 2,\n },\n };\n return configs[size];\n },\n radio: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n const configs = {\n xl: {\n size: 24,\n fontSize: 20,\n lineHeight: 22,\n descriptionFontSize: 18,\n descriptionLineHeight: 20,\n labelGap: 12,\n textGap: 4,\n borderWidth: 2,\n },\n lg: {\n size: 20,\n fontSize: 18,\n lineHeight: 20,\n descriptionFontSize: 16,\n descriptionLineHeight: 18,\n labelGap: 10,\n textGap: 2,\n borderWidth: 2,\n },\n md: {\n size: 18,\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 fontSize: 14,\n lineHeight: 16,\n descriptionFontSize: 12,\n descriptionLineHeight: 14,\n labelGap: 8,\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: 8,\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: 8,\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: 8,\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: 4,\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: 4,\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 wideWidth: 440,\n padding: 14,\n gap: 10,\n iconSize: 32,\n labelFontSize: 20,\n labelLineHeight: 22,\n descriptionFontSize: 20,\n descriptionLineHeight: 22,\n errorFontSize: 16,\n errorLineHeight: 18,\n errorGap: 8,\n radius: 8,\n borderWidth: 1,\n },\n lg: {\n box: 168,\n wideWidth: 440,\n padding: 14,\n gap: 10,\n iconSize: 24,\n labelFontSize: 18,\n labelLineHeight: 24,\n descriptionFontSize: 18,\n descriptionLineHeight: 20,\n errorFontSize: 16,\n errorLineHeight: 18,\n errorGap: 8,\n radius: 8,\n borderWidth: 1,\n },\n md: {\n box: 136,\n wideWidth: 400,\n padding: 12,\n gap: 8,\n iconSize: 24,\n labelFontSize: 16,\n labelLineHeight: 20,\n descriptionFontSize: 14,\n descriptionLineHeight: 16,\n errorFontSize: 14,\n errorLineHeight: 16,\n errorGap: 6,\n radius: 8,\n borderWidth: 1,\n },\n sm: {\n box: 104,\n wideWidth: 320,\n padding: 10,\n gap: 6,\n iconSize: 18,\n labelFontSize: 14,\n labelLineHeight: 18,\n descriptionFontSize: 14,\n descriptionLineHeight: 18,\n errorFontSize: 12,\n errorLineHeight: 14,\n errorGap: 6,\n radius: 8,\n borderWidth: 1,\n },\n xs: {\n box: 72,\n wideWidth: 240,\n padding: 8,\n gap: 4,\n iconSize: 18,\n labelFontSize: 12,\n labelLineHeight: 16,\n descriptionFontSize: 12,\n descriptionLineHeight: 16,\n errorFontSize: 11,\n errorLineHeight: 13,\n errorGap: 4,\n radius: 8,\n borderWidth: 1,\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: 8,\n borderWidth: 1,\n fieldGap: 8,\n },\n lg: {\n size: 56,\n gap: 8,\n fontSize: 18,\n radius: 8,\n borderWidth: 1,\n fieldGap: 6,\n },\n md: {\n size: 48,\n gap: 6,\n fontSize: 16,\n radius: 8,\n borderWidth: 1,\n fieldGap: 4,\n },\n sm: {\n size: 40,\n gap: 4,\n fontSize: 14,\n radius: 4,\n borderWidth: 1,\n fieldGap: 4,\n },\n xs: {\n size: 32,\n gap: 4,\n fontSize: 12,\n radius: 4,\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: 8,\n },\n lg: {\n height: 128,\n padding: spacing.l,\n fontSize: 18,\n iconSize: 28,\n radius: 8,\n },\n md: {\n height: 112,\n padding: spacing.m,\n fontSize: 16,\n iconSize: 24,\n radius: 8,\n },\n sm: {\n height: 96,\n padding: spacing.s,\n fontSize: 14,\n iconSize: 20,\n radius: 4,\n },\n xs: {\n height: 80,\n padding: spacing.xs,\n fontSize: 12,\n iconSize: 16,\n radius: 4,\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: 4,\n knobBorderRadius: 2,\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: 4,\n knobBorderRadius: 2,\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: 2,\n knobBorderRadius: 2,\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: 2,\n knobBorderRadius: 2,\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: 8,\n borderRadiusCircle: radius.avatarCircle,\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: 6,\n borderRadiusCircle: radius.avatarCircle,\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: 6,\n borderRadiusCircle: radius.avatarCircle,\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: radius.avatarSmall,\n borderRadiusCircle: radius.avatarCircle,\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: radius.avatarSmall,\n borderRadiusCircle: radius.avatarCircle,\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: 2,\n borderRadiusCircle: radius.avatarCircle,\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: 8,\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: 8,\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: 6,\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: 4,\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: 4,\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: 8,\n itemHeight: 56,\n itemPaddingHorizontal: 20,\n itemPaddingVertical: 10,\n itemRadius: 6,\n fontSize: 20,\n lineHeight: 22,\n iconSize: 24,\n gap: 8,\n },\n lg: {\n height: 56,\n containerPadding: 4,\n containerRadius: 8,\n itemHeight: 48,\n itemPaddingHorizontal: 20,\n itemPaddingVertical: 10,\n itemRadius: 6,\n fontSize: 18,\n lineHeight: 20,\n iconSize: 24,\n gap: 8,\n },\n md: {\n height: 48,\n containerPadding: 4,\n containerRadius: 8,\n itemHeight: 40,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 8,\n itemRadius: 6,\n fontSize: 16,\n lineHeight: 18,\n iconSize: 24,\n gap: 6,\n },\n sm: {\n height: 40,\n containerPadding: 4,\n containerRadius: 4,\n itemHeight: 32,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 6,\n itemRadius: 2,\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 containerRadius: 4,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 18,\n itemRadius: 2,\n fontSize: 20,\n lineHeight: 22,\n iconSize: 24,\n gap: 8,\n },\n lg: {\n height: 56,\n containerPadding: 4,\n containerRadius: 4,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 14,\n itemRadius: 2,\n fontSize: 18,\n lineHeight: 20,\n iconSize: 24,\n gap: 8,\n },\n md: {\n height: 48,\n containerPadding: 4,\n containerRadius: 4,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 11,\n itemRadius: 2,\n fontSize: 16,\n lineHeight: 18,\n iconSize: 24,\n gap: 6,\n },\n sm: {\n height: 40,\n containerPadding: 3,\n containerRadius: 2,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 8,\n itemRadius: 2,\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: 4,\n },\n lg: {\n height: 56,\n paddingHorizontal: 16,\n paddingVertical: 18,\n fontSize: 18,\n lineHeight: 20,\n gap: 8,\n borderRadius: 4,\n },\n md: {\n height: 48,\n paddingHorizontal: 12,\n paddingVertical: 15,\n fontSize: 16,\n lineHeight: 18,\n gap: 8,\n borderRadius: 2,\n },\n sm: {\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 11,\n fontSize: 14,\n lineHeight: 16,\n gap: 4,\n borderRadius: 2,\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: radius.card,\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: radius.card,\n },\n };\n return configs[type];\n },\n notificationPanel: () => ({\n minHeight: 66,\n iconFrameWidth: 54,\n iconSize: 24,\n borderRadius: 8,\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: 8,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 18,\n fontSize: 20,\n lineHeight: 22,\n descriptionFontSize: 18,\n iconSize: 18,\n gap: 12,\n minWidth: 276,\n // Search sizing from Figma\n searchPaddingHorizontal: 16,\n searchPaddingVertical: 18,\n searchGap: 18,\n searchFontSize: 20,\n searchLineHeight: 22,\n searchIconSize: 18,\n },\n lg: {\n paddingVertical: 8,\n itemPaddingHorizontal: 14,\n itemPaddingVertical: 14,\n fontSize: 18,\n lineHeight: 20,\n descriptionFontSize: 16,\n iconSize: 18,\n gap: 10,\n minWidth: 220,\n // Search sizing from Figma\n searchPaddingHorizontal: 14,\n searchPaddingVertical: 14,\n searchGap: 14,\n searchFontSize: 18,\n searchLineHeight: 20,\n searchIconSize: 18,\n },\n md: {\n paddingVertical: 8,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 11,\n fontSize: 16,\n lineHeight: 18,\n descriptionFontSize: 14,\n iconSize: 18,\n gap: 8,\n minWidth: 172,\n // Search sizing from Figma\n searchPaddingHorizontal: 12,\n searchPaddingVertical: 11,\n searchGap: 10,\n searchFontSize: 16,\n searchLineHeight: 18,\n searchIconSize: 18,\n },\n sm: {\n paddingVertical: 8,\n itemPaddingHorizontal: 10,\n itemPaddingVertical: 8,\n fontSize: 14,\n lineHeight: 16,\n descriptionFontSize: 12,\n iconSize: 18,\n gap: 8,\n minWidth: 132,\n // Search sizing from Figma\n searchPaddingHorizontal: 10,\n searchPaddingVertical: 7,\n searchGap: 6,\n searchFontSize: 14,\n searchLineHeight: 16,\n searchIconSize: 18,\n },\n };\n return configs[size];\n },\n modal: () => {\n // Sizing values from Figma design: node-id=10457-7055\n return {\n borderRadius: 8,\n headerPadding: 8,\n contentPadding: 40,\n headerButtonSize: \"xl\" as const,\n headerGap: 8,\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.5)\",\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: 16,\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: 8,\n cellRadius: 4,\n iconSlotSize: 32,\n iconSlotRadius: 4,\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: 4,\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: 18,\n fontSize: 20,\n lineHeight: 22,\n iconSize: 24,\n gap: 6,\n borderRadius: 8,\n itemGap: 8,\n },\n lg: {\n height: 56,\n paddingHorizontal: 16,\n fontSize: 18,\n lineHeight: 20,\n iconSize: 24,\n gap: 4,\n borderRadius: 8,\n itemGap: 8,\n },\n md: {\n height: 48,\n paddingHorizontal: 16,\n fontSize: 16,\n lineHeight: 18,\n iconSize: 24,\n gap: 4,\n borderRadius: 8,\n itemGap: 8,\n },\n sm: {\n height: 40,\n paddingHorizontal: 12,\n fontSize: 14,\n lineHeight: 16,\n iconSize: 24,\n gap: 2,\n borderRadius: 4,\n itemGap: 4,\n },\n xs: {\n height: 32,\n paddingHorizontal: 12,\n fontSize: 14,\n lineHeight: 16,\n iconSize: 24,\n gap: 2,\n borderRadius: 4,\n itemGap: 4,\n },\n };\n return configs[size];\n },\n },\n };\n};\n\ninterface DesignSystemContextType {\n mode: ThemeMode;\n setMode: (mode: ThemeMode) => void;\n productContext: ProductContext;\n setProductContext: (productContext: ProductContext) => void;\n theme: ReturnType<typeof themeConfig>;\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 children,\n initialMode = \"dark\",\n initialProductContext = defaultProductContext,\n loadFonts = 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 }),\n [mode, productContext]\n );\n\n return (\n <DesignSystemContext.Provider value={value}>\n {loadFonts && <FontLoader />}\n <TypographyStyleLoader />\n {children}\n </DesignSystemContext.Provider>\n );\n};\n\nexport const useDesignSystem = () => {\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 };\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 = (overrides?: ThemeOverrideProps) => {\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/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\": \"#80eaff\",\n \"secondary\": \"#0b3841\"\n },\n \"brandExtra\": {\n \"primary\": \"#7055f6\",\n \"secondary\": \"#22136c\"\n },\n \"inverse\": \"#ffffff\",\n \"static\": {\n \"dark\": \"#000000\",\n \"light\": \"#ffffff\"\n },\n \"success\": {\n \"primary\": \"#95ff80\",\n \"secondary\": \"#14410b\"\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(232, 236, 237, 0.72)\",\n \"tertiary\": \"rgba(232, 236, 237, 0.58)\",\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\": \"#4b6368\"\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(178, 242, 255, 0.15)\",\n \"brand\": \"#31cae8\",\n \"brandExtra\": \"#9580ff\",\n \"inverse\": \"rgba(0, 0, 0, 0.15)\",\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(232, 79, 48, 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.5)\",\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\": \"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\": \"#4b6368\",\n \"bgPress\": \"#233134\",\n \"border\": \"#4b6368\",\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\": \"rgba(80, 49, 232, 0.4)\",\n \"bgHover\": \"rgba(149, 128, 255, 0.4)\",\n \"bgPress\": \"rgba(80, 49, 232, 0.4)\",\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\": \"#c33d22\",\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\": \"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(255, 255, 255, 0)\"\n },\n \"tertiary\": {\n \"bg\": \"rgba(255, 43, 0, 0)\",\n \"bgHover\": \"rgba(255, 170, 153, 0.07)\",\n \"bgPress\": \"rgba(255, 85, 51, 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.5)\",\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\": \"rgba(52, 71, 75, 0.85)\"\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 \"bgInactive\": \"#ffffff\"\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\": \"#dfff80\",\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\": \"#4b6368\",\n \"textNumber\": \"#000000\",\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 \"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\": \"#f3f3f2\",\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.6)\",\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\": \"#30981b\",\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.1)\",\n \"brand\": \"#31cae8\",\n \"brandExtra\": \"#5031e8\",\n \"inverse\": \"rgba(255, 255, 255, 0.15)\",\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(232, 79, 48, 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.8)\"\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\": \"#ccf6ff\",\n \"bgHover\": \"#e5fbff\",\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\": \"#e5fbff\",\n \"bgPress\": \"#ccf6ff\",\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\": \"#dadbd7\",\n \"bgHover\": \"#e6e7e4\",\n \"bgPress\": \"#c1c2bc\",\n \"border\": \"#c1c2bc\",\n \"borderHover\": \"#dadbd7\",\n \"borderPress\": \"rgba(255, 255, 255, 0)\"\n },\n \"tertiary\": {\n \"bg\": \"rgba(255, 255, 255, 0)\",\n \"bgHover\": \"#f3f3f2\",\n \"bgPress\": \"#e6e7e4\",\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\": \"#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\": \"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(255, 255, 255, 0)\"\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\": \"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\": \"#ccf6ff\",\n \"bgHover\": \"#e5fbff\",\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\": \"#cccccc\"\n },\n \"switch\": {\n \"bg\": \"#ccf6ff\",\n \"bgHover\": \"#e5fbff\",\n \"bgDisable\": \"rgba(0, 0, 0, 0.25)\",\n \"border\": \"#80eaff\",\n \"borderHover\": \"#b2f2ff\",\n \"borderDisable\": \"rgba(0, 0, 0, 0)\"\n },\n \"knob\": {\n \"bg\": \"#000000\",\n \"bgHover\": \"#233134\",\n \"bgInactive\": \"#000000\"\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\": \"#dfff80\",\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\": \"#dadbd7\",\n \"bgSeries\": \"#000000\",\n \"textSeries\": \"#d7dee0\",\n \"textNumber\": \"#000000\",\n \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n },\n \"subentity\": {\n \"bg\": \"#a8aaa2\",\n \"text\": \"#000000\"\n },\n \"item\": {\n \"bg\": \"#55dcf6\",\n \"text\": \"#000000\",\n \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n }\n },\n \"toggleButton\": {\n \"bg\": \"rgba(0, 0, 0, 0.08)\",\n \"bgHover\": \"rgba(0, 0, 0, 0.15)\",\n \"bgActive\": \"#ccf6ff\",\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","{\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.5)\",\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.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\": \"#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(255, 43, 0, 0)\",\n \"bgHover\": \"rgba(255, 170, 153, 0.07)\",\n \"bgPress\": \"rgba(255, 85, 51, 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 \"bgInactive\": \"#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\": \"#dfff80\",\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\": \"#d7dee0\",\n \"textNumber\": \"#000000\",\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 \"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","import pentagramDark from \"./pentagram-dark.json\";\nimport pentagramLight from \"./pentagram-light.json\";\nimport ltgDark from \"./ltg-dark.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};\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 input: 4,\n tagSmall: 4,\n tagMedium: 6,\n tagLarge: 8,\n avatarSmall: 4,\n avatarLarge: 8,\n avatarCircle: 999,\n};\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};\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 paystation: `\"Pilat Wide\", \"Aktiv Grotesk\", \"Noto Sans\", \"Montserrat\", ${FALLBACK}`,\n presentation: `\"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 * 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\nexport type ProductContext = \"b2c\" | \"b2b\" | \"paystation\" | \"presentation\";\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: 40,\n lineHeight: \"40px\",\n fontWeight: 700,\n scaleStep: \"450\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 32,\n lineHeight: \"32px\",\n fontWeight: 700,\n scaleStep: \"350\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 28,\n lineHeight: \"28px\",\n fontWeight: 700,\n scaleStep: \"300\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 24,\n lineHeight: \"24px\",\n fontWeight: 700,\n scaleStep: \"250\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 20,\n lineHeight: \"20px\",\n fontWeight: 700,\n scaleStep: \"200\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 48,\n lineHeight: \"48px\",\n fontWeight: 800,\n scaleStep: \"550\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 18,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"175\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"26px\",\n spacing: 20,\n lineHeightScaleStep: \"175\",\n },\n },\n \"body-md\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 16,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-sm\": {\n fontSize: 14,\n lineHeight: \"18px\",\n fontWeight: 400,\n scaleStep: \"125\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"20px\",\n spacing: 12,\n lineHeightScaleStep: \"125\",\n },\n },\n \"body-xs\": {\n fontSize: 12,\n lineHeight: \"16px\",\n fontWeight: 400,\n scaleStep: \"100\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"18px\",\n spacing: 8,\n lineHeightScaleStep: \"100\",\n },\n },\n \"body-xxs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n },\n },\n b2b: {\n heading: {\n h1: {\n fontSize: 56,\n lineHeight: \"56px\",\n fontWeight: 400,\n scaleStep: \"650\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 48,\n lineHeight: \"48px\",\n fontWeight: 400,\n scaleStep: \"550\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 32,\n lineHeight: \"32px\",\n fontWeight: 400,\n scaleStep: \"350\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 24,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"250\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 20,\n lineHeight: \"20px\",\n fontWeight: 600,\n scaleStep: \"200\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 64,\n lineHeight: \"64px\",\n fontWeight: 400,\n scaleStep: \"750\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 18,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"175\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"26px\",\n spacing: 20,\n lineHeightScaleStep: \"175\",\n },\n },\n \"body-md\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 16,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-sm\": {\n fontSize: 14,\n lineHeight: \"18px\",\n fontWeight: 400,\n scaleStep: \"125\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"20px\",\n spacing: 12,\n lineHeightScaleStep: \"125\",\n },\n },\n \"body-xs\": {\n fontSize: 12,\n lineHeight: \"16px\",\n fontWeight: 400,\n scaleStep: \"100\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"18px\",\n spacing: 8,\n lineHeightScaleStep: \"100\",\n },\n },\n \"body-xxs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n },\n },\n paystation: {\n heading: {\n h1: {\n fontSize: 28,\n lineHeight: \"28px\",\n fontWeight: 700,\n scaleStep: \"300\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 24,\n lineHeight: \"24px\",\n fontWeight: 700,\n scaleStep: \"250\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 20,\n lineHeight: \"20px\",\n fontWeight: 700,\n scaleStep: \"200\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 18,\n lineHeight: \"18px\",\n fontWeight: 700,\n scaleStep: \"175\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 16,\n lineHeight: \"16px\",\n fontWeight: 700,\n scaleStep: \"150\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 40,\n lineHeight: \"40px\",\n fontWeight: 800,\n scaleStep: \"450\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 16,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-md\": {\n fontSize: 14,\n lineHeight: \"18px\",\n fontWeight: 400,\n scaleStep: \"125\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"20px\",\n spacing: 12,\n lineHeightScaleStep: \"125\",\n },\n },\n \"body-sm\": {\n fontSize: 12,\n lineHeight: \"16px\",\n fontWeight: 400,\n scaleStep: \"100\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"18px\",\n spacing: 8,\n lineHeightScaleStep: \"100\",\n },\n },\n \"body-xs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n \"body-xxs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n },\n },\n presentation: {\n heading: {\n h1: {\n fontSize: 56,\n lineHeight: \"56px\",\n fontWeight: 700,\n scaleStep: \"650\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 48,\n lineHeight: \"48px\",\n fontWeight: 700,\n scaleStep: \"550\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 40,\n lineHeight: \"40px\",\n fontWeight: 700,\n scaleStep: \"450\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 32,\n lineHeight: \"32px\",\n fontWeight: 700,\n scaleStep: \"350\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 28,\n lineHeight: \"28px\",\n fontWeight: 700,\n scaleStep: \"300\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 64,\n lineHeight: \"64px\",\n fontWeight: 800,\n scaleStep: \"750\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 24,\n lineHeight: \"30px\",\n fontWeight: 400,\n scaleStep: \"250\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"34px\",\n spacing: 24,\n lineHeightScaleStep: \"250\",\n },\n },\n \"body-md\": {\n fontSize: 20,\n lineHeight: \"26px\",\n fontWeight: 400,\n scaleStep: \"200\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"28px\",\n spacing: 20,\n lineHeightScaleStep: \"200\",\n },\n },\n \"body-sm\": {\n fontSize: 18,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"175\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"26px\",\n spacing: 16,\n lineHeightScaleStep: \"175\",\n },\n },\n \"body-xs\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 12,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-xxs\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 12,\n lineHeightScaleStep: \"150\",\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_STRAPI = \"https://cdn.xsolla.net/strapi-v2-bucket-prod\";\nconst CDN_MERCHANT =\n \"https://cdn.xsolla.net/merchant-bucket-prod/files/uploaded/722279\";\n\n/**\n * @font-face CSS for all toolkit fonts, loaded from Xsolla CDN.\n *\n * Pilat Wide — B2C heading/display font, registered at weights 400, 600, 700, 800.\n *\n * Pilat — B2B heading/display font, registered at weights 300, 400, 600, 700, 800.\n *\n * Aktiv Grotesk — body font for all contexts,\n * mapped from the Sharp Grotesk CDN files (same typeface under a legacy name).\n * Registered at weights 300, 400, 500, 600, 700.\n */\nexport const fontFacesCSS = `\n /* ── Pilat Wide (B2C headings) ── */\n\n @font-face {\n font-family: 'Pilat Wide';\n src: url('${CDN_STRAPI}/Pilat_Test_Medium_/Pilat_Test_Medium.ttf') format('truetype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Pilat Wide';\n src: url('${CDN_STRAPI}/Pilat_Test_Demi_Bold_bee67c470a/Pilat_Test_Demi_Bold_bee67c470a.ttf') format('truetype');\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_STRAPI}/Pilat_Test_Bold_b12b40d234/Pilat_Test_Bold_b12b40d234.ttf') format('truetype');\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_STRAPI}/Pilat_Test_Heavy_2885678ca4/Pilat_Test_Heavy_2885678ca4.otf') format('opentype');\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_MERCHANT}/55a03110b2400b778d485de2c8d064c0.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_MERCHANT}/e968c9cc76e48ff6111c90534549bbf9.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_MERCHANT}/ed4fe74e88aaacc6978f06a862e75b08.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_MERCHANT}/7450f429979af7eaa8fa4d4d91cee927.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_MERCHANT}/218d647ff7690c1e312f6943e29af375.woff2') format('woff2');\n font-weight: 800;\n font-style: normal;\n font-display: swap;\n }\n\n /* ── Aktiv Grotesk (body) — served from Sharp Grotesk CDN files ── */\n\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Light_c4650750bb/Pilat_Test_Light_c4650750bb.otf') format('opentype');\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Book_5cb49cd592/Pilat_Test_Book_5cb49cd592.otf') format('opentype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Demi_e9bed59107/Pilat_Test_Demi_e9bed59107.otf') format('opentype');\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Bold_195d1b44fa/Pilat_Test_Bold_195d1b44fa.otf') format('opentype');\n font-weight: 600;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Bold_195d1b44fa/Pilat_Test_Bold_195d1b44fa.otf') format('opentype');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\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 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 desktop: 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 (desktop) */\nexport const fontSize: Record<ScaleStep, ResponsiveValue> = {\n \"75\": { common: 10, mobile: 10, desktop: 10 },\n \"100\": { common: 12, mobile: 11, desktop: 12 },\n \"125\": { common: 14, mobile: 12, desktop: 14 },\n \"150\": { common: 16, mobile: 14, desktop: 16 },\n \"175\": { common: 18, mobile: 16, desktop: 18 },\n \"200\": { common: 20, mobile: 18, desktop: 20 },\n \"250\": { common: 24, mobile: 20, desktop: 24 },\n \"300\": { common: 28, mobile: 24, desktop: 28 },\n \"350\": { common: 32, mobile: 28, desktop: 32 },\n \"450\": { common: 40, mobile: 32, desktop: 40 },\n \"550\": { common: 48, mobile: 40, desktop: 48 },\n \"650\": { common: 56, mobile: 48, desktop: 56 },\n \"750\": { common: 64, mobile: 56, desktop: 64 },\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, desktop: 10 },\n \"100\": { common: 12, mobile: 11, desktop: 12 },\n \"125\": { common: 14, mobile: 12, desktop: 14 },\n \"150\": { common: 16, mobile: 14, desktop: 16 },\n \"175\": { common: 18, mobile: 16, desktop: 18 },\n \"200\": { common: 20, mobile: 18, desktop: 20 },\n \"250\": { common: 24, mobile: 20, desktop: 24 },\n \"300\": { common: 28, mobile: 24, desktop: 28 },\n \"350\": { common: 32, mobile: 28, desktop: 32 },\n \"450\": { common: 40, mobile: 32, desktop: 40 },\n \"550\": { common: 48, mobile: 40, desktop: 48 },\n \"650\": { common: 56, mobile: 48, desktop: 56 },\n \"750\": { common: 64, mobile: 56, desktop: 64 },\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, desktop: 14 },\n \"100\": { common: 16, mobile: 14, desktop: 16 },\n \"125\": { common: 18, mobile: 16, desktop: 18 },\n \"150\": { common: 20, mobile: 18, desktop: 20 },\n \"175\": { common: 24, mobile: 20, desktop: 24 },\n \"200\": { common: 26, mobile: 24, desktop: 26 },\n \"250\": { common: 30, mobile: 26, desktop: 30 },\n \"300\": { common: 36, mobile: 30, desktop: 36 },\n \"350\": { common: 42, mobile: 36, desktop: 42 },\n \"450\": { common: 52, mobile: 42, desktop: 52 },\n \"550\": { common: 62, mobile: 52, desktop: 62 },\n \"650\": { common: 72, mobile: 62, desktop: 72 },\n \"750\": { common: 82, mobile: 72, desktop: 82 },\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, desktop: 14 },\n \"100\": { common: 18, mobile: 14, desktop: 18 },\n \"125\": { common: 20, mobile: 16, desktop: 20 },\n \"150\": { common: 22, mobile: 18, desktop: 22 },\n \"175\": { common: 26, mobile: 20, desktop: 26 },\n \"200\": { common: 28, mobile: 24, desktop: 28 },\n \"250\": { common: 34, mobile: 26, desktop: 34 },\n \"300\": { common: 40, mobile: 30, desktop: 40 },\n \"350\": { common: 44, mobile: 36, desktop: 44 },\n \"450\": { common: 56, mobile: 42, desktop: 56 },\n \"550\": { common: 66, mobile: 52, desktop: 66 },\n \"650\": { common: 78, mobile: 62, desktop: 78 },\n \"750\": { common: 88, mobile: 72, desktop: 88 },\n};\n\nexport const responsiveTypographyScale = {\n fontSize,\n lineHeightDisplay,\n lineHeightCompact,\n lineHeightText,\n} as const;\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: \"desktop\" | \"mobile\"): string {\n const lines: string[] = [];\n\n for (const step of SCALE_STEPS) {\n const fs = fontSize[step];\n lines.push(\n `--xui-font-size-${step}:${fs[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\n }\n\n for (const step of SCALE_STEPS) {\n const lh = lineHeightDisplay[step];\n lines.push(\n `--xui-lh-display-${step}:${lh[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\n }\n\n for (const step of SCALE_STEPS) {\n const lh = lineHeightCompact[step];\n lines.push(\n `--xui-lh-compact-${step}:${lh[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\n }\n\n for (const step of SCALE_STEPS) {\n const lh = lineHeightText[step];\n lines.push(\n `--xui-lh-text-${step}:${lh[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\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(\"desktop\");\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":["import_react","import_react","injected","React"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/tokens/pentagram-dark.json","../src/tokens/pentagram-light.json","../src/tokens/ltg-dark.json","../src/tokens/colors.ts","../src/tokens/spacing.ts","../src/tokens/shadows.ts","../src/tokens/fonts.ts","../src/tokens/typography.ts","../src/fonts/FontLoader.tsx","../src/platform.ts","../src/fonts/fontFaces.ts","../src/styles/TypographyStyleLoader.tsx","../src/tokens/responsive-typography.ts","../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, radius } from \"./tokens/spacing\";\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\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 radius,\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 sublabelFontSize: 18,\n spinnerSize: 24,\n iconSize: 32,\n iconContainerSize: 64,\n iconPadding: 20,\n loadingPadding: 40,\n borderRadius: 8,\n labelIconSize: 18,\n labelIconGap: 6,\n },\n lg: {\n height: 56,\n padding: 20,\n fontSize: 18,\n sublabelFontSize: 16,\n spinnerSize: 24,\n iconSize: 32,\n iconContainerSize: 56,\n iconPadding: 20,\n loadingPadding: 36,\n borderRadius: 8,\n labelIconSize: 16,\n labelIconGap: 6,\n },\n md: {\n height: 48,\n padding: 20,\n fontSize: 16,\n sublabelFontSize: 14,\n spinnerSize: 20,\n iconSize: 28,\n iconContainerSize: 48,\n iconPadding: 20,\n loadingPadding: 32,\n borderRadius: 8,\n labelIconSize: 14,\n labelIconGap: 4,\n },\n sm: {\n height: 40,\n padding: 20,\n fontSize: 14,\n sublabelFontSize: 12,\n spinnerSize: 16,\n iconSize: 28,\n iconContainerSize: 40,\n iconPadding: 20,\n loadingPadding: 28,\n borderRadius: 4,\n labelIconSize: 12,\n labelIconGap: 4,\n },\n xs: {\n height: 32,\n padding: 20,\n fontSize: 12,\n sublabelFontSize: 10,\n spinnerSize: 16,\n iconSize: 24,\n iconContainerSize: 32,\n iconPadding: 20,\n loadingPadding: 28,\n borderRadius: 4,\n labelIconSize: 10,\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: 4,\n },\n lg: {\n height: 32,\n padding: 4,\n fontSize: 14,\n spinnerSize: 24,\n iconSize: 18,\n borderRadius: 4,\n },\n md: {\n height: 28,\n padding: 2,\n fontSize: 14,\n spinnerSize: 24,\n iconSize: 16,\n borderRadius: 2,\n },\n sm: {\n height: 22,\n padding: 2,\n fontSize: 12,\n spinnerSize: 16,\n iconSize: 14,\n borderRadius: 2,\n },\n xs: {\n height: 20,\n padding: 2,\n fontSize: 12,\n spinnerSize: 16,\n iconSize: 12,\n borderRadius: 2,\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: 2,\n },\n lg: {\n size: 20,\n fontSize: 16,\n descriptionFontSize: 14,\n labelGap: 10,\n textGap: 2,\n borderRadius: 2,\n },\n md: {\n size: 18,\n fontSize: 16,\n descriptionFontSize: 14,\n labelGap: 8,\n textGap: 2,\n borderRadius: 2,\n },\n sm: {\n size: 16,\n fontSize: 14,\n descriptionFontSize: 12,\n labelGap: 8,\n textGap: 0,\n borderRadius: 2,\n },\n };\n return configs[size];\n },\n radio: (size: \"xl\" | \"lg\" | \"md\" | \"sm\") => {\n const configs = {\n xl: {\n size: 24,\n fontSize: 20,\n lineHeight: 22,\n descriptionFontSize: 18,\n descriptionLineHeight: 20,\n labelGap: 12,\n textGap: 4,\n borderWidth: 2,\n },\n lg: {\n size: 20,\n fontSize: 18,\n lineHeight: 20,\n descriptionFontSize: 16,\n descriptionLineHeight: 18,\n labelGap: 10,\n textGap: 2,\n borderWidth: 2,\n },\n md: {\n size: 18,\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 fontSize: 14,\n lineHeight: 16,\n descriptionFontSize: 12,\n descriptionLineHeight: 14,\n labelGap: 8,\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: 8,\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: 8,\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: 8,\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: 4,\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: 4,\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 labelFontSize: 20,\n labelLineHeight: 22,\n descriptionFontSize: 20,\n descriptionLineHeight: 22,\n errorFontSize: 16,\n errorLineHeight: 18,\n errorGap: 8,\n radius: 8,\n borderWidth: 1,\n },\n lg: {\n box: 168,\n padding: 14,\n gap: 10,\n iconSize: 24,\n labelFontSize: 18,\n labelLineHeight: 24,\n descriptionFontSize: 18,\n descriptionLineHeight: 20,\n errorFontSize: 16,\n errorLineHeight: 18,\n errorGap: 8,\n radius: 8,\n borderWidth: 1,\n },\n md: {\n box: 136,\n padding: 12,\n gap: 8,\n iconSize: 24,\n labelFontSize: 16,\n labelLineHeight: 20,\n descriptionFontSize: 14,\n descriptionLineHeight: 16,\n errorFontSize: 14,\n errorLineHeight: 16,\n errorGap: 6,\n radius: 8,\n borderWidth: 1,\n },\n sm: {\n box: 104,\n padding: 10,\n gap: 6,\n iconSize: 18,\n labelFontSize: 14,\n labelLineHeight: 18,\n descriptionFontSize: 14,\n descriptionLineHeight: 18,\n errorFontSize: 12,\n errorLineHeight: 14,\n errorGap: 6,\n radius: 4,\n borderWidth: 1,\n },\n xs: {\n box: 72,\n padding: 8,\n gap: 4,\n iconSize: 18,\n labelFontSize: 12,\n labelLineHeight: 16,\n descriptionFontSize: 12,\n descriptionLineHeight: 16,\n errorFontSize: 11,\n errorLineHeight: 13,\n errorGap: 4,\n radius: 4,\n borderWidth: 1,\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: 8,\n borderWidth: 1,\n fieldGap: 8,\n },\n lg: {\n size: 56,\n gap: 8,\n fontSize: 18,\n radius: 8,\n borderWidth: 1,\n fieldGap: 6,\n },\n md: {\n size: 48,\n gap: 6,\n fontSize: 16,\n radius: 8,\n borderWidth: 1,\n fieldGap: 4,\n },\n sm: {\n size: 40,\n gap: 4,\n fontSize: 14,\n radius: 4,\n borderWidth: 1,\n fieldGap: 4,\n },\n xs: {\n size: 32,\n gap: 4,\n fontSize: 12,\n radius: 4,\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: 8,\n },\n lg: {\n height: 128,\n padding: spacing.l,\n fontSize: 18,\n iconSize: 28,\n radius: 8,\n },\n md: {\n height: 112,\n padding: spacing.m,\n fontSize: 16,\n iconSize: 24,\n radius: 8,\n },\n sm: {\n height: 96,\n padding: spacing.s,\n fontSize: 14,\n iconSize: 20,\n radius: 4,\n },\n xs: {\n height: 80,\n padding: spacing.xs,\n fontSize: 12,\n iconSize: 16,\n radius: 4,\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: 4,\n knobBorderRadius: 2,\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: 4,\n knobBorderRadius: 2,\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: 2,\n knobBorderRadius: 2,\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: 2,\n knobBorderRadius: 2,\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: 8,\n borderRadiusCircle: radius.avatarCircle,\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: 6,\n borderRadiusCircle: radius.avatarCircle,\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: 6,\n borderRadiusCircle: radius.avatarCircle,\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: radius.avatarSmall,\n borderRadiusCircle: radius.avatarCircle,\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: radius.avatarSmall,\n borderRadiusCircle: radius.avatarCircle,\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: 2,\n borderRadiusCircle: radius.avatarCircle,\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: 8,\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: 8,\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: 6,\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: 4,\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: 4,\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: 8,\n itemHeight: 56,\n itemPaddingHorizontal: 20,\n itemPaddingVertical: 10,\n itemRadius: 6,\n fontSize: 20,\n lineHeight: 22,\n iconSize: 24,\n gap: 8,\n },\n lg: {\n height: 56,\n containerPadding: 4,\n containerRadius: 8,\n itemHeight: 48,\n itemPaddingHorizontal: 20,\n itemPaddingVertical: 10,\n itemRadius: 6,\n fontSize: 18,\n lineHeight: 20,\n iconSize: 24,\n gap: 8,\n },\n md: {\n height: 48,\n containerPadding: 4,\n containerRadius: 8,\n itemHeight: 40,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 8,\n itemRadius: 6,\n fontSize: 16,\n lineHeight: 18,\n iconSize: 24,\n gap: 6,\n },\n sm: {\n height: 40,\n containerPadding: 4,\n containerRadius: 4,\n itemHeight: 32,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 6,\n itemRadius: 2,\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 containerRadius: 4,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 18,\n itemRadius: 2,\n fontSize: 20,\n lineHeight: 22,\n iconSize: 24,\n gap: 8,\n },\n lg: {\n height: 56,\n containerPadding: 4,\n containerRadius: 4,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 14,\n itemRadius: 2,\n fontSize: 18,\n lineHeight: 20,\n iconSize: 24,\n gap: 8,\n },\n md: {\n height: 48,\n containerPadding: 4,\n containerRadius: 4,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 11,\n itemRadius: 2,\n fontSize: 16,\n lineHeight: 18,\n iconSize: 24,\n gap: 6,\n },\n sm: {\n height: 40,\n containerPadding: 3,\n containerRadius: 2,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 8,\n itemRadius: 2,\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: 4,\n },\n lg: {\n height: 56,\n paddingHorizontal: 16,\n paddingVertical: 18,\n fontSize: 18,\n lineHeight: 20,\n gap: 8,\n borderRadius: 4,\n },\n md: {\n height: 48,\n paddingHorizontal: 12,\n paddingVertical: 15,\n fontSize: 16,\n lineHeight: 18,\n gap: 8,\n borderRadius: 2,\n },\n sm: {\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 11,\n fontSize: 14,\n lineHeight: 16,\n gap: 4,\n borderRadius: 2,\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: radius.card,\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: radius.card,\n },\n };\n return configs[type];\n },\n notificationPanel: () => ({\n minHeight: 66,\n iconFrameWidth: 54,\n iconSize: 24,\n borderRadius: 8,\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: 8,\n itemPaddingHorizontal: 16,\n itemPaddingVertical: 18,\n fontSize: 20,\n lineHeight: 22,\n descriptionFontSize: 18,\n iconSize: 18,\n gap: 12,\n minWidth: 276,\n // Search sizing from Figma\n searchPaddingHorizontal: 16,\n searchPaddingVertical: 18,\n searchGap: 18,\n searchFontSize: 20,\n searchLineHeight: 22,\n searchIconSize: 18,\n },\n lg: {\n paddingVertical: 8,\n itemPaddingHorizontal: 14,\n itemPaddingVertical: 14,\n fontSize: 18,\n lineHeight: 20,\n descriptionFontSize: 16,\n iconSize: 18,\n gap: 10,\n minWidth: 220,\n // Search sizing from Figma\n searchPaddingHorizontal: 14,\n searchPaddingVertical: 14,\n searchGap: 14,\n searchFontSize: 18,\n searchLineHeight: 20,\n searchIconSize: 18,\n },\n md: {\n paddingVertical: 8,\n itemPaddingHorizontal: 12,\n itemPaddingVertical: 11,\n fontSize: 16,\n lineHeight: 18,\n descriptionFontSize: 14,\n iconSize: 18,\n gap: 8,\n minWidth: 172,\n // Search sizing from Figma\n searchPaddingHorizontal: 12,\n searchPaddingVertical: 11,\n searchGap: 10,\n searchFontSize: 16,\n searchLineHeight: 18,\n searchIconSize: 18,\n },\n sm: {\n paddingVertical: 8,\n itemPaddingHorizontal: 10,\n itemPaddingVertical: 8,\n fontSize: 14,\n lineHeight: 16,\n descriptionFontSize: 12,\n iconSize: 18,\n gap: 8,\n minWidth: 132,\n // Search sizing from Figma\n searchPaddingHorizontal: 10,\n searchPaddingVertical: 7,\n searchGap: 6,\n searchFontSize: 14,\n searchLineHeight: 16,\n searchIconSize: 18,\n },\n };\n return configs[size];\n },\n modal: () => {\n // Sizing values from Figma design: node-id=10457-7055\n return {\n borderRadius: 8,\n headerPadding: 8,\n contentPadding: 40,\n headerButtonSize: \"xl\" as const,\n headerGap: 8,\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.5)\",\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: 16,\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: 8,\n cellRadius: 4,\n iconSlotSize: 32,\n iconSlotRadius: 4,\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: 4,\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: 18,\n fontSize: 20,\n lineHeight: 22,\n iconSize: 24,\n gap: 6,\n borderRadius: 8,\n itemGap: 8,\n },\n lg: {\n height: 56,\n paddingHorizontal: 16,\n fontSize: 18,\n lineHeight: 20,\n iconSize: 24,\n gap: 4,\n borderRadius: 8,\n itemGap: 8,\n },\n md: {\n height: 48,\n paddingHorizontal: 16,\n fontSize: 16,\n lineHeight: 18,\n iconSize: 24,\n gap: 4,\n borderRadius: 8,\n itemGap: 8,\n },\n sm: {\n height: 40,\n paddingHorizontal: 12,\n fontSize: 14,\n lineHeight: 16,\n iconSize: 24,\n gap: 2,\n borderRadius: 4,\n itemGap: 4,\n },\n xs: {\n height: 32,\n paddingHorizontal: 12,\n fontSize: 14,\n lineHeight: 16,\n iconSize: 24,\n gap: 2,\n borderRadius: 4,\n itemGap: 4,\n },\n };\n return configs[size];\n },\n },\n };\n};\n\ninterface DesignSystemContextType {\n mode: ThemeMode;\n setMode: (mode: ThemeMode) => void;\n productContext: ProductContext;\n setProductContext: (productContext: ProductContext) => void;\n theme: ReturnType<typeof themeConfig>;\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 children,\n initialMode = \"dark\",\n initialProductContext = defaultProductContext,\n loadFonts = 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 }),\n [mode, productContext]\n );\n\n return (\n <DesignSystemContext.Provider value={value}>\n {loadFonts && <FontLoader />}\n <TypographyStyleLoader />\n {children}\n </DesignSystemContext.Provider>\n );\n};\n\nexport const useDesignSystem = () => {\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 };\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 = (overrides?: ThemeOverrideProps) => {\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/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\": \"#80eaff\",\n \"secondary\": \"#0b3841\"\n },\n \"brandExtra\": {\n \"primary\": \"#7055f6\",\n \"secondary\": \"#22136c\"\n },\n \"inverse\": \"#ffffff\",\n \"static\": {\n \"dark\": \"#000000\",\n \"light\": \"#ffffff\"\n },\n \"success\": {\n \"primary\": \"#95ff80\",\n \"secondary\": \"#14410b\"\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(232, 236, 237, 0.72)\",\n \"tertiary\": \"rgba(232, 236, 237, 0.58)\",\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\": \"#4b6368\"\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(178, 242, 255, 0.15)\",\n \"brand\": \"#31cae8\",\n \"brandExtra\": \"#9580ff\",\n \"inverse\": \"rgba(0, 0, 0, 0.15)\",\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(232, 79, 48, 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.5)\",\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\": \"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\": \"#4b6368\",\n \"bgPress\": \"#233134\",\n \"border\": \"#4b6368\",\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\": \"rgba(80, 49, 232, 0.4)\",\n \"bgHover\": \"rgba(149, 128, 255, 0.4)\",\n \"bgPress\": \"rgba(80, 49, 232, 0.4)\",\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\": \"#c33d22\",\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\": \"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(255, 255, 255, 0)\"\n },\n \"tertiary\": {\n \"bg\": \"rgba(255, 43, 0, 0)\",\n \"bgHover\": \"rgba(255, 170, 153, 0.07)\",\n \"bgPress\": \"rgba(255, 85, 51, 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.5)\",\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\": \"rgba(52, 71, 75, 0.85)\"\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 \"bgInactive\": \"#ffffff\"\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\": \"#dfff80\",\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\": \"#4b6368\",\n \"textNumber\": \"#000000\",\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 \"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\": \"#f3f3f2\",\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.6)\",\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\": \"#30981b\",\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.1)\",\n \"brand\": \"#31cae8\",\n \"brandExtra\": \"#5031e8\",\n \"inverse\": \"rgba(255, 255, 255, 0.15)\",\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(232, 79, 48, 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.8)\"\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\": \"#ccf6ff\",\n \"bgHover\": \"#e5fbff\",\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\": \"#e5fbff\",\n \"bgPress\": \"#ccf6ff\",\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\": \"#dadbd7\",\n \"bgHover\": \"#e6e7e4\",\n \"bgPress\": \"#c1c2bc\",\n \"border\": \"#c1c2bc\",\n \"borderHover\": \"#dadbd7\",\n \"borderPress\": \"rgba(255, 255, 255, 0)\"\n },\n \"tertiary\": {\n \"bg\": \"rgba(255, 255, 255, 0)\",\n \"bgHover\": \"#f3f3f2\",\n \"bgPress\": \"#e6e7e4\",\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\": \"#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\": \"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(255, 255, 255, 0)\"\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\": \"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\": \"#ccf6ff\",\n \"bgHover\": \"#e5fbff\",\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\": \"#cccccc\"\n },\n \"switch\": {\n \"bg\": \"#ccf6ff\",\n \"bgHover\": \"#e5fbff\",\n \"bgDisable\": \"rgba(0, 0, 0, 0.25)\",\n \"border\": \"#80eaff\",\n \"borderHover\": \"#b2f2ff\",\n \"borderDisable\": \"rgba(0, 0, 0, 0)\"\n },\n \"knob\": {\n \"bg\": \"#000000\",\n \"bgHover\": \"#233134\",\n \"bgInactive\": \"#000000\"\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\": \"#dfff80\",\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\": \"#dadbd7\",\n \"bgSeries\": \"#000000\",\n \"textSeries\": \"#d7dee0\",\n \"textNumber\": \"#000000\",\n \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n },\n \"subentity\": {\n \"bg\": \"#a8aaa2\",\n \"text\": \"#000000\"\n },\n \"item\": {\n \"bg\": \"#55dcf6\",\n \"text\": \"#000000\",\n \"textCompact\": \"rgba(0, 0, 0, 0.48)\"\n }\n },\n \"toggleButton\": {\n \"bg\": \"rgba(0, 0, 0, 0.08)\",\n \"bgHover\": \"rgba(0, 0, 0, 0.15)\",\n \"bgActive\": \"#ccf6ff\",\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","{\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.5)\",\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.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\": \"#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(255, 43, 0, 0)\",\n \"bgHover\": \"rgba(255, 170, 153, 0.07)\",\n \"bgPress\": \"rgba(255, 85, 51, 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 \"bgInactive\": \"#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\": \"#dfff80\",\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\": \"#d7dee0\",\n \"textNumber\": \"#000000\",\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 \"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","import pentagramDark from \"./pentagram-dark.json\";\nimport pentagramLight from \"./pentagram-light.json\";\nimport ltgDark from \"./ltg-dark.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};\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 input: 4,\n tagSmall: 4,\n tagMedium: 6,\n tagLarge: 8,\n avatarSmall: 4,\n avatarLarge: 8,\n avatarCircle: 999,\n};\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};\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 paystation: `\"Pilat Wide\", \"Aktiv Grotesk\", \"Noto Sans\", \"Montserrat\", ${FALLBACK}`,\n presentation: `\"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 * 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\nexport type ProductContext = \"b2c\" | \"b2b\" | \"paystation\" | \"presentation\";\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: 40,\n lineHeight: \"40px\",\n fontWeight: 700,\n scaleStep: \"450\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 32,\n lineHeight: \"32px\",\n fontWeight: 700,\n scaleStep: \"350\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 28,\n lineHeight: \"28px\",\n fontWeight: 700,\n scaleStep: \"300\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 24,\n lineHeight: \"24px\",\n fontWeight: 700,\n scaleStep: \"250\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 20,\n lineHeight: \"20px\",\n fontWeight: 700,\n scaleStep: \"200\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 48,\n lineHeight: \"48px\",\n fontWeight: 800,\n scaleStep: \"550\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 18,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"175\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"26px\",\n spacing: 20,\n lineHeightScaleStep: \"175\",\n },\n },\n \"body-md\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 16,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-sm\": {\n fontSize: 14,\n lineHeight: \"18px\",\n fontWeight: 400,\n scaleStep: \"125\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"20px\",\n spacing: 12,\n lineHeightScaleStep: \"125\",\n },\n },\n \"body-xs\": {\n fontSize: 12,\n lineHeight: \"16px\",\n fontWeight: 400,\n scaleStep: \"100\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"18px\",\n spacing: 8,\n lineHeightScaleStep: \"100\",\n },\n },\n \"body-xxs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n },\n },\n b2b: {\n heading: {\n h1: {\n fontSize: 56,\n lineHeight: \"56px\",\n fontWeight: 400,\n scaleStep: \"650\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 48,\n lineHeight: \"48px\",\n fontWeight: 400,\n scaleStep: \"550\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 32,\n lineHeight: \"32px\",\n fontWeight: 400,\n scaleStep: \"350\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 24,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"250\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 20,\n lineHeight: \"20px\",\n fontWeight: 600,\n scaleStep: \"200\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 64,\n lineHeight: \"64px\",\n fontWeight: 400,\n scaleStep: \"750\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 18,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"175\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"26px\",\n spacing: 20,\n lineHeightScaleStep: \"175\",\n },\n },\n \"body-md\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 16,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-sm\": {\n fontSize: 14,\n lineHeight: \"18px\",\n fontWeight: 400,\n scaleStep: \"125\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"20px\",\n spacing: 12,\n lineHeightScaleStep: \"125\",\n },\n },\n \"body-xs\": {\n fontSize: 12,\n lineHeight: \"16px\",\n fontWeight: 400,\n scaleStep: \"100\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"18px\",\n spacing: 8,\n lineHeightScaleStep: \"100\",\n },\n },\n \"body-xxs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n },\n },\n paystation: {\n heading: {\n h1: {\n fontSize: 28,\n lineHeight: \"28px\",\n fontWeight: 700,\n scaleStep: \"300\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 24,\n lineHeight: \"24px\",\n fontWeight: 700,\n scaleStep: \"250\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 20,\n lineHeight: \"20px\",\n fontWeight: 700,\n scaleStep: \"200\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 18,\n lineHeight: \"18px\",\n fontWeight: 700,\n scaleStep: \"175\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 16,\n lineHeight: \"16px\",\n fontWeight: 700,\n scaleStep: \"150\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 40,\n lineHeight: \"40px\",\n fontWeight: 800,\n scaleStep: \"450\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 16,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-md\": {\n fontSize: 14,\n lineHeight: \"18px\",\n fontWeight: 400,\n scaleStep: \"125\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"20px\",\n spacing: 12,\n lineHeightScaleStep: \"125\",\n },\n },\n \"body-sm\": {\n fontSize: 12,\n lineHeight: \"16px\",\n fontWeight: 400,\n scaleStep: \"100\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"18px\",\n spacing: 8,\n lineHeightScaleStep: \"100\",\n },\n },\n \"body-xs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n \"body-xxs\": {\n fontSize: 10,\n lineHeight: \"14px\",\n fontWeight: 400,\n scaleStep: \"75\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"14px\",\n spacing: 6,\n lineHeightScaleStep: \"75\",\n },\n },\n },\n },\n presentation: {\n heading: {\n h1: {\n fontSize: 56,\n lineHeight: \"56px\",\n fontWeight: 700,\n scaleStep: \"650\",\n lineHeightCategory: \"display\",\n },\n h2: {\n fontSize: 48,\n lineHeight: \"48px\",\n fontWeight: 700,\n scaleStep: \"550\",\n lineHeightCategory: \"display\",\n },\n h3: {\n fontSize: 40,\n lineHeight: \"40px\",\n fontWeight: 700,\n scaleStep: \"450\",\n lineHeightCategory: \"display\",\n },\n h4: {\n fontSize: 32,\n lineHeight: \"32px\",\n fontWeight: 700,\n scaleStep: \"350\",\n lineHeightCategory: \"display\",\n },\n h5: {\n fontSize: 28,\n lineHeight: \"28px\",\n fontWeight: 700,\n scaleStep: \"300\",\n lineHeightCategory: \"display\",\n },\n },\n basic: {\n display: {\n fontSize: 64,\n lineHeight: \"64px\",\n fontWeight: 800,\n scaleStep: \"750\",\n lineHeightCategory: \"display\",\n },\n \"body-lg\": {\n fontSize: 24,\n lineHeight: \"30px\",\n fontWeight: 400,\n scaleStep: \"250\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"34px\",\n spacing: 24,\n lineHeightScaleStep: \"250\",\n },\n },\n \"body-md\": {\n fontSize: 20,\n lineHeight: \"26px\",\n fontWeight: 400,\n scaleStep: \"200\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"28px\",\n spacing: 20,\n lineHeightScaleStep: \"200\",\n },\n },\n \"body-sm\": {\n fontSize: 18,\n lineHeight: \"24px\",\n fontWeight: 400,\n scaleStep: \"175\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"26px\",\n spacing: 16,\n lineHeightScaleStep: \"175\",\n },\n },\n \"body-xs\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 12,\n lineHeightScaleStep: \"150\",\n },\n },\n \"body-xxs\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 400,\n scaleStep: \"150\",\n lineHeightCategory: \"compact\",\n accent: { fontWeight: 500 },\n paragraph: {\n lineHeight: \"22px\",\n spacing: 12,\n lineHeightScaleStep: \"150\",\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_STRAPI = \"https://cdn.xsolla.net/strapi-v2-bucket-prod\";\nconst CDN_MERCHANT =\n \"https://cdn.xsolla.net/merchant-bucket-prod/files/uploaded/722279\";\n\n/**\n * @font-face CSS for all toolkit fonts, loaded from Xsolla CDN.\n *\n * Pilat Wide — B2C heading/display font, registered at weights 400, 600, 700, 800.\n *\n * Pilat — B2B heading/display font, registered at weights 300, 400, 600, 700, 800.\n *\n * Aktiv Grotesk — body font for all contexts,\n * mapped from the Sharp Grotesk CDN files (same typeface under a legacy name).\n * Registered at weights 300, 400, 500, 600, 700.\n */\nexport const fontFacesCSS = `\n /* ── Pilat Wide (B2C headings) ── */\n\n @font-face {\n font-family: 'Pilat Wide';\n src: url('${CDN_STRAPI}/Pilat_Test_Medium_/Pilat_Test_Medium.ttf') format('truetype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Pilat Wide';\n src: url('${CDN_STRAPI}/Pilat_Test_Demi_Bold_bee67c470a/Pilat_Test_Demi_Bold_bee67c470a.ttf') format('truetype');\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_STRAPI}/Pilat_Test_Bold_b12b40d234/Pilat_Test_Bold_b12b40d234.ttf') format('truetype');\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_STRAPI}/Pilat_Test_Heavy_2885678ca4/Pilat_Test_Heavy_2885678ca4.otf') format('opentype');\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_MERCHANT}/55a03110b2400b778d485de2c8d064c0.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_MERCHANT}/e968c9cc76e48ff6111c90534549bbf9.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_MERCHANT}/ed4fe74e88aaacc6978f06a862e75b08.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_MERCHANT}/7450f429979af7eaa8fa4d4d91cee927.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_MERCHANT}/218d647ff7690c1e312f6943e29af375.woff2') format('woff2');\n font-weight: 800;\n font-style: normal;\n font-display: swap;\n }\n\n /* ── Aktiv Grotesk (body) — served from Sharp Grotesk CDN files ── */\n\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Light_c4650750bb/Pilat_Test_Light_c4650750bb.otf') format('opentype');\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Book_5cb49cd592/Pilat_Test_Book_5cb49cd592.otf') format('opentype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Demi_e9bed59107/Pilat_Test_Demi_e9bed59107.otf') format('opentype');\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Bold_195d1b44fa/Pilat_Test_Bold_195d1b44fa.otf') format('opentype');\n font-weight: 600;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Aktiv Grotesk';\n src: url('${CDN_STRAPI}/Pilat_Test_Bold_195d1b44fa/Pilat_Test_Bold_195d1b44fa.otf') format('opentype');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\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 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 desktop: 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 (desktop) */\nexport const fontSize: Record<ScaleStep, ResponsiveValue> = {\n \"75\": { common: 10, mobile: 10, desktop: 10 },\n \"100\": { common: 12, mobile: 11, desktop: 12 },\n \"125\": { common: 14, mobile: 12, desktop: 14 },\n \"150\": { common: 16, mobile: 14, desktop: 16 },\n \"175\": { common: 18, mobile: 16, desktop: 18 },\n \"200\": { common: 20, mobile: 18, desktop: 20 },\n \"250\": { common: 24, mobile: 20, desktop: 24 },\n \"300\": { common: 28, mobile: 24, desktop: 28 },\n \"350\": { common: 32, mobile: 28, desktop: 32 },\n \"450\": { common: 40, mobile: 32, desktop: 40 },\n \"550\": { common: 48, mobile: 40, desktop: 48 },\n \"650\": { common: 56, mobile: 48, desktop: 56 },\n \"750\": { common: 64, mobile: 56, desktop: 64 },\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, desktop: 10 },\n \"100\": { common: 12, mobile: 11, desktop: 12 },\n \"125\": { common: 14, mobile: 12, desktop: 14 },\n \"150\": { common: 16, mobile: 14, desktop: 16 },\n \"175\": { common: 18, mobile: 16, desktop: 18 },\n \"200\": { common: 20, mobile: 18, desktop: 20 },\n \"250\": { common: 24, mobile: 20, desktop: 24 },\n \"300\": { common: 28, mobile: 24, desktop: 28 },\n \"350\": { common: 32, mobile: 28, desktop: 32 },\n \"450\": { common: 40, mobile: 32, desktop: 40 },\n \"550\": { common: 48, mobile: 40, desktop: 48 },\n \"650\": { common: 56, mobile: 48, desktop: 56 },\n \"750\": { common: 64, mobile: 56, desktop: 64 },\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, desktop: 14 },\n \"100\": { common: 16, mobile: 14, desktop: 16 },\n \"125\": { common: 18, mobile: 16, desktop: 18 },\n \"150\": { common: 20, mobile: 18, desktop: 20 },\n \"175\": { common: 24, mobile: 20, desktop: 24 },\n \"200\": { common: 26, mobile: 24, desktop: 26 },\n \"250\": { common: 30, mobile: 26, desktop: 30 },\n \"300\": { common: 36, mobile: 30, desktop: 36 },\n \"350\": { common: 42, mobile: 36, desktop: 42 },\n \"450\": { common: 52, mobile: 42, desktop: 52 },\n \"550\": { common: 62, mobile: 52, desktop: 62 },\n \"650\": { common: 72, mobile: 62, desktop: 72 },\n \"750\": { common: 82, mobile: 72, desktop: 82 },\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, desktop: 14 },\n \"100\": { common: 18, mobile: 14, desktop: 18 },\n \"125\": { common: 20, mobile: 16, desktop: 20 },\n \"150\": { common: 22, mobile: 18, desktop: 22 },\n \"175\": { common: 26, mobile: 20, desktop: 26 },\n \"200\": { common: 28, mobile: 24, desktop: 28 },\n \"250\": { common: 34, mobile: 26, desktop: 34 },\n \"300\": { common: 40, mobile: 30, desktop: 40 },\n \"350\": { common: 44, mobile: 36, desktop: 44 },\n \"450\": { common: 56, mobile: 42, desktop: 56 },\n \"550\": { common: 66, mobile: 52, desktop: 66 },\n \"650\": { common: 78, mobile: 62, desktop: 78 },\n \"750\": { common: 88, mobile: 72, desktop: 88 },\n};\n\nexport const responsiveTypographyScale = {\n fontSize,\n lineHeightDisplay,\n lineHeightCompact,\n lineHeightText,\n} as const;\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: \"desktop\" | \"mobile\"): string {\n const lines: string[] = [];\n\n for (const step of SCALE_STEPS) {\n const fs = fontSize[step];\n lines.push(\n `--xui-font-size-${step}:${fs[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\n }\n\n for (const step of SCALE_STEPS) {\n const lh = lineHeightDisplay[step];\n lines.push(\n `--xui-lh-display-${step}:${lh[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\n }\n\n for (const step of SCALE_STEPS) {\n const lh = lineHeightCompact[step];\n lines.push(\n `--xui-lh-compact-${step}:${lh[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\n }\n\n for (const step of SCALE_STEPS) {\n const lh = lineHeightText[step];\n lines.push(\n `--xui-lh-text-${step}:${lh[mode === \"desktop\" ? \"common\" : \"mobile\"]}px`\n );\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(\"desktop\");\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":["import_react","import_react","injected","React"]}