@riverbankcms/sdk 0.82.0 → 0.84.1

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 (206) hide show
  1. package/README.md +16 -0
  2. package/dist/{PreviewEditorSidebar-LHGK6RIO.mjs → PreviewEditorSidebar-X7RLMEI6.mjs} +330 -11
  3. package/dist/{PreviewEditorUI-AXZG2SDC.mjs → PreviewEditorUI-CT67N4O3.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-EIMQ3S2V.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +200 -0
  6. package/dist/_dts/api/src/blocks.d.ts +36 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +46 -0
  8. package/dist/_dts/api/src/endpoints.d.ts +40 -0
  9. package/dist/_dts/api/src/index.d.ts +2 -2
  10. package/dist/_dts/api/src/sdk-event-pricing.d.ts +61 -0
  11. package/dist/_dts/api/src/sdk-event-schedule.d.ts +52 -0
  12. package/dist/_dts/api/src/sdk-event-upsert.d.ts +50 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +67 -33
  14. package/dist/_dts/api/src/shared-contracts.d.ts +13 -0
  15. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +22 -36
  16. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +46 -1
  17. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +6 -1
  18. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +3 -2
  19. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +7 -0
  20. package/dist/_dts/blocks/src/PageRenderer.d.ts +11 -0
  21. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  22. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  23. package/dist/_dts/blocks/src/client.d.ts +4 -0
  24. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
  25. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -2016
  26. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -2016
  27. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -2016
  28. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -2016
  29. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -2016
  30. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +171 -0
  31. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -2016
  32. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -2016
  33. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +3 -2
  34. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -7
  36. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +2534 -151
  37. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -2016
  38. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -2016
  39. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -2016
  40. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +36 -3
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +4 -1
  44. package/dist/_dts/blocks/src/system/fields/imageShape.d.ts +30 -0
  45. package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +25 -0
  46. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +35 -161
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -6
  48. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -3
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +33 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +0 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +20 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +13 -4
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +28 -6
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +14 -0
  61. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +1 -1
  62. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +1 -1
  63. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  64. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
  65. package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
  66. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +2 -1
  67. package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +1 -0
  68. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  69. package/dist/_dts/content-model/src/entry-slots/types.d.ts +356 -0
  70. package/dist/_dts/content-model/src/index.d.ts +1 -0
  71. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  72. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +100 -5
  73. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +6 -1
  74. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +7 -5
  75. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -2
  76. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +3 -2
  77. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +3 -2
  78. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +27 -0
  79. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  80. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +8 -0
  81. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +37 -3
  82. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  83. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  84. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  85. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +19 -0
  86. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +8 -0
  87. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
  88. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -1
  89. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +9 -0
  90. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +9 -8
  91. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +10 -1
  92. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +5 -1
  93. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  94. package/dist/_dts/sdk/src/bookings/types.d.ts +2 -2
  95. package/dist/_dts/sdk/src/cli/content/reader.d.ts +9 -8
  96. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -1
  97. package/dist/_dts/sdk/src/cli/helpers.d.ts +10 -5
  98. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +2 -2
  99. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +2 -1
  100. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -2
  101. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  102. package/dist/_dts/sdk/src/client/management/types.d.ts +40 -10
  103. package/dist/_dts/sdk/src/config/field-definitions.d.ts +13 -7
  104. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +26 -3
  105. package/dist/_dts/sdk/src/public-api/contracts.d.ts +13 -0
  106. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  107. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +6 -1
  108. package/dist/_dts/sdk/src/rendering/overrides.d.ts +6 -1
  109. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  110. package/dist/_dts/sdk/src/version.d.ts +1 -1
  111. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  112. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  113. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  114. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +16 -0
  115. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  116. package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
  117. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  118. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  119. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  120. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +33 -33
  121. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  122. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +16 -0
  123. package/dist/_dts/theme-core/src/schema.d.ts +30 -25
  124. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  125. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +141 -1
  126. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -0
  127. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +110 -5
  128. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  129. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  130. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -1
  131. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/site-styles/types.d.ts +1 -1
  133. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  134. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +1 -0
  135. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +6 -6
  136. package/dist/{chunk-2BUMISSH.mjs → chunk-3LXFQS7T.mjs} +1 -1
  137. package/dist/{chunk-FIREV57T.mjs → chunk-LBBPD2IW.mjs} +40 -0
  138. package/dist/{chunk-XQR6THQJ.mjs → chunk-O62NDCTI.mjs} +3390 -1331
  139. package/dist/{chunk-6FWNF3DJ.mjs → chunk-QRKJDWT7.mjs} +158 -20
  140. package/dist/{chunk-HKB6XVIP.mjs → chunk-RCTJAZSK.mjs} +2 -2
  141. package/dist/{chunk-G35HOQEN.mjs → chunk-X5ZCSU6F.mjs} +132 -46
  142. package/dist/cli/index.mjs +2925 -577
  143. package/dist/cli/init-docs/content/agents-section.md +5 -0
  144. package/dist/cli/init-docs/content/cli-reference.md +13 -0
  145. package/dist/cli/init-docs/content/content-management.md +31 -0
  146. package/dist/cli/init-docs/content/getting-started.md +14 -0
  147. package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
  148. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
  149. package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
  150. package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
  151. package/dist/cli/init-docs/content/workflow-templates.md +107 -2
  152. package/dist/client/{accordion-G34C45TW.mjs → accordion-2UZPBMYM.mjs} +2 -2
  153. package/dist/client/{bookingForm-BLBVKSAQ.mjs → bookingForm-DYXT6YB6.mjs} +5 -5
  154. package/dist/client/bookings.mjs +3477 -186
  155. package/dist/client/{carousel-7ZVTBRMD.mjs → carousel-QH77HR6X.mjs} +3 -3
  156. package/dist/client/{cart-Q6S6LZUO.mjs → cart-X4YK4FTW.mjs} +6 -6
  157. package/dist/client/{checkout-5QJLDE4I.mjs → checkout-OM2BEPWD.mjs} +6 -6
  158. package/dist/client/{chunk-ZF4XEWDM.mjs → chunk-3DTWLTXM.mjs} +1 -1
  159. package/dist/client/{chunk-5PQH4Y75.mjs → chunk-4OXKTA3D.mjs} +2 -2
  160. package/dist/client/{chunk-WJFHDTYF.mjs → chunk-52CGCQ7B.mjs} +5 -5
  161. package/dist/client/{chunk-CHAB5ACD.mjs → chunk-7UCLJ5SP.mjs} +2 -2
  162. package/dist/client/{chunk-U2EW7RSR.mjs → chunk-F5VRX5Y6.mjs} +1 -1
  163. package/dist/client/{chunk-SBBSMFFG.mjs → chunk-SYIJ5JO2.mjs} +1 -1
  164. package/dist/client/{chunk-EQKYMX4N.mjs → chunk-UHDWIXVR.mjs} +180 -157
  165. package/dist/client/{chunk-RJHTCTCZ.mjs → chunk-VGDBVNOO.mjs} +429 -15
  166. package/dist/client/{chunk-S3MKFGOG.mjs → chunk-ZE5G642V.mjs} +1 -1
  167. package/dist/client/{chunk-CSZGLBYR.mjs → chunk-ZKUO52W3.mjs} +1 -1
  168. package/dist/client/client.mjs +2685 -847
  169. package/dist/client/{courseRegistration-VUG2JJDB.mjs → courseRegistration-YBOGURTA.mjs} +5 -5
  170. package/dist/client/{eventCalendar-E7D2LD4N.mjs → eventCalendar-K4QJVCMD.mjs} +7 -7
  171. package/dist/client/{eventCombined-FUZ2Z3CS.mjs → eventCombined-MTXGMTCZ.mjs} +7 -7
  172. package/dist/client/{eventDetails-QRITJAOW.mjs → eventDetails-3PC4NL3U.mjs} +7 -7
  173. package/dist/client/{eventListing-INMQMJZ5.mjs → eventListing-TFJET6DN.mjs} +7 -7
  174. package/dist/client/{eventRegistration-TOOJD4WU.mjs → eventRegistration-QGPBGJTW.mjs} +7 -7
  175. package/dist/client/{form-BOWN7ZNQ.mjs → form-MDKR4FNB.mjs} +2 -2
  176. package/dist/client/{headerSection-HFQNZOUU.mjs → headerSection-Y5TMR3TW.mjs} +3 -3
  177. package/dist/client/hooks.mjs +2077 -546
  178. package/dist/client/{locationMap-VUZGC7Y5.mjs → locationMap-RH2LG7FZ.mjs} +2 -2
  179. package/dist/client/{newsletterForm-X2XQTPCB.mjs → newsletterForm-ZR5UDGBT.mjs} +2 -2
  180. package/dist/client/{productDetail-TA7D2G2B.mjs → productDetail-OIGDR4YE.mjs} +6 -6
  181. package/dist/client/{productList-AZOLOZKM.mjs → productList-4MA5S2CX.mjs} +6 -6
  182. package/dist/client/rendering/client.mjs +2560 -1205
  183. package/dist/client/rendering/islands.mjs +19 -19
  184. package/dist/client/rendering.mjs +2932 -1021
  185. package/dist/client/{shop-ZDLO7IIG.mjs → shop-WXSYV5QO.mjs} +6 -6
  186. package/dist/preview-next/before-render.mjs +40 -0
  187. package/dist/preview-next/client/runtime.mjs +5 -5
  188. package/dist/preview-next/middleware.mjs +40 -0
  189. package/dist/{sdk-runtime-CTWKNBDQ.mjs → sdk-runtime-7HJYPRWQ.mjs} +6 -6
  190. package/dist/server/components.mjs +2232 -534
  191. package/dist/server/config-validation.mjs +2068 -536
  192. package/dist/server/config.mjs +2068 -536
  193. package/dist/server/data.mjs +2077 -546
  194. package/dist/server/index.mjs +42 -1
  195. package/dist/server/next.mjs +2345 -574
  196. package/dist/server/page-converter.mjs +2684 -1220
  197. package/dist/server/prebuild.mjs +1 -1
  198. package/dist/server/rendering/server.mjs +2244 -546
  199. package/dist/server/rendering.mjs +2323 -552
  200. package/dist/server/routing.mjs +2012 -420
  201. package/dist/server/server.mjs +2153 -549
  202. package/dist/server/theme-bridge.mjs +1180 -101
  203. package/dist/server/theme.mjs +92 -1
  204. package/dist/styles/index.css +292 -36
  205. package/package.json +1 -1
  206. package/dist/SdkPreviewModeRuntime-RNVRHFFR.mjs +0 -8
@@ -875,6 +875,95 @@ var joyStamp = defineButtonPersonality({
875
875
  }
876
876
  });
