@riverbankcms/sdk 0.143.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 (161) hide show
  1. package/dist/{PreviewEditorSidebar-DROGfMKi.mjs → PreviewEditorSidebar-CQZNnFiM.mjs} +19 -25
  2. package/dist/{PreviewEditorUI-BaRjhFu-.mjs → PreviewEditorUI-DCNxnmI0.mjs} +2 -2
  3. package/dist/{SdkPreviewModeRuntime-OIABYLES.mjs → SdkPreviewModeRuntime-BJolUbr1.mjs} +15 -6
  4. package/dist/{SiteChromeCustomizeContext-ohjTvZbc.mjs → SiteChromeCustomizeContext-CKgEpoxi.mjs} +1915 -1463
  5. package/dist/_dts/api/src/billing.d.ts +1 -1
  6. package/dist/_dts/api/src/billingEndpointTypes.d.ts +8 -2
  7. package/dist/_dts/api/src/bookingConfig.d.ts +3 -1
  8. package/dist/_dts/api/src/index.d.ts +1 -1
  9. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -4
  10. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +1 -0
  11. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  12. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +8 -0
  13. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -8
  14. package/dist/_dts/api/src/siteSettings.d.ts +17 -7
  15. package/dist/_dts/billing/src/membership/index.d.ts +3 -0
  16. package/dist/_dts/block-form/src/backend/types.d.ts +14 -0
  17. package/dist/_dts/block-form/src/client/index.d.ts +1 -0
  18. package/dist/_dts/block-form/src/context/RepeaterHostActionsContext.d.ts +30 -0
  19. package/dist/_dts/block-form/src/context/index.d.ts +1 -0
  20. package/dist/_dts/block-form/src/index.d.ts +1 -0
  21. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +4 -1
  22. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +5 -2
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +11 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -0
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useEmptyStateFocusAfterRemoval.d.ts +8 -0
  26. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +15 -1
  27. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +5 -2
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +34 -10
  29. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -0
  30. package/dist/_dts/blocks/src/system/constants/events.d.ts +10 -0
  31. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +5 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/context.d.ts +3 -3
  33. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -0
  34. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +3 -2
  35. package/dist/_dts/blocks/src/system/runtime/api/readAuthority.d.ts +11 -0
  36. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +9 -0
  37. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -13
  38. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -6
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +9 -4
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +0 -1
  41. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -3
  42. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +7 -24
  43. package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +2 -1
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +2 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -5
  53. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +7 -2
  54. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +7 -5
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -6
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +3 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/header-control.d.ts +10 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +6 -21
  59. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -0
  63. package/dist/_dts/blocks/src/system/runtime/shared/components/ThemedButton.d.ts +58 -0
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  65. package/dist/_dts/blocks/src/system/transforms/registry/chromeLogo.d.ts +23 -0
  66. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  67. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +3 -1
  68. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +4 -1
  69. package/dist/_dts/core/src/event-catalogue.d.ts +27 -0
  70. package/dist/_dts/core/src/event-preset-vocabulary.d.ts +7 -0
  71. package/dist/_dts/core/src/index.d.ts +2 -0
  72. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +13 -0
  73. package/dist/_dts/db/src/schemas/forms.d.ts +286 -2
  74. package/dist/_dts/editor-blocks/src/block-editor/{BlockCardHeader.d.ts → BlockCardFrame.d.ts} +11 -3
  75. package/dist/_dts/logger/src/console.d.ts +3 -0
  76. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +1 -0
  77. package/dist/_dts/sdk/src/client/types.d.ts +3 -0
  78. package/dist/_dts/sdk/src/navigation/index.d.ts +27 -0
  79. package/dist/_dts/sdk/src/public-api/contracts.d.ts +15 -7
  80. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  81. package/dist/_dts/sdk/src/rendering/client.d.ts +1 -0
  82. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +1 -0
  83. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +7 -1
  84. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
  85. package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +3 -2
  86. package/dist/_dts/sdk/src/rendering/islands/enhancers/shopShared.d.ts +2 -0
  87. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  88. package/dist/_dts/sdk/src/version.d.ts +1 -1
  89. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +1 -1
  90. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +3 -13
  91. package/dist/_dts/theme-core/src/customCss/index.d.ts +1 -1
  92. package/dist/_dts/theme-core/src/customCss/patch.d.ts +0 -5
  93. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  95. package/dist/_dts/theme-core/src/surfaces/logoVariant.d.ts +26 -0
  96. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +10 -0
  97. package/dist/_dts/ui/src/editor-item-card.d.ts +116 -0
  98. package/dist/_dts/ui/src/index.d.ts +1 -0
  99. package/dist/client/{BookingConsentAgreement-BoCtvzzu.mjs → BookingConsentAgreement-DoAILrkN.mjs} +4 -55
  100. package/dist/client/{DiscountCodeDisclosure-B5S30nZk.mjs → DiscountCodeDisclosure-X528hUTf.mjs} +27 -17
  101. package/dist/client/{EventCombined.client-CeZ2-zSt.mjs → EventCombined.client-DSBVwq5m.mjs} +54 -46
  102. package/dist/client/{EventListing.client-DJN3j8B3.mjs → EventListing.client-DmFAX7Vb.mjs} +3 -4
  103. package/dist/client/{LeafletStaticMap-RjtGzDQT.mjs → LeafletStaticMap-BAqXdfhq.mjs} +1 -1
  104. package/dist/client/ThemedButton-BwNFVwi4.mjs +412 -0
  105. package/dist/client/{accordion-DOmnDoyg.mjs → accordion-DRhMdkbd.mjs} +1 -1
  106. package/dist/client/{bookingForm-C0vk7pgS.mjs → bookingForm-iJ_nCsNF.mjs} +26 -32
  107. package/dist/client/bookings.mjs +201 -118
  108. package/dist/client/{carousel-BZJ7pno3.mjs → carousel-D8zuffZr.mjs} +2 -2
  109. package/dist/client/{carousel.client-DQTjCVQT.mjs → carousel.client-jahpU9Vz.mjs} +1 -1
  110. package/dist/client/{cart-CaeVAHJl.mjs → cart-DeMGJViN.mjs} +3 -3
  111. package/dist/client/{checkout-7wmoNDtG.mjs → checkout-DXc06Km2.mjs} +3 -3
  112. package/dist/client/{checkoutUrls-FL6lRkrt.mjs → checkoutUrls-CW3-78uu.mjs} +1 -1
  113. package/dist/client/client.mjs +2271 -1983
  114. package/dist/client/{colorStyles-3013aRAY.mjs → colorStyles-CuJBiS-1.mjs} +16 -4
  115. package/dist/client/{context-BOimxE3U.mjs → context-CDLCfDep.mjs} +24 -8
  116. package/dist/client/{dates-BnzVksi4.mjs → dates-ClFx7Epy.mjs} +2 -2
  117. package/dist/client/{eventCalendar-l-fpaslC.mjs → eventCalendar-BaGpnOGN.mjs} +39 -50
  118. package/dist/client/{eventCombined-DGGvssK6.mjs → eventCombined-ywONOx2m.mjs} +5 -4
  119. package/dist/client/{eventDetails-DRiCm_hL.mjs → eventDetails-B2LlOTYY.mjs} +4 -4
  120. package/dist/client/{eventListing-dph8loYX.mjs → eventListing-CMgxWpqP.mjs} +5 -4
  121. package/dist/client/{eventRegistration-ClBohmbY.mjs → eventRegistration-BarLDNHR.mjs} +83 -68
  122. package/dist/client/{form-BLVVAnd3.mjs → form-BjqKaBJ7.mjs} +9 -10
  123. package/dist/client/{headerSection-DHy4C8Ix.mjs → headerSection-CP4XDwz1.mjs} +23 -30
  124. package/dist/client/hooks.mjs +257 -63
  125. package/dist/client/{locationMap-6HuS28ck.mjs → locationMap-C5gW-d-w.mjs} +9 -10
  126. package/dist/client/{media-DHpfFwd3.mjs → media-BtJ37tzS.mjs} +1 -1
  127. package/dist/client/{newsletterForm-xOdcOhZP.mjs → newsletterForm-afXlVSA0.mjs} +8 -9
  128. package/dist/client/{pricing-ChinRYFt.mjs → pricing-Bl1CAl28.mjs} +1 -1
  129. package/dist/client/{productDetail-0chA5gbK.mjs → productDetail-CvQ3jWQe.mjs} +3 -3
  130. package/dist/client/{productList-OoINA0h1.mjs → productList-U874PGO7.mjs} +3 -3
  131. package/dist/client/{propsDecoder-CIZ-hbIG.mjs → propsDecoder-DPXtCZWP.mjs} +87 -29
  132. package/dist/client/rendering/client.mjs +1891 -1740
  133. package/dist/client/rendering/islands.mjs +19 -19
  134. package/dist/client/rendering.mjs +2225 -1913
  135. package/dist/client/{routeIslandApiConfig-UNsfPcYq.mjs → routeIslandApiConfig-NGYiUWXu.mjs} +8 -1
  136. package/dist/client/{scrollToBlock-BPZl0gPZ.mjs → scrollToBlock-0-C3DVhK.mjs} +1 -1
  137. package/dist/client/{shop-CLJFqNIq.mjs → shop-BXjXhM9P.mjs} +45 -58
  138. package/dist/client/{shop-commerce-PpANg5wB.mjs → shop-commerce-BZ6UlWJ7.mjs} +42 -55
  139. package/dist/client/{shop-commerce-store-TA_Kz2ku.mjs → shop-commerce-store-DlSBXb3D.mjs} +1 -1
  140. package/dist/client/{shopShared-DzcFcA5g.mjs → shopShared-kkEOiLPA.mjs} +6 -5
  141. package/dist/client/{useEventFilters-CFU21QZo.mjs → useEventFilters-zvnnE1ro.mjs} +66 -355
  142. package/dist/preview-next/client/runtime.mjs +3 -3
  143. package/dist/preview-next/editor-chrome.css +8 -0
  144. package/dist/{sdk-runtime-CDKl0Fr7.mjs → sdk-runtime-DFJlQt3q.mjs} +1 -1
  145. package/dist/{separator-BTp96X32.mjs → separator-o8GHb1xh.mjs} +1 -1
  146. package/dist/server/components.mjs +828 -623
  147. package/dist/server/config-validation.mjs +257 -63
  148. package/dist/server/config.mjs +257 -63
  149. package/dist/server/data.mjs +257 -63
  150. package/dist/server/index.mjs +9 -5
  151. package/dist/server/navigation.mjs +28 -1
  152. package/dist/server/next.mjs +14129 -13947
  153. package/dist/server/page-converter.mjs +110 -59
  154. package/dist/server/prebuild.mjs +1 -1
  155. package/dist/server/rendering/server.mjs +832 -624
  156. package/dist/server/rendering.mjs +830 -624
  157. package/dist/server/routing.mjs +294 -69
  158. package/dist/server/server.mjs +266 -68
  159. package/dist/server/theme-bridge.mjs +40 -1
  160. package/dist/styles/index.css +6 -0
  161. package/package.json +1 -1
