Komponenty interaktywne

<Input>, <Textarea>, <Select> i <Tabs>: fokus, skróty klawiszowe i kopiowanie tekstu, gdy strona nie ma fokusu.

Te pola obsługuje się klawiaturą i same zarządzają swoim fokusem.

Na żywoTab next field · Enter submittsx
preview://form:1
<Box className="flex-col gap-1 p-1">  <Input placeholder="my-text-app" autoFocus />  <Select options={regions} value={region} onChange={setRegion} />  <Tabs tabs={plans} activeTab={plan} onChange={setPlan} variant="pill" /></Box>

Fokus

Tab i Shift+Tab cyklicznie przenoszą fokus. autoFocus przejmuje fokus przy montowaniu.

const { isFocused } = useFocus({ autoFocus: true });useFocusManager().focus("search");

Edytory z fokusem przechwytują naciśnięcia klawiszy, więc wpisanie 1 nigdy nie wywołuje globalnego skrótu klawiszowego.

<Input>

Jednowierszowe pole z edycją w stylu readline.

PropOpis
value / onChangeWartość kontrolowana
onSubmitWywołanie po naciśnięciu Enter
placeholderTekst wyświetlany w pustym polu
maskZnak maskujący poufne dane

<Textarea>

Wielowierszowe pole tekstowe. Enter zatwierdza, Shift+Enter dodaje nowy wiersz.

<Textarea placeholder="Ask anything…" maxRows={6} onSubmit={send} />

<Select>

Lista opcji obsługiwana klawiaturą z opcjonalnym wyszukiwaniem przybliżonym.

PropOpis
options{ value, label, hint?, badge? }[]
onChangeWywołanie po naciśnięciu Enter
searchableFiltrowanie opcji podczas pisania

<Tabs>

<Tabs tabs={[{ id: "home", label: "Home", shortcut: "1" }]} activeTab={tab} onChange={setTab} />

Kursor bez fokusu

Gdy strona traci fokus, kursory zamierają, a klatki przestają się pojawiać, więc możesz zaznaczać i kopiować tekst konsoli.

Edytuj tę stronę w serwisie GitHub