@riverbankcms/sdk 0.77.0 → 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 (237) hide show
  1. package/README.md +69 -0
  2. package/dist/{PreviewEditorSidebar-XSX7QKHQ.mjs → PreviewEditorSidebar-RIKFQ72L.mjs} +4916 -4847
  3. package/dist/{PreviewEditorUI-YZNEZ3QD.mjs → PreviewEditorUI-XO7TUWKK.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +194 -184
  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/customBlockRegistry.d.ts +20 -1
  26. package/dist/_dts/blocks/src/index.d.ts +3 -2
  27. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  28. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  29. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  30. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  31. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  32. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  33. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
  34. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  35. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +21 -21
  37. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  38. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  39. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  40. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
  41. package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
  42. package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
  43. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
  44. package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
  45. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +5 -0
  46. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -29
  47. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
  48. package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
  49. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
  50. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
  51. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  52. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
  54. package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
  55. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
  57. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
  59. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
  60. package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
  63. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
  67. package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
  68. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
  69. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  70. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  71. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -4
  72. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  73. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  74. package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
  75. package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
  76. package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
  77. package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
  78. package/dist/_dts/content-editor/src/index.d.ts +5 -0
  79. package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
  80. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  81. package/dist/_dts/content-model/src/index.d.ts +1 -0
  82. package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
  83. package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
  84. package/dist/_dts/core/src/csv-cells.d.ts +10 -0
  85. package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
  86. package/dist/_dts/core/src/csv-escape.d.ts +1 -0
  87. package/dist/_dts/core/src/csv-filename.d.ts +18 -0
  88. package/dist/_dts/core/src/csv-render.d.ts +4 -0
  89. package/dist/_dts/core/src/csv-types.d.ts +116 -0
  90. package/dist/_dts/core/src/currency-format.d.ts +4 -0
  91. package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
  92. package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
  93. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
  94. package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
  95. package/dist/_dts/core/src/duration.d.ts +14 -0
  96. package/dist/_dts/core/src/email-format.d.ts +10 -0
  97. package/dist/_dts/core/src/field-errors.d.ts +1 -0
  98. package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
  99. package/dist/_dts/core/src/index.d.ts +20 -0
  100. package/dist/_dts/core/src/number-input.d.ts +22 -0
  101. package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
  102. package/dist/_dts/core/src/slug.d.ts +39 -0
  103. package/dist/_dts/core/src/string.d.ts +19 -0
  104. package/dist/_dts/core/src/uuid.d.ts +6 -0
  105. package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
  106. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
  107. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
  108. package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
  109. package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
  110. package/dist/_dts/media-core/src/filename.d.ts +1 -0
  111. package/dist/_dts/media-core/src/index.d.ts +10 -0
  112. package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
  113. package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
  114. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
  115. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
  116. package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
  117. package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
  118. package/dist/_dts/path-utils/src/index.d.ts +8 -0
  119. package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
  120. package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
  121. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
  122. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
  123. package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
  124. package/dist/_dts/sdk/src/client/error.d.ts +3 -0
  125. package/dist/_dts/sdk/src/client/index.d.ts +2 -2
  126. package/dist/_dts/sdk/src/client/types.d.ts +37 -19
  127. package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
  128. package/dist/_dts/sdk/src/index.d.ts +2 -2
  129. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
  130. package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
  131. package/dist/_dts/sdk/src/next/index.d.ts +2 -1
  132. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  133. package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
  134. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  135. package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
  136. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
  137. package/dist/_dts/sdk/src/version.d.ts +1 -1
  138. package/dist/_dts/site-commands/src/commands.d.ts +12 -12
  139. package/dist/_dts/site-commands/src/index.d.ts +1 -0
  140. package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
  141. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
  142. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
  143. package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
  144. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
  145. package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
  146. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  147. package/dist/_dts/theme-core/src/index.d.ts +3 -1
  148. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +63 -51
  149. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
  150. package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
  151. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
  152. package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
  153. package/dist/_dts/theme-core/src/schema.d.ts +90 -48
  154. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
  155. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
  156. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
  157. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -1
  158. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +35 -7
  159. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  160. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +96 -34
  161. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
  162. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
  164. package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
  165. package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
  166. package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
  167. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
  168. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
  169. package/dist/{chunk-EAWHBECW.mjs → chunk-F7RTCZYN.mjs} +229 -50
  170. package/dist/{chunk-GSQX43EZ.mjs → chunk-NIDXI46P.mjs} +22 -41
  171. package/dist/{chunk-WLQBJN2Z.mjs → chunk-OECWLDHN.mjs} +4538 -1911
  172. package/dist/{chunk-VX7B5VAC.mjs → chunk-SVMMM2NA.mjs} +8 -0
  173. package/dist/{chunk-6SMUFTXD.mjs → chunk-SXOLGNMX.mjs} +1 -1
  174. package/dist/{chunk-ANKDYZ2E.mjs → chunk-TXDES5P2.mjs} +2 -2
  175. package/dist/cli/index.mjs +2036 -594
  176. package/dist/client/{accordion-RZMQSYLR.mjs → accordion-EVDEOUPR.mjs} +2 -2
  177. package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-DIHBLC64.mjs} +27 -30
  178. package/dist/client/bookings.mjs +3707 -259
  179. package/dist/client/{carousel-LDX47ZIK.mjs → carousel-FEBQHIWI.mjs} +3 -4
  180. package/dist/client/{cart-RGXDS5F4.mjs → cart-7CKSXAE4.mjs} +8 -8
  181. package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WKYCANLV.mjs} +8 -8
  182. package/dist/client/{chunk-JNC7CGHX.mjs → chunk-2SAVKN2M.mjs} +2 -2
  183. package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-36WJCERQ.mjs} +1 -1
  184. package/dist/client/{chunk-R56FQ3RR.mjs → chunk-65F47D7Y.mjs} +280 -71
  185. package/dist/client/{chunk-L3DNHIJX.mjs → chunk-GUK2FPXQ.mjs} +23 -45
  186. package/dist/client/{chunk-PMAIXMAB.mjs → chunk-IVNCUVAV.mjs} +26 -21
  187. package/dist/client/{chunk-II7O4XN3.mjs → chunk-OFMSCGNY.mjs} +2 -2
  188. package/dist/client/chunk-PD6NBCEY.mjs +66 -0
  189. package/dist/client/{chunk-GMVTOKYG.mjs → chunk-RV6FX7UH.mjs} +510 -64
  190. package/dist/client/{chunk-E2TDNXCL.mjs → chunk-RZDWX7QW.mjs} +2 -1
  191. package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
  192. package/dist/client/{chunk-JEZECJ3W.mjs → chunk-VPPMNXCF.mjs} +129 -3
  193. package/dist/client/{chunk-UFSWADAO.mjs → chunk-YDSEG6GZ.mjs} +5 -66
  194. package/dist/client/client.mjs +8983 -6152
  195. package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-5QF2PHKM.mjs} +14 -11
  196. package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-4ZOSETDU.mjs} +9 -9
  197. package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-WQGU7JUX.mjs} +9 -9
  198. package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-AYWVUJ5Y.mjs} +9 -9
  199. package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-NT7C6UT5.mjs} +9 -9
  200. package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-OH24F4ZJ.mjs} +9 -9
  201. package/dist/client/{form-ETFZFATW.mjs → form-7L42SRBB.mjs} +6 -6
  202. package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-OZRZNZ52.mjs} +3 -3
  203. package/dist/client/hooks.mjs +1388 -427
  204. package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-ZBXRPQ7C.mjs} +2 -2
  205. package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-SNAGFF2I.mjs} +3 -3
  206. package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-I46BOFGV.mjs} +8 -8
  207. package/dist/client/{productList-A5RO5WIS.mjs → productList-BOYHTYI6.mjs} +8 -8
  208. package/dist/client/rendering/client.mjs +7090 -2645
  209. package/dist/client/rendering/islands.mjs +19 -19
  210. package/dist/client/rendering.mjs +7395 -4767
  211. package/dist/client/{shop-L4MZH4I2.mjs → shop-XTXPZTKR.mjs} +8 -8
  212. package/dist/preview-next/before-render.mjs +8 -0
  213. package/dist/preview-next/client/runtime.mjs +5 -5
  214. package/dist/preview-next/editor-chrome.css +10 -0
  215. package/dist/preview-next/middleware.mjs +8 -0
  216. package/dist/{sdk-runtime-Q6MTR4KL.mjs → sdk-runtime-ZJLKC6DR.mjs} +6 -6
  217. package/dist/server/components.mjs +4175 -2480
  218. package/dist/server/config-validation.mjs +1619 -658
  219. package/dist/server/config.mjs +1619 -658
  220. package/dist/server/data.mjs +1388 -427
  221. package/dist/server/index.mjs +488 -246
  222. package/dist/server/next.mjs +5607 -3354
  223. package/dist/server/page-converter.mjs +912 -259
  224. package/dist/server/prebuild.mjs +1 -1
  225. package/dist/server/rendering/server.mjs +4176 -2481
  226. package/dist/server/rendering.mjs +4194 -2486
  227. package/dist/server/routing.mjs +2078 -639
  228. package/dist/server/server.mjs +1886 -685
  229. package/dist/server/theme-bridge.mjs +4441 -1300
  230. package/dist/server/theme.mjs +89 -12
  231. package/dist/styles/index.css +1576 -1083
  232. package/package.json +2 -1
  233. package/dist/SdkPreviewModeRuntime-5FS5E6BI.mjs +0 -8
  234. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
  235. package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
  236. package/dist/client/chunk-OJPZEZU2.mjs +0 -31
  237. package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
@@ -3927,6 +3927,14 @@ var init_endpoints = __esm({
3927
3927
  responseKind: "json",
3928
3928
  errors: []
3929
3929
  },
3930
+ applyDiscountCode: {
3931
+ path: "/public/sites/{siteId}/bookings/discounts/apply",
3932
+ method: "POST",
3933
+ tags: ["site-{siteId}", "booking-discounts"],
3934
+ auth: "public",
3935
+ responseKind: "json",
3936
+ errors: ["validation:invalid_input", "rate_limit:exceeded"]
3937
+ },
3930
3938
  // Batch endpoint for block loader requests (reduces SSR fan-out)
3931
3939
  batchBlockLoaders: {
3932
3940
  path: "/public/sites/{siteId}/block-loaders/batch",
@@ -6268,6 +6276,379 @@ var init_endpoints = __esm({
6268
6276
  }
6269
6277
  });
6270
6278
 
6279
+ // ../core/src/branded.ts
6280
+ var asStorageBucketName, unsafeAsPositiveByteCount, unsafeAsPositiveSeconds;
6281
+ var init_branded = __esm({
6282
+ "../core/src/branded.ts"() {
6283
+ "use strict";
6284
+ asStorageBucketName = (value) => value;
6285
+ unsafeAsPositiveByteCount = (value) => value;
6286
+ unsafeAsPositiveSeconds = (value) => value;
6287
+ }
6288
+ });
6289
+
6290
+ // ../core/src/date-math.ts
6291
+ var init_date_math = __esm({
6292
+ "../core/src/date-math.ts"() {
6293
+ "use strict";
6294
+ }
6295
+ });
6296
+
6297
+ // ../core/src/duration.ts
6298
+ var DURATION_UNIT_MINUTES;
6299
+ var init_duration = __esm({
6300
+ "../core/src/duration.ts"() {
6301
+ "use strict";
6302
+ DURATION_UNIT_MINUTES = {
6303
+ minutes: 1,
6304
+ hours: 60,
6305
+ days: 60 * 24,
6306
+ weeks: 60 * 24 * 7
6307
+ };
6308
+ }
6309
+ });
6310
+
6311
+ // ../core/src/demo-capability-policy.ts
6312
+ var init_demo_capability_policy = __esm({
6313
+ "../core/src/demo-capability-policy.ts"() {
6314
+ "use strict";
6315
+ }
6316
+ });
6317
+
6318
+ // ../core/src/demo-claim-access.ts
6319
+ var init_demo_claim_access = __esm({
6320
+ "../core/src/demo-claim-access.ts"() {
6321
+ "use strict";
6322
+ }
6323
+ });
6324
+
6325
+ // ../core/src/demo-lifecycle-status.ts
6326
+ var init_demo_lifecycle_status = __esm({
6327
+ "../core/src/demo-lifecycle-status.ts"() {
6328
+ "use strict";
6329
+ }
6330
+ });
6331
+
6332
+ // ../core/src/demo-runtime.ts
6333
+ var init_demo_runtime = __esm({
6334
+ "../core/src/demo-runtime.ts"() {
6335
+ "use strict";
6336
+ }
6337
+ });
6338
+
6339
+ // ../core/src/collections.ts
6340
+ var init_collections = __esm({
6341
+ "../core/src/collections.ts"() {
6342
+ "use strict";
6343
+ }
6344
+ });
6345
+
6346
+ // ../core/src/event-pricing.ts
6347
+ var init_event_pricing = __esm({
6348
+ "../core/src/event-pricing.ts"() {
6349
+ "use strict";
6350
+ }
6351
+ });
6352
+
6353
+ // ../core/src/money-input.ts
6354
+ var init_money_input = __esm({
6355
+ "../core/src/money-input.ts"() {
6356
+ "use strict";
6357
+ }
6358
+ });
6359
+
6360
+ // ../core/src/booking-flexible-balance.ts
6361
+ var init_booking_flexible_balance = __esm({
6362
+ "../core/src/booking-flexible-balance.ts"() {
6363
+ "use strict";
6364
+ }
6365
+ });
6366
+
6367
+ // ../core/src/booking-refunds.ts
6368
+ var init_booking_refunds = __esm({
6369
+ "../core/src/booking-refunds.ts"() {
6370
+ "use strict";
6371
+ }
6372
+ });
6373
+
6374
+ // ../core/src/booking-instalments.ts
6375
+ var init_booking_instalments = __esm({
6376
+ "../core/src/booking-instalments.ts"() {
6377
+ "use strict";
6378
+ }
6379
+ });
6380
+
6381
+ // ../core/src/result.ts
6382
+ var init_result = __esm({
6383
+ "../core/src/result.ts"() {
6384
+ "use strict";
6385
+ }
6386
+ });
6387
+
6388
+ // ../core/src/booking-date-time.ts
6389
+ var init_booking_date_time = __esm({
6390
+ "../core/src/booking-date-time.ts"() {
6391
+ "use strict";
6392
+ }
6393
+ });
6394
+
6395
+ // ../core/src/person-records.ts
6396
+ var init_person_records = __esm({
6397
+ "../core/src/person-records.ts"() {
6398
+ "use strict";
6399
+ }
6400
+ });
6401
+
6402
+ // ../core/src/rectification.ts
6403
+ var init_rectification = __esm({
6404
+ "../core/src/rectification.ts"() {
6405
+ "use strict";
6406
+ }
6407
+ });
6408
+
6409
+ // ../core/src/location.ts
6410
+ function normalizeLocationAddressText(value) {
6411
+ if (typeof value !== "string") {
6412
+ return null;
6413
+ }
6414
+ const trimmed = value.trim();
6415
+ return trimmed ? trimmed : null;
6416
+ }
6417
+ function hasLocationCoordinates(value) {
6418
+ return typeof value?.lat === "number" && typeof value?.lng === "number";
6419
+ }
6420
+ function toLocationCoordinates(value) {
6421
+ if (!hasLocationCoordinates(value)) {
6422
+ return null;
6423
+ }
6424
+ return {
6425
+ lat: value.lat,
6426
+ lng: value.lng
6427
+ };
6428
+ }
6429
+ var init_location = __esm({
6430
+ "../core/src/location.ts"() {
6431
+ "use strict";
6432
+ }
6433
+ });
6434
+
6435
+ // ../core/src/business-address.ts
6436
+ var init_business_address = __esm({
6437
+ "../core/src/business-address.ts"() {
6438
+ "use strict";
6439
+ }
6440
+ });
6441
+
6442
+ // ../core/src/narrow-result.ts
6443
+ var init_narrow_result = __esm({
6444
+ "../core/src/narrow-result.ts"() {
6445
+ "use strict";
6446
+ }
6447
+ });
6448
+
6449
+ // ../core/src/non-empty-array.ts
6450
+ var init_non_empty_array = __esm({
6451
+ "../core/src/non-empty-array.ts"() {
6452
+ "use strict";
6453
+ }
6454
+ });
6455
+
6456
+ // ../core/src/editor-state.ts
6457
+ var init_editor_state = __esm({
6458
+ "../core/src/editor-state.ts"() {
6459
+ "use strict";
6460
+ }
6461
+ });
6462
+
6463
+ // ../core/src/sensitive-collection.ts
6464
+ var init_sensitive_collection = __esm({
6465
+ "../core/src/sensitive-collection.ts"() {
6466
+ "use strict";
6467
+ }
6468
+ });
6469
+
6470
+ // ../core/src/assertNever.ts
6471
+ var init_assertNever = __esm({
6472
+ "../core/src/assertNever.ts"() {
6473
+ "use strict";
6474
+ }
6475
+ });
6476
+
6477
+ // ../core/src/participants.ts
6478
+ var init_participants = __esm({
6479
+ "../core/src/participants.ts"() {
6480
+ "use strict";
6481
+ }
6482
+ });
6483
+
6484
+ // ../core/src/participant-identity.ts
6485
+ var init_participant_identity = __esm({
6486
+ "../core/src/participant-identity.ts"() {
6487
+ "use strict";
6488
+ }
6489
+ });
6490
+
6491
+ // ../core/src/public-url-validation.ts
6492
+ var init_public_url_validation = __esm({
6493
+ "../core/src/public-url-validation.ts"() {
6494
+ "use strict";
6495
+ }
6496
+ });
6497
+
6498
+ // ../core/src/number-input.ts
6499
+ var init_number_input = __esm({
6500
+ "../core/src/number-input.ts"() {
6501
+ "use strict";
6502
+ }
6503
+ });
6504
+
6505
+ // ../core/src/field-errors.ts
6506
+ var init_field_errors = __esm({
6507
+ "../core/src/field-errors.ts"() {
6508
+ "use strict";
6509
+ }
6510
+ });
6511
+
6512
+ // ../core/src/form-submission-preview.ts
6513
+ var init_form_submission_preview = __esm({
6514
+ "../core/src/form-submission-preview.ts"() {
6515
+ "use strict";
6516
+ }
6517
+ });
6518
+
6519
+ // ../core/src/csv-cells.ts
6520
+ var init_csv_cells = __esm({
6521
+ "../core/src/csv-cells.ts"() {
6522
+ "use strict";
6523
+ }
6524
+ });
6525
+
6526
+ // ../core/src/csv-date-filter.ts
6527
+ var init_csv_date_filter = __esm({
6528
+ "../core/src/csv-date-filter.ts"() {
6529
+ "use strict";
6530
+ }
6531
+ });
6532
+
6533
+ // ../core/src/csv-escape.ts
6534
+ var init_csv_escape = __esm({
6535
+ "../core/src/csv-escape.ts"() {
6536
+ "use strict";
6537
+ }
6538
+ });
6539
+
6540
+ // ../core/src/csv-filename.ts
6541
+ var init_csv_filename = __esm({
6542
+ "../core/src/csv-filename.ts"() {
6543
+ "use strict";
6544
+ }
6545
+ });
6546
+
6547
+ // ../core/src/csv-render.ts
6548
+ var init_csv_render = __esm({
6549
+ "../core/src/csv-render.ts"() {
6550
+ "use strict";
6551
+ }
6552
+ });
6553
+
6554
+ // ../core/src/csv-types.ts
6555
+ var init_csv_types = __esm({
6556
+ "../core/src/csv-types.ts"() {
6557
+ "use strict";
6558
+ }
6559
+ });
6560
+
6561
+ // ../core/src/currency-format.ts
6562
+ var init_currency_format = __esm({
6563
+ "../core/src/currency-format.ts"() {
6564
+ "use strict";
6565
+ }
6566
+ });
6567
+
6568
+ // ../core/src/email-format.ts
6569
+ var init_email_format = __esm({
6570
+ "../core/src/email-format.ts"() {
6571
+ "use strict";
6572
+ }
6573
+ });
6574
+
6575
+ // ../core/src/slug.ts
6576
+ var init_slug = __esm({
6577
+ "../core/src/slug.ts"() {
6578
+ "use strict";
6579
+ }
6580
+ });
6581
+
6582
+ // ../core/src/string.ts
6583
+ var init_string = __esm({
6584
+ "../core/src/string.ts"() {
6585
+ "use strict";
6586
+ }
6587
+ });
6588
+
6589
+ // ../core/src/uuid.ts
6590
+ var init_uuid = __esm({
6591
+ "../core/src/uuid.ts"() {
6592
+ "use strict";
6593
+ }
6594
+ });
6595
+
6596
+ // ../core/src/index.ts
6597
+ var init_src = __esm({
6598
+ "../core/src/index.ts"() {
6599
+ "use strict";
6600
+ init_branded();
6601
+ init_date_math();
6602
+ init_duration();
6603
+ init_demo_capability_policy();
6604
+ init_demo_claim_access();
6605
+ init_demo_lifecycle_status();
6606
+ init_demo_runtime();
6607
+ init_collections();
6608
+ init_event_pricing();
6609
+ init_money_input();
6610
+ init_booking_flexible_balance();
6611
+ init_booking_refunds();
6612
+ init_booking_instalments();
6613
+ init_booking_date_time();
6614
+ init_person_records();
6615
+ init_rectification();
6616
+ init_location();
6617
+ init_business_address();
6618
+ init_result();
6619
+ init_narrow_result();
6620
+ init_non_empty_array();
6621
+ init_editor_state();
6622
+ init_sensitive_collection();
6623
+ init_assertNever();
6624
+ init_participants();
6625
+ init_participant_identity();
6626
+ init_public_url_validation();
6627
+ init_number_input();
6628
+ init_field_errors();
6629
+ init_form_submission_preview();
6630
+ init_csv_cells();
6631
+ init_csv_date_filter();
6632
+ init_csv_escape();
6633
+ init_csv_filename();
6634
+ init_csv_render();
6635
+ init_csv_types();
6636
+ init_currency_format();
6637
+ init_email_format();
6638
+ init_slug();
6639
+ init_string();
6640
+ init_uuid();
6641
+ }
6642
+ });
6643
+
6644
+ // ../api/src/demoDashboardMutationSurfaces.ts
6645
+ var init_demoDashboardMutationSurfaces = __esm({
6646
+ "../api/src/demoDashboardMutationSurfaces.ts"() {
6647
+ "use strict";
6648
+ init_endpoints();
6649
+ }
6650
+ });
6651
+
6271
6652
  // ../api/src/accessAdmin.ts
6272
6653
  import { z } from "zod";
6273
6654
  var managedDomainAddOnPricingSnapshotSchema;
@@ -6504,204 +6885,6 @@ var init_types = __esm({
6504
6885
  }
6505
6886
  });
6506
6887
 
