@riverbankcms/sdk 0.138.0 → 0.140.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 (293) hide show
  1. package/README.md +12 -16
  2. package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-CUyTzd5z.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-Agkw4v5i.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-CN0ewic5.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-DdbeAdS8.mjs} +62 -28
  6. package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-CqGOz-Kv.mjs} +8467 -5616
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +264 -495
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +221 -242
  9. package/dist/_dts/api/src/accessAdmin.d.ts +74 -104
  10. package/dist/_dts/api/src/aiEndpoints.d.ts +5 -1
  11. package/dist/_dts/api/src/authSubmission.d.ts +46 -0
  12. package/dist/_dts/api/src/billing.d.ts +18 -7
  13. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +23 -0
  14. package/dist/_dts/api/src/billingEndpointTypes.d.ts +26 -0
  15. package/dist/_dts/api/src/blocks.d.ts +2 -0
  16. package/dist/_dts/api/src/bookingRecords.d.ts +1 -2
  17. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +8 -1
  18. package/dist/_dts/api/src/communications.d.ts +0 -1
  19. package/dist/_dts/api/src/contentRuntime.d.ts +16 -4
  20. package/dist/_dts/api/src/endpoints.d.ts +275 -167
  21. package/dist/_dts/api/src/event-destination-policy.d.ts +2 -1
  22. package/dist/_dts/api/src/footerSettings.d.ts +10 -10
  23. package/dist/_dts/api/src/index.d.ts +11 -10
  24. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  25. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  26. package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
  27. package/dist/_dts/api/src/mailingListIntegration.d.ts +123 -0
  28. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
  29. package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
  30. package/dist/_dts/api/src/navigation/types.d.ts +1 -1
  31. package/dist/_dts/api/src/navigation.d.ts +1 -26
  32. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
  33. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +25 -0
  34. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
  35. package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
  36. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +14 -6
  37. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
  38. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +1 -0
  39. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +11 -3
  40. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
  41. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +9 -49
  42. package/dist/_dts/api/src/publicOnboardingAttemptEndpointDefinitions.d.ts +65 -0
  43. package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
  44. package/dist/_dts/api/src/saveOutcome.d.ts +20 -0
  45. package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
  46. package/dist/_dts/api/src/sdkContracts.d.ts +5 -32
  47. package/dist/_dts/api/src/sdkPushContracts.d.ts +18 -0
  48. package/dist/_dts/api/src/sdkThemeWire.d.ts +46 -46
  49. package/dist/_dts/api/src/settings/permissions.d.ts +12 -0
  50. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +9 -34
  51. package/dist/_dts/api/src/siteOnboarding.d.ts +84 -228
  52. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -13
  53. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -1
  54. package/dist/_dts/api/src/siteSettings.d.ts +38 -6
  55. package/dist/_dts/api/src/types.d.ts +78 -77
  56. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -37
  57. package/dist/_dts/billing/src/membership/index.d.ts +17 -7
  58. package/dist/_dts/billing/src/plans/display.d.ts +15 -0
  59. package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
  60. package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
  61. package/dist/_dts/billing/src/plans/types.d.ts +4 -7
  62. package/dist/_dts/billing/src/site-arrangements.d.ts +14 -3
  63. package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
  64. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
  65. package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
  66. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
  67. package/dist/_dts/blocks/src/client.d.ts +1 -1
  68. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -20
  69. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +2 -0
  70. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +9 -0
  71. package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
  72. package/dist/_dts/blocks/src/portal/types.d.ts +2 -4
  73. package/dist/_dts/blocks/src/portal/waitlist-types.d.ts +35 -0
  74. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
  75. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
  76. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -0
  77. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
  78. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
  79. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
  80. package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
  81. package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
  82. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
  83. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
  84. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  85. package/dist/_dts/blocks/src/system/data/index.d.ts +4 -4
  86. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  87. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +2 -1
  88. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
  89. package/dist/_dts/blocks/src/system/data/types.d.ts +9 -0
  90. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
  91. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  92. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -28
  93. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +7 -3
  95. package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
  96. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
  97. package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -2
  98. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +78 -30
  99. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +39 -15
  100. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
  101. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
  102. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +94 -0
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +1 -2
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +2 -0
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +14 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +56 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -8
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +8 -0
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -7
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +12 -2
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +18 -0
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.client.d.ts +1 -1
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -7
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +4 -2
  116. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
  120. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
  121. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
  122. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
  123. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
  124. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
  125. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
  126. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  127. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
  128. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  129. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
  130. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
  131. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
  134. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
  135. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
  136. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +62 -33
  137. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
  138. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +14 -31
  139. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
  140. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
  141. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
  142. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +1 -0
  143. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -6
  144. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  145. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +2 -0
  146. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
  147. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  148. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  149. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +32 -16
  150. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
  151. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -1
  152. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
  153. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +3 -1
  154. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +4 -2
  155. package/dist/_dts/core/src/branded.d.ts +0 -8
  156. package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
  157. package/dist/_dts/core/src/index.d.ts +10 -1
  158. package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
  159. package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
  160. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
  161. package/dist/_dts/core/src/mailing-list-setup.d.ts +142 -0
  162. package/dist/_dts/core/src/mailing-list-submission.d.ts +224 -0
  163. package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
  164. package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
  165. package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
  166. package/dist/_dts/core/src/participants.d.ts +2 -29
  167. package/dist/_dts/core/src/public-experience.d.ts +4 -0
  168. package/dist/_dts/core/src/public-profile.d.ts +35 -1
  169. package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
  170. package/dist/_dts/core/src/site-route-target.d.ts +9 -2
  171. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +797 -954
  172. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  173. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListGlobalSettingsSummary.d.ts +10 -0
  174. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +12 -0
  175. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +14 -0
  176. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
  177. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +7 -0
  178. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +19 -0
  179. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  180. package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
  181. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
  182. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
  183. package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
  184. package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
  185. package/dist/_dts/sdk/src/constants.d.ts +3 -3
  186. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  187. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
  188. package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
  189. package/dist/_dts/sdk/src/next/index.d.ts +4 -4
  190. package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
  191. package/dist/_dts/sdk/src/public-api/contracts.d.ts +44 -33
  192. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +5 -0
  193. package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
  194. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -0
  195. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
  196. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +8 -1
  197. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +1 -0
  198. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  199. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  200. package/dist/_dts/sdk/src/version.d.ts +1 -1
  201. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  202. package/dist/_dts/theme-core/src/cards/types.d.ts +21 -21
  203. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  204. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +8 -2
  205. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -2
  206. package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
  207. package/dist/_dts/theme-core/src/index.d.ts +1 -0
  208. package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
  209. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +54 -54
  210. package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
  211. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -4
  212. package/dist/_dts/theme-core/src/schema.d.ts +84 -84
  213. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
  214. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  215. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +77 -0
  216. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  217. package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
  218. package/dist/_dts/theme-core/src/typography/generateTypographyCss.d.ts +2 -2
  219. package/dist/_dts/ui/src/badge.d.ts +1 -1
  220. package/dist/_dts/ui/src/callout.d.ts +1 -1
  221. package/dist/_dts/ui/src/lib/use-delayed-flag.d.ts +9 -0
  222. package/dist/_dts/ui/src/pending-button.d.ts +10 -0
  223. package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CuKa82V4.mjs} +4 -4
  224. package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-BbYieKWB.mjs} +1 -1
  225. package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-LTfR1Aby.mjs} +444 -200
  226. package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-DUHpYSuo.mjs} +2 -2
  227. package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-CHRupL6m.mjs} +1 -1
  228. package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-6HiIFxNL.mjs} +1 -1
  229. package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-Dlmid43H.mjs} +7 -7
  230. package/dist/client/bookings.mjs +368 -142
  231. package/dist/client/{carousel-DSmOx3ad.mjs → carousel-DmkZRRq_.mjs} +2 -2
  232. package/dist/client/{carousel.client-59G_WMr4.mjs → carousel.client-DQTjCVQT.mjs} +1 -1
  233. package/dist/client/{cart-COWeOIUk.mjs → cart-CIC24330.mjs} +3 -3
  234. package/dist/client/{checkout-CeysaIJK.mjs → checkout-D1Zw9imo.mjs} +3 -3
  235. package/dist/client/{checkoutUrls-BuseL0dw.mjs → checkoutUrls-FL6lRkrt.mjs} +1 -1
  236. package/dist/client/client.mjs +5017 -2258
  237. package/dist/client/{colorStyles-CrxJrPjJ.mjs → colorStyles-3013aRAY.mjs} +3 -1
  238. package/dist/client/{context-DBzX85Xc.mjs → context-Cy1OayHx.mjs} +9 -21
  239. package/dist/client/{dates-DCYhZBlW.mjs → dates-aDcfoLHr.mjs} +21 -3
  240. package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-FQxMPAjf.mjs} +81 -79
  241. package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-Dr3ac6Hb.mjs} +3 -3
  242. package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-D-AzUHFQ.mjs} +4 -4
  243. package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-B3XxBf3i.mjs} +3 -3
  244. package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-I6EaokFD.mjs} +543 -155
  245. package/dist/client/{form-ClfpasVT.mjs → form-BbWckVWY.mjs} +3 -3
  246. package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-C9qU4Y7x.mjs} +2 -2
  247. package/dist/client/hooks.mjs +1685 -716
  248. package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CLCShvlG.mjs} +3 -3
  249. package/dist/client/{media-BOHuueS5.mjs → media-DHpfFwd3.mjs} +1 -1
  250. package/dist/client/newsletterForm-Briukxzi.mjs +444 -0
  251. package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Copadu-2.mjs} +1 -1
  252. package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-oujlRd-r.mjs} +3 -3
  253. package/dist/client/{productList-OTdZu8sb.mjs → productList-BRiIRUcd.mjs} +3 -3
  254. package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-CB2KS_ko.mjs} +706 -160
  255. package/dist/client/rendering/client.mjs +3161 -1226
  256. package/dist/client/rendering/islands.mjs +19 -19
  257. package/dist/client/rendering.mjs +4864 -1914
  258. package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-B1IS1_ua.mjs} +1 -1
  259. package/dist/client/{shop-CP4YbDL9.mjs → shop-Vn6yNFED.mjs} +6 -6
  260. package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BVTqipYp.mjs} +7 -7
  261. package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-BVnJVy7v.mjs} +1 -1
  262. package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-COIeK77T.mjs} +4 -4
  263. package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-DzIUcS9n.mjs} +58 -11
  264. package/dist/preview-next/before-render.mjs +357 -175
  265. package/dist/preview-next/client/runtime.mjs +4 -4
  266. package/dist/preview-next/keepAlive.mjs +357 -175
  267. package/dist/preview-next/middleware.mjs +357 -175
  268. package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-Gjb6r6vz.mjs} +357 -175
  269. package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-CnCLvZRv.mjs} +2 -2
  270. package/dist/{separator-BeqDLneQ.mjs → separator-DKDRJ1oH.mjs} +1 -1
  271. package/dist/server/components.mjs +3389 -1251
  272. package/dist/server/config-validation.mjs +2737 -1784
  273. package/dist/server/config.mjs +2742 -1788
  274. package/dist/server/data.mjs +1586 -615
  275. package/dist/server/index.mjs +496 -352
  276. package/dist/server/navigation.mjs +16 -47
  277. package/dist/server/next.mjs +3978 -2007
  278. package/dist/server/page-converter.mjs +1109 -553
  279. package/dist/server/prebuild.mjs +2 -3
  280. package/dist/server/rendering/server.mjs +4101 -1951
  281. package/dist/server/rendering.mjs +3416 -1259
  282. package/dist/server/routing.mjs +1869 -786
  283. package/dist/server/server.mjs +3260 -2482
  284. package/dist/server/theme-bridge.mjs +725 -124
  285. package/dist/server/theme.mjs +8 -2
  286. package/dist/styles/index.css +526 -68
  287. package/package.json +1 -1
  288. package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
  289. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
  290. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +0 -29
  291. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +0 -13
  292. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
  293. package/dist/client/newsletterForm-IbrHjMxy.mjs +0 -322
