@riverbankcms/sdk 0.89.1 → 0.90.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/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-J3JN5Z7T.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-UBL6MSNP.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
  6. package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
  7. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  9. package/dist/_dts/api/src/bookings.d.ts +3 -1
  10. package/dist/_dts/api/src/index.d.ts +6 -5
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
  12. package/dist/_dts/api/src/request.d.ts +21 -0
  13. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  14. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  15. package/dist/_dts/api/src/types.d.ts +3 -1
  16. package/dist/_dts/api/src/url.d.ts +6 -3
  17. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  18. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  19. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  20. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  21. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  22. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  23. package/dist/_dts/blocks/src/index.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  25. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
  26. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  27. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  29. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  31. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  35. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  54. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  55. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  56. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  57. package/dist/_dts/core/src/money-input.d.ts +18 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  59. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  60. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  61. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  62. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  63. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  66. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  67. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  68. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  69. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  70. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  71. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  72. package/dist/_dts/sdk/src/components.d.ts +1 -0
  73. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  74. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  75. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  76. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  77. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  78. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  79. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  80. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  81. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  82. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  83. package/dist/_dts/sdk/src/version.d.ts +1 -1
  84. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  85. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  86. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  88. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  89. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  90. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  91. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  92. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  93. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  94. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  95. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  96. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  97. package/dist/{chunk-HKJQERFR.mjs → chunk-AEOYWPE4.mjs} +91 -55
  98. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  99. package/dist/{chunk-ZQRBLCW5.mjs → chunk-GSPFFUVB.mjs} +2 -2
  100. package/dist/{chunk-7YUAXONX.mjs → chunk-PMBB6MQ7.mjs} +1280 -774
  101. package/dist/{chunk-TGBJWKMP.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
  102. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  103. package/dist/cli/index.mjs +899 -531
  104. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  105. package/dist/cli/init-docs/content/content-management.md +27 -0
  106. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-GXQNWQ6O.mjs} +1 -1
  107. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-STLUJ36H.mjs} +25 -270
  108. package/dist/client/bookings.mjs +432 -269
  109. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-CVRN6EPP.mjs} +1 -1
  110. package/dist/client/{cart-6XHSZK23.mjs → cart-IYIBA5CL.mjs} +5 -6
  111. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-O3BGM4GS.mjs} +5 -6
  112. package/dist/client/chunk-4RTFGHZN.mjs +433 -0
  113. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-6DPXDOIL.mjs} +65 -28
  114. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-D3ETC2SU.mjs} +1 -1
  115. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-DAS5CIER.mjs} +274 -105
  116. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  117. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-MFPKS6QS.mjs} +11 -14
  118. package/dist/client/{chunk-EY42X22F.mjs → chunk-NBFRJ5NB.mjs} +156 -4
  119. package/dist/client/{chunk-VGLXACVK.mjs → chunk-VFHZLZAC.mjs} +1 -1
  120. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  121. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-Z62JYS5O.mjs} +3 -3
  122. package/dist/client/client.mjs +3292 -2827
  123. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-2D3ACMJR.mjs} +18 -56
  124. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-QY4UZUFF.mjs} +8 -9
  125. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-RRCDKJC2.mjs} +8 -9
  126. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-YO335BUT.mjs} +8 -9
  127. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-PXA6GFQ3.mjs} +8 -9
  128. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-2ZHEDDXO.mjs} +8 -9
  129. package/dist/client/{form-WZZFFGMU.mjs → form-ZS6KX4U2.mjs} +6 -6
  130. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-QK5SLIIB.mjs} +2 -2
  131. package/dist/client/hooks.mjs +1084 -1029
  132. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-GFNIUD2X.mjs} +2 -2
  133. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-PGLTTCUG.mjs} +4 -4
  134. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-OPBE5ZPI.mjs} +5 -6
  135. package/dist/client/{productList-5ABEMKUG.mjs → productList-NI72Q62Z.mjs} +5 -6
  136. package/dist/client/rendering/client.mjs +2692 -2285
  137. package/dist/client/rendering/islands.mjs +18 -18
  138. package/dist/client/rendering.mjs +2611 -2156
  139. package/dist/client/{shop-OMMQZ6YO.mjs → shop-3ZQPEWYI.mjs} +5 -6
  140. package/dist/client/spam-protection.mjs +4 -5
  141. package/dist/preview-next/before-render.mjs +2 -2
  142. package/dist/preview-next/client/runtime.mjs +5 -5
  143. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
  144. package/dist/server/components.mjs +1722 -1453
  145. package/dist/server/config-validation.mjs +1316 -1261
  146. package/dist/server/config.mjs +1316 -1261
  147. package/dist/server/data.mjs +1084 -1029
  148. package/dist/server/index.mjs +135 -100
  149. package/dist/server/navigation.mjs +20 -30
  150. package/dist/server/next.mjs +1782 -1500
  151. package/dist/server/page-converter.mjs +1009 -946
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +1722 -1453
  154. package/dist/server/rendering.mjs +1728 -1459
  155. package/dist/server/routing.mjs +1127 -1045
  156. package/dist/server/server.mjs +1219 -1129
  157. package/dist/server/theme-bridge.mjs +8 -5
  158. package/package.json +2 -2
  159. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  160. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  161. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -15,12 +15,13 @@ export interface LocalEntry {
15
15
  hasUnpublishedChanges?: boolean;
16
16
  slug?: string;
17
17
  manualOrder?: number;
18
- blocks?: Record<string, Array<{
19
- identifier?: string | null;
20
- kind: string;
21
- content: Record<string, unknown>;
22
- }>>;
18
+ blocks?: LocalEntrySlotBlocks;
23
19
  }
