@riverbankcms/sdk 0.74.0 → 0.76.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 (145) hide show
  1. package/README.md +2 -0
  2. package/dist/{PreviewEditorSidebar-5XL7M3OM.mjs → PreviewEditorSidebar-X2HWXFOL.mjs} +172 -89
  3. package/dist/{PreviewEditorUI-ZDFRDJID.mjs → PreviewEditorUI-AQXIXPOH.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +8 -0
  5. package/dist/_dts/api/src/bookingOperations.d.ts +12 -0
  6. package/dist/_dts/api/src/cache-tags.d.ts +22 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  8. package/dist/_dts/api/src/endpoints.d.ts +24 -24
  9. package/dist/_dts/api/src/index.d.ts +1 -1
  10. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +13 -4
  11. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +4 -2
  12. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  13. package/dist/_dts/block-form/src/manifest/utils.d.ts +24 -0
  14. package/dist/_dts/blocks/src/client/booking-form.d.ts +2 -0
  15. package/dist/_dts/blocks/src/client/carousel.d.ts +1 -0
  16. package/dist/_dts/blocks/src/client/course-registration.d.ts +2 -0
  17. package/dist/_dts/blocks/src/client/events.d.ts +6 -0
  18. package/dist/_dts/blocks/src/client/form.d.ts +2 -0
  19. package/dist/_dts/blocks/src/client/header.d.ts +1 -0
  20. package/dist/_dts/blocks/src/client/location-map.d.ts +1 -0
  21. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +2 -0
  22. package/dist/_dts/blocks/src/client/shop.d.ts +6 -0
  23. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  24. package/dist/_dts/blocks/src/lib/video.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +21 -1
  26. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -6
  27. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -2
  29. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +3 -27
  30. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +163 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -5
  32. package/dist/_dts/blocks/src/system/runtime/nodes/events/index.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +29 -0
  36. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +13 -0
  37. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +4 -0
  38. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +4 -3
  39. package/dist/_dts/blocks/src/system/runtime/shared/utils/bookingRoute.d.ts +20 -0
  40. package/dist/_dts/blocks/src/system/runtime/shared/utils/index.d.ts +2 -1
  41. package/dist/_dts/blocks/src/system/types/link.d.ts +12 -0
  42. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +5 -0
  43. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -0
  44. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -1
  45. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +3 -1
  46. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +5 -1
  47. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  48. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +2 -0
  49. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  50. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +12 -2
  51. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +21 -3
  52. package/dist/_dts/sdk/src/components.d.ts +2 -2
  53. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  54. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  55. package/dist/_dts/sdk/src/rendering/islands/deferredVideoEmbeds.d.ts +2 -0
  56. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +6 -0
  57. package/dist/_dts/sdk/src/rendering/overrides.d.ts +21 -1
  58. package/dist/_dts/sdk/src/rendering/server.d.ts +4 -0
  59. package/dist/_dts/sdk/src/version.d.ts +1 -1
  60. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  61. package/dist/{chunk-2MIWNFJM.mjs → chunk-LYI7TEMH.mjs} +494 -171
  62. package/dist/{chunk-YY7K3QD2.mjs → chunk-Q4OLG66B.mjs} +9 -9
  63. package/dist/{chunk-CEQBBLMJ.mjs → chunk-TW2Y4RR5.mjs} +69 -14
  64. package/dist/{chunk-CBD47MTM.mjs → chunk-V5VORNEJ.mjs} +2 -2
  65. package/dist/{chunk-7RX72SK2.mjs → chunk-VX7B5VAC.mjs} +36 -25
  66. package/dist/{chunk-YRJKZEQ3.mjs → chunk-Z7JLNTJR.mjs} +1 -1
  67. package/dist/cli/index.mjs +3395 -3753
  68. package/dist/client/{accordion-ZZVXWV3N.mjs → accordion-2YHIBOZH.mjs} +1 -1
  69. package/dist/client/bookingForm-35IBDWAS.mjs +3012 -0
  70. package/dist/client/bookings.mjs +30 -21
  71. package/dist/client/{carousel-25WK2H7G.mjs → carousel-K6XG7NZQ.mjs} +3 -2
  72. package/dist/client/cart-HCFYUTTU.mjs +18 -0
  73. package/dist/client/checkout-J3U4XR7K.mjs +18 -0
  74. package/dist/client/chunk-3DCJ45Z2.mjs +36 -0
  75. package/dist/client/chunk-3PEDD5KJ.mjs +146 -0
  76. package/dist/client/{chunk-6VGXRE34.mjs → chunk-7UOSCYY4.mjs} +76 -29
  77. package/dist/client/chunk-BOIHIU7E.mjs +106 -0
  78. package/dist/client/chunk-F7LHOKEH.mjs +146 -0
  79. package/dist/client/chunk-FGUIVT2B.mjs +204 -0
  80. package/dist/client/chunk-I2MMZO53.mjs +6 -0
  81. package/dist/client/chunk-II7O4XN3.mjs +2206 -0
  82. package/dist/client/chunk-J227A3CQ.mjs +245 -0
  83. package/dist/client/chunk-JEZECJ3W.mjs +383 -0
  84. package/dist/client/chunk-M3L3KYYR.mjs +1181 -0
  85. package/dist/client/chunk-OJPZEZU2.mjs +31 -0
  86. package/dist/client/chunk-PFBX3IQL.mjs +1378 -0
  87. package/dist/client/chunk-RTZ3JKKX.mjs +178 -0
  88. package/dist/client/chunk-SNSWVZEP.mjs +5592 -0
  89. package/dist/client/chunk-TQ5MSPDX.mjs +74 -0
  90. package/dist/client/chunk-YLMKMCSJ.mjs +86 -0
  91. package/dist/client/client.mjs +54052 -54518
  92. package/dist/client/courseRegistration-ZBXS7VGI.mjs +1737 -0
  93. package/dist/client/{eventCalendar-X6GIPYFM.mjs → eventCalendar-EQQZHJBA.mjs} +13 -2
  94. package/dist/client/{eventCombined-EZUOPM3G.mjs → eventCombined-JCFTGBFQ.mjs} +13 -2
  95. package/dist/client/eventDetails-HLUTQSYY.mjs +25 -0
  96. package/dist/client/{eventListing-HEFGAETC.mjs → eventListing-FG4MICVB.mjs} +13 -2
  97. package/dist/client/{eventRegistration-3LCP2V3P.mjs → eventRegistration-GUEB7LBT.mjs} +13 -2
  98. package/dist/client/form-YQEW4YIT.mjs +300 -0
  99. package/dist/client/headerSection-GTR3TTRM.mjs +729 -0
  100. package/dist/client/hooks.mjs +49 -33
  101. package/dist/client/locationMap-SPC7VGUH.mjs +227 -0
  102. package/dist/client/newsletterForm-4IW5BLID.mjs +208 -0
  103. package/dist/client/productDetail-KP5H2WJO.mjs +18 -0
  104. package/dist/client/productList-3M3M72XZ.mjs +18 -0
  105. package/dist/client/rendering/client.mjs +15580 -16277
  106. package/dist/client/rendering/islands.mjs +98 -21
  107. package/dist/client/rendering.mjs +48730 -49191
  108. package/dist/client/shop-ACQKVGOM.mjs +20 -0
  109. package/dist/preview-next/before-render.mjs +37 -25
  110. package/dist/preview-next/chrome.css +1 -1
  111. package/dist/preview-next/client/runtime.mjs +5 -5
  112. package/dist/preview-next/editor-base.css +2 -148
  113. package/dist/preview-next/editor-chrome.css +179 -0
  114. package/dist/preview-next/middleware.mjs +37 -25
  115. package/dist/{sdk-runtime-OHNONZ5U.mjs → sdk-runtime-K7HNB4U2.mjs} +6 -6
  116. package/dist/server/components.mjs +1294 -1103
  117. package/dist/server/config-validation.mjs +49 -33
  118. package/dist/server/config.mjs +49 -33
  119. package/dist/server/data.mjs +49 -33
  120. package/dist/server/index.mjs +45 -33
  121. package/dist/server/next.mjs +1240 -1050
  122. package/dist/server/page-converter.mjs +12 -8
  123. package/dist/server/prebuild.mjs +1 -1
  124. package/dist/server/rendering/server.mjs +1389 -1104
  125. package/dist/server/rendering.mjs +1300 -1109
  126. package/dist/server/routing.mjs +49 -33
  127. package/dist/server/server.mjs +50 -34
  128. package/dist/server/theme-bridge.mjs +5 -0
  129. package/dist/styles/index.css +5 -0
  130. package/package.json +2 -1
  131. package/dist/SdkPreviewModeRuntime-CRYNDSPL.mjs +0 -8
  132. package/dist/client/bookingForm-4X77HKDS.mjs +0 -34
  133. package/dist/client/cart-JWD2VRFU.mjs +0 -11
  134. package/dist/client/checkout-V7KYGWL7.mjs +0 -11
  135. package/dist/client/chunk-5IYGMTUE.mjs +0 -18614
  136. package/dist/client/chunk-RKCFVIMS.mjs +0 -26
  137. package/dist/client/courseRegistration-O6ZPK4YT.mjs +0 -29
  138. package/dist/client/eventDetails-3WODIXET.mjs +0 -14
  139. package/dist/client/form-AKXQMY6Z.mjs +0 -85
  140. package/dist/client/headerSection-5KHCMU6B.mjs +0 -12
  141. package/dist/client/locationMap-7HIADW76.mjs +0 -14
  142. package/dist/client/newsletterForm-5N4YTMU3.mjs +0 -60
  143. package/dist/client/productDetail-IZUA7ZP3.mjs +0 -11
  144. package/dist/client/productList-KWIIJE6I.mjs +0 -11
  145. package/dist/client/shop-XZQFRQWZ.mjs +0 -13
@@ -1,30 +1,8 @@
1
- import { z } from "zod";
2
1
  import { type InteractiveIslandProps } from "../../../contracts/islands";
3
- import { type BookingFormService, type BookingFormConfig, type BookingFormServicesSource, type BookingFormSettings, type BookingFormSourceRecord } from "./booking-form.state";
2
+ import { type BookingFormService, type BookingFormConfig, type BookingFormServicesSource } from "./booking-form.state";
3
+ import { type BookingFormRebookContext, type BookingFormSourceProps } from "./booking-runtime-sources";
4
4
  export type { BookingFormConfig, BookingFormService };
5
- export type BookingFormRebookContext = Readonly<{
6
- kind: "portal_rebook";
7
- }>;
8
- export type BookingFormSourceProps = Readonly<{
9
- siteId?: string;
10
- apiBaseUrl?: string;
11
- portalToken?: string | null;
12
- formId?: string;
13
- serviceId?: string | null;
14
- resourceId?: string | null;
15
- initialData?: Readonly<Record<string, unknown>> | null;
16
- noticeMessage?: string | null;
17
- requiresServiceSelection?: boolean;
18
- requiresResourceSelection?: boolean;
19
- shouldAutoSelectSingleResource?: boolean;
20
- rebookContext?: BookingFormRebookContext | null;
21
- submitLabel?: string | null;
22
- successMessage?: string | null;
23
- form?: BookingFormSourceRecord | null;
24
- services?: BookingFormServicesSource | null;
25
- spamProtectionEnabled?: boolean;
26
- className?: string | null;
27
- }>;
5
+ export type { BookingFormRebookContext, BookingFormSourceProps };
28
6
  export type BookingFormDisplay = Readonly<{
29
7
  kind: "booking-form";
30
8
  state: "missing" | "ready";
@@ -47,8 +25,6 @@ export type BookingFormHydration = Readonly<{
47
25
  services: readonly BookingFormService[];
48
26
  spamProtectionEnabled?: boolean;
49
27
  }>;
50
- export declare const bookingSettingsSchema: z.ZodType<BookingFormSettings>;
51
- export declare const bookingSourceFormSchema: z.ZodType<BookingFormSourceRecord>;
52
28
  type BookingFormIslandMeta = Readonly<{
53
29
  siteId?: string;
54
30
  apiBaseUrl?: string;
@@ -0,0 +1,163 @@
1
+ import { z } from "zod";
2
+ import type { PublicEvent } from "../../blocks/events/shared/types";
3
+ import type { BookingFormField, BookingFormService, BookingFormServicesSource, BookingFormSettings, BookingFormSourceRecord } from "./booking-form.state";
4
+ import type { EventRegistrationContentEntry, EventRegistrationSourceProps } from "./event-registration.interactive";
5
+ export declare const APPOINTMENT_BOOKING_RUNTIME_FORM_ID = "booking-form";
6
+ export type BookingFormRebookContext = Readonly<{
7
+ kind: "portal_rebook";
8
+ }>;
9
+ export type BookingFormSourceProps = Readonly<{
10
+ siteId?: string;
11
+ apiBaseUrl?: string;
12
+ portalToken?: string | null;
13
+ formId?: string;
14
+ serviceId?: string | null;
15
+ resourceId?: string | null;
16
+ initialData?: Readonly<Record<string, unknown>> | null;
17
+ noticeMessage?: string | null;
18
+ requiresServiceSelection?: boolean;
19
+ requiresResourceSelection?: boolean;
20
+ shouldAutoSelectSingleResource?: boolean;
21
+ rebookContext?: BookingFormRebookContext | null;
22
+ submitLabel?: string | null;
23
+ successMessage?: string | null;
24
+ form?: BookingFormSourceRecord | null;
25
+ services?: BookingFormServicesSource | null;
26
+ spamProtectionEnabled?: boolean;
27
+ className?: string | null;
28
+ }>;
29
+ export declare const bookingFieldSchema: z.ZodType<BookingFormField>;
30
+ export declare const bookingSettingsSchema: z.ZodType<BookingFormSettings>;
31
+ export declare const bookingSourceFormSchema: z.ZodType<BookingFormSourceRecord>;
32
+ export type AppointmentBookingRuntimeTarget = Readonly<{
33
+ kind: "appointment-form";
34
+ formId: string;
35
+ requestedServiceId: string | null;
36
+ requestedResourceId: string | null;
37
+ rebookContext: BookingFormRebookContext | null;
38
+ }>;
39
+ export type EventRegistrationRuntimeTarget = Readonly<{
40
+ kind: "event-occurrence";
41
+ occurrenceId: string;
42
+ seriesId: string | null;
43
+ }> | Readonly<{
44
+ kind: "event-series";
45
+ seriesId: string;
46
+ }>;
47
+ export type BookingRuntimeTarget = AppointmentBookingRuntimeTarget | EventRegistrationRuntimeTarget;
48
+ export type BookingRuntimeSourceLoadError = Readonly<{
49
+ kind: "appointments-disabled";
50
+ target: AppointmentBookingRuntimeTarget;
51
+ }> | Readonly<{
52
+ kind: "source-not-found";
53
+ target: BookingRuntimeTarget;
54
+ source: "form" | "service" | "resource" | "event" | "occurrence";
55
+ }> | Readonly<{
56
+ kind: "source-unavailable";
57
+ target: BookingRuntimeTarget;
58
+ reason: "appointments-disabled" | "missing-form" | "missing-services" | "stale-service" | "stale-resource" | "event-unavailable" | "occurrence-unavailable";
59
+ }> | Readonly<{
60
+ kind: "invalid-source-data";
61
+ target: BookingRuntimeTarget;
62
+ issues: readonly string[];
63
+ }> | Readonly<{
64
+ kind: "unsupported-target";
65
+ target: BookingRuntimeTarget;
66
+ }>;
67
+ export type BookingRuntimeSourceLoader<TLoaded> = Readonly<{
68
+ load: (target: BookingRuntimeTarget) => Promise<Readonly<{
69
+ ok: true;
70
+ value: TLoaded;
71
+ }> | Readonly<{
72
+ ok: false;
73
+ error: BookingRuntimeSourceLoadError;
74
+ }>>;
75
+ }>;
76
+ export type AppointmentBookingFormSourceInput = Readonly<{
77
+ id: string;
78
+ name: string;
79
+ schemaJson: unknown;
80
+ settingsJson: unknown;
81
+ }>;
82
+ export type AppointmentBookingFormSourceValidation = Readonly<{
83
+ ok: true;
84
+ value: BookingFormSourceRecord;
85
+ }> | Readonly<{
86
+ ok: false;
87
+ issues: readonly string[];
88
+ }>;
89
+ export type AppointmentBookingServiceSourceInput = Readonly<{
90
+ id: string;
91
+ title: string;
92
+ description?: string | null;
93
+ durationMinutes?: number;
94
+ priceAmount?: number | null;
95
+ priceCurrency?: string | null;
96
+ paymentTerms?: BookingFormService["paymentTerms"];
97
+ paymentTermsAvailability?: BookingFormService["paymentTermsAvailability"];
98
+ }>;
99
+ export type AppointmentBookingSourceProps = BookingFormSourceProps & Readonly<{
100
+ siteId: string;
101
+ formId: string;
102
+ form: BookingFormSourceRecord;
103
+ services: BookingFormService[];
104
+ serviceId: string | null;
105
+ resourceId: string | null;
106
+ initialData: Readonly<Record<string, unknown>> | null;
107
+ noticeMessage: string | null;
108
+ requiresServiceSelection: boolean;
109
+ requiresResourceSelection: boolean;
110
+ shouldAutoSelectSingleResource: boolean;
111
+ rebookContext: BookingFormRebookContext | null;
112
+ }>;
113
+ export declare function buildAppointmentBookingRuntimeTarget(input: Readonly<{
114
+ formId?: string | null;
115
+ requestedServiceId?: string | null;
116
+ requestedResourceId?: string | null;
117
+ rebookContext?: BookingFormRebookContext | null;
118
+ }>): AppointmentBookingRuntimeTarget;
119
+ export declare function normalizeAppointmentBookingFormSource(input: Readonly<{
120
+ siteId: string;
121
+ form: AppointmentBookingFormSourceInput;
122
+ }>): BookingFormSourceRecord;
123
+ export declare function validateAppointmentBookingFormSource(input: Readonly<{
124
+ siteId: string;
125
+ form: AppointmentBookingFormSourceInput;
126
+ }>): AppointmentBookingFormSourceValidation;
127
+ export declare function normalizeAppointmentBookingServices(input: Readonly<{
128
+ siteId: string;
129
+ services: readonly AppointmentBookingServiceSourceInput[];
130
+ }>): BookingFormService[];
131
+ export declare function buildAppointmentBookingSourceProps(input: Readonly<{
132
+ siteId: string;
133
+ apiBaseUrl?: string;
134
+ portalToken?: string | null;
135
+ form: AppointmentBookingFormSourceInput;
136
+ services: readonly AppointmentBookingServiceSourceInput[];
137
+ serviceId: string | null;
138
+ resourceId: string | null;
139
+ initialData: Readonly<Record<string, unknown>> | null;
140
+ noticeMessage: string | null;
141
+ requiresServiceSelection: boolean;
142
+ requiresResourceSelection: boolean;
143
+ shouldAutoSelectSingleResource: boolean;
144
+ rebookContext: BookingFormRebookContext | null;
145
+ }>): AppointmentBookingSourceProps;
146
+ export declare function buildEventRegistrationRuntimeTarget(input: Readonly<{
147
+ kind: "event-occurrence";
148
+ occurrenceId: string;
149
+ seriesId?: string | null;
150
+ }> | Readonly<{
151
+ kind: "event-series";
152
+ seriesId: string;
153
+ }>): EventRegistrationRuntimeTarget;
154
+ export declare function buildEventRegistrationSourceProps(input: Readonly<{
155
+ siteId: string;
156
+ apiBaseUrl?: string;
157
+ portalToken?: string | null;
158
+ occurrenceContext?: EventRegistrationSourceProps["occurrenceContext"];
159
+ contentEntry?: EventRegistrationContentEntry | null;
160
+ events?: readonly PublicEvent[] | null;
161
+ stage?: EventRegistrationSourceProps["stage"];
162
+ supportEmail?: string;
163
+ }> & Omit<EventRegistrationSourceProps, "siteId" | "apiBaseUrl" | "portalToken" | "occurrenceContext" | "contentEntry" | "events" | "stage" | "supportEmail">): EventRegistrationSourceProps;
@@ -72,7 +72,7 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
72
72
  className: string | null;
73
73
  summaryButtonText: string;
74
74
  }>;
75
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
75
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
76
76
  }>;
77
77
  contracts: Readonly<{
78
78
  source: Readonly<{
@@ -131,7 +131,7 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
131
131
  className: string | null;
132
132
  summaryButtonText: string;
133
133
  }>;
134
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
134
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
135
135
  }>) => unknown;
