@riverbankcms/sdk 0.146.0 → 0.148.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 (466) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{PreviewEditorSidebar-kg2r2Fyi.mjs → PreviewEditorSidebar-DvEPG3Z2.mjs} +249 -172
  3. package/dist/{PreviewEditorUI-sWMLp5dT.mjs → PreviewEditorUI-D6eb6fkx.mjs} +68 -60
  4. package/dist/{PreviewQueryProvider-Cg51xq1w.mjs → PreviewQueryProvider-5znTyJuz.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-h2ti3Hch.mjs → SdkPreviewModeRuntime-DJ6utQ_R.mjs} +1180 -475
  6. package/dist/{SiteChromeCustomizeContext-DEACFH9m.mjs → SiteChromeCustomizeContext-CFJYh6vo.mjs} +199078 -193767
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -33
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +18 -3
  9. package/dist/_dts/api/src/accessAdmin.d.ts +0 -4
  10. package/dist/_dts/api/src/accountApi.d.ts +6 -6
  11. package/dist/_dts/api/src/admin.d.ts +22 -22
  12. package/dist/_dts/api/src/aiPatch.d.ts +2 -2
  13. package/dist/_dts/api/src/aiPlayground.d.ts +1 -0
  14. package/dist/_dts/api/src/analytics.d.ts +2 -2
  15. package/dist/_dts/api/src/apiEndpointTypes.d.ts +2 -0
  16. package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
  17. package/dist/_dts/api/src/auth.d.ts +10 -10
  18. package/dist/_dts/api/src/availability.d.ts +6 -6
  19. package/dist/_dts/api/src/billing.d.ts +42 -15
  20. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +8 -0
  21. package/dist/_dts/api/src/billingEndpointTypes.d.ts +15 -6
  22. package/dist/_dts/api/src/blocks.d.ts +15 -14
  23. package/dist/_dts/api/src/blocksKeys.d.ts +2 -0
  24. package/dist/_dts/api/src/bookingConfig.d.ts +16 -2
  25. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -13
  26. package/dist/_dts/api/src/bookingOperations.d.ts +6 -48
  27. package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
  28. package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
  29. package/dist/_dts/api/src/bookingRecords.d.ts +12 -49
  30. package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
  31. package/dist/_dts/api/src/bookings.d.ts +8 -7
  32. package/dist/_dts/api/src/calendar.d.ts +9 -9
  33. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -6
  34. package/dist/_dts/api/src/common/envelope.d.ts +2 -2
  35. package/dist/_dts/api/src/content-editor.d.ts +2 -2
  36. package/dist/_dts/api/src/contentEntries.d.ts +17 -48
  37. package/dist/_dts/api/src/contentRuntime.d.ts +51 -37
  38. package/dist/_dts/api/src/contentTypes.d.ts +11 -11
  39. package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +6 -6
  40. package/dist/_dts/api/src/documentLifecycle.d.ts +67 -0
  41. package/dist/_dts/api/src/domains.d.ts +16 -16
  42. package/dist/_dts/api/src/editLeaseEndpoints.d.ts +72 -0
  43. package/dist/_dts/api/src/emailSettings.d.ts +4 -4
  44. package/dist/_dts/api/src/endpoints.d.ts +725 -607
  45. package/dist/_dts/api/src/eventEmailTemplates.d.ts +2 -2
  46. package/dist/_dts/api/src/eventManagementContracts.d.ts +48 -8
  47. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +1 -9
  48. package/dist/_dts/api/src/eventPageWords.d.ts +7 -12
  49. package/dist/_dts/api/src/footerSettings.d.ts +6 -6
  50. package/dist/_dts/api/src/index.d.ts +8 -6
  51. package/dist/_dts/api/src/indexCoreTypes.d.ts +2 -1
  52. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  53. package/dist/_dts/api/src/launchReadiness.d.ts +1 -6
  54. package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
  55. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
  56. package/dist/_dts/api/src/navigation.d.ts +5 -5
  57. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +15 -0
  58. package/dist/_dts/api/src/occurrenceScheduling.d.ts +19 -0
  59. package/dist/_dts/api/src/pageSurfaceEditorEndpoints.d.ts +55 -0
  60. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +28 -7
  61. package/dist/_dts/api/src/pages.d.ts +7 -7
  62. package/dist/_dts/api/src/performance.d.ts +1 -1
  63. package/dist/_dts/api/src/public/index.d.ts +1 -1
  64. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +50 -0
  65. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +4 -0
  66. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
  67. package/dist/_dts/api/src/redirects.d.ts +3 -3
  68. package/dist/_dts/api/src/request.d.ts +10 -1
  69. package/dist/_dts/api/src/resources.d.ts +4 -4
  70. package/dist/_dts/api/src/routes.d.ts +8 -3
  71. package/dist/_dts/api/src/sdk-event-upsert.d.ts +15 -1
  72. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +21 -0
  73. package/dist/_dts/api/src/sdkContracts.d.ts +5 -28
  74. package/dist/_dts/api/src/sdkCourseBooking.d.ts +4 -4
  75. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +1 -1
  76. package/dist/_dts/api/src/sdkEventOccurrenceRequestContracts.d.ts +43 -0
  77. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +4 -2
  78. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +8 -1
  79. package/dist/_dts/api/src/seo.d.ts +4 -4
  80. package/dist/_dts/api/src/services.d.ts +4 -4
  81. package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
  82. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +19 -25
  83. package/dist/_dts/api/src/siteMembers.d.ts +10 -10
  84. package/dist/_dts/api/src/siteOnboarding.d.ts +16 -14
  85. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -3
  86. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -12
  87. package/dist/_dts/api/src/siteRuntimeEntry.d.ts +31 -0
  88. package/dist/_dts/billing/src/checkout/platform.d.ts +77 -0
  89. package/dist/_dts/billing/src/components/index.d.ts +25 -40
  90. package/dist/_dts/billing/src/membership/index.d.ts +1 -3
  91. package/dist/_dts/billing/src/plans/entitlements.d.ts +80 -0
  92. package/dist/_dts/billing/src/plans/registry.d.ts +16 -16
  93. package/dist/_dts/billing/src/plans/standing.d.ts +9 -2
  94. package/dist/_dts/billing/src/plans/types.d.ts +5 -15
  95. package/dist/_dts/billing/src/site-arrangements.d.ts +2 -2
  96. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +2 -4
  97. package/dist/_dts/billing/src/subscriptions/store.d.ts +17 -11
  98. package/dist/_dts/block-form/src/backend/store-backend.d.ts +6 -7
  99. package/dist/_dts/block-form/src/backend/types.d.ts +7 -0
  100. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -1
  101. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
  102. package/dist/_dts/blocks/src/client/events.d.ts +3 -0
  103. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -4
  104. package/dist/_dts/blocks/src/index.d.ts +1 -1
  105. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +18 -9
  106. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
  107. package/dist/_dts/blocks/src/portal/types.d.ts +0 -2
  108. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +2 -1
  109. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -1
  110. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
  111. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +6 -1
  112. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
  113. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -2
  114. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  115. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +6 -0
  116. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +18 -0
  117. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +6 -0
  118. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +4 -0
  119. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +4 -1
  120. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +36 -6
  121. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +18 -3
  122. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +11 -0
  123. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
  124. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -1
  125. package/dist/_dts/blocks/src/system/runtime/hooks/usePolling.d.ts +7 -48
  126. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.checkout-return-context.d.ts +7 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +11 -0
  128. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +13 -0
  129. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +28 -0
  130. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.payment-confirmation.d.ts +13 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  134. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
  135. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +17 -1
  136. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-actions.d.ts +8 -0
  137. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +9 -0
  138. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
  139. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +4 -0
  140. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +2 -1
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +5 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +7 -1
  145. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
  146. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
  147. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  148. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +5 -5
  149. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
  150. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +18 -5
  151. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +6 -0
  152. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +37 -3
  153. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.client.d.ts +1 -1
  154. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +16 -1
  155. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCardPresentations.d.ts +13 -0
  156. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +5 -5
  157. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +2 -4
  158. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -14
  159. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +12 -0
  160. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  161. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -0
  162. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
  163. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoBookingPortalAccess.d.ts +22 -0
  164. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoPortalSignInLink.d.ts +4 -0
  165. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  166. package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
  167. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
  168. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoBookingPassStorage.d.ts +10 -0
  169. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoPortalMagicLink.d.ts +29 -0
  170. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
  171. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
  172. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
  173. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  174. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -7
  175. package/dist/_dts/content-editor/src/controller/EditLeaseController.d.ts +39 -0
  176. package/dist/_dts/content-editor/src/controller/EditorWriteGate.d.ts +38 -0
  177. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +25 -61
  178. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseBanner.d.ts +7 -0
  179. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseControllers.d.ts +14 -0
  180. package/dist/_dts/content-editor/src/controller/deriveEditorUnpublishedState.d.ts +6 -0
  181. package/dist/_dts/content-editor/src/controller/documentValueBaseline.d.ts +25 -0
  182. package/dist/_dts/content-editor/src/controller/editLeaseLossSignal.d.ts +6 -0
  183. package/dist/_dts/content-editor/src/controller/editLeaseNotice.d.ts +28 -0
  184. package/dist/_dts/content-editor/src/controller/editorClientId.d.ts +2 -0
  185. package/dist/_dts/content-editor/src/controller/editorEditability.d.ts +38 -0
  186. package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +34 -0
  187. package/dist/_dts/content-editor/src/controller/normalizedMetadataBaseline.d.ts +29 -0
  188. package/dist/_dts/content-editor/src/controller/pageSurfaceDocumentBaselines.d.ts +14 -0
  189. package/dist/_dts/content-editor/src/controller/pageSurfaceLifecycle.d.ts +11 -0
  190. package/dist/_dts/content-editor/src/controller/planDocumentBaselineRefresh.d.ts +19 -0
  191. package/dist/_dts/content-editor/src/controller/readDocumentLeaseBaselines.d.ts +19 -0
  192. package/dist/_dts/content-editor/src/controller/refreshDocumentLeaseBaseline.d.ts +12 -0
  193. package/dist/_dts/content-editor/src/controller/refreshLinkedEntry.d.ts +17 -0
  194. package/dist/_dts/content-editor/src/controller/replayRestoredEditorEffects.d.ts +2 -3
  195. package/dist/_dts/content-editor/src/controller/routeWrites.d.ts +26 -0
  196. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +16 -17
  197. package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +6 -2
  198. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +3 -3
  199. package/dist/_dts/content-editor/src/controller/useEntryValueAutosaves.d.ts +21 -0
  200. package/dist/_dts/content-editor/src/controller/useInitialEditorUiStore.d.ts +24 -0
  201. package/dist/_dts/content-editor/src/controller/useServerBaselineReconciliation.d.ts +17 -0
  202. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +1 -1
  203. package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +5 -1
  204. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +8 -47
  205. package/dist/_dts/content-editor/src/hooks/editLeaseMachine.d.ts +120 -0
  206. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +6 -10
  207. package/dist/_dts/content-editor/src/hooks/useAutosaveStatus.d.ts +3 -0
  208. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +5 -15
  209. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +7 -5
  210. package/dist/_dts/content-editor/src/hooks/useEditLease.d.ts +28 -0
  211. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +25 -39
  212. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +17 -19
  213. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +5 -8
  214. package/dist/_dts/content-editor/src/hooks/useValueAutosave.d.ts +64 -0
  215. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +0 -7
  216. package/dist/_dts/content-editor/src/index.d.ts +26 -7
  217. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +12 -0
  218. package/dist/_dts/content-editor/src/linkedEntries/owner.d.ts +9 -0
  219. package/dist/_dts/content-editor/src/liveDrafts/draftProjection.d.ts +66 -0
  220. package/dist/_dts/content-editor/src/liveDrafts/linkedSaveHandovers.d.ts +37 -0
  221. package/dist/_dts/content-editor/src/liveDrafts/remoteDraftOverlay.d.ts +113 -0
  222. package/dist/_dts/content-editor/src/liveDrafts/useLiveDrafts.d.ts +32 -0
  223. package/dist/_dts/content-editor/src/liveDrafts/useRetentionTicks.d.ts +7 -0
  224. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +6 -0
  225. package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +1 -0
  226. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +96 -19
  227. package/dist/_dts/content-editor/src/services/editorApiClient.d.ts +13 -0
  228. package/dist/_dts/content-editor/src/services/index.d.ts +2 -0
  229. package/dist/_dts/content-editor/src/services/pageSurfaceEditorServices.d.ts +23 -0
  230. package/dist/_dts/content-editor/src/sync/flushValues.d.ts +13 -0
  231. package/dist/_dts/content-editor/src/sync/lifecycleFailure.d.ts +51 -0
  232. package/dist/_dts/content-editor/src/sync/runLifecycle.d.ts +64 -0
  233. package/dist/_dts/content-editor/src/sync/schedulerValues.d.ts +27 -0
  234. package/dist/_dts/content-editor/src/sync/sendPlanning.d.ts +104 -0
  235. package/dist/_dts/content-editor/src/sync/valueSync.d.ts +114 -0
  236. package/dist/_dts/content-editor/src/ui/blockCollection.d.ts +8 -0
  237. package/dist/_dts/content-editor/src/ui/documentLifecycle.d.ts +18 -0
  238. package/dist/_dts/content-editor/src/ui/editorLeaseUiState.d.ts +7 -0
  239. package/dist/_dts/content-editor/src/ui/editorRefresh.d.ts +82 -0
  240. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +102 -127
  241. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +1 -1
  242. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +126 -72
  243. package/dist/_dts/content-editor/src/ui/editorValueSnapshot.d.ts +18 -0
  244. package/dist/_dts/content-editor/src/ui/serverBlockAdmission.d.ts +26 -0
  245. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +16 -27
  246. package/dist/_dts/content-editor/src/ui/stores/blockVersionsStore.d.ts +24 -0
  247. package/dist/_dts/content-editor/src/ui/stores/linkedEntryLeaseStore.d.ts +54 -0
  248. package/dist/_dts/content-editor/src/ui/stores/linkedSaveHandoversStore.d.ts +11 -0
  249. package/dist/_dts/content-editor/src/ui/stores/remoteDraftsStore.d.ts +10 -0
  250. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +63 -3
  251. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +2 -2
  252. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +1 -1
  253. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -4
  254. package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -4
  255. package/dist/_dts/content-model/src/definitions/shared.d.ts +11 -2
  256. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  257. package/dist/_dts/content-model/src/entry-slots/serializeAllowedBlocks.d.ts +2 -0
  258. package/dist/_dts/content-model/src/metadataConfig.d.ts +10 -38
  259. package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -1
  260. package/dist/_dts/content-model/src/types.d.ts +0 -1
  261. package/dist/_dts/core/src/block-content-identity.d.ts +49 -1
  262. package/dist/_dts/core/src/branded.d.ts +12 -0
  263. package/dist/_dts/core/src/currency-format.d.ts +8 -2
  264. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +2 -2
  265. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +8 -0
  266. package/dist/_dts/core/src/edit-lease.d.ts +55 -0
  267. package/dist/_dts/core/src/editor-state.d.ts +38 -13
  268. package/dist/_dts/core/src/editor-value-sync.d.ts +79 -0
  269. package/dist/_dts/core/src/html-entities.d.ts +6 -0
  270. package/dist/_dts/core/src/index.d.ts +5 -1
  271. package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
  272. package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
  273. package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -0
  274. package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
  275. package/dist/_dts/core/src/participants.d.ts +0 -38
  276. package/dist/_dts/core/src/uuid.d.ts +7 -5
  277. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +261 -175
  278. package/dist/_dts/editor/src/EditorProvider.d.ts +5 -0
  279. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +14 -0
  280. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +1 -0
  281. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +0 -1
  282. package/dist/_dts/editor/src/index.d.ts +1 -1
  283. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +10 -9
  284. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
  285. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  286. package/dist/_dts/editor-blocks/src/block-editor/BlockCardFrame.d.ts +1 -1
  287. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +1 -1
  288. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
  289. package/dist/_dts/editor-blocks/src/block-editor/applyExtendedFieldDefaults.d.ts +3 -4
  290. package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +4 -8
  291. package/dist/_dts/editor-blocks/src/block-editor/editorBlockItem.d.ts +23 -0
  292. package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +2 -7
  293. package/dist/_dts/editor-blocks/src/block-editor/hooks/applyBlockStructureChange.d.ts +4 -0
  294. package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +14 -5
  295. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +21 -19
  296. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -10
  297. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +8 -16
  298. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +6 -16
  299. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +37 -9
  300. package/dist/_dts/editor-blocks/src/index.d.ts +2 -1
  301. package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +1 -1
  302. package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +1 -1
  303. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +1 -1
  304. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +1 -1
  305. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +3 -2
  306. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -0
  307. package/dist/_dts/media-editor/src/context.d.ts +1 -1
  308. package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -2
  309. package/dist/_dts/media-editor/src/provider.d.ts +3 -2
  310. package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
  311. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +3 -1
  312. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
  313. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +8 -3
  314. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +10 -6
  315. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +22 -2
  316. package/dist/_dts/preview-next/src/client/blocks/previewProjection/entryFieldRebinding.d.ts +13 -0
  317. package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +2 -1
  318. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +11 -1
  319. package/dist/_dts/preview-next/src/client/blocks/renderPrecedence.d.ts +17 -0
  320. package/dist/_dts/preview-next/src/client/blocks/useLinkedSaveHandoverRetention.d.ts +20 -0
  321. package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
  322. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
  323. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
  324. package/dist/_dts/preview-next/src/client/preview/PreviewAccessBanners.d.ts +7 -0
  325. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  326. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +24 -14
  327. package/dist/_dts/preview-next/src/client/preview/PreviewLeaseEditingMode.d.ts +2 -0
  328. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -2
  329. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  330. package/dist/_dts/preview-next/src/client/preview/previewCustomizeAutosave.d.ts +5 -0
  331. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +3 -4
  332. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +1 -0
  333. package/dist/_dts/preview-next/src/client/preview/usePreviewCustomizeWorkflowState.d.ts +4 -0
  334. package/dist/_dts/realtime/src/client.d.ts +3 -0
  335. package/dist/_dts/realtime/src/draftChannel.d.ts +91 -0
  336. package/dist/_dts/realtime/src/drafts.d.ts +210 -0
  337. package/dist/_dts/realtime/src/index.d.ts +3 -0
  338. package/dist/_dts/realtime/src/leaseChangeSubscriptions.d.ts +8 -0
  339. package/dist/_dts/realtime/src/types.d.ts +113 -0
  340. package/dist/_dts/realtime/src/useDraftChannel.d.ts +34 -0
  341. package/dist/_dts/realtime/src/useSiteRealtimeReload.d.ts +27 -0
  342. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -55
  343. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  344. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
  345. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
  346. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +4 -2
  347. package/dist/_dts/sdk/src/version.d.ts +1 -1
  348. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  349. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
  350. package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
  351. package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
  352. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  353. package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
  354. package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
  355. package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
  356. package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
  357. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
  358. package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
  359. package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
  360. package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
  361. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
  362. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
  363. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
  364. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  365. package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
  366. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
  367. package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
  368. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
  369. package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
  370. package/dist/_dts/ui/src/badge.d.ts +2 -1
  371. package/dist/_dts/ui/src/button.d.ts +1 -1
  372. package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
  373. package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
  374. package/dist/_dts/ui/src/combobox.d.ts +26 -1
  375. package/dist/_dts/ui/src/date-picker.d.ts +5 -8
  376. package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
  377. package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
  378. package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
  379. package/dist/_dts/ui/src/index.d.ts +4 -1
  380. package/dist/_dts/ui/src/native-select.d.ts +8 -0
  381. package/dist/_dts/ui/src/popover.d.ts +7 -1
  382. package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
  383. package/dist/_dts/ui/src/surface.d.ts +1 -1
  384. package/dist/client/{BookingConsentAgreement-BQKL045f.mjs → BookingMailingListNote-CzRt2dF_.mjs} +110 -97
  385. package/dist/client/{CheckboxChoice--W2n6yKs.mjs → CheckboxChoice-B33MqoUo.mjs} +1 -1
  386. package/dist/client/DemoBookingPortalAccess-mxqwap3f.mjs +344 -0
  387. package/dist/client/{EventCombined.client-BdRjVbhH.mjs → EventCombined.client-CDb11igO.mjs} +7 -7
  388. package/dist/client/{EventListing.client-DBxC6xOU.mjs → EventListing.client-EgYhzKPa.mjs} +2 -2
  389. package/dist/client/{LeafletStaticMap-mHEJKrTs.mjs → LeafletStaticMap-gtmtaA2b.mjs} +1 -1
  390. package/dist/client/{scrollToBlock-BNgaEUpo.mjs → TerminalPanel-DvNUP5ot.mjs} +77 -77
  391. package/dist/client/{ThemedButton-CE5KYT6z.mjs → ThemedButton-C7CeUJjW.mjs} +2 -2
  392. package/dist/client/{accordion-BEQNSptH.mjs → accordion-kjvt49rA.mjs} +1 -1
  393. package/dist/client/{bookingForm-AMr-s5vw.mjs → bookingForm-pbRZordh.mjs} +411 -141
  394. package/dist/client/bookings.mjs +966 -396
  395. package/dist/client/{carousel-Bbt_QgJy.mjs → carousel-f4Zbmicv.mjs} +2 -2
  396. package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
  397. package/dist/client/{cart-CnWi30zJ.mjs → cart-DO20An50.mjs} +3 -3
  398. package/dist/client/{checkout-f3nkWgd4.mjs → checkout-Du5amDR_.mjs} +3 -3
  399. package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-CXhko2Rv.mjs} +1 -1
  400. package/dist/client/client.mjs +3837 -2202
  401. package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
  402. package/dist/client/{context-Bc8T6pCe.mjs → context-eW97E945.mjs} +4 -3
  403. package/dist/client/{dates-DUsCEzLb.mjs → dates-jPCirRea.mjs} +56 -11
  404. package/dist/client/{eventCalendar-CKwgXui5.mjs → eventCalendar-C2M-iE4j.mjs} +10 -10
  405. package/dist/client/{eventCombined-CBAOSTGR.mjs → eventCombined-W6ns3LHg.mjs} +4 -4
  406. package/dist/client/{eventDetails-Dh-_WiBD.mjs → eventDetails-CR-GT0f0.mjs} +4 -4
  407. package/dist/client/{eventListing-CA3frIH5.mjs → eventListing-BK8AfYZz.mjs} +4 -4
  408. package/dist/client/{eventRegistration-BHtsgdcg.mjs → eventRegistration-BJSd4KUu.mjs} +461 -266
  409. package/dist/client/{form-C2h3YAcg.mjs → form-BvpfbQaT.mjs} +5 -5
  410. package/dist/client/{headerSection-lwMuMTH9.mjs → headerSection-I5sUQ8x-.mjs} +3 -3
  411. package/dist/client/hooks.mjs +909 -163
  412. package/dist/client/{locationMap-DJ2bLODV.mjs → locationMap-BLvwf9_f.mjs} +4 -4
  413. package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
  414. package/dist/client/{media-BtJ37tzS.mjs → media-Cl38iOMI.mjs} +11 -4
  415. package/dist/client/{newsletterForm-8Pu5K32g.mjs → newsletterForm-DrQ2weE8.mjs} +6 -6
  416. package/dist/client/{pricing-HHx3IgBz.mjs → pricing-BES87mrR.mjs} +1 -1
  417. package/dist/client/{productDetail-C_1odnAf.mjs → productDetail-Url9jcc5.mjs} +3 -3
  418. package/dist/client/{productList-CtCv-Nmx.mjs → productList-DE7ngEZJ.mjs} +3 -3
  419. package/dist/client/{propsDecoder-Dcgsncxb.mjs → propsDecoder-D1OtGXDV.mjs} +140 -22
  420. package/dist/client/rendering/client.mjs +2366 -997
  421. package/dist/client/rendering/islands.mjs +19 -19
  422. package/dist/client/rendering.mjs +4607 -2884
  423. package/dist/client/{routeIslandApiConfig-CWLP7wu3.mjs → routeIslandApiConfig-BG9Y-SHg.mjs} +1 -1
  424. package/dist/client/{shop-DQXrQ8kJ.mjs → shop-CJkuySJ3.mjs} +126 -79
  425. package/dist/client/{shop-commerce-B88zmWWo.mjs → shop-commerce-4rKj5n9h.mjs} +26 -14
  426. package/dist/client/{shop-commerce-store-DtSfkKuX.mjs → shop-commerce-store-Bxm75Pg6.mjs} +1 -1
  427. package/dist/client/{shopShared-cuaONpkJ.mjs → shopShared-DpoQDWfz.mjs} +5 -5
  428. package/dist/client/{useEventFilters-Bukew6Gb.mjs → useEventFilters-D8HliSqR.mjs} +33 -18
  429. package/dist/preview-next/before-render.mjs +314 -133
  430. package/dist/preview-next/client/runtime.mjs +4 -4
  431. package/dist/preview-next/editor-base.css +53 -2
  432. package/dist/preview-next/editor-chrome.css +7 -4
  433. package/dist/preview-next/keepAlive.mjs +314 -133
  434. package/dist/preview-next/middleware.mjs +314 -133
  435. package/dist/{previewAuthStore-h5IgbSp4.mjs → previewAuthStore-BXXF3hhW.mjs} +316 -133
  436. package/dist/{sdk-runtime-DTc1uIXn.mjs → sdk-runtime-C2a05WjL.mjs} +2 -2
  437. package/dist/{separator-BpHS1KZK.mjs → separator-CuNhBAhS.mjs} +1 -1
  438. package/dist/server/components.mjs +6888 -6157
  439. package/dist/server/config-validation.mjs +931 -199
  440. package/dist/server/config.mjs +931 -199
  441. package/dist/server/data.mjs +929 -198
  442. package/dist/server/index.mjs +317 -134
  443. package/dist/server/navigation.mjs +13 -2
  444. package/dist/server/next.mjs +5003 -4340
  445. package/dist/server/page-converter.mjs +160 -78
  446. package/dist/server/prebuild.mjs +1 -1
  447. package/dist/server/rendering/server.mjs +6421 -5687
  448. package/dist/server/rendering.mjs +7683 -6933
  449. package/dist/server/routing.mjs +1035 -338
  450. package/dist/server/server.mjs +946 -256
  451. package/dist/server/theme-bridge.mjs +66 -17
  452. package/dist/server/theme.mjs +5 -1
  453. package/dist/styles/index.css +32 -4
  454. package/package.json +1 -1
  455. package/dist/_dts/billing/src/plans/display.d.ts +0 -15
  456. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +0 -4
  457. package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +0 -16
  458. package/dist/_dts/content-editor/src/controller/driver.d.ts +0 -14
  459. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +0 -7
  460. package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +0 -29
  461. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +0 -26
  462. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +0 -64
  463. package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +0 -48
  464. package/dist/_dts/content-editor/src/types.d.ts +0 -44
  465. package/dist/_dts/core/src/participant-identity.d.ts +0 -135
  466. package/dist/client/DiscountCodeDisclosure-CsOtjFY7.mjs +0 -137
