@xsolla/xui-stepper 0.69.0 → 0.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/web/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../src/Stepper.tsx","../../../primitives-web/src/Box.tsx","../../../primitives-web/src/Text.tsx","../../../primitives-web/src/Spinner.tsx","../../../primitives-web/src/Icon.tsx","../../../primitives-web/src/Divider.tsx","../../../primitives-web/src/Input.tsx","../../../primitives-web/src/TextArea.tsx","../../src/Step.tsx","../../src/utils/colors.ts","../../src/utils/platform.ts","../../src/StepTail.tsx","../../src/hooks/useStepHoverStyles.ts","../../src/ProgressStep.tsx","../../src/ProgressStepItem.tsx"],"sourcesContent":["export * from \"./Stepper\";\nexport * from \"./ProgressStep\";\nexport * from \"./ProgressStepItem\";\nexport * from \"./types\";\nexport { Step } from \"./Step\";\n","import React, { forwardRef } from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { Step } from \"./Step\";\nimport type { StepperProps, StepStateType } from \"./types\";\n\nexport const Stepper = forwardRef<any, StepperProps>(\n (\n {\n direction = \"horizontal\",\n variantUI = \"current\",\n size = \"m\",\n steps,\n tail = false,\n onClick,\n className,\n customClass,\n palette = \"brand\",\n \"aria-label\": ariaLabel,\n ...rest\n },\n ref\n ) => {\n const { theme } = useDesignSystem();\n const isHorizontal = direction === \"horizontal\";\n const isCurrentVariant = variantUI === \"current\";\n const tailSize = size === \"s\" ? 3 : 5;\n const tailOffset = tailSize / 2;\n\n // Generate default aria-label if not provided\n const defaultAriaLabel = `Stepper with ${steps.length} step${steps.length !== 1 ? \"s\" : \"\"}`;\n const stepperAriaLabel = ariaLabel || defaultAriaLabel;\n\n return (\n <Box\n ref={ref}\n role=\"navigation\"\n aria-label={stepperAriaLabel}\n flexDirection={isHorizontal ? \"row\" : \"column\"}\n justifyContent={isHorizontal ? \"flex-start\" : undefined}\n width=\"100%\"\n height=\"auto\"\n overflowX={isHorizontal ? \"auto\" : undefined}\n overflowY={isHorizontal ? \"hidden\" : undefined}\n paddingBottom={\n isHorizontal && isCurrentVariant ? tailOffset : undefined\n }\n borderBottomWidth={isHorizontal && isCurrentVariant ? 1 : 0}\n borderBottomColor={\n isHorizontal && isCurrentVariant\n ? theme.colors.border.secondary\n : undefined\n }\n borderLeftWidth={!isHorizontal && isCurrentVariant ? 1 : 0}\n borderLeftColor={\n !isHorizontal && isCurrentVariant\n ? theme.colors.border.secondary\n : undefined\n }\n className={[className, customClass].filter(Boolean).join(\" \")}\n {...rest}\n >\n {(() => {\n const coloredTailStates: Array<StepStateType> = [\n \"current\",\n \"loading\",\n \"alert\",\n \"warning\",\n ];\n let firstColoredTailIndex = -1;\n let lastColoredTailIndex = -1;\n\n steps.forEach((step, index) => {\n if (\n step.state &&\n coloredTailStates.includes(step.state) &&\n index < steps.length - 1\n ) {\n if (firstColoredTailIndex === -1) {\n firstColoredTailIndex = index;\n }\n lastColoredTailIndex = index;\n }\n });\n\n return steps.map((step, index) => {\n const isLast = index === steps.length - 1;\n const isFirstColoredTail = index === firstColoredTailIndex;\n const isLastColoredTail = index === lastColoredTailIndex;\n\n return (\n <Step\n size={size}\n {...step}\n key={step.key || `stepper-${index}`}\n onClick={onClick}\n stepNumber={index}\n tail={tail && variantUI === \"simple\" && !isLast}\n direction={direction}\n variantUI={variantUI}\n palette={palette}\n isLast={isLast}\n isFirstColoredTail={isFirstColoredTail}\n isLastColoredTail={isLastColoredTail}\n />\n );\n });\n })()}\n </Box>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n\n// Export types\nexport type {\n StepClickType,\n StepperDirectionType,\n StepperPaletteType,\n StepperProps,\n StepperSize,\n StepperUIVariantType,\n StepStateType,\n StepType,\n} from \"./types\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { BoxProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledBox = styled.div<BoxProps>`\n display: flex;\n box-sizing: border-box;\n background-color: ${(props) => props.backgroundColor || \"transparent\"};\n border-color: ${(props) => props.borderColor || \"transparent\"};\n border-width: ${(props) =>\n typeof props.borderWidth === \"number\"\n ? `${props.borderWidth}px`\n : props.borderWidth || 0};\n\n ${(props) =>\n props.borderBottomWidth !== undefined &&\n `\n border-bottom-width: ${typeof props.borderBottomWidth === \"number\" ? `${props.borderBottomWidth}px` : props.borderBottomWidth};\n border-bottom-color: ${props.borderBottomColor || props.borderColor || \"transparent\"};\n border-bottom-style: solid;\n `}\n ${(props) =>\n props.borderTopWidth !== undefined &&\n `\n border-top-width: ${typeof props.borderTopWidth === \"number\" ? `${props.borderTopWidth}px` : props.borderTopWidth};\n border-top-color: ${props.borderTopColor || props.borderColor || \"transparent\"};\n border-top-style: solid;\n `}\n ${(props) =>\n props.borderLeftWidth !== undefined &&\n `\n border-left-width: ${typeof props.borderLeftWidth === \"number\" ? `${props.borderLeftWidth}px` : props.borderLeftWidth};\n border-left-color: ${props.borderLeftColor || props.borderColor || \"transparent\"};\n border-left-style: solid;\n `}\n ${(props) =>\n props.borderRightWidth !== undefined &&\n `\n border-right-width: ${typeof props.borderRightWidth === \"number\" ? `${props.borderRightWidth}px` : props.borderRightWidth};\n border-right-color: ${props.borderRightColor || props.borderColor || \"transparent\"};\n border-right-style: solid;\n `}\n\n border-style: ${(props) =>\n props.borderStyle ||\n (props.borderWidth ||\n props.borderBottomWidth ||\n props.borderTopWidth ||\n props.borderLeftWidth ||\n props.borderRightWidth\n ? \"solid\"\n : \"none\")};\n border-radius: ${(props) =>\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius || 0};\n height: ${(props) =>\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"auto\"};\n width: ${(props) =>\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"auto\"};\n min-width: ${(props) =>\n typeof props.minWidth === \"number\"\n ? `${props.minWidth}px`\n : props.minWidth || \"auto\"};\n min-height: ${(props) =>\n typeof props.minHeight === \"number\"\n ? `${props.minHeight}px`\n : props.minHeight || \"auto\"};\n\n padding: ${(props) =>\n typeof props.padding === \"number\"\n ? `${props.padding}px`\n : props.padding || 0};\n ${(props) =>\n props.paddingHorizontal &&\n `\n padding-left: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n padding-right: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n `}\n ${(props) =>\n props.paddingVertical &&\n `\n padding-top: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n padding-bottom: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n `}\n ${(props) =>\n props.paddingTop !== undefined &&\n `padding-top: ${typeof props.paddingTop === \"number\" ? `${props.paddingTop}px` : props.paddingTop};`}\n ${(props) =>\n props.paddingBottom !== undefined &&\n `padding-bottom: ${typeof props.paddingBottom === \"number\" ? `${props.paddingBottom}px` : props.paddingBottom};`}\n ${(props) =>\n props.paddingLeft !== undefined &&\n `padding-left: ${typeof props.paddingLeft === \"number\" ? `${props.paddingLeft}px` : props.paddingLeft};`}\n ${(props) =>\n props.paddingRight !== undefined &&\n `padding-right: ${typeof props.paddingRight === \"number\" ? `${props.paddingRight}px` : props.paddingRight};`}\n\n margin: ${(props) =>\n typeof props.margin === \"number\" ? `${props.margin}px` : props.margin || 0};\n ${(props) =>\n props.marginTop !== undefined &&\n `margin-top: ${typeof props.marginTop === \"number\" ? `${props.marginTop}px` : props.marginTop};`}\n ${(props) =>\n props.marginBottom !== undefined &&\n `margin-bottom: ${typeof props.marginBottom === \"number\" ? `${props.marginBottom}px` : props.marginBottom};`}\n ${(props) =>\n props.marginLeft !== undefined &&\n `margin-left: ${typeof props.marginLeft === \"number\" ? `${props.marginLeft}px` : props.marginLeft};`}\n ${(props) =>\n props.marginRight !== undefined &&\n `margin-right: ${typeof props.marginRight === \"number\" ? `${props.marginRight}px` : props.marginRight};`}\n\n flex-direction: ${(props) => props.flexDirection || \"column\"};\n flex-wrap: ${(props) => props.flexWrap || \"nowrap\"};\n align-items: ${(props) => props.alignItems || \"stretch\"};\n justify-content: ${(props) => props.justifyContent || \"flex-start\"};\n cursor: ${(props) =>\n props.cursor\n ? props.cursor\n : props.onClick || props.onPress\n ? \"pointer\"\n : \"inherit\"};\n position: ${(props) => props.position || \"static\"};\n top: ${(props) =>\n typeof props.top === \"number\" ? `${props.top}px` : props.top};\n bottom: ${(props) =>\n typeof props.bottom === \"number\" ? `${props.bottom}px` : props.bottom};\n left: ${(props) =>\n typeof props.left === \"number\" ? `${props.left}px` : props.left};\n right: ${(props) =>\n typeof props.right === \"number\" ? `${props.right}px` : props.right};\n flex: ${(props) => props.flex};\n flex-shrink: ${(props) => props.flexShrink ?? 1};\n gap: ${(props) =>\n typeof props.gap === \"number\" ? `${props.gap}px` : props.gap || 0};\n align-self: ${(props) => props.alignSelf || \"auto\"};\n overflow: ${(props) => props.overflow || \"visible\"};\n overflow-x: ${(props) => props.overflowX || \"visible\"};\n overflow-y: ${(props) => props.overflowY || \"visible\"};\n z-index: ${(props) => props.zIndex};\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n pointer-events: ${(props) => (props.disabled ? \"none\" : \"auto\")};\n\n &:hover {\n ${(props) =>\n props.hoverStyle?.backgroundColor &&\n `background-color: ${props.hoverStyle.backgroundColor};`}\n ${(props) =>\n props.hoverStyle?.borderColor &&\n `border-color: ${props.hoverStyle.borderColor};`}\n }\n\n &:active {\n ${(props) =>\n props.pressStyle?.backgroundColor &&\n `background-color: ${props.pressStyle.backgroundColor};`}\n }\n`;\n\nexport const Box = React.forwardRef<\n HTMLDivElement | HTMLButtonElement,\n BoxProps\n>(\n (\n {\n children,\n onPress,\n onKeyDown,\n onKeyUp,\n role,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-current\": ariaCurrent,\n \"aria-disabled\": ariaDisabled,\n \"aria-live\": ariaLive,\n \"aria-busy\": ariaBusy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-expanded\": ariaExpanded,\n \"aria-haspopup\": ariaHasPopup,\n \"aria-pressed\": ariaPressed,\n \"aria-controls\": ariaControls,\n tabIndex,\n as,\n src,\n alt,\n type,\n disabled,\n id,\n ...props\n },\n ref\n ) => {\n // Handle as=\"img\" for rendering images with proper border-radius\n if (as === \"img\" && src) {\n return (\n <img\n src={src}\n alt={alt || \"\"}\n style={{\n display: \"block\",\n objectFit: \"cover\",\n width:\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width,\n height:\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height,\n borderRadius:\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius,\n position: props.position,\n top: typeof props.top === \"number\" ? `${props.top}px` : props.top,\n left:\n typeof props.left === \"number\" ? `${props.left}px` : props.left,\n right:\n typeof props.right === \"number\"\n ? `${props.right}px`\n : props.right,\n bottom:\n typeof props.bottom === \"number\"\n ? `${props.bottom}px`\n : props.bottom,\n }}\n />\n );\n }\n\n return (\n <StyledBox\n ref={ref}\n as={as}\n id={id}\n type={as === \"button\" ? type || \"button\" : undefined}\n disabled={as === \"button\" ? disabled : undefined}\n onClick={onPress}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n role={role}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-current={ariaCurrent}\n aria-disabled={ariaDisabled}\n aria-busy={ariaBusy}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-pressed={ariaPressed}\n aria-controls={ariaControls}\n aria-live={ariaLive}\n tabIndex={tabIndex !== undefined ? tabIndex : undefined}\n {...props}\n >\n {children}\n </StyledBox>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { TextProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledText = styled.span<TextProps>`\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-weight: ${(props) => props.fontWeight || \"normal\"};\n font-family: ${(props) =>\n props.fontFamily ||\n '\"Pilat Wide Bold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important'};\n line-height: ${(props) =>\n typeof props.lineHeight === \"number\"\n ? `${props.lineHeight}px`\n : props.lineHeight || \"inherit\"};\n white-space: ${(props) => props.whiteSpace || \"normal\"};\n text-align: ${(props) => props.textAlign || \"inherit\"};\n text-decoration: ${(props) => props.textDecoration || \"none\"};\n`;\n\nexport const Text: React.FC<TextProps> = ({\n style,\n className,\n id,\n role,\n ...props\n}) => {\n return (\n <StyledText\n {...props}\n style={style}\n className={className}\n id={id}\n role={role}\n />\n );\n};\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport type { SpinnerProps } from \"@xsolla/xui-primitives-core\";\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst StyledSpinner = styled.div<SpinnerProps>`\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n border: ${(props) => props.strokeWidth || 2}px solid\n ${(props) => props.color || \"currentColor\"};\n border-bottom-color: transparent;\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: ${rotate} 1s linear infinite;\n`;\n\nexport const Spinner: React.FC<SpinnerProps> = ({\n role = \"status\",\n \"aria-label\": ariaLabel,\n \"aria-live\": ariaLive = \"polite\",\n \"aria-describedby\": ariaDescribedBy,\n testID,\n ...props\n}) => {\n return (\n <StyledSpinner\n role={role}\n aria-label={ariaLabel}\n aria-live={ariaLive}\n aria-describedby={ariaDescribedBy}\n data-testid={testID}\n {...props}\n />\n );\n};\n\nSpinner.displayName = \"Spinner\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledIcon = styled.div<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n svg {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: currentColor;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({ children, ...props }) => {\n return <StyledIcon {...props}>{children}</StyledIcon>;\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { DividerProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledDivider = styled.div<DividerProps>`\n background-color: ${(props) =>\n props.dashStroke\n ? \"transparent\"\n : props.color || \"rgba(255, 255, 255, 0.15)\"};\n width: ${(props) =>\n props.vertical\n ? typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"1px\"\n : \"100%\"};\n height: ${(props) =>\n props.vertical\n ? \"100%\"\n : typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"1px\"};\n\n ${(props) =>\n props.dashStroke &&\n `\n border-style: dashed;\n border-color: ${props.color || \"rgba(255, 255, 255, 0.15)\"};\n border-width: 0;\n ${\n props.vertical\n ? `\n border-left-width: ${typeof props.width === \"number\" ? `${props.width}px` : props.width || \"1px\"};\n height: 100%;\n `\n : `\n border-top-width: ${typeof props.height === \"number\" ? `${props.height}px` : props.height || \"1px\"};\n width: 100%;\n `\n }\n `}\n`;\n\nexport const Divider: React.FC<DividerProps> = (props) => {\n return <StyledDivider {...props} />;\n};\n","import React, { forwardRef } from \"react\";\nimport styled from \"styled-components\";\nimport { InputPrimitiveProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledInput = styled.input<InputPrimitiveProps>`\n background: transparent;\n border: none;\n outline: none;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-family: inherit;\n text-align: inherit;\n\n &::placeholder {\n color: ${(props) =>\n props.placeholderTextColor || \"rgba(255, 255, 255, 0.5)\"};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nexport const InputPrimitive = forwardRef<HTMLInputElement, InputPrimitiveProps>(\n (\n {\n value,\n placeholder,\n onChange,\n onChangeText,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n secureTextEntry,\n style,\n color,\n fontSize,\n placeholderTextColor,\n maxLength,\n name,\n type,\n inputMode,\n autoComplete,\n id,\n \"aria-invalid\": ariaInvalid,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel,\n \"aria-disabled\": ariaDisabled,\n \"data-testid\": dataTestId,\n ...rest\n },\n ref\n ) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n }\n if (onChangeText) {\n onChangeText(e.target.value);\n }\n };\n\n // Always pass value to make it a controlled input\n const inputValue = value !== undefined ? value : \"\";\n\n return (\n <StyledInput\n ref={ref}\n id={id}\n value={inputValue}\n name={name}\n placeholder={placeholder}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n type={secureTextEntry ? \"password\" : type || \"text\"}\n inputMode={inputMode}\n autoComplete={autoComplete}\n style={style}\n color={color}\n fontSize={fontSize}\n placeholderTextColor={placeholderTextColor}\n maxLength={maxLength}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n data-testid={dataTestId}\n {...rest}\n />\n );\n }\n);\n\nInputPrimitive.displayName = \"InputPrimitive\";\n","import React, { forwardRef } from \"react\";\nimport styled from \"styled-components\";\nimport { TextAreaPrimitiveProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledTextArea = styled.textarea<TextAreaPrimitiveProps>`\n background: transparent;\n border: none;\n outline: none;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-family: inherit;\n text-align: inherit;\n resize: none;\n\n &::placeholder {\n color: ${(props) =>\n props.placeholderTextColor || \"rgba(255, 255, 255, 0.5)\"};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nexport const TextAreaPrimitive = forwardRef<\n HTMLTextAreaElement,\n TextAreaPrimitiveProps\n>(\n (\n {\n value,\n placeholder,\n onChangeText,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n style,\n color,\n fontSize,\n placeholderTextColor,\n maxLength,\n rows,\n },\n ref\n ) => {\n return (\n <StyledTextArea\n ref={ref}\n value={value}\n placeholder={placeholder}\n onChange={(e) => onChangeText?.(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n style={style}\n color={color}\n fontSize={fontSize}\n placeholderTextColor={placeholderTextColor}\n maxLength={maxLength}\n rows={rows}\n />\n );\n }\n);\n\nTextAreaPrimitive.displayName = \"TextAreaPrimitive\";\n","import React, { useCallback, useMemo } from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box, Text, Spinner, Divider } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { Check, X, AlertCircle } from \"@xsolla/xui-icons\";\nimport type {\n StepProps,\n StepStateType,\n StepperSize,\n StepperPaletteType,\n} from \"./types\";\nimport { getPaletteColor, hexToRgba } from \"./utils/colors\";\nimport { isWeb } from \"./utils/platform\";\nimport { StepTail } from \"./StepTail\";\nimport { useStepHoverStyles } from \"./hooks/useStepHoverStyles\";\n\ninterface StepStateProps {\n state: StepStateType;\n size: StepperSize;\n step: number;\n variantUI: \"current\" | \"simple\";\n disabled: boolean;\n noClick: boolean;\n palette: StepperPaletteType;\n theme: ReturnType<typeof useDesignSystem>[\"theme\"];\n mode: ReturnType<typeof useDesignSystem>[\"mode\"];\n sizeStyles: ReturnType<\n ReturnType<typeof useDesignSystem>[\"theme\"][\"sizing\"][\"stepper\"]\n >;\n className?: string;\n isLast?: boolean;\n}\n\nconst StepState: React.FC<StepStateProps> = ({\n state,\n size,\n step,\n variantUI,\n disabled,\n noClick,\n palette,\n theme,\n mode,\n sizeStyles,\n className,\n isLast = false,\n}) => {\n const paletteColor = getPaletteColor(palette, theme, \"active\");\n const paletteTextColor = getPaletteColor(palette, theme, \"text\");\n\n const iconStyles = useMemo(() => {\n if (variantUI === \"simple\") {\n switch (state) {\n case \"current\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n };\n case \"incomplete\":\n return {\n backgroundColor: \"transparent\",\n borderColor: theme.colors.control.input.bgDisable,\n color: theme.colors.control.input.textDisable,\n };\n case \"loading\":\n const loadingBg = hexToRgba(paletteColor, 0.05);\n return {\n backgroundColor: loadingBg,\n borderColor: \"transparent\",\n color: paletteColor,\n };\n case \"complete\":\n return {\n backgroundColor: \"transparent\",\n borderColor: paletteColor,\n color: paletteColor,\n };\n case \"alert\":\n return {\n backgroundColor: theme.colors.content.alert.primary,\n borderColor: theme.colors.content.alert.primary,\n color: theme.colors.content.static.light,\n };\n case \"warning\":\n return {\n backgroundColor: theme.colors.content.warning.primary,\n borderColor: theme.colors.content.warning.primary,\n color: theme.colors.content.static.light,\n };\n default:\n return {\n backgroundColor: \"transparent\",\n borderColor: theme.colors.control.input.bgDisable,\n color: theme.colors.control.input.textDisable,\n };\n }\n } else {\n switch (state) {\n case \"current\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n };\n case \"incomplete\":\n if (mode === \"light\") {\n return {\n backgroundColor: theme.colors.content.static.dark,\n borderColor: theme.colors.content.static.dark,\n color: theme.colors.content.static.light,\n };\n } else {\n return {\n backgroundColor: theme.colors.content.static.light,\n borderColor: theme.colors.content.static.light,\n color: theme.colors.content.static.dark,\n };\n }\n case \"loading\":\n const loadingBg = hexToRgba(paletteColor, 0.05);\n return {\n backgroundColor: loadingBg,\n borderColor: \"transparent\",\n color: paletteColor,\n };\n case \"complete\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n };\n case \"alert\":\n return {\n backgroundColor: theme.colors.content.alert.primary,\n borderColor: theme.colors.content.alert.primary,\n color: theme.colors.content.static.light,\n };\n case \"warning\":\n return {\n backgroundColor: theme.colors.content.warning.primary,\n borderColor: theme.colors.content.warning.primary,\n color: theme.colors.content.static.light,\n };\n default:\n return {\n backgroundColor: theme.colors.control.input.bg,\n borderColor: theme.colors.control.input.bg,\n color: theme.colors.control.brand.primary.text.primary,\n };\n }\n }\n }, [state, variantUI, theme, paletteColor]);\n\n const iconHoverStyles = useMemo(() => {\n if (disabled || noClick) return {};\n if (variantUI === \"simple\") {\n if (isLast) {\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n opacity: 0.9,\n };\n }\n switch (state) {\n case \"current\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n opacity: 0.9,\n };\n case \"incomplete\":\n return {\n borderColor: paletteColor,\n color: paletteColor,\n opacity: 0.9,\n };\n case \"loading\":\n return {\n color: paletteColor,\n opacity: 0.9,\n };\n case \"complete\":\n return {\n borderColor: paletteColor,\n color: paletteColor,\n opacity: 0.9,\n };\n case \"alert\":\n case \"warning\":\n return {};\n default:\n return {};\n }\n } else {\n switch (state) {\n case \"current\":\n return {\n backgroundColor: theme.colors.control.brand.primary.bgHover,\n };\n case \"incomplete\":\n return {\n backgroundColor:\n theme.colors.control.input.bgHover ||\n theme.colors.control.input.bg,\n };\n case \"loading\":\n return {\n color: theme.colors.control.brand.primary.bgHover,\n };\n case \"complete\":\n return {\n backgroundColor: theme.colors.control.brand.primary.bgHover,\n };\n case \"alert\":\n case \"warning\":\n return {};\n default:\n return {};\n }\n }\n }, [state, variantUI, disabled, noClick, theme, paletteColor]);\n\n const iconSize = size === \"s\" ? 18 : 18;\n\n return (\n <Box\n className={className}\n width={sizeStyles.iconSize}\n height={sizeStyles.iconSize}\n borderRadius={sizeStyles.iconSize / 2}\n backgroundColor={iconStyles.backgroundColor}\n borderColor={iconStyles.borderColor}\n borderWidth={iconStyles.borderColor !== \"transparent\" ? 1 : 0}\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n >\n {state === \"loading\" ? (\n <Spinner size={size === \"s\" ? 16 : 20} color={iconStyles.color} />\n ) : state === \"complete\" ? (\n <Check size={iconSize} color={iconStyles.color} />\n ) : state === \"alert\" ? (\n <X size={iconSize} color={iconStyles.color} />\n ) : state === \"warning\" ? (\n <AlertCircle size={iconSize} color={iconStyles.color} />\n ) : (\n <Text\n color={iconStyles.color}\n fontSize={size === \"s\" ? 12 : 14}\n fontWeight=\"600\"\n >\n {step}\n </Text>\n )}\n </Box>\n );\n};\n\nexport const Step: React.FC<StepProps> = ({\n title,\n state = \"incomplete\",\n description,\n size,\n onClick,\n tail,\n stepNumber,\n disabled = false,\n direction,\n variantUI,\n noClick = false,\n palette = \"brand\",\n isLast = false,\n isFirstColoredTail = false,\n isLastColoredTail = false,\n}) => {\n const { theme, mode } = useDesignSystem();\n // @ts-ignore\n const sizeStyles = theme.sizing.stepper(size);\n\n const stepClassName = useMemo(\n () =>\n `step-${stepNumber}-${variantUI}-${direction}-${size}-${state}-${palette}`,\n [stepNumber, variantUI, direction, size, state, palette]\n );\n\n useStepHoverStyles(\n variantUI,\n state,\n stepClassName,\n theme,\n isLast,\n disabled,\n noClick,\n palette\n );\n\n const stepClick = useCallback(() => {\n if (onClick && !disabled && !noClick) {\n onClick({\n number: stepNumber,\n step: {\n title,\n description,\n state,\n disabled,\n },\n });\n }\n }, [onClick, disabled, noClick, stepNumber, title, description, state]);\n\n // Generate aria-label for the step\n const stepAriaLabel = useMemo(() => {\n const stepNum = stepNumber + 1;\n const titleText = typeof title === \"string\" ? title : \"Step\";\n const descriptionText =\n description && typeof description === \"string\" ? description : \"\";\n const stateText =\n {\n current: \"current\",\n incomplete: \"incomplete\",\n loading: \"loading\",\n complete: \"complete\",\n alert: \"alert\",\n warning: \"warning\",\n }[state] || \"incomplete\";\n\n let label = `Step ${stepNum}: ${titleText}`;\n if (descriptionText) {\n label += `, ${descriptionText}`;\n }\n label += `, ${stateText}`;\n if (isLast) {\n label += \", last step\";\n }\n return label;\n }, [stepNumber, title, description, state, isLast]);\n\n // Keyboard handler for accessibility\n // Enter triggers on keydown, Space triggers on keyup (button semantics)\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" && !disabled && !noClick) {\n event.preventDefault();\n stepClick();\n }\n // Prevent default scroll on Space keydown\n if (event.key === \" \" && !disabled && !noClick) {\n event.preventDefault();\n }\n },\n [stepClick, disabled, noClick]\n );\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \" && !disabled && !noClick) {\n event.preventDefault();\n stepClick();\n }\n },\n [stepClick, disabled, noClick]\n );\n\n // Determine if step is interactive\n const isInteractive = !disabled && !noClick && !!onClick;\n const isCurrent = state === \"current\";\n\n const titleStyles = useMemo(() => {\n if (variantUI === \"simple\") {\n const sizeStylesMap = {\n s: {\n fontSize: 14,\n lineHeight: 22,\n paddingTop: 1,\n paddingBottom: 1,\n },\n m: {\n fontSize: 16,\n lineHeight: 24,\n paddingTop: 4,\n paddingBottom: 4,\n },\n };\n return {\n ...sizeStylesMap[size],\n color:\n state === \"incomplete\"\n ? theme.colors.control.input.textDisable\n : theme.colors.content.primary,\n fontWeight: \"500\",\n };\n } else {\n const sizeDirectionStyles = {\n sm_horizontal: {\n fontSize: 16,\n lineHeight: 20,\n fontWeight: \"500\",\n },\n md_horizontal: {\n fontSize: 18,\n lineHeight: 24,\n fontWeight: \"500\",\n },\n sm_vertical: {\n fontSize: 18,\n lineHeight: 20,\n fontWeight: \"500\",\n },\n md_vertical: {\n fontSize: 18,\n lineHeight: 24,\n fontWeight: \"500\",\n },\n };\n const stateColors: Record<string, string> = {\n incomplete: theme.colors.content.secondary,\n current: getPaletteColor(palette, theme, \"text\"),\n loading: getPaletteColor(palette, theme, \"text\"),\n alert: theme.colors.content.primary,\n warning: theme.colors.content.primary,\n complete: theme.colors.content.primary,\n };\n return {\n ...sizeDirectionStyles[\n `${size}_${direction}` as keyof typeof sizeDirectionStyles\n ],\n color: stateColors[state] || theme.colors.content.primary,\n };\n }\n }, [variantUI, direction, size, state, theme, palette]);\n\n const descriptionStyles = useMemo(() => {\n const sizeStylesMap = {\n s: {\n fontSize: 12,\n lineHeight: variantUI === \"simple\" ? 20 : 18,\n marginTop: variantUI === \"simple\" ? 0 : 2,\n },\n m: {\n fontSize: 14,\n lineHeight: variantUI === \"simple\" ? 22 : 20,\n marginTop: variantUI === \"simple\" ? 0 : 4,\n },\n };\n let descriptionColor = theme.colors.content.secondary;\n if (variantUI === \"current\" && (state === \"incomplete\" || !state)) {\n descriptionColor =\n theme.colors.content.tertiary || \"rgba(24, 23, 28, 0.5)\";\n }\n return {\n ...sizeStylesMap[size],\n color: descriptionColor,\n fontWeight: \"400\",\n };\n }, [size, variantUI, state, theme]);\n\n const contentWrapperStyles = useMemo(() => {\n if (variantUI === \"simple\") {\n if (direction === \"horizontal\") {\n return {\n marginLeft: size === \"s\" ? 8 : 12,\n flex: 1,\n };\n }\n return {\n marginLeft: size === \"s\" ? 8 : 12,\n };\n } else {\n const baseStyles = {\n marginTop: size === \"s\" ? 10 : 12,\n };\n if (direction === \"horizontal\") {\n return {\n ...baseStyles,\n paddingLeft: size === \"s\" ? 20 : 24,\n paddingRight: size === \"s\" ? 20 : 24,\n gap: 12,\n };\n } else {\n return {};\n }\n return baseStyles;\n }\n }, [variantUI, direction, size]);\n\n const stepWrapperStyles = useMemo(() => {\n if (variantUI === \"current\") {\n if (direction === \"horizontal\") {\n return {\n flex: 1,\n minWidth: 0,\n flexShrink: 0,\n paddingBottom: size === \"s\" ? 27 : 37,\n };\n } else {\n return {\n paddingTop: size === \"s\" ? 20 : 24,\n paddingBottom: size === \"s\" ? 20 : 24,\n paddingLeft: size === \"s\" ? 24 : 32,\n paddingRight: size === \"s\" ? 10 : 10,\n minWidth: 184,\n };\n }\n } else {\n if (direction === \"horizontal\") {\n return {\n flexShrink: 0,\n marginRight: isLast ? 0 : size === \"s\" ? 8 : 12,\n };\n } else {\n return {\n marginBottom: isLast ? 0 : 8,\n minHeight: 56,\n };\n }\n }\n }, [variantUI, direction, size, isLast]);\n\n if (variantUI === \"current\" && direction === \"horizontal\") {\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n position=\"relative\"\n {...stepWrapperStyles}\n {...(isWeb() && {\n cursor: disabled || noClick ? \"default\" : \"pointer\",\n })}\n >\n <StepTail\n variantUI={variantUI}\n direction={direction}\n size={size}\n state={state}\n isLast={isLast}\n isFirstColoredTail={isFirstColoredTail}\n isLastColoredTail={isLastColoredTail}\n palette={palette}\n />\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={12}\n paddingLeft={size === \"s\" ? 20 : 24}\n paddingRight={size === \"s\" ? 20 : 24}\n width=\"100%\"\n >\n <Box flexDirection=\"column\" alignItems=\"flex-start\">\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n className={`step-icon-${stepClassName}`}\n isLast={isLast}\n />\n </Box>\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={4}\n width=\"100%\"\n >\n {typeof title === \"string\" ? (\n <Text\n className={`step-title-${stepClassName}`}\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description && (\n <Box width=\"100%\" alignItems=\"flex-start\">\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n className={`step-description-${stepClassName}`}\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n }\n\n if (variantUI === \"simple\" && direction === \"horizontal\") {\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n {...stepWrapperStyles}\n {...(isWeb() && {\n cursor: disabled || noClick ? \"default\" : \"pointer\",\n })}\n >\n <Box flexDirection=\"column\">\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n isLast={isLast}\n />\n </Box>\n <Box {...contentWrapperStyles}>\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n width=\"100%\"\n paddingTop={\n variantUI === \"simple\" ? (size === \"s\" ? 1 : 4) : undefined\n }\n paddingBottom={\n variantUI === \"simple\" ? (size === \"s\" ? 1 : 4) : undefined\n }\n >\n {typeof title === \"string\" ? (\n <Text\n className={`step-title-${stepClassName}`}\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {tail && (\n <Box\n flex={1}\n marginLeft={size === \"s\" ? 8 : 12}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Divider color={theme.colors.border.secondary} />\n </Box>\n )}\n </Box>\n {description && (\n <Box>\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n className={`step-description-${stepClassName}`}\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n );\n }\n\n if (variantUI === \"current\" && direction === \"vertical\") {\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n position=\"relative\"\n {...stepWrapperStyles}\n {...(isWeb() && {\n cursor: disabled || noClick ? \"default\" : \"pointer\",\n })}\n >\n <StepTail\n variantUI={variantUI}\n direction={direction}\n size={size}\n state={state}\n isLast={isLast}\n isFirstColoredTail={isFirstColoredTail}\n isLastColoredTail={isLastColoredTail}\n palette={palette}\n />\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={12}\n paddingTop={size === \"s\" ? 20 : 24}\n paddingBottom={size === \"s\" ? 20 : 24}\n flex={1}\n >\n <Box flexDirection=\"column\" alignItems=\"flex-start\">\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n className={`step-icon-${stepClassName}`}\n isLast={isLast}\n />\n </Box>\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={4}\n width=\"100%\"\n >\n {typeof title === \"string\" ? (\n <Text\n className={`step-title-${stepClassName}`}\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description && (\n <Box>\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n className={`step-description-${stepClassName}`}\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n }\n\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n {...stepWrapperStyles}\n {...(isWeb() && { cursor: disabled || noClick ? \"default\" : \"pointer\" })}\n >\n <Box flexDirection=\"column\" alignItems=\"center\" flexShrink={0}>\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n />\n {tail && !isLast && (\n <Box\n width={1}\n flex={1}\n minHeight={24}\n marginTop={8}\n alignItems=\"stretch\"\n justifyContent=\"flex-start\"\n position=\"relative\"\n backgroundColor={theme.colors.border.secondary}\n />\n )}\n </Box>\n <Box {...contentWrapperStyles} flex={1}>\n {typeof title === \"string\" ? (\n <Text\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description && (\n <Box marginTop={descriptionStyles.marginTop}>\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n );\n};\n","import type { StepperPaletteType } from \"../types\";\nimport type { useDesignSystem } from \"@xsolla/xui-core\";\n\nexport const getPaletteColor = (\n palette: StepperPaletteType,\n theme: ReturnType<typeof useDesignSystem>[\"theme\"],\n type: \"active\" | \"text\" = \"text\"\n): string => {\n const fallback = type === \"active\" ? \"#00d4ff\" : \"#00d4ff\";\n\n if (palette === \"brand\") {\n const brandText = theme.colors?.content?.brand?.secondary;\n const brandActive =\n theme.colors?.control?.brand?.primary?.bgHover || brandText;\n\n if (type === \"active\") {\n return brandActive || fallback;\n }\n return brandText || fallback;\n }\n\n if (palette === \"brandSecondary\") {\n const extraText = theme.colors?.content?.brandExtra?.primary;\n const extraActive =\n theme.colors?.control?.brandExtra?.primary?.bgHover || extraText;\n\n if (type === \"active\") {\n return extraActive || \"#d9ff66\";\n }\n return extraText || \"#d9ff66\";\n }\n\n const brandText = theme.colors?.content?.brand?.secondary;\n const brandActive =\n theme.colors?.control?.brand?.primary?.bgHover || brandText;\n return (type === \"active\" ? brandActive : brandText) || fallback;\n};\n\nexport const hexToRgba = (hex: string, opacity: number): string => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (result) {\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n return hex;\n};\n","/**\n * Platform detection utility\n * Detects if we're running on web or React Native\n */\nexport const isWeb = (): boolean => {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\";\n};\n\nexport const isNative = (): boolean => {\n return !isWeb();\n};\n","import React from \"react\";\nimport { Box } from \"@xsolla/xui-primitives\";\nimport type { StepperSize, StepperPaletteType, StepStateType } from \"./types\";\nimport { getPaletteColor, hexToRgba } from \"./utils/colors\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { isWeb } from \"./utils/platform\";\n\ninterface StepTailProps {\n variantUI: \"current\" | \"simple\";\n direction: \"horizontal\" | \"vertical\";\n size: StepperSize;\n state: StepStateType;\n isLast: boolean;\n isFirstColoredTail: boolean;\n isLastColoredTail: boolean;\n palette: StepperPaletteType;\n}\n\nexport const StepTail: React.FC<StepTailProps> = ({\n variantUI,\n direction,\n size,\n state,\n isLast,\n isFirstColoredTail,\n isLastColoredTail,\n palette,\n}) => {\n const { theme } = useDesignSystem();\n\n if (variantUI !== \"current\" || isLast) {\n return null;\n }\n\n const tailSize = size === \"s\" ? 3 : 5;\n const verticalTailWidth = size === \"s\" ? 2 : 4;\n const isHorizontal = direction === \"horizontal\";\n\n let tailBgColor = \"transparent\";\n let tailHeight = tailSize;\n let tailWidth = tailSize;\n let borderRadius: number = 0;\n let borderRadiusStyle: React.CSSProperties | undefined;\n\n try {\n if (isFirstColoredTail && isLastColoredTail) {\n borderRadius = 4;\n } else if (isFirstColoredTail) {\n if (isWeb()) {\n borderRadiusStyle = isHorizontal\n ? { borderRadius: \"4px 0 0 4px\" }\n : { borderRadius: \"4px 4px 0 0\" };\n } else {\n if (isHorizontal) {\n borderRadiusStyle = {\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n };\n } else {\n borderRadiusStyle = {\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4,\n };\n }\n }\n } else if (isLastColoredTail) {\n if (isWeb()) {\n borderRadiusStyle = isHorizontal\n ? { borderRadius: \"0 4px 4px 0\" }\n : { borderRadius: \"0 0 4px 4px\" };\n } else {\n if (isHorizontal) {\n borderRadiusStyle = {\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n };\n } else {\n borderRadiusStyle = {\n borderBottomLeftRadius: 4,\n borderBottomRightRadius: 4,\n };\n }\n }\n }\n\n if (state === \"current\" || state === \"loading\") {\n tailBgColor = getPaletteColor(palette, theme, \"active\");\n tailHeight = tailSize;\n tailWidth = isHorizontal ? tailSize : verticalTailWidth;\n } else if (state === \"alert\") {\n tailBgColor = theme.colors.content.alert.primary;\n tailHeight = tailSize;\n tailWidth = isHorizontal ? tailSize : verticalTailWidth;\n } else if (state === \"warning\") {\n tailBgColor = theme.colors.content.warning.primary;\n tailHeight = tailSize;\n tailWidth = isHorizontal ? tailSize : verticalTailWidth;\n } else if (state === \"complete\") {\n return null;\n } else {\n const paletteColor = getPaletteColor(palette, theme, \"active\");\n tailBgColor = hexToRgba(paletteColor, 0.15);\n tailHeight = 2;\n tailWidth = isHorizontal ? 2 : 2;\n borderRadius = 0;\n }\n } catch {\n return null;\n }\n\n const borderOffset = isHorizontal ? -(tailHeight / 2 + 0.5) : -3;\n\n if (isHorizontal) {\n return (\n <Box\n position=\"absolute\"\n bottom={borderOffset}\n left={0}\n width=\"100%\"\n height={tailHeight}\n backgroundColor={tailBgColor}\n borderRadius={borderRadius}\n zIndex={1}\n style={borderRadiusStyle}\n />\n );\n }\n\n return (\n <Box\n position=\"absolute\"\n top={0}\n left={borderOffset}\n height=\"100%\"\n width={tailWidth}\n backgroundColor={tailBgColor}\n borderRadius={borderRadius}\n zIndex={1}\n style={borderRadiusStyle}\n />\n );\n};\n","import { useEffect } from \"react\";\nimport { isWeb } from \"../utils/platform\";\nimport { getPaletteColor } from \"../utils/colors\";\nimport type { StepStateType, StepperPaletteType } from \"../types\";\nimport type { useDesignSystem } from \"@xsolla/xui-core\";\n\n/**\n * Hook to inject hover styles for web only\n * Returns early on React Native\n */\nexport const useStepHoverStyles = (\n variantUI: \"current\" | \"simple\",\n state: StepStateType,\n className: string,\n theme: ReturnType<typeof useDesignSystem>[\"theme\"],\n isLast: boolean,\n disabled: boolean,\n noClick: boolean,\n palette: StepperPaletteType\n) => {\n useEffect(() => {\n if (!isWeb()) {\n return;\n }\n\n const styleId = `step-hover-styles-${className}`;\n let styleElement = document.getElementById(\n styleId\n ) as HTMLStyleElement | null;\n\n if (!styleElement) {\n styleElement = document.createElement(\"style\");\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const getHoverTextColor = () => {\n if (state === \"alert\") {\n return theme.colors.content.alert.primary;\n } else if (state === \"warning\") {\n return theme.colors.content.warning.primary;\n } else {\n return getPaletteColor(palette, theme, \"text\");\n }\n };\n\n let hoverCss = \"\";\n if (!disabled && !noClick) {\n const hoverTextColor = getHoverTextColor();\n const hoverPaletteColor = getPaletteColor(palette, theme, \"active\");\n\n let circleHoverCss = \"\";\n if (isLast) {\n const whiteColor = theme.colors.content.static.light;\n circleHoverCss = `\n .step-icon-${className} {\n background-color: ${hoverPaletteColor} !important;\n border-color: ${hoverPaletteColor} !important;\n color: ${whiteColor} !important;\n }\n `;\n } else {\n if (variantUI === \"simple\") {\n if (state === \"incomplete\") {\n const whiteColor = theme.colors.content.static.light;\n circleHoverCss = `\n .step-icon-${className} {\n background-color: ${hoverPaletteColor} !important;\n border-color: ${hoverPaletteColor} !important;\n color: ${whiteColor} !important;\n }\n `;\n } else if (state === \"complete\") {\n circleHoverCss = `\n .step-icon-${className} {\n border-color: ${hoverPaletteColor} !important;\n color: ${hoverPaletteColor} !important;\n }\n `;\n } else if (state === \"loading\") {\n circleHoverCss = `\n .step-icon-${className} {\n color: ${hoverPaletteColor} !important;\n }\n `;\n }\n } else {\n if (state === \"incomplete\") {\n const whiteColor = theme.colors.content.static.light;\n circleHoverCss = `\n .step-icon-${className} {\n background-color: ${hoverPaletteColor} !important;\n border-color: ${hoverPaletteColor} !important;\n color: ${whiteColor} !important;\n }\n `;\n } else if (state === \"complete\") {\n circleHoverCss = `\n .step-icon-${className} {\n border-color: ${hoverPaletteColor} !important;\n color: ${hoverPaletteColor} !important;\n }\n `;\n } else if (state === \"loading\") {\n circleHoverCss = `\n .step-icon-${className} {\n color: ${hoverPaletteColor} !important;\n }\n `;\n }\n }\n }\n\n hoverCss = `\n &:hover {\n .step-title-${className} {\n color: ${hoverTextColor} !important;\n }\n .step-description-${className} {\n color: ${hoverTextColor} !important;\n }\n ${circleHoverCss}\n }\n `;\n }\n\n const css = `\n .${className} {\n ${hoverCss}\n }\n `;\n\n styleElement.textContent = css;\n\n return () => {\n if (styleElement && styleElement.parentNode) {\n styleElement.parentNode.removeChild(styleElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variantUI, state, className, isLast, disabled, noClick, palette, theme]);\n};\n","import React from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { ArrowLeft, ArrowRight } from \"@xsolla/xui-icons\";\nimport { ProgressStepItem } from \"./ProgressStepItem\";\nimport type { ProgressStepProps } from \"./types\";\n\nexport const ProgressStep: React.FC<ProgressStepProps> = ({\n count,\n activeStep,\n size = \"m\",\n arrows = true,\n onStepPress,\n className,\n}) => {\n const { theme } = useDesignSystem();\n\n const handlePrev = () => {\n if (activeStep > 0 && onStepPress) {\n onStepPress(activeStep - 1);\n }\n };\n\n const handleNext = () => {\n if (activeStep < count - 1 && onStepPress) {\n onStepPress(activeStep + 1);\n }\n };\n\n const arrowSize = size === \"m\" ? 24 : 18;\n const iconSize = size === \"m\" ? 18 : 14;\n const isFirst = activeStep <= 0;\n const isLast = activeStep >= count - 1;\n\n return (\n <Box\n className={className}\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={4}\n height={size === \"m\" ? 24 : 18}\n >\n {arrows && (\n <Box\n onPress={handlePrev}\n width={arrowSize}\n height={arrowSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius={4}\n opacity={isFirst ? 0.2 : 1}\n cursor={isFirst ? \"default\" : \"pointer\"}\n >\n <ArrowLeft size={iconSize} color={theme.colors.content.primary} />\n </Box>\n )}\n\n <Box flexDirection=\"row\" alignItems=\"center\" gap={4}>\n {Array.from({ length: count }).map((_, i) => (\n <ProgressStepItem\n key={i}\n size={size}\n state={i === activeStep ? \"active\" : \"default\"}\n onPress={onStepPress ? () => onStepPress(i) : undefined}\n />\n ))}\n </Box>\n\n {arrows && (\n <Box\n onPress={handleNext}\n width={arrowSize}\n height={arrowSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius={4}\n opacity={isLast ? 0.2 : 1}\n cursor={isLast ? \"default\" : \"pointer\"}\n >\n <ArrowRight size={iconSize} color={theme.colors.content.primary} />\n </Box>\n )}\n </Box>\n );\n};\n","import React from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport type { ProgressStepItemProps } from \"./types\";\n\nexport const ProgressStepItem: React.FC<ProgressStepItemProps> = ({\n state = \"default\",\n size = \"m\",\n className,\n onPress,\n onMouseEnter,\n onMouseLeave,\n}) => {\n const { theme } = useDesignSystem();\n const isActive = state === \"active\";\n const isHover = state === \"hover\";\n const isMD = size === \"m\";\n\n const width = isActive ? (isMD ? 24 : 18) : isMD ? 8 : 6;\n const height = isMD ? 8 : 6;\n const borderRadius = isMD ? 2 : 1;\n\n let backgroundColor = theme.colors.content.primary;\n let opacity = 1;\n\n if (!isActive) {\n backgroundColor = theme.colors.content.tertiary || \"rgba(0, 0, 0, 0.6)\";\n opacity = isHover ? 0.5 : 0.2;\n }\n\n return (\n <Box\n className={className}\n width={width}\n height={height}\n borderRadius={borderRadius}\n backgroundColor={backgroundColor}\n opacity={opacity}\n onPress={onPress}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n cursor={onPress ? \"pointer\" : \"default\"}\n />\n );\n};\n"],"mappings":"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","names":["import_react","styled","React","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_react","import_styled_components","import_jsx_runtime","styled","import_react","import_styled_components","import_jsx_runtime","styled","import_xui_core","import_react","import_xui_core","brandText","brandActive","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_xui_core","import_xui_icons","import_xui_core","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../src/Stepper.tsx","../../../primitives-web/src/Box.tsx","../../../primitives-web/src/Text.tsx","../../../primitives-web/src/Spinner.tsx","../../../primitives-web/src/Icon.tsx","../../../primitives-web/src/Divider.tsx","../../../primitives-web/src/Input.tsx","../../../primitives-web/src/TextArea.tsx","../../src/Step.tsx","../../src/utils/colors.ts","../../src/utils/platform.ts","../../src/StepTail.tsx","../../src/hooks/useStepHoverStyles.ts","../../src/ProgressStep.tsx","../../src/ProgressStepItem.tsx"],"sourcesContent":["export * from \"./Stepper\";\nexport * from \"./ProgressStep\";\nexport * from \"./ProgressStepItem\";\nexport * from \"./types\";\nexport { Step } from \"./Step\";\n","import React, { forwardRef } from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { Step } from \"./Step\";\nimport type { StepperProps, StepStateType } from \"./types\";\n\nexport const Stepper = forwardRef<any, StepperProps>(\n (\n {\n direction = \"horizontal\",\n variantUI = \"current\",\n size = \"md\",\n steps,\n tail = false,\n onClick,\n className,\n customClass,\n palette = \"brand\",\n \"aria-label\": ariaLabel,\n ...rest\n },\n ref\n ) => {\n const { theme } = useDesignSystem();\n const isHorizontal = direction === \"horizontal\";\n const isCurrentVariant = variantUI === \"current\";\n const tailSize = size === \"sm\" ? 3 : 5;\n const tailOffset = tailSize / 2;\n\n // Generate default aria-label if not provided\n const defaultAriaLabel = `Stepper with ${steps.length} step${steps.length !== 1 ? \"s\" : \"\"}`;\n const stepperAriaLabel = ariaLabel || defaultAriaLabel;\n\n return (\n <Box\n ref={ref}\n role=\"navigation\"\n aria-label={stepperAriaLabel}\n flexDirection={isHorizontal ? \"row\" : \"column\"}\n justifyContent={isHorizontal ? \"flex-start\" : undefined}\n width=\"100%\"\n height=\"auto\"\n overflowX={isHorizontal ? \"auto\" : undefined}\n overflowY={isHorizontal ? \"hidden\" : undefined}\n paddingBottom={\n isHorizontal && isCurrentVariant ? tailOffset : undefined\n }\n borderBottomWidth={isHorizontal && isCurrentVariant ? 1 : 0}\n borderBottomColor={\n isHorizontal && isCurrentVariant\n ? theme.colors.border.secondary\n : undefined\n }\n borderLeftWidth={!isHorizontal && isCurrentVariant ? 1 : 0}\n borderLeftColor={\n !isHorizontal && isCurrentVariant\n ? theme.colors.border.secondary\n : undefined\n }\n className={[className, customClass].filter(Boolean).join(\" \")}\n {...rest}\n >\n {(() => {\n const coloredTailStates: Array<StepStateType> = [\n \"current\",\n \"loading\",\n \"alert\",\n \"warning\",\n ];\n let firstColoredTailIndex = -1;\n let lastColoredTailIndex = -1;\n\n steps.forEach((step, index) => {\n if (\n step.state &&\n coloredTailStates.includes(step.state) &&\n index < steps.length - 1\n ) {\n if (firstColoredTailIndex === -1) {\n firstColoredTailIndex = index;\n }\n lastColoredTailIndex = index;\n }\n });\n\n return steps.map((step, index) => {\n const isLast = index === steps.length - 1;\n const isFirstColoredTail = index === firstColoredTailIndex;\n const isLastColoredTail = index === lastColoredTailIndex;\n\n return (\n <Step\n size={size}\n {...step}\n key={step.key || `stepper-${index}`}\n onClick={onClick}\n stepNumber={index}\n tail={tail && variantUI === \"simple\" && !isLast}\n direction={direction}\n variantUI={variantUI}\n palette={palette}\n isLast={isLast}\n isFirstColoredTail={isFirstColoredTail}\n isLastColoredTail={isLastColoredTail}\n />\n );\n });\n })()}\n </Box>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n\n// Export types\nexport type {\n StepClickType,\n StepperDirectionType,\n StepperPaletteType,\n StepperProps,\n StepperSize,\n StepperUIVariantType,\n StepStateType,\n StepType,\n} from \"./types\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { BoxProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledBox = styled.div<BoxProps>`\n display: flex;\n box-sizing: border-box;\n background-color: ${(props) => props.backgroundColor || \"transparent\"};\n border-color: ${(props) => props.borderColor || \"transparent\"};\n border-width: ${(props) =>\n typeof props.borderWidth === \"number\"\n ? `${props.borderWidth}px`\n : props.borderWidth || 0};\n\n ${(props) =>\n props.borderBottomWidth !== undefined &&\n `\n border-bottom-width: ${typeof props.borderBottomWidth === \"number\" ? `${props.borderBottomWidth}px` : props.borderBottomWidth};\n border-bottom-color: ${props.borderBottomColor || props.borderColor || \"transparent\"};\n border-bottom-style: solid;\n `}\n ${(props) =>\n props.borderTopWidth !== undefined &&\n `\n border-top-width: ${typeof props.borderTopWidth === \"number\" ? `${props.borderTopWidth}px` : props.borderTopWidth};\n border-top-color: ${props.borderTopColor || props.borderColor || \"transparent\"};\n border-top-style: solid;\n `}\n ${(props) =>\n props.borderLeftWidth !== undefined &&\n `\n border-left-width: ${typeof props.borderLeftWidth === \"number\" ? `${props.borderLeftWidth}px` : props.borderLeftWidth};\n border-left-color: ${props.borderLeftColor || props.borderColor || \"transparent\"};\n border-left-style: solid;\n `}\n ${(props) =>\n props.borderRightWidth !== undefined &&\n `\n border-right-width: ${typeof props.borderRightWidth === \"number\" ? `${props.borderRightWidth}px` : props.borderRightWidth};\n border-right-color: ${props.borderRightColor || props.borderColor || \"transparent\"};\n border-right-style: solid;\n `}\n\n border-style: ${(props) =>\n props.borderStyle ||\n (props.borderWidth ||\n props.borderBottomWidth ||\n props.borderTopWidth ||\n props.borderLeftWidth ||\n props.borderRightWidth\n ? \"solid\"\n : \"none\")};\n border-radius: ${(props) =>\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius || 0};\n height: ${(props) =>\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"auto\"};\n width: ${(props) =>\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"auto\"};\n min-width: ${(props) =>\n typeof props.minWidth === \"number\"\n ? `${props.minWidth}px`\n : props.minWidth || \"auto\"};\n min-height: ${(props) =>\n typeof props.minHeight === \"number\"\n ? `${props.minHeight}px`\n : props.minHeight || \"auto\"};\n\n padding: ${(props) =>\n typeof props.padding === \"number\"\n ? `${props.padding}px`\n : props.padding || 0};\n ${(props) =>\n props.paddingHorizontal &&\n `\n padding-left: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n padding-right: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n `}\n ${(props) =>\n props.paddingVertical &&\n `\n padding-top: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n padding-bottom: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n `}\n ${(props) =>\n props.paddingTop !== undefined &&\n `padding-top: ${typeof props.paddingTop === \"number\" ? `${props.paddingTop}px` : props.paddingTop};`}\n ${(props) =>\n props.paddingBottom !== undefined &&\n `padding-bottom: ${typeof props.paddingBottom === \"number\" ? `${props.paddingBottom}px` : props.paddingBottom};`}\n ${(props) =>\n props.paddingLeft !== undefined &&\n `padding-left: ${typeof props.paddingLeft === \"number\" ? `${props.paddingLeft}px` : props.paddingLeft};`}\n ${(props) =>\n props.paddingRight !== undefined &&\n `padding-right: ${typeof props.paddingRight === \"number\" ? `${props.paddingRight}px` : props.paddingRight};`}\n\n margin: ${(props) =>\n typeof props.margin === \"number\" ? `${props.margin}px` : props.margin || 0};\n ${(props) =>\n props.marginTop !== undefined &&\n `margin-top: ${typeof props.marginTop === \"number\" ? `${props.marginTop}px` : props.marginTop};`}\n ${(props) =>\n props.marginBottom !== undefined &&\n `margin-bottom: ${typeof props.marginBottom === \"number\" ? `${props.marginBottom}px` : props.marginBottom};`}\n ${(props) =>\n props.marginLeft !== undefined &&\n `margin-left: ${typeof props.marginLeft === \"number\" ? `${props.marginLeft}px` : props.marginLeft};`}\n ${(props) =>\n props.marginRight !== undefined &&\n `margin-right: ${typeof props.marginRight === \"number\" ? `${props.marginRight}px` : props.marginRight};`}\n\n flex-direction: ${(props) => props.flexDirection || \"column\"};\n flex-wrap: ${(props) => props.flexWrap || \"nowrap\"};\n align-items: ${(props) => props.alignItems || \"stretch\"};\n justify-content: ${(props) => props.justifyContent || \"flex-start\"};\n cursor: ${(props) =>\n props.cursor\n ? props.cursor\n : props.onClick || props.onPress\n ? \"pointer\"\n : \"inherit\"};\n position: ${(props) => props.position || \"static\"};\n top: ${(props) =>\n typeof props.top === \"number\" ? `${props.top}px` : props.top};\n bottom: ${(props) =>\n typeof props.bottom === \"number\" ? `${props.bottom}px` : props.bottom};\n left: ${(props) =>\n typeof props.left === \"number\" ? `${props.left}px` : props.left};\n right: ${(props) =>\n typeof props.right === \"number\" ? `${props.right}px` : props.right};\n flex: ${(props) => props.flex};\n flex-shrink: ${(props) => props.flexShrink ?? 1};\n gap: ${(props) =>\n typeof props.gap === \"number\" ? `${props.gap}px` : props.gap || 0};\n align-self: ${(props) => props.alignSelf || \"auto\"};\n overflow: ${(props) => props.overflow || \"visible\"};\n overflow-x: ${(props) => props.overflowX || \"visible\"};\n overflow-y: ${(props) => props.overflowY || \"visible\"};\n z-index: ${(props) => props.zIndex};\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n pointer-events: ${(props) => (props.disabled ? \"none\" : \"auto\")};\n\n &:hover {\n ${(props) =>\n props.hoverStyle?.backgroundColor &&\n `background-color: ${props.hoverStyle.backgroundColor};`}\n ${(props) =>\n props.hoverStyle?.borderColor &&\n `border-color: ${props.hoverStyle.borderColor};`}\n }\n\n &:active {\n ${(props) =>\n props.pressStyle?.backgroundColor &&\n `background-color: ${props.pressStyle.backgroundColor};`}\n }\n`;\n\nexport const Box = React.forwardRef<\n HTMLDivElement | HTMLButtonElement,\n BoxProps\n>(\n (\n {\n children,\n onPress,\n onKeyDown,\n onKeyUp,\n role,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-current\": ariaCurrent,\n \"aria-disabled\": ariaDisabled,\n \"aria-live\": ariaLive,\n \"aria-busy\": ariaBusy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-expanded\": ariaExpanded,\n \"aria-haspopup\": ariaHasPopup,\n \"aria-pressed\": ariaPressed,\n \"aria-controls\": ariaControls,\n tabIndex,\n as,\n src,\n alt,\n type,\n disabled,\n id,\n ...props\n },\n ref\n ) => {\n // Handle as=\"img\" for rendering images with proper border-radius\n if (as === \"img\" && src) {\n return (\n <img\n src={src}\n alt={alt || \"\"}\n style={{\n display: \"block\",\n objectFit: \"cover\",\n width:\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width,\n height:\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height,\n borderRadius:\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius,\n position: props.position,\n top: typeof props.top === \"number\" ? `${props.top}px` : props.top,\n left:\n typeof props.left === \"number\" ? `${props.left}px` : props.left,\n right:\n typeof props.right === \"number\"\n ? `${props.right}px`\n : props.right,\n bottom:\n typeof props.bottom === \"number\"\n ? `${props.bottom}px`\n : props.bottom,\n }}\n />\n );\n }\n\n return (\n <StyledBox\n ref={ref}\n as={as}\n id={id}\n type={as === \"button\" ? type || \"button\" : undefined}\n disabled={as === \"button\" ? disabled : undefined}\n onClick={onPress}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n role={role}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-current={ariaCurrent}\n aria-disabled={ariaDisabled}\n aria-busy={ariaBusy}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-pressed={ariaPressed}\n aria-controls={ariaControls}\n aria-live={ariaLive}\n tabIndex={tabIndex !== undefined ? tabIndex : undefined}\n {...props}\n >\n {children}\n </StyledBox>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { TextProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledText = styled.span<TextProps>`\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-weight: ${(props) => props.fontWeight || \"normal\"};\n font-family: ${(props) =>\n props.fontFamily ||\n '\"Pilat Wide Bold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important'};\n line-height: ${(props) =>\n typeof props.lineHeight === \"number\"\n ? `${props.lineHeight}px`\n : props.lineHeight || \"inherit\"};\n white-space: ${(props) => props.whiteSpace || \"normal\"};\n text-align: ${(props) => props.textAlign || \"inherit\"};\n text-decoration: ${(props) => props.textDecoration || \"none\"};\n`;\n\nexport const Text: React.FC<TextProps> = ({\n style,\n className,\n id,\n role,\n ...props\n}) => {\n return (\n <StyledText\n {...props}\n style={style}\n className={className}\n id={id}\n role={role}\n />\n );\n};\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport type { SpinnerProps } from \"@xsolla/xui-primitives-core\";\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst StyledSpinner = styled.div<SpinnerProps>`\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n border: ${(props) => props.strokeWidth || 2}px solid\n ${(props) => props.color || \"currentColor\"};\n border-bottom-color: transparent;\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: ${rotate} 1s linear infinite;\n`;\n\nexport const Spinner: React.FC<SpinnerProps> = ({\n role = \"status\",\n \"aria-label\": ariaLabel,\n \"aria-live\": ariaLive = \"polite\",\n \"aria-describedby\": ariaDescribedBy,\n testID,\n ...props\n}) => {\n return (\n <StyledSpinner\n role={role}\n aria-label={ariaLabel}\n aria-live={ariaLive}\n aria-describedby={ariaDescribedBy}\n data-testid={testID}\n {...props}\n />\n );\n};\n\nSpinner.displayName = \"Spinner\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledIcon = styled.div<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n svg {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: currentColor;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({ children, ...props }) => {\n return <StyledIcon {...props}>{children}</StyledIcon>;\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { DividerProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledDivider = styled.div<DividerProps>`\n background-color: ${(props) =>\n props.dashStroke\n ? \"transparent\"\n : props.color || \"rgba(255, 255, 255, 0.15)\"};\n width: ${(props) =>\n props.vertical\n ? typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"1px\"\n : \"100%\"};\n height: ${(props) =>\n props.vertical\n ? \"100%\"\n : typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"1px\"};\n\n ${(props) =>\n props.dashStroke &&\n `\n border-style: dashed;\n border-color: ${props.color || \"rgba(255, 255, 255, 0.15)\"};\n border-width: 0;\n ${\n props.vertical\n ? `\n border-left-width: ${typeof props.width === \"number\" ? `${props.width}px` : props.width || \"1px\"};\n height: 100%;\n `\n : `\n border-top-width: ${typeof props.height === \"number\" ? `${props.height}px` : props.height || \"1px\"};\n width: 100%;\n `\n }\n `}\n`;\n\nexport const Divider: React.FC<DividerProps> = (props) => {\n return <StyledDivider {...props} />;\n};\n","import React, { forwardRef } from \"react\";\nimport styled from \"styled-components\";\nimport { InputPrimitiveProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledInput = styled.input<InputPrimitiveProps>`\n background: transparent;\n border: none;\n outline: none;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-family: inherit;\n text-align: inherit;\n\n &::placeholder {\n color: ${(props) =>\n props.placeholderTextColor || \"rgba(255, 255, 255, 0.5)\"};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nexport const InputPrimitive = forwardRef<HTMLInputElement, InputPrimitiveProps>(\n (\n {\n value,\n placeholder,\n onChange,\n onChangeText,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n secureTextEntry,\n style,\n color,\n fontSize,\n placeholderTextColor,\n maxLength,\n name,\n type,\n inputMode,\n autoComplete,\n id,\n \"aria-invalid\": ariaInvalid,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel,\n \"aria-disabled\": ariaDisabled,\n \"data-testid\": dataTestId,\n ...rest\n },\n ref\n ) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n }\n if (onChangeText) {\n onChangeText(e.target.value);\n }\n };\n\n // Always pass value to make it a controlled input\n const inputValue = value !== undefined ? value : \"\";\n\n return (\n <StyledInput\n ref={ref}\n id={id}\n value={inputValue}\n name={name}\n placeholder={placeholder}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n type={secureTextEntry ? \"password\" : type || \"text\"}\n inputMode={inputMode}\n autoComplete={autoComplete}\n style={style}\n color={color}\n fontSize={fontSize}\n placeholderTextColor={placeholderTextColor}\n maxLength={maxLength}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n data-testid={dataTestId}\n {...rest}\n />\n );\n }\n);\n\nInputPrimitive.displayName = \"InputPrimitive\";\n","import React, { forwardRef } from \"react\";\nimport styled from \"styled-components\";\nimport { TextAreaPrimitiveProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledTextArea = styled.textarea<TextAreaPrimitiveProps>`\n background: transparent;\n border: none;\n outline: none;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-family: inherit;\n text-align: inherit;\n resize: none;\n\n &::placeholder {\n color: ${(props) =>\n props.placeholderTextColor || \"rgba(255, 255, 255, 0.5)\"};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nexport const TextAreaPrimitive = forwardRef<\n HTMLTextAreaElement,\n TextAreaPrimitiveProps\n>(\n (\n {\n value,\n placeholder,\n onChangeText,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n style,\n color,\n fontSize,\n placeholderTextColor,\n maxLength,\n rows,\n },\n ref\n ) => {\n return (\n <StyledTextArea\n ref={ref}\n value={value}\n placeholder={placeholder}\n onChange={(e) => onChangeText?.(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n style={style}\n color={color}\n fontSize={fontSize}\n placeholderTextColor={placeholderTextColor}\n maxLength={maxLength}\n rows={rows}\n />\n );\n }\n);\n\nTextAreaPrimitive.displayName = \"TextAreaPrimitive\";\n","import React, { useCallback, useMemo } from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box, Text, Spinner, Divider } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { Check, X, AlertCircle } from \"@xsolla/xui-icons\";\nimport type {\n StepProps,\n StepStateType,\n StepperSize,\n StepperPaletteType,\n} from \"./types\";\nimport { getPaletteColor, hexToRgba } from \"./utils/colors\";\nimport { isWeb } from \"./utils/platform\";\nimport { StepTail } from \"./StepTail\";\nimport { useStepHoverStyles } from \"./hooks/useStepHoverStyles\";\n\ninterface StepStateProps {\n state: StepStateType;\n size: StepperSize;\n step: number;\n variantUI: \"current\" | \"simple\";\n disabled: boolean;\n noClick: boolean;\n palette: StepperPaletteType;\n theme: ReturnType<typeof useDesignSystem>[\"theme\"];\n mode: ReturnType<typeof useDesignSystem>[\"mode\"];\n sizeStyles: ReturnType<\n ReturnType<typeof useDesignSystem>[\"theme\"][\"sizing\"][\"stepper\"]\n >;\n className?: string;\n isLast?: boolean;\n}\n\nconst StepState: React.FC<StepStateProps> = ({\n state,\n size,\n step,\n variantUI,\n disabled,\n noClick,\n palette,\n theme,\n mode,\n sizeStyles,\n className,\n isLast = false,\n}) => {\n const paletteColor = getPaletteColor(palette, theme, \"active\");\n const paletteTextColor = getPaletteColor(palette, theme, \"text\");\n\n const iconStyles = useMemo(() => {\n if (variantUI === \"simple\") {\n switch (state) {\n case \"current\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n };\n case \"incomplete\":\n return {\n backgroundColor: \"transparent\",\n borderColor: theme.colors.control.input.bgDisable,\n color: theme.colors.control.input.textDisable,\n };\n case \"loading\":\n const loadingBg = hexToRgba(paletteColor, 0.05);\n return {\n backgroundColor: loadingBg,\n borderColor: \"transparent\",\n color: paletteColor,\n };\n case \"complete\":\n return {\n backgroundColor: \"transparent\",\n borderColor: paletteColor,\n color: paletteColor,\n };\n case \"alert\":\n return {\n backgroundColor: theme.colors.content.alert.primary,\n borderColor: theme.colors.content.alert.primary,\n color: theme.colors.content.static.light,\n };\n case \"warning\":\n return {\n backgroundColor: theme.colors.content.warning.primary,\n borderColor: theme.colors.content.warning.primary,\n color: theme.colors.content.static.light,\n };\n default:\n return {\n backgroundColor: \"transparent\",\n borderColor: theme.colors.control.input.bgDisable,\n color: theme.colors.control.input.textDisable,\n };\n }\n } else {\n switch (state) {\n case \"current\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n };\n case \"incomplete\":\n if (mode === \"light\") {\n return {\n backgroundColor: theme.colors.content.static.dark,\n borderColor: theme.colors.content.static.dark,\n color: theme.colors.content.static.light,\n };\n } else {\n return {\n backgroundColor: theme.colors.content.static.light,\n borderColor: theme.colors.content.static.light,\n color: theme.colors.content.static.dark,\n };\n }\n case \"loading\":\n const loadingBg = hexToRgba(paletteColor, 0.05);\n return {\n backgroundColor: loadingBg,\n borderColor: \"transparent\",\n color: paletteColor,\n };\n case \"complete\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n };\n case \"alert\":\n return {\n backgroundColor: theme.colors.content.alert.primary,\n borderColor: theme.colors.content.alert.primary,\n color: theme.colors.content.static.light,\n };\n case \"warning\":\n return {\n backgroundColor: theme.colors.content.warning.primary,\n borderColor: theme.colors.content.warning.primary,\n color: theme.colors.content.static.light,\n };\n default:\n return {\n backgroundColor: theme.colors.control.input.bg,\n borderColor: theme.colors.control.input.bg,\n color: theme.colors.control.brand.primary.text.primary,\n };\n }\n }\n }, [state, variantUI, theme, paletteColor]);\n\n const iconHoverStyles = useMemo(() => {\n if (disabled || noClick) return {};\n if (variantUI === \"simple\") {\n if (isLast) {\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n color: theme.colors.content.static.light,\n opacity: 0.9,\n };\n }\n switch (state) {\n case \"current\":\n return {\n backgroundColor: paletteColor,\n borderColor: paletteColor,\n opacity: 0.9,\n };\n case \"incomplete\":\n return {\n borderColor: paletteColor,\n color: paletteColor,\n opacity: 0.9,\n };\n case \"loading\":\n return {\n color: paletteColor,\n opacity: 0.9,\n };\n case \"complete\":\n return {\n borderColor: paletteColor,\n color: paletteColor,\n opacity: 0.9,\n };\n case \"alert\":\n case \"warning\":\n return {};\n default:\n return {};\n }\n } else {\n switch (state) {\n case \"current\":\n return {\n backgroundColor: theme.colors.control.brand.primary.bgHover,\n };\n case \"incomplete\":\n return {\n backgroundColor:\n theme.colors.control.input.bgHover ||\n theme.colors.control.input.bg,\n };\n case \"loading\":\n return {\n color: theme.colors.control.brand.primary.bgHover,\n };\n case \"complete\":\n return {\n backgroundColor: theme.colors.control.brand.primary.bgHover,\n };\n case \"alert\":\n case \"warning\":\n return {};\n default:\n return {};\n }\n }\n }, [state, variantUI, disabled, noClick, theme, paletteColor]);\n\n const iconSize = 18;\n\n return (\n <Box\n className={className}\n width={sizeStyles.iconSize}\n height={sizeStyles.iconSize}\n borderRadius={sizeStyles.iconSize / 2}\n backgroundColor={iconStyles.backgroundColor}\n borderColor={iconStyles.borderColor}\n borderWidth={iconStyles.borderColor !== \"transparent\" ? 1 : 0}\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n >\n {state === \"loading\" ? (\n <Spinner size={size === \"sm\" ? 16 : 20} color={iconStyles.color} />\n ) : state === \"complete\" ? (\n <Check size={iconSize} color={iconStyles.color} />\n ) : state === \"alert\" ? (\n <X size={iconSize} color={iconStyles.color} />\n ) : state === \"warning\" ? (\n <AlertCircle size={iconSize} color={iconStyles.color} />\n ) : (\n <Text\n color={iconStyles.color}\n fontSize={size === \"sm\" ? 12 : 14}\n fontWeight=\"600\"\n >\n {step}\n </Text>\n )}\n </Box>\n );\n};\n\nexport const Step: React.FC<StepProps> = ({\n title,\n state = \"incomplete\",\n description,\n size,\n onClick,\n tail,\n stepNumber,\n disabled = false,\n direction,\n variantUI,\n noClick = false,\n palette = \"brand\",\n isLast = false,\n isFirstColoredTail = false,\n isLastColoredTail = false,\n}) => {\n const { theme, mode } = useDesignSystem();\n // @ts-ignore\n const sizeStyles = theme.sizing.stepper(size);\n\n const stepClassName = useMemo(\n () =>\n `step-${stepNumber}-${variantUI}-${direction}-${size}-${state}-${palette}`,\n [stepNumber, variantUI, direction, size, state, palette]\n );\n\n useStepHoverStyles(\n variantUI,\n state,\n stepClassName,\n theme,\n isLast,\n disabled,\n noClick,\n palette\n );\n\n const stepClick = useCallback(() => {\n if (onClick && !disabled && !noClick) {\n onClick({\n number: stepNumber,\n step: {\n title,\n description,\n state,\n disabled,\n },\n });\n }\n }, [onClick, disabled, noClick, stepNumber, title, description, state]);\n\n // Generate aria-label for the step\n const stepAriaLabel = useMemo(() => {\n const stepNum = stepNumber + 1;\n const titleText = typeof title === \"string\" ? title : \"Step\";\n const descriptionText =\n description && typeof description === \"string\" ? description : \"\";\n const stateText =\n {\n current: \"current\",\n incomplete: \"incomplete\",\n loading: \"loading\",\n complete: \"complete\",\n alert: \"alert\",\n warning: \"warning\",\n }[state] || \"incomplete\";\n\n let label = `Step ${stepNum}: ${titleText}`;\n if (descriptionText) {\n label += `, ${descriptionText}`;\n }\n label += `, ${stateText}`;\n if (isLast) {\n label += \", last step\";\n }\n return label;\n }, [stepNumber, title, description, state, isLast]);\n\n // Keyboard handler for accessibility\n // Enter triggers on keydown, Space triggers on keyup (button semantics)\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" && !disabled && !noClick) {\n event.preventDefault();\n stepClick();\n }\n // Prevent default scroll on Space keydown\n if (event.key === \" \" && !disabled && !noClick) {\n event.preventDefault();\n }\n },\n [stepClick, disabled, noClick]\n );\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \" && !disabled && !noClick) {\n event.preventDefault();\n stepClick();\n }\n },\n [stepClick, disabled, noClick]\n );\n\n // Determine if step is interactive\n const isInteractive = !disabled && !noClick && !!onClick;\n const isCurrent = state === \"current\";\n\n const titleStyles = useMemo(() => {\n if (variantUI === \"simple\") {\n const sizeStylesMap = {\n sm: {\n fontSize: 14,\n lineHeight: 22,\n paddingTop: 1,\n paddingBottom: 1,\n },\n md: {\n fontSize: 16,\n lineHeight: 24,\n paddingTop: 4,\n paddingBottom: 4,\n },\n };\n return {\n ...sizeStylesMap[size],\n color:\n state === \"incomplete\"\n ? theme.colors.control.input.textDisable\n : theme.colors.content.primary,\n fontWeight: \"500\",\n };\n } else {\n const sizeDirectionStyles = {\n sm_horizontal: {\n fontSize: 16,\n lineHeight: 20,\n fontWeight: \"500\",\n },\n md_horizontal: {\n fontSize: 18,\n lineHeight: 24,\n fontWeight: \"500\",\n },\n sm_vertical: {\n fontSize: 18,\n lineHeight: 20,\n fontWeight: \"500\",\n },\n md_vertical: {\n fontSize: 18,\n lineHeight: 24,\n fontWeight: \"500\",\n },\n };\n const stateColors: Record<string, string> = {\n incomplete: theme.colors.content.secondary,\n current: getPaletteColor(palette, theme, \"text\"),\n loading: getPaletteColor(palette, theme, \"text\"),\n alert: theme.colors.content.primary,\n warning: theme.colors.content.primary,\n complete: theme.colors.content.primary,\n };\n return {\n ...sizeDirectionStyles[\n `${size}_${direction}` as keyof typeof sizeDirectionStyles\n ],\n color: stateColors[state] || theme.colors.content.primary,\n };\n }\n }, [variantUI, direction, size, state, theme, palette]);\n\n const descriptionStyles = useMemo(() => {\n const sizeStylesMap = {\n sm: {\n fontSize: 12,\n lineHeight: variantUI === \"simple\" ? 20 : 18,\n marginTop: variantUI === \"simple\" ? 0 : 2,\n },\n md: {\n fontSize: 14,\n lineHeight: variantUI === \"simple\" ? 22 : 20,\n marginTop: variantUI === \"simple\" ? 0 : 4,\n },\n };\n let descriptionColor = theme.colors.content.secondary;\n if (variantUI === \"current\" && (state === \"incomplete\" || !state)) {\n descriptionColor =\n theme.colors.content.tertiary || \"rgba(24, 23, 28, 0.5)\";\n }\n return {\n ...sizeStylesMap[size],\n color: descriptionColor,\n fontWeight: \"400\",\n };\n }, [size, variantUI, state, theme]);\n\n const contentWrapperStyles = useMemo(() => {\n if (variantUI === \"simple\") {\n if (direction === \"horizontal\") {\n return {\n marginLeft: size === \"sm\" ? 8 : 12,\n flex: 1,\n };\n }\n return {\n marginLeft: size === \"sm\" ? 8 : 12,\n };\n } else {\n const baseStyles = {\n marginTop: size === \"sm\" ? 10 : 12,\n };\n if (direction === \"horizontal\") {\n return {\n ...baseStyles,\n paddingLeft: size === \"sm\" ? 20 : 24,\n paddingRight: size === \"sm\" ? 20 : 24,\n gap: 12,\n };\n } else {\n return {};\n }\n return baseStyles;\n }\n }, [variantUI, direction, size]);\n\n const stepWrapperStyles = useMemo(() => {\n if (variantUI === \"current\") {\n if (direction === \"horizontal\") {\n return {\n flex: 1,\n minWidth: 0,\n flexShrink: 0,\n paddingBottom: size === \"sm\" ? 27 : 37,\n };\n } else {\n return {\n paddingTop: size === \"sm\" ? 20 : 24,\n paddingBottom: size === \"sm\" ? 20 : 24,\n paddingLeft: size === \"sm\" ? 24 : 32,\n paddingRight: size === \"sm\" ? 10 : 10,\n minWidth: 184,\n };\n }\n } else {\n if (direction === \"horizontal\") {\n return {\n flexShrink: 0,\n marginRight: isLast ? 0 : size === \"sm\" ? 8 : 12,\n };\n } else {\n return {\n marginBottom: isLast ? 0 : 8,\n minHeight: 56,\n };\n }\n }\n }, [variantUI, direction, size, isLast]);\n\n if (variantUI === \"current\" && direction === \"horizontal\") {\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n position=\"relative\"\n {...stepWrapperStyles}\n {...(isWeb() && {\n cursor: disabled || noClick ? \"default\" : \"pointer\",\n })}\n >\n <StepTail\n variantUI={variantUI}\n direction={direction}\n size={size}\n state={state}\n isLast={isLast}\n isFirstColoredTail={isFirstColoredTail}\n isLastColoredTail={isLastColoredTail}\n palette={palette}\n />\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={12}\n paddingLeft={size === \"sm\" ? 20 : 24}\n paddingRight={size === \"sm\" ? 20 : 24}\n width=\"100%\"\n >\n <Box flexDirection=\"column\" alignItems=\"flex-start\">\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n className={`step-icon-${stepClassName}`}\n isLast={isLast}\n />\n </Box>\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={4}\n width=\"100%\"\n >\n {typeof title === \"string\" ? (\n <Text\n className={`step-title-${stepClassName}`}\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description && (\n <Box width=\"100%\" alignItems=\"flex-start\">\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n className={`step-description-${stepClassName}`}\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n }\n\n if (variantUI === \"simple\" && direction === \"horizontal\") {\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n {...stepWrapperStyles}\n {...(isWeb() && {\n cursor: disabled || noClick ? \"default\" : \"pointer\",\n })}\n >\n <Box flexDirection=\"column\">\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n isLast={isLast}\n />\n </Box>\n <Box {...contentWrapperStyles}>\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n width=\"100%\"\n paddingTop={\n variantUI === \"simple\" ? (size === \"sm\" ? 1 : 4) : undefined\n }\n paddingBottom={\n variantUI === \"simple\" ? (size === \"sm\" ? 1 : 4) : undefined\n }\n >\n {typeof title === \"string\" ? (\n <Text\n className={`step-title-${stepClassName}`}\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {tail && (\n <Box\n flex={1}\n marginLeft={size === \"sm\" ? 8 : 12}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Divider color={theme.colors.border.secondary} />\n </Box>\n )}\n </Box>\n {description && (\n <Box>\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n className={`step-description-${stepClassName}`}\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n );\n }\n\n if (variantUI === \"current\" && direction === \"vertical\") {\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n position=\"relative\"\n {...stepWrapperStyles}\n {...(isWeb() && {\n cursor: disabled || noClick ? \"default\" : \"pointer\",\n })}\n >\n <StepTail\n variantUI={variantUI}\n direction={direction}\n size={size}\n state={state}\n isLast={isLast}\n isFirstColoredTail={isFirstColoredTail}\n isLastColoredTail={isLastColoredTail}\n palette={palette}\n />\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={12}\n paddingTop={size === \"sm\" ? 20 : 24}\n paddingBottom={size === \"sm\" ? 20 : 24}\n flex={1}\n >\n <Box flexDirection=\"column\" alignItems=\"flex-start\">\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n className={`step-icon-${stepClassName}`}\n isLast={isLast}\n />\n </Box>\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n gap={4}\n width=\"100%\"\n >\n {typeof title === \"string\" ? (\n <Text\n className={`step-title-${stepClassName}`}\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description && (\n <Box>\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n className={`step-description-${stepClassName}`}\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n }\n\n return (\n <Box\n role={isWeb() ? \"button\" : undefined}\n aria-label={isWeb() ? stepAriaLabel : undefined}\n aria-current={isWeb() && isCurrent ? \"step\" : undefined}\n aria-disabled={isWeb() && (disabled || noClick) ? true : undefined}\n tabIndex={isWeb() && isInteractive ? 0 : undefined}\n onPress={stepClick}\n onKeyDown={isWeb() && isInteractive ? handleKeyDown : undefined}\n onKeyUp={isWeb() && isInteractive ? handleKeyUp : undefined}\n disabled={disabled}\n data-testid=\"step\"\n className={stepClassName}\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n {...stepWrapperStyles}\n {...(isWeb() && { cursor: disabled || noClick ? \"default\" : \"pointer\" })}\n >\n <Box flexDirection=\"column\" alignItems=\"center\" flexShrink={0}>\n <StepState\n state={state}\n size={size}\n step={stepNumber + 1}\n variantUI={variantUI}\n disabled={disabled}\n noClick={noClick}\n palette={palette}\n theme={theme}\n mode={mode}\n sizeStyles={sizeStyles}\n />\n {tail && !isLast && (\n <Box\n width={1}\n flex={1}\n minHeight={24}\n marginTop={8}\n alignItems=\"stretch\"\n justifyContent=\"flex-start\"\n position=\"relative\"\n backgroundColor={theme.colors.border.secondary}\n />\n )}\n </Box>\n <Box {...contentWrapperStyles} flex={1}>\n {typeof title === \"string\" ? (\n <Text\n color={titleStyles.color}\n fontSize={titleStyles.fontSize}\n fontWeight={titleStyles.fontWeight}\n lineHeight={titleStyles.lineHeight}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description && (\n <Box marginTop={descriptionStyles.marginTop}>\n {typeof description === \"string\" ||\n typeof description === \"number\" ? (\n <Text\n color={descriptionStyles.color}\n fontSize={descriptionStyles.fontSize}\n fontWeight={descriptionStyles.fontWeight}\n lineHeight={descriptionStyles.lineHeight}\n >\n {description}\n </Text>\n ) : (\n description\n )}\n </Box>\n )}\n </Box>\n </Box>\n );\n};\n","import type { StepperPaletteType } from \"../types\";\nimport type { useDesignSystem } from \"@xsolla/xui-core\";\n\nexport const getPaletteColor = (\n palette: StepperPaletteType,\n theme: ReturnType<typeof useDesignSystem>[\"theme\"],\n type: \"active\" | \"text\" = \"text\"\n): string => {\n const fallback = type === \"active\" ? \"#00d4ff\" : \"#00d4ff\";\n\n if (palette === \"brand\") {\n const brandText = theme.colors?.content?.brand?.secondary;\n const brandActive =\n theme.colors?.control?.brand?.primary?.bgHover || brandText;\n\n if (type === \"active\") {\n return brandActive || fallback;\n }\n return brandText || fallback;\n }\n\n if (palette === \"brandSecondary\") {\n const extraText = theme.colors?.content?.brandExtra?.primary;\n const extraActive =\n theme.colors?.control?.brandExtra?.primary?.bgHover || extraText;\n\n if (type === \"active\") {\n return extraActive || \"#d9ff66\";\n }\n return extraText || \"#d9ff66\";\n }\n\n const brandText = theme.colors?.content?.brand?.secondary;\n const brandActive =\n theme.colors?.control?.brand?.primary?.bgHover || brandText;\n return (type === \"active\" ? brandActive : brandText) || fallback;\n};\n\nexport const hexToRgba = (hex: string, opacity: number): string => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (result) {\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n return hex;\n};\n","/**\n * Platform detection utility\n * Detects if we're running on web or React Native\n */\nexport const isWeb = (): boolean => {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\";\n};\n\nexport const isNative = (): boolean => {\n return !isWeb();\n};\n","import React from \"react\";\nimport { Box } from \"@xsolla/xui-primitives\";\nimport type { StepperSize, StepperPaletteType, StepStateType } from \"./types\";\nimport { getPaletteColor, hexToRgba } from \"./utils/colors\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { isWeb } from \"./utils/platform\";\n\ninterface StepTailProps {\n variantUI: \"current\" | \"simple\";\n direction: \"horizontal\" | \"vertical\";\n size: StepperSize;\n state: StepStateType;\n isLast: boolean;\n isFirstColoredTail: boolean;\n isLastColoredTail: boolean;\n palette: StepperPaletteType;\n}\n\nexport const StepTail: React.FC<StepTailProps> = ({\n variantUI,\n direction,\n size,\n state,\n isLast,\n isFirstColoredTail,\n isLastColoredTail,\n palette,\n}) => {\n const { theme } = useDesignSystem();\n\n if (variantUI !== \"current\" || isLast) {\n return null;\n }\n\n const tailSize = size === \"sm\" ? 3 : 5;\n const verticalTailWidth = size === \"sm\" ? 2 : 4;\n const isHorizontal = direction === \"horizontal\";\n\n let tailBgColor = \"transparent\";\n let tailHeight = tailSize;\n let tailWidth = tailSize;\n let borderRadius: number = 0;\n let borderRadiusStyle: React.CSSProperties | undefined;\n\n try {\n if (isFirstColoredTail && isLastColoredTail) {\n borderRadius = 4;\n } else if (isFirstColoredTail) {\n if (isWeb()) {\n borderRadiusStyle = isHorizontal\n ? { borderRadius: \"4px 0 0 4px\" }\n : { borderRadius: \"4px 4px 0 0\" };\n } else {\n if (isHorizontal) {\n borderRadiusStyle = {\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n };\n } else {\n borderRadiusStyle = {\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4,\n };\n }\n }\n } else if (isLastColoredTail) {\n if (isWeb()) {\n borderRadiusStyle = isHorizontal\n ? { borderRadius: \"0 4px 4px 0\" }\n : { borderRadius: \"0 0 4px 4px\" };\n } else {\n if (isHorizontal) {\n borderRadiusStyle = {\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n };\n } else {\n borderRadiusStyle = {\n borderBottomLeftRadius: 4,\n borderBottomRightRadius: 4,\n };\n }\n }\n }\n\n if (state === \"current\" || state === \"loading\") {\n tailBgColor = getPaletteColor(palette, theme, \"active\");\n tailHeight = tailSize;\n tailWidth = isHorizontal ? tailSize : verticalTailWidth;\n } else if (state === \"alert\") {\n tailBgColor = theme.colors.content.alert.primary;\n tailHeight = tailSize;\n tailWidth = isHorizontal ? tailSize : verticalTailWidth;\n } else if (state === \"warning\") {\n tailBgColor = theme.colors.content.warning.primary;\n tailHeight = tailSize;\n tailWidth = isHorizontal ? tailSize : verticalTailWidth;\n } else if (state === \"complete\") {\n return null;\n } else {\n const paletteColor = getPaletteColor(palette, theme, \"active\");\n tailBgColor = hexToRgba(paletteColor, 0.15);\n tailHeight = 2;\n tailWidth = isHorizontal ? 2 : 2;\n borderRadius = 0;\n }\n } catch {\n return null;\n }\n\n const borderOffset = isHorizontal ? -(tailHeight / 2 + 0.5) : -3;\n\n if (isHorizontal) {\n return (\n <Box\n position=\"absolute\"\n bottom={borderOffset}\n left={0}\n width=\"100%\"\n height={tailHeight}\n backgroundColor={tailBgColor}\n borderRadius={borderRadius}\n zIndex={1}\n style={borderRadiusStyle}\n />\n );\n }\n\n return (\n <Box\n position=\"absolute\"\n top={0}\n left={borderOffset}\n height=\"100%\"\n width={tailWidth}\n backgroundColor={tailBgColor}\n borderRadius={borderRadius}\n zIndex={1}\n style={borderRadiusStyle}\n />\n );\n};\n","import { useEffect } from \"react\";\nimport { isWeb } from \"../utils/platform\";\nimport { getPaletteColor } from \"../utils/colors\";\nimport type { StepStateType, StepperPaletteType } from \"../types\";\nimport type { useDesignSystem } from \"@xsolla/xui-core\";\n\n/**\n * Hook to inject hover styles for web only\n * Returns early on React Native\n */\nexport const useStepHoverStyles = (\n variantUI: \"current\" | \"simple\",\n state: StepStateType,\n className: string,\n theme: ReturnType<typeof useDesignSystem>[\"theme\"],\n isLast: boolean,\n disabled: boolean,\n noClick: boolean,\n palette: StepperPaletteType\n) => {\n useEffect(() => {\n if (!isWeb()) {\n return;\n }\n\n const styleId = `step-hover-styles-${className}`;\n let styleElement = document.getElementById(\n styleId\n ) as HTMLStyleElement | null;\n\n if (!styleElement) {\n styleElement = document.createElement(\"style\");\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const getHoverTextColor = () => {\n if (state === \"alert\") {\n return theme.colors.content.alert.primary;\n } else if (state === \"warning\") {\n return theme.colors.content.warning.primary;\n } else {\n return getPaletteColor(palette, theme, \"text\");\n }\n };\n\n let hoverCss = \"\";\n if (!disabled && !noClick) {\n const hoverTextColor = getHoverTextColor();\n const hoverPaletteColor = getPaletteColor(palette, theme, \"active\");\n\n let circleHoverCss = \"\";\n if (isLast) {\n const whiteColor = theme.colors.content.static.light;\n circleHoverCss = `\n .step-icon-${className} {\n background-color: ${hoverPaletteColor} !important;\n border-color: ${hoverPaletteColor} !important;\n color: ${whiteColor} !important;\n }\n `;\n } else {\n if (variantUI === \"simple\") {\n if (state === \"incomplete\") {\n const whiteColor = theme.colors.content.static.light;\n circleHoverCss = `\n .step-icon-${className} {\n background-color: ${hoverPaletteColor} !important;\n border-color: ${hoverPaletteColor} !important;\n color: ${whiteColor} !important;\n }\n `;\n } else if (state === \"complete\") {\n circleHoverCss = `\n .step-icon-${className} {\n border-color: ${hoverPaletteColor} !important;\n color: ${hoverPaletteColor} !important;\n }\n `;\n } else if (state === \"loading\") {\n circleHoverCss = `\n .step-icon-${className} {\n color: ${hoverPaletteColor} !important;\n }\n `;\n }\n } else {\n if (state === \"incomplete\") {\n const whiteColor = theme.colors.content.static.light;\n circleHoverCss = `\n .step-icon-${className} {\n background-color: ${hoverPaletteColor} !important;\n border-color: ${hoverPaletteColor} !important;\n color: ${whiteColor} !important;\n }\n `;\n } else if (state === \"complete\") {\n circleHoverCss = `\n .step-icon-${className} {\n border-color: ${hoverPaletteColor} !important;\n color: ${hoverPaletteColor} !important;\n }\n `;\n } else if (state === \"loading\") {\n circleHoverCss = `\n .step-icon-${className} {\n color: ${hoverPaletteColor} !important;\n }\n `;\n }\n }\n }\n\n hoverCss = `\n &:hover {\n .step-title-${className} {\n color: ${hoverTextColor} !important;\n }\n .step-description-${className} {\n color: ${hoverTextColor} !important;\n }\n ${circleHoverCss}\n }\n `;\n }\n\n const css = `\n .${className} {\n ${hoverCss}\n }\n `;\n\n styleElement.textContent = css;\n\n return () => {\n if (styleElement && styleElement.parentNode) {\n styleElement.parentNode.removeChild(styleElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variantUI, state, className, isLast, disabled, noClick, palette, theme]);\n};\n","import React from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { ArrowLeft, ArrowRight } from \"@xsolla/xui-icons\";\nimport { ProgressStepItem } from \"./ProgressStepItem\";\nimport type { ProgressStepProps } from \"./types\";\n\nexport const ProgressStep: React.FC<ProgressStepProps> = ({\n count,\n activeStep,\n size = \"md\",\n arrows = true,\n onStepPress,\n className,\n}) => {\n const { theme } = useDesignSystem();\n\n const handlePrev = () => {\n if (activeStep > 0 && onStepPress) {\n onStepPress(activeStep - 1);\n }\n };\n\n const handleNext = () => {\n if (activeStep < count - 1 && onStepPress) {\n onStepPress(activeStep + 1);\n }\n };\n\n const arrowSize = size === \"md\" ? 24 : 18;\n const iconSize = size === \"md\" ? 18 : 14;\n const isFirst = activeStep <= 0;\n const isLast = activeStep >= count - 1;\n\n return (\n <Box\n className={className}\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={4}\n height={size === \"md\" ? 24 : 18}\n >\n {arrows && (\n <Box\n onPress={handlePrev}\n width={arrowSize}\n height={arrowSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius={4}\n opacity={isFirst ? 0.2 : 1}\n cursor={isFirst ? \"default\" : \"pointer\"}\n >\n <ArrowLeft size={iconSize} color={theme.colors.content.primary} />\n </Box>\n )}\n\n <Box flexDirection=\"row\" alignItems=\"center\" gap={4}>\n {Array.from({ length: count }).map((_, i) => (\n <ProgressStepItem\n key={i}\n size={size}\n state={i === activeStep ? \"active\" : \"default\"}\n onPress={onStepPress ? () => onStepPress(i) : undefined}\n />\n ))}\n </Box>\n\n {arrows && (\n <Box\n onPress={handleNext}\n width={arrowSize}\n height={arrowSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius={4}\n opacity={isLast ? 0.2 : 1}\n cursor={isLast ? \"default\" : \"pointer\"}\n >\n <ArrowRight size={iconSize} color={theme.colors.content.primary} />\n </Box>\n )}\n </Box>\n );\n};\n","import React from \"react\";\n// @ts-ignore - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport type { ProgressStepItemProps } from \"./types\";\n\nexport const ProgressStepItem: React.FC<ProgressStepItemProps> = ({\n state = \"default\",\n size = \"md\",\n className,\n onPress,\n onMouseEnter,\n onMouseLeave,\n}) => {\n const { theme } = useDesignSystem();\n const isActive = state === \"active\";\n const isHover = state === \"hover\";\n const isMD = size === \"md\";\n\n const width = isActive ? (isMD ? 24 : 18) : isMD ? 8 : 6;\n const height = isMD ? 8 : 6;\n const borderRadius = isMD ? 2 : 1;\n\n let backgroundColor = theme.colors.content.primary;\n let opacity = 1;\n\n if (!isActive) {\n backgroundColor = theme.colors.content.tertiary || \"rgba(0, 0, 0, 0.6)\";\n opacity = isHover ? 0.5 : 0.2;\n }\n\n return (\n <Box\n className={className}\n width={width}\n height={height}\n borderRadius={borderRadius}\n backgroundColor={backgroundColor}\n opacity={opacity}\n onPress={onPress}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n cursor={onPress ? \"pointer\" : \"default\"}\n />\n );\n};\n"],"mappings":"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","names":["import_react","styled","React","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_react","import_styled_components","import_jsx_runtime","styled","import_react","import_styled_components","import_jsx_runtime","styled","import_xui_core","import_react","import_xui_core","brandText","brandActive","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_xui_core","import_xui_icons","import_xui_core","import_jsx_runtime","import_jsx_runtime"]}