UNPKG

@ozen-ui/kit

Version:

React component library

31 lines (30 loc) 2.26 kB
import { __assign, __rest } from "tslib"; import './StepperVertical.css'; import './modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.css'; import './modules/StepperVerticalIndicator/StepperVerticalIndicator.css'; import './modules/StepperVerticalStep/StepperVerticalStep.css'; import './modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css'; import './modules/StepperVerticalStepSubcontentButton/StepperVerticalStepSubcontentButton.css'; import React, { useRef, useMemo } from 'react'; import { useMultiRef } from '../../hooks/useMultiRef'; import { useThemeProps } from '../../hooks/useThemeProps'; import { cn, polymorphicComponentWithRef } from '../../utils'; import { Stack } from '../Stack'; import { STEPPER_VERTICAL_DEFAULT_ELLIPSIS, STEPPER_VERTICAL_DEFAULT_TAG, } from './constants'; import { useStepperVerticalStepsControl, useStepperVerticalStepsStructure, } from './hooks'; import { StepperVerticalContext } from './StepperVerticalContext'; export var cnStepperVertical = cn('StepperVertical'); export var StepperVertical = polymorphicComponentWithRef(function (inProps, ref) { var props = useThemeProps({ name: 'StepperVertical', props: inProps }); var children = props.children, _a = props.as, as = _a === void 0 ? STEPPER_VERTICAL_DEFAULT_TAG : _a, _b = props.ellipsis, ellipsis = _b === void 0 ? STEPPER_VERTICAL_DEFAULT_ELLIPSIS : _b, className = props.className, fullWidth = props.fullWidth, other = __rest(props, ["children", "as", "ellipsis", "className", "fullWidth"]); var internalRef = useRef(null); var stepsControl = useStepperVerticalStepsControl(); var structure = useStepperVerticalStepsStructure(internalRef, stepsControl, children); var memoizedContextValue = useMemo(function () { return ({ ellipsis: ellipsis, stepsControl: stepsControl, structure: structure, }); }, [ellipsis, stepsControl, structure]); return (React.createElement(StepperVerticalContext.Provider, { value: memoizedContextValue }, React.createElement(Stack, __assign({}, other, { ref: useMultiRef([internalRef, ref]), as: as, className: cnStepperVertical('', [className]), direction: "column", display: fullWidth ? 'block' : 'inline' }), children))); });