136
136
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
137
137
  display: Readonly<{
@@ -140,7 +140,7 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
140
140
  className: string | null;
141
141
  summaryButtonText: string;
142
142
  }>;
143
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
143
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
144
144
  }>>;
145
145
  }>;
146
146
  }>;
@@ -162,7 +162,7 @@ export declare const eventRegistrationInteractiveIslandPropsCodec: Readonly<{
162
162
  className: string | null;
163
163
  summaryButtonText: string;
164
164
  }>;
165
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
165
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
166
166
  }>>;
167
167
  }>) => unknown;
168
168
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
@@ -181,7 +181,7 @@ export declare const eventRegistrationInteractiveIslandPropsCodec: Readonly<{
181
181
  className: string | null;
182
182
  summaryButtonText: string;
183
183
  }>;
184
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
184
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
185
185
  }>>;
186
186
  }>>;
187
187
  }>;
@@ -7,5 +7,8 @@ export { EventListingSSR } from './EventListing.server';
7
7
  export { EventCalendarSSR } from './EventCalendar.server';
8
8
  export { EventCombinedSSR } from './EventCombined.server';
9
9
  export { EventListingClient } from './EventListing.client';
10
+ export type { EventListingClientProps } from './EventListing.client';
10
11
  export { EventCalendarClient } from './EventCalendar.client';
