@riverbankcms/sdk 0.152.0 → 0.154.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 (303) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{EventEmbeddedCheckoutStep-DVQXWFm6.mjs → EventEmbeddedCheckoutStep-ba9npQtb.mjs} +1 -1
  3. package/dist/{PreviewEditorSidebar-Dr4NJi3Q.mjs → PreviewEditorSidebar-C7FiaxlF.mjs} +194 -22
  4. package/dist/{PreviewEditorUI-DSZXQbyh.mjs → PreviewEditorUI-DFst50q1.mjs} +20 -44
  5. package/dist/{SdkPreviewModeRuntime-Dl4GyMc3.mjs → SdkPreviewModeRuntime-BUNV_YHZ.mjs} +266 -143
  6. package/dist/{SiteChromeCustomizeContext-DgBe-FlM.mjs → SiteChromeCustomizeContext-DEj7qppF.mjs} +5340 -4329
  7. package/dist/{ThemedButton-B8ViBnLK.mjs → ThemedButton-C8kzu0hY.mjs} +610 -116
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +416 -182
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +3270 -8214
  10. package/dist/_dts/api/src/billing.d.ts +2 -0
  11. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +78 -0
  12. package/dist/_dts/api/src/bookingAdjustments.d.ts +3 -2
  13. package/dist/_dts/api/src/bookingOperations.d.ts +7 -2
  14. package/dist/_dts/api/src/bookingPeople.d.ts +19 -0
  15. package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +8 -0
  16. package/dist/_dts/api/src/bookingRecords.d.ts +4 -106
  17. package/dist/_dts/api/src/bookings.d.ts +2 -3
  18. package/dist/_dts/api/src/communications.d.ts +19 -5
  19. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  20. package/dist/_dts/api/src/endpoints.d.ts +88 -43
  21. package/dist/_dts/api/src/index.d.ts +4 -2
  22. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  23. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  24. package/dist/_dts/api/src/moneyPayments.d.ts +116 -0
  25. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +2 -0
  26. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
  27. package/dist/_dts/api/src/sdkThemeWire.d.ts +348 -1537
  28. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  29. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  30. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -0
  31. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +17 -16
  32. package/dist/_dts/api/src/siteSettings.d.ts +1 -0
  33. package/dist/_dts/api/src/stripeConnectSetup.d.ts +90 -0
  34. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  35. package/dist/_dts/api/src/types.d.ts +11 -31
  36. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -4
  37. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  38. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  39. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  40. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -96
  41. package/dist/_dts/blocks/src/index.d.ts +1 -0
  42. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  43. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  44. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  45. package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +1 -1
  46. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -1
  47. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +1 -0
  48. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  49. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/blocks/events/shared/fields.d.ts +0 -4
  51. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +0 -1
  52. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +276 -884
  53. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -2
  54. package/dist/_dts/blocks/src/system/blocks/form.d.ts +10 -0
  55. package/dist/_dts/blocks/src/system/blocks/image-gallery/fields.d.ts +1 -0
  56. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +6 -1
  57. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  58. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +92 -90
  59. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +12 -0
  60. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  61. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-layout.d.ts +23 -0
  62. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-profile.d.ts +20 -0
  63. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +17 -16
  64. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -1
  65. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  67. package/dist/_dts/blocks/src/system/customize/facets.d.ts +75 -9
  68. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  69. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  70. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  71. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  72. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  73. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +48 -48
  74. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  75. package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
  76. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  77. package/dist/_dts/blocks/src/system/node/fragments/responsiveTwoColumn.d.ts +3 -1
  78. package/dist/_dts/blocks/src/system/node/fragments/sectionHead.d.ts +15 -0
  79. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -198
  80. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -99
  81. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  82. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +2 -0
  83. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +18 -6
  84. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  85. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  86. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
  87. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +28 -1
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +12 -6
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +1 -1
  91. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  92. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +289 -885
  93. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  94. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -2
  95. package/dist/_dts/blocks/src/system/runtime/nodes/form.interactive.d.ts +11 -79
  96. package/dist/_dts/blocks/src/system/runtime/nodes/form.parts.d.ts +7 -0
  97. package/dist/_dts/blocks/src/system/runtime/nodes/form.server.d.ts +2 -13
  98. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  99. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  100. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +8 -72
  101. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +6 -6
  102. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -2
  103. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  104. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -0
  105. package/dist/_dts/blocks/src/system/transforms/registry/footerArrangement.d.ts +6 -0
  106. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
  107. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -11
  108. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -3
  109. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -10
  110. package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +1 -0
  111. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +5 -2
  112. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +1 -1
  113. package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +6 -3
  114. package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +1 -1
  115. package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
  116. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +3 -1
  117. package/dist/_dts/content-editor/src/footerNavigationLayoutState.d.ts +56 -0
  118. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
  119. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -4
  120. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +11 -8
  121. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  122. package/dist/_dts/core/src/booking-refunds.d.ts +2 -0
  123. package/dist/_dts/core/src/date-display.d.ts +85 -0
  124. package/dist/_dts/core/src/date-time-formatter.d.ts +2 -0
  125. package/dist/_dts/core/src/footer-arrangement.d.ts +8 -1
  126. package/dist/_dts/core/src/footer-composition-types.d.ts +6 -1
  127. package/dist/_dts/core/src/footer-composition.d.ts +1 -1
  128. package/dist/_dts/core/src/footer-navigation-layout.d.ts +3 -0
  129. package/dist/_dts/core/src/index.d.ts +2 -0
  130. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  131. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  132. package/dist/_dts/core/src/mailing-list-setup.d.ts +12 -1
  133. package/dist/_dts/core/src/mailing-list-submission.d.ts +7 -2
  134. package/dist/_dts/core/src/mailing-list-targeting.d.ts +9 -1
  135. package/dist/_dts/core/src/public-profile.d.ts +3 -1
  136. package/dist/_dts/core/src/scheduled-date-time.d.ts +69 -0
  137. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +105 -13
  138. package/dist/_dts/db/src/schemas/forms.d.ts +16 -16
  139. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  140. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  141. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  142. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +2 -2
  143. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  144. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  145. package/dist/_dts/media-core/src/index.d.ts +4 -0
  146. package/dist/_dts/media-core/src/media.d.ts +406 -0
  147. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  148. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  149. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  150. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  151. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  152. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  153. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  154. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  155. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  156. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  157. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  158. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  159. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  160. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  161. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  162. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  163. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  164. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  165. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  166. package/dist/_dts/preview-next/src/client/blocks/ArrangementBlockToolbar.d.ts +2 -1
  167. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  168. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  169. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
  170. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  171. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
  172. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +27 -5
  173. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +2 -0
  174. package/dist/_dts/preview-next/src/client/preview/useConfirmedPreferenceRecord.d.ts +12 -0
  175. package/dist/_dts/preview-next/src/client/preview/usePersistedFooterPreferences.d.ts +26 -0
  176. package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +40 -2
  177. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  178. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  179. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  180. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  181. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -46
  182. package/dist/_dts/sdk/src/date-time/index.d.ts +2 -68
  183. package/dist/_dts/sdk/src/index.d.ts +1 -0
  184. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  185. package/dist/_dts/sdk/src/rendering/image.d.ts +5 -5
  186. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
  187. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -1
  188. package/dist/_dts/sdk/src/rendering/link.d.ts +3 -7
  189. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  190. package/dist/_dts/sdk/src/version.d.ts +1 -1
  191. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  192. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  193. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +2 -0
  194. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +2 -0
  195. package/dist/_dts/theme-core/src/buttons/styles/recipes/lanternRecipes.d.ts +60 -0
  196. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -0
  197. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +10 -1
  198. package/dist/_dts/theme-core/src/buttons/types.d.ts +378 -66
  199. package/dist/_dts/theme-core/src/buttons/typography.d.ts +24 -0
  200. package/dist/_dts/theme-core/src/cards/types.d.ts +42 -42
  201. package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +1 -1
  202. package/dist/_dts/theme-core/src/footer/generateFooterCss.d.ts +4 -1
  203. package/dist/_dts/theme-core/src/footer/mode.d.ts +2 -11
  204. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  205. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  206. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  207. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +495 -2766
  208. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
  209. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  210. package/dist/_dts/theme-core/src/schema.d.ts +838 -3369
  211. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +23 -7
  212. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  213. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +4 -6
  214. package/dist/_dts/theme-core/src/site-styles/compileFooterAgainstRow.d.ts +121 -0
  215. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -0
  216. package/dist/_dts/theme-core/src/site-styles/footerLookDefaults.d.ts +45 -0
  217. package/dist/_dts/theme-core/src/site-styles/footerLookRecipe.d.ts +50 -0
  218. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +9 -35
  219. package/dist/_dts/theme-core/src/site-styles/footerPreferences.d.ts +29 -0
  220. package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +2 -3
  221. package/dist/_dts/theme-core/src/site-styles/index.d.ts +4 -0
  222. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +2 -2
  223. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  224. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  225. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +8 -0
  226. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  227. package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +1 -1
  228. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +2 -2
  229. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  230. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  231. package/dist/_dts/ui/src/card.d.ts +1 -1
  232. package/dist/client/{BookingMailingListNote-CBuMKN0w.mjs → BookingMailingListNote-CNoSqFtf.mjs} +2 -2
  233. package/dist/client/{CardListItem-Dc9XTXhB.mjs → CardListItem-BkTkqBkh.mjs} +5 -4
  234. package/dist/client/{CheckboxChoice-CIqx_o0E.mjs → CheckboxChoice-CHJpsty4.mjs} +1 -1
  235. package/dist/client/{DemoBookingPortalAccess-D3VQ_kLj.mjs → DemoBookingPortalAccess-C7KQKFNt.mjs} +2 -2
  236. package/dist/client/{EventCombined.client-BHGEKise.mjs → EventCombined.client-BgeYMjHJ.mjs} +5 -6
  237. package/dist/client/{EventEmbeddedCheckoutStep-Bo1Cm23R.mjs → EventEmbeddedCheckoutStep-BTc_lTkM.mjs} +2 -2
  238. package/dist/client/{EventListing.client-D5OQgVPr.mjs → EventListing.client-ChRs9Hl2.mjs} +2 -2
  239. package/dist/client/{LeafletStaticMap-CLL5cWrr.mjs → LeafletStaticMap-C_dNQgd0.mjs} +1 -1
  240. package/dist/client/{RichText-BoDmnopf.mjs → RichText-BI9bzbjo.mjs} +106 -60
  241. package/dist/client/{ThemedButton-Ciltp0IK.mjs → ThemedButton-wl3Z3wkH.mjs} +1 -2
  242. package/dist/client/{accordion-DOkRS64-.mjs → accordion-6Yz8Wd83.mjs} +1 -1
  243. package/dist/client/{bookingForm-wlMVwo9h.mjs → bookingForm-i_pKIGiY.mjs} +42 -15
  244. package/dist/client/bookings.mjs +118357 -22833
  245. package/dist/client/{carousel-CGWk-Z0u.mjs → carousel-DNqd_PjC.mjs} +2 -2
  246. package/dist/client/{carousel.client-kX5mN1Eg.mjs → carousel.client-BUgjPbb6.mjs} +1 -1
  247. package/dist/client/{cart-OBBPlaH4.mjs → cart-D8OBHuF4.mjs} +3 -3
  248. package/dist/client/{checkout-Bmw2WjQX.mjs → checkout-F3-9IGLU.mjs} +3 -3
  249. package/dist/client/client.mjs +20785 -19238
  250. package/dist/client/{context-BI77UFAn.mjs → context-Dg4ZrxDD.mjs} +1 -1
  251. package/dist/client/{eventCalendar-qkej2Edn.mjs → eventCalendar-BUc7YIBM.mjs} +8 -9
  252. package/dist/client/{eventCombined-DApKHvat.mjs → eventCombined-BwfShk2a.mjs} +4 -4
  253. package/dist/client/{eventDetails-BQyUDPH0.mjs → eventDetails-BMOVC3go.mjs} +3 -3
  254. package/dist/client/{eventListing-CeAnshlZ.mjs → eventListing-BwE9PM-t.mjs} +4 -4
  255. package/dist/client/{eventRegistration-C3A3NyBO.mjs → eventRegistration-CCWPYDc7.mjs} +10 -10
  256. package/dist/client/{form-DW8rU7jO.mjs → form-CXFr0Gd5.mjs} +115 -52
  257. package/dist/client/{headerSection-CkIhsoNm.mjs → headerSection-BX8qw8kH.mjs} +3 -3
  258. package/dist/client/hooks.mjs +17908 -16797
  259. package/dist/client/{locationMap-D4O8wbli.mjs → locationMap-B3La71m0.mjs} +3 -4
  260. package/dist/client/{media-C5K_0xPd.mjs → media-B1Cbv721.mjs} +183 -362
  261. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  262. package/dist/client/{newsletterForm-B7IxSPuz.mjs → newsletterForm-DnGyR0x7.mjs} +51 -15
  263. package/dist/client/{productDetail-Bqxpwy5N.mjs → productDetail-BVgTqvkb.mjs} +3 -3
  264. package/dist/client/{productList-u9Lz8V15.mjs → productList-CcO7kUQw.mjs} +3 -3
  265. package/dist/client/{propsDecoder-Bf1jucUp.mjs → propsDecoder-B1OeWavE.mjs} +2193 -374
  266. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  267. package/dist/client/rendering/client.mjs +22424 -21488
  268. package/dist/client/rendering/islands.mjs +20 -23
  269. package/dist/client/rendering.mjs +21025 -19413
  270. package/dist/client/{routeIslandApiConfig-BgP-aPMl.mjs → routeIslandApiConfig-Dl4vglJm.mjs} +1 -1
  271. package/dist/client/{shop-B_eykR-_.mjs → shop-P72nX5Fs.mjs} +7 -7
  272. package/dist/client/{shop-commerce-CT0APkFV.mjs → shop-commerce-Bt7uraDx.mjs} +8 -8
  273. package/dist/client/{shop-commerce-store-DcvZxdEK.mjs → shop-commerce-store-C1-mxSye.mjs} +1 -1
  274. package/dist/client/{shopShared-BVJOiUiJ.mjs → shopShared-Db-cRGu3.mjs} +5 -5
  275. package/dist/client/{useDiscountCodeUi-DPmYDunz.mjs → useDiscountCodeUi-jvAiUoUX.mjs} +1 -1
  276. package/dist/client/{useEventPagination-8-U55vH5.mjs → useEventPagination-BdWpCniq.mjs} +6 -7
  277. package/dist/preview-next/before-render.mjs +222 -55
  278. package/dist/preview-next/client/runtime.mjs +3 -3
  279. package/dist/preview-next/editor-chrome.css +5 -2
  280. package/dist/preview-next/keepAlive.mjs +133 -51
  281. package/dist/preview-next/middleware.mjs +133 -51
  282. package/dist/{sdk-runtime-C5jPdSrk.mjs → sdk-runtime-DLhjF2Nw.mjs} +1 -1
  283. package/dist/server/components.mjs +21541 -20118
  284. package/dist/server/config-validation.mjs +2466 -1403
  285. package/dist/server/config.mjs +2466 -1403
  286. package/dist/server/data.mjs +17842 -16759
  287. package/dist/server/date-time.mjs +258 -116
  288. package/dist/server/index.mjs +360 -53
  289. package/dist/server/next.mjs +21913 -20539
  290. package/dist/server/page-converter.mjs +8121 -7322
  291. package/dist/server/prebuild.mjs +1 -1
  292. package/dist/server/rendering/server.mjs +21196 -19760
  293. package/dist/server/rendering.mjs +21554 -20123
  294. package/dist/server/routing.mjs +19806 -18607
  295. package/dist/server/server.mjs +2907 -1845
  296. package/dist/server/theme-bridge.mjs +991 -160
  297. package/dist/server/theme.mjs +501 -100
  298. package/dist/{spinner-B-ab2rJp.mjs → spinner-MTooKfck.mjs} +1 -1
  299. package/dist/styles/index.css +254 -1
  300. package/package.json +1 -1
  301. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +0 -12
  302. package/dist/client/aspectTransforms-D-TnDdq4.mjs +0 -93
  303. package/dist/client/colorStyles-ECDNPE_P.mjs +0 -1253
