@riverbankcms/sdk 0.125.0 → 0.127.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 (177) hide show
  1. package/README.md +3 -1
  2. package/dist/{PreviewEditorSidebar-BezDOtQ7.mjs → PreviewEditorSidebar-BXtfF7tp.mjs} +122 -301
  3. package/dist/{PreviewEditorUI-CgSqmfo2.mjs → PreviewEditorUI-Dou73Q0K.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BH-3-jSj.mjs → PreviewQueryProvider-DgFDIwvK.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Co3AHfj0.mjs → SdkPreviewModeRuntime-B0HPXr-l.mjs} +141 -63
  6. package/dist/{SiteChromeCustomizeContext-BHF-KANn.mjs → SiteChromeCustomizeContext-DZiDBAYu.mjs} +5330 -5841
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1552 -202
  8. package/dist/_dts/api/src/common/envelope.d.ts +1 -1
  9. package/dist/_dts/api/src/contentRuntime.d.ts +1 -7
  10. package/dist/_dts/api/src/endpoints.d.ts +0 -7
  11. package/dist/_dts/api/src/sdk-event-upsert.d.ts +42 -0
  12. package/dist/_dts/api/src/sdkContracts.d.ts +11 -9
  13. package/dist/_dts/api/src/siteOperations.d.ts +18 -1
  14. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -14
  15. package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
  16. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +1 -0
  17. package/dist/_dts/blocks/src/index.d.ts +3 -2
  18. package/dist/_dts/blocks/src/lib/media.d.ts +267 -0
  19. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +0 -13
  20. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +15 -2
  21. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +4 -4
  22. package/dist/_dts/blocks/src/system/runtime/nodes/mergeResolveImageUrlContexts.d.ts +7 -0
  23. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  24. package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +17 -0
  25. package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +1 -1
  26. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -0
  27. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +322 -171
  28. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -0
  29. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +26 -0
  30. package/dist/_dts/editor-blocks/src/widgets/rich-text/imageInsert.d.ts +3 -3
  31. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
  32. package/dist/_dts/media-editor/src/context.d.ts +1 -2
  33. package/dist/_dts/media-editor/src/index.d.ts +3 -1
  34. package/dist/_dts/media-editor/src/mediaSelection.d.ts +32 -0
  35. package/dist/_dts/media-editor/src/types.d.ts +3 -1
  36. package/dist/_dts/media-editor/src/useMediaSelection.d.ts +26 -0
  37. package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
  38. package/dist/_dts/preview-next/src/client/preview/HeaderMenuControls.d.ts +12 -0
  39. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +1 -2
  40. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +13 -3
  41. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
  42. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +6 -60
  43. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -13
  44. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -100
  45. package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +8 -0
  46. package/dist/_dts/preview-next/src/client/preview/previewThemeRoles.d.ts +15 -0
  47. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +54 -0
  48. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +13 -3
  49. package/dist/_dts/preview-next/src/client/preview/siteChromeNavQuickControlHistory.d.ts +3 -0
  50. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +6 -3
  51. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -4
  52. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -15
  53. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +11 -21
  54. package/dist/_dts/sdk/src/cli/commands/event.d.ts +2 -2
  55. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +12 -0
  56. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +6 -0
  57. package/dist/_dts/sdk/src/cli/commands/style.d.ts +1 -1
  58. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +5 -0
  59. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +17 -0
  60. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -10
  61. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +1 -1
  62. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +24 -0
  63. package/dist/_dts/sdk/src/client/management/http.d.ts +1 -1
  64. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -28
  65. package/dist/_dts/sdk/src/config/index.d.ts +1 -1
  66. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -20
  67. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  68. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -2
  69. package/dist/_dts/sdk/src/version.d.ts +1 -1
  70. package/dist/_dts/site-commands/src/commandContract.d.ts +33 -5
  71. package/dist/_dts/site-commands/src/commandDomain.d.ts +2 -2
  72. package/dist/_dts/site-commands/src/commands.d.ts +38 -9
  73. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +28 -1
  74. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +4 -4
  75. package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -1
  76. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +0 -18
  77. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -3
  78. package/dist/_dts/theme-core/src/header/containerSchema.d.ts +20 -0
  79. package/dist/_dts/theme-core/src/header/generateHeaderCss.d.ts +1 -1
  80. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +14 -0
  81. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +3 -0
  82. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +25 -0
  83. package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +11 -0
  84. package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +9 -0
  85. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +15 -0
  86. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/palette/concretePalette.d.ts +20 -0
  88. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -17
  89. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -6
  90. package/dist/_dts/theme-core/src/palette/schema.d.ts +39 -0
  91. package/dist/_dts/theme-core/src/schema.d.ts +105 -45
  92. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -51
  93. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -11
  94. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +3 -51
  95. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +32 -0
  96. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +19 -106
  97. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +22 -0
  98. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -0
  99. package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +4 -0
  100. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  101. package/dist/_dts/theme-core/src/site-styles/lookOptionGroups.d.ts +24 -0
  102. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +1 -2
  103. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -22
  104. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorOptions.d.ts +21 -0
  105. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +5 -7
  106. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -6
  107. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +4 -1
  108. package/dist/cli/index.mjs +1583 -1601
  109. package/dist/cli/init-docs/content/cli-reference.md +6 -3
  110. package/dist/cli/init-docs/content/content-management.md +24 -13
  111. package/dist/client/{DiscountCodeDisclosure-CyPpekBp.mjs → DiscountCodeDisclosure-BDFRp8Y7.mjs} +1 -1
  112. package/dist/client/{EventCombined.client-zywit-60.mjs → EventCombined.client-DJgF1_lf.mjs} +2 -2
  113. package/dist/client/{EventListing.client-J2nLhkKT.mjs → EventListing.client-CnWGNjOr.mjs} +2 -2
  114. package/dist/client/{LeafletStaticMap-CSubXWt6.mjs → LeafletStaticMap-BISs9Bl7.mjs} +1 -1
  115. package/dist/client/{MagicLinkForm-DDLIfiq9.mjs → MagicLinkForm-b5E_HoG9.mjs} +1 -1
  116. package/dist/client/{StepIndicator-DE8EvHIp.mjs → StepIndicator-D8gVYkK-.mjs} +2 -2
  117. package/dist/client/{accordion-Ct5T5NiA.mjs → accordion-DFDajgDz.mjs} +1 -1
  118. package/dist/client/{bookingForm-DMxtLPxw.mjs → bookingForm-Bdqj9-52.mjs} +5 -6
  119. package/dist/client/bookings.mjs +315 -46
  120. package/dist/client/{carousel--FMqgvob.mjs → carousel-Cvqf-kN8.mjs} +1 -1
  121. package/dist/client/{cart-BKX1bWiU.mjs → cart-CuH2TJXP.mjs} +3 -3
  122. package/dist/client/{checkout-B_jxi4WW.mjs → checkout-CMNPpejZ.mjs} +3 -3
  123. package/dist/client/client.mjs +1381 -1427
  124. package/dist/client/{courseRegistration-DH4MlkRD.mjs → courseRegistration-DTEYWL6Z.mjs} +6 -7
  125. package/dist/client/{eventCalendar-BQILwAcL.mjs → eventCalendar-BW-XoxZ0.mjs} +4 -4
  126. package/dist/client/{eventCombined-DFFW_Vmo.mjs → eventCombined-Bpn7s0y9.mjs} +2 -2
  127. package/dist/client/{eventDetails-B045CTSJ.mjs → eventDetails-D2uUSTMH.mjs} +3 -3
  128. package/dist/client/{eventListing-BDMYNVzS.mjs → eventListing-CVr1c094.mjs} +2 -2
  129. package/dist/client/{eventRegistration-CQ2-BSnB.mjs → eventRegistration-Dv4AvkMw.mjs} +30 -22
  130. package/dist/client/{form-DJKuyZgN.mjs → form-DxdKf9fs.mjs} +1 -1
  131. package/dist/client/{headerSection-DeTjfiDo.mjs → headerSection-BaXI5Sro.mjs} +2 -2
  132. package/dist/client/hooks.mjs +851 -976
  133. package/dist/client/{locationMap-i2wDA8gB.mjs → locationMap-BEtW2fKz.mjs} +2 -2
  134. package/dist/client/{newsletterForm-DKiueauk.mjs → newsletterForm-BKKs0S4R.mjs} +1 -1
  135. package/dist/client/{pricing-C01J3Epx.mjs → pricing-ClkqcElA.mjs} +1 -1
  136. package/dist/client/{productDetail-Dfc1sZaX.mjs → productDetail-H-ru8dyy.mjs} +3 -3
  137. package/dist/client/{productList-BXbvXWTF.mjs → productList-Buyi5c0C.mjs} +3 -3
  138. package/dist/client/{propsDecoder-CIR5DQ1l.mjs → propsDecoder-BF7i6Ijg.mjs} +293 -65
  139. package/dist/client/rendering/client.mjs +1145 -1190
  140. package/dist/client/rendering/islands.mjs +18 -18
  141. package/dist/client/rendering.mjs +1257 -1298
  142. package/dist/client/{useDiscountCodeUi-Bcyh4508.mjs → scrollToBlock-D_7t8yWb.mjs} +18 -2
  143. package/dist/client/{shop-BbNwPKM-.mjs → shop-CF7SZQNX.mjs} +5 -6
  144. package/dist/client/{shop-commerce-XO-XMFEt.mjs → shop-commerce-DA7_Rq5p.mjs} +4 -4
  145. package/dist/client/{shop-commerce-store-Byh6OUGK.mjs → shop-commerce-store-BmLqW7Gh.mjs} +1 -1
  146. package/dist/client/{shopShared-Bbq39mwr.mjs → shopShared-WL-E1znM.mjs} +2 -2
  147. package/dist/client/{useEventFilters-C8OOJ3el.mjs → useEventFilters-rc8VLeLV.mjs} +2 -2
  148. package/dist/client/{usePolling-CyJVo9kF.mjs → usePolling-1ncrfd4S.mjs} +2 -2
  149. package/dist/preview-next/before-render.mjs +0 -7
  150. package/dist/preview-next/client/runtime.mjs +4 -4
  151. package/dist/preview-next/middleware.mjs +0 -7
  152. package/dist/{previewAuthStore-CJX21dGi.mjs → previewAuthStore-Dev9CdG9.mjs} +0 -7
  153. package/dist/{sdk-runtime-BGhyuE-E.mjs → sdk-runtime-BnrCCFJq.mjs} +2 -2
  154. package/dist/{separator-BFs-Kmv5.mjs → separator-CFvBx2yl.mjs} +1 -1
  155. package/dist/server/components.mjs +1389 -1489
  156. package/dist/server/config-validation.mjs +851 -976
  157. package/dist/server/config.mjs +851 -976
  158. package/dist/server/data.mjs +851 -976
  159. package/dist/server/index.mjs +1 -8
  160. package/dist/server/next.mjs +1393 -1500
  161. package/dist/server/page-converter.mjs +851 -976
  162. package/dist/server/prebuild.mjs +1 -1
  163. package/dist/server/rendering/server.mjs +1346 -1446
  164. package/dist/server/rendering.mjs +1390 -1490
  165. package/dist/server/routing.mjs +939 -1041
  166. package/dist/server/server.mjs +852 -984
  167. package/dist/server/theme-bridge.mjs +322 -279
  168. package/dist/server/theme.mjs +277 -33
  169. package/package.json +1 -1
  170. package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +0 -8
  171. package/dist/_dts/theme-core/src/palette/editorState.d.ts +0 -75
  172. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +0 -64
  173. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +0 -81
  174. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +0 -75
  175. package/dist/_dts/theme-core/src/palette/selection.d.ts +0 -74
  176. package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +0 -34
  177. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
@@ -6225,13 +6225,6 @@ const API_ENDPOINTS$1 = {
6225
6225
  auth: "user",
6226
6226
  responseKind: "json"
6227
6227
  },