12
+ export type { EventCalendarClientProps } from './EventCalendar.client';
11
13
  export { EventCombinedClient, EventCombinedIslandClient } from './EventCombined.client';
14
+ export type { EventCombinedClientProps, EventCombinedIslandClientProps, } from './EventCombined.client';
@@ -6,6 +6,7 @@ type HeaderSectionNodeProps = React.PropsWithChildren<{
6
6
  blockContent?: unknown;
7
7
  fragmentRegistry?: unknown;
8
8
  pathBase?: string;
9
+ "data-preview-site-chrome-surface"?: string;
9
10
  [key: string]: unknown;
10
11
  }>;
11
12
  /**
@@ -2,6 +2,7 @@ import React from "react";
2
2
  type HeaderSectionNodeProps = React.PropsWithChildren<{
3
3
  blockId?: string | null;
4
4
  className?: string;
5
+ "data-preview-site-chrome-surface"?: string;
5
6
  [key: string]: unknown;
6
7
  }>;
7
8
  /**
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { type ThemeButtonVariantId } from '../../../../../../theme-core/src/buttons/index';
3
+ export type BookingOptionMetaItem = Readonly<{
4
+ id?: string;
5
+ label: string;
6
+ icon?: React.ReactNode;
7
+ className?: string;
8
+ }>;
9
+ export type BookingOptionCompactRowAction = Readonly<{
10
+ kind: 'action';
11
+ label: string;
12
+ href: string;
13
+ }> | Readonly<{
14
+ kind: 'status';
15
+ label: string;
16
+ }>;
17
+ export type BookingOptionCompactRowViewModel = Readonly<{
18
+ id: string;
19
+ title: string;
20
+ primaryMeta?: readonly string[];
21
+ secondaryMeta?: readonly BookingOptionMetaItem[];
22
+ priceLabel?: string | null;
23
+ action: BookingOptionCompactRowAction;
24
+ }>;
25
+ export type BookingOptionCompactRowProps = Readonly<{
26
+ option: BookingOptionCompactRowViewModel;
27
+ buttonVariant?: ThemeButtonVariantId;
28
+ }>;
29
+ export declare function BookingOptionCompactRow({ option, buttonVariant, }: BookingOptionCompactRowProps): React.ReactElement;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ThemeButtonVariantId } from '../../../../../../theme-core/src/buttons/index';
3
+ import { type BookingOptionCompactRowViewModel } from './BookingOptionCompactRow';
4
+ export type BookingOptionGroupViewModel = Readonly<{
5
+ id: string;
6
+ title: string;
7
+ options: readonly BookingOptionCompactRowViewModel[];
8
+ }>;
9
+ export type BookingOptionListProps = Readonly<{
10
+ groups: readonly BookingOptionGroupViewModel[];
11
+ buttonVariant?: ThemeButtonVariantId;
12
+ }>;
13
+ export declare function BookingOptionList({ groups, buttonVariant, }: BookingOptionListProps): React.ReactElement;
@@ -6,6 +6,10 @@ export { ClockIcon } from './ClockIcon';
6
6
  export { CrossIcon } from './CrossIcon';
7
7
  export { ActionRow } from './ActionRow';
8
8
  export type { ActionRowProps } from './ActionRow';
9
+ export { BookingOptionCompactRow } from './BookingOptionCompactRow';
10
+ export type { BookingOptionCompactRowAction, BookingOptionCompactRowProps, BookingOptionCompactRowViewModel, BookingOptionMetaItem, } from './BookingOptionCompactRow';
11
+ export { BookingOptionList } from './BookingOptionList';
12
+ export type { BookingOptionGroupViewModel, BookingOptionListProps, } from './BookingOptionList';
9
13
  export { FieldValidationMessage, getFieldValidationControlProps, } from './FieldValidationMessage';
10
14
  export type { FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, } from './FieldValidationMessage';
11
15
  export { FeedbackMessage } from './FeedbackMessage';
@@ -5,7 +5,8 @@
5
5
  */
