--- phase: 07-hero-search-form plan: 01 type: execute wave: 1 depends_on: [] files_modified: - wp-content/plugins/carei-reservation/includes/class-search-widget.php - wp-content/plugins/carei-reservation/assets/css/carei-reservation.css - wp-content/plugins/carei-reservation/assets/js/carei-reservation.js - wp-content/plugins/carei-reservation/carei-reservation.php autonomous: false --- ## Goal Nowy widget Elementor "Carei Search Form" — kompaktowy mini formularz rezerwacji do osadzenia w sekcji hero. Po wypełnieniu i kliknięciu przycisku otwiera istniejący popup formularza rezerwacji z automatycznie uzupełnionymi danymi (segment, daty, lokalizacja). ## Purpose Użytkownik widzi formularz już na hero — nie musi szukać przycisku rezerwacji. Skraca ścieżkę konwersji i daje natychmiastowe CTA. ## Output - Nowy plik: `class-search-widget.php` (widget Elementor) - Rozszerzony CSS: style mini formularza - Rozszerzony JS: logika prefill + otwarcie modala z danymi z mini formularza - Rejestracja widgetu w `carei-reservation.php` ## Project Context @.paul/PROJECT.md @.paul/ROADMAP.md ## Source Files @wp-content/plugins/carei-reservation/carei-reservation.php @wp-content/plugins/carei-reservation/includes/class-elementor-widget.php @wp-content/plugins/carei-reservation/assets/js/carei-reservation.js @wp-content/plugins/carei-reservation/assets/css/carei-reservation.css ## AC-1: Widget renderuje mini formularz ```gherkin Given strona z osadzonym widgetem "Carei Search Form" w Elementorze When strona się ładuje Then widoczny jest kompaktowy formularz z polami: segment (select), daty od/do, miejsce odbioru (select), checkbox "Zwrot w tej samej lokalizacji", przycisk "Złóż zapytanie o rezerwację" ``` ## AC-2: Selecty ładują dane z API ```gherkin Given mini formularz jest widoczny na stronie When strona się załadowała Then select segmentu zawiera segmenty z API (segments-branches-map) And select lokalizacji filtruje się po wybranym segmencie ``` ## AC-3: Przycisk otwiera modal z pre-wypełnionymi danymi ```gherkin Given użytkownik wypełnił mini formularz (segment, daty, lokalizacja) When kliknie "Złóż zapytanie o rezerwację" Then otwiera się istniejący modal rezerwacji And pola segment, data od, data do, miejsce odbioru są automatycznie wypełnione wartościami z mini formularza And checkbox zwrotu jest zsynchronizowany And extras/pricelist ładują się automatycznie (jak po ręcznym wypełnieniu) ``` ## AC-4: Design zgodny z Figmą ```gherkin Given mini formularz jest renderowany When wyświetla się na desktop Then tło #EDEDF3, zaokrąglone rogi 14px, border #2F2482/10% And pola mają białe tło, zaokrąglone rogi And przycisk jest czerwony (#FF0000) z białym tekstem, pełna szerokość And font Albert Sans, tytuł bold fioletowy (#2F2482) ``` Task 1: Widget Elementor + HTML mini formularza wp-content/plugins/carei-reservation/includes/class-search-widget.php, wp-content/plugins/carei-reservation/carei-reservation.php 1. Utworzyć `class-search-widget.php` z klasą `Carei_Search_Widget extends \Elementor\Widget_Base`: - name: `carei-search-form` - title: `Carei Search Form` - icon: `eicon-search` - categories: `['general']` - style/script depends: te same co główny widget (carei-reservation-css, carei-reservation-js) - Brak kontrolek Elementor (formularz jest statyczny) 2. Metoda `render()` generuje HTML: - Container `div.carei-search-form` z tłem - Tytuł: `

Wypełnij formularz rezerwacji.

` - Select segmentu: `` i `id="carei-search-date-to"` z ikonkami kalendarza i labelami "Od kiedy?" / "Do kiedy?" - Select lokalizacji: `` z label "Zwrot w tej samej lokalizacji" - Przycisk: `