@riverbankcms/sdk 0.89.1 → 0.90.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/README.md +27 -4
- package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
- package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-J3JN5Z7T.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-UBL6MSNP.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
- package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
- package/dist/_dts/api/src/bookings.d.ts +3 -1
- package/dist/_dts/api/src/index.d.ts +6 -5
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
- package/dist/_dts/api/src/request.d.ts +21 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
- package/dist/_dts/api/src/types.d.ts +3 -1
- package/dist/_dts/api/src/url.d.ts +6 -3
- package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
- package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
- package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
- package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
- package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
- package/dist/_dts/core/src/money-input.d.ts +18 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
- package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
- package/dist/_dts/media-editor/src/index.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
- package/dist/_dts/sdk/src/components.d.ts +1 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
- package/dist/_dts/sdk/src/next/types.d.ts +8 -11
- package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +18 -0
- package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
- package/dist/_dts/theme-core/src/schema.d.ts +18 -18
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
- package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
- package/dist/{chunk-HKJQERFR.mjs → chunk-AEOYWPE4.mjs} +91 -55
- package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
- package/dist/{chunk-ZQRBLCW5.mjs → chunk-GSPFFUVB.mjs} +2 -2
- package/dist/{chunk-7YUAXONX.mjs → chunk-PMBB6MQ7.mjs} +1280 -774
- package/dist/{chunk-TGBJWKMP.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
- package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
- package/dist/cli/index.mjs +899 -531
- package/dist/cli/init-docs/content/cli-reference.md +6 -1
- package/dist/cli/init-docs/content/content-management.md +27 -0
- package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-GXQNWQ6O.mjs} +1 -1
- package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-STLUJ36H.mjs} +25 -270
- package/dist/client/bookings.mjs +432 -269
- package/dist/client/{carousel-3TKQSNJC.mjs → carousel-CVRN6EPP.mjs} +1 -1
- package/dist/client/{cart-6XHSZK23.mjs → cart-IYIBA5CL.mjs} +5 -6
- package/dist/client/{checkout-FVSPM6FI.mjs → checkout-O3BGM4GS.mjs} +5 -6
- package/dist/client/chunk-4RTFGHZN.mjs +433 -0
- package/dist/client/{chunk-UQFY4AHX.mjs → chunk-6DPXDOIL.mjs} +65 -28
- package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-D3ETC2SU.mjs} +1 -1
- package/dist/client/{chunk-CQKKFEQD.mjs → chunk-DAS5CIER.mjs} +274 -105
- package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
- package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-MFPKS6QS.mjs} +11 -14
- package/dist/client/{chunk-EY42X22F.mjs → chunk-NBFRJ5NB.mjs} +156 -4
- package/dist/client/{chunk-VGLXACVK.mjs → chunk-VFHZLZAC.mjs} +1 -1
- package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
- package/dist/client/{chunk-RSQWWUAD.mjs → chunk-Z62JYS5O.mjs} +3 -3
- package/dist/client/client.mjs +3292 -2827
- package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-2D3ACMJR.mjs} +18 -56
- package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-QY4UZUFF.mjs} +8 -9
- package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-RRCDKJC2.mjs} +8 -9
- package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-YO335BUT.mjs} +8 -9
- package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-PXA6GFQ3.mjs} +8 -9
- package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-2ZHEDDXO.mjs} +8 -9
- package/dist/client/{form-WZZFFGMU.mjs → form-ZS6KX4U2.mjs} +6 -6
- package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-QK5SLIIB.mjs} +2 -2
- package/dist/client/hooks.mjs +1084 -1029
- package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-GFNIUD2X.mjs} +2 -2
- package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-PGLTTCUG.mjs} +4 -4
- package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-OPBE5ZPI.mjs} +5 -6
- package/dist/client/{productList-5ABEMKUG.mjs → productList-NI72Q62Z.mjs} +5 -6
- package/dist/client/rendering/client.mjs +2692 -2285
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +2611 -2156
- package/dist/client/{shop-OMMQZ6YO.mjs → shop-3ZQPEWYI.mjs} +5 -6
- package/dist/client/spam-protection.mjs +4 -5
- package/dist/preview-next/before-render.mjs +2 -2
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
- package/dist/server/components.mjs +1722 -1453
- package/dist/server/config-validation.mjs +1316 -1261
- package/dist/server/config.mjs +1316 -1261
- package/dist/server/data.mjs +1084 -1029
- package/dist/server/index.mjs +135 -100
- package/dist/server/navigation.mjs +20 -30
- package/dist/server/next.mjs +1782 -1500
- package/dist/server/page-converter.mjs +1009 -946
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1722 -1453
- package/dist/server/rendering.mjs +1728 -1459
- package/dist/server/routing.mjs +1127 -1045
- package/dist/server/server.mjs +1219 -1129
- package/dist/server/theme-bridge.mjs +8 -5
- package/package.json +2 -2
- package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
- package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
- package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useOptionalPreviewLayout, PreviewQueryProvider } from './chunk-
|
|
3
|
-
import { PreviewBlockCustomizeSelectionProvider, resolveSiteStyleAccess, resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSetupBannerModel, usePreviewBlockCustomizeSelectionOptional, useBlockCustomizeControls, MAX_CUSTOMIZE_POPOVER_ROWS, MAX_QUICK_MANIFEST_FIELDS, OfferingsPreviewWidgetProvider, previewWidgetOverrides, sanitizeDashboardPath } from './chunk-
|
|
4
|
-
import { resolvePreviewChromeSurface, getPreviewSidebarTab, onPreviewSidebarOpenRequest, getPreviewChromeSurfaceDataProps, PREVIEW_CHROME_THEME_CLASS_NAME, setPreviewSidebarTab, PreviewPageDesignEditorStateProvider, usePreviewPageDesignEditorState } from './chunk-
|
|
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,
|
|
6
|
-
import { API_ENDPOINTS, createBearerAPIClient, isPreviewRuntimeSessionEditable, DEFAULT_SURFACE_ID, initPreviewAuth, usePreviewAuth, usePreviewAuthFetch, markPreviewAuthExpired, usePreviewToken } from './chunk-
|
|
7
|
-
import
|
|
2
|
+
import { useOptionalPreviewLayout, PreviewQueryProvider } from './chunk-UG7I7S7W.mjs';
|
|
3
|
+
import { PreviewBlockCustomizeSelectionProvider, resolveSiteStyleAccess, resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSetupBannerModel, usePreviewBlockCustomizeSelectionOptional, useBlockCustomizeControls, MAX_CUSTOMIZE_POPOVER_ROWS, MAX_QUICK_MANIFEST_FIELDS, OfferingsPreviewWidgetProvider, previewWidgetOverrides, sanitizeDashboardPath } from './chunk-RQ3XZ4SJ.mjs';
|
|
4
|
+
import { resolvePreviewChromeSurface, getPreviewSidebarTab, onPreviewSidebarOpenRequest, getPreviewChromeSurfaceDataProps, PREVIEW_CHROME_THEME_CLASS_NAME, setPreviewSidebarTab, PreviewPageDesignEditorStateProvider, usePreviewPageDesignEditorState } from './chunk-GSPFFUVB.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, assertNever, ResponsiveScope, 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, 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-PMBB6MQ7.mjs';
|
|
6
|
+
import { API_ENDPOINTS, createBearerAPIClient, isPreviewRuntimeSessionEditable, DEFAULT_SURFACE_ID, initPreviewAuth, usePreviewAuth, usePreviewAuthFetch, markPreviewAuthExpired, usePreviewToken } from './chunk-BOQXMCSP.mjs';
|
|
7
|
+
import React9, { 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';
|
|
10
10
|
|
|
@@ -2364,7 +2364,8 @@ function BoundaryControl({
|
|
|
2364
2364
|
saveSequenceRef.current = sequence;
|
|
2365
2365
|
setFeedback({ kind: "saving" });
|
|
2366
2366
|
void applyAction(action).then((outcome) => {
|
|
2367
|
-
if (saveSequenceRef.current !== sequence || outcome.kind === "skipped")
|
|
2367
|
+
if (saveSequenceRef.current !== sequence || outcome.kind === "skipped")
|
|
2368
|
+
return;
|
|
2368
2369
|
setFeedback(
|
|
2369
2370
|
outcome.kind === "saved" || outcome.kind === "queued" ? { kind: "idle" } : { kind: "error", message: outcome.message }
|
|
2370
2371
|
);
|
|
@@ -2433,11 +2434,19 @@ function BoundaryControl({
|
|
|
2433
2434
|
/* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [
|
|
2434
2435
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
2435
2436
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-semibold", children: "Section break" }),
|
|
2436
|
-
/* @__PURE__ */ jsxs(
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2437
|
+
/* @__PURE__ */ jsxs(
|
|
2438
|
+
"div",
|
|
2439
|
+
{
|
|
2440
|
+
id: panelDescriptionId,
|
|
2441
|
+
className: "mt-0.5 text-xs text-slate-500",
|
|
2442
|
+
children: [
|
|
2443
|
+
formatBlockKindLabel2(previousBlockKind),
|
|
2444
|
+
" /",
|
|
2445
|
+
" ",
|
|
2446
|
+
formatBlockKindLabel2(nextBlockKind)
|
|
2447
|
+
]
|
|
2448
|
+
}
|
|
2449
|
+
)
|
|
2441
2450
|
] }),
|
|
2442
2451
|
/* @__PURE__ */ jsx(
|
|
2443
2452
|
"button",
|
|
@@ -2551,7 +2560,9 @@ function boundaryBreakModeLabel(boundary) {
|
|
|
2551
2560
|
return boundaryBreakDisplay(boundary).modeLabel;
|
|
2552
2561
|
}
|
|
2553
2562
|
function boundaryBreakDisplay(boundary) {
|
|
2554
|
-
const option = boundary.availableBreaks.find(
|
|
2563
|
+
const option = boundary.availableBreaks.find(
|
|
2564
|
+
(candidate) => candidate.id === boundary.breakChoice.effectiveValue
|
|
2565
|
+
) ?? null;
|
|
2555
2566
|
switch (boundary.breakChoice.kind) {
|
|
2556
2567
|
case "auto":
|
|
2557
2568
|
return {
|
|
@@ -2579,13 +2590,17 @@ function boundaryBreakDisplay(boundary) {
|
|
|
2579
2590
|
resetLabel: "Use default break"
|
|
2580
2591
|
};
|
|
2581
2592
|
default:
|
|
2582
|
-
return assertNever2(
|
|
2593
|
+
return assertNever2(
|
|
2594
|
+
boundary.breakChoice,
|
|
2595
|
+
"Unhandled boundary break choice"
|
|
2596
|
+
);
|
|
2583
2597
|
}
|
|
2584
2598
|
}
|
|
2585
2599
|
function formatBlockKindLabel2(blockKind) {
|
|
2586
2600
|
const blockTitle = getBlockDefinition(blockKind)?.manifest.title;
|
|
2587
2601
|
if (blockTitle) return blockTitle;
|
|
2588
|
-
const
|
|
2602
|
+
const blockKindParts = blockKind.split(".");
|
|
2603
|
+
const withoutPrefix = blockKind.includes(".") ? blockKindParts[blockKindParts.length - 1] : blockKind;
|
|
2589
2604
|
return (withoutPrefix ?? blockKind).split(/[-_]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
|
|
2590
2605
|
}
|
|
2591
2606
|
|
|
@@ -4441,18 +4456,19 @@ function SiteChromeEditableSurface({
|
|
|
4441
4456
|
children,
|
|
4442
4457
|
preserveSingleComponentRoot = false
|
|
4443
4458
|
}) {
|
|
4444
|
-
return renderEditableSurface(
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
{ preserveSingleComponentRoot }
|
|
4448
|
-
);
|
|
4459
|
+
return renderEditableSurface(children, surface, {
|
|
4460
|
+
preserveSingleComponentRoot
|
|
4461
|
+
});
|
|
4449
4462
|
}
|
|
4450
4463
|
function renderEditableSurface(children, surface, options) {
|
|
4451
4464
|
const childArray = Children.toArray(children);
|
|
4452
4465
|
const child = childArray.length === 1 ? childArray[0] : null;
|
|
4453
4466
|
if (isValidElement(child) && child.type !== Fragment$1 && (isHostElement(child) || options.preserveSingleComponentRoot || isEditableSurfaceForwardingElement(child))) {
|
|
4454
4467
|
return cloneElement(child, {
|
|
4455
|
-
className: joinClassNames2(
|
|
4468
|
+
className: joinClassNames2(
|
|
4469
|
+
child.props.className,
|
|
4470
|
+
"group/site-chrome relative"
|
|
4471
|
+
),
|
|
4456
4472
|
"data-preview-site-chrome-surface": surface,
|
|
4457
4473
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4458
4474
|
child.props.children,
|
|
@@ -4480,10 +4496,17 @@ function renderEditableSurface(children, surface, options) {
|
|
|
4480
4496
|
}
|
|
4481
4497
|
);
|
|
4482
4498
|
}
|
|
4483
|
-
return /* @__PURE__ */ jsxs(
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4499
|
+
return /* @__PURE__ */ jsxs(
|
|
4500
|
+
"div",
|
|
4501
|
+
{
|
|
4502
|
+
className: "group/site-chrome relative",
|
|
4503
|
+
"data-preview-site-chrome-surface": surface,
|
|
4504
|
+
children: [
|
|
4505
|
+
children,
|
|
4506
|
+
/* @__PURE__ */ jsx(SiteChromeCustomizeButton, { surface })
|
|
4507
|
+
]
|
|
4508
|
+
}
|
|
4509
|
+
);
|
|
4487
4510
|
}
|
|
4488
4511
|
function isHostElement(child) {
|
|
4489
4512
|
return typeof child.type === "string";
|
|
@@ -4554,9 +4577,14 @@ function normalizePreviewScale(scale) {
|
|
|
4554
4577
|
function assertNever3(value) {
|
|
4555
4578
|
throw new Error(`Unhandled preview viewport mode: ${String(value)}`);
|
|
4556
4579
|
}
|
|
4580
|
+
|
|
4581
|
+
// ../preview-next/src/client/preview/themeRuntime.ts
|
|
4582
|
+
var defaultPreviewThemeRuntime = {
|
|
4583
|
+
kind: "cms-theme"
|
|
4584
|
+
};
|
|
4557
4585
|
function PreviewThemedSiteDocument({
|
|
4558
4586
|
children,
|
|
4559
|
-
|
|
4587
|
+
themeRuntime = defaultPreviewThemeRuntime,
|
|
4560
4588
|
useContainerResponsiveMode,
|
|
4561
4589
|
viewportMode,
|
|
4562
4590
|
viewportWidth,
|
|
@@ -4596,18 +4624,32 @@ function PreviewThemedSiteDocument({
|
|
|
4596
4624
|
footerNode,
|
|
4597
4625
|
children
|
|
4598
4626
|
});
|
|
4599
|
-
|
|
4600
|
-
|
|
4627
|
+
const responsiveMode = themeRuntime.kind === "none" ? void 0 : themeRuntime.responsiveMode ?? (useContainerResponsiveMode ? "container" : "viewport");
|
|
4628
|
+
switch (themeRuntime.kind) {
|
|
4629
|
+
case "cms-theme":
|
|
4630
|
+
return /* @__PURE__ */ jsx(
|
|
4631
|
+
ThemeScope,
|
|
4632
|
+
{
|
|
4633
|
+
theme: effectiveTheme,
|
|
4634
|
+
responsiveMode,
|
|
4635
|
+
className: "rb-flex rb-flex-1 rb-flex-col",
|
|
4636
|
+
children: documentNode
|
|
4637
|
+
}
|
|
4638
|
+
);
|
|
4639
|
+
case "responsive-only":
|
|
4640
|
+
return /* @__PURE__ */ jsx(
|
|
4641
|
+
ResponsiveScope,
|
|
4642
|
+
{
|
|
4643
|
+
responsiveMode,
|
|
4644
|
+
className: "rb-flex rb-flex-1 rb-flex-col",
|
|
4645
|
+
children: documentNode
|
|
4646
|
+
}
|
|
4647
|
+
);
|
|
4648
|
+
case "none":
|
|
4649
|
+
return documentNode;
|
|
4650
|
+
default:
|
|
4651
|
+
return assertNever(themeRuntime);
|
|
4601
4652
|
}
|
|
4602
|
-
return /* @__PURE__ */ jsx(
|
|
4603
|
-
ThemeScope,
|
|
4604
|
-
{
|
|
4605
|
-
theme: effectiveTheme,
|
|
4606
|
-
responsiveMode: useContainerResponsiveMode ? "container" : "viewport",
|
|
4607
|
-
className: "rb-flex rb-flex-1 rb-flex-col",
|
|
4608
|
-
children: documentNode
|
|
4609
|
-
}
|
|
4610
|
-
);
|
|
4611
4653
|
}
|
|
4612
4654
|
function renderPreviewDocument({
|
|
4613
4655
|
viewportMode,
|
|
@@ -4697,17 +4739,11 @@ function LinkedEntryEditEventBridge() {
|
|
|
4697
4739
|
if (!isBlockFieldFocusEvent(event)) return;
|
|
4698
4740
|
const state = uiStore.getState();
|
|
4699
4741
|
const blockId = unsafeAsEditorBlockId(event.detail.blockId);
|
|
4700
|
-
state.setPreviewSidebarTab("editor");
|
|
4701
|
-
state.setDrawerOpen(true);
|
|
4702
4742
|
state.setActivePreviewField({
|
|
4703
4743
|
kind: "block",
|
|
4704
4744
|
blockId,
|
|
4705
4745
|
fieldPath: event.detail.fieldPath
|
|
4706
4746
|
});
|
|
4707
|
-
state.requestFocus({
|
|
4708
|
-
blockId,
|
|
4709
|
-
fieldPath: event.detail.fieldPath
|
|
4710
|
-
});
|
|
4711
4747
|
};
|
|
4712
4748
|
window.addEventListener(LINKED_ENTRY_EDIT_EVENT, handleLinkedEntryEdit);
|
|
4713
4749
|
window.addEventListener(LINKED_ENTRY_FIELD_FOCUS_EVENT, handleLinkedEntryFieldFocus);
|
|
@@ -4721,12 +4757,12 @@ function LinkedEntryEditEventBridge() {
|
|
|
4721
4757
|
return null;
|
|
4722
4758
|
}
|
|
4723
4759
|
var previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
|
|
4724
|
-
var PreviewEditorSidebar =
|
|
4725
|
-
const mod = await import('./PreviewEditorSidebar-
|
|
4760
|
+
var PreviewEditorSidebar = React9.lazy(async () => {
|
|
4761
|
+
const mod = await import('./PreviewEditorSidebar-KVXNF3VW.mjs');
|
|
4726
4762
|
return { default: mod.PreviewEditorSidebar };
|
|
4727
4763
|
});
|
|
4728
|
-
var PreviewEditorUI =
|
|
4729
|
-
const mod = await import('./PreviewEditorUI-
|
|
4764
|
+
var PreviewEditorUI = React9.lazy(async () => {
|
|
4765
|
+
const mod = await import('./PreviewEditorUI-J3JN5Z7T.mjs');
|
|
4730
4766
|
return { default: mod.PreviewEditorUI };
|
|
4731
4767
|
});
|
|
4732
4768
|
var previewPaneContainmentStyle = {
|
|
@@ -4772,7 +4808,7 @@ function PreviewShellLayout({
|
|
|
4772
4808
|
sdkConfig,
|
|
4773
4809
|
mediaAssets,
|
|
4774
4810
|
bookingOfferingPresets,
|
|
4775
|
-
|
|
4811
|
+
themeRuntime = defaultPreviewThemeRuntime,
|
|
4776
4812
|
siteStyleAccess = { kind: "hidden" }
|
|
4777
4813
|
}) {
|
|
4778
4814
|
const layout = useOptionalPreviewLayout();
|
|
@@ -4946,7 +4982,7 @@ function PreviewShellLayout({
|
|
|
4946
4982
|
children: /* @__PURE__ */ jsx(PreviewChromeLayerProvider, { children: /* @__PURE__ */ jsx(
|
|
4947
4983
|
PreviewThemedSiteDocument,
|
|
4948
4984
|
{
|
|
4949
|
-
|
|
4985
|
+
themeRuntime,
|
|
4950
4986
|
useContainerResponsiveMode: previewContainerResponsiveEnabled,
|
|
4951
4987
|
viewportMode,
|
|
4952
4988
|
viewportWidth,
|
|
@@ -4968,7 +5004,7 @@ function PreviewShellLayout({
|
|
|
4968
5004
|
{
|
|
4969
5005
|
className: `${PREVIEW_CHROME_THEME_CLASS_NAME} flex h-full min-h-0 flex-col overflow-hidden ${surfaceDocument.surfaceClassName ?? ""}`,
|
|
4970
5006
|
...getPreviewChromeSurfaceDataProps(surfaceDocument),
|
|
4971
|
-
children: /* @__PURE__ */ jsx(
|
|
5007
|
+
children: /* @__PURE__ */ jsx(React9.Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
|
|
4972
5008
|
PreviewEditorSidebar,
|
|
4973
5009
|
{
|
|
4974
5010
|
surfaceId,
|
|
@@ -5024,7 +5060,7 @@ function PreviewShellLayout({
|
|
|
5024
5060
|
) })
|
|
5025
5061
|
}
|
|
5026
5062
|
);
|
|
5027
|
-
const editorUI = /* @__PURE__ */ jsx(
|
|
5063
|
+
const editorUI = /* @__PURE__ */ jsx(React9.Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
|
|
5028
5064
|
PreviewEditorUI,
|
|
5029
5065
|
{
|
|
5030
5066
|
dashboardBaseUrl,
|
|
@@ -5139,7 +5175,7 @@ function PreviewShell({
|
|
|
5139
5175
|
mediaAssets,
|
|
5140
5176
|
bookingOfferingPresets,
|
|
5141
5177
|
supabaseUrl,
|
|
5142
|
-
|
|
5178
|
+
themeRuntime = defaultPreviewThemeRuntime,
|
|
5143
5179
|
designEditorEligibility,
|
|
5144
5180
|
baseFetch
|
|
5145
5181
|
}) {
|
|
@@ -5227,7 +5263,7 @@ function PreviewShell({
|
|
|
5227
5263
|
sdkConfig: sdkConfig ?? null,
|
|
5228
5264
|
mediaAssets,
|
|
5229
5265
|
bookingOfferingPresets,
|
|
5230
|
-
|
|
5266
|
+
themeRuntime,
|
|
5231
5267
|
siteStyleAccess,
|
|
5232
5268
|
children
|
|
5233
5269
|
}
|
|
@@ -5274,7 +5310,7 @@ function SdkPreviewModeRuntime(props) {
|
|
|
5274
5310
|
previewToken,
|
|
5275
5311
|
content,
|
|
5276
5312
|
blockOverrides,
|
|
5277
|
-
|
|
5313
|
+
themeRuntime = defaultPreviewThemeRuntime
|
|
5278
5314
|
} = props;
|
|
5279
5315
|
const resolvedDashboardBaseUrl = dashboardBaseUrl ?? deriveDashboardBaseUrlFromApiBaseUrl(apiBaseUrl);
|
|
5280
5316
|
const surfaceId = props.surfaceId ?? DEFAULT_SURFACE_ID;
|
|
@@ -5355,7 +5391,7 @@ function SdkPreviewModeRuntime(props) {
|
|
|
5355
5391
|
sdkConfig: sdkConfigForEditor,
|
|
5356
5392
|
mediaAssets: content.mediaAssets,
|
|
5357
5393
|
supabaseUrl: content.supabaseUrl,
|
|
5358
|
-
|
|
5394
|
+
themeRuntime,
|
|
5359
5395
|
designEditorEligibility: { kind: "sdk-page" },
|
|
5360
5396
|
children: /* @__PURE__ */ jsx(
|
|
5361
5397
|
EditablePageRenderer,
|
|
@@ -225,7 +225,10 @@ function normalizeDashboardOrigin(input) {
|
|
|
225
225
|
}
|
|
226
226
|
function deriveCmsApiUrlFromDashboardUrl(input) {
|
|
227
227
|
const origin = normalizeDashboardOrigin(input);
|
|
228
|
-
return origin ? `${origin}/api` : "";
|
|
228
|
+
return origin ? normalizeCmsApiBaseUrl(`${origin}/api`) : "";
|
|
229
|
+
}
|
|
230
|
+
function normalizeCmsApiBaseUrl(input) {
|
|
231
|
+
return input.trim().replace(/\/+$/, "").replace(/(?:\/api)+$/i, "/api");
|
|
229
232
|
}
|
|
230
233
|
function getDashboardBaseUrl() {
|
|
231
234
|
const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
|
|
@@ -238,15 +241,16 @@ function getDashboardBaseUrl() {
|
|
|
238
241
|
}
|
|
239
242
|
function getCmsApiUrl() {
|
|
240
243
|
if (typeof window !== "undefined") {
|
|
241
|
-
return "/api";
|
|
244
|
+
return normalizeCmsApiBaseUrl("/api");
|
|
242
245
|
}
|
|
243
246
|
const internalUrl = process.env.CMS_API_URL;
|
|
244
247
|
if (internalUrl) {
|
|
245
|
-
return internalUrl
|
|
248
|
+
return normalizeCmsApiBaseUrl(internalUrl);
|
|
246
249
|
}
|
|
247
250
|
const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
|
|
248
251
|
if (dashboardUrl) {
|
|
249
|
-
|
|
252
|
+
const apiUrl = deriveCmsApiUrlFromDashboardUrl(dashboardUrl);
|
|
253
|
+
if (apiUrl) return apiUrl;
|
|
250
254
|
}
|
|
251
255
|
throw new Error(
|
|
252
256
|
"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)"
|
|
@@ -6729,7 +6733,6 @@ function getRevalidateTag() {
|
|
|
6729
6733
|
}
|
|
6730
6734
|
return revalidateTag;
|
|
6731
6735
|
}
|
|
6732
|
-
var sdkVersion;
|
|
6733
6736
|
function generateRequestId() {
|
|
6734
6737
|
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
6735
6738
|
return crypto.randomUUID();
|
|
@@ -6809,6 +6812,24 @@ function serializeQueryValue(value) {
|
|
|
6809
6812
|
if (value instanceof Date) return value.toISOString();
|
|
6810
6813
|
return null;
|
|
6811
6814
|
}
|
|
6815
|
+
function normalizeHeaders(source) {
|
|
6816
|
+
const normalized = {};
|
|
6817
|
+
if (!source) return normalized;
|
|
6818
|
+
new Headers(source).forEach((value, key) => {
|
|
6819
|
+
normalized[key] = value;
|
|
6820
|
+
});
|
|
6821
|
+
return normalized;
|
|
6822
|
+
}
|
|
6823
|
+
function buildRequestHeaders(input) {
|
|
6824
|
+
const headers = {
|
|
6825
|
+
...normalizeHeaders(input.optionsHeaders),
|
|
6826
|
+
...normalizeHeaders(input.authHeaders)
|
|
6827
|
+
};
|
|
6828
|
+
if (input.includeJsonContentType) {
|
|
6829
|
+
headers["Content-Type"] = "application/json";
|
|
6830
|
+
}
|
|
6831
|
+
return headers;
|
|
6832
|
+
}
|
|
6812
6833
|
function serializePathParam(endpoint, key, value) {
|
|
6813
6834
|
if (typeof value === "string") {
|
|
6814
6835
|
return value;
|
|
@@ -6944,104 +6965,18 @@ function createRawCMSClient(headers = {}, baseUrl) {
|
|
|
6944
6965
|
params,
|
|
6945
6966
|
options = {}
|
|
6946
6967
|
}) => {
|
|
6947
|
-
const
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
|
|
6951
|
-
|
|
6952
|
-
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
const stringValue = serializePathParam(endpoint, key, value);
|
|
6957
|
-
url = url.replace(bracePlaceholder, stringValue);
|
|
6958
|
-
url = url.replace(colonPlaceholder, stringValue);
|
|
6959
|
-
} else {
|
|
6960
|
-
unusedParams[key] = value;
|
|
6961
|
-
}
|
|
6962
|
-
});
|
|
6963
|
-
}
|
|
6964
|
-
const unresolvedPathParams = [
|
|
6965
|
-
...url.match(/\{[^}]+\}/g) ?? [],
|
|
6966
|
-
...url.match(/(^|\/):([A-Za-z][A-Za-z0-9_]*)\b/g) ?? []
|
|
6967
|
-
];
|
|
6968
|
-
if (unresolvedPathParams.length > 0) {
|
|
6969
|
-
const missingParams = Array.from(
|
|
6970
|
-
new Set(
|
|
6971
|
-
unresolvedPathParams.map((token) => {
|
|
6972
|
-
if (token.startsWith("{") && token.endsWith("}")) {
|
|
6973
|
-
return token.slice(1, -1);
|
|
6974
|
-
}
|
|
6975
|
-
return token.replace(/^\//, "").slice(1);
|
|
6976
|
-
})
|
|
6977
|
-
)
|
|
6978
|
-
);
|
|
6979
|
-
throw new Error(
|
|
6980
|
-
`Missing required path params for endpoint ${String(endpoint)}: ${missingParams.join(", ")}`
|
|
6981
|
-
);
|
|
6982
|
-
}
|
|
6983
|
-
const endpointConfig = API_ENDPOINTS[endpoint];
|
|
6984
|
-
const method = endpointConfig.method;
|
|
6985
|
-
const isGetOrHead = method === "GET" || method === "HEAD";
|
|
6986
|
-
const queryParams = new URLSearchParams();
|
|
6987
|
-
Object.entries(unusedParams).forEach(([key, value]) => {
|
|
6988
|
-
appendQueryParam(queryParams, key, value);
|
|
6989
|
-
});
|
|
6990
|
-
if (isGetOrHead && typeof body === "object" && body !== null && !isFormDataBody(body)) {
|
|
6991
|
-
Object.entries(body).forEach(([key, value]) => {
|
|
6992
|
-
appendQueryParam(queryParams, key, value);
|
|
6993
|
-
});
|
|
6994
|
-
}
|
|
6995
|
-
const queryString = queryParams.toString();
|
|
6996
|
-
if (queryString) {
|
|
6997
|
-
url += (url.includes("?") ? "&" : "?") + queryString;
|
|
6998
|
-
}
|
|
6999
|
-
const formDataBody = isFormDataBody(body) ? body : void 0;
|
|
7000
|
-
const optionsNext = options?.next;
|
|
7001
|
-
const nextOptions = { ...optionsNext ?? {} };
|
|
7002
|
-
const cacheIsNoStore = options?.cache === "no-store";
|
|
7003
|
-
if (cacheIsNoStore) {
|
|
7004
|
-
delete nextOptions.revalidate;
|
|
7005
|
-
} else if (isGetOrHead && nextOptions.revalidate === void 0 && "revalidate" in endpointConfig && typeof endpointConfig.revalidate === "number") {
|
|
7006
|
-
nextOptions.revalidate = endpointConfig.revalidate;
|
|
7007
|
-
}
|
|
7008
|
-
if ("tags" in endpointConfig && Array.isArray(endpointConfig.tags)) {
|
|
7009
|
-
const processedTags = endpointConfig.tags.map((tag) => {
|
|
7010
|
-
let processedTag = tag;
|
|
7011
|
-
if (params) {
|
|
7012
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
7013
|
-
processedTag = processedTag.replace(`{${key}}`, String(value));
|
|
7014
|
-
});
|
|
7015
|
-
}
|
|
7016
|
-
return /\{[^}]+\}/.test(processedTag) ? null : processedTag;
|
|
7017
|
-
}).filter((tag) => tag !== null);
|
|
7018
|
-
nextOptions.tags = Array.from(/* @__PURE__ */ new Set([...nextOptions.tags ?? [], ...processedTags]));
|
|
7019
|
-
}
|
|
7020
|
-
const requestInit = {
|
|
7021
|
-
method,
|
|
7022
|
-
...options,
|
|
7023
|
-
// Include credentials for same-origin requests (sends cookies for auth)
|
|
7024
|
-
credentials: "same-origin",
|
|
7025
|
-
// Don't include body for GET/HEAD requests
|
|
7026
|
-
// FormData is pre-narrowed via isFormDataBody() above
|
|
7027
|
-
body: isGetOrHead || body == null ? void 0 : formDataBody ?? JSON.stringify(body),
|
|
7028
|
-
headers: {
|
|
7029
|
-
...options.headers,
|
|
7030
|
-
...headers,
|
|
7031
|
-
// Include SDK version if set
|
|
7032
|
-
...sdkVersion,
|
|
7033
|
-
// Don't set Content-Type for GET/HEAD requests without body
|
|
7034
|
-
...isGetOrHead ? {} : formDataBody ? {} : { "Content-Type": "application/json" }
|
|
7035
|
-
},
|
|
7036
|
-
// Add Next.js caching options
|
|
7037
|
-
next: Object.keys(nextOptions).length > 0 ? nextOptions : void 0
|
|
7038
|
-
};
|
|
7039
|
-
const fetchPromise = fetch(url, requestInit);
|
|
7040
|
-
if (!isGetOrHead && "tags" in endpointConfig && Array.isArray(endpointConfig.tags)) {
|
|
7041
|
-
const tags = endpointConfig.tags.map((tag) => tag);
|
|
6968
|
+
const plan = buildApiRequestPlan({
|
|
6969
|
+
endpoint,
|
|
6970
|
+
body,
|
|
6971
|
+
params,
|
|
6972
|
+
options,
|
|
6973
|
+
headers,
|
|
6974
|
+
baseUrl: normalizeCmsApiBaseUrl(baseUrl ?? resolveApiBaseUrl())});
|
|
6975
|
+
const fetchPromise = fetch(plan.url, plan.init);
|
|
6976
|
+
if (plan.cacheInvalidationTags) {
|
|
7042
6977
|
return fetchPromise.then((response) => {
|
|
7043
6978
|
if (response.ok) {
|
|
7044
|
-
invalidateCacheTags(
|
|
6979
|
+
invalidateCacheTags(plan.cacheInvalidationTags, params);
|
|
7045
6980
|
}
|
|
7046
6981
|
return response;
|
|
7047
6982
|
});
|
|
@@ -7049,6 +6984,99 @@ function createRawCMSClient(headers = {}, baseUrl) {
|
|
|
7049
6984
|
return fetchPromise;
|
|
7050
6985
|
};
|
|
7051
6986
|
}
|
|
6987
|
+
function buildApiRequestPlan(input) {
|
|
6988
|
+
const { endpoint, body, params, headers = {}, baseUrl } = input;
|
|
6989
|
+
const options = input.options ?? {};
|
|
6990
|
+
let url = buildEndpointURL(baseUrl, endpoint);
|
|
6991
|
+
const originalPath = API_ENDPOINTS[endpoint].path;
|
|
6992
|
+
const unusedParams = {};
|
|
6993
|
+
if (params) {
|
|
6994
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
6995
|
+
const bracePlaceholder = `{${key}}`;
|
|
6996
|
+
const colonPlaceholder = `:${key}`;
|
|
6997
|
+
if (originalPath.includes(bracePlaceholder) || originalPath.includes(colonPlaceholder)) {
|
|
6998
|
+
const stringValue = serializePathParam(endpoint, key, value);
|
|
6999
|
+
url = url.replace(bracePlaceholder, stringValue);
|
|
7000
|
+
url = url.replace(colonPlaceholder, stringValue);
|
|
7001
|
+
} else {
|
|
7002
|
+
unusedParams[key] = value;
|
|
7003
|
+
}
|
|
7004
|
+
});
|
|
7005
|
+
}
|
|
7006
|
+
const unresolvedPathParams = [
|
|
7007
|
+
...url.match(/\{[^}]+\}/g) ?? [],
|
|
7008
|
+
...url.match(/(^|\/):([A-Za-z][A-Za-z0-9_]*)\b/g) ?? []
|
|
7009
|
+
];
|
|
7010
|
+
if (unresolvedPathParams.length > 0) {
|
|
7011
|
+
const missingParams = Array.from(
|
|
7012
|
+
new Set(
|
|
7013
|
+
unresolvedPathParams.map((token) => {
|
|
7014
|
+
if (token.startsWith("{") && token.endsWith("}")) {
|
|
7015
|
+
return token.slice(1, -1);
|
|
7016
|
+
}
|
|
7017
|
+
return token.replace(/^\//, "").slice(1);
|
|
7018
|
+
})
|
|
7019
|
+
)
|
|
7020
|
+
);
|
|
7021
|
+
throw new Error(
|
|
7022
|
+
`Missing required path params for endpoint ${String(endpoint)}: ${missingParams.join(", ")}`
|
|
7023
|
+
);
|
|
7024
|
+
}
|
|
7025
|
+
const endpointConfig = API_ENDPOINTS[endpoint];
|
|
7026
|
+
const method = endpointConfig.method;
|
|
7027
|
+
const isGetOrHead = method === "GET" || method === "HEAD";
|
|
7028
|
+
const queryParams = new URLSearchParams();
|
|
7029
|
+
Object.entries(unusedParams).forEach(([key, value]) => {
|
|
7030
|
+
appendQueryParam(queryParams, key, value);
|
|
7031
|
+
});
|
|
7032
|
+
if (isGetOrHead && typeof body === "object" && body !== null && !isFormDataBody(body)) {
|
|
7033
|
+
Object.entries(body).forEach(([key, value]) => {
|
|
7034
|
+
appendQueryParam(queryParams, key, value);
|
|
7035
|
+
});
|
|
7036
|
+
}
|
|
7037
|
+
const queryString = queryParams.toString();
|
|
7038
|
+
if (queryString) {
|
|
7039
|
+
url += (url.includes("?") ? "&" : "?") + queryString;
|
|
7040
|
+
}
|
|
7041
|
+
const formDataBody = isFormDataBody(body) ? body : void 0;
|
|
7042
|
+
const optionsNext = options?.next;
|
|
7043
|
+
const nextOptions = { ...optionsNext ?? {} };
|
|
7044
|
+
const cacheIsNoStore = options?.cache === "no-store";
|
|
7045
|
+
if (cacheIsNoStore) {
|
|
7046
|
+
delete nextOptions.revalidate;
|
|
7047
|
+
} else if (isGetOrHead && nextOptions.revalidate === void 0 && "revalidate" in endpointConfig && typeof endpointConfig.revalidate === "number") {
|
|
7048
|
+
nextOptions.revalidate = endpointConfig.revalidate;
|
|
7049
|
+
}
|
|
7050
|
+
if ("tags" in endpointConfig && Array.isArray(endpointConfig.tags)) {
|
|
7051
|
+
const processedTags = endpointConfig.tags.map((tag) => {
|
|
7052
|
+
let processedTag = tag;
|
|
7053
|
+
if (params) {
|
|
7054
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
7055
|
+
processedTag = processedTag.replace(`{${key}}`, String(value));
|
|
7056
|
+
});
|
|
7057
|
+
}
|
|
7058
|
+
return /\{[^}]+\}/.test(processedTag) ? null : processedTag;
|
|
7059
|
+
}).filter((tag) => tag !== null);
|
|
7060
|
+
nextOptions.tags = Array.from(/* @__PURE__ */ new Set([...nextOptions.tags ?? [], ...processedTags]));
|
|
7061
|
+
}
|
|
7062
|
+
const init = {
|
|
7063
|
+
method,
|
|
7064
|
+
...options,
|
|
7065
|
+
credentials: "same-origin",
|
|
7066
|
+
body: isGetOrHead || body == null ? void 0 : formDataBody ?? JSON.stringify(body),
|
|
7067
|
+
headers: buildRequestHeaders({
|
|
7068
|
+
optionsHeaders: options.headers,
|
|
7069
|
+
authHeaders: headers,
|
|
7070
|
+
includeJsonContentType: !isGetOrHead && !formDataBody
|
|
7071
|
+
}),
|
|
7072
|
+
...Object.keys(nextOptions).length > 0 ? { next: nextOptions } : {}
|
|
7073
|
+
};
|
|
7074
|
+
return {
|
|
7075
|
+
url,
|
|
7076
|
+
init,
|
|
7077
|
+
...!isGetOrHead && "tags" in endpointConfig && Array.isArray(endpointConfig.tags) ? { cacheInvalidationTags: endpointConfig.tags.map((tag) => tag) } : {}
|
|
7078
|
+
};
|
|
7079
|
+
}
|
|
7052
7080
|
function createParsedClient(rawClient) {
|
|
7053
7081
|
return async (params) => {
|
|
7054
7082
|
const response = await rawClient(params);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { assertNever2, usePreviewDesignHistoryOrder, useOptionalEditorUiStoreInstance, getPageDesignEditorState, PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, unwrapResponse, useDebouncedLatestSave, AMBIENT_BACKGROUND_ROLES, applyPageDesignEditorAction, resolvePreviewSidebarTab, confirmAutosaveBatch, beginAutosaveBatch, enqueueTransaction, applyBackgroundOverrideContentPatch, systemCustomizeFacetDefinitionForBlock, systemCustomizeFacetRollbackContentPatch, systemCustomizeFacetApplyContentPatch, unsafeAsEditorBlockId, createHistoryState, rejectAutosaveBatch, redoHistory, undoHistory, pushHistoryEntry, idleEditorTransactionQueueState, canRedoHistory, deriveTransactionCapabilities, canUndoHistory, backgroundOverrideEquals, attachRenderableMediaAssetFields, planPageDesignLayoutLookCompatibility, unsafeAsEditorBlockValues } from './chunk-
|
|
3
|
-
import { ApiRequestError, resolveSurfaceDocumentAttributes, SURFACE_DOCUMENT_DATA_ATTRIBUTE, SURFACE_IDS } from './chunk-
|
|
2
|
+
import { assertNever2, usePreviewDesignHistoryOrder, useOptionalEditorUiStoreInstance, getPageDesignEditorState, PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, unwrapResponse, useDebouncedLatestSave, AMBIENT_BACKGROUND_ROLES, applyPageDesignEditorAction, resolvePreviewSidebarTab, confirmAutosaveBatch, beginAutosaveBatch, enqueueTransaction, applyBackgroundOverrideContentPatch, systemCustomizeFacetDefinitionForBlock, systemCustomizeFacetRollbackContentPatch, systemCustomizeFacetApplyContentPatch, unsafeAsEditorBlockId, createHistoryState, rejectAutosaveBatch, redoHistory, undoHistory, pushHistoryEntry, idleEditorTransactionQueueState, canRedoHistory, deriveTransactionCapabilities, canUndoHistory, backgroundOverrideEquals, attachRenderableMediaAssetFields, planPageDesignLayoutLookCompatibility, unsafeAsEditorBlockValues } from './chunk-PMBB6MQ7.mjs';
|
|
3
|
+
import { ApiRequestError, resolveSurfaceDocumentAttributes, SURFACE_DOCUMENT_DATA_ATTRIBUTE, SURFACE_IDS } from './chunk-BOQXMCSP.mjs';
|
|
4
4
|
import { createContext, useState, useRef, useEffect, useMemo, useLayoutEffect, useContext } from 'react';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|