6
6
  export type { FormData, ButtonVariant } from './types';
7
7
  export { DEFAULT_CURRENCY } from './types';
8
- export { buildCheckoutReturnUrls, resolveDedicatedBookingPath, formatPrice, scrollToBlock, consumeSearchParam, consumeSearchParams, validateFormData, getStepNumber, } from './utils';
8
+ export { BOOK_TARGET_PARAMS, buildCheckoutReturnUrls, resolveDedicatedBookingHref, resolveDedicatedBookingPath, resolveDedicatedBookingTarget, formatPrice, scrollToBlock, consumeSearchParam, consumeSearchParams, validateFormData, getStepNumber, } from './utils';
9
+ export type { DedicatedBookingTarget, UniversalBookingRouteTarget, } from './utils';
9
10
  export { createBodyThemePortalRoot } from './utils';
10
- export { ActionRow, CheckIcon, ClockIcon, CrossIcon, FieldValidationMessage, FeedbackMessage, getFieldValidationControlProps, MembershipHero, ModalShell, StateIcon, StepIndicator, TerminalPanel, } from './components';
11
- export type { ActionRowProps, FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, FeedbackLiveMode, FeedbackMessageProps, FeedbackTone, ModalShellProps, StepIndicatorBaseProps, StepIndicatorProps, TerminalPanelProps, TerminalPanelTitleElement, } from './components';
11
+ export { ActionRow, BookingOptionCompactRow, BookingOptionList, CheckIcon, ClockIcon, CrossIcon, FieldValidationMessage, FeedbackMessage, getFieldValidationControlProps, MembershipHero, ModalShell, StateIcon, StepIndicator, TerminalPanel, } from './components';
12
+ export type { ActionRowProps, BookingOptionCompactRowAction, BookingOptionCompactRowProps, BookingOptionCompactRowViewModel, BookingOptionGroupViewModel, BookingOptionListProps, BookingOptionMetaItem, FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, FeedbackLiveMode, FeedbackMessageProps, FeedbackTone, ModalShellProps, StepIndicatorBaseProps, StepIndicatorProps, TerminalPanelProps, TerminalPanelTitleElement, } from './components';
@@ -11,5 +11,25 @@ export type DedicatedBookingTarget = Readonly<{
11
11
  hostKey: string;
12
12
  siteIdentifier: string;
13
13
  }>;
