@riverbankcms/sdk 0.135.0 → 0.136.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 (153) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -8
  3. package/dist/{PreviewEditorSidebar-roNY0GVy.mjs → PreviewEditorSidebar-BU5ZlhQR.mjs} +4 -4
  4. package/dist/{PreviewEditorUI-KboDbEh_.mjs → PreviewEditorUI-9XkHL-bC.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-DcgaESkm.mjs → PreviewQueryProvider-wbEpXryy.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-DBrF7Caa.mjs → SdkPreviewModeRuntime-CnWmj-2B.mjs} +50 -99
  7. package/dist/{SiteChromeCustomizeContext-DrIEpJKn.mjs → SiteChromeCustomizeContext-B6d5zkog.mjs} +2334 -1173
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +8 -554
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +401 -2312
  10. package/dist/_dts/api/src/contentRuntime.d.ts +6 -0
  11. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  12. package/dist/_dts/api/src/index.d.ts +1 -0
  13. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  14. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +26 -0
  15. package/dist/_dts/api/src/sdkBlockContentAdmission.d.ts +5 -0
  16. package/dist/_dts/api/src/sdkThemeWire.d.ts +6 -432
  17. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -3
  18. package/dist/_dts/block-form/src/utils/slug.d.ts +6 -0
  19. package/dist/_dts/blocks/src/PageRenderer.d.ts +12 -6
  20. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -0
  21. package/dist/_dts/blocks/src/definitions.d.ts +14 -0
  22. package/dist/_dts/blocks/src/index.d.ts +4 -3
  23. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +40 -0
  24. package/dist/_dts/blocks/src/server.d.ts +2 -2
  25. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +25 -0
  26. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  27. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +78 -0
  28. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +2 -18
  29. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +103 -16
  30. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  32. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  33. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  34. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +19 -0
  35. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +52 -0
  36. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  37. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +44 -18
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +20 -3
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +3 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.client.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +40 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +43 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +3 -1
  46. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarNavigationChevron.d.ts +4 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalContext.d.ts +3 -2
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +3 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +31 -3
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +3 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +19 -1
  53. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +4 -3
  54. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +3 -3
  55. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -1
  56. package/dist/_dts/calendar/src/grid.d.ts +24 -66
  57. package/dist/_dts/calendar/src/index.d.ts +2 -2
  58. package/dist/_dts/calendar/src/timetable.d.ts +5 -9
  59. package/dist/_dts/commerce/src/purchase/allocation.d.ts +11 -0
  60. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  61. package/dist/_dts/commerce/src/purchase/settlement.d.ts +33 -0
  62. package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +8 -0
  63. package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -0
  64. package/dist/_dts/core/src/slug.d.ts +20 -5
  65. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -1
  66. package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +2 -1
  67. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +6 -0
  68. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
  69. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +10 -6
  70. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +0 -1
  71. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
  72. package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +3 -0
  73. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -0
  74. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
  75. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +17 -0
  76. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +9 -3
  77. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +1 -1
  78. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  79. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +7 -4
  80. package/dist/_dts/sdk/src/version.d.ts +1 -1
  81. package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
  82. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  83. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  84. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -6
  85. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +6 -807
  86. package/dist/_dts/theme-core/src/schema.d.ts +452 -1278
  87. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +213 -1
  88. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +0 -29
  89. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +10 -0
  90. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +8 -5
  91. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +4 -4
  92. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +16 -2
  93. package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +465 -0
  94. package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +161 -0
  95. package/dist/client/{BookingConsentAgreement-BQqwi8Oa.mjs → BookingConsentAgreement-DCch21a6.mjs} +2 -2
  96. package/dist/client/{DiscountCodeDisclosure-B97aMo0V.mjs → DiscountCodeDisclosure-DIj1T59K.mjs} +1 -1
  97. package/dist/client/{EventCombined.client-Bs2Iw9Q6.mjs → EventCombined.client-BWVNlXTx.mjs} +226 -206
  98. package/dist/client/{EventListing.client-C4QUQdmg.mjs → EventListing.client-DVFCDe3i.mjs} +2 -2
  99. package/dist/client/{LeafletStaticMap-CwWRk69M.mjs → LeafletStaticMap-BY5mIHw9.mjs} +1 -1
  100. package/dist/client/{accordion-BA0j8Mpw.mjs → accordion-CK29E8rG.mjs} +1 -1
  101. package/dist/client/{bookingForm-Br2e41H0.mjs → bookingForm-DFvnet-N.mjs} +5 -5
  102. package/dist/client/bookings.mjs +87 -47
  103. package/dist/client/{carousel-B4dmwnpD.mjs → carousel-BVU5NQlb.mjs} +1 -1
  104. package/dist/client/{cart-B_ckGW4b.mjs → cart-BNItcZVa.mjs} +3 -3
  105. package/dist/client/{checkout-DAyspHdf.mjs → checkout-Bu6iCdkP.mjs} +3 -3
  106. package/dist/client/client.mjs +1985 -1055
  107. package/dist/client/{context-DljQn8L5.mjs → context-BImarOAq.mjs} +12 -0
  108. package/dist/client/{eventCalendar-pJu3FUod.mjs → eventCalendar-DS2h-UXD.mjs} +256 -114
  109. package/dist/client/{eventCombined-B6Kacm9F.mjs → eventCombined-Drt4Oq9p.mjs} +3 -3
  110. package/dist/client/{eventDetails-CaX9z1pv.mjs → eventDetails-Bl2vWgTX.mjs} +4 -3
  111. package/dist/client/{eventListing-B9aXPO-I.mjs → eventListing-CS7PHY7v.mjs} +3 -3
  112. package/dist/client/{eventRegistration-CBSovBkg.mjs → eventRegistration-D-j8eNy2.mjs} +85 -41
  113. package/dist/client/{form-Cm0tu_7o.mjs → form-RMpoLTyr.mjs} +2 -2
  114. package/dist/client/{headerSection-OgRtHeKS.mjs → headerSection-BYE3Lb3k.mjs} +2 -2
  115. package/dist/client/hooks.mjs +2254 -298
  116. package/dist/client/{locationMap-DmjcYqNM.mjs → locationMap-BxSr7Kkh.mjs} +2 -2
  117. package/dist/client/{newsletterForm-D08OZQAC.mjs → newsletterForm-DerbXwFC.mjs} +2 -2
  118. package/dist/client/{productDetail-BqZeu2P4.mjs → productDetail-4SZCLhAf.mjs} +3 -3
  119. package/dist/client/{productList-mNyIF9FG.mjs → productList-D7AP4GNq.mjs} +3 -3
  120. package/dist/client/{propsDecoder-DwHXRm9X.mjs → propsDecoder-pzBeCh14.mjs} +123 -46
  121. package/dist/client/rendering/client.mjs +793 -488
  122. package/dist/client/rendering/islands.mjs +17 -17
  123. package/dist/client/rendering.mjs +2161 -1268
  124. package/dist/client/{scrollToBlock-DtmdM3v-.mjs → scrollToBlock-CduAKf8T.mjs} +1 -1
  125. package/dist/client/{shop-CNjZK16F.mjs → shop-Cp5p_kGe.mjs} +6 -6
  126. package/dist/client/{shop-commerce-DkNNao1J.mjs → shop-commerce-DicXYaYX.mjs} +5 -5
  127. package/dist/client/{shop-commerce-store-9WA--zuW.mjs → shop-commerce-store-CGWnpY4K.mjs} +1 -1
  128. package/dist/client/{shopShared-CHCVfccY.mjs → shopShared-BDf9ljkm.mjs} +3 -3
  129. package/dist/client/{useEventFilters-DvuaB4ZN.mjs → useEventFilters-DeeyGYuk.mjs} +3 -3
  130. package/dist/preview-next/before-render.mjs +7 -0
  131. package/dist/preview-next/client/runtime.mjs +4 -4
  132. package/dist/preview-next/keepAlive.mjs +7 -0
  133. package/dist/preview-next/middleware.mjs +7 -0
  134. package/dist/{previewAuthStore-C7ksxt5b.mjs → previewAuthStore-DbqBol0V.mjs} +7 -0
  135. package/dist/{sdk-runtime-3GhW4knb.mjs → sdk-runtime-19MO27F0.mjs} +2 -2
  136. package/dist/{separator-D3bCWYYb.mjs → separator-DaPLtJ1f.mjs} +1 -1
  137. package/dist/server/components.mjs +1562 -917
  138. package/dist/server/config-validation.mjs +94 -135
  139. package/dist/server/config.mjs +94 -135
  140. package/dist/server/data.mjs +94 -134
  141. package/dist/server/index.mjs +122 -4
  142. package/dist/server/manifest.mjs +0 -1
  143. package/dist/server/next.mjs +1467 -732
  144. package/dist/server/page-converter.mjs +87 -113
  145. package/dist/server/prebuild.mjs +1 -1
  146. package/dist/server/rendering/server.mjs +1717 -939
  147. package/dist/server/rendering.mjs +1729 -1044
  148. package/dist/server/routing.mjs +3229 -1835
  149. package/dist/server/server.mjs +21739 -19801
  150. package/dist/server/theme-bridge.mjs +656 -264
  151. package/dist/server/theme.mjs +2 -17
  152. package/dist/styles/index.css +609 -181
  153. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { M as buildEventRuntimeFilters } from "./propsDecoder-DwHXRm9X.mjs";
