@riverbankcms/sdk 0.84.1 → 0.84.2

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 (51) hide show
  1. package/dist/{PreviewEditorSidebar-X7RLMEI6.mjs → PreviewEditorSidebar-4PH35ZIE.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-CT67N4O3.mjs → PreviewEditorUI-WHMCRJGM.mjs} +11 -6
  3. package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +8 -0
  4. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  5. package/dist/_dts/api/src/index.d.ts +2 -2
  6. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -1
  7. package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +16 -0
  8. package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -2
  9. package/dist/_dts/api/src/sdkContracts.d.ts +3 -0
  10. package/dist/_dts/api/src/types.d.ts +1 -0
  11. package/dist/_dts/api/src/url.d.ts +12 -4
  12. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +2 -0
  13. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +3 -1
  14. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +8 -0
  15. package/dist/_dts/preview-next/src/client/preview/MaintenanceModeBadge.d.ts +3 -2
  16. package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +2 -1
  17. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  18. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
  19. package/dist/_dts/sdk/src/version.d.ts +1 -1
  20. package/dist/{chunk-LBBPD2IW.mjs → chunk-4QNLOTES.mjs} +11 -16
  21. package/dist/{chunk-X5ZCSU6F.mjs → chunk-NFWGLRZZ.mjs} +1 -70
  22. package/dist/{chunk-QRKJDWT7.mjs → chunk-OCGTXHSO.mjs} +8 -7
  23. package/dist/{chunk-3LXFQS7T.mjs → chunk-PYDHOMEO.mjs} +1 -1
  24. package/dist/{chunk-RCTJAZSK.mjs → chunk-WFPYN7KA.mjs} +2 -2
  25. package/dist/{chunk-O62NDCTI.mjs → chunk-ZR2GQK2A.mjs} +6 -37
  26. package/dist/cli/index.mjs +10 -11
  27. package/dist/client/{bookingForm-DYXT6YB6.mjs → bookingForm-36CWQUMV.mjs} +1 -1
  28. package/dist/client/bookings.mjs +1 -4
  29. package/dist/client/{chunk-UHDWIXVR.mjs → chunk-3C2VTPWI.mjs} +3 -2
  30. package/dist/client/{chunk-GFSQNTRW.mjs → chunk-SDIYSQAY.mjs} +0 -4
  31. package/dist/client/client.mjs +12 -16
  32. package/dist/client/{courseRegistration-YBOGURTA.mjs → courseRegistration-TMKU6ABO.mjs} +1 -1
  33. package/dist/client/{eventCalendar-K4QJVCMD.mjs → eventCalendar-G6TI32X6.mjs} +2 -2
  34. package/dist/client/{eventCombined-MTXGMTCZ.mjs → eventCombined-SCKEMNAR.mjs} +2 -2
  35. package/dist/client/{eventDetails-3PC4NL3U.mjs → eventDetails-XPIFXXPK.mjs} +2 -2
  36. package/dist/client/{eventListing-TFJET6DN.mjs → eventListing-7QFMEMGT.mjs} +2 -2
  37. package/dist/client/{eventRegistration-QGPBGJTW.mjs → eventRegistration-TOODSZUI.mjs} +2 -2
  38. package/dist/client/{form-MDKR4FNB.mjs → form-MTCMVCZT.mjs} +1 -1
  39. package/dist/client/{newsletterForm-ZR5UDGBT.mjs → newsletterForm-PCAIPFMA.mjs} +1 -1
  40. package/dist/client/rendering/client.mjs +2 -5
  41. package/dist/client/rendering/islands.mjs +9 -9
  42. package/dist/client/rendering.mjs +2 -5
  43. package/dist/client/spam-protection.mjs +0 -4
  44. package/dist/preview-next/client/runtime.mjs +5 -5
  45. package/dist/{sdk-runtime-7HJYPRWQ.mjs → sdk-runtime-QLOCYKVU.mjs} +6 -6
  46. package/dist/server/index.mjs +10 -11
  47. package/dist/server/next.mjs +10 -11
  48. package/dist/server/prebuild.mjs +1 -1
  49. package/dist/server/server.mjs +10 -11
  50. package/package.json +1 -1
  51. package/dist/SdkPreviewModeRuntime-EIMQ3S2V.mjs +0 -8
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-X5ZCSU6F.mjs';
3
- import { useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, unsafeAsEditorBlockId, Tabs, TabsList, TabsTrigger, Button, X, TabsContent, useEditorUiStore, deriveRouteMetadataPresentation, resolvePageRouteSlug, createManifestValidation, createStoreBackend, ManifestForm, previewAssistantEnabled, Collapsible, CollapsibleTrigger, ChevronRight, CollapsibleContent, ContentFieldsForm, usePreviewDesignCoordinator, useSiteChromeCustomizeOptional, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, isPreviewingChange, createOptimisticActionRunner, syncStyleConfiguratorState, getCuratedSiteStyle, planSiteStylePreviewChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, previewHeaderLayout, previewHeaderStyle, planSiteChromeLookSelection, previewFooterLook, buildSiteChromeLookModels, planSiteChromeFooterLayoutSelection, previewPaletteVariant, previewTypographyPreset, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, clearTypographyFontOverrides, paletteOverridesSchema, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, deriveStyleConfiguratorCapabilities, buildApplySiteStyleSelectionBody, markApplyFailed, selectionSnapshotFromApplySiteStyleSelectionResponse, styleConfiguratorHistoryEntryForPersistedSelection, markApplySaved, unwrapResponse, markApplySaving, findButtonPersonality, findPaletteVariant, findTypographyPreset, getHeaderLayout, getHeaderStyle, getFooterLayout, findFooterLook, cycleSiteChromeLookId, resolveContentTitle, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, cn, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, listEntryPageContentSlots, ContentSpinner, Callout, CalloutDescription, curatedSiteStyles, ChevronLeft, cycleableSiteChromeOptions, requireEntriesForCuratedChoices, buttonPersonalities, typographyPresets, paletteVariants, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, FormRenderer, evaluateTypographyFontSlot, Separator, Surface, ColorPicker, Input } from './chunk-O62NDCTI.mjs';
4
- import { usePreviewAuth, getDashboardUrl } from './chunk-LBBPD2IW.mjs';
2
+ import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-NFWGLRZZ.mjs';
3
+ import { useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, unsafeAsEditorBlockId, Tabs, TabsList, TabsTrigger, Button, X, TabsContent, useEditorUiStore, deriveRouteMetadataPresentation, resolvePageRouteSlug, createManifestValidation, createStoreBackend, ManifestForm, previewAssistantEnabled, Collapsible, CollapsibleTrigger, ChevronRight, CollapsibleContent, ContentFieldsForm, usePreviewDesignCoordinator, useSiteChromeCustomizeOptional, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, isPreviewingChange, createOptimisticActionRunner, syncStyleConfiguratorState, getCuratedSiteStyle, planSiteStylePreviewChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, previewHeaderLayout, previewHeaderStyle, planSiteChromeLookSelection, previewFooterLook, buildSiteChromeLookModels, planSiteChromeFooterLayoutSelection, previewPaletteVariant, previewTypographyPreset, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, clearTypographyFontOverrides, paletteOverridesSchema, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, deriveStyleConfiguratorCapabilities, buildApplySiteStyleSelectionBody, markApplyFailed, selectionSnapshotFromApplySiteStyleSelectionResponse, styleConfiguratorHistoryEntryForPersistedSelection, markApplySaved, unwrapResponse, markApplySaving, findButtonPersonality, findPaletteVariant, findTypographyPreset, getHeaderLayout, getHeaderStyle, getFooterLayout, findFooterLook, cycleSiteChromeLookId, resolveContentTitle, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, cn, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, listEntryPageContentSlots, ContentSpinner, Callout, CalloutDescription, curatedSiteStyles, ChevronLeft, cycleableSiteChromeOptions, requireEntriesForCuratedChoices, buttonPersonalities, typographyPresets, paletteVariants, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, FormRenderer, evaluateTypographyFontSlot, Separator, Surface, ColorPicker, Input } from './chunk-ZR2GQK2A.mjs';
4
+ import { usePreviewAuth, getDashboardUrl } from './chunk-4QNLOTES.mjs';
5
5
  import './chunk-R7POPVJR.mjs';
6
6
  import { useMemo, useRef, useCallback, useEffect, useState, useTransition, useLayoutEffect, useSyncExternalStore, useId } from 'react';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-RCTJAZSK.mjs';
