@riverbankcms/sdk 0.144.0 → 0.146.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 (228) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +688 -519
  6. package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +3381 -2017
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +5643 -66
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +513 -6
  9. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
  10. package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
  11. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
  12. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
  13. package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
  14. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -26
  15. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
  16. package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
  17. package/dist/_dts/api/src/communications.d.ts +32 -24
  18. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  19. package/dist/_dts/api/src/endpoints.d.ts +316 -134
  20. package/dist/_dts/api/src/event-visibility.d.ts +20 -0
  21. package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
  22. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
  23. package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
  24. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
  25. package/dist/_dts/api/src/index.d.ts +7 -1
  26. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  27. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  28. package/dist/_dts/api/src/launchReadiness.d.ts +22 -2
  29. package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
  30. package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
  31. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +30 -11
  32. package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
  33. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
  34. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
  35. package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
  36. package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
  37. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
  38. package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
  39. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
  40. package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
  41. package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
  42. package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
  43. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
  44. package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
  45. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
  46. package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
  47. package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
  48. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
  49. package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
  50. package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
  51. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +4 -38
  52. package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
  53. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  54. package/dist/_dts/api/src/types.d.ts +8 -1
  55. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
  56. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
  57. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  58. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -0
  59. package/dist/_dts/blocks/src/index.d.ts +3 -1
  60. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
  61. package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
  62. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
  63. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
  64. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
  65. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
  66. package/dist/_dts/blocks/src/server.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
  71. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
  72. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  74. package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
  75. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
  76. package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
  77. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  78. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
  79. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
  80. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
  81. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +2 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +23 -7
  87. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
  91. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
  93. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  94. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
  95. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
  96. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  97. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  98. package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
  99. package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
  100. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -3
  101. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  102. package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
  103. package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
  104. package/dist/_dts/core/src/editor-state.d.ts +2 -1
  105. package/dist/_dts/core/src/index.d.ts +2 -0
  106. package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
  107. package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
  108. package/dist/_dts/core/src/public-profile.d.ts +12 -1
  109. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +711 -242
  110. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  111. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
  112. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -2
  113. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  114. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
  115. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
  116. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
  117. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
  118. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
  119. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -3
  120. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
  121. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  122. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
  123. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -1
  124. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
  125. package/dist/_dts/sdk/src/client/types.d.ts +1 -1
  126. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  127. package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
  128. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  129. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
  130. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
  131. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
  132. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +4 -4
  133. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
  134. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -2
  135. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
  136. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
  137. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
  138. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +6 -2
  139. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
  140. package/dist/_dts/sdk/src/version.d.ts +1 -1
  141. package/dist/_dts/surfaces/src/index.d.ts +10 -0
  142. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  143. package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
  144. package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
  145. package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
  146. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
  147. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
  148. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
  149. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
  150. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  151. package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
  152. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
  153. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
  154. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  155. package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
  156. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
  157. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
  158. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
  159. package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
  160. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
  161. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
  162. package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
  164. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
  165. package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
  166. package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
  167. package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
  168. package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
  169. package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
  170. package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
  171. package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
  172. package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BEQNSptH.mjs} +1 -1
  173. package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-AMr-s5vw.mjs} +168 -95
  174. package/dist/client/bookings.mjs +239 -110
  175. package/dist/client/{carousel-D8zuffZr.mjs → carousel-Bbt_QgJy.mjs} +1 -1
  176. package/dist/client/{cart-DeMGJViN.mjs → cart-CnWi30zJ.mjs} +3 -3
  177. package/dist/client/{checkout-DXc06Km2.mjs → checkout-f3nkWgd4.mjs} +3 -3
  178. package/dist/client/client.mjs +3222 -1612
  179. package/dist/client/{context-CDLCfDep.mjs → context-Bc8T6pCe.mjs} +1 -1
  180. package/dist/client/{dates-ClFx7Epy.mjs → dates-DUsCEzLb.mjs} +2 -3
  181. package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
  182. package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
  183. package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
  184. package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-CA3frIH5.mjs} +4 -4
  185. package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
  186. package/dist/client/{form-BjqKaBJ7.mjs → form-C2h3YAcg.mjs} +135 -104
  187. package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-lwMuMTH9.mjs} +3 -3
  188. package/dist/client/hooks.mjs +1023 -148
  189. package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-DJ2bLODV.mjs} +3 -3
  190. package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-8Pu5K32g.mjs} +225 -102
  191. package/dist/client/{pricing-Bl1CAl28.mjs → pricing-HHx3IgBz.mjs} +1 -1
  192. package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-C_1odnAf.mjs} +3 -3
  193. package/dist/client/{productList-U874PGO7.mjs → productList-CtCv-Nmx.mjs} +3 -3
  194. package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-Dcgsncxb.mjs} +111 -55
  195. package/dist/client/rendering/client.mjs +1389 -722
  196. package/dist/client/rendering/islands.mjs +17 -17
  197. package/dist/client/rendering.mjs +3136 -1400
  198. package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
  199. package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
  200. package/dist/client/{shop-BXjXhM9P.mjs → shop-DQXrQ8kJ.mjs} +7 -7
  201. package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
  202. package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
  203. package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-cuaONpkJ.mjs} +4 -4
  204. package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
  205. package/dist/preview-next/before-render.mjs +500 -165
  206. package/dist/preview-next/client/runtime.mjs +4 -4
  207. package/dist/preview-next/editor-base.css +11 -0
  208. package/dist/preview-next/keepAlive.mjs +460 -165
  209. package/dist/preview-next/middleware.mjs +461 -165
  210. package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-h5IgbSp4.mjs} +485 -165
  211. package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
  212. package/dist/{separator-o8GHb1xh.mjs → separator-BpHS1KZK.mjs} +1 -1
  213. package/dist/server/components.mjs +3088 -1307
  214. package/dist/server/config-validation.mjs +927 -109
  215. package/dist/server/config.mjs +927 -109
  216. package/dist/server/data.mjs +939 -110
  217. package/dist/server/index.mjs +513 -169
  218. package/dist/server/next.mjs +2874 -1195
  219. package/dist/server/page-converter.mjs +420 -79
  220. package/dist/server/prebuild.mjs +1 -1
  221. package/dist/server/rendering/server.mjs +3071 -1289
  222. package/dist/server/rendering.mjs +3169 -1350
  223. package/dist/server/routing.mjs +1085 -159
  224. package/dist/server/server.mjs +1042 -291
  225. package/dist/server/theme-bridge.mjs +1658 -137
  226. package/dist/server/theme.mjs +6 -4
  227. package/dist/styles/index.css +186 -65
  228. package/package.json +2 -1
