@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
@@ -1,87 +1,88 @@
1
- import type { CamelizeKeys, DbDatabase, DbRow } from "../../db/src/index";
2
- export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaDeleteResponse, MediaDeleteWarning, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from "./media";
3
- export type { AnalyticsPreset, AnalyticsReferrer, AnalyticsReportFilters, AnalyticsReportQuery, AnalyticsReportResponse, AnalyticsSeriesPoint, AnalyticsTopPage, AnalyticsTotals, } from "./analytics";
4
- export type { AIChatMessage, AiBriefTurn, JsonPrimitive, JsonValue, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, } from "./shared-contracts";
5
- export type * from "./accessAdmin";
6
- export { STAFF_OPERATIONAL_CAPABILITIES, getDefaultStaffCapabilities, } from "./accessAdmin";
7
- export type * from "./staffAccess";
8
- export { appointmentResourceIdFromStaffMemberId, canAccessOwnAppointmentResource, deriveLinkedAppointmentIdentity, deriveOpsLandingDestination, deriveSiteListingNavigationPlan, deriveStaffScope, deriveStaffSiteHomeDestination, getIdentityAppointmentResourceId, getIdentityAppointmentResourceIdValue, getIdentityStaffMemberId, getIdentityStaffMemberIdValue, getLinkedStaffMemberId, getOwnAppointmentResourceId, hasAppointmentStaffAccess, hasEventOpsAccess, isEventOpsOnlyUser, isLinkedAppointmentResource, isStaffScoped, isTeamMemberScope, roleAtLeast, roleAtLeastOrNone, shouldRedirectStaffScopeToOps, } from "./staffAccess";
9
- export type * from "./aiEndpoints";
10
- export type * from "./apiEndpointTypes";
11
- export type * from "./bookingAdjustments";
12
- export type * from "./bookingConfig";
13
- export type * from "./event-listing-destination";
14
- export type * from "./bookingManagementEndpoints";
15
- export type * from "./bookingOperations";
16
- export { APPOINTMENT_HISTORY_STATUS_VALUES } from "./bookingOperations";
17
- export type * from "./bookingRecords";
18
- export type * from "./commercePortalEndpoints";
19
- export type * from "./communications";
20
- export type * from "./contentRuntime";
21
- export type * from "./contentVersionHistory";
1
+ import type { CamelizeKeys, DbDatabase, DbRow } from '../../db/src/index';
2
+ export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaDeleteResponse, MediaDeleteWarning, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from './media';
3
+ export type { AnalyticsPreset, AnalyticsReferrer, AnalyticsReportFilters, AnalyticsReportQuery, AnalyticsReportResponse, AnalyticsSeriesPoint, AnalyticsTopPage, AnalyticsTotals, } from './analytics';
4
+ export type { AIChatMessage, AiBriefTurn, JsonPrimitive, JsonValue, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, } from './shared-contracts';
5
+ export type * from './accessAdmin';
6
+ export { STAFF_OPERATIONAL_CAPABILITIES, getDefaultStaffCapabilities, } from './accessAdmin';
7
+ export type * from './staffAccess';
8
+ export { appointmentResourceIdFromStaffMemberId, canAccessOwnAppointmentResource, deriveLinkedAppointmentIdentity, deriveOpsLandingDestination, deriveSiteListingNavigationPlan, deriveStaffScope, deriveStaffSiteHomeDestination, getIdentityAppointmentResourceId, getIdentityAppointmentResourceIdValue, getIdentityStaffMemberId, getIdentityStaffMemberIdValue, getLinkedStaffMemberId, getOwnAppointmentResourceId, hasAppointmentStaffAccess, hasEventOpsAccess, isEventOpsOnlyUser, isLinkedAppointmentResource, isStaffScoped, isTeamMemberScope, roleAtLeast, roleAtLeastOrNone, shouldRedirectStaffScopeToOps, } from './staffAccess';
9
+ export type * from './aiEndpoints';
10
+ export type * from './apiEndpointTypes';
11
+ export type * from './bookingAdjustments';
12
+ export type * from './bookingConfig';
13
+ export type * from './event-listing-destination';
14
+ export type * from './bookingManagementEndpoints';
15
+ export type * from './bookingOperations';
16
+ export { APPOINTMENT_HISTORY_STATUS_VALUES } from './bookingOperations';
17
+ export type * from './bookingRecords';
18
+ export type * from './commercePortalEndpoints';
19
+ export type * from './communications';
20
+ export type * from './contentRuntime';
21
+ export type * from './contentVersionHistory';
22
22
  export type * from './wholeSeriesRuns';