877
877
 
878
+ // ../theme-core/src/buttons/personalities/ornate-ritual.ts
879
+ var ornateRitual = defineButtonPersonality({
880
+ id: "ornate-ritual",
881
+ name: "Ornate Ritual",
882
+ description: "Ceremonial framed buttons with jewel-toned fills and quiet color-change hover states.",
883
+ tags: { tone: "classic", energy: "vibrant", motion: "subtle", era: "organic" },
884
+ buttonSystem: {
885
+ global: {
886
+ cornerStyle: "rounded",
887
+ shadow: "none",
888
+ textTransform: "uppercase",
889
+ fontWeight: 600,
890
+ borderWidth: 1,
891
+ hoverTransform: "none",
892
+ hoverColor: "none",
893
+ letterSpacing: "loose"
894
+ },
895
+ sizes: {
896
+ sm: { padding: "0.5625rem 1.25rem", fontSize: "text-xs" },
897
+ md: { padding: "0.75rem 1.75rem", fontSize: "text-xs" },
898
+ lg: { padding: "0.875rem 2.25rem", fontSize: "text-sm" },
899
+ xl: { padding: "1rem 2.75rem", fontSize: "text-base" }
900
+ },
901
+ variants: [
902
+ {
903
+ id: "primary",
904
+ name: "Primary",
905
+ enabled: true,
906
+ priority: 1,
907
+ background: { type: "solid", colorToken: "primary" },
908
+ textColorToken: "primaryForeground",
909
+ borderRadius: "rounded-md",
910
+ border: { widthClass: "border", colorToken: "primary" },
911
+ shadow: { elevation: "none", softness: null, position: "bottom" },
912
+ effects: {
913
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "primary-100" } }],
914
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
915
+ }
916
+ },
917
+ {
918
+ id: "secondary",
919
+ name: "Secondary",
920
+ enabled: true,
921
+ priority: 2,
922
+ background: { type: "solid", colorToken: "secondary" },
923
+ textColorToken: "primaryForeground",
924
+ borderRadius: "rounded-md",
925
+ border: { widthClass: "border", colorToken: "primary" },
926
+ shadow: { elevation: "none", softness: null, position: "bottom" },
927
+ effects: {
928
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
929
+ }
930
+ },
931
+ {
932
+ id: "outline",
933
+ name: "Outline",
934
+ enabled: true,
935
+ priority: 3,
936
+ background: { type: "transparent" },
937
+ textColorToken: "primary",
938
+ borderRadius: "rounded-md",
939
+ border: { widthClass: "border", colorToken: "primary" },
940
+ shadow: { elevation: "none", softness: null, position: "bottom" },
941
+ effects: {
942
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
943
+ }
944
+ },
945
+ {
946
+ id: "ghost",
947
+ name: "Ghost",
948
+ enabled: true,
949
+ priority: 3,
950
+ background: { type: "transparent" },
951
+ textColorToken: "accent",
952
+ borderRadius: "rounded-none",
953
+ sizes: {
954
+ sm: { padding: "0.375rem 0", fontSize: "text-xs" },
955
+ md: { padding: "0.5rem 0", fontSize: "text-sm" },
956
+ lg: { padding: "0.625rem 0", fontSize: "text-base" },
957
+ xl: { padding: "0.75rem 0", fontSize: "text-lg" }
958
+ },
959
+ effects: {
960
+ base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
961
+ }
962
+ }
963
+ ]
964
+ }
965
+ });
966
+
878
967
  // ../theme-core/src/buttons/personalities/pebble.ts
