@riverbankcms/sdk 0.153.0 → 0.154.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 (216) hide show
  1. package/dist/{EventEmbeddedCheckoutStep-veN-QiAE.mjs → EventEmbeddedCheckoutStep-ba9npQtb.mjs} +1 -1
  2. package/dist/{PreviewEditorSidebar-jI_4DTZY.mjs → PreviewEditorSidebar-C7FiaxlF.mjs} +194 -22
  3. package/dist/{PreviewEditorUI-ORkVZhfu.mjs → PreviewEditorUI-DFst50q1.mjs} +20 -44
  4. package/dist/{SdkPreviewModeRuntime-DaNqevI1.mjs → SdkPreviewModeRuntime-BUNV_YHZ.mjs} +49 -32
  5. package/dist/{SiteChromeCustomizeContext-CgNuBHC0.mjs → SiteChromeCustomizeContext-DEj7qppF.mjs} +3558 -2321
  6. package/dist/{ThemedButton-X2UxhW6F.mjs → ThemedButton-C8kzu0hY.mjs} +400 -81
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +364 -130
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1035 -477
  9. package/dist/_dts/api/src/billing.d.ts +2 -0
  10. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +78 -0
  11. package/dist/_dts/api/src/bookingAdjustments.d.ts +3 -2
  12. package/dist/_dts/api/src/bookingOperations.d.ts +7 -2
  13. package/dist/_dts/api/src/bookingPeople.d.ts +19 -0
  14. package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +8 -0
  15. package/dist/_dts/api/src/bookingRecords.d.ts +4 -106
  16. package/dist/_dts/api/src/bookings.d.ts +2 -3
  17. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  18. package/dist/_dts/api/src/endpoints.d.ts +88 -43
  19. package/dist/_dts/api/src/index.d.ts +4 -2
  20. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  21. package/dist/_dts/api/src/moneyPayments.d.ts +116 -0
  22. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +2 -0
  23. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
  24. package/dist/_dts/api/src/sdkThemeWire.d.ts +162 -103
  25. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -0
  26. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +17 -16
  27. package/dist/_dts/api/src/siteSettings.d.ts +1 -0
  28. package/dist/_dts/api/src/stripeConnectSetup.d.ts +90 -0
  29. package/dist/_dts/api/src/types.d.ts +11 -31
  30. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -4
  31. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  32. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -96
  33. package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +1 -1
  34. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -1
  35. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +1 -0
  36. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/events/shared/fields.d.ts +0 -4
  39. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +0 -1
  40. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
  41. package/dist/_dts/blocks/src/system/blocks/form.d.ts +10 -0
  42. package/dist/_dts/blocks/src/system/blocks/image-gallery/fields.d.ts +1 -0
  43. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +6 -1
  44. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  45. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -45
  46. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +12 -0
  47. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-layout.d.ts +23 -0
  48. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-profile.d.ts +20 -0
  49. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +17 -16
  50. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -1
  51. package/dist/_dts/blocks/src/system/customize/facets.d.ts +75 -9
  52. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  53. package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
  54. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/node/fragments/responsiveTwoColumn.d.ts +3 -1
  56. package/dist/_dts/blocks/src/system/node/fragments/sectionHead.d.ts +15 -0
  57. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -198
  58. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -99
  59. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +16 -4
  60. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +10 -4
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  63. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +29 -17
  65. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/form.interactive.d.ts +11 -79
  67. package/dist/_dts/blocks/src/system/runtime/nodes/form.parts.d.ts +7 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/form.server.d.ts +2 -13
  69. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +8 -72
  70. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +6 -6
  71. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -0
  74. package/dist/_dts/blocks/src/system/transforms/registry/footerArrangement.d.ts +6 -0
  75. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -11
  76. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -10
  77. package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +1 -0
  78. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +5 -2
  79. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +1 -1
  80. package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +6 -3
  81. package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +1 -1
  82. package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
  83. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +3 -1
  84. package/dist/_dts/content-editor/src/footerNavigationLayoutState.d.ts +56 -0
  85. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
  86. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -4
  87. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +11 -8
  88. package/dist/_dts/core/src/booking-refunds.d.ts +2 -0
  89. package/dist/_dts/core/src/date-display.d.ts +85 -0
  90. package/dist/_dts/core/src/date-time-formatter.d.ts +2 -0
  91. package/dist/_dts/core/src/footer-arrangement.d.ts +8 -1
  92. package/dist/_dts/core/src/footer-composition-types.d.ts +6 -1
  93. package/dist/_dts/core/src/footer-composition.d.ts +1 -1
  94. package/dist/_dts/core/src/footer-navigation-layout.d.ts +3 -0
  95. package/dist/_dts/core/src/index.d.ts +2 -0
  96. package/dist/_dts/core/src/mailing-list-setup.d.ts +3 -0
  97. package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -1
  98. package/dist/_dts/core/src/public-profile.d.ts +3 -1
  99. package/dist/_dts/core/src/scheduled-date-time.d.ts +69 -0
  100. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -9
  101. package/dist/_dts/db/src/schemas/forms.d.ts +16 -16
  102. package/dist/_dts/preview-next/src/client/blocks/ArrangementBlockToolbar.d.ts +2 -1
  103. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
  104. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  105. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
  106. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +27 -5
  107. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +2 -0
  108. package/dist/_dts/preview-next/src/client/preview/useConfirmedPreferenceRecord.d.ts +12 -0
  109. package/dist/_dts/preview-next/src/client/preview/usePersistedFooterPreferences.d.ts +26 -0
  110. package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +40 -2
  111. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  112. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -46
  113. package/dist/_dts/sdk/src/date-time/index.d.ts +2 -68
  114. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  115. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -1
  116. package/dist/_dts/sdk/src/version.d.ts +1 -1
  117. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +2 -0
  118. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +2 -0
  119. package/dist/_dts/theme-core/src/buttons/styles/recipes/lanternRecipes.d.ts +60 -0
  120. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -0
  121. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +10 -1
  122. package/dist/_dts/theme-core/src/buttons/types.d.ts +358 -46
  123. package/dist/_dts/theme-core/src/buttons/typography.d.ts +24 -0
  124. package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
  125. package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +1 -1
  126. package/dist/_dts/theme-core/src/footer/generateFooterCss.d.ts +4 -1
  127. package/dist/_dts/theme-core/src/footer/mode.d.ts +2 -11
  128. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  129. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +234 -147
  130. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
  131. package/dist/_dts/theme-core/src/schema.d.ts +300 -192
  132. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +23 -7
  133. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  134. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +4 -6
  135. package/dist/_dts/theme-core/src/site-styles/compileFooterAgainstRow.d.ts +121 -0
  136. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -0
  137. package/dist/_dts/theme-core/src/site-styles/footerLookDefaults.d.ts +45 -0
  138. package/dist/_dts/theme-core/src/site-styles/footerLookRecipe.d.ts +50 -0
  139. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +9 -35
  140. package/dist/_dts/theme-core/src/site-styles/footerPreferences.d.ts +29 -0
  141. package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +2 -3
  142. package/dist/_dts/theme-core/src/site-styles/index.d.ts +4 -0
  143. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +2 -2
  144. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  145. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +8 -0
  146. package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +1 -1
  147. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  148. package/dist/_dts/ui/src/card.d.ts +1 -1
  149. package/dist/client/{BookingMailingListNote-DrchYW1m.mjs → BookingMailingListNote-CNoSqFtf.mjs} +2 -2
  150. package/dist/client/{CardListItem-CC_GVmF6.mjs → CardListItem-BkTkqBkh.mjs} +3 -3
  151. package/dist/client/{CheckboxChoice-Dq30m3DO.mjs → CheckboxChoice-CHJpsty4.mjs} +1 -1
  152. package/dist/client/{DemoBookingPortalAccess-ojwbVUmx.mjs → DemoBookingPortalAccess-C7KQKFNt.mjs} +2 -2
  153. package/dist/client/{EventCombined.client-DyN0v0Xk.mjs → EventCombined.client-BgeYMjHJ.mjs} +5 -5
  154. package/dist/client/{EventEmbeddedCheckoutStep-CgfpKc3n.mjs → EventEmbeddedCheckoutStep-BTc_lTkM.mjs} +2 -2
  155. package/dist/client/{EventListing.client-CuOuvYMz.mjs → EventListing.client-ChRs9Hl2.mjs} +2 -2
  156. package/dist/client/{LeafletStaticMap-B0WhRr3j.mjs → LeafletStaticMap-C_dNQgd0.mjs} +1 -1
  157. package/dist/client/{RichText-C1fIXBzA.mjs → RichText-BI9bzbjo.mjs} +75 -42
  158. package/dist/client/{ThemedButton-B7HFqFBg.mjs → ThemedButton-wl3Z3wkH.mjs} +1 -1
  159. package/dist/client/{accordion-DCDVWSye.mjs → accordion-6Yz8Wd83.mjs} +1 -1
  160. package/dist/client/{bookingForm-BJ3C4GlM.mjs → bookingForm-i_pKIGiY.mjs} +8 -8
  161. package/dist/client/bookings.mjs +12565 -11839
  162. package/dist/client/{carousel-BSCBhfHY.mjs → carousel-DNqd_PjC.mjs} +2 -2
  163. package/dist/client/{carousel.client-GEtOGsxo.mjs → carousel.client-BUgjPbb6.mjs} +1 -1
  164. package/dist/client/{cart-Yv-aAtck.mjs → cart-D8OBHuF4.mjs} +3 -3
  165. package/dist/client/{checkout-B9xDkl30.mjs → checkout-F3-9IGLU.mjs} +3 -3
  166. package/dist/client/client.mjs +6109 -4778
  167. package/dist/client/{context-BOGe3rIA.mjs → context-Dg4ZrxDD.mjs} +1 -1
  168. package/dist/client/{eventCalendar-D6M0T9hs.mjs → eventCalendar-BUc7YIBM.mjs} +8 -8
  169. package/dist/client/{eventCombined-NM4UFBq8.mjs → eventCombined-BwfShk2a.mjs} +4 -4
  170. package/dist/client/{eventDetails-f_FhV4O8.mjs → eventDetails-BMOVC3go.mjs} +3 -3
  171. package/dist/client/{eventListing-WLkfAROh.mjs → eventListing-BwE9PM-t.mjs} +4 -4
  172. package/dist/client/{eventRegistration-D3ejfLvW.mjs → eventRegistration-CCWPYDc7.mjs} +9 -9
  173. package/dist/client/{form-D5Or2Jyu.mjs → form-CXFr0Gd5.mjs} +115 -51
  174. package/dist/client/{headerSection-hWgnv27V.mjs → headerSection-BX8qw8kH.mjs} +3 -3
  175. package/dist/client/hooks.mjs +2041 -1193
  176. package/dist/client/{locationMap-Di1K0O2S.mjs → locationMap-B3La71m0.mjs} +3 -3
  177. package/dist/client/{media-D29-F1u_.mjs → media-B1Cbv721.mjs} +1 -1
  178. package/dist/client/{newsletterForm-CwxcwTNO.mjs → newsletterForm-DnGyR0x7.mjs} +50 -14
  179. package/dist/client/{productDetail-BLSnhPdA.mjs → productDetail-BVgTqvkb.mjs} +3 -3
  180. package/dist/client/{productList-oGytONOX.mjs → productList-CcO7kUQw.mjs} +3 -3
  181. package/dist/client/{propsDecoder-lf_dTeZS.mjs → propsDecoder-B1OeWavE.mjs} +706 -229
  182. package/dist/client/rendering/client.mjs +11868 -11098
  183. package/dist/client/rendering/islands.mjs +17 -17
  184. package/dist/client/rendering.mjs +6058 -4676
  185. package/dist/client/{routeIslandApiConfig-Bc_WVPS8.mjs → routeIslandApiConfig-Dl4vglJm.mjs} +1 -1
  186. package/dist/client/{shop-BQ3bR7fA.mjs → shop-P72nX5Fs.mjs} +7 -7
  187. package/dist/client/{shop-commerce-DDPll6ZC.mjs → shop-commerce-Bt7uraDx.mjs} +8 -8
  188. package/dist/client/{shop-commerce-store-DO-e1pTe.mjs → shop-commerce-store-C1-mxSye.mjs} +1 -1
  189. package/dist/client/{shopShared-BylM9jh1.mjs → shopShared-Db-cRGu3.mjs} +4 -4
  190. package/dist/client/{useDiscountCodeUi-B1Puub2v.mjs → useDiscountCodeUi-jvAiUoUX.mjs} +1 -1
  191. package/dist/client/{useEventPagination-BBhkmQaT.mjs → useEventPagination-BdWpCniq.mjs} +6 -6
  192. package/dist/preview-next/before-render.mjs +133 -51
  193. package/dist/preview-next/client/runtime.mjs +3 -3
  194. package/dist/preview-next/editor-chrome.css +5 -2
  195. package/dist/preview-next/keepAlive.mjs +133 -51
  196. package/dist/preview-next/middleware.mjs +133 -51
  197. package/dist/{sdk-runtime-DWCvhJGu.mjs → sdk-runtime-DLhjF2Nw.mjs} +1 -1
  198. package/dist/server/components.mjs +11284 -10014
  199. package/dist/server/config-validation.mjs +2016 -1188
  200. package/dist/server/config.mjs +2016 -1188
  201. package/dist/server/data.mjs +2041 -1193
  202. package/dist/server/date-time.mjs +258 -116
  203. package/dist/server/index.mjs +134 -52
  204. package/dist/server/next.mjs +10571 -9350
  205. package/dist/server/page-converter.mjs +1629 -941
  206. package/dist/server/prebuild.mjs +1 -1
  207. package/dist/server/rendering/server.mjs +11156 -9872
  208. package/dist/server/rendering.mjs +11284 -10014
  209. package/dist/server/routing.mjs +2204 -1283
  210. package/dist/server/server.mjs +2369 -1570
  211. package/dist/server/theme-bridge.mjs +838 -124
  212. package/dist/server/theme.mjs +348 -64
  213. package/dist/{spinner-BYM-Y81w.mjs → spinner-MTooKfck.mjs} +1 -1
  214. package/dist/styles/index.css +254 -1
  215. package/package.json +1 -1
  216. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +0 -12
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { $n as renderableMediaAssetSchema$1, Ar as makeBoundaryId, Cn as defaultThemeTokens, G as corners, H as parseThemeForPersistence, Qn as buildRenderableMediaAssetIndex, Ri as __exportAll, Si as parseSiteId, Un as paletteColorsSchema, Wn as paletteModeSchema, Xt as resolveSurface, _t as stripStaleTransitionStyleGroup, an as textColorStyle, ar as resolveSdkFooterMode, dr as asDesignBlockId, er as indexRenderableMediaAssets, fi as expectParsedBrandedId, gr as asLayoutVariantKey, nr as mediaIdentifierSchema$2, pt as isThemeV2NormalEditorRawStyleFieldName, tr as resolveManagedMediaReference, vr as asSiteStyleId, yr as assertNever$1 } from "./ThemedButton-X2UxhW6F.mjs";
2
+ import { $n as renderableMediaAssetSchema$1, Cn as defaultThemeTokens, G as corners, H as parseThemeForPersistence, Ii as __exportAll, Or as makeBoundaryId, Qn as buildRenderableMediaAssetIndex, Un as paletteColorsSchema, Wn as paletteModeSchema, Xt as resolveSurface, _r as assertNever$1, _t as stripStaleTransitionStyleGroup, an as textColorStyle, bi as parseSiteId, er as indexRenderableMediaAssets, gr as asSiteStyleId, lr as asDesignBlockId, mr as asLayoutVariantKey, nr as mediaIdentifierSchema$2, pt as isThemeV2NormalEditorRawStyleFieldName, tr as resolveManagedMediaReference, ui as expectParsedBrandedId } from "./ThemedButton-C8kzu0hY.mjs";
3
3
  import { i as useOptionalPreviewLayout, t as PreviewQueryProvider } from "./PreviewQueryProvider-AR9eEn7j.mjs";
