@riverbankcms/sdk 0.139.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 (196) hide show
  1. package/README.md +1 -1
  2. package/dist/{PreviewEditorSidebar-BDeenhi3.mjs → PreviewEditorSidebar-CUyTzd5z.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DSRhgjF5.mjs → PreviewEditorUI-Agkw4v5i.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-D2K8GLUG.mjs → PreviewQueryProvider-CN0ewic5.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CL7wSnYu.mjs → SdkPreviewModeRuntime-DdbeAdS8.mjs} +22 -8
  6. package/dist/{SiteChromeCustomizeContext-BhDn-5ir.mjs → SiteChromeCustomizeContext-CqGOz-Kv.mjs} +2053 -1110
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +165 -165
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +212 -212
  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 +8 -4
  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 +8 -3
  20. package/dist/_dts/api/src/endpoints.d.ts +93 -64
  21. package/dist/_dts/api/src/event-destination-policy.d.ts +2 -1
  22. package/dist/_dts/api/src/footerSettings.d.ts +9 -6
  23. package/dist/_dts/api/src/index.d.ts +5 -6
  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/mailingListIntegration.d.ts +8 -2
  27. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
  28. package/dist/_dts/api/src/navigation/types.d.ts +1 -1
  29. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +25 -0
  30. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +32 -32
  31. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +8 -0
  32. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +1 -0
  33. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +11 -3
  34. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +3 -29
  35. package/dist/_dts/api/src/publicOnboardingAttemptEndpointDefinitions.d.ts +65 -0
  36. package/dist/_dts/api/src/saveOutcome.d.ts +20 -0
  37. package/dist/_dts/api/src/sdkContracts.d.ts +3 -22
  38. package/dist/_dts/api/src/sdkPushContracts.d.ts +18 -0
  39. package/dist/_dts/api/src/sdkThemeWire.d.ts +44 -44
  40. package/dist/_dts/api/src/settings/permissions.d.ts +12 -0
  41. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +9 -5
  42. package/dist/_dts/api/src/siteOnboarding.d.ts +2 -9
  43. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -4
  44. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -1
  45. package/dist/_dts/api/src/siteSettings.d.ts +20 -7
  46. package/dist/_dts/api/src/types.d.ts +77 -77
  47. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -37
  48. package/dist/_dts/billing/src/membership/index.d.ts +3 -0
  49. package/dist/_dts/billing/src/plans/types.d.ts +3 -0
  50. package/dist/_dts/billing/src/site-arrangements.d.ts +14 -3
  51. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
  52. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +2 -0
  53. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +5 -0
  54. package/dist/_dts/blocks/src/portal/types.d.ts +2 -4
  55. package/dist/_dts/blocks/src/portal/waitlist-types.d.ts +35 -0
  56. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -0
  57. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
  58. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
  59. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
  60. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +2 -1
  61. package/dist/_dts/blocks/src/system/data/types.d.ts +9 -0
  62. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  63. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -28
  64. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  65. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +7 -3
  66. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -2
  68. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +30 -6
  69. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +15 -3
  70. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +43 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +1 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +2 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +14 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +56 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -8
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +8 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -7
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +10 -2
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +18 -0
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.client.d.ts +1 -1
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -6
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +4 -2
  83. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +1 -0
  85. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +1 -0
  86. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -6
  87. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  88. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +2 -0
  89. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  90. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +27 -4
  91. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -1
  92. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +3 -1
  93. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -0
  94. package/dist/_dts/core/src/branded.d.ts +0 -8
  95. package/dist/_dts/core/src/index.d.ts +1 -0
  96. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +1 -1
  97. package/dist/_dts/core/src/mailing-list-setup.d.ts +14 -1
  98. package/dist/_dts/core/src/mailing-list-submission.d.ts +7 -27
  99. package/dist/_dts/core/src/participants.d.ts +2 -29
  100. package/dist/_dts/core/src/public-experience.d.ts +4 -0
  101. package/dist/_dts/core/src/public-profile.d.ts +27 -1
  102. package/dist/_dts/core/src/site-route-target.d.ts +9 -2
  103. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +293 -606
  104. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListGlobalSettingsSummary.d.ts +10 -0
  105. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +3 -2
  106. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +3 -2
  107. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +3 -2
  108. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +19 -0
  109. package/dist/_dts/sdk/src/public-api/contracts.d.ts +14 -20
  110. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  111. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
  112. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +7 -1
  113. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +1 -0
  114. package/dist/_dts/sdk/src/version.d.ts +1 -1
  115. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  116. package/dist/_dts/theme-core/src/cards/types.d.ts +21 -21
  117. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  118. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +8 -2
  119. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -2
  120. package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
  121. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +54 -54
  122. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -4
  123. package/dist/_dts/theme-core/src/schema.d.ts +84 -84
  124. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
  125. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  126. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +77 -0
  127. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  128. package/dist/_dts/theme-core/src/typography/generateTypographyCss.d.ts +2 -2
  129. package/dist/_dts/ui/src/lib/use-delayed-flag.d.ts +9 -0
  130. package/dist/_dts/ui/src/pending-button.d.ts +10 -0
  131. package/dist/client/{BookingConsentAgreement-CZvTDtsK.mjs → BookingConsentAgreement-CuKa82V4.mjs} +4 -4
  132. package/dist/client/{DiscountCodeDisclosure-D-DsLCMU.mjs → DiscountCodeDisclosure-BbYieKWB.mjs} +1 -1
  133. package/dist/client/{EventCombined.client-dWqgd5ZO.mjs → EventCombined.client-LTfR1Aby.mjs} +6 -6
  134. package/dist/client/{EventListing.client-BMRa9IYp.mjs → EventListing.client-DUHpYSuo.mjs} +2 -2
  135. package/dist/client/{LeafletStaticMap-D21W9kBZ.mjs → LeafletStaticMap-CHRupL6m.mjs} +1 -1
  136. package/dist/client/{accordion-FxF_ta47.mjs → accordion-6HiIFxNL.mjs} +1 -1
  137. package/dist/client/{bookingForm-YnwW4TGw.mjs → bookingForm-Dlmid43H.mjs} +7 -7
  138. package/dist/client/bookings.mjs +325 -140
  139. package/dist/client/{carousel-vng7fFT5.mjs → carousel-DmkZRRq_.mjs} +2 -2
  140. package/dist/client/{carousel.client-59G_WMr4.mjs → carousel.client-DQTjCVQT.mjs} +1 -1
  141. package/dist/client/{cart-DEPDsjNk.mjs → cart-CIC24330.mjs} +3 -3
  142. package/dist/client/{checkout-CZRWu9rW.mjs → checkout-D1Zw9imo.mjs} +3 -3
  143. package/dist/client/{checkoutUrls-BuseL0dw.mjs → checkoutUrls-FL6lRkrt.mjs} +1 -1
  144. package/dist/client/client.mjs +1717 -882
  145. package/dist/client/{colorStyles-CrxJrPjJ.mjs → colorStyles-3013aRAY.mjs} +3 -1
  146. package/dist/client/{context-DvU_WUmd.mjs → context-Cy1OayHx.mjs} +6 -19
  147. package/dist/client/{dates-wnPMiRl5.mjs → dates-aDcfoLHr.mjs} +2 -2
  148. package/dist/client/{eventCalendar-BA3Q5L15.mjs → eventCalendar-FQxMPAjf.mjs} +8 -8
  149. package/dist/client/{eventCombined-51wgR-1R.mjs → eventCombined-Dr3ac6Hb.mjs} +3 -3
  150. package/dist/client/{eventDetails-modaetpm.mjs → eventDetails-D-AzUHFQ.mjs} +4 -4
  151. package/dist/client/{eventListing-D8t2J3Kv.mjs → eventListing-B3XxBf3i.mjs} +3 -3
  152. package/dist/client/{eventRegistration-CYqtkCE_.mjs → eventRegistration-I6EaokFD.mjs} +500 -152
  153. package/dist/client/{form-CBKXN5In.mjs → form-BbWckVWY.mjs} +3 -3
  154. package/dist/client/{headerSection-DylDqNrs.mjs → headerSection-C9qU4Y7x.mjs} +2 -2
  155. package/dist/client/hooks.mjs +445 -180
  156. package/dist/client/{locationMap-CvWrG0vZ.mjs → locationMap-CLCShvlG.mjs} +3 -3
  157. package/dist/client/{media-BOHuueS5.mjs → media-DHpfFwd3.mjs} +1 -1
  158. package/dist/client/{newsletterForm-Btwk70zw.mjs → newsletterForm-Briukxzi.mjs} +130 -87
  159. package/dist/client/{pricing-Uzw-GQ6Y.mjs → pricing-Copadu-2.mjs} +1 -1
  160. package/dist/client/{productDetail-JLcUYKnd.mjs → productDetail-oujlRd-r.mjs} +3 -3
  161. package/dist/client/{productList-FM0cbUzj.mjs → productList-BRiIRUcd.mjs} +3 -3
  162. package/dist/client/{propsDecoder-DYzafZb2.mjs → propsDecoder-CB2KS_ko.mjs} +130 -24
  163. package/dist/client/rendering/client.mjs +911 -400
  164. package/dist/client/rendering/islands.mjs +19 -19
  165. package/dist/client/rendering.mjs +1696 -818
  166. package/dist/client/{scrollToBlock-CvXszexS.mjs → scrollToBlock-B1IS1_ua.mjs} +1 -1
  167. package/dist/client/{shop-BIcjvy5a.mjs → shop-Vn6yNFED.mjs} +6 -6
  168. package/dist/client/{shop-commerce-BZQsy7xw.mjs → shop-commerce-BVTqipYp.mjs} +7 -7
  169. package/dist/client/{shop-commerce-store-D5V7XAb5.mjs → shop-commerce-store-BVnJVy7v.mjs} +1 -1
  170. package/dist/client/{shopShared-DowkXevB.mjs → shopShared-COIeK77T.mjs} +4 -4
  171. package/dist/client/{useEventFilters-oMoTw_JE.mjs → useEventFilters-DzIUcS9n.mjs} +7 -7
  172. package/dist/preview-next/before-render.mjs +119 -64
  173. package/dist/preview-next/client/runtime.mjs +4 -4
  174. package/dist/preview-next/keepAlive.mjs +119 -64
  175. package/dist/preview-next/middleware.mjs +119 -64
  176. package/dist/{previewAuthStore-COUyAKaX.mjs → previewAuthStore-Gjb6r6vz.mjs} +119 -64
  177. package/dist/{sdk-runtime-D4k2LSGF.mjs → sdk-runtime-CnCLvZRv.mjs} +2 -2
  178. package/dist/{separator-UGtpag4Z.mjs → separator-DKDRJ1oH.mjs} +1 -1
  179. package/dist/server/components.mjs +787 -323
  180. package/dist/server/config-validation.mjs +328 -79
  181. package/dist/server/config.mjs +332 -83
  182. package/dist/server/data.mjs +441 -180
  183. package/dist/server/index.mjs +126 -66
  184. package/dist/server/next.mjs +1031 -595
  185. package/dist/server/page-converter.mjs +183 -74
  186. package/dist/server/prebuild.mjs +1 -1
  187. package/dist/server/rendering/server.mjs +1068 -592
  188. package/dist/server/rendering.mjs +802 -324
  189. package/dist/server/routing.mjs +506 -214
  190. package/dist/server/server.mjs +468 -244
  191. package/dist/server/theme-bridge.mjs +433 -100
  192. package/dist/server/theme.mjs +8 -2
  193. package/dist/styles/index.css +237 -43
  194. package/package.json +1 -1
  195. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +0 -29
  196. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +0 -13