23
- export type * from "./mailchimpIntegration";
24
- export type * from "./participantMessaging";
25
- export type * from "./publicExperienceEndpoints";
26
- export type * from "./sdkContracts";
27
- export type * from "./sdk-event-payment-terms";
28
- export type * from "./siteInfrastructure";
29
- export type * from "./siteGeneration";
30
- export type * from "./siteManagementEndpoints";
31
- export type * from "./siteOnboarding";
32
- export type * from "./siteOperations";
33
- export type * from "./siteAssets";
34
- export type * from "./sitePlatformEndpoints";
35
- export type * from "./siteRuntimeEndpoints";
36
- export { FLEXIBLE_BALANCE_ADMIN_ACTION_SOURCES } from "./siteOperations";
37
- export type { AppointmentBlackout, AvailabilityScheduleSettings, CreateBlackoutResponse, CreateBlackoutRequest, DeleteBlackoutResponse, GetAvailableSlotsQuery, GetAvailableSlotsResponse, ListAvailabilityRulesResponse, ListBlackoutsResponse, SetWeeklyAvailabilityIssue, SetWeeklyAvailabilityRequest, SetWeeklyAvailabilityResponse, TimeSlot, ServiceSpecificAvailabilityScheduleSettings, WeeklyAvailabilityWindowInput, } from "./availability";
38
- export type { CalendarConnectionStatus, CalendarInfo, CalendarPreferences, CalendarStatusResponse, DisconnectCalendarResponse, UpdateCalendarPreferencesRequest, UpdateCalendarPreferencesResponse, } from "./calendar";
39
- export type { AppointmentRecord, AppointmentStatus, BookingQuestionFormSummary, BookingQuestionRequirementScope, BookingQuestionsRequirementConfig, BookingCustomerRecord, BookingRequirementConfigRequest, BookingRequirementConfigResponse, BookingRequirementTargetType, BookingRequirementValidityPolicy, ConsentRequirementConfig, CreateAppointmentRequest, CreateAppointmentResponse, } from "./bookings";
40
- export { APPOINTMENT_STATUS_VALUES } from "./bookings";
41
- export type { AiPatchApplyResponse, AiPatchBlockSetOp, AiPatchDryRunResponse, AiPatchOp, AiPatchPageMetaOp, AiPatchRequest, } from "./aiPatch";
42
- export type { AffectedOccurrence, AiDesignerThemePatchOp, AllowedField, ApplyAiDesignerPageOpsRequest, ApplyAiDesignerPageOpsResponse, ApplyAiDesignerThemePatchRequest, ApplyAiDesignerThemePatchResponse, AiPlaygroundApplyRequest, AiPlaygroundApplyResponse, BlockContext, DebugArtifact, DebugArtifacts, ModifiedOccurrence, MultiPagePatchEnvelope, MultiPageUpdateResponse, PageBlock, PageContext, PageConversionAttempt, PageConversionFailure, PageConversionResult, PageConversionSuccess, PageConvertJob, PageConvertJobEvent, PageConvertJobEventsResponse, PageConvertJobEventType, PageConvertJobGetResponse, PageConvertJobRunResponse, PageConvertJobsCreateRequest, PageConvertJobsCreateResponse, PageConvertJobsListResponse, PageConvertJobStatus, PageConverterOutput, PageConvertResponse, PlaygroundProposeRequest, RegenerationSummary, Rfc6902PatchOp, SchedulePreviewRequest, SchedulePreviewResponse, StreamEvent, } from "./aiPlayground";
43
- export type { ApplySeoChangesRequest, ApplySeoChangesResponse, PerformanceOverviewQuery, PerformanceOverviewResponse, PerformanceRangePreset, SeoOverviewQuery, SeoOverviewResponse, SeoOverviewTimePoint, SeoRangePreset, SeoSearchPagesQuery, SeoSearchPagesResponse, SeoSearchQueriesQuery, SeoSearchQueriesResponse, SeoSearchSummary, } from "./seo";
44
- export type { CheckRedirectQuery, CheckRedirectResponse, CreateRedirectRuleRequest, CreateRedirectRuleResponse, DeleteRedirectRuleResponse, ListRedirectRulesResponse, RedirectRuleRecord, } from "./redirects";
45
- export type { ApplyContentTemplateAddonRequest, ContentTemplateAddonSummary, ContentAddonDefinition, ContentTemplateBlockSummary, ContentTemplateDetailsResponse, ContentTemplateSummary, ContentTypeTemplateSummary, ContentTypeRoutingInfo, ContentTypeRoutingSubroute, ContentTypeRecord, CreateTemplateBlockRequest, ContentTypeSummary, CreateContentTypeRequest, CreateContentTypeResponse, DeleteContentTypeResponse, DuplicateContentTypeResponse, GetTransformsResponse, ListContentTypesResponse, PublicContentTypeFieldMeta, PublicContentTypeMeta, ReorderTemplateBlocksRequest, SerializedContentTypeSummary, TransformMetadata, UpdateContentTemplateBlockBindingsRequest, UpdateContentTemplateBlockRequest, UpdateContentTypeRequest, UpdateContentTypeResponse, } from "./contentTypes";
46
- export type { CartLinkLabelConfig, CartLinkPayload, EntryLinkPayload, EntryRoutableContentItem, InternalLinkRoutablePayload, LinkPayload, NavigationLinkInput, PageLinkPayload, PageRoutableContentItem, PageSurfaceRoutableContentItem, PortalLinkPayload, RoutableContentItem, SitemapRouteItem, } from "./navigation/types";
47
- export type { SiteBannerAnnouncementRole, SiteBannerCta, SiteBannerScope, SiteBannerSettingsPayload, SiteBannerSettingsResponse, SiteBannerTone, } from "./siteBanner";
48
- export type { SitePageBlock, SitePagePayload } from "./sitePages";
49
- export type { SiteAnalyticsCookieBannerCopyOverrides, SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse, } from "./siteAnalytics";
50
- export type { SiteLegalJurisdiction, SiteLegalProfilePayload, SensitiveClientRecordsConfirmationKey, SensitiveClientRecordsMode, SensitiveClientRecordsRetentionProfile, SensitiveClientRecordsSettings, SensitiveClientRecordsUpdatePayload, SitePrivacyPolicyCapabilities, SitePrivacyPolicyDocument, SitePrivacySettings, SitePrivacySettingsPayload, SitePrivacySettingsResponse, SiteRuntimePrivacyPolicy, SitePrivacyPolicySection, } from "./privacyPolicy";
51
- export type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteDeploymentMode, SiteFooterBlocksEditorBlock, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutResolvedPayload, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse, } from "./siteSettings";
52
- export type { BillingCheckoutRequest, BillingCheckoutResponse, BillingStatusResponse, BillingSummaryComponent, BillingSummaryComponentKind, BillingSummaryComponentSource, BillingSummaryBasePlanComponent, BillingSummarySiteComponent, BillingSummaryAddOnComponent, BillingSummaryResponse, SiteBillingCheckoutResponse, SiteBillingCostResponse, StripeAutomaticTaxIssue, StripeAutomaticTaxReadiness, StripeAutomaticTaxStatus, StripeConnectDisconnectResponse, StripeConnectRestrictions, StripeConnectStartResponse, StripeConnectStatusResponse, UpdateStripeAutomaticTaxRequest, } from "./billing";
53
- export type { AiGenerateSiteEntityType, AiGenerateSitePrimaryCta, AiGenerateSiteRequest, AiGenerateSiteResponse, } from "./siteGeneration";
54
- export { SITE_ROLE_DISPLAY_ORDER, SITE_ROLE_PERMISSION_LEVEL } from "./siteMembers";
55
- export type { SiteRole } from "./siteMembers";
56
- import type { HTTPMethod, ApiResponseKind, ApiAuthRequirement } from "./common/types";
23
+ export type * from './mailchimpIntegration';
24
+ export type * from './participantMessaging';
25
+ export type * from './publicExperienceEndpoints';
26
+ export type * from './sdkContracts';
27
+ export type * from './sdk-event-payment-terms';
28
+ export type * from './siteInfrastructure';
29
+ export type * from './siteGeneration';
30
+ export type * from './siteManagementEndpoints';
31
+ export type * from './siteOnboarding';
32
+ export type * from './siteOperations';
33
+ export type * from './siteAssets';
34
+ export type * from './sitePlatformEndpoints';
35
+ export type * from './siteRuntimeEndpoints';
36
+ export { FLEXIBLE_BALANCE_ADMIN_ACTION_SOURCES } from './siteOperations';
37
+ export type { AppointmentBlackout, AvailabilityScheduleSettings, CreateBlackoutResponse, CreateBlackoutRequest, DeleteBlackoutResponse, GetAvailableSlotsQuery, GetAvailableSlotsResponse, ListAvailabilityRulesResponse, ListBlackoutsResponse, SetWeeklyAvailabilityIssue, SetWeeklyAvailabilityRequest, SetWeeklyAvailabilityResponse, TimeSlot, ServiceSpecificAvailabilityScheduleSettings, WeeklyAvailabilityWindowInput, } from './availability';
38
+ export type { CalendarConnectionStatus, CalendarInfo, CalendarPreferences, CalendarStatusResponse, DisconnectCalendarResponse, UpdateCalendarPreferencesRequest, UpdateCalendarPreferencesResponse, } from './calendar';
39
+ export type { AppointmentRecord, AppointmentStatus, BookingQuestionFormSummary, BookingQuestionRequirementScope, BookingQuestionsRequirementConfig, BookingCustomerRecord, BookingRequirementConfigRequest, BookingRequirementConfigResponse, BookingRequirementTargetType, BookingRequirementValidityPolicy, ConsentRequirementConfig, CreateAppointmentRequest, CreateAppointmentResponse, } from './bookings';
40
+ export { APPOINTMENT_STATUS_VALUES } from './bookings';
41
+ export type { AiPatchApplyResponse, AiPatchBlockSetOp, AiPatchDryRunResponse, AiPatchOp, AiPatchPageMetaOp, AiPatchRequest, } from './aiPatch';
42
+ export type { AffectedOccurrence, AiDesignerThemePatchOp, AllowedField, ApplyAiDesignerPageOpsRequest, ApplyAiDesignerPageOpsResponse, ApplyAiDesignerThemePatchRequest, ApplyAiDesignerThemePatchResponse, AiPlaygroundApplyRequest, AiPlaygroundApplyResponse, BlockContext, DebugArtifact, DebugArtifacts, ModifiedOccurrence, MultiPagePatchEnvelope, MultiPageUpdateResponse, PageBlock, PageContext, PageConversionAttempt, PageConversionFailure, PageConversionResult, PageConversionSuccess, PageConvertJob, PageConvertJobEvent, PageConvertJobEventsResponse, PageConvertJobEventType, PageConvertJobGetResponse, PageConvertJobRunResponse, PageConvertJobsCreateRequest, PageConvertJobsCreateResponse, PageConvertJobsListResponse, PageConvertJobStatus, PageConverterOutput, PageConvertResponse, PlaygroundProposeRequest, RegenerationSummary, Rfc6902PatchOp, SchedulePreviewRequest, SchedulePreviewResponse, StreamEvent, } from './aiPlayground';
43
+ export type { ApplySeoChangesRequest, ApplySeoChangesResponse, PerformanceOverviewQuery, PerformanceOverviewResponse, PerformanceRangePreset, SeoOverviewQuery, SeoOverviewResponse, SeoOverviewTimePoint, SeoRangePreset, SeoSearchPagesQuery, SeoSearchPagesResponse, SeoSearchQueriesQuery, SeoSearchQueriesResponse, SeoSearchSummary, } from './seo';
44
+ export type { CheckRedirectQuery, CheckRedirectResponse, CreateRedirectRuleRequest, CreateRedirectRuleResponse, DeleteRedirectRuleResponse, ListRedirectRulesResponse, RedirectRuleRecord, } from './redirects';
45
+ export type { ApplyContentTemplateAddonRequest, ContentTemplateAddonSummary, ContentAddonDefinition, ContentTemplateBlockSummary, ContentTemplateDetailsResponse, ContentTemplateSummary, ContentTypeTemplateSummary, ContentTypeRoutingInfo, ContentTypeRoutingSubroute, ContentTypeRecord, CreateTemplateBlockRequest, ContentTypeSummary, CreateContentTypeRequest, CreateContentTypeResponse, DeleteContentTypeResponse, DuplicateContentTypeResponse, GetTransformsResponse, ListContentTypesResponse, PublicContentTypeFieldMeta, PublicContentTypeMeta, ReorderTemplateBlocksRequest, SerializedContentTypeSummary, TransformMetadata, UpdateContentTemplateBlockBindingsRequest, UpdateContentTemplateBlockRequest, UpdateContentTypeRequest, UpdateContentTypeResponse, } from './contentTypes';
46
+ export type { CartLinkLabelConfig, CartLinkPayload, EntryLinkPayload, EntryRoutableContentItem, InternalLinkRoutablePayload, LinkPayload, NavigationLinkInput, PageLinkPayload, PageRoutableContentItem, PageSurfaceRoutableContentItem, PortalLinkPayload, RoutableContentItem, SitemapRouteItem, } from './navigation/types';
47
+ export type { SiteBannerAnnouncementRole, SiteBannerCta, SiteBannerScope, SiteBannerSettingsPayload, SiteBannerSettingsResponse, SiteBannerTone, } from './siteBanner';
48
+ export type { SitePageBlock, SitePagePayload } from './sitePages';
49
+ export type { SiteAnalyticsCookieBannerCopyOverrides, SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse, } from './siteAnalytics';
50
+ export type { SiteLegalJurisdiction, SiteLegalProfilePayload, SensitiveClientRecordsConfirmationKey, SensitiveClientRecordsMode, SensitiveClientRecordsRetentionProfile, SensitiveClientRecordsSettings, SensitiveClientRecordsUpdatePayload, SitePrivacyPolicyCapabilities, SitePrivacyPolicyDocument, SitePrivacySettings, SitePrivacySettingsPayload, SitePrivacySettingsResponse, SiteRuntimePrivacyPolicy, SitePrivacyPolicySection, } from './privacyPolicy';
51
+ export type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteDeploymentMode, SiteFooterBlocksEditorBlock, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutResolvedPayload, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, SiteRuntimeBusinessDetails, SiteRuntimeBookingAttribution, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse, } from './siteSettings';
52
+ export type { BillingCheckoutRequest, BillingCheckoutResponse, BillingStatusResponse, BillingSummaryComponent, BillingSummaryComponentKind, BillingSummaryComponentSource, BillingSummaryBasePlanComponent, BillingSummarySiteComponent, BillingSummaryAddOnComponent, BillingSummaryResponse, SiteBillingCheckoutResponse, SiteBillingCostResponse, StripeAutomaticTaxIssue, StripeAutomaticTaxReadiness, StripeAutomaticTaxStatus, StripeConnectDisconnectResponse, StripeConnectRestrictions, StripeConnectStartResponse, StripeConnectStatusResponse, UpdateStripeAutomaticTaxRequest, } from './billing';
53
+ export type { AiGenerateSiteEntityType, AiGenerateSitePrimaryCta, AiGenerateSiteRequest, AiGenerateSiteResponse, } from './siteGeneration';
54
+ export { SITE_ROLE_DISPLAY_ORDER, SITE_ROLE_PERMISSION_LEVEL, } from './siteMembers';
55
+ export type { SiteRole } from './siteMembers';
56
+ import type { HTTPMethod, ApiResponseKind, ApiAuthRequirement } from './common/types';
57
57
  export type { HTTPMethod, ApiResponseKind, ApiAuthRequirement };
