Vadym Samoilenko
41593c8edc
fix(seed-forms): add confirmationMessage to both form creates
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
Payload forms plugin requires a Lexical rich-text confirmationMessage
when confirmationType is 'message'; omitting it caused a 500 on seed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 14:02:28 +01:00
Vadym Samoilenko
b5c34f6f0b
fix(seed-forms): tighten auth guard + per-form idempotency to handle partial failures
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
- Fix auth bypass when SYNC_SECRET env var is unset: now defaults to empty string
- Change idempotency check from totalDocs >= 2 to per-form existence checks
- Allow reuse of existing forms instead of creating duplicates if one creation fails
- Handles partial seed state gracefully (e.g., birthday form exists but group form missing)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 13:59:06 +01:00
Vadym Samoilenko
65498e2da5
feat(cms): add seed-forms route — creates birthday + group-visits forms and links to globals
2026-06-03 13:56:58 +01:00
Vadym Samoilenko
7f28be23f8
fix(forms): fix select option visibility in FormBlock on Windows Chrome
2026-06-03 13:54:57 +01:00
Vadym Samoilenko
4c31fc6d21
fix(birthday): remove package select field from booking form
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-03 13:43:10 +01:00
Vadym Samoilenko
480b10feed
feat(cms): add revalidateAfterChange hooks to Locations, Tariffs, Reviews, BirthdayPackages
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-03 13:02:28 +01:00
Vadym Samoilenko
2c59ea9ab7
fix(dino): hero responsive at 820-1100px + mobile card slider replacing wheel at ≤640px
2026-06-03 13:01:25 +01:00
Vadym Samoilenko
7cf0af6b74
fix(form): make group-type select options visible on Windows Chrome
2026-06-03 13:01:02 +01:00
Vadym Samoilenko
cd8d5673d1
perf: compress loc- images, fix hero fetchpriority, fix layout broken tag, Binotel SEO links
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-02 21:39:02 +01:00
Vadym Samoilenko
deead80f2a
perf: compress all images (-70MB), preload LCP hero, convert PNG→JPEG, remove dead files
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-02 21:32:49 +01:00
Vadym Samoilenko
3e65612141
fix(mobile): gallery lightbox everywhere, LocationsSlider bottom-strip, DinoPageContent video overflow
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-02 21:24:53 +01:00
Vadym Samoilenko
3d994b1bf7
fix(mobile): responsive CoverflowSlider, LocationsSlider overlay, DinoPageContent hero+wheel overflow, gallery lightbox
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-02 21:12:50 +01:00
Vadym Samoilenko
fa0aa0e60a
feat(tickets): new photos from Figma BoXMaNX15, fix telegram grammar, fix ezy www URL + real tariff IDs
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-02 20:06:46 +01:00
Vadym Samoilenko
208e0506e8
fix(telegram): correct Ukrainian grammar (Нове замовлення), show tariff name + customer name/phone in order alert
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-02 20:01:16 +01:00
Vadym Samoilenko
d4155c568d
fix(ezy): use www.ezy.com.ua, correct real tariff ids (3120-3122, 3417-3420), hide non-payable
2026-06-02 19:55:24 +01:00
Vadym Samoilenko
c619a8dcda
feat(admin): clear Ukrainian labels for Tariffs collection + visible toggle (hide non-ezy tickets)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 19:15:22 +01:00
Vadym Samoilenko
f2a560f9e6
feat: kvytky 1:1 redesign, CMS-driven pages, blog/group/birthday updates, green-wave pattern, image optimization
...
- /kvytky: combo grid (cart add), tabbed catalog with Figma chips/photos, CMS-editable (TicketsPage global)
- Tariffs collection: infoChips, badgeLabel, category zone/attraction/program, manual tickets
- Birthday & Group pages: Figma design + real photos, pricing sections removed (form-only), unified form style
- Thank-you page (pidtverdzhennya) from Figma; combo cards redesigned (4-up grid)
- Reviews coverflow slider; blog photos fixed (relative media URLs for next/image)
- JSON-LD (WebPage/LocalBusiness/CollectionPage/Service) on home/lokatsii/birthday/group
- Footer: photo bg + AImpress credit link; green wave pattern on green sections; consistent footer
- Imported 3 real blog posts from staging; fixed text artifacts
- Optimized 118 images 563MB -> 72MB (resize 1920px + re-encode)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 16:46:52 +01:00
Vadym Samoilenko
00a3ae163a
Merge remote-tracking branch 'origin/main'
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
2026-06-01 21:36:07 +01:00
Vadym Samoilenko
a3618448a8
feat(dynopark): hero banner, 5-dino wheel, silhouette dinos + deploy assets
...
- DinoPageContent: wheel shows exactly 5 dinos in the bottom bowl (fixed 30°
slot, decoupled from CMS dino count; far nodes parked off-screen)
- non-active dinos darkened to silhouettes, active stays full color
- hero banner swapped to blue T-Rex, height 1096px, 12px gap below header
- optimize heavy CMS images (61MB -> 9MB) and commit media + public assets
so git holds everything needed for deploy
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:33:40 +01:00
Vadym Samoilenko
4575717c73
fix: DinoWheel — bigger wheel, correct initial angle (active top), 4-photo gallery, orange segments
...
- Wheel size increased: 1500px at 1440vw, overflows and clips correctly
- Fixed initial wheelAngle from 270 → -(180/n) so item[0] is at top on load
- Segment colors: unified warm orange, only active+adjacent highlighted
- Removed pagination dots/arrows (not in Figma)
- Gallery: 4 photos in grid, no border, rounded corners
- page.tsx: use FALLBACK when CMS has < 20 dinos (maps epoch→latinName, weight→height)
2026-05-31 13:43:04 +01:00
Vadym Samoilenko
ab4ca5ea64
fix: DinoWheel — sync 25 dino FALLBACK data with Figma + add Quetzalcoatlus asset
...
- Fixed subtitles for all 25 dinosaurs per Figma dino_slider variants
- Added missing latinNames (Baryonyx, Oviraptor, Spinosaurus, Carnotaurus, etc.)
- Fixed Quetzalcoatlus: real Figma asset downloaded, length 6.5m
- Fixed Карнотавр ДиноРодео imageUrl to carnotaurus_1.jpg
- Fixed Тиранозавр що прогулюються парком imageUrl
- Removed duplicate brackets from subtitle display (data carries brackets)
- Added all 35 dynopark image assets to public/dynopark/
2026-05-31 13:30:12 +01:00
Vadym Samoilenko
2d82e39e25
feat: DinoWheel — arc segments with active highlight, gradient yellow→dark, colored active dino photo
...
- Replaced flat gradient circle with individual arc segments using arcPath SVG helper
- Active segment: bright yellow #F5D169, fades to dark brown at edges (6-level palette)
- Active dino icon: 12% wheelSize (was 10%), uses DINO_ACTIVE_RADIUS for positioning
- segFill() computes color by distance from active index (circular wrap)
- Fixed angleForItem() → -((i+0.5)*360/n) so active segment always at 12 o'clock
- naturalDeg for icons = (i+0.5)*step to center icon within segment
- Added Baryonyx and Kosmoceratops real photo imageUrls
2026-05-31 13:14:19 +01:00
Vadym Samoilenko
abdef5e0bb
fix: DinoHero — correct bg #F2F5E8, dark text, green pills, T-Rex right col only
2026-05-31 12:53:41 +01:00
Vadym Samoilenko
b02954ef77
feat(dynopark): pixel-perfect Figma redesign of all 6 DinoXxx sections
...
CI / Type Check (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
Deploy / Build & Push Image (push) Has been cancelled
Deploy / Deploy to VPS (push) Has been cancelled
- DinoHero: dark bg (#1e1e1e), white text, T-Rex from /dynopark/, orange-amber circle
- DinoWheel: vertical layout (info → arch → photos), 25 dinos with real /dynopark/ images,
orange-framed photo gallery at bottom, responsive wheel size via useRef
- DinoGallery: updated fallback images to /dynopark/ real park photos
- DinoActivities: photo-overlay portrait cards, gradient, price badges, exact UA text;
sm:grid-cols-2 md:grid-cols-3 (project uses --breakpoint-lg: 1440px)
- DinoWhyVisit: photo carousel (Gemini park photos) replaces video default,
"ЗАРАЗ МИ ДІЗНАЄМОСЯ..." label overlay, exact accordion text from Figma
- DinoTickets: dark green #396817 + wave bg pattern, large price typography (64px/900),
"Забронювати пригоду" CTA, working hours banner, keeps cart functionality
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:39:41 +01:00
Vadym Samoilenko
7a26ace8e4
feat(dynopark): pixel-perfect Figma redesign of all 6 DinoXxx sections
...
- DinoHero: dark bg (#1e1e1e), white text, T-Rex from /dynopark/, orange-amber circle
- DinoWheel: vertical layout (info → arch → photos), 25 dinos with real /dynopark/ images,
orange-framed photo gallery at bottom, responsive wheel size via useRef
- DinoGallery: updated fallback images to /dynopark/ real park photos
- DinoActivities: photo-overlay portrait cards, gradient, price badges, exact UA text;
sm:grid-cols-2 md:grid-cols-3 (project uses --breakpoint-lg: 1440px)
- DinoWhyVisit: photo carousel (Gemini park photos) replaces video default,
"ЗАРАЗ МИ ДІЗНАЄМОСЯ..." label overlay, exact accordion text from Figma
- DinoTickets: dark green #396817 + wave bg pattern, large price typography (64px/900),
"Забронювати пригоду" CTA, working hours banner, keeps cart functionality
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:33:53 +01:00
Vadym Samoilenko
83d274f0ba
feat(pages): implement all 6 pages from Figma + fix nav dropdown
...
Pages implemented:
- grupovi-vidviduvannia: tilted polaroid banners, amenity grid, wave pricing, correct Figma tile pattern
- dni-narodzhennia: hero, package cards, pricing, order form
- kvytky: horizontal ticket rows with photos, tabs, combo, benefits accordion
- kvytky/dyakuiemo: SVG ticket shape with perforations
- dynozavry: DinoWheel 25 dinosaurs with real images + gallery (node 2004:560/568)
- HeroSlider: vertical slider with 6 slides
Components:
- DinoWheel: complete 25-dino dataset from Figma, orange semicircle SVG rotation, gallery below
- KvytkyTicketsClient: rewritten to horizontal row layout matching Figma
- HeaderClient: remove overflow-hidden clipping dropdown; add chevron indicator
- Header: inherit DEFAULT_NAV children when CMS has no children for that item
Fixes:
- Nav dropdown: CMS was overriding DEFAULT_NAV without children — now inherits
- Wave pattern: use correct Figma wave tile (wave-tile-correct.png, 657x868px) for .wave-bg-pricing
- Lokatsii nav links: ДиноПарк → /lokatsii/dynozavry, ДивоЛіс → /lokatsii/dyvolis
Assets: 35+ new images (dino-*, group-*, birthday-*, ticket-*, gallery)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:02:50 +01:00
Vadym Samoilenko
f317de7b0f
feat(assets): connect static images as fallbacks; fix location slug mapping
...
CI / Type Check (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
Deploy / Build & Push Image (push) Has been cancelled
Deploy / Deploy to VPS (push) Has been cancelled
- DinoGallery: add real park photos as static fallback (T-Rex, aerial, arch)
- DinoHero: use T-Rex PNG as fallback when no CMS heroImage uploaded
- Locations/lokatsii: add DB slug aliases (dzerkalnyi-labiryt→maze, tyr→tir,
maiydanchyk→playground) so all 5 locations get correct images
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 17:04:57 +01:00
Vadym Samoilenko
ef693589bc
fix(header,accordion): liquid-glass header + progress bar animation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 16:51:24 +01:00
Vadym Samoilenko
32e0f688d1
fix(header,sliders): solid green header + fix coverflow overflow clipping
...
- Header: remove liquid-glass transparency; solid #396817 background so header
no longer bleeds orange from the hero background
- GallerySlider/DinoGallery/DyvoLisGallery: change overflow-hidden to
overflowX:clip so side cards in 3D coverflow are visible
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 16:35:15 +01:00
Vadym Samoilenko
6863f5022d
feat(pages): redesign all 6 pages to match Figma designs with full CMS coverage
...
- Birthday: new pricing structure (component breakdown instead of packages),
packageItems with image upload per card, why/accordion CMS fields
- GroupVisits: all text/prices/images CMS-editable (heroDescription, amenities,
featureImages, workingHours, price, bottomImages, etc.)
- DyvoLis: fixed 404 (seed location record), combo tickets now show (600/1500/1800/2000)
- ThankYou: DyvoLis topiary background, 'Купити квиток' button text
- Tariffs: updated to match Figma (300/150/300/50 dyno + 4 combo variants)
- Seed: add DyvoLis location, correct hero text and section titles for home
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 16:27:24 +01:00
Vadym Samoilenko
095beb0303
fix(assets): rename assets to v2 to bust immutable browser cache; fix /images/ cache header
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
- Rename all new Figma 2026 assets to *-v2.webp so browsers load fresh
copies instead of serving year-old cached originals
- Change Cache-Control for /images/ from immutable (1 year) to
must-revalidate (1 day) — public/ files are mutable, not hashed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:13:44 +01:00
Vadym Samoilenko
0e732bfbd5
feat(home): apply Figma design — new hero + location photos, WhyParents gallery
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
- Hero: "Започаткуйте традицію:" title at 96px, subtitle 48px/Black
(щороку фотографуйтесь біля улюбленого динозавра); removed separate
T-Rex/family overlays — T-Rex now baked into hero-bg2
- WhyParents: replaced desktop auto-scroll photo gallery with 3 static
video thumbnail cards with play buttons (Figma Gallery_holder layout)
- Assets: replace hero + 5 location images with real 2026 park photos
from Figma; add why-parents-video.webp thumbnail
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:01:19 +01:00
Vadym Samoilenko
492f7934b6
feat(home): update hero typography + locations slider layout
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
- Hero: larger title (clamp to 120px), wider text block, adjusted padding
- LocationsSlider: overlay moved to left side, white text color, larger description
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 14:33:06 +01:00
Vadym Samoilenko
4cc6586366
fix(gallery): replace CSS scroll with 3D coverflow slider everywhere; fix migration SEO columns
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
- GallerySlider: rewrite to 3D coverflow (rotateY perspective, 3.5s auto-rotate,
dots + arrows, lightbox on center click) — matches DyvoLisGallery style
- migration 0006: add meta_title/description/image_id columns for seoPlugin
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 14:17:12 +01:00
Vadym Samoilenko
ef629dbdbe
feat(pages): add dinosaur park page + redesign birthday, group visits, thank-you
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
New pages:
- /lokatsii/dynozavry — DinosaurPage (static ISR): DinoHero, DinoWheel (interactive
8-species arc selector, auto-rotate 4s), DinoGallery, DinoActivities, DinoWhyVisit,
DinoTickets (ezy API dyno+combo categories)
- /kvytky/dyakuiemo — thank-you page with ticket-shaped card design
Redesigned pages:
- /dni-narodzhennia — new hero, "Що входить" 6-card section, WhyVisit accordion,
pricing grid from BirthdayPackages CMS, form preserved
- /grupovi-vidviduvannia — new hero overlay, description band, amenity 2x2 grid,
350 грн ticket card, bottom CTA section, form preserved
New CMS:
- DinosaurPage global (slug: dinosaur-page) with 7 array sub-tables
- migration 0006_dinosaur_page.sql — idempotent, creates all tables + dynozavry location
- seed/route.ts — seeds DinosaurPage global with 8 dino species defaults
- payload.config.ts — registers DinosaurPage in globals, seoPlugin, livePreview
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 13:28:52 +01:00
Vadym Samoilenko
5ca72de20f
fix(seed): fix TS cast for home-page guard
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 13:31:15 +01:00
Vadym Samoilenko
c07fd6913c
fix(seed): guard home-page update by checking existing content
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
Avoids invalid relationship errors when home-page already has data.
Only updates home-page on first seed when hero is absent.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 13:29:58 +01:00
Vadym Samoilenko
1f752a57b0
fix(seed): skip home-page update when media files unavailable in Docker
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
Prevents 500 error on prod where public/images/* aren't in the container.
Forms seeding and site-settings init can now proceed unblocked.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 13:26:37 +01:00
Vadym Samoilenko
fd55afd773
feat(migration): add 0004_form_builder.sql for prod SQL migrator
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
Extracts forms + form_submissions schema from TS migrations into
idempotent SQL so Dockerfile.migrator can apply it on production.
Also updates generated payload-types after form-builder plugin.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 13:21:06 +01:00
Vadym Samoilenko
85d2f7d16e
fix(forms): fix message render, confirmation text, radio disabled, placeholder, replyTo
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
- Replace dangerouslySetInnerHTML with extractLexicalText helper for message blocks
- Show CMS confirmationMessage text on success instead of hardcoded string
- Disable radio field in plugin config (not rendered in FormBlock)
- Remove placeholder from text/number/textarea/date seed fields (plugin ignores them)
- Replace {{email}} replyTo template with static manager email fallback
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:13:22 +01:00
Vadym Samoilenko
3ea4d95cc7
feat(seed): add GroupRequest and BirthdayBooking forms + assign to page globals
2026-05-18 12:08:34 +01:00
Vadym Samoilenko
42cb554de4
feat(forms): use FormBlock when form is set in CMS, fallback to hardcoded
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:07:04 +01:00
Vadym Samoilenko
32ca1dcd2a
fix(forms): use ternary className to preserve md:col-span-2 for full-width fields
2026-05-18 12:05:41 +01:00
Vadym Samoilenko
6e5e624345
feat(forms): add FormBlock component for form-builder rendering
2026-05-18 12:05:17 +01:00
Vadym Samoilenko
ff4ae6934c
feat(cms): add form relationship field to GroupVisitsPage and BirthdayPage
2026-05-18 11:58:21 +01:00
Vadym Samoilenko
4bda57b903
fix(cms): remove site-settings from livePreview + add label
2026-05-18 11:43:45 +01:00
Vadym Samoilenko
965ffc2084
fix(live-preview): fallback serverURL to localhost instead of empty string
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
postMessage with empty string origin throws "Invalid target origin ''"
Use same fallback as payload.config.ts — http://localhost:3000 .
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:46:55 +01:00
Vadym Samoilenko
1defcc13b0
fix(build): commit payload-types.ts and untrack from gitignore
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
payload-types.ts was gitignored so Docker builder had no file to compile
against — caused TS2307 "Cannot find module @/payload-types" in production
build. Regenerated types from current schema and removed from .gitignore
so it is always available in the build context.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:39:01 +01:00
Vadym Samoilenko
66f9a0d645
fix(build): remove .js extensions from payload.config imports + fix TS errors
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
payload.config.ts used explicit .js extensions on local imports which Turbopack
and webpack cannot resolve to .ts files without extensionAliases config. Revert
to extension-less imports (original pattern from first Payload commit) that both
bundlers handle natively.
Also fix two TypeScript strict-mode errors:
- seed/route.ts: doc.id (number) cast to string via String() instead of `as string`
- getHomeData.ts: Payload HomePage vs HomePageGlobal cast via `as unknown as`
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:34:38 +01:00
Vadym Samoilenko
55a3aafc27
feat(cms): admin UX — groups, timezone, title suffix
...
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
Add admin.group to all 24 globals/collections so the Payload Admin
sidebar is organized into logical sections (Сторінки, Контент сайту,
Каталог, Блог, Заявки та замовлення, Медіа, Система). Add admin.meta
titleSuffix '— Шуміленд CMS', defaultTimezone Europe/Kyiv, dateFormat
dd.MM.yyyy HH:mm.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 16:58:47 +01:00