@riverbankcms/sdk 0.77.1 → 0.78.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 (230) hide show
  1. package/README.md +69 -0
  2. package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-RIKFQ72L.mjs} +4916 -4847
  3. package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-XO7TUWKK.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +154 -154
  6. package/dist/_dts/api/src/accessAdmin.d.ts +5 -0
  7. package/dist/_dts/api/src/billing.d.ts +3 -26
  8. package/dist/_dts/api/src/bookingVerticals.d.ts +4 -0
  9. package/dist/_dts/api/src/content-editor.d.ts +1 -0
  10. package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
  11. package/dist/_dts/api/src/endpoints.d.ts +8 -0
  12. package/dist/_dts/api/src/index.d.ts +14 -2
  13. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
  14. package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
  15. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
  16. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
  17. package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
  18. package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
  19. package/dist/_dts/api/src/navigation.d.ts +12 -0
  20. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
  21. package/dist/_dts/api/src/staffAccess.d.ts +79 -0
  22. package/dist/_dts/api/src/types.d.ts +3 -1
  23. package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
  24. package/dist/_dts/blocks/src/client/site-chrome.d.ts +4 -1
  25. package/dist/_dts/blocks/src/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  27. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  28. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  29. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  30. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  31. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  32. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
  33. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  34. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +21 -21
  36. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  37. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  38. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  39. package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
  40. package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
  41. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
  42. package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
  43. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -29
  44. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
  45. package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
  46. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
  47. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
  48. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  49. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  50. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
  51. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
  53. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
  55. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
  56. package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
  59. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
  63. package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
  65. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  66. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  69. package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
  70. package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
  71. package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
  72. package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
  73. package/dist/_dts/content-editor/src/index.d.ts +5 -0
  74. package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
  75. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  76. package/dist/_dts/content-model/src/index.d.ts +1 -0
  77. package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
  78. package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
  79. package/dist/_dts/core/src/csv-cells.d.ts +10 -0
  80. package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
  81. package/dist/_dts/core/src/csv-escape.d.ts +1 -0
  82. package/dist/_dts/core/src/csv-filename.d.ts +18 -0
  83. package/dist/_dts/core/src/csv-render.d.ts +4 -0
  84. package/dist/_dts/core/src/csv-types.d.ts +116 -0
  85. package/dist/_dts/core/src/currency-format.d.ts +4 -0
  86. package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
  87. package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
  88. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
  89. package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
  90. package/dist/_dts/core/src/duration.d.ts +14 -0
  91. package/dist/_dts/core/src/email-format.d.ts +10 -0
  92. package/dist/_dts/core/src/field-errors.d.ts +1 -0
  93. package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
  94. package/dist/_dts/core/src/index.d.ts +20 -0
  95. package/dist/_dts/core/src/number-input.d.ts +22 -0
  96. package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
  97. package/dist/_dts/core/src/slug.d.ts +39 -0
  98. package/dist/_dts/core/src/string.d.ts +19 -0
  99. package/dist/_dts/core/src/uuid.d.ts +6 -0
  100. package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
  101. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
  102. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
  103. package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
  104. package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
  105. package/dist/_dts/media-core/src/filename.d.ts +1 -0
  106. package/dist/_dts/media-core/src/index.d.ts +10 -0
  107. package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
  108. package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
  109. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
  110. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
  111. package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
  112. package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
  113. package/dist/_dts/path-utils/src/index.d.ts +8 -0
  114. package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
  115. package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
  116. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
  117. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
  118. package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
  119. package/dist/_dts/sdk/src/client/error.d.ts +3 -0
  120. package/dist/_dts/sdk/src/client/index.d.ts +2 -2
  121. package/dist/_dts/sdk/src/client/types.d.ts +37 -19
  122. package/dist/_dts/sdk/src/index.d.ts +2 -2
  123. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
  124. package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
  125. package/dist/_dts/sdk/src/next/index.d.ts +2 -1
  126. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  127. package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
  128. package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
  129. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
  130. package/dist/_dts/sdk/src/version.d.ts +1 -1
  131. package/dist/_dts/site-commands/src/commands.d.ts +12 -12
  132. package/dist/_dts/site-commands/src/index.d.ts +1 -0
  133. package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
  134. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
  135. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
  136. package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
  137. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
  138. package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
  139. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  140. package/dist/_dts/theme-core/src/index.d.ts +3 -1
  141. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
  142. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
  143. package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
  144. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
  145. package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
  146. package/dist/_dts/theme-core/src/schema.d.ts +64 -18
  147. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
  148. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
  149. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
  150. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
  151. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
  152. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  153. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
  154. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
  155. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
  156. package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
  157. package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
  158. package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
  159. package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
  160. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
  161. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
  162. package/dist/{chunk-2SPENC5M.mjs → chunk-F7RTCZYN.mjs} +229 -50
  163. package/dist/{chunk-IENWFSLO.mjs → chunk-NIDXI46P.mjs} +1 -1
  164. package/dist/{chunk-KWJPDZH2.mjs → chunk-OECWLDHN.mjs} +2770 -620
  165. package/dist/{chunk-VX7B5VAC.mjs → chunk-SVMMM2NA.mjs} +8 -0
  166. package/dist/{chunk-6SMUFTXD.mjs → chunk-SXOLGNMX.mjs} +1 -1
  167. package/dist/{chunk-ZYEJLCTN.mjs → chunk-TXDES5P2.mjs} +2 -2
  168. package/dist/cli/index.mjs +1677 -440
  169. package/dist/client/{accordion-RZMQSYLR.mjs → accordion-EVDEOUPR.mjs} +2 -2
  170. package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-DIHBLC64.mjs} +27 -30
  171. package/dist/client/bookings.mjs +3707 -259
  172. package/dist/client/{carousel-LDX47ZIK.mjs → carousel-FEBQHIWI.mjs} +3 -4
  173. package/dist/client/{cart-RGXDS5F4.mjs → cart-7CKSXAE4.mjs} +8 -8
  174. package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WKYCANLV.mjs} +8 -8
  175. package/dist/client/{chunk-JNC7CGHX.mjs → chunk-2SAVKN2M.mjs} +2 -2
  176. package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-36WJCERQ.mjs} +1 -1
  177. package/dist/client/{chunk-R56FQ3RR.mjs → chunk-65F47D7Y.mjs} +280 -71
  178. package/dist/client/{chunk-L3DNHIJX.mjs → chunk-GUK2FPXQ.mjs} +23 -45
  179. package/dist/client/{chunk-PMAIXMAB.mjs → chunk-IVNCUVAV.mjs} +26 -21
  180. package/dist/client/{chunk-II7O4XN3.mjs → chunk-OFMSCGNY.mjs} +2 -2
  181. package/dist/client/chunk-PD6NBCEY.mjs +66 -0
  182. package/dist/client/{chunk-GMVTOKYG.mjs → chunk-RV6FX7UH.mjs} +510 -64
  183. package/dist/client/{chunk-E2TDNXCL.mjs → chunk-RZDWX7QW.mjs} +2 -1
  184. package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
  185. package/dist/client/{chunk-JEZECJ3W.mjs → chunk-VPPMNXCF.mjs} +129 -3
  186. package/dist/client/{chunk-UFSWADAO.mjs → chunk-YDSEG6GZ.mjs} +5 -66
  187. package/dist/client/client.mjs +7070 -4561
  188. package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-5QF2PHKM.mjs} +14 -11
  189. package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-4ZOSETDU.mjs} +9 -9
  190. package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-WQGU7JUX.mjs} +9 -9
  191. package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-AYWVUJ5Y.mjs} +9 -9
  192. package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-NT7C6UT5.mjs} +9 -9
  193. package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-OH24F4ZJ.mjs} +9 -9
  194. package/dist/client/{form-ETFZFATW.mjs → form-7L42SRBB.mjs} +6 -6
  195. package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-OZRZNZ52.mjs} +3 -3
  196. package/dist/client/hooks.mjs +1040 -278
  197. package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-ZBXRPQ7C.mjs} +2 -2
  198. package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-SNAGFF2I.mjs} +3 -3
  199. package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-I46BOFGV.mjs} +8 -8
  200. package/dist/client/{productList-A5RO5WIS.mjs → productList-BOYHTYI6.mjs} +8 -8
  201. package/dist/client/rendering/client.mjs +7090 -2645
  202. package/dist/client/rendering/islands.mjs +19 -19
  203. package/dist/client/rendering.mjs +6089 -3792
  204. package/dist/client/{shop-L4MZH4I2.mjs → shop-XTXPZTKR.mjs} +8 -8
  205. package/dist/preview-next/before-render.mjs +8 -0
  206. package/dist/preview-next/client/runtime.mjs +5 -5
  207. package/dist/preview-next/editor-chrome.css +10 -0
  208. package/dist/preview-next/middleware.mjs +8 -0
  209. package/dist/{sdk-runtime-6UT2S7KZ.mjs → sdk-runtime-ZJLKC6DR.mjs} +6 -6
  210. package/dist/server/components.mjs +2635 -1262
  211. package/dist/server/config-validation.mjs +1271 -509
  212. package/dist/server/config.mjs +1271 -509
  213. package/dist/server/data.mjs +1040 -278
  214. package/dist/server/index.mjs +488 -246
  215. package/dist/server/next.mjs +4087 -2147
  216. package/dist/server/page-converter.mjs +571 -115
  217. package/dist/server/prebuild.mjs +1 -1
  218. package/dist/server/rendering/server.mjs +2636 -1263
  219. package/dist/server/rendering.mjs +2654 -1268
  220. package/dist/server/routing.mjs +1729 -489
  221. package/dist/server/server.mjs +1532 -530
  222. package/dist/server/theme-bridge.mjs +3151 -131
  223. package/dist/server/theme.mjs +10 -1
  224. package/dist/styles/index.css +488 -48
  225. package/package.json +2 -1
  226. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
  227. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
  228. package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
  229. package/dist/client/chunk-OJPZEZU2.mjs +0 -31
  230. package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