58
- export type { AdminProfileRole, AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest, } from "./admin/types";
58
+ export type { AdminProfileRole, AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest, } from './admin/types';
59
59
  import type { AccountAPIEndpoints } from './accountEndpoints';
60
60
  export type * from './accountEndpoints';
61
- import type { AiAndLaunchReadinessAPIEndpointDefinitions, AiAPIEndpointName, AiAPIEndpoints, LaunchReadinessAPIEndpointName, LaunchReadinessAPIEndpoints } from "./aiEndpoints";
62
- import type { BookingManagementAPIEndpoints } from "./bookingManagementEndpoints";
63
- import type { CommercePortalAPIEndpoints } from "./commercePortalEndpoints";
64
- import type { MailchimpIntegrationAPIEndpoints } from "./mailchimpIntegration";
65
- import type { PublicExperienceAPIEndpoints } from "./publicExperienceEndpoints";
66
- import type { SeoEndpointDefinitions } from "./seoEndpoints";
67
- import type { SiteManagementAPIEndpoints } from "./siteManagementEndpoints";
68
- import type { SitePlatformAPIEndpoints } from "./sitePlatformEndpoints";
69
- import type { SiteRuntimeAPIEndpoints } from "./siteRuntimeEndpoints";
70
- type TableName = keyof DbDatabase["public"]["Tables"];
61
+ import type { AiAndLaunchReadinessAPIEndpointDefinitions, AiAPIEndpointName, AiAPIEndpoints, LaunchReadinessAPIEndpointName, LaunchReadinessAPIEndpoints } from './aiEndpoints';
62
+ import type { BookingManagementAPIEndpoints } from './bookingManagementEndpoints';
63
+ import type { CommercePortalAPIEndpoints } from './commercePortalEndpoints';
64
+ import type { MailchimpIntegrationAPIEndpoints } from './mailchimpIntegration';
65
+ import type { MailingListIntegrationAPIEndpoints } from './mailingListIntegration';
66
+ import type { PublicExperienceAPIEndpoints } from './publicExperienceEndpoints';
67
+ import type { SeoEndpointDefinitions } from './seoEndpoints';
68
+ import type { SiteManagementAPIEndpoints } from './siteManagementEndpoints';
69
+ import type { SitePlatformAPIEndpoints } from './sitePlatformEndpoints';
70
+ import type { SiteRuntimeAPIEndpoints } from './siteRuntimeEndpoints';
71
+ type TableName = keyof DbDatabase['public']['Tables'];
71
72
  export type DTOType<K extends TableName> = Partial<CamelizeKeys<DbRow<K>>>;
