@riverbankcms/sdk 0.136.0 → 0.137.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 (160) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/dist/{PreviewEditorSidebar-BU5ZlhQR.mjs → PreviewEditorSidebar-Bn6cONPa.mjs} +8 -8
  3. package/dist/{PreviewEditorUI-9XkHL-bC.mjs → PreviewEditorUI-LAwXZPSx.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-wbEpXryy.mjs → PreviewQueryProvider-ztQUdsNo.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CnWmj-2B.mjs → SdkPreviewModeRuntime-BbbGsI_v.mjs} +596 -164
  6. package/dist/{SiteChromeCustomizeContext-B6d5zkog.mjs → SiteChromeCustomizeContext-BbkNSt5a.mjs} +2888 -1404
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +12 -298
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +21 -14
  9. package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
  10. package/dist/_dts/api/src/accessAdmin.d.ts +1 -9
  11. package/dist/_dts/api/src/accountApi.d.ts +49 -2
  12. package/dist/_dts/api/src/contentRuntime.d.ts +1 -4
  13. package/dist/_dts/api/src/domainConnection.d.ts +41 -0
  14. package/dist/_dts/api/src/endpoints.d.ts +194 -181
  15. package/dist/_dts/api/src/index.d.ts +4 -3
  16. package/dist/_dts/api/src/media.d.ts +19 -2
  17. package/dist/_dts/api/src/sdkContracts.d.ts +2 -15
  18. package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
  19. package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +61 -0
  20. package/dist/_dts/api/src/sdkThemeWire.d.ts +15 -4
  21. package/dist/_dts/api/src/siteInfrastructure.d.ts +17 -23
  22. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +7 -21
  23. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +27 -3
  24. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
  25. package/dist/_dts/api/src/types.d.ts +1 -1
  26. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -2
  27. package/dist/_dts/blocks/src/index.d.ts +1 -1
  28. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +9 -0
  29. package/dist/_dts/blocks/src/pageRendererBlockSupport.d.ts +75 -0
  30. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +2 -0
  31. package/dist/_dts/blocks/src/server.d.ts +1 -1
  32. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  34. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +34 -22
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -3
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +5 -2
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +31 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +1 -1
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
  58. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
  59. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  60. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +8 -40
  61. package/dist/_dts/db/src/index.d.ts +1 -0
  62. package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
  63. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
  64. package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
  65. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
  66. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  67. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
  68. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
  69. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
  70. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
  71. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
  72. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
  73. package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
  74. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -1
  75. package/dist/_dts/sdk/src/version.d.ts +1 -1
  76. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  77. package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
  78. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +25 -2
  79. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -3
  80. package/dist/_dts/theme-core/src/schema.d.ts +12 -11
  81. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
  82. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +10 -0
  83. package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
  84. package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
  85. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
  86. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -9
  87. package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
  88. package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
  89. package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
  90. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +10 -1
  91. package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +1 -1
  92. package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +7 -0
  93. package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
  94. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  95. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
  96. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
  97. package/dist/client/{BookingConsentAgreement-DCch21a6.mjs → BookingConsentAgreement--_fUCZe-.mjs} +2 -2
  98. package/dist/client/{DiscountCodeDisclosure-DIj1T59K.mjs → DiscountCodeDisclosure-BMipSoDJ.mjs} +1 -1
  99. package/dist/client/{EventCombined.client-BWVNlXTx.mjs → EventCombined.client-CwJOxn7A.mjs} +154 -178
  100. package/dist/client/{EventListing.client-DVFCDe3i.mjs → EventListing.client-eVwiylPW.mjs} +2 -2
  101. package/dist/client/{LeafletStaticMap-BY5mIHw9.mjs → LeafletStaticMap-IKenna5u.mjs} +1 -1
  102. package/dist/client/{accordion-CK29E8rG.mjs → accordion-MGAO3PuE.mjs} +1 -1
  103. package/dist/client/{bookingForm-DFvnet-N.mjs → bookingForm-CudlQPUu.mjs} +5 -5
  104. package/dist/client/bookings.mjs +418 -79
  105. package/dist/client/capacity-BW00PO7s.mjs +271 -0
  106. package/dist/client/{carousel-BVU5NQlb.mjs → carousel-BrbGJ2Jl.mjs} +1 -1
  107. package/dist/client/{cart-BNItcZVa.mjs → cart-Bq5eU0xZ.mjs} +3 -3
  108. package/dist/client/{checkout-Bu6iCdkP.mjs → checkout-BAFVRdrK.mjs} +3 -3
  109. package/dist/client/client.mjs +2919 -1918
  110. package/dist/client/{context-BImarOAq.mjs → context-DCkiHVdD.mjs} +8 -5
  111. package/dist/client/dates-2RPXHQy4.mjs +264 -0
  112. package/dist/client/{eventCalendar-DS2h-UXD.mjs → eventCalendar-B0O-hPF7.mjs} +10 -17
  113. package/dist/client/{eventCombined-Drt4Oq9p.mjs → eventCombined-DCkDaoDI.mjs} +3 -3
  114. package/dist/client/{eventDetails-Bl2vWgTX.mjs → eventDetails-D8GG2dnD.mjs} +5 -3
  115. package/dist/client/{eventListing-CS7PHY7v.mjs → eventListing-3ssV_bxz.mjs} +3 -3
  116. package/dist/client/{eventRegistration-D-j8eNy2.mjs → eventRegistration-bPQo3kVw.mjs} +562 -309
  117. package/dist/client/{form-RMpoLTyr.mjs → form-qMv8RDkk.mjs} +2 -2
  118. package/dist/client/{headerSection-BYE3Lb3k.mjs → headerSection-CH0Sc5hX.mjs} +2 -2
  119. package/dist/client/hooks.mjs +289 -32
  120. package/dist/client/{locationMap-BxSr7Kkh.mjs → locationMap-0_xlBnNI.mjs} +2 -2
  121. package/dist/client/{newsletterForm-DerbXwFC.mjs → newsletterForm-NUW7m9RI.mjs} +2 -2
  122. package/dist/client/{productDetail-4SZCLhAf.mjs → productDetail-FBEOM7jW.mjs} +3 -3
  123. package/dist/client/{productList-D7AP4GNq.mjs → productList-R0OSGhnn.mjs} +3 -3
  124. package/dist/client/{propsDecoder-pzBeCh14.mjs → propsDecoder-pYvx_Srl.mjs} +88 -380
  125. package/dist/client/rendering/client.mjs +2616 -1637
  126. package/dist/client/rendering/islands.mjs +17 -17
  127. package/dist/client/rendering.mjs +2710 -1702
  128. package/dist/client/{scrollToBlock-CduAKf8T.mjs → scrollToBlock-ByQv96M2.mjs} +1 -1
  129. package/dist/client/{shop-Cp5p_kGe.mjs → shop-RUG9DmRE.mjs} +6 -6
  130. package/dist/client/{shop-commerce-DicXYaYX.mjs → shop-commerce-B76Jz23B.mjs} +5 -5
  131. package/dist/client/{shop-commerce-store-CGWnpY4K.mjs → shop-commerce-store-QuQNdDsD.mjs} +1 -1
  132. package/dist/client/{shopShared-BDf9ljkm.mjs → shopShared-vXU1omwJ.mjs} +3 -3
  133. package/dist/client/{useEventFilters-DeeyGYuk.mjs → useEventFilters-ByuU6HLA.mjs} +33 -18
  134. package/dist/preview-next/before-render.mjs +79 -51
  135. package/dist/preview-next/client/runtime.mjs +4 -4
  136. package/dist/preview-next/keepAlive.mjs +79 -51
  137. package/dist/preview-next/middleware.mjs +79 -51
  138. package/dist/{previewAuthStore-DbqBol0V.mjs → previewAuthStore-L_cKW8Sb.mjs} +79 -51
  139. package/dist/{sdk-runtime-19MO27F0.mjs → sdk-runtime-sUMr5d70.mjs} +2 -2
  140. package/dist/{separator-DaPLtJ1f.mjs → separator-BIHkie5i.mjs} +1 -1
  141. package/dist/server/components.mjs +2077 -1274
  142. package/dist/server/config-validation.mjs +289 -32
  143. package/dist/server/config.mjs +289 -32
  144. package/dist/server/data.mjs +289 -32
  145. package/dist/server/index.mjs +80 -52
  146. package/dist/server/next.mjs +1822 -1111
  147. package/dist/server/page-converter.mjs +167 -31
  148. package/dist/server/prebuild.mjs +1 -1
  149. package/dist/server/rendering/server.mjs +1988 -1286
  150. package/dist/server/rendering.mjs +1943 -1182
  151. package/dist/server/routing.mjs +351 -86
  152. package/dist/server/server.mjs +293 -128
  153. package/dist/server/theme-bridge.mjs +52 -8
  154. package/dist/server/theme.mjs +27 -8
  155. package/dist/styles/index.css +15 -0
  156. package/package.json +1 -1
  157. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
  158. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
  159. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
  160. /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
