@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
@@ -1636,6 +1636,7 @@ const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1636
1636
  responseKind: "json",
1637
1637
  errors: [
1638
1638
  "resource:not_found",
1639
+ "validation:invalid_input",
1639
1640
  "resource:conflict",
1640
1641
  "server:internal_error"
1641
1642
  ]
@@ -1742,6 +1743,19 @@ const CURRENCY_LOCALE_BY_CODE = {
1742
1743
  function resolveCurrencyLocale(currencyCode, override) {
1743
1744
  return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
1744
1745
  }
1746
+ function fractionDigitsFor(decimals, exactFormatter) {
1747
+ switch (decimals) {
1748
+ case "exact": return {};
1749
+ case "auto": return {
1750
+ minimumFractionDigits: 0,
1751
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
1752
+ };
1753
+ case "whole": return {
1754
+ minimumFractionDigits: 0,
1755
+ maximumFractionDigits: 0
1756
+ };
1757
+ }
1758
+ }
1745
1759
  /**
1746
1760
  * The single currency-amount formatter for the product: minor units in,
1747
1761
  * localized string out.
@@ -1752,6 +1766,13 @@ function resolveCurrencyLocale(currencyCode, override) {
1752
1766
  * own `Intl.NumberFormat`.
1753
1767
  */
1754
1768
  function formatCurrencyAmount(amountCents, currency, options) {
1769
+ return formatCurrencyMajorUnits(amountCents / 100, currency, options);
1770
+ }
1771
+ /**
1772
+ * `formatCurrencyAmount` for an amount already in MAJOR units (29.99 = £29.99),
1773
+ * such as a registrar price. Prefer minor units everywhere else.
1774
+ */
1775
+ function formatCurrencyMajorUnits(amount, currency, options) {
1755
1776
  const currencyCode = currency.toUpperCase();
1756
1777
  const locale = resolveCurrencyLocale(currencyCode, options?.locale);
1757
1778
  try {
@@ -1759,17 +1780,13 @@ function formatCurrencyAmount(amountCents, currency, options) {
1759
1780
  style: "currency",
1760
1781
  currency: currencyCode
1761
1782
  });
1762
- const fractionDigits = options?.decimals === "auto" ? {
1763
- minimumFractionDigits: 0,
1764
- maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
1765
- } : {};
1766
1783
  return new Intl.NumberFormat(locale, {
1767
1784
  style: "currency",
1768
1785
  currency: currencyCode,
1769
- ...fractionDigits
1770
- }).format(amountCents / 100);
1786
+ ...fractionDigitsFor(options?.decimals ?? "exact", exactFormatter)
1787
+ }).format(amount);
1771
1788
  } catch {
1772
- return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
1789
+ return `${amount.toFixed(2)} ${currencyCode}`;
1773
1790
  }
1774
1791
  }
1775
1792
  //#endregion
@@ -2012,6 +2029,16 @@ function isRecord$12(value) {
2012
2029
  return typeof value === "object" && value !== null && !Array.isArray(value);
2013
2030
  }
2014
2031
  //#endregion
2032
+ //#region ../core/src/booking-payment-options.ts
2033
+ /** Automatic instalments and a flexible balance cannot share one booking offer. */
2034
+ function validateBookingPaymentOptionKinds(kinds) {
2035
+ if (kinds.length === 0) return err("no_options");
2036
+ const uniqueKinds = new Set(kinds);
2037
+ if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
2038
+ if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
2039
+ return ok(void 0);
2040
+ }
2041
+ //#endregion
2015
2042
  //#region ../core/src/booking-time-zone.ts
2016
2043
  const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
2017
2044
  const timeZoneValidityCache = /* @__PURE__ */ new Map();
@@ -3441,28 +3468,6 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
3441
3468
  "resource:conflict",
3442
3469
  "server:internal_error"
3443
3470
  ]
3444
- },
3445
- /**
3446
- * The Content tab's one write: the short introduction, image and
3447
- * description of an event's page, published without its layout.
3448
- */
3449
- saveEventPageWords: {
3450
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
3451
- method: "PUT",
3452
- tags: [
3453
- TAG_TEMPLATES.siteCollection,
3454
- TAG_TEMPLATES.siteRoutableContent,
3455
- TAG_TEMPLATES.pageSurfaceById
3456
- ],
3457
- auth: "user",
3458
- responseKind: "json",
3459
- errors: [
3460
- "auth:forbidden",
3461
- "validation:invalid_input",
3462
- "resource:not_found",
3463
- "resource:conflict",
3464
- "server:internal_error"
3465
- ]
3466
3471
  }
