@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
@@ -1590,6 +1590,83 @@ const SDK_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1590
1590
  errors: ["validation:invalid_input", "server:internal_error"]
1591
1591
  }
1592
1592
  });
1593
+ //#endregion
1594
+ //#region ../api/src/sdkMediaEndpointDefinitions.ts
1595
+ const SDK_MEDIA_ENDPOINT_DEFINITIONS = {
1596
+ sdkMediaExists: {
1597
+ path: "/sdk/{siteId}/media/exists",
1598
+ method: "POST",
1599
+ errors: ["validation:invalid_input"],
1600
+ auth: "service",
1601
+ responseKind: "json"
1602
+ },
1603
+ sdkMediaFindByChecksum: {
1604
+ path: "/sdk/{siteId}/media/find-by-checksum",
1605
+ method: "POST",
1606
+ errors: ["server:internal_error"],
1607
+ auth: "service",
1608
+ responseKind: "json"
1609
+ },
1610
+ sdkMediaResolve: {
1611
+ path: "/sdk/{siteId}/media/resolve",
1612
+ method: "POST",
1613
+ errors: ["server:internal_error"],
1614
+ auth: "service",
1615
+ responseKind: "json"
1616
+ },
1617
+ sdkMediaList: {
1618
+ path: "/sdk/{siteId}/media",
1619
+ method: "GET",
1620
+ auth: "service",
1621
+ responseKind: "json"
1622
+ },
1623
+ sdkMediaDownload: {
1624
+ path: "/sdk/{siteId}/media/{identifier}/download",
1625
+ method: "GET",
1626
+ auth: "service",
1627
+ responseKind: "json"
1628
+ },
1629
+ sdkMediaDeletePreview: {
1630
+ path: "/sdk/{siteId}/media/{identifier}/delete-preview",
1631
+ method: "POST",
1632
+ auth: "service",
1633
+ responseKind: "json"
1634
+ },
1635
+ sdkMediaDeleteApply: {
1636
+ path: "/sdk/{siteId}/media/{identifier}",
1637
+ method: "DELETE",
1638
+ auth: "service",
1639
+ responseKind: "json"
1640
+ },
1641
+ sdkMediaUploadUrl: {
1642
+ path: "/sdk/{siteId}/media/upload-url",
1643
+ method: "POST",
1644
+ errors: [
1645
+ "resource:not_found",
1646
+ "validation:invalid_input",
1647
+ "resource:conflict",
1648
+ "validation:payload_too_large",
1649
+ "billing:plan_limit_exceeded",
1650
+ "server:internal_error"
1651
+ ],
1652
+ auth: "service",
1653
+ responseKind: "json"
1654
+ },
1655
+ sdkMediaUploadFinalize: {
1656
+ path: "/sdk/{siteId}/media/upload",
1657
+ method: "POST",
1658
+ errors: [
1659
+ "resource:not_found",
1660
+ "validation:invalid_input",
1661
+ "resource:conflict",
1662
+ "validation:payload_too_large",
1663
+ "billing:plan_limit_exceeded",
1664
+ "server:internal_error"
1665
+ ],
1666
+ auth: "service",
1667
+ responseKind: "json"
1668
+ }
1669
+ };
1593
1670
  ({
1594
1671
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
1595
1672
  ...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
@@ -1598,7 +1675,7 @@ const SDK_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1598
1675
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
1599
1676
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
1600
1677
  ...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
1601
- }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, { ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicWholeSeriesOfferings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
1678
+ }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, { ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicWholeSeriesOfferings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
1602
1679
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
1603
1680
  z.object({
1604
1681
  accessToken: z.string().min(1).max(4096),
@@ -8456,6 +8533,11 @@ const gradientConfigSchema = z.object({
8456
8533
  position: z.string().optional(),
8457
8534
  stops: z.array(gradientStopSchema).min(2)
8458
8535
  });
8536
+ const gradientsSchema = z.object({
8537
+ button: z.string().min(1).nullable().optional(),
8538
+ hero: z.string().min(1).nullable().optional(),
8539
+ background: z.string().min(1).nullable().optional()
8540
+ });
8459
8541
  //#endregion
8460
8542
  //#region ../theme-core/src/interactive/baseSchema.ts
8461
8543
  /**
@@ -9209,11 +9291,30 @@ const headerContainerSchema = z.object({
9209
9291
  tint: z.string().nullable().optional(),
9210
9292
  opacity: z.number().min(0).max(1).default(.12)
9211
9293
  }).optional();
9212
- const headerInteractionPaletteSchema = z.enum([
9294
+ //#endregion
9295
+ //#region ../theme-core/src/header/interactionPalette.ts
9296
+ /**
9297
+ * The palettes that fill the nav link with a colour on hover and focus. Each
9298
+ * one names a background/foreground token pair.
9299
+ */
9300
+ const headerInteractionPillPaletteValues = [
9213
9301
  "primary",
9214
9302
  "secondary",
9215
9303
  "accent"
9216
- ]);
9304
+ ];
9305
+ /**
9306
+ * "No pill": the nav link keeps whatever hover treatment its recipe compiled,
9307
+ * and the palette step writes nothing at all (#1318 Phase 4c decision 2).
9308
+ *
9309
+ * It exists because "a colour change on hover, no filled background" was not
9310
+ * expressible in the vocabulary, and it is what
9311
+ * `anna-raven-therapy-and-yoga` and `kirtan-lucy` have rendered since before
9312
+ * the palette existed. Without it those two rows can only be classified as a
9313
+ * conscious visual change.
9314
+ */
9315
+ const headerInteractionQuietPalette = "quiet";
9316
+ const headerInteractionPaletteValues = [...headerInteractionPillPaletteValues, headerInteractionQuietPalette];
9317
+ const headerInteractionPaletteSchema = z.enum(headerInteractionPaletteValues);
9217
9318
  //#endregion
9218
9319
  //#region ../theme-core/src/boxBackgroundSchema.ts
9219
9320
  const boxBackgroundOverlaySchema = z.preprocess(normalizeAuthoringOpacity, z.discriminatedUnion("type", [
@@ -9595,11 +9696,12 @@ const inputStyle = z.object({
9595
9696
  ]),
9596
9697
  label: z.enum(["inside", "above"])
9597
9698
  });
9598
- const headerPositioning = z.enum([
9699
+ const headerPositioningValues = [
9599
9700
  "static",
9600
9701
  "sticky",
9601
9702
  "fixed"
9602
- ]);
9703
+ ];
9704
+ const headerPositioning = z.enum(headerPositioningValues);
9603
9705
  const headerNavStyle = z.enum([
9604
9706
  "minimal",
9605
9707
  "underline",
@@ -9734,7 +9836,7 @@ const headerSchema = z.object({
9734
9836
  variant: headerVariantWithLegacyAliasSchema,
9735
9837
  positioning: headerPositioning,
9736
9838
  shrinkOnScroll: z.boolean(),
9737
- maxWidth: headerMaxWidth,
9839
+ maxWidth: headerMaxWidth.default("container"),
9738
9840
  scrollTreatment: headerScrollTreatmentSchema,
9739
9841
  background: headerBackgroundSchema.default({
9740
9842
  type: "color",
@@ -9933,11 +10035,6 @@ const bodyTextSchema = z.object({ intro: z.object({
9933
10035
  paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
9934
10036
  headingSize: bodyTextIntroTypographySizeSchema.optional()
9935
10037
  }).optional() }).optional();
9936
- const gradientsSchema = z.object({
9937
- button: z.string().min(1).nullable().optional(),
9938
- hero: z.string().min(1).nullable().optional(),
9939
- background: z.string().min(1).nullable().optional()
9940
- });
9941
10038
  /**
9942
10039
  * Testimonial quote-mark treatment, owned by the site style (analogous to the
9943
10040
  * accordion icon). `style` is the coarse selector; the optional fields fine-tune
@@ -10818,6 +10915,12 @@ function cardRoleFromLegacyVocabulary(value) {
10818
10915
  */
10819
10916
  const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
10820
10917
  //#endregion
10918
+ //#region ../theme-core/src/site-styles/compilationPlan.ts
10919
+ const defaultHeaderBrandPreferences = {
10920
+ brandDisplay: "auto",
10921
+ logoSize: "auto"
10922
+ };
10923
+ //#endregion
10821
10924
  //#region ../theme-core/src/site-styles/sectionTransitions.ts
10822
10925
  function boundaryRuntimeMetrics(family, size, heightExpression) {
10823
10926
  return {
@@ -11863,6 +11966,12 @@ const overlayLogoAccommodations = [
11863
11966
  inlineMarkWithTitleLogoAccommodation,
11864
11967
  unbackedOverlayLogoAccommodation
11865
11968
  ];
11969
+ const allCuratedLogoAccommodations = [
11970
+ ...inlineClassicLogoAccommodations,
11971
+ ...centeredLogoAccommodations,
11972
+ ...overlayLogoAccommodations
11973
+ ];
11974
+ new Set(allCuratedLogoAccommodations.filter((option) => option.providesBacking === true).map((option) => option.pattern));
11866
11975
  const headerLayoutCatalog = defineExactCatalog()([
11867
11976
  {
11868
11977
  id: asHeaderLayoutId("classic"),
@@ -12012,6 +12121,10 @@ defineLookOptionGroup({
12012
12121
  {
12013
12122
  id: "secondary",
12014
12123
  label: "Secondary"
12124
+ },
12125
+ {
12126
+ id: headerInteractionQuietPalette,
12127
+ label: "Text only"
12015
12128
  }
12016
12129
  ]
12017
12130
  });
@@ -14433,6 +14546,67 @@ const blockDesignFallback = {
14433
14546
  };
14434
14547
  blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.transitionAfter, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
14435
14548
  //#endregion
14549
+ //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
14550
+ const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
14551
+ const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
14552
+ siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
14553
+ function parseSiteChromeBackgroundColorToken(value) {
14554
+ const token = parseBackgroundAppearanceColorToken(value);
14555
+ return token ? token : null;
14556
+ }
14557
+ function toSiteChromeBackgroundColorTokens(tokenNames) {
14558
+ return tokenNames.flatMap((name) => {
14559
+ const token = parseSiteChromeBackgroundColorToken(name);
14560
+ return token ? [token] : [];
14561
+ });
14562
+ }
14563
+ //#endregion
14564
+ //#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
14565
+ const headerNavTypographyPreferenceValues = [
14566
+ "inherit",
14567
+ "body",
14568
+ "heading"
14569
+ ];
14570
+ const headerNavFontSizePreferenceValues = [
14571
+ "inherit",
14572
+ "sm",
14573
+ "base",
14574
+ "lg",
14575
+ "xl"
14576
+ ];
14577
+ const defaultHeaderNavPreferences = {
14578
+ typography: "inherit",
14579
+ fontSize: "inherit",
14580
+ interactionPalette: "recommended"
14581
+ };
14582
+ //#endregion
14583
+ //#region ../theme-core/src/site-styles/headerBrandPresentation.ts
14584
+ /**
14585
+ * Whether the header wears a brand presentation at all (#1318 Phase 4c).
14586
+ *
14587
+ * `applyHeaderBrandPresentation` is unconditional today: given a logo context
14588
+ * it always writes a `logo` object carrying a resolved display, size and
14589
+ * accommodation. That makes "this header has no brand presentation block" —
14590
+ * which is what several live sites persist, including one whose site *does*
14591
+ * have a logo asset — a state the preference record could not express, so a
14592
+ * recompile would silently give the site a logo treatment it has never
14593
+ * rendered.
14594
+ *
14595
+ * This is the third field in this phase with that shape, after the interaction
14596
+ * palette and the nav text size: the persisted bytes carry intent the reader
14597
+ * cannot say, so the recompile "corrects" it. The fix is the same one — widen
14598
+ * the closed vocabulary with a named member and derive it by baseline
14599
+ * comparison — and it is a *widening*, not a restyle: `'recommended'` is the
14600
+ * default and reproduces today's behaviour exactly, so no row whose bytes carry
14601
+ * a presentation compiles differently for `'plain'` existing.
14602
+ *
14603
+ * `'plain'` is deliberately not "preserve whatever bytes are there". It is a
14604
+ * constructive instruction — *write no presentation block* — so Phase 4e's
14605
+ * compiler, which builds the header from nothing, can produce it.
14606
+ */
14607
+ const headerBrandPresentationValues = ["recommended", "plain"];
14608
+ defaultHeaderBrandPreferences.brandDisplay, defaultHeaderBrandPreferences.logoSize, defaultHeaderNavPreferences.typography, defaultHeaderNavPreferences.fontSize, defaultHeaderNavPreferences.interactionPalette;
14609
+ //#endregion
14436
14610
  //#region ../theme-core/src/site-styles/generatedSchemas.ts
14437
14611
  function uniqueNonEmpty(values) {
14438
14612
  const uniqueValues = [...new Set(values)];
@@ -14501,6 +14675,56 @@ z.object({
14501
14675
  blocks: z.array(generatedPageDesignBlockIntentSchema)
14502
14676
  }).strict();
14503
14677
  //#endregion
14678
+ //#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
14679
+ const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
14680
+ const token = parseSiteChromeBackgroundColorToken(value);
14681
+ if (token === null) {
14682
+ ctx.addIssue({
14683
+ code: "custom",
14684
+ message: "Unknown site chrome background colour token"
14685
+ });
14686
+ return z.NEVER;
14687
+ }
14688
+ return token;
14689
+ });
14690
+ const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
14691
+ kind: z.literal("color"),
14692
+ token: backgroundColorTokenSchema
14693
+ }).strict()]);
14694
+ const logoTextIntentSchema = z.object({
14695
+ mobileMaxWidth: z.enum([
14696
+ "xs",
14697
+ "sm",
14698
+ "md"
14699
+ ]).optional(),
14700
+ mobileWrapLines: z.union([z.literal(1), z.literal(2)]).optional(),
14701
+ hideOnShrink: z.boolean().optional()
14702
+ }).strict();
14703
+ const structureSchema = z.object({
14704
+ positioning: z.union([z.literal("inherit"), z.enum(headerPositioningValues)]),
14705
+ shrinkOnScroll: z.union([z.literal("inherit"), z.boolean()]),
14706
+ logoText: z.union([
14707
+ z.literal("inherit"),
14708
+ z.literal("none"),
14709
+ logoTextIntentSchema
14710
+ ])
14711
+ }).strict();
14712
+ const headerPreferencesShape = {
14713
+ brandPresentation: z.enum(headerBrandPresentationValues),
14714
+ brandDisplay: z.enum(brandDisplayModeValues),
14715
+ logoSize: z.enum(logoSizePolicyValues),
14716
+ navFontRole: z.enum(headerNavTypographyPreferenceValues),
14717
+ navTextSize: z.enum(headerNavFontSizePreferenceValues),
14718
+ interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
14719
+ background: backgroundOverrideSchema,
14720
+ structure: structureSchema
14721
+ };
14722
+ z.object(headerPreferencesShape).strict();
14723
+ z.object(headerPreferencesShape).omit({
14724
+ brandPresentation: true,
14725
+ structure: true
14726
+ }).strict();
14727
+ //#endregion
14504
14728
  //#region ../theme-core/src/site-styles/pageDesignAuthority.ts
14505
14729
  const nonEmptyStringSchema = z.string().min(1);
14506
14730
  const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
@@ -14602,21 +14826,6 @@ function collectBlockSequenceIssues(snapshots) {
14602
14826
  return issues;
14603
14827
  }
14604
14828
  //#endregion
14605
- //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
14606
- const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
14607
- const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
14608
- siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
14609
- function parseSiteChromeBackgroundColorToken(value) {
14610
- const token = parseBackgroundAppearanceColorToken(value);
14611
- return token ? token : null;
14612
- }
14613
- function toSiteChromeBackgroundColorTokens(tokenNames) {
14614
- return tokenNames.flatMap((name) => {
14615
- const token = parseSiteChromeBackgroundColorToken(name);
14616
- return token ? [token] : [];
14617
- });
14618
- }
14619
- //#endregion
14620
14829
  //#region ../theme-core/src/site-styles/tokenRecipes.ts
14621
14830
  const themeTokenRecipeOptions = {
14622
14831
  palette: [
@@ -27011,7 +27220,7 @@ const eventDisplayFields = [
27011
27220
  {
27012
27221
  id: "showCapacity",
27013
27222
  type: "boolean",
27014
- label: "Show available spots",
27223
+ label: "Show available places",
27015
27224
  description: "Display remaining capacity",
27016
27225
  required: false,
27017
27226
  defaultValue: true,
@@ -27310,7 +27519,7 @@ function planEventRegistrationScope(input) {
27310
27519
  };
27311
27520
  }
27312
27521
  //#endregion
27313
- //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
27522
+ //#region ../blocks/src/system/runtime/nodes/events/domain/destination.ts
27314
27523
  function isRecord$5(value) {
27315
27524
  return typeof value === "object" && value !== null && !Array.isArray(value);
27316
27525
  }
@@ -27328,7 +27537,7 @@ function resolveRuntimeEventDestination(event) {
27328
27537
  };
27329
27538
  }
27330
27539
  //#endregion
27331
- //#region ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
27540
+ //#region ../blocks/src/system/runtime/nodes/events/domain/pricing.ts
27332
27541
  const DEFAULT_EVENT_CURRENCY = "USD";
27333
27542
  function resolveRuntimeEventPricing(event) {
27334
27543
  if (isPublicEventPricing(event.pricing)) return event.pricing;
@@ -28008,7 +28217,7 @@ const eventRegistrationBlockDefinition = {
28008
28217
  {
28009
28218
  id: "showCapacity",
28010
28219
  type: "boolean",
28011
- label: "Show available spots",
28220
+ label: "Show available places",
28012
28221
  description: "Display remaining capacity",
28013
28222
  required: false,
28014
28223
  defaultValue: true,
@@ -28569,7 +28778,11 @@ const eventSpotlightBlockDefinition = {
28569
28778
  } }
28570
28779
  };
28571
28780
  //#endregion
28572
- //#region ../blocks/src/system/runtime/nodes/events/shared/utils.ts
28781
+ //#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
28782
+ /**
28783
+ * Layout classes for event listing containers and cards. Presentation
28784
+ * plumbing rather than event domain logic, so it lives beside the components.
28785
+ */
28573
28786
  /**
28574
28787
  * Column class mappings for grid layouts, derived from the canonical
28575
28788
  * responsive column ladder (see gridUserColumnLadder).
@@ -29901,7 +30114,7 @@ const eventCalendarAdditionalFields = [
29901
30114
  {
29902
30115
  id: "showCapacity",
29903
30116
  type: "boolean",
29904
- label: "Show available spots",
30117
+ label: "Show available places",
29905
30118
  description: "Display remaining capacity on event cards and timetable cells",
29906
30119
  required: false,
29907
30120
  defaultValue: true,
@@ -36949,6 +37162,50 @@ z.object({
36949
37162
  title: z.string(),
36950
37163
  slug: z.string().min(1)
36951
37164
  });
37165
+ z.object({
37166
+ signedUrl: z.string().url(),
37167
+ token: z.string().min(1),
37168
+ storagePath: z.string().min(1)
37169
+ }).strict();
37170
+ const backupManifestSchema = z.object({
37171
+ siteId: z.string().min(1),
37172
+ siteSlug: z.string().min(1),
37173
+ siteTitle: z.string(),
37174
+ exportedAt: z.string().min(1),
37175
+ tableCount: z.number().int().nonnegative(),
37176
+ totalRecords: z.number().int().nonnegative(),
37177
+ pageCount: z.number().int().nonnegative(),
37178
+ blockCount: z.number().int().nonnegative(),
37179
+ contentEntryCount: z.number().int().nonnegative(),
37180
+ formCount: z.number().int().nonnegative(),
37181
+ navigationMenuCount: z.number().int().nonnegative(),
37182
+ mediaCount: z.number().int().nonnegative(),
37183
+ mediaBytes: z.number().int().nonnegative()
37184
+ }).strict();
37185
+ z.object({
37186
+ ok: z.literal(true),
37187
+ manifest: backupManifestSchema,
37188
+ storagePath: z.string().min(1)
37189
+ }).strict();
37190
+ z.object({
37191
+ ok: z.literal(true),
37192
+ siteId: brandedIdSchema(parseSiteId, "site id"),
37193
+ slug: z.string().min(1),
37194
+ title: z.string(),
37195
+ counts: z.record(z.string(), z.object({
37196
+ created: z.number().int().nonnegative(),
37197
+ updated: z.number().int().nonnegative(),
37198
+ skipped: z.number().int().nonnegative(),
37199
+ failed: z.number().int().nonnegative()
37200
+ }).strict()),
37201
+ warnings: z.array(z.string()),
37202
+ errors: z.array(z.object({
37203
+ table: z.string(),
37204
+ id: z.string(),
37205
+ error: z.string()
37206
+ }).strict())
37207
+ }).strict();
37208
+ z.object({ deleted: z.boolean() }).strict();
36952
37209
  const apiKeyIdSchema = brandedIdSchema(parseApiKeyId, "API key id");
36953
37210
  const standardKeyIdsSchema = z.object({
36954
37211
  live: apiKeyIdSchema.optional(),