@riverbankcms/sdk 0.108.0 → 0.109.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.
Files changed (189) hide show
  1. package/README.md +21 -1
  2. package/dist/{PreviewEditorSidebar-BBT-kZAM.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +7 -22
  3. package/dist/{PreviewEditorUI-D69xNKT2.mjs → PreviewEditorUI-B7OL4sfR.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-RRu7wyQ5.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CuDjXH6o.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +212 -153
  6. package/dist/{SiteChromeCustomizeContext-BQUY2dEk.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +1919 -1032
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +11244 -10741
  8. package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
  9. package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
  10. package/dist/_dts/api/src/bookingRecords.d.ts +2 -17
  11. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  12. package/dist/_dts/api/src/common/envelope.d.ts +7 -0
  13. package/dist/_dts/api/src/courses.d.ts +1 -0
  14. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
  15. package/dist/_dts/api/src/endpoints.d.ts +35 -0
  16. package/dist/_dts/api/src/index.d.ts +2 -2
  17. package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
  18. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  19. package/dist/_dts/api/src/sdkContracts.d.ts +247 -1
  20. package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
  21. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +1 -5
  22. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +29 -1
  23. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +33 -27
  24. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
  25. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  27. package/dist/_dts/blocks/src/index.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
  29. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
  30. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
  31. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
  32. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
  34. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
  35. package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
  36. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
  38. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
  39. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
  40. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  41. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  42. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
  43. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  44. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
  45. package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
  46. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
  47. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +31 -0
  48. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  49. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  50. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  51. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
  52. package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
  53. package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
  54. package/dist/_dts/content-model/src/index.d.ts +3 -0
  55. package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
  56. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3071 -3157
  57. package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
  58. package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
  59. package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
  60. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
  61. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
  62. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  63. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  64. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
  65. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
  66. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
  67. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
  68. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
  69. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
  70. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
  71. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
  72. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
  73. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
  74. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
  75. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
  76. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
  77. package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
  78. package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
  79. package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
  80. package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
  81. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  82. package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
  83. package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
  84. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  85. package/dist/_dts/sdk/src/client/management/types.d.ts +43 -19
  86. package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
  87. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -0
  88. package/dist/_dts/sdk/src/version.d.ts +1 -1
  89. package/dist/_dts/site-commands/src/commands.d.ts +893 -823
  90. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
  92. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
  93. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
  94. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
  95. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  96. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +44 -32
  97. package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
  98. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
  99. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
  100. package/dist/_dts/theme-core/src/buttons/types.d.ts +101 -83
  101. package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
  102. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  103. package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
  104. package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
  105. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -126
  106. package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
  107. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
  109. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
  110. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
  111. package/dist/_dts/theme-core/src/schema.d.ts +112 -138
  112. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  113. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
  114. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
  115. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
  116. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
  117. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
  118. package/dist/cli/index.mjs +67956 -66745
  119. package/dist/cli/init-docs/content/cli-reference.md +50 -7
  120. package/dist/cli/init-docs/content/content-management.md +7 -4
  121. package/dist/cli/init-docs/content/workflow-publish.md +5 -1
  122. package/dist/client/{DiscountCodeDisclosure-D6TOf6Hi.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
  123. package/dist/client/{EventCombined.client-Dao3zxRk.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
  124. package/dist/client/{EventListing.client-B2NNt4y1.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
  125. package/dist/client/{LeafletStaticMap-BhwFo16w.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
  126. package/dist/client/{MagicLinkForm-BWnB7cMR.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
  127. package/dist/client/{StepIndicator-TzRiQ0BY.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
  128. package/dist/client/{accordion-BPy-AJ4_.mjs → accordion-CeGreumd.mjs} +1 -1
  129. package/dist/client/{bookingForm-BL4PGZds.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
  130. package/dist/client/bookings.mjs +512 -252
  131. package/dist/client/{buttons-EBjyslaX.mjs → buttons-DoFV7KDL.mjs} +493 -230
  132. package/dist/client/{carousel-C2b7Cn9-.mjs → carousel-B2jDtogf.mjs} +1 -1
  133. package/dist/client/{cart-BQcbXIVD.mjs → cart-D-jZ-vaY.mjs} +3 -3
  134. package/dist/client/{checkout-DEmpGRJu.mjs → checkout-Dza-LA7N.mjs} +3 -3
  135. package/dist/client/client.mjs +1673 -785
  136. package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
  137. package/dist/client/{courseRegistration-BqRZPmsq.mjs → courseRegistration-TYkNychb.mjs} +7 -7
  138. package/dist/client/{eventCalendar-B8N_tSl5.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
  139. package/dist/client/{eventCombined-Gjn6gtq7.mjs → eventCombined-mNrpryE9.mjs} +2 -2
  140. package/dist/client/{eventDetails-M-VCxA-r.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
  141. package/dist/client/{eventListing-DR19hqYi.mjs → eventListing-YhKN018y.mjs} +2 -2
  142. package/dist/client/{eventRegistration-BR02a0k3.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
  143. package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
  144. package/dist/client/{form-LY2xIbwg.mjs → form-AcAL45rA.mjs} +2 -2
  145. package/dist/client/{headerSection-CYwwXJfh.mjs → headerSection-uEC52ueD.mjs} +3 -3
  146. package/dist/client/hooks.mjs +890 -497
  147. package/dist/client/{locationMap-DWnBXrFq.mjs → locationMap-_wJDSUYe.mjs} +3 -3
  148. package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
  149. package/dist/client/{newsletterForm-D9s-fQ2P.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
  150. package/dist/client/{pricing-DDq80oYc.mjs → pricing-BSYVghwo.mjs} +1 -1
  151. package/dist/client/{productDetail-B0SbWd45.mjs → productDetail-Dyk90sMs.mjs} +3 -3
  152. package/dist/client/{productList-PwYlZn0y.mjs → productList-BCKThwAI.mjs} +3 -3
  153. package/dist/client/{propsDecoder-BRWBiH7i.mjs → propsDecoder-CkXxkdSR.mjs} +63 -24
  154. package/dist/client/rendering/client.mjs +1034 -486
  155. package/dist/client/rendering/islands.mjs +19 -19
  156. package/dist/client/rendering.mjs +1832 -760
  157. package/dist/client/{shop-CMwZPYME.mjs → shop-DeltVH10.mjs} +6 -6
  158. package/dist/client/{shop-commerce-BuxsFate.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
  159. package/dist/client/{shop-commerce-store-boYlEJ91.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
  160. package/dist/client/{shopShared-D2naaOes.mjs → shopShared-B8v-lH_F.mjs} +2 -2
  161. package/dist/client/{useDiscountCodeUi-D9RHpVoj.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
  162. package/dist/client/{useEventFilters-igGiK1re.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
  163. package/dist/client/{usePolling-CI7MbsFB.mjs → usePolling-Cmh14fc7.mjs} +2 -2
  164. package/dist/preview-next/before-render.mjs +35 -0
  165. package/dist/preview-next/client/runtime.mjs +4 -4
  166. package/dist/preview-next/middleware.mjs +35 -0
  167. package/dist/{previewAuthStore-a_cBD28m.mjs → previewAuthStore-CTO7CRPk.mjs} +35 -0
  168. package/dist/{sdk-runtime-MBzD-GmP.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
  169. package/dist/{separator-5ahRBC85.mjs → separator-CI5wZNXT.mjs} +1 -1
  170. package/dist/server/components.mjs +1832 -784
  171. package/dist/server/config-validation.mjs +890 -497
  172. package/dist/server/config.mjs +890 -497
  173. package/dist/server/data.mjs +890 -497
  174. package/dist/server/date-time.mjs +386 -0
  175. package/dist/server/index.mjs +36 -1
  176. package/dist/server/next.mjs +1868 -785
  177. package/dist/server/page-converter.mjs +849 -285
  178. package/dist/server/prebuild.mjs +1 -1
  179. package/dist/server/rendering/server.mjs +1553 -718
  180. package/dist/server/rendering.mjs +1832 -784
  181. package/dist/server/routing.mjs +933 -522
  182. package/dist/server/server.mjs +929 -501
  183. package/dist/server/theme-bridge.mjs +1408 -392
  184. package/dist/server/theme.mjs +471 -228
  185. package/dist/styles/index.css +5 -0
  186. package/package.json +7 -1
  187. package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
  188. package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
  189. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
@@ -1,7 +1,7 @@
1
1
  "use client";
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";
2
+ import { $ as beginAutosaveBatch, $a as eventPageSizeSchema, $c as getImageUrl, $i as NAV_LINK_PADDING_X_MAP, $l as Popover, $n as useImageResolveContextOptional, $o as resolveEventLinkProps, $r as headingFragment, $s as resolveIconPickerPreset, $t as evaluateVisibility, $u as cva, Ac as XIcon, Ad as parseMediaAssetId, Af as CirclePlus, Ai as formatSiteChromeBackgroundTokenLabel, Al as useBlockContext, An as CSS, Ao as normalizeEventVenueId, Ar as checkoutBlockDefinition, As as getFeatureCardIconCompletion, At as canUndoHistory, Ba as buildOfferingsPreviewRenderStates, Bc as resolveMediaNodeResponsiveImage, Bd as err$2, Bf as ArrowUp, Bi as designRuntimeRulesForTheme, Bl as TooltipContent, Bn as siteHeaderManifest, Bo as normalizeLocationMapProps, Br as buildProductDetailDisplay, Bs as resolveBlockIconRenderValue, Bt as createSnapshotFromPageRecord, Bu as __generator, C as usePreviewThemeOverlay, Ca as foregroundTokenForBackgroundAppearanceColorToken, Cc as MapPinIcon$1, Cd as publicEventPricingMode, Ci as BACKGROUND_POSITION_PRESET_VALUES, Cl as surfaceForegroundDeclarations, Cn as closestCenter, Co as eventSurfaceScopeValues, Cr as getWizardStepsForContext$1, Cs as ICON_CONFIG, Cu as Root, Dc as PlusIcon, Dd as formatCurrencyAmount, Df as CreditCard, Di as resolveBackgroundColorValue, Dl as getModalConfig, Dn as useDroppable, Do as normalizeEventStaffMemberId, Dr as buildCourseRegistrationInteractiveIslandProps, Ds as FEATURE_CARD_GENERATED_ICON_SIZE_PX, Dt as useEditorUiStoreInstance, Du as CardContent, Ec as PlayIcon, Ed as publicEventTicketTypes, Ef as Crop, Ei as resolveSurfaceForegroundStyles, El as getFieldIntent, En as useDraggable, Eo as normalizeEventScheduleScope, Er as courseRegistrationBlockDefinition, Es as mediaSchema, Et as useEditorUiStore, Eu as Card, Fa as ctaButton, Fc as computeMediaTransformStyle, Fd as unsafeAsFormId, Ff as ChevronRight, Fi as normalEditorCuratedPromotedFieldPaths, Fl as mapOptionValueForSelect, Fn as isSupportedLoaderEndpoint, Fo as normalizeCardVariantRole, Fr as buildProductListInteractiveIslandProps, Fs as toFeatureCardIconSuggestionInputs, Ft as unsafeAsLinkedContentEntryId, Fu as DropdownMenuSeparator, Ga as resolveOfferingsPreviewCoursePath, Gc as attachRenderableMediaAssetFields, Gf as __toESM, Gi as pageDesignEditorBackgroundOverrideOwner, Gl as Select, Gn as contentTransforms, Go as formatEventPrice, Gr as buildProductCartItem, Gs as unwrapRichTextRoot, Gt as usePalette, Gu as useId$1, Ha as isOfferingsPreviewSourceKey, Hc as setContextResolveImageUrlContext, Hd as lucide_react_exports, Hf as Archive, Hi as surfaceResolutionContextFromTheme, Hl as TooltipTrigger, Hn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, Ho as formatDate$3, Hr as formatInterval, Hs as parseGeneratedIconSetId, Hu as __rest, Ic as getCurrentResolveImageUrlContext, Id as unsafeAsMediaAssetId, If as ChevronLeft, Ii as planPageDesignLayoutLookCompatibility, Il as unmapValueFromSelect, In as getBlockDefinition, Io as isCssColorLiteral, Ir as buildShopInteractiveIslandProps, Is as buildGeneratedBlockIconRenderAssetLookupFromUnknown, It as recordsEqual, Iu as DropdownMenuTrigger, Ja as resolveOfferingsPreviewGroups, Jc as formatAspectRatioToken, Jd as Ticket, Ji as parseBlockCustomCssRules, Jl as SelectTrigger, Jn as uiTransforms, Jo as formatTime$3, Jr as productItemKey, Js as coerceInlineTextWithFallback, Jt as validateBlockManifestIssues, Ju as useControllableState, Ka as resolveOfferingsPreviewGroupCta, Kc as isRotationDimensionSwap, Ki as getComponentBorderWidthPx, Kl as SelectContent, Kn as mediaTransforms, Ko as formatEventPriceDisplay, Kr as deriveCommerceCheckoutState, Ks as isObjectRecord, Kt as recoveryConflictCopy, Ku as useDirection, Lc as renderAudio, Ld as unsafeAsPassId, Lf as ChevronDown, Li as resolveVisiblePromotedFieldPathsForEditorBlock, Ll as FieldFrame, Ln as listBlockDescriptors, Lo as resolveOnColorForThemeToken, Lr as getShopDisplayForItems, Ls as getBlockIconSemanticId, Lu as __assign, Ma as generateCssVars, Mc as ImagePresets, Md as unsafeAsAppointmentResourceId, Mf as CircleCheck, Mi as compileEditorModelRuntime, Ml as useSdkConfig, Mn as useCombinedRefs, Mo as generateCardCss, Mr as buildCartInteractiveIslandProps, Ms as resolveFeatureCardGeneratedIconSizePx, Mt as pushHistoryEntry, Mu as DropdownMenuContent, Na as createTransformRegistry, Nc as MediaPlaceholder, Nd as unsafeAsAppointmentServiceId, Nf as CircleAlert, Ni as retargetCompiledBoundaryRuntimeForContentAdjacency, Nl as hasEmptyOption, Nn as useIsomorphicLayoutEffect, No as generateShadowValue, Nr as buildCheckoutInteractiveIslandProps, Ns as shouldReserveFeatureCardIconZone, Nt as redoHistory, Nu as DropdownMenuItem, Oc as ShoppingCartIcon, Od as assertNever$5, Of as Copy, Oi as mergeHeaderNavTypographyPreference, Ol as isHeaderField, On as useSensor, Oo as normalizeEventSurfacePresetsCsv, Or as normalizeEventRegistrationPageSurfaceSubject, Os as FEATURE_CARD_ICON_TREATMENTS, Ot as useOptionalEditorUiStoreInstance, Ou as CardHeader, Pa as runTransforms, Pc as buildResolveImageUrlContext, Pd as unsafeAsCustomerPassId, Pf as ChevronsUpDown, Pi as retargetCompiledRuntimeFieldsForContentAdjacency, Pl as mapCurrentValueForSelect, Pn as useUniqueId, Po as normalizeBoxStylesCardVariant, Pr as buildProductDetailInteractiveIslandProps, Ps as suggestSemanticIconForFeatureCard, Pt as undoHistory, Qa as eventListPaginationActionSchema, Qc as getDirectImageUrlForMediaAsset, Qi as NAV_LINK_PADDING_MAP, Qn as ImageResolveContextProvider, Qo as resolveEventCta, Qr as richTextFragment, Qs as isIconPickerPreset, Qt as FormRenderer, Qu as Button, Rc as renderVideo, Rd as unsafeAsPositiveByteCount$1, Rf as Check, Ri as componentRuntimeRulesForTheme, Rl as useField, Rn as projectRecurringSchedule, Ro as resolveTokenOrCssColorValue, Rr as buildCartDisplay, Rs as getGeneratedBlockIconStyleState, Rt as useDebouncedLatestSave, Ru as __awaiter, S as PreviewThemeOverlayProvider, Sa as backgroundAppearanceQuickColorTokenNames, Sc as MailIcon, Sd as publicEventPricingCurrency, Sf as FileArchive, Si as MQ_TABLET_ONLY, Sl as DEFAULT_SURFACE_TEXT_COLOR, Sn as PointerSensor, So as eventScheduleScopeValues, Sr as getStepNumber$1, Ss as ACCORDION_TRIGGER_LETTER_SPACING, St as EntryControllerProvider, Su as Content, Ta as defaultThemeTokens, Tc as PhoneIcon, Td as publicEventScalarPrice, Tf as EllipsisVertical, Ti as boxStylesTransforms, Tl as useBackendWatch, Tn as useDndContext, To as normalizeEventCategoryIdsCsv, Tr as buildGiftingInteractiveIslandProps, Ts as PUBLIC_DOWNLOAD_MEDIA_TYPES, Tu as createCollapsibleScope, Ua as normalizeOfferingsPreviewGroupOrder, Uc as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, Ud as X, Uf as __commonJSMin, Ui as isThemeV2NormalEditorRawStyleFieldName, Ul as Textarea, Un as planSiteOverlayHeaderClearance, Uo as formatEventCompactDateRail, Ur as EMPTY_COMMERCE_CART_STATE, Us as parseSiteIconStyleGuideVersionId, Uu as __spreadArray, Va as inferLegacyOfferingsPreviewGroupOrder, Vc as resolveMediaStorageUrl, Vd as ok$3, Vf as ArrowDown, Vi as getCuratedSiteStyle, Vl as TooltipProvider, Vn as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Vo as toLocationMapHydrationProps, Vr as formatCommercePrice, Vs as parseGeneratedIconAssetId, Vu as __read, Wa as normalizeOfferingsPreviewItemLimit, Wc as resolveMediaSlotContract, Wd as Upload, Wf as __exportAll, Wi as isThemeV2NormalEditorRawStylePath, Wl as Slider, Wn as visibleHeaderClearancePx, Wo as formatEventDateParts, Wr as buildPassCartItem, Ws as createRichTextDocFromMarkdown, Wt as PaletteProvider, Wu as __spreadArrays, Xa as resolveSpacing, Xc as resolveMediaTransformForAspect, Xd as Star, Xi as NAV_LINK_BORDER_RADIUS_MAP, Xl as Label, Xn as createManifestValidator, Xo as getContainerClass, Xr as augmentManifest, Xs as isInlineTextEmpty, Xt as createManifestFormAdapter, Xu as composeEventHandlers, Ya as isSemanticSpacing, Yc as parseAspectRatioValue, Yi as parseCustomCssRules, Yl as SelectValue, Yn as formattingTransforms, Yo as getCardOrientation, Yr as reduceCommerceCart, Ys as inlineTextToPlainText, Yt as ManifestForm, Yu as createContextScope, Za as buildEventRuntimeFilters, Zc as asRecord, Zd as Sparkles, Zi as NAV_LINK_LETTER_SPACING_MAP, Zl as Badge, Zn as isInternalResolvedLinkValue, Zo as groupEventsByDate, Zr as augmentManifestWithStyleGroups, Zs as parseInlineTextFromUnknown, Zu as Primitive, _a as sectionTransitionFamilies, _c as FileArchiveIcon, _d as resolveBookingTimeZoneId, _f as File, _i as MQ_LG_UP, _l as borderColorStyle, _n as DEFAULT_LAUNCH_READINESS_INPUT, _o as el, _r as findPreSelectedEvent, _s as asDesignBlockId, _t as EditorProvider, _u as DialogHeader, ac as ArrowRightIcon, ad as createEditorRemoveBlockCommand, af as Pencil, ai as formEmbedFragment, al as generateButtonCss, an as createBlock, ao as normalizeOptionalId, ar as eventListingBlockDefinition, as as blockBookingPaymentTermsSchema, au as TabsList, b as PreviewDesignCoordinatorProvider, ba as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, bc as FileTextIcon, bd as parseEventPageSurfaceSubject, bf as FilePlay, bi as MQ_SM_DOWN, bl as rgbColorValue, bn as DndContext, bo as bindingSchema, br as resolveRegistrationTarget, bs as ACCORDION_SPACING_MAP, bt as useUISelector, bu as CollapsibleContent, cc as ChevronDownIcon, cd as unsafeAsEditorBlockValues, ci as testimonialsHeadingFragment, cl as featuresFromHex, cn as deleteBlock, co as eventButtonVariantSchema, cr as buildEventCalendarInteractiveIslandProps, cs as defineInteractiveIslandMetaKeys, ct as PreviewRichTextEditor, cu as List, da as GRADIENT_PRESETS, dc as ChevronUpIcon, dd as formatBookingDateTime, df as LoaderCircle, di as ctaRowFragment, dl as generateBaseInteractiveCSS, do as filterAutoShowSchema, dr as formBlockDefinition, ds as defineProgressiveBlockRuntime, dt as useRichTextEditor, du as ScrollableDialogContent, ea as NAV_LINK_TEXT_SIZE_MAP, ec as SEMANTIC_ICON_DEFINITIONS, ed as useComposedRefs, ef as Settings, ei as cardFragment, el as getAtPath, en as createStoreBackend, eo as getEventRuntimeFiltersKey, er as shopBlockDefinition, es as getEventAvailability, et as confirmAutosaveBatch, eu as PopoverContent, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fa as GRADIENT_PRESET_IDS, fc as CircleMinusIcon, fd as formatBookingInstant, ff as Image, fi as heroCopyFragment, fl as generateInteractiveChildInheritanceCSS, fn as mutateBlockContent, fo as previewStageSchema, fr as buildFormInteractiveIslandProps, ft as EMPTY_DOC, fu as Dialog, ga as defaultSectionTransitionVariantForFamily, gc as ExternalLinkIcon, gd as parseBookingLocalDate, gf as GripVertical, gi as siteOptionSources, gl as backgroundColorStyle, gn as decodePublicProductCategorySelectorQuery, go as bind, gr as findEventByOccurrenceId, gs as planSiteChromePlacement, gt as InlineTextEditor, gu as DialogFooter, ha as boundaryRuntimeMetricsForTransition, hc as DownloadIcon, hd as getBookingLocalDateKey, hf as ImageOff, hi as PUBLIC_FILE_FIELD_KINDS, hl as themeButtonClassName, hn as reorderPageSurfaceSlotBlocks, ho as eventCalendarListLayoutOptions, hr as toRegistrationEvents, hs as splitPositioningClasses, ht as insertOrReplaceRichTextImage, hu as DialogDescription, i as usePreviewDesignHistoryOrder, ia as LABEL_FONT_SIZE_MAP, ic as ArrowLeftIcon, id as createEditorInsertBlockCommand, if as Plus, ii as singleButtonFragment, il as AFFORDANCE_SUPPRESS_CLASS, in as getPageDesignEditorState, io as normalizeCsvString, ir as buildNewsletterFormInteractiveIslandProps, is as resolveRuntimeEventPricing, it as rejectAutosaveBatch, iu as TabsContent, jc as createIcon, jd as parseSiteId, jf as CircleMinus, ji as applyCompiledRuntimeFieldsToContent, jl as SdkConfigProvider, jn as isKeyboardEvent, jo as publicEventSchema, jr as cartBlockDefinition, js as parseFeatureCardGeneratedIconSizePx, jt as createHistoryState, ju as DropdownMenu, kc as UploadIcon, kd as expectParsedBrandedId, kf as Clock3, ki as readHeaderNavFontSizePreference, kl as isNonEmptyValue, kn as useSensors, ko as normalizeEventSurfaceScope, kr as resolveEventRegistrationScopedEvents, ks as createFeatureCardIconKey, kt as canRedoHistory, ku as CardTitle, lc as ChevronLeftIcon, ld as addLocalScheduleDays, lf as Minus, li as ctaCopyFragment, ll as generateEffectsCSS, ln as deleteEntrySlotBlock, lo as eventCalendarDefaultViewSchema, lr as buildEventCalendarListingDisplay, ls as createZodCodec, lt as PreviewInlineTextEditor, lu as Root2$1, ma as parseGradientPresetId, mc as ClockIcon$1, md as formatLocalScheduleDate, mf as ImagePlus, mi as defineFragment, ml as parseThemeButtonVariantId, mn as reorderEntrySlotBlocks, mo as eventCalendarListLayoutCompatibleDisplayModeValues, mr as buildEventRegistrationInteractiveIslandProps, ms as markEditableSurfaceForwarding, mt as getRichTextImagePositionFromTarget, mu as DialogContent, n as useSiteChromeCustomizeOptional, na as INPUT_FONT_SIZE_MAP, nc as isSemanticIconId, nd as clsx, nf as RotateCcw, ni as faqHeadingFragment, nn as toRoutableLinkPayload, no as resolveEventListPaginationAction, nr as productDetailBlockDefinition, ns as getLocalDateKey, nt as enqueueTransaction, nu as Input, oc as CalendarIcon$1, od as createEditorReorderBlocksCommand, oi as formCopyFragment, ol as expandPalette, on as createEntrySlotBlock, oo as calendarTabViewsSchema, or as buildEventListingInteractiveIslandProps, os as buildInteractiveIslandProps, ot as resolvePreviewSidebarTab, ou as TabsTrigger, p as reportPreviewDesignError, pa as getGradientPreset, pc as CirclePlusIcon, pd as formatBookingTime, pf as ImageUp, pi as bodyCopyFragment, pl as TokenResolver, pn as reorderBlocks, po as weekStartSchema, pr as eventRegistrationBlockDefinition, ps as composeHeaderSectionWrapperClassName, pt as RichTextEditorSurface, pu as DialogClose, qa as resolveOfferingsPreviewGroupOrderEntries, qc as normalizeRightAngle, qd as Trash2, qi as getComponentShadowVar, ql as SelectItem, qn as layoutTransforms, qo as formatEventTeacherLine, qr as parseStoredCommerceCartState, qs as isRecord$21, qt as unfinishedBlockCopy, qu as createCollection, r as PreviewDesignHistoryOrderProvider, ra as INPUT_SPACING_MAP, rc as ArrowDownIcon, rd as parseFooterModuleId, ri as blogFeaturedPostFragment, rn as applyPageDesignEditorAction, ro as normalizeCsvIds, rr as newsletterSignupBlockDefinition, rs as getLocalMinuteOfDay, rt as idleEditorTransactionQueueState, ru as Tabs, sc as CheckIcon$1, sd as unsafeAsEditorBlockId, si as testimonialsCarouselFragment, sl as getTextColorForBackground, sn as createPageSurfaceSlotBlock, so as columnOptionSchema, sr as eventCalendarBlockDefinition, ss as createInteractiveIslandCodec, su as Content$1, t as SiteChromeCustomizeProvider, ta as FONT_WEIGHT_MAP, tc as getSemanticIconComponent, td as cn$1, tf as Search, ti as faqAccordionFragment, tl as siblingPath$1, tn as listContentTypes, to as resolveEventCalendarListPageSize, tr as productListBlockDefinition, ts as getEventAvailabilityStatus, tt as deriveTransactionCapabilities, tu as PopoverTrigger, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, ua as gradientToCss, uc as ChevronRightIcon, ud as formatBookingDate, ui as heroCtaRowFragment, ul as generateShadowValue$1, un as deletePageSurfaceSlotBlock, uo as eventLayoutSchema, ur as buildEventCalendarListingRender, us as defineClientOwnedBlockRuntime, ut as PreviewTextEditor, uu as Trigger$1, va as sectionTransitionFamilyForBoundaryOptionId, vc as FileAudioIcon, vd as toBookingTimeZone, vf as FileText, vi as MQ_MD_DOWN, vl as cssVarValue, vn as deriveLaunchReadiness, vo as richText, vr as resolveDiscountContext, vs as assertNever$6, vt as useEditor, vu as DialogTitle, wa as parseBackgroundAppearanceColorToken, wc as MinusIcon, wd as publicEventPricingType, wf as EyeOff, wi as getAnchorClasses, wl as surfaceForegroundValue, wn as getClientRect, wo as normalizeEventBlockKind, wr as giftingBlockDefinition, ws as ICON_SIZE_PX, wt as useEntryEditorController, wu as Trigger, xa as backgroundAppearanceColorTokenNames, xc as InfoIcon, xd as formatBookingPriceDisplay, xf as FileHeadphone, xi as MQ_SM_UP, xl as textColorStyle, xn as KeyboardCode, xo as eventBlockKindValues, xr as WIZARD_STEPS$1, xs as ACCORDION_TRIGGER_FONT_SCALE, xt as EditableBlockProvider, ya as sectionTransitionVariantForBoundaryOptionId, yc as FileSpreadsheetIcon, yd as toScheduledBookingDateTime, yf as FileSpreadsheet, yi as MQ_MD_UP, yl as mergeStyles, yn as AMBIENT_BACKGROUND_ROLES$1, yo as when, yr as resolveEventRequiresPayment, ys as ACCORDION_OPEN_ACCENT_THICKNESS, yu as Collapsible, za as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, zc as resolveImageUrlWithContext, zd as unsafeAsPositiveSeconds, zf as Box, zl as Tooltip, zn as siteFooterManifest, zo as buildGoogleMapsDirectionsUrl, zr as buildProductCardDisplay, zs as parseBlockIconValue, zt as createRoutingHelpers, zu as __extends } from "./SiteChromeCustomizeContext-DUpalEdL.mjs";
3
+ import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-D0y2l8JN.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-CTO7CRPk.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";
@@ -28219,9 +28219,9 @@ function appendBackgroundMediaClasses(baseClassName, input) {
28219
28219
  ].filter(Boolean).join(" ");
28220
28220
  }
28221
28221
  function gradientPresetCss(value) {
28222
- if (!isString$1(value)) return null;
28223
- const preset = GRADIENT_PRESETS.find((candidate) => candidate.id === value.trim());
28224
- if (!preset) return null;
28222
+ const presetId = parseGradientPresetId(value);
28223
+ if (!presetId) return null;
28224
+ const preset = getGradientPreset(presetId);
28225
28225
  return gradientToCss(preset, Object.fromEntries(preset.stops.map((stop) => [stop.color, `rgb(var(--tb-${stop.color}))`])));
28226
28226
  }
28227
28227
  const backgroundTransforms = [
@@ -33396,6 +33396,8 @@ function buildThemeCssVars(theme) {
33396
33396
  const inputRadius = mapInputRadius(inputSystem.base.corners, theme.corners);
33397
33397
  return {
33398
33398
  ...generateCssVars(theme.palette),
33399
+ ["--tb-secondaryForeground"]: "var(--tb-onSecondary)",
33400
+ ["--tb-accentForeground"]: "var(--tb-onAccent)",
33399
33401
  ["--tb-scrim"]: "0 0 0",
33400
33402
  ["--tb-shadow"]: "0 0 0",
33401
33403
  ...generateShadowCssVars(theme),
@@ -42052,6 +42054,11 @@ const containerResponsiveThemeCss = `/*
42052
42054
  flex-wrap: wrap;
42053
42055
  }
42054
42056
 
42057
+ /* Text-style CTA actions belong to the section foreground contract. */
42058
+ :where(.theme-scope) [data-block="cta-full"] .cta-row .button-link {
42059
+ color: var(--rb-surface-link-color, var(--rb-surface-text-color, rgb(var(--tb-primary))));
42060
+ }
42061
+
42055
42062
  /* =============================================================================
42056
42063
  * Block: Body Text (content block, Phase 2)
42057
42064
  *
@@ -48281,6 +48288,26 @@ function stripEmptyStringValues(params) {
48281
48288
  function ensureSiteId(params, context) {
48282
48289
  if (!params.siteId && typeof context.siteId === "string" && context.siteId) params.siteId = context.siteId;
48283
48290
  }
48291
+ /**
48292
+ * Map the embed block's author-facing order values onto the public
48293
+ * `listPublishedEntries` `order` contract enum.
48294
+ *
48295
+ * `'order'` ("Custom order field") is the MANUAL-ORDERING axis: it means "render
48296
+ * entries in the content type's author-defined order". It intentionally maps to
48297
+ * `undefined` (endpoint default) here rather than a fixed `manual.asc`, because
48298
+ * this transform is schema-blind — it can't tell whether the embedded content
48299
+ * type actually opts into `ordering.mode: 'manual'`. Forcing `manual.asc` for a
48300
+ * non-manual type would silently flip its default sort (all `manualOrder` values
48301
+ * are equal, so it would degrade to createdAt-asc) — a render regression.
48302
+ *
48303
+ * The manual-ordering HONOR therefore lives server-side where the schema IS
48304
+ * known: `listContentEntries` (content/entries/list.ts) applies `manualOrder ASC`
48305
+ * as the default for manual-ordered types (plan 8.3). That is the path
48306
+ * `block-loaders/content.ts` renders through. The embed/`listPublishedEntries`
48307
+ * loader path (contentEntryLoaders) is not yet schema-aware for its default
48308
+ * ordering; honoring manual order there for the default `'order'` value is a
48309
+ * bounded follow-up (recorded in plan 8.3), not this change.
48310
+ */
48284
48311
  function normalizeOrder(orderBy) {
48285
48312
  switch (orderBy) {
48286
48313
  case "newest": return "published_at.desc";
@@ -55965,7 +55992,8 @@ function validateRelativeStoragePath(value) {
55965
55992
  if (value.startsWith("sites/")) return fail({ tag: "SITE_SCOPED_PATH" });
55966
55993
  if (value.startsWith("/")) return fail({ tag: "LEADING_SLASH" });
55967
55994
  if (value.includes("//")) return fail({ tag: "DOUBLE_SLASH" });
55968
- if (value.split("/").some((segment) => segment === "..")) return fail({ tag: "TRAVERSAL" });
55995
+ if (value.includes("%")) return fail({ tag: "PERCENT_ENCODING" });
55996
+ if (value.split("/").some((segment) => segment === "." || segment === "..")) return fail({ tag: "TRAVERSAL" });
55969
55997
  return ok$1(value);
55970
55998
  }
55971
55999
  function brandRelativeStoragePath(value) {
@@ -57163,124 +57191,85 @@ function BackgroundColorField({ path, backend, config }) {
57163
57191
  //#endregion
57164
57192
  //#region ../block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.tsx
57165
57193
  /**
57166
- * BackgroundGradientWidget
57167
- *
57168
57194
  * Select a curated gradient from the theme-based library.
57169
57195
  * Gradients use theme color tokens, so they adapt to the site's palette.
57170
57196
  */
57171
- function BackgroundGradientWidget(props) {
57172
- const { label, value, onChange, description, error, dataPath } = props;
57197
+ function BackgroundGradientWidget({ label, value, onChange, description, error, dataPath }) {
57173
57198
  const { tokens } = usePalette();
57174
- const [showAdvanced, setShowAdvanced] = useState(false);
57175
- const selectedPresetId = useMemo(() => {
57176
- if (!value) return null;
57177
- return GRADIENT_PRESETS.find((p) => p.type === value.type && p.angle === value.angle && p.position === value.position && p.stops.length === value.stops.length && p.stops.every((stop, i) => stop.color === value.stops[i]?.color && stop.position === value.stops[i]?.position))?.id ?? null;
57178
- }, [value]);
57199
+ const selectedPreset = useMemo(() => value ? GRADIENT_PRESETS.find((preset) => gradientConfigsMatch(preset, value)) ?? null : null, [value]);
57179
57200
  const handleSelectPreset = (presetId) => {
57180
- const preset = GRADIENT_PRESETS.find((p) => p.id === presetId);
57181
- if (!preset) return;
57182
- onChange({
57183
- type: preset.type,
57184
- angle: preset.angle,
57185
- position: preset.position,
57186
- stops: preset.stops
57187
- });
57201
+ onChange(gradientConfigFromPreset(getGradientPreset(presetId)));
57188
57202
  };
57189
- return /* @__PURE__ */ jsxs("div", {
57203
+ return /* @__PURE__ */ jsx(FieldFrame, {
57204
+ fieldPath: dataPath,
57205
+ label,
57206
+ description,
57207
+ error,
57190
57208
  className: "space-y-3",
57191
- "data-path": dataPath,
57192
- children: [
57193
- /* @__PURE__ */ jsxs("div", { children: [
57194
- /* @__PURE__ */ jsx(Label, {
57195
- className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground",
57196
- children: label
57197
- }),
57198
- description ? /* @__PURE__ */ jsx("p", {
57199
- className: "text-xs text-muted-foreground mt-1",
57200
- children: description
57201
- }) : null,
57202
- error ? /* @__PURE__ */ jsx("p", {
57203
- className: "text-xs text-destructive mt-1",
57204
- children: error
57205
- }) : null
57206
- ] }),
57207
- /* @__PURE__ */ jsx("div", {
57209
+ children: ({ id, descriptionId, messageId }) => /* @__PURE__ */ jsxs("div", {
57210
+ className: "space-y-3",
57211
+ children: [/* @__PURE__ */ jsx("div", {
57212
+ role: "group",
57213
+ "aria-label": `${label} presets`,
57214
+ "aria-describedby": [descriptionId, messageId].filter(Boolean).join(" ") || void 0,
57208
57215
  className: "grid grid-cols-2 gap-3 sm:grid-cols-3",
57209
- children: GRADIENT_PRESETS.map((preset) => {
57210
- const isSelected = selectedPresetId === preset.id;
57211
- const cssGradient = gradientToCss({
57212
- type: preset.type,
57213
- angle: preset.angle,
57214
- position: preset.position,
57215
- stops: preset.stops
57216
- }, tokens);
57216
+ children: GRADIENT_PRESETS.map((preset, index) => {
57217
+ const isSelected = selectedPreset?.id === preset.id;
57218
+ const cssGradient = gradientToCss(gradientConfigFromPreset(preset), tokens);
57219
+ const kindLabel = gradientKindLabel$1(preset.type);
57217
57220
  return /* @__PURE__ */ jsxs("button", {
57221
+ id: index === 0 ? id : void 0,
57218
57222
  type: "button",
57223
+ "aria-label": `${preset.name}, ${kindLabel} gradient`,
57224
+ "aria-pressed": isSelected,
57219
57225
  onClick: () => handleSelectPreset(preset.id),
57220
- className: cn$1("group flex flex-col gap-2 rounded-md border p-2 transition", isSelected ? "border-foreground bg-accent/30" : "border-muted-foreground/30 bg-background hover:bg-muted/40"),
57221
- children: [/* @__PURE__ */ jsx("div", {
57226
+ className: cn$1("group flex flex-col gap-2 rounded-md border p-2 text-left transition", isSelected ? "border-foreground bg-accent/30" : "border-muted-foreground/30 bg-background hover:bg-muted/40"),
57227
+ children: [/* @__PURE__ */ jsx("span", {
57228
+ "aria-hidden": "true",
57222
57229
  className: "h-16 w-full rounded-sm",
57223
57230
  style: { background: cssGradient }
57224
- }), /* @__PURE__ */ jsx("div", {
57225
- className: "text-xs font-medium text-foreground text-left",
57226
- children: preset.name
57231
+ }), /* @__PURE__ */ jsxs("span", {
57232
+ className: "space-y-0.5",
57233
+ children: [/* @__PURE__ */ jsx("span", {
57234
+ className: "block text-xs font-medium text-foreground",
57235
+ children: preset.name
57236
+ }), /* @__PURE__ */ jsx("span", {
57237
+ className: "block text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
57238
+ children: kindLabel
57239
+ })]
57227
57240
  })]
57228
57241
  }, preset.id);
57229
57242
  })
57230
- }),
57231
- value ? /* @__PURE__ */ jsxs("div", {
57243
+ }), value ? /* @__PURE__ */ jsxs("p", {
57232
57244
  className: "text-xs text-muted-foreground",
57233
- children: ["Selected: ", selectedPresetId ? GRADIENT_PRESETS.find((p) => p.id === selectedPresetId)?.name : "Custom"]
57234
- }) : null,
57235
- /* @__PURE__ */ jsxs("div", {
57236
- className: "border-t border-border/40 pt-3",
57237
- children: [/* @__PURE__ */ jsxs("button", {
57238
- type: "button",
57239
- onClick: () => setShowAdvanced(!showAdvanced),
57240
- className: "flex items-center gap-2 text-xs font-medium text-muted-foreground hover:text-foreground transition",
57241
- children: [showAdvanced ? /* @__PURE__ */ jsx(ChevronUp, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(ChevronDown, { className: "h-3 w-3" }), "Advanced Settings"]
57242
- }), showAdvanced && value ? /* @__PURE__ */ jsxs("div", {
57243
- className: "mt-3 space-y-3 text-xs",
57244
- children: [
57245
- /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Label, {
57246
- className: "text-xs",
57247
- children: "Type"
57248
- }), /* @__PURE__ */ jsxs("div", {
57249
- className: "mt-1 text-muted-foreground",
57250
- children: [
57251
- value.type === "linear" ? "Linear" : "Radial",
57252
- value.type === "linear" && value.angle !== void 0 ? ` (${value.angle}�)` : "",
57253
- value.type === "radial" && value.position ? ` (${value.position})` : ""
57254
- ]
57255
- })] }),
57256
- /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Label, {
57257
- className: "text-xs",
57258
- children: "Color Stops"
57259
- }), /* @__PURE__ */ jsx("div", {
57260
- className: "mt-1 space-y-1",
57261
- children: value.stops.map((stop, idx) => /* @__PURE__ */ jsxs("div", {
57262
- className: "flex items-center gap-2 text-muted-foreground",
57263
- children: [
57264
- /* @__PURE__ */ jsx("span", {
57265
- className: "h-3 w-3 rounded-full border border-border/50",
57266
- style: { backgroundColor: tokens[stop.color] ?? "#000000" }
57267
- }),
57268
- /* @__PURE__ */ jsx("span", { children: stop.color }),
57269
- /* @__PURE__ */ jsx("span", { children: "�" }),
57270
- /* @__PURE__ */ jsxs("span", { children: [stop.position, "%"] })
57271
- ]
57272
- }, idx))
57273
- })] }),
57274
- /* @__PURE__ */ jsx("p", {
57275
- className: "text-muted-foreground",
57276
- children: "To customize gradient angles, positions, or add/remove color stops, select a preset as a starting point. Full customization coming soon."
57277
- })
57278
- ]
57279
- }) : null]
57280
- })
57281
- ]
57245
+ "aria-live": "polite",
57246
+ children: ["Selected gradient: ", selectedPreset ? `${selectedPreset.name} · ${gradientKindLabel$1(selectedPreset.type)}` : "Custom"]
57247
+ }) : null]
57248
+ })
57282
57249
  });
57283
57250
  }
57251
+ function gradientConfigFromPreset(preset) {
57252
+ return {
57253
+ type: preset.type,
57254
+ angle: preset.angle,
57255
+ shape: preset.shape,
57256
+ position: preset.position,
57257
+ stops: preset.stops.map((stop) => ({ ...stop }))
57258
+ };
57259
+ }
57260
+ function gradientConfigsMatch(preset, value) {
57261
+ return preset.type === value.type && preset.angle === value.angle && radialShape(preset) === radialShape(value) && preset.position === value.position && preset.stops.length === value.stops.length && preset.stops.every((stop, index) => stop.color === value.stops[index]?.color && stop.position === value.stops[index]?.position);
57262
+ }
57263
+ function radialShape(config) {
57264
+ return config.type === "radial" ? config.shape ?? "circle" : config.shape;
57265
+ }
57266
+ function gradientKindLabel$1(type) {
57267
+ switch (type) {
57268
+ case "linear": return "Linear";
57269
+ case "radial": return "Radial";
57270
+ case "conic": return "Conic";
57271
+ }
57272
+ }
57284
57273
  //#endregion
57285
57274
  //#region ../block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.tsx
57286
57275
  /**
@@ -57318,12 +57307,7 @@ function BackgroundGradientField({ path, backend, config }) {
57318
57307
  function findPresetFromCss(css, tokens) {
57319
57308
  if (!css) return null;
57320
57309
  for (const preset of GRADIENT_PRESETS) {
57321
- const presetConfig = {
57322
- type: preset.type,
57323
- angle: preset.angle,
57324
- position: preset.position,
57325
- stops: preset.stops
57326
- };
57310
+ const presetConfig = gradientConfigFromPreset(preset);
57327
57311
  if (gradientToCss(presetConfig, tokens) === css) return presetConfig;
57328
57312
  }
57329
57313
  return null;
@@ -64519,14 +64503,7 @@ const IMAGE_BACKGROUND_TREATMENT = {
64519
64503
  minContrastRatio: BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO,
64520
64504
  minOverlayOpacity: .64
64521
64505
  };
64522
- const gradientPresetIds = GRADIENT_PRESETS.map((preset) => preset.id);
64523
- const gradientPresetIdSet = new Set(gradientPresetIds);
64524
- function parseGradientPresetId(value) {
64525
- if (typeof value !== "string") return null;
64526
- const normalized = value.trim();
64527
- if (!gradientPresetIdSet.has(normalized)) return null;
64528
- return normalized;
64529
- }
64506
+ const gradientPresetIds = GRADIENT_PRESET_IDS;
64530
64507
  function backgroundModeForOverride(override) {
64531
64508
  return override.kind;
64532
64509
  }
@@ -64620,7 +64597,27 @@ function backgroundCapabilityFromModes(modeCapabilities) {
64620
64597
  };
64621
64598
  }
64622
64599
  function parseBackgroundOverrideFromContent(content) {
64623
- return parseBackgroundOverride((isRecord$9(content._sectionStyles) ? content._sectionStyles : null)?.background);
64600
+ const source = parseCanonicalSectionBackground(content);
64601
+ return source.kind === "page-design-override" ? source.parsed : {
64602
+ kind: "supported",
64603
+ override: DEFAULT_BACKGROUND_OVERRIDE
64604
+ };
64605
+ }
64606
+ /**
64607
+ * Classifies persisted content before runtime Look decoration is considered.
64608
+ * Only the explicit owner marker can make a background a page-design override.
64609
+ */
64610
+ function parseCanonicalSectionBackground(content) {
64611
+ const background = (isRecord$9(content._sectionStyles) ? content._sectionStyles : null)?.background;
64612
+ if (background === null || background === void 0) return { kind: "none" };
64613
+ if (!isRecord$9(background) || background.contentOwner !== "page-design-editor") return {
64614
+ kind: "block-authored",
64615
+ background: isRecord$9(background) ? background : {}
64616
+ };
64617
+ return {
64618
+ kind: "page-design-override",
64619
+ parsed: parseBackgroundOverride(background)
64620
+ };
64624
64621
  }
64625
64622
  function parseBackgroundOverride(value) {
64626
64623
  if (value === null || value === void 0) return {
@@ -64727,11 +64724,15 @@ function serializeBackgroundOverride(override) {
64727
64724
  headingColor: foregroundToken
64728
64725
  };
64729
64726
  }
64730
- case "gradient": return {
64731
- contentOwner: pageDesignEditorBackgroundOverrideOwner,
64732
- type: "gradient",
64733
- gradientPresetId: override.gradientId
64734
- };
64727
+ case "gradient": {
64728
+ const foreground = getGradientPreset(override.gradientId).foreground;
64729
+ return {
64730
+ contentOwner: pageDesignEditorBackgroundOverrideOwner,
64731
+ type: "gradient",
64732
+ gradientPresetId: override.gradientId,
64733
+ ...foreground
64734
+ };
64735
+ }
64735
64736
  case "image": return {
64736
64737
  contentOwner: pageDesignEditorBackgroundOverrideOwner,
64737
64738
  type: "image",
@@ -68569,10 +68570,10 @@ function LinkedEntryEditEventBridge() {
68569
68570
  //#region ../preview-next/src/client/preview/PreviewShellLayout.tsx
68570
68571
  const previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
68571
68572
  const PreviewEditorSidebar = React.lazy(async () => {
68572
- return { default: (await import("./PreviewEditorSidebar-BBT-kZAM.mjs")).PreviewEditorSidebar };
68573
+ return { default: (await import("./PreviewEditorSidebar-DWqwfy3_.mjs")).PreviewEditorSidebar };
68573
68574
  });
68574
68575
  const PreviewEditorUI = React.lazy(async () => {
68575
- return { default: (await import("./PreviewEditorUI-D69xNKT2.mjs")).PreviewEditorUI };
68576
+ return { default: (await import("./PreviewEditorUI-B7OL4sfR.mjs")).PreviewEditorUI };
68576
68577
  });
68577
68578
  const previewPaneContainmentStyle = {
68578
68579
  contain: "layout paint",
@@ -70069,30 +70070,81 @@ function BackgroundChooser({ capability, current, imagePoolStatus, onChoose }) {
70069
70070
  })(event);
70070
70071
  }
70071
70072
  });
70072
- const renderGradientOptions = () => capability.gradientIds?.length ? /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
70073
- className: "mb-1 text-xs font-medium text-muted-foreground",
70074
- children: "Gradients"
70075
- }), /* @__PURE__ */ jsx("div", {
70076
- className: "space-y-1",
70077
- children: capability.gradientIds.map((gradientId) => /* @__PURE__ */ jsx("button", {
70078
- type: "button",
70079
- className: `w-full rounded-md border px-2 py-1 text-left text-xs hover:bg-muted ${current.kind === "gradient" && current.gradientId === gradientId ? "border-foreground" : "bg-background"}`,
70080
- onClick: chooseFromClick({
70081
- kind: "gradient",
70082
- gradientId
70083
- }),
70084
- children: /* @__PURE__ */ jsxs("span", {
70085
- className: "flex items-center gap-2",
70073
+ const renderGradientOptions = () => capability.gradientIds?.length ? /* @__PURE__ */ jsxs("div", { children: [
70074
+ /* @__PURE__ */ jsx("div", {
70075
+ className: "mb-1 text-xs font-medium text-muted-foreground",
70076
+ children: "Gradients"
70077
+ }),
70078
+ /* @__PURE__ */ jsx("p", {
70079
+ className: "mb-2 text-[11px] leading-4 text-muted-foreground",
70080
+ children: "Curated presets use this site's colours. The full section preview shows the final result."
70081
+ }),
70082
+ /* @__PURE__ */ jsx("div", {
70083
+ className: "grid grid-cols-2 gap-2",
70084
+ children: capability.gradientIds.map((gradientId) => {
70085
+ const preset = getGradientPreset(gradientId);
70086
+ const kindLabel = gradientKindLabel(preset);
70087
+ const selected = current.kind === "gradient" && current.gradientId === gradientId;
70088
+ return /* @__PURE__ */ jsxs("button", {
70089
+ type: "button",
70090
+ "aria-label": `Choose ${preset.name}, ${kindLabel}`,
70091
+ "aria-pressed": selected,
70092
+ className: `overflow-hidden rounded-md border text-left text-xs transition hover:border-muted-foreground ${selected ? "border-foreground ring-1 ring-foreground" : "bg-background"}`,
70093
+ onClick: chooseFromClick({
70094
+ kind: "gradient",
70095
+ gradientId
70096
+ }),
70097
+ children: [/* @__PURE__ */ jsx("span", {
70098
+ "aria-hidden": "true",
70099
+ className: "block h-14 w-full border-b",
70100
+ style: { backgroundImage: gradientPreviewCss(gradientId) }
70101
+ }), /* @__PURE__ */ jsxs("span", {
70102
+ className: "relative block min-w-0 px-2 py-1.5",
70103
+ children: [
70104
+ /* @__PURE__ */ jsx("span", {
70105
+ className: "block truncate font-medium",
70106
+ children: preset.name
70107
+ }),
70108
+ /* @__PURE__ */ jsx("span", {
70109
+ className: "block text-[10px] text-muted-foreground",
70110
+ children: kindLabel
70111
+ }),
70112
+ selected ? /* @__PURE__ */ jsx("span", {
70113
+ "aria-hidden": "true",
70114
+ className: "absolute right-2 top-1.5 grid h-4 w-4 place-items-center rounded-full bg-foreground text-[10px] text-background",
70115
+ children: "✓"
70116
+ }) : null
70117
+ ]
70118
+ })]
70119
+ }, gradientId);
70120
+ })
70121
+ }),
70122
+ current.kind === "gradient" ? /* @__PURE__ */ jsxs("div", {
70123
+ className: "mt-2 flex items-center justify-between gap-2 border-t pt-2",
70124
+ children: [/* @__PURE__ */ jsxs("span", {
70125
+ className: "flex min-w-0 items-center gap-2",
70086
70126
  children: [/* @__PURE__ */ jsx("span", {
70087
- className: "h-4 w-8 shrink-0 rounded border",
70088
- style: { backgroundImage: gradientPreviewCss(gradientId) }
70089
- }), /* @__PURE__ */ jsx("span", {
70090
- className: "truncate",
70091
- children: gradientLabel(gradientId)
70127
+ "aria-hidden": "true",
70128
+ className: "h-7 w-10 shrink-0 rounded border",
70129
+ style: { backgroundImage: gradientPreviewCss(current.gradientId) }
70130
+ }), /* @__PURE__ */ jsxs("span", {
70131
+ className: "min-w-0",
70132
+ children: [/* @__PURE__ */ jsx("span", {
70133
+ className: "block truncate text-xs font-medium",
70134
+ children: gradientLabel(current.gradientId)
70135
+ }), /* @__PURE__ */ jsx("span", {
70136
+ className: "block text-[10px] text-muted-foreground",
70137
+ children: "Selected for this section"
70138
+ })]
70092
70139
  })]
70093
- })
70094
- }, gradientId))
70095
- })] }) : null;
70140
+ }), capability.modes.includes("default") ? /* @__PURE__ */ jsx("button", {
70141
+ type: "button",
70142
+ className: "shrink-0 rounded px-1.5 py-1 text-xs font-medium hover:bg-muted",
70143
+ onClick: chooseFromClick(defaultBackgroundOverrideForMode("default", capability)),
70144
+ children: "Use default"
70145
+ }) : null]
70146
+ }) : null
70147
+ ] }) : null;
70096
70148
  const renderImageOptions = () => capability.modes.includes("image") ? /* @__PURE__ */ jsxs("div", { children: [
70097
70149
  /* @__PURE__ */ jsx("div", {
70098
70150
  className: "mb-1 text-xs font-medium text-muted-foreground",
@@ -70324,7 +70376,15 @@ function backgroundModeLabel(mode) {
70324
70376
  return mode === "default" ? "Default" : formatVariantLabel(mode);
70325
70377
  }
70326
70378
  function gradientLabel(gradientId) {
70327
- return GRADIENT_PRESETS.find((preset) => preset.id === gradientId)?.name ?? formatVariantLabel(gradientId);
70379
+ return getGradientPreset(gradientId).name;
70380
+ }
70381
+ function gradientKindLabel(preset) {
70382
+ switch (preset.type) {
70383
+ case "linear": return "Linear";
70384
+ case "radial": return "Radial · top";
70385
+ case "conic": return "Conic";
70386
+ default: return assertNever$6(preset.type, "Unhandled gradient preset type");
70387
+ }
70328
70388
  }
70329
70389
  function imageSourceLabel(source) {
70330
70390
  switch (source) {
@@ -70338,8 +70398,7 @@ function tokenSwatchCss(token) {
70338
70398
  return `rgb(var(--tb-${token}))`;
70339
70399
  }
70340
70400
  function gradientPreviewCss(gradientId) {
70341
- const preset = GRADIENT_PRESETS.find((candidate) => candidate.id === gradientId);
70342
- if (!preset) return "linear-gradient(135deg, rgb(var(--tb-primary)), rgb(var(--tb-secondary)))";
70401
+ const preset = getGradientPreset(gradientId);
70343
70402
  return gradientToCss(preset, Object.fromEntries(preset.stops.map((stop) => [stop.color, tokenSwatchCss(stop.color)])));
70344
70403
  }
70345
70404
  function readBackgroundColorPaletteSnapshot() {