import * as React from 'react'
import { toPx } from '@pandacss/shared'
import { Fragment } from 'react'
import { Grid, panda } from '../../styled-system/jsx'
import { getSortedSizes } from '../lib/sizes-sort'
import { TokenGroup } from './token-group'
import type { Token } from '@pandacss/token-dictionary'
import { EmptyState } from './empty-state'
import { SizesIcon } from './icons'
export interface SizesProps {
sizes: Token[]
name: string
}
const contentRegex = /^(min|max|fit)-content$/
const unitRegex = /(ch|%)$/
export default function Sizes(props: SizesProps) {
const { sizes, name } = props
const sortedSizes = getSortedSizes(sizes).filter(
(token) =>
// remove negative values
!token.extensions.isNegative &&
// remove auto breakpoints
!token.name.includes('breakpoint-') &&
// remove fit-content, min-content, max-content, ch, %
!contentRegex.test(token.value) &&
!unitRegex.test(token.value),
)
if (sortedSizes.length === 0) {
return (
}>
The panda config does not contain any `{name}`` tokens
)
}
return (
Name
Size
Pixels
{sortedSizes
.sort((a, b) => a.extensions.prop - b.extensions.prop)
.map((size, index) => (
{size.extensions.prop}
{size.value}
{toPx(size.value as string)}
))}
)
}