@riverbankcms/sdk 0.152.0 → 0.153.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 (178) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{EventEmbeddedCheckoutStep-DVQXWFm6.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +1 -1
  3. package/dist/{PreviewEditorSidebar-Dr4NJi3Q.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -4
  4. package/dist/{PreviewEditorUI-DSZXQbyh.mjs → PreviewEditorUI-ORkVZhfu.mjs} +3 -3
  5. package/dist/{SdkPreviewModeRuntime-Dl4GyMc3.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +221 -115
  6. package/dist/{SiteChromeCustomizeContext-DgBe-FlM.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +1798 -2024
  7. package/dist/{ThemedButton-B8ViBnLK.mjs → ThemedButton-X2UxhW6F.mjs} +213 -38
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
  10. package/dist/_dts/api/src/communications.d.ts +19 -5
  11. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  12. package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
  13. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  14. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  15. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  16. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  17. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  18. package/dist/_dts/blocks/src/index.d.ts +1 -0
  19. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  20. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  21. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  22. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  23. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +196 -804
  24. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -2
  25. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
  27. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  28. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  29. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  30. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  31. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  32. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  33. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  34. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  36. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  37. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
  41. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  43. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +28 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  46. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +276 -884
  48. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  49. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  50. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  51. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -3
  53. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  54. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  55. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  56. package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
  57. package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
  58. package/dist/_dts/core/src/mailing-list-targeting.d.ts +9 -1
  59. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +55 -4
  60. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  61. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  62. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  63. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +2 -2
  64. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  65. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  66. package/dist/_dts/media-core/src/index.d.ts +4 -0
  67. package/dist/_dts/media-core/src/media.d.ts +406 -0
  68. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  69. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  70. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  71. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  72. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  73. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  74. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  75. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  76. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  77. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  78. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  79. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  80. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  81. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  82. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  83. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  84. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  85. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  86. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  87. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  88. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  89. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  90. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  91. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  92. package/dist/_dts/sdk/src/index.d.ts +1 -0
  93. package/dist/_dts/sdk/src/rendering/image.d.ts +5 -5
  94. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
  95. package/dist/_dts/sdk/src/rendering/link.d.ts +3 -7
  96. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  97. package/dist/_dts/sdk/src/version.d.ts +1 -1
  98. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  99. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  100. package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
  101. package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
  102. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  103. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  104. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
  105. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  106. package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
  107. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  109. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  110. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  111. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  112. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  113. package/dist/client/{BookingMailingListNote-CBuMKN0w.mjs → BookingMailingListNote-DrchYW1m.mjs} +2 -2
  114. package/dist/client/{CardListItem-Dc9XTXhB.mjs → CardListItem-CC_GVmF6.mjs} +5 -4
  115. package/dist/client/{CheckboxChoice-CIqx_o0E.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
  116. package/dist/client/{DemoBookingPortalAccess-D3VQ_kLj.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +2 -2
  117. package/dist/client/{EventCombined.client-BHGEKise.mjs → EventCombined.client-DyN0v0Xk.mjs} +5 -6
  118. package/dist/client/{EventEmbeddedCheckoutStep-Bo1Cm23R.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +2 -2
  119. package/dist/client/{EventListing.client-D5OQgVPr.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
  120. package/dist/client/{LeafletStaticMap-CLL5cWrr.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
  121. package/dist/client/{RichText-BoDmnopf.mjs → RichText-C1fIXBzA.mjs} +45 -32
  122. package/dist/client/{ThemedButton-Ciltp0IK.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
  123. package/dist/client/{accordion-DOkRS64-.mjs → accordion-DCDVWSye.mjs} +1 -1
  124. package/dist/client/{bookingForm-wlMVwo9h.mjs → bookingForm-BJ3C4GlM.mjs} +42 -15
  125. package/dist/client/bookings.mjs +116989 -22191
  126. package/dist/client/{carousel-CGWk-Z0u.mjs → carousel-BSCBhfHY.mjs} +2 -2
  127. package/dist/client/{carousel.client-kX5mN1Eg.mjs → carousel.client-GEtOGsxo.mjs} +1 -1
  128. package/dist/client/{cart-OBBPlaH4.mjs → cart-Yv-aAtck.mjs} +3 -3
  129. package/dist/client/{checkout-Bmw2WjQX.mjs → checkout-B9xDkl30.mjs} +3 -3
  130. package/dist/client/client.mjs +17577 -17361
  131. package/dist/client/{context-BI77UFAn.mjs → context-BOGe3rIA.mjs} +1 -1
  132. package/dist/client/{eventCalendar-qkej2Edn.mjs → eventCalendar-D6M0T9hs.mjs} +8 -9
  133. package/dist/client/{eventCombined-DApKHvat.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
  134. package/dist/client/{eventDetails-BQyUDPH0.mjs → eventDetails-f_FhV4O8.mjs} +3 -3
  135. package/dist/client/{eventListing-CeAnshlZ.mjs → eventListing-WLkfAROh.mjs} +4 -4
  136. package/dist/client/{eventRegistration-C3A3NyBO.mjs → eventRegistration-D3ejfLvW.mjs} +10 -10
  137. package/dist/client/{form-DW8rU7jO.mjs → form-D5Or2Jyu.mjs} +4 -5
  138. package/dist/client/{headerSection-CkIhsoNm.mjs → headerSection-hWgnv27V.mjs} +3 -3
  139. package/dist/client/hooks.mjs +16014 -15751
  140. package/dist/client/{locationMap-D4O8wbli.mjs → locationMap-Di1K0O2S.mjs} +3 -4
  141. package/dist/client/{media-C5K_0xPd.mjs → media-D29-F1u_.mjs} +183 -362
  142. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  143. package/dist/client/{newsletterForm-B7IxSPuz.mjs → newsletterForm-CwxcwTNO.mjs} +4 -4
  144. package/dist/client/{productDetail-Bqxpwy5N.mjs → productDetail-BLSnhPdA.mjs} +3 -3
  145. package/dist/client/{productList-u9Lz8V15.mjs → productList-oGytONOX.mjs} +3 -3
  146. package/dist/client/{propsDecoder-Bf1jucUp.mjs → propsDecoder-lf_dTeZS.mjs} +1467 -125
  147. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  148. package/dist/client/rendering/client.mjs +10855 -10689
  149. package/dist/client/rendering/islands.mjs +20 -23
  150. package/dist/client/rendering.mjs +18411 -18181
  151. package/dist/client/{routeIslandApiConfig-BgP-aPMl.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
  152. package/dist/client/{shop-B_eykR-_.mjs → shop-BQ3bR7fA.mjs} +7 -7
  153. package/dist/client/{shop-commerce-CT0APkFV.mjs → shop-commerce-DDPll6ZC.mjs} +8 -8
  154. package/dist/client/{shop-commerce-store-DcvZxdEK.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
  155. package/dist/client/{shopShared-BVJOiUiJ.mjs → shopShared-BylM9jh1.mjs} +5 -5
  156. package/dist/client/{useDiscountCodeUi-DPmYDunz.mjs → useDiscountCodeUi-B1Puub2v.mjs} +1 -1
  157. package/dist/client/{useEventPagination-8-U55vH5.mjs → useEventPagination-BBhkmQaT.mjs} +6 -7
  158. package/dist/preview-next/before-render.mjs +89 -4
  159. package/dist/preview-next/client/runtime.mjs +3 -3
  160. package/dist/{sdk-runtime-C5jPdSrk.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
  161. package/dist/server/components.mjs +18663 -18510
  162. package/dist/server/config-validation.mjs +450 -215
  163. package/dist/server/config.mjs +450 -215
  164. package/dist/server/data.mjs +15940 -15705
  165. package/dist/server/index.mjs +227 -2
  166. package/dist/server/next.mjs +18643 -18490
  167. package/dist/server/page-converter.mjs +12588 -12477
  168. package/dist/server/prebuild.mjs +1 -1
  169. package/dist/server/rendering/server.mjs +18007 -17855
  170. package/dist/server/rendering.mjs +18677 -18516
  171. package/dist/server/routing.mjs +17747 -17469
  172. package/dist/server/server.mjs +539 -276
  173. package/dist/server/theme-bridge.mjs +154 -37
  174. package/dist/server/theme.mjs +154 -37
  175. package/dist/{spinner-B-ab2rJp.mjs → spinner-BYM-Y81w.mjs} +1 -1
  176. package/package.json +1 -1
  177. package/dist/client/aspectTransforms-D-TnDdq4.mjs +0 -93
  178. package/dist/client/colorStyles-ECDNPE_P.mjs +0 -1253
@@ -0,0 +1,406 @@
1
+ import { z } from 'zod';
2
+ import { type MediaTypeDiscriminant } from './mediaKinds';
3
+ export { mediaIdentifierSchema } from './mediaIdentifierSchema';
4
+ export type { MediaIdentifier } from './identifiers';
5
+ export { mediaTypeDiscriminants, type MediaTypeDiscriminant } from './mediaKinds';
6
+ export declare const mediaPosterSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
+ tag: z.ZodLiteral<"media">;
8
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
9
+ }, z.core.$strict>, z.ZodObject<{
10
+ tag: z.ZodLiteral<"external-src">;
11
+ src: z.ZodString;
12
+ }, z.core.$strict>], "tag">;
13
+ declare const mediaUsageShape: {
14
+ purpose: z.ZodOptional<z.ZodString>;
15
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
16
+ alt: z.ZodOptional<z.ZodString>;
17
+ filename: z.ZodOptional<z.ZodString>;
18
+ width: z.ZodOptional<z.ZodNumber>;
19
+ height: z.ZodOptional<z.ZodNumber>;
20
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
21
+ tag: z.ZodLiteral<"media">;
22
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
23
+ }, z.core.$strict>, z.ZodObject<{
24
+ tag: z.ZodLiteral<"external-src">;
25
+ src: z.ZodString;
26
+ }, z.core.$strict>], "tag">>;
27
+ transform: z.ZodOptional<z.ZodObject<{
28
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
29
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
30
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
31
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
32
+ x: z.ZodNumber;
33
+ y: z.ZodNumber;
34
+ radius: z.ZodOptional<z.ZodNumber>;
35
+ }, z.core.$strip>>>;
36
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
37
+ }, z.core.$strip>>>>>;
38
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
39
+ hotspot: z.ZodOptional<z.ZodObject<{
40
+ x: z.ZodNumber;
41
+ y: z.ZodNumber;
42
+ radius: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>;
44
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
45
+ }, z.core.$strip>>;
46
+ };
47
+ declare const mediaBaseSchema: z.ZodObject<{
48
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
49
+ assetId: z.ZodOptional<z.ZodNever>;
50
+ id: z.ZodOptional<z.ZodNever>;
51
+ src: z.ZodOptional<z.ZodNever>;
52
+ storageBucket: z.ZodOptional<z.ZodNever>;
53
+ storagePath: z.ZodOptional<z.ZodNever>;
54
+ mimeType: z.ZodOptional<z.ZodNever>;
55
+ purpose: z.ZodOptional<z.ZodString>;
56
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
57
+ alt: z.ZodOptional<z.ZodString>;
58
+ filename: z.ZodOptional<z.ZodString>;
59
+ width: z.ZodOptional<z.ZodNumber>;
60
+ height: z.ZodOptional<z.ZodNumber>;
61
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
62
+ tag: z.ZodLiteral<"media">;
63
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
64
+ }, z.core.$strict>, z.ZodObject<{
65
+ tag: z.ZodLiteral<"external-src">;
66
+ src: z.ZodString;
67
+ }, z.core.$strict>], "tag">>;
68
+ transform: z.ZodOptional<z.ZodObject<{
69
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
70
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
71
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
72
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
73
+ x: z.ZodNumber;
74
+ y: z.ZodNumber;
75
+ radius: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>>>;
77
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
78
+ }, z.core.$strip>>>>>;
79
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
80
+ hotspot: z.ZodOptional<z.ZodObject<{
81
+ x: z.ZodNumber;
82
+ y: z.ZodNumber;
83
+ radius: z.ZodOptional<z.ZodNumber>;
84
+ }, z.core.$strip>>;
85
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
86
+ }, z.core.$strip>>;
87
+ }, z.core.$strict>;
88
+ export declare const imageMediaSchema: z.ZodObject<{
89
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
90
+ assetId: z.ZodOptional<z.ZodNever>;
91
+ id: z.ZodOptional<z.ZodNever>;
92
+ src: z.ZodOptional<z.ZodNever>;
93
+ storageBucket: z.ZodOptional<z.ZodNever>;
94
+ storagePath: z.ZodOptional<z.ZodNever>;
95
+ mimeType: z.ZodOptional<z.ZodNever>;
96
+ purpose: z.ZodOptional<z.ZodString>;
97
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
98
+ alt: z.ZodOptional<z.ZodString>;
99
+ filename: z.ZodOptional<z.ZodString>;
100
+ width: z.ZodOptional<z.ZodNumber>;
101
+ height: z.ZodOptional<z.ZodNumber>;
102
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
103
+ tag: z.ZodLiteral<"media">;
104
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
105
+ }, z.core.$strict>, z.ZodObject<{
106
+ tag: z.ZodLiteral<"external-src">;
107
+ src: z.ZodString;
108
+ }, z.core.$strict>], "tag">>;
109
+ transform: z.ZodOptional<z.ZodObject<{
110
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
111
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
112
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
113
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
114
+ x: z.ZodNumber;
115
+ y: z.ZodNumber;
116
+ radius: z.ZodOptional<z.ZodNumber>;
117
+ }, z.core.$strip>>>;
118
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
119
+ }, z.core.$strip>>>>>;
120
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
121
+ hotspot: z.ZodOptional<z.ZodObject<{
122
+ x: z.ZodNumber;
123
+ y: z.ZodNumber;
124
+ radius: z.ZodOptional<z.ZodNumber>;
125
+ }, z.core.$strip>>;
126
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
127
+ }, z.core.$strip>>;
128
+ type: z.ZodLiteral<"image">;
129
+ }, z.core.$strict>;
130
+ export declare const videoMediaSchema: z.ZodObject<{
131
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
132
+ assetId: z.ZodOptional<z.ZodNever>;
133
+ id: z.ZodOptional<z.ZodNever>;
134
+ src: z.ZodOptional<z.ZodNever>;
135
+ storageBucket: z.ZodOptional<z.ZodNever>;
136
+ storagePath: z.ZodOptional<z.ZodNever>;
137
+ mimeType: z.ZodOptional<z.ZodNever>;
138
+ purpose: z.ZodOptional<z.ZodString>;
139
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
140
+ alt: z.ZodOptional<z.ZodString>;
141
+ filename: z.ZodOptional<z.ZodString>;
142
+ width: z.ZodOptional<z.ZodNumber>;
143
+ height: z.ZodOptional<z.ZodNumber>;
144
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
145
+ tag: z.ZodLiteral<"media">;
146
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
147
+ }, z.core.$strict>, z.ZodObject<{
148
+ tag: z.ZodLiteral<"external-src">;
149
+ src: z.ZodString;
150
+ }, z.core.$strict>], "tag">>;
151
+ transform: z.ZodOptional<z.ZodObject<{
152
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
153
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
154
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
155
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
156
+ x: z.ZodNumber;
157
+ y: z.ZodNumber;
158
+ radius: z.ZodOptional<z.ZodNumber>;
159
+ }, z.core.$strip>>>;
160
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
161
+ }, z.core.$strip>>>>>;
162
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
163
+ hotspot: z.ZodOptional<z.ZodObject<{
164
+ x: z.ZodNumber;
165
+ y: z.ZodNumber;
166
+ radius: z.ZodOptional<z.ZodNumber>;
167
+ }, z.core.$strip>>;
168
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
169
+ }, z.core.$strip>>;
170
+ type: z.ZodLiteral<"video">;
171
+ }, z.core.$strict>;
172
+ type ManagedMediaFields = z.infer<typeof mediaBaseSchema>;
173
+ export type MediaOfType<TType extends MediaTypeDiscriminant> = ManagedMediaFields & {
174
+ type: TType;
175
+ };
176
+ export type Media = {
177
+ [TType in MediaTypeDiscriminant]: MediaOfType<TType>;
178
+ }[MediaTypeDiscriminant];
179
+ export declare const mediaSchema: z.ZodType<Media>;
180
+ export declare const persistableMediaSchema: z.ZodType<Media, unknown, z.core.$ZodTypeInternals<Media, unknown>>;
181
+ export declare const externalMediaSchema: z.ZodObject<{
182
+ type: z.ZodEnum<{
183
+ image: "image";
184
+ video: "video";
185
+ audio: "audio";
186
+ document: "document";
187
+ spreadsheet: "spreadsheet";
188
+ archive: "archive";
189
+ }>;
190
+ src: z.ZodString;
191
+ identifier: z.ZodOptional<z.ZodNever>;
192
+ assetId: z.ZodOptional<z.ZodNever>;
193
+ id: z.ZodOptional<z.ZodNever>;
194
+ storageBucket: z.ZodOptional<z.ZodNever>;
195
+ storagePath: z.ZodOptional<z.ZodNever>;
196
+ mimeType: z.ZodOptional<z.ZodNever>;
197
+ purpose: z.ZodOptional<z.ZodString>;
198
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
199
+ alt: z.ZodOptional<z.ZodString>;
200
+ filename: z.ZodOptional<z.ZodString>;
201
+ width: z.ZodOptional<z.ZodNumber>;
202
+ height: z.ZodOptional<z.ZodNumber>;
203
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
204
+ tag: z.ZodLiteral<"media">;
205
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
206
+ }, z.core.$strict>, z.ZodObject<{
207
+ tag: z.ZodLiteral<"external-src">;
208
+ src: z.ZodString;
209
+ }, z.core.$strict>], "tag">>;
210
+ transform: z.ZodOptional<z.ZodObject<{
211
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
212
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
213
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
214
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
215
+ x: z.ZodNumber;
216
+ y: z.ZodNumber;
217
+ radius: z.ZodOptional<z.ZodNumber>;
218
+ }, z.core.$strip>>>;
219
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
220
+ }, z.core.$strip>>>>>;
221
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
222
+ hotspot: z.ZodOptional<z.ZodObject<{
223
+ x: z.ZodNumber;
224
+ y: z.ZodNumber;
225
+ radius: z.ZodOptional<z.ZodNumber>;
226
+ }, z.core.$strip>>;
227
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
228
+ }, z.core.$strip>>;
229
+ }, z.core.$strict>;
230
+ export type PersistableMedia = Media;
231
+ export type ExternalMedia = z.infer<typeof externalMediaSchema>;
232
+ export type MediaPoster = z.infer<typeof mediaPosterSchema>;
233
+ export type MediaUsage = z.infer<z.ZodObject<typeof mediaUsageShape>>;
234
+ export declare const assetMediaSchema: z.ZodObject<{
235
+ type: z.ZodEnum<{
236
+ image: "image";
237
+ video: "video";
238
+ audio: "audio";
239
+ document: "document";
240
+ spreadsheet: "spreadsheet";
241
+ archive: "archive";
242
+ }>;
243
+ asset: z.ZodObject<{
244
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../core/src/index").MediaAssetId, string>>;
245
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
246
+ storageBucket: z.ZodString;
247
+ storagePath: z.ZodString;
248
+ mimeType: z.ZodString;
249
+ filename: z.ZodOptional<z.ZodString>;
250
+ width: z.ZodNullable<z.ZodNumber>;
251
+ height: z.ZodNullable<z.ZodNumber>;
252
+ }, z.core.$strip>;
253
+ identifier: z.ZodOptional<z.ZodNever>;
254
+ assetId: z.ZodOptional<z.ZodNever>;
255
+ id: z.ZodOptional<z.ZodNever>;
256
+ src: z.ZodOptional<z.ZodNever>;
257
+ storageBucket: z.ZodOptional<z.ZodNever>;
258
+ storagePath: z.ZodOptional<z.ZodNever>;
259
+ mimeType: z.ZodOptional<z.ZodNever>;
260
+ purpose: z.ZodOptional<z.ZodString>;
261
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
262
+ alt: z.ZodOptional<z.ZodString>;
263
+ filename: z.ZodOptional<z.ZodString>;
264
+ width: z.ZodOptional<z.ZodNumber>;
265
+ height: z.ZodOptional<z.ZodNumber>;
266
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
267
+ tag: z.ZodLiteral<"media">;
268
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
269
+ }, z.core.$strict>, z.ZodObject<{
270
+ tag: z.ZodLiteral<"external-src">;
271
+ src: z.ZodString;
272
+ }, z.core.$strict>], "tag">>;
273
+ transform: z.ZodOptional<z.ZodObject<{
274
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
275
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
276
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
277
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
278
+ x: z.ZodNumber;
279
+ y: z.ZodNumber;
280
+ radius: z.ZodOptional<z.ZodNumber>;
281
+ }, z.core.$strip>>>;
282
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
283
+ }, z.core.$strip>>>>>;
284
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
285
+ hotspot: z.ZodOptional<z.ZodObject<{
286
+ x: z.ZodNumber;
287
+ y: z.ZodNumber;
288
+ radius: z.ZodOptional<z.ZodNumber>;
289
+ }, z.core.$strip>>;
290
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
291
+ }, z.core.$strip>>;
292
+ }, z.core.$strict>;
293
+ export declare const runtimeMediaSchema: z.ZodUnion<readonly [z.ZodType<Media, unknown, z.core.$ZodTypeInternals<Media, unknown>>, z.ZodObject<{
294
+ type: z.ZodEnum<{
295
+ image: "image";
296
+ video: "video";
297
+ audio: "audio";
298
+ document: "document";
299
+ spreadsheet: "spreadsheet";
300
+ archive: "archive";
301
+ }>;
302
+ src: z.ZodString;
303
+ identifier: z.ZodOptional<z.ZodNever>;
304
+ assetId: z.ZodOptional<z.ZodNever>;
305
+ id: z.ZodOptional<z.ZodNever>;
306
+ storageBucket: z.ZodOptional<z.ZodNever>;
307
+ storagePath: z.ZodOptional<z.ZodNever>;
308
+ mimeType: z.ZodOptional<z.ZodNever>;
309
+ purpose: z.ZodOptional<z.ZodString>;
310
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
311
+ alt: z.ZodOptional<z.ZodString>;
312
+ filename: z.ZodOptional<z.ZodString>;
313
+ width: z.ZodOptional<z.ZodNumber>;
314
+ height: z.ZodOptional<z.ZodNumber>;
315
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
316
+ tag: z.ZodLiteral<"media">;
317
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
318
+ }, z.core.$strict>, z.ZodObject<{
319
+ tag: z.ZodLiteral<"external-src">;
320
+ src: z.ZodString;
321
+ }, z.core.$strict>], "tag">>;
322
+ transform: z.ZodOptional<z.ZodObject<{
323
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
324
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
325
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
326
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
327
+ x: z.ZodNumber;
328
+ y: z.ZodNumber;
329
+ radius: z.ZodOptional<z.ZodNumber>;
330
+ }, z.core.$strip>>>;
331
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
332
+ }, z.core.$strip>>>>>;
333
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
334
+ hotspot: z.ZodOptional<z.ZodObject<{
335
+ x: z.ZodNumber;
336
+ y: z.ZodNumber;
337
+ radius: z.ZodOptional<z.ZodNumber>;
338
+ }, z.core.$strip>>;
339
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
340
+ }, z.core.$strip>>;
341
+ }, z.core.$strict>, z.ZodObject<{
342
+ type: z.ZodEnum<{
343
+ image: "image";
344
+ video: "video";
345
+ audio: "audio";
346
+ document: "document";
347
+ spreadsheet: "spreadsheet";
348
+ archive: "archive";
349
+ }>;
350
+ asset: z.ZodObject<{
351
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../core/src/index").MediaAssetId, string>>;
352
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
353
+ storageBucket: z.ZodString;
354
+ storagePath: z.ZodString;
355
+ mimeType: z.ZodString;
356
+ filename: z.ZodOptional<z.ZodString>;
357
+ width: z.ZodNullable<z.ZodNumber>;
358
+ height: z.ZodNullable<z.ZodNumber>;
359
+ }, z.core.$strip>;
360
+ identifier: z.ZodOptional<z.ZodNever>;
361
+ assetId: z.ZodOptional<z.ZodNever>;
362
+ id: z.ZodOptional<z.ZodNever>;
363
+ src: z.ZodOptional<z.ZodNever>;
364
+ storageBucket: z.ZodOptional<z.ZodNever>;
365
+ storagePath: z.ZodOptional<z.ZodNever>;
366
+ mimeType: z.ZodOptional<z.ZodNever>;
367
+ purpose: z.ZodOptional<z.ZodString>;
368
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
369
+ alt: z.ZodOptional<z.ZodString>;
370
+ filename: z.ZodOptional<z.ZodString>;
371
+ width: z.ZodOptional<z.ZodNumber>;
372
+ height: z.ZodOptional<z.ZodNumber>;
373
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
374
+ tag: z.ZodLiteral<"media">;
375
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
376
+ }, z.core.$strict>, z.ZodObject<{
377
+ tag: z.ZodLiteral<"external-src">;
378
+ src: z.ZodString;
379
+ }, z.core.$strict>], "tag">>;
380
+ transform: z.ZodOptional<z.ZodObject<{
381
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
382
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
383
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
384
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
385
+ x: z.ZodNumber;
386
+ y: z.ZodNumber;
387
+ radius: z.ZodOptional<z.ZodNumber>;
388
+ }, z.core.$strip>>>;
389
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
390
+ }, z.core.$strip>>>>>;
391
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
392
+ hotspot: z.ZodOptional<z.ZodObject<{
393
+ x: z.ZodNumber;
394
+ y: z.ZodNumber;
395
+ radius: z.ZodOptional<z.ZodNumber>;
396
+ }, z.core.$strip>>;
397
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
398
+ }, z.core.$strip>>;
399
+ }, z.core.$strict>]>;
400
+ export type AssetMedia = z.infer<typeof assetMediaSchema>;
401
+ export type RuntimeMedia = z.infer<typeof runtimeMediaSchema>;
402
+ export type RuntimeMediaOfType<TType extends MediaTypeDiscriminant> = MediaOfType<TType> | (ExternalMedia & {
403
+ type: TType;
404
+ }) | (AssetMedia & {
405
+ type: TType;
406
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ /** Strict stored-reference admission delegates the canonical identifier decision. */
3
+ export declare const mediaIdentifierSchema: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
@@ -0,0 +1,2 @@
1
+ export declare const mediaTypeDiscriminants: readonly ["image", "video", "audio", "document", "spreadsheet", "archive"];
2
+ export type MediaTypeDiscriminant = (typeof mediaTypeDiscriminants)[number];
@@ -104,7 +104,19 @@ export type ProductFileDownloadMediaUsageLocation = Readonly<{
104
104
  productId: string;
105
105
  productTitle: string;
106
106
  }>;
107
- export type MediaUsageLocationProjection = PageBlockMediaUsageLocation | EntrySlotBlockMediaUsageLocation | SurfaceSlotBlockMediaUsageLocation | ContentEntryMediaUsageLocation | ProductFileDownloadMediaUsageLocation;
107
+ export type NewsletterTemplateMediaUsageLocation = Readonly<{
108
+ kind: 'newsletterTemplate';
109
+ siteId: string;
110
+ templateId: string;
111
+ templateName: string;
112
+ }>;
113
+ export type NewsletterCampaignMediaUsageLocation = Readonly<{
114
+ kind: 'newsletterCampaign';
115
+ siteId: string;
116
+ campaignId: string;
117
+ campaignName: string;
118
+ }>;
119
+ export type MediaUsageLocationProjection = PageBlockMediaUsageLocation | EntrySlotBlockMediaUsageLocation | SurfaceSlotBlockMediaUsageLocation | ContentEntryMediaUsageLocation | ProductFileDownloadMediaUsageLocation | NewsletterTemplateMediaUsageLocation | NewsletterCampaignMediaUsageLocation;
108
120
  export type MediaUsageCheckItemProjection = Readonly<{
109
121
  assetId: string;
110
122
  filename: string | null;
@@ -8,11 +8,7 @@ export type NormalizeMediaReferencesForWriteCoreOptions = Readonly<{
8
8
  value: unknown;
9
9
  resolveMediaAssetsById: (assetIds: readonly string[]) => Promise<readonly MediaIdentifierResolutionRecord[]>;
10
10
  }>;
11
- /**
12
- * Normalizes CMS media objects to identifier-only persistence. Infrastructure
13
- * concerns stay behind callbacks so this core workflow can run outside the
14
- * dashboard app.
15
- *
16
- * @mutates options.value (and nested objects) in-place.
11
+ /** Projects explicit write candidates; stored reads never use this conversion.
12
+ * @mutates options.value in-place only after classification, lookup and validation succeed.
17
13
  */
18
14
  export declare function normalizeMediaReferencesForWriteCore(options: NormalizeMediaReferencesForWriteCoreOptions): Promise<void>;
@@ -1,36 +1,23 @@
1
- type PortableMediaReferenceSource = 'media-field' | 'rich-text-image';
1
+ import type { MediaIdentifier } from './identifiers';
2
+ import { type ManagedMediaResolution } from './renderableMediaAsset';
2
3
  export type PortableMediaReference = Readonly<{
3
- kind: 'assetId';
4
- assetId: string;
5
- location: string;
6
- source: PortableMediaReferenceSource;
7
- } | {
8
4
  kind: 'identifier';
9
- identifier: string;
5
+ identifier: MediaIdentifier;
10
6
  location: string;
11
- source: PortableMediaReferenceSource;
7
+ source: 'media-field' | 'rich-text-image' | 'media-poster';
12
8
  }>;
13
9
  export type PortableMediaReferenceSummary = Readonly<{
14
10
  references: PortableMediaReference[];
15
- assetIds: string[];
16
- identifiers: string[];
11
+ identifiers: MediaIdentifier[];
17
12
  }>;
18
13
  type PortableMediaLookupAsset = Readonly<{
19
14
  id: string;
20
- identifier?: string | null;
15
+ identifier: MediaIdentifier;
21
16
  }>;
22
17
  type PortableMediaLookup<TAsset extends PortableMediaLookupAsset> = Readonly<{
23
- byId: Map<string, TAsset>;
24
- byIdentifier: Map<string, TAsset>;
25
- }>;
26
- export type PortableMediaResolution<TAsset extends PortableMediaLookupAsset> = Readonly<{
27
- kind: 'resolved';
28
- reference: PortableMediaReference;
29
- asset: TAsset;
30
- } | {
31
- kind: 'missing';
32
- reference: PortableMediaReference;
18
+ byIdentifier: ReadonlyMap<MediaIdentifier, TAsset>;
33
19
  }>;
20
+ export type PortableMediaResolution<TAsset extends PortableMediaLookupAsset> = ManagedMediaResolution<PortableMediaReference, TAsset>;
34
21
  export declare function summarizePortableMediaReferences(references: readonly PortableMediaReference[]): PortableMediaReferenceSummary;
35
22
  export declare function collectPortableMediaReferencesFromContent(content: unknown): PortableMediaReferenceSummary;
36
23
  export declare function buildPortableMediaLookup<TAsset extends PortableMediaLookupAsset>(assets: readonly TAsset[]): PortableMediaLookup<TAsset>;
@@ -1,18 +1,32 @@
1
1
  import type { MediaAssetId } from '../../core/src/index';
2
- export type RenderableMediaAsset = Readonly<{
3
- id: MediaAssetId;
4
- identifier?: string | null;
5
- storageBucket?: string;
6
- storagePath?: string;
7
- width?: number | null;
8
- height?: number | null;
9
- mimeType?: string;
10
- }>;
2
+ import type { MediaIdentifier } from './identifiers';
3
+ import type { RenderableMediaAsset } from './renderableMediaAssetAdmission';
4
+ export type { RenderableMediaAsset } from './renderableMediaAssetAdmission';
11
5
  export type RenderableMediaAssetIndex = Readonly<{
12
- byId: ReadonlyMap<string, RenderableMediaAsset>;
13
- byIdentifier: ReadonlyMap<string, RenderableMediaAsset>;
6
+ byId: ReadonlyMap<MediaAssetId, RenderableMediaAsset>;
7
+ byIdentifier: ReadonlyMap<MediaIdentifier, RenderableMediaAsset>;
14
8
  }>;
15
- export declare function buildRenderableMediaAssetIndex(assets: readonly RenderableMediaAsset[] | undefined): RenderableMediaAssetIndex | undefined;
16
- export declare function attachRenderableMediaAssetFields<TMedia extends Readonly<Record<string, unknown>>>(media: TMedia, asset: RenderableMediaAsset): TMedia & RenderableMediaAsset & Readonly<{
17
- assetId: MediaAssetId;
9
+ /** Shared identifier indexing for admitted site-scoped projections. */
10
+ export declare function buildMediaIdentifierIndex<TAsset extends Readonly<{
11
+ identifier: MediaIdentifier;
12
+ }>>(assets: readonly TAsset[]): ReadonlyMap<MediaIdentifier, TAsset>;
13
+ /** Index already admitted projections, including runtime registration updates. */
14
+ export declare function indexRenderableMediaAssets(assets: readonly RenderableMediaAsset[]): (RenderableMediaAssetIndex & Readonly<{
15
+ assets: readonly RenderableMediaAsset[];
16
+ }>) | undefined;
17
+ export type ManagedMediaResolution<TReference extends Readonly<{
18
+ identifier: MediaIdentifier;
19
+ }>, TAsset = RenderableMediaAsset> = Readonly<{
20
+ kind: 'resolved';
21
+ reference: TReference;
22
+ asset: TAsset;
23
+ }> | Readonly<{
24
+ kind: 'missing';
25
+ reference: TReference;
18
26
  }>;
27
+ /** A portable reference never uses an incidental UUID, URL or storage snapshot for identity. */
28
+ export declare function resolveManagedMediaReference<TReference extends Readonly<{
29
+ identifier: MediaIdentifier;
30
+ }>, TAsset = RenderableMediaAsset>(reference: TReference, index: Readonly<{
31
+ byIdentifier: ReadonlyMap<MediaIdentifier, TAsset>;
32
+ }> | undefined): ManagedMediaResolution<TReference, TAsset>;
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { indexRenderableMediaAssets } from './renderableMediaAsset';
3
+ export declare const renderableMediaAssetSchema: z.ZodObject<{
4
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../core/src/index").MediaAssetId, string>>;
5
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
6
+ storageBucket: z.ZodString;
7
+ storagePath: z.ZodString;
8
+ mimeType: z.ZodString;
9
+ filename: z.ZodOptional<z.ZodString>;
10
+ width: z.ZodNullable<z.ZodNumber>;
11
+ height: z.ZodNullable<z.ZodNumber>;
12
+ }, z.core.$strip>;
13
+ export type RenderableMediaAsset = Readonly<z.infer<typeof renderableMediaAssetSchema>>;
14
+ /** Admission precedes the identifier-only runtime resolution decision. */
15
+ export declare function buildRenderableMediaAssetIndex(assets: readonly unknown[] | undefined): ReturnType<typeof indexRenderableMediaAssets>;
@@ -1,7 +1,10 @@
1
1
  import { type TransformRect } from '../../media-core/src/index';
2
- import type { MediaHotspot, MediaValue } from './types';
2
+ import type { MediaHotspot } from './types';
3
+ import type { EditorMediaState } from './editorMediaState';
3
4
  export type CropDialogProps = {
4
- value: MediaValue | undefined;
5
+ editingSlot: string;
6
+ state: EditorMediaState;
7
+ siteId: string;
5
8
  open: boolean;
6
9
  onOpenChange: (open: boolean) => void;
7
10
  aspect?: number;
@@ -10,4 +13,4 @@ export type CropDialogProps = {
10
13
  mode?: 'dialog' | 'inline';
11
14
  onSubmit: (rect: TransformRect | undefined, hotspot: MediaHotspot | undefined, rotation: 0 | 90 | 180 | 270 | undefined) => void;
12
15
  };
13
- export declare const CropDialog: ({ value, open, onOpenChange, aspect, minSourceWidth, minSourceHeight, mode, onSubmit, }: CropDialogProps) => import("react").JSX.Element | null;
16
+ export declare function CropDialog(props: CropDialogProps): import("react").JSX.Element | null;
@@ -7,6 +7,7 @@ import { type CropDialogProps } from './CropDialog';
7
7
  import { type MediaPickerDialogProps, type MediaPickerPolicy } from './MediaPickerDialog';
8
8
  import type { MediaValue, PersistableMediaValue } from './types';
9
9
  export type MediaEditorProps = {
10
+ editingSlot: string;
10
11
  value: MediaValue | undefined;
11
12
  onChange: (next: PersistableMediaValue | undefined) => void;
12
13
  allowedKinds?: readonly MediaKind[];
@@ -39,5 +40,5 @@ type MediaEditorComponents = {
39
40
  MediaPickerDialog: ComponentType<MediaPickerDialogProps>;
40
41
  CropDialog: ComponentType<CropDialogProps>;
41
42
  };
42
- export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, onMediaPickerOpenChange, mediaPickerDialogMaxWidth, mediaPickerPolicy, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, onUploadComplete, uploadIntent, videoPrepIntent, videoSelectionIntent, components, }: MediaEditorProps) => import("react").JSX.Element;
43
+ export declare const MediaEditor: ({ editingSlot, value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, onMediaPickerOpenChange, mediaPickerDialogMaxWidth, mediaPickerPolicy, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, onUploadComplete, uploadIntent, videoPrepIntent, videoSelectionIntent, components, }: MediaEditorProps) => import("react").JSX.Element;
43
44
  export {};
@@ -1,6 +1,6 @@
1
- import type { MediaValue } from './types';
1
+ import type { EditorMediaState } from './editorMediaState';
2
2
  export type MediaPreviewProps = {
3
- value: MediaValue | undefined;
3
+ state: EditorMediaState;
4
4
  previewAspectRatio?: number;
5
5
  onReplace: () => void;
6
6
  onEditCrop: () => void;
@@ -13,4 +13,4 @@ export type MediaPreviewProps = {
13
13
  previewMaxWidth?: 'xs' | 'sm' | 'md' | 'none';
14
14
  preventUpscale?: boolean;
15
15
  };
16
- export declare const MediaPreview: ({ value, previewAspectRatio, onReplace, onEditCrop, onEditDetails, onRemove, fullWidth, variant, showRemoveAction, showActionOverlay, previewMaxWidth, preventUpscale, }: MediaPreviewProps) => import("react").JSX.Element;
16
+ export declare const MediaPreview: ({ state, previewAspectRatio, onReplace, onEditCrop, onEditDetails, onRemove, fullWidth, variant, showRemoveAction, showActionOverlay, previewMaxWidth, preventUpscale, }: MediaPreviewProps) => import("react").JSX.Element;
@@ -1,10 +1,8 @@
1
+ import { type RenderableMediaAsset } from '../../media-core/src/index';
1
2
  import type { ImageOrientationMode } from '../../media-react/src/index';
2
- import type { MediaValue } from './types';
3
- export type CropEditorSource = {
4
- kind: 'ready';
3
+ export type CropEditorSource = Readonly<{
5
4
  imageUrl: string;
6
5
  orientationMode: ImageOrientationMode;
7
- } | {
8
- kind: 'missingAssetId';
9
- };
10
- export declare function resolveCropEditorSource(value: MediaValue | undefined): CropEditorSource | null;
6
+ }>;
7
+ /** Original asset source: per-use cropping and rotation belong to the cropper. */
8
+ export declare function resolveCropEditorSource(asset: RenderableMediaAsset): CropEditorSource;