Commit Graph

45 Commits

Author SHA1 Message Date
9d0b4b0fba fix: sticky sidebar nav in admin panel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 14:06:01 +03:00
fc523b2045 feat: same-time checkbox for multi-day class groups
- "Одинаковое время" checkbox (default on) syncs time across all days
- Uncheck to set per-day times (e.g., Mon 12:00, Fri 18:00)
- Checkbox only appears when 2+ days selected
- Single day: just shows one time field, no checkbox
- Unified day selector for both new and edit modes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:52:59 +03:00
bfa59a8d18 feat: flexible group management in schedule editor
- Group = trainer + type (time-independent)
- Edit modal shows per-day time fields (Mon 12:00, Fri 18:00)
- Calendar blocks colored by group, not class type
- Color picker for site dots moved to classes editor
- New class: single time + multi-day selector
- Edit class: per-day times, add/remove days from group
- Delete removes group from all days

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 21:31:05 +03:00
b5262b4adc feat: group-based day management in schedule editor
- Auto-detect class groups (same trainer + type + time across days)
- Edit modal shows all group days pre-selected (e.g., ВТ/ПТ both lit)
- Toggle days to add/remove class from specific days
- Delete removes class from all days in the group
- New class modal lets you pick multiple days at once
- Visual hints: green +day / red −day for pending changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 20:51:20 +03:00
5c23b622f9 feat: unique color picker for class types in schedule editor
- Add clickable color picker in schedule legend (16 distinct colors)
- Two-pass smart assignment: explicit colors first, then unused palette slots
- Hide already-used colors from the picker (both explicit and fallback)
- Colors saved to classes section and flow to public site schedule dots
- Expanded palette: rose, orange, amber, yellow, lime, emerald, teal, cyan,
  sky, blue, indigo, violet, purple, fuchsia, pink, red

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 20:16:26 +03:00
85c61cfacd fix: remove card-body drag from ArrayEditor form cards
Card-body drag was causing accidental drags in complex form cards
(classes, FAQ, pricing). Keep grip-icon-only drag for ArrayEditor,
card-body drag remains on team page (simple cards).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 19:10:42 +03:00
27ef3bd694 fix: setState-during-render error + hover highlight on cards
Defer onChange call in ArrayEditor drag drop to queueMicrotask to
avoid calling parent setState inside React updater. Add hover
highlight on draggable cards for better visual feedback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 19:07:16 +03:00
b145d5416a feat: improved drag-and-drop UX + long-press card drag + no text selection
- Drag from grip icon (instant) or card body (8px movement threshold)
- Floating clone + placeholder at drop position
- Disable text selection during drag
- Auto-resize textareas, hidden scrollbar/resize handle
- Dark admin scrollbar styles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 19:02:01 +03:00
e6c7bcf7f4 fix: auto-resize textareas + dark scrollbar in admin editors
Textareas auto-grow with content and on window resize, no scrollbar
or resize handle needed. Added dark admin scrollbar styles for cases
where overflow is needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 18:48:12 +03:00
ed5a164d59 feat: drag-and-drop reordering + auto-save for admin editors
Replace arrow buttons with mouse-based drag-and-drop in ArrayEditor
and team page. Dragged card follows cursor with floating clone, empty
placeholder shows at drop position. SectionEditor now auto-saves with
800ms debounce instead of manual save button.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 18:40:33 +03:00
27c1348f89 feat: admin panel with SQLite, auth, and calendar-style schedule editor
Complete admin panel for content management:
- SQLite database with better-sqlite3, seed script from content.ts
- Simple password auth with HMAC-signed cookies (Edge + Node compatible)
- 9 section editors: meta, hero, about, team, classes, schedule, pricing, FAQ, contact
- Team CRUD with image upload and drag reorder
- Schedule editor with Google Calendar-style visual timeline (colored blocks, overlap detection, click-to-add)
- All public components refactored to accept data props from DB (with fallback to static content)
- Middleware protecting /admin/* and /api/admin/* routes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 16:59:12 +03:00
d5afaf92ba refactor: centralize gold tokens, extract sub-components, clean up unused code
- Replace hardcoded hex colors with gold/gold-light/gold-dark Tailwind tokens
- Extract Schedule into DayCard, ScheduleFilters, MobileSchedule sub-components
- Extract Team into TeamCarousel, TeamMemberInfo sub-components
- Add UI_CONFIG for centralized magic numbers (timings, thresholds)
- Add reusable IconBadge component, simplify Contact section
- Convert Pricing clickable divs to semantic buttons for a11y
- Remove unused SocialLinks, btn-outline, btn-ghost, nav-link CSS classes
- Fix React setState-during-render error in TeamCarousel (deferred update pattern)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 14:57:39 +03:00
08e4af1d55 feat: dark map theme (invert filter) + vertically center contact grid
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:45:04 +03:00
7ff850f21a feat: clickable price cards open booking modal + smooth showcase transitions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:33:37 +03:00
e5fae578ab fix: booking modal positioning — use portal to render in document.body
Also make header full-width (remove max-w-6xl constraint).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:18:25 +03:00
a4dc8173fc feat: global booking button — header nav, mobile menu, floating CTA
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:22:12 +03:00
13b68484e1 feat: phone input mask with +375 prefix and auto-formatting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:18:07 +03:00
0c8c45dcd9 feat: booking modal with form + Instagram DM + phone link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:16:21 +03:00
d5b1873f83 fix: schedule grid columns for Машерова — use literal Tailwind classes
Dynamic class concatenation ("xl:grid-cols-" + n) isn't detected by
Tailwind's scanner. Use explicit literal class names for 5/6/7 columns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:08:38 +03:00
e42c3c7a51 feat: FAQ section redesign — compact cards, expand/collapse, bigger text
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:05:56 +03:00
8fbbc94024 feat: redesign pricing section with card grid, featured unlimited plan
- Subscription cards in responsive grid (1/2/3 cols)
- Popular badge with sparkle floating above first card
- Unlimited plan as featured card with glitter border and crown icon
- Rental items as individual rounded cards
- Rules in numbered card layout

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:58:43 +03:00
f2b840416d feat: glitter border on team/class cards, mobile-friendly class selector
- Animated gold border glitter effect on active team card and class image
- Classes selector: 2-column grid on mobile (no scroll), list on desktop
- Selector appears above detail on mobile (flex-col-reverse)
- Compact selector items on mobile (icon + name only)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:55:09 +03:00
303c52653c feat: tap-to-filter on mobile schedule, replace filter bar
On mobile, tapping a trainer name or class type in the agenda list
filters to show all their sessions across the week. Active filter
shown as a banner with clear button. Desktop filters unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:10:58 +03:00
22a59ae9af feat: mobile-optimized schedule with compact agenda list view
Mobile shows all days as a vertical timeline with compact class rows
(time + trainer + type on each line). Desktop keeps the card grid.
Filters are horizontally scrollable on mobile.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:07:18 +03:00
8d2f482e99 feat: add schedule section with location tabs, filters, and status badges
Two locations (Притыцкого 62/М, Машерова 17/4) with day-grid layout,
class type/trainer/status filters, and badges for availability and recruiting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:47:59 +03:00
233c117afa feat: team spotlight carousel with drag, auto-rotate, and progress dots
- Spotlight stage effect with center card lit up, side cards dimmed
- Continuous drag navigation with pointer events
- Auto-rotation every 4.5s, pauses on interaction
- Interpolated card positions (size, opacity, brightness, grayscale)
- Progress dots navigation
- Fix About stats: 13 → 16 trainers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:00:39 +03:00
fed99f27b5 fix: update team count from 13 to 16 in About stats
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:19:23 +03:00
26e78edf5c feat: about stats cards, pricing popular badge, back-to-top button
- About: add 3 stat cards (13 trainers, 6 styles, 2 locations)
- Pricing: highlight first plan with gold "Популярный" badge
- BackToTop: floating gold button appears after 600px scroll

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 13:25:53 +03:00
3ff69d6945 feat: FAQ two-column layout, team swipe & counter, showcase improvements
- FAQ: split into 2 columns on desktop to reduce section height
- Team: remove description line-clamp, show full bio
- ShowcaseLayout: add swipe navigation on mobile, optional counter
- Counter shows current/total with gold accent styling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 13:22:47 +03:00
0b2d3310af feat: highlight active section in header nav on scroll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 13:15:22 +03:00
96081ccfe3 fix: remove white border line from header on scroll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 13:01:59 +03:00
c28c9a05a8 feat: glitter sparkles on heart, metallic gold text across all headings
- Add animated gold sparkle dots on heart surface with glow filter
- Brighten heart metal fill for better visibility against dark bg
- Update headline gradient to dark metallic gold (no white tones)
- Apply gradient-text to all section headings for consistency
- Warm gold subtitle color in hero

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:55:31 +03:00
04963fb0de feat: smooth circular gold border animation on heart logo
Split heart SVG into 3 sub-paths with independent staggered
stroke-dashoffset animations for continuous gold glint effect.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:40:47 +03:00
0ed0a91161 feat: showcase layout, photo filter, team specializations, scroll UX
- Replace modals with ShowcaseLayout for Team and Classes sections
- Add warm photo filter matching dark/gold color scheme
- Replace generic "Тренер" with actual specializations per member
- Fix heart logo color animation loop (seamless repeat)
- Style scrollbar with gold theme, pause auto-rotation on hover
- Auto-scroll only when active item is out of view

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:23:11 +03:00
a75922c730 feat: Instagram data sync, gold accent, SVG logo, FAQ & Pricing sections
- Sync all content from Instagram: fix addresses, trainer names, add 5 new
  trainers, remove 2 inactive, update class descriptions
- Add FAQ section (11 Q&A items) and Pricing section (tabs: subscriptions,
  rental, rules)
- Redesign with editorial magazine feel: centered headings, generous spacing,
  section glow effects, glassmorphism cards
- Migrate entire accent palette from rose to warm gold (#c9a96e)
- Replace low-res PNG logo with vector SVG traced via potrace — crisp at any
  size, animated gradient (black↔gold), heartbeat pulse animation
- Make header brand name gold

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:45:50 +03:00
9cf09b6894 feat: dark luxury redesign with black heart branding
Complete visual overhaul: dark-only mode, rose/crimson accent system,
glassmorphism header, animated hero with floating hearts and glow orbs,
photo-backed cards, infinite team carousel with drag support,
redesigned modals with hero images, black heart logo with rose glow silhouette.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:30:10 +03:00
1f6e314af6 feat: add class modal with descriptions, photos and remove email from contacts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:41:58 +03:00
86a04bb8c0 feat: add team member modal with descriptions
Click on a team card to see a popup with larger photo, Instagram link,
and personal description. All 13 team members now have descriptions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:20:29 +03:00
dcb31415bc style: update team cards layout and Instagram links
Remove role text, add clickable Instagram usernames with icon,
and align card heights consistently.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:48:48 +03:00
9f1697fd93 feat: add real content and team photos from Notion
Add 13 team members with photos and Instagram links, 6 class types,
real contact info with two addresses, and Yandex Maps with markers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:30:33 +03:00
0cbb818b72 feat: add real content from Notion page
Fill in team members, classes, contact info, and Yandex Maps with
actual data from the BLACK HEART DANCE HOUSE Notion page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:44:04 +03:00
e861c49870 style: reduce section padding for tighter layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 18:34:00 +03:00
3ecc6c592a feat: add favicon and remove logo background
Replace default Next.js favicon with the Blackheart logo. Remove white
background from logo PNG for proper transparency in dark mode. Add
unoptimized prop to next/image to preserve alpha channel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 18:26:48 +03:00
f263765597 feat: BLACK HEART DANCE HOUSE landing page
Landing page with Hero, About, Team, Classes, and Contact sections.
Light/dark mode, scroll reveal animations, Yandex Maps, responsive design.
Next.js 16 + Tailwind v4 + TypeScript.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:45:37 +03:00
0588f3fd95 Initial commit from Create Next App 2026-03-04 17:45:37 +03:00