@@ -588,6 +588,9 @@ var init_branded = __esmMin((() => {
588
588
  //#region ../core/src/date-math.ts
589
589
  var init_date_math = __esmMin((() => {}));
590
590
  //#endregion
591
+ //#region ../core/src/html-entities.ts
592
+ var init_html_entities = __esmMin((() => {}));
593
+ //#endregion
591
594
  //#region ../core/src/duration.ts
592
595
  var init_duration$1 = __esmMin((() => {}));
593
596
  //#endregion
@@ -600,6 +603,9 @@ var init_demo_claim_access = __esmMin((() => {}));
600
603
  //#region ../core/src/demo-lifecycle-status.ts
601
604
  var init_demo_lifecycle_status = __esmMin((() => {}));
602
605
  //#endregion
606
+ //#region ../core/src/demo-warm-pool-target.ts
607
+ var init_demo_warm_pool_target = __esmMin((() => {}));
608
+ //#endregion
603
609
  //#region ../core/src/demo-runtime.ts
604
610
  var init_demo_runtime = __esmMin((() => {}));
605
611
  //#endregion
@@ -622,6 +628,19 @@ var init_assert_never = __esmMin((() => {}));
622
628
  function resolveCurrencyLocale(currencyCode, override) {
623
629
  return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
624
630
  }
631
+ function fractionDigitsFor(decimals, exactFormatter) {
632
+ switch (decimals) {
633
+ case "exact": return {};
634
+ case "auto": return {
635
+ minimumFractionDigits: 0,
636
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
637
+ };
638
+ case "whole": return {
639
+ minimumFractionDigits: 0,
640
+ maximumFractionDigits: 0
641
+ };
642
+ }
643
+ }
625
644
  /**
626
645
  * The single currency-amount formatter for the product: minor units in,
627
646
  * localized string out.
@@ -632,6 +651,13 @@ function resolveCurrencyLocale(currencyCode, override) {
632
651
  * own `Intl.NumberFormat`.
633
652
  */
634
653
  function formatCurrencyAmount(amountCents, currency, options) {
654
+ return formatCurrencyMajorUnits(amountCents / 100, currency, options);
655
+ }
656
+ /**
657
+ * `formatCurrencyAmount` for an amount already in MAJOR units (29.99 = £29.99),
658
+ * such as a registrar price. Prefer minor units everywhere else.
659
+ */
660
+ function formatCurrencyMajorUnits(amount, currency, options) {
635
661
  const currencyCode = currency.toUpperCase();
636
662
  const locale = resolveCurrencyLocale(currencyCode, options?.locale);
637
663
  try {
@@ -639,17 +665,13 @@ function formatCurrencyAmount(amountCents, currency, options) {
639
665
  style: "currency",
640
666
  currency: currencyCode
641
667
  });
642
- const fractionDigits = options?.decimals === "auto" ? {
643
- minimumFractionDigits: 0,
644
- maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
645
- } : {};
646
668
  return new Intl.NumberFormat(locale, {
647
669
  style: "currency",
648
670
  currency: currencyCode,
649
- ...fractionDigits
650
- }).format(amountCents / 100);
671
+ ...fractionDigitsFor(options?.decimals ?? "exact", exactFormatter)
672
+ }).format(amount);
651
673
  } catch {
652
- return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
674
+ return `${amount.toFixed(2)} ${currencyCode}`;
653
675
  }
654
676
  }
655
677
  var CURRENCY_LOCALE_BY_CODE;
@@ -1137,8 +1159,34 @@ var init_non_empty_array = __esmMin((() => {}));
1137
1159
  //#region ../core/src/editor-state.ts
1138
1160
  var init_editor_state = __esmMin((() => {}));
