@xsolla/xui-b2b-stepper 0.147.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/native/index.d.mts +46 -0
- package/native/index.d.ts +46 -0
- package/native/index.js +942 -0
- package/native/index.js.map +1 -0
- package/native/index.mjs +922 -0
- package/native/index.mjs.map +1 -0
- package/package.json +58 -0
- package/web/index.d.mts +46 -0
- package/web/index.d.ts +46 -0
- package/web/index.js +1009 -0
- package/web/index.js.map +1 -0
- package/web/index.mjs +972 -0
- package/web/index.mjs.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Stepper.tsx","../../../../foundation/primitives-web/src/Box.tsx","../../../../foundation/primitives-web/src/filterDOMProps.ts","../../../../../node_modules/@emotion/memoize/dist/memoize.esm.js","../../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js","../../../../foundation/primitives-web/src/Text.tsx","../../../../foundation/primitives-web/src/Spinner.tsx","../../src/Step.tsx","../../src/StepChip.tsx","../../src/StepConnector.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useResolvedTheme } from \"@xsolla/xui-core\";\nimport { Step } from \"./Step\";\nimport type { StepperProps } from \"./types\";\n\nexport const Stepper = forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n steps,\n direction = \"vertical\",\n surface = false,\n simple = false,\n onClick,\n className,\n \"aria-label\": ariaLabel,\n themeMode,\n themeProductContext,\n ...rest\n },\n ref\n ) => {\n const { theme } = useResolvedTheme({ themeMode, themeProductContext });\n const sizing = theme.sizing.stepperB2b();\n const isHorizontal = direction === \"horizontal\";\n const isSurface = surface;\n\n const defaultAriaLabel = `Stepper with ${steps.length} step${\n steps.length === 1 ? \"\" : \"s\"\n }`;\n\n // Matches Figma: surface = background-secondary + overlay-mono on top,\n // via a flat linear-gradient so the overlay tints the base color\n // without needing a wrapper element.\n const surfaceBackground = isSurface\n ? `linear-gradient(0deg, ${theme.colors.overlay.mono} 0%, ${theme.colors.overlay.mono} 100%), ${theme.colors.background.secondary}`\n : undefined;\n\n // Vertical (non-simple) overlaps each step by 16px so the connector\n // line below the chip reaches close to the next step's chip — matches\n // Figma's negative-margin + z-index pattern (node 10999:18361).\n const useOverlap = !isHorizontal && !simple;\n\n return (\n <Box\n ref={ref}\n role=\"navigation\"\n aria-label={ariaLabel ?? defaultAriaLabel}\n className={className}\n flexDirection={isHorizontal ? \"row\" : \"column\"}\n alignItems={isHorizontal ? \"flex-start\" : \"stretch\"}\n borderRadius={isSurface ? sizing.surfaceRadius : undefined}\n style={{\n background: surfaceBackground,\n padding: isSurface\n ? isHorizontal\n ? sizing.surfacePaddingHorizontal\n : sizing.surfacePaddingVertical\n : 0,\n gap: isHorizontal ? sizing.horizontalItemGap : 0,\n width: isHorizontal ? \"100%\" : undefined,\n isolation: useOverlap ? \"isolate\" : undefined,\n }}\n {...rest}\n >\n {steps.map((step, i) => (\n <Step\n key={step.key ?? `stepper-${i}`}\n step={step}\n stepNumber={i + 1}\n isFirst={i === 0}\n isLast={i === steps.length - 1}\n direction={direction}\n simple={simple}\n onClick={onClick}\n sizing={sizing}\n theme={theme}\n zIndex={useOverlap ? steps.length - i : undefined}\n overlapBottom={useOverlap && i < steps.length - 1 ? 16 : 0}\n />\n ))}\n </Box>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { BoxProps } from \"@xsolla/xui-primitives-core\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst FilteredDiv = createFilteredElement(\"div\");\n\nconst StyledBox = styled(FilteredDiv)<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 max-width: ${(props) =>\n typeof props.maxWidth === \"number\"\n ? `${props.maxWidth}px`\n : props.maxWidth || \"none\"};\n max-height: ${(props) =>\n typeof props.maxHeight === \"number\"\n ? `${props.maxHeight}px`\n : props.maxHeight || \"none\"};\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 testID,\n \"data-testid\": dataTestId,\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 elementType={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 data-testid={dataTestId || testID}\n {...props}\n >\n {children}\n </StyledBox>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import React from \"react\";\nimport isPropValid from \"@emotion/is-prop-valid\";\n\n// Props that @emotion/is-prop-valid incorrectly treats as valid HTML.\n// These are React Native or component-specific props that match\n// valid HTML patterns (on* event handlers, SVG attributes).\nexport const ADDITIONAL_BLOCKED_PROPS = new Set([\n // RN-only event handlers (pass isPropValid's on* pattern)\n \"onPress\",\n \"onChangeText\",\n \"onLayout\",\n \"onMoveShouldSetResponder\",\n \"onResponderGrant\",\n \"onResponderMove\",\n \"onResponderRelease\",\n \"onResponderTerminate\",\n // SVG attributes that pass isPropValid\n \"strokeWidth\",\n // CSS properties that pass isPropValid but are used as component props\n \"overflow\",\n \"cursor\",\n \"fontSize\",\n \"fontWeight\",\n \"fontFamily\",\n \"textDecoration\",\n]);\n\nfunction shouldForwardProp(key: string): boolean {\n if (ADDITIONAL_BLOCKED_PROPS.has(key)) return false;\n return isPropValid(key);\n}\n\n/**\n * Creates a React component that renders the given HTML tag\n * but filters out non-HTML props before they reach the DOM.\n *\n * Uses @emotion/is-prop-valid (same library styled-components v4\n * uses internally) to automatically block invalid HTML attributes,\n * plus a small blocklist for false positives (RN on* handlers, SVG attrs).\n *\n * Usage: `const FilteredDiv = createFilteredElement(\"div\");`\n * Then: `const StyledBox = styled(FilteredDiv)<BoxProps>\\`...\\`;`\n *\n * styled-components can still read ALL props for CSS interpolation,\n * but only valid HTML attributes are forwarded to the DOM element.\n */\nexport function createFilteredElement(defaultTag: string) {\n const Component = React.forwardRef<HTMLElement, Record<string, unknown>>(\n ({ children, elementType, ...props }, ref) => {\n const Tag = (elementType as string) || defaultTag;\n const htmlProps: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n if (shouldForwardProp(key)) {\n htmlProps[key] = props[key];\n }\n }\n return React.createElement(\n Tag,\n { ref, ...htmlProps },\n children as React.ReactNode\n );\n }\n );\n Component.displayName = `Filtered(${defaultTag})`;\n return Component;\n}\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { TextProps } from \"@xsolla/xui-primitives-core\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst FilteredSpan = createFilteredElement(\"span\");\n\nconst StyledText = styled(FilteredSpan)<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 '\"Aktiv Grotesk\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif'};\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 numberOfLines: _numberOfLines,\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\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst FilteredDiv = createFilteredElement(\"div\");\n\nconst StyledSpinner = styled(FilteredDiv)<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, { useCallback, useMemo } from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box, Text } from \"@xsolla/xui-primitives\";\nimport { StepChip, type StepperTheme } from \"./StepChip\";\nimport { StepConnector } from \"./StepConnector\";\nimport type {\n StepClickType,\n StepperDirection,\n StepStateType,\n StepType,\n} from \"./types\";\n\ntype StepSizing = {\n chipSize: number;\n chipRadius: number;\n chipPaddingTop: number;\n chipPaddingBottom: number;\n chipPaddingX: number;\n chipIconSize: number;\n numberFontSize: number;\n numberLineHeight: number;\n titleFontSize: number;\n titleLineHeight: number;\n descriptionFontSize: number;\n descriptionLineHeight: number;\n captionFontSize: number;\n captionLineHeight: number;\n itemGap: number;\n contentGap: number;\n contentMinHeight: number;\n contentWidth: number;\n activeCardRadiusVertical: number;\n activeCardRadiusHorizontal: number;\n activeCardPaddingTop: number;\n activeCardPaddingX: number;\n activeCardPaddingYHorizontal: number;\n activeCardPaddingLeftHorizontal: number;\n activeCardGapHorizontal: number;\n innerConnectorLength: number;\n connectorCellHeight: number;\n connectorCellWidth: number;\n horizontalFirstItemWidth: number;\n horizontalItemWidth: number;\n horizontalConnectorSegment: number;\n horizontalConnectorGap: number;\n simpleCardPadding: number;\n simpleCardRadius: number;\n simpleCardGap: number;\n simpleItemGap: number;\n simpleHorizontalCellWidth: number;\n simpleHorizontalStubLength: number;\n};\n\nexport interface StepComponentProps {\n step: StepType;\n stepNumber: number;\n isLast: boolean;\n isFirst: boolean;\n direction: StepperDirection;\n simple?: boolean;\n onClick?: StepClickType;\n sizing: StepSizing;\n /** When set, the step overlaps the next sibling by this many pixels (negative margin-bottom). */\n overlapBottom?: number;\n /** Z-index for stacking when steps overlap (earlier step → higher z). */\n zIndex?: number;\n theme: StepperTheme & {\n colors: {\n background: { primary: string };\n content: {\n primary: string;\n tertiary: string;\n brand: { primary: string };\n };\n border: { secondary: string };\n };\n };\n}\n\nconst ACTIVE_CARD_STATES: ReadonlyArray<StepStateType> = [\n \"current\",\n \"loading\",\n \"warning\",\n \"alert\",\n];\n\nexport const Step: React.FC<StepComponentProps> = ({\n step,\n stepNumber,\n isLast,\n isFirst,\n direction,\n simple = false,\n overlapBottom = 0,\n zIndex,\n onClick,\n sizing,\n theme,\n}) => {\n const {\n title,\n description,\n caption,\n state = \"incomplete\",\n disabled = false,\n noClick = false,\n } = step;\n\n const isHorizontal = direction === \"horizontal\";\n const isActive = ACTIVE_CARD_STATES.includes(state);\n const isCurrent = state === \"current\";\n const isInteractive = !!onClick && !disabled && !noClick;\n\n const handleClick = useCallback(() => {\n if (isInteractive) {\n onClick!({ number: stepNumber, step });\n }\n }, [isInteractive, onClick, stepNumber, step]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (!isInteractive) return;\n if (event.key === \"Enter\") {\n event.preventDefault();\n handleClick();\n } else if (event.key === \" \") {\n event.preventDefault();\n }\n },\n [isInteractive, handleClick]\n );\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (!isInteractive) return;\n if (event.key === \" \") {\n event.preventDefault();\n handleClick();\n }\n },\n [isInteractive, handleClick]\n );\n\n const ariaLabel = useMemo(() => {\n const titleText = typeof title === \"string\" ? title : `Step ${stepNumber}`;\n const descText = typeof description === \"string\" ? `, ${description}` : \"\";\n return `Step ${stepNumber}: ${titleText}${descText}, ${state}`;\n }, [stepNumber, title, description, state]);\n\n const interactiveProps = isInteractive\n ? {\n role: \"button\",\n tabIndex: 0,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n style: { cursor: \"pointer\" as const },\n }\n : {\n \"aria-disabled\": disabled || noClick ? true : undefined,\n };\n\n // In horizontal mode the text block flexes inside the fixed-width card\n // (Figma: 112px active / 128px default, derived from card width 220/236).\n // In vertical mode the block is a fixed 128px.\n const textBlockSizing: React.CSSProperties = isHorizontal\n ? { flex: 1, minWidth: 0 }\n : { width: sizing.contentWidth, flexShrink: 0 };\n\n const textBlock = (\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n justifyContent=\"center\"\n style={{\n gap: sizing.contentGap,\n minHeight: sizing.contentMinHeight,\n ...textBlockSizing,\n }}\n >\n {caption !== null &&\n (typeof caption === \"string\" || typeof caption === \"number\" ? (\n <Text\n color={theme.colors.content.tertiary}\n fontSize={sizing.captionFontSize}\n lineHeight={sizing.captionLineHeight}\n fontWeight=\"400\"\n >\n {caption}\n </Text>\n ) : (\n caption\n ))}\n {typeof title === \"string\" || typeof title === \"number\" ? (\n <Text\n color={theme.colors.content.primary}\n fontSize={sizing.titleFontSize}\n lineHeight={sizing.titleLineHeight}\n fontWeight=\"500\"\n >\n {title}\n </Text>\n ) : (\n title\n )}\n {description !== null &&\n (typeof description === \"string\" || typeof description === \"number\" ? (\n <Text\n color={theme.colors.content.tertiary}\n fontSize={sizing.descriptionFontSize}\n lineHeight={sizing.descriptionLineHeight}\n fontWeight=\"400\"\n >\n {description}\n </Text>\n ) : (\n description\n ))}\n </Box>\n );\n\n // Simple mode: chip-only (no title / description / caption)\n if (simple) {\n if (isHorizontal) {\n return (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n flex={isLast ? undefined : 1}\n data-testid=\"step\"\n data-step-state={state}\n aria-current={isCurrent ? \"step\" : undefined}\n aria-label={ariaLabel}\n {...interactiveProps}\n >\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n backgroundColor={\n isActive ? theme.colors.background.primary : undefined\n }\n borderRadius={isActive ? sizing.simpleCardRadius : undefined}\n style={{\n padding: sizing.simpleCardPadding,\n gap: sizing.simpleCardGap,\n flexShrink: 0,\n }}\n >\n <StepChip\n state={state}\n stepNumber={stepNumber}\n sizing={sizing}\n theme={theme}\n />\n </Box>\n {!isLast && (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n style={{ flex: 1, minWidth: sizing.simpleHorizontalCellWidth }}\n >\n <Box\n style={{\n flex: 1,\n height: 1,\n backgroundColor: theme.colors.border.secondary,\n }}\n />\n </Box>\n )}\n </Box>\n );\n }\n\n // Simple vertical\n return (\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n data-testid=\"step\"\n data-step-state={state}\n aria-current={isCurrent ? \"step\" : undefined}\n aria-label={ariaLabel}\n {...interactiveProps}\n style={{\n ...(isInteractive ? { cursor: \"pointer\" } : {}),\n gap: sizing.simpleItemGap,\n }}\n >\n <Box\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n backgroundColor={\n isActive ? theme.colors.background.primary : undefined\n }\n borderRadius={isActive ? sizing.simpleCardRadius : undefined}\n style={{\n padding: sizing.simpleCardPadding,\n gap: sizing.simpleCardGap,\n }}\n >\n <StepChip\n state={state}\n stepNumber={stepNumber}\n sizing={sizing}\n theme={theme}\n />\n </Box>\n {!isLast && (\n <Box\n style={{\n marginLeft: sizing.simpleCardPadding + sizing.chipSize / 2 - 0.5,\n }}\n >\n <StepConnector\n direction=\"vertical\"\n color={theme.colors.border.secondary}\n length={sizing.connectorCellHeight}\n />\n </Box>\n )}\n </Box>\n );\n }\n\n if (isHorizontal) {\n const cardBackground = isActive\n ? theme.colors.background.primary\n : undefined;\n const cardWidth = isFirst\n ? sizing.horizontalFirstItemWidth\n : sizing.horizontalItemWidth;\n\n return (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n flex={1}\n data-testid=\"step\"\n data-step-state={state}\n aria-current={isCurrent ? \"step\" : undefined}\n aria-label={ariaLabel}\n {...interactiveProps}\n >\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n backgroundColor={cardBackground}\n borderRadius={\n isActive ? sizing.activeCardRadiusHorizontal : undefined\n }\n style={{\n gap: sizing.activeCardGapHorizontal,\n width: cardWidth,\n flexShrink: 0,\n paddingTop: sizing.activeCardPaddingYHorizontal,\n paddingBottom: sizing.activeCardPaddingYHorizontal,\n paddingLeft: sizing.activeCardPaddingLeftHorizontal,\n paddingRight: 0,\n }}\n >\n <Box\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n style={{\n gap: sizing.itemGap,\n flex: 1,\n minWidth: 0,\n }}\n >\n <StepChip\n state={state}\n stepNumber={stepNumber}\n sizing={sizing}\n theme={theme}\n />\n {textBlock}\n </Box>\n {!isLast && (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n style={{ flexShrink: 0 }}\n >\n <Box\n style={{\n width: sizing.horizontalConnectorSegment,\n height: 1,\n backgroundColor: theme.colors.border.secondary,\n }}\n />\n <Box\n style={{\n width: sizing.horizontalConnectorGap,\n height: 1,\n backgroundColor: theme.colors.border.secondary,\n }}\n />\n </Box>\n )}\n </Box>\n {!isLast && (\n <StepConnector\n direction=\"horizontal\"\n color={theme.colors.border.secondary}\n />\n )}\n </Box>\n );\n }\n\n // Vertical\n const innerConnectorOffset =\n sizing.activeCardPaddingX + sizing.chipSize / 2 - 0.5;\n\n // Merge interactiveProps.style with overlap/z-index so steps overlap by\n // overlapBottom px and earlier steps stack above later ones.\n const verticalContainerStyle: React.CSSProperties = {\n ...(interactiveProps.style as React.CSSProperties | undefined),\n marginBottom: overlapBottom ? -overlapBottom : undefined,\n position: zIndex !== undefined ? \"relative\" : undefined,\n zIndex,\n };\n\n return (\n <Box\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n data-testid=\"step\"\n data-step-state={state}\n aria-current={isCurrent ? \"step\" : undefined}\n aria-label={ariaLabel}\n {...interactiveProps}\n style={verticalContainerStyle}\n >\n {/* Card: pt:24 px:24 pb:0 — the inner connector below the chip\n extends the card downward so the line passes through the white\n area without being cut at the card edge (matches Figma). */}\n <Box\n flexDirection=\"row\"\n alignItems=\"flex-start\"\n gap={sizing.itemGap}\n style={{\n paddingTop: sizing.activeCardPaddingTop,\n paddingLeft: sizing.activeCardPaddingX,\n paddingRight: sizing.activeCardPaddingX,\n paddingBottom: 0,\n backgroundColor: isActive\n ? theme.colors.background.primary\n : undefined,\n borderRadius: isActive ? sizing.activeCardRadiusVertical : undefined,\n }}\n >\n {/* Icon column: chip + line below chip (line lives inside the card). */}\n <Box\n flexDirection=\"column\"\n alignItems=\"center\"\n gap={8}\n style={{ flexShrink: 0 }}\n >\n <StepChip\n state={state}\n stepNumber={stepNumber}\n sizing={sizing}\n theme={theme}\n />\n {/* Render the inner connector for every step, but hide it on\n the last step. Keeps each card the same height so the last\n step doesn't visually shrink. */}\n <Box\n style={{ visibility: isLast ? \"hidden\" : \"visible\" }}\n aria-hidden={isLast ? \"true\" : undefined}\n >\n <StepConnector\n direction=\"vertical\"\n color={theme.colors.border.secondary}\n length={sizing.innerConnectorLength}\n />\n </Box>\n </Box>\n {textBlock}\n </Box>\n {/* Outer connector cell (below the card) — touches the inner line\n so the two visually form one continuous vertical stroke. */}\n {!isLast && (\n <Box\n alignItems=\"flex-start\"\n justifyContent=\"flex-start\"\n style={{\n height: sizing.connectorCellHeight,\n width: sizing.connectorCellWidth,\n paddingLeft: innerConnectorOffset,\n flexShrink: 0,\n }}\n >\n <StepConnector\n direction=\"vertical\"\n color={theme.colors.border.secondary}\n length={sizing.connectorCellHeight}\n />\n </Box>\n )}\n </Box>\n );\n};\n\nStep.displayName = \"Step\";\n","import { memo } from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box, Text, Spinner } from \"@xsolla/xui-primitives\";\nimport { Check, InfoCr, Remove } from \"@xsolla/xui-icons-base\";\nimport type { StepStateType } from \"./types\";\n\ntype StepSizing = {\n chipSize: number;\n chipRadius: number;\n chipPaddingTop: number;\n chipPaddingBottom: number;\n chipPaddingX: number;\n chipIconSize: number;\n numberFontSize: number;\n numberLineHeight: number;\n};\n\n// Relaxed theme shape — matches pentagram-light/dark token JSONs.\ntype StepperTheme = {\n colors: {\n background: {\n brand: { primary: string; secondary: string };\n success: { primary: string; secondary: string };\n warning: { primary: string; secondary: string };\n alert: { primary: string; secondary: string };\n };\n overlay: {\n mono: string;\n brand: string;\n };\n content: {\n primary: string;\n brand: { primary: string };\n success: { primary: string };\n warning: { primary: string };\n alert: { primary: string };\n };\n };\n};\n\nexport interface StepChipProps {\n state: StepStateType;\n stepNumber: number;\n sizing: StepSizing;\n theme: StepperTheme;\n}\n\nconst getChipBackground = (\n state: StepStateType,\n theme: StepperTheme\n): string => {\n switch (state) {\n case \"current\":\n return theme.colors.background.brand.secondary;\n case \"loading\":\n return theme.colors.overlay.brand;\n case \"complete\":\n return theme.colors.background.success.secondary;\n case \"warning\":\n return theme.colors.background.warning.secondary;\n case \"alert\":\n return theme.colors.background.alert.secondary;\n case \"incomplete\":\n default:\n return theme.colors.overlay.mono;\n }\n};\n\nexport const StepChip = memo(\n ({ state, stepNumber, sizing, theme }: StepChipProps) => {\n const numberColor = theme.colors.content.primary;\n const bg = getChipBackground(state, theme);\n\n const renderContent = () => {\n switch (state) {\n case \"loading\":\n return (\n <Spinner\n size={sizing.chipIconSize}\n color={theme.colors.content.brand.primary}\n strokeWidth={2}\n />\n );\n case \"complete\":\n return (\n <Check\n size={sizing.chipIconSize}\n color={theme.colors.content.success.primary}\n />\n );\n case \"warning\":\n return (\n <InfoCr\n size={sizing.chipIconSize}\n color={theme.colors.content.warning.primary}\n />\n );\n case \"alert\":\n return (\n <Remove\n size={sizing.chipIconSize}\n color={theme.colors.content.alert.primary}\n />\n );\n case \"current\":\n case \"incomplete\":\n default:\n return (\n <Text\n color={numberColor}\n fontSize={sizing.numberFontSize}\n lineHeight={sizing.numberLineHeight}\n fontWeight=\"500\"\n textAlign=\"center\"\n >\n {stepNumber}\n </Text>\n );\n }\n };\n\n return (\n <Box\n width={sizing.chipSize}\n height={sizing.chipSize}\n borderRadius={sizing.chipRadius}\n backgroundColor={bg}\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n style={{\n paddingTop: sizing.chipPaddingTop,\n paddingBottom: sizing.chipPaddingBottom,\n paddingLeft: sizing.chipPaddingX,\n paddingRight: sizing.chipPaddingX,\n }}\n >\n {renderContent()}\n </Box>\n );\n }\n);\n\nStepChip.displayName = \"StepChip\";\n\nexport type { StepperTheme };\n","import { memo } from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport type { StepperDirection } from \"./types\";\n\nexport interface StepConnectorProps {\n direction: StepperDirection;\n color: string;\n length?: number;\n}\n\nexport const StepConnector = memo(\n ({ direction, color, length }: StepConnectorProps) => {\n if (direction === \"vertical\") {\n return (\n <Box\n style={{\n width: 1,\n height: length ?? 48,\n backgroundColor: color,\n flexShrink: 0,\n }}\n />\n );\n }\n return (\n <Box\n style={{\n height: 1,\n flex: 1,\n minWidth: length ?? 24,\n backgroundColor: color,\n alignSelf: \"center\",\n }}\n />\n );\n }\n);\n\nStepConnector.displayName = \"StepConnector\";\n"],"mappings":"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","names":["React","React","styled","jsx","styled","styled","jsx","FilteredDiv","styled","jsx","memo","jsx","memo","jsx","jsx"]}
|