@riverbankcms/sdk 0.147.0 → 0.149.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 (442) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -1
  3. package/dist/{PreviewEditorSidebar-DtpB3_sS.mjs → PreviewEditorSidebar-DBKln68M.mjs} +301 -205
  4. package/dist/{PreviewEditorUI-DxTLgaHo.mjs → PreviewEditorUI-DpRX4Mum.mjs} +68 -63
  5. package/dist/{PreviewQueryProvider-Dd4dxOiU.mjs → PreviewQueryProvider-C0mndwHB.mjs} +3 -3
  6. package/dist/{SdkPreviewModeRuntime-DMMNCngt.mjs → SdkPreviewModeRuntime-DJPmPY-r.mjs} +1247 -541
  7. package/dist/{SiteChromeCustomizeContext-DQXZXiqS.mjs → SiteChromeCustomizeContext-JYA0cJ_Z.mjs} +209720 -204978
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +0 -33
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +0 -3
  10. package/dist/_dts/api/src/accessAdmin.d.ts +0 -4
  11. package/dist/_dts/api/src/accountApi.d.ts +1 -1
  12. package/dist/_dts/api/src/admin.d.ts +22 -22
  13. package/dist/_dts/api/src/aiPatch.d.ts +2 -2
  14. package/dist/_dts/api/src/aiPlayground.d.ts +1 -0
  15. package/dist/_dts/api/src/analytics.d.ts +2 -2
  16. package/dist/_dts/api/src/apiEndpointTypes.d.ts +2 -0
  17. package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
  18. package/dist/_dts/api/src/auth.d.ts +10 -10
  19. package/dist/_dts/api/src/availability.d.ts +6 -6
  20. package/dist/_dts/api/src/billing.d.ts +42 -15
  21. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +8 -0
  22. package/dist/_dts/api/src/billingEndpointTypes.d.ts +15 -6
  23. package/dist/_dts/api/src/blocks.d.ts +15 -14
  24. package/dist/_dts/api/src/blocksKeys.d.ts +2 -0
  25. package/dist/_dts/api/src/bookingConfig.d.ts +33 -50
  26. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -6
  27. package/dist/_dts/api/src/bookingOperations.d.ts +9 -11
  28. package/dist/_dts/api/src/bookingRecords.d.ts +16 -11
  29. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +5 -5
  30. package/dist/_dts/api/src/bookings.d.ts +7 -7
  31. package/dist/_dts/api/src/calendar.d.ts +9 -9
  32. package/dist/_dts/api/src/clientErrorReporting.d.ts +11 -0
  33. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -8
  34. package/dist/_dts/api/src/common/cancellation.d.ts +23 -0
  35. package/dist/_dts/api/src/common/envelope.d.ts +2 -2
  36. package/dist/_dts/api/src/content-editor.d.ts +2 -2
  37. package/dist/_dts/api/src/contentEntries.d.ts +17 -48
  38. package/dist/_dts/api/src/contentRuntime.d.ts +51 -37
  39. package/dist/_dts/api/src/contentTypes.d.ts +11 -11
  40. package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +6 -6
  41. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +1 -1
  42. package/dist/_dts/api/src/documentLifecycle.d.ts +67 -0
  43. package/dist/_dts/api/src/domains.d.ts +16 -16
  44. package/dist/_dts/api/src/editLeaseEndpoints.d.ts +72 -0
  45. package/dist/_dts/api/src/emailSettings.d.ts +4 -4
  46. package/dist/_dts/api/src/endpoints.d.ts +135 -51
  47. package/dist/_dts/api/src/eventEmailTemplates.d.ts +2 -2
  48. package/dist/_dts/api/src/eventManagementContracts.d.ts +29 -7
  49. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +0 -8
  50. package/dist/_dts/api/src/eventPageWords.d.ts +7 -12
  51. package/dist/_dts/api/src/footerSettings.d.ts +6 -6
  52. package/dist/_dts/api/src/index.d.ts +8 -7
  53. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  54. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  55. package/dist/_dts/api/src/navigation.d.ts +5 -5
  56. package/dist/_dts/api/src/pageSurfaceEditorEndpoints.d.ts +55 -0
  57. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +28 -7
  58. package/dist/_dts/api/src/pages.d.ts +7 -7
  59. package/dist/_dts/api/src/performance.d.ts +1 -1
  60. package/dist/_dts/api/src/public/index.d.ts +1 -1
  61. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +4 -2
  62. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +6 -29
  63. package/dist/_dts/api/src/redirects.d.ts +3 -3
  64. package/dist/_dts/api/src/request.d.ts +11 -2
  65. package/dist/_dts/api/src/resources.d.ts +4 -4
  66. package/dist/_dts/api/src/routes.d.ts +8 -3
  67. package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -2
  68. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +21 -0
  69. package/dist/_dts/api/src/sdkContracts.d.ts +5 -28
  70. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +1 -1
  71. package/dist/_dts/api/src/sdkEventOccurrenceRequestContracts.d.ts +43 -0
  72. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +4 -2
  73. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +9 -2
  74. package/dist/_dts/api/src/seo.d.ts +4 -4
  75. package/dist/_dts/api/src/services.d.ts +4 -4
  76. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -8
  77. package/dist/_dts/api/src/siteMembers.d.ts +10 -10
  78. package/dist/_dts/api/src/siteOnboarding.d.ts +14 -0
  79. package/dist/_dts/api/src/siteOperations.d.ts +6 -2
  80. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -3
  81. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -12
  82. package/dist/_dts/api/src/siteRuntimeEntry.d.ts +31 -0
  83. package/dist/_dts/billing/src/checkout/platform.d.ts +77 -0
  84. package/dist/_dts/billing/src/components/index.d.ts +25 -40
  85. package/dist/_dts/billing/src/membership/index.d.ts +1 -3
  86. package/dist/_dts/billing/src/plans/entitlements.d.ts +80 -0
  87. package/dist/_dts/billing/src/plans/registry.d.ts +16 -16
  88. package/dist/_dts/billing/src/plans/standing.d.ts +9 -2
  89. package/dist/_dts/billing/src/plans/types.d.ts +5 -15
  90. package/dist/_dts/billing/src/site-arrangements.d.ts +2 -2
  91. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +2 -4
  92. package/dist/_dts/billing/src/subscriptions/store.d.ts +17 -11
  93. package/dist/_dts/block-form/src/backend/store-backend.d.ts +6 -7
  94. package/dist/_dts/block-form/src/backend/types.d.ts +7 -0
  95. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -1
  96. package/dist/_dts/blocks/src/client/events.d.ts +3 -0
  97. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  98. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +2 -2
  99. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +54 -14
  100. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +4 -13
  101. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
  102. package/dist/_dts/blocks/src/portal/types.d.ts +9 -8
  103. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +2 -1
  104. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -1
  105. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +28 -28
  106. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
  107. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +84 -160
  108. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  109. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +31 -4
  110. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -2
  111. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  112. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +4 -2
  113. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +3 -1
  114. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +6 -0
  115. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +6 -0
  116. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +4 -0
  117. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +4 -1
  118. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +72 -12
  119. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +36 -6
  120. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingNowIso.d.ts +8 -0
  121. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +3 -0
  122. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -1
  123. package/dist/_dts/blocks/src/system/runtime/hooks/usePolling.d.ts +7 -48
  124. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.checkout-return-context.d.ts +7 -0
  125. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +3 -1
  126. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +9 -0
  128. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.payment-confirmation.d.ts +13 -0
  129. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +17 -2
  130. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-actions.d.ts +8 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +1 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +2 -1
  134. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  135. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +14 -2
  136. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  137. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +5 -0
  138. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
  139. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -1
  140. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +3 -3
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -0
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -5
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -5
  145. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +6 -0
  146. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +37 -3
  147. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.client.d.ts +1 -1
  148. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +16 -1
  149. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCardPresentations.d.ts +13 -0
  150. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +29 -29
  151. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -14
  152. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +12 -0
  153. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +54 -6
  154. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +7 -2
  155. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoBookingPortalAccess.d.ts +22 -0
  156. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoPortalSignInLink.d.ts +4 -0
  157. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  158. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoBookingPassStorage.d.ts +10 -0
  159. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoPortalMagicLink.d.ts +29 -0
  160. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +54 -0
  161. package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +58 -13
  162. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
  163. package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +16 -21
  164. package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +23 -40
  165. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +2 -2
  166. package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +5 -4
  167. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  168. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -3
  169. package/dist/_dts/commerce/src/purchase/membershipOrderItemMetadata.d.ts +4 -0
  170. package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +9 -4
  171. package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +13 -1
  172. package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +5 -0
  173. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +3 -1
  174. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +7 -1
  175. package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +1 -1
  176. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +2 -2
  177. package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +6 -0
  178. package/dist/_dts/commerce/src/purchase/types.d.ts +2 -1
  179. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -7
  180. package/dist/_dts/content-editor/src/controller/EditLeaseController.d.ts +39 -0
  181. package/dist/_dts/content-editor/src/controller/EditorWriteGate.d.ts +38 -0
  182. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +25 -61
  183. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseBanner.d.ts +7 -0
  184. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseControllers.d.ts +14 -0
  185. package/dist/_dts/content-editor/src/controller/deriveEditorUnpublishedState.d.ts +6 -0
  186. package/dist/_dts/content-editor/src/controller/documentValueBaseline.d.ts +25 -0
  187. package/dist/_dts/content-editor/src/controller/editLeaseHandover.d.ts +30 -0
  188. package/dist/_dts/content-editor/src/controller/editLeaseLossSignal.d.ts +6 -0
  189. package/dist/_dts/content-editor/src/controller/editLeaseNotice.d.ts +28 -0
  190. package/dist/_dts/content-editor/src/controller/editorClientId.d.ts +2 -0
  191. package/dist/_dts/content-editor/src/controller/editorEditability.d.ts +38 -0
  192. package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +34 -0
  193. package/dist/_dts/content-editor/src/controller/normalizedMetadataBaseline.d.ts +29 -0
  194. package/dist/_dts/content-editor/src/controller/pageSurfaceDocumentBaselines.d.ts +14 -0
  195. package/dist/_dts/content-editor/src/controller/pageSurfaceLifecycle.d.ts +11 -0
  196. package/dist/_dts/content-editor/src/controller/planDocumentBaselineRefresh.d.ts +19 -0
  197. package/dist/_dts/content-editor/src/controller/readDocumentLeaseBaselines.d.ts +19 -0
  198. package/dist/_dts/content-editor/src/controller/refreshDocumentLeaseBaseline.d.ts +12 -0
  199. package/dist/_dts/content-editor/src/controller/refreshLinkedEntry.d.ts +17 -0
  200. package/dist/_dts/content-editor/src/controller/replayRestoredEditorEffects.d.ts +2 -3
  201. package/dist/_dts/content-editor/src/controller/routeWrites.d.ts +26 -0
  202. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +16 -17
  203. package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +6 -2
  204. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +3 -3
  205. package/dist/_dts/content-editor/src/controller/useEntryValueAutosaves.d.ts +21 -0
  206. package/dist/_dts/content-editor/src/controller/useInitialEditorUiStore.d.ts +24 -0
  207. package/dist/_dts/content-editor/src/controller/useServerBaselineReconciliation.d.ts +17 -0
  208. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +1 -1
  209. package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +5 -1
  210. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +8 -47
  211. package/dist/_dts/content-editor/src/hooks/editLeaseMachine.d.ts +120 -0
  212. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +6 -10
  213. package/dist/_dts/content-editor/src/hooks/useAutosaveStatus.d.ts +3 -0
  214. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +5 -15
  215. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +7 -5
  216. package/dist/_dts/content-editor/src/hooks/useEditLease.d.ts +28 -0
  217. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +25 -39
  218. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +17 -19
  219. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +5 -8
  220. package/dist/_dts/content-editor/src/hooks/useValueAutosave.d.ts +64 -0
  221. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +0 -7
  222. package/dist/_dts/content-editor/src/index.d.ts +26 -7
  223. package/dist/_dts/content-editor/src/lib/browserStorage.d.ts +5 -0
  224. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +12 -0
  225. package/dist/_dts/content-editor/src/linkedEntries/owner.d.ts +9 -0
  226. package/dist/_dts/content-editor/src/liveDrafts/draftProjection.d.ts +66 -0
  227. package/dist/_dts/content-editor/src/liveDrafts/linkedSaveHandovers.d.ts +37 -0
  228. package/dist/_dts/content-editor/src/liveDrafts/remoteDraftOverlay.d.ts +113 -0
  229. package/dist/_dts/content-editor/src/liveDrafts/useLiveDrafts.d.ts +32 -0
  230. package/dist/_dts/content-editor/src/liveDrafts/useRetentionTicks.d.ts +7 -0
  231. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +6 -0
  232. package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +1 -0
  233. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +96 -19
  234. package/dist/_dts/content-editor/src/services/editorApiClient.d.ts +13 -0
  235. package/dist/_dts/content-editor/src/services/index.d.ts +2 -0
  236. package/dist/_dts/content-editor/src/services/pageSurfaceEditorServices.d.ts +23 -0
  237. package/dist/_dts/content-editor/src/sync/flushValues.d.ts +13 -0
  238. package/dist/_dts/content-editor/src/sync/lifecycleFailure.d.ts +51 -0
  239. package/dist/_dts/content-editor/src/sync/runLifecycle.d.ts +64 -0
  240. package/dist/_dts/content-editor/src/sync/schedulerValues.d.ts +27 -0
  241. package/dist/_dts/content-editor/src/sync/sendPlanning.d.ts +104 -0
  242. package/dist/_dts/content-editor/src/sync/valueSync.d.ts +114 -0
  243. package/dist/_dts/content-editor/src/ui/blockCollection.d.ts +8 -0
  244. package/dist/_dts/content-editor/src/ui/documentLifecycle.d.ts +18 -0
  245. package/dist/_dts/content-editor/src/ui/editorLeaseUiState.d.ts +7 -0
  246. package/dist/_dts/content-editor/src/ui/editorRefresh.d.ts +82 -0
  247. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +102 -127
  248. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +1 -1
  249. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +126 -72
  250. package/dist/_dts/content-editor/src/ui/editorValueSnapshot.d.ts +18 -0
  251. package/dist/_dts/content-editor/src/ui/serverBlockAdmission.d.ts +26 -0
  252. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +16 -27
  253. package/dist/_dts/content-editor/src/ui/stores/blockVersionsStore.d.ts +24 -0
  254. package/dist/_dts/content-editor/src/ui/stores/linkedEntryLeaseStore.d.ts +54 -0
  255. package/dist/_dts/content-editor/src/ui/stores/linkedSaveHandoversStore.d.ts +11 -0
  256. package/dist/_dts/content-editor/src/ui/stores/remoteDraftsStore.d.ts +10 -0
  257. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +63 -3
  258. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +2 -2
  259. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +1 -1
  260. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -4
  261. package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -4
  262. package/dist/_dts/content-model/src/definitions/shared.d.ts +11 -2
  263. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  264. package/dist/_dts/content-model/src/entry-slots/serializeAllowedBlocks.d.ts +2 -0
  265. package/dist/_dts/content-model/src/metadataConfig.d.ts +10 -38
  266. package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -1
  267. package/dist/_dts/content-model/src/types.d.ts +0 -1
  268. package/dist/_dts/core/src/block-content-identity.d.ts +49 -1
  269. package/dist/_dts/core/src/booking-flexible-balance.d.ts +2 -2
  270. package/dist/_dts/core/src/booking-instalment-deposit.d.ts +20 -0
  271. package/dist/_dts/core/src/booking-live-payment-terms.d.ts +72 -0
  272. package/dist/_dts/core/src/booking-payment-options.d.ts +24 -0
  273. package/dist/_dts/core/src/booking-payment-schemas.d.ts +522 -0
  274. package/dist/_dts/core/src/branded.d.ts +15 -0
  275. package/dist/_dts/core/src/currency-format.d.ts +8 -2
  276. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +2 -2
  277. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +8 -0
  278. package/dist/_dts/core/src/edit-lease.d.ts +60 -0
  279. package/dist/_dts/core/src/editor-state.d.ts +38 -13
  280. package/dist/_dts/core/src/editor-value-sync.d.ts +79 -0
  281. package/dist/_dts/core/src/html-entities.d.ts +6 -0
  282. package/dist/_dts/core/src/index.d.ts +7 -0
  283. package/dist/_dts/core/src/uuid.d.ts +7 -5
  284. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +456 -189
  285. package/dist/_dts/editor/src/EditorProvider.d.ts +5 -0
  286. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +14 -0
  287. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +1 -0
  288. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +0 -1
  289. package/dist/_dts/editor/src/index.d.ts +1 -1
  290. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +10 -9
  291. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
  292. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  293. package/dist/_dts/editor-blocks/src/block-editor/BlockCardFrame.d.ts +1 -1
  294. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +1 -1
  295. package/dist/_dts/editor-blocks/src/block-editor/applyExtendedFieldDefaults.d.ts +3 -4
  296. package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +4 -8
  297. package/dist/_dts/editor-blocks/src/block-editor/editorBlockItem.d.ts +23 -0
  298. package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +2 -7
  299. package/dist/_dts/editor-blocks/src/block-editor/hooks/applyBlockStructureChange.d.ts +4 -0
  300. package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +14 -5
  301. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +21 -19
  302. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -10
  303. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +8 -16
  304. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +6 -16
  305. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +37 -9
  306. package/dist/_dts/editor-blocks/src/index.d.ts +2 -1
  307. package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +1 -1
  308. package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +1 -1
  309. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +1 -1
  310. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +1 -1
  311. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +3 -2
  312. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -0
  313. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +3 -1
  314. package/dist/_dts/media-editor/src/MediaPickerMiniDialog.d.ts +10 -0
  315. package/dist/_dts/media-editor/src/context.d.ts +1 -1
  316. package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -2
  317. package/dist/_dts/media-editor/src/index.d.ts +2 -0
  318. package/dist/_dts/media-editor/src/provider.d.ts +3 -2
  319. package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
  320. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +3 -1
  321. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +8 -3
  322. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +6 -3
  323. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +22 -2
  324. package/dist/_dts/preview-next/src/client/blocks/previewProjection/entryFieldRebinding.d.ts +13 -0
  325. package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +2 -1
  326. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +11 -1
  327. package/dist/_dts/preview-next/src/client/blocks/renderPrecedence.d.ts +17 -0
  328. package/dist/_dts/preview-next/src/client/blocks/useLinkedSaveHandoverRetention.d.ts +20 -0
  329. package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
  330. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
  331. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
  332. package/dist/_dts/preview-next/src/client/preview/PreviewAccessBanners.d.ts +7 -0
  333. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  334. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +23 -14
  335. package/dist/_dts/preview-next/src/client/preview/PreviewLeaseEditingMode.d.ts +2 -0
  336. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -2
  337. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  338. package/dist/_dts/preview-next/src/client/preview/previewCustomizeAutosave.d.ts +5 -0
  339. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +3 -4
  340. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +1 -0
  341. package/dist/_dts/preview-next/src/client/preview/usePreviewCustomizeWorkflowState.d.ts +4 -0
  342. package/dist/_dts/preview-next/src/client/previewAuthStore.d.ts +7 -0
  343. package/dist/_dts/preview-next/src/constants.d.ts +4 -0
  344. package/dist/_dts/preview-next/src/keepAlive.d.ts +1 -0
  345. package/dist/_dts/realtime/src/client.d.ts +3 -0
  346. package/dist/_dts/realtime/src/draftChannel.d.ts +91 -0
  347. package/dist/_dts/realtime/src/drafts.d.ts +210 -0
  348. package/dist/_dts/realtime/src/index.d.ts +3 -0
  349. package/dist/_dts/realtime/src/leaseChangeSubscriptions.d.ts +8 -0
  350. package/dist/_dts/realtime/src/types.d.ts +113 -0
  351. package/dist/_dts/realtime/src/useDraftChannel.d.ts +34 -0
  352. package/dist/_dts/realtime/src/useSiteRealtimeReload.d.ts +27 -0
  353. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -55
  354. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  355. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +1 -0
  356. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +2 -0
  357. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -12
  358. package/dist/_dts/sdk/src/version.d.ts +1 -1
  359. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  360. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  361. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +0 -5
  362. package/dist/_dts/ui/src/color-picker.d.ts +1 -1
  363. package/dist/_dts/ui/src/palette/useHexDraft.d.ts +7 -0
  364. package/dist/client/{BookingMailingListNote-1n4Ch_u_.mjs → BookingMailingListNote-Cr3EeTP5.mjs} +504 -163
  365. package/dist/client/DemoBookingPortalAccess-BFGB1Fay.mjs +344 -0
  366. package/dist/client/{EventCombined.client-C0pgma9y.mjs → EventCombined.client-DKYV0_ft.mjs} +6 -6
  367. package/dist/client/{EventListing.client-4fhLOvHP.mjs → EventListing.client-B9UIcEYc.mjs} +2 -2
  368. package/dist/client/{LeafletStaticMap-DScC4F3w.mjs → LeafletStaticMap-CFLPkP0K.mjs} +1 -1
  369. package/dist/client/{TerminalPanel-B5ZUsYhe.mjs → TerminalPanel-JjmgxEsR.mjs} +1 -1
  370. package/dist/client/{ThemedButton-DoVIV1Ao.mjs → ThemedButton-CKV1Jh2m.mjs} +1 -1
  371. package/dist/client/{accordion-CoT5g7zo.mjs → accordion-DXWIfT3T.mjs} +1 -1
  372. package/dist/client/{bookingForm-BWxB46xD.mjs → bookingForm-CjZgHNvv.mjs} +216 -63
  373. package/dist/client/bookings.mjs +1187 -692
  374. package/dist/client/{carousel-DtNYWFd3.mjs → carousel-DSLikmvZ.mjs} +1 -1
  375. package/dist/client/{cart-z4qZih1Y.mjs → cart-HDjWReFt.mjs} +3 -3
  376. package/dist/client/{checkout-DpL7euFH.mjs → checkout-CUvRZA3W.mjs} +3 -3
  377. package/dist/client/{checkoutUrls-BEfR7kVu.mjs → checkoutUrls-CXhko2Rv.mjs} +1 -1
  378. package/dist/client/client.mjs +2711 -1684
  379. package/dist/client/{context-C8TinPJc.mjs → context-DFmaZa-Q.mjs} +4 -3
  380. package/dist/client/{dates-vwwxTeB0.mjs → dates-BBep1JnF.mjs} +56 -11
  381. package/dist/client/{eventCalendar-DIbHfJXO.mjs → eventCalendar-zEobhxo4.mjs} +9 -9
  382. package/dist/client/{eventCombined-DoGMJ6cg.mjs → eventCombined-Dp7bz5k-.mjs} +4 -4
  383. package/dist/client/{eventDetails-BjN9v6a1.mjs → eventDetails-FE-zqTt7.mjs} +4 -4
  384. package/dist/client/{eventListing-DajjWgOv.mjs → eventListing-BMt5snal.mjs} +4 -4
  385. package/dist/client/{eventRegistration-DMq9gMA-.mjs → eventRegistration-O6ZxHfOb.mjs} +422 -570
  386. package/dist/client/{form-Qf6qTbos.mjs → form-DFa1D8vt.mjs} +3 -3
  387. package/dist/client/{headerSection-D7qJrqFX.mjs → headerSection-CmjHLR-N.mjs} +3 -3
  388. package/dist/client/hooks.mjs +414 -182
  389. package/dist/client/{locationMap-CCF9-t_0.mjs → locationMap-BXKP_lGh.mjs} +3 -3
  390. package/dist/client/{media-CwBGetqC.mjs → media-Cl38iOMI.mjs} +10 -3
  391. package/dist/client/{newsletterForm-DzCLSP4S.mjs → newsletterForm-CU-HmxGx.mjs} +3 -3
  392. package/dist/client/{pricing-Cgxv2KLC.mjs → pricing-KEAEsibq.mjs} +1 -1
  393. package/dist/client/{productDetail-ru9w5GHx.mjs → productDetail-Ckp7MGnt.mjs} +3 -3
  394. package/dist/client/{productList-zaapKSl-.mjs → productList-D91V0sYa.mjs} +3 -3
  395. package/dist/client/{propsDecoder-CwvvNOHx.mjs → propsDecoder-DZd6RJeA.mjs} +244 -94
  396. package/dist/client/rendering/client.mjs +2656 -1705
  397. package/dist/client/rendering/islands.mjs +18 -18
  398. package/dist/client/rendering.mjs +3430 -2352
  399. package/dist/client/{routeIslandApiConfig-BwVFo0Y4.mjs → routeIslandApiConfig-E1EkhhYY.mjs} +1 -1
  400. package/dist/client/{shop-mktkXvbV.mjs → shop-4F2jLQPI.mjs} +131 -85
  401. package/dist/client/{shop-commerce-De7gEnkA.mjs → shop-commerce-BbfCJjB3.mjs} +25 -13
  402. package/dist/client/{shop-commerce-store-B3MCxIBW.mjs → shop-commerce-store-vicweP2K.mjs} +1 -1
  403. package/dist/client/{shopShared-TqExh235.mjs → shopShared-DlONJt0T.mjs} +4 -4
  404. package/dist/client/{useEventFilters-n_OjkIjX.mjs → useEventFilters-COYyL3m7.mjs} +32 -17
  405. package/dist/preview-next/before-render.mjs +207 -105
  406. package/dist/preview-next/client/runtime.mjs +4 -4
  407. package/dist/preview-next/constants.mjs +5 -1
  408. package/dist/preview-next/index.mjs +5 -1
  409. package/dist/preview-next/keepAlive.mjs +341 -165
  410. package/dist/preview-next/middleware.mjs +207 -105
  411. package/dist/{previewAuthStore-C_EHQ5XA.mjs → previewAuthStore-BBmV7UsW.mjs} +243 -112
  412. package/dist/{sdk-runtime-BIkJg5y1.mjs → sdk-runtime-CwvFFjB-.mjs} +2 -2
  413. package/dist/{separator-C9qDP95Z.mjs → separator-ByL72zUT.mjs} +1 -1
  414. package/dist/server/components.mjs +1839 -1475
  415. package/dist/server/config-validation.mjs +381 -166
  416. package/dist/server/config.mjs +381 -166
  417. package/dist/server/data.mjs +381 -166
  418. package/dist/server/index.mjs +214 -110
  419. package/dist/server/next.mjs +663 -351
  420. package/dist/server/page-converter.mjs +198 -79
  421. package/dist/server/prebuild.mjs +1 -1
  422. package/dist/server/rendering/server.mjs +1536 -1169
  423. package/dist/server/rendering.mjs +2432 -2068
  424. package/dist/server/routing.mjs +456 -173
  425. package/dist/server/server.mjs +447 -267
  426. package/package.json +1 -1
  427. package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +0 -123
  428. package/dist/_dts/billing/src/plans/display.d.ts +0 -15
  429. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +0 -3
  430. package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +0 -10
  431. package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +0 -55
  432. package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +0 -24
  433. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +0 -4
  434. package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +0 -16
  435. package/dist/_dts/content-editor/src/controller/driver.d.ts +0 -14
  436. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +0 -7
  437. package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +0 -29
  438. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +0 -26
  439. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +0 -64
  440. package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +0 -48
  441. package/dist/_dts/content-editor/src/types.d.ts +0 -44
  442. package/dist/client/DiscountCodeDisclosure-CKJtz0mY.mjs +0 -137