@@ -961,15 +961,108 @@ const themeLookMetadataSchema = z.object({
961
961
  skinMarks: skinMarksSchema.optional()
962
962
  });
963
963
  //#endregion
964
- //#region ../theme-core/src/footer/mode.ts
965
- const footerModeSchema = z.enum([
966
- "default",
967
- "blocks",
968
- "default+blocks",
969
- "none"
970
- ]);
964
+ //#region ../core/src/result.ts
965
+ function ok(value) {
966
+ return {
967
+ ok: true,
968
+ value
969
+ };
970
+ }
971
+ function err(error) {
972
+ return {
973
+ ok: false,
974
+ error
975
+ };
976
+ }
977
+ //#endregion
978
+ //#region ../core/src/branded.ts
979
+ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
980
+ function parseUuidBrand(value, unsafeConstructor) {
981
+ if (typeof value !== "string") return err({ kind: "not_string" });
982
+ const normalized = value.trim().toLowerCase();
983
+ if (normalized.length === 0) return err({ kind: "empty_string" });
984
+ if (!UUID_PATTERN.test(normalized)) return err({ kind: "invalid_uuid" });
985
+ return ok(unsafeConstructor(normalized));
986
+ }
987
+ const unsafeAsMediaAssetId = (id) => id;
988
+ const parseMediaAssetId = (value) => parseUuidBrand(value, unsafeAsMediaAssetId);
971
989
  //#endregion