@@ -2178,59 +2178,6 @@ function surfaceForegroundStyle(input) {
2178
2178
  [SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting
2179
2179
  };
2180
2180
  }
2181
- shadeBackgroundEffect({
2182
- id: "darken-background",
2183
- name: "Darken on Hover",
2184
- description: "Darkens the background color on hover",
2185
- label: "Darken Amount (shade step)",
2186
- shadeDirection: 1
2187
- });
2188
- shadeBackgroundEffect({
2189
- id: "lighten-background",
2190
- name: "Lighten on Hover",
2191
- description: "Lightens the background color on hover",
2192
- label: "Lighten Amount (shade step)",
2193
- shadeDirection: -1
2194
- });
2195
- function shadeBackgroundEffect(config) {
2196
- return {
2197
- id: config.id,
2198
- name: config.name,
2199
- description: config.description,
2200
- category: "background",
2201
- pseudoElement: "none",
2202
- applicableTo: ["button"],
2203
- customizableOption: {
2204
- name: "amount",
2205
- type: "select",
2206
- label: config.label,
2207
- default: 100,
2208
- options: [
2209
- 0,
2210
- 100,
2211
- 200,
2212
- 300,
2213
- 400,
2214
- 500,
2215
- 600,
2216
- 700,
2217
- 800,
2218
- 900
2219
- ]
2220
- },
2221
- isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
2222
- generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
2223
- if (buttonConfig.background.type !== "solid") return "";
2224
- const amount = (options.amount || 100) * config.shadeDirection;
2225
- const baseToken = buttonConfig.background.colorToken ?? "primary-500";
2226
- return `
2227
- :where([data-theme-scope="${themeId}"]) .${variantId}:hover {
2228
- background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
2229
- }
2230
- `;
2231
- }
2232
- };
2233
- }
2234
2181
  //#endregion
