@riverbankcms/sdk 0.109.0 → 0.111.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 (186) hide show
  1. package/dist/{PreviewEditorSidebar-DWqwfy3_.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +178 -117
  2. package/dist/{PreviewEditorUI-B7OL4sfR.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
  3. package/dist/{PreviewQueryProvider-D0y2l8JN.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-D8Gt9Gbe.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +229 -219
  5. package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +1695 -2169
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +1716 -76
  7. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
  8. package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
  9. package/dist/_dts/api/src/courses.d.ts +30 -15
  10. package/dist/_dts/api/src/endpoints.d.ts +14 -4
  11. package/dist/_dts/api/src/index.d.ts +2 -2
  12. package/dist/_dts/api/src/sdkContracts.d.ts +23 -11
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  14. package/dist/_dts/api/src/siteOperations.d.ts +11 -19
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -6
  16. package/dist/_dts/api/src/webhooks.d.ts +98 -1
  17. package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
  18. package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
  19. package/dist/_dts/blocks/src/client.d.ts +4 -1
  20. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  21. package/dist/_dts/blocks/src/index.d.ts +3 -1
  22. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -1
  23. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +2 -4
  25. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -1
  26. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
  27. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
  30. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -1
  31. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -1
  32. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  33. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
  34. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
  35. package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
  36. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +2 -1
  37. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
  38. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -18
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -9
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
  43. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
  45. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
  47. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
  53. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
  54. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -3
  56. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
  57. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
  59. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
  60. package/dist/_dts/content-editor/src/index.d.ts +12 -12
  61. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
  62. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -53
  63. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
  66. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
  67. package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
  68. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
  70. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
  71. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
  72. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
  73. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -7
  74. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
  75. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
  76. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
  77. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
  78. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
  79. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
  80. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  81. package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
  82. package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
  83. package/dist/_dts/sdk/src/client/management/types.d.ts +2 -1
  84. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
  85. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
  86. package/dist/_dts/sdk/src/version.d.ts +1 -1
  87. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  88. package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
  89. package/dist/_dts/site-commands/src/commands.d.ts +129 -6
  90. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
  92. package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
  93. package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
  94. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
  95. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
  96. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
  97. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
  98. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
  99. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
  100. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
  101. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
  102. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +4 -4
  103. package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
  104. package/dist/cli/index.mjs +1760 -1914
  105. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
  106. package/dist/client/{DiscountCodeDisclosure-DU1ygxU2.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
  107. package/dist/client/{EventCombined.client-DB5zagCo.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
  108. package/dist/client/{EventListing.client-CTX9JHBL.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
  109. package/dist/client/{LeafletStaticMap-BYImhgiB.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
  110. package/dist/client/{MagicLinkForm-CRkw_M3l.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
  111. package/dist/client/{StepIndicator-BnmVBJJh.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
  112. package/dist/client/{accordion-CeGreumd.mjs → accordion-D8JTs2Si.mjs} +1 -1
  113. package/dist/client/{bookingForm-CSzFNrpN.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
  114. package/dist/client/bookings.mjs +3069 -1447
  115. package/dist/client/{carousel-B2jDtogf.mjs → carousel-DMr_QWlz.mjs} +1 -1
  116. package/dist/client/{cart-D-jZ-vaY.mjs → cart-DWMbfBdR.mjs} +3 -3
  117. package/dist/client/{checkout-Dza-LA7N.mjs → checkout-zmfdkXLx.mjs} +3 -3
  118. package/dist/client/client.mjs +1732 -1913
  119. package/dist/client/{colorStyles-CrgzoXsm.mjs → colorStyles-gcTh5yZT.mjs} +2 -12
  120. package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
  121. package/dist/client/{courseRegistration-TYkNychb.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
  122. package/dist/client/{eventCalendar-BI_90SsT.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
  123. package/dist/client/{eventCombined-mNrpryE9.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
  124. package/dist/client/{eventDetails-D4GVlCIY.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
  125. package/dist/client/{eventListing-YhKN018y.mjs → eventListing-W1SuL7EP.mjs} +2 -2
  126. package/dist/client/{eventRegistration-CdHGtilr.mjs → eventRegistration-ClWricui.mjs} +6 -7
  127. package/dist/client/{form-AcAL45rA.mjs → form--eKPwAAD.mjs} +1 -2
  128. package/dist/client/{headerSection-uEC52ueD.mjs → headerSection-BSeGr-FS.mjs} +2 -3
  129. package/dist/client/hooks.mjs +1554 -1871
  130. package/dist/client/{locationMap-_wJDSUYe.mjs → locationMap-BpOrtNYn.mjs} +8 -5
  131. package/dist/client/{media-BK0O3b-U.mjs → media-DoF0dcVx.mjs} +2 -2
  132. package/dist/client/{newsletterForm-DrArsb2B.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
  133. package/dist/client/{pricing-BSYVghwo.mjs → pricing-BTjSDDr4.mjs} +1 -1
  134. package/dist/client/{productDetail-Dyk90sMs.mjs → productDetail-ICnVTcCg.mjs} +3 -3
  135. package/dist/client/{productList-BCKThwAI.mjs → productList-ZHr6D604.mjs} +3 -3
  136. package/dist/client/{propsDecoder-CkXxkdSR.mjs → propsDecoder-wWN0tBDF.mjs} +2351 -129
  137. package/dist/client/rendering/client.mjs +1664 -1824
  138. package/dist/client/rendering/islands.mjs +20 -20
  139. package/dist/client/rendering.mjs +1697 -1909
  140. package/dist/client/{shop-DeltVH10.mjs → shop-C1u_BUn0.mjs} +5 -6
  141. package/dist/client/{shop-commerce-BD9Jsm2Z.mjs → shop-commerce-CleZdRha.mjs} +5 -6
  142. package/dist/client/{shop-commerce-store-CmXD6FDS.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
  143. package/dist/client/{shopShared-B8v-lH_F.mjs → shopShared-CPhByt2a.mjs} +3 -3
  144. package/dist/client/{useDiscountCodeUi-DbWJN8ld.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
  145. package/dist/client/{useEventFilters-EJIMUnqT.mjs → useEventFilters-DKPN7hSY.mjs} +26 -27
  146. package/dist/client/{usePolling-Cmh14fc7.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
  147. package/dist/preview-next/before-render.mjs +37 -6
  148. package/dist/preview-next/client/runtime.mjs +4 -4
  149. package/dist/preview-next/middleware.mjs +37 -6
  150. package/dist/{previewAuthStore-CTO7CRPk.mjs → previewAuthStore-BkT1D06A.mjs} +37 -6
  151. package/dist/{sdk-runtime-Dou0GAav.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
  152. package/dist/{separator-CI5wZNXT.mjs → separator-Bln8izQ9.mjs} +1 -1
  153. package/dist/server/components.mjs +1472 -1788
  154. package/dist/server/config-validation.mjs +1559 -1876
  155. package/dist/server/config.mjs +1559 -1876
  156. package/dist/server/data.mjs +1554 -1871
  157. package/dist/server/index.mjs +38 -7
  158. package/dist/server/next/revalidate.mjs +53 -1
  159. package/dist/server/next.mjs +1584 -1869
  160. package/dist/server/page-converter.mjs +1543 -1860
  161. package/dist/server/prebuild.mjs +1 -1
  162. package/dist/server/rendering/server.mjs +1472 -1788
  163. package/dist/server/rendering.mjs +1472 -1788
  164. package/dist/server/routing.mjs +1600 -1891
  165. package/dist/server/server.mjs +1574 -1860
  166. package/dist/server/theme-bridge.mjs +1436 -1619
  167. package/dist/server/theme.mjs +1345 -1241
  168. package/dist/server/webhooks.mjs +54 -2
  169. package/package.json +1 -1
  170. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
  171. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
  172. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
  173. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
  174. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
  175. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
  176. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
  177. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
  178. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
  179. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
  180. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
  181. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
  182. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
  183. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
  184. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -285
  185. package/dist/client/buttons-DoFV7KDL.mjs +0 -2115
  186. package/dist/client/foregroundContract-xICPq59x.mjs +0 -31
@@ -1,7 +1,7 @@
1
1
  "use client";
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";
2
+ import { $ as confirmAutosaveBatch, $a as resolveEventListPaginationAction, $c as getImageUrl, $d as Sparkles, $i as NAV_LINK_TEXT_SIZE_MAP, $l as Badge, $n as shopBlockDefinition, $o as getLocalDateKey, $r as cardFragment, $s as resolveIconPickerPreset, $t as createStoreBackend, $u as Primitive, Aa as createTransformRegistry, Ac as XIcon, Ad as assertNever$5, Af as Copy, Ai as applyCompiledRuntimeFieldsToContent, Al as isHeaderField, An as isKeyboardEvent, Ao as generateShadowValue, Ar as cartBlockDefinition, As as shouldReserveFeatureCardIconZone, At as createHistoryState, Au as CardHeader, Ba as normalizeOfferingsPreviewGroupOrder, Bc as resolveMediaNodeResponsiveImage, Bd as unsafeAsPositiveByteCount$1, Bf as Check, Bi as getCuratedSiteStyle, Bl as useField, Bn as SITE_CHROME_VISIBLE_HEADER_SELECTOR, Bo as formatEventCompactDateRail, Br as formatCommercePrice, Bs as parseSiteIconStyleGuideVersionId, Bu as __awaiter, Cc as MapPinIcon$1, Cd as formatBookingPriceDisplay, Cf as FileHeadphone, Ci as getAnchorClasses, Cl as textColorStyle, Cn as getClientRect, Co as normalizeEventScheduleScope, Cr as giftingBlockDefinition, Cs as mediaSchema, Ct as useEntryEditorController, Dc as PlusIcon, Dd as publicEventScalarPrice, Df as EllipsisVertical, Di as mergeHeaderNavTypographyPreference, Dl as useBackendWatch, Dn as useSensor, Do as normalizeEventVenueId, Dr as normalizeEventRegistrationPageSurfaceSubject, Ds as getFeatureCardIconCompletion, Dt as useOptionalEditorUiStoreInstance, Du as createCollapsibleScope, Ec as PlayIcon, Ed as publicEventPricingType, Ef as EyeOff, Ei as resolveBackgroundColorValue, El as surfaceForegroundValue, En as useDroppable, Eo as normalizeEventSurfaceScope, Er as buildCourseRegistrationInteractiveIslandProps, Es as createFeatureCardIconKey, Et as useEditorUiStoreInstance, Eu as Trigger, Fc as computeMediaTransformStyle, Fd as unsafeAsAppointmentServiceId, Ff as CircleAlert, Fi as planPageDesignLayoutLookCompatibility, Fl as hasEmptyOption, Fn as getBlockDefinition, Fo as resolveTokenOrCssColorValue, Fr as buildShopInteractiveIslandProps, Fs as getGeneratedBlockIconStyleState, Ft as recordsEqual, Fu as DropdownMenuItem, Ga as resolveOfferingsPreviewGroups, Gc as attachRenderableMediaAssetFields, Gd as X, Gf as __commonJSMin, Gi as getComponentBorderWidthPx, Gl as Textarea, Gn as mediaTransforms, Go as formatTime$3, Gr as deriveCommerceCheckoutState, Gs as coerceInlineTextWithFallback, Gt as recoveryConflictCopy, Gu as __spreadArray, Ha as resolveOfferingsPreviewCoursePath, Hc as setContextResolveImageUrlContext, Hd as err$2, Hf as ArrowUp, Hi as isThemeV2NormalEditorRawStyleFieldName, Hl as TooltipContent, Hn as planSiteOverlayHeaderClearance, Ho as formatEventPrice, Hr as EMPTY_COMMERCE_CART_STATE, Hs as unwrapRichTextRoot, Hu as __generator, Ia as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Ic as getCurrentResolveImageUrlContext, Id as unsafeAsCustomerPassId, If as ChevronsUpDown, Ii as resolveVisiblePromotedFieldPathsForEditorBlock, Il as mapCurrentValueForSelect, In as listBlockDescriptors, Io as buildGoogleMapsDirectionsUrl, Ir as getShopDisplayForItems, Is as parseBlockIconValue, Ja as buildEventRuntimeFilters, Jc as formatAspectRatioToken, Ji as parseCustomCssRules, Jl as SelectContent, Jn as formattingTransforms, Jo as groupEventsByDate, Jr as reduceCommerceCart, Js as parseInlineTextFromUnknown, Jt as ManifestForm, Ju as useDirection, Ka as isSemanticSpacing, Kc as isRotationDimensionSwap, Kd as Upload, Kf as __exportAll, Ki as getComponentShadowVar, Kl as Slider, Kn as layoutTransforms, Ko as getCardOrientation, Kr as parseStoredCommerceCartState, Ks as inlineTextToPlainText, Kt as unfinishedBlockCopy, Ku as __spreadArrays, La as buildOfferingsPreviewRenderStates, Lc as renderAudio, Ld as unsafeAsFormId, Lf as ChevronRight, Li as componentRuntimeRulesForTheme, Ll as mapOptionValueForSelect, Ln as projectRecurringSchedule, Lo as normalizeLocationMapProps, Lr as buildCartDisplay, Ls as resolveBlockIconRenderValue, Lt as useDebouncedLatestSave, Lu as DropdownMenuSeparator, Ma as ctaButton, Mc as ImagePresets, Md as parseMediaAssetId, Mf as CirclePlus, Mi as retargetCompiledBoundaryRuntimeForContentAdjacency, Ml as useBlockContext, Mn as useIsomorphicLayoutEffect, Mo as normalizeCardVariantRole, Mr as buildCheckoutInteractiveIslandProps, Ms as toFeatureCardIconSuggestionInputs, Mt as redoHistory, Nc as MediaPlaceholder, Nd as parseSiteId, Nf as CircleMinus, Ni as retargetCompiledRuntimeFieldsForContentAdjacency, Nl as SdkConfigProvider, Nn as useUniqueId, No as isCssColorLiteral, Nr as buildProductDetailInteractiveIslandProps, Ns as buildGeneratedBlockIconRenderAssetLookupFromUnknown, Nt as undoHistory, Nu as DropdownMenu, Oc as ShoppingCartIcon, Od as publicEventTicketTypes, Of as Crop, Oi as readHeaderNavFontSizePreference, Ol as getFieldIntent, On as useSensors, Oo as publicEventSchema, Or as resolveEventRegistrationScopedEvents, Os as parseFeatureCardGeneratedIconSizePx, Ot as canRedoHistory, Ou as Card, Pc as buildResolveImageUrlContext, Pd as unsafeAsAppointmentResourceId, Pf as CircleCheck, Pi as normalEditorCuratedPromotedFieldPaths, Pl as useSdkConfig, Pn as isSupportedLoaderEndpoint, Po as resolveOnColorForThemeToken, Pr as buildProductListInteractiveIslandProps, Ps as getBlockIconSemanticId, Pt as unsafeAsLinkedContentEntryId, Pu as DropdownMenuContent, Q as beginAutosaveBatch, Qa as resolveEventCalendarListPageSize, Qc as getDirectImageUrlForMediaAsset, Qd as Star, Qi as NAV_LINK_PADDING_X_MAP, Ql as Label, Qn as useImageResolveContextOptional, Qo as getEventAvailabilityStatus, Qr as headingFragment, Qs as isIconPickerPreset, Qt as evaluateVisibility, Qu as composeEventHandlers, Ra as inferLegacyOfferingsPreviewGroupOrder, Rc as renderVideo, Rd as unsafeAsMediaAssetId, Rf as ChevronLeft, Rl as unmapValueFromSelect, Rn as siteFooterManifest, Ro as toLocationMapHydrationProps, Rr as buildProductCardDisplay, Rs as parseGeneratedIconAssetId, Rt as createRoutingHelpers, Ru as DropdownMenuTrigger, S as usePreviewThemeOverlay, Sa as defaultThemeTokens, Sc as MailIcon, Sd as parseEventPageSurfaceSubject, Sf as FilePlay, Si as BACKGROUND_POSITION_PRESET_VALUES, Sl as rgbColorValue, Sn as closestCenter, So as normalizeEventCategoryIdsCsv, Sr as getWizardStepsForContext$1, Ss as PUBLIC_DOWNLOAD_MEDIA_TYPES, Su as CollapsibleContent, Tc as PhoneIcon, Td as publicEventPricingMode, Ti as resolveSurfaceForegroundStyles, Tl as surfaceForegroundDeclarations, Tn as useDraggable, To as normalizeEventSurfacePresetsCsv, Tr as courseRegistrationBlockDefinition, Ts as FEATURE_CARD_ICON_TREATMENTS, Tt as useEditorUiStore, Tu as Root, Ua as resolveOfferingsPreviewGroupCta, Uc as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, Ud as ok$3, Uf as ArrowDown, Ui as isThemeV2NormalEditorRawStylePath, Ul as TooltipProvider, Un as visibleHeaderClearancePx, Uo as formatEventPriceDisplay, Ur as buildPassCartItem, Us as isObjectRecord, Ut as PaletteProvider, Uu as __read, Va as normalizeOfferingsPreviewItemLimit, Vc as resolveMediaStorageUrl, Vd as unsafeAsPositiveSeconds, Vf as Box, Vi as surfaceResolutionContextFromTheme, Vl as Tooltip, Vn as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, Vo as formatEventDateParts, Vr as formatInterval, Vs as createRichTextDocFromMarkdown, Vu as __extends, Wa as resolveOfferingsPreviewGroupOrderEntries, Wc as resolveMediaSlotContract, Wd as lucide_react_exports, Wf as Archive, Wi as pageDesignEditorBackgroundOverrideOwner, Wl as TooltipTrigger, Wn as contentTransforms, Wo as formatEventTeacherLine, Wr as buildProductCartItem, Ws as isRecord$20, Wt as usePalette, Wu as __rest, Xa as eventPageSizeSchema, Xc as resolveMediaTransformForAspect, Xd as Ticket, Xi as NAV_LINK_LETTER_SPACING_MAP, Xl as SelectTrigger, Xn as isInternalResolvedLinkValue, Xo as resolveEventLinkProps, Xr as augmentManifestWithStyleGroups, Xs as canonicalizePersistedBlockButtonRole, Xu as useControllableState, Ya as eventListPaginationActionSchema, Yc as parseAspectRatioValue, Yd as Trash2, Yi as NAV_LINK_BORDER_RADIUS_MAP, Yl as SelectItem, Yn as createManifestValidator, Yo as resolveEventCta, Yr as augmentManifest, Ys as BLOCK_BUTTON_ROLE_OPTIONS, Yt as createManifestFormAdapter, Yu as createCollection, Za as getEventRuntimeFiltersKey, Zc as asRecord, Zi as NAV_LINK_PADDING_MAP, Zl as SelectValue, Zn as ImageResolveContextProvider, Zo as getEventAvailability, Zr as richTextFragment, Zs as isBlockButtonRole, Zt as FormRenderer, Zu as createContextScope, _a as BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO, _c as FileArchiveIcon, _d as getBookingLocalDateKey, _f as ImageOff, _i as MQ_MD_DOWN, _l as parseThemeButtonVariantId, _n as deriveLaunchReadiness, _o as bindingSchema, _r as resolveDiscountContext, _s as ACCORDION_SPACING_MAP, _t as useEditor, _u as DialogDescription, ac as ArrowRightIcon, ad as parseFooterModuleId, ai as formCopyFragment, an as createEntrySlotBlock, ao as eventButtonVariantSchema, ar as buildEventListingInteractiveIslandProps, as as defineInteractiveIslandMetaKeys, at as resolvePreviewSidebarTab, au as Tabs, ba as foregroundTokenForBackgroundAppearanceColorToken, bc as FileTextIcon, bd as toBookingTimeZone, bf as FileText, bi as MQ_SM_UP, bl as cssVarValue, bn as KeyboardCode, bo as eventSurfaceScopeValues, br as WIZARD_STEPS$1, bs as ICON_CONFIG, bt as EditableBlockProvider, bu as DialogTitle, ca as GRADIENT_PRESETS, cc as ChevronDownIcon, cd as createEditorReorderBlocksCommand, ci as ctaCopyFragment, cl as generateButtonCss, cn as deleteEntrySlotBlock, co as filterAutoShowSchema, cr as buildEventCalendarListingDisplay, cs as defineProgressiveBlockRuntime, ct as PreviewInlineTextEditor, cu as TabsTrigger, da as parseGradientPresetId, dc as ChevronUpIcon, dd as addLocalScheduleDays, df as Minus, di as heroCopyFragment, dl as featuresFromHex, dn as mutateBlockContent, do as eventCalendarListLayoutCompatibleDisplayModeValues, dr as buildFormInteractiveIslandProps, ds as markEditableSurfaceForwarding, dt as EMPTY_DOC, du as Root2$1, ea as FONT_WEIGHT_MAP, ec as SEMANTIC_ICON_DEFINITIONS, ed as Button, ei as faqAccordionFragment, el as getAtPath, en as listContentTypes, eo as normalizeCsvIds, er as productListBlockDefinition, es as getLocalMinuteOfDay, et as deriveTransactionCapabilities, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, fa as boundaryRuntimeMetricsForTransition, fc as CircleMinusIcon, fd as formatBookingDate, fi as bodyCopyFragment, fl as generateEffectsCSS, fn as reorderBlocks, fo as eventCalendarListLayoutOptions, fr as eventRegistrationBlockDefinition, fs as splitPositioningClasses, ft as RichTextEditorSurface, fu as Trigger$1, ga as sectionTransitionVariantForBoundaryOptionId, gc as ExternalLinkIcon, gd as formatLocalScheduleDate, gf as ImagePlus, gi as MQ_LG_UP, gl as TokenResolver, gn as DEFAULT_LAUNCH_READINESS_INPUT, go as when, gr as findPreSelectedEvent, gs as ACCORDION_OPEN_ACCENT_THICKNESS, gt as EditorProvider, gu as DialogContent, ha as sectionTransitionFamilyForBoundaryOptionId, hc as DownloadIcon, hd as formatBookingTime, hf as ImageUp, hi as siteOptionSources, hl as generateInteractiveChildInheritanceCSS, hn as decodePublicProductCategorySelectorQuery, ho as richText, hr as findEventByOccurrenceId, hs as assertNever$6, ht as InlineTextEditor, hu as DialogClose, i as usePreviewDesignHistoryOrder, ic as ArrowLeftIcon, id as clsx, if as RotateCcw, ii as formEmbedFragment, in as createBlock, io as columnOptionSchema, ir as eventListingBlockDefinition, is as createInteractiveIslandCodec, iu as Input, ja as runTransforms, jc as createIcon, jd as expectParsedBrandedId, jf as Clock3, ji as compileEditorModelRuntime, jl as isNonEmptyValue, jn as useCombinedRefs, jo as normalizeBoxStylesCardVariant, jr as buildCartInteractiveIslandProps, js as suggestSemanticIconForFeatureCard, jt as pushHistoryEntry, ju as CardTitle, ka as generateCssVars, kc as UploadIcon, kd as formatCurrencyAmount, kf as CreditCard, ki as formatSiteChromeBackgroundTokenLabel, kl as getModalConfig, kn as CSS, ko as generateCardCss, kr as checkoutBlockDefinition, ks as resolveFeatureCardGeneratedIconSizePx, kt as canUndoHistory, ku as CardContent, la as GRADIENT_PRESET_IDS, lc as ChevronLeftIcon, ld as unsafeAsEditorBlockId, li as heroCtaRowFragment, ll as expandPalette, ln as deletePageSurfaceSlotBlock, lo as previewStageSchema, lr as buildEventCalendarListingRender, lt as PreviewTextEditor, lu as Content$1, ma as sectionTransitionFamilies, mc as ClockIcon$1, md as formatBookingInstant, mf as Image, mi as PUBLIC_FILE_FIELD_KINDS, ml as generateBaseInteractiveCSS, mn as reorderPageSurfaceSlotBlocks, mo as el, mr as toRegistrationEvents, ms as asDesignBlockId, mt as insertOrReplaceRichTextImage, mu as Dialog, n as useSiteChromeCustomizeOptional, na as INPUT_SPACING_MAP, nc as isSemanticIconId, nd as useComposedRefs, nf as Settings, ni as blogFeaturedPostFragment, nn as applyPageDesignEditorAction, no as normalizeOptionalId, nr as newsletterSignupBlockDefinition, ns as blockBookingPaymentTermsSchema, nt as idleEditorTransactionQueueState, nu as PopoverContent, oc as CalendarIcon$1, od as createEditorInsertBlockCommand, of as Plus, oi as testimonialsCarouselFragment, on as createPageSurfaceSlotBlock, oo as eventCalendarDefaultViewSchema, or as eventCalendarBlockDefinition, os as createZodCodec, ou as TabsContent, p as reportPreviewDesignError, pa as defaultSectionTransitionVariantForFamily, pc as CirclePlusIcon, pd as formatBookingDateTime, pf as LoaderCircle, pi as defineFragment, pl as generateShadowValue$1, pn as reorderEntrySlotBlocks, po as bind, pr as buildEventRegistrationInteractiveIslandProps, ps as planSiteChromePlacement, pt as getRichTextImagePositionFromTarget, pu as ScrollableDialogContent, qa as resolveSpacing, qc as normalizeRightAngle, qf as __toESM, qi as parseBlockCustomCssRules, ql as Select, qn as uiTransforms, qo as getContainerClass, qr as productItemKey, qs as isInlineTextEmpty, qt as validateBlockManifestIssues, qu as useId$1, r as PreviewDesignHistoryOrderProvider, ra as LABEL_FONT_SIZE_MAP, rc as ArrowDownIcon, rd as cn$1, rf as Search, ri as singleButtonFragment, rn as getPageDesignEditorState, ro as calendarTabViewsSchema, rr as buildNewsletterFormInteractiveIslandProps, rs as buildInteractiveIslandProps, rt as rejectAutosaveBatch, ru as PopoverTrigger, sa as gradientToCss, sc as CheckIcon$1, sd as createEditorRemoveBlockCommand, sf as Pencil, si as testimonialsHeadingFragment, sl as AFFORDANCE_SUPPRESS_CLASS, sn as deleteBlock, so as eventLayoutSchema, sr as buildEventCalendarInteractiveIslandProps, ss as defineClientOwnedBlockRuntime, st as PreviewRichTextEditor, su as TabsList, t as SiteChromeCustomizeProvider, ta as INPUT_FONT_SIZE_MAP, tc as getSemanticIconComponent, td as cva, ti as faqHeadingFragment, tl as siblingPath$1, tn as toRoutableLinkPayload, to as normalizeCsvString, tr as productDetailBlockDefinition, ts as resolveRuntimeEventPricing, tt as enqueueTransaction, tu as Popover, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, ua as getGradientPreset, uc as ChevronRightIcon, ud as unsafeAsEditorBlockValues, ui as ctaRowFragment, ul as getTextColorForBackground, uo as weekStartSchema, ur as formBlockDefinition, us as composeHeaderSectionWrapperClassName, ut as useRichTextEditor, uu as List, va as backgroundAppearanceColorTokenNames, vc as FileAudioIcon, vd as parseBookingLocalDate, vf as GripVertical, vi as MQ_MD_UP, vl as themeButtonClassName, vn as AMBIENT_BACKGROUND_ROLES$1, vo as eventBlockKindValues, vr as resolveEventRequiresPayment, vs as ACCORDION_TRIGGER_FONT_SCALE, vu as DialogFooter, wc as MinusIcon, wd as publicEventPricingCurrency, wf as FileArchive, wi as boxStylesTransforms, wl as DEFAULT_SURFACE_TEXT_COLOR, wn as useDndContext, wo as normalizeEventStaffMemberId, wr as buildGiftingInteractiveIslandProps, ws as FEATURE_CARD_GENERATED_ICON_SIZE_PX, wu as Content, x as PreviewThemeOverlayProvider, xa as parseBackgroundAppearanceColorToken, xc as InfoIcon, xd as toScheduledBookingDateTime, xf as FileSpreadsheet, xi as MQ_TABLET_ONLY, xl as mergeStyles, xn as PointerSensor, xo as normalizeEventBlockKind, xr as getStepNumber$1, xs as ICON_SIZE_PX, xt as EntryControllerProvider, xu as Collapsible, y as PreviewDesignCoordinatorProvider, ya as backgroundAppearanceQuickColorTokenNames, yc as FileSpreadsheetIcon, yd as resolveBookingTimeZoneId, yf as File, yi as MQ_SM_DOWN, yl as backgroundColorStyle, yn as DndContext, yo as eventScheduleScopeValues, yr as resolveRegistrationTarget, ys as ACCORDION_TRIGGER_LETTER_SPACING, yt as useUISelector, yu as DialogHeader, za as isOfferingsPreviewSourceKey, zc as resolveImageUrlWithContext, zd as unsafeAsPassId, zf as ChevronDown, zi as designRuntimeRulesForTheme, zl as FieldFrame, zn as siteHeaderManifest, zo as formatDate$3, zr as buildProductDetailDisplay, zs as parseGeneratedIconSetId, zt as createSnapshotFromPageRecord, zu as __assign } from "./SiteChromeCustomizeContext-DOSDLCiJ.mjs";
3
+ import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-kkmjklLG.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-BkT1D06A.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";
@@ -1280,7 +1280,7 @@ var BlockApiError = class extends Error {
1280
1280
  this.name = "BlockApiError";
1281
1281
  }
1282
1282
  };
1283
- function isRecord$20(value) {
1283
+ function isRecord$19(value) {
1284
1284
  return typeof value === "object" && value !== null;
1285
1285
  }
1286
1286
  function isJsonResponseContentType(contentType) {
@@ -1304,8 +1304,8 @@ async function parseJsonBody(response) {
1304
1304
  }
1305
1305
  }
1306
1306
  function getBlockApiErrorDetails(data) {
1307
- if (!isRecord$20(data)) return {};
1308
- const nestedError = isRecord$20(data.error) ? data.error : void 0;
1307
+ if (!isRecord$19(data)) return {};
1308
+ const nestedError = isRecord$19(data.error) ? data.error : void 0;
1309
1309
  return {
1310
1310
  message: typeof nestedError?.message === "string" ? nestedError.message : typeof data.message === "string" ? data.message : void 0,
1311
1311
  code: typeof nestedError?.code === "string" ? nestedError.code : typeof data.code === "string" ? data.code : void 0
@@ -2737,7 +2737,7 @@ function resolveButtonAffordance(input) {
2737
2737
  function coerceRichTextDoc(value) {
2738
2738
  const raw = unwrapRichTextRoot(value);
2739
2739
  if (typeof raw === "string") return createRichTextDocFromMarkdown(raw);
2740
- if (isRecord$21(raw) && typeof raw.type === "string") return raw;
2740
+ if (isRecord$20(raw) && typeof raw.type === "string") return raw;
2741
2741
  return null;
2742
2742
  }
2743
2743
  //#endregion
@@ -2822,7 +2822,7 @@ const ButtonNode = ({ value, children, href, variantId = "primary", size = "md",
2822
2822
  return null;
2823
2823
  }
2824
2824
  const extraClassName = affordanceIcon ? [className, AFFORDANCE_SUPPRESS_CLASS].filter(Boolean).join(" ") : className;
2825
- const resolvedVariantId = parseThemeButtonVariantId(variantId);
2825
+ const resolvedVariantId = parseThemeButtonVariantId(canonicalizePersistedBlockButtonRole(variantId));
2826
2826
  const combinedClassName = resolvedVariantId ? themeButtonClassName({
2827
2827
  variant: resolvedVariantId,
2828
2828
  size,
@@ -2881,7 +2881,7 @@ const IconNode = ({ value, title, className, blockId: _blockId, blockKind: _bloc
2881
2881
  };
2882
2882
  //#endregion
2883
2883
  //#region ../blocks/src/system/icons/generatedAssets.ts
2884
- function isRecord$19(value) {
2884
+ function isRecord$18(value) {
2885
2885
  return typeof value === "object" && value !== null && !Array.isArray(value);
2886
2886
  }
2887
2887
  function generatedIconAssetRefKey(ref) {
@@ -2891,11 +2891,11 @@ function collectGeneratedIconAssetRefs(page) {
2891
2891
  const blocks = [];
2892
2892
  for (const block of page.blocks) {
2893
2893
  if (block.kind !== "block.feature-cards" || typeof block.id !== "string") continue;
2894
- const content = isRecord$19(block.draftContent) ? block.draftContent : isRecord$19(block.content) ? block.content : null;
2894
+ const content = isRecord$18(block.draftContent) ? block.draftContent : isRecord$18(block.content) ? block.content : null;
2895
2895
  const cards = Array.isArray(content?.cards) ? content.cards : [];
2896
2896
  const refs = /* @__PURE__ */ new Map();
2897
2897
  for (const card of cards) {
2898
- if (!isRecord$19(card)) continue;
2898
+ if (!isRecord$18(card)) continue;
2899
2899
  const icon = parseBlockIconValue(card.icon);
2900
2900
  if (icon.kind !== "generated") continue;
2901
2901
  const ref = {
@@ -3017,12 +3017,6 @@ const MediaNodeServer = ({ value, className, style, videoPlayback = "inline", lo
3017
3017
  };
3018
3018
  //#endregion
3019
3019
  //#region ../blocks/src/system/runtime/nodes/file-download.tsx
3020
- const FILE_DOWNLOAD_BUTTON_VARIANTS = [
3021
- "primary",
3022
- "secondary",
3023
- "outline",
3024
- "link"
3025
- ];
3026
3020
  function isDownloadableMediaType(type) {
3027
3021
  return typeof type === "string" && PUBLIC_DOWNLOAD_MEDIA_TYPES.includes(type);
3028
3022
  }
@@ -3054,7 +3048,7 @@ function iconForMediaType(type) {
3054
3048
  }
3055
3049
  }
3056
3050
  function normalizeButtonVariant(value) {
3057
- return typeof value === "string" && FILE_DOWNLOAD_BUTTON_VARIANTS.includes(value) ? value : "primary";
3051
+ return isBlockButtonRole(value) ? value : "primary";
3058
3052
  }
3059
3053
  function FileDownloadNode({ value, title, description, buttonLabel, buttonVariant, className }) {
3060
3054
  if (!value || !isDownloadableMediaType(value.type)) return null;
@@ -3932,12 +3926,12 @@ function resolveBookingSiteId(siteId, form) {
3932
3926
  return siteId || form?.siteId || "";
3933
3927
  }
3934
3928
  function normalizeBookingFormConfig(form) {
3935
- if (!isRecord$18(form)) return null;
3929
+ if (!isRecord$17(form)) return null;
3936
3930
  const id = readNonEmptyString(form.id);
3937
3931
  const name = readNonEmptyString(form.name);
3938
3932
  if (!id || !name) return null;
3939
- const schemaSource = isRecord$18(form.schema) ? form.schema : isRecord$18(form.schemaJson) ? form.schemaJson : null;
3940
- const settingsSource = isRecord$18(form.settings) ? form.settings : isRecord$18(form.settingsJson) ? form.settingsJson : null;
3933
+ const schemaSource = isRecord$17(form.schema) ? form.schema : isRecord$17(form.schemaJson) ? form.schemaJson : null;
3934
+ const settingsSource = isRecord$17(form.settings) ? form.settings : isRecord$17(form.settingsJson) ? form.settingsJson : null;
3941
3935
  return {
3942
3936
  id,
3943
3937
  name,
@@ -3957,8 +3951,8 @@ function normalizeBookingServices(services) {
3957
3951
  };
3958
3952
  if (!services) return [];
3959
3953
  if (Array.isArray(services)) return services.filter(isBookingFormService).map(normalizeService);
3960
- if (isRecord$18(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
3961
- return isRecord$18(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
3954
+ if (isRecord$17(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
3955
+ return isRecord$17(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
3962
3956
  }
3963
3957
  function normalizeBookingSchema(value) {
3964
3958
  if (!value) return void 0;
@@ -3969,7 +3963,7 @@ function normalizeBookingSchema(value) {
3969
3963
  };
3970
3964
  }
3971
3965
  function readBookingFormField(value) {
3972
- if (!isRecord$18(value)) return null;
3966
+ if (!isRecord$17(value)) return null;
3973
3967
  const id = readNonEmptyString(value.id);
3974
3968
  const label = readNonEmptyString(value.label);
3975
3969
  const type = readBookingFieldType(value.type);
@@ -4013,7 +4007,7 @@ function readBookingFieldOptions(value) {
4013
4007
  return options.length > 0 ? options : void 0;
4014
4008
  }
4015
4009
  function readBookingFieldOption(value) {
4016
- if (!isRecord$18(value)) return null;
4010
+ if (!isRecord$17(value)) return null;
4017
4011
  const optionValue = readNonEmptyString(value.value);
4018
4012
  const label = readNonEmptyString(value.label);
4019
4013
  return optionValue && label ? {
@@ -4033,7 +4027,7 @@ function normalizeBookingSettings(value) {
4033
4027
  };
4034
4028
  }
4035
4029
  function isBookingFormService(value) {
4036
- return isRecord$18(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
4030
+ return isRecord$17(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
4037
4031
  }
4038
4032
  function collectBookingCustomFields(data) {
4039
4033
  const customFields = {};
@@ -4083,7 +4077,7 @@ function readStringArray(value) {
4083
4077
  const strings = value.filter((item) => typeof item === "string");
4084
4078
  return strings.length > 0 ? strings : void 0;
4085
4079
  }
4086
- function isRecord$18(value) {
4080
+ function isRecord$17(value) {
4087
4081
  return typeof value === "object" && value !== null;
4088
4082
  }
4089
4083
  function getBookingServicePaymentSelectionMode(service) {
@@ -5653,8 +5647,11 @@ function LocationMapView({ addressText, location, zoom, heightPx, showAddressTex
5653
5647
  href: directionsUrl,
5654
5648
  target: "_blank",
5655
5649
  rel: "noreferrer",
5656
- className: "rb-inline-flex rb-w-fit rb-items-center rb-justify-center rb-rounded-md rb-border rb-px-4 rb-py-2 rb-text-sm rb-font-medium rb-no-underline transition-theme-standard rb-hover-opacity-90",
5657
- style: mergeStyles(borderColorStyle("border"), backgroundColorStyle("surface"), textColorStyle("text")),
5650
+ className: themeButtonClassName({
5651
+ variant: "ghost",
5652
+ size: "sm",
5653
+ extraClassName: "rb-w-fit"
5654
+ }),
5658
5655
  children: directionsLabel
5659
5656
  }) : null
5660
5657
  ]
@@ -7375,7 +7372,11 @@ function WeeklySlotAvailabilityView({ availability, loading = false, error, empt
7375
7372
  ]
7376
7373
  }),
7377
7374
  resolvedCtaUrl ? /* @__PURE__ */ jsx("a", {
7378
- className: "weekly-slot-availability__cta",
7375
+ className: themeButtonClassName({
7376
+ variant: "ghost",
7377
+ size: "sm",
7378
+ extraClassName: "weekly-slot-availability__cta"
7379
+ }),
7379
7380
  href: buildSlotCtaUrl(resolvedCtaUrl, slot),
7380
7381
  "aria-label": buildSlotCtaLabel(resolvedCtaText, slot),
7381
7382
  children: resolvedCtaText
@@ -18732,7 +18733,7 @@ function resolveHasCoursePayment(pricing) {
18732
18733
  if (pricing.selectedOption) return pricing.selectedRequiresPayment;
18733
18734
  return pricing.hasPaidSelection;
18734
18735
  }
18735
- function useCourseRegistrationWizard(props) {
18736
+ function useCourseRegistrationWizard(props, options = {}) {
18736
18737
  const api = useBlockApi();
18737
18738
  const { contentEntry, courses, entrySubrouteContext, subject } = props;
18738
18739
  const scopedCourses = useMemo(() => {
@@ -18979,21 +18980,34 @@ function useCourseRegistrationWizard(props) {
18979
18980
  setStep("enter-details");
18980
18981
  };
18981
18982
  const handleSubmit = async () => {
18982
- if (!selectedCourse) return;
18983
- if (!handleValidateForm()) return;
18983
+ if (!selectedCourse) return {
18984
+ kind: "blocked",
18985
+ message: "Choose an available set of dates to continue."
18986
+ };
18987
+ if (!handleValidateForm()) return { kind: "validation-failed" };
18984
18988
  if (missingPricingSelectionMessage) {
18985
18989
  setErrorMessage(missingPricingSelectionMessage);
18986
18990
  setStep("error");
18987
- return;
18991
+ return {
18992
+ kind: "blocked",
18993
+ message: missingPricingSelectionMessage
18994
+ };
18988
18995
  }
18989
18996
  const requiresPayment = selectedCoursePricing?.selectedRequiresPayment ?? false;
18990
18997
  const canUseMembership = requiresPayment && selectedCourse.acceptsMemberships && portalAuthState === "authenticated" && eligibleMemberships.length > 0;
18991
18998
  if (showSpamProtection && !altchaSolution) {
18992
- setErrorMessage("Please complete the verification check.");
18999
+ const message = "Please complete the verification check.";
19000
+ setErrorMessage(message);
18993
19001
  setStep("error");
18994
- return;
19002
+ return {
19003
+ kind: "blocked",
19004
+ message
19005
+ };
18995
19006
  }
18996
- if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return;
19007
+ if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return {
19008
+ kind: "blocked",
19009
+ message: courseEligibility.reason ?? "This course is fully booked."
19010
+ };
18997
19011
  if (courseEligibility?.canJoinWaitlist) {
18998
19012
  setStep("submitting");
18999
19013
  try {
@@ -19014,15 +19028,20 @@ function useCourseRegistrationWizard(props) {
19014
19028
  usedMembership: false
19015
19029
  });
19016
19030
  setStep(result.status === "waitlist" ? "waitlist" : "success");
19031
+ return { kind: "state-updated" };
19017
19032
  } catch (error) {
19018
- setErrorMessage(error instanceof Error ? error.message : "Booking failed");
19033
+ const message = error instanceof Error ? error.message : "Booking failed";
19034
+ setErrorMessage(message);
19019
19035
  setStep("error");
19036
+ return {
19037
+ kind: "failed",
19038
+ message
19039
+ };
19020
19040
  }
19021
- return;
19022
19041
  }
19023
19042
  if (requiresPayment && canUseMembership) {
19024
19043
  setStep("select-payment");
19025
- return;
19044
+ return { kind: "state-updated" };
19026
19045
  }
19027
19046
  if (requiresPayment) {
19028
19047
  setStep("submitting");
@@ -19048,16 +19067,24 @@ function useCourseRegistrationWizard(props) {
19048
19067
  usedMembership: false
19049
19068
  });
19050
19069
  setStep("success");
19051
- return;
19070
+ return { kind: "state-updated" };
19052
19071
  }
19053
19072
  if (!checkoutResult.checkoutUrl) throw new Error("Checkout URL missing");
19054
19073
  setStep("redirecting");
19055
- window.location.href = checkoutResult.checkoutUrl;
19056
- return;
19074
+ if (options.onCheckoutRedirect) options.onCheckoutRedirect(checkoutResult.checkoutUrl);
19075
+ else window.location.href = checkoutResult.checkoutUrl;
19076
+ return {
19077
+ kind: "checkout-redirect",
19078
+ checkoutUrl: checkoutResult.checkoutUrl
19079
+ };
19057
19080
  } catch (error) {
19058
- setErrorMessage(error instanceof Error ? error.message : "Checkout failed");
19081
+ const message = error instanceof Error ? error.message : "Checkout failed";
19082
+ setErrorMessage(message);
19059
19083
  setStep("error");
19060
- return;
19084
+ return {
19085
+ kind: "failed",
19086
+ message
19087
+ };
19061
19088
  }
19062
19089
  }
19063
19090
  setStep("submitting");
@@ -19079,35 +19106,58 @@ function useCourseRegistrationWizard(props) {
19079
19106
  usedMembership: result.paymentMethod === "membership"
19080
19107
  });
19081
19108
  setStep(result.status === "waitlist" ? "waitlist" : "success");
19109
+ return { kind: "state-updated" };
19082
19110
  } catch (error) {
19083
- setErrorMessage(error instanceof Error ? error.message : "Booking failed");
19111
+ const message = error instanceof Error ? error.message : "Booking failed";
19112
+ setErrorMessage(message);
19084
19113
  setStep("error");
19114
+ return {
19115
+ kind: "failed",
19116
+ message
19117
+ };
19085
19118
  }
19086
19119
  };
19087
19120
  const handlePaymentContinue = async () => {
19088
- if (!selectedCourse) return;
19089
- if (!handleValidateForm()) return;
19121
+ if (!selectedCourse) return {
19122
+ kind: "blocked",
19123
+ message: "Choose an available set of dates to continue."
19124
+ };
19125
+ if (!handleValidateForm()) return { kind: "validation-failed" };
19090
19126
  if (missingPricingSelectionMessage) {
19091
19127
  setErrorMessage(missingPricingSelectionMessage);
19092
19128
  setStep("error");
19093
- return;
19129
+ return {
19130
+ kind: "blocked",
19131
+ message: missingPricingSelectionMessage
19132
+ };
19094
19133
  }
19095
19134
  const requiresPayment = selectedCoursePricing?.selectedRequiresPayment ?? false;
19096
- if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return;
19135
+ if (!waitlistClaim.claim && courseEligibility?.isFull && !courseEligibility.canJoinWaitlist && showSoldOutCourseError()) return {
19136
+ kind: "blocked",
19137
+ message: courseEligibility.reason ?? "This course is fully booked."
19138
+ };
19097
19139
  if (!requiresPayment) {
19098
19140
  setStep("enter-details");
19099
- return;
19141
+ return { kind: "state-updated" };
19100
19142
  }
19101
19143
  if (showSpamProtection && !altchaSolution) {
19102
- setErrorMessage("Please complete the verification check.");
19144
+ const message = "Please complete the verification check.";
19145
+ setErrorMessage(message);
19103
19146
  setStep("error");
19104
- return;
19147
+ return {
19148
+ kind: "blocked",
19149
+ message
19150
+ };
19105
19151
  }
19106
19152
  if (paymentChoice === "membership") {
19107
19153
  if (!selectedMembershipId) {
19108
- setErrorMessage("Select a membership to enroll.");
19154
+ const message = "Select a membership to sign up.";
19155
+ setErrorMessage(message);
19109
19156
  setStep("error");
19110
- return;
19157
+ return {
19158
+ kind: "blocked",
19159
+ message
19160
+ };
19111
19161
  }
19112
19162
  setStep("submitting");
19113
19163
  try {
@@ -19129,11 +19179,16 @@ function useCourseRegistrationWizard(props) {
19129
19179
  usedMembership: true
19130
19180
  });
19131
19181
  setStep(result.status === "waitlist" ? "waitlist" : "success");
19182
+ return { kind: "state-updated" };
19132
19183
  } catch (error) {
19133
- setErrorMessage(error instanceof Error ? error.message : "Booking failed");
19184
+ const message = error instanceof Error ? error.message : "Booking failed";
19185
+ setErrorMessage(message);
19134
19186
  setStep("error");
19187
+ return {
19188
+ kind: "failed",
19189
+ message
19190
+ };
19135
19191
  }
19136
- return;
19137
19192
  }
19138
19193
  setStep("submitting");
19139
19194
  try {
@@ -19158,14 +19213,24 @@ function useCourseRegistrationWizard(props) {
19158
19213
  usedMembership: false
19159
19214
  });
19160
19215
  setStep("success");
19161
- return;
19216
+ return { kind: "state-updated" };
19162
19217
  }
19163
19218
  if (!checkoutResult.checkoutUrl) throw new Error("Checkout URL missing");
19164
19219
  setStep("redirecting");
19165
- window.location.href = checkoutResult.checkoutUrl;
19220
+ if (options.onCheckoutRedirect) options.onCheckoutRedirect(checkoutResult.checkoutUrl);
19221
+ else window.location.href = checkoutResult.checkoutUrl;
19222
+ return {
19223
+ kind: "checkout-redirect",
19224
+ checkoutUrl: checkoutResult.checkoutUrl
19225
+ };
19166
19226
  } catch (error) {
19167
- setErrorMessage(error instanceof Error ? error.message : "Checkout failed");
19227
+ const message = error instanceof Error ? error.message : "Checkout failed";
19228
+ setErrorMessage(message);
19168
19229
  setStep("error");
19230
+ return {
19231
+ kind: "failed",
19232
+ message
19233
+ };
19169
19234
  }
19170
19235
  };
19171
19236
  const handleRetry = () => {
@@ -20084,7 +20149,7 @@ const LEAFLET_JS_INTEGRITY = "sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo
20084
20149
  let leafletLoaded = false;
20085
20150
  let leafletLoadPromise = null;
20086
20151
  function isLeafletApi(value) {
20087
- if (!isRecord$21(value)) return false;
20152
+ if (!isRecord$20(value)) return false;
20088
20153
  return typeof value.map === "function" && typeof value.tileLayer === "function" && typeof value.marker === "function";
20089
20154
  }
20090
20155
  function loadLeaflet() {
@@ -21406,7 +21471,7 @@ Autoplay.globalOptions = void 0;
21406
21471
  function isObject$2(subject) {
21407
21472
  return Object.prototype.toString.call(subject) === "[object Object]";
21408
21473
  }
21409
- function isRecord$17(subject) {
21474
+ function isRecord$16(subject) {
21410
21475
  return isObject$2(subject) || Array.isArray(subject);
21411
21476
  }
21412
21477
  function canUseDOM() {
@@ -21421,7 +21486,7 @@ function areOptionsEqual(optionsA, optionsB) {
21421
21486
  const valueA = optionsA[key];
21422
21487
  const valueB = optionsB[key];
21423
21488
  if (typeof valueA === "function") return `${valueA}` === `${valueB}`;
21424
- if (!isRecord$17(valueA) || !isRecord$17(valueB)) return valueA === valueB;
21489
+ if (!isRecord$16(valueA) || !isRecord$16(valueB)) return valueA === valueB;
21425
21490
  return areOptionsEqual(valueA, valueB);
21426
21491
  });
21427
21492
  }
@@ -27978,7 +28043,7 @@ function WeeklySlotAvailabilityClient({ serviceId, resourceId, horizonWeeks, tim
27978
28043
  }
27979
28044
  //#endregion
27980
28045
  //#region ../blocks/src/system/runtime/components/registry.client.tsx
27981
- function isRecord$16(value) {
28046
+ function isRecord$15(value) {
27982
28047
  return typeof value === "object" && value !== null;
27983
28048
  }
27984
28049
  function buildRenderFromLooseProps(runtime, mode, props) {
@@ -27997,12 +28062,12 @@ function withRuntimeBackedEnvelope(source, runtime, render) {
27997
28062
  function normalizeLegacyInteractiveRenderProps(runtime, mode, props) {
27998
28063
  const source = props;
27999
28064
  const render = props["render"];
28000
- if (!isRecord$16(render)) return withRuntimeBackedEnvelope(source, runtime, buildRenderFromLooseProps(runtime, mode, props));
28001
- if (isRecord$16(render["hydration"])) return withRuntimeBackedEnvelope(source, runtime, {
28065
+ if (!isRecord$15(render)) return withRuntimeBackedEnvelope(source, runtime, buildRenderFromLooseProps(runtime, mode, props));
28066
+ if (isRecord$15(render["hydration"])) return withRuntimeBackedEnvelope(source, runtime, {
28002
28067
  ...render,
28003
28068
  mode
28004
28069
  });
28005
- if (!isRecord$16(render["display"])) return withRuntimeBackedEnvelope(source, runtime, buildRenderFromLooseProps(runtime, mode, props));
28070
+ if (!isRecord$15(render["display"])) return withRuntimeBackedEnvelope(source, runtime, buildRenderFromLooseProps(runtime, mode, props));
28006
28071
  const { display, mode: _legacyMode, ...legacyHydration } = render;
28007
28072
  return withRuntimeBackedEnvelope(source, runtime, {
28008
28073
  display,
@@ -28549,7 +28614,7 @@ const defaultTransforms = createTransformRegistry([
28549
28614
  //#region ../blocks/src/system/data/linkedContentEntries.ts
28550
28615
  const LINKED_CONTENT_ENTRY_META_KEY = "__rbLinkedContentEntry";
28551
28616
  function coerceLinkedContentEntriesPayload(payload) {
28552
- if (!isRecord$15(payload)) return payload;
28617
+ if (!isRecord$14(payload)) return payload;
28553
28618
  const response = payload;
28554
28619
  if (!Array.isArray(response.entries)) return payload;
28555
28620
  const contentType = parsePublicContentTypeMeta(response.contentType);
@@ -28557,16 +28622,16 @@ function coerceLinkedContentEntriesPayload(payload) {
28557
28622
  return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
28558
28623
  }
28559
28624
  function getLinkedContentEntryMeta(value) {
28560
- if (!isRecord$15(value)) return null;
28625
+ if (!isRecord$14(value)) return null;
28561
28626
  const candidate = value[LINKED_CONTENT_ENTRY_META_KEY];
28562
28627
  return isLinkedContentEntryMeta(candidate) ? candidate : null;
28563
28628
  }
28564
28629
  function buildLinkedContentEditTarget(input) {
28565
28630
  const { entry, sourceBlockId, sourceBlockKind, itemIndex } = input;
28566
- if (!isRecord$15(entry)) return null;
28631
+ if (!isRecord$14(entry)) return null;
28567
28632
  const meta = getLinkedContentEntryMeta(entry);
28568
28633
  if (!meta || meta.support.kind !== "supported") return null;
28569
- const content = isRecord$15(entry.content) ? entry.content : {};
28634
+ const content = isRecord$14(entry.content) ? entry.content : {};
28570
28635
  return {
28571
28636
  kind: "linked-content-entry",
28572
28637
  entryId: meta.entryId,
@@ -28630,12 +28695,12 @@ function resolveLinkedEntryInlineFieldEligibility(input) {
28630
28695
  };
28631
28696
  }
28632
28697
  function enrichLinkedContentEntry(entry, contentType) {
28633
- if (!isRecord$15(entry)) return entry;
28698
+ if (!isRecord$14(entry)) return entry;
28634
28699
  const entryId = typeof entry.id === "string" ? entry.id : null;
28635
28700
  if (!entryId) return entry;
28636
28701
  const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
28637
28702
  const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
28638
- const content = isRecord$15(entry.content) ? entry.content : {};
28703
+ const content = isRecord$14(entry.content) ? entry.content : {};
28639
28704
  const meta = {
28640
28705
  kind: "linked-content-entry",
28641
28706
  entryId,
@@ -28731,7 +28796,7 @@ function capitalize(value) {
28731
28796
  return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
28732
28797
  }
28733
28798
  function parsePublicContentTypeMeta(value) {
28734
- if (!isRecord$15(value)) return null;
28799
+ if (!isRecord$14(value)) return null;
28735
28800
  if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
28736
28801
  return {
28737
28802
  key: value.key,
@@ -28741,7 +28806,7 @@ function parsePublicContentTypeMeta(value) {
28741
28806
  };
28742
28807
  }
28743
28808
  function parsePublicContentTypeLinkedEntryEditing(value) {
28744
- if (!isRecord$15(value) || typeof value.kind !== "string") return null;
28809
+ if (!isRecord$14(value) || typeof value.kind !== "string") return null;
28745
28810
  switch (value.kind) {
28746
28811
  case "generic": return { kind: "generic" };
28747
28812
  case "unsupported-domain-backed": return {
@@ -28752,7 +28817,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
28752
28817
  }
28753
28818
  }
28754
28819
  function parsePublicContentTypeFieldMeta(value) {
28755
- if (!isRecord$15(value)) return [];
28820
+ if (!isRecord$14(value)) return [];
28756
28821
  if (typeof value.id !== "string" || typeof value.type !== "string") return [];
28757
28822
  return [{
28758
28823
  id: value.id,
@@ -28767,14 +28832,14 @@ function parseStringArray(value) {
28767
28832
  return value.filter((item) => typeof item === "string");
28768
28833
  }
28769
28834
  function isLinkedContentEntryMeta(value) {
28770
- if (!isRecord$15(value)) return false;
28835
+ if (!isRecord$14(value)) return false;
28771
28836
  if (value.kind !== "linked-content-entry") return false;
28772
28837
  if (typeof value.entryId !== "string") return false;
28773
28838
  if (typeof value.contentTypeKey !== "string") return false;
28774
28839
  if (typeof value.contentTypeLabel !== "string") return false;
28775
28840
  if (typeof value.title !== "string") return false;
28776
28841
  if (!(value.optimisticHash === null || typeof value.optimisticHash === "string")) return false;
28777
- if (!isRecord$15(value.contentType)) return false;
28842
+ if (!isRecord$14(value.contentType)) return false;
28778
28843
  if (!isLinkedEntryFieldSourceArray(value.fieldSources)) return false;
28779
28844
  return isLinkedContentEditSupport(value.support);
28780
28845
  }
@@ -28782,7 +28847,7 @@ function isLinkedEntryFieldSourceArray(value) {
28782
28847
  return Array.isArray(value) && value.every(isLinkedEntryFieldSource);
28783
28848
  }
28784
28849
  function isLinkedEntryFieldSource(value) {
28785
- if (!isRecord$15(value)) return false;
28850
+ if (!isRecord$14(value)) return false;
28786
28851
  if (typeof value.displayPath !== "string") return false;
28787
28852
  switch (value.kind) {
28788
28853
  case "content-field": return typeof value.fieldPath === "string" && (value.fieldType === "text" || value.fieldType === "richText");
@@ -28803,7 +28868,7 @@ function isLinkedEntryInlineFieldReadOnlyReason(value) {
28803
28868
  }
28804
28869
  }
28805
28870
  function isLinkedContentEditSupport(value) {
28806
- if (!isRecord$15(value) || typeof value.kind !== "string") return false;
28871
+ if (!isRecord$14(value) || typeof value.kind !== "string") return false;
28807
28872
  switch (value.kind) {
28808
28873
  case "supported": return true;
28809
28874
  case "unsupported-domain-backed":
@@ -28812,7 +28877,7 @@ function isLinkedContentEditSupport(value) {
28812
28877
  default: return false;
28813
28878
  }
28814
28879
  }
28815
- function isRecord$15(value) {
28880
+ function isRecord$14(value) {
28816
28881
  return typeof value === "object" && value !== null && !Array.isArray(value);
28817
28882
  }
28818
28883
  //#endregion
@@ -28866,14 +28931,14 @@ function isDecoratedHeadingBlockKind(blockKind) {
28866
28931
  return blockKind === "block.intro" || blockKind === "block.feature-cards" || blockKind === "block.testimonials" || blockKind === "block.faq";
28867
28932
  }
28868
28933
  function readVariant(blockContent) {
28869
- if (!isRecord$14(blockContent)) return void 0;
28934
+ if (!isRecord$13(blockContent)) return void 0;
28870
28935
  const variant = blockContent.variant;
28871
28936
  return typeof variant === "string" ? variant : void 0;
28872
28937
  }
28873
28938
  function isFaqDecoratedVariant(variant) {
28874
28939
  return variant === "default" || variant === "question-columns";
28875
28940
  }
28876
- function isRecord$14(value) {
28941
+ function isRecord$13(value) {
28877
28942
  return typeof value === "object" && value !== null && !Array.isArray(value);
28878
28943
  }
28879
28944
  function buildHeadingDecorationWrapperClassName(className) {
@@ -29943,7 +30008,7 @@ function applyStyleOverride(target, key, defaults) {
29943
30008
  //#endregion
29944
30009
  //#region ../blocks/src/system/runtime/blockComposition.ts
29945
30010
  function readBlockComposition(value) {
29946
- if (!isRecord$13(value) || typeof value.kind !== "string") return null;
30011
+ if (!isRecord$12(value) || typeof value.kind !== "string") return null;
29947
30012
  switch (value.kind) {
29948
30013
  case "intro": return value.treatment === "editorial-statement" || value.treatment === "portrait-bio" ? {
29949
30014
  kind: "intro",
@@ -29956,7 +30021,7 @@ function readBlockComposition(value) {
29956
30021
  default: return null;
29957
30022
  }
29958
30023
  }
29959
- function isRecord$13(value) {
30024
+ function isRecord$12(value) {
29960
30025
  return typeof value === "object" && value !== null && !Array.isArray(value);
29961
30026
  }
29962
30027
  //#endregion
@@ -33864,7 +33929,7 @@ function hydrateValue(value, context) {
33864
33929
  const resolvedItems = value.map((item) => hydrateValue(item, context));
33865
33930
  return resolvedItems.every((item, index) => item === value[index]) ? value : resolvedItems;
33866
33931
  }
33867
- if (isRecord$21(value)) {
33932
+ if (isRecord$20(value)) {
33868
33933
  if (isInternalLink(value)) return hydrateInternalLink(value, context.routes);
33869
33934
  if (isPageLink(value)) return hydratePageLink(value, context);
33870
33935
  if (isEntryLink(value)) return hydrateEntryLink(value, context);
@@ -56011,7 +56076,7 @@ function assertRelativeStoragePath(value) {
56011
56076
  if (!parsed.ok) throw new Error(`Expected RelativeStoragePath, got ${parsed.error.tag}`);
56012
56077
  return parsed.value;
56013
56078
  }
56014
- function isRecord$12(value) {
56079
+ function isRecord$11(value) {
56015
56080
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
56016
56081
  }
56017
56082
  function parseFileKindJson(value) {
@@ -56232,7 +56297,7 @@ function parseEntitledCustomerAccessScopeJson(value) {
56232
56297
  }
56233
56298
  }
56234
56299
  function requireRecord(value) {
56235
- if (!isRecord$12(value)) return err("expected-object");
56300
+ if (!isRecord$11(value)) return err("expected-object");
56236
56301
  return ok(value);
56237
56302
  }
56238
56303
  function requireString(value) {
@@ -56447,7 +56512,7 @@ const DEFAULT_MESSAGES = {
56447
56512
  update: "Failed to update media asset",
56448
56513
  delete: "Failed to delete media asset"
56449
56514
  };
56450
- function isRecord$11(value) {
56515
+ function isRecord$10(value) {
56451
56516
  return typeof value === "object" && value !== null;
56452
56517
  }
56453
56518
  const normalizeLabels = (labels) => labels !== void 0 && labels.length > 0 ? labels.map((label) => label.trim()).filter((label) => label.length > 0).join(",") : void 0;
@@ -56481,7 +56546,7 @@ const filterUpdatePayload = (input) => {
56481
56546
  return payload;
56482
56547
  };
56483
56548
  const extractErrorMessage = (body) => {
56484
- if (!isRecord$11(body)) return typeof body === "string" && body.trim().length > 0 ? body : null;
56549
+ if (!isRecord$10(body)) return typeof body === "string" && body.trim().length > 0 ? body : null;
56485
56550
  for (const key of [
56486
56551
  "error",
56487
56552
  "message",
@@ -56494,11 +56559,11 @@ const extractErrorMessage = (body) => {
56494
56559
  const details = body.details;
56495
56560
  if (Array.isArray(details)) for (const entry of details) {
56496
56561
  if (typeof entry === "string" && entry.trim().length > 0) return entry;
56497
- if (isRecord$11(entry) && typeof entry.message === "string" && entry.message.trim().length > 0) return entry.message;
56562
+ if (isRecord$10(entry) && typeof entry.message === "string" && entry.message.trim().length > 0) return entry.message;
56498
56563
  }
56499
56564
  const errors = body.errors;
56500
56565
  if (Array.isArray(errors)) {
56501
- for (const entry of errors) if (isRecord$11(entry) && typeof entry.message === "string" && entry.message.trim().length > 0) return entry.message;
56566
+ for (const entry of errors) if (isRecord$10(entry) && typeof entry.message === "string" && entry.message.trim().length > 0) return entry.message;
56502
56567
  }
56503
56568
  return null;
56504
56569
  };
@@ -57359,13 +57424,14 @@ function parseReferenceKind(referenceKind) {
57359
57424
  const ButtonWidgetContext = createContext(null);
57360
57425
  function ButtonWidgetProvider({ buttonSystem, children }) {
57361
57426
  const value = useMemo(() => {
57427
+ const variants = buttonSystem ? buttonSystem.variants.flatMap((variant) => variant.enabled && isBlockButtonRole(variant.id) ? [{
57428
+ id: variant.id,
57429
+ name: variant.name,
57430
+ priority: variant.priority
57431
+ }] : []).sort((a, b) => a.priority - b.priority) : [];
57362
57432
  return {
57363
- variants: buttonSystem ? buttonSystem.variants.filter((v) => v.enabled).map((v) => ({
57364
- id: v.id,
57365
- name: v.name,
57366
- priority: v.priority
57367
- })).sort((a, b) => a.priority - b.priority) : [],
57368
- defaultVariant: buttonSystem?.variants.find((v) => v.priority === 1)?.id ?? null,
57433
+ variants,
57434
+ defaultVariant: variants.find((variant) => variant.priority === 1)?.id ?? variants[0]?.id ?? null,
57369
57435
  buttonSystem
57370
57436
  };
57371
57437
  }, [buttonSystem]);
@@ -57389,23 +57455,11 @@ function useButtonWidgetContext() {
57389
57455
  *
57390
57456
  * Use `ui.widget: 'buttonVariant'` in field definitions to opt into this behavior.
57391
57457
  */
57392
- const DEFAULT_VARIANTS = [
57393
- {
57394
- id: "primary",
57395
- name: "Primary",
57396
- priority: 1
57397
- },
57398
- {
57399
- id: "secondary",
57400
- name: "Secondary",
57401
- priority: 2
57402
- },
57403
- {
57404
- id: "outline",
57405
- name: "Outline",
57406
- priority: 3
57407
- }
57408
- ];
57458
+ const DEFAULT_VARIANTS = BLOCK_BUTTON_ROLE_OPTIONS.map((option, index) => ({
57459
+ id: option.value,
57460
+ name: option.label,
57461
+ priority: index + 1
57462
+ }));
57409
57463
  function ButtonVariantField({ path, backend, config }) {
57410
57464
  const { value, error, setValue } = useField(path, backend);
57411
57465
  const buttonContext = useButtonWidgetContext();
@@ -57419,7 +57473,7 @@ function ButtonVariantField({ path, backend, config }) {
57419
57473
  description: config.description,
57420
57474
  error: error?.message,
57421
57475
  children: () => /* @__PURE__ */ jsxs(Select, {
57422
- value: typeof value === "string" && value !== "" ? value : void 0,
57476
+ value: value !== "" ? value : void 0,
57423
57477
  onValueChange: setValue,
57424
57478
  children: [/* @__PURE__ */ jsx(SelectTrigger, { children: /* @__PURE__ */ jsx(SelectValue, { placeholder: `Select ${config.label.toLowerCase()}` }) }), /* @__PURE__ */ jsx(SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsx(SelectItem, {
57425
57479
  value: opt.value,
@@ -64374,55 +64428,6 @@ function buildPreviewDashboardSetupUrl(dashboardBaseUrl, handoff) {
64374
64428
  return new URL(handoff.dashboardPath, dashboardBaseUrl).toString();
64375
64429
  }
64376
64430
  //#endregion
64377
- //#region ../preview-next/src/client/preview/sidebarTabPreference.ts
64378
- const STORAGE_KEY = "preview-sidebar-tab";
64379
- const REQUEST_EVENT = "riverbank:preview-sidebar:request-open";
64380
- function normalizeOpenRequest(input) {
64381
- return parsePreviewSidebarOpenRequestDetail(typeof input === "string" ? { tab: input } : input);
64382
- }
64383
- function parsePreviewSidebarOpenRequestDetail(detail) {
64384
- const request = isRecord$10(detail) ? detail : {};
64385
- return {
64386
- tab: resolvePreviewSidebarTab(request.tab === "assistant" ? "assistant" : "editor"),
64387
- ...isPreviewDesignRow(request.designRow) ? { designRow: request.designRow } : {}
64388
- };
64389
- }
64390
- function getPreviewSidebarTab() {
64391
- if (typeof window === "undefined") return "editor";
64392
- try {
64393
- return resolvePreviewSidebarTab(window.localStorage.getItem(STORAGE_KEY) === "assistant" ? "assistant" : "editor");
64394
- } catch {
64395
- return "editor";
64396
- }
64397
- }
64398
- function setPreviewSidebarTab(tab) {
64399
- if (typeof window === "undefined") return;
64400
- try {
64401
- window.localStorage.setItem(STORAGE_KEY, resolvePreviewSidebarTab(tab));
64402
- } catch {}
64403
- }
64404
- function requestPreviewSidebarOpen(input) {
64405
- if (typeof window === "undefined") return;
64406
- const request = normalizeOpenRequest(input);
64407
- setPreviewSidebarTab(request.tab);
64408
- window.dispatchEvent(new window.CustomEvent(REQUEST_EVENT, { detail: request }));
64409
- }
64410
- function onPreviewSidebarOpenRequest(handler) {
64411
- if (typeof window === "undefined") return () => void 0;
64412
- const listener = (event) => {
64413
- if (!("detail" in event)) return;
64414
- handler(parsePreviewSidebarOpenRequestDetail(event.detail));
64415
- };
64416
- window.addEventListener(REQUEST_EVENT, listener);
64417
- return () => window.removeEventListener(REQUEST_EVENT, listener);
64418
- }
64419
- function isRecord$10(value) {
64420
- return typeof value === "object" && value !== null;
64421
- }
64422
- function isPreviewDesignRow(value) {
64423
- return value === "header" || value === "footer" || value === "header-layout" || value === "header-style" || value === "footer-layout";
64424
- }
64425
- //#endregion
64426
64431
  //#region ../preview-next/src/client/preview/previewChromeSurface.ts
64427
64432
  const PREVIEW_CHROME_THEME_CLASS_NAME = "builder-dashboard-chrome-theme";
64428
64433
  const PREVIEW_CHROME_PORTAL_CLASS_NAME = "builder-editor-chrome";
@@ -67152,6 +67157,23 @@ function PreviewAuthBanner({ dashboardBaseUrl = null, surfaceId }) {
67152
67157
  })] });
67153
67158
  }
67154
67159
  //#endregion
67160
+ //#region ../preview-next/src/client/preview/sidebarTabPreference.ts
67161
+ const STORAGE_KEY = "preview-sidebar-tab";
67162
+ function getPreviewSidebarTab() {
67163
+ if (typeof window === "undefined") return "editor";
67164
+ try {
67165
+ return resolvePreviewSidebarTab(window.localStorage.getItem(STORAGE_KEY) === "assistant" ? "assistant" : "editor");
67166
+ } catch {
67167
+ return "editor";
67168
+ }
67169
+ }
67170
+ function setPreviewSidebarTab(tab) {
67171
+ if (typeof window === "undefined") return;
67172
+ try {
67173
+ window.localStorage.setItem(STORAGE_KEY, resolvePreviewSidebarTab(tab));
67174
+ } catch {}
67175
+ }
67176
+ //#endregion
67155
67177
  //#region ../blocks/src/client/site-chrome.tsx
67156
67178
  const siteChromeBlockRenderDeps = {
67157
67179
  buildThemeRuntime,
@@ -67944,12 +67966,12 @@ function SiteChromeCustomizeButton({ surface, containerClassName = "pointer-even
67944
67966
  return surfaceState.options.filter((option) => option.available).length;
67945
67967
  }, [surfaceState]);
67946
67968
  const cycleableLayoutOptionCount = useMemo(() => {
67947
- if (surfaceState.kind !== "available") return 0;
67969
+ if (surfaceState.kind !== "available" || surfaceState.surface !== "header") return 0;
67948
67970
  return surfaceState.layoutOptions.filter((option) => option.available).length;
67949
67971
  }, [surfaceState]);
67950
67972
  const controlPlan = useMemo(() => {
67951
67973
  if (surfaceState.kind !== "available" || !background) return { cycleRows: [] };
67952
- return { cycleRows: [...surfaceState.surface === "header" || surfaceState.surface === "footer" ? [{
67974
+ return { cycleRows: [...surfaceState.surface === "header" ? [{
67953
67975
  label: "Layout",
67954
67976
  valueLabel: surfaceState.currentLayoutLabel,
67955
67977
  previousLabel: `Previous ${surface} Layout`,
@@ -67958,13 +67980,13 @@ function SiteChromeCustomizeButton({ surface, containerClassName = "pointer-even
67958
67980
  canCycle: cycleableLayoutOptionCount > 1,
67959
67981
  applyAllowed: surfaceState.applyAllowed
67960
67982
  }),
67961
- onPrevious: () => customize?.cycleSurfaceLayout(surface, "prev"),
67962
- onNext: () => customize?.cycleSurfaceLayout(surface, "next")
67983
+ onPrevious: () => customize?.cycleHeaderLayout("prev"),
67984
+ onNext: () => customize?.cycleHeaderLayout("next")
67963
67985
  }] : [], {
67964
- label: "Look",
67986
+ label: surfaceState.surface === "footer" ? "Links" : "Look",
67965
67987
  valueLabel: surfaceState.currentLabel,
67966
- previousLabel: `Previous ${surface} Look`,
67967
- nextLabel: `Next ${surface} Look`,
67988
+ previousLabel: surfaceState.surface === "footer" ? "Previous footer link treatment" : "Previous header Look",
67989
+ nextLabel: surfaceState.surface === "footer" ? "Next footer link treatment" : "Next header Look",
67968
67990
  availability: cycleAvailabilityFromFlags({
67969
67991
  canCycle: cycleableOptionCount > 1,
67970
67992
  applyAllowed: surfaceState.applyAllowed
@@ -68071,7 +68093,7 @@ function SiteChromeCustomizeButton({ surface, containerClassName = "pointer-even
68071
68093
  })]
68072
68094
  })]
68073
68095
  }) : null,
68074
- /* @__PURE__ */ jsx("div", {
68096
+ editorUiStore && (surfaceState.surface === "footer" || customize?.canOpenDesignEditor === true) ? /* @__PURE__ */ jsx("div", {
68075
68097
  className: "border-t pt-2",
68076
68098
  children: /* @__PURE__ */ jsx("button", {
68077
68099
  type: "button",
@@ -68079,20 +68101,19 @@ function SiteChromeCustomizeButton({ surface, containerClassName = "pointer-even
68079
68101
  onClick: (event) => {
68080
68102
  event.preventDefault();
68081
68103
  event.stopPropagation();
68082
- if (surfaceState.surface === "footer") {
68083
- const editorUi = editorUiStore?.getState();
68084
- editorUi?.inspectFooter();
68085
- editorUi?.setPreviewSidebarTab("editor");
68086
- editorUi?.setDrawerOpen(true);
68087
- } else requestPreviewSidebarOpen({
68088
- tab: "editor",
68089
- designRow: "header-style"
68104
+ if (surfaceState.surface === "footer") editorUiStore.getState().openPreviewEditor({
68105
+ kind: "footer",
68106
+ target: "overview"
68107
+ });
68108
+ else editorUiStore.getState().openPreviewEditor({
68109
+ kind: "design",
68110
+ row: "header-style"
68090
68111
  });
68091
68112
  popover.close();
68092
68113
  },
68093
68114
  children: surfaceState.surface === "footer" ? "Edit footer" : "More options"
68094
68115
  })
68095
- }),
68116
+ }) : null,
68096
68117
  surfaceState.diagnostics.length > 0 ? /* @__PURE__ */ jsx("ul", {
68097
68118
  className: "space-y-1 text-xs text-amber-700",
68098
68119
  children: surfaceState.diagnostics.map((diagnostic) => /* @__PURE__ */ jsx("li", { children: diagnostic }, diagnostic))
@@ -68274,7 +68295,13 @@ function renderEditableSurface(children, surface, options) {
68274
68295
  });
68275
68296
  }
68276
68297
  function FooterModuleInspectionSurface({ children }) {
68277
- const uiStore = useOptionalEditorUiStoreInstance();
68298
+ const editorUiStore = useOptionalEditorUiStoreInstance();
68299
+ return editorUiStore ? /* @__PURE__ */ jsx(EnabledFooterModuleInspectionSurface, {
68300
+ editorUiStore,
68301
+ children
68302
+ }) : /* @__PURE__ */ jsx(Fragment$1, { children });
68303
+ }
68304
+ function EnabledFooterModuleInspectionSurface({ children, editorUiStore }) {
68278
68305
  const rootRef = useRef(null);
68279
68306
  const [active, setActive] = useState(null);
68280
68307
  const [position, setPosition] = useState(null);
@@ -68304,9 +68331,10 @@ function FooterModuleInspectionSurface({ children }) {
68304
68331
  });
68305
68332
  };
68306
68333
  const inspect = (moduleId) => {
68307
- uiStore?.getState().inspectFooterModule(moduleId);
68308
- uiStore?.getState().setPreviewSidebarTab("editor");
68309
- uiStore?.getState().setDrawerOpen(true);
68334
+ editorUiStore.getState().openPreviewEditor({
68335
+ kind: "footer",
68336
+ target: { moduleId }
68337
+ });
68310
68338
  };
68311
68339
  return /* @__PURE__ */ jsxs("div", {
68312
68340
  ref: rootRef,
@@ -68322,7 +68350,7 @@ function FooterModuleInspectionSurface({ children }) {
68322
68350
  event.preventDefault();
68323
68351
  inspect(parsed.value);
68324
68352
  },
68325
- children: [children, active && position && uiStore ? /* @__PURE__ */ jsx("button", {
68353
+ children: [children, active && position ? /* @__PURE__ */ jsx("button", {
68326
68354
  type: "button",
68327
68355
  className: "pointer-events-auto fixed z-[75] rounded-full border bg-background px-3 py-1.5 text-xs font-medium text-foreground shadow-md",
68328
68356
  style: position,
@@ -68570,17 +68598,17 @@ function LinkedEntryEditEventBridge() {
68570
68598
  //#region ../preview-next/src/client/preview/PreviewShellLayout.tsx
68571
68599
  const previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
68572
68600
  const PreviewEditorSidebar = React.lazy(async () => {
68573
- return { default: (await import("./PreviewEditorSidebar-DWqwfy3_.mjs")).PreviewEditorSidebar };
68601
+ return { default: (await import("./PreviewEditorSidebar-CTR6LUhN.mjs")).PreviewEditorSidebar };
68574
68602
  });
68575
68603
  const PreviewEditorUI = React.lazy(async () => {
68576
- return { default: (await import("./PreviewEditorUI-B7OL4sfR.mjs")).PreviewEditorUI };
68604
+ return { default: (await import("./PreviewEditorUI-DZg15Zip.mjs")).PreviewEditorUI };
68577
68605
  });
68578
68606
  const previewPaneContainmentStyle = {
68579
68607
  contain: "layout paint",
68580
68608
  isolation: "isolate",
68581
68609
  transform: "translateZ(0)"
68582
68610
  };
68583
- function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, apiClient, bearerToken, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime = defaultPreviewThemeRuntime, siteStyleAccess = { kind: "hidden" }, onFooterSaved }) {
68611
+ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, apiClient, bearerToken, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonStyleSelection = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime = defaultPreviewThemeRuntime, siteStyleAccess = { kind: "hidden" }, onFooterSaved }) {
68584
68612
  const layout = useOptionalPreviewLayout();
68585
68613
  const headerNode = layout?.headerNode ?? null;
68586
68614
  const bannerNode = layout?.bannerNode ?? null;
@@ -68591,7 +68619,6 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68591
68619
  const setDrawerOpen = useEditorUiStore((s) => s.setDrawerOpen);
68592
68620
  const sidebarTab = useEditorUiStore((s) => s.previewSidebarTab);
68593
68621
  const setPreviewSidebarActiveTab = useEditorUiStore((s) => s.setPreviewSidebarTab);
68594
- const [designRowRequest, setDesignRowRequest] = useState(null);
68595
68622
  const viewportMode = useEditorUiStore((s) => s.viewport.mode);
68596
68623
  const viewportWidth = useEditorUiStore((s) => s.viewport.width);
68597
68624
  const sidebarWidth = useEditorUiStore((s) => s.viewport.sidebarWidth);
@@ -68664,19 +68691,6 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68664
68691
  useEffect(() => {
68665
68692
  setPreviewSidebarActiveTab(getPreviewSidebarTab());
68666
68693
  }, [setPreviewSidebarActiveTab]);
68667
- useEffect(() => {
68668
- return onPreviewSidebarOpenRequest((request) => {
68669
- setPreviewSidebarActiveTab(request.tab);
68670
- if (request.designRow) {
68671
- const row = request.designRow;
68672
- setDesignRowRequest((current) => ({
68673
- id: (current?.id ?? 0) + 1,
68674
- row
68675
- }));
68676
- }
68677
- setDrawerOpen(true);
68678
- });
68679
- }, [setDrawerOpen, setPreviewSidebarActiveTab]);
68680
68694
  const [containerWidth, setContainerWidth] = useState(0);
68681
68695
  const [contentHeight, setContentHeight] = useState(0);
68682
68696
  const containerObserverRef = useRef(null);
@@ -68769,15 +68783,13 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68769
68783
  themeSelectionId,
68770
68784
  themeSelectionVersion,
68771
68785
  themeSelectionUpdatedAt,
68772
- themeSelectionButtonPersonalityId,
68786
+ themeSelectionButtonStyleSelection,
68773
68787
  runtimePaletteState,
68774
68788
  themeSelectionHeaderLayoutId,
68775
68789
  themeSelectionHeaderStyleId,
68776
68790
  themeSelectionHeaderLookId,
68777
68791
  themeSelectionFooterLookId,
68778
68792
  themeSelectionHeaderContext,
68779
- themeSelectionFooterContext,
68780
- designRowRequest,
68781
68793
  supabaseUrl,
68782
68794
  sdkConfig: sdkConfig ?? null,
68783
68795
  activeTab: sidebarTab,
@@ -68812,6 +68824,10 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68812
68824
  apiClient
68813
68825
  })
68814
68826
  });
68827
+ const previewBanner = /* @__PURE__ */ jsx(PreviewAuthBanner, {
68828
+ dashboardBaseUrl,
68829
+ surfaceId
68830
+ });
68815
68831
  return /* @__PURE__ */ jsx(PreviewThemeOverlayProvider, {
68816
68832
  baseTheme: theme,
68817
68833
  children: /* @__PURE__ */ jsx(PreviewDesignCoordinatorProvider, { children: /* @__PURE__ */ jsx(SiteChromeCustomizeProvider, {
@@ -68825,7 +68841,7 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68825
68841
  initialSelections: {
68826
68842
  selectionVersion: themeSelectionVersion,
68827
68843
  selectionUpdatedAt: themeSelectionUpdatedAt,
68828
- buttonPersonalityId: themeSelectionButtonPersonalityId,
68844
+ buttonStyleSelection: themeSelectionButtonStyleSelection,
68829
68845
  runtimePaletteState,
68830
68846
  headerLayoutId: themeSelectionHeaderLayoutId,
68831
68847
  headerStyleId: themeSelectionHeaderStyleId,
@@ -68833,15 +68849,12 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68833
68849
  footerLookId: themeSelectionFooterLookId
68834
68850
  },
68835
68851
  headerSelectionContext: themeSelectionHeaderContext,
68836
- footerSelectionContext: themeSelectionFooterContext,
68837
68852
  siteStyleAccess,
68853
+ canOpenDesignEditor: entryData == null && pageId !== null && canInspectSiteStyle(siteStyleAccess),
68838
68854
  children: /* @__PURE__ */ jsxs(PreviewBlockCustomizeSelectionProvider, { children: [
68839
68855
  /* @__PURE__ */ jsx(LinkedEntryEditEventBridge, {}),
68840
68856
  editorUI,
68841
- /* @__PURE__ */ jsx(PreviewAuthBanner, {
68842
- dashboardBaseUrl,
68843
- surfaceId
68844
- }),
68857
+ previewBanner,
68845
68858
  /* @__PURE__ */ jsx("div", {
68846
68859
  className: "fixed inset-0 overflow-hidden bg-background",
68847
68860
  children: isOpen ? /* @__PURE__ */ jsx(ResizableSplitPane, {
@@ -68864,7 +68877,7 @@ function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseU
68864
68877
  }
68865
68878
  //#endregion
68866
68879
  //#region ../preview-next/src/client/preview/PreviewShell.tsx
68867
- function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl = null, surfaceId, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime = defaultPreviewThemeRuntime, designEditorEligibility, hideSiteStyleConfigurator = false, baseFetch, onFooterSaved }) {
68880
+ function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl = null, surfaceId, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonStyleSelection = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime = defaultPreviewThemeRuntime, designEditorEligibility, hideSiteStyleConfigurator = false, baseFetch, onFooterSaved }) {
68868
68881
  const apiClient = useMemo(() => createBearerAPIClient(previewToken, apiBaseUrl), [previewToken, apiBaseUrl]);
68869
68882
  const resolvedDesignEditorEligibility = designEditorEligibility ?? defaultDesignEditorEligibility({
68870
68883
  pageId,
@@ -68921,14 +68934,13 @@ function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug,
68921
68934
  themeSelectionId,
68922
68935
  themeSelectionVersion,
68923
68936
  themeSelectionUpdatedAt,
68924
- themeSelectionButtonPersonalityId,
68937
+ themeSelectionButtonStyleSelection,
68925
68938
  runtimePaletteState,
68926
68939
  themeSelectionHeaderLayoutId,
68927
68940
  themeSelectionHeaderStyleId,
68928
68941
  themeSelectionHeaderLookId,
68929
68942
  themeSelectionFooterLookId,
68930
68943
  themeSelectionHeaderContext,
68931
- themeSelectionFooterContext,
68932
68944
  supabaseUrl,
68933
68945
  isSiteLaunched,
68934
68946
  maintenanceModeEnabled,
@@ -69796,7 +69808,6 @@ function BlockToolbar({ blockId, blockKind, content, bookingOfferingPresets, the
69796
69808
  e.preventDefault();
69797
69809
  e.stopPropagation();
69798
69810
  const state = uiStore.getState();
69799
- setPreviewSidebarTab("editor");
69800
69811
  state.setPreviewSidebarTab("editor");
69801
69812
  state.setDrawerOpen(true);
69802
69813
  state.requestFocus({
@@ -69813,7 +69824,6 @@ function BlockToolbar({ blockId, blockKind, content, bookingOfferingPresets, the
69813
69824
  e.stopPropagation();
69814
69825
  inspectBlock();
69815
69826
  const state = uiStore.getState();
69816
- setPreviewSidebarTab("editor");
69817
69827
  state.setPreviewSidebarTab("editor");
69818
69828
  state.setDrawerOpen(true);
69819
69829
  }, [inspectBlock, uiStore]);
@@ -71407,4 +71417,4 @@ function deriveDashboardBaseUrlFromApiBaseUrl(apiBaseUrl) {
71407
71417
  }
71408
71418
  }
71409
71419
  //#endregion
71410
- export { buildFontPreviewUrl as C, Callout as D, FixedBottomSurface as E, CalloutDescription as O, isAdapterReferenceKind as S, getSiteFontsStorageUrl as T, usePreviewBlockCustomizeSelectionOptional as _, usePreviewPageDesignEditorState as a, previewWidgetOverrides as b, applyPreviewChromeSurfaceToElement as c, buildPreviewDashboardSetupUrl as d, resolvePreviewDashboardSetupHandoff as f, canInspectSiteStyle as g, canApplySiteStyle as h, PreviewShellLayout as i, resolvePreviewChromeSurface as l, resolvePreviewSidebarChromeModel as m, SdkPreviewModeRuntime_exports as n, PREVIEW_CHROME_PORTAL_CLASS_NAME as o, resolvePreviewEditorGuidanceModel as p, PreviewShell as r, PREVIEW_CHROME_THEME_CLASS_NAME as s, SdkPreviewModeRuntime as t, setPreviewSidebarTab as u, useBlockCustomizeControls as v, generateFontFaceCss as w, BlockEditor as x, PreviewFormProvider as y };
71420
+ export { generateFontFaceCss as C, Callout as D, FixedBottomSurface as E, CalloutDescription as O, buildFontPreviewUrl as S, ThemeScope as T, useBlockCustomizeControls as _, usePreviewPageDesignEditorState as a, BlockEditor as b, applyPreviewChromeSurfaceToElement as c, resolvePreviewDashboardSetupHandoff as d, resolvePreviewEditorGuidanceModel as f, usePreviewBlockCustomizeSelectionOptional as g, canInspectSiteStyle as h, PreviewShellLayout as i, resolvePreviewChromeSurface as l, canApplySiteStyle as m, SdkPreviewModeRuntime_exports as n, PREVIEW_CHROME_PORTAL_CLASS_NAME as o, resolvePreviewSidebarChromeModel as p, PreviewShell as r, PREVIEW_CHROME_THEME_CLASS_NAME as s, SdkPreviewModeRuntime as t, buildPreviewDashboardSetupUrl as u, PreviewFormProvider as v, getSiteFontsStorageUrl as w, isAdapterReferenceKind as x, previewWidgetOverrides as y };