@riverbankcms/sdk 0.104.3 → 0.107.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 (236) hide show
  1. package/README.md +84 -51
  2. package/dist/{PreviewEditorSidebar-CBMhU9p_.mjs → PreviewEditorSidebar-DpAbAl08.mjs} +1811 -1179
  3. package/dist/{PreviewEditorUI-C5KEw4M8.mjs → PreviewEditorUI-O7cn6Xxv.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-D0tnKl0t.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Iq12HjL7.mjs → SdkPreviewModeRuntime-CVB7urtl.mjs} +2144 -393
  6. package/dist/{SiteChromeCustomizeContext-Cx0NMdyv.mjs → SiteChromeCustomizeContext-C_sizso-.mjs} +3825 -2653
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +32945 -1339
  8. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  9. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +5 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +6 -15
  11. package/dist/_dts/api/src/courses.d.ts +68 -10
  12. package/dist/_dts/api/src/endpoints.d.ts +29 -0
  13. package/dist/_dts/api/src/index.d.ts +124 -124
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +9 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +116 -6
  16. package/dist/_dts/api/src/siteOperations.d.ts +1 -0
  17. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +26 -4
  18. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +31 -46
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -4
  20. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  21. package/dist/_dts/blocks/src/portal/types.d.ts +25 -7
  22. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -2
  23. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -0
  24. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +4 -0
  26. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule-projection.d.ts +52 -0
  27. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +22 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +45 -0
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +10 -0
  30. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -1
  31. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -0
  33. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +8 -2
  34. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +8 -8
  35. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +24 -24
  36. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +29 -0
  37. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  38. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +2 -5
  40. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -0
  42. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +2 -2
  43. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
  44. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  45. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +2 -0
  46. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +90 -6
  47. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +45 -3
  48. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +2 -1
  51. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -1
  53. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +17 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +3 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +9 -18
  58. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +106 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/events/RecurringSchedule.d.ts +11 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +7 -3
  61. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +11 -1
  63. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +6 -6
  66. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +11 -5
  67. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +7 -0
  69. package/dist/_dts/core/src/branded.d.ts +44 -0
  70. package/dist/_dts/core/src/dated-offering-settlement.d.ts +47 -0
  71. package/dist/_dts/core/src/event-page-surface-subject.d.ts +44 -0
  72. package/dist/_dts/core/src/index.d.ts +49 -47
  73. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1452 -15
  74. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
  75. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +4 -1
  76. package/dist/_dts/media-core/src/index.d.ts +2 -1
  77. package/dist/_dts/media-core/src/storagePathDomain.d.ts +47 -0
  78. package/dist/_dts/media-core/src/url.d.ts +1 -21
  79. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  80. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -1
  81. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  82. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -9
  83. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -11
  84. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -9
  85. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +2 -6
  86. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -9
  87. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +81 -43
  88. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.typography.d.ts +61 -0
  89. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +7 -17
  90. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +15 -8
  91. package/dist/_dts/preview-next/src/client/preview/typographyFontCatalog.d.ts +57 -0
  92. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -1
  93. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +4 -7
  94. package/dist/_dts/sdk/src/cli/commands/style.d.ts +24 -10
  95. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +3 -3
  96. package/dist/_dts/sdk/src/cli/sync/media.d.ts +16 -2
  97. package/dist/_dts/sdk/src/client/management/blocks.d.ts +1 -1
  98. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  99. package/dist/_dts/sdk/src/client/management/types.d.ts +132 -23
  100. package/dist/_dts/sdk/src/client/types.d.ts +2 -0
  101. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  102. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  103. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  104. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +23 -3
  105. package/dist/_dts/sdk/src/data/dataLoaderContext.d.ts +17 -0
  106. package/dist/_dts/sdk/src/data/dataLoaderValue.d.ts +36 -0
  107. package/dist/_dts/sdk/src/data/defineOwnDataProperty.d.ts +2 -0
  108. package/dist/_dts/sdk/src/data/executeCodeLoaders.d.ts +36 -40
  109. package/dist/_dts/sdk/src/data/index.d.ts +3 -3
  110. package/dist/_dts/sdk/src/data/resolveBlockData.d.ts +54 -0
  111. package/dist/_dts/sdk/src/data/types.d.ts +43 -78
  112. package/dist/_dts/sdk/src/next/index.d.ts +1 -0
  113. package/dist/_dts/sdk/src/next/redirect-destination.d.ts +1 -1
  114. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +2 -1
  115. package/dist/_dts/sdk/src/next/types.d.ts +10 -1
  116. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -8
  117. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +9 -4
  118. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +6 -10
  119. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  120. package/dist/_dts/sdk/src/server.d.ts +4 -3
  121. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  122. package/dist/_dts/sdk/src/version.d.ts +1 -1
  123. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  124. package/dist/_dts/site-commands/src/commands.d.ts +921 -30
  125. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
  126. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  127. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +17 -0
  128. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  129. package/dist/_dts/theme-core/src/buttons/types.d.ts +9 -5
  130. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  131. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/fonts/types.d.ts +6 -0
  133. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
  135. package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
  136. package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +10 -5
  137. package/dist/_dts/theme-core/src/palette/curated/high-contrast.d.ts +6 -3
  138. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +31 -236
  139. package/dist/_dts/theme-core/src/palette/curated/soft-natural.d.ts +8 -4
  140. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +14 -12
  141. package/dist/_dts/theme-core/src/palette/curated/warm-dark.d.ts +4 -2
  142. package/dist/_dts/theme-core/src/palette/curated/warm-neutral.d.ts +8 -4
  143. package/dist/_dts/theme-core/src/palette/editorState.d.ts +33 -3
  144. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -4
  145. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
  146. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -72
  147. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +29 -4
  148. package/dist/_dts/theme-core/src/palette/selection.d.ts +6 -4
  149. package/dist/_dts/theme-core/src/schema.d.ts +121 -4
  150. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +218 -158
  151. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -6
  152. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +218 -158
  153. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +1 -0
  154. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  155. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +161 -51
  156. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +6 -0
  157. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  158. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  159. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +24 -1
  160. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -48
  161. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -23
  162. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +1 -2
  163. package/dist/_dts/theme-core/src/site-styles/siteStyleTypography.d.ts +456 -0
  164. package/dist/_dts/theme-core/src/site-styles/types.d.ts +52 -3
  165. package/dist/cli/index.mjs +3155 -1701
  166. package/dist/client/{DiscountCodeDisclosure-BXM73_E5.mjs → DiscountCodeDisclosure-BwGkvmVH.mjs} +1 -1
  167. package/dist/client/{EventCombined.client-DT5elP7j.mjs → EventCombined.client-JnWE6Hzc.mjs} +3 -3
  168. package/dist/client/{EventListing.client-pTYGfV9C.mjs → EventListing.client-DQewc_kg.mjs} +2 -2
  169. package/dist/client/{LeafletStaticMap-dQrhlUe3.mjs → LeafletStaticMap-DPAU3SFt.mjs} +1 -1
  170. package/dist/client/{MagicLinkForm-u6Dul4j5.mjs → MagicLinkForm-D4kpWCbW.mjs} +2 -2
  171. package/dist/client/{StepIndicator-nWqineJ2.mjs → StepIndicator-CBlkb4rA.mjs} +2 -2
  172. package/dist/client/{accordion-CSJcTUyH.mjs → accordion-DAIBVpTS.mjs} +1 -1
  173. package/dist/client/{bookingForm-C73wOuVa.mjs → bookingForm-DZ-4l5_1.mjs} +7 -7
  174. package/dist/client/bookings.mjs +239 -110
  175. package/dist/client/{buttons-DfYyqt8C.mjs → buttons-DJgynGHQ.mjs} +122 -58
  176. package/dist/client/{carousel-fMBb0JSc.mjs → carousel-D-SLfX8r.mjs} +1 -1
  177. package/dist/client/{cart-BtaCwT3S.mjs → cart-CEgbgJhX.mjs} +3 -3
  178. package/dist/client/{checkout-DkTwZSnh.mjs → checkout-CXWrCRAA.mjs} +3 -3
  179. package/dist/client/client.mjs +4300 -1560
  180. package/dist/client/{colorStyles-Wyl6JujD.mjs → colorStyles-jZS6KfkP.mjs} +1 -1
  181. package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
  182. package/dist/client/{courseRegistration-DnLmapJu.mjs → courseRegistration-DVmLrRVz.mjs} +56 -21
  183. package/dist/client/{eventCalendar-BvLOc9KY.mjs → eventCalendar-DCuyPY_c.mjs} +29 -21
  184. package/dist/client/{eventCombined-kShgJPQr.mjs → eventCombined-kP2CA2D4.mjs} +2 -2
  185. package/dist/client/{eventDetails-C5NTM0Vo.mjs → eventDetails-DU0LeF5e.mjs} +4 -4
  186. package/dist/client/{eventListing-B82ZdKP6.mjs → eventListing-CcHF87BI.mjs} +2 -2
  187. package/dist/client/{eventRegistration-qJVFqBWo.mjs → eventRegistration-DJnR0yFH.mjs} +8 -8
  188. package/dist/client/{form-BvAcKiuu.mjs → form-CH1lCusH.mjs} +2 -2
  189. package/dist/client/{headerSection-NvAiEHAg.mjs → headerSection-CBPFZoku.mjs} +3 -3
  190. package/dist/client/hooks.mjs +2958 -1848
  191. package/dist/client/{locationMap-D0j52xfI.mjs → locationMap-Cx1hBg5n.mjs} +3 -3
  192. package/dist/client/{media-BCW_g2cQ.mjs → media-DHtSxS5V.mjs} +61 -56
  193. package/dist/client/{newsletterForm-B8_i93qH.mjs → newsletterForm-1ZL_ti9u.mjs} +3 -3
  194. package/dist/client/{pricing-DIYnyHOk.mjs → pricing-BIbzmV0G.mjs} +1 -1
  195. package/dist/client/{productDetail-w0eAHkuQ.mjs → productDetail-BTh5gHBV.mjs} +3 -3
  196. package/dist/client/{productList-Vsguq5Xt.mjs → productList-Cc7OMrqN.mjs} +3 -3
  197. package/dist/client/{propsDecoder-CD2pJ1WB.mjs → propsDecoder-oR-M-ISN.mjs} +192 -59
  198. package/dist/client/rendering/client.mjs +2031 -1239
  199. package/dist/client/rendering/islands.mjs +20 -20
  200. package/dist/client/rendering.mjs +4889 -1712
  201. package/dist/client/{shop-Dgxs-Q8F.mjs → shop-CQ_YbCnn.mjs} +8 -8
  202. package/dist/client/{shop-commerce-DJAhsTaT.mjs → shop-commerce-BM-AoD3M.mjs} +6 -6
  203. package/dist/client/{shop-commerce-store-CfCXltXW.mjs → shop-commerce-store-DFMQhU5p.mjs} +1 -1
  204. package/dist/client/{shopShared-CmDcPXUt.mjs → shopShared-D0SKO2Cu.mjs} +3 -3
  205. package/dist/client/{useDiscountCodeUi-CirrT2bM.mjs → useDiscountCodeUi-CrG4_ARt.mjs} +1 -1
  206. package/dist/client/{useEventFilters-CNZxlCcO.mjs → useEventFilters-CxK8Fekl.mjs} +6 -6
  207. package/dist/client/{usePolling-Baks_iBI.mjs → usePolling-jcVryNgZ.mjs} +2 -2
  208. package/dist/preview-next/before-render.mjs +40 -1
  209. package/dist/preview-next/client/runtime.mjs +4 -4
  210. package/dist/preview-next/middleware.mjs +40 -1
  211. package/dist/{previewAuthStore-CfquDtTh.mjs → previewAuthStore-BPcJPzdz.mjs} +40 -1
  212. package/dist/{sdk-runtime-BfNiFeNJ.mjs → sdk-runtime-C39Rsk-x.mjs} +2 -2
  213. package/dist/{separator-BhAR_Xmf.mjs → separator-BoMSQnsP.mjs} +1 -1
  214. package/dist/server/components.mjs +4661 -2162
  215. package/dist/server/config-validation.mjs +2728 -1847
  216. package/dist/server/config.mjs +2728 -1847
  217. package/dist/server/data.mjs +3381 -1915
  218. package/dist/server/index.mjs +46 -4
  219. package/dist/server/next/middleware.mjs +1 -1
  220. package/dist/server/next.mjs +5555 -2225
  221. package/dist/server/page-converter.mjs +3058 -2182
  222. package/dist/server/prebuild.mjs +1 -1
  223. package/dist/server/rendering/server.mjs +4850 -2125
  224. package/dist/server/rendering.mjs +5664 -2464
  225. package/dist/server/routing.mjs +3027 -1509
  226. package/dist/server/server.mjs +3844 -2217
  227. package/dist/server/theme-bridge.mjs +9121 -7765
  228. package/dist/server/theme.mjs +152 -59
  229. package/dist/styles/index.css +1217 -31
  230. package/package.json +1 -1
  231. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
  232. package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +0 -44
  233. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
  234. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -45
  235. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
  236. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -234