@@ -1095,6 +1095,9 @@ var init_booking_date_time = __esmMin((() => {
1095
1095
  //#region ../core/src/booking-consent.ts
1096
1096
  var init_booking_consent = __esmMin((() => {}));
1097
1097
  //#endregion
1098
+ //#region ../core/src/appointment-service-categories.ts
1099
+ var init_appointment_service_categories = __esmMin((() => {}));
1100
+ //#endregion
1098
1101
  //#region ../core/src/dated-offering-settlement.ts
1099
1102
  var init_dated_offering_settlement = __esmMin((() => {}));
1100
1103
  //#endregion
@@ -1134,6 +1137,9 @@ var init_non_empty_array = __esmMin((() => {}));
1134
1137
  //#region ../core/src/editor-state.ts
1135
1138
  var init_editor_state = __esmMin((() => {}));
1136
1139
  //#endregion
1140
+ //#region ../core/src/block-content-identity.ts
1141
+ var init_block_content_identity = __esmMin((() => {}));
1142
+ //#endregion
1137
1143
  //#region ../core/src/sensitive-collection.ts
1138
1144
  var init_sensitive_collection = __esmMin((() => {}));
1139
1145
  //#endregion
@@ -1610,15 +1616,6 @@ function parseMailingListContentVersionId(value) {
1610
1616
  const parsed = parseContentVersionId(value);
1611
1617
  return parsed.ok ? parsed.value : null;
1612
1618
  }
1613
- function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
1614
- const parsedBlockId = parseMailingListBlockId(blockId);
1615
- const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
1616
- return parsedBlockId !== null && parsedContentVersionId !== null ? {
1617
- tag: "block_ref",
1618
- blockId: parsedBlockId,
1619
- contentVersionId: parsedContentVersionId
1620
- } : null;
1621
- }
1622
1619
  var init_mailing_list_submission = __esmMin((() => {
1623
1620
  init_branded();
1624
1621
  }));
@@ -2125,6 +2122,7 @@ var init_src$4 = __esmMin((() => {
2125
2122
  init_booking_instalments();
2126
2123
  init_booking_date_time();
2127
2124
  init_booking_consent();
2125
+ init_appointment_service_categories();
2128
2126
  init_dated_offering_settlement();
2129
2127
  init_person_records();
2130
2128
  init_rectification();
@@ -2135,6 +2133,7 @@ var init_src$4 = __esmMin((() => {
2135
2133
  init_narrow_result();
2136
2134
  init_non_empty_array();
2137
2135
  init_editor_state();
2136
+ init_block_content_identity();
2138
2137
  init_sensitive_collection();
2139
2138
  init_assertNever();
2140
2139
  init_participants();
@@ -7922,6 +7921,15 @@ function asSiteStyleId(value) {
7922
7921
  function asDesignSystemTemplateId(value) {
7923
7922
  return brandNonEmptyString(value, "DesignSystemTemplateId");
7924
7923
  }
7924
+ function toNonEmptyReadonlyArray(values) {
7925
+ const [first, ...rest] = values;
7926
+ return first === void 0 ? null : [first, ...rest];
7927
+ }
7928
+ function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
7929
+ const result = toNonEmptyReadonlyArray(values);
7930
+ if (!result) throw new Error(message);
7931
+ return result;
7932
+ }
7925
7933
  function makeBoundaryId(previousBlockId, nextBlockId) {
7926
7934
  return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
7927
7935
  }
@@ -8122,16 +8130,18 @@ var init_rawStyleFields = __esmMin((() => {
8122
8130
  "_frameStyles",
8123
8131
  "_sectionStyles",
8124
8132
  "_containerStyles",
8125
- "_cardStyles",
8126
- "_transitionStyles",
8127
- "styleGroup"
8133
+ "_cardStyles"
8128
8134
  ];
8129
8135
  themeV2BlockSpecificRawStyleFieldNames = [
8130
8136
  "_contentCardStyles",
8131
8137
  "_heroLayoutStyles",
8132
8138
  "_textCardStyles"
8133
8139
  ];
8134
- themeV2NormalEditorRawStyleFieldNames = [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
8140
+ themeV2NormalEditorRawStyleFieldNames = [
8141
+ ...themeV2RuntimeStyleFieldNames,
8142
+ ...themeV2BlockSpecificRawStyleFieldNames,
8143
+ "styleGroup"
8144
+ ];
8135
8145
  new Set(themeV2NormalEditorRawStyleFieldNames);
8136
8146
  [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
8137
8147
  pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
@@ -9211,7 +9221,7 @@ var init_bookingConsent = __esmMin((() => {
9211
9221
  checkboxLabel: z.string().min(1)
9212
9222
  });
9213
9223
  z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
9214
- })), publicEventLoaderQuerySchemaShape, eventPresetSchema, eventScheduleScopeSchema$2, publicEventRecurrenceSchema, eventDestinationModeSchema, publicEventDestinationSchema, eventVenueSchema, eventCategorySchema, accessRestrictionSchema, publicCurrencySchema, publicCentsSchema, publicPositiveCentsSchema, publicIsoDateTimeSchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventPricingOptionAvailabilitySchema, publicEventPricingOptionSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventBookingAvailabilitySchema, publicRunSessionSchema, publicWholeSeriesRunSchema, publicEventBaseSchema, publicEventSchema, publicEventsArraySchema;
9224
+ })), publicEventLoaderQuerySchemaShape, eventPresetSchema, eventScheduleScopeSchema$2, publicEventRecurrenceSchema, eventDestinationModeSchema, publicEventDestinationSchema, eventVenueSchema, eventCategorySchema, accessRestrictionSchema, publicCurrencySchema, publicCentsSchema, publicPositiveCentsSchema, publicIsoDateTimeSchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventPricingOptionAvailabilitySchema, publicEventPricingOptionSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventBookingAvailabilitySchema, publicEventBookingClosedDetailSchema, publicRunSessionSchema, publicWholeSeriesRunSchema, publicEventBaseSchema, publicEventSchema, publicEventsArraySchema;
9215
9225
  var init_schemas = __esmMin((() => {
9216
9226
  init_media$3();
9217
9227
  init_richTextSchema();
@@ -9235,6 +9245,7 @@ var init_schemas = __esmMin((() => {
9235
9245
  seriesSlug: z.string().optional(),
9236
9246
  includeOccurrenceId: z.string().optional(),
9237
9247
  readIntent: z.string().optional(),
9248
+ detailAdmission: z.string().optional(),
9238
9249
  detailLevel: z.string().optional(),
9239
9250
  readProfile: z.string().optional()
9240
9251
  };
@@ -9392,11 +9403,11 @@ var init_schemas = __esmMin((() => {
9392
9403
  "series_archived",
9393
9404
  "parent_archived",
9394
9405
  "parent_inconsistent",
9395
- "not_public",
9396
9406
  "already_started",
9397
9407
  "enrollment_closed"
9398
9408
  ])
9399
9409
  })]);
9410
+ publicEventBookingClosedDetailSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("opensSoon") }), z.object({ kind: z.literal("paused") })]);
9400
9411
  publicRunSessionSchema = z.object({
9401
9412
  occurrenceId: z.string(),
9402
9413
  startsAt: z.string(),
@@ -9438,6 +9449,7 @@ var init_schemas = __esmMin((() => {
9438
9449
  destination: publicEventDestinationSchema,
9439
9450
  requiresRegistration: z.boolean(),
9440
9451
  bookingAvailability: publicEventBookingAvailabilitySchema,
9452
+ bookingClosedDetail: publicEventBookingClosedDetailSchema.optional(),
9441
9453
  deliveryMode: z.enum([
9442
9454
  "in_person",
9443
9455
  "online",
@@ -9735,6 +9747,80 @@ var init_contracts$2 = __esmMin((() => {
9735
9747
  init_calendarWindow();
9736
9748
  }));
9737
9749
  //#endregion
9750
+ //#region ../api/src/defineEndpointDefinitions.ts
9751
+ /**
9752
+ * Validates extracted endpoint descriptors while preserving each literal path,
9753
+ * method, and parameter contract for the typed URL builders.
9754
+ */
9755
+ function defineEndpointDefinitions(definitions) {
9756
+ return definitions;
9757
+ }
9758
+ var init_defineEndpointDefinitions = __esmMin((() => {}));
9759
+ //#endregion
9760
+ //#region ../api/src/publicNewsletterEndpointDefinitions.ts
9761
+ var PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS;
9762
+ var init_publicNewsletterEndpointDefinitions = __esmMin((() => {
9763
+ init_defineEndpointDefinitions();
9764
+ PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9765
+ subscribeNewsletter: {
9766
+ path: "/public/sites/{siteId}/newsletter/subscribe",
9767
+ method: "POST",
9768
+ tags: ["public-newsletter-{siteId}"],
9769
+ auth: "public",
9770
+ responseKind: "json"
9771
+ },
9772
+ confirmNewsletter: {
9773
+ path: "/public/sites/{siteId}/newsletter/confirm/{token}",
9774
+ method: "GET",
9775
+ tags: ["public-newsletter-{siteId}"],
9776
+ auth: "public",
9777
+ responseKind: "text"
9778
+ },
9779
+ unsubscribeNewsletter: {
9780
+ path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
9781
+ method: "GET",
9782
+ tags: ["public-newsletter-{siteId}"],
9783
+ auth: "public",
9784
+ responseKind: "text"
9785
+ },
9786
+ unsubscribeNewsletterPost: {
9787
+ path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
9788
+ method: "POST",
9789
+ tags: ["public-newsletter-{siteId}"],
9790
+ auth: "public",
9791
+ responseKind: "text"
9792
+ },
9793
+ confirmNewsletterPost: {
9794
+ path: "/public/sites/{siteId}/newsletter/confirm/{token}",
9795
+ method: "POST",
9796
+ tags: ["public-newsletter-{siteId}"],
9797
+ auth: "public",
9798
+ responseKind: "text"
9799
+ },
9800
+ getNewsletterPreferences: {
9801
+ path: "/public/sites/{siteId}/newsletter/preferences/{token}",
9802
+ method: "GET",
9803
+ tags: ["public-newsletter-{siteId}"],
9804
+ auth: "public",
9805
+ responseKind: "text"
9806
+ },
9807
+ saveNewsletterPreferences: {
9808
+ path: "/public/sites/{siteId}/newsletter/preferences/{token}",
9809
+ method: "POST",
9810
+ tags: ["public-newsletter-{siteId}"],
9811
+ auth: "public",
9812
+ responseKind: "text"
9813
+ },
9814
+ getNewsletterArchive: {
9815
+ path: "/public/sites/{siteId}/newsletter/archive/{token}",
9816
+ method: "GET",
9817
+ tags: ["public-newsletter-{siteId}"],
9818
+ auth: "public",
9819
+ responseKind: "text"
9820
+ }
9821
+ });
9822
+ }));
9823
+ //#endregion
9738
9824
  //#region ../api/src/apiEndpointTypes.ts
9739
9825
  function allowedDemoMutationPolicy() {
9740
9826
  return {
@@ -9831,22 +9917,97 @@ var init_sdkEntryReadEndpoints = __esmMin((() => {
9831
9917
  };
9832
9918
  }));
9833
9919
  //#endregion
9834
- //#region ../api/src/defineEndpointDefinitions.ts
9835
- /**
9836
- * Validates extracted endpoint descriptors while preserving each literal path,
9837
- * method, and parameter contract for the typed URL builders.
9838
- */
9839
- function defineEndpointDefinitions(definitions) {
9840
- return definitions;
9841
- }
9842
- var init_defineEndpointDefinitions = __esmMin((() => {}));
9920
+ //#region ../api/src/appointmentServiceCategoryEndpoints.ts
9921
+ var APPOINTMENT_SERVICE_CATEGORY_ENDPOINT_DEFINITIONS;
9922
+ var init_appointmentServiceCategoryEndpoints = __esmMin((() => {
9923
+ init_defineEndpointDefinitions();
9924
+ APPOINTMENT_SERVICE_CATEGORY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9925
+ listGroupedAppointmentServices: {
9926
+ path: "/sites/{siteId}/bookings/services/grouped",
9927
+ method: "GET",
9928
+ auth: "user",
9929
+ responseKind: "json",
9930
+ errors: ["server:internal_error"]
9931
+ },
9932
+ reorderAppointmentServices: {
9933
+ path: "/sites/{siteId}/bookings/services/order",
9934
+ method: "PUT",
9935
+ auth: "user",
9936
+ responseKind: "json",
9937
+ errors: [
9938
+ "validation:invalid_input",
9939
+ "auth:forbidden",
9940
+ "resource:not_found",
9941
+ "resource:conflict",
9942
+ "server:internal_error"
9943
+ ]
9944
+ },
9945
+ listAppointmentServiceCategories: {
9946
+ path: "/sites/{siteId}/bookings/service-categories",
9947
+ method: "GET",
9948
+ auth: "user",
9949
+ responseKind: "json",
9950
+ errors: ["server:internal_error"]
9951
+ },
9952
+ createAppointmentServiceCategory: {
9953
+ path: "/sites/{siteId}/bookings/service-categories",
9954
+ method: "POST",
9955
+ auth: "user",
9956
+ responseKind: "json",
9957
+ errors: [
9958
+ "validation:invalid_input",
9959
+ "auth:forbidden",
9960
+ "resource:conflict",
9961
+ "server:internal_error"
9962
+ ]
9963
+ },
9964
+ updateAppointmentServiceCategory: {
9965
+ path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
9966
+ method: "PUT",
9967
+ auth: "user",
9968
+ responseKind: "json",
9969
+ errors: [
9970
+ "validation:invalid_input",
9971
+ "auth:forbidden",
9972
+ "resource:not_found",
9973
+ "resource:conflict",
9974
+ "server:internal_error"
9975
+ ]
9976
+ },
9977
+ deleteAppointmentServiceCategory: {
9978
+ path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
9979
+ method: "DELETE",
9980
+ auth: "user",
9981
+ responseKind: "json",
9982
+ errors: [
9983
+ "auth:forbidden",
9984
+ "resource:not_found",
9985
+ "server:internal_error"
9986
+ ]
9987
+ },
9988
+ reorderAppointmentServiceCategories: {
9989
+ path: "/sites/{siteId}/bookings/service-categories/order",
9990
+ method: "PUT",
9991
+ auth: "user",
9992
+ responseKind: "json",
9993
+ errors: [
9994
+ "validation:invalid_input",
9995
+ "auth:forbidden",
9996
+ "resource:conflict",
9997
+ "server:internal_error"
9998
+ ]
9999
+ }
10000
+ });
10001
+ }));
9843
10002
  //#endregion
9844
10003
  //#region ../api/src/appointmentEndpointDefinitions.ts
9845
10004
  var APPOINTMENT_ENDPOINT_DEFINITIONS;
9846
10005
  var init_appointmentEndpointDefinitions = __esmMin((() => {
9847
10006
  init_cache_tags();
9848
10007
  init_defineEndpointDefinitions();
10008
+ init_appointmentServiceCategoryEndpoints();
9849
10009
  APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
10010
+ ...APPOINTMENT_SERVICE_CATEGORY_ENDPOINT_DEFINITIONS,
9850
10011
  listAppointmentResources: {
9851
10012
  path: "/sites/{siteId}/bookings/resources",
9852
10013
  method: "GET",
@@ -10565,6 +10726,13 @@ var init_eventSeriesRegistrationEndpointDefinitions = __esmMin((() => {
10565
10726
  errors: [],
10566
10727
  responseKind: "blob"
10567
10728
  },
10729
+ exportEventOfferingRegistrationsCsv: {
10730
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
10731
+ method: "GET",
10732
+ auth: "user",
10733
+ errors: [],
10734
+ responseKind: "blob"
10735
+ },
10568
10736
  updateEventSeriesRegistration: {
10569
10737
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
10570
10738
  method: "PATCH",
@@ -10575,6 +10743,19 @@ var init_eventSeriesRegistrationEndpointDefinitions = __esmMin((() => {
10575
10743
  "resource:not_found",
10576
10744
  "server:internal_error"
10577
10745
  ]
10746
+ },
10747
+ saveEventSeriesRegistrationAnswers: {
10748
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
10749
+ method: "PUT",
10750
+ auth: "user",
10751
+ responseKind: "json",
10752
+ errors: [
10753
+ "validation:invalid_input",
10754
+ "auth:forbidden",
10755
+ "resource:not_found",
10756
+ "resource:conflict",
10757
+ "server:internal_error"
10758
+ ]
10578
10759
  }
10579
10760
  });
10580
10761
  }));
@@ -11001,46 +11182,181 @@ var init_newsletterEndpointDefinitions = __esmMin((() => {
11001
11182
  responseKind: "json",
11002
11183
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
11003
11184
  },
11004
- testSendNewsletterCampaign: {
11005
- path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
11185
+ scheduleNewsletterCampaign: {
11186
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
11006
11187
  method: "POST",
11007
11188
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11008
11189
  auth: "user",
11009
11190
  responseKind: "json",
11010
11191
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
11011
11192
  },
11012
- listNewsletterSendJobs: {
11013
- path: "/sites/{siteId}/newsletter/jobs",
11014
- method: "GET",
11193
+ unscheduleNewsletterCampaign: {
11194
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
11195
+ method: "POST",
11015
11196
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11016
11197
  auth: "user",
11198
+ responseKind: "json",
11199
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
11200
+ },
11201
+ stopNewsletterCampaign: {
11202
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
11203
+ method: "POST",
11204
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11205
+ auth: "user",
11206
+ responseKind: "json",
11207
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
11208
+ },
11209
+ testSendNewsletterCampaign: {
11210
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
11211
+ method: "POST",
11212
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11213
+ auth: "user",
11214
+ responseKind: "json",
11215
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
11216
+ }
11217
+ });
11218
+ }));
11219
+ //#endregion
11220
+ //#region ../api/src/sdkEventEndpointDefinitions.ts
11221
+ var SDK_EVENT_ENDPOINT_DEFINITIONS;
11222
+ var init_sdkEventEndpointDefinitions = __esmMin((() => {
11223
+ init_defineEndpointDefinitions();
11224
+ SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
11225
+ sdkListEvents: {
11226
+ path: "/sdk/{siteId}/events",
11227
+ method: "GET",
11228
+ auth: "service",
11017
11229
  responseKind: "json"
11018
11230
  },
11019
- retryNewsletterSendJob: {
11020
- path: "/sites/{siteId}/newsletter/jobs/{jobId}/retry",
11231
+ sdkUpsertEvent: {
11232
+ path: "/sdk/{siteId}/events",
11021
11233
  method: "POST",
11234
+ auth: "service",
11235
+ responseKind: "json",
11022
11236
  errors: [
11023
11237
  "validation:invalid_input",
11024
11238
  "resource:not_found",
11025
- "auth:forbidden",
11239
+ "resource:conflict",
11240
+ "billing:plan_limit_exceeded",
11026
11241
  "server:internal_error"
11027
- ],
11028
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11029
- auth: "user",
11242
+ ]
11243
+ },
11244
+ sdkGetEvent: {
11245
+ path: "/sdk/{siteId}/events/{identifier}",
11246
+ method: "GET",
11247
+ auth: "service",
11030
11248
  responseKind: "json"
11031
11249
  },
11032
- cancelNewsletterSendJob: {
11033
- path: "/sites/{siteId}/newsletter/jobs/{jobId}/cancel",
11250
+ sdkDeleteEvent: {
11251
+ path: "/sdk/{siteId}/events/{identifier}",
11252
+ method: "DELETE",
11253
+ auth: "service",
11254
+ responseKind: "json",
11255
+ errors: [
11256
+ "resource:not_found",
11257
+ "resource:conflict",
11258
+ "server:internal_error"
11259
+ ]
11260
+ },
11261
+ sdkTakeEventOffline: {
11262
+ path: "/sdk/{siteId}/events/{identifier}/lifecycle",
11034
11263
  method: "POST",
11264
+ auth: "service",
11265
+ responseKind: "json",
11035
11266
  errors: [
11267
+ "resource:not_found",
11036
11268
  "validation:invalid_input",
11269
+ "resource:conflict",
11270
+ "server:internal_error"
11271
+ ]
11272
+ },
11273
+ sdkListEventOccurrences: {
11274
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
11275
+ method: "GET",
11276
+ auth: "service",
11277
+ responseKind: "json",
11278
+ errors: [
11037
11279
  "resource:not_found",
11038
- "auth:forbidden",
11280
+ "validation:invalid_input",
11039
11281
  "server:internal_error"
11040
- ],
11041
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
11042
- auth: "user",
11043
- responseKind: "json"
11282
+ ]
11283
+ },
11284
+ sdkAddEventOccurrence: {
11285
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
11286
+ method: "POST",
11287
+ auth: "service",
11288
+ responseKind: "json",
11289
+ errors: [
11290
+ "resource:not_found",
11291
+ "validation:invalid_input",
11292
+ "resource:conflict",
11293
+ "server:internal_error"
11294
+ ]
11295
+ },
11296
+ sdkUpdateEventOccurrence: {
11297
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
11298
+ method: "PATCH",
11299
+ auth: "service",
11300
+ responseKind: "json",
11301
+ errors: [
11302
+ "resource:not_found",
11303
+ "validation:invalid_input",
11304
+ "resource:conflict",
11305
+ "server:internal_error"
11306
+ ]
11307
+ },
11308
+ sdkCancelEventOccurrence: {
11309
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
11310
+ method: "POST",
11311
+ auth: "service",
11312
+ responseKind: "json",
11313
+ errors: [
11314
+ "resource:not_found",
11315
+ "resource:conflict",
11316
+ "server:internal_error"
11317
+ ]
11318
+ },
11319
+ sdkDeleteEventOccurrence: {
11320
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
11321
+ method: "DELETE",
11322
+ auth: "service",
11323
+ responseKind: "json",
11324
+ errors: [
11325
+ "resource:not_found",
11326
+ "resource:conflict",
11327
+ "server:internal_error"
11328
+ ]
11329
+ }
11330
+ });
11331
+ }));
11332
+ //#endregion
11333
+ //#region ../api/src/sdkPageDesignEndpointDefinitions.ts
11334
+ var SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS;
11335
+ var init_sdkPageDesignEndpointDefinitions = __esmMin((() => {
11336
+ init_defineEndpointDefinitions();
11337
+ SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
11338
+ sdkGetPageDesign: {
11339
+ path: "/sdk/{siteId}/pages/{identifier}/design",
11340
+ method: "GET",
11341
+ auth: "service",
11342
+ responseKind: "json",
11343
+ errors: [
11344
+ "resource:not_found",
11345
+ "validation:invalid_input",
11346
+ "server:internal_error"
11347
+ ]
11348
+ },
11349
+ sdkSavePageDesign: {
11350
+ path: "/sdk/{siteId}/pages/{identifier}/design",
11351
+ method: "POST",
11352
+ auth: "service",
11353
+ responseKind: "json",
11354
+ errors: [
11355
+ "resource:not_found",
11356
+ "validation:invalid_input",
11357
+ "resource:conflict",
11358
+ "server:internal_error"
11359
+ ]
11044
11360
  }
11045
11361
  });
11046
11362
  }));
@@ -11288,9 +11604,54 @@ var init_siteApiKeyEndpointDefinitions = __esmMin((() => {
11288
11604
  });
11289
11605
  }));
11290
11606
  //#endregion
11607
+ //#region ../api/src/siteManagementEndpointDefinitions.ts
11608
+ var SITE_MANAGEMENT_ENDPOINT_DEFINITIONS;
11609
+ var init_siteManagementEndpointDefinitions = __esmMin((() => {
11610
+ init_demoMutationPolicies();
11611
+ init_defineEndpointDefinitions();
11612
+ SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
11613
+ createSite: {
11614
+ path: "/sites/manage",
11615
+ method: "POST",
11616
+ tags: ["site"],
11617
+ auth: "user",
11618
+ responseKind: "json"
11619
+ },
11620
+ updateSite: {
11621
+ path: "/sites/manage",
11622
+ method: "PUT",
11623
+ tags: ["site"],
11624
+ auth: "user",
11625
+ responseKind: "json"
11626
+ },
11627
+ changeSiteAddress: {
11628
+ path: "/sites/{siteId}/address",
11629
+ method: "PUT",
11630
+ auth: "user",
11631
+ responseKind: "json",
11632
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
11633
+ },
11634
+ getSiteAddressAvailability: {
11635
+ path: "/sites/{siteId}/address/availability",
11636
+ method: "GET",
11637
+ auth: "user",
11638
+ responseKind: "json"
11639
+ },
11640
+ deleteSite: {
11641
+ path: "/sites/{siteId}",
11642
+ method: "DELETE",
11643
+ tags: ["site", "site-{siteId}"],
11644
+ auth: "user",
11645
+ responseKind: "json",
11646
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
11647
+ }
11648
+ });
11649
+ }));
11650
+ //#endregion
11291
11651
  //#region ../api/src/eventManagementEndpointDefinitions.ts
11292
11652
  var EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS;
11293
11653
  var init_eventManagementEndpointDefinitions = __esmMin((() => {
11654
+ init_cache_tags();
11294
11655
  init_defineEndpointDefinitions();
11295
11656
  EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
11296
11657
  listEvents: {
@@ -11338,6 +11699,28 @@ var init_eventManagementEndpointDefinitions = __esmMin((() => {
11338
11699
  "server:internal_error"
11339
11700
  ]
11340
11701
  },
11702
+ /**
11703
+ * The web address of an event's own page. A course page belongs to the
11704
+ * event itself, so its address is written here rather than through a run.
11705
+ */
11706
+ updateEventAddress: {
11707
+ path: "/sites/{siteId}/bookings/events/{eventId}/address",
11708
+ method: "PATCH",
11709
+ tags: [
11710
+ "site-{siteId}",
11711
+ "event-series-{siteId}",
11712
+ TAG_TEMPLATES.siteRoutableContent,
11713
+ TAG_TEMPLATES.siteRedirects
11714
+ ],
11715
+ auth: "user",
11716
+ responseKind: "json",
11717
+ errors: [
11718
+ "validation:invalid_input",
11719
+ "resource:not_found",
11720
+ "resource:conflict",
11721
+ "server:internal_error"
11722
+ ]
11723
+ },
11341
11724
  createWholeSeriesRun: {
11342
11725
  path: "/sites/{siteId}/bookings/events/{eventId}/runs",
11343
11726
  method: "POST",
@@ -11364,6 +11747,20 @@ var init_eventManagementEndpointDefinitions = __esmMin((() => {
11364
11747
  "server:internal_error"
11365
11748
  ]
11366
11749
  },
11750
+ updateCourseBookingSettings: {
11751
+ path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
11752
+ method: "PATCH",
11753
+ tags: ["site-{siteId}", "event-series-{siteId}"],
11754
+ auth: "user",
11755
+ responseKind: "json",
11756
+ errors: [
11757
+ "validation:invalid_input",
11758
+ "auth:forbidden",
11759
+ "resource:not_found",
11760
+ "resource:conflict",
11761
+ "server:internal_error"
11762
+ ]
11763
+ },
11367
11764
  cancelWholeSeriesRun: {
11368
11765
  path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
11369
11766
  method: "POST",
@@ -11376,6 +11773,28 @@ var init_eventManagementEndpointDefinitions = __esmMin((() => {
11376
11773
  "resource:conflict",
11377
11774
  "server:internal_error"
11378
11775
  ]
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
+ ]
11379
11798
  }
11380
11799
  });
11381
11800
  }));
@@ -11818,8 +12237,45 @@ var init_billingEndpointDefinitions = __esmMin((() => {
11818
12237
  responseKind: "json"
11819
12238
  }
11820
12239
  });
12240
+ })), CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS, CLIENT_ERROR_REPORT_LIMITS, clientErrorEventSchema;
12241
+ var init_clientErrorReporting = __esmMin((() => {
12242
+ init_defineEndpointDefinitions();
12243
+ CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
12244
+ path: "/client/error-report",
12245
+ method: "POST",
12246
+ auth: "user",
12247
+ errors: [],
12248
+ responseKind: "json"
12249
+ } });
12250
+ CLIENT_ERROR_REPORT_LIMITS = {
12251
+ pathname: 1024,
12252
+ name: 120,
12253
+ message: 2e3,
12254
+ stack: 8e3,
12255
+ digest: 128,
12256
+ componentStack: 8e3,
12257
+ sourceLocation: 1024
12258
+ };
12259
+ clientErrorEventSchema = z.enum([
12260
+ "dashboard:route-error",
12261
+ "dashboard:app-error",
12262
+ "client:error-boundary",
12263
+ "client:window-error",
12264
+ "client:unhandled-rejection"
12265
+ ]);
12266
+ z.object({
12267
+ event: clientErrorEventSchema,
12268
+ pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
12269
+ name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
12270
+ message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
12271
+ stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
12272
+ digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
12273
+ componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
12274
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
12275
+ }).strict();
11821
12276
  }));
