@riverbankcms/sdk 0.62.2 → 0.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +11 -0
  2. package/dist/_dts/api/src/accessAdmin.d.ts +71 -2
  3. package/dist/_dts/api/src/aiEndpoints.d.ts +2 -2
  4. package/dist/_dts/api/src/billing.d.ts +46 -10
  5. package/dist/_dts/api/src/bookingClosures.d.ts +106 -0
  6. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  7. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +18 -0
  8. package/dist/_dts/api/src/bookingRecords.d.ts +27 -1
  9. package/dist/_dts/api/src/calendar.d.ts +11 -1
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +12 -1
  11. package/dist/_dts/api/src/contentRuntime.d.ts +3 -0
  12. package/dist/_dts/api/src/contentVersionHistory.d.ts +52 -0
  13. package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +45 -0
  14. package/dist/_dts/api/src/courses.d.ts +3 -0
  15. package/dist/_dts/api/src/endpoints.d.ts +133 -6
  16. package/dist/_dts/api/src/index.d.ts +12 -6
  17. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +29 -0
  18. package/dist/_dts/api/src/sdkContracts.d.ts +13 -1
  19. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +31 -7
  20. package/dist/_dts/api/src/siteMembers.d.ts +10 -1
  21. package/dist/_dts/api/src/siteOnboarding.d.ts +4 -0
  22. package/dist/_dts/api/src/siteOperations.d.ts +10 -0
  23. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +62 -12
  24. package/dist/_dts/api/src/types.d.ts +4 -2
  25. package/dist/_dts/api/src/url.d.ts +3 -3
  26. package/dist/_dts/billing/src/plans/registry.d.ts +1 -0
  27. package/dist/_dts/billing/src/plans/types.d.ts +9 -0
  28. package/dist/_dts/block-form/src/FormRenderer.d.ts +38 -0
  29. package/dist/_dts/block-form/src/backend/adapter.d.ts +7 -0
  30. package/dist/_dts/block-form/src/backend/hooks/useRepeaterBackend.d.ts +34 -0
  31. package/dist/_dts/block-form/src/backend/hooks.d.ts +66 -0
  32. package/dist/_dts/block-form/src/backend/index.d.ts +12 -0
  33. package/dist/_dts/block-form/src/backend/rhf-backend.d.ts +34 -0
  34. package/dist/_dts/block-form/src/backend/store-backend.d.ts +60 -0
  35. package/dist/_dts/block-form/src/backend/types.d.ts +137 -0
  36. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +22 -0
  37. package/dist/_dts/block-form/src/backend/utils/getErrorMessage.d.ts +1 -0
  38. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +70 -0
  39. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +1 -0
  40. package/dist/_dts/block-form/src/client/index.d.ts +30 -0
  41. package/dist/_dts/block-form/src/context/BlockContext.d.ts +29 -0
  42. package/dist/_dts/block-form/src/context/DisplayLabelResolverContext.d.ts +33 -0
  43. package/dist/_dts/block-form/src/context/FieldPreviewResolverContext.d.ts +30 -0
  44. package/dist/_dts/block-form/src/context/ImageResolveContext.d.ts +1 -0
  45. package/dist/_dts/block-form/src/context/index.d.ts +4 -0
  46. package/dist/_dts/block-form/src/fields/props.d.ts +48 -0
  47. package/dist/_dts/block-form/src/fields/types.d.ts +223 -0
  48. package/dist/_dts/block-form/src/index.d.ts +22 -0
  49. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +37 -0
  50. package/dist/_dts/block-form/src/manifest/canonicalValidation.d.ts +5 -0
  51. package/dist/_dts/block-form/src/manifest/filterSdkTabs.d.ts +44 -0
  52. package/dist/_dts/block-form/src/manifest/manifestFormAdapter.d.ts +61 -0
  53. package/dist/_dts/block-form/src/manifest/mergeManifestWithSdkOptions.d.ts +24 -0
  54. package/dist/_dts/block-form/src/palette/PaletteContext.d.ts +11 -0
  55. package/dist/_dts/block-form/src/registry/schemas.d.ts +105 -0
  56. package/dist/_dts/block-form/src/registry/widgets.d.ts +59 -0
  57. package/dist/_dts/block-form/src/sdk-config/SdkConfigContext.d.ts +110 -0
  58. package/dist/_dts/block-form/src/sdk-config/hooks.d.ts +21 -0
  59. package/dist/_dts/block-form/src/sdk-config/index.d.ts +2 -0
  60. package/dist/_dts/block-form/src/shared/disclosure.d.ts +1 -0
  61. package/dist/_dts/block-form/src/shared/hooks/index.d.ts +2 -0
  62. package/dist/_dts/block-form/src/shared/hooks/useCoarsePointer.d.ts +5 -0
  63. package/dist/_dts/block-form/src/shared/hooks/useContainerWidth.d.ts +6 -0
  64. package/dist/_dts/block-form/src/utils/VisibilityWrapper.d.ts +25 -0
  65. package/dist/_dts/block-form/src/utils/computeWatchedPath.d.ts +18 -0
  66. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +9 -0
  67. package/dist/_dts/block-form/src/utils/fieldHelpers.d.ts +94 -0
  68. package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +22 -0
  69. package/dist/_dts/block-form/src/utils/slug.d.ts +3 -0
  70. package/dist/_dts/block-form/src/utils/typeGuards.d.ts +3 -0
  71. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorField.d.ts +10 -0
  72. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorWidget.d.ts +23 -0
  73. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/index.d.ts +2 -0
  74. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +13 -0
  75. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +17 -0
  76. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/index.d.ts +2 -0
  77. package/dist/_dts/block-form/src/widgets/BooleanField/BooleanField.d.ts +6 -0
  78. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldDefaults.d.ts +6 -0
  79. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldSchema.d.ts +7 -0
  80. package/dist/_dts/block-form/src/widgets/BooleanField/index.d.ts +3 -0
  81. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/BoxStyleWidget.d.ts +17 -0
  82. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/index.d.ts +1 -0
  83. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldDefaults.d.ts +3 -0
  84. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldSchema.d.ts +4 -0
  85. package/dist/_dts/block-form/src/widgets/DateField/DateField.d.ts +23 -0
  86. package/dist/_dts/block-form/src/widgets/DateField/dateFieldDefaults.d.ts +8 -0
  87. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +9 -0
  88. package/dist/_dts/block-form/src/widgets/DateField/datePickerPopover.d.ts +32 -0
  89. package/dist/_dts/block-form/src/widgets/DateField/index.d.ts +4 -0
  90. package/dist/_dts/block-form/src/widgets/DateTimeField/DateTimeField.d.ts +30 -0
  91. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldDefaults.d.ts +8 -0
  92. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +11 -0
  93. package/dist/_dts/block-form/src/widgets/DateTimeField/index.d.ts +4 -0
  94. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/dateTimeUtils.d.ts +22 -0
  95. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/index.d.ts +1 -0
  96. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldDefaults.d.ts +3 -0
  97. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldSchema.d.ts +4 -0
  98. package/dist/_dts/block-form/src/widgets/Field.d.ts +21 -0
  99. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +32 -0
  100. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/FieldSettingsModal.d.ts +34 -0
  101. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/index.d.ts +2 -0
  102. package/dist/_dts/block-form/src/widgets/GroupField/GroupField.d.ts +23 -0
  103. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldDefaults.d.ts +9 -0
  104. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldSchema.d.ts +10 -0
  105. package/dist/_dts/block-form/src/widgets/GroupField/index.d.ts +3 -0
  106. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldDefaults.d.ts +10 -0
  107. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldSchema.d.ts +3 -0
  108. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldDefaults.d.ts +6 -0
  109. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldSchema.d.ts +6 -0
  110. package/dist/_dts/block-form/src/widgets/ModalGroupField/ModalGroupField.d.ts +17 -0
  111. package/dist/_dts/block-form/src/widgets/ModalGroupField/index.d.ts +3 -0
  112. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldDefaults.d.ts +18 -0
  113. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldSchema.d.ts +14 -0
  114. package/dist/_dts/block-form/src/widgets/NumberField/NumberField.d.ts +7 -0
  115. package/dist/_dts/block-form/src/widgets/NumberField/index.d.ts +3 -0
  116. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldDefaults.d.ts +6 -0
  117. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldSchema.d.ts +7 -0
  118. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/PresetOrCustomField.d.ts +11 -0
  119. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/index.d.ts +4 -0
  120. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldDefaults.d.ts +3 -0
  121. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldSchema.d.ts +4 -0
  122. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/types.d.ts +37 -0
  123. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldDefaults.d.ts +3 -0
  124. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldSchema.d.ts +4 -0
  125. package/dist/_dts/block-form/src/widgets/RepeaterField/RepeaterField.d.ts +26 -0
  126. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterDragHandle.d.ts +8 -0
  127. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterError.d.ts +11 -0
  128. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterHeader.d.ts +10 -0
  129. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterLayoutGrid.d.ts +27 -0
  130. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +19 -0
  131. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +23 -0
  132. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +16 -0
  133. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowContent.d.ts +19 -0
  134. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterTabbedEditDialog.d.ts +16 -0
  135. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +26 -0
  136. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +20 -0
  137. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +11 -0
  138. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +34 -0
  139. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +6 -0
  140. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/layoutGridCapacityDecision.d.ts +22 -0
  141. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLayoutGridCapacity.d.ts +20 -0
  142. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +23 -0
  143. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +10 -0
  144. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterRowErrors.d.ts +12 -0
  145. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterVisibility.d.ts +6 -0
  146. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +12 -0
  147. package/dist/_dts/block-form/src/widgets/RepeaterField/index.d.ts +3 -0
  148. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldDefaults.d.ts +7 -0
  149. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldSchema.d.ts +8 -0
  150. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildItemLabel.d.ts +7 -0
  151. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +7 -0
  152. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/createDefaultItem.d.ts +6 -0
  153. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFieldGroups.d.ts +8 -0
  154. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFields.d.ts +22 -0
  155. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +10 -0
  156. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/layoutGridCapacityContext.d.ts +2 -0
  157. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +43 -0
  158. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterPresentation.d.ts +24 -0
  159. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +12 -0
  160. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +20 -0
  161. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +16 -0
  162. package/dist/_dts/block-form/src/widgets/SdkSelectField/SdkSelectField.d.ts +11 -0
  163. package/dist/_dts/block-form/src/widgets/SdkSelectField/index.d.ts +1 -0
  164. package/dist/_dts/block-form/src/widgets/SelectField/SelectField.d.ts +7 -0
  165. package/dist/_dts/block-form/src/widgets/SelectField/index.d.ts +3 -0
  166. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldDefaults.d.ts +6 -0
  167. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldSchema.d.ts +7 -0
  168. package/dist/_dts/block-form/src/widgets/SelectWidget.d.ts +34 -0
  169. package/dist/_dts/block-form/src/widgets/SettingsModal/SettingsModal.d.ts +17 -0
  170. package/dist/_dts/block-form/src/widgets/SettingsModal/index.d.ts +2 -0
  171. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +16 -0
  172. package/dist/_dts/block-form/src/widgets/SliderField/index.d.ts +1 -0
  173. package/dist/_dts/block-form/src/widgets/SlugField/SlugField.d.ts +39 -0
  174. package/dist/_dts/block-form/src/widgets/SlugField/hooks/index.d.ts +1 -0
  175. package/dist/_dts/block-form/src/widgets/SlugField/hooks/useSlugAutoGeneration.d.ts +29 -0
  176. package/dist/_dts/block-form/src/widgets/SlugField/index.d.ts +5 -0
  177. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldDefaults.d.ts +8 -0
  178. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldSchema.d.ts +14 -0
  179. package/dist/_dts/block-form/src/widgets/SlugField/utils/index.d.ts +2 -0
  180. package/dist/_dts/block-form/src/widgets/SlugField/utils/pathUtils.d.ts +30 -0
  181. package/dist/_dts/block-form/src/widgets/SlugField/utils/slugUtils.d.ts +17 -0
  182. package/dist/_dts/block-form/src/widgets/TabGroupField/TabGroupField.d.ts +13 -0
  183. package/dist/_dts/block-form/src/widgets/TabGroupField/index.d.ts +3 -0
  184. package/dist/_dts/block-form/src/widgets/TabGroupField/tabGroupFieldSchema.d.ts +25 -0
  185. package/dist/_dts/block-form/src/widgets/TabGroupField/types.d.ts +46 -0
  186. package/dist/_dts/block-form/src/widgets/TextField/TextField.d.ts +7 -0
  187. package/dist/_dts/block-form/src/widgets/TextField/index.d.ts +3 -0
  188. package/dist/_dts/block-form/src/widgets/TextField/textFieldDefaults.d.ts +6 -0
  189. package/dist/_dts/block-form/src/widgets/TextField/textFieldSchema.d.ts +7 -0
  190. package/dist/_dts/block-form/src/widgets/TextInputWidget.d.ts +20 -0
  191. package/dist/_dts/block-form/src/widgets/TimeField/TimeField.d.ts +23 -0
  192. package/dist/_dts/block-form/src/widgets/TimeField/index.d.ts +3 -0
  193. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldDefaults.d.ts +8 -0
  194. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +9 -0
  195. package/dist/_dts/block-form/src/widgets/ToggleWidget.d.ts +16 -0
  196. package/dist/_dts/block-form/src/widgets/UrlField/UrlField.d.ts +23 -0
  197. package/dist/_dts/block-form/src/widgets/UrlField/index.d.ts +3 -0
  198. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldDefaults.d.ts +8 -0
  199. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldSchema.d.ts +9 -0
  200. package/dist/_dts/block-form/src/widgets/constants.d.ts +58 -0
  201. package/dist/_dts/block-form/src/widgets/groupFieldHelpers.d.ts +61 -0
  202. package/dist/_dts/block-form/src/widgets/index.d.ts +20 -0
  203. package/dist/_dts/block-form/src/widgets/selectValueMapping.d.ts +9 -0
  204. package/dist/_dts/block-form/src/widgets/types/modalConfig.d.ts +18 -0
  205. package/dist/_dts/block-form/src/widgets/utils/readNumericUiConfig.d.ts +10 -0
  206. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  207. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +4 -0
  208. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +2 -0
  209. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -1
  210. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -2
  211. package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +1 -1
  212. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1 -1
  213. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1 -1
  214. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -2
  215. package/dist/_dts/blocks/src/system/blocks/columns.d.ts +1 -1
  216. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  217. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1 -1
  218. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +25 -0
  219. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -2
  220. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -2
  221. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1 -1
  222. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +1 -1
  223. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1 -1
  224. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +1 -1
  225. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  226. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +6 -6
  227. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1 -1
  228. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -2
  229. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
  230. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1 -1
  231. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  232. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +1 -1
  233. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +1 -1
  234. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +1 -1
  235. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +1 -1
  236. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +1 -1
  237. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +1 -1
  238. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +1 -1
  239. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  240. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +4 -1
  241. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +4 -1
  242. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +4 -1
  243. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +12 -0
  244. package/dist/_dts/blocks/src/system/runtime/shared/components/FieldValidationMessage.d.ts +19 -0
  245. package/dist/_dts/blocks/src/system/runtime/shared/components/TerminalPanel.d.ts +8 -2
  246. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +3 -1
  247. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  248. package/dist/_dts/blocks/src/system/transforms/registry/_utils/themeColorResolution.d.ts +7 -0
  249. package/dist/_dts/calendar/src/grid.d.ts +60 -0
  250. package/dist/_dts/calendar/src/group.d.ts +14 -0
  251. package/dist/_dts/calendar/src/index.d.ts +6 -0
  252. package/dist/_dts/calendar/src/lane-packing.d.ts +28 -0
  253. package/dist/_dts/calendar/src/timetable.d.ts +90 -0
  254. package/dist/_dts/calendar/src/timezone.d.ts +19 -0
  255. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +24 -0
  256. package/dist/_dts/content-editor/src/index.d.ts +2 -4
  257. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +1 -0
  258. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -0
  259. package/dist/_dts/core/src/booking-date-time.d.ts +1 -0
  260. package/dist/_dts/core/src/branded.d.ts +18 -0
  261. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1192 -234
  262. package/dist/_dts/db/src/schemas/forms.d.ts +1 -0
  263. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  264. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +7 -7
  265. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -2
  266. package/dist/_dts/editor-blocks/src/widgets/link/index.d.ts +1 -0
  267. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -1
  268. package/dist/_dts/preview-next/src/client/blocks/composer/composePageFromBlocks.d.ts +2 -1
  269. package/dist/_dts/preview-next/src/client/blocks/composer/index.d.ts +2 -2
  270. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -1
  271. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +31 -8
  272. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +6 -5
  273. package/dist/_dts/preview-next/src/client/blocks/previewProjection/aiProposalProjection.d.ts +7 -0
  274. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +7 -0
  275. package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +4 -0
  276. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +5 -0
  277. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +72 -0
  278. package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
  279. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +6 -5
  280. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +2 -1
  281. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +12 -1
  282. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +10 -5
  283. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -1
  284. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +4 -0
  285. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +49 -0
  286. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +6 -0
  287. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +15 -2
  288. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -1
  289. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControlStyles.d.ts +1 -0
  290. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +1 -0
  291. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +9 -1
  292. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +13 -0
  293. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +8 -2
  294. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +49 -0
  295. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +18 -0
  296. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +5 -0
  297. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +2 -0
  298. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +17 -0
  299. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +6 -0
  300. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -0
  301. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +3 -0
  302. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +77 -0
  303. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +45 -0
  304. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +21 -0
  305. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +30 -0
  306. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +9 -0
  307. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +50 -0
  308. package/dist/_dts/sdk/src/cli/merge-remote/stableJson.d.ts +3 -0
  309. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +85 -0
  310. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +2 -0
  311. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +30 -0
  312. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +1 -0
  313. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -1
  314. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -1
  315. package/dist/_dts/sdk/src/version.d.ts +1 -1
  316. package/dist/_dts/site-commands/src/adapter.d.ts +23 -0
  317. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +8 -0
  318. package/dist/_dts/site-commands/src/commands.d.ts +1944 -0
  319. package/dist/_dts/site-commands/src/domain.d.ts +104 -0
  320. package/dist/_dts/site-commands/src/guards.d.ts +1 -0
  321. package/dist/_dts/site-commands/src/index.d.ts +9 -0
  322. package/dist/_dts/site-commands/src/metadata.d.ts +412 -0
  323. package/dist/_dts/site-commands/src/planner.d.ts +51 -0
  324. package/dist/_dts/site-commands/src/refContributions.d.ts +10 -0
  325. package/dist/_dts/site-commands/src/refs.d.ts +75 -0
  326. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +10 -0
  327. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  328. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  329. package/dist/_dts/theme-core/src/index.d.ts +1 -1
  330. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +2 -21
  331. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -67
  332. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -62
  333. package/dist/_dts/theme-core/src/site-styles/appearancePresets.d.ts +1 -1
  334. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
  335. package/dist/_dts/theme-core/src/site-styles/customizableSurfaces.d.ts +94 -0
  336. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +59 -0
  337. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +4 -0
  338. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -0
  339. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +155 -0
  340. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +15 -0
  341. package/dist/_dts/theme-core/src/site-styles/index.d.ts +6 -0
  342. package/dist/_dts/theme-core/src/site-styles/pageDesignAuthority.d.ts +7 -0
  343. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +25 -0
  344. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +15 -1
  345. package/dist/_dts/theme-core/src/site-styles/records.d.ts +1 -0
  346. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +96 -0
  347. package/dist/_dts/theme-core/src/site-styles/types.d.ts +1 -2
  348. package/dist/_dts/theme-core/src/siteChrome.d.ts +44 -2
  349. package/dist/_dts/theme-core/src/tokens/colorTokenParts.d.ts +13 -0
  350. package/dist/_dts/theme-core/src/tokens/index.d.ts +2 -0
  351. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +29 -0
  352. package/dist/_dts/theme-core/src/utils/tokenOrColor.d.ts +27 -1
  353. package/dist/cli/index.mjs +5049 -932
  354. package/dist/cli/init-docs/content/cli-reference.md +18 -0
  355. package/dist/client/bookings.mjs +544 -393
  356. package/dist/client/client.mjs +5189 -4144
  357. package/dist/client/hooks.mjs +3233 -2540
  358. package/dist/client/rendering/client.mjs +4649 -3597
  359. package/dist/client/rendering/islands.mjs +19533 -13480
  360. package/dist/client/rendering.mjs +5218 -4171
  361. package/dist/preview-next/before-render.mjs +161 -6
  362. package/dist/preview-next/client/runtime.mjs +5676 -3565
  363. package/dist/preview-next/editor-base.css +31 -0
  364. package/dist/preview-next/middleware.mjs +154 -6
  365. package/dist/server/components.mjs +3333 -2575
  366. package/dist/server/config-validation.mjs +3447 -2754
  367. package/dist/server/config.mjs +3450 -2757
  368. package/dist/server/data.mjs +3233 -2540
  369. package/dist/server/index.mjs +730 -543
  370. package/dist/server/next.mjs +3651 -2893
  371. package/dist/server/page-converter.mjs +2512 -2031
  372. package/dist/server/prebuild.mjs +1 -1
  373. package/dist/server/rendering/server.mjs +3333 -2575
  374. package/dist/server/rendering.mjs +3352 -2594
  375. package/dist/server/routing.mjs +3351 -2640
  376. package/dist/server/server.mjs +3262 -2569
  377. package/dist/server/theme-bridge.mjs +1260 -767
  378. package/dist/server/theme.mjs +623 -498
  379. package/dist/styles/index.css +33 -0
  380. package/package.json +2 -1
  381. package/dist/_dts/blocks/src/system/transforms/registry/_utils/colorResolution.d.ts +0 -13
  382. package/dist/_dts/content-editor/src/ai/patch/allowed.d.ts +0 -2
  383. package/dist/_dts/content-editor/src/ai/patch/diff.d.ts +0 -17
  384. package/dist/_dts/content-editor/src/ai/patch/schema.d.ts +0 -49
  385. package/dist/_dts/preview-next/src/client/blocks/overlay.d.ts +0 -30
  386. package/dist/_dts/theme-core/src/site-styles/siteChromeAppearancePresets.d.ts +0 -67