972
- //#region ../theme-core/src/lib/media.ts
990
+ //#region ../media-core/src/identifiers.ts
991
+ function slugifyMediaIdentifier(value) {
992
+ return value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
993
+ }
994
+ function parseMediaIdentifier(value) {
995
+ if (typeof value !== "string") return err({ kind: "not_string" });
996
+ const trimmed = value.trim();
997
+ if (trimmed.length === 0) return err({ kind: "empty_identifier" });
998
+ const normalized = slugifyMediaIdentifier(trimmed);
999
+ if (normalized.length === 0) return err({
1000
+ kind: "empty_after_normalization",
1001
+ value
1002
+ });
1003
+ return ok(normalized);
1004
+ }
1005
+ /**
1006
+ * Admits identifiers read from trusted persistence without repairing dirty data in memory.
1007
+ * User input should use parseMediaIdentifier, which intentionally canonicalizes it.
1008
+ */
1009
+ function parseCanonicalMediaIdentifier(value) {
1010
+ if (typeof value !== "string") return err({ kind: "not_string" });
1011
+ const parsed = parseMediaIdentifier(value);
1012
+ if (!parsed.ok) return parsed;
1013
+ if (value !== parsed.value) return err({
1014
+ kind: "non_canonical_identifier",
1015
+ value,
1016
+ canonical: parsed.value
1017
+ });
1018
+ return parsed;
1019
+ }
1020
+ //#endregion
1021
+ //#region ../media-core/src/mediaIdentifierSchema.ts
1022
+ /** Strict stored-reference admission delegates the canonical identifier decision. */
1023
+ const mediaIdentifierSchema = z.string().transform((value, context) => {
1024
+ const parsed = parseCanonicalMediaIdentifier(value);
1025
+ if (parsed.ok) return parsed.value;
1026
+ context.addIssue({
1027
+ code: "custom",
1028
+ message: "Expected a canonical media identifier"
1029
+ });
1030
+ return z.NEVER;
1031
+ });
1032
+ //#endregion
1033
+ //#region ../media-core/src/mediaKinds.ts
1034
+ const mediaTypeDiscriminants = [
1035
+ "image",
1036
+ "video",
1037
+ "audio",
1038
+ "document",
1039
+ "spreadsheet",
1040
+ "archive"
1041
+ ];
1042
+ //#endregion
1043
+ //#region ../media-core/src/renderableMediaAssetAdmission.ts
1044
+ const mediaAssetIdSchema = z.string().transform((value, context) => {
1045
+ const parsed = parseMediaAssetId(value);
1046
+ if (parsed.ok) return parsed.value;
1047
+ context.addIssue({
1048
+ code: "custom",
1049
+ message: "Expected a media asset ID"
1050
+ });
1051
+ return z.NEVER;
1052
+ });
1053
+ const nonemptyStorageValue = z.string().refine((value) => value.trim().length > 0);
1054
+ const renderableMediaAssetSchema = z.object({
1055
+ id: mediaAssetIdSchema,
1056
+ identifier: mediaIdentifierSchema,
1057
+ storageBucket: nonemptyStorageValue,
1058
+ storagePath: nonemptyStorageValue,
1059
+ mimeType: nonemptyStorageValue,
1060
+ filename: z.string().optional(),
1061
+ width: z.number().positive().nullable(),
1062
+ height: z.number().positive().nullable()
1063
+ });
1064
+ //#endregion
1065
+ //#region ../media-core/src/media.ts
973
1066
  const hotspotSchema = z.object({
974
1067
  x: z.number().min(0).max(1),
975
1068
  y: z.number().min(0).max(1),
@@ -1003,54 +1096,56 @@ const transformSchema = z.object({
1003
1096
  rotation: rotationSchema.optional()
1004
1097
  });
1005
1098
  const mediaPosterSchema = z.discriminatedUnion("tag", [z.object({
1006
- tag: z.literal("storage"),
1007
- assetId: z.string().optional(),
1008
- storageBucket: z.string().min(1),
1009
- storagePath: z.string().min(1)
1010
- }), z.object({
1099
+ tag: z.literal("media"),
1100
+ identifier: mediaIdentifierSchema
1101
+ }).strict(), z.object({
1011
1102
  tag: z.literal("external-src"),
1012
- assetId: z.string().optional(),
1013
1103
  src: z.string().url()
1014
- })]);
1015
- const mediaBaseSchema = z.object({
1104
+ }).strict()]);
1105
+ const mediaUsageShape = {
1016
1106
  purpose: z.string().optional(),
1017
1107
  placeholder: z.boolean().default(true).optional(),
1018
- assetId: z.string().optional(),
1019
- identifier: z.string().optional(),
1020
- src: z.string().optional(),
1021
1108
  alt: z.string().optional(),
1022
1109
  filename: z.string().optional(),
1023
- mimeType: z.string().optional(),
1024
1110
  width: z.number().optional(),
1025
1111
  height: z.number().optional(),
1026
- storageBucket: z.string().optional(),
1027
- storagePath: z.string().optional(),
1028
1112
  poster: mediaPosterSchema.optional(),
1029
1113
  transform: transformSchema.optional()
1030
- });
1031
- const mediaIdentifierSchema = z.string().trim().min(1).brand();
1114
+ };
1115
+ const environmentExclusions = {
1116
+ assetId: z.never().optional(),
1117
+ id: z.never().optional(),
1118
+ src: z.never().optional(),
1119
+ storageBucket: z.never().optional(),
1120
+ storagePath: z.never().optional(),
1121
+ mimeType: z.never().optional()
1122
+ };
1123
+ const mediaBaseSchema = z.object({
1124
+ ...mediaUsageShape,
1125
+ ...environmentExclusions,
1126
+ identifier: mediaIdentifierSchema
1127
+ }).strict();
1032
1128
  const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