@@ -4568,6 +4568,11 @@ const gradientConfigSchema = z.object({
4568
4568
  position: z.string().optional(),
4569
4569
  stops: z.array(gradientStopSchema).min(2)
4570
4570
  });
4571
+ const gradientsSchema = z.object({
4572
+ button: z.string().min(1).nullable().optional(),
4573
+ hero: z.string().min(1).nullable().optional(),
4574
+ background: z.string().min(1).nullable().optional()
4575
+ });
4571
4576
  //#endregion
4572
4577
  //#region ../theme-core/src/interactive/baseSchema.ts
4573
4578
  /**
@@ -5318,11 +5323,30 @@ const headerContainerSchema = z.object({
5318
5323
  tint: z.string().nullable().optional(),
5319
5324
  opacity: z.number().min(0).max(1).default(.12)
5320
5325
  }).optional();
5321
- const headerInteractionPaletteSchema = z.enum([
5326
+ //#endregion
5327
+ //#region ../theme-core/src/header/interactionPalette.ts
5328
+ /**
5329
+ * The palettes that fill the nav link with a colour on hover and focus. Each
5330
+ * one names a background/foreground token pair.
5331
+ */
5332
+ const headerInteractionPillPaletteValues = [
5322
5333
  "primary",
5323
5334
  "secondary",
5324
5335
  "accent"
5325
- ]);
5336
+ ];
5337
+ /**
5338
+ * "No pill": the nav link keeps whatever hover treatment its recipe compiled,
5339
+ * and the palette step writes nothing at all (#1318 Phase 4c decision 2).
5340
+ *
5341
+ * It exists because "a colour change on hover, no filled background" was not
5342
+ * expressible in the vocabulary, and it is what
5343
+ * `anna-raven-therapy-and-yoga` and `kirtan-lucy` have rendered since before
5344
+ * the palette existed. Without it those two rows can only be classified as a
5345
+ * conscious visual change.
5346
+ */
5347
+ const headerInteractionQuietPalette = "quiet";
5348
+ const headerInteractionPaletteValues = [...headerInteractionPillPaletteValues, headerInteractionQuietPalette];
5349
+ const headerInteractionPaletteSchema = z.enum(headerInteractionPaletteValues);
5326
5350
  //#endregion
