# Architektura i pliki

## Działający przykład

Pełny przykład znajduje się w `packages/templates/src/templates/growsite-skeleton/`. Ma sekcję powitalną, dodawane karty, blok statyczny, ustawienia globalne, grupy nagłówka i stopki, snippet przycisku oraz osobne tłumaczenia interfejsu i strony.

```text
my-theme/
  loom.json
  layout/theme.html
  templates/home.json
  sections/hero.html
  sections/hero.schema.json
  sections/header.json
  sections/header.html
  blocks/card.html
  blocks/_signature.html
  snippets/link.html
  config/settings_schema.json
  config/settings_data.json
  locales/pl.default.json
  locales/pl.default.schema.json
  assets/theme.css
```

Manifest:

```json
{
  "key": "my-theme",
  "engine": "gs-loom",
  "engineVersion": 1,
  "name": "My Theme",
  "version": "1.0.0",
  "defaultLocale": "pl",
  "catalog": true
}
```

`key` musi być stabilny, zgodny z nazwą folderu i unikalny. `catalog: true` udostępnia motyw jako produkt w katalogu po synchronizacji API. Zmiana nazwy widocznej nie wymaga zmiany klucza.

## Zgodność zapisanych stron

| Szablon | Sposób obsługi |
| --- | --- |
| Nordic (wycofany) | Wspólna prezentacja sekcji editorial i kart przeniesiona do Loom; zachowane ścieżki zapisanych pól |
| Paylio | Prezentacja sekcji finance oraz stopka w Loom; FAQ, formularze i przełączane ceny zachowują adaptery interakcji |
| Victorie Vending | 80 sekcji w Loom z zachowanymi polami `f…`; istniejąca izolowana ramka i integracje formularzy nadal działają |
| Starter Business (wycofany, przykład testowy) | Layout sekcji Loom osadza istniejące płótno; zapisane węzły i schemat ustawień v1 pozostają zgodne |

Wbudowane szablony zachowują dotychczasowe katalogi danych startowych oraz adaptery. To migracja renderowania bez masowego przepisywania rekordów klientów. Dokumenty Victorie powstają z `documents/*.html` i sekcji GS Loom. Build generuje też HTML dla istniejącego renderera SEO API.

Nie usuwaj adapterów tylko dlatego, że prezentacja jest w Loom: odpowiadają za obsługę formularzy, istniejące rich text, kadrowanie i pozostałe funkcje aplikacji. Kod specyficzny dla szablonu znajduje się w `templates/<key>/`; wspólny silnik i kontrolki są współdzielone.

## Od paczki do strony

Przepływ danych: **pliki autora → kompilator → katalog szablonów → zapis klienta → Loom → wspólny renderer**. Import nie publikuje witryny. Synchronizacja udostępnia produkt, a klient nadal edytuje i publikuje swoją stronę.

| Katalog | Odpowiedzialność |
| --- | --- |
| `layout` | Opakowanie treści strony |
| `templates` | Początkowe instancje sekcji i ich kolejność |
| `sections` | Definicje sekcji Loom i grupy JSON |
| `blocks` | Wielokrotne, niezależnie edytowalne elementy |
| `snippets` | Fragmenty kodu z parametrami, bez własnego panelu |
| `config` | Ustawienia globalne i ich wartości początkowe |
| `locales` | Osobne tłumaczenia strony i etykiet edytora |
| `assets` | Style CSS ograniczone do szablonu |

Katalogi HTML i schematów są płaskie. `public/` zawiera obrazy, fonty i gotowe zasoby przeglądarkowe, również w podkatalogach. `runtime/` zawiera zaufane moduły interakcji kompilowane z aplikacją. Import takich modułów wymaga przeglądu kodu przez osobę utrzymującą projekt. Rejestr `packages/templates/src/lib/loom/themes.json` jest generowany — nie edytuj go ręcznie. Zacznij od [warsztatu krok po kroku](/pl/quickstart/).

W aktualnym katalogu dostępne są wyłącznie Victorie Vending, Paylio i GrowSite Skeleton. Nordic zachowuje renderer zgodności dla wcześniej zapisanych sekcji; Starter Business jest wyłącznie fixture testowym, poza katalogiem szablonów.