1139
1161
  //#endregion
1162
+ //#region ../core/src/editor-value-sync.ts
1163
+ var init_editor_value_sync = __esmMin((() => {}));
1164
+ //#endregion
1165
+ //#region ../core/src/edit-lease.ts
1166
+ var init_edit_lease = __esmMin((() => {}));
1167
+ //#endregion
1140
1168
  //#region ../core/src/block-content-identity.ts
1141
- var init_block_content_identity = __esmMin((() => {}));
1169
+ function readContentVersionId(value) {
1170
+ const parsed = parseContentVersionId(value);
1171
+ return parsed.ok ? parsed.value : null;
1172
+ }
1173
+ /** The one pairing of a published id with its content. */
1174
+ function readPublishedBlockPlacement(id, content) {
1175
+ if (id == null && content == null) return null;
1176
+ const versionId = readContentVersionId(id);
1177
+ return versionId !== null && content != null ? {
1178
+ kind: "published",
1179
+ id: versionId,
1180
+ content
1181
+ } : {
1182
+ kind: "incomplete",
1183
+ id: id ?? null,
1184
+ content: content ?? null
1185
+ };
1186
+ }
1187
+ var init_block_content_identity = __esmMin((() => {
1188
+ init_branded();
1189
+ }));
1142
1190
  //#endregion
1143
1191
  //#region ../core/src/sensitive-collection.ts
1144
1192
  var init_sensitive_collection = __esmMin((() => {}));
@@ -1149,9 +1197,6 @@ var init_assertNever = __esmMin((() => {}));
1149
1197
  //#region ../core/src/participants.ts
1150
1198
  var init_participants = __esmMin((() => {}));
1151
1199
  //#endregion
1152
- //#region ../core/src/participant-identity.ts
1153
- var init_participant_identity = __esmMin((() => {}));
1154
- //#endregion
1155
1200
  //#region ../core/src/public-url-validation.ts
1156
1201
  var init_public_url_validation = __esmMin((() => {}));
1157
1202
  //#endregion
@@ -1370,17 +1415,35 @@ function parseMailingListRuntimeContext(value) {
1370
1415
  if (!isRecord$13(value)) return invalidRuntimeContext();
1371
1416
  if (value.tag === "not_configured") return ok$1({ tag: "not_configured" });
1372
1417
  if (value.tag !== "configured") return invalidRuntimeContext();
1418
+ return parseConfiguredRuntimeContext(value);
1419
+ }
1420
+ function parseConfiguredRuntimeContext(value) {
1373
1421
  const revision = parseMailingListSetupRevision(value.revision);
1374
1422
  const form = parseMailingListGlobalForm(value.form);
1375
1423
  const provider = parseRuntimeProvider(value.provider);
1376
- if (revision === null || !form.ok || provider === null) return invalidRuntimeContext();
1424
+ const bookingSignup = parseBookingSignupOffer(value.bookingSignup);
1425
+ if (revision === null || !form.ok || provider === null || bookingSignup === null) return invalidRuntimeContext();
1377
1426
  return ok$1({
1378
1427
  tag: "configured",
1379
1428
  revision,
1429
+ bookingSignup,
1380
1430
  form: form.value,
1381
1431
  provider
1382
1432
  });
1383
1433
  }
