@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
@@ -0,0 +1,52 @@
1
+ import { type EventSeriesId } from '../../../../../core/src/index';
2
+ import { z } from 'zod';
3
+ import type { PublicEvent, PublicEventDestination } from './shared/types';
4
+ declare const weekdayOrder: readonly ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
5
+ export type RecurringScheduleWeekday = (typeof weekdayOrder)[number];
6
+ export type RecurringScheduleCadence = Readonly<{
7
+ kind: 'weekly';
8
+ weekday: RecurringScheduleWeekday;
9
+ weekdayIndex: number;
10
+ startTime: string;
11
+ endTime: string;
12
+ timeZone: string;
13
+ }>;
14
+ export type RecurringScheduleBooking = Readonly<{
15
+ kind: 'available';
16
+ destination: PublicEventDestination;
17
+ }> | Readonly<{
18
+ kind: 'unavailable';
19
+ reason: 'missing_destination';
20
+ }>;
21
+ export type RecurringScheduleItem = Readonly<{
22
+ seriesId: EventSeriesId;
23
+ title: string;
24
+ venueName: string | null;
25
+ cadence: RecurringScheduleCadence;
26
+ booking: RecurringScheduleBooking;
27
+ }>;
28
+ export type RecurringScheduleDiagnostic = Readonly<{
29
+ seriesId: string;
30
+ reason: 'invalid_series_id' | 'insufficient_evidence' | 'inconsistent_weekday' | 'inconsistent_local_time' | 'inconsistent_weekly_interval' | 'inconsistent_recurrence' | 'unsupported_weekly_cadence' | 'inconsistent_timezone';
31
+ }>;
32
+ export type RecurringScheduleProjection = Readonly<{
33
+ items: readonly RecurringScheduleItem[];
34
+ diagnostics: readonly RecurringScheduleDiagnostic[];
35
+ }>;
36
+ export declare const recurringScheduleProjectionSchema: z.ZodType<RecurringScheduleProjection>;
37
+ export type RecurringScheduleEventEvidence = Readonly<{
38
+ destination: PublicEventDestination;
39
+ endsAt: string;
40
+ occurrenceId: string;
41
+ recurrence?: PublicEvent['recurrence'];
42
+ scheduleScope?: PublicEvent['scheduleScope'];
43
+ seriesId: string;
44
+ startsAt: string;
45
+ timeZone?: string;
46
+ title: string;
47
+ venue: Readonly<{
48
+ name: string;
49
+ }> | null;
50
+ }>;
51
+ export declare function projectRecurringSchedule(events: readonly RecurringScheduleEventEvidence[]): RecurringScheduleProjection;
52
+ export {};
@@ -0,0 +1,22 @@
1
+ import type { SystemBlockDefinition } from '../../registry';
2
+ import type { TipTapNode } from '../../manifest/richTextSchema';
3
+ import type { LinkValue } from '../../types/link';
4
+ import { type BlockConfig, type BlockContentShapeInput, type DefinedBlockManifest } from '../../defineBlock';
5
+ import { type SectionStylesContent } from '../../fields/boxStyles';
6
+ export { projectRecurringSchedule, recurringScheduleProjectionSchema, } from './recurring-schedule-projection';
7
+ export type { RecurringScheduleBooking, RecurringScheduleCadence, RecurringScheduleDiagnostic, RecurringScheduleItem, RecurringScheduleProjection, } from './recurring-schedule-projection';
8
+ export declare const recurringScheduleManifest: DefinedBlockManifest<BlockContentShapeInput<BlockConfig>>;
9
+ export type RecurringScheduleContent = Readonly<{
10
+ eyebrow?: string | null;
11
+ heading?: string | null;
12
+ description?: TipTapNode | null;
13
+ showVenue?: boolean | null;
14
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
15
+ seeAllButtonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
16
+ buttonText?: string | null;
17
+ seeAllUrl?: LinkValue | null;
18
+ seeAllLabel?: string | null;
19
+ emptyMessage?: string | null;
20
+ _sectionStyles?: SectionStylesContent;
21
+ }>;
22
+ export declare const recurringScheduleBlockDefinition: SystemBlockDefinition<RecurringScheduleContent>;
@@ -10,6 +10,21 @@ export declare const eventScheduleScopeSchema: z.ZodEnum<{
10
10
  recurring: "recurring";
11
11
  oneOff: "oneOff";
12
12
  }>;
