import React, { FC } from 'react'; interface TokenPreviewProps { name: string; value: string; } function looksLikeColor(value: string): boolean { return ( value.startsWith('#') || value.startsWith('rgb') || value.startsWith('hsl') || value.startsWith('oklch') ); } const SKIP_VALUES = new Set(['underline', 'unset', 'transparent', 'none', 'normal', 'inherit']); export const TokenPreview: FC = ({ name, value }) => { if (SKIP_VALUES.has(value.toLowerCase())) { return null; } const nameLower = name.toLowerCase(); if (value.startsWith('linear-gradient') || value.startsWith('radial-gradient')) { return (
); } if (looksLikeColor(value)) { return (
); } if (nameLower.includes('fontfamily') || nameLower.includes('typeface')) { return Aa Bb Cc; } if (nameLower.includes('fontweight') || nameLower.includes('weight')) { return ( Aa Bb Cc ); } if (nameLower.includes('fontsize')) { return Aa; } if (nameLower.includes('lineheight')) { return Aa Bb; } if (nameLower.includes('letterspacing')) { return Aa Bb Cc; } if (nameLower.includes('radius')) { return (
); } if ( nameLower.includes('shadowoffset') || nameLower.includes('shadowopacity') || nameLower.includes('elevation') ) { return null; } if (nameLower.includes('shadow') && nameLower.includes('shorthand')) { return (
); } if ( nameLower.includes('spacing') || nameLower.includes('gap') || nameLower.includes('padding') || nameLower.includes('margin') ) { return (
); } if (nameLower.includes('sizing') || nameLower.includes('size')) { return (
); } if (nameLower.includes('border') && nameLower.includes('width')) { return (
); } if (nameLower.includes('border') && nameLower.includes('color')) { return (
); } if (nameLower.includes('transition') || nameLower.includes('motion')) { return {value}; } return {value}; };