@riverbankcms/sdk 0.77.1 → 0.78.2

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 (295) hide show
  1. package/README.md +114 -43
  2. package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-4DXLYX2V.mjs} +4962 -4885
  3. package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-CS5P4N3P.mjs} +4 -4
  4. package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +190 -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/contentRuntime.d.ts +1 -0
  11. package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
  12. package/dist/_dts/api/src/endpoints.d.ts +17 -0
  13. package/dist/_dts/api/src/index.d.ts +16 -4
  14. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
  15. package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
  16. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
  17. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
  18. package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
  19. package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
  20. package/dist/_dts/api/src/navigation.d.ts +12 -0
  21. package/dist/_dts/api/src/public/types.d.ts +1 -1
  22. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
  23. package/dist/_dts/api/src/request.d.ts +3 -11
  24. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -0
  25. package/dist/_dts/api/src/sdkContracts.d.ts +7 -1
  26. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -0
  27. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -0
  28. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +15 -19
  29. package/dist/_dts/api/src/staffAccess.d.ts +79 -0
  30. package/dist/_dts/api/src/types.d.ts +14 -27
  31. package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
  32. package/dist/_dts/block-form/src/fields/types.d.ts +6 -0
  33. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +3 -2
  34. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +6 -3
  35. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +8 -3
  36. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -1
  37. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +1 -0
  38. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -0
  39. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +7 -0
  40. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +1 -0
  41. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +3 -1
  42. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
  43. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterLabelSource.d.ts +15 -0
  44. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +50 -0
  45. package/dist/_dts/blocks/src/client/site-chrome.d.ts +4 -1
  46. package/dist/_dts/blocks/src/index.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +879 -288
  48. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +879 -288
  49. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +879 -288
  50. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +879 -288
  51. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +879 -288
  52. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  53. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +885 -289
  54. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +879 -288
  55. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -1
  56. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +68 -21
  57. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +879 -288
  58. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +879 -288
  59. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +879 -288
  60. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  61. package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
  62. package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
  63. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
  64. package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
  65. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +193 -29
  66. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
  67. package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
  68. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
  69. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
  70. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  71. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  72. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
  73. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
  74. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  75. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +1 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
  77. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
  79. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
  80. package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
  81. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
  83. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
  87. package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
  88. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
  89. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  90. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  92. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  93. package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
  94. package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
  95. package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
  96. package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
  97. package/dist/_dts/content-editor/src/index.d.ts +6 -1
  98. package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
  99. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
  100. package/dist/_dts/content-model/src/content-types/schema.d.ts +17 -3
  101. package/dist/_dts/content-model/src/index.d.ts +1 -0
  102. package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
  103. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +3 -1
  104. package/dist/_dts/content-model/src/templates/bindingValidation.d.ts +10 -4
  105. package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
  106. package/dist/_dts/content-model/src/templates/fieldPaths.d.ts +20 -0
  107. package/dist/_dts/content-model/src/templates/manifestAdapter.d.ts +5 -2
  108. package/dist/_dts/core/src/branded.d.ts +108 -85
  109. package/dist/_dts/core/src/csv-cells.d.ts +10 -0
  110. package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
  111. package/dist/_dts/core/src/csv-escape.d.ts +1 -0
  112. package/dist/_dts/core/src/csv-filename.d.ts +18 -0
  113. package/dist/_dts/core/src/csv-render.d.ts +4 -0
  114. package/dist/_dts/core/src/csv-types.d.ts +116 -0
  115. package/dist/_dts/core/src/currency-format.d.ts +4 -0
  116. package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
  117. package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
  118. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
  119. package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
  120. package/dist/_dts/core/src/duration.d.ts +14 -0
  121. package/dist/_dts/core/src/editor-state.d.ts +7 -7
  122. package/dist/_dts/core/src/email-format.d.ts +10 -0
  123. package/dist/_dts/core/src/field-errors.d.ts +1 -0
  124. package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
  125. package/dist/_dts/core/src/index.d.ts +20 -0
  126. package/dist/_dts/core/src/number-input.d.ts +22 -0
  127. package/dist/_dts/core/src/participants.d.ts +2 -2
  128. package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
  129. package/dist/_dts/core/src/slug.d.ts +39 -0
  130. package/dist/_dts/core/src/string.d.ts +19 -0
  131. package/dist/_dts/core/src/uuid.d.ts +6 -0
  132. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +11 -0
  133. package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
  134. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
  135. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
  136. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
  137. package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
  138. package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
  139. package/dist/_dts/media-core/src/filename.d.ts +1 -0
  140. package/dist/_dts/media-core/src/index.d.ts +10 -0
  141. package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
  142. package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
  143. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
  144. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
  145. package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
  146. package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -1
  147. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -1
  148. package/dist/_dts/media-editor/src/fieldUi.d.ts +5 -0
  149. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  150. package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
  151. package/dist/_dts/path-utils/src/index.d.ts +8 -0
  152. package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
  153. package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
  154. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
  155. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
  156. package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
  157. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
  158. package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +2 -0
  159. package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +3 -3
  160. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +7 -0
  161. package/dist/_dts/sdk/src/cli/commands/push.d.ts +2 -0
  162. package/dist/_dts/sdk/src/cli/content/reader.d.ts +13 -0
  163. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -1
  164. package/dist/_dts/sdk/src/cli/helpers.d.ts +2 -0
  165. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +6 -6
  166. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +5 -0
  167. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +4 -0
  168. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +5 -2
  169. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +10 -1
  170. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +1 -1
  171. package/dist/_dts/sdk/src/client/error.d.ts +3 -0
  172. package/dist/_dts/sdk/src/client/index.d.ts +2 -2
  173. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
  174. package/dist/_dts/sdk/src/client/types.d.ts +39 -21
  175. package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
  176. package/dist/_dts/sdk/src/config/field-definitions.d.ts +2 -0
  177. package/dist/_dts/sdk/src/index.d.ts +2 -2
  178. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
  179. package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
  180. package/dist/_dts/sdk/src/next/index.d.ts +2 -1
  181. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  182. package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
  183. package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
  184. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
  185. package/dist/_dts/sdk/src/version.d.ts +1 -1
  186. package/dist/_dts/site-commands/src/commands.d.ts +15 -12
  187. package/dist/_dts/site-commands/src/index.d.ts +1 -0
  188. package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
  189. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
  190. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
  191. package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
  192. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
  193. package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
  194. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  195. package/dist/_dts/theme-core/src/index.d.ts +3 -1
  196. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
  197. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
  198. package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
  199. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
  200. package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
  201. package/dist/_dts/theme-core/src/schema.d.ts +64 -18
  202. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
  203. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
  204. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
  205. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
  206. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
  207. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  208. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
  209. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
  210. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
  211. package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
  212. package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
  213. package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
  214. package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
  215. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
  216. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
  217. package/dist/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
  218. package/dist/{chunk-IENWFSLO.mjs → chunk-4QEGTLK6.mjs} +1 -1
  219. package/dist/{chunk-ZYEJLCTN.mjs → chunk-6HYXHRAI.mjs} +5 -5
  220. package/dist/{chunk-VX7B5VAC.mjs → chunk-CR5HKAGU.mjs} +32 -5
  221. package/dist/{chunk-KWJPDZH2.mjs → chunk-MCRQMPET.mjs} +3793 -1201
  222. package/dist/{chunk-6SMUFTXD.mjs → chunk-OKMBEAXY.mjs} +1 -1
  223. package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
  224. package/dist/{chunk-2SPENC5M.mjs → chunk-RGTOD4AJ.mjs} +242 -57
  225. package/dist/cli/index.mjs +2361 -668
  226. package/dist/cli/init-docs/content/cli-reference.md +3 -2
  227. package/dist/cli/init-docs/content/content-management.md +2 -2
  228. package/dist/cli/init-docs/content/workflow-preview-mode.md +68 -2
  229. package/dist/client/{accordion-RZMQSYLR.mjs → accordion-PLYNJIIM.mjs} +2 -2
  230. package/dist/client/analytics.mjs +1 -1
  231. package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-BXAP6AO7.mjs} +76 -72
  232. package/dist/client/bookings.mjs +3765 -310
  233. package/dist/client/{carousel-LDX47ZIK.mjs → carousel-TRBXDHGF.mjs} +3 -4
  234. package/dist/client/{cart-RGXDS5F4.mjs → cart-Z7H3HJRS.mjs} +8 -8
  235. package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WAFCUBIX.mjs} +8 -8
  236. package/dist/client/{chunk-II7O4XN3.mjs → chunk-75OUS5MT.mjs} +2 -2
  237. package/dist/client/{chunk-PMAIXMAB.mjs → chunk-AUJ5DBZJ.mjs} +42 -37
  238. package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-CE7IBGVW.mjs} +3 -1
  239. package/dist/client/{chunk-E2TDNXCL.mjs → chunk-CWGTG37I.mjs} +2 -1
  240. package/dist/client/{chunk-UFSWADAO.mjs → chunk-DNRGY432.mjs} +6 -67
  241. package/dist/client/{chunk-GMVTOKYG.mjs → chunk-FUXW6VW2.mjs} +512 -66
  242. package/dist/client/{chunk-R56FQ3RR.mjs → chunk-JGXPTEI2.mjs} +322 -106
  243. package/dist/client/{chunk-L3DNHIJX.mjs → chunk-JRDUHZCT.mjs} +53 -53
  244. package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
  245. package/dist/client/{chunk-JEZECJ3W.mjs → chunk-UVQEJJTN.mjs} +129 -3
  246. package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
  247. package/dist/client/chunk-ZFHRN6W2.mjs +66 -0
  248. package/dist/client/{chunk-JNC7CGHX.mjs → chunk-ZI3LLBPZ.mjs} +3 -3
  249. package/dist/client/client.mjs +7577 -4979
  250. package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-AHFQHWIJ.mjs} +19 -16
  251. package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-LDXTV5R7.mjs} +10 -10
  252. package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-A4JGTNJO.mjs} +10 -10
  253. package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-4YXTZ7EG.mjs} +10 -10
  254. package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-P72TPFFM.mjs} +10 -10
  255. package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-LSYJHGMT.mjs} +10 -10
  256. package/dist/client/{form-ETFZFATW.mjs → form-AOPYOKOW.mjs} +10 -7
  257. package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-5TFYDFVQ.mjs} +3 -3
  258. package/dist/client/hooks.mjs +1119 -327
  259. package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-QSZ3ZVAZ.mjs} +3 -3
  260. package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-KTRHZY52.mjs} +3 -3
  261. package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-N4E775RG.mjs} +8 -8
  262. package/dist/client/{productList-A5RO5WIS.mjs → productList-UGUQ2S45.mjs} +8 -8
  263. package/dist/client/rendering/client.mjs +7262 -2775
  264. package/dist/client/rendering/islands.mjs +19 -19
  265. package/dist/client/rendering.mjs +6964 -4587
  266. package/dist/client/{shop-L4MZH4I2.mjs → shop-VHSZEEQ2.mjs} +8 -8
  267. package/dist/preview-next/before-render.mjs +18 -1
  268. package/dist/preview-next/client/runtime.mjs +6 -6
  269. package/dist/preview-next/editor-chrome.css +10 -0
  270. package/dist/preview-next/middleware.mjs +18 -1
  271. package/dist/preview-next/tailwind-sources.css +1 -0
  272. package/dist/sdk-runtime-WHPJEF5G.mjs +8 -0
  273. package/dist/server/components.mjs +2736 -1316
  274. package/dist/server/config-template-validation.mjs +221 -15
  275. package/dist/server/config-validation.mjs +1346 -550
  276. package/dist/server/config.mjs +1346 -550
  277. package/dist/server/data.mjs +1118 -326
  278. package/dist/server/index.mjs +514 -251
  279. package/dist/server/next.mjs +4446 -2444
  280. package/dist/server/page-converter.mjs +631 -155
  281. package/dist/server/prebuild.mjs +1 -1
  282. package/dist/server/rendering/server.mjs +2743 -1323
  283. package/dist/server/rendering.mjs +2764 -1328
  284. package/dist/server/routing.mjs +1860 -590
  285. package/dist/server/server.mjs +1622 -575
  286. package/dist/server/theme-bridge.mjs +3151 -131
  287. package/dist/server/theme.mjs +10 -1
  288. package/dist/styles/index.css +488 -48
  289. package/package.json +2 -1
  290. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
  291. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
  292. package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
  293. package/dist/client/chunk-OJPZEZU2.mjs +0 -31
  294. package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
  295. package/dist/sdk-runtime-6UT2S7KZ.mjs +0 -8