4
- import { $ as backgroundColorTokens, $a as Tabs, $i as defineFragment, $n as createRoutingHelpers, $o as parseFooterModuleId, $r as normalizeOfferingsPreviewItemLimit, $t as FileField, Aa as sectionFactsForContent, Ai as resolveImageUrlWithContext, An as mapOptionValueForSelect, Ar as SITE_CHROME_VISIBLE_HEADER_SELECTOR, At as createEditorApiClientFactory, Bi as blogFeaturedPostFragment, Bn as createManifestFormAdapter, Br as systemCustomizeFacetDefinitionsForBlock, Bt as SiteOptionPickerField, Ci as coerceInlineTextWithFallback, Cn as clientComponentRegistry, Cr as containerResponsiveThemeCss, Ct as useUISelector, Da as resolveLookSlotSurfaces, Di as LINKED_CONTENT_ENTRY_META_KEY, Dn as useSdkConfig, Do as SlidersHorizontal, Dr as normalizeBlockContent, Dt as useEntryEditorController, Ea as resolveItemSurface, Ei as plainTextToInlineText, En as SdkConfigProvider, Er as getBlockDefinition, Fa as deriveSectionGround, Fi as richTextFragment, Fn as prepareBlockEditorManifest, Fr as compileManifestContentContract, Ft as EditLeaseDiscardedNotice, G as PreviewPageDesignEditorStateProvider, Ga as SelectValue, Gi as testimonialsHeadingFragment, Gn as getBlockManifestFromSdkConfig, Go as Button, Gr as getResponsiveScopeSpec, Gt as loadMailingListAuthoringContext, H as arrangementBlockControlsFor, Ha as SelectContent, Hi as formEmbedFragment, Ho as ChevronLeft, Hr as systemCustomizeFacetNextValue, Ht as OfferingsPreviewGroupOrderField, Ia as parseCanonicalRuntimeBackground, Ii as headingFragment, In as stripTopLevelRoutingUi, Io as Info, Ir as validateManifestDraft, It as EditLeaseModal, Ji as ctaRowFragment, Jo as baselineRevisionOf, Jr as getDefaultComponentRegistry, Jt as IconPickerField, K as usePreviewPageDesignEditorState, Ki as ctaCopyFragment, Kn as ApiRequestError, Kr as escapeStyleContent, Kt as MailingListTargetingProvider, La as resolveSectionBackground, Li as cardFragment, Ln as evaluateVisibility, Lo as Image, Lr as resolveArrangementKnobs, Lt as EditorWriteSurface, Ma as sectionTransitionFamilies, Mi as buildResolveImageUrlContext, Mn as FieldFrame, Mr as planSiteOverlayHeaderClearance, Mt as useRetentionTicks, Na as sectionTransitionFamilyForBoundaryOptionId, Ni as getCurrentResolveImageUrlContext, Nn as useField, Nr as visibleHeaderClearancePx, Nt as VIEWING_PARTICIPATION, Oa as boundaryLayout, Oi as coerceLinkedContentEntriesPayload, On as hasEmptyOption, Oo as RotateCcw, Or as offeringsPreviewBlockDefinition, Pa as sectionTransitionVariantForBoundaryOptionId, Pi as setContextResolveImageUrlContext, Pn as hideThemeV2RawStyleFields, Pr as parseStoredVariant, Qi as bodyCopyFragment, Qn as API_ENDPOINTS, Qo as buildMailingListSignupBlockSourceRef, Qr as buildOfferingsPreviewRenderStates, Qt as ButtonWidgetProvider, Ri as faqAccordionFragment, Rn as getFieldIntent, Ro as GripVertical, Rr as systemCustomizeFacetAppliesToLayoutVariant, Rt as createSiteOptionApiLoader, Si as planSiteChromePlacement, Sn as useApiMediaUploader, Sr as ThemeScope, Ta as arrangementSlotNames, Ti as isInlineTextEmpty, Tn as BlockApiProvider, Tr as makeDefaultBlockComponent, Tt as EntryControllerProvider, U as arrangementOwnedFieldIds, Ua as SelectItem, Ui as formCopyFragment, Ur as buildThemeRuntime, Ut as OfferingsPreviewWidgetProvider, V as arrangementBackgroundControlFor, Va as Select, Vi as singleButtonFragment, Vo as ChevronRight, Vr as systemCustomizeFacetLabelForValue, Vt as SiteOptionWidgetProvider, W as nextArrangementLookPin, Wa as SelectTrigger, Wi as testimonialsCarouselFragment, Wn as blocksKeys, Wr as DEFAULT_THEME_RESPONSIVE_MODE, Wt as MailingListTargetingField, Xi as ctaButton, Xn as SURFACE_IDS, Xr as buildItemDataMap, Xt as EntryPickerWidgetProvider, Yi as heroCopyFragment, Yn as SURFACE_DOCUMENT_DATA_ATTRIBUTE, Yo as isEdited, Yr as buildOfferingsCatalogueState, Yt as EntryPickerField, Zi as runTransforms, Zn as resolveSurfaceDocumentAttributes, Zo as canEditorWrite, Zr as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Zt as ButtonVariantField, _a as surfaceResolutionContextFromTheme, _i as resolveEntryRouteTarget, _n as decodePublicProductCategorySelectorQuery, _r as renderedFieldChanges, _t as renderSiteChromeBlock, aa as compileEditorModelRuntime, ai as parseGeneratedIconSetId, an as RichTextWidgetProvider, ao as DialogDescription, as as parseEditLeaseScope, at as planBackgroundOverride, ba as getGradientPreset, bi as isObjectRecord, bn as MediaEditorContextProvider, bo as X, br as unsafeAsLinkedContentEntryId, bt as PreviewTextEditor, c as PreviewDesignCoordinatorProvider, ca as readStoredMode, ci as Text$1, cn as LinkField, co as DialogTitle, cr as unwrapResponse, ct as resolveBackgroundCapability, d as usePreviewThemeOverlay, da as resolvePublishedLook, di as siblingPath, dn as PaletteProvider, dr as useOptionalEditorUiStoreInstance, dt as initPreviewAuth, ea as bindingSchema, ei as resolveOfferingsPreviewGroups, en as MediaField, eo as TabsContent, er as createSnapshotFromPageRecord, es as parseMailingListPlacementTargeting, et as canCycleBackgroundOverrideValue, fa as componentRuntimeRulesForTheme, fi as defaultTransforms, fn as usePalette, ft as registerPreviewRenewalFetcher, gi as isRichTextDoc, gn as MediaEditor, gr as renderSourceFor, hi as bookingConsentCarrierSchema, hn as createStoreBackend, hr as remoteDraftValues, ht as usePreviewToken, ia as applyCompiledRuntimeFieldsToContent, ii as parseGeneratedIconAssetId, in as RichTextField, io as DialogContent, ir as parseReferenceKind, is as selectedContentVersionId, it as parseBackgroundOverrideFromContent, ja as defaultSectionTransitionVariantForFamily, ji as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, jn as unmapValueFromSelect, jr as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, jt as createPageSurfaceEditorServices, ka as composeBoundary, ki as getLinkedContentEntryMeta, kn as mapCurrentValueForSelect, kr as projectRecurringSchedule, la as resolveEffectiveArrangement, li as RichText$1, ln as LinkWidgetProvider, lr as useEditorUiStore, ls as unsafeAsEditorBlockId, lt as resolvePreviewSidebarTab, ma as getCuratedSiteStyle, mi as publicEventsArraySchema, mn as FormRenderer, mr as planLinkedSaveHandoverRetention, mt as usePreviewAuth, n as useSiteChromeCustomizeOptional, na as blockLookFromContent, nn as ReferenceWidgetProvider, no as TabsTrigger, nr as BUILT_IN_REFERENCE_KINDS, ns as NO_BLOCK_VERSIONS, nt as enabledBackgroundModes, oa as formatSiteChromeBackgroundTokenLabel, oi as renderInlineText, on as EditorProvider, oo as DialogFooter, ot as planBackgroundTransition, pa as designRuntimeRulesForTheme, pi as calendarWindowQuerySchema, pr as activeLinkedSaveHandover, pt as renewPreviewSession, q as PreviewDesignHistoryOrderProvider, qi as heroCtaRowFragment, qo as cn, qr as mergeContentWithBlockStyleOverrides, qt as InlineTextField, ra as readBlockComposition, ri as parseBlockIconValue, rn as useRichTextImagePicker, ro as Dialog, rs as readEditorBlockVersionsFromPlacement, rt as imagePoolForOverride, sa as arrangementManifestFromVariants, si as logger, sn as useEditor, so as DialogHeader, st as rankBackgroundImagePoolItems, t as SiteChromeCustomizeProvider, ta as arrangementHooksFromContent, ti as buildAppointmentServicesView, tn as ReferenceField, to as TabsList, ts as sameMailingListPlacementTargeting, tt as defaultBackgroundOverrideForMode, u as PreviewThemeOverlayProvider, ua as resolveModeArrangement, ui as getAtPath, ur as useEditorUiStoreInstance, us as assertNever$2, ut as createGuardedPreviewApiClient, va as gradientToCss, vi as resolvePageRouteTarget, vn as DEFAULT_LAUNCH_READINESS_INPUT, vr as resolveRenderedValues, vt as PreviewRichTextEditor, wi as inlineTextToPlainText, wn as ImageResolveContextProvider, wr as createCustomBlockRegistry, wt as EditableBlockProvider, xa as deriveSiteStyleBlockPolicy, xi as isRecord$8, xn as useMediaEditorOptional, xo as Upload, xr as isSupportedLoaderEndpoint, xt as PREVIEW_EDITABLE_OUTLINE, ya as GRADIENT_PRESETS, yi as resolveRouteTarget, yn as deriveLaunchReadiness, yt as PreviewInlineTextEditor, zi as faqHeadingFragment, zn as isHeaderField, zr as systemCustomizeFacetCurrentValue, zt as createSiteOptionWidgetAdapters } from "./SiteChromeCustomizeContext-CgNuBHC0.mjs";
4
+ import { $ as defaultBackgroundOverrideForMode, $i as defineFragment, $n as createSnapshotFromPageRecord, $o as baselineRevisionOf, $r as normalizeOfferingsPreviewItemLimit, $t as MediaField, Ai as resolveImageUrlWithContext, An as unmapValueFromSelect, Ar as SITE_CHROME_VISIBLE_HEADER_SELECTOR, At as createPageSurfaceEditorServices, B as arrangementBlockControlsFor, Ba as deriveSectionGround, Bi as blogFeaturedPostFragment, Br as systemCustomizeFacetDefinitionsForBlock, Bt as SiteOptionWidgetProvider, Ci as coerceInlineTextWithFallback, Cn as ImageResolveContextProvider, Cr as resolveSdkFooterMode, Ct as EditableBlockProvider, Da as arrangementSlotNames, Di as LINKED_CONTENT_ENTRY_META_KEY, Dn as hasEmptyOption, Dr as normalizeBlockContent, Ei as plainTextToInlineText, En as useSdkConfig, Eo as Upload, Er as getBlockDefinition, Et as useEntryEditorController, Fa as sectionFactsForContent, Fi as richTextFragment, Fn as stripTopLevelRoutingUi, Fr as compileManifestContentContract, Ft as EditLeaseModal, G as PreviewDesignHistoryOrderProvider, Gi as testimonialsHeadingFragment, Gn as ApiRequestError, Gr as getResponsiveScopeSpec, Gt as MailingListTargetingProvider, H as nextArrangementLookPin, Ha as resolveSectionBackground, Hi as formEmbedFragment, Ho as Image, Hr as systemCustomizeFacetNextValue, Ht as OfferingsPreviewWidgetProvider, Ia as defaultSectionTransitionVariantForFamily, Ii as headingFragment, In as evaluateVisibility, Ir as validateManifestDraft, It as EditorWriteSurface, Ja as SelectItem, Ji as ctaRowFragment, Jn as SURFACE_DOCUMENT_DATA_ATTRIBUTE, Jr as getDefaultComponentRegistry, Jt as EntryPickerField, Ka as Select, Ki as ctaCopyFragment, Ko as ChevronRight, Kr as escapeStyleContent, Kt as InlineTextField, La as sectionTransitionFamilies, Li as cardFragment, Ln as getFieldIntent, Lr as resolveArrangementKnobs, Lt as createSiteOptionApiLoader, Ma as formatSiteChromeBackgroundTokenLabel, Mi as buildResolveImageUrlContext, Mn as useField, Mo as SlidersHorizontal, Mr as planSiteOverlayHeaderClearance, Mt as VIEWING_PARTICIPATION, Na as boundaryLayout, Ni as getCurrentResolveImageUrlContext, Nn as hideThemeV2RawStyleFields, No as RotateCcw, Nr as visibleHeaderClearancePx, Oa as resolveItemSurface, Oi as coerceLinkedContentEntriesPayload, On as mapCurrentValueForSelect, Or as offeringsPreviewBlockDefinition, Pa as composeBoundary, Pi as setContextResolveImageUrlContext, Pn as prepareBlockEditorManifest, Pr as parseStoredVariant, Pt as EditLeaseDiscardedNotice, Q as canCycleBackgroundOverrideValue, Qi as runTransforms, Qn as createRoutingHelpers, Qo as cn, Qr as buildOfferingsPreviewRenderStates, Qt as FileField, Ra as sectionTransitionFamilyForBoundaryOptionId, Ri as faqAccordionFragment, Rn as isHeaderField, Rr as systemCustomizeFacetAppliesToLayoutVariant, Rt as createSiteOptionWidgetAdapters, Sa as deriveSiteStyleBlockPolicy, Si as planSiteChromePlacement, Sn as clientComponentRegistry, Sr as containerResponsiveThemeCss, St as useUISelector, Ti as isInlineTextEmpty, Tn as SdkConfigProvider, To as X, Tr as makeDefaultBlockComponent, U as PreviewPageDesignEditorStateProvider, Ui as formCopyFragment, Un as blocksKeys, Uo as GripVertical, Ur as buildThemeRuntime, Ut as MailingListTargetingField, V as arrangementOwnedFieldIds, Va as parseCanonicalRuntimeBackground, Vi as singleButtonFragment, Vo as Info, Vr as systemCustomizeFacetLabelForValue, Vt as OfferingsPreviewGroupOrderField, W as usePreviewPageDesignEditorState, Wi as testimonialsCarouselFragment, Wn as getBlockManifestFromSdkConfig, Wr as DEFAULT_THEME_RESPONSIVE_MODE, Wt as loadMailingListAuthoringContext, Xa as SelectValue, Xi as ctaButton, Xn as resolveSurfaceDocumentAttributes, Xo as Button, Xr as buildItemDataMap, Xt as ButtonVariantField, Ya as SelectTrigger, Yi as heroCopyFragment, Yn as SURFACE_IDS, Yr as buildOfferingsCatalogueState, Yt as EntryPickerWidgetProvider, Z as backgroundColorTokens, Zi as bodyCopyFragment, Zn as API_ENDPOINTS, Zr as OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS, Zt as ButtonWidgetProvider, _i as resolveEntryRouteTarget, _n as DEFAULT_LAUNCH_READINESS_INPUT, _r as resolveRenderedValues, _t as PreviewRichTextEditor, aa as compileEditorModelRuntime, ai as parseGeneratedIconSetId, an as EditorProvider, ao as TabsContent, as as parseMailingListPlacementTargeting, at as rankBackgroundImagePoolItems, ba as GRADIENT_PRESETS, bi as isObjectRecord, bn as useMediaEditorOptional, br as isSupportedLoaderEndpoint, bt as PREVIEW_EDITABLE_OUTLINE, c as PreviewThemeOverlayProvider, ca as arrangementManifestFromVariants, ci as Text$1, cn as LinkWidgetProvider, co as Dialog, cr as useEditorUiStore, cs as readEditorBlockVersionsFromPlacement, ct as createGuardedPreviewApiClient, da as resolveModeArrangement, di as siblingPath, dn as usePalette, do as DialogFooter, dt as renewPreviewSession, ea as bindingSchema, ei as resolveOfferingsPreviewGroups, en as ReferenceField, es as isEdited, et as enabledBackgroundModes, fa as resolvePublishedLook, fi as defaultTransforms, fo as DialogHeader, fr as activeLinkedSaveHandover, ft as usePreviewAuth, gi as isRichTextDoc, gn as decodePublicProductCategorySelectorQuery, gr as renderedFieldChanges, ha as getCuratedSiteStyle, hi as bookingConsentCarrierSchema, hn as MediaEditor, hr as renderSourceFor, hs as assertNever$2, ht as renderSiteChromeBlock, ia as applyCompiledRuntimeFieldsToContent, ii as parseGeneratedIconAssetId, in as RichTextWidgetProvider, io as Tabs, is as parseFooterModuleId, it as planBackgroundTransition, ji as SECTION_BACKGROUND_MIN_SOURCE_WIDTH, jn as FieldFrame, jr as SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, jt as useRetentionTicks, ka as resolveLookSlotSurfaces, ki as getLinkedContentEntryMeta, kn as mapOptionValueForSelect, kr as projectRecurringSchedule, kt as createEditorApiClientFactory, l as usePreviewThemeOverlay, la as readStoredMode, li as RichText$1, lo as DialogContent, lr as useEditorUiStoreInstance, ls as selectedContentVersionId, lt as initPreviewAuth, ma as designRuntimeRulesForTheme, mi as publicEventsArraySchema, mn as createStoreBackend, mr as remoteDraftValues, ms as unsafeAsEditorBlockId, n as useSiteChromeCustomizeOptional, na as blockLookFromContent, nn as useRichTextImagePicker, ns as canEditorWrite, nt as parseBackgroundOverrideFromContent, o as PreviewDesignCoordinatorProvider, oi as renderInlineText, on as useEditor, oo as TabsList, os as sameMailingListPlacementTargeting, ot as resolveBackgroundCapability, pa as componentRuntimeRulesForTheme, pi as calendarWindowQuerySchema, pn as FormRenderer, po as DialogTitle, pr as planLinkedSaveHandoverRetention, pt as usePreviewToken, qa as SelectContent, qi as heroCtaRowFragment, qo as ChevronLeft, qr as mergeContentWithBlockStyleOverrides, qt as IconPickerField, ra as readBlockComposition, ri as parseBlockIconValue, rn as RichTextField, rr as parseReferenceKind, rs as buildMailingListSignupBlockSourceRef, rt as planBackgroundOverride, si as logger, sn as LinkField, so as TabsTrigger, sr as unwrapResponse, ss as NO_BLOCK_VERSIONS, st as resolvePreviewSidebarTab, t as SiteChromeCustomizeProvider, ta as arrangementHooksFromContent, ti as buildAppointmentServicesView, tn as ReferenceWidgetProvider, tr as BUILT_IN_REFERENCE_KINDS, tt as imagePoolForOverride, ua as resolveEffectiveArrangement, ui as getAtPath, un as PaletteProvider, uo as DialogDescription, ur as useOptionalEditorUiStoreInstance, us as parseEditLeaseScope, ut as registerPreviewRenewalFetcher, va as surfaceResolutionContextFromTheme, vi as resolvePageRouteTarget, vn as deriveLaunchReadiness, vt as PreviewInlineTextEditor, wi as inlineTextToPlainText, wn as BlockApiProvider, wr as createCustomBlockRegistry, wt as EntryControllerProvider, xa as getGradientPreset, xi as isRecord$8, xn as useApiMediaUploader, xr as ThemeScope, ya as gradientToCss, yi as resolveRouteTarget, yn as MediaEditorContextProvider, yr as unsafeAsLinkedContentEntryId, yt as PreviewTextEditor, z as arrangementBackgroundControlFor, za as sectionTransitionVariantForBoundaryOptionId, zi as faqHeadingFragment, zn as createManifestFormAdapter, zr as systemCustomizeFacetCurrentValue, zt as SiteOptionPickerField } from "./SiteChromeCustomizeContext-DEj7qppF.mjs";
5
5
  import * as React$1 from "react";
