@riverbankcms/sdk 0.89.1 → 0.90.1

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 (178) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-FNFRVSIM.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-3WXJFQXG.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-2UCIMKUB.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/bookingConfig.d.ts +3 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  9. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  10. package/dist/_dts/api/src/bookings.d.ts +3 -1
  11. package/dist/_dts/api/src/event-listing-destination.d.ts +59 -0
  12. package/dist/_dts/api/src/index.d.ts +10 -5
  13. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +0 -1
  14. package/dist/_dts/api/src/navigation.d.ts +2 -0
  15. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +18 -6
  16. package/dist/_dts/api/src/request.d.ts +21 -0
  17. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  18. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  19. package/dist/_dts/api/src/settings/permissions.d.ts +273 -0
  20. package/dist/_dts/api/src/types.d.ts +4 -1
  21. package/dist/_dts/api/src/url.d.ts +6 -3
  22. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  27. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  28. package/dist/_dts/blocks/src/index.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +60 -2
  31. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +16 -5
  32. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  33. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -9
  34. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  36. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  38. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  39. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  40. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  41. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  42. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +7 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +48 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  58. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/destination.d.ts +8 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  65. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  66. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  67. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  68. package/dist/_dts/core/src/event-pricing.d.ts +12 -2
  69. package/dist/_dts/core/src/money-input.d.ts +18 -0
  70. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  71. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  72. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  73. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  74. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  75. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  76. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  77. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  78. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  79. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  80. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  82. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  83. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  84. package/dist/_dts/sdk/src/components.d.ts +1 -0
  85. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  86. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  87. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  88. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  89. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  90. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  91. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  92. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  93. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  94. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +11 -1
  95. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  96. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  97. package/dist/_dts/sdk/src/version.d.ts +1 -1
  98. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  99. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  100. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  101. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  102. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  103. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  104. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  105. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  106. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  107. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  109. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  110. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  111. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  112. package/dist/{chunk-7YUAXONX.mjs → chunk-CR2VX432.mjs} +1563 -877
  113. package/dist/{chunk-HKJQERFR.mjs → chunk-FA6LVZ7C.mjs} +91 -55
  114. package/dist/{chunk-TGBJWKMP.mjs → chunk-H6TT5ZXI.mjs} +9 -1
  115. package/dist/{chunk-ZQRBLCW5.mjs → chunk-SYYJZPKU.mjs} +2 -2
  116. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  117. package/dist/cli/index.mjs +1057 -632
  118. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  119. package/dist/cli/init-docs/content/content-management.md +27 -0
  120. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-4K7VGZ3I.mjs} +2 -2
  121. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-3QXA3CIS.mjs} +26 -271
  122. package/dist/client/bookings.mjs +1586 -825
  123. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-BEJKNGQ7.mjs} +3 -3
  124. package/dist/client/{cart-6XHSZK23.mjs → cart-44BBM6XG.mjs} +7 -8
  125. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-THMHEYKF.mjs} +7 -8
  126. package/dist/client/{chunk-25W2EQUN.mjs → chunk-3H5CLFKT.mjs} +8 -0
  127. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-4COPESPO.mjs} +13 -16
  128. package/dist/client/chunk-5AJIMWKS.mjs +436 -0
  129. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-B4H6QMPY.mjs} +157 -49
  130. package/dist/client/{chunk-VGLXACVK.mjs → chunk-DQIRKNZE.mjs} +1 -1
  131. package/dist/client/{chunk-7DH35FGA.mjs → chunk-EJBHK74Y.mjs} +1 -1
  132. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  133. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-JV7ZNAOU.mjs} +378 -111
  134. package/dist/client/{chunk-FHU6PFPM.mjs → chunk-KNTLBQ3N.mjs} +1 -1
  135. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-PEDNDLPB.mjs} +4 -4
  136. package/dist/client/{chunk-EY42X22F.mjs → chunk-SLY6UDAS.mjs} +157 -5
  137. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  138. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-ZIAF2DA4.mjs} +1 -1
  139. package/dist/client/client.mjs +3552 -2898
  140. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-URX7RCCK.mjs} +20 -58
  141. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-GTENOQCE.mjs} +10 -11
  142. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-EZVB72MF.mjs} +10 -11
  143. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-CH4BJR5Z.mjs} +10 -11
  144. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-4BVOI5HS.mjs} +10 -11
  145. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-37LPIKIE.mjs} +10 -11
  146. package/dist/client/{form-WZZFFGMU.mjs → form-FX3Y54YK.mjs} +7 -7
  147. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-UOZZGVYL.mjs} +3 -3
  148. package/dist/client/hooks.mjs +1169 -1063
  149. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-VSIPKV35.mjs} +3 -3
  150. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-6FRJKNAF.mjs} +5 -5
  151. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-6AHMLXCO.mjs} +7 -8
  152. package/dist/client/{productList-5ABEMKUG.mjs → productList-M2CYIZVH.mjs} +7 -8
  153. package/dist/client/rendering/client.mjs +2912 -2316
  154. package/dist/client/rendering/islands.mjs +19 -19
  155. package/dist/client/rendering.mjs +2874 -2230
  156. package/dist/client/{shop-OMMQZ6YO.mjs → shop-AUOT6GEX.mjs} +7 -8
  157. package/dist/client/spam-protection.mjs +4 -5
  158. package/dist/preview-next/before-render.mjs +2 -2
  159. package/dist/preview-next/client/runtime.mjs +5 -5
  160. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-6GPJNLU6.mjs} +6 -6
  161. package/dist/server/components.mjs +1856 -1509
  162. package/dist/server/config-validation.mjs +1394 -1288
  163. package/dist/server/config.mjs +1394 -1288
  164. package/dist/server/data.mjs +1169 -1063
  165. package/dist/server/index.mjs +135 -100
  166. package/dist/server/navigation.mjs +20 -30
  167. package/dist/server/next.mjs +1936 -1576
  168. package/dist/server/page-converter.mjs +1081 -967
  169. package/dist/server/prebuild.mjs +1 -1
  170. package/dist/server/rendering/server.mjs +1868 -1521
  171. package/dist/server/rendering.mjs +1878 -1531
  172. package/dist/server/routing.mjs +1248 -1089
  173. package/dist/server/server.mjs +1312 -1171
  174. package/dist/server/theme-bridge.mjs +8 -5
  175. package/package.json +3 -3
  176. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  177. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  178. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -0,0 +1,24 @@