11822
12277
  var init_endpoints = __esmMin((() => {
12278
+ init_publicNewsletterEndpointDefinitions();
11823
12279
  init_demoMutationPolicies();
11824
12280
  init_cache_tags();
11825
12281
  init_sdkEntryReadEndpoints();
@@ -11827,10 +12283,13 @@ var init_endpoints = __esmMin((() => {
11827
12283
  init_accountEndpointDefinitions();
11828
12284
  init_eventSeriesRegistrationEndpointDefinitions();
11829
12285
  init_newsletterEndpointDefinitions();
12286
+ init_sdkEventEndpointDefinitions();
12287
+ init_sdkPageDesignEndpointDefinitions();
11830
12288
  init_publicEventEndpointDefinitions();
11831
12289
  init_publicEventCheckoutEndpointDefinitions();
11832
12290
  init_publicBookingAvailabilityEndpointDefinitions();
11833
12291
  init_siteApiKeyEndpointDefinitions();
12292
+ init_siteManagementEndpointDefinitions();
11834
12293
  init_eventManagementEndpointDefinitions();
11835
12294
  init_giftingEndpointDefinitions();
11836
12295
  init_sdkEndpointDefinitions();
@@ -11838,18 +12297,22 @@ var init_endpoints = __esmMin((() => {
11838
12297
  init_publicReadEndpointDefinitions();
11839
12298
  init_publicOnboardingAttemptEndpointDefinitions();
11840
12299
  init_billingEndpointDefinitions();
12300
+ init_clientErrorReporting();
11841
12301
  ({
12302
+ ...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
12303
+ ...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
11842
12304
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
11843
12305
  ...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
11844
12306
  ...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
11845
12307
  ...GIFTING_ENDPOINT_DEFINITIONS,
11846
12308
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
11847
- ...BILLING_ENDPOINT_DEFINITIONS
12309
+ ...BILLING_ENDPOINT_DEFINITIONS,
12310
+ ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
11848
12311
  }), 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, {
11849
12312
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
11850
12313
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
11851
12314
  ...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
11852
- }, 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_ENTRY_READ_ENDPOINTS };
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 };
11853
12316
  }));
11854
12317
  var init_preview_auth = __esmMin((() => {
11855
12318
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
@@ -12136,6 +12599,18 @@ var init_contracts$1 = __esmMin((() => {
12136
12599
  z.discriminatedUnion("kind", navigationLinkInputSchemaOptions);
12137
12600
  }));
12138
12601
  //#endregion
12602
+ //#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((() => {}));
12613
+ //#endregion
12139
12614
  //#region ../blocks/src/subroutes/index.ts
12140
12615
  var init_subroutes = __esmMin((() => {})), BlockKind, blockSchema, pagePath;
12141
12616
  var init_schema$2 = __esmMin((() => {
@@ -15563,16 +16038,258 @@ var init_cardRoleVocabulary = __esmMin((() => {
15563
16038
  cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
15564
16039
  }));
15565
16040
  //#endregion
15566
- //#region ../theme-core/src/site-styles/compositionBudget.ts
15567
- var init_compositionBudget = __esmMin((() => {}));
16041
+ //#region ../theme-core/src/site-styles/runtimeBackgroundResolution.ts
16042
+ var init_runtimeBackgroundResolution = __esmMin((() => {
16043
+ init_boxBackgroundSchema();
16044
+ init_surfaces();
16045
+ init_rawStyleFields();
16046
+ }));
15568
16047
  //#endregion
15569
- //#region ../theme-core/src/site-styles/compilationPlan.ts
15570
- var defaultHeaderBrandPreferences;
15571
- var init_compilationPlan = __esmMin((() => {
15572
- defaultHeaderBrandPreferences = {
15573
- brandDisplay: "auto",
15574
- logoSize: "auto"
15575
- };
16048
+ //#region ../theme-core/src/site-styles/transitionCatalogue.ts
16049
+ var transitionCatalogueFamilies, mediumHeight, compactHeight, largeHeight, transitionCatalogueEntries;
16050
+ var init_transitionCatalogue = __esmMin((() => {
16051
+ init_types$7();
16052
+ transitionCatalogueFamilies = [
16053
+ {
16054
+ id: "gradient",
16055
+ label: "Gradient"
16056
+ },
16057
+ {
16058
+ id: "wave",
16059
+ label: "Wave"
16060
+ },
16061
+ {
16062
+ id: "angle",
16063
+ label: "Angle"
16064
+ }
16065
+ ];
16066
+ mediumHeight = "6rem + 2px";
16067
+ compactHeight = "4.5rem + 2px";
16068
+ largeHeight = "7rem + 2px";
16069
+ transitionCatalogueEntries = defineExactCatalog()([
16070
+ {
16071
+ intent: "soft-fade-short",
16072
+ optionId: asBoundaryOptionId("break:soft"),
16073
+ family: "gradient",
16074
+ variantId: "soft",
16075
+ label: "Soft",
16076
+ variantLabel: "Soft",
16077
+ treatment: {
16078
+ kind: "soft-fade",
16079
+ height: "medium",
16080
+ curve: "soft"
16081
+ },
16082
+ size: "medium",
16083
+ heightExpression: mediumHeight,
16084
+ shape: { kind: "fade" }
16085
+ },
16086
+ {
16087
+ intent: "soft-fade-long",
16088
+ optionId: asBoundaryOptionId("break:spacious"),
16089
+ family: "gradient",
16090
+ variantId: "spacious",
16091
+ label: "Spacious",
16092
+ variantLabel: "Spacious",
16093
+ treatment: {
16094
+ kind: "soft-fade",
16095
+ height: "large",
16096
+ curve: "spacious"
16097
+ },
16098
+ size: "spacious",
16099
+ heightExpression: "10rem",
16100
+ shape: { kind: "fade" }
16101
+ },
16102
+ {
16103
+ intent: "soft-fade-expansive",
16104
+ optionId: asBoundaryOptionId("break:expansive"),
16105
+ family: "gradient",
16106
+ variantId: "expansive",
16107
+ label: "Expansive",
16108
+ variantLabel: "Expansive",
16109
+ treatment: {
16110
+ kind: "soft-fade",
16111
+ height: "expansive",
16112
+ curve: "expansive"
16113
+ },
16114
+ size: "expansive",
16115
+ heightExpression: "14rem",
16116
+ shape: { kind: "fade" }
16117
+ },
16118
+ {
16119
+ intent: "wave-edge-balanced",
16120
+ optionId: asBoundaryOptionId("break:wave-balanced"),
16121
+ family: "wave",
16122
+ variantId: "balanced",
16123
+ label: "Balanced wave",
16124
+ variantLabel: "Balanced",
16125
+ treatment: {
16126
+ kind: "wave-edge",
16127
+ height: "medium",
16128
+ amplitude: "balanced",
16129
+ rhythm: "double",
16130
+ symmetry: "symmetrical"
16131
+ },
16132
+ size: "medium",
16133
+ heightExpression: mediumHeight,
16134
+ shape: {
16135
+ kind: "wave",
16136
+ mask: "balanced"
16137
+ }
16138
+ },
16139
+ {
16140
+ intent: "wave-edge",
16141
+ optionId: asBoundaryOptionId("break:wave"),
16142
+ family: "wave",
16143
+ variantId: "classic",
16144
+ label: "Classic wave",
16145
+ variantLabel: "Classic",
16146
+ treatment: {
16147
+ kind: "wave-edge",
16148
+ height: "medium",
16149
+ amplitude: "balanced",
16150
+ rhythm: "double",
16151
+ symmetry: "asymmetrical"
16152
+ },
16153
+ size: "medium",
16154
+ heightExpression: mediumHeight,
16155
+ shape: {
16156
+ kind: "wave",
16157
+ mask: "classic"
16158
+ }
16159
+ },
16160
+ {
16161
+ intent: "wave-edge-gentle",
16162
+ optionId: asBoundaryOptionId("break:wave-gentle"),
16163
+ family: "wave",
16164
+ variantId: "gentle",
16165
+ label: "Gentle wave",
16166
+ variantLabel: "Gentle",
16167
+ treatment: {
16168
+ kind: "wave-edge",
16169
+ height: "compact",
16170
+ amplitude: "subtle",
16171
+ rhythm: "single",
16172
+ symmetry: "symmetrical"
16173
+ },
16174
+ size: "compact",
16175
+ heightExpression: compactHeight,
16176
+ shape: {
16177
+ kind: "wave",
16178
+ mask: "gentle"
16179
+ }
16180
+ },
16181
+ {
16182
+ intent: "wave-edge-bold",
16183
+ optionId: asBoundaryOptionId("break:wave-bold"),
16184
+ family: "wave",
16185
+ variantId: "bold",
16186
+ label: "Bold wave",
16187
+ variantLabel: "Bold",
16188
+ treatment: {
16189
+ kind: "wave-edge",
16190
+ height: "large",
16191
+ amplitude: "bold",
16192
+ rhythm: "double",
16193
+ symmetry: "symmetrical"
16194
+ },
16195
+ size: "large",
16196
+ heightExpression: largeHeight,
16197
+ shape: {
16198
+ kind: "wave",
16199
+ mask: "bold"
16200
+ }
16201
+ },
16202
+ {
16203
+ intent: "wave-edge-drift",
16204
+ optionId: asBoundaryOptionId("break:wave-drift"),
16205
+ family: "wave",
16206
+ variantId: "drift",
16207
+ label: "Drift wave",
16208
+ variantLabel: "Drift",
16209
+ treatment: {
16210
+ kind: "wave-edge",
16211
+ height: "medium",
16212
+ amplitude: "balanced",
16213
+ rhythm: "double",
16214
+ symmetry: "drift"
16215
+ },
16216
+ size: "medium",
16217
+ heightExpression: mediumHeight,
16218
+ shape: {
16219
+ kind: "wave",
16220
+ mask: "drift"
16221
+ }
16222
+ },
16223
+ {
16224
+ intent: "angle-edge-subtle",
16225
+ optionId: asBoundaryOptionId("break:angle-subtle"),
16226
+ family: "angle",
16227
+ variantId: "subtle",
16228
+ label: "Subtle angle",
16229
+ variantLabel: "Subtle",
16230
+ treatment: {
16231
+ kind: "angle-edge",
16232
+ height: "compact",
16233
+ slope: "subtle",
16234
+ direction: "forward"
16235
+ },
16236
+ size: "compact",
16237
+ heightExpression: compactHeight,
16238
+ shape: {
16239
+ kind: "angle",
16240
+ polygon: {
16241
+ startTopPercent: 34,
16242
+ endTopPercent: 18
16243
+ }
16244
+ }
16245
+ },
16246
+ {
16247
+ intent: "angle-edge",
16248
+ optionId: asBoundaryOptionId("break:angle-balanced"),
16249
+ family: "angle",
16250
+ variantId: "balanced",
16251
+ label: "Balanced angle",
16252
+ variantLabel: "Balanced",
16253
+ treatment: {
16254
+ kind: "angle-edge",
16255
+ height: "medium",
16256
+ slope: "balanced",
16257
+ direction: "forward"
16258
+ },
16259
+ size: "medium",
16260
+ heightExpression: mediumHeight,
16261
+ shape: {
16262
+ kind: "angle",
16263
+ polygon: {
16264
+ startTopPercent: 42,
16265
+ endTopPercent: 8
16266
+ }
16267
+ }
16268
+ },
16269
+ {
16270
+ intent: "angle-edge-steep",
16271
+ optionId: asBoundaryOptionId("break:angle-steep"),
16272
+ family: "angle",
16273
+ variantId: "steep",
16274
+ label: "Steep angle",
16275
+ variantLabel: "Steep",
16276
+ treatment: {
16277
+ kind: "angle-edge",
16278
+ height: "large",
16279
+ slope: "steep",
16280
+ direction: "forward"
16281
+ },
16282
+ size: "large",
16283
+ heightExpression: largeHeight,
16284
+ shape: {
16285
+ kind: "angle",
16286
+ polygon: {
16287
+ startTopPercent: 54,
16288
+ endTopPercent: 0
16289
+ }
16290
+ }
16291
+ }
16292
+ ]);
15576
16293
  }));
15577
16294
  //#endregion
15578
16295
  //#region ../theme-core/src/site-styles/sectionTransitions.ts
@@ -15584,45 +16301,122 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
15584
16301
  reserveCss: `calc((${heightExpression}) / 2)`
15585
16302
  };
15586
16303
  }
15587
- var noneBoundaryOption, softBoundaryOption, spaciousBoundaryOption;
16304
+ /**
16305
+ * The catalogue's compile-time coverage check guarantees an entry per
16306
+ * decorative intent, so a miss here is a broken invariant, not bad input.
16307
+ */
16308
+ function requireCatalogueValue(values, intent) {
16309
+ const value = values.get(intent);
16310
+ if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
16311
+ return value;
16312
+ }
16313
+ function boundaryOptionForTransitionIntent(intent) {
16314
+ return requireCatalogueValue(boundaryOptionByIntent, intent);
16315
+ }
16316
+ function transitionVariantForEntry(entry) {
16317
+ return {
16318
+ familyId: entry.family,
16319
+ variantId: entry.variantId,
16320
+ label: entry.variantLabel,
16321
+ boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
16322
+ };
16323
+ }
16324
+ function stableTreatmentKey(treatment) {
16325
+ switch (treatment.kind) {
16326
+ case "none": return "none";
16327
+ case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
16328
+ case "wave-edge": return [
16329
+ treatment.kind,
16330
+ treatment.height,
16331
+ treatment.amplitude,
16332
+ treatment.rhythm,
16333
+ treatment.symmetry
16334
+ ].join(":");
16335
+ case "angle-edge": return [
16336
+ treatment.kind,
16337
+ treatment.height,
16338
+ treatment.slope,
16339
+ treatment.direction
16340
+ ].join(":");
16341
+ case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
16342
+ }
16343
+ }
16344
+ var noneBoundaryOption, boundaryOptionByIntent, softBoundaryOption, spaciousBoundaryOption, boundaryOptions, noneTransitionVariant, sectionTransitionFamilies;
15588
16345
  var init_sectionTransitions = __esmMin((() => {
15589
16346
  init_types$7();
15590
- boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
16347
+ init_transitionCatalogue();
16348
+ new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
16349
+ new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
15591
16350
  noneBoundaryOption = {
15592
16351
  id: asBoundaryOptionId("break:none"),
15593
16352
  label: "None",
15594
16353
  transitionAfter: "none",
15595
16354
  treatment: { kind: "none" }
15596
16355
  };
15597
- softBoundaryOption = {
15598
- id: asBoundaryOptionId("break:soft"),
15599
- label: "Soft",
15600
- transitionAfter: "soft-fade-short",
15601
- treatment: {
15602
- kind: "soft-fade",
15603
- height: "medium",
15604
- curve: "soft"
15605
- }
16356
+ boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
16357
+ id: entry.optionId,
16358
+ label: entry.label,
16359
+ transitionAfter: entry.intent,
16360
+ treatment: entry.treatment
16361
+ }]));
16362
+ softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
16363
+ spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
16364
+ boundaryOptionForTransitionIntent("soft-fade-expansive");
16365
+ boundaryOptionForTransitionIntent("wave-edge");
16366
+ boundaryOptionForTransitionIntent("wave-edge-balanced");
16367
+ boundaryOptionForTransitionIntent("wave-edge-gentle");
16368
+ boundaryOptionForTransitionIntent("wave-edge-bold");
16369
+ boundaryOptionForTransitionIntent("wave-edge-drift");
16370
+ boundaryOptionForTransitionIntent("angle-edge-subtle");
16371
+ boundaryOptionForTransitionIntent("angle-edge");
16372
+ boundaryOptionForTransitionIntent("angle-edge-steep");
16373
+ boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
16374
+ noneTransitionVariant = {
16375
+ familyId: "none",
16376
+ variantId: "none",
16377
+ label: "None",
16378
+ boundaryOption: noneBoundaryOption
15606
16379
  };
15607
- spaciousBoundaryOption = {
15608
- id: asBoundaryOptionId("break:spacious"),
15609
- label: "Spacious",
15610
- transitionAfter: "soft-fade-long",
15611
- treatment: {
15612
- kind: "soft-fade",
15613
- height: "large",
15614
- curve: "spacious"
15615
- }
16380
+ sectionTransitionFamilies = [{
16381
+ id: "none",
16382
+ label: "None",
16383
+ variants: [noneTransitionVariant]
16384
+ }, ...transitionCatalogueFamilies.map((family) => ({
16385
+ id: family.id,
16386
+ label: family.label,
16387
+ variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
16388
+ }))];
16389
+ new Map(boundaryOptions.map((option) => [option.id, option]));
16390
+ new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
16391
+ new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
16392
+ new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
16393
+ }));
16394
+ //#endregion
16395
+ //#region ../theme-core/src/site-styles/sectionBoundaryComposition.ts
16396
+ function requireThemeColorToken$1(value) {
16397
+ const token = parseThemeColorToken(value);
16398
+ if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
16399
+ return token;
16400
+ }
16401
+ var init_sectionBoundaryComposition = __esmMin((() => {
16402
+ init_themeColorTokens();
16403
+ init_runtimeBackgroundResolution();
16404
+ init_sectionTransitions();
16405
+ requireThemeColorToken$1("background");
16406
+ }));
16407
+ //#endregion
16408
+ //#region ../theme-core/src/site-styles/compositionBudget.ts
16409
+ var init_compositionBudget = __esmMin((() => {
16410
+ init_sectionBoundaryComposition();
16411
+ }));
16412
+ //#endregion
16413
+ //#region ../theme-core/src/site-styles/compilationPlan.ts
16414
+ var defaultHeaderBrandPreferences;
16415
+ var init_compilationPlan = __esmMin((() => {
16416
+ defaultHeaderBrandPreferences = {
16417
+ brandDisplay: "auto",
16418
+ logoSize: "auto"
15616
16419
  };
15617
- asBoundaryOptionId("break:expansive");
15618
- asBoundaryOptionId("break:wave");
15619
- asBoundaryOptionId("break:wave-balanced");
15620
- asBoundaryOptionId("break:wave-gentle");
15621
- asBoundaryOptionId("break:wave-bold");
15622
- asBoundaryOptionId("break:wave-drift");
15623
- asBoundaryOptionId("break:angle-subtle");
15624
- asBoundaryOptionId("break:angle-balanced");
15625
- asBoundaryOptionId("break:angle-steep");
15626
16420
  }));
15627
16421
  //#endregion
15628
16422
  //#region ../theme-core/src/site-styles/pageDesignIntent.ts
@@ -15654,14 +16448,11 @@ function validateUniquePageDesignPins(intent, ctx) {
15654
16448
  label: "block Look pin"
15655
16449
  });
15656
16450
  addDuplicateStringIssues(ctx, {
15657
- values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
16451
+ values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
15658
16452
  path: ["boundaryPins"],
15659
16453
  label: "boundary pin"
15660
16454
  });
15661
16455
  }
15662
- function boundaryKey(previousBlockId, nextBlockId) {
15663
- return makeBoundaryId(previousBlockId, nextBlockId);
15664
- }
15665
16456
  var pageDesignUserPinnedAppearanceChoiceSchema, pageDesignUserPinnedBoundaryChoiceSchema, pageDesignBoundaryTreatmentSchema, pageDesignUserPinnedBoundaryTreatmentChoiceSchema, pageDesignBlockLookPinSchema, pageDesignBoundaryPinSchema, legacyPageDesignBoundaryPinSchema;
15666
16457
  var init_pageDesignIntent = __esmMin((() => {
15667
16458
  init_types$7();
@@ -17354,6 +18145,36 @@ var init_designState = __esmMin((() => {
17354
18145
  authority: styleAuthoritySchema
17355
18146
  }).strict();
17356
18147
  }));
18148
+ var init_pageFlowPresets = __esmMin((() => {
18149
+ init_sectionTransitions();
18150
+ init_types$7();
18151
+ asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
18152
+ }));
18153
+ //#endregion
18154
+ //#region ../theme-core/src/site-styles/lookResolution.ts
18155
+ var init_lookResolution = __esmMin((() => {
18156
+ init_appearancePresets();
18157
+ }));
18158
+ var init_siteStyleBlockPolicies = __esmMin((() => {
18159
+ init_lookResolution();
18160
+ init_appearancePresets();
18161
+ init_pageDesignIntent();
18162
+ init_types$7();
18163
+ asPageFlowPresetId("generated-default");
18164
+ asSiteStyleId("site-style:south-west-twerk-school");
18165
+ asAppearancePresetId("hero-brand-scrim-fixed-frame");
18166
+ asLayoutVariantKey("classic");
18167
+ asLayoutVariantKey("micro");
18168
+ asBoundaryOptionId("break:wave");
18169
+ }));
18170
+ //#endregion
18171
+ //#region ../theme-core/src/site-styles/joinTreatment.ts
18172
+ var init_joinTreatment = __esmMin((() => {
18173
+ init_pageFlowPresets();
18174
+ init_pageDesignIntent();
18175
+ init_sectionTransitions();
18176
+ init_siteStyleBlockPolicies();
18177
+ }));
17357
18178
  //#endregion
17358
18179
  //#region ../theme-core/src/site-styles/runtimeCompiler.ts
17359
18180
  function defineSectionForegroundRuntimeTokens(input) {
@@ -17388,7 +18209,8 @@ var init_runtimeCompiler = __esmMin((() => {
17388
18209
  init_schema$3();
17389
18210
  init_styles();
17390
18211
  init_designState();
17391
- init_sectionTransitions();
18212
+ init_joinTreatment();
18213
+ init_rawStyleFields();
17392
18214
  init_tokens();
17393
18215
  init_gradients();
17394
18216
  defaultDesignRuntimeRules = defineDesignRuntimeRules({
@@ -17424,8 +18246,7 @@ var init_runtimeCompiler = __esmMin((() => {
17424
18246
  color: "surface",
17425
18247
  opacity: .88
17426
18248
  }
17427
- },
17428
- transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
18249
+ }
17429
18250
  });
17430
18251
  defaultComponentRuntimeRules = defineComponentRuntimeRules({
17431
18252
  panelFrames: {
@@ -19164,38 +19985,28 @@ var init_curatedSiteStyles = __esmMin((() => {
19164
19985
  //#region ../theme-core/src/site-styles/pageDesignEditorCapabilities.ts
19165
19986
  var init_pageDesignEditorCapabilities = __esmMin((() => {}));
19166
19987
  //#endregion
19167
- //#region ../theme-core/src/site-styles/lookResolution.ts
19168
- var init_lookResolution = __esmMin((() => {
19169
- init_appearancePresets();
19170
- }));
19171
- var init_siteStyleBlockPolicies = __esmMin((() => {
19172
- init_lookResolution();
19173
- init_appearancePresets();
19988
+ //#region ../theme-core/src/site-styles/pageDesignEditorBoundaries.ts
19989
+ var init_pageDesignEditorBoundaries = __esmMin((() => {
19174
19990
  init_pageDesignIntent();
19175
- init_types$7();
19991
+ init_joinTreatment();
19176
19992
  init_sectionTransitions();
19177
- asPageFlowPresetId("generated-default");
19178
- asSiteStyleId("site-style:south-west-twerk-school");
19179
- asAppearancePresetId("hero-brand-scrim-fixed-frame");
19180
- asLayoutVariantKey("classic");
19181
- asLayoutVariantKey("micro");
19182
- asBoundaryOptionId("break:wave");
19183
19993
  }));
19994
+ //#endregion
19995
+ //#region ../theme-core/src/site-styles/pageDesignEditorModel.ts
19184
19996
  var init_pageDesignEditorModel = __esmMin((() => {
19185
19997
  init_curatedSiteStyles();
19186
19998
  init_lookResolution();
19187
19999
  init_siteStyleBlockPolicies();
19188
20000
  init_pageDesignIntent();
19189
- init_types$7();
20001
+ init_pageFlowPresets();
20002
+ init_pageDesignEditorBoundaries();
19190
20003
  init_sectionTransitions();
19191
- asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
19192
20004
  })), blockDesignFallback;
19193
20005
  var init_resolver$1 = __esmMin((() => {
19194
20006
  init_types$7();
19195
20007
  blockDesignFallback = {
19196
20008
  sectionSurface: "base",
19197
20009
  contentFrame: plainFrame,
19198
- transitionAfter: "none",
19199
20010
  sectionHeight: "default",
19200
20011
  heroLegibility: "none",
19201
20012
  imageSurfaceTreatment: { kind: "none" },
@@ -19206,7 +20017,7 @@ var init_resolver$1 = __esmMin((() => {
19206
20017
  accordionIconTreatment: null,
19207
20018
  composition: null
19208
20019
  };
19209
- blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.transitionAfter, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
20020
+ blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
19210
20021
  }));
19211
20022
  //#endregion
19212
20023
  //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
@@ -19275,13 +20086,6 @@ var init_headerRecompile = __esmMin((() => {
19275
20086
  init_siteChromeNavPreferences();
19276
20087
  }));
19277
20088
  //#endregion
19278
- //#region ../theme-core/src/site-styles/runtimeBackgroundResolution.ts
19279
- var init_runtimeBackgroundResolution = __esmMin((() => {
19280
- init_boxBackgroundSchema();
19281
- init_surfaces();
19282
- init_rawStyleFields();
19283
- }));
19284
- //#endregion
19285
20089
  //#region ../theme-core/src/site-styles/siteStyleThemeCompiler.ts
19286
20090
  var init_siteStyleThemeCompiler = __esmMin((() => {
19287
20091
  init_schema$3();
@@ -19303,8 +20107,8 @@ var init_previewCustomization = __esmMin((() => {}));
19303
20107
  //#endregion
19304
20108
  //#region ../theme-core/src/site-styles/previewCompiler.ts
19305
20109
  var init_previewCompiler = __esmMin((() => {
20110
+ init_sectionTransitions();
19306
20111
  init_schema$3();
19307
- init_tokens();
19308
20112
  init_curated();
19309
20113
  init_concretePalette();
19310
20114
  init_curatedSiteStyles();
@@ -19313,7 +20117,6 @@ var init_previewCompiler = __esmMin((() => {
19313
20117
  init_headerRecompile();
19314
20118
  init_siteChromeNavPreferences();
19315
20119
  init_runtimeCompiler();
19316
- init_rawStyleFields();
19317
20120
  init_runtimeBackgroundResolution();
19318
20121
  init_siteStyleThemeCompiler();
19319
20122
  init_buttonSelectionCompiler();
@@ -19321,6 +20124,7 @@ var init_previewCompiler = __esmMin((() => {
19321
20124
  init_pageDesignEditorModel();
19322
20125
  init_pageDesignIntent();
19323
20126
  init_previewCustomization();
20127
+ init_joinTreatment();
19324
20128
  init_types$7();
19325
20129
  }));
19326
20130
  //#endregion
@@ -19424,11 +20228,13 @@ var init_generatedDesignPipelineHelpers = __esmMin((() => {
19424
20228
  //#endregion
19425
20229
  //#region ../theme-core/src/site-styles/generatedDesignPipeline.ts
19426
20230
  var init_generatedDesignPipeline = __esmMin((() => {
20231
+ init_compositionBudget();
19427
20232
  init_generatedSchemas();
19428
20233
  init_siteStyleBlockPolicies();
19429
20234
  init_curatedSiteStyles();
19430
20235
  init_lookResolution();
19431
20236
  init_headerOpeningSection();
20237
+ init_joinTreatment();
19432
20238
  init_resolver$1();
19433
20239
  init_runtimeCompiler();
19434
20240
  init_generatedDesignPipelineHelpers();
@@ -19702,6 +20508,7 @@ var init_site_styles = __esmMin((() => {
19702
20508
  init_headerRecompile();
19703
20509
  init_headerOpeningForeground();
19704
20510
  init_headerOpeningSection();
20511
+ init_joinTreatment();
19705
20512
  init_lookResolution();
19706
20513
  init_lookOptionGroups();
19707
20514
  init_logoBranding();
@@ -19721,6 +20528,7 @@ var init_site_styles = __esmMin((() => {
19721
20528
  init_runtimeCompiler();
19722
20529
  init_runtimeBackgroundResolution();
19723
20530
  init_sectionTransitions();
20531
+ init_sectionBoundaryComposition();
19724
20532
  init_siteChromeBackgrounds();
19725
20533
  init_siteChromeNavPreferences();
19726
20534
  init_siteStyleThemeCompiler();
@@ -19728,6 +20536,7 @@ var init_site_styles = __esmMin((() => {
19728
20536
  init_sourceCatalogs();
19729
20537
  init_styleTags();
19730
20538
  init_tokenRecipes();
20539
+ init_transitionCatalogue();
19731
20540
  init_siteStyleTypography();
19732
20541
  init_themeParity();
19733
20542
  init_types$7();
@@ -19750,10 +20559,16 @@ var init_defaults = __esmMin((() => {
19750
20559
  init_curatedSiteStyles();
19751
20560
  }));
19752
20561
  //#endregion
20562
+ //#region ../theme-core/src/inputs/checkable.ts
20563
+ var init_checkable = __esmMin((() => {
20564
+ init_colorStyles();
20565
+ }));
20566
+ //#endregion
19753
20567
  //#region ../theme-core/src/inputs/generateInputCss.ts
19754
20568
  var init_generateInputCss = __esmMin((() => {
19755
20569
  init_types$10();
19756
20570
  init_colorStyles();
20571
+ init_checkable();
19757
20572
  }));
19758
20573
  //#endregion
19759
20574
  //#region ../theme-core/src/navigation/generateNavLinkCSS.ts
@@ -19959,18 +20774,16 @@ var init_footer = __esmMin((() => {
19959
20774
  init_generateFooterCss();
19960
20775
  }));
19961
20776
  //#endregion
20777
+ //#region ../theme-core/src/layout/boundaryCss.ts
20778
+ var init_boundaryCss = __esmMin((() => {
20779
+ init_sectionTransitions();
20780
+ init_transitionCatalogue();
20781
+ }));
20782
+ //#endregion
19962
20783
  //#region ../theme-core/src/layout/generateLayoutCss.ts
19963
- function svgDataUrl(svg) {
19964
- return `data:image/svg+xml,${encodeURIComponent(svg)}`;
19965
- }
19966
20784
  var init_generateLayoutCss = __esmMin((() => {
19967
20785
  init_breakpoints();
19968
- init_sectionTransitions();
19969
- svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V46C130 55 260 24 420 30C590 36 690 62 860 42C1035 21 1160 47 1305 36C1365 31 1415 33 1440 38V72H0Z' fill='white'/></svg>");
19970
- svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V42C120 24 240 24 360 42C480 60 600 60 720 42C840 24 960 24 1080 42C1200 60 1320 60 1440 42V72H0Z' fill='white'/></svg>");
19971
- svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V43C180 32 300 32 480 43C660 54 780 54 960 43C1140 32 1260 32 1440 43V72H0Z' fill='white'/></svg>");
19972
- svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V44C90 14 270 14 360 44C450 74 630 74 720 44C810 14 990 14 1080 44C1170 74 1350 74 1440 44V72H0Z' fill='white'/></svg>");
19973
- svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V39C115 31 205 54 340 48C505 41 610 16 760 33C920 51 1015 64 1160 44C1280 27 1375 35 1440 50V72H0Z' fill='white'/></svg>");
20786
+ init_boundaryCss();
19974
20787
  }));
19975
20788
  //#endregion
19976
20789
  //#region ../theme-core/src/layout/index.ts
@@ -20671,6 +21484,7 @@ var init_core$2 = __esmMin((() => {
20671
21484
  //#region ../theme-core/src/inputs/core.ts
20672
21485
  var init_core$1 = __esmMin((() => {
20673
21486
  init_colorStyles();
21487
+ init_checkable();
20674
21488
  }));
20675
21489
  var init_buildThemeRuntimeFromBridge = __esmMin((() => {
20676
21490
  init_shadow();
@@ -21211,7 +22025,8 @@ var init_schema = __esmMin((() => {
21211
22025
  "eventCategories",
21212
22026
  "eventSeries",
21213
22027
  "venues",
21214
- "staffMembers"
22028
+ "staffMembers",
22029
+ "appointmentServiceCategories"
21215
22030
  ];
21216
22031
  mediaDeliverySchema = z.object({
21217
22032
  sizes: z.string().optional(),
@@ -32976,13 +33791,13 @@ var init_site_footer = __esmMin((() => {
32976
33791
  as: "p",
32977
33792
  className: "rb-caption rb-opacity-70"
32978
33793
  }, bind$1("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
32979
- socials = inline({ className: "rb-flex rb-flex-wrap rb-gap-x-5 rb-gap-y-3" }, [link({
33794
+ socials = inline({ className: "rb-footer-socials" }, [link({
32980
33795
  href: { $bind: { from: "social.href" } },
32981
33796
  target: "_blank",
32982
33797
  rel: "noreferrer noopener",
32983
33798
  "aria-label": { $bind: { from: "social.label" } },
32984
- className: "rb-nav-text transition-theme-standard"
32985
- }, [icon({ className: "rb-h-5 rb-w-5" }, bind$1("social.icon"), when("social.icon")), text({ as: "span" }, bind$1("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
33799
+ className: "rb-footer-social-link rb-nav-text transition-theme-standard"
33800
+ }, [icon({ className: "rb-footer-social-icon" }, bind$1("social.icon"), when("social.icon")), text({ as: "span" }, bind$1("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
32986
33801
  authoredCopy = richText({
32987
33802
  className: "rb-prose rb-prose-sm rb-max-w-none",
32988
33803
  style: textColorStyle("text/80")
@@ -34672,6 +35487,7 @@ var init_appointment_services = __esmMin((() => {
34672
35487
  init_fragments$1();
34673
35488
  init_boxStyles$1();
34674
35489
  init_defineBlock();
35490
+ init_schema();
34675
35491
  appointmentServicesManifest = createBlockManifest({
34676
35492
  id: "block.appointment-services",
34677
35493
  version: "1.0.0",
@@ -34696,6 +35512,15 @@ var init_appointment_services = __esmMin((() => {
34696
35512
  required: false,
34697
35513
  ui: { intent: "content" }
34698
35514
  },
35515
+ createSiteOptionSelectField({
35516
+ id: "categoryId",
35517
+ label: "Category",
35518
+ description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
35519
+ required: false,
35520
+ multiple: false,
35521
+ optionSource: "appointmentServiceCategories",
35522
+ ui: { intent: "content" }
35523
+ }),
34699
35524
  sectionStylesField({
34700
35525
  id: "_sectionStyles",
34701
35526
  label: "Section styles",
@@ -34730,6 +35555,7 @@ var init_appointment_services = __esmMin((() => {
34730
35555
  richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
34731
35556
  el$1("appointment-services", {
34732
35557
  sectionHeading: { $bind: { from: "content.heading" } },
35558
+ categoryId: { $bind: { from: "content.categoryId" } },
34733
35559
  services: { $bind: { from: "data.services" } },
34734
35560
  pathname: { $bind: { from: "$root.pathname" } },
34735
35561
  servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
@@ -42948,16 +43774,21 @@ function buildNewsletterDisplay(source) {
42948
43774
  }
42949
43775
  function projectNewsletterFormHydrationTarget(source) {
42950
43776
  switch (source.source) {
42951
- case "block": {
42952
- const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
42953
- if (sourceRef?.tag === "block_ref") return {
43777
+ case "block": switch (source.newsletterBlockSubmission.tag) {
43778
+ case "unpublished-form":
43779
+ case "unpublished-settings": return {
43780
+ tag: "unpublished-preview",
43781
+ reason: source.newsletterBlockSubmission.tag
43782
+ };
43783
+ case "ready": return {
42954
43784
  tag: "block-source",
42955
- sourceRef
43785
+ sourceRef: source.newsletterBlockSubmission.sourceRef
42956
43786
  };
42957
- return {
43787
+ case "unavailable": return {
42958
43788
  tag: "block-source",
42959
43789
  sourceRef: null
42960
43790
  };
43791
+ default: return assertNever$4(source.newsletterBlockSubmission);
42961
43792
  }
42962
43793
  case "signed-footer": return {
42963
43794
  tag: "signed-footer-source",
@@ -43032,7 +43863,7 @@ function parseRequiredMailingListSignedSourceToken(value) {
43032
43863
  if (!parsed) throw new Error("Mailing-list signup signed source ref requires token");
43033
43864
  return parsed;
43034
43865
  }
43035
- var newsletterButtonVariantSchema, mailingListContextSchema, mailingListTargetingSchema, newsletterFieldSchema, mailingListSignupBlockIdSchema, mailingListContentVersionIdSchema, signedMailingListSourceTokenSchema, newsletterSourceCommonSchema, newsletterSourceSchema, newsletterDisplaySchema, newsletterHydrationSchema, newsletterRenderSchema, newsletterFormBlockRuntime;
43866
+ var newsletterButtonVariantSchema, mailingListContextSchema, mailingListTargetingSchema, newsletterFieldSchema, mailingListSignupBlockIdSchema, mailingListContentVersionIdSchema, mailingListSignupBlockSourceRefSchema, signedMailingListSourceTokenSchema, newsletterSourceCommonSchema, newsletterSourceSchema, newsletterDisplaySchema, newsletterHydrationSchema, newsletterRenderSchema, newsletterFormBlockRuntime;
43036
43867
  var init_newsletter_form_interactive = __esmMin((() => {
43037
43868
  init_src$4();
43038
43869
  init_islands();
@@ -43079,6 +43910,11 @@ var init_newsletter_form_interactive = __esmMin((() => {
43079
43910
  });
43080
43911
  return z.NEVER;
43081
43912
  });
43913
+ mailingListSignupBlockSourceRefSchema = z.object({
43914
+ tag: z.literal("block_ref"),
43915
+ blockId: mailingListSignupBlockIdSchema,
43916
+ contentVersionId: mailingListContentVersionIdSchema
43917
+ });
43082
43918
  signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
43083
43919
  newsletterSourceCommonSchema = z.object({
43084
43920
  siteId: z.string().optional(),
@@ -43093,7 +43929,15 @@ var init_newsletter_form_interactive = __esmMin((() => {
43093
43929
  newsletterSourceCommonSchema.extend({
43094
43930
  source: z.literal("block"),
43095
43931
  blockId: z.string().nullable().optional(),
43096
- contentVersionId: z.string().nullable().optional()
43932
+ newsletterBlockSubmission: z.discriminatedUnion("tag", [
43933
+ z.object({
43934
+ tag: z.literal("ready"),
43935
+ sourceRef: mailingListSignupBlockSourceRefSchema
43936
+ }),
43937
+ z.object({ tag: z.literal("unpublished-form") }),
43938
+ z.object({ tag: z.literal("unpublished-settings") }),
43939
+ z.object({ tag: z.literal("unavailable") })
43940
+ ])
43097
43941
  }),
43098
43942
  newsletterSourceCommonSchema.extend({
43099
43943
  source: z.literal("signed-footer"),
@@ -43122,11 +43966,7 @@ var init_newsletter_form_interactive = __esmMin((() => {
43122
43966
  target: z.discriminatedUnion("tag", [
43123
43967
  z.object({
43124
43968
  tag: z.literal("block-source"),
43125
- sourceRef: z.object({
43126
- tag: z.literal("block_ref"),
43127
- blockId: mailingListSignupBlockIdSchema,
43128
- contentVersionId: mailingListContentVersionIdSchema
43129
- }).nullable()
43969
+ sourceRef: mailingListSignupBlockSourceRefSchema.nullable()
43130
43970
  }),
43131
43971
  z.object({
43132
43972
  tag: z.literal("signed-footer-source"),
@@ -43135,7 +43975,11 @@ var init_newsletter_form_interactive = __esmMin((() => {
43135
43975
  token: signedMailingListSourceTokenSchema
43136
43976
  })
43137
43977
  }),
43138
- z.object({ tag: z.literal("preview") })
43978
+ z.object({ tag: z.literal("preview") }),
43979
+ z.object({
43980
+ tag: z.literal("unpublished-preview"),
43981
+ reason: z.enum(["unpublished-form", "unpublished-settings"])
43982
+ })
43139
43983
  ]),
43140
43984
  setupRevision: z.number().int().positive().nullable(),
43141
43985
  choiceProvider: z.enum([
@@ -45961,6 +46805,17 @@ function coerceToString(value) {
45961
46805
  return "";
45962
46806
  }
45963
46807
  /**
46808
+ * The appointment-services catalogue (issue 1403) pairs the services with the
46809
+ * site's ordered categories. Both are needed to group them, so that response
46810
+ * is passed through whole; any other `{ services }` wrapper is unwrapped.
46811
+ */
46812
+ function coerceServicesPayload(record) {
46813
+ return Array.isArray(record.services) && Array.isArray(record.categories) ? {
46814
+ services: record.services,
46815
+ categories: record.categories
46816
+ } : record.services;
46817
+ }
46818
+ /**
45964
46819
  * Extract data from API response.
45965
46820
  * Unwraps common response wrappers: { data }, { form }, { entries }, { services }, { teamMembers }
45966
46821
  *
@@ -45975,7 +46830,7 @@ function coercePayload(payload) {
45975
46830
  if ("data" in record && typeof record.data !== "function") return record.data;
45976
46831
  if ("form" in record && typeof record.form !== "function") return record.form;
45977
46832
  if ("entries" in record && typeof record.entries !== "function") return record.entries;
45978
- if ("services" in record && typeof record.services !== "function") return record.services;
46833
+ if ("services" in record && typeof record.services !== "function") return coerceServicesPayload(record);
45979
46834
  if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
45980
46835
  }
45981
46836
  return payload;
@@ -46197,6 +47052,7 @@ var init_data = __esmMin((() => {
46197
47052
  //#endregion
46198
47053
  //#region ../blocks/src/index.ts
46199
47054
  var init_src$2 = __esmMin((() => {
47055
+ init_pageRenderAdmission();
46200
47056
  init_subroutes();
46201
47057
  init_schema$2();
46202
47058
  init_palette();
@@ -46548,10 +47404,47 @@ var init_siteOnboarding = __esmMin((() => {
46548
47404
  //#region ../api/src/launchReadiness.ts
46549
47405
  var init_launchReadiness = __esmMin((() => {
46550
47406
  init_siteOnboarding();
46551
- })), SURFACE_IDS, DEFAULT_SURFACE_ID, NAMED_SURFACE_IDS;
47407
+ }));
47408
+ //#endregion
47409
+ //#region ../surfaces/src/index.ts
47410
+ function surfaceHostTableValues(table) {
47411
+ return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
47412
+ }
47413
+ function siteSlugLabelUnderRoot(host, siteRootHost) {
47414
+ if (!host.endsWith(`.${siteRootHost}`)) return [];
47415
+ return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
47416
+ }
47417
+ function deriveSurfaceOwnedSiteSlugs() {
47418
+ const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
47419
+ const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
47420
+ return [...new Set(labels)].sort();
47421
+ }
47422
+ var SURFACE_IDS, DEFAULT_SURFACE_ID, SURFACE_ROOT_HOSTS, SURFACE_SITE_ROOT_HOSTS, SURFACE_SITE_ROOT_HOST_ALIASES, NAMED_SURFACE_IDS;
46552
47423
  var init_src$1 = __esmMin((() => {
46553
47424
  SURFACE_IDS = ["core", "macadamia"];
46554
47425
  DEFAULT_SURFACE_ID = "core";
47426
+ SURFACE_ROOT_HOSTS = {
47427
+ core: {
47428
+ local: "localhost",
47429
+ prod: "riverbankcms.com"
47430
+ },
47431
+ macadamia: {
47432
+ local: "macadamia.localhost",
47433
+ prod: "macadamia.studio"
47434
+ }
47435
+ };
47436
+ SURFACE_SITE_ROOT_HOSTS = {
47437
+ core: {
47438
+ local: "localhost",
47439
+ prod: "riverbanksites.com"
47440
+ },
47441
+ macadamia: {
47442
+ local: "macadamia.localhost",
47443
+ prod: "macadamia.studio"
47444
+ }
47445
+ };
47446
+ SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
47447
+ deriveSurfaceOwnedSiteSlugs();
46555
47448
  NAMED_SURFACE_IDS = SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID);
46556
47449
  [...NAMED_SURFACE_IDS];
46557
47450
  }));
@@ -46984,7 +47877,12 @@ var init_appointmentSetup = __esmMin((() => {
46984
47877
  venue: appointmentSetupVenueChoiceSchema,
46985
47878
  timezone: z.string().trim().min(1).nullable(),
46986
47879
  payment: appointmentSetupPaymentDraftSchema,
46987
- assignment: appointmentSetupServiceAssignmentDraftSchema
47880
+ assignment: appointmentSetupServiceAssignmentDraftSchema,
47881
+ /**
47882
+ * The service's category, or null for "Other" (issue 1403). Omitted leaves
47883
+ * an existing service's category alone and puts a new one in "Other".
47884
+ */
47885
+ categoryId: z.string().uuid().nullable().optional()
46988
47886
  }).superRefine((service, ctx) => {
46989
47887
  if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
46990
47888
  code: "custom",
@@ -47361,6 +48259,11 @@ var init_pages = __esmMin((() => {
47361
48259
  var init_routes = __esmMin((() => {
47362
48260
  init_envelope();
47363
48261
  init_error_propagation();
48262
+ })), EVENT_VISIBILITY_VALUES, EVENT_VISIBILITY_ERROR_MESSAGE;
48263
+ var init_event_visibility = __esmMin((() => {
48264
+ EVENT_VISIBILITY_VALUES = ["public", "unlisted"];
48265
+ EVENT_VISIBILITY_ERROR_MESSAGE = "visibility must be 'public' or 'unlisted'";
48266
+ z.enum(EVENT_VISIBILITY_VALUES, { error: EVENT_VISIBILITY_ERROR_MESSAGE });
47364
48267
  })), bookingDepositRefundPolicySchema, bookingInstalmentPlanSchema, bookingFlexibleBalanceDueDateRuleSchema, bookingFlexibleBalanceConfigSchema;
47365
48268
  var init_bookingPaymentTermSchemas = __esmMin((() => {
47366
48269
  bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
@@ -47629,6 +48532,7 @@ var init_auth = __esmMin((() => {
47629
48532
  //#region ../api/src/index.ts
47630
48533
  var init_src = __esmMin((() => {
47631
48534
  init_endpoints();
48535
+ init_clientErrorReporting();
47632
48536
  init_preview_auth();
47633
48537
  init_footerSettings();
47634
48538
  init_accountEndpoints();
@@ -47664,6 +48568,7 @@ var init_src = __esmMin((() => {
47664
48568
  init_pages();
47665
48569
  init_routes();
47666
48570
  init_appointmentServiceContracts();
48571
+ init_event_visibility();
47667
48572
  init_bookingPaymentTermSchemas();
47668
48573
  init_bookingRecords();
47669
48574
  init_emailSettings();
@@ -48134,21 +49039,39 @@ function buildSiteRenderSupport(site, mediaAssets) {
48134
49039
  function collectMediaAssetSidecar(mediaAssets) {
48135
49040
  return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
48136
49041
  }
48137
- function convertPageResponseBlock(block) {
49042
+ function readBlockContentId(value, name) {
49043
+ if (value === null || value === void 0) return null;
49044
+ if (typeof value === "string") return value;
49045
+ throw new Error(`Invalid ${name} in page: expected string or null`);
49046
+ }
49047
+ function readTransportedBlockIdentity(block, kind, stage) {
49048
+ return {
49049
+ draftContentId: readBlockContentId(block.draftContentId, "draft content id"),
49050
+ publishedPlacement: stage === "preview" ? readPublishedBlockPlacement(readBlockContentId(block.publishedContentId, "published content id"), sanitizeNullableSdkRuntimeBlockContent(kind, readNestedContentRecord(block.publishedContent))) : null
49051
+ };
49052
+ }
49053
+ function convertPageResponseBlock(block, stage) {
48138
49054
  if (!isRecord(block)) throw new Error("Invalid block format in page API response");
49055
+ const header = readTransportedBlockHeader(block);
49056
+ const admission = readInvalidBlockAdmission(block.admission);
49057
+ return {
49058
+ ...header,
49059
+ ...readTransportedBlockIdentity(block, header.kind, stage),
49060
+ content: sanitizeSdkRuntimeBlockContent(header.kind, readContentRecord(block.content) ?? {}),
49061
+ draftContent: sanitizeNullableSdkRuntimeBlockContent(header.kind, readNestedContentRecord(block.draftContent)),
49062
+ ...admission ? { admission } : {}
49063
+ };
49064
+ }
49065
+ function readTransportedBlockHeader(block) {
48139
49066
  if (typeof block.id !== "string" && block.id !== null) throw new Error(`Invalid block id in page: expected string or null, got ${typeof block.id}`);
48140
49067
  if (typeof block.kind !== "string") throw new Error(`Invalid block kind in page: expected string, got ${typeof block.kind}`);
48141
49068
  if (typeof block.purpose !== "string") throw new Error(`Invalid block purpose in page: expected string, got ${typeof block.purpose}`);
48142
49069
  if (block.contentVersionId !== void 0 && block.contentVersionId !== null && typeof block.contentVersionId !== "string") throw new Error(`Invalid content version id in page: expected string or null, got ${typeof block.contentVersionId}`);
48143
- const admission = readInvalidBlockAdmission(block.admission);
48144
49070
  return {
48145
49071
  id: block.id,
48146
49072
  ...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
48147
49073
  kind: block.kind,
48148
- purpose: block.purpose,
48149
- content: sanitizeSdkRuntimeBlockContent(block.kind, readContentRecord(block.content) ?? {}),
48150
- draftContent: sanitizeNullableSdkRuntimeBlockContent(block.kind, readNestedContentRecord(block.draftContent)),
48151
- ...admission ? { admission } : {}
49074
+ purpose: block.purpose
48152
49075
  };
48153
49076
  }
48154
49077
  function readInvalidBlockAdmission(value) {
@@ -48161,7 +49084,7 @@ function buildPageOutline(input) {
48161
49084
  name: input.name,
48162
49085
  path: input.path ?? input.fallbackPath,
48163
49086
  purpose: input.purpose,
48164
- blocks: input.blocks.map(convertPageResponseBlock)
49087
+ blocks: input.blocks.map((block) => convertPageResponseBlock(block, input.previewStage))
48165
49088
  };
48166
49089
  }
48167
49090
  function buildRenderablePageOutline(input) {
@@ -48187,6 +49110,8 @@ function projectRenderablePageOutline(page) {
48187
49110
  function admitSdkRuntimePageBlock(block, customBlocks) {
48188
49111
  const base = {
48189
49112
  id: block.id,
49113
+ draftContentId: block.draftContentId,
49114
+ publishedPlacement: block.publishedPlacement,
48190
49115
  ...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
48191
49116
  kind: block.kind,
48192
49117
  purpose: block.purpose,
@@ -48348,23 +49273,23 @@ async function loadPageWithDeps(deps, params) {
48348
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.");
48349
49274
  const { page: pageData } = pageResponse;
48350
49275
  const support = buildSiteRenderSupport(site, collectMediaAssetSidecar(pageResponse.mediaAssets));
49276
+ const previewStage = preview ? "preview" : "published";
48351
49277
  const pageOutline = buildRenderablePageOutline({
48352
49278
  name: pageData.name,
48353
49279
  path: pageData.path,
48354
49280
  fallbackPath: path,
48355
49281
  purpose: pageData.purpose,
48356
49282
  blocks: pageData.blocks,
49283
+ previewStage,
48357
49284
  customBlocks: support.customBlocks
48358
49285
  });
48359
- const previewStage = preview ? "preview" : "published";
48360
- const renderTarget = {
48361
- kind: "page",
48362
- pageId: pageId ?? pageData.id
48363
- };
48364
49286
  const resolvedData = await resolveBlockDataWithDeps(deps, {
48365
49287
  page: projectRenderablePageOutline(pageOutline),
48366
49288
  siteId,
48367
- renderTarget,
49289
+ renderTarget: {
49290
+ kind: "page",
49291
+ pageId: pageId ?? pageData.id
49292
+ },
48368
49293
  previewStage,
48369
49294
  policy: createBlockDataLoadPolicy(dataLoaderOverrides, normalizeDataLoaderSearchParams(searchParams)),
48370
49295
  client,
@@ -48372,11 +49297,12 @@ async function loadPageWithDeps(deps, params) {
48372
49297
  });
48373
49298
  return {
48374
49299
  page: pageOutline,
48375
- runtimeBoundaries: pageData.runtimeBoundaries,
49300
+ runtimeJoins: pageData.runtimeJoins,
48376
49301
  theme: requireSdkTheme(support.theme, siteId),
48377
49302
  sdkConfig: support.sdkConfig,
48378
49303
  siteId,
48379
49304
  resolvedData,
49305
+ dataContext: { previewStage },
48380
49306
  bookingOfferingPresets: support.bookingOfferingPresets,
48381
49307
  mailingList: support.mailingList,
48382
49308
  bookingTimeZone: support.bookingTimeZone,