@@ -2382,6 +2382,27 @@ function AltchaWidget({ challengeUrl, onSolutionChange, auto = true, hidelogo =
2382
2382
  function isSpamProtectionEnabled() {
2383
2383
  return process.env.NEXT_PUBLIC_SPAM_PROTECTION_ENABLED === "true";
2384
2384
  }
2385
+ z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
2386
+ kind: z.literal("preview"),
2387
+ token: z.string().min(1)
2388
+ }).strict()]);
2389
+ function createHostedBlockApiConfig(input) {
2390
+ const { baseUrl, siteId, readAuthority, portalToken } = input;
2391
+ return {
2392
+ baseUrl,
2393
+ siteId,
2394
+ readAuthority,
2395
+ auth: readAuthority.kind === "preview" ? {
2396
+ type: "bearer",
2397
+ token: readAuthority.token
2398
+ } : { type: "none" },
2399
+ isPreview: readAuthority.kind === "preview",
2400
+ authOverrides: { portal: portalToken ? {
2401
+ type: "bearer",
2402
+ token: portalToken
2403
+ } : { type: "none" } }
2404
+ };
2405
+ }
2385
2406
  //#endregion
2386
2407
  //#region ../blocks/src/system/runtime/api/deduplication.ts
2387
2408
  /**
@@ -3923,13 +3944,6 @@ function themeButtonVariantClassNames(variant) {
3923
3944
  function themeButtonSizeClassName(size) {
3924
3945
  return `btn-${size}`;
3925
3946
  }
3926
- function themeButtonClassName(spec) {
3927
- return [
3928
- ...themeButtonVariantClassNames(spec.variant),
3929
- themeButtonSizeClassName(spec.size),
3930
- spec.extraClassName
3931
- ].filter(Boolean).join(" ");
3932
- }
3933
3947
  shadeBackgroundEffect({
3934
3948
  id: "darken-background",
3935
3949
  name: "Darken on Hover",
@@ -8335,15 +8349,18 @@ const BOOKINGS = {
8335
8349
  const EVENTS = {
8336
8350
  calendarWindow: {
8337
8351
  path: "/public/sites/{siteId}/events/calendar-window",
8338
- method: "GET"
8352
+ method: "GET",
8353
+ previewRead: true
8339
8354
  },
8340
8355
  list: {
8341
8356
  path: "/public/sites/{siteId}/events",
8342
- method: "GET"
8357
+ method: "GET",
8358
+ previewRead: true
8343
8359
  },
8344
8360
  filters: {
8345
8361
  path: "/public/sites/{siteId}/events/filters",
8346
- method: "GET"
8362
+ method: "GET",
8363
+ previewRead: true
8347
8364
  },
8348
8365
  register: {
8349
8366
  path: "/public/sites/{siteId}/events/register",
@@ -8381,7 +8398,8 @@ const WHOLE_SERIES = { waitlistClaimResolve: {
8381
8398
  const SHOP = {
8382
8399
  listProducts: {
8383
8400
  path: "/public/sites/{siteId}/products",
8384
- method: "GET"
8401
+ method: "GET",
8402
+ previewRead: true
8385
8403
  },
8386
8404
  checkout: {
8387
8405
  path: "/public/sites/{siteId}/bookings/checkout",
@@ -8775,7 +8793,11 @@ function publicEventsQuery(params) {
8775
8793
  return { ...params ?? {} };
8776
8794
  }
8777
8795
  function createBlockApi(config) {
8778
- const { baseUrl, auth, authOverrides, siteId, isPreview } = config;
8796
+ const { baseUrl, authOverrides, siteId, isPreview, readAuthority } = config;
8797
+ const auth = readAuthority ? readAuthority.kind === "preview" ? {
8798
+ type: "bearer",
8799
+ token: readAuthority.token
8800
+ } : { type: "none" } : config.auth;
8779
8801
  const dedup = createDeduplicationCache({ ttl: 100 });
8780
8802
  const shouldUsePreviewStageForNonPortalRequests = isPreview && auth.type !== "none";
8781
8803
  function isPortalEndpoint(endpoint) {
@@ -8783,17 +8805,25 @@ function createBlockApi(config) {
8783
8805
  }
8784
8806
  function selectAuth(endpoint) {
8785
8807
  if (endpoint.authScope === "portal" && authOverrides?.portal) return authOverrides.portal;
8808
+ if (readAuthority && !endpoint.previewRead) return { type: "none" };
8786
8809
  return auth;
8787
8810
  }
8788
8811
  /**
8789
8812
  * Make an API request
8790
8813
  */
