Merge version_2_1781569401267 into main
Merge version_2_1781569401267 into main
This commit was merged in pull request #1.
This commit is contained in:
@@ -1,283 +1,36 @@
|
||||
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import { Award, CheckCircle, Heart, Star } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroOverlayMarquee
|
||||
tag="地域で愛される本格カレー"
|
||||
title="インドカレー ラッキーへようこそ"
|
||||
description="本格的なスパイスとモチモチのナン。心温まる接客で、皆さまのご来店をお待ちしております。"
|
||||
primaryButton={{
|
||||
text: "メニューを見る",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "店舗情報",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
text: "バターチキンカレー",
|
||||
icon: CheckCircle,
|
||||
},
|
||||
{
|
||||
text: "おかわり自由のナン",
|
||||
icon: CheckCircle,
|
||||
},
|
||||
{
|
||||
text: "フレンドリーな接客",
|
||||
icon: CheckCircle,
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hot-tendir-bread-table_140725-4758.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutFeaturesSplit
|
||||
tag="私たちのこだわり"
|
||||
title="「以前よりおいしく」を追い求めて"
|
||||
description="私たちは、常に進化し続ける本格カレーをお届けしています。スパイスの調合からナン焼きまで、一つ一つこだわった一皿をご堪能ください。"
|
||||
items={[
|
||||
{
|
||||
icon: Star,
|
||||
title: "こだわりのスパイス",
|
||||
description: "本格的なスパイスを使用したコク深いカレー。",
|
||||
},
|
||||
{
|
||||
icon: Award,
|
||||
title: "モチモチのナン",
|
||||
description: "おかわり自由。焼きたてのモチモチ食感。",
|
||||
},
|
||||
{
|
||||
icon: Heart,
|
||||
title: "親切な接客",
|
||||
description: "笑顔とフレンドリーなサービスを大切に。",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/side-view-friends-enjoying-dinner-party_52683-132612.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesTaggedCards
|
||||
tag="当店が選ばれる理由"
|
||||
title="心地よいひとときを"
|
||||
description="家族連れにも安心、地域密着の人気店です。"
|
||||
items={[
|
||||
{
|
||||
tag: "家族で楽しめる",
|
||||
title: "お子様連れ歓迎",
|
||||
description: "広々とした席で安心してお食事をお楽しみください。",
|
||||
primaryButton: {
|
||||
text: "詳しく",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/italian-focaccia-with-rosemary_123827-22230.jpg",
|
||||
},
|
||||
{
|
||||
tag: "定番メニュー",
|
||||
title: "本格インドカレー",
|
||||
description: "定番のバターチキンなど多数ご用意。",
|
||||
primaryButton: {
|
||||
text: "詳しく",
|
||||
href: "#products",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arrangement-different-pakistan-goodies_23-2148821571.jpg",
|
||||
},
|
||||
{
|
||||
tag: "地域密着",
|
||||
title: "リピーター続出",
|
||||
description: "地元のお客様に愛され続けています。",
|
||||
primaryButton: {
|
||||
text: "詳しく",
|
||||
href: "#testimonials",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/adults-enjoying-mexican-food_23-2149663832.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="おすすめメニュー"
|
||||
title="定番から限定まで"
|
||||
description="リピーター様にも大人気のメニューラインナップ。"
|
||||
items={[
|
||||
{
|
||||
title: "バターチキンカレー",
|
||||
description: "濃厚でクリーミーな一番人気のカレーです。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-delicious-food-bowl_23-2148728101.jpg",
|
||||
},
|
||||
{
|
||||
title: "ほうれん草チキン",
|
||||
description: "ヘルシーでスパイス香る絶品の一皿。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pork-green-curry-brown-bowl-with-spices-black-cement-background_1150-35206.jpg",
|
||||
},
|
||||
{
|
||||
title: "スパイシーラム",
|
||||
description: "ラム肉の旨味をスパイスで引き立てます。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/traditional-georgian-veal-dish-chashushuli-stewed-meat-with-onions-peppers-wooden-table_166373-6563.jpg",
|
||||
},
|
||||
{
|
||||
title: "バスマティライス",
|
||||
description: "カレーとの相性抜群の香り高いお米。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pan-with-rice-near-spices_23-2147894755.jpg",
|
||||
},
|
||||
{
|
||||
title: "タンドリーチキン",
|
||||
description: "スパイスをじっくり漬け込み焼き上げました。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-close-up-view-fried-chicken-along-with-fresh-vegetables-brown-wooden-desk_140725-14234.jpg",
|
||||
},
|
||||
{
|
||||
title: "サモサ",
|
||||
description: "サクサクの皮に包まれたスパイシーな逸品。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-tasty-cooked-rice-with-meatballs-different-seasonings-dark_140725-104448.jpg",
|
||||
},
|
||||
{
|
||||
title: "マンゴーラッシー",
|
||||
description: "カレーの後にぴったりの甘いデザートドリンク。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/herbs-with-cup-drink-blue_114579-29048.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="お客様の声"
|
||||
title="皆さまからの評判"
|
||||
description="地域の皆さまから愛されているお店の理由です。"
|
||||
testimonials={[
|
||||
{
|
||||
name: "佐藤様",
|
||||
role: "リピーター",
|
||||
quote: "カレーもナンも最高!店長さんもフレンドリーで居心地がいいです。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-smiling_93675-133804.jpg",
|
||||
},
|
||||
{
|
||||
name: "鈴木様",
|
||||
role: "家族連れ",
|
||||
quote: "子供連れでも安心して入れるのが嬉しい。味も本格的で大満足です。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-friends-dinner-party_23-2150648938.jpg",
|
||||
},
|
||||
{
|
||||
name: "高橋様",
|
||||
role: "常連さん",
|
||||
quote: "以前より味がさらに良くなった気がします。いつもありがとうございます。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-retro-vintage-50-s-cafe-sitting-table-drinking-milk-shake-cocktail-black-leather-jacket-wearing-pink-sunglasses_285396-10322.jpg",
|
||||
},
|
||||
{
|
||||
name: "伊藤様",
|
||||
role: "会社員",
|
||||
quote: "ランチがとてもお得でおいしいです。ナンのおかわりができるのが最高。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/distracted-student-sitting-class_1153-23.jpg",
|
||||
},
|
||||
{
|
||||
name: "渡辺様",
|
||||
role: "地域住民",
|
||||
quote: "とにかくナンがモチモチで大好きです。定期的に通わせてもらっています。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/business-woman-having-lunch-cafe_1303-23874.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingMediaCards
|
||||
tag="メニュー価格"
|
||||
title="手頃でボリューミーなランチ"
|
||||
description="お腹も心も満たされるランチメニューをご用意しています。"
|
||||
plans={[
|
||||
{
|
||||
tag: "ランチ限定",
|
||||
price: "¥850〜",
|
||||
period: "ランチセット",
|
||||
features: [
|
||||
"お好みのカレー",
|
||||
"焼きたてナン(おかわり可)",
|
||||
"サラダ・ドリンク付き",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "予約する",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/chicken-tikka-masala-with-rice-naan_23-2152002828.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="よくある質問"
|
||||
title="ご不明な点はありますか?"
|
||||
description="お気軽にご相談ください。"
|
||||
items={[
|
||||
{
|
||||
question: "カードや電子マネーは使えますか?",
|
||||
answer: "現在は現金のみのご対応となっております。ご不便をおかけしますがご了承ください。",
|
||||
},
|
||||
{
|
||||
question: "辛さの調整はできますか?",
|
||||
answer: "可能です。注文時にご希望の辛さをお伝えください。",
|
||||
},
|
||||
{
|
||||
question: "駐車場はありますか?",
|
||||
answer: "店舗周辺に数台分ご用意しております。混雑時は公共交通機関のご利用をおすすめします。",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="ご来店予約"
|
||||
text="皆さまのご来店を心よりお待ちしております。"
|
||||
primaryButton={{
|
||||
text: "電話予約する",
|
||||
href: "tel:00-0000-0000",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "店舗へのアクセス",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
39
src/pages/HomePage/sections/About.tsx
Normal file
39
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
|
||||
import { Award, CheckCircle, Heart, Star } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutFeaturesSplit
|
||||
tag="私たちのこだわり"
|
||||
title="「以前よりおいしく」を追い求めて"
|
||||
description="私たちは、常に進化し続ける本格カレーをお届けしています。スパイスの調合からナン焼きまで、一つ一つこだわった一皿をご堪能ください。"
|
||||
items={[
|
||||
{
|
||||
icon: Star,
|
||||
title: "こだわりのスパイス",
|
||||
description: "本格的なスパイスを使用したコク深いカレー。",
|
||||
},
|
||||
{
|
||||
icon: Award,
|
||||
title: "モチモチのナン",
|
||||
description: "おかわり自由。焼きたてのモチモチ食感。",
|
||||
},
|
||||
{
|
||||
icon: Heart,
|
||||
title: "親切な接客",
|
||||
description: "笑顔とフレンドリーなサービスを大切に。",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/side-view-friends-enjoying-dinner-party_52683-132612.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
80
src/pages/HomePage/sections/Contact.tsx
Normal file
80
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,80 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import Button from "@/components/ui/Button";
|
||||
|
||||
const primaryButton = {
|
||||
text: "電話予約する",
|
||||
href: "tel:0176-51-3040"
|
||||
};
|
||||
const secondaryButton = {
|
||||
text: "Googleマップで開く",
|
||||
href: "https://maps.google.com/?q=青森県十和田市三本木191−5"
|
||||
};
|
||||
|
||||
const ContactInline = () => {
|
||||
return (
|
||||
<section aria-label="Contact section" className="py-20">
|
||||
<div className="w-content-width mx-auto">
|
||||
<ScrollReveal variant="fade-blur">
|
||||
<div className="flex flex-col lg:flex-row items-center gap-8 lg:gap-12 py-12 px-8 rounded card">
|
||||
<div className="flex flex-col items-start gap-4 flex-1 w-full">
|
||||
<div className="px-3 py-1 mb-1 text-sm bg-background rounded w-fit border border-border">
|
||||
<p>{"ご来店予約・アクセス"}</p>
|
||||
</div>
|
||||
|
||||
<TextAnimation
|
||||
text={"皆さまのご来店を心よりお待ちしております。"}
|
||||
variant="fade-blur"
|
||||
gradientText={false}
|
||||
tag="h2"
|
||||
className="text-3xl md:text-4xl leading-[1.2] font-semibold text-balance text-foreground"
|
||||
/>
|
||||
|
||||
<div className="flex flex-col gap-3 mt-4 text-muted-foreground text-lg">
|
||||
<p className="flex items-start gap-2">
|
||||
<span className="font-semibold min-w-[5rem] text-foreground">住所:</span>
|
||||
<span>〒034-0001<br/>青森県十和田市三本木191−5</span>
|
||||
</p>
|
||||
<p className="flex items-center gap-2">
|
||||
<span className="font-semibold min-w-[5rem] text-foreground">電話番号:</span>
|
||||
<span>0176-51-3040</span>
|
||||
</p>
|
||||
<p className="flex items-center gap-2">
|
||||
<span className="font-semibold min-w-[5rem] text-foreground">営業時間:</span>
|
||||
<span>11:00〜</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-wrap gap-3 mt-6">
|
||||
<Button text={primaryButton.text} href={primaryButton.href} variant="primary" />
|
||||
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary" animationDelay={0.1} />
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-1 w-full h-[350px] lg:h-[450px] rounded-lg overflow-hidden border border-border shadow-sm">
|
||||
<iframe
|
||||
src="https://maps.google.com/maps?q=青森県十和田市三本木191−5&t=&z=15&ie=UTF8&iwloc=&output=embed"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style={{ border: 0 }}
|
||||
allowFullScreen={true}
|
||||
loading="lazy"
|
||||
referrerPolicy="no-referrer-when-downgrade"
|
||||
title="Google Map - インドカレー ラッキー"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function ContactSection() {
|
||||
return (
|
||||
<div data-webild-section="contact" id="contact">
|
||||
<ContactInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="よくある質問"
|
||||
title="ご不明な点はありますか?"
|
||||
description="お気軽にご相談ください。"
|
||||
items={[
|
||||
{
|
||||
question: "カードや電子マネーは使えますか?",
|
||||
answer: "現在は現金のみのご対応となっております。ご不便をおかけしますがご了承ください。",
|
||||
},
|
||||
{
|
||||
question: "辛さの調整はできますか?",
|
||||
answer: "可能です。注文時にご希望の辛さをお伝えください。",
|
||||
},
|
||||
{
|
||||
question: "駐車場はありますか?",
|
||||
answer: "店舗周辺に数台分ご用意しております。混雑時は公共交通機関のご利用をおすすめします。",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Features.tsx
Normal file
52
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesTaggedCards
|
||||
tag="当店が選ばれる理由"
|
||||
title="心地よいひとときを"
|
||||
description="家族連れにも安心、地域密着の人気店です。"
|
||||
items={[
|
||||
{
|
||||
tag: "家族で楽しめる",
|
||||
title: "お子様連れ歓迎",
|
||||
description: "広々とした席で安心してお食事をお楽しみください。",
|
||||
primaryButton: {
|
||||
text: "詳しく",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/italian-focaccia-with-rosemary_123827-22230.jpg",
|
||||
},
|
||||
{
|
||||
tag: "定番メニュー",
|
||||
title: "本格インドカレー",
|
||||
description: "定番のバターチキンなど多数ご用意。",
|
||||
primaryButton: {
|
||||
text: "詳しく",
|
||||
href: "#products",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arrangement-different-pakistan-goodies_23-2148821571.jpg",
|
||||
},
|
||||
{
|
||||
tag: "地域密着",
|
||||
title: "リピーター続出",
|
||||
description: "地元のお客様に愛され続けています。",
|
||||
primaryButton: {
|
||||
text: "詳しく",
|
||||
href: "#testimonials",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/adults-enjoying-mexican-food_23-2149663832.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
44
src/pages/HomePage/sections/Hero.tsx
Normal file
44
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,44 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
|
||||
import { Award, CheckCircle, Heart, Star } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroOverlayMarquee
|
||||
tag="地域で愛される本格カレー"
|
||||
title="インドカレー ラッキーへようこそ"
|
||||
description="本格的なスパイスとモチモチのナン。心温まる接客で、皆さまのご来店をお待ちしております。"
|
||||
primaryButton={{
|
||||
text: "メニューを見る",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "店舗情報",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
text: "バターチキンカレー",
|
||||
icon: CheckCircle,
|
||||
},
|
||||
{
|
||||
text: "おかわり自由のナン",
|
||||
icon: CheckCircle,
|
||||
},
|
||||
{
|
||||
text: "フレンドリーな接客",
|
||||
icon: CheckCircle,
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hot-tendir-bread-table_140725-4758.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Pricing.tsx
Normal file
37
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "pricing" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingMediaCards
|
||||
tag="メニュー価格"
|
||||
title="手頃でボリューミーなランチ"
|
||||
description="お腹も心も満たされるランチメニューをご用意しています。"
|
||||
plans={[
|
||||
{
|
||||
tag: "ランチ限定",
|
||||
price: "¥850〜",
|
||||
period: "ランチセット",
|
||||
features: [
|
||||
"お好みのカレー",
|
||||
"焼きたてナン(おかわり可)",
|
||||
"サラダ・ドリンク付き",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "予約する",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/chicken-tikka-masala-with-rice-naan_23-2152002828.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Products.tsx
Normal file
64
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "products" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProductsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="おすすめメニュー"
|
||||
title="定番から限定まで"
|
||||
description="リピーター様にも大人気のメニューラインナップ。"
|
||||
items={[
|
||||
{
|
||||
title: "バターチキンカレー",
|
||||
description: "濃厚でクリーミーな一番人気のカレーです。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-delicious-food-bowl_23-2148728101.jpg",
|
||||
},
|
||||
{
|
||||
title: "ほうれん草チキン",
|
||||
description: "ヘルシーでスパイス香る絶品の一皿。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pork-green-curry-brown-bowl-with-spices-black-cement-background_1150-35206.jpg",
|
||||
},
|
||||
{
|
||||
title: "スパイシーラム",
|
||||
description: "ラム肉の旨味をスパイスで引き立てます。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/traditional-georgian-veal-dish-chashushuli-stewed-meat-with-onions-peppers-wooden-table_166373-6563.jpg",
|
||||
},
|
||||
{
|
||||
title: "バスマティライス",
|
||||
description: "カレーとの相性抜群の香り高いお米。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pan-with-rice-near-spices_23-2147894755.jpg",
|
||||
},
|
||||
{
|
||||
title: "タンドリーチキン",
|
||||
description: "スパイスをじっくり漬け込み焼き上げました。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-close-up-view-fried-chicken-along-with-fresh-vegetables-brown-wooden-desk_140725-14234.jpg",
|
||||
},
|
||||
{
|
||||
title: "サモサ",
|
||||
description: "サクサクの皮に包まれたスパイシーな逸品。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-tasty-cooked-rice-with-meatballs-different-seasonings-dark_140725-104448.jpg",
|
||||
},
|
||||
{
|
||||
title: "マンゴーラッシー",
|
||||
description: "カレーの後にぴったりの甘いデザートドリンク。",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/herbs-with-cup-drink-blue_114579-29048.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="お客様の声"
|
||||
title="皆さまからの評判"
|
||||
description="地域の皆さまから愛されているお店の理由です。"
|
||||
testimonials={[
|
||||
{
|
||||
name: "佐藤様",
|
||||
role: "リピーター",
|
||||
quote: "カレーもナンも最高!店長さんもフレンドリーで居心地がいいです。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-smiling_93675-133804.jpg",
|
||||
},
|
||||
{
|
||||
name: "鈴木様",
|
||||
role: "家族連れ",
|
||||
quote: "子供連れでも安心して入れるのが嬉しい。味も本格的で大満足です。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-friends-dinner-party_23-2150648938.jpg",
|
||||
},
|
||||
{
|
||||
name: "高橋様",
|
||||
role: "常連さん",
|
||||
quote: "以前より味がさらに良くなった気がします。いつもありがとうございます。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-retro-vintage-50-s-cafe-sitting-table-drinking-milk-shake-cocktail-black-leather-jacket-wearing-pink-sunglasses_285396-10322.jpg",
|
||||
},
|
||||
{
|
||||
name: "伊藤様",
|
||||
role: "会社員",
|
||||
quote: "ランチがとてもお得でおいしいです。ナンのおかわりができるのが最高。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/distracted-student-sitting-class_1153-23.jpg",
|
||||
},
|
||||
{
|
||||
name: "渡辺様",
|
||||
role: "地域住民",
|
||||
quote: "とにかくナンがモチモチで大好きです。定期的に通わせてもらっています。",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/business-woman-having-lunch-cafe_1303-23874.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user