Komponenty Złożone

Paczka Tailwind v4 udostępnia API Komponentów Złożonych, które daje pełną kontrolę nad wewnętrzną strukturą i renderowaniem każdego pickera. Zamiast pojedynczego, monolitycznego komponentu, tworzysz picker z poszczególnych części.

Jak to działa

Każdy picker (np. DatePicker) jest zarówno prostym komponentem, jak i przestrzenią nazw dla jego złożonych części:

import { DatePicker } from "react-date-range-picker-tailwind4";
// Proste użycie -- renderuje domyślny układ
<DatePicker value={value} onChange={setValue} />
// Złożone użycie -- pełna kontrola nad strukturą
<DatePicker.Root value={value} onChange={setValue}>
<DatePicker.Trigger />
<DatePicker.Content>
<DatePicker.Header>
<DatePicker.PrevButton />
<DatePicker.Title />
<DatePicker.NextButton />
</DatePicker.Header>
<DatePicker.Grid />
<DatePicker.Footer>
<DatePicker.ClearButton />
<DatePicker.CancelButton />
<DatePicker.ConfirmButton />
</DatePicker.Footer>
</DatePicker.Content>
</DatePicker.Root>

Dzięki komponentom złożonym możesz:

  • Zastąpić dowolną część własnym renderowaniem (np. niestandardowy przycisk otwierający, niestandardowa komórka dnia)
  • Zmieniać układ (np. przenieść przyciski w stopce, dodać przycisk “Dzisiaj”)
  • Pominąć części, których nie potrzebujesz (np. usunąć stopkę dla minimalistycznego kalendarza)
  • Nadpisać klasy dowolnej części za pomocą propa className

Na kolejnych stronach omówiono każdy wzorzec dostosowywania wraz z działającymi demonstracjami.

Dostępne części

DatePicker

CzęśćOpis
DatePicker.RootProvider + kontener. Akceptuje wszystkie propy pickera (value, onChange, minDate itp.)
DatePicker.TriggerPrzycisk otwierający/zamykający wyskakujące okienko. Wyświetla wybraną wartość.
DatePicker.ContentKontener wyskakującego okienka (lub kontener wbudowany, gdy inline jest ustawione na Root)
DatePicker.HeaderWiersz nawigacji miesiąca
DatePicker.PrevButtonNawiguj do poprzedniego miesiąca
DatePicker.NextButtonNawiguj do następnego miesiąca
DatePicker.TitleWyświetlanie bieżącego miesiąca/roku (obsługuje rozwijane listy wyboru)
DatePicker.GridSiatka kalendarza z nagłówkami dni tygodnia i komórkami dni
DatePicker.DayPojedyncza komórka dnia (używana wewnątrz render propa siatki)
DatePicker.FooterKontener przycisków akcji
DatePicker.ClearButtonCzyści wybraną wartość
DatePicker.CancelButtonAnuluje i zamyka
DatePicker.ConfirmButtonPotwierdza wybór
DatePicker.TodayButtonNawiguje do dzisiaj

DateRangePicker

Zawiera wszystkie powyższe części oraz dodatkowo:

CzęśćOpis
DateRangePicker.CalendarsKontener podwójnego kalendarza
DateRangePicker.PresetsKontener paska bocznego z predefiniowanymi zakresami
DateRangePicker.PresetItemPojedynczy przycisk predefiniowanego zakresu

DateTimePicker / DateRangeTimePicker

Zawierają odpowiednie części bazowe oraz dodatkowo:

CzęśćOpis
*.TimeSectionKontener sekcji panelu czasu
*.TimePanelIndywidualny panel czasu (target="single", "start" lub "end")

TimePicker

CzęśćOpis
TimePicker.RootProvider + kontener
TimePicker.TriggerPrzycisk otwierający/zamykający wyskakujące okienko
TimePicker.ContentKontener wyskakującego okienka
TimePicker.TimePanelPanel wyboru czasu
TimePicker.FooterKontener przycisków akcji
TimePicker.ClearButtonCzyści wybraną wartość
TimePicker.CancelButtonAnuluje i zamyka
TimePicker.ConfirmButtonPotwierdza wybór