@xiwebdesign/xicms-core 7.30.0 → 8.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/XiCMSProvider.js +22 -7
- package/dist/XiCMSProvider.js.map +1 -1
- package/dist/admin/AdminApp.js +175 -93
- package/dist/admin/AdminApp.js.map +1 -1
- package/dist/admin/AdminHelp.d.ts +1 -1
- package/dist/admin/AdminHelp.js +44 -36
- package/dist/admin/AdminHelp.js.map +1 -1
- package/dist/admin/CoreVersion.d.ts +6 -3
- package/dist/admin/CoreVersion.js +60 -24
- package/dist/admin/CoreVersion.js.map +1 -1
- package/dist/admin/NewsEditor.d.ts +7 -0
- package/dist/admin/NewsEditor.js +117 -75
- package/dist/admin/NewsEditor.js.map +1 -1
- package/dist/admin/SuperadminPanel.js +1 -1
- package/dist/admin/SuperadminPanel.js.map +1 -1
- package/dist/admin/ZoekPalet.d.ts +15 -0
- package/dist/admin/ZoekPalet.js +123 -0
- package/dist/admin/ZoekPalet.js.map +1 -0
- package/dist/admin/blockEditors/GenericEditor.js +36 -18
- package/dist/admin/blockEditors/GenericEditor.js.map +1 -1
- package/dist/admin/blockEditors/StyleEditor.js +37 -3
- package/dist/admin/blockEditors/StyleEditor.js.map +1 -1
- package/dist/admin/blockEditors/SymbolRefEditor.js +44 -2
- package/dist/admin/blockEditors/SymbolRefEditor.js.map +1 -1
- package/dist/admin/blockEditors/index.js +154 -73
- package/dist/admin/blockEditors/index.js.map +1 -1
- package/dist/admin/customBlocks/CustomBlocksPanel.js +18 -7
- package/dist/admin/customBlocks/CustomBlocksPanel.js.map +1 -1
- package/dist/admin/dashboard/DashboardPanel.js +26 -16
- package/dist/admin/dashboard/DashboardPanel.js.map +1 -1
- package/dist/admin/editors/RichTextEditor.d.ts +4 -3
- package/dist/admin/editors/RichTextEditor.js +19 -56
- package/dist/admin/editors/RichTextEditor.js.map +1 -1
- package/dist/admin/editors/fontSizeExtension.js +7 -1
- package/dist/admin/editors/fontSizeExtension.js.map +1 -1
- package/dist/admin/editors/slashMenu.d.ts +18 -0
- package/dist/admin/editors/slashMenu.js +34 -0
- package/dist/admin/editors/slashMenu.js.map +1 -0
- package/dist/admin/editors/useRijkeTekst.d.ts +48 -0
- package/dist/admin/editors/useRijkeTekst.js +310 -0
- package/dist/admin/editors/useRijkeTekst.js.map +1 -0
- package/dist/admin/forms/FormsPanel.d.ts +11 -2
- package/dist/admin/forms/FormsPanel.js +218 -65
- package/dist/admin/forms/FormsPanel.js.map +1 -1
- package/dist/admin/lib/blokInfo.d.ts +17 -0
- package/dist/admin/lib/blokInfo.js +80 -0
- package/dist/admin/lib/blokInfo.js.map +1 -0
- package/dist/admin/lib/foutNaarMens.d.ts +1 -0
- package/dist/admin/lib/foutNaarMens.js +22 -0
- package/dist/admin/lib/foutNaarMens.js.map +1 -0
- package/dist/admin/lib/gewisteVelden.d.ts +13 -0
- package/dist/admin/lib/gewisteVelden.js +31 -0
- package/dist/admin/lib/gewisteVelden.js.map +1 -0
- package/dist/admin/lib/heroHulp.d.ts +11 -0
- package/dist/admin/lib/heroHulp.js +18 -0
- package/dist/admin/lib/heroHulp.js.map +1 -0
- package/dist/admin/lib/kleur.js +2 -3
- package/dist/admin/lib/kleur.js.map +1 -1
- package/dist/admin/lib/leesbaarheid.d.ts +34 -0
- package/dist/admin/lib/leesbaarheid.js +82 -0
- package/dist/admin/lib/leesbaarheid.js.map +1 -0
- package/dist/admin/lib/lengteAdvies.d.ts +1 -0
- package/dist/admin/lib/lengteAdvies.js +16 -0
- package/dist/admin/lib/lengteAdvies.js.map +1 -0
- package/dist/admin/lib/mediaLijst.d.ts +26 -0
- package/dist/admin/lib/mediaLijst.js +42 -0
- package/dist/admin/lib/mediaLijst.js.map +1 -0
- package/dist/admin/lib/mediaUsage.d.ts +12 -1
- package/dist/admin/lib/mediaUsage.js +43 -33
- package/dist/admin/lib/mediaUsage.js.map +1 -1
- package/dist/admin/lib/menuHulp.d.ts +16 -0
- package/dist/admin/lib/menuHulp.js +41 -0
- package/dist/admin/lib/menuHulp.js.map +1 -0
- package/dist/admin/lib/onopgeslagen.d.ts +10 -0
- package/dist/admin/lib/onopgeslagen.js +35 -0
- package/dist/admin/lib/onopgeslagen.js.map +1 -0
- package/dist/admin/lib/pagesClient.d.ts +55 -2
- package/dist/admin/lib/pagesClient.js +126 -28
- package/dist/admin/lib/pagesClient.js.map +1 -1
- package/dist/admin/lib/paginaGebruik.d.ts +56 -0
- package/dist/admin/lib/paginaGebruik.js +109 -0
- package/dist/admin/lib/paginaGebruik.js.map +1 -0
- package/dist/admin/lib/publicatieCheck.d.ts +25 -0
- package/dist/admin/lib/publicatieCheck.js +114 -0
- package/dist/admin/lib/publicatieCheck.js.map +1 -0
- package/dist/admin/lib/scrollNaarDetail.d.ts +6 -0
- package/dist/admin/lib/scrollNaarDetail.js +20 -0
- package/dist/admin/lib/scrollNaarDetail.js.map +1 -0
- package/dist/admin/lib/symbolsClient.d.ts +10 -0
- package/dist/admin/lib/symbolsClient.js +14 -1
- package/dist/admin/lib/symbolsClient.js.map +1 -1
- package/dist/admin/lib/tekstVeld.d.ts +8 -0
- package/dist/admin/lib/tekstVeld.js +10 -0
- package/dist/admin/lib/tekstVeld.js.map +1 -0
- package/dist/admin/lib/useIsSuperadmin.d.ts +2 -0
- package/dist/admin/lib/useIsSuperadmin.js +13 -0
- package/dist/admin/lib/useIsSuperadmin.js.map +1 -0
- package/dist/admin/lib/veldTaal.d.ts +14 -0
- package/dist/admin/lib/veldTaal.js +247 -0
- package/dist/admin/lib/veldTaal.js.map +1 -0
- package/dist/admin/lib/versieVergelijk.d.ts +17 -0
- package/dist/admin/lib/versieVergelijk.js +24 -0
- package/dist/admin/lib/versieVergelijk.js.map +1 -0
- package/dist/admin/lib/zodFields.js +22 -4
- package/dist/admin/lib/zodFields.js.map +1 -1
- package/dist/admin/lib/zodFout.d.ts +9 -0
- package/dist/admin/lib/zodFout.js +63 -0
- package/dist/admin/lib/zodFout.js.map +1 -0
- package/dist/admin/media/MediaManager.js +162 -32
- package/dist/admin/media/MediaManager.js.map +1 -1
- package/dist/admin/media/MediaPicker.d.ts +3 -0
- package/dist/admin/media/MediaPicker.js +84 -31
- package/dist/admin/media/MediaPicker.js.map +1 -1
- package/dist/admin/menu/MenuPanel.js +144 -83
- package/dist/admin/menu/MenuPanel.js.map +1 -1
- package/dist/admin/navContext.d.ts +3 -0
- package/dist/admin/navContext.js +13 -1
- package/dist/admin/navContext.js.map +1 -1
- package/dist/admin/pages/PageEditor.js +146 -30
- package/dist/admin/pages/PageEditor.js.map +1 -1
- package/dist/admin/pages/PagesPanel.js +215 -61
- package/dist/admin/pages/PagesPanel.js.map +1 -1
- package/dist/admin/pages/StarterKiezer.d.ts +12 -0
- package/dist/admin/pages/StarterKiezer.js +113 -0
- package/dist/admin/pages/StarterKiezer.js.map +1 -0
- package/dist/admin/panelRegistry.d.ts +1 -1
- package/dist/admin/panelRegistry.js +2 -1
- package/dist/admin/panelRegistry.js.map +1 -1
- package/dist/admin/patterns/PatternInserter.js +1 -1
- package/dist/admin/patterns/PatternInserter.js.map +1 -1
- package/dist/admin/settings/BedrijfInstellingen.d.ts +20 -0
- package/dist/admin/settings/BedrijfInstellingen.js +144 -0
- package/dist/admin/settings/BedrijfInstellingen.js.map +1 -0
- package/dist/admin/settings/MailSettings.js +2 -2
- package/dist/admin/settings/MailSettings.js.map +1 -1
- package/dist/admin/settings/MailTemplates.js +5 -4
- package/dist/admin/settings/MailTemplates.js.map +1 -1
- package/dist/admin/settings/SettingsPanel.js +120 -78
- package/dist/admin/settings/SettingsPanel.js.map +1 -1
- package/dist/admin/settings/SnapshotsCard.js +4 -4
- package/dist/admin/settings/SnapshotsCard.js.map +1 -1
- package/dist/admin/settings/VorigeTerugzetten.d.ts +15 -0
- package/dist/admin/settings/VorigeTerugzetten.js +89 -0
- package/dist/admin/settings/VorigeTerugzetten.js.map +1 -0
- package/dist/admin/shop/CategoriesTab.js +6 -4
- package/dist/admin/shop/CategoriesTab.js.map +1 -1
- package/dist/admin/shop/DiscountsTab.js +4 -2
- package/dist/admin/shop/DiscountsTab.js.map +1 -1
- package/dist/admin/shop/OrdersTab.js +57 -19
- package/dist/admin/shop/OrdersTab.js.map +1 -1
- package/dist/admin/shop/ProductPaneel.js +2 -1
- package/dist/admin/shop/ProductPaneel.js.map +1 -1
- package/dist/admin/shop/ProductsTab.js +40 -19
- package/dist/admin/shop/ProductsTab.js.map +1 -1
- package/dist/admin/shop/ShopPanel.js +13 -1
- package/dist/admin/shop/ShopPanel.js.map +1 -1
- package/dist/admin/shop/ShopSettingsTab.js +27 -1
- package/dist/admin/shop/ShopSettingsTab.js.map +1 -1
- package/dist/admin/shop/productClient.js +7 -3
- package/dist/admin/shop/productClient.js.map +1 -1
- package/dist/admin/stats/NietGevonden.d.ts +10 -0
- package/dist/admin/stats/NietGevonden.js +78 -0
- package/dist/admin/stats/NietGevonden.js.map +1 -0
- package/dist/admin/stats/StatsPanel.js +6 -1
- package/dist/admin/stats/StatsPanel.js.map +1 -1
- package/dist/admin/stats/lib.d.ts +2 -0
- package/dist/admin/stats/lib.js.map +1 -1
- package/dist/admin/ui/ConfirmDialog.js +10 -1
- package/dist/admin/ui/ConfirmDialog.js.map +1 -1
- package/dist/admin/ui/Icon.d.ts +34 -0
- package/dist/admin/ui/Icon.js +44 -0
- package/dist/admin/ui/Icon.js.map +1 -0
- package/dist/admin/ui/ImageField.d.ts +15 -0
- package/dist/admin/ui/ImageField.js +67 -0
- package/dist/admin/ui/ImageField.js.map +1 -0
- package/dist/admin/ui/KleurVeld.d.ts +25 -0
- package/dist/admin/ui/KleurVeld.js +76 -0
- package/dist/admin/ui/KleurVeld.js.map +1 -0
- package/dist/admin/ui/LaadStaat.d.ts +21 -0
- package/dist/admin/ui/LaadStaat.js +43 -0
- package/dist/admin/ui/LaadStaat.js.map +1 -0
- package/dist/admin/ui/LeesbaarheidPaneel.d.ts +10 -0
- package/dist/admin/ui/LeesbaarheidPaneel.js +68 -0
- package/dist/admin/ui/LeesbaarheidPaneel.js.map +1 -0
- package/dist/admin/ui/LinkDialog.d.ts +22 -0
- package/dist/admin/ui/LinkDialog.js +131 -0
- package/dist/admin/ui/LinkDialog.js.map +1 -0
- package/dist/admin/ui/LinkVeld.d.ts +14 -0
- package/dist/admin/ui/LinkVeld.js +49 -0
- package/dist/admin/ui/LinkVeld.js.map +1 -0
- package/dist/admin/ui/PreviewLinkResultaat.d.ts +14 -0
- package/dist/admin/ui/PreviewLinkResultaat.js +52 -0
- package/dist/admin/ui/PreviewLinkResultaat.js.map +1 -0
- package/dist/admin/ui/charts.js +5 -5
- package/dist/admin/ui/charts.js.map +1 -1
- package/dist/admin/ui/primitives.d.ts +16 -6
- package/dist/admin/ui/primitives.js +98 -26
- package/dist/admin/ui/primitives.js.map +1 -1
- package/dist/admin/ui/select.js +5 -2
- package/dist/admin/ui/select.js.map +1 -1
- package/dist/admin/ui/switch.d.ts +3 -1
- package/dist/admin/ui/switch.js +6 -3
- package/dist/admin/ui/switch.js.map +1 -1
- package/dist/admin/ui/toast.d.ts +2 -1
- package/dist/admin/ui/toast.js +17 -11
- package/dist/admin/ui/toast.js.map +1 -1
- package/dist/admin/visual/BlokKiezer.d.ts +34 -0
- package/dist/admin/visual/BlokKiezer.js +225 -0
- package/dist/admin/visual/BlokKiezer.js.map +1 -0
- package/dist/admin/visual/InlineGereedschap.d.ts +52 -0
- package/dist/admin/visual/InlineGereedschap.js +356 -0
- package/dist/admin/visual/InlineGereedschap.js.map +1 -0
- package/dist/admin/visual/InlineRijkeTekst.d.ts +23 -0
- package/dist/admin/visual/InlineRijkeTekst.js +152 -0
- package/dist/admin/visual/InlineRijkeTekst.js.map +1 -0
- package/dist/admin/visual/VisualEditor.js +273 -125
- package/dist/admin/visual/VisualEditor.js.map +1 -1
- package/dist/admin.css +1 -1
- package/dist/bedrijf/bedrijf.d.ts +36 -0
- package/dist/bedrijf/bedrijf.js +110 -0
- package/dist/bedrijf/bedrijf.js.map +1 -0
- package/dist/blocks/BlockRenderer.js +11 -1
- package/dist/blocks/BlockRenderer.js.map +1 -1
- package/dist/blocks/blockStyle.d.ts +7 -0
- package/dist/blocks/blockStyle.js +16 -3
- package/dist/blocks/blockStyle.js.map +1 -1
- package/dist/blocks/builtinSchemas.js +6 -0
- package/dist/blocks/builtinSchemas.js.map +1 -1
- package/dist/blocks/builtins/AgendaRender.d.ts +22 -0
- package/dist/blocks/builtins/AgendaRender.js +69 -9
- package/dist/blocks/builtins/AgendaRender.js.map +1 -1
- package/dist/blocks/builtins/Availability.d.ts +1 -0
- package/dist/blocks/builtins/Availability.js +23 -0
- package/dist/blocks/builtins/Availability.js.map +1 -0
- package/dist/blocks/builtins/AvailabilityRender.d.ts +12 -0
- package/dist/blocks/builtins/AvailabilityRender.js +105 -0
- package/dist/blocks/builtins/AvailabilityRender.js.map +1 -0
- package/dist/blocks/builtins/BeforeAfterRender.js +4 -3
- package/dist/blocks/builtins/BeforeAfterRender.js.map +1 -1
- package/dist/blocks/builtins/Booking.js +1 -1
- package/dist/blocks/builtins/Booking.js.map +1 -1
- package/dist/blocks/builtins/BreadcrumbsRender.d.ts +4 -3
- package/dist/blocks/builtins/BreadcrumbsRender.js +14 -8
- package/dist/blocks/builtins/BreadcrumbsRender.js.map +1 -1
- package/dist/blocks/builtins/ColumnsRender.d.ts +1 -1
- package/dist/blocks/builtins/ColumnsRender.js +3 -1
- package/dist/blocks/builtins/ColumnsRender.js.map +1 -1
- package/dist/blocks/builtins/Contact.js +1 -1
- package/dist/blocks/builtins/Contact.js.map +1 -1
- package/dist/blocks/builtins/ContactRender.d.ts +1 -1
- package/dist/blocks/builtins/ContactRender.js +29 -8
- package/dist/blocks/builtins/ContactRender.js.map +1 -1
- package/dist/blocks/builtins/Cta.js +1 -1
- package/dist/blocks/builtins/Cta.js.map +1 -1
- package/dist/blocks/builtins/CtaRender.d.ts +1 -1
- package/dist/blocks/builtins/CtaRender.js +5 -4
- package/dist/blocks/builtins/CtaRender.js.map +1 -1
- package/dist/blocks/builtins/Embed.js +1 -1
- package/dist/blocks/builtins/Embed.js.map +1 -1
- package/dist/blocks/builtins/FormBlock.js +1 -0
- package/dist/blocks/builtins/FormBlock.js.map +1 -1
- package/dist/blocks/builtins/FormBlockRender.d.ts +6 -0
- package/dist/blocks/builtins/FormBlockRender.js +88 -16
- package/dist/blocks/builtins/FormBlockRender.js.map +1 -1
- package/dist/blocks/builtins/GalleryRender.js +3 -2
- package/dist/blocks/builtins/GalleryRender.js.map +1 -1
- package/dist/blocks/builtins/Hero.js +1 -1
- package/dist/blocks/builtins/Hero.js.map +1 -1
- package/dist/blocks/builtins/HeroRender.js +7 -3
- package/dist/blocks/builtins/HeroRender.js.map +1 -1
- package/dist/blocks/builtins/OpenNowBadge.d.ts +4 -2
- package/dist/blocks/builtins/OpenNowBadge.js +6 -6
- package/dist/blocks/builtins/OpenNowBadge.js.map +1 -1
- package/dist/blocks/builtins/OpeningHoursRender.d.ts +8 -2
- package/dist/blocks/builtins/OpeningHoursRender.js +27 -6
- package/dist/blocks/builtins/OpeningHoursRender.js.map +1 -1
- package/dist/blocks/builtins/PriceList.d.ts +1 -0
- package/dist/blocks/builtins/PriceList.js +25 -0
- package/dist/blocks/builtins/PriceList.js.map +1 -0
- package/dist/blocks/builtins/PriceListRender.d.ts +17 -0
- package/dist/blocks/builtins/PriceListRender.js +87 -0
- package/dist/blocks/builtins/PriceListRender.js.map +1 -0
- package/dist/blocks/builtins/RichTextBlockRender.js +6 -1
- package/dist/blocks/builtins/RichTextBlockRender.js.map +1 -1
- package/dist/blocks/builtins/SectionHeading.d.ts +1 -0
- package/dist/blocks/builtins/SectionHeading.js +14 -0
- package/dist/blocks/builtins/SectionHeading.js.map +1 -0
- package/dist/blocks/builtins/SectionHeadingRender.d.ts +7 -0
- package/dist/blocks/builtins/SectionHeadingRender.js +14 -0
- package/dist/blocks/builtins/SectionHeadingRender.js.map +1 -0
- package/dist/blocks/builtins/SliderRender.js +3 -2
- package/dist/blocks/builtins/SliderRender.js.map +1 -1
- package/dist/blocks/builtins/SymbolRef.js +1 -1
- package/dist/blocks/builtins/SymbolRef.js.map +1 -1
- package/dist/blocks/builtins/TeamRender.js +6 -1
- package/dist/blocks/builtins/TeamRender.js.map +1 -1
- package/dist/blocks/builtins/Testimonials.js +3 -1
- package/dist/blocks/builtins/Testimonials.js.map +1 -1
- package/dist/blocks/builtins/TestimonialsRender.js +4 -0
- package/dist/blocks/builtins/TestimonialsRender.js.map +1 -1
- package/dist/blocks/builtins/WhatsappChatRender.d.ts +1 -1
- package/dist/blocks/builtins/WhatsappChatRender.js +1 -1
- package/dist/blocks/builtins/WhatsappChatRender.js.map +1 -1
- package/dist/blocks/builtins/Widgets.js +2 -2
- package/dist/blocks/builtins/Widgets.js.map +1 -1
- package/dist/blocks/builtins/WidgetsRender.js +3 -1
- package/dist/blocks/builtins/WidgetsRender.js.map +1 -1
- package/dist/blocks/builtins/index.d.ts +3 -0
- package/dist/blocks/builtins/index.js +6 -0
- package/dist/blocks/builtins/index.js.map +1 -1
- package/dist/blocks/builtins/lib/autoComplete.d.ts +7 -0
- package/dist/blocks/builtins/lib/autoComplete.js +20 -0
- package/dist/blocks/builtins/lib/autoComplete.js.map +1 -0
- package/dist/blocks/builtins/lib/bookingUrl.d.ts +2 -2
- package/dist/blocks/builtins/lib/bookingUrl.js +1 -1
- package/dist/blocks/builtins/lib/bookingUrl.js.map +1 -1
- package/dist/blocks/builtins/lib/ical.d.ts +24 -0
- package/dist/blocks/builtins/lib/ical.js +82 -0
- package/dist/blocks/builtins/lib/ical.js.map +1 -0
- package/dist/blocks/builtins/lib/vandaag.d.ts +8 -0
- package/dist/blocks/builtins/lib/vandaag.js +22 -0
- package/dist/blocks/builtins/lib/vandaag.js.map +1 -0
- package/dist/blocks/registry.d.ts +6 -0
- package/dist/blocks/registry.js.map +1 -1
- package/dist/blocks/ui/index.js +1 -0
- package/dist/blocks/ui/index.js.map +1 -1
- package/dist/components/EditBar.js +2 -4
- package/dist/components/EditBar.js.map +1 -1
- package/dist/components/News.js +26 -18
- package/dist/components/News.js.map +1 -1
- package/dist/components/PageView.d.ts +7 -1
- package/dist/components/PageView.js +17 -0
- package/dist/components/PageView.js.map +1 -1
- package/dist/components/ResponsiveImage.js +18 -20
- package/dist/components/ResponsiveImage.js.map +1 -1
- package/dist/components/site/SiteFooter.d.ts +6 -1
- package/dist/components/site/SiteFooter.js +61 -9
- package/dist/components/site/SiteFooter.js.map +1 -1
- package/dist/components/site/SiteHeader.d.ts +15 -0
- package/dist/components/site/SiteHeader.js +70 -0
- package/dist/components/site/SiteHeader.js.map +1 -0
- package/dist/components/site/SiteNav.d.ts +2 -0
- package/dist/components/site/SiteNav.js +29 -5
- package/dist/components/site/SiteNav.js.map +1 -1
- package/dist/demo/DemoStudio.js +2 -2
- package/dist/demo/DemoStudio.js.map +1 -1
- package/dist/demo/demoStore.d.ts +13 -0
- package/dist/demo/demoStore.js +36 -0
- package/dist/demo/demoStore.js.map +1 -1
- package/dist/editor/EditorProvider.js +15 -4
- package/dist/editor/EditorProvider.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/media/ImageContext.d.ts +17 -0
- package/dist/media/ImageContext.js +65 -20
- package/dist/media/ImageContext.js.map +1 -1
- package/dist/media/altInHtml.d.ts +9 -0
- package/dist/media/altInHtml.js +17 -0
- package/dist/media/altInHtml.js.map +1 -0
- package/dist/media/srcset.d.ts +12 -0
- package/dist/media/srcset.js +13 -0
- package/dist/media/srcset.js.map +1 -0
- package/dist/modules/builtins.d.ts +1 -0
- package/dist/modules/builtins.js +16 -3
- package/dist/modules/builtins.js.map +1 -1
- package/dist/modules/shop/blocks/Cart.js +5 -3
- package/dist/modules/shop/blocks/Cart.js.map +1 -1
- package/dist/modules/shop/blocks/Checkout.js +56 -35
- package/dist/modules/shop/blocks/Checkout.js.map +1 -1
- package/dist/modules/shop/blocks/Donation.js +4 -4
- package/dist/modules/shop/blocks/Donation.js.map +1 -1
- package/dist/modules/shop/blocks/ProductDetail.js +19 -3
- package/dist/modules/shop/blocks/ProductDetail.js.map +1 -1
- package/dist/modules/shop/blocks/ProductGrid.d.ts +3 -1
- package/dist/modules/shop/blocks/ProductGrid.js +8 -4
- package/dist/modules/shop/blocks/ProductGrid.js.map +1 -1
- package/dist/modules/shop/blocks/ShopCategories.js +4 -3
- package/dist/modules/shop/blocks/ShopCategories.js.map +1 -1
- package/dist/modules/shop/lib.d.ts +4 -0
- package/dist/modules/shop/lib.js +14 -0
- package/dist/modules/shop/lib.js.map +1 -1
- package/dist/modules/shop/settings.d.ts +3 -0
- package/dist/modules/shop/settings.js +14 -0
- package/dist/modules/shop/settings.js.map +1 -1
- package/dist/modules/shop/strings.d.ts +4 -0
- package/dist/modules/shop/strings.js +8 -0
- package/dist/modules/shop/strings.js.map +1 -1
- package/dist/next/envCheck.d.ts +42 -0
- package/dist/next/envCheck.js +106 -0
- package/dist/next/envCheck.js.map +1 -0
- package/dist/next/index.cjs +185 -2
- package/dist/next/index.d.ts +2 -0
- package/dist/next/index.js +8 -1
- package/dist/next/index.js.map +1 -1
- package/dist/next/securityHeaders.d.ts +36 -0
- package/dist/next/securityHeaders.js +74 -0
- package/dist/next/securityHeaders.js.map +1 -0
- package/dist/patterns/builtins.d.ts +7 -0
- package/dist/patterns/builtins.js +138 -3
- package/dist/patterns/builtins.js.map +1 -1
- package/dist/releaseNotes.js +140 -0
- package/dist/releaseNotes.js.map +1 -1
- package/dist/render/PublishedPage.d.ts +2 -1
- package/dist/render/PublishedPage.js +10 -4
- package/dist/render/PublishedPage.js.map +1 -1
- package/dist/schema/blocks.d.ts +470 -0
- package/dist/schema/blocks.js +102 -4
- package/dist/schema/blocks.js.map +1 -1
- package/dist/schema/business.d.ts +117 -0
- package/dist/schema/business.js +73 -0
- package/dist/schema/business.js.map +1 -0
- package/dist/schema/fields.d.ts +2 -1
- package/dist/schema/fields.js.map +1 -1
- package/dist/schema/forms.d.ts +18 -0
- package/dist/schema/forms.js +18 -3
- package/dist/schema/forms.js.map +1 -1
- package/dist/schema/mail.d.ts +10 -0
- package/dist/schema/mail.js +7 -0
- package/dist/schema/mail.js.map +1 -1
- package/dist/schema/settings.d.ts +101 -0
- package/dist/schema/settings.js +24 -3
- package/dist/schema/settings.js.map +1 -1
- package/dist/schema/shop.d.ts +2 -0
- package/dist/schema/shop.js +4 -0
- package/dist/schema/shop.js.map +1 -1
- package/dist/schema/shopGeld.d.ts +1 -0
- package/dist/schema/shopGeld.js +1 -0
- package/dist/schema/shopGeld.js.map +1 -1
- package/dist/schema/siteConfig.d.ts +68 -1
- package/dist/schema/siteConfig.js +7 -2
- package/dist/schema/siteConfig.js.map +1 -1
- package/dist/server/blockData.d.ts +1 -1
- package/dist/server/blockData.js +74 -18
- package/dist/server/blockData.js.map +1 -1
- package/dist/server/cspRapport.d.ts +20 -0
- package/dist/server/cspRapport.js +56 -0
- package/dist/server/cspRapport.js.map +1 -0
- package/dist/server/fonts.d.ts +3 -0
- package/dist/server/fonts.js +39 -0
- package/dist/server/fonts.js.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.js +8 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/sanitize.js +15 -2
- package/dist/server/sanitize.js.map +1 -1
- package/dist/settings/useSiteSettings.js +4 -1
- package/dist/settings/useSiteSettings.js.map +1 -1
- package/dist/starters/starters.d.ts +69 -0
- package/dist/starters/starters.js +171 -0
- package/dist/starters/starters.js.map +1 -0
- package/dist/styles.css +1149 -208
- package/dist/theme/color.d.ts +10 -0
- package/dist/theme/color.js +17 -1
- package/dist/theme/color.js.map +1 -1
- package/dist/theme/fontFallback.d.ts +23 -0
- package/dist/theme/fontFallback.js +58 -0
- package/dist/theme/fontFallback.js.map +1 -0
- package/dist/theme/fonts.d.ts +11 -0
- package/dist/theme/fonts.js +16 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/version.js +1 -1
- package/package.json +6 -4
package/dist/schema/blocks.js
CHANGED
|
@@ -33,7 +33,22 @@ const HeroBlockSchema = z.object({
|
|
|
33
33
|
/** Gradient-overlay (donker onderaan → transparant boven) voor leesbare tekst op foto's. */
|
|
34
34
|
overlayGradient: z._default(z.boolean(), false).register(z.globalRegistry, { description: "Gradient-overlay" }),
|
|
35
35
|
/** Ingebouwde call-to-action-knoppen. */
|
|
36
|
-
buttons: z._default(z.array(ButtonSchema).check(z.maxLength(3)), [])
|
|
36
|
+
buttons: z._default(z.array(ButtonSchema).check(z.maxLength(3)), []),
|
|
37
|
+
/**
|
|
38
|
+
* 8.13: "overlay" = tekst óp de foto (zoals altijd); "naast" = tekst links, foto rechts in een
|
|
39
|
+
* afgeronde kader — rustiger, en de tekst is altijd leesbaar. Kwam uit de kraamcadeau-site.
|
|
40
|
+
*/
|
|
41
|
+
layout: z._default(z.enum(["overlay", "naast"]), "overlay"),
|
|
42
|
+
/** 8.13: korte vertrouwenspunten onder de knoppen ("Gratis offerte", "Groenkeur-erkend"). */
|
|
43
|
+
trust: z.optional(z.array(shortText).check(z.maxLength(6)))
|
|
44
|
+
});
|
|
45
|
+
const SectionHeadingBlockSchema = z.object({
|
|
46
|
+
...blockBase2,
|
|
47
|
+
_type: z.literal("sectionHeading"),
|
|
48
|
+
eyebrow: z.optional(shortText),
|
|
49
|
+
title: z._default(shortText, ""),
|
|
50
|
+
intro: z.optional(shortText),
|
|
51
|
+
align: z._default(z.enum(["left", "center"]), "center")
|
|
37
52
|
});
|
|
38
53
|
const RichTextBlockSchema = z.object({
|
|
39
54
|
...blockBase2,
|
|
@@ -117,6 +132,65 @@ const OpeningHoursBlockSchema = z.object({
|
|
|
117
132
|
/** OpeningHoursSpecification-JSON-LD voor zoekmachines. */
|
|
118
133
|
jsonLd: z._default(z.boolean(), false).register(z.globalRegistry, { description: "JSON-LD (openingstijden)" })
|
|
119
134
|
});
|
|
135
|
+
const PriceListBlockSchema = z.object({
|
|
136
|
+
...blockBase2,
|
|
137
|
+
_type: z.literal("priceList"),
|
|
138
|
+
heading: z.optional(shortText),
|
|
139
|
+
intro: z.optional(shortText),
|
|
140
|
+
/** "lijst" = naam … prijs; "menu" = horecakaart (gecentreerd, sierlijk); "kolommen" = secties naast elkaar. */
|
|
141
|
+
variant: z._default(z.enum(["lijst", "menu", "kolommen"]), "lijst"),
|
|
142
|
+
sections: z._default(
|
|
143
|
+
z.array(
|
|
144
|
+
z.object({
|
|
145
|
+
title: z._default(shortText, ""),
|
|
146
|
+
note: z.optional(shortText),
|
|
147
|
+
items: z._default(
|
|
148
|
+
z.array(
|
|
149
|
+
z.object({
|
|
150
|
+
name: z._default(shortText, ""),
|
|
151
|
+
description: z.optional(shortText),
|
|
152
|
+
price: z.optional(shortText),
|
|
153
|
+
duration: z.optional(shortText),
|
|
154
|
+
/** Labels met komma's: "vegetarisch, glutenvrij" of "nieuw". */
|
|
155
|
+
tags: z.optional(shortText),
|
|
156
|
+
featured: z._default(z.boolean(), false)
|
|
157
|
+
})
|
|
158
|
+
).check(z.maxLength(80)),
|
|
159
|
+
[]
|
|
160
|
+
)
|
|
161
|
+
})
|
|
162
|
+
).check(z.maxLength(20)),
|
|
163
|
+
[]
|
|
164
|
+
),
|
|
165
|
+
footnote: z.optional(shortText),
|
|
166
|
+
/** Menu (horeca) of OfferCatalog voor Google. */
|
|
167
|
+
jsonLd: z._default(z.boolean(), false)
|
|
168
|
+
});
|
|
169
|
+
const AvailabilityBlockSchema = z.object({
|
|
170
|
+
...blockBase2,
|
|
171
|
+
_type: z.literal("availability"),
|
|
172
|
+
heading: z.optional(shortText),
|
|
173
|
+
intro: z.optional(shortText),
|
|
174
|
+
units: z._default(
|
|
175
|
+
z.array(
|
|
176
|
+
z.object({
|
|
177
|
+
label: z._default(shortText, ""),
|
|
178
|
+
/** iCal-export van je boekingssysteem (https://… of webcal://…). */
|
|
179
|
+
icalUrl: z._default(z.string().check(z.maxLength(2e3)), ""),
|
|
180
|
+
note: z.optional(shortText)
|
|
181
|
+
})
|
|
182
|
+
).check(z.maxLength(10)),
|
|
183
|
+
[]
|
|
184
|
+
),
|
|
185
|
+
months: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 4),
|
|
186
|
+
minNights: z._default(z.int().check(z.minimum(1)).check(z.maximum(30)), 1),
|
|
187
|
+
/** Pagina met het aanvraagformulier. */
|
|
188
|
+
requestPath: z._default(z.string().check(z.maxLength(2e3)), "/contact"),
|
|
189
|
+
requestLabel: z._default(shortText, "Aanvragen"),
|
|
190
|
+
/** Technische namen van de formuliervelden die vooraf ingevuld worden. */
|
|
191
|
+
periodField: z._default(z.string().check(z.maxLength(60)), "verblijf"),
|
|
192
|
+
unitField: z._default(z.string().check(z.maxLength(60)), "accommodatie")
|
|
193
|
+
});
|
|
120
194
|
const PricingBlockSchema = z.object({
|
|
121
195
|
...blockBase2,
|
|
122
196
|
_type: z.literal("pricing"),
|
|
@@ -175,7 +249,9 @@ const TestimonialsBlockSchema = z.object({
|
|
|
175
249
|
/** Weergave: lijst (kaarten) of grid. */
|
|
176
250
|
layout: z._default(z.enum(["list", "grid"]), "grid"),
|
|
177
251
|
/** Voeg Review-JSON-LD toe (rich results). */
|
|
178
|
-
jsonLd: z._default(z.boolean(), false)
|
|
252
|
+
jsonLd: z._default(z.boolean(), false),
|
|
253
|
+
/** 8.13: knop "Laat een review achter" (de link staat in het bedrijfsprofiel). */
|
|
254
|
+
reviewKnop: z._default(z.boolean(), true)
|
|
179
255
|
});
|
|
180
256
|
const TeamBlockSchema = z.object({
|
|
181
257
|
...blockBase2,
|
|
@@ -208,7 +284,17 @@ const AgendaBlockSchema = z.object({
|
|
|
208
284
|
end: z.optional(z.string().check(z.maxLength(40))),
|
|
209
285
|
location: z.optional(shortText),
|
|
210
286
|
description: z.optional(shortText),
|
|
211
|
-
url: z.optional(z.string().check(z.maxLength(2e3)))
|
|
287
|
+
url: z.optional(z.string().check(z.maxLength(2e3))),
|
|
288
|
+
// 8.14: voor Google (Event) en de bezoeker.
|
|
289
|
+
/** Adres als het niet op je eigen adres is (anders het adres uit het bedrijfsprofiel). */
|
|
290
|
+
address: z.optional(shortText),
|
|
291
|
+
imageUrl: z.optional(z.string().check(z.maxLength(2e3))),
|
|
292
|
+
/** "Gratis", "€ 12,50". */
|
|
293
|
+
price: z.optional(shortText),
|
|
294
|
+
status: z.optional(z.enum(["afgelast", "verplaatst", "online"])),
|
|
295
|
+
/** 8.15: terugkerend (tot `herhaalTot`, anders een jaar vooruit). */
|
|
296
|
+
herhaal: z.optional(z.enum(["wekelijks", "tweewekelijks", "maandelijks"])),
|
|
297
|
+
herhaalTot: z.optional(z.string().check(z.maxLength(40)))
|
|
212
298
|
})).check(z.maxLength(100)), []),
|
|
213
299
|
/** Verberg events waarvan de startdatum in het verleden ligt. */
|
|
214
300
|
hidePast: z._default(z.boolean(), true),
|
|
@@ -340,7 +426,13 @@ const BookingProviderSchema = z.enum([
|
|
|
340
426
|
"treatwell",
|
|
341
427
|
"salonized",
|
|
342
428
|
"tablebooker",
|
|
343
|
-
"bookingkit"
|
|
429
|
+
"bookingkit",
|
|
430
|
+
// 8.14: verhuur en overnachting. Alleen een volledige link uit het boekingssysteem (geen slug-
|
|
431
|
+
// aanvulling: hun embedadressen verschillen per account).
|
|
432
|
+
"lodgify",
|
|
433
|
+
"bookingexperts",
|
|
434
|
+
"tommy",
|
|
435
|
+
"bookingmotor"
|
|
344
436
|
]);
|
|
345
437
|
const BookingBlockSchema = z.object({
|
|
346
438
|
...blockBase2,
|
|
@@ -678,6 +770,9 @@ const BuiltinBlockSchema = z.discriminatedUnion("_type", [
|
|
|
678
770
|
TabsBlockSchema,
|
|
679
771
|
// Nieuwe modules
|
|
680
772
|
CardsBlockSchema,
|
|
773
|
+
PriceListBlockSchema,
|
|
774
|
+
SectionHeadingBlockSchema,
|
|
775
|
+
AvailabilityBlockSchema,
|
|
681
776
|
DownloadsBlockSchema,
|
|
682
777
|
PdfBlockSchema,
|
|
683
778
|
CountdownBlockSchema,
|
|
@@ -707,6 +802,7 @@ export {
|
|
|
707
802
|
AgendaBlockSchema,
|
|
708
803
|
AgendaWidgetSchema,
|
|
709
804
|
AnyBlockSchema,
|
|
805
|
+
AvailabilityBlockSchema,
|
|
710
806
|
BannerBlockSchema,
|
|
711
807
|
BeforeAfterBlockSchema,
|
|
712
808
|
BlockBaseSchema,
|
|
@@ -748,10 +844,12 @@ export {
|
|
|
748
844
|
OpeningHoursWidgetSchema,
|
|
749
845
|
PdfBlockSchema,
|
|
750
846
|
PortfolioBlockSchema,
|
|
847
|
+
PriceListBlockSchema,
|
|
751
848
|
PricingBlockSchema,
|
|
752
849
|
QuoteBlockSchema,
|
|
753
850
|
RichTextBlockSchema,
|
|
754
851
|
SearchBlockSchema,
|
|
852
|
+
SectionHeadingBlockSchema,
|
|
755
853
|
SliderBlockSchema,
|
|
756
854
|
SocialBlockSchema,
|
|
757
855
|
SocialWidgetSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/blocks.ts"],"sourcesContent":["import * as z from \"zod/mini\";\n\n/**\n * Block-schema's (Zod) — de bron van waarheid voor content-structuur, gedeeld door core,\n * de server-helpers en de Cloud Functions. Pure data: geen React, geen Firebase.\n *\n * Elk block heeft een stabiele `_key` (voor reorder/diff) en een `_type` (registry-sleutel).\n * Built-ins staan hieronder; klant-blokken brengen hun eigen schema mee via `defineBlock`\n * (de registry valideert die per type — zie blocks/registry.ts `validateBlocks`).\n */\n\nexport { BlockStyleSchema, blockBase, BlockBaseSchema, type BlockStyle, type BlockBase } from \"./blockBase\";\nimport { blockBase, BlockBaseSchema } from \"./blockBase\";\n\n/** Korte, veilige id voor verwijzingen naar media-items / overige refs. */\nconst ref = z.string().check(z.maxLength(256));\nconst richText = z.string().check(z.maxLength(100_000)); // gesanitizede HTML (zie server/sanitize.ts)\nconst shortText = z.string().check(z.maxLength(2000));\n\n/** Knop met label, link en stijlvariant (gedeeld door hero/cta). */\nconst ButtonSchema = z.object({\n label: z._default(shortText, \"\"),\n href: z._default(z.string().check(z.maxLength(2000)), \"#\"),\n variant: z._default(z.enum([\"primary\", \"secondary\", \"outline\"]), \"primary\"),\n});\n\nexport const HeroBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"hero\"),\n /** Kicker/eyebrow: klein regeltje bóven de titel (bv. \"Hoveniers sinds 2001\"). */\n eyebrow: z.optional(shortText).register(z.globalRegistry, { description: \"Regeltje boven de titel\" }),\n title: z._default(shortText, \"\"),\n subtitle: z.optional(shortText),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** Videoachtergrond (mp4/webm); overschrijft de afbeelding als gezet. */\n videoUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** Kopniveau: \"1\" voor dé hoofdkop; \"2\" voor een tweede hero op dezelfde pagina\n * (twee h1's = slechte SEO/a11y). */\n headingLevel: z._default(z.enum([\"1\", \"2\"]), \"1\").register(z.globalRegistry, { description: \"Kopniveau (h1/h2)\" }),\n align: z._default(z.enum([\"left\", \"center\"]), \"left\"),\n /** Verticale uitlijning van de inhoud binnen de hero. */\n vAlign: z._default(z.enum([\"top\", \"center\", \"bottom\"]), \"center\"),\n /** Hoogte: sm/md/lg of volledige viewport. */\n minHeight: z._default(z.enum([\"auto\", \"sm\", \"md\", \"lg\", \"full\"]), \"auto\"),\n /** Donkere/gekleurde overlay over het beeld voor leesbaar contrast. */\n overlayColor: z.optional(z.string().check(z.maxLength(40))),\n overlayOpacity: z._default(z.number().check(z.minimum(0)).check(z.maximum(100)), 0),\n /** Gradient-overlay (donker onderaan → transparant boven) voor leesbare tekst op foto's. */\n overlayGradient: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Gradient-overlay\" }),\n /** Ingebouwde call-to-action-knoppen. */\n buttons: z._default(z.array(ButtonSchema).check(z.maxLength(3)), []),\n});\n\nexport const RichTextBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"richText\"),\n html: z._default(richText, \"\"),\n});\n\nexport const ImageBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"image\"),\n url: z.optional(z.string().check(z.maxLength(2000))),\n alt: z._default(shortText, \"\"),\n caption: z.optional(shortText),\n /** Maak de afbeelding klikbaar. */\n href: z.optional(z.string().check(z.maxLength(2000))),\n /** Uitlijning binnen de kolom. */\n align: z._default(z.enum([\"left\", \"center\", \"right\"]), \"center\"),\n /** Forceer een beeldverhouding (anders natuurlijk). */\n aspectRatio: z._default(z.enum([\"auto\", \"16/9\", \"4/3\", \"1/1\", \"3/2\"]), \"auto\"),\n});\n\nexport const GalleryBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"gallery\"),\n items: z._default(z.array(z.object({\n url: z.optional(z.string().check(z.maxLength(2000))),\n alt: z._default(shortText, \"\"),\n // Update-veilig toegevoegd (Galerij+): optioneel bijschrift onder de foto / in de lightbox.\n caption: z.optional(shortText),\n /** Categorie/label voor de filterbalk (bv. \"tuinen\", \"bestrating\"). */\n tag: z.optional(shortText),\n })).check(z.maxLength(60)), []),\n /** Filterbalk op item-tags tonen (alleen zichtbaar als er tags zijn). */\n showFilter: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Filterbalk op tags\" }),\n /** Aantal kolommen in het grid (0 = volg de module-instelling). */\n columns: z._default(z.int().check(z.minimum(0)).check(z.maximum(6)), 0),\n /** Klikken opent een lightbox (0 = volg de module-instelling). */\n lightbox: z._default(z.enum([\"inherit\", \"on\", \"off\"]), \"inherit\"),\n /** Beeldverhouding van de thumbnails. \"auto\" behoudt de eigen verhouding. */\n aspectRatio: z._default(z.enum([\"1/1\", \"4/3\", \"3/2\", \"16/9\", \"auto\"]), \"1/1\"),\n});\n\nexport const CtaBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"cta\"),\n title: z._default(shortText, \"\"),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Neem contact op\"),\n buttonHref: z._default(z.string().check(z.maxLength(2000)), \"#contact\"),\n /** Stijl van de hoofdknop. */\n buttonVariant: z._default(z.enum([\"primary\", \"secondary\", \"outline\"]), \"primary\"),\n /** Optionele tweede knop. */\n button2Label: z.optional(shortText),\n button2Href: z.optional(z.string().check(z.maxLength(2000))),\n /** Achtergrondkleur (CSS-waarde); leeg = thema-default. */\n backgroundColor: z.optional(z.string().check(z.maxLength(40))),\n /** Toon de CTA als vaste balk onderaan het scherm (sticky). */\n sticky: z._default(z.boolean(), false),\n});\n\nexport const FaqBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"faq\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n q: z._default(shortText, \"\"),\n a: z._default(shortText, \"\"),\n /** Optioneel rich-text-antwoord (HTML, met links/lijsten); wint van `a` als gezet. */\n aHtml: z.optional(richText),\n })).check(z.maxLength(50)), []),\n /** FAQ+: toon een zoekveld dat de vragen filtert (handig bij lange lijsten). */\n searchable: z._default(z.boolean(), false),\n /** FAQ+: voeg FAQPage-JSON-LD toe voor rich results in Google. */\n jsonLd: z._default(z.boolean(), false),\n /** Of items standaard open staan. Default dicht (gebruikelijke FAQ-UX). */\n defaultOpen: z._default(z.boolean(), false),\n});\n\nexport const OpeningHoursBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"openingHours\"),\n heading: z.optional(shortText),\n rows: z._default(z.array(z.object({ day: z._default(shortText, \"\"), hours: z._default(shortText, \"\") })).check(z.maxLength(14)), []),\n /** Live \"Nu geopend/gesloten\"-badge (werkt bij herkenbare tijden zoals \"09:00 – 17:00\"). */\n showStatus: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"'Nu geopend'-badge tonen\" }),\n /** OpeningHoursSpecification-JSON-LD voor zoekmachines. */\n jsonLd: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"JSON-LD (openingstijden)\" }),\n});\n\nexport const PricingBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"pricing\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n label: z._default(shortText, \"\"),\n price: z._default(shortText, \"\"),\n detail: z.optional(shortText),\n /** Inbegrepen features (lijst met vinkjes). */\n features: z.optional(z.array(shortText).check(z.maxLength(20))),\n /** Per-tier knop. */\n ctaLabel: z.optional(shortText),\n ctaHref: z.optional(z.string().check(z.maxLength(2000))),\n /** Markeer als uitgelichte tier. */\n highlighted: z._default(z.boolean(), false),\n /** bv. \"/maand\". */\n billingPeriod: z.optional(shortText),\n })).check(z.maxLength(30)), []),\n note: z.optional(shortText),\n /** ISO-valutacode voor de JSON-LD (bv. \"EUR\", \"USD\"). */\n currency: z._default(z.string().check(z.maxLength(8)), \"EUR\").register(z.globalRegistry, { description: \"Valuta (ISO-code)\" }),\n /** Voeg Product/Offer-JSON-LD toe. */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const NewsListBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsList\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(50)), 6),\n /** Toon eerst dit aantal en de rest via \"Meer laden\" (0 = alles ineens, huidig gedrag). */\n pageSize: z._default(z.int().check(z.minimum(0)).check(z.maximum(24)), 0).register(z.globalRegistry, { description: \"Per pagina (0 = alles)\" }),\n basePath: z._default(z.string().check(z.maxLength(200)), \"/nieuws\"),\n});\n\nexport const FormBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"form\"),\n formId: ref,\n heading: z.optional(shortText),\n});\n\nexport const SpacerBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"spacer\"),\n size: z._default(z.enum([\"sm\", \"md\", \"lg\", \"xl\"]), \"md\"),\n});\n\nexport const TestimonialsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"testimonials\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n quote: z._default(shortText, \"\"),\n author: z._default(shortText, \"\"),\n role: z.optional(shortText),\n rating: z.optional(z.int().check(z.minimum(1)).check(z.maximum(5))),\n avatarUrl: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(40)), []),\n /** Weergave: lijst (kaarten) of grid. */\n layout: z._default(z.enum([\"list\", \"grid\"]), \"grid\"),\n /** Voeg Review-JSON-LD toe (rich results). */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const TeamBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"team\"),\n heading: z.optional(shortText),\n members: z._default(z.array(z.object({\n name: z._default(shortText, \"\"),\n role: z.optional(shortText),\n photoUrl: z.optional(z.string().check(z.maxLength(2000))),\n bio: z.optional(shortText),\n email: z.optional(z.string().check(z.maxLength(320))),\n phone: z.optional(shortText),\n social: z.optional(z.array(z.object({ platform: shortText, href: z.string().check(z.maxLength(2000)) })).check(z.maxLength(6))),\n /** Afdeling/team voor groepering (bv. \"Keuken\", \"Bediening\"). */\n department: z.optional(shortText),\n })).check(z.maxLength(60)), []),\n /** Voeg Person-JSON-LD per lid toe. */\n jsonLd: z._default(z.boolean(), false),\n /** Groepeer leden per afdeling (kopje per afdeling). */\n groupByDepartment: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Groeperen per afdeling\" }),\n});\n\nexport const AgendaBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"agenda\"),\n heading: z.optional(shortText),\n events: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n /** ISO-datum of -datetime, bv. \"2026-07-01\" of \"2026-07-01T19:30\". */\n start: z._default(z.string().check(z.maxLength(40)), \"\"),\n end: z.optional(z.string().check(z.maxLength(40))),\n location: z.optional(shortText),\n description: z.optional(shortText),\n url: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(100)), []),\n /** Verberg events waarvan de startdatum in het verleden ligt. */\n hidePast: z._default(z.boolean(), true),\n /** Voeg Event-JSON-LD toe. */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const SearchBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"search\"),\n placeholder: z._default(shortText, \"Zoeken…\"),\n /** Ook nieuwsartikelen doorzoeken (naast pagina's). */\n includeNews: z._default(z.boolean(), true),\n});\n\nexport const VideoBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"video\"),\n provider: z._default(z.enum([\"youtube\", \"vimeo\", \"file\"]), \"youtube\"),\n /** YouTube/Vimeo-id of -URL, of een mp4/webm-URL bij \"file\". */\n src: z._default(z.string().check(z.maxLength(2000)), \"\"),\n title: z.optional(shortText),\n caption: z.optional(shortText),\n /** Voorvertoningsbeeld (bij provider \"file\" als poster; met facade ook voor embeds). */\n posterUrl: z.optional(z.string().check(z.maxLength(2000))).register(z.globalRegistry, { description: \"Voorvertoningsbeeld\" }),\n /** Click-to-play: toon eerst een thumbnail met play-knop; de speler laadt pas na een klik\n * (sneller laden, minder third-party requests). */\n facade: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Click-to-play (laad speler pas na klik)\" }),\n /** Toon pas na cookie-consent (categorie \"marketing\"). */\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const FeatureBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"feature\"),\n heading: z.optional(shortText),\n /** Rich text (veldnaam \"html\" zodat het server-side gesanitized wordt bij publiceren). */\n html: z._default(richText, \"\"),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n imagePosition: z._default(z.enum([\"left\", \"right\"]), \"left\"),\n buttonLabel: z.optional(shortText),\n buttonHref: z.optional(z.string().check(z.maxLength(2000))),\n});\n\nexport const BannerBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"banner\"),\n text: z._default(shortText, \"\"),\n href: z.optional(z.string().check(z.maxLength(2000))),\n linkLabel: z.optional(shortText),\n tone: z._default(z.enum([\"info\", \"success\", \"warning\"]), \"info\"),\n dismissible: z._default(z.boolean(), true),\n /** Wijzig deze waarde (bv. \"2\") als de tekst verandert — wie de oude balk wegklikte ziet de nieuwe weer. */\n dismissVersion: z.optional(shortText).register(z.globalRegistry, { description: \"Versie (wijzig om balk opnieuw te tonen)\" }),\n});\n\nexport const CountersBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"counters\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ value: z._default(shortText, \"\"), label: z._default(shortText, \"\"), prefix: z.optional(shortText), suffix: z.optional(shortText) })).check(z.maxLength(8)), []),\n /** Tel omhoog wanneer het blok in beeld scrolt (respecteert prefers-reduced-motion). */\n animate: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"Tel-animatie\" }),\n});\n\nexport const LogosBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"logos\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ src: z._default(z.string().check(z.maxLength(2000)), \"\"), alt: z._default(shortText, \"\"), href: z.optional(z.string().check(z.maxLength(2000))) })).check(z.maxLength(40)), []),\n grayscale: z._default(z.boolean(), true),\n /** Doorlopende band (marquee) i.p.v. statische rij; pauzeert bij hover, statisch bij reduced-motion. */\n marquee: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Doorlopende band\" }),\n});\n\nexport const TimelineBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"timeline\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ title: z._default(shortText, \"\"), date: z.optional(shortText), text: z.optional(shortText), icon: z.optional(shortText) })).check(z.maxLength(40)), []),\n /** Alternerende links/rechts-layout op bredere schermen. */\n alternate: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Alternerende layout\" }),\n});\n\nexport const ContactBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"contact\"),\n heading: z.optional(shortText),\n address: z.optional(shortText),\n phone: z.optional(shortText),\n email: z.optional(z.string().check(z.maxLength(320))),\n hours: z.optional(shortText),\n /** Coördinaten voor de JSON-LD (Google toont het bedrijf dan op de juiste plek). */\n geo: z.optional(z.object({ lat: z.number().check(z.minimum(-90)).check(z.maximum(90)), lng: z.number().check(z.minimum(-180)).check(z.maximum(180)) })),\n /** Voeg ContactPoint/LocalBusiness-JSON-LD toe. */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const MapBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"map\"),\n provider: z._default(z.enum([\"osm\", \"google\"]), \"osm\"),\n /** Adres/zoekterm (osm, legacy-fallback) of volledige embed-URL (google). */\n query: z._default(shortText, \"\"),\n /** OSM-coördinaten; hieruit + zoom bouwt de render een echte bbox (geen wereldkaart meer). */\n lat: z.optional(z.number().check(z.minimum(-90)).check(z.maximum(90))).register(z.globalRegistry, { description: \"Breedtegraad (lat)\" }),\n lng: z.optional(z.number().check(z.minimum(-180)).check(z.maximum(180))).register(z.globalRegistry, { description: \"Lengtegraad (lng)\" }),\n zoom: z._default(z.int().check(z.minimum(1)).check(z.maximum(20)), 14),\n height: z._default(z.int().check(z.minimum(150)).check(z.maximum(800)), 360),\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const SocialBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"social\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ platform: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\") })).check(z.maxLength(12)), []),\n});\n\nexport const NewsletterBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsletter\"),\n heading: z.optional(shortText),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Aanmelden\"),\n /** Waar het e-mailadres heen gaat (extern aanmeld-endpoint, POST email). Leeg = XiCMS-formulier. */\n actionUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** Formulier-id voor opslag via XiCMS (als actionUrl leeg is). */\n formId: z.optional(ref),\n /** AVG: indien gezet verschijnt een verplichte akkoord-checkbox met deze tekst. */\n consentText: z.optional(shortText).register(z.globalRegistry, { description: \"AVG-akkoordtekst (leeg = geen checkbox)\" }),\n});\n\n/** Bekende reserveer-/afspraaksystemen (preset; \"custom\" = vrije embed-URL). */\nexport const BookingProviderSchema = z.enum([\n \"custom\",\n \"calendly\",\n \"cal\",\n \"formitable\",\n \"resengo\",\n \"thefork\",\n \"treatwell\",\n \"salonized\",\n \"tablebooker\",\n \"bookingkit\",\n]);\n\nexport const BookingBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"booking\"),\n heading: z.optional(shortText),\n /** Welk reserveersysteem; bepaalt de embed-helper en uitleg in de editor. */\n provider: z._default(BookingProviderSchema, \"custom\"),\n /** Embed-URL of account/slug bij een preset-provider (bv. Calendly-link, Formitable-restaurant-id). */\n embedUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n height: z._default(z.int().check(z.minimum(300)).check(z.maximum(1200)), 630),\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const ButtonsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"buttons\"),\n align: z._default(z.enum([\"left\", \"center\", \"right\"]), \"left\"),\n items: z._default(z.array(z.object({ label: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"#\"), variant: z._default(z.enum([\"primary\", \"secondary\", \"outline\"]), \"primary\") })).check(z.maxLength(6)), []),\n});\n\nexport const QuoteBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"quote\"),\n text: z._default(shortText, \"\"),\n author: z.optional(shortText),\n role: z.optional(shortText),\n});\n\nexport const DividerBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"divider\"),\n variant: z._default(z.enum([\"line\", \"dots\", \"space\"]), \"line\"),\n spacing: z._default(z.enum([\"sm\", \"md\", \"lg\"]), \"md\"),\n});\n\nexport const AccordionBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"accordion\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n body: z._default(shortText, \"\"),\n /** Optioneel rich-text-paneel (HTML); wint van `body` als gezet. */\n bodyHtml: z.optional(richText),\n })).check(z.maxLength(50)), []),\n /** Sta toe dat meerdere panelen tegelijk open staan. */\n multiple: z._default(z.boolean(), false),\n});\n\nexport const EmbedBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"embed\"),\n url: z._default(z.string().check(z.maxLength(2000)), \"\"),\n title: z.optional(shortText),\n height: z._default(z.int().check(z.minimum(150)).check(z.maximum(1200)), 420),\n /** Beeldverhouding; \"fixed\" gebruikt de vaste hoogte (huidig gedrag). */\n aspectRatio: z._default(z.enum([\"fixed\", \"16/9\", \"4/3\", \"1/1\"]), \"fixed\").register(z.globalRegistry, { description: \"Beeldverhouding\" }),\n /** Toon pas na cookie-toestemming (categorie \"marketing\"). */\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const ColumnsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"columns\"),\n columns: z._default(z.array(z.object({ blocks: z._default(z.array(BlockBaseSchema).check(z.maxLength(50)), []) })).check(z.minLength(1)).check(z.maxLength(4)), []),\n});\n\n/**\n * Indelingsblok \"Met zijbalk\": een brede hoofdkolom met blokken plus een smalle (sticky) zijbalk\n * waarin je widgets zet (laatste nieuws, komende agenda, contact, …). Beide kanten bevatten gewone\n * blokken; de zijbalk is bedoeld voor de compacte widget-varianten.\n */\nexport const WithSidebarBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"withSidebar\"),\n main: z._default(z.array(BlockBaseSchema).check(z.maxLength(50)), []),\n aside: z._default(z.array(BlockBaseSchema).check(z.maxLength(30)), []),\n side: z._default(z.enum([\"left\", \"right\"]), \"right\"),\n sidebarWidth: z._default(z.enum([\"sm\", \"md\", \"lg\"]), \"md\"),\n sticky: z._default(z.boolean(), true),\n});\n\n/**\n * Tabbladen: per tab een eigen set blokken. Indelingsblok (layout) — handig om veel informatie\n * compact aan te bieden (bv. \"Beschrijving / Specificaties / Reviews\").\n */\nexport const TabsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"tabs\"),\n tabs: z._default(z.array(z.object({ label: z._default(shortText, \"Tab\"), blocks: z._default(z.array(BlockBaseSchema).check(z.maxLength(30)), []) })).check(z.minLength(1)).check(z.maxLength(10)), []),\n});\n\n/* ════════════════════ Nieuwe modules (volwaardig) ════════════════════ */\n\n/** Diensten/uitgelichte kaarten in een grid (icoon of beeld + titel + tekst + link). */\nexport const CardsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"cards\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n columns: z._default(z.int().check(z.minimum(1)).check(z.maximum(4)), 3),\n /** \"cover\" = beeld edge-to-edge bovenaan de kaart (postkaart-stijl); \"inset\" = ingekaderd. */\n imageStyle: z._default(z.enum([\"inset\", \"cover\"]), \"inset\"),\n items: z._default(z.array(z.object({\n icon: z.optional(shortText),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n title: z._default(shortText, \"\"),\n text: z.optional(shortText),\n href: z.optional(z.string().check(z.maxLength(2000))),\n linkLabel: z.optional(shortText),\n /** Uitgelichte kaart (accentrand + subtiele schaal). */\n featured: z._default(z.boolean(), false),\n })).check(z.maxLength(24)), []),\n});\n\n/** Downloadbare documenten (brochures, prijslijsten, voorwaarden). */\nexport const DownloadsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"downloads\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ label: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\"), meta: z.optional(shortText) })).check(z.maxLength(60)), []),\n});\n\n/** Inline PDF-lezer voor één of meerdere documenten (bv. lunch-/diner-/wijnkaart). */\nexport const PdfBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"pdf\"),\n heading: z.optional(shortText),\n /** Eén of meer PDF's; bij meerdere verschijnen tabs (label) om te wisselen. */\n documents: z._default(z.array(z.object({ label: z._default(shortText, \"\"), url: z._default(z.string().check(z.maxLength(2000)), \"\") })).check(z.maxLength(12)), []),\n height: z._default(z.int().check(z.minimum(300)).check(z.maximum(1600)), 820),\n /** Toon een \"Open/Download\"-link onder de viewer. */\n showDownload: z._default(z.boolean(), true),\n});\n\n/** Afteltimer naar een datum/tijd (lancering, evenement, aanbieding). Client-side telling. */\nexport const CountdownBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"countdown\"),\n heading: z.optional(shortText),\n /** ISO-datetime, bv. \"2026-12-31T23:59\". */\n target: z._default(z.string().check(z.maxLength(40)), \"\"),\n expiredText: z._default(shortText, \"Het is zover!\"),\n showLabels: z._default(z.boolean(), true),\n /** Wat er gebeurt als de teller afloopt: melding tonen of het hele blok verbergen. */\n onExpire: z._default(z.enum([\"message\", \"hide\"]), \"message\").register(z.globalRegistry, { description: \"Na afloop\" }),\n});\n\n/** Beeld-/contentcarrousel (slider). Client-side; optioneel autoplay (respecteert reduced-motion). */\nexport const SliderBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"slider\"),\n slides: z._default(z.array(z.object({\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n alt: z._default(shortText, \"\"),\n caption: z.optional(shortText),\n href: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(20)), []),\n autoplay: z._default(z.boolean(), false),\n /** Interval in seconden bij autoplay. */\n interval: z._default(z.int().check(z.minimum(2)).check(z.maximum(20)), 5),\n showDots: z._default(z.boolean(), true),\n showArrows: z._default(z.boolean(), true),\n aspectRatio: z._default(z.enum([\"16/9\", \"4/3\", \"3/2\", \"1/1\", \"21/9\"]), \"16/9\"),\n});\n\n/* ── 4.16: nieuwe modules ─────────────────────────────────────────────────── */\n\n/** Zwevende WhatsApp-/contactknop (wa.me-link; geen embed, dus geen consent nodig). */\nexport const WhatsappChatBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"whatsappChat\"),\n /** Telefoonnummer, internationaal (bv. \"31612345678\" of \"+31 6 12345678\"). */\n phone: z._default(shortText, \"\").register(z.globalRegistry, { description: \"Telefoonnummer (internationaal)\" }),\n /** Vooringevuld bericht in WhatsApp. */\n prefilledText: z.optional(shortText).register(z.globalRegistry, { description: \"Vooringevuld bericht\" }),\n /** Tekstlabel naast het icoon (leeg = alleen icoon). */\n label: z.optional(shortText).register(z.globalRegistry, { description: \"Label (optioneel)\" }),\n position: z._default(z.enum([\"br\", \"bl\"]), \"br\").register(z.globalRegistry, { description: \"Positie (rechts-/linksonder)\" }),\n});\n\n/** Voor/na-vergelijker: twee foto's met een sleepbare scheiding. */\nexport const BeforeAfterBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"beforeAfter\"),\n heading: z.optional(shortText),\n beforeUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n afterUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n beforeLabel: z._default(shortText, \"Voor\"),\n afterLabel: z._default(shortText, \"Na\"),\n alt: z._default(shortText, \"\"),\n aspectRatio: z._default(z.enum([\"16/9\", \"4/3\", \"3/2\", \"1/1\"]), \"4/3\"),\n});\n\n/** Portfolio/projecten-grid met categorie-filter en lightbox. */\nexport const PortfolioBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"portfolio\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n columns: z._default(z.int().check(z.minimum(1)).check(z.maximum(4)), 3),\n items: z._default(z.array(z.object({\n imageUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n title: z._default(shortText, \"\"),\n category: z.optional(shortText),\n description: z.optional(shortText),\n href: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(60)), []),\n /** Filterbalk op categorieën (alleen zichtbaar als er categorieën zijn). */\n showFilter: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"Filterbalk op categorieën\" }),\n lightbox: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"Lightbox bij klikken\" }),\n});\n\n/** Vacatures met JobPosting-JSON-LD (Google Jobs). */\nexport const JobsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"jobs\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n items: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n location: z.optional(shortText),\n /** bv. \"Fulltime\", \"Parttime\", \"BBL\". */\n employmentType: z.optional(shortText),\n description: z.optional(shortText),\n salary: z.optional(shortText),\n applyUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** ISO-datum van plaatsing (voor Google Jobs). */\n datePosted: z.optional(shortText),\n })).check(z.maxLength(30)), []),\n jsonLd: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"JSON-LD (Google Jobs)\" }),\n});\n\n/** Kruimelpad, afgeleid van de URL, met BreadcrumbList-JSON-LD. */\nexport const BreadcrumbsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"breadcrumbs\"),\n homeLabel: z._default(shortText, \"Home\"),\n jsonLd: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"JSON-LD (BreadcrumbList)\" }),\n});\n\n/* ════════════════════ Widgets (compacte zijbalk-varianten) ════════════════════ */\n\n/** Compacte lijst met de laatste nieuwsartikelen (haalt live uit dezelfde nieuws-collectie). */\nexport const NewsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsWidget\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 5),\n basePath: z._default(z.string().check(z.maxLength(200)), \"/nieuws\"),\n showImages: z._default(z.boolean(), false),\n});\n\n/** Compacte lijst met de eerstvolgende evenementen (zelfde events + datumlogica als het Agenda-blok). */\nexport const AgendaWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"agendaWidget\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 5),\n events: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n start: z._default(z.string().check(z.maxLength(40)), \"\"),\n end: z.optional(z.string().check(z.maxLength(40))),\n location: z.optional(shortText),\n url: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(100)), []),\n hidePast: z._default(z.boolean(), true),\n});\n\n/** Compacte openingstijden met \"vandaag\" gemarkeerd (zelfde rijen als het Openingstijden-blok). */\nexport const OpeningHoursWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"openingHoursWidget\"),\n heading: z.optional(shortText),\n rows: z._default(z.array(z.object({ day: z._default(shortText, \"\"), hours: z._default(shortText, \"\") })).check(z.maxLength(14)), []),\n highlightToday: z._default(z.boolean(), true),\n});\n\n/** Compacte contactgegevens (NAW) voor in de zijbalk. */\nexport const ContactWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"contactWidget\"),\n heading: z.optional(shortText),\n address: z.optional(shortText),\n phone: z.optional(shortText),\n email: z.optional(z.string().check(z.maxLength(320))),\n});\n\n/** Compacte social-iconenrij. */\nexport const SocialWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"socialWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ platform: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\") })).check(z.maxLength(12)), []),\n});\n\n/** Compacte nieuwsbrief-aanmelding (zelfde provider-action als het Nieuwsbrief-blok). */\nexport const NewsletterWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsletterWidget\"),\n heading: z.optional(shortText),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Aanmelden\"),\n actionUrl: z.optional(z.string().check(z.maxLength(2000))),\n});\n\n/** Compacte call-to-action-kaart. */\nexport const CtaWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"ctaWidget\"),\n title: z._default(shortText, \"\"),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Lees meer\"),\n buttonHref: z._default(z.string().check(z.maxLength(2000)), \"#\"),\n backgroundColor: z.optional(z.string().check(z.maxLength(40))),\n});\n\n/** Compacte fotostrip (zelfde items als de Galerij). */\nexport const GalleryWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"galleryWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ url: z.optional(z.string().check(z.maxLength(2000))), alt: z._default(shortText, \"\") })).check(z.maxLength(24)), []),\n columns: z._default(z.int().check(z.minimum(2)).check(z.maximum(4)), 3),\n});\n\n/** Compacte review/quote (zelfde items als Reviews). */\nexport const TestimonialsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"testimonialsWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ quote: z._default(shortText, \"\"), author: z._default(shortText, \"\"), rating: z.optional(z.int().check(z.minimum(1)).check(z.maximum(5))) })).check(z.maxLength(20)), []),\n});\n\n/** Compacte diensten-/kaartenlijst (zelfde kaarten als het Diensten-blok). */\nexport const CardsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"cardsWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ icon: z.optional(shortText), title: z._default(shortText, \"\"), text: z.optional(shortText), href: z.optional(z.string().check(z.maxLength(2000))) })).check(z.maxLength(10)), []),\n});\n\n/** Compacte downloadlijst (zelfde documenten als het Downloads-blok). */\nexport const DownloadsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"downloadsWidget\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 5),\n items: z._default(z.array(z.object({ label: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\"), meta: z.optional(shortText) })).check(z.maxLength(60)), []),\n});\n\n/** Compacte aftelteller. */\nexport const CountdownWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"countdownWidget\"),\n heading: z.optional(shortText),\n target: z._default(z.string().check(z.maxLength(40)), \"\"),\n expiredText: z._default(shortText, \"Het is zover!\"),\n});\n\n/** Verwijzing naar een gedeeld symbool (5.0): de sectie leeft in sites/{siteId}/symbols en\n * propageert naar élke pagina die ernaar verwijst. Loskoppelen (editor) maakt er een kloon van. */\nexport const SymbolRefBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"symbolRef\"),\n // Leeg = nog geen symbool gekozen (vers blok); render en server-expansie slaan dat stil over.\n symbolId: z._default(z.string().check(z.maxLength(120)), \"\").register(z.globalRegistry, { description: \"Symbool\" }),\n});\n\n/** Discriminated union over alle ingebouwde block-types. */\nexport const BuiltinBlockSchema = z.discriminatedUnion(\"_type\", [\n HeroBlockSchema,\n RichTextBlockSchema,\n ImageBlockSchema,\n GalleryBlockSchema,\n CtaBlockSchema,\n FaqBlockSchema,\n OpeningHoursBlockSchema,\n PricingBlockSchema,\n NewsListBlockSchema,\n FormBlockSchema,\n SpacerBlockSchema,\n ColumnsBlockSchema,\n TestimonialsBlockSchema,\n TeamBlockSchema,\n AgendaBlockSchema,\n SearchBlockSchema,\n VideoBlockSchema,\n FeatureBlockSchema,\n BannerBlockSchema,\n CountersBlockSchema,\n LogosBlockSchema,\n TimelineBlockSchema,\n ContactBlockSchema,\n MapBlockSchema,\n SocialBlockSchema,\n NewsletterBlockSchema,\n BookingBlockSchema,\n ButtonsBlockSchema,\n QuoteBlockSchema,\n DividerBlockSchema,\n AccordionBlockSchema,\n EmbedBlockSchema,\n // Indeling\n WithSidebarBlockSchema,\n SymbolRefBlockSchema,\n TabsBlockSchema,\n // Nieuwe modules\n CardsBlockSchema,\n DownloadsBlockSchema,\n PdfBlockSchema,\n CountdownBlockSchema,\n SliderBlockSchema,\n WhatsappChatBlockSchema,\n BeforeAfterBlockSchema,\n PortfolioBlockSchema,\n JobsBlockSchema,\n BreadcrumbsBlockSchema,\n // Widgets (compacte varianten)\n NewsWidgetSchema,\n AgendaWidgetSchema,\n OpeningHoursWidgetSchema,\n ContactWidgetSchema,\n SocialWidgetSchema,\n NewsletterWidgetSchema,\n CtaWidgetSchema,\n GalleryWidgetSchema,\n TestimonialsWidgetSchema,\n CardsWidgetSchema,\n DownloadsWidgetSchema,\n CountdownWidgetSchema,\n]);\nexport type BuiltinBlock = z.infer<typeof BuiltinBlockSchema>;\n\n/** Een willekeurig block (built-in of klant-specifiek). */\nexport const AnyBlockSchema = z.union([BuiltinBlockSchema, BlockBaseSchema]);\nexport type AnyBlock = z.infer<typeof AnyBlockSchema>;\n"],"mappings":"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","names":["blockBase","BlockBaseSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/blocks.ts"],"sourcesContent":["import * as z from \"zod/mini\";\n\n/**\n * Block-schema's (Zod) — de bron van waarheid voor content-structuur, gedeeld door core,\n * de server-helpers en de Cloud Functions. Pure data: geen React, geen Firebase.\n *\n * Elk block heeft een stabiele `_key` (voor reorder/diff) en een `_type` (registry-sleutel).\n * Built-ins staan hieronder; klant-blokken brengen hun eigen schema mee via `defineBlock`\n * (de registry valideert die per type — zie blocks/registry.ts `validateBlocks`).\n */\n\nexport { BlockStyleSchema, blockBase, BlockBaseSchema, type BlockStyle, type BlockBase } from \"./blockBase\";\nimport { blockBase, BlockBaseSchema } from \"./blockBase\";\n\n/** Korte, veilige id voor verwijzingen naar media-items / overige refs. */\nconst ref = z.string().check(z.maxLength(256));\nconst richText = z.string().check(z.maxLength(100_000)); // gesanitizede HTML (zie server/sanitize.ts)\nconst shortText = z.string().check(z.maxLength(2000));\n\n/** Knop met label, link en stijlvariant (gedeeld door hero/cta). */\nconst ButtonSchema = z.object({\n label: z._default(shortText, \"\"),\n href: z._default(z.string().check(z.maxLength(2000)), \"#\"),\n variant: z._default(z.enum([\"primary\", \"secondary\", \"outline\"]), \"primary\"),\n});\n\nexport const HeroBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"hero\"),\n /** Kicker/eyebrow: klein regeltje bóven de titel (bv. \"Hoveniers sinds 2001\"). */\n eyebrow: z.optional(shortText).register(z.globalRegistry, { description: \"Regeltje boven de titel\" }),\n title: z._default(shortText, \"\"),\n subtitle: z.optional(shortText),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** Videoachtergrond (mp4/webm); overschrijft de afbeelding als gezet. */\n videoUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** Kopniveau: \"1\" voor dé hoofdkop; \"2\" voor een tweede hero op dezelfde pagina\n * (twee h1's = slechte SEO/a11y). */\n headingLevel: z._default(z.enum([\"1\", \"2\"]), \"1\").register(z.globalRegistry, { description: \"Kopniveau (h1/h2)\" }),\n align: z._default(z.enum([\"left\", \"center\"]), \"left\"),\n /** Verticale uitlijning van de inhoud binnen de hero. */\n vAlign: z._default(z.enum([\"top\", \"center\", \"bottom\"]), \"center\"),\n /** Hoogte: sm/md/lg of volledige viewport. */\n minHeight: z._default(z.enum([\"auto\", \"sm\", \"md\", \"lg\", \"full\"]), \"auto\"),\n /** Donkere/gekleurde overlay over het beeld voor leesbaar contrast. */\n overlayColor: z.optional(z.string().check(z.maxLength(40))),\n overlayOpacity: z._default(z.number().check(z.minimum(0)).check(z.maximum(100)), 0),\n /** Gradient-overlay (donker onderaan → transparant boven) voor leesbare tekst op foto's. */\n overlayGradient: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Gradient-overlay\" }),\n /** Ingebouwde call-to-action-knoppen. */\n buttons: z._default(z.array(ButtonSchema).check(z.maxLength(3)), []),\n /**\n * 8.13: \"overlay\" = tekst óp de foto (zoals altijd); \"naast\" = tekst links, foto rechts in een\n * afgeronde kader — rustiger, en de tekst is altijd leesbaar. Kwam uit de kraamcadeau-site.\n */\n layout: z._default(z.enum([\"overlay\", \"naast\"]), \"overlay\"),\n /** 8.13: korte vertrouwenspunten onder de knoppen (\"Gratis offerte\", \"Groenkeur-erkend\"). */\n trust: z.optional(z.array(shortText).check(z.maxLength(6))),\n});\n\n/**\n * Sectiekop (8.13): regeltje + kop + inleiding als eigen blok, boven een rij kaarten, prijzen of\n * foto's. Sites maakten dit van een tekstblok met `<p class=\"eyebrow\">` erin — twaalf keer op één\n * site — en kregen dan per sectie een iets andere uitlijning.\n */\nexport const SectionHeadingBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"sectionHeading\"),\n eyebrow: z.optional(shortText),\n title: z._default(shortText, \"\"),\n intro: z.optional(shortText),\n align: z._default(z.enum([\"left\", \"center\"]), \"center\"),\n});\n\nexport const RichTextBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"richText\"),\n html: z._default(richText, \"\"),\n});\n\nexport const ImageBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"image\"),\n url: z.optional(z.string().check(z.maxLength(2000))),\n alt: z._default(shortText, \"\"),\n caption: z.optional(shortText),\n /** Maak de afbeelding klikbaar. */\n href: z.optional(z.string().check(z.maxLength(2000))),\n /** Uitlijning binnen de kolom. */\n align: z._default(z.enum([\"left\", \"center\", \"right\"]), \"center\"),\n /** Forceer een beeldverhouding (anders natuurlijk). */\n aspectRatio: z._default(z.enum([\"auto\", \"16/9\", \"4/3\", \"1/1\", \"3/2\"]), \"auto\"),\n});\n\nexport const GalleryBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"gallery\"),\n items: z._default(z.array(z.object({\n url: z.optional(z.string().check(z.maxLength(2000))),\n alt: z._default(shortText, \"\"),\n // Update-veilig toegevoegd (Galerij+): optioneel bijschrift onder de foto / in de lightbox.\n caption: z.optional(shortText),\n /** Categorie/label voor de filterbalk (bv. \"tuinen\", \"bestrating\"). */\n tag: z.optional(shortText),\n })).check(z.maxLength(60)), []),\n /** Filterbalk op item-tags tonen (alleen zichtbaar als er tags zijn). */\n showFilter: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Filterbalk op tags\" }),\n /** Aantal kolommen in het grid (0 = volg de module-instelling). */\n columns: z._default(z.int().check(z.minimum(0)).check(z.maximum(6)), 0),\n /** Klikken opent een lightbox (0 = volg de module-instelling). */\n lightbox: z._default(z.enum([\"inherit\", \"on\", \"off\"]), \"inherit\"),\n /** Beeldverhouding van de thumbnails. \"auto\" behoudt de eigen verhouding. */\n aspectRatio: z._default(z.enum([\"1/1\", \"4/3\", \"3/2\", \"16/9\", \"auto\"]), \"1/1\"),\n});\n\nexport const CtaBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"cta\"),\n title: z._default(shortText, \"\"),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Neem contact op\"),\n buttonHref: z._default(z.string().check(z.maxLength(2000)), \"#contact\"),\n /** Stijl van de hoofdknop. */\n buttonVariant: z._default(z.enum([\"primary\", \"secondary\", \"outline\"]), \"primary\"),\n /** Optionele tweede knop. */\n button2Label: z.optional(shortText),\n button2Href: z.optional(z.string().check(z.maxLength(2000))),\n /** Achtergrondkleur (CSS-waarde); leeg = thema-default. */\n backgroundColor: z.optional(z.string().check(z.maxLength(40))),\n /** Toon de CTA als vaste balk onderaan het scherm (sticky). */\n sticky: z._default(z.boolean(), false),\n});\n\nexport const FaqBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"faq\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n q: z._default(shortText, \"\"),\n a: z._default(shortText, \"\"),\n /** Optioneel rich-text-antwoord (HTML, met links/lijsten); wint van `a` als gezet. */\n aHtml: z.optional(richText),\n })).check(z.maxLength(50)), []),\n /** FAQ+: toon een zoekveld dat de vragen filtert (handig bij lange lijsten). */\n searchable: z._default(z.boolean(), false),\n /** FAQ+: voeg FAQPage-JSON-LD toe voor rich results in Google. */\n jsonLd: z._default(z.boolean(), false),\n /** Of items standaard open staan. Default dicht (gebruikelijke FAQ-UX). */\n defaultOpen: z._default(z.boolean(), false),\n});\n\nexport const OpeningHoursBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"openingHours\"),\n heading: z.optional(shortText),\n rows: z._default(z.array(z.object({ day: z._default(shortText, \"\"), hours: z._default(shortText, \"\") })).check(z.maxLength(14)), []),\n /** Live \"Nu geopend/gesloten\"-badge (werkt bij herkenbare tijden zoals \"09:00 – 17:00\"). */\n showStatus: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"'Nu geopend'-badge tonen\" }),\n /** OpeningHoursSpecification-JSON-LD voor zoekmachines. */\n jsonLd: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"JSON-LD (openingstijden)\" }),\n});\n\n/**\n * Prijslijst / menukaart (8.13): secties met regels (naam, omschrijving, prijs, duur, labels).\n * Voor de kapper (\"Knippen · 30 min · € 27,50\"), de horeca (\"Soep van de dag · € 7\"), de praktijk\n * (tarieven). Tot nu toe misbruikten sites het prijzenblok (pakketkaarten) of een tekstblok met een\n * lijstje — dat gaf geen nette uitlijning en verkeerde gegevens voor Google.\n */\nexport const PriceListBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"priceList\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n /** \"lijst\" = naam … prijs; \"menu\" = horecakaart (gecentreerd, sierlijk); \"kolommen\" = secties naast elkaar. */\n variant: z._default(z.enum([\"lijst\", \"menu\", \"kolommen\"]), \"lijst\"),\n sections: z._default(\n z.array(\n z.object({\n title: z._default(shortText, \"\"),\n note: z.optional(shortText),\n items: z._default(\n z.array(\n z.object({\n name: z._default(shortText, \"\"),\n description: z.optional(shortText),\n price: z.optional(shortText),\n duration: z.optional(shortText),\n /** Labels met komma's: \"vegetarisch, glutenvrij\" of \"nieuw\". */\n tags: z.optional(shortText),\n featured: z._default(z.boolean(), false),\n }),\n ).check(z.maxLength(80)),\n [],\n ),\n }),\n ).check(z.maxLength(20)),\n [],\n ),\n footnote: z.optional(shortText),\n /** Menu (horeca) of OfferCatalog voor Google. */\n jsonLd: z._default(z.boolean(), false),\n});\n\n/**\n * Beschikbaarheid (8.15): een kalender per accommodatie met de bezette nachten uit een iCal-link\n * (Airbnb, Booking.com, availcalendar …). Een bezoeker kiest aankomst en vertrek en gaat met\n * \"Aanvragen\" naar het aanvraagformulier, met periode en accommodatie al ingevuld.\n */\nexport const AvailabilityBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"availability\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n units: z._default(\n z.array(\n z.object({\n label: z._default(shortText, \"\"),\n /** iCal-export van je boekingssysteem (https://… of webcal://…). */\n icalUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n note: z.optional(shortText),\n }),\n ).check(z.maxLength(10)),\n [],\n ),\n months: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 4),\n minNights: z._default(z.int().check(z.minimum(1)).check(z.maximum(30)), 1),\n /** Pagina met het aanvraagformulier. */\n requestPath: z._default(z.string().check(z.maxLength(2000)), \"/contact\"),\n requestLabel: z._default(shortText, \"Aanvragen\"),\n /** Technische namen van de formuliervelden die vooraf ingevuld worden. */\n periodField: z._default(z.string().check(z.maxLength(60)), \"verblijf\"),\n unitField: z._default(z.string().check(z.maxLength(60)), \"accommodatie\"),\n});\n\nexport const PricingBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"pricing\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n label: z._default(shortText, \"\"),\n price: z._default(shortText, \"\"),\n detail: z.optional(shortText),\n /** Inbegrepen features (lijst met vinkjes). */\n features: z.optional(z.array(shortText).check(z.maxLength(20))),\n /** Per-tier knop. */\n ctaLabel: z.optional(shortText),\n ctaHref: z.optional(z.string().check(z.maxLength(2000))),\n /** Markeer als uitgelichte tier. */\n highlighted: z._default(z.boolean(), false),\n /** bv. \"/maand\". */\n billingPeriod: z.optional(shortText),\n })).check(z.maxLength(30)), []),\n note: z.optional(shortText),\n /** ISO-valutacode voor de JSON-LD (bv. \"EUR\", \"USD\"). */\n currency: z._default(z.string().check(z.maxLength(8)), \"EUR\").register(z.globalRegistry, { description: \"Valuta (ISO-code)\" }),\n /** Voeg Product/Offer-JSON-LD toe. */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const NewsListBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsList\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(50)), 6),\n /** Toon eerst dit aantal en de rest via \"Meer laden\" (0 = alles ineens, huidig gedrag). */\n pageSize: z._default(z.int().check(z.minimum(0)).check(z.maximum(24)), 0).register(z.globalRegistry, { description: \"Per pagina (0 = alles)\" }),\n basePath: z._default(z.string().check(z.maxLength(200)), \"/nieuws\"),\n});\n\nexport const FormBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"form\"),\n formId: ref,\n heading: z.optional(shortText),\n});\n\nexport const SpacerBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"spacer\"),\n size: z._default(z.enum([\"sm\", \"md\", \"lg\", \"xl\"]), \"md\"),\n});\n\nexport const TestimonialsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"testimonials\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n quote: z._default(shortText, \"\"),\n author: z._default(shortText, \"\"),\n role: z.optional(shortText),\n rating: z.optional(z.int().check(z.minimum(1)).check(z.maximum(5))),\n avatarUrl: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(40)), []),\n /** Weergave: lijst (kaarten) of grid. */\n layout: z._default(z.enum([\"list\", \"grid\"]), \"grid\"),\n /** Voeg Review-JSON-LD toe (rich results). */\n jsonLd: z._default(z.boolean(), false),\n /** 8.13: knop \"Laat een review achter\" (de link staat in het bedrijfsprofiel). */\n reviewKnop: z._default(z.boolean(), true),\n});\n\nexport const TeamBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"team\"),\n heading: z.optional(shortText),\n members: z._default(z.array(z.object({\n name: z._default(shortText, \"\"),\n role: z.optional(shortText),\n photoUrl: z.optional(z.string().check(z.maxLength(2000))),\n bio: z.optional(shortText),\n email: z.optional(z.string().check(z.maxLength(320))),\n phone: z.optional(shortText),\n social: z.optional(z.array(z.object({ platform: shortText, href: z.string().check(z.maxLength(2000)) })).check(z.maxLength(6))),\n /** Afdeling/team voor groepering (bv. \"Keuken\", \"Bediening\"). */\n department: z.optional(shortText),\n })).check(z.maxLength(60)), []),\n /** Voeg Person-JSON-LD per lid toe. */\n jsonLd: z._default(z.boolean(), false),\n /** Groepeer leden per afdeling (kopje per afdeling). */\n groupByDepartment: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Groeperen per afdeling\" }),\n});\n\nexport const AgendaBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"agenda\"),\n heading: z.optional(shortText),\n events: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n /** ISO-datum of -datetime, bv. \"2026-07-01\" of \"2026-07-01T19:30\". */\n start: z._default(z.string().check(z.maxLength(40)), \"\"),\n end: z.optional(z.string().check(z.maxLength(40))),\n location: z.optional(shortText),\n description: z.optional(shortText),\n url: z.optional(z.string().check(z.maxLength(2000))),\n // 8.14: voor Google (Event) en de bezoeker.\n /** Adres als het niet op je eigen adres is (anders het adres uit het bedrijfsprofiel). */\n address: z.optional(shortText),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** \"Gratis\", \"€ 12,50\". */\n price: z.optional(shortText),\n status: z.optional(z.enum([\"afgelast\", \"verplaatst\", \"online\"])),\n /** 8.15: terugkerend (tot `herhaalTot`, anders een jaar vooruit). */\n herhaal: z.optional(z.enum([\"wekelijks\", \"tweewekelijks\", \"maandelijks\"])),\n herhaalTot: z.optional(z.string().check(z.maxLength(40))),\n })).check(z.maxLength(100)), []),\n /** Verberg events waarvan de startdatum in het verleden ligt. */\n hidePast: z._default(z.boolean(), true),\n /** Voeg Event-JSON-LD toe. */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const SearchBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"search\"),\n placeholder: z._default(shortText, \"Zoeken…\"),\n /** Ook nieuwsartikelen doorzoeken (naast pagina's). */\n includeNews: z._default(z.boolean(), true),\n});\n\nexport const VideoBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"video\"),\n provider: z._default(z.enum([\"youtube\", \"vimeo\", \"file\"]), \"youtube\"),\n /** YouTube/Vimeo-id of -URL, of een mp4/webm-URL bij \"file\". */\n src: z._default(z.string().check(z.maxLength(2000)), \"\"),\n title: z.optional(shortText),\n caption: z.optional(shortText),\n /** Voorvertoningsbeeld (bij provider \"file\" als poster; met facade ook voor embeds). */\n posterUrl: z.optional(z.string().check(z.maxLength(2000))).register(z.globalRegistry, { description: \"Voorvertoningsbeeld\" }),\n /** Click-to-play: toon eerst een thumbnail met play-knop; de speler laadt pas na een klik\n * (sneller laden, minder third-party requests). */\n facade: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Click-to-play (laad speler pas na klik)\" }),\n /** Toon pas na cookie-consent (categorie \"marketing\"). */\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const FeatureBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"feature\"),\n heading: z.optional(shortText),\n /** Rich text (veldnaam \"html\" zodat het server-side gesanitized wordt bij publiceren). */\n html: z._default(richText, \"\"),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n imagePosition: z._default(z.enum([\"left\", \"right\"]), \"left\"),\n buttonLabel: z.optional(shortText),\n buttonHref: z.optional(z.string().check(z.maxLength(2000))),\n});\n\nexport const BannerBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"banner\"),\n text: z._default(shortText, \"\"),\n href: z.optional(z.string().check(z.maxLength(2000))),\n linkLabel: z.optional(shortText),\n tone: z._default(z.enum([\"info\", \"success\", \"warning\"]), \"info\"),\n dismissible: z._default(z.boolean(), true),\n /** Wijzig deze waarde (bv. \"2\") als de tekst verandert — wie de oude balk wegklikte ziet de nieuwe weer. */\n dismissVersion: z.optional(shortText).register(z.globalRegistry, { description: \"Versie (wijzig om balk opnieuw te tonen)\" }),\n});\n\nexport const CountersBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"counters\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ value: z._default(shortText, \"\"), label: z._default(shortText, \"\"), prefix: z.optional(shortText), suffix: z.optional(shortText) })).check(z.maxLength(8)), []),\n /** Tel omhoog wanneer het blok in beeld scrolt (respecteert prefers-reduced-motion). */\n animate: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"Tel-animatie\" }),\n});\n\nexport const LogosBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"logos\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ src: z._default(z.string().check(z.maxLength(2000)), \"\"), alt: z._default(shortText, \"\"), href: z.optional(z.string().check(z.maxLength(2000))) })).check(z.maxLength(40)), []),\n grayscale: z._default(z.boolean(), true),\n /** Doorlopende band (marquee) i.p.v. statische rij; pauzeert bij hover, statisch bij reduced-motion. */\n marquee: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Doorlopende band\" }),\n});\n\nexport const TimelineBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"timeline\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ title: z._default(shortText, \"\"), date: z.optional(shortText), text: z.optional(shortText), icon: z.optional(shortText) })).check(z.maxLength(40)), []),\n /** Alternerende links/rechts-layout op bredere schermen. */\n alternate: z._default(z.boolean(), false).register(z.globalRegistry, { description: \"Alternerende layout\" }),\n});\n\nexport const ContactBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"contact\"),\n heading: z.optional(shortText),\n address: z.optional(shortText),\n phone: z.optional(shortText),\n email: z.optional(z.string().check(z.maxLength(320))),\n hours: z.optional(shortText),\n /** Coördinaten voor de JSON-LD (Google toont het bedrijf dan op de juiste plek). */\n geo: z.optional(z.object({ lat: z.number().check(z.minimum(-90)).check(z.maximum(90)), lng: z.number().check(z.minimum(-180)).check(z.maximum(180)) })),\n /** Voeg ContactPoint/LocalBusiness-JSON-LD toe. */\n jsonLd: z._default(z.boolean(), false),\n});\n\nexport const MapBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"map\"),\n provider: z._default(z.enum([\"osm\", \"google\"]), \"osm\"),\n /** Adres/zoekterm (osm, legacy-fallback) of volledige embed-URL (google). */\n query: z._default(shortText, \"\"),\n /** OSM-coördinaten; hieruit + zoom bouwt de render een echte bbox (geen wereldkaart meer). */\n lat: z.optional(z.number().check(z.minimum(-90)).check(z.maximum(90))).register(z.globalRegistry, { description: \"Breedtegraad (lat)\" }),\n lng: z.optional(z.number().check(z.minimum(-180)).check(z.maximum(180))).register(z.globalRegistry, { description: \"Lengtegraad (lng)\" }),\n zoom: z._default(z.int().check(z.minimum(1)).check(z.maximum(20)), 14),\n height: z._default(z.int().check(z.minimum(150)).check(z.maximum(800)), 360),\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const SocialBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"social\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ platform: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\") })).check(z.maxLength(12)), []),\n});\n\nexport const NewsletterBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsletter\"),\n heading: z.optional(shortText),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Aanmelden\"),\n /** Waar het e-mailadres heen gaat (extern aanmeld-endpoint, POST email). Leeg = XiCMS-formulier. */\n actionUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** Formulier-id voor opslag via XiCMS (als actionUrl leeg is). */\n formId: z.optional(ref),\n /** AVG: indien gezet verschijnt een verplichte akkoord-checkbox met deze tekst. */\n consentText: z.optional(shortText).register(z.globalRegistry, { description: \"AVG-akkoordtekst (leeg = geen checkbox)\" }),\n});\n\n/** Bekende reserveer-/afspraaksystemen (preset; \"custom\" = vrije embed-URL). */\nexport const BookingProviderSchema = z.enum([\n \"custom\",\n \"calendly\",\n \"cal\",\n \"formitable\",\n \"resengo\",\n \"thefork\",\n \"treatwell\",\n \"salonized\",\n \"tablebooker\",\n \"bookingkit\",\n // 8.14: verhuur en overnachting. Alleen een volledige link uit het boekingssysteem (geen slug-\n // aanvulling: hun embedadressen verschillen per account).\n \"lodgify\",\n \"bookingexperts\",\n \"tommy\",\n \"bookingmotor\",\n]);\n\nexport const BookingBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"booking\"),\n heading: z.optional(shortText),\n /** Welk reserveersysteem; bepaalt de embed-helper en uitleg in de editor. */\n provider: z._default(BookingProviderSchema, \"custom\"),\n /** Embed-URL of account/slug bij een preset-provider (bv. Calendly-link, Formitable-restaurant-id). */\n embedUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n height: z._default(z.int().check(z.minimum(300)).check(z.maximum(1200)), 630),\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const ButtonsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"buttons\"),\n align: z._default(z.enum([\"left\", \"center\", \"right\"]), \"left\"),\n items: z._default(z.array(z.object({ label: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"#\"), variant: z._default(z.enum([\"primary\", \"secondary\", \"outline\"]), \"primary\") })).check(z.maxLength(6)), []),\n});\n\nexport const QuoteBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"quote\"),\n text: z._default(shortText, \"\"),\n author: z.optional(shortText),\n role: z.optional(shortText),\n});\n\nexport const DividerBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"divider\"),\n variant: z._default(z.enum([\"line\", \"dots\", \"space\"]), \"line\"),\n spacing: z._default(z.enum([\"sm\", \"md\", \"lg\"]), \"md\"),\n});\n\nexport const AccordionBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"accordion\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n body: z._default(shortText, \"\"),\n /** Optioneel rich-text-paneel (HTML); wint van `body` als gezet. */\n bodyHtml: z.optional(richText),\n })).check(z.maxLength(50)), []),\n /** Sta toe dat meerdere panelen tegelijk open staan. */\n multiple: z._default(z.boolean(), false),\n});\n\nexport const EmbedBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"embed\"),\n url: z._default(z.string().check(z.maxLength(2000)), \"\"),\n title: z.optional(shortText),\n height: z._default(z.int().check(z.minimum(150)).check(z.maximum(1200)), 420),\n /** Beeldverhouding; \"fixed\" gebruikt de vaste hoogte (huidig gedrag). */\n aspectRatio: z._default(z.enum([\"fixed\", \"16/9\", \"4/3\", \"1/1\"]), \"fixed\").register(z.globalRegistry, { description: \"Beeldverhouding\" }),\n /** Toon pas na cookie-toestemming (categorie \"marketing\"). */\n consentGated: z._default(z.boolean(), true),\n});\n\nexport const ColumnsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"columns\"),\n columns: z._default(z.array(z.object({ blocks: z._default(z.array(BlockBaseSchema).check(z.maxLength(50)), []) })).check(z.minLength(1)).check(z.maxLength(4)), []),\n});\n\n/**\n * Indelingsblok \"Met zijbalk\": een brede hoofdkolom met blokken plus een smalle (sticky) zijbalk\n * waarin je widgets zet (laatste nieuws, komende agenda, contact, …). Beide kanten bevatten gewone\n * blokken; de zijbalk is bedoeld voor de compacte widget-varianten.\n */\nexport const WithSidebarBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"withSidebar\"),\n main: z._default(z.array(BlockBaseSchema).check(z.maxLength(50)), []),\n aside: z._default(z.array(BlockBaseSchema).check(z.maxLength(30)), []),\n side: z._default(z.enum([\"left\", \"right\"]), \"right\"),\n sidebarWidth: z._default(z.enum([\"sm\", \"md\", \"lg\"]), \"md\"),\n sticky: z._default(z.boolean(), true),\n});\n\n/**\n * Tabbladen: per tab een eigen set blokken. Indelingsblok (layout) — handig om veel informatie\n * compact aan te bieden (bv. \"Beschrijving / Specificaties / Reviews\").\n */\nexport const TabsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"tabs\"),\n tabs: z._default(z.array(z.object({ label: z._default(shortText, \"Tab\"), blocks: z._default(z.array(BlockBaseSchema).check(z.maxLength(30)), []) })).check(z.minLength(1)).check(z.maxLength(10)), []),\n});\n\n/* ════════════════════ Nieuwe modules (volwaardig) ════════════════════ */\n\n/** Diensten/uitgelichte kaarten in een grid (icoon of beeld + titel + tekst + link). */\nexport const CardsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"cards\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n columns: z._default(z.int().check(z.minimum(1)).check(z.maximum(4)), 3),\n /** \"cover\" = beeld edge-to-edge bovenaan de kaart (postkaart-stijl); \"inset\" = ingekaderd. */\n imageStyle: z._default(z.enum([\"inset\", \"cover\"]), \"inset\"),\n items: z._default(z.array(z.object({\n icon: z.optional(shortText),\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n title: z._default(shortText, \"\"),\n text: z.optional(shortText),\n href: z.optional(z.string().check(z.maxLength(2000))),\n linkLabel: z.optional(shortText),\n /** Uitgelichte kaart (accentrand + subtiele schaal). */\n featured: z._default(z.boolean(), false),\n })).check(z.maxLength(24)), []),\n});\n\n/** Downloadbare documenten (brochures, prijslijsten, voorwaarden). */\nexport const DownloadsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"downloads\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ label: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\"), meta: z.optional(shortText) })).check(z.maxLength(60)), []),\n});\n\n/** Inline PDF-lezer voor één of meerdere documenten (bv. lunch-/diner-/wijnkaart). */\nexport const PdfBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"pdf\"),\n heading: z.optional(shortText),\n /** Eén of meer PDF's; bij meerdere verschijnen tabs (label) om te wisselen. */\n documents: z._default(z.array(z.object({ label: z._default(shortText, \"\"), url: z._default(z.string().check(z.maxLength(2000)), \"\") })).check(z.maxLength(12)), []),\n height: z._default(z.int().check(z.minimum(300)).check(z.maximum(1600)), 820),\n /** Toon een \"Open/Download\"-link onder de viewer. */\n showDownload: z._default(z.boolean(), true),\n});\n\n/** Afteltimer naar een datum/tijd (lancering, evenement, aanbieding). Client-side telling. */\nexport const CountdownBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"countdown\"),\n heading: z.optional(shortText),\n /** ISO-datetime, bv. \"2026-12-31T23:59\". */\n target: z._default(z.string().check(z.maxLength(40)), \"\"),\n expiredText: z._default(shortText, \"Het is zover!\"),\n showLabels: z._default(z.boolean(), true),\n /** Wat er gebeurt als de teller afloopt: melding tonen of het hele blok verbergen. */\n onExpire: z._default(z.enum([\"message\", \"hide\"]), \"message\").register(z.globalRegistry, { description: \"Na afloop\" }),\n});\n\n/** Beeld-/contentcarrousel (slider). Client-side; optioneel autoplay (respecteert reduced-motion). */\nexport const SliderBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"slider\"),\n slides: z._default(z.array(z.object({\n imageUrl: z.optional(z.string().check(z.maxLength(2000))),\n alt: z._default(shortText, \"\"),\n caption: z.optional(shortText),\n href: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(20)), []),\n autoplay: z._default(z.boolean(), false),\n /** Interval in seconden bij autoplay. */\n interval: z._default(z.int().check(z.minimum(2)).check(z.maximum(20)), 5),\n showDots: z._default(z.boolean(), true),\n showArrows: z._default(z.boolean(), true),\n aspectRatio: z._default(z.enum([\"16/9\", \"4/3\", \"3/2\", \"1/1\", \"21/9\"]), \"16/9\"),\n});\n\n/* ── 4.16: nieuwe modules ─────────────────────────────────────────────────── */\n\n/** Zwevende WhatsApp-/contactknop (wa.me-link; geen embed, dus geen consent nodig). */\nexport const WhatsappChatBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"whatsappChat\"),\n /** Telefoonnummer, internationaal (bv. \"31612345678\" of \"+31 6 12345678\"). */\n phone: z._default(shortText, \"\").register(z.globalRegistry, { description: \"Telefoonnummer (internationaal)\" }),\n /** Vooringevuld bericht in WhatsApp. */\n prefilledText: z.optional(shortText).register(z.globalRegistry, { description: \"Vooringevuld bericht\" }),\n /** Tekstlabel naast het icoon (leeg = alleen icoon). */\n label: z.optional(shortText).register(z.globalRegistry, { description: \"Label (optioneel)\" }),\n position: z._default(z.enum([\"br\", \"bl\"]), \"br\").register(z.globalRegistry, { description: \"Positie (rechts-/linksonder)\" }),\n});\n\n/** Voor/na-vergelijker: twee foto's met een sleepbare scheiding. */\nexport const BeforeAfterBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"beforeAfter\"),\n heading: z.optional(shortText),\n beforeUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n afterUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n beforeLabel: z._default(shortText, \"Voor\"),\n afterLabel: z._default(shortText, \"Na\"),\n alt: z._default(shortText, \"\"),\n aspectRatio: z._default(z.enum([\"16/9\", \"4/3\", \"3/2\", \"1/1\"]), \"4/3\"),\n});\n\n/** Portfolio/projecten-grid met categorie-filter en lightbox. */\nexport const PortfolioBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"portfolio\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n columns: z._default(z.int().check(z.minimum(1)).check(z.maximum(4)), 3),\n items: z._default(z.array(z.object({\n imageUrl: z._default(z.string().check(z.maxLength(2000)), \"\"),\n title: z._default(shortText, \"\"),\n category: z.optional(shortText),\n description: z.optional(shortText),\n href: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(60)), []),\n /** Filterbalk op categorieën (alleen zichtbaar als er categorieën zijn). */\n showFilter: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"Filterbalk op categorieën\" }),\n lightbox: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"Lightbox bij klikken\" }),\n});\n\n/** Vacatures met JobPosting-JSON-LD (Google Jobs). */\nexport const JobsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"jobs\"),\n heading: z.optional(shortText),\n intro: z.optional(shortText),\n items: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n location: z.optional(shortText),\n /** bv. \"Fulltime\", \"Parttime\", \"BBL\". */\n employmentType: z.optional(shortText),\n description: z.optional(shortText),\n salary: z.optional(shortText),\n applyUrl: z.optional(z.string().check(z.maxLength(2000))),\n /** ISO-datum van plaatsing (voor Google Jobs). */\n datePosted: z.optional(shortText),\n })).check(z.maxLength(30)), []),\n jsonLd: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"JSON-LD (Google Jobs)\" }),\n});\n\n/** Kruimelpad, afgeleid van de URL, met BreadcrumbList-JSON-LD. */\nexport const BreadcrumbsBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"breadcrumbs\"),\n homeLabel: z._default(shortText, \"Home\"),\n jsonLd: z._default(z.boolean(), true).register(z.globalRegistry, { description: \"JSON-LD (BreadcrumbList)\" }),\n});\n\n/* ════════════════════ Widgets (compacte zijbalk-varianten) ════════════════════ */\n\n/** Compacte lijst met de laatste nieuwsartikelen (haalt live uit dezelfde nieuws-collectie). */\nexport const NewsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsWidget\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 5),\n basePath: z._default(z.string().check(z.maxLength(200)), \"/nieuws\"),\n showImages: z._default(z.boolean(), false),\n});\n\n/** Compacte lijst met de eerstvolgende evenementen (zelfde events + datumlogica als het Agenda-blok). */\nexport const AgendaWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"agendaWidget\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 5),\n events: z._default(z.array(z.object({\n title: z._default(shortText, \"\"),\n start: z._default(z.string().check(z.maxLength(40)), \"\"),\n end: z.optional(z.string().check(z.maxLength(40))),\n location: z.optional(shortText),\n url: z.optional(z.string().check(z.maxLength(2000))),\n })).check(z.maxLength(100)), []),\n hidePast: z._default(z.boolean(), true),\n});\n\n/** Compacte openingstijden met \"vandaag\" gemarkeerd (zelfde rijen als het Openingstijden-blok). */\nexport const OpeningHoursWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"openingHoursWidget\"),\n heading: z.optional(shortText),\n rows: z._default(z.array(z.object({ day: z._default(shortText, \"\"), hours: z._default(shortText, \"\") })).check(z.maxLength(14)), []),\n highlightToday: z._default(z.boolean(), true),\n});\n\n/** Compacte contactgegevens (NAW) voor in de zijbalk. */\nexport const ContactWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"contactWidget\"),\n heading: z.optional(shortText),\n address: z.optional(shortText),\n phone: z.optional(shortText),\n email: z.optional(z.string().check(z.maxLength(320))),\n});\n\n/** Compacte social-iconenrij. */\nexport const SocialWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"socialWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ platform: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\") })).check(z.maxLength(12)), []),\n});\n\n/** Compacte nieuwsbrief-aanmelding (zelfde provider-action als het Nieuwsbrief-blok). */\nexport const NewsletterWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"newsletterWidget\"),\n heading: z.optional(shortText),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Aanmelden\"),\n actionUrl: z.optional(z.string().check(z.maxLength(2000))),\n});\n\n/** Compacte call-to-action-kaart. */\nexport const CtaWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"ctaWidget\"),\n title: z._default(shortText, \"\"),\n text: z.optional(shortText),\n buttonLabel: z._default(shortText, \"Lees meer\"),\n buttonHref: z._default(z.string().check(z.maxLength(2000)), \"#\"),\n backgroundColor: z.optional(z.string().check(z.maxLength(40))),\n});\n\n/** Compacte fotostrip (zelfde items als de Galerij). */\nexport const GalleryWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"galleryWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ url: z.optional(z.string().check(z.maxLength(2000))), alt: z._default(shortText, \"\") })).check(z.maxLength(24)), []),\n columns: z._default(z.int().check(z.minimum(2)).check(z.maximum(4)), 3),\n});\n\n/** Compacte review/quote (zelfde items als Reviews). */\nexport const TestimonialsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"testimonialsWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ quote: z._default(shortText, \"\"), author: z._default(shortText, \"\"), rating: z.optional(z.int().check(z.minimum(1)).check(z.maximum(5))) })).check(z.maxLength(20)), []),\n});\n\n/** Compacte diensten-/kaartenlijst (zelfde kaarten als het Diensten-blok). */\nexport const CardsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"cardsWidget\"),\n heading: z.optional(shortText),\n items: z._default(z.array(z.object({ icon: z.optional(shortText), title: z._default(shortText, \"\"), text: z.optional(shortText), href: z.optional(z.string().check(z.maxLength(2000))) })).check(z.maxLength(10)), []),\n});\n\n/** Compacte downloadlijst (zelfde documenten als het Downloads-blok). */\nexport const DownloadsWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"downloadsWidget\"),\n heading: z.optional(shortText),\n limit: z._default(z.int().check(z.minimum(1)).check(z.maximum(12)), 5),\n items: z._default(z.array(z.object({ label: z._default(shortText, \"\"), href: z._default(z.string().check(z.maxLength(2000)), \"\"), meta: z.optional(shortText) })).check(z.maxLength(60)), []),\n});\n\n/** Compacte aftelteller. */\nexport const CountdownWidgetSchema = z.object({\n ...blockBase,\n _type: z.literal(\"countdownWidget\"),\n heading: z.optional(shortText),\n target: z._default(z.string().check(z.maxLength(40)), \"\"),\n expiredText: z._default(shortText, \"Het is zover!\"),\n});\n\n/** Verwijzing naar een gedeeld symbool (5.0): de sectie leeft in sites/{siteId}/symbols en\n * propageert naar élke pagina die ernaar verwijst. Loskoppelen (editor) maakt er een kloon van. */\nexport const SymbolRefBlockSchema = z.object({\n ...blockBase,\n _type: z.literal(\"symbolRef\"),\n // Leeg = nog geen symbool gekozen (vers blok); render en server-expansie slaan dat stil over.\n symbolId: z._default(z.string().check(z.maxLength(120)), \"\").register(z.globalRegistry, { description: \"Symbool\" }),\n});\n\n/** Discriminated union over alle ingebouwde block-types. */\nexport const BuiltinBlockSchema = z.discriminatedUnion(\"_type\", [\n HeroBlockSchema,\n RichTextBlockSchema,\n ImageBlockSchema,\n GalleryBlockSchema,\n CtaBlockSchema,\n FaqBlockSchema,\n OpeningHoursBlockSchema,\n PricingBlockSchema,\n NewsListBlockSchema,\n FormBlockSchema,\n SpacerBlockSchema,\n ColumnsBlockSchema,\n TestimonialsBlockSchema,\n TeamBlockSchema,\n AgendaBlockSchema,\n SearchBlockSchema,\n VideoBlockSchema,\n FeatureBlockSchema,\n BannerBlockSchema,\n CountersBlockSchema,\n LogosBlockSchema,\n TimelineBlockSchema,\n ContactBlockSchema,\n MapBlockSchema,\n SocialBlockSchema,\n NewsletterBlockSchema,\n BookingBlockSchema,\n ButtonsBlockSchema,\n QuoteBlockSchema,\n DividerBlockSchema,\n AccordionBlockSchema,\n EmbedBlockSchema,\n // Indeling\n WithSidebarBlockSchema,\n SymbolRefBlockSchema,\n TabsBlockSchema,\n // Nieuwe modules\n CardsBlockSchema,\n PriceListBlockSchema,\n SectionHeadingBlockSchema,\n AvailabilityBlockSchema,\n DownloadsBlockSchema,\n PdfBlockSchema,\n CountdownBlockSchema,\n SliderBlockSchema,\n WhatsappChatBlockSchema,\n BeforeAfterBlockSchema,\n PortfolioBlockSchema,\n JobsBlockSchema,\n BreadcrumbsBlockSchema,\n // Widgets (compacte varianten)\n NewsWidgetSchema,\n AgendaWidgetSchema,\n OpeningHoursWidgetSchema,\n ContactWidgetSchema,\n SocialWidgetSchema,\n NewsletterWidgetSchema,\n CtaWidgetSchema,\n GalleryWidgetSchema,\n TestimonialsWidgetSchema,\n CardsWidgetSchema,\n DownloadsWidgetSchema,\n CountdownWidgetSchema,\n]);\nexport type BuiltinBlock = z.infer<typeof BuiltinBlockSchema>;\n\n/** Een willekeurig block (built-in of klant-specifiek). */\nexport const AnyBlockSchema = z.union([BuiltinBlockSchema, BlockBaseSchema]);\nexport type AnyBlock = z.infer<typeof AnyBlockSchema>;\n"],"mappings":"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","names":["blockBase","BlockBaseSchema"]}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as z from "zod/mini";
|
|
2
|
+
/**
|
|
3
|
+
* Het bedrijfsprofiel (8.13): naam, adres, telefoon, openingstijden — één keer ingevuld in
|
|
4
|
+
* /beheer → Instellingen → Bedrijf, en daarna overal gebruikt.
|
|
5
|
+
*
|
|
6
|
+
* Tot nu toe stonden deze gegevens op vier plekken tegelijk: hardcoded in de footer van de site,
|
|
7
|
+
* hardcoded als LocalBusiness-JSON-LD in `app/layout.tsx`, en nog eens in een contact- en een
|
|
8
|
+
* openingstijdenblok. Een klant die van telefoonnummer wisselde, kon er maar één van aanpassen. Nu:
|
|
9
|
+
* - de JSON-LD voor Google komt automatisch uit dit profiel (`bedrijfJsonLd`);
|
|
10
|
+
* - het contact- en openingstijdenblok vallen erop terug als ze zelf leeg zijn;
|
|
11
|
+
* - de footer kan een contactkolom uit het profiel tonen.
|
|
12
|
+
*
|
|
13
|
+
* Openingstijden gebruiken hetzelfde rijmodel als het openingstijdenblok ({ day, hours } in gewone
|
|
14
|
+
* taal: "Maandag t/m vrijdag" · "09:00 – 17:00"), dus dezelfde parser voor "nu open" en Google.
|
|
15
|
+
*/
|
|
16
|
+
/** schema.org-types die een klant kan kiezen, met een Nederlandse naam. */
|
|
17
|
+
export declare const BEDRIJFSTYPES: readonly [{
|
|
18
|
+
readonly value: "LocalBusiness";
|
|
19
|
+
readonly label: "Lokaal bedrijf (algemeen)";
|
|
20
|
+
}, {
|
|
21
|
+
readonly value: "HomeAndConstructionBusiness";
|
|
22
|
+
readonly label: "Bouw, klussen en tuin";
|
|
23
|
+
}, {
|
|
24
|
+
readonly value: "ProfessionalService";
|
|
25
|
+
readonly label: "Zakelijke dienstverlening";
|
|
26
|
+
}, {
|
|
27
|
+
readonly value: "HairSalon";
|
|
28
|
+
readonly label: "Kapper of barbier";
|
|
29
|
+
}, {
|
|
30
|
+
readonly value: "BeautySalon";
|
|
31
|
+
readonly label: "Schoonheidssalon";
|
|
32
|
+
}, {
|
|
33
|
+
readonly value: "Restaurant";
|
|
34
|
+
readonly label: "Restaurant";
|
|
35
|
+
}, {
|
|
36
|
+
readonly value: "CafeOrCoffeeShop";
|
|
37
|
+
readonly label: "Café of koffiebar";
|
|
38
|
+
}, {
|
|
39
|
+
readonly value: "Bakery";
|
|
40
|
+
readonly label: "Bakkerij";
|
|
41
|
+
}, {
|
|
42
|
+
readonly value: "Store";
|
|
43
|
+
readonly label: "Winkel";
|
|
44
|
+
}, {
|
|
45
|
+
readonly value: "LodgingBusiness";
|
|
46
|
+
readonly label: "Verhuur of overnachting";
|
|
47
|
+
}, {
|
|
48
|
+
readonly value: "BedAndBreakfast";
|
|
49
|
+
readonly label: "Bed & breakfast";
|
|
50
|
+
}, {
|
|
51
|
+
readonly value: "MedicalBusiness";
|
|
52
|
+
readonly label: "Zorg of praktijk";
|
|
53
|
+
}, {
|
|
54
|
+
readonly value: "Physiotherapy";
|
|
55
|
+
readonly label: "Fysiotherapie";
|
|
56
|
+
}, {
|
|
57
|
+
readonly value: "Dentist";
|
|
58
|
+
readonly label: "Tandarts";
|
|
59
|
+
}, {
|
|
60
|
+
readonly value: "SportsActivityLocation";
|
|
61
|
+
readonly label: "Sport of fitness";
|
|
62
|
+
}, {
|
|
63
|
+
readonly value: "EducationalOrganization";
|
|
64
|
+
readonly label: "Onderwijs of cursus";
|
|
65
|
+
}, {
|
|
66
|
+
readonly value: "Church";
|
|
67
|
+
readonly label: "Kerk";
|
|
68
|
+
}, {
|
|
69
|
+
readonly value: "NGO";
|
|
70
|
+
readonly label: "Stichting of vereniging";
|
|
71
|
+
}];
|
|
72
|
+
export declare const BusinessHoursRowSchema: z.ZodMiniObject<{
|
|
73
|
+
day: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
74
|
+
hours: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
/** Een afwijkende dag of periode: feestdag, vakantie, koopavond. */
|
|
77
|
+
export declare const BusinessExceptionSchema: z.ZodMiniObject<{
|
|
78
|
+
date: z.ZodMiniString<string>;
|
|
79
|
+
until: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
80
|
+
hours: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
81
|
+
label: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
export declare const BusinessSchema: z.ZodMiniObject<{
|
|
84
|
+
type: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
85
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
86
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
87
|
+
phone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
88
|
+
email: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniEmail, z.ZodMiniLiteral<"">]>>;
|
|
89
|
+
whatsapp: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
90
|
+
address: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
91
|
+
street: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
92
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
93
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
94
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
95
|
+
}, z.core.$strip>>;
|
|
96
|
+
geo: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
97
|
+
lat: z.ZodMiniNumber<number>;
|
|
98
|
+
lng: z.ZodMiniNumber<number>;
|
|
99
|
+
}, z.core.$strip>>;
|
|
100
|
+
hours: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
101
|
+
day: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
102
|
+
hours: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
103
|
+
}, z.core.$strip>>>;
|
|
104
|
+
hoursNote: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
105
|
+
exceptions: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
|
|
106
|
+
date: z.ZodMiniString<string>;
|
|
107
|
+
until: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
108
|
+
hours: z.ZodMiniDefault<z.ZodMiniString<string>>;
|
|
109
|
+
label: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
110
|
+
}, z.core.$strip>>>;
|
|
111
|
+
priceRange: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
112
|
+
kvk: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
113
|
+
reviewUrl: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
114
|
+
sameAs: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
115
|
+
}, z.core.$strip>;
|
|
116
|
+
export type Business = z.infer<typeof BusinessSchema>;
|
|
117
|
+
export type BusinessException = z.infer<typeof BusinessExceptionSchema>;
|