@@ -382,6 +382,8 @@ var uiSchema = z2.object({
382
382
  mediaPickerAutoOpen: z2.boolean().optional(),
383
383
  showMediaPreview: z2.boolean().optional(),
384
384
  showMediaOverlayActions: z2.boolean().optional(),
385
+ mediaPreviewMaxWidth: z2.enum(["xs", "sm", "md", "none"]).optional(),
386
+ preventMediaPreviewUpscale: z2.boolean().optional(),
385
387
  mediaDelivery: mediaDeliverySchema.optional(),
386
388
  mediaDeliveryByVariant: z2.record(z2.string(), mediaDeliverySchema).optional(),
387
389
  // Optional input hints for validators/widgets
@@ -631,6 +633,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
631
633
  type: z2.literal("repeater"),
632
634
  itemLabel: z2.string().default("Item"),
633
635
  itemLabelSource: z2.string().optional(),
636
+ showSummary: z2.boolean().optional(),
637
+ summaryFields: z2.string().array().optional(),
638
+ summaryMaxChars: z2.number().int().positive().optional(),
634
639
  minItems: z2.number().int().min(0).default(0),
635
640
  maxItems: z2.number().int().positive().optional(),
636
641
  // Monomorphic mode
@@ -1059,6 +1064,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
1059
1064
  const next = encodeURIComponent(nextBlockId);
1060
1065
  return asDesignBoundaryId(`boundary:${previous}:${next}`);
1061
1066
  }
1067
+ function assertNever(value, message = "Unhandled Theme V2 variant") {
1068
+ throw new Error(`${message}: ${String(value)}`);
1069
+ }
1062
1070
  function brandNonEmptyString(value, label) {
1063
1071
  if (value.length === 0) {
1064
1072
  throw new Error(`${label} must be a non-empty string.`);
@@ -1086,6 +1094,10 @@ var tileTreatmentValues = [
1086
1094
  "quiet",
1087
1095
  "brand-depth"
1088
1096
  ];
1097
+ var eventListTreatmentValues = [
1098
+ "plain",
1099
+ "lined-panel"
1100
+ ];
1089
1101
  var eyebrowTreatmentValues = [
1090
1102
  "plain",
1091
1103
  "pill",
@@ -1143,6 +1155,7 @@ function defineBlockDesignCapability(capability) {
1143
1155
  imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
1144
1156
  testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
1145
1157
  tileTreatments: capability.tileTreatments ?? ["default"],
1158
+ eventListTreatments: capability.eventListTreatments ?? ["plain"],
1146
1159
  eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
1147
1160
  ...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
1148
1161
  ...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
@@ -1167,9 +1180,98 @@ var blockAppearancePresets = [
1167
1180
  transitionAfter: "soft-fade-short",
1168
1181
  emphasis: "high",
1169
1182
  sectionHeight: "hero",
1183
+ heroComposition: "center",
1184
+ heroTypographyScale: "display",
1170
1185
  imageSurfaceTreatment: { kind: "neutral-wash" }
1171
1186
  }
1172
1187
  }),
1188
+ defineBlockAppearancePreset({
1189
+ kind: "block-design",
1190
+ id: "hero-bottom-left-panel",
1191
+ target: "hero",
1192
+ label: "Bottom-left panel hero",
1193
+ blockKinds: ["block.hero"],
1194
+ constraints: {
1195
+ layoutFamilies: ["centered", "compact"]
1196
+ },
1197
+ optionGroups: [
1198
+ {
1199
+ id: "image-surface-treatment",
1200
+ label: "Treatment",
1201
+ selectedOptionId: "neutral-scrim",
1202
+ options: [
1203
+ {
1204
+ id: "neutral-scrim",
1205
+ label: "Neutral scrim",
1206
+ designPatch: {
1207
+ imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
1208
+ }
1209
+ },
1210
+ {
1211
+ id: "brand-scrim-primary",
1212
+ label: "Brand scrim",
1213
+ designPatch: {
1214
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
1215
+ }
1216
+ }
1217
+ ]
1218
+ }
1219
+ ],
1220
+ layoutPatches: [
1221
+ {
1222
+ constraints: {
1223
+ layoutVariantKeys: ["micro"]
1224
+ },
1225
+ designPatch: {
1226
+ sectionHeight: "banner",
1227
+ heroTypographyScale: "editorial"
1228
+ }
1229
+ }
1230
+ ],
1231
+ design: {
1232
+ sectionSurface: "hero-image",
1233
+ contentFrame: panelFrame("raised"),
1234
+ itemSurface: "none",
1235
+ transitionAfter: "soft-fade-short",
1236
+ emphasis: "high",
1237
+ sectionHeight: "immersive",
1238
+ heroComposition: "bottom-left",
1239
+ heroTypographyScale: "display",
1240
+ imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
1241
+ }
1242
+ }),
1243
+ defineBlockAppearancePreset({
1244
+ kind: "block-design",
1245
+ id: "hero-poster-image",
1246
+ target: "hero",
1247
+ label: "Poster image hero",
1248
+ blockKinds: ["block.hero"],
1249
+ constraints: {
1250
+ layoutFamilies: ["centered", "compact"]
1251
+ },
1252
+ layoutPatches: [
1253
+ {
1254
+ constraints: {
1255
+ layoutVariantKeys: ["micro"]
1256
+ },
1257
+ designPatch: {
1258
+ sectionHeight: "banner",
1259
+ heroTypographyScale: "display"
1260
+ }
1261
+ }
1262
+ ],
1263
+ design: {
1264
+ sectionSurface: "hero-image",
1265
+ contentFrame: plainFrame,
1266
+ itemSurface: "none",
1267
+ transitionAfter: "soft-fade-short",
1268
+ emphasis: "high",
1269
+ sectionHeight: "immersive",
1270
+ heroComposition: "center",
1271
+ heroTypographyScale: "poster",
1272
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
1273
+ }
1274
+ }),
1173
1275
  defineBlockAppearancePreset({
1174
1276
  kind: "block-design",
1175
1277
  id: "hero-brand-scrim",
@@ -1219,6 +1321,8 @@ var blockAppearancePresets = [
1219
1321
  transitionAfter: "soft-fade-short",
1220
1322
  emphasis: "high",
1221
1323
  sectionHeight: "immersive",
1324
+ heroComposition: "center",
1325
+ heroTypographyScale: "display",
1222
1326
  imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
1223
1327
  }
1224
1328
  }),
@@ -1271,6 +1375,8 @@ var blockAppearancePresets = [
1271
1375
  transitionAfter: "soft-fade-short",
1272
1376
  emphasis: "high",
1273
1377
  sectionHeight: "immersive",
1378
+ heroComposition: "center",
1379
+ heroTypographyScale: "display",
1274
1380
  imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
1275
1381
  imageSurfaceMotion: "fixed-frame",
1276
1382
  eyebrowTreatment: "accent-pill-bounce"
@@ -1291,6 +1397,8 @@ var blockAppearancePresets = [
1291
1397
  itemSurface: "none",
1292
1398
  transitionAfter: "soft-fade-short",
1293
1399
  emphasis: "high",
1400
+ heroComposition: "center",
1401
+ heroTypographyScale: "editorial",
1294
1402
  eyebrowTreatment: "accent-pill-bounce"
1295
1403
  }
1296
1404
  }),
@@ -1305,7 +1413,82 @@ var blockAppearancePresets = [
1305
1413
  contentFrame: panelFrame("inset"),
1306
1414
  itemSurface: "none",
1307
1415
  transitionAfter: "none",
1308
- emphasis: "high"
1416
+ emphasis: "high",
1417
+ heroComposition: "center",
1418
+ heroTypographyScale: "editorial"
1419
+ }
1420
+ }),
1421
+ defineBlockAppearancePreset({
1422
+ kind: "block-design",
1423
+ id: "hero-split-editorial",
1424
+ target: "hero",
1425
+ label: "Editorial split hero",
1426
+ blockKinds: ["block.hero"],
1427
+ constraints: {
1428
+ layoutFamilies: ["split"]
1429
+ },
1430
+ design: {
1431
+ sectionSurface: "base",
1432
+ contentFrame: plainFrame,
1433
+ itemSurface: "none",
1434
+ transitionAfter: "soft-fade-short",
1435
+ emphasis: "high",
1436
+ heroTypographyScale: "editorial"
1437
+ }
1438
+ }),
1439
+ defineBlockAppearancePreset({
1440
+ kind: "block-design",
1441
+ id: "hero-split-brand",
1442
+ target: "hero",
1443
+ label: "Brand split hero",
1444
+ blockKinds: ["block.hero"],
1445
+ constraints: {
1446
+ layoutFamilies: ["split"]
1447
+ },
1448
+ design: {
1449
+ sectionSurface: "brand-depth-band",
1450
+ contentFrame: plainFrame,
1451
+ itemSurface: "none",
1452
+ transitionAfter: "soft-fade-short",
1453
+ emphasis: "high",
1454
+ heroTypographyScale: "display",
1455
+ eyebrowTreatment: "accent-pill-bounce"
1456
+ }
1457
+ }),
1458
+ defineBlockAppearancePreset({
1459
+ kind: "block-design",
1460
+ id: "hero-split-soft-panel",
1461
+ target: "hero",
1462
+ label: "Soft panel split hero",
1463
+ blockKinds: ["block.hero"],
1464
+ constraints: {
1465
+ layoutFamilies: ["split"]
1466
+ },
1467
+ design: {
1468
+ sectionSurface: "muted-band",
1469
+ contentFrame: panelFrame("raised"),
1470
+ itemSurface: "none",
1471
+ transitionAfter: "soft-fade-short",
1472
+ emphasis: "high",
1473
+ heroTypographyScale: "editorial"
1474
+ }
1475
+ }),
1476
+ defineBlockAppearancePreset({
1477
+ kind: "block-design",
1478
+ id: "hero-split-accent",
1479
+ target: "hero",
1480
+ label: "Accent split hero",
1481
+ blockKinds: ["block.hero"],
1482
+ constraints: {
1483
+ layoutFamilies: ["split"]
1484
+ },
1485
+ design: {
1486
+ sectionSurface: "accent-band",
1487
+ contentFrame: panelFrame("raised"),
1488
+ itemSurface: "none",
1489
+ transitionAfter: "soft-fade-short",
1490
+ emphasis: "high",
1491
+ heroTypographyScale: "display"
1309
1492
  }
1310
1493
  }),
