@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.
Files changed (463) hide show
  1. package/dist/XiCMSProvider.js +22 -7
  2. package/dist/XiCMSProvider.js.map +1 -1
  3. package/dist/admin/AdminApp.js +175 -93
  4. package/dist/admin/AdminApp.js.map +1 -1
  5. package/dist/admin/AdminHelp.d.ts +1 -1
  6. package/dist/admin/AdminHelp.js +44 -36
  7. package/dist/admin/AdminHelp.js.map +1 -1
  8. package/dist/admin/CoreVersion.d.ts +6 -3
  9. package/dist/admin/CoreVersion.js +60 -24
  10. package/dist/admin/CoreVersion.js.map +1 -1
  11. package/dist/admin/NewsEditor.d.ts +7 -0
  12. package/dist/admin/NewsEditor.js +117 -75
  13. package/dist/admin/NewsEditor.js.map +1 -1
  14. package/dist/admin/SuperadminPanel.js +1 -1
  15. package/dist/admin/SuperadminPanel.js.map +1 -1
  16. package/dist/admin/ZoekPalet.d.ts +15 -0
  17. package/dist/admin/ZoekPalet.js +123 -0
  18. package/dist/admin/ZoekPalet.js.map +1 -0
  19. package/dist/admin/blockEditors/GenericEditor.js +36 -18
  20. package/dist/admin/blockEditors/GenericEditor.js.map +1 -1
  21. package/dist/admin/blockEditors/StyleEditor.js +37 -3
  22. package/dist/admin/blockEditors/StyleEditor.js.map +1 -1
  23. package/dist/admin/blockEditors/SymbolRefEditor.js +44 -2
  24. package/dist/admin/blockEditors/SymbolRefEditor.js.map +1 -1
  25. package/dist/admin/blockEditors/index.js +154 -73
  26. package/dist/admin/blockEditors/index.js.map +1 -1
  27. package/dist/admin/customBlocks/CustomBlocksPanel.js +18 -7
  28. package/dist/admin/customBlocks/CustomBlocksPanel.js.map +1 -1
  29. package/dist/admin/dashboard/DashboardPanel.js +26 -16
  30. package/dist/admin/dashboard/DashboardPanel.js.map +1 -1
  31. package/dist/admin/editors/RichTextEditor.d.ts +4 -3
  32. package/dist/admin/editors/RichTextEditor.js +19 -56
  33. package/dist/admin/editors/RichTextEditor.js.map +1 -1
  34. package/dist/admin/editors/fontSizeExtension.js +7 -1
  35. package/dist/admin/editors/fontSizeExtension.js.map +1 -1
  36. package/dist/admin/editors/slashMenu.d.ts +18 -0
  37. package/dist/admin/editors/slashMenu.js +34 -0
  38. package/dist/admin/editors/slashMenu.js.map +1 -0
  39. package/dist/admin/editors/useRijkeTekst.d.ts +48 -0
  40. package/dist/admin/editors/useRijkeTekst.js +310 -0
  41. package/dist/admin/editors/useRijkeTekst.js.map +1 -0
  42. package/dist/admin/forms/FormsPanel.d.ts +11 -2
  43. package/dist/admin/forms/FormsPanel.js +218 -65
  44. package/dist/admin/forms/FormsPanel.js.map +1 -1
  45. package/dist/admin/lib/blokInfo.d.ts +17 -0
  46. package/dist/admin/lib/blokInfo.js +80 -0
  47. package/dist/admin/lib/blokInfo.js.map +1 -0
  48. package/dist/admin/lib/foutNaarMens.d.ts +1 -0
  49. package/dist/admin/lib/foutNaarMens.js +22 -0
  50. package/dist/admin/lib/foutNaarMens.js.map +1 -0
  51. package/dist/admin/lib/gewisteVelden.d.ts +13 -0
  52. package/dist/admin/lib/gewisteVelden.js +31 -0
  53. package/dist/admin/lib/gewisteVelden.js.map +1 -0
  54. package/dist/admin/lib/heroHulp.d.ts +11 -0
  55. package/dist/admin/lib/heroHulp.js +18 -0
  56. package/dist/admin/lib/heroHulp.js.map +1 -0
  57. package/dist/admin/lib/kleur.js +2 -3
  58. package/dist/admin/lib/kleur.js.map +1 -1
  59. package/dist/admin/lib/leesbaarheid.d.ts +34 -0
  60. package/dist/admin/lib/leesbaarheid.js +82 -0
  61. package/dist/admin/lib/leesbaarheid.js.map +1 -0
  62. package/dist/admin/lib/lengteAdvies.d.ts +1 -0
  63. package/dist/admin/lib/lengteAdvies.js +16 -0
  64. package/dist/admin/lib/lengteAdvies.js.map +1 -0
  65. package/dist/admin/lib/mediaLijst.d.ts +26 -0
  66. package/dist/admin/lib/mediaLijst.js +42 -0
  67. package/dist/admin/lib/mediaLijst.js.map +1 -0
  68. package/dist/admin/lib/mediaUsage.d.ts +12 -1
  69. package/dist/admin/lib/mediaUsage.js +43 -33
  70. package/dist/admin/lib/mediaUsage.js.map +1 -1
  71. package/dist/admin/lib/menuHulp.d.ts +16 -0
  72. package/dist/admin/lib/menuHulp.js +41 -0
  73. package/dist/admin/lib/menuHulp.js.map +1 -0
  74. package/dist/admin/lib/onopgeslagen.d.ts +10 -0
  75. package/dist/admin/lib/onopgeslagen.js +35 -0
  76. package/dist/admin/lib/onopgeslagen.js.map +1 -0
  77. package/dist/admin/lib/pagesClient.d.ts +55 -2
  78. package/dist/admin/lib/pagesClient.js +126 -28
  79. package/dist/admin/lib/pagesClient.js.map +1 -1
  80. package/dist/admin/lib/paginaGebruik.d.ts +56 -0
  81. package/dist/admin/lib/paginaGebruik.js +109 -0
  82. package/dist/admin/lib/paginaGebruik.js.map +1 -0
  83. package/dist/admin/lib/publicatieCheck.d.ts +25 -0
  84. package/dist/admin/lib/publicatieCheck.js +114 -0
  85. package/dist/admin/lib/publicatieCheck.js.map +1 -0
  86. package/dist/admin/lib/scrollNaarDetail.d.ts +6 -0
  87. package/dist/admin/lib/scrollNaarDetail.js +20 -0
  88. package/dist/admin/lib/scrollNaarDetail.js.map +1 -0
  89. package/dist/admin/lib/symbolsClient.d.ts +10 -0
  90. package/dist/admin/lib/symbolsClient.js +14 -1
  91. package/dist/admin/lib/symbolsClient.js.map +1 -1
  92. package/dist/admin/lib/tekstVeld.d.ts +8 -0
  93. package/dist/admin/lib/tekstVeld.js +10 -0
  94. package/dist/admin/lib/tekstVeld.js.map +1 -0
  95. package/dist/admin/lib/useIsSuperadmin.d.ts +2 -0
  96. package/dist/admin/lib/useIsSuperadmin.js +13 -0
  97. package/dist/admin/lib/useIsSuperadmin.js.map +1 -0
  98. package/dist/admin/lib/veldTaal.d.ts +14 -0
  99. package/dist/admin/lib/veldTaal.js +247 -0
  100. package/dist/admin/lib/veldTaal.js.map +1 -0
  101. package/dist/admin/lib/versieVergelijk.d.ts +17 -0
  102. package/dist/admin/lib/versieVergelijk.js +24 -0
  103. package/dist/admin/lib/versieVergelijk.js.map +1 -0
  104. package/dist/admin/lib/zodFields.js +22 -4
  105. package/dist/admin/lib/zodFields.js.map +1 -1
  106. package/dist/admin/lib/zodFout.d.ts +9 -0
  107. package/dist/admin/lib/zodFout.js +63 -0
  108. package/dist/admin/lib/zodFout.js.map +1 -0
  109. package/dist/admin/media/MediaManager.js +162 -32
  110. package/dist/admin/media/MediaManager.js.map +1 -1
  111. package/dist/admin/media/MediaPicker.d.ts +3 -0
  112. package/dist/admin/media/MediaPicker.js +84 -31
  113. package/dist/admin/media/MediaPicker.js.map +1 -1
  114. package/dist/admin/menu/MenuPanel.js +144 -83
  115. package/dist/admin/menu/MenuPanel.js.map +1 -1
  116. package/dist/admin/navContext.d.ts +3 -0
  117. package/dist/admin/navContext.js +13 -1
  118. package/dist/admin/navContext.js.map +1 -1
  119. package/dist/admin/pages/PageEditor.js +146 -30
  120. package/dist/admin/pages/PageEditor.js.map +1 -1
  121. package/dist/admin/pages/PagesPanel.js +215 -61
  122. package/dist/admin/pages/PagesPanel.js.map +1 -1
  123. package/dist/admin/pages/StarterKiezer.d.ts +12 -0
  124. package/dist/admin/pages/StarterKiezer.js +113 -0
  125. package/dist/admin/pages/StarterKiezer.js.map +1 -0
  126. package/dist/admin/panelRegistry.d.ts +1 -1
  127. package/dist/admin/panelRegistry.js +2 -1
  128. package/dist/admin/panelRegistry.js.map +1 -1
  129. package/dist/admin/patterns/PatternInserter.js +1 -1
  130. package/dist/admin/patterns/PatternInserter.js.map +1 -1
  131. package/dist/admin/settings/BedrijfInstellingen.d.ts +20 -0
  132. package/dist/admin/settings/BedrijfInstellingen.js +144 -0
  133. package/dist/admin/settings/BedrijfInstellingen.js.map +1 -0
  134. package/dist/admin/settings/MailSettings.js +2 -2
  135. package/dist/admin/settings/MailSettings.js.map +1 -1
  136. package/dist/admin/settings/MailTemplates.js +5 -4
  137. package/dist/admin/settings/MailTemplates.js.map +1 -1
  138. package/dist/admin/settings/SettingsPanel.js +120 -78
  139. package/dist/admin/settings/SettingsPanel.js.map +1 -1
  140. package/dist/admin/settings/SnapshotsCard.js +4 -4
  141. package/dist/admin/settings/SnapshotsCard.js.map +1 -1
  142. package/dist/admin/settings/VorigeTerugzetten.d.ts +15 -0
  143. package/dist/admin/settings/VorigeTerugzetten.js +89 -0
  144. package/dist/admin/settings/VorigeTerugzetten.js.map +1 -0
  145. package/dist/admin/shop/CategoriesTab.js +6 -4
  146. package/dist/admin/shop/CategoriesTab.js.map +1 -1
  147. package/dist/admin/shop/DiscountsTab.js +4 -2
  148. package/dist/admin/shop/DiscountsTab.js.map +1 -1
  149. package/dist/admin/shop/OrdersTab.js +57 -19
  150. package/dist/admin/shop/OrdersTab.js.map +1 -1
  151. package/dist/admin/shop/ProductPaneel.js +2 -1
  152. package/dist/admin/shop/ProductPaneel.js.map +1 -1
  153. package/dist/admin/shop/ProductsTab.js +40 -19
  154. package/dist/admin/shop/ProductsTab.js.map +1 -1
  155. package/dist/admin/shop/ShopPanel.js +13 -1
  156. package/dist/admin/shop/ShopPanel.js.map +1 -1
  157. package/dist/admin/shop/ShopSettingsTab.js +27 -1
  158. package/dist/admin/shop/ShopSettingsTab.js.map +1 -1
  159. package/dist/admin/shop/productClient.js +7 -3
  160. package/dist/admin/shop/productClient.js.map +1 -1
  161. package/dist/admin/stats/NietGevonden.d.ts +10 -0
  162. package/dist/admin/stats/NietGevonden.js +78 -0
  163. package/dist/admin/stats/NietGevonden.js.map +1 -0
  164. package/dist/admin/stats/StatsPanel.js +6 -1
  165. package/dist/admin/stats/StatsPanel.js.map +1 -1
  166. package/dist/admin/stats/lib.d.ts +2 -0
  167. package/dist/admin/stats/lib.js.map +1 -1
  168. package/dist/admin/ui/ConfirmDialog.js +10 -1
  169. package/dist/admin/ui/ConfirmDialog.js.map +1 -1
  170. package/dist/admin/ui/Icon.d.ts +34 -0
  171. package/dist/admin/ui/Icon.js +44 -0
  172. package/dist/admin/ui/Icon.js.map +1 -0
  173. package/dist/admin/ui/ImageField.d.ts +15 -0
  174. package/dist/admin/ui/ImageField.js +67 -0
  175. package/dist/admin/ui/ImageField.js.map +1 -0
  176. package/dist/admin/ui/KleurVeld.d.ts +25 -0
  177. package/dist/admin/ui/KleurVeld.js +76 -0
  178. package/dist/admin/ui/KleurVeld.js.map +1 -0
  179. package/dist/admin/ui/LaadStaat.d.ts +21 -0
  180. package/dist/admin/ui/LaadStaat.js +43 -0
  181. package/dist/admin/ui/LaadStaat.js.map +1 -0
  182. package/dist/admin/ui/LeesbaarheidPaneel.d.ts +10 -0
  183. package/dist/admin/ui/LeesbaarheidPaneel.js +68 -0
  184. package/dist/admin/ui/LeesbaarheidPaneel.js.map +1 -0
  185. package/dist/admin/ui/LinkDialog.d.ts +22 -0
  186. package/dist/admin/ui/LinkDialog.js +131 -0
  187. package/dist/admin/ui/LinkDialog.js.map +1 -0
  188. package/dist/admin/ui/LinkVeld.d.ts +14 -0
  189. package/dist/admin/ui/LinkVeld.js +49 -0
  190. package/dist/admin/ui/LinkVeld.js.map +1 -0
  191. package/dist/admin/ui/PreviewLinkResultaat.d.ts +14 -0
  192. package/dist/admin/ui/PreviewLinkResultaat.js +52 -0
  193. package/dist/admin/ui/PreviewLinkResultaat.js.map +1 -0
  194. package/dist/admin/ui/charts.js +5 -5
  195. package/dist/admin/ui/charts.js.map +1 -1
  196. package/dist/admin/ui/primitives.d.ts +16 -6
  197. package/dist/admin/ui/primitives.js +98 -26
  198. package/dist/admin/ui/primitives.js.map +1 -1
  199. package/dist/admin/ui/select.js +5 -2
  200. package/dist/admin/ui/select.js.map +1 -1
  201. package/dist/admin/ui/switch.d.ts +3 -1
  202. package/dist/admin/ui/switch.js +6 -3
  203. package/dist/admin/ui/switch.js.map +1 -1
  204. package/dist/admin/ui/toast.d.ts +2 -1
  205. package/dist/admin/ui/toast.js +17 -11
  206. package/dist/admin/ui/toast.js.map +1 -1
  207. package/dist/admin/visual/BlokKiezer.d.ts +34 -0
  208. package/dist/admin/visual/BlokKiezer.js +225 -0
  209. package/dist/admin/visual/BlokKiezer.js.map +1 -0
  210. package/dist/admin/visual/InlineGereedschap.d.ts +52 -0
  211. package/dist/admin/visual/InlineGereedschap.js +356 -0
  212. package/dist/admin/visual/InlineGereedschap.js.map +1 -0
  213. package/dist/admin/visual/InlineRijkeTekst.d.ts +23 -0
  214. package/dist/admin/visual/InlineRijkeTekst.js +152 -0
  215. package/dist/admin/visual/InlineRijkeTekst.js.map +1 -0
  216. package/dist/admin/visual/VisualEditor.js +273 -125
  217. package/dist/admin/visual/VisualEditor.js.map +1 -1
  218. package/dist/admin.css +1 -1
  219. package/dist/bedrijf/bedrijf.d.ts +36 -0
  220. package/dist/bedrijf/bedrijf.js +110 -0
  221. package/dist/bedrijf/bedrijf.js.map +1 -0
  222. package/dist/blocks/BlockRenderer.js +11 -1
  223. package/dist/blocks/BlockRenderer.js.map +1 -1
  224. package/dist/blocks/blockStyle.d.ts +7 -0
  225. package/dist/blocks/blockStyle.js +16 -3
  226. package/dist/blocks/blockStyle.js.map +1 -1
  227. package/dist/blocks/builtinSchemas.js +6 -0
  228. package/dist/blocks/builtinSchemas.js.map +1 -1
  229. package/dist/blocks/builtins/AgendaRender.d.ts +22 -0
  230. package/dist/blocks/builtins/AgendaRender.js +69 -9
  231. package/dist/blocks/builtins/AgendaRender.js.map +1 -1
  232. package/dist/blocks/builtins/Availability.d.ts +1 -0
  233. package/dist/blocks/builtins/Availability.js +23 -0
  234. package/dist/blocks/builtins/Availability.js.map +1 -0
  235. package/dist/blocks/builtins/AvailabilityRender.d.ts +12 -0
  236. package/dist/blocks/builtins/AvailabilityRender.js +105 -0
  237. package/dist/blocks/builtins/AvailabilityRender.js.map +1 -0
  238. package/dist/blocks/builtins/BeforeAfterRender.js +4 -3
  239. package/dist/blocks/builtins/BeforeAfterRender.js.map +1 -1
  240. package/dist/blocks/builtins/Booking.js +1 -1
  241. package/dist/blocks/builtins/Booking.js.map +1 -1
  242. package/dist/blocks/builtins/BreadcrumbsRender.d.ts +4 -3
  243. package/dist/blocks/builtins/BreadcrumbsRender.js +14 -8
  244. package/dist/blocks/builtins/BreadcrumbsRender.js.map +1 -1
  245. package/dist/blocks/builtins/ColumnsRender.d.ts +1 -1
  246. package/dist/blocks/builtins/ColumnsRender.js +3 -1
  247. package/dist/blocks/builtins/ColumnsRender.js.map +1 -1
  248. package/dist/blocks/builtins/Contact.js +1 -1
  249. package/dist/blocks/builtins/Contact.js.map +1 -1
  250. package/dist/blocks/builtins/ContactRender.d.ts +1 -1
  251. package/dist/blocks/builtins/ContactRender.js +29 -8
  252. package/dist/blocks/builtins/ContactRender.js.map +1 -1
  253. package/dist/blocks/builtins/Cta.js +1 -1
  254. package/dist/blocks/builtins/Cta.js.map +1 -1
  255. package/dist/blocks/builtins/CtaRender.d.ts +1 -1
  256. package/dist/blocks/builtins/CtaRender.js +5 -4
  257. package/dist/blocks/builtins/CtaRender.js.map +1 -1
  258. package/dist/blocks/builtins/Embed.js +1 -1
  259. package/dist/blocks/builtins/Embed.js.map +1 -1
  260. package/dist/blocks/builtins/FormBlock.js +1 -0
  261. package/dist/blocks/builtins/FormBlock.js.map +1 -1
  262. package/dist/blocks/builtins/FormBlockRender.d.ts +6 -0
  263. package/dist/blocks/builtins/FormBlockRender.js +88 -16
  264. package/dist/blocks/builtins/FormBlockRender.js.map +1 -1
  265. package/dist/blocks/builtins/GalleryRender.js +3 -2
  266. package/dist/blocks/builtins/GalleryRender.js.map +1 -1
  267. package/dist/blocks/builtins/Hero.js +1 -1
  268. package/dist/blocks/builtins/Hero.js.map +1 -1
  269. package/dist/blocks/builtins/HeroRender.js +7 -3
  270. package/dist/blocks/builtins/HeroRender.js.map +1 -1
  271. package/dist/blocks/builtins/OpenNowBadge.d.ts +4 -2
  272. package/dist/blocks/builtins/OpenNowBadge.js +6 -6
  273. package/dist/blocks/builtins/OpenNowBadge.js.map +1 -1
  274. package/dist/blocks/builtins/OpeningHoursRender.d.ts +8 -2
  275. package/dist/blocks/builtins/OpeningHoursRender.js +27 -6
  276. package/dist/blocks/builtins/OpeningHoursRender.js.map +1 -1
  277. package/dist/blocks/builtins/PriceList.d.ts +1 -0
  278. package/dist/blocks/builtins/PriceList.js +25 -0
  279. package/dist/blocks/builtins/PriceList.js.map +1 -0
  280. package/dist/blocks/builtins/PriceListRender.d.ts +17 -0
  281. package/dist/blocks/builtins/PriceListRender.js +87 -0
  282. package/dist/blocks/builtins/PriceListRender.js.map +1 -0
  283. package/dist/blocks/builtins/RichTextBlockRender.js +6 -1
  284. package/dist/blocks/builtins/RichTextBlockRender.js.map +1 -1
  285. package/dist/blocks/builtins/SectionHeading.d.ts +1 -0
  286. package/dist/blocks/builtins/SectionHeading.js +14 -0
  287. package/dist/blocks/builtins/SectionHeading.js.map +1 -0
  288. package/dist/blocks/builtins/SectionHeadingRender.d.ts +7 -0
  289. package/dist/blocks/builtins/SectionHeadingRender.js +14 -0
  290. package/dist/blocks/builtins/SectionHeadingRender.js.map +1 -0
  291. package/dist/blocks/builtins/SliderRender.js +3 -2
  292. package/dist/blocks/builtins/SliderRender.js.map +1 -1
  293. package/dist/blocks/builtins/SymbolRef.js +1 -1
  294. package/dist/blocks/builtins/SymbolRef.js.map +1 -1
  295. package/dist/blocks/builtins/TeamRender.js +6 -1
  296. package/dist/blocks/builtins/TeamRender.js.map +1 -1
  297. package/dist/blocks/builtins/Testimonials.js +3 -1
  298. package/dist/blocks/builtins/Testimonials.js.map +1 -1
  299. package/dist/blocks/builtins/TestimonialsRender.js +4 -0
  300. package/dist/blocks/builtins/TestimonialsRender.js.map +1 -1
  301. package/dist/blocks/builtins/WhatsappChatRender.d.ts +1 -1
  302. package/dist/blocks/builtins/WhatsappChatRender.js +1 -1
  303. package/dist/blocks/builtins/WhatsappChatRender.js.map +1 -1
  304. package/dist/blocks/builtins/Widgets.js +2 -2
  305. package/dist/blocks/builtins/Widgets.js.map +1 -1
  306. package/dist/blocks/builtins/WidgetsRender.js +3 -1
  307. package/dist/blocks/builtins/WidgetsRender.js.map +1 -1
  308. package/dist/blocks/builtins/index.d.ts +3 -0
  309. package/dist/blocks/builtins/index.js +6 -0
  310. package/dist/blocks/builtins/index.js.map +1 -1
  311. package/dist/blocks/builtins/lib/autoComplete.d.ts +7 -0
  312. package/dist/blocks/builtins/lib/autoComplete.js +20 -0
  313. package/dist/blocks/builtins/lib/autoComplete.js.map +1 -0
  314. package/dist/blocks/builtins/lib/bookingUrl.d.ts +2 -2
  315. package/dist/blocks/builtins/lib/bookingUrl.js +1 -1
  316. package/dist/blocks/builtins/lib/bookingUrl.js.map +1 -1
  317. package/dist/blocks/builtins/lib/ical.d.ts +24 -0
  318. package/dist/blocks/builtins/lib/ical.js +82 -0
  319. package/dist/blocks/builtins/lib/ical.js.map +1 -0
  320. package/dist/blocks/builtins/lib/vandaag.d.ts +8 -0
  321. package/dist/blocks/builtins/lib/vandaag.js +22 -0
  322. package/dist/blocks/builtins/lib/vandaag.js.map +1 -0
  323. package/dist/blocks/registry.d.ts +6 -0
  324. package/dist/blocks/registry.js.map +1 -1
  325. package/dist/blocks/ui/index.js +1 -0
  326. package/dist/blocks/ui/index.js.map +1 -1
  327. package/dist/components/EditBar.js +2 -4
  328. package/dist/components/EditBar.js.map +1 -1
  329. package/dist/components/News.js +26 -18
  330. package/dist/components/News.js.map +1 -1
  331. package/dist/components/PageView.d.ts +7 -1
  332. package/dist/components/PageView.js +17 -0
  333. package/dist/components/PageView.js.map +1 -1
  334. package/dist/components/ResponsiveImage.js +18 -20
  335. package/dist/components/ResponsiveImage.js.map +1 -1
  336. package/dist/components/site/SiteFooter.d.ts +6 -1
  337. package/dist/components/site/SiteFooter.js +61 -9
  338. package/dist/components/site/SiteFooter.js.map +1 -1
  339. package/dist/components/site/SiteHeader.d.ts +15 -0
  340. package/dist/components/site/SiteHeader.js +70 -0
  341. package/dist/components/site/SiteHeader.js.map +1 -0
  342. package/dist/components/site/SiteNav.d.ts +2 -0
  343. package/dist/components/site/SiteNav.js +29 -5
  344. package/dist/components/site/SiteNav.js.map +1 -1
  345. package/dist/demo/DemoStudio.js +2 -2
  346. package/dist/demo/DemoStudio.js.map +1 -1
  347. package/dist/demo/demoStore.d.ts +13 -0
  348. package/dist/demo/demoStore.js +36 -0
  349. package/dist/demo/demoStore.js.map +1 -1
  350. package/dist/editor/EditorProvider.js +15 -4
  351. package/dist/editor/EditorProvider.js.map +1 -1
  352. package/dist/index.d.ts +4 -1
  353. package/dist/index.js +16 -1
  354. package/dist/index.js.map +1 -1
  355. package/dist/media/ImageContext.d.ts +17 -0
  356. package/dist/media/ImageContext.js +65 -20
  357. package/dist/media/ImageContext.js.map +1 -1
  358. package/dist/media/altInHtml.d.ts +9 -0
  359. package/dist/media/altInHtml.js +17 -0
  360. package/dist/media/altInHtml.js.map +1 -0
  361. package/dist/media/srcset.d.ts +12 -0
  362. package/dist/media/srcset.js +13 -0
  363. package/dist/media/srcset.js.map +1 -0
  364. package/dist/modules/builtins.d.ts +1 -0
  365. package/dist/modules/builtins.js +16 -3
  366. package/dist/modules/builtins.js.map +1 -1
  367. package/dist/modules/shop/blocks/Cart.js +5 -3
  368. package/dist/modules/shop/blocks/Cart.js.map +1 -1
  369. package/dist/modules/shop/blocks/Checkout.js +56 -35
  370. package/dist/modules/shop/blocks/Checkout.js.map +1 -1
  371. package/dist/modules/shop/blocks/Donation.js +4 -4
  372. package/dist/modules/shop/blocks/Donation.js.map +1 -1
  373. package/dist/modules/shop/blocks/ProductDetail.js +19 -3
  374. package/dist/modules/shop/blocks/ProductDetail.js.map +1 -1
  375. package/dist/modules/shop/blocks/ProductGrid.d.ts +3 -1
  376. package/dist/modules/shop/blocks/ProductGrid.js +8 -4
  377. package/dist/modules/shop/blocks/ProductGrid.js.map +1 -1
  378. package/dist/modules/shop/blocks/ShopCategories.js +4 -3
  379. package/dist/modules/shop/blocks/ShopCategories.js.map +1 -1
  380. package/dist/modules/shop/lib.d.ts +4 -0
  381. package/dist/modules/shop/lib.js +14 -0
  382. package/dist/modules/shop/lib.js.map +1 -1
  383. package/dist/modules/shop/settings.d.ts +3 -0
  384. package/dist/modules/shop/settings.js +14 -0
  385. package/dist/modules/shop/settings.js.map +1 -1
  386. package/dist/modules/shop/strings.d.ts +4 -0
  387. package/dist/modules/shop/strings.js +8 -0
  388. package/dist/modules/shop/strings.js.map +1 -1
  389. package/dist/next/envCheck.d.ts +42 -0
  390. package/dist/next/envCheck.js +106 -0
  391. package/dist/next/envCheck.js.map +1 -0
  392. package/dist/next/index.cjs +185 -2
  393. package/dist/next/index.d.ts +2 -0
  394. package/dist/next/index.js +8 -1
  395. package/dist/next/index.js.map +1 -1
  396. package/dist/next/securityHeaders.d.ts +36 -0
  397. package/dist/next/securityHeaders.js +74 -0
  398. package/dist/next/securityHeaders.js.map +1 -0
  399. package/dist/patterns/builtins.d.ts +7 -0
  400. package/dist/patterns/builtins.js +138 -3
  401. package/dist/patterns/builtins.js.map +1 -1
  402. package/dist/releaseNotes.js +140 -0
  403. package/dist/releaseNotes.js.map +1 -1
  404. package/dist/render/PublishedPage.d.ts +2 -1
  405. package/dist/render/PublishedPage.js +10 -4
  406. package/dist/render/PublishedPage.js.map +1 -1
  407. package/dist/schema/blocks.d.ts +470 -0
  408. package/dist/schema/blocks.js +102 -4
  409. package/dist/schema/blocks.js.map +1 -1
  410. package/dist/schema/business.d.ts +117 -0
  411. package/dist/schema/business.js +73 -0
  412. package/dist/schema/business.js.map +1 -0
  413. package/dist/schema/fields.d.ts +2 -1
  414. package/dist/schema/fields.js.map +1 -1
  415. package/dist/schema/forms.d.ts +18 -0
  416. package/dist/schema/forms.js +18 -3
  417. package/dist/schema/forms.js.map +1 -1
  418. package/dist/schema/mail.d.ts +10 -0
  419. package/dist/schema/mail.js +7 -0
  420. package/dist/schema/mail.js.map +1 -1
  421. package/dist/schema/settings.d.ts +101 -0
  422. package/dist/schema/settings.js +24 -3
  423. package/dist/schema/settings.js.map +1 -1
  424. package/dist/schema/shop.d.ts +2 -0
  425. package/dist/schema/shop.js +4 -0
  426. package/dist/schema/shop.js.map +1 -1
  427. package/dist/schema/shopGeld.d.ts +1 -0
  428. package/dist/schema/shopGeld.js +1 -0
  429. package/dist/schema/shopGeld.js.map +1 -1
  430. package/dist/schema/siteConfig.d.ts +68 -1
  431. package/dist/schema/siteConfig.js +7 -2
  432. package/dist/schema/siteConfig.js.map +1 -1
  433. package/dist/server/blockData.d.ts +1 -1
  434. package/dist/server/blockData.js +74 -18
  435. package/dist/server/blockData.js.map +1 -1
  436. package/dist/server/cspRapport.d.ts +20 -0
  437. package/dist/server/cspRapport.js +56 -0
  438. package/dist/server/cspRapport.js.map +1 -0
  439. package/dist/server/fonts.d.ts +3 -0
  440. package/dist/server/fonts.js +39 -0
  441. package/dist/server/fonts.js.map +1 -0
  442. package/dist/server/index.d.ts +3 -0
  443. package/dist/server/index.js +8 -0
  444. package/dist/server/index.js.map +1 -1
  445. package/dist/server/sanitize.js +15 -2
  446. package/dist/server/sanitize.js.map +1 -1
  447. package/dist/settings/useSiteSettings.js +4 -1
  448. package/dist/settings/useSiteSettings.js.map +1 -1
  449. package/dist/starters/starters.d.ts +69 -0
  450. package/dist/starters/starters.js +171 -0
  451. package/dist/starters/starters.js.map +1 -0
  452. package/dist/styles.css +1149 -208
  453. package/dist/theme/color.d.ts +10 -0
  454. package/dist/theme/color.js +17 -1
  455. package/dist/theme/color.js.map +1 -1
  456. package/dist/theme/fontFallback.d.ts +23 -0
  457. package/dist/theme/fontFallback.js +58 -0
  458. package/dist/theme/fontFallback.js.map +1 -0
  459. package/dist/theme/fonts.d.ts +11 -0
  460. package/dist/theme/fonts.js +16 -0
  461. package/dist/theme/fonts.js.map +1 -0
  462. package/dist/version.js +1 -1
  463. package/package.json +6 -4
