@riverbankcms/sdk 0.143.0 → 0.144.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 (161) hide show
  1. package/dist/{PreviewEditorSidebar-DROGfMKi.mjs → PreviewEditorSidebar-CQZNnFiM.mjs} +19 -25
  2. package/dist/{PreviewEditorUI-BaRjhFu-.mjs → PreviewEditorUI-DCNxnmI0.mjs} +2 -2
  3. package/dist/{SdkPreviewModeRuntime-OIABYLES.mjs → SdkPreviewModeRuntime-BJolUbr1.mjs} +15 -6
  4. package/dist/{SiteChromeCustomizeContext-ohjTvZbc.mjs → SiteChromeCustomizeContext-CKgEpoxi.mjs} +1915 -1463
  5. package/dist/_dts/api/src/billing.d.ts +1 -1
  6. package/dist/_dts/api/src/billingEndpointTypes.d.ts +8 -2
  7. package/dist/_dts/api/src/bookingConfig.d.ts +3 -1
  8. package/dist/_dts/api/src/index.d.ts +1 -1
  9. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -4
  10. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +1 -0
  11. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  12. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +8 -0
  13. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -8
  14. package/dist/_dts/api/src/siteSettings.d.ts +17 -7
  15. package/dist/_dts/billing/src/membership/index.d.ts +3 -0
  16. package/dist/_dts/block-form/src/backend/types.d.ts +14 -0
  17. package/dist/_dts/block-form/src/client/index.d.ts +1 -0
  18. package/dist/_dts/block-form/src/context/RepeaterHostActionsContext.d.ts +30 -0
  19. package/dist/_dts/block-form/src/context/index.d.ts +1 -0
  20. package/dist/_dts/block-form/src/index.d.ts +1 -0
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +4 -1
  22. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +5 -2
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +11 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -0
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useEmptyStateFocusAfterRemoval.d.ts +8 -0
  26. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +15 -1
  27. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +5 -2
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +34 -10
  29. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -0
  30. package/dist/_dts/blocks/src/system/constants/events.d.ts +10 -0
  31. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +5 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/context.d.ts +3 -3
  33. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -0
  34. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +3 -2
  35. package/dist/_dts/blocks/src/system/runtime/api/readAuthority.d.ts +11 -0
  36. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +9 -0
  37. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -13
  38. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -6
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +9 -4
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +0 -1
  41. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -3
  42. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +7 -24
  43. package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +2 -1
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +2 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -5
  53. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +7 -2
  54. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +7 -5
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -6
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +3 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/header-control.d.ts +10 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +6 -21
  59. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -0
  63. package/dist/_dts/blocks/src/system/runtime/shared/components/ThemedButton.d.ts +58 -0
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  65. package/dist/_dts/blocks/src/system/transforms/registry/chromeLogo.d.ts +23 -0
  66. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  67. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +3 -1
  68. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +4 -1
  69. package/dist/_dts/core/src/event-catalogue.d.ts +27 -0
  70. package/dist/_dts/core/src/event-preset-vocabulary.d.ts +7 -0
  71. package/dist/_dts/core/src/index.d.ts +2 -0
  72. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +13 -0
  73. package/dist/_dts/db/src/schemas/forms.d.ts +286 -2
  74. package/dist/_dts/editor-blocks/src/block-editor/{BlockCardHeader.d.ts → BlockCardFrame.d.ts} +11 -3
  75. package/dist/_dts/logger/src/console.d.ts +3 -0
  76. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +1 -0
  77. package/dist/_dts/sdk/src/client/types.d.ts +3 -0
  78. package/dist/_dts/sdk/src/navigation/index.d.ts +27 -0
  79. package/dist/_dts/sdk/src/public-api/contracts.d.ts +15 -7
  80. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  81. package/dist/_dts/sdk/src/rendering/client.d.ts +1 -0
  82. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +1 -0
  83. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +7 -1
  84. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
  85. package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +3 -2
  86. package/dist/_dts/sdk/src/rendering/islands/enhancers/shopShared.d.ts +2 -0
  87. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  88. package/dist/_dts/sdk/src/version.d.ts +1 -1
  89. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +1 -1
  90. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +3 -13
  91. package/dist/_dts/theme-core/src/customCss/index.d.ts +1 -1
  92. package/dist/_dts/theme-core/src/customCss/patch.d.ts +0 -5
  93. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  95. package/dist/_dts/theme-core/src/surfaces/logoVariant.d.ts +26 -0
  96. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +10 -0
  97. package/dist/_dts/ui/src/editor-item-card.d.ts +116 -0
  98. package/dist/_dts/ui/src/index.d.ts +1 -0
  99. package/dist/client/{BookingConsentAgreement-BoCtvzzu.mjs → BookingConsentAgreement-DoAILrkN.mjs} +4 -55
  100. package/dist/client/{DiscountCodeDisclosure-B5S30nZk.mjs → DiscountCodeDisclosure-X528hUTf.mjs} +27 -17
  101. package/dist/client/{EventCombined.client-CeZ2-zSt.mjs → EventCombined.client-DSBVwq5m.mjs} +54 -46
  102. package/dist/client/{EventListing.client-DJN3j8B3.mjs → EventListing.client-DmFAX7Vb.mjs} +3 -4
  103. package/dist/client/{LeafletStaticMap-RjtGzDQT.mjs → LeafletStaticMap-BAqXdfhq.mjs} +1 -1
  104. package/dist/client/ThemedButton-BwNFVwi4.mjs +412 -0
  105. package/dist/client/{accordion-DOmnDoyg.mjs → accordion-DRhMdkbd.mjs} +1 -1
  106. package/dist/client/{bookingForm-C0vk7pgS.mjs → bookingForm-iJ_nCsNF.mjs} +26 -32
  107. package/dist/client/bookings.mjs +201 -118
  108. package/dist/client/{carousel-BZJ7pno3.mjs → carousel-D8zuffZr.mjs} +2 -2
  109. package/dist/client/{carousel.client-DQTjCVQT.mjs → carousel.client-jahpU9Vz.mjs} +1 -1
  110. package/dist/client/{cart-CaeVAHJl.mjs → cart-DeMGJViN.mjs} +3 -3
  111. package/dist/client/{checkout-7wmoNDtG.mjs → checkout-DXc06Km2.mjs} +3 -3
  112. package/dist/client/{checkoutUrls-FL6lRkrt.mjs → checkoutUrls-CW3-78uu.mjs} +1 -1
  113. package/dist/client/client.mjs +2271 -1983
  114. package/dist/client/{colorStyles-3013aRAY.mjs → colorStyles-CuJBiS-1.mjs} +16 -4
  115. package/dist/client/{context-BOimxE3U.mjs → context-CDLCfDep.mjs} +24 -8
  116. package/dist/client/{dates-BnzVksi4.mjs → dates-ClFx7Epy.mjs} +2 -2
  117. package/dist/client/{eventCalendar-l-fpaslC.mjs → eventCalendar-BaGpnOGN.mjs} +39 -50
  118. package/dist/client/{eventCombined-DGGvssK6.mjs → eventCombined-ywONOx2m.mjs} +5 -4
  119. package/dist/client/{eventDetails-DRiCm_hL.mjs → eventDetails-B2LlOTYY.mjs} +4 -4
  120. package/dist/client/{eventListing-dph8loYX.mjs → eventListing-CMgxWpqP.mjs} +5 -4
  121. package/dist/client/{eventRegistration-ClBohmbY.mjs → eventRegistration-BarLDNHR.mjs} +83 -68
  122. package/dist/client/{form-BLVVAnd3.mjs → form-BjqKaBJ7.mjs} +9 -10
  123. package/dist/client/{headerSection-DHy4C8Ix.mjs → headerSection-CP4XDwz1.mjs} +23 -30
  124. package/dist/client/hooks.mjs +257 -63
  125. package/dist/client/{locationMap-6HuS28ck.mjs → locationMap-C5gW-d-w.mjs} +9 -10
  126. package/dist/client/{media-DHpfFwd3.mjs → media-BtJ37tzS.mjs} +1 -1
  127. package/dist/client/{newsletterForm-xOdcOhZP.mjs → newsletterForm-afXlVSA0.mjs} +8 -9
  128. package/dist/client/{pricing-ChinRYFt.mjs → pricing-Bl1CAl28.mjs} +1 -1
  129. package/dist/client/{productDetail-0chA5gbK.mjs → productDetail-CvQ3jWQe.mjs} +3 -3
  130. package/dist/client/{productList-OoINA0h1.mjs → productList-U874PGO7.mjs} +3 -3
  131. package/dist/client/{propsDecoder-CIZ-hbIG.mjs → propsDecoder-DPXtCZWP.mjs} +87 -29
  132. package/dist/client/rendering/client.mjs +1891 -1740
  133. package/dist/client/rendering/islands.mjs +19 -19
  134. package/dist/client/rendering.mjs +2225 -1913
  135. package/dist/client/{routeIslandApiConfig-UNsfPcYq.mjs → routeIslandApiConfig-NGYiUWXu.mjs} +8 -1
  136. package/dist/client/{scrollToBlock-BPZl0gPZ.mjs → scrollToBlock-0-C3DVhK.mjs} +1 -1
  137. package/dist/client/{shop-CLJFqNIq.mjs → shop-BXjXhM9P.mjs} +45 -58
  138. package/dist/client/{shop-commerce-PpANg5wB.mjs → shop-commerce-BZ6UlWJ7.mjs} +42 -55
  139. package/dist/client/{shop-commerce-store-TA_Kz2ku.mjs → shop-commerce-store-DlSBXb3D.mjs} +1 -1
  140. package/dist/client/{shopShared-DzcFcA5g.mjs → shopShared-kkEOiLPA.mjs} +6 -5
  141. package/dist/client/{useEventFilters-CFU21QZo.mjs → useEventFilters-zvnnE1ro.mjs} +66 -355
  142. package/dist/preview-next/client/runtime.mjs +3 -3
  143. package/dist/preview-next/editor-chrome.css +8 -0
  144. package/dist/{sdk-runtime-CDKl0Fr7.mjs → sdk-runtime-DFJlQt3q.mjs} +1 -1
  145. package/dist/{separator-BTp96X32.mjs → separator-o8GHb1xh.mjs} +1 -1
  146. package/dist/server/components.mjs +828 -623
  147. package/dist/server/config-validation.mjs +257 -63
  148. package/dist/server/config.mjs +257 -63
  149. package/dist/server/data.mjs +257 -63
  150. package/dist/server/index.mjs +9 -5
  151. package/dist/server/navigation.mjs +28 -1
  152. package/dist/server/next.mjs +14129 -13947
  153. package/dist/server/page-converter.mjs +110 -59
  154. package/dist/server/prebuild.mjs +1 -1
  155. package/dist/server/rendering/server.mjs +832 -624
  156. package/dist/server/rendering.mjs +830 -624
  157. package/dist/server/routing.mjs +294 -69
  158. package/dist/server/server.mjs +266 -68
  159. package/dist/server/theme-bridge.mjs +40 -1
  160. package/dist/styles/index.css +6 -0
  161. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import type { BrowserReadAuthority } from "../../api/types";