@@ -6,6 +6,7 @@
6
6
  import type { PublicCourse } from '../../../blocks/courses/shared';
7
7
  import type { OccurrenceContext } from '../../../blocks/event-registration.shared';
8
8
  import type { ButtonVariant as SharedButtonVariant } from '../../shared';
9
+ import type { EventRegistrationPageSurfaceSubject } from '../event-registration/eventScope';
9
10
  export type { FormData } from '../../shared';
10
11
  export type ButtonVariant = SharedButtonVariant;
11
12
  /**
@@ -56,6 +57,8 @@ export interface CourseRegistrationBaseProps {
56
57
  contentEntry?: ContentEntryContext | null;
57
58
  /** Entry subroute context (e.g., course run under a course program page) */
58
59
  entrySubrouteContext?: EntrySubrouteContext | null;
60
+ /** Native page-surface subject for series/offering-owned course pages. */
61
+ subject?: EventRegistrationPageSurfaceSubject | null;
59
62
  /** List of available courses from data loader */
60
63
  courses?: PublicCourse[] | null;
61
64
  /** Display the list of course sessions */
@@ -2,6 +2,7 @@ import type { PublicCourse } from '../../blocks/courses/shared/types';
2
2
  import type { OccurrenceContext } from '../../blocks/event-registration.shared';
