/* eslint-disable formatjs/no-literal-string-in-jsx */ import copy from "copy-to-clipboard" import { kebabify } from "../../generate/utils" import tableStyles from "./tokens.module.css" type ThemeValue = { resolved: string | number alias?: string | number } type Theme = Record type CornerRadiusProps = { theme: Theme } function copyToClipboard(text: string) { copy(text) } export function CornerRadius({ theme }: CornerRadiusProps) { // Filter corner radius tokens const cornerRadiusTokens: Theme = {} for (const [k, v] of Object.entries(theme)) { if (k.startsWith("Corner radius/")) { cornerRadiusTokens[k] = v as ThemeValue } } // Sort by value const sortedTokens = Object.entries(cornerRadiusTokens).sort((a, b) => { const aValue = typeof a[1].resolved === "number" ? a[1].resolved : 0 const bValue = typeof b[1].resolved === "number" ? b[1].resolved : 0 return aValue - bValue }) return (
{sortedTokens.map(([k, v]) => { const value = typeof v.resolved === "number" ? v.resolved : 0 const valuePx = `${value}px` return ( ) })}
Token Pixels Visual representation
{ copyToClipboard(`var(--${kebabify(k)})`) }} title="Click to copy CSS variable" > {kebabify(k)} { copyToClipboard(valuePx) }} title="Click to copy" > {valuePx}
{valuePx}
) }