13
+ export declare const publicEventRecurrenceSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
14
+ kind: z.ZodLiteral<"weekly">;
15
+ interval: z.ZodNumber;
16
+ weekdays: z.ZodArray<z.ZodEnum<{
17
+ MO: "MO";
18
+ TU: "TU";
19
+ WE: "WE";
20
+ TH: "TH";
21
+ FR: "FR";
22
+ SA: "SA";
23
+ SU: "SU";
24
+ }>>;
25
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
26
+ kind: z.ZodLiteral<"other">;
27
+ }, z.core.$strip>>], "kind">;
13
28
  export declare const eventDestinationModeSchema: z.ZodEnum<{
14
29
  "cms-managed": "cms-managed";
15
30
  "system-managed": "system-managed";
@@ -374,6 +389,21 @@ export declare const publicEventSchema: z.ZodObject<{
374
389
  recurring: "recurring";
375
390
  oneOff: "oneOff";
376
391
  }>>;
392
+ recurrence: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
393
+ kind: z.ZodLiteral<"weekly">;
394
+ interval: z.ZodNumber;
395
+ weekdays: z.ZodArray<z.ZodEnum<{
396
+ MO: "MO";
397
+ TU: "TU";
398
+ WE: "WE";
399
+ TH: "TH";
400
+ FR: "FR";
401
+ SA: "SA";
402
+ SU: "SU";
403
+ }>>;
404
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
405
+ kind: z.ZodLiteral<"other">;
406
+ }, z.core.$strip>>], "kind">>;
377
407
  id: z.ZodString;
378
408
  occurrenceId: z.ZodString;
379
409
  seriesId: z.ZodString;
@@ -1034,6 +1064,21 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodObject<{
1034
1064
  recurring: "recurring";
1035
1065
  oneOff: "oneOff";
1036
1066
  }>>;
1067
+ recurrence: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
1068
+ kind: z.ZodLiteral<"weekly">;
1069
+ interval: z.ZodNumber;
1070
+ weekdays: z.ZodArray<z.ZodEnum<{
1071
+ MO: "MO";
1072
+ TU: "TU";
1073
+ WE: "WE";
1074
+ TH: "TH";
1075
+ FR: "FR";
1076
+ SA: "SA";
1077
+ SU: "SU";
1078
+ }>>;
1079
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
1080
+ kind: z.ZodLiteral<"other">;
1081
+ }, z.core.$strip>>], "kind">>;
1037
1082
  id: z.ZodString;
1038
1083
  occurrenceId: z.ZodString;
1039
1084
  seriesId: z.ZodString;
@@ -48,6 +48,14 @@ export type PublicEventDestination = Readonly<{
48
48
  url: string;
49
49
  label: string;
50
50
  }>;