3
3
  import type { CourseRegistrationClientProps as InternalCourseRegistrationClientProps } from './course-registration/types';
4
4
  import { type InteractiveIslandProps } from '../../../contracts/islands';
5
+ import { type EventRegistrationPageSurfaceSubject } from './event-registration/eventScope';
5
6
  export type CourseRegistrationContentEntry = Readonly<{
6
7
  id: string;
7
8
  slug: string;
@@ -25,6 +26,7 @@ export type CourseRegistrationSourceProps = Readonly<{
25
26
  portalToken?: string | null;
26
27
  contentEntry?: CourseRegistrationContentEntry | null;
27
28
  entrySubrouteContext?: CourseEntrySubrouteContext | null;
29
+ subject?: EventRegistrationPageSurfaceSubject | null;
28
30
  courses?: PublicCourse[] | null;
29
31
  className?: string | null;
30
32
  showSessions?: boolean;
@@ -65,6 +67,7 @@ export declare const courseRegistrationBlockRuntime: Readonly<{
65
67
  contentTypeSlug: string;
66
68
  }> | null;
67
69
  entrySubrouteContext?: CourseEntrySubrouteContext | null;
70
+ subject?: EventRegistrationPageSurfaceSubject | null;
68
71
  courses?: PublicCourse[] | null;
69
72
  className?: string | null;
70
73
  showSessions?: boolean;
@@ -98,6 +101,7 @@ export declare const courseRegistrationBlockRuntime: Readonly<{
98
101
  contentTypeSlug: string;
99
102
  }> | null;
100
103
  entrySubrouteContext?: CourseEntrySubrouteContext | null;
104
+ subject?: EventRegistrationPageSurfaceSubject | null;
101
105
  courses?: PublicCourse[] | null;
102
106
  className?: string | null;
103
107
  showSessions?: boolean;
@@ -121,6 +125,7 @@ export declare const courseRegistrationBlockRuntime: Readonly<{
121
125
  contentTypeSlug: string;
122
126
  }> | null;
123
127
  entrySubrouteContext?: CourseEntrySubrouteContext | null;
128
+ subject?: EventRegistrationPageSurfaceSubject | null;
124
129
  courses?: PublicCourse[] | null;
125
130
  className?: string | null;
126
131
  showSessions?: boolean;
@@ -8,5 +8,5 @@ type CourseRegistrationServerProps = CourseRegistrationSourceProps & Readonly<{
8
8
  * Server-safe placeholder for course registration.
9
9
  * Provides a static container for island hydration without importing client hooks.
10
10
  */
11
- export declare function CourseRegistrationSSR({ blockId, siteId, apiBaseUrl, portalToken, contentEntry, entrySubrouteContext, courses, className, showSessions, showPrice, showCapacity, showVenue, successMessage, waitlistMessage, membershipMessage, buttonText, buttonVariant, stage, children, }: CourseRegistrationServerProps): React.JSX.Element;
11
+ export declare function CourseRegistrationSSR({ blockId, siteId, apiBaseUrl, portalToken, contentEntry, entrySubrouteContext, subject, courses, className, showSessions, showPrice, showCapacity, showVenue, successMessage, waitlistMessage, membershipMessage, buttonText, buttonVariant, stage, children, }: CourseRegistrationServerProps): React.JSX.Element;
12
12
  export default CourseRegistrationSSR;
@@ -1,15 +1,12 @@
1
- import { type BrandedIdParseError, type EventSeriesId, type Result } from '../../../../../../core/src/index';
1
+ import { type EventPageSurfaceSubject, type EventPageSurfaceSubjectParseError, type EventOfferingId, type EventSeriesId, type Result } from '../../../../../../core/src/index';
2
2
  import { z } from 'zod';
3
3
  export type EventRegistrationContentEntryContext = Readonly<{
4
4
  slug: string;
5
5
  contentTypeSlug: string;
6
6
  }>;
7
- export declare const unsupportedEventRegistrationPageSurfaceSubjectReasons: readonly ["unsupportedSubject", "invalidEventSeriesId"];
7
+ export declare const unsupportedEventRegistrationPageSurfaceSubjectReasons: readonly ["unsupportedSubject", "invalidEventSeriesId", "invalidEventOfferingId"];
8
8
  export type UnsupportedEventRegistrationPageSurfaceSubjectReason = (typeof unsupportedEventRegistrationPageSurfaceSubjectReasons)[number];
9
- export type EventRegistrationPageSurfaceSubject = Readonly<{
10
- kind: 'eventSeries';
11
- eventSeriesId: EventSeriesId;
12
- }> | Readonly<{
9
+ export type EventRegistrationPageSurfaceSubject = EventPageSurfaceSubject | Readonly<{
13
10
  kind: 'unsupported';
14
11
  reason: UnsupportedEventRegistrationPageSurfaceSubjectReason;
15
12
  }>;
@@ -24,21 +21,17 @@ export type EventRegistrationScopeableEvent = Readonly<{
24
21
  seriesId: string;
25
22
  slug?: string | null;
26
23
  }>;
27
- export type EventRegistrationPageSurfaceSubjectParseError = Readonly<{
28
- kind: 'notPageSurfaceSubject';
29
- }> | Readonly<{
30
- kind: 'unsupportedSubject';
31
- subjectKind: unknown;
32
- }> | Readonly<{
33
- kind: 'invalidEventSeriesId';
34
- error: BrandedIdParseError;
35
- }>;
24
+ export type EventRegistrationPageSurfaceSubjectParseError = EventPageSurfaceSubjectParseError;
36
25
  export type EventRegistrationScope = Readonly<{
37
26
  kind: 'occurrenceSeries';
38
27
  seriesId: string;
39
28
  }> | Readonly<{
40
29
  kind: 'pageSurfaceSeries';
41
30
  seriesId: EventSeriesId;
31
+ }> | Readonly<{
32
+ kind: 'pageSurfaceOffering';
33
+ offeringId: EventOfferingId;
34
+ seriesIds: readonly EventSeriesId[];
42
35
  }> | Readonly<{
43
36
  kind: 'unsupportedPageSurfaceSubject';
44
37
  reason: UnsupportedEventRegistrationPageSurfaceSubjectReason;
@@ -49,9 +42,7 @@ export type EventRegistrationScope = Readonly<{
49
42
  kind: 'unscoped';
50
43
  }>;
51
44
  export declare const eventRegistrationPageSurfaceSubjectSchema: z.ZodType<EventRegistrationPageSurfaceSubject>;
52
- export declare function parseEventRegistrationPageSurfaceSubject(value: unknown): Result<Exclude<EventRegistrationPageSurfaceSubject, {
53
- kind: 'unsupported';
54
- }>, EventRegistrationPageSurfaceSubjectParseError>;
45
+ export declare function parseEventRegistrationPageSurfaceSubject(value: unknown): Result<EventPageSurfaceSubject, EventRegistrationPageSurfaceSubjectParseError>;
55
46
  export declare function normalizeEventRegistrationPageSurfaceSubject(value: unknown): EventRegistrationPageSurfaceSubject | null;
56
47
  export declare function resolveEventRegistrationScope(context: EventRegistrationScopeContext): EventRegistrationScope;
57
48
  export declare function applyEventRegistrationScope<TEvent extends EventRegistrationScopeableEvent>(events: readonly TEvent[], scope: EventRegistrationScope): TEvent[];
@@ -33,6 +33,10 @@ export type EventCalendarSourceProps = Readonly<{
33
33
  filterVenueId?: string | null;
34
34
  buttonVariant?: ButtonVariant;
35
35
  buttonText?: string;
36
+ boardTitle?: string;
37
+ footerNote?: string;
38
+ elevated?: boolean | null;
39
+ banded?: boolean | null;
36
40
  showVenue?: boolean | null;
37
41
  showMap?: boolean | null;
38
42
  showCapacity?: boolean | null;
@@ -64,6 +68,21 @@ export type EventCalendarDisplay = Readonly<{
64
68
  filterVenueId: string | null;
65
69
  buttonVariant: ButtonVariant;
66
70
  buttonText: string;
71
+ /** Week-board: optional top-bar title. Empty/undefined hides the title. */
72
+ boardTitle?: string;
73
+ /** Week-board: optional footer note. Empty/undefined hides the note. */
74
+ footerNote?: string;
75
+ /**
76
+ * Footer CTA destination (reuses the block's "See all destination" field).
77
+ * Undefined omits the CTA — no dead button is ever rendered.
78
+ */
79
+ seeAllUrl?: string;
80
+ /** Footer CTA label (reuses the block's "CTA button text" field). */
81
+ loadMoreText?: string;
82
+ /** Week-board: raised drop shadow (Fulcrum opt-in). Generic default: flat. */
83
+ elevated: boolean;
84
+ /** Week-board: surrounding section band (Fulcrum opt-in). Default: bandless. */
85
+ banded: boolean;
67
86
  showVenue: boolean;
68
87
  showMap: boolean;
69
88
  showCapacity: boolean;
@@ -123,6 +142,10 @@ export declare const eventCalendarBlockRuntime: Readonly<{
123
142
  filterVenueId?: string | null;
124
143
  buttonVariant?: ButtonVariant;
125
144
  buttonText?: string;
145
+ boardTitle?: string;
146
+ footerNote?: string;
147
+ elevated?: boolean | null;
148
+ banded?: boolean | null;
126
149
  showVenue?: boolean | null;
127
150
  showMap?: boolean | null;
128
151
  showCapacity?: boolean | null;
@@ -154,6 +177,21 @@ export declare const eventCalendarBlockRuntime: Readonly<{
154
177
  filterVenueId: string | null;
155
178
  buttonVariant: ButtonVariant;
156
179
  buttonText: string;
180
+ /** Week-board: optional top-bar title. Empty/undefined hides the title. */
181
+ boardTitle?: string;
182
+ /** Week-board: optional footer note. Empty/undefined hides the note. */
183
+ footerNote?: string;
184
+ /**
185
+ * Footer CTA destination (reuses the block's "See all destination" field).
186
+ * Undefined omits the CTA — no dead button is ever rendered.
187
+ */
188
+ seeAllUrl?: string;
189
+ /** Footer CTA label (reuses the block's "CTA button text" field). */
190
+ loadMoreText?: string;
191
+ /** Week-board: raised drop shadow (Fulcrum opt-in). Generic default: flat. */
192
+ elevated: boolean;
193
+ /** Week-board: surrounding section band (Fulcrum opt-in). Default: bandless. */
194
+ banded: boolean;
157
195
  showVenue: boolean;
158
196
  showMap: boolean;
159
197
  showCapacity: boolean;
@@ -202,6 +240,10 @@ export declare const eventCalendarBlockRuntime: Readonly<{
202
240
  filterVenueId?: string | null;
203
241
  buttonVariant?: ButtonVariant;
204
242
  buttonText?: string;
243
+ boardTitle?: string;
244
+ footerNote?: string;
245
+ elevated?: boolean | null;
246
+ banded?: boolean | null;
205
247
  showVenue?: boolean | null;
206
248
  showMap?: boolean | null;
207
249
  showCapacity?: boolean | null;
@@ -239,6 +281,10 @@ export declare const eventCalendarBlockRuntime: Readonly<{
239
281
  filterVenueId?: string | null;
240
282
  buttonVariant?: ButtonVariant;
241
283
  buttonText?: string;
284
+ boardTitle?: string;
285
+ footerNote?: string;
286
+ elevated?: boolean | null;
287
+ banded?: boolean | null;
242
288
  showVenue?: boolean | null;
243
289
  showMap?: boolean | null;
244
290
  showCapacity?: boolean | null;
@@ -273,6 +319,21 @@ export declare const eventCalendarBlockRuntime: Readonly<{
273
319
  filterVenueId: string | null;
274
320
  buttonVariant: ButtonVariant;
275
321
  buttonText: string;
322
+ /** Week-board: optional top-bar title. Empty/undefined hides the title. */
323
+ boardTitle?: string;
324
+ /** Week-board: optional footer note. Empty/undefined hides the note. */
325
+ footerNote?: string;
326
+ /**
327
+ * Footer CTA destination (reuses the block's "See all destination" field).
328
+ * Undefined omits the CTA — no dead button is ever rendered.
329
+ */
330
+ seeAllUrl?: string;
331
+ /** Footer CTA label (reuses the block's "CTA button text" field). */
332
+ loadMoreText?: string;
333
+ /** Week-board: raised drop shadow (Fulcrum opt-in). Generic default: flat. */
334
+ elevated: boolean;
335
+ /** Week-board: surrounding section band (Fulcrum opt-in). Default: bandless. */
336
+ banded: boolean;
276
337
  showVenue: boolean;
277
338
  showMap: boolean;
278
339
  showCapacity: boolean;
@@ -314,6 +375,21 @@ export declare const eventCalendarBlockRuntime: Readonly<{
314
375
  filterVenueId: string | null;
315
376
  buttonVariant: ButtonVariant;
316
377
  buttonText: string;
378
+ /** Week-board: optional top-bar title. Empty/undefined hides the title. */
379
+ boardTitle?: string;
380
+ /** Week-board: optional footer note. Empty/undefined hides the note. */
381
+ footerNote?: string;
382
+ /**
383
+ * Footer CTA destination (reuses the block's "See all destination" field).
384
+ * Undefined omits the CTA — no dead button is ever rendered.
385
+ */
386
+ seeAllUrl?: string;
387
+ /** Footer CTA label (reuses the block's "CTA button text" field). */
388
+ loadMoreText?: string;
389
+ /** Week-board: raised drop shadow (Fulcrum opt-in). Generic default: flat. */
390
+ elevated: boolean;
391
+ /** Week-board: surrounding section band (Fulcrum opt-in). Default: bandless. */
392
+ banded: boolean;
317
393
  showVenue: boolean;
318
394
  showMap: boolean;
319
395
  showCapacity: boolean;
@@ -367,6 +443,21 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
367
443
  filterVenueId: string | null;
368
444
  buttonVariant: ButtonVariant;
369
445
  buttonText: string;
446
+ /** Week-board: optional top-bar title. Empty/undefined hides the title. */
447
+ boardTitle?: string;
448
+ /** Week-board: optional footer note. Empty/undefined hides the note. */
449
+ footerNote?: string;
450
+ /**
451
+ * Footer CTA destination (reuses the block's "See all destination" field).
452
+ * Undefined omits the CTA — no dead button is ever rendered.
453
+ */
454
+ seeAllUrl?: string;
455
+ /** Footer CTA label (reuses the block's "CTA button text" field). */
456
+ loadMoreText?: string;
457
+ /** Week-board: raised drop shadow (Fulcrum opt-in). Generic default: flat. */
458
+ elevated: boolean;
459
+ /** Week-board: surrounding section band (Fulcrum opt-in). Default: bandless. */
460
+ banded: boolean;
370
461
  showVenue: boolean;
371
462
  showMap: boolean;
372
463
  showCapacity: boolean;
@@ -417,6 +508,21 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
417
508
  filterVenueId: string | null;
418
509
  buttonVariant: ButtonVariant;
419
510
  buttonText: string;
511
+ /** Week-board: optional top-bar title. Empty/undefined hides the title. */
512
+ boardTitle?: string;
513
+ /** Week-board: optional footer note. Empty/undefined hides the note. */
514
+ footerNote?: string;
515
+ /**
516
+ * Footer CTA destination (reuses the block's "See all destination" field).
517
+ * Undefined omits the CTA — no dead button is ever rendered.
518
+ */
519
+ seeAllUrl?: string;
520
+ /** Footer CTA label (reuses the block's "CTA button text" field). */
521
+ loadMoreText?: string;
522
+ /** Week-board: raised drop shadow (Fulcrum opt-in). Generic default: flat. */
523
+ elevated: boolean;
524
+ /** Week-board: surrounding section band (Fulcrum opt-in). Default: bandless. */
525
+ banded: boolean;
420
526
  showVenue: boolean;
421
527
  showMap: boolean;
422
528
  showCapacity: boolean;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { ButtonVariant } from '../../../blocks/events/shared/types';
3
+ import type { RecurringScheduleProjection } from '../../../blocks/events/recurring-schedule-projection';
4
+ export type RecurringScheduleProps = Readonly<{
5
+ schedule?: RecurringScheduleProjection | null;
6
+ buttonText?: string | null;
7
+ buttonVariant?: ButtonVariant | null;
8
+ showVenue?: boolean | null;
9
+ emptyMessage?: string | null;
10
+ }>;
11
+ export declare function RecurringSchedule({ schedule, buttonText, buttonVariant, showVenue, emptyMessage, }: RecurringScheduleProps): React.ReactElement;
@@ -6,15 +6,19 @@ type WeekBoardViewProps = {
6
6
  events: PublicEvent[];
7
7
  showCapacity: boolean;
8
8
  emptyMessage?: string;
9
- /** Board title shown in the top bar. */
9
+ /** Optional board title shown in the top bar. Hidden when empty. */
10
10
  title?: string;
11
- /** Footer note shown alongside the CTA. */
11
+ /** Optional footer note shown alongside the CTA. Hidden when empty. */
12
12
  footerNote?: string;
13
13
  /** Footer CTA label. */
14
14
  ctaLabel?: string;
15
- /** Optional href for the footer CTA. Renders a button when omitted. */
15
+ /** Optional href for the footer CTA. The CTA is omitted when absent. */
16
16
  ctaHref?: string | null;
17
17
  buttonVariant?: ButtonVariant;
18
+ /** Opt-in raised drop shadow. Generic default is flat. */
19
+ elevated?: boolean;
20
+ /** Opt-in section band. Generic default is bandless. */
21
+ banded?: boolean;
18
22
  };
19
23
  /**
20
24
  * WeekBoardView
@@ -67,6 +67,9 @@ export type MediaUrlResolution = Readonly<{
67
67
  }> | Readonly<{
68
68
  kind: 'missing-site-context';
69
69
  storagePath: string;
70
+ }> | Readonly<{
71
+ kind: 'invalid-storage-path';
72
+ storagePath: string;
70
73
  }> | Readonly<{
71
74
  kind: 'missing-supabase-url';
72
75
  message: string;
@@ -1,6 +1,6 @@
1
1
  import { type InteractiveIslandProps } from '../../../contracts/islands';
2
2
  import { type NewsletterSignupDestinationProvider, type NewsletterSignupPublicDestinationRef } from '../../blocks/newsletter-signup-destination';
3
- import { type NewsletterFieldDef, type NewsletterPreset } from './newsletter-form.types';
3
+ import { type NewsletterButtonVariant, type NewsletterFieldDef, type NewsletterPreset } from './newsletter-form.types';
4
4
  export type NewsletterFormSourceProps = Readonly<{
5
5
  blockId?: string | null;
6
6
  siteId?: string;
@@ -10,6 +10,7 @@ export type NewsletterFormSourceProps = Readonly<{
10
10
  preset?: NewsletterPreset;
11
11
  includePhone?: boolean;
12
12
  buttonLabel?: string | null;
13
+ buttonVariant?: NewsletterButtonVariant | null;
13
14
  successMessage?: string | null;
14
15
  privacyNote?: string | null;
15
16
  tags?: string | null;
@@ -20,6 +21,7 @@ export type NewsletterFormDisplay = Readonly<{
20
21
  kind: 'newsletter-form';
21
22
  className: string | null;
22
23
  buttonLabel: string;
24
+ buttonVariant: NewsletterButtonVariant;
23
25
  successMessage: string | null;
24
26
  privacyNote: string | null;
25
27
  fields: readonly NewsletterFieldDef[];
@@ -49,6 +51,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
49
51
  preset?: NewsletterPreset;
50
52
  includePhone?: boolean;
51
53
  buttonLabel?: string | null;
54
+ buttonVariant?: NewsletterButtonVariant | null;
52
55
  successMessage?: string | null;
53
56
  privacyNote?: string | null;
54
57
  tags?: string | null;
@@ -59,6 +62,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
59
62
  kind: "newsletter-form";
60
63
  className: string | null;
61
64
  buttonLabel: string;
65
+ buttonVariant: NewsletterButtonVariant;
62
66
  successMessage: string | null;
63
67
  privacyNote: string | null;
64
68
  fields: readonly NewsletterFieldDef[];
@@ -83,6 +87,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
83
87
  preset?: NewsletterPreset;
84
88
  includePhone?: boolean;
85
89
  buttonLabel?: string | null;
90
+ buttonVariant?: NewsletterButtonVariant | null;
86
91
  successMessage?: string | null;
87
92
  privacyNote?: string | null;
88
93
  tags?: string | null;
@@ -98,6 +103,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
98
103
  preset?: NewsletterPreset;
99
104
  includePhone?: boolean;
100
105
  buttonLabel?: string | null;
106
+ buttonVariant?: NewsletterButtonVariant | null;
101
107
  successMessage?: string | null;
102
108
  privacyNote?: string | null;
103
109
  tags?: string | null;
@@ -111,6 +117,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
111
117
  kind: "newsletter-form";
112
118
  className: string | null;
113
119
  buttonLabel: string;
120
+ buttonVariant: NewsletterButtonVariant;
114
121
  successMessage: string | null;
115
122
  privacyNote: string | null;
116
123
  fields: readonly NewsletterFieldDef[];
@@ -129,6 +136,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
129
136
  kind: "newsletter-form";
130
137
  className: string | null;
131
138
  buttonLabel: string;
139
+ buttonVariant: NewsletterButtonVariant;
132
140
  successMessage: string | null;
133
141
  privacyNote: string | null;
134
142
  fields: readonly NewsletterFieldDef[];
@@ -158,6 +166,7 @@ export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
158
166
  kind: "newsletter-form";
159
167
  className: string | null;
160
168
  buttonLabel: string;
169
+ buttonVariant: NewsletterButtonVariant;
161
170
  successMessage: string | null;
162
171
  privacyNote: string | null;
163
172
  fields: readonly NewsletterFieldDef[];
@@ -184,6 +193,7 @@ export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
184
193
  kind: "newsletter-form";
185
194
  className: string | null;
186
195
  buttonLabel: string;
196
+ buttonVariant: NewsletterButtonVariant;
187
197
  successMessage: string | null;
188
198
  privacyNote: string | null;
189
199
  fields: readonly NewsletterFieldDef[];
@@ -6,5 +6,5 @@ import type { NewsletterFormProps } from './newsletter-form.types';
6
6
  * Renders the newsletter signup form for SSR with hydration support.
7
7
  * Uses the islands architecture pattern to hydrate on the client.
8
8
  */
9
- export declare function NewsletterFormSSR({ blockId, siteId, apiBaseUrl, listId, destinationProvider, preset, includePhone, buttonLabel, successMessage, privacyNote, tags, spamProtectionEnabled, className, }: NewsletterFormProps): React.JSX.Element;
9
+ export declare function NewsletterFormSSR({ blockId, siteId, apiBaseUrl, listId, destinationProvider, preset, includePhone, buttonLabel, buttonVariant, successMessage, privacyNote, tags, spamProtectionEnabled, className, }: NewsletterFormProps): React.JSX.Element;
10
10
  export default NewsletterFormSSR;
@@ -13,6 +13,7 @@ export type NewsletterFieldDef = {
13
13
  placeholder?: string;
14
14
  };
15
15
  export type NewsletterDestinationProvider = 'riverbank' | 'mailchimp';
16
+ export type NewsletterButtonVariant = 'primary' | 'secondary' | 'outline';
16
17
  export type NewsletterFormProps = {
17
18
  /** Block ID for island hydration */
18
19
  blockId?: string | null;
@@ -30,6 +31,8 @@ export type NewsletterFormProps = {
30
31
  includePhone?: boolean;
31
32
  /** Submit button label */
32
33
  buttonLabel?: string | null;
34
+ /** Site-style button role for the submit action */
35
+ buttonVariant?: NewsletterButtonVariant | null;
33
36
  /** Message shown after successful subscription */
34
37
  successMessage?: string | null;
35
38
  /** Optional privacy note below the form */
@@ -1,8 +1,8 @@
1
- import React from "react";
2
- import type { PublicCourse } from "../../blocks/courses/shared/types";
3
- import type { ButtonVariant, PublicEvent } from "../../blocks/events/shared/types";
4
- import type { CardStylesContent } from "../../fields/boxStyles";
5
- import { type BookingOfferingPresetSummary, type OfferingsPreviewEventDataKey, type OfferingsPreviewGroupOrder, type OfferingsPreviewGroupOverride, type OfferingsPreviewRouteCandidate } from "../../blocks/offerings-preview/model";
1
+ import React from 'react';
2
+ import type { PublicCourse } from '../../blocks/courses/shared/types';
3
+ import type { ButtonVariant, PublicEvent } from '../../blocks/events/shared/types';
4
+ import type { CardStylesContent } from '../../fields/boxStyles';
5
+ import { type BookingOfferingPresetSummary, type OfferingsPreviewEventDataKey, type OfferingsPreviewGroupOrder, type OfferingsPreviewGroupOverride, type OfferingsPreviewRouteCandidate } from '../../blocks/offerings-preview/model';
6
6
  type OfferingsPreviewProps = Readonly<{
7
7
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
8
8
  groupOrder?: OfferingsPreviewGroupOrder | null;
@@ -13,7 +13,7 @@ type OfferingsPreviewProps = Readonly<{
13
13
  buttonText?: string | null;
14
14
  emptyMessage?: string | null;
15
15
  failedMessage?: string | null;
16
- previewStage?: "published" | "preview" | null;
16
+ previewStage?: 'published' | 'preview' | null;
17
17
  routeCandidates?: Readonly<{
18
18
  routes?: readonly OfferingsPreviewRouteCandidate[] | null;
19
19
  }> | null;
@@ -14,6 +14,7 @@ export type PassesMembershipsHydration = Readonly<{
14
14
  passes: readonly PublicPassProduct[];
15
15
  memberships: readonly PublicMembershipProduct[];
16
16
  passPurchaseMode: 'add_to_cart' | 'buy_now';
17
+ buttonVariant: 'primary' | 'secondary' | 'outline' | 'link';
17
18
  }>;
18
19
  export type ProductListHydration = Readonly<{
19
20
  products: readonly PublicProduct[];
@@ -77,7 +78,7 @@ export declare const shopBlockRuntime: Readonly<{
77
78
  kind: "passes-memberships";
78
79
  state: "empty" | "ready";
79
80
  className: string | null;
80
- layout: "grid" | "list";
81
+ layout: "grid" | "list" | "register";
81
82
  columns: string;
82
83
  emptyMessage: string;
83
84
  passesHeading: string;
@@ -105,6 +106,7 @@ export declare const shopBlockRuntime: Readonly<{
105
106
  passes: readonly PublicPassProduct[];
106
107
  memberships: readonly PublicMembershipProduct[];
107
108
  passPurchaseMode: "add_to_cart" | "buy_now";
109
+ buttonVariant: "primary" | "secondary" | "outline" | "link";
108
110
  }>;
109
111
  }>;
110
112
  contracts: Readonly<{
@@ -118,7 +120,7 @@ export declare const shopBlockRuntime: Readonly<{
118
120
  kind: "passes-memberships";
119
121
  state: "empty" | "ready";
120
122
  className: string | null;
121
- layout: "grid" | "list";
123
+ layout: "grid" | "list" | "register";
122
124
  columns: string;
123
125
  emptyMessage: string;
124
126
  passesHeading: string;
@@ -146,6 +148,7 @@ export declare const shopBlockRuntime: Readonly<{
146
148
  passes: readonly PublicPassProduct[];
147
149
  memberships: readonly PublicMembershipProduct[];
148
150
  passPurchaseMode: "add_to_cart" | "buy_now";
151
+ buttonVariant: "primary" | "secondary" | "outline" | "link";
149
152
  }>;
150
153
  }>) => unknown;
151
154
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -153,7 +156,7 @@ export declare const shopBlockRuntime: Readonly<{
153
156
  kind: "passes-memberships";
154
157
  state: "empty" | "ready";
155
158
  className: string | null;
156
- layout: "grid" | "list";
159
+ layout: "grid" | "list" | "register";
157
160
  columns: string;
158
161
  emptyMessage: string;
159
162
  passesHeading: string;
@@ -181,6 +184,7 @@ export declare const shopBlockRuntime: Readonly<{
181
184
  passes: readonly PublicPassProduct[];
182
185
  memberships: readonly PublicMembershipProduct[];
183
186
  passPurchaseMode: "add_to_cart" | "buy_now";
187
+ buttonVariant: "primary" | "secondary" | "outline" | "link";
184
188
  }>;
185
189
  }>>;
186
190
  }>;
@@ -502,7 +506,7 @@ export declare const shopInteractiveIslandPropsCodec: Readonly<{
502
506
  kind: "passes-memberships";
503
507
  state: "empty" | "ready";
504
508
  className: string | null;
505
- layout: "grid" | "list";
509
+ layout: "grid" | "list" | "register";
506
510
  columns: string;
507
511
  emptyMessage: string;
508
512
  passesHeading: string;
@@ -530,6 +534,7 @@ export declare const shopInteractiveIslandPropsCodec: Readonly<{
530
534
  passes: readonly PublicPassProduct[];
531
535
  memberships: readonly PublicMembershipProduct[];
532
536
  passPurchaseMode: "add_to_cart" | "buy_now";
537
+ buttonVariant: "primary" | "secondary" | "outline" | "link";
533
538
  }>;
534
539
  }>>;
535
540
  }>) => unknown;
@@ -546,7 +551,7 @@ export declare const shopInteractiveIslandPropsCodec: Readonly<{
546
551
  kind: "passes-memberships";
547
552
  state: "empty" | "ready";
548
553
  className: string | null;
549
- layout: "grid" | "list";
554
+ layout: "grid" | "list" | "register";
550
555
  columns: string;
551
556
  emptyMessage: string;
552
557
  passesHeading: string;
@@ -574,6 +579,7 @@ export declare const shopInteractiveIslandPropsCodec: Readonly<{
574
579
  passes: readonly PublicPassProduct[];
575
580
  memberships: readonly PublicMembershipProduct[];
576
581
  passPurchaseMode: "add_to_cart" | "buy_now";
582
+ buttonVariant: "primary" | "secondary" | "outline" | "link";
577
583
  }>;
578
584
  }>>;
579
585
  }>>;
@@ -7,7 +7,7 @@ export type ShopDisplayConfig = {
7
7
  productSlug?: string | null;
8
8
  showPasses?: boolean;
9
9
  showMemberships?: boolean;
10
- layout?: 'grid' | 'list';
10
+ layout?: 'grid' | 'list' | 'register';
11
11
  columns?: string;
12
12
  showDescriptions?: boolean;
13
13
  showSummary?: boolean;
@@ -15,6 +15,7 @@ export type ShopDisplayConfig = {
15
15
  showPrices?: boolean;
16
16
  showValidityPeriod?: boolean;
17
17
  showPricePerCredit?: boolean | null;
18
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
18
19
  passesHeading?: string;
19
20
  membershipsHeading?: string;
20
21
  buyButtonText?: string;
@@ -34,6 +34,13 @@ type ShapePaint = {
34
34
  strokeLinecap?: 'butt' | 'round' | 'square';
35
35
  strokeLinejoin?: 'miter' | 'round' | 'bevel';
36
36
  strokeDasharray?: string | number;
37
+ /**
38
+ * Optional SVG `transform` (e.g. an angled balance-beam). Emitted as the
39
+ * `transform` presentation attribute, but only after passing the strict
40
+ * allow-list validator below — these trees can arrive from the DB via custom
41
+ * blocks, so an unrecognised value is dropped rather than rendered.
42
+ */
43
+ transform?: string;
37
44
  };
38
45
  export type SvgShape = ({
39
46
  kind: 'path';