UNPKG

grommet

Version:

focus on the essential experience

124 lines (123 loc) 12.6 kB
"use strict"; exports.__esModule = true; exports.StyledStepItem = exports.StyledStepContent = exports.StyledStepButton = exports.StyledIndicator = exports.StyledConnector = void 0; var _styledComponents = _interopRequireWildcard(require("styled-components")); var _utils = require("../../utils"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var getMetricSize = function getMetricSize(theme, size) { var _theme$global, _theme$global2; return ((_theme$global = theme.global) == null || (_theme$global = _theme$global.edgeSize) == null ? void 0 : _theme$global[size]) || ((_theme$global2 = theme.global) == null || (_theme$global2 = _theme$global2.size) == null ? void 0 : _theme$global2[size]) || size; }; var getTextMetric = function getTextMetric(theme, size, metric) { var _theme$text, _theme$text2; return ((_theme$text = theme.text) == null || (_theme$text = _theme$text[size]) == null ? void 0 : _theme$text[metric]) || ((_theme$text2 = theme.text) == null || (_theme$text2 = _theme$text2.medium) == null ? void 0 : _theme$text2[metric]); }; var getSubStepSizeToken = function getSubStepSizeToken(indicatorSize) { switch (indicatorSize) { case 'large': return 'small'; case 'small': return 'xsmall'; default: return 'small'; } }; var getConnectorColor = function getConnectorColor(stepStatus, theme) { var _theme$stepper; return (0, _utils.normalizeColor)(((_theme$stepper = theme.stepper) == null || (_theme$stepper = _theme$stepper[stepStatus]) == null || (_theme$stepper = _theme$stepper.connector) == null ? void 0 : _theme$stepper.color) || 'border', theme); }; var StyledStepItem = exports.StyledStepItem = _styledComponents["default"].li.withConfig(_utils.styledComponentsConfig).withConfig({ displayName: "StyledStepper__StyledStepItem", componentId: "sc-gmpe0p-0" })(["display:flex;position:relative;", ""], function (props) { if (props.direction === 'vertical') { var _props$theme$global; return (0, _styledComponents.css)(["flex-direction:column;align-items:flex-start;padding-bottom:", ";"], ((_props$theme$global = props.theme.global) == null || (_props$theme$global = _props$theme$global.edgeSize) == null ? void 0 : _props$theme$global.xxsmall) || '4px'); } if (props.isSubStep) { // horizontal and sub-steps isn't supported return (0, _styledComponents.css)(["flex-direction:row;align-items:center;flex:none;min-width:0;overflow:hidden;"]); } return (0, _styledComponents.css)(["flex-direction:column;align-items:center;flex:1;min-width:0;overflow:hidden;"]); }); var StyledStepButton = exports.StyledStepButton = _styledComponents["default"].button.withConfig(_utils.styledComponentsConfig).withConfig({ displayName: "StyledStepper__StyledStepButton", componentId: "sc-gmpe0p-1" })(["display:flex;background:none;border:none;padding:", ";cursor:", ";outline:none;", ""], function (props) { var _props$theme$global2; return ((_props$theme$global2 = props.theme.global) == null || (_props$theme$global2 = _props$theme$global2.edgeSize) == null ? void 0 : _props$theme$global2.xxsmall) || '4px'; }, function (props) { return props.isClickable ? 'pointer' : 'default'; }, function (props) { var _props$theme$global3, _props$theme$global4; return props.direction === 'vertical' ? (0, _styledComponents.css)(["flex-direction:row;align-items:flex-start;gap:", ";text-align:left;"], (_props$theme$global3 = props.theme.global) == null || (_props$theme$global3 = _props$theme$global3.edgeSize) == null ? void 0 : _props$theme$global3.small) : (0, _styledComponents.css)(["flex-direction:column;align-items:center;gap:", ";text-align:center;width:100%;"], (_props$theme$global4 = props.theme.global) == null || (_props$theme$global4 = _props$theme$global4.edgeSize) == null ? void 0 : _props$theme$global4.xxsmall); }); var StyledStepContent = exports.StyledStepContent = _styledComponents["default"].span.withConfig(_utils.styledComponentsConfig).withConfig({ displayName: "StyledStepper__StyledStepContent", componentId: "sc-gmpe0p-2" })(["display:flex;flex-direction:column;", ""], function (props) { if (props.direction === 'vertical' && !props.isSubStep && !props.hasDescription) { var _props$theme$stepper; var indicatorSizeToken = ((_props$theme$stepper = props.theme.stepper) == null || (_props$theme$stepper = _props$theme$stepper.indicator) == null ? void 0 : _props$theme$stepper.size) || 'medium'; var indicatorSize = getMetricSize(props.theme, indicatorSizeToken); var lineHeight = getTextMetric(props.theme, 'small', 'height'); return (0, _styledComponents.css)(["padding-top:calc((", " - ", ") / 2);"], indicatorSize, lineHeight); } return ''; }); var StyledIndicator = exports.StyledIndicator = _styledComponents["default"].span.withConfig(_utils.styledComponentsConfig).withConfig({ displayName: "StyledStepper__StyledIndicator", componentId: "sc-gmpe0p-3" })(["display:flex;align-items:center;justify-content:center;border-radius:50%;transition:transform 0.1s ease,background-color 0.15s ease,border-color 0.15s ease,color 0.15s ease;", " ", " ", ":focus-visible &{", "}", ""], function (props) { return function (_props$theme$stepper2, _props$theme$stepper3, _props$theme$global5) { var indicatorSizeToken = ((_props$theme$stepper2 = props.theme.stepper) == null || (_props$theme$stepper2 = _props$theme$stepper2.indicator) == null ? void 0 : _props$theme$stepper2.size) || 'medium'; var parentSize = getMetricSize(props.theme, indicatorSizeToken); var subStepSize = getMetricSize(props.theme, getSubStepSizeToken(indicatorSizeToken)); var size = props.isSubStep ? subStepSize : parentSize; var borderWidth = ((_props$theme$stepper3 = props.theme.stepper) == null || (_props$theme$stepper3 = _props$theme$stepper3.indicator) == null || (_props$theme$stepper3 = _props$theme$stepper3.border) == null ? void 0 : _props$theme$stepper3.width) || ((_props$theme$global5 = props.theme.global) == null || (_props$theme$global5 = _props$theme$global5.borderSize) == null ? void 0 : _props$theme$global5.small) || '2px'; return (0, _styledComponents.css)(["width:", ";height:", ";min-width:", ";min-height:", ";border:", " solid;"], size, size, size, size, borderWidth); }(); }, function (props) { var _theme$stepper2; var theme = props.theme; var stateTheme = ((_theme$stepper2 = theme.stepper) == null || (_theme$stepper2 = _theme$stepper2[props.effectiveState]) == null ? void 0 : _theme$stepper2.indicator) || {}; return (0, _styledComponents.css)(["background:", ";color:", ";border-color:", ";"], (0, _utils.normalizeColor)((stateTheme == null ? void 0 : stateTheme.background) || 'transparent', theme), (0, _utils.normalizeColor)((stateTheme == null ? void 0 : stateTheme.color) || 'text-weak', theme), (0, _utils.normalizeColor)((stateTheme == null ? void 0 : stateTheme.border) || 'border', theme)); }, StyledStepButton, (0, _utils.focusStyle)(), function (props) { var _theme$stepper3, _stateTheme$hover, _stateTheme$hover2, _stateTheme$hover3, _theme$stepper4, _theme$stepper5; if (!props.isClickable) return ''; var theme = props.theme; var stateTheme = ((_theme$stepper3 = theme.stepper) == null || (_theme$stepper3 = _theme$stepper3[props.effectiveState]) == null ? void 0 : _theme$stepper3.indicator) || {}; var backgroundColor = stateTheme != null && stateTheme.background ? (0, _utils.normalizeColor)(stateTheme.background, theme) : undefined; var borderColor = stateTheme != null && stateTheme.border ? (0, _utils.normalizeColor)(stateTheme.border, theme) : undefined; var color = stateTheme != null && stateTheme.color ? (0, _utils.normalizeColor)(stateTheme.color, theme) : undefined; var stateBackgroundHoverColor = stateTheme != null && (_stateTheme$hover = stateTheme.hover) != null && _stateTheme$hover.background ? (0, _utils.normalizeColor)(stateTheme.hover.background, theme) : undefined; var stateBorderHoverColor = stateTheme != null && (_stateTheme$hover2 = stateTheme.hover) != null && _stateTheme$hover2.border ? (0, _utils.normalizeColor)(stateTheme.hover.border, theme) : undefined; var stateColorHoverColor = stateTheme != null && (_stateTheme$hover3 = stateTheme.hover) != null && _stateTheme$hover3.color ? (0, _utils.normalizeColor)(stateTheme.hover.color, theme) : undefined; var defaultBackgroundHoverColor = backgroundColor ? "color-mix(in srgb, " + backgroundColor + " 80%, black)" : (0, _utils.normalizeColor)(((_theme$stepper4 = theme.stepper) == null || (_theme$stepper4 = _theme$stepper4.hover) == null ? void 0 : _theme$stepper4.background) || 'background-contrast', theme); var defaultBorderHoverColor = borderColor ? "color-mix(in srgb, " + borderColor + " 80%, black)" : (0, _utils.normalizeColor)(((_theme$stepper5 = theme.stepper) == null || (_theme$stepper5 = _theme$stepper5.hover) == null ? void 0 : _theme$stepper5.border) || 'text', theme); var defaultColorHoverColor = color ? "color-mix(in srgb, " + color + " 80%, black)" : (0, _utils.normalizeColor)('text-strong', theme); var hoverBackgroundColor = stateBackgroundHoverColor || defaultBackgroundHoverColor; var hoverBorderColor = stateBorderHoverColor || defaultBorderHoverColor; var hoverColor = stateColorHoverColor || defaultColorHoverColor; var hoverStyles = function () { return (0, _styledComponents.css)(["background:", ";border-color:", ";color:", ";"], hoverBackgroundColor, hoverBorderColor, hoverColor); }(); return (0, _styledComponents.css)(["", ":not([aria-disabled]):active &{transform:scale(0.95);}", ":not([aria-disabled]):hover &{", "}"], StyledStepButton, StyledStepButton, hoverStyles); }); var StyledConnector = exports.StyledConnector = _styledComponents["default"].span.withConfig(_utils.styledComponentsConfig).withConfig({ displayName: "StyledStepper__StyledConnector", componentId: "sc-gmpe0p-4" })(["", " position:absolute;background:", ";"], function (props) { var _theme$stepper6, _theme$stepper7, _theme$global3, _theme$stepper8, _theme$global4, _theme$global5; var theme = props.theme; var indicatorSizeToken = ((_theme$stepper6 = theme.stepper) == null || (_theme$stepper6 = _theme$stepper6.indicator) == null ? void 0 : _theme$stepper6.size) || 'medium'; var parentSize = getMetricSize(theme, indicatorSizeToken); var indicatorBorderWidth = getMetricSize(theme, ((_theme$stepper7 = theme.stepper) == null || (_theme$stepper7 = _theme$stepper7.indicator) == null || (_theme$stepper7 = _theme$stepper7.border) == null ? void 0 : _theme$stepper7.width) || '2px'); var buttonPad = ((_theme$global3 = theme.global) == null || (_theme$global3 = _theme$global3.edgeSize) == null ? void 0 : _theme$global3.xxsmall) || '4px'; var connectorThickness = ((_theme$stepper8 = theme.stepper) == null || (_theme$stepper8 = _theme$stepper8.connector) == null || (_theme$stepper8 = _theme$stepper8.stroke) == null ? void 0 : _theme$stepper8.width) || ((_theme$global4 = theme.global) == null || (_theme$global4 = _theme$global4.borderSize) == null ? void 0 : _theme$global4.small) || '2px'; var connectorRadius = ((_theme$global5 = theme.global) == null || (_theme$global5 = _theme$global5.edgeSize) == null ? void 0 : _theme$global5.xsmall) || '4px'; var connectorOffset = "calc(" + parentSize + " / 2 + " + buttonPad + ")"; return (0, _styledComponents.css)(["border-radius:", ";", ""], connectorRadius, props.direction === 'horizontal' ? (0, _styledComponents.css)(["top:", ";left:calc(", "50% + ", ");right:calc(-50% + ", ");height:", ";"], connectorOffset, props.isBetween ? '-' : '', connectorOffset, connectorOffset, connectorThickness) : (0, _styledComponents.css)(["left:calc( ", " + ", " - ", " / 2 );top:", ";bottom:0;width:", ";"], connectorOffset, indicatorBorderWidth, connectorThickness, props.isBetween ? 0 : "calc(" + parentSize + " + " + buttonPad + " * 3)", connectorThickness)); }, function (props) { return getConnectorColor(props.status, props.theme); });