1
+ import type { PublicMembershipProduct, PublicPassProduct } from '../../../../blocks/shop.shared';
2
+ export type EventProductEligibilityTarget = Readonly<{
3
+ requiresRegistration: boolean;
4
+ acceptsPasses?: boolean | null;
5
+ acceptsMemberships?: boolean | null;
6
+ eventCategory?: {
7
+ id: string;
8
+ } | null;
9
+ }>;
10
+ /**
11
+ * Filter site passes to only those that cover the selected event.
12
+ *
13
+ * Public purchasable products are a pre-auth proxy for whether the pass path is
14
+ * worth advertising; owned pass eligibility is checked later after portal auth.
15
+ */
16
+ export declare function filterPassesForEvent<TPass extends PublicPassProduct>(sitePasses: readonly TPass[] | null | undefined, event: EventProductEligibilityTarget | null): TPass[];
17
+ /**
18
+ * Filter site memberships to only those that cover the selected event.
19
+ *
20
+ * Public purchasable products are a pre-auth proxy for whether the membership
21
+ * path is worth advertising; owned membership eligibility is checked later
22
+ * after portal auth.
23
+ */
24
+ export declare function filterMembershipsForEvent<TMembership extends PublicMembershipProduct>(siteMemberships: readonly TMembership[] | null | undefined, event: EventProductEligibilityTarget | null): TMembership[];
@@ -1,6 +1,9 @@
1
1
  import type { PublicEventPricing } from '../../../../../../../core/src/index';