3
- import { useEntryEditorController, useEditorUiStore, useMultiAutosave, usePreviewDesignHistoryOrder, useSiteChromeCustomizeOptional, selectPreviewDesignHistoryDomain, EditorChrome, previewDesignHistoryDomainForCommand, classifyHistoryShortcut, previewAssistantEnabled, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, Pencil, Sparkles, useEditorUiStoreInstance } from './chunk-O62NDCTI.mjs';
4
- import { usePreviewAuth, getDashboardBaseUrl } from './chunk-LBBPD2IW.mjs';
2
+ import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-WFPYN7KA.mjs';
3
+ import { useEntryEditorController, useEditorUiStore, useMultiAutosave, usePreviewDesignHistoryOrder, useSiteChromeCustomizeOptional, selectPreviewDesignHistoryDomain, EditorChrome, previewDesignHistoryDomainForCommand, classifyHistoryShortcut, previewAssistantEnabled, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, Pencil, Sparkles, useEditorUiStoreInstance } from './chunk-ZR2GQK2A.mjs';
4
+ import { usePreviewAuth } from './chunk-4QNLOTES.mjs';
5
5
  import './chunk-R7POPVJR.mjs';
6
6
  import { useState, useMemo, useCallback, useEffect, useTransition } from 'react';
7
7
  import { createPortal } from 'react-dom';
@@ -74,8 +74,12 @@ function PreviewOpenEditorButton() {
74
74
  ) : null
75
75
  ] });
76
76
  }