1033
1129
  const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
1034
- const audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
1035
- const documentMediaSchema = mediaBaseSchema.extend({ type: z.literal("document") });
1036
- const spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z.literal("spreadsheet") });
1037
- const archiveMediaSchema = mediaBaseSchema.extend({ type: z.literal("archive") });
1038
- const mediaSchema = z.discriminatedUnion("type", [
1039
- imageMediaSchema,
1040
- videoMediaSchema,
1041
- audioMediaSchema,
1042
- documentMediaSchema,
1043
- spreadsheetMediaSchema,
1044
- archiveMediaSchema
1045
- ]);
1046
- const persistableMediaBaseSchema = mediaBaseSchema.extend({ identifier: mediaIdentifierSchema });
1047
- z.discriminatedUnion("type", [
1048
- persistableMediaBaseSchema.extend({ type: z.literal("image") }),
1049
- persistableMediaBaseSchema.extend({ type: z.literal("video") }),
1050
- persistableMediaBaseSchema.extend({ type: z.literal("audio") }),
1051
- persistableMediaBaseSchema.extend({ type: z.literal("document") }),
1052
- persistableMediaBaseSchema.extend({ type: z.literal("spreadsheet") }),
1053
- persistableMediaBaseSchema.extend({ type: z.literal("archive") })
1130
+ const mediaSchema = mediaBaseSchema.extend({ type: z.enum(mediaTypeDiscriminants) });
1131
+ const externalMediaSchema = z.object({
1132
+ ...mediaUsageShape,
1133
+ ...environmentExclusions,
1134
+ type: z.enum(mediaTypeDiscriminants),
1135
+ src: z.string().min(1),
1136
+ identifier: z.never().optional()
1137
+ }).strict();
1138
+ const assetMediaSchema = z.object({
1139
+ ...mediaUsageShape,
1140
+ ...environmentExclusions,
1141
+ type: z.enum(mediaTypeDiscriminants),
1142
+ asset: renderableMediaAssetSchema,
1143
+ identifier: z.never().optional()
1144
+ }).strict();
1145
+ z.union([
1146
+ mediaSchema,
1147
+ externalMediaSchema,
1148
+ assetMediaSchema
1054
1149
  ]);
1055
1150
  //#endregion
1056
1151
  //#region ../theme-core/src/palette/schema.ts
@@ -1081,6 +1176,29 @@ const paletteSchema = z.object({
1081
1176
  };
1082
1177
  });
1083
1178
  //#endregion
1179
+ //#region ../theme-core/src/buttons/typography.ts
1180
+ const textTransformSchema = z.enum([
1181
+ "none",
1182
+ "uppercase",
1183
+ "lowercase",
1184
+ "capitalize"
1185
+ ]);
1186
+ const fontWeightSchema = z.union([
1187
+ z.literal(400),
1188
+ z.literal(500),
1189
+ z.literal(600),
1190
+ z.literal(700),
1191
+ z.literal(800)
1192
+ ]);
1193
+ const buttonTypographySchema = z.enum(["body", "heading"]);
1194
+ const letterSpacingSchema = z.enum([
1195
+ "tight",
1196
+ "normal",
1197
+ "slight",
1198
+ "loose",
1199
+ "wide"
1200
+ ]);
1201
+ //#endregion
1084
1202
  //#region ../theme-core/src/buttons/types.ts
1085
1203
  /**
1086
1204
  * Standard semantic variant roles a theme exposes.
@@ -1196,6 +1314,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
1196
1314
  z.strictObject({
1197
1315
  effectId: z.literal("lift"),
1198
1316
  options: z.strictObject({ amount: z.enum([
1317
+ "0.125",
1199
1318
  "0.25",
1200
1319
  "0.5",
1201
1320
  "1"
@@ -1242,24 +1361,6 @@ const shadowSizeSchema = z.enum([
1242
1361
  "medium",
1243
1362
  "high"
1244
1363
  ]);
1245
- const textTransformSchema = z.enum([
1246
- "none",
1247
- "uppercase",
1248
- "lowercase",
1249
- "capitalize"
1250
- ]);
1251
- const fontWeightSchema = z.union([
1252
- z.literal(500),
1253
- z.literal(600),
1254
- z.literal(700),
1255
- z.literal(800)
1256
- ]);
1257
- const buttonTypographySchema = z.enum(["body", "heading"]);
1258
- const letterSpacingSchema = z.enum([
1259
- "tight",
1260
- "normal",
1261
- "loose"
1262
- ]);
1263
1364
  const hoverTransformSchema = z.enum([
1264
1365
  "none",
1265
1366
  "lift",
@@ -1331,7 +1432,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
1331
1432
  }, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
1332
1433
  const buttonSizeConfigSchema = z.object({
1333
1434
  padding: paddingShorthandSchema,
1334
- fontSize: z.string().optional()
1435
+ fontSize: z.string().optional(),
1436
+ borderRadius: z.string().optional()
1335
1437
  });
1336
1438
  /**
1337
1439
  * `xl` is optional on the wire so themes persisted before the `xl` size was
@@ -1454,12 +1556,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
1454
1556
  textTransform: textTransformSchema
1455
1557
  }),
1456
1558
  effects: z.array(buttonEffectApplicationSchema),
1559
+ transform: z.literal("none").optional(),
1457
1560
  contextualHover: contextualButtonHoverSchema.optional()
1458
1561
  });
1459
1562
  const buttonVisualStatesSchema = z.strictObject({
1460
1563
  base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
1461
1564
  hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
1462
- focus: buttonVisualAppearanceSchema.extend({ shadow: z.literal("focus-indicator") }),
1565
+ focus: buttonVisualAppearanceSchema.extend({
1566
+ shadow: z.literal("focus-indicator"),
1567
+ indicator: z.strictObject({
1568
+ kind: z.literal("surface-ink"),
1569
+ width: z.union([z.literal(2), z.literal(3)]),
1570
+ offset: z.union([z.literal(3), z.literal(4)])
1571
+ }).optional()
1572
+ }),
1463
1573
  active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
1464
1574
  disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
1465
1575
  });
@@ -1866,6 +1976,10 @@ function validateButtonTextContrast(input) {
1866
1976
  }
1867
1977
  };
1868
1978
  }
1979
+ /** A text-token slab inverts the palette's text/background pair, including text shades. */
1980
+ function solidForegroundToken(backgroundToken) {
1981
+ return /^text(?:-\d+)?$/.test(backgroundToken) ? "background" : onColorTokenName(backgroundToken);
1982
+ }
1869
1983
  //#endregion
1870
1984
  //#region ../theme-core/src/buttons/contextualHover.ts
1871
1985
  function resolveContextualHoverPreference(input) {
@@ -1963,7 +2077,7 @@ function candidate(family, shade, currentShade, direction, seedHex, palette) {
1963
2077
  }
1964
2078
  function hasSafeTextContrast(token, palette) {
1965
2079
  const background = palette[token];
1966
- const foreground = palette[onColorTokenName(token)];
2080
+ const foreground = palette[solidForegroundToken(token)];
1967
2081
  return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
1968
2082
  }
1969
2083
  function isSafeCandidate(token, palette, surface) {
@@ -2058,6 +2172,13 @@ function compileDeclaredVisualStates(input, states) {
2058
2172
  const colours = collectStateColours(mapVisualStates((state) => compileDeclaredVisualState(input, states, state, state === "hover" ? hover.treatment : states[state].background)));
2059
2173
  return colours.ok ? {
2060
2174
  ...colours,
2175
+ focusIndicator: states.focus.indicator ? {
2176
+ kind: "surface-role",
2177
+ colorCss: input.surface?.foregroundCss ?? surfaceForegroundValue("text"),
2178
+ width: states.focus.indicator.width,
2179
+ offset: states.focus.indicator.offset,
2180
+ minimumSurfaceContrast: BUTTON_CONTRAST_POLICY.nonTextMinimumRatio
2181
+ } : colours.focusIndicator,
2061
2182
  contextualHoverRepair: hover.repair
2062
2183
  } : colours;
2063
2184
  }
@@ -2195,7 +2316,7 @@ function resolveFocusIndicator(colour) {
2195
2316
  function resolveSolid(input, backgroundToken, edge) {
2196
2317
  const backgroundHex = paletteHex(input, backgroundToken);
2197
2318
  if (!backgroundHex.ok) return backgroundHex;
2198
- const foregroundToken = unsafeAsOpaqueButtonColourToken(onColorTokenName(backgroundToken));
2319
+ const foregroundToken = unsafeAsOpaqueButtonColourToken(solidForegroundToken(backgroundToken));
2199
2320
  const foregroundHex = input.palette[foregroundToken];
2200
2321
  if (typeof foregroundHex !== "string") return {
2201
2322
  ok: false,
@@ -2575,6 +2696,287 @@ function normalizeAppearance(appearance) {
2575
2696
  };
2576
2697
  }
2577
2698
  //#endregion
2699
+ //#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
2700
+ const flatShadow = {
2701
+ elevation: "none",
2702
+ softness: null,
2703
+ position: "bottom"
2704
+ };
2705
+ const lift$1 = {
2706
+ effectId: "lift",
2707
+ options: { amount: "0.125" }
2708
+ };
2709
+ const tags = {
2710
+ tone: "classic",
2711
+ energy: "calm",
2712
+ motion: "subtle",
2713
+ era: "editorial"
2714
+ };
2715
+ /** Each role supplies complete states, including a flat surface-ink focus ring. */
2716
+ function states(base, hover, offset = 4, width = 2) {
2717
+ return {
2718
+ base,
2719
+ hover,
2720
+ focus: {
2721
+ ...base,
2722
+ shadow: "focus-indicator",
2723
+ indicator: {
2724
+ kind: "surface-ink",
2725
+ width,
2726
+ offset
2727
+ }
2728
+ },
2729
+ active: {
2730
+ ...base,
2731
+ transform: "none"
2732
+ },
2733
+ disabled: {
2734
+ ...base,
2735
+ effects: []
2736
+ }
2737
+ };
2738
+ }
2739
+ const gilt = {
2740
+ text: "treatment",
2741
+ border: "none",
2742
+ borderRadius: "rounded-10px",
2743
+ shadow: flatShadow,
2744
+ sizes: {
2745
+ sm: {
2746
+ padding: "10px 20px",
2747
+ fontSize: "text-base",
2748
+ borderRadius: "rounded-lg"
2749
+ },
2750
+ md: {
2751
+ padding: "18px 36px",
2752
+ fontSize: "text-19px"
2753
+ },
2754
+ lg: {
2755
+ padding: "18px 36px",
2756
+ fontSize: "text-19px"
2757
+ },
2758
+ xl: {
2759
+ padding: "18px 36px",
2760
+ fontSize: "text-19px"
2761
+ }
2762
+ },
2763
+ typography: {
2764
+ fontWeight: 400,
2765
+ typography: "heading",
2766
+ fontSize: "text-19px",
2767
+ letterSpacing: "slight",
2768
+ italic: false,
2769
+ textTransform: "none"
2770
+ },
2771
+ effects: []
2772
+ };
2773
+ const giltPrimary = {
2774
+ ...gilt,
2775
+ background: {
2776
+ type: "gradient",
2777
+ stops: ["accent", "primary"],
2778
+ direction: "to-br",
2779
+ foregroundToken: "onAccent"
2780
+ }
2781
+ };
2782
+ const giltPrimaryHover = {
2783
+ ...giltPrimary,
2784
+ background: {
2785
+ ...giltPrimary.background,
2786
+ stops: ["accent-400", "primary-400"],
2787
+ foregroundToken: "secondary-950"
2788
+ },
2789
+ effects: [lift$1]
2790
+ };
2791
+ const giltSecondary = {
2792
+ ...gilt,
2793
+ background: {
2794
+ type: "solid",
2795
+ colorToken: "text"
2796
+ }
2797
+ };
2798
+ const giltSecondaryHover = {
2799
+ ...giltSecondary,
2800
+ effects: [lift$1],
2801
+ contextualHover: {
2802
+ kind: "shade-shift",
2803
+ seedToken: unsafeAsOpaqueButtonColourToken("text"),
2804
+ fallbackDirection: "lighter"
2805
+ }
2806
+ };
2807
+ const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
2808
+ const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
2809
+ const giltSlabRecipe = defineStaticButtonStyleRecipe({
2810
+ id: "gilt-slab",
2811
+ accessibilityLabel: "Gilt slab",
2812
+ tags,
2813
+ system: { roles: {
2814
+ primary: { states: giltPrimaryStates },
2815
+ secondary: { states: giltSecondaryStates },
2816
+ outline: { states: giltSecondaryStates },
2817
+ ghost: { states: giltSecondaryStates },
2818
+ accent: { states: giltPrimaryStates }
2819
+ } }
2820
+ });
2821
+ const hairline = {
2822
+ text: "treatment",
2823
+ borderRadius: "rounded-3px",
2824
+ shadow: flatShadow,
2825
+ sizes: {
2826
+ sm: {
2827
+ padding: "9px 16px",
2828
+ fontSize: "text-xs"
2829
+ },
2830
+ md: {
2831
+ padding: "15px 28px",
2832
+ fontSize: "text-13px"
2833
+ },
2834
+ lg: {
2835
+ padding: "15px 28px",
2836
+ fontSize: "text-13px"
2837
+ },
2838
+ xl: {
2839
+ padding: "15px 28px",
2840
+ fontSize: "text-13px"
2841
+ }
2842
+ },
2843
+ typography: {
2844
+ fontWeight: 700,
2845
+ typography: "body",
2846
+ fontSize: "text-13px",
2847
+ letterSpacing: "wide",
2848
+ italic: false,
2849
+ textTransform: "uppercase"
2850
+ },
2851
+ effects: []
2852
+ };
2853
+ const hairlinePrimary = {
2854
+ ...hairline,
2855
+ background: {
2856
+ type: "solid",
2857
+ colorToken: "primary"
2858
+ },
2859
+ border: {
2860
+ widthClass: "border",
2861
+ boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
2862
+ }
2863
+ };
2864
+ const hairlineOutline = {
2865
+ ...hairline,
2866
+ background: {
2867
+ type: "surface",
2868
+ role: "link"
2869
+ },
2870
+ border: {
2871
+ widthClass: "border",
2872
+ boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
2873
+ }
2874
+ };
2875
+ const hairlineSecondary = {
2876
+ ...hairlineOutline,
2877
+ border: {
2878
+ widthClass: "border",
2879
+ boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
2880
+ }
2881
+ };
2882
+ const hairlineFilled = {
2883
+ ...hairlineSecondary,
2884
+ background: {
2885
+ type: "solid",
2886
+ colorToken: "accent"
2887
+ }
2888
+ };
2889
+ const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
2890
+ const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
2891
+ const hairlineTabRecipe = defineStaticButtonStyleRecipe({
2892
+ id: "hairline-tab",
2893
+ accessibilityLabel: "Hairline tab",
2894
+ tags,
2895
+ system: { roles: {
2896
+ primary: { states: hairlinePrimaryStates },
2897
+ secondary: { states: hairlineSecondaryStates },
2898
+ outline: { states: hairlineSecondaryStates },
2899
+ ghost: { states: hairlineSecondaryStates },
2900
+ accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
2901
+ } }
2902
+ });
2903
+ const marqueeAccent = {
2904
+ text: "treatment",
2905
+ borderRadius: "rounded-none",
2906
+ shadow: flatShadow,
2907
+ sizes: {
2908
+ sm: {
2909
+ padding: "8px 17px",
2910
+ fontSize: "text-15px"
2911
+ },
2912
+ md: {
2913
+ padding: "14px 25px",
2914
+ fontSize: "text-17px"
2915
+ },
2916
+ lg: {
2917
+ padding: "14px 25px",
2918
+ fontSize: "text-17px"
2919
+ },
2920
+ xl: {
2921
+ padding: "14px 25px",
2922
+ fontSize: "text-17px"
2923
+ }
2924
+ },
2925
+ typography: {
2926
+ fontWeight: 800,
2927
+ typography: "body",
2928
+ fontSize: "text-17px",
2929
+ letterSpacing: "loose",
2930
+ italic: false,
2931
+ textTransform: "uppercase"
2932
+ },
2933
+ effects: [],
2934
+ background: {
2935
+ type: "solid",
2936
+ colorToken: "accent"
2937
+ },
2938
+ border: {
2939
+ widthClass: "border-2",
2940
+ boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
2941
+ }
2942
+ };
2943
+ const marqueePrimary = {
2944
+ ...marqueeAccent,
2945
+ background: {
2946
+ type: "solid",
2947
+ colorToken: "primary"
2948
+ },
2949
+ border: {
2950
+ widthClass: "border-2",
2951
+ boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
2952
+ }
2953
+ };
2954
+ const marqueeSecondary = {
2955
+ ...marqueeAccent,
2956
+ background: {
2957
+ type: "solid",
2958
+ colorToken: "text"
2959
+ },
2960
+ border: {
2961
+ widthClass: "border-2",
2962
+ boundaryInk: unsafeAsOpaqueButtonColourToken("text")
2963
+ }
2964
+ };
2965
+ const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
2966
+ const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
2967
+ const marqueeRecipe = defineStaticButtonStyleRecipe({
2968
+ id: "marquee",
2969
+ accessibilityLabel: "Marquee",
2970
+ tags,
2971
+ system: { roles: {
2972
+ primary: { states: marqueePrimaryStates },
2973
+ secondary: { states: marqueeSecondaryStates },
2974
+ outline: { states: marqueeSecondaryStates },
2975
+ ghost: { states: marqueeSecondaryStates },
2976
+ accent: { states: marqueePrimaryStates }
2977
+ } }
2978
+ });
2979
+ //#endregion
2578
2980
  //#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
2579
2981
  const fulcrumSizes = {
2580
2982
  sm: {
@@ -3316,7 +3718,10 @@ const BUTTON_STYLE_IDS = [
3316
3718
  "offset-block",
3317
3719
  "ringed-pill",
3318
3720
  "square-outline",
3319
- "fulcrum"
3721
+ "fulcrum",
3722
+ "gilt-slab",
3723
+ "hairline-tab",
3724
+ "marquee"
3320
3725
  ];
3321
3726
  const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
3322
3727
  const flatInkHoverTreatmentSchema = z.enum([
@@ -3353,7 +3758,10 @@ z.discriminatedUnion("styleId", [
3353
3758
  selectionBranch("offset-block", emptyParametersSchema),
3354
3759
  selectionBranch("ringed-pill", emptyParametersSchema),
3355
3760
  selectionBranch("square-outline", emptyParametersSchema),
3356
- selectionBranch("fulcrum", emptyParametersSchema)
3761
+ selectionBranch("fulcrum", emptyParametersSchema),
3762
+ selectionBranch("gilt-slab", emptyParametersSchema),
3763
+ selectionBranch("hairline-tab", emptyParametersSchema),
3764
+ selectionBranch("marquee", emptyParametersSchema)
3357
3765
  ]);
3358
3766
  //#endregion
3359
3767
  //#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
@@ -6869,7 +7277,10 @@ const buttonStyleRecipes = [
6869
7277
  offsetBlockRecipe,
6870
7278
  ringedPillRecipe,
6871
7279
  squareOutlineRecipe,
6872
- fulcrumRecipe
7280
+ fulcrumRecipe,
7281
+ giltSlabRecipe,
7282
+ hairlineTabRecipe,
7283
+ marqueeRecipe
6873
7284
  ];
6874
7285
  const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
6875
7286
  function findButtonStyleRecipe(id) {
@@ -6885,6 +7296,9 @@ function resolveButtonStyleSelection(selection) {
6885
7296
  case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
6886
7297
  case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
6887
7298
  case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
7299
+ case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
7300
+ case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
7301
+ case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
6888
7302
  case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
6889
7303
  case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
6890
7304
  case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
@@ -8156,6 +8570,20 @@ const boxBackgroundSchema = z.discriminatedUnion("type", [
8156
8570
  showVideoOnMobile: z.boolean().nullable().optional()
8157
8571
  })
8158
8572
  ]);
8573
+ z.discriminatedUnion("type", [
8574
+ boxBackgroundSchema.options[0],
8575
+ boxBackgroundSchema.options[1],
8576
+ boxBackgroundSchema.options[2].extend({ image: z.union([
8577
+ imageMediaSchema,
8578
+ externalMediaSchema.extend({ type: z.literal("image") }),
8579
+ assetMediaSchema.extend({ type: z.literal("image") })
8580
+ ]).nullable().optional() }),
8581
+ boxBackgroundSchema.options[3].extend({ image: z.union([
8582
+ videoMediaSchema,
8583
+ externalMediaSchema.extend({ type: z.literal("video") }),
8584
+ assetMediaSchema.extend({ type: z.literal("video") })
8585
+ ]).nullable().optional() })
8586
+ ]);
8159
8587
  function normalizeAuthoringOpacity(value) {
8160
8588
  if (!isRecord(value)) return value;
8161
8589
  return {
@@ -8509,20 +8937,15 @@ const headerSchema = z.object({
8509
8937
  const footerVariant = z.enum([
8510
8938
  "simple",
8511
8939
  "columns",
8512
- "split"
8513
- ]);
8940
+ "split",
8941
+ "centred"
8942
+ ]).transform((value) => value === "columns" ? "simple" : value);
8514
8943
  const footerMaxWidth = z.enum(["container", "full"]);
8515
8944
  const footerNavLayoutMode = z.enum([
8516
8945
  "stack",
8517
8946
  "inline",
8518
8947
  "inline-wrap"
8519
8948
  ]);
8520
- const footerNavLayoutAlign = z.enum([
8521
- "start",
8522
- "center",
8523
- "end",
8524
- "space-between"
8525
- ]);
8526
8949
  const footerSpacing = z.enum([
8527
8950
  "none",
8528
8951
  "tight",
@@ -8531,12 +8954,6 @@ const footerSpacing = z.enum([
8531
8954
  "relaxed",
8532
8955
  "spacious"
8533
8956
  ]);
8534
- const footerLogoPlacement = z.enum([
8535
- "left",
8536
- "right",
8537
- "above",
8538
- "below"
8539
- ]);
8540
8957
  const footerLogoSize = z.enum([
8541
8958
  "sm",
8542
8959
  "md",
@@ -8577,17 +8994,8 @@ const footerBottomBarSchema = z.object({
8577
8994
  ]).optional()
8578
8995
  }).optional()
8579
8996
  });
8580
- const footerNavLayoutSchema = z.object({
8581
- layout: footerNavLayoutMode.optional(),
8582
- align: footerNavLayoutAlign.optional(),
8583
- gapX: footerSpacing.optional(),
8584
- gapY: footerSpacing.optional(),
8585
- columns: z.number().int().min(1).max(6).optional()
8586
- });
8997
+ const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
8587
8998
  const footerLogoSchema = z.object({
8588
- showLogo: z.boolean().default(true),
8589
- showLogoText: z.boolean().optional(),
8590
- placement: footerLogoPlacement.optional(),
8591
8999
  size: footerLogoSize.optional(),
8592
9000
  maxHeight: footerLogoMaxHeight.optional(),
8593
9001
  align: z.enum([
@@ -8597,15 +9005,8 @@ const footerLogoSchema = z.object({
8597
9005
  ]).optional()
8598
9006
  });
8599
9007
  const footerSchema = z.object({
8600
- /**
8601
- * SDK-only footer rendering mode.
8602
- *
8603
- * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
8604
- */
8605
- mode: footerModeSchema.optional(),
8606
9008
  variant: footerVariant,
8607
9009
  maxWidth: footerMaxWidth,
8608
- showLogoText: z.boolean().optional(),
8609
9010
  background: headerBackgroundSchema.default({
8610
9011
  type: "color",
8611
9012
  color: "surface"