14
+ export type UniversalBookingRouteTarget = Readonly<{
15
+ kind: 'chooser';
16
+ }> | Readonly<{
17
+ kind: 'appointment_service';
18
+ serviceId: string;
19
+ resourceId?: string | null;
20
+ }> | Readonly<{
21
+ kind: 'event_occurrence';
22
+ occurrenceId: string;
23
+ }> | Readonly<{
24
+ kind: 'event_series';
25
+ eventId: string;
26
+ }>;
27
+ export declare const BOOK_TARGET_PARAMS: {
28
+ readonly service: "service";
29
+ readonly resource: "resource";
30
+ readonly occurrence: "occurrence";
31
+ readonly event: "event";
32
+ };
14
33
  export declare function resolveDedicatedBookingTarget(pathname: string): DedicatedBookingTarget;
15
34
  export declare function resolveDedicatedBookingPath(pathname: string): string;
35
+ export declare function resolveDedicatedBookingHref(pathname: string, bookingTarget?: UniversalBookingRouteTarget): string;
@@ -2,7 +2,8 @@
2
2
  * Shared Utilities Barrel Export
3
3
  */
4
4
  export { buildCheckoutReturnUrls } from './checkoutUrls';
5
- export { resolveDedicatedBookingPath } from './bookingRoute';
5
+ export { BOOK_TARGET_PARAMS, resolveDedicatedBookingHref, resolveDedicatedBookingPath, resolveDedicatedBookingTarget, } from './bookingRoute';
6
+ export type { DedicatedBookingTarget, UniversalBookingRouteTarget, } from './bookingRoute';
6
7
  export { resolveDedicatedCheckoutPath } from './checkoutRoute';