1
2
  import { type InteractiveIslandProps } from "../../../../contracts/islands";
2
3
  import type { EventListingDisplay } from "./EventListing.interactive";
3
4
  import { type EventCollectionDisplay, type EventCollectionHydration, type EventCollectionSourceProps } from "./shared/eventCollectionContract";
@@ -10,6 +11,7 @@ export type EventCombinedHydration = EventCollectionHydration;
10
11
  type EventCombinedIslandMeta = Readonly<{
11
12
  siteId: string;
12
13
  apiBaseUrl?: string;
14
+ readAuthority?: BrowserReadAuthority;
13
15
  stage?: "preview" | "published";
14
16
  }>;
15
17
  export declare function buildEventCombinedDisplay(source: EventCombinedSourceProps): EventCombinedDisplay;
@@ -25,6 +27,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
25
27
  events?: import("../../../../../../api/src/index").PublicEvent[] | null;
26
28
  siteId: string;
27
29
  apiBaseUrl?: string;
30
+ readAuthority?: BrowserReadAuthority;
28
31
  stage?: "preview" | "published";
29
32
  listLayout?: import("../../..").EventLayout;
30
33
  listColumns?: import("../../..").ColumnOption;
@@ -60,7 +63,6 @@ export declare const eventCombinedBlockRuntime: Readonly<{
60
63
  hydration: Readonly<{
61
64
  calendarWindow?: import("../../../../contracts").CalendarWindowPage;
62
65
  siteId: string;
63
- stage?: "preview" | "published";
64
66
  prefetchedEvents: boolean;
65
67
  eventSurface: import("../../..").EventSurfaceScope;
66
68
  filterEventPresets: string | null;
@@ -82,6 +84,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
82
84
  events?: import("../../../../../../api/src/index").PublicEvent[] | null;
83
85
  siteId: string;
84
86
  apiBaseUrl?: string;
87
+ readAuthority?: BrowserReadAuthority;
85
88
  stage?: "preview" | "published";
86
89
  listLayout?: import("../../..").EventLayout;
87
90
  listColumns?: import("../../..").ColumnOption;
@@ -118,6 +121,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
118
121
  events?: import("../../../../../../api/src/index").PublicEvent[] | null;
119
122
  siteId: string;
120
123
  apiBaseUrl?: string;
124
+ readAuthority?: BrowserReadAuthority;
121
125
  stage?: "preview" | "published";
122
126
  listLayout?: import("../../..").EventLayout;
123
127
  listColumns?: import("../../..").ColumnOption;
@@ -156,7 +160,6 @@ export declare const eventCombinedBlockRuntime: Readonly<{
156
160
  hydration: Readonly<{
157
161
  calendarWindow?: import("../../../../contracts").CalendarWindowPage;
158
162
  siteId: string;
159
- stage?: "preview" | "published";
160
163
  prefetchedEvents: boolean;
161
164
  eventSurface: import("../../..").EventSurfaceScope;
162
165
  filterEventPresets: string | null;
@@ -176,7 +179,6 @@ export declare const eventCombinedBlockRuntime: Readonly<{
176
179
  hydration: Readonly<{
177
180
  calendarWindow?: import("../../../../contracts").CalendarWindowPage;
178
181
  siteId: string;
179
- stage?: "preview" | "published";
180
182
  prefetchedEvents: boolean;
181
183
  eventSurface: import("../../..").EventSurfaceScope;
182
184
  filterEventPresets: string | null;
@@ -198,6 +200,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
198
200
  encode: (value: Readonly<Readonly<{
199
201
  siteId: string;
200
202
  apiBaseUrl?: string;
203
+ readAuthority?: BrowserReadAuthority;
201
204
  stage?: "preview" | "published";
202
205
  }> & {
203
206
  renderKind: "progressive";
@@ -208,7 +211,6 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
208
211
  hydration: Readonly<{
209
212
  calendarWindow?: import("../../../../contracts").CalendarWindowPage;
210
213
  siteId: string;
211
- stage?: "preview" | "published";
212
214
  prefetchedEvents: boolean;
213
215
  eventSurface: import("../../..").EventSurfaceScope;
214
216
  filterEventPresets: string | null;
@@ -227,6 +229,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
227
229
  decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<Readonly<{
228
230
  siteId: string;
229
231
  apiBaseUrl?: string;
232
+ readAuthority?: BrowserReadAuthority;
230
233
  stage?: "preview" | "published";
231
234
  }> & {
232
235
  renderKind: "progressive";
@@ -237,7 +240,6 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
237
240
  hydration: Readonly<{
238
241
  calendarWindow?: import("../../../../contracts").CalendarWindowPage;
239
242
  siteId: string;
240
- stage?: "preview" | "published";
241
243
  prefetchedEvents: boolean;
242
244
  eventSurface: import("../../..").EventSurfaceScope;
243
245
  filterEventPresets: string | null;
@@ -3,10 +3,12 @@ import { type CardRole } from "../../../../../../theme-core/src/cards/index";
3
3
  import type { ButtonVariant, CardOrientation, ColumnOption, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent } from "../../../blocks/events/shared/types";
4
4
  import { type InteractiveIslandProps } from "../../../../contracts/islands";
5
5
  import { type EventListPaginationAction, type EventListPaginationMode, type EventPageSize } from "./shared/listOptions";
6
+ import type { BrowserReadAuthority } from "../../api/types";
6
7
  export type EventListingSourceProps = Pick<EventCollectionSourceProps, "showFilters" | "showCategoryFilter" | "showVenueFilter" | "showStaffFilter" | "eventSurface" | "filterEventPresets" | "scheduleScope" | "seriesIds" | "filterCategoryIds" | "filterStaffMemberId" | "filterVenueId"> & Readonly<{
7
8
  events?: PublicEvent[] | null;
8
9
  siteId: string;
9
10
  apiBaseUrl?: string;
11
+ readAuthority?: BrowserReadAuthority;
10
12
  stage?: "preview" | "published";
11
13
  layout?: EventLayout;
12
14
  columns?: ColumnOption;
@@ -42,7 +44,6 @@ export type EventListingDisplay = Readonly<{
42
44
  }>;
43
45
  export type EventListingHydration = Readonly<{
44
46
  siteId: string;
45
- stage?: "preview" | "published";
46
47
  eventsPerPage: EventPageSize;
47
48
  paginationAction: EventListPaginationAction;
48
49
  showFilters: boolean;
@@ -61,6 +62,7 @@ export type EventListingHydration = Readonly<{
61
62
  type EventListingIslandMeta = Readonly<{
62
63
  siteId: string;
63
64
  apiBaseUrl?: string;
65
+ readAuthority?: BrowserReadAuthority;
64
66
  stage?: "preview" | "published";
65
67
  }>;
66
68
  export type EventListingInteractiveIslandProps = InteractiveIslandProps<EventListingIslandMeta, "event-listing", typeof eventListingBlockRuntime>;
@@ -86,7 +88,6 @@ export declare const eventListingBlockRuntime: Readonly<{
86
88
  }>;
87
89
  hydration: Readonly<{
88
90
  siteId: string;
89
- stage?: "preview" | "published";
90
91
  eventsPerPage: EventPageSize;
91
92
  paginationAction: EventListPaginationAction;
92
93
  showFilters: boolean;
@@ -129,7 +130,6 @@ export declare const eventListingBlockRuntime: Readonly<{
129
130
  }>;
130
131
  hydration: Readonly<{
131
132
  siteId: string;
132
- stage?: "preview" | "published";
133
133
  eventsPerPage: EventPageSize;
134
134
  paginationAction: EventListPaginationAction;
135
135
  showFilters: boolean;
@@ -166,7 +166,6 @@ export declare const eventListingBlockRuntime: Readonly<{
166
166
  }>;
167
167
  hydration: Readonly<{
168
168
  siteId: string;
169
- stage?: "preview" | "published";
170
169
  eventsPerPage: EventPageSize;
171
170
  paginationAction: EventListPaginationAction;
172
171
  showFilters: boolean;
@@ -190,6 +189,7 @@ export declare const eventListingInteractiveIslandPropsCodec: Readonly<{
190
189
  encode: (value: Readonly<Readonly<{
191
190
  siteId: string;
192
191
  apiBaseUrl?: string;
192
+ readAuthority?: BrowserReadAuthority;
193
193
  stage?: "preview" | "published";
194
194
  }> & {
195
195
  renderKind: "progressive";
@@ -215,7 +215,6 @@ export declare const eventListingInteractiveIslandPropsCodec: Readonly<{
215
215
  }>;
216
216
  hydration: Readonly<{
217
217
  siteId: string;
218
- stage?: "preview" | "published";
219
218
  eventsPerPage: EventPageSize;
220
219
  paginationAction: EventListPaginationAction;
221
220
  showFilters: boolean;
@@ -236,6 +235,7 @@ export declare const eventListingInteractiveIslandPropsCodec: Readonly<{
236
235
  decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<Readonly<{
237
236
  siteId: string;
238
237
  apiBaseUrl?: string;
238
+ readAuthority?: BrowserReadAuthority;
239
239
  stage?: "preview" | "published";
240
240
  }> & {
241
241
  renderKind: "progressive";
@@ -261,7 +261,6 @@ export declare const eventListingInteractiveIslandPropsCodec: Readonly<{
261
261
  }>;
262
262
  hydration: Readonly<{
263
263
  siteId: string;
264
- stage?: "preview" | "published";
265
264
  eventsPerPage: EventPageSize;
266
265
  paginationAction: EventListPaginationAction;
267
266
  showFilters: boolean;
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import type { BrowserReadAuthority } from "../../../api/types";
2
3
  import { type CalendarWindowPage } from "../../../../blocks/events/shared/calendarWindow";
3
4
  import { type CardRole } from "../../../../../../../theme-core/src/cards/index";
4
5
  import { type BookingTimeZone } from "../../../../../../../core/src/index";
@@ -11,6 +12,7 @@ export type EventCollectionSourceProps = Readonly<{
11
12
  events?: PublicEvent[] | null;
12
13
  siteId: string;
13
14
  apiBaseUrl?: string;
15
+ readAuthority?: BrowserReadAuthority;
14
16
  stage?: "preview" | "published";
15
17
  listLayout?: EventLayout;
16
18
  listColumns?: ColumnOption;
@@ -73,7 +75,6 @@ export type EventCollectionDisplay = Readonly<{
73
75
  export type EventCollectionHydration = Readonly<{
74
76
  calendarWindow?: CalendarWindowPage;
75
77
  siteId: string;
76
- stage?: "preview" | "published";
77
78
  prefetchedEvents: boolean;
78
79
  eventSurface: EventSurfaceScope;
79
80
  filterEventPresets: string | null;
@@ -1149,6 +1150,7 @@ export declare const eventCollectionSourceSchemaShape: {
1149
1150
  }, z.core.$strip>]>>>>;
1150
1151
  readonly siteId: z.ZodString;
1151
1152
  readonly apiBaseUrl: z.ZodOptional<z.ZodString>;
1153
+ readonly readAuthority: z.ZodOptional<z.ZodType<BrowserReadAuthority, unknown, z.core.$ZodTypeInternals<BrowserReadAuthority, unknown>>>;
1152
1154
  readonly stage: z.ZodOptional<z.ZodEnum<{
1153
1155
  published: "published";
1154
1156
  preview: "preview";
@@ -0,0 +1,10 @@
1
+ import type { AriaAttributes, ReactNode } from 'react';
2
+ type HeaderControlProps = Pick<AriaAttributes, 'aria-label' | 'aria-expanded' | 'aria-controls' | 'aria-haspopup'> & {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ 'data-nav-mobile-toggle'?: string;
6
+ 'data-nav-mobile-trigger'?: string;
7
+ };
8
+ /** System navigation controls retain their runtime hooks independently of authored CTAs. */
9
+ export declare function HeaderControlNode({ className, children, 'aria-label': label, 'aria-expanded': expanded, 'aria-controls': controls, 'aria-haspopup': hasPopup, 'data-nav-mobile-toggle': mobileToggle, 'data-nav-mobile-trigger': mobileTrigger, }: HeaderControlProps): import("react").JSX.Element;
10
+ export {};
@@ -3,24 +3,9 @@ import Section from '../../../primitives/layout/Section';
3
3
  import { Stack as StackPrimitive } from '../../../primitives/layout/Stack';
4
4
  import { Inline as InlinePrimitive } from '../../../primitives/layout/Inline';
5
5
  import { Grid as GridPrimitive } from '../../../primitives/layout/Grid';
6
- type NodeMetadataProps = {
7
- pathBase?: string;
8
- blockId?: string | null;
9
- blockKind?: string;
10
- blockContent?: unknown;
11
- fragmentRegistry?: unknown;
12
- previewAuthoring?: unknown;
13
- };
14
- type SectionNodeProps = React.ComponentProps<typeof Section> & NodeMetadataProps;
15
- type StackNodeProps = React.ComponentProps<typeof StackPrimitive> & NodeMetadataProps;
16
- type InlineNodeProps = React.ComponentProps<typeof InlinePrimitive> & NodeMetadataProps;
17
- type GridNodeProps = React.ComponentProps<typeof GridPrimitive> & NodeMetadataProps;
18
- type DivNodeProps = React.ComponentProps<'div'> & NodeMetadataProps;
19
- type FigureNodeProps = React.ComponentProps<'figure'> & NodeMetadataProps;
20
- export declare const SectionNode: React.FC<SectionNodeProps>;
21
- export declare const StackNode: React.FC<StackNodeProps>;
22
- export declare const InlineNode: React.FC<InlineNodeProps>;
23
- export declare const GridNode: React.FC<GridNodeProps>;
24
- export declare const DivNode: React.FC<DivNodeProps>;
25
- export declare const FigureNode: React.FC<FigureNodeProps>;
26
- export {};
6
+ export declare const SectionNode: React.FC<React.ComponentProps<typeof Section>>;
7
+ export declare const StackNode: React.FC<React.ComponentProps<typeof StackPrimitive>>;
8
+ export declare const InlineNode: React.FC<React.ComponentProps<typeof InlinePrimitive>>;
9
+ export declare const GridNode: React.FC<React.ComponentProps<typeof GridPrimitive>>;
10
+ export declare const DivNode: React.FC<React.ComponentProps<'div'>>;
11
+ export declare const FigureNode: React.FC<React.ComponentProps<'figure'>>;
@@ -4,6 +4,7 @@ type ProductDetailProps = Readonly<{
4
4
  blockId?: string | null;
5
5
  siteId?: string;
6
6
  apiBaseUrl?: string;
7
+ readAuthority?: import('../api/types').BrowserReadAuthority;
7
8
  stage?: 'preview' | 'published';
8
9
  children?: React.ReactNode;
9
10
  }> & ShopDisplayConfig;
@@ -4,6 +4,7 @@ type ProductListProps = Readonly<{
4
4
  blockId?: string | null;
5
5
  siteId?: string;
6
6
  apiBaseUrl?: string;
7
+ readAuthority?: import('../api/types').BrowserReadAuthority;
7
8
  stage?: 'preview' | 'published';
8
9
  children?: React.ReactNode;
9
10
  }> & ShopDisplayConfig;
@@ -5,9 +5,11 @@ import { type CartDisplay, type CheckoutDisplay, type PassesMembershipsDisplay,
5
5
  import type { CommerceCartItem } from './shop-commerce.shared';
6
6
  import type { ShopDisplayConfig } from './shop.types';
7
7
  import { type InteractiveIslandProps } from '../../../contracts/islands';
8
+ import type { BrowserReadAuthority } from '../api/types';
8
9
  type ShopSourceProps = ShopDisplayConfig & Readonly<{
9
10
  siteId?: string;
10
11
  apiBaseUrl?: string;
12
+ readAuthority?: BrowserReadAuthority;
11
13
  stage?: 'preview' | 'published';
12
14
  }>;
13
15
  export type { ShopSourceProps };
@@ -41,6 +43,7 @@ export type CheckoutHydration = Readonly<{
41
43
  type ShopIslandMeta = Readonly<{
42
44
  siteId?: string;
43
45
  apiBaseUrl?: string;
46
+ readAuthority?: BrowserReadAuthority;
44
47
  stage?: 'preview' | 'published';
45
48
  }>;
46
49
  export declare function resolveShowPricePerCredit(source: Pick<ShopSourceProps, 'showPricePerCredit'>): boolean;
@@ -514,6 +517,7 @@ export declare const shopInteractiveIslandPropsCodec: Readonly<{
514
517
  encode: (value: Readonly<Readonly<{
515
518
  siteId?: string;
516
519
  apiBaseUrl?: string;
520
+ readAuthority?: BrowserReadAuthority;
517
521
  stage?: "preview" | "published";
518
522
  }> & {
519
523
  renderKind: "progressive";
@@ -565,6 +569,7 @@ export declare const shopInteractiveIslandPropsCodec: Readonly<{
565
569
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
566
570
  siteId?: string;
567
571
  apiBaseUrl?: string;
572
+ readAuthority?: BrowserReadAuthority;
568
573
  stage?: "preview" | "published";
569
574
  }> & {
570
575
  renderKind: "progressive";
@@ -618,6 +623,7 @@ export declare const productListInteractiveIslandPropsCodec: Readonly<{
618
623
  encode: (value: Readonly<Readonly<{
619
624
  siteId?: string;
620
625
  apiBaseUrl?: string;
626
+ readAuthority?: BrowserReadAuthority;
621
627
  stage?: "preview" | "published";
622
628
  }> & {
623
629
  renderKind: "progressive";
@@ -664,6 +670,7 @@ export declare const productListInteractiveIslandPropsCodec: Readonly<{
664
670
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
665
671
  siteId?: string;
666
672
  apiBaseUrl?: string;
673
+ readAuthority?: BrowserReadAuthority;
667
674
  stage?: "preview" | "published";
668
675
  }> & {
669
676
  renderKind: "progressive";
@@ -712,6 +719,7 @@ export declare const productDetailInteractiveIslandPropsCodec: Readonly<{
712
719
  encode: (value: Readonly<Readonly<{
713
720
  siteId?: string;
714
721
  apiBaseUrl?: string;
722
+ readAuthority?: BrowserReadAuthority;
715
723
  stage?: "preview" | "published";
716
724
  }> & {
717
725
  renderKind: "progressive";
@@ -731,6 +739,7 @@ export declare const productDetailInteractiveIslandPropsCodec: Readonly<{
731
739
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
732
740
  siteId?: string;
733
741
  apiBaseUrl?: string;
742
+ readAuthority?: BrowserReadAuthority;
734
743
  stage?: "preview" | "published";
735
744
  }> & {
736
745
  renderKind: "progressive";
@@ -752,6 +761,7 @@ export declare const cartInteractiveIslandPropsCodec: Readonly<{
752
761
  encode: (value: Readonly<Readonly<{
753
762
  siteId?: string;
754
763
  apiBaseUrl?: string;
764
+ readAuthority?: BrowserReadAuthority;
755
765
  stage?: "preview" | "published";
756
766
  }> & {
757
767
  renderKind: "client-owned";
@@ -786,6 +796,7 @@ export declare const cartInteractiveIslandPropsCodec: Readonly<{
786
796
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
787
797
  siteId?: string;
788
798
  apiBaseUrl?: string;
799
+ readAuthority?: BrowserReadAuthority;
789
800
  stage?: "preview" | "published";
790
801
  }> & {
791
802
  renderKind: "client-owned";
@@ -822,6 +833,7 @@ export declare const checkoutInteractiveIslandPropsCodec: Readonly<{
822
833
  encode: (value: Readonly<Readonly<{
823
834
  siteId?: string;
824
835
  apiBaseUrl?: string;
836
+ readAuthority?: BrowserReadAuthority;
825
837
  stage?: "preview" | "published";
826
838
  }> & {
827
839
  renderKind: "client-owned";
@@ -845,6 +857,7 @@ export declare const checkoutInteractiveIslandPropsCodec: Readonly<{
845
857
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
846
858
  siteId?: string;
847
859
  apiBaseUrl?: string;
860
+ readAuthority?: BrowserReadAuthority;
848
861
  stage?: "preview" | "published";
849
862
  }> & {
850
863
  renderKind: "client-owned";
@@ -4,6 +4,7 @@ type ShopProps = Readonly<{
4
4
  blockId?: string | null;
5
5
  siteId?: string;
6
6
  apiBaseUrl?: string;
7
+ readAuthority?: import('../api/types').BrowserReadAuthority;
7
8
  stage?: 'preview' | 'published';
8
9
  checkoutEndpoint?: string;
9
10
  children?: React.ReactNode;
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import { type ButtonSizeName, type ThemeButtonVariantId } from '../../../../../../theme-core/src/buttons/index';
3
+ type ThemedControlStyleProps = Readonly<{
4
+ variant: ThemeButtonVariantId;
5
+ size: ButtonSizeName;
6
+ extraClassName?: string | null;
7
+ screenReaderSuffix?: string;
8
+ labelClassName?: string;
9
+ }>;
10
+ type ThemedButtonPendingState = Readonly<{
11
+ label: string;
12
+ srLabel?: string;
13
+ spinnerSize?: 'xs' | 'sm';
14
+ spinnerClassName?: string;
15
+ contentClassName?: string;
16
+ }>;
17
+ export type ThemedButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'className' | 'dangerouslySetInnerHTML'> & ThemedControlStyleProps & Readonly<{
18
+ label: string | number;
19
+ pending?: ThemedButtonPendingState;
20
+ }>;
21
+ export declare function ThemedButton({ variant, size, extraClassName, screenReaderSuffix, labelClassName, pending, label, ...buttonProps }: ThemedButtonProps): React.ReactElement;
22
+ export type ThemedButtonLinkProps = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'className' | 'dangerouslySetInnerHTML'> & ThemedControlStyleProps & Readonly<{
23
+ label: string | number;
24
+ }>;
25
+ export declare function ThemedButtonLink({ variant, size, extraClassName, screenReaderSuffix, labelClassName, label, ...anchorProps }: ThemedButtonLinkProps): React.ReactElement;
26
+ export type ThemedButtonSpecimenProps = Readonly<{
27
+ variant: ThemeButtonVariantId;
28
+ size: ButtonSizeName;
29
+ label: string | number;
30
+ extraClassName?: string | null;
31
+ forceHover?: boolean;
32
+ }>;
33
+ /** Noninteractive button-style preview with no caller-owned markup. */
34
+ export declare function ThemedButtonSpecimen({ variant, size, label, extraClassName, forceHover, }: ThemedButtonSpecimenProps): React.ReactElement;
35
+ export type ThemedActionsButtonProps = Omit<ThemedButtonProps, 'label' | 'pending' | 'screenReaderSuffix' | 'labelClassName' | 'aria-label'>;
36
+ /** Fixed icon-only actions control; callers cannot supply icon children. */
37
+ export declare function ThemedActionsButton({ variant, size, extraClassName, ...buttonProps }: ThemedActionsButtonProps): React.ReactElement;
38
+ export type ThemedDownloadLinkProps = ThemedButtonLinkProps;
39
+ /** Fixed semantic download affordance; callers cannot supply arbitrary icon children. */
40
+ export declare function ThemedDownloadLink({ variant, size, extraClassName, label, screenReaderSuffix, labelClassName, ...anchorProps }: ThemedDownloadLinkProps): React.ReactElement;
41
+ export type ThemedAuthoredButtonProps = Readonly<{
42
+ label: string | number;
43
+ href?: string;
44
+ variant: ThemeButtonVariantId | null;
45
+ size: ButtonSizeName;
46
+ extraClassName?: string | null;
47
+ disabled?: boolean;
48
+ type?: 'button' | 'submit' | 'reset';
49
+ target?: string;
50
+ rel?: string;
51
+ ariaLabel?: string;
52
+ dataTestId?: string;
53
+ trailingIcon?: string;
54
+ onClick?: React.MouseEventHandler<HTMLElement>;
55
+ }>;
56
+ /** Boundary for authored button nodes and their registry-backed trailing icon. */
57
+ export declare function ThemedAuthoredButton({ label, href, variant, size, extraClassName, disabled, type, target, rel, ariaLabel, dataTestId, trailingIcon, onClick, }: ThemedAuthoredButtonProps): React.ReactElement;
58
+ export {};
@@ -25,3 +25,5 @@ export { StepIndicator } from './StepIndicator';
25
25
  export type { StepIndicatorBaseProps, StepIndicatorProps, } from './StepIndicator';
26
26
  export { RB_OPTION_CARD_CLASSES, SelectableOptionCard, } from './SelectableOptionCard';
27
27
  export type { SelectableOptionCardProps } from './SelectableOptionCard';
28
+ export { ThemedActionsButton, ThemedAuthoredButton, ThemedButton, ThemedButtonLink, ThemedButtonSpecimen, ThemedDownloadLink } from './ThemedButton';
29
+ export type { ThemedActionsButtonProps, ThemedAuthoredButtonProps, ThemedButtonProps, ThemedButtonLinkProps, ThemedButtonSpecimenProps, ThemedDownloadLinkProps } from './ThemedButton';
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { type SurfaceTone } from '../../../../../theme-core/src/surfaces/index';
3
+ import { type TransformDefinition } from './core';
4
+ declare const chromeLogoSurfaceValues: readonly ["header-root", "header-mobile-panel", "footer-root"];
5
+ type ChromeLogoSurface = (typeof chromeLogoSurfaceValues)[number];
6
+ declare const chromeLogoSchema: z.ZodObject<{
7
+ surface: z.ZodEnum<{
8
+ "header-root": "header-root";
9
+ "header-mobile-panel": "header-mobile-panel";
10
+ "footer-root": "footer-root";
11
+ }>;
12
+ }, z.core.$strip>;
13
+ export declare function resolveChromeSurfaceTone(surface: ChromeLogoSurface, context: Parameters<TransformDefinition['run']>[2]): SurfaceTone;
14
+ /**
15
+ * Picks the site logo for the surface it is drawn on. Bound from block
16
+ * `content`: `logoVariants` when the renderer supplies both logos, otherwise
17
+ * the single `logo` older callers pass.
18
+ */
19
+ export declare const chromeLogoTransform: TransformDefinition<z.infer<typeof chromeLogoSchema>>;
20
+ export declare const chromeLogoTransforms: TransformDefinition<{
21
+ surface: "header-root" | "header-mobile-panel" | "footer-root";
22
+ }>[];
23
+ export {};
@@ -1,5 +1,6 @@
1
1
  import { formattingTransforms } from "./formatting";
2
2
  import { layoutTransforms } from "./layout";
3
+ import { chromeLogoTransforms } from "./chromeLogo";
3
4
  import { uiTransforms } from "./ui";
4
5
  import { mediaTransforms } from "./media";
5
6
  import { backgroundTransforms } from "./background";
@@ -10,4 +11,4 @@ import { headerRuntimeTransforms } from "./headerRuntime";
10
11
  export declare const builtinTransformDefinitions: import("./core").TransformDefinition<unknown>[];
11
12
  export declare const defaultTransforms: import("./core").TransformRegistry;
12
13
  export { boxStyleClassNames } from "./_utils/boxStyleClassNames";
13
- export { formattingTransforms, layoutTransforms, uiTransforms, mediaTransforms, backgroundTransforms, linksTransforms, boxStylesTransforms, contentTransforms, headerRuntimeTransforms, };
14
+ export { formattingTransforms, layoutTransforms, chromeLogoTransforms, uiTransforms, mediaTransforms, backgroundTransforms, linksTransforms, boxStylesTransforms, contentTransforms, headerRuntimeTransforms, };
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { type ThemeHeader } from '../../../../../theme-core/src/schema';
2
+ import { type ThemeFooter, type ThemeHeader } from '../../../../../theme-core/src/schema';
3
3
  import { type TransformDefinition } from './core';
4
+ import { resolveSurfaceForeground, type ResolvedSurfaceForeground } from '../../../../../theme-core/src/surfaces/index';
4
5
  declare const headerLogoClassSchema: z.ZodObject<{
5
6
  base: z.ZodOptional<z.ZodString>;
6
7
  }, z.core.$strip>;
@@ -41,6 +42,7 @@ export declare function resolveHeaderVisualStyles(header: Partial<ThemeHeader> |
41
42
  readonly backgroundToken: "transparent";
42
43
  readonly isTransparent: true;
43
44
  };
45
+ export declare function resolveFooterRootForeground(footer: Partial<ThemeFooter> | undefined, palette: Parameters<typeof resolveSurfaceForeground>[1]): ResolvedSurfaceForeground;
44
46
  export declare const headerRootClassTransform: TransformDefinition<HeaderRootOptions>;
45
47
  declare const footerRootClassSchema: z.ZodObject<{
46
48
  base: z.ZodOptional<z.ZodString>;
@@ -25,6 +25,9 @@ export declare const transformDefinitions: {
25
25
  readonly 'layout.headerLogoMediaClass': TransformDefinition<{
26
26
  base?: string | undefined;
27
27
  }>;
28
+ readonly 'layout.chromeLogo': TransformDefinition<{
29
+ surface: "header-root" | "header-mobile-panel" | "footer-root";
30
+ }>;
28
31
  readonly 'layout.headerLogoTextVisible': TransformDefinition;
29
32
  readonly 'layout.footerRootClass': TransformDefinition<{
30
33
  base?: string | undefined;
@@ -120,7 +123,7 @@ export declare function bindProp(from: string, opts?: {
120
123
  readonly $bind: {
121
124
  readonly pick?: "value" | "context" | "collection" | undefined;
122
125
  readonly fallback?: {} | null | undefined;
123
- readonly transforms?: TransformStep<"string.uppercase" | "value.fallback" | "date.formatShort" | "value.csv" | "layout.maxWidthClass" | "layout.headerRootClass" | "layout.footerRootClass" | "layout.headerRootStyle" | "layout.headerSectionBackground" | "layout.footerRootStyle" | "ui.headerNavLinkClass" | "ui.headingClassFromAlignment" | "ui.bodyClassFromAlignment" | "ui.stackAlignFromAlignment" | "ui.sectionStateTone" | "ui.heroContentWrapperClass" | "ui.heroCtaJustify" | "ui.heroStackJustifyFromVerticalAlignment" | "ui.heroGridClassFromVerticalAlignment" | "ui.conditionalClass" | "ui.twoColumnContainerClass" | "ui.twoColumnFlexBasis" | "media.fromUrl" | "content.interpolateRichTextTokens" | "boxStyles.semanticGap" | "boxStyles.semanticGapValue" | "layout.headerLogoClass" | "layout.headerLogoMediaClass" | "layout.headerLogoTextVisible" | "layout.footerBottomBarClass" | "layout.footerBottomBarContainerClass" | "layout.footerBottomBarStyle" | "layout.footerSplitMainClass" | "layout.footerLogoClass" | "layout.footerLogoMediaClass" | "layout.footerLogoTextVisible" | "layout.headerRuntimeContract">[] | undefined;
126
+ readonly transforms?: TransformStep<"string.uppercase" | "value.fallback" | "date.formatShort" | "value.csv" | "layout.maxWidthClass" | "layout.headerRootClass" | "layout.footerRootClass" | "layout.headerRootStyle" | "layout.headerSectionBackground" | "layout.footerRootStyle" | "ui.headerNavLinkClass" | "ui.headingClassFromAlignment" | "ui.bodyClassFromAlignment" | "ui.stackAlignFromAlignment" | "ui.sectionStateTone" | "ui.heroContentWrapperClass" | "ui.heroCtaJustify" | "ui.heroStackJustifyFromVerticalAlignment" | "ui.heroGridClassFromVerticalAlignment" | "ui.conditionalClass" | "ui.twoColumnContainerClass" | "ui.twoColumnFlexBasis" | "media.fromUrl" | "content.interpolateRichTextTokens" | "boxStyles.semanticGap" | "boxStyles.semanticGapValue" | "layout.headerLogoClass" | "layout.headerLogoMediaClass" | "layout.headerLogoTextVisible" | "layout.footerBottomBarClass" | "layout.footerBottomBarContainerClass" | "layout.footerBottomBarStyle" | "layout.footerSplitMainClass" | "layout.footerLogoClass" | "layout.footerLogoMediaClass" | "layout.footerLogoTextVisible" | "layout.chromeLogo" | "layout.headerRuntimeContract">[] | undefined;
124
127
  readonly from: string;
125
128
  };
126
129
  };
@@ -0,0 +1,27 @@
1
+ import { type EventSeriesVerticalPresetId, type SiteVerticalBookingConfig } from './booking-verticals';
2
+ import { type EventPreset } from './event-series-behaviour';
3
+ import { type EventPresetVocabulary } from './event-preset-vocabulary';
4
+ export type ResolvedEventCatalogueEntry = EventPresetVocabulary & Readonly<{
5
+ preset: Exclude<EventPreset, 'event'>;
6
+ verticalPresetId: EventSeriesVerticalPresetId | null;
7
+ }>;
8
+ export type ResolvedEventCatalogue = Readonly<{
9
+ source: 'business_profile';
10
+ entries: readonly ResolvedEventCatalogueEntry[];
11
+ catchAll: 'implicit';
12
+ }> | Readonly<{
13
+ source: 'generic';
14
+ entries: readonly ResolvedEventCatalogueEntry[];
15
+ catchAll: 'selected' | 'unavailable';
16
+ }>;
17
+ export type EventCatalogueChoice = EventPresetVocabulary & Readonly<{
18
+ preset: EventPreset;
19
+ verticalPresetId: EventSeriesVerticalPresetId | null;
20
+ }>;
21
+ /** Accepts validated settings; defaults and raw configuration parsing belong to the caller. */
22
+ export declare function resolveEventCatalogue(settings: Readonly<{
23
+ verticalConfig?: SiteVerticalBookingConfig | null;
24
+ eventTypePresets: readonly EventPreset[];
25
+ }>): ResolvedEventCatalogue;
26
+ /** Named choices retain authored order; catch-all is consistently last. */
27
+ export declare function eventCatalogueChoices(catalogue: ResolvedEventCatalogue): readonly EventCatalogueChoice[];
@@ -0,0 +1,7 @@
1
+ import type { EventPreset } from './event-series-behaviour';
2
+ export type EventPresetVocabulary = Readonly<{
3
+ label: string;
4
+ pluralLabel: string;
5
+ description: string;
6
+ }>;
7
+ export declare const EVENT_PRESET_VOCABULARY: Readonly<Record<EventPreset, EventPresetVocabulary>>;
@@ -74,3 +74,5 @@ export * from './public-read-cache-contract';
74
74
  export * from './booking-verticals';
75
75
  export * from './event-series-behaviour';
76
76
  export * from './navigation-locations';
77
+ export * from './event-preset-vocabulary';
78
+ export * from './event-catalogue';
@@ -1667,6 +1667,7 @@ export type Database = {
1667
1667
  metadata: Json | null;
1668
1668
  stripe_customer_id: string;
1669
1669
  subscription_recovery_checked_at: string | null;
1670
+ subscription_recovery_outcome: string;
1670
1671
  updated_at: string;
1671
1672
  user_id: string;
1672
1673
  };
@@ -1677,6 +1678,7 @@ export type Database = {
1677
1678
  metadata?: Json | null;
1678
1679
  stripe_customer_id: string;
1679
1680
  subscription_recovery_checked_at?: string | null;
1681
+ subscription_recovery_outcome?: string;
1680
1682
  updated_at?: string;
1681
1683
  user_id: string;
1682
1684
  };
@@ -1687,6 +1689,7 @@ export type Database = {
1687
1689
  metadata?: Json | null;
1688
1690
  stripe_customer_id?: string;
1689
1691
  subscription_recovery_checked_at?: string | null;
1692
+ subscription_recovery_outcome?: string;
1690
1693
  updated_at?: string;
1691
1694
  user_id?: string;
1692
1695
  };
@@ -15606,6 +15609,7 @@ export type Database = {
15606
15609
  hosted_booking_appearance: Json | null;
15607
15610
  legal_profile: Json | null;
15608
15611
  logo_asset_id: string | null;
15612
+ logo_dark_background_asset_id: string | null;
15609
15613
  notification_email: string | null;
15610
15614
  person_record_mode: string;
15611
15615
  public_experience: string;
@@ -15641,6 +15645,7 @@ export type Database = {
15641
15645
  hosted_booking_appearance?: Json | null;
15642
15646
  legal_profile?: Json | null;
15643
15647
  logo_asset_id?: string | null;
15648
+ logo_dark_background_asset_id?: string | null;
15644
15649
  notification_email?: string | null;
15645
15650
  person_record_mode?: string;
15646
15651
  public_experience?: string;
@@ -15676,6 +15681,7 @@ export type Database = {
15676
15681
  hosted_booking_appearance?: Json | null;
15677
15682
  legal_profile?: Json | null;
15678
15683
  logo_asset_id?: string | null;
15684
+ logo_dark_background_asset_id?: string | null;
15679
15685
  notification_email?: string | null;
15680
15686
  person_record_mode?: string;
15681
15687
  public_experience?: string;
@@ -15711,6 +15717,13 @@ export type Database = {
15711
15717
  referencedRelation: "media_assets";
15712
15718
  referencedColumns: ["id"];
15713
15719
  },
15720
+ {
15721
+ foreignKeyName: "site_settings_logo_dark_background_asset_id_fkey";
15722
+ columns: ["logo_dark_background_asset_id"];
15723
+ isOneToOne: false;
15724
+ referencedRelation: "media_assets";
15725
+ referencedColumns: ["id"];
15726
+ },
15714
15727
  {
15715
15728
  foreignKeyName: "site_settings_site_id_fkey";
15716
15729
  columns: ["site_id"];