@riverbankcms/sdk 0.142.0 → 0.144.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 (187) hide show
  1. package/dist/{PreviewEditorSidebar-Dk6Dt11f.mjs → PreviewEditorSidebar-CQZNnFiM.mjs} +20 -26
  2. package/dist/{PreviewEditorUI-D6EQTsCA.mjs → PreviewEditorUI-DCNxnmI0.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-CC-EPkyQ.mjs → PreviewQueryProvider-BCYICImX.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-DH1n4ytY.mjs → SdkPreviewModeRuntime-BJolUbr1.mjs} +17 -8
  5. package/dist/{SiteChromeCustomizeContext-DunIzY0K.mjs → SiteChromeCustomizeContext-CKgEpoxi.mjs} +2406 -1988
  6. package/dist/_dts/api/src/billing.d.ts +1 -1
  7. package/dist/_dts/api/src/billingEndpointTypes.d.ts +8 -2
  8. package/dist/_dts/api/src/bookingConfig.d.ts +3 -1
  9. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  10. package/dist/_dts/api/src/index.d.ts +1 -1
  11. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -4
  12. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  13. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +49 -41
  14. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  15. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +8 -0
  16. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -8
  17. package/dist/_dts/api/src/siteSettings.d.ts +17 -7
  18. package/dist/_dts/billing/src/membership/index.d.ts +3 -0
  19. package/dist/_dts/block-form/src/backend/types.d.ts +14 -0
  20. package/dist/_dts/block-form/src/client/index.d.ts +1 -0
  21. package/dist/_dts/block-form/src/context/RepeaterHostActionsContext.d.ts +30 -0
  22. package/dist/_dts/block-form/src/context/index.d.ts +1 -0
  23. package/dist/_dts/block-form/src/index.d.ts +1 -0
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +4 -1
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +5 -2
  26. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +11 -1
  27. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -0
  28. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useEmptyStateFocusAfterRemoval.d.ts +8 -0
  29. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +15 -1
  30. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +5 -2
  31. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +34 -10
  32. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/constants/events.d.ts +10 -0
  34. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +7 -1
  35. package/dist/_dts/blocks/src/system/runtime/api/context.d.ts +3 -3
  36. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +18 -0
  37. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +3 -2
  38. package/dist/_dts/blocks/src/system/runtime/api/readAuthority.d.ts +11 -0
  39. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +9 -0
  40. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +95 -35
  41. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -13
  42. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -6
  43. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +9 -4
  44. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +0 -1
  45. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -3
  46. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +7 -24
  47. package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +2 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +10 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +0 -2
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +14 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +2 -1
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +1 -4
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +12 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +1 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +4 -5
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +9 -11
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +56 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +12 -6
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +23 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -5
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +7 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +7 -5
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -6
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +3 -1
  73. package/dist/_dts/blocks/src/system/runtime/nodes/header-control.d.ts +10 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +6 -21
  75. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -0
  79. package/dist/_dts/blocks/src/system/runtime/shared/components/ThemedButton.d.ts +58 -0
  80. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  81. package/dist/_dts/blocks/src/system/transforms/registry/chromeLogo.d.ts +23 -0
  82. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  83. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +3 -1
  84. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +4 -1
  85. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -4
  86. package/dist/_dts/commerce/src/purchase/eventCheckoutRecoveryWindow.d.ts +8 -0
  87. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -1
  88. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +1 -13
  89. package/dist/_dts/core/src/event-catalogue.d.ts +27 -0
  90. package/dist/_dts/core/src/event-preset-vocabulary.d.ts +7 -0
  91. package/dist/_dts/core/src/index.d.ts +2 -0
  92. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3126 -3077
  93. package/dist/_dts/db/src/schemas/forms.d.ts +286 -2
  94. package/dist/_dts/editor-blocks/src/block-editor/{BlockCardHeader.d.ts → BlockCardFrame.d.ts} +11 -3
  95. package/dist/_dts/logger/src/console.d.ts +3 -0
  96. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +1 -0
  97. package/dist/_dts/sdk/src/client/types.d.ts +3 -0
  98. package/dist/_dts/sdk/src/navigation/index.d.ts +27 -0
  99. package/dist/_dts/sdk/src/public-api/contracts.d.ts +15 -7
  100. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  101. package/dist/_dts/sdk/src/rendering/client.d.ts +1 -0
  102. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +1 -0
  103. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +7 -1
  104. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
  105. package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +3 -2
  106. package/dist/_dts/sdk/src/rendering/islands/enhancers/shopShared.d.ts +2 -0
  107. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  108. package/dist/_dts/sdk/src/version.d.ts +1 -1
  109. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +1 -1
  110. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +3 -13
  111. package/dist/_dts/theme-core/src/customCss/index.d.ts +1 -1
  112. package/dist/_dts/theme-core/src/customCss/patch.d.ts +0 -5
  113. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  114. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  115. package/dist/_dts/theme-core/src/surfaces/logoVariant.d.ts +26 -0
  116. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +10 -0
  117. package/dist/_dts/ui/src/editor-item-card.d.ts +116 -0
  118. package/dist/_dts/ui/src/index.d.ts +1 -0
  119. package/dist/client/{BookingConsentAgreement-CnJeq3_r.mjs → BookingConsentAgreement-DoAILrkN.mjs} +4 -55
  120. package/dist/client/{DiscountCodeDisclosure-BINEO6J9.mjs → DiscountCodeDisclosure-X528hUTf.mjs} +27 -17
  121. package/dist/client/{EventCombined.client-srxNQ6sZ.mjs → EventCombined.client-DSBVwq5m.mjs} +54 -46
  122. package/dist/client/{EventListing.client-DbyVyGkX.mjs → EventListing.client-DmFAX7Vb.mjs} +3 -4
  123. package/dist/client/{LeafletStaticMap-B-wpijzL.mjs → LeafletStaticMap-BAqXdfhq.mjs} +1 -1
  124. package/dist/client/ThemedButton-BwNFVwi4.mjs +412 -0
  125. package/dist/client/{accordion-B-iUXU7n.mjs → accordion-DRhMdkbd.mjs} +1 -1
  126. package/dist/client/{bookingForm-BXYPke5q.mjs → bookingForm-iJ_nCsNF.mjs} +26 -32
  127. package/dist/client/bookings.mjs +657 -650
  128. package/dist/client/{carousel-Cr4aj63H.mjs → carousel-D8zuffZr.mjs} +2 -2
  129. package/dist/client/{carousel.client-DQTjCVQT.mjs → carousel.client-jahpU9Vz.mjs} +1 -1
  130. package/dist/client/{cart-DibP9WWa.mjs → cart-DeMGJViN.mjs} +3 -3
  131. package/dist/client/{checkout-CrSBVnL8.mjs → checkout-DXc06Km2.mjs} +3 -3
  132. package/dist/client/{checkoutUrls-FL6lRkrt.mjs → checkoutUrls-CW3-78uu.mjs} +1 -1
  133. package/dist/client/client.mjs +2714 -2448
  134. package/dist/client/{colorStyles-3013aRAY.mjs → colorStyles-CuJBiS-1.mjs} +16 -4
  135. package/dist/client/{context-Ces-AgdR.mjs → context-CDLCfDep.mjs} +35 -8
  136. package/dist/client/{dates-BXyNeNhB.mjs → dates-ClFx7Epy.mjs} +2 -2
  137. package/dist/client/{eventCalendar-HwpPeqrH.mjs → eventCalendar-BaGpnOGN.mjs} +39 -50
  138. package/dist/client/{eventCombined-BpFUkuEI.mjs → eventCombined-ywONOx2m.mjs} +5 -4
  139. package/dist/client/{eventDetails-DK_agiWy.mjs → eventDetails-B2LlOTYY.mjs} +4 -4
  140. package/dist/client/{eventListing-DhzHqP1c.mjs → eventListing-CMgxWpqP.mjs} +5 -4
  141. package/dist/client/{eventRegistration-BdQ_Dn2d.mjs → eventRegistration-BarLDNHR.mjs} +549 -592
  142. package/dist/client/{form-B1frcuzy.mjs → form-BjqKaBJ7.mjs} +9 -10
  143. package/dist/client/{headerSection-CT5z460s.mjs → headerSection-CP4XDwz1.mjs} +23 -30
  144. package/dist/client/hooks.mjs +269 -63
  145. package/dist/client/{locationMap-CIQXB9i2.mjs → locationMap-C5gW-d-w.mjs} +9 -10
  146. package/dist/client/{media-DHpfFwd3.mjs → media-BtJ37tzS.mjs} +1 -1
  147. package/dist/client/{newsletterForm-BYNYZSes.mjs → newsletterForm-afXlVSA0.mjs} +8 -9
  148. package/dist/client/{pricing-CbTlAsmt.mjs → pricing-Bl1CAl28.mjs} +1 -1
  149. package/dist/client/{productDetail-CR7Z3yjS.mjs → productDetail-CvQ3jWQe.mjs} +3 -3
  150. package/dist/client/{productList-DXj00vzR.mjs → productList-U874PGO7.mjs} +3 -3
  151. package/dist/client/{propsDecoder-DiLiBdek.mjs → propsDecoder-DPXtCZWP.mjs} +100 -29
  152. package/dist/client/rendering/client.mjs +2397 -2279
  153. package/dist/client/rendering/islands.mjs +19 -19
  154. package/dist/client/rendering.mjs +2742 -2452
  155. package/dist/client/{routeIslandApiConfig-UNsfPcYq.mjs → routeIslandApiConfig-NGYiUWXu.mjs} +8 -1
  156. package/dist/client/{scrollToBlock-CrcbBf0h.mjs → scrollToBlock-0-C3DVhK.mjs} +1 -1
  157. package/dist/client/{shop-DgqiB_1b.mjs → shop-BXjXhM9P.mjs} +45 -58
  158. package/dist/client/{shop-commerce-D_J781in.mjs → shop-commerce-BZ6UlWJ7.mjs} +42 -55
  159. package/dist/client/{shop-commerce-store-PGUbDwqe.mjs → shop-commerce-store-DlSBXb3D.mjs} +1 -1
  160. package/dist/client/{shopShared-C_Bb2zwG.mjs → shopShared-kkEOiLPA.mjs} +6 -5
  161. package/dist/client/{useEventFilters-CM17Xpr1.mjs → useEventFilters-zvnnE1ro.mjs} +66 -355
  162. package/dist/preview-next/before-render.mjs +11 -0
  163. package/dist/preview-next/client/runtime.mjs +4 -4
  164. package/dist/preview-next/editor-chrome.css +8 -0
  165. package/dist/preview-next/keepAlive.mjs +11 -0
  166. package/dist/preview-next/middleware.mjs +11 -0
  167. package/dist/{previewAuthStore-oVttoRDO.mjs → previewAuthStore-JA6-I_sL.mjs} +11 -0
  168. package/dist/{sdk-runtime-DhmuRhIX.mjs → sdk-runtime-DFJlQt3q.mjs} +2 -2
  169. package/dist/{separator-C3hlg9LH.mjs → separator-o8GHb1xh.mjs} +1 -1
  170. package/dist/server/components.mjs +840 -625
  171. package/dist/server/config-validation.mjs +269 -63
  172. package/dist/server/config.mjs +269 -63
  173. package/dist/server/data.mjs +269 -63
  174. package/dist/server/index.mjs +20 -5
  175. package/dist/server/navigation.mjs +28 -1
  176. package/dist/server/next.mjs +14129 -13937
  177. package/dist/server/page-converter.mjs +111 -59
  178. package/dist/server/prebuild.mjs +1 -1
  179. package/dist/server/rendering/server.mjs +844 -624
  180. package/dist/server/rendering.mjs +842 -626
  181. package/dist/server/routing.mjs +306 -69
  182. package/dist/server/server.mjs +278 -68
  183. package/dist/server/theme-bridge.mjs +40 -1
  184. package/dist/styles/index.css +6 -0
  185. package/package.json +1 -1
  186. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +0 -14
  187. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +0 -8
