import { LAUNCHER_ICONS, LAUNCHER_TINTS, type LauncherIconName, type LauncherTintName, } from "@/client/lib/launcher-icons"; interface LauncherTilePickerProps { icon: LauncherIconName | ""; tint: LauncherTintName | ""; name: string; onIconChange: (icon: LauncherIconName | "") => void; onTintChange: (tint: LauncherTintName | "") => void; } export const LauncherTilePicker = ({ icon, tint, name, onIconChange, onTintChange }: LauncherTilePickerProps) => { const ResolvedIcon = icon ? LAUNCHER_ICONS[icon] : null; const tintValue = tint ? LAUNCHER_TINTS[tint] : "oklch(0.30 0.005 265)"; const initial = (name.trim()[0] ?? "?").toUpperCase(); return (

Launcher tile

How this app appears on the signed-in landing page.

Icon
{Object.entries(LAUNCHER_ICONS).map(([key, Icon]) => ( ))}
Tint
{(Object.keys(LAUNCHER_TINTS) as LauncherTintName[]).map((key) => ( ))}
); };