72
- type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & BookingManagementAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints;
73
+ type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & BookingManagementAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints;
73
74
  type ComposeEndpointMaps<Maps extends readonly object[], Acc extends object = {}> = Maps extends readonly [
74
75
  infer Head extends object,
75
76
  ...infer Tail extends readonly object[]
76
77
  ] ? [Extract<keyof Acc, keyof Head>] extends [never] ? ComposeEndpointMaps<Tail, Acc & Head> : never : Acc;
77
- type SiteMembersAPIEndpointName = "listSiteMembers" | "inviteSiteMember" | "updateSiteMemberRole" | "linkCurrentUserPractitioner" | "unlinkCurrentUserPractitioner" | "removeSiteMember" | "revokeSiteInvitation" | "resendSiteInvitation" | "transferSiteOwnership" | "acceptSiteInvitation";
78
- type SeoAPIEndpointName = "getSeoOverview" | "getSeoPages" | "exportSeoPagesCsv" | "getSeoQueries" | "exportSeoQueriesCsv" | "getPerformanceOverview" | "applySeoChanges";
79
- type RedirectsAPIEndpointName = "checkRedirect" | "listRedirectRules" | "createRedirectRule" | "deleteRedirectRule";
80
- type AvailabilityAPIEndpointName = "listAvailabilityRules" | "setWeeklyAvailability" | "setServiceSpecificAvailability" | "deleteServiceSpecificAvailability" | "listBlackouts" | "createBlackout" | "deleteBlackout" | "getAvailableSlots";
81
- type CalendarAPIEndpointName = "getCalendarStatus" | "updateCalendarPreferences" | "disconnectCalendar";
82
- type ContentTypesAPIEndpointName = "listContentTypes" | "createContentType" | "updateContentType" | "deleteContentType" | "duplicateContentType";
83
- type MediaAPIEndpointName = "createMediaAsset" | "mediaList" | "mediaProductFileList" | "mediaGet" | "mediaUpdate" | "mediaCanonicalCrop" | "mediaDelete" | "mediaBulkDelete" | "mediaUsageCheck" | "mediaGetSignedUrl" | "createMediaUploadUrl" | "mediaUpload" | "getMediaLabels" | "getMediaSettings" | "updateMediaSettings" | "mediaSearch" | "classifyMediaAsset" | "classifyMediaBatch" | "enqueueMediaClassifyJob" | "runMediaClassifyJob" | "runAllMediaClassifyJobs" | "mediaJobsStatus";
84
- type ComposedDomainEndpointNames = "accountGetIdentity" | "accountListSites" | "accountCreateSite" | "accountProvisionProjectCredentials" | AiAPIEndpointName | LaunchReadinessAPIEndpointName | SiteMembersAPIEndpointName | SeoAPIEndpointName | RedirectsAPIEndpointName | AvailabilityAPIEndpointName | CalendarAPIEndpointName | ContentTypesAPIEndpointName | MediaAPIEndpointName | "listMailchimpAudiences" | "getMailchimpSignupSyncHealth";
78
+ type SiteMembersAPIEndpointName = 'listSiteMembers' | 'inviteSiteMember' | 'updateSiteMemberRole' | 'linkCurrentUserPractitioner' | 'unlinkCurrentUserPractitioner' | 'removeSiteMember' | 'revokeSiteInvitation' | 'resendSiteInvitation' | 'transferSiteOwnership' | 'acceptSiteInvitation';
79
+ type SeoAPIEndpointName = 'getSeoOverview' | 'getSeoPages' | 'exportSeoPagesCsv' | 'getSeoQueries' | 'exportSeoQueriesCsv' | 'getPerformanceOverview' | 'applySeoChanges';
80
+ type RedirectsAPIEndpointName = 'checkRedirect' | 'listRedirectRules' | 'createRedirectRule' | 'deleteRedirectRule';
81
+ type AvailabilityAPIEndpointName = 'listAvailabilityRules' | 'setWeeklyAvailability' | 'setServiceSpecificAvailability' | 'deleteServiceSpecificAvailability' | 'listBlackouts' | 'createBlackout' | 'deleteBlackout' | 'getAvailableSlots';
82
+ type CalendarAPIEndpointName = 'getCalendarStatus' | 'updateCalendarPreferences' | 'disconnectCalendar';
83
+ type ContentTypesAPIEndpointName = 'listContentTypes' | 'createContentType' | 'updateContentType' | 'deleteContentType' | 'duplicateContentType';
84
+ type MediaAPIEndpointName = 'createMediaAsset' | 'mediaList' | 'mediaProductFileList' | 'mediaGet' | 'mediaUpdate' | 'mediaCanonicalCrop' | 'mediaDelete' | 'mediaBulkDelete' | 'mediaUsageCheck' | 'mediaGetSignedUrl' | 'createMediaUploadUrl' | 'mediaUpload' | 'getMediaLabels' | 'getMediaSettings' | 'updateMediaSettings' | 'mediaSearch' | 'classifyMediaAsset' | 'classifyMediaBatch' | 'enqueueMediaClassifyJob' | 'runMediaClassifyJob' | 'runAllMediaClassifyJobs' | 'mediaJobsStatus';
85
+ type ComposedDomainEndpointNames = 'accountGetIdentity' | 'accountListSites' | 'accountCreateSite' | 'accountProvisionProjectCredentials' | AiAPIEndpointName | LaunchReadinessAPIEndpointName | SiteMembersAPIEndpointName | SeoAPIEndpointName | RedirectsAPIEndpointName | AvailabilityAPIEndpointName | CalendarAPIEndpointName | ContentTypesAPIEndpointName | MediaAPIEndpointName | 'listMailchimpAudiences';
85
86
  export type SiteMembersAPIEndpoints = Pick<APIEndpointsMonolith, SiteMembersAPIEndpointName>;