3467
3472
  });
3468
3473
  //#endregion
@@ -3887,6 +3892,15 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
3887
3892
  auth: "user",
3888
3893
  responseKind: "json"
3889
3894
  },
3895
+ /** Continue on Free from the onboarding card page; only the attempt's owner. */
3896
+ continueOnboardingOnFree: {
3897
+ path: "/onboarding/attempts/{attemptToken}/plan/free",
3898
+ method: "POST",
3899
+ tags: ["billing"],
3900
+ auth: "user",
3901
+ errors: [],
3902
+ responseKind: "json"
3903
+ },
3890
3904
  createBillingPortalSession: {
3891
3905
  path: "/billing/portal/session",
3892
3906
  method: "POST",
@@ -3896,6 +3910,161 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
3896
3910
  }
3897
3911
  });
3898
3912
  //#endregion
3913
+ //#region ../api/src/editLeaseEndpoints.ts
3914
+ const path = "/sites/{siteId}/edit-leases/{nodeType}/{nodeId}";
3915
+ const lifecycleErrors = [
3916
+ "auth:lease_required",
3917
+ "auth:forbidden",
3918
+ "resource:not_found",
3919
+ "validation:invalid_input",
3920
+ "server:internal_error"
3921
+ ];
3922
+ const EDIT_LEASE_ENDPOINT_DEFINITIONS = {
3923
+ readEditLease: {
3924
+ path,
3925
+ method: "GET",
3926
+ editLease: "lifecycle",
3927
+ errors: lifecycleErrors,
3928
+ auth: "user",
3929
+ responseKind: "json"
3930
+ },
3931
+ acquireEditLease: {
3932
+ path,
3933
+ method: "POST",
3934
+ editLease: "lifecycle",
3935
+ errors: lifecycleErrors,
3936
+ auth: "user",
3937
+ responseKind: "json"
3938
+ },
3939
+ takeOverEditLease: {
3940
+ path,
3941
+ method: "PUT",
3942
+ editLease: "lifecycle",
3943
+ errors: lifecycleErrors,
3944
+ auth: "user",
3945
+ responseKind: "json"
3946
+ },
3947
+ heartbeatEditLease: {
3948
+ path,
3949
+ method: "PATCH",
3950
+ editLease: "lifecycle",
3951
+ errors: [...lifecycleErrors, "auth:lease_lost"],
3952
+ auth: "user",
3953
+ responseKind: "json"
3954
+ },
3955
+ releaseEditLease: {
3956
+ path,
3957
+ method: "DELETE",
3958
+ editLease: "lifecycle",
3959
+ errors: lifecycleErrors,
3960
+ auth: "user",
3961
+ responseKind: "json"
3962
+ }
3963
+ };
3964
+ //#endregion
3965
+ //#region ../api/src/pageSurfaceEditorEndpoints.ts
3966
+ const surfaceTags = [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById];
3967
+ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
3968
+ getPageSurfaceEditorDocument: {
3969
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
3970
+ method: "GET",
3971
+ errors: [
3972
+ "auth:forbidden",
3973
+ "validation:invalid_input",
3974
+ "resource:not_found",
3975
+ "resource:conflict",
3976
+ "server:internal_error"
3977
+ ],
3978
+ tags: surfaceTags,
3979
+ auth: "user",
3980
+ responseKind: "json"
3981
+ },
3982
+ updatePageSurfaceDraftContent: {
3983
+ editLease: "managed",
3984
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
3985
+ method: "PUT",
3986
+ errors: [
3987
+ "validation:invalid_input",
3988
+ "resource:not_found",
3989
+ "resource:conflict",
3990
+ "server:internal_error"
3991
+ ],
3992
+ tags: surfaceTags,
3993
+ auth: "user",
3994
+ responseKind: "json"
3995
+ },
3996
+ discardPageSurfaceDraftContent: {
3997
+ editLease: "managed",
3998
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content/draft",
3999
+ method: "DELETE",
4000
+ errors: [
4001
+ "validation:invalid_input",
4002
+ "resource:not_found",
4003
+ "resource:conflict",
4004
+ "server:internal_error"
4005
+ ],
4006
+ tags: surfaceTags,
4007
+ auth: "user",
4008
+ responseKind: "json"
4009
+ },
4010
+ updatePageSurfaceRouteMetadata: {
4011
+ editLease: "managed",
4012
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/metadata",
4013
+ method: "PATCH",
4014
+ errors: [
4015
+ "validation:invalid_input",
4016
+ "resource:not_found",
4017
+ "resource:conflict",
4018
+ "server:internal_error"
4019
+ ],
4020
+ tags: [
4021
+ TAG_TEMPLATES.siteCollection,
4022
+ TAG_TEMPLATES.siteRoutableContent,
4023
+ TAG_TEMPLATES.pageSurfaceById
4024
+ ],
4025
+ auth: "user",
4026
+ responseKind: "json"
4027
+ },
4028
+ publishPageSurface: {
4029
+ editLease: "managed",
4030
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/publication",
4031
+ method: "POST",
4032
+ errors: [
4033
+ "auth:forbidden",
4034
+ "validation:invalid_input",
4035
+ "resource:not_found",
4036
+ "resource:conflict",
4037
+ "server:internal_error"
4038
+ ],
4039
+ tags: [
4040
+ TAG_TEMPLATES.siteCollection,
4041
+ TAG_TEMPLATES.siteRoutableContent,
4042
+ TAG_TEMPLATES.pageSurfaceById
4043
+ ],
4044
+ auth: "user",
4045
+ responseKind: "json"
4046
+ },
4047
+ saveEventContentTab: {
4048
+ editLease: "managed",
4049
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/event-content",
4050
+ method: "PUT",
4051
+ errors: [
4052
+ "auth:forbidden",
4053
+ "validation:invalid_input",
4054
+ "resource:not_found",
4055
+ "resource:conflict",
4056
+ "server:internal_error"
4057
+ ],
4058
+ tags: [
4059
+ TAG_TEMPLATES.siteCollection,
4060
+ TAG_TEMPLATES.siteRoutableContent,
4061
+ TAG_TEMPLATES.pageSurfaceById
4062
+ ],
4063
+ auth: "user",
4064
+ responseKind: "json"
4065
+ }
4066
+ };
4067
+ //#endregion
3899
4068
  //#region ../api/src/bookingPeopleEndpointDefinitions.ts