8814
+ function bindReadQuery(endpoint, query) {
8815
+ const queryParams = { ...query };
8816
+ if (readAuthority) {
8817
+ if (!endpoint.previewRead) delete queryParams.stage;
8818
+ else if (readAuthority.kind === "preview" || queryParams.stage != null) queryParams.stage = readAuthority.kind;
8819
+ } else if (shouldUsePreviewStageForNonPortalRequests && !isPortalEndpoint(endpoint) && queryParams.stage == null) queryParams.stage = "preview";
8820
+ return queryParams;
8821
+ }
8791
8822
  async function request(endpoint, options) {
8792
8823
  const { path, body, query, skipDedup = false } = options ?? {};
8793
8824
  let url = `${baseUrl}${path ?? endpoint.path}`;
8794
8825
  const selectedAuth = selectAuth(endpoint);
8795
- const queryParams = { ...query };
8796
- if (shouldUsePreviewStageForNonPortalRequests && !isPortalEndpoint(endpoint) && (queryParams.stage === void 0 || queryParams.stage === null)) queryParams.stage = "preview";
8826
+ const queryParams = bindReadQuery(endpoint, query);
8797
8827
  if (Object.keys(queryParams).length > 0) url = appendQuery(url, queryParams);
8798
8828
  const headers = {
8799
8829
  Accept: "application/json",
@@ -12713,6 +12743,114 @@ function useAppointmentCheckoutVerificationWithDeps(config, deps) {
12713
12743
  };
12714
12744
  }
12715
12745
  //#endregion
12746
+ //#region ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
12747
+ function r(e) {
12748
+ var t, f, n = "";
12749
+ if ("string" == typeof e || "number" == typeof e) n += e;
12750
+ else if ("object" == typeof e) if (Array.isArray(e)) {
12751
+ var o = e.length;
12752
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
12753
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
12754
+ return n;
12755
+ }
12756
+ function clsx() {
12757
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
12758
+ return n;
12759
+ }
12760
+ //#endregion
12761
+ //#region ../blocks/src/system/runtime/nodes/spinner.tsx
12762
+ function resolveColorStyle(color) {
12763
+ switch (color) {
12764
+ case void 0: return;
12765
+ case "inherit": return { color: "inherit" };
12766
+ case "foreground": return { color: "rgb(var(--tb-foreground))" };
12767
+ case "text": return { color: "rgb(var(--tb-text))" };
12768
+ default: return;
12769
+ }
12770
+ }
12771
+ function SpinnerNode({ className, size = "md", color, strokeWidth = 3, srLabel, style, ...rest }) {
12772
+ const hasExplicitAriaLabel = typeof rest["aria-label"] === "string" && rest["aria-label"].trim().length > 0;
12773
+ const accessibilityProps = srLabel ? {
12774
+ role: "status",
12775
+ "aria-live": "polite"
12776
+ } : hasExplicitAriaLabel ? {} : { "aria-hidden": true };
12777
+ const trackStroke = color === "inherit" ? "currentColor" : "var(--rb-spinner-track-color)";
12778
+ const trackOpacity = color === "inherit" ? .25 : 1;
12779
+ return /* @__PURE__ */ jsxs("span", {
12780
+ ...accessibilityProps,
12781
+ className: clsx("rb-spinner", size ? `rb-spinner--${size}` : null, color === "inherit" ? "rb-spinner--inherit" : null, className),
12782
+ style: {
12783
+ ...resolveColorStyle(color),
12784
+ ...style ?? {}
12785
+ },
12786
+ ...rest,
12787
+ children: [/* @__PURE__ */ jsxs("svg", {
12788
+ viewBox: "0 0 24 24",
12789
+ fill: "none",
12790
+ "aria-hidden": "true",
12791
+ children: [/* @__PURE__ */ jsx("circle", {
12792
+ cx: "12",
12793
+ cy: "12",
12794
+ r: "10",
12795
+ stroke: trackStroke,
12796
+ strokeWidth,
12797
+ opacity: trackOpacity
12798
+ }), /* @__PURE__ */ jsx("path", {
12799
+ d: "M12 2a10 10 0 0 1 10 10",
12800
+ stroke: "currentColor",
12801
+ strokeWidth,
12802
+ strokeLinecap: "round"
12803
+ })]
12804
+ }), srLabel ? /* @__PURE__ */ jsx("span", {
12805
+ className: "rb-sr-only",
12806
+ children: srLabel
12807
+ }) : null]
12808
+ });
12809
+ }
12810
+ //#endregion
12811
+ //#region ../blocks/src/system/runtime/shared/components/ThemedButton.tsx
12812
+ function themedButtonClasses(variant, size, extraClassName) {
12813
+ return [
12814
+ ...themeButtonVariantClassNames(variant),
12815
+ themeButtonSizeClassName(size),
12816
+ extraClassName
12817
+ ].filter(Boolean).join(" ");
12818
+ }
12819
+ function ThemedButtonLabel(props) {
12820
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
12821
+ props.pending ? /* @__PURE__ */ jsx(SpinnerNode, {
12822
+ size: props.pending.spinnerSize ?? "sm",
12823
+ color: "inherit",
12824
+ className: props.pending.spinnerClassName ?? "rb-mr-2",
12825
+ srLabel: props.pending.srLabel
12826
+ }) : null,
12827
+ props.labelClassName ? /* @__PURE__ */ jsx("span", {
12828
+ className: props.labelClassName,
12829
+ children: props.pending?.label ?? props.label
12830
+ }) : props.pending?.label ?? props.label,
12831
+ props.screenReaderSuffix ? /* @__PURE__ */ jsx("span", {
12832
+ className: "rb-sr-only",
12833
+ children: props.screenReaderSuffix
12834
+ }) : null
12835
+ ] });
12836
+ return props.pending?.contentClassName ? /* @__PURE__ */ jsx("span", {
12837
+ className: props.pending.contentClassName,
12838
+ children: content
12839
+ }) : content;
12840
+ }
12841
+ function ThemedButton({ variant, size, extraClassName, screenReaderSuffix, labelClassName, pending, label, ...buttonProps }) {
12842
+ return /* @__PURE__ */ jsx("button", {
12843
+ ...buttonProps,
12844
+ className: themedButtonClasses(variant, size, extraClassName),
12845
+ children: /* @__PURE__ */ jsx(ThemedButtonLabel, {
12846
+ label,
12847
+ pending,
12848
+ screenReaderSuffix,
12849
+ labelClassName
12850
+ })
12851
+ });
12852
+ }
12853
+ //#endregion
12716
12854
  //#region ../blocks/src/system/runtime/shared/components/FeedbackMessage.tsx
