@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
@@ -42,7 +42,7 @@ export declare function cardRoleFromLegacyVocabulary(value: unknown): CardRole |
42
42
  */
43
43
  export declare const cardRoleWithLegacyAliasSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodEnum<{
44
44
  open: "open";
45
- default: "default";
46
45
  none: "none";
46
+ default: "default";
47
47
  alternative: "alternative";
48
48
  }>>;
@@ -85,10 +85,10 @@ export type PageStyleAuthoritySummary<TBlockId extends string = DesignBlockId> =
85
85
  export declare const styleAuthoritySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
86
86
  kind: z.ZodLiteral<"theme-v2">;
87
87
  source: z.ZodEnum<{
88
- user: "user";
89
88
  admin: "admin";
90
89
  sdk: "sdk";
91
90
  generated: "generated";
91
+ user: "user";
92
92
  }>;
93
93
  siteStyleId: z.ZodPipe<z.ZodString, z.ZodTransform<SiteStyleId, string>>;
94
94
  templateId: z.ZodPipe<z.ZodString, z.ZodTransform<DesignSystemTemplateId, string>>;
@@ -118,10 +118,10 @@ export declare const blockRuntimeStyleAuthoritySchema: z.ZodObject<{
118
118
  authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
119
119
  kind: z.ZodLiteral<"theme-v2">;
120
120
  source: z.ZodEnum<{
121
- user: "user";
122
121
  admin: "admin";
123
122
  sdk: "sdk";
124
123
  generated: "generated";
124
+ user: "user";
125
125
  }>;
126
126
  siteStyleId: z.ZodPipe<z.ZodString, z.ZodTransform<SiteStyleId, string>>;
127
127
  templateId: z.ZodPipe<z.ZodString, z.ZodTransform<DesignSystemTemplateId, string>>;
@@ -84,8 +84,8 @@ export declare const generatedBlockDesignIntentSchema: z.ZodObject<{
84
84
  kind: z.ZodLiteral<"explicit">;
85
85
  value: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodEnum<{
86
86
  open: "open";
87
- default: "default";
88
87
  none: "none";
88
+ default: "default";
89
89
  alternative: "alternative";
90
90
  }>>;
91
91
  }, z.core.$strict>], "kind">;
@@ -109,8 +109,8 @@ export declare const generatedBlockDesignIntentSchema: z.ZodObject<{
109
109
  kind: z.ZodLiteral<"explicit">;
110
110
  value: z.ZodEnum<{
111
111
  medium: "medium";
112
- high: "high";
113
112
  low: "low";
113
+ high: "high";
114
114
  }>;
115
115
  }, z.core.$strict>], "kind">;
116
116
  }, z.core.$strict>;
@@ -235,8 +235,8 @@ export declare const generatedPageDesignIntentSchema: z.ZodObject<{
235
235
  kind: z.ZodLiteral<"explicit">;
236
236
  value: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodEnum<{
237
237
  open: "open";
238
- default: "default";
239
238
  none: "none";
239
+ default: "default";
240
240
  alternative: "alternative";
241
241
  }>>;
242
242
  }, z.core.$strict>], "kind">;
@@ -260,8 +260,8 @@ export declare const generatedPageDesignIntentSchema: z.ZodObject<{
260
260
  kind: z.ZodLiteral<"explicit">;
261
261
  value: z.ZodEnum<{
262
262
  medium: "medium";
263
- high: "high";
264
263
  low: "low";
264
+ high: "high";
265
265
  }>;
266
266
  }, z.core.$strict>], "kind">;
267
267
  }, z.core.$strict>;
@@ -42,16 +42,16 @@ export declare const logoContainsTextSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
42
42
  kind: z.ZodLiteral<"contains-text">;
43
43
  confidence: z.ZodEnum<{
44
44
  medium: "medium";
45
- high: "high";
46
45
  low: "low";
46
+ high: "high";
47
47
  }>;
48
48
  text: z.ZodOptional<z.ZodString>;
