import type { SpaceProps as XstyledSpace, MarginProps, MarginTopProps, MarginRightProps, MarginBottomProps, MarginLeftProps, MarginXProps, MarginYProps, PaddingProps, PaddingTopProps, PaddingRightProps, PaddingBottomProps, PaddingLeftProps, PaddingXProps, PaddingYProps, ColorProps as XstyledColor, TypographyProps, FlexboxesProps } from '@xstyled/system'; import type { Theme } from './types.js'; export type { FlattenSimpleInterpolation, FlattenInterpolation } from 'styled-components'; export type { LayoutProps, SizingProps, FontSizeProps, FontWeightProps, PositionProps, BoxShadowProps, LineHeightProps, TextAlignProps, } from '@xstyled/system'; export interface DummyColorTheme { 'neutral-100': true; 'neutral-200': true; 'neutral-300': true; 'neutral-400': true; 'neutral-500': true; 'neutral-600': true; 'neutral-700': true; 'neutral-800': true; 'neutral-000': true; 'neutral-050': true; 'neutral-080': true; 'brand-100': true; 'brand-200': true; 'brand-300': true; 'brand-400': true; 'brand-500': true; 'brand-600': true; 'brand-700': true; 'brand-800': true; 'success-300': true; 'success-900': true; 'warning-400': true; 'warning-600': true; 'warning-900': true; 'danger-200': true; 'danger-900': true; } export type AllColors = keyof DummyColorTheme | `${keyof DummyColorTheme}-${string}` | `#${string}` | `rgba(${string})` | `rgb(${string})`; export type AllMeasures = keyof Theme['space'] | `${number}%` | `${number}em` | `${number}px` | `${number}rem` | `${number}vh` | `${number}vw` | `${number}vmin` | `${number}vmax`; interface MarginAndPaddings extends MarginProps, MarginTopProps, MarginRightProps, MarginBottomProps, MarginLeftProps, MarginXProps, MarginYProps, PaddingProps, PaddingTopProps, PaddingRightProps, PaddingBottomProps, PaddingLeftProps, PaddingXProps, PaddingYProps { } export type SpacePropsT = { [key in keyof XstyledSpace]?: XstyledSpace[key]; } & { [key in keyof MarginAndPaddings]?: XstyledSpace[key] | AllMeasures; }; export type ColorPropsT = { [key in keyof XstyledColor]?: XstyledColor[key] | AllColors; }; export interface SpaceProps extends SpacePropsT { } export interface ColorProps extends ColorPropsT { } export interface BorderProps { border?: string; borderTop?: string; borderBottom?: string; borderRight?: string; borderLeft?: string; borderColor?: string; borderTopColor?: string; borderBottomColor?: string; borderRightColor?: string; borderLeftColor?: string; borderStyle?: string; borderTopStyle?: string; borderBottomStyle?: string; borderRightStyle?: string; borderLeftStyle?: string; borderWidth?: AllMeasures; borderTopWidth?: AllMeasures; borderBottomWidth?: AllMeasures; borderRightWidth?: AllMeasures; borderLeftWidth?: AllMeasures; borderRadius?: string; } export interface BackgroundProps { backgroundColor?: string; bg?: string; } export type { TypographyProps, FlexboxesProps };