@riverbankcms/sdk 0.135.1 → 0.136.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 (152) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -8
  3. package/dist/{PreviewEditorSidebar-D4p_5TdY.mjs → PreviewEditorSidebar-BU5ZlhQR.mjs} +4 -4
  4. package/dist/{PreviewEditorUI-D0cRoTX1.mjs → PreviewEditorUI-9XkHL-bC.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-DcgaESkm.mjs → PreviewQueryProvider-wbEpXryy.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-BKLtM3Nz.mjs → SdkPreviewModeRuntime-CnWmj-2B.mjs} +50 -99
  7. package/dist/{SiteChromeCustomizeContext-61X2m7QV.mjs → SiteChromeCustomizeContext-B6d5zkog.mjs} +2299 -1149
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +8 -554
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +401 -2312
  10. package/dist/_dts/api/src/contentRuntime.d.ts +6 -0
  11. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  12. package/dist/_dts/api/src/index.d.ts +1 -0
  13. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  14. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +26 -0
  15. package/dist/_dts/api/src/sdkBlockContentAdmission.d.ts +5 -0
  16. package/dist/_dts/api/src/sdkThemeWire.d.ts +6 -432
  17. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -3
  18. package/dist/_dts/block-form/src/utils/slug.d.ts +6 -0
  19. package/dist/_dts/blocks/src/PageRenderer.d.ts +12 -6
  20. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -0
  21. package/dist/_dts/blocks/src/definitions.d.ts +14 -0
  22. package/dist/_dts/blocks/src/index.d.ts +4 -3
  23. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +40 -0
  24. package/dist/_dts/blocks/src/server.d.ts +2 -2
  25. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  26. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +78 -0
  27. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +2 -18
  28. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +103 -16
  29. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  30. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  31. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +19 -0
  34. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +52 -0
  35. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  36. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +44 -18
  37. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +20 -3
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +3 -1
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +1 -0
  40. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.client.d.ts +2 -2
  41. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +40 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +43 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +3 -1
  45. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarNavigationChevron.d.ts +4 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalContext.d.ts +3 -2
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +3 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +31 -3
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +3 -1
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +9 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +4 -3
  53. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +3 -3
  54. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -1
  55. package/dist/_dts/calendar/src/grid.d.ts +24 -66
  56. package/dist/_dts/calendar/src/index.d.ts +2 -2
  57. package/dist/_dts/calendar/src/timetable.d.ts +5 -9
  58. package/dist/_dts/commerce/src/purchase/allocation.d.ts +11 -0
  59. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  60. package/dist/_dts/commerce/src/purchase/settlement.d.ts +33 -0
  61. package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +8 -0
  62. package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -0
  63. package/dist/_dts/core/src/slug.d.ts +20 -5
  64. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -1
  65. package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +2 -1
  66. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +6 -0
  67. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
  68. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +10 -6
  69. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +0 -1
  70. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
  71. package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +3 -0
  72. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -0
  73. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
  74. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +17 -0
  75. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +9 -3
  76. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +1 -1
  77. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  78. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +7 -4
  79. package/dist/_dts/sdk/src/version.d.ts +1 -1
  80. package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
  81. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  82. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  83. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -6
  84. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +6 -807
  85. package/dist/_dts/theme-core/src/schema.d.ts +452 -1278
  86. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +213 -1
  87. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +0 -29
  88. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +10 -0
  89. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +8 -5
  90. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +4 -4
  91. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +16 -2
  92. package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +465 -0
  93. package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +161 -0
  94. package/dist/client/{BookingConsentAgreement-Bz9znbpn.mjs → BookingConsentAgreement-DCch21a6.mjs} +2 -2
  95. package/dist/client/{DiscountCodeDisclosure-35Ru8yB9.mjs → DiscountCodeDisclosure-DIj1T59K.mjs} +1 -1
  96. package/dist/client/{EventCombined.client-BKB0ZxRR.mjs → EventCombined.client-BWVNlXTx.mjs} +226 -206
  97. package/dist/client/{EventListing.client-Dx8I21ok.mjs → EventListing.client-DVFCDe3i.mjs} +2 -2
  98. package/dist/client/{LeafletStaticMap-CEWx-Bhe.mjs → LeafletStaticMap-BY5mIHw9.mjs} +1 -1
  99. package/dist/client/{accordion-KIDsKTwS.mjs → accordion-CK29E8rG.mjs} +1 -1
  100. package/dist/client/{bookingForm-D96Rmp-5.mjs → bookingForm-DFvnet-N.mjs} +5 -5
  101. package/dist/client/bookings.mjs +86 -47
  102. package/dist/client/{carousel-YwUgyL66.mjs → carousel-BVU5NQlb.mjs} +1 -1
  103. package/dist/client/{cart-BbwuNrUT.mjs → cart-BNItcZVa.mjs} +3 -3
  104. package/dist/client/{checkout-hp1ucmEY.mjs → checkout-Bu6iCdkP.mjs} +3 -3
  105. package/dist/client/client.mjs +1950 -1031
  106. package/dist/client/{context-DljQn8L5.mjs → context-BImarOAq.mjs} +12 -0
  107. package/dist/client/{eventCalendar-DU4iNLpo.mjs → eventCalendar-DS2h-UXD.mjs} +256 -114
  108. package/dist/client/{eventCombined-CZuupW8m.mjs → eventCombined-Drt4Oq9p.mjs} +3 -3
  109. package/dist/client/{eventDetails-DPQWwCIi.mjs → eventDetails-Bl2vWgTX.mjs} +4 -3
  110. package/dist/client/{eventListing-C7oMidwS.mjs → eventListing-CS7PHY7v.mjs} +3 -3
  111. package/dist/client/{eventRegistration-zEiunlUs.mjs → eventRegistration-D-j8eNy2.mjs} +85 -41
  112. package/dist/client/{form-D2KIyCVJ.mjs → form-RMpoLTyr.mjs} +2 -2
  113. package/dist/client/{headerSection-CK5uChUK.mjs → headerSection-BYE3Lb3k.mjs} +2 -2
  114. package/dist/client/hooks.mjs +2225 -276
  115. package/dist/client/{locationMap-DLQNH1ln.mjs → locationMap-BxSr7Kkh.mjs} +2 -2
  116. package/dist/client/{newsletterForm-ZuhIG7fZ.mjs → newsletterForm-DerbXwFC.mjs} +2 -2
  117. package/dist/client/{productDetail-7hIcGeae.mjs → productDetail-4SZCLhAf.mjs} +3 -3
  118. package/dist/client/{productList-T4Cii1ot.mjs → productList-D7AP4GNq.mjs} +3 -3
  119. package/dist/client/{propsDecoder-mB0aC_Fi.mjs → propsDecoder-pzBeCh14.mjs} +94 -24
  120. package/dist/client/rendering/client.mjs +758 -464
  121. package/dist/client/rendering/islands.mjs +17 -17
  122. package/dist/client/rendering.mjs +2126 -1244
  123. package/dist/client/{scrollToBlock-Du5mHgvL.mjs → scrollToBlock-CduAKf8T.mjs} +1 -1
  124. package/dist/client/{shop-B5zAcKZn.mjs → shop-Cp5p_kGe.mjs} +6 -6
  125. package/dist/client/{shop-commerce-BKBZB6l5.mjs → shop-commerce-DicXYaYX.mjs} +5 -5
  126. package/dist/client/{shop-commerce-store-Cq4qlNtQ.mjs → shop-commerce-store-CGWnpY4K.mjs} +1 -1
  127. package/dist/client/{shopShared-DYGzEs9D.mjs → shopShared-BDf9ljkm.mjs} +3 -3
  128. package/dist/client/{useEventFilters-Bphkda8m.mjs → useEventFilters-DeeyGYuk.mjs} +3 -3
  129. package/dist/preview-next/before-render.mjs +7 -0
  130. package/dist/preview-next/client/runtime.mjs +4 -4
  131. package/dist/preview-next/keepAlive.mjs +7 -0
  132. package/dist/preview-next/middleware.mjs +7 -0
  133. package/dist/{previewAuthStore-C7ksxt5b.mjs → previewAuthStore-DbqBol0V.mjs} +7 -0
  134. package/dist/{sdk-runtime-BbIC8G4J.mjs → sdk-runtime-19MO27F0.mjs} +2 -2
  135. package/dist/{separator-CadhAtI7.mjs → separator-DaPLtJ1f.mjs} +1 -1
  136. package/dist/server/components.mjs +1527 -893
  137. package/dist/server/config-validation.mjs +65 -113
  138. package/dist/server/config.mjs +65 -113
  139. package/dist/server/data.mjs +65 -112
  140. package/dist/server/index.mjs +122 -4
  141. package/dist/server/manifest.mjs +0 -1
  142. package/dist/server/next.mjs +1432 -708
  143. package/dist/server/page-converter.mjs +58 -91
  144. package/dist/server/prebuild.mjs +1 -1
  145. package/dist/server/rendering/server.mjs +1682 -915
  146. package/dist/server/rendering.mjs +1694 -1020
  147. package/dist/server/routing.mjs +3230 -1843
  148. package/dist/server/server.mjs +21710 -19779
  149. package/dist/server/theme-bridge.mjs +656 -264
  150. package/dist/server/theme.mjs +2 -17
  151. package/dist/styles/index.css +609 -181
  152. package/package.json +1 -1