6507
- // ../core/src/branded.ts
6508
- var asStorageBucketName, unsafeAsPositiveByteCount, unsafeAsPositiveSeconds;
6509
- var init_branded = __esm({
6510
- "../core/src/branded.ts"() {
6511
- "use strict";
6512
- asStorageBucketName = (value) => value;
6513
- unsafeAsPositiveByteCount = (value) => value;
6514
- unsafeAsPositiveSeconds = (value) => value;
6515
- }
6516
- });
6517
-
6518
- // ../core/src/date-math.ts
6519
- var init_date_math = __esm({
6520
- "../core/src/date-math.ts"() {
6521
- "use strict";
6522
- }
6523
- });
6524
-
6525
- // ../core/src/collections.ts
6526
- var init_collections = __esm({
6527
- "../core/src/collections.ts"() {
6528
- "use strict";
6529
- }
6530
- });
6531
-
6532
- // ../core/src/event-pricing.ts
6533
- var init_event_pricing = __esm({
6534
- "../core/src/event-pricing.ts"() {
6535
- "use strict";
6536
- }
6537
- });
6538
-
6539
- // ../core/src/money-input.ts
6540
- var init_money_input = __esm({
6541
- "../core/src/money-input.ts"() {
6542
- "use strict";
6543
- }
6544
- });
6545
-
6546
- // ../core/src/booking-flexible-balance.ts
6547
- var init_booking_flexible_balance = __esm({
6548
- "../core/src/booking-flexible-balance.ts"() {
6549
- "use strict";
6550
- }
6551
- });
6552
-
6553
- // ../core/src/booking-refunds.ts
6554
- var init_booking_refunds = __esm({
6555
- "../core/src/booking-refunds.ts"() {
6556
- "use strict";
6557
- }
6558
- });
6559
-
6560
- // ../core/src/booking-instalments.ts
6561
- var init_booking_instalments = __esm({
6562
- "../core/src/booking-instalments.ts"() {
6563
- "use strict";
6564
- }
6565
- });
6566
-
6567
- // ../core/src/result.ts
6568
- var init_result = __esm({
6569
- "../core/src/result.ts"() {
6570
- "use strict";
6571
- }
6572
- });
6573
-
6574
- // ../core/src/booking-date-time.ts
6575
- var init_booking_date_time = __esm({
6576
- "../core/src/booking-date-time.ts"() {
6577
- "use strict";
6578
- }
6579
- });
6580
-
6581
- // ../core/src/person-records.ts
6582
- var init_person_records = __esm({
6583
- "../core/src/person-records.ts"() {
6584
- "use strict";
6585
- }
6586
- });
6587
-
6588
- // ../core/src/rectification.ts
6589
- var init_rectification = __esm({
6590
- "../core/src/rectification.ts"() {
6591
- "use strict";
6592
- }
6593
- });
6594
-
6595
- // ../core/src/location.ts
6596
- function normalizeLocationAddressText(value) {
6597
- if (typeof value !== "string") {
6598
- return null;
6599
- }
6600
- const trimmed = value.trim();
6601
- return trimmed ? trimmed : null;
6602
- }
6603
- function hasLocationCoordinates(value) {
6604
- return typeof value?.lat === "number" && typeof value?.lng === "number";
6605
- }
6606
- function toLocationCoordinates(value) {
6607
- if (!hasLocationCoordinates(value)) {
6608
- return null;
6609
- }
6610
- return {
6611
- lat: value.lat,
6612
- lng: value.lng
6613
- };
6614
- }
6615
- var init_location = __esm({
6616
- "../core/src/location.ts"() {
6617
- "use strict";
6618
- }
6619
- });
6620
-
6621
- // ../core/src/business-address.ts
6622
- var init_business_address = __esm({
6623
- "../core/src/business-address.ts"() {
6624
- "use strict";
6625
- }
6626
- });
6627
-
6628
- // ../core/src/narrow-result.ts
6629
- var init_narrow_result = __esm({
6630
- "../core/src/narrow-result.ts"() {
6631
- "use strict";
6632
- }
6633
- });
6634
-
6635
- // ../core/src/non-empty-array.ts
6636
- var init_non_empty_array = __esm({
6637
- "../core/src/non-empty-array.ts"() {
6638
- "use strict";
6639
- }
6640
- });
6641
-
6642
- // ../core/src/editor-state.ts
6643
- var init_editor_state = __esm({
6644
- "../core/src/editor-state.ts"() {
6645
- "use strict";
6646
- }
6647
- });
6648
-
6649
- // ../core/src/sensitive-collection.ts
6650
- var init_sensitive_collection = __esm({
6651
- "../core/src/sensitive-collection.ts"() {
6652
- "use strict";
6653
- }
6654
- });
6655
-
6656
- // ../core/src/assertNever.ts
6657
- var init_assertNever = __esm({
6658
- "../core/src/assertNever.ts"() {
6659
- "use strict";
6660
- }
6661
- });
6662
-
6663
- // ../core/src/participants.ts
6664
- var init_participants = __esm({
6665
- "../core/src/participants.ts"() {
6666
- "use strict";
6667
- }
6668
- });
6669
-
6670
- // ../core/src/participant-identity.ts
6671
- var init_participant_identity = __esm({
6672
- "../core/src/participant-identity.ts"() {
6673
- "use strict";
6674
- }
6675
- });
6676
-
6677
- // ../core/src/index.ts
6678
- var init_src = __esm({
6679
- "../core/src/index.ts"() {
6680
- "use strict";
6681
- init_branded();
6682
- init_date_math();
6683
- init_collections();
6684
- init_event_pricing();
6685
- init_money_input();
6686
- init_booking_flexible_balance();
6687
- init_booking_refunds();
6688
- init_booking_instalments();
6689
- init_booking_date_time();
6690
- init_person_records();
6691
- init_rectification();
6692
- init_location();
6693
- init_business_address();
6694
- init_result();
6695
- init_narrow_result();
6696
- init_non_empty_array();
6697
- init_editor_state();
6698
- init_sensitive_collection();
6699
- init_assertNever();
6700
- init_participants();
6701
- init_participant_identity();
6702
- }
6703
- });
6704
-
6705
6888
  // ../media-core/src/fileSafety.ts