@@ -0,0 +1,224 @@
1
+ import { type Brand, type ContentVersionId, type SiteId } from './branded';
2
+ import type { FooterModuleId } from './footer-composition-types';
3
+ import type { BrevoConfirmation, MailingListGlobalForm, MailingListProvider, MailingListSetupRevision, ToggleConfirmation } from './mailing-list-setup';
4
+ import type { ResolvedMailingListTarget } from './mailing-list-targeting';
5
+ import type { BrevoConnectionId, MailchimpConnectionId } from './mailing-list-identifiers';
6
+ export declare const MAILING_LIST_SUBMISSION_BUDGET_MS = 10000;
7
+ export type MailingListBlockId = Brand<string, 'MailingListBlockId'>;
8
+ export type MailingListSignedSourceToken = Brand<string, 'MailingListSignedSourceToken'>;
9
+ export type MailingListSdkFooterBlockId = Brand<string, 'MailingListSdkFooterBlockId'>;
10
+ export type MailingListSdkContentHash = Brand<string, 'MailingListSdkContentHash'>;
11
+ export type MailingListFooterRevision = Brand<number, 'MailingListFooterRevision'>;
12
+ export type ExternalSignupConsentId = Brand<string, 'ExternalSignupConsentId'>;
13
+ export type NormalizedSubscriberEmail = Brand<string, 'NormalizedSubscriberEmail'>;
14
+ export declare function parseMailingListBlockId(value: unknown): MailingListBlockId | null;
15
+ export declare function parseMailingListSignedSourceToken(value: unknown): MailingListSignedSourceToken | null;
16
+ export declare function parseMailingListSdkFooterBlockId(value: unknown): MailingListSdkFooterBlockId | null;
17
+ export declare function parseMailingListSdkContentHash(value: unknown): MailingListSdkContentHash | null;
18
+ export declare function parseMailingListContentVersionId(value: unknown): ContentVersionId | null;
19
+ export declare function parseMailingListFooterRevision(value: unknown): MailingListFooterRevision | null;
20
+ export type MailingListSignupSource = Readonly<{
21
+ tag: 'published_block';
22
+ blockId: MailingListBlockId;
23
+ contentVersionId: ContentVersionId;
24
+ }> | Readonly<{
25
+ tag: 'applied_footer';
26
+ sectionId: FooterModuleId;
27
+ revision: MailingListFooterRevision;
28
+ }> | Readonly<{
29
+ tag: 'sdk_footer_block';
30
+ blockId: MailingListSdkFooterBlockId;
31
+ contentHash: MailingListSdkContentHash;
32
+ }>;
33
+ /** Public proof of which published placement owns a signup request. */
34
+ export type MailingListSignupSourceRef = Readonly<{
35
+ tag: 'block_ref';
36
+ blockId: MailingListBlockId;
37
+ contentVersionId: ContentVersionId;
38
+ }> | Readonly<{
39
+ tag: 'signed_source_ref';
40
+ token: MailingListSignedSourceToken;
41
+ }>;
42
+ /** Source identity signed into managed-footer and SDK-footer form tokens. */
43
+ export type MailingListSignupTokenSource = Readonly<{
44
+ kind: 'footer-composition';
45
+ sectionId: FooterModuleId;
46
+ revision: MailingListFooterRevision;
47
+ }> | Readonly<{
48
+ kind: 'sdk-footer-block';
49
+ blockId: MailingListSdkFooterBlockId;
50
+ contentHash: MailingListSdkContentHash;
51
+ }>;
52
+ export declare function buildMailingListSignupBlockSourceRef(blockId: unknown, contentVersionId: unknown): MailingListSignupSourceRef | null;
53
+ type MailingListSignupProfileBase = Readonly<{
54
+ email: NormalizedSubscriberEmail;
55
+ phone: Readonly<{
56
+ tag: 'not_collected';
57
+ }> | Readonly<{
58
+ tag: 'collected';
59
+ value: string | null;
60
+ }>;
61
+ }>;
62
+ export type ResolvedMailingListProfileField = Readonly<{
63
+ requirement: 'required';
64
+ value: string;
65
+ }> | Readonly<{
66
+ requirement: 'optional';
67
+ value: string | null;
68
+ }>;
69
+ export type MailingListSignupProfile = (MailingListSignupProfileBase & Readonly<{
70
+ preset: 'emailOnly';
71
+ }>) | (MailingListSignupProfileBase & Readonly<{
72
+ preset: 'emailName';
73
+ name: ResolvedMailingListProfileField;
74
+ }>) | (MailingListSignupProfileBase & Readonly<{
75
+ preset: 'emailFirstLast';
76
+ firstName: ResolvedMailingListProfileField;
77
+ lastName: ResolvedMailingListProfileField;
78
+ }>) | (MailingListSignupProfileBase & Readonly<{
79
+ preset: 'emailNameCompany';
80
+ name: ResolvedMailingListProfileField;
81
+ company: ResolvedMailingListProfileField;
82
+ }>);
83
+ export type MailingListSignupProfileInput = Readonly<{
84
+ email: string;
85
+ name?: string | null;
86
+ firstName?: string | null;
87
+ lastName?: string | null;
88
+ company?: string | null;
89
+ phone?: string | null;
90
+ }>;
91
+ export type MailingListSignupProfileParseError = Readonly<{
92
+ tag: 'invalid_email';
93
+ }> | Readonly<{
94
+ tag: 'required_field_missing';
95
+ field: 'name' | 'first_name' | 'last_name' | 'company';
96
+ }>;
97
+ export declare function parseMailingListSignupProfile(form: MailingListGlobalForm, input: MailingListSignupProfileInput): Readonly<{
98
+ ok: true;
99
+ value: MailingListSignupProfile;
100
+ }> | Readonly<{
101
+ ok: false;
102
+ error: MailingListSignupProfileParseError;
103
+ }>;
104
+ type ResolvedMailingListSignupIntentBase = Readonly<{
105
+ siteId: SiteId;
106
+ setupRevision: MailingListSetupRevision;
107
+ source: MailingListSignupSource;
108
+ consentedAt: string;
109
+ }>;
110
+ type ResolvedMailingListProviderIntent = Readonly<{
111
+ provider: 'native';
112
+ target: Extract<ResolvedMailingListTarget, {
113
+ provider: 'native';
114
+ }>;
115
+ confirmation: ToggleConfirmation;
116
+ }> | Readonly<{
117
+ provider: 'mailchimp';
118
+ connectionId: MailchimpConnectionId;
119
+ target: Extract<ResolvedMailingListTarget, {
120
+ provider: 'mailchimp';
121
+ }>;
122
+ confirmation: ToggleConfirmation;
123
+ }> | Readonly<{
124
+ provider: 'brevo';
125
+ connectionId: BrevoConnectionId;
126
+ target: Extract<ResolvedMailingListTarget, {
127
+ provider: 'brevo';
128
+ }>;
129
+ confirmation: BrevoConfirmation;
130
+ }>;
131
+ export type ResolvedMailingListSignupIntent = ResolvedMailingListSignupIntentBase & Readonly<{
132
+ profile: MailingListSignupProfile;
133
+ }> & ResolvedMailingListProviderIntent;
134
+ export type MailingListProviderAcknowledgement = Readonly<{
135
+ tag: 'subscribed';
136
+ }> | Readonly<{
137
+ tag: 'confirmation_requested';
138
+ }>;
139
+ export type MailingListProviderFailure = Readonly<{
140
+ tag: 'configuration_unavailable';
141
+ }> | Readonly<{
142
+ tag: 'authentication_failed';
143
+ }> | Readonly<{
144
+ tag: 'target_unavailable';
145
+ }> | Readonly<{
146
+ tag: 'profile_rejected';
147
+ }> | Readonly<{
148
+ tag: 'subscriber_suppressed';
149
+ }> | Readonly<{
150
+ tag: 'rate_limited';
151
+ }> | Readonly<{
152
+ tag: 'temporarily_unavailable';
153
+ }> | Readonly<{
154
+ tag: 'uncertain';
155
+ reason: 'deadline_exceeded' | 'network_interrupted';
156
+ }>;
157
+ export type MailingListProviderSubmissionResult = Readonly<{
158
+ ok: true;
159
+ acknowledgement: MailingListProviderAcknowledgement;
160
+ }> | Readonly<{
161
+ ok: false;
162
+ error: MailingListProviderFailure;
163
+ }>;
164
+ export type MailingListSubmissionDeadline = Readonly<{
165
+ deadlineEpochMs: number;
166
+ signal: AbortSignal;
167
+ }>;
168
+ export type MailingListProviderPort<TProvider extends MailingListProvider> = Readonly<{
169
+ submit: (intent: Extract<ResolvedMailingListSignupIntent, {
170
+ provider: TProvider;
171
+ }>, deadline: MailingListSubmissionDeadline) => Promise<MailingListProviderSubmissionResult>;
172
+ }>;
173
+ export type MailingListPublicSignupResponse = Readonly<{
174
+ tag: 'subscribed';
175
+ }> | Readonly<{
176
+ tag: 'confirmation_required';
177
+ }> | Readonly<{
178
+ tag: 'invalid_input';
179
+ reason: 'profile_rejected';
180
+ }> | Readonly<{
181
+ tag: 'unavailable';
182
+ reason: 'configuration_unavailable' | 'stale_configuration' | 'authentication_failed' | 'target_unavailable' | 'rate_limited' | 'temporarily_unavailable';
183
+ }> | Readonly<{
184
+ tag: 'uncertain';
185
+ reason: 'deadline_exceeded' | 'network_interrupted';
186
+ }>;
187
+ export declare function toMailingListPublicSignupResponse(result: MailingListProviderSubmissionResult): MailingListPublicSignupResponse;
188
+ export type ExternalSignupConsentAttemptOutcome = Readonly<{
189
+ tag: 'consent_recorded';
190
+ }> | Readonly<{
191
+ tag: 'provider_acknowledged';
192
+ acknowledgement: MailingListProviderAcknowledgement;
193
+ }> | Readonly<{
194
+ tag: 'provider_failed';
195
+ failure: MailingListProviderFailure;
196
+ }>;
197
+ type ExternalSignupConsentRecordBase = Readonly<{
198
+ id: ExternalSignupConsentId;
199
+ siteId: SiteId;
200
+ normalizedEmail: NormalizedSubscriberEmail;
201
+ consentedAt: string;
202
+ source: MailingListSignupSource;
203
+ setupRevision: MailingListSetupRevision;
204
+ ipAddress: string | null;
205
+ userAgent: string | null;
206
+ referer: string | null;
207
+ outcome: ExternalSignupConsentAttemptOutcome;
208
+ }>;
209
+ export type ExternalSignupConsentRecord = (ExternalSignupConsentRecordBase & Readonly<{
210
+ provider: 'mailchimp';
211
+ connectionId: MailchimpConnectionId;
212
+ target: Extract<ResolvedMailingListTarget, {
213
+ provider: 'mailchimp';
214
+ }>;
215
+ confirmation: ToggleConfirmation;
216
+ }>) | (ExternalSignupConsentRecordBase & Readonly<{
217
+ provider: 'brevo';
218
+ connectionId: BrevoConnectionId;
219
+ target: Extract<ResolvedMailingListTarget, {
220
+ provider: 'brevo';
221
+ }>;
222
+ confirmation: BrevoConfirmation;
223
+ }>);
224
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { MailingListPlacementTargeting, MailingListVisitorSelection } from './mailing-list-targeting';
2
+ import { type Result } from './result';
3
+ export type MailingListTargetingParseError = Readonly<{
4
+ tag: 'invalid_mailing_list_targeting';
5
+ field: 'shape' | 'mode' | 'provider' | 'selection' | 'audienceId' | 'targets' | 'duplicate_target';
6
+ }>;
7
+ export type MailingListVisitorSelectionParseError = Readonly<{
8
+ tag: 'invalid_mailing_list_visitor_selection';
9
+ field: 'shape' | 'provider' | 'targets';
10
+ }>;
11
+ export declare function parseMailingListPlacementTargeting(value: unknown): Result<MailingListPlacementTargeting, MailingListTargetingParseError>;
12
+ export declare function parseMailingListVisitorSelection(value: unknown): Result<MailingListVisitorSelection, MailingListVisitorSelectionParseError>;
@@ -0,0 +1,93 @@
1
+ import type { ReadonlyNonEmptyArray } from './non-empty-array';
2
+ import type { BrevoListId, MailchimpInterestId, MailchimpAudienceId } from './mailing-list-identifiers';
3
+ import type { ConfiguredMailingListProvider, MailingListProvider, NativeMailingListTopicId } from './mailing-list-setup';
4
+ import { type Result } from './result';
5
+ export type MailingListDefaultTargeting = Readonly<{
6
+ mode: 'default';
7
+ }>;
8
+ export type NativeMailingListCustomTargeting = Readonly<{
9
+ mode: 'custom';
10
+ provider: 'native';
11
+ selection: Readonly<{
12
+ tag: 'fixed';
13
+ topicIds: ReadonlyNonEmptyArray<NativeMailingListTopicId>;
14
+ }> | Readonly<{
15
+ tag: 'visitor_choice';
16
+ offeredTopicIds: ReadonlyNonEmptyArray<NativeMailingListTopicId>;
17
+ }>;
18
+ }>;
19
+ export type BrevoMailingListCustomTargeting = Readonly<{
20
+ mode: 'custom';
21
+ provider: 'brevo';
22
+ selection: Readonly<{
23
+ tag: 'fixed';
24
+ listIds: ReadonlyNonEmptyArray<BrevoListId>;
25
+ }> | Readonly<{
26
+ tag: 'visitor_choice';
27
+ offeredListIds: ReadonlyNonEmptyArray<BrevoListId>;
28
+ }>;
29
+ }>;
30
+ export type MailchimpMailingListCustomTargeting = Readonly<{
31
+ mode: 'custom';
32
+ provider: 'mailchimp';
33
+ audienceId: MailchimpAudienceId;
34
+ selection: Readonly<{
35
+ tag: 'fixed';
36
+ interestIds: readonly MailchimpInterestId[];
37
+ }> | Readonly<{
38
+ tag: 'visitor_choice';
39
+ offeredInterestIds: ReadonlyNonEmptyArray<MailchimpInterestId>;
40
+ }>;
41
+ }>;
42
+ export type MailingListPlacementTargeting = MailingListDefaultTargeting | NativeMailingListCustomTargeting | BrevoMailingListCustomTargeting | MailchimpMailingListCustomTargeting;
43
+ export declare function sameMailingListPlacementTargeting(left: MailingListPlacementTargeting, right: MailingListPlacementTargeting): boolean;
44
+ export type MailingListVisitorSelection = Readonly<{
45
+ provider: 'native';
46
+ topicIds: readonly NativeMailingListTopicId[];
47
+ }> | Readonly<{
48
+ provider: 'brevo';
49
+ listIds: readonly BrevoListId[];
50
+ }> | Readonly<{
51
+ provider: 'mailchimp';
52
+ interestIds: readonly MailchimpInterestId[];
53
+ }>;
54
+ export type ResolvedMailingListTarget = Readonly<{
55
+ provider: 'native';
56
+ topicIds: ReadonlyNonEmptyArray<NativeMailingListTopicId>;
57
+ }> | Readonly<{
58
+ provider: 'brevo';
59
+ listIds: ReadonlyNonEmptyArray<BrevoListId>;
60
+ }> | Readonly<{
61
+ provider: 'mailchimp';
62
+ audienceId: MailchimpAudienceId;
63
+ interestIds: readonly MailchimpInterestId[];
64
+ }>;
65
+ export type MailingListTargetResolutionError = Readonly<{
66
+ tag: 'targeting_provider_mismatch';
67
+ setupProvider: MailingListProvider;
68
+ targetingProvider: MailingListProvider;
69
+ }> | Readonly<{
70
+ tag: 'visitor_selection_not_allowed';
71
+ }> | Readonly<{
72
+ tag: 'visitor_selection_required';
73
+ }> | Readonly<{
74
+ tag: 'visitor_selection_provider_mismatch';
75
+ }> | Readonly<{
76
+ tag: 'visitor_selection_outside_offer';
77
+ }>;
78
+ export declare function resolveMailingListTarget(input: Readonly<{
79
+ setup: ConfiguredMailingListProvider;
80
+ targeting: MailingListPlacementTargeting;
81
+ visitorSelection?: MailingListVisitorSelection;
82
+ }>): Result<ResolvedMailingListTarget, MailingListTargetResolutionError>;
83
+ export type MailingListChoicePresentation = Readonly<{
84
+ tag: 'hidden';
85
+ }> | Readonly<{
86
+ tag: 'automatic';
87
+ selection: MailingListVisitorSelection;
88
+ }> | Readonly<{
89
+ tag: 'visitor_choice';
90
+ provider: MailingListProvider;
91
+ optionCount: number;
92
+ }>;
93
+ export declare function planMailingListChoicePresentation(targeting: MailingListPlacementTargeting): MailingListChoicePresentation;
@@ -0,0 +1,28 @@
1
+ import { type Result } from './result';
2
+ /** The only places a site's navigation can be displayed. */
3
+ export declare const NAVIGATION_LOCATIONS: readonly ["main", "footer", "legal"];
4
+ export type NavigationLocation = (typeof NAVIGATION_LOCATIONS)[number];
5
+ export type NavigationLocationDescriptor = Readonly<{
6
+ location: NavigationLocation;
7
+ label: string;
8
+ description: string;
9
+ }>;
10
+ export declare const NAVIGATION_LOCATION_DESCRIPTORS: Readonly<Record<NavigationLocation, NavigationLocationDescriptor>>;
11
+ export type SiteNavigationLocationRow<T = unknown> = Readonly<{
12
+ location: unknown;
13
+ value: T;
14
+ }>;
15
+ export type SiteNavigationLocationsError = Readonly<{
16
+ kind: 'invalid_location';
17
+ index: number;
18
+ value: unknown;
19
+ }> | Readonly<{
20
+ kind: 'duplicate_location';
21
+ location: NavigationLocation;
22
+ }> | Readonly<{
23
+ kind: 'missing_location';
24
+ location: NavigationLocation;
25
+ }>;
26
+ export type SiteNavigationLocations<T> = Readonly<Record<NavigationLocation, T>>;
27
+ /** Parse all rows for one site into a complete fixed-location record. */
28
+ export declare function parseSiteNavigationLocations<T>(rows: readonly SiteNavigationLocationRow<T>[]): Result<SiteNavigationLocations<T>, SiteNavigationLocationsError>;
@@ -1,4 +1,4 @@
1
- import { type AppointmentId, type AttendeeId, type Brand, type CustomerId, type EventSeriesRegistrationId, type EventAttendeeGuestId, type ParticipantId } from './branded';
1
+ import { type AppointmentId, type AttendeeId, type Brand, type CustomerId, type EventSeriesRegistrationId, type ParticipantId } from './branded';
2
2
  import { type Result } from './result';