@@ -1591,6 +1591,7 @@ const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1591
1591
  responseKind: "json",
1592
1592
  errors: [
1593
1593
  "resource:not_found",
1594
+ "validation:invalid_input",
1594
1595
  "resource:conflict",
1595
1596
  "server:internal_error"
1596
1597
  ]
@@ -1697,6 +1698,19 @@ const CURRENCY_LOCALE_BY_CODE = {
1697
1698
  function resolveCurrencyLocale(currencyCode, override) {
1698
1699
  return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
1699
1700
  }
1701
+ function fractionDigitsFor(decimals, exactFormatter) {
1702
+ switch (decimals) {
1703
+ case "exact": return {};
1704
+ case "auto": return {
1705
+ minimumFractionDigits: 0,
1706
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
1707
+ };
1708
+ case "whole": return {
1709
+ minimumFractionDigits: 0,
1710
+ maximumFractionDigits: 0
1711
+ };
1712
+ }
1713
+ }
1700
1714
  /**
1701
1715
  * The single currency-amount formatter for the product: minor units in,
1702
1716
  * localized string out.
@@ -1707,6 +1721,13 @@ function resolveCurrencyLocale(currencyCode, override) {
1707
1721
  * own `Intl.NumberFormat`.
1708
1722
  */
1709
1723
  function formatCurrencyAmount(amountCents, currency, options) {
1724
+ return formatCurrencyMajorUnits(amountCents / 100, currency, options);
1725
+ }
1726
+ /**
1727
+ * `formatCurrencyAmount` for an amount already in MAJOR units (29.99 = £29.99),
1728
+ * such as a registrar price. Prefer minor units everywhere else.
1729
+ */
1730
+ function formatCurrencyMajorUnits(amount, currency, options) {
1710
1731
  const currencyCode = currency.toUpperCase();
1711
1732
  const locale = resolveCurrencyLocale(currencyCode, options?.locale);
1712
1733
  try {
@@ -1714,17 +1735,13 @@ function formatCurrencyAmount(amountCents, currency, options) {
1714
1735
  style: "currency",
1715
1736
  currency: currencyCode
1716
1737
  });
1717
- const fractionDigits = options?.decimals === "auto" ? {
1718
- minimumFractionDigits: 0,
1719
- maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
1720
- } : {};
1721
1738
  return new Intl.NumberFormat(locale, {
1722
1739
  style: "currency",
1723
1740
  currency: currencyCode,
1724
- ...fractionDigits
1725
- }).format(amountCents / 100);
1741
+ ...fractionDigitsFor(options?.decimals ?? "exact", exactFormatter)
1742
+ }).format(amount);
1726
1743
  } catch {
1727
- return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
1744
+ return `${amount.toFixed(2)} ${currencyCode}`;
1728
1745
  }
