@riverbankcms/sdk 0.132.0 → 0.134.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 (159) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/{PreviewEditorSidebar-DKQ5eFK9.mjs → PreviewEditorSidebar-DfRhJPFQ.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-CNTcOjCC.mjs → PreviewEditorUI-Dppxcr_g.mjs} +2 -2
  4. package/dist/{SdkPreviewModeRuntime-DJu3qu33.mjs → SdkPreviewModeRuntime-8CyGCXir.mjs} +46 -15
  5. package/dist/{SiteChromeCustomizeContext-2TzT3vbj.mjs → SiteChromeCustomizeContext-DVMTMvqA.mjs} +497 -169
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +384 -384
  7. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +219 -219
  8. package/dist/_dts/api/src/accountApi.d.ts +5 -5
  9. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +1 -1
  10. package/dist/_dts/api/src/bookingOperations.d.ts +2 -14
  11. package/dist/_dts/api/src/bookings.d.ts +2 -2
  12. package/dist/_dts/api/src/contentRuntime.d.ts +1 -1
  13. package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +2 -2
  14. package/dist/_dts/api/src/endpoints.d.ts +3 -3
  15. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  16. package/dist/_dts/api/src/navigation/contracts.d.ts +9 -6
  17. package/dist/_dts/api/src/navigation/linkResolver.d.ts +6 -2
  18. package/dist/_dts/api/src/navigation/types.d.ts +23 -6
  19. package/dist/_dts/api/src/navigation.d.ts +1 -1
  20. package/dist/_dts/api/src/publicBookingService.d.ts +15 -0
  21. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +3 -1
  22. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +2 -0
  23. package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
  24. package/dist/_dts/api/src/sdkThemeWire.d.ts +50 -50
  25. package/dist/_dts/api/src/siteBanner.d.ts +4 -2
  26. package/dist/_dts/api/src/types.d.ts +1 -1
  27. package/dist/_dts/api/src/webhooks.d.ts +12 -12
  28. package/dist/_dts/blocks/src/client.d.ts +1 -1
  29. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +28 -72
  30. package/dist/_dts/blocks/src/index.d.ts +3 -2
  31. package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +2 -2
  32. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +36 -14
  34. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +3 -0
  35. package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +3 -3
  36. package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +4 -4
  38. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +148 -148
  39. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/blocks/shared/bookingConsent.d.ts +36 -0
  41. package/dist/_dts/blocks/src/system/manifest/hydrateLinks.d.ts +9 -2
  42. package/dist/_dts/blocks/src/system/manifest/resolveBlockData.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +79 -79
  44. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -11
  45. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +2 -0
  46. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/runtime/components/multi-step/DynamicFormFields.d.ts +3 -19
  48. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useSelectedAppointmentConsentForm.d.ts +2 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.consent.d.ts +10 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.field-values.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.fields.d.ts +21 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +2 -1
  54. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +38 -144
  55. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -19
  56. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +2 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +18 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -4
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/validation.d.ts +2 -1
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +2 -1
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.contract.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +34 -12
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingConsentAgreement.d.ts +7 -0
  65. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
  66. package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
  67. package/dist/_dts/content-model/src/content-types/schema.d.ts +4 -4
  68. package/dist/_dts/core/src/booking-consent.d.ts +8 -0
  69. package/dist/_dts/core/src/index.d.ts +1 -0
  70. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
  71. package/dist/_dts/db/src/schemas/forms.d.ts +21 -21
  72. package/dist/_dts/db/src/types/jsonb.d.ts +1 -1
  73. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +2 -1
  74. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +2 -1
  75. package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +3 -2
  76. package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +3 -4
  77. package/dist/_dts/media-core/src/usageScanner.d.ts +1 -1
  78. package/dist/_dts/sdk/src/bookings/types.d.ts +7 -89
  79. package/dist/_dts/sdk/src/config/validation.d.ts +30 -30
  80. package/dist/_dts/sdk/src/contracts/content.d.ts +10 -36
  81. package/dist/_dts/sdk/src/contracts/rendering.d.ts +1 -1
  82. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +9 -9
  83. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -19
  84. package/dist/_dts/sdk/src/version.d.ts +1 -1
  85. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  86. package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -12
  87. package/dist/_dts/theme-core/src/cards/types.d.ts +5 -5
  88. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -72
  89. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
  90. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
  92. package/dist/_dts/theme-core/src/schema.d.ts +82 -82
  93. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  95. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  96. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  97. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
  98. package/dist/_dts/ui/src/badge.d.ts +1 -1
  99. package/dist/_dts/ui/src/button.d.ts +1 -1
  100. package/dist/_dts/ui/src/callout.d.ts +1 -1
  101. package/dist/_dts/ui/src/card.d.ts +1 -1
  102. package/dist/client/{StepIndicator-CGixP_LW.mjs → BookingConsentAgreement-BxgpGEFD.mjs} +26 -4
  103. package/dist/client/{DiscountCodeDisclosure-DO7llLxm.mjs → DiscountCodeDisclosure-CfuPOHD0.mjs} +1 -1
  104. package/dist/client/{EventCombined.client-xID7zN__.mjs → EventCombined.client-DB8Qfzi-.mjs} +3 -3
  105. package/dist/client/{EventListing.client-CriBslp0.mjs → EventListing.client-DD4X8hp4.mjs} +2 -2
  106. package/dist/client/{LeafletStaticMap-DYmHnM8g.mjs → LeafletStaticMap-QhgIBQbv.mjs} +1 -1
  107. package/dist/client/{WholeSeriesRegistrationWizard-BEjzSiOA.mjs → WholeSeriesRegistrationWizard-DwtC7bCs.mjs} +72 -22
  108. package/dist/client/{accordion-CgFbnnnQ.mjs → accordion-DFXpLvwg.mjs} +1 -1
  109. package/dist/client/{bookingForm-dUyGpbxc.mjs → bookingForm-sI05d3lk.mjs} +73 -47
  110. package/dist/client/bookings.mjs +989 -140
  111. package/dist/client/{carousel-BvBwkUzx.mjs → carousel-wjyWTZCh.mjs} +1 -1
  112. package/dist/client/{cart-DiZENT2E.mjs → cart-DCwdpA4i.mjs} +3 -3
  113. package/dist/client/{checkout-Dq13KIgR.mjs → checkout-DTDW3l0R.mjs} +3 -3
  114. package/dist/client/checkoutUrls-DQYC_Br-.mjs +187 -0
  115. package/dist/client/client.mjs +556 -237
  116. package/dist/client/{context-B83PiNzm.mjs → context-TSK1CGx8.mjs} +1 -14
  117. package/dist/client/{courseRegistration-CKC5NmyH.mjs → courseRegistration-A-Tg7qw_.mjs} +3 -3
  118. package/dist/client/{eventCalendar-BF0Jatfw.mjs → eventCalendar-B0Zg-i_w.mjs} +5 -5
  119. package/dist/client/{eventCombined-BuoCF8je.mjs → eventCombined-B8Y2wizd.mjs} +3 -3
  120. package/dist/client/{eventDetails-CKwh0S9s.mjs → eventDetails-DPDOwURJ.mjs} +3 -3
  121. package/dist/client/{eventListing-eUxaWFaB.mjs → eventListing-CjBcmSLn.mjs} +3 -3
  122. package/dist/client/{eventRegistration-CfkNOkPb.mjs → eventRegistration-CK30HsAq.mjs} +111 -64
  123. package/dist/client/{form-C17H1c_H.mjs → form-CUXfsABE.mjs} +2 -2
  124. package/dist/client/{headerSection-DEwUmrtt.mjs → headerSection-N-mN3rjr.mjs} +2 -2
  125. package/dist/client/hooks.mjs +106 -3
  126. package/dist/client/{locationMap-Pf2QwuvW.mjs → locationMap-oiIDQMBt.mjs} +2 -2
  127. package/dist/client/{newsletterForm-BWQAH5Sv.mjs → newsletterForm-CkQ2tTrM.mjs} +2 -2
  128. package/dist/client/{pricing-CVdvbopJ.mjs → pricing-Caa0QWzh.mjs} +1 -1
  129. package/dist/client/{productDetail-BZi1Fa_G.mjs → productDetail-CnidyrsN.mjs} +3 -3
  130. package/dist/client/{productList-qq-55DNk.mjs → productList-CttYcS_S.mjs} +3 -3
  131. package/dist/client/{propsDecoder-BxmqPKdP.mjs → propsDecoder-CeUMxI9a.mjs} +211 -100
  132. package/dist/client/rendering/client.mjs +428 -151
  133. package/dist/client/rendering/islands.mjs +18 -18
  134. package/dist/client/rendering.mjs +643 -324
  135. package/dist/client/{scrollToBlock-B3CcKdtG.mjs → scrollToBlock-lPr1oqxB.mjs} +1 -1
  136. package/dist/client/{shop-DNWJPut5.mjs → shop-DXQtMo2O.mjs} +6 -6
  137. package/dist/client/{shop-commerce-BhvQCosS.mjs → shop-commerce-quDL411J.mjs} +7 -164
  138. package/dist/client/{shop-commerce-store-B04sCNnW.mjs → shop-commerce-store-Dnu-8Iub.mjs} +1 -1
  139. package/dist/client/{shopShared-DNNgZlmW.mjs → shopShared-BWPUURvG.mjs} +3 -3
  140. package/dist/client/{useEventFilters-CUmhE24_.mjs → useEventFilters-DRhWp2_5.mjs} +3 -3
  141. package/dist/client/{usePolling-M5jG675x.mjs → usePolling-UN4WKnaM.mjs} +2 -2
  142. package/dist/preview-next/client/runtime.mjs +3 -3
  143. package/dist/{sdk-runtime-BEXb1wqo.mjs → sdk-runtime-Ca5RD78X.mjs} +1 -1
  144. package/dist/{separator-DGMuip1D.mjs → separator-CMhj6BTi.mjs} +1 -1
  145. package/dist/server/components.mjs +117 -37
  146. package/dist/server/config-validation.mjs +106 -3
  147. package/dist/server/config.mjs +106 -3
  148. package/dist/server/data.mjs +106 -3
  149. package/dist/server/index.mjs +1 -1
  150. package/dist/server/next.mjs +186 -106
  151. package/dist/server/page-converter.mjs +105 -2
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +119 -37
  154. package/dist/server/rendering.mjs +117 -37
  155. package/dist/server/routing.mjs +132 -73
  156. package/dist/server/server.mjs +107 -4
  157. package/dist/server/theme-bridge.mjs +4 -4
  158. package/package.json +2 -2
  159. package/dist/client/checkoutUrls-Ct8Mxna3.mjs +0 -26