20
+ export type LocalEntrySlotBlocks = Record<string, Array<{
21
+ identifier?: string | null;
22
+ kind: string;
23
+ content: Record<string, unknown>;
24
+ }>>;
24
25
  export declare class LegacyEntryTitleError extends Error {
25
26
  readonly filePath: string;
26
27
  constructor(filePath: string);
@@ -168,6 +169,7 @@ export interface LocalEvent {
168
169
  identifier: string;
169
170
  title: string;
170
171
  slug: string;
172
+ path?: string | null;
171
173
  status?: 'draft' | 'active' | 'archived' | 'cancelled' | 'completed';
172
174
  visibility?: 'private' | 'public' | 'unlisted';
173
175
  schedule?: LocalEventSchedule;
@@ -181,7 +183,11 @@ export interface LocalEvent {
181
183
  settings?: Record<string, unknown>;
182
184
  presentation?: Record<string, unknown> | null;
183
185
  tags?: string[];
186
+ blocks?: LocalEntrySlotBlocks;
184
187
  }
188
+ export type LocalEventWithFilePath = LocalEvent & Readonly<{
189
+ filePath: string;
190
+ }>;
185
191
  export interface LocalCourseSession {
186
192
  startsAt: string;
187
193
  endsAt: string;
@@ -291,6 +297,7 @@ export declare function readEventCategories(contentDir: string): Promise<LocalEv
291
297
  * @returns Array of local events
292
298
  */
293
299
  export declare function readEvents(contentDir: string): Promise<LocalEvent[]>;
300
+ export declare function readEventsWithFilePaths(contentDir: string): Promise<LocalEventWithFilePath[]>;
294
301
  /**
295
302
  * Read courses from content directory
296
303
  *
@@ -7,6 +7,8 @@ import type { LinkPayload, NavigationLinkInput } from '../../public-api/contract
7
7
  import type { SiteCommandOf } from '../../../../site-commands/src/index';
8
8
  import type { SdkEventPricing, SdkEventPricingInput, SdkEventTicketTypeInput } from '../../../../api/src/sdk-event-pricing';
9
9
  import type { SdkEventPaymentTerms, SdkEventPaymentTermsInput } from '../../../../api/src/sdk-event-payment-terms';
10
+ import type { SdkEventUpsertBody } from '../../../../api/src/sdk-event-upsert';
11
+ import type { SdkManagementEventSeries } from '../../../../api/src/sdkContracts';
10
12
  import type { Theme } from '../../contracts';
11
13
  export interface ManagementClientConfig {
12
14
  /**
@@ -407,61 +409,8 @@ export interface EventContent {
407
409
  image?: string | Record<string, unknown>;
408
410
  [key: string]: unknown;
409
411
  }
410
- /**
411
- * Event series entity for SDK management operations.
412
- */
413
- export interface ManagementEventSeries {
414
- id: string;
415
- identifier: string;
416
- title: string;
417
- slug: string;
418
- status: 'draft' | 'active' | 'archived' | 'cancelled' | 'completed';
419
- visibility: 'private' | 'public' | 'unlisted';
420
- schedule: EventSchedule;
421
- capacity: number | null;
422
- pricing: EventPricing;
423
- paymentTerms?: EventPaymentTerms;
424
- /** Venue slug reference */
425
- venueRef: string | null;
426
- /** Category identifier reference */
427
- categoryRef: string | null;
428
- /** Content entry data (embedded) */
429
- content: EventContent;
430
- /** Form slug reference for custom registration forms */
431
- formRef: string | null;
432
- settings: Record<string, unknown>;
433
- presentation: Record<string, unknown> | null;
434
- tags: string[];
435
- createdAt: string;
436
- updatedAt: string;
437
- /** Content entry updatedAt (for stale detection) */
438
- contentUpdatedAt: string | null;
439
- }
440
- /**
441
- * Input for creating or updating an event series.
442
- */
443
- export interface EventSeriesUpsertInput {
444
- identifier: string;
445
- title: string;
446
- slug: string;
447
- status?: 'draft' | 'active' | 'archived' | 'cancelled';
448
- visibility?: 'private' | 'public' | 'unlisted';
449
- schedule: EventScheduleUpsertInput;
450
- capacity?: number | null;
451
- pricing?: EventPricingInput;
452
- paymentTerms?: EventPaymentTermsInput;
453
- /** Venue slug - resolved to venue_id on push */
454
- venueRef?: string | null;
455
- /** Category identifier - resolved to event_category_id on push */
456
- categoryRef?: string | null;
457
- /** Content to embed in content_entry */
458
- content?: EventContent;
459
- /** Form slug - resolved to form_id on push */
460
- formRef?: string | null;
461
- settings?: Record<string, unknown>;
462
- presentation?: Record<string, unknown> | null;
463
- tags?: string[];
464
- }
412
+ export type ManagementEventSeries = SdkManagementEventSeries;
413
+ export type EventSeriesUpsertInput = SdkEventUpsertBody;
465
414
  export interface CourseSession {
466
415
  startsAt: string;
467
416
  endsAt: string;
@@ -739,6 +688,7 @@ export interface PulledEvents {
739
688
  identifier: string;
740
689
  title: string;
741
690
  slug: string;
691
+ path?: string | null;
742
692
  status: 'draft' | 'active' | 'archived' | 'cancelled' | 'completed';
743
693
  visibility: 'private' | 'public' | 'unlisted';
744
694
  schedule: EventSchedule;
@@ -755,6 +705,7 @@ export interface PulledEvents {
755
705
  updatedAt: string;
756
706
  createdAt: string;
757
707
  contentUpdatedAt: string | null;
708
+ blocks?: EntrySlotBlocks;
758
709
  }>;
759
710
  meta: {
760
711
  pulledAt: string;
@@ -25,6 +25,7 @@ export { Page } from './rendering/components/Page';
25
25
  export type { PageProps } from './rendering/components/Page';
26
26
  export { Layout } from './rendering/components/Layout';
27
27
  export type { LayoutProps, HeaderData, FooterData } from './rendering/components/Layout';
28
+ export type { SdkThemeResponsiveMode, SdkThemeRuntime, } from './rendering/themeRuntime';
28
29
  export { PageRenderer, ThemeScope, buildThemeRuntime, RichText, resolveImageUrl, resolveImageUrlWithContext, resolveImageSourceSetWithContext, ImagePresets, } from './rendering';
29
30
  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
31
  export type { BlockOverrideProps, BlockOverrideRegistration, BlockOverrideRegistrations, BlockOverrides, BlockOverrideComponent, CustomBlockOverrideKey, KnownSystemBlockOverrides, KnownBlockOverrideKey, LazyBlockOverrideFactory, LazyBlockOverrideRegistration, StrictBlockOverrideRegistrations, StrictBlockOverrides, SystemBlockOverrideKey, } from './rendering';
@@ -29,7 +29,9 @@ export type FieldVisibilityPredicate = {
29
29
  maxItems?: number;
30
30
  };
31
31
  export type FieldVisibilityCondition = FieldVisibilityPredicate | {
32
- allOf: FieldVisibilityPredicate[];
32
+ allOf: FieldVisibilityCondition[];
33
+ } | {
34
+ anyOf: FieldVisibilityCondition[];
33
35
  };
34
36
  export type FieldUi = Partial<{
35
37
  widget: string;
@@ -215,9 +215,10 @@ export type EmbedContent = {
215
215
  export type EventLayout = 'grid' | 'stack' | 'compact';
216
216
  export type ColumnOption = '2' | '3' | '4';
217
217
  export type WeekStart = 'sunday' | 'monday';
218
- export type DisplayMode = 'combined' | 'month' | 'week' | 'list' | 'timetable';
218
+ export type DisplayMode = 'combined' | 'calendar' | 'list' | 'timetable';
219
219
  export type FilterAutoShow = 'auto' | 'always' | 'never';
220
220
  export type CalendarTabViews = 'both' | 'month' | 'week';
221
+ export type CalendarView = 'month' | 'week';
221
222
  export type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'link';
222
223
  export type CardVariantRole = 'default' | 'alternative';
223
224
  export type LegacyCardVariantRoleAlias = 'variant1' | 'variant2';
@@ -238,6 +239,7 @@ export type EventCalendarContent = {
238
239
  loadMoreText?: string | null;
239
240
  startOfWeek?: WeekStart | null;
240
241
  calendarTabViews?: CalendarTabViews | null;
242
+ defaultCalendarView?: CalendarView | null;
241
243
  showFilters?: boolean | null;
242
244
  showCategoryFilter?: FilterAutoShow | null;
243
245
  showVenueFilter?: boolean | null;
@@ -8,6 +8,7 @@ import type { ReactNode } from 'react';
8
8
  import type { RiverbankClient } from '../client/types';
9
9
  import type { RiverbankSiteConfig } from '../config/types';
10
10
  import type { Theme } from '../contracts';
11
+ import type { SdkThemeRuntime } from '../rendering/themeRuntime';
11
12
  import type { BlockOverrideRegistrations } from '../rendering/overrides';
12
13
  import type { Metadata } from '../metadata/generatePageMetadata';
13
14
  import type { LoadContentResult } from '../rendering/helpers/loadContent';
@@ -23,13 +24,11 @@ export interface CatchAllContext {
23
24
  /** Whether preview mode is enabled */
24
25
  preview: boolean;
25
26
  /**
26
- * Whether the SDK page renderer should wrap content in ThemeScope.
27
- *
28
- * This is the same `useThemeScope` value passed to `createCatchAllPage()`.
29
- * Preview mode should mirror this so SDK sites that fully own their styling
30
- * don't accidentally get CMS theme styling applied only while editing.
27
+ * Runtime wrapper used by the SDK page renderer.
28
+ * Preview mode mirrors this so editing and live rendering use the same
29
+ * visual theme/responsive infrastructure contract.
31
30
  */
32
- useThemeScope: boolean;
31
+ themeRuntime: SdkThemeRuntime;
33
32
  /** Search parameters from the URL (for filtering, pagination, etc.) */
34
33
  searchParams: Record<string, string | string[] | undefined>;
35
34
  }
@@ -279,13 +278,11 @@ export type CreateCatchAllPageOptions = {
279
278
  children: ReactNode;
280
279
  }) => ReactNode | Promise<ReactNode>;
281
280
  /**
282
- * Wrap page content in ThemeScope to inject theme CSS variables and styles.
283
- * Enable this to use built-in theme styling from the CMS.
284
- * Disable if you're bringing your own styles.
281
+ * Controls the runtime wrapper around rendered page content.
285
282
  *
286
- * @default false
283
+ * @default { kind: 'responsive-only' }
287
284
  */
288
- useThemeScope?: boolean;
285
+ themeRuntime?: SdkThemeRuntime;
289
286
  /**
290
287
  * Enable portal authentication for the reserved `/portal` customer route.
291
288
  *
@@ -1,6 +1,6 @@
1
1
  import React, { type ReactNode } from "react";
2
2
  import type { PreviewShellLayoutProps, PreviewShellProps, SdkPreviewModeProps } from "../../../../preview-next/src/client/index";
3
- export type { SdkPreviewModeContent, SdkPreviewModeProps, PreviewShellProps, PreviewShellLayoutProps, } from '../../../../preview-next/src/client/index';
3
+ export type { SdkPreviewModeContent, SdkPreviewModeProps, PreviewThemeRuntime, PreviewThemeResponsiveMode, PreviewShellProps, PreviewShellLayoutProps, } from '../../../../preview-next/src/client/index';
4
4
  type PreviewQueryProviderProps = Readonly<{
5
5
  children: ReactNode;
6
6
  }>;
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
+ import type { ThemeResponsiveMode } from '../../../theme-core/src/index';
2
3
  import type { Theme } from '../contracts';
3
4
  export type ThemeScopeProps = {
4
5
  theme: Theme;
5
6
  children?: React.ReactNode;
6
7
  themeId?: string;
7
- responsiveMode?: 'viewport' | 'container';
8
+ responsiveMode?: ThemeResponsiveMode;
8
9
  className?: string;
9
10
  };
10
11
  export declare function ThemeScope(props: ThemeScopeProps): React.ReactElement;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { buildMenu, buildFooterMenu, buildLogo } from '../../navigation';
7
7
  import type { RiverbankClient, SiteResponse } from '../../client/types';
8
+ import { type SdkThemeRuntime } from '../themeRuntime';
8
9
  export type HeaderData = {
9
10
  menu: ReturnType<typeof buildMenu>;
10
11
  logo: ReturnType<typeof buildLogo>;
@@ -40,15 +41,15 @@ export type LayoutProps = {
40
41
  /** Render stage for internal links and block transforms. */
41
42
  previewStage?: 'published' | 'preview';
42
43
  /**
43
- * Wrap layout content in ThemeScope to inject theme CSS variables and styles.
44
- * Enable this to use built-in theme styling from the CMS.
45
- * Disable if you're bringing your own styles and want to avoid SDK-injected theme variables.
44
+ * Controls the runtime wrapper around SDK layout content.
46
45
  *
47
- * Note: Disabling this while using the default header/footer (blocks) may result in unstyled output.
46
+ * - cms-theme: inject CMS theme variables and component CSS
47
+ * - responsive-only: keep the responsive utility root without CMS theme styles
48
+ * - none: render no SDK runtime wrapper; only safe with fully custom chrome
48
49
  *
49
- * @default true
50
+ * @default { kind: 'cms-theme' }
50
51
  */
51
- useThemeScope?: boolean;
52
+ themeRuntime?: SdkThemeRuntime;
52
53
  };
53
54
  /**
54
55
  * Layout component that wraps content with site header and footer.
@@ -85,4 +86,4 @@ export type LayoutProps = {
85
86
  * </Layout>
86
87
  * ```
87
88
  */
88
- export declare function Layout({ siteData: providedSiteData, client, siteId, slug, domain, children, header, footer, headerVariant, hasPortalSession, previewStage, useThemeScope, }: LayoutProps): Promise<import("react").JSX.Element>;
89
+ export declare function Layout({ siteData: providedSiteData, client, siteId, slug, domain, children, header, footer, headerVariant, hasPortalSession, previewStage, themeRuntime, }: LayoutProps): Promise<import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>>;
@@ -4,6 +4,7 @@ import type { ResolvedBlockData } from '../../data';
4
4
  import type { SiteBookingOfferingPresetSummary } from '../../public-api/contracts';
5
5
  import type { RuntimeSdkConfig } from '../helpers/loadPage';
6
6
  import { type ComponentRegistry } from '../blocks-page-renderer';
7
+ import { type SdkThemeRuntime } from '../themeRuntime';
7
8
  import type { BlockOverrides } from '../overrides';
8
9
  import type { SdkCustomBlock } from '../../config/types';
9
10
  export type PageProps = {
@@ -77,13 +78,11 @@ export type PageProps = {
77
78
  */
78
79
  blockOverrides?: BlockOverrides;
79
80
  /**
80
- * Wrap content in ThemeScope to inject theme CSS variables and styles.
81
- * Enable this to use built-in theme styling from the CMS.
82
- * Disable if you're bringing your own styles.
81
+ * Controls the runtime wrapper around page content.
83
82
  *
84
- * @default false
83
+ * @default { kind: 'none' }
85
84
  */
86
- useThemeScope?: boolean;
85
+ themeRuntime?: SdkThemeRuntime;
87
86
  };
88
87
  export type PageHydrationBootstrapConfig = {
89
88
  siteId: string;
@@ -91,4 +90,4 @@ export type PageHydrationBootstrapConfig = {
91
90
  mediaAssets?: readonly MediaAssetIndexItem[];
92
91
  };
93
92
  export declare function toPageHydrationBootstrapConfig(props: Pick<PageProps, 'siteId' | 'supabaseUrl' | 'mediaAssets'>): PageHydrationBootstrapConfig;
94
- export declare function PageContent({ page, theme, themeTokens: providedTokens, siteId, resolvedData, bookingOfferingPresets, routeMap, pagesByIdentifier, entriesByIdentifier, wrapBlock, registry, usePlaceholders, blockOverrides, sdkConfig, customBlocks, supabaseUrl, mediaAssets, apiBaseUrl, portalToken, previewToken, dataContext, useThemeScope, }: PageProps): ReactElement;
93
+ export declare function PageContent({ page, theme, themeTokens: providedTokens, siteId, resolvedData, bookingOfferingPresets, routeMap, pagesByIdentifier, entriesByIdentifier, wrapBlock, registry, usePlaceholders, blockOverrides, sdkConfig, customBlocks, supabaseUrl, mediaAssets, apiBaseUrl, portalToken, previewToken, dataContext, themeRuntime, }: PageProps): ReactElement;
@@ -8,6 +8,7 @@ export { Page } from './components/Page';
8
8
  export type { PageProps } from './components/Page';
9
9
  export { Layout } from './components/Layout';
10
10
  export type { LayoutProps, HeaderData, FooterData } from './components/Layout';
11
+ export type { SdkThemeResponsiveMode, SdkThemeRuntime, } from './themeRuntime';
11
12
  export { Block } from './components/Block';
12
13
  export type { BlockProps } from './components/Block';
13
14
  export { loadPage } from './helpers/loadPage';
@@ -6,6 +6,7 @@ export { Page } from './components/Page.server';
6
6
  export type { PageProps } from './components/Page.server';
7
7
  export { Layout } from './components/Layout';
8
8
  export type { LayoutProps, HeaderData, FooterData } from './components/Layout';
9
+ export type { SdkThemeResponsiveMode, SdkThemeRuntime, } from './themeRuntime';
9
10
  export { Block } from './components/Block.server';
10
11
  export type { BlockProps } from './components/Block.server';
11
12
  export { defineBlockOverrideRegistrations, defineBlockOverrides, defineLazyBlockOverride, } from './overrides';
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import type { ThemeResponsiveMode, ThemeRuntime } from '../../../theme-core/src/index';
3
+ import type { Theme } from '../contracts';
4
+ export type SdkThemeResponsiveMode = ThemeResponsiveMode;
5
+ export type SdkThemeRuntime = ThemeRuntime;
6
+ export declare const defaultLayoutThemeRuntime: {
7
+ readonly kind: "cms-theme";
8
+ };
9
+ export declare const defaultSdkChromeThemeRuntime: {
10
+ readonly kind: "responsive-only";
11
+ };
12
+ export declare const defaultPageThemeRuntime: {
13
+ readonly kind: "none";
14
+ };
15
+ export declare const defaultCatchAllThemeRuntime: {
16
+ readonly kind: "responsive-only";
17
+ };
18
+ export declare function planLayoutThemeRuntime(input: {
19
+ themeRuntime?: SdkThemeRuntime;
20
+ usesSdkChrome: boolean;
21
+ }): SdkThemeRuntime;
22
+ export declare function renderWithSdkThemeRuntime({ themeRuntime, theme, children, }: {
23
+ themeRuntime: SdkThemeRuntime;
24
+ theme: Theme;
25
+ children: React.ReactNode;
26
+ }): React.ReactElement;
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.89.1";
11
+ export declare const SDK_VERSION = "0.90.0";
@@ -406,6 +406,7 @@ export declare const upsertEventSeriesCommandSchema: z.ZodObject<{
406
406
  ref: z.ZodPipe<z.ZodString, z.ZodTransform<EventSeriesRef, string>>;
407
407
  input: z.ZodObject<{
408
408
  slug: z.ZodString;
409
+ path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
409
410
  title: z.ZodString;
410
411
  archetype: z.ZodEnum<{
411
412
  custom: "custom";
@@ -514,6 +515,11 @@ export declare const upsertEventSeriesCommandSchema: z.ZodObject<{
514
515
  paymentTerms: z.ZodOptional<z.ZodUnknown>;
515
516
  presentation: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
516
517
  tags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
518
+ blocks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
519
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
520
+ kind: z.ZodString;
521
+ content: z.ZodRecord<z.ZodString, z.ZodUnknown>;
522
+ }, z.core.$strict>>>>;
517
523
  staffRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<StaffRef, string>>>>>;
518
524
  }, z.core.$strict>;
519
525
  }, z.core.$strict>;
@@ -1366,6 +1372,7 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1366
1372
  ref: z.ZodPipe<z.ZodString, z.ZodTransform<EventSeriesRef, string>>;
1367
1373
  input: z.ZodObject<{
1368
1374
  slug: z.ZodString;
1375
+ path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1369
1376
  title: z.ZodString;
1370
1377
  archetype: z.ZodEnum<{
1371
1378
  custom: "custom";
@@ -1474,6 +1481,11 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1474
1481
  paymentTerms: z.ZodOptional<z.ZodUnknown>;
1475
1482
  presentation: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1476
1483
  tags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1484
+ blocks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
1485
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1486
+ kind: z.ZodString;
1487
+ content: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1488
+ }, z.core.$strict>>>>;
1477
1489
  staffRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<StaffRef, string>>>>>;
1478
1490
  }, z.core.$strict>;
1479
1491
  }, z.core.$strict>, z.ZodObject<{
@@ -2241,6 +2253,7 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
2241
2253
  ref: z.ZodPipe<z.ZodString, z.ZodTransform<EventSeriesRef, string>>;
2242
2254
  input: z.ZodObject<{
2243
2255
  slug: z.ZodString;
2256
+ path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2244
2257
  title: z.ZodString;
2245
2258
  archetype: z.ZodEnum<{
2246
2259
  custom: "custom";
@@ -2349,6 +2362,11 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
2349
2362
  paymentTerms: z.ZodOptional<z.ZodUnknown>;
2350
2363
  presentation: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2351
2364
  tags: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
2365
+ blocks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
2366
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2367
+ kind: z.ZodString;
2368
+ content: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2369
+ }, z.core.$strict>>>>;
2352
2370
  staffRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<StaffRef, string>>>>>;
2353
2371
  }, z.core.$strict>;
2354
2372
  }, z.core.$strict>, z.ZodObject<{
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { type ThemeResponsiveMode } from "./responsiveMode";
3
+ export type ResponsiveScopeProps = {
4
+ children: React.ReactNode;
5
+ responsiveMode?: ThemeResponsiveMode;
6
+ className?: string;
7
+ };
8
+ /**
9
+ * Structural responsive root for SDK/runtime chrome that opts out of CMS theme
10
+ * styling but still depends on scoped rb-* responsive utility classes.
11
+ */
12
+ export declare function ResponsiveScope({ children, responsiveMode, className, }: ResponsiveScopeProps): React.JSX.Element;
@@ -46,8 +46,8 @@ export declare const accordionSystemSchema: z.ZodObject<{
46
46
  elevation: z.ZodEnum<{
47
47
  medium: "medium";
48
48
  none: "none";
49
- low: "low";
50
49
  high: "high";
50
+ low: "low";
51
51
  }>;
52
52
  softness: z.ZodNullable<z.ZodEnum<{
53
53
  soft: "soft";
@@ -62,8 +62,8 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
62
62
  shadow: z.ZodEnum<{
63
63
  medium: "medium";
64
64
  none: "none";
65
- low: "low";
66
65
  high: "high";
66
+ low: "low";
67
67
  }>;
68
68
  textTransform: z.ZodEnum<{
69
69
  none: "none";
@@ -145,8 +145,8 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
145
145
  elevation: z.ZodEnum<{
146
146
  medium: "medium";
147
147
  none: "none";
148
- low: "low";
149
148
  high: "high";
149
+ low: "low";
150
150
  }>;
151
151
  softness: z.ZodNullable<z.ZodEnum<{
152
152
  soft: "soft";
@@ -103,8 +103,8 @@ export declare const cornerStyleSchema: z.ZodEnum<{
103
103
  export declare const shadowSizeSchema: z.ZodEnum<{
104
104
  medium: "medium";
105
105
  none: "none";
106
- low: "low";
107
106
  high: "high";
107
+ low: "low";
108
108
  }>;
109
109
  export declare const textTransformSchema: z.ZodEnum<{
110
110
  none: "none";
@@ -239,8 +239,8 @@ export declare const buttonGlobalSettingsSchema: z.ZodObject<{
239
239
  shadow: z.ZodEnum<{
240
240
  medium: "medium";
241
241
  none: "none";
242
- low: "low";
243
242
  high: "high";
243
+ low: "low";
244
244
  }>;
245
245
  textTransform: z.ZodEnum<{
246
246
  none: "none";
@@ -390,8 +390,8 @@ export declare const buttonVariantSchema: z.ZodObject<{
390
390
  elevation: z.ZodEnum<{
391
391
  medium: "medium";
392
392
  none: "none";
393
- low: "low";
394
393
  high: "high";
394
+ low: "low";
395
395
  }>;
396
396
  softness: z.ZodNullable<z.ZodEnum<{
397
397
  soft: "soft";
@@ -457,8 +457,8 @@ export declare const buttonSystemSchema: z.ZodObject<{
457
457
  shadow: z.ZodEnum<{
458
458
  medium: "medium";
459
459
  none: "none";
460
- low: "low";
461
460
  high: "high";
461
+ low: "low";
462
462
  }>;
463
463
  textTransform: z.ZodEnum<{
464
464
  none: "none";
@@ -540,8 +540,8 @@ export declare const buttonSystemSchema: z.ZodObject<{
540
540
  elevation: z.ZodEnum<{
541
541
  medium: "medium";
542
542
  none: "none";
543
- low: "low";
544
543
  high: "high";
544
+ low: "low";
545
545
  }>;
546
546
  softness: z.ZodNullable<z.ZodEnum<{
547
547
  soft: "soft";
@@ -189,8 +189,8 @@ export declare const cardVariantSchema: z.ZodObject<{
189
189
  elevation: z.ZodEnum<{
190
190
  medium: "medium";
191
191
  none: "none";
192
- low: "low";
193
192
  high: "high";
193
+ low: "low";
194
194
  }>;
195
195
  softness: z.ZodNullable<z.ZodEnum<{
196
196
  soft: "soft";
@@ -297,8 +297,8 @@ export declare const cardSystemSchema: z.ZodObject<{
297
297
  elevation: z.ZodEnum<{
298
298
  medium: "medium";
299
299
  none: "none";
300
- low: "low";
301
300
  high: "high";
301
+ low: "low";
302
302
  }>;
303
303
  softness: z.ZodNullable<z.ZodEnum<{
304
304
  soft: "soft";
@@ -7,10 +7,12 @@ export * from "./schema";
7
7
  export * from "./fonts";
8
8
  export { ThemeScope } from "./ThemeScope";
9
9
  export { DEFAULT_THEME_RESPONSIVE_MODE, THEME_RESPONSIVE_CONTAINER_NAME, getResponsiveScopeSpec, type ResponsiveScopeSpec, type ThemeResponsiveMode, } from "./responsiveMode";
10
+ export { type ThemeRuntime } from "./themeRuntime";
10
11
  export { desktopOnlyDisplay, mobileOnlyDisplay, type ResponsiveDisplay, } from "./responsiveDisplay";
11
12
  export * from "./responsive/breakpoints";
12
13
  export { ThemeFontLoader, ThemeFontLoaderFromTheme, getThemeFontLoadingOptions, type ThemeFontLoadingOptions, type ThemeFontLoaderFromThemeProps, } from "./ThemeFontLoader";
13
14
  export { ThemeScopeCore, type ThemeScopeCoreProps } from "./ThemeScopeCore";
15
+ export { ResponsiveScope, type ResponsiveScopeProps } from "./ResponsiveScope";
14
16
  export { type ThemeDataAttrs } from "./themeScopeUtils";
15
17
  export { SITE_CHROME_CLASS_NAMES, getStandaloneHeaderShellClassName, planSiteDocument, planSiteTopShell, renderSiteTopChrome, SITE_CHROME_VISIBLE_HEADER_ATTR, SITE_CHROME_VISIBLE_HEADER_SELECTOR, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, SITE_OVERLAY_HEADER_CLEARANCE_FALLBACK, visibleHeaderClearancePx, type HeaderMeasurementBox, type SiteChromeLayoutNodes, type SiteDocumentLayoutMode, type SiteDocumentPlan, type SiteDocumentPlanInput, type SiteTopShellPlan, type SiteTopShellBehavior, type SiteOverlayHeaderClearancePlan, } from "./siteChrome";
16
18
  export { SITE_CHROME_PLACEMENT_CLASSES, isHeaderPositioning, parseHeaderPositioning, planSiteChromePlacement, splitSiteChromePlacementClasses, type SiteChromePlacementPlan, } from "./siteChromePlacement";