@riverbankcms/sdk 0.88.0 → 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 (198) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-EVRS3C7T.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-54WD4IGE.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/accessAdmin.d.ts +7 -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/endpoints.d.ts +8 -0
  12. package/dist/_dts/api/src/index.d.ts +7 -6
  13. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
  14. package/dist/_dts/api/src/request.d.ts +21 -0
  15. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  16. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  17. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  18. package/dist/_dts/api/src/siteMembers.d.ts +6 -1
  19. package/dist/_dts/api/src/types.d.ts +4 -2
  20. package/dist/_dts/api/src/url.d.ts +6 -3
  21. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  22. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  25. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  27. package/dist/_dts/blocks/src/index.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
  30. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  31. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  32. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  33. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  34. package/dist/_dts/blocks/src/system/icons/cta.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/icons/index.d.ts +1 -0
  36. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -2
  37. package/dist/_dts/blocks/src/system/icons/semantic.d.ts +3 -3
  38. package/dist/_dts/blocks/src/system/icons/svg.d.ts +72 -0
  39. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  40. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +18 -5
  42. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  43. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/hooks/loadStateError.d.ts +1 -0
  45. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -1
  46. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.state.d.ts +55 -0
  47. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.state.d.ts +39 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.d.ts +4 -27
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.state.d.ts +40 -0
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +20 -0
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.state.d.ts +31 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +3 -3
  53. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.state.d.ts +39 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +24 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +24 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  75. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  76. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +35 -0
  77. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  78. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  79. package/dist/_dts/content-model/src/entry-slots/types.d.ts +61 -0
  80. package/dist/_dts/core/src/branded.d.ts +7 -0
  81. package/dist/_dts/core/src/index.d.ts +1 -0
  82. package/dist/_dts/core/src/money-input.d.ts +18 -0
  83. package/dist/_dts/core/src/site-route-target.d.ts +40 -0
  84. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +209 -2
  85. package/dist/_dts/media-core/src/fileDomain.d.ts +4 -0
  86. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  87. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  88. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  89. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  90. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  91. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  92. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  93. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  94. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  95. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  96. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  97. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  98. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  99. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +160 -0
  100. package/dist/_dts/sdk/src/client/types.d.ts +26 -1
  101. package/dist/_dts/sdk/src/components.d.ts +1 -0
  102. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  103. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  104. package/dist/_dts/sdk/src/index.d.ts +3 -1
  105. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  106. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  107. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  108. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  109. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  110. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  111. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  112. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  113. package/dist/_dts/sdk/src/version.d.ts +1 -1
  114. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  115. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  116. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  117. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  118. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  119. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  120. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  121. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  122. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  123. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  124. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  125. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  126. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  127. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  128. package/dist/{chunk-ER4UIW4X.mjs → chunk-AEOYWPE4.mjs} +91 -55
  129. package/dist/{chunk-O4LVYUVH.mjs → chunk-BOQXMCSP.mjs} +147 -101
  130. package/dist/{chunk-HVOBXA3Y.mjs → chunk-GSPFFUVB.mjs} +2 -2
  131. package/dist/{chunk-7KOO7RPP.mjs → chunk-PMBB6MQ7.mjs} +2273 -1113
  132. package/dist/{chunk-K3JWH6HE.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
  133. package/dist/{chunk-YDMBIIS5.mjs → chunk-UG7I7S7W.mjs} +1 -1
  134. package/dist/cli/index.mjs +1564 -546
  135. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  136. package/dist/cli/init-docs/content/content-management.md +27 -0
  137. package/dist/client/{accordion-PT5CGW5N.mjs → accordion-GXQNWQ6O.mjs} +2 -2
  138. package/dist/client/{bookingForm-2HLRTEYS.mjs → bookingForm-STLUJ36H.mjs} +206 -335
  139. package/dist/client/bookings.mjs +821 -413
  140. package/dist/client/{carousel-Z2LKYSWA.mjs → carousel-CVRN6EPP.mjs} +4 -3
  141. package/dist/client/{cart-ND5IK4A6.mjs → cart-IYIBA5CL.mjs} +8 -8
  142. package/dist/client/{checkout-EYUSGAY7.mjs → checkout-O3BGM4GS.mjs} +8 -8
  143. package/dist/client/chunk-4RTFGHZN.mjs +433 -0
  144. package/dist/client/{chunk-DIRW2LNG.mjs → chunk-6DPXDOIL.mjs} +336 -225
  145. package/dist/client/chunk-6N7YRNYU.mjs +183 -0
  146. package/dist/client/{chunk-O5JNI3E4.mjs → chunk-7DH35FGA.mjs} +2 -2
  147. package/dist/client/{chunk-S4G65LGR.mjs → chunk-D3ETC2SU.mjs} +1 -1
  148. package/dist/client/{chunk-BAWHZ5GM.mjs → chunk-DAS5CIER.mjs} +460 -157
  149. package/dist/client/{chunk-6DVPO44G.mjs → chunk-FHU6PFPM.mjs} +1 -1
  150. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  151. package/dist/client/{chunk-BL66UWGD.mjs → chunk-MFPKS6QS.mjs} +13 -16
  152. package/dist/client/{chunk-X7GVFB7Y.mjs → chunk-NBFRJ5NB.mjs} +157 -5
  153. package/dist/client/{chunk-WCVK4MBJ.mjs → chunk-VFHZLZAC.mjs} +1 -1
  154. package/dist/client/{chunk-GOFO7HRH.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  155. package/dist/client/{chunk-MHBEWDT7.mjs → chunk-Z62JYS5O.mjs} +122 -50
  156. package/dist/client/client.mjs +5979 -5198
  157. package/dist/client/{courseRegistration-H3AZBUEG.mjs → courseRegistration-2D3ACMJR.mjs} +20 -58
  158. package/dist/client/{eventCalendar-FPKJGLGS.mjs → eventCalendar-QY4UZUFF.mjs} +11 -11
  159. package/dist/client/{eventCombined-QCGIZBUY.mjs → eventCombined-RRCDKJC2.mjs} +11 -11
  160. package/dist/client/{eventDetails-HIT3BJWU.mjs → eventDetails-YO335BUT.mjs} +11 -11
  161. package/dist/client/{eventListing-R4HNWJDN.mjs → eventListing-PXA6GFQ3.mjs} +11 -11
  162. package/dist/client/{eventRegistration-Q7BYY5HF.mjs → eventRegistration-2ZHEDDXO.mjs} +11 -11
  163. package/dist/client/{form-NI6YOG6S.mjs → form-ZS6KX4U2.mjs} +7 -7
  164. package/dist/client/{headerSection-SDYGII36.mjs → headerSection-QK5SLIIB.mjs} +3 -3
  165. package/dist/client/hooks.mjs +1102 -1029
  166. package/dist/client/{locationMap-BDETEUQD.mjs → locationMap-GFNIUD2X.mjs} +3 -3
  167. package/dist/client/{newsletterForm-EKYIU67X.mjs → newsletterForm-PGLTTCUG.mjs} +61 -25
  168. package/dist/client/{productDetail-5UTGNN76.mjs → productDetail-OPBE5ZPI.mjs} +8 -8
  169. package/dist/client/{productList-7YA5KXZQ.mjs → productList-NI72Q62Z.mjs} +8 -8
  170. package/dist/client/rendering/client.mjs +4390 -4245
  171. package/dist/client/rendering/islands.mjs +19 -19
  172. package/dist/client/rendering.mjs +3327 -3181
  173. package/dist/client/{shop-AIMUMZYC.mjs → shop-3ZQPEWYI.mjs} +8 -8
  174. package/dist/client/spam-protection.mjs +4 -5
  175. package/dist/preview-next/before-render.mjs +20 -2
  176. package/dist/preview-next/client/runtime.mjs +5 -5
  177. package/dist/preview-next/middleware.mjs +18 -0
  178. package/dist/{sdk-runtime-NW472WNT.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
  179. package/dist/server/components.mjs +2580 -2783
  180. package/dist/server/config-validation.mjs +1334 -1261
  181. package/dist/server/config.mjs +1334 -1261
  182. package/dist/server/data.mjs +1102 -1029
  183. package/dist/server/index.mjs +1097 -476
  184. package/dist/server/navigation.mjs +20 -30
  185. package/dist/server/next.mjs +3282 -2847
  186. package/dist/server/page-converter.mjs +1009 -946
  187. package/dist/server/prebuild.mjs +1 -1
  188. package/dist/server/rendering/server.mjs +2580 -2783
  189. package/dist/server/rendering.mjs +2586 -2789
  190. package/dist/server/routing.mjs +1440 -1053
  191. package/dist/server/server.mjs +1886 -1153
  192. package/dist/server/theme-bridge.mjs +34 -5
  193. package/dist/styles/index.css +26 -0
  194. package/package.json +3 -2
  195. package/dist/SdkPreviewModeRuntime-ZALZDJEK.mjs +0 -8
  196. package/dist/client/chunk-H4MHEXYS.mjs +0 -184
  197. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
  198. /package/dist/client/{chunk-LI2C6M5O.mjs → chunk-25W2EQUN.mjs} +0 -0
@@ -1,4 +1,5 @@
1
1
  import type { PublicEvent } from '../../blocks/events/shared/types';
2
+ import { type PublicMembershipProductCollection, type PublicPassProductCollection } from '../../blocks/shop.shared';
2
3
  import type { OccurrenceContext } from '../../blocks/event-registration.shared';
3
4
  import type { EventRegistrationClientProps as InternalEventRegistrationClientProps } from './event-registration/types';
4
5
  import { type InteractiveIslandProps } from '../../../contracts/islands';
@@ -31,6 +32,8 @@ export type EventRegistrationSourceProps = Readonly<{
31
32
  spamProtectionEnabled?: boolean;
32
33
  stage?: 'preview' | 'published';
33
34
  supportEmail?: string;
35
+ sitePasses?: PublicPassProductCollection | null;
36
+ siteMemberships?: PublicMembershipProductCollection | null;
34
37
  }>;
35
38
  export type EventRegistrationDisplay = Readonly<{
36
39
  kind: 'event-registration';
@@ -77,6 +80,12 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
77
80
  spamProtectionEnabled?: boolean;
78
81
  stage?: "preview" | "published";
79
82
  supportEmail?: string;
83
+ sitePasses?: Readonly<{
84
+ passes: readonly import("./shop.client").PublicPassProduct[];
85
+ }> | null;
86
+ siteMemberships?: Readonly<{
87
+ memberships: readonly import("./shop.client").PublicMembershipProduct[];
88
+ }> | null;
80
89
  }>) => Readonly<{
81
90
  display: Readonly<{
82
91
  kind: "event-registration";
@@ -115,6 +124,12 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
115
124
  spamProtectionEnabled?: boolean;
116
125
  stage?: "preview" | "published";
117
126
  supportEmail?: string;
127
+ sitePasses?: Readonly<{
128
+ passes: readonly import("./shop.client").PublicPassProduct[];
129
+ }> | null;
130
+ siteMemberships?: Readonly<{
131
+ memberships: readonly import("./shop.client").PublicMembershipProduct[];
132
+ }> | null;
118
133
  }>) => unknown;
119
134
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
120
135
  siteId?: string;
@@ -140,6 +155,12 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
140
155
  spamProtectionEnabled?: boolean;
141
156
  stage?: "preview" | "published";
142
157
  supportEmail?: string;
158
+ sitePasses?: Readonly<{
159
+ passes: readonly import("./shop.client").PublicPassProduct[];
160
+ }> | null;
161
+ siteMemberships?: Readonly<{
162
+ memberships: readonly import("./shop.client").PublicMembershipProduct[];
163
+ }> | null;
143
164
  }>>;
144
165
  }>;