2
2
  import type { PublicEventTicketType } from '../../../../blocks/events/shared/types';
3
3
  type RuntimeEventPricingSource = {
4
+ destination?: unknown;
5
+ eventDestinationMode?: unknown;
6
+ path?: unknown;
4
7
  pricing?: unknown;
5
8
  requiresRegistration?: boolean | null;
6
9
  pricingType?: unknown;
@@ -79,9 +79,16 @@ export declare function formatEventPriceDisplay(pricing: PublicEventPricing<unkn
79
79
  export type ResolvedEventCta = {
80
80
  label: string;
81
81
  href: string;
82
+ external: boolean;
82
83
  /** True when the CTA should be hidden (e.g. sold-out events) */
83
84
  hidden: boolean;
84
85
  };
86
+ export declare function resolveEventHref(event: PublicEvent): string;
87
+ export declare function resolveEventLinkProps(event: PublicEvent): {
88
+ href: string;
89
+ target?: '_blank';
90
+ rel?: string;
91
+ };
85
92
  /**
86
93
  * Resolve the CTA state for an event.
87
94
  * Shared by EventCard and EventCompactRow to keep sold-out, registration-closed,
@@ -20,12 +20,15 @@ export declare const eventLayoutSchema: z.ZodEnum<{
20
20
  stack: "stack";
21
21
  }>;
22
22
  export declare const eventCalendarDisplayModeSchema: z.ZodEnum<{
23
- week: "week";
24
- month: "month";
25
23
  combined: "combined";
24
+ calendar: "calendar";
26
25
  list: "list";
27
26
  timetable: "timetable";
28
27
  }>;
28
+ export declare const eventCalendarDefaultViewSchema: z.ZodEnum<{
29
+ week: "week";
30
+ month: "month";
31
+ }>;
29
32
  export declare const columnOptionSchema: z.ZodEnum<{
30
33
  2: "2";
31
34
  3: "3";
@@ -1,5 +1,5 @@
1
1
  import { type Brand, type Result } from '../../../../../core/src/index';
2
- import type { DiscountsAvailableRequest, DiscountsAvailableResponse, ShopCheckoutRequest, UnifiedCheckoutItem, UnifiedCheckoutRequest } from '../api/types';
2
+ import type { AutoAppliedDiscountPreview, DiscountsAvailableRequest, DiscountsAvailableResponse, ShopCheckoutRequest, UnifiedCheckoutItem, UnifiedCheckoutRequest } from '../api/types';
3
3
  import type { CommerceCheckoutState } from './shop-commerce.shared';
4
4
  export type ManualDiscountCode = Brand<string, 'ManualDiscountCode'>;
5
5
  export type CheckoutContactForm = Readonly<{
@@ -41,7 +41,7 @@ export type CartDiscountUiState = Readonly<{
41
41
  type: 'manual-allowed';
42
42
  }> | Readonly<{
43
43
  type: 'auto-only';
44
- autoAppliedDiscount: DiscountsAvailableResponse['autoAppliedDiscount'];
44
+ autoAppliedDiscount: AutoAppliedDiscountPreview | null;
45
45
  }> | Readonly<{
46
46
  type: 'error-unavailable';
47
47
  }>;
@@ -1 +1,2 @@
1
1
  export * from './types';
2
+ export * from './sdkBlocks';
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ export declare function createSdkEntrySlotBlockInputSchema(contentSchema?: z.ZodType<Record<string, unknown>>): z.ZodObject<{
3
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4
+ kind: z.ZodString;
5
+ content: z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>;
6
+ }, z.core.$strip>;
7
+ export declare function createSdkEntrySlotBlocksInputSchema(contentSchema?: z.ZodType<Record<string, unknown>>): z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
8
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
9
+ kind: z.ZodString;
10
+ content: z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>;
11
+ }, z.core.$strip>>>;
12
+ export declare const sdkEntrySlotBlockInputSchema: z.ZodObject<{
13
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14
+ kind: z.ZodString;
15
+ content: z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>;
16
+ }, z.core.$strip>;
17
+ export declare const sdkEntrySlotBlocksInputSchema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
18
+ identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
+ kind: z.ZodString;
20
+ content: z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>;
21
+ }, z.core.$strip>>>;
@@ -313,6 +313,12 @@ export type SdkEntryBlocksPatchParseError = Readonly<{
313
313
  kind: 'invalid-block';
314
314
  slotKey: SlotKey;
315
315
  blockIndex: number;
316
+ }> | Readonly<{
317
+ kind: 'duplicate-block-identifier';
318
+ slotKey: SlotKey;
319
+ identifier: string;
320
+ firstBlockIndex: number;
321
+ blockIndex: number;
316
322
  }> | Readonly<{
317
323
  kind: 'template-only-block-kind';
318
324
  slotKey: SlotKey;
@@ -320,6 +326,7 @@ export type SdkEntryBlocksPatchParseError = Readonly<{
320
326
  blockKind: string;
321
327
  }>;
322
328
  export declare function parseSdkEntryBlocksPatch(blocks: unknown): EntrySlotResult<SdkEntryBlocksPatch, SdkEntryBlocksPatchParseError>;
329
+ export declare function describeSdkEntryBlocksPatchParseError(error: SdkEntryBlocksPatchParseError): string;
323
330
  export type SlotContainerOwner = Readonly<{
324
331
  kind: 'contentEntry';
325
332
  contentEntryId: EntrySlotContentEntryId;
@@ -1,7 +1,7 @@
1
1
  import { type CurrencyDecimals } from "./currency-format";
2
2
  export declare const EVENT_PRICING_MODES: readonly ["single", "ticket_types"];
3
3
  export type EventPricingMode = (typeof EVENT_PRICING_MODES)[number];
4
- export type PublicEventPricingType = "free" | "paid";
4
+ export type PublicEventPricingType = "free" | "paid" | "external";
5
5
  export type PublicCoursePriceDisplay = Readonly<{
6
6
  kind: "free";
7
7
  currency: string;
@@ -26,6 +26,10 @@ export type PublicEventExactPriceDisplay = Readonly<{
26
26
  amount: number;
27
27
  currency: string;
28
28
  }>;
29
+ export type PublicEventExternalPriceDisplay = Readonly<{
30
+ kind: "external";
31
+ label: string;
32
+ }>;
29
33
  export type PublicEventTicketTypePriceDisplay = PublicEventFreePriceDisplay | PublicEventExactPriceDisplay | Readonly<{
30
34
  kind: "from";
31
35
  amount: number;
@@ -44,7 +48,7 @@ export type PublicEventTicketTypePriceDisplay = PublicEventFreePriceDisplay | Pu
44
48
  kind: "unavailable";
45
49
  currency: string;
46
50
  }>;
47
- export type PublicEventPriceDisplay = PublicEventTicketTypePriceDisplay | Readonly<{
51
+ export type PublicEventPriceDisplay = PublicEventTicketTypePriceDisplay | PublicEventExternalPriceDisplay | Readonly<{
48
52
  kind: "course";
49
53
  display: PublicCoursePriceDisplay;
50
54
  }>;
@@ -72,6 +76,12 @@ export type PublicEventPricing<TTicketType = never> = Readonly<{
72
76
  kind: "course";
73
77
  display: PublicCoursePriceDisplay;
74
78
  }>;
79
+ }> | Readonly<{
80
+ kind: "external";
81
+ display: Readonly<{
82
+ kind: "external";
83
+ label: string;
84
+ }>;
75
85
  }>;
76
86
  export declare function isEventPricingMode(value: unknown): value is EventPricingMode;
77
87
  export declare function publicEventPricingDisplay(pricing: PublicEventPricing<unknown>): PublicEventPriceDisplay;
@@ -1,6 +1,24 @@
1
+ import type { Brand } from './branded';
2
+ import { type Result } from './result';
3
+ export type PositiveMoneyCents = Brand<number, 'PositiveMoneyCents'>;
4
+ export type NonNegativeMoneyCents = Brand<number, 'NonNegativeMoneyCents'>;
5
+ export type MoneyInputParseError = Readonly<{
6
+ kind: 'empty';
7
+ }> | Readonly<{
8
+ kind: 'invalid-number';
9
+ }> | Readonly<{
10
+ kind: 'negative';
11
+ }> | Readonly<{
12
+ kind: 'zero-not-allowed';
13
+ }>;
1
14
  export type ParseMoneyInputToCentsOptions = Readonly<{
2
15
  allowZero?: boolean;
3
16
  stripFormatting?: boolean;
4
17
  }>;
18
+ export type ParseStrictMoneyInputToCentsOptions = Readonly<{
19
+ stripFormatting?: boolean;
20
+ }>;
21
+ export declare function parsePositiveMoneyInputToCents(value: string, options?: ParseStrictMoneyInputToCentsOptions): Result<PositiveMoneyCents, MoneyInputParseError>;
22
+ export declare function parseNonNegativeMoneyInputToCents(value: string, options?: ParseStrictMoneyInputToCentsOptions): Result<NonNegativeMoneyCents, MoneyInputParseError>;
5
23
  export declare function parseMoneyInputToCents(value: string, options?: ParseMoneyInputToCentsOptions): number | null;
6
24
  export declare function formatMoneyInputFromCents(amountCents: number | null | undefined): string;
@@ -16200,6 +16200,19 @@ export type Database = {
16200
16200
  target_kind: string;
16201
16201
  }[];
16202
16202
  };
16203
+ claim_site_invitation_resend: {
16204
+ Args: {
16205
+ p_actor_user_id: string;
16206
+ p_attempt_id: string;
16207
+ p_claim_expires_at: string;
16208
+ p_cooldown_seconds?: number;
16209
+ p_expires_at: string;
16210
+ p_invitation_id: string;
16211
+ p_site_id: string;
16212
+ p_token_hash: string;
16213
+ };
16214
+ Returns: Json;
16215
+ };
16203
16216
  commit_content_draft_version: {
16204
16217
  Args: {
16205
16218
  p_data: Json;
@@ -16497,6 +16510,16 @@ export type Database = {
16497
16510
  count: number;
16498
16511
  }[];
16499
16512
  };
16513
+ finalize_site_invitation_resend: {
16514
+ Args: {
16515
+ p_actor_user_id: string;
16516
+ p_attempt_id: string;
16517
+ p_invitation_id: string;
16518
+ p_resent_at: string;
16519
+ p_site_id: string;
16520
+ };
16521
+ Returns: Json;
16522
+ };
16500
16523
  get_auth_user_id_by_email: {
16501
16524
  Args: {
16502
16525
  p_email: string;
@@ -16920,6 +16943,24 @@ export type Database = {
16920
16943
  order_id: string;
16921
16944
  }[];
16922
16945
  };
16946
+ postgres_fdw_disconnect: {
16947
+ Args: {
16948
+ "": string;
16949
+ };
16950
+ Returns: boolean;
16951
+ };
16952
+ postgres_fdw_disconnect_all: {
16953
+ Args: never;
16954
+ Returns: boolean;
16955
+ };
16956
+ postgres_fdw_get_connections: {
16957
+ Args: never;
16958
+ Returns: Record<string, unknown>[];
16959
+ };
16960
+ postgres_fdw_handler: {
16961
+ Args: never;
16962
+ Returns: unknown;
16963
+ };
16923
16964
  read_published_runtime_cache_entry: {
16924
16965
  Args: {
16925
16966
  p_cache_key: string;
@@ -16964,6 +17005,15 @@ export type Database = {
16964
17005
  isSetofReturn: false;
16965
17006
  };
16966
17007
  };
17008
+ release_site_invitation_resend_claim: {
17009
+ Args: {
17010
+ p_actor_user_id: string;
17011
+ p_attempt_id: string;
17012
+ p_invitation_id: string;
17013
+ p_site_id: string;
17014
+ };
17015
+ Returns: Json;
17016
+ };
16967
17017
  remove_category_from_memberships: {
16968
17018
  Args: {
16969
17019
  category_id: string;
@@ -14,6 +14,7 @@ export type MediaEditorProps = {
14
14
  cropEditorMode?: 'dialog' | 'inline';
15
15
  cropEditorAutoOpen?: boolean;
16
16
  mediaPickerAutoOpen?: boolean;
17
+ onMediaPickerOpenChange?: (open: boolean) => void;
17
18
  mediaPickerDialogMaxWidth?: string;
18
19
  mediaPickerPolicy?: MediaPickerPolicy;
19
20
  showPreview?: boolean;
@@ -29,4 +30,4 @@ export type MediaEditorProps = {
29
30
  videoPrepIntent?: VideoPrepIntentResolver;
30
31
  videoSelectionIntent?: VideoPrepIntent;
31
32
  };
32
- export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, mediaPickerDialogMaxWidth, mediaPickerPolicy, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, onUploadComplete, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react").JSX.Element;
33
+ export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, onMediaPickerOpenChange, mediaPickerDialogMaxWidth, mediaPickerPolicy, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, onUploadComplete, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react").JSX.Element;
@@ -5,6 +5,7 @@ type MediaEditorFieldUi = {
5
5
  cropEditorMode?: 'dialog' | 'inline';
6
6
  cropEditorAutoOpen?: boolean;
7
7
  mediaPickerAutoOpen?: boolean;
8
+ onMediaPickerOpenChange?: (open: boolean) => void;
8
9
  showMediaPreview?: boolean;
9
10
  showMediaOverlayActions?: boolean;
10
11
  mediaPreviewMaxWidth?: 'xs' | 'sm' | 'md' | 'none';
@@ -19,6 +20,11 @@ export declare function withRepeaterThumbnailMediaFieldUi<T extends MediaEditorF
19
20
  }): (T & {
20
21
  ui: MediaEditorFieldUi;
21
22
  }) | null;
23
+ export declare function withRepeaterThumbnailPickerOnlyMediaFieldUi<T extends MediaEditorFieldLike>(field: T | null | undefined, options?: {
24
+ onMediaPickerOpenChange?: (open: boolean) => void;
25
+ }): (T & {
26
+ ui: MediaEditorFieldUi;
27
+ }) | null;
22
28
  export declare function withRepeaterStackMediaFieldUi<T extends MediaEditorFieldLike>(field: T): T & {
23
29
  ui: MediaEditorFieldUi;
24
30
  };
@@ -13,6 +13,6 @@ export { MediaEditorContextProvider, useMediaEditor, useMediaEditorOptional, typ
13
13
  export { MediaEditorProvider } from './provider';
14
14
  export type { MediaEditorProviderProps } from './provider';
15
15
  export { createMediaEditorProvider } from './createMediaEditorProvider';
16
- export { withRepeaterStackMediaFieldUi, withRepeaterThumbnailMediaFieldUi } from './fieldUi';
16
+ export { withRepeaterStackMediaFieldUi, withRepeaterThumbnailMediaFieldUi, withRepeaterThumbnailPickerOnlyMediaFieldUi, } from './fieldUi';
17
17
  export type { MediaValue, MediaTransform, MediaHotspot } from './types';
18
18
  export { DEFAULT_HOTSPOT } from './utils';
@@ -12,6 +12,7 @@ export type { PreviewDesignRow, PreviewSidebarOpenRequest, PreviewSidebarTab, }
12
12
  export { getPreviewSidebarTab, onPreviewSidebarOpenRequest, requestPreviewSidebarOpen, setPreviewSidebarTab, } from "./preview/sidebarTabPreference";
13
13
  export type { PreviewViewportControlsProps, ViewportMode, ViewportWidth, } from "./preview/PreviewViewportControls";
14
14
  export { PreviewViewportControls } from "./preview/PreviewViewportControls";
15
+ export type { PreviewThemeResponsiveMode, PreviewThemeRuntime, } from "./preview/themeRuntime";
15
16
  export { PreviewZoomControls } from "./preview/PreviewZoomControls";
16
17
  export { PreviewEditorUI } from "./preview/PreviewEditorUI";
17
18
  export { PreviewOpenEditorButton } from "./preview/PreviewOpenEditorButton";
@@ -8,6 +8,7 @@ import type { ContentTypeSchema } from '../../../../content-model/src/index';
8
8
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
9
9
  import type { SurfaceId } from '../../../../surfaces/src/index';
10
10
  import { type PreviewBlock, type PreviewContentEntryData, type PreviewPageMetadata } from './PreviewEntryControllerProvider';
11
+ import { type PreviewThemeRuntime } from './themeRuntime';
11
12
  import type { PreviewEditorSidebarProps, PreviewTemplateData } from './PreviewEditorSidebar';
12
13
  import { type PreviewRuntimeSession } from '../../auth-contract';
13
14
  type BaseFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
@@ -71,11 +72,11 @@ export type PreviewShellProps = {
71
72
  mediaAssets?: MediaAssetIndexItem[];
72
73
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
73
74
  supabaseUrl?: string;
74
- useThemeScope?: boolean;
75
+ themeRuntime?: PreviewThemeRuntime;
75
76
  designEditorEligibility?: PreviewDesignEditorEligibility;
76
77
  baseFetch?: BaseFetch;
77
78
  };
78
- export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionTypographyPresetId, themeSelectionTypographyBodyFontOverride, themeSelectionTypographyHeadingFontOverride, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): React.JSX.Element;
79
+ export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionTypographyPresetId, themeSelectionTypographyBodyFontOverride, themeSelectionTypographyHeadingFontOverride, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime, designEditorEligibility, baseFetch, }: PreviewShellProps): React.JSX.Element;
79
80
  export declare function defaultDesignEditorEligibility(input: Readonly<{
80
81
  pageId: string | null;
81
82
  entryData?: PreviewContentEntryData | null;
@@ -9,6 +9,7 @@ import type { SdkConfigForBlockPicker } from "../../../../editor-blocks/src/inde
9
9
  import type { SurfaceId } from "../../../../surfaces/src/index";
10
10
  import { type PreviewEntryData, type PreviewTemplateData } from "./PreviewEditorSidebar";
11
11
  import type { SiteStyleAccess } from "./siteStyleAccess";
12
+ import { type PreviewThemeRuntime } from "./themeRuntime";
12
13
  export type PreviewShellLayoutProps = {
13
14
  children: ReactNode;
14
15
  theme: Theme;
@@ -47,7 +48,7 @@ export type PreviewShellLayoutProps = {
47
48
  sdkConfig?: SdkConfigForBlockPicker | null;
48
49
  mediaAssets?: MediaAssetIndexItem[];
49
50
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
50
- useThemeScope?: boolean;
51
+ themeRuntime?: PreviewThemeRuntime;
51
52
  siteStyleAccess?: SiteStyleAccess;
52
53
  };
53
- export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionTypographyPresetId, themeSelectionTypographyBodyFontOverride, themeSelectionTypographyHeadingFontOverride, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): React.JSX.Element;
54
+ export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionTypographyPresetId, themeSelectionTypographyBodyFontOverride, themeSelectionTypographyHeadingFontOverride, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime, siteStyleAccess, }: PreviewShellLayoutProps): React.JSX.Element;
@@ -1,9 +1,10 @@
1
1
  import React, { type ReactElement, type ReactNode } from "react";
2
2
  import { type SiteChromeRenderModel } from "../../../../blocks/src/client/site-chrome";
3
3
  import type { ViewportMode } from "./PreviewViewportControls";
4
- export declare function PreviewThemedSiteDocument({ children, useThemeScope, useContainerResponsiveMode, viewportMode, viewportWidth, scale, contentHeight, scaleContainerRef, contentRef, staticHeaderNode, bannerNode, staticFooterNode, siteChromeRenderModel, }: {
4
+ import { type PreviewThemeRuntime } from "./themeRuntime";
5
+ export declare function PreviewThemedSiteDocument({ children, themeRuntime, useContainerResponsiveMode, viewportMode, viewportWidth, scale, contentHeight, scaleContainerRef, contentRef, staticHeaderNode, bannerNode, staticFooterNode, siteChromeRenderModel, }: {
5
6
  children: ReactNode;
6
- useThemeScope: boolean;
7
+ themeRuntime?: PreviewThemeRuntime;
7
8
  useContainerResponsiveMode: boolean;
8
9
  viewportMode: ViewportMode;
9
10
  viewportWidth: number | "full";
@@ -1,4 +1,4 @@
1
- import { default as React, type ReactNode } from 'react';
1
+ import { type ReactElement, type ReactNode } from 'react';
2
2
  export type SiteChromeEditableSurfaceKind = 'header' | 'footer';
3
3
  type SiteChromeEditableSurfaceProps = Readonly<{
4
4
  surface: SiteChromeEditableSurfaceKind;
@@ -12,5 +12,5 @@ type SiteChromeEditableSurfaceProps = Readonly<{
12
12
  */
13
13
  preserveSingleComponentRoot?: boolean;
14
14
  }>;
15
- export declare function SiteChromeEditableSurface({ surface, children, preserveSingleComponentRoot, }: SiteChromeEditableSurfaceProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
15
+ export declare function SiteChromeEditableSurface({ surface, children, preserveSingleComponentRoot, }: SiteChromeEditableSurfaceProps): ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
16
16
  export {};
@@ -0,0 +1,6 @@
1
+ import type { ThemeResponsiveMode, ThemeRuntime } from '../../../../theme-core/src/index';
2
+ export type PreviewThemeResponsiveMode = ThemeResponsiveMode;
3
+ export type PreviewThemeRuntime = ThemeRuntime;
4
+ export declare const defaultPreviewThemeRuntime: {
5
+ readonly kind: "cms-theme";
6
+ };
@@ -1,6 +1,7 @@
1
1
  import type { MediaAssetIndexItem } from "../../../../blocks/src/index";
2
2
  import type { SurfaceId } from "../../../../surfaces/src/index";
3
3
  import type { PreviewRuntimeSession } from "../../auth-contract";
4
+ import type { PreviewThemeRuntime } from "../preview/themeRuntime";
4
5
  export { SdkPreviewModeRuntime as SdkPreviewMode } from "./SdkPreviewModeRuntime";
5
6
  export type SdkPreviewModeContent = {
6
7
  page: unknown;
@@ -27,5 +28,5 @@ export type SdkPreviewModeProps = {
27
28
  previewToken: string;
28
29
  content: SdkPreviewModeContent;
29
30
  blockOverrides?: unknown;
30
- useThemeScope?: boolean;
31
+ themeRuntime?: PreviewThemeRuntime;
31
32
  };
@@ -0,0 +1,10 @@
1
+ import type { OutputContext } from '../output';
2
+ export type DatedOfferingPullScope = 'venues' | 'event-categories' | 'events' | 'courses';
3
+ export declare function isDatedOfferingPullScope(scope: string): scope is DatedOfferingPullScope;
4
+ export declare function filterPullItemsByIdentifier<TItem>(items: readonly TItem[], identifier: string | undefined, getIdentifier: (item: TItem) => string): TItem[];
5
+ export declare function reportMissingScopedPullItem(input: Readonly<{
6
+ output: OutputContext;
7
+ scope: DatedOfferingPullScope;
8
+ identifier: string | undefined;
9
+ found: boolean;
10
+ }>): boolean;
@@ -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;