6228
- listSiteThemePalettes: {
6229
- path: "/sites/{siteId}/theme/palettes",
6230
- method: "GET",
6231
- auth: "user",
6232
- errors: [],
6233
- responseKind: "json"
6234
- },
6235
6228
  createSiteFontUploadUrl: {
6236
6229
  path: "/sites/{siteId}/fonts/upload-url",
6237
6230
  method: "POST",
@@ -7949,7 +7942,7 @@ var SimpleCache = class {
7949
7942
  * 1. This constant
7950
7943
  * 2. The "version" field in package.json
7951
7944
  */
7952
- const SDK_VERSION = "0.125.0";
7945
+ const SDK_VERSION = "0.127.0";
7953
7946
  //#endregion
7954
7947
  //#region src/client/error.ts
7955
7948
  let _Symbol$for;
@@ -11991,6 +11984,21 @@ const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isTh
11991
11984
  //#region ../theme-core/src/palette/colors.ts
11992
11985
  const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
11993
11986
  const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
11987
+ const THEME_PALETTE_COLOR_ORDER = [
11988
+ "primary",
11989
+ "secondary",
11990
+ "accent",
11991
+ "success",
11992
+ "warning",
11993
+ "destructive",
11994
+ "background",
11995
+ "surface",
11996
+ "surfaceAlt",
11997
+ "muted",
11998
+ "text",
11999
+ "primaryForeground",
12000
+ "border"
12001
+ ];
11994
12002
  const hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
11995
12003
  const paletteModeSchema = z$1.enum(["light", "dark"]);
11996
12004
  const PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
@@ -12068,6 +12076,12 @@ function requirePaletteColorsFromEntries(entries) {
12068
12076
  if (result.ok) return result.colors;
12069
12077
  throw new Error(`Invalid complete palette: ${result.error.kind}`);
12070
12078
  }
12079
+ function paletteColorEntries(colors) {
12080
+ return THEME_PALETTE_COLOR_ORDER.map((name) => ({
12081
+ name,
12082
+ hex: colors[name]
12083
+ }));
12084
+ }
12071
12085
  function paletteColorFingerprint(colors) {
12072
12086
  return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
12073
12087
  }
@@ -12075,7 +12089,7 @@ function canonicalPaletteHashInput(colors, mode) {
12075
12089
  return `${mode}|${paletteColorFingerprint(colors)}`;
12076
12090
  }
12077
12091
  /**
12078
- * The shared TypeScript/SQL protocol. Do not reorder roles: the order comes
12092
+ * Stable curated-catalogue identity. Do not reorder roles: the order comes
12079
12093
  * from PALETTE_TOKEN_NAMES through canonicalPaletteHashInput.
12080
12094
  */
12081
12095
  function paletteValueKey(colors, mode) {
@@ -13401,13 +13415,6 @@ const warmDarkKirtanGold = defineCuratedPalette({
13401
13415
  });
13402
13416
  //#endregion
13403
13417
  //#region ../theme-core/src/palette/curated/index.ts
13404
- /**
13405
- * Curated palette library.
13406
- *
13407
- * Authoring keys are readable source aliases. Value keys are derived from the
13408
- * complete mode and semantic colours and are the only curated identity used at
13409
- * persistence and runtime boundaries.
13410
- */
13411
13418
  function admitCuratedPaletteDefinition(definition) {
13412
13419
  return {
13413
13420
  ...definition,
@@ -13434,11 +13441,8 @@ const curatedPalettes = [
13434
13441
  admitCuratedPaletteDefinition(warmDarkEmber),
13435
13442
  admitCuratedPaletteDefinition(warmDarkKirtanGold)
13436
13443
  ];
13437
- const curatedPalettesByValueKey = new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
13444
+ new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
13438
13445
  const curatedPalettesByAuthoringKey = new Map(curatedPalettes.map((palette) => [palette.authoringKey, palette]));
13439
- function findCuratedPalette(valueKey) {
13440
- return curatedPalettesByValueKey.get(valueKey);
13441
- }
13442
13446
  function findCuratedPaletteByAuthoringKey(authoringKey) {
13443
13447
  return curatedPalettesByAuthoringKey.get(authoringKey);
13444
13448
  }
@@ -13447,87 +13451,6 @@ function requireCuratedPaletteValueKey(authoringKey) {
13447
13451
  if (!palette) throw new Error(`Unknown curated palette authoring key "${authoringKey}"`);
13448
13452
  return palette.valueKey;
13449
13453
  }
13450
- /** Parses a raw persisted key into catalogue-proven curated membership. */
13451
- const knownCuratedPaletteValueKeySchema = z$1.string().transform((value, ctx) => {
13452
- const valueKey = parsePaletteValueKey(value);
13453
- if (!valueKey) {
13454
- ctx.addIssue({
13455
- code: "custom",
13456
- message: "Invalid canonical palette value key"
13457
- });
13458
- return z$1.NEVER;
13459
- }
13460
- const palette = findCuratedPalette(valueKey);
13461
- if (!palette) {
13462
- ctx.addIssue({
13463
- code: "custom",
13464
- message: "Unknown curated palette value key"
13465
- });
13466
- return z$1.NEVER;
13467
- }
13468
- return palette.valueKey;
13469
- });
13470
- //#endregion
13471
- //#region ../theme-core/src/palette/selection.ts
13472
- const sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
13473
- const sitePaletteVersionSchema = z$1.number().int().nonnegative().transform((value) => value);
13474
- const paletteSelectionSchema = z$1.discriminatedUnion("kind", [z$1.object({
13475
- kind: z$1.literal("curated"),
13476
- valueKey: knownCuratedPaletteValueKeySchema
13477
- }), z$1.object({
13478
- kind: z$1.literal("site"),
13479
- paletteId: sitePaletteIdSchema
13480
- })]);
13481
- const onboardingPaletteOriginSchema = z$1.object({
13482
- kind: z$1.literal("onboarding"),
13483
- sourceKey: z$1.string().min(1).nullable()
13484
- });
13485
- const curatedForkPaletteOriginSchema = z$1.object({
13486
- kind: z$1.literal("curated-fork"),
13487
- sourceValueKey: paletteValueKeySchema
13488
- });
13489
- const manualPaletteOriginSchema = z$1.object({ kind: z$1.literal("manual") });
13490
- const legacyCustomizedPaletteOriginSchema = z$1.object({
13491
- kind: z$1.literal("legacy-customized"),
13492
- sourceKey: z$1.string().min(1).nullable()
13493
- });
13494
- const sitePaletteOriginSchema = z$1.discriminatedUnion("kind", [
13495
- onboardingPaletteOriginSchema,
13496
- curatedForkPaletteOriginSchema,
13497
- manualPaletteOriginSchema,
13498
- legacyCustomizedPaletteOriginSchema
13499
- ]);
13500
- const editorSitePaletteOriginSchema = z$1.discriminatedUnion("kind", [z$1.object({
13501
- kind: z$1.literal("curated-fork"),
13502
- sourceValueKey: knownCuratedPaletteValueKeySchema
13503
- }), manualPaletteOriginSchema]);
13504
- z$1.object({
13505
- id: sitePaletteIdSchema,
13506
- colors: paletteColorsSchema,
13507
- mode: paletteModeSchema,
13508
- origin: sitePaletteOriginSchema,
13509
- version: sitePaletteVersionSchema
13510
- });
13511
- z$1.discriminatedUnion("kind", [
13512
- z$1.object({ kind: z$1.literal("preserve") }),
13513
- z$1.object({
13514
- kind: z$1.literal("select"),
13515
- selection: paletteSelectionSchema
13516
- }),
13517
- z$1.object({
13518
- kind: z$1.literal("create-site"),
13519
- colors: paletteColorsSchema,
13520
- mode: paletteModeSchema,
13521
- origin: editorSitePaletteOriginSchema
13522
- }),
13523
- z$1.object({
13524
- kind: z$1.literal("update-site"),
13525
- paletteId: sitePaletteIdSchema,
13526
- expectedVersion: sitePaletteVersionSchema,
13527
- colors: paletteColorsSchema,
13528
- mode: paletteModeSchema
13529
- })
13530
- ]);
13531
13454
  //#endregion
13532
13455
  //#region ../theme-core/src/lib/media.ts
13533
13456
  const hotspotSchema$1 = z.object({
@@ -13586,6 +13509,34 @@ const mediaSchema$1 = z.object({
13586
13509
  transform: transformSchema$1.optional()
13587
13510
  });
13588
13511
  //#endregion
13512
+ //#region ../theme-core/src/palette/schema.ts
13513
+ const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
13514
+ const paletteColorSchema = z$1.object({
13515
+ name: z$1.string().min(1),
13516
+ hex: colourHexString
13517
+ });
13518
+ const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
13519
+ const paletteSchema = z$1.object({
13520
+ colors: z$1.array(paletteColorSchema),
13521
+ meta: paletteMetaSchema
13522
+ }).transform((palette, ctx) => {
13523
+ const colors = paletteColorsFromEntries(palette.colors);
13524
+ if (!colors.ok) {
13525
+ ctx.addIssue({
13526
+ code: "custom",
13527
+ message: `Invalid complete palette: ${colors.error.kind}`
13528
+ });
13529
+ return z$1.NEVER;
13530
+ }
13531
+ return {
13532
+ colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
13533
+ name: String(name),
13534
+ hex: String(hex)
13535
+ })),
13536
+ meta: palette.meta
13537
+ };
13538
+ });
13539
+ //#endregion
13589
13540
  //#region ../theme-core/src/buttons/types.ts
13590
13541
  /**
13591
13542
  * Standard semantic variant roles a theme exposes.
@@ -13598,8 +13549,6 @@ const VARIANT_ROLES = [
13598
13549
  "secondary",
13599
13550
  "outline",
13600
13551
  "ghost",
13601
- "link",
13602
- "tertiary",
13603
13552
  "accent"
13604
13553
  ];
13605
13554
  /**
@@ -13608,7 +13557,7 @@ const VARIANT_ROLES = [
13608
13557
  * IDs become class selectors, so keep the contract deliberately narrower than
13609
13558
  * an arbitrary string and shared with every authoring/runtime boundary.
13610
13559
  */
13611
- const buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only");
13560
+ const buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only").refine((value) => value !== "link" && value !== "tertiary", { message: "Retired button role IDs are not valid variant IDs" });
13612
13561
  function parseOpaqueButtonColourToken(value) {
13613
13562
  const token = parseThemeColorToken(value);
13614
13563
  if (token === null) return null;
@@ -14011,6 +13960,59 @@ function surfaceForegroundStyle(input) {
14011
13960
  [SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting
14012
13961
  };
14013
13962
  }
13963
+ shadeBackgroundEffect({
13964
+ id: "darken-background",
13965
+ name: "Darken on Hover",
13966
+ description: "Darkens the background color on hover",
13967
+ label: "Darken Amount (shade step)",
13968
+ shadeDirection: 1
13969
+ });
13970
+ shadeBackgroundEffect({
13971
+ id: "lighten-background",
13972
+ name: "Lighten on Hover",
13973
+ description: "Lightens the background color on hover",
13974
+ label: "Lighten Amount (shade step)",
13975
+ shadeDirection: -1
13976
+ });
13977
+ function shadeBackgroundEffect(config) {
13978
+ return {
13979
+ id: config.id,
13980
+ name: config.name,
13981
+ description: config.description,
13982
+ category: "background",
13983
+ pseudoElement: "none",
13984
+ applicableTo: ["button"],
13985
+ customizableOption: {
13986
+ name: "amount",
13987
+ type: "select",
13988
+ label: config.label,
13989
+ default: 100,
13990
+ options: [
13991
+ 0,
13992
+ 100,
13993
+ 200,
13994
+ 300,
13995
+ 400,
13996
+ 500,
13997
+ 600,
13998
+ 700,
13999
+ 800,
14000
+ 900
14001
+ ]
14002
+ },
14003
+ isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
14004
+ generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
14005
+ if (buttonConfig.background.type !== "solid") return "";
14006
+ const amount = (options.amount || 100) * config.shadeDirection;
14007
+ const baseToken = buttonConfig.background.colorToken ?? "primary-500";
14008
+ return `
14009
+ :where([data-theme-scope="${themeId}"]) .${variantId}:hover {
14010
+ background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
14011
+ }
14012
+ `;
14013
+ }
14014
+ };
14015
+ }
14014
14016
  buttonSizeNameSchema.options;
14015
14017
  //#endregion
14016
14018
  //#region ../theme-core/src/buttons/styles/domain.ts
@@ -16825,6 +16827,60 @@ function resolveThemeColorReferenceValue(input, context) {
16825
16827
  const reference = parseThemeColorReference(input, context);
16826
16828
  return reference.kind === "literal-css" ? reference.value : rgbColorValue(reference.token);
16827
16829
  }
16830
+ const BREAKPOINT_LG = 1024;
16831
+ const BREAKPOINT_XL = 1280;
16832
+ const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
16833
+ function mqUp(px) {
16834
+ return `(min-width: ${px}px)`;
16835
+ }
16836
+ function mqDown(px) {
16837
+ return `(max-width: ${px}px)`;
16838
+ }
16839
+ function mqBetween(minPx, maxPx) {
16840
+ return `${mqUp(minPx)} and ${mqDown(maxPx)}`;
16841
+ }
16842
+ mqUp(640);
16843
+ mqUp(768);
16844
+ mqUp(BREAKPOINT_LG);
16845
+ mqUp(BREAKPOINT_XL);
16846
+ mqDown(639);
16847
+ mqDown(767);
16848
+ mqDown(BREAKPOINT_LG_DOWN);
16849
+ mqBetween(640, BREAKPOINT_LG_DOWN);
16850
+ mqDown(640);
16851
+ mqDown(768);
16852
+ //#endregion
16853
+ //#region ../theme-core/src/header/scrollTreatment.ts
16854
+ const headerScrollTreatmentSchema = z$1.discriminatedUnion("kind", [z$1.object({
16855
+ kind: z$1.literal("contrast-glass"),
16856
+ backgroundTone: z$1.enum(["light", "dark"])
16857
+ })]).optional();
16858
+ //#endregion
16859
+ //#region ../theme-core/src/header/containerSchema.ts
16860
+ const headerContainerSchema = z$1.object({
16861
+ rounded: z$1.enum([
16862
+ "none",
16863
+ "sm",
16864
+ "md",
16865
+ "lg",
16866
+ "xl",
16867
+ "2xl"
16868
+ ]).default("xl"),
16869
+ border: z$1.boolean().default(true),
16870
+ shadow: z$1.boolean().default(true),
16871
+ padding: z$1.enum([
16872
+ "sm",
16873
+ "md",
16874
+ "lg"
16875
+ ]).default("md"),
16876
+ tint: z$1.string().nullable().optional(),
16877
+ opacity: z$1.number().min(0).max(1).default(.12)
16878
+ }).optional();
16879
+ const headerInteractionPaletteSchema = z$1.enum([
16880
+ "primary",
16881
+ "secondary",
16882
+ "accent"
16883
+ ]);
16828
16884
  //#endregion
16829
16885
  //#region ../theme-core/src/schema.ts
16830
16886
  const axesSchema = z$1.object({
@@ -16855,16 +16911,6 @@ const axesSchema = z$1.object({
16855
16911
  "expressive"
16856
16912
  ])
16857
16913
  });
16858
- const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
16859
- const paletteColorSchema = z$1.object({
16860
- name: z$1.string().min(1),
16861
- hex: colourHexString
16862
- });
16863
- const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
16864
- const paletteSchema = z$1.object({
16865
- colors: z$1.array(paletteColorSchema),
16866
- meta: paletteMetaSchema
16867
- });
16868
16914
  const typographyStyleSchema = z$1.object({
16869
16915
  family: z$1.string().min(1),
16870
16916
  weight: z$1.enum([
@@ -17244,25 +17290,6 @@ const navFontWeight = z$1.enum([
17244
17290
  ]);
17245
17291
  const headerMaxWidth = z$1.enum(["container", "full"]);
17246
17292
  const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
17247
- const headerContainerSchema = z$1.object({
17248
- rounded: z$1.enum([
17249
- "none",
17250
- "sm",
17251
- "md",
17252
- "lg",
17253
- "xl",
17254
- "2xl"
17255
- ]).default("xl"),
17256
- border: z$1.boolean().default(true),
17257
- shadow: z$1.boolean().default(true),
17258
- padding: z$1.enum([
17259
- "sm",
17260
- "md",
17261
- "lg"
17262
- ]).default("md"),
17263
- tint: z$1.string().nullable().optional(),
17264
- opacity: z$1.number().min(0).max(1).default(.12)
17265
- }).optional();
17266
17293
  const headerBorderSchema = componentBorderSchema.extend({ position: z$1.enum([
17267
17294
  "bottom",
17268
17295
  "top",
@@ -17389,6 +17416,7 @@ const headerSchema = z$1.object({
17389
17416
  shrinkOnScroll: z$1.boolean(),
17390
17417
  maxWidth: headerMaxWidth,
17391
17418
  barFrame: headerBarFrame.optional(),
17419
+ scrollTreatment: headerScrollTreatmentSchema,
17392
17420
  logoOverride: mediaSchema$1.nullable().optional(),
17393
17421
  background: headerBackgroundSchema.default({
17394
17422
  type: "color",
@@ -17401,6 +17429,7 @@ const headerSchema = z$1.object({
17401
17429
  navFontRole: z$1.enum(["body", "heading"]).optional(),
17402
17430
  navTypography: z$1.enum(["body", "heading"]).optional(),
17403
17431
  navTextSize: navLinkStyleSchema.shape.textSize,
17432
+ interactionPalette: headerInteractionPaletteSchema.optional(),
17404
17433
  navPlacement: z$1.enum(["end", "center"]).optional(),
17405
17434
  container: headerContainerSchema,
17406
17435
  border: headerBorderSchema,
@@ -17693,770 +17722,669 @@ z$1.object({
17693
17722
  themes: z$1.array(themeSchema).length(3)
17694
17723
  });
17695
17724
  //#endregion
17725
+ //#region ../theme-core/src/site-styles/lookOptionGroups.ts
17726
+ function defineLookOptionGroup(group) {
17727
+ defaultOption(group);
17728
+ return group;
17729
+ }
17730
+ function defaultOption(group) {
17731
+ const option = group.options.find((candidate) => candidate.id === group.defaultOptionId);
17732
+ if (option) return option;
17733
+ throw new Error(`Look option group "${group.id}" defaults to missing option "${group.defaultOptionId}".`);
17734
+ }
17735
+ //#endregion
17696
17736
  //#region ../theme-core/src/site-styles/appearancePresetResolution.ts
17697
17737
  function assertValidOptionGroups(preset) {
17698
17738
  preset.optionGroups?.forEach((group) => {
17699
- if (!group.options.find((option) => option.id === group.selectedOptionId)) throw new Error(`Appearance preset "${preset.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`);
17739
+ defineLookOptionGroup(group);
17700
17740
  });
17701
17741
  }
17702
17742
  function defineBlockAppearancePreset(preset) {
17703
17743
  assertValidOptionGroups(preset);
17704
17744
  return preset;
17705
17745
  }
17706
- [...[
17707
- defineBlockAppearancePreset({
17708
- kind: "block-design",
17709
- id: "hero-immersive-image",
17710
- target: "hero",
17711
- label: "Immersive image hero",
17712
- blockKinds: ["block.hero"],
17713
- constraints: { layoutFamilies: ["centered", "compact"] },
17714
- layoutPatches: [{
17715
- constraints: { layoutVariantKeys: ["micro"] },
17716
- designPatch: {
17717
- sectionHeight: "banner",
17718
- heroTypographyScale: "display"
17719
- }
17720
- }],
17721
- design: {
17722
- sectionSurface: "hero-image",
17723
- contentFrame: plainFrame,
17724
- itemSurface: "none",
17725
- sectionHeight: "hero",
17726
- heroComposition: "center",
17727
- heroTypographyScale: "display",
17728
- imageSurfaceTreatment: { kind: "neutral-wash" }
17746
+ //#endregion
17747
+ //#region ../theme-core/src/site-styles/blockAppearancePresets.ts
17748
+ const brandScrimOptionGroups = [{
17749
+ id: "image-surface-treatment",
17750
+ label: "Treatment",
17751
+ defaultOptionId: "brand-scrim-primary",
17752
+ options: [{
17753
+ id: "brand-scrim-primary",
17754
+ label: "Brand scrim",
17755
+ designPatch: { imageSurfaceTreatment: {
17756
+ kind: "brand-scrim",
17757
+ token: "primary"
17758
+ } }
17759
+ }, {
17760
+ id: "neutral-scrim",
17761
+ label: "Neutral scrim",
17762
+ designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
17763
+ }]
17764
+ }];
17765
+ const microBannerLayoutPatches = [{
17766
+ constraints: { layoutVariantKeys: ["micro"] },
17767
+ designPatch: { sectionHeight: "banner" }
17768
+ }];
17769
+ defineBlockAppearancePreset({
17770
+ id: "hero-immersive-image",
17771
+ target: "hero",
17772
+ label: "Immersive image hero",
17773
+ blockKinds: ["block.hero"],
17774
+ constraints: { layoutFamilies: ["centered", "compact"] },
17775
+ layoutPatches: [{
17776
+ constraints: { layoutVariantKeys: ["micro"] },
17777
+ designPatch: {
17778
+ sectionHeight: "banner",
17779
+ heroTypographyScale: "display"
17729
17780
  }
17730
- }),
17731
- defineBlockAppearancePreset({
17732
- kind: "block-design",
17733
- id: "hero-bottom-left-panel",
17734
- target: "hero",
17735
- label: "Bottom-left panel hero",
17736
- blockKinds: ["block.hero"],
17737
- constraints: { layoutFamilies: ["centered", "compact"] },
17738
- optionGroups: [{
17739
- id: "image-surface-treatment",
17740
- label: "Treatment",
17741
- selectedOptionId: "neutral-scrim",
17742
- options: [{
17743
- id: "neutral-scrim",
17744
- label: "Neutral scrim",
17745
- designPatch: { imageSurfaceTreatment: {
17746
- kind: "neutral-scrim",
17747
- intensity: "balanced"
17748
- } }
17749
- }, {
17750
- id: "brand-scrim-primary",
17751
- label: "Brand scrim",
17752
- designPatch: { imageSurfaceTreatment: {
17753
- kind: "brand-scrim",
17754
- token: "primary",
17755
- intensity: "balanced"
17756
- } }
17757
- }]
17758
- }],
17759
- layoutPatches: [{
17760
- constraints: { layoutVariantKeys: ["micro"] },
17761
- designPatch: {
17762
- sectionHeight: "banner",
17763
- heroTypographyScale: "editorial"
17764
- }
17765
- }],
17766
- design: {
17767
- sectionSurface: "hero-image",
17768
- contentFrame: panelFrame("raised"),
17769
- itemSurface: "none",
17770
- sectionHeight: "immersive",
17771
- heroComposition: "bottom-left",
17772
- heroTypographyScale: "display",
17773
- imageSurfaceTreatment: {
17781
+ }],
17782
+ design: {
17783
+ sectionSurface: "hero-image",
17784
+ contentFrame: plainFrame,
17785
+ itemSurface: "none",
17786
+ sectionHeight: "hero",
17787
+ heroComposition: "center",
17788
+ heroTypographyScale: "display",
17789
+ imageSurfaceTreatment: { kind: "neutral-wash" }
17790
+ }
17791
+ }), defineBlockAppearancePreset({
17792
+ id: "hero-bottom-left-panel",
17793
+ target: "hero",
17794
+ label: "Bottom-left panel hero",
17795
+ blockKinds: ["block.hero"],
17796
+ constraints: { layoutFamilies: ["centered", "compact"] },
17797
+ optionGroups: [{
17798
+ id: "image-surface-treatment",
17799
+ label: "Treatment",
17800
+ defaultOptionId: "neutral-scrim",
17801
+ options: [{
17802
+ id: "neutral-scrim",
17803
+ label: "Neutral scrim",
17804
+ designPatch: { imageSurfaceTreatment: {
17774
17805
  kind: "neutral-scrim",
17775
17806
  intensity: "balanced"
17776
- }
17777
- }
17778
- }),
17779
- defineBlockAppearancePreset({
17780
- kind: "block-design",
17781
- id: "hero-poster-image",
17782
- target: "hero",
17783
- label: "Poster image hero",
17784
- blockKinds: ["block.hero"],
17785
- constraints: { layoutFamilies: ["centered", "compact"] },
17786
- layoutPatches: [{
17787
- constraints: { layoutVariantKeys: ["micro"] },
17788
- designPatch: {
17789
- sectionHeight: "banner",
17790
- heroTypographyScale: "display"
17791
- }
17792
- }],
17793
- design: {
17794
- sectionSurface: "hero-image",
17795
- contentFrame: plainFrame,
17796
- itemSurface: "none",
17797
- sectionHeight: "immersive",
17798
- heroComposition: "center",
17799
- heroTypographyScale: "poster",
17800
- imageSurfaceTreatment: {
17807
+ } }
17808
+ }, {
17809
+ id: "brand-scrim-primary",
17810
+ label: "Brand scrim",
17811
+ designPatch: { imageSurfaceTreatment: {
17801
17812
  kind: "brand-scrim",
17802
17813
  token: "primary",
17803
- intensity: "strong"
17804
- }
17805
- }
17806
- }),
17807
- defineBlockAppearancePreset({
17808
- kind: "block-design",
17809
- id: "hero-brand-scrim",
17810
- target: "hero",
17811
- label: "Brand scrim image hero",
17812
- blockKinds: ["block.hero"],
17813
- constraints: { layoutFamilies: ["centered", "compact"] },
17814
- optionGroups: [{
17815
- id: "image-surface-treatment",
17816
- label: "Treatment",
17817
- selectedOptionId: "brand-scrim-primary",
17818
- options: [{
17819
- id: "brand-scrim-primary",
17820
- label: "Brand scrim",
17821
- designPatch: { imageSurfaceTreatment: {
17822
- kind: "brand-scrim",
17823
- token: "primary"
17824
- } }
17825
- }, {
17826
- id: "neutral-scrim",
17827
- label: "Neutral scrim",
17828
- designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
17829
- }]
17830
- }],
17831
- layoutPatches: [{
17832
- constraints: { layoutVariantKeys: ["micro"] },
17833
- designPatch: { sectionHeight: "banner" }
17834
- }],
17835
- design: {
17836
- sectionSurface: "hero-image",
17837
- contentFrame: plainFrame,
17838
- itemSurface: "none",
17839
- sectionHeight: "immersive",
17840
- heroComposition: "center",
17841
- heroTypographyScale: "display",
17842
- imageSurfaceTreatment: {
17843
- kind: "brand-scrim",
17844
- token: "primary"
17845
- }
17846
- }
17847
- }),
17848
- defineBlockAppearancePreset({
17849
- kind: "block-design",
17850
- id: "hero-brand-scrim-fixed-frame",
17851
- target: "hero",
17852
- label: "Fixed-frame brand scrim hero",
17853
- blockKinds: ["block.hero"],
17854
- constraints: { layoutFamilies: ["centered", "compact"] },
17855
- optionGroups: [{
17856
- id: "image-surface-treatment",
17857
- label: "Treatment",
17858
- selectedOptionId: "brand-scrim-primary",
17859
- options: [{
17860
- id: "brand-scrim-primary",
17861
- label: "Brand scrim",
17862
- designPatch: { imageSurfaceTreatment: {
17863
- kind: "brand-scrim",
17864
- token: "primary"
17865
- } }
17866
- }, {
17867
- id: "neutral-scrim",
17868
- label: "Neutral scrim",
17869
- designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
17870
- }]
17871
- }],
17872
- layoutPatches: [{
17873
- constraints: { layoutVariantKeys: ["micro"] },
17874
- designPatch: { sectionHeight: "banner" }
17875
- }],
17876
- design: {
17877
- sectionSurface: "hero-image",
17878
- contentFrame: plainFrame,
17879
- itemSurface: "none",
17880
- sectionHeight: "immersive",
17881
- heroComposition: "center",
17882
- heroTypographyScale: "display",
17883
- imageSurfaceTreatment: {
17884
- kind: "brand-scrim",
17885
- token: "primary"
17886
- },
17887
- imageSurfaceMotion: "fixed-frame",
17888
- eyebrowTreatment: "accent-pill-bounce"
17889
- }
17890
- }),
17891
- defineBlockAppearancePreset({
17892
- kind: "block-design",
17893
- id: "hero-brand-depth-expressive",
17894
- target: "hero",
17895
- label: "Expressive brand-depth hero",
17896
- blockKinds: ["block.hero"],
17897
- constraints: { layoutFamilies: ["centered", "compact"] },
17898
- design: {
17899
- sectionSurface: "brand-depth-band",
17900
- contentFrame: plainFrame,
17901
- itemSurface: "none",
17902
- heroComposition: "center",
17903
- heroTypographyScale: "editorial",
17904
- eyebrowTreatment: "accent-pill-bounce"
17905
- }
17906
- }),
17907
- defineBlockAppearancePreset({
17908
- kind: "block-design",
17909
- id: "hero-contained-intro",
17910
- target: "hero",
17911
- label: "Contained intro hero",
17912
- blockKinds: ["block.hero"],
17913
- design: {
17914
- sectionSurface: "muted-band",
17915
- contentFrame: panelFrame("inset"),
17916
- itemSurface: "none",
17917
- heroComposition: "center",
17918
- heroTypographyScale: "editorial"
17919
- }
17920
- }),
17921
- defineBlockAppearancePreset({
17922
- kind: "block-design",
17923
- id: "hero-split-editorial",
17924
- target: "hero",
17925
- label: "Editorial split hero",
17926
- blockKinds: ["block.hero"],
17927
- constraints: { layoutFamilies: ["split"] },
17928
- design: {
17929
- sectionSurface: "base",
17930
- contentFrame: plainFrame,
17931
- itemSurface: "none",
17932
- heroTypographyScale: "editorial"
17933
- }
17934
- }),
17935
- defineBlockAppearancePreset({
17936
- kind: "block-design",
17937
- id: "hero-split-brand",
17938
- target: "hero",
17939
- label: "Brand split hero",
17940
- blockKinds: ["block.hero"],
17941
- constraints: { layoutFamilies: ["split"] },
17942
- design: {
17943
- sectionSurface: "brand-depth-band",
17944
- contentFrame: plainFrame,
17945
- itemSurface: "none",
17946
- heroTypographyScale: "display",
17947
- eyebrowTreatment: "accent-pill-bounce"
17948
- }
17949
- }),
17950
- defineBlockAppearancePreset({
17951
- kind: "block-design",
17952
- id: "hero-split-soft-panel",
17953
- target: "hero",
17954
- label: "Soft panel split hero",
17955
- blockKinds: ["block.hero"],
17956
- constraints: { layoutFamilies: ["split"] },
17957
- design: {
17958
- sectionSurface: "muted-band",
17959
- contentFrame: panelFrame("raised"),
17960
- itemSurface: "none",
17814
+ intensity: "balanced"
17815
+ } }
17816
+ }]
17817
+ }],
17818
+ layoutPatches: [{
17819
+ constraints: { layoutVariantKeys: ["micro"] },
17820
+ designPatch: {
17821
+ sectionHeight: "banner",
17961
17822
  heroTypographyScale: "editorial"
17962
17823
  }
17963
- }),
17964
- defineBlockAppearancePreset({
17965
- kind: "block-design",
17966
- id: "hero-split-accent",
17967
- target: "hero",
17968
- label: "Accent split hero",
17969
- blockKinds: ["block.hero"],
17970
- constraints: { layoutFamilies: ["split"] },
17971
- design: {
17972
- sectionSurface: "accent-band",
17973
- contentFrame: panelFrame("raised"),
17974
- itemSurface: "none",
17824
+ }],
17825
+ design: {
17826
+ sectionSurface: "hero-image",
17827
+ contentFrame: panelFrame("raised"),
17828
+ itemSurface: "none",
17829
+ sectionHeight: "immersive",
17830
+ heroComposition: "bottom-left",
17831
+ heroTypographyScale: "display",
17832
+ imageSurfaceTreatment: {
17833
+ kind: "neutral-scrim",
17834
+ intensity: "balanced"
17835
+ }
17836
+ }
17837
+ }), defineBlockAppearancePreset({
17838
+ id: "hero-poster-image",
17839
+ target: "hero",
17840
+ label: "Poster image hero",
17841
+ blockKinds: ["block.hero"],
17842
+ constraints: { layoutFamilies: ["centered", "compact"] },
17843
+ layoutPatches: [{
17844
+ constraints: { layoutVariantKeys: ["micro"] },
17845
+ designPatch: {
17846
+ sectionHeight: "banner",
17975
17847
  heroTypographyScale: "display"
17976
17848
  }
17977
- }),
17978
- defineBlockAppearancePreset({
17979
- kind: "block-design",
17980
- id: "intro-editorial-statement",
17981
- target: "intro",
17982
- label: "Editorial intro statement",
17983
- blockKinds: ["block.intro"],
17984
- constraints: { layoutVariantKeys: ["centered-copy", "statement-copy"] },
17985
- design: {
17986
- sectionSurface: "base",
17987
- contentFrame: plainFrame,
17988
- itemSurface: "none",
17989
- composition: {
17990
- kind: "intro",
17991
- treatment: "editorial-statement"
17992
- }
17993
- }
17994
- }),
17995
- defineBlockAppearancePreset({
17996
- kind: "block-design",
17997
- id: "intro-portrait-bio",
17998
- target: "intro",
17999
- label: "Portrait and bio",
18000
- blockKinds: ["block.intro"],
18001
- constraints: { layoutVariantKeys: ["media-copy"] },
18002
- design: {
18003
- sectionSurface: "base",
18004
- contentFrame: plainFrame,
18005
- itemSurface: "none",
18006
- composition: {
18007
- kind: "intro",
18008
- treatment: "portrait-bio"
18009
- }
18010
- }
18011
- }),
18012
- defineBlockAppearancePreset({
18013
- kind: "block-design",
18014
- id: "offerings-preview-default-cards",
18015
- target: "offerings",
18016
- label: "Default offering cards",
18017
- blockKinds: ["block.offerings-preview"],
18018
- design: {
18019
- sectionSurface: "base",
18020
- contentFrame: plainFrame,
18021
- itemSurface: "default"
18022
- }
18023
- }),
18024
- defineBlockAppearancePreset({
18025
- kind: "block-design",
18026
- id: "offerings-preview-secondary-cards",
18027
- target: "offerings",
18028
- label: "Secondary offering cards",
18029
- blockKinds: ["block.offerings-preview"],
18030
- design: {
18031
- sectionSurface: "muted-band",
18032
- contentFrame: plainFrame,
18033
- itemSurface: "inset"
18034
- }
18035
- }),
18036
- defineBlockAppearancePreset({
18037
- kind: "block-design",
18038
- id: "offerings-preview-non-carded",
18039
- target: "offerings",
18040
- label: "Non-carded offerings",
18041
- blockKinds: ["block.offerings-preview"],
18042
- design: {
18043
- sectionSurface: "muted-band",
18044
- contentFrame: plainFrame,
18045
- itemSurface: "editorial"
18046
- }
18047
- }),
18048
- defineBlockAppearancePreset({
18049
- kind: "block-design",
18050
- id: "offerings-preview-paired-feature-cards",
18051
- target: "offerings",
18052
- label: "Paired feature cards",
18053
- blockKinds: ["block.offerings-preview"],
18054
- constraints: { layoutVariantKeys: ["cards"] },
18055
- design: {
18056
- sectionSurface: "base",
18057
- contentFrame: plainFrame,
18058
- itemSurface: "none"
18059
- }
18060
- }),
18061
- defineBlockAppearancePreset({
18062
- kind: "block-design",
18063
- id: "offerings-preview-open-editorial-columns",
18064
- target: "offerings",
18065
- label: "Open editorial columns",
18066
- blockKinds: ["block.offerings-preview"],
18067
- constraints: { layoutVariantKeys: ["cards"] },
18068
- design: {
18069
- sectionSurface: "base",
18070
- contentFrame: plainFrame,
18071
- itemSurface: "none"
18072
- }
18073
- }),
18074
- defineBlockAppearancePreset({
18075
- kind: "block-design",
18076
- id: "offerings-preview-joined-programme-panel",
18077
- target: "offerings",
18078
- label: "Joined programme panel",
18079
- blockKinds: ["block.offerings-preview"],
18080
- constraints: { layoutVariantKeys: ["cards"] },
18081
- design: {
18082
- sectionSurface: "base",
18083
- contentFrame: plainFrame,
18084
- itemSurface: "none"
18085
- }
18086
- }),
18087
- defineBlockAppearancePreset({
18088
- kind: "block-design",
18089
- id: "feature-cards-raised-rule",
18090
- target: "feature-cards",
18091
- label: "Raised cards with rule",
18092
- blockKinds: ["block.feature-cards"],
18093
- design: {
18094
- sectionSurface: "base",
18095
- contentFrame: plainFrame,
18096
- itemSurface: "raised"
18097
- }
18098
- }),
18099
- defineBlockAppearancePreset({
18100
- kind: "block-design",
18101
- id: "feature-cards-bold-colors",
18102
- target: "feature-cards",
18103
- label: "Bold colour-blocked cards",
18104
- blockKinds: ["block.feature-cards"],
18105
- design: {
18106
- sectionSurface: "base",
18107
- contentFrame: plainFrame,
18108
- itemSurface: "color-blocked"
18109
- }
18110
- }),
18111
- defineBlockAppearancePreset({
18112
- kind: "block-design",
18113
- id: "feature-cards-editorial-columns",
18114
- target: "feature-cards",
18115
- label: "Editorial open columns",
18116
- blockKinds: ["block.feature-cards"],
18117
- design: {
18118
- sectionSurface: "base",
18119
- contentFrame: plainFrame,
18120
- itemSurface: "editorial"
18121
- }
18122
- }),
18123
- defineBlockAppearancePreset({
18124
- kind: "block-design",
18125
- id: "feature-cards-asymmetric-emphasis",
18126
- target: "feature-cards",
18127
- label: "Asymmetric emphasis pair",
18128
- blockKinds: ["block.feature-cards"],
18129
- constraints: { layoutFamilies: ["grid"] },
18130
- design: {
18131
- sectionSurface: "base",
18132
- contentFrame: plainFrame,
18133
- itemSurface: "none",
18134
- composition: {
18135
- kind: "feature-cards",
18136
- treatment: "asymmetric-emphasis"
18137
- }
18138
- }
18139
- }),
18140
- defineBlockAppearancePreset({
18141
- kind: "block-design",
18142
- id: "feature-cards-framed-programme",
18143
- target: "feature-cards",
18144
- label: "Framed programme cards",
18145
- blockKinds: ["block.feature-cards"],
18146
- constraints: { layoutFamilies: ["grid"] },
18147
- design: {
18148
- sectionSurface: "brand-depth-band",
18149
- contentFrame: plainFrame,
18150
- itemSurface: "inset",
18151
- composition: {
18152
- kind: "feature-cards",
18153
- treatment: "framed-programme"
18154
- }
18155
- }
18156
- }),
18157
- defineBlockAppearancePreset({
18158
- kind: "block-design",
18159
- id: "feature-cards-soft-panels",
18160
- target: "feature-cards",
18161
- label: "Soft tinted panels",
18162
- blockKinds: ["block.feature-cards"],
18163
- design: {
18164
- sectionSurface: "base",
18165
- contentFrame: plainFrame,
18166
- itemSurface: "inset"
18167
- }
18168
- }),
18169
- defineBlockAppearancePreset({
18170
- kind: "block-design",
18171
- id: "feature-cards-editorial-diptych",
18172
- target: "feature-cards",
18173
- label: "Editorial diptych",
18174
- blockKinds: ["block.feature-cards"],
18175
- constraints: { layoutVariantKeys: ["editorial-diptych"] },
18176
- design: {
18177
- sectionSurface: "base",
18178
- contentFrame: plainFrame,
18179
- itemSurface: "flat"
18180
- }
18181
- }),
18182
- defineBlockAppearancePreset({
18183
- kind: "block-design",
18184
- id: "feature-cards-editorial-pathways",
18185
- target: "feature-cards",
18186
- label: "Editorial pathways",
18187
- blockKinds: ["block.feature-cards"],
18188
- constraints: { layoutVariantKeys: ["editorial-pathways"] },
18189
- design: {
18190
- sectionSurface: "base",
18191
- contentFrame: plainFrame,
18192
- itemSurface: "flat"
18193
- }
18194
- }),
18195
- defineBlockAppearancePreset({
18196
- kind: "block-design",
18197
- id: "feature-cards-photo-tiles",
18198
- target: "feature-cards",
18199
- label: "Photo tiles",
18200
- blockKinds: ["block.feature-cards"],
18201
- design: {
18202
- sectionSurface: "base",
18203
- contentFrame: plainFrame,
18204
- itemSurface: "raised"
18205
- }
18206
- }),
18207
- defineBlockAppearancePreset({
18208
- kind: "block-design",
18209
- id: "events-lined-panel",
18210
- target: "events",
18211
- label: "Raised event panel",
18212
- blockKinds: ["block.event-calendar", "block.event-listing"],
18213
- design: {
18214
- sectionSurface: "base",
18215
- contentFrame: panelFrame("raised"),
18216
- itemSurface: "none"
18217
- }
18218
- }),
18219
- defineBlockAppearancePreset({
18220
- kind: "block-design",
18221
- id: "events-ruled-register",
18222
- target: "events",
18223
- label: "Ruled event register",
18224
- blockKinds: ["block.event-calendar", "block.event-listing"],
18225
- design: {
18226
- sectionSurface: "brand-depth-band",
18227
- contentFrame: plainFrame,
18228
- itemSurface: "none",
18229
- eventListTreatment: "ruled-register"
18230
- }
18231
- }),
18232
- defineBlockAppearancePreset({
18233
- kind: "block-design",
18234
- id: "events-editorial-register",
18235
- target: "events",
18236
- label: "Editorial event register",
18237
- blockKinds: ["block.event-calendar", "block.event-listing"],
18238
- design: {
18239
- sectionSurface: "base",
18240
- contentFrame: plainFrame,
18241
- itemSurface: "none",
18242
- eventListTreatment: "editorial-register"
18243
- }
18244
- }),
18245
- defineBlockAppearancePreset({
18246
- kind: "block-design",
18247
- id: "events-dense-index",
18248
- target: "events",
18249
- label: "Dense event index",
18250
- blockKinds: ["block.event-calendar", "block.event-listing"],
18251
- design: {
18252
- sectionSurface: "accent-band",
18253
- contentFrame: plainFrame,
18254
- itemSurface: "none",
18255
- eventListTreatment: "dense-index"
18256
- }
18257
- }),
18258
- defineBlockAppearancePreset({
18259
- kind: "block-design",
18260
- id: "schedule-details-brand-depth",
18261
- target: "events",
18262
- label: "Brand-depth schedule details",
18263
- blockKinds: ["block.event-details", "block.course-details"],
18264
- design: {
18265
- sectionSurface: "brand-depth-band",
18266
- contentFrame: plainFrame,
18267
- itemSurface: "none",
18268
- tileTreatment: "brand-depth"
18269
- }
18270
- }),
18271
- defineBlockAppearancePreset({
18272
- kind: "block-design",
18273
- id: "media-text-flush-feature",
18274
- target: "media-text",
18275
- label: "Flush media feature",
18276
- blockKinds: ["block.media-text"],
18277
- design: {
18278
- sectionSurface: "muted-band",
18279
- contentFrame: flushPanelFrame({ bleed: "start" }),
18280
- itemSurface: "none"
18281
- }
18282
- }),
18283
- defineBlockAppearancePreset({
18284
- kind: "block-design",
18285
- id: "testimonials-simple-cards",
18286
- target: "testimonials",
18287
- label: "Simple testimonial cards",
18288
- blockKinds: ["block.testimonials"],
18289
- design: {
18290
- sectionSurface: "base",
18291
- contentFrame: plainFrame,
18292
- itemSurface: "default"
18293
- }
18294
- }),
18295
- defineBlockAppearancePreset({
18296
- kind: "block-design",
18297
- id: "testimonials-raised-panel",
18298
- target: "testimonials",
18299
- label: "Raised testimonial panel",
18300
- blockKinds: ["block.testimonials"],
18301
- design: {
18302
- sectionSurface: "muted-band",
18303
- contentFrame: panelFrame("raised"),
18304
- itemSurface: "raised"
18305
- }
18306
- }),
18307
- defineBlockAppearancePreset({
18308
- kind: "block-design",
18309
- id: "testimonials-accent-panel",
18310
- target: "testimonials",
18311
- label: "Accent testimonial panel",
18312
- blockKinds: ["block.testimonials"],
18313
- design: {
18314
- sectionSurface: "accent-band",
18315
- contentFrame: panelFrame("raised"),
18316
- itemSurface: "raised"
18317
- }
18318
- }),
18319
- defineBlockAppearancePreset({
18320
- kind: "block-design",
18321
- id: "testimonials-default-cards",
18322
- target: "testimonials",
18323
- label: "Default cards",
18324
- blockKinds: ["block.testimonials"],
18325
- design: {
18326
- sectionSurface: "base",
18327
- contentFrame: plainFrame,
18328
- itemSurface: "none",
18329
- testimonialCardTreatment: "default"
18330
- }
18331
- }),
18332
- defineBlockAppearancePreset({
18333
- kind: "block-design",
18334
- id: "testimonials-statement-cards",
18335
- target: "testimonials",
18336
- label: "Statement cards",
18337
- blockKinds: ["block.testimonials"],
18338
- design: {
18339
- sectionSurface: "accent-band",
18340
- contentFrame: plainFrame,
18341
- itemSurface: "raised",
18342
- testimonialCardTreatment: "statement"
18343
- }
18344
- }),
18345
- defineBlockAppearancePreset({
18346
- kind: "block-design",
18347
- id: "testimonials-brand-statement-cards",
18348
- target: "testimonials",
18349
- label: "Brand statement cards",
18350
- blockKinds: ["block.testimonials"],
18351
- design: {
18352
- sectionSurface: "brand-depth-band",
18353
- contentFrame: plainFrame,
18354
- itemSurface: "raised",
18355
- testimonialCardTreatment: "statement"
18356
- }
18357
- }),
18358
- defineBlockAppearancePreset({
18359
- kind: "block-design",
18360
- id: "testimonials-non-carded",
18361
- target: "testimonials",
18362
- label: "Non-carded",
18363
- blockKinds: ["block.testimonials"],
18364
- design: {
18365
- sectionSurface: "muted-band",
18366
- contentFrame: plainFrame,
18367
- itemSurface: "none",
18368
- testimonialCardTreatment: "non-carded"
18369
- }
18370
- }),
18371
- defineBlockAppearancePreset({
18372
- kind: "block-design",
18373
- id: "testimonials-evergreen-lead",
18374
- target: "testimonials",
18375
- label: "Evergreen lead",
18376
- blockKinds: ["block.testimonials"],
18377
- constraints: { layoutVariantKeys: ["featured-editorial"] },
18378
- design: {
18379
- sectionSurface: "base",
18380
- contentFrame: plainFrame,
18381
- itemSurface: "none"
18382
- }
18383
- }),
18384
- defineBlockAppearancePreset({
18385
- kind: "block-design",
18386
- id: "testimonials-room-and-response",
18387
- target: "testimonials",
18388
- label: "Room and response",
18389
- blockKinds: ["block.testimonials"],
18390
- constraints: { layoutVariantKeys: ["featured-editorial"] },
18391
- design: {
18392
- sectionSurface: "base",
18393
- contentFrame: plainFrame,
18394
- itemSurface: "none"
18395
- }
18396
- }),
18397
- defineBlockAppearancePreset({
18398
- kind: "block-design",
18399
- id: "testimonials-open-floor",
18400
- target: "testimonials",
18401
- label: "Open floor",
18402
- blockKinds: ["block.testimonials"],
18403
- constraints: { layoutVariantKeys: ["featured-editorial"] },
18404
- design: {
18405
- sectionSurface: "base",
18406
- contentFrame: plainFrame,
18407
- itemSurface: "none"
18408
- }
18409
- }),
18410
- defineBlockAppearancePreset({
18411
- kind: "block-design",
18412
- id: "faq-base-accordion",
18413
- target: "faq",
18414
- label: "Base accordion FAQ",
18415
- blockKinds: ["block.faq"],
18416
- design: {
18417
- sectionSurface: "base",
18418
- contentFrame: plainFrame,
18419
- itemSurface: "default"
18420
- }
18421
- }),
18422
- defineBlockAppearancePreset({
18423
- kind: "block-design",
18424
- id: "faq-contained-help",
18425
- target: "faq",
18426
- label: "Contained help panel",
18427
- blockKinds: ["block.faq"],
18428
- design: {
18429
- sectionSurface: "muted-band",
18430
- contentFrame: panelFrame("inset"),
18431
- itemSurface: "default"
18432
- }
18433
- }),
18434
- defineBlockAppearancePreset({
18435
- kind: "block-design",
18436
- id: "contact-form-panel",
18437
- target: "contact-form",
18438
- label: "Raised form panel",
18439
- blockKinds: ["block.form"],
18440
- design: {
18441
- sectionSurface: "muted-band",
18442
- contentFrame: panelFrame("raised"),
18443
- itemSurface: "none"
18444
- }
18445
- }),
18446
- defineBlockAppearancePreset({
18447
- kind: "block-design",
18448
- id: "cta-accent-band",
18449
- target: "cta",
18450
- label: "Accent CTA band",
18451
- blockKinds: ["block.cta-full"],
18452
- design: {
18453
- sectionSurface: "accent-band",
18454
- contentFrame: plainFrame,
18455
- itemSurface: "none",
18456
- eyebrowTreatment: "accent"
18457
- }
18458
- })
18459
- ]];
17849
+ }],
17850
+ design: {
17851
+ sectionSurface: "hero-image",
17852
+ contentFrame: plainFrame,
17853
+ itemSurface: "none",
17854
+ sectionHeight: "immersive",
17855
+ heroComposition: "center",
17856
+ heroTypographyScale: "poster",
17857
+ imageSurfaceTreatment: {
17858
+ kind: "brand-scrim",
17859
+ token: "primary",
17860
+ intensity: "strong"
17861
+ }
17862
+ }
17863
+ }), defineBlockAppearancePreset({
17864
+ id: "hero-brand-scrim",
17865
+ target: "hero",
17866
+ label: "Brand scrim image hero",
17867
+ blockKinds: ["block.hero"],
17868
+ constraints: { layoutFamilies: ["centered", "compact"] },
17869
+ optionGroups: brandScrimOptionGroups,
17870
+ layoutPatches: microBannerLayoutPatches,
17871
+ design: {
17872
+ sectionSurface: "hero-image",
17873
+ contentFrame: plainFrame,
17874
+ itemSurface: "none",
17875
+ sectionHeight: "immersive",
17876
+ heroComposition: "center",
17877
+ heroTypographyScale: "display",
17878
+ imageSurfaceTreatment: {
17879
+ kind: "brand-scrim",
17880
+ token: "primary"
17881
+ }
17882
+ }
17883
+ }), defineBlockAppearancePreset({
17884
+ id: "hero-brand-scrim-fixed-frame",
17885
+ target: "hero",
17886
+ label: "Fixed-frame brand scrim hero",
17887
+ blockKinds: ["block.hero"],
17888
+ constraints: { layoutFamilies: ["centered", "compact"] },
17889
+ optionGroups: brandScrimOptionGroups,
17890
+ layoutPatches: microBannerLayoutPatches,
17891
+ design: {
17892
+ sectionSurface: "hero-image",
17893
+ contentFrame: plainFrame,
17894
+ itemSurface: "none",
17895
+ sectionHeight: "immersive",
17896
+ heroComposition: "center",
17897
+ heroTypographyScale: "display",
17898
+ imageSurfaceTreatment: {
17899
+ kind: "brand-scrim",
17900
+ token: "primary"
17901
+ },
17902
+ imageSurfaceMotion: "fixed-frame",
17903
+ eyebrowTreatment: "accent-pill-bounce"
17904
+ }
17905
+ }), defineBlockAppearancePreset({
17906
+ id: "hero-brand-depth-expressive",
17907
+ target: "hero",
17908
+ label: "Expressive brand-depth hero",
17909
+ blockKinds: ["block.hero"],
17910
+ constraints: { layoutFamilies: ["centered", "compact"] },
17911
+ design: {
17912
+ sectionSurface: "brand-depth-band",
17913
+ contentFrame: plainFrame,
17914
+ itemSurface: "none",
17915
+ heroComposition: "center",
17916
+ heroTypographyScale: "editorial",
17917
+ eyebrowTreatment: "accent-pill-bounce"
17918
+ }
17919
+ }), defineBlockAppearancePreset({
17920
+ id: "hero-contained-intro",
17921
+ target: "hero",
17922
+ label: "Contained intro hero",
17923
+ blockKinds: ["block.hero"],
17924
+ design: {
17925
+ sectionSurface: "muted-band",
17926
+ contentFrame: panelFrame("inset"),
17927
+ itemSurface: "none",
17928
+ heroComposition: "center",
17929
+ heroTypographyScale: "editorial"
17930
+ }
17931
+ }), defineBlockAppearancePreset({
17932
+ id: "hero-split-editorial",
17933
+ target: "hero",
17934
+ label: "Editorial split hero",
17935
+ blockKinds: ["block.hero"],
17936
+ constraints: { layoutFamilies: ["split"] },
17937
+ design: {
17938
+ sectionSurface: "base",
17939
+ contentFrame: plainFrame,
17940
+ itemSurface: "none",
17941
+ heroTypographyScale: "editorial"
17942
+ }
17943
+ }), defineBlockAppearancePreset({
17944
+ id: "hero-split-brand",
17945
+ target: "hero",
17946
+ label: "Brand split hero",
17947
+ blockKinds: ["block.hero"],
17948
+ constraints: { layoutFamilies: ["split"] },
17949
+ design: {
17950
+ sectionSurface: "brand-depth-band",
17951
+ contentFrame: plainFrame,
17952
+ itemSurface: "none",
17953
+ heroTypographyScale: "display",
17954
+ eyebrowTreatment: "accent-pill-bounce"
17955
+ }
17956
+ }), defineBlockAppearancePreset({
17957
+ id: "hero-split-soft-panel",
17958
+ target: "hero",
17959
+ label: "Soft panel split hero",
17960
+ blockKinds: ["block.hero"],
17961
+ constraints: { layoutFamilies: ["split"] },
17962
+ design: {
17963
+ sectionSurface: "muted-band",
17964
+ contentFrame: panelFrame("raised"),
17965
+ itemSurface: "none",
17966
+ heroTypographyScale: "editorial"
17967
+ }
17968
+ }), defineBlockAppearancePreset({
17969
+ id: "hero-split-accent",
17970
+ target: "hero",
17971
+ label: "Accent split hero",
17972
+ blockKinds: ["block.hero"],
17973
+ constraints: { layoutFamilies: ["split"] },
17974
+ design: {
17975
+ sectionSurface: "accent-band",
17976
+ contentFrame: panelFrame("raised"),
17977
+ itemSurface: "none",
17978
+ heroTypographyScale: "display"
17979
+ }
17980
+ }), defineBlockAppearancePreset({
17981
+ id: "intro-editorial-statement",
17982
+ target: "intro",
17983
+ label: "Editorial intro statement",
17984
+ blockKinds: ["block.intro"],
17985
+ constraints: { layoutVariantKeys: ["centered-copy", "statement-copy"] },
17986
+ design: {
17987
+ sectionSurface: "base",
17988
+ contentFrame: plainFrame,
17989
+ itemSurface: "none",
17990
+ composition: {
17991
+ kind: "intro",
17992
+ treatment: "editorial-statement"
17993
+ }
17994
+ }
17995
+ }), defineBlockAppearancePreset({
17996
+ id: "intro-portrait-bio",
17997
+ target: "intro",
17998
+ label: "Portrait and bio",
17999
+ blockKinds: ["block.intro"],
18000
+ constraints: { layoutVariantKeys: ["media-copy"] },
18001
+ design: {
18002
+ sectionSurface: "base",
18003
+ contentFrame: plainFrame,
18004
+ itemSurface: "none",
18005
+ composition: {
18006
+ kind: "intro",
18007
+ treatment: "portrait-bio"
18008
+ }
18009
+ }
18010
+ }), defineBlockAppearancePreset({
18011
+ id: "offerings-preview-default-cards",
18012
+ target: "offerings",
18013
+ label: "Default offering cards",
18014
+ blockKinds: ["block.offerings-preview"],
18015
+ design: {
18016
+ sectionSurface: "base",
18017
+ contentFrame: plainFrame,
18018
+ itemSurface: "default"
18019
+ }
18020
+ }), defineBlockAppearancePreset({
18021
+ id: "offerings-preview-secondary-cards",
18022
+ target: "offerings",
18023
+ label: "Secondary offering cards",
18024
+ blockKinds: ["block.offerings-preview"],
18025
+ design: {
18026
+ sectionSurface: "muted-band",
18027
+ contentFrame: plainFrame,
18028
+ itemSurface: "inset"
18029
+ }
18030
+ }), defineBlockAppearancePreset({
18031
+ id: "offerings-preview-non-carded",
18032
+ target: "offerings",
18033
+ label: "Non-carded offerings",
18034
+ blockKinds: ["block.offerings-preview"],
18035
+ design: {
18036
+ sectionSurface: "muted-band",
18037
+ contentFrame: plainFrame,
18038
+ itemSurface: "editorial"
18039
+ }
18040
+ }), defineBlockAppearancePreset({
18041
+ id: "offerings-preview-paired-feature-cards",
18042
+ target: "offerings",
18043
+ label: "Paired feature cards",
18044
+ blockKinds: ["block.offerings-preview"],
18045
+ constraints: { layoutVariantKeys: ["cards"] },
18046
+ design: {
18047
+ sectionSurface: "base",
18048
+ contentFrame: plainFrame,
18049
+ itemSurface: "none"
18050
+ }
18051
+ }), defineBlockAppearancePreset({
18052
+ id: "offerings-preview-open-editorial-columns",
18053
+ target: "offerings",
18054
+ label: "Open editorial columns",
18055
+ blockKinds: ["block.offerings-preview"],
18056
+ constraints: { layoutVariantKeys: ["cards"] },
18057
+ design: {
18058
+ sectionSurface: "base",
18059
+ contentFrame: plainFrame,
18060
+ itemSurface: "none"
18061
+ }
18062
+ }), defineBlockAppearancePreset({
18063
+ id: "offerings-preview-joined-programme-panel",
18064
+ target: "offerings",
18065
+ label: "Joined programme panel",
18066
+ blockKinds: ["block.offerings-preview"],
18067
+ constraints: { layoutVariantKeys: ["cards"] },
18068
+ design: {
18069
+ sectionSurface: "base",
18070
+ contentFrame: plainFrame,
18071
+ itemSurface: "none"
18072
+ }
18073
+ }), defineBlockAppearancePreset({
18074
+ id: "feature-cards-raised-rule",
18075
+ target: "feature-cards",
18076
+ label: "Raised cards with rule",
18077
+ blockKinds: ["block.feature-cards"],
18078
+ design: {
18079
+ sectionSurface: "base",
18080
+ contentFrame: plainFrame,
18081
+ itemSurface: "raised"
18082
+ }
18083
+ }), defineBlockAppearancePreset({
18084
+ id: "feature-cards-bold-colors",
18085
+ target: "feature-cards",
18086
+ label: "Bold colour-blocked cards",
18087
+ blockKinds: ["block.feature-cards"],
18088
+ design: {
18089
+ sectionSurface: "base",
18090
+ contentFrame: plainFrame,
18091
+ itemSurface: "color-blocked"
18092
+ }
18093
+ }), defineBlockAppearancePreset({
18094
+ id: "feature-cards-editorial-columns",
18095
+ target: "feature-cards",
18096
+ label: "Editorial open columns",
18097
+ blockKinds: ["block.feature-cards"],
18098
+ design: {
18099
+ sectionSurface: "base",
18100
+ contentFrame: plainFrame,
18101
+ itemSurface: "editorial"
18102
+ }
18103
+ }), defineBlockAppearancePreset({
18104
+ id: "feature-cards-asymmetric-emphasis",
18105
+ target: "feature-cards",
18106
+ label: "Asymmetric emphasis pair",
18107
+ blockKinds: ["block.feature-cards"],
18108
+ constraints: { layoutFamilies: ["grid"] },
18109
+ design: {
18110
+ sectionSurface: "base",
18111
+ contentFrame: plainFrame,
18112
+ itemSurface: "none",
18113
+ composition: {
18114
+ kind: "feature-cards",
18115
+ treatment: "asymmetric-emphasis"
18116
+ }
18117
+ }
18118
+ }), defineBlockAppearancePreset({
18119
+ id: "feature-cards-framed-programme",
18120
+ target: "feature-cards",
18121
+ label: "Framed programme cards",
18122
+ blockKinds: ["block.feature-cards"],
18123
+ constraints: { layoutFamilies: ["grid"] },
18124
+ design: {
18125
+ sectionSurface: "brand-depth-band",
18126
+ contentFrame: plainFrame,
18127
+ itemSurface: "inset",
18128
+ composition: {
18129
+ kind: "feature-cards",
18130
+ treatment: "framed-programme"
18131
+ }
18132
+ }
18133
+ }), defineBlockAppearancePreset({
18134
+ id: "feature-cards-soft-panels",
18135
+ target: "feature-cards",
18136
+ label: "Soft tinted panels",
18137
+ blockKinds: ["block.feature-cards"],
18138
+ design: {
18139
+ sectionSurface: "base",
18140
+ contentFrame: plainFrame,
18141
+ itemSurface: "inset"
18142
+ }
18143
+ }), defineBlockAppearancePreset({
18144
+ id: "feature-cards-editorial-diptych",
18145
+ target: "feature-cards",
18146
+ label: "Editorial diptych",
18147
+ blockKinds: ["block.feature-cards"],
18148
+ constraints: { layoutVariantKeys: ["editorial-diptych"] },
18149
+ design: {
18150
+ sectionSurface: "base",
18151
+ contentFrame: plainFrame,
18152
+ itemSurface: "flat"
18153
+ }
18154
+ }), defineBlockAppearancePreset({
18155
+ id: "feature-cards-editorial-pathways",
18156
+ target: "feature-cards",
18157
+ label: "Editorial pathways",
18158
+ blockKinds: ["block.feature-cards"],
18159
+ constraints: { layoutVariantKeys: ["editorial-pathways"] },
18160
+ design: {
18161
+ sectionSurface: "base",
18162
+ contentFrame: plainFrame,
18163
+ itemSurface: "flat"
18164
+ }
18165
+ }), defineBlockAppearancePreset({
18166
+ id: "feature-cards-photo-tiles",
18167
+ target: "feature-cards",
18168
+ label: "Photo tiles",
18169
+ blockKinds: ["block.feature-cards"],
18170
+ design: {
18171
+ sectionSurface: "base",
18172
+ contentFrame: plainFrame,
18173
+ itemSurface: "raised"
18174
+ }
18175
+ }), defineBlockAppearancePreset({
18176
+ id: "events-lined-panel",
18177
+ target: "events",
18178
+ label: "Raised event panel",
18179
+ blockKinds: ["block.event-calendar", "block.event-listing"],
18180
+ design: {
18181
+ sectionSurface: "base",
18182
+ contentFrame: panelFrame("raised"),
18183
+ itemSurface: "none"
18184
+ }
18185
+ }), defineBlockAppearancePreset({
18186
+ id: "events-ruled-register",
18187
+ target: "events",
18188
+ label: "Ruled event register",
18189
+ blockKinds: ["block.event-calendar", "block.event-listing"],
18190
+ design: {
18191
+ sectionSurface: "brand-depth-band",
18192
+ contentFrame: plainFrame,
18193
+ itemSurface: "none",
18194
+ eventListTreatment: "ruled-register"
18195
+ }
18196
+ }), defineBlockAppearancePreset({
18197
+ id: "events-editorial-register",
18198
+ target: "events",
18199
+ label: "Editorial event register",
18200
+ blockKinds: ["block.event-calendar", "block.event-listing"],
18201
+ design: {
18202
+ sectionSurface: "base",
18203
+ contentFrame: plainFrame,
18204
+ itemSurface: "none",
18205
+ eventListTreatment: "editorial-register"
18206
+ }
18207
+ }), defineBlockAppearancePreset({
18208
+ id: "events-dense-index",
18209
+ target: "events",
18210
+ label: "Dense event index",
18211
+ blockKinds: ["block.event-calendar", "block.event-listing"],
18212
+ design: {
18213
+ sectionSurface: "accent-band",
18214
+ contentFrame: plainFrame,
18215
+ itemSurface: "none",
18216
+ eventListTreatment: "dense-index"
18217
+ }
18218
+ }), defineBlockAppearancePreset({
18219
+ id: "schedule-details-brand-depth",
18220
+ target: "events",
18221
+ label: "Brand-depth schedule details",
18222
+ blockKinds: ["block.event-details", "block.course-details"],
18223
+ design: {
18224
+ sectionSurface: "brand-depth-band",
18225
+ contentFrame: plainFrame,
18226
+ itemSurface: "none",
18227
+ tileTreatment: "brand-depth"
18228
+ }
18229
+ }), defineBlockAppearancePreset({
18230
+ id: "media-text-flush-feature",
18231
+ target: "media-text",
18232
+ label: "Flush media feature",
18233
+ blockKinds: ["block.media-text"],
18234
+ design: {
18235
+ sectionSurface: "muted-band",
18236
+ contentFrame: flushPanelFrame({ bleed: "start" }),
18237
+ itemSurface: "none"
18238
+ }
18239
+ }), defineBlockAppearancePreset({
18240
+ id: "testimonials-simple-cards",
18241
+ target: "testimonials",
18242
+ label: "Simple testimonial cards",
18243
+ blockKinds: ["block.testimonials"],
18244
+ design: {
18245
+ sectionSurface: "base",
18246
+ contentFrame: plainFrame,
18247
+ itemSurface: "default"
18248
+ }
18249
+ }), defineBlockAppearancePreset({
18250
+ id: "testimonials-raised-panel",
18251
+ target: "testimonials",
18252
+ label: "Raised testimonial panel",
18253
+ blockKinds: ["block.testimonials"],
18254
+ design: {
18255
+ sectionSurface: "muted-band",
18256
+ contentFrame: panelFrame("raised"),
18257
+ itemSurface: "raised"
18258
+ }
18259
+ }), defineBlockAppearancePreset({
18260
+ id: "testimonials-accent-panel",
18261
+ target: "testimonials",
18262
+ label: "Accent testimonial panel",
18263
+ blockKinds: ["block.testimonials"],
18264
+ design: {
18265
+ sectionSurface: "accent-band",
18266
+ contentFrame: panelFrame("raised"),
18267
+ itemSurface: "raised"
18268
+ }
18269
+ }), defineBlockAppearancePreset({
18270
+ id: "testimonials-default-cards",
18271
+ target: "testimonials",
18272
+ label: "Default cards",
18273
+ blockKinds: ["block.testimonials"],
18274
+ design: {
18275
+ sectionSurface: "base",
18276
+ contentFrame: plainFrame,
18277
+ itemSurface: "none",
18278
+ testimonialCardTreatment: "default"
18279
+ }
18280
+ }), defineBlockAppearancePreset({
18281
+ id: "testimonials-statement-cards",
18282
+ target: "testimonials",
18283
+ label: "Statement cards",
18284
+ blockKinds: ["block.testimonials"],
18285
+ design: {
18286
+ sectionSurface: "accent-band",
18287
+ contentFrame: plainFrame,
18288
+ itemSurface: "raised",
18289
+ testimonialCardTreatment: "statement"
18290
+ }
18291
+ }), defineBlockAppearancePreset({
18292
+ id: "testimonials-brand-statement-cards",
18293
+ target: "testimonials",
18294
+ label: "Brand statement cards",
18295
+ blockKinds: ["block.testimonials"],
18296
+ design: {
18297
+ sectionSurface: "brand-depth-band",
18298
+ contentFrame: plainFrame,
18299
+ itemSurface: "raised",
18300
+ testimonialCardTreatment: "statement"
18301
+ }
18302
+ }), defineBlockAppearancePreset({
18303
+ id: "testimonials-non-carded",
18304
+ target: "testimonials",
18305
+ label: "Non-carded",
18306
+ blockKinds: ["block.testimonials"],
18307
+ design: {
18308
+ sectionSurface: "muted-band",
18309
+ contentFrame: plainFrame,
18310
+ itemSurface: "none",
18311
+ testimonialCardTreatment: "non-carded"
18312
+ }
18313
+ }), defineBlockAppearancePreset({
18314
+ id: "testimonials-evergreen-lead",
18315
+ target: "testimonials",
18316
+ label: "Evergreen lead",
18317
+ blockKinds: ["block.testimonials"],
18318
+ constraints: { layoutVariantKeys: ["featured-editorial"] },
18319
+ design: {
18320
+ sectionSurface: "base",
18321
+ contentFrame: plainFrame,
18322
+ itemSurface: "none"
18323
+ }
18324
+ }), defineBlockAppearancePreset({
18325
+ id: "testimonials-room-and-response",
18326
+ target: "testimonials",
18327
+ label: "Room and response",
18328
+ blockKinds: ["block.testimonials"],
18329
+ constraints: { layoutVariantKeys: ["featured-editorial"] },
18330
+ design: {
18331
+ sectionSurface: "base",
18332
+ contentFrame: plainFrame,
18333
+ itemSurface: "none"
18334
+ }
18335
+ }), defineBlockAppearancePreset({
18336
+ id: "testimonials-open-floor",
18337
+ target: "testimonials",
18338
+ label: "Open floor",
18339
+ blockKinds: ["block.testimonials"],
18340
+ constraints: { layoutVariantKeys: ["featured-editorial"] },
18341
+ design: {
18342
+ sectionSurface: "base",
18343
+ contentFrame: plainFrame,
18344
+ itemSurface: "none"
18345
+ }
18346
+ }), defineBlockAppearancePreset({
18347
+ id: "faq-base-accordion",
18348
+ target: "faq",
18349
+ label: "Base accordion FAQ",
18350
+ blockKinds: ["block.faq"],
18351
+ design: {
18352
+ sectionSurface: "base",
18353
+ contentFrame: plainFrame,
18354
+ itemSurface: "default"
18355
+ }
18356
+ }), defineBlockAppearancePreset({
18357
+ id: "faq-contained-help",
18358
+ target: "faq",
18359
+ label: "Contained help panel",
18360
+ blockKinds: ["block.faq"],
18361
+ design: {
18362
+ sectionSurface: "muted-band",
18363
+ contentFrame: panelFrame("inset"),
18364
+ itemSurface: "default"
18365
+ }
18366
+ }), defineBlockAppearancePreset({
18367
+ id: "contact-form-panel",
18368
+ target: "contact-form",
18369
+ label: "Raised form panel",
18370
+ blockKinds: ["block.form"],
18371
+ design: {
18372
+ sectionSurface: "muted-band",
18373
+ contentFrame: panelFrame("raised"),
18374
+ itemSurface: "none"
18375
+ }
18376
+ }), defineBlockAppearancePreset({
18377
+ id: "cta-accent-band",
18378
+ target: "cta",
18379
+ label: "Accent CTA band",
18380
+ blockKinds: ["block.cta-full"],
18381
+ design: {
18382
+ sectionSurface: "accent-band",
18383
+ contentFrame: plainFrame,
18384
+ itemSurface: "none",
18385
+ eyebrowTreatment: "accent"
18386
+ }
18387
+ });
18460
18388
  //#endregion
18461
18389
  //#region ../theme-core/src/site-styles/headerCtaVariants.ts
18462
18390
  function hasButtonVariant(theme, variantId) {
@@ -18639,6 +18567,27 @@ function uniqueStrings(values) {
18639
18567
  return Array.from(new Set(values));
18640
18568
  }
18641
18569
  //#endregion
18570
+ //#region ../theme-core/src/site-styles/headerInteractionPalette.ts
18571
+ const clearSplitInteractionPalette = defineLookOptionGroup({
18572
+ id: "interaction-palette",
18573
+ label: "Hover colour",
18574
+ defaultOptionId: "accent",
18575
+ options: [
18576
+ {
18577
+ id: "accent",
18578
+ label: "Accent"
18579
+ },
18580
+ {
18581
+ id: "primary",
18582
+ label: "Primary"
18583
+ },
18584
+ {
18585
+ id: "secondary",
18586
+ label: "Secondary"
18587
+ }
18588
+ ]
18589
+ });
18590
+ //#endregion
18642
18591
  //#region ../theme-core/src/site-styles/headerLooks.ts
18643
18592
  function asHeaderLookId(value) {
18644
18593
  return value;
@@ -18772,7 +18721,7 @@ const overlayLogoAccommodations = [
18772
18721
  * optional nested styling fields that would otherwise leak from another Look.
18773
18722
  */
18774
18723
  function baseHeader(theme) {
18775
- const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
18724
+ const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, interactionPalette: _interactionPalette, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
18776
18725
  return {
18777
18726
  ...header,
18778
18727
  navContainer: {
@@ -18787,7 +18736,6 @@ const headerLayoutCatalog = defineExactCatalog()([
18787
18736
  id: asHeaderLayoutId("classic"),
18788
18737
  label: "Classic",
18789
18738
  description: "Logo and navigation in one practical horizontal row.",
18790
- structure: "inline-classic",
18791
18739
  variant: "classic",
18792
18740
  defaultPositioning: "sticky",
18793
18741
  shrinkOnScroll: false
@@ -18796,7 +18744,6 @@ const headerLayoutCatalog = defineExactCatalog()([
18796
18744
  id: asHeaderLayoutId("centered"),
18797
18745
  label: "Centered",
18798
18746
  description: "Logo centered above a balanced navigation row.",
18799
- structure: "centered-stack",
18800
18747
  variant: "centered",
18801
18748
  defaultPositioning: "static",
18802
18749
  shrinkOnScroll: false,
@@ -18812,7 +18759,6 @@ const headerLayoutCatalog = defineExactCatalog()([
18812
18759
  id: asHeaderLayoutId("floating"),
18813
18760
  label: "Floating",
18814
18761
  description: "Detached header chrome that sits over the opening section.",
18815
- structure: "floating-shell",
18816
18762
  variant: "floating",
18817
18763
  defaultPositioning: "sticky",
18818
18764
  shrinkOnScroll: true,
@@ -18974,10 +18920,13 @@ const headerStyleCatalog = defineExactCatalog()([
18974
18920
  label: "Clear Split",
18975
18921
  description: "Floating logo with transparent navigation and no shared shell.",
18976
18922
  supportedLayoutIds: supportedLayouts(["floating"]),
18977
- navInteraction: "color-change",
18923
+ navInteraction: "pill-background",
18978
18924
  surface: "floating",
18979
- defaultDepth: "none",
18925
+ defaultDepth: "line",
18980
18926
  navTypography: "plain",
18927
+ openingForegroundTarget: "all",
18928
+ scrollTreatment: "contrast-glass",
18929
+ interactionPalette: clearSplitInteractionPalette,
18981
18930
  moods: ["editorial", "calm"]
18982
18931
  },
18983
18932
  {
@@ -19000,6 +18949,7 @@ const headerStyleCatalog = defineExactCatalog()([
19000
18949
  surface: "floating",
19001
18950
  defaultDepth: "shadow",
19002
18951
  navTypography: "quiet-caps",
18952
+ openingForegroundTarget: "brand-only",
19003
18953
  moods: ["expressive"]
19004
18954
  },
19005
18955
  {
@@ -19011,6 +18961,7 @@ const headerStyleCatalog = defineExactCatalog()([
19011
18961
  surface: "floating",
19012
18962
  defaultDepth: "shadow",
19013
18963
  navTypography: "heading",
18964
+ openingForegroundTarget: "brand-only",
19014
18965
  moods: ["calm", "editorial"]
19015
18966
  }
19016
18967
  ]);
@@ -19512,13 +19463,6 @@ const headerLookCatalog = defineExactCatalog()([
19512
19463
  {
19513
19464
  id: asHeaderLookId("clean-base"),
19514
19465
  label: "Clean base",
19515
- visualTreatment: "solid-neutral",
19516
- layoutBehavior: "sticky",
19517
- configuration: {
19518
- structure: "inline-classic",
19519
- treatment: "solid-neutral",
19520
- behavior: "sticky"
19521
- },
19522
19466
  openingRequirement: "none",
19523
19467
  logoAccommodations: inlineClassicLogoAccommodations,
19524
19468
  compile: cleanBaseHeader
@@ -19526,13 +19470,6 @@ const headerLookCatalog = defineExactCatalog()([
19526
19470
  {
19527
19471
  id: asHeaderLookId("classic-centered-nav"),
19528
19472
  label: "Centered nav",
19529
- visualTreatment: "solid-neutral",
19530
- layoutBehavior: "sticky",
19531
- configuration: {
19532
- structure: "inline-classic",
19533
- treatment: "solid-neutral",
19534
- behavior: "sticky"
19535
- },
19536
19473
  openingRequirement: "none",
19537
19474
  maxRecommendedNavItems: 6,
19538
19475
  logoAccommodations: inlineClassicLogoAccommodations,
@@ -19541,13 +19478,6 @@ const headerLookCatalog = defineExactCatalog()([
19541
19478
  {
19542
19479
  id: asHeaderLookId("brand-solid"),
19543
19480
  label: "Brand solid",
19544
- visualTreatment: "solid-brand",
19545
- layoutBehavior: "sticky-shrink",
19546
- configuration: {
19547
- structure: "inline-classic",
19548
- treatment: "solid-brand",
19549
- behavior: "sticky-shrink"
19550
- },
19551
19481
  openingRequirement: "none",
19552
19482
  logoAccommodations: inlineClassicLogoAccommodations,
19553
19483
  compile: solidBrandHeader
@@ -19555,13 +19485,6 @@ const headerLookCatalog = defineExactCatalog()([
19555
19485
  {
19556
19486
  id: asHeaderLookId("serif-line"),
19557
19487
  label: "Serif line",
19558
- visualTreatment: "light-serif",
19559
- layoutBehavior: "sticky",
19560
- configuration: {
19561
- structure: "centered-stack",
19562
- treatment: "light-serif",
19563
- behavior: "sticky"
19564
- },
19565
19488
  openingRequirement: "none",
19566
19489
  maxRecommendedNavItems: 6,
19567
19490
  logoAccommodations: centeredLogoAccommodations,
@@ -19570,13 +19493,6 @@ const headerLookCatalog = defineExactCatalog()([
19570
19493
  {
19571
19494
  id: asHeaderLookId("centered-calm"),
19572
19495
  label: "Centered calm",
19573
- visualTreatment: "light-serif",
19574
- layoutBehavior: "normal-flow",
19575
- configuration: {
19576
- structure: "centered-stack",
19577
- treatment: "light-serif",
19578
- behavior: "normal-flow"
19579
- },
19580
19496
  openingRequirement: "none",
19581
19497
  maxRecommendedNavItems: 5,
19582
19498
  logoAccommodations: centeredLogoAccommodations,
@@ -19585,13 +19501,6 @@ const headerLookCatalog = defineExactCatalog()([
19585
19501
  {
19586
19502
  id: asHeaderLookId("practical-utility"),
19587
19503
  label: "Practical utility",
19588
- visualTreatment: "solid-neutral",
19589
- layoutBehavior: "sticky-shrink",
19590
- configuration: {
19591
- structure: "inline-classic",
19592
- treatment: "solid-neutral",
19593
- behavior: "sticky-shrink"
19594
- },
19595
19504
  openingRequirement: "none",
19596
19505
  requiresProminentCta: true,
19597
19506
  logoAccommodations: inlineClassicLogoAccommodations,
@@ -19600,13 +19509,6 @@ const headerLookCatalog = defineExactCatalog()([
19600
19509
  {
19601
19510
  id: asHeaderLookId("minimal-transparent"),
19602
19511
  label: "Minimal transparent",
19603
- visualTreatment: "minimal-transparent",
19604
- layoutBehavior: "normal-flow",
19605
- configuration: {
19606
- structure: "inline-classic",
19607
- treatment: "minimal-transparent",
19608
- behavior: "normal-flow"
19609
- },
19610
19512
  openingRequirement: "reserved-space-ok",
19611
19513
  logoAccommodations: inlineClassicLogoAccommodations,
19612
19514
  compile: minimalTransparentHeader
@@ -19614,13 +19516,6 @@ const headerLookCatalog = defineExactCatalog()([
19614
19516
  {
19615
19517
  id: asHeaderLookId("transparent-overlay"),
19616
19518
  label: "Transparent overlay",
19617
- visualTreatment: "transparent-overlay",
19618
- layoutBehavior: "fixed-overlay",
19619
- configuration: {
19620
- structure: "inline-classic",
19621
- treatment: "transparent-overlay",
19622
- behavior: "fixed-overlay"
19623
- },
19624
19519
  openingRequirement: "requires-image-hero-with-contrast-overlay",
19625
19520
  maxRecommendedNavItems: 5,
19626
19521
  logoAccommodations: overlayLogoAccommodations,
@@ -19629,24 +19524,13 @@ const headerLookCatalog = defineExactCatalog()([
19629
19524
  {
19630
19525
  id: asHeaderLookId("floating-glass"),
19631
19526
  label: "Floating glass",
19632
- visualTreatment: "floating-glass",
19633
- layoutBehavior: "fixed-floating",
19634
- configuration: {
19635
- structure: "floating-shell",
19636
- treatment: "floating-glass",
19637
- behavior: "fixed-floating"
19638
- },
19639
19527
  openingRequirement: "requires-image-hero-with-contrast-overlay",
19640
19528
  maxRecommendedNavItems: 5,
19641
19529
  logoAccommodations: overlayLogoAccommodations,
19642
19530
  compile: floatingGlassHeader
19643
19531
  }
19644
19532
  ]);
19645
- new Set(headerLookCatalog.map((look) => headerConfigurationKey(look.configuration)));
19646
19533
  new Map(headerLookCatalog.map((look) => [look.id, look]));
19647
- function headerConfigurationKey(configuration) {
19648
- return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
19649
- }
19650
19534
  //#endregion
19651
19535
  //#region ../theme-core/src/site-styles/sectionTransitions.ts
19652
19536
  function boundaryRuntimeMetrics(family, size, heightExpression) {
@@ -23255,28 +23139,6 @@ z$1.object({
23255
23139
  spacing: z$1.enum(themeTokenRecipeOptions.spacing),
23256
23140
  motion: z$1.enum(themeTokenRecipeOptions.motion)
23257
23141
  });
23258
- const BREAKPOINT_LG = 1024;
23259
- const BREAKPOINT_XL = 1280;
23260
- const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
23261
- function mqUp(px) {
23262
- return `(min-width: ${px}px)`;
23263
- }
23264
- function mqDown(px) {
23265
- return `(max-width: ${px}px)`;
23266
- }
23267
- function mqBetween(minPx, maxPx) {
23268
- return `${mqUp(minPx)} and ${mqDown(maxPx)}`;
23269
- }
23270
- mqUp(640);
23271
- mqUp(768);
23272
- mqUp(BREAKPOINT_LG);
23273
- mqUp(BREAKPOINT_XL);
23274
- mqDown(639);
23275
- mqDown(767);
23276
- mqDown(BREAKPOINT_LG_DOWN);
23277
- mqBetween(640, BREAKPOINT_LG_DOWN);
23278
- mqDown(640);
23279
- mqDown(768);
23280
23142
  //#endregion
23281
23143
  //#region ../theme-core/src/siteChromeOverlayClearance.ts
23282
23144
  const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
@@ -27258,15 +27120,6 @@ const heroLayoutControlsFragment = defineFragment({
27258
27120
  */
27259
27121
  const BLOCK_BUTTON_ROLES = PUBLIC_BUTTON_ROLES;
27260
27122
  const blockButtonRoleSchema = z$1.enum(BLOCK_BUTTON_ROLES);
27261
- /**
27262
- * Temporary rollout boundary for persisted content written before issue #1220.
27263
- * Authoring remains strict through `blockButtonRoleSchema`; this parser exists
27264
- * only until the post-deploy role rewrite has been audited in production.
27265
- */
27266
- function canonicalizePersistedBlockButtonRole(value) {
27267
- return value === "link" || value === "tertiary" ? "ghost" : value;
27268
- }
27269
- const persistedBlockButtonRoleSchema = z$1.preprocess((value) => typeof value === "string" ? canonicalizePersistedBlockButtonRole(value) : value, blockButtonRoleSchema);
27270
27123
  const BLOCK_BUTTON_ROLE_LABELS = {
27271
27124
  primary: "Primary",
27272
27125
  secondary: "Secondary",
@@ -34518,6 +34371,12 @@ const mediaBaseSchema = z.object({
34518
34371
  poster: mediaPosterSchema.optional(),
34519
34372
  transform: transformSchema.optional()
34520
34373
  });
34374
+ /**
34375
+ * Canonical identifier carried by media values that are safe to persist.
34376
+ * Parsing trims boundary input so downstream writers cannot retain whitespace-only
34377
+ * identifiers or independently disagree about normalization.
34378
+ */
34379
+ const mediaIdentifierSchema = z.string().trim().min(1).brand();
34521
34380
  const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
34522
34381
  const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
34523
34382
  const audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
@@ -34532,6 +34391,15 @@ const mediaSchema = z.discriminatedUnion("type", [
34532
34391
  spreadsheetMediaSchema,
34533
34392
  archiveMediaSchema
34534
34393
  ]);
34394
+ const persistableMediaBaseSchema = mediaBaseSchema.extend({ identifier: mediaIdentifierSchema });
34395
+ z.discriminatedUnion("type", [
34396
+ persistableMediaBaseSchema.extend({ type: z.literal("image") }),
34397
+ persistableMediaBaseSchema.extend({ type: z.literal("video") }),
34398
+ persistableMediaBaseSchema.extend({ type: z.literal("audio") }),
34399
+ persistableMediaBaseSchema.extend({ type: z.literal("document") }),
34400
+ persistableMediaBaseSchema.extend({ type: z.literal("spreadsheet") }),
34401
+ persistableMediaBaseSchema.extend({ type: z.literal("archive") })
34402
+ ]);
34535
34403
  //#endregion
34536
34404
  //#region ../blocks/src/system/manifest/richTextSchema.ts
34537
34405
  /**
@@ -35655,7 +35523,7 @@ function isEventCalendarListLayout(value) {
35655
35523
  //#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
35656
35524
  const previewStageSchema = z$1.enum(["preview", "published"]);
35657
35525
  const registrationButtonVariantSchema = blockButtonRoleSchema;
35658
- const eventButtonVariantSchema = persistedBlockButtonRoleSchema;
35526
+ const eventButtonVariantSchema = blockButtonRoleSchema;
35659
35527
  const eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
35660
35528
  const eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
35661
35529
  const eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);