@@ -2485,6 +2485,68 @@ z.object({
2485
2485
  monthlyCurrency: z.literal("gbp")
2486
2486
  });
2487
2487
  //#endregion
2488
+ //#region ../blocks/src/system/types/link.ts
2489
+ const nullableString = z.union([z.string().min(1), z.null()]);
2490
+ const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
2491
+ "page",
2492
+ "content",
2493
+ "pageSurface"
2494
+ ];
2495
+ const resolvedInternalLinkKeys = [
2496
+ "entityId",
2497
+ "entityType",
2498
+ "href",
2499
+ "title",
2500
+ "typeLabel"
2501
+ ];
2502
+ const internalRouteOnlyLinkSchema = z.object({
2503
+ kind: z.literal("internal"),
2504
+ routeId: z.string().min(1)
2505
+ }).passthrough().superRefine((value, ctx) => {
2506
+ if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
2507
+ ctx.addIssue({
2508
+ code: "custom",
2509
+ message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
2510
+ });
2511
+ });
2512
+ const internalResolvedLinkSchema = z.object({
2513
+ kind: z.literal("internal"),
2514
+ routeId: z.string().min(1),
2515
+ entityId: z.string().min(1),
2516
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2517
+ href: z.string().min(1),
2518
+ title: z.string().min(1),
2519
+ typeLabel: z.string().min(1),
2520
+ contentTypeKey: nullableString.optional(),
2521
+ contentTypeName: nullableString.optional(),
2522
+ updatedAt: nullableString.optional()
2523
+ }).passthrough();
2524
+ const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
2525
+ const externalLinkSchema$1 = z.object({
2526
+ kind: z.literal("external"),
2527
+ href: z.string().min(1)
2528
+ }).passthrough();
2529
+ const customLinkSchema$1 = z.object({
2530
+ kind: z.literal("url"),
2531
+ href: z.string().min(1)
2532
+ }).passthrough();
2533
+ const pageLinkSchema$1 = z.object({
2534
+ kind: z.literal("page"),
2535
+ identifier: z.string().min(1)
2536
+ }).passthrough();
2537
+ const entryLinkSchema$1 = z.object({
2538
+ kind: z.literal("entry"),
2539
+ contentType: z.string().min(1),
2540
+ identifier: z.string().min(1)
2541
+ }).passthrough();
2542
+ z.union([
2543
+ internalLinkSchema,
2544
+ externalLinkSchema$1,
2545
+ customLinkSchema$1,
2546
+ pageLinkSchema$1,
2547
+ entryLinkSchema$1
2548
+ ]);
2549
+ //#endregion
2488
2550
  //#region ../api/src/navigation/contracts.ts