3
3
  export type ParticipantEmail = Brand<string, 'ParticipantEmail'>;
4
4
  export type ParticipantSlotKey = Brand<string, 'ParticipantSlotKey'>;
@@ -14,26 +14,6 @@ export type ParticipantCountParseError = {
14
14
  } | {
15
15
  kind: 'non_positive_participant_count';
16
16
  };
17
- export type ProvisionalParticipantIdentity = Readonly<{
18
- kind: 'event_guest';
19
- eventAttendeeGuestId: EventAttendeeGuestId;
20
- slotKey: ParticipantSlotKey;
21
- }>;
22
- export type ProvisionalParticipantIdentityMetadata = Readonly<{
23
- kind: 'event_guest';
24
- source: 'event_guest_backfill';
25
- eventAttendeeGuestId: EventAttendeeGuestId;
26
- slotKey: ParticipantSlotKey;
27
- }>;
28
- export type ProvisionalParticipantIdentityParseError = {
29
- kind: 'not_an_object';
30
- } | {
31
- kind: 'unsupported_identity_kind';
32
- } | {
33
- kind: 'missing_event_attendee_guest_id';
34
- } | {
35
- kind: 'missing_slot_key';
36
- };
37
17
  export declare function unsafeAsParticipantSlotKey(value: string): ParticipantSlotKey;