@@ -5265,12 +5265,8 @@ const legacyHeaderVariantValues = Object.keys(legacyHeaderVariants);
5265
5265
  * `@riverbankcms/api` is `z.input<typeof themeSchema>`, so a widened input here
5266
5266
  * would leak straight into a public type.
5267
5267
  *
5268
- * Not every read of a persisted theme goes through the schema:
5269
- * `resolveRuntimeTheme` in
5270
- * `apps/dashboard/src/server/services/sites/runtimeSiteResponse.ts` returns the
5271
- * raw database JSON asserted as `Theme` with no parse, so a theme still
5272
- * carrying a legacy spelling reaches the theme editor un-aliased. That gap
5273
- * predates this alias and is harmless while persisted usage is zero.
5268
+ * Persisted runtime themes are admitted through `parseThemeForPersistence`
5269
+ * before reaching consumers, so legacy spellings normalize at that boundary.
5274
5270
  */
5275
5271
  const headerVariantWithLegacyAliasSchema = z.enum([...headerVariantValues, ...legacyHeaderVariantValues]).transform((value) => value in legacyHeaderVariants ? legacyHeaderVariants[value] : value);
5276
5272
  const BREAKPOINT_LG = 1024;
@@ -5729,7 +5725,6 @@ const navFontWeight = z.enum([
5729
5725
  "bold"
5730
5726
  ]);
