diff --git a/src/app/features/business-dashboard/page.tsx b/src/app/features/business-dashboard/page.tsx index e227001..4037656 100644 --- a/src/app/features/business-dashboard/page.tsx +++ b/src/app/features/business-dashboard/page.tsx @@ -15,10 +15,15 @@ import { FileText } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import DashboardOne from '@/assets/features/dashboard/dashboard-1.webp'; +import DashboardTwo from '@/assets/features/dashboard/dashboard-2.webp'; + const BusinessDashboardPage = () => { return (
@@ -74,31 +79,26 @@ const BusinessDashboardPage = () => { {/* SECTION 2: ANALYTICS & REPORTING */}
- {/* Left: Illustration Graphic */} + {/* Left: Dashboard Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Business Dashboard Analysis +
+ {/* Right: Text Content */} + {/* Right: Text Content */}
@@ -150,7 +150,7 @@ const BusinessDashboardPage = () => { {/* SECTION 3: REAL-TIME PERFORMANCE (Dark) */}
-
+
{
{/* Abstract Graphic for Integrations */} -
-
- - {/* Central Hub */} -
-
Dashboard
-
- - {/* Connecting Lines */} -
-
- - {/* Satellite Nodes */} -
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
+ + Dine360 Integration Dashboard +
{/* QUICK NAV */} @@ -377,3 +356,6 @@ const BusinessDashboardPage = () => { }; export default BusinessDashboardPage; + + + diff --git a/src/app/features/inventory-management/page.tsx b/src/app/features/inventory-management/page.tsx index 6d36236..2ec6af9 100644 --- a/src/app/features/inventory-management/page.tsx +++ b/src/app/features/inventory-management/page.tsx @@ -18,10 +18,14 @@ import { ClipboardList } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import InventoryImage from '@/assets/features/inventory-management/inventory-management.webp'; + const InventoryManagementPage = () => { return (
@@ -76,31 +80,27 @@ const InventoryManagementPage = () => { {/* Lower Split Section matching the image */}
- {/* Left: Illustration Graphic */} + {/* Left: Inventory Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Inventory Management System +
+ {/* Right: Text Content */} + + + {/* Right: Text Content */}
diff --git a/src/app/features/invoicing/page.tsx b/src/app/features/invoicing/page.tsx index 113bbeb..3b170d2 100644 --- a/src/app/features/invoicing/page.tsx +++ b/src/app/features/invoicing/page.tsx @@ -27,10 +27,14 @@ import { History } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import InvoiceImage from '@/assets/features/invoice/invoice.webp'; + const InvoicingPage = () => { return (
@@ -88,26 +92,19 @@ const InvoicingPage = () => { {/* Left: Illustration Graphic */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Invoice Management +
{/* Right: Text Content */} diff --git a/src/app/features/kitchen-management/page.tsx b/src/app/features/kitchen-management/page.tsx index ed114de..464c078 100644 --- a/src/app/features/kitchen-management/page.tsx +++ b/src/app/features/kitchen-management/page.tsx @@ -15,10 +15,15 @@ import { ChefHat } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import KDSOne from '@/assets/features/kds-20260406T072434Z-1-001/kds/kds-1.webp'; +import KDSTwo from '@/assets/features/kds-20260406T072434Z-1-001/kds/kds-2.webp'; + const KitchenManagementPage = () => { return (
@@ -74,31 +79,26 @@ const KitchenManagementPage = () => { {/* SECTION 2: KITCHEN DISPLAY */}
- {/* Left: Illustration Graphic */} + {/* Left: KDS Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Kitchen Display System +
+ {/* Right: Text Content */} + {/* Right: Text Content */}
@@ -291,34 +291,23 @@ const KitchenManagementPage = () => {
- {/* Abstract Graphic for Integrations */} -
-
- - {/* Central Hub */} -
-
KDS
-
- - {/* Connecting Lines */} -
-
- - {/* Satellite Nodes */} -
-
-
-
-
-
-
-
-
-
-
-
-
+ {/* KDS Integration Image */} + + Dine360 KDS Integration + + + {/* QUICK NAV */} diff --git a/src/app/features/loyalty-management/page.tsx b/src/app/features/loyalty-management/page.tsx index 45077cd..5a78969 100644 --- a/src/app/features/loyalty-management/page.tsx +++ b/src/app/features/loyalty-management/page.tsx @@ -30,10 +30,15 @@ import { Star, RefreshCw, UserPlus } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import CRMOne from '@/assets/features/crm/crm-1.webp'; +import CRMTwo from '@/assets/features/crm/crm-2.webp'; + const LoyaltyManagementPage = () => { return (
@@ -88,29 +93,21 @@ const LoyaltyManagementPage = () => { {/* Lower Split Section */}
- {/* Left: Illustration Graphic */} + {/* Left: CRM Image One */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Customer Relationship Management +
{/* Right: Text Content */} @@ -165,14 +162,14 @@ const LoyaltyManagementPage = () => { {/* SECTION 3: CUSTOMER INSIGHTS (Professional Design) */}
{/* Decorative background elements */} -
+
- + Customer Insights

@@ -320,13 +317,19 @@ const LoyaltyManagementPage = () => {

{/* Abstract Graphic area - keeping structure as-is */} -
-
- -
- -
-
+ + Unified CRM +
{/* QUICK NAV */} @@ -356,4 +359,6 @@ const LoyaltyManagementPage = () => { ); }; -export default LoyaltyManagementPage; \ No newline at end of file +export default LoyaltyManagementPage; + + diff --git a/src/app/features/multi-menu-management/page.tsx b/src/app/features/multi-menu-management/page.tsx index 0958631..f6c056d 100644 --- a/src/app/features/multi-menu-management/page.tsx +++ b/src/app/features/multi-menu-management/page.tsx @@ -1,4 +1,4 @@ -'use client'; +'use client'; import { ArrowRight, @@ -17,10 +17,15 @@ import { Globe } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import MultiBranchOne from '@/assets/features/multi-branch/multi-branch-1.webp'; +import MultiBranchTwo from '@/assets/features/multi-branch/multi-branch-2.webp'; + const MultiBranchManagementPage = () => { return (
@@ -76,31 +81,27 @@ const MultiBranchManagementPage = () => { {/* SECTION 2: MULTI-LOCATION MANAGEMENT */}
- {/* Left: Illustration Graphic */} + {/* Left: Multi-Branch Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Multi-Branch Dashboard +
+ {/* Right: Text Content */} + + + {/* Right: Text Content */}
@@ -293,32 +294,16 @@ const MultiBranchManagementPage = () => {
- {/* Abstract Graphic for Integrations */} -
-
- - {/* Central Hub */} -
-
HUB
-
- - {/* Connecting Lines */} -
-
- - {/* Satellite Nodes */} -
- -
-
- -
-
- -
-
- -
+ {/* Multi-Branch Integration Image */} +
+ Dine360 Multi-Branch Integration +
diff --git a/src/app/features/order-management/page.tsx b/src/app/features/order-management/page.tsx index 8d94ec9..fea1d06 100644 --- a/src/app/features/order-management/page.tsx +++ b/src/app/features/order-management/page.tsx @@ -28,10 +28,15 @@ import { Utensils } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import SalesOne from '@/assets/features/sales/sales-1.webp'; +import SalesTwo from '@/assets/features/sales/sales-2.webp'; + const OrderManagementPage = () => { return (
@@ -89,26 +94,19 @@ const OrderManagementPage = () => { {/* Left: Illustration Graphic */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Sales Performance Dashboard +
{/* Right: Text Content */} @@ -268,13 +266,19 @@ const OrderManagementPage = () => {
{/* Abstract Graphic area - keeping structure as-is */} -
-
- -
- -
-
+ + Unified Sales Hub + {/* QUICK NAV */} diff --git a/src/app/features/pos/page.tsx b/src/app/features/pos/page.tsx index d074fbf..dbad67d 100644 --- a/src/app/features/pos/page.tsx +++ b/src/app/features/pos/page.tsx @@ -18,10 +18,14 @@ import { Target } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import POSImage from '@/assets/features/pos/pos.webp'; + const POSPage = () => { return (
@@ -79,54 +83,22 @@ const POSPage = () => { {/* SECTION 2: HARDWARE & MOBILE (Split Layout) */}
- {/* Left: Interactive Graphic */} + {/* Left: POS Image */}
-
-
- - {/* POS Screen Simulation */} -
-
-
-
D360
-
-
Checkout #4
-
12:45 PM | OPERATOR: SARAH
-
-
- -
- -
- {[ - { item: 'Margherita Pizza (Large)', price: '$18.00' }, - { item: 'Garlic Bread Sticks', price: '$6.50' }, - { item: 'Classic Cola', price: '$3.00' } - ].map((line, i) => ( -
- {line.item} - {line.price} -
- ))} -
- -
-
- Subtotal - $27.50 -
-
- Total - $29.84 -
-
- - -
-
+ + Dine360 POS System Terminal +
{/* Right: Content */} diff --git a/src/app/features/promotion-management/page.tsx b/src/app/features/promotion-management/page.tsx index 5d92b1a..4fa3db2 100644 --- a/src/app/features/promotion-management/page.tsx +++ b/src/app/features/promotion-management/page.tsx @@ -29,10 +29,14 @@ import { Truck } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import PromotionImage from '@/assets/features/purchase-promotions/purchase-promotions.webp'; + const PromotionManagementPage = () => { return (
@@ -87,29 +91,22 @@ const PromotionManagementPage = () => { {/* SECTION 2: SUPPLY MANAGEMENT */}
- {/* Left: Illustration Graphic */} + {/* Left: Promotion Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Purchase & Promotion Management +
{/* Right: Text Content */} diff --git a/src/app/features/promotions/page.tsx b/src/app/features/promotions/page.tsx index bc21b32..d550280 100644 --- a/src/app/features/promotions/page.tsx +++ b/src/app/features/promotions/page.tsx @@ -20,9 +20,14 @@ import { ArrowUpRight } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; +// Visual Assets +import PromotionOne from '@/assets/features/promotions/promotions-1.webp'; +import PromotionTwo from '@/assets/features/promotions/promotions-2.webp'; + const PromotionsPage = () => { return (
@@ -78,29 +83,22 @@ const PromotionsPage = () => { {/* SECTION 2: PROMOTION ENGINE */}
- {/* Left: Illustration Graphic */} + {/* Left: Promotion Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Smart Promotions System +
{/* Right: Text Content */} @@ -295,29 +293,16 @@ const PromotionsPage = () => {
- {/* Abstract Graphic for Integrations */} -
-
- - {/* Central Hub */} -
-
OFFER
-
- - {/* Orbiting Elements */} -
-
- - {/* Connection Points */} -
- -
-
- -
-
- -
+ {/* Promotion Integration Image */} +
+ Dine360 Promotion Integration +
diff --git a/src/app/features/qr-code-menu/page.tsx b/src/app/features/qr-code-menu/page.tsx index 37fbe94..b9b15fb 100644 --- a/src/app/features/qr-code-menu/page.tsx +++ b/src/app/features/qr-code-menu/page.tsx @@ -26,10 +26,15 @@ import { Tags } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import OnlineOrderingOne from '@/assets/features/online-ordering/online-ordering-1.webp'; +import OnlineOrderingTwo from '@/assets/features/online-ordering/online-ordering-2.webp'; + const QRCodeMenuPage = () => { return (
@@ -87,26 +92,19 @@ const QRCodeMenuPage = () => { {/* Left: Illustration Graphic */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + QR Code Menu +
{/* Right: Text Content */} @@ -189,23 +187,19 @@ const QRCodeMenuPage = () => {
-
-
-
- -

SCAN TO VIEW MENU

-
-
-
-
-
-
-
-
-
-
-
-
+ + Dynamic QR Menu +
diff --git a/src/app/features/restaurant-website/page.tsx b/src/app/features/restaurant-website/page.tsx index cf76f9a..c97a51f 100644 --- a/src/app/features/restaurant-website/page.tsx +++ b/src/app/features/restaurant-website/page.tsx @@ -14,10 +14,15 @@ import { CreditCard } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import SalesOne from '@/assets/features/sales/sales-1.webp'; +import SalesTwo from '@/assets/features/sales/sales-2.webp'; + const RestaurantWebsitePage = () => { return (
@@ -76,26 +81,19 @@ const RestaurantWebsitePage = () => { {/* Left: Illustration Graphic */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Online Ordering System +
{/* Right: Text Content */} @@ -291,15 +289,19 @@ const RestaurantWebsitePage = () => {
{/* Abstract Graphic for Integrations */} -
-
- - {/* Central Hub */} -
-
ONLINE
HUB
-
- - {/* Connecting Lines */} + + Sales Hub +
@@ -316,7 +318,7 @@ const RestaurantWebsitePage = () => {
-
+ {/* QUICK NAV */} diff --git a/src/app/features/table-reservation/page.tsx b/src/app/features/table-reservation/page.tsx index 99849e6..8829283 100644 --- a/src/app/features/table-reservation/page.tsx +++ b/src/app/features/table-reservation/page.tsx @@ -27,10 +27,14 @@ import { Tags } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import TableReservationImage from '@/assets/features/table-reservation/table-reseravtion.webp'; + const TableReservationPage = () => { return (
@@ -85,29 +89,25 @@ const TableReservationPage = () => { {/* SECTION 2: TABLE RESERVATION SPLIT */}
- {/* Left: Illustration Graphic */} + {/* Left: Table Reservation Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Table Reservation System + +
+ + {/* Right: Text Content */}
{/* Right: Text Content */} @@ -156,7 +156,7 @@ const TableReservationPage = () => {
-
+ {/* SECTION 3: FLOOR MANAGEMENT (Stats) */} diff --git a/src/app/features/team-communication/page.tsx b/src/app/features/team-communication/page.tsx index 40f77de..3efccbc 100644 --- a/src/app/features/team-communication/page.tsx +++ b/src/app/features/team-communication/page.tsx @@ -18,10 +18,14 @@ import { Flag } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import TeamCommImage from '@/assets/features/team-communiaction/team-communiaction.webp'; + const TeamCommunicationPage = () => { return (
@@ -80,44 +84,18 @@ const TeamCommunicationPage = () => {
{/* Left Graphics */}
-
- {/* Phone Frame mock */} -
-
- -
-
-
Kitchen Station
-
Order #102 is taking longer than 15 mins. Need assistance?
-
- -
-
Manager Alert
-
Table 12 just ordered a $400 bottle. VIP Protocol active.
-
- -
-
Shift Poll
-
Who's available for Sunday brunch double?
-
-
-
-
+3
-
-
-
- -
-
- - {/* Floating Elements */} -
- -
-
- -
-
+ + Dine360 Team Communication Mobile App +
{/* Right Content */} diff --git a/src/app/features/uber-integration/page.tsx b/src/app/features/uber-integration/page.tsx index d6d7cfb..cf78220 100644 --- a/src/app/features/uber-integration/page.tsx +++ b/src/app/features/uber-integration/page.tsx @@ -35,10 +35,14 @@ import { RefreshCw } from 'lucide-react'; import { motion } from 'framer-motion'; +import Image from 'next/image'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import FeatureQuickNav from '@/components/FeatureQuickNav'; +// Visual Assets +import UberImage from '@/assets/features/uber/uber.webp'; + const UberIntegrationPage = () => { return (
@@ -93,29 +97,21 @@ const UberIntegrationPage = () => { {/* SECTION 2: DELIVERY PLATFORM INTEGRATION */}
- {/* Left: Illustration Graphic */} + {/* Left: Uber Image */}
-
- {/* Central Icon */} -
- -
- - {/* Floating Icons */} -
- -
-
- -
-
- -
-
- -
-
+ + Dine360 Uber and Delivery Integration +
{/* Right: Text Content */} diff --git a/src/app/globals.css b/src/app/globals.css index d6cf76f..ed2a2b2 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -12,6 +12,12 @@ --font-mono: var(--font-geist-mono); --color-brand-red: #dc2626; --color-brand-cream: #f9f9f5; + --animate-infinite-scroll: infinite-scroll 40s linear infinite; + + @keyframes infinite-scroll { + from { transform: translateX(0); } + to { transform: translateX(-50%); } + } } body { diff --git a/src/app/restaurant-types/page.tsx b/src/app/restaurant-types/page.tsx index 25fe62a..f0fabc3 100644 --- a/src/app/restaurant-types/page.tsx +++ b/src/app/restaurant-types/page.tsx @@ -2,7 +2,12 @@ import React, { useState } from 'react' import Image from 'next/image' -import { ArrowUpRight, Zap, RefreshCw, Clock, Target, Truck, Coffee, Cloud, UtensilsCrossed, ChefHat, Gem, Users } from 'lucide-react' +import { + ArrowUpRight, Zap, RefreshCw, Clock, Target, Truck, Coffee, Cloud, + UtensilsCrossed, ChefHat, Gem, Users, Store, Beer, Flame, + Pizza, Sandwich, IceCream, Wine, Soup, Beef, Utensils, + ChevronLeft, ChevronRight, Layers +} from 'lucide-react' import { motion, AnimatePresence } from 'framer-motion' import Link from 'next/link' import Navbar from '@/components/Navbar' @@ -66,6 +71,102 @@ const RESTAURANT_TYPES = [ angle: 315, href: "/restaurant-types/family-style", }, + { + label: "Fast Casual", + icon: Flame, + description: "Combine speed with quality service. Our POS handles unique workflows for restaurants that bridge the gap between fast food and fine dining.", + href: "/restaurant-types/fast-casual", + }, + { + label: "Diner", + icon: Store, + description: "Classic desk service meets modern tech. Manage high-turnover seating, complicated breakfast orders, and multi-staff coordination with ease.", + href: "/restaurant-types/diner", + }, + { + label: "Pub", + icon: Beer, + description: "Built for busy bars and pubs. Track open tabs, manage age-restricted items, and handle lightning-fast counter rounds flawlessly.", + href: "/restaurant-types/pub", + }, + { + label: "Italian / Pizza", + icon: Pizza, + description: "Specialized for modifiers and toppings. Manage ingredient inventory, delivery zones, and custom modifiers with ease.", + href: "/restaurant-types/italian-pizza", + }, + { + label: "Steakhouse", + icon: Beef, + description: "Focus on precision. Manage specific meat aging, cooking temperatures, and premium wine pairings for high-ticket service.", + href: "/restaurant-types/steakhouse", + }, + { + label: "Seafood", + icon: Utensils, + description: "Handle fresh catch inventory, fluctuating market pricing, and seasonal menu changes with our flexible management system.", + href: "/restaurant-types/seafood", + }, + { + label: "Buffet", + icon: Layers, + description: "Optimized for self-service or staff-assisted buffets. Track wastage, manage entry payments, and monitor kitchen refill rates.", + href: "/restaurant-types/buffet", + }, + { + label: "Bistro", + icon: Wine, + description: "Small plates, big impact. Manage cozy seating layouts, rotating wine lists, and intimate guest experiences efficiently.", + href: "/restaurant-types/bistro", + }, + { + label: "Cafeteria", + icon: Soup, + description: "Built for institutional or corporate cafeterias. Handle meal plans, quick-tap payments, and large-scale bulk ordering.", + href: "/restaurant-types/cafeteria", + }, + { + label: "Teppanyaki", + icon: Flame, + description: "Experience-led dining. Sync chef stations with POS orders and manage theater-style seating arrangements.", + href: "/restaurant-types/teppanyaki", + }, + { + label: "Contemporary Casual", + icon: Zap, + description: "Modern tech for modern dining. Integrated QR ordering, mobile payments, and tableside service for trend-setting restaurants.", + href: "/restaurant-types/contemporary-casual", + }, + { + label: "Buffet", + icon: UtensilsCrossed, + description: "Manage large scale dining with ticket entry systems, kitchen replenishment notifications, and wastage tracking.", + href: "/restaurant-types/buffet", + }, + { + label: "Ghost Restaurant", + icon: Cloud, + description: "Virtual brands, real profits. Manage multiple digital storefronts from one kitchen and sync with all major delivery apps.", + href: "/restaurant-types/ghost-restaurant", + }, + { + label: "Delivery Only", + icon: Truck, + description: "Focus on the fleet. Optimize dispatching, track delivery times, and manage third-party integration from a single order screen.", + href: "/restaurant-types/delivery-only", + }, + { + label: "Concession", + icon: Sandwich, + description: "Built for stadiums and events. Handle extreme peak waves with offline-readiness and high-speed tap-to-pay processing.", + href: "/restaurant-types/concession", + }, + { + label: "Ice Cream Shop", + icon: IceCream, + description: "Cold treats, hot sales. Manage complex modifier chains, seasonal flavors, and high-frequency transactions with ease.", + href: "/restaurant-types/ice-cream-shop", + }, ] const HERO_IMAGES = [ @@ -111,6 +212,28 @@ const RESTAURANT_TYPE_EMOJIS: Record = { const RestaurantTypesPage = () => { const [hoveredIdx, setHoveredIdx] = useState(null) const [hoveredCardIdx, setHoveredCardIdx] = useState(null) + const [currentPage, setCurrentPage] = useState(0) + const [direction, setDirection] = useState(1) // 1 for next, -1 for previous + const itemsPerPage = 8 + const totalPages = Math.ceil(RESTAURANT_TYPES.length / itemsPerPage) + + const nextPage = () => { + setDirection(1) + setCurrentPage((prev) => (prev + 1) % totalPages) + } + + const prevPage = () => { + setDirection(-1) + setCurrentPage((prev) => (prev - 1 + totalPages) % totalPages) + } + + const currentItems = RESTAURANT_TYPES.slice( + currentPage * itemsPerPage, + (currentPage + 1) * itemsPerPage + ) + + const diagramItems = RESTAURANT_TYPES.slice(0, 8) + return (
@@ -468,8 +591,9 @@ const RestaurantTypesPage = () => { className="absolute inset-0 w-full h-full pointer-events-none" viewBox="0 0 580 580" > - {RESTAURANT_TYPES.map((type, idx) => { - const rad = (type.angle * Math.PI) / 180 + {diagramItems.map((type, idx) => { + const angle = type.angle ?? (idx * (360 / diagramItems.length)) + const rad = (angle * Math.PI) / 180 const r = 210 const rInner = 90 const x1 = 290 + rInner * Math.sin(rad) @@ -525,10 +649,10 @@ const RestaurantTypesPage = () => { className="flex flex-col items-center gap-2" > - {RESTAURANT_TYPES[hoveredIdx].label} + {diagramItems[hoveredIdx].label} - {RESTAURANT_TYPES[hoveredIdx].description} + {diagramItems[hoveredIdx].description} )} @@ -537,8 +661,9 @@ const RestaurantTypesPage = () => {
{/* Nodes */} - {RESTAURANT_TYPES.map((type, idx) => { - const rad = (type.angle * Math.PI) / 180 + {diagramItems.map((type, idx) => { + const angle = type.angle ?? (idx * (360 / diagramItems.length)) + const rad = (angle * Math.PI) / 180 const r = 210 const cx = 290 + r * Math.sin(rad) const cy = 290 - r * Math.cos(rad) @@ -591,82 +716,143 @@ const RestaurantTypesPage = () => { {/* ─── RESTAURANT TYPES CARD GRID ─────────────────────────────── */} -
-
+
+ {/* Subtle noise pattern for texture */} +
+ +
-

View All Types

-

Built for All Restaurant Types

+

Explore All Models

+

Designed For Every Scale

+
+ + +
+ {[...Array(totalPages)].map((_, i) => ( +
+ + +
-
- {RESTAURANT_TYPES.map((type, idx) => { - const isHovered = hoveredCardIdx === idx +
+ + + {currentItems.map((type, idx) => { + const isHovered = hoveredCardIdx === idx - return ( - - setHoveredCardIdx(idx)} - onMouseLeave={() => setHoveredCardIdx(null)} - > - {/* Background Glow Effect on Hover - Subtle warm tint */} -
- -
-
- -

- {type.label} -

-

- {type.description} -

- - - Learn More → - - - - ) - })} + setHoveredCardIdx(idx)} + onMouseLeave={() => setHoveredCardIdx(null)} + > + {/* Hover Accent Line */} +
+ +
+
+ +

+ {type.label} +

+ +

+ {type.description} +

+ +
+ + Learn More + +
+ + + ) + })} + +
diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index 1cdef63..636be52 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -1,5 +1,7 @@ import { MetadataRoute } from 'next' +export const dynamic = "force-static" + export default function sitemap(): MetadataRoute.Sitemap { const baseUrl = "https://dine360.vercel.app" diff --git a/src/assets/features/crm/crm-1.webp b/src/assets/features/crm/crm-1.webp new file mode 100644 index 0000000..b39b806 Binary files /dev/null and b/src/assets/features/crm/crm-1.webp differ diff --git a/src/assets/features/crm/crm-2.webp b/src/assets/features/crm/crm-2.webp new file mode 100644 index 0000000..cbee6fe Binary files /dev/null and b/src/assets/features/crm/crm-2.webp differ diff --git a/src/assets/features/dashboard/dashboard-1.webp b/src/assets/features/dashboard/dashboard-1.webp new file mode 100644 index 0000000..30601dc Binary files /dev/null and b/src/assets/features/dashboard/dashboard-1.webp differ diff --git a/src/assets/features/dashboard/dashboard-2.webp b/src/assets/features/dashboard/dashboard-2.webp new file mode 100644 index 0000000..19e48f5 Binary files /dev/null and b/src/assets/features/dashboard/dashboard-2.webp differ diff --git a/src/assets/features/inventory-management/inventory-management.webp b/src/assets/features/inventory-management/inventory-management.webp new file mode 100644 index 0000000..625b020 Binary files /dev/null and b/src/assets/features/inventory-management/inventory-management.webp differ diff --git a/src/assets/features/invoice/invoice.webp b/src/assets/features/invoice/invoice.webp new file mode 100644 index 0000000..b71e1ce Binary files /dev/null and b/src/assets/features/invoice/invoice.webp differ diff --git a/src/assets/features/kds-20260406T072434Z-1-001/kds/kds-1.webp b/src/assets/features/kds-20260406T072434Z-1-001/kds/kds-1.webp new file mode 100644 index 0000000..d532686 Binary files /dev/null and b/src/assets/features/kds-20260406T072434Z-1-001/kds/kds-1.webp differ diff --git a/src/assets/features/kds-20260406T072434Z-1-001/kds/kds-2.webp b/src/assets/features/kds-20260406T072434Z-1-001/kds/kds-2.webp new file mode 100644 index 0000000..2e69fd5 Binary files /dev/null and b/src/assets/features/kds-20260406T072434Z-1-001/kds/kds-2.webp differ diff --git a/src/assets/logo/dine360.jpeg b/src/assets/features/logo/dine360.jpeg similarity index 100% rename from src/assets/logo/dine360.jpeg rename to src/assets/features/logo/dine360.jpeg diff --git a/src/assets/features/multi-branch/multi-branch-1.webp b/src/assets/features/multi-branch/multi-branch-1.webp new file mode 100644 index 0000000..6f245fa Binary files /dev/null and b/src/assets/features/multi-branch/multi-branch-1.webp differ diff --git a/src/assets/features/multi-branch/multi-branch-2.webp b/src/assets/features/multi-branch/multi-branch-2.webp new file mode 100644 index 0000000..5ccc928 Binary files /dev/null and b/src/assets/features/multi-branch/multi-branch-2.webp differ diff --git a/src/assets/features/online-ordering/online-ordering-1.webp b/src/assets/features/online-ordering/online-ordering-1.webp new file mode 100644 index 0000000..81f5bbe Binary files /dev/null and b/src/assets/features/online-ordering/online-ordering-1.webp differ diff --git a/src/assets/features/online-ordering/online-ordering-2.webp b/src/assets/features/online-ordering/online-ordering-2.webp new file mode 100644 index 0000000..5355876 Binary files /dev/null and b/src/assets/features/online-ordering/online-ordering-2.webp differ diff --git a/src/assets/features/pos/pos.webp b/src/assets/features/pos/pos.webp new file mode 100644 index 0000000..826dd31 Binary files /dev/null and b/src/assets/features/pos/pos.webp differ diff --git a/src/assets/features/promotions/promotions-1.webp b/src/assets/features/promotions/promotions-1.webp new file mode 100644 index 0000000..f0d832d Binary files /dev/null and b/src/assets/features/promotions/promotions-1.webp differ diff --git a/src/assets/features/promotions/promotions-2.webp b/src/assets/features/promotions/promotions-2.webp new file mode 100644 index 0000000..cef3f94 Binary files /dev/null and b/src/assets/features/promotions/promotions-2.webp differ diff --git a/src/assets/features/purchase-promotions/purchase-promotions.webp b/src/assets/features/purchase-promotions/purchase-promotions.webp new file mode 100644 index 0000000..ee926c5 Binary files /dev/null and b/src/assets/features/purchase-promotions/purchase-promotions.webp differ diff --git a/src/assets/features/sales/sales-1.webp b/src/assets/features/sales/sales-1.webp new file mode 100644 index 0000000..72f3703 Binary files /dev/null and b/src/assets/features/sales/sales-1.webp differ diff --git a/src/assets/features/sales/sales-2.webp b/src/assets/features/sales/sales-2.webp new file mode 100644 index 0000000..77c61b2 Binary files /dev/null and b/src/assets/features/sales/sales-2.webp differ diff --git a/src/assets/features/table-reservation/table-reseravtion.webp b/src/assets/features/table-reservation/table-reseravtion.webp new file mode 100644 index 0000000..38af845 Binary files /dev/null and b/src/assets/features/table-reservation/table-reseravtion.webp differ diff --git a/src/assets/features/team-communiaction/team-communiaction.webp b/src/assets/features/team-communiaction/team-communiaction.webp new file mode 100644 index 0000000..1f8e84f Binary files /dev/null and b/src/assets/features/team-communiaction/team-communiaction.webp differ diff --git a/src/assets/features/uber/uber.webp b/src/assets/features/uber/uber.webp new file mode 100644 index 0000000..4cbcd3d Binary files /dev/null and b/src/assets/features/uber/uber.webp differ diff --git a/src/components/FeatureQuickNav.tsx b/src/components/FeatureQuickNav.tsx index 87999e1..628b162 100644 --- a/src/components/FeatureQuickNav.tsx +++ b/src/components/FeatureQuickNav.tsx @@ -1,6 +1,7 @@ 'use client'; import Link from 'next/link'; +import { motion } from 'framer-motion'; import { Monitor, BookOpen, @@ -9,46 +10,76 @@ import { Users, QrCode, Tag, - Layers + Layers, + LayoutDashboard, + ChefHat, + Heart, + FileText, + MessageSquare, + Bike, + TicketPercent } from 'lucide-react'; const navItems = [ - { name: 'POS', href: '/features/pos-management', icon: Monitor, color: 'bg-emerald-400' }, + { name: 'DASHBOARD', href: '/features/business-dashboard', icon: LayoutDashboard, color: 'bg-indigo-500' }, + { name: 'POS', href: '/features/pos', icon: Monitor, color: 'bg-emerald-400' }, { name: 'MENU', href: '/features/multi-menu-management', icon: BookOpen, color: 'bg-sky-400' }, { name: 'ORDERS', href: '/features/order-management', icon: ClipboardList, color: 'bg-orange-400' }, + { name: 'KITCHEN', href: '/features/kitchen-management', icon: ChefHat, color: 'bg-red-500' }, { name: 'TABLES', href: '/features/table-reservation', icon: Users, color: 'bg-purple-400' }, { name: 'WEBSITE', href: '/features/restaurant-website', icon: Globe, color: 'bg-emerald-500' }, + { name: 'LOYALTY', href: '/features/loyalty-management', icon: Heart, color: 'bg-pink-500' }, { name: 'QR CODE', href: '/features/qr-code-menu', icon: QrCode, color: 'bg-sky-500' }, + { name: 'INVOICING', href: '/features/invoicing', icon: FileText, color: 'bg-blue-500' }, { name: 'PROMO', href: '/features/promotion-management', icon: Tag, color: 'bg-orange-500' }, + { name: 'OFFERS', href: '/features/promotions', icon: TicketPercent, color: 'bg-yellow-500' }, { name: 'STOCK', href: '/features/inventory-management', icon: Layers, color: 'bg-purple-500' }, + { name: 'TEAM', href: '/features/team-communication', icon: MessageSquare, color: 'bg-teal-500' }, + { name: 'UBER', href: '/features/uber-integration', icon: Bike, color: 'bg-black' }, ]; const FeatureQuickNav = () => { + // Duplicate only once for CSS loop + const duplicatedItems = [...navItems, ...navItems]; + return ( -
-
-
-

Explore More Features

+
+
+
+

+ + Explore All Features + +

-
- {navItems.map((item) => ( +
+ +
+
+ {duplicatedItems.map((item, idx) => ( - {/* Colorful Top Border like the image */} -
+ {/* Colorful Top Border */} +
-
- +
+
- + {item.name} ))}
+ + {/* Gradient Overlays for smooth entry/exit fade */} +
+
); diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index ae3d4bc..1006c30 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -50,13 +50,8 @@ const Footer = () => { { name: "Inventory Management", href: "/features/inventory-management" }, { name: "Purchase & Promotions", href: "/features/promotion-management" }, { name: "Uber Integration", href: "/features/uber-integration" }, - { name: "Invoicing", href: "/features/invoicing" }, - { name: "POS Management", href: "/features/pos" }, - { name: "Promotions", href: "/features/promotions" }, - { name: "Website & Online Ordering", href: "/features/restaurant-website" }, - { name: "Business Dashboard", href: "/features/business-dashboard" }, - { name: "Multi-Branch Management", href: "/features/multi-menu-management" }, - { name: "Team Communication", href: "/features/team-communication" }, + { name: "view all pages ", href: "/features " }, + ]; const restaurantTypeLinks = [ @@ -67,23 +62,7 @@ const Footer = () => { { name: "Family Style Restaurant", href: "/restaurant-types/family-style" }, { name: "Fast Food Restaurant", href: "/restaurant-types/fast-food" }, { name: "Food Truck, Cart, or Stand", href: "/restaurant-types/food-truck" }, - { name: "Cafe", href: "/restaurant-types/cafe-bistro" }, - { name: "Buffet Restaurant", href: "/restaurant-types/buffet" }, - { name: "Pub", href: "/restaurant-types/pub" }, - { name: "Cafeteria", href: "/restaurant-types/cafeteria" }, - { name: "Coffee House", href: "/restaurant-types/coffee-house" }, - { name: "Diner", href: "/restaurant-types/diner" }, - { name: "Pop-Up Restaurant", href: "/restaurant-types/pop-up" }, - { name: "Contemporary Casual Restaurant", href: "/restaurant-types/contemporary-casual" }, - { name: "Bistro", href: "/restaurant-types/bistro" }, - { name: "Destination Restaurant", href: "/restaurant-types/destination" }, - { name: "Teppanyaki Grill", href: "/restaurant-types/teppanyaki" }, - { name: "Mongolian Barbecue", href: "/restaurant-types/mongolian-bbq" }, - { name: "Concession Stand", href: "/restaurant-types/concession" }, - { name: "Digital-Only Restaurant", href: "/restaurant-types/digital-only" }, - { name: "Theme Restaurant", href: "/restaurant-types/theme" }, - { name: "Bakery", href: "/restaurant-types/bakery" }, - { name: "Delivery-Only Restaurant", href: "/restaurant-types/delivery-only" }, + { name: "view all pages", href: "/restaurant-types" }, ]; return ( @@ -147,10 +126,10 @@ const Footer = () => { initial="hidden" whileInView="visible" viewport={{ once: true }} - className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-12 gap-12" + className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-12 lg:gap-8" > {/* Column 1: Brand */} - +

Dine 360 @@ -181,7 +160,7 @@ const Footer = () => { {/* Column 2: Quick Links */} - +

Quick Links

@@ -190,7 +169,7 @@ const Footer = () => { {links.map((link, i) => (
  • - + {link.name}
  • @@ -199,92 +178,41 @@ const Footer = () => { {/* Column 3: Features */} - +

    Features

    -
    - - -
    +
    -
    + {/* Column 4: Restaurant Types */} + +
    +

    Restaurant Types

    +
    +
    + +
    - {/* 2nd Main Row: Restaurant Types */} - -
    -

    Restaurant Types

    -
    -
    - -
    - - - - -
    @@ -292,7 +220,7 @@ const Footer = () => {

    - © All Copyright 2024 by Dine 360 + © All Copyright 2026 by Dine 360

    Terms & Condition diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index cc3e78f..7976bda 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -3,7 +3,7 @@ import { useState, useEffect } from 'react'; import Link from 'next/link'; import Image from 'next/image'; -import Logo from '@/assets/logo/dine360.jpeg'; +import Logo from '../../public/dine360.jpeg'; import { motion, AnimatePresence } from 'framer-motion'; import { Monitor,