@riverbankcms/sdk 0.140.0 → 0.142.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/dist/{PreviewEditorSidebar-CUyTzd5z.mjs → PreviewEditorSidebar-Dk6Dt11f.mjs} +24 -15
- package/dist/{PreviewEditorUI-Agkw4v5i.mjs → PreviewEditorUI-D6EQTsCA.mjs} +3 -3
- package/dist/{PreviewQueryProvider-CN0ewic5.mjs → PreviewQueryProvider-CC-EPkyQ.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DdbeAdS8.mjs → SdkPreviewModeRuntime-DH1n4ytY.mjs} +85 -54
- package/dist/{SiteChromeCustomizeContext-CqGOz-Kv.mjs → SiteChromeCustomizeContext-DunIzY0K.mjs} +797 -216
- package/dist/_dts/api/src/billing.d.ts +6 -1
- package/dist/_dts/api/src/bookingConfig.d.ts +1 -1
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +12 -31
- package/dist/_dts/api/src/domainConnection.d.ts +4 -0
- package/dist/_dts/api/src/endpoints.d.ts +0 -27
- package/dist/_dts/api/src/footerCompositionContracts.d.ts +25 -0
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/launchReadiness.d.ts +1 -0
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +2 -1
- package/dist/_dts/api/src/publicBookingService.d.ts +1 -0
- package/dist/_dts/api/src/sdkConfig/layout.d.ts +13 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -8
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -26
- package/dist/_dts/api/src/siteOnboarding.d.ts +7 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -31
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +18 -5
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +122 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/eventSelection.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +56 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +8 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +5 -0
- package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +27 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -180
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -90
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.state.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +10 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useSettledCommerceView.d.ts +37 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +4 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +11 -101
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +63 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +12 -0
- package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +4 -0
- package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +1 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3102 -3122
- package/dist/_dts/editor-blocks/src/block-editor/ColourFieldOptionsProvider.d.ts +7 -0
- package/dist/_dts/editor-blocks/src/block-editor/colourFieldVisibility.d.ts +7 -0
- package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +27 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +3 -6
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/footerInspection.d.ts +16 -0
- package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +6 -0
- package/dist/_dts/sdk/src/config/types.d.ts +2 -18
- package/dist/_dts/sdk/src/config/validation.d.ts +6 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/ThemeFontLoader.d.ts +17 -1
- package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/classNames.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +0 -6
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +4 -4
- package/dist/_dts/theme-core/src/footer/mode.d.ts +10 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +54 -12
- package/dist/_dts/theme-core/src/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1 -7
- package/dist/_dts/theme-core/src/site-styles/effectivePageDesign.d.ts +32 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
- package/dist/client/{BookingConsentAgreement-CuKa82V4.mjs → BookingConsentAgreement-CnJeq3_r.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-BbYieKWB.mjs → DiscountCodeDisclosure-BINEO6J9.mjs} +1 -1
- package/dist/client/{EventCombined.client-LTfR1Aby.mjs → EventCombined.client-srxNQ6sZ.mjs} +11 -15
- package/dist/client/{EventListing.client-DUHpYSuo.mjs → EventListing.client-DbyVyGkX.mjs} +4 -17
- package/dist/client/{LeafletStaticMap-CHRupL6m.mjs → LeafletStaticMap-B-wpijzL.mjs} +1 -1
- package/dist/client/{accordion-6HiIFxNL.mjs → accordion-B-iUXU7n.mjs} +1 -1
- package/dist/client/{bookingForm-Dlmid43H.mjs → bookingForm-BXYPke5q.mjs} +5 -5
- package/dist/client/bookings.mjs +194 -102
- package/dist/client/{carousel-DmkZRRq_.mjs → carousel-Cr4aj63H.mjs} +1 -1
- package/dist/client/{cart-CIC24330.mjs → cart-DibP9WWa.mjs} +3 -3
- package/dist/client/{checkout-D1Zw9imo.mjs → checkout-CrSBVnL8.mjs} +3 -3
- package/dist/client/client.mjs +643 -192
- package/dist/client/{context-Cy1OayHx.mjs → context-Ces-AgdR.mjs} +1 -1
- package/dist/client/{dates-aDcfoLHr.mjs → dates-BXyNeNhB.mjs} +2 -2
- package/dist/client/{eventCalendar-FQxMPAjf.mjs → eventCalendar-HwpPeqrH.mjs} +11 -7
- package/dist/client/{eventCombined-Dr3ac6Hb.mjs → eventCombined-BpFUkuEI.mjs} +3 -3
- package/dist/client/{eventDetails-D-AzUHFQ.mjs → eventDetails-DK_agiWy.mjs} +4 -4
- package/dist/client/{eventListing-B3XxBf3i.mjs → eventListing-DhzHqP1c.mjs} +3 -3
- package/dist/client/{eventRegistration-I6EaokFD.mjs → eventRegistration-BdQ_Dn2d.mjs} +124 -32
- package/dist/client/{form-BbWckVWY.mjs → form-B1frcuzy.mjs} +2 -2
- package/dist/client/{headerSection-C9qU4Y7x.mjs → headerSection-CT5z460s.mjs} +2 -2
- package/dist/client/hooks.mjs +274 -45
- package/dist/client/{locationMap-CLCShvlG.mjs → locationMap-CIQXB9i2.mjs} +2 -2
- package/dist/client/{newsletterForm-Briukxzi.mjs → newsletterForm-BYNYZSes.mjs} +23 -10
- package/dist/client/{pricing-Copadu-2.mjs → pricing-CbTlAsmt.mjs} +1 -1
- package/dist/client/{productDetail-oujlRd-r.mjs → productDetail-CR7Z3yjS.mjs} +3 -3
- package/dist/client/{productList-BRiIRUcd.mjs → productList-DXj00vzR.mjs} +3 -3
- package/dist/client/{propsDecoder-CB2KS_ko.mjs → propsDecoder-DiLiBdek.mjs} +57 -16
- package/dist/client/rendering/client.mjs +476 -132
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +686 -195
- package/dist/client/{scrollToBlock-B1IS1_ua.mjs → scrollToBlock-CrcbBf0h.mjs} +28 -11
- package/dist/client/{shop-Vn6yNFED.mjs → shop-DgqiB_1b.mjs} +6 -6
- package/dist/client/{shop-commerce-BVTqipYp.mjs → shop-commerce-D_J781in.mjs} +5 -5
- package/dist/client/{shop-commerce-store-BVnJVy7v.mjs → shop-commerce-store-PGUbDwqe.mjs} +1 -1
- package/dist/client/{shopShared-COIeK77T.mjs → shopShared-C_Bb2zwG.mjs} +3 -3
- package/dist/client/{useEventFilters-DzIUcS9n.mjs → useEventFilters-CM17Xpr1.mjs} +17 -11
- package/dist/preview-next/before-render.mjs +0 -37
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-chrome.css +4 -8
- package/dist/preview-next/keepAlive.mjs +0 -37
- package/dist/preview-next/middleware.mjs +0 -37
- package/dist/{previewAuthStore-Gjb6r6vz.mjs → previewAuthStore-oVttoRDO.mjs} +0 -37
- package/dist/{sdk-runtime-CnCLvZRv.mjs → sdk-runtime-DhmuRhIX.mjs} +2 -2
- package/dist/{separator-DKDRJ1oH.mjs → separator-C3hlg9LH.mjs} +1 -1
- package/dist/server/components.mjs +452 -111
- package/dist/server/config-validation.mjs +263 -40
- package/dist/server/config.mjs +263 -40
- package/dist/server/data.mjs +274 -45
- package/dist/server/index.mjs +1 -38
- package/dist/server/next.mjs +427 -119
- package/dist/server/page-converter.mjs +208 -33
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +467 -119
- package/dist/server/rendering.mjs +467 -117
- package/dist/server/routing.mjs +301 -50
- package/dist/server/server.mjs +275 -83
- package/dist/server/theme-bridge.mjs +57 -23
- package/dist/server/theme.mjs +11 -9
- package/dist/styles/index.css +28 -2
- package/package.json +1 -1
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import "react/jsx-runtime";
|
|
3
3
|
import "react";
|
|
4
|
+
//#region ../theme-core/src/footer/mode.ts
|
|
5
|
+
const footerModeSchema = z.enum([
|
|
6
|
+
"default",
|
|
7
|
+
"blocks",
|
|
8
|
+
"default+blocks",
|
|
9
|
+
"none"
|
|
10
|
+
]);
|
|
11
|
+
//#endregion
|
|
4
12
|
//#region ../api/src/apiEndpointTypes.ts
|
|
5
13
|
function allowedDemoMutationPolicy() {
|
|
6
14
|
return {
|
|
@@ -5997,7 +6005,7 @@ const BUTTON_CONTRAST_POLICY = {
|
|
|
5997
6005
|
nonTextMinimumRatio: 3,
|
|
5998
6006
|
gradientSamplesPerSegment: 20,
|
|
5999
6007
|
alphaBackgrounds: "reject-without-known-surface",
|
|
6000
|
-
disabled: "
|
|
6008
|
+
disabled: "validated-colour-pair-with-muted-control-opacity"
|
|
6001
6009
|
};
|
|
6002
6010
|
function validateButtonSurfaceContrast(input) {
|
|
6003
6011
|
const ratio = contrastRatio(input.buttonPaint, input.surfaceHex);
|
|
@@ -10852,12 +10860,6 @@ const footerVariant = z.enum([
|
|
|
10852
10860
|
"split"
|
|
10853
10861
|
]);
|
|
10854
10862
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
10855
|
-
const footerMode = z.enum([
|
|
10856
|
-
"default",
|
|
10857
|
-
"blocks",
|
|
10858
|
-
"default+blocks",
|
|
10859
|
-
"none"
|
|
10860
|
-
]);
|
|
10861
10863
|
const footerNavLayoutMode = z.enum([
|
|
10862
10864
|
"stack",
|
|
10863
10865
|
"inline",
|
|
@@ -10946,9 +10948,9 @@ const footerSchema = z.object({
|
|
|
10946
10948
|
/**
|
|
10947
10949
|
* SDK-only footer rendering mode.
|
|
10948
10950
|
*
|
|
10949
|
-
*
|
|
10951
|
+
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
10950
10952
|
*/
|
|
10951
|
-
mode:
|
|
10953
|
+
mode: footerModeSchema.optional(),
|
|
10952
10954
|
variant: footerVariant,
|
|
10953
10955
|
maxWidth: footerMaxWidth,
|
|
10954
10956
|
showLogoText: z.boolean().optional(),
|
|
@@ -16339,6 +16341,7 @@ function isDisplayMediaKind(kind) {
|
|
|
16339
16341
|
}
|
|
16340
16342
|
const siteOptionSources = [
|
|
16341
16343
|
"eventCategories",
|
|
16344
|
+
"eventSeries",
|
|
16342
16345
|
"venues",
|
|
16343
16346
|
"staffMembers"
|
|
16344
16347
|
];
|
|
@@ -27209,7 +27212,8 @@ const appointmentServicesBlockDefinition = {
|
|
|
27209
27212
|
el("appointment-services", {
|
|
27210
27213
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
27211
27214
|
services: { $bind: { from: "data.services" } },
|
|
27212
|
-
pathname: { $bind: { from: "$root.pathname" } }
|
|
27215
|
+
pathname: { $bind: { from: "$root.pathname" } },
|
|
27216
|
+
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
27213
27217
|
})
|
|
27214
27218
|
], { gap: "lg" })
|
|
27215
27219
|
})]
|
|
@@ -27847,6 +27851,15 @@ const publicEventBaseSchema = z.object({
|
|
|
27847
27851
|
timeZone: z.string(),
|
|
27848
27852
|
pricing: publicEventPricingSchema,
|
|
27849
27853
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
27854
|
+
cancellationPolicy: z.object({ refunds: z.object({
|
|
27855
|
+
mode: z.enum([
|
|
27856
|
+
"never",
|
|
27857
|
+
"always",
|
|
27858
|
+
"cutoff"
|
|
27859
|
+
]),
|
|
27860
|
+
cutoffHours: z.number(),
|
|
27861
|
+
method: z.enum(["original_payment_method", "site_credit"])
|
|
27862
|
+
}) }),
|
|
27850
27863
|
consent: blockBookingConsentSchema.nullable(),
|
|
27851
27864
|
accessRestriction: accessRestrictionSchema,
|
|
27852
27865
|
allowedCategoryIds: z.array(z.string()),
|
|
@@ -29298,6 +29311,35 @@ const eventSpotlightBlockDefinition = {
|
|
|
29298
29311
|
} }
|
|
29299
29312
|
};
|
|
29300
29313
|
//#endregion
|
|
29314
|
+
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
29315
|
+
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
29316
|
+
function resolveEventSelection(mode, value) {
|
|
29317
|
+
if (mode !== "selected") return { kind: "matching" };
|
|
29318
|
+
const candidates = Array.isArray(value) ? value : typeof value === "string" ? value.split(",").filter(Boolean) : [];
|
|
29319
|
+
const ids = [];
|
|
29320
|
+
for (const candidate of candidates) {
|
|
29321
|
+
if (typeof candidate !== "string") return {
|
|
29322
|
+
kind: "selected",
|
|
29323
|
+
seriesIds: []
|
|
29324
|
+
};
|
|
29325
|
+
const parsed = parseEventSeriesId(candidate.trim());
|
|
29326
|
+
if (!parsed.ok) return {
|
|
29327
|
+
kind: "selected",
|
|
29328
|
+
seriesIds: []
|
|
29329
|
+
};
|
|
29330
|
+
ids.push(parsed.value);
|
|
29331
|
+
}
|
|
29332
|
+
return {
|
|
29333
|
+
kind: "selected",
|
|
29334
|
+
seriesIds: [...new Set(ids)].sort()
|
|
29335
|
+
};
|
|
29336
|
+
}
|
|
29337
|
+
/** Undefined means discovery; an empty string is an explicitly empty selection. */
|
|
29338
|
+
function eventSeriesScopeCsv(value) {
|
|
29339
|
+
if (value == null) return void 0;
|
|
29340
|
+
return typeof value === "string" ? value : value.join(",");
|
|
29341
|
+
}
|
|
29342
|
+
//#endregion
|
|
29301
29343
|
//#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
|
|
29302
29344
|
/**
|
|
29303
29345
|
* Layout classes for event listing containers and cards. Presentation
|
|
@@ -29426,6 +29468,7 @@ z.object({
|
|
|
29426
29468
|
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
29427
29469
|
eventPresets: z.string().optional(),
|
|
29428
29470
|
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
29471
|
+
seriesIds: z.string().optional(),
|
|
29429
29472
|
categoryIds: z.string().optional(),
|
|
29430
29473
|
venueId: z.string().transform(normalizeCalendarFilterId).optional(),
|
|
29431
29474
|
staffMemberId: z.string().transform(normalizeCalendarFilterId).optional()
|
|
@@ -29488,6 +29531,7 @@ const eventCollectionFilterSourceSchemaShape = {
|
|
|
29488
29531
|
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
29489
29532
|
filterEventPresets: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29490
29533
|
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
29534
|
+
seriesIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29491
29535
|
filterCategoryIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29492
29536
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
29493
29537
|
filterVenueId: z.string().nullable().optional()
|
|
@@ -29534,6 +29578,7 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
29534
29578
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
29535
29579
|
filterEventPresets: z.string().nullable(),
|
|
29536
29580
|
scheduleScope: eventScheduleScopeSchema$1,
|
|
29581
|
+
seriesIds: z.string().nullable().optional(),
|
|
29537
29582
|
filterCategoryIds: z.string().nullable(),
|
|
29538
29583
|
filterStaffMemberId: z.string().nullable(),
|
|
29539
29584
|
filterVenueId: z.string().nullable(),
|
|
@@ -29581,11 +29626,15 @@ function buildEventCollectionDisplay(source) {
|
|
|
29581
29626
|
};
|
|
29582
29627
|
}
|
|
29583
29628
|
function buildEventCollectionFilterDisplay(source) {
|
|
29584
|
-
|
|
29585
|
-
|
|
29586
|
-
|
|
29587
|
-
|
|
29588
|
-
|
|
29629
|
+
const selected = source.seriesIds != null;
|
|
29630
|
+
const matchingFilters = selected ? {
|
|
29631
|
+
eventSurface: "all",
|
|
29632
|
+
filterEventPresets: null,
|
|
29633
|
+
scheduleScope: "any",
|
|
29634
|
+
filterCategoryIds: null,
|
|
29635
|
+
filterStaffMemberId: null,
|
|
29636
|
+
filterVenueId: null
|
|
29637
|
+
} : {
|
|
29589
29638
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29590
29639
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29591
29640
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -29593,6 +29642,14 @@ function buildEventCollectionFilterDisplay(source) {
|
|
|
29593
29642
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
29594
29643
|
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
29595
29644
|
};
|
|
29645
|
+
return {
|
|
29646
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
29647
|
+
showFilters: selected ? false : source.showFilters ?? true,
|
|
29648
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
29649
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
29650
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
29651
|
+
...matchingFilters
|
|
29652
|
+
};
|
|
29596
29653
|
}
|
|
29597
29654
|
function buildEventCollectionPresentationDisplay(source) {
|
|
29598
29655
|
return {
|
|
@@ -29607,14 +29664,15 @@ function buildEventCollectionPresentationDisplay(source) {
|
|
|
29607
29664
|
}
|
|
29608
29665
|
function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
|
|
29609
29666
|
const timeZone = source.calendarWindow?.scope.timeZone ?? toBookingTimeZone(source.bookingTimeZone);
|
|
29667
|
+
const selected = source.seriesIds != null;
|
|
29610
29668
|
return {
|
|
29611
29669
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
29612
29670
|
siteId: source.siteId,
|
|
29613
29671
|
stage: source.stage,
|
|
29614
29672
|
prefetchedEvents: source.events != null,
|
|
29615
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29616
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29617
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
29673
|
+
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
29674
|
+
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29675
|
+
scheduleScope: selected ? "any" : normalizeEventScheduleScope(source.scheduleScope),
|
|
29618
29676
|
calendarContext: {
|
|
29619
29677
|
timeZone,
|
|
29620
29678
|
initialToday: source.calendarWindow?.initialToday ?? getLocalScheduleDate(now, timeZone)
|
|
@@ -29680,6 +29738,7 @@ const eventListingHydrationSchema = z.object({
|
|
|
29680
29738
|
eventSurface: eventSurfaceScopeSchema,
|
|
29681
29739
|
filterEventPresets: z.string().nullable(),
|
|
29682
29740
|
scheduleScope: eventScheduleScopeSchema,
|
|
29741
|
+
seriesIds: z.string().nullable().optional(),
|
|
29683
29742
|
filterCategoryIds: z.string().nullable().optional(),
|
|
29684
29743
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
29685
29744
|
filterVenueId: z.string().nullable().optional(),
|
|
@@ -29740,6 +29799,7 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
29740
29799
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29741
29800
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29742
29801
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
29802
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
29743
29803
|
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
29744
29804
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
29745
29805
|
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
@@ -30113,6 +30173,65 @@ const eventListingBlockDefinition = {
|
|
|
30113
30173
|
} }
|
|
30114
30174
|
};
|
|
30115
30175
|
//#endregion
|
|
30176
|
+
//#region ../blocks/src/system/blocks/events/eventSelectionFields.ts
|
|
30177
|
+
const eventSelectionFields = [{
|
|
30178
|
+
id: "eventSelection",
|
|
30179
|
+
type: "select",
|
|
30180
|
+
label: "Events to show",
|
|
30181
|
+
required: false,
|
|
30182
|
+
multiple: false,
|
|
30183
|
+
defaultValue: "matching",
|
|
30184
|
+
options: [{
|
|
30185
|
+
value: "matching",
|
|
30186
|
+
label: "All matching events"
|
|
30187
|
+
}, {
|
|
30188
|
+
value: "selected",
|
|
30189
|
+
label: "Selected events"
|
|
30190
|
+
}],
|
|
30191
|
+
ui: { intent: "behavior" }
|
|
30192
|
+
}, createSiteOptionSelectField({
|
|
30193
|
+
id: "selectedEventSeriesIds",
|
|
30194
|
+
label: "Selected events",
|
|
30195
|
+
description: "Show upcoming dates for these events. Other event filters do not apply.",
|
|
30196
|
+
required: false,
|
|
30197
|
+
multiple: true,
|
|
30198
|
+
defaultValue: [],
|
|
30199
|
+
optionSource: "eventSeries",
|
|
30200
|
+
ui: {
|
|
30201
|
+
intent: "behavior",
|
|
30202
|
+
searchThreshold: 1,
|
|
30203
|
+
visibleWhen: {
|
|
30204
|
+
field: "eventSelection",
|
|
30205
|
+
equals: "selected"
|
|
30206
|
+
}
|
|
30207
|
+
}
|
|
30208
|
+
})];
|
|
30209
|
+
function withEventSelectionVisibility(field) {
|
|
30210
|
+
if (![
|
|
30211
|
+
"eventSurface",
|
|
30212
|
+
"filterEventPresets",
|
|
30213
|
+
"scheduleScope",
|
|
30214
|
+
"filterCategoryIds",
|
|
30215
|
+
"filterStaffMemberId",
|
|
30216
|
+
"filterVenueId",
|
|
30217
|
+
"showFilters",
|
|
30218
|
+
"showCategoryFilter",
|
|
30219
|
+
"showVenueFilter",
|
|
30220
|
+
"showStaffFilter"
|
|
30221
|
+
].includes(field.id)) return field;
|
|
30222
|
+
const visibleWhen = field.ui?.visibleWhen;
|
|
30223
|
+
return {
|
|
30224
|
+
...field,
|
|
30225
|
+
ui: {
|
|
30226
|
+
...field.ui,
|
|
30227
|
+
visibleWhen: { allOf: [{
|
|
30228
|
+
field: "eventSelection",
|
|
30229
|
+
notEquals: "selected"
|
|
30230
|
+
}, ...visibleWhen ? [visibleWhen] : []] }
|
|
30231
|
+
}
|
|
30232
|
+
};
|
|
30233
|
+
}
|
|
30234
|
+
//#endregion
|
|
30116
30235
|
//#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
30117
30236
|
const eventCalendarSourceSchema = z.object({
|
|
30118
30237
|
...eventCollectionSourceSchemaShape,
|
|
@@ -30195,19 +30314,59 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
30195
30314
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
30196
30315
|
const scopeParams = {
|
|
30197
30316
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
30317
|
+
seriesIds: { $bind: {
|
|
30318
|
+
from: "content",
|
|
30319
|
+
transforms: [{
|
|
30320
|
+
id: "events.calendarSelectionParam",
|
|
30321
|
+
options: { key: "seriesIds" }
|
|
30322
|
+
}]
|
|
30323
|
+
} },
|
|
30198
30324
|
stage: { $bind: {
|
|
30199
30325
|
from: "$root.previewStage",
|
|
30200
30326
|
fallback: "published"
|
|
30201
30327
|
} },
|
|
30202
|
-
eventSurface: { $bind: {
|
|
30328
|
+
eventSurface: { $bind: {
|
|
30329
|
+
from: "content",
|
|
30330
|
+
transforms: [{
|
|
30331
|
+
id: "events.calendarSelectionParam",
|
|
30332
|
+
options: { key: "eventSurface" }
|
|
30333
|
+
}, { id: "value.csv" }]
|
|
30334
|
+
} },
|
|
30203
30335
|
eventPresets: { $bind: {
|
|
30204
|
-
from: "content
|
|
30205
|
-
transforms: [{
|
|
30336
|
+
from: "content",
|
|
30337
|
+
transforms: [{
|
|
30338
|
+
id: "events.calendarSelectionParam",
|
|
30339
|
+
options: { key: "filterEventPresets" }
|
|
30340
|
+
}, { id: "value.csv" }]
|
|
30341
|
+
} },
|
|
30342
|
+
scheduleScope: { $bind: {
|
|
30343
|
+
from: "content",
|
|
30344
|
+
transforms: [{
|
|
30345
|
+
id: "events.calendarSelectionParam",
|
|
30346
|
+
options: { key: "scheduleScope" }
|
|
30347
|
+
}, { id: "value.csv" }]
|
|
30206
30348
|
} },
|
|
30207
|
-
|
|
30208
|
-
|
|
30209
|
-
|
|
30210
|
-
|
|
30349
|
+
categoryIds: { $bind: {
|
|
30350
|
+
from: "content",
|
|
30351
|
+
transforms: [{
|
|
30352
|
+
id: "events.calendarSelectionParam",
|
|
30353
|
+
options: { key: "filterCategoryIds" }
|
|
30354
|
+
}, { id: "value.csv" }]
|
|
30355
|
+
} },
|
|
30356
|
+
staffMemberId: { $bind: {
|
|
30357
|
+
from: "content",
|
|
30358
|
+
transforms: [{
|
|
30359
|
+
id: "events.calendarSelectionParam",
|
|
30360
|
+
options: { key: "filterStaffMemberId" }
|
|
30361
|
+
}, { id: "value.csv" }]
|
|
30362
|
+
} },
|
|
30363
|
+
venueId: { $bind: {
|
|
30364
|
+
from: "content",
|
|
30365
|
+
transforms: [{
|
|
30366
|
+
id: "events.calendarSelectionParam",
|
|
30367
|
+
options: { key: "filterVenueId" }
|
|
30368
|
+
}, { id: "value.csv" }]
|
|
30369
|
+
} }
|
|
30211
30370
|
};
|
|
30212
30371
|
/** Combined renders two jobs; calendar-only variants never pay for the list seed. */
|
|
30213
30372
|
const eventCalendarDataLoaders = {
|
|
@@ -30337,6 +30496,13 @@ const eventCalendarLayout = [styledSection({
|
|
|
30337
30496
|
from: "content.defaultCalendarView",
|
|
30338
30497
|
fallback: "month"
|
|
30339
30498
|
} },
|
|
30499
|
+
seriesIds: { $bind: {
|
|
30500
|
+
from: "content",
|
|
30501
|
+
transforms: [{
|
|
30502
|
+
id: "events.calendarSelectionParam",
|
|
30503
|
+
options: { key: "seriesIds" }
|
|
30504
|
+
}]
|
|
30505
|
+
} },
|
|
30340
30506
|
showFilters: { $bind: {
|
|
30341
30507
|
from: "content.showFilters",
|
|
30342
30508
|
fallback: true
|
|
@@ -30358,17 +30524,47 @@ const eventCalendarLayout = [styledSection({
|
|
|
30358
30524
|
fallback: true
|
|
30359
30525
|
} },
|
|
30360
30526
|
eventSurface: { $bind: {
|
|
30361
|
-
from: "content
|
|
30362
|
-
|
|
30527
|
+
from: "content",
|
|
30528
|
+
transforms: [{
|
|
30529
|
+
id: "events.calendarSelectionParam",
|
|
30530
|
+
options: { key: "eventSurface" }
|
|
30531
|
+
}]
|
|
30532
|
+
} },
|
|
30533
|
+
filterEventPresets: { $bind: {
|
|
30534
|
+
from: "content",
|
|
30535
|
+
transforms: [{
|
|
30536
|
+
id: "events.calendarSelectionParam",
|
|
30537
|
+
options: { key: "filterEventPresets" }
|
|
30538
|
+
}]
|
|
30363
30539
|
} },
|
|
30364
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
30365
30540
|
scheduleScope: { $bind: {
|
|
30366
|
-
from: "content
|
|
30367
|
-
|
|
30541
|
+
from: "content",
|
|
30542
|
+
transforms: [{
|
|
30543
|
+
id: "events.calendarSelectionParam",
|
|
30544
|
+
options: { key: "scheduleScope" }
|
|
30545
|
+
}]
|
|
30546
|
+
} },
|
|
30547
|
+
filterCategoryIds: { $bind: {
|
|
30548
|
+
from: "content",
|
|
30549
|
+
transforms: [{
|
|
30550
|
+
id: "events.calendarSelectionParam",
|
|
30551
|
+
options: { key: "filterCategoryIds" }
|
|
30552
|
+
}]
|
|
30553
|
+
} },
|
|
30554
|
+
filterStaffMemberId: { $bind: {
|
|
30555
|
+
from: "content",
|
|
30556
|
+
transforms: [{
|
|
30557
|
+
id: "events.calendarSelectionParam",
|
|
30558
|
+
options: { key: "filterStaffMemberId" }
|
|
30559
|
+
}]
|
|
30560
|
+
} },
|
|
30561
|
+
filterVenueId: { $bind: {
|
|
30562
|
+
from: "content",
|
|
30563
|
+
transforms: [{
|
|
30564
|
+
id: "events.calendarSelectionParam",
|
|
30565
|
+
options: { key: "filterVenueId" }
|
|
30566
|
+
}]
|
|
30368
30567
|
} },
|
|
30369
|
-
filterCategoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
30370
|
-
filterStaffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|
|
30371
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
30372
30568
|
cardRole: { $bind: {
|
|
30373
30569
|
from: "content._cardStyles.role",
|
|
30374
30570
|
fallback: "default"
|
|
@@ -30872,6 +31068,7 @@ const eventCalendarAdditionalFields = [
|
|
|
30872
31068
|
}
|
|
30873
31069
|
}
|
|
30874
31070
|
},
|
|
31071
|
+
...eventSelectionFields,
|
|
30875
31072
|
{
|
|
30876
31073
|
id: "eventSurface",
|
|
30877
31074
|
type: "select",
|
|
@@ -31081,7 +31278,7 @@ const eventCalendarBlockDefinition = {
|
|
|
31081
31278
|
titleSource: "heading",
|
|
31082
31279
|
description: "Display events with calendar, list, or combined views with filtering",
|
|
31083
31280
|
skipSectionStyles: true,
|
|
31084
|
-
additionalFields: eventCalendarAdditionalFields,
|
|
31281
|
+
additionalFields: eventCalendarAdditionalFields.map(withEventSelectionVisibility),
|
|
31085
31282
|
styleTokens: {
|
|
31086
31283
|
background: "surface",
|
|
31087
31284
|
typography: "body",
|
|
@@ -37504,6 +37701,26 @@ const linksTransforms = [{
|
|
|
37504
37701
|
//#endregion
|
|
37505
37702
|
//#region ../blocks/src/system/transforms/registry/index.ts
|
|
37506
37703
|
const builtinTransformDefinitions = [
|
|
37704
|
+
{
|
|
37705
|
+
id: "events.calendarSelectionParam",
|
|
37706
|
+
kind: "formatter",
|
|
37707
|
+
summary: "Resolve selected events instead of discovery filters",
|
|
37708
|
+
schema: z.object({ key: z.enum([
|
|
37709
|
+
"seriesIds",
|
|
37710
|
+
"eventSurface",
|
|
37711
|
+
"filterEventPresets",
|
|
37712
|
+
"scheduleScope",
|
|
37713
|
+
"filterCategoryIds",
|
|
37714
|
+
"filterStaffMemberId",
|
|
37715
|
+
"filterVenueId"
|
|
37716
|
+
]) }),
|
|
37717
|
+
run(value, { key }) {
|
|
37718
|
+
const content = asPartialObject(value) ?? {};
|
|
37719
|
+
const selection = resolveEventSelection(content.eventSelection, content.selectedEventSeriesIds);
|
|
37720
|
+
if (selection.kind === "selected") return key === "seriesIds" ? selection.seriesIds : void 0;
|
|
37721
|
+
return key === "seriesIds" ? void 0 : content[key];
|
|
37722
|
+
}
|
|
37723
|
+
},
|
|
37507
37724
|
{
|
|
37508
37725
|
id: "events.calendarReadEnabled",
|
|
37509
37726
|
kind: "formatter",
|
|
@@ -37770,11 +37987,14 @@ const sdkSiteStyleConfigSchema = z.object({
|
|
|
37770
37987
|
sectionOptions: sdkSectionOptionsConfigSchema.optional(),
|
|
37771
37988
|
containerOptions: sdkContainerOptionsConfigSchema.optional()
|
|
37772
37989
|
});
|
|
37773
|
-
const sdkSiteLayoutConfigSchema = z.object({
|
|
37774
|
-
|
|
37775
|
-
|
|
37776
|
-
|
|
37777
|
-
|
|
37990
|
+
const sdkSiteLayoutConfigSchema = z.object({
|
|
37991
|
+
footerMode: footerModeSchema.optional(),
|
|
37992
|
+
footerBlocks: z.array(z.object({
|
|
37993
|
+
id: z.string().min(1).optional(),
|
|
37994
|
+
kind: z.string().min(1),
|
|
37995
|
+
content: z.record(z.string(), z.unknown()).optional()
|
|
37996
|
+
})).optional()
|
|
37997
|
+
});
|
|
37778
37998
|
const sdkFieldSelectOptionSchema = z.object({
|
|
37779
37999
|
value: z.string(),
|
|
37780
38000
|
label: z.string()
|
|
@@ -39684,7 +39904,10 @@ const layoutFooterBlockSchema = z.object({
|
|
|
39684
39904
|
kind: layoutBlockKindSchema,
|
|
39685
39905
|
content: z.record(z.string(), z.unknown()).optional()
|
|
39686
39906
|
}).strict();
|
|
39687
|
-
const layoutConfigSchema = z.object({
|
|
39907
|
+
const layoutConfigSchema = z.object({
|
|
39908
|
+
footerMode: footerModeSchema.optional(),
|
|
39909
|
+
footerBlocks: z.array(layoutFooterBlockSchema).optional()
|
|
39910
|
+
}).strict();
|
|
39688
39911
|
const sdkWorkflowIdSchema = z.string().min(1).max(120).regex(SDK_WORKFLOW_ID_PATTERN, { message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens" });
|
|
39689
39912
|
const sdkWorkflowEndpointSchema = z.string().min(1).max(500).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: "Workflow endpoint must be a site-relative path starting with \"/\"" });
|
|
39690
39913
|
const sdkWorkflowTriggerSchema = z.discriminatedUnion("type", [z.object({ type: z.literal("manual") }).strict()]);
|