UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

80 lines (79 loc) 2.52 kB
"use client"; var _StepIndicatorList; import React, { useContext } from 'react'; import { applySpacing } from "../space/SpacingUtils.js"; import Card from "../Card.js"; import CardContext from "../card/CardContext.js"; import StepIndicatorTriggerButton from "./StepIndicatorTriggerButton.js"; import StepIndicatorList from "./StepIndicatorList.js"; import StepIndicatorContext, { StepIndicatorProvider } from "./StepIndicatorContext.js"; import { stepIndicatorDefaultProps } from "./StepIndicatorProps.js"; import FormStatus from "../form-status/FormStatus.js"; import withComponentMarkers from "../../shared/helpers/withComponentMarkers.js"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function StepIndicator({ status, statusState = 'warning', data = stepIndicatorDefaultProps.data, skeleton = stepIndicatorDefaultProps.skeleton, currentStep = stepIndicatorDefaultProps.currentStep, hideNumbers = stepIndicatorDefaultProps.hideNumbers, noAnimation = stepIndicatorDefaultProps.noAnimation, expandedInitially = stepIndicatorDefaultProps.expandedInitially, ...restOfProps }) { var _useContext; const { outset, ...props } = { data, skeleton, currentStep, hideNumbers, noAnimation, expandedInitially, ...restOfProps }; return _jsx(StepIndicatorProvider, { ...props, children: _jsxs("div", { className: "dnb-step-indicator-wrapper", children: [_jsxs(Card, { align: "stretch", ...applySpacing(restOfProps, { className: 'dnb-step-indicator' }), backgroundColor: "var(--step-indicator-trigger-content-background)", outset: outset, children: [_jsx(StepIndicatorTriggerButton, { isNested: (_useContext = useContext(CardContext)) === null || _useContext === void 0 ? void 0 : _useContext.isNested }), _StepIndicatorList || (_StepIndicatorList = _jsx(StepIndicatorList, {}))] }), _jsx(StepIndicatorStatus, { status: status, statusState: statusState })] }) }); } function StepIndicatorStatus({ status, statusState }) { const { open, noAnimation } = useContext(StepIndicatorContext); const show = !open && !!status; return _jsx(FormStatus, { show: show, noAnimation: noAnimation, state: status && statusState, children: status }); } withComponentMarkers(StepIndicator, { _supportsSpacingProps: true }); export default StepIndicator; //# sourceMappingURL=StepIndicator.js.map