7
8
  export { formatPrice } from './formatting';
8
9
  export { logoutPortal } from './portalLogout';
@@ -48,6 +48,17 @@ export type AuthoredLinkValue = InternalLinkValue | ExternalLinkValue | CustomLi
48
48
  * navigation-persistence converter accepts them.
49
49
  */
50
50
  export type LinkValue = AuthoredLinkValue;
51
+ export type LinkReferenceVisitorContext = Readonly<{
52
+ routeIds: Readonly<{
53
+ add: (routeId: string) => void;
54
+ }>;
55
+ pageIdentifiers: Readonly<{
56
+ add: (identifier: string) => void;
57
+ }>;
58
+ entryIdentifiers: Readonly<{
59
+ add: (contentType: string, identifier: string) => void;
60
+ }>;
61
+ }>;
51
62
  export declare const internalRouteOnlyLinkSchema: z.ZodObject<{
52
63
  kind: z.ZodLiteral<"internal">;
53
64
  routeId: z.ZodString;
@@ -133,4 +144,5 @@ export declare const linkSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.Zod
133
144
  contentType: z.ZodString;
134
145
  identifier: z.ZodString;
135
146
  }, z.core.$loose>]>;
147
+ export declare function visitLinkValueReferences(value: unknown, visitor: LinkReferenceVisitorContext): void;
136
148
  export declare function isInternalResolvedLinkValue(value: LinkValue | null | undefined): value is InternalResolvedLinkValue;
@@ -5,6 +5,7 @@
5
5
  * This catches empty required fields and other validation errors that were allowed
6
6
  * during editing (draft mode) but must be fixed before publishing.
7
7
  */
8
+ import type { FieldValidationDescriptor } from '../../../blocks/src/index';
8
9
  import type { EditorBlockId } from '../../../core/src/index';
9
10
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';
10
11
  /**
@@ -17,6 +18,10 @@ export type BlockValidationError = {
17
18
  blockKind: string;
18
19
  /** The path to the invalid field (e.g., "title", "items.0.label") */
19
20
  fieldPath: string;
21
+ /** Manifest-derived metadata for the invalid field, when the path resolves to one */
22
+ fieldDescriptor: FieldValidationDescriptor | null;
23
+ /** Whether the field can be directly focused in the editor sidebar */
24
+ isFieldVisibleInSidebar: boolean;
20
25
  /** Human-readable label for the field */
21
26
  fieldLabel: string;
22
27
  /** The validation error message */
@@ -5,6 +5,7 @@ import { type Theme } from '../../blocks/src/index';
5
5
  import type { PageDesignEditorReadModel } from '../../theme-core/src/site-styles/index';
6
6
  import { type EditorStructuralCommand } from '../../core/src/index';
7
7
  import { type SdkConfigForBlockPicker } from './block-editor/sdkBlockMerger';
8
+ import { type BlockActionControlMode } from './block-editor/actionControlMode';
8
9
  import { type ReorderControlMode } from './block-editor/reorderControlMode';
9
10
  import type { ArrayKeysManager, BlockEditorHandle, BlockItem, BlockFocusRequest, UiSlice, DraftsSlice } from './block-editor/types';
10
11
  import type { BlockDraftSaveability, FieldWidgetComponent } from '../../block-form/src/client/index';
@@ -52,6 +53,7 @@ export type BlockEditorProps = {
52
53
  enabledContentTypes?: string[];
53
54
  sdkConfig?: SdkConfigForBlockPicker | null;
54
55
  reorderControlMode?: ReorderControlMode;
56
+ actionControlMode?: BlockActionControlMode;
55
57
  };
56
58
  export declare const BlockEditor: import("react").ForwardRefExoticComponent<BlockEditorProps & import("react").RefAttributes<BlockEditorHandle>>;
57
59
  export {};
@@ -5,6 +5,7 @@ import type { SystemBlockDefinition } from '../../../blocks/src/index';
5
5
  import type { BlockDraftSaveability } from '../../../block-form/src/client/index';
