@riverbankcms/sdk 0.135.1 → 0.137.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.
- package/CHANGELOG.md +114 -0
- package/README.md +4 -8
- package/dist/{PreviewEditorSidebar-D4p_5TdY.mjs → PreviewEditorSidebar-Bn6cONPa.mjs} +8 -8
- package/dist/{PreviewEditorUI-D0cRoTX1.mjs → PreviewEditorUI-LAwXZPSx.mjs} +3 -3
- package/dist/{PreviewQueryProvider-DcgaESkm.mjs → PreviewQueryProvider-ztQUdsNo.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BKLtM3Nz.mjs → SdkPreviewModeRuntime-BbbGsI_v.mjs} +621 -238
- package/dist/{SiteChromeCustomizeContext-61X2m7QV.mjs → SiteChromeCustomizeContext-BbkNSt5a.mjs} +5041 -2407
- package/dist/_dts/ai/src/contracts/proposals.d.ts +18 -850
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +412 -2316
- package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
- package/dist/_dts/api/src/accessAdmin.d.ts +1 -9
- package/dist/_dts/api/src/accountApi.d.ts +49 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +7 -4
- package/dist/_dts/api/src/domainConnection.d.ts +41 -0
- package/dist/_dts/api/src/endpoints.d.ts +201 -181
- package/dist/_dts/api/src/index.d.ts +5 -3
- package/dist/_dts/api/src/media.d.ts +19 -2
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +26 -0
- package/dist/_dts/api/src/sdkBlockContentAdmission.d.ts +5 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -15
- package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
- package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +61 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +21 -436
- package/dist/_dts/api/src/siteInfrastructure.d.ts +17 -23
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +7 -21
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +27 -3
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -3
- package/dist/_dts/block-form/src/utils/slug.d.ts +6 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +13 -7
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -0
- package/dist/_dts/blocks/src/definitions.d.ts +14 -0
- package/dist/_dts/blocks/src/index.d.ts +4 -3
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +49 -0
- package/dist/_dts/blocks/src/pageRendererBlockSupport.d.ts +75 -0
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +2 -0
- package/dist/_dts/blocks/src/server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +78 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +2 -18
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +103 -16
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +19 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +47 -21
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +8 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +40 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +43 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarNavigationChevron.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalContext.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +31 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +4 -3
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -1
- package/dist/_dts/calendar/src/grid.d.ts +24 -66
- package/dist/_dts/calendar/src/index.d.ts +2 -2
- package/dist/_dts/calendar/src/timetable.d.ts +5 -9
- package/dist/_dts/commerce/src/purchase/allocation.d.ts +11 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +3 -0
- package/dist/_dts/commerce/src/purchase/settlement.d.ts +33 -0
- package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +8 -0
- package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -0
- package/dist/_dts/core/src/slug.d.ts +20 -5
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +8 -40
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
- package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +6 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -2
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +10 -6
- package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +0 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +17 -0
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +9 -3
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +7 -4
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
- package/dist/_dts/theme-core/src/data.d.ts +12 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +25 -2
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -6
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -810
- package/dist/_dts/theme-core/src/schema.d.ts +460 -1285
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +223 -1
- package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
- package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -38
- package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +10 -0
- package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +8 -5
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
- package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +25 -2
- package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +465 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +168 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
- package/dist/client/{BookingConsentAgreement-Bz9znbpn.mjs → BookingConsentAgreement--_fUCZe-.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-35Ru8yB9.mjs → DiscountCodeDisclosure-BMipSoDJ.mjs} +1 -1
- package/dist/client/{EventCombined.client-BKB0ZxRR.mjs → EventCombined.client-CwJOxn7A.mjs} +274 -278
- package/dist/client/{EventListing.client-Dx8I21ok.mjs → EventListing.client-eVwiylPW.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CEWx-Bhe.mjs → LeafletStaticMap-IKenna5u.mjs} +1 -1
- package/dist/client/{accordion-KIDsKTwS.mjs → accordion-MGAO3PuE.mjs} +1 -1
- package/dist/client/{bookingForm-D96Rmp-5.mjs → bookingForm-CudlQPUu.mjs} +5 -5
- package/dist/client/bookings.mjs +476 -98
- package/dist/client/capacity-BW00PO7s.mjs +271 -0
- package/dist/client/{carousel-YwUgyL66.mjs → carousel-BrbGJ2Jl.mjs} +1 -1
- package/dist/client/{cart-BbwuNrUT.mjs → cart-Bq5eU0xZ.mjs} +3 -3
- package/dist/client/{checkout-hp1ucmEY.mjs → checkout-BAFVRdrK.mjs} +3 -3
- package/dist/client/client.mjs +4641 -2721
- package/dist/client/{context-DljQn8L5.mjs → context-DCkiHVdD.mjs} +20 -5
- package/dist/client/dates-2RPXHQy4.mjs +264 -0
- package/dist/client/{eventCalendar-DU4iNLpo.mjs → eventCalendar-B0O-hPF7.mjs} +261 -126
- package/dist/client/{eventCombined-CZuupW8m.mjs → eventCombined-DCkDaoDI.mjs} +3 -3
- package/dist/client/{eventDetails-DPQWwCIi.mjs → eventDetails-D8GG2dnD.mjs} +7 -4
- package/dist/client/{eventListing-C7oMidwS.mjs → eventListing-3ssV_bxz.mjs} +3 -3
- package/dist/client/{eventRegistration-zEiunlUs.mjs → eventRegistration-bPQo3kVw.mjs} +610 -313
- package/dist/client/{form-D2KIyCVJ.mjs → form-qMv8RDkk.mjs} +2 -2
- package/dist/client/{headerSection-CK5uChUK.mjs → headerSection-CH0Sc5hX.mjs} +2 -2
- package/dist/client/hooks.mjs +2514 -308
- package/dist/client/{locationMap-DLQNH1ln.mjs → locationMap-0_xlBnNI.mjs} +2 -2
- package/dist/client/{newsletterForm-ZuhIG7fZ.mjs → newsletterForm-NUW7m9RI.mjs} +2 -2
- package/dist/client/{productDetail-7hIcGeae.mjs → productDetail-FBEOM7jW.mjs} +3 -3
- package/dist/client/{productList-T4Cii1ot.mjs → productList-R0OSGhnn.mjs} +3 -3
- package/dist/client/{propsDecoder-mB0aC_Fi.mjs → propsDecoder-pYvx_Srl.mjs} +179 -401
- package/dist/client/rendering/client.mjs +3496 -2223
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +4400 -2510
- package/dist/client/{scrollToBlock-Du5mHgvL.mjs → scrollToBlock-ByQv96M2.mjs} +1 -1
- package/dist/client/{shop-B5zAcKZn.mjs → shop-RUG9DmRE.mjs} +6 -6
- package/dist/client/{shop-commerce-BKBZB6l5.mjs → shop-commerce-B76Jz23B.mjs} +5 -5
- package/dist/client/{shop-commerce-store-Cq4qlNtQ.mjs → shop-commerce-store-QuQNdDsD.mjs} +1 -1
- package/dist/client/{shopShared-DYGzEs9D.mjs → shopShared-vXU1omwJ.mjs} +3 -3
- package/dist/client/{useEventFilters-Bphkda8m.mjs → useEventFilters-ByuU6HLA.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +86 -51
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +86 -51
- package/dist/preview-next/middleware.mjs +86 -51
- package/dist/{previewAuthStore-C7ksxt5b.mjs → previewAuthStore-L_cKW8Sb.mjs} +86 -51
- package/dist/{sdk-runtime-BbIC8G4J.mjs → sdk-runtime-sUMr5d70.mjs} +2 -2
- package/dist/{separator-CadhAtI7.mjs → separator-BIHkie5i.mjs} +1 -1
- package/dist/server/components.mjs +4397 -2960
- package/dist/server/config-validation.mjs +354 -145
- package/dist/server/config.mjs +354 -145
- package/dist/server/data.mjs +354 -144
- package/dist/server/index.mjs +201 -55
- package/dist/server/manifest.mjs +0 -1
- package/dist/server/next.mjs +4046 -2611
- package/dist/server/page-converter.mjs +225 -122
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4105 -2636
- package/dist/server/rendering.mjs +4522 -3087
- package/dist/server/routing.mjs +3289 -1637
- package/dist/server/server.mjs +23175 -21079
- package/dist/server/theme-bridge.mjs +708 -272
- package/dist/server/theme.mjs +29 -25
- package/dist/styles/index.css +624 -181
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
- /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
|
@@ -183,6 +183,10 @@ const EVENTS = {
|
|
|
183
183
|
registrationStatus: {
|
|
184
184
|
path: "/public/sites/{siteId}/events/registration-status",
|
|
185
185
|
method: "GET"
|
|
186
|
+
},
|
|
187
|
+
checkoutReturn: {
|
|
188
|
+
path: "/public/sites/{siteId}/events/checkout-return",
|
|
189
|
+
method: "POST"
|
|
186
190
|
}
|
|
187
191
|
};
|
|
188
192
|
const WHOLE_SERIES = {
|
|
@@ -452,10 +456,11 @@ function encodePublicProductCategorySelector(selector) {
|
|
|
452
456
|
* Error thrown when an API request fails
|
|
453
457
|
*/
|
|
454
458
|
var BlockApiError = class extends Error {
|
|
455
|
-
constructor(message, status, code) {
|
|
459
|
+
constructor(message, status, code, tag) {
|
|
456
460
|
super(message);
|
|
457
461
|
this.status = status;
|
|
458
462
|
this.code = code;
|
|
463
|
+
this.tag = tag;
|
|
459
464
|
this.name = "BlockApiError";
|
|
460
465
|
}
|
|
461
466
|
};
|
|
@@ -487,7 +492,8 @@ function getBlockApiErrorDetails(data) {
|
|
|
487
492
|
const nestedError = isRecord(data.error) ? data.error : void 0;
|
|
488
493
|
return {
|
|
489
494
|
message: typeof nestedError?.message === "string" ? nestedError.message : typeof data.message === "string" ? data.message : void 0,
|
|
490
|
-
code: typeof nestedError?.code === "string" ? nestedError.code : typeof data.code === "string" ? data.code : void 0
|
|
495
|
+
code: typeof nestedError?.code === "string" ? nestedError.code : typeof data.code === "string" ? data.code : void 0,
|
|
496
|
+
tag: typeof nestedError?.tag === "string" ? nestedError.tag : void 0
|
|
491
497
|
};
|
|
492
498
|
}
|
|
493
499
|
function buildUnexpectedJsonResponseMessage(parseResult) {
|
|
@@ -506,7 +512,8 @@ async function extractErrorDetails(response) {
|
|
|
506
512
|
const details = getBlockApiErrorDetails(parseResult.value);
|
|
507
513
|
return {
|
|
508
514
|
message: details.message ?? fallbackMessage,
|
|
509
|
-
code: details.code
|
|
515
|
+
code: details.code,
|
|
516
|
+
tag: details.tag
|
|
510
517
|
};
|
|
511
518
|
}
|
|
512
519
|
case "invalid-json": return { message: `${fallbackMessage} (received invalid JSON)` };
|
|
@@ -603,7 +610,7 @@ function createBlockApi(config) {
|
|
|
603
610
|
const response = await fetch(url, fetchOptions);
|
|
604
611
|
if (!response.ok) {
|
|
605
612
|
const details = await extractErrorDetails(response);
|
|
606
|
-
throw new BlockApiError(details.message, response.status, details.code);
|
|
613
|
+
throw new BlockApiError(details.message, response.status, details.code, details.tag);
|
|
607
614
|
}
|
|
608
615
|
const json = await parseJsonApiResponse(response);
|
|
609
616
|
if (isApiSuccessResponse(json)) return json.data;
|
|
@@ -779,6 +786,14 @@ function createBlockApi(config) {
|
|
|
779
786
|
skipDedup: true
|
|
780
787
|
});
|
|
781
788
|
},
|
|
789
|
+
async resolveEventCheckoutReturn(data) {
|
|
790
|
+
const sid = requireSiteId();
|
|
791
|
+
const path = buildPath(EVENTS.checkoutReturn.path, { siteId: sid });
|
|
792
|
+
return request(EVENTS.checkoutReturn, {
|
|
793
|
+
path,
|
|
794
|
+
body: data
|
|
795
|
+
});
|
|
796
|
+
},
|
|
782
797
|
async resolveWaitlistClaim(data) {
|
|
783
798
|
const sid = requireSiteId();
|
|
784
799
|
const path = buildPath(WHOLE_SERIES.waitlistClaimResolve.path, { siteId: sid });
|
|
@@ -1102,4 +1117,4 @@ function useBlockApi() {
|
|
|
1102
1117
|
return client;
|
|
1103
1118
|
}
|
|
1104
1119
|
//#endregion
|
|
1105
|
-
export { useBlockApi as n, BlockApiProvider as t };
|
|
1120
|
+
export { useBlockApi as n, BlockApiError as r, BlockApiProvider as t };
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { Bt as toScheduledBookingDateTime, H as resolveRuntimeEventDestination, Mt as formatBookingTime, Ot as formatBookingDate, Rt as toBookingTimeZone, kt as formatBookingDateParts, qt as assertNever, zt as toScheduledBookingDateRange } from "./propsDecoder-pYvx_Srl.mjs";
|
|
2
|
+
import { n as canJoinEventWaitlistOnAnyMode, u as isEventFull } from "./capacity-BW00PO7s.mjs";
|
|
3
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/cta.ts
|
|
4
|
+
/**
|
|
5
|
+
* Booking call-to-action resolution for events: where an event links to and
|
|
6
|
+
* what the button says. Sold-out and waitlist decisions come from capacity.ts
|
|
7
|
+
* so cards, rows and the wizard never disagree.
|
|
8
|
+
*/
|
|
9
|
+
function closedEventBookingLabel(reason) {
|
|
10
|
+
switch (reason) {
|
|
11
|
+
case "occurrence_cancelled":
|
|
12
|
+
case "series_cancelled": return "Cancelled";
|
|
13
|
+
case "occurrence_completed":
|
|
14
|
+
case "series_completed": return "Completed";
|
|
15
|
+
case "series_draft":
|
|
16
|
+
case "series_archived":
|
|
17
|
+
case "parent_archived":
|
|
18
|
+
case "parent_inconsistent":
|
|
19
|
+
case "not_public":
|
|
20
|
+
case "already_started":
|
|
21
|
+
case "enrollment_closed": return "Registration closed";
|
|
22
|
+
default: return assertNever(reason);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function resolveEventHref(event) {
|
|
26
|
+
const destination = resolveRuntimeEventDestination(event);
|
|
27
|
+
return destination.kind === "external" ? destination.url : destination.path;
|
|
28
|
+
}
|
|
29
|
+
function resolveEventLinkProps(event) {
|
|
30
|
+
const href = resolveEventHref(event);
|
|
31
|
+
return resolveRuntimeEventDestination(event).kind === "external" ? {
|
|
32
|
+
href,
|
|
33
|
+
target: "_blank",
|
|
34
|
+
rel: "noopener noreferrer"
|
|
35
|
+
} : { href };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the CTA state for an event.
|
|
39
|
+
* Shared by EventCard and EventCompactRow to keep sold-out, registration-closed,
|
|
40
|
+
* and course-specific defaults consistent.
|
|
41
|
+
*/
|
|
42
|
+
function resolveEventCta(event, buttonText) {
|
|
43
|
+
const isSoldOut = isEventFull(event);
|
|
44
|
+
const destination = resolveRuntimeEventDestination(event);
|
|
45
|
+
const isExternal = destination.kind === "external";
|
|
46
|
+
const defaultButtonText = isExternal ? destination.label : event.bookingScope === "whole_series" ? "Book course" : "Book";
|
|
47
|
+
const effectiveButtonText = buttonText ?? defaultButtonText;
|
|
48
|
+
const href = resolveEventHref(event);
|
|
49
|
+
if (event.bookingAvailability.kind === "closed") {
|
|
50
|
+
const linksToClosedWholeSeriesDetails = event.bookingAvailability.reason === "enrollment_closed" && !isExternal;
|
|
51
|
+
return {
|
|
52
|
+
label: closedEventBookingLabel(event.bookingAvailability.reason),
|
|
53
|
+
href,
|
|
54
|
+
external: isExternal,
|
|
55
|
+
hidden: !linksToClosedWholeSeriesDetails
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (!isExternal && isSoldOut) {
|
|
59
|
+
if (canJoinEventWaitlistOnAnyMode(event)) return {
|
|
60
|
+
label: "Join waitlist",
|
|
61
|
+
href,
|
|
62
|
+
external: false,
|
|
63
|
+
hidden: false
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
label: "Sold out",
|
|
67
|
+
href,
|
|
68
|
+
external: false,
|
|
69
|
+
hidden: true
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
label: effectiveButtonText,
|
|
74
|
+
href,
|
|
75
|
+
external: isExternal,
|
|
76
|
+
hidden: false
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region ../calendar/src/timezone.ts
|
|
81
|
+
/**
|
|
82
|
+
* Timezone boundary helpers — internal.
|
|
83
|
+
*
|
|
84
|
+
* Both functions read an ISO instant in a given IANA timezone and project it
|
|
85
|
+
* onto the wall clock of that zone. They use Intl.DateTimeFormat with
|
|
86
|
+
* hourCycle: 'h23' to avoid 12/24-hour ambiguity. Used internally by the
|
|
87
|
+
* timetable model and `groupItemsByDate`; not exported from the package's
|
|
88
|
+
* public surface.
|
|
89
|
+
*/
|
|
90
|
+
const MINUTES_PER_HOUR = 60;
|
|
91
|
+
/**
|
|
92
|
+
* Local minute-of-day [0, 24*60) for an ISO instant in the given zone.
|
|
93
|
+
* Returns NaN if the inputs cannot be parsed (caller should drop the item).
|
|
94
|
+
*/
|
|
95
|
+
function getLocalMinuteOfDay(isoTimestamp, timeZone) {
|
|
96
|
+
const date = new Date(isoTimestamp);
|
|
97
|
+
if (Number.isNaN(date.getTime())) return NaN;
|
|
98
|
+
if (!isValidTimeZone(timeZone)) return NaN;
|
|
99
|
+
const parts = new Intl.DateTimeFormat("en-GB", {
|
|
100
|
+
timeZone,
|
|
101
|
+
hour: "2-digit",
|
|
102
|
+
minute: "2-digit",
|
|
103
|
+
hourCycle: "h23"
|
|
104
|
+
}).formatToParts(date);
|
|
105
|
+
const hourPart = Number(parts.find((part) => part.type === "hour")?.value);
|
|
106
|
+
const minute = Number(parts.find((part) => part.type === "minute")?.value);
|
|
107
|
+
const hour = hourPart === 24 ? 0 : hourPart;
|
|
108
|
+
if (Number.isNaN(hour) || Number.isNaN(minute)) return NaN;
|
|
109
|
+
return hour * MINUTES_PER_HOUR + minute;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Local YYYY-MM-DD for an ISO instant in the given zone.
|
|
113
|
+
* Returns null if the inputs cannot be parsed.
|
|
114
|
+
*/
|
|
115
|
+
function getLocalDateKey(isoTimestamp, timeZone) {
|
|
116
|
+
const date = new Date(isoTimestamp);
|
|
117
|
+
if (Number.isNaN(date.getTime())) return null;
|
|
118
|
+
if (!isValidTimeZone(timeZone)) return null;
|
|
119
|
+
const parts = new Intl.DateTimeFormat("en-CA", {
|
|
120
|
+
timeZone,
|
|
121
|
+
year: "numeric",
|
|
122
|
+
month: "2-digit",
|
|
123
|
+
day: "2-digit"
|
|
124
|
+
}).formatToParts(date);
|
|
125
|
+
const year = parts.find((part) => part.type === "year")?.value;
|
|
126
|
+
const month = parts.find((part) => part.type === "month")?.value;
|
|
127
|
+
const day = parts.find((part) => part.type === "day")?.value;
|
|
128
|
+
if (year === void 0 || year.length === 0) return null;
|
|
129
|
+
if (month === void 0 || month.length === 0) return null;
|
|
130
|
+
if (day === void 0 || day.length === 0) return null;
|
|
131
|
+
return `${year}-${month}-${day}`;
|
|
132
|
+
}
|
|
133
|
+
const validTimeZoneCache = /* @__PURE__ */ new Map();
|
|
134
|
+
function isValidTimeZone(timeZone) {
|
|
135
|
+
if (typeof timeZone !== "string" || timeZone.length === 0) return false;
|
|
136
|
+
const cached = validTimeZoneCache.get(timeZone);
|
|
137
|
+
if (cached !== void 0) return cached;
|
|
138
|
+
try {
|
|
139
|
+
new Intl.DateTimeFormat("en-US", { timeZone });
|
|
140
|
+
validTimeZoneCache.set(timeZone, true);
|
|
141
|
+
return true;
|
|
142
|
+
} catch {
|
|
143
|
+
validTimeZoneCache.set(timeZone, false);
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//#endregion
|
|
148
|
+
//#region ../calendar/src/group.ts
|
|
149
|
+
/**
|
|
150
|
+
* Group items by their local date (YYYY-MM-DD in the item's own timezone).
|
|
151
|
+
*
|
|
152
|
+
* Generic over `T`. Items with un-parseable startsAt or invalid timezone are
|
|
153
|
+
* silently dropped — call sites that need diagnostics should validate upstream.
|
|
154
|
+
*
|
|
155
|
+
* The output map preserves insertion order of dates (ES2015 spec) and the
|
|
156
|
+
* relative order of items within each date matches input order.
|
|
157
|
+
*/
|
|
158
|
+
function groupItemsByDate(items, accessors) {
|
|
159
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
160
|
+
for (const item of items) {
|
|
161
|
+
const dateKey = getLocalDateKey(accessors.getStartsAt(item), accessors.getTimeZone(item));
|
|
162
|
+
if (dateKey == null) continue;
|
|
163
|
+
const existing = grouped.get(dateKey);
|
|
164
|
+
if (existing !== void 0) existing.push(item);
|
|
165
|
+
else grouped.set(dateKey, [item]);
|
|
166
|
+
}
|
|
167
|
+
return grouped;
|
|
168
|
+
}
|
|
169
|
+
//#endregion
|
|
170
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/dates.ts
|
|
171
|
+
/**
|
|
172
|
+
* Date and time presentation for events: the single place an event's
|
|
173
|
+
* timestamps become strings or date buckets. Calendar-grid primitives are
|
|
174
|
+
* re-exported from @riverbankcms/calendar so block code has one import.
|
|
175
|
+
*/
|
|
176
|
+
/**
|
|
177
|
+
* Format date for display.
|
|
178
|
+
* Returns: "Monday, January 15, 2025"
|
|
179
|
+
*/
|
|
180
|
+
function formatDate(isoTimestamp, options) {
|
|
181
|
+
return formatBookingDate(toScheduledBookingDateTime({
|
|
182
|
+
startsAt: isoTimestamp,
|
|
183
|
+
timeZone: toBookingTimeZone(options?.timeZone ?? "UTC"),
|
|
184
|
+
locale: options?.locale ?? "en-US"
|
|
185
|
+
}), {
|
|
186
|
+
weekday: "long",
|
|
187
|
+
year: "numeric",
|
|
188
|
+
month: "long",
|
|
189
|
+
day: "numeric"
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Format time for display.
|
|
194
|
+
* Returns: "10:00 AM"
|
|
195
|
+
*/
|
|
196
|
+
function formatTime(isoTimestamp, options) {
|
|
197
|
+
return formatBookingTime(toScheduledBookingDateTime({
|
|
198
|
+
startsAt: isoTimestamp,
|
|
199
|
+
timeZone: toBookingTimeZone(options?.timeZone ?? "UTC"),
|
|
200
|
+
locale: options?.locale ?? "en-US"
|
|
201
|
+
}), {
|
|
202
|
+
hour: "numeric",
|
|
203
|
+
minute: "2-digit",
|
|
204
|
+
hour12: true
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
function formatEventDateParts(args) {
|
|
208
|
+
const scheduledRange = toScheduledBookingDateRange({
|
|
209
|
+
startsAt: args.startsAt,
|
|
210
|
+
endsAt: args.endsAt,
|
|
211
|
+
timeZone: toBookingTimeZone(args.timeZone ?? "UTC"),
|
|
212
|
+
locale: args.locale ?? "en-US"
|
|
213
|
+
});
|
|
214
|
+
const { date, time: start } = formatBookingDateParts(scheduledRange, { dateFormat: {
|
|
215
|
+
weekday: "long",
|
|
216
|
+
year: "numeric",
|
|
217
|
+
month: "long",
|
|
218
|
+
day: "numeric"
|
|
219
|
+
} });
|
|
220
|
+
return {
|
|
221
|
+
date,
|
|
222
|
+
timeRange: `${start} – ${formatBookingTime(toScheduledBookingDateTime({
|
|
223
|
+
startsAt: args.endsAt,
|
|
224
|
+
timeZone: scheduledRange.timeZone,
|
|
225
|
+
locale: args.locale ?? "en-US"
|
|
226
|
+
}))}`
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
function formatEventCompactDateRail(isoTimestamp, options) {
|
|
230
|
+
const dateTime = toScheduledBookingDateTime({
|
|
231
|
+
startsAt: isoTimestamp,
|
|
232
|
+
timeZone: toBookingTimeZone(options?.timeZone ?? "UTC"),
|
|
233
|
+
locale: options?.locale ?? "en-US"
|
|
234
|
+
});
|
|
235
|
+
const weekday = formatBookingDate(dateTime, { weekday: "short" }).toLocaleUpperCase(options?.locale ?? "en-US");
|
|
236
|
+
const month = formatBookingDate(dateTime, { month: "short" }).toLocaleUpperCase(options?.locale ?? "en-US");
|
|
237
|
+
return {
|
|
238
|
+
weekday,
|
|
239
|
+
day: formatBookingDate(dateTime, { day: "numeric" }),
|
|
240
|
+
month,
|
|
241
|
+
label: formatBookingDate(dateTime, {
|
|
242
|
+
weekday: "long",
|
|
243
|
+
year: "numeric",
|
|
244
|
+
month: "long",
|
|
245
|
+
day: "numeric"
|
|
246
|
+
})
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Group events by their local date (YYYY-MM-DD key in each event's own
|
|
251
|
+
* timezone). Thin domain wrapper over `groupItemsByDate` from the calendar
|
|
252
|
+
* package; preserves the historical `Map<string, PublicEvent[]>` shape.
|
|
253
|
+
*/
|
|
254
|
+
function groupEventsByDate(events, calendarTimeZone) {
|
|
255
|
+
const grouped = groupItemsByDate(events, {
|
|
256
|
+
getStartsAt: (event) => event.startsAt,
|
|
257
|
+
getTimeZone: () => calendarTimeZone
|
|
258
|
+
});
|
|
259
|
+
const map = /* @__PURE__ */ new Map();
|
|
260
|
+
for (const [dateKey, bucket] of grouped) map.set(dateKey, [...bucket]);
|
|
261
|
+
return map;
|
|
262
|
+
}
|
|
263
|
+
//#endregion
|
|
264
|
+
export { groupEventsByDate as a, resolveEventCta as c, formatTime as i, resolveEventLinkProps as l, formatEventCompactDateRail as n, getLocalDateKey as o, formatEventDateParts as r, getLocalMinuteOfDay as s, formatDate as t };
|