import type { Tokens } from '@tamagui/core' import { getConfig } from '@tamagui/core' import React from 'react' import { Button, H2, H3, H4, Square, XGroup, XStack, YStack } from 'tamagui' type Section = 'spaceNegative' | keyof Tokens const sections: { name: string; key: Section }[] = [ { name: `Size`, key: `size`, }, { name: `Space`, key: 'space', }, { name: `Space (-)`, key: `spaceNegative`, }, { name: `Radius`, key: `radius`, }, ] export function TokensDemo() { const [section, setSection] = React.useState
('size') return ( {sections.map(({ name, key }) => { return ( ) })} {(section === 'size' || section === 'spaceNegative' || section === 'space' || section === 'radius') && } ) } function SizeSection({ section }: { section: Section }) { const allTokens = getConfig().tokens const tokens = allTokens[section.startsWith('space') ? 'space' : section] const st = Object.keys(tokens).sort((a, b) => Number.parseFloat(a) > Number.parseFloat(b) ? 1 : -1 ) const spaceTokens = st.filter((t) => Number.parseFloat(t) >= 0) const spaceTokensNegative = st .filter((t) => Number.parseFloat(t) < 0) .sort((a, b) => (Number.parseFloat(a) > Number.parseFloat(b) ? -1 : 1)) return (

Sizes

{(section === 'spaceNegative' ? spaceTokensNegative : spaceTokens).map( (token) => { return (

${token}

{tokens[token]?.val}px

Number.parseFloat(t) === -Number.parseFloat(token) ) ?? token ]?.val, })} {...(section === 'radius' && { size: allTokens.size[token]?.val as any, borderRadius: tokens[token]?.val as any, })} />
) } )}
) }