UNPKG

baseui

Version:

A React Component library implementing the Base design language

223 lines (222 loc) • 12.9 kB
import type * as React from 'react'; import type { StyleObject } from 'styletron-standard'; import type { Override } from '../helpers/overrides'; export type BlockOverrides = { Block?: Override; }; export type Responsive<T> = T | Array<T>; type AlignContent = 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'normal' | 'baseline' | 'first baseline' | 'last baseline' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'safe center' | 'unsafe center' | 'inherit' | 'initial' | 'unset'; type AlignItems = 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'baseline' | 'first baseline' | 'last baseline' | 'safe center' | 'unsafe center' | 'inherit' | 'initial' | 'unset'; type AlignSelf = 'auto' | 'normal' | 'center' | 'start' | 'end' | 'self-start' | 'self-end' | 'flex-start' | 'flex-end' | 'baseline' | 'first baseline' | 'last baseline' | 'stretch' | 'safe center' | 'unsafe center' | 'inherit' | 'initial' | 'unset'; type FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse' | 'inherit' | 'initial' | 'unset'; type Flex = number | string; type Display = 'block' | 'inline' | 'run-in' | 'flow' | 'flow-root' | 'table' | 'flex' | 'grid' | 'ruby' | 'block flow' | 'inline table' | 'flex run-in' | 'list-item' | 'list-item block' | 'list-item inline' | 'list-item flow' | 'list-item flow-root' | 'list-item block flow' | 'list-item block flow-root' | 'flow list-item block' | 'table-row-group' | 'table-header-group' | 'table-footer-group' | 'table-row' | 'table-cell' | 'table-column-group' | 'table-column' | 'table-caption' | 'ruby-base' | 'ruby-text' | 'ruby-base-container' | 'ruby-text-container' | 'contents' | 'none' | 'inline-block' | 'inline-table' | 'inline-flex' | 'inline-grid' | 'inherit' | 'initial' | 'unset'; type GridAutoFlow = 'row' | 'column' | 'dense' | 'row dense' | 'column dense' | 'inherit' | 'initial' | 'unset'; type JustifyContent = 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'left' | 'right' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'safe center' | 'unsafe center' | 'inherit' | 'initial' | 'unset'; type JustifyItems = 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'left' | 'right' | 'baseline' | 'first baseline' | 'last baseline' | 'safe center' | 'unsafe center' | 'legacy right' | 'legacy left' | 'legacy center' | 'inherit' | 'initial' | 'unset'; type JustifySelf = 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'left' | 'right' | 'baseline' | 'first baseline' | 'last baseline' | 'safe center' | 'unsafe center' | 'inherit' | 'initial' | 'unset'; type Order = number | string; type Position = 'static' | 'absolute' | 'relative' | 'fixed' | 'sticky'; type Overflow = 'visible' | 'hidden' | 'scroll' | 'scrollX' | 'scrollY' | 'auto' | 'inherit' | 'initial' | 'unset'; export type Scale = 0 | string; export type WhiteSpace = 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | 'inherit' | 'initial' | 'unset'; export type BlockProps<T extends React.ElementType = React.ElementType> = { children?: React.ReactNode; /** Modifies the base element used to render the block. */ as?: T; overrides?: BlockOverrides; /** Accepts all themeable color properties (`primary200`, etc.). */ color?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-attachment */ backgroundAttachment?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip */ backgroundClip?: Responsive<string>; /** Accepts all themeable color properties (`primary200`, etc.). */ backgroundColor?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-image */ backgroundImage?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-origin */ backgroundOrigin?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-position */ backgroundPosition?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat */ backgroundRepeat?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-size */ backgroundSize?: Responsive<string>; /** Accepts all themeable font properties (`font200`, etc.). */ font?: string | Array<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/align-content */ alignContent?: Responsive<AlignContent>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items */ alignItems?: Responsive<AlignItems>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/align-self */ alignSelf?: Responsive<AlignSelf>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction */ flexDirection?: Responsive<FlexDirection>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/display */ display?: Responsive<Display>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/flex */ flex?: Responsive<Flex>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid */ grid?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area */ gridArea?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns */ gridAutoColumns?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow */ gridAutoFlow?: Responsive<GridAutoFlow>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows */ gridAutoRows?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column */ gridColumn?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end */ gridColumnEnd?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-gap */ gridColumnGap?: Responsive<Scale>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start */ gridColumnStart?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-gap */ gridGap?: Responsive<Scale>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row */ gridRow?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end */ gridRowEnd?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-gap */ gridRowGap?: Responsive<Scale>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start */ gridRowStart?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template */ gridTemplate?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas */ gridTemplateAreas?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns */ gridTemplateColumns?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows */ gridTemplateRows?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content */ justifyContent?: Responsive<JustifyContent>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items */ justifyItems?: Responsive<JustifyItems>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self */ justifySelf?: Responsive<JustifySelf>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/order */ order?: Responsive<Order>; position?: Responsive<Position>; width?: Responsive<Scale>; minWidth?: Responsive<Scale>; maxWidth?: Responsive<Scale>; height?: Responsive<Scale>; minHeight?: Responsive<Scale>; maxHeight?: Responsive<Scale>; overflow?: Responsive<Overflow>; margin?: Responsive<Scale>; marginTop?: Responsive<Scale>; marginRight?: Responsive<Scale>; marginBottom?: Responsive<Scale>; marginLeft?: Responsive<Scale>; padding?: Responsive<Scale>; paddingTop?: Responsive<Scale>; paddingRight?: Responsive<Scale>; paddingBottom?: Responsive<Scale>; paddingLeft?: Responsive<Scale>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/place-content */ placeContent?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/place-items */ placeItems?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/place-self */ placeSelf?: Responsive<string>; flexWrap?: Responsive<boolean>; left?: Responsive<Scale>; top?: Responsive<Scale>; right?: Responsive<Scale>; bottom?: Responsive<Scale>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow */ textOverflow?: Responsive<string>; /** available values: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space */ whiteSpace?: Responsive<WhiteSpace>; }; export type StyledBlockProps = { $color?: Responsive<string>; $backgroundAttachment?: Responsive<string>; $backgroundClip?: Responsive<string>; $backgroundColor?: Responsive<string>; $backgroundImage?: Responsive<string>; $backgroundOrigin?: Responsive<string>; $backgroundPosition?: Responsive<string>; $backgroundRepeat?: Responsive<string>; $backgroundSize?: Responsive<string>; $font?: Responsive<string>; $alignContent?: Responsive<AlignContent>; $alignItems?: Responsive<AlignItems>; $alignSelf?: Responsive<AlignSelf>; $flexDirection?: Responsive<FlexDirection>; $display?: Responsive<Display>; $flex?: Responsive<Flex>; $grid?: Responsive<string>; $gridArea?: Responsive<string>; $gridAutoColumns?: Responsive<string>; $gridAutoFlow?: Responsive<GridAutoFlow>; $gridAutoRows?: Responsive<string>; $gridColumn?: Responsive<string>; $gridColumnEnd?: Responsive<string>; $gridColumnGap?: Responsive<Scale>; $gridColumnStart?: Responsive<string>; $gridGap?: Responsive<Scale>; $gridRow?: Responsive<string>; $gridRowEnd?: Responsive<string>; $gridRowGap?: Responsive<Scale>; $gridRowStart?: Responsive<string>; $gridTemplate?: Responsive<string>; $gridTemplateAreas?: Responsive<string>; $gridTemplateColumns?: Responsive<string>; $gridTemplateRows?: Responsive<string>; $justifyContent?: Responsive<JustifyContent>; $justifyItems?: Responsive<JustifyItems>; $justifySelf?: Responsive<JustifySelf>; $order?: Responsive<Order>; $position?: Responsive<Position>; $width?: Responsive<Scale>; $minWidth?: Responsive<Scale>; $maxWidth?: Responsive<Scale>; $height?: Responsive<Scale>; $minHeight?: Responsive<Scale>; $maxHeight?: Responsive<Scale>; $overflow?: Responsive<Overflow>; $margin?: Responsive<Scale>; $marginTop?: Responsive<Scale>; $marginRight?: Responsive<Scale>; $marginBottom?: Responsive<Scale>; $marginLeft?: Responsive<Scale>; $padding?: Responsive<Scale>; $paddingTop?: Responsive<Scale>; $paddingRight?: Responsive<Scale>; $paddingBottom?: Responsive<Scale>; $paddingLeft?: Responsive<Scale>; $placeContent?: Responsive<string>; $placeItems?: Responsive<string>; $placeSelf?: Responsive<string>; $flexWrap?: Responsive<boolean>; $left?: Responsive<Scale>; $top?: Responsive<Scale>; $right?: Responsive<Scale>; $bottom?: Responsive<Scale>; $textOverflow?: Responsive<string>; $whiteSpace?: Responsive<WhiteSpace>; }; type BaseProps<P extends {}> = P & { $style?: StyleObject | ((props: P) => StyleObject); className?: string; }; type AddStyletronRef<P extends { ref: any; }> = P extends { ref: infer R; } ? P & { $ref?: R; } : P; type OverrideProps<D extends React.ElementType, P extends {}> = BaseProps<P> & Omit<AddStyletronRef<React.ComponentProps<D>>, keyof BaseProps<P>>; export interface BlockComponentType<D extends React.ElementType> { <C extends React.ElementType = D>(props: OverrideProps<C, BlockProps<C>>): JSX.Element; displayName?: string; } export {};