@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
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { type Media, type PublicDownloadMediaType } from '../../../lib/media';
2
+ import { type PublicDownloadMediaType } from '../../../lib/media';
3
+ import { type RuntimeMedia } from './media';
3
4
  import { type BlockButtonRole } from '../../constants/buttonRoles';
4
5
  export type FileDownloadNodeProps = Readonly<{
5
- value?: Media | null;
6
+ value?: RuntimeMedia | null;
6
7
  title?: string | null;
7
8
  description?: string | null;
8
9
  buttonLabel?: string | null;
@@ -1,5 +1,8 @@
1
1
  import React from 'react';
2
+ import { type LookListPresentation } from '../lookSurfaces';
3
+ type FieldPresentation = Pick<LookListPresentation, 'lookSlots'>;
2
4
  import type { FormFieldDef } from './form.types';
3
- export declare function FormFieldControl({ field }: Readonly<{
5
+ export declare function FormFieldControl({ field, lookSlots }: Readonly<{
4
6
  field: FormFieldDef;
5
- }>): React.ReactElement;
7
+ }> & FieldPresentation): React.ReactElement;
8
+ export {};
@@ -1,7 +1,8 @@
1
+ import { type LookListPresentation } from '../lookSurfaces';
1
2
  import { type InteractiveIslandProps } from '../../../contracts/islands';
2
3
  import { type FormFieldGroup } from './form-layout';
3
4
  import type { FormRecord } from './form.types';
4
- export type FormSourceProps = Readonly<{
5
+ export type FormSourceProps = Pick<LookListPresentation, 'lookSlots'> & Readonly<{
5
6
  value?: FormRecord;
6
7
  siteId?: string;
7
8
  apiBaseUrl?: string;
@@ -10,7 +11,7 @@ export type FormSourceProps = Readonly<{
10
11
  className?: string;
11
12
  spamProtectionEnabled?: boolean;
12
13
  }>;
13
- export type FormDisplay = Readonly<{
14
+ export type FormDisplay = Pick<LookListPresentation, 'lookSlots'> & Readonly<{
14
15
  kind: 'form';
15
16
  state: 'missing' | 'ready';
16
17
  className: string | null;
@@ -31,77 +32,26 @@ export declare function buildFormDisplay(source: FormSourceProps): FormDisplay;
31
32
  export type FormInteractiveIslandProps = InteractiveIslandProps<FormIslandMeta, 'form', typeof formBlockRuntime>;
32
33
  export declare const formBlockRuntime: Readonly<{
33
34
  kind: "progressive";
34
- buildRender: (source: Readonly<{
35
- value?: FormRecord;
36
- siteId?: string;
37
- apiBaseUrl?: string;
38
- submitLabel?: string;
39
- successMessage?: string | null;
40
- className?: string;
41
- spamProtectionEnabled?: boolean;
42
- }>) => Readonly<{
43
- display: Readonly<{
44
- kind: "form";
45
- state: "missing" | "ready";
46
- className: string | null;
47
- formId: string | null;
48
- submitLabel: string;
49
- successMessage: string | null;
50
- form: FormRecord | null;
51
- groups: readonly FormFieldGroup[];
52
- }>;
35
+ buildRender: (source: FormSourceProps) => Readonly<{
36
+ display: FormDisplay;
53
37
  hydration: Readonly<{
54
38
  spamProtectionEnabled?: boolean;
55
39
  }>;
56
40
  }>;
57
41
  contracts: Readonly<{
58
42
  source: Readonly<{
59
- encode: (value: Readonly<{
60
- value?: FormRecord;
61
- siteId?: string;
62
- apiBaseUrl?: string;
63
- submitLabel?: string;
64
- successMessage?: string | null;
65
- className?: string;
66
- spamProtectionEnabled?: boolean;
67
- }>) => unknown;
68
- decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
69
- value?: FormRecord;
70
- siteId?: string;
71
- apiBaseUrl?: string;
72
- submitLabel?: string;
73
- successMessage?: string | null;
74
- className?: string;
75
- spamProtectionEnabled?: boolean;
76
- }>>;
43
+ encode: (value: FormSourceProps) => unknown;
44
+ decode: (input: unknown) => import("../../../contracts").DecodeResult<FormSourceProps>;
77
45
  }>;
78
46
  render: Readonly<{
79
47
  encode: (value: Readonly<{
80
- display: Readonly<{
81
- kind: "form";
82
- state: "missing" | "ready";
83
- className: string | null;
84
- formId: string | null;
85
- submitLabel: string;
86
- successMessage: string | null;
87
- form: FormRecord | null;
88
- groups: readonly FormFieldGroup[];
89
- }>;
48
+ display: FormDisplay;
90
49
  hydration: Readonly<{
91
50
  spamProtectionEnabled?: boolean;
92
51
  }>;
93
52
  }>) => unknown;
94
53
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
95
- display: Readonly<{
96
- kind: "form";
97
- state: "missing" | "ready";
98
- className: string | null;
99
- formId: string | null;
100
- submitLabel: string;
101
- successMessage: string | null;
102
- form: FormRecord | null;
103
- groups: readonly FormFieldGroup[];
104
- }>;
54
+ display: FormDisplay;
105
55
  hydration: Readonly<{
106
56
  spamProtectionEnabled?: boolean;
107
57
  }>;
@@ -118,16 +68,7 @@ export declare const formInteractiveIslandPropsCodec: Readonly<{
118
68
  render: Readonly<{
119
69
  mode: "form";
120
70
  } & Readonly<{
121
- display: Readonly<{
122
- kind: "form";
123
- state: "missing" | "ready";
124
- className: string | null;
125
- formId: string | null;
126
- submitLabel: string;
127
- successMessage: string | null;
128
- form: FormRecord | null;
129
- groups: readonly FormFieldGroup[];
130
- }>;
71
+ display: FormDisplay;
131
72
  hydration: Readonly<{
132
73
  spamProtectionEnabled?: boolean;
133
74
  }>;
@@ -141,16 +82,7 @@ export declare const formInteractiveIslandPropsCodec: Readonly<{
141
82
  render: Readonly<{
142
83
  mode: "form";
143
84
  } & Readonly<{
144
- display: Readonly<{
145
- kind: "form";
146
- state: "missing" | "ready";
147
- className: string | null;
148
- formId: string | null;
149
- submitLabel: string;
150
- successMessage: string | null;
151
- form: FormRecord | null;
152
- groups: readonly FormFieldGroup[];
153
- }>;
85
+ display: FormDisplay;
154
86
  hydration: Readonly<{
155
87
  spamProtectionEnabled?: boolean;
156
88
  }>;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { FormDisplay } from './form.interactive';
3
+ /** SSR and hydration consume the same decided field groups and Look hooks. */
4
+ export declare function FormFieldGroups({ groups, lookSlots }: Pick<FormDisplay, 'groups' | 'lookSlots'>): React.ReactElement;
5
+ export declare function FormSubmitAction({ lookSlots, submitLabel, disabled }: Pick<FormDisplay, 'lookSlots' | 'submitLabel'> & Readonly<{
6
+ disabled?: boolean;
7
+ }>): React.ReactElement;
@@ -1,20 +1,9 @@
1
1
  import React from 'react';
2
- import type { FormRecord } from './form.types';
3
- type FormNodeProps = {
2
+ import { type FormSourceProps } from './form.interactive';
3
+ type FormNodeProps = FormSourceProps & {
4
4
  blockId?: string | null;
5
- value?: FormRecord;
6
- submitLabel?: string;
7
- successMessage?: string | null;
8
- className?: string;
9
5
  onSubmit?: React.FormEventHandler<HTMLFormElement>;
10
- /** Override server form action (defaults to /api/forms/submit). */
11
6
  action?: string;
12
- /** Site ID for form submission */
13
- siteId?: string;
14
- /** API base URL for client-side fetching (passed from server to avoid env var resolution on client) */
15
- apiBaseUrl?: string;
16
- /** Enable spam protection (ALTCHA) */
17
- spamProtectionEnabled?: boolean;
18
7
  };
19
8
  export declare const FormNodeSSR: React.FC<FormNodeProps>;
20
9
  export {};
@@ -1,6 +1,10 @@
1
1
  import React from 'react';
2
- import { type ResolvedMediaTransform, type DirectImageUrlOptions, type RenderableMediaAsset, type RenderableMediaAssetIndex } from '../../../../../media-core/src/index';
2
+ import { type RuntimeMedia, type ManagedMediaResolution, type ResolvedMediaTransform, type DirectImageUrlOptions } from '../../../../../media-core/src/index';
3
3
  import type { Media } from '../../../lib/media';
4
+ import { type ResolveImageUrlContext } from './mediaContext';
5
+ export { buildMediaAssetIndex, buildResolveImageUrlContext, getCurrentResolveImageUrlContext, getSiteId, getSupabaseUrl, runWithMediaContext, setContextSupabaseUrl, setContextSiteId, setContextMediaAssetIndex, setContextMediaAssets, setContextResolveImageUrlContext, } from './mediaContext';
6
+ export type { MediaAssetIndex, MediaAssetIndexItem, ResolveImageUrlContext, ResolveImageUrlContextInput } from './mediaContext';
7
+ export type { RuntimeMedia } from '../../../../../media-core/src/index';
4
8
  /**
5
9
  * Options for image URL resolution.
6
10
  * Requires either dimensions or explicit original request.
@@ -18,24 +22,6 @@ export type ImageOptions = {
18
22
  } | {
19
23
  original: true;
20
24
  };
21
- export type ResolveImageUrlContext = {
22
- supabaseUrl?: string;
23
- siteId?: string;
24
- /**
25
- * Optional per-call media asset index for resolving identifier-only media values
26
- * without mutating persisted content shapes.
27
- */
28
- mediaAssetIndex?: MediaAssetIndex;
29
- };
30
- export type ResolveImageUrlContextInput = Readonly<{
31
- supabaseUrl?: string;
32
- siteId?: string;
33
- mediaAssetIndex?: MediaAssetIndex;
34
- mediaAssets?: readonly MediaAssetIndexItem[];
35
- }>;
36
- export type MediaAssetIndexItem = RenderableMediaAsset;
37
- export type MediaAssetIndex = RenderableMediaAssetIndex;
38
- export declare function buildMediaAssetIndex(assets: readonly MediaAssetIndexItem[] | undefined): MediaAssetIndex | undefined;
39
25
  export type ResolveImageSourceSetOptions = {
40
26
  widthCandidates?: readonly number[];
41
27
  sizes?: string;
@@ -78,9 +64,8 @@ export type MediaUrlResolution = Readonly<{
78
64
  assetId?: string;
79
65
  identifier?: string | null;
80
66
  }>;
81
- export declare function buildResolveImageUrlContext(input: ResolveImageUrlContextInput | undefined): ResolveImageUrlContext;
82
- export declare function resolveMediaStorageUrl(value: Media, context?: ResolveImageUrlContext | null, transformOptions?: DirectImageUrlOptions): string | undefined;
83
- export declare function resolveMediaStorageUrlResult(value: Media, context?: ResolveImageUrlContext | null, transformOptions?: DirectImageUrlOptions): MediaUrlResolution;
67
+ export declare function resolveMediaStorageUrl(value: RuntimeMedia, context?: ResolveImageUrlContext | null, transformOptions?: DirectImageUrlOptions): string | undefined;
68
+ export declare function resolveMediaStorageUrlResult(value: RuntimeMedia, context?: ResolveImageUrlContext | null, transformOptions?: DirectImageUrlOptions): MediaUrlResolution;
84
69
  /**
85
70
  * Common image size presets.
86
71
  * Use these for consistent sizing across the application.
@@ -111,68 +96,15 @@ export declare const ImagePresets: {
111
96
  readonly resize: "contain";
112
97
  };
113
98
  };
114
- /**
115
- * Media context for URL resolution.
116
- * Contains site-specific values needed to build storage URLs.
117
- */
118
- type MediaContext = {
119
- supabaseUrl?: string;
120
- siteId?: string;
121
- mediaAssetIndex?: MediaAssetIndex;
122
- };
123
- /**
124
- * Run a function with the given media context.
125
- * On server: Uses AsyncLocalStorage to isolate context per request.
126
- * On client: Temporarily sets module-level context for the duration of the call.
127
- *
128
- * @example
129
- * ```tsx
130
- * runWithMediaContext(
131
- * { supabaseUrl: 'https://...', siteId: 'abc-123' },
132
- * () => renderPage(page)
133
- * )
134
- * ```
135
- */
136
- export declare function runWithMediaContext<T>(context: MediaContext, fn: () => T): T;
137
- /**
138
- * Set the Supabase URL in the current context.
139
- * @deprecated Use runWithMediaContext instead for request isolation.
140
- */
141
- export declare function setContextSupabaseUrl(url: string | undefined): void;
142
- /**
143
- * Set the site ID in the current context.
144
- * @deprecated Use runWithMediaContext instead for request isolation.
145
- */
146
- export declare function setContextSiteId(siteId: string | undefined): void;
147
- export declare function setContextMediaAssetIndex(index: MediaAssetIndex | undefined): void;
148
- export declare function setContextResolveImageUrlContext(context: ResolveImageUrlContext | undefined): void;
149
- export declare function getCurrentResolveImageUrlContext(): ResolveImageUrlContext | undefined;
150
- export declare function setContextMediaAssets(assets: readonly MediaAssetIndexItem[] | undefined): void;
151
- /**
152
- * Get the Supabase URL for constructing direct storage URLs.
153
- * Used for serving images directly from Supabase storage CDN.
154
- *
155
- * Resolution order:
156
- * 1. Context URL (set via runWithMediaContext or setContextSupabaseUrl)
157
- * 2. Environment variable NEXT_PUBLIC_SUPABASE_URL
158
- *
159
- * SDK sites receive the URL from the API, so they don't need the env var.
160
- * Dashboard and frontend apps use the env var.
161
- */
162
- export declare function getSupabaseUrl(): string;
163
- /**
164
- * Get the site ID for constructing storage paths.
165
- * Required for relative path resolution.
166
- */
167
- export declare function getSiteId(): string | undefined;
168
- export declare function resolveVideoPosterUrl(value: Media, context?: ResolveImageUrlContext | null): string | undefined;
169
- export declare function resolveMediaWithContext<TMedia extends Media>(value: TMedia, context?: ResolveImageUrlContext | null): TMedia;
99
+ /** Resolve portable content without exposing runtime metadata as saved values. */
100
+ export declare function resolveMediaWithContext<TReference extends Media>(reference: TReference, context?: ResolveImageUrlContext | null): ManagedMediaResolution<TReference>;
101
+ export declare function resolveVideoPosterUrl(value: RuntimeMedia, context?: ResolveImageUrlContext | null): string | undefined;
170
102
  export type MediaImageLoading = NonNullable<React.ImgHTMLAttributes<HTMLImageElement>['loading']>;
171
103
  export type MediaImageFetchPriority = NonNullable<React.ImgHTMLAttributes<HTMLImageElement>['fetchPriority']>;
172
104
  export type MediaNodeProps = {
173
105
  "data-slot"?: string;
174
106
  "data-surface"?: string;
175
- value?: Media | null;
107
+ value?: RuntimeMedia | null;
176
108
  className?: string;
177
109
  style?: React.CSSProperties;
178
110
  children?: React.ReactNode;
@@ -196,7 +128,7 @@ export type MediaNodeProps = {
196
128
  imageResolveContext?: ResolveImageUrlContext | null;
197
129
  };
198
130
  export type VideoPlaybackMode = 'inline' | 'background';
199
- export declare function resolveMediaNodeResponsiveImage(value: Media, size: ImageOptions, style: React.CSSProperties | undefined, slot: {
131
+ export declare function resolveMediaNodeResponsiveImage(value: RuntimeMedia, size: ImageOptions, style: React.CSSProperties | undefined, slot: {
200
132
  fieldPath?: string;
201
133
  blockKind?: string | null;
202
134
  blockContent?: unknown;
@@ -207,14 +139,15 @@ export declare function resolveMediaNodeResponsiveImage(value: Media, size: Imag
207
139
  resolvedTransform?: ResolvedMediaTransform;
208
140
  isProxy?: boolean;
209
141
  };
210
- export declare function renderVideo(value: Media, className?: string, style?: React.CSSProperties, context?: ResolveImageUrlContext | null, options?: {
142
+ export declare function renderVideo(value: RuntimeMedia, className?: string, style?: React.CSSProperties, context?: ResolveImageUrlContext | null, options?: {
211
143
  playback?: VideoPlaybackMode;
212
144
  }): React.ReactElement | null;
213
- export declare function renderAudio(value: Media, className?: string, style?: React.CSSProperties, context?: ResolveImageUrlContext | null): React.ReactElement | null;
214
- export declare function computeMediaTransformStyle(value: Media, style?: React.CSSProperties, targetAspectRatio?: number | string, options?: {
145
+ export declare function resolvePublicMediaUrl(value: RuntimeMedia, context?: ResolveImageUrlContext | null): string | undefined;
146
+ export declare function renderAudio(value: RuntimeMedia, className?: string, style?: React.CSSProperties, context?: ResolveImageUrlContext | null): React.ReactElement | null;
147
+ export declare function computeMediaTransformStyle(value: RuntimeMedia, style?: React.CSSProperties, targetAspectRatio?: number | string, options?: {
215
148
  resolvedTransform?: ResolvedMediaTransform;
216
149
  isProxy?: boolean;
217
- }): React.CSSProperties | undefined;
150
+ }, context?: ResolveImageUrlContext | null): React.CSSProperties | undefined;
218
151
  export declare const computeHotspotStyle: typeof computeMediaTransformStyle;
219
152
  export declare function resolveTargetAspectRatio(size: ImageOptions): number | undefined;
220
153
  export declare function MediaPlaceholder({ className, style, fieldPath, authoring, }: {
@@ -246,10 +179,9 @@ export declare const MediaNode: React.FC<MediaNodeProps>;
246
179
  * resolveImageUrl(media, { original: true })
247
180
  * ```
248
181
  */
249
- export declare function resolveImageUrl(value: Media, options: ImageOptions, context?: ResolveImageUrlContext | null): string | undefined;
250
- export declare function resolveImageUrlResult(value: Media, options: ImageOptions, context?: ResolveImageUrlContext | null): MediaUrlResolution;
251
- export declare function resolveImageUrlWithContext(value: Media, options: ImageOptions, context?: ResolveImageUrlContext | null, transformAspectRatio?: number | string): string | undefined;
252
- export declare function resolveImageUrlWithContextResult(value: Media, options: ImageOptions, context?: ResolveImageUrlContext | null, transformAspectRatio?: number | string): MediaUrlResolution;
253
- export declare function resolveImageSourceSetWithContext(value: Media, options: ResolveImageSourceSetOptions, context?: ResolveImageUrlContext | null): ResolvedImageSourceSet | undefined;
182
+ export declare function resolveImageUrl(value: RuntimeMedia, options: ImageOptions, context?: ResolveImageUrlContext | null): string | undefined;
183
+ export declare function resolveImageUrlResult(value: RuntimeMedia, options: ImageOptions, context?: ResolveImageUrlContext | null): MediaUrlResolution;
184
+ export declare function resolveImageUrlWithContext(value: RuntimeMedia, options: ImageOptions, context?: ResolveImageUrlContext | null, transformAspectRatio?: number | string): string | undefined;
185
+ export declare function resolveImageUrlWithContextResult(value: RuntimeMedia, options: ImageOptions, context?: ResolveImageUrlContext | null, transformAspectRatio?: number | string): MediaUrlResolution;
186
+ export declare function resolveImageSourceSetWithContext(value: RuntimeMedia, options: ResolveImageSourceSetOptions, context?: ResolveImageUrlContext | null): ResolvedImageSourceSet | undefined;
254
187
  export declare function mediaImageHostProps(props: Pick<MediaNodeProps, 'value' | 'className' | 'loading' | 'fetchPriority' | 'data-slot' | 'data-surface'>, style: React.CSSProperties | undefined): React.ImgHTMLAttributes<HTMLImageElement> & Pick<MediaNodeProps, 'data-slot' | 'data-surface'>;
255
- export {};
@@ -0,0 +1,69 @@
1
+ import { type RenderableMediaAsset, type RenderableMediaAssetIndex } from '../../../../../media-core/src/index';
2
+ export type ResolveImageUrlContext = {
3
+ supabaseUrl?: string;
4
+ siteId?: string;
5
+ /**
6
+ * Optional per-call media asset index for resolving identifier-only media values
7
+ * without mutating persisted content shapes.
8
+ */
9
+ mediaAssetIndex?: MediaAssetIndex;
10
+ };
11
+ export type ResolveImageUrlContextInput = Readonly<{
12
+ supabaseUrl?: string;
13
+ siteId?: string;
14
+ mediaAssetIndex?: MediaAssetIndex;
15
+ mediaAssets?: readonly MediaAssetIndexItem[];
16
+ }>;
17
+ export type MediaAssetIndexItem = RenderableMediaAsset;
18
+ export type MediaAssetIndex = RenderableMediaAssetIndex;
19
+ export declare function buildMediaAssetIndex(assets: readonly MediaAssetIndexItem[] | undefined): MediaAssetIndex | undefined;
20
+ export declare function buildResolveImageUrlContext(input: ResolveImageUrlContextInput | undefined): ResolveImageUrlContext;
21
+ /**
22
+ * Media context for URL resolution.
23
+ * Contains site-specific values needed to build storage URLs.
24
+ */
25
+ type MediaContext = {
26
+ supabaseUrl?: string;
27
+ siteId?: string;
28
+ mediaAssetIndex?: MediaAssetIndex;
29
+ };
30
+ /**
31
+ * Run a function with the given media context.
32
+ * On server: Uses AsyncLocalStorage to isolate context per request.
33
+ * On client: Temporarily sets module-level context for the duration of the call.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * runWithMediaContext(
38
+ * { supabaseUrl: 'https://...', siteId: 'abc-123' },
39
+ * () => renderPage(page)
40
+ * )
41
+ * ```
42
+ */
43
+ export declare function runWithMediaContext<T>(context: MediaContext, fn: () => T): T;
44
+ export declare function setContextSupabaseUrl(url: string | undefined): void;
45
+ /** @deprecated Use runWithMediaContext for request isolation. */
46
+ export declare function setContextSiteId(siteId: string | undefined): void;
47
+ export declare function setContextMediaAssetIndex(index: MediaAssetIndex | undefined): void;
48
+ export declare function setContextResolveImageUrlContext(context: ResolveImageUrlContext | undefined): void;
49
+ export declare function getCurrentResolveImageUrlContext(): ResolveImageUrlContext | undefined;
50
+ export declare function setContextMediaAssets(assets: readonly MediaAssetIndexItem[] | undefined): void;
51
+ /**
52
+ * Get the Supabase URL for constructing direct storage URLs.
53
+ * Used for serving images directly from Supabase storage CDN.
54
+ *
55
+ * Resolution order:
56
+ * 1. Context URL (set via runWithMediaContext or setContextSupabaseUrl)
57
+ * 2. Environment variable NEXT_PUBLIC_SUPABASE_URL
58
+ *
59
+ * SDK sites receive the URL from the API, so they don't need the env var.
60
+ * Dashboard and frontend apps use the env var.
61
+ */
62
+ export declare function getSupabaseUrl(): string;
63
+ /**
64
+ * Get the site ID for constructing storage paths.
65
+ * Required for relative path resolution.
66
+ */
67
+ export declare function getSiteId(): string | undefined;
68
+ export declare function getMediaAssetIndex(context?: ResolveImageUrlContext): MediaAssetIndex | undefined;
69
+ export {};
@@ -1,8 +1,9 @@
1
+ import { type LookListPresentation } from '../lookSurfaces';
1
2
  import { type MailingListSignupSourceRef } from '../../../../../core/src/index';
2
3
  import { type InteractiveIslandProps } from '../../../contracts/islands';
3
4
  import { type NewsletterButtonVariant, type NewsletterFieldDef, type NewsletterFormProps } from './newsletter-form.types';
4
5
  export type NewsletterFormSourceProps = NewsletterFormProps;
5
- export type NewsletterFormDisplay = Readonly<{
6
+ export type NewsletterFormDisplay = Pick<LookListPresentation, 'lookSlots'> & Readonly<{
6
7
  kind: 'newsletter-form';
7
8
  availability: 'ready' | 'unavailable';
8
9
  className: string | null;
@@ -47,25 +48,12 @@ type NewsletterIslandMeta = Readonly<{
47
48
  siteId?: string;
48
49
  apiBaseUrl?: string;
49
50
  }>;
50
- export declare function buildNewsletterDisplay(source: Pick<NewsletterFormSourceProps, 'source' | 'mailingList' | 'targeting' | 'buttonVariant' | 'className'>): NewsletterFormDisplay;
51
+ export declare function buildNewsletterDisplay(source: Pick<NewsletterFormSourceProps, 'source' | 'mailingList' | 'targeting' | 'buttonVariant' | 'className' | 'lookSlots'>): NewsletterFormDisplay;
51
52
  export type NewsletterFormInteractiveIslandProps = InteractiveIslandProps<NewsletterIslandMeta, 'newsletter-form', typeof newsletterFormBlockRuntime>;
52
53
  export declare const newsletterFormBlockRuntime: Readonly<{
53
54
  kind: "progressive";
54
55
  buildRender: (source: NewsletterFormProps) => Readonly<{
55
- display: Readonly<{
56
- kind: "newsletter-form";
57
- availability: "ready" | "unavailable";
58
- className: string | null;
59
- buttonLabel: string;
60
- successMessage: string;
61
- buttonVariant: NewsletterButtonVariant;
62
- privacyNote: string | null;
63
- fields: readonly NewsletterFieldDef[];
64
- choices: readonly Readonly<{
65
- id: string;
66
- label: string;
67
- }>[];
68
- }>;
56
+ display: NewsletterFormDisplay;
69
57
  hydration: Readonly<{
70
58
  target: NewsletterFormHydrationTarget;
71
59
  setupRevision: number | null;
@@ -81,20 +69,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
81
69
  }>;
82
70
  render: Readonly<{
83
71
  encode: (value: Readonly<{
84
- display: Readonly<{
85
- kind: "newsletter-form";
86
- availability: "ready" | "unavailable";
87
- className: string | null;
88
- buttonLabel: string;
89
- successMessage: string;
90
- buttonVariant: NewsletterButtonVariant;
91
- privacyNote: string | null;
92
- fields: readonly NewsletterFieldDef[];
93
- choices: readonly Readonly<{
94
- id: string;
95
- label: string;
96
- }>[];
97
- }>;
72
+ display: NewsletterFormDisplay;
98
73
  hydration: Readonly<{
99
74
  target: NewsletterFormHydrationTarget;
100
75
  setupRevision: number | null;
@@ -104,20 +79,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
104
79
  }>;
105
80
  }>) => unknown;
106
81
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
107
- display: Readonly<{
108
- kind: "newsletter-form";
109
- availability: "ready" | "unavailable";
110
- className: string | null;
111
- buttonLabel: string;
112
- successMessage: string;
113
- buttonVariant: NewsletterButtonVariant;
114
- privacyNote: string | null;
115
- fields: readonly NewsletterFieldDef[];
116
- choices: readonly Readonly<{
117
- id: string;
118
- label: string;
119
- }>[];
120
- }>;
82
+ display: NewsletterFormDisplay;
121
83
  hydration: Readonly<{
122
84
  target: NewsletterFormHydrationTarget;
123
85
  setupRevision: number | null;
@@ -139,20 +101,7 @@ export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
139
101
  render: Readonly<{
140
102
  mode: "newsletter-form";
141
103
  } & Readonly<{
142
- display: Readonly<{
143
- kind: "newsletter-form";
144
- availability: "ready" | "unavailable";
145
- className: string | null;
146
- buttonLabel: string;
147
- successMessage: string;
148
- buttonVariant: NewsletterButtonVariant;
149
- privacyNote: string | null;
150
- fields: readonly NewsletterFieldDef[];
151
- choices: readonly Readonly<{
152
- id: string;
153
- label: string;
154
- }>[];
155
- }>;
104
+ display: NewsletterFormDisplay;
156
105
  hydration: Readonly<{
157
106
  target: NewsletterFormHydrationTarget;
158
107
  setupRevision: number | null;
@@ -170,20 +119,7 @@ export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
170
119
  render: Readonly<{
171
120
  mode: "newsletter-form";
172
121
  } & Readonly<{
173
- display: Readonly<{
174
- kind: "newsletter-form";
175
- availability: "ready" | "unavailable";
176
- className: string | null;
177
- buttonLabel: string;
178
- successMessage: string;
179
- buttonVariant: NewsletterButtonVariant;
180
- privacyNote: string | null;
181
- fields: readonly NewsletterFieldDef[];
182
- choices: readonly Readonly<{
183
- id: string;
184
- label: string;
185
- }>[];
186
- }>;
122
+ display: NewsletterFormDisplay;
187
123
  hydration: Readonly<{
188
124
  target: NewsletterFormHydrationTarget;
189
125
  setupRevision: number | null;
@@ -1,15 +1,15 @@
1
+ import { type LookListPresentation } from '../lookSurfaces';
1
2
  import React from 'react';
2
3
  import type { NewsletterButtonVariant, NewsletterFieldDef } from './newsletter-form.types';
3
4
  /**
4
5
  * Newsletter form pieces shared by the SSR render and the hydrated island, so
5
6
  * both produce the same markup.
6
7
  *
7
- * Labels are visually hidden: every field has a placeholder, and a visible
8
- * "Email *" label over a single field reads like a generic form. Screen
9
- * readers still get the label.
8
+ * Legacy layouts keep visually hidden labels and the joined email/button.
9
+ * Compiler-owned Look hooks expose labelled controls and a separate action.
10
10
  */
11
11
  export declare const TOPIC_CHOICE_FIELD_ID = "mailingListChoice";
12
- type FieldState = Readonly<{
12
+ type FieldState = Pick<LookListPresentation, 'lookSlots'> & Readonly<{
13
13
  disabled?: boolean;
14
14
  error?: string | null;
15
15
  }>;
@@ -18,7 +18,7 @@ export declare function partitionNewsletterFields(fields: readonly NewsletterFie
18
18
  email: NewsletterFieldDef | null;
19
19
  extra: readonly NewsletterFieldDef[];
20
20
  }>;
21
- export declare function NewsletterExtraField({ field, disabled, error, }: Readonly<{
21
+ export declare function NewsletterExtraField({ field, disabled, error, lookSlots, }: Readonly<{
22
22
  field: NewsletterFieldDef;
23
23
  }> & FieldState): React.ReactElement;
24
24
  /** The email field and submit button sharing one input-styled shell. */
@@ -31,7 +31,7 @@ export declare function NewsletterEmailEntry({ field, buttonVariant, buttonLabel
31
31
  * The submit action: joined to the email field when the preset has one
32
32
  * (every current preset does), otherwise a plain themed button.
33
33
  */
34
- export declare function NewsletterSubmitRow({ emailField, buttonVariant, buttonLabel, disabled, error, }: Readonly<{
34
+ export declare function NewsletterSubmitRow({ emailField, lookSlots, buttonVariant, buttonLabel, disabled, error, }: Readonly<{
35
35
  emailField: NewsletterFieldDef | null;
36
36
  buttonVariant: NewsletterButtonVariant;
37
37
  buttonLabel: string;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import type { MailingListGlobalForm, MailingListPlacementTargeting, MailingListRuntimeContext, MailingListSignupSourceRef } from '../../../../../core/src/index';
7
7
  import type { BlockButtonRole } from '../../constants/buttonRoles';
8
+ import type { LookListPresentation } from '../lookSurfaces';
8
9
  import type { NewsletterBlockSubmission } from './newsletter-form.block-submission';
9
10
  export type NewsletterPreset = MailingListGlobalForm['fields']['preset'];
10
11
  export type NewsletterFieldDef = {
@@ -15,7 +16,7 @@ export type NewsletterFieldDef = {
15
16
  placeholder?: string;
16
17
  };
17
18
  export type NewsletterButtonVariant = BlockButtonRole;
18
- type NewsletterFormCommonProps = {
19
+ type NewsletterFormCommonProps = Pick<LookListPresentation, 'lookSlots'> & {
19
20
  /** Site ID for API calls */
20
21
  siteId?: string;
21
22
  /** API base URL for client-side fetching */
@@ -52,5 +53,5 @@ export type NewsletterFormProps = NewsletterFormCommonProps & (BlockNewsletterFo
52
53
  /**
53
54
  * Get form fields based on preset configuration.
54
55
  */
55
- export declare function getGlobalFormFields(form: MailingListGlobalForm): NewsletterFieldDef[];
56
+ export declare function getGlobalFormFields(form: MailingListGlobalForm, presentation?: Pick<LookListPresentation, "lookSlots">): NewsletterFieldDef[];
56
57
  export {};
@@ -18,8 +18,8 @@ export declare const eventButtonVariantSchema: z.ZodEnum<{
18
18
  ghost: "ghost";
19
19
  }>;
20
20
  export declare const eventLayoutSchema: z.ZodEnum<{
21
- stack: "stack";
22
21
  compact: "compact";
22
+ stack: "stack";
23
23
  grid: "grid";
24
24
  }>;
25
25
  export declare const eventCalendarDisplayModeSchema: z.ZodEnum<{
@@ -44,8 +44,8 @@ export declare const weekStartSchema: z.ZodEnum<{
44
44
  }>;
45
45
  export declare const filterAutoShowSchema: z.ZodEnum<{
46
46
  auto: "auto";
47
- never: "never";
48
47
  always: "always";
48
+ never: "never";
49
49
  }>;
50
50
  export declare const calendarTabViewsSchema: z.ZodEnum<{
51
51
  week: "week";
@@ -1,3 +1,4 @@
1
+ import { surfaceDecorationColors } from '../../../../../../theme-core/src/site-styles/index';
1
2
  import { resolveSurfaceForeground, type ResolvedSurfaceForeground } from '../../../../../../theme-core/src/surfaces/index';
2
3
  import type { ThemeFooter, ThemeHeader } from '../../../../../../theme-core/src/schema';
3
4
  import type { ThemeColorToken } from '../../../../../../theme-core/src/tokens/index';
@@ -7,3 +8,5 @@ export declare function resolveFooterRootForeground(footer: Partial<ThemeFooter>
7
8
  export declare function resolveSurfaceForegroundStyles(value: unknown, context: TransformContext, options?: Readonly<{
8
9
  fallbackToken?: string;
9
10
  }>): Record<string, string>;
11
+ /** Decoration roles already resolved by the surface owner, shared with footer arrangements. */
12
+ export declare function surfaceInkStyles(foreground: ResolvedSurfaceForeground, palette: Parameters<typeof surfaceDecorationColors>[1]): Record<string, string>;