6
6
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
7
7
  import type { Theme } from '../../../blocks/src/index';
8
+ import { type BlockActionControlMode } from './actionControlMode';
8
9
  import { type ReorderControlMode } from './reorderControlMode';
9
10
  import type { ArrayKeysManager, BlockFocusRequest, BlockItem, UiStore, DraftsSlice, UiSlice } from './types';
10
11
  /** Drag listener props from dnd-kit */
@@ -19,7 +20,7 @@ type BlockCardStore = UiStore<Pick<UiSlice, 'activeBlockId' | 'setActiveBlockId'
19
20
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'getAtPath' | 'setAtPath' | 'edit' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError'>;
20
21
  arrayKeys: ArrayKeysManager;
21
22
  }>;
22
- export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, }: {
23
+ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, actionControlMode, }: {
23
24
  siteId: string;
24
25
  block: BlockItem;
25
26
  manifest: SystemBlockDefinition['manifest'];
@@ -44,5 +45,6 @@ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, is
44
45
  hideThemeV2RawStyleFields?: boolean;
45
46
  pageDesignBlock?: PageDesignEditorBlock | null;
46
47
  reorderControlMode?: ReorderControlMode;
48
+ actionControlMode?: BlockActionControlMode;
47
49
  }): import("react/jsx-runtime").JSX.Element;
48
50
  export {};
@@ -1,6 +1,7 @@
1
1
  import type { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
2
2
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
3
3
  import { type SystemBlockDefinition, type Theme } from '../../../blocks/src/index';
4
+ import { type BlockActionControlMode } from './actionControlMode';
4
5
  import type { ReorderControlMode } from './reorderControlMode';
5
6
  import type { BlockItem, UiStore, DraftsSlice, ArrayKeysManager } from './types';
6
7
  /** Drag listener props from dnd-kit */
@@ -9,7 +10,7 @@ type BlockCardHeaderStore = UiStore<{
9
10
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError' | 'setAtPath' | 'getAtPath'>;
10
11
  arrayKeys: ArrayKeysManager;
11
12
  }>;
12
- export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, }: {
13
+ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionControlMode, }: {
13
14
  block: BlockItem;
14
15
  manifest: SystemBlockDefinition['manifest'];
15
16
  isFirst: boolean;
@@ -29,5 +30,6 @@ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMo
29
30
  theme?: Theme | null;
30
31
  hideThemeV2RawStyleFields?: boolean;
31
32
  reorderControlMode?: ReorderControlMode;
33
+ actionControlMode?: BlockActionControlMode;
32
34
  }): import("react/jsx-runtime").JSX.Element;
33
35
  export {};
@@ -6,12 +6,16 @@ type BlockSettingsModalStore = UiStore<{
6
6
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'clearError' | 'setAtPath' | 'getAtPath'>;
7
7
  arrayKeys: ArrayKeysManager;
8
8
  }>;
