@xiwebdesign/xicms-core 4.17.1

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 (436) hide show
  1. package/dist/XiCMSProvider.d.ts +58 -0
  2. package/dist/XiCMSProvider.js +165 -0
  3. package/dist/XiCMSProvider.js.map +1 -0
  4. package/dist/admin/AdminApp.d.ts +4 -0
  5. package/dist/admin/AdminApp.js +62 -0
  6. package/dist/admin/AdminApp.js.map +1 -0
  7. package/dist/admin/AdminHelp.d.ts +2 -0
  8. package/dist/admin/AdminHelp.js +65 -0
  9. package/dist/admin/AdminHelp.js.map +1 -0
  10. package/dist/admin/NewsEditor.d.ts +2 -0
  11. package/dist/admin/NewsEditor.js +171 -0
  12. package/dist/admin/NewsEditor.js.map +1 -0
  13. package/dist/admin/SuperadminPanel.d.ts +4 -0
  14. package/dist/admin/SuperadminPanel.js +101 -0
  15. package/dist/admin/SuperadminPanel.js.map +1 -0
  16. package/dist/admin/blockEditors/StyleEditor.d.ts +10 -0
  17. package/dist/admin/blockEditors/StyleEditor.js +78 -0
  18. package/dist/admin/blockEditors/StyleEditor.js.map +1 -0
  19. package/dist/admin/blockEditors/index.d.ts +16 -0
  20. package/dist/admin/blockEditors/index.js +1602 -0
  21. package/dist/admin/blockEditors/index.js.map +1 -0
  22. package/dist/admin/editors/RichTextEditor.d.ts +10 -0
  23. package/dist/admin/editors/RichTextEditor.js +86 -0
  24. package/dist/admin/editors/RichTextEditor.js.map +1 -0
  25. package/dist/admin/forms/FormsPanel.d.ts +3 -0
  26. package/dist/admin/forms/FormsPanel.js +203 -0
  27. package/dist/admin/forms/FormsPanel.js.map +1 -0
  28. package/dist/admin/index.d.ts +21 -0
  29. package/dist/admin/index.js +38 -0
  30. package/dist/admin/index.js.map +1 -0
  31. package/dist/admin/lib/compressImage.d.ts +12 -0
  32. package/dist/admin/lib/compressImage.js +53 -0
  33. package/dist/admin/lib/compressImage.js.map +1 -0
  34. package/dist/admin/lib/mediaUsage.d.ts +9 -0
  35. package/dist/admin/lib/mediaUsage.js +25 -0
  36. package/dist/admin/lib/mediaUsage.js.map +1 -0
  37. package/dist/admin/lib/pagesClient.d.ts +38 -0
  38. package/dist/admin/lib/pagesClient.js +143 -0
  39. package/dist/admin/lib/pagesClient.js.map +1 -0
  40. package/dist/admin/lib/slugify.d.ts +2 -0
  41. package/dist/admin/lib/slugify.js +7 -0
  42. package/dist/admin/lib/slugify.js.map +1 -0
  43. package/dist/admin/lib/upload.d.ts +13 -0
  44. package/dist/admin/lib/upload.js +40 -0
  45. package/dist/admin/lib/upload.js.map +1 -0
  46. package/dist/admin/lib/zodFields.d.ts +27 -0
  47. package/dist/admin/lib/zodFields.js +48 -0
  48. package/dist/admin/lib/zodFields.js.map +1 -0
  49. package/dist/admin/media/MediaManager.d.ts +3 -0
  50. package/dist/admin/media/MediaManager.js +132 -0
  51. package/dist/admin/media/MediaManager.js.map +1 -0
  52. package/dist/admin/media/MediaPicker.d.ts +24 -0
  53. package/dist/admin/media/MediaPicker.js +93 -0
  54. package/dist/admin/media/MediaPicker.js.map +1 -0
  55. package/dist/admin/pages/PageEditor.d.ts +5 -0
  56. package/dist/admin/pages/PageEditor.js +239 -0
  57. package/dist/admin/pages/PageEditor.js.map +1 -0
  58. package/dist/admin/pages/PagesPanel.d.ts +3 -0
  59. package/dist/admin/pages/PagesPanel.js +92 -0
  60. package/dist/admin/pages/PagesPanel.js.map +1 -0
  61. package/dist/admin/panelRegistry.d.ts +20 -0
  62. package/dist/admin/panelRegistry.js +23 -0
  63. package/dist/admin/panelRegistry.js.map +1 -0
  64. package/dist/admin/patterns/PatternInserter.d.ts +10 -0
  65. package/dist/admin/patterns/PatternInserter.js +58 -0
  66. package/dist/admin/patterns/PatternInserter.js.map +1 -0
  67. package/dist/admin/settings/SettingsPanel.d.ts +3 -0
  68. package/dist/admin/settings/SettingsPanel.js +304 -0
  69. package/dist/admin/settings/SettingsPanel.js.map +1 -0
  70. package/dist/admin/settings/moduleSettingsForm.d.ts +12 -0
  71. package/dist/admin/settings/moduleSettingsForm.js +45 -0
  72. package/dist/admin/settings/moduleSettingsForm.js.map +1 -0
  73. package/dist/admin/stats/StatsPanel.d.ts +4 -0
  74. package/dist/admin/stats/StatsPanel.js +80 -0
  75. package/dist/admin/stats/StatsPanel.js.map +1 -0
  76. package/dist/admin/ui/ArrayEditor.d.ts +16 -0
  77. package/dist/admin/ui/ArrayEditor.js +38 -0
  78. package/dist/admin/ui/ArrayEditor.js.map +1 -0
  79. package/dist/admin/ui/ConfirmDialog.d.ts +22 -0
  80. package/dist/admin/ui/ConfirmDialog.js +47 -0
  81. package/dist/admin/ui/ConfirmDialog.js.map +1 -0
  82. package/dist/admin/ui/cn.d.ts +3 -0
  83. package/dist/admin/ui/cn.js +9 -0
  84. package/dist/admin/ui/cn.js.map +1 -0
  85. package/dist/admin/ui/dialog.d.ts +9 -0
  86. package/dist/admin/ui/dialog.js +47 -0
  87. package/dist/admin/ui/dialog.js.map +1 -0
  88. package/dist/admin/ui/index.d.ts +7 -0
  89. package/dist/admin/ui/index.js +29 -0
  90. package/dist/admin/ui/index.js.map +1 -0
  91. package/dist/admin/ui/primitives.d.ts +37 -0
  92. package/dist/admin/ui/primitives.js +137 -0
  93. package/dist/admin/ui/primitives.js.map +1 -0
  94. package/dist/admin/ui/select.d.ts +11 -0
  95. package/dist/admin/ui/select.js +27 -0
  96. package/dist/admin/ui/select.js.map +1 -0
  97. package/dist/admin/ui/switch.d.ts +6 -0
  98. package/dist/admin/ui/switch.js +22 -0
  99. package/dist/admin/ui/switch.js.map +1 -0
  100. package/dist/admin/ui/tabs.d.ts +5 -0
  101. package/dist/admin/ui/tabs.js +36 -0
  102. package/dist/admin/ui/tabs.js.map +1 -0
  103. package/dist/admin/ui/toast.d.ts +19 -0
  104. package/dist/admin/ui/toast.js +24 -0
  105. package/dist/admin/ui/toast.js.map +1 -0
  106. package/dist/admin/visual/VisualEditor.d.ts +10 -0
  107. package/dist/admin/visual/VisualEditor.js +597 -0
  108. package/dist/admin/visual/VisualEditor.js.map +1 -0
  109. package/dist/admin/visual/reorder.d.ts +6 -0
  110. package/dist/admin/visual/reorder.js +12 -0
  111. package/dist/admin/visual/reorder.js.map +1 -0
  112. package/dist/admin.css +1 -0
  113. package/dist/auth/AuthProvider.d.ts +30 -0
  114. package/dist/auth/AuthProvider.js +110 -0
  115. package/dist/auth/AuthProvider.js.map +1 -0
  116. package/dist/auth/LoginForm.d.ts +4 -0
  117. package/dist/auth/LoginForm.js +122 -0
  118. package/dist/auth/LoginForm.js.map +1 -0
  119. package/dist/auth/roles.d.ts +15 -0
  120. package/dist/auth/roles.js +21 -0
  121. package/dist/auth/roles.js.map +1 -0
  122. package/dist/blocks/BlockErrorBoundary.d.ts +32 -0
  123. package/dist/blocks/BlockErrorBoundary.js +39 -0
  124. package/dist/blocks/BlockErrorBoundary.js.map +1 -0
  125. package/dist/blocks/BlockRenderer.d.ts +15 -0
  126. package/dist/blocks/BlockRenderer.js +24 -0
  127. package/dist/blocks/BlockRenderer.js.map +1 -0
  128. package/dist/blocks/blockStyle.d.ts +14 -0
  129. package/dist/blocks/blockStyle.js +14 -0
  130. package/dist/blocks/blockStyle.js.map +1 -0
  131. package/dist/blocks/builtins/Accordion.d.ts +2 -0
  132. package/dist/blocks/builtins/Accordion.js +45 -0
  133. package/dist/blocks/builtins/Accordion.js.map +1 -0
  134. package/dist/blocks/builtins/Agenda.d.ts +23 -0
  135. package/dist/blocks/builtins/Agenda.js +102 -0
  136. package/dist/blocks/builtins/Agenda.js.map +1 -0
  137. package/dist/blocks/builtins/Banner.d.ts +2 -0
  138. package/dist/blocks/builtins/Banner.js +45 -0
  139. package/dist/blocks/builtins/Banner.js.map +1 -0
  140. package/dist/blocks/builtins/BeforeAfter.d.ts +2 -0
  141. package/dist/blocks/builtins/BeforeAfter.js +44 -0
  142. package/dist/blocks/builtins/BeforeAfter.js.map +1 -0
  143. package/dist/blocks/builtins/Booking.d.ts +2 -0
  144. package/dist/blocks/builtins/Booking.js +27 -0
  145. package/dist/blocks/builtins/Booking.js.map +1 -0
  146. package/dist/blocks/builtins/Breadcrumbs.d.ts +10 -0
  147. package/dist/blocks/builtins/Breadcrumbs.js +73 -0
  148. package/dist/blocks/builtins/Breadcrumbs.js.map +1 -0
  149. package/dist/blocks/builtins/Cards.d.ts +2 -0
  150. package/dist/blocks/builtins/Cards.js +94 -0
  151. package/dist/blocks/builtins/Cards.js.map +1 -0
  152. package/dist/blocks/builtins/Columns.d.ts +2 -0
  153. package/dist/blocks/builtins/Columns.js +22 -0
  154. package/dist/blocks/builtins/Columns.js.map +1 -0
  155. package/dist/blocks/builtins/Contact.d.ts +7 -0
  156. package/dist/blocks/builtins/Contact.js +121 -0
  157. package/dist/blocks/builtins/Contact.js.map +1 -0
  158. package/dist/blocks/builtins/Countdown.d.ts +18 -0
  159. package/dist/blocks/builtins/Countdown.js +65 -0
  160. package/dist/blocks/builtins/Countdown.js.map +1 -0
  161. package/dist/blocks/builtins/Cta.d.ts +2 -0
  162. package/dist/blocks/builtins/Cta.js +52 -0
  163. package/dist/blocks/builtins/Cta.js.map +1 -0
  164. package/dist/blocks/builtins/Downloads.d.ts +2 -0
  165. package/dist/blocks/builtins/Downloads.js +32 -0
  166. package/dist/blocks/builtins/Downloads.js.map +1 -0
  167. package/dist/blocks/builtins/Elements.d.ts +4 -0
  168. package/dist/blocks/builtins/Elements.js +64 -0
  169. package/dist/blocks/builtins/Elements.js.map +1 -0
  170. package/dist/blocks/builtins/Embed.d.ts +2 -0
  171. package/dist/blocks/builtins/Embed.js +30 -0
  172. package/dist/blocks/builtins/Embed.js.map +1 -0
  173. package/dist/blocks/builtins/Faq.d.ts +6 -0
  174. package/dist/blocks/builtins/Faq.js +110 -0
  175. package/dist/blocks/builtins/Faq.js.map +1 -0
  176. package/dist/blocks/builtins/FormBlock.d.ts +2 -0
  177. package/dist/blocks/builtins/FormBlock.js +221 -0
  178. package/dist/blocks/builtins/FormBlock.js.map +1 -0
  179. package/dist/blocks/builtins/Gallery.d.ts +23 -0
  180. package/dist/blocks/builtins/Gallery.js +177 -0
  181. package/dist/blocks/builtins/Gallery.js.map +1 -0
  182. package/dist/blocks/builtins/Hero.d.ts +2 -0
  183. package/dist/blocks/builtins/Hero.js +47 -0
  184. package/dist/blocks/builtins/Hero.js.map +1 -0
  185. package/dist/blocks/builtins/ImageBlock.d.ts +2 -0
  186. package/dist/blocks/builtins/ImageBlock.js +24 -0
  187. package/dist/blocks/builtins/ImageBlock.js.map +1 -0
  188. package/dist/blocks/builtins/Jobs.d.ts +8 -0
  189. package/dist/blocks/builtins/Jobs.js +65 -0
  190. package/dist/blocks/builtins/Jobs.js.map +1 -0
  191. package/dist/blocks/builtins/Layout.d.ts +3 -0
  192. package/dist/blocks/builtins/Layout.js +67 -0
  193. package/dist/blocks/builtins/Layout.js.map +1 -0
  194. package/dist/blocks/builtins/MapBlock.d.ts +2 -0
  195. package/dist/blocks/builtins/MapBlock.js +31 -0
  196. package/dist/blocks/builtins/MapBlock.js.map +1 -0
  197. package/dist/blocks/builtins/NewsListBlock.d.ts +2 -0
  198. package/dist/blocks/builtins/NewsListBlock.js +24 -0
  199. package/dist/blocks/builtins/NewsListBlock.js.map +1 -0
  200. package/dist/blocks/builtins/Newsletter.d.ts +2 -0
  201. package/dist/blocks/builtins/Newsletter.js +84 -0
  202. package/dist/blocks/builtins/Newsletter.js.map +1 -0
  203. package/dist/blocks/builtins/OpenNowBadge.d.ts +9 -0
  204. package/dist/blocks/builtins/OpenNowBadge.js +20 -0
  205. package/dist/blocks/builtins/OpenNowBadge.js.map +1 -0
  206. package/dist/blocks/builtins/OpeningHours.d.ts +2 -0
  207. package/dist/blocks/builtins/OpeningHours.js +47 -0
  208. package/dist/blocks/builtins/OpeningHours.js.map +1 -0
  209. package/dist/blocks/builtins/PdfBlock.d.ts +2 -0
  210. package/dist/blocks/builtins/PdfBlock.js +97 -0
  211. package/dist/blocks/builtins/PdfBlock.js.map +1 -0
  212. package/dist/blocks/builtins/Portfolio.d.ts +2 -0
  213. package/dist/blocks/builtins/Portfolio.js +94 -0
  214. package/dist/blocks/builtins/Portfolio.js.map +1 -0
  215. package/dist/blocks/builtins/Pricing.d.ts +6 -0
  216. package/dist/blocks/builtins/Pricing.js +77 -0
  217. package/dist/blocks/builtins/Pricing.js.map +1 -0
  218. package/dist/blocks/builtins/RichTextBlock.d.ts +2 -0
  219. package/dist/blocks/builtins/RichTextBlock.js +18 -0
  220. package/dist/blocks/builtins/RichTextBlock.js.map +1 -0
  221. package/dist/blocks/builtins/Search.d.ts +2 -0
  222. package/dist/blocks/builtins/Search.js +99 -0
  223. package/dist/blocks/builtins/Search.js.map +1 -0
  224. package/dist/blocks/builtins/Sections.d.ts +5 -0
  225. package/dist/blocks/builtins/Sections.js +183 -0
  226. package/dist/blocks/builtins/Sections.js.map +1 -0
  227. package/dist/blocks/builtins/Slider.d.ts +2 -0
  228. package/dist/blocks/builtins/Slider.js +131 -0
  229. package/dist/blocks/builtins/Slider.js.map +1 -0
  230. package/dist/blocks/builtins/Spacer.d.ts +2 -0
  231. package/dist/blocks/builtins/Spacer.js +19 -0
  232. package/dist/blocks/builtins/Spacer.js.map +1 -0
  233. package/dist/blocks/builtins/Team.d.ts +2 -0
  234. package/dist/blocks/builtins/Team.js +70 -0
  235. package/dist/blocks/builtins/Team.js.map +1 -0
  236. package/dist/blocks/builtins/Testimonials.d.ts +8 -0
  237. package/dist/blocks/builtins/Testimonials.js +82 -0
  238. package/dist/blocks/builtins/Testimonials.js.map +1 -0
  239. package/dist/blocks/builtins/Video.d.ts +9 -0
  240. package/dist/blocks/builtins/Video.js +77 -0
  241. package/dist/blocks/builtins/Video.js.map +1 -0
  242. package/dist/blocks/builtins/WhatsappChat.d.ts +8 -0
  243. package/dist/blocks/builtins/WhatsappChat.js +51 -0
  244. package/dist/blocks/builtins/WhatsappChat.js.map +1 -0
  245. package/dist/blocks/builtins/Widgets.d.ts +13 -0
  246. package/dist/blocks/builtins/Widgets.js +308 -0
  247. package/dist/blocks/builtins/Widgets.js.map +1 -0
  248. package/dist/blocks/builtins/consentEmbed.d.ts +17 -0
  249. package/dist/blocks/builtins/consentEmbed.js +31 -0
  250. package/dist/blocks/builtins/consentEmbed.js.map +1 -0
  251. package/dist/blocks/builtins/index.d.ts +46 -0
  252. package/dist/blocks/builtins/index.js +121 -0
  253. package/dist/blocks/builtins/index.js.map +1 -0
  254. package/dist/blocks/builtins/lib/bookingUrl.d.ts +8 -0
  255. package/dist/blocks/builtins/lib/bookingUrl.js +50 -0
  256. package/dist/blocks/builtins/lib/bookingUrl.js.map +1 -0
  257. package/dist/blocks/builtins/lib/fileIcon.d.ts +2 -0
  258. package/dist/blocks/builtins/lib/fileIcon.js +45 -0
  259. package/dist/blocks/builtins/lib/fileIcon.js.map +1 -0
  260. package/dist/blocks/builtins/lib/ics.d.ts +17 -0
  261. package/dist/blocks/builtins/lib/ics.js +50 -0
  262. package/dist/blocks/builtins/lib/ics.js.map +1 -0
  263. package/dist/blocks/builtins/lib/openingHours.d.ts +20 -0
  264. package/dist/blocks/builtins/lib/openingHours.js +79 -0
  265. package/dist/blocks/builtins/lib/openingHours.js.map +1 -0
  266. package/dist/blocks/builtins/lib/searchRank.d.ts +22 -0
  267. package/dist/blocks/builtins/lib/searchRank.js +45 -0
  268. package/dist/blocks/builtins/lib/searchRank.js.map +1 -0
  269. package/dist/blocks/builtins/lib/submitForm.d.ts +6 -0
  270. package/dist/blocks/builtins/lib/submitForm.js +14 -0
  271. package/dist/blocks/builtins/lib/submitForm.js.map +1 -0
  272. package/dist/blocks/context.d.ts +8 -0
  273. package/dist/blocks/context.js +20 -0
  274. package/dist/blocks/context.js.map +1 -0
  275. package/dist/blocks/index.d.ts +9 -0
  276. package/dist/blocks/index.js +21 -0
  277. package/dist/blocks/index.js.map +1 -0
  278. package/dist/blocks/registry.d.ts +75 -0
  279. package/dist/blocks/registry.js +71 -0
  280. package/dist/blocks/registry.js.map +1 -0
  281. package/dist/blocks/ui/index.d.ts +35 -0
  282. package/dist/blocks/ui/index.js +48 -0
  283. package/dist/blocks/ui/index.js.map +1 -0
  284. package/dist/components/EditBar.d.ts +2 -0
  285. package/dist/components/EditBar.js +20 -0
  286. package/dist/components/EditBar.js.map +1 -0
  287. package/dist/components/EditableImage.d.ts +18 -0
  288. package/dist/components/EditableImage.js +62 -0
  289. package/dist/components/EditableImage.js.map +1 -0
  290. package/dist/components/EditableRichText.d.ts +14 -0
  291. package/dist/components/EditableRichText.js +26 -0
  292. package/dist/components/EditableRichText.js.map +1 -0
  293. package/dist/components/EditableText.d.ts +21 -0
  294. package/dist/components/EditableText.js +25 -0
  295. package/dist/components/EditableText.js.map +1 -0
  296. package/dist/components/News.d.ts +38 -0
  297. package/dist/components/News.js +128 -0
  298. package/dist/components/News.js.map +1 -0
  299. package/dist/components/PageView.d.ts +8 -0
  300. package/dist/components/PageView.js +28 -0
  301. package/dist/components/PageView.js.map +1 -0
  302. package/dist/components/ResponsiveImage.d.ts +16 -0
  303. package/dist/components/ResponsiveImage.js +39 -0
  304. package/dist/components/ResponsiveImage.js.map +1 -0
  305. package/dist/components/site/SiteFooter.d.ts +12 -0
  306. package/dist/components/site/SiteFooter.js +34 -0
  307. package/dist/components/site/SiteFooter.js.map +1 -0
  308. package/dist/config.d.ts +8 -0
  309. package/dist/config.js +17 -0
  310. package/dist/config.js.map +1 -0
  311. package/dist/content/ContentProvider.d.ts +23 -0
  312. package/dist/content/ContentProvider.js +86 -0
  313. package/dist/content/ContentProvider.js.map +1 -0
  314. package/dist/content/types.d.ts +41 -0
  315. package/dist/content/types.js +1 -0
  316. package/dist/content/types.js.map +1 -0
  317. package/dist/demo/DemoStudio.d.ts +7 -0
  318. package/dist/demo/DemoStudio.js +54 -0
  319. package/dist/demo/DemoStudio.js.map +1 -0
  320. package/dist/demo/demoStore.d.ts +26 -0
  321. package/dist/demo/demoStore.js +115 -0
  322. package/dist/demo/demoStore.js.map +1 -0
  323. package/dist/editor/EditorProvider.d.ts +12 -0
  324. package/dist/editor/EditorProvider.js +22 -0
  325. package/dist/editor/EditorProvider.js.map +1 -0
  326. package/dist/firebase/admin.d.ts +7 -0
  327. package/dist/firebase/admin.js +31 -0
  328. package/dist/firebase/admin.js.map +1 -0
  329. package/dist/firebase/appcheck.d.ts +6 -0
  330. package/dist/firebase/appcheck.js +23 -0
  331. package/dist/firebase/appcheck.js.map +1 -0
  332. package/dist/firebase/client.d.ts +9 -0
  333. package/dist/firebase/client.js +44 -0
  334. package/dist/firebase/client.js.map +1 -0
  335. package/dist/firebase/region.d.ts +5 -0
  336. package/dist/firebase/region.js +7 -0
  337. package/dist/firebase/region.js.map +1 -0
  338. package/dist/index.d.ts +54 -0
  339. package/dist/index.js +172 -0
  340. package/dist/index.js.map +1 -0
  341. package/dist/layers.css +13 -0
  342. package/dist/lock/DemoLock.d.ts +5 -0
  343. package/dist/lock/DemoLock.js +35 -0
  344. package/dist/lock/DemoLock.js.map +1 -0
  345. package/dist/media/ImageContext.d.ts +41 -0
  346. package/dist/media/ImageContext.js +74 -0
  347. package/dist/media/ImageContext.js.map +1 -0
  348. package/dist/modules/builtins.d.ts +46 -0
  349. package/dist/modules/builtins.js +462 -0
  350. package/dist/modules/builtins.js.map +1 -0
  351. package/dist/modules/consent/ConsentBanner.d.ts +42 -0
  352. package/dist/modules/consent/ConsentBanner.js +119 -0
  353. package/dist/modules/consent/ConsentBanner.js.map +1 -0
  354. package/dist/modules/consent/useConsent.d.ts +28 -0
  355. package/dist/modules/consent/useConsent.js +52 -0
  356. package/dist/modules/consent/useConsent.js.map +1 -0
  357. package/dist/modules/context.d.ts +20 -0
  358. package/dist/modules/context.js +31 -0
  359. package/dist/modules/context.js.map +1 -0
  360. package/dist/modules/contract.d.ts +9 -0
  361. package/dist/modules/contract.js +38 -0
  362. package/dist/modules/contract.js.map +1 -0
  363. package/dist/modules/defineModule.d.ts +11 -0
  364. package/dist/modules/defineModule.js +7 -0
  365. package/dist/modules/defineModule.js.map +1 -0
  366. package/dist/modules/index.d.ts +13 -0
  367. package/dist/modules/index.js +44 -0
  368. package/dist/modules/index.js.map +1 -0
  369. package/dist/modules/overrides.d.ts +17 -0
  370. package/dist/modules/overrides.js +25 -0
  371. package/dist/modules/overrides.js.map +1 -0
  372. package/dist/modules/registry.d.ts +40 -0
  373. package/dist/modules/registry.js +79 -0
  374. package/dist/modules/registry.js.map +1 -0
  375. package/dist/modules/types.d.ts +66 -0
  376. package/dist/modules/types.js +1 -0
  377. package/dist/modules/types.js.map +1 -0
  378. package/dist/patterns/builtins.d.ts +31 -0
  379. package/dist/patterns/builtins.js +415 -0
  380. package/dist/patterns/builtins.js.map +1 -0
  381. package/dist/patterns/index.d.ts +6 -0
  382. package/dist/patterns/index.js +9 -0
  383. package/dist/patterns/index.js.map +1 -0
  384. package/dist/patterns/patterns.d.ts +28 -0
  385. package/dist/patterns/patterns.js +53 -0
  386. package/dist/patterns/patterns.js.map +1 -0
  387. package/dist/render/PageRenderer.d.ts +13 -0
  388. package/dist/render/PageRenderer.js +14 -0
  389. package/dist/render/PageRenderer.js.map +1 -0
  390. package/dist/render/PublishedPage.d.ts +13 -0
  391. package/dist/render/PublishedPage.js +16 -0
  392. package/dist/render/PublishedPage.js.map +1 -0
  393. package/dist/schema/blocks.d.ts +15052 -0
  394. package/dist/schema/blocks.js +794 -0
  395. package/dist/schema/blocks.js.map +1 -0
  396. package/dist/schema/forms.d.ts +111 -0
  397. package/dist/schema/forms.js +47 -0
  398. package/dist/schema/forms.js.map +1 -0
  399. package/dist/schema/index.d.ts +11 -0
  400. package/dist/schema/index.js +16 -0
  401. package/dist/schema/index.js.map +1 -0
  402. package/dist/schema/pages.d.ts +674 -0
  403. package/dist/schema/pages.js +37 -0
  404. package/dist/schema/pages.js.map +1 -0
  405. package/dist/schema/seo.d.ts +29 -0
  406. package/dist/schema/seo.js +17 -0
  407. package/dist/schema/seo.js.map +1 -0
  408. package/dist/schema/settings.d.ts +1126 -0
  409. package/dist/schema/settings.js +128 -0
  410. package/dist/schema/settings.js.map +1 -0
  411. package/dist/schema/siteConfig.d.ts +722 -0
  412. package/dist/schema/siteConfig.js +39 -0
  413. package/dist/schema/siteConfig.js.map +1 -0
  414. package/dist/server/env.d.ts +10 -0
  415. package/dist/server/env.js +36 -0
  416. package/dist/server/env.js.map +1 -0
  417. package/dist/server/index.d.ts +10 -0
  418. package/dist/server/index.js +51 -0
  419. package/dist/server/index.js.map +1 -0
  420. package/dist/server/pages.d.ts +15 -0
  421. package/dist/server/pages.js +99 -0
  422. package/dist/server/pages.js.map +1 -0
  423. package/dist/server/sanitize.d.ts +2 -0
  424. package/dist/server/sanitize.js +55 -0
  425. package/dist/server/sanitize.js.map +1 -0
  426. package/dist/server/seo.d.ts +116 -0
  427. package/dist/server/seo.js +179 -0
  428. package/dist/server/seo.js.map +1 -0
  429. package/dist/settings/useSiteSettings.d.ts +25 -0
  430. package/dist/settings/useSiteSettings.js +68 -0
  431. package/dist/settings/useSiteSettings.js.map +1 -0
  432. package/dist/styles.css +2495 -0
  433. package/dist/theme/presets.d.ts +12 -0
  434. package/dist/theme/presets.js +147 -0
  435. package/dist/theme/presets.js.map +1 -0
  436. package/package.json +112 -0
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { useSiteConfig } from "../config";
5
+ function DemoLock() {
6
+ const { mode, contactEmail, name } = useSiteConfig();
7
+ const [open, setOpen] = useState(true);
8
+ if (mode !== "demo") return null;
9
+ const mailto = contactEmail ? `mailto:${contactEmail}?subject=${encodeURIComponent(`Demo ${name} live zetten`)}` : "https://www.xiwebdesign.nl/#contact";
10
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
11
+ /* @__PURE__ */ jsx("div", { className: "xicms-demo-ribbon", children: "DEMO" }),
12
+ open && /* @__PURE__ */ jsxs("div", { className: "xicms-demo-banner", role: "status", children: [
13
+ /* @__PURE__ */ jsxs("span", { children: [
14
+ "Dit is een ",
15
+ /* @__PURE__ */ jsx("strong", { children: "demo" }),
16
+ " gemaakt door Xi Webdesign. Wil je deze site echt live?"
17
+ ] }),
18
+ /* @__PURE__ */ jsx("a", { href: mailto, className: "xicms-btn", children: "Zet live" }),
19
+ /* @__PURE__ */ jsx(
20
+ "button",
21
+ {
22
+ type: "button",
23
+ "aria-label": "Sluiten",
24
+ className: "xicms-btn xicms-btn--ghost",
25
+ onClick: () => setOpen(false),
26
+ children: "\u2715"
27
+ }
28
+ )
29
+ ] })
30
+ ] });
31
+ }
32
+ export {
33
+ DemoLock
34
+ };
35
+ //# sourceMappingURL=DemoLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lock/DemoLock.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { useSiteConfig } from \"../config\";\n\n/**\n * Demo-markering die wordt getoond zolang `mode: \"demo\"`. Niet-blokkerend (de demo blijft\n * bekijkbaar), maar duidelijk gemarkeerd met een CTA om de site live te laten zetten.\n */\nexport function DemoLock() {\n const { mode, contactEmail, name } = useSiteConfig();\n const [open, setOpen] = useState(true);\n\n if (mode !== \"demo\") return null;\n\n const mailto = contactEmail\n ? `mailto:${contactEmail}?subject=${encodeURIComponent(`Demo ${name} live zetten`)}`\n : \"https://www.xiwebdesign.nl/#contact\";\n\n return (\n <>\n <div className=\"xicms-demo-ribbon\">DEMO</div>\n {open && (\n <div className=\"xicms-demo-banner\" role=\"status\">\n <span>\n Dit is een <strong>demo</strong> gemaakt door Xi Webdesign. Wil je deze site echt\n live?\n </span>\n <a href={mailto} className=\"xicms-btn\">Zet live</a>\n <button\n type=\"button\"\n aria-label=\"Sluiten\"\n className=\"xicms-btn xicms-btn--ghost\"\n onClick={() => setOpen(false)}\n >\n ✕\n </button>\n </div>\n )}\n </>\n );\n}\n"],"mappings":";AAoBI,mBACE,KAGI,YAJN;AAlBJ,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAMvB,SAAS,WAAW;AACzB,QAAM,EAAE,MAAM,cAAc,KAAK,IAAI,cAAc;AACnD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,IAAI;AAErC,MAAI,SAAS,OAAQ,QAAO;AAE5B,QAAM,SAAS,eACX,UAAU,YAAY,YAAY,mBAAmB,QAAQ,IAAI,cAAc,CAAC,KAChF;AAEJ,SACE,iCACE;AAAA,wBAAC,SAAI,WAAU,qBAAoB,kBAAI;AAAA,IACtC,QACC,qBAAC,SAAI,WAAU,qBAAoB,MAAK,UACtC;AAAA,2BAAC,UAAK;AAAA;AAAA,QACO,oBAAC,YAAO,kBAAI;AAAA,QAAS;AAAA,SAElC;AAAA,MACA,oBAAC,OAAE,MAAM,QAAQ,WAAU,aAAY,sBAAQ;AAAA,MAC/C;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAW;AAAA,UACX,WAAU;AAAA,UACV,SAAS,MAAM,QAAQ,KAAK;AAAA,UAC7B;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
@@ -0,0 +1,41 @@
1
+ import { type CSSProperties, type ElementType, type ReactNode } from "react";
2
+ /**
3
+ * Optionele framework-beeldcomponent (bv. Next `Image`) voor automatische optimalisatie: responsive
4
+ * `srcset`, moderne formaten (AVIF/WebP), correcte `width/height` (geen layout-shift), lazy-loading.
5
+ * Core importeert `next/image` niet zelf (optionele peer) — de site injecteert 'm via de
6
+ * `imageComponent`-prop op `XiCMSProvider`, net als `linkComponent`. Zonder injectie valt alles terug
7
+ * op een gewone `<img>` (huidig gedrag, werkt overal).
8
+ */
9
+ export type ImageComponentType = ElementType;
10
+ export declare function ImageProvider({ component, children }: {
11
+ component?: ImageComponentType;
12
+ children: ReactNode;
13
+ }): import("react").JSX.Element;
14
+ export declare function useImageComponent(): ImageComponentType | null;
15
+ export declare function InlineImageEditProvider({ onReplace, children, }: {
16
+ onReplace: ((field: string) => void) | null;
17
+ children: ReactNode;
18
+ }): import("react").JSX.Element;
19
+ export interface ImgProps {
20
+ src: string;
21
+ alt: string;
22
+ /** Intrinsieke breedte/hoogte (verhouding) → nodig voor next/image én tegen CLS. */
23
+ width: number;
24
+ height: number;
25
+ /** Hint voor responsive selectie, bv. "(max-width: 720px) 100vw, 33vw". */
26
+ sizes?: string;
27
+ /** Above-the-fold (hero): eager + hoge prioriteit voor LCP. */
28
+ priority?: boolean;
29
+ className?: string;
30
+ style?: CSSProperties;
31
+ /** Blokveld (pad) met de URL — schakelt inline vervangen in de visuele editor in (bv. "imageUrl"). */
32
+ editField?: string;
33
+ /** Beeld vult absoluut z'n parent (bv. hero-achtergrond): geen wrapper-box, knop absoluut t.o.v. het blok. */
34
+ editFill?: boolean;
35
+ }
36
+ /**
37
+ * Eén beeld-wrapper voor alle blokken. Gebruikt de geïnjecteerde `imageComponent` (next/image) als
38
+ * die er is, anders een gewone `<img>`. De display-grootte regel je met CSS (`style`/`className`,
39
+ * bv. `width:100%;height:100%;object-fit:cover`); `width`/`height` zijn de verhouding.
40
+ */
41
+ export declare function Img({ src, alt, width, height, sizes, priority, className, style, editField, editFill }: ImgProps): import("react").JSX.Element;
@@ -0,0 +1,74 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { createContext, useContext } from "react";
4
+ const ImageContext = createContext(null);
5
+ function ImageProvider({ component, children }) {
6
+ return /* @__PURE__ */ jsx(ImageContext.Provider, { value: component ?? null, children });
7
+ }
8
+ function useImageComponent() {
9
+ return useContext(ImageContext);
10
+ }
11
+ const InlineImageEditContext = createContext(null);
12
+ function InlineImageEditProvider({
13
+ onReplace,
14
+ children
15
+ }) {
16
+ return /* @__PURE__ */ jsx(InlineImageEditContext.Provider, { value: onReplace, children });
17
+ }
18
+ function Img({ src, alt, width, height, sizes, priority, className, style, editField, editFill }) {
19
+ const ImageComponent = useImageComponent();
20
+ const onReplace = useContext(InlineImageEditContext);
21
+ const imageEl = ImageComponent ? /* @__PURE__ */ jsx(
22
+ ImageComponent,
23
+ {
24
+ src,
25
+ alt,
26
+ width,
27
+ height,
28
+ sizes,
29
+ priority: priority || void 0,
30
+ className,
31
+ style
32
+ }
33
+ ) : (
34
+ // eslint-disable-next-line @next/next/no-img-element
35
+ /* @__PURE__ */ jsx(
36
+ "img",
37
+ {
38
+ src,
39
+ alt,
40
+ width,
41
+ height,
42
+ sizes,
43
+ loading: priority ? "eager" : "lazy",
44
+ fetchPriority: priority ? "high" : void 0,
45
+ className,
46
+ style
47
+ }
48
+ )
49
+ );
50
+ if (onReplace && editField) {
51
+ const replace = (e) => {
52
+ e.preventDefault();
53
+ e.stopPropagation();
54
+ onReplace(editField);
55
+ };
56
+ const btn = /* @__PURE__ */ jsx("button", { type: "button", className: `xicms-ve-img__btn${editFill ? " xicms-ve-img__btn--fill" : ""}`, title: "Klik om de foto te wijzigen", onClick: replace, children: "\u{1F4F7} Foto wijzigen" });
57
+ if (editFill) return /* @__PURE__ */ jsxs(Fragment, { children: [
58
+ imageEl,
59
+ btn
60
+ ] });
61
+ return /* @__PURE__ */ jsxs("span", { className: "xicms-ve-img", style: { position: "relative", display: "block" }, title: "Klik om de foto te wijzigen", onClick: replace, children: [
62
+ imageEl,
63
+ btn
64
+ ] });
65
+ }
66
+ return imageEl;
67
+ }
68
+ export {
69
+ ImageProvider,
70
+ Img,
71
+ InlineImageEditProvider,
72
+ useImageComponent
73
+ };
74
+ //# sourceMappingURL=ImageContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/media/ImageContext.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, type CSSProperties, type ElementType, type ReactNode } from \"react\";\n\n/**\n * Optionele framework-beeldcomponent (bv. Next `Image`) voor automatische optimalisatie: responsive\n * `srcset`, moderne formaten (AVIF/WebP), correcte `width/height` (geen layout-shift), lazy-loading.\n * Core importeert `next/image` niet zelf (optionele peer) — de site injecteert 'm via de\n * `imageComponent`-prop op `XiCMSProvider`, net als `linkComponent`. Zonder injectie valt alles terug\n * op een gewone `<img>` (huidig gedrag, werkt overal).\n */\nexport type ImageComponentType = ElementType;\n\nconst ImageContext = createContext<ImageComponentType | null>(null);\n\nexport function ImageProvider({ component, children }: { component?: ImageComponentType; children: ReactNode }) {\n return <ImageContext.Provider value={component ?? null}>{children}</ImageContext.Provider>;\n}\n\nexport function useImageComponent(): ImageComponentType | null {\n return useContext(ImageContext);\n}\n\n/**\n * Inline beeld-bewerken: de visuele editor levert via deze context een `onReplace(field)`-callback\n * voor het GESELECTEERDE blok. Is die actief én geeft een `<Img>` een `editField` mee, dan toont het\n * beeld een vervang-icoontje. Buiten de editor (context = null) rendert `<Img>` exact als voorheen.\n */\nconst InlineImageEditContext = createContext<((field: string) => void) | null>(null);\n\nexport function InlineImageEditProvider({\n onReplace,\n children,\n}: {\n onReplace: ((field: string) => void) | null;\n children: ReactNode;\n}) {\n return <InlineImageEditContext.Provider value={onReplace}>{children}</InlineImageEditContext.Provider>;\n}\n\nexport interface ImgProps {\n src: string;\n alt: string;\n /** Intrinsieke breedte/hoogte (verhouding) → nodig voor next/image én tegen CLS. */\n width: number;\n height: number;\n /** Hint voor responsive selectie, bv. \"(max-width: 720px) 100vw, 33vw\". */\n sizes?: string;\n /** Above-the-fold (hero): eager + hoge prioriteit voor LCP. */\n priority?: boolean;\n className?: string;\n style?: CSSProperties;\n /** Blokveld (pad) met de URL — schakelt inline vervangen in de visuele editor in (bv. \"imageUrl\"). */\n editField?: string;\n /** Beeld vult absoluut z'n parent (bv. hero-achtergrond): geen wrapper-box, knop absoluut t.o.v. het blok. */\n editFill?: boolean;\n}\n\n/**\n * Eén beeld-wrapper voor alle blokken. Gebruikt de geïnjecteerde `imageComponent` (next/image) als\n * die er is, anders een gewone `<img>`. De display-grootte regel je met CSS (`style`/`className`,\n * bv. `width:100%;height:100%;object-fit:cover`); `width`/`height` zijn de verhouding.\n */\nexport function Img({ src, alt, width, height, sizes, priority, className, style, editField, editFill }: ImgProps) {\n const ImageComponent = useImageComponent();\n const onReplace = useContext(InlineImageEditContext);\n const imageEl = ImageComponent ? (\n <ImageComponent\n src={src}\n alt={alt}\n width={width}\n height={height}\n sizes={sizes}\n priority={priority || undefined}\n className={className}\n style={style}\n />\n ) : (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n sizes={sizes}\n loading={priority ? \"eager\" : \"lazy\"}\n fetchPriority={priority ? \"high\" : undefined}\n className={className}\n style={style}\n />\n );\n\n // In de visuele editor (geselecteerd blok): toon een vervang-icoontje over het beeld. We wijzigen\n // alleen de URL → de grootte/stijl blijft (die komt uit het blok), dus blok én beeld behouden hun maat.\n if (onReplace && editField) {\n const replace = (e: { preventDefault: () => void; stopPropagation: () => void }) => {\n e.preventDefault();\n e.stopPropagation();\n onReplace(editField);\n };\n const btn = (\n <button type=\"button\" className={`xicms-ve-img__btn${editFill ? \" xicms-ve-img__btn--fill\" : \"\"}`} title=\"Klik om de foto te wijzigen\" onClick={replace}>\n 📷 Foto wijzigen\n </button>\n );\n // Vullend (hero-achtergrond): geen wrapper-box (zou het absoluut gepositioneerde beeld breken);\n // de knop is absoluut t.o.v. het blok-element zelf (dat is `position:relative`).\n if (editFill) return (<>{imageEl}{btn}</>);\n // In-flow beeld: hele beeld klikbaar (duidelijke affordance) + knop rechtsboven.\n return (\n <span className=\"xicms-ve-img\" style={{ position: \"relative\", display: \"block\" }} title=\"Klik om de foto te wijzigen\" onClick={replace}>\n {imageEl}\n {btn}\n </span>\n );\n }\n return imageEl;\n}\n"],"mappings":";AAgBS,SA2FiB,UA3FjB,KA2FiB,YA3FjB;AAdT,SAAS,eAAe,kBAAwE;AAWhG,MAAM,eAAe,cAAyC,IAAI;AAE3D,SAAS,cAAc,EAAE,WAAW,SAAS,GAA4D;AAC9G,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAO,aAAa,MAAO,UAAS;AACpE;AAEO,SAAS,oBAA+C;AAC7D,SAAO,WAAW,YAAY;AAChC;AAOA,MAAM,yBAAyB,cAAgD,IAAI;AAE5E,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AACF,GAGG;AACD,SAAO,oBAAC,uBAAuB,UAAvB,EAAgC,OAAO,WAAY,UAAS;AACtE;AAyBO,SAAS,IAAI,EAAE,KAAK,KAAK,OAAO,QAAQ,OAAO,UAAU,WAAW,OAAO,WAAW,SAAS,GAAa;AACjH,QAAM,iBAAiB,kBAAkB;AACzC,QAAM,YAAY,WAAW,sBAAsB;AACnD,QAAM,UAAU,iBACd;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA;AAAA,EACF;AAAA;AAAA,IAGA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,WAAW,UAAU;AAAA,QAC9B,eAAe,WAAW,SAAS;AAAA,QACnC;AAAA,QACA;AAAA;AAAA,IACF;AAAA;AAKF,MAAI,aAAa,WAAW;AAC1B,UAAM,UAAU,CAAC,MAAmE;AAClF,QAAE,eAAe;AACjB,QAAE,gBAAgB;AAClB,gBAAU,SAAS;AAAA,IACrB;AACA,UAAM,MACJ,oBAAC,YAAO,MAAK,UAAS,WAAW,oBAAoB,WAAW,6BAA6B,EAAE,IAAI,OAAM,+BAA8B,SAAS,SAAS,qCAEzJ;AAIF,QAAI,SAAU,QAAQ,iCAAG;AAAA;AAAA,MAAS;AAAA,OAAI;AAEtC,WACE,qBAAC,UAAK,WAAU,gBAAe,OAAO,EAAE,UAAU,YAAY,SAAS,QAAQ,GAAG,OAAM,+BAA8B,SAAS,SAC5H;AAAA;AAAA,MACA;AAAA,OACH;AAAA,EAEJ;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,46 @@
1
+ import type { ModuleDefinition } from "./types";
2
+ /**
3
+ * Basis-bouwstenen — altijd aanwezig (niet uit te zetten). Bevat ook de indelingsblokken
4
+ * (kolommen, "Met zijbalk") waarmee je widgets naast je hoofdinhoud plaatst, plus de
5
+ * compacte CTA-widget.
6
+ */
7
+ export declare const contentModule: ModuleDefinition;
8
+ export declare const galleryModule: ModuleDefinition;
9
+ export declare const faqModule: ModuleDefinition;
10
+ export declare const openingHoursModule: ModuleDefinition;
11
+ export declare const pricingModule: ModuleDefinition;
12
+ export declare const pagesModule: ModuleDefinition;
13
+ export declare const newsModule: ModuleDefinition;
14
+ export declare const mediaModule: ModuleDefinition;
15
+ export declare const formsModule: ModuleDefinition;
16
+ export declare const statsModule: ModuleDefinition;
17
+ export declare const settingsModule: ModuleDefinition;
18
+ export declare const testimonialsModule: ModuleDefinition;
19
+ export declare const teamModule: ModuleDefinition;
20
+ export declare const agendaModule: ModuleDefinition;
21
+ export declare const searchModule: ModuleDefinition;
22
+ export declare const featureModule: ModuleDefinition;
23
+ export declare const countersModule: ModuleDefinition;
24
+ export declare const logosModule: ModuleDefinition;
25
+ export declare const timelineModule: ModuleDefinition;
26
+ export declare const videoModule: ModuleDefinition;
27
+ export declare const bannerModule: ModuleDefinition;
28
+ export declare const contactModule: ModuleDefinition;
29
+ export declare const newsletterModule: ModuleDefinition;
30
+ export declare const bookingModule: ModuleDefinition;
31
+ export declare const accordionModule: ModuleDefinition;
32
+ export declare const embedModule: ModuleDefinition;
33
+ export declare const cardsModule: ModuleDefinition;
34
+ export declare const tabsModule: ModuleDefinition;
35
+ export declare const downloadsModule: ModuleDefinition;
36
+ export declare const pdfModule: ModuleDefinition;
37
+ export declare const countdownModule: ModuleDefinition;
38
+ export declare const sliderModule: ModuleDefinition;
39
+ export declare const whatsappModule: ModuleDefinition;
40
+ export declare const beforeAfterModule: ModuleDefinition;
41
+ export declare const portfolioModule: ModuleDefinition;
42
+ export declare const jobsModule: ModuleDefinition;
43
+ export declare const breadcrumbsModule: ModuleDefinition;
44
+ export declare const consentModule: ModuleDefinition;
45
+ /** Alle ingebouwde modules (volgorde bepaalt block- en tab-volgorde). */
46
+ export declare const builtinModules: ModuleDefinition[];
@@ -0,0 +1,462 @@
1
+ import { z } from "zod";
2
+ import { defineModule } from "./defineModule";
3
+ import { heroBlock } from "../blocks/builtins/Hero";
4
+ import { richTextBlock } from "../blocks/builtins/RichTextBlock";
5
+ import { imageBlock } from "../blocks/builtins/ImageBlock";
6
+ import { ctaBlock } from "../blocks/builtins/Cta";
7
+ import { columnsBlock } from "../blocks/builtins/Columns";
8
+ import { spacerBlock } from "../blocks/builtins/Spacer";
9
+ import { galleryBlock } from "../blocks/builtins/Gallery";
10
+ import { faqBlock } from "../blocks/builtins/Faq";
11
+ import { openingHoursBlock } from "../blocks/builtins/OpeningHours";
12
+ import { pricingBlock } from "../blocks/builtins/Pricing";
13
+ import { newsListBlock } from "../blocks/builtins/NewsListBlock";
14
+ import { formBlock } from "../blocks/builtins/FormBlock";
15
+ import { testimonialsBlock } from "../blocks/builtins/Testimonials";
16
+ import { teamBlock } from "../blocks/builtins/Team";
17
+ import { agendaBlock } from "../blocks/builtins/Agenda";
18
+ import { searchBlock } from "../blocks/builtins/Search";
19
+ import { featureBlock, countersBlock, logosBlock, timelineBlock } from "../blocks/builtins/Sections";
20
+ import { videoBlock } from "../blocks/builtins/Video";
21
+ import { bannerBlock } from "../blocks/builtins/Banner";
22
+ import { contactBlock, socialBlock } from "../blocks/builtins/Contact";
23
+ import { mapBlock } from "../blocks/builtins/MapBlock";
24
+ import { newsletterBlock } from "../blocks/builtins/Newsletter";
25
+ import { bookingBlock } from "../blocks/builtins/Booking";
26
+ import { buttonsBlock, quoteBlock, dividerBlock } from "../blocks/builtins/Elements";
27
+ import { accordionBlock } from "../blocks/builtins/Accordion";
28
+ import { embedBlock } from "../blocks/builtins/Embed";
29
+ import { withSidebarBlock, tabsBlock } from "../blocks/builtins/Layout";
30
+ import { cardsBlock } from "../blocks/builtins/Cards";
31
+ import { downloadsBlock } from "../blocks/builtins/Downloads";
32
+ import { pdfBlock } from "../blocks/builtins/PdfBlock";
33
+ import { countdownBlock } from "../blocks/builtins/Countdown";
34
+ import { sliderBlock } from "../blocks/builtins/Slider";
35
+ import { whatsappChatBlock } from "../blocks/builtins/WhatsappChat";
36
+ import { beforeAfterBlock } from "../blocks/builtins/BeforeAfter";
37
+ import { portfolioBlock } from "../blocks/builtins/Portfolio";
38
+ import { jobsBlock } from "../blocks/builtins/Jobs";
39
+ import { breadcrumbsBlock } from "../blocks/builtins/Breadcrumbs";
40
+ import {
41
+ newsWidget,
42
+ agendaWidget,
43
+ openingHoursWidget,
44
+ contactWidget,
45
+ socialWidget as socialWidgetBlock,
46
+ newsletterWidget,
47
+ ctaWidget,
48
+ galleryWidget,
49
+ testimonialsWidget,
50
+ cardsWidget,
51
+ downloadsWidget,
52
+ countdownWidget
53
+ } from "../blocks/builtins/Widgets";
54
+ const CORE_VERSION = "4.17.1";
55
+ const contentModule = defineModule({
56
+ id: "content",
57
+ version: CORE_VERSION,
58
+ label: "Basisinhoud",
59
+ description: "Kern-bouwstenen: hero, tekst, afbeelding, CTA, kolommen, zijbalk, witruimte.",
60
+ core: true,
61
+ blocks: [heroBlock, richTextBlock, imageBlock, ctaBlock, columnsBlock, withSidebarBlock, spacerBlock, buttonsBlock, quoteBlock, dividerBlock, ctaWidget]
62
+ });
63
+ const galleryModule = defineModule({
64
+ id: "gallery",
65
+ version: CORE_VERSION,
66
+ label: "Fotogalerij",
67
+ description: "Galerij-block met grid en (optioneel) lightbox + compacte fotostrip-widget.",
68
+ blocks: [galleryBlock, galleryWidget],
69
+ // Per-site instelbaar door de agent/klant (modules.gallery.config) zonder core te forken.
70
+ // `.describe()` = het label dat de klant in /beheer ziet.
71
+ settingsSchema: z.object({
72
+ columns: z.number().int().min(1).max(6).default(3).describe("Kolommen"),
73
+ lightbox: z.boolean().default(true).describe("Lightbox bij klikken")
74
+ }),
75
+ defaultSettings: { columns: 3, lightbox: true }
76
+ });
77
+ const faqModule = defineModule({
78
+ id: "faq",
79
+ version: CORE_VERSION,
80
+ label: "FAQ",
81
+ description: "Veelgestelde vragen (accordeon) met optionele zoek + FAQ-JSON-LD.",
82
+ blocks: [faqBlock]
83
+ });
84
+ const openingHoursModule = defineModule({
85
+ id: "openingHours",
86
+ version: CORE_VERSION,
87
+ label: "Openingstijden",
88
+ description: "Openingstijden-tabel + compacte widget met 'vandaag' gemarkeerd.",
89
+ blocks: [openingHoursBlock, openingHoursWidget]
90
+ });
91
+ const pricingModule = defineModule({
92
+ id: "pricing",
93
+ version: CORE_VERSION,
94
+ label: "Prijzen",
95
+ blocks: [pricingBlock]
96
+ });
97
+ const pagesModule = defineModule({
98
+ id: "pages",
99
+ version: CORE_VERSION,
100
+ label: "Pagina's",
101
+ featureKey: "pages",
102
+ description: "Paginabouwer (draft \u2192 publish + versiegeschiedenis)."
103
+ });
104
+ const newsModule = defineModule({
105
+ id: "news",
106
+ version: CORE_VERSION,
107
+ label: "Nieuws",
108
+ featureKey: "news",
109
+ description: "Nieuwsartikelen + nieuwslijst-block + 'laatste nieuws'-widget voor de zijbalk.",
110
+ blocks: [newsListBlock, newsWidget]
111
+ });
112
+ const mediaModule = defineModule({
113
+ id: "media",
114
+ version: CORE_VERSION,
115
+ label: "Media",
116
+ featureKey: "media",
117
+ description: "Mediabeheer met compressie + webp/srcset-varianten.",
118
+ requires: [{ kind: "function", name: "onMediaUpload" }, { kind: "storage", prefix: "sites/" }]
119
+ });
120
+ const formsModule = defineModule({
121
+ id: "forms",
122
+ version: CORE_VERSION,
123
+ label: "Formulieren",
124
+ featureKey: "forms",
125
+ description: "Formulierbouwer + inzendingen + e-mailnotificatie.",
126
+ blocks: [formBlock],
127
+ requires: [
128
+ { kind: "function", name: "submitForm" },
129
+ { kind: "firestore", collection: "forms" }
130
+ ]
131
+ });
132
+ const statsModule = defineModule({
133
+ id: "stats",
134
+ version: CORE_VERSION,
135
+ label: "Statistieken",
136
+ featureKey: "stats",
137
+ description: "Privacy-vriendelijke bezoekersstatistieken (geen cookies).",
138
+ requires: [{ kind: "function", name: "trackView" }]
139
+ });
140
+ const settingsModule = defineModule({
141
+ id: "settings",
142
+ version: CORE_VERSION,
143
+ label: "Instellingen",
144
+ core: true,
145
+ description: "Site-instellingen (nav, thema, SEO, formulier-afzender) \u2014 alleen siteadmin."
146
+ });
147
+ const testimonialsModule = defineModule({
148
+ id: "testimonials",
149
+ version: CORE_VERSION,
150
+ label: "Reviews",
151
+ description: "Klantquotes/reviews met sterren, optionele Review-JSON-LD + compacte review-widget.",
152
+ defaultEnabled: false,
153
+ blocks: [testimonialsBlock, testimonialsWidget]
154
+ });
155
+ const teamModule = defineModule({
156
+ id: "team",
157
+ version: CORE_VERSION,
158
+ label: "Team",
159
+ description: "Team-/medewerkersoverzicht met foto, functie en bio.",
160
+ defaultEnabled: false,
161
+ blocks: [teamBlock]
162
+ });
163
+ const agendaModule = defineModule({
164
+ id: "agenda",
165
+ version: CORE_VERSION,
166
+ label: "Agenda",
167
+ description: "Evenementen/agenda (chronologisch) met Event-JSON-LD + 'komende agenda'-widget.",
168
+ defaultEnabled: false,
169
+ blocks: [agendaBlock, agendaWidget]
170
+ });
171
+ const searchModule = defineModule({
172
+ id: "search",
173
+ version: CORE_VERSION,
174
+ label: "Zoeken",
175
+ description: "Site-zoekblok dat gepubliceerde pagina's (en nieuws) client-side doorzoekt.",
176
+ defaultEnabled: false,
177
+ blocks: [searchBlock]
178
+ });
179
+ const featureModule = defineModule({
180
+ id: "feature",
181
+ version: CORE_VERSION,
182
+ label: "Beeld + tekst",
183
+ description: "Feature-sectie met afbeelding links/rechts en tekst.",
184
+ defaultEnabled: false,
185
+ blocks: [featureBlock]
186
+ });
187
+ const countersModule = defineModule({
188
+ id: "counters",
189
+ version: CORE_VERSION,
190
+ label: "Tellers",
191
+ description: "Statistiek-tellers (bv. \u201C100+ klanten\u201D).",
192
+ defaultEnabled: false,
193
+ blocks: [countersBlock]
194
+ });
195
+ const logosModule = defineModule({
196
+ id: "logos",
197
+ version: CORE_VERSION,
198
+ label: "Logo's",
199
+ description: "Partner-/klantlogo-strip.",
200
+ defaultEnabled: false,
201
+ blocks: [logosBlock]
202
+ });
203
+ const timelineModule = defineModule({
204
+ id: "timeline",
205
+ version: CORE_VERSION,
206
+ label: "Tijdlijn",
207
+ description: "Stappen/proces als tijdlijn.",
208
+ defaultEnabled: false,
209
+ blocks: [timelineBlock]
210
+ });
211
+ const videoModule = defineModule({
212
+ id: "video",
213
+ version: CORE_VERSION,
214
+ label: "Video",
215
+ description: "YouTube/Vimeo/MP4-embed (consent-gated).",
216
+ defaultEnabled: false,
217
+ blocks: [videoBlock]
218
+ });
219
+ const bannerModule = defineModule({
220
+ id: "banner",
221
+ version: CORE_VERSION,
222
+ label: "Aankondiging",
223
+ description: "Aankondigingsbalk, optioneel sluitbaar.",
224
+ defaultEnabled: false,
225
+ blocks: [bannerBlock]
226
+ });
227
+ const contactModule = defineModule({
228
+ id: "contact",
229
+ version: CORE_VERSION,
230
+ label: "Contact + kaart + social",
231
+ description: "Contactgegevens (JSON-LD), kaart (consent-gated), social-links + compacte widgets.",
232
+ defaultEnabled: false,
233
+ blocks: [contactBlock, mapBlock, socialBlock, contactWidget, socialWidgetBlock]
234
+ });
235
+ const newsletterModule = defineModule({
236
+ id: "newsletter",
237
+ version: CORE_VERSION,
238
+ label: "Nieuwsbrief",
239
+ description: "Aanmeldformulier via een externe provider-URL + compacte nieuwsbrief-widget.",
240
+ defaultEnabled: false,
241
+ blocks: [newsletterBlock, newsletterWidget]
242
+ });
243
+ const bookingModule = defineModule({
244
+ id: "booking",
245
+ version: CORE_VERSION,
246
+ label: "Afspraak/booking",
247
+ description: "Boekings-embed (bv. Calendly), consent-gated.",
248
+ defaultEnabled: false,
249
+ blocks: [bookingBlock]
250
+ });
251
+ const accordionModule = defineModule({
252
+ id: "accordion",
253
+ version: CORE_VERSION,
254
+ label: "Accordeon",
255
+ description: "Generieke in-/uitklapbare panelen.",
256
+ defaultEnabled: false,
257
+ blocks: [accordionBlock]
258
+ });
259
+ const embedModule = defineModule({
260
+ id: "embed",
261
+ version: CORE_VERSION,
262
+ label: "Embed",
263
+ description: "Generieke responsive iframe-embed (consent-gated).",
264
+ defaultEnabled: false,
265
+ blocks: [embedBlock]
266
+ });
267
+ const cardsModule = defineModule({
268
+ id: "cards",
269
+ version: CORE_VERSION,
270
+ label: "Diensten / kaarten",
271
+ description: "Diensten-/featurekaarten in een grid (icoon of beeld) + compacte 'uitgelicht'-widget.",
272
+ defaultEnabled: false,
273
+ blocks: [cardsBlock, cardsWidget]
274
+ });
275
+ const tabsModule = defineModule({
276
+ id: "tabs",
277
+ version: CORE_VERSION,
278
+ label: "Tabbladen",
279
+ description: "Tabblad-indeling: per tab een eigen set blokken (bv. beschrijving / specificaties).",
280
+ defaultEnabled: false,
281
+ blocks: [tabsBlock]
282
+ });
283
+ const downloadsModule = defineModule({
284
+ id: "downloads",
285
+ version: CORE_VERSION,
286
+ label: "Downloads",
287
+ description: "Lijst met downloadbare documenten (brochures, prijslijsten) + compacte widget.",
288
+ defaultEnabled: false,
289
+ blocks: [downloadsBlock, downloadsWidget]
290
+ });
291
+ const pdfModule = defineModule({
292
+ id: "pdf",
293
+ version: CORE_VERSION,
294
+ label: "PDF-lezer",
295
+ description: "Inline PDF-lezer voor menukaarten/documenten; meerdere PDF's met tabs, zelf te vervangen.",
296
+ defaultEnabled: false,
297
+ blocks: [pdfBlock]
298
+ });
299
+ const countdownModule = defineModule({
300
+ id: "countdown",
301
+ version: CORE_VERSION,
302
+ label: "Aftelteller",
303
+ description: "Tikkende countdown naar een datum (lancering, evenement, aanbieding) + widget.",
304
+ defaultEnabled: false,
305
+ blocks: [countdownBlock, countdownWidget]
306
+ });
307
+ const sliderModule = defineModule({
308
+ id: "slider",
309
+ version: CORE_VERSION,
310
+ label: "Carrousel / slider",
311
+ description: "Beeld-/contentcarrousel met dots, pijlen en optioneel autoplay (reduced-motion-veilig).",
312
+ defaultEnabled: false,
313
+ blocks: [sliderBlock]
314
+ });
315
+ const whatsappModule = defineModule({
316
+ id: "whatsapp",
317
+ version: CORE_VERSION,
318
+ label: "WhatsApp-knop",
319
+ description: "Zwevende WhatsApp-/chatknop \u2014 laagdrempelig contact (wa.me-link, geen consent nodig).",
320
+ defaultEnabled: false,
321
+ blocks: [whatsappChatBlock]
322
+ });
323
+ const beforeAfterModule = defineModule({
324
+ id: "beforeAfter",
325
+ version: CORE_VERSION,
326
+ label: "Voor / na",
327
+ description: "Voor/na-vergelijker met sleepbare scheiding \u2014 sterk voor hoveniers, schilders, salons.",
328
+ defaultEnabled: false,
329
+ blocks: [beforeAfterBlock]
330
+ });
331
+ const portfolioModule = defineModule({
332
+ id: "portfolio",
333
+ version: CORE_VERSION,
334
+ label: "Portfolio / projecten",
335
+ description: "Projecten/cases-grid met categorie-filter en lightbox.",
336
+ defaultEnabled: false,
337
+ blocks: [portfolioBlock]
338
+ });
339
+ const jobsModule = defineModule({
340
+ id: "jobs",
341
+ version: CORE_VERSION,
342
+ label: "Vacatures",
343
+ description: "Vacature-overzicht met JobPosting-JSON-LD (vindbaar via Google Jobs).",
344
+ defaultEnabled: false,
345
+ blocks: [jobsBlock]
346
+ });
347
+ const breadcrumbsModule = defineModule({
348
+ id: "breadcrumbs",
349
+ version: CORE_VERSION,
350
+ label: "Kruimelpad",
351
+ description: "Kruimelpad afgeleid van de URL, met BreadcrumbList-JSON-LD (SEO).",
352
+ defaultEnabled: false,
353
+ blocks: [breadcrumbsBlock]
354
+ });
355
+ const consentModule = defineModule({
356
+ id: "consent",
357
+ version: CORE_VERSION,
358
+ label: "Cookie-consent (AVG)",
359
+ description: "Toestemmingsbanner + consent-opslag; stelt niet-essenti\xEBle scripts uit.",
360
+ defaultEnabled: false,
361
+ settingsSchema: z.object({
362
+ message: z.string().default("We gebruiken cookies om de site te verbeteren. Kies hieronder je voorkeuren.").describe("Bannertekst"),
363
+ privacyUrl: z.string().optional().describe("Link naar privacyverklaring"),
364
+ version: z.string().optional().describe("Beleidsversie (wijzig \u2192 banner opnieuw tonen)"),
365
+ showReopen: z.boolean().default(true).describe("Zwevend cookie-knopje om keuze te wijzigen"),
366
+ categories: z.array(
367
+ z.object({
368
+ id: z.string(),
369
+ label: z.string(),
370
+ description: z.string().optional(),
371
+ required: z.boolean().default(false)
372
+ })
373
+ ).default([
374
+ { id: "necessary", label: "Noodzakelijk", description: "Nodig om de site te laten werken.", required: true },
375
+ { id: "analytics", label: "Statistieken", description: "Anonieme statistieken om de site te verbeteren.", required: false },
376
+ { id: "marketing", label: "Marketing", description: "Externe embeds zoals video's en kaarten.", required: false }
377
+ ])
378
+ }),
379
+ defaultSettings: {}
380
+ });
381
+ const builtinModules = [
382
+ contentModule,
383
+ pagesModule,
384
+ newsModule,
385
+ mediaModule,
386
+ galleryModule,
387
+ faqModule,
388
+ openingHoursModule,
389
+ pricingModule,
390
+ formsModule,
391
+ statsModule,
392
+ settingsModule,
393
+ testimonialsModule,
394
+ teamModule,
395
+ agendaModule,
396
+ searchModule,
397
+ featureModule,
398
+ countersModule,
399
+ logosModule,
400
+ timelineModule,
401
+ videoModule,
402
+ bannerModule,
403
+ contactModule,
404
+ newsletterModule,
405
+ bookingModule,
406
+ accordionModule,
407
+ embedModule,
408
+ cardsModule,
409
+ tabsModule,
410
+ downloadsModule,
411
+ pdfModule,
412
+ countdownModule,
413
+ sliderModule,
414
+ whatsappModule,
415
+ beforeAfterModule,
416
+ portfolioModule,
417
+ jobsModule,
418
+ breadcrumbsModule,
419
+ consentModule
420
+ ];
421
+ export {
422
+ accordionModule,
423
+ agendaModule,
424
+ bannerModule,
425
+ beforeAfterModule,
426
+ bookingModule,
427
+ breadcrumbsModule,
428
+ builtinModules,
429
+ cardsModule,
430
+ consentModule,
431
+ contactModule,
432
+ contentModule,
433
+ countdownModule,
434
+ countersModule,
435
+ downloadsModule,
436
+ embedModule,
437
+ faqModule,
438
+ featureModule,
439
+ formsModule,
440
+ galleryModule,
441
+ jobsModule,
442
+ logosModule,
443
+ mediaModule,
444
+ newsModule,
445
+ newsletterModule,
446
+ openingHoursModule,
447
+ pagesModule,
448
+ pdfModule,
449
+ portfolioModule,
450
+ pricingModule,
451
+ searchModule,
452
+ settingsModule,
453
+ sliderModule,
454
+ statsModule,
455
+ tabsModule,
456
+ teamModule,
457
+ testimonialsModule,
458
+ timelineModule,
459
+ videoModule,
460
+ whatsappModule
461
+ };
462
+ //# sourceMappingURL=builtins.js.map