38
18
  export declare function unsafeAsParticipantCount(value: number): ParticipantCount;
39
19
  /**
@@ -45,12 +25,6 @@ export declare function unsafeAsParticipantCount(value: number): ParticipantCoun
45
25
  export declare function normalizeParticipantEmail(value: string | null | undefined): ParticipantEmail | null;
46
26
  export declare function parseParticipantEmail(value: string | null | undefined): Result<ParticipantEmail, ParticipantEmailNormalizationError>;
47
27
  export declare function parseParticipantCount(value: number): Result<ParticipantCount, ParticipantCountParseError>;
48
- export declare function provisionalEventGuestParticipantIdentity(input: Readonly<{
49
- eventAttendeeGuestId: EventAttendeeGuestId;
50
- slotKey: ParticipantSlotKey;
51
- }>): ProvisionalParticipantIdentity;
52
- export declare function encodeProvisionalParticipantIdentity(identity: ProvisionalParticipantIdentity): ProvisionalParticipantIdentityMetadata;
53
- export declare function parseProvisionalParticipantIdentity(value: unknown): Result<ProvisionalParticipantIdentity, ProvisionalParticipantIdentityParseError>;
54
28
  export declare function deriveParticipantDisplayLabel(input: Readonly<{
55
29
  displayName: string | null;
56
30
  emailNormalized: ParticipantEmail | null;
@@ -100,7 +74,7 @@ export type ParticipantParticipation = {
100
74
  } | {
101
75
  kind: 'event_guest';
102
76
  attendeeId: AttendeeId;
103
- guestId: EventAttendeeGuestId;
77
+ guestIndex: number;
104
78
  } | {
105
79
  kind: 'event_series_registration';
106
80
  registrationId: EventSeriesRegistrationId;
@@ -177,7 +151,6 @@ export type EventRegistrationParticipantProjectionInput = Readonly<{
177
151
  customerId: CustomerId;
178
152
  };
179
153
  guests: readonly (ParticipantContactInput & {
180
- guestId: EventAttendeeGuestId;
181
154
  guestIndex: number;
182
155
  })[];
183
156
  }>;
@@ -0,0 +1,4 @@
1
+ export declare const PUBLIC_EXPERIENCES: readonly ["website", "hosted_booking"];
2
+ export type PublicExperience = (typeof PUBLIC_EXPERIENCES)[number];
3
+ export declare function isPublicExperience(value: unknown): value is PublicExperience;
4
+ export declare function parsePublicExperience(value: unknown): PublicExperience | null;
@@ -55,13 +55,42 @@ export type PublicSocialLink = Readonly<{
55
55
  label: string;
56
56
  url: string;
57
57
  }>;
58
+ /**
59
+ * Whether the site shows its business address publicly. Absent on every
60
+ * profile saved before this field existed, and the footer has always shown
61
+ * the address whenever its composition selected one, so absent reads as
62
+ * `shown`.
63
+ */
64
+ export type PublicAddressVisibility = 'shown' | 'hidden';
65
+ /**
66
+ * Whether each contact method is published on the site. Both default to shown,
67
+ * because that is what a saved contact has always meant. A hidden email can
68
+ * still be the privacy policy's contact: hiding it withholds it from the page,
69
+ * not from the policy.
70
+ */
71
+ export type PublicContactVisibility = Readonly<{
72
+ phone: PublicAddressVisibility;
73
+ email: PublicAddressVisibility;
74
+ }>;
58
75
  export type PublicProfile = Readonly<{
59
76
  contact: PublicContactDetails | null;
77
+ contactVisibility: PublicContactVisibility;
60
78
  openingHours: WeeklyOpeningHours | null;
61
79
  socialLinks: readonly PublicSocialLink[];
80
+ addressVisibility: PublicAddressVisibility;
81
+ /**
82
+ * Whether the business runs from a place people come to, which is what the
83
+ * address and opening hours belong to.
84
+ *
85
+ * Null means nobody has answered yet, and it stays null rather than
86
+ * defaulting to false: a site that already has a saved address plainly has
87
+ * premises, and only the caller holding that address can say so. Resolve it
88
+ * with `resolvePublicProfilePremises`.
89
+ */
90
+ premises: boolean | null;
62
91
  }>;