6706
6889
  var init_fileSafety = __esm({
6707
6890
  "../media-core/src/fileSafety.ts"() {
@@ -6876,6 +7059,39 @@ var init_fileMimeDetection = __esm({
6876
7059
  }
6877
7060
  });
6878
7061
 
7062
+ // ../media-core/src/filename.ts
7063
+ var init_filename = __esm({
7064
+ "../media-core/src/filename.ts"() {
7065
+ "use strict";
7066
+ }
7067
+ });
7068
+
7069
+ // ../media-core/src/uploadVerificationContract.ts
7070
+ var PRODUCT_FILE_EXTENSION_TAGS, PRODUCT_FILE_EXTENSIONS, TEXT_FALLBACK_SCAN_BYTES;
7071
+ var init_uploadVerificationContract = __esm({
7072
+ "../media-core/src/uploadVerificationContract.ts"() {
7073
+ "use strict";
7074
+ PRODUCT_FILE_EXTENSION_TAGS = [
7075
+ "pdf",
7076
+ "docx",
7077
+ "txt",
7078
+ "rtf",
7079
+ "csv",
7080
+ "zip",
7081
+ "mp3",
7082
+ "m4a",
7083
+ "wav",
7084
+ "ogg",
7085
+ "flac",
7086
+ "webm",
7087
+ "mp4",
7088
+ "mov"
7089
+ ];
7090
+ PRODUCT_FILE_EXTENSIONS = new Set(PRODUCT_FILE_EXTENSION_TAGS);
7091
+ TEXT_FALLBACK_SCAN_BYTES = 4 * 1024;
7092
+ }
7093
+ });
7094
+
6879
7095
  // ../media-core/src/videoPrep.ts
6880
7096
  var VIDEO_PREP_LIMITS;
6881
7097
  var init_videoPrep = __esm({
@@ -6890,6 +7106,55 @@ var init_videoPrep = __esm({
6890
7106
  }
6891
7107
  });
6892
7108
 
7109
+ // ../media-core/src/videoAssetRepair.ts
7110
+ var init_videoAssetRepair = __esm({
7111
+ "../media-core/src/videoAssetRepair.ts"() {
7112
+ "use strict";
7113
+ }
7114
+ });
7115
+
7116
+ // ../media-core/src/canonicalCropReview.ts
7117
+ var init_canonicalCropReview = __esm({
7118
+ "../media-core/src/canonicalCropReview.ts"() {
7119
+ "use strict";
7120
+ }
7121
+ });
7122
+
7123
+ // ../media-core/src/mediaAssetUsageStatus.ts
7124
+ var init_mediaAssetUsageStatus = __esm({
7125
+ "../media-core/src/mediaAssetUsageStatus.ts"() {
7126
+ "use strict";
7127
+ }
7128
+ });
7129
+
7130
+ // ../media-core/src/assetsInUseSummary.ts
7131
+ var init_assetsInUseSummary = __esm({
7132
+ "../media-core/src/assetsInUseSummary.ts"() {
7133
+ "use strict";
7134
+ }
7135
+ });
7136
+
7137
+ // ../media-core/src/bulkDeletePlanning.ts
7138
+ var init_bulkDeletePlanning = __esm({
7139
+ "../media-core/src/bulkDeletePlanning.ts"() {
7140
+ "use strict";
7141
+ }
7142
+ });
7143
+
7144
+ // ../media-core/src/classifyAllPlanning.ts
7145
+ var init_classifyAllPlanning = __esm({
7146
+ "../media-core/src/classifyAllPlanning.ts"() {
7147
+ "use strict";
7148
+ }
7149
+ });
7150
+
7151
+ // ../media-core/src/mediaSettingsState.ts
7152
+ var init_mediaSettingsState = __esm({
7153
+ "../media-core/src/mediaSettingsState.ts"() {
7154
+ "use strict";
7155
+ }
7156
+ });
7157
+
6893
7158
  // ../media-core/src/videoSlotPolicy.ts
6894
7159
  var init_videoSlotPolicy = __esm({
6895
7160
  "../media-core/src/videoSlotPolicy.ts"() {
@@ -7035,6 +7300,13 @@ var init_mediaUsageProjection = __esm({
7035
7300
  }
7036
7301
  });
7037
7302
 
7303
+ // ../media-core/src/portableMediaReferences.ts
7304
+ var init_portableMediaReferences = __esm({
7305
+ "../media-core/src/portableMediaReferences.ts"() {
7306
+ "use strict";
7307
+ }
7308
+ });
7309
+
7038
7310
  // ../media-core/src/index.ts
7039
7311
  var init_src2 = __esm({
7040
7312
  "../media-core/src/index.ts"() {
@@ -7055,7 +7327,16 @@ var init_src2 = __esm({
7055
7327
  init_fileAssetDeletion();
7056
7328
  init_fileAssetCompatibility();
7057
7329
  init_fileMimeDetection();
7330
+ init_filename();
7331
+ init_uploadVerificationContract();
7058
7332
  init_videoPrep();
7333
+ init_videoAssetRepair();
7334
+ init_canonicalCropReview();
7335
+ init_mediaAssetUsageStatus();
7336
+ init_assetsInUseSummary();
7337
+ init_bulkDeletePlanning();
7338
+ init_classifyAllPlanning();
7339
+ init_mediaSettingsState();
7059
7340
  init_videoSlotPolicy();
7060
7341
  init_identifiers();
7061
7342
  init_aspectTransforms();
@@ -7063,6 +7344,7 @@ var init_src2 = __esm({
7063
7344
  init_mediaWriteNormalizer();
7064
7345
  init_richTextImageWriteNormalizer();
7065
7346
  init_mediaUsageProjection();
7347
+ init_portableMediaReferences();
7066
7348
  }
7067
7349
  });
7068
7350
 
@@ -8225,6 +8507,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
8225
8507
  const next = encodeURIComponent(nextBlockId);
8226
8508
  return asDesignBoundaryId(`boundary:${previous}:${next}`);
8227
8509
  }
8510
+ function assertNever(value, message = "Unhandled Theme V2 variant") {
8511
+ throw new Error(`${message}: ${String(value)}`);
8512
+ }
8228
8513
  function brandNonEmptyString(value, label) {
8229
8514
  if (value.length === 0) {
8230
8515
  throw new Error(`${label} must be a non-empty string.`);
@@ -8253,12 +8538,13 @@ function defineBlockDesignCapability(capability) {
8253
8538
  imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
8254
8539
  testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
8255
8540
  tileTreatments: capability.tileTreatments ?? ["default"],
8541
+ eventListTreatments: capability.eventListTreatments ?? ["plain"],
8256
8542
  eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
8257
8543
  ...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
8258
8544
  ...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
8259
8545
  };
8260
8546
  }
8261
- var plainFrame, tileTreatmentValues, eyebrowTreatmentValues, visibleHeadingDecorationFamilyValues, visibleHeadingDecorationPlacementValues, headingDecorationOverrideValues, headingDecorationColorTokenValues, accordionIconSetValues, accordionIconColorTokenValues, accordionIconMotionValues;
8547
+ var plainFrame, tileTreatmentValues, eventListTreatmentValues, eyebrowTreatmentValues, visibleHeadingDecorationFamilyValues, visibleHeadingDecorationPlacementValues, headingDecorationOverrideValues, headingDecorationColorTokenValues, accordionIconSetValues, accordionIconColorTokenValues, accordionIconMotionValues;
8262
8548
  var init_types2 = __esm({
8263
8549
  "../theme-core/src/site-styles/types.ts"() {
8264
8550
  "use strict";
@@ -8270,6 +8556,10 @@ var init_types2 = __esm({
8270
8556
  "quiet",
8271
8557
  "brand-depth"
8272
8558
  ];
8559
+ eventListTreatmentValues = [
8560
+ "plain",
8561
+ "lined-panel"
8562
+ ];
8273
8563
  eyebrowTreatmentValues = [
8274
8564
  "plain",
8275
8565
  "pill",
@@ -8345,9 +8635,98 @@ var init_blockAppearancePresets = __esm({
8345
8635
  transitionAfter: "soft-fade-short",
8346
8636
  emphasis: "high",
8347
8637
  sectionHeight: "hero",
8638
+ heroComposition: "center",
8639
+ heroTypographyScale: "display",
8348
8640
  imageSurfaceTreatment: { kind: "neutral-wash" }
8349
8641
  }
8350
8642
  }),
8643
+ defineBlockAppearancePreset({
8644
+ kind: "block-design",
8645
+ id: "hero-bottom-left-panel",
8646
+ target: "hero",
8647
+ label: "Bottom-left panel hero",
8648
+ blockKinds: ["block.hero"],
8649
+ constraints: {
8650
+ layoutFamilies: ["centered", "compact"]
8651
+ },
8652
+ optionGroups: [
8653
+ {
8654
+ id: "image-surface-treatment",
8655
+ label: "Treatment",
8656
+ selectedOptionId: "neutral-scrim",
8657
+ options: [
8658
+ {
8659
+ id: "neutral-scrim",
8660
+ label: "Neutral scrim",
8661
+ designPatch: {
8662
+ imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
8663
+ }
8664
+ },
8665
+ {
8666
+ id: "brand-scrim-primary",
8667
+ label: "Brand scrim",
8668
+ designPatch: {
8669
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
8670
+ }
8671
+ }
8672
+ ]
8673
+ }
8674
+ ],
8675
+ layoutPatches: [
8676
+ {
8677
+ constraints: {
8678
+ layoutVariantKeys: ["micro"]
8679
+ },
8680
+ designPatch: {
8681
+ sectionHeight: "banner",
8682
+ heroTypographyScale: "editorial"
8683
+ }
8684
+ }
8685
+ ],
8686
+ design: {
8687
+ sectionSurface: "hero-image",
8688
+ contentFrame: panelFrame("raised"),
8689
+ itemSurface: "none",
8690
+ transitionAfter: "soft-fade-short",
8691
+ emphasis: "high",
8692
+ sectionHeight: "immersive",
8693
+ heroComposition: "bottom-left",
8694
+ heroTypographyScale: "display",
8695
+ imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
8696
+ }
8697
+ }),
8698
+ defineBlockAppearancePreset({
8699
+ kind: "block-design",
8700
+ id: "hero-poster-image",
8701
+ target: "hero",
8702
+ label: "Poster image hero",
8703
+ blockKinds: ["block.hero"],
8704
+ constraints: {
8705
+ layoutFamilies: ["centered", "compact"]
8706
+ },
8707
+ layoutPatches: [
8708
+ {
8709
+ constraints: {
8710
+ layoutVariantKeys: ["micro"]
8711
+ },
8712
+ designPatch: {
8713
+ sectionHeight: "banner",
8714
+ heroTypographyScale: "display"
8715
+ }
8716
+ }
8717
+ ],
8718
+ design: {
8719
+ sectionSurface: "hero-image",
8720
+ contentFrame: plainFrame,
8721
+ itemSurface: "none",
8722
+ transitionAfter: "soft-fade-short",
8723
+ emphasis: "high",
8724
+ sectionHeight: "immersive",
8725
+ heroComposition: "center",
8726
+ heroTypographyScale: "poster",
8727
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
8728
+ }
8729
+ }),
8351
8730
  defineBlockAppearancePreset({
8352
8731
  kind: "block-design",
8353
8732
  id: "hero-brand-scrim",
@@ -8397,6 +8776,8 @@ var init_blockAppearancePresets = __esm({
8397
8776
  transitionAfter: "soft-fade-short",
8398
8777
  emphasis: "high",
8399
8778
  sectionHeight: "immersive",
8779
+ heroComposition: "center",
8780
+ heroTypographyScale: "display",
8400
8781
  imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
8401
8782
  }
8402
8783
  }),
@@ -8449,6 +8830,8 @@ var init_blockAppearancePresets = __esm({
8449
8830
  transitionAfter: "soft-fade-short",
8450
8831
  emphasis: "high",
8451
8832
  sectionHeight: "immersive",
8833
+ heroComposition: "center",
8834
+ heroTypographyScale: "display",
8452
8835
  imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
8453
8836
  imageSurfaceMotion: "fixed-frame",
8454
8837
  eyebrowTreatment: "accent-pill-bounce"
@@ -8469,6 +8852,8 @@ var init_blockAppearancePresets = __esm({
8469
8852
  itemSurface: "none",
8470
8853
  transitionAfter: "soft-fade-short",
8471
8854
  emphasis: "high",
8855
+ heroComposition: "center",
8856
+ heroTypographyScale: "editorial",
8472
8857
  eyebrowTreatment: "accent-pill-bounce"
8473
8858
  }
8474
8859
  }),
@@ -8483,7 +8868,82 @@ var init_blockAppearancePresets = __esm({
8483
8868
  contentFrame: panelFrame("inset"),
8484
8869
  itemSurface: "none",
8485
8870
  transitionAfter: "none",
8486
- emphasis: "high"
8871
+ emphasis: "high",
8872
+ heroComposition: "center",
8873
+ heroTypographyScale: "editorial"
8874
+ }
8875
+ }),
8876
+ defineBlockAppearancePreset({
8877
+ kind: "block-design",
8878
+ id: "hero-split-editorial",
8879
+ target: "hero",
8880
+ label: "Editorial split hero",
8881
+ blockKinds: ["block.hero"],
8882
+ constraints: {
8883
+ layoutFamilies: ["split"]
8884
+ },
8885
+ design: {
8886
+ sectionSurface: "base",
8887
+ contentFrame: plainFrame,
8888
+ itemSurface: "none",
8889
+ transitionAfter: "soft-fade-short",
8890
+ emphasis: "high",
8891
+ heroTypographyScale: "editorial"
8892
+ }
8893
+ }),
8894
+ defineBlockAppearancePreset({
8895
+ kind: "block-design",
8896
+ id: "hero-split-brand",
8897
+ target: "hero",
8898
+ label: "Brand split hero",
8899
+ blockKinds: ["block.hero"],
8900
+ constraints: {
8901
+ layoutFamilies: ["split"]
8902
+ },
8903
+ design: {
8904
+ sectionSurface: "brand-depth-band",
8905
+ contentFrame: plainFrame,
8906
+ itemSurface: "none",
8907
+ transitionAfter: "soft-fade-short",
8908
+ emphasis: "high",
8909
+ heroTypographyScale: "display",
8910
+ eyebrowTreatment: "accent-pill-bounce"
8911
+ }
8912
+ }),
8913
+ defineBlockAppearancePreset({
8914
+ kind: "block-design",
8915
+ id: "hero-split-soft-panel",
8916
+ target: "hero",
8917
+ label: "Soft panel split hero",
8918
+ blockKinds: ["block.hero"],
8919
+ constraints: {
8920
+ layoutFamilies: ["split"]
8921
+ },
8922
+ design: {
8923
+ sectionSurface: "muted-band",
8924
+ contentFrame: panelFrame("raised"),
8925
+ itemSurface: "none",
8926
+ transitionAfter: "soft-fade-short",
8927
+ emphasis: "high",
8928
+ heroTypographyScale: "editorial"
8929
+ }
8930
+ }),
8931
+ defineBlockAppearancePreset({
8932
+ kind: "block-design",
8933
+ id: "hero-split-accent",
8934
+ target: "hero",
8935
+ label: "Accent split hero",
8936
+ blockKinds: ["block.hero"],
8937
+ constraints: {
8938
+ layoutFamilies: ["split"]
8939
+ },
8940
+ design: {
8941
+ sectionSurface: "accent-band",
8942
+ contentFrame: panelFrame("raised"),
8943
+ itemSurface: "none",
8944
+ transitionAfter: "soft-fade-short",
8945
+ emphasis: "high",
8946
+ heroTypographyScale: "display"
8487
8947
  }
8488
8948
  }),
8489
8949
  defineBlockAppearancePreset({
@@ -8516,9 +8976,9 @@ var init_blockAppearancePresets = __esm({
8516
8976
  }),
8517
8977
  defineBlockAppearancePreset({
8518
8978
  kind: "block-design",
8519
- id: "intro-soft-earth-statement",
8979
+ id: "intro-organic-statement",
8520
8980
  target: "intro",
8521
- label: "Soft Earth intro statement",
8981
+ label: "Organic intro statement",
8522
8982
  blockKinds: ["block.intro"],
8523
8983
  design: {
8524
8984
  sectionSurface: "base",
@@ -8549,9 +9009,9 @@ var init_blockAppearancePresets = __esm({
8549
9009
  }),
8550
9010
  defineBlockAppearancePreset({
8551
9011
  kind: "block-design",
8552
- id: "feature-cards-soft-earth-offerings",
9012
+ id: "feature-cards-raised-rule",
8553
9013
  target: "feature-cards",
8554
- label: "Soft Earth offering cards",
9014
+ label: "Raised cards with rule",
8555
9015
  blockKinds: ["block.feature-cards"],
8556
9016
  design: {
8557
9017
  sectionSurface: "base",
@@ -8580,6 +9040,21 @@ var init_blockAppearancePresets = __esm({
8580
9040
  emphasis: "medium"
8581
9041
  }
8582
9042
  }),
9043
+ defineBlockAppearancePreset({
9044
+ kind: "block-design",
9045
+ id: "events-lined-panel",
9046
+ target: "events",
9047
+ label: "Lined event panel",
9048
+ blockKinds: ["block.event-calendar", "block.event-listing"],
9049
+ design: {
9050
+ sectionSurface: "base",
9051
+ contentFrame: plainFrame,
9052
+ itemSurface: "none",
9053
+ transitionAfter: "none",
9054
+ emphasis: "medium",
9055
+ eventListTreatment: "lined-panel"
9056
+ }
9057
+ }),
8583
9058
  defineBlockAppearancePreset({
8584
9059
  kind: "block-design",
8585
9060
  id: "schedule-details-accent-section",
@@ -8639,9 +9114,9 @@ var init_blockAppearancePresets = __esm({
8639
9114
  }),
8640
9115
  defineBlockAppearancePreset({
8641
9116
  kind: "block-design",
8642
- id: "testimonials-carded-proof",
9117
+ id: "testimonials-simple-cards",
8643
9118
  target: "testimonials",
8644
- label: "Carded social proof",
9119
+ label: "Simple testimonial cards",
8645
9120
  blockKinds: ["block.testimonials"],
8646
9121
  design: {
8647
9122
  sectionSurface: "base",
@@ -8653,9 +9128,9 @@ var init_blockAppearancePresets = __esm({
8653
9128
  }),
8654
9129
  defineBlockAppearancePreset({
8655
9130
  kind: "block-design",
8656
- id: "testimonials-contained-proof",
9131
+ id: "testimonials-raised-panel",
8657
9132
  target: "testimonials",
8658
- label: "Contained social proof",
9133
+ label: "Raised testimonial panel",
8659
9134
  blockKinds: ["block.testimonials"],
8660
9135
  design: {
8661
9136
  sectionSurface: "muted-band",
@@ -8667,9 +9142,9 @@ var init_blockAppearancePresets = __esm({
8667
9142
  }),
8668
9143
  defineBlockAppearancePreset({
8669
9144
  kind: "block-design",
8670
- id: "testimonials-dark-proof",
9145
+ id: "testimonials-accent-panel",
8671
9146
  target: "testimonials",
8672
- label: "Dark proof panel",
9147
+ label: "Accent testimonial panel",
8673
9148
  blockKinds: ["block.testimonials"],
8674
9149
  design: {
8675
9150
  sectionSurface: "accent-band",
@@ -8681,9 +9156,9 @@ var init_blockAppearancePresets = __esm({
8681
9156
  }),
8682
9157
  defineBlockAppearancePreset({
8683
9158
  kind: "block-design",
8684
- id: "testimonials-accent-quote-proof",
9159
+ id: "testimonials-accent-quote-cards",
8685
9160
  target: "testimonials",
8686
- label: "Accent quote proof",
9161
+ label: "Accent quote cards",
8687
9162
  blockKinds: ["block.testimonials"],
8688
9163
  design: {
8689
9164
  sectionSurface: "accent-band",
@@ -8696,9 +9171,9 @@ var init_blockAppearancePresets = __esm({
8696
9171
  }),
8697
9172
  defineBlockAppearancePreset({
8698
9173
  kind: "block-design",
8699
- id: "testimonials-soft-earth-proof-band",
9174
+ id: "testimonials-brand-background-quotes",
8700
9175
  target: "testimonials",
8701
- label: "Soft Earth proof band",
9176
+ label: "Brand background quotes",
8702
9177
  blockKinds: ["block.testimonials"],
8703
9178
  design: {
8704
9179
  sectionSurface: "brand-depth-band",
@@ -8742,25 +9217,6 @@ var init_blockAppearancePresets = __esm({
8742
9217
  emphasis: "low"
8743
9218
  }
8744
9219
  }),
8745
- defineBlockAppearancePreset({
8746
- kind: "block-design",
8747
- id: "faq-soft-earth-two-column",
8748
- target: "faq",
8749
- label: "Soft Earth two-column FAQ",
8750
- blockKinds: ["block.faq"],
8751
- design: {
8752
- sectionSurface: "base",
8753
- contentFrame: plainFrame,
8754
- itemSurface: "flat",
8755
- transitionAfter: "none",
8756
- emphasis: "medium",
8757
- accordionIconTreatment: {
8758
- iconSet: "plus",
8759
- colorToken: "primary",
8760
- motion: "swap"
8761
- }
8762
- }
8763
- }),
8764
9220
  defineBlockAppearancePreset({
8765
9221
  kind: "block-design",
8766
9222
  id: "contact-form-panel",
@@ -10563,7 +11019,8 @@ var init_types7 = __esm({
10563
11019
  icon: z15.object({
10564
11020
  style: accordionIconSchema,
10565
11021
  position: z15.enum(["left", "right"]),
10566
- size: z15.enum(["sm", "md", "lg"])
11022
+ size: z15.enum(["sm", "md", "lg"]),
11023
+ colorToken: themeColorTokenSchema.optional()
10567
11024
  }),
10568
11025
  // Trigger (question) styling
10569
11026
  trigger: z15.object({
@@ -10712,7 +11169,7 @@ var init_baseSchema = __esm({
10712
11169
 
10713
11170
  // ../theme-core/src/navigation/types.ts
10714
11171
  import { z as z19 } from "zod";
10715
- var navLinkPaddingSchema, navLinkPaddingXSchema, navLinkBorderRadiusSchema, navLinkTextSizeSchema, navLinkLetterSpacingSchema, navLinkStyleSchema;
11172
+ var navLinkPaddingSchema, navLinkPaddingXSchema, navLinkBorderRadiusSchema, navLinkTextSizeSchema, navLinkLetterSpacingSchema, navLinkContrastTreatmentSchema, navLinkStyleSchema;
10716
11173
  var init_types10 = __esm({
10717
11174
  "../theme-core/src/navigation/types.ts"() {
10718
11175
  "use strict";
@@ -10723,6 +11180,7 @@ var init_types10 = __esm({
10723
11180
  navLinkBorderRadiusSchema = z19.enum(["none", "sm", "md", "full"]);
10724
11181
  navLinkTextSizeSchema = z19.enum(["xs", "sm", "base", "lg"]);
10725
11182
  navLinkLetterSpacingSchema = z19.enum(["normal", "wide", "wider", "widest"]);
11183
+ navLinkContrastTreatmentSchema = z19.enum(["none", "soft-glow"]);
10726
11184
  navLinkStyleSchema = z19.object({
10727
11185
  /** Display name for the style */
10728
11186
  name: z19.string().min(1).max(30).optional(),
@@ -10734,6 +11192,8 @@ var init_types10 = __esm({
10734
11192
  textSize: navLinkTextSizeSchema.optional(),
10735
11193
  /** Optional letter spacing override */
10736
11194
  letterSpacing: navLinkLetterSpacingSchema.optional(),
11195
+ /** Optional text-only contrast treatment for transparent/overlay navigation */
11196
+ contrastTreatment: navLinkContrastTreatmentSchema.optional(),
10737
11197
  /** Hover/active color token (for color-change effects) */
10738
11198
  hoverColorToken: themeColorTokenSchema.nullable().optional(),
10739
11199
  /** Padding preset */
@@ -11149,8 +11609,19 @@ var init_schema3 = __esm({
11149
11609
  colorToken: themeColorTokenSchema.nullable().optional()
11150
11610
  });
11151
11611
  proseLinkUnderlineStyleSchema = z24.enum(["solid", "dotted", "dashed"]);
11152
- proseLinkUnderlineThicknessSchema = z24.enum(["auto", "fromFont", "thin", "medium", "thick"]);
11153
- proseLinkUnderlineOffsetSchema = z24.enum(["auto", "tight", "normal", "loose"]);
11612
+ proseLinkUnderlineThicknessSchema = z24.enum([
11613
+ "auto",
11614
+ "fromFont",
11615
+ "thin",
11616
+ "medium",
11617
+ "thick"
11618
+ ]);
11619
+ proseLinkUnderlineOffsetSchema = z24.enum([
11620
+ "auto",
11621
+ "tight",
11622
+ "normal",
11623
+ "loose"
11624
+ ]);
11154
11625
  proseLinkStyleSchema = z24.object({
11155
11626
  colorToken: themeColorTokenSchema.optional(),
11156
11627
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -11161,7 +11632,14 @@ var init_schema3 = __esm({
11161
11632
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
11162
11633
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
11163
11634
  });
11164
- semanticSpacingSchema = z24.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
11635
+ semanticSpacingSchema = z24.enum([
11636
+ "none",
11637
+ "compact",
11638
+ "cozy",
11639
+ "medium",
11640
+ "comfortable",
11641
+ "spacious"
11642
+ ]);
11165
11643
  boxRoundedSchema = z24.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
11166
11644
  boxBackgroundOverlaySchema = z24.object({
11167
11645
  type: z24.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -11207,6 +11685,7 @@ var init_schema3 = __esm({
11207
11685
  spacing: semanticSpacingSchema.nullable().optional(),
11208
11686
  minHeight: z24.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
11209
11687
  tileTreatment: z24.enum(tileTreatmentValues).nullable().optional(),
11688
+ eventListTreatment: z24.enum(eventListTreatmentValues).nullable().optional(),
11210
11689
  eyebrowTreatment: z24.enum(eyebrowTreatmentValues).nullable().optional(),
11211
11690
  headingDecoration: headingDecorationSchema.nullable().optional(),
11212
11691
  // Author-level override consumed by later block/editor rendering phases.
@@ -11305,9 +11784,17 @@ var init_schema3 = __esm({
11305
11784
  focus: z24.enum(["glow", "ring", "underline"]),
11306
11785
  label: z24.enum(["inside", "above"])
11307
11786
  });
11308
- headerVariant = z24.enum(["classic", "centered", "transparent", "floating", "editorial"]);
11787
+ headerVariant = z24.enum(["classic", "centered", "transparent", "floating"]);
11309
11788
  headerPositioning = z24.enum(["static", "sticky", "fixed"]);
11310
- headerNavStyle = z24.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
11789
+ headerNavStyle = z24.enum([
11790
+ "minimal",
11791
+ "underline",
11792
+ "underline-grow",
11793
+ "capsule",
11794
+ "scale",
11795
+ "frosted",
11796
+ "solid"
11797
+ ]);
11311
11798
  navFontWeight = z24.enum(["regular", "medium", "semibold", "bold"]);
11312
11799
  headerMaxWidth = z24.enum(["container", "full"]);
11313
11800
  headerContainerSchema = z24.object({
@@ -11355,8 +11842,22 @@ var init_schema3 = __esm({
11355
11842
  textSize: z24.enum(["xs", "sm", "base", "lg"]).optional()
11356
11843
  // optional = no override (browser default)
11357
11844
  }).optional();
11358
- headerCtaGapSchema = z24.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
11359
- headerCtaTreatmentSchema = z24.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
11845
+ headerCtaGapSchema = z24.enum([
11846
+ "none",
11847
+ "tight",
11848
+ "compact",
11849
+ "default",
11850
+ "relaxed",
11851
+ "spacious"
11852
+ ]);
11853
+ headerCtaTreatmentSchema = z24.enum([
11854
+ "default",
11855
+ "primary",
11856
+ "secondary",
11857
+ "inverted",
11858
+ "outline",
11859
+ "ghost"
11860
+ ]);
11360
11861
  navContainerSchema = z24.object({
11361
11862
  type: z24.enum(["none", "pill", "glass"]).default("none"),
11362
11863
  tint: z24.string().nullable().optional(),
@@ -11411,7 +11912,14 @@ var init_schema3 = __esm({
11411
11912
  footerMode = z24.enum(["default", "blocks", "default+blocks", "none"]);
11412
11913
  footerNavLayoutMode = z24.enum(["stack", "inline", "inline-wrap"]);
11413
11914
  footerNavLayoutAlign = z24.enum(["start", "center", "end", "space-between"]);
11414
- footerSpacing = z24.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
11915
+ footerSpacing = z24.enum([
11916
+ "none",
11917
+ "tight",
11918
+ "compact",
11919
+ "default",
11920
+ "relaxed",
11921
+ "spacious"
11922
+ ]);
11415
11923
  footerLogoPlacement = z24.enum(["left", "right", "above", "below"]);
11416
11924
  footerLogoSize = z24.enum(["sm", "md", "lg", "xl"]);
11417
11925
  footerLogoMaxHeight = z24.enum(["sm", "md", "lg", "xl"]);
@@ -11476,7 +11984,12 @@ var init_schema3 = __esm({
11476
11984
  logo: footerLogoSchema.optional(),
11477
11985
  bottomBar: footerBottomBarSchema.optional()
11478
11986
  });
11479
- containerPaddingPresetSchema = z24.enum(["tight", "compact", "default", "relaxed"]);
11987
+ containerPaddingPresetSchema = z24.enum([
11988
+ "tight",
11989
+ "compact",
11990
+ "default",
11991
+ "relaxed"
11992
+ ]);
11480
11993
  layoutSchema = z24.object({
11481
11994
  containerPadding: z24.object({
11482
11995
  mobile: containerPaddingPresetSchema.optional(),
@@ -11484,8 +11997,24 @@ var init_schema3 = __esm({
11484
11997
  desktop: containerPaddingPresetSchema.optional()
11485
11998
  }).optional()
11486
11999
  }).optional();
11487
- heroTypographySizeSchema = z24.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
11488
- heroTypographyLineHeightSchema = z24.enum(["tight", "snug", "normal", "relaxed"]);
12000
+ heroTypographySizeSchema = z24.enum([
12001
+ "sm",
12002
+ "base",
12003
+ "lg",
12004
+ "xl",
12005
+ "2xl",
12006
+ "3xl",
12007
+ "4xl",
12008
+ "5xl",
12009
+ "6xl",
12010
+ "editorial"
12011
+ ]);
12012
+ heroTypographyLineHeightSchema = z24.enum([
12013
+ "tight",
12014
+ "snug",
12015
+ "normal",
12016
+ "relaxed"
12017
+ ]);
11489
12018
  heroResponsiveTypographySchema = z24.object({
11490
12019
  headlineSize: heroTypographySizeSchema.optional(),
11491
12020
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -12041,6 +12570,40 @@ var init_variants = __esm({
12041
12570
  }
12042
12571
  });
12043
12572
 
12573
+ // ../theme-core/src/accordions/siteStyleDefaults.ts
12574
+ var softEarthAccordionSystem;
12575
+ var init_siteStyleDefaults = __esm({
12576
+ "../theme-core/src/accordions/siteStyleDefaults.ts"() {
12577
+ "use strict";
12578
+ softEarthAccordionSystem = {
12579
+ background: {
12580
+ type: "solid",
12581
+ colorToken: "background"
12582
+ },
12583
+ spacing: "comfortable",
12584
+ corners: "square",
12585
+ border: null,
12586
+ shadow: null,
12587
+ icon: {
12588
+ style: "plus-minus",
12589
+ position: "right",
12590
+ size: "md",
12591
+ colorToken: "primary"
12592
+ },
12593
+ trigger: {
12594
+ textColorToken: "text",
12595
+ fontWeight: "medium"
12596
+ },
12597
+ hover: {
12598
+ textColorToken: "primary"
12599
+ },
12600
+ content: {
12601
+ textColorToken: "neutral-700"
12602
+ }
12603
+ };
12604
+ }
12605
+ });
12606
+
12044
12607
  // ../theme-core/src/site-styles/customizableSurfaces.ts
12045
12608
  var init_customizableSurfaces = __esm({
12046
12609
  "../theme-core/src/site-styles/customizableSurfaces.ts"() {
@@ -12100,10 +12663,29 @@ function resolveLegacyHeaderLookAlias(lookId) {
12100
12663
  return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
12101
12664
  }
12102
12665
  function getCompatibleHeaderStyleIds(layoutId) {
12103
- return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter((styleId) => {
12104
- const style = getHeaderStyleOrThrow(styleId);
12105
- return isHeaderStyleCompatibleWithLayout(style, layoutId);
12106
- });
12666
+ return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
12667
+ (styleId) => {
12668
+ const style = getHeaderStyleOrThrow(styleId);
12669
+ return isHeaderStyleCompatibleWithLayout(style, layoutId);
12670
+ }
12671
+ );
12672
+ }
12673
+ function themedHeaderShadow(theme) {
12674
+ switch (theme.shadow.elevation) {
12675
+ case "none":
12676
+ return void 0;
12677
+ case "low":
12678
+ return { elevation: "sm" };
12679
+ case "medium":
12680
+ return { elevation: "md" };
12681
+ case "high":
12682
+ return { elevation: "lg" };
12683
+ default:
12684
+ return assertNever(
12685
+ theme.shadow.elevation,
12686
+ "Unhandled theme shadow elevation"
12687
+ );
12688
+ }
12107
12689
  }
12108
12690
  function solidBrandHeader(theme) {
12109
12691
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
@@ -12134,8 +12716,14 @@ function solidBrandHeader(theme) {
12134
12716
  borderRadius: "none",
12135
12717
  effects: {
12136
12718
  hover: [
12137
- { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
12138
- { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
12719
+ {
12720
+ effectId: "text-color-change",
12721
+ options: { hoverColorToken: "secondary" }
12722
+ },
12723
+ {
12724
+ effectId: "nav-underline",
12725
+ options: { style: "grow", colorToken: "secondary" }
12726
+ }
12139
12727
  ]
12140
12728
  }
12141
12729
  },
@@ -12191,10 +12779,10 @@ function cleanBaseHeader(theme) {
12191
12779
  ctaGap: "default"
12192
12780
  };
12193
12781
  }
12194
- function editorialLineHeader(theme) {
12782
+ function serifLineHeader(theme) {
12195
12783
  return {
12196
12784
  ...baseHeader(theme),
12197
- variant: "editorial",
12785
+ variant: "centered",
12198
12786
  positioning: "sticky",
12199
12787
  shrinkOnScroll: false,
12200
12788
  background: {
@@ -12248,9 +12836,7 @@ function practicalUtilityHeader(theme) {
12248
12836
  navColor: "text",
12249
12837
  navStyle: "solid",
12250
12838
  navWeight: "semibold",
12251
- shadow: {
12252
- elevation: "sm"
12253
- },
12839
+ shadow: themedHeaderShadow(theme),
12254
12840
  border: {
12255
12841
  style: "solid",
12256
12842
  width: "thin",
@@ -12319,6 +12905,7 @@ function floatingGlassHeader(theme) {
12319
12905
  return {
12320
12906
  ...transparentOverlayHeader(theme),
12321
12907
  variant: "floating",
12908
+ positioning: "sticky",
12322
12909
  navStyle: "frosted",
12323
12910
  navContainer: {
12324
12911
  type: "glass",
@@ -12366,23 +12953,13 @@ var init_headerLooks = __esm({
12366
12953
  maxRecommendedNavItems: 5,
12367
12954
  allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
12368
12955
  },
12369
- {
12370
- id: asHeaderLayoutId("editorial"),
12371
- label: "Editorial",
12372
- description: "A composed, magazine-like stacked header treatment.",
12373
- structure: "editorial-stack",
12374
- variant: "editorial",
12375
- defaultPositioning: "static",
12376
- shrinkOnScroll: false,
12377
- maxRecommendedNavItems: 6
12378
- },
12379
12956
  {
12380
12957
  id: asHeaderLayoutId("floating"),
12381
12958
  label: "Floating",
12382
12959
  description: "Detached header chrome that sits over the opening section.",
12383
12960
  structure: "floating-shell",
12384
12961
  variant: "floating",
12385
- defaultPositioning: "fixed",
12962
+ defaultPositioning: "sticky",
12386
12963
  shrinkOnScroll: true,
12387
12964
  maxRecommendedNavItems: 5,
12388
12965
  allowedLogoShapes: ["none", "text-only", "horizontal"]
@@ -12393,17 +12970,23 @@ var init_headerLooks = __esm({
12393
12970
  id: asHeaderStyleId("minimal"),
12394
12971
  label: "Minimal",
12395
12972
  description: "Quiet surface with simple color-change navigation.",
12396
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12973
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12397
12974
  navInteraction: "color-change",
12398
- surface: "neutral"
12975
+ surface: "neutral",
12976
+ defaultDepth: "none",
12977
+ navTypography: "plain",
12978
+ moods: ["calm", "professional", "editorial"]
12399
12979
  },
12400
12980
  {
12401
12981
  id: asHeaderStyleId("fine-line"),
12402
12982
  label: "Fine Line",
12403
12983
  description: "Light surface with a crisp lower rule and underline hover.",
12404
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12984
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12405
12985
  navInteraction: "underline-grow",
12406
- surface: "bordered"
12986
+ surface: "bordered",
12987
+ defaultDepth: "line",
12988
+ navTypography: "plain",
12989
+ moods: ["calm", "professional", "editorial"]
12407
12990
  },
12408
12991
  {
12409
12992
  id: asHeaderStyleId("soft-bar"),
@@ -12411,7 +12994,10 @@ var init_headerLooks = __esm({
12411
12994
  description: "Soft tinted surface with gentle pill hover states.",
12412
12995
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12413
12996
  navInteraction: "pill-background",
12414
- surface: "soft"
12997
+ surface: "soft",
12998
+ defaultDepth: "line",
12999
+ navTypography: "plain",
13000
+ moods: ["calm", "professional"]
12415
13001
  },
12416
13002
  {
12417
13003
  id: asHeaderStyleId("pill-nav"),
@@ -12419,23 +13005,32 @@ var init_headerLooks = __esm({
12419
13005
  description: "A calm pill navigation rail over a neutral header.",
12420
13006
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12421
13007
  navInteraction: "pill-background",
12422
- surface: "soft"
13008
+ surface: "soft",
13009
+ defaultDepth: "none",
13010
+ navTypography: "plain",
13011
+ moods: ["calm"]
12423
13012
  },
12424
13013
  {
12425
13014
  id: asHeaderStyleId("brand-bar"),
12426
13015
  label: "Brand Bar",
12427
13016
  description: "Solid brand surface with high-contrast navigation.",
12428
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
13017
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12429
13018
  navInteraction: "color-change",
12430
- surface: "brand-solid"
13019
+ surface: "brand-solid",
13020
+ defaultDepth: "none",
13021
+ navTypography: "brand-caps",
13022
+ moods: ["professional", "expressive", "utility"]
12431
13023
  },
12432
13024
  {
12433
13025
  id: asHeaderStyleId("brand-underline"),
12434
13026
  label: "Brand Underline",
12435
13027
  description: "Brand surface with underline-grow navigation.",
12436
- supportedLayoutIds: supportedLayouts(["classic", "editorial"]),
13028
+ supportedLayoutIds: supportedLayouts(["classic"]),
12437
13029
  navInteraction: "underline-grow",
12438
- surface: "brand-solid"
13030
+ surface: "brand-solid",
13031
+ defaultDepth: "none",
13032
+ navTypography: "brand-caps",
13033
+ moods: ["expressive"]
12439
13034
  },
12440
13035
  {
12441
13036
  id: asHeaderStyleId("brand-pill"),
@@ -12443,41 +13038,54 @@ var init_headerLooks = __esm({
12443
13038
  description: "Solid brand surface with rounded active and hover states.",
12444
13039
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
12445
13040
  navInteraction: "pill-background",
12446
- surface: "brand-solid"
13041
+ surface: "brand-solid",
13042
+ defaultDepth: "none",
13043
+ navTypography: "brand-caps",
13044
+ moods: ["expressive"]
12447
13045
  },
12448
13046
  {
12449
- id: asHeaderStyleId("editorial-line"),
12450
- label: "Editorial Line",
13047
+ id: asHeaderStyleId("serif-line"),
13048
+ label: "Serif Line",
12451
13049
  description: "Typographic logo treatment with understated underline navigation.",
12452
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
13050
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12453
13051
  navInteraction: "underline-grow",
12454
- surface: "bordered"
13052
+ surface: "bordered",
13053
+ defaultDepth: "line",
13054
+ navTypography: "heading",
13055
+ moods: ["editorial", "calm"]
12455
13056
  },
12456
13057
  {
12457
13058
  id: asHeaderStyleId("flat-tabs"),
12458
13059
  label: "Flat Tabs",
12459
13060
  description: "Flat block hover and active states with a Swiss utility feel.",
12460
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
13061
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12461
13062
  navInteraction: "flat-block",
12462
- surface: "bordered"
13063
+ surface: "bordered",
13064
+ defaultDepth: "shadow",
13065
+ navTypography: "quiet-caps",
13066
+ moods: ["professional", "utility", "expressive"]
12463
13067
  },
12464
13068
  {
12465
13069
  id: asHeaderStyleId("glass"),
12466
13070
  label: "Glass",
12467
- description: "Floating translucent chrome with frosted navigation backing.",
13071
+ description: "Translucent chrome with frosted navigation backing.",
12468
13072
  supportedLayoutIds: supportedLayouts(["floating"]),
12469
13073
  navInteraction: "glass-backed",
12470
13074
  surface: "floating",
12471
- requiresFloatingLayout: true
13075
+ defaultDepth: "shadow",
13076
+ navTypography: "plain",
13077
+ moods: ["expressive", "calm"]
12472
13078
  },
12473
13079
  {
12474
13080
  id: asHeaderStyleId("minimal-surface"),
12475
- label: "Minimal Surface",
12476
- description: "Floating chrome with a restrained translucent surface.",
13081
+ label: "Clear Split",
13082
+ description: "Floating logo with transparent navigation and no shared shell.",
12477
13083
  supportedLayoutIds: supportedLayouts(["floating"]),
12478
13084
  navInteraction: "color-change",
12479
13085
  surface: "floating",
12480
- requiresFloatingLayout: true
13086
+ defaultDepth: "none",
13087
+ navTypography: "plain",
13088
+ moods: ["editorial", "calm"]
12481
13089
  },
12482
13090
  {
12483
13091
  id: asHeaderStyleId("soft-shell"),
@@ -12486,7 +13094,31 @@ var init_headerLooks = __esm({
12486
13094
  supportedLayoutIds: supportedLayouts(["floating"]),
12487
13095
  navInteraction: "pill-background",
12488
13096
  surface: "floating",
12489
- requiresFloatingLayout: true
13097
+ defaultDepth: "shadow",
13098
+ navTypography: "plain",
13099
+ moods: ["calm", "professional"]
13100
+ },
13101
+ {
13102
+ id: asHeaderStyleId("split-glass"),
13103
+ label: "Split Glass",
13104
+ description: "Logo floats independently while the navigation sits in a glass rail.",
13105
+ supportedLayoutIds: supportedLayouts(["floating"]),
13106
+ navInteraction: "glass-backed",
13107
+ surface: "floating",
13108
+ defaultDepth: "shadow",
13109
+ navTypography: "quiet-caps",
13110
+ moods: ["expressive"]
13111
+ },
13112
+ {
13113
+ id: asHeaderStyleId("split-pill"),
13114
+ label: "Split Pill",
13115
+ description: "Logo floats independently with a soft pill-backed navigation rail.",
13116
+ supportedLayoutIds: supportedLayouts(["floating"]),
13117
+ navInteraction: "pill-background",
13118
+ surface: "floating",
13119
+ defaultDepth: "shadow",
13120
+ navTypography: "heading",
13121
+ moods: ["calm", "editorial"]
12490
13122
  }
12491
13123
  ];
12492
13124
  headerLayoutsById = new Map(
@@ -12506,7 +13138,7 @@ var init_headerLooks = __esm({
12506
13138
  "brand-bar",
12507
13139
  "brand-underline",
12508
13140
  "brand-pill",
12509
- "editorial-line",
13141
+ "serif-line",
12510
13142
  "flat-tabs"
12511
13143
  ])
12512
13144
  ],
@@ -12519,19 +13151,7 @@ var init_headerLooks = __esm({
12519
13151
  "pill-nav",
12520
13152
  "brand-bar",
12521
13153
  "brand-pill",
12522
- "editorial-line",
12523
- "flat-tabs"
12524
- ])
12525
- ],
12526
- [
12527
- asHeaderLayoutId("editorial"),
12528
- headerStyleRepairChain([
12529
- "minimal",
12530
- "fine-line",
12531
- "soft-bar",
12532
- "brand-bar",
12533
- "brand-underline",
12534
- "editorial-line",
13154
+ "serif-line",
12535
13155
  "flat-tabs"
12536
13156
  ])
12537
13157
  ],
@@ -12540,25 +13160,76 @@ var init_headerLooks = __esm({
12540
13160
  headerStyleRepairChain([
12541
13161
  "glass",
12542
13162
  "minimal-surface",
13163
+ "split-glass",
13164
+ "split-pill",
12543
13165
  "soft-shell",
12544
13166
  "brand-pill"
12545
13167
  ])
12546
13168
  ]
12547
13169
  ]);
12548
- headerStyleRepairOrder = /* @__PURE__ */ new Map([
12549
- [asHeaderStyleId("brand-bar"), headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])],
12550
- [asHeaderStyleId("brand-underline"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
12551
- [asHeaderStyleId("brand-pill"), headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])],
12552
- [asHeaderStyleId("pill-nav"), headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])],
12553
- [asHeaderStyleId("flat-tabs"), headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])],
12554
- [asHeaderStyleId("editorial-line"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
12555
- [asHeaderStyleId("glass"), headerStyleRepairChain(["glass", "minimal-surface", "minimal"])],
12556
- [asHeaderStyleId("soft-shell"), headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])],
12557
- [asHeaderStyleId("minimal-surface"), headerStyleRepairChain(["minimal-surface", "minimal"])],
12558
- [asHeaderStyleId("fine-line"), headerStyleRepairChain(["fine-line", "minimal"])],
12559
- [asHeaderStyleId("soft-bar"), headerStyleRepairChain(["soft-bar", "minimal"])],
12560
- [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
12561
- ]);
13170
+ headerStyleRepairOrder = /* @__PURE__ */ new Map(
13171
+ [
13172
+ [
13173
+ asHeaderStyleId("brand-bar"),
13174
+ headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
13175
+ ],
13176
+ [
13177
+ asHeaderStyleId("brand-underline"),
13178
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
13179
+ ],
13180
+ [
13181
+ asHeaderStyleId("brand-pill"),
13182
+ headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
13183
+ ],
13184
+ [
13185
+ asHeaderStyleId("pill-nav"),
13186
+ headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
13187
+ ],
13188
+ [
13189
+ asHeaderStyleId("flat-tabs"),
13190
+ headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
13191
+ ],
13192
+ [
13193
+ asHeaderStyleId("serif-line"),
13194
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
13195
+ ],
13196
+ [
13197
+ asHeaderStyleId("glass"),
13198
+ headerStyleRepairChain([
13199
+ "glass",
13200
+ "soft-shell",
13201
+ "fine-line",
13202
+ "minimal-surface",
13203
+ "minimal"
13204
+ ])
13205
+ ],
13206
+ [
13207
+ asHeaderStyleId("soft-shell"),
13208
+ headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
13209
+ ],
13210
+ [
13211
+ asHeaderStyleId("minimal-surface"),
13212
+ headerStyleRepairChain(["minimal-surface", "minimal"])
13213
+ ],
13214
+ [
13215
+ asHeaderStyleId("split-glass"),
13216
+ headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
13217
+ ],
13218
+ [
13219
+ asHeaderStyleId("split-pill"),
13220
+ headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
13221
+ ],
13222
+ [
13223
+ asHeaderStyleId("fine-line"),
13224
+ headerStyleRepairChain(["fine-line", "minimal"])
13225
+ ],
13226
+ [
13227
+ asHeaderStyleId("soft-bar"),
13228
+ headerStyleRepairChain(["soft-bar", "minimal"])
13229
+ ],
13230
+ [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
13231
+ ]
13232
+ );
12562
13233
  legacyHeaderLookAliases = [
12563
13234
  {
12564
13235
  lookId: asHeaderLookId("clean-base"),
@@ -12575,10 +13246,10 @@ var init_headerLooks = __esm({
12575
13246
  }
12576
13247
  },
12577
13248
  {
12578
- lookId: asHeaderLookId("editorial-line"),
13249
+ lookId: asHeaderLookId("serif-line"),
12579
13250
  selection: {
12580
- layoutId: asHeaderLayoutId("editorial"),
12581
- styleId: asHeaderStyleId("editorial-line")
13251
+ layoutId: asHeaderLayoutId("centered"),
13252
+ styleId: asHeaderStyleId("serif-line")
12582
13253
  }
12583
13254
  },
12584
13255
  {
@@ -12617,9 +13288,7 @@ var init_headerLooks = __esm({
12617
13288
  }
12618
13289
  }
12619
13290
  ];
12620
- legacyHeaderLookAliasesById = new Map(
12621
- legacyHeaderLookAliases.map((alias) => [alias.lookId, alias])
12622
- );
13291
+ legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
12623
13292
  headerLookCatalog = [
12624
13293
  {
12625
13294
  id: asHeaderLookId("clean-base"),
@@ -12648,27 +13317,27 @@ var init_headerLooks = __esm({
12648
13317
  compile: solidBrandHeader
12649
13318
  },
12650
13319
  {
12651
- id: asHeaderLookId("editorial-line"),
12652
- label: "Editorial line",
12653
- visualTreatment: "light-editorial",
13320
+ id: asHeaderLookId("serif-line"),
13321
+ label: "Serif line",
13322
+ visualTreatment: "light-serif",
12654
13323
  layoutBehavior: "sticky",
12655
13324
  configuration: {
12656
- structure: "editorial-stack",
12657
- treatment: "light-editorial",
13325
+ structure: "centered-stack",
13326
+ treatment: "light-serif",
12658
13327
  behavior: "sticky"
12659
13328
  },
12660
13329
  openingRequirement: "none",
12661
13330
  maxRecommendedNavItems: 6,
12662
- compile: editorialLineHeader
13331
+ compile: serifLineHeader
12663
13332
  },
12664
13333
  {
12665
13334
  id: asHeaderLookId("centered-calm"),
12666
13335
  label: "Centered calm",
12667
- visualTreatment: "light-editorial",
13336
+ visualTreatment: "light-serif",
12668
13337
  layoutBehavior: "normal-flow",
12669
13338
  configuration: {
12670
13339
  structure: "centered-stack",
12671
- treatment: "light-editorial",
13340
+ treatment: "light-serif",
12672
13341
  behavior: "normal-flow"
12673
13342
  },
12674
13343
  openingRequirement: "none",
@@ -13144,7 +13813,7 @@ var init_typographyPresets = __esm({
13144
13813
  heroTypography: {
13145
13814
  headlineSize: "6xl",
13146
13815
  headlineLineHeight: "tight",
13147
- subheadlineSize: "editorial",
13816
+ subheadlineSize: "2xl",
13148
13817
  subheadlineLineHeight: "normal",
13149
13818
  microHeadlineSize: "6xl",
13150
13819
  microHeadlineLineHeight: "tight",
@@ -13165,21 +13834,30 @@ var init_typographyPresets = __esm({
13165
13834
 
13166
13835
  // ../theme-core/src/site-styles/curatedSiteStyles.ts
13167
13836
  function uniqueContentFrameKinds() {
13168
- const kinds = [...new Set(
13169
- generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
13170
- )];
13837
+ const kinds = [
13838
+ ...new Set(
13839
+ generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
13840
+ )
13841
+ ];
13171
13842
  const firstKind = kinds[0];
13172
13843
  if (!firstKind) {
13173
- throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
13844
+ throw new Error(
13845
+ "Expected generated design option catalog to expose at least one content frame kind."
13846
+ );
13174
13847
  }
13175
13848
  return [firstKind, ...kinds.slice(1)];
13176
13849
  }
13177
13850
  function defineCuratedSiteStyle(input) {
13178
13851
  const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
13179
- const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
13852
+ const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
13853
+ legacyHeaderLookIds,
13854
+ input.tokenRecipes
13855
+ );
13180
13856
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
13181
13857
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
13182
- if (!typographyPresetChoices.some((choice) => choice.id === defaultTypographyPresetId)) {
13858
+ if (!typographyPresetChoices.some(
13859
+ (choice) => choice.id === defaultTypographyPresetId
13860
+ )) {
13183
13861
  throw new Error(
13184
13862
  `Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
13185
13863
  );
@@ -13190,9 +13868,13 @@ function defineCuratedSiteStyle(input) {
13190
13868
  description: input.description,
13191
13869
  generationBrief: input.generationBrief,
13192
13870
  selectionKeywordRules: input.selectionKeywordRules ?? [],
13193
- siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
13871
+ siteCreatorSelection: input.siteCreatorSelection ?? {
13872
+ kind: "explicit_only"
13873
+ },
13194
13874
  template: {
13195
- id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
13875
+ id: asDesignSystemTemplateId(
13876
+ `template:${input.id.replace("site-style:", "")}`
13877
+ ),
13196
13878
  name: input.name,
13197
13879
  version: 1,
13198
13880
  tokenRecipes: input.tokenRecipes,
@@ -13203,6 +13885,7 @@ function defineCuratedSiteStyle(input) {
13203
13885
  supportedTransitions: generatedDesignOptionCatalog.transitions
13204
13886
  },
13205
13887
  ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
13888
+ ...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
13206
13889
  recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
13207
13890
  defaultHeaderSelection: input.defaultHeaderSelection ? {
13208
13891
  layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
@@ -13210,13 +13893,17 @@ function defineCuratedSiteStyle(input) {
13210
13893
  } : inferredHeaderCuration.defaultHeaderSelection,
13211
13894
  recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
13212
13895
  recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
13213
- discouragedHeaderSelections: input.discouragedHeaderSelections?.map((selection) => ({
13214
- layoutId: asHeaderLayoutId(selection.layoutId),
13215
- styleId: asHeaderStyleId(selection.styleId)
13216
- })),
13896
+ discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
13897
+ (selection) => ({
13898
+ layoutId: asHeaderLayoutId(selection.layoutId),
13899
+ styleId: asHeaderStyleId(selection.styleId)
13900
+ })
13901
+ ),
13217
13902
  recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
13218
13903
  // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
13219
- recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
13904
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
13905
+ asFooterLookId
13906
+ ),
13220
13907
  buttonPersonalityChoices: input.buttonPersonalityChoices,
13221
13908
  paletteVariantChoices: input.paletteVariantChoices,
13222
13909
  typographyPresetChoices,
@@ -13235,7 +13922,7 @@ function headerLayoutChoice(id, note) {
13235
13922
  function headerStyleChoice(id, note) {
13236
13923
  return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
13237
13924
  }
13238
- function headerLayoutRecordKey(id) {
13925
+ function unbrandHeaderLayoutId(id) {
13239
13926
  return id;
13240
13927
  }
13241
13928
  function uniqueHeaderLayoutChoices(choices) {
@@ -13257,8 +13944,72 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
13257
13944
  };
13258
13945
  return [first, ...choices.slice(1)];
13259
13946
  }
13260
- function inferHeaderCurationFromLegacyLooks(lookIds) {
13261
- const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter((selection) => Boolean(selection));
13947
+ function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
13948
+ const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
13949
+ const seen = /* @__PURE__ */ new Set();
13950
+ const unique = choices.filter((choice) => {
13951
+ if (!compatible.has(choice.id)) return false;
13952
+ if (seen.has(choice.id)) return false;
13953
+ seen.add(choice.id);
13954
+ return true;
13955
+ });
13956
+ return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
13957
+ }
13958
+ function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
13959
+ switch (layoutId) {
13960
+ case "classic":
13961
+ if (isExpressiveRecipe(recipes)) {
13962
+ return [
13963
+ "brand-bar",
13964
+ "brand-underline",
13965
+ "flat-tabs",
13966
+ "brand-pill",
13967
+ "fine-line"
13968
+ ];
13969
+ }
13970
+ if (recipes.spacing === "compact") {
13971
+ return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
13972
+ }
13973
+ if (isSerifTypographyRecipe(recipes)) {
13974
+ return ["serif-line", "fine-line", "minimal", "soft-bar"];
13975
+ }
13976
+ if (recipes.radius === "rounded" || recipes.radius === "pill") {
13977
+ return ["soft-bar", "pill-nav", "fine-line", "minimal"];
13978
+ }
13979
+ return ["fine-line", "minimal", "soft-bar", "brand-bar"];
13980
+ case "centered":
13981
+ if (isSerifTypographyRecipe(recipes)) {
13982
+ return ["serif-line", "fine-line", "minimal", "soft-bar"];
13983
+ }
13984
+ if (isExpressiveRecipe(recipes)) {
13985
+ return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
13986
+ }
13987
+ if (recipes.radius === "rounded" || recipes.radius === "pill") {
13988
+ return ["soft-bar", "pill-nav", "fine-line", "minimal"];
13989
+ }
13990
+ return ["minimal", "fine-line", "soft-bar"];
13991
+ case "floating":
13992
+ if (isExpressiveRecipe(recipes)) {
13993
+ return ["glass", "split-glass", "brand-pill", "soft-shell"];
13994
+ }
13995
+ if (isSerifTypographyRecipe(recipes)) {
13996
+ return ["split-pill", "minimal-surface", "soft-shell"];
13997
+ }
13998
+ return ["soft-shell", "minimal-surface", "glass"];
13999
+ default:
14000
+ return [];
14001
+ }
14002
+ }
14003
+ function isExpressiveRecipe(recipes) {
14004
+ return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
14005
+ }
14006
+ function isSerifTypographyRecipe(recipes) {
14007
+ return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
14008
+ }
14009
+ function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
14010
+ const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
14011
+ (selection) => Boolean(selection)
14012
+ );
13262
14013
  const defaultHeaderSelection = selections[0] ?? {
13263
14014
  layoutId: asHeaderLayoutId("classic"),
13264
14015
  styleId: asHeaderStyleId("minimal")
@@ -13268,9 +14019,13 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
13268
14019
  );
13269
14020
  const stylesByLayout = {};
13270
14021
  for (const layoutChoice of layoutChoices) {
13271
- const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
13272
- stylesByLayout[headerLayoutRecordKey(layoutChoice.id)] = nonEmptyHeaderStyleChoices(
13273
- styleChoices,
14022
+ const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
14023
+ const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
14024
+ layoutChoice.id,
14025
+ recipes
14026
+ ).map((styleId) => headerStyleChoice(styleId));
14027
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
14028
+ [...legacyStyleChoices, ...inferredStyleChoices],
13274
14029
  layoutChoice.id
13275
14030
  );
13276
14031
  }
@@ -13311,18 +14066,21 @@ function defaultTypographyPresetChoicesForRecipe(recipe) {
13311
14066
  ];
13312
14067
  }
13313
14068
  }
13314
- var curatedSiteStyleIdValues, quietBudget, balancedBudget, expressiveBudget, expressiveUnderlineInputs, generatedContentFrameKinds, curatedSiteStyles, curatedSiteStylesById;
14069
+ var SOFT_EARTH_SITE_STYLE_ID_VALUE, SOFT_EARTH_SITE_STYLE_ID, curatedSiteStyleIdValues, quietBudget, balancedBudget, expressiveBudget, expressiveUnderlineInputs, generatedContentFrameKinds, curatedSiteStyles, curatedSiteStylesById;
13315
14070
  var init_curatedSiteStyles = __esm({
13316
14071
  "../theme-core/src/site-styles/curatedSiteStyles.ts"() {
13317
14072
  "use strict";
13318
14073
  init_personalities();
13319
14074
  init_variants();
14075
+ init_siteStyleDefaults();
13320
14076
  init_headerLooks();
13321
14077
  init_footerLooks();
13322
14078
  init_curatedChoices();
13323
14079
  init_sourceCatalogs();
13324
14080
  init_types2();
13325
14081
  init_typographyPresets();
14082
+ SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
14083
+ SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
13326
14084
  curatedSiteStyleIdValues = [
13327
14085
  "site-style:calm-studio",
13328
14086
  "site-style:clear-professional",
@@ -13334,7 +14092,7 @@ var init_curatedSiteStyles = __esm({
13334
14092
  "site-style:personal-retreat-journal",
13335
14093
  "site-style:tactile-workshop",
13336
14094
  "site-style:modern-wellness",
13337
- "site-style:soft-earth",
14095
+ SOFT_EARTH_SITE_STYLE_ID_VALUE,
13338
14096
  "site-style:bold-launch",
13339
14097
  "site-style:south-west-twerk-school"
13340
14098
  ];
@@ -13416,7 +14174,11 @@ var init_curatedSiteStyles = __esm({
13416
14174
  motion: "subtle"
13417
14175
  },
13418
14176
  compositionBudget: quietBudget,
13419
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
14177
+ recommendedHeaderLookIds: [
14178
+ "centered-calm",
14179
+ "minimal-transparent",
14180
+ "clean-base"
14181
+ ],
13420
14182
  buttonPersonalityChoices: [
13421
14183
  buttonChoice("soft-pill"),
13422
14184
  buttonChoice("pebble"),
@@ -13445,7 +14207,11 @@ var init_curatedSiteStyles = __esm({
13445
14207
  motion: "subtle"
13446
14208
  },
13447
14209
  compositionBudget: balancedBudget,
13448
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
14210
+ recommendedHeaderLookIds: [
14211
+ "practical-utility",
14212
+ "brand-solid",
14213
+ "clean-base"
14214
+ ],
13449
14215
  buttonPersonalityChoices: [
13450
14216
  buttonChoice("confident-chip"),
13451
14217
  buttonChoice("soft-pill"),
@@ -13472,7 +14238,11 @@ var init_curatedSiteStyles = __esm({
13472
14238
  motion: "subtle"
13473
14239
  },
13474
14240
  compositionBudget: balancedBudget,
13475
- recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
14241
+ recommendedHeaderLookIds: [
14242
+ "serif-line",
14243
+ "minimal-transparent",
14244
+ "centered-calm"
14245
+ ],
13476
14246
  buttonPersonalityChoices: [
13477
14247
  buttonChoice("editorial-link"),
13478
14248
  buttonChoice("soft-pill"),
@@ -13500,7 +14270,11 @@ var init_curatedSiteStyles = __esm({
13500
14270
  motion: "expressive"
13501
14271
  },
13502
14272
  compositionBudget: balancedBudget,
13503
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
14273
+ recommendedHeaderLookIds: [
14274
+ "brand-solid",
14275
+ "practical-utility",
14276
+ "clean-base"
14277
+ ],
13504
14278
  buttonPersonalityChoices: [
13505
14279
  buttonChoice("pebble"),
13506
14280
  buttonChoice("brushed-wash"),
@@ -13517,7 +14291,10 @@ var init_curatedSiteStyles = __esm({
13517
14291
  name: "Quiet Luxury",
13518
14292
  description: "Minimal, confident, and refined for premium experiences and private services.",
13519
14293
  generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
13520
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
14294
+ siteCreatorSelection: {
14295
+ kind: "site_creator_keyword_heuristic",
14296
+ priority: 20
14297
+ },
13521
14298
  selectionKeywordRules: [
13522
14299
  { kind: "word", value: "luxury" },
13523
14300
  { kind: "word", value: "premium" },
@@ -13535,7 +14312,11 @@ var init_curatedSiteStyles = __esm({
13535
14312
  motion: "none"
13536
14313
  },
13537
14314
  compositionBudget: quietBudget,
13538
- recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
14315
+ recommendedHeaderLookIds: [
14316
+ "minimal-transparent",
14317
+ "serif-line",
14318
+ "clean-base"
14319
+ ],
13539
14320
  buttonPersonalityChoices: [
13540
14321
  buttonChoice("editorial-link"),
13541
14322
  buttonChoice("confident-chip"),
@@ -13571,7 +14352,11 @@ var init_curatedSiteStyles = __esm({
13571
14352
  motion: "none"
13572
14353
  },
13573
14354
  compositionBudget: quietBudget,
13574
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
14355
+ recommendedHeaderLookIds: [
14356
+ "practical-utility",
14357
+ "brand-solid",
14358
+ "clean-base"
14359
+ ],
13575
14360
  buttonPersonalityChoices: [
13576
14361
  buttonChoice("confident-chip"),
13577
14362
  buttonChoice("pebble"),
@@ -13598,7 +14383,11 @@ var init_curatedSiteStyles = __esm({
13598
14383
  motion: "subtle"
13599
14384
  },
13600
14385
  compositionBudget: balancedBudget,
13601
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
14386
+ recommendedHeaderLookIds: [
14387
+ "centered-calm",
14388
+ "minimal-transparent",
14389
+ "clean-base"
14390
+ ],
13602
14391
  buttonPersonalityChoices: [
13603
14392
  buttonChoice("soft-pill"),
13604
14393
  buttonChoice("pebble"),
@@ -13615,7 +14404,10 @@ var init_curatedSiteStyles = __esm({
13615
14404
  name: "Quiet Practice",
13616
14405
  description: "Grounded, calm, and practical for small appointment-first practices.",
13617
14406
  generationBrief: "Make services, practitioner trust, preparation notes, and booking routes easy to scan. Keep the tone warm and specific, with quiet confidence rather than spa cliches or medical claims.",
13618
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
14407
+ siteCreatorSelection: {
14408
+ kind: "site_creator_keyword_heuristic",
14409
+ priority: 30
14410
+ },
13619
14411
  selectionKeywordRules: [
13620
14412
  { kind: "substring", value: "massage" },
13621
14413
  { kind: "word", value: "bodywork" },
@@ -13636,7 +14428,11 @@ var init_curatedSiteStyles = __esm({
13636
14428
  motion: "subtle"
13637
14429
  },
13638
14430
  compositionBudget: quietBudget,
13639
- recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
14431
+ recommendedHeaderLookIds: [
14432
+ "practical-utility",
14433
+ "clean-base",
14434
+ "centered-calm"
14435
+ ],
13640
14436
  buttonPersonalityChoices: [
13641
14437
  buttonChoice("pebble"),
13642
14438
  buttonChoice("soft-pill"),
@@ -13653,7 +14449,10 @@ var init_curatedSiteStyles = __esm({
13653
14449
  name: "Personal Retreat Journal",
13654
14450
  description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
13655
14451
  generationBrief: "Center the practitioner as the guide, then make private sessions, classes, retreats, and resources feel like clear pathways. Keep retreat copy grounded and practical, with enough editorial warmth for longer reading.",
13656
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
14452
+ siteCreatorSelection: {
14453
+ kind: "site_creator_keyword_heuristic",
14454
+ priority: 40
14455
+ },
13657
14456
  selectionKeywordRules: [
13658
14457
  { kind: "substring", value: "retreat" },
13659
14458
  { kind: "phrase", value: "solo practitioner" },
@@ -13673,7 +14472,11 @@ var init_curatedSiteStyles = __esm({
13673
14472
  motion: "subtle"
13674
14473
  },
13675
14474
  compositionBudget: balancedBudget,
13676
- recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
14475
+ recommendedHeaderLookIds: [
14476
+ "serif-line",
14477
+ "centered-calm",
14478
+ "minimal-transparent"
14479
+ ],
13677
14480
  buttonPersonalityChoices: [
13678
14481
  buttonChoice("editorial-link"),
13679
14482
  buttonChoice("soft-pill"),
@@ -13690,7 +14493,10 @@ var init_curatedSiteStyles = __esm({
13690
14493
  name: "Tactile Workshop",
13691
14494
  description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
13692
14495
  generationBrief: "Lead with objects, materials, studio process, and practical booking detail. Keep the tone warm and direct, with useful mess, clear dates, and enough gallery rhythm to feel like a real creative studio.",
13693
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
14496
+ siteCreatorSelection: {
14497
+ kind: "site_creator_keyword_heuristic",
14498
+ priority: 50
14499
+ },
13694
14500
  selectionKeywordRules: [
13695
14501
  { kind: "substring", value: "ceramic" },
13696
14502
  { kind: "word", value: "pottery" },
@@ -13710,8 +14516,15 @@ var init_curatedSiteStyles = __esm({
13710
14516
  motion: "subtle"
13711
14517
  },
13712
14518
  compositionBudget: balancedBudget,
13713
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
13714
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
14519
+ recommendedHeaderLookIds: [
14520
+ "brand-solid",
14521
+ "practical-utility",
14522
+ "clean-base"
14523
+ ],
14524
+ recommendedFooterLookIds: [
14525
+ "site-footer-brand-two-band",
14526
+ "footer-muted-grounding"
14527
+ ],
13715
14528
  buttonPersonalityChoices: [
13716
14529
  buttonChoice("pebble"),
13717
14530
  buttonChoice("confident-chip"),
@@ -13726,11 +14539,14 @@ var init_curatedSiteStyles = __esm({
13726
14539
  ]
13727
14540
  }),
13728
14541
  defineCuratedSiteStyle({
13729
- id: "site-style:soft-earth",
14542
+ id: SOFT_EARTH_SITE_STYLE_ID,
13730
14543
  name: "Soft Earth",
13731
14544
  description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
13732
- 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.",
13733
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 45 },
14545
+ 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.",
14546
+ siteCreatorSelection: {
14547
+ kind: "site_creator_keyword_heuristic",
14548
+ priority: 45
14549
+ },
13734
14550
  selectionKeywordRules: [
13735
14551
  { kind: "word", value: "meditation" },
13736
14552
  { kind: "word", value: "wellbeing" },
@@ -13796,18 +14612,29 @@ var init_curatedSiteStyles = __esm({
13796
14612
  paragraphSize: "default",
13797
14613
  headingSize: "editorial"
13798
14614
  }
13799
- }
14615
+ },
14616
+ accordions: softEarthAccordionSystem
14617
+ },
14618
+ defaultBlockVariants: {
14619
+ "block.faq": "question-columns"
13800
14620
  },
13801
14621
  recommendedAppearancePresetIds: [
13802
14622
  "hero-brand-scrim",
13803
- "intro-soft-earth-statement",
13804
- "feature-cards-soft-earth-offerings",
13805
- "testimonials-soft-earth-proof-band",
13806
- "faq-soft-earth-two-column",
14623
+ "intro-organic-statement",
14624
+ "feature-cards-raised-rule",
14625
+ "events-lined-panel",
14626
+ "testimonials-brand-background-quotes",
13807
14627
  "contact-form-panel"
13808
14628
  ],
13809
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "editorial-line"],
13810
- recommendedFooterLookIds: ["footer-muted-grounding", "site-footer-brand-two-band"],
14629
+ recommendedHeaderLookIds: [
14630
+ "centered-calm",
14631
+ "minimal-transparent",
14632
+ "serif-line"
14633
+ ],
14634
+ recommendedFooterLookIds: [
14635
+ "footer-muted-grounding",
14636
+ "site-footer-brand-two-band"
14637
+ ],
13811
14638
  buttonPersonalityChoices: [
13812
14639
  buttonChoice("earth-pill"),
13813
14640
  buttonChoice("soft-pill"),
@@ -13826,7 +14653,10 @@ var init_curatedSiteStyles = __esm({
13826
14653
  name: "Bold Launch",
13827
14654
  description: "High-energy and punchy for launches, campaigns, and creative offers.",
13828
14655
  generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
13829
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
14656
+ siteCreatorSelection: {
14657
+ kind: "site_creator_keyword_heuristic",
14658
+ priority: 10
14659
+ },
13830
14660
  selectionKeywordRules: [
13831
14661
  { kind: "substring", value: "launch" },
13832
14662
  { kind: "substring", value: "campaign" },
@@ -13845,7 +14675,11 @@ var init_curatedSiteStyles = __esm({
13845
14675
  motion: "expressive"
13846
14676
  },
13847
14677
  compositionBudget: expressiveBudget,
13848
- recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
14678
+ recommendedHeaderLookIds: [
14679
+ "transparent-overlay",
14680
+ "floating-glass",
14681
+ "brand-solid"
14682
+ ],
13849
14683
  buttonPersonalityChoices: [
13850
14684
  buttonChoice("ink-stamp"),
13851
14685
  buttonChoice("confident-chip"),
@@ -13893,11 +14727,18 @@ var init_curatedSiteStyles = __esm({
13893
14727
  "hero-brand-scrim-fixed-frame",
13894
14728
  "body-text-editorial-intro",
13895
14729
  "schedule-details-brand-depth",
13896
- "testimonials-accent-quote-proof",
14730
+ "testimonials-accent-quote-cards",
13897
14731
  "contact-form-brand-depth-card"
13898
14732
  ],
13899
- recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
13900
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
14733
+ recommendedHeaderLookIds: [
14734
+ "brand-solid",
14735
+ "transparent-overlay",
14736
+ "practical-utility"
14737
+ ],
14738
+ recommendedFooterLookIds: [
14739
+ "site-footer-brand-two-band",
14740
+ "footer-muted-grounding"
14741
+ ],
13901
14742
  buttonPersonalityChoices: [
13902
14743
  buttonChoice("showtime-pill"),
13903
14744
  buttonChoice("confident-chip"),
@@ -14051,7 +14892,7 @@ var init_expandPalette = __esm({
14051
14892
  });
14052
14893
 
14053
14894
  // ../theme-core/src/site-styles/rawStyleFields.ts
14054
- var themeV2RuntimeStyleFieldNames, themeV2BlockSpecificRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNameSet;
14895
+ var themeV2RuntimeStyleFieldNames, themeV2BlockSpecificRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNameSet, themeV2CompilerOwnedFieldNames;
14055
14896
  var init_rawStyleFields = __esm({
14056
14897
  "../theme-core/src/site-styles/rawStyleFields.ts"() {
14057
14898
  "use strict";
@@ -14066,6 +14907,7 @@ var init_rawStyleFields = __esm({
14066
14907
  ];
14067
14908
  themeV2BlockSpecificRawStyleFieldNames = [
14068
14909
  "_contentCardStyles",
14910
+ "_heroLayoutStyles",
14069
14911
  "_textCardStyles"
14070
14912
  ];
14071
14913
  themeV2NormalEditorRawStyleFieldNames = [
@@ -14075,6 +14917,10 @@ var init_rawStyleFields = __esm({
14075
14917
  themeV2NormalEditorRawStyleFieldNameSet = new Set(
14076
14918
  themeV2NormalEditorRawStyleFieldNames
14077
14919
  );
14920
+ themeV2CompilerOwnedFieldNames = [
14921
+ ...themeV2RuntimeStyleFieldNames,
14922
+ ...themeV2BlockSpecificRawStyleFieldNames
14923
+ ];
14078
14924
  }
14079
14925
  });
14080
14926
 
@@ -14088,7 +14934,7 @@ function uniqueNonEmpty(values) {
14088
14934
  }
14089
14935
  return [firstValue, ...uniqueValues.slice(1)];
14090
14936
  }
14091
- var themeV2DesignStateSchemaVersion, designResolutionPolicySchema, runtimeStyleFieldNameSchema, nonEmptyRuntimeStyleFieldNamesSchema, heroLegibilityStrategySchema, sectionHeightIntentSchema, imageSurfaceTreatmentIntensitySchema, imageSurfaceMotionSchema, imageSurfaceTreatmentSchema, testimonialCardTreatmentSchema, tileTreatmentSchema, eyebrowTreatmentSchema, userPanelTreatments, userFlushTreatments, userFlushBleeds, contentFrameIntentSchema, blockDesignPlanSchema, styleAuthoritySchema, blockRuntimeStyleAuthoritySchema, persistedPageDesignStateV1Schema;
14937
+ var themeV2DesignStateSchemaVersion, designResolutionPolicySchema, runtimeStyleFieldNameSchema, nonEmptyRuntimeStyleFieldNamesSchema, heroLegibilityStrategySchema, heroCompositionIntentSchema, heroTypographyScaleIntentSchema, sectionHeightIntentSchema, imageSurfaceTreatmentIntensitySchema, imageSurfaceMotionSchema, imageSurfaceTreatmentSchema, testimonialCardTreatmentSchema, tileTreatmentSchema, eventListTreatmentSchema, eyebrowTreatmentSchema, userPanelTreatments, userFlushTreatments, userFlushBleeds, contentFrameIntentSchema, blockDesignPlanSchema, styleAuthoritySchema, blockRuntimeStyleAuthoritySchema, persistedPageDesignStateV1Schema;
14092
14938
  var init_designState = __esm({
14093
14939
  "../theme-core/src/site-styles/designState.ts"() {
14094
14940
  "use strict";
@@ -14109,6 +14955,16 @@ var init_designState = __esm({
14109
14955
  "scrim-gradient",
14110
14956
  "solid-panel"
14111
14957
  ]);
14958
+ heroCompositionIntentSchema = z26.enum([
14959
+ "center",
14960
+ "bottom-left"
14961
+ ]);
14962
+ heroTypographyScaleIntentSchema = z26.enum([
14963
+ "quiet",
14964
+ "editorial",
14965
+ "display",
14966
+ "poster"
14967
+ ]);
14112
14968
  sectionHeightIntentSchema = z26.enum([
14113
14969
  "default",
14114
14970
  "banner",
@@ -14144,6 +15000,7 @@ var init_designState = __esm({
14144
15000
  ]);
14145
15001
  testimonialCardTreatmentSchema = z26.enum(["default", "accent-quote"]);
14146
15002
  tileTreatmentSchema = z26.enum(tileTreatmentValues);
15003
+ eventListTreatmentSchema = z26.enum(eventListTreatmentValues);
14147
15004
  eyebrowTreatmentSchema = z26.enum(eyebrowTreatmentValues);
14148
15005
  userPanelTreatments = uniqueNonEmpty(
14149
15006
  userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
@@ -14177,10 +15034,13 @@ var init_designState = __esm({
14177
15034
  emphasis: z26.enum(userDesignOptionCatalog.emphases),
14178
15035
  sectionHeight: sectionHeightIntentSchema.optional(),
14179
15036
  heroLegibility: heroLegibilityStrategySchema.optional(),
15037
+ heroComposition: heroCompositionIntentSchema.optional(),
15038
+ heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
14180
15039
  imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
14181
15040
  imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
14182
15041
  testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
14183
15042
  tileTreatment: tileTreatmentSchema.optional(),
15043
+ eventListTreatment: eventListTreatmentSchema.optional(),
14184
15044
  eyebrowTreatment: eyebrowTreatmentSchema.optional()
14185
15045
  }).strict();
14186
15046
  styleAuthoritySchema = z26.discriminatedUnion("kind", [
@@ -15840,6 +16700,7 @@ function styledSection(config) {
15840
16700
  renderBackgroundImage = true,
15841
16701
  backgroundImageLoading,
15842
16702
  backgroundImageFetchPriority,
16703
+ allowOverflow = false,
15843
16704
  fullWidthPath
15844
16705
  } = config;
15845
16706
  const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
@@ -15874,7 +16735,7 @@ function styledSection(config) {
15874
16735
  // No fallback needed - transform handles all cases via defaultSpacing
15875
16736
  }
15876
16737
  },
15877
- allowOverflow: {
16738
+ allowOverflow: allowOverflow ? true : {
15878
16739
  $bind: {
15879
16740
  from: `${bindFrom}.background`,
15880
16741
  transforms: [{ id: "background.resolveAllowOverflow" }],
@@ -16462,7 +17323,10 @@ function hasFixedFrameBackgroundMotion(value) {
16462
17323
  function isTileTreatment(value) {
16463
17324
  return typeof value === "string" && tileTreatmentSet.has(value);
16464
17325
  }
16465
- var spacingTransform, raisedTransform, roundedTransform, boxStylesCompositeTransform, boxStylesBorderColorTransform, fixedFrameScopeClass, tileTreatmentClassMap, tileTreatmentSet, sectionClassNameTransform, containerStylesResolveClassName, containerStylesResolveBoxClassName, sectionTextColorStyleTransform, sectionHeadingColorStyleTransform, sectionColorsStyleTransform, GAP_CLASS_MAP, GAP_VALUE_MAP, semanticGapTransform, semanticGapValueTransform, boxStylesTransforms;
17326
+ function isEventListTreatment(value) {
17327
+ return typeof value === "string" && eventListTreatmentSet.has(value);
17328
+ }
17329
+ var spacingTransform, raisedTransform, roundedTransform, boxStylesCompositeTransform, boxStylesBorderColorTransform, fixedFrameScopeClass, tileTreatmentClassMap, tileTreatmentSet, eventListTreatmentClassMap, eventListTreatmentSet, sectionClassNameTransform, containerStylesResolveClassName, containerStylesResolveBoxClassName, sectionTextColorStyleTransform, sectionHeadingColorStyleTransform, sectionColorsStyleTransform, GAP_CLASS_MAP, GAP_VALUE_MAP, semanticGapTransform, semanticGapValueTransform, boxStylesTransforms;
16466
17330
  var init_boxStyles2 = __esm({
16467
17331
  "../blocks/src/system/transforms/registry/boxStyles.ts"() {
16468
17332
  "use strict";
@@ -16637,6 +17501,11 @@ var init_boxStyles2 = __esm({
16637
17501
  "brand-depth": "rb-tile-treatment-brand-depth"
16638
17502
  };
16639
17503
  tileTreatmentSet = new Set(tileTreatmentValues);
17504
+ eventListTreatmentClassMap = {
17505
+ plain: "",
17506
+ "lined-panel": "rb-event-list-treatment-lined-panel"
17507
+ };
17508
+ eventListTreatmentSet = new Set(eventListTreatmentValues);
16640
17509
  sectionClassNameTransform = {
16641
17510
  id: "sectionStyles.resolveClassName",
16642
17511
  kind: "string",
@@ -16704,6 +17573,17 @@ var init_boxStyles2 = __esm({
16704
17573
  `[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
16705
17574
  );
16706
17575
  }
17576
+ const eventListTreatment = input?.eventListTreatment;
17577
+ if (isEventListTreatment(eventListTreatment)) {
17578
+ const eventListTreatmentClass = eventListTreatmentClassMap[eventListTreatment];
17579
+ if (eventListTreatmentClass) {
17580
+ classes.push(eventListTreatmentClass);
17581
+ }
17582
+ } else if (typeof eventListTreatment === "string" && process.env.NODE_ENV !== "production") {
17583
+ console.warn(
17584
+ `[sectionStyles] Invalid eventListTreatment value in _sectionStyles: "${eventListTreatment}". Expected one of: ${eventListTreatmentValues.join(", ")}.`
17585
+ );
17586
+ }
16707
17587
  if (hasFixedFrameBackgroundMotion(input)) {
16708
17588
  classes.push(fixedFrameScopeClass);
16709
17589
  }
@@ -17186,6 +18066,42 @@ var init_sectionState = __esm({
17186
18066
  }
17187
18067
  });
17188
18068
 
18069
+ // ../blocks/src/system/node/fragments/headingDecoration.ts
18070
+ function headingDecoration({
18071
+ bindFrom = defaultBindFrom,
18072
+ family,
18073
+ placement,
18074
+ className
18075
+ }) {
18076
+ return el(
18077
+ "div",
18078
+ {
18079
+ "aria-hidden": "true",
18080
+ className: {
18081
+ $bind: {
18082
+ from: bindFrom,
18083
+ transforms: [
18084
+ {
18085
+ id: "ui.headingDecorationClassName",
18086
+ options: { baseClass: className, family }
18087
+ }
18088
+ ]
18089
+ }
18090
+ }
18091
+ },
18092
+ null,
18093
+ when(`${bindFrom}.placement`, { equals: placement })
18094
+ );
18095
+ }
18096
+ var defaultBindFrom;
18097
+ var init_headingDecoration = __esm({
18098
+ "../blocks/src/system/node/fragments/headingDecoration.ts"() {
18099
+ "use strict";
18100
+ init_builder();
18101
+ defaultBindFrom = "_sectionStyles.headingDecoration";
18102
+ }
18103
+ });
18104
+
17189
18105
  // ../blocks/src/system/node/fragments/index.ts
17190
18106
  var init_fragments = __esm({
17191
18107
  "../blocks/src/system/node/fragments/index.ts"() {
@@ -17208,6 +18124,7 @@ var init_fragments = __esm({
17208
18124
  init_sectionState();
17209
18125
  init_classNameBinding();
17210
18126
  init_eyebrow();
18127
+ init_headingDecoration();
17211
18128
  }
17212
18129
  });
17213
18130
 
@@ -18037,6 +18954,7 @@ var init_testimonialsHeading = __esm({
18037
18954
  "use strict";
18038
18955
  init_types13();
18039
18956
  init_builder();
18957
+ init_headingDecoration();
18040
18958
  init_colorStyles();
18041
18959
  testimonialsHeadingFragment = defineFragment({
18042
18960
  id: "testimonialsHeading",
@@ -18067,6 +18985,10 @@ var init_testimonialsHeading = __esm({
18067
18985
  when("content.heading"),
18068
18986
  bind("content.heading")
18069
18987
  ),
18988
+ headingDecoration({
18989
+ family: "short-center-rule",
18990
+ placement: "under-centered-heading"
18991
+ }),
18070
18992
  text(
18071
18993
  {
18072
18994
  as: "p",
@@ -18868,6 +19790,41 @@ var init_faqHeading = __esm({
18868
19790
  });
18869
19791
 
18870
19792
  // ../blocks/src/system/fragments/library/faqAccordion.ts
19793
+ function createFaqAccordionLayout(options = {}) {
19794
+ return accordionList({
19795
+ collection: "content.items",
19796
+ itemName: "faqItem",
19797
+ indexName: "faqIndex",
19798
+ accordionProps: {
19799
+ className: options.rootClassName ?? "accordion-root",
19800
+ type: "single",
19801
+ collapsible: true
19802
+ },
19803
+ itemProps: {
19804
+ className: {
19805
+ $bind: {
19806
+ from: "content._cardStyles",
19807
+ transforms: [
19808
+ {
19809
+ id: "boxStyles.all",
19810
+ options: {
19811
+ axis: "all",
19812
+ includeSpacing: false,
19813
+ baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
19814
+ }
19815
+ }
19816
+ ]
19817
+ },
19818
+ fallback: "rb-faq-item"
19819
+ },
19820
+ iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
19821
+ // Legacy theme accordion style
19822
+ iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
19823
+ },
19824
+ triggerFrom: "faqItem.question",
19825
+ contentFrom: "faqItem.answer"
19826
+ });
19827
+ }
18871
19828
  var faqAccordionFragment;
18872
19829
  var init_faqAccordion = __esm({
18873
19830
  "../blocks/src/system/fragments/library/faqAccordion.ts"() {
@@ -18907,40 +19864,7 @@ var init_faqAccordion = __esm({
18907
19864
  }
18908
19865
  }
18909
19866
  ],
18910
- layout: accordionList({
18911
- collection: "content.items",
18912
- itemName: "faqItem",
18913
- indexName: "faqIndex",
18914
- accordionProps: {
18915
- className: "accordion-root",
18916
- // CSS-first: all styling handled by theme CSS
18917
- type: "single",
18918
- collapsible: true
18919
- },
18920
- itemProps: {
18921
- className: {
18922
- $bind: {
18923
- from: "content._cardStyles",
18924
- transforms: [
18925
- {
18926
- id: "boxStyles.all",
18927
- options: {
18928
- axis: "all",
18929
- includeSpacing: false,
18930
- baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
18931
- }
18932
- }
18933
- ]
18934
- },
18935
- fallback: "rb-faq-item"
18936
- },
18937
- iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
18938
- // Legacy theme accordion style
18939
- iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
18940
- },
18941
- triggerFrom: "faqItem.question",
18942
- contentFrom: "faqItem.answer"
18943
- })
19867
+ layout: createFaqAccordionLayout()
18944
19868
  });
18945
19869
  }
18946
19870
  });
@@ -20356,6 +21280,7 @@ function heroSplitImagePane() {
20356
21280
  function splitLayoutWith(children) {
20357
21281
  return styledSection({
20358
21282
  children: styledContainer({
21283
+ baseClassName: "rb-relative rb-isolate rb-overflow-visible",
20359
21284
  children: {
20360
21285
  type: "grid",
20361
21286
  props: {
@@ -20380,6 +21305,7 @@ function splitLayoutWith(children) {
20380
21305
  // The split variants render the image as a real grid column, so suppress
20381
21306
  // the default absolute background image layer while keeping color/overlay.
20382
21307
  renderBackgroundImage: false,
21308
+ allowOverflow: true,
20383
21309
  baseClass: ""
20384
21310
  });
20385
21311
  }
@@ -20580,6 +21506,21 @@ function introHeading(className) {
20580
21506
  bind("content.title")
20581
21507
  );
20582
21508
  }
21509
+ function introHeadingGroup(className) {
21510
+ return stack(
21511
+ {
21512
+ gap: "sm",
21513
+ className: "rb-intro-heading-group"
21514
+ },
21515
+ [
21516
+ introHeading(className),
21517
+ headingDecoration({
21518
+ family: "organic-squiggle",
21519
+ placement: "after-heading"
21520
+ })
21521
+ ]
21522
+ );
21523
+ }
20583
21524
  function introBody(className = "rb-prose rb-max-w-none") {
20584
21525
  return richText({ className }, bind("content.body"));
20585
21526
  }
@@ -20598,6 +21539,10 @@ function introCopyStack(options = {}) {
20598
21539
  },
20599
21540
  [
20600
21541
  introHeading(options.headingClassName ?? "rb-intro-title"),
21542
+ headingDecoration({
21543
+ family: "organic-squiggle",
21544
+ placement: "after-heading"
21545
+ }),
20601
21546
  introBody(options.bodyClassName),
20602
21547
  introCtas(options.ctaJustify)
20603
21548
  ]
@@ -20647,7 +21592,7 @@ var init_intro = __esm({
20647
21592
  className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
20648
21593
  },
20649
21594
  [
20650
- introHeading("rb-intro-title rb-max-w-xl"),
21595
+ introHeadingGroup("rb-intro-title rb-max-w-xl"),
20651
21596
  stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
20652
21597
  introBody(),
20653
21598
  introCtas("start")
@@ -20668,7 +21613,7 @@ var init_intro = __esm({
20668
21613
  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"
20669
21614
  },
20670
21615
  [
20671
- introHeading("rb-intro-title rb-max-w-xl"),
21616
+ introHeadingGroup("rb-intro-title rb-max-w-xl"),
20672
21617
  stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
20673
21618
  introBody(),
20674
21619
  introCtas("start")
@@ -21749,7 +22694,7 @@ function fragmentLayoutNode(layout) {
21749
22694
  function isNodeDefinitionArray(layout) {
21750
22695
  return Array.isArray(layout);
21751
22696
  }
21752
- var faqComposition, headingLayout, accordionLayout, defaultLayout, twoColumnLayout, faqManifest, faqBlockDefinition;
22697
+ var faqComposition, headingLayout, accordionLayout, questionColumnsAccordionLayout, defaultLayout, twoColumnLayout, questionColumnsLayout, faqManifest, faqBlockDefinition;
21753
22698
  var init_faq = __esm({
21754
22699
  "../blocks/src/system/blocks/faq.ts"() {
21755
22700
  "use strict";
@@ -21757,6 +22702,7 @@ var init_faq = __esm({
21757
22702
  init_styledSection();
21758
22703
  init_defineBlock();
21759
22704
  init_fragments2();
22705
+ init_faqAccordion();
21760
22706
  init_builder();
21761
22707
  init_boxStyles();
21762
22708
  faqComposition = composeFragments([
@@ -21765,6 +22711,9 @@ var init_faq = __esm({
21765
22711
  ]);
21766
22712
  headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
21767
22713
  accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
22714
+ questionColumnsAccordionLayout = createFaqAccordionLayout({
22715
+ rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
22716
+ });
21768
22717
  defaultLayout = styledSection({
21769
22718
  children: styledContainer({
21770
22719
  baseClassName: "rb-relative rb-isolate",
@@ -21778,11 +22727,24 @@ var init_faq = __esm({
21778
22727
  children: el(
21779
22728
  "div",
21780
22729
  {
21781
- className: "rb-faq-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
22730
+ className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
21782
22731
  },
21783
22732
  [
21784
- el("div", { className: "rb-faq-two-column-heading" }, [headingLayout]),
21785
- el("div", { className: "rb-faq-two-column-accordion" }, [accordionLayout])
22733
+ el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
22734
+ el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
22735
+ ]
22736
+ )
22737
+ }),
22738
+ baseClass: ""
22739
+ });
22740
+ questionColumnsLayout = styledSection({
22741
+ children: styledContainer({
22742
+ baseClassName: "rb-relative rb-isolate",
22743
+ children: stack(
22744
+ { gap: "xl", className: "rb-w-full" },
22745
+ [
22746
+ headingLayout,
22747
+ questionColumnsAccordionLayout
21786
22748
  ]
21787
22749
  )
21788
22750
  }),
@@ -21807,7 +22769,8 @@ var init_faq = __esm({
21807
22769
  layout: defaultLayout,
21808
22770
  variants: {
21809
22771
  default: defaultLayout,
21810
- "two-column": twoColumnLayout
22772
+ "two-column": twoColumnLayout,
22773
+ "question-columns": questionColumnsLayout
21811
22774
  },
21812
22775
  defaultVariant: "default",
21813
22776
  variantOptions: {
@@ -21818,6 +22781,10 @@ var init_faq = __esm({
21818
22781
  "two-column": {
21819
22782
  label: "Two column",
21820
22783
  description: "A left heading column with FAQ items on the right."
22784
+ },
22785
+ "question-columns": {
22786
+ label: "Question columns",
22787
+ description: "A full-width heading above FAQ items split into two columns."
21821
22788
  }
21822
22789
  },
21823
22790
  description: "Accordion of frequently asked questions and answers.",
@@ -21939,6 +22906,15 @@ import { z as z36 } from "zod";
21939
22906
  function isEyebrowTreatment(value) {
21940
22907
  return typeof value === "string" && eyebrowTreatmentSet.has(value);
21941
22908
  }
22909
+ function isHeadingDecorationFamily(value) {
22910
+ return typeof value === "string" && headingDecorationFamilySet.has(value);
22911
+ }
22912
+ function isHeadingDecorationPlacement(value) {
22913
+ return typeof value === "string" && headingDecorationPlacementSet.has(value);
22914
+ }
22915
+ function isHeadingDecorationColorToken(value) {
22916
+ return typeof value === "string" && headingDecorationColorTokenSet.has(value);
22917
+ }
21942
22918
  function resolveBorderColorValue(border2) {
21943
22919
  if (border2.enabled === false) return void 0;
21944
22920
  const rawColorToken = typeof border2.colorToken === "string" ? border2.colorToken.trim() : "";
@@ -21977,6 +22953,14 @@ function readString(obj, key) {
21977
22953
  const v = obj[key];
21978
22954
  return typeof v === "string" ? v : void 0;
21979
22955
  }
22956
+ function resolveGeneratedHeroLayoutStyles(content) {
22957
+ const raw = content._heroLayoutStyles;
22958
+ return isPlainObject(raw) ? raw : null;
22959
+ }
22960
+ function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
22961
+ const generated = resolveGeneratedHeroLayoutStyles(content);
22962
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
22963
+ }
21980
22964
  function resolveHeroVariant(content) {
21981
22965
  const variant = readString(content, "variant");
21982
22966
  if (variant && variant.trim()) return variant.trim();
@@ -21985,14 +22969,14 @@ function resolveHeroVariant(content) {
21985
22969
  return null;
21986
22970
  }
21987
22971
  function resolveHeroContentAlignment(content) {
21988
- const raw = readString(content, "contentAlignment");
22972
+ const raw = readHeroLayoutString(content, "contentAlignment");
21989
22973
  if (raw === "left" || raw === "center" || raw === "right") return raw;
21990
22974
  const variant = resolveHeroVariant(content);
21991
22975
  if (variant === "split" || variant === "splitReverse") return "left";
21992
22976
  return "center";
21993
22977
  }
21994
22978
  function resolveHeroVerticalAlignment(content) {
21995
- const raw = readString(content, "verticalAlignment");
22979
+ const raw = readHeroLayoutString(content, "verticalAlignment");
21996
22980
  if (raw === "top" || raw === "center" || raw === "bottom") return raw;
21997
22981
  const sectionStyles = asPartialObject(content._sectionStyles);
21998
22982
  const minHeight = sectionStyles?.minHeight;
@@ -22002,12 +22986,30 @@ function resolveHeroVerticalAlignment(content) {
22002
22986
  return "top";
22003
22987
  }
22004
22988
  function resolveHeroContentMaxWidth(content) {
22005
- const raw = readString(content, "contentMaxWidth");
22989
+ const raw = readHeroLayoutString(content, "contentMaxWidth");
22006
22990
  if (raw === "default" || raw === "narrow" || raw === "medium" || raw === "wide")
22007
22991
  return raw;
22008
22992
  return "default";
22009
22993
  }
22010
- var joinClasses3, eyebrowTreatmentClassMap, eyebrowTreatmentSet, imageGalleryCornerClassMap, parseRatio, ratioToHeightFactor, headerNavClassOptionsSchema, headerNavLinkClassTransform, headingClassFromAlignment, bodyClassFromAlignment, stackAlignFromAlignment, sectionStateToneTransform, heroContentWrapperClassSchema, heroContentWrapperClassTransform, heroCtaJustifyTransform, heroStackJustifyFromVerticalAlignmentTransform, heroGridClassFromVerticalAlignmentSchema, heroGridClassFromVerticalAlignmentTransform, imageFragmentClassOptionsSchema, imageFragmentClassTransform, imageFragmentSizeOptionsSchema, imageFragmentSizeTransform, conditionalClassOptionsSchema, conditionalClassTransform, twoColumnContainerClassOptionsSchema, twoColumnContainerClassTransform, twoColumnFlexBasisOptionsSchema, twoColumnFlexBasisTransform, columnsDesktopSpanClassOptionsSchema, columnsDesktopSpanClassTransform, resolveColumnsGridCols, columnsGridColsTransform, columnsColsAtTransform, ratioToHeightFactorTransform, uiTransforms;
22994
+ function resolveHeroTypographyScale(content) {
22995
+ const raw = readHeroLayoutString(
22996
+ content,
22997
+ "typographyScale",
22998
+ "heroTypographyScale"
22999
+ );
23000
+ if (raw === "quiet" || raw === "editorial" || raw === "display" || raw === "poster") {
23001
+ return raw;
23002
+ }
23003
+ return null;
23004
+ }
23005
+ function resolveHeroTitleLength(content) {
23006
+ const headline = readString(content, "headline")?.trim() ?? "";
23007
+ const wordCount = headline.length === 0 ? 0 : headline.split(/\s+/).length;
23008
+ if (headline.length > heroTitleLengthThresholds.long.maxCharacters || wordCount > heroTitleLengthThresholds.long.maxWords) return "long";
23009
+ if (headline.length > heroTitleLengthThresholds.medium.maxCharacters || wordCount > heroTitleLengthThresholds.medium.maxWords) return "medium";
23010
+ return "short";
23011
+ }
23012
+ var joinClasses3, eyebrowTreatmentClassMap, eyebrowTreatmentSet, headingDecorationFamilySet, headingDecorationPlacementSet, headingDecorationColorTokenSet, imageGalleryCornerClassMap, parseRatio, ratioToHeightFactor, headerNavClassOptionsSchema, headerNavLinkClassTransform, headingClassFromAlignment, bodyClassFromAlignment, stackAlignFromAlignment, sectionStateToneTransform, heroTitleLengthThresholds, heroContentWrapperClassSchema, heroContentWrapperClassTransform, heroCtaJustifyTransform, heroStackJustifyFromVerticalAlignmentTransform, heroGridClassFromVerticalAlignmentSchema, heroGridClassFromVerticalAlignmentTransform, imageFragmentClassOptionsSchema, imageFragmentClassTransform, imageFragmentSizeOptionsSchema, imageFragmentSizeTransform, conditionalClassOptionsSchema, conditionalClassTransform, twoColumnContainerClassOptionsSchema, twoColumnContainerClassTransform, twoColumnFlexBasisOptionsSchema, twoColumnFlexBasisTransform, columnsDesktopSpanClassOptionsSchema, columnsDesktopSpanClassTransform, resolveColumnsGridCols, columnsGridColsTransform, columnsColsAtTransform, ratioToHeightFactorTransform, uiTransforms;
22011
23013
  var init_ui = __esm({
22012
23014
  "../blocks/src/system/transforms/registry/ui.ts"() {
22013
23015
  "use strict";
@@ -22027,6 +23029,9 @@ var init_ui = __esm({
22027
23029
  "accent-pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent rb-eyebrow-treatment-pill-bounce"
22028
23030
  };
22029
23031
  eyebrowTreatmentSet = new Set(eyebrowTreatmentValues);
23032
+ headingDecorationFamilySet = new Set(visibleHeadingDecorationFamilyValues);
23033
+ headingDecorationPlacementSet = new Set(visibleHeadingDecorationPlacementValues);
23034
+ headingDecorationColorTokenSet = new Set(headingDecorationColorTokenValues);
22030
23035
  imageGalleryCornerClassMap = {
22031
23036
  none: "",
22032
23037
  sm: "rb-rounded-sm",
@@ -22099,6 +23104,10 @@ var init_ui = __esm({
22099
23104
  summary: "Map semantic section-state kind to feedback tone",
22100
23105
  run: (value) => sectionStateToneFromUnknown(value)
22101
23106
  };
23107
+ heroTitleLengthThresholds = {
23108
+ medium: { maxCharacters: 42, maxWords: 6 },
23109
+ long: { maxCharacters: 78, maxWords: 11 }
23110
+ };
22102
23111
  heroContentWrapperClassSchema = z36.object({
22103
23112
  base: z36.string().optional()
22104
23113
  });
@@ -22111,6 +23120,8 @@ var init_ui = __esm({
22111
23120
  const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
22112
23121
  const alignment = resolveHeroContentAlignment(content);
22113
23122
  const maxWidth = resolveHeroContentMaxWidth(content);
23123
+ const typographyScale = resolveHeroTypographyScale(content);
23124
+ const titleLength = resolveHeroTitleLength(content);
22114
23125
  const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
22115
23126
  const maxWidthClass = maxWidth === "narrow" ? "rb-max-w-2xl" : maxWidth === "medium" ? "rb-max-w-3xl" : maxWidth === "wide" ? "rb-max-w-5xl" : "";
22116
23127
  const positionClass = alignment === "center" ? "rb-mx-auto" : alignment === "right" ? "rb-ml-auto" : "";
@@ -22118,7 +23129,9 @@ var init_ui = __esm({
22118
23129
  options?.base,
22119
23130
  textAlignClass,
22120
23131
  maxWidthClass,
22121
- positionClass
23132
+ positionClass,
23133
+ typographyScale ? `rb-hero-typography-${typographyScale}` : "",
23134
+ `rb-hero-title-${titleLength}`
22122
23135
  ]);
22123
23136
  }
22124
23137
  };
@@ -22418,11 +23431,72 @@ var init_ui = __esm({
22418
23431
  const treatment = isEyebrowTreatment(value) ? value : "plain";
22419
23432
  return joinClasses3([baseClass, eyebrowTreatmentClassMap[treatment]]);
22420
23433
  }
23434
+ },
23435
+ {
23436
+ id: "ui.headingDecorationClassName",
23437
+ kind: "string",
23438
+ summary: "Apply constrained Theme V2 heading decoration classes",
23439
+ run: (value, options) => {
23440
+ const baseClass = typeof options?.baseClass === "string" && options.baseClass.trim() ? options.baseClass : "rb-heading-decoration";
23441
+ const decoration = asPartialObject(value);
23442
+ const family = isHeadingDecorationFamily(decoration?.family) ? decoration.family : null;
23443
+ const allowedFamily = isHeadingDecorationFamily(options?.family) ? options.family : null;
23444
+ const placement = isHeadingDecorationPlacement(decoration?.placement) ? decoration.placement : null;
23445
+ const colorToken = isHeadingDecorationColorToken(decoration?.colorToken) ? decoration.colorToken : "primary";
23446
+ if (!family || !placement) return "rb-hidden";
23447
+ if (allowedFamily && family !== allowedFamily) return "rb-hidden";
23448
+ return joinClasses3([
23449
+ baseClass,
23450
+ `rb-heading-decoration-${family}`,
23451
+ `rb-heading-decoration-placement-${placement}`,
23452
+ `rb-heading-decoration-color-${colorToken}`
23453
+ ]);
23454
+ }
22421
23455
  }
22422
23456
  ];
22423
23457
  }
22424
23458
  });
22425
23459
 
23460
+ // ../theme-core/src/siteChromePlacement.ts
23461
+ function parseHeaderPositioning(value) {
23462
+ return isHeaderPositioning(value) ? value : "static";
23463
+ }
23464
+ function isHeaderPositioning(value) {
23465
+ return typeof value === "string" && HEADER_POSITIONINGS.includes(value);
23466
+ }
23467
+ function planSiteChromePlacement(positioning) {
23468
+ switch (positioning) {
23469
+ case "static":
23470
+ return {
23471
+ kind: "static",
23472
+ headerRootClassName: null,
23473
+ standaloneShellClassName: null
23474
+ };
23475
+ case "sticky":
23476
+ return {
23477
+ kind: "sticky",
23478
+ headerRootClassName: "rb-sticky rb-top-0",
23479
+ standaloneShellClassName: "sticky top-0 z-40 w-full"
23480
+ };
23481
+ case "fixed":
23482
+ return {
23483
+ kind: "fixed",
23484
+ headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
23485
+ standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
23486
+ };
23487
+ default:
23488
+ return assertNever(positioning);
23489
+ }
23490
+ }
23491
+ var HEADER_POSITIONINGS;
23492
+ var init_siteChromePlacement = __esm({
23493
+ "../theme-core/src/siteChromePlacement.ts"() {
23494
+ "use strict";
23495
+ init_types2();
23496
+ HEADER_POSITIONINGS = ["static", "sticky", "fixed"];
23497
+ }
23498
+ });
23499
+
22426
23500
  // ../blocks/src/system/transforms/registry/layout.ts
22427
23501
  import { z as z37 } from "zod";
22428
23502
  function resolveBackgroundVisualStyles(backgroundColor, tokens, defaultToken = "surface") {
@@ -22517,6 +23591,7 @@ var init_layout = __esm({
22517
23591
  init_colorConversion();
22518
23592
  init_core3();
22519
23593
  init_colorStyles();
23594
+ init_siteChromePlacement();
22520
23595
  joinClasses4 = (parts) => parts.filter(
22521
23596
  (part) => typeof part === "string" && part.trim().length > 0
22522
23597
  ).join(" ").replace(/\s+/g, " ").trim();
@@ -22565,32 +23640,35 @@ var init_layout = __esm({
22565
23640
  ...options
22566
23641
  };
22567
23642
  const content = asPartialObject(value) ?? {};
22568
- const positioning = typeof content.positioning === "string" ? content.positioning : "static";
23643
+ const positioning = parseHeaderPositioning(content.positioning);
23644
+ const placement = planSiteChromePlacement(positioning);
22569
23645
  const shrinkOnScroll = Boolean(content.shrinkOnScroll);
22570
23646
  const header = asPartialObject(value);
22571
23647
  const visuals = resolveHeaderVisualStyles(header, context.theme);
22572
23648
  const navContainerType = header?.navContainer?.type ?? "none";
22573
23649
  const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
22574
23650
  const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
22575
- const classes = [
22576
- config.base,
22577
- backgroundClass
22578
- ];
23651
+ const classes = [config.base, backgroundClass];
22579
23652
  if (!hasContainedNav) {
22580
23653
  if (config.blur) classes.push(config.blur);
22581
23654
  if (config.blurSupport) classes.push(config.blurSupport);
22582
23655
  }
22583
- if (positioning === "sticky") {
23656
+ if (placement.kind === "sticky") {
22584
23657
  classes.push(
22585
23658
  visuals.isTransparent ? config.stickyTransparent : config.sticky
22586
23659
  );
22587
- } else if (positioning === "fixed") {
23660
+ } else if (placement.kind === "fixed") {
22588
23661
  classes.push(config.fixed);
22589
23662
  }
22590
- if (shrinkOnScroll && (positioning === "sticky" || positioning === "fixed")) {
23663
+ if (shrinkOnScroll && placement.kind !== "static") {
22591
23664
  classes.push(config.shrink);
22592
23665
  }
22593
- const VALID_VARIANTS = ["classic", "centered", "transparent", "floating", "editorial"];
23666
+ const VALID_VARIANTS = [
23667
+ "classic",
23668
+ "centered",
23669
+ "transparent",
23670
+ "floating"
23671
+ ];
22594
23672
  const variant = header?.variant;
22595
23673
  if (variant && VALID_VARIANTS.includes(variant)) {
22596
23674
  classes.push(`header-variant-${variant}`);
@@ -23132,12 +24210,23 @@ var init_responsiveDisplay = __esm({
23132
24210
  var init_shared2 = __esm({
23133
24211
  "../blocks/src/system/runtime/header/shared.ts"() {
23134
24212
  "use strict";
24213
+ init_siteChromePlacement();
23135
24214
  init_responsiveDisplay();
23136
24215
  }
23137
24216
  });
23138
24217
 
24218
+ // ../theme-core/src/siteChromeOverlayClearance.ts
24219
+ var SITE_CHROME_VISIBLE_HEADER_ATTR, SITE_CHROME_VISIBLE_HEADER_SELECTOR;
24220
+ var init_siteChromeOverlayClearance = __esm({
24221
+ "../theme-core/src/siteChromeOverlayClearance.ts"() {
24222
+ "use strict";
24223
+ SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
24224
+ SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
24225
+ }
24226
+ });
24227
+
23139
24228
  // ../blocks/src/system/blocks/site-header.ts
23140
- var logoRow, centeredLogoRow, createNavRow, headerCta, mobileCta, mobileToggleIcon, mobileToggleButton, mobileOverlayToggleButton, mobileNavList, mobileOverlayHeader, mobileOverlayBody, mobileOverlay, mobileHeaderBar, classicLayout2, centeredLayout, transparentLayout, floatingLayout, editorialLayout, headerLayout, siteHeaderManifest, siteHeaderBlockDefinition;
24229
+ var logoRow, centeredLogoRow, createNavRow, headerCta, mobileCta, mobileToggleIcon, mobileToggleButton, mobileOverlayToggleButton, mobileNavList, mobileOverlayHeader, mobileOverlayBody, mobileOverlay, mobileHeaderBar, classicLayout2, centeredLayout, transparentLayout, floatingLayout, headerLayout, siteHeaderManifest, siteHeaderBlockDefinition;
23141
24230
  var init_site_header = __esm({
23142
24231
  "../blocks/src/system/blocks/site-header.ts"() {
23143
24232
  "use strict";
@@ -23147,6 +24236,7 @@ var init_site_header = __esm({
23147
24236
  init_defineBlock();
23148
24237
  init_shared2();
23149
24238
  init_colorStyles();
24239
+ init_siteChromeOverlayClearance();
23150
24240
  logoRow = link(
23151
24241
  {
23152
24242
  href: "/",
@@ -23240,15 +24330,21 @@ var init_site_header = __esm({
23240
24330
  mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
23241
24331
  {
23242
24332
  type: "div",
23243
- props: { className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
24333
+ props: {
24334
+ className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
24335
+ }
23244
24336
  },
23245
24337
  {
23246
24338
  type: "div",
23247
- props: { className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
24339
+ props: {
24340
+ className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
24341
+ }
23248
24342
  },
23249
24343
  {
23250
24344
  type: "div",
23251
- props: { className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
24345
+ props: {
24346
+ className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
24347
+ }
23252
24348
  }
23253
24349
  ]);
23254
24350
  mobileToggleButton = {
@@ -23412,6 +24508,7 @@ var init_site_header = __esm({
23412
24508
  );
23413
24509
  floatingLayout = inline(
23414
24510
  {
24511
+ [SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
23415
24512
  className: bindProp("$root.theme.header.maxWidth", {
23416
24513
  transforms: pipe(
23417
24514
  tx("layout.maxWidthClass", {
@@ -23431,28 +24528,6 @@ var init_site_header = __esm({
23431
24528
  ],
23432
24529
  when("$root.theme.header.variant", { equals: "floating" })
23433
24530
  );
23434
- editorialLayout = stack(
23435
- {
23436
- gap: "md",
23437
- align: "center",
23438
- className: bindProp("$root.theme.header.maxWidth", {
23439
- transforms: pipe(
23440
- tx("layout.maxWidthClass", {
23441
- base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
23442
- })
23443
- ),
23444
- fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
23445
- })
23446
- },
23447
- [
23448
- centeredLogoRow,
23449
- createNavRow(
23450
- `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
23451
- "center"
23452
- )
23453
- ],
23454
- when("$root.theme.header.variant", { equals: "editorial" })
23455
- );
23456
24531
  headerLayout = headerSection(
23457
24532
  {
23458
24533
  background: bindProp("$root.theme.header", {
@@ -23466,10 +24541,7 @@ var init_site_header = __esm({
23466
24541
  }),
23467
24542
  style: bindProp("$root.theme.header", {
23468
24543
  transforms: pipe(tx("layout.headerRootStyle")),
23469
- fallback: mergeStyles(
23470
- textColorStyle("text"),
23471
- borderColorStyle("border")
23472
- )
24544
+ fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
23473
24545
  })
23474
24546
  },
23475
24547
  [
@@ -23478,7 +24550,6 @@ var init_site_header = __esm({
23478
24550
  centeredLayout,
23479
24551
  transparentLayout,
23480
24552
  floatingLayout,
23481
- editorialLayout,
23482
24553
  mobileOverlay
23483
24554
  ],
23484
24555
  props({
@@ -24460,6 +25531,10 @@ var init_feature_cards = __esm({
24460
25531
  when("content.title"),
24461
25532
  bind("content.title")
24462
25533
  ),
25534
+ headingDecoration({
25535
+ family: "short-center-rule",
25536
+ placement: "under-centered-heading"
25537
+ }),
24463
25538
  richText(
24464
25539
  {
24465
25540
  className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
@@ -27110,7 +28185,7 @@ var init_event_spotlight = __esm({
27110
28185
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
27111
28186
  function getContainerClass(layout, columns) {
27112
28187
  if (layout === "compact") {
27113
- return "event-listing-compact-container rb-flex rb-flex-col rb-gap-2";
28188
+ return "event-listing-compact-container rb-flex rb-flex-col";
27114
28189
  }
27115
28190
  if (layout === "stack") {
27116
28191
  return "rb-flex rb-flex-col rb-gap-6";
@@ -30137,6 +31212,7 @@ var init_shop_commerce_shared = __esm({
30137
31212
  storedProductCartItemSchema = z56.object({
30138
31213
  kind: z56.literal("product"),
30139
31214
  productId: z56.string().min(1),
31215
+ productCategoryId: z56.string().min(1).optional().nullable(),
30140
31216
  variantId: z56.string().min(1).optional().nullable(),
30141
31217
  title: z56.string().min(1),
30142
31218
  variantTitle: z56.string().optional().nullable(),
@@ -32735,6 +33811,14 @@ function scheduleDetailsCapable() {
32735
33811
  tileTreatments: scheduleTileTreatments
32736
33812
  });
32737
33813
  }
33814
+ function eventListCapable() {
33815
+ return declareBlockDesignCapability({
33816
+ sectionSurfaces: "supported",
33817
+ contentFrames: ["plain"],
33818
+ itemSurfaces: "unsupported",
33819
+ eventListTreatments
33820
+ });
33821
+ }
32738
33822
  function defaultBoundaryBias(visualWeight) {
32739
33823
  return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
32740
33824
  }
@@ -32773,7 +33857,7 @@ function ensureSystemBlockDefinitionsRegistered() {
32773
33857
  registerBlockDefinition(definition);
32774
33858
  }
32775
33859
  }
32776
- var heroSectionHeights, heroImageSurfaceTreatments, heroImageSurfaceMotions, standardEyebrowTreatments, animatedEyebrowTreatments, allSectionSurfaces, heroSectionSurfaces, scheduleTileTreatments, heroFlow, bodyFlow, mediaFlow, proofFlow, offeringsFlow, conversionFlow, siteChromeFlow, transactionalFlow, utilityFlow, systemBlockDefinitionsRaw, systemBlockDefinitions, defaultsRegistered;
33860
+ var heroSectionHeights, heroImageSurfaceTreatments, heroImageSurfaceMotions, standardEyebrowTreatments, animatedEyebrowTreatments, allSectionSurfaces, heroSectionSurfaces, scheduleTileTreatments, eventListTreatments, heroFlow, bodyFlow, mediaFlow, proofFlow, offeringsFlow, conversionFlow, siteChromeFlow, transactionalFlow, utilityFlow, systemBlockDefinitionsRaw, systemBlockDefinitions, defaultsRegistered;
32777
33861
  var init_blocks = __esm({
32778
33862
  "../blocks/src/system/blocks/index.ts"() {
32779
33863
  "use strict";
@@ -32900,6 +33984,10 @@ var init_blocks = __esm({
32900
33984
  "quiet",
32901
33985
  "brand-depth"
32902
33986
  ];
33987
+ eventListTreatments = [
33988
+ "plain",
33989
+ "lined-panel"
33990
+ ];
32903
33991
  heroFlow = {
32904
33992
  defaultRole: "hero",
32905
33993
  defaultWeight: "dominant",
@@ -33090,7 +34178,8 @@ var init_blocks = __esm({
33090
34178
  flow: bodyFlow,
33091
34179
  layoutProfiles: [
33092
34180
  layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
33093
- layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
34181
+ layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
34182
+ layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
33094
34183
  ]
33095
34184
  })),
33096
34185
  withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
@@ -33184,11 +34273,11 @@ var init_blocks = __esm({
33184
34273
  flow: offeringsFlow,
33185
34274
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
33186
34275
  })),
33187
- withDesignCapability("block.event-listing", eventListingBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
34276
+ withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
33188
34277
  flow: offeringsFlow,
33189
34278
  layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
33190
34279
  })),
33191
- withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
34280
+ withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
33192
34281
  flow: offeringsFlow,
33193
34282
  layoutProfiles: [
33194
34283
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
@@ -33978,6 +35067,14 @@ var init_runtime2 = __esm({
33978
35067
  }
33979
35068
  });
33980
35069
 
35070
+ // ../theme-core/src/accordions/defaults.ts
35071
+ var init_defaults = __esm({
35072
+ "../theme-core/src/accordions/defaults.ts"() {
35073
+ "use strict";
35074
+ init_curatedSiteStyles();
35075
+ }
35076
+ });
35077
+
33981
35078
  // ../theme-core/src/blockOverrides.ts
33982
35079
  var init_blockOverrides = __esm({
33983
35080
  "../theme-core/src/blockOverrides.ts"() {
@@ -33990,6 +35087,7 @@ import React2 from "react";
33990
35087
  var init_componentFactory = __esm({
33991
35088
  "../blocks/src/system/componentFactory.ts"() {
33992
35089
  "use strict";
35090
+ init_defaults();
33993
35091
  init_blockOverrides();
33994
35092
  }
33995
35093
  });
@@ -34115,13 +35213,6 @@ var init_generateAccordionCss = __esm({
34115
35213
  }
34116
35214
  });
34117
35215
 
34118
- // ../theme-core/src/accordions/defaults.ts
34119
- var init_defaults = __esm({
34120
- "../theme-core/src/accordions/defaults.ts"() {
34121
- "use strict";
34122
- }
34123
- });
34124
-
34125
35216
  // ../theme-core/src/inputs/generateInputCss.ts
34126
35217
  var init_generateInputCss = __esm({
34127
35218
  "../theme-core/src/inputs/generateInputCss.ts"() {
@@ -34151,6 +35242,8 @@ var init_generateNavLinkCSS = __esm({
34151
35242
  "../theme-core/src/navigation/generateNavLinkCSS.ts"() {
34152
35243
  "use strict";
34153
35244
  init_types10();
35245
+ init_expandPalette();
35246
+ init_colorConversion();
34154
35247
  init_generateBaseCSS();
34155
35248
  init_generateEffectsCSS();
34156
35249
  }
@@ -34728,6 +35821,21 @@ var init_form_block = __esm({
34728
35821
  }
34729
35822
  });
34730
35823
 
35824
+ // ../theme-core/src/runtime/themeCssVarNames.ts
35825
+ var THEME_RADIUS_CSS_VARS;
35826
+ var init_themeCssVarNames = __esm({
35827
+ "../theme-core/src/runtime/themeCssVarNames.ts"() {
35828
+ "use strict";
35829
+ THEME_RADIUS_CSS_VARS = {
35830
+ block: "--rb-block-radius",
35831
+ button: "--rb-button-radius",
35832
+ input: "--rb-input-radius",
35833
+ legacyCard: "--radius-card",
35834
+ legacyControl: "--radius-control"
35835
+ };
35836
+ }
35837
+ });
35838
+
34731
35839
  // ../theme-core/src/blocks/vars/customer-portal.ts
34732
35840
  function generateCustomerPortalVars({
34733
35841
  themeId
@@ -34741,6 +35849,11 @@ ${root} {
34741
35849
  --cp-muted: rgb(var(--tb-mutedText));
34742
35850
  --cp-border: rgb(var(--tb-border));
34743
35851
  --cp-shadow: var(--shadow-elev);
35852
+ --cp-primary: rgb(var(--tb-primary));
35853
+ --cp-primary-hover: rgb(var(--tb-primary-700, var(--tb-primary)));
35854
+ --cp-error: rgb(var(--tb-destructive));
35855
+ --cp-card-radius: var(${THEME_RADIUS_CSS_VARS.block}, var(${THEME_RADIUS_CSS_VARS.legacyCard}, 0.75rem));
35856
+ --cp-control-radius: var(${THEME_RADIUS_CSS_VARS.input}, var(${THEME_RADIUS_CSS_VARS.legacyControl}, 0.5rem));
34744
35857
 
34745
35858
  /* Shared tab bar (underline style) */
34746
35859
  --rb-tab-border-width: 1px;
@@ -34791,7 +35904,7 @@ ${root} {
34791
35904
  --rb-modal-bg: var(--cp-card-bg);
34792
35905
  --rb-modal-border: var(--cp-card-border);
34793
35906
  --rb-modal-shadow: var(--shadow-lg, var(--shadow-elev));
34794
- --rb-modal-radius: var(--radius-card);
35907
+ --rb-modal-radius: var(--cp-card-radius);
34795
35908
  --rb-modal-max-width: 560px;
34796
35909
 
34797
35910
  /* Header */
@@ -34806,6 +35919,7 @@ ${root} {
34806
35919
  var init_customer_portal = __esm({
34807
35920
  "../theme-core/src/blocks/vars/customer-portal.ts"() {
34808
35921
  "use strict";
35922
+ init_themeCssVarNames();
34809
35923
  }
34810
35924
  });
34811
35925
 
@@ -34972,6 +36086,7 @@ var init_vars = __esm({
34972
36086
  init_event_cards();
34973
36087
  init_appointment_booking2();
34974
36088
  init_form_block();
36089
+ init_customer_portal();
34975
36090
  init_testimonials2();
34976
36091
  init_course_details2();
34977
36092
  init_course_registration2();
@@ -35098,6 +36213,7 @@ var init_buildThemeRuntime = __esm({
35098
36213
  init_colorStyles();
35099
36214
  init_customCss();
35100
36215
  init_responsiveMode();
36216
+ init_themeCssVarNames();
35101
36217
  }
35102
36218
  });
35103
36219
 
@@ -37357,10 +38473,20 @@ var init_ThemeFontLoader = __esm({
37357
38473
  }
37358
38474
  });
37359
38475
 
38476
+ // ../theme-core/src/fonts/uploadFormat.ts
38477
+ var MAX_FONT_UPLOAD_BYTES;
38478
+ var init_uploadFormat = __esm({
38479
+ "../theme-core/src/fonts/uploadFormat.ts"() {
38480
+ "use strict";
38481
+ MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
38482
+ }
38483
+ });
38484
+
37360
38485
  // ../theme-core/src/fonts/index.ts
37361
38486
  var init_fonts = __esm({
37362
38487
  "../theme-core/src/fonts/index.ts"() {
37363
38488
  "use strict";
38489
+ init_uploadFormat();
37364
38490
  init_types18();
37365
38491
  }
37366
38492
  });
@@ -37380,6 +38506,7 @@ var init_buildThemeRuntimeFromBridge = __esm({
37380
38506
  init_status();
37381
38507
  init_progress();
37382
38508
  init_blocks2();
38509
+ init_themeCssVarNames();
37383
38510
  themeBridgeConfigSchema = z64.object({
37384
38511
  tokens: z64.record(z64.string(), z64.string()),
37385
38512
  typography: z64.object({
@@ -37411,12 +38538,24 @@ var init_buildThemeRuntimeFromBridge = __esm({
37411
38538
  }
37412
38539
  });
37413
38540
 
38541
+ // ../theme-core/src/siteChromePlanning.ts
38542
+ var init_siteChromePlanning = __esm({
38543
+ "../theme-core/src/siteChromePlanning.ts"() {
38544
+ "use strict";
38545
+ init_siteChromePlacement();
38546
+ init_siteChromeOverlayClearance();
38547
+ }
38548
+ });
38549
+
37414
38550
  // ../theme-core/src/siteChrome.tsx
37415
38551
  import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
37416
38552
  var init_siteChrome = __esm({
37417
38553
  "../theme-core/src/siteChrome.tsx"() {
37418
38554
  "use strict";
37419
38555
  init_types2();
38556
+ init_siteChromeOverlayClearance();
38557
+ init_siteChromePlanning();
38558
+ init_siteChromeOverlayClearance();
37420
38559
  }
37421
38560
  });
37422
38561
 
@@ -38345,6 +39484,93 @@ var init_bookingRefundOutcomes = __esm({
38345
39484
  });
38346
39485
 
38347
39486
  // ../api/src/bookingVerticals.ts
39487
+ import { z as z67 } from "zod";
39488
+ function parseVerticalId(value) {
39489
+ return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
39490
+ }
39491
+ function parseVerticalPresetId(value) {
39492
+ return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
39493
+ }
39494
+ function getVerticalPresetDefinition(presetId) {
39495
+ const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
39496
+ if (!definition) {
39497
+ throw new Error(`Unhandled vertical preset id: ${presetId}`);
39498
+ }
39499
+ return definition;
39500
+ }
39501
+ function toNonEmptyVerticalPresetIds(presetIds) {
39502
+ const firstPresetId = presetIds[0];
39503
+ return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
39504
+ }
39505
+ function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
39506
+ return {
39507
+ verticalId,
39508
+ selectedPresetIds
39509
+ };
39510
+ }
39511
+ function createSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
39512
+ const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
39513
+ return nonEmptyPresetIds ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
39514
+ }
39515
+ function resolveSiteVerticalBookingConfig(rawConfig) {
39516
+ if (!rawConfig) {
39517
+ return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
39518
+ }
39519
+ const verticalId = parseVerticalId(rawConfig.verticalId);
39520
+ const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
39521
+ const selectedPresetIds = rawPresetIds.map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
39522
+ const config = {
39523
+ verticalId,
39524
+ selectedPresetIds
39525
+ };
39526
+ if (!verticalId && selectedPresetIds.length === 0) {
39527
+ return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
39528
+ }
39529
+ const issues = getSiteVerticalConfigIssues(rawConfig, config);
39530
+ if (issues.length > 0) {
39531
+ return { kind: "invalid", config, issues };
39532
+ }
39533
+ const configuredConfig = verticalId ? createSiteVerticalBookingConfig(verticalId, selectedPresetIds) : null;
39534
+ if (!configuredConfig) {
39535
+ return { kind: "invalid", config, issues: ["empty_selected_presets"] };
39536
+ }
39537
+ return {
39538
+ kind: "configured",
39539
+ config: configuredConfig,
39540
+ selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
39541
+ };
39542
+ }
39543
+ function getSiteVerticalConfigIssues(rawConfig, config) {
39544
+ const issues = /* @__PURE__ */ new Set();
39545
+ if (rawConfig.verticalId != null && !config.verticalId) {
39546
+ issues.add("unknown_vertical");
39547
+ }
39548
+ if (!config.verticalId && config.selectedPresetIds.length > 0) {
39549
+ issues.add("missing_vertical");
39550
+ }
39551
+ const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
39552
+ if (rawPresetIds.some((presetId) => parseVerticalPresetId(presetId) === null)) {
39553
+ issues.add("unknown_preset");
39554
+ }
39555
+ if (config.verticalId && config.selectedPresetIds.length === 0) {
39556
+ issues.add("empty_selected_presets");
39557
+ }
39558
+ const seenBehaviours = /* @__PURE__ */ new Set();
39559
+ for (const presetId of config.selectedPresetIds) {
39560
+ const presetDefinition = getVerticalPresetDefinition(presetId);
39561
+ if (config.verticalId && presetDefinition.verticalId !== config.verticalId) {
39562
+ issues.add("preset_vertical_mismatch");
39563
+ }
39564
+ if (presetDefinition.availability === "future") {
39565
+ issues.add("future_preset_selected");
39566
+ }
39567
+ if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) {
39568
+ issues.add("duplicate_canonical_behaviour");
39569
+ }
39570
+ seenBehaviours.add(presetDefinition.canonicalBehaviour);
39571
+ }
39572
+ return [...issues];
39573
+ }
38348
39574
  function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
38349
39575
  return {
38350
39576
  id,
@@ -38357,7 +39583,7 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
38357
39583
  description
38358
39584
  };
38359
39585
  }
38360
- var VERTICAL_IDS, BOOKING_ENGINE_BY_BEHAVIOUR, VERTICAL_BOOKING_PRESETS, VERTICAL_ID_SET, VERTICAL_PRESET_ID_SET;
39586
+ var VERTICAL_IDS, BOOKING_ENGINE_BY_BEHAVIOUR, VERTICAL_BOOKING_PRESETS, VERTICAL_ID_SET, VERTICAL_PRESET_ID_SET, VerticalIdSchema, VerticalPresetIdSchema, BookingVerticalConfigSchema, DEFAULT_SITE_VERTICAL_BOOKING_CONFIG;
38361
39587
  var init_bookingVerticals = __esm({
38362
39588
  "../api/src/bookingVerticals.ts"() {
38363
39589
  "use strict";
@@ -38439,6 +39665,46 @@ var init_bookingVerticals = __esm({
38439
39665
  VERTICAL_PRESET_ID_SET = new Set(
38440
39666
  VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
38441
39667
  );
39668
+ VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
39669
+ const parsed = parseVerticalId(value);
39670
+ if (!parsed) {
39671
+ ctx.addIssue({
39672
+ code: z67.ZodIssueCode.custom,
39673
+ message: "Unknown booking vertical"
39674
+ });
39675
+ return z67.NEVER;
39676
+ }
39677
+ return parsed;
39678
+ });
39679
+ VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
39680
+ const parsed = parseVerticalPresetId(value);
39681
+ if (!parsed) {
39682
+ ctx.addIssue({
39683
+ code: z67.ZodIssueCode.custom,
39684
+ message: "Unknown booking preset"
39685
+ });
39686
+ return z67.NEVER;
39687
+ }
39688
+ return parsed;
39689
+ });
39690
+ BookingVerticalConfigSchema = z67.object({
39691
+ verticalId: VerticalIdSchema.nullable(),
39692
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
39693
+ }).transform((value, ctx) => {
39694
+ const resolved = resolveSiteVerticalBookingConfig(value);
39695
+ if (resolved.kind === "invalid") {
39696
+ ctx.addIssue({
39697
+ code: z67.ZodIssueCode.custom,
39698
+ message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
39699
+ });
39700
+ return z67.NEVER;
39701
+ }
39702
+ return resolved.config;
39703
+ });
39704
+ DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
39705
+ verticalId: null,
39706
+ selectedPresetIds: []
39707
+ };
38442
39708
  }
38443
39709
  });
38444
39710
 
@@ -38462,7 +39728,7 @@ var init_error_propagation = __esm({
38462
39728
  });
38463
39729
 
38464
39730
  // ../api/src/appointmentSetup.ts
38465
- import { z as z67 } from "zod";
39731
+ import { z as z68 } from "zod";
38466
39732
  var APPOINTMENT_SETUP_MAX_MINUTES, appointmentSetupRefSchema, appointmentSetupVenueChoiceSchema, appointmentSetupPaymentDraftSchema, appointmentSetupServiceAssignmentDraftSchema, appointmentSetupServiceDraftSchema, appointmentSetupPractitionerDraftSchema, appointmentSetupWeeklyWindowDraftSchema, appointmentSetupStartTimePolicyDraftSchema, appointmentSetupAvailabilityDraftSchema, APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX, APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX, appointmentSetupBookingNoticeSchema, applyAppointmentSetupRequestSchema;
38467
39733
  var init_appointmentSetup = __esm({
38468
39734
  "../api/src/appointmentSetup.ts"() {
@@ -38470,49 +39736,49 @@ var init_appointmentSetup = __esm({
38470
39736
  init_envelope();
38471
39737
  init_error_propagation();
38472
39738
  APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38473
- appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
38474
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
38475
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
39739
+ appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
39740
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
39741
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38476
39742
  ]);
38477
- appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
38478
- z67.object({ kind: z67.literal("none") }),
38479
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
38480
- z67.object({
38481
- kind: z67.literal("create"),
38482
- draftId: z67.string().min(1),
38483
- title: z67.string().trim().min(1),
38484
- description: z67.string().nullable(),
38485
- timezone: z67.string().trim().min(1).nullable(),
38486
- addressJson: z67.record(z67.string(), z67.unknown()),
38487
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
39743
+ appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
39744
+ z68.object({ kind: z68.literal("none") }),
39745
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
39746
+ z68.object({
39747
+ kind: z68.literal("create"),
39748
+ draftId: z68.string().min(1),
39749
+ title: z68.string().trim().min(1),
39750
+ description: z68.string().nullable(),
39751
+ timezone: z68.string().trim().min(1).nullable(),
39752
+ addressJson: z68.record(z68.string(), z68.unknown()),
39753
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38488
39754
  })
38489
39755
  ]);
38490
- appointmentSetupPaymentDraftSchema = z67.object({
38491
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
38492
- });
38493
- appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
38494
- z67.object({ kind: z67.literal("all_practitioners") }),
38495
- z67.object({
38496
- kind: z67.literal("selected_practitioners"),
38497
- resourceRefs: z67.array(appointmentSetupRefSchema)
39756
+ appointmentSetupPaymentDraftSchema = z68.object({
39757
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
39758
+ });
39759
+ appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
39760
+ z68.object({ kind: z68.literal("all_practitioners") }),
39761
+ z68.object({
39762
+ kind: z68.literal("selected_practitioners"),
39763
+ resourceRefs: z68.array(appointmentSetupRefSchema)
38498
39764
  })
38499
39765
  ]);
38500
- appointmentSetupServiceDraftSchema = z67.object({
39766
+ appointmentSetupServiceDraftSchema = z68.object({
38501
39767
  ref: appointmentSetupRefSchema,
38502
- title: z67.string().trim().min(1),
38503
- description: z67.string().nullable(),
38504
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38505
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38506
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38507
- priceAmount: z67.number().int().nonnegative().nullable(),
38508
- isActive: z67.boolean(),
38509
- locationType: z67.union([
38510
- z67.literal("virtual"),
38511
- z67.literal("in_person"),
38512
- z67.literal("hybrid")
39768
+ title: z68.string().trim().min(1),
39769
+ description: z68.string().nullable(),
39770
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39771
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39772
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39773
+ priceAmount: z68.number().int().nonnegative().nullable(),
39774
+ isActive: z68.boolean(),
39775
+ locationType: z68.union([
39776
+ z68.literal("virtual"),
39777
+ z68.literal("in_person"),
39778
+ z68.literal("hybrid")
38513
39779
  ]),
38514
39780
  venue: appointmentSetupVenueChoiceSchema,
38515
- timezone: z67.string().trim().min(1).nullable(),
39781
+ timezone: z68.string().trim().min(1).nullable(),
38516
39782
  payment: appointmentSetupPaymentDraftSchema,
38517
39783
  assignment: appointmentSetupServiceAssignmentDraftSchema
38518
39784
  }).superRefine((service, ctx) => {
@@ -38531,49 +39797,49 @@ var init_appointmentSetup = __esm({
38531
39797
  });
38532
39798
  }
38533
39799
  });
38534
- appointmentSetupPractitionerDraftSchema = z67.object({
39800
+ appointmentSetupPractitionerDraftSchema = z68.object({
38535
39801
  ref: appointmentSetupRefSchema,
38536
- displayName: z67.string().trim().min(1),
38537
- bio: z67.string().nullable(),
38538
- timezone: z67.string().trim().min(1),
38539
- colorHex: z67.string().nullable()
38540
- });
38541
- appointmentSetupWeeklyWindowDraftSchema = z67.object({
38542
- weekday: z67.number().int().min(0).max(6),
38543
- startTime: z67.string(),
38544
- endTime: z67.string()
38545
- });
38546
- appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
38547
- z67.object({ kind: z67.literal("automatic_spacing") }),
38548
- z67.object({
38549
- kind: z67.literal("regular_interval"),
38550
- intervalMinutes: z67.union([
38551
- z67.literal(10),
38552
- z67.literal(15),
38553
- z67.literal(20),
38554
- z67.literal(30),
38555
- z67.literal(45),
38556
- z67.literal(60)
39802
+ displayName: z68.string().trim().min(1),
39803
+ bio: z68.string().nullable(),
39804
+ timezone: z68.string().trim().min(1),
39805
+ colorHex: z68.string().nullable()
39806
+ });
39807
+ appointmentSetupWeeklyWindowDraftSchema = z68.object({
39808
+ weekday: z68.number().int().min(0).max(6),
39809
+ startTime: z68.string(),
39810
+ endTime: z68.string()
39811
+ });
39812
+ appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
39813
+ z68.object({ kind: z68.literal("automatic_spacing") }),
39814
+ z68.object({
39815
+ kind: z68.literal("regular_interval"),
39816
+ intervalMinutes: z68.union([
39817
+ z68.literal(10),
39818
+ z68.literal(15),
39819
+ z68.literal(20),
39820
+ z68.literal(30),
39821
+ z68.literal(45),
39822
+ z68.literal(60)
38557
39823
  ])
38558
39824
  })
38559
39825
  ]);
38560
- appointmentSetupAvailabilityDraftSchema = z67.object({
38561
- kind: z67.literal("weekly_windows"),
39826
+ appointmentSetupAvailabilityDraftSchema = z68.object({
39827
+ kind: z68.literal("weekly_windows"),
38562
39828
  resourceRef: appointmentSetupRefSchema,
38563
39829
  serviceRef: appointmentSetupRefSchema.nullable(),
38564
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
39830
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38565
39831
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38566
39832
  });
38567
39833
  APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38568
39834
  APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38569
- appointmentSetupBookingNoticeSchema = z67.object({
38570
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38571
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38572
- });
38573
- applyAppointmentSetupRequestSchema = z67.object({
38574
- services: z67.array(appointmentSetupServiceDraftSchema),
38575
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
38576
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
39835
+ appointmentSetupBookingNoticeSchema = z68.object({
39836
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39837
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39838
+ });
39839
+ applyAppointmentSetupRequestSchema = z68.object({
39840
+ services: z68.array(appointmentSetupServiceDraftSchema),
39841
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
39842
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38577
39843
  bookingNotice: appointmentSetupBookingNoticeSchema
38578
39844
  });
38579
39845
  }
@@ -38623,6 +39889,24 @@ var init_siteAnalytics = __esm({
38623
39889
  }
38624
39890
  });
38625
39891
 
39892
+ // ../api/src/siteMembers.ts
39893
+ var init_siteMembers = __esm({
39894
+ "../api/src/siteMembers.ts"() {
39895
+ "use strict";
39896
+ init_envelope();
39897
+ init_error_propagation();
39898
+ }
39899
+ });
39900
+
39901
+ // ../api/src/staffAccess.ts
39902
+ var init_staffAccess = __esm({
39903
+ "../api/src/staffAccess.ts"() {
39904
+ "use strict";
39905
+ init_accessAdmin();
39906
+ init_siteMembers();
39907
+ }
39908
+ });
39909
+
38626
39910
  // ../api/src/common/cancellation.ts
38627
39911
  var STAFF_CANCELLATION_CONTEXT_UI_CATEGORIES, STAFF_CANCELLATION_CONTEXT_CATEGORIES;
38628
39912
  var init_cancellation = __esm({
@@ -38651,20 +39935,12 @@ var init_siteOperations = __esm({
38651
39935
  }
38652
39936
  });
38653
39937
 
38654
- // ../api/src/siteMembers.ts
38655
- var init_siteMembers = __esm({
38656
- "../api/src/siteMembers.ts"() {
38657
- "use strict";
38658
- init_envelope();
38659
- init_error_propagation();
38660
- }
38661
- });
38662
-
38663
39938
  // ../api/src/types.ts
38664
39939
  var init_types19 = __esm({
38665
39940
  "../api/src/types.ts"() {
38666
39941
  "use strict";
38667
39942
  init_accessAdmin();
39943
+ init_staffAccess();
38668
39944
  init_siteOperations();
38669
39945
  init_siteMembers();
38670
39946
  }
@@ -38678,7 +39954,7 @@ var init_eventAttendanceLabels = __esm({
38678
39954
  });
38679
39955
 
38680
39956
  // ../api/src/siteBanner.ts
38681
- import { z as z68 } from "zod";
39957
+ import { z as z69 } from "zod";
38682
39958
  function analyzeSiteBannerBody(body) {
38683
39959
  const sanitizedBody = sanitizeSiteBannerBodyInternal(body, { limitParagraphs: false });
38684
39960
  const paragraphs = collectParagraphs(sanitizedBody);
@@ -38861,19 +40137,19 @@ var init_siteBanner = __esm({
38861
40137
  SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38862
40138
  SITE_BANNER_MAX_TEXT_LENGTH = 320;
38863
40139
  SITE_BANNER_MAX_PARAGRAPHS = 2;
38864
- siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
38865
- siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
38866
- siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
38867
- siteBannerCtaSchema = z68.object({
38868
- label: z68.string().trim().min(1),
40140
+ siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
40141
+ siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
40142
+ siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
40143
+ siteBannerCtaSchema = z69.object({
40144
+ label: z69.string().trim().min(1),
38869
40145
  link: linkPayloadSchema
38870
40146
  });
38871
- siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
38872
- z68.object({
38873
- enabled: z68.literal(false)
40147
+ siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
40148
+ z69.object({
40149
+ enabled: z69.literal(false)
38874
40150
  }),
38875
- z68.object({
38876
- enabled: z68.literal(true),
40151
+ z69.object({
40152
+ enabled: z69.literal(true),
38877
40153
  scope: siteBannerScopeSchema,
38878
40154
  tone: siteBannerToneSchema,
38879
40155
  body: siteBannerBodySchema,
@@ -38887,7 +40163,7 @@ var init_siteBanner = __esm({
38887
40163
  const analysis = analyzeSiteBannerBody(value.body);
38888
40164
  for (const issue of analysis.issues) {
38889
40165
  ctx.addIssue({
38890
- code: z68.ZodIssueCode.custom,
40166
+ code: z69.ZodIssueCode.custom,
38891
40167
  path: ["body"],
38892
40168
  message: siteBannerBodyIssueMessage(issue)
38893
40169
  });
@@ -39105,6 +40381,95 @@ var init_routableLink = __esm({
39105
40381
  }
39106
40382
  });
39107
40383
 
40384
+ // ../api/src/navigation/linkUrlType.ts
40385
+ var init_linkUrlType = __esm({
40386
+ "../api/src/navigation/linkUrlType.ts"() {
40387
+ "use strict";
40388
+ }
40389
+ });
40390
+
40391
+ // ../api/src/navigation/visibility.ts
40392
+ var init_visibility = __esm({
40393
+ "../api/src/navigation/visibility.ts"() {
40394
+ "use strict";
40395
+ init_types19();
40396
+ init_isRecord();
40397
+ }
40398
+ });
40399
+
40400
+ // ../api/src/navigation/dashboardSiteNav.ts
40401
+ var hiddenDemoSiteNavSurfaceIds, hiddenDemoSiteNavIds, websiteSurfaceIds, websiteSurfaceIdSet;
40402
+ var init_dashboardSiteNav = __esm({
40403
+ "../api/src/navigation/dashboardSiteNav.ts"() {
40404
+ "use strict";
40405
+ init_visibility();
40406
+ hiddenDemoSiteNavSurfaceIds = [
40407
+ "site.newsletter"
40408
+ ];
40409
+ hiddenDemoSiteNavIds = new Set(
40410
+ hiddenDemoSiteNavSurfaceIds
40411
+ );
40412
+ websiteSurfaceIds = [
40413
+ "site.content",
40414
+ "site.footerBlocks",
40415
+ "site.navigation",
40416
+ "site.media",
40417
+ "site.style",
40418
+ "site.performance"
40419
+ ];
40420
+ websiteSurfaceIdSet = new Set(
40421
+ websiteSurfaceIds
40422
+ );
40423
+ }
40424
+ });
40425
+
40426
+ // ../api/src/navigation/dashboardSettingsNav.ts
40427
+ var hiddenDemoSettingsNavSurfaceIds, hiddenDemoSettingsNavIds;
40428
+ var init_dashboardSettingsNav = __esm({
40429
+ "../api/src/navigation/dashboardSettingsNav.ts"() {
40430
+ "use strict";
40431
+ init_visibility();
40432
+ init_dashboardSiteNav();
40433
+ hiddenDemoSettingsNavSurfaceIds = [
40434
+ "settings.features",
40435
+ "settings.domains",
40436
+ "settings.bookings",
40437
+ "settings.emails",
40438
+ "settings.team",
40439
+ "settings.billing",
40440
+ "settings.developer",
40441
+ "settings.apiKeys",
40442
+ "settings.backup"
40443
+ ];
40444
+ hiddenDemoSettingsNavIds = new Set(hiddenDemoSettingsNavSurfaceIds);
40445
+ }
40446
+ });
40447
+
40448
+ // ../api/src/navigation/dashboardTeamMemberNav.ts
40449
+ var init_dashboardTeamMemberNav = __esm({
40450
+ "../api/src/navigation/dashboardTeamMemberNav.ts"() {
40451
+ "use strict";
40452
+ init_staffAccess();
40453
+ }
40454
+ });
40455
+
40456
+ // ../api/src/navigation/dashboardBookingsNav.ts
40457
+ var init_dashboardBookingsNav = __esm({
40458
+ "../api/src/navigation/dashboardBookingsNav.ts"() {
40459
+ "use strict";
40460
+ init_bookingVerticals();
40461
+ init_staffAccess();
40462
+ }
40463
+ });
40464
+
40465
+ // ../api/src/navigation/dashboardDemoNav.ts
40466
+ var init_dashboardDemoNav = __esm({
40467
+ "../api/src/navigation/dashboardDemoNav.ts"() {
40468
+ "use strict";
40469
+ init_dashboardSiteNav();
40470
+ }
40471
+ });
40472
+
39108
40473
  // ../api/src/navigation/linkValue.ts
39109
40474
  var init_linkValue = __esm({
39110
40475
  "../api/src/navigation/linkValue.ts"() {
@@ -39129,17 +40494,21 @@ var init_navigation = __esm({
39129
40494
  init_navigationMenuValidation();
39130
40495
  init_linkResolver();
39131
40496
  init_routableLink();
40497
+ init_linkUrlType();
40498
+ init_dashboardSiteNav();
40499
+ init_dashboardSettingsNav();
40500
+ init_dashboardTeamMemberNav();
40501
+ init_dashboardBookingsNav();
40502
+ init_dashboardDemoNav();
39132
40503
  init_linkValue();
39133
40504
  init_matcher();
39134
40505
  }
39135
40506
  });
39136
40507
 
39137
- // ../api/src/navigation/visibility.ts
39138
- var init_visibility = __esm({
39139
- "../api/src/navigation/visibility.ts"() {
40508
+ // ../api/src/workflows/automaticWorkflowTriggers.ts
40509
+ var init_automaticWorkflowTriggers = __esm({
40510
+ "../api/src/workflows/automaticWorkflowTriggers.ts"() {
39140
40511
  "use strict";
39141
- init_types19();
39142
- init_isRecord();
39143
40512
  }
39144
40513
  });
39145
40514
 
@@ -39170,75 +40539,75 @@ var init_aiPatch = __esm({
39170
40539
  });
39171
40540
 
39172
40541
  // ../api/src/aiPlayground.ts
39173
- import { z as z69 } from "zod";
40542
+ import { z as z70 } from "zod";
39174
40543
  var Rfc6902PatchOp, PlaygroundProposeRequest, MultiPagePatchEnvelope, MultiPageUpdateResponse;
39175
40544
  var init_aiPlayground = __esm({
39176
40545
  "../api/src/aiPlayground.ts"() {
39177
40546
  "use strict";
39178
- Rfc6902PatchOp = z69.discriminatedUnion("op", [
40547
+ Rfc6902PatchOp = z70.discriminatedUnion("op", [
39179
40548
  // Standard RFC-6902 operations
39180
- z69.object({
39181
- op: z69.literal("add"),
39182
- path: z69.string(),
39183
- value: z69.unknown()
40549
+ z70.object({
40550
+ op: z70.literal("add"),
40551
+ path: z70.string(),
40552
+ value: z70.unknown()
39184
40553
  }),
39185
- z69.object({
39186
- op: z69.literal("remove"),
39187
- path: z69.string()
40554
+ z70.object({
40555
+ op: z70.literal("remove"),
40556
+ path: z70.string()
39188
40557
  }),
39189
- z69.object({
39190
- op: z69.literal("replace"),
39191
- path: z69.string(),
39192
- value: z69.unknown()
40558
+ z70.object({
40559
+ op: z70.literal("replace"),
40560
+ path: z70.string(),
40561
+ value: z70.unknown()
39193
40562
  }),
39194
- z69.object({
39195
- op: z69.literal("move"),
39196
- from: z69.string(),
39197
- path: z69.string()
40563
+ z70.object({
40564
+ op: z70.literal("move"),
40565
+ from: z70.string(),
40566
+ path: z70.string()
39198
40567
  }),
39199
- z69.object({
39200
- op: z69.literal("copy"),
39201
- from: z69.string(),
39202
- path: z69.string()
40568
+ z70.object({
40569
+ op: z70.literal("copy"),
40570
+ from: z70.string(),
40571
+ path: z70.string()
39203
40572
  }),
39204
40573
  // Block-level operations (Phase 2)
39205
- z69.object({
39206
- op: z69.literal("add_block"),
39207
- blockKind: z69.string(),
39208
- afterBlockId: z69.string().nullable(),
39209
- content: z69.record(z69.string(), z69.unknown()),
39210
- rationale: z69.string()
40574
+ z70.object({
40575
+ op: z70.literal("add_block"),
40576
+ blockKind: z70.string(),
40577
+ afterBlockId: z70.string().nullable(),
40578
+ content: z70.record(z70.string(), z70.unknown()),
40579
+ rationale: z70.string()
39211
40580
  }),
39212
- z69.object({
39213
- op: z69.literal("delete_block"),
39214
- blockId: z69.string(),
39215
- rationale: z69.string()
40581
+ z70.object({
40582
+ op: z70.literal("delete_block"),
40583
+ blockId: z70.string(),
40584
+ rationale: z70.string()
39216
40585
  }),
39217
- z69.object({
39218
- op: z69.literal("reorder_block"),
39219
- blockId: z69.string(),
39220
- afterBlockId: z69.string().nullable(),
39221
- rationale: z69.string()
40586
+ z70.object({
40587
+ op: z70.literal("reorder_block"),
40588
+ blockId: z70.string(),
40589
+ afterBlockId: z70.string().nullable(),
40590
+ rationale: z70.string()
39222
40591
  })
39223
40592
  ]);
39224
- PlaygroundProposeRequest = z69.object({
39225
- request: z69.string().min(1).max(2e3)
40593
+ PlaygroundProposeRequest = z70.object({
40594
+ request: z70.string().min(1).max(2e3)
39226
40595
  });
39227
- MultiPagePatchEnvelope = z69.object({
39228
- pageId: z69.string(),
39229
- blockId: z69.string().optional(),
40596
+ MultiPagePatchEnvelope = z70.object({
40597
+ pageId: z70.string(),
40598
+ blockId: z70.string().optional(),
39230
40599
  // Not present for page-level ops
39231
- blockKind: z69.string().optional(),
39232
- blockPurpose: z69.string().optional().nullable(),
39233
- ops: z69.array(Rfc6902PatchOp),
39234
- rationale: z69.string(),
39235
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
40600
+ blockKind: z70.string().optional(),
40601
+ blockPurpose: z70.string().optional().nullable(),
40602
+ ops: z70.array(Rfc6902PatchOp),
40603
+ rationale: z70.string(),
40604
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
39236
40605
  });
39237
- MultiPageUpdateResponse = z69.object({
39238
- patches: z69.array(MultiPagePatchEnvelope),
39239
- assistantMessage: z69.string(),
39240
- pagesModified: z69.number(),
39241
- toolCallsUsed: z69.number()
40606
+ MultiPageUpdateResponse = z70.object({
40607
+ patches: z70.array(MultiPagePatchEnvelope),
40608
+ assistantMessage: z70.string(),
40609
+ pagesModified: z70.number(),
40610
+ toolCallsUsed: z70.number()
39242
40611
  });
39243
40612
  }
39244
40613
  });
@@ -39301,6 +40670,7 @@ var init_src5 = __esm({
39301
40670
  "../api/src/index.ts"() {
39302
40671
  "use strict";
39303
40672
  init_endpoints();
40673
+ init_demoDashboardMutationSurfaces();
39304
40674
  init_accessAdmin();
39305
40675
  init_media();
39306
40676
  init_contracts();
@@ -39346,6 +40716,10 @@ var init_src5 = __esm({
39346
40716
  init_navigation();
39347
40717
  init_navigationMenuValidation();
39348
40718
  init_routableLink();
40719
+ init_linkUrlType();
40720
+ init_dashboardSiteNav();
40721
+ init_dashboardSettingsNav();
40722
+ init_automaticWorkflowTriggers();
39349
40723
  init_linkResolver();
39350
40724
  init_matcher();
39351
40725
  init_visibility();
@@ -39364,6 +40738,7 @@ var init_src5 = __esm({
39364
40738
  init_auth();
39365
40739
  init_types19();
39366
40740
  init_types19();
40741
+ init_types19();
39367
40742
  }
39368
40743
  });
39369
40744
 
@@ -40151,6 +41526,26 @@ function inferKnownEntrySubrouteKind(args) {
40151
41526
  }
40152
41527
 
40153
41528
  // src/routing/resolvePageContent.ts
41529
+ var RiverbankContentLoadError = class _RiverbankContentLoadError extends Error {
41530
+ constructor(message, options) {
41531
+ super(message);
41532
+ this.name = "RiverbankContentLoadError";
41533
+ this.surface = options.surface;
41534
+ this.reason = options.reason ?? null;
41535
+ this.path = options.path ?? null;
41536
+ this.cause = options.cause;
41537
+ Object.setPrototypeOf(this, _RiverbankContentLoadError.prototype);
41538
+ }
41539
+ };
41540
+ function contentFound(content) {
41541
+ return { kind: "found", content };
41542
+ }
41543
+ function contentNotFound() {
41544
+ return { kind: "not_found" };
41545
+ }
41546
+ function contentLoadFailed(error) {
41547
+ return { kind: "failed", error };
41548
+ }
40154
41549
  async function resolvePageContent(options) {
40155
41550
  const {
40156
41551
  path,
@@ -40162,12 +41557,40 @@ async function resolvePageContent(options) {
40162
41557
  getEntryTypeKey,
40163
41558
  shouldAttemptEntrySubroute
40164
41559
  } = options;
41560
+ async function loadContentOrFailure(pathToLoad) {
41561
+ const result = await loadContent(pathToLoad);
41562
+ switch (result.kind) {
41563
+ case "found":
41564
+ return {
41565
+ found: true,
41566
+ content: result.content,
41567
+ entrySubrouteData: null,
41568
+ resolvedPath: pathToLoad
41569
+ };
41570
+ case "not_found":
41571
+ return null;
41572
+ case "failed":
41573
+ return {
41574
+ found: false,
41575
+ reason: "load-failed",
41576
+ failedPath: pathToLoad,
41577
+ error: result.error
41578
+ };
41579
+ }
41580
+ }
41581
+ function getContentFromResolution(resolution) {
41582
+ return resolution?.found ? resolution.content : null;
41583
+ }
40165
41584
  const detected = detectEntrySubrouteFromTypes(contentTypes, path);
40166
41585
  let detectedShouldAttempt = Boolean(detected);
40167
41586
  let detectedWasInvalidSubroute = false;
40168
41587
  if (detected && detected.precedence !== "content-first") {
40169
41588
  if (detectedShouldAttempt) {
40170
- const parentContent2 = await loadContent(detected.parentPath);
41589
+ const parentResolution2 = await loadContentOrFailure(detected.parentPath);
41590
+ if (parentResolution2 && !parentResolution2.found) {
41591
+ return parentResolution2;
41592
+ }
41593
+ const parentContent2 = getContentFromResolution(parentResolution2);
40171
41594
  if (parentContent2 && isEntry(parentContent2)) {
40172
41595
  const entryTypeKey = getEntryTypeKey(parentContent2) ?? detected.contentTypeKey;
40173
41596
  const subroute = await resolveEntrySubroute({
@@ -40188,7 +41611,11 @@ async function resolvePageContent(options) {
40188
41611
  }
40189
41612
  }
40190
41613
  }
40191
- const content = await loadContent(path);
41614
+ const contentResolution = await loadContentOrFailure(path);
41615
+ if (contentResolution && !contentResolution.found) {
41616
+ return contentResolution;
41617
+ }
41618
+ const content = getContentFromResolution(contentResolution);
40192
41619
  if (content) {
40193
41620
  return {
40194
41621
  found: true,
@@ -40199,7 +41626,11 @@ async function resolvePageContent(options) {
40199
41626
  }
40200
41627
  if (detected) {
40201
41628
  if (detected.precedence === "content-first") {
40202
- const parentContent2 = await loadContent(detected.parentPath);
41629
+ const parentResolution2 = await loadContentOrFailure(detected.parentPath);
41630
+ if (parentResolution2 && !parentResolution2.found) {
41631
+ return parentResolution2;
41632
+ }
41633
+ const parentContent2 = getContentFromResolution(parentResolution2);
40203
41634
  if (parentContent2 && isEntry(parentContent2)) {
40204
41635
  const entryTypeKey = getEntryTypeKey(parentContent2) ?? detected.contentTypeKey;
40205
41636
  const subroute = await resolveEntrySubroute({
@@ -40239,7 +41670,11 @@ async function resolvePageContent(options) {
40239
41670
  return { found: false, reason: "not-found" };
40240
41671
  }
40241
41672
  }
40242
- const parentContent = await loadContent(fallback.parentPath);
41673
+ const parentResolution = await loadContentOrFailure(fallback.parentPath);
41674
+ if (parentResolution && !parentResolution.found) {
41675
+ return parentResolution;
41676
+ }
41677
+ const parentContent = getContentFromResolution(parentResolution);
40243
41678
  if (parentContent && isEntry(parentContent)) {
40244
41679
  const entryTypeKey = getEntryTypeKey(parentContent);
40245
41680
  const shouldAttempt = shouldAttemptEntrySubroute?.({
@@ -40299,7 +41734,11 @@ async function resolveEntrySubrouteFromSegment(params) {
40299
41734
  }
40300
41735
  }
40301
41736
  export {
41737
+ RiverbankContentLoadError,
40302
41738
  checkRedirectForPath,
41739
+ contentFound,
41740
+ contentLoadFailed,
41741
+ contentNotFound,
40303
41742
  defaultShouldAttemptEntrySubroute,
40304
41743
  detectEntrySubrouteFromTypes,
40305
41744
  extractPotentialEntrySubroute,