5327
5351
  //#region ../theme-core/src/boxBackgroundSchema.ts
5328
5352
  const boxBackgroundOverlaySchema = z.preprocess(normalizeAuthoringOpacity, z.discriminatedUnion("type", [
@@ -5704,11 +5728,12 @@ const inputStyle = z.object({
5704
5728
  ]),
5705
5729
  label: z.enum(["inside", "above"])
5706
5730
  });
5707
- const headerPositioning = z.enum([
5731
+ const headerPositioningValues = [
5708
5732
  "static",
5709
5733
  "sticky",
5710
5734
  "fixed"
5711
- ]);
5735
+ ];
5736
+ const headerPositioning = z.enum(headerPositioningValues);
5712
5737
  const headerNavStyle = z.enum([
5713
5738
  "minimal",
5714
5739
  "underline",
@@ -5843,7 +5868,7 @@ const headerSchema = z.object({
5843
5868
  variant: headerVariantWithLegacyAliasSchema,
5844
5869
  positioning: headerPositioning,
5845
5870
  shrinkOnScroll: z.boolean(),
5846
- maxWidth: headerMaxWidth,
5871
+ maxWidth: headerMaxWidth.default("container"),
5847
5872
  scrollTreatment: headerScrollTreatmentSchema,
5848
5873
  background: headerBackgroundSchema.default({
5849
5874
  type: "color",
@@ -6042,11 +6067,6 @@ const bodyTextSchema = z.object({ intro: z.object({
6042
6067
  paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
6043
6068
  headingSize: bodyTextIntroTypographySizeSchema.optional()
6044
6069
  }).optional() }).optional();
6045
- const gradientsSchema = z.object({
6046
- button: z.string().min(1).nullable().optional(),
6047
- hero: z.string().min(1).nullable().optional(),
6048
- background: z.string().min(1).nullable().optional()
6049
- });
6050
6070
  /**
6051
6071
  * Testimonial quote-mark treatment, owned by the site style (analogous to the
6052
6072
  * accordion icon). `style` is the coarse selector; the optional fields fine-tune
@@ -6927,6 +6947,12 @@ function cardRoleFromLegacyVocabulary(value) {
6927
6947
  */
6928
6948
  const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
6929
6949
  //#endregion
6950
+ //#region ../theme-core/src/site-styles/compilationPlan.ts
6951
+ const defaultHeaderBrandPreferences = {
6952
+ brandDisplay: "auto",
6953
+ logoSize: "auto"
6954
+ };
6955
+ //#endregion
6930
6956
  //#region ../theme-core/src/site-styles/sectionTransitions.ts
6931
6957
  function boundaryRuntimeMetrics(family, size, heightExpression) {
6932
6958
  return {
@@ -7945,6 +7971,12 @@ const overlayLogoAccommodations = [
7945
7971
  inlineMarkWithTitleLogoAccommodation,
7946
7972
  unbackedOverlayLogoAccommodation
7947
7973
  ];
7974
+ const allCuratedLogoAccommodations = [
7975
+ ...inlineClassicLogoAccommodations,
7976
+ ...centeredLogoAccommodations,
7977
+ ...overlayLogoAccommodations
7978
+ ];
7979
+ new Set(allCuratedLogoAccommodations.filter((option) => option.providesBacking === true).map((option) => option.pattern));
7948
7980
  const headerLayoutCatalog = defineExactCatalog()([
7949
7981
  {
7950
7982
  id: asHeaderLayoutId("classic"),
@@ -8094,6 +8126,10 @@ defineLookOptionGroup({
8094
8126
  {
8095
8127
  id: "secondary",
8096
8128
  label: "Secondary"
8129
+ },
8130
+ {
8131
+ id: headerInteractionQuietPalette,
8132
+ label: "Text only"
8097
8133
  }
8098
8134
  ]
8099
8135
  });
@@ -10515,6 +10551,67 @@ const blockDesignFallback = {
10515
10551
  };
10516
10552
  blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.transitionAfter, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
10517
10553
  //#endregion
10554
+ //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
10555
+ const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
10556
+ const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
10557
+ siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
10558
+ function parseSiteChromeBackgroundColorToken(value) {
10559
+ const token = parseBackgroundAppearanceColorToken(value);
10560
+ return token ? token : null;
10561
+ }
10562
+ function toSiteChromeBackgroundColorTokens(tokenNames) {
10563
+ return tokenNames.flatMap((name) => {
10564
+ const token = parseSiteChromeBackgroundColorToken(name);
10565
+ return token ? [token] : [];
10566
+ });
10567
+ }
10568
+ //#endregion
10569
+ //#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
10570
+ const headerNavTypographyPreferenceValues = [
10571
+ "inherit",
10572
+ "body",
10573
+ "heading"
10574
+ ];
10575
+ const headerNavFontSizePreferenceValues = [
10576
+ "inherit",
10577
+ "sm",
10578
+ "base",
10579
+ "lg",
10580
+ "xl"
10581
+ ];
10582
+ const defaultHeaderNavPreferences = {
10583
+ typography: "inherit",
10584
+ fontSize: "inherit",
10585
+ interactionPalette: "recommended"
10586
+ };
10587
+ //#endregion
10588
+ //#region ../theme-core/src/site-styles/headerBrandPresentation.ts
10589
+ /**
10590
+ * Whether the header wears a brand presentation at all (#1318 Phase 4c).
10591
+ *
10592
+ * `applyHeaderBrandPresentation` is unconditional today: given a logo context
10593
+ * it always writes a `logo` object carrying a resolved display, size and
10594
+ * accommodation. That makes "this header has no brand presentation block" —
10595
+ * which is what several live sites persist, including one whose site *does*
10596
+ * have a logo asset — a state the preference record could not express, so a
10597
+ * recompile would silently give the site a logo treatment it has never
10598
+ * rendered.
10599
+ *
10600
+ * This is the third field in this phase with that shape, after the interaction
10601
+ * palette and the nav text size: the persisted bytes carry intent the reader
10602
+ * cannot say, so the recompile "corrects" it. The fix is the same one — widen
10603
+ * the closed vocabulary with a named member and derive it by baseline
10604
+ * comparison — and it is a *widening*, not a restyle: `'recommended'` is the
10605
+ * default and reproduces today's behaviour exactly, so no row whose bytes carry
10606
+ * a presentation compiles differently for `'plain'` existing.
10607
+ *
10608
+ * `'plain'` is deliberately not "preserve whatever bytes are there". It is a
10609
+ * constructive instruction — *write no presentation block* — so Phase 4e's
10610
+ * compiler, which builds the header from nothing, can produce it.
10611
+ */
10612
+ const headerBrandPresentationValues = ["recommended", "plain"];
10613
+ defaultHeaderBrandPreferences.brandDisplay, defaultHeaderBrandPreferences.logoSize, defaultHeaderNavPreferences.typography, defaultHeaderNavPreferences.fontSize, defaultHeaderNavPreferences.interactionPalette;
10614
+ //#endregion
10518
10615
  //#region ../theme-core/src/site-styles/generatedSchemas.ts
10519
10616
  function uniqueNonEmpty(values) {
10520
10617
  const uniqueValues = [...new Set(values)];
@@ -10583,6 +10680,56 @@ z.object({
10583
10680
  blocks: z.array(generatedPageDesignBlockIntentSchema)
10584
10681
  }).strict();
10585
10682
  //#endregion
10683
+ //#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
10684
+ const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
10685
+ const token = parseSiteChromeBackgroundColorToken(value);
10686
+ if (token === null) {
10687
+ ctx.addIssue({
10688
+ code: "custom",
10689
+ message: "Unknown site chrome background colour token"
10690
+ });
10691
+ return z.NEVER;
10692
+ }
10693
+ return token;
10694
+ });
10695
+ const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
10696
+ kind: z.literal("color"),
10697
+ token: backgroundColorTokenSchema
10698
+ }).strict()]);
10699
+ const logoTextIntentSchema = z.object({
10700
+ mobileMaxWidth: z.enum([
10701
+ "xs",
10702
+ "sm",
10703
+ "md"
10704
+ ]).optional(),
10705
+ mobileWrapLines: z.union([z.literal(1), z.literal(2)]).optional(),
10706
+ hideOnShrink: z.boolean().optional()
10707
+ }).strict();
10708
+ const structureSchema = z.object({
10709
+ positioning: z.union([z.literal("inherit"), z.enum(headerPositioningValues)]),
10710
+ shrinkOnScroll: z.union([z.literal("inherit"), z.boolean()]),
10711
+ logoText: z.union([
10712
+ z.literal("inherit"),
10713
+ z.literal("none"),
10714
+ logoTextIntentSchema
10715
+ ])
10716
+ }).strict();
10717
+ const headerPreferencesShape = {
10718
+ brandPresentation: z.enum(headerBrandPresentationValues),
10719
+ brandDisplay: z.enum(brandDisplayModeValues),
10720
+ logoSize: z.enum(logoSizePolicyValues),
10721
+ navFontRole: z.enum(headerNavTypographyPreferenceValues),
10722
+ navTextSize: z.enum(headerNavFontSizePreferenceValues),
10723
+ interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
10724
+ background: backgroundOverrideSchema,
10725
+ structure: structureSchema
10726
+ };
10727
+ z.object(headerPreferencesShape).strict();
10728
+ z.object(headerPreferencesShape).omit({
10729
+ brandPresentation: true,
10730
+ structure: true
10731
+ }).strict();
10732
+ //#endregion
10586
10733
  //#region ../theme-core/src/site-styles/pageDesignAuthority.ts
10587
10734
  const nonEmptyStringSchema = z.string().min(1);
10588
10735
  const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
@@ -10684,21 +10831,6 @@ function collectBlockSequenceIssues(snapshots) {
10684
10831
  return issues;
10685
10832
  }
10686
10833
  //#endregion
10687
- //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
10688
- const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
10689
- const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
10690
- siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
10691
- function parseSiteChromeBackgroundColorToken(value) {
10692
- const token = parseBackgroundAppearanceColorToken(value);
10693
- return token ? token : null;
10694
- }
10695
- function toSiteChromeBackgroundColorTokens(tokenNames) {
10696
- return tokenNames.flatMap((name) => {
10697
- const token = parseSiteChromeBackgroundColorToken(name);
10698
- return token ? [token] : [];
10699
- });
10700
- }
10701
- //#endregion
10702
10834
  //#region ../theme-core/src/site-styles/tokenRecipes.ts
10703
10835
  const themeTokenRecipeOptions = {
10704
10836
  palette: [
@@ -21675,7 +21807,7 @@ const eventDisplayFields = [
21675
21807
  {
21676
21808
  id: "showCapacity",
21677
21809
  type: "boolean",
21678
- label: "Show available spots",
21810
+ label: "Show available places",
21679
21811
  description: "Display remaining capacity",
21680
21812
  required: false,
21681
21813
  defaultValue: true,
@@ -21974,7 +22106,7 @@ function planEventRegistrationScope(input) {
21974
22106
  };
21975
22107
  }
21976
22108
  //#endregion
21977
- //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
22109
+ //#region ../blocks/src/system/runtime/nodes/events/domain/destination.ts
21978
22110
  function isRecord$5(value) {
21979
22111
  return typeof value === "object" && value !== null && !Array.isArray(value);
21980
22112
  }
@@ -21992,7 +22124,7 @@ function resolveRuntimeEventDestination(event) {
21992
22124
  };
21993
22125
  }
21994
22126
  //#endregion
21995
- //#region ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
22127
+ //#region ../blocks/src/system/runtime/nodes/events/domain/pricing.ts
21996
22128
  const DEFAULT_EVENT_CURRENCY = "USD";
21997
22129
  function resolveRuntimeEventPricing(event) {
21998
22130
  if (isPublicEventPricing(event.pricing)) return event.pricing;
@@ -22672,7 +22804,7 @@ const eventRegistrationBlockDefinition = {
22672
22804
  {
22673
22805
  id: "showCapacity",
22674
22806
  type: "boolean",
22675
- label: "Show available spots",
22807
+ label: "Show available places",
22676
22808
  description: "Display remaining capacity",
22677
22809
  required: false,
22678
22810
  defaultValue: true,
@@ -23233,7 +23365,11 @@ const eventSpotlightBlockDefinition = {
23233
23365
  } }
23234
23366
  };
23235
23367
  //#endregion
23236
- //#region ../blocks/src/system/runtime/nodes/events/shared/utils.ts
23368
+ //#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
23369
+ /**
23370
+ * Layout classes for event listing containers and cards. Presentation
23371
+ * plumbing rather than event domain logic, so it lives beside the components.
23372
+ */
23237
23373
  /**
23238
23374
  * Column class mappings for grid layouts, derived from the canonical
23239
23375
  * responsive column ladder (see gridUserColumnLadder).
@@ -24565,7 +24701,7 @@ const eventCalendarAdditionalFields = [
24565
24701
  {
24566
24702
  id: "showCapacity",
24567
24703
  type: "boolean",
24568
- label: "Show available spots",
24704
+ label: "Show available places",
24569
24705
  description: "Display remaining capacity on event cards and timetable cells",
24570
24706
  required: false,
24571
24707
  defaultValue: true,
@@ -12,7 +12,7 @@ import * as crypto from "crypto";
12
12
  * 1. This constant
13
13
  * 2. The "version" field in package.json
14
14
  */
15
- const SDK_VERSION = "0.136.0";
15
+ const SDK_VERSION = "0.137.0";
16
16
  //#endregion
17
17
  //#region src/constants.ts
18
18
  /**