12717
12855
  function joinClasses(...parts) {
12718
12856
  return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
@@ -12925,71 +13063,6 @@ const TimeSlotSelector = ({ value, onChange, slots, isLoading, timezone, require
12925
13063
  });
12926
13064
  };
12927
13065
  //#endregion
12928
- //#region ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
12929
- function r(e) {
12930
- var t, f, n = "";
12931
- if ("string" == typeof e || "number" == typeof e) n += e;
12932
- else if ("object" == typeof e) if (Array.isArray(e)) {
12933
- var o = e.length;
12934
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
12935
- } else for (f in e) e[f] && (n && (n += " "), n += f);
12936
- return n;
12937
- }
12938
- function clsx() {
12939
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
12940
- return n;
12941
- }
12942
- //#endregion
12943
- //#region ../blocks/src/system/runtime/nodes/spinner.tsx
12944
- function resolveColorStyle(color) {
12945
- switch (color) {
12946
- case void 0: return;
12947
- case "inherit": return { color: "inherit" };
12948
- case "foreground": return { color: "rgb(var(--tb-foreground))" };
12949
- case "text": return { color: "rgb(var(--tb-text))" };
12950
- default: return;
12951
- }
12952
- }
12953
- function SpinnerNode({ className, size = "md", color, strokeWidth = 3, srLabel, style, ...rest }) {
12954
- const hasExplicitAriaLabel = typeof rest["aria-label"] === "string" && rest["aria-label"].trim().length > 0;
12955
- const accessibilityProps = srLabel ? {
12956
- role: "status",
12957
- "aria-live": "polite"
12958
- } : hasExplicitAriaLabel ? {} : { "aria-hidden": true };
12959
- const trackStroke = color === "inherit" ? "currentColor" : "var(--rb-spinner-track-color)";
12960
- const trackOpacity = color === "inherit" ? .25 : 1;
12961
- return /* @__PURE__ */ jsxs("span", {
12962
- ...accessibilityProps,
12963
- className: clsx("rb-spinner", size ? `rb-spinner--${size}` : null, color === "inherit" ? "rb-spinner--inherit" : null, className),
12964
- style: {
12965
- ...resolveColorStyle(color),
12966
- ...style ?? {}
12967
- },
12968
- ...rest,
12969
- children: [/* @__PURE__ */ jsxs("svg", {
12970
- viewBox: "0 0 24 24",
12971
- fill: "none",
12972
- "aria-hidden": "true",
12973
- children: [/* @__PURE__ */ jsx("circle", {
12974
- cx: "12",
12975
- cy: "12",
12976
- r: "10",
12977
- stroke: trackStroke,
12978
- strokeWidth,
12979
- opacity: trackOpacity
12980
- }), /* @__PURE__ */ jsx("path", {
12981
- d: "M12 2a10 10 0 0 1 10 10",
12982
- stroke: "currentColor",
12983
- strokeWidth,
12984
- strokeLinecap: "round"
12985
- })]
12986
- }), srLabel ? /* @__PURE__ */ jsx("span", {
12987
- className: "rb-sr-only",
12988
- children: srLabel
12989
- }) : null]
12990
- });
12991
- }
12992
- //#endregion
12993
13066
  //#region ../blocks/src/system/runtime/shared/components/StepIndicator.tsx
