@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
@@ -2513,7 +2513,7 @@ var init_contracts$1 = __esmMin((() => {
2513
2513
  //#endregion
2514
2514
  //#region ../blocks/src/subroutes/index.ts
2515
2515
  var init_subroutes = __esmMin((() => {})), BlockKind, blockSchema, pagePath;
2516
- var init_schema$3 = __esmMin((() => {
2516
+ var init_schema$4 = __esmMin((() => {
2517
2517
  BlockKind = z$2.string();
2518
2518
  blockSchema = z$2.object({
2519
2519
  id: z$2.string().nullable(),
@@ -4077,6 +4077,12 @@ function requirePaletteColorsFromEntries(entries) {
4077
4077
  if (result.ok) return result.colors;
4078
4078
  throw new Error(`Invalid complete palette: ${result.error.kind}`);
4079
4079
  }
4080
+ function paletteColorEntries(colors) {
4081
+ return THEME_PALETTE_COLOR_ORDER.map((name) => ({
4082
+ name,
4083
+ hex: colors[name]
4084
+ }));
4085
+ }
4080
4086
  function paletteColorFingerprint(colors) {
4081
4087
  return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
4082
4088
  }
@@ -4084,7 +4090,7 @@ function canonicalPaletteHashInput(colors, mode) {
4084
4090
  return `${mode}|${paletteColorFingerprint(colors)}`;
4085
4091
  }
4086
4092
  /**
4087
- * The shared TypeScript/SQL protocol. Do not reorder roles: the order comes
4093
+ * Stable curated-catalogue identity. Do not reorder roles: the order comes
4088
4094
  * from PALETTE_TOKEN_NAMES through canonicalPaletteHashInput.
4089
4095
  */
4090
4096
  function paletteValueKey(colors, mode) {
@@ -4109,11 +4115,26 @@ function parsePaletteValueKey(value) {
4109
4115
  if (!colors.ok || paletteValueKey(colors.colors, mode.data) !== value) return null;
4110
4116
  return value;
4111
4117
  }
4112
- var HEX_COLOR_REGEX, NORMALIZABLE_HEX_REGEX, hexColorSchema, paletteModeSchema, PALETTE_VALUE_KEY_PREFIX, paletteColorsSchema, paletteValueKeySchema;
4118
+ var HEX_COLOR_REGEX, NORMALIZABLE_HEX_REGEX, THEME_PALETTE_COLOR_ORDER, hexColorSchema, paletteModeSchema, PALETTE_VALUE_KEY_PREFIX, paletteColorsSchema, paletteValueKeySchema;
4113
4119
  var init_colors = __esmMin((() => {
4114
4120
  init_themeColorTokens();
4115
4121
  HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
4116
4122
  NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
4123
+ THEME_PALETTE_COLOR_ORDER = [
4124
+ "primary",
4125
+ "secondary",
4126
+ "accent",
4127
+ "success",
4128
+ "warning",
4129
+ "destructive",
4130
+ "background",
4131
+ "surface",
4132
+ "surfaceAlt",
4133
+ "muted",
4134
+ "text",
4135
+ "primaryForeground",
4136
+ "border"
4137
+ ];
4117
4138
  hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
4118
4139
  paletteModeSchema = z$1.enum(["light", "dark"]);
4119
4140
  PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
@@ -4144,11 +4165,15 @@ var init_colors = __esmMin((() => {
4144
4165
  });
4145
4166
  }));
4146
4167
  //#endregion
4147
- //#region ../theme-core/src/palette/editorState.ts
4148
- var init_editorState = __esmMin((() => {}));
4168
+ //#region ../theme-core/src/palette/concretePalette.ts
4169
+ var init_concretePalette = __esmMin((() => {
4170
+ init_colors();
4171
+ }));
4149
4172
  //#endregion
4150
- //#region ../theme-core/src/palette/libraryModel.ts
4151
- var init_libraryModel = __esmMin((() => {}));
4173
+ //#region ../theme-core/src/palette/utils/fromVibrant.ts
4174
+ var init_fromVibrant = __esmMin((() => {
4175
+ init_utils$4();
4176
+ }));
4152
4177
  //#endregion
4153
4178
  //#region ../theme-core/src/site-styles/styleTags.ts
4154
4179
  var STYLE_AXIS_VALUES, styleTagsSchema;
@@ -5438,22 +5463,12 @@ var init_warm_dark = __esmMin((() => {
5438
5463
  }));
5439
5464
  //#endregion
5440
5465
  //#region ../theme-core/src/palette/curated/index.ts
5441
- /**
5442
- * Curated palette library.
5443
- *
5444
- * Authoring keys are readable source aliases. Value keys are derived from the
5445
- * complete mode and semantic colours and are the only curated identity used at
5446
- * persistence and runtime boundaries.
5447
- */
5448
5466
  function admitCuratedPaletteDefinition(definition) {
5449
5467
  return {
5450
5468
  ...definition,
5451
5469
  valueKey: definition.valueKey
5452
5470
  };
5453
5471
  }
5454
- function findCuratedPalette(valueKey) {
5455
- return curatedPalettesByValueKey.get(valueKey);
5456
- }
5457
5472
  function findCuratedPaletteByAuthoringKey(authoringKey) {
5458
5473
  return curatedPalettesByAuthoringKey.get(authoringKey);
5459
5474
  }
@@ -5462,9 +5477,8 @@ function requireCuratedPaletteValueKey(authoringKey) {
5462
5477
  if (!palette) throw new Error(`Unknown curated palette authoring key "${authoringKey}"`);
5463
5478
  return palette.valueKey;
5464
5479
  }
5465
- var curatedPalettes, curatedPalettesByValueKey, curatedPalettesByAuthoringKey, knownCuratedPaletteValueKeySchema;
5480
+ var curatedPalettes, curatedPalettesByAuthoringKey;
5466
5481
  var init_curated = __esmMin((() => {
5467
- init_colors();
5468
5482
  init_brand_led();
5469
5483
  init_high_contrast();
5470
5484
  init_soft_natural();
@@ -5491,115 +5505,8 @@ var init_curated = __esmMin((() => {
5491
5505
  admitCuratedPaletteDefinition(warmDarkEmber),
5492
5506
  admitCuratedPaletteDefinition(warmDarkKirtanGold)
5493
5507
  ];
5494
- curatedPalettesByValueKey = new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
5508
+ new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
5495
5509
  curatedPalettesByAuthoringKey = new Map(curatedPalettes.map((palette) => [palette.authoringKey, palette]));
5496
- knownCuratedPaletteValueKeySchema = z$1.string().transform((value, ctx) => {
5497
- const valueKey = parsePaletteValueKey(value);
5498
- if (!valueKey) {
5499
- ctx.addIssue({
5500
- code: "custom",
5501
- message: "Invalid canonical palette value key"
5502
- });
5503
- return z$1.NEVER;
5504
- }
5505
- const palette = findCuratedPalette(valueKey);
5506
- if (!palette) {
5507
- ctx.addIssue({
5508
- code: "custom",
5509
- message: "Unknown curated palette value key"
5510
- });
5511
- return z$1.NEVER;
5512
- }
5513
- return palette.valueKey;
5514
- });
5515
- }));
5516
- //#endregion
5517
- //#region ../theme-core/src/palette/resolveSelection.ts
5518
- var init_resolveSelection = __esmMin((() => {
5519
- init_curated();
5520
- })), sitePaletteIdSchema, sitePaletteVersionSchema, paletteSelectionSchema, onboardingPaletteOriginSchema, curatedForkPaletteOriginSchema, manualPaletteOriginSchema, legacyCustomizedPaletteOriginSchema, sitePaletteOriginSchema, editorSitePaletteOriginSchema;
5521
- var init_selection$1 = __esmMin((() => {
5522
- init_colors();
5523
- init_curated();
5524
- sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
5525
- sitePaletteVersionSchema = z$1.number().int().nonnegative().transform((value) => value);
5526
- paletteSelectionSchema = z$1.discriminatedUnion("kind", [z$1.object({
5527
- kind: z$1.literal("curated"),
5528
- valueKey: knownCuratedPaletteValueKeySchema
5529
- }), z$1.object({
5530
- kind: z$1.literal("site"),
5531
- paletteId: sitePaletteIdSchema
5532
- })]);
5533
- onboardingPaletteOriginSchema = z$1.object({
5534
- kind: z$1.literal("onboarding"),
5535
- sourceKey: z$1.string().min(1).nullable()
5536
- });
5537
- curatedForkPaletteOriginSchema = z$1.object({
5538
- kind: z$1.literal("curated-fork"),
5539
- sourceValueKey: paletteValueKeySchema
5540
- });
5541
- manualPaletteOriginSchema = z$1.object({ kind: z$1.literal("manual") });
5542
- legacyCustomizedPaletteOriginSchema = z$1.object({
5543
- kind: z$1.literal("legacy-customized"),
5544
- sourceKey: z$1.string().min(1).nullable()
5545
- });
5546
- sitePaletteOriginSchema = z$1.discriminatedUnion("kind", [
5547
- onboardingPaletteOriginSchema,
5548
- curatedForkPaletteOriginSchema,
5549
- manualPaletteOriginSchema,
5550
- legacyCustomizedPaletteOriginSchema
5551
- ]);
5552
- editorSitePaletteOriginSchema = z$1.discriminatedUnion("kind", [z$1.object({
5553
- kind: z$1.literal("curated-fork"),
5554
- sourceValueKey: knownCuratedPaletteValueKeySchema
5555
- }), manualPaletteOriginSchema]);
5556
- z$1.object({
5557
- id: sitePaletteIdSchema,
5558
- colors: paletteColorsSchema,
5559
- mode: paletteModeSchema,
5560
- origin: sitePaletteOriginSchema,
5561
- version: sitePaletteVersionSchema
5562
- });
5563
- z$1.discriminatedUnion("kind", [
5564
- z$1.object({ kind: z$1.literal("preserve") }),
5565
- z$1.object({
5566
- kind: z$1.literal("select"),
5567
- selection: paletteSelectionSchema
5568
- }),
5569
- z$1.object({
5570
- kind: z$1.literal("create-site"),
5571
- colors: paletteColorsSchema,
5572
- mode: paletteModeSchema,
5573
- origin: editorSitePaletteOriginSchema
5574
- }),
5575
- z$1.object({
5576
- kind: z$1.literal("update-site"),
5577
- paletteId: sitePaletteIdSchema,
5578
- expectedVersion: sitePaletteVersionSchema,
5579
- colors: paletteColorsSchema,
5580
- mode: paletteModeSchema
5581
- })
5582
- ]);
5583
- }));
5584
- //#endregion
5585
- //#region ../theme-core/src/palette/persistenceReadSource.ts
5586
- var init_persistenceReadSource = __esmMin((() => {
5587
- init_curated();
5588
- init_colors();
5589
- init_resolveSelection();
5590
- init_selection$1();
5591
- }));
5592
- //#endregion
5593
- //#region ../theme-core/src/palette/sitePalettePersistence.ts
5594
- var init_sitePalettePersistence = __esmMin((() => {
5595
- init_curated();
5596
- init_colors();
5597
- init_selection$1();
5598
- }));
5599
- //#endregion
5600
- //#region ../theme-core/src/palette/utils/fromVibrant.ts
5601
- var init_fromVibrant = __esmMin((() => {
5602
- init_utils$4();
5603
5510
  }));
5604
5511
  //#endregion
5605
5512
  //#region ../theme-core/src/palette/index.ts
@@ -5615,12 +5522,7 @@ var init_palette = __esmMin((() => {
5615
5522
  init_paletteAccess();
5616
5523
  init_extractPalette();
5617
5524
  init_colors();
5618
- init_editorState();
5619
- init_libraryModel();
5620
- init_persistenceReadSource();
5621
- init_resolveSelection();
5622
- init_selection$1();
5623
- init_sitePalettePersistence();
5525
+ init_concretePalette();
5624
5526
  init_fromVibrant();
5625
5527
  init_suggestRecipes();
5626
5528
  init_allRecipes();
@@ -5696,6 +5598,38 @@ var init_media$3 = __esmMin((() => {
5696
5598
  });
5697
5599
  }));
5698
5600
  //#endregion
5601
+ //#region ../theme-core/src/palette/schema.ts
5602
+ var colourHexString, paletteColorSchema, paletteMetaSchema, paletteSchema;
5603
+ var init_schema$3 = __esmMin((() => {
5604
+ init_colors();
5605
+ colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
5606
+ paletteColorSchema = z$1.object({
5607
+ name: z$1.string().min(1),
5608
+ hex: colourHexString
5609
+ });
5610
+ paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
5611
+ paletteSchema = z$1.object({
5612
+ colors: z$1.array(paletteColorSchema),
5613
+ meta: paletteMetaSchema
5614
+ }).transform((palette, ctx) => {
5615
+ const colors = paletteColorsFromEntries(palette.colors);
5616
+ if (!colors.ok) {
5617
+ ctx.addIssue({
5618
+ code: "custom",
5619
+ message: `Invalid complete palette: ${colors.error.kind}`
5620
+ });
5621
+ return z$1.NEVER;
5622
+ }
5623
+ return {
5624
+ colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
5625
+ name: String(name),
5626
+ hex: String(hex)
5627
+ })),
5628
+ meta: palette.meta
5629
+ };
5630
+ });
5631
+ }));
5632
+ //#endregion
5699
5633
  //#region ../theme-core/src/buttons/types.ts
5700
5634
  function parseOpaqueButtonColourToken(value) {
5701
5635
  const token = parseThemeColorToken(value);
@@ -5715,11 +5649,9 @@ var init_types$13 = __esmMin((() => {
5715
5649
  "secondary",
5716
5650
  "outline",
5717
5651
  "ghost",
5718
- "link",
5719
- "tertiary",
5720
5652
  "accent"
5721
5653
  ];
5722
- buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only");
5654
+ 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" });
5723
5655
  opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => parseOpaqueButtonColourToken(value) !== null, "Button colour tokens must be opaque").transform((value) => {
5724
5656
  const token = parseOpaqueButtonColourToken(value);
5725
5657
  if (token === null) throw new Error("Invariant: opaque button token passed its schema");
@@ -6115,8 +6047,66 @@ var init_classNames = __esmMin((() => {
6115
6047
  init_types$13();
6116
6048
  }));
6117
6049
  //#endregion
6050
+ //#region ../theme-core/src/buttons/effects/presets/background.ts
6051
+ function shadeBackgroundEffect(config) {
6052
+ return {
6053
+ id: config.id,
6054
+ name: config.name,
6055
+ description: config.description,
6056
+ category: "background",
6057
+ pseudoElement: "none",
6058
+ applicableTo: ["button"],
6059
+ customizableOption: {
6060
+ name: "amount",
6061
+ type: "select",
6062
+ label: config.label,
6063
+ default: 100,
6064
+ options: [
6065
+ 0,
6066
+ 100,
6067
+ 200,
6068
+ 300,
6069
+ 400,
6070
+ 500,
6071
+ 600,
6072
+ 700,
6073
+ 800,
6074
+ 900
6075
+ ]
6076
+ },
6077
+ isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
6078
+ generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
6079
+ if (buttonConfig.background.type !== "solid") return "";
6080
+ const amount = (options.amount || 100) * config.shadeDirection;
6081
+ const baseToken = buttonConfig.background.colorToken ?? "primary-500";
6082
+ return `
6083
+ :where([data-theme-scope="${themeId}"]) .${variantId}:hover {
6084
+ background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
6085
+ }
6086
+ `;
6087
+ }
6088
+ };
6089
+ }
6090
+ var init_background$3 = __esmMin((() => {
6091
+ shadeBackgroundEffect({
6092
+ id: "darken-background",
6093
+ name: "Darken on Hover",
6094
+ description: "Darkens the background color on hover",
6095
+ label: "Darken Amount (shade step)",
6096
+ shadeDirection: 1
6097
+ });
6098
+ shadeBackgroundEffect({
6099
+ id: "lighten-background",
6100
+ name: "Lighten on Hover",
6101
+ description: "Lightens the background color on hover",
6102
+ label: "Lighten Amount (shade step)",
6103
+ shadeDirection: -1
6104
+ });
6105
+ }));
6106
+ //#endregion
6118
6107
  //#region ../theme-core/src/buttons/effects/registry.ts
6119
6108
  var init_registry$8 = __esmMin((() => {
6109
+ init_background$3();
6120
6110
  init_effectClassification();
6121
6111
  }));
6122
6112
  //#endregion
@@ -8947,6 +8937,83 @@ var init_tokenOrColor = __esmMin((() => {
8947
8937
  ]);
8948
8938
  }));
8949
8939
  //#endregion
8940
+ //#region ../theme-core/src/responsive/breakpoints.ts
8941
+ function mqUp(px) {
8942
+ return `(min-width: ${px}px)`;
8943
+ }
8944
+ function mqDown(px) {
8945
+ return `(max-width: ${px}px)`;
8946
+ }
8947
+ function mqBetween(minPx, maxPx) {
8948
+ return `${mqUp(minPx)} and ${mqDown(maxPx)}`;
8949
+ }
8950
+ var BREAKPOINT_LG, BREAKPOINT_XL, BREAKPOINT_LG_DOWN;
8951
+ var init_breakpoints = __esmMin((() => {
8952
+ BREAKPOINT_LG = 1024;
8953
+ BREAKPOINT_XL = 1280;
8954
+ BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
8955
+ mqUp(640);
8956
+ mqUp(768);
8957
+ mqUp(BREAKPOINT_LG);
8958
+ mqUp(BREAKPOINT_XL);
8959
+ mqDown(639);
8960
+ mqDown(767);
8961
+ mqDown(BREAKPOINT_LG_DOWN);
8962
+ mqBetween(640, BREAKPOINT_LG_DOWN);
8963
+ mqDown(640);
8964
+ mqDown(768);
8965
+ }));
8966
+ //#endregion
8967
+ //#region ../theme-core/src/header/paintTargets.ts
8968
+ var init_paintTargets = __esmMin((() => {
8969
+ init_breakpoints();
8970
+ }));
8971
+ //#endregion
8972
+ //#region ../theme-core/src/header/scrollTreatment.ts
8973
+ var headerScrollTreatmentSchema;
8974
+ var init_scrollTreatment = __esmMin((() => {
8975
+ init_paintTargets();
8976
+ headerScrollTreatmentSchema = z$1.discriminatedUnion("kind", [z$1.object({
8977
+ kind: z$1.literal("contrast-glass"),
8978
+ backgroundTone: z$1.enum(["light", "dark"])
8979
+ })]).optional();
8980
+ }));
8981
+ //#endregion
8982
+ //#region ../theme-core/src/header/containerSchema.ts
8983
+ var headerContainerSchema;
8984
+ var init_containerSchema = __esmMin((() => {
8985
+ headerContainerSchema = z$1.object({
8986
+ rounded: z$1.enum([
8987
+ "none",
8988
+ "sm",
8989
+ "md",
8990
+ "lg",
8991
+ "xl",
8992
+ "2xl"
8993
+ ]).default("xl"),
8994
+ border: z$1.boolean().default(true),
8995
+ shadow: z$1.boolean().default(true),
8996
+ padding: z$1.enum([
8997
+ "sm",
8998
+ "md",
8999
+ "lg"
9000
+ ]).default("md"),
9001
+ tint: z$1.string().nullable().optional(),
9002
+ opacity: z$1.number().min(0).max(1).default(.12)
9003
+ }).optional();
9004
+ }));
9005
+ //#endregion
9006
+ //#region ../theme-core/src/header/interactionPalette.ts
9007
+ var headerInteractionPaletteValues, headerInteractionPaletteSchema;
9008
+ var init_interactionPalette = __esmMin((() => {
9009
+ headerInteractionPaletteValues = [
9010
+ "primary",
9011
+ "secondary",
9012
+ "accent"
9013
+ ];
9014
+ headerInteractionPaletteSchema = z$1.enum(headerInteractionPaletteValues);
9015
+ }));
9016
+ //#endregion
8950
9017
  //#region ../theme-core/src/schema.ts
8951
9018
  /**
8952
9019
  * Normalises the legacy `navTypography` font-role alias into the canonical
@@ -8962,9 +9029,10 @@ function normaliseHeaderNavFontRole(header) {
8962
9029
  navFontRole: navTypography
8963
9030
  } : rest;
8964
9031
  }
8965
- var axesSchema, colourHexString, paletteColorSchema, paletteMetaSchema, paletteSchema, typographyStyleSchema, bodyTypographyStyleSchema, headingSizeSchema, headingTypographyOverridesSchema, headingTypographyStyleSchema, proseLinkUnderlineStyleSchema, proseLinkUnderlineThicknessSchema, proseLinkUnderlineOffsetSchema, proseLinkStyleSchema, semanticSpacingSchema, boxRoundedSchema, boxBackgroundOverlaySchema, boxBackgroundSchema, noHeadingDecorationSchema, visibleHeadingDecorationSchema, headingDecorationSchema, headingDecorationOverrideSchema, accordionIconTreatmentSchema, sectionStylesOverrideSchema, containerStylesOverrideSchema, cardBorderOverrideSchema, cardStylesOverrideSchema, blockStyleOverridesSchema, blockThemeOverrideSchema, typographyScaleSchema, eyebrowTypographyStyleSchema, typographySchema, spaceSchema, corners, shadow, border, motion, inputStyle, headerVariant, headerPositioning, headerNavStyle, navFontWeight, headerMaxWidth, headerBarFrame, headerContainerSchema, headerBorderSchema, logoStyleSchema, headerLogoTextSchema, navEffectsSchema, dropdownStyleSchema, headerCtaGapSchema, headerCtaTreatmentSchema, navContainerSchema, headerBackgroundSchema, headerSchema, footerVariant, footerMaxWidth, footerMode, footerNavLayoutMode, footerNavLayoutAlign, footerSpacing, footerLogoPlacement, footerLogoSize, footerLogoMaxHeight, footerBottomTextLinkStyleSchema, footerBottomBarSchema, footerNavLayoutSchema, footerLogoSchema, footerSchema, containerPaddingPresetSchema, layoutSchema, heroTypographySizeSchema, heroTypographyLineHeightSchema, heroResponsiveTypographySchema, heroTypographySchema, heroSchema, bodyTextIntroTypographySizeSchema, bodyTextSchema, gradientsSchema, testimonialQuoteTreatmentSchema, themeSchema;
9032
+ var axesSchema, typographyStyleSchema, bodyTypographyStyleSchema, headingSizeSchema, headingTypographyOverridesSchema, headingTypographyStyleSchema, proseLinkUnderlineStyleSchema, proseLinkUnderlineThicknessSchema, proseLinkUnderlineOffsetSchema, proseLinkStyleSchema, semanticSpacingSchema, boxRoundedSchema, boxBackgroundOverlaySchema, boxBackgroundSchema, noHeadingDecorationSchema, visibleHeadingDecorationSchema, headingDecorationSchema, headingDecorationOverrideSchema, accordionIconTreatmentSchema, sectionStylesOverrideSchema, containerStylesOverrideSchema, cardBorderOverrideSchema, cardStylesOverrideSchema, blockStyleOverridesSchema, blockThemeOverrideSchema, typographyScaleSchema, eyebrowTypographyStyleSchema, typographySchema, spaceSchema, corners, shadow, border, motion, inputStyle, headerVariant, headerPositioning, headerNavStyle, navFontWeight, headerMaxWidth, headerBarFrame, headerBorderSchema, logoStyleSchema, headerLogoTextSchema, navEffectsSchema, dropdownStyleSchema, headerCtaGapSchema, headerCtaTreatmentSchema, navContainerSchema, headerBackgroundSchema, headerSchema, footerVariant, footerMaxWidth, footerMode, footerNavLayoutMode, footerNavLayoutAlign, footerSpacing, footerLogoPlacement, footerLogoSize, footerLogoMaxHeight, footerBottomTextLinkStyleSchema, footerBottomBarSchema, footerNavLayoutSchema, footerLogoSchema, footerSchema, containerPaddingPresetSchema, layoutSchema, heroTypographySizeSchema, heroTypographyLineHeightSchema, heroResponsiveTypographySchema, heroTypographySchema, heroSchema, bodyTextIntroTypographySizeSchema, bodyTextSchema, gradientsSchema, testimonialQuoteTreatmentSchema, themeSchema;
8966
9033
  var init_schema$2 = __esmMin((() => {
8967
9034
  init_media$3();
9035
+ init_schema$3();
8968
9036
  init_buttons();
8969
9037
  init_cards();
8970
9038
  init_types$11();
@@ -8979,6 +9047,9 @@ var init_schema$2 = __esmMin((() => {
8979
9047
  init_rawStyleFields();
8980
9048
  init_themeColorTokens();
8981
9049
  init_tokenOrColor();
9050
+ init_scrollTreatment();
9051
+ init_containerSchema();
9052
+ init_interactionPalette();
8982
9053
  axesSchema = z$1.object({
8983
9054
  tone: z$1.enum([
8984
9055
  "minimal",
@@ -9007,16 +9078,6 @@ var init_schema$2 = __esmMin((() => {
9007
9078
  "expressive"
9008
9079
  ])
9009
9080
  });
9010
- colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
9011
- paletteColorSchema = z$1.object({
9012
- name: z$1.string().min(1),
9013
- hex: colourHexString
9014
- });
9015
- paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
9016
- paletteSchema = z$1.object({
9017
- colors: z$1.array(paletteColorSchema),
9018
- meta: paletteMetaSchema
9019
- });
9020
9081
  typographyStyleSchema = z$1.object({
9021
9082
  family: z$1.string().min(1),
9022
9083
  weight: z$1.enum([
@@ -9396,25 +9457,6 @@ var init_schema$2 = __esmMin((() => {
9396
9457
  ]);
9397
9458
  headerMaxWidth = z$1.enum(["container", "full"]);
9398
9459
  headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
9399
- headerContainerSchema = z$1.object({
9400
- rounded: z$1.enum([
9401
- "none",
9402
- "sm",
9403
- "md",
9404
- "lg",
9405
- "xl",
9406
- "2xl"
9407
- ]).default("xl"),
9408
- border: z$1.boolean().default(true),
9409
- shadow: z$1.boolean().default(true),
9410
- padding: z$1.enum([
9411
- "sm",
9412
- "md",
9413
- "lg"
9414
- ]).default("md"),
9415
- tint: z$1.string().nullable().optional(),
9416
- opacity: z$1.number().min(0).max(1).default(.12)
9417
- }).optional();
9418
9460
  headerBorderSchema = componentBorderSchema.extend({ position: z$1.enum([
9419
9461
  "bottom",
9420
9462
  "top",
@@ -9537,6 +9579,7 @@ var init_schema$2 = __esmMin((() => {
9537
9579
  shrinkOnScroll: z$1.boolean(),
9538
9580
  maxWidth: headerMaxWidth,
9539
9581
  barFrame: headerBarFrame.optional(),
9582
+ scrollTreatment: headerScrollTreatmentSchema,
9540
9583
  logoOverride: mediaSchema$1.nullable().optional(),
9541
9584
  background: headerBackgroundSchema.default({
9542
9585
  type: "color",
@@ -9549,6 +9592,7 @@ var init_schema$2 = __esmMin((() => {
9549
9592
  navFontRole: z$1.enum(["body", "heading"]).optional(),
9550
9593
  navTypography: z$1.enum(["body", "heading"]).optional(),
9551
9594
  navTextSize: navLinkStyleSchema.shape.textSize,
9595
+ interactionPalette: headerInteractionPaletteSchema.optional(),
9552
9596
  navPlacement: z$1.enum(["end", "center"]).optional(),
9553
9597
  container: headerContainerSchema,
9554
9598
  border: headerBorderSchema,
@@ -9825,781 +9869,679 @@ var init_schema$2 = __esmMin((() => {
9825
9869
  //#region ../theme-core/src/site-styles/accessibleSurfaces.ts
9826
9870
  var init_accessibleSurfaces = __esmMin((() => {}));
9827
9871
  //#endregion
9872
+ //#region ../theme-core/src/site-styles/lookOptionGroups.ts
9873
+ function defineLookOptionGroup(group) {
9874
+ defaultOption(group);
9875
+ return group;
9876
+ }
9877
+ function defaultOption(group) {
9878
+ const option = group.options.find((candidate) => candidate.id === group.defaultOptionId);
9879
+ if (option) return option;
9880
+ throw new Error(`Look option group "${group.id}" defaults to missing option "${group.defaultOptionId}".`);
9881
+ }
9882
+ var init_lookOptionGroups = __esmMin((() => {}));
9883
+ //#endregion
9828
9884
  //#region ../theme-core/src/site-styles/appearancePresetResolution.ts
9829
9885
  function assertValidOptionGroups(preset) {
9830
9886
  preset.optionGroups?.forEach((group) => {
9831
- 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}".`);
9887
+ defineLookOptionGroup(group);
9832
9888
  });
9833
9889
  }
9834
9890
  function defineBlockAppearancePreset(preset) {
9835
9891
  assertValidOptionGroups(preset);
9836
9892
  return preset;
9837
9893
  }
9838
- var init_appearancePresetResolution = __esmMin((() => {}));
9839
- //#endregion
9840
- //#region ../theme-core/src/site-styles/blockAppearancePresets.ts
9841
- var blockAppearancePresets;
9894
+ var init_appearancePresetResolution = __esmMin((() => {
9895
+ init_lookOptionGroups();
9896
+ })), brandScrimOptionGroups, microBannerLayoutPatches;
9842
9897
  var init_blockAppearancePresets = __esmMin((() => {
9843
9898
  init_appearancePresetResolution();
9844
9899
  init_types$7();
9845
- blockAppearancePresets = [
9846
- defineBlockAppearancePreset({
9847
- kind: "block-design",
9848
- id: "hero-immersive-image",
9849
- target: "hero",
9850
- label: "Immersive image hero",
9851
- blockKinds: ["block.hero"],
9852
- constraints: { layoutFamilies: ["centered", "compact"] },
9853
- layoutPatches: [{
9854
- constraints: { layoutVariantKeys: ["micro"] },
9855
- designPatch: {
9856
- sectionHeight: "banner",
9857
- heroTypographyScale: "display"
9858
- }
9859
- }],
9860
- design: {
9861
- sectionSurface: "hero-image",
9862
- contentFrame: plainFrame,
9863
- itemSurface: "none",
9864
- sectionHeight: "hero",
9865
- heroComposition: "center",
9866
- heroTypographyScale: "display",
9867
- imageSurfaceTreatment: { kind: "neutral-wash" }
9900
+ brandScrimOptionGroups = [{
9901
+ id: "image-surface-treatment",
9902
+ label: "Treatment",
9903
+ defaultOptionId: "brand-scrim-primary",
9904
+ options: [{
9905
+ id: "brand-scrim-primary",
9906
+ label: "Brand scrim",
9907
+ designPatch: { imageSurfaceTreatment: {
9908
+ kind: "brand-scrim",
9909
+ token: "primary"
9910
+ } }
9911
+ }, {
9912
+ id: "neutral-scrim",
9913
+ label: "Neutral scrim",
9914
+ designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
9915
+ }]
9916
+ }];
9917
+ microBannerLayoutPatches = [{
9918
+ constraints: { layoutVariantKeys: ["micro"] },
9919
+ designPatch: { sectionHeight: "banner" }
9920
+ }];
9921
+ defineBlockAppearancePreset({
9922
+ id: "hero-immersive-image",
9923
+ target: "hero",
9924
+ label: "Immersive image hero",
9925
+ blockKinds: ["block.hero"],
9926
+ constraints: { layoutFamilies: ["centered", "compact"] },
9927
+ layoutPatches: [{
9928
+ constraints: { layoutVariantKeys: ["micro"] },
9929
+ designPatch: {
9930
+ sectionHeight: "banner",
9931
+ heroTypographyScale: "display"
9868
9932
  }
9869
- }),
9870
- defineBlockAppearancePreset({
9871
- kind: "block-design",
9872
- id: "hero-bottom-left-panel",
9873
- target: "hero",
9874
- label: "Bottom-left panel hero",
9875
- blockKinds: ["block.hero"],
9876
- constraints: { layoutFamilies: ["centered", "compact"] },
9877
- optionGroups: [{
9878
- id: "image-surface-treatment",
9879
- label: "Treatment",
9880
- selectedOptionId: "neutral-scrim",
9881
- options: [{
9882
- id: "neutral-scrim",
9883
- label: "Neutral scrim",
9884
- designPatch: { imageSurfaceTreatment: {
9885
- kind: "neutral-scrim",
9886
- intensity: "balanced"
9887
- } }
9888
- }, {
9889
- id: "brand-scrim-primary",
9890
- label: "Brand scrim",
9891
- designPatch: { imageSurfaceTreatment: {
9892
- kind: "brand-scrim",
9893
- token: "primary",
9894
- intensity: "balanced"
9895
- } }
9896
- }]
9897
- }],
9898
- layoutPatches: [{
9899
- constraints: { layoutVariantKeys: ["micro"] },
9900
- designPatch: {
9901
- sectionHeight: "banner",
9902
- heroTypographyScale: "editorial"
9903
- }
9904
- }],
9905
- design: {
9906
- sectionSurface: "hero-image",
9907
- contentFrame: panelFrame("raised"),
9908
- itemSurface: "none",
9909
- sectionHeight: "immersive",
9910
- heroComposition: "bottom-left",
9911
- heroTypographyScale: "display",
9912
- imageSurfaceTreatment: {
9933
+ }],
9934
+ design: {
9935
+ sectionSurface: "hero-image",
9936
+ contentFrame: plainFrame,
9937
+ itemSurface: "none",
9938
+ sectionHeight: "hero",
9939
+ heroComposition: "center",
9940
+ heroTypographyScale: "display",
9941
+ imageSurfaceTreatment: { kind: "neutral-wash" }
9942
+ }
9943
+ }), defineBlockAppearancePreset({
9944
+ id: "hero-bottom-left-panel",
9945
+ target: "hero",
9946
+ label: "Bottom-left panel hero",
9947
+ blockKinds: ["block.hero"],
9948
+ constraints: { layoutFamilies: ["centered", "compact"] },
9949
+ optionGroups: [{
9950
+ id: "image-surface-treatment",
9951
+ label: "Treatment",
9952
+ defaultOptionId: "neutral-scrim",
9953
+ options: [{
9954
+ id: "neutral-scrim",
9955
+ label: "Neutral scrim",
9956
+ designPatch: { imageSurfaceTreatment: {
9913
9957
  kind: "neutral-scrim",
9914
9958
  intensity: "balanced"
9915
- }
9916
- }
9917
- }),
9918
- defineBlockAppearancePreset({
9919
- kind: "block-design",
9920
- id: "hero-poster-image",
9921
- target: "hero",
9922
- label: "Poster image hero",
9923
- blockKinds: ["block.hero"],
9924
- constraints: { layoutFamilies: ["centered", "compact"] },
9925
- layoutPatches: [{
9926
- constraints: { layoutVariantKeys: ["micro"] },
9927
- designPatch: {
9928
- sectionHeight: "banner",
9929
- heroTypographyScale: "display"
9930
- }
9931
- }],
9932
- design: {
9933
- sectionSurface: "hero-image",
9934
- contentFrame: plainFrame,
9935
- itemSurface: "none",
9936
- sectionHeight: "immersive",
9937
- heroComposition: "center",
9938
- heroTypographyScale: "poster",
9939
- imageSurfaceTreatment: {
9959
+ } }
9960
+ }, {
9961
+ id: "brand-scrim-primary",
9962
+ label: "Brand scrim",
9963
+ designPatch: { imageSurfaceTreatment: {
9940
9964
  kind: "brand-scrim",
9941
9965
  token: "primary",
9942
- intensity: "strong"
9943
- }
9944
- }
9945
- }),
9946
- defineBlockAppearancePreset({
9947
- kind: "block-design",
9948
- id: "hero-brand-scrim",
9949
- target: "hero",
9950
- label: "Brand scrim image hero",
9951
- blockKinds: ["block.hero"],
9952
- constraints: { layoutFamilies: ["centered", "compact"] },
9953
- optionGroups: [{
9954
- id: "image-surface-treatment",
9955
- label: "Treatment",
9956
- selectedOptionId: "brand-scrim-primary",
9957
- options: [{
9958
- id: "brand-scrim-primary",
9959
- label: "Brand scrim",
9960
- designPatch: { imageSurfaceTreatment: {
9961
- kind: "brand-scrim",
9962
- token: "primary"
9963
- } }
9964
- }, {
9965
- id: "neutral-scrim",
9966
- label: "Neutral scrim",
9967
- designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
9968
- }]
9969
- }],
9970
- layoutPatches: [{
9971
- constraints: { layoutVariantKeys: ["micro"] },
9972
- designPatch: { sectionHeight: "banner" }
9973
- }],
9974
- design: {
9975
- sectionSurface: "hero-image",
9976
- contentFrame: plainFrame,
9977
- itemSurface: "none",
9978
- sectionHeight: "immersive",
9979
- heroComposition: "center",
9980
- heroTypographyScale: "display",
9981
- imageSurfaceTreatment: {
9982
- kind: "brand-scrim",
9983
- token: "primary"
9984
- }
9985
- }
9986
- }),
9987
- defineBlockAppearancePreset({
9988
- kind: "block-design",
9989
- id: "hero-brand-scrim-fixed-frame",
9990
- target: "hero",
9991
- label: "Fixed-frame brand scrim hero",
9992
- blockKinds: ["block.hero"],
9993
- constraints: { layoutFamilies: ["centered", "compact"] },
9994
- optionGroups: [{
9995
- id: "image-surface-treatment",
9996
- label: "Treatment",
9997
- selectedOptionId: "brand-scrim-primary",
9998
- options: [{
9999
- id: "brand-scrim-primary",
10000
- label: "Brand scrim",
10001
- designPatch: { imageSurfaceTreatment: {
10002
- kind: "brand-scrim",
10003
- token: "primary"
10004
- } }
10005
- }, {
10006
- id: "neutral-scrim",
10007
- label: "Neutral scrim",
10008
- designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
10009
- }]
10010
- }],
10011
- layoutPatches: [{
10012
- constraints: { layoutVariantKeys: ["micro"] },
10013
- designPatch: { sectionHeight: "banner" }
10014
- }],
10015
- design: {
10016
- sectionSurface: "hero-image",
10017
- contentFrame: plainFrame,
10018
- itemSurface: "none",
10019
- sectionHeight: "immersive",
10020
- heroComposition: "center",
10021
- heroTypographyScale: "display",
10022
- imageSurfaceTreatment: {
10023
- kind: "brand-scrim",
10024
- token: "primary"
10025
- },
10026
- imageSurfaceMotion: "fixed-frame",
10027
- eyebrowTreatment: "accent-pill-bounce"
10028
- }
10029
- }),
10030
- defineBlockAppearancePreset({
10031
- kind: "block-design",
10032
- id: "hero-brand-depth-expressive",
10033
- target: "hero",
10034
- label: "Expressive brand-depth hero",
10035
- blockKinds: ["block.hero"],
10036
- constraints: { layoutFamilies: ["centered", "compact"] },
10037
- design: {
10038
- sectionSurface: "brand-depth-band",
10039
- contentFrame: plainFrame,
10040
- itemSurface: "none",
10041
- heroComposition: "center",
10042
- heroTypographyScale: "editorial",
10043
- eyebrowTreatment: "accent-pill-bounce"
10044
- }
10045
- }),
10046
- defineBlockAppearancePreset({
10047
- kind: "block-design",
10048
- id: "hero-contained-intro",
10049
- target: "hero",
10050
- label: "Contained intro hero",
10051
- blockKinds: ["block.hero"],
10052
- design: {
10053
- sectionSurface: "muted-band",
10054
- contentFrame: panelFrame("inset"),
10055
- itemSurface: "none",
10056
- heroComposition: "center",
10057
- heroTypographyScale: "editorial"
10058
- }
10059
- }),
10060
- defineBlockAppearancePreset({
10061
- kind: "block-design",
10062
- id: "hero-split-editorial",
10063
- target: "hero",
10064
- label: "Editorial split hero",
10065
- blockKinds: ["block.hero"],
10066
- constraints: { layoutFamilies: ["split"] },
10067
- design: {
10068
- sectionSurface: "base",
10069
- contentFrame: plainFrame,
10070
- itemSurface: "none",
10071
- heroTypographyScale: "editorial"
10072
- }
10073
- }),
10074
- defineBlockAppearancePreset({
10075
- kind: "block-design",
10076
- id: "hero-split-brand",
10077
- target: "hero",
10078
- label: "Brand split hero",
10079
- blockKinds: ["block.hero"],
10080
- constraints: { layoutFamilies: ["split"] },
10081
- design: {
10082
- sectionSurface: "brand-depth-band",
10083
- contentFrame: plainFrame,
10084
- itemSurface: "none",
10085
- heroTypographyScale: "display",
10086
- eyebrowTreatment: "accent-pill-bounce"
10087
- }
10088
- }),
10089
- defineBlockAppearancePreset({
10090
- kind: "block-design",
10091
- id: "hero-split-soft-panel",
10092
- target: "hero",
10093
- label: "Soft panel split hero",
10094
- blockKinds: ["block.hero"],
10095
- constraints: { layoutFamilies: ["split"] },
10096
- design: {
10097
- sectionSurface: "muted-band",
10098
- contentFrame: panelFrame("raised"),
10099
- itemSurface: "none",
9966
+ intensity: "balanced"
9967
+ } }
9968
+ }]
9969
+ }],
9970
+ layoutPatches: [{
9971
+ constraints: { layoutVariantKeys: ["micro"] },
9972
+ designPatch: {
9973
+ sectionHeight: "banner",
10100
9974
  heroTypographyScale: "editorial"
10101
9975
  }
10102
- }),
10103
- defineBlockAppearancePreset({
10104
- kind: "block-design",
10105
- id: "hero-split-accent",
10106
- target: "hero",
10107
- label: "Accent split hero",
10108
- blockKinds: ["block.hero"],
10109
- constraints: { layoutFamilies: ["split"] },
10110
- design: {
10111
- sectionSurface: "accent-band",
10112
- contentFrame: panelFrame("raised"),
10113
- itemSurface: "none",
9976
+ }],
9977
+ design: {
9978
+ sectionSurface: "hero-image",
9979
+ contentFrame: panelFrame("raised"),
9980
+ itemSurface: "none",
9981
+ sectionHeight: "immersive",
9982
+ heroComposition: "bottom-left",
9983
+ heroTypographyScale: "display",
9984
+ imageSurfaceTreatment: {
9985
+ kind: "neutral-scrim",
9986
+ intensity: "balanced"
9987
+ }
9988
+ }
9989
+ }), defineBlockAppearancePreset({
9990
+ id: "hero-poster-image",
9991
+ target: "hero",
9992
+ label: "Poster image hero",
9993
+ blockKinds: ["block.hero"],
9994
+ constraints: { layoutFamilies: ["centered", "compact"] },
9995
+ layoutPatches: [{
9996
+ constraints: { layoutVariantKeys: ["micro"] },
9997
+ designPatch: {
9998
+ sectionHeight: "banner",
10114
9999
  heroTypographyScale: "display"
10115
10000
  }
10116
- }),
10117
- defineBlockAppearancePreset({
10118
- kind: "block-design",
10119
- id: "intro-editorial-statement",
10120
- target: "intro",
10121
- label: "Editorial intro statement",
10122
- blockKinds: ["block.intro"],
10123
- constraints: { layoutVariantKeys: ["centered-copy", "statement-copy"] },
10124
- design: {
10125
- sectionSurface: "base",
10126
- contentFrame: plainFrame,
10127
- itemSurface: "none",
10128
- composition: {
10129
- kind: "intro",
10130
- treatment: "editorial-statement"
10131
- }
10132
- }
10133
- }),
10134
- defineBlockAppearancePreset({
10135
- kind: "block-design",
10136
- id: "intro-portrait-bio",
10137
- target: "intro",
10138
- label: "Portrait and bio",
10139
- blockKinds: ["block.intro"],
10140
- constraints: { layoutVariantKeys: ["media-copy"] },
10141
- design: {
10142
- sectionSurface: "base",
10143
- contentFrame: plainFrame,
10144
- itemSurface: "none",
10145
- composition: {
10146
- kind: "intro",
10147
- treatment: "portrait-bio"
10148
- }
10149
- }
10150
- }),
10151
- defineBlockAppearancePreset({
10152
- kind: "block-design",
10153
- id: "offerings-preview-default-cards",
10154
- target: "offerings",
10155
- label: "Default offering cards",
10156
- blockKinds: ["block.offerings-preview"],
10157
- design: {
10158
- sectionSurface: "base",
10159
- contentFrame: plainFrame,
10160
- itemSurface: "default"
10161
- }
10162
- }),
10163
- defineBlockAppearancePreset({
10164
- kind: "block-design",
10165
- id: "offerings-preview-secondary-cards",
10166
- target: "offerings",
10167
- label: "Secondary offering cards",
10168
- blockKinds: ["block.offerings-preview"],
10169
- design: {
10170
- sectionSurface: "muted-band",
10171
- contentFrame: plainFrame,
10172
- itemSurface: "inset"
10173
- }
10174
- }),
10175
- defineBlockAppearancePreset({
10176
- kind: "block-design",
10177
- id: "offerings-preview-non-carded",
10178
- target: "offerings",
10179
- label: "Non-carded offerings",
10180
- blockKinds: ["block.offerings-preview"],
10181
- design: {
10182
- sectionSurface: "muted-band",
10183
- contentFrame: plainFrame,
10184
- itemSurface: "editorial"
10185
- }
10186
- }),
10187
- defineBlockAppearancePreset({
10188
- kind: "block-design",
10189
- id: "offerings-preview-paired-feature-cards",
10190
- target: "offerings",
10191
- label: "Paired feature cards",
10192
- blockKinds: ["block.offerings-preview"],
10193
- constraints: { layoutVariantKeys: ["cards"] },
10194
- design: {
10195
- sectionSurface: "base",
10196
- contentFrame: plainFrame,
10197
- itemSurface: "none"
10198
- }
10199
- }),
10200
- defineBlockAppearancePreset({
10201
- kind: "block-design",
10202
- id: "offerings-preview-open-editorial-columns",
10203
- target: "offerings",
10204
- label: "Open editorial columns",
10205
- blockKinds: ["block.offerings-preview"],
10206
- constraints: { layoutVariantKeys: ["cards"] },
10207
- design: {
10208
- sectionSurface: "base",
10209
- contentFrame: plainFrame,
10210
- itemSurface: "none"
10211
- }
10212
- }),
10213
- defineBlockAppearancePreset({
10214
- kind: "block-design",
10215
- id: "offerings-preview-joined-programme-panel",
10216
- target: "offerings",
10217
- label: "Joined programme panel",
10218
- blockKinds: ["block.offerings-preview"],
10219
- constraints: { layoutVariantKeys: ["cards"] },
10220
- design: {
10221
- sectionSurface: "base",
10222
- contentFrame: plainFrame,
10223
- itemSurface: "none"
10224
- }
10225
- }),
10226
- defineBlockAppearancePreset({
10227
- kind: "block-design",
10228
- id: "feature-cards-raised-rule",
10229
- target: "feature-cards",
10230
- label: "Raised cards with rule",
10231
- blockKinds: ["block.feature-cards"],
10232
- design: {
10233
- sectionSurface: "base",
10234
- contentFrame: plainFrame,
10235
- itemSurface: "raised"
10236
- }
10237
- }),
10238
- defineBlockAppearancePreset({
10239
- kind: "block-design",
10240
- id: "feature-cards-bold-colors",
10241
- target: "feature-cards",
10242
- label: "Bold colour-blocked cards",
10243
- blockKinds: ["block.feature-cards"],
10244
- design: {
10245
- sectionSurface: "base",
10246
- contentFrame: plainFrame,
10247
- itemSurface: "color-blocked"
10248
- }
10249
- }),
10250
- defineBlockAppearancePreset({
10251
- kind: "block-design",
10252
- id: "feature-cards-editorial-columns",
10253
- target: "feature-cards",
10254
- label: "Editorial open columns",
10255
- blockKinds: ["block.feature-cards"],
10256
- design: {
10257
- sectionSurface: "base",
10258
- contentFrame: plainFrame,
10259
- itemSurface: "editorial"
10260
- }
10261
- }),
10262
- defineBlockAppearancePreset({
10263
- kind: "block-design",
10264
- id: "feature-cards-asymmetric-emphasis",
10265
- target: "feature-cards",
10266
- label: "Asymmetric emphasis pair",
10267
- blockKinds: ["block.feature-cards"],
10268
- constraints: { layoutFamilies: ["grid"] },
10269
- design: {
10270
- sectionSurface: "base",
10271
- contentFrame: plainFrame,
10272
- itemSurface: "none",
10273
- composition: {
10274
- kind: "feature-cards",
10275
- treatment: "asymmetric-emphasis"
10276
- }
10277
- }
10278
- }),
10279
- defineBlockAppearancePreset({
10280
- kind: "block-design",
10281
- id: "feature-cards-framed-programme",
10282
- target: "feature-cards",
10283
- label: "Framed programme cards",
10284
- blockKinds: ["block.feature-cards"],
10285
- constraints: { layoutFamilies: ["grid"] },
10286
- design: {
10287
- sectionSurface: "brand-depth-band",
10288
- contentFrame: plainFrame,
10289
- itemSurface: "inset",
10290
- composition: {
10291
- kind: "feature-cards",
10292
- treatment: "framed-programme"
10293
- }
10294
- }
10295
- }),
10296
- defineBlockAppearancePreset({
10297
- kind: "block-design",
10298
- id: "feature-cards-soft-panels",
10299
- target: "feature-cards",
10300
- label: "Soft tinted panels",
10301
- blockKinds: ["block.feature-cards"],
10302
- design: {
10303
- sectionSurface: "base",
10304
- contentFrame: plainFrame,
10305
- itemSurface: "inset"
10306
- }
10307
- }),
10308
- defineBlockAppearancePreset({
10309
- kind: "block-design",
10310
- id: "feature-cards-editorial-diptych",
10311
- target: "feature-cards",
10312
- label: "Editorial diptych",
10313
- blockKinds: ["block.feature-cards"],
10314
- constraints: { layoutVariantKeys: ["editorial-diptych"] },
10315
- design: {
10316
- sectionSurface: "base",
10317
- contentFrame: plainFrame,
10318
- itemSurface: "flat"
10319
- }
10320
- }),
10321
- defineBlockAppearancePreset({
10322
- kind: "block-design",
10323
- id: "feature-cards-editorial-pathways",
10324
- target: "feature-cards",
10325
- label: "Editorial pathways",
10326
- blockKinds: ["block.feature-cards"],
10327
- constraints: { layoutVariantKeys: ["editorial-pathways"] },
10328
- design: {
10329
- sectionSurface: "base",
10330
- contentFrame: plainFrame,
10331
- itemSurface: "flat"
10332
- }
10333
- }),
10334
- defineBlockAppearancePreset({
10335
- kind: "block-design",
10336
- id: "feature-cards-photo-tiles",
10337
- target: "feature-cards",
10338
- label: "Photo tiles",
10339
- blockKinds: ["block.feature-cards"],
10340
- design: {
10341
- sectionSurface: "base",
10342
- contentFrame: plainFrame,
10343
- itemSurface: "raised"
10344
- }
10345
- }),
10346
- defineBlockAppearancePreset({
10347
- kind: "block-design",
10348
- id: "events-lined-panel",
10349
- target: "events",
10350
- label: "Raised event panel",
10351
- blockKinds: ["block.event-calendar", "block.event-listing"],
10352
- design: {
10353
- sectionSurface: "base",
10354
- contentFrame: panelFrame("raised"),
10355
- itemSurface: "none"
10356
- }
10357
- }),
10358
- defineBlockAppearancePreset({
10359
- kind: "block-design",
10360
- id: "events-ruled-register",
10361
- target: "events",
10362
- label: "Ruled event register",
10363
- blockKinds: ["block.event-calendar", "block.event-listing"],
10364
- design: {
10365
- sectionSurface: "brand-depth-band",
10366
- contentFrame: plainFrame,
10367
- itemSurface: "none",
10368
- eventListTreatment: "ruled-register"
10369
- }
10370
- }),
10371
- defineBlockAppearancePreset({
10372
- kind: "block-design",
10373
- id: "events-editorial-register",
10374
- target: "events",
10375
- label: "Editorial event register",
10376
- blockKinds: ["block.event-calendar", "block.event-listing"],
10377
- design: {
10378
- sectionSurface: "base",
10379
- contentFrame: plainFrame,
10380
- itemSurface: "none",
10381
- eventListTreatment: "editorial-register"
10382
- }
10383
- }),
10384
- defineBlockAppearancePreset({
10385
- kind: "block-design",
10386
- id: "events-dense-index",
10387
- target: "events",
10388
- label: "Dense event index",
10389
- blockKinds: ["block.event-calendar", "block.event-listing"],
10390
- design: {
10391
- sectionSurface: "accent-band",
10392
- contentFrame: plainFrame,
10393
- itemSurface: "none",
10394
- eventListTreatment: "dense-index"
10395
- }
10396
- }),
10397
- defineBlockAppearancePreset({
10398
- kind: "block-design",
10399
- id: "schedule-details-brand-depth",
10400
- target: "events",
10401
- label: "Brand-depth schedule details",
10402
- blockKinds: ["block.event-details", "block.course-details"],
10403
- design: {
10404
- sectionSurface: "brand-depth-band",
10405
- contentFrame: plainFrame,
10406
- itemSurface: "none",
10407
- tileTreatment: "brand-depth"
10408
- }
10409
- }),
10410
- defineBlockAppearancePreset({
10411
- kind: "block-design",
10412
- id: "media-text-flush-feature",
10413
- target: "media-text",
10414
- label: "Flush media feature",
10415
- blockKinds: ["block.media-text"],
10416
- design: {
10417
- sectionSurface: "muted-band",
10418
- contentFrame: flushPanelFrame({ bleed: "start" }),
10419
- itemSurface: "none"
10420
- }
10421
- }),
10422
- defineBlockAppearancePreset({
10423
- kind: "block-design",
10424
- id: "testimonials-simple-cards",
10425
- target: "testimonials",
10426
- label: "Simple testimonial cards",
10427
- blockKinds: ["block.testimonials"],
10428
- design: {
10429
- sectionSurface: "base",
10430
- contentFrame: plainFrame,
10431
- itemSurface: "default"
10432
- }
10433
- }),
10434
- defineBlockAppearancePreset({
10435
- kind: "block-design",
10436
- id: "testimonials-raised-panel",
10437
- target: "testimonials",
10438
- label: "Raised testimonial panel",
10439
- blockKinds: ["block.testimonials"],
10440
- design: {
10441
- sectionSurface: "muted-band",
10442
- contentFrame: panelFrame("raised"),
10443
- itemSurface: "raised"
10444
- }
10445
- }),
10446
- defineBlockAppearancePreset({
10447
- kind: "block-design",
10448
- id: "testimonials-accent-panel",
10449
- target: "testimonials",
10450
- label: "Accent testimonial panel",
10451
- blockKinds: ["block.testimonials"],
10452
- design: {
10453
- sectionSurface: "accent-band",
10454
- contentFrame: panelFrame("raised"),
10455
- itemSurface: "raised"
10456
- }
10457
- }),
10458
- defineBlockAppearancePreset({
10459
- kind: "block-design",
10460
- id: "testimonials-default-cards",
10461
- target: "testimonials",
10462
- label: "Default cards",
10463
- blockKinds: ["block.testimonials"],
10464
- design: {
10465
- sectionSurface: "base",
10466
- contentFrame: plainFrame,
10467
- itemSurface: "none",
10468
- testimonialCardTreatment: "default"
10469
- }
10470
- }),
10471
- defineBlockAppearancePreset({
10472
- kind: "block-design",
10473
- id: "testimonials-statement-cards",
10474
- target: "testimonials",
10475
- label: "Statement cards",
10476
- blockKinds: ["block.testimonials"],
10477
- design: {
10478
- sectionSurface: "accent-band",
10479
- contentFrame: plainFrame,
10480
- itemSurface: "raised",
10481
- testimonialCardTreatment: "statement"
10482
- }
10483
- }),
10484
- defineBlockAppearancePreset({
10485
- kind: "block-design",
10486
- id: "testimonials-brand-statement-cards",
10487
- target: "testimonials",
10488
- label: "Brand statement cards",
10489
- blockKinds: ["block.testimonials"],
10490
- design: {
10491
- sectionSurface: "brand-depth-band",
10492
- contentFrame: plainFrame,
10493
- itemSurface: "raised",
10494
- testimonialCardTreatment: "statement"
10495
- }
10496
- }),
10497
- defineBlockAppearancePreset({
10498
- kind: "block-design",
10499
- id: "testimonials-non-carded",
10500
- target: "testimonials",
10501
- label: "Non-carded",
10502
- blockKinds: ["block.testimonials"],
10503
- design: {
10504
- sectionSurface: "muted-band",
10505
- contentFrame: plainFrame,
10506
- itemSurface: "none",
10507
- testimonialCardTreatment: "non-carded"
10508
- }
10509
- }),
10510
- defineBlockAppearancePreset({
10511
- kind: "block-design",
10512
- id: "testimonials-evergreen-lead",
10513
- target: "testimonials",
10514
- label: "Evergreen lead",
10515
- blockKinds: ["block.testimonials"],
10516
- constraints: { layoutVariantKeys: ["featured-editorial"] },
10517
- design: {
10518
- sectionSurface: "base",
10519
- contentFrame: plainFrame,
10520
- itemSurface: "none"
10521
- }
10522
- }),
10523
- defineBlockAppearancePreset({
10524
- kind: "block-design",
10525
- id: "testimonials-room-and-response",
10526
- target: "testimonials",
10527
- label: "Room and response",
10528
- blockKinds: ["block.testimonials"],
10529
- constraints: { layoutVariantKeys: ["featured-editorial"] },
10530
- design: {
10531
- sectionSurface: "base",
10532
- contentFrame: plainFrame,
10533
- itemSurface: "none"
10534
- }
10535
- }),
10536
- defineBlockAppearancePreset({
10537
- kind: "block-design",
10538
- id: "testimonials-open-floor",
10539
- target: "testimonials",
10540
- label: "Open floor",
10541
- blockKinds: ["block.testimonials"],
10542
- constraints: { layoutVariantKeys: ["featured-editorial"] },
10543
- design: {
10544
- sectionSurface: "base",
10545
- contentFrame: plainFrame,
10546
- itemSurface: "none"
10547
- }
10548
- }),
10549
- defineBlockAppearancePreset({
10550
- kind: "block-design",
10551
- id: "faq-base-accordion",
10552
- target: "faq",
10553
- label: "Base accordion FAQ",
10554
- blockKinds: ["block.faq"],
10555
- design: {
10556
- sectionSurface: "base",
10557
- contentFrame: plainFrame,
10558
- itemSurface: "default"
10559
- }
10560
- }),
10561
- defineBlockAppearancePreset({
10562
- kind: "block-design",
10563
- id: "faq-contained-help",
10564
- target: "faq",
10565
- label: "Contained help panel",
10566
- blockKinds: ["block.faq"],
10567
- design: {
10568
- sectionSurface: "muted-band",
10569
- contentFrame: panelFrame("inset"),
10570
- itemSurface: "default"
10571
- }
10572
- }),
10573
- defineBlockAppearancePreset({
10574
- kind: "block-design",
10575
- id: "contact-form-panel",
10576
- target: "contact-form",
10577
- label: "Raised form panel",
10578
- blockKinds: ["block.form"],
10579
- design: {
10580
- sectionSurface: "muted-band",
10581
- contentFrame: panelFrame("raised"),
10582
- itemSurface: "none"
10583
- }
10584
- }),
10585
- defineBlockAppearancePreset({
10586
- kind: "block-design",
10587
- id: "cta-accent-band",
10588
- target: "cta",
10589
- label: "Accent CTA band",
10590
- blockKinds: ["block.cta-full"],
10591
- design: {
10592
- sectionSurface: "accent-band",
10593
- contentFrame: plainFrame,
10594
- itemSurface: "none",
10595
- eyebrowTreatment: "accent"
10596
- }
10597
- })
10598
- ];
10599
- }));
10001
+ }],
10002
+ design: {
10003
+ sectionSurface: "hero-image",
10004
+ contentFrame: plainFrame,
10005
+ itemSurface: "none",
10006
+ sectionHeight: "immersive",
10007
+ heroComposition: "center",
10008
+ heroTypographyScale: "poster",
10009
+ imageSurfaceTreatment: {
10010
+ kind: "brand-scrim",
10011
+ token: "primary",
10012
+ intensity: "strong"
10013
+ }
10014
+ }
10015
+ }), defineBlockAppearancePreset({
10016
+ id: "hero-brand-scrim",
10017
+ target: "hero",
10018
+ label: "Brand scrim image hero",
10019
+ blockKinds: ["block.hero"],
10020
+ constraints: { layoutFamilies: ["centered", "compact"] },
10021
+ optionGroups: brandScrimOptionGroups,
10022
+ layoutPatches: microBannerLayoutPatches,
10023
+ design: {
10024
+ sectionSurface: "hero-image",
10025
+ contentFrame: plainFrame,
10026
+ itemSurface: "none",
10027
+ sectionHeight: "immersive",
10028
+ heroComposition: "center",
10029
+ heroTypographyScale: "display",
10030
+ imageSurfaceTreatment: {
10031
+ kind: "brand-scrim",
10032
+ token: "primary"
10033
+ }
10034
+ }
10035
+ }), defineBlockAppearancePreset({
10036
+ id: "hero-brand-scrim-fixed-frame",
10037
+ target: "hero",
10038
+ label: "Fixed-frame brand scrim hero",
10039
+ blockKinds: ["block.hero"],
10040
+ constraints: { layoutFamilies: ["centered", "compact"] },
10041
+ optionGroups: brandScrimOptionGroups,
10042
+ layoutPatches: microBannerLayoutPatches,
10043
+ design: {
10044
+ sectionSurface: "hero-image",
10045
+ contentFrame: plainFrame,
10046
+ itemSurface: "none",
10047
+ sectionHeight: "immersive",
10048
+ heroComposition: "center",
10049
+ heroTypographyScale: "display",
10050
+ imageSurfaceTreatment: {
10051
+ kind: "brand-scrim",
10052
+ token: "primary"
10053
+ },
10054
+ imageSurfaceMotion: "fixed-frame",
10055
+ eyebrowTreatment: "accent-pill-bounce"
10056
+ }
10057
+ }), defineBlockAppearancePreset({
10058
+ id: "hero-brand-depth-expressive",
10059
+ target: "hero",
10060
+ label: "Expressive brand-depth hero",
10061
+ blockKinds: ["block.hero"],
10062
+ constraints: { layoutFamilies: ["centered", "compact"] },
10063
+ design: {
10064
+ sectionSurface: "brand-depth-band",
10065
+ contentFrame: plainFrame,
10066
+ itemSurface: "none",
10067
+ heroComposition: "center",
10068
+ heroTypographyScale: "editorial",
10069
+ eyebrowTreatment: "accent-pill-bounce"
10070
+ }
10071
+ }), defineBlockAppearancePreset({
10072
+ id: "hero-contained-intro",
10073
+ target: "hero",
10074
+ label: "Contained intro hero",
10075
+ blockKinds: ["block.hero"],
10076
+ design: {
10077
+ sectionSurface: "muted-band",
10078
+ contentFrame: panelFrame("inset"),
10079
+ itemSurface: "none",
10080
+ heroComposition: "center",
10081
+ heroTypographyScale: "editorial"
10082
+ }
10083
+ }), defineBlockAppearancePreset({
10084
+ id: "hero-split-editorial",
10085
+ target: "hero",
10086
+ label: "Editorial split hero",
10087
+ blockKinds: ["block.hero"],
10088
+ constraints: { layoutFamilies: ["split"] },
10089
+ design: {
10090
+ sectionSurface: "base",
10091
+ contentFrame: plainFrame,
10092
+ itemSurface: "none",
10093
+ heroTypographyScale: "editorial"
10094
+ }
10095
+ }), defineBlockAppearancePreset({
10096
+ id: "hero-split-brand",
10097
+ target: "hero",
10098
+ label: "Brand split hero",
10099
+ blockKinds: ["block.hero"],
10100
+ constraints: { layoutFamilies: ["split"] },
10101
+ design: {
10102
+ sectionSurface: "brand-depth-band",
10103
+ contentFrame: plainFrame,
10104
+ itemSurface: "none",
10105
+ heroTypographyScale: "display",
10106
+ eyebrowTreatment: "accent-pill-bounce"
10107
+ }
10108
+ }), defineBlockAppearancePreset({
10109
+ id: "hero-split-soft-panel",
10110
+ target: "hero",
10111
+ label: "Soft panel split hero",
10112
+ blockKinds: ["block.hero"],
10113
+ constraints: { layoutFamilies: ["split"] },
10114
+ design: {
10115
+ sectionSurface: "muted-band",
10116
+ contentFrame: panelFrame("raised"),
10117
+ itemSurface: "none",
10118
+ heroTypographyScale: "editorial"
10119
+ }
10120
+ }), defineBlockAppearancePreset({
10121
+ id: "hero-split-accent",
10122
+ target: "hero",
10123
+ label: "Accent split hero",
10124
+ blockKinds: ["block.hero"],
10125
+ constraints: { layoutFamilies: ["split"] },
10126
+ design: {
10127
+ sectionSurface: "accent-band",
10128
+ contentFrame: panelFrame("raised"),
10129
+ itemSurface: "none",
10130
+ heroTypographyScale: "display"
10131
+ }
10132
+ }), defineBlockAppearancePreset({
10133
+ id: "intro-editorial-statement",
10134
+ target: "intro",
10135
+ label: "Editorial intro statement",
10136
+ blockKinds: ["block.intro"],
10137
+ constraints: { layoutVariantKeys: ["centered-copy", "statement-copy"] },
10138
+ design: {
10139
+ sectionSurface: "base",
10140
+ contentFrame: plainFrame,
10141
+ itemSurface: "none",
10142
+ composition: {
10143
+ kind: "intro",
10144
+ treatment: "editorial-statement"
10145
+ }
10146
+ }
10147
+ }), defineBlockAppearancePreset({
10148
+ id: "intro-portrait-bio",
10149
+ target: "intro",
10150
+ label: "Portrait and bio",
10151
+ blockKinds: ["block.intro"],
10152
+ constraints: { layoutVariantKeys: ["media-copy"] },
10153
+ design: {
10154
+ sectionSurface: "base",
10155
+ contentFrame: plainFrame,
10156
+ itemSurface: "none",
10157
+ composition: {
10158
+ kind: "intro",
10159
+ treatment: "portrait-bio"
10160
+ }
10161
+ }
10162
+ }), defineBlockAppearancePreset({
10163
+ id: "offerings-preview-default-cards",
10164
+ target: "offerings",
10165
+ label: "Default offering cards",
10166
+ blockKinds: ["block.offerings-preview"],
10167
+ design: {
10168
+ sectionSurface: "base",
10169
+ contentFrame: plainFrame,
10170
+ itemSurface: "default"
10171
+ }
10172
+ }), defineBlockAppearancePreset({
10173
+ id: "offerings-preview-secondary-cards",
10174
+ target: "offerings",
10175
+ label: "Secondary offering cards",
10176
+ blockKinds: ["block.offerings-preview"],
10177
+ design: {
10178
+ sectionSurface: "muted-band",
10179
+ contentFrame: plainFrame,
10180
+ itemSurface: "inset"
10181
+ }
10182
+ }), defineBlockAppearancePreset({
10183
+ id: "offerings-preview-non-carded",
10184
+ target: "offerings",
10185
+ label: "Non-carded offerings",
10186
+ blockKinds: ["block.offerings-preview"],
10187
+ design: {
10188
+ sectionSurface: "muted-band",
10189
+ contentFrame: plainFrame,
10190
+ itemSurface: "editorial"
10191
+ }
10192
+ }), defineBlockAppearancePreset({
10193
+ id: "offerings-preview-paired-feature-cards",
10194
+ target: "offerings",
10195
+ label: "Paired feature cards",
10196
+ blockKinds: ["block.offerings-preview"],
10197
+ constraints: { layoutVariantKeys: ["cards"] },
10198
+ design: {
10199
+ sectionSurface: "base",
10200
+ contentFrame: plainFrame,
10201
+ itemSurface: "none"
10202
+ }
10203
+ }), defineBlockAppearancePreset({
10204
+ id: "offerings-preview-open-editorial-columns",
10205
+ target: "offerings",
10206
+ label: "Open editorial columns",
10207
+ blockKinds: ["block.offerings-preview"],
10208
+ constraints: { layoutVariantKeys: ["cards"] },
10209
+ design: {
10210
+ sectionSurface: "base",
10211
+ contentFrame: plainFrame,
10212
+ itemSurface: "none"
10213
+ }
10214
+ }), defineBlockAppearancePreset({
10215
+ id: "offerings-preview-joined-programme-panel",
10216
+ target: "offerings",
10217
+ label: "Joined programme panel",
10218
+ blockKinds: ["block.offerings-preview"],
10219
+ constraints: { layoutVariantKeys: ["cards"] },
10220
+ design: {
10221
+ sectionSurface: "base",
10222
+ contentFrame: plainFrame,
10223
+ itemSurface: "none"
10224
+ }
10225
+ }), defineBlockAppearancePreset({
10226
+ id: "feature-cards-raised-rule",
10227
+ target: "feature-cards",
10228
+ label: "Raised cards with rule",
10229
+ blockKinds: ["block.feature-cards"],
10230
+ design: {
10231
+ sectionSurface: "base",
10232
+ contentFrame: plainFrame,
10233
+ itemSurface: "raised"
10234
+ }
10235
+ }), defineBlockAppearancePreset({
10236
+ id: "feature-cards-bold-colors",
10237
+ target: "feature-cards",
10238
+ label: "Bold colour-blocked cards",
10239
+ blockKinds: ["block.feature-cards"],
10240
+ design: {
10241
+ sectionSurface: "base",
10242
+ contentFrame: plainFrame,
10243
+ itemSurface: "color-blocked"
10244
+ }
10245
+ }), defineBlockAppearancePreset({
10246
+ id: "feature-cards-editorial-columns",
10247
+ target: "feature-cards",
10248
+ label: "Editorial open columns",
10249
+ blockKinds: ["block.feature-cards"],
10250
+ design: {
10251
+ sectionSurface: "base",
10252
+ contentFrame: plainFrame,
10253
+ itemSurface: "editorial"
10254
+ }
10255
+ }), defineBlockAppearancePreset({
10256
+ id: "feature-cards-asymmetric-emphasis",
10257
+ target: "feature-cards",
10258
+ label: "Asymmetric emphasis pair",
10259
+ blockKinds: ["block.feature-cards"],
10260
+ constraints: { layoutFamilies: ["grid"] },
10261
+ design: {
10262
+ sectionSurface: "base",
10263
+ contentFrame: plainFrame,
10264
+ itemSurface: "none",
10265
+ composition: {
10266
+ kind: "feature-cards",
10267
+ treatment: "asymmetric-emphasis"
10268
+ }
10269
+ }
10270
+ }), defineBlockAppearancePreset({
10271
+ id: "feature-cards-framed-programme",
10272
+ target: "feature-cards",
10273
+ label: "Framed programme cards",
10274
+ blockKinds: ["block.feature-cards"],
10275
+ constraints: { layoutFamilies: ["grid"] },
10276
+ design: {
10277
+ sectionSurface: "brand-depth-band",
10278
+ contentFrame: plainFrame,
10279
+ itemSurface: "inset",
10280
+ composition: {
10281
+ kind: "feature-cards",
10282
+ treatment: "framed-programme"
10283
+ }
10284
+ }
10285
+ }), defineBlockAppearancePreset({
10286
+ id: "feature-cards-soft-panels",
10287
+ target: "feature-cards",
10288
+ label: "Soft tinted panels",
10289
+ blockKinds: ["block.feature-cards"],
10290
+ design: {
10291
+ sectionSurface: "base",
10292
+ contentFrame: plainFrame,
10293
+ itemSurface: "inset"
10294
+ }
10295
+ }), defineBlockAppearancePreset({
10296
+ id: "feature-cards-editorial-diptych",
10297
+ target: "feature-cards",
10298
+ label: "Editorial diptych",
10299
+ blockKinds: ["block.feature-cards"],
10300
+ constraints: { layoutVariantKeys: ["editorial-diptych"] },
10301
+ design: {
10302
+ sectionSurface: "base",
10303
+ contentFrame: plainFrame,
10304
+ itemSurface: "flat"
10305
+ }
10306
+ }), defineBlockAppearancePreset({
10307
+ id: "feature-cards-editorial-pathways",
10308
+ target: "feature-cards",
10309
+ label: "Editorial pathways",
10310
+ blockKinds: ["block.feature-cards"],
10311
+ constraints: { layoutVariantKeys: ["editorial-pathways"] },
10312
+ design: {
10313
+ sectionSurface: "base",
10314
+ contentFrame: plainFrame,
10315
+ itemSurface: "flat"
10316
+ }
10317
+ }), defineBlockAppearancePreset({
10318
+ id: "feature-cards-photo-tiles",
10319
+ target: "feature-cards",
10320
+ label: "Photo tiles",
10321
+ blockKinds: ["block.feature-cards"],
10322
+ design: {
10323
+ sectionSurface: "base",
10324
+ contentFrame: plainFrame,
10325
+ itemSurface: "raised"
10326
+ }
10327
+ }), defineBlockAppearancePreset({
10328
+ id: "events-lined-panel",
10329
+ target: "events",
10330
+ label: "Raised event panel",
10331
+ blockKinds: ["block.event-calendar", "block.event-listing"],
10332
+ design: {
10333
+ sectionSurface: "base",
10334
+ contentFrame: panelFrame("raised"),
10335
+ itemSurface: "none"
10336
+ }
10337
+ }), defineBlockAppearancePreset({
10338
+ id: "events-ruled-register",
10339
+ target: "events",
10340
+ label: "Ruled event register",
10341
+ blockKinds: ["block.event-calendar", "block.event-listing"],
10342
+ design: {
10343
+ sectionSurface: "brand-depth-band",
10344
+ contentFrame: plainFrame,
10345
+ itemSurface: "none",
10346
+ eventListTreatment: "ruled-register"
10347
+ }
10348
+ }), defineBlockAppearancePreset({
10349
+ id: "events-editorial-register",
10350
+ target: "events",
10351
+ label: "Editorial event register",
10352
+ blockKinds: ["block.event-calendar", "block.event-listing"],
10353
+ design: {
10354
+ sectionSurface: "base",
10355
+ contentFrame: plainFrame,
10356
+ itemSurface: "none",
10357
+ eventListTreatment: "editorial-register"
10358
+ }
10359
+ }), defineBlockAppearancePreset({
10360
+ id: "events-dense-index",
10361
+ target: "events",
10362
+ label: "Dense event index",
10363
+ blockKinds: ["block.event-calendar", "block.event-listing"],
10364
+ design: {
10365
+ sectionSurface: "accent-band",
10366
+ contentFrame: plainFrame,
10367
+ itemSurface: "none",
10368
+ eventListTreatment: "dense-index"
10369
+ }
10370
+ }), defineBlockAppearancePreset({
10371
+ id: "schedule-details-brand-depth",
10372
+ target: "events",
10373
+ label: "Brand-depth schedule details",
10374
+ blockKinds: ["block.event-details", "block.course-details"],
10375
+ design: {
10376
+ sectionSurface: "brand-depth-band",
10377
+ contentFrame: plainFrame,
10378
+ itemSurface: "none",
10379
+ tileTreatment: "brand-depth"
10380
+ }
10381
+ }), defineBlockAppearancePreset({
10382
+ id: "media-text-flush-feature",
10383
+ target: "media-text",
10384
+ label: "Flush media feature",
10385
+ blockKinds: ["block.media-text"],
10386
+ design: {
10387
+ sectionSurface: "muted-band",
10388
+ contentFrame: flushPanelFrame({ bleed: "start" }),
10389
+ itemSurface: "none"
10390
+ }
10391
+ }), defineBlockAppearancePreset({
10392
+ id: "testimonials-simple-cards",
10393
+ target: "testimonials",
10394
+ label: "Simple testimonial cards",
10395
+ blockKinds: ["block.testimonials"],
10396
+ design: {
10397
+ sectionSurface: "base",
10398
+ contentFrame: plainFrame,
10399
+ itemSurface: "default"
10400
+ }
10401
+ }), defineBlockAppearancePreset({
10402
+ id: "testimonials-raised-panel",
10403
+ target: "testimonials",
10404
+ label: "Raised testimonial panel",
10405
+ blockKinds: ["block.testimonials"],
10406
+ design: {
10407
+ sectionSurface: "muted-band",
10408
+ contentFrame: panelFrame("raised"),
10409
+ itemSurface: "raised"
10410
+ }
10411
+ }), defineBlockAppearancePreset({
10412
+ id: "testimonials-accent-panel",
10413
+ target: "testimonials",
10414
+ label: "Accent testimonial panel",
10415
+ blockKinds: ["block.testimonials"],
10416
+ design: {
10417
+ sectionSurface: "accent-band",
10418
+ contentFrame: panelFrame("raised"),
10419
+ itemSurface: "raised"
10420
+ }
10421
+ }), defineBlockAppearancePreset({
10422
+ id: "testimonials-default-cards",
10423
+ target: "testimonials",
10424
+ label: "Default cards",
10425
+ blockKinds: ["block.testimonials"],
10426
+ design: {
10427
+ sectionSurface: "base",
10428
+ contentFrame: plainFrame,
10429
+ itemSurface: "none",
10430
+ testimonialCardTreatment: "default"
10431
+ }
10432
+ }), defineBlockAppearancePreset({
10433
+ id: "testimonials-statement-cards",
10434
+ target: "testimonials",
10435
+ label: "Statement cards",
10436
+ blockKinds: ["block.testimonials"],
10437
+ design: {
10438
+ sectionSurface: "accent-band",
10439
+ contentFrame: plainFrame,
10440
+ itemSurface: "raised",
10441
+ testimonialCardTreatment: "statement"
10442
+ }
10443
+ }), defineBlockAppearancePreset({
10444
+ id: "testimonials-brand-statement-cards",
10445
+ target: "testimonials",
10446
+ label: "Brand statement cards",
10447
+ blockKinds: ["block.testimonials"],
10448
+ design: {
10449
+ sectionSurface: "brand-depth-band",
10450
+ contentFrame: plainFrame,
10451
+ itemSurface: "raised",
10452
+ testimonialCardTreatment: "statement"
10453
+ }
10454
+ }), defineBlockAppearancePreset({
10455
+ id: "testimonials-non-carded",
10456
+ target: "testimonials",
10457
+ label: "Non-carded",
10458
+ blockKinds: ["block.testimonials"],
10459
+ design: {
10460
+ sectionSurface: "muted-band",
10461
+ contentFrame: plainFrame,
10462
+ itemSurface: "none",
10463
+ testimonialCardTreatment: "non-carded"
10464
+ }
10465
+ }), defineBlockAppearancePreset({
10466
+ id: "testimonials-evergreen-lead",
10467
+ target: "testimonials",
10468
+ label: "Evergreen lead",
10469
+ blockKinds: ["block.testimonials"],
10470
+ constraints: { layoutVariantKeys: ["featured-editorial"] },
10471
+ design: {
10472
+ sectionSurface: "base",
10473
+ contentFrame: plainFrame,
10474
+ itemSurface: "none"
10475
+ }
10476
+ }), defineBlockAppearancePreset({
10477
+ id: "testimonials-room-and-response",
10478
+ target: "testimonials",
10479
+ label: "Room and response",
10480
+ blockKinds: ["block.testimonials"],
10481
+ constraints: { layoutVariantKeys: ["featured-editorial"] },
10482
+ design: {
10483
+ sectionSurface: "base",
10484
+ contentFrame: plainFrame,
10485
+ itemSurface: "none"
10486
+ }
10487
+ }), defineBlockAppearancePreset({
10488
+ id: "testimonials-open-floor",
10489
+ target: "testimonials",
10490
+ label: "Open floor",
10491
+ blockKinds: ["block.testimonials"],
10492
+ constraints: { layoutVariantKeys: ["featured-editorial"] },
10493
+ design: {
10494
+ sectionSurface: "base",
10495
+ contentFrame: plainFrame,
10496
+ itemSurface: "none"
10497
+ }
10498
+ }), defineBlockAppearancePreset({
10499
+ id: "faq-base-accordion",
10500
+ target: "faq",
10501
+ label: "Base accordion FAQ",
10502
+ blockKinds: ["block.faq"],
10503
+ design: {
10504
+ sectionSurface: "base",
10505
+ contentFrame: plainFrame,
10506
+ itemSurface: "default"
10507
+ }
10508
+ }), defineBlockAppearancePreset({
10509
+ id: "faq-contained-help",
10510
+ target: "faq",
10511
+ label: "Contained help panel",
10512
+ blockKinds: ["block.faq"],
10513
+ design: {
10514
+ sectionSurface: "muted-band",
10515
+ contentFrame: panelFrame("inset"),
10516
+ itemSurface: "default"
10517
+ }
10518
+ }), defineBlockAppearancePreset({
10519
+ id: "contact-form-panel",
10520
+ target: "contact-form",
10521
+ label: "Raised form panel",
10522
+ blockKinds: ["block.form"],
10523
+ design: {
10524
+ sectionSurface: "muted-band",
10525
+ contentFrame: panelFrame("raised"),
10526
+ itemSurface: "none"
10527
+ }
10528
+ }), defineBlockAppearancePreset({
10529
+ id: "cta-accent-band",
10530
+ target: "cta",
10531
+ label: "Accent CTA band",
10532
+ blockKinds: ["block.cta-full"],
10533
+ design: {
10534
+ sectionSurface: "accent-band",
10535
+ contentFrame: plainFrame,
10536
+ itemSurface: "none",
10537
+ eyebrowTreatment: "accent"
10538
+ }
10539
+ });
10540
+ }));
10541
+ //#endregion
10542
+ //#region ../theme-core/src/site-styles/appearancePresetCatalog.ts
10600
10543
  var init_appearancePresetCatalog = __esmMin((() => {
10601
10544
  init_blockAppearancePresets();
10602
- [...blockAppearancePresets];
10603
10545
  }));
10604
10546
  //#endregion
10605
10547
  //#region ../theme-core/src/site-styles/appearancePresetTypes.ts
@@ -10818,6 +10760,37 @@ var init_backgroundAppearance = __esmMin((() => {
10818
10760
  //#region ../theme-core/src/site-styles/compositionBudget.ts
10819
10761
  var init_compositionBudget = __esmMin((() => {}));
10820
10762
  //#endregion
10763
+ //#region ../theme-core/src/site-styles/headerInteractionPalette.ts
10764
+ var clearSplitInteractionPalette;
10765
+ var init_headerInteractionPalette = __esmMin((() => {
10766
+ init_interactionPalette();
10767
+ init_lookOptionGroups();
10768
+ clearSplitInteractionPalette = defineLookOptionGroup({
10769
+ id: "interaction-palette",
10770
+ label: "Hover colour",
10771
+ defaultOptionId: "accent",
10772
+ options: [
10773
+ {
10774
+ id: "accent",
10775
+ label: "Accent"
10776
+ },
10777
+ {
10778
+ id: "primary",
10779
+ label: "Primary"
10780
+ },
10781
+ {
10782
+ id: "secondary",
10783
+ label: "Secondary"
10784
+ }
10785
+ ]
10786
+ });
10787
+ }));
10788
+ //#endregion
10789
+ //#region ../theme-core/src/site-styles/headerOpeningForeground.ts
10790
+ var init_headerOpeningForeground = __esmMin((() => {
10791
+ init_tokens();
10792
+ }));
10793
+ //#endregion
10821
10794
  //#region ../theme-core/src/site-styles/customizableSurfaces.ts
10822
10795
  var init_customizableSurfaces = __esmMin((() => {}));
10823
10796
  //#endregion
@@ -10836,7 +10809,7 @@ function asHeaderStyleId(value) {
10836
10809
  * optional nested styling fields that would otherwise leak from another Look.
10837
10810
  */
10838
10811
  function baseHeader(theme) {
10839
- 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;
10812
+ 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;
10840
10813
  return {
10841
10814
  ...header,
10842
10815
  navContainer: {
@@ -11195,12 +11168,11 @@ function floatingGlassHeader(theme) {
11195
11168
  }
11196
11169
  };
11197
11170
  }
11198
- function headerConfigurationKey(configuration) {
11199
- return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
11200
- }
11201
11171
  var titleOnlyLogoAccommodation, inlineWordmarkLogoAccommodation, inlineMarkWithTitleLogoAccommodation, logoPlateAccommodation, centeredBadgeAccommodation, popoutBadgeAccommodation, centeredMastheadAccommodation, unbackedOverlayLogoAccommodation, inlineClassicLogoAccommodations, centeredLogoAccommodations, overlayLogoAccommodations, headerLayoutCatalog, headerStyleCatalog, headerStylesById, headerStyleCompatibilityOrder, legacyHeaderLookAliases, legacyHeaderLookAliasesById, headerLookCatalog;
11202
11172
  var init_headerLooks = __esmMin((() => {
11203
11173
  init_headerCtaVariants();
11174
+ init_headerInteractionPalette();
11175
+ init_headerOpeningForeground();
11204
11176
  init_logoBranding();
11205
11177
  init_types$7();
11206
11178
  titleOnlyLogoAccommodation = {
@@ -11326,7 +11298,6 @@ var init_headerLooks = __esmMin((() => {
11326
11298
  id: asHeaderLayoutId("classic"),
11327
11299
  label: "Classic",
11328
11300
  description: "Logo and navigation in one practical horizontal row.",
11329
- structure: "inline-classic",
11330
11301
  variant: "classic",
11331
11302
  defaultPositioning: "sticky",
11332
11303
  shrinkOnScroll: false
@@ -11335,7 +11306,6 @@ var init_headerLooks = __esmMin((() => {
11335
11306
  id: asHeaderLayoutId("centered"),
11336
11307
  label: "Centered",
11337
11308
  description: "Logo centered above a balanced navigation row.",
11338
- structure: "centered-stack",
11339
11309
  variant: "centered",
11340
11310
  defaultPositioning: "static",
11341
11311
  shrinkOnScroll: false,
@@ -11351,7 +11321,6 @@ var init_headerLooks = __esmMin((() => {
11351
11321
  id: asHeaderLayoutId("floating"),
11352
11322
  label: "Floating",
11353
11323
  description: "Detached header chrome that sits over the opening section.",
11354
- structure: "floating-shell",
11355
11324
  variant: "floating",
11356
11325
  defaultPositioning: "sticky",
11357
11326
  shrinkOnScroll: true,
@@ -11510,10 +11479,13 @@ var init_headerLooks = __esmMin((() => {
11510
11479
  label: "Clear Split",
11511
11480
  description: "Floating logo with transparent navigation and no shared shell.",
11512
11481
  supportedLayoutIds: supportedLayouts(["floating"]),
11513
- navInteraction: "color-change",
11482
+ navInteraction: "pill-background",
11514
11483
  surface: "floating",
11515
- defaultDepth: "none",
11484
+ defaultDepth: "line",
11516
11485
  navTypography: "plain",
11486
+ openingForegroundTarget: "all",
11487
+ scrollTreatment: "contrast-glass",
11488
+ interactionPalette: clearSplitInteractionPalette,
11517
11489
  moods: ["editorial", "calm"]
11518
11490
  },
11519
11491
  {
@@ -11536,6 +11508,7 @@ var init_headerLooks = __esmMin((() => {
11536
11508
  surface: "floating",
11537
11509
  defaultDepth: "shadow",
11538
11510
  navTypography: "quiet-caps",
11511
+ openingForegroundTarget: "brand-only",
11539
11512
  moods: ["expressive"]
11540
11513
  },
11541
11514
  {
@@ -11547,6 +11520,7 @@ var init_headerLooks = __esmMin((() => {
11547
11520
  surface: "floating",
11548
11521
  defaultDepth: "shadow",
11549
11522
  navTypography: "heading",
11523
+ openingForegroundTarget: "brand-only",
11550
11524
  moods: ["calm", "editorial"]
11551
11525
  }
11552
11526
  ]);
@@ -11702,13 +11676,6 @@ var init_headerLooks = __esmMin((() => {
11702
11676
  {
11703
11677
  id: asHeaderLookId("clean-base"),
11704
11678
  label: "Clean base",
11705
- visualTreatment: "solid-neutral",
11706
- layoutBehavior: "sticky",
11707
- configuration: {
11708
- structure: "inline-classic",
11709
- treatment: "solid-neutral",
11710
- behavior: "sticky"
11711
- },
11712
11679
  openingRequirement: "none",
11713
11680
  logoAccommodations: inlineClassicLogoAccommodations,
11714
11681
  compile: cleanBaseHeader
@@ -11716,13 +11683,6 @@ var init_headerLooks = __esmMin((() => {
11716
11683
  {
11717
11684
  id: asHeaderLookId("classic-centered-nav"),
11718
11685
  label: "Centered nav",
11719
- visualTreatment: "solid-neutral",
11720
- layoutBehavior: "sticky",
11721
- configuration: {
11722
- structure: "inline-classic",
11723
- treatment: "solid-neutral",
11724
- behavior: "sticky"
11725
- },
11726
11686
  openingRequirement: "none",
11727
11687
  maxRecommendedNavItems: 6,
11728
11688
  logoAccommodations: inlineClassicLogoAccommodations,
@@ -11731,13 +11691,6 @@ var init_headerLooks = __esmMin((() => {
11731
11691
  {
11732
11692
  id: asHeaderLookId("brand-solid"),
11733
11693
  label: "Brand solid",
11734
- visualTreatment: "solid-brand",
11735
- layoutBehavior: "sticky-shrink",
11736
- configuration: {
11737
- structure: "inline-classic",
11738
- treatment: "solid-brand",
11739
- behavior: "sticky-shrink"
11740
- },
11741
11694
  openingRequirement: "none",
11742
11695
  logoAccommodations: inlineClassicLogoAccommodations,
11743
11696
  compile: solidBrandHeader
@@ -11745,13 +11698,6 @@ var init_headerLooks = __esmMin((() => {
11745
11698
  {
11746
11699
  id: asHeaderLookId("serif-line"),
11747
11700
  label: "Serif line",
11748
- visualTreatment: "light-serif",
11749
- layoutBehavior: "sticky",
11750
- configuration: {
11751
- structure: "centered-stack",
11752
- treatment: "light-serif",
11753
- behavior: "sticky"
11754
- },
11755
11701
  openingRequirement: "none",
11756
11702
  maxRecommendedNavItems: 6,
11757
11703
  logoAccommodations: centeredLogoAccommodations,
@@ -11760,13 +11706,6 @@ var init_headerLooks = __esmMin((() => {
11760
11706
  {
11761
11707
  id: asHeaderLookId("centered-calm"),
11762
11708
  label: "Centered calm",
11763
- visualTreatment: "light-serif",
11764
- layoutBehavior: "normal-flow",
11765
- configuration: {
11766
- structure: "centered-stack",
11767
- treatment: "light-serif",
11768
- behavior: "normal-flow"
11769
- },
11770
11709
  openingRequirement: "none",
11771
11710
  maxRecommendedNavItems: 5,
11772
11711
  logoAccommodations: centeredLogoAccommodations,
@@ -11775,13 +11714,6 @@ var init_headerLooks = __esmMin((() => {
11775
11714
  {
11776
11715
  id: asHeaderLookId("practical-utility"),
11777
11716
  label: "Practical utility",
11778
- visualTreatment: "solid-neutral",
11779
- layoutBehavior: "sticky-shrink",
11780
- configuration: {
11781
- structure: "inline-classic",
11782
- treatment: "solid-neutral",
11783
- behavior: "sticky-shrink"
11784
- },
11785
11717
  openingRequirement: "none",
11786
11718
  requiresProminentCta: true,
11787
11719
  logoAccommodations: inlineClassicLogoAccommodations,
@@ -11790,13 +11722,6 @@ var init_headerLooks = __esmMin((() => {
11790
11722
  {
11791
11723
  id: asHeaderLookId("minimal-transparent"),
11792
11724
  label: "Minimal transparent",
11793
- visualTreatment: "minimal-transparent",
11794
- layoutBehavior: "normal-flow",
11795
- configuration: {
11796
- structure: "inline-classic",
11797
- treatment: "minimal-transparent",
11798
- behavior: "normal-flow"
11799
- },
11800
11725
  openingRequirement: "reserved-space-ok",
11801
11726
  logoAccommodations: inlineClassicLogoAccommodations,
11802
11727
  compile: minimalTransparentHeader
@@ -11804,13 +11729,6 @@ var init_headerLooks = __esmMin((() => {
11804
11729
  {
11805
11730
  id: asHeaderLookId("transparent-overlay"),
11806
11731
  label: "Transparent overlay",
11807
- visualTreatment: "transparent-overlay",
11808
- layoutBehavior: "fixed-overlay",
11809
- configuration: {
11810
- structure: "inline-classic",
11811
- treatment: "transparent-overlay",
11812
- behavior: "fixed-overlay"
11813
- },
11814
11732
  openingRequirement: "requires-image-hero-with-contrast-overlay",
11815
11733
  maxRecommendedNavItems: 5,
11816
11734
  logoAccommodations: overlayLogoAccommodations,
@@ -11819,20 +11737,12 @@ var init_headerLooks = __esmMin((() => {
11819
11737
  {
11820
11738
  id: asHeaderLookId("floating-glass"),
11821
11739
  label: "Floating glass",
11822
- visualTreatment: "floating-glass",
11823
- layoutBehavior: "fixed-floating",
11824
- configuration: {
11825
- structure: "floating-shell",
11826
- treatment: "floating-glass",
11827
- behavior: "fixed-floating"
11828
- },
11829
11740
  openingRequirement: "requires-image-hero-with-contrast-overlay",
11830
11741
  maxRecommendedNavItems: 5,
11831
11742
  logoAccommodations: overlayLogoAccommodations,
11832
11743
  compile: floatingGlassHeader
11833
11744
  }
11834
11745
  ]);
11835
- new Set(headerLookCatalog.map((look) => headerConfigurationKey(look.configuration)));
11836
11746
  new Map(headerLookCatalog.map((look) => [look.id, look]));
11837
11747
  }));
11838
11748
  //#endregion
@@ -13369,7 +13279,6 @@ var defaultDesignRuntimeRules, defaultComponentRuntimeRules;
13369
13279
  var init_runtimeCompiler = __esmMin((() => {
13370
13280
  init_schema$2();
13371
13281
  init_styles();
13372
- init_colors();
13373
13282
  init_designState();
13374
13283
  init_sectionTransitions();
13375
13284
  init_tokens();
@@ -15234,7 +15143,7 @@ var init_siteStyleThemeCompiler = __esmMin((() => {
15234
15143
  init_curatedSiteStyles();
15235
15144
  init_runtimeCompiler();
15236
15145
  init_curated();
15237
- init_resolveSelection();
15146
+ init_concretePalette();
15238
15147
  }));
15239
15148
  //#endregion
15240
15149
  //#region ../theme-core/src/site-styles/previewCustomization.ts
@@ -15245,7 +15154,7 @@ var init_previewCompiler = __esmMin((() => {
15245
15154
  init_schema$2();
15246
15155
  init_tokens();
15247
15156
  init_curated();
15248
- init_resolveSelection();
15157
+ init_concretePalette();
15249
15158
  init_curatedSiteStyles();
15250
15159
  init_footerLooks();
15251
15160
  init_compilationPlan();
@@ -15348,6 +15257,7 @@ var init_records = __esmMin((() => {}));
15348
15257
  //#region ../theme-core/src/site-styles/headerOpeningSection.ts
15349
15258
  var init_headerOpeningSection = __esmMin((() => {
15350
15259
  init_headerLooks();
15260
+ init_tokens();
15351
15261
  }));
15352
15262
  //#endregion
15353
15263
  //#region ../theme-core/src/site-styles/generatedDesignPipeline.ts
@@ -15568,8 +15478,11 @@ var init_site_styles = __esmMin((() => {
15568
15478
  init_generatedSchemas();
15569
15479
  init_generatedDesignPipeline();
15570
15480
  init_headerLooks();
15481
+ init_headerInteractionPalette();
15482
+ init_headerOpeningForeground();
15571
15483
  init_headerOpeningSection();
15572
15484
  init_lookResolution();
15485
+ init_lookOptionGroups();
15573
15486
  init_logoBranding();
15574
15487
  init_pageDesignAuthority();
15575
15488
  init_pageDesignEditorErrors();
@@ -15624,6 +15537,17 @@ var init_generateInputCss = __esmMin((() => {
15624
15537
  var init_generateNavLinkCSS = __esmMin((() => {
15625
15538
  init_types$8();
15626
15539
  init_generateEffectsCSS();
15540
+ })), NAV_DROPDOWN_SHIFT_PROPERTY, NAV_DROPDOWN_MAX_WIDTH_CSS;
15541
+ var init_navDropdownSizing = __esmMin((() => {
15542
+ NAV_DROPDOWN_SHIFT_PROPERTY = "--nav-dropdown-shift-x";
15543
+ NAV_DROPDOWN_MAX_WIDTH_CSS = `min(22rem, calc(100vw - 2rem))`;
15544
+ `${NAV_DROPDOWN_MAX_WIDTH_CSS}`, `${NAV_DROPDOWN_SHIFT_PROPERTY}`;
15545
+ }));
15546
+ //#endregion
15547
+ //#region ../theme-core/src/header/surfaceRules.ts
15548
+ var init_surfaceRules = __esmMin((() => {
15549
+ init_shared$5();
15550
+ init_colorStyles();
15627
15551
  })), NAV_LINK_PRESETS;
15628
15552
  var init_presets$1 = __esmMin((() => {
15629
15553
  NAV_LINK_PRESETS = {
@@ -15776,45 +15700,21 @@ var init_presets$1 = __esmMin((() => {
15776
15700
  Object.keys(NAV_LINK_PRESETS);
15777
15701
  }));
15778
15702
  //#endregion
15779
- //#region ../theme-core/src/responsive/breakpoints.ts
15780
- function mqUp(px) {
15781
- return `(min-width: ${px}px)`;
15782
- }
15783
- function mqDown(px) {
15784
- return `(max-width: ${px}px)`;
15785
- }
15786
- function mqBetween(minPx, maxPx) {
15787
- return `${mqUp(minPx)} and ${mqDown(maxPx)}`;
15788
- }
15789
- var BREAKPOINT_LG, BREAKPOINT_XL, BREAKPOINT_LG_DOWN;
15790
- var init_breakpoints = __esmMin((() => {
15791
- BREAKPOINT_LG = 1024;
15792
- BREAKPOINT_XL = 1280;
15793
- BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
15794
- mqUp(640);
15795
- mqUp(768);
15796
- mqUp(BREAKPOINT_LG);
15797
- mqUp(BREAKPOINT_XL);
15798
- mqDown(639);
15799
- mqDown(767);
15800
- mqDown(BREAKPOINT_LG_DOWN);
15801
- mqBetween(640, BREAKPOINT_LG_DOWN);
15802
- mqDown(640);
15803
- mqDown(768);
15804
- })), NAV_DROPDOWN_SHIFT_PROPERTY, NAV_DROPDOWN_MAX_WIDTH_CSS;
15805
- var init_navDropdownSizing = __esmMin((() => {
15806
- NAV_DROPDOWN_SHIFT_PROPERTY = "--nav-dropdown-shift-x";
15807
- NAV_DROPDOWN_MAX_WIDTH_CSS = `min(22rem, calc(100vw - 2rem))`;
15808
- `${NAV_DROPDOWN_MAX_WIDTH_CSS}`, `${NAV_DROPDOWN_SHIFT_PROPERTY}`;
15703
+ //#region ../theme-core/src/header/legacyNavLinkStyle.ts
15704
+ var init_legacyNavLinkStyle = __esmMin((() => {
15705
+ init_presets$1();
15809
15706
  }));
15810
15707
  //#endregion
15811
15708
  //#region ../theme-core/src/header/generateHeaderCss.ts
15812
15709
  var init_generateHeaderCss = __esmMin((() => {
15813
15710
  init_generateNavLinkCSS();
15814
- init_presets$1();
15815
15711
  init_shared$5();
15816
15712
  init_breakpoints();
15817
15713
  init_navDropdownSizing();
15714
+ init_scrollTreatment();
15715
+ init_paintTargets();
15716
+ init_surfaceRules();
15717
+ init_legacyNavLinkStyle();
15818
15718
  }));
15819
15719
  //#endregion
15820
15720
  //#region ../theme-core/src/header/index.ts
@@ -21071,23 +20971,14 @@ var init_heroLayoutControls = __esmMin((() => {
21071
20971
  }));
21072
20972
  //#endregion
21073
20973
  //#region ../blocks/src/system/constants/buttonRoles.ts
21074
- /**
21075
- * Temporary rollout boundary for persisted content written before issue #1220.
21076
- * Authoring remains strict through `blockButtonRoleSchema`; this parser exists
21077
- * only until the post-deploy role rewrite has been audited in production.
21078
- */
21079
- function canonicalizePersistedBlockButtonRole(value) {
21080
- return value === "link" || value === "tertiary" ? "ghost" : value;
21081
- }
21082
20974
  function isBlockButtonRole(value) {
21083
20975
  return blockButtonRoleSchema.safeParse(value).success;
21084
20976
  }
21085
- var BLOCK_BUTTON_ROLES, blockButtonRoleSchema, persistedBlockButtonRoleSchema, BLOCK_BUTTON_ROLE_LABELS, BLOCK_BUTTON_ROLE_OPTIONS;
20977
+ var BLOCK_BUTTON_ROLES, blockButtonRoleSchema, BLOCK_BUTTON_ROLE_LABELS, BLOCK_BUTTON_ROLE_OPTIONS;
21086
20978
  var init_buttonRoles = __esmMin((() => {
21087
20979
  init_buttons();
21088
20980
  BLOCK_BUTTON_ROLES = PUBLIC_BUTTON_ROLES;
21089
20981
  blockButtonRoleSchema = z$1.enum(BLOCK_BUTTON_ROLES);
21090
- persistedBlockButtonRoleSchema = z$1.preprocess((value) => typeof value === "string" ? canonicalizePersistedBlockButtonRole(value) : value, blockButtonRoleSchema);
21091
20982
  BLOCK_BUTTON_ROLE_LABELS = {
21092
20983
  primary: "Primary",
21093
20984
  secondary: "Secondary",
@@ -29688,10 +29579,7 @@ var init_weekly_slot_availability = __esmMin((() => {
29688
29579
  }));
29689
29580
  //#endregion
29690
29581
  //#region ../blocks/src/system/blocks/events/shared/types.ts
29691
- var init_types$3 = __esmMin((() => {}));
29692
- //#endregion
29693
- //#region ../blocks/src/lib/media.ts
29694
- var PUBLIC_DOWNLOAD_MEDIA_TYPES, hotspotSchema, rotationSchema, rectSchema, aspectCropSchema, transformSchema, mediaPosterSchema, mediaBaseSchema, imageMediaSchema, videoMediaSchema, audioMediaSchema, documentMediaSchema, spreadsheetMediaSchema, archiveMediaSchema, mediaSchema;
29582
+ var init_types$3 = __esmMin((() => {})), PUBLIC_DOWNLOAD_MEDIA_TYPES, hotspotSchema, rotationSchema, rectSchema, aspectCropSchema, transformSchema, mediaPosterSchema, mediaBaseSchema, mediaIdentifierSchema, imageMediaSchema, videoMediaSchema, audioMediaSchema, documentMediaSchema, spreadsheetMediaSchema, archiveMediaSchema, mediaSchema, persistableMediaBaseSchema;
29695
29583
  var init_media$1 = __esmMin((() => {
29696
29584
  PUBLIC_DOWNLOAD_MEDIA_TYPES = [
29697
29585
  "document",
@@ -29757,6 +29645,7 @@ var init_media$1 = __esmMin((() => {
29757
29645
  poster: mediaPosterSchema.optional(),
29758
29646
  transform: transformSchema.optional()
29759
29647
  });
29648
+ mediaIdentifierSchema = z.string().trim().min(1).brand();
29760
29649
  imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
29761
29650
  videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
29762
29651
  audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
@@ -29771,6 +29660,15 @@ var init_media$1 = __esmMin((() => {
29771
29660
  spreadsheetMediaSchema,
29772
29661
  archiveMediaSchema
29773
29662
  ]);
29663
+ persistableMediaBaseSchema = mediaBaseSchema.extend({ identifier: mediaIdentifierSchema });
29664
+ z.discriminatedUnion("type", [
29665
+ persistableMediaBaseSchema.extend({ type: z.literal("image") }),
29666
+ persistableMediaBaseSchema.extend({ type: z.literal("video") }),
29667
+ persistableMediaBaseSchema.extend({ type: z.literal("audio") }),
29668
+ persistableMediaBaseSchema.extend({ type: z.literal("document") }),
29669
+ persistableMediaBaseSchema.extend({ type: z.literal("spreadsheet") }),
29670
+ persistableMediaBaseSchema.extend({ type: z.literal("archive") })
29671
+ ]);
29774
29672
  }));
29775
29673
  //#endregion
29776
29674
  //#region ../blocks/src/system/manifest/richTextSchema.ts
@@ -30869,7 +30767,7 @@ var init_contract_schemas = __esmMin((() => {
30869
30767
  init_buttonRoles();
30870
30768
  previewStageSchema = z$1.enum(["preview", "published"]);
30871
30769
  registrationButtonVariantSchema = blockButtonRoleSchema;
30872
- eventButtonVariantSchema = persistedBlockButtonRoleSchema;
30770
+ eventButtonVariantSchema = blockButtonRoleSchema;
30873
30771
  eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
30874
30772
  eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
30875
30773
  eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
@@ -41536,7 +41434,7 @@ var init_data = __esmMin((() => {
41536
41434
  //#region ../blocks/src/index.ts
41537
41435
  var init_src$2 = __esmMin((() => {
41538
41436
  init_subroutes();
41539
- init_schema$3();
41437
+ init_schema$4();
41540
41438
  init_palette();
41541
41439
  init_generateShades();
41542
41440
  init_utils$4();