1729
1746
  }
1730
1747
  //#endregion
@@ -1967,6 +1984,16 @@ function isRecord$11(value) {
1967
1984
  return typeof value === "object" && value !== null && !Array.isArray(value);
1968
1985
  }
1969
1986
  //#endregion
1987
+ //#region ../core/src/booking-payment-options.ts
1988
+ /** Automatic instalments and a flexible balance cannot share one booking offer. */
1989
+ function validateBookingPaymentOptionKinds(kinds) {
1990
+ if (kinds.length === 0) return err("no_options");
1991
+ const uniqueKinds = new Set(kinds);
1992
+ if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
1993
+ if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
1994
+ return ok(void 0);
1995
+ }
1996
+ //#endregion
1970
1997
  //#region ../core/src/booking-time-zone.ts
1971
1998
  const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
1972
1999
  const timeZoneValidityCache = /* @__PURE__ */ new Map();
@@ -3364,28 +3391,6 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
3364
3391
  "resource:conflict",
3365
3392
  "server:internal_error"
3366
3393
  ]
3367
- },
3368
- /**
3369
- * The Content tab's one write: the short introduction, image and
3370
- * description of an event's page, published without its layout.
3371
- */
3372
- saveEventPageWords: {
3373
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
3374
- method: "PUT",
3375
- tags: [
3376
- TAG_TEMPLATES.siteCollection,
3377
- TAG_TEMPLATES.siteRoutableContent,
3378
- TAG_TEMPLATES.pageSurfaceById
3379
- ],
3380
- auth: "user",
3381
- responseKind: "json",
3382
- errors: [
3383
- "auth:forbidden",
3384
- "validation:invalid_input",
3385
- "resource:not_found",
3386
- "resource:conflict",
3387
- "server:internal_error"
3388
- ]
3389
3394
  }
