import { CSSProperties } from 'react'; // : Partial> const CssObj = { alignContent: 'align-content', alignItems: 'align-items', alignSelf: 'align-self', aspectRatio: 'aspect-ratio', background: 'background', backgroundColor: 'background-color', border: 'border', borderBottom: 'border-bottom', borderLeft: 'border-left', borderRadius: 'border-radius', borderRight: 'border-right', borderTop: 'border-top', bottom: 'bottom', boxShadow: 'box-shadow', clip: 'clip', color: 'color', columnCount: 'column-count', columnFill: 'column-fill', columnGap: 'column-gap', columnRule: 'column-rule', columns: 'columns', columnSpan: 'column-span', columnWidth: 'column-width', cursor: 'cursor', direction: 'direction', display: 'display', flex: 'flex', flexBasis: 'flex-basis', flexDirection: 'flex-direction', flexFlow: 'flex-flow', flexGrow: 'flex-grow', flexShrink: 'flex-shrink', flexWrap: 'flex-wrap', float: 'float', fontSize: 'font-size', fontStyle: 'font-style', fontWeight: 'font-weight', gap: 'gap', grid: 'grid', gridAutoColumns: 'grid-auto-columns', gridColumnEnd: 'grid-column-end', gridColumnStart: 'grid-column-start', gridTemplate: 'grid-template', gridTemplateColumns: 'grid-template-columns', height: 'height', inset: 'inset', justifyContent: 'justify-content', justifySelf: 'justify-self', left: 'left', letterSpacing: 'letter-spacing', lineHeight: 'line-height', margin: 'margin', marginBottom: 'margin-bottom', marginLeft: 'margin-left', marginRight: 'margin-right', marginTop: 'margin-top', maxHeight: 'max-height', maxWidth: 'max-width', minHeight: 'min-height', minWidth: 'min-width', objectFit: 'object-fit', opacity: 'opacity', order: 'order', outline: 'outline', overflow: 'overflow', overflowX: 'overflow-x', overflowY: 'overflow-y', padding: 'padding', paddingBlock: 'padding-block', paddingBottom: 'padding-bottom', paddingInline: 'padding-inline', paddingLeft: 'padding-left', paddingRight: 'padding-right', paddingTop: 'padding-top', placeContent: 'place-content', pointerEvents: 'pointer-events', position: 'position', right: 'right', rowGap: 'row-gap', textAlign: 'text-align', textDecoration: 'text-decoration', textTransform: 'text-transform', top: 'top', transform: 'transform', transition: 'transition', visibility: 'visibility', whiteSpace: 'white-space', width: 'width', zIndex: 'z-index', } as const; export const CssMap = new Map(Object.entries(CssObj)); export type CssKeys = keyof typeof CssObj; // export type CssFullProps = Record; // export type CssFullProps = Pick; export type CssFullProps = Pick; export type CssProps = Omit & { color: string }; export type PropertyOfProps = { [Property in keyof Type]?: Type[Property]; }; export type PropertyOfPropsSm = { [Property in keyof Type as `${Uncapitalize}Sm`]?: Type[Property]; }; export type PropertyOfPropsMd = { [Property in keyof Type as `${Uncapitalize}Md`]?: Type[Property]; }; export type PropertyOfPropsLg = { [Property in keyof Type as `${Uncapitalize}Lg`]?: Type[Property]; }; export type PropertyOfPropsXl = { [Property in keyof Type as `${Uncapitalize}Xl`]?: Type[Property]; }; export type ResponsiveProps = PropertyOfProps & PropertyOfPropsSm & PropertyOfPropsMd & PropertyOfPropsLg & PropertyOfPropsXl; export type CssResponsiveProps = ResponsiveProps; /* export type PropertyOfProps = { [Property in keyof Type]?: U; }; export type PropertyOfPropsSm = { [Property in keyof Type as `${Uncapitalize}Sm`]?: U; }; export type PropertyOfPropsMd = { [Property in keyof Type as `${Uncapitalize}Md`]?: U; }; export type PropertyOfPropsLg = { [Property in keyof Type as `${Uncapitalize}Lg`]?: U; }; export type PropertyOfPropsXl = { [Property in keyof Type as `${Uncapitalize}Xl`]?: U; }; export type ResponsiveProps = PropertyOfProps & PropertyOfPropsSm & PropertyOfPropsMd & PropertyOfPropsLg & PropertyOfPropsXl; export type CssResponsiveProps = ResponsiveProps; */