3
- import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-DvuaB4ZN.mjs";
2
+ import { M as buildEventRuntimeFilters } from "./propsDecoder-pzBeCh14.mjs";
3
+ import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-DeeyGYuk.mjs";
4
4
  import { useId, useMemo } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/events/EventListing.client.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { kt as isRecord } from "./propsDecoder-DwHXRm9X.mjs";
2
+ import { kt as isRecord } from "./propsDecoder-pzBeCh14.mjs";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-DwHXRm9X.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-pzBeCh14.mjs";
2
2
  //#region src/rendering/islands/enhancers/accordion.ts
3
3
  const decode = defineIslandPropsDecoder("accordion");
4
4
  function parseDefaultValues(value) {
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { S as unsafeAsPassId, _ as unsafeAsAppointmentResourceId, b as unsafeAsFormId, v as unsafeAsAppointmentServiceId, y as unsafeAsCustomerPassId } from "./colorStyles-CrxJrPjJ.mjs";
3
- import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as StepIndicator, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-BQqwi8Oa.mjs";
4
- import { $t as formatCurrencyAmount, At as assertNever, Bt as formatBookingInstant, Ct as toSelectedCollectionOptionKind, Dt as isBookingRequirementConsentFieldId, Et as BOOKING_FORM_DATA_RESERVED_KEYS, Ft as reportWorkflowError, Gt as resolveBookingTimeZoneId, Ht as formatLocalScheduleDate, It as reportWorkflowSuccess, Lt as addLocalScheduleDays, Mt as err, Pt as okWith, St as resolveDefaultBookingServiceId, Tt as resolveSelectedAppointmentConsent, Wt as parseBookingLocalDate, _t as parseBookingCurrencyInputToCents, bt as resolveBookingPaymentStep, dt as formatBookingCentsAsCurrencyInput, ft as formatBookingSubmissionPreparationError, gt as isBookingServiceSlidingAmountInRange, ht as getBookingSuccessMessage, jt as clearWorkflowFeedback, lt as logger, mt as getBookingServiceSlidingScale, pt as getBookingRedirectStateFromLocation, st as themeButtonClassName, t as defineIslandPropsDecoder, ut as deriveBookingFormViewState, vt as prepareBookingSubmission, wt as projectSelectedAppointmentConsentIntoForm, xt as resolveBookingSiteId, yt as resolveAppointmentCheckoutVerificationState } from "./propsDecoder-DwHXRm9X.mjs";
5
- import { n as useBlockApi, t as BlockApiProvider } from "./context-DljQn8L5.mjs";
3
+ import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as StepIndicator, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-DCch21a6.mjs";
4
+ import { At as assertNever, Ct as toSelectedCollectionOptionKind, Dt as isBookingRequirementConsentFieldId, Et as BOOKING_FORM_DATA_RESERVED_KEYS, Ft as reportWorkflowError, It as reportWorkflowSuccess, Kt as parseBookingLocalDate, Lt as addLocalScheduleDays, Mt as err, Pt as okWith, St as resolveDefaultBookingServiceId, Tt as resolveSelectedAppointmentConsent, Ut as formatLocalScheduleDate, Vt as formatBookingInstant, _t as parseBookingCurrencyInputToCents, bt as resolveBookingPaymentStep, dt as formatBookingCentsAsCurrencyInput, ft as formatBookingSubmissionPreparationError, gt as isBookingServiceSlidingAmountInRange, ht as getBookingSuccessMessage, jt as clearWorkflowFeedback, lt as logger, mt as getBookingServiceSlidingScale, pt as getBookingRedirectStateFromLocation, qt as resolveBookingTimeZoneId, st as themeButtonClassName, t as defineIslandPropsDecoder, tn as formatCurrencyAmount, ut as deriveBookingFormViewState, vt as prepareBookingSubmission, wt as projectSelectedAppointmentConsentIntoForm, xt as resolveBookingSiteId, yt as resolveAppointmentCheckoutVerificationState } from "./propsDecoder-pzBeCh14.mjs";
5
+ import { n as useBlockApi, t as BlockApiProvider } from "./context-BImarOAq.mjs";
6
6
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
7
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-DtmdM3v-.mjs";
8
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-B97aMo0V.mjs";
7
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-CduAKf8T.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-DIj1T59K.mjs";
9
9
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
10
10
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
11
11
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-BuseL0dw.mjs";
@@ -2565,6 +2565,10 @@ const EVENTS = {
2565
2565
  registrationStatus: {
2566
2566
  path: "/public/sites/{siteId}/events/registration-status",
2567
2567
  method: "GET"
2568
+ },
2569
+ checkoutReturn: {
2570
+ path: "/public/sites/{siteId}/events/checkout-return",
2571
+ method: "POST"
2568
2572
  }
2569
2573
  };
2570
2574
  const WHOLE_SERIES = {
@@ -3161,6 +3165,14 @@ function createBlockApi(config) {
3161
3165
  skipDedup: true
3162
3166
  });
3163
3167
  },