1434
+ function parseBookingSignupOffer(value) {
1435
+ if (value === void 0) return {
1436
+ tag: "unavailable",
1437
+ reason: "disabled"
1438
+ };
1439
+ if (!isRecord$13(value)) return null;
1440
+ if (value.tag === "offered") return { tag: "offered" };
1441
+ if (value.tag === "unavailable" && (value.reason === "disabled" || value.reason === "fields" || value.reason === "destination")) return {
1442
+ tag: "unavailable",
1443
+ reason: value.reason
1444
+ };
1445
+ return null;
1446
+ }
1384
1447
  function parseRuntimeProvider(value) {
1385
1448
  if (!isRecord$13(value)) return null;
1386
1449
  switch (value.provider) {
@@ -2094,6 +2157,9 @@ var init_booking_verticals = __esmMin((() => {
2094
2157
  //#region ../core/src/navigation-locations.ts
2095
2158
  var init_navigation_locations = __esmMin((() => {}));
2096
2159
  //#endregion
2160
+ //#region ../core/src/navigation-portal-labels.ts
2161
+ var init_navigation_portal_labels = __esmMin((() => {}));
2162
+ //#endregion
2097
2163
  //#region ../core/src/event-preset-vocabulary.ts
2098
2164
  var init_event_preset_vocabulary = __esmMin((() => {}));
2099
2165
  //#endregion
@@ -2104,10 +2170,12 @@ var init_event_catalogue = __esmMin((() => {}));
2104
2170
  var init_src$4 = __esmMin((() => {
2105
2171
  init_branded();
2106
2172
  init_date_math();
2173
+ init_html_entities();
2107
2174
  init_duration$1();
2108
2175
  init_demo_capability_policy();
2109
2176
  init_demo_claim_access();
2110
2177
  init_demo_lifecycle_status();
2178
+ init_demo_warm_pool_target();
2111
2179
  init_demo_runtime();
2112
2180
  init_collections();
2113
2181
  init_event_booking_offer();
@@ -2133,11 +2201,12 @@ var init_src$4 = __esmMin((() => {
2133
2201
  init_narrow_result();
2134
2202
  init_non_empty_array();
2135
2203
  init_editor_state();
2204
+ init_editor_value_sync();
2205
+ init_edit_lease();
2136
2206
  init_block_content_identity();
2137
2207
  init_sensitive_collection();
2138
2208
  init_assertNever();
2139
2209
  init_participants();
2140
- init_participant_identity();
2141
2210
  init_public_url_validation();
2142
2211
  init_public_profile();
2143
2212
  init_public_experience();
@@ -2176,6 +2245,7 @@ var init_src$4 = __esmMin((() => {
2176
2245
  init_booking_verticals();
2177
2246
  init_event_series_behaviour();
2178
2247
  init_navigation_locations();
2248
+ init_navigation_portal_labels();
2179
2249
  init_event_preset_vocabulary();
2180
2250
  init_event_catalogue();
2181
2251
  }));
@@ -2205,9 +2275,13 @@ var init_fileStorage = __esmMin((() => {
2205
2275
  FILE_STORAGE_BUCKETS = {
2206
2276
  publicSite: unsafeAsStorageBucketName("media"),
2207
2277
  privateSite: unsafeAsStorageBucketName("site-files-private"),
2208
- temporary: unsafeAsStorageBucketName("temp-uploads")
2278
+ temporary: unsafeAsStorageBucketName("temp-uploads"),
2279
+ siteAssets: unsafeAsStorageBucketName("site-assets"),
2280
+ siteFonts: unsafeAsStorageBucketName("site-fonts"),
2281
+ bookingRequirementDocuments: unsafeAsStorageBucketName("booking-requirement-documents")
2209
2282
  };
2210
- FILE_STORAGE_BUCKETS.publicSite, unsafeAsStorageBucketName("site-assets"), unsafeAsStorageBucketName("site-fonts");
2283
+ FILE_STORAGE_BUCKETS.publicSite, FILE_STORAGE_BUCKETS.siteAssets, FILE_STORAGE_BUCKETS.siteFonts;
2284
+ FILE_STORAGE_BUCKETS.publicSite, FILE_STORAGE_BUCKETS.privateSite, FILE_STORAGE_BUCKETS.temporary, FILE_STORAGE_BUCKETS.siteAssets, FILE_STORAGE_BUCKETS.siteFonts, FILE_STORAGE_BUCKETS.bookingRequirementDocuments;
2211
2285
  PRIVATE_SITE_FILE_BUCKET_MIME_TYPES = [
2212
2286
  "application/pdf",
2213
2287
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
@@ -3490,9 +3564,6 @@ var init_onColor = __esmMin((() => {}));
3490
3564
  //#region ../theme-core/src/palette/expandPalette.ts
3491
3565
  var init_expandPalette = __esmMin((() => {}));
3492
3566
  //#endregion
3493
- //#region ../theme-core/src/surfaces/foregroundRoles.ts
3494
- var init_foregroundRoles = __esmMin((() => {}));
3495
- //#endregion
3496
3567
  //#region ../theme-core/src/surfaces/foregroundContract.ts
3497
3568
  function requireSurfaceColorValue(role, value) {
3498
3569
  const normalized = value.trim();
@@ -3501,10 +3572,12 @@ function requireSurfaceColorValue(role, value) {
3501
3572
  }
3502
3573
  function completeSurfaceForegrounds(input) {
3503
3574
  const text = requireSurfaceColorValue("text", input.text);
3575
+ const link = input.link === void 0 ? text : requireSurfaceColorValue("link", input.link);
3504
3576
  return {
3505
3577
  text,
3506
3578
  heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
3507
- link: input.link === void 0 ? text : requireSurfaceColorValue("link", input.link),
3579
+ link,
3580
+ linkHover: input.linkHover === void 0 ? link : requireSurfaceColorValue("linkHover", input.linkHover),
3508
3581
  supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
3509
3582
  };
3510
3583
  }
@@ -3512,6 +3585,7 @@ function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FAL
3512
3585
  const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
3513
3586
  const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
3514
3587
  if (role === "text") return `var(${roleVariable}, ${fallback})`;
3588
+ if (role === "linkHover") return `var(${roleVariable}, ${surfaceForegroundValue("link", fallback)})`;
3515
3589
  return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
3516
3590
  }
3517
3591
  function surfaceForegroundValueWithOpacity(role, opacityPercent) {
@@ -3525,15 +3599,32 @@ function surfaceForegroundStyle(input) {
3525
3599
  [SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
3526
3600
  [SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
3527
3601
  [SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
3528
- [SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting
3602
+ [SURFACE_FOREGROUND_CSS_VARS.linkHover]: foregrounds.linkHover,
3603
+ [SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting,
3604
+ "--rb-surface-link-hover-decoration": hoverDecoration(input)
3529
3605
  };
3530
3606
  }
3607
+ function surfaceForegroundInputFromResolved(foreground, color) {
3608
+ const { roles } = foreground;
3609
+ return {
3610
+ text: color(roles.text),
3611
+ heading: color(roles.heading),
3612
+ link: color(roles.link),
3613
+ linkHover: color(roles.linkHover),
3614
+ supporting: color(roles.supporting),
3615
+ hoverDecoration: foreground.hoverDecoration
3616
+ };
3617
+ }
3618
+ function hoverDecoration(input) {
3619
+ return input.hoverDecoration ?? "underline";
3620
+ }
3531
3621
  var SURFACE_FOREGROUND_CSS_VARS, DEFAULT_SURFACE_TEXT_COLOR, DEFAULT_SURFACE_LINK_COLOR, DEFAULT_SURFACE_SUPPORTING_COLOR, DEFAULT_ROLE_FALLBACKS;
3532
3622
  var init_foregroundContract = __esmMin((() => {
3533
3623
  SURFACE_FOREGROUND_CSS_VARS = {
3534
3624
  text: "--rb-surface-text-color",
3535
3625
  heading: "--rb-surface-heading-color",
3536
3626
  link: "--rb-surface-link-color",
3627
+ linkHover: "--rb-surface-link-hover-color",
3537
3628
  supporting: "--rb-surface-supporting-color"
3538
3629
  };
3539
3630
  DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
@@ -3543,6 +3634,7 @@ var init_foregroundContract = __esmMin((() => {
3543
3634
  text: DEFAULT_SURFACE_TEXT_COLOR,
3544
3635
  heading: DEFAULT_SURFACE_TEXT_COLOR,
3545
3636
  link: DEFAULT_SURFACE_LINK_COLOR,
3637
+ linkHover: DEFAULT_SURFACE_LINK_COLOR,
3546
3638
  supporting: DEFAULT_SURFACE_SUPPORTING_COLOR
3547
3639
  };
3548
3640
  }));
@@ -4377,11 +4469,6 @@ var init_tokens = __esmMin((() => {
4377
4469
  init_resolver$2();
4378
4470
  }));
4379
4471
  //#endregion
4380
- //#region ../theme-core/src/surfaces/foregroundInteraction.ts
4381
- var init_foregroundInteraction = __esmMin((() => {
4382
- init_tokens();
4383
- }));
4384
- //#endregion
4385
4472
  //#region ../theme-core/src/palette/utils/opaqueSurfaceColor.ts
4386
4473
  /** Resolve an opaque colour, compositing alpha against an explicit underlay. */
4387
4474
  function resolveOpaqueSurfaceHex(reference, palette, underlayReference) {
@@ -4449,6 +4536,75 @@ var init_opaqueSurfaceColor = __esmMin((() => {
4449
4536
  init_colorConversion();
4450
4537
  }));
4451
4538
  //#endregion
4539
+ //#region ../theme-core/src/surfaces/foregroundInteraction.ts
4540
+ /**
4541
+ * Derive the hover foreground that belongs with a resolved resting foreground.
4542
+ *
4543
+ * A resting foreground is chosen to be legible against a known surface. A hover
4544
+ * state derived from it stays within a bounded distance of that colour, so it
4545
+ * inherits most of the resting colour's contrast margin instead of asserting
4546
+ * an unrelated brand colour that no one checked against the surface.
4547
+ *
4548
+ * That bounded-distance property is what lets this be used on a transparent
4549
+ * overlay header, where the backdrop is only partly knowable: the scrolled
4550
+ * state composites a 60% glass tint over arbitrary page content, so no
4551
+ * compile-time contrast proof is available there. Staying near a colour that
4552
+ * is already trusted in both states is a weaker claim than a contrast proof,
4553
+ * and it is one this function can actually keep.
4554
+ *
4555
+ * Returns `null` when the resting token is not a plain palette token — an
4556
+ * already-faded or raw value has no well-defined softening, and the caller
4557
+ * should leave hover alone rather than guess.
4558
+ */
4559
+ function deriveForegroundHoverToken(restingToken) {
4560
+ const parts = parseColorTokenParts(restingToken);
4561
+ if (parts.kind !== "token") return null;
4562
+ if (parts.opacityPercent !== null) return null;
4563
+ return parseThemeColorToken(`${parts.token}/85`);
4564
+ }
4565
+ /**
4566
+ * Prefer an authored hover that survives every measured backdrop, then a
4567
+ * checked softening of the resting colour. A null backdrop set represents a
4568
+ * trusted treatment: only an explicit authored hover may change the colour.
4569
+ * When neither option works, retain the resting colour and underline it.
4570
+ */
4571
+ function planForegroundHover(input) {
4572
+ const { restingToken, candidate, palette, backdrops } = input;
4573
+ if (candidate && candidate !== restingToken) {
4574
+ if (backdrops === null || survivesEveryBackdrop(candidate, palette, backdrops)) return {
4575
+ kind: "candidate",
4576
+ token: candidate,
4577
+ decoration: "initial"
4578
+ };
4579
+ }
4580
+ const softened = deriveForegroundHoverToken(restingToken);
4581
+ if (softened && backdrops && survivesEveryBackdrop(softened, palette, backdrops)) return {
4582
+ kind: "softened",
4583
+ token: softened,
4584
+ decoration: "initial"
4585
+ };
4586
+ return {
4587
+ kind: "resting",
4588
+ token: restingToken,
4589
+ decoration: "underline"
4590
+ };
4591
+ }
4592
+ function survivesEveryBackdrop(token, palette, backdrops) {
4593
+ return backdrops.length > 0 && backdrops.every((backdrop) => {
4594
+ const foreground = resolveOpaqueSurfaceHex(token, palette, backdrop);
4595
+ return foreground !== null && contrastRatio(foreground, backdrop) >= 4.5;
4596
+ });
4597
+ }
4598
+ var init_foregroundInteraction = __esmMin((() => {
4599
+ init_contrast();
4600
+ init_colorTokenParts();
4601
+ init_tokens();
4602
+ init_opaqueSurfaceColor();
4603
+ }));
4604
+ //#endregion
4605
+ //#region ../theme-core/src/surfaces/foregroundRoles.ts
4606
+ var init_foregroundRoles = __esmMin((() => {}));
4607
+ //#endregion
4452
4608
  //#region ../theme-core/src/surfaces/resolveSurfaceForeground.ts
4453
4609
  /**
4454
4610
  * Resolve the complete foreground contract for an effective page/section or
@@ -4474,12 +4630,16 @@ function resolveSurfaceForeground(background, palette, candidates = {}, options
4474
4630
  }
4475
4631
  function foregroundCandidates(background, overrides) {
4476
4632
  return {
4477
- text: overrides.text ?? background?.textColor ?? null,
4478
- heading: overrides.heading ?? background?.headingColor ?? null,
4479
- link: overrides.link ?? background?.linkColor ?? null,
4480
- supporting: overrides.supporting ?? background?.supportingColor ?? null
4633
+ text: candidateOrBackground(overrides.text, background?.textColor),
4634
+ heading: candidateOrBackground(overrides.heading, background?.headingColor),
4635
+ link: candidateOrBackground(overrides.link, background?.linkColor),
4636
+ linkHover: candidateOrBackground(overrides.linkHover),
4637
+ supporting: candidateOrBackground(overrides.supporting, background?.supportingColor)
4481
4638
  };
4482
4639
  }
4640
+ function candidateOrBackground(candidate, backgroundValue) {
4641
+ return candidate ?? backgroundValue ?? null;
4642
+ }
4483
4643
  function resolveDeterministicForeground(backgroundReference, candidates, palette, compositeBase) {
4484
4644
  const backgroundHex = resolveOpaqueSurfaceHex(backgroundReference, palette, compositeBase);
4485
4645
  if (!backgroundHex) return resolveTrustedTreatmentForeground(candidates, palette);
@@ -4491,29 +4651,51 @@ function resolveDeterministicForeground(backgroundReference, candidates, palette
4491
4651
  ...FALLBACK_TEXT_TOKENS
4492
4652
  ], backgroundHex, palette, derivedOnToken ? [derivedOnToken] : []);
4493
4653
  if (!text) return { kind: "unknown" };
4494
- return {
4495
- kind: "known",
4496
- roles: {
4497
- text,
4498
- heading: safeTokenOr(candidates.heading, text, backgroundHex, palette),
4499
- link: safeTokenOr(candidates.link, text, backgroundHex, palette),
4500
- supporting: safeTokenOr(candidates.supporting, text, backgroundHex, palette)
4501
- }
4502
- };
4654
+ return knownForeground({
4655
+ text,
4656
+ heading: safeTokenOr(candidates.heading, text, backgroundHex, palette),
4657
+ link: safeTokenOr(candidates.link, text, backgroundHex, palette),
4658
+ supporting: safeTokenOr(candidates.supporting, text, backgroundHex, palette)
4659
+ }, {
4660
+ kind: "measured",
4661
+ backdropHex: backgroundHex
4662
+ }, candidates.linkHover, palette);
4503
4663
  }
4504
4664
  function resolveTrustedTreatmentForeground(candidates, palette) {
4505
4665
  const text = canonicalToken(candidates.text, palette);
4506
4666
  if (!text) return { kind: "unknown" };
4667
+ return knownForeground({
4668
+ text,
4669
+ heading: canonicalToken(candidates.heading, palette) ?? text,
4670
+ link: canonicalToken(candidates.link, palette) ?? text,
4671
+ supporting: canonicalToken(candidates.supporting, palette) ?? text
4672
+ }, { kind: "trusted-treatment" }, candidates.linkHover, palette);
4673
+ }
4674
+ function knownForeground(roles, provenance, hoverCandidate, palette) {
4675
+ const hover = planForegroundHover({
4676
+ restingToken: roles.link,
4677
+ candidate: canonicalHoverToken(hoverCandidate, palette),
4678
+ palette,
4679
+ backdrops: provenance.kind === "measured" ? [provenance.backdropHex] : null
4680
+ });
4507
4681
  return {
4508
4682
  kind: "known",
4683
+ provenance,
4509
4684
  roles: {
4510
- text,
4511
- heading: canonicalToken(candidates.heading, palette) ?? text,
4512
- link: canonicalToken(candidates.link, palette) ?? text,
4513
- supporting: canonicalToken(candidates.supporting, palette) ?? text
4514
- }
4685
+ ...roles,
4686
+ linkHover: hover.token
4687
+ },
4688
+ hoverDecoration: hover.decoration
4515
4689
  };
4516
4690
  }
4691
+ function canonicalHoverToken(reference, palette) {
4692
+ const token = parseThemeColorToken(reference);
4693
+ if (token) {
4694
+ const parts = parseColorTokenParts(token);
4695
+ if (parts.kind === "token" && resolveConcreteColorHex(parts.token, palette)) return token;
4696
+ }
4697
+ return canonicalToken(reference, palette);
4698
+ }
4517
4699
  function safeTokenOr(candidate, fallback, backgroundHex, palette) {
4518
4700
  return firstSafeToken([candidate], backgroundHex, palette) ?? fallback;
4519
4701
  }
@@ -4561,6 +4743,7 @@ var init_resolveSurfaceForeground = __esmMin((() => {
4561
4743
  init_opaqueSurfaceColor();
4562
4744
  init_colorTokenParts();
4563
4745
  init_themeColorTokens();
4746
+ init_foregroundInteraction();
4564
4747
  FALLBACK_TEXT_TOKENS = [
4565
4748
  "text",
4566
4749
  "primaryForeground",
@@ -7606,16 +7789,70 @@ var init_baseSchema = __esmMin((() => {
7606
7789
  });
7607
7790
  }));
7608
7791
  //#endregion
7792
+ //#region ../theme-core/src/navigation/effectPolicy.ts
7793
+ function navEffectPolicy(effectId) {
7794
+ return policiesById[effectId] ?? null;
7795
+ }
7796
+ var NAV_EFFECT_POLICIES, policiesById;
7797
+ var init_effectPolicy = __esmMin((() => {
7798
+ NAV_EFFECT_POLICIES = {
7799
+ "darken-background": "other",
7800
+ "lighten-background": "other",
7801
+ "fade-background": "other",
7802
+ "opacity-reduce": "other",
7803
+ "animated-gradient": "other",
7804
+ "background-on-hover": "paired-hover",
7805
+ "background-on-hover-alpha": "paired-hover",
7806
+ "border-glow": "other",
7807
+ "drop-shadow": "other",
7808
+ "inner-shadow": "other",
7809
+ "neumorphic-shadow": "other",
7810
+ "outer-glow": "other",
7811
+ "retro-3d-shadow": "other",
7812
+ "scale-up": "other",
7813
+ "scale-down": "other",
7814
+ lift: "other",
7815
+ "press-down": "other",
7816
+ pop: "other",
7817
+ "aurora-glow": "other",
7818
+ "cosmic-stardust": "other",
7819
+ "gradient-border-fill": "other",
7820
+ "animated-gradient-border-fill": "other",
7821
+ "border-bottom-grow": "other",
7822
+ "gradient-text": "other",
7823
+ "text-color-change": "text-colour",
7824
+ "border-color-change": "other",
7825
+ "sketchy-border": "other",
7826
+ "pulse-animation": "other",
7827
+ "nav-underline": "underline",
7828
+ "nav-frosted-base": "other",
7829
+ "nav-frosted-hover": "other",
7830
+ "nav-frosted-active": "other"
7831
+ };
7832
+ policiesById = NAV_EFFECT_POLICIES;
7833
+ }));
7834
+ //#endregion
7609
7835
  //#region ../theme-core/src/navigation/types.ts
7610
7836
  /**
7611
7837
  * Navigation Link Style Types
7612
7838
  *
7613
7839
  * Schema and types for composable nav link styling used by header and footer.
7614
7840
  */
7841
+ function navLinkHoverColorCandidate(style) {
7842
+ const effect = style?.effects?.hover?.find((item) => navEffectPolicy(item.effectId) === "text-colour");
7843
+ return parseThemeColorToken(effect?.options?.hoverColorToken ?? style?.hoverColorToken);
7844
+ }
7845
+ function navLinkOwnsHoverForeground(style) {
7846
+ return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "paired-hover") ?? false;
7847
+ }
7848
+ function navLinkOwnsUnderline(style) {
7849
+ return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "underline") ?? false;
7850
+ }
7615
7851
  var navLinkPaddingSchema, navLinkPaddingXSchema, navLinkBorderRadiusSchema, navLinkTextSizeSchema, navLinkLetterSpacingSchema, navLinkContrastTreatmentSchema, navLinkStyleSchema;
7616
7852
  var init_types$8 = __esmMin((() => {
7617
7853
  init_baseSchema();
7618
7854
  init_themeColorTokens();
7855
+ init_effectPolicy();
7619
7856
  navLinkPaddingSchema = z.enum([
7620
7857
  "none",
7621
7858
  "compact",
@@ -9440,7 +9677,6 @@ var init_schemas = __esmMin((() => {
9440
9677
  description: z.string().nullable(),
9441
9678
  content: z.object({ body: RichTextDocSchema.nullable().optional() }).optional(),
9442
9679
  presentation: z.object({
9443
- cardTitleOverride: z.string().nullable().optional(),
9444
9680
  summary: z.string().nullable().optional(),
9445
9681
  image: mediaSchema.nullable().optional()
9446
9682
  }).optional(),
@@ -9473,6 +9709,7 @@ var init_schemas = __esmMin((() => {
9473
9709
  "archived"
9474
9710
  ]).optional(),
9475
9711
  timeZone: z.string(),
9712
+ siteTimeZone: z.string().optional(),
9476
9713
  pricing: publicEventPricingSchema,
9477
9714
  paymentTerms: blockBookingPaymentTermsSchema,
9478
9715
  cancellationPolicy: z.object({ refunds: z.object({
@@ -9757,6 +9994,71 @@ function defineEndpointDefinitions(definitions) {
9757
9994
  }
9758
9995
  var init_defineEndpointDefinitions = __esmMin((() => {}));
9759
9996
  //#endregion
9997
+ //#region ../api/src/apiEndpointTypes.ts
9998
+ function allowedDemoMutationPolicy() {
9999
+ return {
10000
+ classification: "allowed",
10001
+ publicMessage: ""
10002
+ };
10003
+ }
10004
+ function blockedDemoMutationPolicy(classification, publicMessage) {
10005
+ if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
10006
+ return {
10007
+ classification,
10008
+ publicMessage
10009
+ };
10010
+ }
10011
+ var init_apiEndpointTypes = __esmMin((() => {})), DEMO_MUTATION_BLOCKED_HIDDEN, DEMO_MUTATION_BLOCKED_DISABLED, DEMO_MUTATION_ALLOWED;
10012
+ var init_demoMutationPolicies = __esmMin((() => {
10013
+ init_apiEndpointTypes();
10014
+ DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
10015
+ DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
10016
+ blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
10017
+ DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
10018
+ }));
10019
+ //#endregion
10020
+ //#region ../api/src/siteLifecycleEndpoints.ts
10021
+ var SITE_LIFECYCLE_ENDPOINT_DEFINITIONS;
10022
+ var init_siteLifecycleEndpoints = __esmMin((() => {
10023
+ init_defineEndpointDefinitions();
10024
+ init_demoMutationPolicies();
10025
+ SITE_LIFECYCLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10026
+ createSite: {
10027
+ path: "/sites/manage",
10028
+ method: "POST",
10029
+ tags: ["site"],
10030
+ auth: "user",
10031
+ responseKind: "json",
10032
+ errors: []
10033
+ },
10034
+ createSiteManual: {
10035
+ path: "/sites/manual",
10036
+ method: "POST",
10037
+ tags: ["site"],
10038
+ auth: "user",
10039
+ responseKind: "json",
10040
+ errors: []
10041
+ },
10042
+ updateSite: {
10043
+ path: "/sites/manage",
10044
+ method: "PUT",
10045
+ tags: ["site"],
10046
+ auth: "user",
10047
+ responseKind: "json",
10048
+ errors: []
10049
+ },
10050
+ deleteSite: {
10051
+ path: "/sites/{siteId}",
10052
+ method: "DELETE",
10053
+ tags: ["site", "site-{siteId}"],
10054
+ auth: "user",
10055
+ responseKind: "json",
10056
+ errors: [],
10057
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
10058
+ }
10059
+ });
10060
+ }));
10061
+ //#endregion
9760
10062
  //#region ../api/src/publicNewsletterEndpointDefinitions.ts
9761
10063
  var PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS;
9762
10064
  var init_publicNewsletterEndpointDefinitions = __esmMin((() => {
@@ -9821,29 +10123,6 @@ var init_publicNewsletterEndpointDefinitions = __esmMin((() => {
9821
10123
  });
9822
10124
  }));
9823
10125
  //#endregion
9824
- //#region ../api/src/apiEndpointTypes.ts
9825
- function allowedDemoMutationPolicy() {
9826
- return {
9827
- classification: "allowed",
9828
- publicMessage: ""
9829
- };
9830
- }
9831
- function blockedDemoMutationPolicy(classification, publicMessage) {
9832
- if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
9833
- return {
9834
- classification,
9835
- publicMessage
9836
- };
9837
- }
9838
- var init_apiEndpointTypes = __esmMin((() => {})), DEMO_MUTATION_BLOCKED_HIDDEN, DEMO_MUTATION_BLOCKED_DISABLED, DEMO_MUTATION_ALLOWED;
9839
- var init_demoMutationPolicies = __esmMin((() => {
9840
- init_apiEndpointTypes();
9841
- DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
9842
- DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
9843
- blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
9844
- DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
9845
- }));
9846
- //#endregion
9847
10126
  //#region ../api/src/cache-tags.ts
9848
10127
  var TAG_TEMPLATES;
9849
10128
  var init_cache_tags = __esmMin((() => {
@@ -10899,6 +11178,20 @@ var init_newsletterEndpointDefinitions = __esmMin((() => {
10899
11178
  responseKind: "json",
10900
11179
  errors: ["auth:forbidden", "server:internal_error"]
10901
11180
  },
11181
+ setMailingListBookingOptIn: {
11182
+ path: "/sites/{siteId}/mailing-list/setup/booking-opt-in",
11183
+ method: "PUT",
11184
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11185
+ auth: "user",
11186
+ responseKind: "json",
11187
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
11188
+ errors: [
11189
+ "auth:forbidden",
11190
+ "validation:invalid_input",
11191
+ "resource:conflict",
11192
+ "server:internal_error"
11193
+ ]
11194
+ },
10902
11195
  getMailingListAuthoringContext: {
10903
11196
  path: "/sites/{siteId}/mailing-list/authoring-context",
10904
11197
  method: "GET",
@@ -11312,6 +11605,7 @@ var init_sdkEventEndpointDefinitions = __esmMin((() => {
11312
11605
  responseKind: "json",
11313
11606
  errors: [
11314
11607
  "resource:not_found",
11608
+ "validation:invalid_input",
11315
11609
  "resource:conflict",
11316
11610
  "server:internal_error"
11317
11611
  ]
@@ -11773,28 +12067,6 @@ var init_eventManagementEndpointDefinitions = __esmMin((() => {
11773
12067
  "resource:conflict",
11774
12068
  "server:internal_error"
11775
12069
  ]
11776
- },
11777
- /**
11778
- * The Content tab's one write: the short introduction, image and
11779
- * description of an event's page, published without its layout.
11780
- */
11781
- saveEventPageWords: {
11782
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
11783
- method: "PUT",
11784
- tags: [
11785
- TAG_TEMPLATES.siteCollection,
11786
- TAG_TEMPLATES.siteRoutableContent,
11787
- TAG_TEMPLATES.pageSurfaceById
11788
- ],
11789
- auth: "user",
11790
- responseKind: "json",
11791
- errors: [
11792
- "auth:forbidden",
11793
- "validation:invalid_input",
11794
- "resource:not_found",
11795
- "resource:conflict",
11796
- "server:internal_error"
11797
- ]
11798
12070
  }
11799
12071
  });
11800
12072
  }));
@@ -12229,6 +12501,15 @@ var init_billingEndpointDefinitions = __esmMin((() => {
12229
12501
  auth: "user",
12230
12502
  responseKind: "json"
12231
12503
  },
12504
+ /** Continue on Free from the onboarding card page; only the attempt's owner. */
12505
+ continueOnboardingOnFree: {
12506
+ path: "/onboarding/attempts/{attemptToken}/plan/free",
12507
+ method: "POST",
12508
+ tags: ["billing"],
12509
+ auth: "user",
12510
+ errors: [],
12511
+ responseKind: "json"
12512
+ },
12232
12513
  createBillingPortalSession: {
12233
12514
  path: "/billing/portal/session",
12234
12515
  method: "POST",
@@ -12237,6 +12518,216 @@ var init_billingEndpointDefinitions = __esmMin((() => {
12237
12518
  responseKind: "json"
12238
12519
  }
12239
12520
  });
12521
+ }));
12522
+ //#endregion
12523
+ //#region ../api/src/editLeaseEndpoints.ts
12524
+ var path, lifecycleErrors, EDIT_LEASE_ENDPOINT_DEFINITIONS;
12525
+ var init_editLeaseEndpoints = __esmMin((() => {
12526
+ path = "/sites/{siteId}/edit-leases/{nodeType}/{nodeId}";
12527
+ lifecycleErrors = [
12528
+ "auth:lease_required",
12529
+ "auth:forbidden",
12530
+ "resource:not_found",
12531
+ "validation:invalid_input",
12532
+ "server:internal_error"
12533
+ ];
12534
+ EDIT_LEASE_ENDPOINT_DEFINITIONS = {
12535
+ readEditLease: {
12536
+ path,
12537
+ method: "GET",
12538
+ editLease: "lifecycle",
12539
+ errors: lifecycleErrors,
12540
+ auth: "user",
12541
+ responseKind: "json"
12542
+ },
12543
+ acquireEditLease: {
12544
+ path,
12545
+ method: "POST",
12546
+ editLease: "lifecycle",
12547
+ errors: lifecycleErrors,
12548
+ auth: "user",
12549
+ responseKind: "json"
12550
+ },
12551
+ takeOverEditLease: {
12552
+ path,
12553
+ method: "PUT",
12554
+ editLease: "lifecycle",
12555
+ errors: lifecycleErrors,
12556
+ auth: "user",
12557
+ responseKind: "json"
12558
+ },
12559
+ heartbeatEditLease: {
12560
+ path,
12561
+ method: "PATCH",
12562
+ editLease: "lifecycle",
12563
+ errors: [...lifecycleErrors, "auth:lease_lost"],
12564
+ auth: "user",
12565
+ responseKind: "json"
12566
+ },
12567
+ releaseEditLease: {
12568
+ path,
12569
+ method: "DELETE",
12570
+ editLease: "lifecycle",
12571
+ errors: lifecycleErrors,
12572
+ auth: "user",
12573
+ responseKind: "json"
12574
+ }
12575
+ };
12576
+ }));
12577
+ //#endregion
12578
+ //#region ../api/src/pageSurfaceEditorEndpoints.ts
12579
+ var surfaceTags, PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS;
12580
+ var init_pageSurfaceEditorEndpoints = __esmMin((() => {
12581
+ init_cache_tags();
12582
+ surfaceTags = [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById];
12583
+ PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
12584
+ getPageSurfaceEditorDocument: {
12585
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
12586
+ method: "GET",
12587
+ errors: [
12588
+ "auth:forbidden",
12589
+ "validation:invalid_input",
12590
+ "resource:not_found",
12591
+ "resource:conflict",
12592
+ "server:internal_error"
12593
+ ],
12594
+ tags: surfaceTags,
12595
+ auth: "user",
12596
+ responseKind: "json"
12597
+ },
12598
+ updatePageSurfaceDraftContent: {
12599
+ editLease: "managed",
12600
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
12601
+ method: "PUT",
12602
+ errors: [
12603
+ "validation:invalid_input",
12604
+ "resource:not_found",
12605
+ "resource:conflict",
12606
+ "server:internal_error"
12607
+ ],
12608
+ tags: surfaceTags,
12609
+ auth: "user",
12610
+ responseKind: "json"
12611
+ },
12612
+ discardPageSurfaceDraftContent: {
12613
+ editLease: "managed",
12614
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content/draft",
12615
+ method: "DELETE",
12616
+ errors: [
12617
+ "validation:invalid_input",
12618
+ "resource:not_found",
12619
+ "resource:conflict",
12620
+ "server:internal_error"
12621
+ ],
12622
+ tags: surfaceTags,
12623
+ auth: "user",
12624
+ responseKind: "json"
12625
+ },
12626
+ updatePageSurfaceRouteMetadata: {
12627
+ editLease: "managed",
12628
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/metadata",
12629
+ method: "PATCH",
12630
+ errors: [
12631
+ "validation:invalid_input",
12632
+ "resource:not_found",
12633
+ "resource:conflict",
12634
+ "server:internal_error"
12635
+ ],
12636
+ tags: [
12637
+ TAG_TEMPLATES.siteCollection,
12638
+ TAG_TEMPLATES.siteRoutableContent,
12639
+ TAG_TEMPLATES.pageSurfaceById
12640
+ ],
12641
+ auth: "user",
12642
+ responseKind: "json"
12643
+ },
12644
+ publishPageSurface: {
12645
+ editLease: "managed",
12646
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/publication",
12647
+ method: "POST",
12648
+ errors: [
12649
+ "auth:forbidden",
12650
+ "validation:invalid_input",
12651
+ "resource:not_found",
12652
+ "resource:conflict",
12653
+ "server:internal_error"
12654
+ ],
12655
+ tags: [
12656
+ TAG_TEMPLATES.siteCollection,
12657
+ TAG_TEMPLATES.siteRoutableContent,
12658
+ TAG_TEMPLATES.pageSurfaceById
12659
+ ],
12660
+ auth: "user",
12661
+ responseKind: "json"
12662
+ },
12663
+ saveEventContentTab: {
12664
+ editLease: "managed",
12665
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/event-content",
12666
+ method: "PUT",
12667
+ errors: [
12668
+ "auth:forbidden",
12669
+ "validation:invalid_input",
12670
+ "resource:not_found",
12671
+ "resource:conflict",
12672
+ "server:internal_error"
12673
+ ],
12674
+ tags: [
12675
+ TAG_TEMPLATES.siteCollection,
12676
+ TAG_TEMPLATES.siteRoutableContent,
12677
+ TAG_TEMPLATES.pageSurfaceById
12678
+ ],
12679
+ auth: "user",
12680
+ responseKind: "json"
12681
+ }
12682
+ };
12683
+ }));
12684
+ //#endregion
12685
+ //#region ../api/src/bookingPeopleEndpointDefinitions.ts
12686
+ var BOOKING_PEOPLE_ENDPOINT_DEFINITIONS;
12687
+ var init_bookingPeopleEndpointDefinitions = __esmMin((() => {
12688
+ init_defineEndpointDefinitions();
12689
+ BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
12690
+ listPeople: {
12691
+ path: "/sites/{siteId}/bookings/people",
12692
+ method: "GET",
12693
+ tags: ["site-{siteId}", "customers-{siteId}"],
12694
+ auth: "user",
12695
+ responseKind: "json",
12696
+ errors: ["server:internal_error"]
12697
+ },
12698
+ exportPeopleCsv: {
12699
+ path: "/sites/{siteId}/bookings/people/export.csv",
12700
+ method: "GET",
12701
+ tags: ["site-{siteId}", "customers-{siteId}"],
12702
+ auth: "user",
12703
+ errors: [],
12704
+ responseKind: "blob"
12705
+ },
12706
+ checkPersonDeletion: {
12707
+ path: "/sites/{siteId}/bookings/people/{personId}/deletion-check",
12708
+ method: "GET",
12709
+ tags: ["site-{siteId}", "customers-{siteId}"],
12710
+ auth: "user",
12711
+ responseKind: "json",
12712
+ errors: [
12713
+ "auth:forbidden",
12714
+ "resource:not_found",
12715
+ "server:internal_error"
12716
+ ]
12717
+ },
12718
+ deletePerson: {
12719
+ path: "/sites/{siteId}/bookings/people/{personId}",
12720
+ method: "DELETE",
12721
+ tags: ["site-{siteId}", "customers-{siteId}"],
12722
+ auth: "user",
12723
+ responseKind: "json",
12724
+ errors: [
12725
+ "auth:forbidden",
12726
+ "resource:not_found",
12727
+ "server:internal_error"
12728
+ ]
12729
+ }
12730
+ });
12240
12731
  })), CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS, CLIENT_ERROR_REPORT_LIMITS, clientErrorEventSchema;
12241
12732
  var init_clientErrorReporting = __esmMin((() => {
12242
12733
  init_defineEndpointDefinitions();
@@ -12275,6 +12766,7 @@ var init_clientErrorReporting = __esmMin((() => {
12275
12766
  }).strict();
12276
12767
  }));
12277
12768
  var init_endpoints = __esmMin((() => {
12769
+ init_siteLifecycleEndpoints();
12278
12770
  init_publicNewsletterEndpointDefinitions();
12279
12771
  init_demoMutationPolicies();
12280
12772
  init_cache_tags();
@@ -12297,8 +12789,12 @@ var init_endpoints = __esmMin((() => {
12297
12789
  init_publicReadEndpointDefinitions();
12298
12790
  init_publicOnboardingAttemptEndpointDefinitions();
12299
12791
  init_billingEndpointDefinitions();
12792
+ init_editLeaseEndpoints();
12793
+ init_pageSurfaceEditorEndpoints();
12794
+ init_bookingPeopleEndpointDefinitions();
12300
12795
  init_clientErrorReporting();
12301
12796
  ({
12797
+ ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
12302
12798
  ...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
12303
12799
  ...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
12304
12800
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
@@ -12307,12 +12803,14 @@ var init_endpoints = __esmMin((() => {
12307
12803
  ...GIFTING_ENDPOINT_DEFINITIONS,
12308
12804
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
12309
12805
  ...BILLING_ENDPOINT_DEFINITIONS,
12806
+ ...EDIT_LEASE_ENDPOINT_DEFINITIONS,
12807
+ ...PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS,
12310
12808
  ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
12311
12809
  }), 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, {
12312
12810
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
12313
12811
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
12314
12812
  ...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
12315
- }, 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 }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
12813
+ }, 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 };
12316
12814
  }));
12317
12815
  var init_preview_auth = __esmMin((() => {
12318
12816
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
@@ -12331,6 +12829,8 @@ var init_envelope = __esmMin((() => {
12331
12829
  "auth:sudo_required",
12332
12830
  "auth:insufficient_permissions",
12333
12831
  "auth:impersonation_restricted",
12832
+ "auth:lease_required",
12833
+ "auth:lease_lost",
12334
12834
  "validation:invalid_input",
12335
12835
  "validation:missing_field",
12336
12836
  "validation:invalid_format",
@@ -12600,16 +13100,9 @@ var init_contracts$1 = __esmMin((() => {
12600
13100
  }));
12601
13101
  //#endregion
12602
13102
  //#region ../blocks/src/pageRenderAdmission.ts
12603
- /** Pair a published version with the content it authorises at the render boundary. */
12604
- function readPublishedBlockPlacement(id, content) {
12605
- if (id == null && content == null) return null;
12606
- if (id == null || content == null) throw new Error("Published block placement requires both an ID and content");
12607
- return {
12608
- id,
12609
- content
12610
- };
12611
- }
12612
- var init_pageRenderAdmission = __esmMin((() => {}));
13103
+ var init_pageRenderAdmission = __esmMin((() => {
13104
+ init_src$4();
13105
+ }));
12613
13106
  //#endregion
12614
13107
  //#region ../blocks/src/subroutes/index.ts
12615
13108
  var init_subroutes = __esmMin((() => {})), BlockKind, blockSchema, pagePath;
@@ -20020,6 +20513,15 @@ var init_resolver$1 = __esmMin((() => {
20020
20513
  blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
20021
20514
  }));
20022
20515
  //#endregion
20516
+ //#region ../theme-core/src/header/rootPaint.ts
20517
+ /** The nav container takes precedence when a floating header also has one. */
20518
+ function headerRootPaint(header) {
20519
+ const navContainerType = header?.navContainer?.type ?? "none";
20520
+ if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
20521
+ return header?.variant === "floating" ? "overlay" : "own-surface";
20522
+ }
20523
+ var init_rootPaint = __esmMin((() => {}));
20524
+ //#endregion
20023
20525
  //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
20024
20526
  function parseSiteChromeBackgroundColorToken(value) {
20025
20527
  const token = parseBackgroundAppearanceColorToken(value);
@@ -20296,10 +20798,276 @@ var init_headerPreferencesPersistence = __esmMin((() => {
20296
20798
  }).strict();
20297
20799
  }));
20298
20800
  //#endregion
20801
+ //#region ../theme-core/src/navigation/presets.ts
20802
+ /**
20803
+ * Get a nav link style preset by ID
20804
+ */
20805
+ function getNavLinkPreset(presetId) {
20806
+ return NAV_LINK_PRESETS[presetId];
20807
+ }
20808
+ var NAV_LINK_PRESETS;
20809
+ var init_presets$1 = __esmMin((() => {
20810
+ NAV_LINK_PRESETS = {
20811
+ /**
20812
+ * Minimal - subtle color change on hover
20813
+ */
20814
+ minimal: {
20815
+ name: "Minimal",
20816
+ typography: "body",
20817
+ fontWeight: "medium",
20818
+ textTransform: "none",
20819
+ italic: false,
20820
+ colorToken: "text",
20821
+ hoverColorToken: "primary",
20822
+ padding: "none",
20823
+ borderRadius: "none",
20824
+ effects: { hover: [{
20825
+ effectId: "text-color-change",
20826
+ options: { hoverColorToken: "primary" }
20827
+ }] }
20828
+ },
20829
+ /**
20830
+ * Underline - static underline appears on hover
20831
+ */
20832
+ underline: {
20833
+ name: "Underline",
20834
+ typography: "body",
20835
+ fontWeight: "medium",
20836
+ textTransform: "none",
20837
+ italic: false,
20838
+ colorToken: "text",
20839
+ padding: "none",
20840
+ borderRadius: "none",
20841
+ effects: { hover: [{
20842
+ effectId: "nav-underline",
20843
+ options: { style: "static" }
20844
+ }] }
20845
+ },
20846
+ /**
20847
+ * Underline Grow - animated underline grows from center on hover
20848
+ */
20849
+ "underline-grow": {
20850
+ name: "Underline Grow",
20851
+ typography: "body",
20852
+ fontWeight: "medium",
20853
+ textTransform: "none",
20854
+ italic: false,
20855
+ colorToken: "text",
20856
+ padding: "none",
20857
+ borderRadius: "none",
20858
+ effects: { hover: [{
20859
+ effectId: "nav-underline",
20860
+ options: { style: "grow" }
20861
+ }] }
20862
+ },
20863
+ /**
20864
+ * Capsule - pill-shaped background on hover
20865
+ */
20866
+ capsule: {
20867
+ name: "Capsule",
20868
+ typography: "body",
20869
+ fontWeight: "medium",
20870
+ textTransform: "none",
20871
+ italic: false,
20872
+ colorToken: "text",
20873
+ padding: "compact",
20874
+ borderRadius: "full",
20875
+ effects: {
20876
+ hover: [{
20877
+ effectId: "background-on-hover-alpha",
20878
+ options: {
20879
+ colorToken: "primary",
20880
+ opacity: 10
20881
+ }
20882
+ }],
20883
+ active: [{
20884
+ effectId: "background-on-hover-alpha",
20885
+ options: {
20886
+ colorToken: "primary",
20887
+ opacity: 15
20888
+ }
20889
+ }]
20890
+ }
20891
+ },
20892
+ /**
20893
+ * Solid - solid background color on hover
20894
+ */
20895
+ solid: {
20896
+ name: "Solid",
20897
+ typography: "body",
20898
+ fontWeight: "medium",
20899
+ textTransform: "none",
20900
+ italic: false,
20901
+ colorToken: "text",
20902
+ padding: "compact",
20903
+ borderRadius: "none",
20904
+ effects: {
20905
+ hover: [{
20906
+ effectId: "background-on-hover",
20907
+ options: {
20908
+ colorToken: "primary",
20909
+ textColorToken: "primaryForeground"
20910
+ }
20911
+ }],
20912
+ active: [{
20913
+ effectId: "background-on-hover",
20914
+ options: {
20915
+ colorToken: "primary",
20916
+ textColorToken: "primaryForeground"
20917
+ }
20918
+ }]
20919
+ }
20920
+ },
20921
+ /**
20922
+ * Scale - gentle scale-up on hover
20923
+ */
20924
+ scale: {
20925
+ name: "Scale",
20926
+ typography: "body",
20927
+ fontWeight: "medium",
20928
+ textTransform: "none",
20929
+ italic: false,
20930
+ colorToken: "text",
20931
+ padding: "none",
20932
+ borderRadius: "none",
20933
+ effects: { hover: [{
20934
+ effectId: "scale-up",
20935
+ options: { scale: 1.05 }
20936
+ }] }
20937
+ },
20938
+ /**
20939
+ * Frosted - semi-transparent glass-like background
20940
+ */
20941
+ frosted: {
20942
+ name: "Frosted",
20943
+ typography: "body",
20944
+ fontWeight: "medium",
20945
+ textTransform: "none",
20946
+ italic: false,
20947
+ colorToken: "text",
20948
+ padding: "compact",
20949
+ borderRadius: "md",
20950
+ effects: {
20951
+ base: [{ effectId: "nav-frosted-base" }],
20952
+ hover: [{ effectId: "nav-frosted-hover" }],
20953
+ active: [{ effectId: "nav-frosted-active" }]
20954
+ }
20955
+ }
20956
+ };
20957
+ Object.keys(NAV_LINK_PRESETS);
20958
+ }));
20959
+ //#endregion
20960
+ //#region ../theme-core/src/header/legacyNavLinkStyle.ts
20961
+ function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
20962
+ const navStyle = header.navStyle ?? "minimal";
20963
+ const basePreset = getNavLinkPreset(navStyle);
20964
+ if (!basePreset) return null;
20965
+ const style = {
20966
+ ...basePreset,
20967
+ fontWeight: header.navWeight ?? basePreset.fontWeight,
20968
+ colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
20969
+ ...contrastTreatment ? { contrastTreatment } : {},
20970
+ ...navTextSize ? { textSize: navTextSize } : {}
20971
+ };
20972
+ if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
20973
+ applyLegacyGlassTreatment(style, header, navStyle);
20974
+ return style;
20975
+ }
20976
+ function applyLegacyGlassTreatment(style, header, navStyle) {
20977
+ if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
20978
+ style.borderRadius = "full";
20979
+ style.effects = {
20980
+ ...style.effects,
20981
+ hover: glassStateEffects(10),
20982
+ active: glassStateEffects(18)
20983
+ };
20984
+ }
20985
+ function glassStateEffects(opacity) {
20986
+ return [{
20987
+ effectId: "background-on-hover-alpha",
20988
+ options: {
20989
+ colorToken: "neutral-50",
20990
+ opacity
20991
+ }
20992
+ }, {
20993
+ effectId: "text-color-change",
20994
+ options: { hoverColorToken: "neutral-50" }
20995
+ }];
20996
+ }
20997
+ var init_legacyNavLinkStyle = __esmMin((() => {
20998
+ init_presets$1();
20999
+ }));
21000
+ //#endregion
21001
+ //#region ../theme-core/src/header/openingForegroundProjection.ts
21002
+ function readOpeningForegroundProjection(header) {
21003
+ return header?.__runtimeOpeningForeground ?? null;
21004
+ }
21005
+ var init_openingForegroundProjection = __esmMin((() => {}));
21006
+ //#endregion
21007
+ //#region ../theme-core/src/header/effectiveNavLinkStyle.ts
21008
+ function effectiveHeaderNavLinkStyle(header, contrastTreatment = null, navTextSize = null) {
21009
+ if (!header) return null;
21010
+ if (!header.navLinkStyle) return buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
21011
+ return {
21012
+ ...header.navLinkStyle,
21013
+ ...contrastTreatment ? { contrastTreatment } : {},
21014
+ ...navTextSize ? { textSize: navTextSize } : {}
21015
+ };
21016
+ }
21017
+ function headerForegroundCandidates(header) {
21018
+ if (!header) return {};
21019
+ const style = effectiveHeaderNavLinkStyle(header);
21020
+ return {
21021
+ text: header.textColor ?? header.background?.textColor,
21022
+ link: style?.colorToken ?? header.navColor ?? header.textColor,
21023
+ linkHover: navLinkHoverColorCandidate(style)
21024
+ };
21025
+ }
21026
+ function headerLeafTextColor(header) {
21027
+ if (!header) return "text";
21028
+ return header.textColor ?? header.navColor ?? header.background?.textColor ?? header.navLinkStyle?.colorToken ?? "text";
21029
+ }
21030
+ /** Transparent chrome must reset the whole contract on its own root. */
21031
+ function transparentHeaderForegroundInput(header, palette) {
21032
+ const projection = readOpeningForegroundProjection(header);
21033
+ if (projection?.kind === "known") return surfaceForegroundInputFromResolved(projection, rgbColorValue);
21034
+ return authoredTransparentHeaderForegroundInput(header, palette);
21035
+ }
21036
+ function authoredTransparentHeaderForegroundInput(header, palette) {
21037
+ const text = headerLeafTextColor(header);
21038
+ const style = effectiveHeaderNavLinkStyle(header);
21039
+ const link = style?.colorToken ?? text;
21040
+ const restingToken = parseThemeColorToken(link) ?? parseThemeColorToken("text");
21041
+ if (!restingToken) throw new Error("Built-in text colour token is invalid");
21042
+ const hover = planForegroundHover({
21043
+ restingToken,
21044
+ candidate: navLinkOwnsHoverForeground(style) ? null : navLinkHoverColorCandidate(style),
21045
+ palette,
21046
+ backdrops: null
21047
+ });
21048
+ return {
21049
+ text: rgbColorValue(text),
21050
+ link: rgbColorValue(link),
21051
+ linkHover: rgbColorValue(hover.token),
21052
+ hoverDecoration: navLinkOwnsUnderline(style) ? "initial" : hover.decoration
21053
+ };
21054
+ }
21055
+ var init_effectiveNavLinkStyle$1 = __esmMin((() => {
21056
+ init_types$8();
21057
+ init_legacyNavLinkStyle();
21058
+ init_openingForegroundProjection();
21059
+ init_surfaces();
21060
+ init_foregroundInteraction();
21061
+ init_tokens();
21062
+ init_colorStyles();
21063
+ }));
21064
+ //#endregion
20299
21065
  //#region ../theme-core/src/site-styles/headerOpeningForeground.ts
20300
21066
  var init_headerOpeningForeground = __esmMin((() => {
20301
21067
  init_foregroundInteraction();
20302
21068
  init_tokens();
21069
+ init_types$8();
21070
+ init_effectiveNavLinkStyle$1();
20303
21071
  }));
20304
21072
  //#endregion
20305
21073
  //#region ../theme-core/src/site-styles/effectivePageDesign.ts
@@ -20586,192 +21354,84 @@ var init_navDropdownSizing = __esmMin((() => {
20586
21354
  var init_surfaceRules = __esmMin((() => {
20587
21355
  init_shared$4();
20588
21356
  init_colorStyles();
20589
- })), NAV_LINK_PRESETS;
20590
- var init_presets$1 = __esmMin((() => {
20591
- NAV_LINK_PRESETS = {
20592
- /**
20593
- * Minimal - subtle color change on hover
20594
- */
20595
- minimal: {
20596
- name: "Minimal",
20597
- typography: "body",
20598
- fontWeight: "medium",
20599
- textTransform: "none",
20600
- italic: false,
20601
- colorToken: "text",
20602
- hoverColorToken: "primary",
20603
- padding: "none",
20604
- borderRadius: "none",
20605
- effects: { hover: [{
20606
- effectId: "text-color-change",
20607
- options: { hoverColorToken: "primary" }
20608
- }] }
20609
- },
20610
- /**
20611
- * Underline - static underline appears on hover
20612
- */
20613
- underline: {
20614
- name: "Underline",
20615
- typography: "body",
20616
- fontWeight: "medium",
20617
- textTransform: "none",
20618
- italic: false,
20619
- colorToken: "text",
20620
- padding: "none",
20621
- borderRadius: "none",
20622
- effects: { hover: [{
20623
- effectId: "nav-underline",
20624
- options: { style: "static" }
20625
- }] }
20626
- },
20627
- /**
20628
- * Underline Grow - animated underline grows from center on hover
20629
- */
20630
- "underline-grow": {
20631
- name: "Underline Grow",
20632
- typography: "body",
20633
- fontWeight: "medium",
20634
- textTransform: "none",
20635
- italic: false,
20636
- colorToken: "text",
20637
- padding: "none",
20638
- borderRadius: "none",
20639
- effects: { hover: [{
20640
- effectId: "nav-underline",
20641
- options: { style: "grow" }
20642
- }] }
20643
- },
20644
- /**
20645
- * Capsule - pill-shaped background on hover
20646
- */
20647
- capsule: {
20648
- name: "Capsule",
20649
- typography: "body",
20650
- fontWeight: "medium",
20651
- textTransform: "none",
20652
- italic: false,
20653
- colorToken: "text",
20654
- padding: "compact",
20655
- borderRadius: "full",
20656
- effects: {
20657
- hover: [{
20658
- effectId: "background-on-hover-alpha",
20659
- options: {
20660
- colorToken: "primary",
20661
- opacity: 10
20662
- }
20663
- }],
20664
- active: [{
20665
- effectId: "background-on-hover-alpha",
20666
- options: {
20667
- colorToken: "primary",
20668
- opacity: 15
20669
- }
20670
- }]
20671
- }
20672
- },
20673
- /**
20674
- * Solid - solid background color on hover
20675
- */
20676
- solid: {
20677
- name: "Solid",
20678
- typography: "body",
20679
- fontWeight: "medium",
20680
- textTransform: "none",
20681
- italic: false,
20682
- colorToken: "text",
20683
- padding: "compact",
20684
- borderRadius: "none",
20685
- effects: {
20686
- hover: [{
20687
- effectId: "background-on-hover",
20688
- options: {
20689
- colorToken: "primary",
20690
- textColorToken: "primaryForeground"
20691
- }
20692
- }],
20693
- active: [{
20694
- effectId: "background-on-hover",
20695
- options: {
20696
- colorToken: "primary",
20697
- textColorToken: "primaryForeground"
20698
- }
20699
- }]
20700
- }
20701
- },
20702
- /**
20703
- * Scale - gentle scale-up on hover
20704
- */
20705
- scale: {
20706
- name: "Scale",
20707
- typography: "body",
20708
- fontWeight: "medium",
20709
- textTransform: "none",
20710
- italic: false,
20711
- colorToken: "text",
20712
- padding: "none",
20713
- borderRadius: "none",
20714
- effects: { hover: [{
20715
- effectId: "scale-up",
20716
- options: { scale: 1.05 }
20717
- }] }
20718
- },
20719
- /**
20720
- * Frosted - semi-transparent glass-like background
20721
- */
20722
- frosted: {
20723
- name: "Frosted",
20724
- typography: "body",
20725
- fontWeight: "medium",
20726
- textTransform: "none",
20727
- italic: false,
20728
- colorToken: "text",
20729
- padding: "compact",
20730
- borderRadius: "md",
20731
- effects: {
20732
- base: [{ effectId: "nav-frosted-base" }],
20733
- hover: [{ effectId: "nav-frosted-hover" }],
20734
- active: [{ effectId: "nav-frosted-active" }]
20735
- }
20736
- }
20737
- };
20738
- Object.keys(NAV_LINK_PRESETS);
20739
21357
  }));
20740
21358
  //#endregion
20741
- //#region ../theme-core/src/header/legacyNavLinkStyle.ts
20742
- var init_legacyNavLinkStyle = __esmMin((() => {
20743
- init_presets$1();
21359
+ //#region ../theme-core/src/header/generateHeaderNavLinkStyles.ts
21360
+ var init_generateHeaderNavLinkStyles = __esmMin((() => {
21361
+ init_generateNavLinkCSS();
21362
+ init_siteChromeNavPreferences();
21363
+ init_effectiveNavLinkStyle$1();
21364
+ init_rawStyleFields();
21365
+ }));
21366
+ //#endregion
21367
+ //#region ../theme-core/src/header/generateHeaderLogoStyles.ts
21368
+ var init_generateHeaderLogoStyles = __esmMin((() => {
21369
+ init_generateNavLinkCSS();
21370
+ init_surfaces();
20744
21371
  }));
20745
21372
  //#endregion
20746
21373
  //#region ../theme-core/src/header/generateHeaderCss.ts
20747
21374
  var init_generateHeaderCss = __esmMin((() => {
20748
21375
  init_resolver$2();
20749
21376
  init_generateNavLinkCSS();
20750
- init_siteChromeNavPreferences();
20751
21377
  init_shared$4();
20752
21378
  init_breakpoints();
20753
21379
  init_navDropdownSizing();
20754
21380
  init_scrollTreatment();
20755
21381
  init_paintTargets();
20756
21382
  init_surfaceRules();
20757
- init_legacyNavLinkStyle();
21383
+ init_generateHeaderNavLinkStyles();
21384
+ init_rawStyleFields();
21385
+ init_generateHeaderLogoStyles();
21386
+ init_surfaces();
20758
21387
  }));
20759
21388
  //#endregion
20760
21389
  //#region ../theme-core/src/header/index.ts
20761
21390
  var init_header = __esmMin((() => {
20762
21391
  init_generateHeaderCss();
21392
+ init_rootPaint();
21393
+ init_effectiveNavLinkStyle$1();
21394
+ init_openingForegroundProjection();
21395
+ }));
21396
+ //#endregion
21397
+ //#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
21398
+ function effectiveFooterNavLinkStyle(footer) {
21399
+ if (!footer) return null;
21400
+ if (footer.navLinkStyle) return footer.navLinkStyle;
21401
+ const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
21402
+ if (!basePreset) return null;
21403
+ return {
21404
+ ...basePreset,
21405
+ fontWeight: footer.navWeight ?? basePreset.fontWeight,
21406
+ colorToken: footer.navColor?.trim() || basePreset.colorToken
21407
+ };
21408
+ }
21409
+ function footerForegroundCandidates(footer, proseHoverCandidate) {
21410
+ if (!footer) return {};
21411
+ const style = effectiveFooterNavLinkStyle(footer);
21412
+ return {
21413
+ text: footer.background?.textColor,
21414
+ link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
21415
+ linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
21416
+ };
21417
+ }
21418
+ var init_effectiveNavLinkStyle = __esmMin((() => {
21419
+ init_presets$1();
21420
+ init_types$8();
20763
21421
  }));
20764
21422
  //#endregion
20765
21423
  //#region ../theme-core/src/footer/generateFooterCss.ts
20766
21424
  var init_generateFooterCss = __esmMin((() => {
20767
21425
  init_resolver$2();
20768
21426
  init_generateNavLinkCSS();
20769
- init_presets$1();
21427
+ init_effectiveNavLinkStyle();
21428
+ init_rawStyleFields();
20770
21429
  }));
20771
21430
  //#endregion
20772
21431
  //#region ../theme-core/src/footer/index.ts
20773
21432
  var init_footer = __esmMin((() => {
20774
21433
  init_generateFooterCss();
21434
+ init_effectiveNavLinkStyle();
20775
21435
  }));
20776
21436
  //#endregion
20777
21437
  //#region ../theme-core/src/layout/boundaryCss.ts
@@ -26636,33 +27296,28 @@ var init_themeColorResolution = __esmMin((() => {
26636
27296
  }));
26637
27297
  //#endregion
26638
27298
  //#region ../blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.ts
26639
- function resolveHeaderLeafTextColor(header) {
26640
- return header?.textColor ?? header?.navColor ?? header?.background?.textColor ?? header?.navLinkStyle?.colorToken ?? "text";
26641
- }
26642
27299
  function resolveHeaderRootForeground(header, palette, isTransparent) {
26643
- if (isTransparent) return { kind: "unknown" };
27300
+ if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "unknown" };
26644
27301
  const background = header?.background;
26645
27302
  return resolveSurfaceForeground(background ?? {
26646
27303
  type: "color",
26647
27304
  color: "surface"
26648
- }, palette, {
26649
- text: header?.textColor ?? background?.textColor,
26650
- link: header?.navLinkStyle?.colorToken ?? header?.navColor ?? header?.textColor
26651
- });
27305
+ }, palette, headerForegroundCandidates(header));
27306
+ }
27307
+ function resolveFooterRootForeground(footer, palette, proseHoverCandidate) {
27308
+ return resolveSurfaceForeground(footer?.background ?? {
27309
+ type: "color",
27310
+ color: "surface"
27311
+ }, palette, footerForegroundCandidates(footer, proseHoverCandidate), { compositeBase: "background" });
26652
27312
  }
26653
27313
  function resolveSurfaceForegroundStyles(value, context, options) {
26654
27314
  const input = parseBackgroundContent(value);
26655
- const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, {}, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
27315
+ const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, { linkHover: context.proseHoverCandidate }, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
26656
27316
  const buttonStyles = resolveContextualButtonStyles(input, foreground, context, options);
26657
27317
  if (foreground.kind === "unknown") return buttonStyles;
26658
27318
  return {
26659
27319
  ...buttonStyles,
26660
- ...surfaceForegroundStyle({
26661
- text: resolveBackgroundColorValue(foreground.roles.text, context),
26662
- heading: resolveBackgroundColorValue(foreground.roles.heading, context),
26663
- link: resolveBackgroundColorValue(foreground.roles.link, context),
26664
- supporting: resolveBackgroundColorValue(foreground.roles.supporting, context)
26665
- })
27320
+ ...surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, (token) => resolveBackgroundColorValue(token, context)))
26666
27321
  };
26667
27322
  }
26668
27323
  function resolveContextualButtonStyles(background, foreground, context, options) {
@@ -26712,6 +27367,8 @@ function deriveButtonSurfaceInput(background, foreground) {
26712
27367
  var contextualButtonStylesCache;
26713
27368
  var init_surfaceForegroundStyles = __esmMin((() => {
26714
27369
  init_surfaces();
27370
+ init_header();
27371
+ init_footer();
26715
27372
  init_buttons();
26716
27373
  init_backgroundContent();
26717
27374
  init_themeColorResolution();
@@ -32778,10 +33435,7 @@ function resolveBackgroundVisualStyles(backgroundColor, defaultToken = "surface"
32778
33435
  };
32779
33436
  }
32780
33437
  function resolveHeaderVisualStyles(header) {
32781
- const navContainerType = header?.navContainer?.type ?? "none";
32782
- const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
32783
- const hasOverlayVariant = header?.variant === "floating";
32784
- if (hasContainedNav || hasOverlayVariant) return {
33438
+ if (headerRootPaint(header) !== "own-surface") return {
32785
33439
  backgroundToken: "transparent",
32786
33440
  isTransparent: true
32787
33441
  };
@@ -32792,29 +33446,32 @@ function resolveHeaderVisualStyles(header) {
32792
33446
  }
32793
33447
  function resolvedForegroundStyle(foreground) {
32794
33448
  if (foreground.kind === "unknown") return void 0;
32795
- const { roles } = foreground;
32796
- return surfaceForegroundStyle({
32797
- text: rgbColorValue(roles.text),
32798
- heading: rgbColorValue(roles.heading),
32799
- link: rgbColorValue(roles.link),
32800
- supporting: rgbColorValue(roles.supporting)
32801
- });
32802
- }
32803
- function resolveFooterRootForeground(footer, palette) {
32804
- const background = footer?.background;
32805
- return resolveSurfaceForeground(background ?? {
32806
- type: "color",
32807
- color: "surface"
32808
- }, palette, {
32809
- text: background?.textColor,
32810
- link: footer?.navLinkStyle?.colorToken ?? footer?.navColor ?? background?.textColor
32811
- });
33449
+ return surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, rgbColorValue));
32812
33450
  }
32813
33451
  function footerBottomBarBorderWidthStyle(width) {
32814
33452
  if (!width) return void 0;
32815
33453
  if (width === "none") return { borderTopWidth: "0px" };
32816
33454
  return { borderTopWidth: width === "thin" ? "1px" : width === "medium" ? "2px" : "3px" };
32817
33455
  }
33456
+ function footerBottomBarForegroundStyle(footer, palette) {
33457
+ if (!footer?.bottomBar) return void 0;
33458
+ const bar = footer.bottomBar;
33459
+ if (bar.background?.type !== "color") return backgroundlessBottomBarForegroundStyle(footer);
33460
+ return resolvedForegroundStyle(resolveSurfaceForeground(bar.background, palette, {
33461
+ text: bar.textColor,
33462
+ link: footer.bottomTextLinkStyle?.colorToken ?? bar.textColor,
33463
+ linkHover: footer.bottomTextLinkStyle?.hoverColorToken
33464
+ }, { compositeBase: measuredFooterBackdrop(footer, palette) }));
33465
+ }
33466
+ function backgroundlessBottomBarForegroundStyle(footer) {
33467
+ if (footer.background?.contentOwner === "site-chrome-editor") return;
33468
+ const textColor = footer.bottomBar?.textColor;
33469
+ return textColor ? textColorStyle(textColor) : void 0;
33470
+ }
33471
+ function measuredFooterBackdrop(footer, palette) {
33472
+ const foreground = resolveFooterRootForeground(footer, palette);
33473
+ return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
33474
+ }
32818
33475
  function shouldShowFooterLogoText(footer) {
32819
33476
  if (!footer) return false;
32820
33477
  const explicit = footer.logo?.showLogoText;
@@ -32835,6 +33492,8 @@ var init_layout$2 = __esmMin((() => {
32835
33492
  init_surfaces();
32836
33493
  init_siteChromePlacement();
32837
33494
  init_runtimeContract();
33495
+ init_header();
33496
+ init_site_styles();
32838
33497
  init_surfaceForegroundStyles();
32839
33498
  joinClasses = (parts) => parts.filter((part) => typeof part === "string" && part.trim().length > 0).join(" ").replace(/\s+/g, " ").trim();
32840
33499
  headerLogoClassSchema = z.object({ base: z.string().optional() });
@@ -32920,8 +33579,7 @@ var init_layout$2 = __esmMin((() => {
32920
33579
  const placement = planSiteChromePlacement(parseHeaderPositioning(content.positioning));
32921
33580
  const header = asPartialObject(value);
32922
33581
  const visuals = resolveHeaderVisualStyles(header);
32923
- const navContainerType = header?.navContainer?.type ?? "none";
32924
- const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
33582
+ const hasContainedNav = headerRootPaint(header) === "contained-nav";
32925
33583
  const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
32926
33584
  const classes = [config.base, backgroundClass];
32927
33585
  if (!hasContainedNav) {
@@ -32965,7 +33623,7 @@ var init_layout$2 = __esmMin((() => {
32965
33623
  run: (value, _options, context) => {
32966
33624
  const header = asPartialObject(value);
32967
33625
  const visuals = resolveHeaderVisualStyles(header);
32968
- return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? { color: rgbColorValue(resolveHeaderLeafTextColor(header)) }, borderColorStyle(header?.border?.colorToken ?? "border"));
33626
+ return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? (visuals.isTransparent ? surfaceForegroundStyle(transparentHeaderForegroundInput(header, context.theme.palette)) : { color: rgbColorValue(headerLeafTextColor(header)) }), borderColorStyle(header?.border?.colorToken ?? "border"));
32969
33627
  }
32970
33628
  };
32971
33629
  headerSectionBackgroundTransform = {
@@ -32973,9 +33631,7 @@ var init_layout$2 = __esmMin((() => {
32973
33631
  kind: "string",
32974
33632
  summary: "Resolve the inner site-header section background token",
32975
33633
  run: (value) => {
32976
- const header = asPartialObject(value);
32977
- const navContainerType = header?.navContainer?.type ?? "none";
32978
- return header?.variant === "floating" || navContainerType === "glass" || navContainerType === "pill" ? "raw:transparent" : "background";
33634
+ return headerRootPaint(asPartialObject(value)) !== "own-surface" ? "raw:transparent" : "background";
32979
33635
  }
32980
33636
  };
32981
33637
  footerRootStyleTransform = {
@@ -32993,7 +33649,7 @@ var init_layout$2 = __esmMin((() => {
32993
33649
  styleParts.push(backgroundColorStyle(token));
32994
33650
  }
32995
33651
  }
32996
- styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette)));
33652
+ styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
32997
33653
  styleParts.push(borderColorStyle("border"));
32998
33654
  return mergeStyles(...styleParts);
32999
33655
  }
@@ -33057,20 +33713,7 @@ var init_layout$2 = __esmMin((() => {
33057
33713
  run: (value, _options, context) => {
33058
33714
  const footer = asPartialObject(value);
33059
33715
  const bottomBar = footer?.bottomBar;
33060
- const styleParts = [];
33061
- const background = bottomBar?.background;
33062
- if (background?.type === "color") styleParts.push(backgroundColorStyle(background.color ?? "surface"));
33063
- styleParts.push(borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width));
33064
- const foreground = resolveSurfaceForeground(background?.type === "color" ? background : {
33065
- type: "color",
33066
- color: "transparent"
33067
- }, context.theme.palette, {
33068
- text: bottomBar?.textColor,
33069
- link: footer?.bottomTextLinkStyle?.colorToken ?? bottomBar?.textColor
33070
- });
33071
- if (background?.type === "color") styleParts.push(resolvedForegroundStyle(foreground));
33072
- else if (bottomBar?.textColor) styleParts.push(textColorStyle(bottomBar.textColor));
33073
- return mergeStyles(...styleParts);
33716
+ return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0, borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
33074
33717
  }
33075
33718
  };
33076
33719
  footerSplitMainClassSchema = z.object({
@@ -33155,7 +33798,7 @@ function chromeSurfaceTextToken(surface, theme, palette) {
33155
33798
  case "header-root": {
33156
33799
  const header = theme.header;
33157
33800
  const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
33158
- return foreground.kind === "known" ? foreground.roles.text : resolveHeaderLeafTextColor(header);
33801
+ return foreground.kind === "known" ? foreground.roles.text : headerLeafTextColor(header);
33159
33802
  }
33160
33803
  case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
33161
33804
  case "footer-root": {
@@ -33176,6 +33819,7 @@ var init_chromeLogo = __esmMin((() => {
33176
33819
  init_core();
33177
33820
  init_layout$2();
33178
33821
  init_surfaceForegroundStyles();
33822
+ init_header();
33179
33823
  chromeLogoSchema = z.object({ surface: z.enum([
33180
33824
  "header-root",
33181
33825
  "header-mobile-panel",
@@ -35363,13 +36007,19 @@ var init_appointment_booking = __esmMin((() => {
35363
36007
  bookingHeading = text({ as: "h2" }, bind$1("content.heading"), when("content.heading"));
35364
36008
  bookingDescription = richText({}, bind$1("content.description"), when("content.description"));
35365
36009
  bookingWizard = bookingForm(withApiBindings$1({
36010
+ demoEmailSuppressed: { $bind: {
36011
+ from: "$root.demoEmailSuppressed",
36012
+ fallback: false
36013
+ } },
35366
36014
  portalToken: { $bind: {
35367
36015
  from: "$root.portalToken",
35368
36016
  fallback: null
35369
36017
  } },
35370
36018
  formId: { $bind: { from: "content.formId" } },
35371
36019
  form: { $bind: { from: "data.form" } },
35372
- services: { $bind: { from: "data.services" } }
36020
+ services: { $bind: { from: "data.services" } },
36021
+ mailingList: { $bind: { from: "$root.mailingList" } },
36022
+ siteName: { $bind: { from: "$root.siteName" } }
35373
36023
  }));
35374
36024
  stackedLayout$1 = bookingSection([
35375
36025
  bookingHeading,
@@ -36440,6 +37090,7 @@ function isRecord$6(value) {
36440
37090
  }
36441
37091
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, EVENT_REGISTRATION_SHELL_STEP_LABELS, eventRegistrationPublicEventSchema, eventRegistrationHydrationSchemaShape, eventRegistrationEventSourceSchema, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationBlockRuntime;
36442
37092
  var init_event_registration_interactive = __esmMin((() => {
37093
+ init_src$4();
36443
37094
  init_readAuthority();
36444
37095
  init_schemas();
36445
37096
  init_runGrouping();
@@ -36468,6 +37119,7 @@ var init_event_registration_interactive = __esmMin((() => {
36468
37119
  ];
36469
37120
  eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
36470
37121
  eventRegistrationHydrationSchemaShape = {
37122
+ demoEmailSuppressed: z.boolean().optional(),
36471
37123
  occurrenceContext: occurrenceContextSchema.optional(),
36472
37124
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
36473
37125
  maxTickets: z.string().optional(),
@@ -36479,7 +37131,13 @@ var init_event_registration_interactive = __esmMin((() => {
36479
37131
  spamProtectionEnabled: z.boolean().optional(),
36480
37132
  supportEmail: z.string().optional(),
36481
37133
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
36482
- siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
37134
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional(),
37135
+ mailingList: z.unknown().transform((value) => {
37136
+ if (value === void 0) return void 0;
37137
+ const parsed = parseMailingListRuntimeContext(value);
37138
+ return parsed.ok ? parsed.value : void 0;
37139
+ }),
37140
+ siteName: z.string().optional()
36483
37141
  };
36484
37142
  eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
36485
37143
  kind: z.literal("loaded"),
@@ -36556,6 +37214,7 @@ var init_event_registration_interactive = __esmMin((() => {
36556
37214
  ...eventSource,
36557
37215
  events: [...scopedSourceEvents]
36558
37216
  } : eventSource,
37217
+ demoEmailSuppressed: source.demoEmailSuppressed,
36559
37218
  maxTickets: source.maxTickets ?? void 0,
36560
37219
  showVenue: source.showVenue,
36561
37220
  showCapacity: source.showCapacity,
@@ -36565,7 +37224,9 @@ var init_event_registration_interactive = __esmMin((() => {
36565
37224
  spamProtectionEnabled: source.spamProtectionEnabled,
36566
37225
  supportEmail: source.supportEmail,
36567
37226
  sitePasses: source.sitePasses ?? null,
36568
- siteMemberships: source.siteMemberships ?? null
37227
+ siteMemberships: source.siteMemberships ?? null,
37228
+ mailingList: source.mailingList,
37229
+ siteName: source.siteName
36569
37230
  }
36570
37231
  };
36571
37232
  }
@@ -36686,8 +37347,8 @@ var init_event_registration = __esmMin((() => {
36686
37347
  description: "Message shown after successful registration",
36687
37348
  required: false,
36688
37349
  multiline: true,
36689
- defaultValue: "Thank you for registering! Check your email for confirmation details.",
36690
- maxLength: 500
37350
+ maxLength: 500,
37351
+ ui: { placeholder: "Thank you for registering! Check your email for confirmation details." }
36691
37352
  },
36692
37353
  {
36693
37354
  id: "buttonText",
@@ -36708,6 +37369,10 @@ var init_event_registration = __esmMin((() => {
36708
37369
  text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
36709
37370
  richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
36710
37371
  eventRegistration(withApiBindings$1({
37372
+ demoEmailSuppressed: { $bind: {
37373
+ from: "$root.demoEmailSuppressed",
37374
+ fallback: false
37375
+ } },
36711
37376
  readAuthority: { $bind: { from: "$root.readAuthority" } },
36712
37377
  occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
36713
37378
  subject: { $bind: { from: "$root.subject" } },
@@ -36737,6 +37402,8 @@ var init_event_registration = __esmMin((() => {
36737
37402
  events: { $bind: { from: "data.events" } },
36738
37403
  wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
36739
37404
  loaderFailures: { $bind: { from: "$root.loaderFailures" } },
37405
+ mailingList: { $bind: { from: "$root.mailingList" } },
37406
+ siteName: { $bind: { from: "$root.siteName" } },
36740
37407
  sitePasses: { $bind: { from: "data.sitePasses" } },
36741
37408
  siteMemberships: { $bind: { from: "data.siteMemberships" } },
36742
37409
  stage: { $bind: {
@@ -42282,6 +42949,7 @@ var init_shop_interactive = __esmMin((() => {
42282
42949
  memberships: z.array(publicMembershipProductSchema).nullable().optional(),
42283
42950
  products: z.array(publicProductSchema).nullable().optional(),
42284
42951
  siteId: z.string().optional(),
42952
+ demoEmailSuppressed: z.boolean().optional(),
42285
42953
  apiBaseUrl: z.string().optional(),
42286
42954
  readAuthority: browserReadAuthoritySchema.optional(),
42287
42955
  stage: previewStageSchema.optional()
@@ -42401,7 +43069,8 @@ var init_shop_interactive = __esmMin((() => {
42401
43069
  passesMembershipsHydrationSchema = z.object({
42402
43070
  memberships: z.array(publicMembershipProductSchema),
42403
43071
  passPurchaseMode: z.enum(["add_to_cart", "buy_now"]),
42404
- buttonVariant: blockButtonRoleSchema
43072
+ buttonVariant: blockButtonRoleSchema,
43073
+ demoEmailSuppressed: z.boolean().optional()
42405
43074
  });
42406
43075
  productListHydrationSchema = z.object({
42407
43076
  products: z.array(publicProductSchema),
@@ -42423,7 +43092,8 @@ var init_shop_interactive = __esmMin((() => {
42423
43092
  });
42424
43093
  checkoutHydrationSchema = z.object({
42425
43094
  emptyStateText: z.string(),
42426
- submitButtonText: z.string()
43095
+ submitButtonText: z.string(),
43096
+ demoEmailSuppressed: z.boolean().optional()
42427
43097
  });
42428
43098
  passesMembershipsRenderSchema = z.object({
42429
43099
  display: passesMembershipsDisplaySchema,
@@ -42479,7 +43149,8 @@ var init_shop_interactive = __esmMin((() => {
42479
43149
  hydration: {
42480
43150
  memberships: source.showMemberships === false ? [] : source.memberships ?? [],
42481
43151
  passPurchaseMode,
42482
- buttonVariant: source.buttonVariant ?? "primary"
43152
+ buttonVariant: source.buttonVariant ?? "primary",
43153
+ demoEmailSuppressed: source.demoEmailSuppressed
42483
43154
  }
42484
43155
  };
42485
43156
  }
@@ -42572,7 +43243,8 @@ var init_shop_interactive = __esmMin((() => {
42572
43243
  }),
42573
43244
  hydration: {
42574
43245
  emptyStateText: source.emptyStateText ?? "Add something to your cart to continue.",
42575
- submitButtonText: source.submitButtonText ?? "Checkout"
43246
+ submitButtonText: source.submitButtonText ?? "Checkout",
43247
+ demoEmailSuppressed: source.demoEmailSuppressed
42576
43248
  }
42577
43249
  })
42578
43250
  });
@@ -42799,6 +43471,10 @@ var init_shop = __esmMin((() => {
42799
43471
  spacing: "spacious",
42800
43472
  children: sectionContainer([shop(withApiBindings$1({
42801
43473
  readAuthority: { $bind: { from: "$root.readAuthority" } },
43474
+ demoEmailSuppressed: { $bind: {
43475
+ from: "$root.demoEmailSuppressed",
43476
+ fallback: false
43477
+ } },
42802
43478
  mode: "passes-memberships",
42803
43479
  showPasses: { $bind: {
42804
43480
  from: "content.showPasses",
@@ -43392,6 +44068,10 @@ var init_checkout = __esmMin((() => {
43392
44068
  baseClass: "",
43393
44069
  spacing: "spacious",
43394
44070
  children: sectionContainer([checkout(withApiBindings$1({
44071
+ demoEmailSuppressed: { $bind: {
44072
+ from: "$root.demoEmailSuppressed",
44073
+ fallback: false
44074
+ } },
43395
44075
  readAuthority: { $bind: { from: "$root.readAuthority" } },
43396
44076
  mode: "checkout",
43397
44077
  heading: { $bind: {
@@ -44029,17 +44709,9 @@ var init_newsletter_form_interactive = __esmMin((() => {
44029
44709
  function sanitizeNewsletterSignupPublicContent(content) {
44030
44710
  if (typeof content !== "object" || content === null || Array.isArray(content)) return content;
44031
44711
  const value = content;
44032
- return {
44033
- title: value.title,
44034
- subtitle: value.subtitle,
44035
- targeting: value.targeting,
44036
- buttonVariant: value.buttonVariant,
44037
- mailingListSource: value.mailingListSource,
44038
- mailingListSourceToken: value.mailingListSourceToken,
44039
- _sectionStyles: value._sectionStyles
44040
- };
44712
+ return Object.fromEntries(newsletterPublicFieldIds.map((id) => [id, value[id]]));
44041
44713
  }
44042
- var stackedComposition, stackedLayout, inlineLayout, editorialSplitLayout, newsletterSignupManifest, newsletterSignupBlockDefinition;
44714
+ var stackedComposition, stackedLayout, inlineLayout, editorialSplitLayout, newsletterSignupManifest, newsletterPublicFieldIds, newsletterSignupBlockDefinition;
44043
44715
  var init_newsletter_signup = __esmMin((() => {
44044
44716
  init_fragments$1();
44045
44717
  init_builder$1();
@@ -44133,6 +44805,7 @@ var init_newsletter_signup = __esmMin((() => {
44133
44805
  ],
44134
44806
  icon: "Mail"
44135
44807
  });
44808
+ newsletterPublicFieldIds = [...(newsletterSignupManifest.fields ?? []).map((field) => field.id), "_containerStyles"];
44136
44809
  newsletterSignupBlockDefinition = {
44137
44810
  manifest: newsletterSignupManifest,
44138
44811
  runtime: newsletterFormBlockRuntime
@@ -47961,11 +48634,15 @@ var init_bookingRecords = __esmMin((() => {
47961
48634
  BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries;
47962
48635
  }));
47963
48636
  //#endregion
48637
+ //#region ../api/src/bookingPeople.ts
48638
+ var init_bookingPeople = __esmMin((() => {}));
48639
+ //#endregion
47964
48640
  //#region ../api/src/bookings.ts
47965
48641
  var init_bookings = __esmMin((() => {
47966
48642
  init_envelope();
47967
48643
  init_error_propagation();
47968
48644
  init_bookingRecords();
48645
+ init_bookingPeople();
47969
48646
  }));
47970
48647
  //#endregion
47971
48648
  //#region ../api/src/siteMembers.ts
@@ -48571,6 +49248,7 @@ var init_src = __esmMin((() => {
48571
49248
  init_event_visibility();
48572
49249
  init_bookingPaymentTermSchemas();
48573
49250
  init_bookingRecords();
49251
+ init_bookingPeople();
48574
49252
  init_emailSettings();
48575
49253
  init_eventEmailTemplates();
48576
49254
  init_resources();
@@ -49047,9 +49725,17 @@ function readBlockContentId(value, name) {
49047
49725
  function readTransportedBlockIdentity(block, kind, stage) {
49048
49726
  return {
49049
49727
  draftContentId: readBlockContentId(block.draftContentId, "draft content id"),
49050
- publishedPlacement: stage === "preview" ? readPublishedBlockPlacement(readBlockContentId(block.publishedContentId, "published content id"), sanitizeNullableSdkRuntimeBlockContent(kind, readNestedContentRecord(block.publishedContent))) : null
49728
+ publishedPlacement: stage === "preview" ? readSdkPreviewPublishedPlacement(block, kind) : null
49051
49729
  };
49052
49730
  }
49731
+ /** Pair SDK preview publication data whether it is transported or already admitted. */
49732
+ function readSdkPreviewPublishedPlacement(block, kind) {
49733
+ if (block.publishedPlacement !== void 0 && block.publishedPlacement !== null) {
49734
+ if (!isRecord(block.publishedPlacement)) throw new Error("Invalid published placement in page");
49735
+ return readPublishedBlockPlacement(readBlockContentId(block.publishedPlacement.id, "published content id"), sanitizeNullableSdkRuntimeBlockContent(kind, readContentRecord(block.publishedPlacement.content) ?? null));
49736
+ }
49737
+ return readPublishedBlockPlacement(readBlockContentId(block.publishedContentId, "published content id"), sanitizeNullableSdkRuntimeBlockContent(kind, readSdkPublishedContentRecord(block.publishedContent)));
49738
+ }
49053
49739
  function convertPageResponseBlock(block, stage) {
49054
49740
  if (!isRecord(block)) throw new Error("Invalid block format in page API response");
49055
49741
  const header = readTransportedBlockHeader(block);
@@ -49158,6 +49844,10 @@ function readNestedContentRecord(value) {
49158
49844
  if (!isRecord(value)) return null;
49159
49845
  return readContentRecord(value.data) ?? null;
49160
49846
  }
49847
+ function readSdkPublishedContentRecord(value) {
49848
+ if (!isRecord(value)) return null;
49849
+ return "data" in value ? readContentRecord(value.data) ?? null : value;
49850
+ }
49161
49851
  function sanitizeSdkRuntimeBlockContent(blockKind, content) {
49162
49852
  if (blockKind !== "block.newsletter-signup") return content;
49163
49853
  const sanitized = sanitizeNewsletterSignupPublicContent(content);
@@ -49263,15 +49953,14 @@ async function loadPageWithDeps(deps, params) {
49263
49953
  const { client, siteId, path, pageId, preview = false, dataLoaderOverrides, searchParams, forceSite } = params;
49264
49954
  const [site, pageResponse] = await Promise.all([client.getSite({
49265
49955
  id: siteId,
49956
+ currentPath: path,
49266
49957
  ...forceSite ? { force: true } : {}
49267
49958
  }), client.getPage({
49268
49959
  siteId,
49269
49960
  path,
49270
49961
  preview
49271
49962
  })]);
49272
- if ("entry" in pageResponse) throw new Error("This path resolves to a content entry, not a page. Use loadContent() instead, which handles both pages and entries. For entries, loadContent() returns the raw entry data for custom rendering.");
49273
- if ("pageSurface" in pageResponse) throw new Error("This path resolves to a page surface, not a page. Use loadContent() instead, which handles pages, entries, and page surfaces.");
49274
- const { page: pageData } = pageResponse;
49963
+ const pageData = requirePageRecord(pageResponse);
49275
49964
  const support = buildSiteRenderSupport(site, collectMediaAssetSidecar(pageResponse.mediaAssets));
49276
49965
  const previewStage = preview ? "preview" : "published";
49277
49966
  const pageOutline = buildRenderablePageOutline({
@@ -49301,8 +49990,11 @@ async function loadPageWithDeps(deps, params) {
49301
49990
  theme: requireSdkTheme(support.theme, siteId),
49302
49991
  sdkConfig: support.sdkConfig,
49303
49992
  siteId,
49993
+ dataContext: {
49994
+ siteName: support.site.title,
49995
+ previewStage
49996
+ },
49304
49997
  resolvedData,
49305
- dataContext: { previewStage },
49306
49998
  bookingOfferingPresets: support.bookingOfferingPresets,
49307
49999
  mailingList: support.mailingList,
49308
50000
  bookingTimeZone: support.bookingTimeZone,
@@ -49314,6 +50006,11 @@ async function loadPageWithDeps(deps, params) {
49314
50006
  entriesByIdentifier: support.entriesByIdentifier
49315
50007
  };
49316
50008
  }
50009
+ function requirePageRecord(response) {
50010
+ if ("entry" in response) throw new Error("This path resolves to a content entry, not a page. Use loadContent() instead, which handles both pages and entries. For entries, loadContent() returns the raw entry data for custom rendering.");
50011
+ if ("pageSurface" in response) throw new Error("This path resolves to a page surface, not a page. Use loadContent() instead, which handles pages, entries, and page surfaces.");
50012
+ return response.page;
50013
+ }
49317
50014
  var init_loadPage = __esmMin((() => {
49318
50015
  init_dataLoaderContext();
49319
50016
  init_resolveBlockData();