1311
1494
  defineBlockAppearancePreset({
@@ -1338,9 +1521,9 @@ var blockAppearancePresets = [
1338
1521
  }),
1339
1522
  defineBlockAppearancePreset({
1340
1523
  kind: "block-design",
1341
- id: "intro-soft-earth-statement",
1524
+ id: "intro-organic-statement",
1342
1525
  target: "intro",
1343
- label: "Soft Earth intro statement",
1526
+ label: "Organic intro statement",
1344
1527
  blockKinds: ["block.intro"],
1345
1528
  design: {
1346
1529
  sectionSurface: "base",
@@ -1371,9 +1554,9 @@ var blockAppearancePresets = [
1371
1554
  }),
1372
1555
  defineBlockAppearancePreset({
1373
1556
  kind: "block-design",
1374
- id: "feature-cards-soft-earth-offerings",
1557
+ id: "feature-cards-raised-rule",
1375
1558
  target: "feature-cards",
1376
- label: "Soft Earth offering cards",
1559
+ label: "Raised cards with rule",
1377
1560
  blockKinds: ["block.feature-cards"],
1378
1561
  design: {
1379
1562
  sectionSurface: "base",
@@ -1402,6 +1585,21 @@ var blockAppearancePresets = [
1402
1585
  emphasis: "medium"
1403
1586
  }
1404
1587
  }),
1588
+ defineBlockAppearancePreset({
1589
+ kind: "block-design",
1590
+ id: "events-lined-panel",
1591
+ target: "events",
1592
+ label: "Lined event panel",
1593
+ blockKinds: ["block.event-calendar", "block.event-listing"],
1594
+ design: {
1595
+ sectionSurface: "base",
1596
+ contentFrame: plainFrame,
1597
+ itemSurface: "none",
1598
+ transitionAfter: "none",
1599
+ emphasis: "medium",
1600
+ eventListTreatment: "lined-panel"
1601
+ }
1602
+ }),
1405
1603
  defineBlockAppearancePreset({
1406
1604
  kind: "block-design",
1407
1605
  id: "schedule-details-accent-section",
@@ -1461,9 +1659,9 @@ var blockAppearancePresets = [
1461
1659
  }),
1462
1660
  defineBlockAppearancePreset({
1463
1661
  kind: "block-design",
1464
- id: "testimonials-carded-proof",
1662
+ id: "testimonials-simple-cards",
1465
1663
  target: "testimonials",
1466
- label: "Carded social proof",
1664
+ label: "Simple testimonial cards",
1467
1665
  blockKinds: ["block.testimonials"],
1468
1666
  design: {
1469
1667
  sectionSurface: "base",
@@ -1475,9 +1673,9 @@ var blockAppearancePresets = [
1475
1673
  }),
1476
1674
  defineBlockAppearancePreset({
1477
1675
  kind: "block-design",
1478
- id: "testimonials-contained-proof",
1676
+ id: "testimonials-raised-panel",
1479
1677
  target: "testimonials",
1480
- label: "Contained social proof",
1678
+ label: "Raised testimonial panel",
1481
1679
  blockKinds: ["block.testimonials"],
1482
1680
  design: {
1483
1681
  sectionSurface: "muted-band",
@@ -1489,9 +1687,9 @@ var blockAppearancePresets = [
1489
1687
  }),
1490
1688
  defineBlockAppearancePreset({
1491
1689
  kind: "block-design",
1492
- id: "testimonials-dark-proof",
1690
+ id: "testimonials-accent-panel",
1493
1691
  target: "testimonials",
1494
- label: "Dark proof panel",
1692
+ label: "Accent testimonial panel",
1495
1693
  blockKinds: ["block.testimonials"],
1496
1694
  design: {
1497
1695
  sectionSurface: "accent-band",
@@ -1503,9 +1701,9 @@ var blockAppearancePresets = [
1503
1701
  }),
1504
1702
  defineBlockAppearancePreset({
1505
1703
  kind: "block-design",
1506
- id: "testimonials-accent-quote-proof",
1704
+ id: "testimonials-accent-quote-cards",
1507
1705
  target: "testimonials",
1508
- label: "Accent quote proof",
1706
+ label: "Accent quote cards",
1509
1707
  blockKinds: ["block.testimonials"],
1510
1708
  design: {
1511
1709
  sectionSurface: "accent-band",
@@ -1518,9 +1716,9 @@ var blockAppearancePresets = [
1518
1716
  }),
1519
1717
  defineBlockAppearancePreset({
1520
1718
  kind: "block-design",
1521
- id: "testimonials-soft-earth-proof-band",
1719
+ id: "testimonials-brand-background-quotes",
1522
1720
  target: "testimonials",
1523
- label: "Soft Earth proof band",
1721
+ label: "Brand background quotes",
1524
1722
  blockKinds: ["block.testimonials"],
1525
1723
  design: {
1526
1724
  sectionSurface: "brand-depth-band",
@@ -1564,25 +1762,6 @@ var blockAppearancePresets = [
1564
1762
  emphasis: "low"
1565
1763
  }
1566
1764
  }),
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
1765
  defineBlockAppearancePreset({
1587
1766
  kind: "block-design",
1588
1767
  id: "contact-form-panel",
@@ -2948,7 +3127,8 @@ var accordionSystemSchema = z10.object({
2948
3127
  icon: z10.object({
2949
3128
  style: accordionIconSchema,
2950
3129
  position: z10.enum(["left", "right"]),
2951
- size: z10.enum(["sm", "md", "lg"])
3130
+ size: z10.enum(["sm", "md", "lg"]),
3131
+ colorToken: themeColorTokenSchema.optional()
2952
3132
  }),
2953
3133
  // Trigger (question) styling
2954
3134
  trigger: z10.object({
@@ -3082,6 +3262,7 @@ var navLinkPaddingXSchema = z14.enum(["none", "tight", "compact", "default", "re
3082
3262
  var navLinkBorderRadiusSchema = z14.enum(["none", "sm", "md", "full"]);
3083
3263
  var navLinkTextSizeSchema = z14.enum(["xs", "sm", "base", "lg"]);
3084
3264
  var navLinkLetterSpacingSchema = z14.enum(["normal", "wide", "wider", "widest"]);
3265
+ var navLinkContrastTreatmentSchema = z14.enum(["none", "soft-glow"]);
3085
3266
  var navLinkStyleSchema = z14.object({
3086
3267
  /** Display name for the style */
3087
3268
  name: z14.string().min(1).max(30).optional(),
@@ -3093,6 +3274,8 @@ var navLinkStyleSchema = z14.object({
3093
3274
  textSize: navLinkTextSizeSchema.optional(),
3094
3275
  /** Optional letter spacing override */
3095
3276
  letterSpacing: navLinkLetterSpacingSchema.optional(),
3277
+ /** Optional text-only contrast treatment for transparent/overlay navigation */
3278
+ contrastTreatment: navLinkContrastTreatmentSchema.optional(),
3096
3279
  /** Hover/active color token (for color-change effects) */
3097
3280
  hoverColorToken: themeColorTokenSchema.nullable().optional(),
3098
3281
  /** Padding preset */
@@ -3452,6 +3635,7 @@ var sectionStylesOverrideSchema = z19.object({
3452
3635
  spacing: semanticSpacingSchema.nullable().optional(),
3453
3636
  minHeight: z19.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
3454
3637
  tileTreatment: z19.enum(tileTreatmentValues).nullable().optional(),
3638
+ eventListTreatment: z19.enum(eventListTreatmentValues).nullable().optional(),
3455
3639
  eyebrowTreatment: z19.enum(eyebrowTreatmentValues).nullable().optional(),
3456
3640
  headingDecoration: headingDecorationSchema.nullable().optional(),
3457
3641
  // Author-level override consumed by later block/editor rendering phases.
@@ -4285,6 +4469,34 @@ var paletteVariantsById = new Map(
4285
4469
  paletteVariants.map((v) => [v.id, v])
4286
4470
  );
4287
4471
 
4472
+ // ../theme-core/src/accordions/siteStyleDefaults.ts
4473
+ var softEarthAccordionSystem = {
4474
+ background: {
4475
+ type: "solid",
4476
+ colorToken: "background"
4477
+ },
4478
+ spacing: "comfortable",
4479
+ corners: "square",
4480
+ border: null,
4481
+ shadow: null,
4482
+ icon: {
4483
+ style: "plus-minus",
4484
+ position: "right",
4485
+ size: "md",
4486
+ colorToken: "primary"
4487
+ },
4488
+ trigger: {
4489
+ textColorToken: "text",
4490
+ fontWeight: "medium"
4491
+ },
4492
+ hover: {
4493
+ textColorToken: "primary"
4494
+ },
4495
+ content: {
4496
+ textColorToken: "neutral-700"
4497
+ }
4498
+ };
4499
+
4288
4500
  // ../theme-core/src/site-styles/headerLooks.ts
4289
4501
  function asHeaderLookId(value) {
4290
4502
  return value;
@@ -4340,7 +4552,7 @@ var headerLayoutCatalog = [
4340
4552
  description: "Detached header chrome that sits over the opening section.",
4341
4553
  structure: "floating-shell",
4342
4554
  variant: "floating",
4343
- defaultPositioning: "fixed",
4555
+ defaultPositioning: "sticky",
4344
4556
  shrinkOnScroll: true,
4345
4557
  maxRecommendedNavItems: 5,
4346
4558
  allowedLogoShapes: ["none", "text-only", "horizontal"]
@@ -4357,7 +4569,9 @@ var headerStyleCatalog = [
4357
4569
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4358
4570
  navInteraction: "color-change",
4359
4571
  surface: "neutral",
4360
- navTypography: "plain"
4572
+ defaultDepth: "none",
4573
+ navTypography: "plain",
4574
+ moods: ["calm", "professional", "editorial"]
4361
4575
  },
4362
4576
  {
4363
4577
  id: asHeaderStyleId("fine-line"),
@@ -4366,7 +4580,9 @@ var headerStyleCatalog = [
4366
4580
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4367
4581
  navInteraction: "underline-grow",
4368
4582
  surface: "bordered",
4369
- navTypography: "plain"
4583
+ defaultDepth: "line",
4584
+ navTypography: "plain",
4585
+ moods: ["calm", "professional", "editorial"]
4370
4586
  },
4371
4587
  {
4372
4588
  id: asHeaderStyleId("soft-bar"),
@@ -4375,7 +4591,9 @@ var headerStyleCatalog = [
4375
4591
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4376
4592
  navInteraction: "pill-background",
4377
4593
  surface: "soft",
4378
- navTypography: "plain"
4594
+ defaultDepth: "line",
4595
+ navTypography: "plain",
4596
+ moods: ["calm", "professional"]
4379
4597
  },
4380
4598
  {
4381
4599
  id: asHeaderStyleId("pill-nav"),
@@ -4384,7 +4602,9 @@ var headerStyleCatalog = [
4384
4602
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4385
4603
  navInteraction: "pill-background",
4386
4604
  surface: "soft",
4387
- navTypography: "plain"
4605
+ defaultDepth: "none",
4606
+ navTypography: "plain",
4607
+ moods: ["calm"]
4388
4608
  },
4389
4609
  {
4390
4610
  id: asHeaderStyleId("brand-bar"),
@@ -4393,7 +4613,9 @@ var headerStyleCatalog = [
4393
4613
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4394
4614
  navInteraction: "color-change",
4395
4615
  surface: "brand-solid",
4396
- navTypography: "brand-caps"
4616
+ defaultDepth: "none",
4617
+ navTypography: "brand-caps",
4618
+ moods: ["professional", "expressive", "utility"]
4397
4619
  },
4398
4620
  {
4399
4621
  id: asHeaderStyleId("brand-underline"),
@@ -4402,7 +4624,9 @@ var headerStyleCatalog = [
4402
4624
  supportedLayoutIds: supportedLayouts(["classic"]),
4403
4625
  navInteraction: "underline-grow",
4404
4626
  surface: "brand-solid",
4405
- navTypography: "brand-caps"
4627
+ defaultDepth: "none",
4628
+ navTypography: "brand-caps",
4629
+ moods: ["expressive"]
4406
4630
  },
4407
4631
  {
4408
4632
  id: asHeaderStyleId("brand-pill"),
@@ -4411,7 +4635,9 @@ var headerStyleCatalog = [
4411
4635
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
4412
4636
  navInteraction: "pill-background",
4413
4637
  surface: "brand-solid",
4414
- navTypography: "brand-caps"
4638
+ defaultDepth: "none",
4639
+ navTypography: "brand-caps",
4640
+ moods: ["expressive"]
4415
4641
  },
4416
4642
  {
4417
4643
  id: asHeaderStyleId("serif-line"),
@@ -4420,7 +4646,9 @@ var headerStyleCatalog = [
4420
4646
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4421
4647
  navInteraction: "underline-grow",
4422
4648
  surface: "bordered",
4423
- navTypography: "heading"
4649
+ defaultDepth: "line",
4650
+ navTypography: "heading",
4651
+ moods: ["editorial", "calm"]
4424
4652
  },
4425
4653
  {
4426
4654
  id: asHeaderStyleId("flat-tabs"),
@@ -4429,16 +4657,20 @@ var headerStyleCatalog = [
4429
4657
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
4430
4658
  navInteraction: "flat-block",
4431
4659
  surface: "bordered",
4432
- navTypography: "quiet-caps"
4660
+ defaultDepth: "shadow",
4661
+ navTypography: "quiet-caps",
4662
+ moods: ["professional", "utility", "expressive"]
4433
4663
  },
4434
4664
  {
4435
4665
  id: asHeaderStyleId("glass"),
4436
4666
  label: "Glass",
4437
4667
  description: "Translucent chrome with frosted navigation backing.",
4438
- supportedLayoutIds: supportedLayouts(["classic", "floating"]),
4668
+ supportedLayoutIds: supportedLayouts(["floating"]),
4439
4669
  navInteraction: "glass-backed",
4440
4670
  surface: "floating",
4441
- navTypography: "plain"
4671
+ defaultDepth: "shadow",
4672
+ navTypography: "plain",
4673
+ moods: ["expressive", "calm"]
4442
4674
  },
4443
4675
  {
4444
4676
  id: asHeaderStyleId("minimal-surface"),
@@ -4447,7 +4679,9 @@ var headerStyleCatalog = [
4447
4679
  supportedLayoutIds: supportedLayouts(["floating"]),
4448
4680
  navInteraction: "color-change",
4449
4681
  surface: "floating",
4450
- navTypography: "plain"
4682
+ defaultDepth: "none",
4683
+ navTypography: "plain",
4684
+ moods: ["editorial", "calm"]
4451
4685
  },
4452
4686
  {
4453
4687
  id: asHeaderStyleId("soft-shell"),
@@ -4456,7 +4690,9 @@ var headerStyleCatalog = [
4456
4690
  supportedLayoutIds: supportedLayouts(["floating"]),
4457
4691
  navInteraction: "pill-background",
4458
4692
  surface: "floating",
4459
- navTypography: "plain"
4693
+ defaultDepth: "shadow",
4694
+ navTypography: "plain",
4695
+ moods: ["calm", "professional"]
4460
4696
  },
4461
4697
  {
4462
4698
  id: asHeaderStyleId("split-glass"),
@@ -4465,7 +4701,9 @@ var headerStyleCatalog = [
4465
4701
  supportedLayoutIds: supportedLayouts(["floating"]),
4466
4702
  navInteraction: "glass-backed",
4467
4703
  surface: "floating",
4468
- navTypography: "quiet-caps"
4704
+ defaultDepth: "shadow",
4705
+ navTypography: "quiet-caps",
4706
+ moods: ["expressive"]
4469
4707
  },
4470
4708
  {
4471
4709
  id: asHeaderStyleId("split-pill"),
@@ -4474,7 +4712,9 @@ var headerStyleCatalog = [
4474
4712
  supportedLayoutIds: supportedLayouts(["floating"]),
4475
4713
  navInteraction: "pill-background",
4476
4714
  surface: "floating",
4477
- navTypography: "heading"
4715
+ defaultDepth: "shadow",
4716
+ navTypography: "heading",
4717
+ moods: ["calm", "editorial"]
4478
4718
  }
4479
4719
  ];
4480
4720
  var headerLayoutsById = new Map(
@@ -4488,7 +4728,6 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
4488
4728
  asHeaderLayoutId("classic"),
4489
4729
  headerStyleRepairChain([
4490
4730
  "minimal",
4491
- "glass",
4492
4731
  "fine-line",
4493
4732
  "soft-bar",
4494
4733
  "pill-nav",
@@ -4555,7 +4794,13 @@ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
4555
4794
  ],
4556
4795
  [
4557
4796
  asHeaderStyleId("glass"),
4558
- headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
4797
+ headerStyleRepairChain([
4798
+ "glass",
4799
+ "soft-shell",
4800
+ "fine-line",
4801
+ "minimal-surface",
4802
+ "minimal"
4803
+ ])
4559
4804
  ],
4560
4805
  [
4561
4806
  asHeaderStyleId("soft-shell"),
@@ -4667,6 +4912,23 @@ function getCompatibleHeaderStyleIds(layoutId) {
4667
4912
  }
4668
4913
  );
4669
4914
  }
4915
+ function themedHeaderShadow(theme) {
4916
+ switch (theme.shadow.elevation) {
4917
+ case "none":
4918
+ return void 0;
4919
+ case "low":
4920
+ return { elevation: "sm" };
4921
+ case "medium":
4922
+ return { elevation: "md" };
4923
+ case "high":
4924
+ return { elevation: "lg" };
4925
+ default:
4926
+ return assertNever(
4927
+ theme.shadow.elevation,
4928
+ "Unhandled theme shadow elevation"
4929
+ );
4930
+ }
4931
+ }
4670
4932
  function solidBrandHeader(theme) {
4671
4933
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
4672
4934
  return {
@@ -4816,9 +5078,7 @@ function practicalUtilityHeader(theme) {
4816
5078
  navColor: "text",
4817
5079
  navStyle: "solid",
4818
5080
  navWeight: "semibold",
4819
- shadow: {
4820
- elevation: "sm"
4821
- },
5081
+ shadow: themedHeaderShadow(theme),
4822
5082
  border: {
4823
5083
  style: "solid",
4824
5084
  width: "thin",
@@ -4887,6 +5147,7 @@ function floatingGlassHeader(theme) {
4887
5147
  return {
4888
5148
  ...transparentOverlayHeader(theme),
4889
5149
  variant: "floating",
5150
+ positioning: "sticky",
4890
5151
  navStyle: "frosted",
4891
5152
  navContainer: {
4892
5153
  type: "glass",
@@ -5402,7 +5663,7 @@ var typographyPresets = [
5402
5663
  heroTypography: {
5403
5664
  headlineSize: "6xl",
5404
5665
  headlineLineHeight: "tight",
5405
- subheadlineSize: "editorial",
5666
+ subheadlineSize: "2xl",
5406
5667
  subheadlineLineHeight: "normal",
5407
5668
  microHeadlineSize: "6xl",
5408
5669
  microHeadlineLineHeight: "tight",
@@ -5420,6 +5681,8 @@ var typographyPresetsById = new Map(
5420
5681
  );
5421
5682
 
5422
5683
  // ../theme-core/src/site-styles/curatedSiteStyles.ts
5684
+ var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
5685
+ var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
5423
5686
  var curatedSiteStyleIdValues = [
5424
5687
  "site-style:calm-studio",
5425
5688
  "site-style:clear-professional",
@@ -5431,7 +5694,7 @@ var curatedSiteStyleIdValues = [
5431
5694
  "site-style:personal-retreat-journal",
5432
5695
  "site-style:tactile-workshop",
5433
5696
  "site-style:modern-wellness",
5434
- "site-style:soft-earth",
5697
+ SOFT_EARTH_SITE_STYLE_ID_VALUE,
5435
5698
  "site-style:bold-launch",
5436
5699
  "site-style:south-west-twerk-school"
5437
5700
  ];
@@ -5513,7 +5776,10 @@ function uniqueContentFrameKinds() {
5513
5776
  var generatedContentFrameKinds = uniqueContentFrameKinds();
5514
5777
  function defineCuratedSiteStyle(input) {
5515
5778
  const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
5516
- const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
5779
+ const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
5780
+ legacyHeaderLookIds,
5781
+ input.tokenRecipes
5782
+ );
5517
5783
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
5518
5784
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
5519
5785
  if (!typographyPresetChoices.some(
@@ -5546,6 +5812,7 @@ function defineCuratedSiteStyle(input) {
5546
5812
  supportedTransitions: generatedDesignOptionCatalog.transitions
5547
5813
  },
5548
5814
  ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
5815
+ ...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
5549
5816
  recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
5550
5817
  defaultHeaderSelection: input.defaultHeaderSelection ? {
5551
5818
  layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
@@ -5604,7 +5871,69 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
5604
5871
  };
5605
5872
  return [first, ...choices.slice(1)];
5606
5873
  }
5607
- function inferHeaderCurationFromLegacyLooks(lookIds) {
5874
+ function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
5875
+ const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
5876
+ const seen = /* @__PURE__ */ new Set();
5877
+ const unique = choices.filter((choice) => {
5878
+ if (!compatible.has(choice.id)) return false;
5879
+ if (seen.has(choice.id)) return false;
5880
+ seen.add(choice.id);
5881
+ return true;
5882
+ });
5883
+ return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
5884
+ }
5885
+ function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
5886
+ switch (layoutId) {
5887
+ case "classic":
5888
+ if (isExpressiveRecipe(recipes)) {
5889
+ return [
5890
+ "brand-bar",
5891
+ "brand-underline",
5892
+ "flat-tabs",
5893
+ "brand-pill",
5894
+ "fine-line"
5895
+ ];
5896
+ }
5897
+ if (recipes.spacing === "compact") {
5898
+ return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
5899
+ }
5900
+ if (isSerifTypographyRecipe(recipes)) {
5901
+ return ["serif-line", "fine-line", "minimal", "soft-bar"];
5902
+ }
5903
+ if (recipes.radius === "rounded" || recipes.radius === "pill") {
5904
+ return ["soft-bar", "pill-nav", "fine-line", "minimal"];
5905
+ }
5906
+ return ["fine-line", "minimal", "soft-bar", "brand-bar"];
5907
+ case "centered":
5908
+ if (isSerifTypographyRecipe(recipes)) {
5909
+ return ["serif-line", "fine-line", "minimal", "soft-bar"];
5910
+ }
5911
+ if (isExpressiveRecipe(recipes)) {
5912
+ return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
5913
+ }
5914
+ if (recipes.radius === "rounded" || recipes.radius === "pill") {
5915
+ return ["soft-bar", "pill-nav", "fine-line", "minimal"];
5916
+ }
5917
+ return ["minimal", "fine-line", "soft-bar"];
5918
+ case "floating":
5919
+ if (isExpressiveRecipe(recipes)) {
5920
+ return ["glass", "split-glass", "brand-pill", "soft-shell"];
5921
+ }
5922
+ if (isSerifTypographyRecipe(recipes)) {
5923
+ return ["split-pill", "minimal-surface", "soft-shell"];
5924
+ }
5925
+ return ["soft-shell", "minimal-surface", "glass"];
5926
+ default:
5927
+ return [];
5928
+ }
5929
+ }
5930
+ function isExpressiveRecipe(recipes) {
5931
+ return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
5932
+ }
5933
+ function isSerifTypographyRecipe(recipes) {
5934
+ return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
5935
+ }
5936
+ function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
5608
5937
  const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
5609
5938
  (selection) => Boolean(selection)
5610
5939
  );
@@ -5617,8 +5946,15 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
5617
5946
  );
5618
5947
  const stylesByLayout = {};
5619
5948
  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);
5949
+ const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
5950
+ const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
5951
+ layoutChoice.id,
5952
+ recipes
5953
+ ).map((styleId) => headerStyleChoice(styleId));
5954
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
5955
+ [...legacyStyleChoices, ...inferredStyleChoices],
5956
+ layoutChoice.id
5957
+ );
5622
5958
  }
5623
5959
  return {
5624
5960
  defaultHeaderSelection,
@@ -6038,10 +6374,10 @@ var curatedSiteStyles = [
6038
6374
  ]
6039
6375
  }),
6040
6376
  defineCuratedSiteStyle({
6041
- id: "site-style:soft-earth",
6377
+ id: SOFT_EARTH_SITE_STYLE_ID,
6042
6378
  name: "Soft Earth",
6043
6379
  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.",
6380
+ 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
6381
  siteCreatorSelection: {
6046
6382
  kind: "site_creator_keyword_heuristic",
6047
6383
  priority: 45
@@ -6111,14 +6447,18 @@ var curatedSiteStyles = [
6111
6447
  paragraphSize: "default",
6112
6448
  headingSize: "editorial"
6113
6449
  }
6114
- }
6450
+ },
6451
+ accordions: softEarthAccordionSystem
6452
+ },
6453
+ defaultBlockVariants: {
6454
+ "block.faq": "question-columns"
6115
6455
  },
6116
6456
  recommendedAppearancePresetIds: [
6117
6457
  "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",
6458
+ "intro-organic-statement",
6459
+ "feature-cards-raised-rule",
6460
+ "events-lined-panel",
6461
+ "testimonials-brand-background-quotes",
6122
6462
  "contact-form-panel"
6123
6463
  ],
6124
6464
  recommendedHeaderLookIds: [
@@ -6222,7 +6562,7 @@ var curatedSiteStyles = [
6222
6562
  "hero-brand-scrim-fixed-frame",
6223
6563
  "body-text-editorial-intro",
6224
6564
  "schedule-details-brand-depth",
6225
- "testimonials-accent-quote-proof",
6565
+ "testimonials-accent-quote-cards",
6226
6566
  "contact-form-brand-depth-card"
6227
6567
  ],
6228
6568
  recommendedHeaderLookIds: [
@@ -6317,6 +6657,7 @@ var themeV2RuntimeStyleFieldNames = [
6317
6657
  ];
6318
6658
  var themeV2BlockSpecificRawStyleFieldNames = [
6319
6659
  "_contentCardStyles",
6660
+ "_heroLayoutStyles",
6320
6661
  "_textCardStyles"
6321
6662
  ];
6322
6663
  var themeV2NormalEditorRawStyleFieldNames = [
@@ -6326,6 +6667,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
6326
6667
  var themeV2NormalEditorRawStyleFieldNameSet = new Set(
6327
6668
  themeV2NormalEditorRawStyleFieldNames
6328
6669
  );
6670
+ var themeV2CompilerOwnedFieldNames = [
6671
+ ...themeV2RuntimeStyleFieldNames,
6672
+ ...themeV2BlockSpecificRawStyleFieldNames
6673
+ ];
6329
6674
 
6330
6675
  // ../theme-core/src/site-styles/designState.ts
6331
6676
  var themeV2DesignStateSchemaVersion = 1;
@@ -6340,6 +6685,16 @@ var heroLegibilityStrategySchema = z21.enum([
6340
6685
  "scrim-gradient",
6341
6686
  "solid-panel"
6342
6687
  ]);
6688
+ var heroCompositionIntentSchema = z21.enum([
6689
+ "center",
6690
+ "bottom-left"
6691
+ ]);
6692
+ var heroTypographyScaleIntentSchema = z21.enum([
6693
+ "quiet",
6694
+ "editorial",
6695
+ "display",
6696
+ "poster"
6697
+ ]);
6343
6698
  var sectionHeightIntentSchema = z21.enum([
6344
6699
  "default",
6345
6700
  "banner",
@@ -6375,6 +6730,7 @@ var imageSurfaceTreatmentSchema = z21.discriminatedUnion("kind", [
6375
6730
  ]);
6376
6731
  var testimonialCardTreatmentSchema = z21.enum(["default", "accent-quote"]);
6377
6732
  var tileTreatmentSchema = z21.enum(tileTreatmentValues);
6733
+ var eventListTreatmentSchema = z21.enum(eventListTreatmentValues);
6378
6734
  var eyebrowTreatmentSchema = z21.enum(eyebrowTreatmentValues);
6379
6735
  function uniqueNonEmpty(values) {
6380
6736
  const uniqueValues = [...new Set(values)];
@@ -6416,10 +6772,13 @@ var blockDesignPlanSchema = z21.object({
6416
6772
  emphasis: z21.enum(userDesignOptionCatalog.emphases),
6417
6773
  sectionHeight: sectionHeightIntentSchema.optional(),
6418
6774
  heroLegibility: heroLegibilityStrategySchema.optional(),
6775
+ heroComposition: heroCompositionIntentSchema.optional(),
6776
+ heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
6419
6777
  imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
6420
6778
  imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
6421
6779
  testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
6422
6780
  tileTreatment: tileTreatmentSchema.optional(),
6781
+ eventListTreatment: eventListTreatmentSchema.optional(),
6423
6782
  eyebrowTreatment: eyebrowTreatmentSchema.optional()
6424
6783
  }).strict();
6425
6784
  var styleAuthoritySchema = z21.discriminatedUnion("kind", [
@@ -7739,6 +8098,7 @@ function styledSection(config) {
7739
8098
  renderBackgroundImage = true,
7740
8099
  backgroundImageLoading,
7741
8100
  backgroundImageFetchPriority,
8101
+ allowOverflow = false,
7742
8102
  fullWidthPath
7743
8103
  } = config;
7744
8104
  const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
@@ -7773,7 +8133,7 @@ function styledSection(config) {
7773
8133
  // No fallback needed - transform handles all cases via defaultSpacing
7774
8134
  }
7775
8135
  },
7776
- allowOverflow: {
8136
+ allowOverflow: allowOverflow ? true : {
7777
8137
  $bind: {
7778
8138
  from: `${bindFrom}.background`,
7779
8139
  transforms: [{ id: "background.resolveAllowOverflow" }],
@@ -8234,6 +8594,7 @@ function footerNav(opts) {
8234
8594
 
8235
8595
  // ../blocks/src/system/transforms/registry/boxStyles.ts
8236
8596
  var tileTreatmentSet = new Set(tileTreatmentValues);
8597
+ var eventListTreatmentSet = new Set(eventListTreatmentValues);
8237
8598
  var GAP_VALUE_MAP = {
8238
8599
  none: "0",
8239
8600
  compact: "calc(1rem * var(--space-mult, 1))",
@@ -8494,6 +8855,35 @@ function sectionState(opts) {
8494
8855
  );
8495
8856
  }
8496
8857
 
8858
+ // ../blocks/src/system/node/fragments/headingDecoration.ts
8859
+ var defaultBindFrom = "_sectionStyles.headingDecoration";
8860
+ function headingDecoration({
8861
+ bindFrom = defaultBindFrom,
8862
+ family,
8863
+ placement,
8864
+ className
8865
+ }) {
8866
+ return el(
8867
+ "div",
8868
+ {
8869
+ "aria-hidden": "true",
8870
+ className: {
8871
+ $bind: {
8872
+ from: bindFrom,
8873
+ transforms: [
8874
+ {
8875
+ id: "ui.headingDecorationClassName",
8876
+ options: { baseClass: className, family }
8877
+ }
8878
+ ]
8879
+ }
8880
+ }
8881
+ },
8882
+ null,
8883
+ when(`${bindFrom}.placement`, { equals: placement })
8884
+ );
8885
+ }
8886
+
8497
8887
  // ../blocks/src/system/fragments/types.ts
8498
8888
  import { z as z25 } from "zod";
8499
8889
  var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
@@ -8579,47 +8969,48 @@ function validateFieldDefinitions(fields3, fragmentId) {
8579
8969
  function prefixFieldId(field, scope) {
8580
8970
  const cloned = cloneFieldDefinition2(field);
8581
8971
  cloned.id = `${scope}.${field.id}`;
8582
- cloned.defaultValue = cloneUnknown(cloned.defaultValue);
8972
+ const defaultValue = cloned.defaultValue;
8973
+ cloned.defaultValue = cloneUnknown(defaultValue);
8583
8974
  cloned.visibleRoles = cloned.visibleRoles ? [...cloned.visibleRoles] : void 0;
8584
8975
  cloned.ui = cloneUnknown(cloned.ui);
8585
8976
  return cloned;
8586
8977
  }
8587
8978
  function cloneFieldDefinition2(field) {
8588
- switch (field.type) {
8589
- case "repeater":
8590
- if (field.polymorphic && field.itemTypes) {
8591
- return {
8592
- ...field,
8593
- polymorphic: true,
8594
- itemTypes: Object.fromEntries(
8595
- Object.entries(field.itemTypes).map(([key, itemType]) => [
8596
- key,
8597
- {
8598
- ...itemType,
8599
- fields: itemType.fields.map(cloneFieldDefinition2)
8600
- }
8601
- ])
8602
- )
8603
- };
8604
- } else if (field.schema) {
8605
- return {
8606
- ...field,
8607
- schema: {
8608
- fields: field.schema.fields.map(cloneFieldDefinition2)
8609
- }
8610
- };
8611
- }
8612
- return { ...field };
8613
- case "group":
8979
+ if (field.type === "repeater") {
8980
+ if (field.polymorphic && field.itemTypes) {
8981
+ return {
8982
+ ...field,
8983
+ polymorphic: true,
8984
+ itemTypes: Object.fromEntries(
8985
+ Object.entries(field.itemTypes).map(([key, itemType]) => [
8986
+ key,
8987
+ {
8988
+ ...itemType,
8989
+ fields: itemType.fields.map(cloneFieldDefinition2)
8990
+ }
8991
+ ])
8992
+ )
8993
+ };
8994
+ }
8995
+ if (field.schema) {
8614
8996
  return {
8615
8997
  ...field,
8616
8998
  schema: {
8617
8999
  fields: field.schema.fields.map(cloneFieldDefinition2)
8618
9000
  }
8619
9001
  };
8620
- default:
8621
- return { ...field };
9002
+ }
9003
+ return { ...field };
8622
9004
  }
9005
+ if (field.type === "group") {
9006
+ return {
9007
+ ...field,
9008
+ schema: {
9009
+ fields: field.schema.fields.map(cloneFieldDefinition2)
9010
+ }
9011
+ };
9012
+ }
9013
+ return { ...field };
8623
9014
  }
8624
9015
  function cloneUnknown(value) {
8625
9016
  if (value == null || typeof value !== "object") {
@@ -9272,6 +9663,10 @@ var testimonialsHeadingFragment = defineFragment({
9272
9663
  when("content.heading"),
9273
9664
  bind("content.heading")
9274
9665
  ),
9666
+ headingDecoration({
9667
+ family: "short-center-rule",
9668
+ placement: "under-centered-heading"
9669
+ }),
9275
9670
  text(
9276
9671
  {
9277
9672
  as: "p",
@@ -9943,6 +10338,41 @@ var faqHeadingFragment = defineFragment({
9943
10338
  });
9944
10339
 
9945
10340
  // ../blocks/src/system/fragments/library/faqAccordion.ts
10341
+ function createFaqAccordionLayout(options = {}) {
10342
+ return accordionList({
10343
+ collection: "content.items",
10344
+ itemName: "faqItem",
10345
+ indexName: "faqIndex",
10346
+ accordionProps: {
10347
+ className: options.rootClassName ?? "accordion-root",
10348
+ type: "single",
10349
+ collapsible: true
10350
+ },
10351
+ itemProps: {
10352
+ className: {
10353
+ $bind: {
10354
+ from: "content._cardStyles",
10355
+ transforms: [
10356
+ {
10357
+ id: "boxStyles.all",
10358
+ options: {
10359
+ axis: "all",
10360
+ includeSpacing: false,
10361
+ baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
10362
+ }
10363
+ }
10364
+ ]
10365
+ },
10366
+ fallback: "rb-faq-item"
10367
+ },
10368
+ iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
10369
+ // Legacy theme accordion style
10370
+ iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
10371
+ },
10372
+ triggerFrom: "faqItem.question",
10373
+ contentFrom: "faqItem.answer"
10374
+ });
10375
+ }
9946
10376
  var faqAccordionFragment = defineFragment({
9947
10377
  id: "faqAccordion",
9948
10378
  title: "FAQ Accordion",
@@ -9976,40 +10406,7 @@ var faqAccordionFragment = defineFragment({
9976
10406
  }
9977
10407
  }
9978
10408
  ],
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
- })
10409
+ layout: createFaqAccordionLayout()
10013
10410
  });
10014
10411
 
10015
10412
  // ../blocks/src/system/fragments/library/card.ts
@@ -10956,7 +11353,8 @@ function createBlockManifestWithContentShape(config, _contentShape) {
10956
11353
  return createBlockManifest(config);
10957
11354
  }
10958
11355
  function normalizeBlockLayout(layout) {
10959
- return Array.isArray(layout) ? [...layout] : layout;
11356
+ const rawLayout = layout;
11357
+ return Array.isArray(rawLayout) ? rawLayout : rawLayout;
10960
11358
  }
10961
11359
  function deriveComponentName(id) {
10962
11360
  const base = id.replace(/^block\./, "");
@@ -11062,6 +11460,7 @@ var microLayout = styledSection({
11062
11460
  function splitLayoutWith(children) {
11063
11461
  return styledSection({
11064
11462
  children: styledContainer({
11463
+ baseClassName: "rb-relative rb-isolate rb-overflow-visible",
11065
11464
  children: {
11066
11465
  type: "grid",
11067
11466
  props: {
@@ -11086,6 +11485,7 @@ function splitLayoutWith(children) {
11086
11485
  // The split variants render the image as a real grid column, so suppress
11087
11486
  // the default absolute background image layer while keeping color/overlay.
11088
11487
  renderBackgroundImage: false,
11488
+ allowOverflow: true,
11089
11489
  baseClass: ""
11090
11490
  });
11091
11491
  }
@@ -11239,6 +11639,21 @@ function introHeading(className) {
11239
11639
  bind("content.title")
11240
11640
  );
11241
11641
  }
11642
+ function introHeadingGroup(className) {
11643
+ return stack(
11644
+ {
11645
+ gap: "sm",
11646
+ className: "rb-intro-heading-group"
11647
+ },
11648
+ [
11649
+ introHeading(className),
11650
+ headingDecoration({
11651
+ family: "organic-squiggle",
11652
+ placement: "after-heading"
11653
+ })
11654
+ ]
11655
+ );
11656
+ }
11242
11657
  function introBody(className = "rb-prose rb-max-w-none") {
11243
11658
  return richText({ className }, bind("content.body"));
11244
11659
  }
@@ -11257,6 +11672,10 @@ function introCopyStack(options = {}) {
11257
11672
  },
11258
11673
  [
11259
11674
  introHeading(options.headingClassName ?? "rb-intro-title"),
11675
+ headingDecoration({
11676
+ family: "organic-squiggle",
11677
+ placement: "after-heading"
11678
+ }),
11260
11679
  introBody(options.bodyClassName),
11261
11680
  introCtas(options.ctaJustify)
11262
11681
  ]
@@ -11296,7 +11715,7 @@ var statementCopyLayout = styledSection({
11296
11715
  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
11716
  },
11298
11717
  [
11299
- introHeading("rb-intro-title rb-max-w-xl"),
11718
+ introHeadingGroup("rb-intro-title rb-max-w-xl"),
11300
11719
  stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
11301
11720
  introBody(),
11302
11721
  introCtas("start")
@@ -11317,7 +11736,7 @@ var statementMediaLayout = styledSection({
11317
11736
  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
11737
  },
11319
11738
  [
11320
- introHeading("rb-intro-title rb-max-w-xl"),
11739
+ introHeadingGroup("rb-intro-title rb-max-w-xl"),
11321
11740
  stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
11322
11741
  introBody(),
11323
11742
  introCtas("start")
@@ -12319,6 +12738,9 @@ function isNodeDefinitionArray(layout) {
12319
12738
  }
12320
12739
  var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
12321
12740
  var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
12741
+ var questionColumnsAccordionLayout = createFaqAccordionLayout({
12742
+ rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
12743
+ });
12322
12744
  var defaultLayout = styledSection({
12323
12745
  children: styledContainer({
12324
12746
  baseClassName: "rb-relative rb-isolate",
@@ -12332,11 +12754,24 @@ var twoColumnLayout = styledSection({
12332
12754
  children: el(
12333
12755
  "div",
12334
12756
  {
12335
- className: "rb-faq-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
12757
+ className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
12336
12758
  },
12337
12759
  [
12338
- el("div", { className: "rb-faq-two-column-heading" }, [headingLayout]),
12339
- el("div", { className: "rb-faq-two-column-accordion" }, [accordionLayout])
12760
+ el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
12761
+ el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
12762
+ ]
12763
+ )
12764
+ }),
12765
+ baseClass: ""
12766
+ });
12767
+ var questionColumnsLayout = styledSection({
12768
+ children: styledContainer({
12769
+ baseClassName: "rb-relative rb-isolate",
12770
+ children: stack(
12771
+ { gap: "xl", className: "rb-w-full" },
12772
+ [
12773
+ headingLayout,
12774
+ questionColumnsAccordionLayout
12340
12775
  ]
12341
12776
  )
12342
12777
  }),
@@ -12361,7 +12796,8 @@ var faqManifest = createBlockManifest({
12361
12796
  layout: defaultLayout,
12362
12797
  variants: {
12363
12798
  default: defaultLayout,
12364
- "two-column": twoColumnLayout
12799
+ "two-column": twoColumnLayout,
12800
+ "question-columns": questionColumnsLayout
12365
12801
  },
12366
12802
  defaultVariant: "default",
12367
12803
  variantOptions: {
@@ -12372,6 +12808,10 @@ var faqManifest = createBlockManifest({
12372
12808
  "two-column": {
12373
12809
  label: "Two column",
12374
12810
  description: "A left heading column with FAQ items on the right."
12811
+ },
12812
+ "question-columns": {
12813
+ label: "Question columns",
12814
+ description: "A full-width heading above FAQ items split into two columns."
12375
12815
  }
12376
12816
  },
12377
12817
  description: "Accordion of frequently asked questions and answers.",
@@ -12422,6 +12862,10 @@ function desktopOnlyDisplay(display) {
12422
12862
  return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
12423
12863
  }
12424
12864
 
12865
+ // ../theme-core/src/siteChromeOverlayClearance.ts
12866
+ var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
12867
+ var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
12868
+
12425
12869
  // ../blocks/src/system/blocks/site-header.ts
12426
12870
  var logoRow = link(
12427
12871
  {
@@ -12694,6 +13138,7 @@ var transparentLayout = inline(
12694
13138
  );
12695
13139
  var floatingLayout = inline(
12696
13140
  {
13141
+ [SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
12697
13142
  className: bindProp("$root.theme.header.maxWidth", {
12698
13143
  transforms: pipe(
12699
13144
  tx("layout.maxWidthClass", {
@@ -13639,6 +14084,10 @@ var sectionHeading = stack(
13639
14084
  when("content.title"),
13640
14085
  bind("content.title")
13641
14086
  ),
14087
+ headingDecoration({
14088
+ family: "short-center-rule",
14089
+ placement: "under-centered-heading"
14090
+ }),
13642
14091
  richText(
13643
14092
  {
13644
14093
  className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
@@ -14820,8 +15269,8 @@ var eventSurfaceScopeValues = [
14820
15269
  "custom"
14821
15270
  ];
14822
15271
  var eventScheduleScopeValues = ["any", "recurring", "oneOff"];
14823
- var asEventCategoryId = (value) => value;
14824
- var asVenueId = (value) => value;
15272
+ var unsafeAsEventCategoryId = (value) => value;
15273
+ var unsafeAsVenueId = (value) => value;
14825
15274
  function normalizeEventBlockKind(value) {
14826
15275
  return value === "courses" || value === "events" ? value : "all";
14827
15276
  }
@@ -14847,10 +15296,10 @@ function normalizeEventCategoryIds(value) {
14847
15296
  if (Array.isArray(value)) {
14848
15297
  return normalizeIdList(
14849
15298
  value.filter((entry) => typeof entry === "string")
14850
- ).map(asEventCategoryId);
15299
+ ).map(unsafeAsEventCategoryId);
14851
15300
  }
14852
15301
  if (typeof value === "string") {
14853
- return normalizeIdList(value.split(",")).map(asEventCategoryId);
15302
+ return normalizeIdList(value.split(",")).map(unsafeAsEventCategoryId);
14854
15303
  }
14855
15304
  return [];
14856
15305
  }
@@ -14863,7 +15312,7 @@ function normalizeEventVenueId(value) {
14863
15312
  return null;
14864
15313
  }
14865
15314
  const trimmed = value.trim();
14866
- return trimmed ? asVenueId(trimmed) : null;
15315
+ return trimmed ? unsafeAsVenueId(trimmed) : null;
14867
15316
  }
14868
15317
  function normalizeEventStaffMemberId(value) {
14869
15318
  if (typeof value !== "string") {
@@ -16062,7 +16511,7 @@ var COLUMN_CLASSES = {
16062
16511
  };
16063
16512
  function getContainerClass(layout, columns) {
16064
16513
  if (layout === "compact") {
16065
- return "event-listing-compact-container rb-flex rb-flex-col rb-gap-2";
16514
+ return "event-listing-compact-container rb-flex rb-flex-col";
16066
16515
  }
16067
16516
  if (layout === "stack") {
16068
16517
  return "rb-flex rb-flex-col rb-gap-6";
@@ -18814,6 +19263,7 @@ import { z as z46 } from "zod";
18814
19263
  var storedProductCartItemSchema = z46.object({
18815
19264
  kind: z46.literal("product"),
18816
19265
  productId: z46.string().min(1),
19266
+ productCategoryId: z46.string().min(1).optional().nullable(),
18817
19267
  variantId: z46.string().min(1).optional().nullable(),
18818
19268
  title: z46.string().min(1),
18819
19269
  variantTitle: z46.string().optional().nullable(),
@@ -21318,6 +21768,10 @@ var scheduleTileTreatments = [
21318
21768
  "quiet",
21319
21769
  "brand-depth"
21320
21770
  ];
21771
+ var eventListTreatments = [
21772
+ "plain",
21773
+ "lined-panel"
21774
+ ];
21321
21775
  function scheduleDetailsCapable() {
21322
21776
  return declareBlockDesignCapability({
21323
21777
  sectionSurfaces: "supported",
@@ -21326,6 +21780,14 @@ function scheduleDetailsCapable() {
21326
21780
  tileTreatments: scheduleTileTreatments
21327
21781
  });
21328
21782
  }
21783
+ function eventListCapable() {
21784
+ return declareBlockDesignCapability({
21785
+ sectionSurfaces: "supported",
21786
+ contentFrames: ["plain"],
21787
+ itemSurfaces: "unsupported",
21788
+ eventListTreatments
21789
+ });
21790
+ }
21329
21791
  function defaultBoundaryBias(visualWeight) {
21330
21792
  return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
21331
21793
  }
@@ -21545,7 +22007,8 @@ var systemBlockDefinitionsRaw = [
21545
22007
  flow: bodyFlow,
21546
22008
  layoutProfiles: [
21547
22009
  layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
21548
- layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
22010
+ layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
22011
+ layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
21549
22012
  ]
21550
22013
  })),
21551
22014
  withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
@@ -21639,11 +22102,11 @@ var systemBlockDefinitionsRaw = [
21639
22102
  flow: offeringsFlow,
21640
22103
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
21641
22104
  })),
21642
- withDesignCapability("block.event-listing", eventListingBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
22105
+ withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
21643
22106
  flow: offeringsFlow,
21644
22107
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
21645
22108
  })),
21646
- withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
22109
+ withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
21647
22110
  flow: offeringsFlow,
21648
22111
  layoutProfiles: [
21649
22112
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
@@ -23293,11 +23756,14 @@ function collectFieldIds(fields3) {
23293
23756
  for (const field of fieldList) {
23294
23757
  ids.add(field.id);
23295
23758
  if (field.schema && typeof field.schema === "object" && "fields" in field.schema) {
23296
- collect(field.schema.fields);
23759
+ const nestedFields = field.schema.fields;
23760
+ if (isFieldIdRecordArray(nestedFields)) {
23761
+ collect(nestedFields);
23762
+ }
23297
23763
  }
23298
- if (field.tabs && Array.isArray(field.tabs)) {
23764
+ if (isRecordArray(field.tabs)) {
23299
23765
  for (const tab of field.tabs) {
23300
- if (tab.fields && Array.isArray(tab.fields)) {
23766
+ if (isFieldIdRecordArray(tab.fields)) {
23301
23767
  collect(tab.fields);
23302
23768
  }
23303
23769
  }
@@ -23314,6 +23780,12 @@ function collectFieldIds(fields3) {
23314
23780
  collect(fields3);
23315
23781
  return ids;
23316
23782
  }
23783
+ function isRecordArray(value) {
23784
+ return Array.isArray(value);
23785
+ }
23786
+ function isFieldIdRecordArray(value) {
23787
+ return Array.isArray(value) && value.every((item) => typeof item === "object" && item !== null && typeof item.id === "string");
23788
+ }
23317
23789
  var CONTENT_NODE_TYPES = ["text", "richText", "media", "button", "link"];
23318
23790
  function collectFieldInfo(fields3) {
23319
23791
  const topLevelFieldIds = /* @__PURE__ */ new Set();
@@ -25383,7 +25855,7 @@ async function convertHtmlToManifest(input, options) {
25383
25855
 
25384
25856
  // src/page-converter/passes/pass2-population.ts
25385
25857
  var builtinContentSchema = z59.object({
25386
- content: z59.any(),
25858
+ content: z59.unknown(),
25387
25859
  rationale: z59.string()
25388
25860
  });
25389
25861
  var SECTION_STYLES_ALLOWED_KEYS = /* @__PURE__ */ new Set(["background", "spacing"]);
@@ -25443,6 +25915,9 @@ function sanitizeExtractedContent(content) {
25443
25915
  }
25444
25916
  return result;
25445
25917
  }
25918
+ function isRecord2(value) {
25919
+ return typeof value === "object" && value !== null && !Array.isArray(value);
25920
+ }
25446
25921
  function isBoxStylesField(fieldId) {
25447
25922
  return fieldId === "_sectionStyles" || fieldId === "_containerStyles" || fieldId === "_cardStyles";
25448
25923
  }
@@ -25548,7 +26023,8 @@ async function populateBuiltinBlock(sectionIndex, section2, blockInfo, ctx) {
25548
26023
  );
25549
26024
  await ctx.debug.writeText(`pass2-builtin-${sectionIndex}-raw.txt`, rawText);
25550
26025
  await ctx.debug.writeJson(`pass2-builtin-${sectionIndex}-output.json`, result);
25551
- const sanitizedContent = result.content && typeof result.content === "object" ? sanitizeExtractedContent(result.content) : result.content;
26026
+ const rawContent = result.content;
26027
+ const sanitizedContent = isRecord2(rawContent) ? sanitizeExtractedContent(rawContent) : {};
25552
26028
  return {
25553
26029
  success: true,
25554
26030
  block: {