3390
3395
  });
3391
3396
  //#endregion
@@ -3810,6 +3815,15 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
3810
3815
  auth: "user",
3811
3816
  responseKind: "json"
3812
3817
  },
3818
+ /** Continue on Free from the onboarding card page; only the attempt's owner. */
3819
+ continueOnboardingOnFree: {
3820
+ path: "/onboarding/attempts/{attemptToken}/plan/free",
3821
+ method: "POST",
3822
+ tags: ["billing"],
3823
+ auth: "user",
3824
+ errors: [],
3825
+ responseKind: "json"
3826
+ },
3813
3827
  createBillingPortalSession: {
3814
3828
  path: "/billing/portal/session",
3815
3829
  method: "POST",
@@ -3819,6 +3833,161 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
3819
3833
  }
3820
3834
  });
3821
3835
  //#endregion
3836
+ //#region ../api/src/editLeaseEndpoints.ts
3837
+ const path = "/sites/{siteId}/edit-leases/{nodeType}/{nodeId}";
3838
+ const lifecycleErrors = [
3839
+ "auth:lease_required",
3840
+ "auth:forbidden",
3841
+ "resource:not_found",
3842
+ "validation:invalid_input",
3843
+ "server:internal_error"
3844
+ ];
3845
+ const EDIT_LEASE_ENDPOINT_DEFINITIONS = {
3846
+ readEditLease: {
3847
+ path,
3848
+ method: "GET",
3849
+ editLease: "lifecycle",
3850
+ errors: lifecycleErrors,
3851
+ auth: "user",
3852
+ responseKind: "json"
3853
+ },
3854
+ acquireEditLease: {
3855
+ path,
3856
+ method: "POST",
3857
+ editLease: "lifecycle",
3858
+ errors: lifecycleErrors,
3859
+ auth: "user",
3860
+ responseKind: "json"
3861
+ },
3862
+ takeOverEditLease: {
3863
+ path,
3864
+ method: "PUT",
3865
+ editLease: "lifecycle",
3866
+ errors: lifecycleErrors,
3867
+ auth: "user",
3868
+ responseKind: "json"
3869
+ },
3870
+ heartbeatEditLease: {
3871
+ path,
3872
+ method: "PATCH",
3873
+ editLease: "lifecycle",
3874
+ errors: [...lifecycleErrors, "auth:lease_lost"],
3875
+ auth: "user",
3876
+ responseKind: "json"
3877
+ },
3878
+ releaseEditLease: {
3879
+ path,
3880
+ method: "DELETE",
3881
+ editLease: "lifecycle",
3882
+ errors: lifecycleErrors,
3883
+ auth: "user",
3884
+ responseKind: "json"
3885
+ }
3886
+ };
3887
+ //#endregion
3888
+ //#region ../api/src/pageSurfaceEditorEndpoints.ts
3889
+ const surfaceTags = [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById];
3890
+ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
3891
+ getPageSurfaceEditorDocument: {
3892
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
3893
+ method: "GET",
3894
+ errors: [
3895
+ "auth:forbidden",
3896
+ "validation:invalid_input",
3897
+ "resource:not_found",
3898
+ "resource:conflict",
3899
+ "server:internal_error"
3900
+ ],
3901
+ tags: surfaceTags,
3902
+ auth: "user",
3903
+ responseKind: "json"
3904
+ },
3905
+ updatePageSurfaceDraftContent: {
3906
+ editLease: "managed",
3907
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
3908
+ method: "PUT",
3909
+ errors: [
3910
+ "validation:invalid_input",
3911
+ "resource:not_found",
3912
+ "resource:conflict",
3913
+ "server:internal_error"
3914
+ ],
3915
+ tags: surfaceTags,
3916
+ auth: "user",
3917
+ responseKind: "json"
3918
+ },
3919
+ discardPageSurfaceDraftContent: {
3920
+ editLease: "managed",
3921
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content/draft",
3922
+ method: "DELETE",
3923
+ errors: [
3924
+ "validation:invalid_input",
3925
+ "resource:not_found",
3926
+ "resource:conflict",
3927
+ "server:internal_error"
3928
+ ],
3929
+ tags: surfaceTags,
3930
+ auth: "user",
3931
+ responseKind: "json"
3932
+ },
3933
+ updatePageSurfaceRouteMetadata: {
3934
+ editLease: "managed",
3935
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/metadata",
3936
+ method: "PATCH",
3937
+ errors: [
3938
+ "validation:invalid_input",
3939
+ "resource:not_found",
3940
+ "resource:conflict",
3941
+ "server:internal_error"
3942
+ ],
3943
+ tags: [
3944
+ TAG_TEMPLATES.siteCollection,
3945
+ TAG_TEMPLATES.siteRoutableContent,
3946
+ TAG_TEMPLATES.pageSurfaceById
3947
+ ],
3948
+ auth: "user",
3949
+ responseKind: "json"
3950
+ },
3951
+ publishPageSurface: {
3952
+ editLease: "managed",
3953
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/publication",
3954
+ method: "POST",
3955
+ errors: [
3956
+ "auth:forbidden",
3957
+ "validation:invalid_input",
3958
+ "resource:not_found",
3959
+ "resource:conflict",
3960
+ "server:internal_error"
3961
+ ],
3962
+ tags: [
3963
+ TAG_TEMPLATES.siteCollection,
3964
+ TAG_TEMPLATES.siteRoutableContent,
3965
+ TAG_TEMPLATES.pageSurfaceById
3966
+ ],
3967
+ auth: "user",
3968
+ responseKind: "json"
3969
+ },
3970
+ saveEventContentTab: {
3971
+ editLease: "managed",
3972
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/event-content",
3973
+ method: "PUT",
3974
+ errors: [
3975
+ "auth:forbidden",
3976
+ "validation:invalid_input",
3977
+ "resource:not_found",
3978
+ "resource:conflict",
3979
+ "server:internal_error"
3980
+ ],
3981
+ tags: [
3982
+ TAG_TEMPLATES.siteCollection,
3983
+ TAG_TEMPLATES.siteRoutableContent,
3984
+ TAG_TEMPLATES.pageSurfaceById
3985
+ ],
3986
+ auth: "user",
3987
+ responseKind: "json"
3988
+ }
3989
+ };
3990
+ //#endregion
3822
3991
  //#region ../api/src/bookingPeopleEndpointDefinitions.ts