6
6
  import React, { Children, Fragment, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -960,10 +960,7 @@ function arrangementPhotoContent(content, knobs) {
960
960
  }) };
961
961
  }
962
962
  function arrangementContentFacts(content) {
963
- const section = isObjectRecord(content._sectionStyles) ? content._sectionStyles : {};
964
- const background = isObjectRecord(section.background) ? section.background : {};
965
- const itemPhotos = Array.isArray(content.cards) ? content.cards.filter((card) => isObjectRecord(card) && isObjectRecord(card.media)).length : 0;
966
- const photoCount = Array.isArray(content.cards) ? itemPhotos : isObjectRecord(background.image) ? 1 : 0;
963
+ const photoCount = arrangementPhotoCount(content);
967
964
  return {
968
965
  photoCount,
969
966
  facts: {
@@ -974,6 +971,13 @@ function arrangementContentFacts(content) {
974
971
  }
975
972
  };
976
973
  }
974
+ /** The content stage owns media presence for every arrangement consumer. */
975
+ function arrangementPhotoCount(content) {
976
+ if (Array.isArray(content.cards)) return content.cards.filter((card) => isObjectRecord(card) && isObjectRecord(card.media)).length;
977
+ if (Array.isArray(content.images)) return content.images.filter((item) => isObjectRecord(item) && isObjectRecord(item.image)).length;
978
+ const section = isObjectRecord(content._sectionStyles) ? content._sectionStyles : {};
979
+ return isObjectRecord((isObjectRecord(section.background) ? section.background : {}).image) ? 1 : 0;
980
+ }
977
981
  function effectiveContentKnobValue(blockKind, key, value) {
978
982
  const facet = systemCustomizeFacetDefinitionsForBlock(blockKind).find((entry) => entry.target.kind === "content-field" && entry.target.field === key);
979
983
  return facet?.target.kind === "content-field" && facet.target.boolean ? value === "true" : value;
@@ -8601,10 +8605,10 @@ function resolveShellThemeRoles(props) {
8601
8605
  }
8602
8606
  const previewContainerResponsiveEnabled = process.env.NEXT_PUBLIC_ENABLE_PREVIEW_CONTAINER_RESPONSIVE !== "false";
8603
8607
  const PreviewEditorSidebar = React.lazy(async () => {
8604
- return { default: (await import("./PreviewEditorSidebar-jI_4DTZY.mjs")).PreviewEditorSidebar };
8608
+ return { default: (await import("./PreviewEditorSidebar-C7FiaxlF.mjs")).PreviewEditorSidebar };
8605
8609
  });
8606
8610
  const PreviewEditorUI = React.lazy(async () => {
8607
- return { default: (await import("./PreviewEditorUI-ORkVZhfu.mjs")).PreviewEditorUI };
8611
+ return { default: (await import("./PreviewEditorUI-DFst50q1.mjs")).PreviewEditorUI };
8608
8612
  });
8609
8613
  const previewPaneContainmentStyle = {
8610
8614
  contain: "layout paint",
@@ -8631,6 +8635,7 @@ function renderShellProviders(input) {
8631
8635
  apiClient: input.apiClient,
8632
8636
  theme: themeRoles.persistenceTheme,
8633
8637
  headerPreferences: props.themeSelectionHeaderPreferences ?? null,
8638
+ footerPreferences: props.themeSelectionFooterPreferences,
8634
8639
  themeId: props.themeId ?? null,
8635
8640
  selectionId: props.themeSelectionId ?? null,
8636
8641
  selectionVersion: props.themeSelectionVersion ?? null,
@@ -8959,6 +8964,7 @@ function resolveShellLayoutProps(input) {
8959
8964
  themeSelectionButtonStyleSelection: props.themeSelectionButtonStyleSelection ?? null,
8960
8965
  themeSelectionButtonStyleRepairs: props.themeSelectionButtonStyleRepairs ?? [],
8961
8966
  themeSelectionHeaderPreferences: props.themeSelectionHeaderPreferences ?? null,
8967
+ themeSelectionFooterPreferences: props.themeSelectionFooterPreferences,
8962
8968
  themeSelectionHeaderSelection: props.themeSelectionHeaderSelection ?? null,
8963
8969
  themeSelectionFooterLookId: props.themeSelectionFooterLookId ?? null,
8964
8970
  themeSelectionHeaderLogo: props.themeSelectionHeaderLogo,
@@ -10393,13 +10399,16 @@ function useArrangementToolbar(input) {
10393
10399
  editHeadline: () => input.openField(headlineFieldPath(designBlock.blockKind))
10394
10400
  };
10395
10401
  }
10396
- function ArrangementControlsRow({ toolbar, blockTitle, popover, onToggleOptions, editButton }) {
10402
+ function ArrangementControlsRow({ toolbar, blockName, blockTitle, popover, onToggleOptions, editButton }) {
10397
10403
  const { controls } = toolbar;
10398
10404
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
10399
10405
  /* @__PURE__ */ jsxs("div", {
10406
+ role: "group",
10407
+ "aria-label": `${blockTitle} controls`,
10400
10408
  className: "flex min-w-0 items-center justify-end gap-1 sm:flex-wrap",
10401
10409
  "data-preview-chrome-row": "",
10402
10410
  children: [
10411
+ blockName,
10403
10412
  controls.mode ? /* @__PURE__ */ jsx(ArrangementModeSwitchPill, {
10404
10413
  blockLabel: blockTitle,
10405
10414
  mode: controls.mode,
@@ -11084,6 +11093,10 @@ function BlockToolbar({ blockId, blockKind, content, bookingOfferingPresets, the
11084
11093
  popover.toggle(e);
11085
11094
  };
11086
11095
  const blockTitle = formatBlockKindLabel$1(blockKind);
11096
+ const blockName = /* @__PURE__ */ jsx(BlockNamePill, {
11097
+ phone: selection.phone,
11098
+ label: blockTitle
11099
+ });
11087
11100
  const editButton = /* @__PURE__ */ jsx("button", {
11088
11101
  type: "button",
11089
11102
  onClick: handleEdit,
@@ -11121,16 +11134,18 @@ function BlockToolbar({ blockId, blockKind, content, bookingOfferingPresets, the
11121
11134
  });
11122
11135
  return /* @__PURE__ */ jsx(BlockToolbarFrame, {
11123
11136
  selection,
11124
- blockTitle,
11125
11137
  placement,
11126
11138
  forceVisible: popover.open,
11127
11139
  controls: arrangementToolbar ? /* @__PURE__ */ jsx(ArrangementControlsRow, {
11128
11140
  toolbar: arrangementToolbar,
11141
+ blockName,
11129
11142
  blockTitle,
11130
11143
  popover,
11131
11144
  onToggleOptions: toggleCustomize,
11132
11145
  editButton
11133
11146
  }) : /* @__PURE__ */ jsx(LegacyControlsRow, {
11147
+ blockName,
11148
+ blockTitle,
11134
11149
  popover,
11135
11150
  showCustomise: hasCustomizeControls,
11136
11151
  onToggleCustomise: toggleCustomize,
@@ -11148,7 +11163,7 @@ function BlockToolbar({ blockId, blockKind, content, bookingOfferingPresets, the
11148
11163
  * Where a block's controls go: floating with the block on wider screens, or
11149
11164
  * in one dock above the toolbar on a phone (only for the selected section).
11150
11165
  */
11151
- function BlockToolbarFrame({ selection, blockTitle, placement, forceVisible, controls, popoverPanel }) {
11166
+ function BlockToolbarFrame({ selection, placement, forceVisible, controls, popoverPanel }) {
11152
11167
  const dock = selection.phone && selection.selected;
11153
11168
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
11154
11169
  /* @__PURE__ */ jsx("span", {
@@ -11156,7 +11171,6 @@ function BlockToolbarFrame({ selection, blockTitle, placement, forceVisible, con
11156
11171
  "aria-hidden": "true",
11157
11172
  style: { display: "contents" }
11158
11173
  }),
11159
- selection.selected ? /* @__PURE__ */ jsx(SelectedBlockOutline, { label: blockTitle }) : null,
11160
11174
  dock ? /* @__PURE__ */ jsxs(PhoneBlockDock, {
11161
11175
  themeSource: selection.blockElement,
11162
11176
  children: [controls, popoverPanel]
@@ -11177,17 +11191,31 @@ function BlockToolbarFrame({ selection, blockTitle, placement, forceVisible, con
11177
11191
  })
11178
11192
  ] });
11179
11193
  }
11180
- function LegacyControlsRow({ popover, showCustomise, onToggleCustomise, editButton }) {
11194
+ /** Quiet block identity beside either toolbar's controls, omitted in the phone dock. */
11195
+ function BlockNamePill({ phone, label }) {
11196
+ if (phone) return null;
11197
+ return /* @__PURE__ */ jsx("span", {
11198
+ className: "shrink-0 rounded-full bg-background/95 px-2.5 py-1 text-xs text-muted-foreground",
11199
+ children: label
11200
+ });
11201
+ }
11202
+ function LegacyControlsRow({ blockName, blockTitle, popover, showCustomise, onToggleCustomise, editButton }) {
11181
11203
  return /* @__PURE__ */ jsxs("div", {
11182
- className: "flex gap-1",
11204
+ role: "group",
11205
+ "aria-label": `${blockTitle} controls`,
11206
+ className: "flex items-center gap-1",
11183
11207
  "data-preview-chrome-row": "",
11184
- children: [showCustomise ? /* @__PURE__ */ jsx(CustomizePillButton, {
11185
- buttonRef: popover.buttonRef,
11186
- ariaLabel: "Customise",
11187
- open: popover.open,
11188
- controlsId: popover.panelId,
11189
- onClick: onToggleCustomise
11190
- }) : null, editButton]
11208
+ children: [
11209
+ blockName,
11210
+ showCustomise ? /* @__PURE__ */ jsx(CustomizePillButton, {
11211
+ buttonRef: popover.buttonRef,
11212
+ ariaLabel: "Customise",
11213
+ open: popover.open,
11214
+ controlsId: popover.panelId,
11215
+ onClick: onToggleCustomise
11216
+ }) : null,
11217
+ editButton
11218
+ ]
11191
11219
  });
11192
11220
  }
11193
11221
  function QuickManifestFields({ fields, backend, blockKind, bookingOfferingPresets }) {
@@ -11207,17 +11235,6 @@ function QuickManifestFields({ fields, backend, blockKind, bookingOfferingPreset
11207
11235
  })
11208
11236
  });
11209
11237
  }
11210
- /** A solid outline and the section's name on the selected block. */
11211
- function SelectedBlockOutline({ label }) {
11212
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
11213
- "aria-hidden": "true",
11214
- "data-preview-selected-block": "",
11215
- className: "pointer-events-none absolute inset-0 z-[40] outline outline-2 -outline-offset-2 outline-sky-600"
11216
- }), /* @__PURE__ */ jsx("span", {
11217
- className: "pointer-events-none absolute bottom-2 left-2 z-[40] rounded bg-sky-600 px-1.5 py-0.5 text-[11px] font-medium text-white",
11218
- children: label
11219
- })] });
11220
- }
11221
11238
  /** On a phone the selected section's controls sit in one dock above the toolbar. */
11222
11239
  function PhoneBlockDock({ themeSource, children }) {
11223
11240
  if (typeof document === "undefined") return null;