77
- function MaintenanceModeBadge({ siteId }) {
78
- const dashboardUrl = `${getDashboardBaseUrl()}/dashboard/sites/${siteId}/settings/maintenance`;
77
+ function MaintenanceModeBadge({
78
+ dashboardBaseUrl,
79
+ siteId
80
+ }) {
81
+ if (!dashboardBaseUrl) return null;
82
+ const dashboardUrl = `${dashboardBaseUrl.replace(/\/$/, "")}/dashboard/sites/${siteId}/settings/maintenance`;
79
83
  return /* @__PURE__ */ jsxs(
80
84
  "a",
81
85
  {
@@ -285,6 +289,7 @@ function previewUndoControlsForDomains(domains, context) {
285
289
  };
286
290
  }
287
291
  function PreviewEditorUI({
292
+ dashboardBaseUrl = null,
288
293
  inMaintenanceMode = false,
289
294
  siteId,
290
295
  surfaceId,
@@ -514,7 +519,7 @@ function PreviewEditorUI({
514
519
  isSiteLaunched
515
520
  }
516
521
  ) : null,
517
- inMaintenanceMode && siteId ? /* @__PURE__ */ jsx(MaintenanceModeBadge, { siteId }) : null,
522
+ inMaintenanceMode && siteId ? /* @__PURE__ */ jsx(MaintenanceModeBadge, { dashboardBaseUrl, siteId }) : null,
518
523
  /* @__PURE__ */ jsx(PreviewOpenEditorButton, {})
519
524
  ] }),
520
525
  mobileMenuItems: previewOpenEditorMobileMenuItems,
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ export { SdkPreviewModeRuntime } from './chunk-OCGTXHSO.mjs';
3
+ import './chunk-PYDHOMEO.mjs';
4
+ import './chunk-NFWGLRZZ.mjs';
5
+ import './chunk-WFPYN7KA.mjs';
6
+ import './chunk-ZR2GQK2A.mjs';
7
+ import './chunk-4QNLOTES.mjs';
8
+ import './chunk-R7POPVJR.mjs';
@@ -12,6 +12,8 @@ export type { EventPricingMode } from "../../core/src/index";
12
12
  * contracts while the owning services validate and normalize inputs.
13
13
  */
14
14
  export type BookingCollectionOptionKind = "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
15
+ export declare const DIRECT_CHECKOUT_COLLECTION_OPTION_KINDS: readonly ["upfront", "deferred_manual", "flexible_balance"];
16
+ export type DirectCheckoutCollectionOptionKind = (typeof DIRECT_CHECKOUT_COLLECTION_OPTION_KINDS)[number];
15
17
  export type BookingPaymentArchetype = "event" | "class" | "workshop" | "retreat" | "performance" | "course" | "appointment";
16
18
  export type BookingPaymentOptionsSource = "default" | "custom";
17
19
  export type BookingInstalmentIntervalUnit = "day" | "week" | "month";
@@ -13,7 +13,7 @@ export { createIncrementalJsonAccumulator } from "./incrementalJson";
13
13
  export type { SaveSiteChromeLookSelectionBody, SaveSiteChromeLookSelectionResponse, SiteThemeSelectionsPayload, } from "./siteRuntimeEndpoints";
14
14
  export type { GeneratedIconSetApplyRequest, GeneratedIconSetApplyResponse, GeneratedIconSetCandidate, GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconRenderAsset, GeneratedIconRenderAssetRef, GeneratedIconRenderAssetsRequest, GeneratedIconRenderAssetsResponse, SiteIconStyleGuidePayload, SiteIconStyleGuideResponse, SiteIconStyleStrokeRule, SiteIconStyleGuideUpdateRequest, } from "./siteIcons";
15
15
  export { DEFAULT_LAUNCH_READINESS_INPUT, deriveLaunchReadiness, } from "./launchReadiness";
16
- export { getDashboardBaseUrl, getDashboardUrl, getAbsoluteDashboardUrl, getCmsApiUrl, resolveApiBaseUrl, } from "./url";
16
+ export { getDashboardBaseUrl, getDashboardUrl, getAbsoluteDashboardUrl, getCmsApiUrl, resolveApiBaseUrl, normalizeDashboardOrigin, deriveCmsApiUrlFromDashboardUrl, } from "./url";
17
17
  export { unwrapResponse, ApiEnvelopeError } from "./common/envelope";
18
18
  export { createAuthenticatedApiClient, createInternalAPIClient, createServerAPIClient, createBearerAPIClient, ApiRequestError, } from "./request";
19
19
  export { normalizeCmsApiKey } from "./env";
@@ -36,7 +36,7 @@ export { FLEXIBLE_BALANCE_ADMIN_ACTION_SOURCES } from "./types";
36
36
  export { getEventAttendanceModeLabel, getEventDeliveryModeLabel, getEventTicketTypeAttendanceScopeLabel, } from "./eventAttendanceLabels";
37
37
  export { analyzeSiteBannerBody, decodeSiteBannerSettings, EMPTY_SITE_BANNER_BODY, SITE_BANNER_COOKIE_NAME_PREFIX, SITE_BANNER_MAX_PARAGRAPHS, SITE_BANNER_MAX_TEXT_LENGTH, createSiteBannerRevision, encodeSiteBannerSettings, fromSiteBannerDraft, getSiteBannerCookieName, isSiteBannerEligibleForPath, planSiteBannerRender, resolveSiteBannerAnnouncementRole, resolveSiteBannerShellBehavior, sanitizeSiteBannerBody, siteBannerDraftEquals, siteBannerSettingsInputSchema, siteBannerSettingsSchema, toSiteBannerDraft, validateSiteBannerDraft, } from "./siteBanner";
38
38
  export type { SiteBannerBodyAnalysis, SiteBannerBodyIssue, SiteBannerDraft, SiteBannerDraftValidationIssue, SiteBannerRenderPlan, SiteBannerResolvedCta, } from "./siteBanner";
39
- export type { AiSiteWizardSuggestGoalsRequest, AiSiteWizardSuggestGoalsResponse, AdminDeleteSiteResponse, AdminDeleteUserResponse, AdminOwnedSiteSummary, DashboardConfig, DashboardNavigationConfig, DashboardNavVisibilityConfig, DashboardNavVisibilityConfigWithRoles, DashboardWaitlistEntry, DashboardWaitlistEntryStatus, DashboardWaitlistListResponse, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, BookingCollectionOptionKind, BookingPaymentArchetype, BookingPaymentDefaults, BookingInstalmentIntervalUnit, BookingPaymentOptionsSource, BookingInstalmentPlanConfig, BookingPaymentCollectionOption, BookingPaymentTermsConfig, PublicBookingPaymentTermsAvailability, PublishedBlockBaseline, PublicBookingAppointmentSummary, PublicBookingCustomerSummary, PublicBookingAppointmentStatusResponse, PublicCreateBookingAppointmentResponse, EventPricingMode, EventAttendanceMode, EventCapacityByAttendanceMode, EventDeliveryMode, EventModeCapacity, PublicEventEligibilityTicketTypeRecord, PublicEventTicketTypeAvailability, PublicEventTicketTypeRecord, EventTicketTypeCapacityMode, EventTicketTypeAttendanceScope, EventTicketTypeInput, EventTicketTypeRecord, GoLiveDecision, LaunchReadiness, LaunchRequirement, LaunchRequirementAction, LaunchEmailPackState, LaunchReviewPackState, LaunchAppointmentsPackState, LaunchEventsPackState, LaunchCoursesPackState, LaunchPaymentsPackState, LaunchCustomDomainPackState, AcknowledgeLaunchRequirementRequest, AcknowledgeLaunchRequirementResponse, GoLiveSiteRequest, GoLiveSiteResponse, LaunchRequirementEvidence, LaunchRequirementId, LaunchOverridableRequirementId, LaunchRequirementOverride, LaunchRequirementOverrideDefinition, LaunchRequirementOverrideReason, LaunchRequirementOwner, LaunchRequirementPackId, LaunchRequirementPriority, LaunchRequirementState, OnboardingPreviewStatusResponse, OnboardingPreviewThemeOption, OnboardingPreviewThemesResponse, ResendOnboardingPreviewConfirmationResponse, PublicOnboardingAttemptResponse, PublicOnboardingAttemptProgress, PublicOnboardingAttemptProgressResponse, PublicOnboardingProvisioningStage, PublicOnboardingAttemptRunKickoff, PublicOnboardingAttemptRunResponse, MacadamiaOnboardingCourseSession, MacadamiaOnboardingDraftFirstOffering, MacadamiaOnboardingFirstOffering, MacadamiaOnboardingFirstOfferingDeliveryMode, MacadamiaOnboardingFirstOfferingKind, MacadamiaOnboardingFirstOfferingScheduleMode, MacadamiaOnboardingLogoAnalysis, MacadamiaOnboardingLogoPaletteRecommendation, MacadamiaOnboardingMappedPalette, MacadamiaOnboardingOfferingKind, MacadamiaOnboardingSiteMode, MacadamiaOnboardingStyleMood, MacadamiaOnboardingSurfaceData, MacadamiaOnboardingTeamMode, MacadamiaOnboardingVisualIdentity, MacadamiaOnboardingWeekday, SiteGenerationBookingOfferingKind, SiteAnalyticsCookieBannerCopyOverrides, SiteAnalyticsSettingsPayload, SiteBannerAnnouncementRole, SiteBannerCta, SiteBannerScope, SiteBannerSettingsPayload, SiteBannerTone, StripeConnectRestrictions, SiteLegalJurisdiction, SiteLegalProfilePayload, SensitiveClientRecordsConfirmationKey, SensitiveClientRecordsMode, SensitiveClientRecordsRetentionProfile, SensitiveClientRecordsSettings, SensitiveClientRecordsUpdatePayload, SitePrivacyPolicyCapabilities, SitePrivacyPolicyDocument, SitePrivacySettings, SitePrivacySettingsPayload, SitePrivacySettingsResponse, SiteRuntimePrivacyPolicy, WaitlistDashboardActionResponse, } from "./types";
39
+ export type { AiSiteWizardSuggestGoalsRequest, AiSiteWizardSuggestGoalsResponse, AdminDeleteSiteResponse, AdminDeleteUserResponse, AdminOwnedSiteSummary, DashboardConfig, DashboardNavigationConfig, DashboardNavVisibilityConfig, DashboardNavVisibilityConfigWithRoles, DashboardWaitlistEntry, DashboardWaitlistEntryStatus, DashboardWaitlistListResponse, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, BookingCollectionOptionKind, DirectCheckoutCollectionOptionKind, BookingPaymentArchetype, BookingPaymentDefaults, BookingInstalmentIntervalUnit, BookingPaymentOptionsSource, BookingInstalmentPlanConfig, BookingPaymentCollectionOption, BookingPaymentTermsConfig, PublicBookingPaymentTermsAvailability, PublishedBlockBaseline, PublicBookingAppointmentSummary, PublicBookingCustomerSummary, PublicBookingAppointmentStatusResponse, PublicCreateBookingAppointmentResponse, EventPricingMode, EventAttendanceMode, EventCapacityByAttendanceMode, EventDeliveryMode, EventModeCapacity, PublicEventEligibilityTicketTypeRecord, PublicEventTicketTypeAvailability, PublicEventTicketTypeRecord, EventTicketTypeCapacityMode, EventTicketTypeAttendanceScope, EventTicketTypeInput, EventTicketTypeRecord, GoLiveDecision, LaunchReadiness, LaunchRequirement, LaunchRequirementAction, LaunchEmailPackState, LaunchReviewPackState, LaunchAppointmentsPackState, LaunchEventsPackState, LaunchCoursesPackState, LaunchPaymentsPackState, LaunchCustomDomainPackState, AcknowledgeLaunchRequirementRequest, AcknowledgeLaunchRequirementResponse, GoLiveSiteRequest, GoLiveSiteResponse, LaunchRequirementEvidence, LaunchRequirementId, LaunchOverridableRequirementId, LaunchRequirementOverride, LaunchRequirementOverrideDefinition, LaunchRequirementOverrideReason, LaunchRequirementOwner, LaunchRequirementPackId, LaunchRequirementPriority, LaunchRequirementState, OnboardingPreviewStatusResponse, OnboardingPreviewThemeOption, OnboardingPreviewThemesResponse, ResendOnboardingPreviewConfirmationResponse, PublicOnboardingAttemptResponse, PublicOnboardingAttemptProgress, PublicOnboardingAttemptProgressResponse, PublicOnboardingProvisioningStage, PublicOnboardingAttemptRunKickoff, PublicOnboardingAttemptRunResponse, MacadamiaOnboardingCourseSession, MacadamiaOnboardingDraftFirstOffering, MacadamiaOnboardingFirstOffering, MacadamiaOnboardingFirstOfferingDeliveryMode, MacadamiaOnboardingFirstOfferingKind, MacadamiaOnboardingFirstOfferingScheduleMode, MacadamiaOnboardingLogoAnalysis, MacadamiaOnboardingLogoPaletteRecommendation, MacadamiaOnboardingMappedPalette, MacadamiaOnboardingOfferingKind, MacadamiaOnboardingSiteMode, MacadamiaOnboardingStyleMood, MacadamiaOnboardingSurfaceData, MacadamiaOnboardingTeamMode, MacadamiaOnboardingVisualIdentity, MacadamiaOnboardingWeekday, SiteGenerationBookingOfferingKind, SiteAnalyticsCookieBannerCopyOverrides, SiteAnalyticsSettingsPayload, SiteBannerAnnouncementRole, SiteBannerCta, SiteBannerScope, SiteBannerSettingsPayload, SiteBannerTone, StripeConnectRestrictions, SiteLegalJurisdiction, SiteLegalProfilePayload, SensitiveClientRecordsConfirmationKey, SensitiveClientRecordsMode, SensitiveClientRecordsRetentionProfile, SensitiveClientRecordsSettings, SensitiveClientRecordsUpdatePayload, SitePrivacyPolicyCapabilities, SitePrivacyPolicyDocument, SitePrivacySettings, SitePrivacySettingsPayload, SitePrivacySettingsResponse, SiteRuntimePrivacyPolicy, WaitlistDashboardActionResponse, } from "./types";
40
40
  export { acknowledgeLaunchRequirementRequestSchema, goLiveSiteRequestSchema, LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS, toAcknowledgeLaunchRequirementRequest, } from "./siteOnboarding";
41
41
  export { MANAGED_PRIVACY_POLICY_PATH, DEFAULT_SITE_LEGAL_JURISDICTION, JURISDICTION_LABELS, SENSITIVE_CLIENT_RECORDS_CONFIRMATION_KEYS, SENSITIVE_CLIENT_RECORDS_CONFIRMATION_VERSION, buildManagedPrivacyPolicyDocument, } from "./privacyPolicy";
42
42
  export { analyticsCollect } from "./analytics";
@@ -1,6 +1,6 @@
1
1
  import type { APIEndpoint } from "./apiEndpointTypes";
2
2
  import type { PublicEventPricing } from "../../core/src/index";
3
- import type { BookingPaymentTermsConfig, BookingPricing, EventAttendanceMode, EventDeliveryMode, EventPricingMode, PublicEventEligibilityTicketTypeRecord, PublicEventTicketTypeRecord } from "./bookingConfig";
3
+ import type { BookingPaymentTermsConfig, BookingPricing, DirectCheckoutCollectionOptionKind, EventAttendanceMode, EventDeliveryMode, EventPricingMode, PublicEventEligibilityTicketTypeRecord, PublicEventTicketTypeRecord } from "./bookingConfig";
4
4
  import type { AutoAppliedDiscountPreview } from "./bookingRecords";
5
5
  import type { PublicCourseDetails } from "./courses";
6
6
  import type { PublicTeamMemberBlockItem, PublicTeamMemberSummary } from "./teamMembers";
@@ -779,6 +779,7 @@ export type PublicExperienceAPIEndpoints = {
779
779
  checkoutType?: "event" | "pass_bundle" | "membership_bundle";
780
780
  productId?: string;
781
781
  discountCode?: string;
782
+ collectionOptionKind?: DirectCheckoutCollectionOptionKind;
782
783
  successUrl: string;
783
784
  cancelUrl: string;
784
785
  }, {
@@ -0,0 +1,16 @@
1
+ import type { BookingCollectionOptionKind, BookingPaymentTermsConfig } from './bookingConfig';
2
+ export type SdkEventPaymentTerms = BookingPaymentTermsConfig;
3
+ export type SdkEventPaymentTermsInput = BookingPaymentTermsConfig;
4
+ export type SdkEventSupportedPaymentOptionKind = Exclude<BookingCollectionOptionKind, 'instalment_plan'>;
5
+ export type SdkEventPaymentTermsIssue = Readonly<{
6
+ path: readonly string[];
7
+ message: string;
8
+ }>;
9
+ export type SdkEventPaymentTermsClassification = Readonly<{
10
+ ok: true;
11
+ paymentTerms?: SdkEventPaymentTerms;
12
+ }> | Readonly<{
13
+ ok: false;
14
+ issues: readonly SdkEventPaymentTermsIssue[];
15
+ }>;
16
+ export declare function classifySdkEventPaymentTerms(rawInput: unknown): SdkEventPaymentTermsClassification;
@@ -1,4 +1,5 @@
1
- import type { SdkPullEventSeries, SdkEventUpsertPricingInput, SdkEventUpsertScheduleInput } from './sdkContracts';
1
+ import type { SdkPullEventSeries, SdkEventUpsertPaymentTermsInput, SdkEventUpsertPricingInput, SdkEventUpsertScheduleInput } from './sdkContracts';
2
+ import { type SdkEventPaymentTerms, type SdkEventPaymentTermsIssue } from './sdk-event-payment-terms';
2
3
  import { type SdkEventPricing, type SdkEventPricingIssue } from './sdk-event-pricing';
3
4
  import { type ClassifySdkEventScheduleOptions, type SdkEventCanonicalSchedule, type SdkEventScheduleInput, type SdkEventScheduleIssue } from './sdk-event-schedule';
4
5
  export type SdkEventUpsertBody = Readonly<{
@@ -10,6 +11,7 @@ export type SdkEventUpsertBody = Readonly<{
10
11
  schedule: SdkEventUpsertScheduleInput;
11
12
  capacity?: number | null;
12
13
  pricing?: SdkEventUpsertPricingInput;
14
+ paymentTerms?: SdkEventUpsertPaymentTermsInput;
13
15
  venueRef?: string | null;
14
16
  categoryRef?: string | null;
15
17
  content?: SdkPullEventSeries['content'];
@@ -21,10 +23,12 @@ export type SdkEventUpsertBody = Readonly<{
21
23
  export type ValidatedSdkEventUpsertInput = Omit<SdkEventUpsertBody, 'schedule' | 'pricing'> & Readonly<{
22
24
  schedule: SdkEventCanonicalSchedule;
23
25
  pricing?: SdkEventPricing;
26
+ paymentTerms?: SdkEventPaymentTerms;
24
27
  }>;
25
- export type SdkEventUpsertParseInput = Omit<SdkEventUpsertBody, 'schedule' | 'pricing'> & Readonly<{
28
+ export type SdkEventUpsertParseInput = Omit<SdkEventUpsertBody, 'schedule' | 'pricing' | 'paymentTerms'> & Readonly<{
26
29
  schedule: SdkEventScheduleInput;
27
30
  pricing?: unknown;
31
+ paymentTerms?: unknown;
28
32
  }>;
29
33
  export type SdkEventUpsertValidationIssue = Readonly<{
30
34
  source: 'schedule';
@@ -36,6 +40,11 @@ export type SdkEventUpsertValidationIssue = Readonly<{
36
40
  path: readonly string[];
37
41
  message: string;
38
42
  issue: SdkEventPricingIssue;
43
+ }> | Readonly<{
44
+ source: 'paymentTerms';
45
+ path: readonly string[];
46
+ message: string;
47
+ issue: SdkEventPaymentTermsIssue;
39
48
  }>;
40
49
  export type SdkEventUpsertValidationResult = Readonly<{
41
50
  ok: true;
@@ -1,6 +1,7 @@
1
1
  import type { FieldDefinition, FieldDefinitionInput, SdkCustomBlock, SdkCustomBlockInput, SiteFooterContent, Theme } from '../../blocks/src/index';
2
2
  import type { LinkPayload } from './navigation/types';
3
3
  import type { SdkEventPricing, SdkEventPricingInput } from './sdk-event-pricing';
4
+ import type { SdkEventPaymentTerms, SdkEventPaymentTermsInput } from './sdk-event-payment-terms';
4
5
  /**
5
6
  * SDK Site Configuration Types
6
7
  *
@@ -493,6 +494,7 @@ export interface SdkPullEventSeries {
493
494
  };
494
495
  capacity: number | null;
495
496
  pricing: SdkEventPricing;
497
+ paymentTerms?: SdkEventPaymentTerms;
496
498
  venueRef: string | null;
497
499
  categoryRef: string | null;
498
500
  content: {
@@ -536,6 +538,7 @@ export type SdkEventStartDurationScheduleInput = {
536
538
  };
537
539
  export type SdkEventUpsertScheduleInput = SdkEventCanonicalScheduleInput | SdkEventStartEndScheduleInput | SdkEventStartDurationScheduleInput;
538
540
  export type SdkEventUpsertPricingInput = SdkEventPricingInput;
541
+ export type SdkEventUpsertPaymentTermsInput = SdkEventPaymentTermsInput;
539
542
  export interface SdkPullEventsResponse {
540
543
  events: SdkPullEventSeries[];
541
544
  meta: SdkPullMeta;
@@ -23,6 +23,7 @@ export type * from "./courses";
23
23
  export type * from "./participantMessaging";
24
24
  export type * from "./publicExperienceEndpoints";
25
25
  export type * from "./sdkContracts";
26
+ export type * from "./sdk-event-payment-terms";
26
27
  export type * from "./siteInfrastructure";
27
28
  export type * from "./siteGeneration";
28
29
  export type * from "./siteManagementEndpoints";
@@ -5,6 +5,15 @@
5
5
  * and derive the API URL from the dashboard URL to avoid duplicate env vars.
6
6
  */
7
7
  import { type SurfaceId } from '../../surfaces/src/index';
8
+ /**
9
+ * Normalize a public dashboard URL/env value to an origin.
10
+ *
11
+ * Accepts fully-qualified origins, bare authorities like `localhost:4000`,
12
+ * and accidental `/api` suffixes. Bare local/test authorities default to
13
+ * `http`; other bare authorities default to `https`.
14
+ */
15
+ export declare function normalizeDashboardOrigin(input: string): string;
16
+ export declare function deriveCmsApiUrlFromDashboardUrl(input: string): string;
8
17
  /**
9
18
  * Get the public, user-facing dashboard origin from environment.
10
19
  *
@@ -13,13 +22,13 @@ import { type SurfaceId } from '../../surfaces/src/index';
13
22
  * host that should never appear in emails, redirects, or browser links.
14
23
  *
15
24
  * @returns Dashboard base URL (e.g., 'http://localhost:4000')
16
- * @throws Error if neither NEXT_PUBLIC_DASHBOARD_URL nor NEXT_PUBLIC_CMS_API_URL is configured
25
+ * @throws Error if NEXT_PUBLIC_DASHBOARD_URL is not configured
17
26
  */
18
27
  export declare function getDashboardBaseUrl(): string;
19
28
  /**
20
29
  * Get the CMS API URL by appending /api to the dashboard URL
21
30
  * @returns API base URL (e.g., 'http://localhost:4000/api' or '/api' in browser)
22
- * @throws Error if neither NEXT_PUBLIC_DASHBOARD_URL nor NEXT_PUBLIC_CMS_API_URL is configured (server-side only)
31
+ * @throws Error if neither CMS_API_URL nor NEXT_PUBLIC_DASHBOARD_URL is configured (server-side only)
23
32
  */
24
33
  export declare function getCmsApiUrl(): string;
25
34
  /**
@@ -71,7 +80,6 @@ export declare function getAbsoluteDashboardUrl(path?: string, options?: GetAbso
71
80
  */
72
81
  export declare const getDashboardUrl: typeof getAbsoluteDashboardUrl;
73
82
  /**
74
- * Legacy: Get API URL, supporting old NEXT_PUBLIC_CMS_API_URL env var
75
- * @deprecated Use getCmsApiUrl() instead - this function is maintained for backwards compatibility
83
+ * @deprecated Use getCmsApiUrl() instead - this alias is maintained for backwards compatibility.
76
84
  */
77
85
  export declare function resolveApiBaseUrl(): string;
@@ -4,6 +4,7 @@
4
4
  * Request/response types for all client-side API calls from blocks.
5
5
  */
6
6
  import type { AppointmentResourceId } from "../../../../../core/src/index";
7
+ export type DirectCheckoutCollectionOptionKind = "upfront" | "deferred_manual" | "flexible_balance";
7
8
  /** API key auth for SDK sites (bld_live_sk_*) */
8
9
  export type ApiKeyAuth = {
9
10
  type: "api-key";
@@ -380,6 +381,7 @@ export interface EventCheckoutRequest {
380
381
  productId?: string;
381
382
  /** Optional booking discount code (applies only to Stripe/card flows) */
382
383
  discountCode?: string;
384
+ collectionOptionKind?: DirectCheckoutCollectionOptionKind;
383
385
  successUrl: string;
384
386
  cancelUrl: string;
385
387
  }
@@ -1,6 +1,6 @@
1
1
  import type { PublicEvent, PublicEventTicketType, PublicEventTicketTypeAvailability } from '../../../blocks/events/shared/types';
2
2
  import type { OccurrenceContext } from '../../../blocks/event-registration.shared';
3
- import type { AvailablePass, AvailableMembership, EligibilityEventTicketType } from '../../api/types';
3
+ import type { AvailablePass, AvailableMembership, DirectCheckoutCollectionOptionKind, EligibilityEventTicketType } from '../../api/types';
4
4
  export type { PublicEvent, OccurrenceContext };
5
5
  export type { FormData } from '../../shared';
6
6
  /**
@@ -114,6 +114,8 @@ export type PaymentSelection = {
114
114
  productCurrency?: string;
115
115
  /** Payment interval for memberships (e.g., 'month', 'year') */
116
116
  productInterval?: string;
117
+ /** Direct-payment collection option chosen for this registration. */
118
+ collectionOptionKind?: DirectCheckoutCollectionOptionKind;
117
119
  };
118
120
  /**
119
121
  * State reported by PaymentSelectionStep for parent to render footer actions.
@@ -1,5 +1,13 @@
1
1
  import type { DraftWorkflowStatus } from '../types';
2
2
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';
3
+ /**
4
+ * Autosave hook backed by the shared debounced-latest-save scheduler.
5
+ * New changes made while a save is in flight queue one follow-up save with the
6
+ * latest snapshot instead of blocking the editor or starting parallel writes.
7
+ *
8
+ * Status is stored in the Zustand uiStore instead of local state, allowing
9
+ * components to subscribe granularly via selectors.
10
+ */
3
11
  type AutosaveConfig<TValues, TPayload> = {
4
12
  /** Function to call to save the data */
5
13
  saveFn: (payload: TPayload) => Promise<unknown>;
@@ -1,3 +1,4 @@
1
- export declare function MaintenanceModeBadge({ siteId }: {
1
+ export declare function MaintenanceModeBadge({ dashboardBaseUrl, siteId, }: {
2
+ dashboardBaseUrl: string | null | undefined;
2
3
  siteId: string;
3
- }): import("react").JSX.Element;
4
+ }): import("react").JSX.Element | null;
@@ -2,11 +2,12 @@ import React from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
3
  import { type SurfaceId } from '../../../../surfaces/src/index';
4
4
  type PreviewEditorUIProps = {
5
+ dashboardBaseUrl?: string | null;
5
6
  inMaintenanceMode?: boolean;
6
7
  siteId?: string;
7
8
  surfaceId?: SurfaceId;
8
9
  isSiteLaunched?: boolean;
9
10
  apiClient?: ApiClient;
10
11
  };
11
- export declare function PreviewEditorUI({ inMaintenanceMode, siteId, surfaceId, isSiteLaunched, apiClient, }: PreviewEditorUIProps): React.ReactPortal | null;
12
+ export declare function PreviewEditorUI({ dashboardBaseUrl, inMaintenanceMode, siteId, surfaceId, isSiteLaunched, apiClient, }: PreviewEditorUIProps): React.ReactPortal | null;
12
13
  export {};
@@ -36,7 +36,7 @@ import { CourseSessionConflictError } from './courses';
36
36
  * @returns ManagementClient instance
37
37
  */
38
38
  export declare function createManagementClient(config: ManagementClientConfig): ManagementClient;
39
- export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventScheduleUpsertInput, EventStartDurationSchedule, EventStartEndSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
39
+ export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventScheduleUpsertInput, EventStartDurationSchedule, EventStartEndSchedule, EventPricing, EventPaymentTerms, EventPaymentTermsInput, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
40
40
  export { ManagementApiError, type ManagementApiErrorRequest } from './http';
41
41
  export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
42
42
  export { CourseSessionConflictError };
@@ -6,6 +6,7 @@
6
6
  import type { LinkPayload, NavigationLinkInput } from '../../public-api/contracts';
7
7
  import type { SiteCommandOf } from '../../../../site-commands/src/index';
8
8
  import type { SdkEventPricing, SdkEventPricingInput, SdkEventTicketTypeInput } from '../../../../api/src/sdk-event-pricing';
9
+ import type { SdkEventPaymentTerms, SdkEventPaymentTermsInput } from '../../../../api/src/sdk-event-payment-terms';
9
10
  import type { Theme } from '../../contracts';
10
11
  export interface ManagementClientConfig {
11
12
  /**
@@ -395,6 +396,8 @@ export type EventTicketTypeInput = SdkEventTicketTypeInput;
395
396
  */
396
397
  export type EventPricing = SdkEventPricing;
397
398
  export type EventPricingInput = SdkEventPricingInput;
399
+ export type EventPaymentTerms = SdkEventPaymentTerms;
400
+ export type EventPaymentTermsInput = SdkEventPaymentTermsInput;
398
401
  /**
399
402
  * Event content data (embedded from content_entry).
400
403
  */
@@ -417,6 +420,7 @@ export interface ManagementEventSeries {
417
420
  schedule: EventSchedule;
418
421
  capacity: number | null;
419
422
  pricing: EventPricing;
423
+ paymentTerms?: EventPaymentTerms;
420
424
  /** Venue slug reference */
421
425
  venueRef: string | null;
422
426
  /** Category identifier reference */
@@ -445,6 +449,7 @@ export interface EventSeriesUpsertInput {
445
449
  schedule: EventScheduleUpsertInput;
446
450
  capacity?: number | null;
447
451
  pricing?: EventPricingInput;
452
+ paymentTerms?: EventPaymentTermsInput;
448
453
  /** Venue slug - resolved to venue_id on push */
449
454
  venueRef?: string | null;
450
455
  /** Category identifier - resolved to event_category_id on push */
@@ -739,6 +744,7 @@ export interface PulledEvents {
739
744
  schedule: EventSchedule;
740
745
  capacity: number | null;
741
746
  pricing: EventPricing;
747
+ paymentTerms?: EventPaymentTerms;
742
748
  venueRef: string | null;
743
749
  categoryRef: string | null;
744
750
  content: EventContent;
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.84.1";
11
+ export declare const SDK_VERSION = "0.84.2";
@@ -211,26 +211,26 @@ function looksLikeLocalAuthority(authority) {
211
211
  const normalized = authority.toLowerCase();
212
212
  return normalized === "localhost" || normalized.startsWith("localhost:") || normalized.startsWith("127.") || normalized.startsWith("0.0.0.0") || normalized.includes(".localhost") || normalized.endsWith(".local") || normalized.endsWith(".test");
213
213
  }
214
- function normalizeDashboardUrlBase(input) {
214
+ function normalizeDashboardOrigin(input) {
215
215
  const trimmed = input.trim();
216
216
  if (!trimmed) return "";
217
217
  const withoutTrailingSlash = trimmed.replace(/\/+$/, "");
218
218
  const withoutApiSuffix = withoutTrailingSlash.replace(/\/api\/?$/, "");
219
219
  if (/^https?:\/\//i.test(withoutApiSuffix)) {
220
- return withoutApiSuffix;
220
+ return new URL(withoutApiSuffix).origin;
221
221
  }
222
222
  const authority = withoutApiSuffix.replace(/^\/+/, "");
223
223
  const protocol = looksLikeLocalAuthority(authority) ? "http" : "https";
224
- return `${protocol}://${authority}`;
224
+ return new URL(`${protocol}://${authority}`).origin;
225
+ }
226
+ function deriveCmsApiUrlFromDashboardUrl(input) {
227
+ const origin = normalizeDashboardOrigin(input);
228
+ return origin ? `${origin}/api` : "";
225
229
  }
226
230
  function getDashboardBaseUrl() {
227
231
  const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
228
232
  if (dashboardUrl) {
229
- return normalizeDashboardUrlBase(dashboardUrl);
230
- }
231
- const legacyApiUrl = process.env.NEXT_PUBLIC_CMS_API_URL;
232
- if (legacyApiUrl) {
233
- return legacyApiUrl.replace(/\/$/, "").replace(/\/api$/, "");
233
+ return normalizeDashboardOrigin(dashboardUrl);
234
234
  }
235
235
  throw new Error(
236
236
  "NEXT_PUBLIC_DASHBOARD_URL is not configured. Set it to your dashboard URL (e.g., http://localhost:4000)"
@@ -246,15 +246,10 @@ function getCmsApiUrl() {
246
246
  }
247
247
  const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
248
248
  if (dashboardUrl) {
249
- const base = normalizeDashboardUrlBase(dashboardUrl);
250
- return `${base}/api`;
251
- }
252
- const legacyApiUrl = process.env.NEXT_PUBLIC_CMS_API_URL;
253
- if (legacyApiUrl) {
254
- return legacyApiUrl.replace(/\/$/, "");
249
+ return deriveCmsApiUrlFromDashboardUrl(dashboardUrl);
255
250
  }
256
251
  throw new Error(
257
- "NEXT_PUBLIC_DASHBOARD_URL is not configured. Set it to your dashboard URL (e.g., http://localhost:4000)"
252
+ "CMS_API_URL or NEXT_PUBLIC_DASHBOARD_URL is not configured. Set NEXT_PUBLIC_DASHBOARD_URL to your dashboard URL (e.g., http://localhost:4000)"
258
253
  );
259
254
  }
260
255
  function getAbsoluteDashboardUrl(path, options) {
@@ -7028,4 +7023,4 @@ function createBearerAPIClient(token, baseUrl) {
7028
7023
  return createCMSClient(authHeaders, baseUrl);
7029
7024
  }
7030
7025
 
7031
- export { API_ENDPOINTS, ApiRequestError, DEFAULT_SURFACE_ID, SURFACE_DOCUMENT_DATA_ATTRIBUTE, SURFACE_IDS, createBearerAPIClient, getDashboardBaseUrl, getDashboardUrl, initPreviewAuth, isPreviewRuntimeSessionEditable, markPreviewAuthExpired, resolveSurfaceDocumentAttributes, usePreviewAuth, usePreviewAuthFetch, usePreviewToken };
7026
+ export { API_ENDPOINTS, ApiRequestError, DEFAULT_SURFACE_ID, SURFACE_DOCUMENT_DATA_ATTRIBUTE, SURFACE_IDS, createBearerAPIClient, getDashboardUrl, initPreviewAuth, isPreviewRuntimeSessionEditable, markPreviewAuthExpired, resolveSurfaceDocumentAttributes, usePreviewAuth, usePreviewAuthFetch, usePreviewToken };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { KeyboardCode, getBlockDefinition, CSS, useSdkConfig, unwrapResponse, parseSiteIconStyleGuideVersionId, parseBlockIconValue, listBlockDescriptors, useSensor, PointerSensor, useSensors, createEditorRemoveBlockCommand, unsafeAsEditorBlockId, DndContext, closestCenter, Button, Plus, useDroppable, useDraggable, useCombinedRefs, isKeyboardEvent, createCustomBlockRegistry, Card, cn, Collapsible, CollapsibleContent, listContentTypes, mergeBlockDescriptorsWithRegistry, createEditorReorderBlocksCommand, mutateBlockContent, deleteEntrySlotBlock, deleteBlock, useDndContext, useUniqueId, useIsomorphicLayoutEffect, EmptyState, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Search, getClientRect, resolveBlockTitle, CardHeader, GripVertical, ChevronRight, CardTitle, ArrowUp, ArrowDown, DropdownMenu, DropdownMenuTrigger, EllipsisVertical, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuItem, Copy, Trash2, DialogFooter, DialogClose, CardContent, createEntrySlotBlock, createBlock, createEditorInsertBlockCommand, reorderEntrySlotBlocks, reorderBlocks, LoaderCircle, ChevronDown, getFeatureCardIconCompletion, toFeatureCardIconSuggestionInputs, getBlockIconSemanticFallbackId, suggestSemanticIconForFeatureCard, getGeneratedBlockIconStyleState, assertNever, createManifestFormAdapter, getModalConfig, createStoreBackend, validateBlockManifestIssues, isNonEmptyValue, Settings, ScrollableDialogContent, FormRenderer, Tabs, TabsList, TabsTrigger, TabsContent, RotateCcw, ImagePlus, Sparkles, Textarea, Callout, CalloutDescription, normalEditorCuratedPromotedFieldPaths, resolveVisiblePromotedFieldPathsForEditorBlock, CalloutTitle, unfinishedBlockCopy, recoveryConflictCopy, ManifestForm, unsafeAsEditorBlockValues, Box, mergeManifestWithSdkOptions, augmentManifestWithStyleGroups, suggestFeatureCardSemanticIcons, applyFeatureCardIconSuggestions, createFeatureCardIconKey, lucide_react_exports, isThemeV2NormalEditorRawStylePath, getFieldIntent, isHeaderField, isThemeV2NormalEditorRawStyleFieldName, BackgroundGradientField, BackgroundColorField, useField, FieldFrame, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, useMediaEditorOptional, useRichTextEditor, RichTextEditorSurface, ThemeScope, isObjectRecord, EMPTY_DOC, useAsyncPickerOptions, resolvePickerSelectionLabel, shouldShowPickerSearch, normalizePickerSearchThreshold, Combobox, Badge, useBlockContext, resolveMediaSlotContract, asRecord, parseAspectRatioValue, MediaEditor, PUBLIC_FILE_FIELD_KINDS, useBackendWatch, resolveIconPickerPreset, isIconPickerPreset, getIconPickerOptionsForPreset, isKnownIconName, getIconComponent, isOfferingsPreviewSourceKey, EyeOff, CommandMultiSelect, expectParsedBrandedId, parseSiteId, buildThemeRuntime, SdkConfigProvider, PaletteProvider, MediaEditorProvider, useEditorUiStoreInstance, useUISelector, getRichTextImagePositionFromTarget, insertOrReplaceRichTextImage, emitMediaCropDebug, Pencil, resolveVideoSelectionIntentForMediaField, resolveOfferingsPreviewGroupOrderEntries, normalizeOfferingsPreviewGroupOrder, inferLegacyOfferingsPreviewGroupOrder, siteOptionSources, evaluateVisibility, Root2, List, Trigger, Content, Input, Check, Label, isInternalResolvedLinkValue, resolveImageUrlWithContext, useMediaEditor, MediaPickerMini, MediaPickerDialog, toRoutableLinkPayload, classifyKnownMimeType, getDirectImageUrlForMediaAsset, isSvgMimeType } from './chunk-O62NDCTI.mjs';
2
+ import { KeyboardCode, getBlockDefinition, CSS, useSdkConfig, unwrapResponse, parseSiteIconStyleGuideVersionId, parseBlockIconValue, listBlockDescriptors, useSensor, PointerSensor, useSensors, createEditorRemoveBlockCommand, unsafeAsEditorBlockId, DndContext, closestCenter, Button, Plus, useDroppable, useDraggable, useCombinedRefs, isKeyboardEvent, createCustomBlockRegistry, Card, cn, Collapsible, CollapsibleContent, listContentTypes, mergeBlockDescriptorsWithRegistry, createEditorReorderBlocksCommand, mutateBlockContent, deleteEntrySlotBlock, deleteBlock, useDndContext, useUniqueId, useIsomorphicLayoutEffect, EmptyState, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Search, getClientRect, resolveBlockTitle, CardHeader, GripVertical, ChevronRight, CardTitle, ArrowUp, ArrowDown, DropdownMenu, DropdownMenuTrigger, EllipsisVertical, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuItem, Copy, Trash2, DialogFooter, DialogClose, CardContent, createEntrySlotBlock, createBlock, createEditorInsertBlockCommand, reorderEntrySlotBlocks, reorderBlocks, LoaderCircle, ChevronDown, getFeatureCardIconCompletion, toFeatureCardIconSuggestionInputs, getBlockIconSemanticFallbackId, suggestSemanticIconForFeatureCard, getGeneratedBlockIconStyleState, assertNever, createManifestFormAdapter, getModalConfig, createStoreBackend, validateBlockManifestIssues, isNonEmptyValue, Settings, ScrollableDialogContent, FormRenderer, Tabs, TabsList, TabsTrigger, TabsContent, RotateCcw, ImagePlus, Sparkles, Textarea, Callout, CalloutDescription, normalEditorCuratedPromotedFieldPaths, resolveVisiblePromotedFieldPathsForEditorBlock, CalloutTitle, unfinishedBlockCopy, recoveryConflictCopy, ManifestForm, unsafeAsEditorBlockValues, Box, mergeManifestWithSdkOptions, augmentManifestWithStyleGroups, suggestFeatureCardSemanticIcons, applyFeatureCardIconSuggestions, createFeatureCardIconKey, lucide_react_exports, isThemeV2NormalEditorRawStylePath, getFieldIntent, isHeaderField, isThemeV2NormalEditorRawStyleFieldName, BackgroundGradientField, BackgroundColorField, useField, FieldFrame, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, useMediaEditorOptional, useRichTextEditor, RichTextEditorSurface, ThemeScope, isObjectRecord, EMPTY_DOC, useAsyncPickerOptions, resolvePickerSelectionLabel, shouldShowPickerSearch, normalizePickerSearchThreshold, Combobox, Badge, useBlockContext, resolveMediaSlotContract, asRecord, parseAspectRatioValue, MediaEditor, PUBLIC_FILE_FIELD_KINDS, useBackendWatch, resolveIconPickerPreset, isIconPickerPreset, getIconPickerOptionsForPreset, isKnownIconName, getIconComponent, isOfferingsPreviewSourceKey, EyeOff, CommandMultiSelect, expectParsedBrandedId, parseSiteId, buildThemeRuntime, SdkConfigProvider, PaletteProvider, MediaEditorProvider, useEditorUiStoreInstance, useUISelector, getRichTextImagePositionFromTarget, insertOrReplaceRichTextImage, emitMediaCropDebug, Pencil, resolveVideoSelectionIntentForMediaField, resolveOfferingsPreviewGroupOrderEntries, normalizeOfferingsPreviewGroupOrder, inferLegacyOfferingsPreviewGroupOrder, siteOptionSources, evaluateVisibility, Root2, List, Trigger, Content, Input, Check, Label, isInternalResolvedLinkValue, resolveImageUrlWithContext, useMediaEditor, MediaPickerMini, MediaPickerDialog, toRoutableLinkPayload, classifyKnownMimeType, getDirectImageUrlForMediaAsset, isSvgMimeType } from './chunk-ZR2GQK2A.mjs';
3
3
  import React, { createContext, memo, useMemo, useState, useRef, useEffect, forwardRef, useCallback, useImperativeHandle, useContext, useSyncExternalStore, useLayoutEffect, Fragment as Fragment$1, useReducer } from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
 
@@ -4647,21 +4647,6 @@ function getUnresolvedRichTextImageWarnings(value) {
4647
4647
  walk(value);
4648
4648
  return { count, identifiers: Array.from(identifiers) };
4649
4649
  }
4650
- var DEBUG_RICHTEXT_FOCUS = process.env.NEXT_PUBLIC_DEBUG_RICHTEXT_FOCUS === "1";
4651
- var nextInstanceId = 1;
4652
- function describeActiveElement() {
4653
- if (typeof document === "undefined") return null;
4654
- const el = document.activeElement;
4655
- if (!el) return null;
4656
- return {
4657
- tag: el.tagName,
4658
- id: el.id || null,
4659
- role: el.getAttribute("role"),
4660
- className: typeof el.className === "string" ? el.className : null,
4661
- isProseMirror: el.classList?.contains("ProseMirror") ?? false,
4662
- withinProseMirror: Boolean(el.closest?.(".ProseMirror"))
4663
- };
4664
- }
4665
4650
  function isRichTextVariant(value) {
4666
4651
  return value === "full" || value === "inline" || value === "limited" || value === "media" || value === "notes";
4667
4652
  }
@@ -4677,10 +4662,6 @@ function RichTextField({
4677
4662
  backend,
4678
4663
  config
4679
4664
  }) {
4680
- const instanceIdRef = useRef(null);
4681
- if (instanceIdRef.current == null) {
4682
- instanceIdRef.current = nextInstanceId++;
4683
- }
4684
4665
  const { theme, onPickImage } = useRichTextWidgetContext();
4685
4666
  const { siteId, adapters, initialItems } = useLinkWidgetContext();
4686
4667
  const mediaEditor = useMediaEditorOptional();
@@ -4709,56 +4690,6 @@ function RichTextField({
4709
4690
  setLinkItems(normalized);
4710
4691
  return normalized;
4711
4692
  }, [adapters, siteId]);
4712
- if (DEBUG_RICHTEXT_FOCUS) {
4713
- console.log("[RichTextField] render", {
4714
- instanceId: instanceIdRef.current,
4715
- path,
4716
- variant,
4717
- hasEditor: Boolean(editor),
4718
- active: describeActiveElement()
4719
- });
4720
- }
4721
- useEffect(() => {
4722
- if (!DEBUG_RICHTEXT_FOCUS) return;
4723
- console.log("[RichTextField] mount", { instanceId: instanceIdRef.current, path });
4724
- return () => {
4725
- console.log("[RichTextField] unmount", { instanceId: instanceIdRef.current, path });
4726
- };
4727
- }, [path]);
4728
- useEffect(() => {
4729
- if (!DEBUG_RICHTEXT_FOCUS) return;
4730
- console.log("[RichTextField] editor instance changed", {
4731
- instanceId: instanceIdRef.current,
4732
- path,
4733
- hasEditor: Boolean(editor),
4734
- active: describeActiveElement()
4735
- });
4736
- }, [editor, path]);
4737
- useEffect(() => {
4738
- if (!editor) return;
4739
- const handleFocus = () => {
4740
- if (!DEBUG_RICHTEXT_FOCUS) return;
4741
- console.log("[RichTextField] focus", {
4742
- instanceId: instanceIdRef.current,
4743
- path,
4744
- active: describeActiveElement()
4745
- });
4746
- };
4747
- const handleBlur = () => {
4748
- if (!DEBUG_RICHTEXT_FOCUS) return;
4749
- console.log("[RichTextField] blur", {
4750
- instanceId: instanceIdRef.current,
4751
- path,
4752
- active: describeActiveElement()
4753
- });
4754
- };
4755
- editor.on("focus", handleFocus);
4756
- editor.on("blur", handleBlur);
4757
- return () => {
4758
- editor.off("focus", handleFocus);
4759
- editor.off("blur", handleBlur);
4760
- };
4761
- }, [editor, path]);
4762
4693
  useEffect(() => {
4763
4694
  if (!editor) return;
4764
4695
  const handler = () => {
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { useOptionalPreviewLayout, PreviewQueryProvider } from './chunk-3LXFQS7T.mjs';
3
- import { PreviewBlockCustomizeSelectionProvider, resolveSiteStyleAccess, resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSetupBannerModel, usePreviewBlockCustomizeSelectionOptional, useBlockCustomizeControls, MAX_CUSTOMIZE_POPOVER_ROWS, MAX_QUICK_MANIFEST_FIELDS, OfferingsPreviewWidgetProvider, previewWidgetOverrides, sanitizeDashboardPath } from './chunk-X5ZCSU6F.mjs';
4
- import { resolvePreviewChromeSurface, getPreviewSidebarTab, onPreviewSidebarOpenRequest, getPreviewChromeSurfaceDataProps, PREVIEW_CHROME_THEME_CLASS_NAME, setPreviewSidebarTab, PreviewPageDesignEditorStateProvider, usePreviewPageDesignEditorState } from './chunk-RCTJAZSK.mjs';
5
- import { clientComponentRegistry, deriveLaunchReadiness, DEFAULT_LAUNCH_READINESS_INPUT, useEditorUiStore, PreviewThemeOverlayProvider, PreviewDesignCoordinatorProvider, SiteChromeCustomizeProvider, ResizableSplitPane, BlockApiProvider, EditorProvider, PreviewDesignHistoryOrderProvider, MediaEditorProvider, useEditorUiStoreInstance, useEditor, createRoutingHelpers, createSnapshotFromPageRecord, EntryControllerProvider, useEntryEditorController, surfaceResolutionContextFromTheme, designRuntimeRulesForTheme, unsafeAsEditorBlockId, EditableBlockProvider, asDesignBlockId, PageRenderer, usePreviewThemeOverlay, planSiteDocument, ThemeScope, FixedBottomSurface, Button, unsafeAsLinkedContentEntryId, sectionTransitionVariantForBoundaryOptionId, sectionTransitionFamilyForBoundaryOptionId, sectionTransitionFamilies, X, defaultSectionTransitionVariantForFamily, RotateCcw, parseBackgroundOverrideFromContent, rankBackgroundImagePoolItems, imagePoolForOverride, resolveBackgroundCapability, enabledBackgroundModes, canCycleBackgroundOverrideValue, FormRenderer, stableSerialize, prefetchBlockData, isSupportedLoaderEndpoint, PreviewRichTextEditor, RichText, PreviewTextEditor, Text, buildThemeRuntime, renderBlock, siteHeaderManifest, siteFooterManifest, SiteDocumentLayout, SITE_CHROME_CLASS_NAMES, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, buildEditorModelRuntimeFieldsByBlockId, applyCompiledRuntimeFieldsToContent, assertNever2, getBlockDefinition, systemCustomizeFacetDefinitionsForBlock, systemCustomizeFacetAppliesToLayoutVariant, systemCustomizeFacetCurrentValue, systemCustomizeFacetLabelForValue, backgroundColorTokens, ChevronLeft, ChevronRight, createMicrobatcher, unwrapResponse, normalizePublicApiLoaderParams, visibleHeaderClearancePx, LINKED_CONTENT_ENTRY_META_KEY, useMediaEditorOptional, Image, defaultBackgroundOverrideForMode, decodePublicProductCategorySelectorQuery, EDITABLE_SURFACE_FORWARDING_PROP, useSiteChromeCustomizeOptional, assertNever, SITE_CHROME_VISIBLE_HEADER_SELECTOR, getLinkedContentEntryMeta, GRADIENT_PRESETS, resolveImageUrlWithContext, gradientToCss, Upload, MediaEditor, SECTION_BACKGROUND_MIN_SOURCE_WIDTH, SECTION_BACKGROUND_MIN_SOURCE_HEIGHT, parseMediaAssetId, formatSiteChromeBackgroundTokenLabel, planBackgroundOverride, planBackgroundTransition, systemCustomizeFacetNextValue } from './chunk-O62NDCTI.mjs';
6
- import { API_ENDPOINTS, createBearerAPIClient, isPreviewRuntimeSessionEditable, DEFAULT_SURFACE_ID, initPreviewAuth, usePreviewAuth, usePreviewAuthFetch, markPreviewAuthExpired, usePreviewToken } from './chunk-LBBPD2IW.mjs';
2
+ import { useOptionalPreviewLayout, PreviewQueryProvider } from './chunk-PYDHOMEO.mjs';
3
+ import { PreviewBlockCustomizeSelectionProvider, resolveSiteStyleAccess, resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSetupBannerModel, usePreviewBlockCustomizeSelectionOptional, useBlockCustomizeControls, MAX_CUSTOMIZE_POPOVER_ROWS, MAX_QUICK_MANIFEST_FIELDS, OfferingsPreviewWidgetProvider, previewWidgetOverrides, sanitizeDashboardPath } from './chunk-NFWGLRZZ.mjs';
4
+ import { resolvePreviewChromeSurface, getPreviewSidebarTab, onPreviewSidebarOpenRequest, getPreviewChromeSurfaceDataProps, PREVIEW_CHROME_THEME_CLASS_NAME, setPreviewSidebarTab, PreviewPageDesignEditorStateProvider, usePreviewPageDesignEditorState } from './chunk-WFPYN7KA.mjs';
5
+ import { clientComponentRegistry, deriveLaunchReadiness, DEFAULT_LAUNCH_READINESS_INPUT, useEditorUiStore, PreviewThemeOverlayProvider, PreviewDesignCoordinatorProvider, SiteChromeCustomizeProvider, ResizableSplitPane, BlockApiProvider, EditorProvider, PreviewDesignHistoryOrderProvider, MediaEditorProvider, useEditorUiStoreInstance, useEditor, createRoutingHelpers, createSnapshotFromPageRecord, EntryControllerProvider, useEntryEditorController, surfaceResolutionContextFromTheme, designRuntimeRulesForTheme, unsafeAsEditorBlockId, EditableBlockProvider, asDesignBlockId, PageRenderer, usePreviewThemeOverlay, planSiteDocument, ThemeScope, FixedBottomSurface, Button, unsafeAsLinkedContentEntryId, sectionTransitionVariantForBoundaryOptionId, sectionTransitionFamilyForBoundaryOptionId, sectionTransitionFamilies, X, defaultSectionTransitionVariantForFamily, RotateCcw, parseBackgroundOverrideFromContent, rankBackgroundImagePoolItems, imagePoolForOverride, resolveBackgroundCapability, enabledBackgroundModes, canCycleBackgroundOverrideValue, FormRenderer, stableSerialize, prefetchBlockData, isSupportedLoaderEndpoint, PreviewRichTextEditor, RichText, PreviewTextEditor, Text, buildThemeRuntime, renderBlock, siteHeaderManifest, siteFooterManifest, SiteDocumentLayout, SITE_CHROME_CLASS_NAMES, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, buildEditorModelRuntimeFieldsByBlockId, applyCompiledRuntimeFieldsToContent, assertNever2, getBlockDefinition, systemCustomizeFacetDefinitionsForBlock, systemCustomizeFacetAppliesToLayoutVariant, systemCustomizeFacetCurrentValue, systemCustomizeFacetLabelForValue, backgroundColorTokens, ChevronLeft, ChevronRight, createMicrobatcher, unwrapResponse, normalizePublicApiLoaderParams, visibleHeaderClearancePx, LINKED_CONTENT_ENTRY_META_KEY, useMediaEditorOptional, Image, defaultBackgroundOverrideForMode, decodePublicProductCategorySelectorQuery, EDITABLE_SURFACE_FORWARDING_PROP, useSiteChromeCustomizeOptional, assertNever, SITE_CHROME_VISIBLE_HEADER_SELECTOR, getLinkedContentEntryMeta, GRADIENT_PRESETS, resolveImageUrlWithContext, gradientToCss, Upload, MediaEditor, SECTION_BACKGROUND_MIN_SOURCE_WIDTH, SECTION_BACKGROUND_MIN_SOURCE_HEIGHT, parseMediaAssetId, formatSiteChromeBackgroundTokenLabel, planBackgroundOverride, planBackgroundTransition, systemCustomizeFacetNextValue } from './chunk-ZR2GQK2A.mjs';
6
+ import { API_ENDPOINTS, createBearerAPIClient, isPreviewRuntimeSessionEditable, DEFAULT_SURFACE_ID, initPreviewAuth, usePreviewAuth, usePreviewAuthFetch, markPreviewAuthExpired, usePreviewToken } from './chunk-4QNLOTES.mjs';
7
7
  import React10, { createContext, useMemo, useState, useEffect, useRef, useCallback, useId, useReducer, Children, isValidElement, Fragment as Fragment$1, cloneElement, useContext } from 'react';
8
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
9
  import { createPortal } from 'react-dom';
@@ -4722,11 +4722,11 @@ function LinkedEntryEditEventBridge() {
4722
4722
  }
4723
4723
  var previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
4724
4724
  var PreviewEditorSidebar = React10.lazy(async () => {
4725
- const mod = await import('./PreviewEditorSidebar-X7RLMEI6.mjs');
4725
+ const mod = await import('./PreviewEditorSidebar-4PH35ZIE.mjs');
4726
4726
  return { default: mod.PreviewEditorSidebar };
4727
4727
  });
4728
4728
  var PreviewEditorUI = React10.lazy(async () => {
4729
- const mod = await import('./PreviewEditorUI-CT67N4O3.mjs');
4729
+ const mod = await import('./PreviewEditorUI-WHMCRJGM.mjs');
4730
4730
  return { default: mod.PreviewEditorUI };
4731
4731
  });
4732
4732
  var previewPaneContainmentStyle = {
@@ -5027,6 +5027,7 @@ function PreviewShellLayout({
5027
5027
  const editorUI = /* @__PURE__ */ jsx(React10.Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
5028
5028
  PreviewEditorUI,
5029
5029
  {
5030
+ dashboardBaseUrl,
5030
5031
  inMaintenanceMode: maintenanceModeEnabled,
5031
5032
  siteId,
5032
5033
  surfaceId,