63
92
  export type PublicProfileParseError = Readonly<{
64
- code: 'invalid_shape' | 'contact_method_required' | 'invalid_email' | 'invalid_phone' | 'invalid_timezone' | 'invalid_weekdays' | 'invalid_time' | 'invalid_interval' | 'overlapping_intervals' | 'invalid_social_link' | 'duplicate_social_link_id';
93
+ code: 'invalid_shape' | 'contact_method_required' | 'invalid_email' | 'invalid_phone' | 'invalid_timezone' | 'invalid_weekdays' | 'invalid_time' | 'invalid_interval' | 'overlapping_intervals' | 'invalid_social_link' | 'invalid_address_visibility' | 'invalid_contact_visibility' | 'invalid_premises' | 'duplicate_social_link_id';
65
94
  path: string;
66
95
  message: string;
67
96
  }>;
@@ -70,4 +99,9 @@ export declare function parsePublicProfileTimeZone(value: unknown): Result<Publi
70
99
  export declare function parseWeeklyOpeningHours(value: unknown): Result<WeeklyOpeningHours, PublicProfileParseError>;
71
100
  export declare function parsePublicSocialLinks(value: unknown): Result<readonly PublicSocialLink[], PublicProfileParseError>;
72
101
  export declare function parsePublicProfile(value: unknown): Result<PublicProfile, PublicProfileParseError>;