86
87
  export type SeoAPIEndpoints = Pick<APIEndpointsMonolith, SeoAPIEndpointName>;
87
88
  export type RedirectsAPIEndpoints = Pick<APIEndpointsMonolith, RedirectsAPIEndpointName>;
@@ -102,8 +103,8 @@ type DomainAPIEndpointMaps = [
102
103
  CalendarAPIEndpoints,
103
104
  ContentTypesAPIEndpoints,
104
105
  MediaAPIEndpoints,
105
- Pick<APIEndpointsMonolith, "listMailchimpAudiences" | "getMailchimpSignupSyncHealth">
106
+ Pick<APIEndpointsMonolith, 'listMailchimpAudiences'>
106
107
  ];
107
108
  type ComposedAPIEndpointMaps = [...DomainAPIEndpointMaps, RemainingAPIEndpoints];
108
109
  export type APIEndpoints = ComposeEndpointMaps<ComposedAPIEndpointMaps>;
109
- export type * from "./apiCallParams";
110
+ export type * from './apiCallParams';
@@ -1,4 +1,4 @@
1
- import type { BookingPricing, WaitlistOverride } from './bookingConfig';
1
+ import type { EventLifecycleStatus } from './eventManagementContracts';
2
2
  export type { WholeSeriesRunCancellationSettlement } from './eventManagementContracts';
3
3
  /**
4
4
  * Whole-series Event contracts
@@ -9,43 +9,8 @@ export type { WholeSeriesRunCancellationSettlement } from './eventManagementCont
9
9
  * Note: Do NOT use these API types as validation schemas. They document wire
10
10
  * contracts while the owning services validate and normalize inputs.
11
11
  */
12
- export type WholeSeriesRunStatus = 'draft' | 'active' | 'cancelled' | 'archived' | 'completed';
12
+ export type WholeSeriesRunStatus = EventLifecycleStatus;
13
13
  export type WholeSeriesRunMutableStatus = Exclude<WholeSeriesRunStatus, 'completed'>;
14
- export type WholeSeriesRunSeriesRecord = {
15
- id: string;
16
- title: string;
17
- slug: string;
18
- /** Denormalized presentation projection from the linked content entry (e.g. summary). */
19
- presentationJson: unknown;
20
- venueId: string | null;
21
- capacity: number | null;
22
- eventCategoryId: string | null;
23
- staffMemberIds?: string[];
24
- mainHostStaffMemberId?: string | null;
25
- status: string;
26
- };
27
- export type WholeSeriesRunRecord = {
28
- id: string;
29
- siteId: string;
30
- seriesId: string;
31
- eventOfferingId: string;
32
- enrollmentCapacity: number | null;
33
- acceptsMemberships: boolean;
34
- waitlistMode: WaitlistOverride;
35
- bookingOffer: BookingPricing;
36
- status: WholeSeriesRunStatus;
37
- createdAt: string;
38
- updatedAt: string;
39
- series: WholeSeriesRunSeriesRecord;
40
- sessionsCount: number;
41
- /** Total registrations for this run (all statuses, including cancelled/waitlist). */
42
- enrollmentsCount: number;
43
- /** Seat-holding enrollments (enrolled, pending_payment, completed). */
44
- enrolledCount: number;
45
- };
46
- export type UpdateWholeSeriesRunResponse = {
47
- run: WholeSeriesRunRecord;
48
- };
49
14
  export type DeleteWholeSeriesRunResponse = {
50
15
  message: string;
51
16
  };
@@ -1,31 +1,41 @@
1
1
  import type { BillingInterval, BillingPlanId, PlanEntitlements } from '../plans/types';
2
- import type { SubscriptionRepository, SubscriptionRecord } from '../subscriptions/store';
2
+ import { type SubscriptionRepository, type SubscriptionRecord } from '../subscriptions/store';
3
+ import { type PlanStanding } from '../plans/standing';
3
4
  export interface MembershipState {
4
5
  userId: string;
6
+ planStanding: 'paid' | 'payment_recovery' | 'free';
5
7
  planId: BillingPlanId;
6
8
  interval: BillingInterval;
7
9
  status: SubscriptionRecord['status'];
8
10
  currentPeriodEnd: string;
9
11
  cancelAtPeriodEnd: boolean;
10
12
  trialEndsAt?: string | null;
11
- isPaid: boolean;
12
- active: boolean;
13
13
  entitlements: PlanEntitlements;
14
14
  }
15
15
  export interface MembershipSummary {
16
16
  userId: string;
17
+ /** Canonical effective standing; consumers must not reconstruct it from provider status. */
18
+ planStanding: 'paid' | 'payment_recovery' | 'free';
19
+ /** Effective entitlement plan. Provider subscription identity remains in the repository. */
17
20
  planId: BillingPlanId;
18
21
  interval: BillingInterval;
19
22
  status: SubscriptionRecord['status'];
20
23
  currentPeriodEnd: string;
21
24
  cancelAtPeriodEnd: boolean;
22
25
  trialEndsAt?: string | null;
23
- isPaid: boolean;
24
- active: boolean;
25
26
  }
27
+ export type InvalidMembership = Readonly<{
28
+ kind: 'review_required';
29
+ userId: string;
30
+ reason: Extract<PlanStanding, {
31
+ kind: 'review_required';
32
+ }>['reason'];
33
+ }>;
34
+ export type MembershipRead = MembershipSummary | InvalidMembership | null;
35
+ export declare function isMembershipReviewRequired(value: MembershipRead): value is InvalidMembership;
26
36
  export interface MembershipContext {
27
37
  subscriptions: SubscriptionRepository;
28
38
  }
29
39
  export declare function toMembershipSummary(state: MembershipState): MembershipSummary;
