@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
80 lines (79 loc) • 2.52 kB
JavaScript
"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