{"success":true,"data":{"block":{"id":"contact-catering","name":"Contact Catering Inquiry","title":"Contact Catering Inquiry","category":"Contact","categorySlug":"contact","description":"A catering inquiry form with event type selection, guest count, date picker, dietary restrictions checkboxes, and venue information. Ideal for catering and event planning businesses.","thumbnail":{"desktop":"https://cdn.ing/assets/i/r/290563/zj1h6nmh50psa4rbiic0mjdv2a3b/contact-catering-desktop.png","mobile":"https://cdn.ing/assets/i/r/290564/hwril66be59ssgr01f0w51b16t6a/contact-catering-mobile.png"},"componentPath":"blocks/contact/contact-catering.tsx","code":"\"use client\";\n\nimport { ContactCatering } from \"@opensite/ui/blocks/contact/contact-catering\";\nimport { demoFormEngineApi } from \"@/lib/form-demo-data\";\nimport type { FormFieldConfig } from \"@opensite/ui\";\n\nconst formFields: FormFieldConfig[] = [\n  {\n    name: \"name\",\n    type: \"text\",\n    label: \"Full Name\",\n    placeholder: \"Full Name\",\n    required: true,\n    columnSpan: 6,\n  },\n  {\n    name: \"company\",\n    type: \"text\",\n    label: \"Company/Organization\",\n    placeholder: \"Company name (optional)\",\n    required: false,\n    columnSpan: 6,\n  },\n  {\n    name: \"email\",\n    type: \"email\",\n    label: \"Email Address\",\n    placeholder: \"your@email.com\",\n    required: true,\n    columnSpan: 6,\n  },\n  {\n    name: \"phone\",\n    type: \"tel\",\n    label: \"Phone Number\",\n    placeholder: \"+1 (555) 000-0000\",\n    required: true,\n    columnSpan: 6,\n  },\n  {\n    name: \"event_type\",\n    type: \"radio\",\n    label: \"Event Type\",\n    required: true,\n    columnSpan: 12,\n    layout: \"grid\",\n    options: [\n      {\n        value: \"wedding\",\n        label: \"Wedding\",\n        description: \"Wedding reception or ceremony.\",\n      },\n      {\n        value: \"corporate\",\n        label: \"Corporate Event\",\n        description: \"Business meeting, conference, or party.\",\n      },\n      {\n        value: \"birthday\",\n        label: \"Birthday Party\",\n        description: \"Birthday celebration.\",\n      },\n      {\n        value: \"other\",\n        label: \"Other Event\",\n        description: \"Something else not listed.\",\n      },\n    ],\n  },\n  {\n    name: \"event_date\",\n    type: \"date-picker\",\n    label: \"Event Date\",\n    placeholder: \"Select event date\",\n    required: true,\n    columnSpan: 6,\n  },\n  {\n    name: \"guest_count\",\n    type: \"select\",\n    label: \"Number of Guests\",\n    required: true,\n    columnSpan: 6,\n    options: [\n      {\n        value: \"10-25\",\n        label: \"10-25 guests\",\n      },\n      {\n        value: \"25-50\",\n        label: \"25-50 guests\",\n      },\n      {\n        value: \"50-100\",\n        label: \"50-100 guests\",\n      },\n      {\n        value: \"100-200\",\n        label: \"100-200 guests\",\n      },\n      {\n        value: \"200+\",\n        label: \"200+ guests\",\n      },\n    ],\n  },\n  {\n    name: \"menu_type\",\n    type: \"checkbox-group\",\n    label: \"Menu Preferences\",\n    placeholder: \"Select menu types\",\n    required: false,\n    columnSpan: 12,\n    layout: \"grid\",\n    options: [\n      {\n        value: \"appetizers\",\n        label: \"Appetizers\",\n        description: \"Hors d'oeuvres and starters.\",\n      },\n      {\n        value: \"buffet\",\n        label: \"Buffet\",\n        description: \"Self-serve buffet style.\",\n      },\n      {\n        value: \"plated\",\n        label: \"Plated Dinner\",\n        description: \"Formal plated service.\",\n      },\n      {\n        value: \"dessert\",\n        label: \"Dessert\",\n        description: \"Desserts and sweets.\",\n      },\n      {\n        value: \"bar\",\n        label: \"Bar Service\",\n        description: \"Beverage and bar services.\",\n      },\n    ],\n  },\n  {\n    name: \"dietary_restrictions\",\n    type: \"text\",\n    label: \"Dietary Restrictions\",\n    placeholder: \"Vegetarian, vegan, gluten-free, etc.\",\n    required: false,\n    columnSpan: 12,\n  },\n  {\n    name: \"content\",\n    type: \"textarea\",\n    label: \"Additional Details\",\n    placeholder: \"Tell us more about your event, special requests, venue location, etc...\",\n    required: false,\n    rows: 5,\n    columnSpan: 12,\n  },\n];\n\nexport default function Demo() {\n  return (\n    <ContactCatering\n      heading=\"Request a Catering Quote\"\n      description=\"Planning an event? Let us handle the food! Fill out the form below and we'll provide you with a custom quote within 24 hours.\"\n      formEngineSetup={{\n        api: demoFormEngineApi,\n        fields: formFields,\n        successMessage: \"Thank you for your catering inquiry! We'll review your event details and send you a custom quote within 24 hours.\",\n        formLayoutSettings: {\n          submitButtonSetup: {\n            submitLabel: \"Get Quote\",\n          },\n        },\n      }}\n      background=\"gray\"\n      pattern=\"dashedGridFadeTopLeft\"\n      patternOpacity={0.3}\n    />\n  );\n}","propsSchema":{"heading":{"type":"object","description":"Main heading content","typeLabel":"React.ReactNode","required":false},"description":{"type":"object","description":"Description text below the heading","typeLabel":"React.ReactNode","required":false},"className":{"type":"string","description":"Additional CSS classes for the section","required":false},"containerClassName":{"type":"string","description":"Additional CSS classes for the container","required":false},"headerClassName":{"type":"string","description":"Additional CSS classes for the header wrapper","required":false},"headingClassName":{"type":"string","description":"Additional CSS classes for the heading","required":false},"descriptionClassName":{"type":"string","description":"Additional CSS classes for the description","required":false},"cardClassName":{"type":"string","description":"Additional CSS classes for the card","required":false},"cardContentClassName":{"type":"string","description":"Additional CSS classes for the card content","required":false},"background":{"type":"string","description":"Background style for the section","typeLabel":"SectionBackground","required":false},"spacing":{"type":"object","description":"Vertical spacing for the section","fields":{},"typeLabel":"SectionSpacing","required":false},"pattern":{"type":"object","description":"Optional background pattern name or URL","fields":{},"typeLabel":"PatternName","required":false},"patternOpacity":{"type":"number","description":"Pattern overlay opacity (0-1)","required":false},"formEngineSetup":{"type":"object","description":"Full form engine setup and props","typeLabel":"FormEngineProps","required":false},"sectionId":{"type":"string","description":"Optional Section ID","required":false}},"defaultProps":{},"dependencies":["@opensite/ui","@page-speed/forms"],"tags":["contact","catering","events","form","inquiry","dietary","event-planning"],"performance":{},"importantUsageNotes":"Ensure to follow the form implementation requirements properly (correct field types, labels, validation, and submit handling). The form fields shown in the demo are calibrated for a catering quote request use case — name, company (optional), email, phone, event type radio, event date picker, guest count select, menu preferences checkbox-group, dietary restrictions, and additional details textarea — do not change the field set unless the site has clearly different requirements. Ensure to only supply a valid set of contact data points (email, phone, address, etc), DO NOT make up any contact data. Follow the example props closely for this block."}},"timestamp":"2026-05-13T10:41:23.278Z"}