3823
3992
  /**
3824
3993
  * People endpoints (#1356): the People list, its CSV export, and deleting a
@@ -3882,7 +4051,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
3882
4051
  stack: 8e3,
3883
4052
  digest: 128,
3884
4053
  componentStack: 8e3,
3885
- sourceLocation: 1024
4054
+ sourceLocation: 1024,
4055
+ navigationAgeMs: 6e4
3886
4056
  };
3887
4057
  const clientErrorEventSchema = z.enum([
3888
4058
  "dashboard:route-error",
@@ -3899,7 +4069,17 @@ z.object({
3899
4069
  stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
3900
4070
  digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
3901
4071
  componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
3902
- sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
4072
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
4073
+ navigation: z.object({
4074
+ fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
4075
+ toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
4076
+ type: z.enum([
4077
+ "push",
4078
+ "replace",
4079
+ "traverse"
4080
+ ]),
4081
+ ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
4082
+ }).strict().nullable().optional()
3903
4083
  }).strict();
3904
4084
  ({
3905
4085
  ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
@@ -3911,12 +4091,14 @@ z.object({
3911
4091
  ...GIFTING_ENDPOINT_DEFINITIONS,
3912
4092
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
3913
4093
  ...BILLING_ENDPOINT_DEFINITIONS,
4094
+ ...EDIT_LEASE_ENDPOINT_DEFINITIONS,
4095
+ ...PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS,
3914
4096
  ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
3915
4097
  }), TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, { ...SITE_API_KEY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, {
3916
4098
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
3917
4099
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
3918
4100
  ...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
3919
- }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...BOOKING_PEOPLE_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
4101
+ }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...BOOKING_PEOPLE_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
3920
4102
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
3921
4103
  z.object({
3922
4104
  accessToken: z.string().min(1).max(4096),
@@ -28459,6 +28641,10 @@ const bookingDescription = richText({}, bind("content.description"), when("conte
28459
28641
  * that hydration never rewrites.
28460
28642
  */