5731
5727
  const headerMaxWidth = z.enum(["container", "full"]);
5732
- const headerBarFrame = z.enum(["full-bleed", "inset-shell"]);
5733
5728
  const headerBorderSchema = componentBorderSchema.extend({ position: z.enum([
5734
5729
  "bottom",
5735
5730
  "top",
@@ -5758,12 +5753,6 @@ const headerLogoTextSchema = z.object({
5758
5753
  ]).optional(),
5759
5754
  hideOnShrink: z.boolean().optional()
5760
5755
  }).optional();
5761
- const navEffectsSchema = z.object({
5762
- underlineGradient: z.boolean().default(false),
5763
- glow: z.boolean().default(false),
5764
- glowColor: z.string().optional(),
5765
- neumorphic: z.boolean().default(false)
5766
- }).optional();
5767
5756
  const dropdownStyleSchema = z.object({
5768
5757
  background: themeColorTokenSchema.default("surface"),
5769
5758
  textColor: themeColorTokenSchema.default("text"),
@@ -5855,9 +5844,7 @@ const headerSchema = z.object({
5855
5844
  positioning: headerPositioning,
5856
5845
  shrinkOnScroll: z.boolean(),
5857
5846
  maxWidth: headerMaxWidth,
5858
- barFrame: headerBarFrame.optional(),
5859
5847
  scrollTreatment: headerScrollTreatmentSchema,
5860
- logoOverride: mediaSchema.nullable().optional(),
5861
5848
  background: headerBackgroundSchema.default({
5862
5849
  type: "color",
5863
5850
  color: "surface"
@@ -5869,13 +5856,11 @@ const headerSchema = z.object({
5869
5856
  navFontRole: z.enum(["body", "heading"]).optional(),
5870
5857
  navTextSize: navLinkStyleSchema.shape.textSize,
5871
5858
  interactionPalette: headerInteractionPaletteSchema.optional(),
5872
- navPlacement: z.enum(["end", "center"]).optional(),
5873
5859
  container: headerContainerSchema,
5874
5860
  border: headerBorderSchema,
5875
5861
  shadow: componentShadowSchema.optional(),
5876
5862
  logo: logoStyleSchema,
5877
5863
  logoText: headerLogoTextSchema,
5878
- navEffects: navEffectsSchema,
5879
5864
  navContainer: navContainerSchema,
5880
5865
  navLinkStyle: navLinkStyleSchema.optional(),
5881
5866
  ctaGap: headerCtaGapSchema.optional(),
@@ -7841,27 +7826,6 @@ function asHeaderStyleId(value) {
7841
7826
  return value;
7842
7827
  }
7843
7828
  //#endregion
7844
- //#region ../theme-core/src/site-styles/headerInteractionPalette.ts
7845
- const clearSplitInteractionPalette = defineLookOptionGroup({
7846
- id: "interaction-palette",
7847
- label: "Hover colour",
7848
- defaultOptionId: "accent",
7849
- options: [
7850
- {
7851
- id: "accent",
7852
- label: "Accent"
7853
- },
7854
- {
7855
- id: "primary",
7856
- label: "Primary"
7857
- },
7858
- {
7859
- id: "secondary",
7860
- label: "Secondary"
7861
- }
7862
- ]
7863
- });
7864
- //#endregion
7865
7829
  //#region ../theme-core/src/site-styles/headerLayoutCatalog.ts
7866
7830
  const titleOnlyLogoAccommodation = {
7867
7831
  pattern: "title-only",
@@ -8021,43 +7985,37 @@ const headerStyleCatalog = defineExactCatalog()([
8021
7985
  id: asHeaderStyleId("minimal"),
8022
7986
  label: "Minimal",
8023
7987
  description: "Quiet surface with simple color-change navigation.",
8024
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8025
- navTypography: "plain"
7988
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8026
7989
  },
8027
7990
  {
8028
7991
  id: asHeaderStyleId("fine-line"),
8029
7992
  label: "Seamless",
8030
7993
  description: "Borderless surface with underline hover for a quieter page transition.",
8031
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8032
- navTypography: "plain"
7994
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8033
7995
  },
8034
7996
  {
8035
7997
  id: asHeaderStyleId("soft-bar"),
8036
7998
  label: "Soft Bar",
8037
7999
  description: "Soft tinted surface with gentle pill hover states.",
8038
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8039
- navTypography: "plain"
8000
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8040
8001
  },
8041
8002
  {
8042
8003
  id: asHeaderStyleId("pill-nav"),
8043
8004
  label: "Pill Nav",
8044
8005
  description: "A calm pill navigation rail over a neutral header.",
8045
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8046
- navTypography: "plain"
8006
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8047
8007
  },
8048
8008
  {
8049
8009
  id: asHeaderStyleId("brand-bar"),
8050
8010
  label: "Brand Bar",
8051
8011
  description: "Solid brand surface with high-contrast navigation.",
8052
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8053
- navTypography: "brand-caps"
8012
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8054
8013
  },
8055
8014
  {
8056
8015
  id: asHeaderStyleId("brand-underline"),
8057
8016
  label: "Brand Underline",
8058
8017
  description: "Brand surface with underline-grow navigation.",
8059
- supportedLayoutIds: supportedLayouts(["classic"]),
8060
- navTypography: "brand-caps"
8018
+ supportedLayoutIds: supportedLayouts(["classic"])
8061
8019
  },
8062
8020
  {
8063
8021
  id: asHeaderStyleId("brand-pill"),
@@ -8067,73 +8025,78 @@ const headerStyleCatalog = defineExactCatalog()([
8067
8025
  "classic",
8068
8026
  "centered",
8069
8027
  "floating"
8070
- ]),
8071
- navTypography: "brand-caps"
8028
+ ])
8072
8029
  },
8073
8030
  {
8074
8031
  id: asHeaderStyleId("brand-capsule"),
8075
8032
  label: "Brand Capsule",
8076
8033
  description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
8077
- supportedLayoutIds: supportedLayouts(["classic"]),
8078
- navTypography: "quiet-caps"
8034
+ supportedLayoutIds: supportedLayouts(["classic"])
8079
8035
  },
8080
8036
  {
8081
8037
  id: asHeaderStyleId("serif-line"),
8082
8038
  label: "Serif Line",
8083
8039
  description: "Typographic logo treatment with understated underline navigation.",
8084
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8085
- navTypography: "heading"
8040
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8086
8041
  },
8087
8042
  {
8088
8043
  id: asHeaderStyleId("flat-tabs"),
8089
8044
  label: "Flat Tabs",
8090
8045
  description: "Flat block hover and active states with a Swiss utility feel.",
8091
- supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8092
- navTypography: "quiet-caps"
8046
+ supportedLayoutIds: supportedLayouts(["classic", "centered"])
8093
8047
  },
8094
8048
  {
8095
8049
  id: asHeaderStyleId("glass"),
8096
8050
  label: "Glass",
8097
8051
  description: "Translucent chrome with frosted navigation backing.",
8098
- supportedLayoutIds: supportedLayouts(["floating"]),
8099
- navTypography: "plain"
8052
+ supportedLayoutIds: supportedLayouts(["floating"])
8100
8053
  },
8101
8054
  {
8102
8055
  id: asHeaderStyleId("minimal-surface"),
8103
8056
  label: "Clear Split",
8104
8057
  description: "Floating logo with transparent navigation and no shared shell.",
8105
- supportedLayoutIds: supportedLayouts(["floating"]),
8106
- navTypography: "plain",
8107
- openingForegroundTarget: "all",
8108
- scrollTreatment: "contrast-glass",
8109
- interactionPalette: clearSplitInteractionPalette
8058
+ supportedLayoutIds: supportedLayouts(["floating"])
8110
8059
  },
8111
8060
  {
8112
8061
  id: asHeaderStyleId("soft-shell"),
8113
8062
  label: "Soft Shell",
8114
8063
  description: "Floating rounded shell with soft pill navigation states.",
8115
- supportedLayoutIds: supportedLayouts(["floating"]),
8116
- navTypography: "plain"
8064
+ supportedLayoutIds: supportedLayouts(["floating"])
8117
8065
  },
8118
8066
  {
8119
8067
  id: asHeaderStyleId("split-glass"),
8120
8068
  label: "Split Glass",
8121
8069
  description: "Logo floats independently while the navigation sits in a glass rail.",
8122
- supportedLayoutIds: supportedLayouts(["floating"]),
8123
- navTypography: "quiet-caps",
8124
- openingForegroundTarget: "brand-only"
8070
+ supportedLayoutIds: supportedLayouts(["floating"])
8125
8071
  },
8126
8072
  {
8127
8073
  id: asHeaderStyleId("split-pill"),
8128
8074
  label: "Split Pill",
8129
8075
  description: "Logo floats independently with a soft pill-backed navigation rail.",
8130
- supportedLayoutIds: supportedLayouts(["floating"]),
8131
- navTypography: "heading",
8132
- openingForegroundTarget: "brand-only"
8076
+ supportedLayoutIds: supportedLayouts(["floating"])
8133
8077
  }
8134
8078
  ]);
8135
8079
  new Map(headerLayoutCatalog.map((layout) => [layout.id, layout]));
8136
8080
  new Map(headerStyleCatalog.map((style) => [style.id, style]));
8081
+ defineLookOptionGroup({
8082
+ id: "interaction-palette",
8083
+ label: "Hover colour",
8084
+ defaultOptionId: "accent",
8085
+ options: [
8086
+ {
8087
+ id: "accent",
8088
+ label: "Accent"
8089
+ },
8090
+ {
8091
+ id: "primary",
8092
+ label: "Primary"
8093
+ },
8094
+ {
8095
+ id: "secondary",
8096
+ label: "Secondary"
8097
+ }
8098
+ ]
8099
+ });
8137
8100
  //#endregion
8138
8101
  //#region ../theme-core/src/site-styles/footerLooks.ts
8139
8102
  function asFooterLookId(value) {
@@ -11114,6 +11077,9 @@ function getZonedDateTimeParts(date, timeZone) {
11114
11077
  function formatDateKey(date) {
11115
11078
  return `${String(date.year).padStart(4, "0")}-${String(date.month).padStart(2, "0")}-${String(date.day).padStart(2, "0")}`;
11116
11079
  }
11080
+ function toBookingTimeZone(timeZone) {
11081
+ return getSafeTimeZone(timeZone);
11082
+ }
11117
11083
  function parseUtcIsoDateTimeString(value) {
11118
11084
  const normalized = value.trim();
11119
11085
  const hasUtcSuffix = normalized.endsWith("Z");
@@ -11424,7 +11390,6 @@ const ALLOWED_TRANSFORM_IDS = [
11424
11390
  "layout.footerRootClass",
11425
11391
  "layout.headerRootStyle",
11426
11392
  "layout.headerSectionBackground",
11427
- "layout.classicNavMode",
11428
11393
  "layout.footerRootStyle",
11429
11394
  "ui.headerNavLinkClass",
11430
11395
  "ui.headingClassFromAlignment",
@@ -18850,18 +18815,7 @@ const classicLayout = inline({
18850
18815
  logoRow,
18851
18816
  createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
18852
18817
  headerCta
18853
- ], whenTransformed("$root.theme.header", "layout.classicNavMode", "inline"));
18854
- const classicCenteredNavLayout = inline({
18855
- className: bindProp("$root.theme.header.maxWidth", {
18856
- transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
18857
- fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
18858
- }),
18859
- align: "center"
18860
- }, [
18861
- logoRow,
18862
- createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
18863
- headerCta
18864
- ], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
18818
+ ], when("$root.theme.header.variant", { equals: "classic" }));
18865
18819
  const centeredLayout = stack({
18866
18820
  gap: "md",
18867
18821
  align: "center",
@@ -18926,7 +18880,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
18926
18880
  }, [
18927
18881
  mobileHeaderBar,
18928
18882
  classicLayout,
18929
- classicCenteredNavLayout,
18930
18883
  centeredLayout,
18931
18884
  floatingLayout,
18932
18885
  mobileOverlay
@@ -23401,7 +23354,8 @@ const eventCollectionSourceSchemaShape = {
23401
23354
  buttonVariant: eventButtonVariantSchema.optional(),
23402
23355
  buttonText: z.string().optional(),
23403
23356
  emptyMessage: z.string().optional(),
23404
- className: z.string().optional()
23357
+ className: z.string().optional(),
23358
+ bookingTimeZone: z.string().optional()
23405
23359
  };
23406
23360
  const eventCollectionDisplaySchemaShape = {
23407
23361
  events: z.array(publicEventSchema),
@@ -23436,7 +23390,15 @@ const eventCollectionHydrationSchema = z.object({
23436
23390
  prefetchedEvents: z.boolean(),
23437
23391
  eventSurface: eventSurfaceScopeSchema$1,
23438
23392
  filterEventPresets: z.string().nullable(),
23439
- scheduleScope: eventScheduleScopeSchema$1
23393
+ scheduleScope: eventScheduleScopeSchema$1,
23394
+ calendarContext: z.object({
23395
+ timeZone: z.string().transform(toBookingTimeZone),
23396
+ initialToday: z.object({
23397
+ year: z.number().int(),
23398
+ month: z.number().int().min(1).max(12),
23399
+ day: z.number().int().min(1).max(31)
23400
+ })
23401
+ })
23440
23402
  });
23441
23403
  function buildEventCollectionDisplay(source) {
23442
23404
  return {
@@ -23481,14 +23443,19 @@ function buildEventCollectionPresentationDisplay(source) {
23481
23443
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
23482
23444
  };
23483
23445
  }
23484
- function buildEventCollectionHydration(source) {
23446
+ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
23447
+ const timeZone = toBookingTimeZone(source.bookingTimeZone);
23485
23448
  return {
23486
23449
  siteId: source.siteId,
23487
23450
  stage: source.stage,
23488
23451
  prefetchedEvents: source.events != null,
23489
23452
  eventSurface: normalizeEventSurfaceScope(source.eventSurface),
23490
23453
  filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
23491
- scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
23454
+ scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
23455
+ calendarContext: {
23456
+ timeZone,
23457
+ initialToday: getLocalScheduleDate(now, timeZone)
23458
+ }
23492
23459
  };
23493
23460
  }
23494
23461
  //#endregion
@@ -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.135.1";
15
+ const SDK_VERSION = "0.136.0";
16
16
  //#endregion
17
17
  //#region src/constants.ts
18
18
  /**