12994
13067
  /**
12995
13068
  * Shared step indicator component for registration wizards.
@@ -13074,14 +13147,8 @@ const themeFormClasses = {
13074
13147
  label: "form-label",
13075
13148
  row: "rb-flex rb-flex-col rb-gap-2 rb-sm-flex-row",
13076
13149
  input: "form-input",
13077
- apply: themeButtonClassName({
13078
- variant: "secondary",
13079
- size: "sm"
13080
- }),
13081
- remove: themeButtonClassName({
13082
- variant: "secondary",
13083
- size: "sm"
13084
- }),
13150
+ apply: "",
13151
+ remove: "",
13085
13152
  hint: "rb-caption status-muted",
13086
13153
  feedback: "rb-caption"
13087
13154
  };
@@ -13089,6 +13156,22 @@ function getDiscountCodeDisclosureClasses(surface) {
13089
13156
  if (surface === "theme-form") return themeFormClasses;
13090
13157
  return BLOCK_DISCOUNT_CODE_DISCLOSURE_CLASSES[surface];
13091
13158
  }
13159
+ function DiscountActionButton(props) {
13160
+ return props.surface === "theme-form" ? /* @__PURE__ */ jsx(ThemedButton, {
13161
+ type: "button",
13162
+ variant: "secondary",
13163
+ size: "sm",
13164
+ label: props.label,
13165
+ onClick: props.onClick,
13166
+ disabled: props.disabled
13167
+ }) : /* @__PURE__ */ jsx("button", {
13168
+ type: "button",
13169
+ className: props.className,
13170
+ onClick: props.onClick,
13171
+ disabled: props.disabled,
13172
+ children: props.label
13173
+ });
13174
+ }
13092
13175
  function DiscountCodeDisclosure({ surface, isOpen, code, onOpen, onChange, onRemove, onApply, id, toggleLabel = "Have a discount code?", label = "Discount code", placeholder = "Enter code", applyLabel = "Apply", removeLabel = "Remove", hint = "Applied at checkout.", feedback = null, isApplying = false, applyDisabled = false, disabled = false }) {
13093
13176
  const generatedId = useId();
13094
13177
  const inputId = id ?? `discount-code-${generatedId}`;
@@ -13130,19 +13213,19 @@ function DiscountCodeDisclosure({ surface, isOpen, code, onOpen, onChange, onRem
13130
13213
  autoComplete: "off",
13131
13214
  disabled: disabled || isApplying
13132
13215
  }),
13133
- onApply ? /* @__PURE__ */ jsx("button", {
13134
- type: "button",
13216
+ onApply ? /* @__PURE__ */ jsx(DiscountActionButton, {
13217
+ surface,
13135
13218
  className: classes.apply,
13219
+ label: isApplying ? "Applying..." : applyLabel,
13136
13220
  onClick: onApply,
13137
- disabled: disabled || isApplying || applyDisabled,
13138
- children: isApplying ? "Applying..." : applyLabel
13221
+ disabled: disabled || isApplying || applyDisabled
13139
13222
  }) : null,
13140
- /* @__PURE__ */ jsx("button", {
13141
- type: "button",
13223
+ /* @__PURE__ */ jsx(DiscountActionButton, {
13224
+ surface,
13142
13225
  className: classes.remove,
13226
+ label: removeLabel,
13143
13227
  onClick: onRemove,
13144
- disabled: disabled || isApplying,
13145
- children: removeLabel
13228
+ disabled: disabled || isApplying
13146
13229
  })
13147
13230
  ]
13148
13231
  }),
@@ -13990,30 +14073,25 @@ function HeadlessBookingDefaultForm({ booking, onSubmit }) {
13990
14073
  }),
13991
14074
  /* @__PURE__ */ jsxs("div", {
13992
14075
  className: "rb-wizard-actions",
13993
- children: [!isFirstStep ? /* @__PURE__ */ jsx("button", {
14076
+ children: [!isFirstStep ? /* @__PURE__ */ jsx(ThemedButton, {
13994
14077
  type: "button",
13995
14078
  onClick: booking.actions.back,
13996
- className: themeButtonClassName({
13997
- variant: "outline",
13998
- size: "md"
13999
- }),
14000
- children: "Back"
14001
- }) : null, /* @__PURE__ */ jsx("button", {
14079
+ variant: "outline",
14080
+ size: "md",
14081
+ label: "Back"
14082
+ }) : null, /* @__PURE__ */ jsx(ThemedButton, {
14002
14083
  type: "button",
14003
14084
  onClick: () => {
14004
14085
  handlePrimaryAction();
14005
14086
  },
14006
14087
  disabled: isSubmitting,
14007
- className: themeButtonClassName({
14008
- variant: "primary",
14009
- size: "md"
14010
- }),
14011
- children: isSubmitting ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SpinnerNode, {
14012
- size: "sm",
14013
- color: "inherit",
14014
- className: "rb-mr-2",
14088
+ variant: "primary",
14089
+ size: "md",
14090
+ label: isLastStep ? "Complete" : "Continue",
14091
+ pending: isSubmitting ? {
14092
+ label: "Submitting...",
14015
14093
  srLabel: "Submitting"
14016
- }), "Submitting..."] }) : isLastStep ? "Complete" : "Continue"
14094
+ } : void 0
14017
14095
  })]
14018
14096
  }),