30
- export declare function getMembershipState(userId: string, context: MembershipContext): Promise<MembershipState | null>;
31
- export declare function getMembershipSummary(userId: string, context: MembershipContext): Promise<MembershipSummary | null>;
40
+ export declare function getMembershipState(userId: string, context: MembershipContext): Promise<MembershipState | InvalidMembership | null>;
41
+ export declare function getMembershipSummary(userId: string, context: MembershipContext): Promise<MembershipRead>;
@@ -0,0 +1,15 @@
1
+ import { type BillingPlanId } from './types';
2
+ /**
3
+ * What each plan is called in front of a customer.
4
+ *
5
+ * It lives apart from the registry because the registry reaches Stripe on
6
+ * import, and a name is the one thing a browser bundle needs. The registry
7
+ * reads its `name` fields from here, so there is still one source.
8
+ */
9
+ export declare const BILLING_PLAN_NAMES: {
10
+ readonly free: "Free";
11
+ readonly core: "Core";
12
+ readonly solo: "Solo";
13
+ readonly studio: "Studio";
14
+ };
15
+ export declare function billingPlanName(planId: BillingPlanId): string;
@@ -3,6 +3,8 @@ export declare function listPlans(): PlanDefinition[];
3
3
  export declare function isBillingPlanId(planId: string): planId is BillingPlanId;
4
4
  export declare function ensureBillingPlanId(planId: string): BillingPlanId;
5
5
  export declare function getPlanById(planId: string): PlanDefinition | undefined;
6
+ /** Total lookup for a plan ID already validated at a trust boundary. */
7
+ export declare function getKnownPlan(planId: BillingPlanId): PlanDefinition;
6
8
  export declare function ensurePlan(planId: string): PlanDefinition;
7
9
  export declare function getPlanEntitlements(planId: string): PlanDefinition['entitlements'];
8
10
  export declare function getMacadamiaSiteAllowance(planId: string): PlanDefinition['entitlements']['macadamiaSiteAllowance'];
