import React, { useCallback, useState } from 'react'; import { useEditor } from '@craftjs/core'; import { useIsMobile } from '../../hooks/useIsMobile'; import { useMobileChrome } from '../../state/MobileChromeContext'; import { Container } from '../../components/layout/Container'; import { Section } from '../../components/layout/Section'; import { ColumnLayout } from '../../components/layout/ColumnLayout'; import { BackgroundSection } from '../../components/layout/BackgroundSection'; import { Heading } from '../../components/basic/Heading'; import { TextBlock } from '../../components/basic/TextBlock'; import { ButtonLink } from '../../components/basic/ButtonLink'; import { Logo } from '../../components/basic/Logo'; import { Menu } from '../../components/basic/Menu'; import { Footer } from '../../components/basic/Footer'; import { Divider } from '../../components/basic/Divider'; import { Spacer } from '../../components/basic/Spacer'; import { Icon } from '../../components/basic/Icon'; import { HtmlBlock } from '../../components/basic/HtmlBlock'; import { ImageBlock } from '../../components/media/ImageBlock'; import { VideoBlock } from '../../components/media/VideoBlock'; import { MapEmbed } from '../../components/media/MapEmbed'; import { HeroSimple } from '../../components/sections/HeroSimple'; import { FeaturesGrid } from '../../components/sections/FeaturesGrid'; import { CallToAction } from '../../components/sections/CallToAction'; import { Countdown } from '../../components/sections/Countdown'; import { Testimonials } from '../../components/sections/Testimonials'; import { Accordion } from '../../components/sections/Accordion'; import { Tabs } from '../../components/sections/Tabs'; import { PricingTable } from '../../components/sections/PricingTable'; import { Gallery } from '../../components/sections/Gallery'; import { ContentSlider } from '../../components/sections/ContentSlider'; import { NumberCounter } from '../../components/sections/NumberCounter'; import { FormContainer } from '../../components/forms/FormContainer'; import { InputField } from '../../components/forms/InputField'; import { TextareaField } from '../../components/forms/TextareaField'; import { FormButton } from '../../components/forms/FormButton'; import { ContactForm } from '../../components/forms/ContactForm'; import { SubscribeForm } from '../../components/forms/SubscribeForm'; import { StarRating } from '../../components/basic/StarRating'; import { SocialLinks } from '../../components/basic/SocialLinks'; interface BlockDef { id: string; label: string; icon: string; component: React.ReactElement; } interface CategoryDef { id: string; label: string; blocks: BlockDef[]; } const categories: CategoryDef[] = [ { id: 'basic', label: 'Basic', blocks: [ { id: 'heading', label: 'Heading', icon: 'fa-header', component: }, { id: 'text', label: 'Text', icon: 'fa-paragraph', component: }, { id: 'button', label: 'Button', icon: 'fa-square', component: }, { id: 'logo', label: 'Logo', icon: 'fa-bookmark', component: }, { id: 'menu', label: 'Menu', icon: 'fa-bars', component: }, { id: 'footer', label: 'Footer', icon: 'fa-window-minimize', component: