import type { FullToken, GenerateStyle } from '../../theme/internal'; import { genComponentStyleHook } from '../../theme/internal'; import genSpaceCompactStyle from './compact'; /** Component only token. Which will handle additional calculation of alias token */ export interface ComponentToken { // Component token here } interface SpaceToken extends FullToken<'Space'> { // Custom token here } const genSpaceStyle: GenerateStyle = (token) => { const { componentCls } = token; return { [componentCls]: { display: 'inline-flex', '&-rtl': { direction: 'rtl', }, '&-vertical': { flexDirection: 'column', }, '&-align': { flexDirection: 'column', '&-center': { alignItems: 'center', }, '&-start': { alignItems: 'flex-start', }, '&-end': { alignItems: 'flex-end', }, '&-baseline': { alignItems: 'baseline', }, }, [`${componentCls}-item`]: { '&:empty': { display: 'none', }, }, }, }; }; // ============================== Export ============================== export default genComponentStyleHook('Space', (token) => [ genSpaceStyle(token), genSpaceCompactStyle(token), ]);