@@ -2257,6 +2257,8 @@ const buttonSystemSchema = z.strictObject({
2257
2257
  //#endregion
2258
2258
  //#region ../theme-core/src/palette/utils/colorConversion.ts
2259
2259
  const clamp01 = (x) => Math.max(0, Math.min(1, x));
2260
+ const mod = (a, n) => (a % n + n) % n;
2261
+ const deg = (x) => mod(x, 360);
2260
2262
  function hexToRgb(hex) {
2261
2263
  const h = hex.replace(/^#/, "");
2262
2264
  const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
@@ -2279,6 +2281,45 @@ function srgbToLinear(u) {
2279
2281
  function linearToSrgb(x) {
2280
2282
  return clamp01(x <= .0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - .055) * 255;
2281
2283
  }
2284
+ function rgbToHsl(r, g, b) {
2285
+ const R = r / 255, G = g / 255, B = b / 255;
2286
+ const max = Math.max(R, G, B), min = Math.min(R, G, B);
2287
+ const d = max - min;
2288
+ let h = 0;
2289
+ if (d !== 0) {
2290
+ switch (max) {
2291
+ case R:
2292
+ h = (G - B) / d + (G < B ? 6 : 0);
2293
+ break;
2294
+ case G:
2295
+ h = (B - R) / d + 2;
2296
+ break;
2297
+ case B:
2298
+ h = (R - G) / d + 4;
2299
+ break;
2300
+ }
2301
+ h *= 60;
2302
+ }
2303
+ const l = (max + min) / 2;
2304
+ const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
2305
+ return {
2306
+ h,
2307
+ s,
2308
+ l
2309
+ };
2310
+ }
2311
+ function srgbToOklab(r, g, b) {
2312
+ const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
2313
+ const l = .4122214708 * R + .5363325363 * G + .0514459929 * B;
2314
+ const m = .2119034982 * R + .6806995451 * G + .1073969566 * B;
2315
+ const s = .0883024619 * R + .2817188376 * G + .6299787005 * B;
2316
+ const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
2317
+ return {
2318
+ L: .2104542553 * l_ + .793617785 * m_ - .0040720468 * s_,
2319
+ a: 1.9779984951 * l_ - 2.428592205 * m_ + .4505937099 * s_,
2320
+ b: .0259040371 * l_ + .7827717662 * m_ - .808675766 * s_
2321
+ };
2322
+ }
2282
2323
  function oklabToSrgb(L, a, b) {
2283
2324
  const l_ = Math.pow(L + .3963377774 * a + .2158037573 * b, 3);
2284
2325
  const m_ = Math.pow(L - .1055613458 * a - .0638541728 * b, 3);
@@ -2292,6 +2333,14 @@ function oklabToSrgb(L, a, b) {
2292
2333
  b: linearToSrgb(B)
2293
2334
  };
2294
2335
  }
2336
+ function oklabToOklch(L, a, b) {
2337
+ const C = Math.sqrt(a * a + b * b);
2338
+ return {
2339
+ L,
2340
+ C,
2341
+ h: C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI)
2342
+ };
2343
+ }
2295
2344
  function oklchToOklab(L, C, h) {
2296
2345
  const hr = h * Math.PI / 180;
2297
2346
  return {
@@ -2300,6 +2349,27 @@ function oklchToOklab(L, C, h) {
2300
2349
  b: C * Math.sin(hr)
2301
2350
  };
2302
2351
  }
2352
+ function featuresFromHex(hex) {
2353
+ const { r, g, b } = hexToRgb(hex);
2354
+ const { h, s, l } = rgbToHsl(r, g, b);
2355
+ const { L, a, b: b2 } = srgbToOklab(r, g, b);
2356
+ const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
2357
+ return {
2358
+ r,
2359
+ g,
2360
+ b,
2361
+ h,
2362
+ s,
2363
+ l,
2364
+ v: Math.max(r, g, b) / 255,
2365
+ Y: .2126 * srgbToLinear(r) + .7152 * srgbToLinear(g) + .0722 * srgbToLinear(b),
2366
+ chroma: s,
2367
+ okL,
2368
+ okC,
2369
+ okH,
2370
+ hex
2371
+ };
2372
+ }
2303
2373
  function relativeLuminance(r, g, b) {
2304
2374
  const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
2305
2375
  return .2126 * R + .7152 * G + .0722 * B;
@@ -3349,6 +3419,36 @@ function normalizedReference(value) {
3349
3419
  return normalized.length > 0 ? normalized : null;
3350
3420
  }
3351
3421
  //#endregion
3422
+ //#region ../theme-core/src/surfaces/logoVariant.ts
3423
+ /** Concrete hex behind a plain, opaque palette token, or null otherwise. */
3424
+ function opaquePaletteHexForToken(expandedPalette, token) {
3425
+ if (!token) return null;
3426
+ const parts = parseColorTokenParts(token);
3427
+ if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
3428
+ return expandedPalette[parts.token] ?? null;
3429
+ }
3430
+ /**
3431
+ * Tone of the surface a foreground token was resolved for.
3432
+ *
3433
+ * A token with opacity has no known underlay to composite against, and a raw
3434
+ * or unrecognised token has no palette hex, so both are `unknown` rather than
3435
+ * a guess.
3436
+ */
3437
+ function surfaceToneFromForegroundToken(expandedPalette, foregroundToken) {
3438
+ const hex = opaquePaletteHexForToken(expandedPalette, foregroundToken);
3439
+ if (!hex) return "unknown";
3440
+ return featuresFromHex(hex).Y >= .5 ? "dark" : "light";
3441
+ }
3442
+ /**
3443
+ * The logo to draw on a surface of the given tone. A missing variant falls
3444
+ * back to the other one, and an unknown tone uses the light-backgrounds logo,
3445
+ * which is what every site rendered before variants existed.
3446
+ */
3447
+ function selectLogoVariant(tone, variants) {
3448
+ const { forLightBackgrounds, forDarkBackgrounds } = variants;
3449
+ return tone === "dark" ? forDarkBackgrounds ?? forLightBackgrounds : forLightBackgrounds ?? forDarkBackgrounds;
3450
+ }
3451
+ //#endregion
3352
3452
  //#region ../theme-core/src/utils/colorStyles.ts
3353
3453
  const COLOR_VAR_PREFIX = "--tb-";
3354
3454
  function parseToken(source) {
@@ -3400,16 +3500,28 @@ function backgroundColorStyle(token) {
3400
3500
  return { backgroundColor: rgbColorValue(token) };
3401
3501
  }
3402
3502
  /**
3503
+ * Converts a text color token to a CSS color value that follows the enclosing
3504
+ * surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
3505
+ * to the surface foreground variables, so text adapts when a section's
3506
+ * background changes; any other token is a fixed theme color.
3507
+ *
3508
+ * @param token - Theme color token
3509
+ * @returns CSS color value
3510
+ */
3511
+ function textColorValue(token) {
3512
+ const parsed = parseToken(token);
3513
+ const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
3514
+ if (!surfaceRole) return rgbColorValue(token);
3515
+ return parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
3516
+ }
3517
+ /**
3403
3518
  * Creates a text color style object from a theme token.
3404
3519
  *
3405
3520
  * @param token - Theme color token
3406
3521
  * @returns CSSProperties with color
3407
3522
  */
3408
3523
  function textColorStyle(token) {
3409
- const parsed = parseToken(token);
3410
- const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
3411
- if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
3412
- return { color: rgbColorValue(token) };
3524
+ return { color: textColorValue(token) };
3413
3525
  }
3414
3526
  /**
3415
3527
  * Creates a border color style object from a theme token.
@@ -8313,6 +8425,33 @@ function normalizeEventCalendarDisplayMode$1(input) {
8313
8425
  if (isEventCalendarDisplayMode(input.variant)) return input.variant;
8314
8426
  return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
8315
8427
  }
8428
+ /** One closed authority for the projections required by each rendered mode. */
8429
+ function resolveEventCalendarReadPlan(input) {
8430
+ const mode = normalizeEventCalendarDisplayMode$1(input) ?? "combined";
8431
+ switch (mode) {
8432
+ case "combined": return {
8433
+ mode,
8434
+ jobs: "both",
8435
+ readProfile: "listing-card"
8436
+ };
8437
+ case "list": return {
8438
+ mode,
8439
+ jobs: "list",
8440
+ readProfile: "listing-card"
8441
+ };
8442
+ case "calendar": return {
8443
+ mode,
8444
+ jobs: "calendar",
8445
+ readProfile: "listing-card"
8446
+ };
8447
+ case "timetable":
8448
+ case "week-board": return {
8449
+ mode,
8450
+ jobs: "calendar",
8451
+ readProfile: "timetable"
8452
+ };
8453
+ }
8454
+ }
8316
8455
  function isEventCalendarDefaultView(value) {
8317
8456
  return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
8318
8457
  }
@@ -8322,8 +8461,7 @@ function isEventCalendarListLayout(value) {
8322
8461
  //#endregion
8323
8462
  //#region ../blocks/src/system/blocks/events/shared/calendarWindow.ts
8324
8463
  function resolveCalendarReadProfile(content) {
8325
- const mode = normalizeEventCalendarDisplayMode$1(content);
8326
- return mode === "timetable" || mode === "week-board" ? "timetable" : "listing-card";
8464
+ return resolveEventCalendarReadPlan(content).readProfile;
8327
8465
  }
8328
8466
  /** Runtime picker sentinels and bound loader IDs must describe the same query. */
8329
8467
  function normalizeCalendarFilterId(value) {
@@ -9699,6 +9837,17 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9699
9837
  //#endregion
9700
9838
  //#region ../api/src/publicEventEndpointDefinitions.ts
9701
9839
  const PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
9840
+ checkPublicEventRegistrationNextStep: {
9841
+ path: "/public/sites/{siteId}/events/registration-next-step",
9842
+ method: "POST",
9843
+ auth: "public",
9844
+ responseKind: "json",
9845
+ errors: [
9846
+ "validation:invalid_input",
9847
+ "auth:forbidden",
9848
+ "server:internal_error"
9849
+ ]
9850
+ },
9702
9851
  listPublicEventCalendarWindow: {
9703
9852
  path: "/public/sites/{siteId}/events/calendar-window",
9704
9853
  method: "GET",
@@ -21108,9 +21257,7 @@ function navRow(opts) {
21108
21257
  rel: { $bind: { from: `${childItemName}.rel` } },
21109
21258
  "data-active": { $bind: { from: `${childItemName}.active` } }
21110
21259
  }, [text({ as: "span" }, bind(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
21111
- const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [button({
21112
- type: "button",
21113
- variantId: "",
21260
+ const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [el("headerControl", {
21114
21261
  className: prependClassName("nav-dropdown-trigger", linkClassName),
21115
21262
  "aria-haspopup": "menu",
21116
21263
  "aria-expanded": "false",
@@ -21178,9 +21325,7 @@ function navColumn(opts) {
21178
21325
  const dropdown = el("div", {
21179
21326
  className: "nav-mobile-dropdown",
21180
21327
  "data-nav-mobile-dropdown": "true"
21181
- }, [button({
21182
- type: "button",
21183
- variantId: "",
21328
+ }, [el("headerControl", {
21184
21329
  className: triggerClassName,
21185
21330
  "aria-expanded": "false",
21186
21331
  "aria-controls": childrenId,
@@ -27492,6 +27637,49 @@ const layoutTransforms = [
27492
27637
  footerLogoMediaClassTransform,
27493
27638
  footerLogoTextVisibleTransform
27494
27639
  ];
27640
+ //#endregion
27641
+ //#region ../blocks/src/system/transforms/registry/chromeLogo.ts
27642
+ const chromeLogoSchema = z.object({ surface: z.enum([
27643
+ "header-root",
27644
+ "header-mobile-panel",
27645
+ "footer-root"
27646
+ ]) });
27647
+ /** The brand foreground shares the logo's surface; navigation may own a separate capsule. */
27648
+ function chromeSurfaceTextToken(surface, theme, palette) {
27649
+ switch (surface) {
27650
+ case "header-root": {
27651
+ const header = theme.header;
27652
+ const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
27653
+ return foreground.kind === "known" ? foreground.roles.text : resolveHeaderLeafTextColor(header);
27654
+ }
27655
+ case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
27656
+ case "footer-root": {
27657
+ const foreground = resolveFooterRootForeground(theme.footer, palette);
27658
+ return foreground.kind === "known" ? foreground.roles.text : void 0;
27659
+ }
27660
+ }
27661
+ }
27662
+ function readChromeTheme(viewModel) {
27663
+ return asPartialObject(asPartialObject(viewModel?.["$root"])?.theme) ?? {};
27664
+ }
27665
+ function resolveChromeSurfaceTone(surface, context) {
27666
+ return surfaceToneFromForegroundToken(context.theme.palette, chromeSurfaceTextToken(surface, readChromeTheme(context.viewModel), context.theme.palette));
27667
+ }
27668
+ const chromeLogoTransforms = [{
27669
+ id: "layout.chromeLogo",
27670
+ kind: "formatter",
27671
+ summary: "Select the light- or dark-background site logo for a header or footer surface",
27672
+ schema: chromeLogoSchema,
27673
+ run: (value, options, context) => {
27674
+ const content = asPartialObject(value);
27675
+ const variants = asPartialObject(content?.logoVariants);
27676
+ if (!variants) return content?.logo ?? null;
27677
+ return selectLogoVariant(resolveChromeSurfaceTone(options.surface, context), {
27678
+ forLightBackgrounds: variants.forLightBackgrounds ?? null,
27679
+ forDarkBackgrounds: variants.forDarkBackgrounds ?? null
27680
+ });
27681
+ }
27682
+ }];
27495
27683
  const headerRuntimeTransforms = [{
27496
27684
  id: "layout.headerRuntimeContract",
27497
27685
  kind: "formatter",
@@ -27691,46 +27879,42 @@ const whenTransformed = (from, transformId, equals = true) => (node) => ({
27691
27879
  equals
27692
27880
  }
27693
27881
  });
27694
- const logoRow = link({
27882
+ /** Draw whichever site logo suits the surface this row sits on. */
27883
+ const bindChromeLogo = (surface) => bind("content", { transforms: [{
27884
+ id: "layout.chromeLogo",
27885
+ options: { surface }
27886
+ }] });
27887
+ /**
27888
+ * The brand link. The logo is chosen per surface because the open mobile menu
27889
+ * paints its own background, which may be the opposite tone to the header.
27890
+ */
27891
+ const createLogoRow = (surface) => link({
27695
27892
  href: "/",
27696
27893
  className: bindProp("$root.theme.header.logo", {
27697
27894
  transforms: pipe(tx("layout.headerLogoClass")),
27698
27895
  fallback: "header-logo rb-flex rb-min-w-0 rb-items-center rb-gap-3 rb-no-underline rb-transition-opacity rb-hover-opacity-80"
27699
27896
  })
27700
- }, [
27701
- media({ className: bindProp("$root.theme.header.logo", {
27702
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
27703
- fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
27704
- }) }, when("content.logo"), bind("content.logo")),
27705
- stack({ className: "rb-contents" }, [media({ className: bindProp("$root.theme.header.logo", {
27706
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
27707
- fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
27708
- }) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
27709
- text({
27710
- as: "strong",
27711
- className: "header-logo-text rb-truncate"
27712
- }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
27713
- ]);
27897
+ }, [media({ className: bindProp("$root.theme.header.logo", {
27898
+ transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
27899
+ fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
27900
+ }) }, when("content.logo"), bindChromeLogo(surface)), text({
27901
+ as: "strong",
27902
+ className: "header-logo-text rb-truncate"
27903
+ }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
27904
+ const logoRow = createLogoRow("header-root");
27714
27905
  const centeredLogoRow = link({
27715
27906
  href: "/",
27716
27907
  className: bindProp("$root.theme.header.logo", {
27717
27908
  transforms: pipe(tx("layout.headerLogoClass", { base: "header-logo rb-flex rb-items-center rb-justify-center rb-gap-3 rb-text-center rb-no-underline rb-transition-opacity rb-hover-opacity-80" })),
27718
27909
  fallback: "header-logo rb-flex rb-items-center rb-justify-center rb-gap-3 rb-text-center rb-no-underline rb-transition-opacity rb-hover-opacity-80"
27719
27910
  })
27720
- }, [
27721
- media({ className: bindProp("$root.theme.header.logo", {
27722
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
27723
- fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
27724
- }) }, when("content.logo"), bind("content.logo")),
27725
- stack({ className: "rb-contents" }, [media({ className: bindProp("$root.theme.header.logo", {
27726
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
27727
- fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
27728
- }) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
27729
- text({
27730
- as: "strong",
27731
- className: "header-logo-text"
27732
- }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
27733
- ]);
27911
+ }, [media({ className: bindProp("$root.theme.header.logo", {
27912
+ transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
27913
+ fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
27914
+ }) }, when("content.logo"), bindChromeLogo("header-root")), text({
27915
+ as: "strong",
27916
+ className: "header-logo-text"
27917
+ }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
27734
27918
  const createNavRow = (className, align = "end") => navRow({
27735
27919
  className: `${className} header-nav-row`,
27736
27920
  align,
@@ -27770,10 +27954,8 @@ const mobileToggleIcon = stack({
27770
27954
  }
27771
27955
  ]);
27772
27956
  const mobileToggleButton = {
27773
- type: "button",
27957
+ type: "headerControl",
27774
27958
  props: {
27775
- type: "button",
27776
- variantId: "",
27777
27959
  className: `nav-mobile-toggle ${mobileOnlyDisplay("inline-flex")} rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard`,
27778
27960
  "aria-label": "Open menu",
27779
27961
  "aria-expanded": "false",
@@ -27783,10 +27965,8 @@ const mobileToggleButton = {
27783
27965
  children: [mobileToggleIcon]
27784
27966
  };
27785
27967
  const mobileOverlayToggleButton = {
27786
- type: "button",
27968
+ type: "headerControl",
27787
27969
  props: {
27788
- type: "button",
27789
- variantId: "",
27790
27970
  className: "nav-mobile-toggle rb-inline-flex rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard",
27791
27971
  "aria-label": "Open menu",
27792
27972
  "aria-expanded": "false",
@@ -27810,7 +27990,7 @@ const mobileOverlayHeader = inline({
27810
27990
  align: "center",
27811
27991
  justify: "between",
27812
27992
  style: borderColorStyle("border")
27813
- }, [logoRow, mobileOverlayToggleButton]);
27993
+ }, [createLogoRow("header-mobile-panel"), mobileOverlayToggleButton]);
27814
27994
  const mobileOverlayBody = stack({
27815
27995
  className: "rb-flex-1 rb-px-6 rb-py-6",
27816
27996
  gap: "md",
@@ -27997,7 +28177,10 @@ const brandLogo = link({
27997
28177
  options: { base: "rb-h-10 rb-w-auto" }
27998
28178
  }],
27999
28179
  fallback: "rb-h-10 rb-w-auto"
28000
- } } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
28180
+ } } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
28181
+ id: "layout.chromeLogo",
28182
+ options: { surface: "footer-root" }
28183
+ }] })), text({
28001
28184
  as: "strong",
28002
28185
  className: "footer-logo-text rb-nav-text"
28003
28186
  }, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
@@ -30198,6 +30381,12 @@ const occurrenceContextSchema = z.object({
30198
30381
  capacityOverride: z.number().nullable().optional(),
30199
30382
  overrides: z.record(z.string(), z.unknown()).nullable().optional()
30200
30383
  }).nullable();
30384
+ //#endregion
30385
+ //#region ../blocks/src/system/runtime/api/readAuthority.ts
30386
+ const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
30387
+ kind: z.literal("preview"),
30388
+ token: z.string().min(1)
30389
+ }).strict()]);
30201
30390
  const unsupportedEventRegistrationPageSurfaceSubjectSchema = z.object({
30202
30391
  kind: z.literal("unsupported"),
30203
30392
  reason: z.enum([
@@ -30460,6 +30649,7 @@ const eventRegistrationSourceSchema = z.object({
30460
30649
  apiBaseUrl: z.string().optional(),
30461
30650
  portalToken: z.string().nullable().optional(),
30462
30651
  previewToken: z.string().nullable().optional(),
30652
+ readAuthority: browserReadAuthoritySchema.optional(),
30463
30653
  ...eventRegistrationHydrationSchemaShape,
30464
30654
  events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
30465
30655
  wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
@@ -30497,6 +30687,7 @@ z.object({
30497
30687
  apiBaseUrl: z.string().optional(),
30498
30688
  portalToken: z.string().nullable().optional(),
30499
30689
  previewToken: z.string().nullable().optional(),
30690
+ readAuthority: browserReadAuthoritySchema.optional(),
30500
30691
  stage: previewStageSchema.optional()
30501
30692
  });
30502
30693
  function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
@@ -30572,6 +30763,7 @@ function shellLabelForRegistrationStep(step, events) {
30572
30763
  case "redirecting":
30573
30764
  case "verifying-payment":
30574
30765
  case "verifying-timeout":
30766
+ case "payment-status":
30575
30767
  case "payment-failed": return "Details";
30576
30768
  }
30577
30769
  }
@@ -30754,6 +30946,7 @@ const eventRegistrationBlockDefinition = {
30754
30946
  text({ as: "h2" }, bind("content.heading"), when("content.heading")),
30755
30947
  richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
30756
30948
  eventRegistration(withApiBindings({
30949
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
30757
30950
  occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
30758
30951
  subject: { $bind: { from: "$root.subject" } },
30759
30952
  portalToken: { $bind: {
@@ -31405,6 +31598,7 @@ const eventCollectionSourceSchemaShape = {
31405
31598
  events: z.array(publicEventSchema).nullable().optional(),
31406
31599
  siteId: z.string(),
31407
31600
  apiBaseUrl: z.string().optional(),
31601
+ readAuthority: browserReadAuthoritySchema.optional(),
31408
31602
  stage: previewStageSchema.optional(),
31409
31603
  listLayout: eventLayoutSchema.optional(),
31410
31604
  listColumns: columnOptionSchema.optional(),
@@ -31457,7 +31651,6 @@ const eventCollectionDisplaySchemaShape = {
31457
31651
  const eventCollectionHydrationSchema = z.object({
31458
31652
  siteId: z.string(),
31459
31653
  calendarWindow: calendarWindowPageSchema.optional(),
31460
- stage: previewStageSchema.optional(),
31461
31654
  prefetchedEvents: z.boolean(),
31462
31655
  eventSurface: eventSurfaceScopeSchema$1,
31463
31656
  filterEventPresets: z.string().nullable(),
@@ -31532,7 +31725,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
31532
31725
  return {
31533
31726
  calendarWindow: source.calendarWindow ?? void 0,
31534
31727
  siteId: source.siteId,
31535
- stage: source.stage,
31536
31728
  prefetchedEvents: source.events != null,
31537
31729
  eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
31538
31730
  filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
@@ -31552,6 +31744,7 @@ const eventListingSourceSchema = z.object({
31552
31744
  events: z.array(publicEventSchema).nullable().optional(),
31553
31745
  siteId: z.string(),
31554
31746
  apiBaseUrl: z.string().optional(),
31747
+ readAuthority: browserReadAuthoritySchema.optional(),
31555
31748
  stage: previewStageSchema.optional(),
31556
31749
  layout: eventLayoutSchema.optional(),
31557
31750
  columns: columnOptionSchema.optional(),
@@ -31592,7 +31785,6 @@ const eventListingDisplaySchema = z.object({
31592
31785
  });
31593
31786
  const eventListingHydrationSchema = z.object({
31594
31787
  siteId: z.string(),
31595
- stage: previewStageSchema.optional(),
31596
31788
  eventsPerPage: eventPageSizeSchema,
31597
31789
  paginationAction: eventListPaginationActionSchema,
31598
31790
  showFilters: z.boolean(),
@@ -31615,6 +31807,7 @@ const eventListingRenderSchema = z.object({
31615
31807
  z.object({
31616
31808
  siteId: z.string(),
31617
31809
  apiBaseUrl: z.string().optional(),
31810
+ readAuthority: browserReadAuthoritySchema.optional(),
31618
31811
  stage: previewStageSchema.optional()
31619
31812
  });
31620
31813
  const eventListingBlockRuntime = defineProgressiveBlockRuntime({
@@ -31649,7 +31842,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
31649
31842
  },
31650
31843
  hydration: {
31651
31844
  siteId: source.siteId,
31652
- stage: source.stage,
31653
31845
  eventsPerPage: pageSize,
31654
31846
  paginationAction: resolveEventListPaginationAction({
31655
31847
  paginationMode: source.paginationMode,
@@ -31931,6 +32123,7 @@ const eventListingBlockDefinition = {
31931
32123
  rootType: "stack",
31932
32124
  rootProps: { gap: "lg" },
31933
32125
  children: [...eventSectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
32126
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
31934
32127
  events: { $bind: { from: "data.events" } },
31935
32128
  stage: { $bind: {
31936
32129
  from: "$root.previewStage",
@@ -32128,6 +32321,7 @@ const eventCalendarRenderSchema = z.object({
32128
32321
  z.object({
32129
32322
  siteId: z.string(),
32130
32323
  apiBaseUrl: z.string().optional(),
32324
+ readAuthority: browserReadAuthoritySchema.optional(),
32131
32325
  stage: previewStageSchema.optional()
32132
32326
  });
32133
32327
  /**
@@ -32149,7 +32343,7 @@ function buildEventCalendarDisplay(source) {
32149
32343
  listColumns: source.listColumns ?? source.columns
32150
32344
  }),
32151
32345
  kind: "event-calendar",
32152
- displayMode: normalizeEventCalendarDisplayMode$1(source) ?? "combined",
32346
+ displayMode: resolveEventCalendarReadPlan(source).mode,
32153
32347
  className: source.className ?? null,
32154
32348
  events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
32155
32349
  boardTitle: normalizeOptionalText(source.boardTitle),
@@ -32166,13 +32360,16 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
32166
32360
  source: createZodCodec(eventCalendarSourceSchema),
32167
32361
  render: createZodCodec(eventCalendarRenderSchema)
32168
32362
  },
32169
- buildRender: (source) => ({
32170
- display: buildEventCalendarDisplay(source.calendarWindow && (source.variant ?? source.displayMode ?? "combined") !== "combined" && (source.variant ?? source.displayMode) !== "list" ? {
32171
- ...source,
32172
- events: source.calendarWindow.events
32173
- } : source),
32174
- hydration: buildEventCollectionHydration(source)
32175
- })
32363
+ buildRender: (source) => {
32364
+ const plan = resolveEventCalendarReadPlan(source);
32365
+ return {
32366
+ display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
32367
+ ...source,
32368
+ events: source.calendarWindow.events
32369
+ } : source),
32370
+ hydration: buildEventCollectionHydration(source)
32371
+ };
32372
+ }
32176
32373
  });
32177
32374
  //#endregion
32178
32375
  //#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
@@ -32322,6 +32519,7 @@ const eventCalendarLayout = [styledSection({
32322
32519
  rootType: "stack",
32323
32520
  rootProps: { gap: "lg" },
32324
32521
  children: [...eventSectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
32522
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
32325
32523
  events: { $bind: { from: "data.events" } },
32326
32524
  calendarWindow: { $bind: { from: "data.calendarWindow" } },
32327
32525
  stage: { $bind: {
@@ -36109,6 +36307,7 @@ const shopSourceSchema = z.object({
36109
36307
  products: z.array(publicProductSchema).nullable().optional(),
36110
36308
  siteId: z.string().optional(),
36111
36309
  apiBaseUrl: z.string().optional(),
36310
+ readAuthority: browserReadAuthoritySchema.optional(),
36112
36311
  stage: previewStageSchema.optional()
36113
36312
  });
36114
36313
  const productVariantOptionDisplaySchema = z.object({
@@ -36276,6 +36475,7 @@ function resolveShowPricePerCredit(source) {
36276
36475
  z.object({
36277
36476
  siteId: z.string().optional(),
36278
36477
  apiBaseUrl: z.string().optional(),
36478
+ readAuthority: browserReadAuthoritySchema.optional(),
36279
36479
  stage: previewStageSchema.optional()
36280
36480
  });
36281
36481
  const shopBlockRuntime = defineProgressiveBlockRuntime({
@@ -36616,6 +36816,7 @@ const shopBlockDefinition = {
36616
36816
  baseClass: "",
36617
36817
  spacing: "spacious",
36618
36818
  children: sectionContainer([shop(withApiBindings({
36819
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
36619
36820
  mode: "passes-memberships",
36620
36821
  showPasses: { $bind: {
36621
36822
  from: "content.showPasses",
@@ -36814,6 +37015,7 @@ const productListBlockDefinition = {
36814
37015
  baseClass: "",
36815
37016
  spacing: "spacious",
36816
37017
  children: sectionContainer([productList(withApiBindings({
37018
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
36817
37019
  mode: "product-list",
36818
37020
  heading: { $bind: {
36819
37021
  from: "content.heading",
@@ -36956,6 +37158,7 @@ const productDetailBlockDefinition = {
36956
37158
  baseClass: "",
36957
37159
  spacing: "spacious",
36958
37160
  children: sectionContainer([productDetail(withApiBindings({
37161
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
36959
37162
  mode: "product-detail",
36960
37163
  heading: { $bind: {
36961
37164
  from: "content.heading",
@@ -37072,6 +37275,7 @@ const cartBlockDefinition = {
37072
37275
  baseClass: "",
37073
37276
  spacing: "spacious",
37074
37277
  children: sectionContainer([cart(withApiBindings({
37278
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
37075
37279
  mode: "cart",
37076
37280
  heading: { $bind: {
37077
37281
  from: "content.heading",
@@ -37155,6 +37359,7 @@ const checkoutBlockDefinition = {
37155
37359
  baseClass: "",
37156
37360
  spacing: "spacious",
37157
37361
  children: sectionContainer([checkout(withApiBindings({
37362
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
37158
37363
  mode: "checkout",
37159
37364
  heading: { $bind: {
37160
37365
  from: "content.heading",
@@ -39827,8 +40032,8 @@ const defaultTransforms = createTransformRegistry([
39827
40032
  summary: "Choose the read projection required by the calendar display mode",
39828
40033
  schema: z.object({ job: z.enum(["list", "calendar"]) }),
39829
40034
  run(value, options) {
39830
- const mode = normalizeEventCalendarDisplayMode$1(asPartialObject(value) ?? {}) ?? "combined";
39831
- return options.job === "calendar" ? mode !== "list" : mode === "list" || mode === "combined";
40035
+ const plan = resolveEventCalendarReadPlan(asPartialObject(value) ?? {});
40036
+ return plan.jobs === "both" || plan.jobs === options.job;
39832
40037
  }
39833
40038
  },
39834
40039
  {
@@ -39841,6 +40046,7 @@ const defaultTransforms = createTransformRegistry([
39841
40046
  },
39842
40047
  ...formattingTransforms,
39843
40048
  ...layoutTransforms,
40049
+ ...chromeLogoTransforms,
39844
40050
  ...uiTransforms,
39845
40051
  ...mediaTransforms,
39846
40052
  ...backgroundTransforms,
@@ -1,7 +1,8 @@
1
- import { i as textColorStyle } from "./colorStyles-3013aRAY.mjs";
2
- import { dt as themeButtonClassName, t as defineIslandPropsDecoder } from "./propsDecoder-DiLiBdek.mjs";
1
+ import { i as textColorStyle } from "./colorStyles-CuJBiS-1.mjs";
2
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
3
+ import { n as ThemedButtonLink } from "./ThemedButton-BwNFVwi4.mjs";
3
4
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
4
- import { t as LeafletStaticMap } from "./LeafletStaticMap-B-wpijzL.mjs";
5
+ import { t as LeafletStaticMap } from "./LeafletStaticMap-BAqXdfhq.mjs";
5
6
  import "react";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
8
  //#region ../core/src/location.ts
@@ -182,16 +183,14 @@ function LocationMapView({ addressText, location, zoom, heightPx, showAddressTex
182
183
  style: textColorStyle("mutedText"),
183
184
  children: addressText
184
185
  }) : null,
185
- showDirections && directionsUrl ? /* @__PURE__ */ jsx("a", {
186
+ showDirections && directionsUrl ? /* @__PURE__ */ jsx(ThemedButtonLink, {
186
187
  href: directionsUrl,
187
188
  target: "_blank",
188
189
  rel: "noreferrer",
189
- className: themeButtonClassName({
190
- variant: "ghost",
191
- size: "sm",
192
- extraClassName: "rb-w-fit"
193
- }),
194
- children: directionsLabel
190
+ variant: "ghost",
191
+ size: "sm",
192
+ extraClassName: "rb-w-fit",
193
+ label: directionsLabel
195
194
  }) : null
196
195
  ]
197
196
  });