@xiwebdesign/xicms-core 7.31.0 → 8.16.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 +23 -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 -60
- 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 +248 -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 +159 -0
- package/dist/admin/settings/BedrijfInstellingen.js.map +1 -0
- 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 +56 -17
- 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/auth/AuthProvider.js +1 -0
- package/dist/auth/AuthProvider.js.map +1 -1
- package/dist/bedrijf/bedrijf.d.ts +44 -0
- package/dist/bedrijf/bedrijf.js +125 -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 +37 -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 +3 -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/consentEmbed.js +26 -9
- package/dist/blocks/builtins/consentEmbed.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/onderOffset.d.ts +13 -0
- package/dist/components/onderOffset.js +74 -0
- package/dist/components/onderOffset.js.map +1 -0
- package/dist/components/site/Bedrijfsnummers.d.ts +9 -0
- package/dist/components/site/Bedrijfsnummers.js +12 -0
- package/dist/components/site/Bedrijfsnummers.js.map +1 -0
- package/dist/components/site/SiteFooter.d.ts +6 -1
- package/dist/components/site/SiteFooter.js +62 -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/firebase/functionsClient.js +5 -1
- package/dist/firebase/functionsClient.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +20 -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 +22 -9
- package/dist/modules/builtins.js.map +1 -1
- package/dist/modules/consent/ConsentBanner.d.ts +5 -0
- package/dist/modules/consent/ConsentBanner.js +8 -7
- package/dist/modules/consent/ConsentBanner.js.map +1 -1
- package/dist/modules/consent/standaard.d.ts +12 -0
- package/dist/modules/consent/standaard.js +10 -0
- package/dist/modules/consent/standaard.js.map +1 -0
- package/dist/modules/consent/useConsent.d.ts +4 -0
- package/dist/modules/consent/useConsent.js +30 -1
- package/dist/modules/consent/useConsent.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 +148 -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 +473 -0
- package/dist/schema/blocks.js +105 -5
- package/dist/schema/blocks.js.map +1 -1
- package/dist/schema/business.d.ts +118 -0
- package/dist/schema/business.js +75 -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 +103 -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 +69 -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 +2 -0
- 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 +1181 -212
- 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 +5 -4
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { heroBeeldPatch, videoAdresProbleem } from "../lib/heroHulp.js";
|
|
4
|
+
import { useIsSuperadmin } from "../lib/useIsSuperadmin.js";
|
|
5
|
+
import { LinkVeld } from "../ui/LinkVeld.js";
|
|
6
|
+
import { KleurVeld } from "../ui/KleurVeld.js";
|
|
3
7
|
import { useEffect, useState } from "react";
|
|
4
8
|
import { collection, getDocs } from "firebase/firestore";
|
|
5
9
|
import { getDb } from "../../firebase/client.js";
|
|
@@ -8,26 +12,34 @@ import { Select } from "../ui/select.js";
|
|
|
8
12
|
import { Switch } from "../ui/switch.js";
|
|
9
13
|
import { ArrayEditor } from "../ui/ArrayEditor.js";
|
|
10
14
|
import { RichTextEditor } from "../editors/RichTextEditor.js";
|
|
11
|
-
import {
|
|
15
|
+
import { ImageField } from "../ui/ImageField.js";
|
|
12
16
|
import { useRegistry } from "../../blocks/context.js";
|
|
13
17
|
import { GenericEditor } from "./GenericEditor.js";
|
|
14
18
|
import { SymbolRefEditor } from "./SymbolRefEditor.js";
|
|
15
19
|
const VARIANT_OPTIONS = [
|
|
16
20
|
{ value: "primary", label: "Primair" },
|
|
17
21
|
{ value: "secondary", label: "Secundair" },
|
|
18
|
-
{ value: "outline", label: "
|
|
22
|
+
{ value: "outline", label: "Omlijnd" }
|
|
19
23
|
];
|
|
20
24
|
function patch(block, onChange, part) {
|
|
21
25
|
onChange({ ...block, ...part });
|
|
22
26
|
}
|
|
23
|
-
function ImageUploadButton({ siteId, onUploaded }) {
|
|
24
|
-
return /* @__PURE__ */ jsx(MediaPickerButton, { siteId, onSelect: (m) => onUploaded(m.url, m.mediaId, m.alt) });
|
|
25
|
-
}
|
|
26
27
|
function HeroEditor({ block, siteId, onChange }) {
|
|
27
28
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
28
29
|
/* @__PURE__ */ jsx(Field, { label: "Regeltje boven de titel (optioneel)", hint: "bv. 'Hoveniers sinds 2001'", children: /* @__PURE__ */ jsx(Input, { value: block.eyebrow ?? "", onChange: (e) => patch(block, onChange, { eyebrow: e.target.value || void 0 }) }) }),
|
|
29
30
|
/* @__PURE__ */ jsx(Field, { label: "Titel", children: /* @__PURE__ */ jsx(Input, { value: block.title ?? "", onChange: (e) => patch(block, onChange, { title: e.target.value }) }) }),
|
|
30
31
|
/* @__PURE__ */ jsx(Field, { label: "Ondertitel", children: /* @__PURE__ */ jsx(Input, { value: block.subtitle ?? "", onChange: (e) => patch(block, onChange, { subtitle: e.target.value }) }) }),
|
|
32
|
+
/* @__PURE__ */ jsx(Field, { label: "Weergave", hint: "Naast de foto is rustiger en altijd leesbaar; op de foto is groots.", children: /* @__PURE__ */ jsx(
|
|
33
|
+
Select,
|
|
34
|
+
{
|
|
35
|
+
value: block.layout ?? "overlay",
|
|
36
|
+
onValueChange: (v) => patch(block, onChange, { layout: v }),
|
|
37
|
+
options: [
|
|
38
|
+
{ value: "overlay", label: "Tekst op de foto" },
|
|
39
|
+
{ value: "naast", label: "Tekst naast de foto" }
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
) }),
|
|
31
43
|
/* @__PURE__ */ jsx(Field, { label: "Uitlijning", children: /* @__PURE__ */ jsx(
|
|
32
44
|
Select,
|
|
33
45
|
{
|
|
@@ -39,11 +51,11 @@ function HeroEditor({ block, siteId, onChange }) {
|
|
|
39
51
|
]
|
|
40
52
|
}
|
|
41
53
|
) }),
|
|
42
|
-
/* @__PURE__ */ jsx(Field, { label: "Achtergrondafbeelding", children: /* @__PURE__ */
|
|
43
|
-
|
|
44
|
-
/* @__PURE__ */ jsx(
|
|
45
|
-
|
|
46
|
-
|
|
54
|
+
/* @__PURE__ */ jsx(Field, { label: "Achtergrondafbeelding", children: /* @__PURE__ */ jsx(ImageField, { siteId, value: block.imageUrl, onChange: (url) => patch(block, onChange, heroBeeldPatch(block, url)) }) }),
|
|
55
|
+
/* @__PURE__ */ jsxs(Field, { label: "Video-achtergrond (mp4/webm, optioneel)", hint: "Overschrijft de afbeelding. Houd hem kort en klein (onder 10 MB).", children: [
|
|
56
|
+
/* @__PURE__ */ jsx(Input, { value: block.videoUrl ?? "", onChange: (e) => patch(block, onChange, { videoUrl: e.target.value }) }),
|
|
57
|
+
videoAdresProbleem(block.videoUrl) && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-amber-700", children: videoAdresProbleem(block.videoUrl) })
|
|
58
|
+
] }),
|
|
47
59
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
48
60
|
/* @__PURE__ */ jsx(Field, { label: "Verticale uitlijning", children: /* @__PURE__ */ jsx(
|
|
49
61
|
Select,
|
|
@@ -71,10 +83,31 @@ function HeroEditor({ block, siteId, onChange }) {
|
|
|
71
83
|
]
|
|
72
84
|
}
|
|
73
85
|
) }),
|
|
74
|
-
/* @__PURE__ */ jsx(
|
|
86
|
+
/* @__PURE__ */ jsx(KleurVeld, { label: "Overlay-kleur (optioneel)", value: block.overlayColor ?? "", placeholder: "#000000", onChange: (overlayColor) => patch(block, onChange, { overlayColor }) }),
|
|
75
87
|
/* @__PURE__ */ jsx(Field, { label: "Overlay-dekking (%)", children: /* @__PURE__ */ jsx(Input, { type: "number", value: String(block.overlayOpacity ?? 0), onChange: (e) => patch(block, onChange, { overlayOpacity: Math.max(0, Math.min(100, Number(e.target.value) || 0)) }) }) }),
|
|
76
88
|
/* @__PURE__ */ jsx(ToggleField, { label: "Gradient-overlay (donker onderaan \u2014 leesbare tekst op foto's)", checked: Boolean(block.overlayGradient), onChange: (v) => patch(block, onChange, { overlayGradient: v }) })
|
|
77
89
|
] }),
|
|
90
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
91
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Vertrouwenspunten (optioneel)" }),
|
|
92
|
+
/* @__PURE__ */ jsx("p", { className: "mb-1 text-xs text-slate-500", children: "Korte punten met een vinkje onder de knoppen, bv. \u201CGratis offerte\u201D of \u201CGroenkeur-erkend\u201D." }),
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
ArrayEditor,
|
|
95
|
+
{
|
|
96
|
+
items: block.trust ?? [],
|
|
97
|
+
onChange: (trust) => patch(block, onChange, { trust }),
|
|
98
|
+
newItem: () => "",
|
|
99
|
+
addLabel: "+ Punt",
|
|
100
|
+
renderRow: (t, _update, i) => /* @__PURE__ */ jsx(
|
|
101
|
+
Input,
|
|
102
|
+
{
|
|
103
|
+
value: t,
|
|
104
|
+
maxLength: 60,
|
|
105
|
+
onChange: (e) => patch(block, onChange, { trust: (block.trust ?? []).map((x, j) => j === i ? e.target.value : x) })
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
] }),
|
|
78
111
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
79
112
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Knoppen" }),
|
|
80
113
|
/* @__PURE__ */ jsx(
|
|
@@ -84,10 +117,12 @@ function HeroEditor({ block, siteId, onChange }) {
|
|
|
84
117
|
onChange: (buttons) => patch(block, onChange, { buttons }),
|
|
85
118
|
newItem: () => ({ label: "", href: "#", variant: "primary" }),
|
|
86
119
|
addLabel: "+ Knop",
|
|
87
|
-
renderRow: (b, update) => /* @__PURE__ */ jsxs("div", { className: "grid
|
|
88
|
-
/* @__PURE__ */
|
|
89
|
-
|
|
90
|
-
|
|
120
|
+
renderRow: (b, update) => /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
121
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1fr_auto] gap-2", children: [
|
|
122
|
+
/* @__PURE__ */ jsx(Input, { value: b.label, placeholder: "Tekst op de knop", onChange: (e) => update({ label: e.target.value }) }),
|
|
123
|
+
/* @__PURE__ */ jsx(Select, { value: b.variant, onValueChange: (v) => update({ variant: v }), options: VARIANT_OPTIONS })
|
|
124
|
+
] }),
|
|
125
|
+
/* @__PURE__ */ jsx(LinkVeld, { siteId, value: b.href, onChange: (href) => update({ href }) })
|
|
91
126
|
] })
|
|
92
127
|
}
|
|
93
128
|
)
|
|
@@ -99,14 +134,11 @@ function RichTextBlockEditor({ block, siteId, onChange }) {
|
|
|
99
134
|
}
|
|
100
135
|
function ImageEditor({ block, siteId, onChange }) {
|
|
101
136
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
102
|
-
/* @__PURE__ */ jsx(Field, { label: "Afbeelding", children: /* @__PURE__ */
|
|
103
|
-
/* @__PURE__ */ jsx(Input, { value: block.url ?? "", onChange: (e) => patch(block, onChange, { url: e.target.value }), placeholder: "URL of upload \u2192" }),
|
|
104
|
-
/* @__PURE__ */ jsx(ImageUploadButton, { siteId, onUploaded: (url) => patch(block, onChange, { url }) })
|
|
105
|
-
] }) }),
|
|
137
|
+
/* @__PURE__ */ jsx(Field, { label: "Afbeelding", children: /* @__PURE__ */ jsx(ImageField, { siteId, value: block.url, onChange: (url) => patch(block, onChange, { url }) }) }),
|
|
106
138
|
/* @__PURE__ */ jsx(Field, { label: "Alt-tekst (toegankelijkheid)", hint: "Beschrijf de afbeelding kort.", children: /* @__PURE__ */ jsx(Input, { value: block.alt ?? "", onChange: (e) => patch(block, onChange, { alt: e.target.value }) }) }),
|
|
107
139
|
/* @__PURE__ */ jsx(Field, { label: "Bijschrift", children: /* @__PURE__ */ jsx(Input, { value: block.caption ?? "", onChange: (e) => patch(block, onChange, { caption: e.target.value }) }) }),
|
|
108
140
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-2", children: [
|
|
109
|
-
/* @__PURE__ */ jsx(Field, { label: "Link (klikbaar)", children: /* @__PURE__ */ jsx(
|
|
141
|
+
/* @__PURE__ */ jsx(Field, { label: "Link (klikbaar)", children: /* @__PURE__ */ jsx(LinkVeld, { siteId, value: block.href ?? "", onChange: (href) => patch(block, onChange, { href }), leegTekst: "Geen link (optioneel)" }) }),
|
|
110
142
|
/* @__PURE__ */ jsx(Field, { label: "Uitlijning", children: /* @__PURE__ */ jsx(
|
|
111
143
|
Select,
|
|
112
144
|
{
|
|
@@ -157,7 +189,7 @@ function FaqEditor({ block, siteId, onChange }) {
|
|
|
157
189
|
)
|
|
158
190
|
] });
|
|
159
191
|
}
|
|
160
|
-
function PricingEditor({ block, onChange }) {
|
|
192
|
+
function PricingEditor({ block, siteId, onChange }) {
|
|
161
193
|
const items = block.items ?? [];
|
|
162
194
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
163
195
|
/* @__PURE__ */ jsx(Field, { label: "Kop", children: /* @__PURE__ */ jsx(Input, { value: block.heading ?? "", onChange: (e) => patch(block, onChange, { heading: e.target.value }) }) }),
|
|
@@ -185,7 +217,7 @@ function PricingEditor({ block, onChange }) {
|
|
|
185
217
|
) }),
|
|
186
218
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
187
219
|
/* @__PURE__ */ jsx(Input, { value: it.ctaLabel ?? "", placeholder: "Knoptekst", onChange: (e) => update({ ctaLabel: e.target.value }) }),
|
|
188
|
-
/* @__PURE__ */ jsx(
|
|
220
|
+
/* @__PURE__ */ jsx(LinkVeld, { siteId, value: it.ctaHref ?? "", onChange: (ctaHref) => update({ ctaHref }), leegTekst: "Knop zonder link" })
|
|
189
221
|
] }),
|
|
190
222
|
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm", children: [
|
|
191
223
|
/* @__PURE__ */ jsx("input", { type: "checkbox", checked: Boolean(it.highlighted), onChange: (e) => update({ highlighted: e.target.checked }) }),
|
|
@@ -197,7 +229,7 @@ function PricingEditor({ block, onChange }) {
|
|
|
197
229
|
/* @__PURE__ */ jsx(Field, { label: "Voetnoot (optioneel)", children: /* @__PURE__ */ jsx(Input, { value: block.note ?? "", onChange: (e) => patch(block, onChange, { note: e.target.value }) }) }),
|
|
198
230
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 items-end gap-2", children: [
|
|
199
231
|
/* @__PURE__ */ jsx(Field, { label: "Valuta", hint: "ISO-code voor zoekmachines, bv. EUR", children: /* @__PURE__ */ jsx(Input, { value: block.currency ?? "EUR", onChange: (e) => patch(block, onChange, { currency: e.target.value || "EUR" }) }) }),
|
|
200
|
-
/* @__PURE__ */ jsx(ToggleField, { label: "
|
|
232
|
+
/* @__PURE__ */ jsx(ToggleField, { label: "Extra gegevens voor Google (aanbevolen)", checked: Boolean(block.jsonLd), onChange: (v) => patch(block, onChange, { jsonLd: v }) })
|
|
201
233
|
] })
|
|
202
234
|
] });
|
|
203
235
|
}
|
|
@@ -233,7 +265,7 @@ function FormEditor({ block, siteId, onChange }) {
|
|
|
233
265
|
let cancelled = false;
|
|
234
266
|
void getDocs(collection(db, "sites", siteId, "forms")).then((snap) => {
|
|
235
267
|
if (!cancelled) setForms(snap.docs.map((d) => ({ id: d.id, name: String(d.data().name ?? d.id) })));
|
|
236
|
-
});
|
|
268
|
+
}).catch((e) => console.warn("[xicms] lezen mislukt:", e.message));
|
|
237
269
|
return () => {
|
|
238
270
|
cancelled = true;
|
|
239
271
|
};
|
|
@@ -295,10 +327,7 @@ function GalleryEditor({ block, siteId, onChange }) {
|
|
|
295
327
|
) })
|
|
296
328
|
] }),
|
|
297
329
|
items.map((it, i) => /* @__PURE__ */ jsxs("div", { className: "grid gap-2 rounded-lg border border-slate-200 p-3", children: [
|
|
298
|
-
/* @__PURE__ */ jsx(Field, { label: `Foto ${i + 1}`, children: /* @__PURE__ */
|
|
299
|
-
/* @__PURE__ */ jsx(Input, { value: it.url ?? "", onChange: (e) => set(items.map((x, j) => j === i ? { ...x, url: e.target.value } : x)), placeholder: "URL of upload \u2192" }),
|
|
300
|
-
/* @__PURE__ */ jsx(ImageUploadButton, { siteId, onUploaded: (url) => set(items.map((x, j) => j === i ? { ...x, url } : x)) })
|
|
301
|
-
] }) }),
|
|
330
|
+
/* @__PURE__ */ jsx(Field, { label: `Foto ${i + 1}`, children: /* @__PURE__ */ jsx(ImageField, { siteId, value: it.url, onChange: (url) => set(items.map((x, j) => j === i ? { ...x, url } : x)) }) }),
|
|
302
331
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-2", children: [
|
|
303
332
|
/* @__PURE__ */ jsx(Field, { label: "Alt-tekst", children: /* @__PURE__ */ jsx(Input, { value: it.alt ?? "", onChange: (e) => set(items.map((x, j) => j === i ? { ...x, alt: e.target.value } : x)) }) }),
|
|
304
333
|
/* @__PURE__ */ jsx(Field, { label: "Bijschrift", children: /* @__PURE__ */ jsx(Input, { value: it.caption ?? "", onChange: (e) => set(items.map((x, j) => j === i ? { ...x, caption: e.target.value } : x)) }) }),
|
|
@@ -310,21 +339,74 @@ function GalleryEditor({ block, siteId, onChange }) {
|
|
|
310
339
|
/* @__PURE__ */ jsx(ToggleField, { label: "Filterbalk op tags", checked: Boolean(block.showFilter), onChange: (v) => patch(block, onChange, { showFilter: v }) })
|
|
311
340
|
] });
|
|
312
341
|
}
|
|
313
|
-
function AgendaEditor({ block, onChange }) {
|
|
342
|
+
function AgendaEditor({ block, siteId, onChange }) {
|
|
314
343
|
const events = block.events ?? [];
|
|
315
344
|
const set = (next) => patch(block, onChange, { events: next });
|
|
345
|
+
const zet = (i, p) => set(events.map((x, j) => j === i ? { ...x, ...p } : x));
|
|
346
|
+
const naarInvoer = (v) => v ? v.length === 10 ? `${v}T00:00` : v.slice(0, 16) : "";
|
|
316
347
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
317
348
|
/* @__PURE__ */ jsx(Field, { label: "Kop", children: /* @__PURE__ */ jsx(Input, { value: block.heading ?? "", onChange: (e) => patch(block, onChange, { heading: e.target.value }) }) }),
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
349
|
+
/* @__PURE__ */ jsx(
|
|
350
|
+
ArrayEditor,
|
|
351
|
+
{
|
|
352
|
+
items: events,
|
|
353
|
+
onChange: set,
|
|
354
|
+
newItem: () => ({ title: "", start: "" }),
|
|
355
|
+
addLabel: "+ Activiteit",
|
|
356
|
+
emptyLabel: "Nog geen activiteiten.",
|
|
357
|
+
renderRow: (ev, _u, i) => /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
358
|
+
/* @__PURE__ */ jsx(Field, { label: "Titel", children: /* @__PURE__ */ jsx(Input, { value: ev.title ?? "", onChange: (e) => zet(i, { title: e.target.value }) }) }),
|
|
359
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
360
|
+
/* @__PURE__ */ jsx(Field, { label: "Begint op", children: /* @__PURE__ */ jsx(Input, { type: "datetime-local", value: naarInvoer(ev.start), onChange: (e) => zet(i, { start: e.target.value }) }) }),
|
|
361
|
+
/* @__PURE__ */ jsx(Field, { label: "Eindigt op (optioneel)", children: /* @__PURE__ */ jsx(Input, { type: "datetime-local", value: naarInvoer(ev.end), onChange: (e) => zet(i, { end: e.target.value || void 0 }) }) })
|
|
362
|
+
] }),
|
|
363
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
364
|
+
/* @__PURE__ */ jsx(Field, { label: "Plaats", hint: "Nodig om in Google te verschijnen.", children: /* @__PURE__ */ jsx(Input, { value: ev.location ?? "", onChange: (e) => zet(i, { location: e.target.value || void 0 }) }) }),
|
|
365
|
+
/* @__PURE__ */ jsx(Field, { label: "Prijs (optioneel)", hint: "bv. Gratis of \u20AC 12,50", children: /* @__PURE__ */ jsx(Input, { value: ev.price ?? "", onChange: (e) => zet(i, { price: e.target.value || void 0 }) }) })
|
|
366
|
+
] }),
|
|
367
|
+
/* @__PURE__ */ jsx(Field, { label: "Omschrijving (optioneel)", children: /* @__PURE__ */ jsx(Textarea, { rows: 2, value: ev.description ?? "", onChange: (e) => zet(i, { description: e.target.value || void 0 }) }) }),
|
|
368
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
369
|
+
/* @__PURE__ */ jsx(Field, { label: "Herhaalt", children: /* @__PURE__ */ jsx(
|
|
370
|
+
Select,
|
|
371
|
+
{
|
|
372
|
+
value: ev.herhaal ?? "",
|
|
373
|
+
onValueChange: (v) => zet(i, { herhaal: v || void 0 }),
|
|
374
|
+
options: [
|
|
375
|
+
{ value: "", label: "Eenmalig" },
|
|
376
|
+
{ value: "wekelijks", label: "Elke week" },
|
|
377
|
+
{ value: "tweewekelijks", label: "Om de week" },
|
|
378
|
+
{ value: "maandelijks", label: "Elke maand" }
|
|
379
|
+
]
|
|
380
|
+
}
|
|
381
|
+
) }),
|
|
382
|
+
ev.herhaal && /* @__PURE__ */ jsx(Field, { label: "Tot en met (optioneel)", hint: "Leeg = een jaar vooruit.", children: /* @__PURE__ */ jsx(Input, { type: "date", value: ev.herhaalTot ?? "", onChange: (e) => zet(i, { herhaalTot: e.target.value || void 0 }) }) })
|
|
383
|
+
] }),
|
|
384
|
+
/* @__PURE__ */ jsxs("details", { className: "rounded-md border border-slate-200 p-2 text-sm", children: [
|
|
385
|
+
/* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-slate-600", children: "Meer: adres, foto, link, status" }),
|
|
386
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-2 grid gap-2", children: [
|
|
387
|
+
/* @__PURE__ */ jsx(Field, { label: "Adres", hint: "Alleen als het niet op je eigen adres is (dat komt uit Instellingen \u2192 Bedrijf).", children: /* @__PURE__ */ jsx(Input, { value: ev.address ?? "", onChange: (e) => zet(i, { address: e.target.value || void 0 }) }) }),
|
|
388
|
+
/* @__PURE__ */ jsx(Field, { label: "Foto", children: /* @__PURE__ */ jsx(ImageField, { siteId, value: ev.imageUrl, onChange: (imageUrl) => zet(i, { imageUrl }) }) }),
|
|
389
|
+
/* @__PURE__ */ jsx(Field, { label: "Link (aanmelden, tickets, meer info)", children: /* @__PURE__ */ jsx(LinkVeld, { siteId, value: ev.url, onChange: (url) => zet(i, { url: url || void 0 }), leegTekst: "Geen link (optioneel)" }) }),
|
|
390
|
+
/* @__PURE__ */ jsx(Field, { label: "Status", children: /* @__PURE__ */ jsx(
|
|
391
|
+
Select,
|
|
392
|
+
{
|
|
393
|
+
value: ev.status ?? "",
|
|
394
|
+
onValueChange: (v) => zet(i, { status: v || void 0 }),
|
|
395
|
+
options: [
|
|
396
|
+
{ value: "", label: "Gaat gewoon door" },
|
|
397
|
+
{ value: "afgelast", label: "Afgelast" },
|
|
398
|
+
{ value: "verplaatst", label: "Verplaatst" },
|
|
399
|
+
{ value: "online", label: "Online" }
|
|
400
|
+
]
|
|
401
|
+
}
|
|
402
|
+
) })
|
|
403
|
+
] })
|
|
404
|
+
] })
|
|
405
|
+
] })
|
|
406
|
+
}
|
|
407
|
+
),
|
|
408
|
+
/* @__PURE__ */ jsx(ToggleField, { label: "Voorbije activiteiten verbergen", checked: block.hidePast !== false, onChange: (v) => patch(block, onChange, { hidePast: v }) }),
|
|
409
|
+
/* @__PURE__ */ jsx(ToggleField, { label: "Laat Google de activiteiten herkennen", checked: Boolean(block.jsonLd), onChange: (v) => patch(block, onChange, { jsonLd: v }) })
|
|
328
410
|
] });
|
|
329
411
|
}
|
|
330
412
|
function HeadingField({ block, onChange }) {
|
|
@@ -340,14 +422,11 @@ function FeatureEditor({ block, siteId, onChange }) {
|
|
|
340
422
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
341
423
|
/* @__PURE__ */ jsx(HeadingField, { block, siteId, onChange }),
|
|
342
424
|
/* @__PURE__ */ jsx(Field, { label: "Tekst", children: /* @__PURE__ */ jsx(RichTextEditor, { siteId, value: block.html ?? "", onChange: (html) => patch(block, onChange, { html }) }) }),
|
|
343
|
-
/* @__PURE__ */ jsx(Field, { label: "Afbeelding", children: /* @__PURE__ */
|
|
344
|
-
/* @__PURE__ */ jsx(Input, { value: block.imageUrl ?? "", onChange: (e) => patch(block, onChange, { imageUrl: e.target.value }), placeholder: "URL of upload \u2192" }),
|
|
345
|
-
/* @__PURE__ */ jsx(ImageUploadButton, { siteId, onUploaded: (url) => patch(block, onChange, { imageUrl: url }) })
|
|
346
|
-
] }) }),
|
|
425
|
+
/* @__PURE__ */ jsx(Field, { label: "Afbeelding", children: /* @__PURE__ */ jsx(ImageField, { siteId, value: block.imageUrl, onChange: (url) => patch(block, onChange, { imageUrl: url }) }) }),
|
|
347
426
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-2", children: [
|
|
348
427
|
/* @__PURE__ */ jsx(Field, { label: "Beeldpositie", children: /* @__PURE__ */ jsx(Select, { value: block.imagePosition ?? "left", onValueChange: (v) => patch(block, onChange, { imagePosition: v }), options: [{ value: "left", label: "Links" }, { value: "right", label: "Rechts" }] }) }),
|
|
349
428
|
/* @__PURE__ */ jsx(Field, { label: "Knoptekst", children: /* @__PURE__ */ jsx(Input, { value: block.buttonLabel ?? "", onChange: (e) => patch(block, onChange, { buttonLabel: e.target.value }) }) }),
|
|
350
|
-
/* @__PURE__ */ jsx(Field, { label: "Knoplink", children: /* @__PURE__ */ jsx(
|
|
429
|
+
/* @__PURE__ */ jsx(Field, { label: "Knoplink", children: /* @__PURE__ */ jsx(LinkVeld, { siteId, value: block.buttonHref ?? "", onChange: (buttonHref) => patch(block, onChange, { buttonHref }) }) })
|
|
351
430
|
] })
|
|
352
431
|
] });
|
|
353
432
|
}
|
|
@@ -355,14 +434,11 @@ function VideoEditor({ block, siteId, onChange }) {
|
|
|
355
434
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
356
435
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
357
436
|
/* @__PURE__ */ jsx(Field, { label: "Bron", children: /* @__PURE__ */ jsx(Select, { value: block.provider ?? "youtube", onValueChange: (v) => patch(block, onChange, { provider: v }), options: [{ value: "youtube", label: "YouTube" }, { value: "vimeo", label: "Vimeo" }, { value: "file", label: "MP4/WebM-URL" }] }) }),
|
|
358
|
-
/* @__PURE__ */ jsx(Field, { label: "
|
|
437
|
+
/* @__PURE__ */ jsx(Field, { label: "Link naar de video", hint: "Plak het adres van de video (YouTube of Vimeo).", children: /* @__PURE__ */ jsx(Input, { value: block.src ?? "", onChange: (e) => patch(block, onChange, { src: e.target.value }) }) })
|
|
359
438
|
] }),
|
|
360
439
|
/* @__PURE__ */ jsx(Field, { label: "Bijschrift (optioneel)", children: /* @__PURE__ */ jsx(Input, { value: block.caption ?? "", onChange: (e) => patch(block, onChange, { caption: e.target.value }) }) }),
|
|
361
|
-
/* @__PURE__ */ jsx(Field, { label: "Voorvertoningsbeeld (optioneel)", children: /* @__PURE__ */
|
|
362
|
-
|
|
363
|
-
/* @__PURE__ */ jsx(ImageUploadButton, { siteId, onUploaded: (url) => patch(block, onChange, { posterUrl: url }) })
|
|
364
|
-
] }) }),
|
|
365
|
-
/* @__PURE__ */ jsx(ToggleField, { label: "Pas tonen na cookie-toestemming", checked: block.consentGated !== false, onChange: (v) => patch(block, onChange, { consentGated: v }) }),
|
|
440
|
+
/* @__PURE__ */ jsx(Field, { label: "Voorvertoningsbeeld (optioneel)", children: /* @__PURE__ */ jsx(ImageField, { siteId, value: block.posterUrl, onChange: (url) => patch(block, onChange, { posterUrl: url }) }) }),
|
|
441
|
+
/* @__PURE__ */ jsx(ToestemmingSchakelaar, { block, onChange }),
|
|
366
442
|
/* @__PURE__ */ jsx(ToggleField, { label: "Click-to-play (speler laadt pas na klik \u2014 sneller & privacyvriendelijker)", checked: Boolean(block.facade), onChange: (v) => patch(block, onChange, { facade: v }) })
|
|
367
443
|
] });
|
|
368
444
|
}
|
|
@@ -403,7 +479,7 @@ function ContactEditor({ block, siteId, onChange }) {
|
|
|
403
479
|
onChange: (geo) => patch(block, onChange, { geo })
|
|
404
480
|
}
|
|
405
481
|
),
|
|
406
|
-
/* @__PURE__ */ jsx(ToggleField, { label: "
|
|
482
|
+
/* @__PURE__ */ jsx(ToggleField, { label: "Bedrijfsgegevens doorgeven aan Google (aanbevolen)", checked: Boolean(block.jsonLd), onChange: (v) => patch(block, onChange, { jsonLd: v }) })
|
|
407
483
|
] });
|
|
408
484
|
}
|
|
409
485
|
function MapCoordField({ block, onChange }) {
|
|
@@ -438,11 +514,11 @@ function MapEditor({ block, siteId, onChange }) {
|
|
|
438
514
|
/* @__PURE__ */ jsx(Field, { label: "Aanbieder", children: /* @__PURE__ */ jsx(Select, { value: block.provider ?? "osm", onValueChange: (v) => patch(block, onChange, { provider: v }), options: [{ value: "osm", label: "OpenStreetMap (co\xF6rdinaten)" }, { value: "google", label: "Google (embed-URL)" }] }) }),
|
|
439
515
|
/* @__PURE__ */ jsx(Field, { label: "Hoogte (px)", children: /* @__PURE__ */ jsx(Input, { type: "number", value: String(block.height ?? 360), onChange: (e) => patch(block, onChange, { height: Math.max(150, Math.min(800, Number(e.target.value) || 360)) }) }) })
|
|
440
516
|
] }),
|
|
441
|
-
isGoogle ? /* @__PURE__ */ jsx(Field, { label: "
|
|
517
|
+
isGoogle ? /* @__PURE__ */ jsx(Field, { label: "Link (om in te sluiten)", children: /* @__PURE__ */ jsx(Input, { value: block.query ?? "", onChange: (e) => patch(block, onChange, { query: e.target.value }) }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
442
518
|
/* @__PURE__ */ jsx(MapCoordField, { block, siteId, onChange }),
|
|
443
519
|
/* @__PURE__ */ jsx(Field, { label: "Zoom (1\u201320)", children: /* @__PURE__ */ jsx(Input, { type: "number", value: String(block.zoom ?? 14), onChange: (e) => patch(block, onChange, { zoom: Math.max(1, Math.min(20, Number(e.target.value) || 14)) }) }) })
|
|
444
520
|
] }),
|
|
445
|
-
/* @__PURE__ */ jsx(
|
|
521
|
+
/* @__PURE__ */ jsx(ToestemmingSchakelaar, { block, onChange })
|
|
446
522
|
] });
|
|
447
523
|
}
|
|
448
524
|
function NewsletterEditor({ block, siteId, onChange }) {
|
|
@@ -453,7 +529,7 @@ function NewsletterEditor({ block, siteId, onChange }) {
|
|
|
453
529
|
let cancelled = false;
|
|
454
530
|
void getDocs(collection(db, "sites", siteId, "forms")).then((snap) => {
|
|
455
531
|
if (!cancelled) setForms(snap.docs.map((d) => ({ id: d.id, name: String(d.data().name ?? d.id) })));
|
|
456
|
-
});
|
|
532
|
+
}).catch((e) => console.warn("[xicms] lezen mislukt:", e.message));
|
|
457
533
|
return () => {
|
|
458
534
|
cancelled = true;
|
|
459
535
|
};
|
|
@@ -512,13 +588,17 @@ function BookingEditor({ block, siteId, onChange }) {
|
|
|
512
588
|
{ value: "treatwell", label: "Treatwell" },
|
|
513
589
|
{ value: "salonized", label: "Salonized" },
|
|
514
590
|
{ value: "tablebooker", label: "Tablebooker" },
|
|
515
|
-
{ value: "bookingkit", label: "bookingkit" }
|
|
591
|
+
{ value: "bookingkit", label: "bookingkit" },
|
|
592
|
+
{ value: "lodgify", label: "Lodgify (verhuur)" },
|
|
593
|
+
{ value: "bookingexperts", label: "Booking Experts (verhuur)" },
|
|
594
|
+
{ value: "tommy", label: "Tommy (verhuur)" },
|
|
595
|
+
{ value: "bookingmotor", label: "Bookingmotor (verhuur)" }
|
|
516
596
|
]
|
|
517
597
|
}
|
|
518
598
|
) }),
|
|
519
|
-
/* @__PURE__ */ jsx(Field, { label: "
|
|
599
|
+
/* @__PURE__ */ jsx(Field, { label: "Link of accountnaam", hint: "De volledige link naar je boekingspagina, of alleen je accountnaam.", children: /* @__PURE__ */ jsx(Input, { value: block.embedUrl ?? "", onChange: (e) => patch(block, onChange, { embedUrl: e.target.value }), placeholder: "https://calendly.com/jouw-naam/intake \u2014 of: jouw-naam/intake" }) }),
|
|
520
600
|
/* @__PURE__ */ jsx(Field, { label: "Hoogte (px)", children: /* @__PURE__ */ jsx(Input, { type: "number", value: String(block.height ?? 630), onChange: (e) => patch(block, onChange, { height: Math.max(300, Math.min(1200, Number(e.target.value) || 630)) }) }) }),
|
|
521
|
-
/* @__PURE__ */ jsx(
|
|
601
|
+
/* @__PURE__ */ jsx(ToestemmingSchakelaar, { block, onChange })
|
|
522
602
|
] });
|
|
523
603
|
}
|
|
524
604
|
function AccordionEditor({ block, siteId, onChange }) {
|
|
@@ -562,7 +642,7 @@ function EmbedEditor({ block, onChange }) {
|
|
|
562
642
|
]
|
|
563
643
|
}
|
|
564
644
|
) }),
|
|
565
|
-
/* @__PURE__ */ jsx(
|
|
645
|
+
/* @__PURE__ */ jsx(ToestemmingSchakelaar, { block, onChange })
|
|
566
646
|
] });
|
|
567
647
|
}
|
|
568
648
|
function nestKey() {
|
|
@@ -619,7 +699,7 @@ function NestedBlocksEditor({
|
|
|
619
699
|
open && /* @__PURE__ */ jsx("div", { className: "border-t border-slate-100 p-2", children: /* @__PURE__ */ jsx(Editor, { block: b, siteId, onChange: (next) => onChange(list.map((x, j) => j === i ? next : x)) }) })
|
|
620
700
|
] }, b._key ?? i);
|
|
621
701
|
}),
|
|
622
|
-
list.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-
|
|
702
|
+
list.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500", children: "Nog geen blokken." }),
|
|
623
703
|
/* @__PURE__ */ jsx(Select, { value: "", placeholder: addLabel, onValueChange: (v) => v && add(v), options: addOptions })
|
|
624
704
|
] });
|
|
625
705
|
}
|
|
@@ -767,13 +847,10 @@ function SliderEditor({ block, siteId, onChange }) {
|
|
|
767
847
|
newItem: () => ({ imageUrl: "", alt: "", caption: "" }),
|
|
768
848
|
addLabel: "+ Slide",
|
|
769
849
|
renderRow: (it, update, i) => /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
770
|
-
/* @__PURE__ */ jsx(Field, { label: `Afbeelding ${i + 1}`, children: /* @__PURE__ */
|
|
771
|
-
/* @__PURE__ */ jsx(Input, { value: it.imageUrl ?? "", onChange: (e) => update({ imageUrl: e.target.value }), placeholder: "URL of upload \u2192" }),
|
|
772
|
-
/* @__PURE__ */ jsx(ImageUploadButton, { siteId, onUploaded: (url) => update({ imageUrl: url }) }, i)
|
|
773
|
-
] }) }),
|
|
850
|
+
/* @__PURE__ */ jsx(Field, { label: `Afbeelding ${i + 1}`, children: /* @__PURE__ */ jsx(ImageField, { siteId, value: it.imageUrl, onChange: (url) => update({ imageUrl: url }) }) }),
|
|
774
851
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
775
852
|
/* @__PURE__ */ jsx(Input, { value: it.alt ?? "", placeholder: "Alt-tekst", onChange: (e) => update({ alt: e.target.value }) }),
|
|
776
|
-
/* @__PURE__ */ jsx(
|
|
853
|
+
/* @__PURE__ */ jsx(LinkVeld, { siteId, value: it.href ?? "", onChange: (href) => update({ href }), leegTekst: "Geen link (optioneel)" })
|
|
777
854
|
] }),
|
|
778
855
|
/* @__PURE__ */ jsx(Input, { value: it.caption ?? "", placeholder: "Bijschrift (optioneel)", onChange: (e) => update({ caption: e.target.value }) })
|
|
779
856
|
] })
|
|
@@ -874,15 +951,15 @@ function NewsletterWidgetEditor({ block, onChange }) {
|
|
|
874
951
|
] })
|
|
875
952
|
] });
|
|
876
953
|
}
|
|
877
|
-
function CtaWidgetEditor({ block, onChange }) {
|
|
954
|
+
function CtaWidgetEditor({ block, siteId, onChange }) {
|
|
878
955
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
879
956
|
/* @__PURE__ */ jsx(Field, { label: "Titel", children: /* @__PURE__ */ jsx(Input, { value: block.title ?? "", onChange: (e) => patch(block, onChange, { title: e.target.value }) }) }),
|
|
880
957
|
/* @__PURE__ */ jsx(Field, { label: "Tekst", children: /* @__PURE__ */ jsx(Input, { value: block.text ?? "", onChange: (e) => patch(block, onChange, { text: e.target.value }) }) }),
|
|
881
958
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
882
959
|
/* @__PURE__ */ jsx(Field, { label: "Knoptekst", children: /* @__PURE__ */ jsx(Input, { value: block.buttonLabel ?? "", onChange: (e) => patch(block, onChange, { buttonLabel: e.target.value }) }) }),
|
|
883
|
-
/* @__PURE__ */ jsx(Field, { label: "Knoplink", children: /* @__PURE__ */ jsx(
|
|
960
|
+
/* @__PURE__ */ jsx(Field, { label: "Knoplink", children: /* @__PURE__ */ jsx(LinkVeld, { siteId, value: block.buttonHref ?? "", onChange: (buttonHref) => patch(block, onChange, { buttonHref }) }) })
|
|
884
961
|
] }),
|
|
885
|
-
/* @__PURE__ */ jsx(
|
|
962
|
+
/* @__PURE__ */ jsx(KleurVeld, { label: "Achtergrondkleur (optioneel)", value: block.backgroundColor ?? "", placeholder: "#f5f5f5", onChange: (backgroundColor) => patch(block, onChange, { backgroundColor }) })
|
|
886
963
|
] });
|
|
887
964
|
}
|
|
888
965
|
function GalleryWidgetEditor({ block, siteId, onChange }) {
|
|
@@ -898,10 +975,7 @@ function GalleryWidgetEditor({ block, siteId, onChange }) {
|
|
|
898
975
|
newItem: () => ({ url: "", alt: "" }),
|
|
899
976
|
addLabel: "+ Foto",
|
|
900
977
|
renderRow: (it, update, i) => /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
|
|
901
|
-
/* @__PURE__ */
|
|
902
|
-
/* @__PURE__ */ jsx(Input, { value: it.url ?? "", onChange: (e) => update({ url: e.target.value }), placeholder: "URL of upload \u2192" }),
|
|
903
|
-
/* @__PURE__ */ jsx(ImageUploadButton, { siteId, onUploaded: (url) => update({ url }) }, i)
|
|
904
|
-
] }),
|
|
978
|
+
/* @__PURE__ */ jsx(ImageField, { siteId, value: it.url, onChange: (url) => update({ url }) }),
|
|
905
979
|
/* @__PURE__ */ jsx(Input, { value: it.alt ?? "", placeholder: "Alt-tekst", onChange: (e) => update({ alt: e.target.value }) })
|
|
906
980
|
] })
|
|
907
981
|
}
|
|
@@ -930,7 +1004,7 @@ function TestimonialsWidgetEditor({ block, onChange }) {
|
|
|
930
1004
|
)
|
|
931
1005
|
] });
|
|
932
1006
|
}
|
|
933
|
-
function CardsWidgetEditor({ block, onChange }) {
|
|
1007
|
+
function CardsWidgetEditor({ block, siteId, onChange }) {
|
|
934
1008
|
const items = block.items ?? [];
|
|
935
1009
|
return /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
|
|
936
1010
|
/* @__PURE__ */ jsx(Field, { label: "Kop", children: /* @__PURE__ */ jsx(Input, { value: block.heading ?? "", onChange: (e) => patch(block, onChange, { heading: e.target.value }) }) }),
|
|
@@ -947,7 +1021,7 @@ function CardsWidgetEditor({ block, onChange }) {
|
|
|
947
1021
|
/* @__PURE__ */ jsx(Input, { value: it.title, placeholder: "Titel", onChange: (e) => update({ title: e.target.value }) })
|
|
948
1022
|
] }),
|
|
949
1023
|
/* @__PURE__ */ jsx(Input, { value: it.text ?? "", placeholder: "Korte tekst", onChange: (e) => update({ text: e.target.value }) }),
|
|
950
|
-
/* @__PURE__ */ jsx(
|
|
1024
|
+
/* @__PURE__ */ jsx(LinkVeld, { siteId, value: it.href ?? "", onChange: (href) => update({ href }), leegTekst: "Geen link (optioneel)" })
|
|
951
1025
|
] })
|
|
952
1026
|
}
|
|
953
1027
|
)
|
|
@@ -1023,6 +1097,13 @@ const builtinBlockEditors = {
|
|
|
1023
1097
|
downloadsWidget: DownloadsWidgetEditor,
|
|
1024
1098
|
countdownWidget: CountdownWidgetEditor
|
|
1025
1099
|
};
|
|
1100
|
+
function ToestemmingSchakelaar({ block, onChange }) {
|
|
1101
|
+
const superadmin = useIsSuperadmin();
|
|
1102
|
+
if (!superadmin) {
|
|
1103
|
+
return block.consentGated === false ? /* @__PURE__ */ jsx("p", { className: "text-xs text-amber-700", children: "Dit blok laadt zonder cookie-toestemming (ingesteld door Xi Webdesign)." }) : /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500", children: "Bezoekers zien dit pas na hun cookie-toestemming \u2014 zo blijft de site AVG-proof." });
|
|
1104
|
+
}
|
|
1105
|
+
return /* @__PURE__ */ jsx(ToggleField, { label: "Pas tonen na cookie-toestemming", checked: block.consentGated !== false, onChange: (v) => patch(block, onChange, { consentGated: v }) });
|
|
1106
|
+
}
|
|
1026
1107
|
export {
|
|
1027
1108
|
GenericEditor,
|
|
1028
1109
|
NestedBlocksEditor,
|