@riverbankcms/sdk 0.77.1 → 0.78.2

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 (295) hide show
  1. package/README.md +114 -43
  2. package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-4DXLYX2V.mjs} +4962 -4885
  3. package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-CS5P4N3P.mjs} +4 -4
  4. package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +190 -154
  6. package/dist/_dts/api/src/accessAdmin.d.ts +5 -0
  7. package/dist/_dts/api/src/billing.d.ts +3 -26
  8. package/dist/_dts/api/src/bookingVerticals.d.ts +4 -0
  9. package/dist/_dts/api/src/content-editor.d.ts +1 -0
  10. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  11. package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
  12. package/dist/_dts/api/src/endpoints.d.ts +17 -0
  13. package/dist/_dts/api/src/index.d.ts +16 -4
  14. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
  15. package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
  16. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
  17. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
  18. package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
  19. package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
  20. package/dist/_dts/api/src/navigation.d.ts +12 -0
  21. package/dist/_dts/api/src/public/types.d.ts +1 -1
  22. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
  23. package/dist/_dts/api/src/request.d.ts +3 -11
  24. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -0
  25. package/dist/_dts/api/src/sdkContracts.d.ts +7 -1
  26. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -0
  27. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -0
  28. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +15 -19
  29. package/dist/_dts/api/src/staffAccess.d.ts +79 -0
  30. package/dist/_dts/api/src/types.d.ts +14 -27
  31. package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
  32. package/dist/_dts/block-form/src/fields/types.d.ts +6 -0
  33. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +3 -2
  34. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +6 -3
  35. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +8 -3
  36. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -1
  37. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +1 -0
  38. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -0
  39. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +7 -0
  40. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +1 -0
  41. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +3 -1
  42. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
  43. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterLabelSource.d.ts +15 -0
  44. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +50 -0
  45. package/dist/_dts/blocks/src/client/site-chrome.d.ts +4 -1
  46. package/dist/_dts/blocks/src/index.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +879 -288
  48. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +879 -288
  49. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +879 -288
  50. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +879 -288
  51. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +879 -288
  52. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  53. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +885 -289
  54. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +879 -288
  55. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -1
  56. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +68 -21
  57. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +879 -288
  58. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +879 -288
  59. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +879 -288
  60. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  61. package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
  62. package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
  63. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
  64. package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
  65. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +193 -29
  66. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
  67. package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
  68. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
  69. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
  70. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  71. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  72. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
  73. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
  74. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  75. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +1 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
  77. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
  79. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
  80. package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
  81. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
  83. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
  87. package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
  88. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
  89. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  90. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  92. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  93. package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
  94. package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
  95. package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
  96. package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
  97. package/dist/_dts/content-editor/src/index.d.ts +6 -1
  98. package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
  99. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
  100. package/dist/_dts/content-model/src/content-types/schema.d.ts +17 -3
  101. package/dist/_dts/content-model/src/index.d.ts +1 -0
  102. package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
  103. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +3 -1
  104. package/dist/_dts/content-model/src/templates/bindingValidation.d.ts +10 -4
  105. package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
  106. package/dist/_dts/content-model/src/templates/fieldPaths.d.ts +20 -0
  107. package/dist/_dts/content-model/src/templates/manifestAdapter.d.ts +5 -2
  108. package/dist/_dts/core/src/branded.d.ts +108 -85
  109. package/dist/_dts/core/src/csv-cells.d.ts +10 -0
  110. package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
  111. package/dist/_dts/core/src/csv-escape.d.ts +1 -0
  112. package/dist/_dts/core/src/csv-filename.d.ts +18 -0
  113. package/dist/_dts/core/src/csv-render.d.ts +4 -0
  114. package/dist/_dts/core/src/csv-types.d.ts +116 -0
  115. package/dist/_dts/core/src/currency-format.d.ts +4 -0
  116. package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
  117. package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
  118. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
  119. package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
  120. package/dist/_dts/core/src/duration.d.ts +14 -0
  121. package/dist/_dts/core/src/editor-state.d.ts +7 -7
  122. package/dist/_dts/core/src/email-format.d.ts +10 -0
  123. package/dist/_dts/core/src/field-errors.d.ts +1 -0
  124. package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
  125. package/dist/_dts/core/src/index.d.ts +20 -0
  126. package/dist/_dts/core/src/number-input.d.ts +22 -0
  127. package/dist/_dts/core/src/participants.d.ts +2 -2
  128. package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
  129. package/dist/_dts/core/src/slug.d.ts +39 -0
  130. package/dist/_dts/core/src/string.d.ts +19 -0
  131. package/dist/_dts/core/src/uuid.d.ts +6 -0
  132. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +11 -0
  133. package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
  134. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
  135. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
  136. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
  137. package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
  138. package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
  139. package/dist/_dts/media-core/src/filename.d.ts +1 -0
  140. package/dist/_dts/media-core/src/index.d.ts +10 -0
  141. package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
  142. package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
  143. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
  144. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
  145. package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
  146. package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -1
  147. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -1
  148. package/dist/_dts/media-editor/src/fieldUi.d.ts +5 -0
  149. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  150. package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
  151. package/dist/_dts/path-utils/src/index.d.ts +8 -0
  152. package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
  153. package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
  154. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
  155. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
  156. package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
  157. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
  158. package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +2 -0
  159. package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +3 -3
  160. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +7 -0
  161. package/dist/_dts/sdk/src/cli/commands/push.d.ts +2 -0
  162. package/dist/_dts/sdk/src/cli/content/reader.d.ts +13 -0
  163. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -1
  164. package/dist/_dts/sdk/src/cli/helpers.d.ts +2 -0
  165. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +6 -6
  166. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +5 -0
  167. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +4 -0
  168. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +5 -2
  169. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +10 -1
  170. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +1 -1
  171. package/dist/_dts/sdk/src/client/error.d.ts +3 -0
  172. package/dist/_dts/sdk/src/client/index.d.ts +2 -2
  173. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
  174. package/dist/_dts/sdk/src/client/types.d.ts +39 -21
  175. package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
  176. package/dist/_dts/sdk/src/config/field-definitions.d.ts +2 -0
  177. package/dist/_dts/sdk/src/index.d.ts +2 -2
  178. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
  179. package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
  180. package/dist/_dts/sdk/src/next/index.d.ts +2 -1
  181. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  182. package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
  183. package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
  184. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
  185. package/dist/_dts/sdk/src/version.d.ts +1 -1
  186. package/dist/_dts/site-commands/src/commands.d.ts +15 -12
  187. package/dist/_dts/site-commands/src/index.d.ts +1 -0
  188. package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
  189. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
  190. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
  191. package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
  192. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
  193. package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
  194. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  195. package/dist/_dts/theme-core/src/index.d.ts +3 -1
  196. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
  197. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
  198. package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
  199. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
  200. package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
  201. package/dist/_dts/theme-core/src/schema.d.ts +64 -18
  202. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
  203. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
  204. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
  205. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
  206. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
  207. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  208. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
  209. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
  210. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
  211. package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
  212. package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
  213. package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
  214. package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
  215. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
  216. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
  217. package/dist/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
  218. package/dist/{chunk-IENWFSLO.mjs → chunk-4QEGTLK6.mjs} +1 -1
  219. package/dist/{chunk-ZYEJLCTN.mjs → chunk-6HYXHRAI.mjs} +5 -5
  220. package/dist/{chunk-VX7B5VAC.mjs → chunk-CR5HKAGU.mjs} +32 -5
  221. package/dist/{chunk-KWJPDZH2.mjs → chunk-MCRQMPET.mjs} +3793 -1201
  222. package/dist/{chunk-6SMUFTXD.mjs → chunk-OKMBEAXY.mjs} +1 -1
  223. package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
  224. package/dist/{chunk-2SPENC5M.mjs → chunk-RGTOD4AJ.mjs} +242 -57
  225. package/dist/cli/index.mjs +2361 -668
  226. package/dist/cli/init-docs/content/cli-reference.md +3 -2
  227. package/dist/cli/init-docs/content/content-management.md +2 -2
  228. package/dist/cli/init-docs/content/workflow-preview-mode.md +68 -2
  229. package/dist/client/{accordion-RZMQSYLR.mjs → accordion-PLYNJIIM.mjs} +2 -2
  230. package/dist/client/analytics.mjs +1 -1
  231. package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-BXAP6AO7.mjs} +76 -72
  232. package/dist/client/bookings.mjs +3765 -310
  233. package/dist/client/{carousel-LDX47ZIK.mjs → carousel-TRBXDHGF.mjs} +3 -4
  234. package/dist/client/{cart-RGXDS5F4.mjs → cart-Z7H3HJRS.mjs} +8 -8
  235. package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WAFCUBIX.mjs} +8 -8
  236. package/dist/client/{chunk-II7O4XN3.mjs → chunk-75OUS5MT.mjs} +2 -2
  237. package/dist/client/{chunk-PMAIXMAB.mjs → chunk-AUJ5DBZJ.mjs} +42 -37
  238. package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-CE7IBGVW.mjs} +3 -1
  239. package/dist/client/{chunk-E2TDNXCL.mjs → chunk-CWGTG37I.mjs} +2 -1
  240. package/dist/client/{chunk-UFSWADAO.mjs → chunk-DNRGY432.mjs} +6 -67
  241. package/dist/client/{chunk-GMVTOKYG.mjs → chunk-FUXW6VW2.mjs} +512 -66
  242. package/dist/client/{chunk-R56FQ3RR.mjs → chunk-JGXPTEI2.mjs} +322 -106
  243. package/dist/client/{chunk-L3DNHIJX.mjs → chunk-JRDUHZCT.mjs} +53 -53
  244. package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
  245. package/dist/client/{chunk-JEZECJ3W.mjs → chunk-UVQEJJTN.mjs} +129 -3
  246. package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
  247. package/dist/client/chunk-ZFHRN6W2.mjs +66 -0
  248. package/dist/client/{chunk-JNC7CGHX.mjs → chunk-ZI3LLBPZ.mjs} +3 -3
  249. package/dist/client/client.mjs +7577 -4979
  250. package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-AHFQHWIJ.mjs} +19 -16
  251. package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-LDXTV5R7.mjs} +10 -10
  252. package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-A4JGTNJO.mjs} +10 -10
  253. package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-4YXTZ7EG.mjs} +10 -10
  254. package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-P72TPFFM.mjs} +10 -10
  255. package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-LSYJHGMT.mjs} +10 -10
  256. package/dist/client/{form-ETFZFATW.mjs → form-AOPYOKOW.mjs} +10 -7
  257. package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-5TFYDFVQ.mjs} +3 -3
  258. package/dist/client/hooks.mjs +1119 -327
  259. package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-QSZ3ZVAZ.mjs} +3 -3
  260. package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-KTRHZY52.mjs} +3 -3
  261. package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-N4E775RG.mjs} +8 -8
  262. package/dist/client/{productList-A5RO5WIS.mjs → productList-UGUQ2S45.mjs} +8 -8
  263. package/dist/client/rendering/client.mjs +7262 -2775
  264. package/dist/client/rendering/islands.mjs +19 -19
  265. package/dist/client/rendering.mjs +6964 -4587
  266. package/dist/client/{shop-L4MZH4I2.mjs → shop-VHSZEEQ2.mjs} +8 -8
  267. package/dist/preview-next/before-render.mjs +18 -1
  268. package/dist/preview-next/client/runtime.mjs +6 -6
  269. package/dist/preview-next/editor-chrome.css +10 -0
  270. package/dist/preview-next/middleware.mjs +18 -1
  271. package/dist/preview-next/tailwind-sources.css +1 -0
  272. package/dist/sdk-runtime-WHPJEF5G.mjs +8 -0
  273. package/dist/server/components.mjs +2736 -1316
  274. package/dist/server/config-template-validation.mjs +221 -15
  275. package/dist/server/config-validation.mjs +1346 -550
  276. package/dist/server/config.mjs +1346 -550
  277. package/dist/server/data.mjs +1118 -326
  278. package/dist/server/index.mjs +514 -251
  279. package/dist/server/next.mjs +4446 -2444
  280. package/dist/server/page-converter.mjs +631 -155
  281. package/dist/server/prebuild.mjs +1 -1
  282. package/dist/server/rendering/server.mjs +2743 -1323
  283. package/dist/server/rendering.mjs +2764 -1328
  284. package/dist/server/routing.mjs +1860 -590
  285. package/dist/server/server.mjs +1622 -575
  286. package/dist/server/theme-bridge.mjs +3151 -131
  287. package/dist/server/theme.mjs +10 -1
  288. package/dist/styles/index.css +488 -48
  289. package/package.json +2 -1
  290. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
  291. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
  292. package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
  293. package/dist/client/chunk-OJPZEZU2.mjs +0 -31
  294. package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
  295. package/dist/sdk-runtime-6UT2S7KZ.mjs +0 -8