2489
2551
  /**
2490
2552
  * Canonical navigation/link Zod contracts.
@@ -2514,7 +2576,7 @@ const internalLinkPayloadSchema = z.object({
2514
2576
  kind: z.literal("internal"),
2515
2577
  routeId: z.string().uuid(),
2516
2578
  entityId: z.string().uuid(),
2517
- entityType: z.enum(["page", "content"]),
2579
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2518
2580
  href: z.string().min(1),
2519
2581
  title: z.string().min(1),
2520
2582
  typeLabel: z.string().min(1),
@@ -26482,6 +26544,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
26482
26544
  ]);
26483
26545
  const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
26484
26546
  //#endregion
26547
+ //#region ../blocks/src/system/blocks/shared/bookingConsent.ts
26548
+ const blockBookingConsentSchema = z.object({
26549
+ requirementId: z.string(),
26550
+ title: z.string(),
26551
+ agreement: RichTextDocSchema,
26552
+ checkboxLabel: z.string()
26553
+ });
26554
+ const bookingRequirementConsentFieldSchema = z.object({
26555
+ id: z.string(),
26556
+ label: z.string(),
26557
+ type: z.literal("booking_requirement_consent"),
26558
+ required: z.literal(true),
26559
+ agreement: RichTextDocSchema,
26560
+ checkboxLabel: z.string().min(1)
26561
+ });
26562
+ z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
26563
+ //#endregion
26485
26564
  //#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
26486
26565
  const wholeSeriesVenueSchema = z.object({
26487
26566
  id: z.string(),
@@ -26546,6 +26625,7 @@ const publicWholeSeriesOfferingSchema = z.object({
26546
26625
  pricing: wholeSeriesPricingSchema,
26547
26626
  currency: z.string(),
26548
26627
  paymentTerms: blockBookingPaymentTermsSchema,
26628
+ consent: blockBookingConsentSchema.nullable(),
26549
26629
  enrollmentCapacity: z.number().nullable(),
26550
26630
  acceptsMemberships: z.boolean(),
26551
26631
  status: z.enum([
@@ -26863,6 +26943,7 @@ const publicEventSchema = z.object({
26863
26943
  timeZone: z.string(),
26864
26944
  pricing: publicEventPricingSchema,
26865
26945
  paymentTerms: blockBookingPaymentTermsSchema,
26946
+ consent: blockBookingConsentSchema.nullable(),
26866
26947
  accessRestriction: accessRestrictionSchema,
26867
26948
  allowedCategoryIds: z.array(z.string()),
26868
26949
  requireGuestDetails: z.boolean().optional(),
@@ -27211,6 +27292,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
27211
27292
  return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
27212
27293
  }
27213
27294
  //#endregion
27295
+ //#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
27296
+ function planEventRegistrationScope(input) {
27297
+ const subject = input.subject;
27298
+ const selectedRunOffering = input.wholeSeriesOffering;
27299
+ if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
27300
+ kind: "context",
27301
+ events: resolveEventRegistrationScopedEvents(input.events, {
27302
+ occurrenceContext: input.occurrenceContext,
27303
+ subject
27304
+ })
27305
+ };
27306
+ if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
27307
+ return {
27308
+ kind: "selectedRun",
27309
+ events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
27310
+ offering: selectedRunOffering
27311
+ };
27312
+ }
27313
+ //#endregion
27214
27314
  //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
27215
27315
  function isRecord$5(value) {
27216
27316
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -27624,10 +27724,13 @@ function buildEventRegistrationShellStepLabels(source) {
27624
27724
  }) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
27625
27725
  }
27626
27726
  function scopeEventRegistrationEvents(source) {
27627
- return resolveEventRegistrationScopedEvents(toRegistrationEvents(source.events ?? []), {
27727
+ const scope = planEventRegistrationScope({
27728
+ events: toRegistrationEvents(source.events ?? []),
27729
+ wholeSeriesOffering: source.wholeSeriesOffering,
27628
27730
  occurrenceContext: source.occurrenceContext,
27629
27731
  subject: source.subject
27630
27732
  });
27733
+ return scope.kind === "invalidSelectedRun" ? [] : scope.events;
27631
27734
  }
27632
27735
  function shellLabelForRegistrationStep(step, events) {
27633
27736
  switch (step) {
@@ -30840,7 +30943,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
30840
30943
  entityId: z.string(),
30841
30944
  path: z.string(),
30842
30945
  title: z.string(),
30843
- kind: z.enum(["page", "content"]),
30946
+ kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
30844
30947
  contentTypeKey: z.string().nullable().optional()
30845
30948
  })) });
30846
30949
  const groupOverrideFields = [
@@ -2561,6 +2561,68 @@ z.object({
2561
2561
  monthlyCurrency: z.literal("gbp")
2562
2562
  });
2563
2563
  //#endregion
2564
+ //#region ../blocks/src/system/types/link.ts
2565
+ const nullableString = z.union([z.string().min(1), z.null()]);
2566
+ const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
2567
+ "page",
2568
+ "content",
2569
+ "pageSurface"
2570
+ ];
2571
+ const resolvedInternalLinkKeys = [
2572
+ "entityId",
2573
+ "entityType",
2574
+ "href",
2575
+ "title",
2576
+ "typeLabel"
2577
+ ];
2578
+ const internalRouteOnlyLinkSchema = z.object({
2579
+ kind: z.literal("internal"),
2580
+ routeId: z.string().min(1)
2581
+ }).passthrough().superRefine((value, ctx) => {
2582
+ if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
2583
+ ctx.addIssue({
2584
+ code: "custom",
2585
+ message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
2586
+ });
2587
+ });
2588
+ const internalResolvedLinkSchema = z.object({
2589
+ kind: z.literal("internal"),
2590
+ routeId: z.string().min(1),
2591
+ entityId: z.string().min(1),
2592
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2593
+ href: z.string().min(1),
2594
+ title: z.string().min(1),
2595
+ typeLabel: z.string().min(1),
2596
+ contentTypeKey: nullableString.optional(),
2597
+ contentTypeName: nullableString.optional(),
2598
+ updatedAt: nullableString.optional()
2599
+ }).passthrough();
2600
+ const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
2601
+ const externalLinkSchema$1 = z.object({
2602
+ kind: z.literal("external"),
2603
+ href: z.string().min(1)
2604
+ }).passthrough();
2605
+ const customLinkSchema$1 = z.object({
2606
+ kind: z.literal("url"),
2607
+ href: z.string().min(1)
2608
+ }).passthrough();
2609
+ const pageLinkSchema$1 = z.object({
2610
+ kind: z.literal("page"),
2611
+ identifier: z.string().min(1)
2612
+ }).passthrough();
2613
+ const entryLinkSchema$1 = z.object({
2614
+ kind: z.literal("entry"),
2615
+ contentType: z.string().min(1),
2616
+ identifier: z.string().min(1)
2617
+ }).passthrough();
2618
+ z.union([
2619
+ internalLinkSchema,
2620
+ externalLinkSchema$1,
2621
+ customLinkSchema$1,
2622
+ pageLinkSchema$1,
2623
+ entryLinkSchema$1
2624
+ ]);
2625
+ //#endregion
2564
2626
  //#region ../api/src/navigation/contracts.ts
2565
2627
  /**
2566
2628
  * Canonical navigation/link Zod contracts.
@@ -2590,7 +2652,7 @@ const internalLinkPayloadSchema = z.object({
2590
2652
  kind: z.literal("internal"),
2591
2653
  routeId: z.string().uuid(),
2592
2654
  entityId: z.string().uuid(),
2593
- entityType: z.enum(["page", "content"]),
2655
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2594
2656
  href: z.string().min(1),
2595
2657
  title: z.string().min(1),
2596
2658
  typeLabel: z.string().min(1),
@@ -26558,6 +26620,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
26558
26620
  ]);
26559
26621
  const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
26560
26622
  //#endregion
26623
+ //#region ../blocks/src/system/blocks/shared/bookingConsent.ts
26624
+ const blockBookingConsentSchema = z.object({
26625
+ requirementId: z.string(),
26626
+ title: z.string(),
26627
+ agreement: RichTextDocSchema,
26628
+ checkboxLabel: z.string()
26629
+ });
26630
+ const bookingRequirementConsentFieldSchema = z.object({
26631
+ id: z.string(),
26632
+ label: z.string(),
26633
+ type: z.literal("booking_requirement_consent"),
26634
+ required: z.literal(true),
26635
+ agreement: RichTextDocSchema,
26636
+ checkboxLabel: z.string().min(1)
26637
+ });
26638
+ z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
26639
+ //#endregion
26561
26640
  //#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
26562
26641
  const wholeSeriesVenueSchema = z.object({
26563
26642
  id: z.string(),
@@ -26622,6 +26701,7 @@ const publicWholeSeriesOfferingSchema = z.object({
26622
26701
  pricing: wholeSeriesPricingSchema,
26623
26702
  currency: z.string(),
26624
26703
  paymentTerms: blockBookingPaymentTermsSchema,
26704
+ consent: blockBookingConsentSchema.nullable(),
26625
26705
  enrollmentCapacity: z.number().nullable(),
26626
26706
  acceptsMemberships: z.boolean(),
26627
26707
  status: z.enum([
@@ -26939,6 +27019,7 @@ const publicEventSchema = z.object({
26939
27019
  timeZone: z.string(),
26940
27020
  pricing: publicEventPricingSchema,
26941
27021
  paymentTerms: blockBookingPaymentTermsSchema,
27022
+ consent: blockBookingConsentSchema.nullable(),
26942
27023
  accessRestriction: accessRestrictionSchema,
26943
27024
  allowedCategoryIds: z.array(z.string()),
26944
27025
  requireGuestDetails: z.boolean().optional(),
@@ -27287,6 +27368,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
27287
27368
  return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
27288
27369
  }
27289
27370
  //#endregion
27371
+ //#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
27372
+ function planEventRegistrationScope(input) {
27373
+ const subject = input.subject;
27374
+ const selectedRunOffering = input.wholeSeriesOffering;
27375
+ if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
27376
+ kind: "context",
27377
+ events: resolveEventRegistrationScopedEvents(input.events, {
27378
+ occurrenceContext: input.occurrenceContext,
27379
+ subject
27380
+ })
27381
+ };
27382
+ if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
27383
+ return {
27384
+ kind: "selectedRun",
27385
+ events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
27386
+ offering: selectedRunOffering
27387
+ };
27388
+ }
27389
+ //#endregion
27290
27390
  //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
27291
27391
  function isRecord$5(value) {
27292
27392
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -27700,10 +27800,13 @@ function buildEventRegistrationShellStepLabels(source) {
27700
27800
  }) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
27701
27801
  }
27702
27802
  function scopeEventRegistrationEvents(source) {
27703
- return resolveEventRegistrationScopedEvents(toRegistrationEvents(source.events ?? []), {
27803
+ const scope = planEventRegistrationScope({
27804
+ events: toRegistrationEvents(source.events ?? []),
27805
+ wholeSeriesOffering: source.wholeSeriesOffering,
27704
27806
  occurrenceContext: source.occurrenceContext,
27705
27807
  subject: source.subject
27706
27808
  });
27809
+ return scope.kind === "invalidSelectedRun" ? [] : scope.events;
27707
27810
  }
27708
27811
  function shellLabelForRegistrationStep(step, events) {
27709
27812
  switch (step) {
@@ -30916,7 +31019,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
30916
31019
  entityId: z.string(),
30917
31020
  path: z.string(),
30918
31021
  title: z.string(),
30919
- kind: z.enum(["page", "content"]),
31022
+ kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
30920
31023
  contentTypeKey: z.string().nullable().optional()
30921
31024
  })) });
30922
31025
  const groupOverrideFields = [
@@ -2485,6 +2485,68 @@ z.object({
2485
2485
  monthlyCurrency: z.literal("gbp")
2486
2486
  });
2487
2487
  //#endregion
2488
+ //#region ../blocks/src/system/types/link.ts
2489
+ const nullableString = z.union([z.string().min(1), z.null()]);
2490
+ const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
2491
+ "page",
2492
+ "content",
2493
+ "pageSurface"
2494
+ ];
2495
+ const resolvedInternalLinkKeys = [
2496
+ "entityId",
2497
+ "entityType",
2498
+ "href",
2499
+ "title",
2500
+ "typeLabel"
2501
+ ];
2502
+ const internalRouteOnlyLinkSchema = z.object({
2503
+ kind: z.literal("internal"),
2504
+ routeId: z.string().min(1)
2505
+ }).passthrough().superRefine((value, ctx) => {
2506
+ if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
2507
+ ctx.addIssue({
2508
+ code: "custom",
2509
+ message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
2510
+ });
2511
+ });
2512
+ const internalResolvedLinkSchema = z.object({
2513
+ kind: z.literal("internal"),
2514
+ routeId: z.string().min(1),
2515
+ entityId: z.string().min(1),
2516
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2517
+ href: z.string().min(1),
2518
+ title: z.string().min(1),
2519
+ typeLabel: z.string().min(1),
2520
+ contentTypeKey: nullableString.optional(),
2521
+ contentTypeName: nullableString.optional(),
2522
+ updatedAt: nullableString.optional()
2523
+ }).passthrough();
2524
+ const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
2525
+ const externalLinkSchema$1 = z.object({
2526
+ kind: z.literal("external"),
2527
+ href: z.string().min(1)
2528
+ }).passthrough();
2529
+ const customLinkSchema$1 = z.object({
2530
+ kind: z.literal("url"),
2531
+ href: z.string().min(1)
2532
+ }).passthrough();
2533
+ const pageLinkSchema$1 = z.object({
2534
+ kind: z.literal("page"),
2535
+ identifier: z.string().min(1)
2536
+ }).passthrough();
2537
+ const entryLinkSchema$1 = z.object({
2538
+ kind: z.literal("entry"),
2539
+ contentType: z.string().min(1),
2540
+ identifier: z.string().min(1)
2541
+ }).passthrough();
2542
+ z.union([
2543
+ internalLinkSchema,
2544
+ externalLinkSchema$1,
2545
+ customLinkSchema$1,
2546
+ pageLinkSchema$1,
2547
+ entryLinkSchema$1
2548
+ ]);
2549
+ //#endregion
2488
2550
  //#region ../api/src/navigation/contracts.ts
2489
2551
  /**
2490
2552
  * Canonical navigation/link Zod contracts.
@@ -2514,7 +2576,7 @@ const internalLinkPayloadSchema = z.object({
2514
2576
  kind: z.literal("internal"),
2515
2577
  routeId: z.string().uuid(),
2516
2578
  entityId: z.string().uuid(),
2517
- entityType: z.enum(["page", "content"]),
2579
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2518
2580
  href: z.string().min(1),
2519
2581
  title: z.string().min(1),
2520
2582
  typeLabel: z.string().min(1),
@@ -26484,6 +26546,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
26484
26546
  ]);
26485
26547
  const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
26486
26548
  //#endregion
26549
+ //#region ../blocks/src/system/blocks/shared/bookingConsent.ts
26550
+ const blockBookingConsentSchema = z.object({
26551
+ requirementId: z.string(),
26552
+ title: z.string(),
26553
+ agreement: RichTextDocSchema,
26554
+ checkboxLabel: z.string()
26555
+ });
26556
+ const bookingRequirementConsentFieldSchema = z.object({
26557
+ id: z.string(),
26558
+ label: z.string(),
26559
+ type: z.literal("booking_requirement_consent"),
26560
+ required: z.literal(true),
26561
+ agreement: RichTextDocSchema,
26562
+ checkboxLabel: z.string().min(1)
26563
+ });
26564
+ z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
26565
+ //#endregion
26487
26566
  //#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
26488
26567
  const wholeSeriesVenueSchema = z.object({
26489
26568
  id: z.string(),
@@ -26548,6 +26627,7 @@ const publicWholeSeriesOfferingSchema = z.object({
26548
26627
  pricing: wholeSeriesPricingSchema,
26549
26628
  currency: z.string(),
26550
26629
  paymentTerms: blockBookingPaymentTermsSchema,
26630
+ consent: blockBookingConsentSchema.nullable(),
26551
26631
  enrollmentCapacity: z.number().nullable(),
26552
26632
  acceptsMemberships: z.boolean(),
26553
26633
  status: z.enum([
@@ -26865,6 +26945,7 @@ const publicEventSchema = z.object({
26865
26945
  timeZone: z.string(),
26866
26946
  pricing: publicEventPricingSchema,
26867
26947
  paymentTerms: blockBookingPaymentTermsSchema,
26948
+ consent: blockBookingConsentSchema.nullable(),
26868
26949
  accessRestriction: accessRestrictionSchema,
26869
26950
  allowedCategoryIds: z.array(z.string()),
26870
26951
  requireGuestDetails: z.boolean().optional(),
@@ -27213,6 +27294,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
27213
27294
  return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
27214
27295
  }
27215
27296
  //#endregion
27297
+ //#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
27298
+ function planEventRegistrationScope(input) {
27299
+ const subject = input.subject;
27300
+ const selectedRunOffering = input.wholeSeriesOffering;
27301
+ if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
27302
+ kind: "context",
27303
+ events: resolveEventRegistrationScopedEvents(input.events, {
27304
+ occurrenceContext: input.occurrenceContext,
27305
+ subject
27306
+ })
27307
+ };
27308
+ if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
27309
+ return {
27310
+ kind: "selectedRun",
27311
+ events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
27312
+ offering: selectedRunOffering
27313
+ };
27314
+ }
27315
+ //#endregion
27216
27316
  //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
27217
27317
  function isRecord$7(value) {
27218
27318
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -27626,10 +27726,13 @@ function buildEventRegistrationShellStepLabels(source) {
27626
27726
  }) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
27627
27727
  }
27628
27728
  function scopeEventRegistrationEvents(source) {
27629
- return resolveEventRegistrationScopedEvents(toRegistrationEvents(source.events ?? []), {
27729
+ const scope = planEventRegistrationScope({
27730
+ events: toRegistrationEvents(source.events ?? []),
27731
+ wholeSeriesOffering: source.wholeSeriesOffering,
27630
27732
  occurrenceContext: source.occurrenceContext,
27631
27733
  subject: source.subject
27632
27734
  });
27735
+ return scope.kind === "invalidSelectedRun" ? [] : scope.events;
27633
27736
  }
27634
27737
  function shellLabelForRegistrationStep(step, events) {
27635
27738
  switch (step) {
@@ -31066,7 +31169,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
31066
31169
  entityId: z.string(),
31067
31170
  path: z.string(),
31068
31171
  title: z.string(),
31069
- kind: z.enum(["page", "content"]),
31172
+ kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
31070
31173
  contentTypeKey: z.string().nullable().optional()
31071
31174
  })) });
31072
31175
  const groupOverrideFields = [
@@ -8171,7 +8171,7 @@ var SimpleCache = class {
8171
8171
  * 1. This constant
8172
8172
  * 2. The "version" field in package.json
8173
8173
  */
8174
- const SDK_VERSION = "0.132.0";
8174
+ const SDK_VERSION = "0.134.0";
8175
8175
  //#endregion
8176
8176
  //#region src/client/error.ts
8177
8177
  let _Symbol$for;