@riverbankcms/sdk 0.104.0 → 0.104.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/{PreviewEditorSidebar-ywqcYjTB.mjs → PreviewEditorSidebar-CmaPXdKu.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-DApUNF6g.mjs → PreviewEditorUI-C5xRTh2b.mjs} +2 -2
  3. package/dist/{SdkPreviewModeRuntime-DmHCcIMO.mjs → SdkPreviewModeRuntime-Eks51NcN.mjs} +8 -6
  4. package/dist/{SiteChromeCustomizeContext-BV9GU-3C.mjs → SiteChromeCustomizeContext-Bt8zb3qu.mjs} +178 -74
  5. package/dist/_dts/api/src/bookingVerticals.d.ts +64 -1
  6. package/dist/_dts/editor/src/index.d.ts +3 -1
  7. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +14 -6
  8. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +23 -4
  9. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +6 -0
  10. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
  11. package/dist/_dts/editor/src/primitives/rich-text/paste.d.ts +10 -0
  12. package/dist/_dts/sdk/src/version.d.ts +1 -1
  13. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +23 -6
  14. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -9
  15. package/dist/cli/index.mjs +10 -3
  16. package/dist/client/client.mjs +10 -3
  17. package/dist/client/hooks.mjs +8 -0
  18. package/dist/client/rendering/client.mjs +1 -2
  19. package/dist/client/rendering.mjs +9 -2
  20. package/dist/preview-next/client/runtime.mjs +3 -3
  21. package/dist/{sdk-runtime-DWb08Xaz.mjs → sdk-runtime-BUmJ0DaT.mjs} +1 -1
  22. package/dist/{separator--6yjc914.mjs → separator-Dd-JYok7.mjs} +1 -1
  23. package/dist/server/components.mjs +8 -0
  24. package/dist/server/config-validation.mjs +8 -0
  25. package/dist/server/config.mjs +8 -0
  26. package/dist/server/data.mjs +8 -0
  27. package/dist/server/index.mjs +1 -1
  28. package/dist/server/next.mjs +9 -1
  29. package/dist/server/prebuild.mjs +1 -1
  30. package/dist/server/rendering/server.mjs +8 -0
  31. package/dist/server/rendering.mjs +8 -0
  32. package/dist/server/routing.mjs +8 -0
  33. package/dist/server/server.mjs +9 -1
  34. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { $i as getFooterLayout, A as openRow, Ai as getCuratedSiteStyle, Al as Input, B as setPaletteColors, Bc as buttonPersonalities, Bt as ManifestForm, C as createStyleConfiguratorState, Cl as SelectTrigger, D as markApplyFailed, Dl as Popover, E as isPreviewingChange, Eu as Button, F as previewHeaderLayout, Fd as Maximize2, Gt as createStoreBackend, H as syncStyleConfiguratorState, Ht as createManifestValidation, I as previewHeaderStyle, Id as LoaderCircle, Ji as evaluateTypographyFontSlot, Jl as CollapsibleContent, L as previewSiteStyle, M as previewButtonPersonality, Ml as TabsContent, Mt as deriveRouteMetadataPresentation, N as previewCuratedPalette, Nd as Monitor, Nl as TabsList, Nt as resolvePageRouteSlug, O as markApplySaved, Oi as curatedSiteStyles, Ol as PopoverContent, P as previewFooterLook, Pl as TabsTrigger, Pt as resolveContentTitle, Pu as unsafeAsEditorBlockId, Q as resolvePreviewSidebarTab, Qi as findFooterLook, R as previewTypographyPreset, S as cancelPreview, Sl as SelectItem, T as dismissWarnings, U as toggleRow, Ut as FormRenderer, V as styleConfiguratorHistoryEntryForPersistedSelection, Vc as findButtonPersonality, W as typographySelectionSnapshotFromFlat, Xi as typographyPresets, Yi as findTypographyPreset, Yl as CollapsibleTrigger, Z as createOptimisticActionRunner, Zi as requireEntriesForCuratedChoices, _ as usePreviewDesignCoordinator, _a as paletteColorsSchema, _t as useEditorUiStore, au as DropdownMenu, b as applyResolvedSelections, bl as Select, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cf as ChevronLeft, cu as DropdownMenuLabel, d as buildSiteChromeLookModels, dt as useUISelector, ea as getHeaderLayout, ed as assertNever$1, en as listEntryPageContentSlots, f as cycleSiteChromeLookId, ga as paletteColorsEqual, h as planSiteChromeLookSelection, ha as paletteColorEntries, hd as X$1, iu as Surface, j as paletteMutationCapability, jl as Tabs, k as markApplySaving, kl as PopoverTrigger, ku as cn, l as planSiteStylePreviewChange, lu as DropdownMenuSeparator, m as planSiteChromeFooterLayoutSelection, ma as findCuratedPalette, mt as useEntryController, n as useSiteChromeCustomizeOptional, ou as DropdownMenuContent, p as cycleableSiteChromeOptions, pa as curatedPalettes, ql as Collapsible, s as buildApplySiteStyleSelectionBody, sf as ChevronRight, su as DropdownMenuItem, ta as getHeaderStyle, u as resolveStyleConfiguratorInitialSnapshot, ut as ContentFieldsForm, uu as DropdownMenuTrigger, vt as useEditorUiStoreInstance, w as deriveStyleConfiguratorCapabilities, wd as Smartphone, wl as SelectValue, x as applyTypographyDraftPatch, xd as Tablet, xl as SelectContent, z as resetTypographyToSaved } from "./SiteChromeCustomizeContext-BV9GU-3C.mjs";
2
+ import { $i as getFooterLayout, A as openRow, Ai as getCuratedSiteStyle, Al as Input, B as setPaletteColors, Bc as buttonPersonalities, Bt as ManifestForm, C as createStyleConfiguratorState, Cl as SelectTrigger, D as markApplyFailed, Dl as Popover, E as isPreviewingChange, Eu as Button, F as previewHeaderLayout, Fd as Maximize2, Gt as createStoreBackend, H as syncStyleConfiguratorState, Ht as createManifestValidation, I as previewHeaderStyle, Id as LoaderCircle, Ji as evaluateTypographyFontSlot, Jl as CollapsibleContent, L as previewSiteStyle, M as previewButtonPersonality, Ml as TabsContent, Mt as deriveRouteMetadataPresentation, N as previewCuratedPalette, Nd as Monitor, Nl as TabsList, Nt as resolvePageRouteSlug, O as markApplySaved, Oi as curatedSiteStyles, Ol as PopoverContent, P as previewFooterLook, Pl as TabsTrigger, Pt as resolveContentTitle, Pu as unsafeAsEditorBlockId, Q as resolvePreviewSidebarTab, Qi as findFooterLook, R as previewTypographyPreset, S as cancelPreview, Sl as SelectItem, T as dismissWarnings, U as toggleRow, Ut as FormRenderer, V as styleConfiguratorHistoryEntryForPersistedSelection, Vc as findButtonPersonality, W as typographySelectionSnapshotFromFlat, Xi as typographyPresets, Yi as findTypographyPreset, Yl as CollapsibleTrigger, Z as createOptimisticActionRunner, Zi as requireEntriesForCuratedChoices, _ as usePreviewDesignCoordinator, _a as paletteColorsSchema, _t as useEditorUiStore, au as DropdownMenu, b as applyResolvedSelections, bl as Select, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cf as ChevronLeft, cu as DropdownMenuLabel, d as buildSiteChromeLookModels, dt as useUISelector, ea as getHeaderLayout, ed as assertNever$1, en as listEntryPageContentSlots, f as cycleSiteChromeLookId, ga as paletteColorsEqual, h as planSiteChromeLookSelection, ha as paletteColorEntries, hd as X$1, iu as Surface, j as paletteMutationCapability, jl as Tabs, k as markApplySaving, kl as PopoverTrigger, ku as cn, l as planSiteStylePreviewChange, lu as DropdownMenuSeparator, m as planSiteChromeFooterLayoutSelection, ma as findCuratedPalette, mt as useEntryController, n as useSiteChromeCustomizeOptional, ou as DropdownMenuContent, p as cycleableSiteChromeOptions, pa as curatedPalettes, ql as Collapsible, s as buildApplySiteStyleSelectionBody, sf as ChevronRight, su as DropdownMenuItem, ta as getHeaderStyle, u as resolveStyleConfiguratorInitialSnapshot, ut as ContentFieldsForm, uu as DropdownMenuTrigger, vt as useEditorUiStoreInstance, w as deriveStyleConfiguratorCapabilities, wd as Smartphone, wl as SelectValue, x as applyTypographyDraftPatch, xd as Tablet, xl as SelectContent, z as resetTypographyToSaved } from "./SiteChromeCustomizeContext-Bt8zb3qu.mjs";
3
3
  import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-CfquDtTh.mjs";
4
- import { S as isAdapterReferenceKind, T as CalloutDescription, _ as usePreviewBlockCustomizeSelectionOptional, b as previewWidgetOverrides, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as canInspectSiteStyle, h as canApplySiteStyle, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, v as useBlockCustomizeControls, w as Callout, x as BlockEditor, y as PreviewFormProvider } from "./SdkPreviewModeRuntime-DmHCcIMO.mjs";
5
- import { t as Separator } from "./separator--6yjc914.mjs";
4
+ import { S as isAdapterReferenceKind, T as CalloutDescription, _ as usePreviewBlockCustomizeSelectionOptional, b as previewWidgetOverrides, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as canInspectSiteStyle, h as canApplySiteStyle, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, v as useBlockCustomizeControls, w as Callout, x as BlockEditor, y as PreviewFormProvider } from "./SdkPreviewModeRuntime-Eks51NcN.mjs";
5
+ import { t as Separator } from "./separator-Dd-JYok7.mjs";
6
6
  import React, { forwardRef, useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useQuery, useQueryClient } from "@tanstack/react-query";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { Ad as Pencil, Bl as Dialog, Cd as Sparkles, Du as cva, Eu as Button, Gl as DialogHeader, Hl as DialogContent, Id as LoaderCircle, Jd as Eye, Kl as DialogTitle, Md as Palette, Od as Redo2, Ot as useMultiAutosave, Ul as DialogDescription, Xd as EllipsisVertical, _d as Undo2, _t as useEditorUiStore, a as previewDesignHistoryDomainForCommand, au as DropdownMenu, gl as TooltipContent, gt as classifyHistoryShortcut, hl as Tooltip, ht as useEntryEditorController, i as usePreviewDesignHistoryOrder, jd as PenLine, ku as cn, lf as ChevronDown, lt as useEditor, n as useSiteChromeCustomizeOptional, o as selectPreviewDesignHistoryDomain, ou as DropdownMenuContent, su as DropdownMenuItem, uu as DropdownMenuTrigger, vd as TriangleAlert, vl as TooltipTrigger, vt as useEditorUiStoreInstance } from "./SiteChromeCustomizeContext-BV9GU-3C.mjs";