3900
4069
  /**
3901
4070
  * People endpoints (#1356): the People list, its CSV export, and deleting a
@@ -3959,7 +4128,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
3959
4128
  stack: 8e3,
3960
4129
  digest: 128,
3961
4130
  componentStack: 8e3,
3962
- sourceLocation: 1024
4131
+ sourceLocation: 1024,
4132
+ navigationAgeMs: 6e4
3963
4133
  };
3964
4134
  const clientErrorEventSchema = z.enum([
3965
4135
  "dashboard:route-error",
@@ -3976,7 +4146,17 @@ z.object({
3976
4146
  stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
3977
4147
  digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
3978
4148
  componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
3979
- sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
4149
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
4150
+ navigation: z.object({
4151
+ fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
4152
+ toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
4153
+ type: z.enum([
4154
+ "push",
4155
+ "replace",
4156
+ "traverse"
4157
+ ]),
4158
+ ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
4159
+ }).strict().nullable().optional()
3980
4160
  }).strict();
3981
4161
  ({
3982
4162
  ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
@@ -3988,12 +4168,14 @@ z.object({
3988
4168
  ...GIFTING_ENDPOINT_DEFINITIONS,
3989
4169
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
3990
4170
  ...BILLING_ENDPOINT_DEFINITIONS,
4171
+ ...EDIT_LEASE_ENDPOINT_DEFINITIONS,
4172
+ ...PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS,
3991
4173
  ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
3992
4174
  }), 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, {
3993
4175
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
3994
4176
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
3995
4177
  ...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
3996
- }, 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 };
4178
+ }, 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 };
3997
4179
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
3998
4180
  z.object({
3999
4181
  accessToken: z.string().min(1).max(4096),
@@ -28536,6 +28718,10 @@ const bookingDescription = richText({}, bind("content.description"), when("conte
28536
28718
  * that hydration never rewrites.
28537
28719
  */
