@riverbankcms/sdk 0.126.0 → 0.128.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 (212) hide show
  1. package/dist/{PreviewEditorSidebar-DcYJxTgc.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +64 -68
  2. package/dist/{PreviewEditorUI-Ctt1yTJr.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
  4. package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
  5. package/dist/{SiteChromeCustomizeContext-C87qlKWw.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +51247 -20733
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +486 -36
  7. package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
  8. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
  9. package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  11. package/dist/_dts/api/src/communications.d.ts +2 -1
  12. package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +3 -10
  14. package/dist/_dts/api/src/endpoints.d.ts +1 -1
  15. package/dist/_dts/api/src/footerSettings.d.ts +11 -0
  16. package/dist/_dts/api/src/index.d.ts +2 -1
  17. package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
  18. package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
  19. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
  20. package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
  21. package/dist/_dts/api/src/siteOperations.d.ts +12 -3
  22. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
  23. package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
  24. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +1 -0
  25. package/dist/_dts/blocks/src/client/form.d.ts +1 -0
  26. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
  27. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
  29. package/dist/_dts/blocks/src/index.d.ts +3 -2
  30. package/dist/_dts/blocks/src/lib/media.d.ts +267 -0
  31. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  32. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
  33. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
  34. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
  36. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +0 -13
  37. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +4 -4
  45. package/dist/_dts/blocks/src/system/runtime/nodes/mergeResolveImageUrlContexts.d.ts +7 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
  47. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
  49. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
  50. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  51. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
  52. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
  53. package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
  54. package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
  55. package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
  56. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
  57. package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
  58. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
  59. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  60. package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +17 -0
  61. package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +1 -1
  62. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -0
  63. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
  64. package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
  65. package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
  66. package/dist/_dts/core/src/footer-composition.d.ts +7 -116
  67. package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
  68. package/dist/_dts/core/src/index.d.ts +4 -0
  69. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
  70. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -159
  71. package/dist/_dts/db/src/index.d.ts +1 -0
  72. package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
  73. package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
  74. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -0
  75. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +26 -0
  76. package/dist/_dts/editor-blocks/src/widgets/rich-text/imageInsert.d.ts +3 -3
  77. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
  78. package/dist/_dts/media-editor/src/context.d.ts +1 -2
  79. package/dist/_dts/media-editor/src/index.d.ts +3 -1
  80. package/dist/_dts/media-editor/src/mediaSelection.d.ts +32 -0
  81. package/dist/_dts/media-editor/src/types.d.ts +3 -1
  82. package/dist/_dts/media-editor/src/useMediaSelection.d.ts +26 -0
  83. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
  84. package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
  85. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
  86. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
  87. package/dist/_dts/preview-next/src/client/preview/HeaderMenuControls.d.ts +12 -0
  88. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  89. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
  90. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +13 -2
  91. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +8 -4
  92. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -49
  93. package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +8 -0
  94. package/dist/_dts/preview-next/src/client/preview/previewThemeRoles.d.ts +15 -0
  95. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +54 -0
  96. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +13 -3
  97. package/dist/_dts/preview-next/src/client/preview/siteChromeNavQuickControlHistory.d.ts +3 -0
  98. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +6 -3
  99. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
  100. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
  101. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
  102. package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
  103. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
  104. package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
  105. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
  106. package/dist/_dts/sdk/src/client/types.d.ts +10 -2
  107. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
  108. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  109. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  110. package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
  111. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
  112. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
  113. package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
  114. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
  115. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
  116. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
  117. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -2
  118. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
  119. package/dist/_dts/sdk/src/version.d.ts +1 -1
  120. package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
  121. package/dist/_dts/site-commands/src/commands.d.ts +16 -2
  122. package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -1
  123. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +0 -18
  124. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -3
  125. package/dist/_dts/theme-core/src/header/containerSchema.d.ts +20 -0
  126. package/dist/_dts/theme-core/src/header/generateHeaderCss.d.ts +1 -1
  127. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +14 -0
  128. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +3 -0
  129. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +31 -0
  130. package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +11 -0
  131. package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +8 -0
  132. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +15 -0
  133. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/schema.d.ts +67 -19
  135. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -51
  136. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -11
  137. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +3 -51
  138. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +32 -0
  139. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +19 -106
  140. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +22 -0
  141. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -0
  142. package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +4 -0
  143. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  144. package/dist/_dts/theme-core/src/site-styles/lookOptionGroups.d.ts +24 -0
  145. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +1 -2
  146. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -22
  147. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorOptions.d.ts +21 -0
  148. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  149. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +4 -1
  150. package/dist/cli/index.mjs +6272 -5706
  151. package/dist/client/{courseRegistration-BcemLAdN.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
  152. package/dist/client/{DiscountCodeDisclosure-DS0AuFWW.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
  153. package/dist/client/{EventCombined.client-DtMxLr7q.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
  154. package/dist/client/{EventListing.client-BdLSRNg1.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
  155. package/dist/client/{LeafletStaticMap-BrpC6vsT.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
  156. package/dist/client/{StepIndicator-CBYPFVoy.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
  157. package/dist/client/{accordion-BqqwPJWM.mjs → accordion-BfN5Eqd-.mjs} +1 -1
  158. package/dist/client/{bookingForm-SneP3yxC.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
  159. package/dist/client/bookings.mjs +126 -23
  160. package/dist/client/{carousel-BTIR9L3I.mjs → carousel-DPNmiH0f.mjs} +1 -1
  161. package/dist/client/{cart-bqiqd8SX.mjs → cart--egVXlrR.mjs} +3 -3
  162. package/dist/client/{checkout-WbTFV5v4.mjs → checkout-DywWtMcq.mjs} +3 -3
  163. package/dist/client/client.mjs +6111 -5794
  164. package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
  165. package/dist/client/{eventCalendar-CsxIw0V_.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
  166. package/dist/client/{eventCombined-B6XMoHfa.mjs → eventCombined-D4kipYWg.mjs} +2 -2
  167. package/dist/client/{eventDetails-BJaoPPfo.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
  168. package/dist/client/{eventListing-DgwdYHRT.mjs → eventListing-D0vm-zST.mjs} +2 -2
  169. package/dist/client/{eventRegistration-C0O3folu.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
  170. package/dist/client/{form-Bk9txGFt.mjs → form-C2Zf1n3K.mjs} +1 -1
  171. package/dist/client/{headerSection-yIBt0yTv.mjs → headerSection-CP05gzdc.mjs} +2 -2
  172. package/dist/client/hooks.mjs +1013 -935
  173. package/dist/client/{locationMap-C-3KIpv-.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
  174. package/dist/client/{newsletterForm-CzB8g8h2.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
  175. package/dist/client/{pricing-C1QeDes_.mjs → pricing-DGuNR1W4.mjs} +1 -1
  176. package/dist/client/{productDetail-w7SBp5uc.mjs → productDetail-Cq-HrGew.mjs} +3 -3
  177. package/dist/client/{productList-D0tGKHGf.mjs → productList-DbB3jwqd.mjs} +3 -3
  178. package/dist/client/{propsDecoder-Bcin2DB3.mjs → propsDecoder-CiTuhUwY.mjs} +257 -142
  179. package/dist/client/rendering/client.mjs +1342 -1122
  180. package/dist/client/rendering/islands.mjs +18 -18
  181. package/dist/client/rendering.mjs +6622 -6321
  182. package/dist/client/{scrollToBlock-h-o_STf_.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
  183. package/dist/client/{shop-BGzmL8O_.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
  184. package/dist/client/{shop-commerce-lX8QxjX-.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
  185. package/dist/client/{shop-commerce-store-CEurARtu.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
  186. package/dist/client/{shopShared-DXxH8xxw.mjs → shopShared-cF0c20vB.mjs} +2 -2
  187. package/dist/client/{useEventFilters-B591g9vd.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
  188. package/dist/client/{usePolling-BvnChV4m.mjs → usePolling-BKf0GcE-.mjs} +2 -2
  189. package/dist/preview-next/before-render.mjs +1 -1
  190. package/dist/preview-next/client/runtime.mjs +4 -4
  191. package/dist/preview-next/middleware.mjs +1 -1
  192. package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
  193. package/dist/{sdk-runtime-M__i3Jce.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
  194. package/dist/{separator-VSlnI9bc.mjs → separator-CEoGABRc.mjs} +1 -1
  195. package/dist/server/components.mjs +1750 -1614
  196. package/dist/server/config-validation.mjs +1010 -935
  197. package/dist/server/config.mjs +1010 -935
  198. package/dist/server/data.mjs +1013 -935
  199. package/dist/server/index.mjs +40 -16
  200. package/dist/server/next.mjs +1790 -1632
  201. package/dist/server/page-converter.mjs +1012 -938
  202. package/dist/server/prebuild.mjs +1 -1
  203. package/dist/server/rendering/server.mjs +1746 -1601
  204. package/dist/server/rendering.mjs +1759 -1615
  205. package/dist/server/routing.mjs +1123 -975
  206. package/dist/server/server.mjs +1053 -951
  207. package/dist/server/theme-bridge.mjs +151 -118
  208. package/dist/server/theme.mjs +111 -23
  209. package/package.json +1 -1
  210. package/dist/SdkPreviewModeRuntime-CvW1vdQ4.mjs +0 -39468
  211. package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +0 -8
  212. package/dist/client/MagicLinkForm-Bt3IuLMy.mjs +0 -327
@@ -1,20 +1,17 @@
1
1
  "use client";
2
- import { At as formatBookingTime, Dt as formatBookingDate, Ft as toBookingTimeZone, Gt as assertNever, It as toScheduledBookingDateTime, Lt as parseEventPageSurfaceSubject, X as themeButtonClassName, t as defineIslandPropsDecoder } from "./propsDecoder-Bcin2DB3.mjs";
3
- import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-C1QeDes_.mjs";
4
- import { n as useBlockApi, t as BlockApiProvider } from "./context-CJz1Vlsz.mjs";
2
+ import { At as formatBookingTime, Dt as formatBookingDate, Ft as toBookingTimeZone, Gt as assertNever, It as toScheduledBookingDateTime, Lt as parseEventPageSurfaceSubject, X as themeButtonClassName, yt as assertNever$1 } from "./propsDecoder-CiTuhUwY.mjs";
3
+ import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-DGuNR1W4.mjs";
4
+ import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
5
5
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
6
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-h-o_STf_.mjs";
7
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-DS0AuFWW.mjs";
8
- import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-CBYPFVoy.mjs";
6
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-CShkRqab.mjs";
7
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-B9vriL5C.mjs";
8
+ import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-DGCYuBJ1.mjs";
9
9
  import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
10
10
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
11
11
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
12
- import { a as ClockIcon, i as LoggedInAsUser, n as logoutPortal, r as useWaitlistClaim, t as MagicLinkForm } from "./MagicLinkForm-Bt3IuLMy.mjs";
13
12
  import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
14
- import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
15
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
16
13
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
17
- import React, { Component, useCallback, useEffect, useMemo, useState } from "react";
14
+ import React, { Component, useCallback, useEffect, useMemo, useReducer, useState, useSyncExternalStore } from "react";
18
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
16
  //#region ../blocks/src/system/runtime/shared/utils/validation.ts
20
17
  const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
@@ -53,6 +50,23 @@ function getStepNumber(step, wizardSteps) {
53
50
  return index >= 0 ? index + 1 : 1;
54
51
  }
55
52
  //#endregion
53
+ //#region ../blocks/src/system/runtime/shared/components/ClockIcon.tsx
54
+ function ClockIcon({ className, strokeWidth = 2 }) {
55
+ return /* @__PURE__ */ jsx("svg", {
56
+ fill: "none",
57
+ strokeLinecap: "round",
58
+ strokeLinejoin: "round",
59
+ strokeWidth,
60
+ viewBox: "0 0 24 24",
61
+ stroke: "currentColor",
62
+ className,
63
+ width: "1em",
64
+ height: "1em",
65
+ "aria-hidden": "true",
66
+ children: /* @__PURE__ */ jsx("path", { d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" })
67
+ });
68
+ }
69
+ //#endregion
56
70
  //#region ../blocks/src/system/runtime/shared/components/MembershipHero.tsx
57
71
  /**
58
72
  * Celebratory UI shown when user's membership covers the course/event.
@@ -181,6 +195,29 @@ var CourseRegistrationErrorBoundary = class extends Component {
181
195
  }
182
196
  };
183
197
  //#endregion
198
+ //#region ../blocks/src/system/runtime/shared/components/LoggedInAsUser.tsx
199
+ /**
200
+ * Displays the logged-in user's email with an optional logout link.
201
+ *
202
+ * Used in registration forms when the email field is locked due to portal authentication.
203
+ * Shows: "Logged in as {email} — Not you? Log out"
204
+ */
205
+ function LoggedInAsUser({ email, onLogout, classPrefix }) {
206
+ return /* @__PURE__ */ jsxs("p", {
207
+ className: `${classPrefix}-logged-in-hint`,
208
+ children: [
209
+ "Logged in as ",
210
+ email,
211
+ onLogout && /* @__PURE__ */ jsxs(Fragment, { children: [" — ", /* @__PURE__ */ jsx("button", {
212
+ type: "button",
213
+ className: `${classPrefix}-link`,
214
+ onClick: onLogout,
215
+ children: "Not you? Log out"
216
+ })] })
217
+ ]
218
+ });
219
+ }
220
+ //#endregion
184
221
  //#region ../blocks/src/system/runtime/nodes/course-registration/components.tsx
185
222
  function TeamMemberInlineList({ teamMembers }) {
186
223
  return /* @__PURE__ */ jsx(Fragment, { children: teamMembers.map((teamMember, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? ", " : "", teamMember.profilePath ? /* @__PURE__ */ jsx("a", {
@@ -490,6 +527,167 @@ function EnrollmentForm({ formData, errors, onChange, isEmailLocked, isLoading,
490
527
  ] });
491
528
  }
492
529
  //#endregion
530
+ //#region ../blocks/src/system/runtime/shared/useWaitlistClaim.state.ts
531
+ const DEFAULT_WAITLIST_CLAIM_ERROR = "Failed to resolve waitlist claim";
532
+ function createInitialWaitlistClaimState(hasToken) {
533
+ return hasToken ? { kind: "resolving" } : { kind: "idle" };
534
+ }
535
+ function waitlistClaimReducer(_state, action) {
536
+ switch (action.type) {
537
+ case "cleared": return { kind: "idle" };
538
+ case "started": return { kind: "resolving" };
539
+ case "resolved": return {
540
+ kind: "resolved",
541
+ claim: action.claim
542
+ };
543
+ case "failed": return action.failure;
544
+ }
545
+ }
546
+ function toWaitlistClaimResolveFailure(error) {
547
+ const message = error instanceof Error ? error.message : DEFAULT_WAITLIST_CLAIM_ERROR;
548
+ if (isUnauthorizedBlockApiError(error)) return {
549
+ kind: "portal-login-required",
550
+ message
551
+ };
552
+ return {
553
+ kind: "error",
554
+ message
555
+ };
556
+ }
557
+ function isUnauthorizedBlockApiError(error) {
558
+ return error instanceof Error && error.name === "BlockApiError" && hasStatus(error) && error.status === 401;
559
+ }
560
+ function hasStatus(value) {
561
+ return typeof value === "object" && value !== null && "status" in value;
562
+ }
563
+ function getWaitlistClaim(state) {
564
+ return state.kind === "resolved" ? state.claim : null;
565
+ }
566
+ function getWaitlistClaimError(state) {
567
+ return state.kind === "error" ? state.message : null;
568
+ }
569
+ function getWaitlistClaimLoginMessage(state) {
570
+ return state.kind === "portal-login-required" ? state.message : null;
571
+ }
572
+ function requiresWaitlistClaimPortalLogin(state) {
573
+ return state.kind === "portal-login-required";
574
+ }
575
+ function isWaitlistClaimLoading(state) {
576
+ return state.kind === "resolving";
577
+ }
578
+ //#endregion
579
+ //#region ../blocks/src/system/runtime/shared/useWaitlistClaim.ts
580
+ const WAITLIST_CLAIM_LOCATION_EVENT = "riverbank:waitlist-claim-location-change";
581
+ let historyPatched = false;
582
+ function emitWaitlistClaimLocationChange() {
583
+ if (typeof window === "undefined") return;
584
+ window.dispatchEvent(new Event(WAITLIST_CLAIM_LOCATION_EVENT));
585
+ }
586
+ function ensureWaitlistClaimLocationTracking() {
587
+ if (typeof window === "undefined" || historyPatched) return;
588
+ historyPatched = true;
589
+ const history = window.history;
590
+ if (history.__riverbankWaitlistClaimPatched__) return;
591
+ const wrapHistoryMethod = (method) => {
592
+ return function patched(...args) {
593
+ method.apply(this, args);
594
+ emitWaitlistClaimLocationChange();
595
+ };
596
+ };
597
+ try {
598
+ history.pushState = wrapHistoryMethod(history.pushState);
599
+ history.replaceState = wrapHistoryMethod(history.replaceState);
600
+ history.__riverbankWaitlistClaimPatched__ = true;
601
+ } catch {}
602
+ window.addEventListener("popstate", emitWaitlistClaimLocationChange);
603
+ }
604
+ function getWaitlistClaimTokenFromUrl() {
605
+ if (typeof window === "undefined") return null;
606
+ const token = new URLSearchParams(window.location.search).get("waitlist_claim")?.trim() ?? "";
607
+ return token.length > 0 ? token : null;
608
+ }
609
+ const useWaitlistClaimDeps = { useBlockApi };
610
+ function subscribeToWaitlistClaimToken(callback) {
611
+ if (typeof window === "undefined") return () => {};
612
+ ensureWaitlistClaimLocationTracking();
613
+ window.addEventListener(WAITLIST_CLAIM_LOCATION_EVENT, callback);
614
+ return () => {
615
+ window.removeEventListener(WAITLIST_CLAIM_LOCATION_EVENT, callback);
616
+ };
617
+ }
618
+ function getWaitlistClaimTokenSnapshot() {
619
+ return getWaitlistClaimTokenFromUrl();
620
+ }
621
+ function useWaitlistClaim() {
622
+ return useWaitlistClaimWithDeps(useWaitlistClaimDeps);
623
+ }
624
+ function useWaitlistClaimWithDeps(deps) {
625
+ const api = deps.useBlockApi();
626
+ const token = useSyncExternalStore(subscribeToWaitlistClaimToken, getWaitlistClaimTokenSnapshot, () => null);
627
+ const [state, dispatch] = useReducer(waitlistClaimReducer, Boolean(token), createInitialWaitlistClaimState);
628
+ useEffect(() => {
629
+ let cancelled = false;
630
+ async function resolveClaim() {
631
+ if (!token) {
632
+ dispatch({ type: "cleared" });
633
+ return;
634
+ }
635
+ dispatch({ type: "started" });
636
+ try {
637
+ const result = await api.resolveWaitlistClaim({ claimToken: token });
638
+ if (cancelled) return;
639
+ dispatch({
640
+ type: "resolved",
641
+ claim: result
642
+ });
643
+ } catch (claimError) {
644
+ if (cancelled) return;
645
+ dispatch({
646
+ type: "failed",
647
+ failure: toWaitlistClaimResolveFailure(claimError)
648
+ });
649
+ }
650
+ }
651
+ resolveClaim();
652
+ return () => {
653
+ cancelled = true;
654
+ };
655
+ }, [api, token]);
656
+ return {
657
+ token,
658
+ claim: getWaitlistClaim(state),
659
+ error: getWaitlistClaimError(state),
660
+ loginMessage: getWaitlistClaimLoginMessage(state),
661
+ requiresPortalLogin: requiresWaitlistClaimPortalLogin(state),
662
+ isLoading: isWaitlistClaimLoading(state)
663
+ };
664
+ }
665
+ //#endregion
666
+ //#region ../blocks/src/system/runtime/shared/utils/portalLogout.ts
667
+ /**
668
+ * Portal Logout Utility
669
+ *
670
+ * Logout from the customer portal by POSTing to the logout endpoint.
671
+ * Uses a hidden form because the httpOnly cookie can only be cleared server-side.
672
+ */
673
+ /**
674
+ * Logout from the customer portal.
675
+ *
676
+ * @param anchorId - The anchor ID to redirect back to after logout
677
+ */
678
+ function logoutPortal(anchorId) {
679
+ const form = document.createElement("form");
680
+ form.method = "POST";
681
+ form.action = "/api/portal/logout";
682
+ const redirectInput = document.createElement("input");
683
+ redirectInput.type = "hidden";
684
+ redirectInput.name = "redirect_to";
685
+ redirectInput.value = `${window.location.pathname}#${anchorId}`;
686
+ form.appendChild(redirectInput);
687
+ document.body.appendChild(form);
688
+ form.submit();
689
+ }
690
+ //#endregion
493
691
  //#region ../blocks/src/system/runtime/nodes/course-registration/pricing.ts
494
692
  function parseCurrencyInputToCents(value) {
495
693
  const trimmed = value.trim();
@@ -1373,6 +1571,126 @@ function BookingModeStep({ bookingMode, onBookingModeChange, eligibleMemberships
1373
1571
  });
1374
1572
  }
1375
1573
  //#endregion
1574
+ //#region ../blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.ts
1575
+ const initialMagicLinkSubmissionState = Object.freeze({ tag: "idle" });
1576
+ function magicLinkSubmissionReducer(state, action) {
1577
+ switch (action.type) {
1578
+ case "submit-started":
1579
+ if (state.tag === "submitting") return state;
1580
+ return { tag: "submitting" };
1581
+ case "submit-succeeded":
1582
+ if (state.tag !== "submitting") return state;
1583
+ return { tag: "success" };
1584
+ case "submit-failed":
1585
+ if (state.tag !== "submitting") return state;
1586
+ return {
1587
+ tag: "error",
1588
+ message: action.message
1589
+ };
1590
+ case "reset": return initialMagicLinkSubmissionState;
1591
+ default: return assertNever$1(action);
1592
+ }
1593
+ }
1594
+ function isMagicLinkSubmitting(state) {
1595
+ return state.tag === "submitting";
1596
+ }
1597
+ function getMagicLinkError(state) {
1598
+ return state.tag === "error" ? state.message : null;
1599
+ }
1600
+ //#endregion
1601
+ //#region ../blocks/src/system/runtime/nodes/shared/MagicLinkForm.tsx
1602
+ /**
1603
+ * Reusable magic link login form.
1604
+ * Used by Customer Portal and Event Registration blocks.
1605
+ */
1606
+ function MagicLinkForm({ initialEmail = "", title, subtitle, buttonText = "Send login link", successMessage = "Check your email for a login link to sign in.", onSuccess, classPrefix = "er", compact = false }) {
1607
+ const api = useBlockApi();
1608
+ const [email, setEmail] = useState(initialEmail);
1609
+ const [submissionState, dispatchSubmission] = useReducer(magicLinkSubmissionReducer, initialMagicLinkSubmissionState);
1610
+ const loading = isMagicLinkSubmitting(submissionState);
1611
+ const error = getMagicLinkError(submissionState);
1612
+ const handleSubmit = async (e) => {
1613
+ e.preventDefault();
1614
+ const normalizedEmail = email.trim().toLowerCase();
1615
+ if (!normalizedEmail || loading) return;
1616
+ dispatchSubmission({ type: "submit-started" });
1617
+ try {
1618
+ const redirectTo = `${window.location.pathname}${window.location.search}${window.location.hash}`;
1619
+ await api.sendMagicLink({
1620
+ email: normalizedEmail,
1621
+ redirectUrl: `${window.location.origin}/api/portal/callback?redirect_to=${encodeURIComponent(redirectTo)}`
1622
+ });
1623
+ dispatchSubmission({ type: "submit-succeeded" });
1624
+ onSuccess?.();
1625
+ } catch (err) {
1626
+ console.error("Magic link error:", err);
1627
+ dispatchSubmission({
1628
+ type: "submit-failed",
1629
+ message: getMagicLinkErrorMessage(err)
1630
+ });
1631
+ }
1632
+ };
1633
+ const handleReset = () => {
1634
+ setEmail("");
1635
+ dispatchSubmission({ type: "reset" });
1636
+ };
1637
+ if (submissionState.tag === "success") return /* @__PURE__ */ jsxs("div", {
1638
+ className: `${classPrefix}-magic-link-success`,
1639
+ children: [/* @__PURE__ */ jsx("p", {
1640
+ className: `${classPrefix}-portal-auth-text ${classPrefix}-portal-auth-text--success`,
1641
+ children: successMessage
1642
+ }), !compact && /* @__PURE__ */ jsx("button", {
1643
+ type: "button",
1644
+ className: classPrefix === "cp" ? themeButtonClassName({
1645
+ variant: "secondary",
1646
+ size: "md"
1647
+ }) : `${classPrefix}-modal-btn ${classPrefix}-modal-btn--secondary`,
1648
+ onClick: handleReset,
1649
+ children: "Try a different email"
1650
+ })]
1651
+ });
1652
+ return /* @__PURE__ */ jsxs("form", {
1653
+ onSubmit: handleSubmit,
1654
+ className: `${classPrefix}-magic-link-form`,
1655
+ children: [
1656
+ title && /* @__PURE__ */ jsx("h3", {
1657
+ className: `${classPrefix}-magic-link-title`,
1658
+ children: title
1659
+ }),
1660
+ subtitle && /* @__PURE__ */ jsx("p", {
1661
+ className: `${classPrefix}-portal-auth-text`,
1662
+ children: subtitle
1663
+ }),
1664
+ /* @__PURE__ */ jsx("input", {
1665
+ type: "email",
1666
+ className: classPrefix === "cp" ? "cp-input" : `${classPrefix}-form__input`,
1667
+ placeholder: "your@email.com",
1668
+ value: email,
1669
+ onChange: (e) => setEmail(e.target.value),
1670
+ autoFocus: !compact,
1671
+ required: true,
1672
+ disabled: loading
1673
+ }),
1674
+ error && /* @__PURE__ */ jsx("p", {
1675
+ className: `${classPrefix}-portal-auth-text ${classPrefix}-portal-auth-text--error`,
1676
+ children: error
1677
+ }),
1678
+ /* @__PURE__ */ jsx("button", {
1679
+ type: "submit",
1680
+ className: classPrefix === "cp" ? themeButtonClassName({
1681
+ variant: "primary",
1682
+ size: "md"
1683
+ }) : `${classPrefix}-modal-btn`,
1684
+ disabled: !email.trim() || loading,
1685
+ children: loading ? "Sending..." : buttonText
1686
+ })
1687
+ ]
1688
+ });
1689
+ }
1690
+ function getMagicLinkErrorMessage(error) {
1691
+ return error instanceof Error ? error.message : "Failed to send. Please try again.";
1692
+ }
1693
+ //#endregion
1376
1694
  //#region ../blocks/src/system/runtime/nodes/course-registration/PortalAuthSidebar.tsx
1377
1695
  /**
1378
1696
  * Portal authentication sidebar.
@@ -2012,42 +2330,4 @@ function CourseRegistrationWizard(props) {
2012
2330
  });
2013
2331
  }
2014
2332
  //#endregion
2015
- //#region ../blocks/src/system/runtime/nodes/course-registration.client.tsx
2016
- function toCourseRegistrationClientProps(props) {
2017
- return {
2018
- ...props.render.hydration,
2019
- buttonText: props.render.display.summaryButtonText,
2020
- className: props.render.display.className ?? void 0
2021
- };
2022
- }
2023
- function CourseRegistrationClient(props) {
2024
- return /* @__PURE__ */ jsx(CourseRegistrationErrorBoundary, {
2025
- className: props.className,
2026
- children: /* @__PURE__ */ jsx(CourseRegistrationWizard, { ...props })
2027
- });
2028
- }
2029
- function CourseRegistrationIslandClient(props) {
2030
- return /* @__PURE__ */ jsx(CourseRegistrationClient, { ...toCourseRegistrationClientProps(props) });
2031
- }
2032
- //#endregion
2033
- //#region src/rendering/islands/enhancers/courseRegistration.tsx
2034
- const decode = defineIslandPropsDecoder("course-registration");
2035
- const enhance = (root, props) => {
2036
- const { siteId, apiBaseUrl, stage, portalToken } = props;
2037
- if (!siteId) throw new Error("[sdk:islands] course-registration requires siteId");
2038
- if (!apiBaseUrl) throw new Error("[sdk:islands] course-registration requires apiBaseUrl");
2039
- const apiConfig = buildRouteIslandApiConfig({
2040
- apiBaseUrl,
2041
- portalToken,
2042
- siteId,
2043
- stage
2044
- });
2045
- return mountReactIsland(root, ({ root: reactRoot }) => {
2046
- reactRoot.render(/* @__PURE__ */ jsx(BlockApiProvider, {
2047
- config: apiConfig,
2048
- children: /* @__PURE__ */ jsx(CourseRegistrationIslandClient, { ...props })
2049
- }));
2050
- });
2051
- };
2052
- //#endregion
2053
- export { decode, enhance };
2333
+ export { LoggedInAsUser as a, useWaitlistClaim as i, MagicLinkForm as n, CourseRegistrationErrorBoundary as o, logoutPortal as r, ClockIcon as s, CourseRegistrationWizard as t };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { X as themeButtonClassName } from "./propsDecoder-Bcin2DB3.mjs";
2
+ import { X as themeButtonClassName } from "./propsDecoder-CiTuhUwY.mjs";
3
3
  import { useId } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/api/types/discounts.ts
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as clsx } from "./clsx-DgIEfj3H.mjs";
3
- import { A as formatDate, E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, I as formatTime, L as getCardOrientation, N as formatEventPrice, R as getContainerClass, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, X as themeButtonClassName, yt as assertNever, z as groupEventsByDate } from "./propsDecoder-Bcin2DB3.mjs";
4
- import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-B591g9vd.mjs";
3
+ import { A as formatDate, E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, I as formatTime, L as getCardOrientation, N as formatEventPrice, R as getContainerClass, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, X as themeButtonClassName, yt as assertNever, z as groupEventsByDate } from "./propsDecoder-CiTuhUwY.mjs";
4
+ import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-QZ3HMgaJ.mjs";
5
5
  import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
6
6
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
7
7
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { T as buildEventRuntimeFilters } from "./propsDecoder-Bcin2DB3.mjs";
3
- import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-B591g9vd.mjs";
2
+ import { T as buildEventRuntimeFilters } from "./propsDecoder-CiTuhUwY.mjs";
3
+ import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-QZ3HMgaJ.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 { J as isRecord } from "./propsDecoder-Bcin2DB3.mjs";
2
+ import { J as isRecord } from "./propsDecoder-CiTuhUwY.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,6 +1,6 @@
1
1
  import { t as clsx } from "./clsx-DgIEfj3H.mjs";
2
- import { Wt as formatCurrencyAmount } from "./propsDecoder-Bcin2DB3.mjs";
3
- import { a as CheckIcon } from "./scrollToBlock-h-o_STf_.mjs";
2
+ import { Wt as formatCurrencyAmount } from "./propsDecoder-CiTuhUwY.mjs";
3
+ import { a as CheckIcon } from "./scrollToBlock-CShkRqab.mjs";
4
4
  import "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/shared/utils/formatting.ts
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-Bcin2DB3.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
2
2
  //#region src/rendering/islands/enhancers/accordion.ts
3
3
  const decode = defineIslandPropsDecoder("accordion");
4
4
  function parseDefaultValues(value) {
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { d as unsafeAsAppointmentResourceId, f as unsafeAsAppointmentServiceId, g as unsafeAsPassId, m as unsafeAsFormId, p as unsafeAsCustomerPassId } from "./colorStyles-BWpj_h4C.mjs";
3
- import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-BvnChV4m.mjs";
4
- import { Ct as okWith, Et as addLocalScheduleDays, Nt as parseBookingLocalDate, Pt as resolveBookingTimeZoneId, Tt as reportWorkflowSuccess, Wt as formatCurrencyAmount, X as themeButtonClassName, _t as toSelectedCollectionOptionKind, at as formatBookingCentsAsCurrencyInput, bt as clearWorkflowFeedback, ct as getBookingServiceSlidingScale, dt as parseBookingCurrencyInputToCents, ft as prepareBookingSubmission, gt as resolveDefaultBookingServiceId, ht as resolveBookingSiteId, it as deriveBookingFormViewState, jt as formatLocalScheduleDate, kt as formatBookingInstant, lt as getBookingSuccessMessage, mt as resolveBookingPaymentStep, ot as formatBookingSubmissionPreparationError, pt as resolveAppointmentCheckoutVerificationState, rt as logger, st as getBookingRedirectStateFromLocation, t as defineIslandPropsDecoder, ut as isBookingServiceSlidingAmountInRange, vt as BOOKING_FORM_DATA_RESERVED_KEYS, wt as reportWorkflowError, xt as err, yt as assertNever } from "./propsDecoder-Bcin2DB3.mjs";
3
+ import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-BKf0GcE-.mjs";
4
+ import { Ct as okWith, Et as addLocalScheduleDays, Nt as parseBookingLocalDate, Pt as resolveBookingTimeZoneId, Tt as reportWorkflowSuccess, Wt as formatCurrencyAmount, X as themeButtonClassName, _t as toSelectedCollectionOptionKind, at as formatBookingCentsAsCurrencyInput, bt as clearWorkflowFeedback, ct as getBookingServiceSlidingScale, dt as parseBookingCurrencyInputToCents, ft as prepareBookingSubmission, gt as resolveDefaultBookingServiceId, ht as resolveBookingSiteId, it as deriveBookingFormViewState, jt as formatLocalScheduleDate, kt as formatBookingInstant, lt as getBookingSuccessMessage, mt as resolveBookingPaymentStep, ot as formatBookingSubmissionPreparationError, pt as resolveAppointmentCheckoutVerificationState, rt as logger, st as getBookingRedirectStateFromLocation, t as defineIslandPropsDecoder, ut as isBookingServiceSlidingAmountInRange, vt as BOOKING_FORM_DATA_RESERVED_KEYS, wt as reportWorkflowError, xt as err, yt as assertNever } from "./propsDecoder-CiTuhUwY.mjs";
5
5
  import { n as useBlockApi, t as BlockApiProvider } from "./context-CJz1Vlsz.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-h-o_STf_.mjs";
8
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-DS0AuFWW.mjs";
9
- import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-CBYPFVoy.mjs";
7
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-CShkRqab.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-B9vriL5C.mjs";
9
+ import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-DGCYuBJ1.mjs";
10
10
  import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
11
11
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
12
12
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";