@@ -1059,6 +1059,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
1059
1059
  const next = encodeURIComponent(nextBlockId);
1060
1060
  return asDesignBoundaryId(`boundary:${previous}:${next}`);
1061
1061
  }
1062
+ function assertNever(value, message = "Unhandled Theme V2 variant") {
1063
+ throw new Error(`${message}: ${String(value)}`);
1064
+ }
1062
1065
  function brandNonEmptyString(value, label) {
1063
1066
  if (value.length === 0) {
1064
1067
  throw new Error(`${label} must be a non-empty string.`);
@@ -1086,6 +1089,10 @@ var tileTreatmentValues = [
1086
1089
  "quiet",
1087
1090
  "brand-depth"
1088
1091
  ];
1092
+ var eventListTreatmentValues = [
1093
+ "plain",
1094
+ "lined-panel"
1095
+ ];
1089
1096
  var eyebrowTreatmentValues = [
1090
1097
  "plain",
1091
1098
  "pill",
@@ -1143,6 +1150,7 @@ function defineBlockDesignCapability(capability) {
1143
1150
  imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
1144
1151
  testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
1145
1152
  tileTreatments: capability.tileTreatments ?? ["default"],
1153
+ eventListTreatments: capability.eventListTreatments ?? ["plain"],
1146
1154
  eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
1147
1155
  ...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
1148
1156
  ...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
@@ -1167,9 +1175,98 @@ var blockAppearancePresets = [
1167
1175
  transitionAfter: "soft-fade-short",
1168
1176
  emphasis: "high",
1169
1177
  sectionHeight: "hero",
1178
+ heroComposition: "center",
1179
+ heroTypographyScale: "display",
1170
1180
  imageSurfaceTreatment: { kind: "neutral-wash" }
1171
1181
  }
1172
1182
  }),
1183
+ defineBlockAppearancePreset({
1184
+ kind: "block-design",
1185
+ id: "hero-bottom-left-panel",
1186
+ target: "hero",
1187
+ label: "Bottom-left panel hero",
1188
+ blockKinds: ["block.hero"],
1189
+ constraints: {
1190
+ layoutFamilies: ["centered", "compact"]
1191
+ },
1192
+ optionGroups: [
1193
+ {
1194
+ id: "image-surface-treatment",
1195
+ label: "Treatment",
1196
+ selectedOptionId: "neutral-scrim",
1197
+ options: [
1198
+ {
1199
+ id: "neutral-scrim",
1200
+ label: "Neutral scrim",
1201
+ designPatch: {
1202
+ imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
1203
+ }
1204
+ },
1205
+ {
1206
+ id: "brand-scrim-primary",
1207
+ label: "Brand scrim",
1208
+ designPatch: {
1209
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
1210
+ }
1211
+ }
1212
+ ]
1213
+ }
1214
+ ],
1215
+ layoutPatches: [
1216
+ {
1217
+ constraints: {
1218
+ layoutVariantKeys: ["micro"]
1219
+ },
1220
+ designPatch: {
1221
+ sectionHeight: "banner",
1222
+ heroTypographyScale: "editorial"
1223
+ }
1224
+ }
1225
+ ],
1226
+ design: {
1227
+ sectionSurface: "hero-image",
1228
+ contentFrame: panelFrame("raised"),
1229
+ itemSurface: "none",
1230
+ transitionAfter: "soft-fade-short",
1231
+ emphasis: "high",
1232
+ sectionHeight: "immersive",
1233
+ heroComposition: "bottom-left",
1234
+ heroTypographyScale: "display",
1235
+ imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
1236
+ }
1237
+ }),
1238
+ defineBlockAppearancePreset({
1239
+ kind: "block-design",
1240
+ id: "hero-poster-image",
1241
+ target: "hero",
1242
+ label: "Poster image hero",
1243
+ blockKinds: ["block.hero"],
1244
+ constraints: {
1245
+ layoutFamilies: ["centered", "compact"]
1246
+ },
1247
+ layoutPatches: [
1248
+ {
1249
+ constraints: {
1250
+ layoutVariantKeys: ["micro"]
1251
+ },
1252
+ designPatch: {
1253
+ sectionHeight: "banner",
1254
+ heroTypographyScale: "display"
1255
+ }
1256
+ }
1257
+ ],
1258
+ design: {
1259
+ sectionSurface: "hero-image",
1260
+ contentFrame: plainFrame,
1261
+ itemSurface: "none",
1262
+ transitionAfter: "soft-fade-short",
1263
+ emphasis: "high",
1264
+ sectionHeight: "immersive",
1265
+ heroComposition: "center",
1266
+ heroTypographyScale: "poster",
1267
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
1268
+ }
1269
+ }),
1173
1270
  defineBlockAppearancePreset({
1174
1271
  kind: "block-design",
1175
1272
  id: "hero-brand-scrim",
@@ -1219,6 +1316,8 @@ var blockAppearancePresets = [
1219
1316
  transitionAfter: "soft-fade-short",
1220
1317
  emphasis: "high",
1221
1318
  sectionHeight: "immersive",
1319
+ heroComposition: "center",
1320
+ heroTypographyScale: "display",
1222
1321
  imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
1223
1322
  }
1224
1323
  }),
@@ -1271,6 +1370,8 @@ var blockAppearancePresets = [
1271
1370
  transitionAfter: "soft-fade-short",
1272
1371
  emphasis: "high",
1273
1372
  sectionHeight: "immersive",
1373
+ heroComposition: "center",
1374
+ heroTypographyScale: "display",
1274
1375
  imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
1275
1376
  imageSurfaceMotion: "fixed-frame",
1276
1377
  eyebrowTreatment: "accent-pill-bounce"
@@ -1291,6 +1392,8 @@ var blockAppearancePresets = [
1291
1392
  itemSurface: "none",
1292
1393
  transitionAfter: "soft-fade-short",
1293
1394
  emphasis: "high",
1395
+ heroComposition: "center",
1396
+ heroTypographyScale: "editorial",
1294
1397
  eyebrowTreatment: "accent-pill-bounce"
1295
1398
  }
1296
1399
  }),
@@ -1305,7 +1408,82 @@ var blockAppearancePresets = [
1305
1408
  contentFrame: panelFrame("inset"),
1306
1409
  itemSurface: "none",
1307
1410
  transitionAfter: "none",
1308
- emphasis: "high"
1411
+ emphasis: "high",
1412
+ heroComposition: "center",
1413
+ heroTypographyScale: "editorial"
1414
+ }
1415
+ }),
1416
+ defineBlockAppearancePreset({
1417
+ kind: "block-design",
1418
+ id: "hero-split-editorial",
1419
+ target: "hero",
1420
+ label: "Editorial split hero",
1421
+ blockKinds: ["block.hero"],
1422
+ constraints: {
1423
+ layoutFamilies: ["split"]
1424
+ },
1425
+ design: {
1426
+ sectionSurface: "base",
1427
+ contentFrame: plainFrame,
1428
+ itemSurface: "none",
1429
+ transitionAfter: "soft-fade-short",
1430
+ emphasis: "high",
1431
+ heroTypographyScale: "editorial"
1432
+ }
1433
+ }),
1434
+ defineBlockAppearancePreset({
1435
+ kind: "block-design",
1436
+ id: "hero-split-brand",
1437
+ target: "hero",
1438
+ label: "Brand split hero",
1439
+ blockKinds: ["block.hero"],
1440
+ constraints: {
1441
+ layoutFamilies: ["split"]
1442
+ },
1443
+ design: {
1444
+ sectionSurface: "brand-depth-band",
1445
+ contentFrame: plainFrame,
1446
+ itemSurface: "none",
1447
+ transitionAfter: "soft-fade-short",
1448
+ emphasis: "high",
1449
+ heroTypographyScale: "display",
1450
+ eyebrowTreatment: "accent-pill-bounce"
1451
+ }
1452
+ }),
1453
+ defineBlockAppearancePreset({
1454
+ kind: "block-design",
1455
+ id: "hero-split-soft-panel",
1456
+ target: "hero",
1457
+ label: "Soft panel split hero",
1458
+ blockKinds: ["block.hero"],
1459
+ constraints: {
1460
+ layoutFamilies: ["split"]
1461
+ },
1462
+ design: {
1463
+ sectionSurface: "muted-band",
1464
+ contentFrame: panelFrame("raised"),
1465
+ itemSurface: "none",
1466
+ transitionAfter: "soft-fade-short",
1467
+ emphasis: "high",
1468
+ heroTypographyScale: "editorial"
1469
+ }
1470
+ }),
1471
+ defineBlockAppearancePreset({
1472
+ kind: "block-design",
1473
+ id: "hero-split-accent",
1474
+ target: "hero",
1475
+ label: "Accent split hero",
1476
+ blockKinds: ["block.hero"],
1477
+ constraints: {
1478
+ layoutFamilies: ["split"]
1479
+ },
1480
+ design: {
1481
+ sectionSurface: "accent-band",
1482
+ contentFrame: panelFrame("raised"),
1483
+ itemSurface: "none",
1484
+ transitionAfter: "soft-fade-short",
1485
+ emphasis: "high",
1486
+ heroTypographyScale: "display"
1309
1487
  }
1310
1488
  }),
