@riverbankcms/sdk 0.60.16 → 0.62.4

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 (232) hide show
  1. package/dist/_dts/api/src/accessAdmin.d.ts +7 -0
  2. package/dist/_dts/api/src/bookingClosures.d.ts +106 -0
  3. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +59 -1
  4. package/dist/_dts/api/src/bookingRecords.d.ts +101 -4
  5. package/dist/_dts/api/src/bookings.d.ts +2 -1
  6. package/dist/_dts/api/src/calendar.d.ts +11 -1
  7. package/dist/_dts/api/src/contentRuntime.d.ts +2 -0
  8. package/dist/_dts/api/src/contentVersionHistory.d.ts +52 -0
  9. package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +45 -0
  10. package/dist/_dts/api/src/endpoints.d.ts +206 -6
  11. package/dist/_dts/api/src/index.d.ts +9 -2
  12. package/dist/_dts/api/src/participantMessaging.d.ts +113 -0
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +31 -7
  14. package/dist/_dts/api/src/siteMembers.d.ts +10 -1
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +76 -51
  16. package/dist/_dts/api/src/types.d.ts +3 -1
  17. package/dist/_dts/api/src/url.d.ts +3 -3
  18. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  19. package/dist/_dts/blocks/src/index.d.ts +66 -62
  20. package/dist/_dts/blocks/src/lib/media.d.ts +60 -0
  21. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +2 -2
  22. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +2 -2
  23. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -2
  24. package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +0 -21
  25. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +2 -6
  26. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +2 -2
  27. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +0 -10
  29. package/dist/_dts/blocks/src/system/blocks/columns.d.ts +0 -10
  30. package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -20
  31. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +0 -20
  32. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +15 -15
  33. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +5 -10
  34. package/dist/_dts/blocks/src/system/blocks/embed.d.ts +0 -11
  35. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +0 -20
  36. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +0 -20
  37. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +43 -27
  38. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +24 -15
  39. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -2
  40. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +132 -12
  41. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +3 -2
  42. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +2 -10
  43. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -2
  44. package/dist/_dts/blocks/src/system/blocks/form.d.ts +2 -24
  45. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +2 -2
  46. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +2 -3
  47. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +2 -2
  48. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +0 -13
  49. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +17 -17
  50. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -10
  51. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +2 -2
  52. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -2
  53. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +9 -9
  54. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  55. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +16 -15
  56. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +2 -6
  57. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -11
  58. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -3
  59. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +2 -2
  60. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +2 -2
  61. package/dist/_dts/blocks/src/system/constants/events.d.ts +18 -0
  62. package/dist/_dts/blocks/src/system/customize/facets.d.ts +105 -0
  63. package/dist/_dts/blocks/src/system/defineBlock.d.ts +29 -5
  64. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
  65. package/dist/_dts/blocks/src/system/fragments/library/blogFeaturedPost.d.ts +0 -24
  66. package/dist/_dts/blocks/src/system/fragments/library/bodyCopy.d.ts +0 -4
  67. package/dist/_dts/blocks/src/system/fragments/library/bookingForm.d.ts +0 -4
  68. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +0 -6
  69. package/dist/_dts/blocks/src/system/fragments/library/columnContent.d.ts +0 -6
  70. package/dist/_dts/blocks/src/system/fragments/library/ctaCopy.d.ts +0 -4
  71. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +0 -4
  72. package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +0 -4
  73. package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +0 -4
  74. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +0 -6
  75. package/dist/_dts/blocks/src/system/fragments/library/footerBottomText.d.ts +0 -4
  76. package/dist/_dts/blocks/src/system/fragments/library/formCopy.d.ts +0 -4
  77. package/dist/_dts/blocks/src/system/fragments/library/formEmbed.d.ts +0 -18
  78. package/dist/_dts/blocks/src/system/fragments/library/headerCta.d.ts +0 -4
  79. package/dist/_dts/blocks/src/system/fragments/library/heading.d.ts +0 -6
  80. package/dist/_dts/blocks/src/system/fragments/library/heroCopy.d.ts +0 -4
  81. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +0 -4
  82. package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +0 -4
  83. package/dist/_dts/blocks/src/system/fragments/library/image.d.ts +0 -6
  84. package/dist/_dts/blocks/src/system/fragments/library/newsletterCopy.d.ts +0 -4
  85. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +0 -4
  86. package/dist/_dts/blocks/src/system/fragments/library/quote.d.ts +0 -6
  87. package/dist/_dts/blocks/src/system/fragments/library/richText.d.ts +0 -6
  88. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +0 -6
  89. package/dist/_dts/blocks/src/system/fragments/library/singleButton.d.ts +0 -4
  90. package/dist/_dts/blocks/src/system/fragments/library/spinner.d.ts +0 -5
  91. package/dist/_dts/blocks/src/system/fragments/library/teamMember.d.ts +0 -6
  92. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +0 -31
  93. package/dist/_dts/blocks/src/system/fragments/library/testimonialsHeading.d.ts +0 -4
  94. package/dist/_dts/blocks/src/system/fragments/library/videoEmbed.d.ts +0 -6
  95. package/dist/_dts/blocks/src/system/fragments/types.d.ts +11 -3
  96. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +4 -0
  97. package/dist/_dts/blocks/src/system/index.d.ts +1 -0
  98. package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +3 -3
  99. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +10 -10
  100. package/dist/_dts/blocks/src/system/media/constrainedVideoMedia.d.ts +13 -0
  101. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  102. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -0
  104. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +1 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +12 -0
  106. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -0
  107. package/dist/_dts/blocks/src/system/runtime/shared/components/FieldValidationMessage.d.ts +19 -0
  108. package/dist/_dts/blocks/src/system/runtime/shared/components/TerminalPanel.d.ts +8 -2
  109. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +3 -1
  110. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  111. package/dist/_dts/blocks/src/system/transforms/registry/_utils/themeColorResolution.d.ts +7 -0
  112. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +24 -0
  113. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  114. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +1 -0
  115. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -0
  116. package/dist/_dts/content-model/src/contentManifest.d.ts +2 -2
  117. package/dist/_dts/content-model/src/referenceFields.d.ts +7 -1
  118. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +242 -6
  119. package/dist/_dts/db/src/schemas/forms.d.ts +1 -0
  120. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -0
  121. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerWidgetProvider.d.ts +3 -2
  122. package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +2 -1
  123. package/dist/_dts/editor-blocks/src/widgets/entry-picker/types.d.ts +2 -1
  124. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +2 -1
  125. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +2 -1
  126. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
  127. package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +2 -1
  128. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +3 -2
  129. package/dist/_dts/editor-blocks/src/widgets/reference/dynamicAdapters.d.ts +9 -0
  130. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +5 -1
  131. package/dist/_dts/media-core/src/index.d.ts +1 -0
  132. package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +38 -0
  133. package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -1
  134. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +7 -0
  135. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -1
  136. package/dist/_dts/preview-next/src/client/blocks/composer/composePageFromBlocks.d.ts +2 -1
  137. package/dist/_dts/preview-next/src/client/blocks/composer/index.d.ts +2 -2
  138. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -1
  139. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +31 -8
  140. package/dist/_dts/preview-next/src/client/blocks/customizeFacetControls.d.ts +9 -0
  141. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +6 -5
  142. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +14 -0
  143. package/dist/_dts/preview-next/src/client/blocks/previewProjection/aiProposalProjection.d.ts +7 -0
  144. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +7 -0
  145. package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +4 -0
  146. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +5 -0
  147. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +72 -0
  148. package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
  149. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +8 -5
  150. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +2 -1
  151. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +11 -1
  152. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -5
  153. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
  154. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +13 -2
  155. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -1
  156. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControlStyles.d.ts +1 -0
  157. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +7 -3
  158. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +9 -1
  159. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +13 -0
  160. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +8 -2
  161. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +49 -0
  162. package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +1 -1
  163. package/dist/_dts/sdk/src/contracts/content.d.ts +10 -0
  164. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -1
  165. package/dist/_dts/sdk/src/manifest/prompt/examples/features-grid.d.ts +1 -1
  166. package/dist/_dts/sdk/src/manifest/prompt/examples/pricing.d.ts +5 -5
  167. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -1
  168. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -0
  169. package/dist/_dts/sdk/src/version.d.ts +1 -1
  170. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  171. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  172. package/dist/_dts/theme-core/src/index.d.ts +1 -0
  173. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -0
  174. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +2 -21
  175. package/dist/_dts/theme-core/src/schema.d.ts +25 -0
  176. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +451 -0
  177. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -0
  178. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +61 -0
  179. package/dist/_dts/theme-core/src/site-styles/appearancePresets.d.ts +5 -563
  180. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +448 -0
  181. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +30 -0
  182. package/dist/_dts/theme-core/src/site-styles/customizableSurfaces.d.ts +94 -0
  183. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +12 -0
  184. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +59 -0
  185. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +4 -0
  186. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -0
  187. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -0
  188. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +155 -0
  189. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +15 -0
  190. package/dist/_dts/theme-core/src/site-styles/index.d.ts +6 -0
  191. package/dist/_dts/theme-core/src/site-styles/pageDesignAuthority.d.ts +7 -0
  192. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +25 -0
  193. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +15 -1
  194. package/dist/_dts/theme-core/src/site-styles/records.d.ts +1 -0
  195. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +8 -0
  196. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +96 -0
  197. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +6 -6
  198. package/dist/_dts/theme-core/src/site-styles/types.d.ts +23 -5
  199. package/dist/_dts/theme-core/src/siteChrome.d.ts +53 -0
  200. package/dist/_dts/theme-core/src/tokens/colorTokenParts.d.ts +13 -0
  201. package/dist/_dts/theme-core/src/tokens/index.d.ts +2 -0
  202. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +29 -0
  203. package/dist/_dts/theme-core/src/utils/tokenOrColor.d.ts +27 -1
  204. package/dist/cli/index.mjs +5149 -3635
  205. package/dist/client/bookings.mjs +711 -560
  206. package/dist/client/client.mjs +10110 -8168
  207. package/dist/client/hooks.mjs +3861 -2739
  208. package/dist/client/rendering/client.mjs +8606 -7009
  209. package/dist/client/rendering/islands.mjs +25202 -23768
  210. package/dist/client/rendering.mjs +10661 -8713
  211. package/dist/preview-next/before-render.mjs +256 -6
  212. package/dist/preview-next/client/runtime.mjs +7700 -4016
  213. package/dist/preview-next/editor-base.css +31 -0
  214. package/dist/preview-next/middleware.mjs +267 -6
  215. package/dist/server/components.mjs +4501 -3270
  216. package/dist/server/config-validation.mjs +4089 -2967
  217. package/dist/server/config.mjs +4089 -2967
  218. package/dist/server/data.mjs +3861 -2739
  219. package/dist/server/index.mjs +322 -24
  220. package/dist/server/next.mjs +4274 -3041
  221. package/dist/server/page-converter.mjs +3520 -2717
  222. package/dist/server/prebuild.mjs +1 -1
  223. package/dist/server/rendering/server.mjs +4500 -3270
  224. package/dist/server/rendering.mjs +4526 -3291
  225. package/dist/server/routing.mjs +4006 -2723
  226. package/dist/server/server.mjs +3897 -2772
  227. package/dist/server/theme-bridge.mjs +1435 -788
  228. package/dist/server/theme.mjs +628 -497
  229. package/dist/styles/index.css +61 -9
  230. package/package.json +1 -1
  231. package/dist/_dts/blocks/src/system/transforms/registry/_utils/colorResolution.d.ts +0 -13
  232. package/dist/_dts/preview-next/src/client/blocks/overlay.d.ts +0 -30
@@ -29,6 +29,24 @@ var MQ_TABLET_ONLY = mqBetween(BREAKPOINT_SM, BREAKPOINT_LG_DOWN);
29
29
  var MQ_MAX_640 = mqDown(BREAKPOINT_SM);
30
30
  var MQ_MAX_768 = mqDown(BREAKPOINT_MD);
31
31
 