28461
28643
  const bookingWizard = bookingForm(withApiBindings({
28644
+ demoEmailSuppressed: { $bind: {
28645
+ from: "$root.demoEmailSuppressed",
28646
+ fallback: false
28647
+ } },
28462
28648
  portalToken: { $bind: {
28463
28649
  from: "$root.portalToken",
28464
28650
  fallback: null
@@ -28956,68 +29142,115 @@ const RichTextDocSchema = z.object({
28956
29142
  content: z.array(TipTapNodeSchema)
28957
29143
  }).strict();
28958
29144
  //#endregion
28959
- //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
28960
- const bookingDepositRefundPolicySchema$1 = z.enum(["refundable", "non_refundable"]);
28961
- const bookingInstalmentPlanSchema$1 = z.union([
28962
- z.object({
28963
- kind: z.literal("deposit_plus_one_remainder"),
28964
- depositAmountCents: z.number().int().min(0),
28965
- depositRefundability: bookingDepositRefundPolicySchema$1,
28966
- remainderDueCount: z.number().int().positive(),
28967
- intervalUnit: z.enum([
28968
- "day",
28969
- "week",
28970
- "month"
28971
- ])
28972
- }),
28973
- z.object({
28974
- kind: z.literal("deposit_plus_scheduled_instalments"),
28975
- depositAmountCents: z.number().int().min(0),
28976
- depositRefundability: bookingDepositRefundPolicySchema$1,
28977
- instalmentCount: z.number().int().positive(),
28978
- intervalCount: z.number().int().positive(),
28979
- intervalUnit: z.enum([
28980
- "day",
28981
- "week",
28982
- "month"
28983
- ])
28984
- }),
28985
- z.object({
28986
- kind: z.literal("equal_scheduled_instalments"),
28987
- instalmentCount: z.number().int().positive(),
28988
- intervalCount: z.number().int().positive(),
28989
- intervalUnit: z.enum([
28990
- "day",
28991
- "week",
28992
- "month"
28993
- ])
28994
- })
29145
+ //#region ../core/src/booking-payment-schemas.ts
29146
+ const stripObject = (shape) => z.object(shape);
29147
+ const strictObject = (shape) => z.strictObject(shape);
29148
+ const depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
29149
+ const intervalUnitSchema = z.enum([
29150
+ "day",
29151
+ "week",
29152
+ "month"
28995
29153
  ]);
28996
- const bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
28997
- kind: z.literal("relative_to_start_date"),
28998
- daysBeforeStart: z.number().int().positive()
28999
- }), z.object({
29000
- kind: z.literal("fixed_calendar_date"),
29001
- dueAt: z.string().datetime()
29002
- })]);
29003
- const bookingFlexibleBalanceConfigSchema$1 = z.object({
29004
- upfrontAmountCents: z.number().int().min(0),
29005
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
29006
- depositRefundability: bookingDepositRefundPolicySchema$1
29007
- });
29008
- const blockBookingPaymentCollectionOptionSchema = z.union([
29009
- z.object({ kind: z.literal("upfront") }),
29010
- z.object({ kind: z.literal("deferred_manual") }),
29011
- z.object({
29012
- kind: z.literal("instalment_plan"),
29013
- plan: bookingInstalmentPlanSchema$1
29014
- }),
29015
- z.object({
29016
- kind: z.literal("flexible_balance"),
29017
- config: bookingFlexibleBalanceConfigSchema$1
29018
- })
29019
- ]);
29020
- const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
29154
+ const nonNegativeIntegerSchema = z.number().int().nonnegative();
29155
+ const positiveIntegerSchema = z.number().int().positive();
29156
+ function createInstalmentPlanSchema(object) {
29157
+ return z.discriminatedUnion("kind", [
29158
+ object({
29159
+ kind: z.literal("deposit_plus_one_remainder"),
29160
+ depositAmountCents: nonNegativeIntegerSchema,
29161
+ depositRefundability: depositRefundPolicySchema,
29162
+ remainderDueCount: positiveIntegerSchema,
29163
+ intervalUnit: intervalUnitSchema
29164
+ }),
29165
+ object({
29166
+ kind: z.literal("deposit_plus_scheduled_instalments"),
29167
+ depositAmountCents: nonNegativeIntegerSchema,
29168
+ depositRefundability: depositRefundPolicySchema,
29169
+ instalmentCount: positiveIntegerSchema,
29170
+ intervalCount: positiveIntegerSchema,
29171
+ intervalUnit: intervalUnitSchema
29172
+ }),
29173
+ object({
29174
+ kind: z.literal("equal_scheduled_instalments"),
29175
+ instalmentCount: positiveIntegerSchema,
29176
+ intervalCount: positiveIntegerSchema,
29177
+ intervalUnit: intervalUnitSchema
29178
+ })
29179
+ ]);
29180
+ }
29181
+ function createFlexibleBalanceSchemas(object) {
29182
+ const dueDateRule = z.discriminatedUnion("kind", [object({
29183
+ kind: z.literal("relative_to_start_date"),
29184
+ daysBeforeStart: positiveIntegerSchema
29185
+ }), object({
29186
+ kind: z.literal("fixed_calendar_date"),
29187
+ dueAt: z.string().datetime()
29188
+ })]);
29189
+ return {
29190
+ dueDateRule,
29191
+ config: object({
29192
+ upfrontAmountCents: nonNegativeIntegerSchema,
29193
+ dueDateRule,
29194
+ depositRefundability: depositRefundPolicySchema
29195
+ })
29196
+ };
29197
+ }
29198
+ const paymentOptionKindsMessages = {
29199
+ no_options: "Choose at least one way for customers to pay.",
29200
+ duplicate_kind: "Choose each payment option only once.",
29201
+ incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
29202
+ };
29203
+ function buildBookingPaymentOptionSchemas(object) {
29204
+ const instalmentPlan = createInstalmentPlanSchema(object);
29205
+ const flexibleBalance = createFlexibleBalanceSchemas(object);
29206
+ const paymentCollectionOption = z.discriminatedUnion("kind", [
29207
+ object({ kind: z.literal("upfront") }),
29208
+ object({ kind: z.literal("deferred_manual") }),
29209
+ object({
29210
+ kind: z.literal("instalment_plan"),
29211
+ plan: instalmentPlan
29212
+ }),
29213
+ object({
29214
+ kind: z.literal("flexible_balance"),
29215
+ config: flexibleBalance.config
29216
+ })
29217
+ ]);
29218
+ const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
29219
+ const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
29220
+ if (!result.ok) ctx.addIssue({
29221
+ code: "custom",
29222
+ path: ["allowedOptions"],
29223
+ message: paymentOptionKindsMessages[result.error]
29224
+ });
29225
+ });
29226
+ const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
29227
+ source: z.literal("custom"),
29228
+ paymentTerms
29229
+ })]);
29230
+ return {
29231
+ depositRefundPolicy: depositRefundPolicySchema,
29232
+ instalmentPlan,
29233
+ flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
29234
+ flexibleBalanceConfig: flexibleBalance.config,
29235
+ paymentCollectionOption,
29236
+ paymentTerms,
29237
+ paymentOptionsChoice
29238
+ };
29239
+ }
29240
+ function createBookingPaymentOptionSchemas(mode) {
29241
+ return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
29242
+ }
29243
+ const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
29244
+ bookingPaymentOptionSchemas.depositRefundPolicy;
29245
+ bookingPaymentOptionSchemas.instalmentPlan;
29246
+ bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
29247
+ bookingPaymentOptionSchemas.flexibleBalanceConfig;
29248
+ bookingPaymentOptionSchemas.paymentCollectionOption;
29249
+ const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
29250
+ bookingPaymentOptionSchemas.paymentOptionsChoice;
29251
+ //#endregion
29252
+ //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
29253
+ const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
29021
29254
  //#endregion