2
+ import { Ad as Pencil, Bl as Dialog, Cd as Sparkles, Du as cva, Eu as Button, Gl as DialogHeader, Hl as DialogContent, Id as LoaderCircle, Jd as Eye, Kl as DialogTitle, Md as Palette, Od as Redo2, Ot as useMultiAutosave, Ul as DialogDescription, Xd as EllipsisVertical, _d as Undo2, _t as useEditorUiStore, a as previewDesignHistoryDomainForCommand, au as DropdownMenu, gl as TooltipContent, gt as classifyHistoryShortcut, hl as Tooltip, ht as useEntryEditorController, i as usePreviewDesignHistoryOrder, jd as PenLine, ku as cn, lf as ChevronDown, lt as useEditor, n as useSiteChromeCustomizeOptional, o as selectPreviewDesignHistoryDomain, ou as DropdownMenuContent, su as DropdownMenuItem, uu as DropdownMenuTrigger, vd as TriangleAlert, vl as TooltipTrigger, vt as useEditorUiStoreInstance } from "./SiteChromeCustomizeContext-Bt8zb3qu.mjs";
3
3
  import { d as unwrapResponse, r as usePreviewAuth } from "./previewAuthStore-CfquDtTh.mjs";
4
- import { C as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME, u as setPreviewSidebarTab } from "./SdkPreviewModeRuntime-DmHCcIMO.mjs";
4
+ import { C as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME, u as setPreviewSidebarTab } from "./SdkPreviewModeRuntime-Eks51NcN.mjs";
5
5
  import * as React$1 from "react";
