@riverbankcms/sdk 0.107.0 → 0.108.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/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +46 -11
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +426 -72
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +3865 -544
- package/dist/_dts/ai/src/contracts/proposals.d.ts +3712 -220
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/endpoints.d.ts +99 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +5 -2
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +62 -0
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +41 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3043 -2941
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +15 -1
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +13 -10
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -30
- package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1186 -34
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/cli/index.mjs +760 -374
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-BPy-AJ4_.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-BL4PGZds.mjs} +6 -6
- package/dist/client/bookings.mjs +143 -94
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-EBjyslaX.mjs} +144 -95
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-C2b7Cn9-.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-BQcbXIVD.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-DEmpGRJu.mjs} +3 -3
- package/dist/client/client.mjs +827 -434
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-BqRZPmsq.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-B8N_tSl5.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-M-VCxA-r.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-DR19hqYi.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-BR02a0k3.mjs} +7 -7
- package/dist/client/{form-CH1lCusH.mjs → form-LY2xIbwg.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-CYwwXJfh.mjs} +3 -3
- package/dist/client/hooks.mjs +377 -362
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-DWnBXrFq.mjs} +2 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-D9s-fQ2P.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-DDq80oYc.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-B0SbWd45.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-PwYlZn0y.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-BRWBiH7i.mjs} +33 -9
- package/dist/client/rendering/client.mjs +247 -40
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +478 -270
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-CMwZPYME.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BuxsFate.mjs} +5 -5
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-D2naaOes.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-igGiK1re.mjs} +3 -3
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-CI7MbsFB.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +178 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +178 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-a_cBD28m.mjs} +178 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-5ahRBC85.mjs} +1 -1
- package/dist/server/components.mjs +556 -366
- package/dist/server/config-validation.mjs +384 -363
- package/dist/server/config.mjs +384 -364
- package/dist/server/data.mjs +377 -362
- package/dist/server/index.mjs +179 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +1384 -995
- package/dist/server/page-converter.mjs +368 -355
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +539 -360
- package/dist/server/rendering.mjs +556 -366
- package/dist/server/routing.mjs +613 -543
- package/dist/server/server.mjs +554 -361
- package/dist/server/theme-bridge.mjs +189 -98
- package/dist/server/theme.mjs +161 -95
- package/dist/styles/index.css +7 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { $ as idleEditorTransactionQueueState, $a as eventButtonVariantSchema, $c as generateInteractiveChildInheritanceCSS, $d as ImageUp, $i as LABEL_FONT_SIZE_MAP, $l as Dialog, $n as eventListingBlockDefinition, $o as defineInteractiveIslandMetaKeys, $r as footerBottomTextFragment, $s as ChevronDownIcon, $t as getPageDesignEditorState, $u as formatBookingTime, Aa as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Ac as resolveMediaNodeResponsiveImage, Ad as Upload, Af as __commonJSMin, Ai as normalEditorCuratedPromotedFieldPaths, Al as Textarea, An as getBlockDefinition, Ao as buildGoogleMapsDirectionsUrl, Ar as buildShopInteractiveIslandProps, As as parseBlockIconValue, At as unsafeAsLinkedContentEntryId, Au as __spreadArray, Ba as isSemanticSpacing, Bc as resolveMediaTransformForAspect, Bd as Settings, Bi as pageDesignEditorBackgroundOverrideOwner, Bl as Popover, Bn as mediaTransforms, Bo as getCardOrientation, Br as deriveCommerceCheckoutState, Bs as inlineTextToPlainText, Bt as usePalette, Bu as cva, Ca as generateCssVars, Cc as MediaPlaceholder, Cd as unsafeAsPassId, Cf as ChevronLeft, Ci as readHeaderNavFontSizePreference, Cl as unmapValueFromSelect, Cn as isKeyboardEvent, Co as normalizeBoxStylesCardVariant, Cr as resolveEventRegistrationScopedEvents, Cs as resolveFeatureCardGeneratedIconSizePx, Ct as useOptionalEditorUiStoreInstance, Cu as DropdownMenuTrigger, Dc as renderAudio, Dd as ok$3, Df as ArrowUp, Di as compileEditorModelRuntime, Dl as TooltipContent, Dn as isSupportedLoaderEndpoint, Do as resolveTokenOrCssColorValue, Dr as buildCheckoutInteractiveIslandProps, Ds as buildGeneratedBlockIconRenderAssetLookupFromUnknown, Dt as pushHistoryEntry, Du as __generator, Ea as ctaButton, Ec as getCurrentResolveImageUrlContext, Ed as err$2, Ef as Box, Ei as applyCompiledRuntimeFieldsToContent, El as Tooltip, En as useUniqueId, Eo as resolveOnColorForThemeToken, Er as buildCartInteractiveIslandProps, Es as toFeatureCardIconSuggestionInputs, Et as createHistoryState, Eu as __extends, Fa as normalizeOfferingsPreviewItemLimit, Fc as attachRenderableMediaAssetFields, Fi as designRuntimeRulesForTheme, Fl as SelectTrigger, Fn as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Fo as formatEventDateParts, Fr as formatCommercePrice, Fs as createRichTextDocFromMarkdown, Ft as createSnapshotFromPageRecord, Fu as useControllableState, Ga as getEventRuntimeFiltersKey, Gc as siblingPath$1, Gd as Pencil, Gi as NAV_LINK_BORDER_RADIUS_MAP, Gl as TabsContent, Gn as isInternalResolvedLinkValue, Go as getEventAvailability, Gr as augmentManifestWithStyleGroups, Gs as SEMANTIC_ICON_DEFINITIONS, Gt as createManifestFormAdapter, Gu as createEditorRemoveBlockCommand, Ha as buildEventRuntimeFilters, Hc as getDirectImageUrlForMediaAsset, Hd as RotateCcw, Hi as getComponentShadowVar, Hl as PopoverTrigger, Hn as uiTransforms, Ho as groupEventsByDate, Hr as productItemKey, Hs as parseInlineTextFromUnknown, Ht as unfinishedBlockCopy, Hu as cn$1, Ia as resolveOfferingsPreviewCoursePath, Ic as isRotationDimensionSwap, Id as Star, Ii as getCuratedSiteStyle, Il as SelectValue, In as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, Io as formatEventPrice, Ir as formatInterval, Is as unwrapRichTextRoot, Iu as createContextScope, Ja as normalizeCsvIds, Jc as AFFORDANCE_SUPPRESS_CLASS, Ji as NAV_LINK_PADDING_X_MAP, Jl as Content$1, Jn as shopBlockDefinition, Jo as getLocalMinuteOfDay, Jr as cardFragment, Js as ArrowDownIcon, Jt as evaluateVisibility, Ju as unsafeAsEditorBlockValues, Ka as resolveEventCalendarListPageSize, Ki as NAV_LINK_LETTER_SPACING_MAP, Kl as TabsList, Kn as ImageResolveContextProvider, Ko as getEventAvailabilityStatus, Kr as richTextFragment, Ks as getSemanticIconComponent, Ku as createEditorReorderBlocksCommand, La as resolveOfferingsPreviewGroupCta, Lc as normalizeRightAngle, Ld as Sparkles, Li as surfaceResolutionContextFromTheme, Ll as Label, Ln as planSiteOverlayHeaderClearance, Lo as formatEventPriceDisplay, Lr as EMPTY_COMMERCE_CART_STATE, Ls as isObjectRecord, Lu as composeEventHandlers, Ma as inferLegacyOfferingsPreviewGroupOrder, Mc as setContextResolveImageUrlContext, Mf as __toESM, Mi as resolveVisiblePromotedFieldPathsForEditorBlock, Ml as Select, Mn as projectRecurringSchedule, Mo as toLocationMapHydrationProps, Mr as buildCartDisplay, Ms as parseGeneratedIconAssetId, Mu as useId$1, Na as isOfferingsPreviewSourceKey, Nc as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, Nd as Trash2, Ni as componentRuntimeRulesForTheme, Nl as SelectContent, Nn as siteFooterManifest, No as formatDate$3, Nr as buildProductCardDisplay, Ns as parseGeneratedIconSetId, Nt as useDebouncedLatestSave, Nu as useDirection, Oc as renderVideo, Od as lucide_react_exports, Of as ArrowDown, Oi as retargetCompiledBoundaryRuntimeForContentAdjacency, Ol as TooltipProvider, On as gradientToCss, Oo as getTextColorForBackground, Or as buildProductDetailInteractiveIslandProps, Os as getBlockIconSemanticId, Ot as redoHistory, Ou as __read, Pa as normalizeOfferingsPreviewGroupOrder, Pc as resolveMediaSlotContract, Pd as Ticket, Pl as SelectItem, Pn as siteHeaderManifest, Po as formatEventCompactDateRail, Pr as buildProductDetailDisplay, Ps as parseSiteIconStyleGuideVersionId, Pt as createRoutingHelpers, Pu as createCollection, Q as enqueueTransaction, Qa as columnOptionSchema, Qc as generateBaseInteractiveCSS, Qd as Image, Qi as INPUT_SPACING_MAP, Ql as ScrollableDialogContent, Qn as buildNewsletterFormInteractiveIslandProps, Qo as createInteractiveIslandCodec, Qr as singleButtonFragment, Qs as CheckIcon$1, Qt as applyPageDesignEditorAction, Qu as formatBookingInstant, Ra as resolveOfferingsPreviewGroupOrderEntries, Rc as formatAspectRatioToken, Ri as isThemeV2NormalEditorRawStyleFieldName, Rl as Badge, Rn as visibleHeaderClearancePx, Ro as formatEventTeacherLine, Rr as buildPassCartItem, Rs as isRecord$21, Ru as Primitive, Sa as expandPalette, Sc as ImagePresets, Sd as unsafeAsMediaAssetId, Sf as ChevronRight, Si as mergeHeaderNavTypographyPreference, Sl as mapOptionValueForSelect, Sn as CSS, So as generateShadowValue, Sr as normalizeEventRegistrationPageSurfaceSubject, Ss as parseFeatureCardGeneratedIconSizePx, St as useEditorUiStoreInstance, Su as DropdownMenuSeparator, Ta as runTransforms, Tc as computeMediaTransformStyle, Td as unsafeAsPositiveSeconds, Tf as Check, Ti as PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, Tl as useField, Tn as useIsomorphicLayoutEffect, To as isCssColorLiteral, Tr as cartBlockDefinition, Ts as suggestSemanticIconForFeatureCard, Tt as canUndoHistory, Tu as __awaiter, Ua as eventListPaginationActionSchema, Uc as getImageUrl, Ui as parseBlockCustomCssRules, Ul as Input, Un as formattingTransforms, Uo as resolveEventCta, Ur as reduceCommerceCart, Us as isIconPickerPreset, Ut as validateBlockManifestIssues, Uu as clsx, Va as resolveSpacing, Vc as asRecord, Vd as Search, Vi as getComponentBorderWidthPx, Vl as PopoverContent, Vn as layoutTransforms, Vo as getContainerClass, Vr as parseStoredCommerceCartState, Vs as isInlineTextEmpty, Vt as recoveryConflictCopy, Vu as useComposedRefs, Wa as eventPageSizeSchema, Wc as getAtPath, Wd as Plus, Wi as parseCustomCssRules, Wl as Tabs, Wn as createManifestValidator, Wo as resolveEventLinkProps, Wr as augmentManifest, Ws as resolveIconPickerPreset, Wt as ManifestForm, Wu as createEditorInsertBlockCommand, X as confirmAutosaveBatch, Xa as normalizeOptionalId, Xc as generateEffectsCSS, Xi as FONT_WEIGHT_MAP, Xl as Root2$1, Xn as productDetailBlockDefinition, Xo as blockBookingPaymentTermsSchema, Xr as faqHeadingFragment, Xs as ArrowRightIcon, Xt as listContentTypes, Xu as formatBookingDate, Y as beginAutosaveBatch, Ya as normalizeCsvString, Yc as generateButtonCss, Yd as Minus, Yi as NAV_LINK_TEXT_SIZE_MAP, Yl as List, Yn as productListBlockDefinition, Yo as resolveRuntimeEventPricing, Yr as faqAccordionFragment, Ys as ArrowLeftIcon, Yt as createStoreBackend, Yu as addLocalScheduleDays, Z as deriveTransactionCapabilities, Za as calendarTabViewsSchema, Zc as generateShadowValue$1, Zd as LoaderCircle, Zi as INPUT_FONT_SIZE_MAP, Zl as Trigger$1, Zn as newsletterSignupBlockDefinition, Zo as buildInteractiveIslandProps, Zr as blogFeaturedPostFragment, Zs as CalendarIcon$1, Zt as toRoutableLinkPayload, Zu as formatBookingDateTime, _c as PlayIcon, _d as parseSiteId, _f as CircleMinus, _i as BACKGROUND_POSITION_PRESET_VALUES, _l as useBlockContext, _n as useDndContext, _o as normalizeEventSurfacePresetsCsv, _r as getWizardStepsForContext$1, _s as mediaSchema, _t as EntryControllerProvider, aa as boundaryRuntimeMetricsForTransition, ac as ClockIcon$1, ad as toScheduledBookingDateTime, af as FileSpreadsheet, ai as heroCtaRowFragment, al as cssVarValue, an as mutateBlockContent, ao as eventCalendarListLayoutCompatibleDisplayModeValues, ar as formBlockDefinition, as as markEditableSurfaceForwarding, at as PreviewTextEditor, au as DialogTitle, bc as UploadIcon, bd as unsafeAsCustomerPassId, bf as ChevronsUpDown, bi as resolveSurfaceForegroundStyles, bl as hasEmptyOption, bn as useSensor, bo as publicEventSchema, br as courseRegistrationBlockDefinition, bs as createFeatureCardIconKey, bu as DropdownMenuItem, ca as sectionTransitionFamilyForBoundaryOptionId, cc as FileArchiveIcon, cd as publicEventPricingCurrency, cf as FileArchive, ci as bodyCopyFragment, cl as textColorStyle, cn as decodePublicProductCategorySelectorQuery, co as when, cr as buildEventRegistrationInteractiveIslandProps, cs as asDesignBlockId, ct as RichTextEditorSurface, da as backgroundAppearanceColorTokenNames, dc as FileTextIcon, dd as publicEventScalarPrice, df as EllipsisVertical, di as siteOptionSources, dl as surfaceForegroundValue, dn as AMBIENT_BACKGROUND_ROLES$1, do as eventScheduleScopeValues, dr as findPreSelectedEvent, ds as ACCORDION_SPACING_MAP, dt as InlineTextEditor, du as Trigger, ec as ChevronLeftIcon, ed as formatLocalScheduleDate, ef as ImagePlus, ei as formEmbedFragment, el as TokenResolver, en as createBlock, eo as eventCalendarDefaultViewSchema, er as buildEventListingInteractiveIslandProps, es as createZodCodec, et as rejectAutosaveBatch, eu as DialogClose, fa as backgroundAppearanceQuickColorTokenNames, fc as InfoIcon, fd as publicEventTicketTypes, ff as Crop, fi as MQ_LG_UP, fl as useBackendWatch, fn as DndContext, fo as eventSurfaceScopeValues, fr as resolveDiscountContext, fs as ACCORDION_TRIGGER_FONT_SCALE, ft as EditorProvider, fu as createCollapsibleScope, g as PreviewDesignCoordinatorProvider, gc as PhoneIcon, gd as parseMediaAssetId, gf as CirclePlus, gi as MQ_TABLET_ONLY, gl as isNonEmptyValue, gn as getClientRect, go as normalizeEventStaffMemberId, gr as getStepNumber$1, gs as PUBLIC_DOWNLOAD_MEDIA_TYPES, gt as EditableBlockProvider, gu as CardTitle, ha as defaultThemeTokens, hc as MinusIcon, hd as expectParsedBrandedId, hf as Clock3, hi as MQ_SM_UP, hl as isHeaderField, hn as closestCenter, ho as normalizeEventScheduleScope, hr as WIZARD_STEPS$1, hs as ICON_SIZE_PX, ht as useUISelector, hu as CardHeader, i as usePreviewDesignHistoryOrder, ic as CirclePlusIcon, id as toBookingTimeZone, if as FileText, ii as ctaCopyFragment, il as borderColorStyle, io as weekStartSchema, ir as buildEventCalendarListingRender, is as composeHeaderSectionWrapperClassName, it as PreviewInlineTextEditor, iu as DialogHeader, ja as buildOfferingsPreviewRenderStates, jc as resolveMediaStorageUrl, jf as __exportAll, ji as planPageDesignLayoutLookCompatibility, jl as Slider, jn as listBlockDescriptors, jo as normalizeLocationMapProps, jr as getShopDisplayForItems, js as resolveBlockIconRenderValue, jt as recordsEqual, ju as __spreadArrays, kc as resolveImageUrlWithContext, kd as X, kf as Archive, ki as retargetCompiledRuntimeFieldsForContentAdjacency, kl as TooltipTrigger, kn as GRADIENT_PRESETS, ko as featuresFromHex, kr as buildProductListInteractiveIslandProps, ks as getGeneratedBlockIconStyleState, kt as undoHistory, ku as __rest, la as sectionTransitionVariantForBoundaryOptionId, lc as FileAudioIcon, ld as publicEventPricingMode, li as defineFragment, ll as DEFAULT_SURFACE_TEXT_COLOR, ln as DEFAULT_LAUNCH_READINESS_INPUT, lo as bindingSchema, lr as toRegistrationEvents, ls as assertNever$6, lt as getRichTextImagePositionFromTarget, lu as Content, ma as parseBackgroundAppearanceColorToken, mc as MapPinIcon$1, md as assertNever$5, mf as Copy, mi as MQ_SM_DOWN, ml as getModalConfig, mn as PointerSensor, mo as normalizeEventCategoryIdsCsv, mr as resolveRegistrationTarget, ms as ICON_CONFIG, mu as CardContent, n as useSiteChromeCustomizeOptional, nc as ChevronUpIcon, nd as parseBookingLocalDate, nf as GripVertical, ni as testimonialsCarouselFragment, nl as themeButtonClassName, nn as deleteBlock, no as filterAutoShowSchema, nr as buildEventCalendarInteractiveIslandProps, ns as defineProgressiveBlockRuntime, nt as resolvePreviewSidebarTab, nu as DialogDescription, oa as defaultSectionTransitionVariantForFamily, oc as DownloadIcon, od as parseEventPageSurfaceSubject, of as FilePlay, oi as ctaRowFragment, ol as mergeStyles, on as reorderBlocks, oo as eventCalendarListLayoutOptions, or as buildFormInteractiveIslandProps, os as splitPositioningClasses, ot as useRichTextEditor, ou as Collapsible, pa as foregroundTokenForBackgroundAppearanceColorToken, pc as MailIcon, pd as formatCurrencyAmount, pf as CreditCard, pi as MQ_MD_DOWN, pl as getFieldIntent, pn as KeyboardCode, po as normalizeEventBlockKind, pr as resolveEventRequiresPayment, ps as ACCORDION_TRIGGER_LETTER_SPACING, pt as useEditor, pu as Card, qa as resolveEventListPaginationAction, qi as NAV_LINK_PADDING_MAP, ql as TabsTrigger, qn as useImageResolveContextOptional, qo as getLocalDateKey, qr as headingFragment, qs as isSemanticIconId, qt as FormRenderer, qu as unsafeAsEditorBlockId, r as PreviewDesignHistoryOrderProvider, rc as CircleMinusIcon, rd as resolveBookingTimeZoneId, rf as File, ri as testimonialsHeadingFragment, rl as backgroundColorStyle, rn as deleteEntrySlotBlock, ro as previewStageSchema, rr as buildEventCalendarListingDisplay, rt as PreviewRichTextEditor, ru as DialogFooter, sa as sectionTransitionFamilies, sc as ExternalLinkIcon, sd as formatBookingPriceDisplay, sf as FileHeadphone, si as heroCopyFragment, sl as rgbColorValue, sn as reorderEntrySlotBlocks, so as el, sr as eventRegistrationBlockDefinition, ss as planSiteChromePlacement, st as EMPTY_DOC, su as CollapsibleContent, t as SiteChromeCustomizeProvider, tc as ChevronRightIcon, td as getBookingLocalDateKey, tf as ImageOff, ti as formCopyFragment, tl as parseThemeButtonVariantId, tn as createEntrySlotBlock, to as eventLayoutSchema, tr as eventCalendarBlockDefinition, ts as defineClientOwnedBlockRuntime, tu as DialogContent, ua as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, uc as FileSpreadsheetIcon, ud as publicEventPricingType, uf as EyeOff, ui as PUBLIC_FILE_FIELD_KINDS, ul as surfaceForegroundDeclarations, un as deriveLaunchReadiness, uo as eventBlockKindValues, ur as findEventByOccurrenceId, us as ACCORDION_OPEN_ACCENT_THICKNESS, ut as insertOrReplaceRichTextImage, uu as Root, v as PreviewThemeOverlayProvider, vc as PlusIcon, vd as unsafeAsAppointmentResourceId, vf as CircleCheck, vi as getAnchorClasses, vl as SdkConfigProvider, vn as useDraggable, vo as normalizeEventSurfaceScope, vr as giftingBlockDefinition, vs as FEATURE_CARD_GENERATED_ICON_SIZE_PX, vu as DropdownMenu, wa as createTransformRegistry, wc as buildResolveImageUrlContext, wd as unsafeAsPositiveByteCount$1, wf as ChevronDown, wi as formatSiteChromeBackgroundTokenLabel, wl as FieldFrame, wn as useCombinedRefs, wo as normalizeCardVariantRole, wr as checkoutBlockDefinition, ws as shouldReserveFeatureCardIconZone, wt as canRedoHistory, wu as __assign, xc as XIcon, xd as unsafeAsFormId, xf as ChevronUp, xi as resolveBackgroundColorValue, xl as mapCurrentValueForSelect, xn as useSensors, xo as generateCardCss, xr as buildCourseRegistrationInteractiveIslandProps, xs as getFeatureCardIconCompletion, xt as useEditorUiStore, y as usePreviewThemeOverlay, yc as ShoppingCartIcon, yd as unsafeAsAppointmentServiceId, yf as CircleAlert, yi as boxStylesTransforms, yl as useSdkConfig, yn as useDroppable, yo as normalizeEventVenueId, yr as buildGiftingInteractiveIslandProps, ys as FEATURE_CARD_ICON_TREATMENTS, yt as useEntryEditorController, yu as DropdownMenuContent, za as resolveOfferingsPreviewGroups, zc as parseAspectRatioValue, zi as isThemeV2NormalEditorRawStylePath, zn as contentTransforms, zo as formatTime$3, zr as buildProductCartItem, zs as coerceInlineTextWithFallback, zt as PaletteProvider, zu as Button } from "./SiteChromeCustomizeContext-C_sizso-.mjs";
|
|
3
|
-
import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-
|
|
4
|
-
import { _ as API_ENDPOINTS, a as usePreviewToken, c as createBearerAPIClient, d as unwrapResponse, g as resolveSurfaceDocumentAttributes, h as SURFACE_IDS, i as usePreviewAuthFetch, l as ApiEnvelopeError, m as SURFACE_DOCUMENT_DATA_ATTRIBUTE, n as markPreviewAuthExpired, o as isPreviewRuntimeSessionEditable, r as usePreviewAuth, s as ApiRequestError, t as initPreviewAuth, u as extractApiEnvelopeErrorDetails } from "./previewAuthStore-
|
|
2
|
+
import { $ as beginAutosaveBatch, $a as resolveEventCalendarListPageSize, $c as getImageUrl, $d as RotateCcw, $i as NAV_LINK_LETTER_SPACING_MAP, $l as Input, $n as isInternalResolvedLinkValue, $o as resolveEventLinkProps, $r as augmentManifestWithStyleGroups, $s as resolveIconPickerPreset, $t as evaluateVisibility, $u as clsx, Aa as generateCssVars, Ac as XIcon, Ad as unsafeAsAppointmentServiceId, Af as CircleAlert, Ai as mergeHeaderNavTypographyPreference, Al as hasEmptyOption, An as CSS, Ao as generateCardCss, Ar as normalizeEventRegistrationPageSurfaceSubject, As as getFeatureCardIconCompletion, At as canUndoHistory, Au as DropdownMenuItem, Ba as isOfferingsPreviewSourceKey, Bc as resolveMediaNodeResponsiveImage, Bd as X, Bf as Archive, Bi as componentRuntimeRulesForTheme, Bl as Textarea, Bn as projectRecurringSchedule, Bo as normalizeLocationMapProps, Br as buildCartDisplay, Bs as resolveBlockIconRenderValue, Bt as createSnapshotFromPageRecord, Bu as __spreadArray, C as usePreviewThemeOverlay, Cc as MapPinIcon$1, Cd as publicEventTicketTypes, Cf as Crop, Ci as MQ_SM_UP, Cl as getFieldIntent, Cn as closestCenter, Co as normalizeEventCategoryIdsCsv, Cr as WIZARD_STEPS$1, Cs as ICON_CONFIG, Cu as Card, Dc as PlusIcon, Dd as parseMediaAssetId, Df as CirclePlus, Di as boxStylesTransforms, Dl as useBlockContext, Dn as useDroppable, Do as normalizeEventSurfaceScope, Dr as buildGiftingInteractiveIslandProps, Ds as FEATURE_CARD_GENERATED_ICON_SIZE_PX, Dt as useEditorUiStoreInstance, Ec as PlayIcon, Ed as expectParsedBrandedId, Ef as Clock3, Ei as getAnchorClasses, El as isNonEmptyValue, En as useDraggable, Eo as normalizeEventSurfacePresetsCsv, Er as giftingBlockDefinition, Es as mediaSchema, Et as useEditorUiStore, Eu as CardTitle, Fc as computeMediaTransformStyle, Fd as unsafeAsPositiveByteCount$1, Ff as ChevronDown, Fi as retargetCompiledBoundaryRuntimeForContentAdjacency, Fl as useField, Fn as isSupportedLoaderEndpoint, Fo as resolveOnColorForThemeToken, Fr as buildCheckoutInteractiveIslandProps, Fs as toFeatureCardIconSuggestionInputs, Ft as unsafeAsLinkedContentEntryId, Fu as __awaiter, Ga as resolveOfferingsPreviewGroupOrderEntries, Gc as attachRenderableMediaAssetFields, Gd as Ticket, Gi as isThemeV2NormalEditorRawStyleFieldName, Gl as SelectTrigger, Gn as planSiteOverlayHeaderClearance, Go as formatEventPrice, Gr as EMPTY_COMMERCE_CART_STATE, Gs as unwrapRichTextRoot, Gt as usePalette, Gu as useControllableState, Ha as normalizeOfferingsPreviewItemLimit, Hc as setContextResolveImageUrlContext, Hf as __exportAll, Hi as designRuntimeRulesForTheme, Hl as Select, Hn as siteHeaderManifest, Ho as formatDate$3, Hr as buildProductDetailDisplay, Hs as parseGeneratedIconSetId, Hu as useId$1, Ic as getCurrentResolveImageUrlContext, Id as unsafeAsPositiveSeconds, If as Check, Ii as retargetCompiledRuntimeFieldsForContentAdjacency, Il as Tooltip, In as gradientToCss, Io as resolveTokenOrCssColorValue, Ir as buildProductDetailInteractiveIslandProps, Is as buildGeneratedBlockIconRenderAssetLookupFromUnknown, It as recordsEqual, Iu as __extends, Ja as resolveSpacing, Jc as formatAspectRatioToken, Jd as Sparkles, Ji as getComponentBorderWidthPx, Jl as Badge, Jn as mediaTransforms, Jo as formatTime$3, Jr as deriveCommerceCheckoutState, Js as coerceInlineTextWithFallback, Jt as validateBlockManifestIssues, Ju as Primitive, Ka as resolveOfferingsPreviewGroups, Kc as isRotationDimensionSwap, Ki as isThemeV2NormalEditorRawStylePath, Kl as SelectValue, Kn as visibleHeaderClearancePx, Ko as formatEventPriceDisplay, Kr as buildPassCartItem, Ks as isObjectRecord, Kt as recoveryConflictCopy, Ku as createContextScope, La as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Lc as renderAudio, Ld as err$2, Lf as Box, Li as normalEditorCuratedPromotedFieldPaths, Ll as TooltipContent, Ln as GRADIENT_PRESETS, Lo as getTextColorForBackground, Lr as buildProductListInteractiveIslandProps, Ls as getBlockIconSemanticId, Lu as __generator, Ma as runTransforms, Mc as ImagePresets, Md as unsafeAsFormId, Mf as ChevronUp, Mi as formatSiteChromeBackgroundTokenLabel, Ml as mapOptionValueForSelect, Mn as useCombinedRefs, Mo as normalizeBoxStylesCardVariant, Mr as checkoutBlockDefinition, Ms as resolveFeatureCardGeneratedIconSizePx, Mt as pushHistoryEntry, Mu as DropdownMenuSeparator, Na as ctaButton, Nc as MediaPlaceholder, Nd as unsafeAsMediaAssetId, Nf as ChevronRight, Ni as applyCompiledRuntimeFieldsToContent, Nl as unmapValueFromSelect, Nn as useIsomorphicLayoutEffect, No as normalizeCardVariantRole, Nr as cartBlockDefinition, Ns as shouldReserveFeatureCardIconZone, Nt as redoHistory, Nu as DropdownMenuTrigger, Oc as ShoppingCartIcon, Od as parseSiteId, Of as CircleMinus, Oi as resolveSurfaceForegroundStyles, Ol as SdkConfigProvider, On as useSensor, Oo as normalizeEventVenueId, Or as courseRegistrationBlockDefinition, Os as FEATURE_CARD_ICON_TREATMENTS, Ot as useOptionalEditorUiStoreInstance, Ou as DropdownMenu, Pc as buildResolveImageUrlContext, Pd as unsafeAsPassId, Pf as ChevronLeft, Pi as compileEditorModelRuntime, Pl as FieldFrame, Pn as useUniqueId, Po as isCssColorLiteral, Pr as buildCartInteractiveIslandProps, Ps as suggestSemanticIconForFeatureCard, Pt as undoHistory, Pu as __assign, Qa as getEventRuntimeFiltersKey, Qc as getDirectImageUrlForMediaAsset, Qd as Search, Qi as NAV_LINK_BORDER_RADIUS_MAP, Ql as PopoverTrigger, Qn as createManifestValidator, Qo as resolveEventCta, Qr as augmentManifest, Qs as isIconPickerPreset, Qt as FormRenderer, Qu as cn$1, Ra as buildOfferingsPreviewRenderStates, Rc as renderVideo, Rd as ok$3, Rf as ArrowUp, Ri as planPageDesignLayoutLookCompatibility, Rl as TooltipProvider, Rn as getBlockDefinition, Ro as featuresFromHex, Rr as buildShopInteractiveIslandProps, Rs as getGeneratedBlockIconStyleState, Rt as useDebouncedLatestSave, Ru as __read, S as PreviewThemeOverlayProvider, Sa as defaultThemeTokens, Sc as MailIcon, Sd as publicEventScalarPrice, Sf as EllipsisVertical, Si as MQ_SM_DOWN, Sl as useBackendWatch, Sn as PointerSensor, So as normalizeEventBlockKind, Sr as resolveRegistrationTarget, Ss as ACCORDION_TRIGGER_LETTER_SPACING, St as EntryControllerProvider, Su as createCollapsibleScope, Tc as PhoneIcon, Td as assertNever$5, Tf as Copy, Ti as BACKGROUND_POSITION_PRESET_VALUES, Tl as isHeaderField, Tn as useDndContext, To as normalizeEventStaffMemberId, Tr as getWizardStepsForContext$1, Ts as PUBLIC_DOWNLOAD_MEDIA_TYPES, Tu as CardHeader, Ua as resolveOfferingsPreviewCoursePath, Uc as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, Uf as __toESM, Ui as getCuratedSiteStyle, Ul as SelectContent, Un as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Uo as formatEventCompactDateRail, Ur as formatCommercePrice, Us as parseSiteIconStyleGuideVersionId, Uu as useDirection, Va as normalizeOfferingsPreviewGroupOrder, Vc as resolveMediaStorageUrl, Vd as Upload, Vf as __commonJSMin, Vl as Slider, Vn as siteFooterManifest, Vo as toLocationMapHydrationProps, Vr as buildProductCardDisplay, Vs as parseGeneratedIconAssetId, Vu as __spreadArrays, Wa as resolveOfferingsPreviewGroupCta, Wc as resolveMediaSlotContract, Wd as Trash2, Wi as surfaceResolutionContextFromTheme, Wl as SelectItem, Wn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, Wo as formatEventDateParts, Wr as formatInterval, Ws as createRichTextDocFromMarkdown, Wt as PaletteProvider, Wu as createCollection, Xa as eventListPaginationActionSchema, Xc as resolveMediaTransformForAspect, Xi as parseBlockCustomCssRules, Xl as Popover, Xn as uiTransforms, Xo as getContainerClass, Xr as productItemKey, Xs as isInlineTextEmpty, Xt as createManifestFormAdapter, Xu as cva, Ya as buildEventRuntimeFilters, Yc as parseAspectRatioValue, Yi as getComponentShadowVar, Yn as layoutTransforms, Yo as getCardOrientation, Yr as parseStoredCommerceCartState, Ys as inlineTextToPlainText, Yt as ManifestForm, Yu as Button, Za as eventPageSizeSchema, Zc as asRecord, Zd as Settings, Zi as parseCustomCssRules, Zl as PopoverContent, Zn as formattingTransforms, Zo as groupEventsByDate, Zr as reduceCommerceCart, Zs as parseInlineTextFromUnknown, Zu as useComposedRefs, _a as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, _c as FileArchiveIcon, _d as parseEventPageSurfaceSubject, _f as FilePlay, _i as PUBLIC_FILE_FIELD_KINDS, _l as rgbColorValue, _n as DEFAULT_LAUNCH_READINESS_INPUT, _o as when, _r as toRegistrationEvents, _s as asDesignBlockId, _t as EditorProvider, _u as CollapsibleContent, aa as INPUT_SPACING_MAP, ac as ArrowRightIcon, ad as unsafeAsEditorBlockValues, ai as blogFeaturedPostFragment, al as generateButtonCss, an as createBlock, ao as columnOptionSchema, ar as newsletterSignupBlockDefinition, as as blockBookingPaymentTermsSchema, au as List, b as PreviewDesignCoordinatorProvider, ba as foregroundTokenForBackgroundAppearanceColorToken, bc as FileTextIcon, bd as publicEventPricingMode, bi as MQ_MD_DOWN, bl as surfaceForegroundDeclarations, bn as DndContext, bo as eventScheduleScopeValues, br as resolveDiscountContext, bs as ACCORDION_SPACING_MAP, bt as useUISelector, bu as Root, cc as ChevronDownIcon, cd as formatBookingDateTime, cf as LoaderCircle, ci as formCopyFragment, cl as generateBaseInteractiveCSS, cn as deleteBlock, co as eventLayoutSchema, cr as buildEventListingInteractiveIslandProps, cs as defineInteractiveIslandMetaKeys, ct as PreviewRichTextEditor, cu as ScrollableDialogContent, dc as ChevronUpIcon, dd as formatLocalScheduleDate, df as ImagePlus, di as ctaCopyFragment, dl as parseThemeButtonVariantId, do as weekStartSchema, dr as buildEventCalendarListingDisplay, ds as defineProgressiveBlockRuntime, dt as useRichTextEditor, du as DialogContent, ea as NAV_LINK_PADDING_MAP, ec as SEMANTIC_ICON_DEFINITIONS, ed as parseFooterModuleId, ei as richTextFragment, el as getAtPath, en as createStoreBackend, eo as resolveEventListPaginationAction, er as ImageResolveContextProvider, es as getEventAvailability, et as confirmAutosaveBatch, eu as Tabs, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fa as boundaryRuntimeMetricsForTransition, fc as CircleMinusIcon, fd as getBookingLocalDateKey, ff as ImageOff, fi as heroCtaRowFragment, fl as themeButtonClassName, fn as mutateBlockContent, fo as eventCalendarListLayoutCompatibleDisplayModeValues, fr as buildEventCalendarListingRender, ft as EMPTY_DOC, fu as DialogDescription, ga as sectionTransitionVariantForBoundaryOptionId, gc as ExternalLinkIcon, gd as toScheduledBookingDateTime, gf as FileSpreadsheet, gi as defineFragment, gl as mergeStyles, gn as decodePublicProductCategorySelectorQuery, go as richText, gr as buildEventRegistrationInteractiveIslandProps, gs as planSiteChromePlacement, gt as InlineTextEditor, gu as Collapsible, ha as sectionTransitionFamilyForBoundaryOptionId, hc as DownloadIcon, hd as toBookingTimeZone, hf as FileText, hi as bodyCopyFragment, hl as cssVarValue, hn as reorderPageSurfaceSlotBlocks, ho as el, hr as eventRegistrationBlockDefinition, hs as splitPositioningClasses, ht as insertOrReplaceRichTextImage, hu as DialogTitle, i as usePreviewDesignHistoryOrder, ia as INPUT_FONT_SIZE_MAP, ic as ArrowLeftIcon, id as unsafeAsEditorBlockId, ii as faqHeadingFragment, il as AFFORDANCE_SUPPRESS_CLASS, in as getPageDesignEditorState, io as calendarTabViewsSchema, ir as productDetailBlockDefinition, is as resolveRuntimeEventPricing, it as rejectAutosaveBatch, iu as Content$1, ja as createTransformRegistry, jc as createIcon, jd as unsafeAsCustomerPassId, jf as ChevronsUpDown, ji as readHeaderNavFontSizePreference, jl as mapCurrentValueForSelect, jn as isKeyboardEvent, jo as generateShadowValue, jr as resolveEventRegistrationScopedEvents, js as parseFeatureCardGeneratedIconSizePx, jt as createHistoryState, ka as expandPalette, kc as UploadIcon, kd as unsafeAsAppointmentResourceId, kf as CircleCheck, ki as resolveBackgroundColorValue, kl as useSdkConfig, kn as useSensors, ko as publicEventSchema, kr as buildCourseRegistrationInteractiveIslandProps, ks as createFeatureCardIconKey, kt as canRedoHistory, ku as DropdownMenuContent, lc as ChevronLeftIcon, ld as formatBookingInstant, lf as Image, li as testimonialsCarouselFragment, ll as generateInteractiveChildInheritanceCSS, ln as deleteEntrySlotBlock, lo as filterAutoShowSchema, lr as eventCalendarBlockDefinition, ls as createZodCodec, lt as PreviewInlineTextEditor, lu as Dialog, ma as sectionTransitionFamilies, mc as ClockIcon$1, md as resolveBookingTimeZoneId, mf as File, mi as heroCopyFragment, ml as borderColorStyle, mn as reorderEntrySlotBlocks, mo as bind, mr as buildFormInteractiveIslandProps, ms as markEditableSurfaceForwarding, mt as getRichTextImagePositionFromTarget, mu as DialogHeader, n as useSiteChromeCustomizeOptional, na as NAV_LINK_TEXT_SIZE_MAP, nc as isSemanticIconId, nd as createEditorRemoveBlockCommand, nf as Pencil, ni as cardFragment, nn as toRoutableLinkPayload, no as normalizeCsvString, nr as shopBlockDefinition, ns as getLocalDateKey, nt as enqueueTransaction, nu as TabsList, oa as LABEL_FONT_SIZE_MAP, oc as CalendarIcon$1, od as addLocalScheduleDays, of as Minus, oi as singleButtonFragment, ol as generateEffectsCSS, on as createEntrySlotBlock, oo as eventButtonVariantSchema, or as buildNewsletterFormInteractiveIslandProps, os as buildInteractiveIslandProps, ot as resolvePreviewSidebarTab, ou as Root2$1, p as reportPreviewDesignError, pa as defaultSectionTransitionVariantForFamily, pc as CirclePlusIcon, pd as parseBookingLocalDate, pf as GripVertical, pi as ctaRowFragment, pl as backgroundColorStyle, pn as reorderBlocks, po as eventCalendarListLayoutOptions, pr as formBlockDefinition, ps as composeHeaderSectionWrapperClassName, pt as RichTextEditorSurface, pu as DialogFooter, qa as isSemanticSpacing, qc as normalizeRightAngle, qd as Star, qi as pageDesignEditorBackgroundOverrideOwner, ql as Label, qn as contentTransforms, qo as formatEventTeacherLine, qr as buildProductCartItem, qs as isRecord$21, qt as unfinishedBlockCopy, qu as composeEventHandlers, r as PreviewDesignHistoryOrderProvider, ra as FONT_WEIGHT_MAP, rc as ArrowDownIcon, rd as createEditorReorderBlocksCommand, ri as faqAccordionFragment, rn as applyPageDesignEditorAction, ro as normalizeOptionalId, rr as productListBlockDefinition, rs as getLocalMinuteOfDay, rt as idleEditorTransactionQueueState, ru as TabsTrigger, sc as CheckIcon$1, sd as formatBookingDate, si as formEmbedFragment, sl as generateShadowValue$1, sn as createPageSurfaceSlotBlock, so as eventCalendarDefaultViewSchema, sr as eventListingBlockDefinition, ss as createInteractiveIslandCodec, su as Trigger$1, t as SiteChromeCustomizeProvider, ta as NAV_LINK_PADDING_X_MAP, tc as getSemanticIconComponent, td as createEditorInsertBlockCommand, tf as Plus, ti as headingFragment, tl as siblingPath$1, tn as listContentTypes, to as normalizeCsvIds, tr as useImageResolveContextOptional, ts as getEventAvailabilityStatus, tt as deriveTransactionCapabilities, tu as TabsContent, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, uc as ChevronRightIcon, ud as formatBookingTime, uf as ImageUp, ui as testimonialsHeadingFragment, ul as TokenResolver, un as deletePageSurfaceSlotBlock, uo as previewStageSchema, ur as buildEventCalendarInteractiveIslandProps, us as defineClientOwnedBlockRuntime, ut as PreviewTextEditor, uu as DialogClose, va as backgroundAppearanceColorTokenNames, vc as FileAudioIcon, vd as formatBookingPriceDisplay, vf as FileHeadphone, vi as siteOptionSources, vl as textColorStyle, vn as deriveLaunchReadiness, vo as bindingSchema, vr as findEventByOccurrenceId, vs as assertNever$6, vt as useEditor, wc as MinusIcon, wd as formatCurrencyAmount, wf as CreditCard, wi as MQ_TABLET_ONLY, wl as getModalConfig, wn as getClientRect, wo as normalizeEventScheduleScope, wr as getStepNumber$1, ws as ICON_SIZE_PX, wt as useEntryEditorController, wu as CardContent, xa as parseBackgroundAppearanceColorToken, xc as InfoIcon, xd as publicEventPricingType, xf as EyeOff, xi as MQ_MD_UP, xl as surfaceForegroundValue, xn as KeyboardCode, xo as eventSurfaceScopeValues, xr as resolveEventRequiresPayment, xs as ACCORDION_TRIGGER_FONT_SCALE, xt as EditableBlockProvider, xu as Trigger, ya as backgroundAppearanceQuickColorTokenNames, yc as FileSpreadsheetIcon, yd as publicEventPricingCurrency, yf as FileArchive, yi as MQ_LG_UP, yl as DEFAULT_SURFACE_TEXT_COLOR, yn as AMBIENT_BACKGROUND_ROLES$1, yo as eventBlockKindValues, yr as findPreSelectedEvent, ys as ACCORDION_OPEN_ACCENT_THICKNESS, yu as Content, za as inferLegacyOfferingsPreviewGroupOrder, zc as resolveImageUrlWithContext, zd as lucide_react_exports, zf as ArrowDown, zi as resolveVisiblePromotedFieldPathsForEditorBlock, zl as TooltipTrigger, zn as listBlockDescriptors, zo as buildGoogleMapsDirectionsUrl, zr as getShopDisplayForItems, zs as parseBlockIconValue, zt as createRoutingHelpers, zu as __rest } from "./SiteChromeCustomizeContext-BQUY2dEk.mjs";
|
|
3
|
+
import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-RRu7wyQ5.mjs";
|
|
4
|
+
import { _ as API_ENDPOINTS, a as usePreviewToken, c as createBearerAPIClient, d as unwrapResponse, g as resolveSurfaceDocumentAttributes, h as SURFACE_IDS, i as usePreviewAuthFetch, l as ApiEnvelopeError, m as SURFACE_DOCUMENT_DATA_ATTRIBUTE, n as markPreviewAuthExpired, o as isPreviewRuntimeSessionEditable, r as usePreviewAuth, s as ApiRequestError, t as initPreviewAuth, u as extractApiEnvelopeErrorDetails } from "./previewAuthStore-a_cBD28m.mjs";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import React, { Children, Component, Fragment, cloneElement, createContext, createElement, createRef, forwardRef, isValidElement, memo, startTransition, useCallback, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
7
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1973,10 +1973,10 @@ function useBlockApi() {
|
|
|
1973
1973
|
}
|
|
1974
1974
|
//#endregion
|
|
1975
1975
|
//#region ../blocks/src/primitives/layout/Section.tsx
|
|
1976
|
-
const Section = forwardRef(function Section({ as: Comp = "section", children, background, className = "",
|
|
1976
|
+
const Section = forwardRef(function Section({ as: Comp = "section", children, background, className = "", style, "data-slot": dataSlot }, ref) {
|
|
1977
1977
|
return /* @__PURE__ */ jsx(Comp, {
|
|
1978
1978
|
ref,
|
|
1979
|
-
className: clsx("rb-relative rb-isolate
|
|
1979
|
+
className: clsx("rb-relative rb-isolate rb-overflow-visible", className),
|
|
1980
1980
|
style: mergeStyles(typeof background === "string" && background.trim().length > 0 ? backgroundColorStyle(background.trim()) : void 0, style),
|
|
1981
1981
|
"data-slot": dataSlot ?? "section",
|
|
1982
1982
|
children
|
|
@@ -2097,10 +2097,7 @@ function Grid({ as: Comp = "div", cols = {
|
|
|
2097
2097
|
}
|
|
2098
2098
|
//#endregion
|
|
2099
2099
|
//#region ../blocks/src/system/runtime/nodes/layout.tsx
|
|
2100
|
-
const SectionNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase,
|
|
2101
|
-
...props,
|
|
2102
|
-
allowOverflow
|
|
2103
|
-
});
|
|
2100
|
+
const SectionNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Section, { ...props });
|
|
2104
2101
|
const StackNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Stack, { ...props });
|
|
2105
2102
|
const InlineNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Inline, { ...props });
|
|
2106
2103
|
const GridNode = ({ blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, previewAuthoring: _previewAuthoring, pathBase: _pathBase, ...props }) => /* @__PURE__ */ jsx(Grid, { ...props });
|
|
@@ -2611,6 +2608,58 @@ function getCtaIconComponent(name) {
|
|
|
2611
2608
|
return CTA_ICON_COMPONENTS[name] ?? null;
|
|
2612
2609
|
}
|
|
2613
2610
|
//#endregion
|
|
2611
|
+
//#region ../blocks/src/system/icons/social.tsx
|
|
2612
|
+
const SOCIAL_ICON_NAMES = [
|
|
2613
|
+
"SocialFacebook",
|
|
2614
|
+
"SocialInstagram",
|
|
2615
|
+
"SocialLinkedIn",
|
|
2616
|
+
"SocialTikTok",
|
|
2617
|
+
"SocialX",
|
|
2618
|
+
"SocialYouTube"
|
|
2619
|
+
];
|
|
2620
|
+
const socialIcons = {
|
|
2621
|
+
SocialFacebook: createIcon("SocialFacebookIcon", /* @__PURE__ */ jsx("path", { d: "M14 8h3V4h-3c-3 0-5 2-5 5v3H6v4h3v6h4v-6h3l1-4h-4V9c0-.7.3-1 1-1Z" })),
|
|
2622
|
+
SocialInstagram: createIcon("SocialInstagramIcon", /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
2623
|
+
/* @__PURE__ */ jsx("rect", {
|
|
2624
|
+
x: "3",
|
|
2625
|
+
y: "3",
|
|
2626
|
+
width: "18",
|
|
2627
|
+
height: "18",
|
|
2628
|
+
rx: "5"
|
|
2629
|
+
}),
|
|
2630
|
+
/* @__PURE__ */ jsx("circle", {
|
|
2631
|
+
cx: "12",
|
|
2632
|
+
cy: "12",
|
|
2633
|
+
r: "4"
|
|
2634
|
+
}),
|
|
2635
|
+
/* @__PURE__ */ jsx("circle", {
|
|
2636
|
+
cx: "17.5",
|
|
2637
|
+
cy: "6.5",
|
|
2638
|
+
r: ".75",
|
|
2639
|
+
fill: "currentColor",
|
|
2640
|
+
stroke: "none"
|
|
2641
|
+
})
|
|
2642
|
+
] })),
|
|
2643
|
+
SocialLinkedIn: createIcon("SocialLinkedInIcon", /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
2644
|
+
/* @__PURE__ */ jsx("path", { d: "M6 9v10" }),
|
|
2645
|
+
/* @__PURE__ */ jsx("path", {
|
|
2646
|
+
d: "M6 5.5v.01",
|
|
2647
|
+
strokeWidth: "3"
|
|
2648
|
+
}),
|
|
2649
|
+
/* @__PURE__ */ jsx("path", { d: "M10.5 19v-6a4 4 0 0 1 8 0v6" }),
|
|
2650
|
+
/* @__PURE__ */ jsx("path", { d: "M10.5 9v10" })
|
|
2651
|
+
] })),
|
|
2652
|
+
SocialTikTok: createIcon("SocialTikTokIcon", /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M14 4v11.5a4.5 4.5 0 1 1-4-4.47" }), /* @__PURE__ */ jsx("path", { d: "M14 4c.7 3 2.4 4.5 5 4.5" })] })),
|
|
2653
|
+
SocialX: createIcon("SocialXIcon", /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "m5 4 14 16" }), /* @__PURE__ */ jsx("path", { d: "M19 4 5 20" })] })),
|
|
2654
|
+
SocialYouTube: createIcon("SocialYouTubeIcon", /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M21 12c0 3.5-.5 5.5-1.3 6.3S16.5 19.5 12 19.5s-6.9-.4-7.7-1.2S3 15.5 3 12s.5-5.5 1.3-6.3S7.5 4.5 12 4.5s6.9.4 7.7 1.2S21 8.5 21 12Z" }), /* @__PURE__ */ jsx("path", { d: "m10 9 5 3-5 3Z" })] }))
|
|
2655
|
+
};
|
|
2656
|
+
function isSocialIconName(value) {
|
|
2657
|
+
return typeof value === "string" && SOCIAL_ICON_NAMES.includes(value);
|
|
2658
|
+
}
|
|
2659
|
+
function getSocialIconComponent(value) {
|
|
2660
|
+
return isSocialIconName(value) ? socialIcons[value] : null;
|
|
2661
|
+
}
|
|
2662
|
+
//#endregion
|
|
2614
2663
|
//#region ../blocks/src/system/icons/registry.ts
|
|
2615
2664
|
function buildSearchText(parts) {
|
|
2616
2665
|
return parts.map((part) => part.trim()).filter(Boolean).join(" ");
|
|
@@ -2646,10 +2695,10 @@ function getIconPickerOptionsForPreset(preset) {
|
|
|
2646
2695
|
return ICON_PICKER_OPTIONS_BY_PRESET[preset];
|
|
2647
2696
|
}
|
|
2648
2697
|
function isKnownIconName(value) {
|
|
2649
|
-
return isCtaIconName(value) || isSemanticIconId(value);
|
|
2698
|
+
return isCtaIconName(value) || isSemanticIconId(value) || isSocialIconName(value);
|
|
2650
2699
|
}
|
|
2651
2700
|
function getIconComponent(name) {
|
|
2652
|
-
return getCtaIconComponent(name) ?? getSemanticIconComponent(name);
|
|
2701
|
+
return getCtaIconComponent(name) ?? getSemanticIconComponent(name) ?? getSocialIconComponent(name);
|
|
2653
2702
|
}
|
|
2654
2703
|
//#endregion
|
|
2655
2704
|
//#region ../blocks/src/system/runtime/nodes/buttonAffordance.ts
|
|
@@ -3537,7 +3586,6 @@ const HeaderSectionNode$1 = ({ blockId, children, className, "data-preview-site-
|
|
|
3537
3586
|
const asProp = rest.as;
|
|
3538
3587
|
const styleProp = rest.style;
|
|
3539
3588
|
const backgroundProp = typeof rest.background === "string" ? rest.background : void 0;
|
|
3540
|
-
const allowOverflowProp = typeof rest.allowOverflow === "boolean" ? rest.allowOverflow : void 0;
|
|
3541
3589
|
const dataSlotProp = typeof rest["data-slot"] === "string" ? rest["data-slot"] : void 0;
|
|
3542
3590
|
return /* @__PURE__ */ jsxs("nav", {
|
|
3543
3591
|
...getIslandRootProps("headerSection", blockId),
|
|
@@ -3552,7 +3600,6 @@ const HeaderSectionNode$1 = ({ blockId, children, className, "data-preview-site-
|
|
|
3552
3600
|
as: asProp,
|
|
3553
3601
|
style: styleProp,
|
|
3554
3602
|
background: backgroundProp ?? "background",
|
|
3555
|
-
allowOverflow: allowOverflowProp,
|
|
3556
3603
|
"data-slot": dataSlotProp,
|
|
3557
3604
|
className: sectionClasses || void 0,
|
|
3558
3605
|
children
|
|
@@ -7192,7 +7239,7 @@ function resolveGroupFrame(cardStyles) {
|
|
|
7192
7239
|
contentClassName: "offerings-preview-card-content rb-flex rb-h-full rb-min-h-full rb-flex-col rb-gap-5"
|
|
7193
7240
|
};
|
|
7194
7241
|
return {
|
|
7195
|
-
containerClassName: ["offerings-preview-card offerings-preview-card--framed rb-relative rb-isolate rb-h-full rb-min-h-full rb-overflow-
|
|
7242
|
+
containerClassName: ["offerings-preview-card offerings-preview-card--framed rb-relative rb-isolate rb-h-full rb-min-h-full rb-overflow-visible rb-bg-surface rb-border rb-border-border", resolveGroupFrameClasses(cardStyles)].filter(Boolean).join(" "),
|
|
7196
7243
|
containerStyle: resolveGroupFrameStyle(cardStyles),
|
|
7197
7244
|
contentClassName: "card-content offerings-preview-card-content rb-flex rb-h-full rb-min-h-full rb-flex-col rb-gap-5"
|
|
7198
7245
|
};
|
|
@@ -7454,6 +7501,39 @@ function headingDecoration({ bindFrom = defaultBindFrom, className } = {}) {
|
|
|
7454
7501
|
} } })], when(`${bindFrom}.family`));
|
|
7455
7502
|
}
|
|
7456
7503
|
//#endregion
|
|
7504
|
+
//#region ../blocks/src/system/fragments/library/footerBottomText.ts
|
|
7505
|
+
const footerBottomTextFragment = defineFragment({
|
|
7506
|
+
id: "footerBottomText",
|
|
7507
|
+
title: "Footer Text",
|
|
7508
|
+
description: "Rich text content for the main footer body and optional bottom bar.",
|
|
7509
|
+
fields: [{
|
|
7510
|
+
id: "bodyText",
|
|
7511
|
+
type: "richText",
|
|
7512
|
+
label: "Body text",
|
|
7513
|
+
description: "Appears in the main footer area.",
|
|
7514
|
+
ui: { variant: "limited" }
|
|
7515
|
+
}, {
|
|
7516
|
+
id: "bottomText",
|
|
7517
|
+
type: "richText",
|
|
7518
|
+
label: "Bottom bar text",
|
|
7519
|
+
description: "Appears in the optional footer bottom bar.",
|
|
7520
|
+
ui: { variant: "limited" }
|
|
7521
|
+
}],
|
|
7522
|
+
layout: [richText({
|
|
7523
|
+
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
7524
|
+
style: textColorStyle("text/80")
|
|
7525
|
+
}, when("bodyText"), bind("bodyText", { transforms: [{
|
|
7526
|
+
id: "content.interpolateRichTextTokens",
|
|
7527
|
+
options: { tokens: ["year", "site_name"] }
|
|
7528
|
+
}] })), richText({
|
|
7529
|
+
className: "rb-prose rb-prose-sm rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
7530
|
+
style: textColorStyle("text/80")
|
|
7531
|
+
}, when("bottomText"), bind("bottomText", { transforms: [{
|
|
7532
|
+
id: "content.interpolateRichTextTokens",
|
|
7533
|
+
options: { tokens: ["year", "site_name"] }
|
|
7534
|
+
}] }))]
|
|
7535
|
+
});
|
|
7536
|
+
//#endregion
|
|
7457
7537
|
//#region ../blocks/src/system/fragments/library/headerCta.ts
|
|
7458
7538
|
const headerCtaFragment = defineFragment({
|
|
7459
7539
|
id: "headerCta",
|
|
@@ -24994,7 +25074,6 @@ const HeaderSectionNode = ({ blockId, blockKind, blockContent, fragmentRegistry,
|
|
|
24994
25074
|
const asProp = restProps.as;
|
|
24995
25075
|
const styleProp = restProps.style;
|
|
24996
25076
|
const backgroundProp = typeof restProps.background === "string" ? restProps.background : void 0;
|
|
24997
|
-
const allowOverflowProp = typeof restProps.allowOverflow === "boolean" ? restProps.allowOverflow : void 0;
|
|
24998
25077
|
const dataSlotProp = typeof restProps["data-slot"] === "string" ? restProps["data-slot"] : void 0;
|
|
24999
25078
|
return /* @__PURE__ */ jsx("nav", {
|
|
25000
25079
|
ref: (el) => {
|
|
@@ -25016,7 +25095,6 @@ const HeaderSectionNode = ({ blockId, blockKind, blockContent, fragmentRegistry,
|
|
|
25016
25095
|
as: asProp,
|
|
25017
25096
|
style: styleProp,
|
|
25018
25097
|
background: backgroundProp ?? "background",
|
|
25019
|
-
allowOverflow: allowOverflowProp,
|
|
25020
25098
|
"data-slot": dataSlotProp,
|
|
25021
25099
|
className: sectionClasses || void 0,
|
|
25022
25100
|
children
|
|
@@ -28182,16 +28260,17 @@ const backgroundTransforms = [
|
|
|
28182
28260
|
run: (value, _options, context) => resolveSurfaceForegroundStyles(value, context)
|
|
28183
28261
|
},
|
|
28184
28262
|
{
|
|
28185
|
-
id: "background.
|
|
28263
|
+
id: "background.resolveFrameClassName",
|
|
28186
28264
|
kind: "formatter",
|
|
28187
|
-
summary: "Resolve
|
|
28188
|
-
run: (value) => {
|
|
28189
|
-
|
|
28265
|
+
summary: "Resolve clipping on a decorative background frame without clipping foreground content",
|
|
28266
|
+
run: (value, options) => {
|
|
28267
|
+
const baseClass = options?.baseClass?.trim() ?? "";
|
|
28268
|
+
if (!value || typeof value !== "object") return `${baseClass} rb-overflow-hidden`.trim();
|
|
28190
28269
|
const input = value;
|
|
28191
|
-
if (input.overflow === true) return
|
|
28270
|
+
if (input.overflow === true) return `${baseClass} rb-overflow-visible`.trim();
|
|
28192
28271
|
const objectFit = isString$1(input.objectFit) ? input.objectFit.trim() : null;
|
|
28193
28272
|
const scale = isString$1(input.scale) ? input.scale.trim() : isNumber$1(input.scale) ? String(input.scale) : null;
|
|
28194
|
-
return Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0);
|
|
28273
|
+
return `${baseClass} ${Boolean((objectFit === "custom" || objectFit === "original") && scale && scale.trim().length > 0) ? "rb-overflow-visible" : "rb-overflow-hidden"}`.trim();
|
|
28195
28274
|
}
|
|
28196
28275
|
},
|
|
28197
28276
|
{
|
|
@@ -29544,9 +29623,9 @@ function isReactNode(value) {
|
|
|
29544
29623
|
* Handles conditionals ($when), scopes ($scopes), repeaters ($repeat), bindings ($bind), and children.
|
|
29545
29624
|
*/
|
|
29546
29625
|
function resolveNode(node, context, indexFallback) {
|
|
29547
|
-
if (!shouldRenderNode(node, context)) return null;
|
|
29548
29626
|
const scopeContext = applyScopes(node, context);
|
|
29549
29627
|
if (node.$repeat) return resolveRepeater(node, scopeContext);
|
|
29628
|
+
if (!shouldRenderNode(node, scopeContext)) return null;
|
|
29550
29629
|
const registry = scopeContext.registry ?? serverComponentRegistry;
|
|
29551
29630
|
const normalizedType = node.type.toLowerCase();
|
|
29552
29631
|
const component = registry[node.type] ?? registry[normalizedType] ?? (normalizedType === "section" ? SectionNode : void 0);
|
|
@@ -30913,6 +30992,19 @@ Object.keys(NAV_LINK_PRESETS);
|
|
|
30913
30992
|
//#region ../theme-core/src/header/generateHeaderCss.ts
|
|
30914
30993
|
const HEADER_BLUR = "blur(12px)";
|
|
30915
30994
|
const FLOATING_BLUR = "blur(16px)";
|
|
30995
|
+
const INSET_SHELL_MARKER_CLASS = "header-bar-frame-inset-shell";
|
|
30996
|
+
const INSET_SHELL_EDGE = "1rem";
|
|
30997
|
+
const INSET_SHELL_INSET_BLOCK = "0.875rem";
|
|
30998
|
+
const INSET_SHELL_RADIUS = "9999px";
|
|
30999
|
+
const INSET_SHELL_CONTAINER_MAX = "80rem";
|
|
31000
|
+
const INSET_SHELL_INTERIOR_PADDING_X = "1.75rem";
|
|
31001
|
+
/**
|
|
31002
|
+
* Whether the classic header should render as an inset "brand capsule" shell.
|
|
31003
|
+
* The facet is only meaningful for the classic layout; other variants ignore it.
|
|
31004
|
+
*/
|
|
31005
|
+
function usesInsetShell(header) {
|
|
31006
|
+
return header.barFrame === "inset-shell" && header.variant === "classic";
|
|
31007
|
+
}
|
|
30916
31008
|
/**
|
|
30917
31009
|
* Generate complete CSS for header system from theme config
|
|
30918
31010
|
*
|
|
@@ -31012,7 +31104,36 @@ function generateHeaderRootStyles(header, themeId, tokens, _theme) {
|
|
|
31012
31104
|
const baseBlock = `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
31013
31105
|
const overlayFix = `\n${`${selector}:has([data-nav-mobile-overlay][aria-hidden="false"])`} {\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n}\n`;
|
|
31014
31106
|
if (isContainedNav || backgroundRules.length === 0) return `${baseBlock}\n${overlayFix}`;
|
|
31015
|
-
return `${baseBlock}\n${`\n${backgroundSelector} {\n content: \"\";\n position: absolute;\n inset: 0;\n pointer-events: none;\n border-radius: inherit;\n z-index: -1;\n ${backgroundRules.join("\n ")}\n}\n`}\n${overlayFix}`;
|
|
31107
|
+
return `${baseBlock}\n${`\n${backgroundSelector} {\n content: \"\";\n position: absolute;\n inset: 0;\n pointer-events: none;\n border-radius: inherit;\n z-index: -1;\n ${backgroundRules.join("\n ")}\n}\n`}\n${overlayFix}${usesInsetShell(header) ? generateInsetShellStyles(header, themeId) : ""}`;
|
|
31108
|
+
}
|
|
31109
|
+
/**
|
|
31110
|
+
* Reshapes the full-bleed header paint layer into a contained brand capsule at
|
|
31111
|
+
* the desktop breakpoint. The capsule is centred, capped to the page container
|
|
31112
|
+
* width, inset from the top, fully rounded, and carries the header depth so it
|
|
31113
|
+
* reads as a floating pill. Root border/shadow are neutralised on desktop so a
|
|
31114
|
+
* bordered style does not leave a full-width hairline around the capsule. Sticky
|
|
31115
|
+
* positioning is unaffected — the root stays full width and sticky while the
|
|
31116
|
+
* ::before paint provides the capsule.
|
|
31117
|
+
*/
|
|
31118
|
+
function generateInsetShellStyles(header, themeId) {
|
|
31119
|
+
const scope = `:where([data-theme-scope="${themeId}"])`;
|
|
31120
|
+
const shellRootSelector = `${scope} .header-root.${INSET_SHELL_MARKER_CLASS}`;
|
|
31121
|
+
const shellBeforeSelector = `${scope} .header-root.${INSET_SHELL_MARKER_CLASS}::before`;
|
|
31122
|
+
const layoutSelector = `${scope} .header-root.${INSET_SHELL_MARKER_CLASS} .rb-header-layout`;
|
|
31123
|
+
const widthValue = header.maxWidth === "full" ? `calc(100% - (${INSET_SHELL_EDGE} * 2))` : `min(${INSET_SHELL_CONTAINER_MAX}, calc(100% - (${INSET_SHELL_EDGE} * 2)))`;
|
|
31124
|
+
const shadowVar = getComponentShadowVar(header.shadow?.elevation ?? "none");
|
|
31125
|
+
const rootRules = ["border: none;", "box-shadow: none;"];
|
|
31126
|
+
const beforeRules = [
|
|
31127
|
+
`inset: ${INSET_SHELL_INSET_BLOCK} auto;`,
|
|
31128
|
+
"left: 50%;",
|
|
31129
|
+
"right: auto;",
|
|
31130
|
+
"transform: translateX(-50%);",
|
|
31131
|
+
`width: ${widthValue};`,
|
|
31132
|
+
`border-radius: ${INSET_SHELL_RADIUS};`,
|
|
31133
|
+
...shadowVar ? [`box-shadow: ${shadowVar};`] : []
|
|
31134
|
+
];
|
|
31135
|
+
const layoutRules = [`padding-inline: ${INSET_SHELL_INTERIOR_PADDING_X};`];
|
|
31136
|
+
return `\n@media ${MQ_MD_UP} {\n${shellRootSelector} {\n ${rootRules.join("\n ")}\n}\n${shellBeforeSelector} {\n ${beforeRules.join("\n ")}\n}\n${layoutSelector} {\n ${layoutRules.join("\n ")}\n}\n}\n`;
|
|
31016
31137
|
}
|
|
31017
31138
|
/**
|
|
31018
31139
|
* Generate logo typography styles
|
|
@@ -31090,7 +31211,7 @@ function generateLogoTextBehaviorStyles(logoText, themeId) {
|
|
|
31090
31211
|
*/
|
|
31091
31212
|
function generateNavLinkStyles(header, themeId, tokens, theme, contrastTreatment, navTextSize) {
|
|
31092
31213
|
const navPreferences = {
|
|
31093
|
-
typography: header.navTypography ?? "inherit",
|
|
31214
|
+
typography: header.navFontRole ?? header.navTypography ?? "inherit",
|
|
31094
31215
|
fontSize: readHeaderNavFontSizePreference(header.navTextSize)
|
|
31095
31216
|
};
|
|
31096
31217
|
if (header.navLinkStyle) return generateNavLinkCSS({
|
|
@@ -35416,6 +35537,12 @@ const containerResponsiveThemeCss = `/*
|
|
|
35416
35537
|
.rb-lg-hidden {
|
|
35417
35538
|
display: none;
|
|
35418
35539
|
}
|
|
35540
|
+
.rb-lg-flex-row {
|
|
35541
|
+
flex-direction: row;
|
|
35542
|
+
}
|
|
35543
|
+
.rb-lg-items-center {
|
|
35544
|
+
align-items: center;
|
|
35545
|
+
}
|
|
35419
35546
|
}
|
|
35420
35547
|
|
|
35421
35548
|
}
|
|
@@ -46852,7 +46979,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
46852
46979
|
[data-block="feature-cards"][data-block-composition="asymmetric-emphasis"]
|
|
46853
46980
|
.rb-feature-card {
|
|
46854
46981
|
height: auto;
|
|
46855
|
-
overflow:
|
|
46982
|
+
overflow: visible;
|
|
46856
46983
|
border: 0;
|
|
46857
46984
|
border-radius: 0;
|
|
46858
46985
|
background: transparent;
|
|
@@ -58420,7 +58547,8 @@ function buildInsertBlockHistoryCommand({ block, index, draftContent, publishedC
|
|
|
58420
58547
|
draftContent: toEditorBlockValues(baseline),
|
|
58421
58548
|
publishedContent: toEditorBlockValues(nextPublishedContent),
|
|
58422
58549
|
bindings: toEditorBlockValues(block.bindings ?? null),
|
|
58423
|
-
purpose
|
|
58550
|
+
purpose,
|
|
58551
|
+
optimisticHash: block.optimisticHash ?? null
|
|
58424
58552
|
}, {
|
|
58425
58553
|
id: blockId,
|
|
58426
58554
|
version: 0,
|
|
@@ -58431,7 +58559,8 @@ function buildInsertBlockHistoryCommand({ block, index, draftContent, publishedC
|
|
|
58431
58559
|
kind: block.kind,
|
|
58432
58560
|
purpose,
|
|
58433
58561
|
orderIndex: index,
|
|
58434
|
-
publishedContent: toEditorBlockValues(nextPublishedContent)
|
|
58562
|
+
publishedContent: toEditorBlockValues(nextPublishedContent),
|
|
58563
|
+
optimisticHash: block.optimisticHash ?? null
|
|
58435
58564
|
}
|
|
58436
58565
|
}, index);
|
|
58437
58566
|
}
|
|
@@ -58441,6 +58570,8 @@ function blockEditorOwnerKey(owner) {
|
|
|
58441
58570
|
switch (owner.kind) {
|
|
58442
58571
|
case "page": return `page:${owner.pageId}`;
|
|
58443
58572
|
case "entry-slot": return `entry-slot:${owner.type}:${owner.entryId}:${owner.slotKey}`;
|
|
58573
|
+
case "surface-slot": return `surface-slot:${owner.pageSurfaceId}:${owner.slotKey}`;
|
|
58574
|
+
default: return assertNever$5(owner);
|
|
58444
58575
|
}
|
|
58445
58576
|
}
|
|
58446
58577
|
async function createEditableBlockForOwner(apiClient, siteId, owner, input) {
|
|
@@ -58462,6 +58593,16 @@ async function createEditableBlockForOwner(apiClient, siteId, owner, input) {
|
|
|
58462
58593
|
position: input.position,
|
|
58463
58594
|
purpose: input.purpose
|
|
58464
58595
|
});
|
|
58596
|
+
case "surface-slot": return createPageSurfaceSlotBlock(apiClient, {
|
|
58597
|
+
siteId,
|
|
58598
|
+
pageSurfaceId: owner.pageSurfaceId,
|
|
58599
|
+
slotKey: owner.slotKey,
|
|
58600
|
+
kind: input.kind,
|
|
58601
|
+
position: input.position,
|
|
58602
|
+
purpose: input.purpose,
|
|
58603
|
+
expectedCompositionHash: owner.compositionHash
|
|
58604
|
+
});
|
|
58605
|
+
default: return assertNever$5(owner);
|
|
58465
58606
|
}
|
|
58466
58607
|
}
|
|
58467
58608
|
async function reorderEditableBlocksForOwner(apiClient, siteId, owner, blockIds) {
|
|
@@ -58478,6 +58619,14 @@ async function reorderEditableBlocksForOwner(apiClient, siteId, owner, blockIds)
|
|
|
58478
58619
|
slotKey: owner.slotKey,
|
|
58479
58620
|
blockIds
|
|
58480
58621
|
});
|
|
58622
|
+
case "surface-slot": return reorderPageSurfaceSlotBlocks(apiClient, {
|
|
58623
|
+
siteId,
|
|
58624
|
+
pageSurfaceId: owner.pageSurfaceId,
|
|
58625
|
+
slotKey: owner.slotKey,
|
|
58626
|
+
blockIds,
|
|
58627
|
+
expectedCompositionHash: owner.compositionHash
|
|
58628
|
+
});
|
|
58629
|
+
default: return assertNever$5(owner);
|
|
58481
58630
|
}
|
|
58482
58631
|
}
|
|
58483
58632
|
async function deleteEditableBlockForOwner(apiClient, siteId, owner, blockId) {
|
|
@@ -58494,11 +58643,23 @@ async function deleteEditableBlockForOwner(apiClient, siteId, owner, blockId) {
|
|
|
58494
58643
|
slotKey: owner.slotKey,
|
|
58495
58644
|
blockId
|
|
58496
58645
|
});
|
|
58646
|
+
case "surface-slot": return deletePageSurfaceSlotBlock(apiClient, {
|
|
58647
|
+
siteId,
|
|
58648
|
+
pageSurfaceId: owner.pageSurfaceId,
|
|
58649
|
+
slotKey: owner.slotKey,
|
|
58650
|
+
blockId,
|
|
58651
|
+
expectedCompositionHash: owner.compositionHash
|
|
58652
|
+
});
|
|
58653
|
+
default: return assertNever$5(owner);
|
|
58497
58654
|
}
|
|
58498
58655
|
}
|
|
58656
|
+
function surfaceCompositionHashFromResponse(response) {
|
|
58657
|
+
if (typeof response === "object" && response !== null && "compositionHash" in response && typeof response.compositionHash === "string") return response.compositionHash;
|
|
58658
|
+
return null;
|
|
58659
|
+
}
|
|
58499
58660
|
//#endregion
|
|
58500
58661
|
//#region ../editor-blocks/src/block-editor/hooks/useBlockCreation.ts
|
|
58501
|
-
function useBlockCreation({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, uiStore }) {
|
|
58662
|
+
function useBlockCreation({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, uiStore, onStructuralRevisionChange }) {
|
|
58502
58663
|
const [pickerOpen, setPickerOpen] = useState(false);
|
|
58503
58664
|
const [insertPosition, setInsertPosition] = useState(null);
|
|
58504
58665
|
const [creatingBlockName, setCreatingBlockName] = useState(null);
|
|
@@ -58526,11 +58687,14 @@ function useBlockCreation({ allowCreation, apiClient, siteId, owner, blockList,
|
|
|
58526
58687
|
setCreatingBlockName(descriptor.name);
|
|
58527
58688
|
setErrorMessage(null);
|
|
58528
58689
|
try {
|
|
58529
|
-
const
|
|
58690
|
+
const response = await createEditableBlockForOwner(apiClient, siteId, owner, {
|
|
58530
58691
|
kind: descriptor.name,
|
|
58531
58692
|
position: insertPosition,
|
|
58532
58693
|
purpose: "content"
|
|
58533
|
-
})
|
|
58694
|
+
});
|
|
58695
|
+
const nextCompositionHash = surfaceCompositionHashFromResponse(response);
|
|
58696
|
+
if (nextCompositionHash) onStructuralRevisionChange?.(nextCompositionHash);
|
|
58697
|
+
const newBlock = response.block;
|
|
58534
58698
|
const updated = [...blockList];
|
|
58535
58699
|
updated.splice(insertPosition, 0, {
|
|
58536
58700
|
...newBlock,
|
|
@@ -58576,6 +58740,7 @@ function useBlockCreation({ allowCreation, apiClient, siteId, owner, blockList,
|
|
|
58576
58740
|
creatingBlockName,
|
|
58577
58741
|
insertPosition,
|
|
58578
58742
|
onBlocksChange,
|
|
58743
|
+
onStructuralRevisionChange,
|
|
58579
58744
|
owner,
|
|
58580
58745
|
setBlockList,
|
|
58581
58746
|
siteId,
|
|
@@ -58591,7 +58756,7 @@ function getDuplicateDraftContent(block) {
|
|
|
58591
58756
|
if (!source || typeof source !== "object" || Array.isArray(source)) return null;
|
|
58592
58757
|
return JSON.parse(JSON.stringify(source));
|
|
58593
58758
|
}
|
|
58594
|
-
function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore }) {
|
|
58759
|
+
function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore, onStructuralRevisionChange }) {
|
|
58595
58760
|
const [duplicatingBlockId, setDuplicatingBlockId] = useState(null);
|
|
58596
58761
|
return {
|
|
58597
58762
|
duplicatingBlockId,
|
|
@@ -58607,18 +58772,27 @@ function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockLis
|
|
|
58607
58772
|
setDuplicatingBlockId(blockId);
|
|
58608
58773
|
setErrorMessage(null);
|
|
58609
58774
|
let createdBlockId = null;
|
|
58775
|
+
let ownerAfterCreate = owner;
|
|
58610
58776
|
try {
|
|
58611
|
-
const
|
|
58777
|
+
const response = await createEditableBlockForOwner(apiClient, siteId, owner, {
|
|
58612
58778
|
kind: sourceBlock.kind,
|
|
58613
58779
|
position: insertIndex,
|
|
58614
58780
|
purpose,
|
|
58615
58781
|
duplicatedFromBlockId: blockId
|
|
58616
|
-
})
|
|
58782
|
+
});
|
|
58783
|
+
const createdCompositionHash = surfaceCompositionHashFromResponse(response);
|
|
58784
|
+
ownerAfterCreate = owner.kind === "surface-slot" && createdCompositionHash ? {
|
|
58785
|
+
...owner,
|
|
58786
|
+
compositionHash: createdCompositionHash
|
|
58787
|
+
} : owner;
|
|
58788
|
+
if (createdCompositionHash) onStructuralRevisionChange?.(createdCompositionHash);
|
|
58789
|
+
const createdBlock = response.block;
|
|
58617
58790
|
if (!createdBlock.id) throw new Error("Duplicate block did not return a block id");
|
|
58618
58791
|
createdBlockId = createdBlock.id;
|
|
58619
58792
|
if (draftContent) await mutateBlockContent(apiClient, {
|
|
58620
58793
|
siteId,
|
|
58621
58794
|
blockId: createdBlock.id,
|
|
58795
|
+
optimisticHash: createdBlock.optimisticHash ?? null,
|
|
58622
58796
|
data: draftContent
|
|
58623
58797
|
});
|
|
58624
58798
|
const insertedBlock = {
|
|
@@ -58650,7 +58824,8 @@ function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockLis
|
|
|
58650
58824
|
}
|
|
58651
58825
|
} catch (error) {
|
|
58652
58826
|
if (createdBlockId) try {
|
|
58653
|
-
await deleteEditableBlockForOwner(apiClient, siteId,
|
|
58827
|
+
const nextCompositionHash = surfaceCompositionHashFromResponse(await deleteEditableBlockForOwner(apiClient, siteId, ownerAfterCreate, createdBlockId));
|
|
58828
|
+
if (nextCompositionHash) onStructuralRevisionChange?.(nextCompositionHash);
|
|
58654
58829
|
} catch {}
|
|
58655
58830
|
const message = error instanceof Error ? error.message : "Failed to duplicate block";
|
|
58656
58831
|
console.error("[useBlockDuplication] duplicate failed:", message, error);
|
|
@@ -58664,6 +58839,7 @@ function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockLis
|
|
|
58664
58839
|
blockList,
|
|
58665
58840
|
duplicatingBlockId,
|
|
58666
58841
|
onBlocksChange,
|
|
58842
|
+
onStructuralRevisionChange,
|
|
58667
58843
|
owner,
|
|
58668
58844
|
setBlockList,
|
|
58669
58845
|
setErrorMessage,
|
|
@@ -58682,7 +58858,7 @@ function blockIdsEqual(left, right) {
|
|
|
58682
58858
|
if (left.length !== right.length) return false;
|
|
58683
58859
|
return left.every((blockId, index) => blockId === right[index]);
|
|
58684
58860
|
}
|
|
58685
|
-
function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, setErrorMessage, uiStore }) {
|
|
58861
|
+
function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, setErrorMessage, uiStore, onStructuralRevisionChange }) {
|
|
58686
58862
|
const [reorderId, setReorderId] = useState(null);
|
|
58687
58863
|
const applyReorder = useCallback(async (updated, original) => {
|
|
58688
58864
|
if (!allowReordering) return;
|
|
@@ -58690,7 +58866,8 @@ function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList,
|
|
|
58690
58866
|
const nextBlockIds = getBlockIds(updated);
|
|
58691
58867
|
uiStore?.getState().history.applyCommand?.({ ...createEditorReorderBlocksCommand(nextBlockIds.map((blockId) => unsafeAsEditorBlockId(blockId))) });
|
|
58692
58868
|
try {
|
|
58693
|
-
await reorderEditableBlocksForOwner(apiClient, siteId, owner, nextBlockIds);
|
|
58869
|
+
const nextCompositionHash = surfaceCompositionHashFromResponse(await reorderEditableBlocksForOwner(apiClient, siteId, owner, nextBlockIds));
|
|
58870
|
+
if (nextCompositionHash) onStructuralRevisionChange?.(nextCompositionHash);
|
|
58694
58871
|
onBlocksChange?.(updated);
|
|
58695
58872
|
} catch (error) {
|
|
58696
58873
|
const message = error instanceof Error ? error.message : "Failed to reorder blocks";
|
|
@@ -58707,6 +58884,7 @@ function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList,
|
|
|
58707
58884
|
allowReordering,
|
|
58708
58885
|
apiClient,
|
|
58709
58886
|
onBlocksChange,
|
|
58887
|
+
onStructuralRevisionChange,
|
|
58710
58888
|
owner,
|
|
58711
58889
|
setBlockList,
|
|
58712
58890
|
siteId,
|
|
@@ -60509,6 +60687,7 @@ const SortableBlockItem = memo(function SortableBlockItem({ siteId, block, onMov
|
|
|
60509
60687
|
})
|
|
60510
60688
|
});
|
|
60511
60689
|
return /* @__PURE__ */ jsx("div", {
|
|
60690
|
+
"data-block-editor-client-ready": mounted ? "true" : "false",
|
|
60512
60691
|
ref: (node) => {
|
|
60513
60692
|
sortable.setNodeRef(node);
|
|
60514
60693
|
if (node) blockRef.current = node;
|
|
@@ -60576,7 +60755,7 @@ function getGeneratedIconSetErrorMessage(error) {
|
|
|
60576
60755
|
const message = getApiRequestErrorMessage(error);
|
|
60577
60756
|
return message === "Internal server error" || /^Request to .+ failed with status \d+$/u.test(message) ? GENERATED_ICON_SET_FRIENDLY_ERROR : message;
|
|
60578
60757
|
}
|
|
60579
|
-
const BlockEditor = forwardRef(function BlockEditor({ siteId, dashboardBaseUrl, owner, blocks, recoveryConflictBlockIds = [], recoveryConflictReviewRequestId = null, apiClient, uiStore, enableReordering = true, enableCreation = true, enableDeletion = true, onBlockSave, onBlocksChange, theme, widgetOverrides, headerLeftSlot, hideThemeV2RawStyleFields = false, pageDesignEditorModel = null, enabledContentTypes = [], sdkConfig = null, customBlocks = [], allowedBlockKinds = null, emptyUnavailableMessage = "No blocks available for this page.", initialCollapsed = true, reorderControlMode = DEFAULT_REORDER_CONTROL_MODE, actionPresentation = DEFAULT_BLOCK_ACTION_PRESENTATION }, ref) {
|
|
60758
|
+
const BlockEditor = forwardRef(function BlockEditor({ siteId, dashboardBaseUrl, owner, blocks, recoveryConflictBlockIds = [], recoveryConflictReviewRequestId = null, apiClient, uiStore, enableReordering = true, enableCreation = true, enableDeletion = true, onBlockSave, onBlocksChange, onStructuralRevisionChange, theme, widgetOverrides, headerLeftSlot, hideThemeV2RawStyleFields = false, pageDesignEditorModel = null, enabledContentTypes = [], sdkConfig = null, customBlocks = [], allowedBlockKinds = null, emptyUnavailableMessage = "No blocks available for this page.", initialCollapsed = true, reorderControlMode = DEFAULT_REORDER_CONTROL_MODE, actionPresentation = DEFAULT_BLOCK_ACTION_PRESENTATION }, ref) {
|
|
60580
60759
|
const [blockList, setBlockList] = useState(() => normalizeBlockListInitial(blocks));
|
|
60581
60760
|
const [errorMessage, setErrorMessage] = useState(null);
|
|
60582
60761
|
const [highlightedBlockId, setHighlightedBlockId] = useState(null);
|
|
@@ -60601,8 +60780,21 @@ const BlockEditor = forwardRef(function BlockEditor({ siteId, dashboardBaseUrl,
|
|
|
60601
60780
|
const conflictedBlockIdSet = useMemo(() => new Set(recoveryConflictBlockIds), [recoveryConflictBlockIds]);
|
|
60602
60781
|
const blockIds = useMemo(() => blockList.map((block) => block.id).filter((blockId) => typeof blockId === "string"), [blockList]);
|
|
60603
60782
|
const pageDesignBlockById = useMemo(() => new Map((pageDesignEditorModel?.blocks ?? []).map((block) => [String(block.blockId), block])), [pageDesignEditorModel]);
|
|
60783
|
+
const ownerKey = useMemo(() => blockEditorOwnerKey(owner), [owner]);
|
|
60784
|
+
const [surfaceCompositionHash, setSurfaceCompositionHash] = useState(owner.kind === "surface-slot" ? owner.compositionHash : null);
|
|
60785
|
+
const updateStructuralRevision = useCallback((revision) => {
|
|
60786
|
+
setSurfaceCompositionHash(revision);
|
|
60787
|
+
onStructuralRevisionChange?.(revision);
|
|
60788
|
+
}, [onStructuralRevisionChange]);
|
|
60789
|
+
useEffect(() => {
|
|
60790
|
+
setSurfaceCompositionHash(owner.kind === "surface-slot" ? owner.compositionHash : null);
|
|
60791
|
+
}, [ownerKey, owner.kind === "surface-slot" ? owner.compositionHash : null]);
|
|
60792
|
+
const mutationOwner = useMemo(() => owner.kind === "surface-slot" ? {
|
|
60793
|
+
...owner,
|
|
60794
|
+
compositionHash: surfaceCompositionHash ?? owner.compositionHash
|
|
60795
|
+
} : owner, [owner, surfaceCompositionHash]);
|
|
60604
60796
|
const { isCollapsed, setCollapsed } = useBlockExpandState({
|
|
60605
|
-
pageId:
|
|
60797
|
+
pageId: ownerKey,
|
|
60606
60798
|
blockIds,
|
|
60607
60799
|
initialCollapsed
|
|
60608
60800
|
});
|
|
@@ -60833,41 +61025,45 @@ const BlockEditor = forwardRef(function BlockEditor({ siteId, dashboardBaseUrl,
|
|
|
60833
61025
|
allowCreation: canCreateBlocks,
|
|
60834
61026
|
apiClient,
|
|
60835
61027
|
siteId,
|
|
60836
|
-
owner,
|
|
61028
|
+
owner: mutationOwner,
|
|
60837
61029
|
blockList,
|
|
60838
61030
|
setBlockList,
|
|
60839
61031
|
onBlocksChange,
|
|
60840
61032
|
triggerFocus,
|
|
60841
|
-
uiStore
|
|
61033
|
+
uiStore,
|
|
61034
|
+
onStructuralRevisionChange: updateStructuralRevision
|
|
60842
61035
|
});
|
|
60843
61036
|
const { reorderId, handleMove, onDragEnd } = useBlockReorder({
|
|
60844
61037
|
allowReordering,
|
|
60845
61038
|
apiClient,
|
|
60846
61039
|
siteId,
|
|
60847
|
-
owner,
|
|
61040
|
+
owner: mutationOwner,
|
|
60848
61041
|
blockList,
|
|
60849
61042
|
setBlockList,
|
|
60850
61043
|
onBlocksChange,
|
|
60851
61044
|
setErrorMessage,
|
|
60852
|
-
uiStore
|
|
61045
|
+
uiStore,
|
|
61046
|
+
onStructuralRevisionChange: updateStructuralRevision
|
|
60853
61047
|
});
|
|
60854
61048
|
const { duplicatingBlockId, duplicateBlock } = useBlockDuplication({
|
|
60855
61049
|
allowCreation: canCreateBlocks,
|
|
60856
61050
|
apiClient,
|
|
60857
61051
|
siteId,
|
|
60858
|
-
owner,
|
|
61052
|
+
owner: mutationOwner,
|
|
60859
61053
|
blockList,
|
|
60860
61054
|
setBlockList,
|
|
60861
61055
|
onBlocksChange,
|
|
60862
61056
|
triggerFocus,
|
|
60863
61057
|
setErrorMessage,
|
|
60864
|
-
uiStore
|
|
61058
|
+
uiStore,
|
|
61059
|
+
onStructuralRevisionChange: updateStructuralRevision
|
|
60865
61060
|
});
|
|
60866
61061
|
const handleDelete = useCallback(async (blockId) => {
|
|
60867
61062
|
try {
|
|
60868
61063
|
setErrorMessage(null);
|
|
60869
61064
|
if (!blockList.find((block) => block.id === blockId)) return;
|
|
60870
|
-
await deleteEditableBlockForOwner(apiClient, siteId,
|
|
61065
|
+
const nextCompositionHash = surfaceCompositionHashFromResponse(await deleteEditableBlockForOwner(apiClient, siteId, mutationOwner, blockId));
|
|
61066
|
+
if (nextCompositionHash) updateStructuralRevision(nextCompositionHash);
|
|
60871
61067
|
const updatedList = blockList.filter((b) => b.id !== blockId);
|
|
60872
61068
|
setBlockList(updatedList);
|
|
60873
61069
|
if (uiStore) uiStore.getState().history.applyCommand?.({ ...createEditorRemoveBlockCommand(unsafeAsEditorBlockId(blockId)) });
|
|
@@ -60879,11 +61075,12 @@ const BlockEditor = forwardRef(function BlockEditor({ siteId, dashboardBaseUrl,
|
|
|
60879
61075
|
}, [
|
|
60880
61076
|
apiClient,
|
|
60881
61077
|
siteId,
|
|
60882
|
-
|
|
61078
|
+
mutationOwner,
|
|
60883
61079
|
blockList,
|
|
60884
61080
|
setBlockList,
|
|
60885
61081
|
onBlocksChange,
|
|
60886
|
-
uiStore
|
|
61082
|
+
uiStore,
|
|
61083
|
+
updateStructuralRevision
|
|
60887
61084
|
]);
|
|
60888
61085
|
useEffect(() => {
|
|
60889
61086
|
return () => {
|
|
@@ -65719,7 +65916,8 @@ function localRuntimeDraftForBlock(input) {
|
|
|
65719
65916
|
kind: block.blockKind,
|
|
65720
65917
|
purpose: null,
|
|
65721
65918
|
orderIndex: null,
|
|
65722
|
-
publishedContent: null
|
|
65919
|
+
publishedContent: null,
|
|
65920
|
+
optimisticHash: null
|
|
65723
65921
|
}
|
|
65724
65922
|
};
|
|
65725
65923
|
}
|
|
@@ -65774,8 +65972,8 @@ function PreviewPageDesignEditorStateProvider({ apiClient, siteId, pageId, enabl
|
|
|
65774
65972
|
if (!cancelled) setWorkflowState(previewCustomizeLoadSucceeded(nextState));
|
|
65775
65973
|
}).catch((error) => {
|
|
65776
65974
|
if (cancelled) return;
|
|
65777
|
-
|
|
65778
|
-
setWorkflowState(failedPreviewCustomizeWorkflowState(
|
|
65975
|
+
reportPreviewDesignError("Failed to load page design editor state", error);
|
|
65976
|
+
setWorkflowState(failedPreviewCustomizeWorkflowState(PREVIEW_DESIGN_LOAD_ERROR_MESSAGE));
|
|
65779
65977
|
});
|
|
65780
65978
|
return () => {
|
|
65781
65979
|
cancelled = true;
|
|
@@ -66062,20 +66260,23 @@ function actionWithCurrentBaseContentId(action, editorModel) {
|
|
|
66062
66260
|
}
|
|
66063
66261
|
}
|
|
66064
66262
|
function classifyApplyActionError(error) {
|
|
66065
|
-
const message = error instanceof Error ? error.message : "Failed to save design change.";
|
|
66066
66263
|
if (error instanceof ApiRequestError) {
|
|
66067
66264
|
if (error.status === 409) return {
|
|
66068
66265
|
kind: "stale",
|
|
66069
66266
|
message: PREVIEW_CUSTOMIZE_STALE_MESSAGE
|
|
66070
66267
|
};
|
|
66071
|
-
if (error.status === 400 || error.status === 422)
|
|
66072
|
-
|
|
66073
|
-
|
|
66074
|
-
|
|
66268
|
+
if (error.status === 400 || error.status === 422) {
|
|
66269
|
+
reportPreviewDesignError("Failed to apply page design change", error);
|
|
66270
|
+
return {
|
|
66271
|
+
kind: "invalid",
|
|
66272
|
+
message: PREVIEW_DESIGN_SAVE_ERROR_MESSAGE
|
|
66273
|
+
};
|
|
66274
|
+
}
|
|
66075
66275
|
}
|
|
66276
|
+
reportPreviewDesignError("Failed to apply page design change", error);
|
|
66076
66277
|
return {
|
|
66077
66278
|
kind: "failed",
|
|
66078
|
-
message
|
|
66279
|
+
message: PREVIEW_DESIGN_SAVE_ERROR_MESSAGE
|
|
66079
66280
|
};
|
|
66080
66281
|
}
|
|
66081
66282
|
function usePreviewPageDesignEditorState() {
|
|
@@ -66212,7 +66413,8 @@ function PreviewEntryControllerProvider({ children, siteId, pageId, routeId: pro
|
|
|
66212
66413
|
content: b.content ?? null,
|
|
66213
66414
|
draftContent: b.draftContent ?? null,
|
|
66214
66415
|
publishedContent: b.publishedContent ?? null,
|
|
66215
|
-
bindings: b.bindings ?? null
|
|
66416
|
+
bindings: b.bindings ?? null,
|
|
66417
|
+
optimisticHash: b.optimisticHash ?? null
|
|
66216
66418
|
}));
|
|
66217
66419
|
}, [initialBlocks]);
|
|
66218
66420
|
const entityId = pageId || entryData?.id || "";
|
|
@@ -66220,20 +66422,30 @@ function PreviewEntryControllerProvider({ children, siteId, pageId, routeId: pro
|
|
|
66220
66422
|
const entityLabel = entryData ? "Entry" : "Page";
|
|
66221
66423
|
const routeId = providedRouteId ?? void 0;
|
|
66222
66424
|
const initialContent = entryData ? draftContent ?? entryData.content ?? {} : null;
|
|
66223
|
-
|
|
66425
|
+
const common = {
|
|
66224
66426
|
apiClient,
|
|
66225
|
-
kind: entryData ? "content" : "page",
|
|
66226
66427
|
type: entityType || "page",
|
|
66227
66428
|
siteId,
|
|
66228
|
-
|
|
66429
|
+
owner: {
|
|
66430
|
+
kind: "contentEntry",
|
|
66431
|
+
contentEntryId: entityId
|
|
66432
|
+
},
|
|
66229
66433
|
routeId,
|
|
66230
66434
|
schema,
|
|
66231
66435
|
entityLabel,
|
|
66232
66436
|
initialEntry,
|
|
66437
|
+
initialBlocks: normalizedInitialBlocks,
|
|
66438
|
+
historyShortcutsEnabled: isEditingMode
|
|
66439
|
+
};
|
|
66440
|
+
return entryData ? /* @__PURE__ */ jsx(EntryControllerProvider, {
|
|
66441
|
+
...common,
|
|
66442
|
+
kind: "content",
|
|
66233
66443
|
initialContent,
|
|
66444
|
+
children
|
|
66445
|
+
}) : /* @__PURE__ */ jsx(EntryControllerProvider, {
|
|
66446
|
+
...common,
|
|
66447
|
+
kind: "page",
|
|
66234
66448
|
initialStatus,
|
|
66235
|
-
initialBlocks: normalizedInitialBlocks,
|
|
66236
|
-
historyShortcutsEnabled: isEditingMode,
|
|
66237
66449
|
children
|
|
66238
66450
|
});
|
|
66239
66451
|
}
|
|
@@ -67228,6 +67440,74 @@ function PreviewChromeFloatingControl({ anchorSelector, anchorTargetSelector, pl
|
|
|
67228
67440
|
children
|
|
67229
67441
|
}), layer.portalTarget)] });
|
|
67230
67442
|
}
|
|
67443
|
+
function PreviewChromeFloatingBar({ anchorSelector, gapPx = 8, children }) {
|
|
67444
|
+
const layer = usePreviewChromeLayerOptional();
|
|
67445
|
+
const probeRef = useRef(null);
|
|
67446
|
+
const [position, setPosition] = useState(null);
|
|
67447
|
+
const [themeCustomProperties, setThemeCustomProperties] = useState({});
|
|
67448
|
+
useEffect(() => {
|
|
67449
|
+
if (!layer?.portalTarget) return;
|
|
67450
|
+
const portalTarget = layer.portalTarget;
|
|
67451
|
+
let resizeObserver = null;
|
|
67452
|
+
let observedAnchor = null;
|
|
67453
|
+
const update = () => {
|
|
67454
|
+
const anchor = probeRef.current?.closest(anchorSelector);
|
|
67455
|
+
if (anchor !== observedAnchor) {
|
|
67456
|
+
resizeObserver?.disconnect();
|
|
67457
|
+
observedAnchor = anchor;
|
|
67458
|
+
if (anchor && typeof ResizeObserver !== "undefined") {
|
|
67459
|
+
resizeObserver = new ResizeObserver(update);
|
|
67460
|
+
resizeObserver.observe(anchor);
|
|
67461
|
+
}
|
|
67462
|
+
}
|
|
67463
|
+
if (!anchor) {
|
|
67464
|
+
setPosition(null);
|
|
67465
|
+
return;
|
|
67466
|
+
}
|
|
67467
|
+
const anchorRect = anchor.getBoundingClientRect();
|
|
67468
|
+
const layerRect = portalTarget.getBoundingClientRect();
|
|
67469
|
+
const placement = anchorRect.top >= 56 ? "above" : "below";
|
|
67470
|
+
setThemeCustomProperties(readThemeCustomProperties(anchor));
|
|
67471
|
+
setPosition({
|
|
67472
|
+
left: anchorRect.left - layerRect.left,
|
|
67473
|
+
top: placement === "above" ? anchorRect.top - layerRect.top - gapPx : anchorRect.bottom - layerRect.top + gapPx,
|
|
67474
|
+
width: anchorRect.width,
|
|
67475
|
+
placement
|
|
67476
|
+
});
|
|
67477
|
+
};
|
|
67478
|
+
update();
|
|
67479
|
+
const unsubscribe = layer.subscribeLayout(update);
|
|
67480
|
+
return () => {
|
|
67481
|
+
resizeObserver?.disconnect();
|
|
67482
|
+
unsubscribe();
|
|
67483
|
+
};
|
|
67484
|
+
}, [
|
|
67485
|
+
anchorSelector,
|
|
67486
|
+
gapPx,
|
|
67487
|
+
layer
|
|
67488
|
+
]);
|
|
67489
|
+
if (!layer?.portalTarget) return /* @__PURE__ */ jsx("div", {
|
|
67490
|
+
className: "absolute inset-x-0 bottom-full z-20 mb-2",
|
|
67491
|
+
children
|
|
67492
|
+
});
|
|
67493
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
67494
|
+
ref: probeRef,
|
|
67495
|
+
"aria-hidden": "true",
|
|
67496
|
+
style: { display: "contents" }
|
|
67497
|
+
}), position ? createPortal(/* @__PURE__ */ jsx("div", {
|
|
67498
|
+
"data-preview-chrome-floating-bar": "",
|
|
67499
|
+
"data-placement": position.placement,
|
|
67500
|
+
className: "pointer-events-auto absolute z-[80]",
|
|
67501
|
+
style: {
|
|
67502
|
+
...themeCustomProperties,
|
|
67503
|
+
left: position.left,
|
|
67504
|
+
top: position.top,
|
|
67505
|
+
width: position.width,
|
|
67506
|
+
transform: position.placement === "above" ? "translateY(-100%)" : void 0
|
|
67507
|
+
},
|
|
67508
|
+
children
|
|
67509
|
+
}), layer.portalTarget) : null] });
|
|
67510
|
+
}
|
|
67231
67511
|
function readThemeCustomProperties(element) {
|
|
67232
67512
|
if (typeof window === "undefined") return {};
|
|
67233
67513
|
const computedStyle = window.getComputedStyle(element);
|
|
@@ -67646,6 +67926,7 @@ function CustomizeBackgroundControlRows({ modeLabel, valueLabel, valueAriaLabel,
|
|
|
67646
67926
|
//#region ../preview-next/src/client/preview/SiteChromeCustomizeButton.tsx
|
|
67647
67927
|
function SiteChromeCustomizeButton({ surface, containerClassName = "pointer-events-auto absolute right-2 top-2 z-50 opacity-0 transition group-focus-within/site-chrome:opacity-100 group-hover/site-chrome:opacity-100" }) {
|
|
67648
67928
|
const customize = useSiteChromeCustomizeOptional();
|
|
67929
|
+
const editorUiStore = useOptionalEditorUiStoreInstance();
|
|
67649
67930
|
const popover = useCustomizePopoverController();
|
|
67650
67931
|
const [backgroundChooserOpen, setBackgroundChooserOpen] = useState(false);
|
|
67651
67932
|
const popoverSide = useSiteChromeCustomizePopoverSide({
|
|
@@ -67797,13 +68078,18 @@ function SiteChromeCustomizeButton({ surface, containerClassName = "pointer-even
|
|
|
67797
68078
|
onClick: (event) => {
|
|
67798
68079
|
event.preventDefault();
|
|
67799
68080
|
event.stopPropagation();
|
|
67800
|
-
|
|
68081
|
+
if (surfaceState.surface === "footer") {
|
|
68082
|
+
const editorUi = editorUiStore?.getState();
|
|
68083
|
+
editorUi?.inspectFooter();
|
|
68084
|
+
editorUi?.setPreviewSidebarTab("editor");
|
|
68085
|
+
editorUi?.setDrawerOpen(true);
|
|
68086
|
+
} else requestPreviewSidebarOpen({
|
|
67801
68087
|
tab: "editor",
|
|
67802
|
-
designRow:
|
|
68088
|
+
designRow: "header-style"
|
|
67803
68089
|
});
|
|
67804
68090
|
popover.close();
|
|
67805
68091
|
},
|
|
67806
|
-
children: "More options"
|
|
68092
|
+
children: surfaceState.surface === "footer" ? "Edit footer" : "More options"
|
|
67807
68093
|
})
|
|
67808
68094
|
}),
|
|
67809
68095
|
surfaceState.diagnostics.length > 0 ? /* @__PURE__ */ jsx("ul", {
|
|
@@ -67969,7 +68255,7 @@ function renderEditableSurface(children, surface, options) {
|
|
|
67969
68255
|
if (isValidElement(child) && child.type !== Fragment && (isHostElement(child) || options.preserveSingleComponentRoot || isEditableSurfaceForwardingElement(child))) return cloneElement(child, {
|
|
67970
68256
|
className: joinClassNames(child.props.className, "group/site-chrome relative"),
|
|
67971
68257
|
"data-preview-site-chrome-surface": surface,
|
|
67972
|
-
children: /* @__PURE__ */ jsxs(Fragment$1, { children: [child.props.children, /* @__PURE__ */ jsx(SiteChromeCustomizeButton, { surface })] })
|
|
68258
|
+
children: /* @__PURE__ */ jsxs(Fragment$1, { children: [surface === "footer" ? /* @__PURE__ */ jsx(FooterModuleInspectionSurface, { children: child.props.children }) : child.props.children, /* @__PURE__ */ jsx(SiteChromeCustomizeButton, { surface })] })
|
|
67973
68259
|
});
|
|
67974
68260
|
if (surface === "header") return /* @__PURE__ */ jsxs("div", {
|
|
67975
68261
|
className: "group/site-chrome",
|
|
@@ -67983,7 +68269,66 @@ function renderEditableSurface(children, surface, options) {
|
|
|
67983
68269
|
return /* @__PURE__ */ jsxs("div", {
|
|
67984
68270
|
className: "group/site-chrome relative",
|
|
67985
68271
|
"data-preview-site-chrome-surface": surface,
|
|
67986
|
-
children: [children, /* @__PURE__ */ jsx(SiteChromeCustomizeButton, { surface })]
|
|
68272
|
+
children: [/* @__PURE__ */ jsx(FooterModuleInspectionSurface, { children }), /* @__PURE__ */ jsx(SiteChromeCustomizeButton, { surface })]
|
|
68273
|
+
});
|
|
68274
|
+
}
|
|
68275
|
+
function FooterModuleInspectionSurface({ children }) {
|
|
68276
|
+
const uiStore = useOptionalEditorUiStoreInstance();
|
|
68277
|
+
const rootRef = useRef(null);
|
|
68278
|
+
const [active, setActive] = useState(null);
|
|
68279
|
+
const [position, setPosition] = useState(null);
|
|
68280
|
+
useEffect(() => {
|
|
68281
|
+
const root = rootRef.current;
|
|
68282
|
+
if (!root) return;
|
|
68283
|
+
const modules = root.querySelectorAll("[data-preview-footer-module-id]");
|
|
68284
|
+
for (const module of modules) {
|
|
68285
|
+
module.tabIndex = 0;
|
|
68286
|
+
const label = module.dataset.previewFooterModuleId?.replace(/-/gu, " ") ?? "footer section";
|
|
68287
|
+
module.setAttribute("aria-label", `Edit ${label}`);
|
|
68288
|
+
}
|
|
68289
|
+
}, [children]);
|
|
68290
|
+
const activateElement = (element) => {
|
|
68291
|
+
if (!element) return;
|
|
68292
|
+
const parsed = parseFooterModuleId(element.dataset.previewFooterModuleId);
|
|
68293
|
+
if (!parsed.ok) return;
|
|
68294
|
+
const label = element.dataset.previewFooterModuleId?.replace(/-/gu, " ") ?? "footer section";
|
|
68295
|
+
const rect = element.getBoundingClientRect();
|
|
68296
|
+
setActive({
|
|
68297
|
+
moduleId: parsed.value,
|
|
68298
|
+
label
|
|
68299
|
+
});
|
|
68300
|
+
setPosition({
|
|
68301
|
+
top: Math.max(8, rect.top + 8),
|
|
68302
|
+
left: Math.max(8, rect.right - 64)
|
|
68303
|
+
});
|
|
68304
|
+
};
|
|
68305
|
+
const inspect = (moduleId) => {
|
|
68306
|
+
uiStore?.getState().inspectFooterModule(moduleId);
|
|
68307
|
+
uiStore?.getState().setPreviewSidebarTab("editor");
|
|
68308
|
+
uiStore?.getState().setDrawerOpen(true);
|
|
68309
|
+
};
|
|
68310
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
68311
|
+
ref: rootRef,
|
|
68312
|
+
style: { display: "contents" },
|
|
68313
|
+
onMouseOver: (event) => activateElement(event.target.closest("[data-preview-footer-module-id]")),
|
|
68314
|
+
onFocusCapture: (event) => activateElement(event.target.closest("[data-preview-footer-module-id]")),
|
|
68315
|
+
onKeyDown: (event) => {
|
|
68316
|
+
if (event.key !== "Enter" && event.key !== " ") return;
|
|
68317
|
+
const element = event.target.closest("[data-preview-footer-module-id]");
|
|
68318
|
+
if (!element) return;
|
|
68319
|
+
const parsed = parseFooterModuleId(element.dataset.previewFooterModuleId);
|
|
68320
|
+
if (!parsed.ok) return;
|
|
68321
|
+
event.preventDefault();
|
|
68322
|
+
inspect(parsed.value);
|
|
68323
|
+
},
|
|
68324
|
+
children: [children, active && position && uiStore ? /* @__PURE__ */ jsx("button", {
|
|
68325
|
+
type: "button",
|
|
68326
|
+
className: "pointer-events-auto fixed z-[75] rounded-full border bg-background px-3 py-1.5 text-xs font-medium text-foreground shadow-md",
|
|
68327
|
+
style: position,
|
|
68328
|
+
"aria-label": `Edit ${active.label}`,
|
|
68329
|
+
onClick: () => inspect(active.moduleId),
|
|
68330
|
+
children: "Edit"
|
|
68331
|
+
}) : null]
|
|
67987
68332
|
});
|
|
67988
68333
|
}
|
|
67989
68334
|
function isHostElement(child) {
|
|
@@ -68224,17 +68569,17 @@ function LinkedEntryEditEventBridge() {
|
|
|
68224
68569
|
//#region ../preview-next/src/client/preview/PreviewShellLayout.tsx
|
|
68225
68570
|
const previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
|
|
68226
68571
|
const PreviewEditorSidebar = React.lazy(async () => {
|
|
68227
|
-
return { default: (await import("./PreviewEditorSidebar-
|
|
68572
|
+
return { default: (await import("./PreviewEditorSidebar-BBT-kZAM.mjs")).PreviewEditorSidebar };
|
|
68228
68573
|
});
|
|
68229
68574
|
const PreviewEditorUI = React.lazy(async () => {
|
|
68230
|
-
return { default: (await import("./PreviewEditorUI-
|
|
68575
|
+
return { default: (await import("./PreviewEditorUI-D69xNKT2.mjs")).PreviewEditorUI };
|
|
68231
68576
|
});
|
|
68232
68577
|
const previewPaneContainmentStyle = {
|
|
68233
68578
|
contain: "layout paint",
|
|
68234
68579
|
isolation: "isolate",
|
|
68235
68580
|
transform: "translateZ(0)"
|
|
68236
68581
|
};
|
|
68237
|
-
function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, apiClient, bearerToken, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime = defaultPreviewThemeRuntime, siteStyleAccess = { kind: "hidden" } }) {
|
|
68582
|
+
function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, apiClient, bearerToken, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime = defaultPreviewThemeRuntime, siteStyleAccess = { kind: "hidden" }, onFooterSaved }) {
|
|
68238
68583
|
const layout = useOptionalPreviewLayout();
|
|
68239
68584
|
const headerNode = layout?.headerNode ?? null;
|
|
68240
68585
|
const bannerNode = layout?.bannerNode ?? null;
|
|
@@ -68439,6 +68784,7 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
|
|
|
68439
68784
|
setPreviewSidebarTab(tab);
|
|
68440
68785
|
setPreviewSidebarActiveTab(tab);
|
|
68441
68786
|
},
|
|
68787
|
+
onFooterSaved,
|
|
68442
68788
|
onClose: () => setDrawerOpen(false),
|
|
68443
68789
|
entrySubrouteContext: entrySubrouteContext ?? null,
|
|
68444
68790
|
assistantPanel,
|
|
@@ -68517,7 +68863,7 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
|
|
|
68517
68863
|
}
|
|
68518
68864
|
//#endregion
|
|
68519
68865
|
//#region ../preview-next/src/client/preview/PreviewShell.tsx
|
|
68520
|
-
function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl = null, surfaceId, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime = defaultPreviewThemeRuntime, designEditorEligibility, hideSiteStyleConfigurator = false, baseFetch }) {
|
|
68866
|
+
function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl = null, surfaceId, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime = defaultPreviewThemeRuntime, designEditorEligibility, hideSiteStyleConfigurator = false, baseFetch, onFooterSaved }) {
|
|
68521
68867
|
const apiClient = useMemo(() => createBearerAPIClient(previewToken, apiBaseUrl), [previewToken, apiBaseUrl]);
|
|
68522
68868
|
const resolvedDesignEditorEligibility = designEditorEligibility ?? defaultDesignEditorEligibility({
|
|
68523
68869
|
pageId,
|
|
@@ -68592,6 +68938,7 @@ function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug,
|
|
|
68592
68938
|
bookingOfferingPresets,
|
|
68593
68939
|
themeRuntime,
|
|
68594
68940
|
siteStyleAccess,
|
|
68941
|
+
onFooterSaved,
|
|
68595
68942
|
children
|
|
68596
68943
|
})]
|
|
68597
68944
|
})
|
|
@@ -69105,6 +69452,12 @@ function normalizeTextChildren(input) {
|
|
|
69105
69452
|
if (Array.isArray(input)) return input.map((item) => normalizeTextChildren(item)).join("");
|
|
69106
69453
|
return "";
|
|
69107
69454
|
}
|
|
69455
|
+
function renderPreviewRichTextToolbarHost(toolbar) {
|
|
69456
|
+
return /* @__PURE__ */ jsx(PreviewChromeFloatingBar, {
|
|
69457
|
+
anchorSelector: "[data-rb-preview-richtext-editor]",
|
|
69458
|
+
children: toolbar
|
|
69459
|
+
});
|
|
69460
|
+
}
|
|
69108
69461
|
const RichTextWithEditor = ({ value, path, linkedEntryField, ...rest }) => {
|
|
69109
69462
|
const { isEditingMode } = useEditor();
|
|
69110
69463
|
if (isEditingMode && (path || linkedEntryField)) return /* @__PURE__ */ jsx(PreviewRichTextEditor, {
|
|
@@ -69113,6 +69466,7 @@ const RichTextWithEditor = ({ value, path, linkedEntryField, ...rest }) => {
|
|
|
69113
69466
|
linkedEntryField,
|
|
69114
69467
|
onLinkedEntryFieldFocus: dispatchLinkedEntryFieldFocusEvent,
|
|
69115
69468
|
onBlockFieldFocus: dispatchBlockFieldFocusEventFromPath,
|
|
69469
|
+
renderToolbarHost: renderPreviewRichTextToolbarHost,
|
|
69116
69470
|
doc: value
|
|
69117
69471
|
});
|
|
69118
69472
|
return /* @__PURE__ */ jsx(RichText, {
|