3168
+ async resolveEventCheckoutReturn(data) {
3169
+ const sid = requireSiteId();
3170
+ const path = buildPath(EVENTS.checkoutReturn.path, { siteId: sid });
3171
+ return request(EVENTS.checkoutReturn, {
3172
+ path,
3173
+ body: data
3174
+ });
3175
+ },
3164
3176
  async resolveWaitlistClaim(data) {
3165
3177
  const sid = requireSiteId();
3166
3178
  const path = buildPath(WHOLE_SERIES.waitlistClaimResolve.path, { siteId: sid });
@@ -9383,12 +9395,8 @@ const legacyHeaderVariantValues = Object.keys(legacyHeaderVariants);
9383
9395
  * `@riverbankcms/api` is `z.input<typeof themeSchema>`, so a widened input here
9384
9396
  * would leak straight into a public type.
9385
9397
  *
9386
- * Not every read of a persisted theme goes through the schema:
9387
- * `resolveRuntimeTheme` in
9388
- * `apps/dashboard/src/server/services/sites/runtimeSiteResponse.ts` returns the
9389
- * raw database JSON asserted as `Theme` with no parse, so a theme still
9390
- * carrying a legacy spelling reaches the theme editor un-aliased. That gap
9391
- * predates this alias and is harmless while persisted usage is zero.
9398
+ * Persisted runtime themes are admitted through `parseThemeForPersistence`
9399
+ * before reaching consumers, so legacy spellings normalize at that boundary.
9392
9400
  */
9393
9401
  const headerVariantWithLegacyAliasSchema = z.enum([...headerVariantValues, ...legacyHeaderVariantValues]).transform((value) => value in legacyHeaderVariants ? legacyHeaderVariants[value] : value);
9394
9402
  const BREAKPOINT_LG = 1024;
@@ -9847,7 +9855,6 @@ const navFontWeight = z.enum([
9847
9855
  "bold"
9848
9856
  ]);
9849
9857
  const headerMaxWidth = z.enum(["container", "full"]);
9850
- const headerBarFrame = z.enum(["full-bleed", "inset-shell"]);
9851
9858
  const headerBorderSchema = componentBorderSchema.extend({ position: z.enum([
9852
9859
  "bottom",
9853
9860
  "top",
@@ -9876,12 +9883,6 @@ const headerLogoTextSchema = z.object({
9876
9883
  ]).optional(),
9877
9884
  hideOnShrink: z.boolean().optional()
9878
9885
  }).optional();
9879
- const navEffectsSchema = z.object({
9880
- underlineGradient: z.boolean().default(false),
9881
- glow: z.boolean().default(false),
9882
- glowColor: z.string().optional(),
9883
- neumorphic: z.boolean().default(false)
9884
- }).optional();
9885
9886
  const dropdownStyleSchema = z.object({
9886
9887
  background: themeColorTokenSchema.default("surface"),
9887
9888
  textColor: themeColorTokenSchema.default("text"),
@@ -9973,9 +9974,7 @@ const headerSchema = z.object({
9973
9974
  positioning: headerPositioning,
9974
9975
  shrinkOnScroll: z.boolean(),
9975
9976
  maxWidth: headerMaxWidth,
9976
- barFrame: headerBarFrame.optional(),
9977
9977
  scrollTreatment: headerScrollTreatmentSchema,
9978
- logoOverride: mediaSchema.nullable().optional(),
9979
9978
  background: headerBackgroundSchema.default({
9980
9979
  type: "color",
9981
9980
  color: "surface"
@@ -9987,13 +9986,11 @@ const headerSchema = z.object({
9987
9986
  navFontRole: z.enum(["body", "heading"]).optional(),
9988
9987
  navTextSize: navLinkStyleSchema.shape.textSize,
9989
9988
  interactionPalette: headerInteractionPaletteSchema.optional(),
9990
- navPlacement: z.enum(["end", "center"]).optional(),
9991
9989
  container: headerContainerSchema,
9992
9990
  border: headerBorderSchema,
9993
9991
  shadow: componentShadowSchema.optional(),
9994
9992
  logo: logoStyleSchema,
9995
9993
  logoText: headerLogoTextSchema,
9996
- navEffects: navEffectsSchema,
9997
9994
  navContainer: navContainerSchema,
9998
9995
  navLinkStyle: navLinkStyleSchema.optional(),
9999
9996
  ctaGap: headerCtaGapSchema.optional(),
@@ -15341,47 +15338,88 @@ function cleanupStaleRegistrations() {
15341
15338
  //#region ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.ts
15342
15339
  const eventRegistrationStripeReturnDeps = {
15343
15340
  usePaymentVerification,
15344
- consumeReturnParams: () => consumeSearchParams(["registration", EVENT_REGISTRATION_CHECKOUT_ATTEMPT_PARAM]),
15341
+ consumeReturnParams: () => consumeSearchParams([
15342
+ "registration",
15343
+ EVENT_REGISTRATION_CHECKOUT_ATTEMPT_PARAM,
15344
+ "session_id"
15345
+ ]),
15345
15346
  scrollToBlock,
15346
15347
  cleanupStaleRegistrations,
15347
15348
  clearPendingRegistration,
15348
15349
  getPendingRegistration
15349
15350
  };
15351
+ function restorePendingPresentation(options, pending) {
15352
+ options.setFormData(pending.formData);
15353
+ options.setTicketSelections(pending.ticketSelections);
15354
+ options.setTicketsCount(getTicketSelectionTotal(pending.ticketSelections));
15355
+ if (pending.selectedEventId) {
15356
+ const event = options.events.find((item) => item.selectionId === pending.selectedEventId) ?? null;
15357
+ if (event) options.setSelectedEvent(event);
15358
+ }
15359
+ options.setSelectedAttendanceMode(pending.selectedAttendanceMode ?? null);
15360
+ options.setPaymentSelection(pending.paymentSelection);
15361
+ }
15362
+ function showReturnReconciliation(options, message) {
15363
+ options.setErrorMessage(message);
15364
+ options.setStep("verifying-timeout");
15365
+ }
15366
+ async function handleCheckoutReturn(options, deps, checkoutAttemptIdRef) {
15367
+ deps.cleanupStaleRegistrations();
15368
+ const params = deps.consumeReturnParams();
15369
+ if (params.registration !== "cancelled" && params.registration !== "success") return;
15370
+ deps.scrollToBlock(EVENT_REGISTRATION_ANCHOR_ID);
15371
+ const siteId = options.api.config.siteId;
15372
+ const checkoutAttemptId = params.registration_attempt;
15373
+ if (!siteId) return;
15374
+ if (!checkoutAttemptId) {
15375
+ showReturnReconciliation(options, "We could not identify this payment attempt. Please contact us before trying again.");
15376
+ return;
15377
+ }
15378
+ const pending = deps.getPendingRegistration(siteId, checkoutAttemptId);
15379
+ checkoutAttemptIdRef.current = checkoutAttemptId;
15380
+ if (pending) restorePendingPresentation(options, pending);
15381
+ try {
15382
+ const outcome = params.registration === "success" ? params.session_id ? await options.api.resolveEventCheckoutReturn({
15383
+ kind: "resolveSuccess",
15384
+ checkoutAttemptId,
15385
+ sessionId: params.session_id
15386
+ }) : { kind: "notFound" } : await options.api.resolveEventCheckoutReturn({
15387
+ kind: "abandon",
15388
+ checkoutAttemptId
15389
+ });
15390
+ switch (outcome.kind) {
15391
+ case "resolved":
15392
+ options.setPendingRegistrationReference(outcome.reference);
15393
+ options.setStep("verifying-payment");
15394
+ return;
15395
+ case "abandoned":
15396
+ options.setErrorMessage("Your payment was cancelled. You can choose a payment option and try again.");
15397
+ options.setStep("select-payment");
15398
+ return;
15399
+ case "notFound":
15400
+ if (params.registration === "cancelled" && (options.registrationSubject?.kind === "occurrence" || pending?.reference.scope === "occurrence")) {
15401
+ options.setErrorMessage("Your payment was cancelled. You can choose a payment option and try again.");
15402
+ options.setStep("select-payment");
15403
+ return;
15404
+ }
15405
+ break;
15406
+ case "reconciliationRequired": break;
15407
+ }
15408
+ showReturnReconciliation(options, "We’re checking your payment. Please wait a moment before trying again.");
15409
+ } catch {
15410
+ showReturnReconciliation(options, "We could not check your payment yet. Please try again shortly.");
15411
+ }
15412
+ }
15350
15413
  function useEventRegistrationStripeReturn(options) {
15351
15414
  return useEventRegistrationStripeReturnWithDeps(options, eventRegistrationStripeReturnDeps);
15352
15415
  }
15353
15416
  function useEventRegistrationStripeReturnWithDeps(options, deps) {
15354
- const { api, events, pendingRegistrationReference, setErrorMessage, setFormData, setPaymentSelection, setPendingRegistrationReference, setRegistrationResult, setSelectedEvent, setSelectedAttendanceMode, setTicketSelections, setStep, setTicketsCount, step } = options;
15417
+ const { api, pendingRegistrationReference, setErrorMessage, setRegistrationResult, setStep, step } = options;
15355
15418
  const checkoutAttemptIdRef = useRef(null);
15356
15419
  const verificationConfig = useMemo(() => step === "verifying-payment" && pendingRegistrationReference ? { reference: pendingRegistrationReference } : null, [step, pendingRegistrationReference]);
15357
15420
  const verification = deps.usePaymentVerification(verificationConfig);
15358
15421
  useEffect(() => {
15359
- deps.cleanupStaleRegistrations();
15360
- const returnParams = deps.consumeReturnParams();
15361
- const registrationStatus = returnParams.registration;
15362
- if (registrationStatus !== "cancelled" && registrationStatus !== "success") return;
15363
- deps.scrollToBlock(EVENT_REGISTRATION_ANCHOR_ID);
15364
- const siteId = api.config.siteId;
15365
- if (!siteId) return;
15366
- const checkoutAttemptId = returnParams[EVENT_REGISTRATION_CHECKOUT_ATTEMPT_PARAM];
15367
- if (!checkoutAttemptId) return;
15368
- const pending = deps.getPendingRegistration(siteId, checkoutAttemptId);
15369
- if (!pending) return;
15370
- checkoutAttemptIdRef.current = checkoutAttemptId;
15371
- setFormData(pending.formData);
15372
- setTicketSelections(pending.ticketSelections);
15373
- setTicketsCount(getTicketSelectionTotal(pending.ticketSelections));
15374
- if (pending.selectedEventId) {
15375
- const event = events.find((e) => e.selectionId === pending.selectedEventId) ?? null;
15376
- if (event) setSelectedEvent(event);
15377
- }
15378
- setSelectedAttendanceMode(pending.selectedAttendanceMode ?? null);
15379
- setPaymentSelection(pending.paymentSelection);
15380
- if (registrationStatus === "cancelled") setStep("select-payment");
15381
- else if (registrationStatus === "success") {
15382
- setPendingRegistrationReference(pending.reference);
15383
- setStep("verifying-payment");
15384
- }
15422
+ handleCheckoutReturn(options, deps, checkoutAttemptIdRef);
15385
15423
  }, []);
15386
15424
  useEffect(() => {
15387
15425
  if (verification.status === "completed") {
@@ -15464,7 +15502,7 @@ function useEventRegistrationSubmitWithDeps(options, deps) {
15464
15502
  options.setStep("submitting");
15465
15503
  try {
15466
15504
  const prepared = prepareSubmitContext(options, target, method, passId, membershipId, selection);
15467
- if (prepared.subject.kind === "wholeSeries" && method === "stripe") return submitWholeSeriesCheckout(options, deps, {
15505
+ if (prepared.subject.kind === "wholeSeries" && method === "stripe") return await submitWholeSeriesCheckout(options, deps, {
15468
15506
  ...prepared,
15469
15507
  subject: prepared.subject
15470
15508
  }, submitOptions);
@@ -15485,7 +15523,7 @@ function useEventRegistrationSubmitWithDeps(options, deps) {
15485
15523
  claimToken: options.claimToken ?? void 0,
15486
15524
  guests: prepared.guestsPayload
15487
15525
  });
15488
- if (needsOccurrenceCheckout(result, method)) return submitOccurrenceCheckout(options, deps, prepared, result, method, submitOptions);
15526
+ if (needsOccurrenceCheckout(result, method)) return await submitOccurrenceCheckout(options, deps, prepared, result, method, submitOptions);
15489
15527
  options.setRegistrationResult(toRegistrationResult(result));
15490
15528
  options.setStep("success");
15491
15529
  return {
@@ -15568,6 +15606,7 @@ async function submitWholeSeriesCheckout(options, deps, prepared, submitOptions)
15568
15606
  claimToken: options.claimToken ?? void 0,
15569
15607
  discountCode: options.discountCode.trim() || void 0,
15570
15608
  collectionOptionKind: prepared.selectionSnapshot.collectionOptionKind,
15609
+ checkoutAttemptId,
15571
15610
  ...urls
15572
15611
  });
15573
15612
  if (result.scope !== "wholeSeries") throw new Error("Unexpected registration scope for event checkout.");
@@ -16257,6 +16296,7 @@ const publicWholeSeriesPriceDisplaySchema = z.discriminatedUnion("kind", [
16257
16296
  freePriceDisplaySchema,
16258
16297
  exactPriceDisplaySchema,
16259
16298
  fromPriceDisplaySchema,
16299
+ rangePriceDisplaySchema,
16260
16300
  unavailablePriceDisplaySchema
16261
16301
  ]);
16262
16302
  z.discriminatedUnion("kind", [
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-DwHXRm9X.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-pzBeCh14.mjs";
2
2
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
3
3
  import { n as normalizeCarouselProps, t as CarouselNodeClient } from "./carousel.client-59G_WMr4.mjs";
4
4
  import "react";
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-DwHXRm9X.mjs";
2
- import { t as CartController } from "./shop-commerce-DkNNao1J.mjs";
3
- import { t as mountShopBlockIsland } from "./shopShared-CHCVfccY.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-pzBeCh14.mjs";
2
+ import { t as CartController } from "./shop-commerce-DicXYaYX.mjs";
3
+ import { t as mountShopBlockIsland } from "./shopShared-BDf9ljkm.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-DwHXRm9X.mjs";
2
- import { n as CheckoutController } from "./shop-commerce-DkNNao1J.mjs";
3
- import { t as mountShopBlockIsland } from "./shopShared-CHCVfccY.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-pzBeCh14.mjs";
2
+ import { n as CheckoutController } from "./shop-commerce-DicXYaYX.mjs";
3
+ import { t as mountShopBlockIsland } from "./shopShared-BDf9ljkm.mjs";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/checkout.client.tsx