import "./toggle_strip.css"; import type * as React from "react"; import { CheckboxGroup } from "@base-ui/react/checkbox-group"; import { type StyleProps } from "./style_props"; /** Two `xs` characters with air — a weekday initial, an hour band, a channel letter. */ export declare const TOGGLE_STRIP_CELL_WIDTH = 30; /** The register band: a column of these is a register cell, whose whole box is the target; 30 × 28 was * under the floor both ways. */ export declare const TOGGLE_STRIP_MARK_CELL_WIDTH = 40; export interface ToggleStripOption { value: T; /** One or two characters ("T2", "CN", "08"). */ label: string; /** Required: seven "T2" switches in a table are told apart only by voice. */ name: string; } export interface ToggleStripProps extends StyleProps { /** Names the set ("Ngày chạy của nốt 05:30"); each cell's name is prefixed with it for voice navigation. */ accessibilityLabel: string; /** In reading order, fixed, so position N means the same on every row. */ options: ToggleStripOption[]; value: T[]; onValueChange: (next: T[]) => void; /** Refuse to turn the last cell off, where empty is a different reading (a schedule with no day, or * where empty means every day); the held cell looks disabled so the floor is visible. */ minOne?: boolean; disabled?: boolean; /** `label` (default) prints each option's letters, naming its own positions. `mark` draws bare squares * for a column of strips a header names once (`Timetable`), instead of 28 labels for four facts. */ variant?: "label" | "mark"; /** Tinted so a column of strips shows today as a band. */ current?: T; /** Raise for three-character labels; a table column budgets {@link toggleStripWidth}. Defaults to * {@link TOGGLE_STRIP_CELL_WIDTH}, or the register band on `variant="mark"`. */ cellWidth?: number; testID?: string; ref?: React.Ref; render?: CheckboxGroup.Props["render"]; } /** N fixed independent toggles sized for a register row — a pattern across fixed positions (days a * departure runs, hours a gate opens). Not `ChoiceStrip` (one choice among wrapping peers): positions are * fixed and read vertically down a column, and it is a Base UI `CheckboxGroup` of `role="checkbox"` * cells. Selected wears the chip's doubled `--primary` edge, not a brand ground: a ground is the row's * language, spends the brand on selection, and is replaced by the hover wash. Height is the control * content rung, since it rides inside a row or field. */ export declare function ToggleStrip(props: ToggleStripProps): React.JSX.Element; /** Exact, so a table column is budgeted rather than guessed and shed wrongly. */ export declare function toggleStripWidth(count: number, cellWidth?: number): number;