@riverbankcms/sdk 0.118.0 → 0.119.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.
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { $c as cn, $i as findCuratedPalette, $l as LoaderCircle, A as dismissWarnings, Ac as CollapsibleContent, Ai as curatedSiteStyles, B as previewCuratedPalette, Bc as DropdownMenuLabel, C as applyResolvedSelections, Cl as assertNever$1, D as createPalette, Dn as listEntryPageContentSlots, Ds as updateButtonStyleSelectionChoice, E as committedPaletteForSnapshot, Es as resolveButtonStyleSelection, F as openRow, Fi as getHeaderLayout, G as previewSiteStyle, Gt as useEditorUiStore, H as previewHeaderLayout, Hc as DropdownMenuTrigger, Hl as Smartphone, I as paletteMutationCapability, Ic as Surface, Ii as getHeaderStyle, J as setPaletteColors, K as reconcilePaletteLibraryActive, Kl as Plus, Kt as useEditorUiStoreInstance, L as palettePreviewProjection, Lc as DropdownMenu, M as markApplyFailed, Mi as getCuratedSiteStyle, N as markApplySaved, Nn as ThemeScope, O as createStyleConfiguratorState, Os as buttonStyleSelectionKey, P as markApplySaving, Pi as findFooterLook, Pl as X$1, Qi as curatedPalettes, Ql as Maximize2, R as prepareStalePaletteRetry, Rc as DropdownMenuContent, Sc as TabsTrigger, T as cancelPreview, Ts as findButtonStyleRecipe, U as previewHeaderStyle, Ul as SlidersHorizontal, V as previewFooterLook, Vc as DropdownMenuSeparator, W as previewSitePalette, X as syncStyleConfiguratorState, Xc as Button, Xl as Monitor, Y as styleConfiguratorHistoryEntryForPersistedSelection, Z as toggleRow, _ as planSiteChromeLookSelection, _c as PopoverTrigger, _n as createManifestValidation, at as resolvePreviewSidebarTab, b as usePreviewDesignCoordinator, bc as TabsContent, bn as createStoreBackend, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cc as SelectContent, cu as ChevronLeft, d as PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE, dc as SelectValue, dn as resolveContentTitle, dt as useUISelector, ea as buildPaletteLibraryReadModel, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fc as Callout, g as cycleableSiteChromeOptions, gc as PopoverContent, h as cycleSiteChromeLookId, hc as Popover, hn as ManifestForm, it as createOptimisticActionRunner, j as isPreviewingChange, jc as CollapsibleTrigger, js as themeButtonClassName, k as deriveStyleConfiguratorCapabilities, kc as Collapsible, l as resolveStyleConfiguratorInitialSnapshot, lc as SelectItem, ln as deriveRouteMetadataPresentation, m as buildSiteChromeLookModels, mc as SearchInput, mt as useEntryController, n as useSiteChromeCustomizeOptional, na as paletteColorsEqual, nl as unsafeAsEditorBlockId, ot as FooterComposerPanel, p as reportPreviewDesignError, pc as CalloutDescription, q as resetTypographyToSaved, ra as paletteColorsSchema, s as buildApplySiteStyleSelectionBody, sc as Select, sn as isAdapterReferenceKind, su as ChevronRight, ta as paletteColorEntries, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, uc as SelectTrigger, un as resolvePageRouteSlug, ut as ContentFieldsForm, uu as Check, v as planSiteStylePreviewChange, vc as Input, vn as FormRenderer, w as applyTypographyDraftPatch, ws as buttonStyleSelectionParameterValue, xc as TabsList, yc as Tabs, z as previewButtonStyle, zc as DropdownMenuItem, zl as Tablet, zt as BlockEditor } from "./SiteChromeCustomizeContext-CciG60M5.mjs";
2
+ import { $c as cn, $i as findCuratedPalette, $l as LoaderCircle, A as dismissWarnings, Ac as CollapsibleContent, Ai as curatedSiteStyles, B as previewCuratedPalette, Bc as DropdownMenuLabel, C as applyResolvedSelections, Cl as assertNever$1, D as createPalette, Dn as listEntryPageContentSlots, Ds as updateButtonStyleSelectionChoice, E as committedPaletteForSnapshot, Es as resolveButtonStyleSelection, F as openRow, Fi as getHeaderLayout, G as previewSiteStyle, Gt as useEditorUiStore, H as previewHeaderLayout, Hc as DropdownMenuTrigger, Hl as Smartphone, I as paletteMutationCapability, Ic as Surface, Ii as getHeaderStyle, J as setPaletteColors, K as reconcilePaletteLibraryActive, Kl as Plus, Kt as useEditorUiStoreInstance, L as palettePreviewProjection, Lc as DropdownMenu, M as markApplyFailed, Mi as getCuratedSiteStyle, N as markApplySaved, Nn as ThemeScope, O as createStyleConfiguratorState, Os as buttonStyleSelectionKey, P as markApplySaving, Pi as findFooterLook, Pl as X$1, Qi as curatedPalettes, Ql as Maximize2, R as prepareStalePaletteRetry, Rc as DropdownMenuContent, Sc as TabsTrigger, T as cancelPreview, Ts as findButtonStyleRecipe, U as previewHeaderStyle, Ul as SlidersHorizontal, V as previewFooterLook, Vc as DropdownMenuSeparator, W as previewSitePalette, X as syncStyleConfiguratorState, Xc as Button, Xl as Monitor, Y as styleConfiguratorHistoryEntryForPersistedSelection, Z as toggleRow, _ as planSiteChromeLookSelection, _c as PopoverTrigger, _n as createManifestValidation, at as resolvePreviewSidebarTab, b as usePreviewDesignCoordinator, bc as TabsContent, bn as createStoreBackend, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cc as SelectContent, cu as ChevronLeft, d as PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE, dc as SelectValue, dn as resolveContentTitle, dt as useUISelector, ea as buildPaletteLibraryReadModel, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fc as Callout, g as cycleableSiteChromeOptions, gc as PopoverContent, h as cycleSiteChromeLookId, hc as Popover, hn as ManifestForm, it as createOptimisticActionRunner, j as isPreviewingChange, jc as CollapsibleTrigger, js as themeButtonClassName, k as deriveStyleConfiguratorCapabilities, kc as Collapsible, l as resolveStyleConfiguratorInitialSnapshot, lc as SelectItem, ln as deriveRouteMetadataPresentation, m as buildSiteChromeLookModels, mc as SearchInput, mt as useEntryController, n as useSiteChromeCustomizeOptional, na as paletteColorsEqual, nl as unsafeAsEditorBlockId, ot as FooterComposerPanel, p as reportPreviewDesignError, pc as CalloutDescription, q as resetTypographyToSaved, ra as paletteColorsSchema, s as buildApplySiteStyleSelectionBody, sc as Select, sn as isAdapterReferenceKind, su as ChevronRight, ta as paletteColorEntries, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, uc as SelectTrigger, un as resolvePageRouteSlug, ut as ContentFieldsForm, uu as Check, v as planSiteStylePreviewChange, vc as Input, vn as FormRenderer, w as applyTypographyDraftPatch, ws as buttonStyleSelectionParameterValue, xc as TabsList, yc as Tabs, z as previewButtonStyle, zc as DropdownMenuItem, zl as Tablet, zt as BlockEditor } from "./SiteChromeCustomizeContext-66QfCbAS.mjs";
3
3
  import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-DN7vcRsv.mjs";