@@ -77,6 +77,9 @@ function asBlockOrderIndex(value) {
77
77
  }
78
78
  return value;
79
79
  }
80
+ function asLayoutVariantKey(value) {
81
+ return brandNonEmptyString(value, "LayoutVariantKey");
82
+ }
80
83
  function asAppearancePresetId(value) {
81
84
  return brandNonEmptyString(value, "AppearancePresetId");
82
85
  }
@@ -550,84 +553,35 @@ var blockAppearancePresets = [
550
553
  })
551
554
  ];
552
555
 
553
- // ../theme-core/src/site-styles/siteChromeAppearancePresets.ts
554
- function defineSiteChromeAppearancePreset(preset) {
555
- return preset;
556
- }
557
- var siteChromeAppearancePresets = [
558
- defineSiteChromeAppearancePreset({
559
- kind: "site-chrome",
560
- id: "header-clean-base",
561
- target: "site-header",
562
- label: "Clean base header",
563
- header: {
564
- surface: {
565
- kind: "neutral-solid",
566
- token: "surface",
567
- textColorToken: "text"
568
- },
569
- navTreatment: "minimal",
570
- dropdownTreatment: "surface",
571
- ctaTreatment: "default",
572
- behavior: "default"
573
- }
574
- }),
575
- defineSiteChromeAppearancePreset({
576
- kind: "site-chrome",
577
- id: "site-header-brand-solid-inverted-cta",
578
- target: "site-header",
579
- label: "Brand solid header with inverted CTA",
580
- header: {
581
- surface: {
582
- kind: "brand-solid",
583
- token: "primary",
584
- textColorToken: "primaryForeground"
585
- },
586
- navTreatment: "uppercase-underline",
587
- dropdownTreatment: "matched-solid",
588
- ctaTreatment: "inverted",
589
- behavior: "sticky-shrink"
590
- }
591
- }),
592
- defineSiteChromeAppearancePreset({
593
- kind: "site-chrome",
594
- id: "footer-muted-grounding",
595
- target: "site-footer",
596
- label: "Muted grounding footer",
597
- footer: {
598
- kind: "grounding",
599
- surface: "muted-band",
600
- emphasis: "low"
601
- }
602
- }),
603
- defineSiteChromeAppearancePreset({
604
- kind: "site-chrome",
605
- id: "site-footer-brand-two-band",
606
- target: "site-footer",
607
- label: "Two-band brand footer",
608
- footer: {
609
- kind: "brand-two-band",
610
- surface: {
611
- token: "primary",
612
- shade: "800",
613
- textColorToken: "primaryForeground"
614
- },
615
- bottomBand: {
616
- token: "primary",
617
- shade: "900",
618
- textColorToken: "primaryForeground"
619
- },
620
- emphasis: "high"
621
- }
622
- })
623
- ];
624
-
625
556
  // ../theme-core/src/site-styles/appearancePresetCatalog.ts
626
557
  var appearancePresets = [
627
- ...blockAppearancePresets,
628
- ...siteChromeAppearancePresets
558
+ ...blockAppearancePresets
629
559
  ];
630
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
+
631
585
  // ../theme-core/src/site-styles/pageDesignIntent.ts
632
586
  import { z } from "zod";
633
587
  var pageDesignIntentSchemaVersion = 1;
@@ -704,10 +658,141 @@ function boundaryKey(previousBlockId, nextBlockId) {
704
658
  }
705
659
 
706
660
  // ../theme-core/src/buttons/personalities/types.ts
707
- import { z as z4 } from "zod";
661
+ import { z as z5 } from "zod";
708
662
 
709
663
  // ../theme-core/src/buttons/types.ts