1311
1489
  defineBlockAppearancePreset({
@@ -1338,9 +1516,9 @@ var blockAppearancePresets = [
1338
1516
  }),
1339
1517
  defineBlockAppearancePreset({
1340
1518
  kind: "block-design",
1341
- id: "intro-soft-earth-statement",
1519
+ id: "intro-organic-statement",
1342
1520
  target: "intro",
1343
- label: "Soft Earth intro statement",
1521
+ label: "Organic intro statement",
1344
1522
  blockKinds: ["block.intro"],
1345
1523
  design: {
1346
1524
  sectionSurface: "base",
@@ -1371,9 +1549,9 @@ var blockAppearancePresets = [
1371
1549
  }),
1372
1550
  defineBlockAppearancePreset({
1373
1551
  kind: "block-design",
1374
- id: "feature-cards-soft-earth-offerings",
1552
+ id: "feature-cards-raised-rule",
1375
1553
  target: "feature-cards",
1376
- label: "Soft Earth offering cards",
1554
+ label: "Raised cards with rule",
1377
1555
  blockKinds: ["block.feature-cards"],
1378
1556
  design: {
1379
1557
  sectionSurface: "base",
@@ -1402,6 +1580,21 @@ var blockAppearancePresets = [
1402
1580
  emphasis: "medium"
1403
1581
  }
1404
1582
  }),
1583
+ defineBlockAppearancePreset({
1584
+ kind: "block-design",
1585
+ id: "events-lined-panel",
1586
+ target: "events",
1587
+ label: "Lined event panel",
1588
+ blockKinds: ["block.event-calendar", "block.event-listing"],
1589
+ design: {
1590
+ sectionSurface: "base",
1591
+ contentFrame: plainFrame,
1592
+ itemSurface: "none",
1593
+ transitionAfter: "none",
1594
+ emphasis: "medium",
1595
+ eventListTreatment: "lined-panel"
1596
+ }
1597
+ }),
1405
1598
  defineBlockAppearancePreset({
1406
1599
  kind: "block-design",
1407
1600
  id: "schedule-details-accent-section",
@@ -1461,9 +1654,9 @@ var blockAppearancePresets = [
1461
1654
  }),
1462
1655
  defineBlockAppearancePreset({
1463
1656
  kind: "block-design",
1464
- id: "testimonials-carded-proof",
1657
+ id: "testimonials-simple-cards",
1465
1658
  target: "testimonials",
1466
- label: "Carded social proof",
1659
+ label: "Simple testimonial cards",
1467
1660
  blockKinds: ["block.testimonials"],
1468
1661
  design: {
1469
1662
  sectionSurface: "base",
@@ -1475,9 +1668,9 @@ var blockAppearancePresets = [
1475
1668
  }),
1476
1669
  defineBlockAppearancePreset({
1477
1670
  kind: "block-design",
1478
- id: "testimonials-contained-proof",
1671
+ id: "testimonials-raised-panel",
1479
1672
  target: "testimonials",
1480
- label: "Contained social proof",
1673
+ label: "Raised testimonial panel",
1481
1674
  blockKinds: ["block.testimonials"],
1482
1675
  design: {
1483
1676
  sectionSurface: "muted-band",
@@ -1489,9 +1682,9 @@ var blockAppearancePresets = [
1489
1682
  }),
1490
1683
  defineBlockAppearancePreset({
1491
1684
  kind: "block-design",
1492
- id: "testimonials-dark-proof",
1685
+ id: "testimonials-accent-panel",
1493
1686
  target: "testimonials",
1494
- label: "Dark proof panel",
1687
+ label: "Accent testimonial panel",
1495
1688
  blockKinds: ["block.testimonials"],
1496
1689
  design: {
1497
1690
  sectionSurface: "accent-band",
@@ -1503,9 +1696,9 @@ var blockAppearancePresets = [
1503
1696
  }),
1504
1697
  defineBlockAppearancePreset({
1505
1698
  kind: "block-design",
1506
- id: "testimonials-accent-quote-proof",
1699
+ id: "testimonials-accent-quote-cards",
1507
1700
  target: "testimonials",
1508
- label: "Accent quote proof",
1701
+ label: "Accent quote cards",
1509
1702
  blockKinds: ["block.testimonials"],
1510
1703
  design: {
1511
1704
  sectionSurface: "accent-band",
@@ -1518,9 +1711,9 @@ var blockAppearancePresets = [
1518
1711
  }),
1519
1712
  defineBlockAppearancePreset({
1520
1713
  kind: "block-design",
1521
- id: "testimonials-soft-earth-proof-band",
1714
+ id: "testimonials-brand-background-quotes",
1522
1715
  target: "testimonials",
1523
- label: "Soft Earth proof band",
1716
+ label: "Brand background quotes",
1524
1717
  blockKinds: ["block.testimonials"],
1525
1718
  design: {
1526
1719
  sectionSurface: "brand-depth-band",
@@ -1564,25 +1757,6 @@ var blockAppearancePresets = [
1564
1757
  emphasis: "low"
1565
1758
  }
1566
1759
  }),
1567
- defineBlockAppearancePreset({
1568
- kind: "block-design",
1569
- id: "faq-soft-earth-two-column",
1570
- target: "faq",
1571
- label: "Soft Earth two-column FAQ",
1572
- blockKinds: ["block.faq"],
1573
- design: {
1574
- sectionSurface: "base",
1575
- contentFrame: plainFrame,
1576
- itemSurface: "flat",
1577
- transitionAfter: "none",
1578
- emphasis: "medium",
1579
- accordionIconTreatment: {
1580
- iconSet: "plus",
1581
- colorToken: "primary",
1582
- motion: "swap"
1583
- }
1584
- }
1585
- }),
1586
1760
  defineBlockAppearancePreset({
1587
1761
  kind: "block-design",
1588
1762
  id: "contact-form-panel",
@@ -2948,7 +3122,8 @@ var accordionSystemSchema = z10.object({
2948
3122
  icon: z10.object({
2949
3123
  style: accordionIconSchema,
2950
3124
  position: z10.enum(["left", "right"]),
2951
- size: z10.enum(["sm", "md", "lg"])
3125
+ size: z10.enum(["sm", "md", "lg"]),
3126
+ colorToken: themeColorTokenSchema.optional()
2952
3127
  }),
2953
3128
  // Trigger (question) styling
2954
3129
  trigger: z10.object({
@@ -3082,6 +3257,7 @@ var navLinkPaddingXSchema = z14.enum(["none", "tight", "compact", "default", "re
3082
3257
  var navLinkBorderRadiusSchema = z14.enum(["none", "sm", "md", "full"]);
3083
3258
  var navLinkTextSizeSchema = z14.enum(["xs", "sm", "base", "lg"]);
3084
3259
  var navLinkLetterSpacingSchema = z14.enum(["normal", "wide", "wider", "widest"]);
3260
+ var navLinkContrastTreatmentSchema = z14.enum(["none", "soft-glow"]);
3085
3261
  var navLinkStyleSchema = z14.object({
3086
3262
  /** Display name for the style */
3087
3263
  name: z14.string().min(1).max(30).optional(),
@@ -3093,6 +3269,8 @@ var navLinkStyleSchema = z14.object({
3093
3269
  textSize: navLinkTextSizeSchema.optional(),
3094
3270
  /** Optional letter spacing override */
3095
3271
  letterSpacing: navLinkLetterSpacingSchema.optional(),
3272
+ /** Optional text-only contrast treatment for transparent/overlay navigation */
3273
+ contrastTreatment: navLinkContrastTreatmentSchema.optional(),
3096
3274
  /** Hover/active color token (for color-change effects) */
3097
3275
  hoverColorToken: themeColorTokenSchema.nullable().optional(),
3098
3276
  /** Padding preset */
@@ -3452,6 +3630,7 @@ var sectionStylesOverrideSchema = z19.object({
3452
3630
  spacing: semanticSpacingSchema.nullable().optional(),
3453
3631
  minHeight: z19.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
3454
3632
  tileTreatment: z19.enum(tileTreatmentValues).nullable().optional(),
3633
+ eventListTreatment: z19.enum(eventListTreatmentValues).nullable().optional(),
3455
3634
  eyebrowTreatment: z19.enum(eyebrowTreatmentValues).nullable().optional(),
3456
3635
  headingDecoration: headingDecorationSchema.nullable().optional(),
3457
3636
  // Author-level override consumed by later block/editor rendering phases.
@@ -4285,6 +4464,34 @@ var paletteVariantsById = new Map(
4285
4464
  paletteVariants.map((v) => [v.id, v])
4286
4465
  );
4287
4466
 
4467
+ // ../theme-core/src/accordions/siteStyleDefaults.ts
4468
+ var softEarthAccordionSystem = {
4469
+ background: {
4470
+ type: "solid",
4471
+ colorToken: "background"
4472
+ },
4473
+ spacing: "comfortable",
4474
+ corners: "square",
4475
+ border: null,
4476
+ shadow: null,
4477
+ icon: {
4478
+ style: "plus-minus",
4479
+ position: "right",
4480
+ size: "md",
4481
+ colorToken: "primary"
4482
+ },
4483
+ trigger: {
4484
+ textColorToken: "text",
4485
+ fontWeight: "medium"
4486
+ },
4487
+ hover: {
4488
+ textColorToken: "primary"
4489
+ },
4490
+ content: {
4491
+ textColorToken: "neutral-700"
4492
+ }
4493
+ };
4494
+
4288
4495
  // ../theme-core/src/site-styles/headerLooks.ts
4289
4496
  function asHeaderLookId(value) {
4290
4497
  return value;
@@ -4340,7 +4547,7 @@ var headerLayoutCatalog = [
4340
4547
  description: "Detached header chrome that sits over the opening section.",
4341
4548
  structure: "floating-shell",
4342
4549
  variant: "floating",
4343
- defaultPositioning: "fixed",
4550
+ defaultPositioning: "sticky",
4344
4551
  shrinkOnScroll: true,
4345
4552
  maxRecommendedNavItems: 5,
4346
4553
  allowedLogoShapes: ["none", "text-only", "horizontal"]
@@ -4357,7 +4564,9 @@ var headerStyleCatalog = [
4357
4564
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4358
4565
  navInteraction: "color-change",
4359
4566
  surface: "neutral",
4360
- navTypography: "plain"
4567
+ defaultDepth: "none",
4568
+ navTypography: "plain",
4569
+ moods: ["calm", "professional", "editorial"]
4361
4570
  },
4362
4571
  {
4363
4572
  id: asHeaderStyleId("fine-line"),
@@ -4366,7 +4575,9 @@ var headerStyleCatalog = [
4366
4575
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4367
4576
  navInteraction: "underline-grow",
4368
4577
  surface: "bordered",
4369
- navTypography: "plain"
4578
+ defaultDepth: "line",
4579
+ navTypography: "plain",
4580
+ moods: ["calm", "professional", "editorial"]
4370
4581
  },
4371
4582
  {
4372
4583
  id: asHeaderStyleId("soft-bar"),
@@ -4375,7 +4586,9 @@ var headerStyleCatalog = [
4375
4586
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4376
4587
  navInteraction: "pill-background",
4377
4588
  surface: "soft",
4378
- navTypography: "plain"
4589
+ defaultDepth: "line",
4590
+ navTypography: "plain",
4591
+ moods: ["calm", "professional"]
4379
4592
  },
4380
4593
  {
4381
4594
  id: asHeaderStyleId("pill-nav"),
@@ -4384,7 +4597,9 @@ var headerStyleCatalog = [
4384
4597
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4385
4598
  navInteraction: "pill-background",
4386
4599
  surface: "soft",
4387
- navTypography: "plain"
4600
+ defaultDepth: "none",
4601
+ navTypography: "plain",
4602
+ moods: ["calm"]
4388
4603
  },
4389
4604
  {
4390
4605
  id: asHeaderStyleId("brand-bar"),
@@ -4393,7 +4608,9 @@ var headerStyleCatalog = [
4393
4608
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4394
4609
  navInteraction: "color-change",
4395
4610
  surface: "brand-solid",
4396
- navTypography: "brand-caps"
4611
+ defaultDepth: "none",
4612
+ navTypography: "brand-caps",
4613
+ moods: ["professional", "expressive", "utility"]
4397
4614
  },
4398
4615
  {
4399
4616
  id: asHeaderStyleId("brand-underline"),
@@ -4402,7 +4619,9 @@ var headerStyleCatalog = [
4402
4619
  supportedLayoutIds: supportedLayouts(["classic"]),
4403
4620
  navInteraction: "underline-grow",
4404
4621
  surface: "brand-solid",
4405
- navTypography: "brand-caps"
4622
+ defaultDepth: "none",
4623
+ navTypography: "brand-caps",
4624
+ moods: ["expressive"]
4406
4625
  },
4407
4626
  {
4408
4627
  id: asHeaderStyleId("brand-pill"),
@@ -4411,7 +4630,9 @@ var headerStyleCatalog = [
4411
4630
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
4412
4631
  navInteraction: "pill-background",
4413
4632
  surface: "brand-solid",
4414
- navTypography: "brand-caps"
4633
+ defaultDepth: "none",
4634
+ navTypography: "brand-caps",
4635
+ moods: ["expressive"]
4415
4636
  },
4416
4637
  {
4417
4638
  id: asHeaderStyleId("serif-line"),
@@ -4420,7 +4641,9 @@ var headerStyleCatalog = [
4420
4641
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4421
4642
  navInteraction: "underline-grow",
4422
4643
  surface: "bordered",
4423
- navTypography: "heading"
4644
+ defaultDepth: "line",
4645
+ navTypography: "heading",
4646
+ moods: ["editorial", "calm"]
4424
4647
  },
4425
4648
  {
4426
4649
  id: asHeaderStyleId("flat-tabs"),
@@ -4429,16 +4652,20 @@ var headerStyleCatalog = [
4429
4652
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4430
4653
  navInteraction: "flat-block",
4431
4654
  surface: "bordered",
4432
- navTypography: "quiet-caps"
4655
+ defaultDepth: "shadow",
4656
+ navTypography: "quiet-caps",
4657
+ moods: ["professional", "utility", "expressive"]
4433
4658
  },
4434
4659
  {
4435
4660
  id: asHeaderStyleId("glass"),
4436
4661
  label: "Glass",
4437
4662
  description: "Translucent chrome with frosted navigation backing.",
4438
- supportedLayoutIds: supportedLayouts(["classic", "floating"]),
4663
+ supportedLayoutIds: supportedLayouts(["floating"]),
4439
4664
  navInteraction: "glass-backed",
4440
4665
  surface: "floating",
4441
- navTypography: "plain"
4666
+ defaultDepth: "shadow",
4667
+ navTypography: "plain",
4668
+ moods: ["expressive", "calm"]
4442
4669
  },
4443
4670
  {
4444
4671
  id: asHeaderStyleId("minimal-surface"),
@@ -4447,7 +4674,9 @@ var headerStyleCatalog = [
4447
4674
  supportedLayoutIds: supportedLayouts(["floating"]),
4448
4675
  navInteraction: "color-change",
4449
4676
  surface: "floating",
4450
- navTypography: "plain"
4677
+ defaultDepth: "none",
4678
+ navTypography: "plain",
4679
+ moods: ["editorial", "calm"]
4451
4680
  },
4452
4681
  {
4453
4682
  id: asHeaderStyleId("soft-shell"),
@@ -4456,7 +4685,9 @@ var headerStyleCatalog = [
4456
4685
  supportedLayoutIds: supportedLayouts(["floating"]),
4457
4686
  navInteraction: "pill-background",
4458
4687
  surface: "floating",
4459
- navTypography: "plain"
4688
+ defaultDepth: "shadow",
4689
+ navTypography: "plain",
4690
+ moods: ["calm", "professional"]
4460
4691
  },
4461
4692
  {
4462
4693
  id: asHeaderStyleId("split-glass"),
@@ -4465,7 +4696,9 @@ var headerStyleCatalog = [
4465
4696
  supportedLayoutIds: supportedLayouts(["floating"]),
4466
4697
  navInteraction: "glass-backed",
4467
4698
  surface: "floating",
4468
- navTypography: "quiet-caps"
4699
+ defaultDepth: "shadow",
4700
+ navTypography: "quiet-caps",
4701
+ moods: ["expressive"]
4469
4702
  },
4470
4703
  {
4471
4704
  id: asHeaderStyleId("split-pill"),
@@ -4474,7 +4707,9 @@ var headerStyleCatalog = [
4474
4707
  supportedLayoutIds: supportedLayouts(["floating"]),
4475
4708
  navInteraction: "pill-background",
4476
4709
  surface: "floating",
4477
- navTypography: "heading"
4710
+ defaultDepth: "shadow",
4711
+ navTypography: "heading",
4712
+ moods: ["calm", "editorial"]
4478
4713
  }
4479
4714
  ];
4480
4715
  var headerLayoutsById = new Map(
@@ -4488,7 +4723,6 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
4488
4723
  asHeaderLayoutId("classic"),
4489
4724
  headerStyleRepairChain([
4490
4725
  "minimal",
4491
- "glass",
4492
4726
  "fine-line",
4493
4727
  "soft-bar",
4494
4728
  "pill-nav",
@@ -4555,7 +4789,13 @@ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
4555
4789
  ],
4556
4790
  [
4557
4791
  asHeaderStyleId("glass"),
4558
- headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
4792
+ headerStyleRepairChain([
4793
+ "glass",
4794
+ "soft-shell",
4795
+ "fine-line",
4796
+ "minimal-surface",
4797
+ "minimal"
4798
+ ])
4559
4799
  ],
4560
4800
  [
4561
4801
  asHeaderStyleId("soft-shell"),
@@ -4667,6 +4907,23 @@ function getCompatibleHeaderStyleIds(layoutId) {
4667
4907
  }
4668
4908
  );
4669
4909
  }
4910
+ function themedHeaderShadow(theme) {
4911
+ switch (theme.shadow.elevation) {
4912
+ case "none":
4913
+ return void 0;
4914
+ case "low":
4915
+ return { elevation: "sm" };
4916
+ case "medium":
4917
+ return { elevation: "md" };
4918
+ case "high":
4919
+ return { elevation: "lg" };
4920
+ default:
4921
+ return assertNever(
4922
+ theme.shadow.elevation,
4923
+ "Unhandled theme shadow elevation"
4924
+ );
4925
+ }
4926
+ }
4670
4927
  function solidBrandHeader(theme) {
4671
4928
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
4672
4929
  return {
@@ -4816,9 +5073,7 @@ function practicalUtilityHeader(theme) {
4816
5073
  navColor: "text",
4817
5074
  navStyle: "solid",
4818
5075
  navWeight: "semibold",
4819
- shadow: {
4820
- elevation: "sm"
4821
- },
5076
+ shadow: themedHeaderShadow(theme),
4822
5077
  border: {
4823
5078
  style: "solid",
4824
5079
  width: "thin",
@@ -4887,6 +5142,7 @@ function floatingGlassHeader(theme) {
4887
5142
  return {
4888
5143
  ...transparentOverlayHeader(theme),
4889
5144
  variant: "floating",
5145
+ positioning: "sticky",
4890
5146
  navStyle: "frosted",
4891
5147
  navContainer: {
4892
5148
  type: "glass",
@@ -5402,7 +5658,7 @@ var typographyPresets = [
5402
5658
  heroTypography: {
5403
5659
  headlineSize: "6xl",
5404
5660
  headlineLineHeight: "tight",
5405
- subheadlineSize: "editorial",
5661
+ subheadlineSize: "2xl",
5406
5662
  subheadlineLineHeight: "normal",
5407
5663
  microHeadlineSize: "6xl",
5408
5664
  microHeadlineLineHeight: "tight",
@@ -5420,6 +5676,8 @@ var typographyPresetsById = new Map(
5420
5676
  );
5421
5677
 
5422
5678
  // ../theme-core/src/site-styles/curatedSiteStyles.ts
5679
+ var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
5680
+ var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
5423
5681
  var curatedSiteStyleIdValues = [
5424
5682
  "site-style:calm-studio",
5425
5683
  "site-style:clear-professional",
@@ -5431,7 +5689,7 @@ var curatedSiteStyleIdValues = [
5431
5689
  "site-style:personal-retreat-journal",
5432
5690
  "site-style:tactile-workshop",
5433
5691
  "site-style:modern-wellness",
5434
- "site-style:soft-earth",
5692
+ SOFT_EARTH_SITE_STYLE_ID_VALUE,
5435
5693
  "site-style:bold-launch",
5436
5694
  "site-style:south-west-twerk-school"
5437
5695
  ];
@@ -5513,7 +5771,10 @@ function uniqueContentFrameKinds() {
5513
5771
  var generatedContentFrameKinds = uniqueContentFrameKinds();
5514
5772
  function defineCuratedSiteStyle(input) {
5515
5773
  const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
5516
- const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
5774
+ const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
5775
+ legacyHeaderLookIds,
5776
+ input.tokenRecipes
5777
+ );
5517
5778
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
5518
5779
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
5519
5780
  if (!typographyPresetChoices.some(
@@ -5546,6 +5807,7 @@ function defineCuratedSiteStyle(input) {
5546
5807
  supportedTransitions: generatedDesignOptionCatalog.transitions
5547
5808
  },
5548
5809
  ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
5810
+ ...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
5549
5811
  recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
5550
5812
  defaultHeaderSelection: input.defaultHeaderSelection ? {
5551
5813
  layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
@@ -5604,7 +5866,69 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
5604
5866
  };
5605
5867
  return [first, ...choices.slice(1)];
5606
5868
  }
5607
- function inferHeaderCurationFromLegacyLooks(lookIds) {
5869
+ function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
5870
+ const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
5871
+ const seen = /* @__PURE__ */ new Set();
5872
+ const unique = choices.filter((choice) => {
5873
+ if (!compatible.has(choice.id)) return false;
5874
+ if (seen.has(choice.id)) return false;
5875
+ seen.add(choice.id);
5876
+ return true;
5877
+ });
5878
+ return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
5879
+ }
5880
+ function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
5881
+ switch (layoutId) {
5882
+ case "classic":
5883
+ if (isExpressiveRecipe(recipes)) {
5884
+ return [
5885
+ "brand-bar",
5886
+ "brand-underline",
5887
+ "flat-tabs",
5888
+ "brand-pill",
5889
+ "fine-line"
5890
+ ];
5891
+ }
5892
+ if (recipes.spacing === "compact") {
5893
+ return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
5894
+ }
5895
+ if (isSerifTypographyRecipe(recipes)) {
5896
+ return ["serif-line", "fine-line", "minimal", "soft-bar"];
5897
+ }
5898
+ if (recipes.radius === "rounded" || recipes.radius === "pill") {
5899
+ return ["soft-bar", "pill-nav", "fine-line", "minimal"];
5900
+ }
5901
+ return ["fine-line", "minimal", "soft-bar", "brand-bar"];
5902
+ case "centered":
5903
+ if (isSerifTypographyRecipe(recipes)) {
5904
+ return ["serif-line", "fine-line", "minimal", "soft-bar"];
5905
+ }
5906
+ if (isExpressiveRecipe(recipes)) {
5907
+ return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
5908
+ }
5909
+ if (recipes.radius === "rounded" || recipes.radius === "pill") {
5910
+ return ["soft-bar", "pill-nav", "fine-line", "minimal"];
5911
+ }
5912
+ return ["minimal", "fine-line", "soft-bar"];
5913
+ case "floating":
5914
+ if (isExpressiveRecipe(recipes)) {
5915
+ return ["glass", "split-glass", "brand-pill", "soft-shell"];
5916
+ }
5917
+ if (isSerifTypographyRecipe(recipes)) {
5918
+ return ["split-pill", "minimal-surface", "soft-shell"];
5919
+ }
5920
+ return ["soft-shell", "minimal-surface", "glass"];
5921
+ default:
5922
+ return [];
5923
+ }
5924
+ }
5925
+ function isExpressiveRecipe(recipes) {
5926
+ return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
5927
+ }
5928
+ function isSerifTypographyRecipe(recipes) {
5929
+ return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
5930
+ }
5931
+ function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
5608
5932
  const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
5609
5933
  (selection) => Boolean(selection)
5610
5934
  );
@@ -5617,8 +5941,15 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
5617
5941
  );
5618
5942
  const stylesByLayout = {};
5619
5943
  for (const layoutChoice of layoutChoices) {
5620
- const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
5621
- stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = nonEmptyHeaderStyleChoices(styleChoices, layoutChoice.id);
5944
+ const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
5945
+ const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
5946
+ layoutChoice.id,
5947
+ recipes
5948
+ ).map((styleId) => headerStyleChoice(styleId));
5949
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
5950
+ [...legacyStyleChoices, ...inferredStyleChoices],
5951
+ layoutChoice.id
5952
+ );
5622
5953
  }
5623
5954
  return {
5624
5955
  defaultHeaderSelection,
@@ -6038,10 +6369,10 @@ var curatedSiteStyles = [
6038
6369
  ]
6039
6370
  }),
6040
6371
  defineCuratedSiteStyle({
6041
- id: "site-style:soft-earth",
6372
+ id: SOFT_EARTH_SITE_STYLE_ID,
6042
6373
  name: "Soft Earth",
6043
6374
  description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
6044
- generationBrief: "Use cream space, terracotta CTAs, olive proof bands, natural imagery, generous but composed spacing, and editorial serif headings. Prefer a real intro section, image-led offering cards, warm community proof, and a simple two-column FAQ when content allows.",
6375
+ generationBrief: "Use cream space, terracotta CTAs, olive quote bands, natural imagery, generous but composed spacing, and editorial serif headings. Prefer a real intro section, image-led offering cards, warm community quotes, and an FAQ with a full-width intro above two columns of questions when content allows.",
6045
6376
  siteCreatorSelection: {
6046
6377
  kind: "site_creator_keyword_heuristic",
6047
6378
  priority: 45
@@ -6111,14 +6442,18 @@ var curatedSiteStyles = [
6111
6442
  paragraphSize: "default",
6112
6443
  headingSize: "editorial"
6113
6444
  }
6114
- }
6445
+ },
6446
+ accordions: softEarthAccordionSystem
6447
+ },
6448
+ defaultBlockVariants: {
6449
+ "block.faq": "question-columns"
6115
6450
  },
6116
6451
  recommendedAppearancePresetIds: [
6117
6452
  "hero-brand-scrim",
6118
- "intro-soft-earth-statement",
6119
- "feature-cards-soft-earth-offerings",
6120
- "testimonials-soft-earth-proof-band",
6121
- "faq-soft-earth-two-column",
6453
+ "intro-organic-statement",
6454
+ "feature-cards-raised-rule",
6455
+ "events-lined-panel",
6456
+ "testimonials-brand-background-quotes",
6122
6457
  "contact-form-panel"
6123
6458
  ],
6124
6459
  recommendedHeaderLookIds: [
@@ -6222,7 +6557,7 @@ var curatedSiteStyles = [
6222
6557
  "hero-brand-scrim-fixed-frame",
6223
6558
  "body-text-editorial-intro",
6224
6559
  "schedule-details-brand-depth",
6225
- "testimonials-accent-quote-proof",
6560
+ "testimonials-accent-quote-cards",
6226
6561
  "contact-form-brand-depth-card"
6227
6562
  ],
6228
6563
  recommendedHeaderLookIds: [
@@ -6317,6 +6652,7 @@ var themeV2RuntimeStyleFieldNames = [
6317
6652
  ];
6318
6653
  var themeV2BlockSpecificRawStyleFieldNames = [
6319
6654
  "_contentCardStyles",
6655
+ "_heroLayoutStyles",
6320
6656
  "_textCardStyles"
6321
6657
  ];
6322
6658
  var themeV2NormalEditorRawStyleFieldNames = [
@@ -6326,6 +6662,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
6326
6662
  var themeV2NormalEditorRawStyleFieldNameSet = new Set(
6327
6663
  themeV2NormalEditorRawStyleFieldNames
6328
6664
  );
6665
+ var themeV2CompilerOwnedFieldNames = [
6666
+ ...themeV2RuntimeStyleFieldNames,
6667
+ ...themeV2BlockSpecificRawStyleFieldNames
6668
+ ];
6329
6669
 
6330
6670
  // ../theme-core/src/site-styles/designState.ts
6331
6671
  var themeV2DesignStateSchemaVersion = 1;
@@ -6340,6 +6680,16 @@ var heroLegibilityStrategySchema = z21.enum([
6340
6680
  "scrim-gradient",
6341
6681
  "solid-panel"
6342
6682
  ]);
6683
+ var heroCompositionIntentSchema = z21.enum([
6684
+ "center",
6685
+ "bottom-left"
6686
+ ]);
6687
+ var heroTypographyScaleIntentSchema = z21.enum([
6688
+ "quiet",
6689
+ "editorial",
6690
+ "display",
6691
+ "poster"
6692
+ ]);
6343
6693
  var sectionHeightIntentSchema = z21.enum([
6344
6694
  "default",
6345
6695
  "banner",
@@ -6375,6 +6725,7 @@ var imageSurfaceTreatmentSchema = z21.discriminatedUnion("kind", [
6375
6725
  ]);
6376
6726
  var testimonialCardTreatmentSchema = z21.enum(["default", "accent-quote"]);
6377
6727
  var tileTreatmentSchema = z21.enum(tileTreatmentValues);
6728
+ var eventListTreatmentSchema = z21.enum(eventListTreatmentValues);
6378
6729
  var eyebrowTreatmentSchema = z21.enum(eyebrowTreatmentValues);
6379
6730
  function uniqueNonEmpty(values) {
6380
6731
  const uniqueValues = [...new Set(values)];
@@ -6416,10 +6767,13 @@ var blockDesignPlanSchema = z21.object({
6416
6767
  emphasis: z21.enum(userDesignOptionCatalog.emphases),
6417
6768
  sectionHeight: sectionHeightIntentSchema.optional(),
6418
6769
  heroLegibility: heroLegibilityStrategySchema.optional(),
6770
+ heroComposition: heroCompositionIntentSchema.optional(),
6771
+ heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
6419
6772
  imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
6420
6773
  imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
6421
6774
  testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
6422
6775
  tileTreatment: tileTreatmentSchema.optional(),
6776
+ eventListTreatment: eventListTreatmentSchema.optional(),
6423
6777
  eyebrowTreatment: eyebrowTreatmentSchema.optional()
6424
6778
  }).strict();
6425
6779
  var styleAuthoritySchema = z21.discriminatedUnion("kind", [
@@ -7739,6 +8093,7 @@ function styledSection(config) {
7739
8093
  renderBackgroundImage = true,
7740
8094
  backgroundImageLoading,
7741
8095
  backgroundImageFetchPriority,
8096
+ allowOverflow = false,
7742
8097
  fullWidthPath
7743
8098
  } = config;
7744
8099
  const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
@@ -7773,7 +8128,7 @@ function styledSection(config) {
7773
8128
  // No fallback needed - transform handles all cases via defaultSpacing
7774
8129
  }
7775
8130
  },
7776
- allowOverflow: {
8131
+ allowOverflow: allowOverflow ? true : {
7777
8132
  $bind: {
7778
8133
  from: `${bindFrom}.background`,
7779
8134
  transforms: [{ id: "background.resolveAllowOverflow" }],
@@ -8234,6 +8589,7 @@ function footerNav(opts) {
8234
8589
 
8235
8590
  // ../blocks/src/system/transforms/registry/boxStyles.ts
8236
8591
  var tileTreatmentSet = new Set(tileTreatmentValues);
8592
+ var eventListTreatmentSet = new Set(eventListTreatmentValues);
8237
8593
  var GAP_VALUE_MAP = {
8238
8594
  none: "0",
8239
8595
  compact: "calc(1rem * var(--space-mult, 1))",
@@ -8494,6 +8850,35 @@ function sectionState(opts) {
8494
8850
  );
8495
8851
  }
8496
8852
 
8853
+ // ../blocks/src/system/node/fragments/headingDecoration.ts
8854
+ var defaultBindFrom = "_sectionStyles.headingDecoration";
8855
+ function headingDecoration({
8856
+ bindFrom = defaultBindFrom,
8857
+ family,
8858
+ placement,
8859
+ className
8860
+ }) {
8861
+ return el(
8862
+ "div",
8863
+ {
8864
+ "aria-hidden": "true",
8865
+ className: {
8866
+ $bind: {
8867
+ from: bindFrom,
8868
+ transforms: [
8869
+ {
8870
+ id: "ui.headingDecorationClassName",
8871
+ options: { baseClass: className, family }
8872
+ }
8873
+ ]
8874
+ }
8875
+ }
8876
+ },
8877
+ null,
8878
+ when(`${bindFrom}.placement`, { equals: placement })
8879
+ );
8880
+ }
8881
+
8497
8882
  // ../blocks/src/system/fragments/types.ts
8498
8883
  import { z as z25 } from "zod";
8499
8884
  var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
@@ -9272,6 +9657,10 @@ var testimonialsHeadingFragment = defineFragment({
9272
9657
  when("content.heading"),
9273
9658
  bind("content.heading")
9274
9659
  ),
9660
+ headingDecoration({
9661
+ family: "short-center-rule",
9662
+ placement: "under-centered-heading"
9663
+ }),
9275
9664
  text(
9276
9665
  {
9277
9666
  as: "p",
@@ -9943,6 +10332,41 @@ var faqHeadingFragment = defineFragment({
9943
10332
  });
9944
10333
 
9945
10334
  // ../blocks/src/system/fragments/library/faqAccordion.ts
10335
+ function createFaqAccordionLayout(options = {}) {
10336
+ return accordionList({
10337
+ collection: "content.items",
10338
+ itemName: "faqItem",
10339
+ indexName: "faqIndex",
10340
+ accordionProps: {
10341
+ className: options.rootClassName ?? "accordion-root",
10342
+ type: "single",
10343
+ collapsible: true
10344
+ },
10345
+ itemProps: {
10346
+ className: {
10347
+ $bind: {
10348
+ from: "content._cardStyles",
10349
+ transforms: [
10350
+ {
10351
+ id: "boxStyles.all",
10352
+ options: {
10353
+ axis: "all",
10354
+ includeSpacing: false,
10355
+ baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
10356
+ }
10357
+ }
10358
+ ]
10359
+ },
10360
+ fallback: "rb-faq-item"
10361
+ },
10362
+ iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
10363
+ // Legacy theme accordion style
10364
+ iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
10365
+ },
10366
+ triggerFrom: "faqItem.question",
10367
+ contentFrom: "faqItem.answer"
10368
+ });
10369
+ }
9946
10370
  var faqAccordionFragment = defineFragment({
9947
10371
  id: "faqAccordion",
9948
10372
  title: "FAQ Accordion",
@@ -9976,40 +10400,7 @@ var faqAccordionFragment = defineFragment({
9976
10400
  }
9977
10401
  }
9978
10402
  ],
9979
- layout: accordionList({
9980
- collection: "content.items",
9981
- itemName: "faqItem",
9982
- indexName: "faqIndex",
9983
- accordionProps: {
9984
- className: "accordion-root",
9985
- // CSS-first: all styling handled by theme CSS
9986
- type: "single",
9987
- collapsible: true
9988
- },
9989
- itemProps: {
9990
- className: {
9991
- $bind: {
9992
- from: "content._cardStyles",
9993
- transforms: [
9994
- {
9995
- id: "boxStyles.all",
9996
- options: {
9997
- axis: "all",
9998
- includeSpacing: false,
9999
- baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
10000
- }
10001
- }
10002
- ]
10003
- },
10004
- fallback: "rb-faq-item"
10005
- },
10006
- iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
10007
- // Legacy theme accordion style
10008
- iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
10009
- },
10010
- triggerFrom: "faqItem.question",
10011
- contentFrom: "faqItem.answer"
10012
- })
10403
+ layout: createFaqAccordionLayout()
10013
10404
  });
10014
10405
 
10015
10406
  // ../blocks/src/system/fragments/library/card.ts
@@ -11062,6 +11453,7 @@ var microLayout = styledSection({
11062
11453
  function splitLayoutWith(children) {
11063
11454
  return styledSection({
11064
11455
  children: styledContainer({
11456
+ baseClassName: "rb-relative rb-isolate rb-overflow-visible",
11065
11457
  children: {
11066
11458
  type: "grid",
11067
11459
  props: {
@@ -11086,6 +11478,7 @@ function splitLayoutWith(children) {
11086
11478
  // The split variants render the image as a real grid column, so suppress
11087
11479
  // the default absolute background image layer while keeping color/overlay.
11088
11480
  renderBackgroundImage: false,
11481
+ allowOverflow: true,
11089
11482
  baseClass: ""
11090
11483
  });
11091
11484
  }
@@ -11239,6 +11632,21 @@ function introHeading(className) {
11239
11632
  bind("content.title")
11240
11633
  );
11241
11634
  }
11635
+ function introHeadingGroup(className) {
11636
+ return stack(
11637
+ {
11638
+ gap: "sm",
11639
+ className: "rb-intro-heading-group"
11640
+ },
11641
+ [
11642
+ introHeading(className),
11643
+ headingDecoration({
11644
+ family: "organic-squiggle",
11645
+ placement: "after-heading"
11646
+ })
11647
+ ]
11648
+ );
11649
+ }
11242
11650
  function introBody(className = "rb-prose rb-max-w-none") {
11243
11651
  return richText({ className }, bind("content.body"));
11244
11652
  }
@@ -11257,6 +11665,10 @@ function introCopyStack(options = {}) {
11257
11665
  },
11258
11666
  [
11259
11667
  introHeading(options.headingClassName ?? "rb-intro-title"),
11668
+ headingDecoration({
11669
+ family: "organic-squiggle",
11670
+ placement: "after-heading"
11671
+ }),
11260
11672
  introBody(options.bodyClassName),
11261
11673
  introCtas(options.ctaJustify)
11262
11674
  ]
@@ -11296,7 +11708,7 @@ var statementCopyLayout = styledSection({
11296
11708
  className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
11297
11709
  },
11298
11710
  [
11299
- introHeading("rb-intro-title rb-max-w-xl"),
11711
+ introHeadingGroup("rb-intro-title rb-max-w-xl"),
11300
11712
  stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
11301
11713
  introBody(),
11302
11714
  introCtas("start")
@@ -11317,7 +11729,7 @@ var statementMediaLayout = styledSection({
11317
11729
  className: "rb-intro rb-intro-statement-media rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-3 rb-lg-items-center"
11318
11730
  },
11319
11731
  [
11320
- introHeading("rb-intro-title rb-max-w-xl"),
11732
+ introHeadingGroup("rb-intro-title rb-max-w-xl"),
11321
11733
  stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
11322
11734
  introBody(),
11323
11735
  introCtas("start")
@@ -12319,6 +12731,9 @@ function isNodeDefinitionArray(layout) {
12319
12731
  }
12320
12732
  var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
12321
12733
  var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
12734
+ var questionColumnsAccordionLayout = createFaqAccordionLayout({
12735
+ rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
12736
+ });
12322
12737
  var defaultLayout = styledSection({
12323
12738
  children: styledContainer({
12324
12739
  baseClassName: "rb-relative rb-isolate",
@@ -12332,11 +12747,24 @@ var twoColumnLayout = styledSection({
12332
12747
  children: el(
12333
12748
  "div",
12334
12749
  {
12335
- className: "rb-faq-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
12750
+ className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
12336
12751
  },
12337
12752
  [
12338
- el("div", { className: "rb-faq-two-column-heading" }, [headingLayout]),
12339
- el("div", { className: "rb-faq-two-column-accordion" }, [accordionLayout])
12753
+ el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
12754
+ el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
12755
+ ]
12756
+ )
12757
+ }),
12758
+ baseClass: ""
12759
+ });
12760
+ var questionColumnsLayout = styledSection({
12761
+ children: styledContainer({
12762
+ baseClassName: "rb-relative rb-isolate",
12763
+ children: stack(
12764
+ { gap: "xl", className: "rb-w-full" },
12765
+ [
12766
+ headingLayout,
12767
+ questionColumnsAccordionLayout
12340
12768
  ]
12341
12769
  )
12342
12770
  }),
@@ -12361,7 +12789,8 @@ var faqManifest = createBlockManifest({
12361
12789
  layout: defaultLayout,
12362
12790
  variants: {
12363
12791
  default: defaultLayout,
12364
- "two-column": twoColumnLayout
12792
+ "two-column": twoColumnLayout,
12793
+ "question-columns": questionColumnsLayout
12365
12794
  },
12366
12795
  defaultVariant: "default",
12367
12796
  variantOptions: {
@@ -12372,6 +12801,10 @@ var faqManifest = createBlockManifest({
12372
12801
  "two-column": {
12373
12802
  label: "Two column",
12374
12803
  description: "A left heading column with FAQ items on the right."
12804
+ },
12805
+ "question-columns": {
12806
+ label: "Question columns",
12807
+ description: "A full-width heading above FAQ items split into two columns."
12375
12808
  }
12376
12809
  },
12377
12810
  description: "Accordion of frequently asked questions and answers.",
@@ -12422,6 +12855,10 @@ function desktopOnlyDisplay(display) {
12422
12855
  return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
12423
12856
  }
12424
12857
 
12858
+ // ../theme-core/src/siteChromeOverlayClearance.ts
12859
+ var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
12860
+ var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
12861
+
12425
12862
  // ../blocks/src/system/blocks/site-header.ts
12426
12863
  var logoRow = link(
12427
12864
  {
@@ -12694,6 +13131,7 @@ var transparentLayout = inline(
12694
13131
  );
12695
13132
  var floatingLayout = inline(
12696
13133
  {
13134
+ [SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
12697
13135
  className: bindProp("$root.theme.header.maxWidth", {
12698
13136
  transforms: pipe(
12699
13137
  tx("layout.maxWidthClass", {
@@ -13639,6 +14077,10 @@ var sectionHeading = stack(
13639
14077
  when("content.title"),
13640
14078
  bind("content.title")
13641
14079
  ),
14080
+ headingDecoration({
14081
+ family: "short-center-rule",
14082
+ placement: "under-centered-heading"
14083
+ }),
13642
14084
  richText(
13643
14085
  {
13644
14086
  className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
@@ -16062,7 +16504,7 @@ var COLUMN_CLASSES = {
16062
16504
  };
16063
16505
  function getContainerClass(layout, columns) {
16064
16506
  if (layout === "compact") {
16065
- return "event-listing-compact-container rb-flex rb-flex-col rb-gap-2";
16507
+ return "event-listing-compact-container rb-flex rb-flex-col";
16066
16508
  }
16067
16509
  if (layout === "stack") {
16068
16510
  return "rb-flex rb-flex-col rb-gap-6";
@@ -18814,6 +19256,7 @@ import { z as z46 } from "zod";
18814
19256
  var storedProductCartItemSchema = z46.object({
18815
19257
  kind: z46.literal("product"),
18816
19258
  productId: z46.string().min(1),
19259
+ productCategoryId: z46.string().min(1).optional().nullable(),
18817
19260
  variantId: z46.string().min(1).optional().nullable(),
18818
19261
  title: z46.string().min(1),
18819
19262
  variantTitle: z46.string().optional().nullable(),
@@ -21318,6 +21761,10 @@ var scheduleTileTreatments = [
21318
21761
  "quiet",
21319
21762
  "brand-depth"
21320
21763
  ];
21764
+ var eventListTreatments = [
21765
+ "plain",
21766
+ "lined-panel"
21767
+ ];
21321
21768
  function scheduleDetailsCapable() {
21322
21769
  return declareBlockDesignCapability({
21323
21770
  sectionSurfaces: "supported",
@@ -21326,6 +21773,14 @@ function scheduleDetailsCapable() {
21326
21773
  tileTreatments: scheduleTileTreatments
21327
21774
  });
21328
21775
  }
21776
+ function eventListCapable() {
21777
+ return declareBlockDesignCapability({
21778
+ sectionSurfaces: "supported",
21779
+ contentFrames: ["plain"],
21780
+ itemSurfaces: "unsupported",
21781
+ eventListTreatments
21782
+ });
21783
+ }
21329
21784
  function defaultBoundaryBias(visualWeight) {
21330
21785
  return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
21331
21786
  }
@@ -21545,7 +22000,8 @@ var systemBlockDefinitionsRaw = [
21545
22000
  flow: bodyFlow,
21546
22001
  layoutProfiles: [
21547
22002
  layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
21548
- layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
22003
+ layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
22004
+ layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
21549
22005
  ]
21550
22006
  })),
21551
22007
  withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
@@ -21639,11 +22095,11 @@ var systemBlockDefinitionsRaw = [
21639
22095
  flow: offeringsFlow,
21640
22096
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
21641
22097
  })),
21642
- withDesignCapability("block.event-listing", eventListingBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
22098
+ withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
21643
22099
  flow: offeringsFlow,
21644
22100
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
21645
22101
  })),
21646
- withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
22102
+ withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
21647
22103
  flow: offeringsFlow,
21648
22104
  layoutProfiles: [
21649
22105
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),