32
+ // ../theme-core/src/site-styles/appearancePresetResolution.ts
33
+ function assertValidOptionGroups(preset) {
34
+ preset.optionGroups?.forEach((group) => {
35
+ const selectedOption = group.options.find(
36
+ (option) => option.id === group.selectedOptionId
37
+ );
38
+ if (!selectedOption) {
39
+ throw new Error(
40
+ `Appearance preset "${preset.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
41
+ );
42
+ }
43
+ });
44
+ }
45
+ function defineBlockAppearancePreset(preset) {
46
+ assertValidOptionGroups(preset);
47
+ return preset;
48
+ }
49
+
32
50
  // ../theme-core/src/site-styles/types.ts
33
51
  function asDesignBlockId(value) {
34
52
  return brandNonEmptyString(value, "DesignBlockId");
@@ -59,6 +77,9 @@ function asBlockOrderIndex(value) {
59
77
  }
60
78
  return value;
61
79
  }
80
+ function asLayoutVariantKey(value) {
81
+ return brandNonEmptyString(value, "LayoutVariantKey");
82
+ }
62
83
  function asAppearancePresetId(value) {
63
84
  return brandNonEmptyString(value, "AppearancePresetId");
64
85
  }
@@ -104,6 +125,11 @@ function flushPanelFrame(options) {
104
125
  bleed: options.bleed
105
126
  };
106
127
  }
128
+ var tileTreatmentValues = [
129
+ "default",
130
+ "quiet",
131
+ "brand-depth"
132
+ ];
107
133
  var eyebrowTreatmentValues = [
108
134
  "plain",
109
135
  "pill",
@@ -112,27 +138,8 @@ var eyebrowTreatmentValues = [
112
138
  "accent-pill-bounce"
113
139
  ];
114
140
 
115
- // ../theme-core/src/site-styles/appearancePresets.ts
116
- function assertValidOptionGroups(preset) {
117
- preset.optionGroups?.forEach((group) => {
118
- const selectedOption = group.options.find(
119
- (option) => option.id === group.selectedOptionId
120
- );
121
- if (!selectedOption) {
122
- throw new Error(
123
- `Appearance preset "${preset.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
124
- );
125
- }
126
- });
127
- }
128
- function defineBlockAppearancePreset(preset) {
129
- assertValidOptionGroups(preset);
130
- return preset;
131
- }
132
- function defineSiteChromeAppearancePreset(preset) {
133
- return preset;
134
- }
135
- var appearancePresets = [
141
+ // ../theme-core/src/site-styles/blockAppearancePresets.ts
142
+ var blockAppearancePresets = [
136
143
  defineBlockAppearancePreset({
137
144
  kind: "block-design",
138
145
  id: "hero-immersive-image",
@@ -258,6 +265,24 @@ var appearancePresets = [
258
265
  eyebrowTreatment: "accent-pill-bounce"
259
266
  }
260
267
  }),
268
+ defineBlockAppearancePreset({
269
+ kind: "block-design",
270
+ id: "hero-brand-depth-expressive",
271
+ target: "hero",
272
+ label: "Expressive brand-depth hero",
273
+ blockKinds: ["block.hero"],
274
+ constraints: {
275
+ layoutFamilies: ["centered", "compact"]
276
+ },
277
+ design: {
278
+ sectionSurface: "brand-depth-band",
279
+ contentFrame: plainFrame,
280
+ itemSurface: "none",
281
+ transitionAfter: "soft-fade-short",
282
+ emphasis: "high",
283
+ eyebrowTreatment: "accent-pill-bounce"
284
+ }
285
+ }),
261
286
  defineBlockAppearancePreset({
262
287
  kind: "block-design",
263
288
  id: "hero-contained-intro",
@@ -286,6 +311,20 @@ var appearancePresets = [
286
311
  emphasis: "high"
287
312
  }
288
313
  }),
314
+ defineBlockAppearancePreset({
315
+ kind: "block-design",
316
+ id: "body-text-brand-depth-intro",
317
+ target: "body-text",
318
+ label: "Brand-depth intro copy",
319
+ blockKinds: ["block.body-text"],
320
+ design: {
321
+ sectionSurface: "brand-depth-band",
322
+ contentFrame: plainFrame,
323
+ itemSurface: "none",
324
+ transitionAfter: "soft-fade-short",
325
+ emphasis: "high"
326
+ }
327
+ }),
289
328
  defineBlockAppearancePreset({
290
329
  kind: "block-design",
291
330
  id: "offerings-calm-list",
@@ -328,6 +367,21 @@ var appearancePresets = [
328
367
  emphasis: "medium"
329
368
  }
330
369
  }),
370
+ defineBlockAppearancePreset({
371
+ kind: "block-design",
372
+ id: "schedule-details-brand-depth",
373
+ target: "events",
374
+ label: "Brand-depth schedule details",
375
+ blockKinds: ["block.event-details", "block.course-details"],
376
+ design: {
377
+ sectionSurface: "brand-depth-band",
378
+ contentFrame: plainFrame,
379
+ itemSurface: "none",
380
+ transitionAfter: "none",
381
+ emphasis: "medium",
382
+ tileTreatment: "brand-depth"
383
+ }
384
+ }),
331
385
  defineBlockAppearancePreset({
332
386
  kind: "block-design",
333
387
  id: "media-text-flush-feature",
@@ -413,6 +467,20 @@ var appearancePresets = [
413
467
  testimonialCardTreatment: "accent-quote"
414
468
  }
415
469
  }),
470
+ defineBlockAppearancePreset({
471
+ kind: "block-design",
472
+ id: "faq-base-accordion",
473
+ target: "faq",
474
+ label: "Base accordion FAQ",
475
+ blockKinds: ["block.faq"],
476
+ design: {
477
+ sectionSurface: "base",
478
+ contentFrame: plainFrame,
479
+ itemSurface: "default",
480
+ transitionAfter: "none",
481
+ emphasis: "medium"
482
+ }
483
+ }),
416
484
  defineBlockAppearancePreset({
417
485
  kind: "block-design",
418
486
  id: "faq-contained-help",
@@ -455,6 +523,20 @@ var appearancePresets = [
455
523
  emphasis: "high"
456
524
  }
457
525
  }),
526
+ defineBlockAppearancePreset({
527
+ kind: "block-design",
528
+ id: "contact-form-brand-depth-card",
529
+ target: "contact-form",
530
+ label: "Brand-depth form card",
531
+ blockKinds: ["block.form"],
532
+ design: {
533
+ sectionSurface: "brand-depth-band",
534
+ contentFrame: panelFrame("raised"),
535
+ itemSurface: "none",
536
+ transitionAfter: "none",
537
+ emphasis: "high"
538
+ }
539
+ }),
458
540
  defineBlockAppearancePreset({
459
541
  kind: "block-design",
460
542
  id: "cta-accent-band",
@@ -468,74 +550,38 @@ var appearancePresets = [
468
550
  transitionAfter: "none",
469
551
  emphasis: "high"
470
552
  }
471
- }),
472
- defineSiteChromeAppearancePreset({
473
- kind: "site-chrome",
474
- id: "header-clean-base",
475
- target: "site-header",
476
- label: "Clean base header",
477
- header: {
478
- surface: {
479
- kind: "neutral-solid",
480
- token: "surface",
481
- textColorToken: "text"
482
- },
483
- navTreatment: "minimal",
484
- dropdownTreatment: "surface",
485
- ctaTreatment: "default",
486
- behavior: "default"
487
- }
488
- }),
489
- defineSiteChromeAppearancePreset({
490
- kind: "site-chrome",
491
- id: "site-header-brand-solid-inverted-cta",
492
- target: "site-header",
493
- label: "Brand solid header with inverted CTA",
494
- header: {
495
- surface: {
496
- kind: "brand-solid",
497
- token: "primary",
498
- textColorToken: "primaryForeground"
499
- },
500
- navTreatment: "uppercase-underline",
501
- dropdownTreatment: "matched-solid",
502
- ctaTreatment: "inverted",
503
- behavior: "sticky-shrink"
504
- }
505
- }),
506
- defineSiteChromeAppearancePreset({
507
- kind: "site-chrome",
508
- id: "footer-muted-grounding",
509
- target: "site-footer",
510
- label: "Muted grounding footer",
511
- footer: {
512
- kind: "grounding",
513
- surface: "muted-band",
514
- emphasis: "low"
515
- }
516
- }),
517
- defineSiteChromeAppearancePreset({
518
- kind: "site-chrome",
519
- id: "site-footer-brand-two-band",
520
- target: "site-footer",
521
- label: "Two-band brand footer",
522
- footer: {
523
- kind: "brand-two-band",
524
- surface: {
525
- token: "primary",
526
- shade: "800",
527
- textColorToken: "primaryForeground"
528
- },
529
- bottomBand: {
530
- token: "primary",
531
- shade: "900",
532
- textColorToken: "primaryForeground"
533
- },
534
- emphasis: "high"
535
- }
536
553
  })
537
554
  ];
538
555
 
556
+ // ../theme-core/src/site-styles/appearancePresetCatalog.ts
557
+ var appearancePresets = [
558
+ ...blockAppearancePresets
559
+ ];
560
+
561
+ // ../theme-core/src/site-styles/headerCtaVariants.ts
562
+ function hasButtonVariant(theme, variantId) {
563
+ return theme.buttons?.variants.some((variant) => variant.enabled && variant.id === variantId) ?? false;
564
+ }
565
+ function resolveHeaderCtaVariant(theme, treatment) {
566
+ switch (treatment) {
567
+ case "default":
568
+ return void 0;
569
+ case "primary":
570
+ return "primary";
571
+ case "secondary":
572
+ return hasButtonVariant(theme, "secondary") ? "secondary" : "primary";
573
+ case "inverted":
574
+ if (hasButtonVariant(theme, "header")) return "header";
575
+ if (hasButtonVariant(theme, "secondary")) return "secondary";
576
+ if (hasButtonVariant(theme, "outline")) return "outline";
577
+ return "primary";
578
+ case "outline":
579
+ return hasButtonVariant(theme, "outline") ? "outline" : "secondary";
580
+ case "ghost":
581
+ return hasButtonVariant(theme, "ghost") ? "ghost" : "secondary";
582
+ }
583
+ }
584
+
539
585
  // ../theme-core/src/site-styles/pageDesignIntent.ts
540
586
  import { z } from "zod";
541
587
  var pageDesignIntentSchemaVersion = 1;
@@ -612,10 +658,141 @@ function boundaryKey(previousBlockId, nextBlockId) {
612
658
  }
613
659
 
614
660
  // ../theme-core/src/buttons/personalities/types.ts
615
- import { z as z4 } from "zod";
661
+ import { z as z5 } from "zod";
616
662
 
617
663
  // ../theme-core/src/buttons/types.ts
664
+ import { z as z3 } from "zod";
665
+
666
+ // ../theme-core/src/tokens/themeColorTokens.ts
618
667
  import { z as z2 } from "zod";
668
+
669
+ // ../theme-core/src/tokens/colorTokenParts.ts
670
+ function parseOpacityPercent(source) {
671
+ const trimmed = source.trim();
672
+ if (!trimmed) return null;
673
+ if (!/^\d{1,3}(?:\.\d+)?$/.test(trimmed)) return null;
674
+ const value = Number(trimmed);
675
+ if (!Number.isFinite(value)) return null;
676
+ if (value < 0 || value > 100) return null;
677
+ return value;
678
+ }
679
+ function parseColorTokenParts(source) {
680
+ const trimmed = source.trim();
681
+ if (trimmed.startsWith("raw:")) {
682
+ return { kind: "raw", value: trimmed.slice(4) };
683
+ }
684
+ const [token, opacityRaw, extra] = trimmed.split("/");
685
+ if (!token || extra !== void 0) {
686
+ return { kind: "invalid", token: trimmed };
687
+ }
688
+ if (opacityRaw === void 0) {
689
+ return { kind: "token", token, opacityPercent: null };
690
+ }
691
+ const opacityPercent = parseOpacityPercent(opacityRaw);
692
+ if (opacityPercent === null) {
693
+ return { kind: "invalid", token: trimmed };
694
+ }
695
+ return { kind: "token", token, opacityPercent };
696
+ }
697
+
698
+ // ../theme-core/src/tokens/blockColorTokens.ts
699
+ var blockColorTokenNames = [
700
+ "text",
701
+ "heading",
702
+ "mutedText",
703
+ "surface",
704
+ "background",
705
+ "foreground",
706
+ "border",
707
+ "primary",
708
+ "secondary",
709
+ "accent",
710
+ "success",
711
+ "warning",
712
+ "info",
713
+ "error",
714
+ "destructive",
715
+ "scrim",
716
+ "shadow",
717
+ // Common "on*" tokens used when rendering colored chips/badges.
718
+ "onPrimary",
719
+ "onSecondary",
720
+ "onAccent",
721
+ "onSuccess",
722
+ "onWarning",
723
+ "onInfo",
724
+ "onError",
725
+ "onDestructive",
726
+ "onSurface"
727
+ ];
728
+ var blockColorTokenNameSet = new Set(
729
+ blockColorTokenNames
730
+ );
731
+
732
+ // ../theme-core/src/tokens/themeColorTokens.ts
733
+ var PALETTE_TOKEN_NAMES = [
734
+ "primary",
735
+ "primaryForeground",
736
+ "secondary",
737
+ "accent",
738
+ "success",
739
+ "warning",
740
+ "destructive",
741
+ "background",
742
+ "surface",
743
+ "surfaceAlt",
744
+ "muted",
745
+ "text",
746
+ "border"
747
+ ];
748
+ var paletteTokenNameSchema = z2.enum(PALETTE_TOKEN_NAMES);
749
+ var themeColorBaseTokenNames = [
750
+ ...PALETTE_TOKEN_NAMES,
751
+ ...blockColorTokenNames,
752
+ // Existing generated themes can carry palette-local "white" tokens in
753
+ // token-only component fields. Keep it explicit until those rows are
754
+ // migrated to canonical foreground/background roles.
755
+ "white",
756
+ "neutral",
757
+ "primaryText",
758
+ "secondaryForeground",
759
+ "accentForeground"
760
+ ];
761
+ var themeColorBaseTokenSet = new Set(themeColorBaseTokenNames);
762
+ var SHADE_STEPS = [
763
+ "50",
764
+ "100",
765
+ "200",
766
+ "300",
767
+ "400",
768
+ "500",
769
+ "600",
770
+ "700",
771
+ "800",
772
+ "900",
773
+ "950"
774
+ ];
775
+ var shadeStepSet = new Set(SHADE_STEPS);
776
+ function isKnownBaseToken(value) {
777
+ return themeColorBaseTokenSet.has(value);
778
+ }
779
+ function isKnownShadeToken(value) {
780
+ const match = value.match(/^([a-zA-Z][a-zA-Z0-9]*)(?:-([0-9]{2,3}))$/);
781
+ if (!match) return false;
782
+ const [, base, shade] = match;
783
+ return Boolean(base && shade && isKnownBaseToken(base) && shadeStepSet.has(shade));
784
+ }
785
+ function isThemeColorTokenBase(value) {
786
+ return isKnownBaseToken(value) || isKnownShadeToken(value);
787
+ }
788
+ function isThemeColorToken(value) {
789
+ if (typeof value !== "string") return false;
790
+ const parts = parseColorTokenParts(value);
791
+ return parts.kind === "token" && isThemeColorTokenBase(parts.token);
792
+ }
793
+ var themeColorTokenSchema = z2.string().min(1).refine((value) => Boolean(isThemeColorToken(value)), "Expected a known Theme V2 color token");
794
+
795
+ // ../theme-core/src/buttons/types.ts
619
796
  var VARIANT_ROLES = [
620
797
  "primary",
621
798
  "secondary",
@@ -625,22 +802,22 @@ var VARIANT_ROLES = [
625
802
  "tertiary",
626
803
  "accent"
627
804
  ];
628
- var cornerStyleSchema = z2.enum(["square", "rounded", "pill"]);
629
- var shadowSizeSchema = z2.enum(["none", "low", "medium", "high"]);
630
- var textTransformSchema = z2.enum(["none", "uppercase", "lowercase", "capitalize"]);
631
- var fontWeightSchema = z2.union([z2.literal(500), z2.literal(600), z2.literal(700)]);
632
- var buttonTypographySchema = z2.enum(["body", "heading"]);
633
- var letterSpacingSchema = z2.enum(["tight", "normal", "loose"]);
634
- var hoverTransformSchema = z2.enum(["none", "lift", "scale", "press"]);
635
- var hoverColorSchema = z2.enum(["none", "brighten", "darken", "saturate", "token"]);
636
- var buttonPaddingPresetSchema = z2.enum(["compact", "default", "spacious"]);
637
- var gradientStyleSchema = z2.enum(["linear", "radial", "conic"]);
638
- var gradientSharpnessSchema = z2.enum(["smooth", "medium", "hard"]);
639
- var prioritySchema = z2.union([z2.literal(1), z2.literal(2), z2.literal(3)]);
640
- var variantRoleSchema = z2.enum(VARIANT_ROLES);
641
- var buttonSizeNameSchema = z2.enum(["sm", "md", "lg", "xl"]);
805
+ var cornerStyleSchema = z3.enum(["square", "rounded", "pill"]);
806
+ var shadowSizeSchema = z3.enum(["none", "low", "medium", "high"]);
807
+ var textTransformSchema = z3.enum(["none", "uppercase", "lowercase", "capitalize"]);
808
+ var fontWeightSchema = z3.union([z3.literal(500), z3.literal(600), z3.literal(700)]);
809
+ var buttonTypographySchema = z3.enum(["body", "heading"]);
810
+ var letterSpacingSchema = z3.enum(["tight", "normal", "loose"]);
811
+ var hoverTransformSchema = z3.enum(["none", "lift", "scale", "press"]);
812
+ var hoverColorSchema = z3.enum(["none", "brighten", "darken", "saturate", "token"]);
813
+ var buttonPaddingPresetSchema = z3.enum(["compact", "default", "spacious"]);
814
+ var gradientStyleSchema = z3.enum(["linear", "radial", "conic"]);
815
+ var gradientSharpnessSchema = z3.enum(["smooth", "medium", "hard"]);
816
+ var prioritySchema = z3.union([z3.literal(1), z3.literal(2), z3.literal(3)]);
817
+ var variantRoleSchema = z3.enum(VARIANT_ROLES);
818
+ var buttonSizeNameSchema = z3.enum(["sm", "md", "lg", "xl"]);
642
819
  var PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
643
- var paddingShorthandSchema = z2.string().refine(
820
+ var paddingShorthandSchema = z3.string().refine(
644
821
  (value) => {
645
822
  const parts = value.split(/\s+/).filter(Boolean);
646
823
  return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
@@ -649,11 +826,11 @@ var paddingShorthandSchema = z2.string().refine(
649
826
  message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
650
827
  }
651
828
  );
652
- var buttonSizeConfigSchema = z2.object({
829
+ var buttonSizeConfigSchema = z3.object({
653
830
  padding: paddingShorthandSchema,
654
- fontSize: z2.string().optional()
831
+ fontSize: z3.string().optional()
655
832
  });
656
- var buttonSizesSchema = z2.object({
833
+ var buttonSizesSchema = z3.object({
657
834
  sm: buttonSizeConfigSchema,
658
835
  md: buttonSizeConfigSchema,
659
836
  lg: buttonSizeConfigSchema,
@@ -664,9 +841,9 @@ var buttonSizesSchema = z2.object({
664
841
  lg,
665
842
  xl: xl ?? lg
666
843
  }));
667
- var buttonGlobalSettingsSchema = z2.object({
844
+ var buttonGlobalSettingsSchema = z3.object({
668
845
  cornerStyle: cornerStyleSchema,
669
- cornerRadius: z2.number().min(0).max(24).optional(),
846
+ cornerRadius: z3.number().min(0).max(24).optional(),
670
847
  shadow: shadowSizeSchema,
671
848
  textTransform: textTransformSchema,
672
849
  fontWeight: fontWeightSchema,
@@ -676,104 +853,104 @@ var buttonGlobalSettingsSchema = z2.object({
676
853
  * by the current generator and will be removed once the legacy
677
854
  * `primitives/content/components/Button.tsx` slot exports are deleted.
678
855
  */
679
- borderWidth: z2.union([z2.literal(1), z2.literal(2), z2.literal(3)]),
856
+ borderWidth: z3.union([z3.literal(1), z3.literal(2), z3.literal(3)]),
680
857
  // === Family-level typography ===
681
858
  // Typography source (body or heading) — selects which theme typography pool to inherit
682
859
  typography: buttonTypographySchema.optional(),
683
860
  // Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
684
861
  // Sized variants get this as default; fixed variants inherit unless they override.
685
862
  // Size class CSS may still override at run time for sized variants.
686
- fontSize: z2.string().optional(),
863
+ fontSize: z3.string().optional(),
687
864
  // Letter spacing applied to all variants
688
865
  letterSpacing: letterSpacingSchema.optional(),
689
866
  // Italic style
690
- italic: z2.boolean().optional(),
867
+ italic: z3.boolean().optional(),
691
868
  // Padding preset (applies to sized variants without a sizes config)
692
869
  paddingPreset: buttonPaddingPresetSchema.optional(),
693
870
  hoverTransform: hoverTransformSchema,
694
871
  hoverColor: hoverColorSchema,
695
872
  // When hoverColor is 'token', this specifies which token to use
696
- hoverColorToken: z2.string().optional(),
873
+ hoverColorToken: themeColorTokenSchema.optional(),
697
874
  // Gradient settings (if any variant uses gradients)
698
875
  gradientStyle: gradientStyleSchema.optional(),
699
- gradientAngle: z2.number().min(0).max(360).optional(),
876
+ gradientAngle: z3.number().min(0).max(360).optional(),
700
877
  gradientSharpness: gradientSharpnessSchema.optional()
701
878
  });
702
- var gradientDirectionSchema = z2.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
703
- var buttonBackgroundSchema = z2.discriminatedUnion("type", [
704
- z2.object({ type: z2.literal("solid"), colorToken: z2.string() }),
705
- z2.object({
706
- type: z2.literal("gradient"),
707
- stops: z2.array(z2.string()).min(2),
879
+ var gradientDirectionSchema = z3.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
880
+ var buttonBackgroundSchema = z3.discriminatedUnion("type", [
881
+ z3.object({ type: z3.literal("solid"), colorToken: themeColorTokenSchema }),
882
+ z3.object({
883
+ type: z3.literal("gradient"),
884
+ stops: z3.array(themeColorTokenSchema).min(2),
708
885
  direction: gradientDirectionSchema
709
886
  }),
710
- z2.object({ type: z2.literal("transparent") })
887
+ z3.object({ type: z3.literal("transparent") })
711
888
  ]);
712
- var effectApplicationSchema = z2.object({
713
- effectId: z2.string(),
714
- options: z2.record(z2.string(), z2.any()).optional()
889
+ var effectApplicationSchema = z3.object({
890
+ effectId: z3.string(),
891
+ options: z3.record(z3.string(), z3.any()).optional()
715
892
  });
716
- var buttonBorderSchema = z2.object({
717
- widthClass: z2.string(),
718
- colorToken: z2.string()
893
+ var buttonBorderSchema = z3.object({
894
+ widthClass: z3.string(),
895
+ colorToken: themeColorTokenSchema
719
896
  });
720
- var variantShadowSchema = z2.object({
721
- elevation: z2.enum(["none", "low", "medium", "high"]),
722
- softness: z2.enum(["crisp", "soft", "hard"]).nullable(),
723
- position: z2.enum(["bottom", "bottom-right"]).default("bottom")
897
+ var variantShadowSchema = z3.object({
898
+ elevation: z3.enum(["none", "low", "medium", "high"]),
899
+ softness: z3.enum(["crisp", "soft", "hard"]).nullable(),
900
+ position: z3.enum(["bottom", "bottom-right"]).default("bottom")
724
901
  });
725
- var variantEffectsSchema = z2.object({
726
- base: z2.array(effectApplicationSchema).optional(),
727
- hover: z2.array(effectApplicationSchema).optional(),
728
- active: z2.array(effectApplicationSchema).optional(),
729
- focus: z2.array(effectApplicationSchema).optional()
902
+ var variantEffectsSchema = z3.object({
903
+ base: z3.array(effectApplicationSchema).optional(),
904
+ hover: z3.array(effectApplicationSchema).optional(),
905
+ active: z3.array(effectApplicationSchema).optional(),
906
+ focus: z3.array(effectApplicationSchema).optional()
730
907
  });
731
- var variantSizeOverridesSchema = z2.object({
908
+ var variantSizeOverridesSchema = z3.object({
732
909
  sm: buttonSizeConfigSchema.optional(),
733
910
  md: buttonSizeConfigSchema.optional(),
734
911
  lg: buttonSizeConfigSchema.optional(),
735
912
  xl: buttonSizeConfigSchema.optional()
736
913
  });
737
- var buttonVariantSchema = z2.object({
738
- id: z2.string(),
739
- name: z2.string().min(1).max(20),
740
- enabled: z2.boolean(),
914
+ var buttonVariantSchema = z3.object({
915
+ id: z3.string(),
916
+ name: z3.string().min(1).max(20),
917
+ enabled: z3.boolean(),
741
918
  priority: prioritySchema,
742
919
  // Base appearance (token-based)
743
920
  background: buttonBackgroundSchema,
744
- textColorToken: z2.string(),
921
+ textColorToken: themeColorTokenSchema,
745
922
  /** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
746
- borderRadius: z2.string().optional(),
923
+ borderRadius: z3.string().optional(),
747
924
  // Optional shadow override (uses theme.shadow if not specified)
748
925
  shadow: variantShadowSchema.optional(),
749
926
  // Border (optional)
750
927
  border: buttonBorderSchema.optional(),
751
928
  // Hover background token (per-variant override, takes precedence over global hoverColorToken)
752
- hoverBackgroundToken: z2.string().optional(),
929
+ hoverBackgroundToken: z3.string().optional(),
753
930
  // Effect composition
754
931
  effects: variantEffectsSchema.optional(),
755
932
  // Per-variant size overrides — see VariantSizeOverrides
756
933
  sizes: variantSizeOverridesSchema.optional()
757
934
  });
758
- var buttonSystemSchema = z2.object({
935
+ var buttonSystemSchema = z3.object({
759
936
  global: buttonGlobalSettingsSchema,
760
- variants: z2.array(buttonVariantSchema).min(1).max(6),
937
+ variants: z3.array(buttonVariantSchema).min(1).max(6),
761
938
  sizes: buttonSizesSchema.optional()
762
939
  });
763
940
 
764
941
  // ../theme-core/src/site-styles/styleTags.ts
765
- import { z as z3 } from "zod";
942
+ import { z as z4 } from "zod";
766
943
  var STYLE_AXIS_VALUES = {
767
944
  tone: ["minimal", "classic", "bold"],
768
945
  energy: ["calm", "vibrant"],
769
946
  motion: ["subtle", "standard", "expressive"],
770
947
  era: ["editorial", "modern", "organic", "technical", "retro"]
771
948
  };
772
- var styleTagsSchema = z3.object({
773
- tone: z3.enum(STYLE_AXIS_VALUES.tone).optional(),
774
- energy: z3.enum(STYLE_AXIS_VALUES.energy).optional(),
775
- motion: z3.enum(STYLE_AXIS_VALUES.motion).optional(),
776
- era: z3.enum(STYLE_AXIS_VALUES.era).optional()
949
+ var styleTagsSchema = z4.object({
950
+ tone: z4.enum(STYLE_AXIS_VALUES.tone).optional(),
951
+ energy: z4.enum(STYLE_AXIS_VALUES.energy).optional(),
952
+ motion: z4.enum(STYLE_AXIS_VALUES.motion).optional(),
953
+ era: z4.enum(STYLE_AXIS_VALUES.era).optional()
777
954
  });
778
955
 
779
956
  // ../theme-core/src/buttons/personalities/types.ts
@@ -783,11 +960,11 @@ function asButtonPersonalityId(value) {
783
960
  }
784
961
  return value;
785
962
  }
786
- var buttonPersonalityIdSchema = z4.string().min(1).transform((value) => asButtonPersonalityId(value));
787
- var buttonPersonalitySchema = z4.object({
963
+ var buttonPersonalityIdSchema = z5.string().min(1).transform((value) => asButtonPersonalityId(value));
964
+ var buttonPersonalitySchema = z5.object({
788
965
  id: buttonPersonalityIdSchema,
789
- name: z4.string().min(1),
790
- description: z4.string().min(1),
966
+ name: z5.string().min(1),
967
+ description: z5.string().min(1),
791
968
  tags: styleTagsSchema,
792
969
  buttonSystem: buttonSystemSchema
793
970
  });
@@ -1432,51 +1609,51 @@ var personalitiesById = new Map(
1432
1609
  );
1433
1610
 
1434
1611
  // ../theme-core/src/palette/variants/types.ts
1435
- import { z as z16 } from "zod";
1612
+ import { z as z18 } from "zod";
1436
1613
 
1437
1614
  // ../theme-core/src/schema.ts
1438
- import { z as z15 } from "zod";
1615
+ import { z as z17 } from "zod";
1439
1616
 
1440
1617
  // ../theme-core/src/lib/media.ts
1441
- import z5 from "zod";
1442
- var hotspotSchema = z5.object({
1443
- x: z5.number().min(0).max(1),
1444
- y: z5.number().min(0).max(1),
1445
- radius: z5.number().optional()
1618
+ import z6 from "zod";
1619
+ var hotspotSchema = z6.object({
1620
+ x: z6.number().min(0).max(1),
1621
+ y: z6.number().min(0).max(1),
1622
+ radius: z6.number().optional()
1446
1623
  });
1447
- var rotationSchema = z5.union([z5.literal(0), z5.literal(90), z5.literal(180), z5.literal(270)]);
1448
- var rectSchema = z5.tuple([z5.number(), z5.number(), z5.number(), z5.number()]);
1449
- var aspectCropSchema = z5.object({
1450
- aspect: z5.preprocess((value) => value == null ? void 0 : value, z5.string().optional()),
1451
- rect: z5.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
1452
- hotspot: z5.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
1453
- rotation: z5.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
1624
+ var rotationSchema = z6.union([z6.literal(0), z6.literal(90), z6.literal(180), z6.literal(270)]);
1625
+ var rectSchema = z6.tuple([z6.number(), z6.number(), z6.number(), z6.number()]);
1626
+ var aspectCropSchema = z6.object({
1627
+ aspect: z6.preprocess((value) => value == null ? void 0 : value, z6.string().optional()),
1628
+ rect: z6.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
1629
+ hotspot: z6.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
1630
+ rotation: z6.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
1454
1631
  });
1455
- var transformSchema = z5.object({
1456
- aspectCrops: z5.preprocess((value) => {
1632
+ var transformSchema = z6.object({
1633
+ aspectCrops: z6.preprocess((value) => {
1457
1634
  if (!value || typeof value !== "object" || Array.isArray(value)) {
1458
1635
  return void 0;
1459
1636
  }
1460
1637
  return value;
1461
- }, z5.record(z5.string(), aspectCropSchema.catch({}))).optional(),
1638
+ }, z6.record(z6.string(), aspectCropSchema.catch({}))).optional(),
1462
1639
  rect: rectSchema.optional(),
1463
1640
  hotspot: hotspotSchema.optional(),
1464
1641
  rotation: rotationSchema.optional()
1465
1642
  });
1466
- var mediaSchema = z5.object({
1467
- type: z5.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
1468
- purpose: z5.string().optional(),
1469
- placeholder: z5.boolean().default(true).optional(),
1470
- assetId: z5.string().optional(),
1471
- identifier: z5.string().optional(),
1472
- src: z5.string().optional(),
1473
- alt: z5.string().optional(),
1474
- filename: z5.string().optional(),
1475
- mimeType: z5.string().optional(),
1476
- width: z5.number().optional(),
1477
- height: z5.number().optional(),
1478
- storageBucket: z5.string().optional(),
1479
- storagePath: z5.string().optional(),
1643
+ var mediaSchema = z6.object({
1644
+ type: z6.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
1645
+ purpose: z6.string().optional(),
1646
+ placeholder: z6.boolean().default(true).optional(),
1647
+ assetId: z6.string().optional(),
1648
+ identifier: z6.string().optional(),
1649
+ src: z6.string().optional(),
1650
+ alt: z6.string().optional(),
1651
+ filename: z6.string().optional(),
1652
+ mimeType: z6.string().optional(),
1653
+ width: z6.number().optional(),
1654
+ height: z6.number().optional(),
1655
+ storageBucket: z6.string().optional(),
1656
+ storagePath: z6.string().optional(),
1480
1657
  transform: transformSchema.optional()
1481
1658
  });
1482
1659
 
@@ -1610,43 +1787,43 @@ function getDefaultButtonVariants() {
1610
1787
  }
1611
1788
 
1612
1789
  // ../theme-core/src/cards/types.ts
1613
- import { z as z6 } from "zod";
1614
- var cardSpacingSchema = z6.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
1615
- var gradientDirectionSchema2 = z6.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
1616
- var cardBackgroundSchema = z6.discriminatedUnion("type", [
1617
- z6.object({ type: z6.literal("solid"), colorToken: z6.string() }),
1618
- z6.object({
1619
- type: z6.literal("gradient"),
1620
- fromToken: z6.string(),
1621
- toToken: z6.string(),
1790
+ import { z as z7 } from "zod";
1791
+ var cardSpacingSchema = z7.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
1792
+ var gradientDirectionSchema2 = z7.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
1793
+ var cardBackgroundSchema = z7.discriminatedUnion("type", [
1794
+ z7.object({ type: z7.literal("solid"), colorToken: themeColorTokenSchema }),
1795
+ z7.object({
1796
+ type: z7.literal("gradient"),
1797
+ fromToken: themeColorTokenSchema,
1798
+ toToken: themeColorTokenSchema,
1622
1799
  direction: gradientDirectionSchema2
1623
1800
  }),
1624
- z6.object({ type: z6.literal("transparent") })
1801
+ z7.object({ type: z7.literal("transparent") })
1625
1802
  ]);
1626
- var cardBorderSchema = z6.object({
1627
- widthClass: z6.string(),
1628
- colorToken: z6.string()
1803
+ var cardBorderSchema = z7.object({
1804
+ widthClass: z7.string(),
1805
+ colorToken: themeColorTokenSchema
1629
1806
  });
1630
- var cardVariantSchema = z6.object({
1631
- id: z6.string(),
1632
- name: z6.string().min(1).max(20),
1633
- enabled: z6.boolean(),
1634
- priority: z6.union([z6.literal(1), z6.literal(2), z6.literal(3)]),
1807
+ var cardVariantSchema = z7.object({
1808
+ id: z7.string(),
1809
+ name: z7.string().min(1).max(20),
1810
+ enabled: z7.boolean(),
1811
+ priority: z7.union([z7.literal(1), z7.literal(2), z7.literal(3)]),
1635
1812
  // Appearance (token-based)
1636
1813
  background: cardBackgroundSchema,
1637
1814
  spacing: cardSpacingSchema,
1638
1815
  // Optional overrides (uses theme defaults if not specified)
1639
- shadow: z6.object({
1640
- elevation: z6.enum(["none", "low", "medium", "high"]),
1641
- softness: z6.enum(["crisp", "soft", "hard"]).nullable(),
1642
- position: z6.enum(["bottom", "bottom-right"]).default("bottom")
1816
+ shadow: z7.object({
1817
+ elevation: z7.enum(["none", "low", "medium", "high"]),
1818
+ softness: z7.enum(["crisp", "soft", "hard"]).nullable(),
1819
+ position: z7.enum(["bottom", "bottom-right"]).default("bottom")
1643
1820
  }).optional(),
1644
- corners: z6.enum(["square", "soft", "rounded", "pill"]).optional(),
1821
+ corners: z7.enum(["square", "soft", "rounded", "pill"]).optional(),
1645
1822
  // Border (optional)
1646
1823
  border: cardBorderSchema.optional()
1647
1824
  });
1648
- var cardSystemSchema = z6.object({
1649
- variants: z6.array(cardVariantSchema).min(1).max(3)
1825
+ var cardSystemSchema = z7.object({
1826
+ variants: z7.array(cardVariantSchema).min(1).max(3)
1650
1827
  });
1651
1828
 
1652
1829
  // ../theme-core/src/cards/core.ts
@@ -1768,8 +1945,8 @@ function getDefaultCardVariants() {
1768
1945
  }
1769
1946
 
1770
1947
  // ../theme-core/src/accordions/types.ts
1771
- import { z as z7 } from "zod";
1772
- var accordionIconSchema = z7.enum([
1948
+ import { z as z8 } from "zod";
1949
+ var accordionIconSchema = z8.enum([
1773
1950
  "plus-minus",
1774
1951
  // + becomes - (swap or rotate 90°)
1775
1952
  "chevron",
@@ -1781,180 +1958,179 @@ var accordionIconSchema = z7.enum([
1781
1958
  "circle-plus-minus"
1782
1959
  // ⊕ becomes ⊖ (swap with fade)
1783
1960
  ]);
1784
- var accordionSystemSchema = z7.object({
1961
+ var accordionSystemSchema = z8.object({
1785
1962
  // Visual styling (solid color only - gradients can be added later if needed)
1786
- background: z7.object({
1787
- type: z7.literal("solid"),
1788
- colorToken: z7.string()
1963
+ background: z8.object({
1964
+ type: z8.literal("solid"),
1965
+ colorToken: themeColorTokenSchema
1789
1966
  }),
1790
1967
  // Spacing (padding inside items)
1791
- spacing: z7.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
1968
+ spacing: z8.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
1792
1969
  // Border radius (null = inherit from theme.corners)
1793
- corners: z7.enum(["square", "soft", "rounded", "pill"]).nullable(),
1970
+ corners: z8.enum(["square", "soft", "rounded", "pill"]).nullable(),
1794
1971
  // Border styling (null = inherit from theme.border)
1795
- border: z7.object({
1796
- widthClass: z7.string(),
1972
+ border: z8.object({
1973
+ widthClass: z8.string(),
1797
1974
  // e.g., 'border', 'border-2', 'border-0'
1798
- colorToken: z7.string()
1975
+ colorToken: themeColorTokenSchema
1799
1976
  }).nullable(),
1800
1977
  // Shadow (null = inherit from theme.shadow)
1801
- shadow: z7.object({
1802
- elevation: z7.enum(["none", "low", "medium", "high"]),
1803
- softness: z7.enum(["soft", "crisp", "hard"]).nullable(),
1804
- position: z7.enum(["bottom", "bottom-right"])
1978
+ shadow: z8.object({
1979
+ elevation: z8.enum(["none", "low", "medium", "high"]),
1980
+ softness: z8.enum(["soft", "crisp", "hard"]).nullable(),
1981
+ position: z8.enum(["bottom", "bottom-right"])
1805
1982
  }).nullable(),
1806
1983
  // Icon style and animation
1807
- icon: z7.object({
1984
+ icon: z8.object({
1808
1985
  style: accordionIconSchema,
1809
- position: z7.enum(["left", "right"]),
1810
- size: z7.enum(["sm", "md", "lg"])
1986
+ position: z8.enum(["left", "right"]),
1987
+ size: z8.enum(["sm", "md", "lg"])
1811
1988
  }),
1812
1989
  // Trigger (question) styling
1813
- trigger: z7.object({
1814
- textColorToken: z7.string(),
1815
- fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).nullable()
1990
+ trigger: z8.object({
1991
+ textColorToken: themeColorTokenSchema,
1992
+ fontWeight: z8.enum(["regular", "medium", "semibold", "bold"]).nullable()
1816
1993
  // null = inherit from theme
1817
1994
  }),
1818
1995
  // Hover state styling
1819
- hover: z7.object({
1820
- backgroundColorToken: z7.string().optional(),
1821
- textColorToken: z7.string().optional(),
1822
- borderColorToken: z7.string().optional()
1996
+ hover: z8.object({
1997
+ backgroundColorToken: themeColorTokenSchema.optional(),
1998
+ textColorToken: themeColorTokenSchema.optional(),
1999
+ borderColorToken: themeColorTokenSchema.optional()
1823
2000
  }),
1824
2001
  // Content (answer) styling
1825
- content: z7.object({
1826
- textColorToken: z7.string()
2002
+ content: z8.object({
2003
+ textColorToken: themeColorTokenSchema
1827
2004
  })
1828
2005
  });
1829
2006
 
1830
2007
  // ../theme-core/src/inputs/types.ts
1831
- import { z as z8 } from "zod";
1832
- var inputSystemSchema = z8.object({
2008
+ import { z as z9 } from "zod";
2009
+ var inputSystemSchema = z9.object({
1833
2010
  // Base styling (applied to all inputs)
1834
- base: z8.object({
1835
- background: z8.union([
1836
- z8.object({
1837
- type: z8.literal("solid"),
1838
- colorToken: z8.string()
2011
+ base: z9.object({
2012
+ background: z9.union([
2013
+ z9.object({
2014
+ type: z9.literal("solid"),
2015
+ colorToken: themeColorTokenSchema
1839
2016
  }),
1840
- z8.object({
1841
- type: z8.literal("transparent")
2017
+ z9.object({
2018
+ type: z9.literal("transparent")
1842
2019
  })
1843
2020
  ]),
1844
- textColorToken: z8.string(),
1845
- border: z8.object({
1846
- widthClass: z8.string(),
2021
+ textColorToken: themeColorTokenSchema,
2022
+ border: z9.object({
2023
+ widthClass: z9.string(),
1847
2024
  // e.g., 'border', 'border-2'
1848
- colorToken: z8.string(),
1849
- style: z8.enum(["all", "underline"]).optional()
2025
+ colorToken: themeColorTokenSchema,
2026
+ style: z9.enum(["all", "underline"]).optional()
1850
2027
  }),
1851
- corners: z8.enum(["square", "soft", "rounded", "pill"]).nullable(),
2028
+ corners: z9.enum(["square", "soft", "rounded", "pill"]).nullable(),
1852
2029
  // null = inherit from theme.corners
1853
- shadow: z8.object({
1854
- elevation: z8.enum(["none", "low", "medium"]),
1855
- softness: z8.enum(["soft", "crisp", "hard"]).nullable()
2030
+ shadow: z9.object({
2031
+ elevation: z9.enum(["none", "low", "medium"]),
2032
+ softness: z9.enum(["soft", "crisp", "hard"]).nullable()
1856
2033
  }).nullable(),
1857
- spacing: z8.enum(["compact", "cozy", "medium", "comfortable"]),
2034
+ spacing: z9.enum(["compact", "cozy", "medium", "comfortable"]),
1858
2035
  // padding inside inputs
1859
- fontSize: z8.enum(["sm", "base", "lg"])
2036
+ fontSize: z9.enum(["sm", "base", "lg"])
1860
2037
  }),
1861
2038
  // Label styling
1862
- label: z8.object({
1863
- textColorToken: z8.string(),
1864
- fontWeight: z8.enum(["regular", "medium", "semibold", "bold", "black"]),
1865
- fontSize: z8.enum(["2xs", "xs", "sm", "base"]),
1866
- textTransform: z8.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
1867
- letterSpacing: z8.enum(["normal", "wide", "wider", "widest"]).optional(),
1868
- opacity: z8.number().min(0.2).max(1).optional()
2039
+ label: z9.object({
2040
+ textColorToken: themeColorTokenSchema,
2041
+ fontWeight: z9.enum(["regular", "medium", "semibold", "bold", "black"]),
2042
+ fontSize: z9.enum(["2xs", "xs", "sm", "base"]),
2043
+ textTransform: z9.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
2044
+ letterSpacing: z9.enum(["normal", "wide", "wider", "widest"]).optional(),
2045
+ opacity: z9.number().min(0.2).max(1).optional()
1869
2046
  }),
1870
2047
  // Focus state
1871
- focus: z8.object({
1872
- ringColorToken: z8.string(),
1873
- ringWidth: z8.enum(["0", "1", "2", "3"]),
1874
- borderColorToken: z8.string().optional()
2048
+ focus: z9.object({
2049
+ ringColorToken: themeColorTokenSchema,
2050
+ ringWidth: z9.enum(["0", "1", "2", "3"]),
2051
+ borderColorToken: themeColorTokenSchema.optional()
1875
2052
  // Change border color on focus
1876
2053
  }),
1877
2054
  // Error state (for validation feedback)
1878
- error: z8.object({
1879
- borderColorToken: z8.string(),
1880
- textColorToken: z8.string()
2055
+ error: z9.object({
2056
+ borderColorToken: themeColorTokenSchema,
2057
+ textColorToken: themeColorTokenSchema
1881
2058
  }),
1882
2059
  // Disabled state
1883
- disabled: z8.object({
1884
- backgroundColorToken: z8.string(),
1885
- textColorToken: z8.string(),
1886
- opacity: z8.number().min(0.3).max(0.7)
2060
+ disabled: z9.object({
2061
+ backgroundColorToken: themeColorTokenSchema,
2062
+ textColorToken: themeColorTokenSchema,
2063
+ opacity: z9.number().min(0.3).max(0.7)
1887
2064
  })
1888
2065
  });
1889
2066
 
1890
2067
  // ../theme-core/src/gradients/types.ts
1891
- import { z as z9 } from "zod";
1892
- var gradientStopSchema = z9.object({
1893
- color: z9.string(),
1894
- // Theme color token name (e.g., 'primary-500')
1895
- position: z9.number().min(0).max(100)
2068
+ import { z as z10 } from "zod";
2069
+ var gradientStopSchema = z10.object({
2070
+ color: themeColorTokenSchema,
2071
+ position: z10.number().min(0).max(100)
1896
2072
  // Percentage 0-100
1897
2073
  });
1898
- var gradientConfigSchema = z9.object({
1899
- type: z9.enum(["linear", "radial"]),
1900
- angle: z9.number().min(0).max(360).optional(),
2074
+ var gradientConfigSchema = z10.object({
2075
+ type: z10.enum(["linear", "radial"]),
2076
+ angle: z10.number().min(0).max(360).optional(),
1901
2077
  // For linear gradients (degrees)
1902
- position: z9.string().optional(),
2078
+ position: z10.string().optional(),
1903
2079
  // For radial gradients ('center', 'top left', etc.)
1904
- stops: z9.array(gradientStopSchema).min(2)
2080
+ stops: z10.array(gradientStopSchema).min(2)
1905
2081
  });
1906
2082
 
1907
2083
  // ../theme-core/src/navigation/types.ts
1908
- import { z as z11 } from "zod";
2084
+ import { z as z12 } from "zod";
1909
2085
 
1910
2086
  // ../theme-core/src/interactive/baseSchema.ts
1911
- import { z as z10 } from "zod";
1912
- var interactiveTypographySchema = z10.object({
2087
+ import { z as z11 } from "zod";
2088
+ var interactiveTypographySchema = z11.object({
1913
2089
  /** Font family source */
1914
- typography: z10.enum(["body", "heading"]).default("body"),
2090
+ typography: z11.enum(["body", "heading"]).default("body"),
1915
2091
  /** Font weight */
1916
- fontWeight: z10.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
2092
+ fontWeight: z11.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
1917
2093
  /** Text transform */
1918
- textTransform: z10.enum(["none", "uppercase", "capitalize"]).default("none"),
2094
+ textTransform: z11.enum(["none", "uppercase", "capitalize"]).default("none"),
1919
2095
  /** Italic style */
1920
- italic: z10.boolean().default(false)
2096
+ italic: z11.boolean().default(false)
1921
2097
  });
1922
- var effectApplicationSchema2 = z10.object({
2098
+ var effectApplicationSchema2 = z11.object({
1923
2099
  /** Effect preset ID */
1924
- effectId: z10.string(),
2100
+ effectId: z11.string(),
1925
2101
  /** User-provided customization options */
1926
- options: z10.record(z10.string(), z10.any()).optional()
2102
+ options: z11.record(z11.string(), z11.any()).optional()
1927
2103
  });
1928
- var effectCompositionSchema = z10.object({
2104
+ var effectCompositionSchema = z11.object({
1929
2105
  /** Effects always applied */
1930
- base: z10.array(effectApplicationSchema2).optional(),
2106
+ base: z11.array(effectApplicationSchema2).optional(),
1931
2107
  /** Effects applied on hover */
1932
- hover: z10.array(effectApplicationSchema2).optional(),
2108
+ hover: z11.array(effectApplicationSchema2).optional(),
1933
2109
  /** Effects applied on active/pressed */
1934
- active: z10.array(effectApplicationSchema2).optional(),
2110
+ active: z11.array(effectApplicationSchema2).optional(),
1935
2111
  /** Effects applied on focus */
1936
- focus: z10.array(effectApplicationSchema2).optional()
2112
+ focus: z11.array(effectApplicationSchema2).optional()
1937
2113
  });
1938
2114
 
1939
2115
  // ../theme-core/src/navigation/types.ts
1940
- var navLinkPaddingSchema = z11.enum(["none", "compact", "default"]);
1941
- var navLinkPaddingXSchema = z11.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1942
- var navLinkBorderRadiusSchema = z11.enum(["none", "sm", "md", "full"]);
1943
- var navLinkTextSizeSchema = z11.enum(["xs", "sm", "base", "lg"]);
1944
- var navLinkLetterSpacingSchema = z11.enum(["normal", "wide", "wider", "widest"]);
1945
- var navLinkStyleSchema = z11.object({
2116
+ var navLinkPaddingSchema = z12.enum(["none", "compact", "default"]);
2117
+ var navLinkPaddingXSchema = z12.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2118
+ var navLinkBorderRadiusSchema = z12.enum(["none", "sm", "md", "full"]);
2119
+ var navLinkTextSizeSchema = z12.enum(["xs", "sm", "base", "lg"]);
2120
+ var navLinkLetterSpacingSchema = z12.enum(["normal", "wide", "wider", "widest"]);
2121
+ var navLinkStyleSchema = z12.object({
1946
2122
  /** Display name for the style */
1947
- name: z11.string().min(1).max(30).optional(),
2123
+ name: z12.string().min(1).max(30).optional(),
1948
2124
  /** Typography settings (inherited from interactive base) */
1949
2125
  ...interactiveTypographySchema.shape,
1950
2126
  /** Text color token */
1951
- colorToken: z11.string().default("text"),
2127
+ colorToken: themeColorTokenSchema.default("text"),
1952
2128
  /** Optional text size override */
1953
2129
  textSize: navLinkTextSizeSchema.optional(),
1954
2130
  /** Optional letter spacing override */
1955
2131
  letterSpacing: navLinkLetterSpacingSchema.optional(),
1956
2132
  /** Hover/active color token (for color-change effects) */
1957
- hoverColorToken: z11.string().nullable().optional(),
2133
+ hoverColorToken: themeColorTokenSchema.nullable().optional(),
1958
2134
  /** Padding preset */
1959
2135
  padding: navLinkPaddingSchema.default("compact"),
1960
2136
  /** Horizontal padding override (overrides horizontal component of padding preset) */
@@ -1966,7 +2142,7 @@ var navLinkStyleSchema = z11.object({
1966
2142
  });
1967
2143
 
1968
2144
  // ../theme-core/src/customCss/validation.ts
1969
- import { z as z12 } from "zod";
2145
+ import { z as z13 } from "zod";
1970
2146
  var FORBIDDEN_SELECTORS = [":root", "html", "body"];
1971
2147
  var UNIVERSAL_SELECTOR = "*";
1972
2148
  var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
@@ -2008,7 +2184,7 @@ function containsForbiddenSelector(selector) {
2008
2184
  }
2009
2185
  return false;
2010
2186
  }
2011
- var selectorSchema = z12.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
2187
+ var selectorSchema = z13.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
2012
2188
  (s) => !containsForbiddenSelector(s),
2013
2189
  { message: "Global selectors (:root, html, body, *) are not allowed" }
2014
2190
  );
@@ -2018,38 +2194,38 @@ function containsRemoteUrl(value) {
2018
2194
  function containsJavascriptUrl(value) {
2019
2195
  return JAVASCRIPT_URL_PATTERN.test(value);
2020
2196
  }
2021
- var declarationValueSchema = z12.string().max(500, "Declaration value too long (max 500 characters)").refine(
2197
+ var declarationValueSchema = z13.string().max(500, "Declaration value too long (max 500 characters)").refine(
2022
2198
  (v) => !containsRemoteUrl(v),
2023
2199
  { message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
2024
2200
  ).refine(
2025
2201
  (v) => !containsJavascriptUrl(v),
2026
2202
  { message: "javascript: URLs are not allowed" }
2027
2203
  );
2028
- var declarationsSchema = z12.record(
2029
- z12.string().min(1).max(100),
2204
+ var declarationsSchema = z13.record(
2205
+ z13.string().min(1).max(100),
2030
2206
  // property name
2031
2207
  declarationValueSchema
2032
2208
  // property value
2033
2209
  );
2034
- var customCssRuleSchema = z12.object({
2035
- id: z12.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
2210
+ var customCssRuleSchema = z13.object({
2211
+ id: z13.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
2036
2212
  selector: selectorSchema,
2037
2213
  declarations: declarationsSchema
2038
2214
  });
2039
2215
  var blockCustomCssRuleSchema = customCssRuleSchema.extend({
2040
- blockKind: z12.string().min(1, "Block kind is required").max(50, "Block kind too long")
2216
+ blockKind: z13.string().min(1, "Block kind is required").max(50, "Block kind too long")
2041
2217
  });
2042
- var customCssRulesSchema = z12.array(customCssRuleSchema).optional();
2043
- var blockCustomCssRulesSchema = z12.array(blockCustomCssRuleSchema).optional();
2218
+ var customCssRulesSchema = z13.array(customCssRuleSchema).optional();
2219
+ var blockCustomCssRulesSchema = z13.array(blockCustomCssRuleSchema).optional();
2044
2220
 
2045
2221
  // ../theme-core/src/customCss/atRuleValidation.ts
2046
- import { z as z13 } from "zod";
2222
+ import { z as z14 } from "zod";
2047
2223
  var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
2048
2224
  var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
2049
2225
  var BLOCKED_AT_RULES = ["@import", "@charset"];
2050
2226
  var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
2051
- var ruleIdSchema = z13.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
2052
- var nestedRuleSchema = z13.object({
2227
+ var ruleIdSchema = z14.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
2228
+ var nestedRuleSchema = z14.object({
2053
2229
  selector: selectorSchema,
2054
2230
  declarations: declarationsSchema
2055
2231
  });
@@ -2061,205 +2237,208 @@ function isValidKeyframeOffset(offset) {
2061
2237
  const value = parseInt(match[1], 10);
2062
2238
  return value >= 0 && value <= 100;
2063
2239
  }
2064
- var keyframeOffsetSchema = z13.string().transform((offset) => offset.trim()).refine(
2240
+ var keyframeOffsetSchema = z14.string().transform((offset) => offset.trim()).refine(
2065
2241
  (offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
2066
2242
  { message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
2067
2243
  ).refine(
2068
2244
  isValidKeyframeOffset,
2069
2245
  { message: "Keyframe offset must be between 0% and 100%" }
2070
2246
  );
2071
- var animationNameSchema = z13.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
2247
+ var animationNameSchema = z14.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
2072
2248
  (name) => ANIMATION_NAME_PATTERN.test(name),
2073
2249
  { message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
2074
2250
  );
2075
- var keyframeSchema = z13.object({
2251
+ var keyframeSchema = z14.object({
2076
2252
  offset: keyframeOffsetSchema,
2077
2253
  declarations: declarationsSchema
2078
2254
  });
2079
- var keyframesAtRuleSchema = z13.object({
2255
+ var keyframesAtRuleSchema = z14.object({
2080
2256
  id: ruleIdSchema,
2081
- type: z13.literal("keyframes"),
2257
+ type: z14.literal("keyframes"),
2082
2258
  name: animationNameSchema,
2083
- frames: z13.array(keyframeSchema).min(1, "At least one keyframe is required")
2259
+ frames: z14.array(keyframeSchema).min(1, "At least one keyframe is required")
2084
2260
  });
2085
- var fontFaceDeclarationsSchema = z13.record(z13.string().min(1).max(100), declarationValueSchema).refine(
2261
+ var fontFaceDeclarationsSchema = z14.record(z14.string().min(1).max(100), declarationValueSchema).refine(
2086
2262
  (decls) => "fontFamily" in decls || "font-family" in decls,
2087
2263
  { message: "font-family is required in @font-face" }
2088
2264
  );
2089
- var fontFaceAtRuleSchema = z13.object({
2265
+ var fontFaceAtRuleSchema = z14.object({
2090
2266
  id: ruleIdSchema,
2091
- type: z13.literal("font-face"),
2267
+ type: z14.literal("font-face"),
2092
2268
  declarations: fontFaceDeclarationsSchema
2093
2269
  });
2094
- var mediaQuerySchema = z13.string().min(1, "Media query is required").max(200, "Media query too long");
2095
- var mediaAtRuleSchema = z13.object({
2270
+ var mediaQuerySchema = z14.string().min(1, "Media query is required").max(200, "Media query too long");
2271
+ var mediaAtRuleSchema = z14.object({
2096
2272
  id: ruleIdSchema,
2097
- type: z13.literal("media"),
2273
+ type: z14.literal("media"),
2098
2274
  query: mediaQuerySchema,
2099
- rules: z13.array(nestedRuleSchema).min(1, "At least one rule is required")
2275
+ rules: z14.array(nestedRuleSchema).min(1, "At least one rule is required")
2100
2276
  });
2101
- var supportsConditionSchema = z13.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
2102
- var supportsAtRuleSchema = z13.object({
2277
+ var supportsConditionSchema = z14.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
2278
+ var supportsAtRuleSchema = z14.object({
2103
2279
  id: ruleIdSchema,
2104
- type: z13.literal("supports"),
2280
+ type: z14.literal("supports"),
2105
2281
  condition: supportsConditionSchema,
2106
- rules: z13.array(nestedRuleSchema).min(1, "At least one rule is required")
2282
+ rules: z14.array(nestedRuleSchema).min(1, "At least one rule is required")
2107
2283
  });
2108
2284
  function containsBlockedAtRule(css) {
2109
2285
  return BLOCKED_AT_RULE_PATTERN.test(css);
2110
2286
  }
2111
- var rawCssSchema = z13.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
2287
+ var rawCssSchema = z14.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
2112
2288
  (css) => css.trim().startsWith("@"),
2113
2289
  { message: "Raw at-rule must start with @" }
2114
2290
  ).refine(
2115
2291
  (css) => !containsBlockedAtRule(css),
2116
2292
  { message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
2117
2293
  );
2118
- var rawAtRuleSchema = z13.object({
2294
+ var rawAtRuleSchema = z14.object({
2119
2295
  id: ruleIdSchema,
2120
- type: z13.literal("raw"),
2296
+ type: z14.literal("raw"),
2121
2297
  css: rawCssSchema
2122
2298
  });
2123
- var customCssAtRuleSchema = z13.discriminatedUnion("type", [
2299
+ var customCssAtRuleSchema = z14.discriminatedUnion("type", [
2124
2300
  keyframesAtRuleSchema,
2125
2301
  fontFaceAtRuleSchema,
2126
2302
  mediaAtRuleSchema,
2127
2303
  supportsAtRuleSchema,
2128
2304
  rawAtRuleSchema
2129
2305
  ]);
2130
- var customCssAtRulesSchema = z13.array(customCssAtRuleSchema).optional();
2306
+ var customCssAtRulesSchema = z14.array(customCssAtRuleSchema).optional();
2131
2307
 
2132
2308
  // ../theme-core/src/shared/componentStyles.ts
2133
- import { z as z14 } from "zod";
2134
- var componentBorderSchema = z14.object({
2135
- width: z14.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
2136
- style: z14.enum(["solid", "dashed"]).default("solid"),
2137
- colorToken: z14.string().optional()
2309
+ import { z as z15 } from "zod";
2310
+ var componentBorderSchema = z15.object({
2311
+ width: z15.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
2312
+ style: z15.enum(["solid", "dashed"]).default("solid"),
2313
+ colorToken: themeColorTokenSchema.optional()
2138
2314
  // defaults to "border" if not set
2139
2315
  });
2140
- var componentShadowSchema = z14.object({
2141
- elevation: z14.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
2316
+ var componentShadowSchema = z15.object({
2317
+ elevation: z15.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
2142
2318
  });
2143
2319
 
2320
+ // ../theme-core/src/utils/tokenOrColor.ts
2321
+ import { z as z16 } from "zod";
2322
+ var tokenOrCssColorValueSchema = z16.string();
2323
+
2144
2324
  // ../theme-core/src/schema.ts
2145
- var axesSchema = z15.object({
2146
- tone: z15.enum(["minimal", "classic", "bold"]),
2147
- energy: z15.enum(["calm", "vibrant"]),
2148
- density: z15.enum(["airy", "regular", "compact"]),
2149
- mediaBias: z15.enum(["text", "media", "mixed"]),
2150
- conversionBias: z15.enum(["low", "med", "high"]),
2151
- motion: z15.enum(["subtle", "standard", "expressive"])
2325
+ var axesSchema = z17.object({
2326
+ tone: z17.enum(["minimal", "classic", "bold"]),
2327
+ energy: z17.enum(["calm", "vibrant"]),
2328
+ density: z17.enum(["airy", "regular", "compact"]),
2329
+ mediaBias: z17.enum(["text", "media", "mixed"]),
2330
+ conversionBias: z17.enum(["low", "med", "high"]),
2331
+ motion: z17.enum(["subtle", "standard", "expressive"])
2152
2332
  });
2153
- var colourHexString = z15.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
2154
- var paletteColorSchema = z15.object({
2155
- name: z15.string().min(1),
2333
+ var colourHexString = z17.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
2334
+ var paletteColorSchema = z17.object({
2335
+ name: z17.string().min(1),
2156
2336
  hex: colourHexString
2157
2337
  });
2158
- var paletteMetaSchema = z15.object({
2159
- mode: z15.enum(["light", "dark"])
2338
+ var paletteMetaSchema = z17.object({
2339
+ mode: z17.enum(["light", "dark"])
2160
2340
  });
2161
- var paletteSchema = z15.object({
2162
- colors: z15.array(paletteColorSchema),
2341
+ var paletteSchema = z17.object({
2342
+ colors: z17.array(paletteColorSchema),
2163
2343
  meta: paletteMetaSchema
2164
2344
  });
2165
- var typographyStyleSchema = z15.object({
2166
- family: z15.string().min(1),
2167
- weight: z15.enum(["light", "regular", "medium", "semibold", "bold"]),
2168
- letterSpacing: z15.enum(["tight", "normal", "loose"]),
2169
- lineHeight: z15.enum(["normal", "relaxed", "loose"])
2345
+ var typographyStyleSchema = z17.object({
2346
+ family: z17.string().min(1),
2347
+ weight: z17.enum(["light", "regular", "medium", "semibold", "bold"]),
2348
+ letterSpacing: z17.enum(["tight", "normal", "loose"]),
2349
+ lineHeight: z17.enum(["normal", "relaxed", "loose"])
2170
2350
  });
2171
2351
  var bodyTypographyStyleSchema = typographyStyleSchema.extend({
2172
- size: z15.enum(["md", "lg", "xl"])
2352
+ size: z17.enum(["md", "lg", "xl"])
2173
2353
  });
2174
- var headingSizeSchema = z15.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
2175
- var headingTypographyOverridesSchema = z15.object({
2176
- weight: z15.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
2177
- letterSpacing: z15.enum(["tight", "normal", "loose"]).nullable().optional(),
2354
+ var headingSizeSchema = z17.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
2355
+ var headingTypographyOverridesSchema = z17.object({
2356
+ weight: z17.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
2357
+ letterSpacing: z17.enum(["tight", "normal", "loose"]).nullable().optional(),
2178
2358
  size: headingSizeSchema.nullable().optional(),
2179
- lineHeight: z15.enum(["normal", "relaxed", "loose"]).nullable().optional(),
2180
- italic: z15.boolean().nullable().optional(),
2181
- colorToken: z15.string().min(1).nullable().optional()
2182
- // Palette token name for heading color
2359
+ lineHeight: z17.enum(["normal", "relaxed", "loose"]).nullable().optional(),
2360
+ italic: z17.boolean().nullable().optional(),
2361
+ colorToken: themeColorTokenSchema.nullable().optional()
2183
2362
  });
2184
2363
  var headingTypographyStyleSchema = typographyStyleSchema.extend({
2185
- case: z15.enum(["uppercase", "normal", "smallCaps"]).nullable(),
2186
- italic: z15.boolean().nullable(),
2187
- colorToken: z15.string().min(1).nullable().optional()
2188
- // Palette token name for heading color
2364
+ case: z17.enum(["uppercase", "normal", "smallCaps"]).nullable(),
2365
+ italic: z17.boolean().nullable(),
2366
+ colorToken: themeColorTokenSchema.nullable().optional()
2189
2367
  });
2190
- var proseLinkUnderlineStyleSchema = z15.enum(["solid", "dotted", "dashed"]);
2191
- var proseLinkUnderlineThicknessSchema = z15.enum(["auto", "fromFont", "thin", "medium", "thick"]);
2192
- var proseLinkUnderlineOffsetSchema = z15.enum(["auto", "tight", "normal", "loose"]);
2193
- var proseLinkStyleSchema = z15.object({
2194
- colorToken: z15.string().min(1).optional(),
2195
- hoverColorToken: z15.string().min(1).optional(),
2196
- underline: z15.boolean().optional(),
2197
- decorationColorToken: z15.string().min(1).optional(),
2198
- hoverDecorationColorToken: z15.string().min(1).optional(),
2368
+ var proseLinkUnderlineStyleSchema = z17.enum(["solid", "dotted", "dashed"]);
2369
+ var proseLinkUnderlineThicknessSchema = z17.enum(["auto", "fromFont", "thin", "medium", "thick"]);
2370
+ var proseLinkUnderlineOffsetSchema = z17.enum(["auto", "tight", "normal", "loose"]);
2371
+ var proseLinkStyleSchema = z17.object({
2372
+ colorToken: themeColorTokenSchema.optional(),
2373
+ hoverColorToken: themeColorTokenSchema.optional(),
2374
+ underline: z17.boolean().optional(),
2375
+ decorationColorToken: themeColorTokenSchema.optional(),
2376
+ hoverDecorationColorToken: themeColorTokenSchema.optional(),
2199
2377
  underlineStyle: proseLinkUnderlineStyleSchema.optional(),
2200
2378
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
2201
2379
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
2202
2380
  });
2203
- var semanticSpacingSchema = z15.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
2204
- var boxRoundedSchema = z15.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
2205
- var boxBackgroundOverlaySchema = z15.object({
2206
- type: z15.enum(["none", "color", "gradient"]).nullable().optional(),
2207
- color: z15.string().nullable().optional(),
2208
- gradient: z15.string().nullable().optional(),
2209
- opacity: z15.number().min(0).max(1).nullable().optional()
2381
+ var semanticSpacingSchema = z17.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
2382
+ var boxRoundedSchema = z17.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
2383
+ var boxBackgroundOverlaySchema = z17.object({
2384
+ type: z17.enum(["none", "color", "gradient"]).nullable().optional(),
2385
+ color: tokenOrCssColorValueSchema.nullable().optional(),
2386
+ gradient: z17.string().nullable().optional(),
2387
+ opacity: z17.number().min(0).max(1).nullable().optional()
2210
2388
  });
2211
- var boxBackgroundSchema = z15.object({
2212
- type: z15.enum(["color", "gradient", "image"]).optional(),
2213
- color: z15.string().nullable().optional(),
2214
- gradient: z15.string().nullable().optional(),
2389
+ var boxBackgroundSchema = z17.object({
2390
+ type: z17.enum(["color", "gradient", "image"]).optional(),
2391
+ color: tokenOrCssColorValueSchema.nullable().optional(),
2392
+ gradient: z17.string().nullable().optional(),
2215
2393
  image: mediaSchema.nullable().optional(),
2216
- objectFit: z15.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
2217
- scale: z15.string().nullable().optional(),
2218
- position: z15.string().nullable().optional(),
2219
- opacity: z15.number().min(0).max(1).nullable().optional(),
2220
- motion: z15.enum(["static", "fixed-frame"]).nullable().optional(),
2394
+ objectFit: z17.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
2395
+ scale: z17.string().nullable().optional(),
2396
+ position: z17.string().nullable().optional(),
2397
+ opacity: z17.number().min(0).max(1).nullable().optional(),
2398
+ motion: z17.enum(["static", "fixed-frame"]).nullable().optional(),
2221
2399
  overlay: boxBackgroundOverlaySchema.nullable().optional(),
2222
- textColor: z15.string().nullable().optional(),
2223
- headingColor: z15.string().nullable().optional()
2400
+ textColor: tokenOrCssColorValueSchema.nullable().optional(),
2401
+ headingColor: tokenOrCssColorValueSchema.nullable().optional()
2224
2402
  });
2225
- var sectionStylesOverrideSchema = z15.object({
2403
+ var sectionStylesOverrideSchema = z17.object({
2226
2404
  background: boxBackgroundSchema.nullable().optional(),
2227
2405
  spacing: semanticSpacingSchema.nullable().optional(),
2228
- minHeight: z15.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
2229
- eyebrowTreatment: z15.enum(eyebrowTreatmentValues).nullable().optional()
2406
+ minHeight: z17.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
2407
+ tileTreatment: z17.enum(tileTreatmentValues).nullable().optional(),
2408
+ eyebrowTreatment: z17.enum(eyebrowTreatmentValues).nullable().optional()
2230
2409
  });
2231
- var containerStylesOverrideSchema = z15.object({
2410
+ var containerStylesOverrideSchema = z17.object({
2232
2411
  background: boxBackgroundSchema.nullable().optional(),
2233
2412
  spacing: semanticSpacingSchema.nullable().optional(),
2234
- raised: z15.boolean().nullable().optional(),
2413
+ raised: z17.boolean().nullable().optional(),
2235
2414
  rounded: boxRoundedSchema.nullable().optional(),
2236
- fullWidth: z15.boolean().nullable().optional()
2415
+ fullWidth: z17.boolean().nullable().optional()
2237
2416
  });
2238
- var cardBorderOverrideSchema = z15.object({
2239
- enabled: z15.boolean().nullable().optional(),
2240
- width: z15.enum(["none", "1", "2", "3"]).nullable().optional(),
2241
- colorToken: z15.string().nullable().optional()
2417
+ var cardBorderOverrideSchema = z17.object({
2418
+ enabled: z17.boolean().nullable().optional(),
2419
+ width: z17.enum(["none", "1", "2", "3"]).nullable().optional(),
2420
+ colorToken: themeColorTokenSchema.nullable().optional()
2242
2421
  });
2243
- var cardStylesOverrideSchema = z15.object({
2422
+ var cardStylesOverrideSchema = z17.object({
2244
2423
  background: boxBackgroundSchema.nullable().optional(),
2245
2424
  border: cardBorderOverrideSchema.nullable().optional(),
2246
2425
  spacing: semanticSpacingSchema.nullable().optional(),
2247
- raised: z15.boolean().nullable().optional(),
2426
+ raised: z17.boolean().nullable().optional(),
2248
2427
  rounded: boxRoundedSchema.nullable().optional(),
2249
- treatment: z15.enum(["accent-quote"]).nullable().optional()
2428
+ treatment: z17.enum(["accent-quote"]).nullable().optional()
2250
2429
  });
2251
- var blockStyleOverridesSchema = z15.object({
2430
+ var blockStyleOverridesSchema = z17.object({
2252
2431
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
2253
2432
  containerStyles: containerStylesOverrideSchema.nullable().optional(),
2254
2433
  cardStyles: cardStylesOverrideSchema.nullable().optional()
2255
2434
  });
2256
- var blockThemeOverrideSchema = z15.object({
2257
- typography: z15.object({
2435
+ var blockThemeOverrideSchema = z17.object({
2436
+ typography: z17.object({
2258
2437
  proseLinkStyle: proseLinkStyleSchema.optional()
2259
2438
  }).optional(),
2260
2439
  styles: blockStyleOverridesSchema.optional()
2261
2440
  });
2262
- var typographyScaleSchema = z15.enum([
2441
+ var typographyScaleSchema = z17.enum([
2263
2442
  // New intuitive names
2264
2443
  "compact",
2265
2444
  // ratio 1.2 (was minorThird)
@@ -2272,9 +2451,9 @@ var typographyScaleSchema = z15.enum([
2272
2451
  "majorThird",
2273
2452
  "perfectFourth"
2274
2453
  ]);
2275
- var typographySchema = z15.object({
2454
+ var typographySchema = z17.object({
2276
2455
  body: bodyTypographyStyleSchema,
2277
- headings: z15.object({
2456
+ headings: z17.object({
2278
2457
  default: headingTypographyStyleSchema,
2279
2458
  h1: headingTypographyOverridesSchema,
2280
2459
  h2: headingTypographyOverridesSchema,
@@ -2287,122 +2466,115 @@ var typographySchema = z15.object({
2287
2466
  scale: typographyScaleSchema,
2288
2467
  proseLinkStyle: proseLinkStyleSchema.optional()
2289
2468
  });
2290
- var spaceSchema = z15.enum(["comfortable", "standard", "dense"]);
2291
- var corners = z15.enum(["square", "soft", "rounded", "pill"]);
2292
- var shadow = z15.object({
2293
- elevation: z15.enum(["none", "low", "medium", "high"]),
2294
- softness: z15.enum(["crisp", "soft", "hard"]).nullable(),
2295
- position: z15.enum(["bottom", "bottom-right"]).default("bottom")
2469
+ var spaceSchema = z17.enum(["comfortable", "standard", "dense"]);
2470
+ var corners = z17.enum(["square", "soft", "rounded", "pill"]);
2471
+ var shadow = z17.object({
2472
+ elevation: z17.enum(["none", "low", "medium", "high"]),
2473
+ softness: z17.enum(["crisp", "soft", "hard"]).nullable(),
2474
+ position: z17.enum(["bottom", "bottom-right"]).default("bottom")
2296
2475
  });
2297
- var border = z15.object({
2298
- width: z15.enum(["none", "hairline", "thin", "thick"]),
2299
- style: z15.enum(["solid", "dashed"])
2476
+ var border = z17.object({
2477
+ width: z17.enum(["none", "hairline", "thin", "thick"]),
2478
+ style: z17.enum(["solid", "dashed"])
2300
2479
  });
2301
- var motion = z15.object({
2302
- level: z15.enum(["off", "low", "medium", "high"]),
2303
- easing: z15.enum(["standard", "snappy", "gentle"]).nullable()
2480
+ var motion = z17.object({
2481
+ level: z17.enum(["off", "low", "medium", "high"]),
2482
+ easing: z17.enum(["standard", "snappy", "gentle"]).nullable()
2304
2483
  });
2305
- var buttonStyle = z15.object({
2484
+ var buttonStyle = z17.object({
2306
2485
  shape: corners
2307
2486
  // Used for --radius-control CSS variable
2308
2487
  });
2309
- var cardStyle = z15.object({
2310
- elevation: z15.enum(["none", "low", "medium", "high"]),
2311
- border: z15.enum(["none", "subtle", "defined"]),
2488
+ var cardStyle = z17.object({
2489
+ elevation: z17.enum(["none", "low", "medium", "high"]),
2490
+ border: z17.enum(["none", "subtle", "defined"]),
2312
2491
  shape: corners,
2313
- headerStyle: z15.enum(["plain", "accentBar", "subtleBg"]).nullable(),
2314
- mediaTreatment: z15.enum(["square", "rounded", "bleed"]).nullable()
2492
+ headerStyle: z17.enum(["plain", "accentBar", "subtleBg"]).nullable(),
2493
+ mediaTreatment: z17.enum(["square", "rounded", "bleed"]).nullable()
2315
2494
  });
2316
- var inputStyle = z15.object({
2495
+ var inputStyle = z17.object({
2317
2496
  shape: corners,
2318
- border: z15.enum(["subtle", "defined", "underline"]),
2319
- focus: z15.enum(["glow", "ring", "underline"]),
2320
- label: z15.enum(["inside", "above"])
2497
+ border: z17.enum(["subtle", "defined", "underline"]),
2498
+ focus: z17.enum(["glow", "ring", "underline"]),
2499
+ label: z17.enum(["inside", "above"])
2321
2500
  });
2322
- var headerVariant = z15.enum(["classic", "centered", "transparent", "floating", "editorial"]);
2323
- var headerPositioning = z15.enum(["static", "sticky", "fixed"]);
2324
- var headerNavStyle = z15.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
2325
- var navFontWeight = z15.enum(["regular", "medium", "semibold", "bold"]);
2326
- var headerMaxWidth = z15.enum(["container", "full"]);
2327
- var headerContainerSchema = z15.object({
2328
- rounded: z15.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
2329
- border: z15.boolean().default(true),
2330
- shadow: z15.boolean().default(true),
2331
- padding: z15.enum(["sm", "md", "lg"]).default("md"),
2332
- tint: z15.string().nullable().optional(),
2333
- opacity: z15.number().min(0).max(1).default(0.12)
2501
+ var headerVariant = z17.enum(["classic", "centered", "transparent", "floating", "editorial"]);
2502
+ var headerPositioning = z17.enum(["static", "sticky", "fixed"]);
2503
+ var headerNavStyle = z17.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
2504
+ var navFontWeight = z17.enum(["regular", "medium", "semibold", "bold"]);
2505
+ var headerMaxWidth = z17.enum(["container", "full"]);
2506
+ var headerContainerSchema = z17.object({
2507
+ rounded: z17.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
2508
+ border: z17.boolean().default(true),
2509
+ shadow: z17.boolean().default(true),
2510
+ padding: z17.enum(["sm", "md", "lg"]).default("md"),
2511
+ tint: z17.string().nullable().optional(),
2512
+ opacity: z17.number().min(0).max(1).default(0.12)
2334
2513
  }).optional();
2335
2514
  var headerBorderSchema = componentBorderSchema.extend({
2336
- position: z15.enum(["bottom", "top", "both", "none"]).default("bottom")
2515
+ position: z17.enum(["bottom", "top", "both", "none"]).default("bottom")
2337
2516
  }).optional();
2338
- var logoStyleSchema = z15.object({
2339
- fontFamily: z15.enum(["heading", "body"]).default("heading"),
2340
- letterSpacing: z15.enum(["normal", "wide", "wider", "widest"]).default("normal"),
2341
- gradient: z15.boolean().default(false)
2517
+ var logoStyleSchema = z17.object({
2518
+ fontFamily: z17.enum(["heading", "body"]).default("heading"),
2519
+ letterSpacing: z17.enum(["normal", "wide", "wider", "widest"]).default("normal"),
2520
+ gradient: z17.boolean().default(false)
2342
2521
  }).optional();
2343
- var headerLogoTextSchema = z15.object({
2344
- mobileWrapLines: z15.union([z15.literal(1), z15.literal(2)]).optional(),
2345
- mobileMaxWidth: z15.enum(["xs", "sm", "md"]).optional(),
2346
- hideOnShrink: z15.boolean().optional()
2522
+ var headerLogoTextSchema = z17.object({
2523
+ mobileWrapLines: z17.union([z17.literal(1), z17.literal(2)]).optional(),
2524
+ mobileMaxWidth: z17.enum(["xs", "sm", "md"]).optional(),
2525
+ hideOnShrink: z17.boolean().optional()
2347
2526
  }).optional();
2348
- var navEffectsSchema = z15.object({
2349
- underlineGradient: z15.boolean().default(false),
2350
- glow: z15.boolean().default(false),
2351
- glowColor: z15.string().optional(),
2352
- neumorphic: z15.boolean().default(false)
2527
+ var navEffectsSchema = z17.object({
2528
+ underlineGradient: z17.boolean().default(false),
2529
+ glow: z17.boolean().default(false),
2530
+ glowColor: z17.string().optional(),
2531
+ neumorphic: z17.boolean().default(false)
2353
2532
  }).optional();
2354
- var dropdownStyleSchema = z15.object({
2533
+ var dropdownStyleSchema = z17.object({
2355
2534
  // Container styling
2356
- background: z15.string().default("surface"),
2357
- // color token
2358
- textColor: z15.string().default("text"),
2359
- // color token
2360
- borderColor: z15.string().nullable().default("border"),
2361
- // null = no border
2362
- shadow: z15.enum(["none", "sm", "md", "lg"]).default("md"),
2363
- borderRadius: z15.enum(["none", "sm", "md", "lg"]).default("md"),
2535
+ background: themeColorTokenSchema.default("surface"),
2536
+ textColor: themeColorTokenSchema.default("text"),
2537
+ borderColor: themeColorTokenSchema.nullable().default("border"),
2538
+ shadow: z17.enum(["none", "sm", "md", "lg"]).default("md"),
2539
+ borderRadius: z17.enum(["none", "sm", "md", "lg"]).default("md"),
2364
2540
  // Link hover states (explicit control)
2365
- hoverBackground: z15.string().nullable().optional(),
2366
- // color token, null = transparent
2367
- hoverTextColor: z15.string().nullable().optional(),
2368
- // color token, null = inherit
2541
+ hoverBackground: themeColorTokenSchema.nullable().optional(),
2542
+ hoverTextColor: themeColorTokenSchema.nullable().optional(),
2369
2543
  // Typography
2370
- textTransform: z15.enum(["none", "uppercase", "capitalize"]).default("none"),
2371
- letterSpacing: z15.enum(["normal", "wide", "wider"]).default("normal"),
2372
- fontWeight: z15.enum(["regular", "medium", "semibold", "bold"]).optional(),
2544
+ textTransform: z17.enum(["none", "uppercase", "capitalize"]).default("none"),
2545
+ letterSpacing: z17.enum(["normal", "wide", "wider"]).default("normal"),
2546
+ fontWeight: z17.enum(["regular", "medium", "semibold", "bold"]).optional(),
2373
2547
  // optional = inherit from navWeight
2374
- textSize: z15.enum(["xs", "sm", "base", "lg"]).optional()
2548
+ textSize: z17.enum(["xs", "sm", "base", "lg"]).optional()
2375
2549
  // optional = no override (browser default)
2376
2550
  }).optional();
2377
- var headerCtaGapSchema = z15.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2378
- var headerCtaTreatmentSchema = z15.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
2379
- var navContainerSchema = z15.object({
2380
- type: z15.enum(["none", "pill", "glass"]).default("none"),
2381
- tint: z15.string().nullable().optional(),
2382
- opacity: z15.number().min(0).max(1).default(0.15)
2551
+ var headerCtaGapSchema = z17.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2552
+ var headerCtaTreatmentSchema = z17.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
2553
+ var navContainerSchema = z17.object({
2554
+ type: z17.enum(["none", "pill", "glass"]).default("none"),
2555
+ tint: z17.string().nullable().optional(),
2556
+ opacity: z17.number().min(0).max(1).default(0.15)
2383
2557
  }).default({ type: "none", tint: null, opacity: 0.15 });
2384
- var headerBackgroundSchema = z15.object({
2385
- type: z15.enum(["color", "gradient", "image"]),
2386
- color: z15.string().nullable().optional(),
2558
+ var headerBackgroundSchema = z17.object({
2559
+ type: z17.enum(["color", "gradient", "image"]),
2560
+ color: tokenOrCssColorValueSchema.nullable().optional(),
2387
2561
  gradient: gradientConfigSchema.nullable().optional(),
2388
2562
  image: mediaSchema.nullable().optional(),
2389
- textColor: z15.string().nullable().optional()
2563
+ textColor: tokenOrCssColorValueSchema.nullable().optional()
2390
2564
  });
2391
- var headerSchema = z15.object({
2565
+ var headerSchema = z17.object({
2392
2566
  variant: headerVariant,
2393
2567
  positioning: headerPositioning,
2394
- shrinkOnScroll: z15.boolean(),
2568
+ shrinkOnScroll: z17.boolean(),
2395
2569
  maxWidth: headerMaxWidth,
2396
2570
  logoOverride: mediaSchema.nullable().optional(),
2397
2571
  background: headerBackgroundSchema.default({
2398
2572
  type: "color",
2399
2573
  color: "surface"
2400
2574
  }),
2401
- textColor: z15.string().nullable().optional(),
2402
- // Site title and general header text
2575
+ textColor: themeColorTokenSchema.nullable().optional(),
2403
2576
  navStyle: headerNavStyle,
2404
- navColor: z15.string().nullable().optional(),
2405
- // Nav links (inherits textColor if not set)
2577
+ navColor: themeColorTokenSchema.nullable().optional(),
2406
2578
  navWeight: navFontWeight.default("medium"),
2407
2579
  // New fields for header system enhancement
2408
2580
  container: headerContainerSchema,
@@ -2423,54 +2595,54 @@ var headerSchema = z15.object({
2423
2595
  // Optional theme-level CTA variant for header/nav CTA buttons.
2424
2596
  // Internal runtime bridge for the block renderer; prefer ctaTreatment in
2425
2597
  // authored Theme V2 concepts.
2426
- ctaVariant: z15.string().min(1).optional(),
2598
+ ctaVariant: z17.string().min(1).optional(),
2427
2599
  // Dropdown menu styling (nav dropdowns and mobile drawer)
2428
2600
  dropdownStyle: dropdownStyleSchema
2429
2601
  });
2430
- var footerVariant = z15.enum(["simple", "columns", "split"]);
2431
- var footerMaxWidth = z15.enum(["container", "full"]);
2432
- var footerMode = z15.enum(["default", "blocks", "default+blocks", "none"]);
2433
- var footerNavLayoutMode = z15.enum(["stack", "inline", "inline-wrap"]);
2434
- var footerNavLayoutAlign = z15.enum(["start", "center", "end", "space-between"]);
2435
- var footerSpacing = z15.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2436
- var footerLogoPlacement = z15.enum(["left", "right", "above", "below"]);
2437
- var footerLogoSize = z15.enum(["sm", "md", "lg", "xl"]);
2438
- var footerLogoMaxHeight = z15.enum(["sm", "md", "lg", "xl"]);
2439
- var footerBottomTextLinkStyleSchema = z15.object({
2440
- colorToken: z15.string().optional(),
2441
- hoverColorToken: z15.string().nullable().optional(),
2442
- decorationColorToken: z15.string().nullable().optional(),
2443
- underline: z15.boolean().optional()
2602
+ var footerVariant = z17.enum(["simple", "columns", "split"]);
2603
+ var footerMaxWidth = z17.enum(["container", "full"]);
2604
+ var footerMode = z17.enum(["default", "blocks", "default+blocks", "none"]);
2605
+ var footerNavLayoutMode = z17.enum(["stack", "inline", "inline-wrap"]);
2606
+ var footerNavLayoutAlign = z17.enum(["start", "center", "end", "space-between"]);
2607
+ var footerSpacing = z17.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2608
+ var footerLogoPlacement = z17.enum(["left", "right", "above", "below"]);
2609
+ var footerLogoSize = z17.enum(["sm", "md", "lg", "xl"]);
2610
+ var footerLogoMaxHeight = z17.enum(["sm", "md", "lg", "xl"]);
2611
+ var footerBottomTextLinkStyleSchema = z17.object({
2612
+ colorToken: themeColorTokenSchema.optional(),
2613
+ hoverColorToken: themeColorTokenSchema.nullable().optional(),
2614
+ decorationColorToken: themeColorTokenSchema.nullable().optional(),
2615
+ underline: z17.boolean().optional()
2444
2616
  });
2445
- var footerBottomBarSchema = z15.object({
2446
- enabled: z15.boolean().optional(),
2447
- fullBleed: z15.boolean().optional(),
2617
+ var footerBottomBarSchema = z17.object({
2618
+ enabled: z17.boolean().optional(),
2619
+ fullBleed: z17.boolean().optional(),
2448
2620
  background: headerBackgroundSchema.optional(),
2449
- textColor: z15.string().nullable().optional(),
2450
- textAlign: z15.enum(["left", "center", "right"]).optional(),
2621
+ textColor: themeColorTokenSchema.nullable().optional(),
2622
+ textAlign: z17.enum(["left", "center", "right"]).optional(),
2451
2623
  paddingY: footerSpacing.optional(),
2452
2624
  paddingX: footerSpacing.optional(),
2453
- borderTop: z15.object({
2454
- colorToken: z15.string().nullable().optional(),
2455
- width: z15.enum(["none", "thin", "medium", "thick"]).optional()
2625
+ borderTop: z17.object({
2626
+ colorToken: themeColorTokenSchema.nullable().optional(),
2627
+ width: z17.enum(["none", "thin", "medium", "thick"]).optional()
2456
2628
  }).optional()
2457
2629
  });
2458
- var footerNavLayoutSchema = z15.object({
2630
+ var footerNavLayoutSchema = z17.object({
2459
2631
  layout: footerNavLayoutMode.optional(),
2460
2632
  align: footerNavLayoutAlign.optional(),
2461
2633
  gapX: footerSpacing.optional(),
2462
2634
  gapY: footerSpacing.optional(),
2463
- columns: z15.number().int().min(1).max(6).optional()
2635
+ columns: z17.number().int().min(1).max(6).optional()
2464
2636
  });
2465
- var footerLogoSchema = z15.object({
2466
- showLogo: z15.boolean().default(true),
2467
- showLogoText: z15.boolean().optional(),
2637
+ var footerLogoSchema = z17.object({
2638
+ showLogo: z17.boolean().default(true),
2639
+ showLogoText: z17.boolean().optional(),
2468
2640
  placement: footerLogoPlacement.optional(),
2469
2641
  size: footerLogoSize.optional(),
2470
2642
  maxHeight: footerLogoMaxHeight.optional(),
2471
- align: z15.enum(["start", "center", "end"]).optional()
2643
+ align: z17.enum(["start", "center", "end"]).optional()
2472
2644
  });
2473
- var footerSchema = z15.object({
2645
+ var footerSchema = z17.object({
2474
2646
  /**
2475
2647
  * SDK-only footer rendering mode.
2476
2648
  *
@@ -2479,14 +2651,14 @@ var footerSchema = z15.object({
2479
2651
  mode: footerMode.optional(),
2480
2652
  variant: footerVariant,
2481
2653
  maxWidth: footerMaxWidth,
2482
- showLogoText: z15.boolean().optional(),
2654
+ showLogoText: z17.boolean().optional(),
2483
2655
  background: headerBackgroundSchema.default({
2484
2656
  type: "color",
2485
2657
  color: "surface"
2486
2658
  }),
2487
2659
  // Footer nav styling (independent from header)
2488
2660
  navStyle: headerNavStyle.default("minimal"),
2489
- navColor: z15.string().nullable().optional(),
2661
+ navColor: themeColorTokenSchema.nullable().optional(),
2490
2662
  navWeight: navFontWeight.default("medium"),
2491
2663
  // Full nav link customization (overrides navStyle if set)
2492
2664
  navLinkStyle: navLinkStyleSchema.optional(),
@@ -2497,23 +2669,23 @@ var footerSchema = z15.object({
2497
2669
  logo: footerLogoSchema.optional(),
2498
2670
  bottomBar: footerBottomBarSchema.optional()
2499
2671
  });
2500
- var containerPaddingPresetSchema = z15.enum(["tight", "compact", "default", "relaxed"]);
2501
- var layoutSchema = z15.object({
2502
- containerPadding: z15.object({
2672
+ var containerPaddingPresetSchema = z17.enum(["tight", "compact", "default", "relaxed"]);
2673
+ var layoutSchema = z17.object({
2674
+ containerPadding: z17.object({
2503
2675
  mobile: containerPaddingPresetSchema.optional(),
2504
2676
  tablet: containerPaddingPresetSchema.optional(),
2505
2677
  desktop: containerPaddingPresetSchema.optional()
2506
2678
  }).optional()
2507
2679
  }).optional();
2508
- var heroTypographySizeSchema = z15.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
2509
- var heroTypographyLineHeightSchema = z15.enum(["tight", "snug", "normal", "relaxed"]);
2510
- var heroResponsiveTypographySchema = z15.object({
2680
+ var heroTypographySizeSchema = z17.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
2681
+ var heroTypographyLineHeightSchema = z17.enum(["tight", "snug", "normal", "relaxed"]);
2682
+ var heroResponsiveTypographySchema = z17.object({
2511
2683
  headlineSize: heroTypographySizeSchema.optional(),
2512
2684
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
2513
2685
  subheadlineSize: heroTypographySizeSchema.optional(),
2514
2686
  subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
2515
2687
  });
2516
- var heroTypographySchema = z15.object({
2688
+ var heroTypographySchema = z17.object({
2517
2689
  headlineSize: heroTypographySizeSchema.optional(),
2518
2690
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
2519
2691
  subheadlineSize: heroTypographySizeSchema.optional(),
@@ -2522,31 +2694,31 @@ var heroTypographySchema = z15.object({
2522
2694
  microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
2523
2695
  microSubheadlineSize: heroTypographySizeSchema.optional(),
2524
2696
  microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
2525
- responsive: z15.object({
2697
+ responsive: z17.object({
2526
2698
  tablet: heroResponsiveTypographySchema.optional(),
2527
2699
  mobile: heroResponsiveTypographySchema.optional()
2528
2700
  }).optional()
2529
2701
  });
2530
- var heroSchema = z15.object({
2702
+ var heroSchema = z17.object({
2531
2703
  typography: heroTypographySchema.optional()
2532
2704
  }).optional();
2533
- var bodyTextIntroTypographySizeSchema = z15.enum(["default", "editorial"]);
2534
- var bodyTextSchema = z15.object({
2535
- intro: z15.object({
2705
+ var bodyTextIntroTypographySizeSchema = z17.enum(["default", "editorial"]);
2706
+ var bodyTextSchema = z17.object({
2707
+ intro: z17.object({
2536
2708
  paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
2537
2709
  headingSize: bodyTextIntroTypographySizeSchema.optional()
2538
2710
  }).optional()
2539
2711
  }).optional();
2540
- var gradientsSchema = z15.object({
2541
- button: z15.string().min(1).nullable().optional(),
2542
- hero: z15.string().min(1).nullable().optional(),
2543
- background: z15.string().min(1).nullable().optional()
2712
+ var gradientsSchema = z17.object({
2713
+ button: z17.string().min(1).nullable().optional(),
2714
+ hero: z17.string().min(1).nullable().optional(),
2715
+ background: z17.string().min(1).nullable().optional()
2544
2716
  });
2545
- var themeSchema = z15.object({
2546
- name: z15.string().min(1).max(30),
2547
- description: z15.string().min(1).max(400),
2548
- rationale: z15.string().min(1).max(400),
2549
- siteStyleId: z15.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
2717
+ var themeSchema = z17.object({
2718
+ name: z17.string().min(1).max(30),
2719
+ description: z17.string().min(1).max(400),
2720
+ rationale: z17.string().min(1).max(400),
2721
+ siteStyleId: z17.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
2550
2722
  axes: axesSchema,
2551
2723
  palette: paletteSchema,
2552
2724
  typography: typographySchema,
@@ -2574,15 +2746,15 @@ var themeSchema = z15.object({
2574
2746
  // Block-specific customization (Tier 3)
2575
2747
  // blockCustomVars: Per-block CSS variable overrides as bare values
2576
2748
  // Example: { "event-registration": { "--step-color": "#6d28d9" } }
2577
- blockCustomVars: z15.record(
2578
- z15.string(),
2749
+ blockCustomVars: z17.record(
2750
+ z17.string(),
2579
2751
  // block kind (matches data-block attribute)
2580
- z15.record(z15.string(), z15.string())
2752
+ z17.record(z17.string(), z17.string())
2581
2753
  // { '--var-name': 'value' }
2582
2754
  ).optional(),
2583
2755
  // Structured block-kind theme overrides (v1: typography prose-link style only)
2584
2756
  // Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
2585
- blockOverrides: z15.record(z15.string(), blockThemeOverrideSchema).optional(),
2757
+ blockOverrides: z17.record(z17.string(), blockThemeOverrideSchema).optional(),
2586
2758
  // Structured custom CSS rules
2587
2759
  // Validated, scoped, and safe by construction - no @import, remote url(), or global selectors
2588
2760
  customCssRules: customCssRulesSchema,
@@ -2616,11 +2788,11 @@ var themeSchema = z15.object({
2616
2788
  * }
2617
2789
  * ```
2618
2790
  */
2619
- styleGroups: z15.record(z15.string(), z15.array(z15.string())).optional()
2791
+ styleGroups: z17.record(z17.string(), z17.array(z17.string())).optional()
2620
2792
  });
2621
- var themesTurnSchema = z15.object({
2622
- message: z15.string().min(1),
2623
- themes: z15.array(themeSchema).length(3)
2793
+ var themesTurnSchema = z17.object({
2794
+ message: z17.string().min(1),
2795
+ themes: z17.array(themeSchema).length(3)
2624
2796
  });
2625
2797
 
2626
2798
  // ../theme-core/src/palette/variants/types.ts
@@ -2630,35 +2802,19 @@ function asPaletteVariantId(value) {
2630
2802
  }
2631
2803
  return value;
2632
2804
  }
2633
- var paletteVariantIdSchema = z16.string().min(1).transform((value) => asPaletteVariantId(value));
2634
- var PALETTE_TOKEN_NAMES = [
2635
- "primary",
2636
- "primaryForeground",
2637
- "secondary",
2638
- "accent",
2639
- "success",
2640
- "warning",
2641
- "destructive",
2642
- "background",
2643
- "surface",
2644
- "surfaceAlt",
2645
- "muted",
2646
- "text",
2647
- "border"
2648
- ];
2649
- var paletteTokenNameSchema = z16.enum(PALETTE_TOKEN_NAMES);
2805
+ var paletteVariantIdSchema = z18.string().min(1).transform((value) => asPaletteVariantId(value));
2650
2806
  var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
2651
- var hexColorSchema = z16.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
2807
+ var hexColorSchema = z18.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
2652
2808
  var variantPaletteColorSchema = paletteColorSchema.extend({
2653
2809
  name: paletteTokenNameSchema
2654
2810
  });
2655
- var paletteVariantSchema = z16.object({
2811
+ var paletteVariantSchema = z18.object({
2656
2812
  id: paletteVariantIdSchema,
2657
- name: z16.string().min(1),
2658
- description: z16.string().min(1),
2813
+ name: z18.string().min(1),
2814
+ description: z18.string().min(1),
2659
2815
  tags: styleTagsSchema,
2660
- mode: z16.enum(["light", "dark"]),
2661
- colors: z16.array(variantPaletteColorSchema).min(1)
2816
+ mode: z18.enum(["light", "dark"]),
2817
+ colors: z18.array(variantPaletteColorSchema).min(1)
2662
2818
  });
2663
2819
  function definePaletteVariant(input) {
2664
2820
  return {
@@ -2670,7 +2826,7 @@ function definePaletteVariant(input) {
2670
2826
  colors: input.colors
2671
2827
  };
2672
2828
  }
2673
- var paletteOverridesSchema = z16.object({
2829
+ var paletteOverridesSchema = z18.object({
2674
2830
  primary: hexColorSchema.optional(),
2675
2831
  primaryForeground: hexColorSchema.optional(),
2676
2832
  secondary: hexColorSchema.optional(),
@@ -3004,6 +3160,409 @@ var paletteVariantsById = new Map(
3004
3160
  paletteVariants.map((v) => [v.id, v])
3005
3161
  );
3006
3162
 
3163
+ // ../theme-core/src/site-styles/headerLooks.ts
3164
+ function asHeaderLookId(value) {
3165
+ return value;
3166
+ }
3167
+ function baseHeader(theme) {
3168
+ return {
3169
+ ...theme.header,
3170
+ navLinkStyle: void 0,
3171
+ dropdownStyle: void 0,
3172
+ ctaVariant: void 0
3173
+ };
3174
+ }
3175
+ function solidBrandHeader(theme) {
3176
+ const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
3177
+ return {
3178
+ ...baseHeader(theme),
3179
+ variant: "classic",
3180
+ positioning: "sticky",
3181
+ shrinkOnScroll: true,
3182
+ background: {
3183
+ type: "color",
3184
+ color: "primary"
3185
+ },
3186
+ textColor: "primaryForeground",
3187
+ navColor: "primaryForeground",
3188
+ navStyle: "underline-grow",
3189
+ navWeight: "bold",
3190
+ navLinkStyle: {
3191
+ typography: "body",
3192
+ fontWeight: "bold",
3193
+ textTransform: "uppercase",
3194
+ italic: false,
3195
+ colorToken: "primaryForeground",
3196
+ hoverColorToken: "secondary",
3197
+ textSize: "sm",
3198
+ letterSpacing: "wider",
3199
+ padding: "compact",
3200
+ paddingX: "compact",
3201
+ borderRadius: "none",
3202
+ effects: {
3203
+ hover: [
3204
+ { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
3205
+ { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
3206
+ ]
3207
+ }
3208
+ },
3209
+ dropdownStyle: {
3210
+ background: "primary-700",
3211
+ textColor: "primaryForeground",
3212
+ borderColor: null,
3213
+ shadow: "md",
3214
+ borderRadius: "md",
3215
+ hoverBackground: "primary-900",
3216
+ hoverTextColor: "secondary",
3217
+ textTransform: "uppercase",
3218
+ letterSpacing: "wider",
3219
+ fontWeight: "bold",
3220
+ textSize: "sm"
3221
+ },
3222
+ border: {
3223
+ style: "solid",
3224
+ width: "none",
3225
+ position: "none"
3226
+ },
3227
+ logoText: {
3228
+ hideOnShrink: true,
3229
+ mobileMaxWidth: "sm",
3230
+ mobileWrapLines: 2
3231
+ },
3232
+ ctaGap: "compact",
3233
+ ctaTreatment: "inverted",
3234
+ ...ctaVariant ? { ctaVariant } : {}
3235
+ };
3236
+ }
3237
+ function cleanBaseHeader(theme) {
3238
+ return {
3239
+ ...baseHeader(theme),
3240
+ variant: "classic",
3241
+ positioning: "sticky",
3242
+ shrinkOnScroll: false,
3243
+ background: {
3244
+ type: "color",
3245
+ color: "surface"
3246
+ },
3247
+ textColor: "text",
3248
+ navColor: "text",
3249
+ navStyle: "minimal",
3250
+ navWeight: "medium",
3251
+ border: {
3252
+ style: "solid",
3253
+ width: "thin",
3254
+ position: "bottom",
3255
+ colorToken: "border"
3256
+ },
3257
+ ctaTreatment: "default",
3258
+ ctaGap: "default"
3259
+ };
3260
+ }
3261
+ function editorialLineHeader(theme) {
3262
+ return {
3263
+ ...baseHeader(theme),
3264
+ variant: "editorial",
3265
+ positioning: "sticky",
3266
+ shrinkOnScroll: false,
3267
+ background: {
3268
+ type: "color",
3269
+ color: "background"
3270
+ },
3271
+ textColor: "text",
3272
+ navColor: "text",
3273
+ navStyle: "underline-grow",
3274
+ navWeight: "medium",
3275
+ logo: {
3276
+ fontFamily: "heading",
3277
+ letterSpacing: "wide",
3278
+ gradient: false
3279
+ },
3280
+ ctaTreatment: "outline",
3281
+ ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
3282
+ ctaGap: "relaxed"
3283
+ };
3284
+ }
3285
+ function centeredCalmHeader(theme) {
3286
+ return {
3287
+ ...baseHeader(theme),
3288
+ variant: "centered",
3289
+ positioning: "static",
3290
+ shrinkOnScroll: false,
3291
+ background: {
3292
+ type: "color",
3293
+ color: "surface"
3294
+ },
3295
+ textColor: "text",
3296
+ navColor: "text",
3297
+ navStyle: "minimal",
3298
+ navWeight: "medium",
3299
+ ctaTreatment: "ghost",
3300
+ ctaVariant: resolveHeaderCtaVariant(theme, "ghost"),
3301
+ ctaGap: "none"
3302
+ };
3303
+ }
3304
+ function practicalUtilityHeader(theme) {
3305
+ return {
3306
+ ...baseHeader(theme),
3307
+ variant: "classic",
3308
+ positioning: "sticky",
3309
+ shrinkOnScroll: true,
3310
+ background: {
3311
+ type: "color",
3312
+ color: "surface"
3313
+ },
3314
+ textColor: "text",
3315
+ navColor: "text",
3316
+ navStyle: "solid",
3317
+ navWeight: "semibold",
3318
+ shadow: {
3319
+ elevation: "sm"
3320
+ },
3321
+ border: {
3322
+ style: "solid",
3323
+ width: "thin",
3324
+ position: "bottom",
3325
+ colorToken: "border"
3326
+ },
3327
+ ctaTreatment: "primary",
3328
+ ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
3329
+ ctaGap: "compact",
3330
+ logoText: {
3331
+ mobileMaxWidth: "sm",
3332
+ mobileWrapLines: 1,
3333
+ hideOnShrink: false
3334
+ }
3335
+ };
3336
+ }
3337
+ function minimalTransparentHeader(theme) {
3338
+ return {
3339
+ ...baseHeader(theme),
3340
+ variant: "classic",
3341
+ positioning: "static",
3342
+ shrinkOnScroll: false,
3343
+ background: {
3344
+ type: "color",
3345
+ color: "transparent"
3346
+ },
3347
+ textColor: "text",
3348
+ navColor: "text",
3349
+ navStyle: "underline",
3350
+ navWeight: "medium",
3351
+ border: {
3352
+ style: "solid",
3353
+ width: "none",
3354
+ position: "none"
3355
+ },
3356
+ ctaTreatment: "outline",
3357
+ ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
3358
+ ctaGap: "default"
3359
+ };
3360
+ }
3361
+ function transparentOverlayHeader(theme) {
3362
+ return {
3363
+ ...baseHeader(theme),
3364
+ variant: "transparent",
3365
+ positioning: "fixed",
3366
+ shrinkOnScroll: true,
3367
+ background: {
3368
+ type: "color",
3369
+ color: "transparent"
3370
+ },
3371
+ textColor: "background",
3372
+ navColor: "background",
3373
+ navStyle: "frosted",
3374
+ navWeight: "semibold",
3375
+ border: {
3376
+ style: "solid",
3377
+ width: "none",
3378
+ position: "none"
3379
+ },
3380
+ ctaTreatment: "inverted",
3381
+ ctaVariant: resolveHeaderCtaVariant(theme, "inverted"),
3382
+ ctaGap: "compact"
3383
+ };
3384
+ }
3385
+ function floatingGlassHeader(theme) {
3386
+ return {
3387
+ ...transparentOverlayHeader(theme),
3388
+ variant: "floating",
3389
+ navStyle: "frosted",
3390
+ navContainer: {
3391
+ type: "glass",
3392
+ tint: "text",
3393
+ opacity: 0.16
3394
+ },
3395
+ container: {
3396
+ rounded: "2xl",
3397
+ border: true,
3398
+ shadow: true,
3399
+ padding: "sm",
3400
+ tint: "background",
3401
+ opacity: 0.12
3402
+ }
3403
+ };
3404
+ }
3405
+ var headerLookCatalog = [
3406
+ {
3407
+ id: asHeaderLookId("clean-base"),
3408
+ label: "Clean base",
3409
+ visualTreatment: "solid-neutral",
3410
+ layoutBehavior: "sticky",
3411
+ openingRequirement: "none",
3412
+ compile: cleanBaseHeader
3413
+ },
3414
+ {
3415
+ id: asHeaderLookId("brand-solid"),
3416
+ label: "Brand solid",
3417
+ visualTreatment: "solid-brand",
3418
+ layoutBehavior: "sticky-shrink",
3419
+ openingRequirement: "none",
3420
+ compile: solidBrandHeader
3421
+ },
3422
+ {
3423
+ id: asHeaderLookId("editorial-line"),
3424
+ label: "Editorial line",
3425
+ visualTreatment: "light-editorial",
3426
+ layoutBehavior: "sticky",
3427
+ openingRequirement: "none",
3428
+ maxRecommendedNavItems: 6,
3429
+ compile: editorialLineHeader
3430
+ },
3431
+ {
3432
+ id: asHeaderLookId("centered-calm"),
3433
+ label: "Centered calm",
3434
+ visualTreatment: "light-editorial",
3435
+ layoutBehavior: "normal-flow",
3436
+ openingRequirement: "none",
3437
+ maxRecommendedNavItems: 5,
3438
+ allowedLogoShapes: ["none", "text-only", "horizontal", "square"],
3439
+ compile: centeredCalmHeader
3440
+ },
3441
+ {
3442
+ id: asHeaderLookId("practical-utility"),
3443
+ label: "Practical utility",
3444
+ visualTreatment: "solid-neutral",
3445
+ layoutBehavior: "sticky-shrink",
3446
+ openingRequirement: "none",
3447
+ requiresProminentCta: true,
3448
+ compile: practicalUtilityHeader
3449
+ },
3450
+ {
3451
+ id: asHeaderLookId("minimal-transparent"),
3452
+ label: "Minimal transparent",
3453
+ visualTreatment: "minimal-transparent",
3454
+ layoutBehavior: "normal-flow",
3455
+ openingRequirement: "reserved-space-ok",
3456
+ compile: minimalTransparentHeader
3457
+ },
3458
+ {
3459
+ id: asHeaderLookId("transparent-overlay"),
3460
+ label: "Transparent overlay",
3461
+ visualTreatment: "transparent-overlay",
3462
+ layoutBehavior: "fixed-overlay",
3463
+ openingRequirement: "requires-image-hero-with-contrast-overlay",
3464
+ maxRecommendedNavItems: 5,
3465
+ allowedLogoShapes: ["none", "text-only", "horizontal"],
3466
+ compile: transparentOverlayHeader
3467
+ },
3468
+ {
3469
+ id: asHeaderLookId("floating-glass"),
3470
+ label: "Floating glass",
3471
+ visualTreatment: "floating-glass",
3472
+ layoutBehavior: "fixed-floating",
3473
+ openingRequirement: "requires-image-hero-with-contrast-overlay",
3474
+ maxRecommendedNavItems: 5,
3475
+ allowedLogoShapes: ["none", "text-only", "horizontal"],
3476
+ compile: floatingGlassHeader
3477
+ }
3478
+ ];
3479
+ var guaranteedFallbackHeaderLookId = asHeaderLookId("clean-base");
3480
+ var headerLooksById = new Map(
3481
+ headerLookCatalog.map((look) => [look.id, look])
3482
+ );
3483
+
3484
+ // ../theme-core/src/site-styles/footerLooks.ts
3485
+ function asFooterLookId(value) {
3486
+ return value;
3487
+ }
3488
+ var guaranteedFallbackFooterLookId = asFooterLookId("footer-muted-grounding");
3489
+ function mutedGroundingFooter(theme) {
3490
+ return theme.footer;
3491
+ }
3492
+ function brandTwoBandFooter(theme) {
3493
+ return {
3494
+ ...theme.footer,
3495
+ variant: "split",
3496
+ maxWidth: "container",
3497
+ background: {
3498
+ type: "color",
3499
+ color: "primary-800"
3500
+ },
3501
+ navStyle: "minimal",
3502
+ navWeight: "medium",
3503
+ navColor: "primaryForeground",
3504
+ navLinkStyle: {
3505
+ typography: "body",
3506
+ fontWeight: "medium",
3507
+ textTransform: "none",
3508
+ italic: false,
3509
+ colorToken: "primaryForeground",
3510
+ hoverColorToken: "secondary",
3511
+ padding: "none",
3512
+ borderRadius: "none"
3513
+ },
3514
+ bottomTextLinkStyle: {
3515
+ colorToken: "secondary",
3516
+ decorationColorToken: "secondary"
3517
+ },
3518
+ navLayout: {
3519
+ layout: "inline-wrap",
3520
+ align: "start",
3521
+ gapX: "default",
3522
+ gapY: "tight"
3523
+ },
3524
+ logo: {
3525
+ showLogo: true,
3526
+ showLogoText: false,
3527
+ placement: "left",
3528
+ size: "sm",
3529
+ align: "start"
3530
+ },
3531
+ bottomBar: {
3532
+ enabled: true,
3533
+ fullBleed: true,
3534
+ background: {
3535
+ type: "color",
3536
+ color: "primary-900"
3537
+ },
3538
+ textColor: "primaryForeground",
3539
+ textAlign: "center",
3540
+ paddingX: "default",
3541
+ paddingY: "compact",
3542
+ borderTop: {
3543
+ width: "none"
3544
+ }
3545
+ }
3546
+ };
3547
+ }
3548
+ var footerLookCatalog = [
3549
+ {
3550
+ id: asFooterLookId("footer-muted-grounding"),
3551
+ label: "Muted grounding footer",
3552
+ compile: mutedGroundingFooter
3553
+ },
3554
+ {
3555
+ id: asFooterLookId("site-footer-brand-two-band"),
3556
+ label: "Two-band brand footer",
3557
+ maxRecommendedNavDensity: "balanced",
3558
+ allowedContentPresence: ["default-footer", "default-and-blocks"],
3559
+ compile: brandTwoBandFooter
3560
+ }
3561
+ ];
3562
+ var footerLooksById = new Map(
3563
+ footerLookCatalog.map((look) => [look.id, look])
3564
+ );
3565
+
3007
3566
  // ../theme-core/src/site-styles/sourceCatalogs.ts
3008
3567
  var generatedContentFrames = [
3009
3568
  plainFrame,
@@ -3019,7 +3578,7 @@ var userContentFrames = [
3019
3578
  ];
3020
3579
  var generatedDesignOptionCatalog = {
3021
3580
  source: "generated",
3022
- sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
3581
+ sectionSurfaces: ["base", "muted-band", "accent-band", "brand-depth-band", "hero-image"],
3023
3582
  contentFrames: generatedContentFrames,
3024
3583
  itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
3025
3584
  transitions: ["none", "soft-fade-short", "soft-fade-long"],
@@ -3089,6 +3648,43 @@ var expressiveBudget = {
3089
3648
  mediaDensity: "high",
3090
3649
  decorativeRepetition: "medium"
3091
3650
  };
3651
+ var expressiveUnderlineInputs = {
3652
+ base: {
3653
+ background: { type: "transparent" },
3654
+ textColorToken: "text",
3655
+ border: {
3656
+ widthClass: "border-2",
3657
+ colorToken: "border",
3658
+ style: "underline"
3659
+ },
3660
+ corners: "square",
3661
+ shadow: null,
3662
+ spacing: "compact",
3663
+ fontSize: "base"
3664
+ },
3665
+ label: {
3666
+ textColorToken: "primary",
3667
+ fontWeight: "black",
3668
+ fontSize: "xs",
3669
+ textTransform: "uppercase",
3670
+ letterSpacing: "widest",
3671
+ opacity: 1
3672
+ },
3673
+ focus: {
3674
+ ringColorToken: "secondary",
3675
+ ringWidth: "0",
3676
+ borderColorToken: "secondary"
3677
+ },
3678
+ error: {
3679
+ borderColorToken: "destructive",
3680
+ textColorToken: "destructive"
3681
+ },
3682
+ disabled: {
3683
+ backgroundColorToken: "surface",
3684
+ textColorToken: "text",
3685
+ opacity: 0.6
3686
+ }
3687
+ };
3092
3688
  function uniqueContentFrameKinds() {
3093
3689
  const kinds = [...new Set(
3094
3690
  generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
@@ -3120,6 +3716,9 @@ function defineCuratedSiteStyle(input) {
3120
3716
  },
3121
3717
  ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
3122
3718
  recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
3719
+ recommendedHeaderLookIds: (input.recommendedHeaderLookIds ?? ["clean-base"]).map(asHeaderLookId),
3720
+ // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
3721
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
3123
3722
  buttonPersonalityChoices: input.buttonPersonalityChoices,
3124
3723
  paletteVariantChoices: input.paletteVariantChoices
3125
3724
  };
@@ -3146,6 +3745,7 @@ var curatedSiteStyles = [
3146
3745
  motion: "subtle"
3147
3746
  },
3148
3747
  compositionBudget: quietBudget,
3748
+ recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
3149
3749
  buttonPersonalityChoices: [
3150
3750
  buttonChoice("soft-pill"),
3151
3751
  buttonChoice("pebble"),
@@ -3174,6 +3774,7 @@ var curatedSiteStyles = [
3174
3774
  motion: "subtle"
3175
3775
  },
3176
3776
  compositionBudget: balancedBudget,
3777
+ recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
3177
3778
  buttonPersonalityChoices: [
3178
3779
  buttonChoice("confident-chip"),
3179
3780
  buttonChoice("soft-pill"),
@@ -3200,6 +3801,7 @@ var curatedSiteStyles = [
3200
3801
  motion: "subtle"
3201
3802
  },
3202
3803
  compositionBudget: balancedBudget,
3804
+ recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
3203
3805
  buttonPersonalityChoices: [
3204
3806
  buttonChoice("editorial-link"),
3205
3807
  buttonChoice("soft-pill"),
@@ -3227,6 +3829,7 @@ var curatedSiteStyles = [
3227
3829
  motion: "expressive"
3228
3830
  },
3229
3831
  compositionBudget: balancedBudget,
3832
+ recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
3230
3833
  buttonPersonalityChoices: [
3231
3834
  buttonChoice("pebble"),
3232
3835
  buttonChoice("brushed-wash"),
@@ -3260,6 +3863,7 @@ var curatedSiteStyles = [
3260
3863
  motion: "none"
3261
3864
  },
3262
3865
  compositionBudget: quietBudget,
3866
+ recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
3263
3867
  buttonPersonalityChoices: [
3264
3868
  buttonChoice("editorial-link"),
3265
3869
  buttonChoice("confident-chip"),
@@ -3294,6 +3898,7 @@ var curatedSiteStyles = [
3294
3898
  motion: "none"
3295
3899
  },
3296
3900
  compositionBudget: quietBudget,
3901
+ recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
3297
3902
  buttonPersonalityChoices: [
3298
3903
  buttonChoice("confident-chip"),
3299
3904
  buttonChoice("pebble"),
@@ -3320,6 +3925,7 @@ var curatedSiteStyles = [
3320
3925
  motion: "subtle"
3321
3926
  },
3322
3927
  compositionBudget: balancedBudget,
3928
+ recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
3323
3929
  buttonPersonalityChoices: [
3324
3930
  buttonChoice("soft-pill"),
3325
3931
  buttonChoice("pebble"),
@@ -3354,6 +3960,7 @@ var curatedSiteStyles = [
3354
3960
  motion: "expressive"
3355
3961
  },
3356
3962
  compositionBudget: expressiveBudget,
3963
+ recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
3357
3964
  buttonPersonalityChoices: [
3358
3965
  buttonChoice("ink-stamp"),
3359
3966
  buttonChoice("confident-chip"),
@@ -3439,16 +4046,18 @@ var curatedSiteStyles = [
3439
4046
  paragraphSize: "editorial",
3440
4047
  headingSize: "editorial"
3441
4048
  }
3442
- }
4049
+ },
4050
+ inputs: expressiveUnderlineInputs
3443
4051
  },
3444
4052
  recommendedAppearancePresetIds: [
3445
- "site-header-brand-solid-inverted-cta",
3446
- "site-footer-brand-two-band",
3447
4053
  "hero-brand-scrim-fixed-frame",
3448
4054
  "body-text-editorial-intro",
4055
+ "schedule-details-brand-depth",
3449
4056
  "testimonials-accent-quote-proof",
3450
- "contact-form-dark-card"
4057
+ "contact-form-brand-depth-card"
3451
4058
  ],
4059
+ recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
4060
+ recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
3452
4061
  buttonPersonalityChoices: [
3453
4062
  buttonChoice("showtime-pill"),
3454
4063
  buttonChoice("confident-chip"),
@@ -3467,6 +4076,14 @@ var curatedSiteStylesById = new Map(
3467
4076
  curatedSiteStyles.map((style) => [style.id, style])
3468
4077
  );
3469
4078
 
4079
+ // ../theme-core/src/site-styles/siteStyleBlockPolicies.ts
4080
+ var defaultPolicyPageFlowPresetId = asPageFlowPresetId("generated-default");
4081
+ var southWestTwerkSchoolSiteStyleId = asSiteStyleId("site-style:south-west-twerk-school");
4082
+ var heroBrandScrimFixedFrameLookId = asAppearancePresetId("hero-brand-scrim-fixed-frame");
4083
+ var classicHeroLayoutVariantKey = asLayoutVariantKey("classic");
4084
+ var microHeroLayoutVariantKey = asLayoutVariantKey("micro");
4085
+ var waveBoundaryOptionId = asBoundaryOptionId("break:wave");
4086
+
3470
4087
  // ../theme-core/src/site-styles/pageDesignEditorModel.ts
3471
4088
  var noneBoundaryOption = {
3472
4089
  id: asBoundaryOptionId("break:none"),
@@ -3510,7 +4127,7 @@ var pageFlowPresets = [
3510
4127
  ];
3511
4128
 
3512
4129
  // ../theme-core/src/site-styles/designState.ts
3513
- import { z as z17 } from "zod";
4130
+ import { z as z19 } from "zod";
3514
4131
 
3515
4132
  // ../theme-core/src/site-styles/rawStyleFields.ts
3516
4133
  var themeV2RuntimeStyleFieldNames = [
@@ -3536,52 +4153,53 @@ var themeV2NormalEditorRawStyleFieldNameSet = new Set(
3536
4153
 
3537
4154
  // ../theme-core/src/site-styles/designState.ts
3538
4155
  var themeV2DesignStateSchemaVersion = 1;
3539
- var designResolutionPolicySchema = z17.enum(["generated", "user", "admin", "sdk"]);
3540
- var runtimeStyleFieldNameSchema = z17.enum(themeV2RuntimeStyleFieldNames);
3541
- var nonEmptyRuntimeStyleFieldNamesSchema = z17.array(runtimeStyleFieldNameSchema).min(1).transform((fields) => [
4156
+ var designResolutionPolicySchema = z19.enum(["generated", "user", "admin", "sdk"]);
4157
+ var runtimeStyleFieldNameSchema = z19.enum(themeV2RuntimeStyleFieldNames);
4158
+ var nonEmptyRuntimeStyleFieldNamesSchema = z19.array(runtimeStyleFieldNameSchema).min(1).transform((fields) => [
3542
4159
  fields[0],
3543
4160
  ...fields.slice(1)
3544
4161
  ]);
3545
- var heroLegibilityStrategySchema = z17.enum([
4162
+ var heroLegibilityStrategySchema = z19.enum([
3546
4163
  "none",
3547
4164
  "scrim-gradient",
3548
4165
  "solid-panel"
3549
4166
  ]);
3550
- var sectionHeightIntentSchema = z17.enum([
4167
+ var sectionHeightIntentSchema = z19.enum([
3551
4168
  "default",
3552
4169
  "banner",
3553
4170
  "hero",
3554
4171
  "immersive"
3555
4172
  ]);
3556
- var imageSurfaceTreatmentIntensitySchema = z17.enum(["soft", "balanced", "strong"]);
3557
- var imageSurfaceMotionSchema = z17.enum(["static", "fixed-frame"]);
3558
- var imageSurfaceTreatmentSchema = z17.discriminatedUnion("kind", [
3559
- z17.object({ kind: z17.literal("none") }).strict(),
3560
- z17.object({
3561
- kind: z17.literal("brand-scrim"),
3562
- token: z17.enum(["primary", "secondary", "accent"]),
4173
+ var imageSurfaceTreatmentIntensitySchema = z19.enum(["soft", "balanced", "strong"]);
4174
+ var imageSurfaceMotionSchema = z19.enum(["static", "fixed-frame"]);
4175
+ var imageSurfaceTreatmentSchema = z19.discriminatedUnion("kind", [
4176
+ z19.object({ kind: z19.literal("none") }).strict(),
4177
+ z19.object({
4178
+ kind: z19.literal("brand-scrim"),
4179
+ token: z19.enum(["primary", "secondary", "accent"]),
3563
4180
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3564
4181
  }).strict(),
3565
- z17.object({
3566
- kind: z17.literal("brand-wash"),
3567
- token: z17.enum(["primary", "secondary", "accent"]),
4182
+ z19.object({
4183
+ kind: z19.literal("brand-wash"),
4184
+ token: z19.enum(["primary", "secondary", "accent"]),
3568
4185
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3569
4186
  }).strict(),
3570
- z17.object({
3571
- kind: z17.literal("neutral-scrim"),
4187
+ z19.object({
4188
+ kind: z19.literal("neutral-scrim"),
3572
4189
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3573
4190
  }).strict(),
3574
- z17.object({
3575
- kind: z17.literal("neutral-wash"),
4191
+ z19.object({
4192
+ kind: z19.literal("neutral-wash"),
3576
4193
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3577
4194
  }).strict(),
3578
- z17.object({
3579
- kind: z17.literal("solid-panel"),
4195
+ z19.object({
4196
+ kind: z19.literal("solid-panel"),
3580
4197
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3581
4198
  }).strict()
3582
4199
  ]);
3583
- var testimonialCardTreatmentSchema = z17.enum(["default", "accent-quote"]);
3584
- var eyebrowTreatmentSchema = z17.enum(eyebrowTreatmentValues);
4200
+ var testimonialCardTreatmentSchema = z19.enum(["default", "accent-quote"]);
4201
+ var tileTreatmentSchema = z19.enum(tileTreatmentValues);
4202
+ var eyebrowTreatmentSchema = z19.enum(eyebrowTreatmentValues);
3585
4203
  function uniqueNonEmpty(values) {
3586
4204
  const uniqueValues = [...new Set(values)];
3587
4205
  const firstValue = uniqueValues[0];
@@ -3599,67 +4217,68 @@ var userFlushTreatments = uniqueNonEmpty(
3599
4217
  var userFlushBleeds = uniqueNonEmpty(
3600
4218
  userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
3601
4219
  );
3602
- var contentFrameIntentSchema = z17.discriminatedUnion("kind", [
3603
- z17.object({ kind: z17.literal("plain") }).strict(),
3604
- z17.object({
3605
- kind: z17.literal("panel"),
3606
- treatment: z17.enum(userPanelTreatments)
4220
+ var contentFrameIntentSchema = z19.discriminatedUnion("kind", [
4221
+ z19.object({ kind: z19.literal("plain") }).strict(),
4222
+ z19.object({
4223
+ kind: z19.literal("panel"),
4224
+ treatment: z19.enum(userPanelTreatments)
3607
4225
  }).strict(),
3608
- z17.object({
3609
- kind: z17.literal("flush-panel"),
3610
- treatment: z17.enum(userFlushTreatments),
3611
- bleed: z17.enum(userFlushBleeds)
4226
+ z19.object({
4227
+ kind: z19.literal("flush-panel"),
4228
+ treatment: z19.enum(userFlushTreatments),
4229
+ bleed: z19.enum(userFlushBleeds)
3612
4230
  }).strict()
3613
4231
  ]);
3614
- var blockDesignPlanSchema = z17.object({
3615
- blockId: z17.string().min(1).transform(asDesignBlockId),
3616
- blockKind: z17.string().min(1),
3617
- purpose: z17.string().min(1),
3618
- sectionSurface: z17.enum(userDesignOptionCatalog.sectionSurfaces),
4232
+ var blockDesignPlanSchema = z19.object({
4233
+ blockId: z19.string().min(1).transform(asDesignBlockId),
4234
+ blockKind: z19.string().min(1),
4235
+ purpose: z19.string().min(1),
4236
+ sectionSurface: z19.enum(userDesignOptionCatalog.sectionSurfaces),
3619
4237
  contentFrame: contentFrameIntentSchema,
3620
- itemSurface: z17.enum(userDesignOptionCatalog.itemSurfaces),
3621
- transitionAfter: z17.enum(userDesignOptionCatalog.transitions),
3622
- emphasis: z17.enum(userDesignOptionCatalog.emphases),
4238
+ itemSurface: z19.enum(userDesignOptionCatalog.itemSurfaces),
4239
+ transitionAfter: z19.enum(userDesignOptionCatalog.transitions),
4240
+ emphasis: z19.enum(userDesignOptionCatalog.emphases),
3623
4241
  sectionHeight: sectionHeightIntentSchema.optional(),
3624
4242
  heroLegibility: heroLegibilityStrategySchema.optional(),
3625
4243
  imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
3626
4244
  imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
3627
4245
  testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
4246
+ tileTreatment: tileTreatmentSchema.optional(),
3628
4247
  eyebrowTreatment: eyebrowTreatmentSchema.optional()
3629
4248
  }).strict();
3630
- var styleAuthoritySchema = z17.discriminatedUnion("kind", [
3631
- z17.object({
3632
- kind: z17.literal("theme-v2"),
4249
+ var styleAuthoritySchema = z19.discriminatedUnion("kind", [
4250
+ z19.object({
4251
+ kind: z19.literal("theme-v2"),
3633
4252
  source: designResolutionPolicySchema,
3634
- siteStyleId: z17.string().min(1).transform(asSiteStyleId),
3635
- templateId: z17.string().min(1).transform(asDesignSystemTemplateId),
3636
- templateVersion: z17.number().int().nonnegative(),
3637
- resolverVersion: z17.number().int().nonnegative()
4253
+ siteStyleId: z19.string().min(1).transform(asSiteStyleId),
4254
+ templateId: z19.string().min(1).transform(asDesignSystemTemplateId),
4255
+ templateVersion: z19.number().int().nonnegative(),
4256
+ resolverVersion: z19.number().int().nonnegative()
3638
4257
  }).strict(),
3639
- z17.object({
3640
- kind: z17.literal("legacy-raw"),
3641
- reason: z17.enum(["pre-theme-v2", "manual-runtime-fields"])
4258
+ z19.object({
4259
+ kind: z19.literal("legacy-raw"),
4260
+ reason: z19.enum(["pre-theme-v2", "manual-runtime-fields"])
3642
4261
  }).strict(),
3643
- z17.object({
3644
- kind: z17.literal("advanced-detached"),
3645
- reason: z17.literal("detached-custom-runtime-fields")
4262
+ z19.object({
4263
+ kind: z19.literal("advanced-detached"),
4264
+ reason: z19.literal("detached-custom-runtime-fields")
3646
4265
  }).strict()
3647
4266
  ]);
3648
- var blockRuntimeStyleAuthoritySchema = z17.object({
3649
- unit: z17.literal("block-runtime-fields"),
3650
- blockId: z17.string().min(1).transform(asDesignBlockId),
4267
+ var blockRuntimeStyleAuthoritySchema = z19.object({
4268
+ unit: z19.literal("block-runtime-fields"),
4269
+ blockId: z19.string().min(1).transform(asDesignBlockId),
3651
4270
  fields: nonEmptyRuntimeStyleFieldNamesSchema,
3652
4271
  authority: styleAuthoritySchema
3653
4272
  }).strict();
3654
- var persistedPageDesignStateV1Schema = z17.object({
3655
- schemaVersion: z17.literal(themeV2DesignStateSchemaVersion),
3656
- siteStyleId: z17.string().min(1).transform(asSiteStyleId),
3657
- templateId: z17.string().min(1).transform(asDesignSystemTemplateId),
3658
- templateVersion: z17.number().int().nonnegative(),
3659
- resolverVersion: z17.number().int().nonnegative(),
3660
- rhythmPresetId: z17.string().min(1),
3661
- blocks: z17.array(blockDesignPlanSchema),
3662
- styleAuthorities: z17.array(blockRuntimeStyleAuthoritySchema)
4273
+ var persistedPageDesignStateV1Schema = z19.object({
4274
+ schemaVersion: z19.literal(themeV2DesignStateSchemaVersion),
4275
+ siteStyleId: z19.string().min(1).transform(asSiteStyleId),
4276
+ templateId: z19.string().min(1).transform(asDesignSystemTemplateId),
4277
+ templateVersion: z19.number().int().nonnegative(),
4278
+ resolverVersion: z19.number().int().nonnegative(),
4279
+ rhythmPresetId: z19.string().min(1),
4280
+ blocks: z19.array(blockDesignPlanSchema),
4281
+ styleAuthorities: z19.array(blockRuntimeStyleAuthoritySchema)
3663
4282
  }).strict();
3664
4283
 
3665
4284
  // ../theme-core/src/site-styles/runtimeCompiler.ts
@@ -3688,6 +4307,14 @@ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
3688
4307
  headingColor: "primaryForeground"
3689
4308
  }
3690
4309
  },
4310
+ "brand-depth-band": {
4311
+ background: {
4312
+ type: "color",
4313
+ color: "primary-800",
4314
+ textColor: "primaryForeground",
4315
+ headingColor: "primaryForeground"
4316
+ }
4317
+ },
3691
4318
  "hero-image": {
3692
4319
  background: {
3693
4320
  type: "image",
@@ -3804,7 +4431,7 @@ var defaultComponentRuntimeRules = defineComponentRuntimeRules({
3804
4431
  });
3805
4432
 
3806
4433
  // ../theme-core/src/site-styles/generatedSchemas.ts
3807
- import { z as z18 } from "zod";
4434
+ import { z as z20 } from "zod";
3808
4435
  function uniqueNonEmpty2(values) {
3809
4436
  const uniqueValues = [...new Set(values)];
3810
4437
  const firstValue = uniqueValues[0];
@@ -3822,155 +4449,155 @@ var generatedFlushTreatments = uniqueNonEmpty2(
3822
4449
  var generatedFlushBleeds = uniqueNonEmpty2(
3823
4450
  generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
3824
4451
  );
3825
- var generatedPanelFrameSchema = z18.object({
3826
- kind: z18.literal("panel"),
3827
- treatment: z18.enum(generatedPanelTreatments)
4452
+ var generatedPanelFrameSchema = z20.object({
4453
+ kind: z20.literal("panel"),
4454
+ treatment: z20.enum(generatedPanelTreatments)
3828
4455
  }).strict();
3829
- var generatedFlushPanelFrameSchema = z18.object({
3830
- kind: z18.literal("flush-panel"),
3831
- treatment: z18.enum(generatedFlushTreatments),
3832
- bleed: z18.enum(generatedFlushBleeds)
4456
+ var generatedFlushPanelFrameSchema = z20.object({
4457
+ kind: z20.literal("flush-panel"),
4458
+ treatment: z20.enum(generatedFlushTreatments),
4459
+ bleed: z20.enum(generatedFlushBleeds)
3833
4460
  }).strict();
3834
- var generatedContentFrameIntentSchema = z18.discriminatedUnion("kind", [
3835
- z18.object({ kind: z18.literal("plain") }).strict(),
4461
+ var generatedContentFrameIntentSchema = z20.discriminatedUnion("kind", [
4462
+ z20.object({ kind: z20.literal("plain") }).strict(),
3836
4463
  generatedPanelFrameSchema,
3837
4464
  generatedFlushPanelFrameSchema
3838
4465
  ]);
3839
- var generatedSiteStyleIdSchema = z18.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
4466
+ var generatedSiteStyleIdSchema = z20.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
3840
4467
  function generatedChoiceSchema(valueSchema) {
3841
- return z18.discriminatedUnion("kind", [
3842
- z18.object({
3843
- source: z18.literal("generated"),
3844
- kind: z18.literal("auto")
4468
+ return z20.discriminatedUnion("kind", [
4469
+ z20.object({
4470
+ source: z20.literal("generated"),
4471
+ kind: z20.literal("auto")
3845
4472
  }).strict(),
3846
- z18.object({
3847
- source: z18.literal("generated"),
3848
- kind: z18.literal("explicit"),
4473
+ z20.object({
4474
+ source: z20.literal("generated"),
4475
+ kind: z20.literal("explicit"),
3849
4476
  value: valueSchema
3850
4477
  }).strict()
3851
4478
  ]);
3852
4479
  }
3853
- var generatedBlockDesignIntentSchema = z18.object({
4480
+ var generatedBlockDesignIntentSchema = z20.object({
3854
4481
  sectionSurface: generatedChoiceSchema(
3855
- z18.enum(generatedDesignOptionCatalog.sectionSurfaces)
4482
+ z20.enum(generatedDesignOptionCatalog.sectionSurfaces)
3856
4483
  ),
3857
4484
  contentFrame: generatedChoiceSchema(generatedContentFrameIntentSchema),
3858
4485
  itemSurface: generatedChoiceSchema(
3859
- z18.enum(generatedDesignOptionCatalog.itemSurfaces)
4486
+ z20.enum(generatedDesignOptionCatalog.itemSurfaces)
3860
4487
  ),
3861
4488
  transitionAfter: generatedChoiceSchema(
3862
- z18.enum(generatedDesignOptionCatalog.transitions)
4489
+ z20.enum(generatedDesignOptionCatalog.transitions)
3863
4490
  ),
3864
4491
  emphasis: generatedChoiceSchema(
3865
- z18.enum(generatedDesignOptionCatalog.emphases)
4492
+ z20.enum(generatedDesignOptionCatalog.emphases)
3866
4493
  )
3867
4494
  }).strict();
3868
- var generatedMediaCompositionIntentSchema = z18.enum([
4495
+ var generatedMediaCompositionIntentSchema = z20.enum([
3869
4496
  "none",
3870
4497
  "supporting",
3871
4498
  "dominant"
3872
4499
  ]);
3873
- var generatedDecorativeCompositionIntentSchema = z18.enum([
4500
+ var generatedDecorativeCompositionIntentSchema = z20.enum([
3874
4501
  "none",
3875
4502
  "supporting"
3876
4503
  ]);
3877
- var generatedHeroLegibilityStrategySchema = z18.enum([
4504
+ var generatedHeroLegibilityStrategySchema = z20.enum([
3878
4505
  "none",
3879
4506
  "scrim-gradient"
3880
4507
  ]);
3881
- var generatedBlockMediaIntentSchema = z18.object({
4508
+ var generatedBlockMediaIntentSchema = z20.object({
3882
4509
  media: generatedMediaCompositionIntentSchema,
3883
4510
  decorative: generatedDecorativeCompositionIntentSchema,
3884
4511
  heroLegibility: generatedChoiceSchema(generatedHeroLegibilityStrategySchema)
3885
4512
  }).strict();
3886
- var generatedBoundaryIntentSchema = z18.object({
4513
+ var generatedBoundaryIntentSchema = z20.object({
3887
4514
  transitionAfter: generatedChoiceSchema(
3888
- z18.enum(generatedDesignOptionCatalog.transitions)
4515
+ z20.enum(generatedDesignOptionCatalog.transitions)
3889
4516
  )
3890
4517
  }).strict();
3891
- var generatedPageDesignBlockIntentSchema = z18.object({
3892
- blockId: z18.string().min(1),
3893
- blockKind: z18.string().min(1),
3894
- purpose: z18.string().min(1),
4518
+ var generatedPageDesignBlockIntentSchema = z20.object({
4519
+ blockId: z20.string().min(1),
4520
+ blockKind: z20.string().min(1),
4521
+ purpose: z20.string().min(1),
3895
4522
  design: generatedBlockDesignIntentSchema,
3896
4523
  mediaIntent: generatedBlockMediaIntentSchema,
3897
4524
  boundaryIntent: generatedBoundaryIntentSchema
3898
4525
  }).strict();
3899
- var generatedPageDesignIntentSchema = z18.object({
4526
+ var generatedPageDesignIntentSchema = z20.object({
3900
4527
  siteStyleId: generatedSiteStyleIdSchema,
3901
- blocks: z18.array(generatedPageDesignBlockIntentSchema)
4528
+ blocks: z20.array(generatedPageDesignBlockIntentSchema)
3902
4529
  }).strict();
3903
4530
 
3904
4531
  // ../theme-core/src/site-styles/pageDesignAuthority.ts
3905
- import { z as z19 } from "zod";
3906
- var nonEmptyStringSchema = z19.string().min(1);
4532
+ import { z as z21 } from "zod";
4533
+ var nonEmptyStringSchema = z21.string().min(1);
3907
4534
  var blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
3908
4535
  var designBlockIdSchema = nonEmptyStringSchema.transform(asDesignBlockId);
3909
4536
  var designPageIdSchema = nonEmptyStringSchema.transform(asDesignPageId);
3910
4537
  var designEntryIdSchema = nonEmptyStringSchema.transform(asDesignEntryId);
3911
- var blockOrderIndexSchema = z19.number().int().nonnegative().transform(asBlockOrderIndex);
3912
- var publishedPageBlockSnapshotSchema = z19.object({
3913
- kind: z19.literal("published-block-content"),
4538
+ var blockOrderIndexSchema = z21.number().int().nonnegative().transform(asBlockOrderIndex);
4539
+ var publishedPageBlockSnapshotSchema = z21.object({
4540
+ kind: z21.literal("published-block-content"),
3914
4541
  blockId: designBlockIdSchema,
3915
4542
  contentVersionId: blockContentVersionIdSchema,
3916
- identifier: z19.string().nullable(),
4543
+ identifier: z21.string().nullable(),
3917
4544
  blockKind: nonEmptyStringSchema,
3918
4545
  orderIndex: blockOrderIndexSchema
3919
4546
  }).strict();
3920
- var draftPageBlockSnapshotSchema = z19.object({
3921
- kind: z19.literal("draft-block-content"),
4547
+ var draftPageBlockSnapshotSchema = z21.object({
4548
+ kind: z21.literal("draft-block-content"),
3922
4549
  blockId: designBlockIdSchema,
3923
4550
  contentVersionId: blockContentVersionIdSchema.nullable(),
3924
- identifier: z19.string().nullable(),
4551
+ identifier: z21.string().nullable(),
3925
4552
  blockKind: nonEmptyStringSchema,
3926
4553
  orderIndex: blockOrderIndexSchema
3927
4554
  }).strict();
3928
- var missingPageBlockSnapshotSchema = z19.object({
3929
- kind: z19.literal("missing-block-content"),
4555
+ var missingPageBlockSnapshotSchema = z21.object({
4556
+ kind: z21.literal("missing-block-content"),
3930
4557
  blockId: designBlockIdSchema,
3931
- identifier: z19.string().nullable(),
4558
+ identifier: z21.string().nullable(),
3932
4559
  blockKind: nonEmptyStringSchema,
3933
4560
  orderIndex: blockOrderIndexSchema,
3934
- reason: z19.enum([
4561
+ reason: z21.enum([
3935
4562
  "new-block",
3936
4563
  "deleted-content-version",
3937
4564
  "unpublished-block"
3938
4565
  ])
3939
4566
  }).strict();
3940
- var pageBlockSnapshotSchema = z19.discriminatedUnion("kind", [
4567
+ var pageBlockSnapshotSchema = z21.discriminatedUnion("kind", [
3941
4568
  publishedPageBlockSnapshotSchema,
3942
4569
  draftPageBlockSnapshotSchema,
3943
4570
  missingPageBlockSnapshotSchema
3944
4571
  ]);
3945
- var publishedPageBlockSequenceSchema = z19.array(publishedPageBlockSnapshotSchema).superRefine(validateBlockSequence);
3946
- var draftPageBlockSequenceSchema = z19.array(pageBlockSnapshotSchema).superRefine(validateBlockSequence);
3947
- var publishedPageDesignVersionDataV1Schema = z19.object({
3948
- schemaVersion: z19.literal(1),
3949
- stage: z19.literal("published"),
4572
+ var publishedPageBlockSequenceSchema = z21.array(publishedPageBlockSnapshotSchema).superRefine(validateBlockSequence);
4573
+ var draftPageBlockSequenceSchema = z21.array(pageBlockSnapshotSchema).superRefine(validateBlockSequence);
4574
+ var publishedPageDesignVersionDataV1Schema = z21.object({
4575
+ schemaVersion: z21.literal(1),
4576
+ stage: z21.literal("published"),
3950
4577
  pageId: designPageIdSchema,
3951
4578
  blockSequence: publishedPageBlockSequenceSchema
3952
4579
  }).strict();
3953
- var draftPageDesignVersionDataV1Schema = z19.object({
3954
- schemaVersion: z19.literal(1),
3955
- stage: z19.literal("draft"),
4580
+ var draftPageDesignVersionDataV1Schema = z21.object({
4581
+ schemaVersion: z21.literal(1),
4582
+ stage: z21.literal("draft"),
3956
4583
  pageId: designPageIdSchema,
3957
4584
  blockSequence: draftPageBlockSequenceSchema
3958
4585
  }).strict();
3959
- var pageDesignVersionDataV1Schema = z19.discriminatedUnion("stage", [
4586
+ var pageDesignVersionDataV1Schema = z21.discriminatedUnion("stage", [
3960
4587
  publishedPageDesignVersionDataV1Schema,
3961
4588
  draftPageDesignVersionDataV1Schema
3962
4589
  ]);
3963
- var contentVersionOwnerSchema = z19.discriminatedUnion("kind", [
3964
- z19.object({
3965
- kind: z19.literal("block"),
4590
+ var contentVersionOwnerSchema = z21.discriminatedUnion("kind", [
4591
+ z21.object({
4592
+ kind: z21.literal("block"),
3966
4593
  blockId: designBlockIdSchema
3967
4594
  }).strict(),
3968
- z19.object({
3969
- kind: z19.literal("entry"),
4595
+ z21.object({
4596
+ kind: z21.literal("entry"),
3970
4597
  entryId: designEntryIdSchema
3971
4598
  }).strict(),
3972
- z19.object({
3973
- kind: z19.literal("page"),
4599
+ z21.object({
4600
+ kind: z21.literal("page"),
3974
4601
  pageId: designPageIdSchema
3975
4602
  }).strict()
3976
4603
  ]);
@@ -3987,7 +4614,7 @@ function collectBlockSequenceIssues(snapshots) {
3987
4614
  snapshots.forEach((snapshot, index) => {
3988
4615
  if (seenBlockIds.has(snapshot.blockId)) {
3989
4616
  issues.push({
3990
- code: z19.ZodIssueCode.custom,
4617
+ code: z21.ZodIssueCode.custom,
3991
4618
  message: `Duplicate blockId in page design blockSequence: ${snapshot.blockId}`,
3992
4619
  path: [index, "blockId"]
3993
4620
  });
@@ -3996,7 +4623,7 @@ function collectBlockSequenceIssues(snapshots) {
3996
4623
  const orderIndex = snapshot.orderIndex;
3997
4624
  if (seenOrderIndexes.has(orderIndex)) {
3998
4625
  issues.push({
3999
- code: z19.ZodIssueCode.custom,
4626
+ code: z21.ZodIssueCode.custom,
4000
4627
  message: `Duplicate orderIndex in page design blockSequence: ${String(orderIndex)}`,
4001
4628
  path: [index, "orderIndex"]
4002
4629
  });
@@ -4004,7 +4631,7 @@ function collectBlockSequenceIssues(snapshots) {
4004
4631
  seenOrderIndexes.add(orderIndex);
4005
4632
  if (previousOrderIndex !== null && orderIndex <= previousOrderIndex) {
4006
4633
  issues.push({
4007
- code: z19.ZodIssueCode.custom,
4634
+ code: z21.ZodIssueCode.custom,
4008
4635
  message: `Expected orderIndex greater than ${String(previousOrderIndex)} for blockSequence position ${String(index)}; received ${String(orderIndex)}.`,
4009
4636
  path: [index, "orderIndex"]
4010
4637
  });
@@ -4015,7 +4642,7 @@ function collectBlockSequenceIssues(snapshots) {
4015
4642
  }
4016
4643
 
4017
4644
  // ../theme-core/src/site-styles/tokenRecipes.ts
4018
- import { z as z20 } from "zod";
4645
+ import { z as z22 } from "zod";
4019
4646
  var themeTokenRecipeOptions = {
4020
4647
  palette: ["brand-led", "warm-neutral", "high-contrast", "soft-natural"],
4021
4648
  contrast: ["standard", "strong", "maximum"],
@@ -4030,50 +4657,16 @@ var themeTokenRecipeOptions = {
4030
4657
  spacing: ["compact", "regular", "airy"],
4031
4658
  motion: ["none", "subtle", "expressive"]
4032
4659
  };
4033
- var themeTokenRecipesSchema = z20.object({
4034
- palette: z20.enum(themeTokenRecipeOptions.palette),
4035
- contrast: z20.enum(themeTokenRecipeOptions.contrast),
4036
- radius: z20.enum(themeTokenRecipeOptions.radius),
4037
- shadow: z20.enum(themeTokenRecipeOptions.shadow),
4038
- typography: z20.enum(themeTokenRecipeOptions.typography),
4039
- spacing: z20.enum(themeTokenRecipeOptions.spacing),
4040
- motion: z20.enum(themeTokenRecipeOptions.motion)
4660
+ var themeTokenRecipesSchema = z22.object({
4661
+ palette: z22.enum(themeTokenRecipeOptions.palette),
4662
+ contrast: z22.enum(themeTokenRecipeOptions.contrast),
4663
+ radius: z22.enum(themeTokenRecipeOptions.radius),
4664
+ shadow: z22.enum(themeTokenRecipeOptions.shadow),
4665
+ typography: z22.enum(themeTokenRecipeOptions.typography),
4666
+ spacing: z22.enum(themeTokenRecipeOptions.spacing),
4667
+ motion: z22.enum(themeTokenRecipeOptions.motion)
4041
4668
  });
4042
4669
 
4043
- // ../theme-core/src/tokens/blockColorTokens.ts
4044
- var blockColorTokenNames = [
4045
- "text",
4046
- "heading",
4047
- "mutedText",
4048
- "surface",
4049
- "background",
4050
- "foreground",
4051
- "border",
4052
- "primary",
4053
- "secondary",
4054
- "accent",
4055
- "success",
4056
- "warning",
4057
- "info",
4058
- "error",
4059
- "destructive",
4060
- "scrim",
4061
- "shadow",
4062
- // Common "on*" tokens used when rendering colored chips/badges.
4063
- "onPrimary",
4064
- "onSecondary",
4065
- "onAccent",
4066
- "onSuccess",
4067
- "onWarning",
4068
- "onInfo",
4069
- "onError",
4070
- "onDestructive",
4071
- "onSurface"
4072
- ];
4073
- var blockColorTokenNameSet = new Set(
4074
- blockColorTokenNames
4075
- );
4076
-
4077
4670
  // ../theme-core/src/palette/utils/colorConversion.ts
4078
4671
  function hexToRgb(hex) {
4079
4672
  const h = hex.replace(/^#/, "");
@@ -9374,6 +9967,12 @@ var containerResponsiveThemeCss = `/*
9374
9967
  padding: 2rem;
9375
9968
  }
9376
9969
 
9970
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-icon {
9971
+ display: flex;
9972
+ justify-content: center;
9973
+ margin-bottom: 1rem;
9974
+ }
9975
+
9377
9976
  :where(.theme-scope) :where([data-block="event-registration"]) .er-actions {
9378
9977
  display: flex;
9379
9978
  justify-content: space-between;
@@ -13623,15 +14222,15 @@ var containerResponsiveThemeCss = `/*
13623
14222
  text-align: left;
13624
14223
  padding: 1rem;
13625
14224
  border-radius: var(--rb-event-tile-radius, calc(var(--rb-block-radius) * 0.75));
13626
- border-style: var(--rb-event-tile-border-style, var(--rb-border-style, solid));
13627
- border-width: var(--rb-event-tile-border-width, var(--rb-border-width, 1px));
13628
- border-color: var(--rb-event-tile-border, rgb(var(--tb-border)));
13629
- background: var(--rb-event-tile-bg, transparent);
14225
+ border-style: var(--rb-tile-border-style, var(--rb-event-tile-border-style, var(--rb-border-style, solid)));
14226
+ border-width: var(--rb-tile-border-width, var(--rb-event-tile-border-width, var(--rb-border-width, 1px)));
14227
+ border-color: var(--rb-tile-border, var(--rb-event-tile-border, rgb(var(--tb-border))));
14228
+ background: var(--rb-tile-bg, var(--rb-event-tile-bg, transparent));
13630
14229
  transition: border-color var(--rb-block-transition) ease,
13631
14230
  background-color var(--rb-block-transition) ease,
13632
14231
  opacity var(--rb-block-transition) ease;
13633
14232
  display: block;
13634
- opacity: var(--rb-event-tile-opacity, 1);
14233
+ opacity: var(--rb-tile-opacity, var(--rb-event-tile-opacity, 1));
13635
14234
  color: inherit;
13636
14235
  text-decoration: none;
13637
14236
  }
@@ -13642,6 +14241,25 @@ var containerResponsiveThemeCss = `/*
13642
14241
  gap: var(--rb-event-tiles-grid-gap, 0.5rem);
13643
14242
  }
13644
14243
 
14244
+ :where(.theme-scope) .rb-tile-treatment-quiet {
14245
+ --rb-tile-bg: color-mix(in oklab, rgb(var(--tb-surface)), rgb(var(--tb-muted)) 48%);
14246
+ --rb-tile-border: color-mix(in oklab, rgb(var(--tb-border)), transparent 35%);
14247
+ --rb-tile-border-hover: color-mix(in oklab, rgb(var(--tb-primary)), transparent 40%);
14248
+ }
14249
+
14250
+ :where(.theme-scope) .rb-tile-treatment-brand-depth {
14251
+ --rb-brand-depth-surface: rgb(var(--tb-primary-800));
14252
+ --rb-brand-depth-tile-surface: rgb(var(--tb-primary-900));
14253
+ --rb-brand-depth-tile-surface-selected: rgb(var(--tb-primary-950));
14254
+ --rb-tile-bg: var(--rb-brand-depth-tile-surface);
14255
+ --rb-tile-bg-selected: var(--rb-brand-depth-tile-surface-selected);
14256
+ --rb-tile-border: transparent;
14257
+ --rb-tile-border-hover: transparent;
14258
+ --rb-tile-border-selected: transparent;
14259
+ --rb-tile-border-width: 0;
14260
+ --rb-event-tile-radius: var(--rb-block-radius);
14261
+ }
14262
+
13645
14263
  @container rb-site (min-width: 768px) {
13646
14264
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
13647
14265
  :where(.theme-scope) .rb-tiles-grid {
@@ -13660,13 +14278,13 @@ var containerResponsiveThemeCss = `/*
13660
14278
  }
13661
14279
 
13662
14280
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):hover:not(:disabled) {
13663
- border-color: var(--rb-event-tile-border-hover, rgba(var(--tb-primary), 0.5));
13664
- opacity: var(--rb-event-tile-hover-opacity, var(--rb-event-tile-opacity, 1));
14281
+ border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover, rgba(var(--tb-primary), 0.5)));
14282
+ opacity: var(--rb-tile-hover-opacity, var(--rb-event-tile-hover-opacity, var(--rb-tile-opacity, var(--rb-event-tile-opacity, 1))));
13665
14283
  }
13666
14284
 
13667
14285
  :where(.theme-scope) :where(.rb-tile--selected, .er-event-card--selected) {
13668
- border-color: var(--rb-event-tile-border-selected, rgb(var(--tb-primary)));
13669
- background: var(--rb-event-tile-bg-selected, rgba(var(--tb-primary), 0.1));
14286
+ border-color: var(--rb-tile-border-selected, var(--rb-event-tile-border-selected, rgb(var(--tb-primary))));
14287
+ background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected, rgba(var(--tb-primary), 0.1)));
13670
14288
  }
13671
14289
 
13672
14290
  :where(.theme-scope) :where(.rb-tile--disabled, .er-event-card--disabled) {
@@ -15042,6 +15660,32 @@ var containerResponsiveThemeCss = `/*
15042
15660
  :where(.theme-scope) :where([data-rb-background-video="true"]) {
15043
15661
  display: none !important;
15044
15662
  }
15663
+ }
15664
+
15665
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback {
15666
+ border: 1px solid rgb(var(--tb-text, 17 24 39) / 0.12);
15667
+ border-radius: 1rem;
15668
+ padding: 0.875rem 1rem;
15669
+ background: rgb(var(--tb-surface, 255 255 255) / 0.92);
15670
+ color: rgb(var(--tb-text, 17 24 39));
15671
+ }
15672
+
15673
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="success"] {
15674
+ border-color: rgba(var(--tb-success, 34 197 94), 0.3);
15675
+ background: rgba(var(--tb-success, 34 197 94), 0.1);
15676
+ color: rgb(var(--tb-success, 34 197 94));
15677
+ }
15678
+
15679
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="warning"] {
15680
+ border-color: rgba(var(--tb-warning, 245 158 11), 0.35);
15681
+ background: rgba(var(--tb-warning, 245 158 11), 0.12);
15682
+ color: rgb(var(--tb-warning, 245 158 11));
15683
+ }
15684
+
15685
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="error"] {
15686
+ border-color: rgba(var(--tb-destructive, 239 68 68), 0.3);
15687
+ background: rgba(var(--tb-destructive, 239 68 68), 0.1);
15688
+ color: rgb(var(--tb-destructive, 239 68 68));
15045
15689
  }`;
15046
15690
 
15047
15691
  // ../theme-core/src/ThemeScopeCore.tsx
@@ -15312,6 +15956,9 @@ function buildThemeRuntimeFromBridge(config) {
15312
15956
  return cssVars;
15313
15957
  }
15314
15958
 
15959
+ // ../theme-core/src/siteChrome.tsx
15960
+ import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
15961
+
15315
15962
  // src/theme-bridge/generateCssVars.ts
15316
15963
  var SCOPE_ID = "sdk";
15317
15964
  var SYSTEM_FONT_STACK2 = 'ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"';
@@ -15496,7 +16143,7 @@ function generateOverrideCss(overrides) {
15496
16143
  }
15497
16144
 
15498
16145
  // src/theme-bridge/ThemeBridgeProvider.tsx
15499
- import { jsx as jsx6 } from "react/jsx-runtime";
16146
+ import { jsx as jsx7 } from "react/jsx-runtime";
15500
16147
  function ThemeBridgeProvider({
15501
16148
  config,
15502
16149
  children,
@@ -15517,7 +16164,7 @@ function ThemeBridgeProvider({
15517
16164
  }
15518
16165
  return style;
15519
16166
  }, [cssVars]);
15520
- return /* @__PURE__ */ jsx6(
16167
+ return /* @__PURE__ */ jsx7(
15521
16168
  ThemeScopeCore,
15522
16169
  {
15523
16170
  cssVars: cssVarsStyle,