@@ -0,0 +1,19 @@
1
+ import type { SubscriptionStandingEvidence, SubscriptionStandingEvidenceError, SubscriptionStandingInput } from '../subscriptions/standingEvidence';
2
+ import { type SubscriptionRead } from '../subscriptions/store';
3
+ type PaidStandingDetails = Pick<SubscriptionStandingEvidence, 'planId' | 'interval' | 'currentPeriodEnd' | 'cancelAtPeriodEnd'>;
4
+ export type PlanStanding = Readonly<{
5
+ kind: 'paid';
6
+ } & PaidStandingDetails> | Readonly<{
7
+ kind: 'payment_recovery';
8
+ } & PaidStandingDetails> | Readonly<{
9
+ kind: 'free';
10
+ reason: 'no_subscription' | 'canceled' | 'unpaid' | 'incomplete' | 'incomplete_expired';
11
+ }> | Readonly<{
12
+ kind: 'review_required';
13
+ reason: SubscriptionStandingEvidenceError | 'unsupported_subscription_status';
14
+ }>;
15
+ /** Stripe owns lifecycle timing. Period dates are display evidence, not a second expiry clock. */
16
+ export declare function resolvePlanStanding(input: SubscriptionStandingInput): PlanStanding;
17
+ /** Repository reads have already parsed provider evidence; never validate it again here. */
18
+ export declare function resolveStoredPlanStanding(record: SubscriptionRead): PlanStanding;
19
+ export {};
@@ -28,8 +28,6 @@ export declare const BILLING_PLAN_IDS: readonly ["free", "core", "solo", "studio
28
28
  export type BillingPlanId = (typeof BILLING_PLAN_IDS)[number];
29
29
  export declare const PAID_BILLING_PLAN_IDS: readonly ["core", "solo", "studio"];
30
30
  export type PaidBillingPlanId = (typeof PAID_BILLING_PLAN_IDS)[number];
31
- export declare const CONTENT_FLEXIBILITY_TIERS: readonly ["limited", "full"];
32
- export type ContentFlexibilityTier = (typeof CONTENT_FLEXIBILITY_TIERS)[number];
33
31
  export declare const FORMS_TIERS: readonly ["limited", "full"];
34
32
  export type FormsTier = (typeof FORMS_TIERS)[number];
35
33
  export declare const SEO_TIERS: readonly ["none", "basic", "advanced"];
@@ -40,6 +38,8 @@ export declare const BRANDING_TIERS: readonly ["macadamia_visible", "light_custo
40
38
  export type BrandingTier = (typeof BRANDING_TIERS)[number];
41
39
  export declare const TEAM_TIERS: readonly ["owner_only", "multi_practitioner"];
42
40
  export type TeamTier = (typeof TEAM_TIERS)[number];
41
+ export declare const WEBSITE_TIERS: readonly ["hosted_booking", "full"];
42
+ export type WebsiteTier = (typeof WEBSITE_TIERS)[number];
43
43
  export declare const WEBSITE_COLLABORATOR_ROLES: readonly ["editor", "administrator"];
44
44
  export type WebsiteCollaboratorRole = (typeof WEBSITE_COLLABORATOR_ROLES)[number];
45
45
  export declare const WEBSITE_COLLABORATION_VISITOR_ROLES: readonly ["owner", "administrator", "editor", "team_member"];
@@ -62,7 +62,7 @@ export type WebsiteCollaborationPolicy = Readonly<{
62
62
  managementRoles: readonly ['owner', 'administrator'];
63
63
  }>;
64
64
  export type WebsiteCollaborationTier = WebsiteCollaborationPolicy['kind'];
65
- export declare const PLAN_BOOLEAN_FEATURE_KEYS: readonly ["customDomain", "customContentTypes", "analytics", "passes", "memberships", "discountCodes", "advancedPaymentSchemes", "internalNotes", "multiplePractitioners"];
65
+ export declare const PLAN_BOOLEAN_FEATURE_KEYS: readonly ["customDomain", "analytics", "passes", "memberships", "discountCodes", "advancedPaymentSchemes", "multiplePractitioners"];
66
66
  export type PlanBooleanFeatureKey = (typeof PLAN_BOOLEAN_FEATURE_KEYS)[number];
67
67
  export type StripeBookingCommission = Readonly<{
68
68
  kind: 'none';
@@ -84,25 +84,22 @@ export interface PlanEntitlements {
84
84
  monthlyPricePence: number;
85
85
  }>;
86
86
  }>;
87
- monthlyBookingLimit: number | null;
88
87
  durableStorageQuota: StorageQuota;
89
88
  stripeBookingCommission: StripeBookingCommission;
90
89
  customDomain: boolean;
91
- customContentTypes: boolean;
92
90
  analytics: boolean;
93
91
  passes: boolean;
94
92
  memberships: boolean;
95
93
  discountCodes: boolean;
96
94
  advancedPaymentSchemes: boolean;
97
- internalNotes: boolean;
98
95
  multiplePractitioners: boolean;
99
96
  websiteCollaboration: WebsiteCollaborationPolicy;
100
- contentFlexibility: ContentFlexibilityTier;
101
97
  forms: FormsTier;
102
98
  seo: SeoTier;
103
99
  newsletter: NewsletterTier;
104
100
  branding: BrandingTier;
105
101
  team: TeamTier;
102
+ website: WebsiteTier;
106
103
  }
107
104
  export interface PlanDefinition {
108
105
  id: BillingPlanId;
@@ -58,8 +58,8 @@ export type SiteBillingSubscriptionSnapshot = Readonly<{
58
58
  origin: BillingSubscriptionOrigin | null;
59
59
  status: string;
60
60
  }> | null;
61
- export type SiteBillingManualReviewReason = 'ambiguous_subscription_origin' | 'active_site_linked_add_on' | 'admin_requested_manual_review' | 'missing_admin_subscription_choice' | 'subscription_action_failed';
62
- export declare const SITE_BILLING_MANUAL_REVIEW_REASONS: readonly ["ambiguous_subscription_origin", "active_site_linked_add_on", "admin_requested_manual_review", "missing_admin_subscription_choice", "subscription_action_failed"];
61
+ export type SiteBillingManualReviewReason = 'ambiguous_subscription_origin' | 'active_site_linked_add_on' | 'admin_requested_manual_review' | 'missing_admin_subscription_choice' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded' | 'subscription_action_failed';
62
+ export declare const SITE_BILLING_MANUAL_REVIEW_REASONS: readonly ["ambiguous_subscription_origin", "active_site_linked_add_on", "admin_requested_manual_review", "missing_admin_subscription_choice", "practitioner_limit_exceeded", "live_site_allowance_exceeded", "subscription_action_failed"];
63
63
  export type SiteBillingManualReviewStatus = 'open' | 'resolved';
64
64
  export declare const SITE_BILLING_MANUAL_REVIEW_STATUSES: readonly ["open", "resolved"];
65
65
  export type SiteBillingManualReviewResolutionAction = 'external_action_completed' | 'no_action_needed' | 'duplicate' | 'superseded_by_arrangement_change' | 'accepted_risk';
@@ -78,6 +78,17 @@ export type SiteBillingManualReviewDetailsByReason = Readonly<{
78
78
  missing_admin_subscription_choice: Readonly<{
79
79
  subscriptionId: string | null;
80
80
  }>;
81
+ practitioner_limit_exceeded: Readonly<{
82
+ previousPlanId: string;
83
+ resultingPlanId: string;
84
+ practitionerCount: number;
85
+ }>;
86
+ live_site_allowance_exceeded: Readonly<{
87
+ previousPlanId: string;
88
+ resultingPlanId: string;
89
+ liveSiteCount: number;
90
+ includedLiveSiteCount: number;
91
+ }>;
81
92
  subscription_action_failed: Readonly<{
82
93
  action: SiteBillingManualReviewFailureAction;
83
94
  error: string;
@@ -92,7 +103,7 @@ export type SiteBillingManualReviewPayload = {
92
103
  details: SiteBillingManualReviewDetailsByReason[TReason];
93
104
  }>;
94
105
  }[SiteBillingManualReviewReason];
95
- export type SiteBillingArrangementPlanManualReviewReason = Exclude<SiteBillingManualReviewReason, 'subscription_action_failed'>;
106
+ export type SiteBillingArrangementPlanManualReviewReason = Exclude<SiteBillingManualReviewReason, 'subscription_action_failed' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded'>;
96
107
  export type SiteBillingArrangementSubscriptionAction = 'not_applicable' | 'sync_attempted' | 'cancelled_immediately' | 'scheduled_cancel_at_period_end' | 'manual_review_required' | 'failed';
97
108
  export declare const SITE_BILLING_ARRANGEMENT_SUBSCRIPTION_ACTIONS: readonly ["not_applicable", "sync_attempted", "cancelled_immediately", "scheduled_cancel_at_period_end", "manual_review_required", "failed"];
98
109
  export declare const SITE_BILLING_ARRANGEMENT_CHANGE_ORIGINS: readonly ["native_arrangement_change", "imported_legacy_cost_history"];
@@ -0,0 +1,12 @@
1
+ import type Stripe from 'stripe';
2
+ import { type Result, type UtcIsoDateTimeString } from '../../../core/src/index';
3
+ import type { PaidBillingPlanId } from '../plans/types';
4
+ import type { SubscriptionRecord, SubscriptionStatus } from './store';
5
+ export type SubscriptionEvidenceError = 'missing_identity' | 'invalid_plan' | 'invalid_interval' | 'invalid_status' | 'invalid_period_end' | 'invalid_cancellation' | 'invalid_trial_end';
6
+ export type ProviderSubscriptionRecord = Omit<SubscriptionRecord, 'planId' | 'currentPeriodEnd'> & {
7
+ planId: PaidBillingPlanId;
8
+ currentPeriodEnd: UtcIsoDateTimeString;
9
+ };
10
+ export type SubscriptionEvidenceResult = Result<ProviderSubscriptionRecord, SubscriptionEvidenceError>;
11
+ export declare function isSubscriptionStatus(value: unknown): value is SubscriptionStatus;
12
+ export declare function parseProviderSubscription(subscription: Stripe.Subscription): SubscriptionEvidenceResult;
@@ -0,0 +1,31 @@
1
+ import { type Result, type UtcIsoDateTimeString } from '../../../core/src/index';
2
+ import type { BillingInterval, PaidBillingPlanId } from '../plans/types';
3
+ import type { SubscriptionStatus } from './store';
4
+ /** Untrusted stored columns, before defaults, casts or membership projection. */
5
+ export type RawSubscriptionStandingEvidence = Readonly<{
6
+ planId: unknown;
7
+ interval: unknown;
8
+ status: unknown;
9
+ currentPeriodEnd: unknown;
10
+ cancelAtPeriodEnd: unknown;
11
+ }>;
12
+ export type SubscriptionStandingEvidenceError = 'invalid_plan' | 'invalid_interval' | 'invalid_status' | 'invalid_period_end' | 'invalid_cancellation';
13
+ export type SubscriptionStandingEvidence = Readonly<{
14
+ planId: PaidBillingPlanId;
15
+ interval: BillingInterval;
16
+ status: SubscriptionStatus;
17
+ currentPeriodEnd: UtcIsoDateTimeString;
18
+ cancelAtPeriodEnd: boolean;
19
+ }>;
20
+ export type SubscriptionStandingInput = Readonly<{
21
+ kind: 'absent';
22
+ }> | Readonly<{
23
+ kind: 'valid';
24
+ subscription: SubscriptionStandingEvidence;
25
+ }> | Readonly<{
26
+ kind: 'invalid';
27
+ reason: SubscriptionStandingEvidenceError;
28
+ }>;
29
+ export declare function parseSubscriptionStandingEvidence(raw: RawSubscriptionStandingEvidence): Result<SubscriptionStandingEvidence, SubscriptionStandingEvidenceError>;
30
+ /** Only a successful DB read with no row may supply null. Transport errors propagate. */
31
+ export declare function readSubscriptionStandingInput(raw: RawSubscriptionStandingEvidence | null): SubscriptionStandingInput;
@@ -1,6 +1,8 @@
1
+ import type { ProviderSubscriptionRecord } from './evidence';
2
+ import { type RawSubscriptionStandingEvidence, type SubscriptionStandingEvidenceError } from './standingEvidence';
1
3
  import type { BillingInterval } from '../plans/types';
2
4
  import type { BillingSubscriptionOrigin } from '../site-arrangements';
3
- export type SubscriptionStatus = 'incomplete' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid';
5
+ export type SubscriptionStatus = 'incomplete_expired' | 'paused' | 'incomplete' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid';
4
6
  export interface SubscriptionRecord {
5
7
  id: string;
6
8
  userId: string;
@@ -14,17 +16,33 @@ export interface SubscriptionRecord {
14
16
  trialEnds_at?: string | null;
15
17
  raw?: Record<string, unknown>;
16
18
  }
19
+ export type InvalidSubscriptionRecord = Readonly<{
20
+ kind: 'invalid';
21
+ id: string;
22
+ userId: string;
23
+ customerId: string;
24
+ reason: SubscriptionStandingEvidenceError;
25
+ }>;
26
+ export type SubscriptionRead = ProviderSubscriptionRecord | InvalidSubscriptionRecord | null;
27
+ export declare function isInvalidSubscriptionRecord(value: SubscriptionRead): value is InvalidSubscriptionRecord;
28
+ export declare class InvalidSubscriptionEvidenceError extends Error {
29
+ readonly evidence: InvalidSubscriptionRecord;
30
+ constructor(evidence: InvalidSubscriptionRecord);
31
+ }
32
+ /** For mutation boundaries that cannot operate without valid subscription evidence. */
33
+ export declare function requireSubscriptionRecord(value: SubscriptionRead): ProviderSubscriptionRecord | null;
34
+ export declare function readSubscriptionRecord(raw: Omit<SubscriptionRecord, keyof RawSubscriptionStandingEvidence> & RawSubscriptionStandingEvidence): ProviderSubscriptionRecord | InvalidSubscriptionRecord;
17
35
  export interface SubscriptionRepository {
18
36
  upsert(record: SubscriptionRecord): Promise<void>;
19
- getByUserId(userId: string): Promise<SubscriptionRecord | null>;
20
- getBySubscriptionId(subscriptionId: string): Promise<SubscriptionRecord | null>;
37
+ getByUserId(userId: string): Promise<SubscriptionRead>;
38
+ getBySubscriptionId(subscriptionId: string): Promise<SubscriptionRead>;
21
39
  removeBySubscriptionId(subscriptionId: string): Promise<void>;
22
40
  }
23
41
  export declare class InMemorySubscriptionRepository implements SubscriptionRepository {
24
42
  private byUser;
25
43
  private byId;
26
44
  upsert(record: SubscriptionRecord): Promise<void>;
27
- getByUserId(userId: string): Promise<SubscriptionRecord | null>;
28
- getBySubscriptionId(subscriptionId: string): Promise<SubscriptionRecord | null>;
45
+ getByUserId(userId: string): Promise<SubscriptionRead>;
46
+ getBySubscriptionId(subscriptionId: string): Promise<SubscriptionRead>;
29
47
  removeBySubscriptionId(subscriptionId: string): Promise<void>;
30
48
  }
@@ -1,12 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import type { ResolverContext } from './system';
3
3
  import type { PageOutline } from './structure/schema';
4
- import type { Theme } from '../../theme-core/src/schema';
5
4
  import type { SdkCustomBlock } from './system/manifest/schema';
6
- import type { ThemeTokens } from './system/theme';
7
5
  import type { RouteMap } from './system/transforms';
6
+ import { type OverrideOnlyRenderMode, type ThemedRenderMode, type TokensOnlyRenderMode } from './pageRenderingMode';
8
7
  import { type PageBoundaryWrapper, type PageRuntimeBoundary } from './pageRendererBoundaries';
9
- import type { BlockOverrides, PageRendererDataContext, SdkConfigForRenderer } from './pageRendererContracts';
8
+ import { type BlockOverrides, type PageRendererDataContext, type SdkConfigForRenderer } from './pageRendererContracts';
10
9
  import { type RenderablePageOutline } from './pageRenderAdmission';
11
10
  export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
12
11
  export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, OccurrenceContextData, SdkConfigForRenderer, } from './pageRendererContracts';
@@ -25,20 +24,12 @@ type PageRendererCommonProps<TPage> = {
25
24
  customBlocks?: SdkCustomBlock[];
26
25
  previewAuthoring?: ResolverContext['previewAuthoring'];
27
26
  };
28
- type ThemedPageRendererProps<TPage> = PageRendererCommonProps<TPage> & {
29
- rendering?: never;
30
- theme: Theme;
31
- themeTokens?: ThemeTokens;
32
- };
33
- type OverrideOnlyPageRendererProps<TPage> = PageRendererCommonProps<TPage> & {
34
- rendering: {
35
- kind: 'overrides-only';
36
- };
37
- theme?: never;
38
- themeTokens?: never;
27
+ type ThemedPageRendererProps<TPage> = PageRendererCommonProps<TPage> & ThemedRenderMode;
28
+ type TokensOnlyPageRendererProps<TPage> = PageRendererCommonProps<TPage> & TokensOnlyRenderMode;
29
+ type OverrideOnlyPageRendererProps<TPage> = PageRendererCommonProps<TPage> & OverrideOnlyRenderMode & {
39
30
  blockOverrides: BlockOverrides;
40
31
  };
41
- export type PageRendererProps = ThemedPageRendererProps<RenderablePageOutline> | OverrideOnlyPageRendererProps<RenderablePageOutline>;
32
+ export type PageRendererProps = ThemedPageRendererProps<RenderablePageOutline> | TokensOnlyPageRendererProps<RenderablePageOutline> | OverrideOnlyPageRendererProps<RenderablePageOutline>;
42
33
  export type EditorPageRendererProps = ThemedPageRendererProps<PageOutline> | OverrideOnlyPageRendererProps<PageOutline>;
43
34
  export default function PageRenderer(props: PageRendererProps): React.JSX.Element;
44
35
  export declare function EditorPageRenderer(props: EditorPageRendererProps): React.JSX.Element;
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * For server-safe rendering, use './server'.
9
9
  */
10
- export { BlockApiProvider, useBlockApi, type BlockApiConfig, } from './system/runtime/api';
10
+ export { BlockApiProvider, useBlockApi, type BlockApiClient, type BlockApiConfig, } from './system/runtime/api';
11
11
  export { clientComponentRegistry } from './system/runtime/components/registry.client';
12
12
  export type { ComponentRegistry } from './system/runtime/resolver';
13
13
  export type { BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, } from './system/runtime/shared/bookingPaymentOptions';