51
+ export type PublicEventRecurrenceWeekday = 'MO' | 'TU' | 'WE' | 'TH' | 'FR' | 'SA' | 'SU';
52
+ export type PublicEventRecurrence = Readonly<{
53
+ kind: 'weekly';
54
+ interval: number;
55
+ weekdays: readonly PublicEventRecurrenceWeekday[];
56
+ }> | Readonly<{
57
+ kind: 'other';
58
+ }>;
51
59
  export type PublicEventTicketTypeAvailability = {
52
60
  kind: "available";
53
61
  remainingCapacity: number | null;
@@ -97,6 +105,8 @@ export type PublicEvent = {
97
105
  destination: PublicEventDestination;
98
106
  /** Whether this occurrence belongs to a recurring or one-off series. */
99
107
  scheduleScope?: Exclude<EventScheduleScope, "any">;
108
+ /** Safe, normalized recurrence evidence when the series owns a recurrence rule. */
109
+ recurrence?: PublicEventRecurrence;
100
110
  id: string;
101
111
  /** Always the occurrence ID (stable pagination cursor) */
102
112
  occurrenceId: string;
@@ -6,10 +6,12 @@ import { type StandardAspectRatio } from "../fields/aspectRatio";
6
6
  import { type BlockCtaContent } from "../fields/ctas";
7
7
  import type { BlockIconValue, SemanticIconId } from "../icons";
8
8
  import { type FeatureCardIconTreatment } from "./feature-card-icons";
9
- type FeatureCardsVariant = "cards";
9
+ type FeatureCardsVariant = "cards" | "editorial-diptych" | "editorial-pathways";
10
10
  type FeatureCardsColumns = "2" | "3" | "4";
11
+ export type FeatureCardSurfaceRole = "open" | "panel";
11
12
  export declare const featureCardsManifest: DefinedBlockManifest<BlockContentShapeInput<BlockConfig>>;
12
13
  export type FeatureCard = {
14
+ surfaceRole?: FeatureCardSurfaceRole | null;
13
15
  media?: Media | null;
14
16
  aspectRatio?: StandardAspectRatio | null;
15
17
  icon?: BlockIconValue | SemanticIconId | null;
@@ -20,6 +22,7 @@ export type FeatureCard = {
20
22
  export type FeatureCardsCardMarker = "icons" | "numbers" | "none";
21
23
  export type FeatureCardsContent = {
22
24
  variant?: FeatureCardsVariant | null;
25
+ eyebrow?: string | null;
23
26
  title?: string | null;
24
27
  description?: TipTapNode | null;
25
28
  columns?: FeatureCardsColumns | null;
@@ -42,6 +42,7 @@ export * from "./event-details";
42
42
  export * from "./course-registration";
43
43
  export * from "./course-details";
44
44
  export * from "./events";
45
+ export * from "./events/recurring-schedule";
45
46
  export * from "./embed";
46
47
  export * from "./team-members";
47
48
  export * from "./image-gallery";
@@ -66,6 +66,14 @@ export declare const mediaTextManifest: import("..").DefinedBlockManifest<import
66
66
  readonly required: false;
67
67
  readonly multiline: false;
68
68
  readonly maxLength: 120;
69
+ }, {
70
+ readonly id: "eyebrow";
71
+ readonly type: "text";
72
+ readonly label: "Eyebrow";
73
+ readonly description: "Optional short label above the title";
74
+ readonly required: false;
75
+ readonly multiline: false;
76
+ readonly maxLength: 80;
69
77
  }, {
70
78
  readonly id: "titleAlignment";
71
79
  readonly type: "select";
@@ -5257,6 +5265,7 @@ export declare const mediaTextManifest: import("..").DefinedBlockManifest<import
5257
5265
  }>>;
5258
5266
  export type MediaTextContent = {
5259
5267
  title?: string | null;
5268
+ eyebrow?: string | null;
5260
5269
  titleAlignment?: MediaTextAlignment | null;
5261
5270
  imagePosition?: MediaTextImagePosition | null;
5262
5271
  gap?: SemanticSpacing | null;
@@ -31,7 +31,7 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
31
31
  readonly label: "Send signups to";
32
32
  readonly description: "Choose where new subscribers from this form should go.";
33
33
  readonly defaultValue: "riverbank";
34
- readonly required: true;
34
+ readonly required: false;
35
35
  readonly ui: {
36
36
  readonly intent: "behavior";
37
37
  };
@@ -117,7 +117,7 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
117
117
  readonly type: "text";
118
118
  readonly label: "Button label";
119
119
  readonly defaultValue: "Subscribe";
120
- }, {
120
+ }, import("../../../../block-form/src/backend/index").FieldDefinition, {
121
121
  readonly id: "successMessage";
122
122
  readonly type: "text";
123
123
  readonly label: "Success message";
@@ -148,6 +148,7 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
148
148
  readonly variants: {
149
149
  readonly stacked: import("..").NodeDefinition;
150
150
  readonly inline: import("..").NodeDefinition;
151
+ readonly "editorial-split": import("..").NodeDefinition;
151
152
  };
152
153
  readonly defaultVariant: "stacked";
153
154
  readonly variantOptions: {
@@ -159,6 +160,10 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
159
160
  readonly label: "Inline";
160
161
  readonly description: "Horizontal layout (email + button side by side)";
161
162
  };
163
+ readonly "editorial-split": {
164
+ readonly label: "Editorial split";
165
+ readonly description: "Copy and form in balanced side-by-side columns, stacked on mobile.";
166
+ };
162
167
  };
163
168
  readonly styleTokens: {
164
169
  readonly background: "surface";
@@ -197,6 +202,7 @@ export type NewsletterSignupContent = {
197
202
  preset: NewsletterSignupPreset;
198
203
  includePhone?: boolean | null;
199
204
  buttonLabel?: string | null;
205
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | null;
200
206
  successMessage?: string | null;
201
207
  privacyNote?: string | null;
202
208
  tags?: string | null;
@@ -1,13 +1,13 @@
1
- import type { SystemBlockDefinition } from "../../registry";
2
- import type { BlockManifest } from "../../manifest";
3
- import { type CardStylesContent, type SectionStylesContent } from "../../fields/boxStyles";
4
- import type { ButtonVariant } from "../events/shared/types";
5
- import { type OfferingsPreviewGroupOverride, type OfferingsPreviewSourceKey } from "./model";
1
+ import type { SystemBlockDefinition } from '../../registry';
2
+ import type { BlockManifest } from '../../manifest';
3
+ import { type CardStylesContent, type SectionStylesContent } from '../../fields/boxStyles';
4
+ import type { ButtonVariant } from '../events/shared/types';
5
+ import { type OfferingsPreviewGroupOverride, type OfferingsPreviewSourceKey } from './model';
6
6
  export declare const offeringsPreviewManifest: BlockManifest;
7
7
  export type OfferingsPreviewContent = {
8
8
  heading?: string | null;
9
9
  description?: unknown;
10
- itemLimit?: "1" | "2" | "3" | "4" | "5" | "6" | null;
10
+ itemLimit?: '1' | '2' | '3' | '4' | '5' | '6' | null;
11
11
  groupOrder?: readonly OfferingsPreviewSourceKey[] | null;
12
12
  groupOverrides?: readonly OfferingsPreviewGroupOverride[] | null;
13
13
  _cardStyles?: CardStylesContent;
@@ -17,5 +17,5 @@ export type OfferingsPreviewContent = {
17
17
  _sectionStyles?: SectionStylesContent;
18
18
  };
19
19
  export declare const offeringsPreviewBlockDefinition: SystemBlockDefinition<OfferingsPreviewContent>;
20
- export type { BookingOfferingPresetSummary, OfferingsPreviewGroupOrder, OfferingsPreviewGroupOverride, OfferingsPreviewSourceKey, } from "./model";
21
- export { deriveDefaultOfferingsPreviewGroups, inferLegacyOfferingsPreviewGroupOrder, isOfferingsPreviewSourceKey, normalizeOfferingsPreviewContentForWrite, normalizeOfferingsPreviewGroupOrder, resolveOfferingsPreviewGroupOrderEntries, resolveOfferingsPreviewGroupKeys, } from "./model";
20
+ export type { BookingOfferingPresetSummary, OfferingsPreviewGroupOrder, OfferingsPreviewGroupOverride, OfferingsPreviewSourceKey, } from './model';
21
+ export { deriveDefaultOfferingsPreviewGroups, inferLegacyOfferingsPreviewGroupOrder, isOfferingsPreviewSourceKey, normalizeOfferingsPreviewContentForWrite, normalizeOfferingsPreviewGroupOrder, resolveOfferingsPreviewGroupOrderEntries, resolveOfferingsPreviewGroupKeys, } from './model';
@@ -1,5 +1,5 @@
1
- import type { PublicEvent } from "../events/shared/types";
2
- import type { PublicCourse } from "../courses/shared/types";
1
+ import type { PublicEvent } from '../events/shared/types';
2
+ import type { PublicCourse } from '../courses/shared/types';
3
3
  export declare const OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
4
4
  export declare const OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT = "Book";
5
5
  export declare const OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE = "Nothing scheduled just yet.";
@@ -25,26 +25,26 @@ export declare const OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS: readonly [{
25
25
  readonly dataKey: "performanceEvents";
26
26
  readonly label: "Performances";
27
27
  }];
28
- export type OfferingsPreviewEventPreset = (typeof OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS)[number]["preset"];
29
- export type OfferingsPreviewEventSourceKey = (typeof OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS)[number]["sourceKey"];
30
- export type OfferingsPreviewEventDataKey = (typeof OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS)[number]["dataKey"];
28
+ export type OfferingsPreviewEventPreset = (typeof OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS)[number]['preset'];
29
+ export type OfferingsPreviewEventSourceKey = (typeof OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS)[number]['sourceKey'];
30
+ export type OfferingsPreviewEventDataKey = (typeof OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS)[number]['dataKey'];
31
31
  export declare const OFFERINGS_PREVIEW_EVENT_PRESETS: ("performance" | "class" | "workshop" | "retreat")[];
32
32
  export declare const OFFERINGS_PREVIEW_AUTHORABLE_SOURCE_KEYS: readonly [...("eventPreset:class" | "eventPreset:workshop" | "eventPreset:retreat" | "eventPreset:performance")[], "course"];
33
33
  export declare const OFFERINGS_PREVIEW_SOURCE_KEYS: readonly [...("eventPreset:class" | "eventPreset:workshop" | "eventPreset:retreat" | "eventPreset:performance")[], "course"];
34
- export type OfferingsPreviewSourceKey = OfferingsPreviewEventSourceKey | "course";
34
+ export type OfferingsPreviewSourceKey = OfferingsPreviewEventSourceKey | 'course';
35
35
  export type OfferingsPreviewSource = Readonly<{
36
- kind: "eventPreset";
36
+ kind: 'eventPreset';
37
37
  preset: OfferingsPreviewEventPreset;
38
38
  }> | Readonly<{
39
- kind: "course";
39
+ kind: 'course';
40
40
  }>;
41
- export type OfferingsPreviewCtaMode = "auto" | "custom" | "hidden";
42
- export type OfferingsPreviewGroupPresentation = "compact-list" | "single-card";
41
+ export type OfferingsPreviewCtaMode = 'auto' | 'custom' | 'hidden';
42
+ export type OfferingsPreviewGroupPresentation = 'compact-list' | 'single-card' | 'featured-summary';
43
43
  export type OfferingsPreviewRouteCandidate = Readonly<{
44
44
  entityId: string;
45
45
  path: string;
46
46
  title: string;
47
- kind: "page" | "content";
47
+ kind: 'page' | 'content';
48
48
  contentTypeKey?: string | null;
49
49
  }>;
50
50
  export type OfferingsPreviewGroupCtaConfig = Readonly<{
@@ -56,8 +56,8 @@ export type OfferingsPreviewResolvedCta = Readonly<{
56
56
  href: string;
57
57
  label: string;
58
58
  }>;
59
- export type BookingOfferingCanonicalBehaviour = OfferingsPreviewEventPreset | "course" | "appointment";
60
- export type BookingOfferingEngine = "event_series" | "course" | "appointment_service";
59
+ export type BookingOfferingCanonicalBehaviour = OfferingsPreviewEventPreset | 'course' | 'appointment';
60
+ export type BookingOfferingEngine = 'event_series' | 'course' | 'appointment_service';
61
61
  export type BookingOfferingPresetSummary = Readonly<{
62
62
  id: string;
63
63
  canonicalBehaviour: BookingOfferingCanonicalBehaviour;
@@ -90,27 +90,27 @@ export type OfferingsPreviewGroupOrderEntry = Readonly<{
90
90
  override?: OfferingsPreviewGroupOverride;
91
91
  }>;
92
92
  export type OfferingsPreviewItem = Readonly<{
93
- kind: "event";
93
+ kind: 'event';
94
94
  event: PublicEvent;
95
95
  } | {
96
- kind: "course";
96
+ kind: 'course';
97
97
  course: PublicCourse;
98
98
  path: string | null;
99
99
  }>;
100
100
  export type OfferingsPreviewGroupItemData = Readonly<{
101
- kind: "ready";
101
+ kind: 'ready';
102
102
  items: readonly OfferingsPreviewItem[];
103
103
  } | {
104
- kind: "failed";
105
- reason: "not_loaded";
104
+ kind: 'failed';
105
+ reason: 'not_loaded';
106
106
  }>;
107
107
  export type OfferingsPreviewGroupEventData = OfferingsPreviewGroupItemData;
108
108
  export type OfferingsPreviewGroupRenderState = Readonly<{
109
- kind: "items";
109
+ kind: 'items';
110
110
  group: ResolvedOfferingsPreviewGroup;
111
111
  items: readonly OfferingsPreviewItem[];
112
112
  } | {
113
- kind: "empty";
113
+ kind: 'empty';
114
114
  group: ResolvedOfferingsPreviewGroup;
115
115
  message: string;
116
116
  }>;
@@ -136,11 +136,11 @@ export declare function resolveOfferingsPreviewGroupKeys(input: Readonly<{
136
136
  overrides?: readonly OfferingsPreviewGroupOverride[] | null;
137
137
  }>): readonly OfferingsPreviewSourceKey[];
138
138
  export declare function normalizeOfferingsPreviewGroupOrder(value: readonly unknown[] | null | undefined): Readonly<{
139
- kind: "legacy";
139
+ kind: 'legacy';
140
140
  } | {
141
- kind: "default";
141
+ kind: 'default';
142
142
  } | {
143
- kind: "custom";
143
+ kind: 'custom';
144
144
  keys: readonly OfferingsPreviewSourceKey[];
145
145
  }>;
146
146
  export declare function inferLegacyOfferingsPreviewGroupOrder(overrides: readonly Readonly<{
@@ -159,4 +159,4 @@ export declare function buildOfferingsPreviewRenderStates(input: Readonly<{
159
159
  emptyMessage: string;
160
160
  failedMessage: string;
161
161
  }>): readonly OfferingsPreviewGroupRenderState[];
162
- export declare function resolveOfferingsPreviewCoursePath(course: Pick<PublicCourse, "contentEntryId" | "slug">, routes: readonly OfferingsPreviewRouteCandidate[] | null | undefined): string | null;
162
+ export declare function resolveOfferingsPreviewCoursePath(course: Pick<PublicCourse, 'contentEntryId' | 'slug'>, routes: readonly OfferingsPreviewRouteCandidate[] | null | undefined): string | null;
@@ -0,0 +1,29 @@
1
+ import type { PublicCourse } from '../courses/shared/types';
2
+ import type { PublicEvent } from '../events/shared/types';
3
+ type ScheduleOccurrence = Readonly<{
4
+ startsAt: string;
5
+ endsAt: string;
6
+ timeZone: string;
7
+ }>;
8
+ export type OfferingsPreviewScheduleSummary = Readonly<{
9
+ kind: 'single-occurrence';
10
+ occurrence: ScheduleOccurrence;
11
+ } | {
12
+ kind: 'multi-day-span';
13
+ occurrence: ScheduleOccurrence;
14
+ } | {
15
+ kind: 'fixed-recurring-run';
16
+ first: ScheduleOccurrence;
17
+ last: ScheduleOccurrence;
18
+ sessionCount: number;
19
+ recurrenceLabel: string;
20
+ } | {
21
+ kind: 'irregular-multi-session-run';
22
+ first: ScheduleOccurrence;
23
+ last: ScheduleOccurrence;
24
+ sessionCount: number;
25
+ }>;
26
+ export declare function deriveEventScheduleSummary(event: Pick<PublicEvent, 'startsAt' | 'endsAt' | 'timeZone'>): OfferingsPreviewScheduleSummary;
27
+ export declare function deriveCourseScheduleSummary(course: Pick<PublicCourse, 'sessions'>): OfferingsPreviewScheduleSummary | null;
28
+ export declare function nextCourseSessionStart(course: Pick<PublicCourse, 'sessions'>): string | null;
29
+ export {};
@@ -23,11 +23,12 @@ export declare const shopManifest: BlockManifest;
23
23
  export type ShopContent = {
24
24
  showPasses?: boolean | null;
25
25
  showMemberships?: boolean | null;
26
- layout?: "grid" | "list" | null;
26
+ layout?: "grid" | "list" | "register" | null;
27
27
  columns?: "1" | "2" | "3" | "4" | null;
28
28
  showDescriptions?: boolean | null;
29
29
  showValidityPeriod?: boolean | null;
30
30
  showPricePerCredit?: boolean | null;
31
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
31
32
  passesHeading?: string | null;
32
33
  membershipsHeading?: string | null;
33
34
  buyButtonText?: string | null;
@@ -1,4 +1,4 @@
1
- export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.contact-newsletter", "block.appointment-booking", "block.weekly-slot-availability", "block.event-registration", "block.event-details", "block.course-registration", "block.course-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.offerings-preview", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
1
+ export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.contact-newsletter", "block.appointment-booking", "block.weekly-slot-availability", "block.event-registration", "block.event-details", "block.course-registration", "block.course-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.recurring-schedule", "block.offerings-preview", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
2
2
  export type SystemBlockKind = (typeof SYSTEM_BLOCK_KINDS)[number];
3
3
  export type CustomBlockKind = `custom.${string}`;
4
4
  export type BlockKind = SystemBlockKind | CustomBlockKind;
@@ -1,5 +1,5 @@
1
1
  import { type MediaAssetId } from '../../../../core/src/index';
2
- import { type ThemeBackgroundTextLegibilityPlan, type AppearancePresetId, type LayoutVariantKey } from '../../../../theme-core/src/site-styles/index';
2
+ import { type ThemeBackgroundTextLegibilityPlan, type AppearancePresetId, type LayoutVariantKey, type PageDesignEditorBackgroundSupport } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { ThemeColorToken } from '../../../../theme-core/src/tokens/index';
4
4
  import type { RenderableMediaAsset } from '../../../../media-core/src/index';
5
5
  export type BackgroundMode = 'default' | 'color' | 'gradient' | 'image';
@@ -129,6 +129,7 @@ export type BackgroundOverrideBlockedReason = 'mode-unavailable' | 'value-unavai
129
129
  export type BackgroundCustomizeContent = Record<string, unknown>;
130
130
  export type BackgroundCapabilityBlock = Readonly<{
131
131
  blockKind: string;
132
+ backgroundSupport: PageDesignEditorBackgroundSupport;
132
133
  layout: Readonly<{
133
134
  effectiveValue: LayoutVariantKey;
134
135
  }> | null;
@@ -157,11 +158,7 @@ export type ResolveBackgroundCapabilityInput = Readonly<{
157
158
  }>;
158
159
  export declare const BACKGROUND_MODES: readonly ["default", "color", "gradient", "image"];
159
160
  export declare const DEFAULT_BACKGROUND_OVERRIDE: BackgroundOverride;
160
- export declare const BACKGROUND_CUSTOMIZABLE_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.event-calendar", "block.testimonials", "block.cta-full", "block.form"];
161
- export declare const BACKGROUND_COLOR_ONLY_BLOCK_KINDS: readonly ["block.intro", "block.event-calendar"];
162
- export declare const BACKGROUND_RICH_LAYOUT_FAMILIES: readonly ["split"];
163
161
  export declare const BACKGROUND_RICH_SECTION_SURFACES: readonly ["hero-image"];
164
- export declare function isBackgroundCustomizableBlockKind(blockKind: string): boolean;
165
162
  export type BackgroundColorPalette = Readonly<Record<string, string | null | undefined>>;
166
163
  export declare const backgroundColorTokens: readonly BackgroundColorToken[];
167
164
  export declare const quickBackgroundColorTokens: readonly BackgroundColorToken[];
@@ -1,3 +1,3 @@
1
- export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "getPublicEventDetails", "listPublicCourses", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
1
+ export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicCourses", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
2
2
  export type SupportedLoaderEndpoint = typeof SUPPORTED_LOADER_ENDPOINTS[number];
3
3
  export declare function isSupportedLoaderEndpoint(endpoint: string): endpoint is SupportedLoaderEndpoint;
@@ -11,6 +11,7 @@ export type BlockDesignCapabilityDeclaration = Readonly<{
11
11
  }>;
12
12
  export declare function declareBlockDesignCapability<const TCapability extends DesignedBlockDesignCapabilityInput>(capability: NoExtraKeys<TCapability, DesignedBlockDesignCapabilityInput>): BlockDesignCapabilityDeclaration;
13
13
  export declare function withEyebrowCapability(declaration: BlockDesignCapabilityDeclaration, eyebrowTreatments: NonEmptyReadonlyArray<EyebrowTreatment>): BlockDesignCapabilityDeclaration;
14
+ export declare function withLookCapability(declaration: BlockDesignCapabilityDeclaration): BlockDesignCapabilityDeclaration;
14
15
  export declare function declareNoBlockDesignCapability(reason: NoBlockDesignCapabilityReason): BlockDesignCapabilityDeclaration;
15
16
  export declare function resolveDeclaredBlockDesignCapability(declaration: BlockDesignCapabilityDeclaration | undefined): BlockDesignCapability | undefined;
16
17
  export declare function blockDesignCapabilityMapFromDefinitions(definitions: readonly SystemBlockDefinition<unknown, AnyBlockRuntimeDefinition | undefined>[]): BlockDesignCapabilityMap;
@@ -11,7 +11,7 @@ export declare const newsletterFormFragment: import("..").DefinedFragment<{
11
11
  readonly label: "Send signups to";
12
12
  readonly description: "Choose where new subscribers from this form should go.";
13
13
  readonly defaultValue: "riverbank";
14
- readonly required: true;
14
+ readonly required: false;
15
15
  readonly ui: {
16
16
  readonly intent: "behavior";
17
17
  };
@@ -97,7 +97,7 @@ export declare const newsletterFormFragment: import("..").DefinedFragment<{
97
97
  readonly type: "text";
98
98
  readonly label: "Button label";
99
99
  readonly defaultValue: "Subscribe";
100
- }, {
100
+ }, import("../../../../../block-form/src/backend/index").FieldDefinition, {
101
101
  readonly id: "successMessage";
102
102
  readonly type: "text";
103
103
  readonly label: "Success message";
@@ -1,9 +1,12 @@
1
1
  import type { CSSProperties } from "react";
2
2
  import type { NodeDefinition } from "../schema";
3
3
  import { type NodeModifier } from "../builder";
4
+ type StyledCardDataProps = Readonly<Record<`data-${string}`, unknown>>;
4
5
  export declare function styledCard(children: Array<NodeDefinition | null | undefined>, opts: {
5
6
  stylesFrom: string;
6
7
  backgroundFrom: string;
7
8
  baseClassName?: string;
8
9
  style?: CSSProperties;
10
+ dataProps?: StyledCardDataProps;
9
11
  }, ...mods: NodeModifier[]): NodeDefinition;
12
+ export {};
@@ -43,7 +43,7 @@ export { createBlockApi, BlockApiError } from './client';
43
43
  export type { BlockApiClient } from './client';
44
44
  export { BlockApiProvider, useBlockApi, useBlockApiOptional } from './context';
45
45
  export type { BlockApiProviderProps } from './context';
46
- export type { BlockApiConfig, BlockApiAuth, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, PricingType, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, PaymentMethod, EligibilityCheckRequest, EligibilityCheckResponse, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, CoursePaymentMethod, CourseEnrollRequest, CourseEnrollResponse, CourseEnrollSuccessResponse, CourseWaitlistResponse, CourseCheckoutRequest, CourseCheckoutResponse, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, EventTicketBreakdownLine, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerCourseEnrollment, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalCourseBookingQuestionsResponse, PortalCreateCourseBookingQuestionsUploadUrlRequest, PortalCreateCourseBookingQuestionsUploadUrlResponse, PortalFinalizeCourseBookingQuestionsUploadRequest, PortalFinalizeCourseBookingQuestionsUploadResponse, PortalUpdateCourseBookingQuestionsRequest, PortalUpdateCourseBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelCourseEnrollmentRequest, PortalCancelCourseEnrollmentResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, } from './types';
46
+ export type { BlockApiConfig, BlockApiAuth, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, PricingType, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, PaymentMethod, EligibilityCheckRequest, EligibilityCheckResponse, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, CoursePaymentMethod, CourseEnrollRequest, CourseEnrollResponse, CourseEnrollSuccessResponse, CourseWaitlistResponse, CourseCheckoutRequest, CourseCheckoutResponse, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderFilter, CustomerOrderItem, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, CustomerOrderRefund, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, EventTicketBreakdownLine, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerCourseEnrollment, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalCourseBookingQuestionsResponse, PortalCreateCourseBookingQuestionsUploadUrlRequest, PortalCreateCourseBookingQuestionsUploadUrlResponse, PortalFinalizeCourseBookingQuestionsUploadRequest, PortalFinalizeCourseBookingQuestionsUploadResponse, PortalUpdateCourseBookingQuestionsRequest, PortalUpdateCourseBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelCourseEnrollmentRequest, PortalCancelCourseEnrollmentResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, } from './types';
47
47
  export { discountAvailabilityAllowsManualEntry, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, } from './types';
48
48
  export type { BookingQuestionsDocumentAnswerValue } from '../../../portal/types';
49
49
  export { deriveCreditProductLabels, getCreditProductCreditUnit, getCreditProductTypeLabel, getPortalCreditProductCreditNoun, } from './creditProducts';
@@ -0,0 +1,2 @@
1
+ import type { BlockCompositionIntent } from '../../../../theme-core/src/site-styles/index';
2
+ export declare function readBlockComposition(value: unknown): BlockCompositionIntent | null;