import React, { useState } from 'react'; import { Screen, View, Text } from '@idealyst/components'; import { ThemeSettings } from '@idealyst/theme'; import Switch from '../Switch'; /** Theme toggle using local state + ThemeSettings (no Unistyles runtime subscription) */ const ThemeToggleDemo: React.FC = () => { const [isDark, setIsDark] = useState(false); const handleToggle = (checked: boolean) => { setIsDark(checked); ThemeSettings.setTheme(checked ? 'dark' : 'light', checked ? 'dark' : 'light'); }; return ( Theme Toggle (tests backdrop reactivity) ); }; export const SwitchExamples: React.FC = () => { const [basicChecked, setBasicChecked] = useState(false); const [labelledChecked, setLabelledChecked] = useState(false); const [intentChecked, setIntentChecked] = useState({ primary: false, success: false, error: false, warning: false, neutral: false, }); const [iconChecked, setIconChecked] = useState({ basic: false, notifications: true, visibility: false, volume: true, wifi: false, }); return ( Switch Examples Basic Switch With Label Label Position Sizes Intent Colors setIntentChecked(prev => ({ ...prev, primary: checked }))} intent="primary" label="Primary" /> setIntentChecked(prev => ({ ...prev, success: checked }))} intent="success" label="Success" /> setIntentChecked(prev => ({ ...prev, error: checked }))} intent="danger" label="Error" /> setIntentChecked(prev => ({ ...prev, warning: checked }))} intent="warning" label="Warning" /> setIntentChecked(prev => ({ ...prev, neutral: checked }))} intent="neutral" label="Neutral" /> With Icons setIconChecked(prev => ({ ...prev, basic: checked }))} onIcon="check" offIcon="close" label="On/Off" /> setIconChecked(prev => ({ ...prev, notifications: checked }))} onIcon="bell" offIcon="bell-off" intent="success" label="Notifications" /> setIconChecked(prev => ({ ...prev, visibility: checked }))} onIcon="eye" offIcon="eye-off" intent="primary" label="Visibility" /> setIconChecked(prev => ({ ...prev, volume: checked }))} onIcon="volume-high" offIcon="volume-off" intent="warning" label="Sound" size="lg" /> setIconChecked(prev => ({ ...prev, wifi: checked }))} onIcon="wifi" offIcon="wifi-off" intent="danger" label="WiFi Connection" size="sm" /> Disabled States ); }; export default SwitchExamples;