@riverbankcms/sdk 0.151.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.
- package/CHANGELOG.md +52 -0
- package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +10 -9
- package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -3
- package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-ORkVZhfu.mjs} +5 -4
- package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +341 -164
- package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +27124 -39230
- package/dist/ThemedButton-X2UxhW6F.mjs +16525 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
- package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/communications.d.ts +19 -5
- package/dist/_dts/api/src/endpoints.d.ts +7 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/navigation/types.d.ts +7 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -1
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
- package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
- package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
- package/dist/_dts/api/src/siteAssets.d.ts +1 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
- package/dist/_dts/api/src/teamMembers.d.ts +2 -27
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
- package/dist/_dts/blocks/src/definitions.d.ts +1 -1
- package/dist/_dts/blocks/src/index.d.ts +2 -0
- package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
- package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
- package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +212 -804
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
- package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
- package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
- package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
- package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
- package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
- package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +51 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +290 -882
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
- package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
- package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
- package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +2 -0
- package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
- package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
- package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
- package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
- package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
- package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
- package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
- package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
- package/dist/_dts/core/src/branded.d.ts +0 -2
- package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
- package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
- package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
- package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +11 -1
- package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +106 -36
- package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
- package/dist/_dts/editor/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
- package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
- package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
- package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
- package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
- package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
- package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
- package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
- package/dist/_dts/media-core/src/index.d.ts +5 -0
- package/dist/_dts/media-core/src/media.d.ts +406 -0
- package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
- package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
- package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
- package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
- package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
- package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
- package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
- package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
- package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
- package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
- package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
- package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
- package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
- package/dist/_dts/media-editor/src/types.d.ts +1 -1
- package/dist/_dts/media-editor/src/utils.d.ts +0 -1
- package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
- package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
- package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
- package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
- package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
- package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
- package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
- package/dist/_dts/sdk/src/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
- package/dist/_dts/sdk/src/rendering/image.d.ts +14 -4
- package/dist/_dts/sdk/src/rendering/index.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/link.d.ts +5 -0
- package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
- package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
- package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
- package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
- package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
- package/dist/client/BookingMailingListNote-DrchYW1m.mjs +386 -0
- package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-CC_GVmF6.mjs} +5 -5
- package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
- package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +85 -85
- package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-DyN0v0Xk.mjs} +7 -9
- package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +11 -10
- package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
- package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
- package/dist/client/{RichText-LjPCUGGi.mjs → RichText-C1fIXBzA.mjs} +50 -34
- package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
- package/dist/client/{accordion-Qe--SILD.mjs → accordion-DCDVWSye.mjs} +1 -1
- package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-BJ3C4GlM.mjs} +321 -154
- package/dist/client/bookings.mjs +118607 -22429
- package/dist/client/{carousel-h2YjKOS2.mjs → carousel-BSCBhfHY.mjs} +2 -2
- package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-GEtOGsxo.mjs} +46 -41
- package/dist/client/{cart-5NeiigVd.mjs → cart-Yv-aAtck.mjs} +3 -3
- package/dist/client/{checkout-G4UWjOEw.mjs → checkout-B9xDkl30.mjs} +3 -3
- package/dist/client/client.mjs +37511 -33793
- package/dist/client/{context-GK4-AVAh.mjs → context-BOGe3rIA.mjs} +275 -10
- package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-D6M0T9hs.mjs} +18 -17
- package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
- package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-f_FhV4O8.mjs} +3 -4
- package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-WLkfAROh.mjs} +4 -4
- package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-D3ejfLvW.mjs} +2209 -2144
- package/dist/client/{form-Cf0WMtfG.mjs → form-D5Or2Jyu.mjs} +5 -6
- package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-hWgnv27V.mjs} +9 -9
- package/dist/client/hooks.mjs +17278 -16106
- package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-Di1K0O2S.mjs} +3 -4
- package/dist/client/{media-47fcnhzD.mjs → media-D29-F1u_.mjs} +183 -362
- package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
- package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-CwxcwTNO.mjs} +5 -5
- package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-BLSnhPdA.mjs} +3 -3
- package/dist/client/{productList-BKQlWEKE.mjs → productList-oGytONOX.mjs} +3 -3
- package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-lf_dTeZS.mjs} +18659 -14473
- package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
- package/dist/client/rendering/client.mjs +58971 -55722
- package/dist/client/rendering/islands.mjs +20 -23
- package/dist/client/rendering.mjs +41610 -37917
- package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
- package/dist/client/{shop-D7ytcFBC.mjs → shop-BQ3bR7fA.mjs} +16 -14
- package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-DDPll6ZC.mjs} +9 -9
- package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
- package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BylM9jh1.mjs} +5 -5
- package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
- package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-B1Puub2v.mjs} +60 -77
- package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-BBhkmQaT.mjs} +6 -8
- package/dist/preview-next/before-render.mjs +96 -4
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/preview-next/keepAlive.mjs +7 -0
- package/dist/preview-next/middleware.mjs +7 -0
- package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
- package/dist/server/components.mjs +21820 -19902
- package/dist/server/config-validation.mjs +1786 -642
- package/dist/server/config.mjs +1786 -642
- package/dist/server/data.mjs +17220 -16076
- package/dist/server/index.mjs +234 -2
- package/dist/server/next.mjs +22505 -20528
- package/dist/server/page-converter.mjs +7587 -6572
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +20487 -19044
- package/dist/server/rendering.mjs +21844 -19901
- package/dist/server/routing.mjs +19186 -17961
- package/dist/server/server.mjs +1874 -695
- package/dist/server/theme-bridge.mjs +1371 -914
- package/dist/server/theme.mjs +154 -37
- package/dist/{spinner-tSdG9YvG.mjs → spinner-BYM-Y81w.mjs} +1 -1
- package/dist/styles/index.css +1088 -721
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
- package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
- package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
- package/dist/client/colorStyles-DTunOThj.mjs +0 -1316
- package/dist/client/pricing-CMD0kADd.mjs +0 -314
- package/dist/client/result-DRW7JWXz.mjs +0 -30
- package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
- package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
- package/dist/spinner-BL3kW9Uh.mjs +0 -803
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { n as ThemedButtonLink } from "./ThemedButton-DZKjtaDD.mjs";
|
|
1
|
+
import { Yr as textColorStyle, t as defineIslandPropsDecoder } from "./propsDecoder-lf_dTeZS.mjs";
|
|
2
|
+
import { n as ThemedButtonLink } from "./ThemedButton-B7HFqFBg.mjs";
|
|
4
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
5
|
-
import { t as LeafletStaticMap } from "./LeafletStaticMap-
|
|
4
|
+
import { t as LeafletStaticMap } from "./LeafletStaticMap-B0WhRr3j.mjs";
|
|
6
5
|
import "react";
|
|
7
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
7
|
//#region ../core/src/location.ts
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { _ as err, g as unsafeAsStoragePath, h as unsafeAsStorageBucketName, p as unsafeAsMediaAssetId, r as resolveManagedMediaReference, v as ok$1 } from "./renderableMediaAssetAdmission-CHkXYDC_.mjs";
|
|
2
|
+
import { Jr as mergeStyles, Yr as textColorStyle, ci as parseAspectRatioValue, li as resolveMediaTransformForAspect, ni as clsx, qr as backgroundColorStyle, si as isExplicitRectCrop } from "./propsDecoder-lf_dTeZS.mjs";
|
|
3
|
+
import { a as getSupabaseUrl, i as getSiteId, n as getCurrentResolveImageUrlContext, r as getMediaAssetIndex } from "./mediaContext-CwbbimYB.mjs";
|
|
3
4
|
import "react";
|
|
4
5
|
import { jsx } from "react/jsx-runtime";
|
|
5
6
|
//#region ../media-core/src/fileSafety.ts
|
|
@@ -201,45 +202,6 @@ function rotateNormalizedPoint(point, rotation) {
|
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
204
|
//#endregion
|
|
204
|
-
//#region ../media-core/src/renderableMediaAsset.ts
|
|
205
|
-
function buildRenderableMediaAssetIndex(assets) {
|
|
206
|
-
if (!assets || assets.length === 0) return void 0;
|
|
207
|
-
const byId = /* @__PURE__ */ new Map();
|
|
208
|
-
const byIdentifier = /* @__PURE__ */ new Map();
|
|
209
|
-
for (const asset of assets) {
|
|
210
|
-
if (!asset?.id) continue;
|
|
211
|
-
byId.set(asset.id, asset);
|
|
212
|
-
const identifier = typeof asset.identifier === "string" ? asset.identifier.trim() : "";
|
|
213
|
-
if (identifier) byIdentifier.set(identifier, asset);
|
|
214
|
-
}
|
|
215
|
-
return {
|
|
216
|
-
byId,
|
|
217
|
-
byIdentifier
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
function attachRenderableMediaAssetFields(media, asset) {
|
|
221
|
-
return {
|
|
222
|
-
...media,
|
|
223
|
-
assetId: asset.id,
|
|
224
|
-
id: asset.id,
|
|
225
|
-
identifier: mediaIdentifierOrFallback(media.identifier, asset.identifier),
|
|
226
|
-
storageBucket: asset.storageBucket ?? media.storageBucket,
|
|
227
|
-
storagePath: asset.storagePath ?? media.storagePath,
|
|
228
|
-
width: asset.width ?? media.width,
|
|
229
|
-
height: asset.height ?? media.height,
|
|
230
|
-
mimeType: asset.mimeType ?? media.mimeType
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Preserve an explicit per-usage identifier when one exists. Otherwise prefer
|
|
235
|
-
* the canonical asset identifier, while keeping intentionally blank legacy
|
|
236
|
-
* string values from becoming null.
|
|
237
|
-
*/
|
|
238
|
-
function mediaIdentifierOrFallback(current, fallback) {
|
|
239
|
-
if (typeof current === "string" && current.trim().length > 0) return current;
|
|
240
|
-
return fallback ?? (typeof current === "string" ? current : void 0);
|
|
241
|
-
}
|
|
242
|
-
//#endregion
|
|
243
205
|
//#region ../blocks/src/system/media/slotContracts.ts
|
|
244
206
|
const DEFAULT_MIN_SOURCE_WIDTH = 1200;
|
|
245
207
|
const LARGE_MIN_SOURCE_WIDTH = 1400;
|
|
@@ -645,22 +607,9 @@ function resolveMediaSlotContract({ blockKind, fieldPath, values, fieldAspectRat
|
|
|
645
607
|
}
|
|
646
608
|
//#endregion
|
|
647
609
|
//#region ../blocks/src/system/runtime/nodes/media.tsx
|
|
648
|
-
function buildMediaAssetIndex(assets) {
|
|
649
|
-
return buildRenderableMediaAssetIndex(assets);
|
|
650
|
-
}
|
|
651
610
|
const MAX_RENDER_DIMENSION = 4096;
|
|
652
611
|
const MAX_SRCSET_WIDTH = 2560;
|
|
653
612
|
const RELATIVE_IMG_PROXY_BASE_PATH = "/api/img";
|
|
654
|
-
function normalizeSupabaseUrl(value) {
|
|
655
|
-
return value?.replace(/\/$/, "");
|
|
656
|
-
}
|
|
657
|
-
function buildResolveImageUrlContext(input) {
|
|
658
|
-
return {
|
|
659
|
-
supabaseUrl: normalizeSupabaseUrl(input?.supabaseUrl),
|
|
660
|
-
siteId: input?.siteId,
|
|
661
|
-
mediaAssetIndex: input?.mediaAssetIndex ?? buildMediaAssetIndex(input?.mediaAssets)
|
|
662
|
-
};
|
|
663
|
-
}
|
|
664
613
|
function getValidSourceDimension(value) {
|
|
665
614
|
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
|
|
666
615
|
}
|
|
@@ -785,52 +734,55 @@ function warnForMediaUrlResolution(result) {
|
|
|
785
734
|
}
|
|
786
735
|
}
|
|
787
736
|
function resolveMediaStorageUrlResult(value, context, transformOptions) {
|
|
788
|
-
const canonical =
|
|
789
|
-
if (!canonical
|
|
737
|
+
const canonical = resolveRuntimeMedia(value, context ?? void 0);
|
|
738
|
+
if (!canonical) return {
|
|
739
|
+
kind: "missing-storage-path",
|
|
740
|
+
identifier: value.identifier
|
|
741
|
+
};
|
|
742
|
+
return resolveResolvedMediaStorageUrlResult(canonical, context, transformOptions);
|
|
743
|
+
}
|
|
744
|
+
function resolveDirectStoragePathUrl(asset, supabaseUrl, siteId, transformOptions) {
|
|
745
|
+
const bucket = asset.storageBucket ?? "media";
|
|
746
|
+
if (isSiteScopedDirectImageStoragePath(asset.storagePath)) return {
|
|
747
|
+
kind: "resolved",
|
|
748
|
+
url: getDirectImageUrlForSiteScopedPath(supabaseUrl, asset.storagePath, bucket, transformOptions)
|
|
749
|
+
};
|
|
750
|
+
const relativePath = parseRelativeStoragePath(asset.storagePath);
|
|
751
|
+
if (!relativePath.ok) return {
|
|
752
|
+
kind: "invalid-storage-path",
|
|
753
|
+
storagePath: asset.storagePath
|
|
754
|
+
};
|
|
755
|
+
if (!siteId) return {
|
|
756
|
+
kind: "missing-site-context",
|
|
757
|
+
storagePath: asset.storagePath
|
|
758
|
+
};
|
|
759
|
+
return {
|
|
760
|
+
kind: "resolved",
|
|
761
|
+
url: getDirectImageUrlForRelativePath(supabaseUrl, relativePath.value, siteId, bucket, transformOptions)
|
|
762
|
+
};
|
|
763
|
+
}
|
|
764
|
+
function resolveResolvedMediaStorageUrlResult(canonical, context, transformOptions) {
|
|
765
|
+
const storagePath = canonical.storagePath;
|
|
766
|
+
if (!storagePath) return {
|
|
790
767
|
kind: "missing-storage-path",
|
|
791
768
|
assetId: canonical.assetId,
|
|
792
769
|
identifier: canonical.identifier
|
|
793
770
|
};
|
|
794
|
-
const siteId = context?.siteId ?? getSiteId();
|
|
795
|
-
const bucket = canonical.storageBucket ?? "media";
|
|
796
|
-
const siteScopedPath = isSiteScopedDirectImageStoragePath(canonical.storagePath) ? canonical.storagePath : null;
|
|
797
|
-
let supabaseUrl;
|
|
798
771
|
try {
|
|
799
|
-
supabaseUrl = context?.supabaseUrl?.replace(/\/$/, "") ?? getSupabaseUrl();
|
|
772
|
+
const supabaseUrl = context?.supabaseUrl?.replace(/\/$/, "") ?? getSupabaseUrl();
|
|
773
|
+
return resolveDirectStoragePathUrl({
|
|
774
|
+
...canonical,
|
|
775
|
+
storagePath
|
|
776
|
+
}, supabaseUrl, context?.siteId ?? getSiteId(), transformOptions);
|
|
800
777
|
} catch (error) {
|
|
801
778
|
return {
|
|
802
779
|
kind: "missing-supabase-url",
|
|
803
780
|
message: error instanceof Error ? error.message : "Supabase URL is not configured."
|
|
804
781
|
};
|
|
805
782
|
}
|
|
806
|
-
let directUrl;
|
|
807
|
-
if (siteScopedPath) directUrl = getDirectImageUrlForSiteScopedPath(supabaseUrl, siteScopedPath, bucket, transformOptions);
|
|
808
|
-
else {
|
|
809
|
-
const relativePath = parseRelativeStoragePath(canonical.storagePath);
|
|
810
|
-
if (!relativePath.ok) return {
|
|
811
|
-
kind: "invalid-storage-path",
|
|
812
|
-
storagePath: canonical.storagePath
|
|
813
|
-
};
|
|
814
|
-
if (!siteId) return {
|
|
815
|
-
kind: "missing-site-context",
|
|
816
|
-
storagePath: canonical.storagePath
|
|
817
|
-
};
|
|
818
|
-
directUrl = getDirectImageUrlForRelativePath(supabaseUrl, relativePath.value, siteId, bucket, transformOptions);
|
|
819
|
-
}
|
|
820
|
-
debugMediaNodeLog("resolve:direct-supabase", {
|
|
821
|
-
storagePath: canonical.storagePath,
|
|
822
|
-
siteId,
|
|
823
|
-
bucket,
|
|
824
|
-
directUrl,
|
|
825
|
-
transformOptions
|
|
826
|
-
});
|
|
827
|
-
return {
|
|
828
|
-
kind: "resolved",
|
|
829
|
-
url: directUrl
|
|
830
|
-
};
|
|
831
783
|
}
|
|
832
784
|
function getDirectImageUrlForValue(value, options, context) {
|
|
833
|
-
const result =
|
|
785
|
+
const result = resolveResolvedMediaStorageUrlResult(value, context, buildDirectTransformOptions(options));
|
|
834
786
|
return result.kind === "resolved" ? result.url : void 0;
|
|
835
787
|
}
|
|
836
788
|
function resolveStorageImageUrl(value, options, context, transformAspectRatio, resolved) {
|
|
@@ -869,133 +821,6 @@ const ImagePresets = {
|
|
|
869
821
|
resize: "contain"
|
|
870
822
|
}
|
|
871
823
|
};
|
|
872
|
-
/**
|
|
873
|
-
* Server-side: AsyncLocalStorage for request isolation.
|
|
874
|
-
* Prevents race conditions when multiple requests are processed concurrently.
|
|
875
|
-
*
|
|
876
|
-
* Lazy initialization to avoid issues in environments that don't support async_hooks.
|
|
877
|
-
*/
|
|
878
|
-
let _serverStorage = null;
|
|
879
|
-
let _serverStorageChecked = false;
|
|
880
|
-
function getServerStorage() {
|
|
881
|
-
if (typeof window !== "undefined") return null;
|
|
882
|
-
if (_serverStorageChecked) return _serverStorage;
|
|
883
|
-
_serverStorageChecked = true;
|
|
884
|
-
try {
|
|
885
|
-
const globalWithNonWebpackRequire = globalThis;
|
|
886
|
-
const AsyncLocalStorage = (typeof globalWithNonWebpackRequire.__non_webpack_require__ === "function" ? globalWithNonWebpackRequire.__non_webpack_require__ : new Function("id", "return require(id)"))("async_hooks").AsyncLocalStorage;
|
|
887
|
-
if (AsyncLocalStorage) {
|
|
888
|
-
_serverStorage = new AsyncLocalStorage();
|
|
889
|
-
return _serverStorage;
|
|
890
|
-
}
|
|
891
|
-
return null;
|
|
892
|
-
} catch {
|
|
893
|
-
console.warn("[blocks] AsyncLocalStorage not available - using module-level state");
|
|
894
|
-
return null;
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
/**
|
|
898
|
-
* Client-side context storage.
|
|
899
|
-
* Safe because browsers are single-threaded per tab.
|
|
900
|
-
*
|
|
901
|
-
* IMPORTANT: This must be shared across bundles.
|
|
902
|
-
* SDK preview mode can load multiple independently-bundled entrypoints
|
|
903
|
-
* (e.g. `@riverbankcms/sdk/rendering` + `@riverbankcms/sdk/preview-next/client`),
|
|
904
|
-
* which can otherwise each get their own module-scoped singleton.
|
|
905
|
-
*/
|
|
906
|
-
const RB_MEDIA_CONTEXT_KEY = Symbol.for("riverbankcms.blocks.mediaContext");
|
|
907
|
-
function getClientContextStore() {
|
|
908
|
-
const g = globalThis;
|
|
909
|
-
const existing = g[RB_MEDIA_CONTEXT_KEY];
|
|
910
|
-
if (existing && typeof existing === "object") return existing;
|
|
911
|
-
const next = {};
|
|
912
|
-
g[RB_MEDIA_CONTEXT_KEY] = next;
|
|
913
|
-
return next;
|
|
914
|
-
}
|
|
915
|
-
/**
|
|
916
|
-
* Get the current media context.
|
|
917
|
-
* Server-side: Uses AsyncLocalStorage for request isolation.
|
|
918
|
-
* Client-side: Uses module-level state (safe in single-threaded browser).
|
|
919
|
-
*/
|
|
920
|
-
function getMediaContext() {
|
|
921
|
-
const storage = getServerStorage();
|
|
922
|
-
if (storage) return storage.getStore() ?? {};
|
|
923
|
-
return getClientContextStore();
|
|
924
|
-
}
|
|
925
|
-
/**
|
|
926
|
-
* Set the Supabase URL in the current context.
|
|
927
|
-
* @deprecated Use runWithMediaContext instead for request isolation.
|
|
928
|
-
*/
|
|
929
|
-
function setContextSupabaseUrl(url) {
|
|
930
|
-
const normalizedUrl = normalizeSupabaseUrl(url);
|
|
931
|
-
const storage = getServerStorage();
|
|
932
|
-
if (storage) {
|
|
933
|
-
const current = storage.getStore();
|
|
934
|
-
if (current) current.supabaseUrl = normalizedUrl;
|
|
935
|
-
else if (storage.enterWith) {
|
|
936
|
-
const next = { supabaseUrl: normalizedUrl };
|
|
937
|
-
storage.enterWith(next);
|
|
938
|
-
} else getClientContextStore().supabaseUrl = normalizedUrl;
|
|
939
|
-
} else getClientContextStore().supabaseUrl = normalizedUrl;
|
|
940
|
-
}
|
|
941
|
-
/**
|
|
942
|
-
* Set the site ID in the current context.
|
|
943
|
-
* @deprecated Use runWithMediaContext instead for request isolation.
|
|
944
|
-
*/
|
|
945
|
-
function setContextSiteId(siteId) {
|
|
946
|
-
const storage = getServerStorage();
|
|
947
|
-
if (storage) {
|
|
948
|
-
const current = storage.getStore();
|
|
949
|
-
if (current) current.siteId = siteId;
|
|
950
|
-
else if (storage.enterWith) {
|
|
951
|
-
const next = { siteId };
|
|
952
|
-
storage.enterWith(next);
|
|
953
|
-
} else getClientContextStore().siteId = siteId;
|
|
954
|
-
} else getClientContextStore().siteId = siteId;
|
|
955
|
-
}
|
|
956
|
-
function setContextMediaAssetIndex(index) {
|
|
957
|
-
const storage = getServerStorage();
|
|
958
|
-
if (storage) {
|
|
959
|
-
const current = storage.getStore();
|
|
960
|
-
if (current) current.mediaAssetIndex = index;
|
|
961
|
-
else if (storage.enterWith) {
|
|
962
|
-
const next = { mediaAssetIndex: index };
|
|
963
|
-
storage.enterWith(next);
|
|
964
|
-
} else getClientContextStore().mediaAssetIndex = index;
|
|
965
|
-
} else getClientContextStore().mediaAssetIndex = index;
|
|
966
|
-
}
|
|
967
|
-
function setContextResolveImageUrlContext(context) {
|
|
968
|
-
setContextSupabaseUrl(context?.supabaseUrl);
|
|
969
|
-
setContextSiteId(context?.siteId);
|
|
970
|
-
setContextMediaAssetIndex(context?.mediaAssetIndex);
|
|
971
|
-
}
|
|
972
|
-
function getCurrentResolveImageUrlContext() {
|
|
973
|
-
const context = getMediaContext();
|
|
974
|
-
if (!context.supabaseUrl && !context.siteId && !context.mediaAssetIndex) return;
|
|
975
|
-
return {
|
|
976
|
-
supabaseUrl: context.supabaseUrl,
|
|
977
|
-
siteId: context.siteId,
|
|
978
|
-
mediaAssetIndex: context.mediaAssetIndex
|
|
979
|
-
};
|
|
980
|
-
}
|
|
981
|
-
/**
|
|
982
|
-
* Get the Supabase URL for constructing direct storage URLs.
|
|
983
|
-
* Used for serving images directly from Supabase storage CDN.
|
|
984
|
-
*
|
|
985
|
-
* Resolution order:
|
|
986
|
-
* 1. Context URL (set via runWithMediaContext or setContextSupabaseUrl)
|
|
987
|
-
* 2. Environment variable NEXT_PUBLIC_SUPABASE_URL
|
|
988
|
-
*
|
|
989
|
-
* SDK sites receive the URL from the API, so they don't need the env var.
|
|
990
|
-
* Dashboard and frontend apps use the env var.
|
|
991
|
-
*/
|
|
992
|
-
function getSupabaseUrl() {
|
|
993
|
-
const context = getMediaContext();
|
|
994
|
-
if (context.supabaseUrl) return context.supabaseUrl;
|
|
995
|
-
const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
|
|
996
|
-
if (!url) throw new Error("NEXT_PUBLIC_SUPABASE_URL is not configured. Set it to your Supabase project URL (e.g., https://xxx.supabase.co)");
|
|
997
|
-
return url.replace(/\/$/, "");
|
|
998
|
-
}
|
|
999
824
|
function resolveDashboardOrigin(raw) {
|
|
1000
825
|
if (!raw) return void 0;
|
|
1001
826
|
const trimmed = raw.trim();
|
|
@@ -1013,47 +838,41 @@ function getImageProxyBasePath() {
|
|
|
1013
838
|
if (!dashboardOrigin) return RELATIVE_IMG_PROXY_BASE_PATH;
|
|
1014
839
|
return `${dashboardOrigin}${RELATIVE_IMG_PROXY_BASE_PATH}`;
|
|
1015
840
|
}
|
|
1016
|
-
/**
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
*/
|
|
1020
|
-
function getSiteId() {
|
|
1021
|
-
return getMediaContext().siteId;
|
|
1022
|
-
}
|
|
1023
|
-
function getMediaAssetIndex(context) {
|
|
1024
|
-
return context?.mediaAssetIndex ?? getMediaContext().mediaAssetIndex;
|
|
1025
|
-
}
|
|
1026
|
-
function resolveCanonicalMediaAsset(value, context) {
|
|
1027
|
-
const index = getMediaAssetIndex(context);
|
|
1028
|
-
if (!index) return void 0;
|
|
1029
|
-
if (value.assetId) {
|
|
1030
|
-
const hit = index.byId.get(value.assetId);
|
|
1031
|
-
if (hit) return hit;
|
|
1032
|
-
}
|
|
1033
|
-
const identifier = typeof value.identifier === "string" ? value.identifier.trim() : "";
|
|
1034
|
-
if (identifier) {
|
|
1035
|
-
const hit = index.byIdentifier.get(identifier);
|
|
1036
|
-
if (hit) return hit;
|
|
1037
|
-
}
|
|
841
|
+
/** Resolve portable content without exposing runtime metadata as saved values. */
|
|
842
|
+
function resolveMediaWithContext(reference, context) {
|
|
843
|
+
return resolveManagedMediaReference(reference, getMediaAssetIndex(context ?? void 0));
|
|
1038
844
|
}
|
|
1039
|
-
function
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
845
|
+
function sourceFromAsset(value, asset) {
|
|
846
|
+
return {
|
|
847
|
+
type: value.type,
|
|
848
|
+
alt: value.alt,
|
|
849
|
+
filename: value.filename,
|
|
850
|
+
purpose: value.purpose,
|
|
851
|
+
placeholder: value.placeholder,
|
|
852
|
+
transform: value.transform,
|
|
853
|
+
poster: value.poster,
|
|
854
|
+
identifier: asset.identifier,
|
|
855
|
+
assetId: asset.id,
|
|
856
|
+
storageBucket: asset.storageBucket,
|
|
857
|
+
storagePath: asset.storagePath,
|
|
858
|
+
mimeType: asset.mimeType,
|
|
859
|
+
width: asset.width,
|
|
860
|
+
height: asset.height
|
|
861
|
+
};
|
|
862
|
+
}
|
|
863
|
+
function resolveRuntimeMedia(value, context) {
|
|
864
|
+
if ("asset" in value && value.asset) return sourceFromAsset(value, value.asset);
|
|
865
|
+
if ("src" in value && value.src) return value;
|
|
866
|
+
if (!value.identifier) return void 0;
|
|
867
|
+
const resolved = resolveMediaWithContext(value, context);
|
|
868
|
+
return resolved.kind === "resolved" ? sourceFromAsset(resolved.reference, resolved.asset) : void 0;
|
|
1043
869
|
}
|
|
1044
870
|
function resolveVideoPosterUrl(value, context) {
|
|
1045
|
-
if (value.type !== "video") return void 0;
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
case "storage": return resolveMediaStorageUrl({
|
|
1051
|
-
type: "image",
|
|
1052
|
-
assetId: poster.assetId,
|
|
1053
|
-
storageBucket: poster.storageBucket,
|
|
1054
|
-
storagePath: poster.storagePath
|
|
1055
|
-
}, context);
|
|
1056
|
-
}
|
|
871
|
+
if (value.type !== "video" || !value.poster) return void 0;
|
|
872
|
+
return value.poster.tag === "external-src" ? value.poster.src : resolveMediaStorageUrl({
|
|
873
|
+
type: "image",
|
|
874
|
+
identifier: value.poster.identifier
|
|
875
|
+
}, context);
|
|
1057
876
|
}
|
|
1058
877
|
const debugMediaNodeLog = (...args) => {
|
|
1059
878
|
if (typeof window === "undefined") return;
|
|
@@ -1130,7 +949,7 @@ function renderVideo(value, className, style, context, options = {}) {
|
|
|
1130
949
|
});
|
|
1131
950
|
}
|
|
1132
951
|
function resolvePublicMediaUrl(value, context) {
|
|
1133
|
-
return resolveMediaStorageUrl(value, context) ?? value.src;
|
|
952
|
+
return resolveMediaStorageUrl(value, context) ?? ("src" in value ? value.src : void 0);
|
|
1134
953
|
}
|
|
1135
954
|
function renderAudio(value, className, style, context) {
|
|
1136
955
|
if (value.type !== "audio") return null;
|
|
@@ -1145,41 +964,43 @@ function renderAudio(value, className, style, context) {
|
|
|
1145
964
|
"aria-label": value.alt ?? "Audio"
|
|
1146
965
|
});
|
|
1147
966
|
}
|
|
1148
|
-
function
|
|
967
|
+
function usesProxyFraming(source, transform) {
|
|
968
|
+
if (!source?.assetId || !isExplicitCropProxyEnabled()) return false;
|
|
969
|
+
return Boolean(transform.rotation) || isExplicitRectCrop(transform.rect, getValidSourceDimension(source.width), getValidSourceDimension(source.height));
|
|
970
|
+
}
|
|
971
|
+
function rectFramingPatch(source, rect, proxy, style) {
|
|
972
|
+
if (!source || !rect || proxy) return {};
|
|
973
|
+
const patch = buildCssRectStylePatch(source, rect);
|
|
974
|
+
return patch ? applyRectTransform(style, patch) : {};
|
|
975
|
+
}
|
|
976
|
+
function hotspotFramingPatch(transform, proxy, rectPatch, style) {
|
|
977
|
+
if (!transform.hotspot || rectPatch.objectPosition !== void 0) return {};
|
|
978
|
+
const fit = style?.objectFit;
|
|
979
|
+
if (fit && fit !== "cover" && fit !== "contain") return {};
|
|
980
|
+
const point = proxy && transform.rotation ? rotateNormalizedPoint(transform.hotspot, transform.rotation) : transform.hotspot;
|
|
981
|
+
return { objectPosition: `${point.x * 100}% ${point.y * 100}%` };
|
|
982
|
+
}
|
|
983
|
+
function rotationFramingPatch(rotation, proxy, rectPatch, style) {
|
|
984
|
+
if (!rotation || proxy) return {};
|
|
985
|
+
return {
|
|
986
|
+
transform: appendTransform(rectPatch.transform ?? style?.transform, `rotate(${rotation}deg)`),
|
|
987
|
+
transformOrigin: rectPatch.transformOrigin ?? "center"
|
|
988
|
+
};
|
|
989
|
+
}
|
|
990
|
+
/** CSS framing is a pure projection of the resolved source and per-use transform. */
|
|
991
|
+
function deriveMediaFramingStyle(source, transform, proxy, style) {
|
|
992
|
+
if (!transform.rect && !transform.hotspot && !transform.rotation) return style;
|
|
993
|
+
const rectPatch = rectFramingPatch(source, transform.rect, proxy, style);
|
|
994
|
+
return mergeStyles(style, {
|
|
995
|
+
...rectPatch,
|
|
996
|
+
...hotspotFramingPatch(transform, proxy, rectPatch, style),
|
|
997
|
+
...rotationFramingPatch(transform.rotation, proxy, rectPatch, style)
|
|
998
|
+
});
|
|
999
|
+
}
|
|
1000
|
+
function computeMediaTransformStyle(value, style, targetAspectRatio, options, context) {
|
|
1001
|
+
const source = resolveRuntimeMedia(value, context ?? getCurrentResolveImageUrlContext());
|
|
1149
1002
|
const transform = options?.resolvedTransform ?? resolveMediaTransformForAspect(value.transform, targetAspectRatio);
|
|
1150
|
-
|
|
1151
|
-
const hotspot = transform.hotspot;
|
|
1152
|
-
const rotation = transform.rotation;
|
|
1153
|
-
if (!rect && !hotspot && !rotation) return style;
|
|
1154
|
-
const stylePatch = {};
|
|
1155
|
-
const heuristicSuppressCss = Boolean(isExplicitCropProxyEnabled() && value.assetId && (typeof rotation === "number" && rotation !== 0 || isExplicitRectCrop(rect, getValidSourceDimension(value.width), getValidSourceDimension(value.height))));
|
|
1156
|
-
const shouldSuppressCss = options?.isProxy ?? heuristicSuppressCss;
|
|
1157
|
-
if (rect && !shouldSuppressCss) {
|
|
1158
|
-
const rectPatch = buildCssRectStylePatch(value, rect);
|
|
1159
|
-
if (rectPatch) {
|
|
1160
|
-
const mergedRect = applyRectTransform(style, rectPatch);
|
|
1161
|
-
Object.assign(stylePatch, mergedRect);
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
if (hotspot) {
|
|
1165
|
-
const effectiveObjectFit = stylePatch.objectFit ?? style?.objectFit;
|
|
1166
|
-
if ((!effectiveObjectFit || effectiveObjectFit === "cover" || effectiveObjectFit === "contain") && stylePatch.objectPosition === void 0) {
|
|
1167
|
-
const resolved = shouldSuppressCss && rotation ? rotateNormalizedPoint({
|
|
1168
|
-
x: hotspot.x,
|
|
1169
|
-
y: hotspot.y
|
|
1170
|
-
}, rotation) : {
|
|
1171
|
-
x: hotspot.x,
|
|
1172
|
-
y: hotspot.y
|
|
1173
|
-
};
|
|
1174
|
-
stylePatch.objectPosition = `${resolved.x * 100}% ${resolved.y * 100}%`;
|
|
1175
|
-
}
|
|
1176
|
-
}
|
|
1177
|
-
if (rotation && !shouldSuppressCss) {
|
|
1178
|
-
const existingTransform = stylePatch.transform ?? style?.transform;
|
|
1179
|
-
stylePatch.transform = existingTransform ? `${existingTransform} rotate(${rotation}deg)` : `rotate(${rotation}deg)`;
|
|
1180
|
-
if (!stylePatch.transformOrigin) stylePatch.transformOrigin = "center";
|
|
1181
|
-
}
|
|
1182
|
-
return mergeStyles(style, stylePatch);
|
|
1003
|
+
return deriveMediaFramingStyle(source, transform, options?.isProxy ?? usesProxyFraming(source, transform), style);
|
|
1183
1004
|
}
|
|
1184
1005
|
function resolveTargetAspectRatio(size) {
|
|
1185
1006
|
if ("original" in size) return void 0;
|
|
@@ -1212,8 +1033,12 @@ function resolveImageUrlWithContextResult(value, options, context, transformAspe
|
|
|
1212
1033
|
kind: "resolved",
|
|
1213
1034
|
url
|
|
1214
1035
|
};
|
|
1215
|
-
const canonical =
|
|
1216
|
-
if (canonical
|
|
1036
|
+
const canonical = resolveRuntimeMedia(value, context ?? void 0);
|
|
1037
|
+
if (!canonical) return {
|
|
1038
|
+
kind: "missing-image-url",
|
|
1039
|
+
identifier: value.identifier
|
|
1040
|
+
};
|
|
1041
|
+
if (canonical.storagePath) return resolveResolvedMediaStorageUrlResult(canonical, context, buildDirectTransformOptions(options));
|
|
1217
1042
|
return {
|
|
1218
1043
|
kind: "missing-image-url",
|
|
1219
1044
|
assetId: canonical.assetId,
|
|
@@ -1222,7 +1047,11 @@ function resolveImageUrlWithContextResult(value, options, context, transformAspe
|
|
|
1222
1047
|
}
|
|
1223
1048
|
function resolveImageUrlWithContextInternal(value, options, context, transformAspectRatio, resolved) {
|
|
1224
1049
|
if (value.type !== "image") return void 0;
|
|
1225
|
-
const canonical =
|
|
1050
|
+
const canonical = resolveRuntimeMedia(value, context);
|
|
1051
|
+
if (!canonical) return void 0;
|
|
1052
|
+
return resolveImageUrlForSource(canonical, options, context, transformAspectRatio, resolved);
|
|
1053
|
+
}
|
|
1054
|
+
function resolveImageUrlForSource(canonical, options, context, transformAspectRatio, resolved) {
|
|
1226
1055
|
debugMediaNodeLog("resolveImageUrl input", {
|
|
1227
1056
|
assetId: canonical.assetId,
|
|
1228
1057
|
storagePath: canonical.storagePath,
|
|
@@ -1238,86 +1067,78 @@ function resolveImageUrlWithContextInternal(value, options, context, transformAs
|
|
|
1238
1067
|
debugMediaNodeLog("resolve:explicit-src", { src: canonical.src });
|
|
1239
1068
|
return canonical.src;
|
|
1240
1069
|
}
|
|
1241
|
-
const legacyUrl = typeof canonical === "object" && canonical !== null ? Reflect.get(canonical, "url") : void 0;
|
|
1242
|
-
debugMediaNodeLog("resolve:fallback-url", { fallbackUrl: typeof legacyUrl === "string" ? legacyUrl : null });
|
|
1243
|
-
return typeof legacyUrl === "string" ? legacyUrl : void 0;
|
|
1244
1070
|
}
|
|
1245
|
-
function
|
|
1246
|
-
const normalizedContext = context ?? void 0;
|
|
1247
|
-
if (value.type !== "image") return void 0;
|
|
1248
|
-
const canonical = resolveMediaWithCanonicalAsset(value, normalizedContext);
|
|
1249
|
-
const widthCandidates = normalizeWidthCandidates(options.widthCandidates, MAX_SRCSET_WIDTH);
|
|
1250
|
-
if (widthCandidates.length === 0) return void 0;
|
|
1071
|
+
function deriveResponsiveMediaPlan(source, options) {
|
|
1251
1072
|
const targetAspectRatio = getPositiveAspectRatio(options.targetAspectRatio);
|
|
1252
|
-
const
|
|
1253
|
-
const
|
|
1254
|
-
const resolvedTransform = resolveMediaTransformForAspect(canonical.transform, targetAspectRatio);
|
|
1255
|
-
const sourceWidth = getValidSourceDimension(canonical.width);
|
|
1256
|
-
const sourceHeight = getValidSourceDimension(canonical.height);
|
|
1257
|
-
const hasExplicitRectCrop = isExplicitRectCrop(resolvedTransform.rect, sourceWidth, sourceHeight);
|
|
1073
|
+
const transform = resolveTransformResolution(source, targetAspectRatio);
|
|
1074
|
+
const explicitRect = isExplicitRectCrop(transform.resolvedTransform.rect, transform.sourceWidth, transform.sourceHeight);
|
|
1258
1075
|
const coverFactor = resolveCoverFactor({
|
|
1259
|
-
resize,
|
|
1076
|
+
resize: options.resize,
|
|
1260
1077
|
targetAspectRatio,
|
|
1261
|
-
hasExplicitRectCrop,
|
|
1262
|
-
sourceWidth,
|
|
1263
|
-
sourceHeight
|
|
1078
|
+
hasExplicitRectCrop: explicitRect,
|
|
1079
|
+
sourceWidth: transform.sourceWidth,
|
|
1080
|
+
sourceHeight: transform.sourceHeight
|
|
1264
1081
|
});
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
if (srcSetParts.length === 0) return void 0;
|
|
1288
|
-
const fallbackWidth = widthCandidates[Math.min(2, widthCandidates.length - 1)];
|
|
1289
|
-
if (fallbackWidth === void 0) return void 0;
|
|
1290
|
-
const defaultWidth = options.defaultWidth ?? fallbackWidth;
|
|
1291
|
-
const scaledDefaultWidth = coverFactor > 1 ? Math.round(defaultWidth * coverFactor) : defaultWidth;
|
|
1292
|
-
const nearestWidth = widthCandidates.find((candidate) => candidate >= scaledDefaultWidth) ?? widthCandidates[widthCandidates.length - 1];
|
|
1293
|
-
if (nearestWidth === void 0) return void 0;
|
|
1294
|
-
const defaultHeight = shouldProxy && hasExplicitRectCrop ? getHeightForAspect(nearestWidth, targetAspectRatio) : void 0;
|
|
1295
|
-
const effectiveDefaultResize = defaultHeight ? resize : "contain";
|
|
1296
|
-
const src = resolveImageUrlWithContextInternal(canonical, defaultHeight ? {
|
|
1297
|
-
width: nearestWidth,
|
|
1298
|
-
height: defaultHeight,
|
|
1299
|
-
resize: effectiveDefaultResize,
|
|
1300
|
-
quality
|
|
1082
|
+
return {
|
|
1083
|
+
widthCandidates: normalizeWidthCandidates(options.widthCandidates, MAX_SRCSET_WIDTH),
|
|
1084
|
+
sizes: scaledResponsiveSizes(options.sizes, coverFactor),
|
|
1085
|
+
targetAspectRatio,
|
|
1086
|
+
quality: options.quality,
|
|
1087
|
+
resize: options.resize,
|
|
1088
|
+
transform,
|
|
1089
|
+
proxy: usesProxyFraming(source, transform.resolvedTransform),
|
|
1090
|
+
explicitRect,
|
|
1091
|
+
coverFactor
|
|
1092
|
+
};
|
|
1093
|
+
}
|
|
1094
|
+
function scaledResponsiveSizes(sizes, factor) {
|
|
1095
|
+
return sizes && factor > 1 ? scaleSizesAttribute(sizes, factor) : sizes;
|
|
1096
|
+
}
|
|
1097
|
+
function responsiveMediaOptions(width, plan) {
|
|
1098
|
+
const height = plan.proxy && plan.explicitRect ? getHeightForAspect(width, plan.targetAspectRatio) : void 0;
|
|
1099
|
+
return height ? {
|
|
1100
|
+
width,
|
|
1101
|
+
height,
|
|
1102
|
+
resize: plan.resize,
|
|
1103
|
+
quality: plan.quality
|
|
1301
1104
|
} : {
|
|
1302
|
-
width
|
|
1303
|
-
resize: effectiveDefaultResize,
|
|
1304
|
-
quality
|
|
1305
|
-
}, normalizedContext, targetAspectRatio, {
|
|
1306
|
-
resolvedTransform,
|
|
1307
|
-
sourceWidth,
|
|
1308
|
-
sourceHeight
|
|
1309
|
-
});
|
|
1310
|
-
if (!src) return void 0;
|
|
1311
|
-
const fallbackSrc = shouldProxy ? getDirectImageUrlForValue(canonical, {
|
|
1312
|
-
width: nearestWidth,
|
|
1105
|
+
width,
|
|
1313
1106
|
resize: "contain",
|
|
1314
|
-
quality
|
|
1315
|
-
}
|
|
1107
|
+
quality: plan.quality
|
|
1108
|
+
};
|
|
1109
|
+
}
|
|
1110
|
+
function defaultResponsiveWidth(plan, requested) {
|
|
1111
|
+
const fallback = plan.widthCandidates[Math.min(2, plan.widthCandidates.length - 1)];
|
|
1112
|
+
if (fallback === void 0) return void 0;
|
|
1113
|
+
const target = Math.round((requested ?? fallback) * plan.coverFactor);
|
|
1114
|
+
return plan.widthCandidates.find((candidate) => candidate >= target) ?? plan.widthCandidates.at(-1);
|
|
1115
|
+
}
|
|
1116
|
+
function responsiveSourceSet(source, plan, context) {
|
|
1117
|
+
return plan.widthCandidates.flatMap((width) => {
|
|
1118
|
+
const url = resolveImageUrlForSource(source, responsiveMediaOptions(width, plan), context, plan.targetAspectRatio, plan.transform);
|
|
1119
|
+
return url ? [`${url} ${width}w`] : [];
|
|
1120
|
+
}).join(", ");
|
|
1121
|
+
}
|
|
1122
|
+
function resolveImageSourceSetWithContext(value, options, context) {
|
|
1123
|
+
if (value.type !== "image") return void 0;
|
|
1124
|
+
const source = resolveRuntimeMedia(value, context ?? void 0);
|
|
1125
|
+
if (!source) return void 0;
|
|
1126
|
+
const plan = deriveResponsiveMediaPlan(source, options);
|
|
1127
|
+
const width = defaultResponsiveWidth(plan, options.defaultWidth);
|
|
1128
|
+
if (width === void 0) return void 0;
|
|
1129
|
+
const srcSet = responsiveSourceSet(source, plan, context ?? void 0);
|
|
1130
|
+
if (!srcSet) return void 0;
|
|
1131
|
+
const src = resolveImageUrlForSource(source, responsiveMediaOptions(width, plan), context ?? void 0, plan.targetAspectRatio, plan.transform);
|
|
1132
|
+
if (!src) return void 0;
|
|
1316
1133
|
return {
|
|
1317
1134
|
src,
|
|
1318
|
-
srcSet
|
|
1319
|
-
sizes:
|
|
1320
|
-
fallbackSrc
|
|
1135
|
+
srcSet,
|
|
1136
|
+
sizes: plan.sizes,
|
|
1137
|
+
fallbackSrc: plan.proxy ? getDirectImageUrlForValue(source, {
|
|
1138
|
+
width,
|
|
1139
|
+
resize: "contain",
|
|
1140
|
+
quality: plan.quality
|
|
1141
|
+
}, context ?? void 0) : void 0
|
|
1321
1142
|
};
|
|
1322
1143
|
}
|
|
1323
1144
|
function resolveCoverFactor(input) {
|
|
@@ -1420,4 +1241,4 @@ function mediaImageHostProps(props, style) {
|
|
|
1420
1241
|
};
|
|
1421
1242
|
}
|
|
1422
1243
|
//#endregion
|
|
1423
|
-
export {
|
|
1244
|
+
export { renderAudio as a, resolveMediaNodeResponsiveImage as c, mediaImageHostProps as i, MediaPlaceholder as n, renderVideo as o, computeMediaTransformStyle as r, resolveImageUrlWithContext as s, ImagePresets as t };
|