@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
package/dist/server/config.mjs
CHANGED
|
@@ -46,6 +46,14 @@ function fallbackBinding(...sources) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
//#endregion
|
|
49
|
+
//#region ../theme-core/src/footer/mode.ts
|
|
50
|
+
const footerModeSchema = z.enum([
|
|
51
|
+
"default",
|
|
52
|
+
"blocks",
|
|
53
|
+
"default+blocks",
|
|
54
|
+
"none"
|
|
55
|
+
]);
|
|
56
|
+
//#endregion
|
|
49
57
|
//#region ../api/src/apiEndpointTypes.ts
|
|
50
58
|
function allowedDemoMutationPolicy() {
|
|
51
59
|
return {
|
|
@@ -6074,7 +6082,7 @@ const BUTTON_CONTRAST_POLICY = {
|
|
|
6074
6082
|
nonTextMinimumRatio: 3,
|
|
6075
6083
|
gradientSamplesPerSegment: 20,
|
|
6076
6084
|
alphaBackgrounds: "reject-without-known-surface",
|
|
6077
|
-
disabled: "
|
|
6085
|
+
disabled: "validated-colour-pair-with-muted-control-opacity"
|
|
6078
6086
|
};
|
|
6079
6087
|
function validateButtonSurfaceContrast(input) {
|
|
6080
6088
|
const ratio = contrastRatio(input.buttonPaint, input.surfaceHex);
|
|
@@ -10929,12 +10937,6 @@ const footerVariant = z.enum([
|
|
|
10929
10937
|
"split"
|
|
10930
10938
|
]);
|
|
10931
10939
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
10932
|
-
const footerMode = z.enum([
|
|
10933
|
-
"default",
|
|
10934
|
-
"blocks",
|
|
10935
|
-
"default+blocks",
|
|
10936
|
-
"none"
|
|
10937
|
-
]);
|
|
10938
10940
|
const footerNavLayoutMode = z.enum([
|
|
10939
10941
|
"stack",
|
|
10940
10942
|
"inline",
|
|
@@ -11023,9 +11025,9 @@ const footerSchema = z.object({
|
|
|
11023
11025
|
/**
|
|
11024
11026
|
* SDK-only footer rendering mode.
|
|
11025
11027
|
*
|
|
11026
|
-
*
|
|
11028
|
+
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
11027
11029
|
*/
|
|
11028
|
-
mode:
|
|
11030
|
+
mode: footerModeSchema.optional(),
|
|
11029
11031
|
variant: footerVariant,
|
|
11030
11032
|
maxWidth: footerMaxWidth,
|
|
11031
11033
|
showLogoText: z.boolean().optional(),
|
|
@@ -16416,6 +16418,7 @@ function isDisplayMediaKind(kind) {
|
|
|
16416
16418
|
}
|
|
16417
16419
|
const siteOptionSources = [
|
|
16418
16420
|
"eventCategories",
|
|
16421
|
+
"eventSeries",
|
|
16419
16422
|
"venues",
|
|
16420
16423
|
"staffMembers"
|
|
16421
16424
|
];
|
|
@@ -27286,7 +27289,8 @@ const appointmentServicesBlockDefinition = {
|
|
|
27286
27289
|
el("appointment-services", {
|
|
27287
27290
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
27288
27291
|
services: { $bind: { from: "data.services" } },
|
|
27289
|
-
pathname: { $bind: { from: "$root.pathname" } }
|
|
27292
|
+
pathname: { $bind: { from: "$root.pathname" } },
|
|
27293
|
+
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
27290
27294
|
})
|
|
27291
27295
|
], { gap: "lg" })
|
|
27292
27296
|
})]
|
|
@@ -27924,6 +27928,15 @@ const publicEventBaseSchema = z.object({
|
|
|
27924
27928
|
timeZone: z.string(),
|
|
27925
27929
|
pricing: publicEventPricingSchema,
|
|
27926
27930
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
27931
|
+
cancellationPolicy: z.object({ refunds: z.object({
|
|
27932
|
+
mode: z.enum([
|
|
27933
|
+
"never",
|
|
27934
|
+
"always",
|
|
27935
|
+
"cutoff"
|
|
27936
|
+
]),
|
|
27937
|
+
cutoffHours: z.number(),
|
|
27938
|
+
method: z.enum(["original_payment_method", "site_credit"])
|
|
27939
|
+
}) }),
|
|
27927
27940
|
consent: blockBookingConsentSchema.nullable(),
|
|
27928
27941
|
accessRestriction: accessRestrictionSchema,
|
|
27929
27942
|
allowedCategoryIds: z.array(z.string()),
|
|
@@ -29375,6 +29388,35 @@ const eventSpotlightBlockDefinition = {
|
|
|
29375
29388
|
} }
|
|
29376
29389
|
};
|
|
29377
29390
|
//#endregion
|
|
29391
|
+
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
29392
|
+
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
29393
|
+
function resolveEventSelection(mode, value) {
|
|
29394
|
+
if (mode !== "selected") return { kind: "matching" };
|
|
29395
|
+
const candidates = Array.isArray(value) ? value : typeof value === "string" ? value.split(",").filter(Boolean) : [];
|
|
29396
|
+
const ids = [];
|
|
29397
|
+
for (const candidate of candidates) {
|
|
29398
|
+
if (typeof candidate !== "string") return {
|
|
29399
|
+
kind: "selected",
|
|
29400
|
+
seriesIds: []
|
|
29401
|
+
};
|
|
29402
|
+
const parsed = parseEventSeriesId(candidate.trim());
|
|
29403
|
+
if (!parsed.ok) return {
|
|
29404
|
+
kind: "selected",
|
|
29405
|
+
seriesIds: []
|
|
29406
|
+
};
|
|
29407
|
+
ids.push(parsed.value);
|
|
29408
|
+
}
|
|
29409
|
+
return {
|
|
29410
|
+
kind: "selected",
|
|
29411
|
+
seriesIds: [...new Set(ids)].sort()
|
|
29412
|
+
};
|
|
29413
|
+
}
|
|
29414
|
+
/** Undefined means discovery; an empty string is an explicitly empty selection. */
|
|
29415
|
+
function eventSeriesScopeCsv(value) {
|
|
29416
|
+
if (value == null) return void 0;
|
|
29417
|
+
return typeof value === "string" ? value : value.join(",");
|
|
29418
|
+
}
|
|
29419
|
+
//#endregion
|
|
29378
29420
|
//#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
|
|
29379
29421
|
/**
|
|
29380
29422
|
* Layout classes for event listing containers and cards. Presentation
|
|
@@ -29503,6 +29545,7 @@ z.object({
|
|
|
29503
29545
|
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
29504
29546
|
eventPresets: z.string().optional(),
|
|
29505
29547
|
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
29548
|
+
seriesIds: z.string().optional(),
|
|
29506
29549
|
categoryIds: z.string().optional(),
|
|
29507
29550
|
venueId: z.string().transform(normalizeCalendarFilterId).optional(),
|
|
29508
29551
|
staffMemberId: z.string().transform(normalizeCalendarFilterId).optional()
|
|
@@ -29565,6 +29608,7 @@ const eventCollectionFilterSourceSchemaShape = {
|
|
|
29565
29608
|
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
29566
29609
|
filterEventPresets: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29567
29610
|
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
29611
|
+
seriesIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29568
29612
|
filterCategoryIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29569
29613
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
29570
29614
|
filterVenueId: z.string().nullable().optional()
|
|
@@ -29611,6 +29655,7 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
29611
29655
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
29612
29656
|
filterEventPresets: z.string().nullable(),
|
|
29613
29657
|
scheduleScope: eventScheduleScopeSchema$1,
|
|
29658
|
+
seriesIds: z.string().nullable().optional(),
|
|
29614
29659
|
filterCategoryIds: z.string().nullable(),
|
|
29615
29660
|
filterStaffMemberId: z.string().nullable(),
|
|
29616
29661
|
filterVenueId: z.string().nullable(),
|
|
@@ -29658,11 +29703,15 @@ function buildEventCollectionDisplay(source) {
|
|
|
29658
29703
|
};
|
|
29659
29704
|
}
|
|
29660
29705
|
function buildEventCollectionFilterDisplay(source) {
|
|
29661
|
-
|
|
29662
|
-
|
|
29663
|
-
|
|
29664
|
-
|
|
29665
|
-
|
|
29706
|
+
const selected = source.seriesIds != null;
|
|
29707
|
+
const matchingFilters = selected ? {
|
|
29708
|
+
eventSurface: "all",
|
|
29709
|
+
filterEventPresets: null,
|
|
29710
|
+
scheduleScope: "any",
|
|
29711
|
+
filterCategoryIds: null,
|
|
29712
|
+
filterStaffMemberId: null,
|
|
29713
|
+
filterVenueId: null
|
|
29714
|
+
} : {
|
|
29666
29715
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29667
29716
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29668
29717
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -29670,6 +29719,14 @@ function buildEventCollectionFilterDisplay(source) {
|
|
|
29670
29719
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
29671
29720
|
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
29672
29721
|
};
|
|
29722
|
+
return {
|
|
29723
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
29724
|
+
showFilters: selected ? false : source.showFilters ?? true,
|
|
29725
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
29726
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
29727
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
29728
|
+
...matchingFilters
|
|
29729
|
+
};
|
|
29673
29730
|
}
|
|
29674
29731
|
function buildEventCollectionPresentationDisplay(source) {
|
|
29675
29732
|
return {
|
|
@@ -29684,14 +29741,15 @@ function buildEventCollectionPresentationDisplay(source) {
|
|
|
29684
29741
|
}
|
|
29685
29742
|
function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
|
|
29686
29743
|
const timeZone = source.calendarWindow?.scope.timeZone ?? toBookingTimeZone(source.bookingTimeZone);
|
|
29744
|
+
const selected = source.seriesIds != null;
|
|
29687
29745
|
return {
|
|
29688
29746
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
29689
29747
|
siteId: source.siteId,
|
|
29690
29748
|
stage: source.stage,
|
|
29691
29749
|
prefetchedEvents: source.events != null,
|
|
29692
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29693
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29694
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
29750
|
+
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
29751
|
+
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29752
|
+
scheduleScope: selected ? "any" : normalizeEventScheduleScope(source.scheduleScope),
|
|
29695
29753
|
calendarContext: {
|
|
29696
29754
|
timeZone,
|
|
29697
29755
|
initialToday: source.calendarWindow?.initialToday ?? getLocalScheduleDate(now, timeZone)
|
|
@@ -29757,6 +29815,7 @@ const eventListingHydrationSchema = z.object({
|
|
|
29757
29815
|
eventSurface: eventSurfaceScopeSchema,
|
|
29758
29816
|
filterEventPresets: z.string().nullable(),
|
|
29759
29817
|
scheduleScope: eventScheduleScopeSchema,
|
|
29818
|
+
seriesIds: z.string().nullable().optional(),
|
|
29760
29819
|
filterCategoryIds: z.string().nullable().optional(),
|
|
29761
29820
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
29762
29821
|
filterVenueId: z.string().nullable().optional(),
|
|
@@ -29817,6 +29876,7 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
29817
29876
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29818
29877
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29819
29878
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
29879
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
29820
29880
|
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
29821
29881
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
29822
29882
|
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
@@ -30190,6 +30250,65 @@ const eventListingBlockDefinition = {
|
|
|
30190
30250
|
} }
|
|
30191
30251
|
};
|
|
30192
30252
|
//#endregion
|
|
30253
|
+
//#region ../blocks/src/system/blocks/events/eventSelectionFields.ts
|
|
30254
|
+
const eventSelectionFields = [{
|
|
30255
|
+
id: "eventSelection",
|
|
30256
|
+
type: "select",
|
|
30257
|
+
label: "Events to show",
|
|
30258
|
+
required: false,
|
|
30259
|
+
multiple: false,
|
|
30260
|
+
defaultValue: "matching",
|
|
30261
|
+
options: [{
|
|
30262
|
+
value: "matching",
|
|
30263
|
+
label: "All matching events"
|
|
30264
|
+
}, {
|
|
30265
|
+
value: "selected",
|
|
30266
|
+
label: "Selected events"
|
|
30267
|
+
}],
|
|
30268
|
+
ui: { intent: "behavior" }
|
|
30269
|
+
}, createSiteOptionSelectField({
|
|
30270
|
+
id: "selectedEventSeriesIds",
|
|
30271
|
+
label: "Selected events",
|
|
30272
|
+
description: "Show upcoming dates for these events. Other event filters do not apply.",
|
|
30273
|
+
required: false,
|
|
30274
|
+
multiple: true,
|
|
30275
|
+
defaultValue: [],
|
|
30276
|
+
optionSource: "eventSeries",
|
|
30277
|
+
ui: {
|
|
30278
|
+
intent: "behavior",
|
|
30279
|
+
searchThreshold: 1,
|
|
30280
|
+
visibleWhen: {
|
|
30281
|
+
field: "eventSelection",
|
|
30282
|
+
equals: "selected"
|
|
30283
|
+
}
|
|
30284
|
+
}
|
|
30285
|
+
})];
|
|
30286
|
+
function withEventSelectionVisibility(field) {
|
|
30287
|
+
if (![
|
|
30288
|
+
"eventSurface",
|
|
30289
|
+
"filterEventPresets",
|
|
30290
|
+
"scheduleScope",
|
|
30291
|
+
"filterCategoryIds",
|
|
30292
|
+
"filterStaffMemberId",
|
|
30293
|
+
"filterVenueId",
|
|
30294
|
+
"showFilters",
|
|
30295
|
+
"showCategoryFilter",
|
|
30296
|
+
"showVenueFilter",
|
|
30297
|
+
"showStaffFilter"
|
|
30298
|
+
].includes(field.id)) return field;
|
|
30299
|
+
const visibleWhen = field.ui?.visibleWhen;
|
|
30300
|
+
return {
|
|
30301
|
+
...field,
|
|
30302
|
+
ui: {
|
|
30303
|
+
...field.ui,
|
|
30304
|
+
visibleWhen: { allOf: [{
|
|
30305
|
+
field: "eventSelection",
|
|
30306
|
+
notEquals: "selected"
|
|
30307
|
+
}, ...visibleWhen ? [visibleWhen] : []] }
|
|
30308
|
+
}
|
|
30309
|
+
};
|
|
30310
|
+
}
|
|
30311
|
+
//#endregion
|
|
30193
30312
|
//#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
30194
30313
|
const eventCalendarSourceSchema = z.object({
|
|
30195
30314
|
...eventCollectionSourceSchemaShape,
|
|
@@ -30272,19 +30391,59 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
30272
30391
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
30273
30392
|
const scopeParams = {
|
|
30274
30393
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
30394
|
+
seriesIds: { $bind: {
|
|
30395
|
+
from: "content",
|
|
30396
|
+
transforms: [{
|
|
30397
|
+
id: "events.calendarSelectionParam",
|
|
30398
|
+
options: { key: "seriesIds" }
|
|
30399
|
+
}]
|
|
30400
|
+
} },
|
|
30275
30401
|
stage: { $bind: {
|
|
30276
30402
|
from: "$root.previewStage",
|
|
30277
30403
|
fallback: "published"
|
|
30278
30404
|
} },
|
|
30279
|
-
eventSurface: { $bind: {
|
|
30405
|
+
eventSurface: { $bind: {
|
|
30406
|
+
from: "content",
|
|
30407
|
+
transforms: [{
|
|
30408
|
+
id: "events.calendarSelectionParam",
|
|
30409
|
+
options: { key: "eventSurface" }
|
|
30410
|
+
}, { id: "value.csv" }]
|
|
30411
|
+
} },
|
|
30280
30412
|
eventPresets: { $bind: {
|
|
30281
|
-
from: "content
|
|
30282
|
-
transforms: [{
|
|
30413
|
+
from: "content",
|
|
30414
|
+
transforms: [{
|
|
30415
|
+
id: "events.calendarSelectionParam",
|
|
30416
|
+
options: { key: "filterEventPresets" }
|
|
30417
|
+
}, { id: "value.csv" }]
|
|
30418
|
+
} },
|
|
30419
|
+
scheduleScope: { $bind: {
|
|
30420
|
+
from: "content",
|
|
30421
|
+
transforms: [{
|
|
30422
|
+
id: "events.calendarSelectionParam",
|
|
30423
|
+
options: { key: "scheduleScope" }
|
|
30424
|
+
}, { id: "value.csv" }]
|
|
30283
30425
|
} },
|
|
30284
|
-
|
|
30285
|
-
|
|
30286
|
-
|
|
30287
|
-
|
|
30426
|
+
categoryIds: { $bind: {
|
|
30427
|
+
from: "content",
|
|
30428
|
+
transforms: [{
|
|
30429
|
+
id: "events.calendarSelectionParam",
|
|
30430
|
+
options: { key: "filterCategoryIds" }
|
|
30431
|
+
}, { id: "value.csv" }]
|
|
30432
|
+
} },
|
|
30433
|
+
staffMemberId: { $bind: {
|
|
30434
|
+
from: "content",
|
|
30435
|
+
transforms: [{
|
|
30436
|
+
id: "events.calendarSelectionParam",
|
|
30437
|
+
options: { key: "filterStaffMemberId" }
|
|
30438
|
+
}, { id: "value.csv" }]
|
|
30439
|
+
} },
|
|
30440
|
+
venueId: { $bind: {
|
|
30441
|
+
from: "content",
|
|
30442
|
+
transforms: [{
|
|
30443
|
+
id: "events.calendarSelectionParam",
|
|
30444
|
+
options: { key: "filterVenueId" }
|
|
30445
|
+
}, { id: "value.csv" }]
|
|
30446
|
+
} }
|
|
30288
30447
|
};
|
|
30289
30448
|
/** Combined renders two jobs; calendar-only variants never pay for the list seed. */
|
|
30290
30449
|
const eventCalendarDataLoaders = {
|
|
@@ -30414,6 +30573,13 @@ const eventCalendarLayout = [styledSection({
|
|
|
30414
30573
|
from: "content.defaultCalendarView",
|
|
30415
30574
|
fallback: "month"
|
|
30416
30575
|
} },
|
|
30576
|
+
seriesIds: { $bind: {
|
|
30577
|
+
from: "content",
|
|
30578
|
+
transforms: [{
|
|
30579
|
+
id: "events.calendarSelectionParam",
|
|
30580
|
+
options: { key: "seriesIds" }
|
|
30581
|
+
}]
|
|
30582
|
+
} },
|
|
30417
30583
|
showFilters: { $bind: {
|
|
30418
30584
|
from: "content.showFilters",
|
|
30419
30585
|
fallback: true
|
|
@@ -30435,17 +30601,47 @@ const eventCalendarLayout = [styledSection({
|
|
|
30435
30601
|
fallback: true
|
|
30436
30602
|
} },
|
|
30437
30603
|
eventSurface: { $bind: {
|
|
30438
|
-
from: "content
|
|
30439
|
-
|
|
30604
|
+
from: "content",
|
|
30605
|
+
transforms: [{
|
|
30606
|
+
id: "events.calendarSelectionParam",
|
|
30607
|
+
options: { key: "eventSurface" }
|
|
30608
|
+
}]
|
|
30609
|
+
} },
|
|
30610
|
+
filterEventPresets: { $bind: {
|
|
30611
|
+
from: "content",
|
|
30612
|
+
transforms: [{
|
|
30613
|
+
id: "events.calendarSelectionParam",
|
|
30614
|
+
options: { key: "filterEventPresets" }
|
|
30615
|
+
}]
|
|
30440
30616
|
} },
|
|
30441
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
30442
30617
|
scheduleScope: { $bind: {
|
|
30443
|
-
from: "content
|
|
30444
|
-
|
|
30618
|
+
from: "content",
|
|
30619
|
+
transforms: [{
|
|
30620
|
+
id: "events.calendarSelectionParam",
|
|
30621
|
+
options: { key: "scheduleScope" }
|
|
30622
|
+
}]
|
|
30623
|
+
} },
|
|
30624
|
+
filterCategoryIds: { $bind: {
|
|
30625
|
+
from: "content",
|
|
30626
|
+
transforms: [{
|
|
30627
|
+
id: "events.calendarSelectionParam",
|
|
30628
|
+
options: { key: "filterCategoryIds" }
|
|
30629
|
+
}]
|
|
30630
|
+
} },
|
|
30631
|
+
filterStaffMemberId: { $bind: {
|
|
30632
|
+
from: "content",
|
|
30633
|
+
transforms: [{
|
|
30634
|
+
id: "events.calendarSelectionParam",
|
|
30635
|
+
options: { key: "filterStaffMemberId" }
|
|
30636
|
+
}]
|
|
30637
|
+
} },
|
|
30638
|
+
filterVenueId: { $bind: {
|
|
30639
|
+
from: "content",
|
|
30640
|
+
transforms: [{
|
|
30641
|
+
id: "events.calendarSelectionParam",
|
|
30642
|
+
options: { key: "filterVenueId" }
|
|
30643
|
+
}]
|
|
30445
30644
|
} },
|
|
30446
|
-
filterCategoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
30447
|
-
filterStaffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|
|
30448
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
30449
30645
|
cardRole: { $bind: {
|
|
30450
30646
|
from: "content._cardStyles.role",
|
|
30451
30647
|
fallback: "default"
|
|
@@ -30949,6 +31145,7 @@ const eventCalendarAdditionalFields = [
|
|
|
30949
31145
|
}
|
|
30950
31146
|
}
|
|
30951
31147
|
},
|
|
31148
|
+
...eventSelectionFields,
|
|
30952
31149
|
{
|
|
30953
31150
|
id: "eventSurface",
|
|
30954
31151
|
type: "select",
|
|
@@ -31158,7 +31355,7 @@ const eventCalendarBlockDefinition = {
|
|
|
31158
31355
|
titleSource: "heading",
|
|
31159
31356
|
description: "Display events with calendar, list, or combined views with filtering",
|
|
31160
31357
|
skipSectionStyles: true,
|
|
31161
|
-
additionalFields: eventCalendarAdditionalFields,
|
|
31358
|
+
additionalFields: eventCalendarAdditionalFields.map(withEventSelectionVisibility),
|
|
31162
31359
|
styleTokens: {
|
|
31163
31360
|
background: "surface",
|
|
31164
31361
|
typography: "body",
|
|
@@ -37581,6 +37778,26 @@ const linksTransforms = [{
|
|
|
37581
37778
|
//#endregion
|
|
37582
37779
|
//#region ../blocks/src/system/transforms/registry/index.ts
|
|
37583
37780
|
const builtinTransformDefinitions = [
|
|
37781
|
+
{
|
|
37782
|
+
id: "events.calendarSelectionParam",
|
|
37783
|
+
kind: "formatter",
|
|
37784
|
+
summary: "Resolve selected events instead of discovery filters",
|
|
37785
|
+
schema: z.object({ key: z.enum([
|
|
37786
|
+
"seriesIds",
|
|
37787
|
+
"eventSurface",
|
|
37788
|
+
"filterEventPresets",
|
|
37789
|
+
"scheduleScope",
|
|
37790
|
+
"filterCategoryIds",
|
|
37791
|
+
"filterStaffMemberId",
|
|
37792
|
+
"filterVenueId"
|
|
37793
|
+
]) }),
|
|
37794
|
+
run(value, { key }) {
|
|
37795
|
+
const content = asPartialObject(value) ?? {};
|
|
37796
|
+
const selection = resolveEventSelection(content.eventSelection, content.selectedEventSeriesIds);
|
|
37797
|
+
if (selection.kind === "selected") return key === "seriesIds" ? selection.seriesIds : void 0;
|
|
37798
|
+
return key === "seriesIds" ? void 0 : content[key];
|
|
37799
|
+
}
|
|
37800
|
+
},
|
|
37584
37801
|
{
|
|
37585
37802
|
id: "events.calendarReadEnabled",
|
|
37586
37803
|
kind: "formatter",
|
|
@@ -37847,11 +38064,14 @@ const sdkSiteStyleConfigSchema = z.object({
|
|
|
37847
38064
|
sectionOptions: sdkSectionOptionsConfigSchema.optional(),
|
|
37848
38065
|
containerOptions: sdkContainerOptionsConfigSchema.optional()
|
|
37849
38066
|
});
|
|
37850
|
-
const sdkSiteLayoutConfigSchema = z.object({
|
|
37851
|
-
|
|
37852
|
-
|
|
37853
|
-
|
|
37854
|
-
|
|
38067
|
+
const sdkSiteLayoutConfigSchema = z.object({
|
|
38068
|
+
footerMode: footerModeSchema.optional(),
|
|
38069
|
+
footerBlocks: z.array(z.object({
|
|
38070
|
+
id: z.string().min(1).optional(),
|
|
38071
|
+
kind: z.string().min(1),
|
|
38072
|
+
content: z.record(z.string(), z.unknown()).optional()
|
|
38073
|
+
})).optional()
|
|
38074
|
+
});
|
|
37855
38075
|
const sdkFieldSelectOptionSchema = z.object({
|
|
37856
38076
|
value: z.string(),
|
|
37857
38077
|
label: z.string()
|
|
@@ -39701,7 +39921,10 @@ const layoutFooterBlockSchema = z.object({
|
|
|
39701
39921
|
kind: layoutBlockKindSchema,
|
|
39702
39922
|
content: z.record(z.string(), z.unknown()).optional()
|
|
39703
39923
|
}).strict();
|
|
39704
|
-
const layoutConfigSchema = z.object({
|
|
39924
|
+
const layoutConfigSchema = z.object({
|
|
39925
|
+
footerMode: footerModeSchema.optional(),
|
|
39926
|
+
footerBlocks: z.array(layoutFooterBlockSchema).optional()
|
|
39927
|
+
}).strict();
|
|
39705
39928
|
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" });
|
|
39706
39929
|
const sdkWorkflowEndpointSchema = z.string().min(1).max(500).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: "Workflow endpoint must be a site-relative path starting with \"/\"" });
|
|
39707
39930
|
const sdkWorkflowTriggerSchema = z.discriminatedUnion("type", [z.object({ type: z.literal("manual") }).strict()]);
|