145
166
  render: Readonly<{
@@ -8,5 +8,5 @@ type EventRegistrationProps = EventRegistrationSourceProps & Readonly<{
8
8
  * Server-safe placeholder for event registration.
9
9
  * Provides a static container for island hydration without importing client hooks.
10
10
  */
11
- export declare function EventRegistrationSSR({ blockId, siteId, apiBaseUrl, portalToken, previewToken, occurrenceContext, contentEntry, events, className, buttonText, maxTickets, showVenue, showCapacity, successMessage, waitlistMessage, buttonVariant, overlayEnabled, spamProtectionEnabled, stage, supportEmail, children, }: EventRegistrationProps): React.JSX.Element;
11
+ export declare function EventRegistrationSSR({ blockId, siteId, apiBaseUrl, portalToken, previewToken, occurrenceContext, contentEntry, events, className, buttonText, maxTickets, showVenue, showCapacity, successMessage, waitlistMessage, buttonVariant, overlayEnabled, spamProtectionEnabled, stage, supportEmail, sitePasses, siteMemberships, children, }: EventRegistrationProps): React.JSX.Element;
12
12
  export default EventRegistrationSSR;
@@ -1,4 +1,4 @@
1
- import type { ButtonVariant, CalendarTabViews, ColumnOption, DisplayMode, EventBlockKind, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent, WeekStart } from "../../../blocks/events/shared/types";
1
+ import type { ButtonVariant, CalendarTabViews, CalendarView, ColumnOption, DisplayMode, EventBlockKind, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent, WeekStart } from "../../../blocks/events/shared/types";
2
2
  import { type InteractiveIslandProps } from "../../../../contracts/islands";
3
3
  import type { EventListingDisplay, EventListingInteractiveIslandProps } from "./EventListing.interactive";
4
4
  import { type EventListPaginationAction, type EventListPaginationMode, type EventPageSize } from "./shared/listOptions";
@@ -19,6 +19,7 @@ export type EventCalendarSourceProps = Readonly<{
19
19
  loadMoreText?: string;
20
20
  startOfWeek?: WeekStart;
21
21
  calendarTabViews?: CalendarTabViews;
22
+ defaultCalendarView?: CalendarView;
22
23
  showFilters?: boolean | null;
23
24
  showCategoryFilter?: FilterAutoShow;
24
25
  showVenueFilter?: boolean | null;
@@ -49,6 +50,7 @@ export type EventCalendarDisplay = Readonly<{
49
50
  paginationAction: EventListPaginationAction;
50
51
  startOfWeek: WeekStart;
51
52
  calendarTabViews: CalendarTabViews;
53
+ defaultCalendarView: CalendarView;
52
54
  showFilters: boolean;
53
55
  showCategoryFilter: FilterAutoShow;
54
56
  showVenueFilter: boolean;
@@ -107,6 +109,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
107
109
  loadMoreText?: string;
108
110
  startOfWeek?: WeekStart;
109
111
  calendarTabViews?: CalendarTabViews;
112
+ defaultCalendarView?: CalendarView;
110
113
  showFilters?: boolean | null;
111
114
  showCategoryFilter?: FilterAutoShow;
112
115
  showVenueFilter?: boolean | null;
@@ -137,6 +140,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
137
140
  paginationAction: EventListPaginationAction;
138
141
  startOfWeek: WeekStart;
139
142
  calendarTabViews: CalendarTabViews;
143
+ defaultCalendarView: CalendarView;
140
144
  showFilters: boolean;
141
145
  showCategoryFilter: FilterAutoShow;
142
146
  showVenueFilter: boolean;
@@ -184,6 +188,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
184
188
  loadMoreText?: string;
185
189
  startOfWeek?: WeekStart;
186
190
  calendarTabViews?: CalendarTabViews;
191
+ defaultCalendarView?: CalendarView;
187
192
  showFilters?: boolean | null;
188
193
  showCategoryFilter?: FilterAutoShow;
189
194
  showVenueFilter?: boolean | null;
@@ -220,6 +225,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
220
225
  loadMoreText?: string;
221
226
  startOfWeek?: WeekStart;
222
227
  calendarTabViews?: CalendarTabViews;
228
+ defaultCalendarView?: CalendarView;
223
229
  showFilters?: boolean | null;
224
230
  showCategoryFilter?: FilterAutoShow;
225
231
  showVenueFilter?: boolean | null;
@@ -253,6 +259,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
253
259
  paginationAction: EventListPaginationAction;
254
260
  startOfWeek: WeekStart;
255
261
  calendarTabViews: CalendarTabViews;
262
+ defaultCalendarView: CalendarView;
256
263
  showFilters: boolean;
257
264
  showCategoryFilter: FilterAutoShow;
258
265
  showVenueFilter: boolean;
@@ -293,6 +300,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
293
300
  paginationAction: EventListPaginationAction;
294
301
  startOfWeek: WeekStart;
295
302
  calendarTabViews: CalendarTabViews;
303
+ defaultCalendarView: CalendarView;
296
304
  showFilters: boolean;
297
305
  showCategoryFilter: FilterAutoShow;
298
306
  showVenueFilter: boolean;
@@ -345,6 +353,7 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
345
353
  paginationAction: EventListPaginationAction;
346
354
  startOfWeek: WeekStart;
347
355
  calendarTabViews: CalendarTabViews;
356
+ defaultCalendarView: CalendarView;
348
357
  showFilters: boolean;
349
358
  showCategoryFilter: FilterAutoShow;
350
359
  showVenueFilter: boolean;
@@ -394,6 +403,7 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
394
403
  paginationAction: EventListPaginationAction;
395
404
  startOfWeek: WeekStart;
396
405
  calendarTabViews: CalendarTabViews;
406
+ defaultCalendarView: CalendarView;
397
407
  showFilters: boolean;
398
408
  showCategoryFilter: FilterAutoShow;
399
409
  showVenueFilter: boolean;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { PublicEvent, ButtonVariant, EventLayout, ColumnOption, WeekStart, CalendarTabViews, FilterAutoShow, EventBlockKind, EventScheduleScope, EventSurfaceScope } from "../../../blocks/events/shared/types";
2
+ import type { PublicEvent, ButtonVariant, EventLayout, ColumnOption, WeekStart, CalendarTabViews, FilterAutoShow, CalendarView, EventBlockKind, EventScheduleScope, EventSurfaceScope } from "../../../blocks/events/shared/types";
3
3
  import type { EventCombinedInteractiveIslandProps } from "./EventCombined.interactive";
4
4
  import { type EventListPaginationAction, type EventPageSize } from "./shared/listOptions";
5
5
  export type EventCombinedClientProps = Readonly<{
@@ -12,6 +12,7 @@ export type EventCombinedClientProps = Readonly<{
12
12
  paginationAction?: EventListPaginationAction;
13
13
  startOfWeek?: WeekStart;
14
14
  calendarTabViews?: CalendarTabViews;
15
+ defaultCalendarView?: CalendarView | null;
15
16
  showFilters?: boolean | null;
16
17
  showCategoryFilter?: FilterAutoShow;
17
18
  showVenueFilter?: boolean | null;
@@ -1,4 +1,4 @@
1
- import type { ButtonVariant, CalendarTabViews, ColumnOption, EventBlockKind, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent, WeekStart } from "../../../blocks/events/shared/types";
1
+ import type { ButtonVariant, CalendarTabViews, CalendarView, ColumnOption, EventBlockKind, EventLayout, EventScheduleScope, EventSurfaceScope, FilterAutoShow, PublicEvent, WeekStart } from "../../../blocks/events/shared/types";
2
2
  import { type InteractiveIslandProps } from "../../../../contracts/islands";
3
3
  import type { EventListingDisplay } from "./EventListing.interactive";
4
4
  import { type EventListPaginationAction, type EventListPaginationMode, type EventPageSize } from "./shared/listOptions";
@@ -15,6 +15,7 @@ export type EventCombinedSourceProps = Readonly<{
15
15
  loadMoreText?: string;
16
16
  startOfWeek?: WeekStart;
17
17
  calendarTabViews?: CalendarTabViews;
18
+ defaultCalendarView?: CalendarView;
18
19
  showFilters?: boolean | null;
19
20
  showCategoryFilter?: FilterAutoShow;
20
21
  showVenueFilter?: boolean | null;
@@ -44,6 +45,7 @@ export type EventCombinedDisplay = Readonly<{
44
45
  paginationAction: EventListPaginationAction;
45
46
  startOfWeek: WeekStart;
46
47
  calendarTabViews: CalendarTabViews;
48
+ defaultCalendarView: CalendarView;
47
49
  showFilters: boolean;
48
50
  showCategoryFilter: FilterAutoShow;
49
51
  showVenueFilter: boolean;
@@ -97,6 +99,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
97
99
  loadMoreText?: string;
98
100
  startOfWeek?: WeekStart;
99
101
  calendarTabViews?: CalendarTabViews;
102
+ defaultCalendarView?: CalendarView;
100
103
  showFilters?: boolean | null;
101
104
  showCategoryFilter?: FilterAutoShow;
102
105
  showVenueFilter?: boolean | null;
@@ -126,6 +129,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
126
129
  paginationAction: EventListPaginationAction;
127
130
  startOfWeek: WeekStart;
128
131
  calendarTabViews: CalendarTabViews;
132
+ defaultCalendarView: CalendarView;
129
133
  showFilters: boolean;
130
134
  showCategoryFilter: FilterAutoShow;
131
135
  showVenueFilter: boolean;
@@ -169,6 +173,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
169
173
  loadMoreText?: string;
170
174
  startOfWeek?: WeekStart;
171
175
  calendarTabViews?: CalendarTabViews;
176
+ defaultCalendarView?: CalendarView;
172
177
  showFilters?: boolean | null;
173
178
  showCategoryFilter?: FilterAutoShow;
174
179
  showVenueFilter?: boolean | null;
@@ -201,6 +206,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
201
206
  loadMoreText?: string;
202
207
  startOfWeek?: WeekStart;
203
208
  calendarTabViews?: CalendarTabViews;
209
+ defaultCalendarView?: CalendarView;
204
210
  showFilters?: boolean | null;
205
211
  showCategoryFilter?: FilterAutoShow;
206
212
  showVenueFilter?: boolean | null;
@@ -233,6 +239,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
233
239
  paginationAction: EventListPaginationAction;
234
240
  startOfWeek: WeekStart;
235
241
  calendarTabViews: CalendarTabViews;
242
+ defaultCalendarView: CalendarView;
236
243
  showFilters: boolean;
237
244
  showCategoryFilter: FilterAutoShow;
238
245
  showVenueFilter: boolean;
@@ -272,6 +279,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
272
279
  paginationAction: EventListPaginationAction;
273
280
  startOfWeek: WeekStart;
274
281
  calendarTabViews: CalendarTabViews;
282
+ defaultCalendarView: CalendarView;
275
283
  showFilters: boolean;
276
284
  showCategoryFilter: FilterAutoShow;
277
285
  showVenueFilter: boolean;
@@ -323,6 +331,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
323
331
  paginationAction: EventListPaginationAction;
324
332
  startOfWeek: WeekStart;
325
333
  calendarTabViews: CalendarTabViews;
334
+ defaultCalendarView: CalendarView;
326
335
  showFilters: boolean;
327
336
  showCategoryFilter: FilterAutoShow;
328
337
  showVenueFilter: boolean;
@@ -371,6 +380,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
371
380
  paginationAction: EventListPaginationAction;
372
381
  startOfWeek: WeekStart;
373
382
  calendarTabViews: CalendarTabViews;
383
+ defaultCalendarView: CalendarView;
374
384
  showFilters: boolean;
375
385
  showCategoryFilter: FilterAutoShow;
376
386
  showVenueFilter: boolean;
@@ -5,7 +5,7 @@ import type { EventListPaginationAction } from './listOptions';
5
5
  type EventPaginatedListViewProps = {
6
6
  filters?: React.ReactNode;
7
7
  display: EventListingDisplay;
8
- events: PublicEvent[];
8
+ events: readonly PublicEvent[];
9
9
  loading: boolean;
10
10
  error: Error | null;
11
11
  hasMore: boolean;
@@ -0,0 +1,10 @@
1
+ import type { CalendarTabViews, CalendarView } from '../../../../blocks/events/shared/types';
2
+ export type CalendarViewToggleOption = Readonly<{
3
+ id: CalendarView;
4
+ label: string;
5
+ }>;
6
+ export declare function resolveInitialCalendarView(input: {
7
+ calendarTabViews: CalendarTabViews;
8
+ defaultCalendarView?: CalendarView | null;
9
+ }): CalendarView;
10
+ export declare function orderCalendarViewToggleOptions(defaultCalendarView: CalendarView): readonly CalendarViewToggleOption[];
@@ -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[];
@@ -6,7 +6,29 @@ export type NewsletterFormError = Readonly<{
6
6
  kind: 'form';
7
7
  message: string;
8
8
  }>;
9
+ export type NewsletterFormSubmissionState = Readonly<{
10
+ tag: 'idle';
11
+ }> | Readonly<{
12
+ tag: 'submitting';
13
+ }> | Readonly<{
14
+ tag: 'error';
15
+ error: NewsletterFormError;
16
+ }> | Readonly<{
17
+ tag: 'success';
18
+ }>;
19
+ export type NewsletterFormSubmissionAction = Readonly<{
20
+ type: 'submitted';
21
+ }> | Readonly<{
22
+ type: 'failed';
23
+ error: NewsletterFormError;
24
+ }> | Readonly<{
25
+ type: 'succeeded';
26
+ }>;
27
+ export declare const initialNewsletterFormSubmissionState: NewsletterFormSubmissionState;
28
+ export declare function newsletterFormSubmissionReducer(state: NewsletterFormSubmissionState, action: NewsletterFormSubmissionAction): NewsletterFormSubmissionState;
9
29
  export declare function newsletterFieldError(fieldId: string, message: string): NewsletterFormError;
10
30
  export declare function newsletterFormError(message: string): NewsletterFormError;
11
- export declare function getNewsletterFieldError(error: NewsletterFormError | null, fieldId: string): string | null;
12
- export declare function getNewsletterFormError(error: NewsletterFormError | null): string | null;
31
+ export declare function isNewsletterFormSubmitting(state: NewsletterFormSubmissionState): boolean;
32
+ export declare function isNewsletterFormSuccess(state: NewsletterFormSubmissionState): boolean;
33
+ export declare function getNewsletterSubmissionFieldError(state: NewsletterFormSubmissionState, fieldId: string): string | null;
34
+ export declare function getNewsletterSubmissionFormError(state: NewsletterFormSubmissionState): string | null;
@@ -0,0 +1,24 @@
1
+ export type MagicLinkSubmissionState = Readonly<{
2
+ tag: 'idle';
3
+ }> | Readonly<{
4
+ tag: 'submitting';
5
+ }> | Readonly<{
6
+ tag: 'success';
7
+ }> | Readonly<{
8
+ tag: 'error';
9
+ message: string;
10
+ }>;
11
+ export type MagicLinkSubmissionAction = Readonly<{
12
+ type: 'submit-started';
13
+ }> | Readonly<{
14
+ type: 'submit-succeeded';
15
+ }> | Readonly<{
16
+ type: 'submit-failed';
17
+ message: string;
18
+ }> | Readonly<{
19
+ type: 'reset';
20
+ }>;
21
+ export declare const initialMagicLinkSubmissionState: MagicLinkSubmissionState;
22
+ export declare function magicLinkSubmissionReducer(state: MagicLinkSubmissionState, action: MagicLinkSubmissionAction): MagicLinkSubmissionState;
23
+ export declare function isMagicLinkSubmitting(state: MagicLinkSubmissionState): boolean;
24
+ export declare function getMagicLinkError(state: MagicLinkSubmissionState): string | null;
@@ -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
  }>;
@@ -0,0 +1,35 @@
1
+ import type { ResolveWaitlistClaimResponse } from "../api/types";
2
+ export type WaitlistClaimResolveFailure = Readonly<{
3
+ kind: "portal-login-required";
4
+ message: string;
5
+ }> | Readonly<{
6
+ kind: "error";
7
+ message: string;
8
+ }>;
9
+ export type WaitlistClaimState = Readonly<{
10
+ kind: "idle";
11
+ }> | Readonly<{
12
+ kind: "resolving";
13
+ }> | Readonly<{
14
+ kind: "resolved";
15
+ claim: ResolveWaitlistClaimResponse;
16
+ }> | WaitlistClaimResolveFailure;
17
+ export type WaitlistClaimAction = Readonly<{
18
+ type: "cleared";
19
+ }> | Readonly<{
20
+ type: "started";
21
+ }> | Readonly<{
22
+ type: "resolved";
23
+ claim: ResolveWaitlistClaimResponse;
24
+ }> | Readonly<{
25
+ type: "failed";
26
+ failure: WaitlistClaimResolveFailure;
27
+ }>;
28
+ export declare function createInitialWaitlistClaimState(hasToken: boolean): WaitlistClaimState;
29
+ export declare function waitlistClaimReducer(_state: WaitlistClaimState, action: WaitlistClaimAction): WaitlistClaimState;
30
+ export declare function toWaitlistClaimResolveFailure(error: unknown): WaitlistClaimResolveFailure;
31
+ export declare function getWaitlistClaim(state: WaitlistClaimState): ResolveWaitlistClaimResponse | null;
32
+ export declare function getWaitlistClaimError(state: WaitlistClaimState): string | null;
33
+ export declare function getWaitlistClaimLoginMessage(state: WaitlistClaimState): string | null;
34
+ export declare function requiresWaitlistClaimPortalLogin(state: WaitlistClaimState): boolean;
35
+ export declare function isWaitlistClaimLoading(state: WaitlistClaimState): boolean;
@@ -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,61 @@ 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;
330
+ export type SlotContainerOwner = Readonly<{
331
+ kind: 'contentEntry';
332
+ contentEntryId: EntrySlotContentEntryId;
333
+ }>;
334
+ export type SlotContainerOwnerParseError = Readonly<{
335
+ kind: 'not-object';
336
+ }> | Readonly<{
337
+ kind: 'unsupported-owner-kind';
338
+ ownerKind: unknown;
339
+ }> | Readonly<{
340
+ kind: 'invalid-content-entry-id';
341
+ error: NonEmptyStringParseError;
342
+ }>;
343
+ export declare function parseSlotContainerOwner(input: unknown): EntrySlotResult<SlotContainerOwner, SlotContainerOwnerParseError>;
344
+ export declare function slotContainerOwnerToContentVersionOwner(owner: SlotContainerOwner): ContentVersionOwner;
345
+ export declare function slotContainerOwnerToEntrySlotLookup(owner: SlotContainerOwner): Readonly<{
346
+ contentEntryId: EntrySlotContentEntryId;
347
+ }>;
348
+ export type PlannedSlotCompositionBlockWrite = Readonly<{
349
+ identifier: string | null;
350
+ blockKind: string;
351
+ purpose: string;
352
+ content: Record<string, unknown>;
353
+ orderIndex: EntrySlotBlockOrderIndex;
354
+ }>;
355
+ export type SlotCompositionMutationInput = Readonly<{
356
+ kind: 'leaveUnchanged';
357
+ }> | Readonly<{
358
+ kind: 'replaceDraftComposition';
359
+ blocks: readonly PlannedSlotCompositionBlockWrite[];
360
+ }> | Readonly<{
361
+ kind: 'publishDraftComposition';
362
+ draftVersionId: EntrySlotContentVersionId;
363
+ }>;
364
+ export type SlotCompositionMutationPlan = Readonly<{
365
+ kind: 'noChange';
366
+ owner: SlotContainerOwner;
367
+ slotKey: SlotKey;
368
+ }> | Readonly<{
369
+ kind: 'replaceDraftComposition';
370
+ owner: SlotContainerOwner;
371
+ slotKey: SlotKey;
372
+ blocks: readonly PlannedSlotCompositionBlockWrite[];
373
+ }> | Readonly<{
374
+ kind: 'publishDraftComposition';
375
+ owner: SlotContainerOwner;
376
+ slotKey: SlotKey;
377
+ draftVersionId: EntrySlotContentVersionId;
378
+ }>;
379
+ export declare function planSlotCompositionMutation(input: Readonly<{
380
+ owner: SlotContainerOwner;
381
+ slotKey: SlotKey;
382
+ mutation: SlotCompositionMutationInput;
383
+ }>): SlotCompositionMutationPlan;
323
384
  export type ContentVersionOwner = Readonly<{
324
385
  kind: 'block';
325
386
  blockId: EntrySlotBlockId;
@@ -24,7 +24,9 @@ export type BrandedIdParseError = {
24
24
  export declare function expectParsedBrandedId<TBrand>(result: Result<TBrand, BrandedIdParseError>): TBrand;
25
25
  export type EventInstanceId = Brand<string, 'EventInstanceId'>;
26
26
  export type SiteId = Brand<string, 'SiteId'>;
27
+ export type SiteRouteId = Brand<string, 'SiteRouteId'>;
27
28
  export type PageId = Brand<string, 'PageId'>;
29
+ export type PageSurfaceId = Brand<string, 'PageSurfaceId'>;
28
30
  export type OccurrenceId = Brand<string, 'OccurrenceId'>;
29
31
  export type EventSeriesId = Brand<string, 'EventSeriesId'>;
30
32
  export type TicketTypeId = Brand<string, 'TicketTypeId'>;
@@ -137,7 +139,9 @@ export declare const unsafeAsEntryId: (id: string) => EntryId;
137
139
  export declare const unsafeAsPreviewEntryId: (id: string) => PreviewEntryId;
138
140
  export declare const unsafeAsEventInstanceId: (id: string) => EventInstanceId;
139
141
  export declare const unsafeAsSiteId: (id: string) => SiteId;
142
+ export declare const unsafeAsSiteRouteId: (id: string) => SiteRouteId;
140
143
  export declare const unsafeAsPageId: (id: string) => PageId;
144
+ export declare const unsafeAsPageSurfaceId: (id: string) => PageSurfaceId;
141
145
  export declare const unsafeAsOccurrenceId: (id: string) => OccurrenceId;
142
146
  export declare const unsafeAsEventSeriesId: (id: string) => EventSeriesId;
143
147
  export declare const unsafeAsTicketTypeId: (id: string) => TicketTypeId;
@@ -224,6 +228,9 @@ export declare const unsafeAsEncounterRecordId: (id: string) => EncounterRecordI
224
228
  export declare const unsafeAsRecordEntryId: (id: string) => RecordEntryId;
225
229
  export declare const unsafeAsProtectedPayloadKeyVersion: (id: string) => ProtectedPayloadKeyVersion;
226
230
  export declare const parseSiteId: (value: unknown) => Result<SiteId, BrandedIdParseError>;
231
+ export declare const parseSiteRouteId: (value: unknown) => Result<SiteRouteId, BrandedIdParseError>;
232
+ export declare const parsePageId: (value: unknown) => Result<PageId, BrandedIdParseError>;
233
+ export declare const parsePageSurfaceId: (value: unknown) => Result<PageSurfaceId, BrandedIdParseError>;
227
234
  export declare const parseOccurrenceId: (value: unknown) => Result<OccurrenceId, BrandedIdParseError>;
228
235
  export declare const parseTicketTypeId: (value: unknown) => Result<TicketTypeId, BrandedIdParseError>;
229
236
  export declare const parsePricingOptionId: (value: unknown) => Result<PricingOptionId, BrandedIdParseError>;
@@ -42,5 +42,6 @@ export * from "./slug";
42
42
  export * from "./string";
43
43
  export * from "./uuid";
44
44
  export * from "./stable-json";
45
+ export * from "./site-route-target";
45
46
  export { disabledSelection, enabledSelection, plannerNoChange, plannerPatch, plannerUpdate, resolvePlanningDateInput, resolvePlanningNow, resolvePlanningNowDate, systemPlanningClock, } from "./planner";
46
47
  export type { DisabledSelection, EnabledSelection, OptionalSelection, PlannerNoChange, PlannerPatch, PlannerUpdate, PlanningClock, PlanningDateInput, PlanningTimeOptions, } from "./planner";
@@ -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;
@@ -0,0 +1,40 @@
1
+ import { type BrandedIdParseError, type ContentEntryId, type PageId, type PageSurfaceId } from './branded';
2
+ import { type Result } from './result';
3
+ export declare const SITE_ROUTE_NODE_TYPES: readonly ["page", "content_entry", "page_surface"];
4
+ export type SiteRouteNodeType = (typeof SITE_ROUTE_NODE_TYPES)[number];
5
+ export type SiteRouteTarget = Readonly<{
6
+ kind: 'page';
7
+ pageId: PageId;
8
+ }> | Readonly<{
9
+ kind: 'contentEntry';
10
+ entryId: ContentEntryId;
11
+ }> | Readonly<{
12
+ kind: 'pageSurface';
13
+ surfaceId: PageSurfaceId;
14
+ }>;
15
+ export type SiteRouteTargetParseError = Readonly<{
16
+ kind: 'invalid-node-type';
17
+ nodeType: unknown;
18
+ }> | Readonly<{
19
+ kind: 'unsupported-node-type';
20
+ nodeType: string;
21
+ }> | Readonly<{
22
+ kind: 'invalid-page-id';
23
+ error: BrandedIdParseError;
24
+ }> | Readonly<{
25
+ kind: 'invalid-content-entry-id';
26
+ error: BrandedIdParseError;
27
+ }> | Readonly<{
28
+ kind: 'invalid-page-surface-id';
29
+ error: BrandedIdParseError;
30
+ }>;
31
+ export declare function parseSiteRouteTarget(input: Readonly<{
32
+ nodeType: unknown;
33
+ nodeId: unknown;
34
+ }>): Result<SiteRouteTarget, SiteRouteTargetParseError>;
35
+ export declare function siteRouteTargetNodeType(target: SiteRouteTarget): SiteRouteNodeType;
36
+ export declare function foldSiteRouteTarget<TValue>(target: SiteRouteTarget, cases: Readonly<{
37
+ page: (pageId: PageId) => TValue;
38
+ contentEntry: (entryId: ContentEntryId) => TValue;
39
+ pageSurface: (surfaceId: PageSurfaceId) => TValue;
40
+ }>): TValue;