mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-17 23:50:52 +08:00

* basic flex * chore: style basic * chore: status style * chore: small size * chore: label vertical * chore: more style * chore: hover disabled * chore: variant * chore: dot variant * chore: max width * chore: hover dot * chore: update style * chore: click style * chore: init percent * chore: pass detail * chore: for progress * chore: clean up * chore: clean up * chore: multiple css var * chore: status text * chore: status use var * chore: fix nest * chore: use svg * chore: type of panel * chore: offset support * chore: inline offset * chore: warning of steps * docs: add semantic preview * chore: semantic transition * chore: hover * chore: adjust style * chore: update semantic preview * chore: fix nav style * chore: patch panel motion * chore: update semantic preview * docs: update config provider doc * chore: fix part ts def * chore: fix test ts * test: update test case * test: coverage * chore: fix lint * test: update test case * test: update snapshot * chore: adjust style * chore: fix rtl * docs: update design * chore: update sctructure * chore: update comment * chore: clean up * chore: clean up * chore: cursor style * chore: coverage * docs: add missing part * chore: order * test: add test case * chore: fix ts * chore: clean up
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { CSSObject } from '@ant-design/cssinjs';
|
|
|
|
import type { StepsToken } from '.';
|
|
|
|
function withoutVar(cssVar: any): string {
|
|
return (cssVar || '--ant-not-exist').replace(/var\((.*)\)/, '$1');
|
|
}
|
|
|
|
/**
|
|
* Force override the width related styles.
|
|
* This should be multiple since will conflict with other `rail` styles.
|
|
*/
|
|
export function getItemWithWidthStyle(
|
|
token: StepsToken,
|
|
marginSize: number,
|
|
optionalStyle?: CSSObject,
|
|
): CSSObject {
|
|
const { calc, componentCls, descriptionMaxWidth } = token;
|
|
const itemCls = `${componentCls}-item`;
|
|
|
|
return {
|
|
[`@container style(${withoutVar(descriptionMaxWidth)})`]: [
|
|
{
|
|
// Icon
|
|
[`${itemCls}-icon`]: {
|
|
marginInlineStart: calc(descriptionMaxWidth).sub(`var(--steps-icon-size)`).div(2).equal(),
|
|
},
|
|
|
|
// >>> Rail
|
|
[`${itemCls}-rail`]: {
|
|
width: 'auto',
|
|
insetInlineStart: calc(descriptionMaxWidth)
|
|
.add(`var(--steps-icon-size)`)
|
|
.div(2)
|
|
.add(marginSize)
|
|
.equal(),
|
|
insetInlineEnd: calc(descriptionMaxWidth)
|
|
.sub(`var(--steps-icon-size)`)
|
|
.div(2)
|
|
.sub(marginSize)
|
|
.mul(-1)
|
|
.equal(),
|
|
},
|
|
},
|
|
optionalStyle,
|
|
],
|
|
};
|
|
}
|