6
6
  import { useCallback, useEffect, useMemo, useState, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { $ as PreviewRichTextEditor, $a as previewStageSchema, $c as rgbColorValue, $d as Copy, $l as createCollapsibleScope, $n as buildEventCalendarListingRender, $r as ctaCopyFragment, $s as MailIcon, $t as deleteEntrySlotBlock, $u as formatCurrencyAmount, Aa as normalizeOfferingsPreviewGroupOrder, Ac as isRotationDimensionSwap, Ad as Pencil, Ai as getCuratedSiteStyle, Al as Input, An as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Ao as formatDate$3, Ar as formatCommercePrice, As as resolveIconPickerPreset, At as createRoutingHelpers, Au as clsx, Ba as eventPageSizeSchema, Bd as ImageOff, Bi as NAV_LINK_LETTER_SPACING_MAP, Bl as Dialog, Bn as isInternalResolvedLinkValue, Bo as resolveEventCta, Br as augmentManifestWithStyleGroups, Bs as ChevronLeftIcon, Bt as ManifestForm, Bu as formatBookingTime, Cc as resolveImageUrlWithContext, Cd as Sparkles, Ci as retargetCompiledBoundaryRuntimeForContentAdjacency, Cl as SelectTrigger, Cn as isSupportedLoaderEndpoint, Co as resolveOnColorForThemeToken, Cr as buildProductDetailInteractiveIslandProps, Cs as getGeneratedBlockIconStyleState, Ct as pushHistoryEntry, Cu as createContextScope, Da as buildOfferingsPreviewRenderStates, Dc as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, Dd as RotateCcw, Di as resolveVisiblePromotedFieldPathsForEditorBlock, Dl as Popover, Dn as listBlockDescriptors, Do as buildGoogleMapsDirectionsUrl, Dr as buildCartDisplay, Ds as parseGeneratedIconSetId, Dt as recordsEqual, Du as cva, Ea as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Ec as setContextResolveImageUrlContext, Ed as Search, Ei as planPageDesignLayoutLookCompatibility, El as Badge, En as getBlockDefinition, Eo as featuresFromHex, Er as getShopDisplayForItems, Es as parseGeneratedIconAssetId, Et as unsafeAsLinkedContentEntryId, Eu as Button, Fa as resolveOfferingsPreviewGroups, Fc as asRecord, Fi as getComponentBorderWidthPx, Fl as Content$1, Fn as mediaTransforms, Fo as formatEventTeacherLine, Fr as deriveCommerceCheckoutState, Fs as ArrowLeftIcon, Ft as PaletteProvider, Fu as unsafeAsEditorBlockValues, G as beginAutosaveBatch, Ga as normalizeCsvString, Gc as generateBaseInteractiveCSS, Gd as FilePlay, Gi as INPUT_FONT_SIZE_MAP, Gl as DialogHeader, Gn as productDetailBlockDefinition, Go as resolveRuntimeEventPricing, Gr as faqHeadingFragment, Gs as ClockIcon$1, Gt as createStoreBackend, Gu as toBookingTimeZone, Ha as resolveEventCalendarListPageSize, Hc as generateButtonCss, Hd as File, Hi as NAV_LINK_PADDING_X_MAP, Hl as DialogContent, Hn as useImageResolveContextOptional, Ho as getEventAvailability, Hr as headingFragment, Hs as ChevronUpIcon, Hu as getBookingLocalDateKey, Ia as isSemanticSpacing, Ic as getDirectImageUrlForMediaAsset, Id as LoaderCircle, Ii as getComponentShadowVar, Il as List, In as layoutTransforms, Io as formatTime$3, Ir as parseStoredCommerceCartState, Is as ArrowRightIcon, It as usePalette, Iu as addLocalScheduleDays, J as enqueueTransaction, Ja as columnOptionSchema, Jc as parseThemeButtonVariantId, Jl as CollapsibleContent, Jn as eventListingBlockDefinition, Jo as createInteractiveIslandCodec, Jr as footerBottomTextFragment, Js as FileArchiveIcon, Jt as applyPageDesignEditorAction, Ju as publicEventPricingCurrency, K as confirmAutosaveBatch, Ka as normalizeOptionalId, Kc as generateInteractiveChildInheritanceCSS, Kd as FileHeadphone, Ki as INPUT_SPACING_MAP, Kl as DialogTitle, Kn as newsletterSignupBlockDefinition, Ko as blockBookingPaymentTermsSchema, Kr as blogFeaturedPostFragment, Ks as DownloadIcon, Kt as listContentTypes, Ku as toScheduledBookingDateTime, La as resolveSpacing, Lc as getImageUrl, Ld as Image, Li as parseBlockCustomCssRules, Ll as Root2$1, Ln as uiTransforms, Lo as getCardOrientation, Lr as productItemKey, Ls as CalendarIcon$1, Lt as recoveryConflictCopy, Lu as formatBookingDate, Ma as resolveOfferingsPreviewCoursePath, Mc as formatAspectRatioToken, Mi as isThemeV2NormalEditorRawStyleFieldName, Ml as TabsContent, Mn as planSiteOverlayHeaderClearance, Mo as formatEventDateParts, Mr as EMPTY_COMMERCE_CART_STATE, Ms as getSemanticIconComponent, Mu as createEditorRemoveBlockCommand, Na as resolveOfferingsPreviewGroupCta, Nc as parseAspectRatioValue, Ni as isThemeV2NormalEditorRawStylePath, Nl as TabsList, Nn as visibleHeaderClearancePx, No as formatEventPrice, Nr as buildPassCartItem, Ns as isSemanticIconId, Nu as createEditorReorderBlocksCommand, Oa as inferLegacyOfferingsPreviewGroupOrder, Oc as resolveMediaSlotContract, Ol as PopoverContent, On as siteFooterManifest, Oo as normalizeLocationMapProps, Or as buildProductCardDisplay, Os as parseSiteIconStyleGuideVersionId, Ou as useComposedRefs, Pa as resolveOfferingsPreviewGroupOrderEntries, Pc as resolveMediaTransformForAspect, Pd as Minus, Pi as pageDesignEditorBackgroundOverrideOwner, Pl as TabsTrigger, Pn as contentTransforms, Po as formatEventPriceDisplay, Pr as buildProductCartItem, Ps as ArrowDownIcon, Pu as unsafeAsEditorBlockId, Q as resolvePreviewSidebarTab, Qa as filterAutoShowSchema, Qc as mergeStyles, Qd as CreditCard, Ql as Trigger, Qn as buildEventCalendarListingDisplay, Qo as defineProgressiveBlockRuntime, Qr as testimonialsHeadingFragment, Qs as InfoIcon, Qt as deleteBlock, Qu as publicEventTicketTypes, Ra as buildEventRuntimeFilters, Rc as getAtPath, Rd as ImageUp, Ri as parseCustomCssRules, Rl as Trigger$1, Rn as formattingTransforms, Ro as getContainerClass, Rr as reduceCommerceCart, Rs as CheckIcon$1, Rt as unfinishedBlockCopy, Ru as formatBookingDateTime, Sa as ctaButton, Sc as renderVideo, Sd as Star, Si as compileEditorModelRuntime, Sl as SelectItem, Sn as useUniqueId, So as isCssColorLiteral, Sr as buildCheckoutInteractiveIslandProps, Ss as getBlockIconSemanticId, St as createHistoryState, Su as useControllableState, Tc as resolveMediaStorageUrl, Td as Settings, Ti as normalEditorCuratedPromotedFieldPaths, Tl as Label, Tn as GRADIENT_PRESETS, To as getTextColorForBackground, Tr as buildShopInteractiveIslandProps, Ts as resolveBlockIconRenderValue, Tt as undoHistory, Tu as Primitive, Ua as resolveEventListPaginationAction, Uc as generateEffectsCSS, Ud as FileText, Ui as NAV_LINK_TEXT_SIZE_MAP, Ul as DialogDescription, Un as shopBlockDefinition, Uo as getLocalDateKey, Ur as cardFragment, Us as CircleMinusIcon, Ut as FormRenderer, Uu as parseBookingLocalDate, Va as getEventRuntimeFiltersKey, Vd as GripVertical, Vi as NAV_LINK_PADDING_MAP, Vl as DialogClose, Vn as ImageResolveContextProvider, Vo as resolveEventLinkProps, Vr as richTextFragment, Vs as ChevronRightIcon, Vt as createManifestFormAdapter, Vu as formatLocalScheduleDate, Wa as normalizeCsvIds, Wc as generateShadowValue$1, Wd as FileSpreadsheet, Wi as FONT_WEIGHT_MAP, Wl as DialogFooter, Wn as productListBlockDefinition, Wo as getLocalMinuteOfDay, Wr as faqAccordionFragment, Ws as CirclePlusIcon, Wt as evaluateVisibility, Wu as resolveBookingTimeZoneId, X as rejectAutosaveBatch, Xa as eventCalendarDefaultViewSchema, Xc as backgroundColorStyle, Xd as EllipsisVertical, Xl as Content, Xn as eventCalendarBlockDefinition, Xo as createZodCodec, Xr as formCopyFragment, Xs as FileSpreadsheetIcon, Xt as createBlock, Xu as publicEventPricingType, Y as idleEditorTransactionQueueState, Ya as eventButtonVariantSchema, Yc as themeButtonClassName, Yd as EyeOff, Yn as buildEventListingInteractiveIslandProps, Yo as defineInteractiveIslandMetaKeys, Yr as formEmbedFragment, Ys as FileAudioIcon, Yt as getPageDesignEditorState, Yu as publicEventPricingMode, Za as eventLayoutSchema, Zc as borderColorStyle, Zd as Crop, Zl as Root, Zn as buildEventCalendarInteractiveIslandProps, Zo as defineClientOwnedBlockRuntime, Zr as testimonialsCarouselFragment, Zs as FileTextIcon, Zt as createEntrySlotBlock, Zu as publicEventScalarPrice, _c as MediaPlaceholder, _f as __toESM, _i as mergeHeaderNavTypographyPreference, _l as TooltipProvider, _n as useSensors, _o as generateCardCss, _r as courseRegistrationBlockDefinition, _s as resolveFeatureCardGeneratedIconSizePx, _t as useEditorUiStore, _u as __spreadArray, aa as sectionTransitionFamilyForBoundaryOptionId, ac as ShoppingCartIcon, ad as unsafeAsAppointmentServiceId, af as ChevronsUpDown, ai as PUBLIC_FILE_FIELD_KINDS, al as isNonEmptyValue, an as DEFAULT_LAUNCH_READINESS_INPUT, ao as bindingSchema, ar as findEventByOccurrenceId, as as assertNever$6, at as getRichTextImagePositionFromTarget, au as DropdownMenu, ba as createTransformRegistry, bc as getCurrentResolveImageUrlContext, bd as Ticket, bi as PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, bl as Select, bn as useCombinedRefs, bo as normalizeBoxStylesCardVariant, br as cartBlockDefinition, bs as toFeatureCardIconSuggestionInputs, bt as canRedoHistory, bu as useDirection, ca as backgroundAppearanceColorTokenNames, cc as createRichTextDocFromMarkdown, cd as unsafeAsMediaAssetId, cf as ChevronLeft, ci as MQ_MD_DOWN, cl as useSdkConfig, cn as DndContext, co as eventSurfaceScopeValues, cr as resolveEventRequiresPayment, cs as ACCORDION_TRIGGER_FONT_SCALE, ct as EditorProvider, da as parseBackgroundAppearanceColorToken, dc as isRecord$20, dd as unsafeAsPositiveSeconds, df as Box, di as MQ_TABLET_ONLY, dl as mapOptionValueForSelect, dn as closestCenter, do as normalizeEventScheduleScope, dr as getStepNumber$1, ds as ICON_SIZE_PX, dt as useUISelector, du as __assign, ec as MapPinIcon$1, ed as assertNever$5, ef as Clock3, ei as heroCtaRowFragment, el as textColorStyle, eo as weekStartSchema, er as formBlockDefinition, es as composeHeaderSectionWrapperClassName, et as PreviewInlineTextEditor, eu as Card, fa as defaultThemeTokens, fc as coerceInlineTextWithFallback, fd as err$2, ff as ArrowUp, fi as BACKGROUND_POSITION_PRESET_VALUES, fl as unmapValueFromSelect, fn as getClientRect, fo as normalizeEventStaffMemberId, fr as getWizardStepsForContext$1, fs as PUBLIC_DOWNLOAD_MEDIA_TYPES, ft as EditableBlockProvider, fu as __awaiter, g as PreviewDesignCoordinatorProvider, gc as ImagePresets, gd as Upload, gf as __exportAll, gi as resolveBackgroundColorValue, gl as TooltipContent, gn as useSensor, go as publicEventSchema, gr as buildGiftingInteractiveIslandProps, gs as getFeatureCardIconCompletion, gu as __rest, hc as parseInlineTextFromUnknown, hd as X, hf as __commonJSMin, hi as resolveSectionForegroundStyles, hl as Tooltip, hn as useDroppable, ho as normalizeEventVenueId, hr as giftingBlockDefinition, hs as createFeatureCardIconKey, ht as useEntryEditorController, hu as __read, i as usePreviewDesignHistoryOrder, ia as sectionTransitionFamilies, ic as PlusIcon, id as unsafeAsAppointmentResourceId, if as CircleAlert, ii as defineFragment, il as isHeaderField, in as decodePublicProductCategorySelectorQuery, io as when, ir as toRegistrationEvents, is as asDesignBlockId, it as RichTextEditorSurface, ja as normalizeOfferingsPreviewItemLimit, jc as normalizeRightAngle, ji as surfaceResolutionContextFromTheme, jl as Tabs, jn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, jo as formatEventCompactDateRail, jr as formatInterval, js as SEMANTIC_ICON_DEFINITIONS, jt as createSnapshotFromPageRecord, ju as createEditorInsertBlockCommand, ka as isOfferingsPreviewSourceKey, kc as attachRenderableMediaAssetFields, kd as Plus, ki as designRuntimeRulesForTheme, kl as PopoverTrigger, kn as siteHeaderManifest, ko as toLocationMapHydrationProps, kr as buildProductDetailDisplay, ks as isIconPickerPreset, kt as useDebouncedLatestSave, ku as cn$1, la as backgroundAppearanceQuickColorTokenNames, lc as unwrapRichTextRoot, ld as unsafeAsPassId, lf as ChevronDown, li as MQ_SM_DOWN, ll as hasEmptyOption, ln as KeyboardCode, lo as normalizeEventBlockKind, lr as resolveRegistrationTarget, ls as ACCORDION_TRIGGER_LETTER_SPACING, lt as useEditor, lu as DropdownMenuSeparator, mc as isInlineTextEmpty, md as lucide_react_exports, mf as Archive, mi as boxStylesTransforms, ml as useField, mn as useDraggable, mo as normalizeEventSurfaceScope, mr as resolveEventRegistrationScopedEvents, ms as FEATURE_CARD_ICON_TREATMENTS, mu as __generator, n as useSiteChromeCustomizeOptional, na as boundaryRuntimeMetricsForTransition, nc as PhoneIcon, nd as parseMediaAssetId, nf as CircleMinus, ni as heroCopyFragment, nl as getFieldIntent, nn as reorderBlocks, no as eventCalendarListLayoutOptions, nr as eventRegistrationBlockDefinition, ns as splitPositioningClasses, nt as useRichTextEditor, nu as CardHeader, oa as sectionTransitionVariantForBoundaryOptionId, oc as UploadIcon, od as unsafeAsCustomerPassId, of as ChevronUp, oi as siteOptionSources, ol as useBlockContext, on as deriveLaunchReadiness, oo as eventBlockKindValues, or as findPreSelectedEvent, os as ACCORDION_OPEN_ACCENT_THICKNESS, ot as insertOrReplaceRichTextImage, ou as DropdownMenuContent, pc as inlineTextToPlainText, pd as ok$3, pf as ArrowDown, pi as getAnchorClasses, pl as FieldFrame, pn as useDndContext, po as normalizeEventSurfacePresetsCsv, pr as normalizeEventRegistrationPageSurfaceSubject, ps as mediaSchema, pt as EntryControllerProvider, pu as __extends, q as deriveTransactionCapabilities, qa as calendarTabViewsSchema, qc as TokenResolver, qd as FileArchive, qi as LABEL_FONT_SIZE_MAP, ql as Collapsible, qn as buildNewsletterFormInteractiveIslandProps, qo as buildInteractiveIslandProps, qr as singleButtonFragment, qs as ExternalLinkIcon, qt as toRoutableLinkPayload, qu as formatBookingPriceDisplay, r as PreviewDesignHistoryOrderProvider, ra as defaultSectionTransitionVariantForFamily, rc as PlayIcon, rd as parseSiteId, rf as CircleCheck, ri as bodyCopyFragment, rl as getModalConfig, rn as reorderEntrySlotBlocks, ro as el, rr as buildEventRegistrationInteractiveIslandProps, rs as planSiteChromePlacement, rt as EMPTY_DOC, ru as CardTitle, sa as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, sc as XIcon, sd as unsafeAsFormId, sf as ChevronRight, si as MQ_LG_UP, sl as SdkConfigProvider, sn as AMBIENT_BACKGROUND_ROLES$1, so as eventScheduleScopeValues, sr as resolveDiscountContext, ss as ACCORDION_SPACING_MAP, st as InlineTextEditor, su as DropdownMenuItem, t as SiteChromeCustomizeProvider, tc as MinusIcon, td as expectParsedBrandedId, tf as CirclePlus, ti as ctaRowFragment, tl as useBackendWatch, tn as mutateBlockContent, to as eventCalendarListLayoutCompatibleDisplayModeValues, tr as buildFormInteractiveIslandProps, ts as markEditableSurfaceForwarding, tt as PreviewTextEditor, tu as CardContent, ua as foregroundTokenForBackgroundAppearanceColorToken, uc as isObjectRecord, ud as unsafeAsPositiveByteCount$1, uf as Check, ui as MQ_SM_UP, ul as mapCurrentValueForSelect, un as PointerSensor, uo as normalizeEventCategoryIdsCsv, ur as WIZARD_STEPS$1, us as ICON_CONFIG, uu as DropdownMenuTrigger, v as PreviewThemeOverlayProvider, va as expandPalette, vc as buildResolveImageUrlContext, vi as readHeaderNavFontSizePreference, vl as TooltipTrigger, vn as CSS, vo as statusMutedColorDeclaration, vr as buildCourseRegistrationInteractiveIslandProps, vs as shouldReserveFeatureCardIconZone, vt as useEditorUiStoreInstance, vu as __spreadArrays, wc as resolveMediaNodeResponsiveImage, wi as retargetCompiledRuntimeFieldsForContentAdjacency, wl as SelectValue, wn as gradientToCss, wo as resolveTokenOrCssColorValue, wr as buildProductListInteractiveIslandProps, ws as parseBlockIconValue, wt as redoHistory, wu as composeEventHandlers, xa as runTransforms, xc as renderAudio, xi as applyCompiledRuntimeFieldsToContent, xl as SelectContent, xn as useIsomorphicLayoutEffect, xo as normalizeCardVariantRole, xr as buildCartInteractiveIslandProps, xs as buildGeneratedBlockIconRenderAssetLookupFromUnknown, xt as canUndoHistory, xu as createCollection, y as usePreviewThemeOverlay, ya as generateCssVars, yc as computeMediaTransformStyle, yd as Trash2, yi as formatSiteChromeBackgroundTokenLabel, yl as Textarea, yn as isKeyboardEvent, yo as generateShadowValue, yr as checkoutBlockDefinition, ys as suggestSemanticIconForFeatureCard, yt as useOptionalEditorUiStoreInstance, yu as useId$1, za as eventListPaginationActionSchema, zc as siblingPath$1, zd as ImagePlus, zi as NAV_LINK_BORDER_RADIUS_MAP, zl as ScrollableDialogContent, zn as createManifestValidator, zo as groupEventsByDate, zr as augmentManifest, zs as ChevronDownIcon, zt as validateBlockManifestIssues, zu as formatBookingInstant } from "./SiteChromeCustomizeContext-BV9GU-3C.mjs";
2
+ import { $ as PreviewRichTextEditor, $a as previewStageSchema, $c as rgbColorValue, $d as Copy, $l as createCollapsibleScope, $n as buildEventCalendarListingRender, $r as ctaCopyFragment, $s as MailIcon, $t as deleteEntrySlotBlock, $u as formatCurrencyAmount, Aa as normalizeOfferingsPreviewGroupOrder, Ac as isRotationDimensionSwap, Ad as Pencil, Ai as getCuratedSiteStyle, Al as Input, An as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Ao as formatDate$3, Ar as formatCommercePrice, As as resolveIconPickerPreset, At as createRoutingHelpers, Au as clsx, Ba as eventPageSizeSchema, Bd as ImageOff, Bi as NAV_LINK_LETTER_SPACING_MAP, Bl as Dialog, Bn as isInternalResolvedLinkValue, Bo as resolveEventCta, Br as augmentManifestWithStyleGroups, Bs as ChevronLeftIcon, Bt as ManifestForm, Bu as formatBookingTime, Cc as resolveImageUrlWithContext, Cd as Sparkles, Ci as retargetCompiledBoundaryRuntimeForContentAdjacency, Cl as SelectTrigger, Cn as isSupportedLoaderEndpoint, Co as resolveOnColorForThemeToken, Cr as buildProductDetailInteractiveIslandProps, Cs as getGeneratedBlockIconStyleState, Ct as pushHistoryEntry, Cu as createContextScope, Da as buildOfferingsPreviewRenderStates, Dc as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, Dd as RotateCcw, Di as resolveVisiblePromotedFieldPathsForEditorBlock, Dl as Popover, Dn as listBlockDescriptors, Do as buildGoogleMapsDirectionsUrl, Dr as buildCartDisplay, Ds as parseGeneratedIconSetId, Dt as recordsEqual, Du as cva, Ea as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Ec as setContextResolveImageUrlContext, Ed as Search, Ei as planPageDesignLayoutLookCompatibility, El as Badge, En as getBlockDefinition, Eo as featuresFromHex, Er as getShopDisplayForItems, Es as parseGeneratedIconAssetId, Et as unsafeAsLinkedContentEntryId, Eu as Button, Fa as resolveOfferingsPreviewGroups, Fc as asRecord, Fi as getComponentBorderWidthPx, Fl as Content$1, Fn as mediaTransforms, Fo as formatEventTeacherLine, Fr as deriveCommerceCheckoutState, Fs as ArrowLeftIcon, Ft as PaletteProvider, Fu as unsafeAsEditorBlockValues, G as beginAutosaveBatch, Ga as normalizeCsvString, Gc as generateBaseInteractiveCSS, Gd as FilePlay, Gi as INPUT_FONT_SIZE_MAP, Gl as DialogHeader, Gn as productDetailBlockDefinition, Go as resolveRuntimeEventPricing, Gr as faqHeadingFragment, Gs as ClockIcon$1, Gt as createStoreBackend, Gu as toBookingTimeZone, Ha as resolveEventCalendarListPageSize, Hc as generateButtonCss, Hd as File, Hi as NAV_LINK_PADDING_X_MAP, Hl as DialogContent, Hn as useImageResolveContextOptional, Ho as getEventAvailability, Hr as headingFragment, Hs as ChevronUpIcon, Hu as getBookingLocalDateKey, Ia as isSemanticSpacing, Ic as getDirectImageUrlForMediaAsset, Id as LoaderCircle, Ii as getComponentShadowVar, Il as List, In as layoutTransforms, Io as formatTime$3, Ir as parseStoredCommerceCartState, Is as ArrowRightIcon, It as usePalette, Iu as addLocalScheduleDays, J as enqueueTransaction, Ja as columnOptionSchema, Jc as parseThemeButtonVariantId, Jl as CollapsibleContent, Jn as eventListingBlockDefinition, Jo as createInteractiveIslandCodec, Jr as footerBottomTextFragment, Js as FileArchiveIcon, Jt as applyPageDesignEditorAction, Ju as publicEventPricingCurrency, K as confirmAutosaveBatch, Ka as normalizeOptionalId, Kc as generateInteractiveChildInheritanceCSS, Kd as FileHeadphone, Ki as INPUT_SPACING_MAP, Kl as DialogTitle, Kn as newsletterSignupBlockDefinition, Ko as blockBookingPaymentTermsSchema, Kr as blogFeaturedPostFragment, Ks as DownloadIcon, Kt as listContentTypes, Ku as toScheduledBookingDateTime, La as resolveSpacing, Lc as getImageUrl, Ld as Image, Li as parseBlockCustomCssRules, Ll as Root2$1, Ln as uiTransforms, Lo as getCardOrientation, Lr as productItemKey, Ls as CalendarIcon$1, Lt as recoveryConflictCopy, Lu as formatBookingDate, Ma as resolveOfferingsPreviewCoursePath, Mc as formatAspectRatioToken, Mi as isThemeV2NormalEditorRawStyleFieldName, Ml as TabsContent, Mn as planSiteOverlayHeaderClearance, Mo as formatEventDateParts, Mr as EMPTY_COMMERCE_CART_STATE, Ms as getSemanticIconComponent, Mu as createEditorRemoveBlockCommand, Na as resolveOfferingsPreviewGroupCta, Nc as parseAspectRatioValue, Ni as isThemeV2NormalEditorRawStylePath, Nl as TabsList, Nn as visibleHeaderClearancePx, No as formatEventPrice, Nr as buildPassCartItem, Ns as isSemanticIconId, Nu as createEditorReorderBlocksCommand, Oa as inferLegacyOfferingsPreviewGroupOrder, Oc as resolveMediaSlotContract, Ol as PopoverContent, On as siteFooterManifest, Oo as normalizeLocationMapProps, Or as buildProductCardDisplay, Os as parseSiteIconStyleGuideVersionId, Ou as useComposedRefs, Pa as resolveOfferingsPreviewGroupOrderEntries, Pc as resolveMediaTransformForAspect, Pd as Minus, Pi as pageDesignEditorBackgroundOverrideOwner, Pl as TabsTrigger, Pn as contentTransforms, Po as formatEventPriceDisplay, Pr as buildProductCartItem, Ps as ArrowDownIcon, Pu as unsafeAsEditorBlockId, Q as resolvePreviewSidebarTab, Qa as filterAutoShowSchema, Qc as mergeStyles, Qd as CreditCard, Ql as Trigger, Qn as buildEventCalendarListingDisplay, Qo as defineProgressiveBlockRuntime, Qr as testimonialsHeadingFragment, Qs as InfoIcon, Qt as deleteBlock, Qu as publicEventTicketTypes, Ra as buildEventRuntimeFilters, Rc as getAtPath, Rd as ImageUp, Ri as parseCustomCssRules, Rl as Trigger$1, Rn as formattingTransforms, Ro as getContainerClass, Rr as reduceCommerceCart, Rs as CheckIcon$1, Rt as unfinishedBlockCopy, Ru as formatBookingDateTime, Sa as ctaButton, Sc as renderVideo, Sd as Star, Si as compileEditorModelRuntime, Sl as SelectItem, Sn as useUniqueId, So as isCssColorLiteral, Sr as buildCheckoutInteractiveIslandProps, Ss as getBlockIconSemanticId, St as createHistoryState, Su as useControllableState, Tc as resolveMediaStorageUrl, Td as Settings, Ti as normalEditorCuratedPromotedFieldPaths, Tl as Label, Tn as GRADIENT_PRESETS, To as getTextColorForBackground, Tr as buildShopInteractiveIslandProps, Ts as resolveBlockIconRenderValue, Tt as undoHistory, Tu as Primitive, Ua as resolveEventListPaginationAction, Uc as generateEffectsCSS, Ud as FileText, Ui as NAV_LINK_TEXT_SIZE_MAP, Ul as DialogDescription, Un as shopBlockDefinition, Uo as getLocalDateKey, Ur as cardFragment, Us as CircleMinusIcon, Ut as FormRenderer, Uu as parseBookingLocalDate, Va as getEventRuntimeFiltersKey, Vd as GripVertical, Vi as NAV_LINK_PADDING_MAP, Vl as DialogClose, Vn as ImageResolveContextProvider, Vo as resolveEventLinkProps, Vr as richTextFragment, Vs as ChevronRightIcon, Vt as createManifestFormAdapter, Vu as formatLocalScheduleDate, Wa as normalizeCsvIds, Wc as generateShadowValue$1, Wd as FileSpreadsheet, Wi as FONT_WEIGHT_MAP, Wl as DialogFooter, Wn as productListBlockDefinition, Wo as getLocalMinuteOfDay, Wr as faqAccordionFragment, Ws as CirclePlusIcon, Wt as evaluateVisibility, Wu as resolveBookingTimeZoneId, X as rejectAutosaveBatch, Xa as eventCalendarDefaultViewSchema, Xc as backgroundColorStyle, Xd as EllipsisVertical, Xl as Content, Xn as eventCalendarBlockDefinition, Xo as createZodCodec, Xr as formCopyFragment, Xs as FileSpreadsheetIcon, Xt as createBlock, Xu as publicEventPricingType, Y as idleEditorTransactionQueueState, Ya as eventButtonVariantSchema, Yc as themeButtonClassName, Yd as EyeOff, Yn as buildEventListingInteractiveIslandProps, Yo as defineInteractiveIslandMetaKeys, Yr as formEmbedFragment, Ys as FileAudioIcon, Yt as getPageDesignEditorState, Yu as publicEventPricingMode, Za as eventLayoutSchema, Zc as borderColorStyle, Zd as Crop, Zl as Root, Zn as buildEventCalendarInteractiveIslandProps, Zo as defineClientOwnedBlockRuntime, Zr as testimonialsCarouselFragment, Zs as FileTextIcon, Zt as createEntrySlotBlock, Zu as publicEventScalarPrice, _c as MediaPlaceholder, _f as __toESM, _i as mergeHeaderNavTypographyPreference, _l as TooltipProvider, _n as useSensors, _o as generateCardCss, _r as courseRegistrationBlockDefinition, _s as resolveFeatureCardGeneratedIconSizePx, _t as useEditorUiStore, _u as __spreadArray, aa as sectionTransitionFamilyForBoundaryOptionId, ac as ShoppingCartIcon, ad as unsafeAsAppointmentServiceId, af as ChevronsUpDown, ai as PUBLIC_FILE_FIELD_KINDS, al as isNonEmptyValue, an as DEFAULT_LAUNCH_READINESS_INPUT, ao as bindingSchema, ar as findEventByOccurrenceId, as as assertNever$6, at as getRichTextImagePositionFromTarget, au as DropdownMenu, ba as createTransformRegistry, bc as getCurrentResolveImageUrlContext, bd as Ticket, bi as PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, bl as Select, bn as useCombinedRefs, bo as normalizeBoxStylesCardVariant, br as cartBlockDefinition, bs as toFeatureCardIconSuggestionInputs, bt as canRedoHistory, bu as useDirection, ca as backgroundAppearanceColorTokenNames, cc as createRichTextDocFromMarkdown, cd as unsafeAsMediaAssetId, cf as ChevronLeft, ci as MQ_MD_DOWN, cl as useSdkConfig, cn as DndContext, co as eventSurfaceScopeValues, cr as resolveEventRequiresPayment, cs as ACCORDION_TRIGGER_FONT_SCALE, ct as EditorProvider, da as parseBackgroundAppearanceColorToken, dc as isRecord$20, dd as unsafeAsPositiveSeconds, df as Box, di as MQ_TABLET_ONLY, dl as mapOptionValueForSelect, dn as closestCenter, do as normalizeEventScheduleScope, dr as getStepNumber$1, ds as ICON_SIZE_PX, dt as useUISelector, du as __assign, ec as MapPinIcon$1, ed as assertNever$5, ef as Clock3, ei as heroCtaRowFragment, el as textColorStyle, eo as weekStartSchema, er as formBlockDefinition, es as composeHeaderSectionWrapperClassName, et as PreviewInlineTextEditor, eu as Card, fa as defaultThemeTokens, fc as coerceInlineTextWithFallback, fd as err$2, ff as ArrowUp, fi as BACKGROUND_POSITION_PRESET_VALUES, fl as unmapValueFromSelect, fn as getClientRect, fo as normalizeEventStaffMemberId, fr as getWizardStepsForContext$1, fs as PUBLIC_DOWNLOAD_MEDIA_TYPES, ft as EditableBlockProvider, fu as __awaiter, g as PreviewDesignCoordinatorProvider, gc as ImagePresets, gd as Upload, gf as __exportAll, gi as resolveBackgroundColorValue, gl as TooltipContent, gn as useSensor, go as publicEventSchema, gr as buildGiftingInteractiveIslandProps, gs as getFeatureCardIconCompletion, gu as __rest, hc as parseInlineTextFromUnknown, hd as X, hf as __commonJSMin, hi as resolveSectionForegroundStyles, hl as Tooltip, hn as useDroppable, ho as normalizeEventVenueId, hr as giftingBlockDefinition, hs as createFeatureCardIconKey, ht as useEntryEditorController, hu as __read, i as usePreviewDesignHistoryOrder, ia as sectionTransitionFamilies, ic as PlusIcon, id as unsafeAsAppointmentResourceId, if as CircleAlert, ii as defineFragment, il as isHeaderField, in as decodePublicProductCategorySelectorQuery, io as when, ir as toRegistrationEvents, is as asDesignBlockId, it as RichTextEditorSurface, ja as normalizeOfferingsPreviewItemLimit, jc as normalizeRightAngle, ji as surfaceResolutionContextFromTheme, jl as Tabs, jn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, jo as formatEventCompactDateRail, jr as formatInterval, js as SEMANTIC_ICON_DEFINITIONS, jt as createSnapshotFromPageRecord, ju as createEditorInsertBlockCommand, ka as isOfferingsPreviewSourceKey, kc as attachRenderableMediaAssetFields, kd as Plus, ki as designRuntimeRulesForTheme, kl as PopoverTrigger, kn as siteHeaderManifest, ko as toLocationMapHydrationProps, kr as buildProductDetailDisplay, ks as isIconPickerPreset, kt as useDebouncedLatestSave, ku as cn$1, la as backgroundAppearanceQuickColorTokenNames, lc as unwrapRichTextRoot, ld as unsafeAsPassId, lf as ChevronDown, li as MQ_SM_DOWN, ll as hasEmptyOption, ln as KeyboardCode, lo as normalizeEventBlockKind, lr as resolveRegistrationTarget, ls as ACCORDION_TRIGGER_LETTER_SPACING, lt as useEditor, lu as DropdownMenuSeparator, mc as isInlineTextEmpty, md as lucide_react_exports, mf as Archive, mi as boxStylesTransforms, ml as useField, mn as useDraggable, mo as normalizeEventSurfaceScope, mr as resolveEventRegistrationScopedEvents, ms as FEATURE_CARD_ICON_TREATMENTS, mu as __generator, n as useSiteChromeCustomizeOptional, na as boundaryRuntimeMetricsForTransition, nc as PhoneIcon, nd as parseMediaAssetId, nf as CircleMinus, ni as heroCopyFragment, nl as getFieldIntent, nn as reorderBlocks, no as eventCalendarListLayoutOptions, nr as eventRegistrationBlockDefinition, ns as splitPositioningClasses, nt as useRichTextEditor, nu as CardHeader, oa as sectionTransitionVariantForBoundaryOptionId, oc as UploadIcon, od as unsafeAsCustomerPassId, of as ChevronUp, oi as siteOptionSources, ol as useBlockContext, on as deriveLaunchReadiness, oo as eventBlockKindValues, or as findPreSelectedEvent, os as ACCORDION_OPEN_ACCENT_THICKNESS, ot as insertOrReplaceRichTextImage, ou as DropdownMenuContent, pc as inlineTextToPlainText, pd as ok$3, pf as ArrowDown, pi as getAnchorClasses, pl as FieldFrame, pn as useDndContext, po as normalizeEventSurfacePresetsCsv, pr as normalizeEventRegistrationPageSurfaceSubject, ps as mediaSchema, pt as EntryControllerProvider, pu as __extends, q as deriveTransactionCapabilities, qa as calendarTabViewsSchema, qc as TokenResolver, qd as FileArchive, qi as LABEL_FONT_SIZE_MAP, ql as Collapsible, qn as buildNewsletterFormInteractiveIslandProps, qo as buildInteractiveIslandProps, qr as singleButtonFragment, qs as ExternalLinkIcon, qt as toRoutableLinkPayload, qu as formatBookingPriceDisplay, r as PreviewDesignHistoryOrderProvider, ra as defaultSectionTransitionVariantForFamily, rc as PlayIcon, rd as parseSiteId, rf as CircleCheck, ri as bodyCopyFragment, rl as getModalConfig, rn as reorderEntrySlotBlocks, ro as el, rr as buildEventRegistrationInteractiveIslandProps, rs as planSiteChromePlacement, rt as EMPTY_DOC, ru as CardTitle, sa as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, sc as XIcon, sd as unsafeAsFormId, sf as ChevronRight, si as MQ_LG_UP, sl as SdkConfigProvider, sn as AMBIENT_BACKGROUND_ROLES$1, so as eventScheduleScopeValues, sr as resolveDiscountContext, ss as ACCORDION_SPACING_MAP, st as InlineTextEditor, su as DropdownMenuItem, t as SiteChromeCustomizeProvider, tc as MinusIcon, td as expectParsedBrandedId, tf as CirclePlus, ti as ctaRowFragment, tl as useBackendWatch, tn as mutateBlockContent, to as eventCalendarListLayoutCompatibleDisplayModeValues, tr as buildFormInteractiveIslandProps, ts as markEditableSurfaceForwarding, tt as PreviewTextEditor, tu as CardContent, ua as foregroundTokenForBackgroundAppearanceColorToken, uc as isObjectRecord, ud as unsafeAsPositiveByteCount$1, uf as Check, ui as MQ_SM_UP, ul as mapCurrentValueForSelect, un as PointerSensor, uo as normalizeEventCategoryIdsCsv, ur as WIZARD_STEPS$1, us as ICON_CONFIG, uu as DropdownMenuTrigger, v as PreviewThemeOverlayProvider, va as expandPalette, vc as buildResolveImageUrlContext, vi as readHeaderNavFontSizePreference, vl as TooltipTrigger, vn as CSS, vo as statusMutedColorDeclaration, vr as buildCourseRegistrationInteractiveIslandProps, vs as shouldReserveFeatureCardIconZone, vt as useEditorUiStoreInstance, vu as __spreadArrays, wc as resolveMediaNodeResponsiveImage, wi as retargetCompiledRuntimeFieldsForContentAdjacency, wl as SelectValue, wn as gradientToCss, wo as resolveTokenOrCssColorValue, wr as buildProductListInteractiveIslandProps, ws as parseBlockIconValue, wt as redoHistory, wu as composeEventHandlers, xa as runTransforms, xc as renderAudio, xi as applyCompiledRuntimeFieldsToContent, xl as SelectContent, xn as useIsomorphicLayoutEffect, xo as normalizeCardVariantRole, xr as buildCartInteractiveIslandProps, xs as buildGeneratedBlockIconRenderAssetLookupFromUnknown, xt as canUndoHistory, xu as createCollection, y as usePreviewThemeOverlay, ya as generateCssVars, yc as computeMediaTransformStyle, yd as Trash2, yi as formatSiteChromeBackgroundTokenLabel, yl as Textarea, yn as isKeyboardEvent, yo as generateShadowValue, yr as checkoutBlockDefinition, ys as suggestSemanticIconForFeatureCard, yt as useOptionalEditorUiStoreInstance, yu as useId$1, za as eventListPaginationActionSchema, zc as siblingPath$1, zd as ImagePlus, zi as NAV_LINK_BORDER_RADIUS_MAP, zl as ScrollableDialogContent, zn as createManifestValidator, zo as groupEventsByDate, zr as augmentManifest, zs as ChevronDownIcon, zt as validateBlockManifestIssues, zu as formatBookingInstant } from "./SiteChromeCustomizeContext-Bt8zb3qu.mjs";
3
3
  import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-CStABBUh.mjs";
4
4
  import { _ as API_ENDPOINTS, a as usePreviewToken, c as createBearerAPIClient, d as unwrapResponse, g as resolveSurfaceDocumentAttributes, h as SURFACE_IDS, i as usePreviewAuthFetch, 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-CfquDtTh.mjs";
5
5
  import * as React$1 from "react";
@@ -59141,9 +59141,11 @@ function RichTextField({ path, backend, config }) {
59141
59141
  onPickImage,
59142
59142
  linkItems,
59143
59143
  onRequestLinkItems: loadLinkItems,
59144
- toolbarTone: "light",
59145
- toolbarPortalToChrome: false,
59146
- toolbarAlwaysVisible: true,
59144
+ toolbarLayout: {
59145
+ kind: "inline",
59146
+ tone: "light",
59147
+ visibility: { kind: "always" }
59148
+ },
59147
59149
  renderContent: (content) => theme ? /* @__PURE__ */ jsx(ThemeScope, {
59148
59150
  theme,
59149
59151
  children: /* @__PURE__ */ jsx("div", {
@@ -65503,10 +65505,10 @@ function LinkedEntryEditEventBridge() {
65503
65505
  //#region ../preview-next/src/client/preview/PreviewShellLayout.tsx
65504
65506
  const previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
65505
65507
  const PreviewEditorSidebar = React.lazy(async () => {
65506
- return { default: (await import("./PreviewEditorSidebar-ywqcYjTB.mjs")).PreviewEditorSidebar };
65508
+ return { default: (await import("./PreviewEditorSidebar-CmaPXdKu.mjs")).PreviewEditorSidebar };
65507
65509
  });
65508
65510
  const PreviewEditorUI = React.lazy(async () => {
65509
- return { default: (await import("./PreviewEditorUI-DApUNF6g.mjs")).PreviewEditorUI };
65511
+ return { default: (await import("./PreviewEditorUI-C5xRTh2b.mjs")).PreviewEditorUI };
65510
65512
  });
65511
65513
  const previewPaneContainmentStyle = {
65512
65514
  contain: "layout paint",
@@ -123694,6 +123694,8 @@ const VERTICAL_IDS = [
123694
123694
  "yoga_wellness",
123695
123695
  "fitness_pt",
123696
123696
  "dance_school",
123697
+ "physiotherapy_physical_health",
123698
+ "massage_bodywork",
123697
123699
  "therapist_practitioner",
123698
123700
  "beauty_spa",
123699
123701
  "consultant_coach",
@@ -123729,6 +123731,12 @@ const VERTICAL_BOOKING_PRESETS = [
123729
123731
  preset("dance_school.workshops", "dance_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
123730
123732
  preset("dance_school.private_lessons", "dance_school", "appointment", "Private lesson", "Private lessons", "One-to-one lessons or coaching sessions."),
123731
123733
  preset("dance_school.shows", "dance_school", "performance", "Show", "Shows", "Ticketed performances, showcases, and recitals."),
123734
+ preset("physiotherapy_physical_health.appointments", "physiotherapy_physical_health", "appointment", "Appointment", "Appointments", "Assessments, treatments, follow-ups, and rehabilitation sessions."),
123735
+ preset("physiotherapy_physical_health.rehab_classes", "physiotherapy_physical_health", "class", "Rehab class", "Rehab classes", "Regular rehabilitation, mobility, strength, or recovery classes."),
123736
+ preset("physiotherapy_physical_health.workshops", "physiotherapy_physical_health", "workshop", "Workshop", "Workshops", "One-off workshops, talks, or practical group sessions."),
123737
+ preset("massage_bodywork.treatments", "massage_bodywork", "appointment", "Treatment", "Treatments", "Massage treatments, bodywork sessions, and one-to-one appointments."),
123738
+ preset("massage_bodywork.group_sessions", "massage_bodywork", "class", "Group session", "Group sessions", "Regular bodywork, somatic movement, or self-massage sessions."),
123739
+ preset("massage_bodywork.workshops", "massage_bodywork", "workshop", "Workshop", "Workshops", "One-off bodywork, self-massage, or somatic practice workshops."),
123732
123740
  preset("therapist_practitioner.appointments", "therapist_practitioner", "appointment", "Appointment", "Appointments", "Sessions, consultations, treatments, or assessments."),
123733
123741
  preset("therapist_practitioner.workshops", "therapist_practitioner", "workshop", "Workshop", "Workshops", "One-off group workshops, talks, or wellbeing sessions."),
123734
123742
  preset("therapist_practitioner.retreats", "therapist_practitioner", "retreat", "Retreat", "Retreats", "Multi-day retreats or immersive group experiences."),
@@ -150594,10 +150602,7 @@ function LinkPopover({ editor, tone = "dark", initialItems, loadItems }) {
150594
150602
  }
150595
150603
  //#endregion
150596
150604
  //#region ../editor/src/primitives/rich-text/RichTextToolbar.tsx
150597
- /**
150598
- * @refactor This file is due for a cleanup pass to improve readability and maintainability.
150599
- */
150600
- function RichTextToolbar({ editor, buttons, onPickImage, linkItems, onRequestLinkItems, alwaysVisible = false, tone = "dark", portalToChrome = true }) {
150605
+ function RichTextToolbar({ editor, buttons, onPickImage, linkItems, onRequestLinkItems, visibility, tone, host }) {
150601
150606
  const [isHovered, setIsHovered] = useState(false);
150602
150607
  const [isFocused, setIsFocused] = useState(false);
150603
150608
  const [isMenuOpen, setIsMenuOpen] = useState(false);
@@ -150614,13 +150619,16 @@ function RichTextToolbar({ editor, buttons, onPickImage, linkItems, onRequestLin
150614
150619
  };
150615
150620
  }, [editor]);
150616
150621
  useEffect(() => {
150617
- if (!portalToChrome) return;
150622
+ if (host.kind !== "chrome") return;
150618
150623
  if (typeof window === "undefined") return;
150619
150624
  setChromeRoot(document.getElementById("builder-editor-chrome-root") ?? null);
150620
- }, [portalToChrome]);
150625
+ }, [host.kind]);
150621
150626
  if (!editor || buttons.length === 0) return null;
150622
- if (!alwaysVisible && !isFocused && !isMenuOpen && !isHovered) return null;
150623
- const opacity = alwaysVisible ? 1 : isHovered ? .95 : .55;
150627
+ if (!shouldShowToolbar(visibility, {
150628
+ isFocused,
150629
+ isMenuOpen,
150630
+ isHovered
150631
+ })) return null;
150624
150632
  const renderButton = (button, index) => {
150625
150633
  switch (button.type) {
150626
150634
  case "blockType": return /* @__PURE__ */ jsx(BlockTypeDropdown, {
@@ -150702,16 +150710,23 @@ function RichTextToolbar({ editor, buttons, onPickImage, linkItems, onRequestLin
150702
150710
  const toolbarEl = /* @__PURE__ */ jsx("div", {
150703
150711
  onMouseEnter: () => setIsHovered(true),
150704
150712
  onMouseLeave: () => setIsHovered(false),
150705
- className: cn("flex items-center px-2.5 py-1.5 text-sm transition-opacity", tone === "light" ? "bg-primary text-white" : "bg-slate-900 text-slate-50 border-b border-white/10"),
150706
- style: { opacity },
150713
+ className: cn("flex w-full items-center overflow-x-auto px-2.5 py-1.5 text-sm", tone === "light" ? "bg-primary text-white" : "bg-slate-900 text-slate-50 border-b border-white/10"),
150707
150714
  children: /* @__PURE__ */ jsx(TooltipProvider, {
150708
150715
  delayDuration: 200,
150709
150716
  children: buttons.map(renderButton)
150710
150717
  })
150711
150718
  });
150712
- if (portalToChrome && chromeRoot) return createPortal(toolbarEl, chromeRoot);
150719
+ if (host.kind === "chrome" && chromeRoot) return createPortal(toolbarEl, chromeRoot);
150713
150720
  return toolbarEl;
150714
150721
  }
150722
+ function shouldShowToolbar(visibility, state) {
150723
+ const isInteracting = state.isMenuOpen || state.isHovered;
150724
+ switch (visibility.kind) {
150725
+ case "always": return true;
150726
+ case "editor-focus": return state.isFocused || isInteracting;
150727
+ case "controlled": return visibility.visible || isInteracting;
150728
+ }
150729
+ }
150715
150730
  //#endregion
150716
150731
  //#region ../editor/src/primitives/rich-text/RichTextEditorSurface.tsx
150717
150732
  function shouldHandleRichTextActivationKey(container, target) {
@@ -150719,10 +150734,10 @@ function shouldHandleRichTextActivationKey(container, target) {
150719
150734
  if (target === container) return true;
150720
150735
  return !target.closest("[contenteditable=\"true\"], .ProseMirror, input, textarea, select, button, a[href]");
150721
150736
  }
150722
- function RichTextEditorSurface({ editor, config, isEmpty, className, contentClassName, placeholderClassName, placeholderText, ariaLabel, linkItems, onRequestLinkItems, onPickImage, toolbarTone = "dark", toolbarAlwaysVisible = false, toolbarPortalToChrome = true, hideToolbar = false, hideContent = false, onClick, renderContent }) {
150737
+ function RichTextEditorSurface({ editor, config, isEmpty, className, contentClassName, placeholderClassName, placeholderText, ariaLabel, linkItems, onRequestLinkItems, onPickImage, toolbarLayout, onClick, renderContent }) {
150723
150738
  const editableAriaLabel = ariaLabel ?? placeholderText ?? config.placeholder;
150724
150739
  useEffect(() => {
150725
- if (!editor || hideContent) return;
150740
+ if (!editor) return;
150726
150741
  const editableElement = editor.view.dom;
150727
150742
  editableElement.setAttribute("role", "textbox");
150728
150743
  editableElement.setAttribute("aria-multiline", "true");
@@ -150730,11 +150745,7 @@ function RichTextEditorSurface({ editor, config, isEmpty, className, contentClas
150730
150745
  return () => {
150731
150746
  if (editableElement.getAttribute("aria-label") === editableAriaLabel) editableElement.removeAttribute("aria-label");
150732
150747
  };
150733
- }, [
150734
- editableAriaLabel,
150735
- editor,
150736
- hideContent
150737
- ]);
150748
+ }, [editableAriaLabel, editor]);
150738
150749
  const interactiveContentProps = onClick ? {
150739
150750
  role: "button",
150740
150751
  tabIndex: 0,
@@ -150761,16 +150772,16 @@ function RichTextEditorSurface({ editor, config, isEmpty, className, contentClas
150761
150772
  });
150762
150773
  return /* @__PURE__ */ jsxs("div", {
150763
150774
  className,
150764
- children: [hideToolbar ? null : /* @__PURE__ */ jsx(RichTextToolbar, {
150775
+ children: [toolbarLayout.kind === "hidden" ? null : /* @__PURE__ */ jsx(RichTextToolbar, {
150765
150776
  editor,
150766
150777
  buttons: config.toolbar,
150767
150778
  onPickImage,
150768
150779
  linkItems,
150769
150780
  onRequestLinkItems,
150770
- alwaysVisible: toolbarAlwaysVisible,
150771
- tone: toolbarTone,
150772
- portalToChrome: toolbarPortalToChrome
150773
- }), hideContent ? null : renderContent ? renderContent(content) : content]
150781
+ visibility: toolbarLayout.visibility,
150782
+ tone: toolbarLayout.tone,
150783
+ host: { kind: toolbarLayout.kind }
150784
+ }), renderContent ? renderContent(content) : content]
150774
150785
  });
150775
150786
  }
150776
150787
  //#endregion
@@ -154407,6 +154418,20 @@ const Link = Mark.create({
154407
154418
  });
154408
154419
  //#endregion
154409
154420
  //#region ../editor/src/primitives/rich-text/extensions/RichTextLink.ts
154421
+ const RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD = {
154422
+ kind: "data-rb-link-kind",
154423
+ identifier: "data-rb-link-identifier",
154424
+ contentType: "data-rb-link-content-type",
154425
+ routeId: "data-rb-link-route-id",
154426
+ entityId: "data-rb-link-entity-id",
154427
+ entityType: "data-rb-link-entity-type",
154428
+ title: "data-rb-link-title",
154429
+ typeLabel: "data-rb-link-type-label",
154430
+ contentTypeKey: "data-rb-link-content-type-key",
154431
+ contentTypeName: "data-rb-link-content-type-name",
154432
+ updatedAt: "data-rb-link-updated-at"
154433
+ };
154434
+ const RICH_TEXT_LINK_DATA_ATTRIBUTES = Object.values(RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD);
154410
154435
  function dataAttribute(name, dataAttr) {
154411
154436
  return {
154412
154437
  default: null,
@@ -154421,17 +154446,17 @@ function dataAttribute(name, dataAttr) {
154421
154446
  const RichTextLink = Link.extend({ addAttributes() {
154422
154447
  return {
154423
154448
  ...this.parent?.(),
154424
- kind: dataAttribute("kind", "data-rb-link-kind"),
154425
- identifier: dataAttribute("identifier", "data-rb-link-identifier"),
154426
- contentType: dataAttribute("contentType", "data-rb-link-content-type"),
154427
- routeId: dataAttribute("routeId", "data-rb-link-route-id"),
154428
- entityId: dataAttribute("entityId", "data-rb-link-entity-id"),
154429
- entityType: dataAttribute("entityType", "data-rb-link-entity-type"),
154430
- title: dataAttribute("title", "data-rb-link-title"),
154431
- typeLabel: dataAttribute("typeLabel", "data-rb-link-type-label"),
154432
- contentTypeKey: dataAttribute("contentTypeKey", "data-rb-link-content-type-key"),
154433
- contentTypeName: dataAttribute("contentTypeName", "data-rb-link-content-type-name"),
154434
- updatedAt: dataAttribute("updatedAt", "data-rb-link-updated-at")
154449
+ kind: dataAttribute("kind", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.kind),
154450
+ identifier: dataAttribute("identifier", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.identifier),
154451
+ contentType: dataAttribute("contentType", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.contentType),
154452
+ routeId: dataAttribute("routeId", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.routeId),
154453
+ entityId: dataAttribute("entityId", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.entityId),
154454
+ entityType: dataAttribute("entityType", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.entityType),
154455
+ title: dataAttribute("title", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.title),
154456
+ typeLabel: dataAttribute("typeLabel", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.typeLabel),
154457
+ contentTypeKey: dataAttribute("contentTypeKey", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.contentTypeKey),
154458
+ contentTypeName: dataAttribute("contentTypeName", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.contentTypeName),
154459
+ updatedAt: dataAttribute("updatedAt", RICH_TEXT_LINK_DATA_ATTRIBUTE_BY_FIELD.updatedAt)
154435
154460
  };
154436
154461
  } });
154437
154462
  //#endregion
@@ -154460,6 +154485,8 @@ const RichTextImage = Node$1.create({
154460
154485
  });
154461
154486
  //#endregion
154462
154487
  //#region ../editor/src/primitives/rich-text/config.ts
154488
+ const semanticPasteWithImages = { kind: "semantic-clean-with-images" };
154489
+ const semanticTextOnlyPaste = { kind: "semantic-clean-text-only" };
154463
154490
  const fullExtensions = [
154464
154491
  StarterKit.configure({
154465
154492
  bulletList: { keepMarks: true },
@@ -154542,7 +154569,8 @@ const richTextConfigs = {
154542
154569
  { type: "orderedList" },
154543
154570
  { type: "image" }
154544
154571
  ],
154545
- placeholder: "Click to start writing…"
154572
+ placeholder: "Click to start writing…",
154573
+ pastePolicy: semanticPasteWithImages
154546
154574
  },
154547
154575
  inline: {
154548
154576
  extensions: inlineExtensions,
@@ -154551,7 +154579,8 @@ const richTextConfigs = {
154551
154579
  { type: "italic" },
154552
154580
  { type: "link" }
154553
154581
  ],
154554
- placeholder: "Click to edit…"
154582
+ placeholder: "Click to edit…",
154583
+ pastePolicy: semanticTextOnlyPaste
154555
154584
  },
154556
154585
  limited: {
154557
154586
  extensions: limitedExtensions,
@@ -154560,7 +154589,8 @@ const richTextConfigs = {
154560
154589
  { type: "italic" },
154561
154590
  { type: "link" }
154562
154591
  ],
154563
- placeholder: "Click to start writing…"
154592
+ placeholder: "Click to start writing…",
154593
+ pastePolicy: semanticTextOnlyPaste
154564
154594
  },
154565
154595
  notes: {
154566
154596
  extensions: notesExtensions,
@@ -154571,7 +154601,8 @@ const richTextConfigs = {
154571
154601
  { type: "bulletList" },
154572
154602
  { type: "orderedList" }
154573
154603
  ],
154574
- placeholder: "Write a note…"
154604
+ placeholder: "Write a note…",
154605
+ pastePolicy: semanticTextOnlyPaste
154575
154606
  },
154576
154607
  media: {
154577
154608
  extensions: fullExtensions,
@@ -154584,7 +154615,8 @@ const richTextConfigs = {
154584
154615
  { type: "orderedList" },
154585
154616
  { type: "image" }
154586
154617
  ],
154587
- placeholder: "Click to start writing…"
154618
+ placeholder: "Click to start writing…",
154619
+ pastePolicy: semanticPasteWithImages
154588
154620
  }
154589
154621
  };
154590
154622
  //#endregion
@@ -154775,6 +154807,88 @@ function formatUnsupportedRichTextSummary(warnings) {
154775
154807
  return parts.join(" • ");
154776
154808
  }
154777
154809
  //#endregion
154810
+ //#region ../editor/src/primitives/rich-text/paste.ts
154811
+ const DANGEROUS_ELEMENTS = "embed, iframe, link, meta, noscript, object, script, style, template";
154812
+ const ELEMENTS_TO_UNWRAP = "font, mark, span";
154813
+ const GLOBAL_ALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["dir", "lang"]);
154814
+ const ALLOWED_ATTRIBUTES_BY_TAG = /* @__PURE__ */ new Map([
154815
+ ["a", /* @__PURE__ */ new Set([
154816
+ "href",
154817
+ "rel",
154818
+ "target",
154819
+ ...RICH_TEXT_LINK_DATA_ATTRIBUTES
154820
+ ])],
154821
+ ["img", /* @__PURE__ */ new Set([
154822
+ "alt",
154823
+ "height",
154824
+ "identifier",
154825
+ "src",
154826
+ "title",
154827
+ "width"
154828
+ ])],
154829
+ ["li", /* @__PURE__ */ new Set(["value"])],
154830
+ ["ol", /* @__PURE__ */ new Set(["start"])]
154831
+ ]);
154832
+ /**
154833
+ * Builds the TipTap HTML paste boundary for a specific editor variant.
154834
+ */
154835
+ function createRichTextPasteHtmlTransformer(policy) {
154836
+ return (html) => sanitizePastedRichTextHtml(html, policy);
154837
+ }
154838
+ /**
154839
+ * Removes source-site presentation while retaining schema-supported semantic
154840
+ * structure and Riverbank's own typed link metadata.
154841
+ */
154842
+ function sanitizePastedRichTextHtml(html, policy) {
154843
+ if (typeof document === "undefined") return html;
154844
+ const pasteDocument = document.implementation.createHTMLDocument("");
154845
+ pasteDocument.body.innerHTML = html;
154846
+ for (const element of Array.from(pasteDocument.body.querySelectorAll(DANGEROUS_ELEMENTS))) element.remove();
154847
+ if (policy.kind === "semantic-clean-text-only") for (const image of Array.from(pasteDocument.body.querySelectorAll("img"))) image.remove();
154848
+ for (const element of Array.from(pasteDocument.body.querySelectorAll("*"))) {
154849
+ const supportedStyles = readSupportedInlineStyles(element);
154850
+ retainAllowedAttributes(element);
154851
+ preserveSupportedInlineStyles(pasteDocument, element, supportedStyles);
154852
+ }
154853
+ for (const element of Array.from(pasteDocument.body.querySelectorAll(ELEMENTS_TO_UNWRAP))) element.replaceWith(...Array.from(element.childNodes));
154854
+ return pasteDocument.body.innerHTML;
154855
+ }
154856
+ function readSupportedInlineStyles(element) {
154857
+ const style = element instanceof HTMLElement ? element.style : null;
154858
+ if (!style) return [];
154859
+ const supportedStyles = [];
154860
+ const fontWeight = style.fontWeight.trim().toLowerCase();
154861
+ const numericFontWeight = Number.parseInt(fontWeight, 10);
154862
+ if (fontWeight === "bold" || fontWeight === "bolder" || Number.isFinite(numericFontWeight) && numericFontWeight >= 600) supportedStyles.push("bold");
154863
+ const fontStyle = style.fontStyle.trim().toLowerCase();
154864
+ if (fontStyle === "italic" || fontStyle === "oblique") supportedStyles.push("italic");
154865
+ if (`${style.textDecoration} ${style.textDecorationLine}`.toLowerCase().includes("line-through")) supportedStyles.push("strike");
154866
+ return supportedStyles;
154867
+ }
154868
+ function retainAllowedAttributes(element) {
154869
+ const tagAllowedAttributes = ALLOWED_ATTRIBUTES_BY_TAG.get(element.tagName.toLowerCase());
154870
+ for (const attribute of Array.from(element.attributes)) {
154871
+ const attributeName = attribute.name.toLowerCase();
154872
+ if (!GLOBAL_ALLOWED_ATTRIBUTES.has(attributeName) && !tagAllowedAttributes?.has(attributeName)) element.removeAttribute(attribute.name);
154873
+ }
154874
+ }
154875
+ function preserveSupportedInlineStyles(pasteDocument, element, supportedStyles) {
154876
+ let container = element;
154877
+ for (const supportedStyle of supportedStyles) {
154878
+ const wrapper = pasteDocument.createElement(tagForSupportedInlineStyle(supportedStyle));
154879
+ while (container.firstChild) wrapper.appendChild(container.firstChild);
154880
+ container.appendChild(wrapper);
154881
+ container = wrapper;
154882
+ }
154883
+ }
154884
+ function tagForSupportedInlineStyle(style) {
154885
+ switch (style) {
154886
+ case "bold": return "strong";
154887
+ case "italic": return "em";
154888
+ case "strike": return "s";
154889
+ }
154890
+ }
154891
+ //#endregion
154778
154892
  //#region ../editor/src/primitives/rich-text/useRichTextEditor.ts
154779
154893
  function useRichTextEditor({ content, editable, variant }) {
154780
154894
  const config = richTextConfigs[variant];
@@ -154787,7 +154901,8 @@ function useRichTextEditor({ content, editable, variant }) {
154787
154901
  extensions: config.extensions,
154788
154902
  content: EMPTY_DOC,
154789
154903
  editable,
154790
- immediatelyRender: false
154904
+ immediatelyRender: false,
154905
+ editorProps: { transformPastedHTML: createRichTextPasteHtmlTransformer(config.pastePolicy) }
154791
154906
  }, [config, editable]);
154792
154907
  useEffect(() => {
154793
154908
  if (!editor) return;
@@ -155221,45 +155336,34 @@ const PreviewRichTextEditorInner = ({ path, linkedEntryField, onLinkedEntryField
155221
155336
  className: `relative w-full min-w-0 ${className}`,
155222
155337
  onMouseEnter: () => setIsHovered(true),
155223
155338
  onMouseLeave: () => setIsHovered(false),
155224
- children: [
155225
- /* @__PURE__ */ jsx("style", { children: `
155339
+ children: [/* @__PURE__ */ jsx("style", { children: `
155226
155340
  [data-rb-preview-richtext-editor] .ProseMirror:focus-visible,
155227
155341
  [data-rb-preview-richtext-editor] .ProseMirror *:focus-visible {
155228
155342
  outline: none !important;
155229
155343
  }
155230
- ` }),
155231
- /* @__PURE__ */ jsx("div", {
155232
- className: "absolute inset-x-0 bottom-full mb-2 z-10",
155233
- children: /* @__PURE__ */ jsx(RichTextEditorSurface, {
155234
- editor,
155235
- config,
155236
- isEmpty: false,
155237
- toolbarAlwaysVisible: false,
155238
- toolbarTone: "dark",
155239
- toolbarPortalToChrome: false,
155240
- hideContent: true
155241
- })
155242
- }),
155243
- /* @__PURE__ */ jsx(RichTextEditorSurface, {
155244
- editor,
155245
- config,
155246
- isEmpty,
155247
- className: `relative w-full min-h-[30px] rounded border border-dashed ${showAffordance ? "border-slate-400/75 bg-white/5" : "border-transparent bg-transparent"}`,
155248
- contentClassName: "cursor-text",
155249
- placeholderClassName: "text-gray-400",
155250
- placeholderText: placeholder,
155251
- ariaLabel: ariaLabel ?? placeholder,
155252
- toolbarAlwaysVisible: false,
155253
- toolbarTone: "dark",
155254
- toolbarPortalToChrome: false,
155255
- hideToolbar: true,
155256
- renderContent: (content) => /* @__PURE__ */ jsx("div", {
155257
- className: "relative w-full min-h-[30px] cursor-text",
155258
- style: { borderColor: showAffordance ? previewBorderColor : "transparent" },
155259
- children: content
155260
- })
155344
+ ` }), /* @__PURE__ */ jsx(RichTextEditorSurface, {
155345
+ editor,
155346
+ config,
155347
+ isEmpty,
155348
+ className: `relative w-full min-h-[30px] rounded border border-dashed ${showAffordance ? "border-slate-400/75 bg-white/5" : "border-transparent bg-transparent"}`,
155349
+ contentClassName: "cursor-text",
155350
+ placeholderClassName: "text-gray-400",
155351
+ placeholderText: placeholder,
155352
+ ariaLabel: ariaLabel ?? placeholder,
155353
+ toolbarLayout: {
155354
+ kind: "inline",
155355
+ tone: "dark",
155356
+ visibility: {
155357
+ kind: "controlled",
155358
+ visible: isFocused || isLinkedSidebarFocus
155359
+ }
155360
+ },
155361
+ renderContent: (content) => /* @__PURE__ */ jsx("div", {
155362
+ className: "relative w-full min-h-[30px] cursor-text",
155363
+ style: { borderColor: showAffordance ? previewBorderColor : "transparent" },
155364
+ children: content
155261
155365
  })
155262
- ]
155366
+ })]
155263
155367
  });
155264
155368
  };
155265
155369
  /**