879
968
  var pebble = defineButtonPersonality({
880
969
  id: "pebble",
@@ -1148,7 +1237,8 @@ var buttonPersonalities = [
1148
1237
  inkStamp,
1149
1238
  brushedWash,
1150
1239
  showtimePill,
1151
- joyStamp
1240
+ joyStamp,
1241
+ ornateRitual
1152
1242
  ];
1153
1243
  var personalitiesById = new Map(
1154
1244
  buttonPersonalities.map((p) => [p.id, p])
@@ -1937,6 +2027,9 @@ var componentShadowSchema = z14.object({
1937
2027
  function defineExactCatalog() {
1938
2028
  return (entries) => entries;
1939
2029
  }
2030
+ function asDesignBlockId(value) {
2031
+ return brandNonEmptyString(value, "DesignBlockId");
2032
+ }
1940
2033
  function asAppearancePresetId(value) {
1941
2034
  return brandNonEmptyString(value, "AppearancePresetId");
1942
2035
  }
@@ -1985,6 +2078,7 @@ var eventListTreatmentValues = [
1985
2078
  ];
1986
2079
  var eyebrowTreatmentValues = [
1987
2080
  "plain",
2081
+ "accent",
1988
2082
  "pill",
1989
2083
  "accent-pill",
1990
2084
  "pill-bounce",
@@ -2168,7 +2262,7 @@ function rgbColorValue(token) {
2168
2262
  if (alpha === void 0) {
2169
2263
  return `rgb(var(${cssVar}))`;
2170
2264
  }
2171
- return `rgba(var(${cssVar}), ${alpha})`;
2265
+ return `rgb(var(${cssVar}) / ${alpha})`;
2172
2266
  }
2173
2267
 
2174
2268
  // ../theme-core/src/utils/tokenOrColor.ts
@@ -3251,6 +3345,28 @@ var warmDarkEmber = definePaletteVariant({
3251
3345
  { name: "border", hex: "#894e31" }
3252
3346
  ]
3253
3347
  });
3348
+ var warmDarkKirtanGold = definePaletteVariant({
3349
+ id: "warm-dark-kirtan-gold",
3350
+ name: "Warm Dark \u2014 Kirtan Gold",
3351
+ description: "Deep plum ground with pale gold primary, rose accent, and soft devotional text.",
3352
+ tags: { tone: "bold", energy: "calm", era: "editorial" },
3353
+ mode: "dark",
3354
+ colors: [
3355
+ { name: "primary", hex: "#ffcdb2" },
3356
+ { name: "secondary", hex: "#b5838d" },
3357
+ { name: "accent", hex: "#e5989b" },
3358
+ { name: "success", hex: "#8fbf8f" },
3359
+ { name: "warning", hex: "#f2b86b" },
3360
+ { name: "destructive", hex: "#d96b6b" },
3361
+ { name: "background", hex: "#403944" },
3362
+ { name: "surface", hex: "#403944" },
3363
+ { name: "surfaceAlt", hex: "#372f3b" },
3364
+ { name: "muted", hex: "#4d4550" },
3365
+ { name: "text", hex: "#e6d2d5" },
3366
+ { name: "primaryForeground", hex: "#403944" },
3367
+ { name: "border", hex: "#8d747a" }
3368
+ ]
3369
+ });
3254
3370
 
3255
3371
  // ../theme-core/src/palette/variants/index.ts
3256
3372
  var paletteVariants = [
@@ -3274,7 +3390,8 @@ var paletteVariants = [
3274
3390
  softNaturalWatercolor,
3275
3391
  softNaturalLilac,
3276
3392
  // Warm-dark family (dark mode)
3277
- warmDarkEmber
3393
+ warmDarkEmber,
3394
+ warmDarkKirtanGold
3278
3395
  ];
3279
3396
  var paletteVariantsById = new Map(
3280
3397
  paletteVariants.map((v) => [v.id, v])
@@ -4506,9 +4623,125 @@ function headerConfigurationKey(configuration) {
4506
4623
  function asFooterLookId(value) {
4507
4624
  return value;
4508
4625
  }
4509
- var guaranteedFallbackFooterLookId = asFooterLookId("footer-muted-grounding");
4626
+ function asFooterLayoutId(value) {
4627
+ return value;
4628
+ }
4629
+ function asFooterStyleId(value) {
4630
+ return value;
4631
+ }
4632
+ var guaranteedFallbackFooterLookId = asFooterLookId("footer-identity-quiet");
4633
+ var footerLayoutCatalog = defineExactCatalog()([
4634
+ {
4635
+ id: asFooterLayoutId("identity"),
4636
+ label: "Identity",
4637
+ description: "Logo, site text, address, and legal copy without relying on footer navigation."
4638
+ },
4639
+ {
4640
+ id: asFooterLayoutId("centered"),
4641
+ label: "Centered",
4642
+ description: "A calm centered stack for identity, short copy, and optional compact navigation.",
4643
+ maxRecommendedNavDensity: "sparse"
4644
+ },
4645
+ {
4646
+ id: asFooterLayoutId("split"),
4647
+ label: "Split",
4648
+ description: "Navigation and brand signoff separated into a wider split footer.",
4649
+ requiresFooterNav: true,
4650
+ maxRecommendedNavDensity: "balanced"
4651
+ },
4652
+ {
4653
+ id: asFooterLayoutId("columns"),
4654
+ label: "Columns",
4655
+ description: "Grouped footer navigation columns with a supporting bottom line.",
4656
+ requiresFooterNav: true,
4657
+ requiresFooterNavGroups: true
4658
+ }
4659
+ ]);
4660
+ var footerStyleCatalog = defineExactCatalog()([
4661
+ {
4662
+ id: asFooterStyleId("quiet"),
4663
+ label: "Quiet",
4664
+ description: "Lightweight, practical footer treatment."
4665
+ },
4666
+ {
4667
+ id: asFooterStyleId("calm"),
4668
+ label: "Calm",
4669
+ description: "Soft centered treatment with restrained dividers."
4670
+ },
4671
+ {
4672
+ id: asFooterStyleId("editorial"),
4673
+ label: "Editorial",
4674
+ description: "Text-forward treatment with fine-line structure."
4675
+ },
4676
+ {
4677
+ id: asFooterStyleId("brand-band"),
4678
+ label: "Brand band",
4679
+ description: "High-contrast brand treatment with a stronger bottom bar."
4680
+ }
4681
+ ]);
4682
+ var footerLayoutsById = new Map(
4683
+ footerLayoutCatalog.map((layout) => [layout.id, layout])
4684
+ );
4685
+ var footerStylesById = new Map(
4686
+ footerStyleCatalog.map((style) => [style.id, style])
4687
+ );
4688
+ function identityQuietFooter(theme) {
4689
+ return {
4690
+ ...theme.footer,
4691
+ variant: "simple",
4692
+ maxWidth: "container",
4693
+ background: {
4694
+ type: "color",
4695
+ color: "surface"
4696
+ },
4697
+ navStyle: "minimal",
4698
+ navWeight: "regular",
4699
+ navColor: "text",
4700
+ navLinkStyle: {
4701
+ typography: "body",
4702
+ fontWeight: "regular",
4703
+ textTransform: "none",
4704
+ italic: false,
4705
+ colorToken: "text",
4706
+ hoverColorToken: "primary",
4707
+ padding: "none",
4708
+ borderRadius: "none"
4709
+ },
4710
+ navLayout: {
4711
+ layout: "inline-wrap",
4712
+ align: "start",
4713
+ gapX: "default",
4714
+ gapY: "tight"
4715
+ },
4716
+ logo: {
4717
+ showLogo: true,
4718
+ showLogoText: true,
4719
+ placement: "left",
4720
+ size: "sm",
4721
+ align: "start"
4722
+ },
4723
+ bottomBar: {
4724
+ enabled: false,
4725
+ fullBleed: false,
4726
+ textAlign: "left",
4727
+ paddingX: "default",
4728
+ paddingY: "compact",
4729
+ borderTop: {
4730
+ width: "none"
4731
+ }
4732
+ }
4733
+ };
4734
+ }
4510
4735
  function mutedGroundingFooter(theme) {
4511
- return theme.footer;
4736
+ return {
4737
+ ...identityQuietFooter(theme),
4738
+ background: theme.footer.background,
4739
+ navStyle: theme.footer.navStyle,
4740
+ navColor: theme.footer.navColor,
4741
+ navWeight: theme.footer.navWeight,
4742
+ navLinkStyle: theme.footer.navLinkStyle,
4743
+ bottomTextLinkStyle: theme.footer.bottomTextLinkStyle
4744
+ };
4512
4745
  }
4513
4746
  function brandTwoBandFooter(theme) {
4514
4747
  return {
@@ -4613,6 +4846,53 @@ function centeredCalmFooter(theme) {
4613
4846
  }
4614
4847
  };
4615
4848
  }
4849
+ function splitEditorialFooter(theme) {
4850
+ return {
4851
+ ...theme.footer,
4852
+ variant: "split",
4853
+ maxWidth: "container",
4854
+ background: {
4855
+ type: "color",
4856
+ color: "surface"
4857
+ },
4858
+ navStyle: "minimal",
4859
+ navWeight: "regular",
4860
+ navColor: "text",
4861
+ navLinkStyle: {
4862
+ typography: "body",
4863
+ fontWeight: "regular",
4864
+ textTransform: "none",
4865
+ italic: false,
4866
+ colorToken: "text",
4867
+ hoverColorToken: "primary",
4868
+ padding: "none",
4869
+ borderRadius: "none"
4870
+ },
4871
+ navLayout: {
4872
+ layout: "inline-wrap",
4873
+ align: "start",
4874
+ gapX: "relaxed",
4875
+ gapY: "tight"
4876
+ },
4877
+ logo: {
4878
+ showLogo: true,
4879
+ showLogoText: true,
4880
+ placement: "right",
4881
+ size: "sm",
4882
+ align: "end"
4883
+ },
4884
+ bottomBar: {
4885
+ enabled: true,
4886
+ fullBleed: false,
4887
+ textAlign: "left",
4888
+ paddingX: "default",
4889
+ paddingY: "compact",
4890
+ borderTop: {
4891
+ width: "thin"
4892
+ }
4893
+ }
4894
+ };
4895
+ }
4616
4896
  function editorialColumnsFooter(theme) {
4617
4897
  return {
4618
4898
  ...theme.footer,
@@ -4655,25 +4935,47 @@ function editorialColumnsFooter(theme) {
4655
4935
  };
4656
4936
  }
4657
4937
  var footerLookCatalog = defineExactCatalog()([
4938
+ {
4939
+ id: asFooterLookId("footer-identity-quiet"),
4940
+ label: "Identity footer",
4941
+ layoutId: asFooterLayoutId("identity"),
4942
+ styleId: asFooterStyleId("quiet"),
4943
+ compile: identityQuietFooter
4944
+ },
4658
4945
  {
4659
4946
  id: asFooterLookId("footer-muted-grounding"),
4660
4947
  label: "Muted grounding footer",
4948
+ layoutId: asFooterLayoutId("identity"),
4949
+ styleId: asFooterStyleId("quiet"),
4950
+ hiddenFromLayoutStyleControls: true,
4661
4951
  compile: mutedGroundingFooter
4662
4952
  },
4663
4953
  {
4664
4954
  id: asFooterLookId("footer-centered-calm"),
4665
4955
  label: "Centered calm footer",
4956
+ layoutId: asFooterLayoutId("centered"),
4957
+ styleId: asFooterStyleId("calm"),
4666
4958
  compile: centeredCalmFooter
4667
4959
  },
4960
+ {
4961
+ id: asFooterLookId("footer-split-editorial"),
4962
+ label: "Split editorial footer",
4963
+ layoutId: asFooterLayoutId("split"),
4964
+ styleId: asFooterStyleId("editorial"),
4965
+ compile: splitEditorialFooter
4966
+ },
4668
4967
  {
4669
4968
  id: asFooterLookId("footer-editorial-columns"),
4670
4969
  label: "Editorial columns footer",
4970
+ layoutId: asFooterLayoutId("columns"),
4971
+ styleId: asFooterStyleId("editorial"),
4671
4972
  compile: editorialColumnsFooter
4672
4973
  },
4673
4974
  {
4674
4975
  id: asFooterLookId("site-footer-brand-two-band"),
4675
4976
  label: "Two-band brand footer",
4676
- maxRecommendedNavDensity: "balanced",
4977
+ layoutId: asFooterLayoutId("split"),
4978
+ styleId: asFooterStyleId("brand-band"),
4677
4979
  allowedContentPresence: ["default-footer", "default-and-blocks"],
4678
4980
  compile: brandTwoBandFooter
4679
4981
  }
@@ -4876,6 +5178,30 @@ var luxeContrastTypography = {
4876
5178
  },
4877
5179
  scale: "spacious"
4878
5180
  };
5181
+ var kirtanOrnateTypography = {
5182
+ body: {
5183
+ family: "Jost, system-ui, sans-serif",
5184
+ size: "md",
5185
+ weight: "regular",
5186
+ lineHeight: "relaxed",
5187
+ letterSpacing: "normal"
5188
+ },
5189
+ headings: {
5190
+ default: {
5191
+ family: "Marcellus, Georgia, serif",
5192
+ weight: "regular",
5193
+ lineHeight: "normal",
5194
+ letterSpacing: "normal",
5195
+ colorToken: "primary",
5196
+ italic: null,
5197
+ case: null
5198
+ },
5199
+ h1: { size: "2xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
5200
+ h2: { size: "xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
5201
+ h3: { size: "md", weight: "regular", lineHeight: "relaxed", letterSpacing: "normal", italic: null }
5202
+ },
5203
+ scale: "spacious"
5204
+ };
4879
5205
  var boldDisplayTypography = {
4880
5206
  body: {
4881
5207
  family: "Manrope, system-ui, sans-serif",
@@ -4910,16 +5236,16 @@ var originalJoyTypography = {
4910
5236
  },
4911
5237
  headings: {
4912
5238
  default: {
4913
- family: "Bricolage Grotesque, system-ui, sans-serif",
4914
- weight: "bold",
5239
+ family: "Lobster, cursive",
5240
+ weight: "regular",
4915
5241
  lineHeight: "normal",
4916
- letterSpacing: "tight",
5242
+ letterSpacing: "normal",
4917
5243
  italic: null,
4918
5244
  case: null
4919
5245
  },
4920
- h1: { size: "2xl", weight: "bold", lineHeight: "normal", letterSpacing: "tight", italic: null },
4921
- h2: { size: "xl", weight: "bold", lineHeight: "normal", letterSpacing: "tight", italic: null },
4922
- h3: { size: "lg", weight: "bold", lineHeight: "normal", letterSpacing: "tight", italic: null }
5246
+ h1: { size: "2xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
5247
+ h2: { size: "xl", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null },
5248
+ h3: { size: "lg", weight: "regular", lineHeight: "normal", letterSpacing: "normal", italic: null }
4923
5249
  },
4924
5250
  scale: "balanced"
4925
5251
  };
@@ -4984,6 +5310,32 @@ var typographyPresets = [
4984
5310
  slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
4985
5311
  typography: luxeContrastTypography
4986
5312
  }),
5313
+ defineTypographyPreset({
5314
+ id: "typography-preset:kirtan-ornate",
5315
+ name: "Kirtan Ornate",
5316
+ description: "Marcellus devotional headings over a refined Jost body, matching dark ceremonial layouts.",
5317
+ defaultFonts: { body: "Jost, system-ui, sans-serif", heading: "Marcellus, Georgia, serif" },
5318
+ recommendedFonts: {
5319
+ body: ["Jost", "Manrope", "Inter"],
5320
+ heading: ["Marcellus", "Cormorant Garamond", "Playfair Display"]
5321
+ },
5322
+ slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
5323
+ typography: kirtanOrnateTypography,
5324
+ heroTypography: {
5325
+ headlineSize: "6xl",
5326
+ headlineLineHeight: "normal",
5327
+ subheadlineSize: "xl",
5328
+ subheadlineLineHeight: "relaxed",
5329
+ microHeadlineSize: "5xl",
5330
+ microHeadlineLineHeight: "normal",
5331
+ microSubheadlineSize: "lg",
5332
+ microSubheadlineLineHeight: "relaxed",
5333
+ responsive: {
5334
+ tablet: { headlineSize: "5xl" },
5335
+ mobile: { headlineSize: "4xl", subheadlineSize: "lg" }
5336
+ }
5337
+ }
5338
+ }),
4987
5339
  defineTypographyPreset({
4988
5340
  id: "typography-preset:bold-display",
4989
5341
  name: "Bold Display",
@@ -5013,11 +5365,11 @@ var typographyPresets = [
5013
5365
  defineTypographyPreset({
5014
5366
  id: "typography-preset:original-joy",
5015
5367
  name: "Original Joy",
5016
- description: "Bold Bricolage Grotesque display headings over a clean DM Sans body, editorial and warm.",
5017
- defaultFonts: { body: "DM Sans, system-ui, sans-serif", heading: "Bricolage Grotesque, system-ui, sans-serif" },
5368
+ description: "Lobster display headings over a clean DM Sans body, expressive and warm.",
5369
+ defaultFonts: { body: "DM Sans, system-ui, sans-serif", heading: "Lobster, cursive" },
5018
5370
  recommendedFonts: {
5019
5371
  body: ["DM Sans", "Inter", "Manrope"],
5020
- heading: ["Bricolage Grotesque", "Space Grotesk", "Archivo"]
5372
+ heading: ["Lobster", "Bricolage Grotesque", "Space Grotesk"]
5021
5373
  },
5022
5374
  slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
5023
5375
  typography: originalJoyTypography,
@@ -5041,6 +5393,319 @@ var typographyPresetsById = new Map(
5041
5393
  typographyPresets.map((preset) => [preset.id, preset])
5042
5394
  );
5043
5395
 
5396
+ // ../theme-core/src/site-styles/designState.ts
5397
+ import { z as z19 } from "zod";
5398
+ var themeV2DesignStateSchemaVersion = 1;
5399
+ var designResolutionPolicySchema = z19.enum(["generated", "user", "admin", "sdk"]);
5400
+ var runtimeStyleFieldNameSchema = z19.enum(themeV2RuntimeStyleFieldNames);
5401
+ var nonEmptyRuntimeStyleFieldNamesSchema = z19.array(runtimeStyleFieldNameSchema).min(1).transform((fields) => [
5402
+ fields[0],
5403
+ ...fields.slice(1)
5404
+ ]);
5405
+ var heroLegibilityStrategySchema = z19.enum([
5406
+ "none",
5407
+ "scrim-gradient",
5408
+ "solid-panel"
5409
+ ]);
5410
+ var heroCompositionIntentSchema = z19.enum([
5411
+ "center",
5412
+ "bottom-left"
5413
+ ]);
5414
+ var heroTypographyScaleIntentSchema = z19.enum([
5415
+ "quiet",
5416
+ "editorial",
5417
+ "display",
5418
+ "poster"
5419
+ ]);
5420
+ var sectionHeightIntentSchema = z19.enum([
5421
+ "default",
5422
+ "banner",
5423
+ "hero",
5424
+ "immersive"
5425
+ ]);
5426
+ var imageSurfaceTreatmentIntensitySchema = z19.enum(["soft", "balanced", "strong"]);
5427
+ var imageSurfaceMotionSchema = z19.enum(["static", "fixed-frame"]);
5428
+ var imageSurfaceTreatmentSchema = z19.discriminatedUnion("kind", [
5429
+ z19.object({ kind: z19.literal("none") }).strict(),
5430
+ z19.object({
5431
+ kind: z19.literal("brand-scrim"),
5432
+ token: z19.enum(["primary", "secondary", "accent"]),
5433
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
5434
+ }).strict(),
5435
+ z19.object({
5436
+ kind: z19.literal("brand-wash"),
5437
+ token: z19.enum(["primary", "secondary", "accent"]),
5438
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
5439
+ }).strict(),
5440
+ z19.object({
5441
+ kind: z19.literal("neutral-scrim"),
5442
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
5443
+ }).strict(),
5444
+ z19.object({
5445
+ kind: z19.literal("neutral-wash"),
5446
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
5447
+ }).strict(),
5448
+ z19.object({
5449
+ kind: z19.literal("solid-panel"),
5450
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
5451
+ }).strict()
5452
+ ]);
5453
+ var testimonialCardTreatmentSchema = z19.enum(["default", "accent-quote"]);
5454
+ var tileTreatmentSchema = z19.enum(tileTreatmentValues);
5455
+ var eventListTreatmentSchema = z19.enum(eventListTreatmentValues);
5456
+ var eyebrowTreatmentSchema = z19.enum(eyebrowTreatmentValues);
5457
+ function uniqueNonEmpty(values) {
5458
+ const uniqueValues = [...new Set(values)];
5459
+ const firstValue = uniqueValues[0];
5460
+ if (!firstValue) {
5461
+ throw new Error("Expected at least one Theme V2 design state option.");
5462
+ }
5463
+ return [firstValue, ...uniqueValues.slice(1)];
5464
+ }
5465
+ var userPanelTreatments = uniqueNonEmpty(
5466
+ userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
5467
+ );
5468
+ var userFlushTreatments = uniqueNonEmpty(
5469
+ userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment)
5470
+ );
5471
+ var userFlushBleeds = uniqueNonEmpty(
5472
+ userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
5473
+ );
5474
+ var contentFrameIntentSchema = z19.discriminatedUnion("kind", [
5475
+ z19.object({ kind: z19.literal("plain") }).strict(),
5476
+ z19.object({
5477
+ kind: z19.literal("panel"),
5478
+ treatment: z19.enum(userPanelTreatments)
5479
+ }).strict(),
5480
+ z19.object({
5481
+ kind: z19.literal("flush-panel"),
5482
+ treatment: z19.enum(userFlushTreatments),
5483
+ bleed: z19.enum(userFlushBleeds)
5484
+ }).strict()
5485
+ ]);
5486
+ var blockDesignPlanSchema = z19.object({
5487
+ blockId: z19.string().min(1).transform(asDesignBlockId),
5488
+ blockKind: z19.string().min(1),
5489
+ purpose: z19.string().min(1),
5490
+ sectionSurface: z19.enum(userDesignOptionCatalog.sectionSurfaces),
5491
+ contentFrame: contentFrameIntentSchema,
5492
+ itemSurface: z19.enum(userDesignOptionCatalog.itemSurfaces),
5493
+ transitionAfter: z19.enum(userDesignOptionCatalog.transitions),
5494
+ emphasis: z19.enum(userDesignOptionCatalog.emphases),
5495
+ sectionHeight: sectionHeightIntentSchema.optional(),
5496
+ heroLegibility: heroLegibilityStrategySchema.optional(),
5497
+ heroComposition: heroCompositionIntentSchema.optional(),
5498
+ heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
5499
+ imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
5500
+ imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
5501
+ testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
5502
+ tileTreatment: tileTreatmentSchema.optional(),
5503
+ eventListTreatment: eventListTreatmentSchema.optional(),
5504
+ eyebrowTreatment: eyebrowTreatmentSchema.optional()
5505
+ }).strict();
5506
+ var styleAuthoritySchema = z19.discriminatedUnion("kind", [
5507
+ z19.object({
5508
+ kind: z19.literal("theme-v2"),
5509
+ source: designResolutionPolicySchema,
5510
+ siteStyleId: z19.string().min(1).transform(asSiteStyleId),
5511
+ templateId: z19.string().min(1).transform(asDesignSystemTemplateId),
5512
+ templateVersion: z19.number().int().nonnegative(),
5513
+ resolverVersion: z19.number().int().nonnegative()
5514
+ }).strict(),
5515
+ z19.object({
5516
+ kind: z19.literal("legacy-raw"),
5517
+ reason: z19.enum(["pre-theme-v2", "manual-runtime-fields"])
5518
+ }).strict(),
5519
+ z19.object({
5520
+ kind: z19.literal("advanced-detached"),
5521
+ reason: z19.literal("detached-custom-runtime-fields")
5522
+ }).strict()
5523
+ ]);
5524
+ var blockRuntimeStyleAuthoritySchema = z19.object({
5525
+ unit: z19.literal("block-runtime-fields"),
5526
+ blockId: z19.string().min(1).transform(asDesignBlockId),
5527
+ fields: nonEmptyRuntimeStyleFieldNamesSchema,
5528
+ authority: styleAuthoritySchema
5529
+ }).strict();
5530
+ var persistedPageDesignStateV1Schema = z19.object({
5531
+ schemaVersion: z19.literal(themeV2DesignStateSchemaVersion),
5532
+ siteStyleId: z19.string().min(1).transform(asSiteStyleId),
5533
+ templateId: z19.string().min(1).transform(asDesignSystemTemplateId),
5534
+ templateVersion: z19.number().int().nonnegative(),
5535
+ resolverVersion: z19.number().int().nonnegative(),
5536
+ rhythmPresetId: z19.string().min(1),
5537
+ blocks: z19.array(blockDesignPlanSchema),
5538
+ styleAuthorities: z19.array(blockRuntimeStyleAuthoritySchema)
5539
+ }).strict();
5540
+
5541
+ // ../theme-core/src/site-styles/runtimeCompiler.ts
5542
+ function defineDesignRuntimeRules(rules) {
5543
+ return rules;
5544
+ }
5545
+ function defineComponentRuntimeRules(rules) {
5546
+ return rules;
5547
+ }
5548
+ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
5549
+ sectionSurfaces: {
5550
+ base: {},
5551
+ "muted-band": {
5552
+ background: {
5553
+ type: "color",
5554
+ color: "muted"
5555
+ }
5556
+ },
5557
+ "accent-band": {
5558
+ background: {
5559
+ type: "color",
5560
+ color: "primary"
5561
+ }
5562
+ },
5563
+ "brand-depth-band": {
5564
+ background: {
5565
+ type: "color",
5566
+ color: "primary-800"
5567
+ }
5568
+ },
5569
+ "hero-image": {
5570
+ background: {
5571
+ type: "image",
5572
+ opacity: 1,
5573
+ position: "center center",
5574
+ ...uniformSectionForeground("text")
5575
+ }
5576
+ }
5577
+ },
5578
+ heroLegibility: {
5579
+ "scrim-gradient": {
5580
+ type: "gradient",
5581
+ gradient: "linear-gradient(180deg, rgba(255,255,255,0.38) 0%, rgba(244,241,234,0.62) 90%)",
5582
+ opacity: 1
5583
+ },
5584
+ "solid-panel": {
5585
+ type: "color",
5586
+ color: "surface",
5587
+ opacity: 0.88
5588
+ }
5589
+ },
5590
+ transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
5591
+ });
5592
+ var defaultComponentRuntimeRules = defineComponentRuntimeRules({
5593
+ panelFrames: {
5594
+ inset: {
5595
+ spacing: "comfortable",
5596
+ rounded: "xl",
5597
+ raised: false,
5598
+ background: {
5599
+ type: "color",
5600
+ color: "surfaceAlt",
5601
+ textColor: "text"
5602
+ }
5603
+ },
5604
+ raised: {
5605
+ spacing: "comfortable",
5606
+ rounded: "xl",
5607
+ raised: true,
5608
+ background: {
5609
+ type: "color",
5610
+ color: "surfaceAlt",
5611
+ textColor: "text"
5612
+ }
5613
+ },
5614
+ editorial: {
5615
+ spacing: "medium",
5616
+ rounded: "xl",
5617
+ raised: false,
5618
+ background: {
5619
+ type: "color",
5620
+ color: "surface",
5621
+ textColor: "text"
5622
+ }
5623
+ }
5624
+ },
5625
+ flushFrames: {
5626
+ "media-panel": {
5627
+ fullWidth: true,
5628
+ spacing: "none",
5629
+ rounded: "none",
5630
+ raised: false
5631
+ }
5632
+ },
5633
+ itemSurfaces: {
5634
+ none: null,
5635
+ default: {
5636
+ spacing: "medium",
5637
+ rounded: "lg",
5638
+ raised: false
5639
+ },
5640
+ flat: {
5641
+ spacing: "medium",
5642
+ rounded: "lg",
5643
+ raised: false
5644
+ },
5645
+ outlined: {
5646
+ spacing: "medium",
5647
+ rounded: "lg",
5648
+ raised: false,
5649
+ border: {
5650
+ enabled: true,
5651
+ width: "1",
5652
+ colorToken: "border"
5653
+ }
5654
+ },
5655
+ raised: {
5656
+ spacing: "medium",
5657
+ rounded: "xl",
5658
+ raised: true
5659
+ },
5660
+ inset: {
5661
+ treatment: "soft-panel",
5662
+ spacing: "comfortable",
5663
+ rounded: "xl",
5664
+ raised: false,
5665
+ border: {
5666
+ enabled: false
5667
+ },
5668
+ background: {
5669
+ type: "color",
5670
+ color: "surfaceAlt",
5671
+ textColor: "text"
5672
+ }
5673
+ },
5674
+ editorial: {
5675
+ // Boxless open column with a short rule on top; the visual treatment
5676
+ // lives in blocks-static/card-treatments.css.
5677
+ treatment: "editorial-rule",
5678
+ spacing: "none",
5679
+ rounded: "none",
5680
+ raised: false,
5681
+ border: {
5682
+ enabled: false
5683
+ }
5684
+ },
5685
+ "color-blocked": {
5686
+ // Bold, flat colour-blocked cards. The per-card background colour cycle
5687
+ // (by position) and staggered offset live in
5688
+ // blocks-static/card-treatments.css; here we set the shared shape:
5689
+ // generous padding, large radius, no border, flat (no shadow).
5690
+ treatment: "color-blocked",
5691
+ spacing: "spacious",
5692
+ rounded: "2xl",
5693
+ raised: false,
5694
+ border: {
5695
+ enabled: false
5696
+ }
5697
+ }
5698
+ }
5699
+ });
5700
+ function uniformSectionForeground(token) {
5701
+ return {
5702
+ textColor: token,
5703
+ headingColor: token,
5704
+ linkColor: token,
5705
+ supportingColor: token
5706
+ };
5707
+ }
5708
+
5044
5709
  // ../theme-core/src/site-styles/curatedSiteStyles.ts
5045
5710
  var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
5046
5711
  var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
@@ -5068,6 +5733,50 @@ var expressiveBudget = {
5068
5733
  mediaDensity: "high",
5069
5734
  decorativeRepetition: "medium"
5070
5735
  };
5736
+ var kirtanOrnateDesignRuntimeRules = defineDesignRuntimeRules({
5737
+ ...defaultDesignRuntimeRules,
5738
+ defaultEyebrowTreatment: "accent",
5739
+ sectionSurfaces: {
5740
+ ...defaultDesignRuntimeRules.sectionSurfaces,
5741
+ "muted-band": {
5742
+ background: {
5743
+ type: "color",
5744
+ color: "muted"
5745
+ },
5746
+ foreground: {
5747
+ textColor: "text",
5748
+ headingColor: "primary",
5749
+ linkColor: "primary",
5750
+ supportingColor: "text"
5751
+ }
5752
+ },
5753
+ "brand-depth-band": {
5754
+ background: {
5755
+ type: "color",
5756
+ color: "primary-800"
5757
+ },
5758
+ foreground: {
5759
+ textColor: "text",
5760
+ headingColor: "primary",
5761
+ linkColor: "primary",
5762
+ supportingColor: "text"
5763
+ }
5764
+ },
5765
+ "hero-image": {
5766
+ background: {
5767
+ type: "image",
5768
+ opacity: 1,
5769
+ position: "center center"
5770
+ },
5771
+ foreground: {
5772
+ textColor: "text",
5773
+ headingColor: "primary",
5774
+ linkColor: "primary",
5775
+ supportingColor: "text"
5776
+ }
5777
+ }
5778
+ }
5779
+ });
5071
5780
  var expressiveUnderlineInputs = {
5072
5781
  base: {
5073
5782
  background: { type: "transparent" },
@@ -5105,6 +5814,43 @@ var expressiveUnderlineInputs = {
5105
5814
  opacity: 0.6
5106
5815
  }
5107
5816
  };
5817
+ var ornateDarkInputs = {
5818
+ base: {
5819
+ background: { type: "solid", colorToken: "surfaceAlt" },
5820
+ textColorToken: "text",
5821
+ border: {
5822
+ widthClass: "border",
5823
+ colorToken: "primary/45",
5824
+ style: "all"
5825
+ },
5826
+ corners: "square",
5827
+ shadow: null,
5828
+ spacing: "medium",
5829
+ fontSize: "base"
5830
+ },
5831
+ label: {
5832
+ textColorToken: "primary",
5833
+ fontWeight: "semibold",
5834
+ fontSize: "xs",
5835
+ textTransform: "uppercase",
5836
+ letterSpacing: "wider",
5837
+ opacity: 1
5838
+ },
5839
+ focus: {
5840
+ ringColorToken: "primary/18",
5841
+ ringWidth: "2",
5842
+ borderColorToken: "primary/70"
5843
+ },
5844
+ error: {
5845
+ borderColorToken: "destructive",
5846
+ textColorToken: "destructive"
5847
+ },
5848
+ disabled: {
5849
+ backgroundColorToken: "muted",
5850
+ textColorToken: "mutedText",
5851
+ opacity: 0.6
5852
+ }
5853
+ };
5108
5854
  function uniqueContentFrameKinds() {
5109
5855
  const kinds = [
5110
5856
  ...new Set(
@@ -5162,6 +5908,7 @@ function defineCuratedSiteStyle(input) {
5162
5908
  // clean/minimal styles default to none.
5163
5909
  headingDecoration: input.headingDecoration ?? noHeadingDecoration,
5164
5910
  ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
5911
+ ...input.designRuntimeRules ? { designRuntimeRules: input.designRuntimeRules } : {},
5165
5912
  ...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
5166
5913
  recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
5167
5914
  defaultHeaderSelection: input.defaultHeaderSelection ? {
@@ -6057,59 +6804,133 @@ var curatedSiteStyles = [
6057
6804
  generationBrief: "Use confident rhythm, bold burgundy-and-gold accents, large editorial intro copy, strong booking routes, and dark feature sections where proof or forms need emphasis.",
6058
6805
  tokenRecipes: {
6059
6806
  palette: "brand-led",
6060
- contrast: "maximum",
6807
+ contrast: "maximum",
6808
+ radius: "soft",
6809
+ shadow: "layered",
6810
+ typography: "clean-sans",
6811
+ spacing: "airy",
6812
+ motion: "expressive"
6813
+ },
6814
+ compositionBudget: expressiveBudget,
6815
+ typographyPresetChoices: [
6816
+ typographyChoice("typography-preset:bold-display"),
6817
+ typographyChoice("typography-preset:modern-sans"),
6818
+ typographyChoice("typography-preset:luxe-contrast")
6819
+ ],
6820
+ defaultTypographyPresetId: "typography-preset:bold-display",
6821
+ themeOverrides: {
6822
+ accordions: boldBorderedAccordionSystem,
6823
+ cards: southWestCardSystem,
6824
+ testimonialQuote: accentGlyphQuote,
6825
+ bodyText: {
6826
+ intro: {
6827
+ paragraphSize: "editorial",
6828
+ headingSize: "editorial"
6829
+ }
6830
+ },
6831
+ inputs: expressiveUnderlineInputs
6832
+ },
6833
+ recommendedAppearancePresetIds: [
6834
+ "hero-brand-scrim-fixed-frame",
6835
+ "body-text-editorial-intro",
6836
+ "schedule-details-brand-depth",
6837
+ "testimonials-statement-cards",
6838
+ "contact-form-panel"
6839
+ ],
6840
+ recommendedHeaderLookIds: [
6841
+ "brand-solid",
6842
+ "transparent-overlay",
6843
+ "practical-utility"
6844
+ ],
6845
+ recommendedFooterLookIds: [
6846
+ "site-footer-brand-two-band",
6847
+ "footer-muted-grounding"
6848
+ ],
6849
+ buttonPersonalityChoices: [
6850
+ buttonChoice("showtime-pill"),
6851
+ buttonChoice("confident-chip"),
6852
+ buttonChoice("ink-stamp"),
6853
+ buttonChoice("brushed-wash")
6854
+ ],
6855
+ paletteVariantChoices: [
6856
+ paletteChoice("brand-led-burgundy-gold"),
6857
+ paletteChoice("brand-led-jewel"),
6858
+ paletteChoice("brand-led-warm"),
6859
+ paletteChoice("high-contrast-ink")
6860
+ ]
6861
+ }),
6862
+ defineCuratedSiteStyle({
6863
+ id: "site-style:kirtan-ornate",
6864
+ name: "Kirtan Ornate",
6865
+ headingDecoration: { family: "short-center-rule", colorToken: "accent" },
6866
+ description: "Ceremonial, jewel-toned, and devotional: ornate frames, warm contrast, and composed rhythm for intimate music gatherings.",
6867
+ generationBrief: "Use a deep plum ground with pale gold as the main brand color, rose accent details, cream text, spacious split hero sections, devotional editorial headings, compact event lists, and framed conversion sections. The mood should feel soulful and ceremonial, not gothic or theatrical.",
6868
+ selectionKeywordRules: [
6869
+ { kind: "word", value: "kirtan" },
6870
+ { kind: "word", value: "chanting" },
6871
+ { kind: "word", value: "ceremony" },
6872
+ { kind: "word", value: "devotional" }
6873
+ ],
6874
+ tokenRecipes: {
6875
+ palette: "brand-led",
6876
+ contrast: "strong",
6061
6877
  radius: "soft",
6062
- shadow: "layered",
6063
- typography: "clean-sans",
6878
+ shadow: "subtle",
6879
+ typography: "serif-editorial",
6064
6880
  spacing: "airy",
6065
- motion: "expressive"
6881
+ motion: "subtle"
6066
6882
  },
6067
6883
  compositionBudget: expressiveBudget,
6068
6884
  typographyPresetChoices: [
6069
- typographyChoice("typography-preset:bold-display"),
6070
- typographyChoice("typography-preset:modern-sans"),
6071
- typographyChoice("typography-preset:luxe-contrast")
6885
+ typographyChoice("typography-preset:kirtan-ornate"),
6886
+ typographyChoice("typography-preset:luxe-contrast"),
6887
+ typographyChoice("typography-preset:editorial-serif")
6072
6888
  ],
6073
- defaultTypographyPresetId: "typography-preset:bold-display",
6889
+ defaultTypographyPresetId: "typography-preset:kirtan-ornate",
6074
6890
  themeOverrides: {
6075
- accordions: boldBorderedAccordionSystem,
6076
- cards: southWestCardSystem,
6077
- testimonialQuote: accentGlyphQuote,
6891
+ accordions: warmInsetAccordionSystem,
6892
+ cards: originalJoyCardSystem,
6893
+ testimonialQuote: serifDisplayQuote,
6078
6894
  bodyText: {
6079
6895
  intro: {
6080
6896
  paragraphSize: "editorial",
6081
6897
  headingSize: "editorial"
6082
6898
  }
6083
6899
  },
6084
- inputs: expressiveUnderlineInputs
6900
+ inputs: ornateDarkInputs
6085
6901
  },
6902
+ designRuntimeRules: kirtanOrnateDesignRuntimeRules,
6086
6903
  recommendedAppearancePresetIds: [
6087
6904
  "hero-brand-scrim-fixed-frame",
6088
- "body-text-editorial-intro",
6905
+ "media-text-quiet-story",
6906
+ "events-lined-panel",
6089
6907
  "schedule-details-brand-depth",
6090
6908
  "testimonials-statement-cards",
6091
6909
  "contact-form-panel"
6092
6910
  ],
6093
- recommendedHeaderLookIds: [
6094
- "brand-solid",
6095
- "transparent-overlay",
6096
- "practical-utility"
6097
- ],
6911
+ defaultHeaderSelection: { layoutId: "floating", styleId: "minimal-surface" },
6912
+ recommendedHeaderLayoutChoices: [headerLayoutChoice("floating")],
6913
+ recommendedHeaderStyleChoicesByLayout: {
6914
+ floating: [
6915
+ headerStyleChoice("minimal-surface"),
6916
+ headerStyleChoice("split-glass"),
6917
+ headerStyleChoice("glass")
6918
+ ]
6919
+ },
6920
+ recommendedHeaderLookIds: ["minimal-transparent"],
6098
6921
  recommendedFooterLookIds: [
6099
6922
  "site-footer-brand-two-band",
6100
6923
  "footer-muted-grounding"
6101
6924
  ],
6102
6925
  buttonPersonalityChoices: [
6103
- buttonChoice("showtime-pill"),
6104
- buttonChoice("confident-chip"),
6105
- buttonChoice("ink-stamp"),
6106
- buttonChoice("brushed-wash")
6926
+ buttonChoice("ornate-ritual"),
6927
+ buttonChoice("joy-stamp"),
6928
+ buttonChoice("ink-stamp")
6107
6929
  ],
6108
6930
  paletteVariantChoices: [
6109
- paletteChoice("brand-led-burgundy-gold"),
6110
- paletteChoice("brand-led-jewel"),
6111
- paletteChoice("brand-led-warm"),
6112
- paletteChoice("high-contrast-ink")
6931
+ paletteChoice("warm-dark-kirtan-gold"),
6932
+ paletteChoice("warm-dark-ember"),
6933
+ paletteChoice("brand-led-burgundy-gold")
6113
6934
  ]
6114
6935
  }),
6115
6936
  defineCuratedSiteStyle({
@@ -6542,6 +7363,11 @@ ${root} {
6542
7363
  --er-event-card-bg: rgb(var(--tb-surface));
6543
7364
  --er-event-card-border-width: var(--rb-border-width, 1px);
6544
7365
  --er-event-card-hover-opacity: 1;
7366
+ --er-control-bg: rgb(var(--tb-background, var(--tb-surface)));
7367
+ --er-control-text: rgb(var(--tb-foreground, var(--tb-text)));
7368
+ --er-radius: var(--rb-block-radius);
7369
+ --er-surface-muted: rgba(var(--tb-muted, 241 245 249), 0.42);
7370
+ --er-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
6545
7371
 
6546
7372
  /* Step indicator */
6547
7373
  --er-step-active: rgb(var(--tb-primary));
@@ -7206,6 +8032,9 @@ var containerResponsiveThemeCss = `/*
7206
8032
  letter-spacing: 0.025em;
7207
8033
  text-transform: uppercase;
7208
8034
  }
8035
+ .rb-eyebrow-treatment-accent {
8036
+ color: rgb(var(--tb-accent));
8037
+ }
7209
8038
  .rb-eyebrow-treatment-pill {
7210
8039
  align-self: center;
7211
8040
  display: inline-flex;
@@ -7260,6 +8089,27 @@ var containerResponsiveThemeCss = `/*
7260
8089
  font-weight: 400;
7261
8090
  }
7262
8091
 
8092
+ /* Media shape treatments */
8093
+ .rb-media-shape-square,
8094
+ .rb-media-shape-rounded,
8095
+ .rb-media-shape-circle,
8096
+ .rb-media-shape-arch {
8097
+ overflow: hidden;
8098
+ }
8099
+ .rb-media-shape-square {
8100
+ border-radius: 0;
8101
+ }
8102
+ .rb-media-shape-rounded {
8103
+ border-radius: var(--rb-media-shape-radius, 1rem);
8104
+ }
8105
+ .rb-media-shape-circle {
8106
+ border-radius: 9999px;
8107
+ }
8108
+ .rb-media-shape-arch {
8109
+ border-radius: 9999px 9999px var(--rb-media-shape-arch-base-radius, 0.125rem)
8110
+ var(--rb-media-shape-arch-base-radius, 0.125rem);
8111
+ }
8112
+
7263
8113
  /* Navigation typography */
7264
8114
  .rb-nav-text {
7265
8115
  font-size: 0.875rem;
@@ -10414,7 +11264,7 @@ var containerResponsiveThemeCss = `/*
10414
11264
  :where(.theme-scope) :where([data-block="event-registration"]) .er-container {
10415
11265
  border-radius: var(--rb-block-radius);
10416
11266
  border: 1px solid var(--er-border);
10417
- padding: 1.5rem;
11267
+ padding: clamp(1rem, 2vw, 1.5rem);
10418
11268
  background: rgb(var(--tb-surface));
10419
11269
  color: var(--er-on-surface);
10420
11270
  transition: border-color var(--rb-block-transition) ease;
@@ -10423,6 +11273,109 @@ var containerResponsiveThemeCss = `/*
10423
11273
  margin-inline: 0;
10424
11274
  }
10425
11275
 
11276
+ /* SSR shell / required-island fallback */
11277
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell {
11278
+ min-height: 24rem;
11279
+ }
11280
+
11281
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__steps {
11282
+ margin-bottom: 1.25rem;
11283
+ }
11284
+
11285
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__eyebrow {
11286
+ margin: 0 0 0.35rem;
11287
+ color: var(--er-on-surface-subtle);
11288
+ font-size: 0.75rem;
11289
+ font-weight: 700;
11290
+ letter-spacing: 0.04em;
11291
+ line-height: 1.2;
11292
+ text-transform: uppercase;
11293
+ }
11294
+
11295
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__title {
11296
+ margin: 0;
11297
+ }
11298
+
11299
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__copy {
11300
+ margin: 0.35rem 0 0;
11301
+ max-width: 36rem;
11302
+ line-height: 1.45;
11303
+ }
11304
+
11305
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__cards {
11306
+ margin-top: 0.25rem;
11307
+ overflow: hidden;
11308
+ border: 1px solid var(--er-border);
11309
+ border-radius: var(--rb-block-radius);
11310
+ background: var(--er-control-bg);
11311
+ }
11312
+
11313
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__card {
11314
+ display: grid;
11315
+ gap: 0.5rem;
11316
+ padding: 1rem;
11317
+ }
11318
+
11319
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line {
11320
+ height: 0.75rem;
11321
+ border-radius: 9999px;
11322
+ background: linear-gradient(
11323
+ 90deg,
11324
+ var(--er-shell-line),
11325
+ rgba(var(--tb-primary), 0.12),
11326
+ var(--er-shell-line)
11327
+ );
11328
+ }
11329
+
11330
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--lg {
11331
+ width: min(26rem, 82%);
11332
+ }
11333
+
11334
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--md {
11335
+ width: min(19rem, 68%);
11336
+ }
11337
+
11338
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--sm {
11339
+ width: min(14rem, 52%);
11340
+ }
11341
+
11342
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--xs {
11343
+ width: min(10rem, 42%);
11344
+ }
11345
+
11346
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__summary {
11347
+ align-items: center;
11348
+ border-radius: calc(var(--rb-block-radius) * 0.75);
11349
+ border: 1px solid var(--er-summary-border);
11350
+ padding: 0.875rem 1rem;
11351
+ }
11352
+
11353
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__button-placeholder {
11354
+ display: inline-flex;
11355
+ min-height: 2.5rem;
11356
+ align-items: center;
11357
+ justify-content: center;
11358
+ border-radius: calc(var(--rb-block-radius) * 0.6);
11359
+ background: rgb(var(--tb-primary));
11360
+ color: rgb(var(--tb-primaryText, var(--tb-primaryForeground, 255 255 255)));
11361
+ padding: 0.625rem 1rem;
11362
+ font-size: 0.875rem;
11363
+ font-weight: 600;
11364
+ line-height: 1.2;
11365
+ text-align: center;
11366
+ white-space: nowrap;
11367
+ }
11368
+
11369
+ :where(.theme-scope) :where([data-block="event-registration"]) .event-registration__hydration-error {
11370
+ border-radius: var(--rb-block-radius);
11371
+ border: 1px solid var(--er-border-error);
11372
+ background: var(--er-error-bg);
11373
+ color: var(--er-error-text);
11374
+ padding: 1rem;
11375
+ font-size: 0.9375rem;
11376
+ line-height: 1.45;
11377
+ }
11378
+
10426
11379
  :where(.theme-scope) :where([data-block="event-registration"].event-registration--embedded) .er-container {
10427
11380
  max-width: none;
10428
11381
  padding: 0;
@@ -10470,6 +11423,7 @@ var containerResponsiveThemeCss = `/*
10470
11423
  padding: 1rem;
10471
11424
  border-radius: calc(var(--rb-block-radius) * 0.75);
10472
11425
  border: 1px solid var(--er-border);
11426
+ background: var(--er-surface-muted);
10473
11427
  }
10474
11428
 
10475
11429
  /* Ticket counter */
@@ -10515,14 +11469,23 @@ var containerResponsiveThemeCss = `/*
10515
11469
  /* Form inputs */
10516
11470
  :where(.theme-scope) :where([data-block="event-registration"]) .er-input {
10517
11471
  width: 100%;
10518
- padding: 0.5rem 0.75rem;
11472
+ min-height: 2.75rem;
11473
+ padding: 0.625rem 0.75rem;
10519
11474
  border-radius: calc(var(--rb-block-radius) * 0.5);
10520
11475
  border: 1px solid var(--er-border);
10521
- background: transparent;
11476
+ background: var(--er-control-bg);
11477
+ color: var(--er-control-text);
11478
+ font: inherit;
11479
+ line-height: 1.4;
10522
11480
  transition: border-color var(--rb-block-transition) ease,
11481
+ background-color var(--rb-block-transition) ease,
10523
11482
  box-shadow var(--rb-block-transition) ease;
10524
11483
  }
10525
11484
 
11485
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-input::placeholder {
11486
+ color: var(--er-on-surface-faint);
11487
+ }
11488
+
10526
11489
  :where(.theme-scope) :where([data-block="event-registration"]) .er-input:focus {
10527
11490
  outline: none;
10528
11491
  border-color: var(--er-border-selected);
@@ -10644,7 +11607,7 @@ var containerResponsiveThemeCss = `/*
10644
11607
  }
10645
11608
 
10646
11609
  :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid .er-event-card {
10647
- padding: 0.75rem 0;
11610
+ padding: 0.875rem 0;
10648
11611
  border-width: 0 0 var(--rb-event-tile-border-width, var(--rb-border-width, 1px)) 0;
10649
11612
  border-style: solid;
10650
11613
  border-radius: 0;
@@ -10876,21 +11839,24 @@ var containerResponsiveThemeCss = `/*
10876
11839
  align-items: flex-start;
10877
11840
  gap: 0.75rem;
10878
11841
  padding: 1rem;
10879
- border: 2px solid var(--er-payment-border);
11842
+ border: 1px solid var(--er-payment-border);
10880
11843
  border-radius: var(--rb-block-radius);
10881
- background: transparent;
11844
+ background: var(--er-control-bg);
10882
11845
  cursor: pointer;
10883
11846
  transition: border-color var(--rb-block-transition) ease,
11847
+ box-shadow var(--rb-block-transition) ease,
10884
11848
  background-color var(--rb-block-transition) ease;
10885
11849
  }
10886
11850
 
10887
11851
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-option:hover {
10888
11852
  border-color: var(--er-payment-border-hover);
11853
+ box-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
10889
11854
  }
10890
11855
 
10891
11856
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-option--selected {
10892
11857
  border-color: var(--er-payment-border-selected);
10893
11858
  background-color: var(--er-payment-bg-selected);
11859
+ box-shadow: 0 0 0 1px var(--er-payment-border-selected);
10894
11860
  }
10895
11861
 
10896
11862
  /* Discount code entry */
@@ -11578,22 +12544,25 @@ var containerResponsiveThemeCss = `/*
11578
12544
  justify-content: center;
11579
12545
  gap: 0.25rem;
11580
12546
  padding: 0.75rem 0.625rem;
11581
- border: 2px solid var(--er-payment-border);
12547
+ border: 1px solid var(--er-payment-border);
11582
12548
  border-radius: var(--rb-block-radius);
11583
- background: transparent;
12549
+ background: var(--er-control-bg);
11584
12550
  cursor: pointer;
11585
12551
  text-align: center;
11586
12552
  transition: border-color var(--rb-block-transition) ease,
12553
+ box-shadow var(--rb-block-transition) ease,
11587
12554
  background-color var(--rb-block-transition) ease;
11588
12555
  }
11589
12556
 
11590
12557
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-tile:hover:not([aria-disabled="true"]) {
11591
12558
  border-color: var(--er-payment-border-hover);
12559
+ box-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
11592
12560
  }
11593
12561
 
11594
12562
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-tile--selected {
11595
12563
  border-color: var(--er-payment-border-selected);
11596
12564
  background-color: var(--er-payment-bg-selected);
12565
+ box-shadow: 0 0 0 1px var(--er-payment-border-selected);
11597
12566
  }
11598
12567
 
11599
12568
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-tile--disabled {
@@ -11696,11 +12665,10 @@ var containerResponsiveThemeCss = `/*
11696
12665
  justify-content: space-between;
11697
12666
  align-items: flex-start;
11698
12667
  gap: 1rem;
11699
- padding: 0.875rem 0;
11700
- background: transparent;
11701
- border-top: 1px solid var(--er-summary-border);
11702
- border-bottom: 1px solid var(--er-summary-border);
11703
- border-radius: 0;
12668
+ padding: 0.875rem 1rem;
12669
+ background: var(--er-surface-muted);
12670
+ border: 1px solid var(--er-summary-border);
12671
+ border-radius: calc(var(--rb-block-radius) * 0.75);
11704
12672
  }
11705
12673
 
11706
12674
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary-bar-info {
@@ -13472,18 +14440,10 @@ var containerResponsiveThemeCss = `/*
13472
14440
  /* Two-column row (opt-in per field via schema layout) */
13473
14441
  :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
13474
14442
  display: grid;
13475
- grid-template-columns: 1fr;
14443
+ grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
13476
14444
  gap: 1rem;
13477
14445
  }
13478
14446
 
13479
- @container rb-site (min-width: 768px) {
13480
- @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
13481
- :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
13482
- grid-template-columns: 1fr 1fr;
13483
- }
13484
- }
13485
- }
13486
-
13487
14447
  /* Field wrapper */
13488
14448
  :where(.theme-scope) :where([data-block="form"]) .fb-field {
13489
14449
  display: flex;
@@ -13557,6 +14517,10 @@ var containerResponsiveThemeCss = `/*
13557
14517
  }
13558
14518
 
13559
14519
  /* Subheadline - supporting text below headline */
14520
+ :where(.theme-scope) :where([data-block="hero"]) .hero-headline {
14521
+ text-wrap: balance;
14522
+ }
14523
+
13560
14524
  :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
13561
14525
  font-size: 1.125rem;
13562
14526
  color: var(--section-supporting-color, var(--section-text-color, rgb(var(--tb-text))));
@@ -13582,8 +14546,8 @@ var containerResponsiveThemeCss = `/*
13582
14546
  }
13583
14547
 
13584
14548
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-typography-editorial .hero-headline {
13585
- font-size: clamp(2.5rem, 5vw, 4rem);
13586
- line-height: 1.08;
14549
+ font-size: clamp(2.75rem, 5.6vw, 4.75rem);
14550
+ line-height: 1.06;
13587
14551
  }
13588
14552
 
13589
14553
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-typography-editorial .hero-subheadline {
@@ -13592,8 +14556,8 @@ var containerResponsiveThemeCss = `/*
13592
14556
  }
13593
14557
 
13594
14558
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-typography-display .hero-headline {
13595
- font-size: clamp(3rem, 6vw, 5rem);
13596
- line-height: 1.04;
14559
+ font-size: clamp(3.5rem, 7.2vw, 6.25rem);
14560
+ line-height: 1;
13597
14561
  }
13598
14562
 
13599
14563
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-typography-display .hero-subheadline {
@@ -13602,8 +14566,8 @@ var containerResponsiveThemeCss = `/*
13602
14566
  }
13603
14567
 
13604
14568
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-typography-poster .hero-headline {
13605
- font-size: clamp(3.5rem, 8vw, 6.5rem);
13606
- line-height: 0.98;
14569
+ font-size: clamp(4.25rem, 10vw, 8.5rem);
14570
+ line-height: 0.94;
13607
14571
  }
13608
14572
 
13609
14573
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-typography-poster .hero-subheadline {
@@ -13612,13 +14576,13 @@ var containerResponsiveThemeCss = `/*
13612
14576
  }
13613
14577
 
13614
14578
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-title-medium.rb-hero-typography-poster .hero-headline {
13615
- font-size: clamp(3rem, 6.5vw, 5rem);
14579
+ font-size: clamp(3.5rem, 7.5vw, 6.5rem);
13616
14580
  }
13617
14581
 
13618
14582
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-title-long.rb-hero-typography-poster .hero-headline,
13619
14583
  :where(.theme-scope) :where([data-block="hero"]) .rb-hero-title-long.rb-hero-typography-display .hero-headline {
13620
- font-size: clamp(2.75rem, 5.5vw, 4.5rem);
13621
- line-height: 1.05;
14584
+ font-size: clamp(3rem, 6vw, 5.25rem);
14585
+ line-height: 1.02;
13622
14586
  }
13623
14587
 
13624
14588
  @container rb-site (max-width: 639px) {
@@ -16340,8 +17304,9 @@ var containerResponsiveThemeCss = `/*
16340
17304
  /* Privacy note */
16341
17305
  :where(.theme-scope) .newsletter-privacy-note {
16342
17306
  margin-top: 0.75rem;
16343
- font-size: 0.75rem;
16344
- color: var(--section-supporting-color, rgb(var(--tb-mutedText)));
17307
+ font-size: 1rem;
17308
+ line-height: 1.6;
17309
+ color: var(--section-text-color, rgb(var(--tb-text)));
16345
17310
  text-align: center;
16346
17311
  }
16347
17312
 
@@ -16396,6 +17361,116 @@ var containerResponsiveThemeCss = `/*
16396
17361
  color: rgb(var(--tb-text));
16397
17362
  }
16398
17363
 
17364
+ /* =============================================================================
17365
+ * Block: Contact + Newsletter
17366
+ * =============================================================================
17367
+ */
17368
+
17369
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .contact-newsletter-grid {
17370
+ display: grid;
17371
+ grid-template-columns: repeat(auto-fit, minmax(min(24rem, 100%), 1fr));
17372
+ gap: clamp(2.5rem, 6vw, 4rem);
17373
+ align-items: start;
17374
+ }
17375
+
17376
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .contact-newsletter-column {
17377
+ min-width: 0;
17378
+ }
17379
+
17380
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .contact-newsletter-copy {
17381
+ margin-bottom: 1.5rem;
17382
+ }
17383
+
17384
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .form-copy-title,
17385
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .newsletter-copy-title {
17386
+ margin: 0 0 0.75rem;
17387
+ }
17388
+
17389
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .form-copy-intro,
17390
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .newsletter-copy-subtitle {
17391
+ color: var(--section-text-color, rgb(var(--tb-text)));
17392
+ }
17393
+
17394
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .contact-newsletter-info {
17395
+ display: flex;
17396
+ flex-direction: column;
17397
+ align-items: flex-start;
17398
+ }
17399
+
17400
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .newsletter-form {
17401
+ max-width: none;
17402
+ margin-left: 0;
17403
+ margin-right: 0;
17404
+ }
17405
+
17406
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .newsletter-privacy-note {
17407
+ text-align: left;
17408
+ }
17409
+
17410
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-form {
17411
+ display: flex;
17412
+ flex-direction: column;
17413
+ gap: 1rem;
17414
+ }
17415
+
17416
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-row-2 {
17417
+ display: grid;
17418
+ grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
17419
+ gap: 1rem;
17420
+ }
17421
+
17422
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-field {
17423
+ display: flex;
17424
+ flex-direction: column;
17425
+ gap: 0.25rem;
17426
+ }
17427
+
17428
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-fieldset {
17429
+ display: flex;
17430
+ flex-direction: column;
17431
+ gap: 0.5rem;
17432
+ border: none;
17433
+ padding: 0;
17434
+ margin: 0;
17435
+ }
17436
+
17437
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-inline {
17438
+ display: flex;
17439
+ align-items: center;
17440
+ gap: 0.5rem;
17441
+ }
17442
+
17443
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-success,
17444
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-error,
17445
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-empty {
17446
+ border-radius: var(--rb-block-radius);
17447
+ padding: 1rem;
17448
+ font-size: 0.875rem;
17449
+ }
17450
+
17451
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-success {
17452
+ background-color: var(--fb-success-bg);
17453
+ color: var(--fb-success-text);
17454
+ border: 1px solid var(--fb-success-border);
17455
+ }
17456
+
17457
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-error {
17458
+ background-color: var(--fb-error-bg);
17459
+ color: var(--fb-error-text);
17460
+ border: 1px solid var(--fb-error-border);
17461
+ }
17462
+
17463
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-empty {
17464
+ background-color: var(--fb-empty-bg);
17465
+ color: var(--fb-empty-text);
17466
+ border: 1px dashed var(--fb-empty-border);
17467
+ text-align: center;
17468
+ }
17469
+
17470
+ :where(.theme-scope) :where([data-block="contact-newsletter"]) .fb-actions {
17471
+ margin-top: 0.5rem;
17472
+ }
17473
+
16399
17474
  /* =============================================================================
16400
17475
  * Block: Team Members
16401
17476
  * =============================================================================
@@ -16620,8 +17695,8 @@ var containerResponsiveThemeCss = `/*
16620
17695
  container: event-compact-list / inline-size;
16621
17696
  border: 1px solid var(--event-compact-divider-color);
16622
17697
  border-radius: 1rem;
16623
- background: rgb(var(--tb-background, 255 255 255));
16624
- box-shadow: 0 1.25rem 3.5rem rgba(var(--tb-shadow), 0.08);
17698
+ background: rgb(var(--tb-surface, 255 255 255));
17699
+ box-shadow: none;
16625
17700
  }
16626
17701
 
16627
17702
  :where(.theme-scope) .rb-event-list-treatment-lined-panel .event-listing-compact-container {
@@ -16630,6 +17705,12 @@ var containerResponsiveThemeCss = `/*
16630
17705
  rgb(var(--tb-border, 229 231 235)),
16631
17706
  rgb(var(--tb-text, 17 24 39)) 8%
16632
17707
  );
17708
+ background: rgb(var(--tb-surface, 255 255 255));
17709
+ border-color: color-mix(
17710
+ in oklab,
17711
+ rgb(var(--tb-primary, 0 0 0)),
17712
+ rgb(var(--tb-border, 229 231 235)) 72%
17713
+ );
16633
17714
  }
16634
17715
 
16635
17716
  :where(.theme-scope) .event-compact-row {
@@ -16705,7 +17786,7 @@ var containerResponsiveThemeCss = `/*
16705
17786
 
16706
17787
  :where(.theme-scope) .event-compact-row-title {
16707
17788
  margin: 0;
16708
- color: rgb(var(--tb-text, 17 24 39));
17789
+ color: var(--section-heading-color, rgb(var(--tb-primary, 0 0 0)));
16709
17790
  font-family: var(--font-heading, var(--font-body, inherit));
16710
17791
  font-size: clamp(1.05rem, 1rem + 0.35vw, 1.3rem);
16711
17792
  font-weight: 400;
@@ -16798,8 +17879,6 @@ var containerResponsiveThemeCss = `/*
16798
17879
  min-height: 2.7rem;
16799
17880
  justify-content: space-between;
16800
17881
  gap: 1rem;
16801
- border-radius: 9999px;
16802
- padding-inline: 1.25rem 1rem;
16803
17882
  white-space: nowrap;
16804
17883
  }
16805
17884
 
@@ -17613,7 +18692,7 @@ var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="
17613
18692
  import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
17614
18693
 
17615
18694
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
17616
- import { z as z19 } from "zod";
18695
+ import { z as z20 } from "zod";
17617
18696
 
17618
18697
  // ../theme-core/src/inputs/core.ts
17619
18698
  var CORNER_RADIUS_MAP4 = {
@@ -17806,33 +18885,33 @@ var CSS_DECLARATION_PROPERTY_PATTERN = /^(?:-[a-zA-Z][a-zA-Z0-9-]*|[a-zA-Z][a-zA
17806
18885
  var UNSAFE_CSS_MARKUP_PATTERN = /[{}<>]|<\/|<script/i;
17807
18886
  var EXTERNAL_URL_PATTERN = /url\s*\(\s*['"]?(?:https?:|\/\/)/i;
17808
18887
  var JAVASCRIPT_URL_PATTERN2 = /javascript\s*:/i;
17809
- var themeBridgeConfigSchema = z19.object({
17810
- tokens: z19.record(z19.string(), z19.string()),
17811
- typography: z19.object({
17812
- headingFamily: z19.string().optional(),
17813
- bodyFamily: z19.string().optional(),
17814
- headingWeight: z19.number().optional(),
17815
- bodyWeight: z19.number().optional()
18888
+ var themeBridgeConfigSchema = z20.object({
18889
+ tokens: z20.record(z20.string(), z20.string()),
18890
+ typography: z20.object({
18891
+ headingFamily: z20.string().optional(),
18892
+ bodyFamily: z20.string().optional(),
18893
+ headingWeight: z20.number().optional(),
18894
+ bodyWeight: z20.number().optional()
17816
18895
  }).optional(),
17817
- spacing: z19.enum(["comfortable", "standard", "dense"]).optional(),
17818
- corners: z19.enum(["square", "soft", "rounded", "pill"]).optional(),
17819
- shadows: z19.enum(["none", "low", "medium", "high"]).optional(),
17820
- components: z19.object({
17821
- buttons: z19.union([
17822
- z19.boolean(),
17823
- z19.object({
17824
- variants: z19.array(z19.enum(["primary", "secondary", "outline", "ghost"])).optional()
18896
+ spacing: z20.enum(["comfortable", "standard", "dense"]).optional(),
18897
+ corners: z20.enum(["square", "soft", "rounded", "pill"]).optional(),
18898
+ shadows: z20.enum(["none", "low", "medium", "high"]).optional(),
18899
+ components: z20.object({
18900
+ buttons: z20.union([
18901
+ z20.boolean(),
18902
+ z20.object({
18903
+ variants: z20.array(z20.enum(["primary", "secondary", "outline", "ghost"])).optional()
17825
18904
  })
17826
18905
  ]).optional(),
17827
- cards: z19.union([
17828
- z19.boolean(),
17829
- z19.object({
17830
- variants: z19.array(z19.enum(["default", "elevated", "outlined"])).optional()
18906
+ cards: z20.union([
18907
+ z20.boolean(),
18908
+ z20.object({
18909
+ variants: z20.array(z20.enum(["default", "elevated", "outlined"])).optional()
17831
18910
  })
17832
18911
  ]).optional(),
17833
- inputs: z19.boolean().optional()
18912
+ inputs: z20.boolean().optional()
17834
18913
  }).optional(),
17835
- overrides: z19.record(z19.string(), z19.string()).optional()
18914
+ overrides: z20.record(z20.string(), z20.string()).optional()
17836
18915
  }).passthrough();
17837
18916
  var TOKEN_ALIASES = [
17838
18917
  { source: "text", target: "foreground" },