102
+ /**
103
+ * Resolves whether a site has premises, falling back to whether it already
104
+ * holds a business address for every profile saved before the switch existed.
105
+ */
106
+ export declare function resolvePublicProfilePremises(profile: PublicProfile, hasBusinessAddress: boolean): boolean;
73
107
  export declare function emptyPublicProfile(): PublicProfile;
@@ -0,0 +1,45 @@
1
+ export type PublicReadEndpoint = 'listPublishedEntries' | 'getPublishedEntryPreview' | 'listPublicEvents' | 'listPublicEventCalendarWindow' | 'listPublicRecurringSchedule' | 'getPublicEventDetails' | 'resolveEventSubroute' | 'listPublicRouteCandidates' | 'listPublicTeamMembers' | 'listPublicProducts' | 'listPublicPasses' | 'listPublicMemberships' | 'getPublicFormById' | 'getPublicBookingServices' | 'getPublicBookingService' | 'getPublicBookingResourcesReference' | 'getPublicBookingAvailableDates' | 'getPublicBookingAvailableSlots' | 'getPublicWeeklySlotAvailability' | 'listPublicForms' | 'checkRedirect' | 'getPublicRoutableContent' | 'getPublicSitemapRoutes';
2
+ export type PublicReadCacheTagKind = 'published_content' | 'public_team_members' | 'public_products' | 'site_forms';
3
+ export type PublicReadTransport = 'direct' | 'batch_only';
4
+ export type PublicReadCachePolicy = Readonly<{
5
+ kind: 'live';
6
+ reason: 'booking_correctness';
7
+ freshness: 'availability';
8
+ transport: PublicReadTransport;
9
+ }> | Readonly<{
10
+ kind: 'tagged';
11
+ tags: readonly PublicReadCacheTagKind[];
12
+ freshness: 'content';
13
+ transport: PublicReadTransport;
14
+ }>;
15
+ export declare const PUBLIC_AVAILABILITY_FRESHNESS_SECONDS = 60;
16
+ export declare const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
17
+ /** The single classification authority for cacheable public reads. */
18
+ export declare const PUBLIC_READ_CACHE_POLICIES: {
19
+ readonly listPublishedEntries: PublicReadCachePolicy;
20
+ readonly getPublishedEntryPreview: PublicReadCachePolicy;
21
+ readonly listPublicEvents: PublicReadCachePolicy;
22
+ readonly listPublicEventCalendarWindow: PublicReadCachePolicy;
23
+ readonly listPublicRecurringSchedule: PublicReadCachePolicy;
24
+ readonly getPublicEventDetails: PublicReadCachePolicy;
25
+ readonly resolveEventSubroute: PublicReadCachePolicy;
26
+ readonly listPublicRouteCandidates: PublicReadCachePolicy;
27
+ readonly listPublicTeamMembers: PublicReadCachePolicy;
28
+ readonly listPublicProducts: PublicReadCachePolicy;
29
+ readonly listPublicPasses: PublicReadCachePolicy;
30
+ readonly listPublicMemberships: PublicReadCachePolicy;
31
+ readonly getPublicFormById: PublicReadCachePolicy;
32
+ readonly getPublicBookingServices: PublicReadCachePolicy;
33
+ readonly getPublicBookingService: PublicReadCachePolicy;
34
+ readonly getPublicBookingResourcesReference: PublicReadCachePolicy;
35
+ readonly getPublicBookingAvailableDates: PublicReadCachePolicy;
36
+ readonly getPublicBookingAvailableSlots: PublicReadCachePolicy;
37
+ readonly getPublicWeeklySlotAvailability: PublicReadCachePolicy;
38
+ readonly listPublicForms: PublicReadCachePolicy;
39
+ readonly checkRedirect: PublicReadCachePolicy;
40
+ readonly getPublicRoutableContent: PublicReadCachePolicy;
41
+ readonly getPublicSitemapRoutes: PublicReadCachePolicy;
42
+ };
43
+ export declare function isPublicReadEndpoint(endpoint: string): endpoint is PublicReadEndpoint;
44
+ export declare function getPublicReadCachePolicy(endpoint: PublicReadEndpoint): PublicReadCachePolicy;
45
+ export declare function publicReadFreshnessSeconds(endpoint: PublicReadEndpoint): number;
@@ -1,6 +1,6 @@
1
- import { type BrandedIdParseError, type ContentEntryId, type PageId, type PageSurfaceId } from './branded';
1
+ import { type BrandedIdParseError, type ContentEntryId, type AppointmentServiceId, type PageId, type PageSurfaceId } from './branded';
2
2
  import { type Result } from './result';
