--- import DefaultLayout from '@shared/layouts/DefaultLayout.astro' import Icon from '@ui/Icon.astro' import Button from '@ui/Button.astro' import ButtonList from '@ui/ButtonList.astro' import Card from '@ui/Card.astro' import CardHeader from '@ui/CardHeader.astro' import CardBody from '@ui/CardBody.astro' import site from '@data/site.json' type ColorEntry = [string, { title: string; icon?: string }] // site.json objects iterated as [key, value] pairs. // themeColors/colors entries have no icon — Icon renders nothing there. const themeColors = Object.entries(site.themeColors) as ColorEntry[] const colors = Object.entries(site.colors) as ColorEntry[] const socialColors = Object.entries(site.socialColors) as ColorEntry[] const actions = ['edit', 'copy', 'settings', 'clipboard', 'x'] const sizes = ['sm', 'md', 'lg', 'xl'] as const ---
{ themeColors.map(([name, color]) => ( {color.icon && } {color.title} )) }
{ themeColors.map(([name, color]) => ( {color.icon && } {color.title} )) }
{ themeColors.map(([name, color]) => ( {color.icon && } {color.title} )) }
{ themeColors.map(([name, color]) => ( {color.icon && } {color.title} )) }
{ themeColors.map(([name, color]) => ( {color.icon && } {color.title} )) }
{ colors.map(([name, color]) => ( {color.icon && } {color.title} )) }
{socialColors.map(([name, app]) => {app.icon && })}
{ socialColors.map(([name, app]) => ( {app.icon && } {app.title} )) }
{ actions.map((action) => ( )) }
{ sizes.map((size) => (