664
+ import { z as z3 } from "zod";
665
+
666
+ // ../theme-core/src/tokens/themeColorTokens.ts
710
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
711
796
  var VARIANT_ROLES = [
712
797
  "primary",
713
798
  "secondary",
@@ -717,22 +802,22 @@ var VARIANT_ROLES = [
717
802
  "tertiary",
718
803
  "accent"
719
804
  ];
720
- var cornerStyleSchema = z2.enum(["square", "rounded", "pill"]);
721
- var shadowSizeSchema = z2.enum(["none", "low", "medium", "high"]);
722
- var textTransformSchema = z2.enum(["none", "uppercase", "lowercase", "capitalize"]);
723
- var fontWeightSchema = z2.union([z2.literal(500), z2.literal(600), z2.literal(700)]);
724
- var buttonTypographySchema = z2.enum(["body", "heading"]);
725
- var letterSpacingSchema = z2.enum(["tight", "normal", "loose"]);
726
- var hoverTransformSchema = z2.enum(["none", "lift", "scale", "press"]);
727
- var hoverColorSchema = z2.enum(["none", "brighten", "darken", "saturate", "token"]);
728
- var buttonPaddingPresetSchema = z2.enum(["compact", "default", "spacious"]);
729
- var gradientStyleSchema = z2.enum(["linear", "radial", "conic"]);
730
- var gradientSharpnessSchema = z2.enum(["smooth", "medium", "hard"]);
731
- var prioritySchema = z2.union([z2.literal(1), z2.literal(2), z2.literal(3)]);
732
- var variantRoleSchema = z2.enum(VARIANT_ROLES);
733
- 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"]);
734
819
  var PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
735
- var paddingShorthandSchema = z2.string().refine(
820
+ var paddingShorthandSchema = z3.string().refine(
736
821
  (value) => {
737
822
  const parts = value.split(/\s+/).filter(Boolean);
738
823
  return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
@@ -741,11 +826,11 @@ var paddingShorthandSchema = z2.string().refine(
741
826
  message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
742
827
  }
743
828
  );
744
- var buttonSizeConfigSchema = z2.object({
829
+ var buttonSizeConfigSchema = z3.object({
745
830
  padding: paddingShorthandSchema,
746
- fontSize: z2.string().optional()
831
+ fontSize: z3.string().optional()
747
832
  });
748
- var buttonSizesSchema = z2.object({
833
+ var buttonSizesSchema = z3.object({
749
834
  sm: buttonSizeConfigSchema,
750
835
  md: buttonSizeConfigSchema,
751
836
  lg: buttonSizeConfigSchema,
@@ -756,9 +841,9 @@ var buttonSizesSchema = z2.object({
756
841
  lg,
757
842
  xl: xl ?? lg
758
843
  }));
759
- var buttonGlobalSettingsSchema = z2.object({
844
+ var buttonGlobalSettingsSchema = z3.object({
760
845
  cornerStyle: cornerStyleSchema,
761
- cornerRadius: z2.number().min(0).max(24).optional(),
846
+ cornerRadius: z3.number().min(0).max(24).optional(),
762
847
  shadow: shadowSizeSchema,
763
848
  textTransform: textTransformSchema,
764
849
  fontWeight: fontWeightSchema,
@@ -768,104 +853,104 @@ var buttonGlobalSettingsSchema = z2.object({
768
853
  * by the current generator and will be removed once the legacy
769
854
  * `primitives/content/components/Button.tsx` slot exports are deleted.
770
855
  */
771
- 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)]),
772
857
  // === Family-level typography ===
773
858
  // Typography source (body or heading) — selects which theme typography pool to inherit
774
859
  typography: buttonTypographySchema.optional(),
775
860
  // Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
776
861
  // Sized variants get this as default; fixed variants inherit unless they override.
777
862
  // Size class CSS may still override at run time for sized variants.
778
- fontSize: z2.string().optional(),
863
+ fontSize: z3.string().optional(),
779
864
  // Letter spacing applied to all variants
780
865
  letterSpacing: letterSpacingSchema.optional(),
781
866
  // Italic style
782
- italic: z2.boolean().optional(),
867
+ italic: z3.boolean().optional(),
783
868
  // Padding preset (applies to sized variants without a sizes config)
784
869
  paddingPreset: buttonPaddingPresetSchema.optional(),
785
870
  hoverTransform: hoverTransformSchema,
786
871
  hoverColor: hoverColorSchema,
787
872
  // When hoverColor is 'token', this specifies which token to use
788
- hoverColorToken: z2.string().optional(),
873
+ hoverColorToken: themeColorTokenSchema.optional(),
789
874
  // Gradient settings (if any variant uses gradients)
790
875
  gradientStyle: gradientStyleSchema.optional(),
791
- gradientAngle: z2.number().min(0).max(360).optional(),
876
+ gradientAngle: z3.number().min(0).max(360).optional(),
792
877
  gradientSharpness: gradientSharpnessSchema.optional()
793
878
  });
794
- var gradientDirectionSchema = z2.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
795
- var buttonBackgroundSchema = z2.discriminatedUnion("type", [
796
- z2.object({ type: z2.literal("solid"), colorToken: z2.string() }),
797
- z2.object({
798
- type: z2.literal("gradient"),
799
- 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),
800
885
  direction: gradientDirectionSchema
801
886
  }),
802
- z2.object({ type: z2.literal("transparent") })
887
+ z3.object({ type: z3.literal("transparent") })
803
888
  ]);
804
- var effectApplicationSchema = z2.object({
805
- effectId: z2.string(),
806
- 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()
807
892
  });
808
- var buttonBorderSchema = z2.object({
809
- widthClass: z2.string(),
810
- colorToken: z2.string()
893
+ var buttonBorderSchema = z3.object({
894
+ widthClass: z3.string(),
895
+ colorToken: themeColorTokenSchema
811
896
  });
812
- var variantShadowSchema = z2.object({
813
- elevation: z2.enum(["none", "low", "medium", "high"]),
814
- softness: z2.enum(["crisp", "soft", "hard"]).nullable(),
815
- 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")
816
901
  });
817
- var variantEffectsSchema = z2.object({
818
- base: z2.array(effectApplicationSchema).optional(),
819
- hover: z2.array(effectApplicationSchema).optional(),
820
- active: z2.array(effectApplicationSchema).optional(),
821
- 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()
822
907
  });
823
- var variantSizeOverridesSchema = z2.object({
908
+ var variantSizeOverridesSchema = z3.object({
824
909
  sm: buttonSizeConfigSchema.optional(),
825
910
  md: buttonSizeConfigSchema.optional(),
826
911
  lg: buttonSizeConfigSchema.optional(),
827
912
  xl: buttonSizeConfigSchema.optional()
828
913
  });
829
- var buttonVariantSchema = z2.object({
830
- id: z2.string(),
831
- name: z2.string().min(1).max(20),
832
- enabled: z2.boolean(),
914
+ var buttonVariantSchema = z3.object({
915
+ id: z3.string(),
916
+ name: z3.string().min(1).max(20),
917
+ enabled: z3.boolean(),
833
918
  priority: prioritySchema,
834
919
  // Base appearance (token-based)
835
920
  background: buttonBackgroundSchema,
836
- textColorToken: z2.string(),
921
+ textColorToken: themeColorTokenSchema,
837
922
  /** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
838
- borderRadius: z2.string().optional(),
923
+ borderRadius: z3.string().optional(),
839
924
  // Optional shadow override (uses theme.shadow if not specified)
840
925
  shadow: variantShadowSchema.optional(),
841
926
  // Border (optional)
842
927
  border: buttonBorderSchema.optional(),
843
928
  // Hover background token (per-variant override, takes precedence over global hoverColorToken)
844
- hoverBackgroundToken: z2.string().optional(),
929
+ hoverBackgroundToken: z3.string().optional(),
845
930
  // Effect composition
846
931
  effects: variantEffectsSchema.optional(),
847
932
  // Per-variant size overrides — see VariantSizeOverrides
848
933
  sizes: variantSizeOverridesSchema.optional()
849
934
  });
850
- var buttonSystemSchema = z2.object({
935
+ var buttonSystemSchema = z3.object({
851
936
  global: buttonGlobalSettingsSchema,
852
- variants: z2.array(buttonVariantSchema).min(1).max(6),
937
+ variants: z3.array(buttonVariantSchema).min(1).max(6),
853
938
  sizes: buttonSizesSchema.optional()
854
939
  });
855
940
 
856
941
  // ../theme-core/src/site-styles/styleTags.ts
857
- import { z as z3 } from "zod";
942
+ import { z as z4 } from "zod";
858
943
  var STYLE_AXIS_VALUES = {
859
944
  tone: ["minimal", "classic", "bold"],
860
945
  energy: ["calm", "vibrant"],
861
946
  motion: ["subtle", "standard", "expressive"],
862
947
  era: ["editorial", "modern", "organic", "technical", "retro"]
863
948
  };
864
- var styleTagsSchema = z3.object({
865
- tone: z3.enum(STYLE_AXIS_VALUES.tone).optional(),
866
- energy: z3.enum(STYLE_AXIS_VALUES.energy).optional(),
867
- motion: z3.enum(STYLE_AXIS_VALUES.motion).optional(),
868
- 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()
869
954
  });
870
955
 
871
956
  // ../theme-core/src/buttons/personalities/types.ts
@@ -875,11 +960,11 @@ function asButtonPersonalityId(value) {
875
960
  }
876
961
  return value;
877
962
  }
878
- var buttonPersonalityIdSchema = z4.string().min(1).transform((value) => asButtonPersonalityId(value));
879
- var buttonPersonalitySchema = z4.object({
963
+ var buttonPersonalityIdSchema = z5.string().min(1).transform((value) => asButtonPersonalityId(value));
964
+ var buttonPersonalitySchema = z5.object({
880
965
  id: buttonPersonalityIdSchema,
881
- name: z4.string().min(1),
882
- description: z4.string().min(1),
966
+ name: z5.string().min(1),
967
+ description: z5.string().min(1),
883
968
  tags: styleTagsSchema,
884
969
  buttonSystem: buttonSystemSchema
885
970
  });
@@ -1524,51 +1609,51 @@ var personalitiesById = new Map(
1524
1609
  );
1525
1610
 
1526
1611
  // ../theme-core/src/palette/variants/types.ts
1527
- import { z as z16 } from "zod";
1612
+ import { z as z18 } from "zod";
1528
1613
 
1529
1614
  // ../theme-core/src/schema.ts
1530
- import { z as z15 } from "zod";
1615
+ import { z as z17 } from "zod";
1531
1616
 
1532
1617
  // ../theme-core/src/lib/media.ts
1533
- import z5 from "zod";
1534
- var hotspotSchema = z5.object({
1535
- x: z5.number().min(0).max(1),
1536
- y: z5.number().min(0).max(1),
1537
- 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()
1538
1623
  });
1539
- var rotationSchema = z5.union([z5.literal(0), z5.literal(90), z5.literal(180), z5.literal(270)]);
1540
- var rectSchema = z5.tuple([z5.number(), z5.number(), z5.number(), z5.number()]);
1541
- var aspectCropSchema = z5.object({
1542
- aspect: z5.preprocess((value) => value == null ? void 0 : value, z5.string().optional()),
1543
- rect: z5.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
1544
- hotspot: z5.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
1545
- 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())
1546
1631
  });
1547
- var transformSchema = z5.object({
1548
- aspectCrops: z5.preprocess((value) => {
1632
+ var transformSchema = z6.object({
1633
+ aspectCrops: z6.preprocess((value) => {
1549
1634
  if (!value || typeof value !== "object" || Array.isArray(value)) {
1550
1635
  return void 0;
1551
1636
  }
1552
1637
  return value;
1553
- }, z5.record(z5.string(), aspectCropSchema.catch({}))).optional(),
1638
+ }, z6.record(z6.string(), aspectCropSchema.catch({}))).optional(),
1554
1639
  rect: rectSchema.optional(),
1555
1640
  hotspot: hotspotSchema.optional(),
1556
1641
  rotation: rotationSchema.optional()
1557
1642
  });
1558
- var mediaSchema = z5.object({
1559
- type: z5.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
1560
- purpose: z5.string().optional(),
1561
- placeholder: z5.boolean().default(true).optional(),
1562
- assetId: z5.string().optional(),
1563
- identifier: z5.string().optional(),
1564
- src: z5.string().optional(),
1565
- alt: z5.string().optional(),
1566
- filename: z5.string().optional(),
1567
- mimeType: z5.string().optional(),
1568
- width: z5.number().optional(),
1569
- height: z5.number().optional(),
1570
- storageBucket: z5.string().optional(),
1571
- 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(),
1572
1657
  transform: transformSchema.optional()
1573
1658
  });
1574
1659
 
@@ -1702,43 +1787,43 @@ function getDefaultButtonVariants() {
1702
1787
  }
1703
1788
 
1704
1789
  // ../theme-core/src/cards/types.ts
1705
- import { z as z6 } from "zod";
1706
- var cardSpacingSchema = z6.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
1707
- var gradientDirectionSchema2 = z6.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
1708
- var cardBackgroundSchema = z6.discriminatedUnion("type", [
1709
- z6.object({ type: z6.literal("solid"), colorToken: z6.string() }),
1710
- z6.object({
1711
- type: z6.literal("gradient"),
1712
- fromToken: z6.string(),
1713
- 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,
1714
1799
  direction: gradientDirectionSchema2
1715
1800
  }),
1716
- z6.object({ type: z6.literal("transparent") })
1801
+ z7.object({ type: z7.literal("transparent") })
1717
1802
  ]);
1718
- var cardBorderSchema = z6.object({
1719
- widthClass: z6.string(),
1720
- colorToken: z6.string()
1803
+ var cardBorderSchema = z7.object({
1804
+ widthClass: z7.string(),
1805
+ colorToken: themeColorTokenSchema
1721
1806
  });
1722
- var cardVariantSchema = z6.object({
1723
- id: z6.string(),
1724
- name: z6.string().min(1).max(20),
1725
- enabled: z6.boolean(),
1726
- 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)]),
1727
1812
  // Appearance (token-based)
1728
1813
  background: cardBackgroundSchema,
1729
1814
  spacing: cardSpacingSchema,
1730
1815
  // Optional overrides (uses theme defaults if not specified)
1731
- shadow: z6.object({
1732
- elevation: z6.enum(["none", "low", "medium", "high"]),
1733
- softness: z6.enum(["crisp", "soft", "hard"]).nullable(),
1734
- 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")
1735
1820
  }).optional(),
1736
- corners: z6.enum(["square", "soft", "rounded", "pill"]).optional(),
1821
+ corners: z7.enum(["square", "soft", "rounded", "pill"]).optional(),
1737
1822
  // Border (optional)
1738
1823
  border: cardBorderSchema.optional()
1739
1824
  });
1740
- var cardSystemSchema = z6.object({
1741
- variants: z6.array(cardVariantSchema).min(1).max(3)
1825
+ var cardSystemSchema = z7.object({
1826
+ variants: z7.array(cardVariantSchema).min(1).max(3)
1742
1827
  });
1743
1828
 
1744
1829
  // ../theme-core/src/cards/core.ts
@@ -1860,8 +1945,8 @@ function getDefaultCardVariants() {
1860
1945
  }
1861
1946
 
1862
1947
  // ../theme-core/src/accordions/types.ts
1863
- import { z as z7 } from "zod";
1864
- var accordionIconSchema = z7.enum([
1948
+ import { z as z8 } from "zod";
1949
+ var accordionIconSchema = z8.enum([
1865
1950
  "plus-minus",
1866
1951
  // + becomes - (swap or rotate 90°)
1867
1952
  "chevron",
@@ -1873,180 +1958,179 @@ var accordionIconSchema = z7.enum([
1873
1958
  "circle-plus-minus"
1874
1959
  // ⊕ becomes ⊖ (swap with fade)
1875
1960
  ]);
1876
- var accordionSystemSchema = z7.object({
1961
+ var accordionSystemSchema = z8.object({
1877
1962
  // Visual styling (solid color only - gradients can be added later if needed)
1878
- background: z7.object({
1879
- type: z7.literal("solid"),
1880
- colorToken: z7.string()
1963
+ background: z8.object({
1964
+ type: z8.literal("solid"),
1965
+ colorToken: themeColorTokenSchema
1881
1966
  }),
1882
1967
  // Spacing (padding inside items)
1883
- spacing: z7.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
1968
+ spacing: z8.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
1884
1969
  // Border radius (null = inherit from theme.corners)
1885
- corners: z7.enum(["square", "soft", "rounded", "pill"]).nullable(),
1970
+ corners: z8.enum(["square", "soft", "rounded", "pill"]).nullable(),
1886
1971
  // Border styling (null = inherit from theme.border)
1887
- border: z7.object({
1888
- widthClass: z7.string(),
1972
+ border: z8.object({
1973
+ widthClass: z8.string(),
1889
1974
  // e.g., 'border', 'border-2', 'border-0'
1890
- colorToken: z7.string()
1975
+ colorToken: themeColorTokenSchema
1891
1976
  }).nullable(),
1892
1977
  // Shadow (null = inherit from theme.shadow)
1893
- shadow: z7.object({
1894
- elevation: z7.enum(["none", "low", "medium", "high"]),
1895
- softness: z7.enum(["soft", "crisp", "hard"]).nullable(),
1896
- 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"])
1897
1982
  }).nullable(),
1898
1983
  // Icon style and animation
1899
- icon: z7.object({
1984
+ icon: z8.object({
1900
1985
  style: accordionIconSchema,
1901
- position: z7.enum(["left", "right"]),
1902
- size: z7.enum(["sm", "md", "lg"])
1986
+ position: z8.enum(["left", "right"]),
1987
+ size: z8.enum(["sm", "md", "lg"])
1903
1988
  }),
1904
1989
  // Trigger (question) styling
1905
- trigger: z7.object({
1906
- textColorToken: z7.string(),
1907
- fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).nullable()
1990
+ trigger: z8.object({
1991
+ textColorToken: themeColorTokenSchema,
1992
+ fontWeight: z8.enum(["regular", "medium", "semibold", "bold"]).nullable()
1908
1993
  // null = inherit from theme
1909
1994
  }),
1910
1995
  // Hover state styling
1911
- hover: z7.object({
1912
- backgroundColorToken: z7.string().optional(),
1913
- textColorToken: z7.string().optional(),
1914
- borderColorToken: z7.string().optional()
1996
+ hover: z8.object({
1997
+ backgroundColorToken: themeColorTokenSchema.optional(),
1998
+ textColorToken: themeColorTokenSchema.optional(),
1999
+ borderColorToken: themeColorTokenSchema.optional()
1915
2000
  }),
1916
2001
  // Content (answer) styling
1917
- content: z7.object({
1918
- textColorToken: z7.string()
2002
+ content: z8.object({
2003
+ textColorToken: themeColorTokenSchema
1919
2004
  })
1920
2005
  });
1921
2006
 
1922
2007
  // ../theme-core/src/inputs/types.ts
1923
- import { z as z8 } from "zod";
1924
- var inputSystemSchema = z8.object({
2008
+ import { z as z9 } from "zod";
2009
+ var inputSystemSchema = z9.object({
1925
2010
  // Base styling (applied to all inputs)
1926
- base: z8.object({
1927
- background: z8.union([
1928
- z8.object({
1929
- type: z8.literal("solid"),
1930
- colorToken: z8.string()
2011
+ base: z9.object({
2012
+ background: z9.union([
2013
+ z9.object({
2014
+ type: z9.literal("solid"),
2015
+ colorToken: themeColorTokenSchema
1931
2016
  }),
1932
- z8.object({
1933
- type: z8.literal("transparent")
2017
+ z9.object({
2018
+ type: z9.literal("transparent")
1934
2019
  })
1935
2020
  ]),
1936
- textColorToken: z8.string(),
1937
- border: z8.object({
1938
- widthClass: z8.string(),
2021
+ textColorToken: themeColorTokenSchema,
2022
+ border: z9.object({
2023
+ widthClass: z9.string(),
1939
2024
  // e.g., 'border', 'border-2'
1940
- colorToken: z8.string(),
1941
- style: z8.enum(["all", "underline"]).optional()
2025
+ colorToken: themeColorTokenSchema,
2026
+ style: z9.enum(["all", "underline"]).optional()
1942
2027
  }),
1943
- corners: z8.enum(["square", "soft", "rounded", "pill"]).nullable(),
2028
+ corners: z9.enum(["square", "soft", "rounded", "pill"]).nullable(),
1944
2029
  // null = inherit from theme.corners
1945
- shadow: z8.object({
1946
- elevation: z8.enum(["none", "low", "medium"]),
1947
- 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()
1948
2033
  }).nullable(),
1949
- spacing: z8.enum(["compact", "cozy", "medium", "comfortable"]),
2034
+ spacing: z9.enum(["compact", "cozy", "medium", "comfortable"]),
1950
2035
  // padding inside inputs
1951
- fontSize: z8.enum(["sm", "base", "lg"])
2036
+ fontSize: z9.enum(["sm", "base", "lg"])
1952
2037
  }),
1953
2038
  // Label styling
1954
- label: z8.object({
1955
- textColorToken: z8.string(),
1956
- fontWeight: z8.enum(["regular", "medium", "semibold", "bold", "black"]),
1957
- fontSize: z8.enum(["2xs", "xs", "sm", "base"]),
1958
- textTransform: z8.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
1959
- letterSpacing: z8.enum(["normal", "wide", "wider", "widest"]).optional(),
1960
- 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()
1961
2046
  }),
1962
2047
  // Focus state
1963
- focus: z8.object({
1964
- ringColorToken: z8.string(),
1965
- ringWidth: z8.enum(["0", "1", "2", "3"]),
1966
- borderColorToken: z8.string().optional()
2048
+ focus: z9.object({
2049
+ ringColorToken: themeColorTokenSchema,
2050
+ ringWidth: z9.enum(["0", "1", "2", "3"]),
2051
+ borderColorToken: themeColorTokenSchema.optional()
1967
2052
  // Change border color on focus
1968
2053
  }),
1969
2054
  // Error state (for validation feedback)
1970
- error: z8.object({
1971
- borderColorToken: z8.string(),
1972
- textColorToken: z8.string()
2055
+ error: z9.object({
2056
+ borderColorToken: themeColorTokenSchema,
2057
+ textColorToken: themeColorTokenSchema
1973
2058
  }),
1974
2059
  // Disabled state
1975
- disabled: z8.object({
1976
- backgroundColorToken: z8.string(),
1977
- textColorToken: z8.string(),
1978
- 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)
1979
2064
  })
1980
2065
  });
1981
2066
 
1982
2067
  // ../theme-core/src/gradients/types.ts
1983
- import { z as z9 } from "zod";
1984
- var gradientStopSchema = z9.object({
1985
- color: z9.string(),
1986
- // Theme color token name (e.g., 'primary-500')
1987
- 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)
1988
2072
  // Percentage 0-100
1989
2073
  });
1990
- var gradientConfigSchema = z9.object({
1991
- type: z9.enum(["linear", "radial"]),
1992
- 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(),
1993
2077
  // For linear gradients (degrees)
1994
- position: z9.string().optional(),
2078
+ position: z10.string().optional(),
1995
2079
  // For radial gradients ('center', 'top left', etc.)
1996
- stops: z9.array(gradientStopSchema).min(2)
2080
+ stops: z10.array(gradientStopSchema).min(2)
1997
2081
  });
1998
2082
 
1999
2083
  // ../theme-core/src/navigation/types.ts
2000
- import { z as z11 } from "zod";
2084
+ import { z as z12 } from "zod";
2001
2085
 
2002
2086
  // ../theme-core/src/interactive/baseSchema.ts
2003
- import { z as z10 } from "zod";
2004
- var interactiveTypographySchema = z10.object({
2087
+ import { z as z11 } from "zod";
2088
+ var interactiveTypographySchema = z11.object({
2005
2089
  /** Font family source */
2006
- typography: z10.enum(["body", "heading"]).default("body"),
2090
+ typography: z11.enum(["body", "heading"]).default("body"),
2007
2091
  /** Font weight */
2008
- fontWeight: z10.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
2092
+ fontWeight: z11.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
2009
2093
  /** Text transform */
2010
- textTransform: z10.enum(["none", "uppercase", "capitalize"]).default("none"),
2094
+ textTransform: z11.enum(["none", "uppercase", "capitalize"]).default("none"),
2011
2095
  /** Italic style */
2012
- italic: z10.boolean().default(false)
2096
+ italic: z11.boolean().default(false)
2013
2097
  });
2014
- var effectApplicationSchema2 = z10.object({
2098
+ var effectApplicationSchema2 = z11.object({
2015
2099
  /** Effect preset ID */
2016
- effectId: z10.string(),
2100
+ effectId: z11.string(),
2017
2101
  /** User-provided customization options */
2018
- options: z10.record(z10.string(), z10.any()).optional()
2102
+ options: z11.record(z11.string(), z11.any()).optional()
2019
2103
  });
2020
- var effectCompositionSchema = z10.object({
2104
+ var effectCompositionSchema = z11.object({
2021
2105
  /** Effects always applied */
2022
- base: z10.array(effectApplicationSchema2).optional(),
2106
+ base: z11.array(effectApplicationSchema2).optional(),
2023
2107
  /** Effects applied on hover */
2024
- hover: z10.array(effectApplicationSchema2).optional(),
2108
+ hover: z11.array(effectApplicationSchema2).optional(),
2025
2109
  /** Effects applied on active/pressed */
2026
- active: z10.array(effectApplicationSchema2).optional(),
2110
+ active: z11.array(effectApplicationSchema2).optional(),
2027
2111
  /** Effects applied on focus */
2028
- focus: z10.array(effectApplicationSchema2).optional()
2112
+ focus: z11.array(effectApplicationSchema2).optional()
2029
2113
  });
2030
2114
 
2031
2115
  // ../theme-core/src/navigation/types.ts
2032
- var navLinkPaddingSchema = z11.enum(["none", "compact", "default"]);
2033
- var navLinkPaddingXSchema = z11.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2034
- var navLinkBorderRadiusSchema = z11.enum(["none", "sm", "md", "full"]);
2035
- var navLinkTextSizeSchema = z11.enum(["xs", "sm", "base", "lg"]);
2036
- var navLinkLetterSpacingSchema = z11.enum(["normal", "wide", "wider", "widest"]);
2037
- 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({
2038
2122
  /** Display name for the style */
2039
- name: z11.string().min(1).max(30).optional(),
2123
+ name: z12.string().min(1).max(30).optional(),
2040
2124
  /** Typography settings (inherited from interactive base) */
2041
2125
  ...interactiveTypographySchema.shape,
2042
2126
  /** Text color token */
2043
- colorToken: z11.string().default("text"),
2127
+ colorToken: themeColorTokenSchema.default("text"),
2044
2128
  /** Optional text size override */
2045
2129
  textSize: navLinkTextSizeSchema.optional(),
2046
2130
  /** Optional letter spacing override */
2047
2131
  letterSpacing: navLinkLetterSpacingSchema.optional(),
2048
2132
  /** Hover/active color token (for color-change effects) */
2049
- hoverColorToken: z11.string().nullable().optional(),
2133
+ hoverColorToken: themeColorTokenSchema.nullable().optional(),
2050
2134
  /** Padding preset */
2051
2135
  padding: navLinkPaddingSchema.default("compact"),
2052
2136
  /** Horizontal padding override (overrides horizontal component of padding preset) */
@@ -2058,7 +2142,7 @@ var navLinkStyleSchema = z11.object({
2058
2142
  });
2059
2143
 
2060
2144
  // ../theme-core/src/customCss/validation.ts
2061
- import { z as z12 } from "zod";
2145
+ import { z as z13 } from "zod";
2062
2146
  var FORBIDDEN_SELECTORS = [":root", "html", "body"];
2063
2147
  var UNIVERSAL_SELECTOR = "*";
2064
2148
  var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
@@ -2100,7 +2184,7 @@ function containsForbiddenSelector(selector) {
2100
2184
  }
2101
2185
  return false;
2102
2186
  }
2103
- 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(
2104
2188
  (s) => !containsForbiddenSelector(s),
2105
2189
  { message: "Global selectors (:root, html, body, *) are not allowed" }
2106
2190
  );
@@ -2110,38 +2194,38 @@ function containsRemoteUrl(value) {
2110
2194
  function containsJavascriptUrl(value) {
2111
2195
  return JAVASCRIPT_URL_PATTERN.test(value);
2112
2196
  }
2113
- 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(
2114
2198
  (v) => !containsRemoteUrl(v),
2115
2199
  { message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
2116
2200
  ).refine(
2117
2201
  (v) => !containsJavascriptUrl(v),
2118
2202
  { message: "javascript: URLs are not allowed" }
2119
2203
  );
2120
- var declarationsSchema = z12.record(
2121
- z12.string().min(1).max(100),
2204
+ var declarationsSchema = z13.record(
2205
+ z13.string().min(1).max(100),
2122
2206
  // property name
2123
2207
  declarationValueSchema
2124
2208
  // property value
2125
2209
  );
2126
- var customCssRuleSchema = z12.object({
2127
- 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"),
2128
2212
  selector: selectorSchema,
2129
2213
  declarations: declarationsSchema
2130
2214
  });
2131
2215
  var blockCustomCssRuleSchema = customCssRuleSchema.extend({
2132
- 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")
2133
2217
  });
2134
- var customCssRulesSchema = z12.array(customCssRuleSchema).optional();
2135
- var blockCustomCssRulesSchema = z12.array(blockCustomCssRuleSchema).optional();
2218
+ var customCssRulesSchema = z13.array(customCssRuleSchema).optional();
2219
+ var blockCustomCssRulesSchema = z13.array(blockCustomCssRuleSchema).optional();
2136
2220
 
2137
2221
  // ../theme-core/src/customCss/atRuleValidation.ts
2138
- import { z as z13 } from "zod";
2222
+ import { z as z14 } from "zod";
2139
2223
  var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
2140
2224
  var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
2141
2225
  var BLOCKED_AT_RULES = ["@import", "@charset"];
2142
2226
  var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
2143
- var ruleIdSchema = z13.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
2144
- 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({
2145
2229
  selector: selectorSchema,
2146
2230
  declarations: declarationsSchema
2147
2231
  });
@@ -2153,206 +2237,208 @@ function isValidKeyframeOffset(offset) {
2153
2237
  const value = parseInt(match[1], 10);
2154
2238
  return value >= 0 && value <= 100;
2155
2239
  }
2156
- var keyframeOffsetSchema = z13.string().transform((offset) => offset.trim()).refine(
2240
+ var keyframeOffsetSchema = z14.string().transform((offset) => offset.trim()).refine(
2157
2241
  (offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
2158
2242
  { message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
2159
2243
  ).refine(
2160
2244
  isValidKeyframeOffset,
2161
2245
  { message: "Keyframe offset must be between 0% and 100%" }
2162
2246
  );
2163
- 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(
2164
2248
  (name) => ANIMATION_NAME_PATTERN.test(name),
2165
2249
  { message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
2166
2250
  );
2167
- var keyframeSchema = z13.object({
2251
+ var keyframeSchema = z14.object({
2168
2252
  offset: keyframeOffsetSchema,
2169
2253
  declarations: declarationsSchema
2170
2254
  });
2171
- var keyframesAtRuleSchema = z13.object({
2255
+ var keyframesAtRuleSchema = z14.object({
2172
2256
  id: ruleIdSchema,
2173
- type: z13.literal("keyframes"),
2257
+ type: z14.literal("keyframes"),
2174
2258
  name: animationNameSchema,
2175
- 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")
2176
2260
  });
2177
- 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(
2178
2262
  (decls) => "fontFamily" in decls || "font-family" in decls,
2179
2263
  { message: "font-family is required in @font-face" }
2180
2264
  );
2181
- var fontFaceAtRuleSchema = z13.object({
2265
+ var fontFaceAtRuleSchema = z14.object({
2182
2266
  id: ruleIdSchema,
2183
- type: z13.literal("font-face"),
2267
+ type: z14.literal("font-face"),
2184
2268
  declarations: fontFaceDeclarationsSchema
2185
2269
  });
2186
- var mediaQuerySchema = z13.string().min(1, "Media query is required").max(200, "Media query too long");
2187
- 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({
2188
2272
  id: ruleIdSchema,
2189
- type: z13.literal("media"),
2273
+ type: z14.literal("media"),
2190
2274
  query: mediaQuerySchema,
2191
- 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")
2192
2276
  });
2193
- var supportsConditionSchema = z13.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
2194
- 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({
2195
2279
  id: ruleIdSchema,
2196
- type: z13.literal("supports"),
2280
+ type: z14.literal("supports"),
2197
2281
  condition: supportsConditionSchema,
2198
- 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")
2199
2283
  });
2200
2284
  function containsBlockedAtRule(css) {
2201
2285
  return BLOCKED_AT_RULE_PATTERN.test(css);
2202
2286
  }
2203
- 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(
2204
2288
  (css) => css.trim().startsWith("@"),
2205
2289
  { message: "Raw at-rule must start with @" }
2206
2290
  ).refine(
2207
2291
  (css) => !containsBlockedAtRule(css),
2208
2292
  { message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
2209
2293
  );
2210
- var rawAtRuleSchema = z13.object({
2294
+ var rawAtRuleSchema = z14.object({
2211
2295
  id: ruleIdSchema,
2212
- type: z13.literal("raw"),
2296
+ type: z14.literal("raw"),
2213
2297
  css: rawCssSchema
2214
2298
  });
2215
- var customCssAtRuleSchema = z13.discriminatedUnion("type", [
2299
+ var customCssAtRuleSchema = z14.discriminatedUnion("type", [
2216
2300
  keyframesAtRuleSchema,
2217
2301
  fontFaceAtRuleSchema,
2218
2302
  mediaAtRuleSchema,
2219
2303
  supportsAtRuleSchema,
2220
2304
  rawAtRuleSchema
2221
2305
  ]);
2222
- var customCssAtRulesSchema = z13.array(customCssAtRuleSchema).optional();
2306
+ var customCssAtRulesSchema = z14.array(customCssAtRuleSchema).optional();
2223
2307
 
2224
2308
  // ../theme-core/src/shared/componentStyles.ts
2225
- import { z as z14 } from "zod";
2226
- var componentBorderSchema = z14.object({
2227
- width: z14.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
2228
- style: z14.enum(["solid", "dashed"]).default("solid"),
2229
- 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()
2230
2314
  // defaults to "border" if not set
2231
2315
  });
2232
- var componentShadowSchema = z14.object({
2233
- 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")
2234
2318
  });
2235
2319
 
2320
+ // ../theme-core/src/utils/tokenOrColor.ts
2321
+ import { z as z16 } from "zod";
2322
+ var tokenOrCssColorValueSchema = z16.string();
2323
+
2236
2324
  // ../theme-core/src/schema.ts
2237
- var axesSchema = z15.object({
2238
- tone: z15.enum(["minimal", "classic", "bold"]),
2239
- energy: z15.enum(["calm", "vibrant"]),
2240
- density: z15.enum(["airy", "regular", "compact"]),
2241
- mediaBias: z15.enum(["text", "media", "mixed"]),
2242
- conversionBias: z15.enum(["low", "med", "high"]),
2243
- 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"])
2244
2332
  });
2245
- var colourHexString = z15.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
2246
- var paletteColorSchema = z15.object({
2247
- 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),
2248
2336
  hex: colourHexString
2249
2337
  });
2250
- var paletteMetaSchema = z15.object({
2251
- mode: z15.enum(["light", "dark"])
2338
+ var paletteMetaSchema = z17.object({
2339
+ mode: z17.enum(["light", "dark"])
2252
2340
  });
2253
- var paletteSchema = z15.object({
2254
- colors: z15.array(paletteColorSchema),
2341
+ var paletteSchema = z17.object({
2342
+ colors: z17.array(paletteColorSchema),
2255
2343
  meta: paletteMetaSchema
2256
2344
  });
2257
- var typographyStyleSchema = z15.object({
2258
- family: z15.string().min(1),
2259
- weight: z15.enum(["light", "regular", "medium", "semibold", "bold"]),
2260
- letterSpacing: z15.enum(["tight", "normal", "loose"]),
2261
- 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"])
2262
2350
  });
2263
2351
  var bodyTypographyStyleSchema = typographyStyleSchema.extend({
2264
- size: z15.enum(["md", "lg", "xl"])
2352
+ size: z17.enum(["md", "lg", "xl"])
2265
2353
  });
2266
- var headingSizeSchema = z15.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
2267
- var headingTypographyOverridesSchema = z15.object({
2268
- weight: z15.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
2269
- 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(),
2270
2358
  size: headingSizeSchema.nullable().optional(),
2271
- lineHeight: z15.enum(["normal", "relaxed", "loose"]).nullable().optional(),
2272
- italic: z15.boolean().nullable().optional(),
2273
- colorToken: z15.string().min(1).nullable().optional()
2274
- // 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()
2275
2362
  });
2276
2363
  var headingTypographyStyleSchema = typographyStyleSchema.extend({
2277
- case: z15.enum(["uppercase", "normal", "smallCaps"]).nullable(),
2278
- italic: z15.boolean().nullable(),
2279
- colorToken: z15.string().min(1).nullable().optional()
2280
- // Palette token name for heading color
2364
+ case: z17.enum(["uppercase", "normal", "smallCaps"]).nullable(),
2365
+ italic: z17.boolean().nullable(),
2366
+ colorToken: themeColorTokenSchema.nullable().optional()
2281
2367
  });
2282
- var proseLinkUnderlineStyleSchema = z15.enum(["solid", "dotted", "dashed"]);
2283
- var proseLinkUnderlineThicknessSchema = z15.enum(["auto", "fromFont", "thin", "medium", "thick"]);
2284
- var proseLinkUnderlineOffsetSchema = z15.enum(["auto", "tight", "normal", "loose"]);
2285
- var proseLinkStyleSchema = z15.object({
2286
- colorToken: z15.string().min(1).optional(),
2287
- hoverColorToken: z15.string().min(1).optional(),
2288
- underline: z15.boolean().optional(),
2289
- decorationColorToken: z15.string().min(1).optional(),
2290
- 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(),
2291
2377
  underlineStyle: proseLinkUnderlineStyleSchema.optional(),
2292
2378
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
2293
2379
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
2294
2380
  });
2295
- var semanticSpacingSchema = z15.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
2296
- var boxRoundedSchema = z15.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
2297
- var boxBackgroundOverlaySchema = z15.object({
2298
- type: z15.enum(["none", "color", "gradient"]).nullable().optional(),
2299
- color: z15.string().nullable().optional(),
2300
- gradient: z15.string().nullable().optional(),
2301
- 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()
2302
2388
  });
2303
- var boxBackgroundSchema = z15.object({
2304
- type: z15.enum(["color", "gradient", "image"]).optional(),
2305
- color: z15.string().nullable().optional(),
2306
- 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(),
2307
2393
  image: mediaSchema.nullable().optional(),
2308
- objectFit: z15.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
2309
- scale: z15.string().nullable().optional(),
2310
- position: z15.string().nullable().optional(),
2311
- opacity: z15.number().min(0).max(1).nullable().optional(),
2312
- 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(),
2313
2399
  overlay: boxBackgroundOverlaySchema.nullable().optional(),
2314
- textColor: z15.string().nullable().optional(),
2315
- headingColor: z15.string().nullable().optional()
2400
+ textColor: tokenOrCssColorValueSchema.nullable().optional(),
2401
+ headingColor: tokenOrCssColorValueSchema.nullable().optional()
2316
2402
  });
2317
- var sectionStylesOverrideSchema = z15.object({
2403
+ var sectionStylesOverrideSchema = z17.object({
2318
2404
  background: boxBackgroundSchema.nullable().optional(),
2319
2405
  spacing: semanticSpacingSchema.nullable().optional(),
2320
- minHeight: z15.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
2321
- tileTreatment: z15.enum(tileTreatmentValues).nullable().optional(),
2322
- 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()
2323
2409
  });
2324
- var containerStylesOverrideSchema = z15.object({
2410
+ var containerStylesOverrideSchema = z17.object({
2325
2411
  background: boxBackgroundSchema.nullable().optional(),
2326
2412
  spacing: semanticSpacingSchema.nullable().optional(),
2327
- raised: z15.boolean().nullable().optional(),
2413
+ raised: z17.boolean().nullable().optional(),
2328
2414
  rounded: boxRoundedSchema.nullable().optional(),
2329
- fullWidth: z15.boolean().nullable().optional()
2415
+ fullWidth: z17.boolean().nullable().optional()
2330
2416
  });
2331
- var cardBorderOverrideSchema = z15.object({
2332
- enabled: z15.boolean().nullable().optional(),
2333
- width: z15.enum(["none", "1", "2", "3"]).nullable().optional(),
2334
- 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()
2335
2421
  });
2336
- var cardStylesOverrideSchema = z15.object({
2422
+ var cardStylesOverrideSchema = z17.object({
2337
2423
  background: boxBackgroundSchema.nullable().optional(),
2338
2424
  border: cardBorderOverrideSchema.nullable().optional(),
2339
2425
  spacing: semanticSpacingSchema.nullable().optional(),
2340
- raised: z15.boolean().nullable().optional(),
2426
+ raised: z17.boolean().nullable().optional(),
2341
2427
  rounded: boxRoundedSchema.nullable().optional(),
2342
- treatment: z15.enum(["accent-quote"]).nullable().optional()
2428
+ treatment: z17.enum(["accent-quote"]).nullable().optional()
2343
2429
  });
2344
- var blockStyleOverridesSchema = z15.object({
2430
+ var blockStyleOverridesSchema = z17.object({
2345
2431
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
2346
2432
  containerStyles: containerStylesOverrideSchema.nullable().optional(),
2347
2433
  cardStyles: cardStylesOverrideSchema.nullable().optional()
2348
2434
  });
2349
- var blockThemeOverrideSchema = z15.object({
2350
- typography: z15.object({
2435
+ var blockThemeOverrideSchema = z17.object({
2436
+ typography: z17.object({
2351
2437
  proseLinkStyle: proseLinkStyleSchema.optional()
2352
2438
  }).optional(),
2353
2439
  styles: blockStyleOverridesSchema.optional()
2354
2440
  });
2355
- var typographyScaleSchema = z15.enum([
2441
+ var typographyScaleSchema = z17.enum([
2356
2442
  // New intuitive names
2357
2443
  "compact",
2358
2444
  // ratio 1.2 (was minorThird)
@@ -2365,9 +2451,9 @@ var typographyScaleSchema = z15.enum([
2365
2451
  "majorThird",
2366
2452
  "perfectFourth"
2367
2453
  ]);
2368
- var typographySchema = z15.object({
2454
+ var typographySchema = z17.object({
2369
2455
  body: bodyTypographyStyleSchema,
2370
- headings: z15.object({
2456
+ headings: z17.object({
2371
2457
  default: headingTypographyStyleSchema,
2372
2458
  h1: headingTypographyOverridesSchema,
2373
2459
  h2: headingTypographyOverridesSchema,
@@ -2380,122 +2466,115 @@ var typographySchema = z15.object({
2380
2466
  scale: typographyScaleSchema,
2381
2467
  proseLinkStyle: proseLinkStyleSchema.optional()
2382
2468
  });
2383
- var spaceSchema = z15.enum(["comfortable", "standard", "dense"]);
2384
- var corners = z15.enum(["square", "soft", "rounded", "pill"]);
2385
- var shadow = z15.object({
2386
- elevation: z15.enum(["none", "low", "medium", "high"]),
2387
- softness: z15.enum(["crisp", "soft", "hard"]).nullable(),
2388
- 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")
2389
2475
  });
2390
- var border = z15.object({
2391
- width: z15.enum(["none", "hairline", "thin", "thick"]),
2392
- style: z15.enum(["solid", "dashed"])
2476
+ var border = z17.object({
2477
+ width: z17.enum(["none", "hairline", "thin", "thick"]),
2478
+ style: z17.enum(["solid", "dashed"])
2393
2479
  });
2394
- var motion = z15.object({
2395
- level: z15.enum(["off", "low", "medium", "high"]),
2396
- 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()
2397
2483
  });
2398
- var buttonStyle = z15.object({
2484
+ var buttonStyle = z17.object({
2399
2485
  shape: corners
2400
2486
  // Used for --radius-control CSS variable
2401
2487
  });
2402
- var cardStyle = z15.object({
2403
- elevation: z15.enum(["none", "low", "medium", "high"]),
2404
- 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"]),
2405
2491
  shape: corners,
2406
- headerStyle: z15.enum(["plain", "accentBar", "subtleBg"]).nullable(),
2407
- mediaTreatment: z15.enum(["square", "rounded", "bleed"]).nullable()
2492
+ headerStyle: z17.enum(["plain", "accentBar", "subtleBg"]).nullable(),
2493
+ mediaTreatment: z17.enum(["square", "rounded", "bleed"]).nullable()
2408
2494
  });
2409
- var inputStyle = z15.object({
2495
+ var inputStyle = z17.object({
2410
2496
  shape: corners,
2411
- border: z15.enum(["subtle", "defined", "underline"]),
2412
- focus: z15.enum(["glow", "ring", "underline"]),
2413
- 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"])
2414
2500
  });
2415
- var headerVariant = z15.enum(["classic", "centered", "transparent", "floating", "editorial"]);
2416
- var headerPositioning = z15.enum(["static", "sticky", "fixed"]);
2417
- var headerNavStyle = z15.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
2418
- var navFontWeight = z15.enum(["regular", "medium", "semibold", "bold"]);
2419
- var headerMaxWidth = z15.enum(["container", "full"]);
2420
- var headerContainerSchema = z15.object({
2421
- rounded: z15.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
2422
- border: z15.boolean().default(true),
2423
- shadow: z15.boolean().default(true),
2424
- padding: z15.enum(["sm", "md", "lg"]).default("md"),
2425
- tint: z15.string().nullable().optional(),
2426
- 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)
2427
2513
  }).optional();
2428
2514
  var headerBorderSchema = componentBorderSchema.extend({
2429
- position: z15.enum(["bottom", "top", "both", "none"]).default("bottom")
2515
+ position: z17.enum(["bottom", "top", "both", "none"]).default("bottom")
2430
2516
  }).optional();
2431
- var logoStyleSchema = z15.object({
2432
- fontFamily: z15.enum(["heading", "body"]).default("heading"),
2433
- letterSpacing: z15.enum(["normal", "wide", "wider", "widest"]).default("normal"),
2434
- 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)
2435
2521
  }).optional();
2436
- var headerLogoTextSchema = z15.object({
2437
- mobileWrapLines: z15.union([z15.literal(1), z15.literal(2)]).optional(),
2438
- mobileMaxWidth: z15.enum(["xs", "sm", "md"]).optional(),
2439
- 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()
2440
2526
  }).optional();
2441
- var navEffectsSchema = z15.object({
2442
- underlineGradient: z15.boolean().default(false),
2443
- glow: z15.boolean().default(false),
2444
- glowColor: z15.string().optional(),
2445
- 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)
2446
2532
  }).optional();
2447
- var dropdownStyleSchema = z15.object({
2533
+ var dropdownStyleSchema = z17.object({
2448
2534
  // Container styling
2449
- background: z15.string().default("surface"),
2450
- // color token
2451
- textColor: z15.string().default("text"),
2452
- // color token
2453
- borderColor: z15.string().nullable().default("border"),
2454
- // null = no border
2455
- shadow: z15.enum(["none", "sm", "md", "lg"]).default("md"),
2456
- 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"),
2457
2540
  // Link hover states (explicit control)
2458
- hoverBackground: z15.string().nullable().optional(),
2459
- // color token, null = transparent
2460
- hoverTextColor: z15.string().nullable().optional(),
2461
- // color token, null = inherit
2541
+ hoverBackground: themeColorTokenSchema.nullable().optional(),
2542
+ hoverTextColor: themeColorTokenSchema.nullable().optional(),
2462
2543
  // Typography
2463
- textTransform: z15.enum(["none", "uppercase", "capitalize"]).default("none"),
2464
- letterSpacing: z15.enum(["normal", "wide", "wider"]).default("normal"),
2465
- 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(),
2466
2547
  // optional = inherit from navWeight
2467
- textSize: z15.enum(["xs", "sm", "base", "lg"]).optional()
2548
+ textSize: z17.enum(["xs", "sm", "base", "lg"]).optional()
2468
2549
  // optional = no override (browser default)
2469
2550
  }).optional();
2470
- var headerCtaGapSchema = z15.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2471
- var headerCtaTreatmentSchema = z15.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
2472
- var navContainerSchema = z15.object({
2473
- type: z15.enum(["none", "pill", "glass"]).default("none"),
2474
- tint: z15.string().nullable().optional(),
2475
- 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)
2476
2557
  }).default({ type: "none", tint: null, opacity: 0.15 });
2477
- var headerBackgroundSchema = z15.object({
2478
- type: z15.enum(["color", "gradient", "image"]),
2479
- color: z15.string().nullable().optional(),
2558
+ var headerBackgroundSchema = z17.object({
2559
+ type: z17.enum(["color", "gradient", "image"]),
2560
+ color: tokenOrCssColorValueSchema.nullable().optional(),
2480
2561
  gradient: gradientConfigSchema.nullable().optional(),
2481
2562
  image: mediaSchema.nullable().optional(),
2482
- textColor: z15.string().nullable().optional()
2563
+ textColor: tokenOrCssColorValueSchema.nullable().optional()
2483
2564
  });
2484
- var headerSchema = z15.object({
2565
+ var headerSchema = z17.object({
2485
2566
  variant: headerVariant,
2486
2567
  positioning: headerPositioning,
2487
- shrinkOnScroll: z15.boolean(),
2568
+ shrinkOnScroll: z17.boolean(),
2488
2569
  maxWidth: headerMaxWidth,
2489
2570
  logoOverride: mediaSchema.nullable().optional(),
2490
2571
  background: headerBackgroundSchema.default({
2491
2572
  type: "color",
2492
2573
  color: "surface"
2493
2574
  }),
2494
- textColor: z15.string().nullable().optional(),
2495
- // Site title and general header text
2575
+ textColor: themeColorTokenSchema.nullable().optional(),
2496
2576
  navStyle: headerNavStyle,
2497
- navColor: z15.string().nullable().optional(),
2498
- // Nav links (inherits textColor if not set)
2577
+ navColor: themeColorTokenSchema.nullable().optional(),
2499
2578
  navWeight: navFontWeight.default("medium"),
2500
2579
  // New fields for header system enhancement
2501
2580
  container: headerContainerSchema,
@@ -2516,54 +2595,54 @@ var headerSchema = z15.object({
2516
2595
  // Optional theme-level CTA variant for header/nav CTA buttons.
2517
2596
  // Internal runtime bridge for the block renderer; prefer ctaTreatment in
2518
2597
  // authored Theme V2 concepts.
2519
- ctaVariant: z15.string().min(1).optional(),
2598
+ ctaVariant: z17.string().min(1).optional(),
2520
2599
  // Dropdown menu styling (nav dropdowns and mobile drawer)
2521
2600
  dropdownStyle: dropdownStyleSchema
2522
2601
  });
2523
- var footerVariant = z15.enum(["simple", "columns", "split"]);
2524
- var footerMaxWidth = z15.enum(["container", "full"]);
2525
- var footerMode = z15.enum(["default", "blocks", "default+blocks", "none"]);
2526
- var footerNavLayoutMode = z15.enum(["stack", "inline", "inline-wrap"]);
2527
- var footerNavLayoutAlign = z15.enum(["start", "center", "end", "space-between"]);
2528
- var footerSpacing = z15.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2529
- var footerLogoPlacement = z15.enum(["left", "right", "above", "below"]);
2530
- var footerLogoSize = z15.enum(["sm", "md", "lg", "xl"]);
2531
- var footerLogoMaxHeight = z15.enum(["sm", "md", "lg", "xl"]);
2532
- var footerBottomTextLinkStyleSchema = z15.object({
2533
- colorToken: z15.string().optional(),
2534
- hoverColorToken: z15.string().nullable().optional(),
2535
- decorationColorToken: z15.string().nullable().optional(),
2536
- 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()
2537
2616
  });
2538
- var footerBottomBarSchema = z15.object({
2539
- enabled: z15.boolean().optional(),
2540
- fullBleed: z15.boolean().optional(),
2617
+ var footerBottomBarSchema = z17.object({
2618
+ enabled: z17.boolean().optional(),
2619
+ fullBleed: z17.boolean().optional(),
2541
2620
  background: headerBackgroundSchema.optional(),
2542
- textColor: z15.string().nullable().optional(),
2543
- textAlign: z15.enum(["left", "center", "right"]).optional(),
2621
+ textColor: themeColorTokenSchema.nullable().optional(),
2622
+ textAlign: z17.enum(["left", "center", "right"]).optional(),
2544
2623
  paddingY: footerSpacing.optional(),
2545
2624
  paddingX: footerSpacing.optional(),
2546
- borderTop: z15.object({
2547
- colorToken: z15.string().nullable().optional(),
2548
- 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()
2549
2628
  }).optional()
2550
2629
  });
2551
- var footerNavLayoutSchema = z15.object({
2630
+ var footerNavLayoutSchema = z17.object({
2552
2631
  layout: footerNavLayoutMode.optional(),
2553
2632
  align: footerNavLayoutAlign.optional(),
2554
2633
  gapX: footerSpacing.optional(),
2555
2634
  gapY: footerSpacing.optional(),
2556
- columns: z15.number().int().min(1).max(6).optional()
2635
+ columns: z17.number().int().min(1).max(6).optional()
2557
2636
  });
2558
- var footerLogoSchema = z15.object({
2559
- showLogo: z15.boolean().default(true),
2560
- showLogoText: z15.boolean().optional(),
2637
+ var footerLogoSchema = z17.object({
2638
+ showLogo: z17.boolean().default(true),
2639
+ showLogoText: z17.boolean().optional(),
2561
2640
  placement: footerLogoPlacement.optional(),
2562
2641
  size: footerLogoSize.optional(),
2563
2642
  maxHeight: footerLogoMaxHeight.optional(),
2564
- align: z15.enum(["start", "center", "end"]).optional()
2643
+ align: z17.enum(["start", "center", "end"]).optional()
2565
2644
  });
2566
- var footerSchema = z15.object({
2645
+ var footerSchema = z17.object({
2567
2646
  /**
2568
2647
  * SDK-only footer rendering mode.
2569
2648
  *
@@ -2572,14 +2651,14 @@ var footerSchema = z15.object({
2572
2651
  mode: footerMode.optional(),
2573
2652
  variant: footerVariant,
2574
2653
  maxWidth: footerMaxWidth,
2575
- showLogoText: z15.boolean().optional(),
2654
+ showLogoText: z17.boolean().optional(),
2576
2655
  background: headerBackgroundSchema.default({
2577
2656
  type: "color",
2578
2657
  color: "surface"
2579
2658
  }),
2580
2659
  // Footer nav styling (independent from header)
2581
2660
  navStyle: headerNavStyle.default("minimal"),
2582
- navColor: z15.string().nullable().optional(),
2661
+ navColor: themeColorTokenSchema.nullable().optional(),
2583
2662
  navWeight: navFontWeight.default("medium"),
2584
2663
  // Full nav link customization (overrides navStyle if set)
2585
2664
  navLinkStyle: navLinkStyleSchema.optional(),
@@ -2590,23 +2669,23 @@ var footerSchema = z15.object({
2590
2669
  logo: footerLogoSchema.optional(),
2591
2670
  bottomBar: footerBottomBarSchema.optional()
2592
2671
  });
2593
- var containerPaddingPresetSchema = z15.enum(["tight", "compact", "default", "relaxed"]);
2594
- var layoutSchema = z15.object({
2595
- containerPadding: z15.object({
2672
+ var containerPaddingPresetSchema = z17.enum(["tight", "compact", "default", "relaxed"]);
2673
+ var layoutSchema = z17.object({
2674
+ containerPadding: z17.object({
2596
2675
  mobile: containerPaddingPresetSchema.optional(),
2597
2676
  tablet: containerPaddingPresetSchema.optional(),
2598
2677
  desktop: containerPaddingPresetSchema.optional()
2599
2678
  }).optional()
2600
2679
  }).optional();
2601
- var heroTypographySizeSchema = z15.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
2602
- var heroTypographyLineHeightSchema = z15.enum(["tight", "snug", "normal", "relaxed"]);
2603
- 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({
2604
2683
  headlineSize: heroTypographySizeSchema.optional(),
2605
2684
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
2606
2685
  subheadlineSize: heroTypographySizeSchema.optional(),
2607
2686
  subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
2608
2687
  });
2609
- var heroTypographySchema = z15.object({
2688
+ var heroTypographySchema = z17.object({
2610
2689
  headlineSize: heroTypographySizeSchema.optional(),
2611
2690
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
2612
2691
  subheadlineSize: heroTypographySizeSchema.optional(),
@@ -2615,31 +2694,31 @@ var heroTypographySchema = z15.object({
2615
2694
  microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
2616
2695
  microSubheadlineSize: heroTypographySizeSchema.optional(),
2617
2696
  microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
2618
- responsive: z15.object({
2697
+ responsive: z17.object({
2619
2698
  tablet: heroResponsiveTypographySchema.optional(),
2620
2699
  mobile: heroResponsiveTypographySchema.optional()
2621
2700
  }).optional()
2622
2701
  });
2623
- var heroSchema = z15.object({
2702
+ var heroSchema = z17.object({
2624
2703
  typography: heroTypographySchema.optional()
2625
2704
  }).optional();
2626
- var bodyTextIntroTypographySizeSchema = z15.enum(["default", "editorial"]);
2627
- var bodyTextSchema = z15.object({
2628
- intro: z15.object({
2705
+ var bodyTextIntroTypographySizeSchema = z17.enum(["default", "editorial"]);
2706
+ var bodyTextSchema = z17.object({
2707
+ intro: z17.object({
2629
2708
  paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
2630
2709
  headingSize: bodyTextIntroTypographySizeSchema.optional()
2631
2710
  }).optional()
2632
2711
  }).optional();
2633
- var gradientsSchema = z15.object({
2634
- button: z15.string().min(1).nullable().optional(),
2635
- hero: z15.string().min(1).nullable().optional(),
2636
- 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()
2637
2716
  });
2638
- var themeSchema = z15.object({
2639
- name: z15.string().min(1).max(30),
2640
- description: z15.string().min(1).max(400),
2641
- rationale: z15.string().min(1).max(400),
2642
- 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(),
2643
2722
  axes: axesSchema,
2644
2723
  palette: paletteSchema,
2645
2724
  typography: typographySchema,
@@ -2667,15 +2746,15 @@ var themeSchema = z15.object({
2667
2746
  // Block-specific customization (Tier 3)
2668
2747
  // blockCustomVars: Per-block CSS variable overrides as bare values
2669
2748
  // Example: { "event-registration": { "--step-color": "#6d28d9" } }
2670
- blockCustomVars: z15.record(
2671
- z15.string(),
2749
+ blockCustomVars: z17.record(
2750
+ z17.string(),
2672
2751
  // block kind (matches data-block attribute)
2673
- z15.record(z15.string(), z15.string())
2752
+ z17.record(z17.string(), z17.string())
2674
2753
  // { '--var-name': 'value' }
2675
2754
  ).optional(),
2676
2755
  // Structured block-kind theme overrides (v1: typography prose-link style only)
2677
2756
  // Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
2678
- blockOverrides: z15.record(z15.string(), blockThemeOverrideSchema).optional(),
2757
+ blockOverrides: z17.record(z17.string(), blockThemeOverrideSchema).optional(),
2679
2758
  // Structured custom CSS rules
2680
2759
  // Validated, scoped, and safe by construction - no @import, remote url(), or global selectors
2681
2760
  customCssRules: customCssRulesSchema,
@@ -2709,11 +2788,11 @@ var themeSchema = z15.object({
2709
2788
  * }
2710
2789
  * ```
2711
2790
  */
2712
- styleGroups: z15.record(z15.string(), z15.array(z15.string())).optional()
2791
+ styleGroups: z17.record(z17.string(), z17.array(z17.string())).optional()
2713
2792
  });
2714
- var themesTurnSchema = z15.object({
2715
- message: z15.string().min(1),
2716
- themes: z15.array(themeSchema).length(3)
2793
+ var themesTurnSchema = z17.object({
2794
+ message: z17.string().min(1),
2795
+ themes: z17.array(themeSchema).length(3)
2717
2796
  });
2718
2797
 
2719
2798
  // ../theme-core/src/palette/variants/types.ts
@@ -2723,35 +2802,19 @@ function asPaletteVariantId(value) {
2723
2802
  }
2724
2803
  return value;
2725
2804
  }
2726
- var paletteVariantIdSchema = z16.string().min(1).transform((value) => asPaletteVariantId(value));
2727
- var PALETTE_TOKEN_NAMES = [
2728
- "primary",
2729
- "primaryForeground",
2730
- "secondary",
2731
- "accent",
2732
- "success",
2733
- "warning",
2734
- "destructive",
2735
- "background",
2736
- "surface",
2737
- "surfaceAlt",
2738
- "muted",
2739
- "text",
2740
- "border"
2741
- ];
2742
- var paletteTokenNameSchema = z16.enum(PALETTE_TOKEN_NAMES);
2805
+ var paletteVariantIdSchema = z18.string().min(1).transform((value) => asPaletteVariantId(value));
2743
2806
  var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
2744
- 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);
2745
2808
  var variantPaletteColorSchema = paletteColorSchema.extend({
2746
2809
  name: paletteTokenNameSchema
2747
2810
  });
2748
- var paletteVariantSchema = z16.object({
2811
+ var paletteVariantSchema = z18.object({
2749
2812
  id: paletteVariantIdSchema,
2750
- name: z16.string().min(1),
2751
- description: z16.string().min(1),
2813
+ name: z18.string().min(1),
2814
+ description: z18.string().min(1),
2752
2815
  tags: styleTagsSchema,
2753
- mode: z16.enum(["light", "dark"]),
2754
- colors: z16.array(variantPaletteColorSchema).min(1)
2816
+ mode: z18.enum(["light", "dark"]),
2817
+ colors: z18.array(variantPaletteColorSchema).min(1)
2755
2818
  });
2756
2819
  function definePaletteVariant(input) {
2757
2820
  return {
@@ -2763,7 +2826,7 @@ function definePaletteVariant(input) {
2763
2826
  colors: input.colors
2764
2827
  };
2765
2828
  }
2766
- var paletteOverridesSchema = z16.object({
2829
+ var paletteOverridesSchema = z18.object({
2767
2830
  primary: hexColorSchema.optional(),
2768
2831
  primaryForeground: hexColorSchema.optional(),
2769
2832
  secondary: hexColorSchema.optional(),
@@ -3097,6 +3160,419 @@ var paletteVariantsById = new Map(
3097
3160
  paletteVariants.map((v) => [v.id, v])
3098
3161
  );
3099
3162
 
3163
+ // ../theme-core/src/site-styles/headerLooks.ts
3164
+ function asHeaderLookId(value) {
3165
+ return value;
3166
+ }
3167
+ function baseHeader(theme) {
3168
+ const {
3169
+ navLinkStyle: _navLinkStyle,
3170
+ dropdownStyle: _dropdownStyle,
3171
+ ctaVariant: _ctaVariant,
3172
+ navContainer: _navContainer,
3173
+ container: _container,
3174
+ shadow: _shadow,
3175
+ logo: _logo,
3176
+ logoText: _logoText,
3177
+ border: _border,
3178
+ ...header
3179
+ } = theme.header;
3180
+ return {
3181
+ ...header,
3182
+ navContainer: { type: "none", tint: null, opacity: 0.15 }
3183
+ };
3184
+ }
3185
+ function solidBrandHeader(theme) {
3186
+ const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
3187
+ return {
3188
+ ...baseHeader(theme),
3189
+ variant: "classic",
3190
+ positioning: "sticky",
3191
+ shrinkOnScroll: true,
3192
+ background: {
3193
+ type: "color",
3194
+ color: "primary"
3195
+ },
3196
+ textColor: "primaryForeground",
3197
+ navColor: "primaryForeground",
3198
+ navStyle: "underline-grow",
3199
+ navWeight: "bold",
3200
+ navLinkStyle: {
3201
+ typography: "body",
3202
+ fontWeight: "bold",
3203
+ textTransform: "uppercase",
3204
+ italic: false,
3205
+ colorToken: "primaryForeground",
3206
+ hoverColorToken: "secondary",
3207
+ textSize: "sm",
3208
+ letterSpacing: "wider",
3209
+ padding: "compact",
3210
+ paddingX: "compact",
3211
+ borderRadius: "none",
3212
+ effects: {
3213
+ hover: [
3214
+ { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
3215
+ { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
3216
+ ]
3217
+ }
3218
+ },
3219
+ dropdownStyle: {
3220
+ background: "primary-700",
3221
+ textColor: "primaryForeground",
3222
+ borderColor: null,
3223
+ shadow: "md",
3224
+ borderRadius: "md",
3225
+ hoverBackground: "primary-900",
3226
+ hoverTextColor: "secondary",
3227
+ textTransform: "uppercase",
3228
+ letterSpacing: "wider",
3229
+ fontWeight: "bold",
3230
+ textSize: "sm"
3231
+ },
3232
+ border: {
3233
+ style: "solid",
3234
+ width: "none",
3235
+ position: "none"
3236
+ },
3237
+ logoText: {
3238
+ hideOnShrink: true,
3239
+ mobileMaxWidth: "sm",
3240
+ mobileWrapLines: 2
3241
+ },
3242
+ ctaGap: "compact",
3243
+ ctaTreatment: "inverted",
3244
+ ...ctaVariant ? { ctaVariant } : {}
3245
+ };
3246
+ }
3247
+ function cleanBaseHeader(theme) {
3248
+ return {
3249
+ ...baseHeader(theme),
3250
+ variant: "classic",
3251
+ positioning: "sticky",
3252
+ shrinkOnScroll: false,
3253
+ background: {
3254
+ type: "color",
3255
+ color: "surface"
3256
+ },
3257
+ textColor: "text",
3258
+ navColor: "text",
3259
+ navStyle: "minimal",
3260
+ navWeight: "medium",
3261
+ border: {
3262
+ style: "solid",
3263
+ width: "thin",
3264
+ position: "bottom",
3265
+ colorToken: "border"
3266
+ },
3267
+ ctaTreatment: "default",
3268
+ ctaGap: "default"
3269
+ };
3270
+ }
3271
+ function editorialLineHeader(theme) {
3272
+ return {
3273
+ ...baseHeader(theme),
3274
+ variant: "editorial",
3275
+ positioning: "sticky",
3276
+ shrinkOnScroll: false,
3277
+ background: {
3278
+ type: "color",
3279
+ color: "background"
3280
+ },
3281
+ textColor: "text",
3282
+ navColor: "text",
3283
+ navStyle: "underline-grow",
3284
+ navWeight: "medium",
3285
+ logo: {
3286
+ fontFamily: "heading",
3287
+ letterSpacing: "wide",
3288
+ gradient: false
3289
+ },
3290
+ ctaTreatment: "outline",
3291
+ ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
3292
+ ctaGap: "relaxed"
3293
+ };
3294
+ }
3295
+ function centeredCalmHeader(theme) {
3296
+ return {
3297
+ ...baseHeader(theme),
3298
+ variant: "centered",
3299
+ positioning: "static",
3300
+ shrinkOnScroll: false,
3301
+ background: {
3302
+ type: "color",
3303
+ color: "surface"
3304
+ },
3305
+ textColor: "text",
3306
+ navColor: "text",
3307
+ navStyle: "minimal",
3308
+ navWeight: "medium",
3309
+ ctaTreatment: "ghost",
3310
+ ctaVariant: resolveHeaderCtaVariant(theme, "ghost"),
3311
+ ctaGap: "none"
3312
+ };
3313
+ }
3314
+ function practicalUtilityHeader(theme) {
3315
+ return {
3316
+ ...baseHeader(theme),
3317
+ variant: "classic",
3318
+ positioning: "sticky",
3319
+ shrinkOnScroll: true,
3320
+ background: {
3321
+ type: "color",
3322
+ color: "surface"
3323
+ },
3324
+ textColor: "text",
3325
+ navColor: "text",
3326
+ navStyle: "solid",
3327
+ navWeight: "semibold",
3328
+ shadow: {
3329
+ elevation: "sm"
3330
+ },
3331
+ border: {
3332
+ style: "solid",
3333
+ width: "thin",
3334
+ position: "bottom",
3335
+ colorToken: "border"
3336
+ },
3337
+ ctaTreatment: "primary",
3338
+ ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
3339
+ ctaGap: "compact",
3340
+ logoText: {
3341
+ mobileMaxWidth: "sm",
3342
+ mobileWrapLines: 1,
3343
+ hideOnShrink: false
3344
+ }
3345
+ };
3346
+ }
3347
+ function minimalTransparentHeader(theme) {
3348
+ return {
3349
+ ...baseHeader(theme),
3350
+ variant: "classic",
3351
+ positioning: "static",
3352
+ shrinkOnScroll: false,
3353
+ background: {
3354
+ type: "color",
3355
+ color: "transparent"
3356
+ },
3357
+ textColor: "text",
3358
+ navColor: "text",
3359
+ navStyle: "underline",
3360
+ navWeight: "medium",
3361
+ border: {
3362
+ style: "solid",
3363
+ width: "none",
3364
+ position: "none"
3365
+ },
3366
+ ctaTreatment: "outline",
3367
+ ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
3368
+ ctaGap: "default"
3369
+ };
3370
+ }
3371
+ function transparentOverlayHeader(theme) {
3372
+ return {
3373
+ ...baseHeader(theme),
3374
+ variant: "transparent",
3375
+ positioning: "fixed",
3376
+ shrinkOnScroll: true,
3377
+ background: {
3378
+ type: "color",
3379
+ color: "transparent"
3380
+ },
3381
+ textColor: "background",
3382
+ navColor: "background",
3383
+ navStyle: "frosted",
3384
+ navWeight: "semibold",
3385
+ border: {
3386
+ style: "solid",
3387
+ width: "none",
3388
+ position: "none"
3389
+ },
3390
+ ctaTreatment: "inverted",
3391
+ ctaVariant: resolveHeaderCtaVariant(theme, "inverted"),
3392
+ ctaGap: "compact"
3393
+ };
3394
+ }
3395
+ function floatingGlassHeader(theme) {
3396
+ return {
3397
+ ...transparentOverlayHeader(theme),
3398
+ variant: "floating",
3399
+ navStyle: "frosted",
3400
+ navContainer: {
3401
+ type: "glass",
3402
+ tint: "text",
3403
+ opacity: 0.16
3404
+ },
3405
+ container: {
3406
+ rounded: "2xl",
3407
+ border: true,
3408
+ shadow: true,
3409
+ padding: "sm",
3410
+ tint: "background",
3411
+ opacity: 0.12
3412
+ }
3413
+ };
3414
+ }
3415
+ var headerLookCatalog = [
3416
+ {
3417
+ id: asHeaderLookId("clean-base"),
3418
+ label: "Clean base",
3419
+ visualTreatment: "solid-neutral",
3420
+ layoutBehavior: "sticky",
3421
+ openingRequirement: "none",
3422
+ compile: cleanBaseHeader
3423
+ },
3424
+ {
3425
+ id: asHeaderLookId("brand-solid"),
3426
+ label: "Brand solid",
3427
+ visualTreatment: "solid-brand",
3428
+ layoutBehavior: "sticky-shrink",
3429
+ openingRequirement: "none",
3430
+ compile: solidBrandHeader
3431
+ },
3432
+ {
3433
+ id: asHeaderLookId("editorial-line"),
3434
+ label: "Editorial line",
3435
+ visualTreatment: "light-editorial",
3436
+ layoutBehavior: "sticky",
3437
+ openingRequirement: "none",
3438
+ maxRecommendedNavItems: 6,
3439
+ compile: editorialLineHeader
3440
+ },
3441
+ {
3442
+ id: asHeaderLookId("centered-calm"),
3443
+ label: "Centered calm",
3444
+ visualTreatment: "light-editorial",
3445
+ layoutBehavior: "normal-flow",
3446
+ openingRequirement: "none",
3447
+ maxRecommendedNavItems: 5,
3448
+ allowedLogoShapes: ["none", "text-only", "horizontal", "square"],
3449
+ compile: centeredCalmHeader
3450
+ },
3451
+ {
3452
+ id: asHeaderLookId("practical-utility"),
3453
+ label: "Practical utility",
3454
+ visualTreatment: "solid-neutral",
3455
+ layoutBehavior: "sticky-shrink",
3456
+ openingRequirement: "none",
3457
+ requiresProminentCta: true,
3458
+ compile: practicalUtilityHeader
3459
+ },
3460
+ {
3461
+ id: asHeaderLookId("minimal-transparent"),
3462
+ label: "Minimal transparent",
3463
+ visualTreatment: "minimal-transparent",
3464
+ layoutBehavior: "normal-flow",
3465
+ openingRequirement: "reserved-space-ok",
3466
+ compile: minimalTransparentHeader
3467
+ },
3468
+ {
3469
+ id: asHeaderLookId("transparent-overlay"),
3470
+ label: "Transparent overlay",
3471
+ visualTreatment: "transparent-overlay",
3472
+ layoutBehavior: "fixed-overlay",
3473
+ openingRequirement: "requires-image-hero-with-contrast-overlay",
3474
+ maxRecommendedNavItems: 5,
3475
+ allowedLogoShapes: ["none", "text-only", "horizontal"],
3476
+ compile: transparentOverlayHeader
3477
+ },
3478
+ {
3479
+ id: asHeaderLookId("floating-glass"),
3480
+ label: "Floating glass",
3481
+ visualTreatment: "floating-glass",
3482
+ layoutBehavior: "fixed-floating",
3483
+ openingRequirement: "requires-image-hero-with-contrast-overlay",
3484
+ maxRecommendedNavItems: 5,
3485
+ allowedLogoShapes: ["none", "text-only", "horizontal"],
3486
+ compile: floatingGlassHeader
3487
+ }
3488
+ ];
3489
+ var guaranteedFallbackHeaderLookId = asHeaderLookId("clean-base");
3490
+ var headerLooksById = new Map(
3491
+ headerLookCatalog.map((look) => [look.id, look])
3492
+ );
3493
+
3494
+ // ../theme-core/src/site-styles/footerLooks.ts
3495
+ function asFooterLookId(value) {
3496
+ return value;
3497
+ }
3498
+ var guaranteedFallbackFooterLookId = asFooterLookId("footer-muted-grounding");
3499
+ function mutedGroundingFooter(theme) {
3500
+ return theme.footer;
3501
+ }
3502
+ function brandTwoBandFooter(theme) {
3503
+ return {
3504
+ ...theme.footer,
3505
+ variant: "split",
3506
+ maxWidth: "container",
3507
+ background: {
3508
+ type: "color",
3509
+ color: "primary-800"
3510
+ },
3511
+ navStyle: "minimal",
3512
+ navWeight: "medium",
3513
+ navColor: "primaryForeground",
3514
+ navLinkStyle: {
3515
+ typography: "body",
3516
+ fontWeight: "medium",
3517
+ textTransform: "none",
3518
+ italic: false,
3519
+ colorToken: "primaryForeground",
3520
+ hoverColorToken: "secondary",
3521
+ padding: "none",
3522
+ borderRadius: "none"
3523
+ },
3524
+ bottomTextLinkStyle: {
3525
+ colorToken: "secondary",
3526
+ decorationColorToken: "secondary"
3527
+ },
3528
+ navLayout: {
3529
+ layout: "inline-wrap",
3530
+ align: "start",
3531
+ gapX: "default",
3532
+ gapY: "tight"
3533
+ },
3534
+ logo: {
3535
+ showLogo: true,
3536
+ showLogoText: false,
3537
+ placement: "left",
3538
+ size: "sm",
3539
+ align: "start"
3540
+ },
3541
+ bottomBar: {
3542
+ enabled: true,
3543
+ fullBleed: true,
3544
+ background: {
3545
+ type: "color",
3546
+ color: "primary-900"
3547
+ },
3548
+ textColor: "primaryForeground",
3549
+ textAlign: "center",
3550
+ paddingX: "default",
3551
+ paddingY: "compact",
3552
+ borderTop: {
3553
+ width: "none"
3554
+ }
3555
+ }
3556
+ };
3557
+ }
3558
+ var footerLookCatalog = [
3559
+ {
3560
+ id: asFooterLookId("footer-muted-grounding"),
3561
+ label: "Muted grounding footer",
3562
+ compile: mutedGroundingFooter
3563
+ },
3564
+ {
3565
+ id: asFooterLookId("site-footer-brand-two-band"),
3566
+ label: "Two-band brand footer",
3567
+ maxRecommendedNavDensity: "balanced",
3568
+ allowedContentPresence: ["default-footer", "default-and-blocks"],
3569
+ compile: brandTwoBandFooter
3570
+ }
3571
+ ];
3572
+ var footerLooksById = new Map(
3573
+ footerLookCatalog.map((look) => [look.id, look])
3574
+ );
3575
+
3100
3576
  // ../theme-core/src/site-styles/sourceCatalogs.ts
3101
3577
  var generatedContentFrames = [
3102
3578
  plainFrame,
@@ -3250,6 +3726,9 @@ function defineCuratedSiteStyle(input) {
3250
3726
  },
3251
3727
  ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
3252
3728
  recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
3729
+ recommendedHeaderLookIds: (input.recommendedHeaderLookIds ?? ["clean-base"]).map(asHeaderLookId),
3730
+ // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
3731
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
3253
3732
  buttonPersonalityChoices: input.buttonPersonalityChoices,
3254
3733
  paletteVariantChoices: input.paletteVariantChoices
3255
3734
  };
@@ -3276,6 +3755,7 @@ var curatedSiteStyles = [
3276
3755
  motion: "subtle"
3277
3756
  },
3278
3757
  compositionBudget: quietBudget,
3758
+ recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
3279
3759
  buttonPersonalityChoices: [
3280
3760
  buttonChoice("soft-pill"),
3281
3761
  buttonChoice("pebble"),
@@ -3304,6 +3784,7 @@ var curatedSiteStyles = [
3304
3784
  motion: "subtle"
3305
3785
  },
3306
3786
  compositionBudget: balancedBudget,
3787
+ recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
3307
3788
  buttonPersonalityChoices: [
3308
3789
  buttonChoice("confident-chip"),
3309
3790
  buttonChoice("soft-pill"),
@@ -3330,6 +3811,7 @@ var curatedSiteStyles = [
3330
3811
  motion: "subtle"
3331
3812
  },
3332
3813
  compositionBudget: balancedBudget,
3814
+ recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
3333
3815
  buttonPersonalityChoices: [
3334
3816
  buttonChoice("editorial-link"),
3335
3817
  buttonChoice("soft-pill"),
@@ -3357,6 +3839,7 @@ var curatedSiteStyles = [
3357
3839
  motion: "expressive"
3358
3840
  },
3359
3841
  compositionBudget: balancedBudget,
3842
+ recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
3360
3843
  buttonPersonalityChoices: [
3361
3844
  buttonChoice("pebble"),
3362
3845
  buttonChoice("brushed-wash"),
@@ -3390,6 +3873,7 @@ var curatedSiteStyles = [
3390
3873
  motion: "none"
3391
3874
  },
3392
3875
  compositionBudget: quietBudget,
3876
+ recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
3393
3877
  buttonPersonalityChoices: [
3394
3878
  buttonChoice("editorial-link"),
3395
3879
  buttonChoice("confident-chip"),
@@ -3424,6 +3908,7 @@ var curatedSiteStyles = [
3424
3908
  motion: "none"
3425
3909
  },
3426
3910
  compositionBudget: quietBudget,
3911
+ recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
3427
3912
  buttonPersonalityChoices: [
3428
3913
  buttonChoice("confident-chip"),
3429
3914
  buttonChoice("pebble"),
@@ -3450,6 +3935,7 @@ var curatedSiteStyles = [
3450
3935
  motion: "subtle"
3451
3936
  },
3452
3937
  compositionBudget: balancedBudget,
3938
+ recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
3453
3939
  buttonPersonalityChoices: [
3454
3940
  buttonChoice("soft-pill"),
3455
3941
  buttonChoice("pebble"),
@@ -3484,6 +3970,7 @@ var curatedSiteStyles = [
3484
3970
  motion: "expressive"
3485
3971
  },
3486
3972
  compositionBudget: expressiveBudget,
3973
+ recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
3487
3974
  buttonPersonalityChoices: [
3488
3975
  buttonChoice("ink-stamp"),
3489
3976
  buttonChoice("confident-chip"),
@@ -3573,14 +4060,14 @@ var curatedSiteStyles = [
3573
4060
  inputs: expressiveUnderlineInputs
3574
4061
  },
3575
4062
  recommendedAppearancePresetIds: [
3576
- "site-header-brand-solid-inverted-cta",
3577
- "site-footer-brand-two-band",
3578
4063
  "hero-brand-scrim-fixed-frame",
3579
4064
  "body-text-editorial-intro",
3580
4065
  "schedule-details-brand-depth",
3581
4066
  "testimonials-accent-quote-proof",
3582
4067
  "contact-form-brand-depth-card"
3583
4068
  ],
4069
+ recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
4070
+ recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
3584
4071
  buttonPersonalityChoices: [
3585
4072
  buttonChoice("showtime-pill"),
3586
4073
  buttonChoice("confident-chip"),
@@ -3599,6 +4086,14 @@ var curatedSiteStylesById = new Map(
3599
4086
  curatedSiteStyles.map((style) => [style.id, style])
3600
4087
  );
3601
4088
 
4089
+ // ../theme-core/src/site-styles/siteStyleBlockPolicies.ts
4090
+ var defaultPolicyPageFlowPresetId = asPageFlowPresetId("generated-default");
4091
+ var southWestTwerkSchoolSiteStyleId = asSiteStyleId("site-style:south-west-twerk-school");
4092
+ var heroBrandScrimFixedFrameLookId = asAppearancePresetId("hero-brand-scrim-fixed-frame");
4093
+ var classicHeroLayoutVariantKey = asLayoutVariantKey("classic");
4094
+ var microHeroLayoutVariantKey = asLayoutVariantKey("micro");
4095
+ var waveBoundaryOptionId = asBoundaryOptionId("break:wave");
4096
+
3602
4097
  // ../theme-core/src/site-styles/pageDesignEditorModel.ts
3603
4098
  var noneBoundaryOption = {
3604
4099
  id: asBoundaryOptionId("break:none"),
@@ -3642,7 +4137,7 @@ var pageFlowPresets = [
3642
4137
  ];
3643
4138
 
3644
4139
  // ../theme-core/src/site-styles/designState.ts
3645
- import { z as z17 } from "zod";
4140
+ import { z as z19 } from "zod";
3646
4141
 
3647
4142
  // ../theme-core/src/site-styles/rawStyleFields.ts
3648
4143
  var themeV2RuntimeStyleFieldNames = [
@@ -3668,53 +4163,53 @@ var themeV2NormalEditorRawStyleFieldNameSet = new Set(
3668
4163
 
3669
4164
  // ../theme-core/src/site-styles/designState.ts
3670
4165
  var themeV2DesignStateSchemaVersion = 1;
3671
- var designResolutionPolicySchema = z17.enum(["generated", "user", "admin", "sdk"]);
3672
- var runtimeStyleFieldNameSchema = z17.enum(themeV2RuntimeStyleFieldNames);
3673
- var nonEmptyRuntimeStyleFieldNamesSchema = z17.array(runtimeStyleFieldNameSchema).min(1).transform((fields) => [
4166
+ var designResolutionPolicySchema = z19.enum(["generated", "user", "admin", "sdk"]);
4167
+ var runtimeStyleFieldNameSchema = z19.enum(themeV2RuntimeStyleFieldNames);
4168
+ var nonEmptyRuntimeStyleFieldNamesSchema = z19.array(runtimeStyleFieldNameSchema).min(1).transform((fields) => [
3674
4169
  fields[0],
3675
4170
  ...fields.slice(1)
3676
4171
  ]);
3677
- var heroLegibilityStrategySchema = z17.enum([
4172
+ var heroLegibilityStrategySchema = z19.enum([
3678
4173
  "none",
3679
4174
  "scrim-gradient",
3680
4175
  "solid-panel"
3681
4176
  ]);
3682
- var sectionHeightIntentSchema = z17.enum([
4177
+ var sectionHeightIntentSchema = z19.enum([
3683
4178
  "default",
3684
4179
  "banner",
3685
4180
  "hero",
3686
4181
  "immersive"
3687
4182
  ]);
3688
- var imageSurfaceTreatmentIntensitySchema = z17.enum(["soft", "balanced", "strong"]);
3689
- var imageSurfaceMotionSchema = z17.enum(["static", "fixed-frame"]);
3690
- var imageSurfaceTreatmentSchema = z17.discriminatedUnion("kind", [
3691
- z17.object({ kind: z17.literal("none") }).strict(),
3692
- z17.object({
3693
- kind: z17.literal("brand-scrim"),
3694
- token: z17.enum(["primary", "secondary", "accent"]),
4183
+ var imageSurfaceTreatmentIntensitySchema = z19.enum(["soft", "balanced", "strong"]);
4184
+ var imageSurfaceMotionSchema = z19.enum(["static", "fixed-frame"]);
4185
+ var imageSurfaceTreatmentSchema = z19.discriminatedUnion("kind", [
4186
+ z19.object({ kind: z19.literal("none") }).strict(),
4187
+ z19.object({
4188
+ kind: z19.literal("brand-scrim"),
4189
+ token: z19.enum(["primary", "secondary", "accent"]),
3695
4190
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3696
4191
  }).strict(),
3697
- z17.object({
3698
- kind: z17.literal("brand-wash"),
3699
- token: z17.enum(["primary", "secondary", "accent"]),
4192
+ z19.object({
4193
+ kind: z19.literal("brand-wash"),
4194
+ token: z19.enum(["primary", "secondary", "accent"]),
3700
4195
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3701
4196
  }).strict(),
3702
- z17.object({
3703
- kind: z17.literal("neutral-scrim"),
4197
+ z19.object({
4198
+ kind: z19.literal("neutral-scrim"),
3704
4199
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3705
4200
  }).strict(),
3706
- z17.object({
3707
- kind: z17.literal("neutral-wash"),
4201
+ z19.object({
4202
+ kind: z19.literal("neutral-wash"),
3708
4203
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3709
4204
  }).strict(),
3710
- z17.object({
3711
- kind: z17.literal("solid-panel"),
4205
+ z19.object({
4206
+ kind: z19.literal("solid-panel"),
3712
4207
  intensity: imageSurfaceTreatmentIntensitySchema.optional()
3713
4208
  }).strict()
3714
4209
  ]);
3715
- var testimonialCardTreatmentSchema = z17.enum(["default", "accent-quote"]);
3716
- var tileTreatmentSchema = z17.enum(tileTreatmentValues);
3717
- var eyebrowTreatmentSchema = z17.enum(eyebrowTreatmentValues);
4210
+ var testimonialCardTreatmentSchema = z19.enum(["default", "accent-quote"]);
4211
+ var tileTreatmentSchema = z19.enum(tileTreatmentValues);
4212
+ var eyebrowTreatmentSchema = z19.enum(eyebrowTreatmentValues);
3718
4213
  function uniqueNonEmpty(values) {
3719
4214
  const uniqueValues = [...new Set(values)];
3720
4215
  const firstValue = uniqueValues[0];
@@ -3732,27 +4227,27 @@ var userFlushTreatments = uniqueNonEmpty(
3732
4227
  var userFlushBleeds = uniqueNonEmpty(
3733
4228
  userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
3734
4229
  );
3735
- var contentFrameIntentSchema = z17.discriminatedUnion("kind", [
3736
- z17.object({ kind: z17.literal("plain") }).strict(),
3737
- z17.object({
3738
- kind: z17.literal("panel"),
3739
- treatment: z17.enum(userPanelTreatments)
4230
+ var contentFrameIntentSchema = z19.discriminatedUnion("kind", [
4231
+ z19.object({ kind: z19.literal("plain") }).strict(),
4232
+ z19.object({
4233
+ kind: z19.literal("panel"),
4234
+ treatment: z19.enum(userPanelTreatments)
3740
4235
  }).strict(),
3741
- z17.object({
3742
- kind: z17.literal("flush-panel"),
3743
- treatment: z17.enum(userFlushTreatments),
3744
- bleed: z17.enum(userFlushBleeds)
4236
+ z19.object({
4237
+ kind: z19.literal("flush-panel"),
4238
+ treatment: z19.enum(userFlushTreatments),
4239
+ bleed: z19.enum(userFlushBleeds)
3745
4240
  }).strict()
3746
4241
  ]);
3747
- var blockDesignPlanSchema = z17.object({
3748
- blockId: z17.string().min(1).transform(asDesignBlockId),
3749
- blockKind: z17.string().min(1),
3750
- purpose: z17.string().min(1),
3751
- sectionSurface: z17.enum(userDesignOptionCatalog.sectionSurfaces),
4242
+ var blockDesignPlanSchema = z19.object({
4243
+ blockId: z19.string().min(1).transform(asDesignBlockId),
4244
+ blockKind: z19.string().min(1),
4245
+ purpose: z19.string().min(1),
4246
+ sectionSurface: z19.enum(userDesignOptionCatalog.sectionSurfaces),
3752
4247
  contentFrame: contentFrameIntentSchema,
3753
- itemSurface: z17.enum(userDesignOptionCatalog.itemSurfaces),
3754
- transitionAfter: z17.enum(userDesignOptionCatalog.transitions),
3755
- emphasis: z17.enum(userDesignOptionCatalog.emphases),
4248
+ itemSurface: z19.enum(userDesignOptionCatalog.itemSurfaces),
4249
+ transitionAfter: z19.enum(userDesignOptionCatalog.transitions),
4250
+ emphasis: z19.enum(userDesignOptionCatalog.emphases),
3756
4251
  sectionHeight: sectionHeightIntentSchema.optional(),
3757
4252
  heroLegibility: heroLegibilityStrategySchema.optional(),
3758
4253
  imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
@@ -3761,39 +4256,39 @@ var blockDesignPlanSchema = z17.object({
3761
4256
  tileTreatment: tileTreatmentSchema.optional(),
3762
4257
  eyebrowTreatment: eyebrowTreatmentSchema.optional()
3763
4258
  }).strict();
3764
- var styleAuthoritySchema = z17.discriminatedUnion("kind", [
3765
- z17.object({
3766
- kind: z17.literal("theme-v2"),
4259
+ var styleAuthoritySchema = z19.discriminatedUnion("kind", [
4260
+ z19.object({
4261
+ kind: z19.literal("theme-v2"),
3767
4262
  source: designResolutionPolicySchema,
3768
- siteStyleId: z17.string().min(1).transform(asSiteStyleId),
3769
- templateId: z17.string().min(1).transform(asDesignSystemTemplateId),
3770
- templateVersion: z17.number().int().nonnegative(),
3771
- resolverVersion: z17.number().int().nonnegative()
4263
+ siteStyleId: z19.string().min(1).transform(asSiteStyleId),
4264
+ templateId: z19.string().min(1).transform(asDesignSystemTemplateId),
4265
+ templateVersion: z19.number().int().nonnegative(),
4266
+ resolverVersion: z19.number().int().nonnegative()
3772
4267
  }).strict(),
3773
- z17.object({
3774
- kind: z17.literal("legacy-raw"),
3775
- reason: z17.enum(["pre-theme-v2", "manual-runtime-fields"])
4268
+ z19.object({
4269
+ kind: z19.literal("legacy-raw"),
4270
+ reason: z19.enum(["pre-theme-v2", "manual-runtime-fields"])
3776
4271
  }).strict(),
3777
- z17.object({
3778
- kind: z17.literal("advanced-detached"),
3779
- reason: z17.literal("detached-custom-runtime-fields")
4272
+ z19.object({
4273
+ kind: z19.literal("advanced-detached"),
4274
+ reason: z19.literal("detached-custom-runtime-fields")
3780
4275
  }).strict()
3781
4276
  ]);
3782
- var blockRuntimeStyleAuthoritySchema = z17.object({
3783
- unit: z17.literal("block-runtime-fields"),
3784
- blockId: z17.string().min(1).transform(asDesignBlockId),
4277
+ var blockRuntimeStyleAuthoritySchema = z19.object({
4278
+ unit: z19.literal("block-runtime-fields"),
4279
+ blockId: z19.string().min(1).transform(asDesignBlockId),
3785
4280
  fields: nonEmptyRuntimeStyleFieldNamesSchema,
3786
4281
  authority: styleAuthoritySchema
3787
4282
  }).strict();
3788
- var persistedPageDesignStateV1Schema = z17.object({
3789
- schemaVersion: z17.literal(themeV2DesignStateSchemaVersion),
3790
- siteStyleId: z17.string().min(1).transform(asSiteStyleId),
3791
- templateId: z17.string().min(1).transform(asDesignSystemTemplateId),
3792
- templateVersion: z17.number().int().nonnegative(),
3793
- resolverVersion: z17.number().int().nonnegative(),
3794
- rhythmPresetId: z17.string().min(1),
3795
- blocks: z17.array(blockDesignPlanSchema),
3796
- styleAuthorities: z17.array(blockRuntimeStyleAuthoritySchema)
4283
+ var persistedPageDesignStateV1Schema = z19.object({
4284
+ schemaVersion: z19.literal(themeV2DesignStateSchemaVersion),
4285
+ siteStyleId: z19.string().min(1).transform(asSiteStyleId),
4286
+ templateId: z19.string().min(1).transform(asDesignSystemTemplateId),
4287
+ templateVersion: z19.number().int().nonnegative(),
4288
+ resolverVersion: z19.number().int().nonnegative(),
4289
+ rhythmPresetId: z19.string().min(1),
4290
+ blocks: z19.array(blockDesignPlanSchema),
4291
+ styleAuthorities: z19.array(blockRuntimeStyleAuthoritySchema)
3797
4292
  }).strict();
3798
4293
 
3799
4294
  // ../theme-core/src/site-styles/runtimeCompiler.ts
@@ -3946,7 +4441,7 @@ var defaultComponentRuntimeRules = defineComponentRuntimeRules({
3946
4441
  });
3947
4442
 
3948
4443
  // ../theme-core/src/site-styles/generatedSchemas.ts
3949
- import { z as z18 } from "zod";
4444
+ import { z as z20 } from "zod";
3950
4445
  function uniqueNonEmpty2(values) {
3951
4446
  const uniqueValues = [...new Set(values)];
3952
4447
  const firstValue = uniqueValues[0];
@@ -3964,155 +4459,155 @@ var generatedFlushTreatments = uniqueNonEmpty2(
3964
4459
  var generatedFlushBleeds = uniqueNonEmpty2(
3965
4460
  generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
3966
4461
  );
3967
- var generatedPanelFrameSchema = z18.object({
3968
- kind: z18.literal("panel"),
3969
- treatment: z18.enum(generatedPanelTreatments)
4462
+ var generatedPanelFrameSchema = z20.object({
4463
+ kind: z20.literal("panel"),
4464
+ treatment: z20.enum(generatedPanelTreatments)
3970
4465
  }).strict();
3971
- var generatedFlushPanelFrameSchema = z18.object({
3972
- kind: z18.literal("flush-panel"),
3973
- treatment: z18.enum(generatedFlushTreatments),
3974
- bleed: z18.enum(generatedFlushBleeds)
4466
+ var generatedFlushPanelFrameSchema = z20.object({
4467
+ kind: z20.literal("flush-panel"),
4468
+ treatment: z20.enum(generatedFlushTreatments),
4469
+ bleed: z20.enum(generatedFlushBleeds)
3975
4470
  }).strict();
3976
- var generatedContentFrameIntentSchema = z18.discriminatedUnion("kind", [
3977
- z18.object({ kind: z18.literal("plain") }).strict(),
4471
+ var generatedContentFrameIntentSchema = z20.discriminatedUnion("kind", [
4472
+ z20.object({ kind: z20.literal("plain") }).strict(),
3978
4473
  generatedPanelFrameSchema,
3979
4474
  generatedFlushPanelFrameSchema
3980
4475
  ]);
3981
- var generatedSiteStyleIdSchema = z18.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
4476
+ var generatedSiteStyleIdSchema = z20.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
3982
4477
  function generatedChoiceSchema(valueSchema) {
3983
- return z18.discriminatedUnion("kind", [
3984
- z18.object({
3985
- source: z18.literal("generated"),
3986
- kind: z18.literal("auto")
4478
+ return z20.discriminatedUnion("kind", [
4479
+ z20.object({
4480
+ source: z20.literal("generated"),
4481
+ kind: z20.literal("auto")
3987
4482
  }).strict(),
3988
- z18.object({
3989
- source: z18.literal("generated"),
3990
- kind: z18.literal("explicit"),
4483
+ z20.object({
4484
+ source: z20.literal("generated"),
4485
+ kind: z20.literal("explicit"),
3991
4486
  value: valueSchema
3992
4487
  }).strict()
3993
4488
  ]);
3994
4489
  }
3995
- var generatedBlockDesignIntentSchema = z18.object({
4490
+ var generatedBlockDesignIntentSchema = z20.object({
3996
4491
  sectionSurface: generatedChoiceSchema(
3997
- z18.enum(generatedDesignOptionCatalog.sectionSurfaces)
4492
+ z20.enum(generatedDesignOptionCatalog.sectionSurfaces)
3998
4493
  ),
3999
4494
  contentFrame: generatedChoiceSchema(generatedContentFrameIntentSchema),
4000
4495
  itemSurface: generatedChoiceSchema(
4001
- z18.enum(generatedDesignOptionCatalog.itemSurfaces)
4496
+ z20.enum(generatedDesignOptionCatalog.itemSurfaces)
4002
4497
  ),
4003
4498
  transitionAfter: generatedChoiceSchema(
4004
- z18.enum(generatedDesignOptionCatalog.transitions)
4499
+ z20.enum(generatedDesignOptionCatalog.transitions)
4005
4500
  ),
4006
4501
  emphasis: generatedChoiceSchema(
4007
- z18.enum(generatedDesignOptionCatalog.emphases)
4502
+ z20.enum(generatedDesignOptionCatalog.emphases)
4008
4503
  )
4009
4504
  }).strict();
4010
- var generatedMediaCompositionIntentSchema = z18.enum([
4505
+ var generatedMediaCompositionIntentSchema = z20.enum([
4011
4506
  "none",
4012
4507
  "supporting",
4013
4508
  "dominant"
4014
4509
  ]);
4015
- var generatedDecorativeCompositionIntentSchema = z18.enum([
4510
+ var generatedDecorativeCompositionIntentSchema = z20.enum([
4016
4511
  "none",
4017
4512
  "supporting"
4018
4513
  ]);
4019
- var generatedHeroLegibilityStrategySchema = z18.enum([
4514
+ var generatedHeroLegibilityStrategySchema = z20.enum([
4020
4515
  "none",
4021
4516
  "scrim-gradient"
4022
4517
  ]);
4023
- var generatedBlockMediaIntentSchema = z18.object({
4518
+ var generatedBlockMediaIntentSchema = z20.object({
4024
4519
  media: generatedMediaCompositionIntentSchema,
4025
4520
  decorative: generatedDecorativeCompositionIntentSchema,
4026
4521
  heroLegibility: generatedChoiceSchema(generatedHeroLegibilityStrategySchema)
4027
4522
  }).strict();
4028
- var generatedBoundaryIntentSchema = z18.object({
4523
+ var generatedBoundaryIntentSchema = z20.object({
4029
4524
  transitionAfter: generatedChoiceSchema(
4030
- z18.enum(generatedDesignOptionCatalog.transitions)
4525
+ z20.enum(generatedDesignOptionCatalog.transitions)
4031
4526
  )
4032
4527
  }).strict();
4033
- var generatedPageDesignBlockIntentSchema = z18.object({
4034
- blockId: z18.string().min(1),
4035
- blockKind: z18.string().min(1),
4036
- purpose: z18.string().min(1),
4528
+ var generatedPageDesignBlockIntentSchema = z20.object({
4529
+ blockId: z20.string().min(1),
4530
+ blockKind: z20.string().min(1),
4531
+ purpose: z20.string().min(1),
4037
4532
  design: generatedBlockDesignIntentSchema,
4038
4533
  mediaIntent: generatedBlockMediaIntentSchema,
4039
4534
  boundaryIntent: generatedBoundaryIntentSchema
4040
4535
  }).strict();
4041
- var generatedPageDesignIntentSchema = z18.object({
4536
+ var generatedPageDesignIntentSchema = z20.object({
4042
4537
  siteStyleId: generatedSiteStyleIdSchema,
4043
- blocks: z18.array(generatedPageDesignBlockIntentSchema)
4538
+ blocks: z20.array(generatedPageDesignBlockIntentSchema)
4044
4539
  }).strict();
4045
4540
 
4046
4541
  // ../theme-core/src/site-styles/pageDesignAuthority.ts
4047
- import { z as z19 } from "zod";
4048
- var nonEmptyStringSchema = z19.string().min(1);
4542
+ import { z as z21 } from "zod";
4543
+ var nonEmptyStringSchema = z21.string().min(1);
4049
4544
  var blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
4050
4545
  var designBlockIdSchema = nonEmptyStringSchema.transform(asDesignBlockId);
4051
4546
  var designPageIdSchema = nonEmptyStringSchema.transform(asDesignPageId);
4052
4547
  var designEntryIdSchema = nonEmptyStringSchema.transform(asDesignEntryId);
4053
- var blockOrderIndexSchema = z19.number().int().nonnegative().transform(asBlockOrderIndex);
4054
- var publishedPageBlockSnapshotSchema = z19.object({
4055
- kind: z19.literal("published-block-content"),
4548
+ var blockOrderIndexSchema = z21.number().int().nonnegative().transform(asBlockOrderIndex);
4549
+ var publishedPageBlockSnapshotSchema = z21.object({
4550
+ kind: z21.literal("published-block-content"),
4056
4551
  blockId: designBlockIdSchema,
4057
4552
  contentVersionId: blockContentVersionIdSchema,
4058
- identifier: z19.string().nullable(),
4553
+ identifier: z21.string().nullable(),
4059
4554
  blockKind: nonEmptyStringSchema,
4060
4555
  orderIndex: blockOrderIndexSchema
4061
4556
  }).strict();
4062
- var draftPageBlockSnapshotSchema = z19.object({
4063
- kind: z19.literal("draft-block-content"),
4557
+ var draftPageBlockSnapshotSchema = z21.object({
4558
+ kind: z21.literal("draft-block-content"),
4064
4559
  blockId: designBlockIdSchema,
4065
4560
  contentVersionId: blockContentVersionIdSchema.nullable(),
4066
- identifier: z19.string().nullable(),
4561
+ identifier: z21.string().nullable(),
4067
4562
  blockKind: nonEmptyStringSchema,
4068
4563
  orderIndex: blockOrderIndexSchema
4069
4564
  }).strict();
4070
- var missingPageBlockSnapshotSchema = z19.object({
4071
- kind: z19.literal("missing-block-content"),
4565
+ var missingPageBlockSnapshotSchema = z21.object({
4566
+ kind: z21.literal("missing-block-content"),
4072
4567
  blockId: designBlockIdSchema,
4073
- identifier: z19.string().nullable(),
4568
+ identifier: z21.string().nullable(),
4074
4569
  blockKind: nonEmptyStringSchema,
4075
4570
  orderIndex: blockOrderIndexSchema,
4076
- reason: z19.enum([
4571
+ reason: z21.enum([
4077
4572
  "new-block",
4078
4573
  "deleted-content-version",
4079
4574
  "unpublished-block"
4080
4575
  ])
4081
4576
  }).strict();
4082
- var pageBlockSnapshotSchema = z19.discriminatedUnion("kind", [
4577
+ var pageBlockSnapshotSchema = z21.discriminatedUnion("kind", [
4083
4578
  publishedPageBlockSnapshotSchema,
4084
4579
  draftPageBlockSnapshotSchema,
4085
4580
  missingPageBlockSnapshotSchema
4086
4581
  ]);
4087
- var publishedPageBlockSequenceSchema = z19.array(publishedPageBlockSnapshotSchema).superRefine(validateBlockSequence);
4088
- var draftPageBlockSequenceSchema = z19.array(pageBlockSnapshotSchema).superRefine(validateBlockSequence);
4089
- var publishedPageDesignVersionDataV1Schema = z19.object({
4090
- schemaVersion: z19.literal(1),
4091
- stage: z19.literal("published"),
4582
+ var publishedPageBlockSequenceSchema = z21.array(publishedPageBlockSnapshotSchema).superRefine(validateBlockSequence);
4583
+ var draftPageBlockSequenceSchema = z21.array(pageBlockSnapshotSchema).superRefine(validateBlockSequence);
4584
+ var publishedPageDesignVersionDataV1Schema = z21.object({
4585
+ schemaVersion: z21.literal(1),
4586
+ stage: z21.literal("published"),
4092
4587
  pageId: designPageIdSchema,
4093
4588
  blockSequence: publishedPageBlockSequenceSchema
4094
4589
  }).strict();
4095
- var draftPageDesignVersionDataV1Schema = z19.object({
4096
- schemaVersion: z19.literal(1),
4097
- stage: z19.literal("draft"),
4590
+ var draftPageDesignVersionDataV1Schema = z21.object({
4591
+ schemaVersion: z21.literal(1),
4592
+ stage: z21.literal("draft"),
4098
4593
  pageId: designPageIdSchema,
4099
4594
  blockSequence: draftPageBlockSequenceSchema
4100
4595
  }).strict();
4101
- var pageDesignVersionDataV1Schema = z19.discriminatedUnion("stage", [
4596
+ var pageDesignVersionDataV1Schema = z21.discriminatedUnion("stage", [
4102
4597
  publishedPageDesignVersionDataV1Schema,
4103
4598
  draftPageDesignVersionDataV1Schema
4104
4599
  ]);
4105
- var contentVersionOwnerSchema = z19.discriminatedUnion("kind", [
4106
- z19.object({
4107
- kind: z19.literal("block"),
4600
+ var contentVersionOwnerSchema = z21.discriminatedUnion("kind", [
4601
+ z21.object({
4602
+ kind: z21.literal("block"),
4108
4603
  blockId: designBlockIdSchema
4109
4604
  }).strict(),
4110
- z19.object({
4111
- kind: z19.literal("entry"),
4605
+ z21.object({
4606
+ kind: z21.literal("entry"),
4112
4607
  entryId: designEntryIdSchema
4113
4608
  }).strict(),
4114
- z19.object({
4115
- kind: z19.literal("page"),
4609
+ z21.object({
4610
+ kind: z21.literal("page"),
4116
4611
  pageId: designPageIdSchema
4117
4612
  }).strict()
4118
4613
  ]);
@@ -4129,7 +4624,7 @@ function collectBlockSequenceIssues(snapshots) {
4129
4624
  snapshots.forEach((snapshot, index) => {
4130
4625
  if (seenBlockIds.has(snapshot.blockId)) {
4131
4626
  issues.push({
4132
- code: z19.ZodIssueCode.custom,
4627
+ code: z21.ZodIssueCode.custom,
4133
4628
  message: `Duplicate blockId in page design blockSequence: ${snapshot.blockId}`,
4134
4629
  path: [index, "blockId"]
4135
4630
  });
@@ -4138,7 +4633,7 @@ function collectBlockSequenceIssues(snapshots) {
4138
4633
  const orderIndex = snapshot.orderIndex;
4139
4634
  if (seenOrderIndexes.has(orderIndex)) {
4140
4635
  issues.push({
4141
- code: z19.ZodIssueCode.custom,
4636
+ code: z21.ZodIssueCode.custom,
4142
4637
  message: `Duplicate orderIndex in page design blockSequence: ${String(orderIndex)}`,
4143
4638
  path: [index, "orderIndex"]
4144
4639
  });
@@ -4146,7 +4641,7 @@ function collectBlockSequenceIssues(snapshots) {
4146
4641
  seenOrderIndexes.add(orderIndex);
4147
4642
  if (previousOrderIndex !== null && orderIndex <= previousOrderIndex) {
4148
4643
  issues.push({
4149
- code: z19.ZodIssueCode.custom,
4644
+ code: z21.ZodIssueCode.custom,
4150
4645
  message: `Expected orderIndex greater than ${String(previousOrderIndex)} for blockSequence position ${String(index)}; received ${String(orderIndex)}.`,
4151
4646
  path: [index, "orderIndex"]
4152
4647
  });
@@ -4157,7 +4652,7 @@ function collectBlockSequenceIssues(snapshots) {
4157
4652
  }
4158
4653
 
4159
4654
  // ../theme-core/src/site-styles/tokenRecipes.ts
4160
- import { z as z20 } from "zod";
4655
+ import { z as z22 } from "zod";
4161
4656
  var themeTokenRecipeOptions = {
4162
4657
  palette: ["brand-led", "warm-neutral", "high-contrast", "soft-natural"],
4163
4658
  contrast: ["standard", "strong", "maximum"],
@@ -4172,50 +4667,16 @@ var themeTokenRecipeOptions = {
4172
4667
  spacing: ["compact", "regular", "airy"],
4173
4668
  motion: ["none", "subtle", "expressive"]
4174
4669
  };
4175
- var themeTokenRecipesSchema = z20.object({
4176
- palette: z20.enum(themeTokenRecipeOptions.palette),
4177
- contrast: z20.enum(themeTokenRecipeOptions.contrast),
4178
- radius: z20.enum(themeTokenRecipeOptions.radius),
4179
- shadow: z20.enum(themeTokenRecipeOptions.shadow),
4180
- typography: z20.enum(themeTokenRecipeOptions.typography),
4181
- spacing: z20.enum(themeTokenRecipeOptions.spacing),
4182
- motion: z20.enum(themeTokenRecipeOptions.motion)
4670
+ var themeTokenRecipesSchema = z22.object({
4671
+ palette: z22.enum(themeTokenRecipeOptions.palette),
4672
+ contrast: z22.enum(themeTokenRecipeOptions.contrast),
4673
+ radius: z22.enum(themeTokenRecipeOptions.radius),
4674
+ shadow: z22.enum(themeTokenRecipeOptions.shadow),
4675
+ typography: z22.enum(themeTokenRecipeOptions.typography),
4676
+ spacing: z22.enum(themeTokenRecipeOptions.spacing),
4677
+ motion: z22.enum(themeTokenRecipeOptions.motion)
4183
4678
  });
4184
4679
 
4185
- // ../theme-core/src/tokens/blockColorTokens.ts
4186
- var blockColorTokenNames = [
4187
- "text",
4188
- "heading",
4189
- "mutedText",
4190
- "surface",
4191
- "background",
4192
- "foreground",
4193
- "border",
4194
- "primary",
4195
- "secondary",
4196
- "accent",
4197
- "success",
4198
- "warning",
4199
- "info",
4200
- "error",
4201
- "destructive",
4202
- "scrim",
4203
- "shadow",
4204
- // Common "on*" tokens used when rendering colored chips/badges.
4205
- "onPrimary",
4206
- "onSecondary",
4207
- "onAccent",
4208
- "onSuccess",
4209
- "onWarning",
4210
- "onInfo",
4211
- "onError",
4212
- "onDestructive",
4213
- "onSurface"
4214
- ];
4215
- var blockColorTokenNameSet = new Set(
4216
- blockColorTokenNames
4217
- );
4218
-
4219
4680
  // ../theme-core/src/palette/utils/colorConversion.ts
4220
4681
  function hexToRgb(hex) {
4221
4682
  const h = hex.replace(/^#/, "");
@@ -9516,6 +9977,12 @@ var containerResponsiveThemeCss = `/*
9516
9977
  padding: 2rem;
9517
9978
  }
9518
9979
 
9980
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-icon {
9981
+ display: flex;
9982
+ justify-content: center;
9983
+ margin-bottom: 1rem;
9984
+ }
9985
+
9519
9986
  :where(.theme-scope) :where([data-block="event-registration"]) .er-actions {
9520
9987
  display: flex;
9521
9988
  justify-content: space-between;
@@ -15203,6 +15670,32 @@ var containerResponsiveThemeCss = `/*
15203
15670
  :where(.theme-scope) :where([data-rb-background-video="true"]) {
15204
15671
  display: none !important;
15205
15672
  }
15673
+ }
15674
+
15675
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback {
15676
+ border: 1px solid rgb(var(--tb-text, 17 24 39) / 0.12);
15677
+ border-radius: 1rem;
15678
+ padding: 0.875rem 1rem;
15679
+ background: rgb(var(--tb-surface, 255 255 255) / 0.92);
15680
+ color: rgb(var(--tb-text, 17 24 39));
15681
+ }
15682
+
15683
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="success"] {
15684
+ border-color: rgba(var(--tb-success, 34 197 94), 0.3);
15685
+ background: rgba(var(--tb-success, 34 197 94), 0.1);
15686
+ color: rgb(var(--tb-success, 34 197 94));
15687
+ }
15688
+
15689
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="warning"] {
15690
+ border-color: rgba(var(--tb-warning, 245 158 11), 0.35);
15691
+ background: rgba(var(--tb-warning, 245 158 11), 0.12);
15692
+ color: rgb(var(--tb-warning, 245 158 11));
15693
+ }
15694
+
15695
+ :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="error"] {
15696
+ border-color: rgba(var(--tb-destructive, 239 68 68), 0.3);
15697
+ background: rgba(var(--tb-destructive, 239 68 68), 0.1);
15698
+ color: rgb(var(--tb-destructive, 239 68 68));
15206
15699
  }`;
15207
15700
 
15208
15701
  // ../theme-core/src/ThemeScopeCore.tsx
@@ -15474,7 +15967,7 @@ function buildThemeRuntimeFromBridge(config) {
15474
15967
  }
15475
15968
 
15476
15969
  // ../theme-core/src/siteChrome.tsx
15477
- import { Fragment as Fragment2, jsxs as jsxs5 } from "react/jsx-runtime";
15970
+ import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
15478
15971
 
15479
15972
  // src/theme-bridge/generateCssVars.ts
15480
15973
  var SCOPE_ID = "sdk";
@@ -15660,7 +16153,7 @@ function generateOverrideCss(overrides) {
15660
16153
  }
15661
16154
 
15662
16155
  // src/theme-bridge/ThemeBridgeProvider.tsx
15663
- import { jsx as jsx6 } from "react/jsx-runtime";
16156
+ import { jsx as jsx7 } from "react/jsx-runtime";
15664
16157
  function ThemeBridgeProvider({
15665
16158
  config,
15666
16159
  children,
@@ -15681,7 +16174,7 @@ function ThemeBridgeProvider({
15681
16174
  }
15682
16175
  return style;
15683
16176
  }, [cssVars]);
15684
- return /* @__PURE__ */ jsx6(
16177
+ return /* @__PURE__ */ jsx7(
15685
16178
  ThemeScopeCore,
15686
16179
  {
15687
16180
  cssVars: cssVarsStyle,