3
- export declare const SITE_ROUTE_NODE_TYPES: readonly ["page", "content_entry", "page_surface"];
3
+ export declare const SITE_ROUTE_NODE_TYPES: readonly ["page", "content_entry", "page_surface", "appointment_service"];
4
4
  export type SiteRouteNodeType = (typeof SITE_ROUTE_NODE_TYPES)[number];
5
5
  export type SiteRouteTarget = Readonly<{
6
6
  kind: 'page';
@@ -11,6 +11,9 @@ export type SiteRouteTarget = Readonly<{
11
11
  }> | Readonly<{
12
12
  kind: 'pageSurface';
13
13
  surfaceId: PageSurfaceId;
14
+ }> | Readonly<{
15
+ kind: 'appointmentService';
16
+ serviceId: AppointmentServiceId;
14
17
  }>;
15
18
  export type SiteRouteTargetParseError = Readonly<{
16
19
  kind: 'invalid-node-type';
@@ -27,6 +30,9 @@ export type SiteRouteTargetParseError = Readonly<{
27
30
  }> | Readonly<{
28
31
  kind: 'invalid-page-surface-id';
29
32
  error: BrandedIdParseError;
33
+ }> | Readonly<{
34
+ kind: 'invalid-appointment-service-id';
35
+ error: BrandedIdParseError;
30
36
  }>;
31
37
  export declare function parseSiteRouteTarget(input: Readonly<{
32
38
  nodeType: unknown;
@@ -37,4 +43,5 @@ export declare function foldSiteRouteTarget<TValue>(target: SiteRouteTarget, cas
37
43
  page: (pageId: PageId) => TValue;
38
44
  contentEntry: (entryId: ContentEntryId) => TValue;
39
45
  pageSurface: (surfaceId: PageSurfaceId) => TValue;
46
+ appointmentService: (serviceId: AppointmentServiceId) => TValue;
40
47
  }>): TValue;