2235
2182
  //#region ../theme-core/src/utils/colorStyles.ts
2236
2183
  const COLOR_VAR_PREFIX = "--tb-";
@@ -2327,6 +2274,59 @@ function mergeStyles(...styles) {
2327
2274
  }
2328
2275
  return Object.keys(merged).length ? merged : void 0;
2329
2276
  }
2277
+ shadeBackgroundEffect({
2278
+ id: "darken-background",
2279
+ name: "Darken on Hover",
2280
+ description: "Darkens the background color on hover",
2281
+ label: "Darken Amount (shade step)",
2282
+ shadeDirection: 1
2283
+ });
2284
+ shadeBackgroundEffect({
2285
+ id: "lighten-background",
2286
+ name: "Lighten on Hover",
2287
+ description: "Lightens the background color on hover",
2288
+ label: "Lighten Amount (shade step)",
2289
+ shadeDirection: -1
2290
+ });
2291
+ function shadeBackgroundEffect(config) {
2292
+ return {
2293
+ id: config.id,
2294
+ name: config.name,
2295
+ description: config.description,
2296
+ category: "background",
2297
+ pseudoElement: "none",
2298
+ applicableTo: ["button"],
2299
+ customizableOption: {
2300
+ name: "amount",
2301
+ type: "select",
2302
+ label: config.label,
2303
+ default: 100,
2304
+ options: [
2305
+ 0,
2306
+ 100,
2307
+ 200,
2308
+ 300,
2309
+ 400,
2310
+ 500,
2311
+ 600,
2312
+ 700,
2313
+ 800,
2314
+ 900
2315
+ ]
2316
+ },
2317
+ isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
2318
+ generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
2319
+ if (buttonConfig.background.type !== "solid") return "";
2320
+ const amount = (options.amount || 100) * config.shadeDirection;
2321
+ const baseToken = buttonConfig.background.colorToken ?? "primary-500";
2322
+ return `
2323
+ :where([data-theme-scope="${themeId}"]) .${variantId}:hover {
2324
+ background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
2325
+ }
2326
+ `;
2327
+ }
2328
+ };
2329
+ }
2330
2330
  //#endregion