@@ -6,6 +6,24 @@ var TEMPLATE_BINDING_TRANSFORMS = {
6
6
  };
7
7
 
8
8
  // ../content-model/src/templates/bindingTypeCompatibility.ts
9
+ var SCALAR_BLOCK_FIELD_TYPES = [
10
+ "text",
11
+ "number",
12
+ "slug",
13
+ "url",
14
+ "richText",
15
+ "media",
16
+ "file",
17
+ "boolean",
18
+ "select",
19
+ "reference",
20
+ "link",
21
+ "date",
22
+ "datetime"
23
+ ];
24
+ function isScalarBlockFieldType(type) {
25
+ return SCALAR_BLOCK_FIELD_TYPES.includes(type);
26
+ }
9
27
  var CONTENT_TO_BLOCK_COMPATIBILITY = {
10
28
  // Simple text fields
11
29
  text: ["text", "slug", "url"],
@@ -36,7 +54,7 @@ var CONTENT_TO_BLOCK_COMPATIBILITY = {
36
54
  // Group fields (nested structure - not directly bindable)
37
55
  group: [],
38
56
  // Repeater fields (list structure - not directly bindable)
39
- repeater: [],
57
+ repeater: ["repeater"],
40
58
  // Datetime fields can map to datetime/date inputs or text display fields.
41
59
  datetime: ["datetime", "date", "text"]
42
60
  };
@@ -80,6 +98,9 @@ var NESTED_PATH_COMPATIBILITY = {
80
98
  "file.filename": ["text"]
81
99
  };
82
100
  function isCompatibleBinding(sourceType, targetType) {
101
+ if (targetType === "repeater") {
102
+ return sourceType === "repeater";
103
+ }
83
104
  const compatibleTypes = CONTENT_TO_BLOCK_COMPATIBILITY[sourceType];
84
105
  if (compatibleTypes) {
85
106
  return compatibleTypes.includes(targetType);
@@ -87,11 +108,13 @@ function isCompatibleBinding(sourceType, targetType) {
87
108
  return false;
88
109
  }
89
110
  function isCompatibleMetaBinding(metaFieldName, targetType) {
111
+ if (targetType === "repeater") return false;
90
112
  if (!isMetaFieldPath(metaFieldName)) return false;
91
113
  const compatibleTypes = META_FIELD_COMPATIBILITY[metaFieldName];
92
114
  return compatibleTypes.includes(targetType);
93
115
  }
94
116
  function isCompatibleNestedPath(parentType, nestedSuffix, targetType) {
117
+ if (targetType === "repeater") return false;
95
118
  const pathKey = `${parentType}.${nestedSuffix}`;
96
119
  const compatibleTypes = NESTED_PATH_COMPATIBILITY[pathKey];
97
120
  if (compatibleTypes) {
@@ -223,10 +246,76 @@ function nestedFields(field) {
223
246
  const record = field;
224
247
  return record.fields ?? record.schema?.fields ?? [];
225
248
  }
226
- function getFieldTypeFromPath(schema, path) {
249
+ function getFieldDescriptorFromPath(schema, path) {
227
250
  const paths = getAvailableFieldPaths(schema);
228
251
  const match = paths.find((p) => p.path === path);
229
- return match?.type ?? null;
252
+ if (match) return { kind: "scalar", type: match.type };
253
+ const field = findContentFieldByPath(schema.fields ?? [], path.split("."));
254
+ if (!field || field.type !== "repeater") return null;
255
+ return {
256
+ kind: "repeater",
257
+ shape: buildRepeaterFieldShape(field)
258
+ };
259
+ }
260
+ function findContentFieldByPath(fields, segments) {
261
+ if (segments.length === 0) return null;
262
+ const [head, ...tail] = segments;
263
+ const field = fields.find((candidate) => candidate.id === head);
264
+ if (!field) return null;
265
+ if (tail.length === 0) return field;
266
+ if (field.type !== "group") return null;
267
+ return findContentFieldByPath(nestedFields(field), tail);
268
+ }
269
+ function buildRepeaterFieldShape(field) {
270
+ const record = field;
271
+ if (record.polymorphic || record.itemTypes) {
272
+ return { kind: "unsupported", reason: "polymorphic_unsupported" };
273
+ }
274
+ const fields = nestedFields(field);
275
+ if (fields.length === 0) {
276
+ return { kind: "unsupported", reason: "missing_item_schema" };
277
+ }
278
+ const itemFields = [];
279
+ for (const child of fields) {
280
+ if (child.type === "repeater") {
281
+ return { kind: "unsupported", reason: "nested_repeater_unsupported" };
282
+ }
283
+ if (!isRepeaterItemScalarType(child.type)) {
284
+ return { kind: "unsupported", reason: "unsupported_item_field" };
285
+ }
286
+ itemFields.push({
287
+ id: child.id,
288
+ type: child.type,
289
+ required: Boolean(child.required)
290
+ });
291
+ }
292
+ return { kind: "supported", itemFields };
293
+ }
294
+ function isRepeaterItemScalarType(type) {
295
+ switch (type) {
296
+ case "text":
297
+ case "textarea":
298
+ case "richText":
299
+ case "number":
300
+ case "date":
301
+ case "url":
302
+ case "media":
303
+ case "file":
304
+ case "boolean":
305
+ case "select":
306
+ case "reference":
307
+ case "link":
308
+ case "button":
309
+ case "datetime":
310
+ return true;
311
+ case "group":
312
+ case "repeater":
313
+ return false;
314
+ default: {
315
+ const _exhaustive = type;
316
+ return _exhaustive;
317
+ }
318
+ }
230
319
  }
231
320
 
232
321
  // ../content-model/src/templates/bindingValidation.ts
@@ -247,9 +336,6 @@ var TRANSFORM_IO = {
247
336
  function getTransformIO(name) {
248
337
  return name in TRANSFORM_IO ? TRANSFORM_IO[name] : void 0;
249
338
  }
250
- function resolveContentPathType(schema, path) {
251
- return getFieldTypeFromPath(schema, path);
252
- }
253
339
  function resolveMetaPathType(path) {
254
340
  return resolveMetaFieldType(path);
255
341
  }
@@ -276,8 +362,8 @@ function isSourceCompatibleWithTarget(sourceType, targetType) {
276
362
  return isCompatibleBinding(sourceType, targetType);
277
363
  }
278
364
  function resolveFieldSource(path, context) {
279
- const type = resolveContentPathType(context.schema, path);
280
- if (type === null) {
365
+ const descriptor = getFieldDescriptorFromPath(context.schema, path);
366
+ if (descriptor === null) {
281
367
  return {
282
368
  kind: "invalidPath",
283
369
  error: {
@@ -288,7 +374,10 @@ function resolveFieldSource(path, context) {
288
374
  }
289
375
  };
290
376
  }
291
- return { kind: "ok", type, path };
377
+ if (descriptor.kind === "repeater") {
378
+ return { kind: "ok", type: "repeater", path, shape: descriptor.shape };
379
+ }
380
+ return { kind: "ok", type: descriptor.type, path };
292
381
  }
293
382
  function resolveMetaSource(path, context) {
294
383
  const type = resolveMetaPathType(path);
@@ -318,6 +407,21 @@ function checkDirectCompatibility(resolved, context, isMetaSource) {
318
407
  via: "direct"
319
408
  };
320
409
  }
410
+ if (context.target.type === "repeater") {
411
+ const mismatch = checkRepeaterCompatibility(resolved, context);
412
+ return mismatch;
413
+ }
414
+ if (resolved.type === "repeater") {
415
+ return {
416
+ kind: "typeIncompatible",
417
+ blockIdentifier: context.blockIdentifier,
418
+ fieldKey: context.fieldKey,
419
+ sourceType: describeResolvedSourceType(resolved),
420
+ sourcePath: resolved.path,
421
+ targetType: context.target.type,
422
+ via: "direct"
423
+ };
424
+ }
321
425
  if (isSourceCompatibleWithTarget(resolved.type, context.target.type)) return null;
322
426
  return {
323
427
  kind: "typeIncompatible",
@@ -329,6 +433,51 @@ function checkDirectCompatibility(resolved, context, isMetaSource) {
329
433
  via: "direct"
330
434
  };
331
435
  }
436
+ function describeResolvedSourceType(resolved) {
437
+ if (resolved.type !== "repeater") return resolved.type;
438
+ return resolved.shape?.kind === "unsupported" ? `repeater(${resolved.shape.reason})` : "repeater";
439
+ }
440
+ function describeTargetType(target) {
441
+ return target.type;
442
+ }
443
+ function checkRepeaterCompatibility(resolved, context) {
444
+ if (context.target.type !== "repeater") return null;
445
+ const incompatible = (sourceType) => ({
446
+ kind: "typeIncompatible",
447
+ blockIdentifier: context.blockIdentifier,
448
+ fieldKey: context.fieldKey,
449
+ sourceType,
450
+ sourcePath: resolved.path,
451
+ targetType: describeTargetType(context.target),
452
+ via: "direct"
453
+ });
454
+ if (resolved.type !== "repeater" || !resolved.shape) {
455
+ return incompatible(describeResolvedSourceType(resolved));
456
+ }
457
+ const sourceShape = resolved.shape;
458
+ const targetShape = context.target.shape;
459
+ if (sourceShape.kind === "unsupported") {
460
+ return incompatible(`repeater(${sourceShape.reason})`);
461
+ }
462
+ if (targetShape.kind === "unsupported") {
463
+ return incompatible(`target-repeater(${targetShape.reason})`);
464
+ }
465
+ const sourceById = new Map(sourceShape.itemFields.map((field) => [field.id, field]));
466
+ for (const targetField of targetShape.itemFields) {
467
+ const sourceField = sourceById.get(targetField.id);
468
+ if (!sourceField) {
469
+ if (targetField.required) return incompatible("repeater(missing_required_target_field)");
470
+ continue;
471
+ }
472
+ if (targetField.required && !sourceField.required) {
473
+ return incompatible("repeater(requiredness_mismatch)");
474
+ }
475
+ if (!isScalarBlockFieldType(targetField.type) || !isSourceCompatibleWithTarget(sourceField.type, targetField.type)) {
476
+ return incompatible(`repeater(type_mismatch:${sourceField.id})`);
477
+ }
478
+ }
479
+ return null;
480
+ }
332
481
  function validateBinding(binding, context) {
333
482
  if (typeof binding === "string") {
334
483
  const resolved = resolveFieldSource(binding, context);
@@ -464,10 +613,13 @@ function validateTransform(binding, context) {
464
613
  }
465
614
  return errors;
466
615
  }
616
+ function isTemplateBindingValueArray(value) {
617
+ return Array.isArray(value);
618
+ }
467
619
  function readFallbackOptions(binding) {
468
- if (Array.isArray(binding.options)) return binding.options;
620
+ if (isTemplateBindingValueArray(binding.options)) return binding.options;
469
621
  const legacy = binding.sources;
470
- return Array.isArray(legacy) ? legacy : [];
622
+ return isTemplateBindingValueArray(legacy) ? legacy : [];
471
623
  }
472
624
  function resolveTransformInput(binding) {
473
625
  if (binding.input !== void 0) {
@@ -592,9 +744,8 @@ var FIELD_TYPE_CLASSIFICATION = {
592
744
  group: "composite",
593
745
  modal: "composite",
594
746
  tabGroup: "composite",
595
- // Repeaters: monomorphic has a single inner shape we could walk, but the
596
- // leaves would be bindings to repeated items, not to a fixed path. Skip.
597
- repeater: "opaque",
747
+ // Whole-field containers.
748
+ repeater: "whole",
598
749
  // Opaque types — dashboard-only widgets without an underlying bindable leaf.
599
750
  presetOrCustom: "opaque",
600
751
  contentTypeSelect: "opaque",
@@ -620,6 +771,15 @@ function collectLeaves(fields, prefix, out) {
620
771
  });
621
772
  continue;
622
773
  }
774
+ if (cls === "whole") {
775
+ out.push({
776
+ id,
777
+ type: "repeater",
778
+ required: Boolean(field.required),
779
+ shape: buildManifestRepeaterShape(field)
780
+ });
781
+ continue;
782
+ }
623
783
  if (cls === "composite") {
624
784
  const groupChildren = field.schema?.fields;
625
785
  if (groupChildren) collectLeaves(groupChildren, id, out);
@@ -630,6 +790,31 @@ function collectLeaves(fields, prefix, out) {
630
790
  void leafToBlockFieldType;
631
791
  }
632
792
  }
793
+ function buildManifestRepeaterShape(field) {
794
+ if (field.polymorphic || field.itemTypes) {
795
+ return { kind: "unsupported", reason: "polymorphic_unsupported" };
796
+ }
797
+ const fields = field.repeatedItem?.fields ?? field.schema?.fields;
798
+ if (!fields || fields.length === 0) {
799
+ return { kind: "unsupported", reason: "missing_item_schema" };
800
+ }
801
+ const itemFields = [];
802
+ for (const child of fields) {
803
+ if (child.type === "repeater") {
804
+ return { kind: "unsupported", reason: "nested_repeater_unsupported" };
805
+ }
806
+ const type = leafToBlockFieldType(child.type);
807
+ if (!type) {
808
+ return { kind: "unsupported", reason: "unsupported_item_field" };
809
+ }
810
+ itemFields.push({
811
+ id: child.id,
812
+ type,
813
+ required: Boolean(child.required)
814
+ });
815
+ }
816
+ return { kind: "supported", itemFields };
817
+ }
633
818
  function manifestToValidationShape(manifest) {
634
819
  const fields = [];
635
820
  collectLeaves(manifest.fields, "", fields);
@@ -637,6 +822,9 @@ function manifestToValidationShape(manifest) {
637
822
  }
638
823
 
639
824
  // src/config/template-validation.ts
825
+ function assertNeverField(field) {
826
+ throw new Error(`Unhandled field type while reading nested SDK fields: ${JSON.stringify(field)}`);
827
+ }
640
828
  function toContentTypeSchema(fields) {
641
829
  return {
642
830
  version: 1,
@@ -662,8 +850,26 @@ function nestedSdkFields(field) {
662
850
  return field.schema?.fields;
663
851
  case "tabGroup":
664
852
  return field.tabs.flatMap((tab) => tab.fields);
665
- default:
853
+ case "text":
854
+ case "richText":
855
+ case "media":
856
+ case "file":
857
+ case "boolean":
858
+ case "number":
859
+ case "date":
860
+ case "time":
861
+ case "datetime":
862
+ case "slug":
863
+ case "url":
864
+ case "link":
865
+ case "select":
866
+ case "reference":
867
+ case "presetOrCustom":
868
+ case "contentTypeSelect":
869
+ case "entryPicker":
666
870
  return void 0;
871
+ default:
872
+ return assertNeverField(field);
667
873
  }
668
874
  }
669
875
  function toContentFieldType(type) {