@riverbankcms/sdk 0.149.0 → 0.150.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 (165) hide show
  1. package/dist/EventEmbeddedCheckoutStep-D00Kc8Zj.mjs +285 -0
  2. package/dist/{PreviewEditorSidebar-DBKln68M.mjs → PreviewEditorSidebar-7ZhmmnBB.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-DpRX4Mum.mjs → PreviewEditorUI-BIJucTRd.mjs} +2 -2
  4. package/dist/{SdkPreviewModeRuntime-DJPmPY-r.mjs → SdkPreviewModeRuntime-tj45gmCX.mjs} +4 -3
  5. package/dist/{SiteChromeCustomizeContext-JYA0cJ_Z.mjs → SiteChromeCustomizeContext-BFOt0ss-.mjs} +4454 -4059
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +660 -0
  7. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +510 -0
  8. package/dist/_dts/api/src/billing.d.ts +2 -2
  9. package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
  10. package/dist/_dts/api/src/footerCompositionContracts.d.ts +9 -0
  11. package/dist/_dts/api/src/footerSettings.d.ts +3 -3
  12. package/dist/_dts/api/src/index.d.ts +1 -1
  13. package/dist/_dts/api/src/navigation/bookingPortalLink.d.ts +13 -0
  14. package/dist/_dts/api/src/navigation.d.ts +1 -0
  15. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +9 -173
  16. package/dist/_dts/api/src/sdkThemeWire.d.ts +12 -0
  17. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
  18. package/dist/_dts/api/src/siteSettings.d.ts +2 -0
  19. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  20. package/dist/_dts/blocks/src/client.d.ts +2 -1
  21. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  22. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +30 -3
  23. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +10 -1
  24. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +38 -18
  26. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +6 -0
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +13 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +15 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +0 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/FullyBookedStep.d.ts +6 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
  34. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +15 -5
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +4 -2
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentLocation.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +72 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +66 -5
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -4
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +13 -5
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +11 -52
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +19 -2
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -42
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +7 -8
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +90 -24
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useGuestRegistrationRecovery.d.ts +30 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +24 -12
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useRegistrationAdmission.d.ts +18 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +6 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +1 -1
  51. package/dist/_dts/blocks/src/system/runtime/shared/stripe/browserStripe.d.ts +8 -0
  52. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +8 -0
  53. package/dist/_dts/commerce/src/purchase/checkoutCopy.d.ts +10 -0
  54. package/dist/_dts/commerce/src/purchase/checkoutPresentation.d.ts +49 -0
  55. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +4 -4
  56. package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +5 -1
  57. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +9 -0
  58. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  59. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +1 -0
  60. package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +9 -2
  61. package/dist/_dts/commerce/src/purchase/types.d.ts +5 -6
  62. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +3 -2
  63. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +6 -1
  64. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +7 -0
  65. package/dist/_dts/core/src/index.d.ts +1 -0
  66. package/dist/_dts/core/src/patch/index.d.ts +30 -0
  67. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +30 -1
  68. package/dist/_dts/sdk/src/bookings/index.d.ts +2 -1
  69. package/dist/_dts/sdk/src/bookings/types.d.ts +1 -1
  70. package/dist/_dts/sdk/src/version.d.ts +1 -1
  71. package/dist/_dts/theme-core/src/blocks/index.d.ts +1 -0
  72. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +147 -0
  73. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +22 -0
  74. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +22 -0
  75. package/dist/_dts/theme-core/src/cards/roles.d.ts +12 -0
  76. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  77. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +198 -0
  78. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +2 -0
  79. package/dist/_dts/theme-core/src/palette/utils/scrimContrast.d.ts +22 -0
  80. package/dist/_dts/theme-core/src/runtime/bridgeColourTokens.d.ts +10 -0
  81. package/dist/_dts/theme-core/src/schema.d.ts +330 -0
  82. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +0 -51
  83. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +0 -51
  84. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +11 -0
  85. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +7 -1
  86. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +7 -1
  87. package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +12 -6
  88. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +7 -4
  89. package/dist/_dts/theme-core/src/site-styles/sectionSurfaceBackgrounds.d.ts +65 -0
  90. package/dist/_dts/theme-core/src/site-styles/types.d.ts +17 -0
  91. package/dist/_dts/theme-core/src/surfaces/opaqueSurface.d.ts +43 -0
  92. package/dist/client/{BookingMailingListNote-Cr3EeTP5.mjs → BookingMailingListNote-CYHOufsI.mjs} +10 -440
  93. package/dist/client/{CheckboxChoice-B33MqoUo.mjs → CheckboxChoice-M-3HycLw.mjs} +1 -1
  94. package/dist/client/{DemoBookingPortalAccess-BFGB1Fay.mjs → DemoBookingPortalAccess-Cvr9O_ca.mjs} +2 -2
  95. package/dist/client/{EventCombined.client-DKYV0_ft.mjs → EventCombined.client-m5UZIobP.mjs} +7 -7
  96. package/dist/client/EventEmbeddedCheckoutStep-DL6zFAkA.mjs +289 -0
  97. package/dist/client/{EventListing.client-B9UIcEYc.mjs → EventListing.client-DeMfCM04.mjs} +2 -2
  98. package/dist/client/{LeafletStaticMap-CFLPkP0K.mjs → LeafletStaticMap-CvZ3gOdD.mjs} +1 -1
  99. package/dist/client/{checkoutUrls-CXhko2Rv.mjs → RichText-BtfNvQV6.mjs} +2 -29
  100. package/dist/client/{TerminalPanel-JjmgxEsR.mjs → TerminalPanel-CUCNEwlH.mjs} +2 -18
  101. package/dist/client/{ThemedButton-CKV1Jh2m.mjs → ThemedButton-C7WhXuRl.mjs} +2 -2
  102. package/dist/client/{accordion-DXWIfT3T.mjs → accordion-cQm5mjqs.mjs} +1 -1
  103. package/dist/client/{bookingForm-CjZgHNvv.mjs → bookingForm-BVPJE5RQ.mjs} +11 -10
  104. package/dist/client/bookings.mjs +2668 -1134
  105. package/dist/client/{carousel-DSLikmvZ.mjs → carousel-3vgnY7LC.mjs} +2 -2
  106. package/dist/client/{carousel.client-A2lG-9od.mjs → carousel.client-CISsdZvg.mjs} +1 -1
  107. package/dist/client/{cart-HDjWReFt.mjs → cart-BGK4oOjm.mjs} +3 -3
  108. package/dist/client/{checkout-CUvRZA3W.mjs → checkout-GsBLUNJD.mjs} +3 -3
  109. package/dist/client/checkoutUrls-ChxwaNtO.mjs +28 -0
  110. package/dist/client/client.mjs +3042 -1868
  111. package/dist/client/{colorStyles-j5U9v5JA.mjs → colorStyles-D-32xHZh.mjs} +2 -30
  112. package/dist/client/{context-DFmaZa-Q.mjs → context-D_8s12Fp.mjs} +1 -1
  113. package/dist/client/{dates-BBep1JnF.mjs → dates-DeJQbQ9T.mjs} +2 -2
  114. package/dist/client/{eventCalendar-zEobhxo4.mjs → eventCalendar-cmucD4NR.mjs} +10 -10
  115. package/dist/client/{eventCombined-Dp7bz5k-.mjs → eventCombined-ku3E9FTl.mjs} +4 -4
  116. package/dist/client/{eventDetails-FE-zqTt7.mjs → eventDetails-CyKZ61sF.mjs} +5 -5
  117. package/dist/client/{eventListing-BMt5snal.mjs → eventListing-B7yxGIhX.mjs} +4 -4
  118. package/dist/client/{eventRegistration-O6ZxHfOb.mjs → eventRegistration-BoXfSFgZ.mjs} +1403 -857
  119. package/dist/client/{form-DFa1D8vt.mjs → form-CNQOWhJo.mjs} +5 -5
  120. package/dist/client/{headerSection-CmjHLR-N.mjs → headerSection-DahaBJGQ.mjs} +3 -3
  121. package/dist/client/hooks.mjs +123 -64
  122. package/dist/client/{locationMap-BXKP_lGh.mjs → locationMap-BoDjqYlW.mjs} +4 -4
  123. package/dist/client/{media-Cl38iOMI.mjs → media-BFY0y2rb.mjs} +2 -1
  124. package/dist/client/{newsletterForm-CU-HmxGx.mjs → newsletterForm-DtzXDklw.mjs} +4 -4
  125. package/dist/client/{pricing-KEAEsibq.mjs → pricing-DXEh2Lhh.mjs} +1 -1
  126. package/dist/client/{productDetail-Ckp7MGnt.mjs → productDetail-D7cPa-00.mjs} +3 -3
  127. package/dist/client/{productList-D91V0sYa.mjs → productList-D1XMap66.mjs} +3 -3
  128. package/dist/client/{propsDecoder-DZd6RJeA.mjs → propsDecoder-DiIeBopB.mjs} +758 -245
  129. package/dist/client/rendering/client.mjs +4381 -2892
  130. package/dist/client/rendering/islands.mjs +19 -19
  131. package/dist/client/rendering.mjs +3026 -1852
  132. package/dist/client/result-DRW7JWXz.mjs +30 -0
  133. package/dist/client/{routeIslandApiConfig-E1EkhhYY.mjs → routeIslandApiConfig-wzR4lKAY.mjs} +1 -1
  134. package/dist/client/scrollToBlock-C86BYkyV.mjs +17 -0
  135. package/dist/client/{shop-4F2jLQPI.mjs → shop-CYT5P-S5.mjs} +8 -8
  136. package/dist/client/{shop-commerce-store-vicweP2K.mjs → shop-commerce-store-wKhsJQxI.mjs} +1 -1
  137. package/dist/client/{shop-commerce-BbfCJjB3.mjs → shop-commerce-ypBu_dx4.mjs} +9 -9
  138. package/dist/client/{shopShared-DlONJt0T.mjs → shopShared-DFGhYrf2.mjs} +52 -6
  139. package/dist/client/{useEventFilters-COYyL3m7.mjs → useEventFilters-blSbN5o7.mjs} +8 -8
  140. package/dist/preview-next/client/runtime.mjs +3 -3
  141. package/dist/{sdk-runtime-CwvFFjB-.mjs → sdk-runtime-2p8uQk1V.mjs} +1 -1
  142. package/dist/{separator-ByL72zUT.mjs → separator-Cvvzk0Oo.mjs} +1 -1
  143. package/dist/server/components.mjs +4066 -3765
  144. package/dist/server/config-validation.mjs +185 -126
  145. package/dist/server/config.mjs +185 -126
  146. package/dist/server/data.mjs +123 -64
  147. package/dist/server/index.mjs +1 -1
  148. package/dist/server/next.mjs +615 -314
  149. package/dist/server/page-converter.mjs +100 -56
  150. package/dist/server/prebuild.mjs +1 -1
  151. package/dist/server/rendering/server.mjs +4041 -3751
  152. package/dist/server/rendering.mjs +4069 -3768
  153. package/dist/server/routing.mjs +149 -72
  154. package/dist/server/server.mjs +124 -65
  155. package/dist/server/theme-bridge.mjs +1122 -310
  156. package/dist/server/theme.mjs +126 -116
  157. package/dist/spinner-CDo6AkDz.mjs +658 -0
  158. package/dist/styles/index.css +75 -212
  159. package/package.json +1 -1
  160. package/dist/_dts/billing/src/checkout/platform.d.ts +0 -77
  161. package/dist/_dts/billing/src/config/env.d.ts +0 -29
  162. package/dist/_dts/billing/src/stripe/client.d.ts +0 -29
  163. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +0 -63
  164. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +0 -9
  165. package/dist/client/urlParams-D71VXFGx.mjs +0 -47
