Switch
canonOn/off control that applies immediately.
Size sm (acrm !3911, AD 26 Sep 2026): 30×17, knob 13px, --shadow-xs, label var(--small) in --fg-secondary, gap --sp-2 — ONLY the secondary option in a dialog footer next to buttons (Další / Vytvořit další / Nevolat / Pozvánky); the full size would compete with the primary. Replaces the private .tk-more/.sw copy — migrated on 27 Sep 2026 (acrm !3950): TaskDialog „Další“, NewContactDialog „Vytvořit další“/„Nevolat“, NewMeetingForm „Pozvánky“/„Nahrávat“; .tk-more/.sw deleted, the app has ONE switch. Clickable label (acrm !3933, AD 26 Sep 2026): a click on the VISIBLE label toggles (not with labelHidden); focus stays on the role=switch button, onChange(on, event) keeps stopPropagation for clickable rows, no double toggle.
Used in 35 files · 16 areas · 52× — components/CheckMenu, components/assistant, components/datamart, components/mail, components/meetings, components/person …
Import
import { Switch } from '@acrm/ui'
Props
Switch packages/ui/src/components/Switch.tsx
| Name | Type | Default | Description |
|---|---|---|---|
on * | boolean | — | — |
onChange * | (on: boolean, event: MouseEvent<HTMLElement, MouseEvent>) => void | — | Druhý argument je událost kliku — pro stopPropagation, když přepínač sedí v klikacím řádku. Přijde z přepínače NEBO z viditelného popisku (klik na popisek přepíná, AD 26. 9. 2026) — proto HTMLElement: zastavit se musí ta událost, která opravdu probublává k řádku. |
label * | ReactNode | — | Popisek u přepínače. |
labelPosition | 'end' | 'start' | 'end' | Strana popisku. Výchozí vpravo; vlevo jen tam, kde to kanon určuje (patička psaní pošty). |
labelHidden | boolean | — | Popisek žije jinde v řádku (výpis nastavení) — jen pro čtečky. |
ariaLabel | string | — | Jméno pro čtečku. Bez něj je jménem label, pokud je to text (viditelný i skrytý) — viditelný popisek s tlačítkem programově svázaný není, takže jiné jméno by přepínač neměl. Předej ho, když se jméno liší od popisku (v seznamu nese jméno položky: „Zapnout workflow X", jinak jsou přepínače pro čtečku i test nerozlišitelné) nebo když popisek není text. |
title | string | — | — |
disabled | boolean | — | — |
className | string | — | — |
size | 'sm' | — | sm = vedlejší volba v patičce dialogu vedle tlačítek (Další / Vytvořit další / Nevolat / Pozvánky): 30 × 17, páčka 13 px, popisek var(--small) v --fg-secondary. Plný přepínač s tmavým 13px popiskem by v patičce soutěžil s primárem. Jediná varianta (AD 26. 9. 2026); nahradila druhý přepínač dialogů .tk-more + .sw. |