29022
29255
  //#region ../blocks/src/system/blocks/shared/bookingConsent.ts
29023
29256
  const blockBookingConsentSchema = z.object({
@@ -29262,7 +29495,6 @@ const publicEventBaseSchema = z.object({
29262
29495
  description: z.string().nullable(),
29263
29496
  content: z.object({ body: RichTextDocSchema.nullable().optional() }).optional(),
29264
29497
  presentation: z.object({
29265
- cardTitleOverride: z.string().nullable().optional(),
29266
29498
  summary: z.string().nullable().optional(),
29267
29499
  image: mediaSchema.nullable().optional()
29268
29500
  }).optional(),
@@ -29295,6 +29527,7 @@ const publicEventBaseSchema = z.object({
29295
29527
  "archived"
29296
29528
  ]).optional(),
29297
29529
  timeZone: z.string(),
29530
+ siteTimeZone: z.string().optional(),
29298
29531
  pricing: publicEventPricingSchema,
29299
29532
  paymentTerms: blockBookingPaymentTermsSchema,
29300
29533
  cancellationPolicy: z.object({ refunds: z.object({
@@ -29619,7 +29852,7 @@ const publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassP
29619
29852
  /**
29620
29853
  * Public membership product for shop display
29621
29854
  */
29622
- const publicMembershipProductSchema = z.object({
29855
+ const publicMembershipProductFields = {
29623
29856
  id: z.string(),
29624
29857
  name: z.string(),
29625
29858
  description: z.string().nullable(),
@@ -29628,7 +29861,16 @@ const publicMembershipProductSchema = z.object({
29628
29861
  billingInterval: z.enum(["month", "year"]),
29629
29862
  eligibleCategoryIds: z.array(z.string()),
29630
29863
  eligibleCategoryNames: z.array(z.string())
29864
+ };
29865
+ const purchasablePublicMembershipProductSchema = z.object({
29866
+ ...publicMembershipProductFields,
29867
+ purchaseAvailability: z.literal("purchasable")
29631
29868
  });
29869
+ const publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
29870
+ ...publicMembershipProductFields,
29871
+ purchaseAvailability: z.literal("display_only"),
29872
+ unavailabilityReason: z.literal("online_payments_unavailable")
29873
+ })]);
29632
29874
  const publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
29633
29875
  //#endregion
29634
29876
  //#region ../blocks/src/system/blocks/event-registration.shared.ts
@@ -29958,6 +30200,7 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
29958
30200
  ];
29959
30201
  const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
29960
30202
  const eventRegistrationHydrationSchemaShape = {
30203
+ demoEmailSuppressed: z.boolean().optional(),
29961
30204
  occurrenceContext: occurrenceContextSchema.optional(),
29962
30205
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
29963
30206
  maxTickets: z.string().optional(),
@@ -30138,6 +30381,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
30138
30381
  ...eventSource,
30139
30382
  events: [...scopedSourceEvents]
30140
30383
  } : eventSource,
30384
+ demoEmailSuppressed: source.demoEmailSuppressed,
30141
30385
  maxTickets: source.maxTickets ?? void 0,
30142
30386
  showVenue: source.showVenue,
30143
30387
  showCapacity: source.showCapacity,
@@ -30266,8 +30510,8 @@ const eventRegistrationBlockDefinition = {
30266
30510
  description: "Message shown after successful registration",
30267
30511
  required: false,
30268
30512
  multiline: true,
30269
- defaultValue: "Thank you for registering! Check your email for confirmation details.",
30270
- maxLength: 500
30513
+ maxLength: 500,
30514
+ ui: { placeholder: "Thank you for registering! Check your email for confirmation details." }
30271
30515
  },
30272
30516
  {
30273
30517
  id: "buttonText",
@@ -30288,6 +30532,10 @@ const eventRegistrationBlockDefinition = {
30288
30532
  text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30289
30533
  richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
30290
30534
  eventRegistration(withApiBindings({
30535
+ demoEmailSuppressed: { $bind: {
30536
+ from: "$root.demoEmailSuppressed",
30537
+ fallback: false
30538
+ } },
30291
30539
  readAuthority: { $bind: { from: "$root.readAuthority" } },
30292
30540
  occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
30293
30541
  subject: { $bind: { from: "$root.subject" } },
@@ -35355,7 +35603,7 @@ function buildPassesMembershipsDisplay(options) {
35355
35603
  product: pass
35356
35604
  } : {
35357
35605
  kind: "unavailable",
35358
- label: "Online purchasing coming soon."
35606
+ label: "Online purchasing is unavailable."
35359
35607
  }
35360
35608
  };
35361
35609
  });
@@ -35365,7 +35613,14 @@ function buildPassesMembershipsDisplay(options) {
35365
35613
  description: options.showDescriptions ? membership.description : null,
35366
35614
  priceLabel: formatCommercePrice(membership.price, membership.currency),
35367
35615
  intervalLabel: formatInterval(membership.billingInterval),
35368
- actionLabel: options.membershipActionLabel
35616
+ action: membership.purchaseAvailability === "purchasable" ? {
35617
+ kind: "purchase",
35618
+ label: options.membershipActionLabel,
35619
+ product: membership
35620
+ } : {
35621
+ kind: "unavailable",
35622
+ label: "Online purchasing is unavailable."
35623
+ }
35369
35624
  }));
35370
35625
  return {
35371
35626
  kind: "passes-memberships",
@@ -35517,6 +35772,7 @@ const shopSourceSchema = z.object({
35517
35772
  memberships: z.array(publicMembershipProductSchema).nullable().optional(),
35518
35773
  products: z.array(publicProductSchema).nullable().optional(),
35519
35774
  siteId: z.string().optional(),
35775
+ demoEmailSuppressed: z.boolean().optional(),
35520
35776
  apiBaseUrl: z.string().optional(),
35521
35777
  readAuthority: browserReadAuthoritySchema.optional(),
35522
35778
  stage: previewStageSchema.optional()
@@ -35584,7 +35840,14 @@ const membershipCardDisplaySchema = z.object({
35584
35840
  description: z.string().nullable(),
35585
35841
  priceLabel: z.string(),
35586
35842
  intervalLabel: z.string(),
35587
- actionLabel: z.string()
35843
+ action: z.discriminatedUnion("kind", [z.object({
35844
+ kind: z.literal("purchase"),
35845
+ label: z.string(),
35846
+ product: purchasablePublicMembershipProductSchema
35847
+ }), z.object({
35848
+ kind: z.literal("unavailable"),
35849
+ label: z.string()
35850
+ })])
35588
35851
  });
35589
35852
  const passesMembershipsDisplaySchema = z.object({
35590
35853
  kind: z.literal("passes-memberships"),
@@ -35636,7 +35899,8 @@ const checkoutDisplaySchema = z.object({
35636
35899
  const passesMembershipsHydrationSchema = z.object({
35637
35900
  memberships: z.array(publicMembershipProductSchema),
35638
35901
  passPurchaseMode: z.enum(["add_to_cart", "buy_now"]),
35639
- buttonVariant: blockButtonRoleSchema
35902
+ buttonVariant: blockButtonRoleSchema,
35903
+ demoEmailSuppressed: z.boolean().optional()
35640
35904
  });
35641
35905
  const productListHydrationSchema = z.object({
35642
35906
  products: z.array(publicProductSchema),
@@ -35658,7 +35922,8 @@ const cartHydrationSchema = z.object({
35658
35922
  });
35659
35923
  const checkoutHydrationSchema = z.object({
35660
35924
  emptyStateText: z.string(),
35661
- submitButtonText: z.string()
35925
+ submitButtonText: z.string(),
35926
+ demoEmailSuppressed: z.boolean().optional()
35662
35927
  });
35663
35928
  const passesMembershipsRenderSchema = z.object({
35664
35929
  display: passesMembershipsDisplaySchema,
@@ -35717,7 +35982,8 @@ const shopBlockRuntime = defineProgressiveBlockRuntime({
35717
35982
  hydration: {
35718
35983
  memberships: source.showMemberships === false ? [] : source.memberships ?? [],
35719
35984
  passPurchaseMode,
35720
- buttonVariant: source.buttonVariant ?? "primary"
35985
+ buttonVariant: source.buttonVariant ?? "primary",
35986
+ demoEmailSuppressed: source.demoEmailSuppressed
35721
35987
  }
35722
35988
  };
35723
35989
  }
@@ -35810,7 +36076,8 @@ const checkoutBlockRuntime = defineClientOwnedBlockRuntime({
35810
36076
  }),
35811
36077
  hydration: {
35812
36078
  emptyStateText: source.emptyStateText ?? "Add something to your cart to continue.",
35813
- submitButtonText: source.submitButtonText ?? "Checkout"
36079
+ submitButtonText: source.submitButtonText ?? "Checkout",
36080
+ demoEmailSuppressed: source.demoEmailSuppressed
35814
36081
  }
35815
36082
  })
35816
36083
  });
@@ -36028,6 +36295,10 @@ const shopBlockDefinition = {
36028
36295
  spacing: "spacious",
36029
36296
  children: sectionContainer([shop(withApiBindings({
36030
36297
  readAuthority: { $bind: { from: "$root.readAuthority" } },
36298
+ demoEmailSuppressed: { $bind: {
36299
+ from: "$root.demoEmailSuppressed",
36300
+ fallback: false
36301
+ } },
36031
36302
  mode: "passes-memberships",
36032
36303
  showPasses: { $bind: {
36033
36304
  from: "content.showPasses",
@@ -36570,6 +36841,10 @@ const checkoutBlockDefinition = {
36570
36841
  baseClass: "",
36571
36842
  spacing: "spacious",
36572
36843
  children: sectionContainer([checkout(withApiBindings({
36844
+ demoEmailSuppressed: { $bind: {
36845
+ from: "$root.demoEmailSuppressed",
36846
+ fallback: false
36847
+ } },
36573
36848
  readAuthority: { $bind: { from: "$root.readAuthority" } },
36574
36849
  mode: "checkout",
36575
36850
  heading: { $bind: {
@@ -39919,6 +40194,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
39919
40194
  "refund_failed"
39920
40195
  ];
39921
40196
  const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
40197
+ "refund_blocked_by_live_payment_terms",
39922
40198
  ...CANONICAL_REFUND_PLANNER_ERROR_CODES,
39923
40199
  "payment_intent_not_found",
39924
40200
  "stripe_error",
@@ -39934,6 +40210,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
39934
40210
  //#endregion
39935
40211
  //#region ../api/src/bookingRefundOutcomes.ts
39936
40212
  const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
40213
+ "refund_blocked_by_live_payment_terms",
39937
40214
  "missing_amount",
39938
40215
  "invalid_amount",
39939
40216
  "amount_exceeds_remaining",
@@ -40296,68 +40573,6 @@ function collectText(node) {
40296
40573
  }
40297
40574
  z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
40298
40575
  //#endregion
40299
- //#region ../api/src/bookingPaymentTermSchemas.ts
40300
- const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
40301
- const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
40302
- z.object({
40303
- kind: z.literal("deposit_plus_one_remainder"),
40304
- depositAmountCents: z.number().int().nonnegative(),
40305
- depositRefundability: bookingDepositRefundPolicySchema,
40306
- remainderDueCount: z.number().int().positive(),
40307
- intervalUnit: z.enum([
40308
- "day",
40309
- "week",
40310
- "month"
40311
- ])
40312
- }),
40313
- z.object({
40314
- kind: z.literal("deposit_plus_scheduled_instalments"),
40315
- depositAmountCents: z.number().int().nonnegative(),
40316
- depositRefundability: bookingDepositRefundPolicySchema,
40317
- instalmentCount: z.number().int().positive(),
40318
- intervalCount: z.number().int().positive(),
40319
- intervalUnit: z.enum([
40320
- "day",
40321
- "week",
40322
- "month"
40323
- ])
40324
- }),
40325
- z.object({
40326
- kind: z.literal("equal_scheduled_instalments"),
40327
- instalmentCount: z.number().int().positive(),
40328
- intervalCount: z.number().int().positive(),
40329
- intervalUnit: z.enum([
40330
- "day",
40331
- "week",
40332
- "month"
40333
- ])
40334
- })
40335
- ]);
40336
- const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
40337
- kind: z.literal("relative_to_start_date"),
40338
- daysBeforeStart: z.number().int().positive()
40339
- }), z.object({
40340
- kind: z.literal("fixed_calendar_date"),
40341
- dueAt: z.string().datetime()
40342
- })]);
40343
- const bookingFlexibleBalanceConfigSchema = z.object({
40344
- upfrontAmountCents: z.number().int().nonnegative(),
40345
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
40346
- depositRefundability: bookingDepositRefundPolicySchema
40347
- });
40348
- z.discriminatedUnion("kind", [
40349
- z.object({ kind: z.literal("upfront") }),
40350
- z.object({ kind: z.literal("deferred_manual") }),
40351
- z.object({
40352
- kind: z.literal("instalment_plan"),
40353
- plan: bookingInstalmentPlanSchema
40354
- }),
40355
- z.object({
40356
- kind: z.literal("flexible_balance"),
40357
- config: bookingFlexibleBalanceConfigSchema
40358
- })
40359
- ]);
40360
- //#endregion
40361
40576
  //#region ../api/src/navigationMenuValidation.ts
40362
40577
  function hasChildren(item) {
40363
40578
  return Array.isArray(item.children) && item.children.length > 0;