2331
2331
  //#region ../theme-core/src/utils/tokenOrColor.ts
2332
2332
  /**
@@ -5335,8 +5335,14 @@ const headerInteractionPillPaletteValues = [
5335
5335
  "accent"
5336
5336
  ];
5337
5337
  /**
5338
- * "No pill": the nav link keeps whatever hover treatment its recipe compiled,
5339
- * and the palette step writes nothing at all (#1318 Phase 4c decision 2).
5338
+ * "No pill": a colour change on hover rather than a filled background.
5339
+ *
5340
+ * The palette step writes nothing (#1318 Phase 4c decision 2), but on a
5341
+ * foreground-adaptive style that is not the end of the story: the hover colour
5342
+ * is derived from the resolved opening foreground at render time, paired with
5343
+ * the resting colour, so `quiet` resolves to a definite colour rather than to
5344
+ * whatever brand token the recipe happened to name. See
5345
+ * `applyOpeningForeground`.
5340
5346
  *
5341
5347
  * It exists because "a colour change on hover, no filled background" was not
5342
5348
  * expressible in the vocabulary, and it is what
@@ -10983,7 +10989,9 @@ function parseUuidBrand(value, unsafeConstructor) {
10983
10989
  }
10984
10990
  const unsafeAsEventOfferingId = (id) => id;
10985
10991
  const unsafeAsEventSeriesId = (id) => id;
10992
+ const unsafeAsContentVersionId = (id) => id;
10986
10993
  const parseEventOfferingId = (value) => parseUuidBrand(value, unsafeAsEventOfferingId);
10994
+ const parseContentVersionId = (value) => parseUuidBrand(value, unsafeAsContentVersionId);
10987
10995
  const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
10988
10996
  //#endregion
10989
10997
  //#region ../core/src/assert-never.ts
@@ -11466,6 +11474,9 @@ function parseBrevoListId(value) {
11466
11474
  return parsePositiveInteger(value);
11467
11475
  }
11468
11476
  //#endregion
11477
+ //#region ../core/src/mailing-list-setup.ts
11478
+ const DEFAULT_MAILING_LIST_SUCCESS_MESSAGE = "Thanks — you're on the list.";
11479
+ //#endregion
11469
11480
  //#region ../core/src/mailing-list-setup-parser.ts
11470
11481
  function parseMailingListGlobalForm(value) {
11471
11482
  if (!isRecord$7(value)) return formError("shape");
@@ -11474,12 +11485,15 @@ function parseMailingListGlobalForm(value) {
11474
11485
  if (typeof value.includeOptionalPhone !== "boolean") return formError("includeOptionalPhone");
11475
11486
  const buttonLabel = parseRequiredString(value.buttonLabel);
11476
11487
  if (buttonLabel === null) return formError("buttonLabel");
11488
+ const successMessage = parseRequiredString(value.successMessage);
11489
+ if (successMessage === null) return formError("successMessage");
11477
11490
  const privacyNote = parseOptionalString(value.privacyNote);
11478
11491
  if (privacyNote === void 0) return formError("privacyNote");
11479
11492
  return ok({
11480
11493
  fields,
11481
11494
  includeOptionalPhone: value.includeOptionalPhone,
11482
11495
  buttonLabel,
11496
+ successMessage,
11483
11497
  privacyNote
11484
11498
  });
11485
11499
  }
@@ -11809,11 +11823,17 @@ function parseMailingListSignedSourceToken(value) {
11809
11823
  const parsed = typeof value === "string" ? value.trim() : "";
11810
11824
  return /^[A-Za-z0-9._~-]{16,1000}$/u.test(parsed) ? parsed : null;
11811
11825
  }
11812
- function buildMailingListSignupBlockSourceRef(blockId) {
11813
- const parsed = parseMailingListBlockId(blockId);
11814
- return parsed !== null ? {
11826
+ function parseMailingListContentVersionId(value) {
11827
+ const parsed = parseContentVersionId(value);
11828
+ return parsed.ok ? parsed.value : null;
11829
+ }
11830
+ function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
11831
+ const parsedBlockId = parseMailingListBlockId(blockId);
11832
+ const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
11833
+ return parsedBlockId !== null && parsedContentVersionId !== null ? {
11815
11834
  tag: "block_ref",
11816
- blockId: parsed
11835
+ blockId: parsedBlockId,
11836
+ contentVersionId: parsedContentVersionId
11817
11837
  } : null;
11818
11838
  }
11819
11839
  function sessionStartMs(session) {
@@ -21682,6 +21702,28 @@ const bookingRequirementConsentFieldSchema = z.object({
21682
21702
  z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
21683
21703
  //#endregion
21684
21704
  //#region ../blocks/src/system/blocks/events/shared/schemas.ts
21705
+ const publicEventLoaderQuerySchemaShape = {
21706
+ limit: z.string().optional(),
21707
+ from: z.string().optional(),
21708
+ to: z.string().optional(),
21709
+ afterStartsAt: z.string().optional(),
21710
+ afterId: z.string().optional(),
21711
+ categoryIds: z.string().optional(),
21712
+ venueId: z.string().optional(),
21713
+ staffMemberId: z.string().optional(),
21714
+ eventSurface: z.string().optional(),
21715
+ eventPresets: z.string().optional(),
21716
+ scheduleScope: z.string().optional(),
21717
+ seriesId: z.string().optional(),
21718
+ seriesIds: z.string().optional(),
21719
+ runSeriesId: z.string().optional(),
21720
+ seriesSlug: z.string().optional(),
21721
+ includeOccurrenceId: z.string().optional(),
21722
+ readIntent: z.string().optional(),
21723
+ detailLevel: z.string().optional(),
21724
+ readProfile: z.string().optional()
21725
+ };
21726
+ z.object(publicEventLoaderQuerySchemaShape);
21685
21727
  const eventPresetSchema = z.enum([
21686
21728
  "event",
21687
21729
  "class",
@@ -22484,6 +22526,44 @@ function toWholeSeriesRegistrationEvents(events) {
22484
22526
  return groupPublicEventsByRun(events).map(toWholeSeriesRegistrationEvent).filter((event) => event !== null);
22485
22527
  }
22486
22528
  //#endregion
22529
+ //#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
22530
+ const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
22531
+ const eventRecoveryRequestSchema = z.object({
22532
+ ...stringEventQueryShape,
22533
+ limit: z.coerce.number().int().positive().optional(),
22534
+ eventSurface: z.enum(eventSurfaceScopeValues).optional(),
22535
+ scheduleScope: z.enum(eventScheduleScopeValues).optional(),
22536
+ detailLevel: z.enum(["full", "listing"]).optional(),
22537
+ stage: z.enum(["preview", "published"]).optional()
22538
+ });
22539
+ function resolveEventRegistrationEventSource(input) {
22540
+ if (input.wholeSeriesRunEvents != null) return {
22541
+ kind: "loaded",
22542
+ events: input.wholeSeriesRunEvents
22543
+ };
22544
+ if (input.events != null) return {
22545
+ kind: "loaded",
22546
+ events: input.events
22547
+ };
22548
+ return {
22549
+ kind: "unresolved",
22550
+ request: parseEventLoaderRecoveryRequest(input.failures?.wholeSeriesRunEvents ?? input.failures?.events)
22551
+ };
22552
+ }
22553
+ const eventLoaderFailureSchema = z.object({
22554
+ endpoint: z.literal("listPublicEvents"),
22555
+ params: eventRecoveryRequestSchema.extend({ siteId: z.string().optional() })
22556
+ });
22557
+ function parseEventLoaderRecoveryRequest(value) {
22558
+ const parsed = eventLoaderFailureSchema.safeParse(value);
22559
+ if (!parsed.success) return null;
22560
+ const { siteId: _siteId, stage, ...params } = parsed.data.params;
22561
+ return {
22562
+ ...params,
22563
+ stage: stage ?? "published"
22564
+ };
22565
+ }
22566
+ //#endregion
22487
22567
  //#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
22488
22568
  const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
22489
22569
  "Date",
@@ -22501,8 +22581,6 @@ const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrati
22501
22581
  const eventRegistrationHydrationSchemaShape = {
22502
22582
  occurrenceContext: occurrenceContextSchema.optional(),
22503
22583
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
22504
- events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
22505
- wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
22506
22584
  maxTickets: z.string().optional(),
22507
22585
  showVenue: z.boolean().optional(),
22508
22586
  showCapacity: z.boolean().optional(),
@@ -22514,12 +22592,22 @@ const eventRegistrationHydrationSchemaShape = {
22514
22592
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
22515
22593
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
22516
22594
  };
22595
+ const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
22596
+ kind: z.literal("loaded"),
22597
+ events: z.array(eventRegistrationPublicEventSchema)
22598
+ }), z.object({
22599
+ kind: z.literal("unresolved"),
22600
+ request: eventRecoveryRequestSchema.nullable()
22601
+ })]);
22517
22602
  const eventRegistrationSourceSchema = z.object({
22518
22603
  siteId: z.string().optional(),
22519
22604
  apiBaseUrl: z.string().optional(),
22520
22605
  portalToken: z.string().nullable().optional(),
22521
22606
  previewToken: z.string().nullable().optional(),
22522
22607
  ...eventRegistrationHydrationSchemaShape,
22608
+ events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
22609
+ wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
22610
+ eventLoaderFailures: z.record(z.string(), z.unknown()).nullable().optional(),
22523
22611
  className: z.string().nullable().optional(),
22524
22612
  buttonText: z.string().nullable().optional(),
22525
22613
  maxTickets: z.string().nullable().optional(),
@@ -22540,7 +22628,10 @@ const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [z.object({
22540
22628
  titleText: z.string(),
22541
22629
  bodyText: z.string()
22542
22630
  })]);
22543
- const eventRegistrationHydrationSchema = z.object(eventRegistrationHydrationSchemaShape);
22631
+ const eventRegistrationHydrationSchema = z.object({
22632
+ ...eventRegistrationHydrationSchemaShape,
22633
+ eventSource: eventRegistrationEventSourceSchema
22634
+ });
22544
22635
  const eventRegistrationRenderSchema = z.object({
22545
22636
  display: eventRegistrationDisplaySchema,
22546
22637
  hydration: eventRegistrationHydrationSchema
@@ -22599,16 +22690,12 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
22599
22690
  function toScopedEventRegistrationEvents(scopedSourceEvents) {
22600
22691
  return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
22601
22692
  }
22602
- function scopeEventRegistrationSourceEvents(source) {
22603
- return resolveEventRegistrationScopedEvents(source.wholeSeriesRunEvents ?? source.events ?? [], {
22693
+ function scopeEventRegistrationSourceEvents(source, eventSource) {
22694
+ return resolveEventRegistrationScopedEvents(eventSource.kind === "loaded" ? eventSource.events : [], {
22604
22695
  occurrenceContext: source.occurrenceContext,
22605
22696
  subject: source.subject
22606
22697
  });
22607
22698
  }
22608
- function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
22609
- if (source.events == null && source.wholeSeriesRunEvents == null) return null;
22610
- return [...scopedSourceEvents];
22611
- }
22612
22699
  /**
22613
22700
  * The one run this surface is registering for, when the scoped events describe
22614
22701
  * exactly one. More than one run means the visitor still has to choose.
@@ -22648,14 +22735,21 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
22648
22735
  render: createZodCodec(eventRegistrationRenderSchema)
22649
22736
  },
22650
22737
  buildRender: (source) => {
22651
- const scopedSourceEvents = scopeEventRegistrationSourceEvents(source);
22652
- const events = resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents);
22738
+ const eventSource = resolveEventRegistrationEventSource({
22739
+ events: source.events,
22740
+ wholeSeriesRunEvents: source.wholeSeriesRunEvents,
22741
+ failures: source.eventLoaderFailures
22742
+ });
22743
+ const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
22653
22744
  return {
22654
22745
  display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
22655
22746
  hydration: {
22656
22747
  occurrenceContext: source.occurrenceContext ?? null,
22657
22748
  subject: source.subject ?? null,
22658
- events,
22749
+ eventSource: eventSource.kind === "loaded" ? {
22750
+ ...eventSource,
22751
+ events: [...scopedSourceEvents]
22752
+ } : eventSource,
22659
22753
  maxTickets: source.maxTickets ?? void 0,
22660
22754
  showVenue: source.showVenue,
22661
22755
  showCapacity: source.showCapacity,
@@ -22831,6 +22925,7 @@ const eventRegistrationBlockDefinition = {
22831
22925
  } },
22832
22926
  events: { $bind: { from: "data.events" } },
22833
22927
  wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
22928
+ loaderFailures: { $bind: { from: "$root.loaderFailures" } },
22834
22929
  sitePasses: { $bind: { from: "data.sitePasses" } },
22835
22930
  siteMemberships: { $bind: { from: "data.siteMemberships" } },
22836
22931
  stage: { $bind: {
@@ -29311,6 +29406,15 @@ const newsletterFieldSchema = z.object({
29311
29406
  placeholder: z.string().optional()
29312
29407
  });
29313
29408
  const mailingListSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
29409
+ const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
29410
+ const parsed = parseMailingListContentVersionId(value);
29411
+ if (parsed) return parsed;
29412
+ ctx.addIssue({
29413
+ code: z.ZodIssueCode.custom,
29414
+ message: "Invalid mailing-list content version ID"
29415
+ });
29416
+ return z.NEVER;
29417
+ });
29314
29418
  const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
29315
29419
  const newsletterSourceCommonSchema = z.object({
29316
29420
  siteId: z.string().optional(),
@@ -29324,7 +29428,8 @@ const newsletterSourceCommonSchema = z.object({
29324
29428
  const newsletterSourceSchema = z.discriminatedUnion("source", [
29325
29429
  newsletterSourceCommonSchema.extend({
29326
29430
  source: z.literal("block"),
29327
- blockId: z.string().nullable().optional()
29431
+ blockId: z.string().nullable().optional(),
29432
+ contentVersionId: z.string().nullable().optional()
29328
29433
  }),
29329
29434
  newsletterSourceCommonSchema.extend({
29330
29435
  source: z.literal("signed-footer"),
@@ -29340,6 +29445,7 @@ const newsletterDisplaySchema = z.object({
29340
29445
  availability: z.enum(["ready", "unavailable"]),
29341
29446
  className: z.string().nullable(),
29342
29447
  buttonLabel: z.string(),
29448
+ successMessage: z.string(),
29343
29449
  buttonVariant: newsletterButtonVariantSchema,
29344
29450
  privacyNote: z.string().nullable(),
29345
29451
  fields: z.array(newsletterFieldSchema),
@@ -29354,7 +29460,8 @@ const newsletterHydrationSchema = z.object({
29354
29460
  tag: z.literal("block-source"),
29355
29461
  sourceRef: z.object({
29356
29462
  tag: z.literal("block_ref"),
29357
- blockId: mailingListSignupBlockIdSchema
29463
+ blockId: mailingListSignupBlockIdSchema,
29464
+ contentVersionId: mailingListContentVersionIdSchema
29358
29465
  }).nullable()
29359
29466
  }),
29360
29467
  z.object({
@@ -29393,6 +29500,7 @@ function buildNewsletterDisplay(source) {
29393
29500
  fields: { preset: "emailOnly" },
29394
29501
  includeOptionalPhone: false,
29395
29502
  buttonLabel: "Subscribe",
29503
+ successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
29396
29504
  privacyNote: null
29397
29505
  };
29398
29506
  const targeting = source.targeting ?? { mode: "default" };
@@ -29402,6 +29510,7 @@ function buildNewsletterDisplay(source) {
29402
29510
  availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
29403
29511
  className: source.className ?? null,
29404
29512
  buttonLabel: form.buttonLabel,
29513
+ successMessage: form.successMessage,
29405
29514
  buttonVariant: source.buttonVariant ?? "primary",
29406
29515
  privacyNote: form.privacyNote,
29407
29516
  fields: getGlobalFormFields(form),
@@ -29432,7 +29541,7 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
29432
29541
  function projectNewsletterFormHydrationTarget(source) {
29433
29542
  switch (source.source) {
29434
29543
  case "block": {
29435
- const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
29544
+ const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
29436
29545
  if (sourceRef?.tag === "block_ref") return {
29437
29546
  tag: "block-source",
29438
29547
  sourceRef
@@ -12,7 +12,7 @@ import * as crypto from "crypto";
12
12
  * 1. This constant
13
13
  * 2. The "version" field in package.json
14
14
  */
15
- const SDK_VERSION = "0.139.0";
15
+ const SDK_VERSION = "0.140.0";
16
16
  //#endregion
17
17
  //#region src/constants.ts
18
18
  /**