feat: init

This commit is contained in:
2026-05-08 22:49:12 +03:00
commit e383c3fdc5
84 changed files with 13640 additions and 0 deletions

View File

@@ -0,0 +1,168 @@
import {
CalendarDaysIcon,
ChefHatIcon,
ClockIcon,
LeafIcon,
MapPinIcon,
SparklesIcon,
StarIcon,
UserRoundIcon,
WineIcon,
} from "lucide-react";
export const site = {
name: "Juniper Table",
tagline:
"Сезонный ресторан с открытой кухней, точным сервисом, понятной бронью и вечерними сценариями от chef counter до private dining.",
cta: "Забронировать стол",
secondaryCta: "Смотреть меню",
heroImage: "https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=1400&q=82",
accentImage: "https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=1200&q=82",
nav: [
{ href: "/menu", label: "Меню" },
{ href: "/reservations", label: "Бронь" },
{ href: "/private-events", label: "События" },
{ href: "/about", label: "Кухня" },
{ href: "/contact", label: "Контакты" },
],
} as const;
export const serviceWindows = [
{ label: "Lunch", time: "12:00-16:00", note: "короткий сет и a la carte" },
{ label: "Dinner", time: "18:00-23:00", note: "основная посадка и chef counter" },
{ label: "Late table", time: "23:00-01:00", note: "бар, десерты и легкие блюда" },
] as const;
export const highlights = [
{ title: "Chef counter", value: "18 мест", text: "Посадка у открытой кухни с отдельным темпом подачи.", icon: ChefHatIcon },
{ title: "Сезон окна", value: "6 недель", text: "Меню меняется вокруг поставок фермеров и рыбы недели.", icon: LeafIcon },
{ title: "Pairing list", value: "120 этикеток", text: "Вино, сидр, малые хозяйства и non-alcohol pairing.", icon: WineIcon },
] as const;
export const menuSections = [
{
title: "Raw and starters",
note: "легкий старт, фермерские овощи, рыба, травы",
items: ["томатный тартар", "маринованная форель", "молодая свекла"],
},
{
title: "Fire and mains",
note: "рыба, птица, сезонные гарниры, соусы на бульонах",
items: ["палтус", "утиная грудка", "цветная капуста на углях"],
},
{
title: "Dessert and cellar",
note: "не слишком сладкий финал и pairing по желанию",
items: ["медовый крем", "ревень", "чайный pairing"],
},
] as const;
export const dishes = [
{
name: "Томатный тартар с копченой рикоттой",
price: "720 ₽",
tag: "starter",
section: "Raw and starters",
text: "Сладкие томаты, базилик, зеленый перец, холодное масло и хрустящий хлеб.",
allergens: "молоко, глютен",
pairing: "пет-нат rose",
image: "https://images.unsplash.com/photo-1504674900247-0877df9cc836?auto=format&fit=crop&w=1000&q=82",
},
{
name: "Палтус, фенхель и beurre blanc",
price: "1640 ₽",
tag: "signature",
section: "Fire and mains",
text: "Нежная рыба, цитрус, молодой картофель, травы и соус на белом вине.",
allergens: "рыба, молоко",
pairing: "chablis style",
image: "https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?auto=format&fit=crop&w=1000&q=82",
},
{
name: "Утиная грудка с вишней и сельдереем",
price: "1880 ₽",
tag: "main",
section: "Fire and mains",
text: "Хрустящая кожа, соус из красного вина, корень сельдерея и кислая вишня.",
allergens: "сельдерей",
pairing: "pinot noir",
image: "https://images.unsplash.com/photo-1559847844-5315695dadae?auto=format&fit=crop&w=1000&q=82",
},
{
name: "Медовый крем, тимьян и ревень",
price: "560 ₽",
tag: "dessert",
section: "Dessert and cellar",
text: "Легкий крем, соты, ревень, лимонная цедра и сухое послевкусие.",
allergens: "молоко, мед",
pairing: "oolong highball",
image: "https://images.unsplash.com/photo-1488477181946-6428a0291777?auto=format&fit=crop&w=1000&q=82",
},
] as const;
export const products = dishes;
export const tastingSets = [
{ title: "Lunch tempo", price: "1900 ₽", items: ["3 подачи", "до 16:00", "45-60 минут"] },
{ title: "Juniper tasting", price: "4900 ₽", items: ["7 подач", "chef counter", "pairing option"] },
{ title: "Private table", price: "от 12000 ₽", items: ["до 12 гостей", "персональное меню", "сомелье"] },
] as const;
export const seatingOptions = [
{ title: "Chef counter", seats: "18 мест", text: "Лучший выбор для пары или гостя, который хочет видеть кухню.", deposit: "без депозита до 4 гостей" },
{ title: "Dining room", seats: "46 мест", text: "Основной зал с тихим сервисом и свободным темпом ужина.", deposit: "депозит от 8 гостей" },
{ title: "Private room", seats: "10-18 гостей", text: "Отдельная комната для семейного или делового ужина.", deposit: "меню согласуется заранее" },
] as const;
export const eveningTimeline = [
{ time: "18:30", title: "Aperitif", text: "хост встречает гостей, уточняет ограничения и темп вечера" },
{ time: "19:00", title: "Menu choice", text: "a la carte, дегустационный сет или chef counter маршрут" },
{ time: "20:40", title: "Pairing and dessert", text: "вино, non-alcohol pairing, десерт или чайный финал" },
] as const;
export const pairingFlights = [
{ title: "Garden pairing", text: "травяной highball, сидр малой фермы, белый чай", price: "1500 ₽" },
{ title: "Cellar pairing", text: "малые винодельни, минеральные белые, легкий pinot", price: "2600 ₽" },
{ title: "No alcohol", text: "kombucha, verjus tonic, чайные настои и ягодные shrubs", price: "1100 ₽" },
] as const;
export const dietaryNotes = [
{ title: "Аллергии", text: "Укажите ограничения при бронировании. Кухня подтвердит безопасные замены до визита." },
{ title: "Vegetarian route", text: "Часть меню собирается без мяса и рыбы, но требует подтверждения кухни." },
{ title: "Kids and timing", text: "Для гостей с детьми лучше выбрать раннюю посадку и предупредить хоста заранее." },
] as const;
export const eventTypes = [
{ title: "Камерный ужин", text: "10-18 гостей, отдельный зал, сет-меню и тихий сервис.", icon: SparklesIcon },
{ title: "Wedding welcome", text: "Фуршет, raw bar, десертная станция и wine pairing.", icon: StarIcon },
{ title: "Corporate dinner", text: "Тайминг презентации, персональное меню и приватная команда зала.", icon: CalendarDaysIcon },
] as const;
export const privatePackages = [
{ title: "Family table", guests: "10-14 гостей", price: "от 85 000 ₽", details: ["set menu", "welcome drink", "общий стол"] },
{ title: "Board dinner", guests: "12-18 гостей", price: "от 140 000 ₽", details: ["private room", "presentation timing", "sommelier"] },
{ title: "Wedding evening", guests: "24-42 гостя", price: "по запросу", details: ["buyout window", "raw bar", "dessert station"] },
] as const;
export const suppliers = [
{ name: "Ферма Север", product: "зелень, корнеплоды", cadence: "2 раза в неделю" },
{ name: "Волга Рыба", product: "палтус, форель", cadence: "под меню недели" },
{ name: "Малые сады", product: "ягоды, ревень", cadence: "сезонное окно" },
] as const;
export const testimonials = [
{ name: "Анна К.", text: "Редкий ресторан, где сервис, свет и кухня работают как один вечер.", rating: "5.0" },
{ name: "Table Guide", text: "Juniper Table попадает в точку: спокойно, точно, без лишнего шума.", rating: "4.9" },
] as const;
export const contactCards = [
{ title: "Адрес", text: "Петровка, 17, Москва, вход через внутренний двор", icon: MapPinIcon },
{ title: "Часы кухни", text: "Пн-Чт 12:00-23:00, Пт-Вс 12:00-01:00", icon: ClockIcon },
{ title: "Хост", text: "+7 495 120-44-18, подтверждение брони до 20 минут", icon: UserRoundIcon },
] as const;
export const bookingRules = [
{ title: "Подтверждение", text: "Хост связывается в течение 20 минут в рабочее время." },
{ title: "Депозит", text: "Для компаний от 8 гостей депозит и меню обсуждаются заранее." },
{ title: "Ограничения", text: "Аллергии и dietary requests указываются до визита, чтобы кухня подтвердила замену." },
] as const;