14019
14097
  /* @__PURE__ */ jsx(DefaultBookingDiscount, { booking }),
@@ -14641,14 +14719,12 @@ function DefaultBookingFeedback({ booking }) {
14641
14719
  children: [/* @__PURE__ */ jsx("p", {
14642
14720
  className: "ab-text",
14643
14721
  children: booking.feedback.message
14644
- }), /* @__PURE__ */ jsx("button", {
14722
+ }), /* @__PURE__ */ jsx(ThemedButton, {
14645
14723
  type: "button",
14646
- className: themeButtonClassName({
14647
- variant: "secondary",
14648
- size: "sm"
14649
- }),
14650
- onClick: booking.actions.clearFeedback,
14651
- children: "Dismiss"
14724
+ variant: "secondary",
14725
+ size: "sm",
14726
+ label: "Dismiss",
14727
+ onClick: booking.actions.clearFeedback
14652
14728
  })]
14653
14729
  });
14654
14730
  }
@@ -16872,6 +16948,12 @@ function resolveEventRegistrationScopedEvents(events, context) {
16872
16948
  //#endregion
16873
16949
  //#region ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts
16874
16950
  function createEventRegistrationBlockApiConfig(input) {
16951
+ if (input.readAuthority) return createHostedBlockApiConfig({
16952
+ baseUrl: input.apiBaseUrl,
16953
+ siteId: input.siteId,
16954
+ readAuthority: input.readAuthority,
16955
+ portalToken: input.portalToken
16956
+ });
16875
16957
  return {
16876
16958
  baseUrl: input.apiBaseUrl,
16877
16959
  auth: input.previewToken ? {
@@ -16908,6 +16990,7 @@ function getEventRegistrationOverrideInput(props) {
16908
16990
  apiBaseUrl: props.apiBaseUrl,
16909
16991
  portalToken: props.portalToken ?? null,
16910
16992
  previewToken: props.previewToken ?? null,
16993
+ readAuthority: props.readAuthority,
16911
16994
  events,
16912
16995
  ...props.stage ? { stage: props.stage } : {},
16913
16996
  ...props.occurrenceContext ? { occurrenceContext: props.occurrenceContext } : {},
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-CIZ-hbIG.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
2
2
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
3
- import { n as normalizeCarouselProps, t as CarouselNodeClient } from "./carousel.client-DQTjCVQT.mjs";
3
+ import { n as normalizeCarouselProps, t as CarouselNodeClient } from "./carousel.client-jahpU9Vz.mjs";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/rendering/islands/enhancers/carousel.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { O as clsx } from "./colorStyles-3013aRAY.mjs";
2
+ import { O as clsx } from "./colorStyles-CuJBiS-1.mjs";
3
3
  import { t as createLucideIcon } from "./createLucideIcon-PaLVMov4.mjs";
4
4
  import React, { useCallback, useEffect, useRef, useState } from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-CIZ-hbIG.mjs";
2
- import { t as CartController } from "./shop-commerce-PpANg5wB.mjs";
3
- import { t as mountShopBlockIsland } from "./shopShared-DzcFcA5g.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
2
+ import { t as CartController } from "./shop-commerce-BZ6UlWJ7.mjs";
3
+ import { t as mountShopBlockIsland } from "./shopShared-kkEOiLPA.mjs";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/cart.client.tsx
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-CIZ-hbIG.mjs";
2
- import { n as CheckoutController } from "./shop-commerce-PpANg5wB.mjs";
3
- import { t as mountShopBlockIsland } from "./shopShared-DzcFcA5g.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
2
+ import { n as CheckoutController } from "./shop-commerce-BZ6UlWJ7.mjs";
3
+ import { t as mountShopBlockIsland } from "./shopShared-kkEOiLPA.mjs";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/checkout.client.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { a as getCurrentResolveImageUrlContext, c as resolveImageUrlWithContext, t as ImagePresets } from "./media-DHpfFwd3.mjs";
2
+ import { a as getCurrentResolveImageUrlContext, c as resolveImageUrlWithContext, t as ImagePresets } from "./media-BtJ37tzS.mjs";
3
3
  import React from "react";
4
4
  import { Fragment, jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/primitives/content/utils/sanitizeHref.ts