@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
@@ -1,4 +1,4 @@
1
- import { vn as createHostedBlockApiConfig } from "./propsDecoder-Bf1jucUp.mjs";
1
+ import { vn as createHostedBlockApiConfig } from "./propsDecoder-lf_dTeZS.mjs";
2
2
  //#region src/rendering/islands/enhancers/routeIslandApiConfig.ts
3
3
  function buildRouteIslandApiConfig({ apiBaseUrl, portalToken, previewToken, siteId, stage, readAuthority }) {
4
4
  if (readAuthority) return createHostedBlockApiConfig({
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import { Lr as assertNever, o as formatCommercePrice, s as formatInterval, t as defineIslandPropsDecoder, xr as getShopSuccessCopy, yi as assertNever$1 } from "./propsDecoder-Bf1jucUp.mjs";
3
- import { t as ThemedButton } from "./ThemedButton-Ciltp0IK.mjs";
2
+ import { Lr as assertNever, ji as assertNever$1, o as formatCommercePrice, s as formatInterval, t as defineIslandPropsDecoder, xr as getShopSuccessCopy } from "./propsDecoder-lf_dTeZS.mjs";
3
+ import { t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
4
4
  import { n as scrollToBlock, t as CheckIcon } from "./CheckIcon-CpyXr-Kg.mjs";
5
5
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-DS92SRVZ.mjs";
6
- import { D as consumeSearchParams, _ as MembershipCardView, a as getDiscountApplyFeedback, b as PassesMembershipsSectionView, d as planDirectShopCheckoutRequest, i as getAppliedDiscountCode, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, t as mountShopBlockIsland, v as PassCardView, y as PassPurchaseUnavailable } from "./shopShared-BVJOiUiJ.mjs";
6
+ import { D as consumeSearchParams, _ as MembershipCardView, a as getDiscountApplyFeedback, b as PassesMembershipsSectionView, d as planDirectShopCheckoutRequest, i as getAppliedDiscountCode, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, t as mountShopBlockIsland, v as PassCardView, y as PassPurchaseUnavailable } from "./shopShared-BylM9jh1.mjs";
7
7
  import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
8
- import { l as readDemoBookingCheckoutReturnEmail, p as DiscountCodeDisclosure, t as BookingConfirmation, u as storeDemoBookingCheckoutReturn } from "./DemoBookingPortalAccess-D3VQ_kLj.mjs";
8
+ import { l as readDemoBookingCheckoutReturnEmail, p as DiscountCodeDisclosure, t as BookingConfirmation, u as storeDemoBookingCheckoutReturn } from "./DemoBookingPortalAccess-ojwbVUmx.mjs";
9
9
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
10
- import { n as TerminalPanel, r as StateIcon, t as useDiscountCodeUi } from "./useDiscountCodeUi-DPmYDunz.mjs";
11
- import { n as useBlockApi } from "./context-BI77UFAn.mjs";
12
- import { t as addPassToCommerceCart } from "./shop-commerce-store-DcvZxdEK.mjs";
10
+ import { n as TerminalPanel, r as StateIcon, t as useDiscountCodeUi } from "./useDiscountCodeUi-B1Puub2v.mjs";
11
+ import { n as useBlockApi } from "./context-BOGe3rIA.mjs";
12
+ import { t as addPassToCommerceCart } from "./shop-commerce-store-DO-e1pTe.mjs";
13
13
  import { t as ModalShell } from "./ModalShell-BXzucfR6.mjs";
14
14
  import React, { useCallback, useEffect, useRef, useState } from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import { Fr as RichTextDocSchema, Hr as reportWorkflowError, Lr as assertNever, Rr as clearWorkflowFeedback, a as buildProductDetailDisplay, d as deriveCommerceCheckoutState, i as buildProductCardDisplay, n as getShopDisplayForItems, o as formatCommercePrice, p as productItemKey, pr as logger, u as buildProductCartItem } from "./propsDecoder-Bf1jucUp.mjs";
3
- import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-Ciltp0IK.mjs";
2
+ import { Fr as RichTextDocSchema, Hr as reportWorkflowError, Lr as assertNever, Rr as clearWorkflowFeedback, a as buildProductDetailDisplay, d as deriveCommerceCheckoutState, i as buildProductCardDisplay, n as getShopDisplayForItems, o as formatCommercePrice, p as productItemKey, pr as logger, u as buildProductCartItem } from "./propsDecoder-lf_dTeZS.mjs";
3
+ import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
4
4
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-ChxwaNtO.mjs";
5
- import { C as ProductGalleryFrameView, E as consumeSearchParam, S as ProductDetailView, T as VariantSelectView, a as getDiscountApplyFeedback, c as aggregateCartDiscountUiState, f as planUnifiedCheckoutRequest, g as CheckoutShellView, h as CartShellView, i as getAppliedDiscountCode, l as checkoutFormForDiscountUiState, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, u as planCartDiscountAvailabilityRequests, w as ProductListSectionView, x as ProductCardView } from "./shopShared-BVJOiUiJ.mjs";
6
- import { l as readDemoBookingCheckoutReturnEmail, n as DemoBookingPortalAccess, p as DiscountCodeDisclosure, u as storeDemoBookingCheckoutReturn } from "./DemoBookingPortalAccess-D3VQ_kLj.mjs";
5
+ import { C as ProductGalleryFrameView, E as consumeSearchParam, S as ProductDetailView, T as VariantSelectView, a as getDiscountApplyFeedback, c as aggregateCartDiscountUiState, f as planUnifiedCheckoutRequest, g as CheckoutShellView, h as CartShellView, i as getAppliedDiscountCode, l as checkoutFormForDiscountUiState, m as useTransientShopAddFeedback, n as useDiscountApply, o as initialDiscountApplyState, p as ShopAddFeedback, r as discountApplyReducer, s as isDiscountApplyInFlight, u as planCartDiscountAvailabilityRequests, w as ProductListSectionView, x as ProductCardView } from "./shopShared-BylM9jh1.mjs";
6
+ import { l as readDemoBookingCheckoutReturnEmail, n as DemoBookingPortalAccess, p as DiscountCodeDisclosure, u as storeDemoBookingCheckoutReturn } from "./DemoBookingPortalAccess-ojwbVUmx.mjs";
7
7
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
8
- import { n as useBlockApi } from "./context-BI77UFAn.mjs";
9
- import { t as RichText } from "./RichText-BoDmnopf.mjs";
10
- import { t as CarouselNodeClient } from "./carousel.client-kX5mN1Eg.mjs";
8
+ import { n as useBlockApi } from "./context-BOGe3rIA.mjs";
9
+ import { t as RichText } from "./RichText-C1fIXBzA.mjs";
10
+ import { t as CarouselNodeClient } from "./carousel.client-GEtOGsxo.mjs";
11
11
  import { t as resolveDedicatedCheckoutPath } from "./checkoutRoute-ClwHwYVA.mjs";
12
- import { n as useCommerceCart } from "./shop-commerce-store-DcvZxdEK.mjs";
12
+ import { n as useCommerceCart } from "./shop-commerce-store-DO-e1pTe.mjs";
13
13
  import * as React$1 from "react";
14
14
  import { useEffect, useState } from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { c as EMPTY_COMMERCE_CART_STATE, f as parseStoredCommerceCartState, l as buildPassCartItem, m as reduceCommerceCart } from "./propsDecoder-Bf1jucUp.mjs";
2
+ import { c as EMPTY_COMMERCE_CART_STATE, f as parseStoredCommerceCartState, l as buildPassCartItem, m as reduceCommerceCart } from "./propsDecoder-lf_dTeZS.mjs";
3
3
  import * as React$1 from "react";
4
4
  //#region ../blocks/src/system/runtime/nodes/shop-commerce-store.ts
5
5
  const EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { N as err, P as ok } from "./colorStyles-ECDNPE_P.mjs";
3
- import { Lr as assertNever } from "./propsDecoder-Bf1jucUp.mjs";
4
- import { c as getAutoAppliedDiscountPreview, o as discountAvailabilityAllowsManualEntry, s as discountAvailabilityHasDiscounts } from "./DemoBookingPortalAccess-D3VQ_kLj.mjs";
2
+ import { _ as err, v as ok } from "./renderableMediaAssetAdmission-CHkXYDC_.mjs";
3
+ import { Lr as assertNever } from "./propsDecoder-lf_dTeZS.mjs";
4
+ import { c as getAutoAppliedDiscountPreview, o as discountAvailabilityAllowsManualEntry, s as discountAvailabilityHasDiscounts } from "./DemoBookingPortalAccess-ojwbVUmx.mjs";
5
5
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
6
- import { t as BlockApiProvider } from "./context-BI77UFAn.mjs";
6
+ import { t as BlockApiProvider } from "./context-BOGe3rIA.mjs";
7
7
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
8
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-BgP-aPMl.mjs";
8
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-Bc_WVPS8.mjs";
9
9
  import * as React$1 from "react";
10
10
  import { useCallback } from "react";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { c as getAutoAppliedDiscountPreview, o as discountAvailabilityAllowsManualEntry, s as discountAvailabilityHasDiscounts } from "./DemoBookingPortalAccess-D3VQ_kLj.mjs";
2
+ import { c as getAutoAppliedDiscountPreview, o as discountAvailabilityAllowsManualEntry, s as discountAvailabilityHasDiscounts } from "./DemoBookingPortalAccess-ojwbVUmx.mjs";
3
3
  import { useEffect, useReducer, useRef } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/shared/components/StateIcon.tsx
@@ -1,11 +1,10 @@
1
1
  "use client";
2
- import { M as hexToRgb, a as isCssColorLiteral, j as relativeLuminance, o as resolveOnColorForThemeToken, s as resolveTokenOrCssColorValue } from "./colorStyles-ECDNPE_P.mjs";
3
- import { An as eventDateOptions, Cn as normalizeCsvString, En as formatEventPrice, Fn as formatEventNextDateFact, In as formatEventTimeRange, Kr as boxBackgroundSchema, Ln as formatTime, Lr as assertNever, Mn as formatDate, Nn as formatEventCompactDateRail, Sn as normalizeCsvIds, an as isSemanticSpacing, ar as getEventAvailabilityStatus, dr as listItemPresentation, fr as listLookSlot, in as SEMANTIC_SPACING_VALUES, jn as eventLocalDateKey, nr as formatEventRemainingPlaces, on as resolveSpacing, qr as normalizeCardRole, sn as asPartialObject, wn as normalizeOptionalId, xn as getEventRuntimeFiltersKey, yn as getBlockApiReadStage } from "./propsDecoder-Bf1jucUp.mjs";
4
- import { t as ImagePresets } from "./media-C5K_0xPd.mjs";
5
- import { n as ThemedButtonLink, r as ClockIcon, t as ThemedButton } from "./ThemedButton-Ciltp0IK.mjs";
6
- import { a as resolveEventLinkProps, i as resolveEventCta, n as resolveCardListSchedule, r as MediaNodeServer, t as CardListContentPart } from "./CardListItem-Dc9XTXhB.mjs";
7
- import { n as useBlockApi } from "./context-BI77UFAn.mjs";
8
- import { t as LeafletStaticMap } from "./LeafletStaticMap-CLL5cWrr.mjs";
2
+ import { $r as relativeLuminance, An as eventDateOptions, Cn as normalizeCsvString, En as formatEventPrice, Fn as formatEventNextDateFact, In as formatEventTimeRange, Kr as boxBackgroundSchema, Ln as formatTime, Lr as assertNever, Mn as formatDate, Nn as formatEventCompactDateRail, Qr as resolveTokenOrCssColorValue, Sn as normalizeCsvIds, Xr as isCssColorLiteral, Zr as resolveOnColorForThemeToken, an as isSemanticSpacing, ar as getEventAvailabilityStatus, dr as listItemPresentation, ei as hexToRgb, fr as listLookSlot, in as SEMANTIC_SPACING_VALUES, jn as eventLocalDateKey, nr as formatEventRemainingPlaces, on as resolveSpacing, sn as asPartialObject, ti as normalizeCardRole, wn as normalizeOptionalId, xn as getEventRuntimeFiltersKey, yn as getBlockApiReadStage } from "./propsDecoder-lf_dTeZS.mjs";
3
+ import { t as ImagePresets } from "./media-D29-F1u_.mjs";
4
+ import { n as ThemedButtonLink, r as ClockIcon, t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
5
+ import { a as resolveEventLinkProps, i as resolveEventCta, n as resolveCardListSchedule, r as MediaNodeServer, t as CardListContentPart } from "./CardListItem-CC_GVmF6.mjs";
6
+ import { n as useBlockApi } from "./context-BOGe3rIA.mjs";
7
+ import { t as LeafletStaticMap } from "./LeafletStaticMap-B0WhRr3j.mjs";
9
8
  import { useCallback, useEffect, useId, useMemo, useReducer, useRef, useState } from "react";
10
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
10
  //#region ../theme-core/src/palette/utils/textColor.ts
@@ -1855,8 +1855,31 @@ const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1855
1855
  }
1856
1856
  });
1857
1857
  //#endregion
1858
+ //#region ../core/src/result.ts
1859
+ function ok(value) {
1860
+ return {
1861
+ ok: true,
1862
+ value
1863
+ };
1864
+ }
1865
+ function err(error) {
1866
+ return {
1867
+ ok: false,
1868
+ error
1869
+ };
1870
+ }
1871
+ //#endregion
1858
1872
  //#region ../core/src/branded.ts
1873
+ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1874
+ function parseUuidBrand(value, unsafeConstructor) {
1875
+ if (typeof value !== "string") return err({ kind: "not_string" });
1876
+ const normalized = value.trim().toLowerCase();
1877
+ if (normalized.length === 0) return err({ kind: "empty_string" });
1878
+ if (!UUID_PATTERN.test(normalized)) return err({ kind: "invalid_uuid" });
1879
+ return ok(unsafeConstructor(normalized));
1880
+ }
1859
1881
  const unsafeAsMediaAssetId = (id) => id;
1882
+ const parseMediaAssetId = (value) => parseUuidBrand(value, unsafeAsMediaAssetId);
1860
1883
  const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
1861
1884
  function availability(transport) {
1862
1885
  return {
@@ -8411,13 +8434,75 @@ const getPreviewSession = cache(async () => {
8411
8434
  return readPreviewSession(await cookies());
8412
8435
  });
8413
8436
  //#endregion
8437
+ //#region ../media-core/src/identifiers.ts
8438
+ function slugifyMediaIdentifier(value) {
8439
+ return value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
8440
+ }
8441
+ function parseMediaIdentifier(value) {
8442
+ if (typeof value !== "string") return err({ kind: "not_string" });
8443
+ const trimmed = value.trim();
8444
+ if (trimmed.length === 0) return err({ kind: "empty_identifier" });
8445
+ const normalized = slugifyMediaIdentifier(trimmed);
8446
+ if (normalized.length === 0) return err({
8447
+ kind: "empty_after_normalization",
8448
+ value
8449
+ });
8450
+ return ok(normalized);
8451
+ }
8452
+ /**
8453
+ * Admits identifiers read from trusted persistence without repairing dirty data in memory.
8454
+ * User input should use parseMediaIdentifier, which intentionally canonicalizes it.
8455
+ */
8456
+ function parseCanonicalMediaIdentifier(value) {
8457
+ if (typeof value !== "string") return err({ kind: "not_string" });
8458
+ const parsed = parseMediaIdentifier(value);
8459
+ if (!parsed.ok) return parsed;
8460
+ if (value !== parsed.value) return err({
8461
+ kind: "non_canonical_identifier",
8462
+ value,
8463
+ canonical: parsed.value
8464
+ });
8465
+ return parsed;
8466
+ }
8467
+ //#endregion
8468
+ //#region ../media-core/src/mediaIdentifierSchema.ts
8469
+ /** Strict stored-reference admission delegates the canonical identifier decision. */
8470
+ const mediaIdentifierSchema = z.string().transform((value, context) => {
8471
+ const parsed = parseCanonicalMediaIdentifier(value);
8472
+ if (parsed.ok) return parsed.value;
8473
+ context.addIssue({
8474
+ code: "custom",
8475
+ message: "Expected a canonical media identifier"
8476
+ });
8477
+ return z.NEVER;
8478
+ });
8479
+ //#endregion
8480
+ //#region ../media-core/src/renderableMediaAssetAdmission.ts
8481
+ const mediaAssetIdSchema = z.string().transform((value, context) => {
8482
+ const parsed = parseMediaAssetId(value);
8483
+ if (parsed.ok) return parsed.value;
8484
+ context.addIssue({
8485
+ code: "custom",
8486
+ message: "Expected a media asset ID"
8487
+ });
8488
+ return z.NEVER;
8489
+ });
8490
+ const nonemptyStorageValue = z.string().refine((value) => value.trim().length > 0);
8491
+ const renderableMediaAssetSchema = z.object({
8492
+ id: mediaAssetIdSchema,
8493
+ identifier: mediaIdentifierSchema,
8494
+ storageBucket: nonemptyStorageValue,
8495
+ storagePath: nonemptyStorageValue,
8496
+ mimeType: nonemptyStorageValue,
8497
+ filename: z.string().optional(),
8498
+ width: z.number().positive().nullable(),
8499
+ height: z.number().positive().nullable()
8500
+ });
8501
+ //#endregion
8414
8502
  //#region src/rendering/mediaAssets.ts
8415
8503
  function toBlocksMediaAssets(assets) {
8416
8504
  if (!assets) return void 0;
8417
- return assets.map((asset) => ({
8418
- ...asset,
8419
- id: unsafeAsMediaAssetId(asset.id)
8420
- }));
8505
+ return assets.map((asset) => renderableMediaAssetSchema.parse(asset));
8421
8506
  }
8422
8507
  //#endregion
8423
8508
  //#region src/rendering/helpers/pageRuntimeSupport.ts
@@ -4,13 +4,13 @@ import React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/preview-next/client/runtime.tsx
6
6
  const LazySdkPreviewMode = React.lazy(async () => {
7
- return { default: (await import("../../SdkPreviewModeRuntime-Dl4GyMc3.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
7
+ return { default: (await import("../../SdkPreviewModeRuntime-DaNqevI1.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
8
8
  });
9
9
  const LazyPreviewShell = React.lazy(async () => {
10
- return { default: (await import("../../sdk-runtime-C5jPdSrk.mjs")).PreviewShell };
10
+ return { default: (await import("../../sdk-runtime-DWCvhJGu.mjs")).PreviewShell };
11
11
  });
12
12
  const LazyPreviewShellLayout = React.lazy(async () => {
13
- return { default: (await import("../../sdk-runtime-C5jPdSrk.mjs")).PreviewShellLayout };
13
+ return { default: (await import("../../sdk-runtime-DWCvhJGu.mjs")).PreviewShellLayout };
14
14
  });
15
15
  function SdkPreviewMode(props) {
16
16
  return /* @__PURE__ */ jsx(React.Suspense, {
@@ -1,4 +1,4 @@
1
1
  "use client";
2
2
  import "./PreviewQueryProvider-AR9eEn7j.mjs";
3
- import { i as PreviewShellLayout, r as PreviewShell } from "./SdkPreviewModeRuntime-Dl4GyMc3.mjs";
3
+ import { i as PreviewShellLayout, r as PreviewShell } from "./SdkPreviewModeRuntime-DaNqevI1.mjs";
4
4
  export { PreviewShell, PreviewShellLayout };