@@ -0,0 +1,69 @@
1
+ import { type Pattern } from "../patterns/index.js";
2
+ /**
3
+ * Branchestarters (8.14): een complete beginsite per soort bedrijf.
4
+ *
5
+ * Een nieuwe site begon leeg — "Welkom bij X" en een link naar /beheer — en elke klant kreeg
6
+ * daarmee hetzelfde lege vel, of het nu een kapper, een restaurant of een vakantiehuis was. Een
7
+ * starter zet in één keer: een passende huisstijl-preset, het soort bedrijf (voor Google), de
8
+ * modules die dat type nodig heeft, en vier tot zes pagina's met de juiste blokken, als werkversie
9
+ * om in te vullen. Gebruikt door `create-site --type` en door de knop "Start met een kant-en-klare
10
+ * opzet" in /beheer → Pagina's (alleen bij een site zonder pagina's).
11
+ *
12
+ * De pagina's zijn patronen (`patterns/builtins.ts`, categorie "Pagina's"), zodat dezelfde opzet
13
+ * ook los te kiezen is bij "Nieuwe pagina".
14
+ */
15
+ export interface StarterPagina {
16
+ title: string;
17
+ path: string;
18
+ /** Id van een paginapatroon. */
19
+ patroon: string;
20
+ /** Staat de pagina in het menu? (standaard ja) */
21
+ inMenu?: boolean;
22
+ }
23
+ export interface Starter {
24
+ id: string;
25
+ label: string;
26
+ /** Voor wie, in één zin. */
27
+ voor: string;
28
+ icoon: string;
29
+ /** Id uit `theme/presets.ts`. */
30
+ preset: string;
31
+ /** schema.org-type voor het bedrijfsprofiel. */
32
+ bedrijfstype: string;
33
+ /** Modules die aan moeten (naast de standaard-aan modules). */
34
+ modules: string[];
35
+ paginas: StarterPagina[];
36
+ /** De knop rechtsboven in de kop. */
37
+ cta: {
38
+ label: string;
39
+ href: string;
40
+ };
41
+ }
42
+ export declare const STARTERS: Starter[];
43
+ export declare function vindStarter(id: string): Starter | undefined;
44
+ /**
45
+ * De pagina's van een starter, klaar om op te slaan (verse blok-sleutels). Een patroon dat niet
46
+ * bestaat (oude starter, nieuwe core) wordt overgeslagen in plaats van een lege pagina te maken.
47
+ */
48
+ export declare function starterPaginas(starter: Starter, patronen?: Pattern[]): {
49
+ title: string;
50
+ slug: string;
51
+ path: string;
52
+ inMenu: boolean;
53
+ blocks: Array<Record<string, unknown>>;
54
+ }[];
55
+ /** Alle bloktypes die de pagina's van een starter gebruiken (ook genest in kolommen). */
56
+ export declare function starterBloktypes(starter: Starter, patronen?: Pattern[]): Set<string>;
57
+ /**
58
+ * Welke modules moeten aan: die de starter noemt, plus elke module die een gebruikt blok levert
59
+ * (anders staat er op een startpagina een blok dat de site niet kent). Standaard-aan en kern-
60
+ * modules hoeven niet in de lijst.
61
+ */
62
+ export declare function starterModules(starter: Starter, modules: {
63
+ id: string;
64
+ blocks?: {
65
+ type: string;
66
+ }[];
67
+ core?: boolean;
68
+ defaultEnabled?: boolean;
69
+ }[], patronen?: Pattern[]): string[];
@@ -0,0 +1,171 @@
1
+ import { builtinPatterns, collectPatternTypes, instantiatePattern } from "../patterns/index.js";
2
+ const STARTERS = [
3
+ {
4
+ id: "dienstverlener",
5
+ label: "Dienstverlener",
6
+ voor: "Hovenier, klusbedrijf, schilder, installateur, coach \u2014 diensten en een offerte-aanvraag.",
7
+ icoon: "\u{1F6E0}\uFE0F",
8
+ preset: "natuurlijk-groen",
9
+ bedrijfstype: "HomeAndConstructionBusiness",
10
+ modules: ["testimonials", "portfolio"],
11
+ cta: { label: "Offerte aanvragen", href: "/contact" },
12
+ paginas: [
13
+ { title: "Home", path: "/", patroon: "page-landing" },
14
+ { title: "Diensten", path: "/diensten", patroon: "page-services" },
15
+ { title: "Werk", path: "/werk", patroon: "page-portfolio" },
16
+ { title: "Over ons", path: "/over-ons", patroon: "page-about" },
17
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
18
+ ]
19
+ },
20
+ {
21
+ id: "salon",
22
+ label: "Kapper, barbier of salon",
23
+ voor: "Kapper, barbier, schoonheids- of nagelsalon \u2014 tarieven, team en online afspraken.",
24
+ icoon: "\u2702\uFE0F",
25
+ preset: "luxe-donker",
26
+ bedrijfstype: "HairSalon",
27
+ modules: ["testimonials", "team", "booking"],
28
+ cta: { label: "Afspraak maken", href: "/afspraak" },
29
+ paginas: [
30
+ { title: "Home", path: "/", patroon: "page-landing" },
31
+ { title: "Tarieven", path: "/tarieven", patroon: "page-tarieven" },
32
+ { title: "Team", path: "/team", patroon: "page-team" },
33
+ { title: "Afspraak maken", path: "/afspraak", patroon: "page-reserveren" },
34
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
35
+ ]
36
+ },
37
+ {
38
+ id: "horeca",
39
+ label: "Restaurant of caf\xE9",
40
+ voor: "Restaurant, caf\xE9, lunchroom, bakkerij \u2014 menukaart, openingstijden en reserveren.",
41
+ icoon: "\u{1F37D}\uFE0F",
42
+ preset: "warm-uitnodigend",
43
+ bedrijfstype: "Restaurant",
44
+ modules: ["testimonials", "booking", "agenda"],
45
+ cta: { label: "Reserveren", href: "/reserveren" },
46
+ paginas: [
47
+ { title: "Home", path: "/", patroon: "page-landing" },
48
+ { title: "Menukaart", path: "/menukaart", patroon: "page-menukaart" },
49
+ { title: "Reserveren", path: "/reserveren", patroon: "page-reserveren" },
50
+ { title: "Over ons", path: "/over-ons", patroon: "page-about" },
51
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
52
+ ]
53
+ },
54
+ {
55
+ id: "winkel",
56
+ label: "Webwinkel",
57
+ voor: "Producten online verkopen, met afrekenen, verzenden of afhalen.",
58
+ icoon: "\u{1F6CD}\uFE0F",
59
+ preset: "modern-fris",
60
+ bedrijfstype: "Store",
61
+ modules: ["shop", "testimonials"],
62
+ cta: { label: "Bekijk de winkel", href: "/winkel" },
63
+ paginas: [
64
+ { title: "Home", path: "/", patroon: "page-landing" },
65
+ { title: "Over ons", path: "/over-ons", patroon: "page-about" },
66
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
67
+ ]
68
+ },
69
+ {
70
+ id: "verhuur",
71
+ label: "Vakantiehuis of B&B",
72
+ voor: "Vakantiewoning, B&B, camping, groepsaccommodatie \u2014 foto's, prijzen en boeken.",
73
+ icoon: "\u{1F3E1}",
74
+ preset: "elegant-klassiek",
75
+ bedrijfstype: "LodgingBusiness",
76
+ modules: ["testimonials", "booking"],
77
+ cta: { label: "Beschikbaarheid", href: "/verblijf" },
78
+ paginas: [
79
+ { title: "Home", path: "/", patroon: "page-landing" },
80
+ { title: "Het verblijf", path: "/verblijf", patroon: "page-verhuur" },
81
+ { title: "Omgeving", path: "/omgeving", patroon: "page-about" },
82
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
83
+ ]
84
+ },
85
+ {
86
+ id: "vereniging",
87
+ label: "Vereniging, kerk of stichting",
88
+ voor: "Vereniging, kerk, stichting, school \u2014 agenda, nieuws, wie we zijn en contact.",
89
+ icoon: "\u{1F91D}",
90
+ preset: "vriendelijk-afgerond",
91
+ bedrijfstype: "NGO",
92
+ modules: ["agenda", "team", "newsletter"],
93
+ cta: { label: "Word lid", href: "/contact" },
94
+ paginas: [
95
+ { title: "Home", path: "/", patroon: "page-landing" },
96
+ { title: "Agenda", path: "/agenda", patroon: "page-agenda" },
97
+ { title: "Wie we zijn", path: "/wie-we-zijn", patroon: "page-team" },
98
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
99
+ ]
100
+ },
101
+ {
102
+ id: "praktijk",
103
+ label: "Praktijk",
104
+ voor: "Fysiotherapie, huisarts, psycholoog, tandarts \u2014 behandelingen, team en afspraken.",
105
+ icoon: "\u{1FA7A}",
106
+ preset: "strak-zakelijk",
107
+ bedrijfstype: "MedicalBusiness",
108
+ modules: ["team", "booking", "testimonials"],
109
+ cta: { label: "Afspraak maken", href: "/afspraak" },
110
+ paginas: [
111
+ { title: "Home", path: "/", patroon: "page-landing" },
112
+ { title: "Behandelingen", path: "/behandelingen", patroon: "page-services" },
113
+ { title: "Tarieven", path: "/tarieven", patroon: "page-tarieven" },
114
+ { title: "Team", path: "/team", patroon: "page-team" },
115
+ { title: "Afspraak maken", path: "/afspraak", patroon: "page-reserveren" },
116
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
117
+ ]
118
+ },
119
+ {
120
+ id: "creatief",
121
+ label: "Fotograaf of creatief",
122
+ voor: "Fotograaf, ontwerper, architect, kunstenaar \u2014 werk tonen en opdrachten krijgen.",
123
+ icoon: "\u{1F4F7}",
124
+ preset: "minimalistisch",
125
+ bedrijfstype: "ProfessionalService",
126
+ modules: ["portfolio", "testimonials"],
127
+ cta: { label: "Neem contact op", href: "/contact" },
128
+ paginas: [
129
+ { title: "Home", path: "/", patroon: "page-landing" },
130
+ { title: "Werk", path: "/werk", patroon: "page-portfolio" },
131
+ { title: "Over mij", path: "/over-mij", patroon: "page-about" },
132
+ { title: "Contact", path: "/contact", patroon: "page-contact" }
133
+ ]
134
+ }
135
+ ];
136
+ function vindStarter(id) {
137
+ return STARTERS.find((s) => s.id === id);
138
+ }
139
+ function starterPaginas(starter, patronen = builtinPatterns) {
140
+ return starter.paginas.flatMap((p) => {
141
+ const patroon = patronen.find((x) => x.id === p.patroon);
142
+ if (!patroon) return [];
143
+ const slug = p.path === "/" ? "home" : p.path.split("/").pop() ?? "pagina";
144
+ return [{ title: p.title, slug, path: p.path, inMenu: p.inMenu !== false, blocks: instantiatePattern(patroon) }];
145
+ });
146
+ }
147
+ function starterBloktypes(starter, patronen = builtinPatterns) {
148
+ const types = /* @__PURE__ */ new Set();
149
+ for (const p of starter.paginas) {
150
+ const patroon = patronen.find((x) => x.id === p.patroon);
151
+ if (patroon) for (const t of collectPatternTypes(patroon)) types.add(t);
152
+ }
153
+ return types;
154
+ }
155
+ function starterModules(starter, modules, patronen = builtinPatterns) {
156
+ const nodig = new Set(starter.modules);
157
+ const types = starterBloktypes(starter, patronen);
158
+ for (const m of modules) {
159
+ if (m.core || m.defaultEnabled !== false) continue;
160
+ if ((m.blocks ?? []).some((b) => types.has(b.type))) nodig.add(m.id);
161
+ }
162
+ return [...nodig].sort();
163
+ }
164
+ export {
165
+ STARTERS,
166
+ starterBloktypes,
167
+ starterModules,
168
+ starterPaginas,
169
+ vindStarter
170
+ };
171
+ //# sourceMappingURL=starters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/starters/starters.ts"],"sourcesContent":["import { builtinPatterns, collectPatternTypes, instantiatePattern, type Pattern } from \"../patterns\";\n\n/**\n * Branchestarters (8.14): een complete beginsite per soort bedrijf.\n *\n * Een nieuwe site begon leeg — \"Welkom bij X\" en een link naar /beheer — en elke klant kreeg\n * daarmee hetzelfde lege vel, of het nu een kapper, een restaurant of een vakantiehuis was. Een\n * starter zet in één keer: een passende huisstijl-preset, het soort bedrijf (voor Google), de\n * modules die dat type nodig heeft, en vier tot zes pagina's met de juiste blokken, als werkversie\n * om in te vullen. Gebruikt door `create-site --type` en door de knop \"Start met een kant-en-klare\n * opzet\" in /beheer → Pagina's (alleen bij een site zonder pagina's).\n *\n * De pagina's zijn patronen (`patterns/builtins.ts`, categorie \"Pagina's\"), zodat dezelfde opzet\n * ook los te kiezen is bij \"Nieuwe pagina\".\n */\nexport interface StarterPagina {\n title: string;\n path: string;\n /** Id van een paginapatroon. */\n patroon: string;\n /** Staat de pagina in het menu? (standaard ja) */\n inMenu?: boolean;\n}\n\nexport interface Starter {\n id: string;\n label: string;\n /** Voor wie, in één zin. */\n voor: string;\n icoon: string;\n /** Id uit `theme/presets.ts`. */\n preset: string;\n /** schema.org-type voor het bedrijfsprofiel. */\n bedrijfstype: string;\n /** Modules die aan moeten (naast de standaard-aan modules). */\n modules: string[];\n paginas: StarterPagina[];\n /** De knop rechtsboven in de kop. */\n cta: { label: string; href: string };\n}\n\nexport const STARTERS: Starter[] = [\n {\n id: \"dienstverlener\",\n label: \"Dienstverlener\",\n voor: \"Hovenier, klusbedrijf, schilder, installateur, coach — diensten en een offerte-aanvraag.\",\n icoon: \"🛠️\",\n preset: \"natuurlijk-groen\",\n bedrijfstype: \"HomeAndConstructionBusiness\",\n modules: [\"testimonials\", \"portfolio\"],\n cta: { label: \"Offerte aanvragen\", href: \"/contact\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Diensten\", path: \"/diensten\", patroon: \"page-services\" },\n { title: \"Werk\", path: \"/werk\", patroon: \"page-portfolio\" },\n { title: \"Over ons\", path: \"/over-ons\", patroon: \"page-about\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"salon\",\n label: \"Kapper, barbier of salon\",\n voor: \"Kapper, barbier, schoonheids- of nagelsalon — tarieven, team en online afspraken.\",\n icoon: \"✂️\",\n preset: \"luxe-donker\",\n bedrijfstype: \"HairSalon\",\n modules: [\"testimonials\", \"team\", \"booking\"],\n cta: { label: \"Afspraak maken\", href: \"/afspraak\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Tarieven\", path: \"/tarieven\", patroon: \"page-tarieven\" },\n { title: \"Team\", path: \"/team\", patroon: \"page-team\" },\n { title: \"Afspraak maken\", path: \"/afspraak\", patroon: \"page-reserveren\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"horeca\",\n label: \"Restaurant of café\",\n voor: \"Restaurant, café, lunchroom, bakkerij — menukaart, openingstijden en reserveren.\",\n icoon: \"🍽️\",\n preset: \"warm-uitnodigend\",\n bedrijfstype: \"Restaurant\",\n modules: [\"testimonials\", \"booking\", \"agenda\"],\n cta: { label: \"Reserveren\", href: \"/reserveren\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Menukaart\", path: \"/menukaart\", patroon: \"page-menukaart\" },\n { title: \"Reserveren\", path: \"/reserveren\", patroon: \"page-reserveren\" },\n { title: \"Over ons\", path: \"/over-ons\", patroon: \"page-about\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"winkel\",\n label: \"Webwinkel\",\n voor: \"Producten online verkopen, met afrekenen, verzenden of afhalen.\",\n icoon: \"🛍️\",\n preset: \"modern-fris\",\n bedrijfstype: \"Store\",\n modules: [\"shop\", \"testimonials\"],\n cta: { label: \"Bekijk de winkel\", href: \"/winkel\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Over ons\", path: \"/over-ons\", patroon: \"page-about\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"verhuur\",\n label: \"Vakantiehuis of B&B\",\n voor: \"Vakantiewoning, B&B, camping, groepsaccommodatie — foto's, prijzen en boeken.\",\n icoon: \"🏡\",\n preset: \"elegant-klassiek\",\n bedrijfstype: \"LodgingBusiness\",\n modules: [\"testimonials\", \"booking\"],\n cta: { label: \"Beschikbaarheid\", href: \"/verblijf\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Het verblijf\", path: \"/verblijf\", patroon: \"page-verhuur\" },\n { title: \"Omgeving\", path: \"/omgeving\", patroon: \"page-about\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"vereniging\",\n label: \"Vereniging, kerk of stichting\",\n voor: \"Vereniging, kerk, stichting, school — agenda, nieuws, wie we zijn en contact.\",\n icoon: \"🤝\",\n preset: \"vriendelijk-afgerond\",\n bedrijfstype: \"NGO\",\n modules: [\"agenda\", \"team\", \"newsletter\"],\n cta: { label: \"Word lid\", href: \"/contact\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Agenda\", path: \"/agenda\", patroon: \"page-agenda\" },\n { title: \"Wie we zijn\", path: \"/wie-we-zijn\", patroon: \"page-team\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"praktijk\",\n label: \"Praktijk\",\n voor: \"Fysiotherapie, huisarts, psycholoog, tandarts — behandelingen, team en afspraken.\",\n icoon: \"🩺\",\n preset: \"strak-zakelijk\",\n bedrijfstype: \"MedicalBusiness\",\n modules: [\"team\", \"booking\", \"testimonials\"],\n cta: { label: \"Afspraak maken\", href: \"/afspraak\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Behandelingen\", path: \"/behandelingen\", patroon: \"page-services\" },\n { title: \"Tarieven\", path: \"/tarieven\", patroon: \"page-tarieven\" },\n { title: \"Team\", path: \"/team\", patroon: \"page-team\" },\n { title: \"Afspraak maken\", path: \"/afspraak\", patroon: \"page-reserveren\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n {\n id: \"creatief\",\n label: \"Fotograaf of creatief\",\n voor: \"Fotograaf, ontwerper, architect, kunstenaar — werk tonen en opdrachten krijgen.\",\n icoon: \"📷\",\n preset: \"minimalistisch\",\n bedrijfstype: \"ProfessionalService\",\n modules: [\"portfolio\", \"testimonials\"],\n cta: { label: \"Neem contact op\", href: \"/contact\" },\n paginas: [\n { title: \"Home\", path: \"/\", patroon: \"page-landing\" },\n { title: \"Werk\", path: \"/werk\", patroon: \"page-portfolio\" },\n { title: \"Over mij\", path: \"/over-mij\", patroon: \"page-about\" },\n { title: \"Contact\", path: \"/contact\", patroon: \"page-contact\" },\n ],\n },\n];\n\nexport function vindStarter(id: string): Starter | undefined {\n return STARTERS.find((s) => s.id === id);\n}\n\n/**\n * De pagina's van een starter, klaar om op te slaan (verse blok-sleutels). Een patroon dat niet\n * bestaat (oude starter, nieuwe core) wordt overgeslagen in plaats van een lege pagina te maken.\n */\nexport function starterPaginas(\n starter: Starter,\n patronen: Pattern[] = builtinPatterns,\n): { title: string; slug: string; path: string; inMenu: boolean; blocks: Array<Record<string, unknown>> }[] {\n return starter.paginas.flatMap((p) => {\n const patroon = patronen.find((x) => x.id === p.patroon);\n if (!patroon) return [];\n const slug = p.path === \"/\" ? \"home\" : (p.path.split(\"/\").pop() ?? \"pagina\");\n return [{ title: p.title, slug, path: p.path, inMenu: p.inMenu !== false, blocks: instantiatePattern(patroon) }];\n });\n}\n\n/** Alle bloktypes die de pagina's van een starter gebruiken (ook genest in kolommen). */\nexport function starterBloktypes(starter: Starter, patronen: Pattern[] = builtinPatterns): Set<string> {\n const types = new Set<string>();\n for (const p of starter.paginas) {\n const patroon = patronen.find((x) => x.id === p.patroon);\n if (patroon) for (const t of collectPatternTypes(patroon)) types.add(t);\n }\n return types;\n}\n\n/**\n * Welke modules moeten aan: die de starter noemt, plus elke module die een gebruikt blok levert\n * (anders staat er op een startpagina een blok dat de site niet kent). Standaard-aan en kern-\n * modules hoeven niet in de lijst.\n */\nexport function starterModules(\n starter: Starter,\n modules: { id: string; blocks?: { type: string }[]; core?: boolean; defaultEnabled?: boolean }[],\n patronen: Pattern[] = builtinPatterns,\n): string[] {\n const nodig = new Set(starter.modules);\n const types = starterBloktypes(starter, patronen);\n for (const m of modules) {\n if (m.core || m.defaultEnabled !== false) continue;\n if ((m.blocks ?? []).some((b) => types.has(b.type))) nodig.add(m.id);\n }\n return [...nodig].sort();\n}\n"],"mappings":"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","names":[]}