4
- import { S as getSiteFontsStorageUrl, _ as useBlockCustomizeControls, b as buildFontPreviewUrl, d as resolvePreviewDashboardSetupHandoff, f as resolvePreviewEditorGuidanceModel, g as usePreviewBlockCustomizeSelectionOptional, h as canInspectSiteStyle, m as canApplySiteStyle, p as resolvePreviewSidebarChromeModel, u as buildPreviewDashboardSetupUrl, v as PreviewFormProvider, x as generateFontFaceCss, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-BWIO_Dsi.mjs";
5
- import { t as Separator } from "./separator-DJ4bkeY3.mjs";
4
+ import { S as getSiteFontsStorageUrl, _ as useBlockCustomizeControls, b as buildFontPreviewUrl, d as resolvePreviewDashboardSetupHandoff, f as resolvePreviewEditorGuidanceModel, g as usePreviewBlockCustomizeSelectionOptional, h as canInspectSiteStyle, m as canApplySiteStyle, p as resolvePreviewSidebarChromeModel, u as buildPreviewDashboardSetupUrl, v as PreviewFormProvider, x as generateFontFaceCss, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-CvJTVgWa.mjs";
5
+ import { t as Separator } from "./separator-CqRhcCxD.mjs";
6
6
  import React, { createContext, forwardRef, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useQuery, useQueryClient } from "@tanstack/react-query";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { $c as cn, $l as LoaderCircle, Cc as Dialog, Dc as DialogHeader, Gl as Redo2, Gt as useEditorUiStore, Hc as DropdownMenuTrigger, Il as Undo2, It as useEditor, Jl as PenLine, Kt as useEditorUiStoreInstance, Lc as DropdownMenu, Ll as TriangleAlert, Oc as DialogTitle, Rc as DropdownMenuContent, Tc as DialogDescription, Vl as Sparkles, Wt as classifyHistoryShortcut, Xc as Button, Yl as Palette, Zc as cva, a as previewDesignHistoryDomainForCommand, ac as TooltipContent, ht as useEntryEditorController, i as usePreviewDesignHistoryOrder, ic as Tooltip, lu as ChevronDown, n as useSiteChromeCustomizeOptional, nn as useMultiAutosave, nu as Eye, o as selectPreviewDesignHistoryDomain, oc as TooltipTrigger, ql as Pencil, ru as EllipsisVertical, wc as DialogContent, zc as DropdownMenuItem } from "./SiteChromeCustomizeContext-CciG60M5.mjs";
2
+ import { $c as cn, $l as LoaderCircle, Cc as Dialog, Dc as DialogHeader, Gl as Redo2, Gt as useEditorUiStore, Hc as DropdownMenuTrigger, Il as Undo2, It as useEditor, Jl as PenLine, Kt as useEditorUiStoreInstance, Lc as DropdownMenu, Ll as TriangleAlert, Oc as DialogTitle, Rc as DropdownMenuContent, Tc as DialogDescription, Vl as Sparkles, Wt as classifyHistoryShortcut, Xc as Button, Yl as Palette, Zc as cva, a as previewDesignHistoryDomainForCommand, ac as TooltipContent, ht as useEntryEditorController, i as usePreviewDesignHistoryOrder, ic as Tooltip, lu as ChevronDown, n as useSiteChromeCustomizeOptional, nn as useMultiAutosave, nu as Eye, o as selectPreviewDesignHistoryDomain, oc as TooltipTrigger, ql as Pencil, ru as EllipsisVertical, wc as DialogContent, zc as DropdownMenuItem } from "./SiteChromeCustomizeContext-66QfCbAS.mjs";
3
3
  import { d as unwrapResponse, r as usePreviewAuth } from "./previewAuthStore-DN7vcRsv.mjs";
4
- import { C as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME } from "./SdkPreviewModeRuntime-BWIO_Dsi.mjs";
4
+ import { C as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME } from "./SdkPreviewModeRuntime-CvJTVgWa.mjs";
5
5
  import * as React$1 from "react";
6
6
  import { useCallback, useEffect, useMemo, useState, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { $ as confirmAutosaveBatch, $a as toLocationMapHydrationProps, $c as cn, $n as uiTransforms, $o as CircleMinusIcon, $r as productItemKey, $s as mapCurrentValueForSelect, $t as undoHistory, Aa as eventCalendarDefaultViewSchema, Al as unsafeAsFormId, An as deriveLaunchReadiness, Ao as mediaSchema, Ar as buildGiftingInteractiveIslandProps, As as parseThemeButtonVariantId, At as ReferenceField, Ba as eventBlockKindValues, Bi as getGradientPreset, Bl as Star, Bn as mergeContentWithBlockStyleOverrides, Bo as isObjectRecord, Br as buildProductListInteractiveIslandProps, Bs as assertNever$6, Bt as hideThemeV2RawStyleFields, Ca as resolveEventListPaginationAction, Cc as Dialog, Ci as formatSiteChromeBackgroundTokenLabel, Cl as assertNever$5, Cn as useMediaEditorOptional, Co as defineProgressiveBlockRuntime, Cr as resolveDiscountContext, Cs as siblingPath, Ct as IconPickerField, Da as calendarTabViewsSchema, Dc as DialogHeader, Di as retargetCompiledRuntimeFieldsForContentAdjacency, Dl as unsafeAsAppointmentResourceId, Do as splitPositioningClasses, Dr as getStepNumber$1, Dt as ButtonWidgetProvider, Ea as normalizeOptionalId, Ec as DialogFooter, Ei as retargetCompiledBoundaryRuntimeForContentAdjacency, El as parseSiteId, En as getPageDesignEditorState, Eo as markEditableSurfaceForwarding, Er as WIZARD_STEPS$1, Et as ButtonVariantField, Fa as eventCalendarListLayoutCompatibleDisplayModeValues, Fc as createCollapsibleScope, Fl as Upload, Fn as createCustomBlockRegistry, Fo as parseBlockIconValue, Fr as checkoutBlockDefinition, Fs as resolveOnColorForThemeToken, Ft as EditorProvider, Ga as normalizeEventScheduleScope, Gc as createCollection, Gi as sectionTransitionVariantForBoundaryOptionId, Gn as siteHeaderManifest, Go as isInlineTextEmpty, Gr as buildProductDetailDisplay, Gs as mergeStyles, Gt as useEditorUiStore, Ha as eventSurfaceScopeValues, Hi as defaultSectionTransitionVariantForFamily, Hn as getBlockDefinition, Ho as logger, Hr as getShopDisplayForItems, Hs as normalizeBoxStylesCardVariant, Ht as stripTopLevelRoutingUi, Ia as eventCalendarListLayoutOptions, In as buildThemeRuntime, Io as resolveBlockIconRenderValue, Ir as cartBlockDefinition, Is as resolveTokenOrCssColorValue, It as useEditor, Ja as normalizeEventSurfaceScope, Jc as composeEventHandlers, Ji as backgroundAppearanceQuickColorTokenNames, Jn as planSiteOverlayHeaderClearance, Jo as isBlockButtonRole, Jr as EMPTY_COMMERCE_CART_STATE, Js as getFieldIntent, Jt as canRedoHistory, Ka as normalizeEventStaffMemberId, Kc as useControllableState, Ki as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, Kl as Plus, Kn as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Ko as parseInlineTextFromUnknown, Kr as formatCommercePrice, Ks as rgbColorValue, Kt as useEditorUiStoreInstance, La as el, Li as gradientToCss, Ln as DEFAULT_THEME_RESPONSIVE_MODE, Lo as parseGeneratedIconAssetId, Lr as buildCartInteractiveIslandProps, Ls as isThemeV2NormalEditorRawStyleFieldName, Lt as LinkField, Ma as filterAutoShowSchema, Mc as Content, Ml as err$2, Mn as isSupportedLoaderEndpoint, Mo as resolveFeatureCardGeneratedIconSizePx, Mr as buildCourseRegistrationInteractiveIslandProps, Ms as parseThemeForPersistence, Mt as useRichTextImagePicker, Na as previewStageSchema, Nc as Root, Ni as surfaceResolutionContextFromTheme, Nl as ok$3, Nn as ThemeScope, No as shouldReserveFeatureCardIconZone, Nr as normalizeEventRegistrationPageSurfaceSubject, Ns as getTextColorForBackground, Nt as RichTextField, Oa as columnOptionSchema, Oc as DialogTitle, Oi as planPageDesignLayoutLookCompatibility, Ol as unsafeAsAppointmentServiceId, On as decodePublicProductCategorySelectorQuery, Oo as planSiteChromePlacement, Or as getWizardStepsForContext$1, Ot as FileField, Pa as weekStartSchema, Pc as Trigger, Pl as X, Pn as containerResponsiveThemeCss, Po as buildGeneratedBlockIconRenderAssetLookupFromUnknown, Pr as resolveEventRegistrationScopedEvents, Ps as isCssColorLiteral, Pt as RichTextWidgetProvider, Q as beginAutosaveBatch, Qa as normalizeLocationMapProps, Qc as useComposedRefs, Qn as layoutTransforms, Qo as ChevronDownIcon, Qr as parseStoredCommerceCartState, Qs as hasEmptyOption, Qt as redoHistory, Ra as when, Ri as GRADIENT_PRESETS, Rl as Ticket, Rn as getResponsiveScopeSpec, Ro as parseGeneratedIconSetId, Rr as buildCheckoutInteractiveIslandProps, Rs as pageDesignEditorBackgroundOverrideOwner, Rt as LinkWidgetProvider, S as usePreviewThemeOverlay, Sa as resolveEventCalendarListPageSize, Sc as TabsTrigger, Si as resolveBackgroundColorValue, Sl as formatCurrencyAmount, Sn as MediaEditorContextProvider, So as defineClientOwnedBlockRuntime, Sr as findPreSelectedEvent, Ss as getAtPath, St as InlineTextField, Ta as normalizeCsvString, Tc as DialogDescription, Ti as compileEditorModelRuntime, Tl as parseMediaAssetId, Tn as applyPageDesignEditorAction, To as composeHeaderSectionWrapperClassName, Tr as resolveRegistrationTarget, Tt as EntryPickerWidgetProvider, Ua as normalizeEventBlockKind, Uc as useId$1, Ui as sectionTransitionFamilies, Un as projectRecurringSchedule, Uo as coerceInlineTextWithFallback, Ur as buildCartDisplay, Us as normalizeCardVariantRole, Ut as getBlockManifestFromSdkConfig, Va as eventScheduleScopeValues, Vi as parseGradientPresetId, Vl as Sparkles, Vn as generateDefaultAccordionSystem, Vo as isRecord$20, Vr as buildShopInteractiveIslandProps, Vs as ICON_CONFIG, Vt as prepareBlockEditorManifest, Wa as normalizeEventCategoryIdsCsv, Wc as useDirection, Wi as sectionTransitionFamilyForBoundaryOptionId, Wl as RotateCcw, Wn as siteFooterManifest, Wo as inlineTextToPlainText, Wr as buildProductCardDisplay, Ws as backgroundColorStyle, Xa as publicEventSchema, Xc as Button, Xi as parseBackgroundAppearanceColorToken, Xn as contentTransforms, Xo as ArrowDownIcon, Xr as buildProductCartItem, Xs as SdkConfigProvider, Xt as createHistoryState, Ya as normalizeEventVenueId, Yc as Primitive, Yi as foregroundTokenForBackgroundAppearanceColorToken, Yn as visibleHeaderClearancePx, Yo as getIconComponent, Yr as buildPassCartItem, Ys as isHeaderField, Yt as canUndoHistory, Za as buildGoogleMapsDirectionsUrl, Zi as defaultThemeTokens, Zl as Minus, Zn as mediaTransforms, Zo as ArrowRightIcon, Zr as deriveCommerceCheckoutState, Zs as useSdkConfig, Zt as pushHistoryEntry, _a as resolveSpacing, _i as defineFragment, _l as publicEventPricingCurrency, _o as blockBookingPaymentTermsSchema, _r as buildFormInteractiveIslandProps, _s as resolveMediaNodeResponsiveImage, _t as createSiteOptionWidgetAdapters, aa as runTransforms, ai as faqHeadingFragment, al as formatBookingDate, an as createSnapshotFromPageRecord, ao as formatEventTeacherLine, ar as shopBlockDefinition, as as FileSpreadsheetIcon, at as resolvePreviewSidebarTab, au as CirclePlus, ba as eventPageSizeSchema, bc as TabsContent, bi as boxStylesTransforms, bl as publicEventScalarPrice, bn as createStoreBackend, bo as defineInteractiveIslandMetaKeys, br as toRegistrationEvents, bs as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, bt as OfferingsPreviewGroupOrderField, cc as SelectContent, ci as formEmbedFragment, cl as formatBookingTime, cn as parseReferenceKind, co as getContainerClass, cr as newsletterSignupBlockDefinition, cs as PlusIcon, ct as PreviewInlineTextEditor, cu as ChevronLeft, da as buildOfferingsPreviewRenderStates, dc as SelectValue, di as testimonialsHeadingFragment, dl as parseBookingLocalDate, do as resolveEventLinkProps, dr as buildEventListingInteractiveIslandProps, ds as buildResolveImageUrlContext, dt as useUISelector, du as ArrowDown, ec as mapOptionValueForSelect, ei as reduceCommerceCart, el as clsx, en as unsafeAsLinkedContentEntryId, eo as formatDate$3, er as formattingTransforms, es as CirclePlusIcon, et as deriveTransactionCapabilities, eu as Image, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fa as normalizeOfferingsPreviewItemLimit, fi as ctaCopyFragment, fl as resolveBookingTimeZoneId, fn as PaletteProvider, fo as getEventAvailability, fr as eventCalendarBlockDefinition, fs as computeMediaTransformStyle, ft as EditableBlockProvider, fu as __exportAll, ga as isSemanticSpacing, gi as bodyCopyFragment, gl as formatBookingPriceDisplay, gn as createManifestFormAdapter, go as resolveRuntimeEventPricing, gr as formBlockDefinition, gs as resolveImageUrlWithContext, gt as createSiteOptionApiLoader, ha as resolveOfferingsPreviewGroups, hi as heroCopyFragment, hl as parseEventPageSurfaceSubject, ho as getLocalMinuteOfDay, hr as buildEventCalendarListingRender, hs as renderVideo, ht as useEntryEditorController, i as usePreviewDesignHistoryOrder, ia as createTransformRegistry, ii as faqAccordionFragment, il as addLocalScheduleDays, in as createRoutingHelpers, io as formatEventPriceDisplay, ir as NAV_DROPDOWN_SHIFT_PROPERTY, is as FileAudioIcon, iu as CreditCard, ja as eventLayoutSchema, ji as designRuntimeRulesForTheme, jl as unsafeAsPassId, jn as AMBIENT_BACKGROUND_ROLES, jo as FEATURE_CARD_ICON_TREATMENTS, jr as courseRegistrationBlockDefinition, js as themeButtonClassName, jt as ReferenceWidgetProvider, ka as eventButtonVariantSchema, ki as componentRuntimeRulesForTheme, kl as unsafeAsCustomerPassId, kn as DEFAULT_LAUNCH_READINESS_INPUT, ko as PUBLIC_DOWNLOAD_MEDIA_TYPES, kr as giftingBlockDefinition, ks as AFFORDANCE_SUPPRESS_CLASS, kt as MediaField, lc as SelectItem, li as formCopyFragment, ll as formatLocalScheduleDate, lo as groupEventsByDate, lr as buildNewsletterFormInteractiveIslandProps, ls as ImagePresets, lt as PreviewTextEditor, lu as ChevronDown, ma as resolveOfferingsPreviewGroupCta, mi as ctaRowFragment, ml as toScheduledBookingDateTime, mn as validateBlockManifestIssues, mo as getLocalDateKey, mr as buildEventCalendarListingDisplay, ms as renderAudio, n as useSiteChromeCustomizeOptional, nc as FieldFrame, ni as headingFragment, nl as unsafeAsEditorBlockId, no as formatEventDateParts, nr as ImageResolveContextProvider, ns as DownloadIcon, nt as idleEditorTransactionQueueState, oa as ctaButton, oi as blogFeaturedPostFragment, ol as formatBookingDateTime, on as BUILT_IN_REFERENCE_KINDS, oo as formatTime$3, or as productListBlockDefinition, os as FileTextIcon, ou as CircleMinus, p as reportPreviewDesignError, pa as resolveOfferingsPreviewCoursePath, pi as heroCtaRowFragment, pl as toBookingTimeZone, pn as usePalette, po as getEventAvailabilityStatus, pr as buildEventCalendarInteractiveIslandProps, ps as getCurrentResolveImageUrlContext, pt as EntryControllerProvider, qa as normalizeEventSurfacePresetsCsv, qc as createContextScope, qi as backgroundAppearanceColorTokenNames, qn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, qo as canonicalizePersistedBlockButtonRole, qr as formatInterval, qs as textColorStyle, qt as useOptionalEditorUiStoreInstance, r as PreviewDesignHistoryOrderProvider, rc as useField, ri as cardFragment, rl as unsafeAsEditorBlockValues, rn as useDebouncedLatestSave, ro as formatEventPrice, rr as useImageResolveContextOptional, rs as FileArchiveIcon, rt as rejectAutosaveBatch, sc as Select, si as singleButtonFragment, sl as formatBookingInstant, so as getCardOrientation, sr as productDetailBlockDefinition, ss as MinusIcon, st as PreviewRichTextEditor, su as ChevronRight, t as SiteChromeCustomizeProvider, tc as unmapValueFromSelect, ti as richTextFragment, tl as parseFooterModuleId, tn as recordsEqual, to as formatEventCompactDateRail, tr as createManifestValidator, ts as ClockIcon$1, tt as enqueueTransaction, tu as GripVertical, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, ua as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, uc as SelectTrigger, ui as testimonialsCarouselFragment, ul as getBookingLocalDateKey, uo as resolveEventCta, ur as eventListingBlockDefinition, us as MediaPlaceholder, va as buildEventRuntimeFilters, vi as BACKGROUND_POSITION_PRESET_VALUES, vl as publicEventPricingMode, vn as FormRenderer, vo as buildInteractiveIslandProps, vr as eventRegistrationBlockDefinition, vs as resolveMediaStorageUrl, vt as SiteOptionPickerField, wa as normalizeCsvIds, wc as DialogContent, wi as applyCompiledRuntimeFieldsToContent, wl as expectParsedBrandedId, wn as useApiMediaUploader, wr as resolveEventRequiresPayment, wt as EntryPickerField, x as PreviewThemeOverlayProvider, xa as getEventRuntimeFiltersKey, xc as TabsList, xi as resolveSurfaceForegroundStyles, xl as publicEventTicketTypes, xn as MediaEditor, xo as createZodCodec, xr as findEventByOccurrenceId, xs as attachRenderableMediaAssetFields, xt as OfferingsPreviewWidgetProvider, y as PreviewDesignCoordinatorProvider, ya as eventListPaginationActionSchema, yc as Tabs, yi as getAnchorClasses, yl as publicEventPricingType, yn as evaluateVisibility, yo as createInteractiveIslandCodec, yr as buildEventRegistrationInteractiveIslandProps, ys as setContextResolveImageUrlContext, yt as SiteOptionWidgetProvider, za as bindingSchema, zi as GRADIENT_PRESET_IDS, zn as escapeStyleContent, zo as RichTextDocSchema, zr as buildProductDetailInteractiveIslandProps, zs as asDesignBlockId } from "./SiteChromeCustomizeContext-CciG60M5.mjs";
2
+ import { $ as confirmAutosaveBatch, $a as toLocationMapHydrationProps, $c as cn, $n as uiTransforms, $o as CircleMinusIcon, $r as productItemKey, $s as mapCurrentValueForSelect, $t as undoHistory, Aa as eventCalendarDefaultViewSchema, Al as unsafeAsFormId, An as deriveLaunchReadiness, Ao as mediaSchema, Ar as buildGiftingInteractiveIslandProps, As as parseThemeButtonVariantId, At as ReferenceField, Ba as eventBlockKindValues, Bi as getGradientPreset, Bl as Star, Bn as mergeContentWithBlockStyleOverrides, Bo as isObjectRecord, Br as buildProductListInteractiveIslandProps, Bs as assertNever$6, Bt as hideThemeV2RawStyleFields, Ca as resolveEventListPaginationAction, Cc as Dialog, Ci as formatSiteChromeBackgroundTokenLabel, Cl as assertNever$5, Cn as useMediaEditorOptional, Co as defineProgressiveBlockRuntime, Cr as resolveDiscountContext, Cs as siblingPath, Ct as IconPickerField, Da as calendarTabViewsSchema, Dc as DialogHeader, Di as retargetCompiledRuntimeFieldsForContentAdjacency, Dl as unsafeAsAppointmentResourceId, Do as splitPositioningClasses, Dr as getStepNumber$1, Dt as ButtonWidgetProvider, Ea as normalizeOptionalId, Ec as DialogFooter, Ei as retargetCompiledBoundaryRuntimeForContentAdjacency, El as parseSiteId, En as getPageDesignEditorState, Eo as markEditableSurfaceForwarding, Er as WIZARD_STEPS$1, Et as ButtonVariantField, Fa as eventCalendarListLayoutCompatibleDisplayModeValues, Fc as createCollapsibleScope, Fl as Upload, Fn as createCustomBlockRegistry, Fo as parseBlockIconValue, Fr as checkoutBlockDefinition, Fs as resolveOnColorForThemeToken, Ft as EditorProvider, Ga as normalizeEventScheduleScope, Gc as createCollection, Gi as sectionTransitionVariantForBoundaryOptionId, Gn as siteHeaderManifest, Go as isInlineTextEmpty, Gr as buildProductDetailDisplay, Gs as mergeStyles, Gt as useEditorUiStore, Ha as eventSurfaceScopeValues, Hi as defaultSectionTransitionVariantForFamily, Hn as getBlockDefinition, Ho as logger, Hr as getShopDisplayForItems, Hs as normalizeBoxStylesCardVariant, Ht as stripTopLevelRoutingUi, Ia as eventCalendarListLayoutOptions, In as buildThemeRuntime, Io as resolveBlockIconRenderValue, Ir as cartBlockDefinition, Is as resolveTokenOrCssColorValue, It as useEditor, Ja as normalizeEventSurfaceScope, Jc as composeEventHandlers, Ji as backgroundAppearanceQuickColorTokenNames, Jn as planSiteOverlayHeaderClearance, Jo as isBlockButtonRole, Jr as EMPTY_COMMERCE_CART_STATE, Js as getFieldIntent, Jt as canRedoHistory, Ka as normalizeEventStaffMemberId, Kc as useControllableState, Ki as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, Kl as Plus, Kn as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Ko as parseInlineTextFromUnknown, Kr as formatCommercePrice, Ks as rgbColorValue, Kt as useEditorUiStoreInstance, La as el, Li as gradientToCss, Ln as DEFAULT_THEME_RESPONSIVE_MODE, Lo as parseGeneratedIconAssetId, Lr as buildCartInteractiveIslandProps, Ls as isThemeV2NormalEditorRawStyleFieldName, Lt as LinkField, Ma as filterAutoShowSchema, Mc as Content, Ml as err$2, Mn as isSupportedLoaderEndpoint, Mo as resolveFeatureCardGeneratedIconSizePx, Mr as buildCourseRegistrationInteractiveIslandProps, Ms as parseThemeForPersistence, Mt as useRichTextImagePicker, Na as previewStageSchema, Nc as Root, Ni as surfaceResolutionContextFromTheme, Nl as ok$3, Nn as ThemeScope, No as shouldReserveFeatureCardIconZone, Nr as normalizeEventRegistrationPageSurfaceSubject, Ns as getTextColorForBackground, Nt as RichTextField, Oa as columnOptionSchema, Oc as DialogTitle, Oi as planPageDesignLayoutLookCompatibility, Ol as unsafeAsAppointmentServiceId, On as decodePublicProductCategorySelectorQuery, Oo as planSiteChromePlacement, Or as getWizardStepsForContext$1, Ot as FileField, Pa as weekStartSchema, Pc as Trigger, Pl as X, Pn as containerResponsiveThemeCss, Po as buildGeneratedBlockIconRenderAssetLookupFromUnknown, Pr as resolveEventRegistrationScopedEvents, Ps as isCssColorLiteral, Pt as RichTextWidgetProvider, Q as beginAutosaveBatch, Qa as normalizeLocationMapProps, Qc as useComposedRefs, Qn as layoutTransforms, Qo as ChevronDownIcon, Qr as parseStoredCommerceCartState, Qs as hasEmptyOption, Qt as redoHistory, Ra as when, Ri as GRADIENT_PRESETS, Rl as Ticket, Rn as getResponsiveScopeSpec, Ro as parseGeneratedIconSetId, Rr as buildCheckoutInteractiveIslandProps, Rs as pageDesignEditorBackgroundOverrideOwner, Rt as LinkWidgetProvider, S as usePreviewThemeOverlay, Sa as resolveEventCalendarListPageSize, Sc as TabsTrigger, Si as resolveBackgroundColorValue, Sl as formatCurrencyAmount, Sn as MediaEditorContextProvider, So as defineClientOwnedBlockRuntime, Sr as findPreSelectedEvent, Ss as getAtPath, St as InlineTextField, Ta as normalizeCsvString, Tc as DialogDescription, Ti as compileEditorModelRuntime, Tl as parseMediaAssetId, Tn as applyPageDesignEditorAction, To as composeHeaderSectionWrapperClassName, Tr as resolveRegistrationTarget, Tt as EntryPickerWidgetProvider, Ua as normalizeEventBlockKind, Uc as useId$1, Ui as sectionTransitionFamilies, Un as projectRecurringSchedule, Uo as coerceInlineTextWithFallback, Ur as buildCartDisplay, Us as normalizeCardVariantRole, Ut as getBlockManifestFromSdkConfig, Va as eventScheduleScopeValues, Vi as parseGradientPresetId, Vl as Sparkles, Vn as generateDefaultAccordionSystem, Vo as isRecord$20, Vr as buildShopInteractiveIslandProps, Vs as ICON_CONFIG, Vt as prepareBlockEditorManifest, Wa as normalizeEventCategoryIdsCsv, Wc as useDirection, Wi as sectionTransitionFamilyForBoundaryOptionId, Wl as RotateCcw, Wn as siteFooterManifest, Wo as inlineTextToPlainText, Wr as buildProductCardDisplay, Ws as backgroundColorStyle, Xa as publicEventSchema, Xc as Button, Xi as parseBackgroundAppearanceColorToken, Xn as contentTransforms, Xo as ArrowDownIcon, Xr as buildProductCartItem, Xs as SdkConfigProvider, Xt as createHistoryState, Ya as normalizeEventVenueId, Yc as Primitive, Yi as foregroundTokenForBackgroundAppearanceColorToken, Yn as visibleHeaderClearancePx, Yo as getIconComponent, Yr as buildPassCartItem, Ys as isHeaderField, Yt as canUndoHistory, Za as buildGoogleMapsDirectionsUrl, Zi as defaultThemeTokens, Zl as Minus, Zn as mediaTransforms, Zo as ArrowRightIcon, Zr as deriveCommerceCheckoutState, Zs as useSdkConfig, Zt as pushHistoryEntry, _a as resolveSpacing, _i as defineFragment, _l as publicEventPricingCurrency, _o as blockBookingPaymentTermsSchema, _r as buildFormInteractiveIslandProps, _s as resolveMediaNodeResponsiveImage, _t as createSiteOptionWidgetAdapters, aa as runTransforms, ai as faqHeadingFragment, al as formatBookingDate, an as createSnapshotFromPageRecord, ao as formatEventTeacherLine, ar as shopBlockDefinition, as as FileSpreadsheetIcon, at as resolvePreviewSidebarTab, au as CirclePlus, ba as eventPageSizeSchema, bc as TabsContent, bi as boxStylesTransforms, bl as publicEventScalarPrice, bn as createStoreBackend, bo as defineInteractiveIslandMetaKeys, br as toRegistrationEvents, bs as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, bt as OfferingsPreviewGroupOrderField, cc as SelectContent, ci as formEmbedFragment, cl as formatBookingTime, cn as parseReferenceKind, co as getContainerClass, cr as newsletterSignupBlockDefinition, cs as PlusIcon, ct as PreviewInlineTextEditor, cu as ChevronLeft, da as buildOfferingsPreviewRenderStates, dc as SelectValue, di as testimonialsHeadingFragment, dl as parseBookingLocalDate, do as resolveEventLinkProps, dr as buildEventListingInteractiveIslandProps, ds as buildResolveImageUrlContext, dt as useUISelector, du as ArrowDown, ec as mapOptionValueForSelect, ei as reduceCommerceCart, el as clsx, en as unsafeAsLinkedContentEntryId, eo as formatDate$3, er as formattingTransforms, es as CirclePlusIcon, et as deriveTransactionCapabilities, eu as Image, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fa as normalizeOfferingsPreviewItemLimit, fi as ctaCopyFragment, fl as resolveBookingTimeZoneId, fn as PaletteProvider, fo as getEventAvailability, fr as eventCalendarBlockDefinition, fs as computeMediaTransformStyle, ft as EditableBlockProvider, fu as __exportAll, ga as isSemanticSpacing, gi as bodyCopyFragment, gl as formatBookingPriceDisplay, gn as createManifestFormAdapter, go as resolveRuntimeEventPricing, gr as formBlockDefinition, gs as resolveImageUrlWithContext, gt as createSiteOptionApiLoader, ha as resolveOfferingsPreviewGroups, hi as heroCopyFragment, hl as parseEventPageSurfaceSubject, ho as getLocalMinuteOfDay, hr as buildEventCalendarListingRender, hs as renderVideo, ht as useEntryEditorController, i as usePreviewDesignHistoryOrder, ia as createTransformRegistry, ii as faqAccordionFragment, il as addLocalScheduleDays, in as createRoutingHelpers, io as formatEventPriceDisplay, ir as NAV_DROPDOWN_SHIFT_PROPERTY, is as FileAudioIcon, iu as CreditCard, ja as eventLayoutSchema, ji as designRuntimeRulesForTheme, jl as unsafeAsPassId, jn as AMBIENT_BACKGROUND_ROLES, jo as FEATURE_CARD_ICON_TREATMENTS, jr as courseRegistrationBlockDefinition, js as themeButtonClassName, jt as ReferenceWidgetProvider, ka as eventButtonVariantSchema, ki as componentRuntimeRulesForTheme, kl as unsafeAsCustomerPassId, kn as DEFAULT_LAUNCH_READINESS_INPUT, ko as PUBLIC_DOWNLOAD_MEDIA_TYPES, kr as giftingBlockDefinition, ks as AFFORDANCE_SUPPRESS_CLASS, kt as MediaField, lc as SelectItem, li as formCopyFragment, ll as formatLocalScheduleDate, lo as groupEventsByDate, lr as buildNewsletterFormInteractiveIslandProps, ls as ImagePresets, lt as PreviewTextEditor, lu as ChevronDown, ma as resolveOfferingsPreviewGroupCta, mi as ctaRowFragment, ml as toScheduledBookingDateTime, mn as validateBlockManifestIssues, mo as getLocalDateKey, mr as buildEventCalendarListingDisplay, ms as renderAudio, n as useSiteChromeCustomizeOptional, nc as FieldFrame, ni as headingFragment, nl as unsafeAsEditorBlockId, no as formatEventDateParts, nr as ImageResolveContextProvider, ns as DownloadIcon, nt as idleEditorTransactionQueueState, oa as ctaButton, oi as blogFeaturedPostFragment, ol as formatBookingDateTime, on as BUILT_IN_REFERENCE_KINDS, oo as formatTime$3, or as productListBlockDefinition, os as FileTextIcon, ou as CircleMinus, p as reportPreviewDesignError, pa as resolveOfferingsPreviewCoursePath, pi as heroCtaRowFragment, pl as toBookingTimeZone, pn as usePalette, po as getEventAvailabilityStatus, pr as buildEventCalendarInteractiveIslandProps, ps as getCurrentResolveImageUrlContext, pt as EntryControllerProvider, qa as normalizeEventSurfacePresetsCsv, qc as createContextScope, qi as backgroundAppearanceColorTokenNames, qn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, qo as canonicalizePersistedBlockButtonRole, qr as formatInterval, qs as textColorStyle, qt as useOptionalEditorUiStoreInstance, r as PreviewDesignHistoryOrderProvider, rc as useField, ri as cardFragment, rl as unsafeAsEditorBlockValues, rn as useDebouncedLatestSave, ro as formatEventPrice, rr as useImageResolveContextOptional, rs as FileArchiveIcon, rt as rejectAutosaveBatch, sc as Select, si as singleButtonFragment, sl as formatBookingInstant, so as getCardOrientation, sr as productDetailBlockDefinition, ss as MinusIcon, st as PreviewRichTextEditor, su as ChevronRight, t as SiteChromeCustomizeProvider, tc as unmapValueFromSelect, ti as richTextFragment, tl as parseFooterModuleId, tn as recordsEqual, to as formatEventCompactDateRail, tr as createManifestValidator, ts as ClockIcon$1, tt as enqueueTransaction, tu as GripVertical, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, ua as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, uc as SelectTrigger, ui as testimonialsCarouselFragment, ul as getBookingLocalDateKey, uo as resolveEventCta, ur as eventListingBlockDefinition, us as MediaPlaceholder, va as buildEventRuntimeFilters, vi as BACKGROUND_POSITION_PRESET_VALUES, vl as publicEventPricingMode, vn as FormRenderer, vo as buildInteractiveIslandProps, vr as eventRegistrationBlockDefinition, vs as resolveMediaStorageUrl, vt as SiteOptionPickerField, wa as normalizeCsvIds, wc as DialogContent, wi as applyCompiledRuntimeFieldsToContent, wl as expectParsedBrandedId, wn as useApiMediaUploader, wr as resolveEventRequiresPayment, wt as EntryPickerField, x as PreviewThemeOverlayProvider, xa as getEventRuntimeFiltersKey, xc as TabsList, xi as resolveSurfaceForegroundStyles, xl as publicEventTicketTypes, xn as MediaEditor, xo as createZodCodec, xr as findEventByOccurrenceId, xs as attachRenderableMediaAssetFields, xt as OfferingsPreviewWidgetProvider, y as PreviewDesignCoordinatorProvider, ya as eventListPaginationActionSchema, yc as Tabs, yi as getAnchorClasses, yl as publicEventPricingType, yn as evaluateVisibility, yo as createInteractiveIslandCodec, yr as buildEventRegistrationInteractiveIslandProps, ys as setContextResolveImageUrlContext, yt as SiteOptionWidgetProvider, za as bindingSchema, zi as GRADIENT_PRESET_IDS, zn as escapeStyleContent, zo as RichTextDocSchema, zr as buildProductDetailInteractiveIslandProps, zs as asDesignBlockId } from "./SiteChromeCustomizeContext-66QfCbAS.mjs";
3
3
  import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-nKUT4TL-.mjs";
4
4
  import { _ as API_ENDPOINTS, a as usePreviewToken, c as createBearerAPIClient, d as unwrapResponse, g as resolveSurfaceDocumentAttributes, h as SURFACE_IDS, i as usePreviewAuthFetch, m as SURFACE_DOCUMENT_DATA_ATTRIBUTE, n as markPreviewAuthExpired, o as isPreviewRuntimeSessionEditable, r as usePreviewAuth, s as ApiRequestError, t as initPreviewAuth } from "./previewAuthStore-DN7vcRsv.mjs";
5
5
  import * as React$1 from "react";
@@ -36850,10 +36850,10 @@ function LinkedEntryEditEventBridge() {
36850
36850
  //#region ../preview-next/src/client/preview/PreviewShellLayout.tsx
36851
36851
  const previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
36852
36852
  const PreviewEditorSidebar = React.lazy(async () => {
36853
- return { default: (await import("./PreviewEditorSidebar-BBcK1DjD.mjs")).PreviewEditorSidebar };
36853
+ return { default: (await import("./PreviewEditorSidebar-C7TXFitV.mjs")).PreviewEditorSidebar };
36854
36854
  });
36855
36855
  const PreviewEditorUI = React.lazy(async () => {
36856
- return { default: (await import("./PreviewEditorUI-CuBFoYes.mjs")).PreviewEditorUI };
36856
+ return { default: (await import("./PreviewEditorUI-_1JIHTXS.mjs")).PreviewEditorUI };
36857
36857
  });
36858
36858
  const previewPaneContainmentStyle = {
36859
36859
  contain: "layout paint",
@@ -102594,7 +102594,7 @@ function canonicalHeaderSelectionInput(layoutId, styleId) {
102594
102594
  }
102595
102595
  };
102596
102596
  }
102597
- function applySiteChromeLooks({ theme, siteStyle, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext }) {
102597
+ function applySiteChromeLooks({ theme, siteStyle, footerPresentation, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext }) {
102598
102598
  const canonicalHeaderSelection = canonicalHeaderSelectionInput(headerLayoutId, headerStyleId);
102599
102599
  const headerSelection = resolveHeaderLook({
102600
102600
  theme,
@@ -102609,10 +102609,13 @@ function applySiteChromeLooks({ theme, siteStyle, headerLookId, headerLayoutId,
102609
102609
  const headerWithBrandPresentation = headerSelectionContext?.logo ? applyHeaderBrandPresentation(header, headerSelection.brandPresentation) : header;
102610
102610
  const resolvedHeaderLookId = canonicalHeaderSelection.kind === "canonical" ? findLegacyHeaderLookIdForSelection(headerLayoutStyleSelection) : headerSelection.selectedLookId;
102611
102611
  const footerSelection = resolveFooterLook({
102612
- theme,
102612
+ theme: footerPresentation === void 0 ? theme : {
102613
+ ...theme,
102614
+ footer: footerPresentation
102615
+ },
102613
102616
  recommendedLookIds: footerLookId ? [footerLookId] : siteStyle.recommendedFooterLookIds
102614
102617
  });
102615
- const footerWithBrandPresentation = headerSelectionContext?.logo ? applyFooterBrandPresentation(footerSelection.footer, headerSelection.brandPresentation) : footerSelection.footer;
102618
+ const footerWithBrandPresentation = footerPresentation === void 0 && headerSelectionContext?.logo ? applyFooterBrandPresentation(footerSelection.footer, headerSelection.brandPresentation) : footerSelection.footer;
102616
102619
  return {
102617
102620
  theme: themeSchema.parse({
102618
102621
  ...theme,
@@ -102671,7 +102674,7 @@ function footerLogoSizeFromBrandPresentation(size) {
102671
102674
  * notices.
102672
102675
  */
102673
102676
  function compileSiteThemeFromSelections(input) {
102674
- const { siteStyle, buttonStyleSelection, typography, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext } = input;
102677
+ const { siteStyle, buttonStyleSelection, typography, footerPresentation, headerLookId, headerLayoutId, headerStyleId, footerLookId, headerSelectionContext } = input;
102675
102678
  const defaultButtonStyle = defaultButtonStyleSelectionForSiteStyle(siteStyle);
102676
102679
  const requestedButtonStyle = buttonStyleSelection ?? defaultButtonStyle;
102677
102680
  const acceptsRequestedButtonStyle = siteStyle.buttonStyleChoices.some((choice) => choice.styleId === requestedButtonStyle.styleId);
@@ -102688,6 +102691,7 @@ function compileSiteThemeFromSelections(input) {
102688
102691
  resolvedPalette: input.resolvedPalette
102689
102692
  }), siteStyle), typography ?? siteStyle.typography, siteStyle.heroTypography),
102690
102693
  siteStyle,
102694
+ footerPresentation,
102691
102695
  headerLookId,
102692
102696
  headerLayoutId,
102693
102697
  headerStyleId,
@@ -125155,6 +125159,7 @@ function generateHeaderCss(options) {
125155
125159
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
125156
125160
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
125157
125161
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
125162
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
125158
125163
  cssChunks.push(generateCtaGapStyles(header, themeId));
125159
125164
  return cssChunks.filter(Boolean).join("\n\n");
125160
125165
  }
@@ -125625,6 +125630,46 @@ const HEADER_CTA_GAP_MAP = {
125625
125630
  spacious: "3rem"
125626
125631
  };
125627
125632
  /**
125633
+ * The inverted CTA treatment is contextual to branded header surfaces. It
125634
+ * cannot be represented by the generic secondary button role alone because
125635
+ * that role is transparent and inherits the surrounding surface foreground.
125636
+ * Keep the shared button's structure/effects while making the header own the
125637
+ * palette relationship for both desktop and mobile CTAs.
125638
+ */
125639
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
125640
+ if (header.ctaTreatment !== "inverted") return "";
125641
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
125642
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
125643
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
125644
+ const hoverSelectors = [
125645
+ `${desktopSelector}:hover`,
125646
+ `${desktopSelector}[data-force-hover="true"]`,
125647
+ `${mobileSelector}:hover`,
125648
+ `${mobileSelector}[data-force-hover="true"]`
125649
+ ].join(",\n");
125650
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
125651
+ return `
125652
+ ${selectors} {
125653
+ background-color: ${tokens.getColor("background")};
125654
+ background-image: none;
125655
+ color: ${tokens.getColor("onBackground")};
125656
+ border-color: currentColor;
125657
+ }
125658
+
125659
+ ${hoverSelectors} {
125660
+ background-color: ${tokens.getColor("surface")};
125661
+ background-image: none;
125662
+ color: ${tokens.getColor("onSurface")};
125663
+ }
125664
+
125665
+ ${focusSelectors} {
125666
+ outline: 2px solid ${tokens.getColor("onBackground")};
125667
+ outline-offset: 2px;
125668
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
125669
+ }
125670
+ `;
125671
+ }
125672
+ /**
125628
125673
  * Generate CTA button gap styles (left margin between nav links and CTA)
125629
125674
  */
125630
125675
  function generateCtaGapStyles(header, themeId) {
@@ -125682,7 +125727,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
125682
125727
  `;
125683
125728
  }
125684
125729
  function resolveFooterLogoSize(footer, headerLogo) {
125685
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
125730
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
125731
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
125686
125732
  }
125687
125733
  function footerLogoSizeFromHeaderLogo(headerLogo) {
125688
125734
  const size = headerLogo?.size;
@@ -456,13 +456,38 @@ export type BookingSettings = {
456
456
  /** Controls whether event destinations render as CMS pages or system booking-first pages. */
457
457
  eventDestinationPolicy?: import("./event-destination-policy").EventDestinationPolicy;
458
458
  };
459
+ export type BookingSettingsSection = "basics" | "payments" | "events" | "appointments" | "messages";
460
+ export declare const BOOKING_SETTINGS_SECTIONS: readonly ["basics", "payments", "events", "appointments", "messages"];
461
+ export declare const BOOKING_SETTINGS_SECTION_LABELS: Record<BookingSettingsSection, string>;
462
+ export declare const BOOKING_SETTINGS_SECTION_KEYS: {
463
+ readonly basics: readonly ["modules", "verticalConfig", "personRecordMode", "defaultTimezone", "calendarDisplay", "icsFeedsEnabled", "waitlists", "teamMemberProfilePages"];
464
+ readonly payments: readonly ["paymentDefaults", "currency", "refundsIssueCredit"];
465
+ readonly events: readonly ["defaultVenueId", "eventReminderHours", "eventReminderOverrides", "eventScheduleWindowMonths", "eventOrganizerNotifications", "eventOrganizerEmail", "eventTicketingDefaultEnabled", "collectAllAttendeeDetails", "eventBookingPolicies", "defaultEventImage", "eventDestinationPolicy"];
466
+ readonly appointments: readonly ["appointmentReminderHours", "appointmentReminderOverrides", "appointmentRescheduleHours", "appointmentDefaultMinLeadMinutes", "appointmentDefaultMaxBookingNoticeMinutes", "appointmentBookingPolicies"];
467
+ readonly messages: readonly ["remindersEnabled", "notificationSettings", "appointmentStaffReminder", "appointmentStaffChangeNotifications", "eventFeedback", "appointmentFollowUp"];
468
+ };
469
+ type BookingSettingsSectionValues = {
470
+ [Section in BookingSettingsSection]: Pick<BookingSettings, (typeof BOOKING_SETTINGS_SECTION_KEYS)[Section][number]>;
471
+ };
472
+ export type BookingSettingsSectionUpdate = {
473
+ [Section in BookingSettingsSection]: {
474
+ section: Section;
475
+ settings: BookingSettingsSectionValues[Section];
476
+ };
477
+ }[BookingSettingsSection];
478
+ export type BookingSettingsSectionUpdateRequest = Readonly<{
479
+ updates: readonly BookingSettingsSectionUpdate[];
480
+ }>;
481
+ export declare function createBookingSettingsUpdateRequest(settings: BookingSettings, sections?: readonly BookingSettingsSection[]): BookingSettingsSectionUpdateRequest;
482
+ export declare function applyBookingSettingsSectionUpdate(settings: BookingSettings, update: BookingSettingsSectionUpdate): BookingSettings;
483
+ export declare function applyBookingSettingsSectionUpdates(settings: BookingSettings, updates: readonly BookingSettingsSectionUpdate[]): BookingSettings;
459
484
  export type BookingCurrencyEditState = {
460
485
  kind: "editable";
461
486
  } | {
462
487
  kind: "locked";
463
488
  reason: "paid_history_exists";
464
489
  };
465
- export type UpdateBookingSettingsRequest = BookingSettings;
490
+ export type UpdateBookingSettingsRequest = BookingSettingsSectionUpdateRequest;
466
491
  export type BookingSettingsEditorSnapshot = {
467
492
  settings: BookingSettings;
468
493
  updatedAt: string | null;
@@ -64,8 +64,8 @@ export { updateRouteMetadata } from './routes';
64
64
  export type { RouteMetadataPayload, RouteMetadataResponse } from './routes';
65
65
  export { getBookingSettingsRequest, updateBookingSettingsRequest, createAppointmentRequest, createCourseRequest, updateCourseRequest, deleteCourseRequest, deleteCourseProgramRequest, duplicateCourseRequest, addCourseEnrollmentRequest, addEventOccurrenceAttendeeRequest, updateCourseEnrollmentRequest, } from './bookings';
66
66
  export type { AppointmentService, AppointmentServiceOnlineDetails, AppointmentServiceOnlineDetailsInput, } from './bookingOperations';
67
- export type { BookingPricing } from './bookingConfig';
68
- export { DEFAULT_APPOINTMENT_STAFF_DIGEST_LOCAL_SEND_TIME, DIRECT_CHECKOUT_COLLECTION_OPTION_KINDS, } from './bookingConfig';
67
+ export type { BookingPricing, BookingSettingsSection, BookingSettingsSectionUpdate, BookingSettingsSectionUpdateRequest, } from './bookingConfig';
68
+ export { BOOKING_SETTINGS_SECTION_LABELS, BOOKING_SETTINGS_SECTION_KEYS, BOOKING_SETTINGS_SECTIONS, DEFAULT_APPOINTMENT_STAFF_DIGEST_LOCAL_SEND_TIME, DIRECT_CHECKOUT_COLLECTION_OPTION_KINDS, applyBookingSettingsSectionUpdate, applyBookingSettingsSectionUpdates, createBookingSettingsUpdateRequest, } from './bookingConfig';
69
69
  export { BOOKING_LEDGER_CANCELLATION_MODE_VALUES, BOOKING_LEDGER_DATE_BASIS_VALUES, BOOKING_LEDGER_KIND_VALUES, BOOKING_LEDGER_PERIOD_PRESET_VALUES, BOOKING_ACTIVITY_CATEGORY_VALUES, BOOKING_ACTIVITY_TYPE_VALUES, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES, BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES, CUSTOMER_MEMBERSHIP_STATUS_VALUES, CUSTOMER_PASS_STATUS_VALUES, } from './bookingRecords';
70
70
  export type { BookingQuestionAnswerExportScopeKind, CreatePersonRecordEntryRequest, ExportBookingQuestionAnswersCsvRequest, } from './bookingRecords';
71
71
  export { getEmailSettingsRequest, updateEmailSettingsRequest, sendTestEmailRequest, previewEmailTemplateRequest, } from './emailSettings';
@@ -1,5 +1,5 @@
1
1
  import type { AppointmentResourceId } from "../../../core/src/index";
2
- import type { BookingVerticalConfig } from "../bookingConfig";
2
+ import type { BookingSettingsSection, BookingVerticalConfig } from "../bookingConfig";
3
3
  import { type EventSeriesCanonicalBehaviour } from "../bookingVerticals";
4
4
  import { type StaffScope } from "../staffAccess";
5
5
  import type { SiteRole } from "../siteMembers";
@@ -73,6 +73,9 @@ export type DashboardBookingsNavDestination = Readonly<{
73
73
  kind: "booking_customers";
74
74
  }> | Readonly<{
75
75
  kind: "booking_settings";
76
+ section: BookingSettingsSection;
77
+ }> | Readonly<{
78
+ kind: "booking_closures";
76
79
  }>;
77
80
  export type DashboardBookingsNavItemPlan = Readonly<{
78
81
  label: string;
@@ -14729,44 +14729,6 @@ export type Database = {
14729
14729
  }
14730
14730
  ];
14731
14731
  };
14732
- site_cost_changes: {
14733
- Row: {
14734
- changed_by: string;
14735
- created_at: string;
14736
- id: string;
14737
- new_cost_cents: number;
14738
- previous_cost_cents: number;
14739
- reason: string | null;
14740
- site_id: string;
14741
- };
14742
- Insert: {
14743
- changed_by: string;
14744
- created_at?: string;
14745
- id?: string;
14746
- new_cost_cents: number;
14747
- previous_cost_cents: number;
14748
- reason?: string | null;
14749
- site_id: string;
14750
- };
14751
- Update: {
14752
- changed_by?: string;
14753
- created_at?: string;
14754
- id?: string;
14755
- new_cost_cents?: number;
14756
- previous_cost_cents?: number;
14757
- reason?: string | null;
14758
- site_id?: string;
14759
- };
14760
- Relationships: [
14761
- {
14762
- foreignKeyName: "site_cost_changes_site_id_fkey";
14763
- columns: ["site_id"];
14764
- isOneToOne: false;
14765
- referencedRelation: "sites";
14766
- referencedColumns: ["id"];
14767
- }
14768
- ];
14769
- };
14770
14732
  site_custom_blocks: {
14771
14733
  Row: {
14772
14734
  block_id: string;
@@ -18113,6 +18075,10 @@ export type Database = {
18113
18075
  participant_participation_id: string;
18114
18076
  }[];
18115
18077
  };
18078
+ backfill_order_item_attendee_reservations: {
18079
+ Args: never;
18080
+ Returns: number;
18081
+ };
18116
18082
  begin_site_billing_transition_attempt_atomic: {
18117
18083
  Args: {
18118
18084
  p_billing_user_id?: string;
@@ -18474,6 +18440,13 @@ export type Database = {
18474
18440
  };
18475
18441
  Returns: Json;
18476
18442
  };
18443
+ classify_order_item_attendee_reservations: {
18444
+ Args: never;
18445
+ Returns: {
18446
+ classification: string;
18447
+ row_count: number;
18448
+ }[];
18449
+ };
18477
18450
  commit_authoritative_page_surface_draft_version: {
18478
18451
  Args: {
18479
18452
  p_data: Json;
@@ -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.118.0";
11
+ export declare const SDK_VERSION = "0.119.0";
@@ -44,6 +44,12 @@ type SiteThemeSelectionsCommonInput = Readonly<{
44
44
  siteStyle: CuratedSiteStyle;
45
45
  buttonStyleSelection: ButtonStyleSelection | null;
46
46
  typography?: Theme['typography'];
47
+ /**
48
+ * Concrete footer presentation is independent of the selectable footer link
49
+ * treatment. Existing sites pass it through recompilation so choosing another
50
+ * style axis cannot reset footer structure, surfaces, branding, or legal layout.
51
+ */
52
+ footerPresentation?: Theme['footer'];
47
53
  headerLookId?: HeaderLookId | null;
48
54
  headerLayoutId?: HeaderLayoutId | null;
49
55
  headerStyleId?: HeaderStyleId | null;
@@ -156316,7 +156316,7 @@ var SimpleCache = class {
156316
156316
  * 1. This constant
156317
156317
  * 2. The "version" field in package.json
156318
156318
  */
156319
- const SDK_VERSION = "0.118.0";
156319
+ const SDK_VERSION = "0.119.0";
156320
156320
  //#endregion
156321
156321
  //#region src/client/error.ts
156322
156322
  /**
@@ -63373,6 +63373,7 @@ function generateHeaderCss(options) {
63373
63373
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
63374
63374
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
63375
63375
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
63376
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
63376
63377
  cssChunks.push(generateCtaGapStyles(header, themeId));
63377
63378
  return cssChunks.filter(Boolean).join("\n\n");
63378
63379
  }
@@ -63843,6 +63844,46 @@ const HEADER_CTA_GAP_MAP = {
63843
63844
  spacious: "3rem"
63844
63845
  };
63845
63846
  /**
63847
+ * The inverted CTA treatment is contextual to branded header surfaces. It
63848
+ * cannot be represented by the generic secondary button role alone because
63849
+ * that role is transparent and inherits the surrounding surface foreground.
63850
+ * Keep the shared button's structure/effects while making the header own the
63851
+ * palette relationship for both desktop and mobile CTAs.
63852
+ */
63853
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
63854
+ if (header.ctaTreatment !== "inverted") return "";
63855
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
63856
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
63857
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
63858
+ const hoverSelectors = [
63859
+ `${desktopSelector}:hover`,
63860
+ `${desktopSelector}[data-force-hover="true"]`,
63861
+ `${mobileSelector}:hover`,
63862
+ `${mobileSelector}[data-force-hover="true"]`
63863
+ ].join(",\n");
63864
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
63865
+ return `
63866
+ ${selectors} {
63867
+ background-color: ${tokens.getColor("background")};
63868
+ background-image: none;
63869
+ color: ${tokens.getColor("onBackground")};
63870
+ border-color: currentColor;
63871
+ }
63872
+
63873
+ ${hoverSelectors} {
63874
+ background-color: ${tokens.getColor("surface")};
63875
+ background-image: none;
63876
+ color: ${tokens.getColor("onSurface")};
63877
+ }
63878
+
63879
+ ${focusSelectors} {
63880
+ outline: 2px solid ${tokens.getColor("onBackground")};
63881
+ outline-offset: 2px;
63882
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
63883
+ }
63884
+ `;
63885
+ }
63886
+ /**
63846
63887
  * Generate CTA button gap styles (left margin between nav links and CTA)
63847
63888
  */
63848
63889
  function generateCtaGapStyles(header, themeId) {
@@ -63901,7 +63942,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
63901
63942
  `;
63902
63943
  }
63903
63944
  function resolveFooterLogoSize(footer, headerLogo) {
63904
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
63945
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
63946
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
63905
63947
  }
63906
63948
  function footerLogoSizeFromHeaderLogo(headerLogo) {
63907
63949
  const size = headerLogo?.size;
@@ -160116,7 +160158,7 @@ var SimpleCache = class {
160116
160158
  * 1. This constant
160117
160159
  * 2. The "version" field in package.json
160118
160160
  */
160119
- const SDK_VERSION = "0.118.0";
160161
+ const SDK_VERSION = "0.119.0";
160120
160162
  //#endregion
160121
160163
  //#region src/client/error.ts
160122
160164
  let _Symbol$for;
@@ -133058,6 +133058,7 @@ function generateHeaderCss(options) {
133058
133058
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
133059
133059
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
133060
133060
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
133061
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
133061
133062
  cssChunks.push(generateCtaGapStyles(header, themeId));
133062
133063
  return cssChunks.filter(Boolean).join("\n\n");
133063
133064
  }
@@ -133528,6 +133529,46 @@ const HEADER_CTA_GAP_MAP = {
133528
133529
  spacious: "3rem"
133529
133530
  };
133530
133531
  /**
133532
+ * The inverted CTA treatment is contextual to branded header surfaces. It
133533
+ * cannot be represented by the generic secondary button role alone because
133534
+ * that role is transparent and inherits the surrounding surface foreground.
133535
+ * Keep the shared button's structure/effects while making the header own the
133536
+ * palette relationship for both desktop and mobile CTAs.
133537
+ */
133538
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
133539
+ if (header.ctaTreatment !== "inverted") return "";
133540
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
133541
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
133542
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
133543
+ const hoverSelectors = [
133544
+ `${desktopSelector}:hover`,
133545
+ `${desktopSelector}[data-force-hover="true"]`,
133546
+ `${mobileSelector}:hover`,
133547
+ `${mobileSelector}[data-force-hover="true"]`
133548
+ ].join(",\n");
133549
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
133550
+ return `
133551
+ ${selectors} {
133552
+ background-color: ${tokens.getColor("background")};
133553
+ background-image: none;
133554
+ color: ${tokens.getColor("onBackground")};
133555
+ border-color: currentColor;
133556
+ }
133557
+
133558
+ ${hoverSelectors} {
133559
+ background-color: ${tokens.getColor("surface")};
133560
+ background-image: none;
133561
+ color: ${tokens.getColor("onSurface")};
133562
+ }
133563
+
133564
+ ${focusSelectors} {
133565
+ outline: 2px solid ${tokens.getColor("onBackground")};
133566
+ outline-offset: 2px;
133567
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
133568
+ }
133569
+ `;
133570
+ }
133571
+ /**
133531
133572
  * Generate CTA button gap styles (left margin between nav links and CTA)
133532
133573
  */
133533
133574
  function generateCtaGapStyles(header, themeId) {
@@ -133586,7 +133627,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
133586
133627
  `;
133587
133628
  }
133588
133629
  function resolveFooterLogoSize(footer, headerLogo) {
133589
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
133630
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
133631
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
133590
133632
  }
133591
133633
  function footerLogoSizeFromHeaderLogo(headerLogo) {
133592
133634
  const size = headerLogo?.size;
@@ -4,13 +4,13 @@ import React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/preview-next/client/runtime.tsx
6
6
  const LazySdkPreviewMode = React.lazy(async () => {
7
- return { default: (await import("../../SdkPreviewModeRuntime-BWIO_Dsi.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
7
+ return { default: (await import("../../SdkPreviewModeRuntime-CvJTVgWa.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
8
8
  });
9
9
  const LazyPreviewShell = React.lazy(async () => {
10
- return { default: (await import("../../sdk-runtime-vW8QbyPN.mjs")).PreviewShell };
10
+ return { default: (await import("../../sdk-runtime-DaOiA7ct.mjs")).PreviewShell };
11
11
  });
12
12
  const LazyPreviewShellLayout = React.lazy(async () => {
13
- return { default: (await import("../../sdk-runtime-vW8QbyPN.mjs")).PreviewShellLayout };
13
+ return { default: (await import("../../sdk-runtime-DaOiA7ct.mjs")).PreviewShellLayout };
14
14
  });
15
15
  function SdkPreviewMode(props) {
16
16
  return /* @__PURE__ */ jsx(React.Suspense, {
@@ -1,4 +1,4 @@
1
1
  "use client";
2
2
  import "./PreviewQueryProvider-nKUT4TL-.mjs";
3
- import { i as PreviewShellLayout, r as PreviewShell } from "./SdkPreviewModeRuntime-BWIO_Dsi.mjs";
3
+ import { i as PreviewShellLayout, r as PreviewShell } from "./SdkPreviewModeRuntime-CvJTVgWa.mjs";
4
4
  export { PreviewShell, PreviewShellLayout };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { $c as cn, Yc as Primitive } from "./SiteChromeCustomizeContext-CciG60M5.mjs";
2
+ import { $c as cn, Yc as Primitive } from "./SiteChromeCustomizeContext-66QfCbAS.mjs";
3
3
  import * as React$1 from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../../node_modules/.pnpm/@radix-ui+react-separator@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.17__@types+r_adfab47c9055efb8b0c4b77a2b96b053/node_modules/@radix-ui/react-separator/dist/index.mjs
@@ -55192,6 +55192,7 @@ function generateHeaderCss(options) {
55192
55192
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
55193
55193
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
55194
55194
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
55195
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
55195
55196
  cssChunks.push(generateCtaGapStyles(header, themeId));
55196
55197
  return cssChunks.filter(Boolean).join("\n\n");
55197
55198
  }
@@ -55662,6 +55663,46 @@ const HEADER_CTA_GAP_MAP = {
55662
55663
  spacious: "3rem"
55663
55664
  };
55664
55665
  /**
55666
+ * The inverted CTA treatment is contextual to branded header surfaces. It
55667
+ * cannot be represented by the generic secondary button role alone because
55668
+ * that role is transparent and inherits the surrounding surface foreground.
55669
+ * Keep the shared button's structure/effects while making the header own the
55670
+ * palette relationship for both desktop and mobile CTAs.
55671
+ */
55672
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
55673
+ if (header.ctaTreatment !== "inverted") return "";
55674
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
55675
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
55676
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
55677
+ const hoverSelectors = [
55678
+ `${desktopSelector}:hover`,
55679
+ `${desktopSelector}[data-force-hover="true"]`,
55680
+ `${mobileSelector}:hover`,
55681
+ `${mobileSelector}[data-force-hover="true"]`
55682
+ ].join(",\n");
55683
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
55684
+ return `
55685
+ ${selectors} {
55686
+ background-color: ${tokens.getColor("background")};
55687
+ background-image: none;
55688
+ color: ${tokens.getColor("onBackground")};
55689
+ border-color: currentColor;
55690
+ }
55691
+
55692
+ ${hoverSelectors} {
55693
+ background-color: ${tokens.getColor("surface")};
55694
+ background-image: none;
55695
+ color: ${tokens.getColor("onSurface")};
55696
+ }
55697
+
55698
+ ${focusSelectors} {
55699
+ outline: 2px solid ${tokens.getColor("onBackground")};
55700
+ outline-offset: 2px;
55701
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
55702
+ }
55703
+ `;
55704
+ }
55705
+ /**
55665
55706
  * Generate CTA button gap styles (left margin between nav links and CTA)
55666
55707
  */
55667
55708
  function generateCtaGapStyles(header, themeId) {
@@ -55719,7 +55760,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
55719
55760
  `;
55720
55761
  }
55721
55762
  function resolveFooterLogoSize(footer, headerLogo) {
55722
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
55763
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
55764
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
55723
55765
  }
55724
55766
  function footerLogoSizeFromHeaderLogo(headerLogo) {
55725
55767
  const size = headerLogo?.size;
@@ -7849,7 +7849,7 @@ var SimpleCache = class {
7849
7849
  * 1. This constant
7850
7850
  * 2. The "version" field in package.json
7851
7851
  */
7852
- const SDK_VERSION = "0.118.0";
7852
+ const SDK_VERSION = "0.119.0";
7853
7853
  //#endregion
7854
7854
  //#region src/client/error.ts
7855
7855
  let _Symbol$for;
@@ -63073,6 +63073,7 @@ function generateHeaderCss(options) {
63073
63073
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
63074
63074
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
63075
63075
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
63076
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
63076
63077
  cssChunks.push(generateCtaGapStyles(header, themeId));
63077
63078
  return cssChunks.filter(Boolean).join("\n\n");
63078
63079
  }
@@ -63543,6 +63544,46 @@ const HEADER_CTA_GAP_MAP = {
63543
63544
  spacious: "3rem"
63544
63545
  };
63545
63546
  /**
63547
+ * The inverted CTA treatment is contextual to branded header surfaces. It
63548
+ * cannot be represented by the generic secondary button role alone because
63549
+ * that role is transparent and inherits the surrounding surface foreground.
63550
+ * Keep the shared button's structure/effects while making the header own the
63551
+ * palette relationship for both desktop and mobile CTAs.
63552
+ */
63553
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
63554
+ if (header.ctaTreatment !== "inverted") return "";
63555
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
63556
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
63557
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
63558
+ const hoverSelectors = [
63559
+ `${desktopSelector}:hover`,
63560
+ `${desktopSelector}[data-force-hover="true"]`,
63561
+ `${mobileSelector}:hover`,
63562
+ `${mobileSelector}[data-force-hover="true"]`
63563
+ ].join(",\n");
63564
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
63565
+ return `
63566
+ ${selectors} {
63567
+ background-color: ${tokens.getColor("background")};
63568
+ background-image: none;
63569
+ color: ${tokens.getColor("onBackground")};
63570
+ border-color: currentColor;
63571
+ }
63572
+
63573
+ ${hoverSelectors} {
63574
+ background-color: ${tokens.getColor("surface")};
63575
+ background-image: none;
63576
+ color: ${tokens.getColor("onSurface")};
63577
+ }
63578
+
63579
+ ${focusSelectors} {
63580
+ outline: 2px solid ${tokens.getColor("onBackground")};
63581
+ outline-offset: 2px;
63582
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
63583
+ }
63584
+ `;
63585
+ }
63586
+ /**
63546
63587
  * Generate CTA button gap styles (left margin between nav links and CTA)
63547
63588
  */
63548
63589
  function generateCtaGapStyles(header, themeId) {
@@ -63600,7 +63641,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
63600
63641
  `;
63601
63642
  }
63602
63643
  function resolveFooterLogoSize(footer, headerLogo) {
63603
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
63644
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
63645
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
63604
63646
  }
63605
63647
  function footerLogoSizeFromHeaderLogo(headerLogo) {
63606
63648
  const size = headerLogo?.size;
@@ -86972,7 +87014,7 @@ var CircuitOpenError = class extends Error {
86972
87014
  * 1. This constant
86973
87015
  * 2. The "version" field in package.json
86974
87016
  */
86975
- const SDK_VERSION = "0.118.0";
87017
+ const SDK_VERSION = "0.119.0";
86976
87018
  //#endregion
86977
87019
  //#region src/next/content-load-failure.ts
86978
87020
  const SdkContentLoadError = RiverbankContentLoadError;
@@ -12,7 +12,7 @@ import * as crypto from "crypto";
12
12
  * 1. This constant
13
13
  * 2. The "version" field in package.json
14
14
  */
15
- const SDK_VERSION = "0.118.0";
15
+ const SDK_VERSION = "0.119.0";
16
16
  //#endregion
17
17
  //#region src/constants.ts
18
18
  /**
@@ -54506,6 +54506,7 @@ function generateHeaderCss(options) {
54506
54506
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
54507
54507
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
54508
54508
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
54509
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
54509
54510
  cssChunks.push(generateCtaGapStyles(header, themeId));
54510
54511
  return cssChunks.filter(Boolean).join("\n\n");
54511
54512
  }
@@ -54976,6 +54977,46 @@ const HEADER_CTA_GAP_MAP = {
54976
54977
  spacious: "3rem"
54977
54978
  };
54978
54979
  /**
54980
+ * The inverted CTA treatment is contextual to branded header surfaces. It
54981
+ * cannot be represented by the generic secondary button role alone because
54982
+ * that role is transparent and inherits the surrounding surface foreground.
54983
+ * Keep the shared button's structure/effects while making the header own the
54984
+ * palette relationship for both desktop and mobile CTAs.
54985
+ */
54986
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
54987
+ if (header.ctaTreatment !== "inverted") return "";
54988
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
54989
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
54990
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
54991
+ const hoverSelectors = [
54992
+ `${desktopSelector}:hover`,
54993
+ `${desktopSelector}[data-force-hover="true"]`,
54994
+ `${mobileSelector}:hover`,
54995
+ `${mobileSelector}[data-force-hover="true"]`
54996
+ ].join(",\n");
54997
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
54998
+ return `
54999
+ ${selectors} {
55000
+ background-color: ${tokens.getColor("background")};
55001
+ background-image: none;
55002
+ color: ${tokens.getColor("onBackground")};
55003
+ border-color: currentColor;
55004
+ }
55005
+
55006
+ ${hoverSelectors} {
55007
+ background-color: ${tokens.getColor("surface")};
55008
+ background-image: none;
55009
+ color: ${tokens.getColor("onSurface")};
55010
+ }
55011
+
55012
+ ${focusSelectors} {
55013
+ outline: 2px solid ${tokens.getColor("onBackground")};
55014
+ outline-offset: 2px;
55015
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
55016
+ }
55017
+ `;
55018
+ }
55019
+ /**
54979
55020
  * Generate CTA button gap styles (left margin between nav links and CTA)
54980
55021
  */
54981
55022
  function generateCtaGapStyles(header, themeId) {
@@ -55033,7 +55074,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
55033
55074
  `;
55034
55075
  }
55035
55076
  function resolveFooterLogoSize(footer, headerLogo) {
55036
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
55077
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
55078
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
55037
55079
  }
55038
55080
  function footerLogoSizeFromHeaderLogo(headerLogo) {
55039
55081
  const size = headerLogo?.size;
@@ -55572,6 +55572,7 @@ function generateHeaderCss(options) {
55572
55572
  cssChunks.push(generateMobilePanelStyles(header, themeId, tokens));
55573
55573
  if (header.variant === "floating" && header.container) cssChunks.push(generateFloatingContainerStyles(header, themeId, tokens));
55574
55574
  cssChunks.push(generateNavContainerStyles(header, themeId, tokens));
55575
+ cssChunks.push(generateHeaderCtaTreatmentStyles(header, themeId, tokens));
55575
55576
  cssChunks.push(generateCtaGapStyles(header, themeId));
55576
55577
  return cssChunks.filter(Boolean).join("\n\n");
55577
55578
  }
@@ -56042,6 +56043,46 @@ const HEADER_CTA_GAP_MAP = {
56042
56043
  spacious: "3rem"
56043
56044
  };
56044
56045
  /**
56046
+ * The inverted CTA treatment is contextual to branded header surfaces. It
56047
+ * cannot be represented by the generic secondary button role alone because
56048
+ * that role is transparent and inherits the surrounding surface foreground.
56049
+ * Keep the shared button's structure/effects while making the header own the
56050
+ * palette relationship for both desktop and mobile CTAs.
56051
+ */
56052
+ function generateHeaderCtaTreatmentStyles(header, themeId, tokens) {
56053
+ if (header.ctaTreatment !== "inverted") return "";
56054
+ const desktopSelector = `:where([data-theme-scope="${themeId}"]) .header-cta`;
56055
+ const mobileSelector = `:where([data-theme-scope="${themeId}"]) .nav-mobile-cta`;
56056
+ const selectors = `${desktopSelector},\n${mobileSelector}`;
56057
+ const hoverSelectors = [
56058
+ `${desktopSelector}:hover`,
56059
+ `${desktopSelector}[data-force-hover="true"]`,
56060
+ `${mobileSelector}:hover`,
56061
+ `${mobileSelector}[data-force-hover="true"]`
56062
+ ].join(",\n");
56063
+ const focusSelectors = [`${desktopSelector}:focus-visible`, `${mobileSelector}:focus-visible`].join(",\n");
56064
+ return `
56065
+ ${selectors} {
56066
+ background-color: ${tokens.getColor("background")};
56067
+ background-image: none;
56068
+ color: ${tokens.getColor("onBackground")};
56069
+ border-color: currentColor;
56070
+ }
56071
+
56072
+ ${hoverSelectors} {
56073
+ background-color: ${tokens.getColor("surface")};
56074
+ background-image: none;
56075
+ color: ${tokens.getColor("onSurface")};
56076
+ }
56077
+
56078
+ ${focusSelectors} {
56079
+ outline: 2px solid ${tokens.getColor("onBackground")};
56080
+ outline-offset: 2px;
56081
+ box-shadow: 0 0 0 4px ${tokens.getColor("background")};
56082
+ }
56083
+ `;
56084
+ }
56085
+ /**
56045
56086
  * Generate CTA button gap styles (left margin between nav links and CTA)
56046
56087
  */
56047
56088
  function generateCtaGapStyles(header, themeId) {
@@ -56099,7 +56140,8 @@ ${`:where([data-theme-scope="${themeId}"])`} .footer-logo img {
56099
56140
  `;
56100
56141
  }
56101
56142
  function resolveFooterLogoSize(footer, headerLogo) {
56102
- return footerLogoSizeFromHeaderLogo(headerLogo) ?? footer.logo?.maxHeight ?? footer.logo?.size ?? "md";
56143
+ const brandDrivenSize = footerLogoSizeFromHeaderLogo(headerLogo);
56144
+ return footer.logo?.maxHeight ?? brandDrivenSize ?? footer.logo?.size ?? "md";
56103
56145
  }
56104
56146
  function footerLogoSizeFromHeaderLogo(headerLogo) {
56105
56147
  const size = headerLogo?.size;
@@ -7874,7 +7874,7 @@ var SimpleCache = class {
7874
7874
  * 1. This constant
7875
7875
  * 2. The "version" field in package.json
7876
7876
  */
7877
- const SDK_VERSION = "0.118.0";
7877
+ const SDK_VERSION = "0.119.0";
7878
7878
  //#endregion
7879
7879
  //#region src/client/error.ts
7880
7880
  let _Symbol$for;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.118.0",
3
+ "version": "0.119.0",
4
4
  "description": "Riverbank CMS SDK for headless content consumption",
5
5
  "main": "./dist/server/index.mjs",
6
6
  "module": "./dist/server/index.mjs",