49
49
  }, z.core.$strip>, z.ZodObject<{
50
50
  kind: z.ZodLiteral<"no-text">;
51
51
  confidence: z.ZodEnum<{
52
52
  medium: "medium";
53
- high: "high";
54
53
  low: "low";
54
+ high: "high";
55
55
  }>;
56
56
  }, z.core.$strip>, z.ZodObject<{
57
57
  kind: z.ZodLiteral<"unknown">;
@@ -88,16 +88,16 @@ export declare const logoFactsSchema: z.ZodObject<{
88
88
  kind: z.ZodLiteral<"contains-text">;
89
89
  confidence: z.ZodEnum<{
90
90
  medium: "medium";
91
- high: "high";
92
91
  low: "low";
92
+ high: "high";
93
93
  }>;
94
94
  text: z.ZodOptional<z.ZodString>;
95
95
  }, z.core.$strip>, z.ZodObject<{
96
96
  kind: z.ZodLiteral<"no-text">;
97
97
  confidence: z.ZodEnum<{
98
98
  medium: "medium";
99
- high: "high";
100
99
  low: "low";
100
+ high: "high";
101
101
  }>;
102
102
  }, z.core.$strip>, z.ZodObject<{
103
103
  kind: z.ZodLiteral<"unknown">;
@@ -8,8 +8,8 @@ export declare const PALETTE_TOKEN_NAMES: readonly ["primary", "primaryForegroun
8
8
  export type PaletteTokenName = (typeof PALETTE_TOKEN_NAMES)[number];
9
9
  export declare const paletteTokenNameSchema: z.ZodEnum<{
10
10
  surface: "surface";
11
- success: "success";
12
11
  text: "text";
12
+ success: "success";
13
13
  warning: "warning";
14
14
  background: "background";
15
15
  accent: "accent";
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "success" | "default" | "warning" | "outline" | "secondary" | "destructive" | null | undefined;
4
+ variant?: "success" | "warning" | "default" | "outline" | "secondary" | "destructive" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "outline" | "secondary" | "destructive" | "ghost" | "onDark" | "onDarkOutline" | "heroGlass" | null | undefined;
4
+ variant?: "default" | "link" | "outline" | "secondary" | "destructive" | "ghost" | "onDark" | "onDarkOutline" | "heroGlass" | null | undefined;
5
5
  size?: "default" | "icon" | "sm" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const calloutVariants: (props?: ({
4
- tone?: "success" | "default" | "warning" | "info" | "danger" | null | undefined;
4
+ tone?: "success" | "warning" | "info" | "default" | "danger" | null | undefined;
5
5
  layout?: "inline" | "banner" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type CalloutProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof calloutVariants> & {
@@ -4,7 +4,7 @@ import { surfaceVariants } from './surface';
4
4
  export type CardVariant = VariantProps<typeof surfaceVariants>['variant'];
5
5
  export type CardRadius = VariantProps<typeof surfaceVariants>['radius'];
6
6
  declare const cardLayoutVariants: (props?: ({
7
- size?: "default" | "none" | "compact" | "responsive" | null | undefined;
7
+ size?: "none" | "default" | "compact" | "responsive" | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
9
  export type CardSize = VariantProps<typeof cardLayoutVariants>['size'];
10
10
  export type CardProps = React.ComponentProps<'div'> & {
@@ -1,8 +1,9 @@
1
1
  import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
2
- import { qt as formatCurrencyAmount } from "./propsDecoder-BxmqPKdP.mjs";
3
- import { a as CheckIcon } from "./scrollToBlock-B3CcKdtG.mjs";
2
+ import { Zt as formatCurrencyAmount } from "./propsDecoder-CeUMxI9a.mjs";
3
+ import { a as CheckIcon } from "./scrollToBlock-lPr1oqxB.mjs";
4
+ import { n as RichText } from "./checkoutUrls-DQYC_Br-.mjs";
4
5
  import "react";
5
- import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
  //#region ../blocks/src/system/runtime/shared/utils/formatting.ts
7
8
  /**
8
9
  * Shared Formatting Utilities
@@ -135,4 +136,25 @@ function StepIndicator({ currentStep, totalSteps, stepLabels, classPrefix, emitS
135
136
  });
136
137
  }
137
138
  //#endregion
138
- export { SpinnerNode as n, formatPrice as r, StepIndicator as t };
139
+ //#region ../blocks/src/system/runtime/shared/components/BookingConsentAgreement.tsx
140
+ function BookingConsentAgreement({ agreement, showTitle = true, title, titleId }) {
141
+ return /* @__PURE__ */ jsxs(Fragment, { children: [showTitle ? /* @__PURE__ */ jsxs("div", {
142
+ id: titleId,
143
+ className: "form-label",
144
+ children: [title, /* @__PURE__ */ jsx("span", {
145
+ className: "required-marker",
146
+ children: "*"
147
+ })]
148
+ }) : null, /* @__PURE__ */ jsx("div", {
149
+ role: "group",
150
+ "aria-label": showTitle ? void 0 : title,
151
+ "aria-labelledby": showTitle ? titleId : void 0,
152
+ children: /* @__PURE__ */ jsx(RichText, {
153
+ doc: agreement,
154
+ linkTarget: "new-tab",
155
+ className: "rb-prose rb-max-w-none"
156
+ })
157
+ })] });
158
+ }
159
+ //#endregion
160
+ export { formatPrice as i, StepIndicator as n, SpinnerNode as r, BookingConsentAgreement as t };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { et as themeButtonClassName } from "./propsDecoder-BxmqPKdP.mjs";
2
+ import { $ as themeButtonClassName } from "./propsDecoder-CeUMxI9a.mjs";
3
3
  import { useId } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/api/types/discounts.ts
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
3
- import { A as getEventRuntimeFiltersKey, B as formatTime, G as resolveEventLinkProps, H as getContainerClass, L as formatEventPrice, P as formatDate, St as assertNever, U as groupEventsByDate, V as getCardOrientation, et as themeButtonClassName, k as buildEventRuntimeFilters, q as getEventAvailability, z as formatEventTeacherLine } from "./propsDecoder-BxmqPKdP.mjs";
4
- import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-CUmhE24_.mjs";
5
- import { n as useBlockApi } from "./context-B83PiNzm.mjs";
3
+ import { $ as themeButtonClassName, A as buildEventRuntimeFilters, B as formatEventTeacherLine, Et as assertNever, F as formatDate, H as getCardOrientation, J as getEventAvailability, K as resolveEventLinkProps, R as formatEventPrice, U as getContainerClass, V as formatTime, W as groupEventsByDate, j as getEventRuntimeFiltersKey } from "./propsDecoder-CeUMxI9a.mjs";
4
+ import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-DRhWp2_5.mjs";
5
+ import { n as useBlockApi } from "./context-TSK1CGx8.mjs";
6
6
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
7
7
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
8
8
  import React, { createContext, useCallback, useContext, useEffect, useId, useMemo, useReducer, useRef, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { k as buildEventRuntimeFilters } from "./propsDecoder-BxmqPKdP.mjs";
3
- import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-CUmhE24_.mjs";
2
+ import { A as buildEventRuntimeFilters } from "./propsDecoder-CeUMxI9a.mjs";
3
+ import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-DRhWp2_5.mjs";
4
4
  import { useId, useMemo } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/events/EventListing.client.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Q as isRecord } from "./propsDecoder-BxmqPKdP.mjs";
2
+ import { Tt as isRecord } from "./propsDecoder-CeUMxI9a.mjs";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- import { At as formatBookingDate, Bt as parseEventPageSurfaceSubject, Jt as assertNever$1, Nt as formatBookingTime, Rt as toBookingTimeZone, St as assertNever, et as themeButtonClassName, zt as toScheduledBookingDateTime } from "./propsDecoder-BxmqPKdP.mjs";
3
- import { n as formatWholeSeriesPriceDisplay, r as resolveWholeSeriesPricingState, t as formatWholeSeriesPriceAmount } from "./pricing-CVdvbopJ.mjs";
4
- import { n as useBlockApi } from "./context-B83PiNzm.mjs";
2
+ import { $ as themeButtonClassName, Et as assertNever, Ht as toBookingTimeZone, Lt as formatBookingTime, Pt as formatBookingDate, Qt as assertNever$1, Ut as toScheduledBookingDateTime, Wt as parseEventPageSurfaceSubject } from "./propsDecoder-CeUMxI9a.mjs";
3
+ import { n as formatWholeSeriesPriceDisplay, r as resolveWholeSeriesPricingState, t as formatWholeSeriesPriceAmount } from "./pricing-Caa0QWzh.mjs";
4
+ import { n as useBlockApi } from "./context-TSK1CGx8.mjs";
5
5
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
6
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-B3CcKdtG.mjs";
7
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-DO7llLxm.mjs";
8
- import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-CGixP_LW.mjs";
6
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-lPr1oqxB.mjs";
7
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CfuPOHD0.mjs";
8
+ import { i as formatPrice, n as StepIndicator$1, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-BxgpGEFD.mjs";
9
9
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
10
10
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
11
- import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
11
+ import { t as buildCheckoutReturnUrls } from "./checkoutUrls-DQYC_Br-.mjs";
12
12
  import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
13
13
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
14
14
  import React, { Component, useCallback, useEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
@@ -1003,6 +1003,7 @@ function validateSubmission(state, setters) {
1003
1003
  message: "Choose an available set of dates to continue."
1004
1004
  };
1005
1005
  const errors = validateFormData(state.formData);
1006
+ if (state.selectedRun.consent && state.formData.consentAccepted !== true) errors.consentAccepted = "Please read and accept the agreement before continuing.";
1006
1007
  setters.setErrors(errors);
1007
1008
  if (Object.keys(errors).length > 0) return { kind: "validation-failed" };
1008
1009
  const pricingMessage = getMissingWholeSeriesPricingSelectionMessage(state.pricing);
@@ -1026,6 +1027,7 @@ function registrantPayload(state) {
1026
1027
  name: state.formData.name.trim(),
1027
1028
  phone: state.formData.phone.trim() || void 0,
1028
1029
  formData: { notes: state.formData.notes.trim() || void 0 },
1030
+ consentAccepted: state.formData.consentAccepted,
1029
1031
  altchaSolution: state.altchaSolution,
1030
1032
  claimToken: state.claimToken ?? void 0
1031
1033
  };
@@ -1149,7 +1151,8 @@ const EMPTY_FORM = {
1149
1151
  name: "",
1150
1152
  email: "",
1151
1153
  phone: "",
1152
- notes: ""
1154
+ notes: "",
1155
+ consentAccepted: false
1153
1156
  };
1154
1157
  function useWholeSeriesRegistrationPortal(api) {
1155
1158
  const [formData, setFormData] = useState(EMPTY_FORM);
@@ -1710,19 +1713,65 @@ function WholeSeriesSlidingScaleInput({ pricing, value, onChange }) {
1710
1713
  ]
1711
1714
  });
1712
1715
  }
1713
- function EnrollmentForm({ formData, errors, onChange, isEmailLocked, isLoading, onLogout }) {
1714
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(EnrollmentIdentityFields, {
1715
- formData,
1716
- errors,
1717
- onChange,
1718
- isEmailLocked,
1719
- isLoading,
1720
- onLogout
1721
- }), /* @__PURE__ */ jsx(EnrollmentOptionalFields, {
1722
- formData,
1723
- onChange,
1724
- isLoading
1725
- })] });
1716
+ function WholeSeriesConsentField({ consent, error, formData, isLoading, onChange }) {
1717
+ const errorId = "er-whole-series-consent-error";
1718
+ return /* @__PURE__ */ jsxs("div", {
1719
+ className: "er-whole-series-form__field",
1720
+ children: [
1721
+ /* @__PURE__ */ jsx(BookingConsentAgreement, {
1722
+ agreement: consent.agreement,
1723
+ title: consent.title,
1724
+ titleId: "er-whole-series-consent-title"
1725
+ }),
1726
+ /* @__PURE__ */ jsxs("label", {
1727
+ className: "er-whole-series-form__label rb-flex rb-items-start rb-gap-2 rb-cursor-pointer",
1728
+ children: [
1729
+ /* @__PURE__ */ jsx("input", {
1730
+ type: "checkbox",
1731
+ className: "form-checkbox rb-mt-0.5",
1732
+ checked: formData.consentAccepted === true,
1733
+ disabled: isLoading,
1734
+ "aria-describedby": error ? errorId : void 0,
1735
+ onChange: (event) => onChange({
1736
+ ...formData,
1737
+ consentAccepted: event.target.checked
1738
+ })
1739
+ }),
1740
+ consent.checkboxLabel,
1741
+ " *"
1742
+ ]
1743
+ }),
1744
+ error ? /* @__PURE__ */ jsx(FieldValidationMessage, {
1745
+ id: errorId,
1746
+ className: "er-whole-series-form__error",
1747
+ children: error
1748
+ }) : null
1749
+ ]
1750
+ });
1751
+ }
1752
+ function EnrollmentForm({ formData, errors, onChange, isEmailLocked, isLoading, onLogout, consent }) {
1753
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1754
+ /* @__PURE__ */ jsx(EnrollmentIdentityFields, {
1755
+ formData,
1756
+ errors,
1757
+ onChange,
1758
+ isEmailLocked,
1759
+ isLoading,
1760
+ onLogout
1761
+ }),
1762
+ /* @__PURE__ */ jsx(EnrollmentOptionalFields, {
1763
+ formData,
1764
+ onChange,
1765
+ isLoading
1766
+ }),
1767
+ consent ? /* @__PURE__ */ jsx(WholeSeriesConsentField, {
1768
+ consent,
1769
+ error: errors.consentAccepted,
1770
+ formData,
1771
+ isLoading,
1772
+ onChange
1773
+ }) : null
1774
+ ] });
1726
1775
  }
1727
1776
  function EnrollmentIdentityFields({ formData, errors, onChange, isEmailLocked, isLoading, onLogout }) {
1728
1777
  const nameErrorId = "er-whole-series-name-error";
@@ -1917,7 +1966,8 @@ function RegistrationDetailsForm({ wizard, display }) {
1917
1966
  onChange: wizard.updateFormData,
1918
1967
  isEmailLocked: wizard.portalAuthState === "authenticated" || wizard.waitlistClaim.claim !== null,
1919
1968
  isLoading: wizard.portalAuthState === "checking" || wizard.waitlistClaim.isLoading,
1920
- onLogout: wizard.handleLogout
1969
+ onLogout: wizard.handleLogout,
1970
+ consent: wizard.selectedRun?.consent ?? null
1921
1971
  }),
1922
1972
  /* @__PURE__ */ jsx(PricingFields, { wizard }),
1923
1973
  wizard.showSpamProtection ? /* @__PURE__ */ jsx("div", {
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-BxmqPKdP.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
2
2
  //#region src/rendering/islands/enhancers/accordion.ts
3
3
  const decode = defineIslandPropsDecoder("accordion");
4
4
  function parseDefaultValues(value) {