28538
28720
  const bookingWizard = bookingForm(withApiBindings({
28721
+ demoEmailSuppressed: { $bind: {
28722
+ from: "$root.demoEmailSuppressed",
28723
+ fallback: false
28724
+ } },
28539
28725
  portalToken: { $bind: {
28540
28726
  from: "$root.portalToken",
28541
28727
  fallback: null
@@ -29033,68 +29219,115 @@ const RichTextDocSchema = z.object({
29033
29219
  content: z.array(TipTapNodeSchema)
29034
29220
  }).strict();
29035
29221
  //#endregion
29036
- //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
29037
- const bookingDepositRefundPolicySchema$1 = z.enum(["refundable", "non_refundable"]);
29038
- const bookingInstalmentPlanSchema$1 = z.union([
29039
- z.object({
29040
- kind: z.literal("deposit_plus_one_remainder"),
29041
- depositAmountCents: z.number().int().min(0),
29042
- depositRefundability: bookingDepositRefundPolicySchema$1,
29043
- remainderDueCount: z.number().int().positive(),
29044
- intervalUnit: z.enum([
29045
- "day",
29046
- "week",
29047
- "month"
29048
- ])
29049
- }),
29050
- z.object({
29051
- kind: z.literal("deposit_plus_scheduled_instalments"),
29052
- depositAmountCents: z.number().int().min(0),
29053
- depositRefundability: bookingDepositRefundPolicySchema$1,
29054
- instalmentCount: z.number().int().positive(),
29055
- intervalCount: z.number().int().positive(),
29056
- intervalUnit: z.enum([
29057
- "day",
29058
- "week",
29059
- "month"
29060
- ])
29061
- }),
29062
- z.object({
29063
- kind: z.literal("equal_scheduled_instalments"),
29064
- instalmentCount: z.number().int().positive(),
29065
- intervalCount: z.number().int().positive(),
29066
- intervalUnit: z.enum([
29067
- "day",
29068
- "week",
29069
- "month"
29070
- ])
29071
- })
29222
+ //#region ../core/src/booking-payment-schemas.ts
29223
+ const stripObject = (shape) => z.object(shape);
29224
+ const strictObject = (shape) => z.strictObject(shape);
29225
+ const depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
29226
+ const intervalUnitSchema = z.enum([
29227
+ "day",
29228
+ "week",
29229
+ "month"
29072
29230
  ]);
29073
- const bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
29074
- kind: z.literal("relative_to_start_date"),
29075
- daysBeforeStart: z.number().int().positive()
29076
- }), z.object({
29077
- kind: z.literal("fixed_calendar_date"),
29078
- dueAt: z.string().datetime()
29079
- })]);
29080
- const bookingFlexibleBalanceConfigSchema$1 = z.object({
29081
- upfrontAmountCents: z.number().int().min(0),
29082
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
29083
- depositRefundability: bookingDepositRefundPolicySchema$1
29084
- });
29085
- const blockBookingPaymentCollectionOptionSchema = z.union([
29086
- z.object({ kind: z.literal("upfront") }),
29087
- z.object({ kind: z.literal("deferred_manual") }),
29088
- z.object({
29089
- kind: z.literal("instalment_plan"),
29090
- plan: bookingInstalmentPlanSchema$1
29091
- }),
29092
- z.object({
29093
- kind: z.literal("flexible_balance"),
29094
- config: bookingFlexibleBalanceConfigSchema$1
29095
- })
29096
- ]);
29097
- const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
29231
+ const nonNegativeIntegerSchema = z.number().int().nonnegative();
29232
+ const positiveIntegerSchema = z.number().int().positive();
29233
+ function createInstalmentPlanSchema(object) {
29234
+ return z.discriminatedUnion("kind", [
29235
+ object({
29236
+ kind: z.literal("deposit_plus_one_remainder"),
29237
+ depositAmountCents: nonNegativeIntegerSchema,
29238
+ depositRefundability: depositRefundPolicySchema,
29239
+ remainderDueCount: positiveIntegerSchema,
29240
+ intervalUnit: intervalUnitSchema
29241
+ }),
29242
+ object({
29243
+ kind: z.literal("deposit_plus_scheduled_instalments"),
29244
+ depositAmountCents: nonNegativeIntegerSchema,
29245
+ depositRefundability: depositRefundPolicySchema,
29246
+ instalmentCount: positiveIntegerSchema,
29247
+ intervalCount: positiveIntegerSchema,
29248
+ intervalUnit: intervalUnitSchema
29249
+ }),
29250
+ object({
29251
+ kind: z.literal("equal_scheduled_instalments"),
29252
+ instalmentCount: positiveIntegerSchema,
29253
+ intervalCount: positiveIntegerSchema,
29254
+ intervalUnit: intervalUnitSchema
29255
+ })
29256
+ ]);
29257
+ }
29258
+ function createFlexibleBalanceSchemas(object) {
29259
+ const dueDateRule = z.discriminatedUnion("kind", [object({
29260
+ kind: z.literal("relative_to_start_date"),
29261
+ daysBeforeStart: positiveIntegerSchema
29262
+ }), object({
29263
+ kind: z.literal("fixed_calendar_date"),
29264
+ dueAt: z.string().datetime()
29265
+ })]);
29266
+ return {
29267
+ dueDateRule,
29268
+ config: object({
29269
+ upfrontAmountCents: nonNegativeIntegerSchema,
29270
+ dueDateRule,
29271
+ depositRefundability: depositRefundPolicySchema
29272
+ })
29273
+ };
29274
+ }
29275
+ const paymentOptionKindsMessages = {
29276
+ no_options: "Choose at least one way for customers to pay.",
29277
+ duplicate_kind: "Choose each payment option only once.",
29278
+ incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
29279
+ };
29280
+ function buildBookingPaymentOptionSchemas(object) {
29281
+ const instalmentPlan = createInstalmentPlanSchema(object);
29282
+ const flexibleBalance = createFlexibleBalanceSchemas(object);
29283
+ const paymentCollectionOption = z.discriminatedUnion("kind", [
29284
+ object({ kind: z.literal("upfront") }),
29285
+ object({ kind: z.literal("deferred_manual") }),
29286
+ object({
29287
+ kind: z.literal("instalment_plan"),
29288
+ plan: instalmentPlan
29289
+ }),
29290
+ object({
29291
+ kind: z.literal("flexible_balance"),
29292
+ config: flexibleBalance.config
29293
+ })
29294
+ ]);
29295
+ const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
29296
+ const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
29297
+ if (!result.ok) ctx.addIssue({
29298
+ code: "custom",
29299
+ path: ["allowedOptions"],
29300
+ message: paymentOptionKindsMessages[result.error]
29301
+ });
29302
+ });
29303
+ const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
29304
+ source: z.literal("custom"),
29305
+ paymentTerms
29306
+ })]);
29307
+ return {
29308
+ depositRefundPolicy: depositRefundPolicySchema,
29309
+ instalmentPlan,
29310
+ flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
29311
+ flexibleBalanceConfig: flexibleBalance.config,
29312
+ paymentCollectionOption,
29313
+ paymentTerms,
29314
+ paymentOptionsChoice
29315
+ };
29316
+ }
29317
+ function createBookingPaymentOptionSchemas(mode) {
29318
+ return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
29319
+ }
29320
+ const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
29321
+ bookingPaymentOptionSchemas.depositRefundPolicy;
29322
+ bookingPaymentOptionSchemas.instalmentPlan;
29323
+ bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
29324
+ bookingPaymentOptionSchemas.flexibleBalanceConfig;
29325
+ bookingPaymentOptionSchemas.paymentCollectionOption;
29326
+ const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
29327
+ bookingPaymentOptionSchemas.paymentOptionsChoice;
29328
+ //#endregion
29329
+ //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
29330
+ const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
29098
29331
  //#endregion