9
- export declare function BlockSettingsModal({ block, manifest, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, }: {
9
+ export declare function BlockSettingsModal({ block, manifest, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, showSettingsTrigger, open: controlledOpen, onOpenChange, onAvailabilityChange, }: {
10
10
  block: BlockItem;
11
11
  manifest: SystemBlockDefinition['manifest'];
12
12
  uiStore: BlockSettingsModalStore;
13
13
  widgetOverrides?: Record<string, FieldWidgetComponent>;
14
14
  theme?: Theme | null;
15
15
  hideThemeV2RawStyleFields?: boolean;
16
+ showSettingsTrigger?: boolean;
17
+ open?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ onAvailabilityChange?: (available: boolean) => void;
16
20
  }): ReactNode;
17
21
  export {};
@@ -5,6 +5,7 @@ import type { BlockFocusRequest, BlockItem } from './types';
5
5
  import { type SdkConfigForBlockPicker } from './sdkBlockMerger';
6
6
  import { BlockCard } from './BlockCard';
7
7
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
8
+ import { type BlockActionControlMode } from './actionControlMode';
8
9
  import { type ReorderControlMode } from './reorderControlMode';
9
10
  export declare const SortableBlockItem: import("react").NamedExoticComponent<{
10
11
  siteId: string;
@@ -30,4 +31,5 @@ export declare const SortableBlockItem: import("react").NamedExoticComponent<{
30
31
  hideThemeV2RawStyleFields?: boolean;
31
32
  pageDesignBlock?: PageDesignEditorBlock | null;
32
33
  reorderControlMode?: ReorderControlMode;
34
+ actionControlMode?: BlockActionControlMode;
33
35
  }>;
@@ -0,0 +1,2 @@
1
+ export type BlockActionControlMode = 'inline' | 'menu';
2
+ export declare const DEFAULT_BLOCK_ACTION_CONTROL_MODE: BlockActionControlMode;
@@ -13,7 +13,7 @@ export { FormProvider } from './FormProvider';
13
13
  export type { FormProviderProps } from './FormProvider';
14
14
  export { buildBlockContentPayload, formatManifestIssues } from './blockPayload';
15
15
  export type { BlockContentPayloadResult, ManifestFieldIssue, BuildBlockContentPayloadOptions } from './blockPayload';
16
- export { deriveBlockDraftSaveability, formatUnfinishedBlocksSummary, normalizeManifestIssueMessage, shouldShowBlockFieldValidation, unfinishedBlockCopy, validateBlockManifestValues, } from '../../block-form/src/client/index';
16
+ export { deriveBlockDraftSaveability, formatUnfinishedBlocksSummary, shouldShowBlockFieldValidation, unfinishedBlockCopy, validateBlockManifestValues, } from '../../block-form/src/client/index';
17
17
  export type { BlockDraftSaveability, BlockDraftValidationIssue } from '../../block-form/src/client/index';
18
18
  export { applyManifestIssuesToForm } from './manifestIssues';
19
19
  export { BlockPickerDialog } from './block-editor/BlockPickerDialog';
@@ -1,6 +1,16 @@
1
1
  import { default as React, type ReactNode } from 'react';
2
2
  export type SiteChromeEditableSurfaceKind = 'header' | 'footer';
3
- export declare function SiteChromeEditableSurface({ surface, children, }: {
3
+ type SiteChromeEditableSurfaceProps = Readonly<{
4
4
  surface: SiteChromeEditableSurfaceKind;
5
5
  children: ReactNode;
6
- }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
6
+ /**
7
+ * Decorate a single custom React component root instead of wrapping it.
8
+ *
9
+ * Only use this when the component is known to forward className,
10
+ * data attributes, and children to its actual chrome root; otherwise the
11
+ * customize button and preview metadata can be swallowed by the component.
12
+ */
13
+ preserveSingleComponentRoot?: boolean;
14
+ }>;
15
+ export declare function SiteChromeEditableSurface({ surface, children, preserveSingleComponentRoot, }: SiteChromeEditableSurfaceProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
16
+ export {};
@@ -2,14 +2,32 @@ import { type ReactNode } from 'react';
2
2
  import type { Theme } from '../../../../blocks/src/index';
3
3
  import { type Rfc6902Op } from '../utils/rfc6902';
4
4
  type ThemePatchOp = Rfc6902Op;
5
+ export type PreviewThemeOverlaySource = 'ai-designer' | 'site-chrome' | 'style-configurator' | 'unknown';
6
+ type PreviewThemeOverlaySourceOptions = Readonly<{
7
+ source?: PreviewThemeOverlaySource;
8
+ }>;
9
+ export type PreviewThemeOverlay = Readonly<{
10
+ kind: 'none';
11
+ }> | Readonly<{
12
+ kind: 'patch';
13
+ source: PreviewThemeOverlaySource;
14
+ ops: readonly ThemePatchOp[];
15
+ }> | Readonly<{
16
+ kind: 'theme';
17
+ source: PreviewThemeOverlaySource;
18
+ theme: Theme;
19
+ }>;
5
20
  type PreviewThemeOverlayContextValue = {
6
21
  baseTheme: Theme;
22
+ overlay: PreviewThemeOverlay;
7
23
  overlayOps: ThemePatchOp[] | null;
8
- setOverlayOps: (ops: ThemePatchOp[] | null) => void;
24
+ overlayOpsSource: PreviewThemeOverlaySource | null;
25
+ setOverlayOps: (ops: ThemePatchOp[] | null, options?: PreviewThemeOverlaySourceOptions) => void;
9
26
  overrideTheme: Theme | null;
10
- setOverrideTheme: (theme: Theme | null) => void;
27
+ overrideThemeSource: PreviewThemeOverlaySource | null;
28
+ setOverrideTheme: (theme: Theme | null, options?: PreviewThemeOverlaySourceOptions) => void;
11
29
  effectiveTheme: Theme;
12
- clearOverlay: () => void;
30
+ clearOverlay: (options?: PreviewThemeOverlaySourceOptions) => void;
13
31
  };
14
32
  export declare function PreviewThemeOverlayProvider({ baseTheme, children }: {
15
33
  baseTheme: Theme;
@@ -27,5 +27,5 @@ export { Layout } from './rendering/components/Layout';
27
27
  export type { LayoutProps, HeaderData, FooterData } from './rendering/components/Layout';
28
28
  export { PageRenderer, ThemeScope, buildThemeRuntime, RichText, resolveImageUrl, resolveImageUrlWithContext, resolveImageSourceSetWithContext, ImagePresets, } from './rendering';
29
29
  export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, CollectionContent, ColumnsContent, CourseDetailsContent, CourseRegistrationContent, CtaFullContent, EmbedContent, EventCalendarContent, EventDetailsContent, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FormBlockContent, GiftingContent, HeroContent, HeroMedia, ImageGalleryContent, MediaTextContent, NewsletterSignupContent, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, SystemBlockContentByKind, SystemBlockContentFor, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, VideoGridContent, ImageOptions, ResolveImageUrlContext, ResolveImageSourceSetOptions, ResolvedImageSourceSet, PageOutline, RouteMap, Theme, ThemeTokens, Media, TipTapNode, LinkValue, RichTextPrimitiveProps, } from './rendering';
30
- export type { BlockOverrideProps, BlockOverrideRegistration, BlockOverrideRegistrations, BlockOverrides, BlockOverrideComponent, KnownSystemBlockOverrides, LazyBlockOverrideFactory, LazyBlockOverrideRegistration, } from './rendering';
31
- export { defineLazyBlockOverride } from './rendering';
30
+ export type { BlockOverrideProps, BlockOverrideRegistration, BlockOverrideRegistrations, BlockOverrides, BlockOverrideComponent, CustomBlockOverrideKey, KnownSystemBlockOverrides, KnownBlockOverrideKey, LazyBlockOverrideFactory, LazyBlockOverrideRegistration, StrictBlockOverrideRegistrations, StrictBlockOverrides, SystemBlockOverrideKey, } from './rendering';
31
+ export { defineBlockOverrideRegistrations, defineBlockOverrides, defineLazyBlockOverride, } from './rendering';
@@ -456,6 +456,7 @@ export type EntriesResponse<TContent = Record<string, unknown>> = {
456
456
  entries: ContentEntryListItem<TContent>[];
457
457
  meta?: ListPublishedEntriesMeta;
458
458
  contentType?: PublicContentTypeMeta | null;
459
+ mediaAssets?: SdkRuntimeMediaAsset[];
459
460
  };
460
461
  export interface FormRecord {
461
462
  id: string;