/* ============ Shared UI components ============ */ const Pill = ({ tone = 'gray', children }) => ( {children} ); const Button = ({ variant = 'default', size, icon, children, ...rest }) => { const cls = ['btn']; if (variant === 'primary') cls.push('primary'); if (variant === 'tinted') cls.push('tinted'); if (variant === 'bordered') cls.push('bordered'); if (variant === 'danger') cls.push('danger'); if (size === 'lg') cls.push('lg'); return ( ); }; const IconButton = ({ name, size = 16, ...rest }) => ( ); const Segmented = ({ value, onChange, options }) => (
{options.map(o => ( ))}
); const Field = ({ label, children }) => (
{children}
); const Input = (props) => ; const Select = ({ options, children, ...rest }) => ( ); const Textarea = (props) =>