29099
29332
  //#region ../blocks/src/system/blocks/shared/bookingConsent.ts
29100
29333
  const blockBookingConsentSchema = z.object({
@@ -29339,7 +29572,6 @@ const publicEventBaseSchema = z.object({
29339
29572
  description: z.string().nullable(),
29340
29573
  content: z.object({ body: RichTextDocSchema.nullable().optional() }).optional(),
29341
29574
  presentation: z.object({
29342
- cardTitleOverride: z.string().nullable().optional(),
29343
29575
  summary: z.string().nullable().optional(),
29344
29576
  image: mediaSchema.nullable().optional()
29345
29577
  }).optional(),
@@ -29372,6 +29604,7 @@ const publicEventBaseSchema = z.object({
29372
29604
  "archived"
29373
29605
  ]).optional(),
29374
29606
  timeZone: z.string(),
29607
+ siteTimeZone: z.string().optional(),
29375
29608
  pricing: publicEventPricingSchema,
29376
29609
  paymentTerms: blockBookingPaymentTermsSchema,
29377
29610
  cancellationPolicy: z.object({ refunds: z.object({
@@ -29696,7 +29929,7 @@ const publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassP
29696
29929
  /**
29697
29930
  * Public membership product for shop display
29698
29931
  */
29699
- const publicMembershipProductSchema = z.object({
29932
+ const publicMembershipProductFields = {
29700
29933
  id: z.string(),
29701
29934
  name: z.string(),
29702
29935
  description: z.string().nullable(),
@@ -29705,7 +29938,16 @@ const publicMembershipProductSchema = z.object({
29705
29938
  billingInterval: z.enum(["month", "year"]),
29706
29939
  eligibleCategoryIds: z.array(z.string()),
29707
29940
  eligibleCategoryNames: z.array(z.string())
29941
+ };
29942
+ const purchasablePublicMembershipProductSchema = z.object({
29943
+ ...publicMembershipProductFields,
29944
+ purchaseAvailability: z.literal("purchasable")
29708
29945
  });
29946
+ const publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
29947
+ ...publicMembershipProductFields,
29948
+ purchaseAvailability: z.literal("display_only"),
29949
+ unavailabilityReason: z.literal("online_payments_unavailable")
29950
+ })]);
29709
29951
  const publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
29710
29952
  //#endregion
29711
29953
  //#region ../blocks/src/system/blocks/event-registration.shared.ts
@@ -30035,6 +30277,7 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
30035
30277
  ];
30036
30278
  const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
30037
30279
  const eventRegistrationHydrationSchemaShape = {
30280
+ demoEmailSuppressed: z.boolean().optional(),
30038
30281
  occurrenceContext: occurrenceContextSchema.optional(),
30039
30282
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
30040
30283
  maxTickets: z.string().optional(),
@@ -30215,6 +30458,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
30215
30458
  ...eventSource,
30216
30459
  events: [...scopedSourceEvents]
30217
30460
  } : eventSource,
30461
+ demoEmailSuppressed: source.demoEmailSuppressed,
30218
30462
  maxTickets: source.maxTickets ?? void 0,
30219
30463
  showVenue: source.showVenue,
30220
30464
  showCapacity: source.showCapacity,
@@ -30343,8 +30587,8 @@ const eventRegistrationBlockDefinition = {
30343
30587
  description: "Message shown after successful registration",
30344
30588
  required: false,
30345
30589
  multiline: true,
30346
- defaultValue: "Thank you for registering! Check your email for confirmation details.",
30347
- maxLength: 500
30590
+ maxLength: 500,
30591
+ ui: { placeholder: "Thank you for registering! Check your email for confirmation details." }
30348
30592
  },
30349
30593
  {
30350
30594
  id: "buttonText",
@@ -30365,6 +30609,10 @@ const eventRegistrationBlockDefinition = {
30365
30609
  text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30366
30610
  richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
30367
30611
  eventRegistration(withApiBindings({
30612
+ demoEmailSuppressed: { $bind: {
30613
+ from: "$root.demoEmailSuppressed",
30614
+ fallback: false
30615
+ } },
30368
30616
  readAuthority: { $bind: { from: "$root.readAuthority" } },
30369
30617
  occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
30370
30618
  subject: { $bind: { from: "$root.subject" } },
@@ -35432,7 +35680,7 @@ function buildPassesMembershipsDisplay(options) {
35432
35680
  product: pass
35433
35681
  } : {
35434
35682
  kind: "unavailable",
35435
- label: "Online purchasing coming soon."
35683
+ label: "Online purchasing is unavailable."
35436
35684
  }
35437
35685
  };
35438
35686
  });
@@ -35442,7 +35690,14 @@ function buildPassesMembershipsDisplay(options) {
35442
35690
  description: options.showDescriptions ? membership.description : null,
35443
35691
  priceLabel: formatCommercePrice(membership.price, membership.currency),
35444
35692
  intervalLabel: formatInterval(membership.billingInterval),
35445
- actionLabel: options.membershipActionLabel
35693
+ action: membership.purchaseAvailability === "purchasable" ? {
35694
+ kind: "purchase",
35695
+ label: options.membershipActionLabel,
35696
+ product: membership
35697
+ } : {
35698
+ kind: "unavailable",
35699
+ label: "Online purchasing is unavailable."
35700
+ }
35446
35701
  }));
35447
35702
  return {
35448
35703
  kind: "passes-memberships",
@@ -35594,6 +35849,7 @@ const shopSourceSchema = z.object({
35594
35849
  memberships: z.array(publicMembershipProductSchema).nullable().optional(),
35595
35850
  products: z.array(publicProductSchema).nullable().optional(),
35596
35851
  siteId: z.string().optional(),
35852
+ demoEmailSuppressed: z.boolean().optional(),
35597
35853
  apiBaseUrl: z.string().optional(),
35598
35854
  readAuthority: browserReadAuthoritySchema.optional(),
35599
35855
  stage: previewStageSchema.optional()
@@ -35661,7 +35917,14 @@ const membershipCardDisplaySchema = z.object({
35661
35917
  description: z.string().nullable(),
35662
35918
  priceLabel: z.string(),
35663
35919
  intervalLabel: z.string(),
35664
- actionLabel: z.string()
35920
+ action: z.discriminatedUnion("kind", [z.object({
35921
+ kind: z.literal("purchase"),
35922
+ label: z.string(),
35923
+ product: purchasablePublicMembershipProductSchema
35924
+ }), z.object({
35925
+ kind: z.literal("unavailable"),
35926
+ label: z.string()
35927
+ })])
35665
35928
  });
35666
35929
  const passesMembershipsDisplaySchema = z.object({
35667
35930
  kind: z.literal("passes-memberships"),
@@ -35713,7 +35976,8 @@ const checkoutDisplaySchema = z.object({
35713
35976
  const passesMembershipsHydrationSchema = z.object({
35714
35977
  memberships: z.array(publicMembershipProductSchema),
35715
35978
  passPurchaseMode: z.enum(["add_to_cart", "buy_now"]),
35716
- buttonVariant: blockButtonRoleSchema
35979
+ buttonVariant: blockButtonRoleSchema,
35980
+ demoEmailSuppressed: z.boolean().optional()
35717
35981
  });
35718
35982
  const productListHydrationSchema = z.object({
35719
35983
  products: z.array(publicProductSchema),
@@ -35735,7 +35999,8 @@ const cartHydrationSchema = z.object({
35735
35999
  });
35736
36000
  const checkoutHydrationSchema = z.object({
35737
36001
  emptyStateText: z.string(),
35738
- submitButtonText: z.string()
36002
+ submitButtonText: z.string(),
36003
+ demoEmailSuppressed: z.boolean().optional()
35739
36004
  });
35740
36005
  const passesMembershipsRenderSchema = z.object({
35741
36006
  display: passesMembershipsDisplaySchema,
@@ -35794,7 +36059,8 @@ const shopBlockRuntime = defineProgressiveBlockRuntime({
35794
36059
  hydration: {
35795
36060
  memberships: source.showMemberships === false ? [] : source.memberships ?? [],
35796
36061
  passPurchaseMode,
35797
- buttonVariant: source.buttonVariant ?? "primary"
36062
+ buttonVariant: source.buttonVariant ?? "primary",
36063
+ demoEmailSuppressed: source.demoEmailSuppressed
35798
36064
  }
35799
36065
  };
35800
36066
  }
@@ -35887,7 +36153,8 @@ const checkoutBlockRuntime = defineClientOwnedBlockRuntime({
35887
36153
  }),
35888
36154
  hydration: {
35889
36155
  emptyStateText: source.emptyStateText ?? "Add something to your cart to continue.",
35890
- submitButtonText: source.submitButtonText ?? "Checkout"
36156
+ submitButtonText: source.submitButtonText ?? "Checkout",
36157
+ demoEmailSuppressed: source.demoEmailSuppressed
35891
36158
  }
35892
36159
  })
35893
36160
  });
@@ -36105,6 +36372,10 @@ const shopBlockDefinition = {
36105
36372
  spacing: "spacious",
36106
36373
  children: sectionContainer([shop(withApiBindings({
36107
36374
  readAuthority: { $bind: { from: "$root.readAuthority" } },
36375
+ demoEmailSuppressed: { $bind: {
36376
+ from: "$root.demoEmailSuppressed",
36377
+ fallback: false
36378
+ } },
36108
36379
  mode: "passes-memberships",
36109
36380
  showPasses: { $bind: {
36110
36381
  from: "content.showPasses",
@@ -36647,6 +36918,10 @@ const checkoutBlockDefinition = {
36647
36918
  baseClass: "",
36648
36919
  spacing: "spacious",
36649
36920
  children: sectionContainer([checkout(withApiBindings({
36921
+ demoEmailSuppressed: { $bind: {
36922
+ from: "$root.demoEmailSuppressed",
36923
+ fallback: false
36924
+ } },
36650
36925
  readAuthority: { $bind: { from: "$root.readAuthority" } },
36651
36926
  mode: "checkout",
36652
36927
  heading: { $bind: {
@@ -39996,6 +40271,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
39996
40271
  "refund_failed"
39997
40272
  ];
39998
40273
  const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
40274
+ "refund_blocked_by_live_payment_terms",
39999
40275
  ...CANONICAL_REFUND_PLANNER_ERROR_CODES,
40000
40276
  "payment_intent_not_found",
40001
40277
  "stripe_error",
@@ -40011,6 +40287,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
40011
40287
  //#endregion
40012
40288
  //#region ../api/src/bookingRefundOutcomes.ts
40013
40289
  const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
40290
+ "refund_blocked_by_live_payment_terms",
40014
40291
  "missing_amount",
40015
40292
  "invalid_amount",
40016
40293
  "amount_exceeds_remaining",
@@ -40373,68 +40650,6 @@ function collectText(node) {
40373
40650
  }
40374
40651
  z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
40375
40652
  //#endregion
40376
- //#region ../api/src/bookingPaymentTermSchemas.ts
40377
- const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
40378
- const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
40379
- z.object({
40380
- kind: z.literal("deposit_plus_one_remainder"),
40381
- depositAmountCents: z.number().int().nonnegative(),
40382
- depositRefundability: bookingDepositRefundPolicySchema,
40383
- remainderDueCount: z.number().int().positive(),
40384
- intervalUnit: z.enum([
40385
- "day",
40386
- "week",
40387
- "month"
40388
- ])
40389
- }),
40390
- z.object({
40391
- kind: z.literal("deposit_plus_scheduled_instalments"),
40392
- depositAmountCents: z.number().int().nonnegative(),
40393
- depositRefundability: bookingDepositRefundPolicySchema,
40394
- instalmentCount: z.number().int().positive(),
40395
- intervalCount: z.number().int().positive(),
40396
- intervalUnit: z.enum([
40397
- "day",
40398
- "week",
40399
- "month"
40400
- ])
40401
- }),
40402
- z.object({
40403
- kind: z.literal("equal_scheduled_instalments"),
40404
- instalmentCount: z.number().int().positive(),
40405
- intervalCount: z.number().int().positive(),
40406
- intervalUnit: z.enum([
40407
- "day",
40408
- "week",
40409
- "month"
40410
- ])
40411
- })
40412
- ]);
40413
- const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
40414
- kind: z.literal("relative_to_start_date"),
40415
- daysBeforeStart: z.number().int().positive()
40416
- }), z.object({
40417
- kind: z.literal("fixed_calendar_date"),
40418
- dueAt: z.string().datetime()
40419
- })]);
40420
- const bookingFlexibleBalanceConfigSchema = z.object({
40421
- upfrontAmountCents: z.number().int().nonnegative(),
40422
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
40423
- depositRefundability: bookingDepositRefundPolicySchema
40424
- });
40425
- z.discriminatedUnion("kind", [
40426
- z.object({ kind: z.literal("upfront") }),
40427
- z.object({ kind: z.literal("deferred_manual") }),
40428
- z.object({
40429
- kind: z.literal("instalment_plan"),
40430
- plan: bookingInstalmentPlanSchema
40431
- }),
40432
- z.object({
40433
- kind: z.literal("flexible_balance"),
40434
- config: bookingFlexibleBalanceConfigSchema
40435
- })
40436
- ]);
40437
- //#endregion
40438
40653
  //#region ../api/src/navigationMenuValidation.ts
40439
40654
  function hasChildren(item) {
40440
40655
  return Array.isArray(item.children) && item.children.length > 0;