UNPKG

@radix-ui/themes

Version:

[![Radix Themes Logo](https://radix-ui.com/social/themes.png)](https://radix-ui.com/themes)

82 lines (72 loc) 1.77 kB
import type { PropDef } from '../props/index.js'; import { paddingPropDefs, widthPropDefs } from '../props/index.js'; const sizes = ['1', '2', '3'] as const; const variants = ['surface', 'ghost'] as const; const layoutValues = ['auto', 'fixed'] as const; const tableRootPropDefs = { size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true, }, variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'ghost', }, layout: { type: 'enum', className: 'rt-r-tl', values: layoutValues, responsive: true, }, } satisfies { size: PropDef<(typeof sizes)[number]>; variant: PropDef<(typeof variants)[number]>; layout: PropDef<(typeof layoutValues)[number]>; }; const rowAlign = ['start', 'center', 'end', 'baseline'] as const; const tableRowPropDefs = { align: { type: 'enum', className: 'rt-r-va', values: rowAlign, parseValue: parseAlignValue, responsive: true, }, } satisfies { align: PropDef<(typeof rowAlign)[number]>; }; function parseAlignValue(value: string) { return { baseline: 'baseline', start: 'top', center: 'middle', end: 'bottom', }[value]; } const justifyValues = ['start', 'center', 'end'] as const; const tableCellPropDefs = { justify: { type: 'enum', className: 'rt-r-ta', values: justifyValues, parseValue: parseJustifyValue, responsive: true, }, ...widthPropDefs, ...paddingPropDefs, } satisfies { justify: PropDef<(typeof justifyValues)[number]>; }; function parseJustifyValue(value: string) { return { start: 'left', center: 'center', end: 'right', }[value]; } export { tableRootPropDefs, tableRowPropDefs, tableCellPropDefs };