@@ -10105,7 +10105,7 @@ var SimpleCache = class {
10105
10105
  * 1. This constant
10106
10106
  * 2. The "version" field in package.json
10107
10107
  */
10108
- const SDK_VERSION = "0.149.0";
10108
+ const SDK_VERSION = "0.150.0";
10109
10109
  //#endregion
10110
10110
  //#region src/client/error.ts
10111
10111
  let _Symbol$for;
@@ -12794,6 +12794,15 @@ function fallbackBackground(fallbackToken, palette) {
12794
12794
  reason: "unresolvable-colour"
12795
12795
  };
12796
12796
  }
12797
+ /** Every role's contextual styles against one proven solid surface. */
12798
+ function knownSurfaceButtonContextStyles(input) {
12799
+ return Object.fromEntries(VARIANT_ROLES.flatMap((role) => Object.entries(contextualButtonSurfaceStyles(resolveContextualButtonRole({
12800
+ role,
12801
+ buttonSystem: input.buttonSystem,
12802
+ palette: input.palette,
12803
+ surface: input.surface
12804
+ })))));
12805
+ }
12797
12806
  function resolveContextualButtonRole(input) {
12798
12807
  const requested = findVariant(input.buttonSystem, input.role);
12799
12808
  if (!requested) return {
@@ -15793,6 +15802,18 @@ function brandNonEmptyString(value, label) {
15793
15802
  if (value.length === 0) throw new Error(`${label} must be a non-empty string.`);
15794
15803
  return value;
15795
15804
  }
15805
+ /**
15806
+ * What a block's own section background field admits, read from its manifest.
15807
+ * A site style's surface rule may paint a gradient or a photo; a block whose
15808
+ * `_sectionStyles.background` refuses that paint would be dropped at render
15809
+ * admission, so the runtime compiler paints the surface's colour equivalent
15810
+ * instead (see `compileSectionBackground`).
15811
+ */
15812
+ const sectionBackgroundPaintValues = [
15813
+ "color",
15814
+ "gradient",
15815
+ "image"
15816
+ ];
15796
15817
  const plainFrame = { kind: "plain" };
15797
15818
  function panelFrame(treatment) {
15798
15819
  return {
@@ -15877,6 +15898,7 @@ function defineBlockDesignCapability(capability) {
15877
15898
  ...capability,
15878
15899
  kind: "designed",
15879
15900
  looks: capability.looks ?? "not-applicable",
15901
+ sectionBackgroundPaints: admittedSectionBackgroundPaints(capability.sectionBackgroundPaints),
15880
15902
  sectionHeights: capability.sectionHeights ?? ["default"],
15881
15903
  imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
15882
15904
  imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
@@ -15889,6 +15911,10 @@ function defineBlockDesignCapability(capability) {
15889
15911
  ...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
15890
15912
  };
15891
15913
  }
15914
+ /** Absent means the block admits every section background paint. */
15915
+ function admittedSectionBackgroundPaints(paints) {
15916
+ return paints ?? sectionBackgroundPaintValues;
15917
+ }
15892
15918
  //#endregion
15893
15919
  //#region ../theme-core/src/site-styles/logoBranding.ts
15894
15920
  const logoTextConfidenceValues = [
@@ -16167,12 +16193,22 @@ const mediaPresentationSchema = commonSchema.extend({
16167
16193
  const boxBackgroundSchema = z.discriminatedUnion("type", [
16168
16194
  commonSchema.extend({
16169
16195
  type: z.literal("color"),
16170
- color: tokenOrCssColorValueSchema.nullable().optional()
16196
+ color: tokenOrCssColorValueSchema.nullable().optional(),
16197
+ /**
16198
+ * Compiler-owned. The scrim a site-style colour surface lays over media
16199
+ * that replaces it (a Look's band meeting an authored photo), sized so the
16200
+ * surface's foreground stays legible over any pixel. A colour background
16201
+ * never draws it itself; `resolveSectionBackground` moves it onto the
16202
+ * merged media background as its overlay.
16203
+ */
16204
+ mediaScrim: boxBackgroundOverlaySchema.nullable().optional()
16171
16205
  }),
16172
16206
  commonSchema.extend({
16173
16207
  type: z.literal("gradient"),
16174
16208
  gradient: z.string().nullable().optional(),
16175
- gradientPresetId: z.string().min(1).nullable().optional()
16209
+ gradientPresetId: z.string().min(1).nullable().optional(),
16210
+ /** Compiler-owned; see the colour branch. */
16211
+ mediaScrim: boxBackgroundOverlaySchema.nullable().optional()
16176
16212
  }),
16177
16213
  mediaPresentationSchema.extend({
16178
16214
  type: z.literal("image"),
@@ -19901,6 +19937,17 @@ function defineBlockAppearancePreset(preset) {
19901
19937
  * (`defineBlockAppearancePreset` defaults it to `none`) — the block's own
19902
19938
  * composition still governs how its items look. The per-Look rationale for the card-bearing ones lives
19903
19939
  * in `.project/plans/1297-card-role-contract-site-styles-own-card-surfaces/mapping-table.md`.
19940
+ *
19941
+ * A Look asking for the `alternative` or `open` role is offered only where the
19942
+ * site style defines that role (`siteStyleSupportsLookDesign`), so two Looks
19943
+ * that differ only in role are distinct wherever both are offered.
19944
+ *
19945
+ * Retiring a Look is removing its entry. A stored pin to a retired id reads as
19946
+ * an unsupported pin in the page design editor model and renders the block's
19947
+ * auto Look, the same path an unavailable Look takes. Duplicates retired in
19948
+ * the 2026-09 Look audit: `feature-cards-soft-panels`,
19949
+ * `feature-cards-photo-tiles`, `feature-cards-editorial-pathways`,
19950
+ * `testimonials-default-cards`.
19904
19951
  */
19905
19952
  const brandScrimOptionGroups = [{
19906
19953
  id: "image-surface-treatment",
@@ -20285,16 +20332,6 @@ defineBlockAppearancePreset({
20285
20332
  treatment: "framed-programme"
20286
20333
  }
20287
20334
  }
20288
- }), defineBlockAppearancePreset({
20289
- id: "feature-cards-soft-panels",
20290
- target: "feature-cards",
20291
- label: "Soft tinted panels",
20292
- blockKinds: ["block.feature-cards"],
20293
- design: {
20294
- sectionSurface: "base",
20295
- contentFrame: plainFrame,
20296
- cardRole: "alternative"
20297
- }
20298
20335
  }), defineBlockAppearancePreset({
20299
20336
  id: "feature-cards-editorial-diptych",
20300
20337
  target: "feature-cards",
@@ -20306,27 +20343,6 @@ defineBlockAppearancePreset({
20306
20343
  contentFrame: plainFrame,
20307
20344
  cardRole: "default"
20308
20345
  }
20309
- }), defineBlockAppearancePreset({
20310
- id: "feature-cards-editorial-pathways",
20311
- target: "feature-cards",
20312
- label: "Editorial pathways",
20313
- blockKinds: ["block.feature-cards"],
20314
- constraints: { layoutVariantKeys: ["editorial-pathways"] },
20315
- design: {
20316
- sectionSurface: "base",
20317
- contentFrame: plainFrame,
20318
- cardRole: "default"
20319
- }
20320
- }), defineBlockAppearancePreset({
20321
- id: "feature-cards-photo-tiles",
20322
- target: "feature-cards",
20323
- label: "Photo tiles",
20324
- blockKinds: ["block.feature-cards"],
20325
- design: {
20326
- sectionSurface: "base",
20327
- contentFrame: plainFrame,
20328
- cardRole: "default"
20329
- }
20330
20346
  }), defineBlockAppearancePreset({
20331
20347
  id: "events-lined-panel",
20332
20348
  target: "events",
@@ -20415,16 +20431,6 @@ defineBlockAppearancePreset({
20415
20431
  contentFrame: panelFrame("raised"),
20416
20432
  cardRole: "default"
20417
20433
  }
20418
- }), defineBlockAppearancePreset({
20419
- id: "testimonials-default-cards",
20420
- target: "testimonials",
20421
- label: "Default cards",
20422
- blockKinds: ["block.testimonials"],
20423
- design: {
20424
- sectionSurface: "base",
20425
- contentFrame: plainFrame,
20426
- cardRole: "default"
20427
- }
20428
20434
  }), defineBlockAppearancePreset({
20429
20435
  id: "testimonials-statement-cards",
20430
20436
  target: "testimonials",
@@ -25234,9 +25240,7 @@ const curatedSiteStyles = [
25234
25240
  recommendedAppearancePresetIds: [
25235
25241
  "hero-split-editorial",
25236
25242
  "intro-portrait-bio",
25237
- "feature-cards-soft-panels",
25238
- "feature-cards-editorial-columns",
25239
- "feature-cards-photo-tiles",
25243
+ "feature-cards-bold-colors",
25240
25244
  "testimonials-non-carded",
25241
25245
  "faq-contained-help",
25242
25246
  "contact-form-panel"
@@ -25880,8 +25884,7 @@ const curatedSiteStyles = [
25880
25884
  "intro-portrait-bio",
25881
25885
  "feature-cards-editorial-columns",
25882
25886
  "feature-cards-editorial-diptych",
25883
- "feature-cards-editorial-pathways",
25884
- "feature-cards-soft-panels",
25887
+ "feature-cards-bold-colors",
25885
25888
  "events-lined-panel",
25886
25889
  "testimonials-non-carded",
25887
25890
  "faq-base-accordion",
@@ -26539,6 +26542,34 @@ function withLookCapability(declaration) {
26539
26542
  }
26540
26543
  };
26541
26544
  }
26545
+ /**
26546
+ * The section background paints a block's own `_sectionStyles.background`
26547
+ * field admits, read from its manifest so the design capability cannot drift
26548
+ * from what render admission accepts. A block without the field admits none.
26549
+ */
26550
+ function sectionBackgroundPaintsOfFields(fields) {
26551
+ const sectionStyles = fields.find((field) => field.id === "_sectionStyles");
26552
+ if (!sectionStyles || sectionStyles.type !== "modal") return [];
26553
+ const background = sectionStyles.schema.fields.find((field) => field.id === "background");
26554
+ if (!background || background.type !== "tabGroup") return [];
26555
+ const tabIds = new Set(background.tabs.map((tab) => tab.id));
26556
+ return [
26557
+ "color",
26558
+ "gradient",
26559
+ "image"
26560
+ ].filter((paint) => tabIds.has(paint));
26561
+ }
26562
+ /** Pins a designed capability's section background paints to the block's manifest. */
26563
+ function withManifestSectionBackgroundPaints(declaration, fields) {
26564
+ if (declaration.kind !== "capability") return declaration;
26565
+ return {
26566
+ kind: "capability",
26567
+ capability: {
26568
+ ...declaration.capability,
26569
+ sectionBackgroundPaints: sectionBackgroundPaintsOfFields(fields)
26570
+ }
26571
+ };
26572
+ }
26542
26573
  function declareNoBlockDesignCapability(reason) {
26543
26574
  return {
26544
26575
  kind: "none",
@@ -28432,15 +28463,11 @@ function resolveContextualButtonStyles(background, foreground, context, options)
28432
28463
  if (!paletteCache.has(palette)) paletteCache.set(palette, surfaceCache);
28433
28464
  const cached = surfaceCache.get(cacheKey);
28434
28465
  if (cached) return cached;
28435
- const styles = Object.fromEntries(VARIANT_ROLES.flatMap((role) => {
28436
- const resolution = resolveContextualButtonRole({
28437
- role,
28438
- buttonSystem,
28439
- palette,
28440
- surface: surface.surface
28441
- });
28442
- return Object.entries(contextualButtonSurfaceStyles(resolution));
28443
- }));
28466
+ const styles = knownSurfaceButtonContextStyles({
28467
+ surface: surface.surface,
28468
+ palette,
28469
+ buttonSystem
28470
+ });
28444
28471
  surfaceCache.set(cacheKey, styles);
28445
28472
  return styles;
28446
28473
  }
@@ -35156,6 +35183,20 @@ const footerEngagement = stack({
35156
35183
  ...footerSpamProtectionBinding
35157
35184
  }), [], when("module.engagement.kind", { equals: "mailing-list" }))
35158
35185
  ], when("module.kind", { equals: "engagement" }));
35186
+ const platformAttribution = el("div", {
35187
+ className: "rb-caption",
35188
+ "data-site-attribution": "macadamia"
35189
+ }, [
35190
+ text({ as: "span" }, bind("module.lead")),
35191
+ text({
35192
+ as: "span",
35193
+ value: " "
35194
+ }),
35195
+ link({
35196
+ href: { $bind: { from: "module.link.href" } },
35197
+ className: "footer-nav-link rb-caption transition-theme-standard"
35198
+ }, [text({ as: "span" }, bind("module.link.label"))])
35199
+ ], when("module.kind", { equals: "attribution" }));
35159
35200
  const footerGroup = stack({
35160
35201
  gap: "md",
35161
35202
  align: "stretch",
@@ -35185,6 +35226,7 @@ const footerGroup = stack({
35185
35226
  hours,
35186
35227
  socials,
35187
35228
  footerEngagement,
35229
+ platformAttribution,
35188
35230
  stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
35189
35231
  stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
35190
35232
  ], repeat("group.modules", "module"))], repeat("region.groups", "group"));
@@ -37974,14 +38016,18 @@ const calendarTabViewsSchema = z.enum([
37974
38016
  * @param needsPaymentStep - Whether user must complete payment method selection
37975
38017
  * @returns Array of wizard steps to display
37976
38018
  */
37977
- function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
38019
+ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep, paymentActive = false) {
37978
38020
  const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : [
37979
38021
  "select-event",
37980
38022
  "select-tickets",
37981
38023
  "enter-details"
37982
38024
  ];
37983
38025
  if (!needsPaymentStep) return baseSteps;
37984
- return [...baseSteps, "select-payment"];
38026
+ return paymentActive ? [
38027
+ ...baseSteps,
38028
+ "select-payment",
38029
+ "payment"
38030
+ ] : [...baseSteps, "select-payment"];
37985
38031
  }
37986
38032
  //#endregion
37987
38033
  //#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
@@ -38100,6 +38146,7 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
38100
38146
  "Date",
38101
38147
  "Tickets",
38102
38148
  "Details",
38149
+ "Payment options",
38103
38150
  "Payment"
38104
38151
  ];
38105
38152
  const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
@@ -38242,12 +38289,13 @@ function shellLabelForRegistrationStep(step, events) {
38242
38289
  switch (step) {
38243
38290
  case "select-event": return isDateSelection(events) ? "Date" : "Event";
38244
38291
  case "select-tickets": return "Tickets";
38292
+ case "fully-booked":
38245
38293
  case "enter-details": return "Details";
38246
- case "select-payment": return "Payment";
38294
+ case "select-payment": return "Payment options";
38295
+ case "payment": return "Payment";
38247
38296
  case "error":
38248
38297
  case "success":
38249
38298
  case "submitting":
38250
- case "redirecting":
38251
38299
  case "verifying-payment":
38252
38300
  case "verifying-timeout":
38253
38301
  case "payment-status":
@@ -38259,7 +38307,7 @@ function isDateSelection(events) {
38259
38307
  return Boolean(events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId));
38260
38308
  }
38261
38309
  function buildEventRegistrationShellBodyText(stepLabels) {
38262
- if (stepLabels.includes("Payment")) return "Preparing tickets, details, and payment options.";
38310
+ if (stepLabels.includes("Payment options")) return "Preparing tickets, details, and payment options.";
38263
38311
  if (stepLabels[0] === "Tickets") return "Preparing tickets and booking details.";
38264
38312
  return "Preparing dates, tickets, and booking details.";
38265
38313
  }
@@ -40234,7 +40282,8 @@ const eventCalendarLayout = [styledSection({
40234
40282
  fallback: false
40235
40283
  } },
40236
40284
  banded: { $bind: {
40237
- from: "content.banded",
40285
+ from: "content",
40286
+ transforms: [{ id: "events.calendarBanded" }],
40238
40287
  fallback: false
40239
40288
  } }
40240
40289
  }))]
@@ -46618,7 +46667,7 @@ function withDesignCapability(blockKind, definition, designCapability, designMet
46618
46667
  if (definition.manifest.name !== blockKind) throw new Error(`System block kind mismatch: expected ${blockKind}, received ${definition.manifest.name}.`);
46619
46668
  return {
46620
46669
  ...definition,
46621
- designCapability,
46670
+ designCapability: withManifestSectionBackgroundPaints(designCapability, definition.manifest.fields),
46622
46671
  designMetadata,
46623
46672
  manifest: {
46624
46673
  ...definition.manifest,
@@ -47669,6 +47718,16 @@ const defaultTransforms = createTransformRegistry([
47669
47718
  return resolveCalendarReadProfile(asPartialObject(value) ?? {});
47670
47719
  }
47671
47720
  },
47721
+ {
47722
+ id: "events.calendarBanded",
47723
+ kind: "formatter",
47724
+ summary: "Paint the week-board band only on a section with no background of its own",
47725
+ run(value) {
47726
+ const content = asPartialObject(value) ?? {};
47727
+ const sectionStyles = asPartialObject(content._sectionStyles);
47728
+ return content.banded === true && parseBackgroundContent(sectionStyles?.background) === null;
47729
+ }
47730
+ },
47672
47731
  ...formattingTransforms,
47673
47732
  ...layoutTransforms,
47674
47733
  ...chromeLogoTransforms,