@riverbankcms/sdk 0.96.0 → 0.98.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/README.md +20 -1
- package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-CG3SSJND.mjs} +3 -3
- package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-RHNGKAAU.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +8 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
- package/dist/_dts/api/src/endpoints.d.ts +80 -0
- package/dist/_dts/api/src/index.d.ts +3 -2
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -1
- package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
- package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
- package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
- package/dist/_dts/blocks/src/utils/date-formatting.d.ts +1 -1
- package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
- package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
- package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
- package/dist/_dts/core/src/branded.d.ts +8 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +505 -2
- package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
- package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
- package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
- package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
- package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
- package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
- package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
- package/dist/_dts/sdk/src/client/types.d.ts +18 -2
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
- package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +52 -1
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/{chunk-EL55VV6Q.mjs → chunk-6WDBXCPX.mjs} +31 -10
- package/dist/{chunk-XMATDBXO.mjs → chunk-DBRI3PQF.mjs} +731 -180
- package/dist/{chunk-VHIMXQ7Z.mjs → chunk-H24OU7WG.mjs} +2 -2
- package/dist/{chunk-4TLTV7OB.mjs → chunk-PKDPQHB5.mjs} +2 -2
- package/dist/{chunk-VTPPVAOL.mjs → chunk-QPXE2OUZ.mjs} +1 -1
- package/dist/{chunk-7ED5UNHL.mjs → chunk-V2BYFSPW.mjs} +109 -0
- package/dist/cli/index.mjs +2131 -1033
- package/dist/cli/init-docs/content/cli-reference.md +29 -1
- package/dist/cli/init-docs/content/getting-started.md +8 -0
- package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
- package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
- package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
- package/dist/client/{accordion-GUNXIIZR.mjs → accordion-Q2BDNL53.mjs} +1 -1
- package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-ZMP4P7EK.mjs} +16 -6
- package/dist/client/bookings.mjs +98 -18
- package/dist/client/{carousel-4QSX2JPC.mjs → carousel-LW3UXPWO.mjs} +1 -1
- package/dist/client/{cart-JKN6C4ZB.mjs → cart-Z6D3KS6K.mjs} +5 -5
- package/dist/client/{checkout-YY6YMITW.mjs → checkout-YMT2QJQM.mjs} +5 -5
- package/dist/client/{chunk-6H27K6AA.mjs → chunk-26ZBRXFR.mjs} +9 -3
- package/dist/client/{chunk-VJROUYOQ.mjs → chunk-DRRQ7QSL.mjs} +2 -2
- package/dist/client/{chunk-BFCJZODD.mjs → chunk-ET2MDQQT.mjs} +4 -4
- package/dist/client/{chunk-H7A6PUGM.mjs → chunk-HBQEAOG4.mjs} +1 -1
- package/dist/client/{chunk-CPKMJVBD.mjs → chunk-IEOECM7U.mjs} +62 -43
- package/dist/client/{chunk-TNGL2WJF.mjs → chunk-KDP7ZRZV.mjs} +16 -0
- package/dist/client/{chunk-GWCRCJLB.mjs → chunk-R4XK3CKR.mjs} +12 -1
- package/dist/client/{chunk-A3YN7M3G.mjs → chunk-SK2BMD22.mjs} +2 -2
- package/dist/client/{chunk-SY543WZ3.mjs → chunk-XNTHVZ25.mjs} +1 -1
- package/dist/client/client.mjs +3729 -3054
- package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-DGKCMC77.mjs} +4 -4
- package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-74Z2NNFM.mjs} +7 -7
- package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-GK2ODOX2.mjs} +7 -7
- package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-MONAGT3N.mjs} +7 -7
- package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-SKGAO6PS.mjs} +7 -7
- package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-6KISGXRD.mjs} +7 -7
- package/dist/client/{form-VKRTFUNQ.mjs → form-FXPRTXHI.mjs} +2 -2
- package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-7NAN5WNB.mjs} +2 -2
- package/dist/client/hooks.mjs +1661 -1334
- package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-UERN74U4.mjs} +2 -2
- package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-SGWXMJ7U.mjs} +2 -2
- package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-HN3HWZQZ.mjs} +5 -5
- package/dist/client/{productList-RX6ZJ7BL.mjs → productList-YT22Z5UR.mjs} +5 -5
- package/dist/client/rendering/client.mjs +2208 -1922
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +1497 -811
- package/dist/client/{shop-BHN5AKY6.mjs → shop-TKEDNWUS.mjs} +5 -5
- package/dist/preview-next/before-render.mjs +109 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +109 -0
- package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-LWNYCQF2.mjs} +6 -6
- package/dist/server/components.mjs +2351 -1872
- package/dist/server/config-template-validation.mjs +6 -2
- package/dist/server/config-validation.mjs +1861 -1561
- package/dist/server/config.mjs +1861 -1561
- package/dist/server/data.mjs +1647 -1331
- package/dist/server/index.mjs +208 -9
- package/dist/server/next/middleware.mjs +2 -2
- package/dist/server/next.mjs +2572 -1878
- package/dist/server/page-converter.mjs +1461 -1276
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2372 -1875
- package/dist/server/rendering.mjs +2557 -1941
- package/dist/server/routing.mjs +1716 -1353
- package/dist/server/server.mjs +1911 -1380
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
|
@@ -2362,7 +2362,7 @@ var init_schemas2 = __esm({
|
|
|
2362
2362
|
|
|
2363
2363
|
// ../blocks/src/system/node/schema.ts
|
|
2364
2364
|
import { z as z7 } from "zod";
|
|
2365
|
-
var transformStepSchema, bindingPathSchema, bindingSchema, repeatSchema, conditionSchema, dataScopeSchema, nodePropsSchema, nodeSchema, nodeTreeSchema, NodeSchema, NodeTreeSchema;
|
|
2365
|
+
var transformStepSchema, bindingPathSchema, bindingSchema, repeatSchema, conditionalAuthoringPresenceSchema, conditionSchema, dataScopeSchema, nodePropsSchema, nodeSchema, nodeTreeSchema, NodeSchema, NodeTreeSchema;
|
|
2366
2366
|
var init_schema = __esm({
|
|
2367
2367
|
"../blocks/src/system/node/schema.ts"() {
|
|
2368
2368
|
"use strict";
|
|
@@ -2388,10 +2388,20 @@ var init_schema = __esm({
|
|
|
2388
2388
|
direction: z7.enum(["asc", "desc"]).default("asc")
|
|
2389
2389
|
}).optional()
|
|
2390
2390
|
});
|
|
2391
|
+
conditionalAuthoringPresenceSchema = z7.discriminatedUnion("kind", [
|
|
2392
|
+
z7.object({ kind: z7.literal("visitor-only") }),
|
|
2393
|
+
z7.object({
|
|
2394
|
+
kind: z7.literal("recover-empty-when-active"),
|
|
2395
|
+
placeholder: z7.string().min(1).optional()
|
|
2396
|
+
})
|
|
2397
|
+
]);
|
|
2391
2398
|
conditionSchema = z7.object({
|
|
2392
2399
|
when: bindingSchema,
|
|
2393
2400
|
equals: z7.unknown().optional(),
|
|
2394
|
-
not: z7.boolean().default(false)
|
|
2401
|
+
not: z7.boolean().default(false),
|
|
2402
|
+
authoringPresence: conditionalAuthoringPresenceSchema.default({
|
|
2403
|
+
kind: "visitor-only"
|
|
2404
|
+
})
|
|
2395
2405
|
});
|
|
2396
2406
|
dataScopeSchema = z7.object({
|
|
2397
2407
|
name: z7.string().min(1),
|
|
@@ -2502,7 +2512,8 @@ function when(path, options) {
|
|
|
2502
2512
|
$when: {
|
|
2503
2513
|
when: { from: path },
|
|
2504
2514
|
...options?.equals !== void 0 ? { equals: options.equals } : {},
|
|
2505
|
-
...options?.not ? { not: true } : {}
|
|
2515
|
+
...options?.not ? { not: true } : {},
|
|
2516
|
+
...options?.authoringPresence ? { authoringPresence: options.authoringPresence } : {}
|
|
2506
2517
|
}
|
|
2507
2518
|
});
|
|
2508
2519
|
}
|
|
@@ -18304,6 +18315,41 @@ var init_filtering = __esm({
|
|
|
18304
18315
|
}
|
|
18305
18316
|
});
|
|
18306
18317
|
|
|
18318
|
+
// ../blocks/src/system/blocks/events/shared/layout.ts
|
|
18319
|
+
function eventSectionHeaderLayoutNodes() {
|
|
18320
|
+
return [
|
|
18321
|
+
text(
|
|
18322
|
+
{ as: "h2" },
|
|
18323
|
+
bind("content.heading"),
|
|
18324
|
+
when("content.heading", {
|
|
18325
|
+
authoringPresence: recoverEmptyHeadingWhenActive
|
|
18326
|
+
})
|
|
18327
|
+
),
|
|
18328
|
+
richText(
|
|
18329
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
18330
|
+
bind("content.description"),
|
|
18331
|
+
when("content.description", {
|
|
18332
|
+
authoringPresence: recoverEmptyDescriptionWhenActive
|
|
18333
|
+
})
|
|
18334
|
+
)
|
|
18335
|
+
];
|
|
18336
|
+
}
|
|
18337
|
+
var recoverEmptyHeadingWhenActive, recoverEmptyDescriptionWhenActive;
|
|
18338
|
+
var init_layout = __esm({
|
|
18339
|
+
"../blocks/src/system/blocks/events/shared/layout.ts"() {
|
|
18340
|
+
"use strict";
|
|
18341
|
+
init_builder();
|
|
18342
|
+
recoverEmptyHeadingWhenActive = {
|
|
18343
|
+
kind: "recover-empty-when-active",
|
|
18344
|
+
placeholder: "Add heading"
|
|
18345
|
+
};
|
|
18346
|
+
recoverEmptyDescriptionWhenActive = {
|
|
18347
|
+
kind: "recover-empty-when-active",
|
|
18348
|
+
placeholder: "Add description"
|
|
18349
|
+
};
|
|
18350
|
+
}
|
|
18351
|
+
});
|
|
18352
|
+
|
|
18307
18353
|
// ../blocks/src/system/blocks/events/shared/index.ts
|
|
18308
18354
|
var init_shared2 = __esm({
|
|
18309
18355
|
"../blocks/src/system/blocks/events/shared/index.ts"() {
|
|
@@ -18312,6 +18358,7 @@ var init_shared2 = __esm({
|
|
|
18312
18358
|
init_schemas2();
|
|
18313
18359
|
init_fields();
|
|
18314
18360
|
init_filtering();
|
|
18361
|
+
init_layout();
|
|
18315
18362
|
}
|
|
18316
18363
|
});
|
|
18317
18364
|
|
|
@@ -18364,6 +18411,7 @@ var init_validation_constants = __esm({
|
|
|
18364
18411
|
// Forms
|
|
18365
18412
|
"form",
|
|
18366
18413
|
"booking-form",
|
|
18414
|
+
"weekly-slot-availability",
|
|
18367
18415
|
// Events
|
|
18368
18416
|
"event-registration",
|
|
18369
18417
|
"event-spotlight",
|
|
@@ -34162,6 +34210,10 @@ var init_endpoints = __esm({
|
|
|
34162
34210
|
path: "/public/bookings/availability/slots",
|
|
34163
34211
|
method: "GET"
|
|
34164
34212
|
},
|
|
34213
|
+
getWeeklySlotAvailability: {
|
|
34214
|
+
path: "/public/bookings/weekly-slot-availability",
|
|
34215
|
+
method: "GET"
|
|
34216
|
+
},
|
|
34165
34217
|
getAvailableDates: {
|
|
34166
34218
|
path: "/public/bookings/availability/dates",
|
|
34167
34219
|
method: "GET"
|
|
@@ -34702,6 +34754,18 @@ function createBlockApi(config) {
|
|
|
34702
34754
|
}
|
|
34703
34755
|
});
|
|
34704
34756
|
},
|
|
34757
|
+
async getWeeklySlotAvailability(params) {
|
|
34758
|
+
const sid = requireSiteId();
|
|
34759
|
+
return request(BOOKINGS.getWeeklySlotAvailability, {
|
|
34760
|
+
query: {
|
|
34761
|
+
siteId: sid,
|
|
34762
|
+
serviceId: params.serviceId,
|
|
34763
|
+
resourceId: params.resourceId,
|
|
34764
|
+
horizonWeeks: params.horizonWeeks,
|
|
34765
|
+
timezone: params.timezone
|
|
34766
|
+
}
|
|
34767
|
+
});
|
|
34768
|
+
},
|
|
34705
34769
|
async getAvailableDates(params) {
|
|
34706
34770
|
const sid = requireSiteId();
|
|
34707
34771
|
return request(BOOKINGS.getAvailableDates, {
|
|
@@ -41152,7 +41216,13 @@ var init_usePolling = __esm({
|
|
|
41152
41216
|
// ../blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.ts
|
|
41153
41217
|
import { useMemo as useMemo7 } from "react";
|
|
41154
41218
|
function useAppointmentCheckoutVerification(config) {
|
|
41155
|
-
|
|
41219
|
+
return useAppointmentCheckoutVerificationWithDeps(
|
|
41220
|
+
config,
|
|
41221
|
+
appointmentCheckoutVerificationDeps
|
|
41222
|
+
);
|
|
41223
|
+
}
|
|
41224
|
+
function useAppointmentCheckoutVerificationWithDeps(config, deps) {
|
|
41225
|
+
const api = deps.useBlockApi();
|
|
41156
41226
|
const pollingConfig = useMemo7(() => {
|
|
41157
41227
|
if (!config) return null;
|
|
41158
41228
|
return {
|
|
@@ -41163,7 +41233,7 @@ function useAppointmentCheckoutVerification(config) {
|
|
|
41163
41233
|
interval: config.pollInterval
|
|
41164
41234
|
};
|
|
41165
41235
|
}, [api, config]);
|
|
41166
|
-
const polling = usePolling(pollingConfig);
|
|
41236
|
+
const polling = deps.usePolling(pollingConfig);
|
|
41167
41237
|
const state = resolveAppointmentCheckoutVerificationState({
|
|
41168
41238
|
config,
|
|
41169
41239
|
pollingStatus: polling.status,
|
|
@@ -41175,12 +41245,17 @@ function useAppointmentCheckoutVerification(config) {
|
|
|
41175
41245
|
retry: polling.retry
|
|
41176
41246
|
};
|
|
41177
41247
|
}
|
|
41248
|
+
var appointmentCheckoutVerificationDeps;
|
|
41178
41249
|
var init_useAppointmentCheckoutVerification = __esm({
|
|
41179
41250
|
"../blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.ts"() {
|
|
41180
41251
|
"use strict";
|
|
41181
41252
|
init_api();
|
|
41182
41253
|
init_booking_form_state();
|
|
41183
41254
|
init_usePolling();
|
|
41255
|
+
appointmentCheckoutVerificationDeps = {
|
|
41256
|
+
useBlockApi,
|
|
41257
|
+
usePolling
|
|
41258
|
+
};
|
|
41184
41259
|
}
|
|
41185
41260
|
});
|
|
41186
41261
|
|
|
@@ -43714,7 +43789,10 @@ var init_hooks_state = __esm({
|
|
|
43714
43789
|
// ../blocks/src/system/runtime/nodes/event-registration/hooks.ts
|
|
43715
43790
|
import { useState as useState6, useEffect as useEffect10, useCallback as useCallback6, useRef as useRef12, useReducer as useReducer8 } from "react";
|
|
43716
43791
|
function usePortalAuth() {
|
|
43717
|
-
|
|
43792
|
+
return usePortalAuthWithDeps(eventRegistrationHooksDeps);
|
|
43793
|
+
}
|
|
43794
|
+
function usePortalAuthWithDeps(deps) {
|
|
43795
|
+
const api = deps.useBlockApi();
|
|
43718
43796
|
const [authState, setAuthState] = useState6("checking");
|
|
43719
43797
|
const [profile, setProfile] = useState6(null);
|
|
43720
43798
|
useEffect10(() => {
|
|
@@ -43762,7 +43840,10 @@ function usePortalAuth() {
|
|
|
43762
43840
|
};
|
|
43763
43841
|
}
|
|
43764
43842
|
function useEligibility(params) {
|
|
43765
|
-
|
|
43843
|
+
return useEligibilityWithDeps(params, eventRegistrationHooksDeps);
|
|
43844
|
+
}
|
|
43845
|
+
function useEligibilityWithDeps(params, deps) {
|
|
43846
|
+
const api = deps.useBlockApi();
|
|
43766
43847
|
const ticketSelectionsKey = JSON.stringify(normalizeTicketSelectionLines(params.ticketSelections));
|
|
43767
43848
|
const [state, dispatch] = useReducer8(
|
|
43768
43849
|
eligibilityLookupReducer,
|
|
@@ -43831,7 +43912,16 @@ function useExistingEventRegistration({
|
|
|
43831
43912
|
isAuthenticated,
|
|
43832
43913
|
occurrenceId
|
|
43833
43914
|
}) {
|
|
43834
|
-
|
|
43915
|
+
return useExistingEventRegistrationWithDeps(
|
|
43916
|
+
{ isAuthenticated, occurrenceId },
|
|
43917
|
+
eventRegistrationHooksDeps
|
|
43918
|
+
);
|
|
43919
|
+
}
|
|
43920
|
+
function useExistingEventRegistrationWithDeps({
|
|
43921
|
+
isAuthenticated,
|
|
43922
|
+
occurrenceId
|
|
43923
|
+
}, deps) {
|
|
43924
|
+
const api = deps.useBlockApi();
|
|
43835
43925
|
const [state, dispatch] = useReducer8(
|
|
43836
43926
|
existingRegistrationLookupReducer,
|
|
43837
43927
|
initialExistingRegistrationLookupState
|
|
@@ -43871,6 +43961,7 @@ function useExistingEventRegistration({
|
|
|
43871
43961
|
isLoading: state.tag === "loading"
|
|
43872
43962
|
};
|
|
43873
43963
|
}
|
|
43964
|
+
var eventRegistrationHooksDeps;
|
|
43874
43965
|
var init_hooks = __esm({
|
|
43875
43966
|
"../blocks/src/system/runtime/nodes/event-registration/hooks.ts"() {
|
|
43876
43967
|
"use strict";
|
|
@@ -43878,6 +43969,9 @@ var init_hooks = __esm({
|
|
|
43878
43969
|
init_utils5();
|
|
43879
43970
|
init_ticketSelectionLines();
|
|
43880
43971
|
init_hooks_state();
|
|
43972
|
+
eventRegistrationHooksDeps = {
|
|
43973
|
+
useBlockApi
|
|
43974
|
+
};
|
|
43881
43975
|
}
|
|
43882
43976
|
});
|
|
43883
43977
|
|
|
@@ -44197,9 +44291,6 @@ function SlidingScaleAmountField(props2) {
|
|
|
44197
44291
|
}
|
|
44198
44292
|
function TicketTypeQuantityRows(props2) {
|
|
44199
44293
|
const totalSelectedQuantity = getTicketSelectionTotal(props2.ticketSelections);
|
|
44200
|
-
const selectedTicketTypes = props2.ticketTypes.filter(
|
|
44201
|
-
(ticketType) => getTicketLineQuantity(props2.ticketSelections, ticketType.id) > 0
|
|
44202
|
-
);
|
|
44203
44294
|
return /* @__PURE__ */ jsxs28("div", { className: "er-ticket-lines", children: [
|
|
44204
44295
|
/* @__PURE__ */ jsx42("div", { className: "er-ticket-line-list", role: "list", "aria-label": "Tickets", children: props2.ticketTypes.map((ticketType) => {
|
|
44205
44296
|
const quantity = getTicketLineQuantity(props2.ticketSelections, ticketType.id);
|
|
@@ -44258,22 +44349,7 @@ function TicketTypeQuantityRows(props2) {
|
|
|
44258
44349
|
availabilityLabel: props2.availableSpots != null ? `${props2.availableSpots} spots available` : null
|
|
44259
44350
|
}
|
|
44260
44351
|
),
|
|
44261
|
-
|
|
44262
|
-
/* @__PURE__ */ jsxs28("div", { className: "er-ticket-line-summary-title", children: [
|
|
44263
|
-
totalSelectedQuantity,
|
|
44264
|
-
" ticket",
|
|
44265
|
-
totalSelectedQuantity === 1 ? "" : "s",
|
|
44266
|
-
" selected"
|
|
44267
|
-
] }),
|
|
44268
|
-
/* @__PURE__ */ jsx42("ul", { className: "er-ticket-line-summary-list", children: selectedTicketTypes.map((ticketType) => {
|
|
44269
|
-
const quantity = getTicketLineQuantity(props2.ticketSelections, ticketType.id);
|
|
44270
|
-
return /* @__PURE__ */ jsxs28("li", { children: [
|
|
44271
|
-
quantity,
|
|
44272
|
-
" x ",
|
|
44273
|
-
ticketType.name
|
|
44274
|
-
] }, ticketType.id);
|
|
44275
|
-
}) })
|
|
44276
|
-
] }) : props2.hasAvailableTicketTypes ? /* @__PURE__ */ jsx42("p", { className: "er-text er-text--muted", children: "Choose at least one ticket to continue." }) : /* @__PURE__ */ jsx42("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." })
|
|
44352
|
+
totalSelectedQuantity === 0 && props2.hasAvailableTicketTypes ? /* @__PURE__ */ jsx42("p", { className: "er-text er-text--muted", children: "Choose at least one ticket to continue." }) : totalSelectedQuantity === 0 ? /* @__PURE__ */ jsx42("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." }) : null
|
|
44277
44353
|
] });
|
|
44278
44354
|
}
|
|
44279
44355
|
function getAttendanceModeDetail(attendanceMode) {
|
|
@@ -45679,7 +45755,6 @@ function EventRegistrationSummaryBar(props2) {
|
|
|
45679
45755
|
const autoAppliedDiscount = wizard.discountCode.trim().length > 0 ? null : wizard.autoAppliedDiscount;
|
|
45680
45756
|
const autoAppliedDiscountCents = Math.max(0, autoAppliedDiscount?.computedAmountCents ?? 0);
|
|
45681
45757
|
const discountedTotalCents = Math.max(0, subtotalCents - autoAppliedDiscountCents);
|
|
45682
|
-
const selectedLineSummary = (wizard.ticketSelectionSummaryLines ?? []).filter((line) => line.ticketTypeId !== null).map((line) => `${line.quantity} x ${line.label}`).join(", ");
|
|
45683
45758
|
const selectedDirectPaymentOption = getSelectedDirectPaymentOption({
|
|
45684
45759
|
wizard,
|
|
45685
45760
|
totalCents: discountedTotalCents,
|
|
@@ -45716,10 +45791,6 @@ function EventRegistrationSummaryBar(props2) {
|
|
|
45716
45791
|
/* @__PURE__ */ jsx55("h4", { className: "er-summary-bar-event", children: summaryTitle }),
|
|
45717
45792
|
/* @__PURE__ */ jsxs39("span", { className: "er-summary-bar-meta", children: [
|
|
45718
45793
|
summaryDate && formatEventDateTime(summaryDate, { timeZone: summaryTimeZone }),
|
|
45719
|
-
selectedLineSummary ? /* @__PURE__ */ jsxs39(Fragment12, { children: [
|
|
45720
|
-
" \xB7 ",
|
|
45721
|
-
selectedLineSummary
|
|
45722
|
-
] }) : null,
|
|
45723
45794
|
wizard.step !== "select-event" && wizard.step !== "select-tickets" && wizard.ticketsCount > 0 && /* @__PURE__ */ jsxs39(Fragment12, { children: [
|
|
45724
45795
|
" \xB7 ",
|
|
45725
45796
|
wizard.ticketsCount,
|
|
@@ -45896,7 +45967,10 @@ function getWaitlistClaimTokenSnapshot() {
|
|
|
45896
45967
|
return getWaitlistClaimTokenFromUrl();
|
|
45897
45968
|
}
|
|
45898
45969
|
function useWaitlistClaim() {
|
|
45899
|
-
|
|
45970
|
+
return useWaitlistClaimWithDeps(useWaitlistClaimDeps);
|
|
45971
|
+
}
|
|
45972
|
+
function useWaitlistClaimWithDeps(deps) {
|
|
45973
|
+
const api = deps.useBlockApi();
|
|
45900
45974
|
const token = useSyncExternalStore2(
|
|
45901
45975
|
subscribeToWaitlistClaimToken,
|
|
45902
45976
|
getWaitlistClaimTokenSnapshot,
|
|
@@ -45941,7 +46015,7 @@ function useWaitlistClaim() {
|
|
|
45941
46015
|
isLoading: isWaitlistClaimLoading(state)
|
|
45942
46016
|
};
|
|
45943
46017
|
}
|
|
45944
|
-
var WAITLIST_CLAIM_LOCATION_EVENT, historyPatched;
|
|
46018
|
+
var WAITLIST_CLAIM_LOCATION_EVENT, historyPatched, useWaitlistClaimDeps;
|
|
45945
46019
|
var init_useWaitlistClaim = __esm({
|
|
45946
46020
|
"../blocks/src/system/runtime/shared/useWaitlistClaim.ts"() {
|
|
45947
46021
|
"use strict";
|
|
@@ -45950,13 +46024,19 @@ var init_useWaitlistClaim = __esm({
|
|
|
45950
46024
|
init_useWaitlistClaim_state();
|
|
45951
46025
|
WAITLIST_CLAIM_LOCATION_EVENT = "riverbank:waitlist-claim-location-change";
|
|
45952
46026
|
historyPatched = false;
|
|
46027
|
+
useWaitlistClaimDeps = {
|
|
46028
|
+
useBlockApi
|
|
46029
|
+
};
|
|
45953
46030
|
}
|
|
45954
46031
|
});
|
|
45955
46032
|
|
|
45956
46033
|
// ../blocks/src/system/runtime/hooks/usePaymentVerification.ts
|
|
45957
46034
|
import { useMemo as useMemo8 } from "react";
|
|
45958
46035
|
function usePaymentVerification(config) {
|
|
45959
|
-
|
|
46036
|
+
return usePaymentVerificationWithDeps(config, paymentVerificationDeps);
|
|
46037
|
+
}
|
|
46038
|
+
function usePaymentVerificationWithDeps(config, deps) {
|
|
46039
|
+
const api = deps.useBlockApi();
|
|
45960
46040
|
const pollingConfig = useMemo8(() => {
|
|
45961
46041
|
if (!config) return null;
|
|
45962
46042
|
return {
|
|
@@ -45986,11 +46066,15 @@ function usePaymentVerification(config) {
|
|
|
45986
46066
|
retry: polling.retry
|
|
45987
46067
|
};
|
|
45988
46068
|
}
|
|
46069
|
+
var paymentVerificationDeps;
|
|
45989
46070
|
var init_usePaymentVerification = __esm({
|
|
45990
46071
|
"../blocks/src/system/runtime/hooks/usePaymentVerification.ts"() {
|
|
45991
46072
|
"use strict";
|
|
45992
46073
|
init_api();
|
|
45993
46074
|
init_usePolling();
|
|
46075
|
+
paymentVerificationDeps = {
|
|
46076
|
+
useBlockApi
|
|
46077
|
+
};
|
|
45994
46078
|
}
|
|
45995
46079
|
});
|
|
45996
46080
|
|
|
@@ -46085,6 +46169,9 @@ var init_useEventRegistrationStripeReturn = __esm({
|
|
|
46085
46169
|
|
|
46086
46170
|
// ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.ts
|
|
46087
46171
|
function useEventRegistrationSubmit(options) {
|
|
46172
|
+
return useEventRegistrationSubmitWithDeps(options, eventRegistrationSubmitDeps);
|
|
46173
|
+
}
|
|
46174
|
+
function useEventRegistrationSubmitWithDeps(options, deps) {
|
|
46088
46175
|
return async (method, passId, membershipId, selection, submitOptions) => {
|
|
46089
46176
|
const submitOccurrenceId = options.registrationTarget?.occurrenceId;
|
|
46090
46177
|
if (!submitOccurrenceId) {
|
|
@@ -46173,7 +46260,7 @@ function useEventRegistrationSubmit(options) {
|
|
|
46173
46260
|
}
|
|
46174
46261
|
const siteId = options.api.config.siteId;
|
|
46175
46262
|
if (siteId && submitOccurrenceId) {
|
|
46176
|
-
savePendingRegistration(siteId, submitOccurrenceId, {
|
|
46263
|
+
deps.savePendingRegistration(siteId, submitOccurrenceId, {
|
|
46177
46264
|
attendeeId: result.attendeeId,
|
|
46178
46265
|
formData: options.formData,
|
|
46179
46266
|
ticketSelections,
|
|
@@ -46227,12 +46314,16 @@ function useEventRegistrationSubmit(options) {
|
|
|
46227
46314
|
}
|
|
46228
46315
|
};
|
|
46229
46316
|
}
|
|
46317
|
+
var eventRegistrationSubmitDeps;
|
|
46230
46318
|
var init_useEventRegistrationSubmit = __esm({
|
|
46231
46319
|
"../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.ts"() {
|
|
46232
46320
|
"use strict";
|
|
46233
46321
|
"use client";
|
|
46234
46322
|
init_sessionStorage();
|
|
46235
46323
|
init_ticketSelectionLines();
|
|
46324
|
+
eventRegistrationSubmitDeps = {
|
|
46325
|
+
savePendingRegistration
|
|
46326
|
+
};
|
|
46236
46327
|
}
|
|
46237
46328
|
});
|
|
46238
46329
|
|
|
@@ -46268,6 +46359,9 @@ function getSlidingScaleSelectionMessage(input) {
|
|
|
46268
46359
|
return null;
|
|
46269
46360
|
}
|
|
46270
46361
|
function useEventRegistrationWizard(options) {
|
|
46362
|
+
return useEventRegistrationWizardWithDeps(options, eventRegistrationWizardDeps);
|
|
46363
|
+
}
|
|
46364
|
+
function useEventRegistrationWizardWithDeps(options, deps) {
|
|
46271
46365
|
const api = useBlockApi();
|
|
46272
46366
|
const registrationEvents = useMemo10(
|
|
46273
46367
|
() => toRegistrationEvents(options.events ?? []),
|
|
@@ -46317,8 +46411,8 @@ function useEventRegistrationWizard(options) {
|
|
|
46317
46411
|
const [registrationResult, setRegistrationResult] = useState7(null);
|
|
46318
46412
|
const [errorMessage, setErrorMessage] = useState7("");
|
|
46319
46413
|
const [altchaSolution, setAltchaSolution] = useState7(null);
|
|
46320
|
-
const { authState: portalAuthState, profile: portalProfile } = usePortalAuth();
|
|
46321
|
-
const waitlistClaim = useWaitlistClaim();
|
|
46414
|
+
const { authState: portalAuthState, profile: portalProfile } = deps.usePortalAuth();
|
|
46415
|
+
const waitlistClaim = deps.useWaitlistClaim();
|
|
46322
46416
|
const [showMagicLinkModal, setShowMagicLinkModal] = useState7(false);
|
|
46323
46417
|
const [pendingAttendeeId, setPendingAttendeeId] = useState7(null);
|
|
46324
46418
|
const [paymentStepState, setPaymentStepState] = useState7({
|
|
@@ -46383,7 +46477,7 @@ function useEventRegistrationWizard(options) {
|
|
|
46383
46477
|
if (flowState.ticketsCount === ticketsCount) return;
|
|
46384
46478
|
dispatchFlow({ type: "set-tickets-count", ticketsCount });
|
|
46385
46479
|
}, [flowState.ticketsCount, ticketsCount]);
|
|
46386
|
-
const eligibilityResult = useEligibility({
|
|
46480
|
+
const eligibilityResult = deps.useEligibility({
|
|
46387
46481
|
enabled: portalAuthState === "authenticated" || step === "enter-details" || step === "select-payment",
|
|
46388
46482
|
occurrenceId,
|
|
46389
46483
|
attendanceMode: selectedAttendanceMode,
|
|
@@ -46391,7 +46485,7 @@ function useEventRegistrationWizard(options) {
|
|
|
46391
46485
|
selectedSlidingAmount: parseCurrencyInputToCents(selectedSlidingAmountInput),
|
|
46392
46486
|
email: formData.email
|
|
46393
46487
|
});
|
|
46394
|
-
const existingRegistrationResult = useExistingEventRegistration({
|
|
46488
|
+
const existingRegistrationResult = deps.useExistingEventRegistration({
|
|
46395
46489
|
isAuthenticated: portalAuthState === "authenticated",
|
|
46396
46490
|
occurrenceId
|
|
46397
46491
|
});
|
|
@@ -46485,7 +46579,7 @@ function useEventRegistrationWizard(options) {
|
|
|
46485
46579
|
useEffect15(() => {
|
|
46486
46580
|
dispatchFlow({ type: "eligibility-updated", eligibility });
|
|
46487
46581
|
}, [eligibility]);
|
|
46488
|
-
const verification = useEventRegistrationStripeReturn({
|
|
46582
|
+
const verification = deps.useEventRegistrationStripeReturn({
|
|
46489
46583
|
api,
|
|
46490
46584
|
events: registrationEvents,
|
|
46491
46585
|
occurrenceId,
|
|
@@ -46749,10 +46843,10 @@ function useEventRegistrationWizard(options) {
|
|
|
46749
46843
|
if (discountContext?.type !== "event") return void 0;
|
|
46750
46844
|
return ticketSelectionSubtotalCents;
|
|
46751
46845
|
}, [discountContext, ticketSelectionSubtotalCents]);
|
|
46752
|
-
const discountUi = useDiscountCodeUi({ api, discountContext, subtotalCents: discountSubtotalCents });
|
|
46846
|
+
const discountUi = deps.useDiscountCodeUi({ api, discountContext, subtotalCents: discountSubtotalCents });
|
|
46753
46847
|
const selectionMethod = paymentSelection.method;
|
|
46754
46848
|
const shouldShowDiscountToggle = discountContext !== null && discountUi.manualCodeEntryAllowed && (selectionMethod === "stripe" || selectionMethod === "pass_bundle" || selectionMethod === "membership_bundle");
|
|
46755
|
-
const handleSubmit = useEventRegistrationSubmit({
|
|
46849
|
+
const handleSubmit = deps.useEventRegistrationSubmit({
|
|
46756
46850
|
api,
|
|
46757
46851
|
registrationTarget,
|
|
46758
46852
|
selectedAttendanceMode,
|
|
@@ -46886,6 +46980,7 @@ function useEventRegistrationWizard(options) {
|
|
|
46886
46980
|
handleRetry
|
|
46887
46981
|
};
|
|
46888
46982
|
}
|
|
46983
|
+
var eventRegistrationWizardDeps;
|
|
46889
46984
|
var init_useEventRegistrationWizard = __esm({
|
|
46890
46985
|
"../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.ts"() {
|
|
46891
46986
|
"use strict";
|
|
@@ -46907,6 +47002,15 @@ var init_useEventRegistrationWizard = __esm({
|
|
|
46907
47002
|
init_event_registration_headless_state();
|
|
46908
47003
|
init_registrationDerivations();
|
|
46909
47004
|
init_registrationEventAdapter();
|
|
47005
|
+
eventRegistrationWizardDeps = {
|
|
47006
|
+
usePortalAuth,
|
|
47007
|
+
useEligibility,
|
|
47008
|
+
useExistingEventRegistration,
|
|
47009
|
+
useWaitlistClaim,
|
|
47010
|
+
useEventRegistrationStripeReturn,
|
|
47011
|
+
useEventRegistrationSubmit,
|
|
47012
|
+
useDiscountCodeUi
|
|
47013
|
+
};
|
|
46910
47014
|
}
|
|
46911
47015
|
});
|
|
46912
47016
|
|
|
@@ -63468,6 +63572,183 @@ var appointmentBookingBlockDefinition = {
|
|
|
63468
63572
|
}
|
|
63469
63573
|
};
|
|
63470
63574
|
|
|
63575
|
+
// ../blocks/src/system/blocks/weekly-slot-availability.ts
|
|
63576
|
+
init_builder();
|
|
63577
|
+
init_builder();
|
|
63578
|
+
init_styledSection();
|
|
63579
|
+
init_fragments();
|
|
63580
|
+
init_boxStyles2();
|
|
63581
|
+
init_defineBlock();
|
|
63582
|
+
init_api_bindings();
|
|
63583
|
+
import { z as z65 } from "zod";
|
|
63584
|
+
var weeklySlotAvailabilityManifest = createBlockManifest({
|
|
63585
|
+
id: "block.weekly-slot-availability",
|
|
63586
|
+
version: "1.0.0",
|
|
63587
|
+
title: "Weekly Slot Availability",
|
|
63588
|
+
titleSource: "heading",
|
|
63589
|
+
description: "Shows available recurring appointment slot patterns",
|
|
63590
|
+
skipSectionStyles: true,
|
|
63591
|
+
additionalFields: [
|
|
63592
|
+
{
|
|
63593
|
+
id: "serviceId",
|
|
63594
|
+
type: "reference",
|
|
63595
|
+
label: "Appointment service",
|
|
63596
|
+
description: "Choose which appointment service to show availability for",
|
|
63597
|
+
required: true,
|
|
63598
|
+
referenceKind: "appointmentService",
|
|
63599
|
+
allowManualEntry: false,
|
|
63600
|
+
ui: { intent: "behavior" }
|
|
63601
|
+
},
|
|
63602
|
+
{
|
|
63603
|
+
id: "resourceId",
|
|
63604
|
+
type: "reference",
|
|
63605
|
+
label: "Appointment resource",
|
|
63606
|
+
description: "Optionally narrow the availability to one practitioner or room",
|
|
63607
|
+
required: false,
|
|
63608
|
+
referenceKind: "appointmentResource",
|
|
63609
|
+
allowManualEntry: false,
|
|
63610
|
+
ui: { intent: "behavior" }
|
|
63611
|
+
},
|
|
63612
|
+
{
|
|
63613
|
+
id: "horizonWeeks",
|
|
63614
|
+
type: "select",
|
|
63615
|
+
label: "Look ahead",
|
|
63616
|
+
required: false,
|
|
63617
|
+
multiple: false,
|
|
63618
|
+
defaultValue: "4",
|
|
63619
|
+
options: [
|
|
63620
|
+
{ value: "1", label: "1 week" },
|
|
63621
|
+
{ value: "2", label: "2 weeks" },
|
|
63622
|
+
{ value: "4", label: "4 weeks" }
|
|
63623
|
+
],
|
|
63624
|
+
ui: { intent: "behavior" }
|
|
63625
|
+
},
|
|
63626
|
+
{
|
|
63627
|
+
id: "timezone",
|
|
63628
|
+
type: "text",
|
|
63629
|
+
label: "Timezone",
|
|
63630
|
+
description: "Leave blank to use the visitor timezone when the block loads",
|
|
63631
|
+
required: false,
|
|
63632
|
+
multiline: false,
|
|
63633
|
+
defaultValue: "",
|
|
63634
|
+
maxLength: 64,
|
|
63635
|
+
ui: { intent: "behavior" }
|
|
63636
|
+
},
|
|
63637
|
+
{
|
|
63638
|
+
id: "heading",
|
|
63639
|
+
type: "text",
|
|
63640
|
+
label: "Heading",
|
|
63641
|
+
required: false,
|
|
63642
|
+
multiline: false,
|
|
63643
|
+
defaultValue: "Weekly availability"
|
|
63644
|
+
},
|
|
63645
|
+
{
|
|
63646
|
+
id: "description",
|
|
63647
|
+
type: "richText",
|
|
63648
|
+
label: "Description",
|
|
63649
|
+
required: false
|
|
63650
|
+
},
|
|
63651
|
+
{
|
|
63652
|
+
id: "emptyMessage",
|
|
63653
|
+
type: "text",
|
|
63654
|
+
label: "Empty message",
|
|
63655
|
+
required: false,
|
|
63656
|
+
multiline: true,
|
|
63657
|
+
defaultValue: "No regular weekly openings are currently available.",
|
|
63658
|
+
maxLength: 180
|
|
63659
|
+
},
|
|
63660
|
+
{
|
|
63661
|
+
id: "ctaText",
|
|
63662
|
+
type: "text",
|
|
63663
|
+
label: "Enquiry button text",
|
|
63664
|
+
required: false,
|
|
63665
|
+
multiline: false,
|
|
63666
|
+
defaultValue: "Enquire about this slot",
|
|
63667
|
+
maxLength: 60
|
|
63668
|
+
},
|
|
63669
|
+
{
|
|
63670
|
+
id: "ctaUrl",
|
|
63671
|
+
type: "url",
|
|
63672
|
+
label: "Enquiry URL",
|
|
63673
|
+
required: false,
|
|
63674
|
+
ui: { intent: "behavior" }
|
|
63675
|
+
},
|
|
63676
|
+
sectionStylesField({
|
|
63677
|
+
id: "_sectionStyles",
|
|
63678
|
+
label: "Section styles"
|
|
63679
|
+
})
|
|
63680
|
+
],
|
|
63681
|
+
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
63682
|
+
behaviours: {
|
|
63683
|
+
supportsThemeSwitching: true,
|
|
63684
|
+
inlineEditing: false,
|
|
63685
|
+
animation: false,
|
|
63686
|
+
paletteHidden: false
|
|
63687
|
+
},
|
|
63688
|
+
category: "interactive",
|
|
63689
|
+
tags: ["booking", "appointment", "calendar", "weekly", "availability"],
|
|
63690
|
+
icon: "CalendarDays",
|
|
63691
|
+
layout: [
|
|
63692
|
+
styledSection({
|
|
63693
|
+
children: sectionContainer([
|
|
63694
|
+
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
63695
|
+
richText({}, bind("content.description"), when("content.description")),
|
|
63696
|
+
el(
|
|
63697
|
+
"weekly-slot-availability",
|
|
63698
|
+
withApiBindings({
|
|
63699
|
+
serviceId: { $bind: { from: "content.serviceId" } },
|
|
63700
|
+
resourceId: { $bind: { from: "content.resourceId", fallback: null } },
|
|
63701
|
+
horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
|
|
63702
|
+
timezone: { $bind: { from: "content.timezone", fallback: null } },
|
|
63703
|
+
availability: { $bind: { from: "data.availability", fallback: null } },
|
|
63704
|
+
emptyMessage: { $bind: { from: "content.emptyMessage", fallback: null } },
|
|
63705
|
+
ctaText: { $bind: { from: "content.ctaText", fallback: null } },
|
|
63706
|
+
ctaUrl: { $bind: { from: "content.ctaUrl", fallback: null } }
|
|
63707
|
+
})
|
|
63708
|
+
)
|
|
63709
|
+
], {
|
|
63710
|
+
gap: "lg"
|
|
63711
|
+
}),
|
|
63712
|
+
baseClass: "",
|
|
63713
|
+
spacing: "spacious"
|
|
63714
|
+
})
|
|
63715
|
+
]
|
|
63716
|
+
});
|
|
63717
|
+
var weeklySlotAvailabilityOptionSchema = z65.object({
|
|
63718
|
+
id: z65.string(),
|
|
63719
|
+
resourceId: z65.string(),
|
|
63720
|
+
weekday: z65.number(),
|
|
63721
|
+
weekdayLabel: z65.string(),
|
|
63722
|
+
startTime: z65.string(),
|
|
63723
|
+
endTime: z65.string(),
|
|
63724
|
+
nextDate: z65.string(),
|
|
63725
|
+
availableWeeks: z65.number()
|
|
63726
|
+
});
|
|
63727
|
+
var weeklySlotAvailabilityDataSchema = z65.object({
|
|
63728
|
+
slots: z65.array(weeklySlotAvailabilityOptionSchema),
|
|
63729
|
+
horizonWeeks: z65.number(),
|
|
63730
|
+
timezone: z65.string(),
|
|
63731
|
+
startDate: z65.string(),
|
|
63732
|
+
endDate: z65.string()
|
|
63733
|
+
});
|
|
63734
|
+
var weeklySlotAvailabilityBlockDefinition = {
|
|
63735
|
+
manifest: weeklySlotAvailabilityManifest,
|
|
63736
|
+
dataSchemas: { availability: weeklySlotAvailabilityDataSchema.optional() },
|
|
63737
|
+
dataLoaders: {
|
|
63738
|
+
availability: {
|
|
63739
|
+
endpoint: "getPublicWeeklySlotAvailability",
|
|
63740
|
+
params: {
|
|
63741
|
+
siteId: { $bind: { from: "$root.siteId" } },
|
|
63742
|
+
serviceId: { $bind: { from: "content.serviceId" } },
|
|
63743
|
+
resourceId: { $bind: { from: "content.resourceId", fallback: void 0 } },
|
|
63744
|
+
horizonWeeks: { $bind: { from: "content.horizonWeeks", fallback: "4" } },
|
|
63745
|
+
timezone: { $bind: { from: "content.timezone", fallback: void 0 } }
|
|
63746
|
+
},
|
|
63747
|
+
mode: "server"
|
|
63748
|
+
}
|
|
63749
|
+
}
|
|
63750
|
+
};
|
|
63751
|
+
|
|
63471
63752
|
// ../blocks/src/system/blocks/event-registration.ts
|
|
63472
63753
|
init_builder();
|
|
63473
63754
|
init_builder();
|
|
@@ -64096,7 +64377,6 @@ init_shared2();
|
|
|
64096
64377
|
|
|
64097
64378
|
// ../blocks/src/system/blocks/events/event-spotlight.ts
|
|
64098
64379
|
init_builder();
|
|
64099
|
-
init_builder();
|
|
64100
64380
|
init_styledSection();
|
|
64101
64381
|
init_fragments();
|
|
64102
64382
|
init_boxStyles2();
|
|
@@ -64152,18 +64432,7 @@ var eventSpotlightFields = [
|
|
|
64152
64432
|
var eventSpotlightLayout = [
|
|
64153
64433
|
styledSection({
|
|
64154
64434
|
children: sectionContainer([
|
|
64155
|
-
|
|
64156
|
-
text(
|
|
64157
|
-
{ as: "h2" },
|
|
64158
|
-
bind("content.heading"),
|
|
64159
|
-
when("content.heading")
|
|
64160
|
-
),
|
|
64161
|
-
// Optional description
|
|
64162
|
-
richText(
|
|
64163
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
64164
|
-
bind("content.description"),
|
|
64165
|
-
when("content.description")
|
|
64166
|
-
),
|
|
64435
|
+
...eventSectionHeaderLayoutNodes(),
|
|
64167
64436
|
// Event spotlight component
|
|
64168
64437
|
el("event-spotlight", {
|
|
64169
64438
|
events: { $bind: { from: "data.events" } },
|
|
@@ -64225,7 +64494,6 @@ var eventSpotlightBlockDefinition = {
|
|
|
64225
64494
|
|
|
64226
64495
|
// ../blocks/src/system/blocks/events/event-listing.ts
|
|
64227
64496
|
init_builder();
|
|
64228
|
-
init_builder();
|
|
64229
64497
|
init_styledSection();
|
|
64230
64498
|
init_fragments();
|
|
64231
64499
|
init_boxStyles2();
|
|
@@ -64390,18 +64658,7 @@ var eventListingAdditionalFields = [
|
|
|
64390
64658
|
var eventListingLayout = [
|
|
64391
64659
|
styledSection({
|
|
64392
64660
|
children: sectionContainer([
|
|
64393
|
-
|
|
64394
|
-
text(
|
|
64395
|
-
{ as: "h2" },
|
|
64396
|
-
bind("content.heading"),
|
|
64397
|
-
when("content.heading")
|
|
64398
|
-
),
|
|
64399
|
-
// Optional description
|
|
64400
|
-
richText(
|
|
64401
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
64402
|
-
bind("content.description"),
|
|
64403
|
-
when("content.description")
|
|
64404
|
-
),
|
|
64661
|
+
...eventSectionHeaderLayoutNodes(),
|
|
64405
64662
|
// Event listing component with pagination
|
|
64406
64663
|
el("event-listing", withApiBindings({
|
|
64407
64664
|
events: { $bind: { from: "data.events" } },
|
|
@@ -64519,7 +64776,6 @@ var eventListingBlockDefinition = {
|
|
|
64519
64776
|
// ../blocks/src/system/blocks/events/event-calendar.ts
|
|
64520
64777
|
init_schema3();
|
|
64521
64778
|
init_builder();
|
|
64522
|
-
init_builder();
|
|
64523
64779
|
init_styledSection();
|
|
64524
64780
|
init_fragments();
|
|
64525
64781
|
init_boxStyles2();
|
|
@@ -64564,14 +64820,7 @@ var eventCalendarLayout = [
|
|
|
64564
64820
|
styledSection({
|
|
64565
64821
|
children: sectionContainer(
|
|
64566
64822
|
[
|
|
64567
|
-
|
|
64568
|
-
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
64569
|
-
// Optional description
|
|
64570
|
-
richText(
|
|
64571
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
64572
|
-
bind("content.description"),
|
|
64573
|
-
when("content.description")
|
|
64574
|
-
),
|
|
64823
|
+
...eventSectionHeaderLayoutNodes(),
|
|
64575
64824
|
// Event calendar component (handles all display modes)
|
|
64576
64825
|
el(
|
|
64577
64826
|
"event-calendar",
|
|
@@ -65223,7 +65472,7 @@ init_boxStyles2();
|
|
|
65223
65472
|
init_defineBlock();
|
|
65224
65473
|
init_shared2();
|
|
65225
65474
|
init_shared6();
|
|
65226
|
-
import { z as
|
|
65475
|
+
import { z as z66 } from "zod";
|
|
65227
65476
|
|
|
65228
65477
|
// ../blocks/src/system/blocks/offerings-preview/model.ts
|
|
65229
65478
|
init_src();
|
|
@@ -65546,13 +65795,13 @@ function normalizeTextOverride(value) {
|
|
|
65546
65795
|
}
|
|
65547
65796
|
|
|
65548
65797
|
// ../blocks/src/system/blocks/offerings-preview/index.ts
|
|
65549
|
-
var publicRouteCandidatesSchema =
|
|
65550
|
-
routes:
|
|
65551
|
-
entityId:
|
|
65552
|
-
path:
|
|
65553
|
-
title:
|
|
65554
|
-
kind:
|
|
65555
|
-
contentTypeKey:
|
|
65798
|
+
var publicRouteCandidatesSchema = z66.object({
|
|
65799
|
+
routes: z66.array(z66.object({
|
|
65800
|
+
entityId: z66.string(),
|
|
65801
|
+
path: z66.string(),
|
|
65802
|
+
title: z66.string(),
|
|
65803
|
+
kind: z66.enum(["page", "content"]),
|
|
65804
|
+
contentTypeKey: z66.string().nullable().optional()
|
|
65556
65805
|
}))
|
|
65557
65806
|
});
|
|
65558
65807
|
var groupOverrideFields = [
|
|
@@ -65955,7 +66204,7 @@ init_builder();
|
|
|
65955
66204
|
init_fragments();
|
|
65956
66205
|
init_defineBlock();
|
|
65957
66206
|
init_colorStyles();
|
|
65958
|
-
import { z as
|
|
66207
|
+
import { z as z67 } from "zod";
|
|
65959
66208
|
var embedFields = [
|
|
65960
66209
|
// Section heading
|
|
65961
66210
|
parseFieldDefinition({
|
|
@@ -66186,18 +66435,18 @@ var embedManifest = createBlockManifest({
|
|
|
66186
66435
|
spacing: "lg"
|
|
66187
66436
|
}
|
|
66188
66437
|
});
|
|
66189
|
-
var embedEntrySchema =
|
|
66190
|
-
id:
|
|
66191
|
-
identifier:
|
|
66192
|
-
title:
|
|
66193
|
-
slug:
|
|
66194
|
-
content:
|
|
66195
|
-
publishedAt:
|
|
66438
|
+
var embedEntrySchema = z67.object({
|
|
66439
|
+
id: z67.string(),
|
|
66440
|
+
identifier: z67.string(),
|
|
66441
|
+
title: z67.string(),
|
|
66442
|
+
slug: z67.string().nullable().optional(),
|
|
66443
|
+
content: z67.record(z67.string(), z67.unknown()).optional(),
|
|
66444
|
+
publishedAt: z67.string().nullable().optional()
|
|
66196
66445
|
});
|
|
66197
66446
|
var embedBlockDefinition = {
|
|
66198
66447
|
manifest: embedManifest,
|
|
66199
66448
|
dataSchemas: {
|
|
66200
|
-
entries:
|
|
66449
|
+
entries: z67.array(embedEntrySchema).optional()
|
|
66201
66450
|
},
|
|
66202
66451
|
dataLoaders: {
|
|
66203
66452
|
entries: {
|
|
@@ -67637,7 +67886,7 @@ init_api_bindings();
|
|
|
67637
67886
|
init_defineBlock();
|
|
67638
67887
|
init_shop_interactive();
|
|
67639
67888
|
init_shared4();
|
|
67640
|
-
import { z as
|
|
67889
|
+
import { z as z68 } from "zod";
|
|
67641
67890
|
var productListManifest = createBlockManifest({
|
|
67642
67891
|
id: "block.product-list",
|
|
67643
67892
|
version: "1.0.0",
|
|
@@ -67770,7 +68019,7 @@ var productListBlockDefinition = {
|
|
|
67770
68019
|
}
|
|
67771
68020
|
}
|
|
67772
68021
|
};
|
|
67773
|
-
var productListDataSchema =
|
|
68022
|
+
var productListDataSchema = z68.object({
|
|
67774
68023
|
products: publicProductsResponseSchema.optional()
|
|
67775
68024
|
});
|
|
67776
68025
|
|
|
@@ -68274,24 +68523,24 @@ init_schema3();
|
|
|
68274
68523
|
init_defineBlock();
|
|
68275
68524
|
init_builder();
|
|
68276
68525
|
init_fragments();
|
|
68277
|
-
import { z as
|
|
68526
|
+
import { z as z69 } from "zod";
|
|
68278
68527
|
init_media();
|
|
68279
68528
|
var ITEM_NAME2 = "member";
|
|
68280
68529
|
var teamMemberPhotoSchema = mediaSchema.refine((media2) => media2.type === "image", {
|
|
68281
68530
|
message: "Team member photos must be image media"
|
|
68282
68531
|
}).nullable();
|
|
68283
|
-
var teamMemberDataSchema =
|
|
68284
|
-
_type:
|
|
68285
|
-
id:
|
|
68286
|
-
name:
|
|
68287
|
-
role:
|
|
68288
|
-
roleLabel:
|
|
68289
|
-
bio:
|
|
68290
|
-
summary:
|
|
68532
|
+
var teamMemberDataSchema = z69.object({
|
|
68533
|
+
_type: z69.literal("teamMember"),
|
|
68534
|
+
id: z69.string(),
|
|
68535
|
+
name: z69.string(),
|
|
68536
|
+
role: z69.string().nullable(),
|
|
68537
|
+
roleLabel: z69.string().nullable(),
|
|
68538
|
+
bio: z69.string().nullable(),
|
|
68539
|
+
summary: z69.string().nullable(),
|
|
68291
68540
|
photo: teamMemberPhotoSchema,
|
|
68292
|
-
profilePath:
|
|
68541
|
+
profilePath: z69.string().nullable()
|
|
68293
68542
|
});
|
|
68294
|
-
var teamMembersDataSchema =
|
|
68543
|
+
var teamMembersDataSchema = z69.array(teamMemberDataSchema);
|
|
68295
68544
|
var dynamicSourceWhen = { equals: "site_staff" };
|
|
68296
68545
|
var manualSourceWhen = { equals: "site_staff", not: true };
|
|
68297
68546
|
var headingNode = text(
|
|
@@ -69273,6 +69522,10 @@ var systemBlockDefinitionsRaw = [
|
|
|
69273
69522
|
flow: conversionFlow,
|
|
69274
69523
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
69275
69524
|
})),
|
|
69525
|
+
withDesignCapability("block.weekly-slot-availability", weeklySlotAvailabilityBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
69526
|
+
flow: offeringsFlow,
|
|
69527
|
+
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
69528
|
+
})),
|
|
69276
69529
|
withDesignCapability("block.event-registration", eventRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
69277
69530
|
flow: conversionFlow,
|
|
69278
69531
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
@@ -70349,6 +70602,7 @@ function isRecord14(value) {
|
|
|
70349
70602
|
}
|
|
70350
70603
|
|
|
70351
70604
|
// ../blocks/src/system/runtime/resolver.ts
|
|
70605
|
+
init_richTextSchema();
|
|
70352
70606
|
init_headingDecoration();
|
|
70353
70607
|
|
|
70354
70608
|
// ../blocks/src/primitives/layout/Section.tsx
|
|
@@ -72664,15 +72918,95 @@ function cardTreatmentClass(value) {
|
|
|
72664
72918
|
}
|
|
72665
72919
|
var offerings_preview_default = OfferingsPreviewNode;
|
|
72666
72920
|
|
|
72921
|
+
// ../blocks/src/system/runtime/nodes/weekly-slot-availability.view.tsx
|
|
72922
|
+
import { jsx as jsx139, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
72923
|
+
function pluralizeWeeks(count) {
|
|
72924
|
+
return count === 1 ? "1 upcoming week" : `${count} upcoming weeks`;
|
|
72925
|
+
}
|
|
72926
|
+
function buildSlotCtaUrl(ctaUrl, slot) {
|
|
72927
|
+
const placeholderOrigin = "https://weekly-slot-availability.local";
|
|
72928
|
+
const isAbsoluteUrl = /^[a-z][a-z\d+.-]*:/i.test(ctaUrl);
|
|
72929
|
+
try {
|
|
72930
|
+
const parsed = new URL(ctaUrl, placeholderOrigin);
|
|
72931
|
+
parsed.searchParams.set("slotId", slot.id);
|
|
72932
|
+
parsed.searchParams.set("weekday", String(slot.weekday));
|
|
72933
|
+
parsed.searchParams.set("startTime", slot.startTime);
|
|
72934
|
+
parsed.searchParams.set("endTime", slot.endTime);
|
|
72935
|
+
parsed.searchParams.set("resourceId", slot.resourceId);
|
|
72936
|
+
parsed.searchParams.set("nextDate", slot.nextDate);
|
|
72937
|
+
if (isAbsoluteUrl) {
|
|
72938
|
+
return parsed.toString();
|
|
72939
|
+
}
|
|
72940
|
+
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
72941
|
+
} catch {
|
|
72942
|
+
return ctaUrl;
|
|
72943
|
+
}
|
|
72944
|
+
}
|
|
72945
|
+
function buildSlotCtaLabel(ctaText, slot) {
|
|
72946
|
+
return `${ctaText}: ${slot.weekdayLabel} ${slot.startTime} to ${slot.endTime}`;
|
|
72947
|
+
}
|
|
72948
|
+
function WeeklySlotAvailabilityView({
|
|
72949
|
+
availability,
|
|
72950
|
+
loading = false,
|
|
72951
|
+
error,
|
|
72952
|
+
emptyMessage,
|
|
72953
|
+
ctaText,
|
|
72954
|
+
ctaUrl
|
|
72955
|
+
}) {
|
|
72956
|
+
const slots = availability?.slots ?? [];
|
|
72957
|
+
const resolvedEmptyMessage = emptyMessage ?? "No regular weekly openings are currently available.";
|
|
72958
|
+
const resolvedCtaText = ctaText ?? "Enquire about this slot";
|
|
72959
|
+
const resolvedCtaUrl = typeof ctaUrl === "string" ? ctaUrl.trim() : "";
|
|
72960
|
+
return /* @__PURE__ */ jsxs85("div", { className: "weekly-slot-availability", children: [
|
|
72961
|
+
loading ? /* @__PURE__ */ jsx139("p", { className: "weekly-slot-availability__status", children: "Loading availability..." }) : null,
|
|
72962
|
+
error ? /* @__PURE__ */ jsx139("p", { className: "weekly-slot-availability__status", role: "status", children: error }) : null,
|
|
72963
|
+
!loading && !error && slots.length === 0 ? /* @__PURE__ */ jsx139("p", { className: "weekly-slot-availability__empty", children: resolvedEmptyMessage }) : null,
|
|
72964
|
+
slots.length > 0 ? /* @__PURE__ */ jsx139("ul", { className: "weekly-slot-availability__list", children: slots.map((slot) => /* @__PURE__ */ jsxs85("li", { className: "weekly-slot-availability__item", children: [
|
|
72965
|
+
/* @__PURE__ */ jsxs85("div", { className: "weekly-slot-availability__time", children: [
|
|
72966
|
+
/* @__PURE__ */ jsx139("span", { className: "weekly-slot-availability__weekday", children: slot.weekdayLabel }),
|
|
72967
|
+
/* @__PURE__ */ jsxs85("span", { className: "weekly-slot-availability__range", children: [
|
|
72968
|
+
slot.startTime,
|
|
72969
|
+
" - ",
|
|
72970
|
+
slot.endTime
|
|
72971
|
+
] })
|
|
72972
|
+
] }),
|
|
72973
|
+
/* @__PURE__ */ jsxs85("p", { className: "weekly-slot-availability__meta", children: [
|
|
72974
|
+
"Available in ",
|
|
72975
|
+
pluralizeWeeks(slot.availableWeeks),
|
|
72976
|
+
". Next open date",
|
|
72977
|
+
" ",
|
|
72978
|
+
slot.nextDate,
|
|
72979
|
+
"."
|
|
72980
|
+
] }),
|
|
72981
|
+
resolvedCtaUrl ? /* @__PURE__ */ jsx139(
|
|
72982
|
+
"a",
|
|
72983
|
+
{
|
|
72984
|
+
className: "weekly-slot-availability__cta",
|
|
72985
|
+
href: buildSlotCtaUrl(resolvedCtaUrl, slot),
|
|
72986
|
+
"aria-label": buildSlotCtaLabel(resolvedCtaText, slot),
|
|
72987
|
+
children: resolvedCtaText
|
|
72988
|
+
}
|
|
72989
|
+
) : null
|
|
72990
|
+
] }, slot.id)) }) : null
|
|
72991
|
+
] });
|
|
72992
|
+
}
|
|
72993
|
+
|
|
72994
|
+
// ../blocks/src/system/runtime/nodes/weekly-slot-availability.server.tsx
|
|
72995
|
+
import { jsx as jsx140 } from "react/jsx-runtime";
|
|
72996
|
+
function WeeklySlotAvailabilitySSR(props2) {
|
|
72997
|
+
return /* @__PURE__ */ jsx140(WeeklySlotAvailabilityView, { ...props2 });
|
|
72998
|
+
}
|
|
72999
|
+
var weekly_slot_availability_server_default = WeeklySlotAvailabilitySSR;
|
|
73000
|
+
|
|
72667
73001
|
// ../blocks/src/system/runtime/nodes/shop-commerce.server.tsx
|
|
72668
73002
|
init_buttons();
|
|
72669
73003
|
init_RichText();
|
|
72670
73004
|
init_richText_coerce();
|
|
72671
73005
|
init_view2();
|
|
72672
|
-
import { Fragment as Fragment29, jsx as
|
|
73006
|
+
import { Fragment as Fragment29, jsx as jsx141, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
72673
73007
|
function renderServerPendingAction(label, soldOut) {
|
|
72674
|
-
return /* @__PURE__ */
|
|
72675
|
-
/* @__PURE__ */
|
|
73008
|
+
return /* @__PURE__ */ jsxs86(Fragment29, { children: [
|
|
73009
|
+
/* @__PURE__ */ jsx141(
|
|
72676
73010
|
"button",
|
|
72677
73011
|
{
|
|
72678
73012
|
type: "button",
|
|
@@ -72682,16 +73016,16 @@ function renderServerPendingAction(label, soldOut) {
|
|
|
72682
73016
|
children: soldOut ? "Sold out" : label
|
|
72683
73017
|
}
|
|
72684
73018
|
),
|
|
72685
|
-
!soldOut ? /* @__PURE__ */
|
|
73019
|
+
!soldOut ? /* @__PURE__ */ jsx141("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
|
|
72686
73020
|
] });
|
|
72687
73021
|
}
|
|
72688
73022
|
function ProductListServerContent(props2) {
|
|
72689
|
-
return /* @__PURE__ */
|
|
73023
|
+
return /* @__PURE__ */ jsx141(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx141(
|
|
72690
73024
|
ProductCardView,
|
|
72691
73025
|
{
|
|
72692
73026
|
display: card,
|
|
72693
73027
|
layout: props2.render.display.layout,
|
|
72694
|
-
variantControl: /* @__PURE__ */
|
|
73028
|
+
variantControl: /* @__PURE__ */ jsx141(
|
|
72695
73029
|
VariantSelectView,
|
|
72696
73030
|
{
|
|
72697
73031
|
options: card.variantOptions,
|
|
@@ -72699,9 +73033,9 @@ function ProductListServerContent(props2) {
|
|
|
72699
73033
|
disabled: true
|
|
72700
73034
|
}
|
|
72701
73035
|
),
|
|
72702
|
-
actions: /* @__PURE__ */
|
|
73036
|
+
actions: /* @__PURE__ */ jsxs86(Fragment29, { children: [
|
|
72703
73037
|
renderServerPendingAction(card.actionLabel, card.soldOut),
|
|
72704
|
-
card.path ? /* @__PURE__ */
|
|
73038
|
+
card.path ? /* @__PURE__ */ jsx141(
|
|
72705
73039
|
"a",
|
|
72706
73040
|
{
|
|
72707
73041
|
href: card.path,
|
|
@@ -72715,18 +73049,18 @@ function ProductListServerContent(props2) {
|
|
|
72715
73049
|
)) });
|
|
72716
73050
|
}
|
|
72717
73051
|
function ProductDetailServerContent(props2) {
|
|
72718
|
-
return /* @__PURE__ */
|
|
73052
|
+
return /* @__PURE__ */ jsx141(
|
|
72719
73053
|
ProductDetailView,
|
|
72720
73054
|
{
|
|
72721
73055
|
display: props2.render.display,
|
|
72722
|
-
gallery: props2.render.display.state === "ready" ? /* @__PURE__ */
|
|
73056
|
+
gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx141(
|
|
72723
73057
|
ProductGalleryFrameView,
|
|
72724
73058
|
{
|
|
72725
73059
|
gallery: props2.render.display.gallery,
|
|
72726
|
-
renderCarousel: (slides) => /* @__PURE__ */
|
|
73060
|
+
renderCarousel: (slides) => /* @__PURE__ */ jsx141(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
|
|
72727
73061
|
}
|
|
72728
73062
|
) : null,
|
|
72729
|
-
variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */
|
|
73063
|
+
variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx141(
|
|
72730
73064
|
VariantSelectView,
|
|
72731
73065
|
{
|
|
72732
73066
|
options: props2.render.display.variantOptions,
|
|
@@ -72738,20 +73072,20 @@ function ProductDetailServerContent(props2) {
|
|
|
72738
73072
|
props2.render.display.actionLabel,
|
|
72739
73073
|
props2.render.display.soldOut
|
|
72740
73074
|
) : null,
|
|
72741
|
-
body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */
|
|
73075
|
+
body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx141("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx141(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
|
|
72742
73076
|
}
|
|
72743
73077
|
);
|
|
72744
73078
|
}
|
|
72745
73079
|
function CartServerContent(props2) {
|
|
72746
|
-
return /* @__PURE__ */
|
|
73080
|
+
return /* @__PURE__ */ jsx141(CartShellView, { display: props2.render.display });
|
|
72747
73081
|
}
|
|
72748
73082
|
function CheckoutServerContent(props2) {
|
|
72749
|
-
return /* @__PURE__ */
|
|
73083
|
+
return /* @__PURE__ */ jsx141(CheckoutShellView, { display: props2.render.display });
|
|
72750
73084
|
}
|
|
72751
73085
|
|
|
72752
73086
|
// ../blocks/src/system/runtime/nodes/cart.server.tsx
|
|
72753
73087
|
init_shop_interactive();
|
|
72754
|
-
import { jsx as
|
|
73088
|
+
import { jsx as jsx142, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
72755
73089
|
function CartSSR({
|
|
72756
73090
|
blockId,
|
|
72757
73091
|
siteId,
|
|
@@ -72766,7 +73100,7 @@ function CartSSR({
|
|
|
72766
73100
|
stage,
|
|
72767
73101
|
...rest
|
|
72768
73102
|
});
|
|
72769
|
-
return /* @__PURE__ */
|
|
73103
|
+
return /* @__PURE__ */ jsxs87(
|
|
72770
73104
|
"div",
|
|
72771
73105
|
{
|
|
72772
73106
|
className: `shop ${rest.className ?? ""}`.trim(),
|
|
@@ -72776,8 +73110,8 @@ function CartSSR({
|
|
|
72776
73110
|
"data-site-id": siteId ?? void 0,
|
|
72777
73111
|
...getIslandRootProps("cart", blockId),
|
|
72778
73112
|
children: [
|
|
72779
|
-
/* @__PURE__ */
|
|
72780
|
-
/* @__PURE__ */
|
|
73113
|
+
/* @__PURE__ */ jsx142(IslandPropsScript, { value: islandProps }),
|
|
73114
|
+
/* @__PURE__ */ jsx142(CartServerContent, { render: islandProps.render }),
|
|
72781
73115
|
children
|
|
72782
73116
|
]
|
|
72783
73117
|
}
|
|
@@ -72787,7 +73121,7 @@ var cart_server_default = CartSSR;
|
|
|
72787
73121
|
|
|
72788
73122
|
// ../blocks/src/system/runtime/nodes/checkout.server.tsx
|
|
72789
73123
|
init_shop_interactive();
|
|
72790
|
-
import { jsx as
|
|
73124
|
+
import { jsx as jsx143, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
72791
73125
|
function CheckoutSSR({
|
|
72792
73126
|
blockId,
|
|
72793
73127
|
siteId,
|
|
@@ -72802,7 +73136,7 @@ function CheckoutSSR({
|
|
|
72802
73136
|
stage,
|
|
72803
73137
|
...rest
|
|
72804
73138
|
});
|
|
72805
|
-
return /* @__PURE__ */
|
|
73139
|
+
return /* @__PURE__ */ jsxs88(
|
|
72806
73140
|
"div",
|
|
72807
73141
|
{
|
|
72808
73142
|
className: `shop ${rest.className ?? ""}`.trim(),
|
|
@@ -72812,8 +73146,8 @@ function CheckoutSSR({
|
|
|
72812
73146
|
"data-site-id": siteId ?? void 0,
|
|
72813
73147
|
...getIslandRootProps("checkout", blockId),
|
|
72814
73148
|
children: [
|
|
72815
|
-
/* @__PURE__ */
|
|
72816
|
-
/* @__PURE__ */
|
|
73149
|
+
/* @__PURE__ */ jsx143(IslandPropsScript, { value: islandProps }),
|
|
73150
|
+
/* @__PURE__ */ jsx143(CheckoutServerContent, { render: islandProps.render }),
|
|
72817
73151
|
children
|
|
72818
73152
|
]
|
|
72819
73153
|
}
|
|
@@ -72823,7 +73157,7 @@ var checkout_server_default = CheckoutSSR;
|
|
|
72823
73157
|
|
|
72824
73158
|
// ../blocks/src/system/runtime/nodes/course-registration.server.tsx
|
|
72825
73159
|
init_course_registration_interactive();
|
|
72826
|
-
import { jsx as
|
|
73160
|
+
import { jsx as jsx144, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
72827
73161
|
function CourseRegistrationSSR({
|
|
72828
73162
|
blockId,
|
|
72829
73163
|
siteId,
|
|
@@ -72864,15 +73198,15 @@ function CourseRegistrationSSR({
|
|
|
72864
73198
|
buttonVariant,
|
|
72865
73199
|
stage
|
|
72866
73200
|
});
|
|
72867
|
-
return /* @__PURE__ */
|
|
73201
|
+
return /* @__PURE__ */ jsxs89(
|
|
72868
73202
|
"div",
|
|
72869
73203
|
{
|
|
72870
73204
|
className: `course-registration ${className ?? ""}`.trim(),
|
|
72871
73205
|
"data-block": "course-registration",
|
|
72872
73206
|
...getIslandRootProps("course-registration", blockId),
|
|
72873
73207
|
children: [
|
|
72874
|
-
/* @__PURE__ */
|
|
72875
|
-
/* @__PURE__ */
|
|
73208
|
+
/* @__PURE__ */ jsx144(IslandPropsScript, { value: islandProps }),
|
|
73209
|
+
/* @__PURE__ */ jsx144("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx144("strong", { children: islandProps.render.display.summaryButtonText }) }),
|
|
72876
73210
|
children
|
|
72877
73211
|
]
|
|
72878
73212
|
}
|
|
@@ -72882,14 +73216,14 @@ var course_registration_server_default = CourseRegistrationSSR;
|
|
|
72882
73216
|
|
|
72883
73217
|
// ../blocks/src/system/runtime/nodes/gifting.server.tsx
|
|
72884
73218
|
init_gifting_interactive();
|
|
72885
|
-
import { jsx as
|
|
73219
|
+
import { jsx as jsx145, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
72886
73220
|
function GiftingSSR({ blockId, ...rest }) {
|
|
72887
73221
|
const islandProps = buildGiftingInteractiveIslandProps(rest);
|
|
72888
73222
|
const offers = islandProps.render.hydration.offers;
|
|
72889
73223
|
const hasOffers = Boolean(
|
|
72890
73224
|
(offers?.giftCards.length ?? 0) > 0 || (offers?.vouchers.length ?? 0) > 0
|
|
72891
73225
|
);
|
|
72892
|
-
return /* @__PURE__ */
|
|
73226
|
+
return /* @__PURE__ */ jsxs90(
|
|
72893
73227
|
"section",
|
|
72894
73228
|
{
|
|
72895
73229
|
className: rest.className ?? void 0,
|
|
@@ -72899,8 +73233,8 @@ function GiftingSSR({ blockId, ...rest }) {
|
|
|
72899
73233
|
},
|
|
72900
73234
|
...getIslandRootProps("gifting", blockId),
|
|
72901
73235
|
children: [
|
|
72902
|
-
/* @__PURE__ */
|
|
72903
|
-
/* @__PURE__ */
|
|
73236
|
+
/* @__PURE__ */ jsx145(IslandPropsScript, { value: islandProps }),
|
|
73237
|
+
/* @__PURE__ */ jsxs90(
|
|
72904
73238
|
"div",
|
|
72905
73239
|
{
|
|
72906
73240
|
className: "rb-grid",
|
|
@@ -72908,14 +73242,14 @@ function GiftingSSR({ blockId, ...rest }) {
|
|
|
72908
73242
|
gap: "1.5rem"
|
|
72909
73243
|
},
|
|
72910
73244
|
children: [
|
|
72911
|
-
/* @__PURE__ */
|
|
72912
|
-
/* @__PURE__ */
|
|
72913
|
-
islandProps.render.display.intro ? /* @__PURE__ */
|
|
73245
|
+
/* @__PURE__ */ jsxs90("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
|
|
73246
|
+
/* @__PURE__ */ jsx145("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
|
|
73247
|
+
islandProps.render.display.intro ? /* @__PURE__ */ jsx145("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
|
|
72914
73248
|
] }),
|
|
72915
|
-
hasOffers ? /* @__PURE__ */
|
|
72916
|
-
(offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */
|
|
72917
|
-
/* @__PURE__ */
|
|
72918
|
-
/* @__PURE__ */
|
|
73249
|
+
hasOffers ? /* @__PURE__ */ jsxs90("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
|
|
73250
|
+
(offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs90("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
|
|
73251
|
+
/* @__PURE__ */ jsx145("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
|
|
73252
|
+
/* @__PURE__ */ jsx145("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs90(
|
|
72919
73253
|
"article",
|
|
72920
73254
|
{
|
|
72921
73255
|
style: {
|
|
@@ -72925,16 +73259,16 @@ function GiftingSSR({ blockId, ...rest }) {
|
|
|
72925
73259
|
background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
|
|
72926
73260
|
},
|
|
72927
73261
|
children: [
|
|
72928
|
-
/* @__PURE__ */
|
|
72929
|
-
offer.description ? /* @__PURE__ */
|
|
73262
|
+
/* @__PURE__ */ jsx145("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
|
|
73263
|
+
offer.description ? /* @__PURE__ */ jsx145("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
|
|
72930
73264
|
]
|
|
72931
73265
|
},
|
|
72932
73266
|
offer.id
|
|
72933
73267
|
)) })
|
|
72934
73268
|
] }) : null,
|
|
72935
|
-
(offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */
|
|
72936
|
-
/* @__PURE__ */
|
|
72937
|
-
/* @__PURE__ */
|
|
73269
|
+
(offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs90("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
|
|
73270
|
+
/* @__PURE__ */ jsx145("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
|
|
73271
|
+
/* @__PURE__ */ jsx145("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs90(
|
|
72938
73272
|
"article",
|
|
72939
73273
|
{
|
|
72940
73274
|
style: {
|
|
@@ -72944,14 +73278,14 @@ function GiftingSSR({ blockId, ...rest }) {
|
|
|
72944
73278
|
background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
|
|
72945
73279
|
},
|
|
72946
73280
|
children: [
|
|
72947
|
-
/* @__PURE__ */
|
|
72948
|
-
offer.description ? /* @__PURE__ */
|
|
73281
|
+
/* @__PURE__ */ jsx145("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
|
|
73282
|
+
offer.description ? /* @__PURE__ */ jsx145("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
|
|
72949
73283
|
]
|
|
72950
73284
|
},
|
|
72951
73285
|
offer.id
|
|
72952
73286
|
)) })
|
|
72953
73287
|
] }) : null
|
|
72954
|
-
] }) : /* @__PURE__ */
|
|
73288
|
+
] }) : /* @__PURE__ */ jsx145("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
|
|
72955
73289
|
]
|
|
72956
73290
|
}
|
|
72957
73291
|
)
|
|
@@ -72969,7 +73303,7 @@ init_WeekAgendaView();
|
|
|
72969
73303
|
init_utils3();
|
|
72970
73304
|
init_timetableModel();
|
|
72971
73305
|
init_buttons();
|
|
72972
|
-
import { jsx as
|
|
73306
|
+
import { jsx as jsx146, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
72973
73307
|
function assertNeverDisplayMode(value) {
|
|
72974
73308
|
throw new Error(`Unsupported event-calendar displayMode: ${String(value)}`);
|
|
72975
73309
|
}
|
|
@@ -72981,9 +73315,9 @@ function renderEventCard(event, display) {
|
|
|
72981
73315
|
}
|
|
72982
73316
|
function renderCombinedSsr(display, prefetchedEvents) {
|
|
72983
73317
|
const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents, "event-combined-content");
|
|
72984
|
-
return /* @__PURE__ */
|
|
72985
|
-
/* @__PURE__ */
|
|
72986
|
-
/* @__PURE__ */
|
|
73318
|
+
return /* @__PURE__ */ jsxs91("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
|
|
73319
|
+
/* @__PURE__ */ jsxs91("div", { className: "nav-tabs", role: "tablist", children: [
|
|
73320
|
+
/* @__PURE__ */ jsx146(
|
|
72987
73321
|
"button",
|
|
72988
73322
|
{
|
|
72989
73323
|
type: "button",
|
|
@@ -72993,7 +73327,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
|
|
|
72993
73327
|
children: "List"
|
|
72994
73328
|
}
|
|
72995
73329
|
),
|
|
72996
|
-
/* @__PURE__ */
|
|
73330
|
+
/* @__PURE__ */ jsx146(
|
|
72997
73331
|
"button",
|
|
72998
73332
|
{
|
|
72999
73333
|
type: "button",
|
|
@@ -73004,7 +73338,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
|
|
|
73004
73338
|
}
|
|
73005
73339
|
)
|
|
73006
73340
|
] }),
|
|
73007
|
-
/* @__PURE__ */
|
|
73341
|
+
/* @__PURE__ */ jsx146(
|
|
73008
73342
|
EventListingFrameView,
|
|
73009
73343
|
{
|
|
73010
73344
|
display: listDisplay,
|
|
@@ -73015,7 +73349,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
|
|
|
73015
73349
|
}
|
|
73016
73350
|
function renderListSsr(display, prefetchedEvents) {
|
|
73017
73351
|
const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents);
|
|
73018
|
-
return /* @__PURE__ */
|
|
73352
|
+
return /* @__PURE__ */ jsx146(
|
|
73019
73353
|
EventListingFrameView,
|
|
73020
73354
|
{
|
|
73021
73355
|
display: listDisplay,
|
|
@@ -73033,30 +73367,30 @@ function renderCalendarSsr(display) {
|
|
|
73033
73367
|
});
|
|
73034
73368
|
const eventsByDate = groupEventsByDate([...display.events]);
|
|
73035
73369
|
const dayNames = getOrderedDayNames(display.startOfWeek);
|
|
73036
|
-
return /* @__PURE__ */
|
|
73037
|
-
/* @__PURE__ */
|
|
73038
|
-
/* @__PURE__ */
|
|
73039
|
-
/* @__PURE__ */
|
|
73370
|
+
return /* @__PURE__ */ jsxs91("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
|
|
73371
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-calendar-header", children: [
|
|
73372
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-calendar-nav", children: [
|
|
73373
|
+
/* @__PURE__ */ jsx146(
|
|
73040
73374
|
"button",
|
|
73041
73375
|
{
|
|
73042
73376
|
type: "button",
|
|
73043
73377
|
className: "event-calendar-nav-btn",
|
|
73044
73378
|
"aria-label": calendarView === "week" ? "Previous week" : "Previous month",
|
|
73045
|
-
children: /* @__PURE__ */
|
|
73379
|
+
children: /* @__PURE__ */ jsx146("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx146("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
|
|
73046
73380
|
}
|
|
73047
73381
|
),
|
|
73048
|
-
/* @__PURE__ */
|
|
73049
|
-
/* @__PURE__ */
|
|
73382
|
+
/* @__PURE__ */ jsx146("h3", { className: "event-calendar-title", children: viewport.title }),
|
|
73383
|
+
/* @__PURE__ */ jsx146(
|
|
73050
73384
|
"button",
|
|
73051
73385
|
{
|
|
73052
73386
|
type: "button",
|
|
73053
73387
|
className: "event-calendar-nav-btn",
|
|
73054
73388
|
"aria-label": calendarView === "week" ? "Next week" : "Next month",
|
|
73055
|
-
children: /* @__PURE__ */
|
|
73389
|
+
children: /* @__PURE__ */ jsx146("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx146("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
|
|
73056
73390
|
}
|
|
73057
73391
|
)
|
|
73058
73392
|
] }),
|
|
73059
|
-
/* @__PURE__ */
|
|
73393
|
+
/* @__PURE__ */ jsx146(
|
|
73060
73394
|
"button",
|
|
73061
73395
|
{
|
|
73062
73396
|
type: "button",
|
|
@@ -73068,7 +73402,7 @@ function renderCalendarSsr(display) {
|
|
|
73068
73402
|
}
|
|
73069
73403
|
)
|
|
73070
73404
|
] }),
|
|
73071
|
-
viewport.kind === "week" ? /* @__PURE__ */
|
|
73405
|
+
viewport.kind === "week" ? /* @__PURE__ */ jsx146(
|
|
73072
73406
|
WeekAgendaView,
|
|
73073
73407
|
{
|
|
73074
73408
|
days: viewport.days,
|
|
@@ -73076,9 +73410,9 @@ function renderCalendarSsr(display) {
|
|
|
73076
73410
|
emptyMessage: display.emptyMessage,
|
|
73077
73411
|
showCapacity: display.showCapacity
|
|
73078
73412
|
}
|
|
73079
|
-
) : /* @__PURE__ */
|
|
73080
|
-
/* @__PURE__ */
|
|
73081
|
-
/* @__PURE__ */
|
|
73413
|
+
) : /* @__PURE__ */ jsxs91("div", { className: "event-calendar-container", children: [
|
|
73414
|
+
/* @__PURE__ */ jsx146("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx146("div", { className: "event-calendar-day-header", children: day }, day)) }),
|
|
73415
|
+
/* @__PURE__ */ jsx146("div", { className: "event-calendar-grid", children: viewport.days.map((date) => {
|
|
73082
73416
|
const dateKey = formatDateKey2(date);
|
|
73083
73417
|
const dayEvents = eventsByDate.get(dateKey) || [];
|
|
73084
73418
|
const isCurrentMonth = date.getMonth() === viewDate.getMonth();
|
|
@@ -73088,24 +73422,24 @@ function renderCalendarSsr(display) {
|
|
|
73088
73422
|
!isCurrentMonth && "event-calendar-day--other-month",
|
|
73089
73423
|
today && "event-calendar-day--today"
|
|
73090
73424
|
);
|
|
73091
|
-
return /* @__PURE__ */
|
|
73092
|
-
/* @__PURE__ */
|
|
73093
|
-
/* @__PURE__ */
|
|
73094
|
-
dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */
|
|
73425
|
+
return /* @__PURE__ */ jsxs91("div", { className: dayClasses, children: [
|
|
73426
|
+
/* @__PURE__ */ jsx146("div", { className: "event-calendar-day-number", children: date.getDate() }),
|
|
73427
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-calendar-events", children: [
|
|
73428
|
+
dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs91(
|
|
73095
73429
|
"a",
|
|
73096
73430
|
{
|
|
73097
73431
|
...resolveEventLinkProps(event),
|
|
73098
73432
|
className: "event-calendar-event",
|
|
73099
73433
|
title: `${event.title} at ${formatTime(event.startsAt, { timeZone: getEventTimeZone(event) })}`,
|
|
73100
73434
|
children: [
|
|
73101
|
-
/* @__PURE__ */
|
|
73435
|
+
/* @__PURE__ */ jsx146("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
|
|
73102
73436
|
" ",
|
|
73103
|
-
/* @__PURE__ */
|
|
73437
|
+
/* @__PURE__ */ jsx146("span", { className: "event-calendar-event-title", children: event.title })
|
|
73104
73438
|
]
|
|
73105
73439
|
},
|
|
73106
73440
|
event.occurrenceId || event.id
|
|
73107
73441
|
)),
|
|
73108
|
-
dayEvents.length > MAX_EVENTS_PER_DAY ? /* @__PURE__ */
|
|
73442
|
+
dayEvents.length > MAX_EVENTS_PER_DAY ? /* @__PURE__ */ jsxs91("div", { className: "event-calendar-more", children: [
|
|
73109
73443
|
"+",
|
|
73110
73444
|
dayEvents.length - MAX_EVENTS_PER_DAY,
|
|
73111
73445
|
" more"
|
|
@@ -73114,7 +73448,7 @@ function renderCalendarSsr(display) {
|
|
|
73114
73448
|
] }, dateKey);
|
|
73115
73449
|
}) })
|
|
73116
73450
|
] }),
|
|
73117
|
-
viewport.kind === "month" && display.events.length === 0 ? /* @__PURE__ */
|
|
73451
|
+
viewport.kind === "month" && display.events.length === 0 ? /* @__PURE__ */ jsx146("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
|
|
73118
73452
|
] });
|
|
73119
73453
|
}
|
|
73120
73454
|
function renderTimetableSsr(display) {
|
|
@@ -73130,30 +73464,30 @@ function renderTimetableSsr(display) {
|
|
|
73130
73464
|
startOfWeek: display.startOfWeek
|
|
73131
73465
|
});
|
|
73132
73466
|
const selectedDayKey = model.days.find((day) => day.isToday)?.dateKey ?? model.days[0]?.dateKey ?? "";
|
|
73133
|
-
return /* @__PURE__ */
|
|
73134
|
-
/* @__PURE__ */
|
|
73135
|
-
/* @__PURE__ */
|
|
73136
|
-
/* @__PURE__ */
|
|
73467
|
+
return /* @__PURE__ */ jsxs91("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
|
|
73468
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-calendar-header", children: [
|
|
73469
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-calendar-nav", children: [
|
|
73470
|
+
/* @__PURE__ */ jsx146(
|
|
73137
73471
|
"button",
|
|
73138
73472
|
{
|
|
73139
73473
|
type: "button",
|
|
73140
73474
|
className: "event-calendar-nav-btn",
|
|
73141
73475
|
"aria-label": "Previous week",
|
|
73142
|
-
children: /* @__PURE__ */
|
|
73476
|
+
children: /* @__PURE__ */ jsx146("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx146("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
|
|
73143
73477
|
}
|
|
73144
73478
|
),
|
|
73145
|
-
/* @__PURE__ */
|
|
73146
|
-
/* @__PURE__ */
|
|
73479
|
+
/* @__PURE__ */ jsx146("h3", { className: "event-calendar-title", children: viewport.title }),
|
|
73480
|
+
/* @__PURE__ */ jsx146(
|
|
73147
73481
|
"button",
|
|
73148
73482
|
{
|
|
73149
73483
|
type: "button",
|
|
73150
73484
|
className: "event-calendar-nav-btn",
|
|
73151
73485
|
"aria-label": "Next week",
|
|
73152
|
-
children: /* @__PURE__ */
|
|
73486
|
+
children: /* @__PURE__ */ jsx146("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx146("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
|
|
73153
73487
|
}
|
|
73154
73488
|
)
|
|
73155
73489
|
] }),
|
|
73156
|
-
/* @__PURE__ */
|
|
73490
|
+
/* @__PURE__ */ jsx146(
|
|
73157
73491
|
"button",
|
|
73158
73492
|
{
|
|
73159
73493
|
type: "button",
|
|
@@ -73165,8 +73499,8 @@ function renderTimetableSsr(display) {
|
|
|
73165
73499
|
}
|
|
73166
73500
|
)
|
|
73167
73501
|
] }),
|
|
73168
|
-
/* @__PURE__ */
|
|
73169
|
-
/* @__PURE__ */
|
|
73502
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-timetable", children: [
|
|
73503
|
+
/* @__PURE__ */ jsx146("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx146(
|
|
73170
73504
|
"button",
|
|
73171
73505
|
{
|
|
73172
73506
|
type: "button",
|
|
@@ -73178,10 +73512,10 @@ function renderTimetableSsr(display) {
|
|
|
73178
73512
|
},
|
|
73179
73513
|
day.dateKey
|
|
73180
73514
|
)) }),
|
|
73181
|
-
/* @__PURE__ */
|
|
73182
|
-
/* @__PURE__ */
|
|
73183
|
-
/* @__PURE__ */
|
|
73184
|
-
/* @__PURE__ */
|
|
73515
|
+
/* @__PURE__ */ jsx146("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs91("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
|
|
73516
|
+
/* @__PURE__ */ jsxs91("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
|
|
73517
|
+
/* @__PURE__ */ jsx146("div", { className: "event-timetable-day-heading" }),
|
|
73518
|
+
/* @__PURE__ */ jsx146("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx146(
|
|
73185
73519
|
"div",
|
|
73186
73520
|
{
|
|
73187
73521
|
className: "event-timetable-time-label",
|
|
@@ -73191,7 +73525,7 @@ function renderTimetableSsr(display) {
|
|
|
73191
73525
|
hour
|
|
73192
73526
|
)) })
|
|
73193
73527
|
] }),
|
|
73194
|
-
model.days.map((day) => /* @__PURE__ */
|
|
73528
|
+
model.days.map((day) => /* @__PURE__ */ jsxs91(
|
|
73195
73529
|
"section",
|
|
73196
73530
|
{
|
|
73197
73531
|
className: clsx_default(
|
|
@@ -73200,17 +73534,17 @@ function renderTimetableSsr(display) {
|
|
|
73200
73534
|
),
|
|
73201
73535
|
"data-selected": day.dateKey === selectedDayKey ? "true" : "false",
|
|
73202
73536
|
children: [
|
|
73203
|
-
/* @__PURE__ */
|
|
73537
|
+
/* @__PURE__ */ jsxs91("h4", { className: "event-timetable-day-heading", children: [
|
|
73204
73538
|
day.label,
|
|
73205
|
-
day.isToday ? /* @__PURE__ */
|
|
73539
|
+
day.isToday ? /* @__PURE__ */ jsx146("span", { className: "event-timetable-today-badge", children: "Today" }) : null
|
|
73206
73540
|
] }),
|
|
73207
|
-
/* @__PURE__ */
|
|
73541
|
+
/* @__PURE__ */ jsxs91(
|
|
73208
73542
|
"div",
|
|
73209
73543
|
{
|
|
73210
73544
|
className: "event-timetable-day-body",
|
|
73211
73545
|
style: { "--event-timetable-range-minutes": String(model.rangeMinutes) },
|
|
73212
73546
|
children: [
|
|
73213
|
-
model.hourTicks.map((hour) => /* @__PURE__ */
|
|
73547
|
+
model.hourTicks.map((hour) => /* @__PURE__ */ jsx146(
|
|
73214
73548
|
"div",
|
|
73215
73549
|
{
|
|
73216
73550
|
className: "event-timetable-hour-line",
|
|
@@ -73219,7 +73553,7 @@ function renderTimetableSsr(display) {
|
|
|
73219
73553
|
},
|
|
73220
73554
|
hour
|
|
73221
73555
|
)),
|
|
73222
|
-
day.events.length === 0 ? /* @__PURE__ */
|
|
73556
|
+
day.events.length === 0 ? /* @__PURE__ */ jsx146("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs91(
|
|
73223
73557
|
"a",
|
|
73224
73558
|
{
|
|
73225
73559
|
...resolveEventLinkProps(cell.event),
|
|
@@ -73233,11 +73567,11 @@ function renderTimetableSsr(display) {
|
|
|
73233
73567
|
borderColor: cell.categoryColor
|
|
73234
73568
|
},
|
|
73235
73569
|
children: [
|
|
73236
|
-
/* @__PURE__ */
|
|
73237
|
-
/* @__PURE__ */
|
|
73238
|
-
cell.teacherLine ? /* @__PURE__ */
|
|
73239
|
-
cell.event.venue ? /* @__PURE__ */
|
|
73240
|
-
display.showCapacity && cell.capacityLabel ? /* @__PURE__ */
|
|
73570
|
+
/* @__PURE__ */ jsx146("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
|
|
73571
|
+
/* @__PURE__ */ jsx146("span", { className: "event-timetable-event-title", children: cell.event.title }),
|
|
73572
|
+
cell.teacherLine ? /* @__PURE__ */ jsx146("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
|
|
73573
|
+
cell.event.venue ? /* @__PURE__ */ jsx146("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
|
|
73574
|
+
display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx146(
|
|
73241
73575
|
"span",
|
|
73242
73576
|
{
|
|
73243
73577
|
className: clsx_default(
|
|
@@ -73259,7 +73593,7 @@ function renderTimetableSsr(display) {
|
|
|
73259
73593
|
day.dateKey
|
|
73260
73594
|
))
|
|
73261
73595
|
] }) }),
|
|
73262
|
-
!model.hasEvents ? /* @__PURE__ */
|
|
73596
|
+
!model.hasEvents ? /* @__PURE__ */ jsx146("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
|
|
73263
73597
|
] })
|
|
73264
73598
|
] });
|
|
73265
73599
|
}
|
|
@@ -73295,8 +73629,8 @@ var EventCalendarSSR = (props2) => {
|
|
|
73295
73629
|
default:
|
|
73296
73630
|
content = assertNeverDisplayMode(display.displayMode);
|
|
73297
73631
|
}
|
|
73298
|
-
return /* @__PURE__ */
|
|
73299
|
-
/* @__PURE__ */
|
|
73632
|
+
return /* @__PURE__ */ jsxs91("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
|
|
73633
|
+
/* @__PURE__ */ jsx146(IslandPropsScript, { value: islandProps }),
|
|
73300
73634
|
content
|
|
73301
73635
|
] });
|
|
73302
73636
|
};
|
|
@@ -73304,13 +73638,13 @@ var EventCalendarSSR = (props2) => {
|
|
|
73304
73638
|
// ../blocks/src/system/runtime/nodes/events/EventListing.server.tsx
|
|
73305
73639
|
init_EventListing_interactive();
|
|
73306
73640
|
init_EventListing_view();
|
|
73307
|
-
import { jsx as
|
|
73641
|
+
import { jsx as jsx147, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
73308
73642
|
var EventListingSSR = (props2) => {
|
|
73309
73643
|
const islandProps = buildEventListingInteractiveIslandProps(props2);
|
|
73310
73644
|
const display = islandProps.render.display;
|
|
73311
|
-
return /* @__PURE__ */
|
|
73312
|
-
/* @__PURE__ */
|
|
73313
|
-
/* @__PURE__ */
|
|
73645
|
+
return /* @__PURE__ */ jsxs92("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
|
|
73646
|
+
/* @__PURE__ */ jsx147(IslandPropsScript, { value: islandProps }),
|
|
73647
|
+
/* @__PURE__ */ jsx147(
|
|
73314
73648
|
EventListingFrameView,
|
|
73315
73649
|
{
|
|
73316
73650
|
display,
|
|
@@ -73323,7 +73657,7 @@ var EventListingSSR = (props2) => {
|
|
|
73323
73657
|
// ../blocks/src/system/runtime/nodes/event-registration.server.tsx
|
|
73324
73658
|
init_event_registration_interactive();
|
|
73325
73659
|
init_constants3();
|
|
73326
|
-
import { jsx as
|
|
73660
|
+
import { jsx as jsx148, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
73327
73661
|
function cx(...classes) {
|
|
73328
73662
|
return classes.filter((className) => Boolean(className)).join(" ");
|
|
73329
73663
|
}
|
|
@@ -73376,7 +73710,7 @@ function EventRegistrationSSR({
|
|
|
73376
73710
|
siteMemberships
|
|
73377
73711
|
});
|
|
73378
73712
|
const display = islandProps.render.display;
|
|
73379
|
-
return /* @__PURE__ */
|
|
73713
|
+
return /* @__PURE__ */ jsxs93(
|
|
73380
73714
|
"div",
|
|
73381
73715
|
{
|
|
73382
73716
|
className: `event-registration ${className ?? ""}`.trim(),
|
|
@@ -73386,8 +73720,8 @@ function EventRegistrationSSR({
|
|
|
73386
73720
|
"data-rb-island-error-class": "event-registration__hydration-error",
|
|
73387
73721
|
...getIslandRootProps("event-registration", blockId),
|
|
73388
73722
|
children: [
|
|
73389
|
-
/* @__PURE__ */
|
|
73390
|
-
/* @__PURE__ */
|
|
73723
|
+
/* @__PURE__ */ jsx148(IslandPropsScript, { value: islandProps }),
|
|
73724
|
+
/* @__PURE__ */ jsx148(EventRegistrationShell, { display }),
|
|
73391
73725
|
children
|
|
73392
73726
|
]
|
|
73393
73727
|
}
|
|
@@ -73396,47 +73730,47 @@ function EventRegistrationSSR({
|
|
|
73396
73730
|
function EventRegistrationShell({
|
|
73397
73731
|
display
|
|
73398
73732
|
}) {
|
|
73399
|
-
return /* @__PURE__ */
|
|
73733
|
+
return /* @__PURE__ */ jsx148(
|
|
73400
73734
|
"div",
|
|
73401
73735
|
{
|
|
73402
73736
|
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
73403
73737
|
className: "er-container er-registration-shell",
|
|
73404
73738
|
"aria-busy": "true",
|
|
73405
73739
|
role: "status",
|
|
73406
|
-
children: /* @__PURE__ */
|
|
73407
|
-
/* @__PURE__ */
|
|
73408
|
-
/* @__PURE__ */
|
|
73740
|
+
children: /* @__PURE__ */ jsxs93("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
|
|
73741
|
+
/* @__PURE__ */ jsxs93("div", { className: "er-payment-layout-main", children: [
|
|
73742
|
+
/* @__PURE__ */ jsx148("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx148("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
|
|
73409
73743
|
const isActive = index === 0;
|
|
73410
|
-
return /* @__PURE__ */
|
|
73411
|
-
/* @__PURE__ */
|
|
73412
|
-
/* @__PURE__ */
|
|
73413
|
-
index < display.stepLabels.length - 1 ? /* @__PURE__ */
|
|
73744
|
+
return /* @__PURE__ */ jsxs93("li", { className: "er-step", children: [
|
|
73745
|
+
/* @__PURE__ */ jsx148("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
|
|
73746
|
+
/* @__PURE__ */ jsx148("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
|
|
73747
|
+
index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx148("span", { className: "er-step-connector" }) : null
|
|
73414
73748
|
] }, label);
|
|
73415
73749
|
}) }) }),
|
|
73416
|
-
/* @__PURE__ */
|
|
73417
|
-
/* @__PURE__ */
|
|
73418
|
-
/* @__PURE__ */
|
|
73419
|
-
/* @__PURE__ */
|
|
73420
|
-
/* @__PURE__ */
|
|
73750
|
+
/* @__PURE__ */ jsxs93("div", { className: "er-stack", children: [
|
|
73751
|
+
/* @__PURE__ */ jsxs93("div", { children: [
|
|
73752
|
+
/* @__PURE__ */ jsx148("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
|
|
73753
|
+
/* @__PURE__ */ jsx148("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
|
|
73754
|
+
/* @__PURE__ */ jsx148("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
|
|
73421
73755
|
] }),
|
|
73422
|
-
/* @__PURE__ */
|
|
73423
|
-
/* @__PURE__ */
|
|
73424
|
-
/* @__PURE__ */
|
|
73425
|
-
/* @__PURE__ */
|
|
73756
|
+
/* @__PURE__ */ jsxs93("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
|
|
73757
|
+
/* @__PURE__ */ jsxs93("div", { className: "er-event-card er-registration-shell__card", children: [
|
|
73758
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
|
|
73759
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
|
|
73426
73760
|
] }),
|
|
73427
|
-
/* @__PURE__ */
|
|
73428
|
-
/* @__PURE__ */
|
|
73429
|
-
/* @__PURE__ */
|
|
73761
|
+
/* @__PURE__ */ jsxs93("div", { className: "er-event-card er-registration-shell__card", children: [
|
|
73762
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
|
|
73763
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
|
|
73430
73764
|
] })
|
|
73431
73765
|
] })
|
|
73432
73766
|
] })
|
|
73433
73767
|
] }),
|
|
73434
|
-
/* @__PURE__ */
|
|
73435
|
-
/* @__PURE__ */
|
|
73436
|
-
/* @__PURE__ */
|
|
73437
|
-
/* @__PURE__ */
|
|
73768
|
+
/* @__PURE__ */ jsx148("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs93("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
|
|
73769
|
+
/* @__PURE__ */ jsxs93("div", { className: "er-summary-bar-info", children: [
|
|
73770
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
|
|
73771
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
|
|
73438
73772
|
] }),
|
|
73439
|
-
/* @__PURE__ */
|
|
73773
|
+
/* @__PURE__ */ jsx148("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
|
|
73440
73774
|
] }) })
|
|
73441
73775
|
] })
|
|
73442
73776
|
}
|
|
@@ -73449,7 +73783,7 @@ init_clsx();
|
|
|
73449
73783
|
init_buttons();
|
|
73450
73784
|
init_FeedbackMessage();
|
|
73451
73785
|
init_form_interactive();
|
|
73452
|
-
import { jsx as
|
|
73786
|
+
import { jsx as jsx149, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
73453
73787
|
var FormNodeSSR = ({
|
|
73454
73788
|
blockId,
|
|
73455
73789
|
value,
|
|
@@ -73474,9 +73808,9 @@ var FormNodeSSR = ({
|
|
|
73474
73808
|
const display = islandProps.render.display;
|
|
73475
73809
|
const form2 = display.form;
|
|
73476
73810
|
if (!form2) {
|
|
73477
|
-
return /* @__PURE__ */
|
|
73478
|
-
/* @__PURE__ */
|
|
73479
|
-
/* @__PURE__ */
|
|
73811
|
+
return /* @__PURE__ */ jsxs94("div", { ...getIslandRootProps("form", blockId), children: [
|
|
73812
|
+
/* @__PURE__ */ jsx149(IslandPropsScript, { value: islandProps }),
|
|
73813
|
+
/* @__PURE__ */ jsx149(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
|
|
73480
73814
|
] });
|
|
73481
73815
|
}
|
|
73482
73816
|
const groups = display.groups;
|
|
@@ -73486,9 +73820,9 @@ var FormNodeSSR = ({
|
|
|
73486
73820
|
const required = Boolean(field.required);
|
|
73487
73821
|
const type = String(field.type ?? "text");
|
|
73488
73822
|
if (type === "textarea") {
|
|
73489
|
-
return /* @__PURE__ */
|
|
73490
|
-
/* @__PURE__ */
|
|
73491
|
-
/* @__PURE__ */
|
|
73823
|
+
return /* @__PURE__ */ jsxs94("div", { className: "fb-field", children: [
|
|
73824
|
+
/* @__PURE__ */ jsx149("label", { htmlFor: inputId, className: "form-label", children: label }),
|
|
73825
|
+
/* @__PURE__ */ jsx149(
|
|
73492
73826
|
"textarea",
|
|
73493
73827
|
{
|
|
73494
73828
|
id: inputId,
|
|
@@ -73504,20 +73838,20 @@ var FormNodeSSR = ({
|
|
|
73504
73838
|
if (type === "select") {
|
|
73505
73839
|
const options = field.options ?? [];
|
|
73506
73840
|
const multiple = Boolean(field.multiple);
|
|
73507
|
-
return /* @__PURE__ */
|
|
73508
|
-
/* @__PURE__ */
|
|
73509
|
-
/* @__PURE__ */
|
|
73510
|
-
!multiple && /* @__PURE__ */
|
|
73511
|
-
options.map((opt) => /* @__PURE__ */
|
|
73841
|
+
return /* @__PURE__ */ jsxs94("div", { className: "fb-field", children: [
|
|
73842
|
+
/* @__PURE__ */ jsx149("label", { htmlFor: inputId, className: "form-label", children: label }),
|
|
73843
|
+
/* @__PURE__ */ jsxs94("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
|
|
73844
|
+
!multiple && /* @__PURE__ */ jsx149("option", { value: "", children: "Select\u2026" }),
|
|
73845
|
+
options.map((opt) => /* @__PURE__ */ jsx149("option", { value: opt.value, children: opt.label }, opt.value))
|
|
73512
73846
|
] })
|
|
73513
73847
|
] }, field.id);
|
|
73514
73848
|
}
|
|
73515
73849
|
if (type === "radio") {
|
|
73516
73850
|
const options = field.options ?? [];
|
|
73517
|
-
return /* @__PURE__ */
|
|
73518
|
-
/* @__PURE__ */
|
|
73519
|
-
options.map((opt) => /* @__PURE__ */
|
|
73520
|
-
/* @__PURE__ */
|
|
73851
|
+
return /* @__PURE__ */ jsxs94("fieldset", { className: "fb-fieldset", children: [
|
|
73852
|
+
/* @__PURE__ */ jsx149("legend", { className: "form-label", children: label }),
|
|
73853
|
+
options.map((opt) => /* @__PURE__ */ jsxs94("label", { className: "fb-inline form-label", children: [
|
|
73854
|
+
/* @__PURE__ */ jsx149(
|
|
73521
73855
|
"input",
|
|
73522
73856
|
{
|
|
73523
73857
|
type: "radio",
|
|
@@ -73527,14 +73861,14 @@ var FormNodeSSR = ({
|
|
|
73527
73861
|
className: "form-radio"
|
|
73528
73862
|
}
|
|
73529
73863
|
),
|
|
73530
|
-
/* @__PURE__ */
|
|
73864
|
+
/* @__PURE__ */ jsx149("span", { children: opt.label })
|
|
73531
73865
|
] }, opt.value))
|
|
73532
73866
|
] }, field.id);
|
|
73533
73867
|
}
|
|
73534
73868
|
if (type === "checkbox" || type === "consent") {
|
|
73535
|
-
return /* @__PURE__ */
|
|
73536
|
-
/* @__PURE__ */
|
|
73537
|
-
/* @__PURE__ */
|
|
73869
|
+
return /* @__PURE__ */ jsxs94("label", { className: "fb-inline form-label", children: [
|
|
73870
|
+
/* @__PURE__ */ jsx149("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
|
|
73871
|
+
/* @__PURE__ */ jsx149("span", { children: label })
|
|
73538
73872
|
] }, field.id);
|
|
73539
73873
|
}
|
|
73540
73874
|
const inputType = type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
|
|
@@ -73548,9 +73882,9 @@ var FormNodeSSR = ({
|
|
|
73548
73882
|
if (typeof field.min === "number") extra.min = field.min;
|
|
73549
73883
|
if (typeof field.max === "number") extra.max = field.max;
|
|
73550
73884
|
}
|
|
73551
|
-
return /* @__PURE__ */
|
|
73552
|
-
/* @__PURE__ */
|
|
73553
|
-
/* @__PURE__ */
|
|
73885
|
+
return /* @__PURE__ */ jsxs94("div", { className: "fb-field", children: [
|
|
73886
|
+
/* @__PURE__ */ jsx149("label", { htmlFor: inputId, className: "form-label", children: label }),
|
|
73887
|
+
/* @__PURE__ */ jsx149(
|
|
73554
73888
|
"input",
|
|
73555
73889
|
{
|
|
73556
73890
|
id: inputId,
|
|
@@ -73564,9 +73898,9 @@ var FormNodeSSR = ({
|
|
|
73564
73898
|
)
|
|
73565
73899
|
] }, field.id);
|
|
73566
73900
|
};
|
|
73567
|
-
return /* @__PURE__ */
|
|
73568
|
-
/* @__PURE__ */
|
|
73569
|
-
/* @__PURE__ */
|
|
73901
|
+
return /* @__PURE__ */ jsxs94("div", { ...getIslandRootProps("form", blockId), children: [
|
|
73902
|
+
/* @__PURE__ */ jsx149(IslandPropsScript, { value: islandProps }),
|
|
73903
|
+
/* @__PURE__ */ jsxs94(
|
|
73570
73904
|
"form",
|
|
73571
73905
|
{
|
|
73572
73906
|
method: "POST",
|
|
@@ -73574,15 +73908,15 @@ var FormNodeSSR = ({
|
|
|
73574
73908
|
onSubmit,
|
|
73575
73909
|
className: clsx_default("fb-form", display.className ?? void 0),
|
|
73576
73910
|
children: [
|
|
73577
|
-
/* @__PURE__ */
|
|
73578
|
-
/* @__PURE__ */
|
|
73911
|
+
/* @__PURE__ */ jsx149("input", { type: "hidden", name: "form_id", value: form2.id }),
|
|
73912
|
+
/* @__PURE__ */ jsx149("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
|
|
73579
73913
|
groups.map((group) => {
|
|
73580
73914
|
if (group.type === "row") {
|
|
73581
|
-
return /* @__PURE__ */
|
|
73915
|
+
return /* @__PURE__ */ jsx149("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
|
|
73582
73916
|
}
|
|
73583
73917
|
return renderField(group.field);
|
|
73584
73918
|
}),
|
|
73585
|
-
/* @__PURE__ */
|
|
73919
|
+
/* @__PURE__ */ jsx149("div", { className: "fb-actions", children: /* @__PURE__ */ jsx149("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx149(
|
|
73586
73920
|
"button",
|
|
73587
73921
|
{
|
|
73588
73922
|
type: "submit",
|
|
@@ -73604,7 +73938,7 @@ var FormNodeSSR = ({
|
|
|
73604
73938
|
init_clsx();
|
|
73605
73939
|
init_buttons();
|
|
73606
73940
|
init_newsletter_form_interactive();
|
|
73607
|
-
import { jsx as
|
|
73941
|
+
import { jsx as jsx150, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
73608
73942
|
function NewsletterFormSSR({
|
|
73609
73943
|
blockId,
|
|
73610
73944
|
siteId,
|
|
@@ -73639,12 +73973,12 @@ function NewsletterFormSSR({
|
|
|
73639
73973
|
const fields3 = display.fields;
|
|
73640
73974
|
const renderField = (field) => {
|
|
73641
73975
|
const inputId = `newsletter_${field.id}`;
|
|
73642
|
-
return /* @__PURE__ */
|
|
73643
|
-
/* @__PURE__ */
|
|
73976
|
+
return /* @__PURE__ */ jsxs95("div", { className: "fb-field newsletter-field", children: [
|
|
73977
|
+
/* @__PURE__ */ jsxs95("label", { htmlFor: inputId, className: "form-label", children: [
|
|
73644
73978
|
field.label,
|
|
73645
|
-
field.required && /* @__PURE__ */
|
|
73979
|
+
field.required && /* @__PURE__ */ jsx150("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
|
|
73646
73980
|
] }),
|
|
73647
|
-
/* @__PURE__ */
|
|
73981
|
+
/* @__PURE__ */ jsx150(
|
|
73648
73982
|
"input",
|
|
73649
73983
|
{
|
|
73650
73984
|
id: inputId,
|
|
@@ -73658,15 +73992,15 @@ function NewsletterFormSSR({
|
|
|
73658
73992
|
)
|
|
73659
73993
|
] }, field.id);
|
|
73660
73994
|
};
|
|
73661
|
-
return /* @__PURE__ */
|
|
73995
|
+
return /* @__PURE__ */ jsxs95(
|
|
73662
73996
|
"div",
|
|
73663
73997
|
{
|
|
73664
73998
|
...getIslandRootProps("newsletter-form", blockId),
|
|
73665
73999
|
className: clsx_default("newsletter-form-ssr", className),
|
|
73666
74000
|
children: [
|
|
73667
|
-
/* @__PURE__ */
|
|
73668
|
-
/* @__PURE__ */
|
|
73669
|
-
/* @__PURE__ */
|
|
74001
|
+
/* @__PURE__ */ jsx150(IslandPropsScript, { value: islandProps }),
|
|
74002
|
+
/* @__PURE__ */ jsxs95("form", { method: "POST", className: "newsletter-form fb-form", children: [
|
|
74003
|
+
/* @__PURE__ */ jsx150(
|
|
73670
74004
|
"input",
|
|
73671
74005
|
{
|
|
73672
74006
|
type: "text",
|
|
@@ -73677,9 +74011,9 @@ function NewsletterFormSSR({
|
|
|
73677
74011
|
"aria-hidden": "true"
|
|
73678
74012
|
}
|
|
73679
74013
|
),
|
|
73680
|
-
/* @__PURE__ */
|
|
74014
|
+
/* @__PURE__ */ jsxs95("div", { className: "newsletter-form-fields", children: [
|
|
73681
74015
|
fields3.map(renderField),
|
|
73682
|
-
/* @__PURE__ */
|
|
74016
|
+
/* @__PURE__ */ jsx150("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx150(
|
|
73683
74017
|
"button",
|
|
73684
74018
|
{
|
|
73685
74019
|
type: "submit",
|
|
@@ -73688,7 +74022,7 @@ function NewsletterFormSSR({
|
|
|
73688
74022
|
}
|
|
73689
74023
|
) })
|
|
73690
74024
|
] }),
|
|
73691
|
-
display.privacyNote && /* @__PURE__ */
|
|
74025
|
+
display.privacyNote && /* @__PURE__ */ jsx150("p", { className: "newsletter-privacy-note", children: display.privacyNote })
|
|
73692
74026
|
] })
|
|
73693
74027
|
]
|
|
73694
74028
|
}
|
|
@@ -73698,7 +74032,7 @@ var newsletter_form_server_default = NewsletterFormSSR;
|
|
|
73698
74032
|
|
|
73699
74033
|
// ../blocks/src/system/runtime/nodes/product-detail.server.tsx
|
|
73700
74034
|
init_shop_interactive();
|
|
73701
|
-
import { jsx as
|
|
74035
|
+
import { jsx as jsx151, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
73702
74036
|
function ProductDetailSSR({
|
|
73703
74037
|
blockId,
|
|
73704
74038
|
siteId,
|
|
@@ -73713,7 +74047,7 @@ function ProductDetailSSR({
|
|
|
73713
74047
|
stage,
|
|
73714
74048
|
...rest
|
|
73715
74049
|
});
|
|
73716
|
-
return /* @__PURE__ */
|
|
74050
|
+
return /* @__PURE__ */ jsxs96(
|
|
73717
74051
|
"div",
|
|
73718
74052
|
{
|
|
73719
74053
|
className: `shop ${rest.className ?? ""}`.trim(),
|
|
@@ -73723,8 +74057,8 @@ function ProductDetailSSR({
|
|
|
73723
74057
|
"data-site-id": siteId ?? void 0,
|
|
73724
74058
|
...getIslandRootProps("product-detail", blockId),
|
|
73725
74059
|
children: [
|
|
73726
|
-
/* @__PURE__ */
|
|
73727
|
-
/* @__PURE__ */
|
|
74060
|
+
/* @__PURE__ */ jsx151(IslandPropsScript, { value: islandProps }),
|
|
74061
|
+
/* @__PURE__ */ jsx151(ProductDetailServerContent, { render: islandProps.render }),
|
|
73728
74062
|
children
|
|
73729
74063
|
]
|
|
73730
74064
|
}
|
|
@@ -73734,7 +74068,7 @@ var product_detail_server_default = ProductDetailSSR;
|
|
|
73734
74068
|
|
|
73735
74069
|
// ../blocks/src/system/runtime/nodes/product-list.server.tsx
|
|
73736
74070
|
init_shop_interactive();
|
|
73737
|
-
import { jsx as
|
|
74071
|
+
import { jsx as jsx152, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
73738
74072
|
function ProductListSSR({
|
|
73739
74073
|
blockId,
|
|
73740
74074
|
siteId,
|
|
@@ -73749,7 +74083,7 @@ function ProductListSSR({
|
|
|
73749
74083
|
stage,
|
|
73750
74084
|
...rest
|
|
73751
74085
|
});
|
|
73752
|
-
return /* @__PURE__ */
|
|
74086
|
+
return /* @__PURE__ */ jsxs97(
|
|
73753
74087
|
"div",
|
|
73754
74088
|
{
|
|
73755
74089
|
className: `shop ${rest.className ?? ""}`.trim(),
|
|
@@ -73759,8 +74093,8 @@ function ProductListSSR({
|
|
|
73759
74093
|
"data-site-id": siteId ?? void 0,
|
|
73760
74094
|
...getIslandRootProps("product-list", blockId),
|
|
73761
74095
|
children: [
|
|
73762
|
-
/* @__PURE__ */
|
|
73763
|
-
/* @__PURE__ */
|
|
74096
|
+
/* @__PURE__ */ jsx152(IslandPropsScript, { value: islandProps }),
|
|
74097
|
+
/* @__PURE__ */ jsx152(ProductListServerContent, { render: islandProps.render }),
|
|
73764
74098
|
children
|
|
73765
74099
|
]
|
|
73766
74100
|
}
|
|
@@ -73772,7 +74106,7 @@ var product_list_server_default = ProductListSSR;
|
|
|
73772
74106
|
init_buttons();
|
|
73773
74107
|
init_view2();
|
|
73774
74108
|
init_shop_interactive();
|
|
73775
|
-
import { jsx as
|
|
74109
|
+
import { jsx as jsx153, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
73776
74110
|
function ShopSSR({
|
|
73777
74111
|
blockId,
|
|
73778
74112
|
siteId,
|
|
@@ -73789,7 +74123,7 @@ function ShopSSR({
|
|
|
73789
74123
|
...rest
|
|
73790
74124
|
});
|
|
73791
74125
|
const render = islandProps.render;
|
|
73792
|
-
return /* @__PURE__ */
|
|
74126
|
+
return /* @__PURE__ */ jsxs98(
|
|
73793
74127
|
"div",
|
|
73794
74128
|
{
|
|
73795
74129
|
className: `shop ${rest.className ?? ""}`.trim(),
|
|
@@ -73799,16 +74133,16 @@ function ShopSSR({
|
|
|
73799
74133
|
"data-site-id": siteId ?? void 0,
|
|
73800
74134
|
...getIslandRootProps("shop", blockId),
|
|
73801
74135
|
children: [
|
|
73802
|
-
/* @__PURE__ */
|
|
73803
|
-
/* @__PURE__ */
|
|
74136
|
+
/* @__PURE__ */ jsx153(IslandPropsScript, { value: islandProps }),
|
|
74137
|
+
/* @__PURE__ */ jsx153(
|
|
73804
74138
|
PassesMembershipsSectionView,
|
|
73805
74139
|
{
|
|
73806
74140
|
display: render.display,
|
|
73807
|
-
passCards: render.display.passes.map((pass) => /* @__PURE__ */
|
|
74141
|
+
passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx153(
|
|
73808
74142
|
PassCardView,
|
|
73809
74143
|
{
|
|
73810
74144
|
display: pass,
|
|
73811
|
-
action: /* @__PURE__ */
|
|
74145
|
+
action: /* @__PURE__ */ jsx153(
|
|
73812
74146
|
"button",
|
|
73813
74147
|
{
|
|
73814
74148
|
type: "button",
|
|
@@ -73821,11 +74155,11 @@ function ShopSSR({
|
|
|
73821
74155
|
},
|
|
73822
74156
|
pass.id
|
|
73823
74157
|
)),
|
|
73824
|
-
membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */
|
|
74158
|
+
membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx153(
|
|
73825
74159
|
MembershipCardView,
|
|
73826
74160
|
{
|
|
73827
74161
|
display: membership,
|
|
73828
|
-
action: /* @__PURE__ */
|
|
74162
|
+
action: /* @__PURE__ */ jsx153(
|
|
73829
74163
|
"button",
|
|
73830
74164
|
{
|
|
73831
74165
|
type: "button",
|
|
@@ -73952,6 +74286,7 @@ var serverComponentRegistry = {
|
|
|
73952
74286
|
"event-spotlight": EventSpotlight,
|
|
73953
74287
|
"event-combined": EventCombinedSSR,
|
|
73954
74288
|
"offerings-preview": offerings_preview_default,
|
|
74289
|
+
"weekly-slot-availability": weekly_slot_availability_server_default,
|
|
73955
74290
|
...runtimeBackedBlockServerRegistry
|
|
73956
74291
|
};
|
|
73957
74292
|
|
|
@@ -74087,10 +74422,32 @@ function previewEditableTargetToPath(target) {
|
|
|
74087
74422
|
return assertNever(target);
|
|
74088
74423
|
}
|
|
74089
74424
|
}
|
|
74425
|
+
function previewEditableTargetToFieldKey(target) {
|
|
74426
|
+
if (target.kind !== "block-field") return null;
|
|
74427
|
+
return {
|
|
74428
|
+
kind: "block-field",
|
|
74429
|
+
blockId: blockIdFromEditorPath(target.path),
|
|
74430
|
+
fieldPath: target.fieldPath
|
|
74431
|
+
};
|
|
74432
|
+
}
|
|
74433
|
+
function blockIdFromEditorPath(path) {
|
|
74434
|
+
const match = /^blocks\.([^.]+)\./.exec(path);
|
|
74435
|
+
return match?.[1] ?? "";
|
|
74436
|
+
}
|
|
74090
74437
|
function previewEditableTargetFieldConstraints(target, context) {
|
|
74091
74438
|
if (target.kind !== "block-field") return void 0;
|
|
74092
74439
|
return context.fieldConstraints?.[target.fieldPath] ?? context.fieldConstraints?.[stripNumericPathSegments(target.fieldPath)];
|
|
74093
74440
|
}
|
|
74441
|
+
function propsWithAuthoringPlaceholder(props2, node) {
|
|
74442
|
+
const authoringPresence = conditionalAuthoringPresenceFor(node.$when?.authoringPresence);
|
|
74443
|
+
if (authoringPresence.kind !== "recover-empty-when-active") return props2;
|
|
74444
|
+
if (!authoringPresence.placeholder || typeof props2.placeholder === "string") return props2;
|
|
74445
|
+
return {
|
|
74446
|
+
...props2,
|
|
74447
|
+
placeholder: authoringPresence.placeholder,
|
|
74448
|
+
ariaLabel: typeof props2.ariaLabel === "string" ? props2.ariaLabel : authoringPresence.placeholder
|
|
74449
|
+
};
|
|
74450
|
+
}
|
|
74094
74451
|
function isIdentityBinding(binding) {
|
|
74095
74452
|
return binding.transforms.length === 0 && binding.fallback === void 0 && binding.coerce === void 0 && binding.pick === "value";
|
|
74096
74453
|
}
|
|
@@ -74315,6 +74672,62 @@ function coerceBindingValue(value, binding) {
|
|
|
74315
74672
|
}
|
|
74316
74673
|
}
|
|
74317
74674
|
}
|
|
74675
|
+
function conditionalAuthoringPresenceFor(value) {
|
|
74676
|
+
return value ?? { kind: "visitor-only" };
|
|
74677
|
+
}
|
|
74678
|
+
function conditionalValuePresence(nodeType, value) {
|
|
74679
|
+
switch (nodeType) {
|
|
74680
|
+
case "text":
|
|
74681
|
+
return isTextConditionValueEmpty(value) ? { kind: "empty" } : { kind: "present" };
|
|
74682
|
+
case "richText":
|
|
74683
|
+
return isRichTextConditionValueEmpty(value) ? { kind: "empty" } : { kind: "present" };
|
|
74684
|
+
default:
|
|
74685
|
+
return value ? { kind: "present" } : { kind: "empty" };
|
|
74686
|
+
}
|
|
74687
|
+
}
|
|
74688
|
+
function isTextConditionValueEmpty(value) {
|
|
74689
|
+
const inlineText = parseInlineTextFromUnknown(value);
|
|
74690
|
+
if (inlineText.ok) {
|
|
74691
|
+
return inlineTextToPlainText(inlineText.value).trim().length === 0;
|
|
74692
|
+
}
|
|
74693
|
+
if (typeof value === "string") return value.trim().length === 0;
|
|
74694
|
+
if (value === null || value === void 0) return true;
|
|
74695
|
+
return !value;
|
|
74696
|
+
}
|
|
74697
|
+
function isRichTextConditionValueEmpty(value) {
|
|
74698
|
+
const root = unwrapRichTextRoot(value);
|
|
74699
|
+
if (typeof root === "string") return root.trim().length === 0;
|
|
74700
|
+
if (!isTipTapNode(root)) return root === null || root === void 0 || !root;
|
|
74701
|
+
return richTextPlainText(root).trim().length === 0;
|
|
74702
|
+
}
|
|
74703
|
+
function isTipTapNode(value) {
|
|
74704
|
+
return isPlainObject3(value) && typeof value.type === "string";
|
|
74705
|
+
}
|
|
74706
|
+
function richTextPlainText(node) {
|
|
74707
|
+
const ownText = typeof node.text === "string" ? node.text : "";
|
|
74708
|
+
const childText = (node.content ?? []).map(richTextPlainText).join("");
|
|
74709
|
+
return ownText + childText;
|
|
74710
|
+
}
|
|
74711
|
+
function planConditionalNodeRender(input) {
|
|
74712
|
+
if (input.conditionMatched) {
|
|
74713
|
+
return { kind: "render", reason: "condition-passed" };
|
|
74714
|
+
}
|
|
74715
|
+
if (input.authoringPresence.kind !== "recover-empty-when-active" || !input.conditionUsesPresenceSemantics || input.conditionPresence.kind !== "empty") {
|
|
74716
|
+
return { kind: "skip", reason: "condition-failed" };
|
|
74717
|
+
}
|
|
74718
|
+
if (!input.editableTarget) {
|
|
74719
|
+
return { kind: "skip", reason: "not-editable" };
|
|
74720
|
+
}
|
|
74721
|
+
if (!previewAuthoringFieldsEqual(input.editableTarget, input.authoringContext?.activeField ?? null)) {
|
|
74722
|
+
return { kind: "skip", reason: "inactive-authoring-context" };
|
|
74723
|
+
}
|
|
74724
|
+
return { kind: "render", reason: "authoring-presence" };
|
|
74725
|
+
}
|
|
74726
|
+
function previewAuthoringFieldsEqual(left, right) {
|
|
74727
|
+
return Boolean(
|
|
74728
|
+
right && left.kind === right.kind && left.blockId === right.blockId && left.fieldPath === right.fieldPath
|
|
74729
|
+
);
|
|
74730
|
+
}
|
|
74318
74731
|
function resolveBindingValue(binding, context) {
|
|
74319
74732
|
const fullPath = binding.from;
|
|
74320
74733
|
const segments = splitPath(fullPath);
|
|
@@ -74379,9 +74792,23 @@ function shouldRenderNode(node, context) {
|
|
|
74379
74792
|
const binding = parseBinding(node.$when.when, "$when");
|
|
74380
74793
|
const value = resolveBindingValue(binding, context);
|
|
74381
74794
|
const equals = node.$when.equals;
|
|
74382
|
-
const
|
|
74383
|
-
const
|
|
74384
|
-
|
|
74795
|
+
const conditionPresence = conditionalValuePresence(node.type, value);
|
|
74796
|
+
const usesPresenceSemantics = typeof equals === "undefined" && !node.$when.not;
|
|
74797
|
+
const matches = typeof equals === "undefined" ? conditionPresence.kind === "present" : value === equals;
|
|
74798
|
+
const conditionMatched = node.$when.not ? !matches : matches;
|
|
74799
|
+
const parsedNodeBinding = node.$bind ? parseBinding(node.$bind, "$bind") : void 0;
|
|
74800
|
+
const editableTarget = node.type === "text" || node.type === "richText" ? previewEditableTargetToFieldKey(
|
|
74801
|
+
derivePreviewTextEditableTarget(parsedNodeBinding, context)
|
|
74802
|
+
) : null;
|
|
74803
|
+
const decision = planConditionalNodeRender({
|
|
74804
|
+
conditionMatched,
|
|
74805
|
+
conditionPresence,
|
|
74806
|
+
conditionUsesPresenceSemantics: usesPresenceSemantics,
|
|
74807
|
+
authoringPresence: conditionalAuthoringPresenceFor(node.$when.authoringPresence),
|
|
74808
|
+
editableTarget,
|
|
74809
|
+
authoringContext: context.previewAuthoring
|
|
74810
|
+
});
|
|
74811
|
+
return decision.kind === "render";
|
|
74385
74812
|
}
|
|
74386
74813
|
function applyScopes(node, context) {
|
|
74387
74814
|
if (!node.$scopes) return context;
|
|
@@ -74531,25 +74958,26 @@ function derivePreviewTextEditableTarget(parsedBinding, context) {
|
|
|
74531
74958
|
}
|
|
74532
74959
|
function injectEditorPath(props2, node, parsedBinding, context) {
|
|
74533
74960
|
if (node.type !== "text" && node.type !== "richText") return props2;
|
|
74961
|
+
const propsWithPlaceholder = propsWithAuthoringPlaceholder(props2, node);
|
|
74534
74962
|
const linkedEntryField = derivePreviewLinkedEntryFieldBinding(
|
|
74535
74963
|
node,
|
|
74536
74964
|
parsedBinding,
|
|
74537
74965
|
context
|
|
74538
74966
|
);
|
|
74539
74967
|
if (linkedEntryField) {
|
|
74540
|
-
return { ...
|
|
74968
|
+
return { ...propsWithPlaceholder, linkedEntryField };
|
|
74541
74969
|
}
|
|
74542
74970
|
const editableTarget = derivePreviewTextEditableTarget(parsedBinding, context);
|
|
74543
74971
|
const path = previewEditableTargetToPath(editableTarget);
|
|
74544
|
-
if (!path) return
|
|
74972
|
+
if (!path) return propsWithPlaceholder;
|
|
74545
74973
|
if (node.type === "text") {
|
|
74546
74974
|
const constraints = previewEditableTargetFieldConstraints(
|
|
74547
74975
|
editableTarget,
|
|
74548
74976
|
context
|
|
74549
74977
|
);
|
|
74550
|
-
return constraints ? { ...
|
|
74978
|
+
return constraints ? { ...propsWithPlaceholder, path, ...constraints } : { ...propsWithPlaceholder, path };
|
|
74551
74979
|
}
|
|
74552
|
-
return { ...
|
|
74980
|
+
return { ...propsWithPlaceholder, path };
|
|
74553
74981
|
}
|
|
74554
74982
|
function injectMediaSlotPath(props2, node, parsedBinding, context) {
|
|
74555
74983
|
if (!parsedBinding) return props2;
|
|
@@ -74641,7 +75069,8 @@ function resolveNode2(node, context, indexFallback) {
|
|
|
74641
75069
|
blockKind: context.blockKind,
|
|
74642
75070
|
blockContent: context.blockContent,
|
|
74643
75071
|
...node.type === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {},
|
|
74644
|
-
fragmentRegistry: context.fragmentRegistry
|
|
75072
|
+
fragmentRegistry: context.fragmentRegistry,
|
|
75073
|
+
previewAuthoring: context.previewAuthoring
|
|
74645
75074
|
};
|
|
74646
75075
|
const element = React33.createElement(component, elementProps, ...children);
|
|
74647
75076
|
if (headingDecorationPlan.kind === "skip") {
|
|
@@ -75012,7 +75441,8 @@ function makeDefaultBlockComponent(args) {
|
|
|
75012
75441
|
blockBindings,
|
|
75013
75442
|
editableRouteMetadataFieldIds,
|
|
75014
75443
|
fragmentRegistry: fragmentRegistry2,
|
|
75015
|
-
imageResolveContext
|
|
75444
|
+
imageResolveContext,
|
|
75445
|
+
previewAuthoring
|
|
75016
75446
|
}) {
|
|
75017
75447
|
const perfEnv = globalThis.process?.env;
|
|
75018
75448
|
const perfEnabled = perfEnv?.DEBUG_PERF === "1" && typeof window === "undefined";
|
|
@@ -75072,7 +75502,8 @@ function makeDefaultBlockComponent(args) {
|
|
|
75072
75502
|
editableRouteMetadataFieldIds,
|
|
75073
75503
|
fragmentRegistry: fragmentRegistry2,
|
|
75074
75504
|
fieldConstraints,
|
|
75075
|
-
imageResolveContext
|
|
75505
|
+
imageResolveContext,
|
|
75506
|
+
previewAuthoring
|
|
75076
75507
|
});
|
|
75077
75508
|
if (perfStart) {
|
|
75078
75509
|
const durationMs = Date.now() - perfStart;
|
|
@@ -79114,7 +79545,7 @@ function sourceLabel(source) {
|
|
|
79114
79545
|
// ../blocks/src/PageRenderer.tsx
|
|
79115
79546
|
init_typeGuards2();
|
|
79116
79547
|
init_media3();
|
|
79117
|
-
import { Fragment as Fragment31, jsx as
|
|
79548
|
+
import { Fragment as Fragment31, jsx as jsx154, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
79118
79549
|
function PageRenderer({
|
|
79119
79550
|
theme,
|
|
79120
79551
|
page,
|
|
@@ -79126,7 +79557,8 @@ function PageRenderer({
|
|
|
79126
79557
|
routeMap,
|
|
79127
79558
|
blockOverrides,
|
|
79128
79559
|
sdkConfig,
|
|
79129
|
-
customBlocks
|
|
79560
|
+
customBlocks,
|
|
79561
|
+
previewAuthoring
|
|
79130
79562
|
}) {
|
|
79131
79563
|
const imageResolveContext = React35.useMemo(
|
|
79132
79564
|
() => resolvePageRendererImageResolveContext(dataContext),
|
|
@@ -79138,12 +79570,12 @@ function PageRenderer({
|
|
|
79138
79570
|
]
|
|
79139
79571
|
);
|
|
79140
79572
|
if (!page || page.blocks.length === 0) {
|
|
79141
|
-
return /* @__PURE__ */
|
|
79573
|
+
return /* @__PURE__ */ jsx154("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
|
|
79142
79574
|
}
|
|
79143
79575
|
const themeTokens = providedThemeTokens ?? buildThemeRuntime(theme).tokens;
|
|
79144
79576
|
const resolvedRegistry = registry ?? getDefaultComponentRegistry();
|
|
79145
79577
|
setContextResolveImageUrlContext(imageResolveContext);
|
|
79146
|
-
return /* @__PURE__ */
|
|
79578
|
+
return /* @__PURE__ */ jsx154("div", { children: page.blocks.map((block, index) => {
|
|
79147
79579
|
const blockPosition = pageBlockPosition(index, page.blocks.length);
|
|
79148
79580
|
const blockKey = block.id ?? `${block.kind}-${index}`;
|
|
79149
79581
|
const cleanKind = block.kind.replace(/^block\./, "");
|
|
@@ -79165,10 +79597,11 @@ function PageRenderer({
|
|
|
79165
79597
|
blockOverrides,
|
|
79166
79598
|
sdkConfig,
|
|
79167
79599
|
customBlocks,
|
|
79168
|
-
imageResolveContext
|
|
79600
|
+
imageResolveContext,
|
|
79601
|
+
previewAuthoring
|
|
79169
79602
|
};
|
|
79170
79603
|
if (!shouldUseWrapper) {
|
|
79171
|
-
return /* @__PURE__ */
|
|
79604
|
+
return /* @__PURE__ */ jsx154(MemoBlockSection, { ...blockSectionProps }, blockKey);
|
|
79172
79605
|
}
|
|
79173
79606
|
const wrapperClassName = [
|
|
79174
79607
|
`block-${cleanKind}`,
|
|
@@ -79176,7 +79609,7 @@ function PageRenderer({
|
|
|
79176
79609
|
].filter(Boolean).join(" ");
|
|
79177
79610
|
const styleGroup = typeof renderableContent.styleGroup === "string" ? renderableContent.styleGroup : void 0;
|
|
79178
79611
|
const blockLook = typeof renderableContent.blockLook === "string" ? renderableContent.blockLook : void 0;
|
|
79179
|
-
const blockElement = /* @__PURE__ */
|
|
79612
|
+
const blockElement = /* @__PURE__ */ jsx154(
|
|
79180
79613
|
"div",
|
|
79181
79614
|
{
|
|
79182
79615
|
className: wrapperClassName,
|
|
@@ -79188,16 +79621,16 @@ function PageRenderer({
|
|
|
79188
79621
|
"data-block-look": blockLook,
|
|
79189
79622
|
"data-page-block-position": blockPosition,
|
|
79190
79623
|
"data-style-group": styleGroup,
|
|
79191
|
-
children: /* @__PURE__ */
|
|
79624
|
+
children: /* @__PURE__ */ jsx154(MemoBlockSection, { ...blockSectionProps })
|
|
79192
79625
|
},
|
|
79193
79626
|
blockKey
|
|
79194
79627
|
);
|
|
79195
79628
|
if (!isSiteStyleTransitionStyleGroup(styleGroup)) {
|
|
79196
79629
|
return blockElement;
|
|
79197
79630
|
}
|
|
79198
|
-
return /* @__PURE__ */
|
|
79631
|
+
return /* @__PURE__ */ jsxs99(React35.Fragment, { children: [
|
|
79199
79632
|
blockElement,
|
|
79200
|
-
/* @__PURE__ */
|
|
79633
|
+
/* @__PURE__ */ jsx154(
|
|
79201
79634
|
"div",
|
|
79202
79635
|
{
|
|
79203
79636
|
"aria-hidden": "true",
|
|
@@ -79286,7 +79719,8 @@ var MemoBlockSection = React35.memo(
|
|
|
79286
79719
|
blockOverrides,
|
|
79287
79720
|
sdkConfig,
|
|
79288
79721
|
customBlocks,
|
|
79289
|
-
imageResolveContext
|
|
79722
|
+
imageResolveContext,
|
|
79723
|
+
previewAuthoring
|
|
79290
79724
|
}) {
|
|
79291
79725
|
const perfEnv = globalThis.process?.env?.DEBUG_PERF;
|
|
79292
79726
|
const perfStart = perfEnv === "1" && typeof window === "undefined" ? Date.now() : 0;
|
|
@@ -79340,8 +79774,8 @@ var MemoBlockSection = React35.memo(
|
|
|
79340
79774
|
blockId: block.id ?? null,
|
|
79341
79775
|
blockKind: block.kind
|
|
79342
79776
|
};
|
|
79343
|
-
const rendered2 = /* @__PURE__ */
|
|
79344
|
-
const node2 = wrapBlock && block.id ? /* @__PURE__ */
|
|
79777
|
+
const rendered2 = /* @__PURE__ */ jsx154(OverrideComponent, { ...baseProps });
|
|
79778
|
+
const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx154(Fragment31, { children: rendered2 });
|
|
79345
79779
|
return finish(node2, {
|
|
79346
79780
|
outcome: "overrideWithoutDefinition",
|
|
79347
79781
|
override: true,
|
|
@@ -79366,7 +79800,7 @@ var MemoBlockSection = React35.memo(
|
|
|
79366
79800
|
const rendered = fallback(
|
|
79367
79801
|
block.kind.startsWith("custom.") ? `No renderer available for block kind "${block.kind}". The custom block definition was not found (missing manifest).` : `No renderer available for block kind "${block.kind}".`
|
|
79368
79802
|
);
|
|
79369
|
-
const node = wrapBlock && block.id ? /* @__PURE__ */
|
|
79803
|
+
const node = wrapBlock && block.id ? /* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx154(Fragment31, { children: rendered });
|
|
79370
79804
|
return finish(node, { outcome: "missingDefinition", override: false });
|
|
79371
79805
|
}
|
|
79372
79806
|
const manifestHasLayout = Boolean(definition.manifest.layout) || definition.manifest.variants && Object.keys(definition.manifest.variants).length > 0;
|
|
@@ -79388,7 +79822,7 @@ var MemoBlockSection = React35.memo(
|
|
|
79388
79822
|
const rendered = fallback(
|
|
79389
79823
|
block.kind.startsWith("custom.") ? `No renderer available for block kind "${block.kind}". This custom block has no layout/variants, so it must be rendered via blockOverrides["${block.kind}"].` : `No renderer available for block kind "${block.kind}".`
|
|
79390
79824
|
);
|
|
79391
|
-
const node = wrapBlock && block.id ? /* @__PURE__ */
|
|
79825
|
+
const node = wrapBlock && block.id ? /* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx154(Fragment31, { children: rendered });
|
|
79392
79826
|
return finish(node, { outcome: "missingLayout", override: false });
|
|
79393
79827
|
}
|
|
79394
79828
|
const content = getRenderableContent(block);
|
|
@@ -79425,14 +79859,14 @@ var MemoBlockSection = React35.memo(
|
|
|
79425
79859
|
const rendered = fallback(
|
|
79426
79860
|
`Unable to render block kind "${block.kind}".`
|
|
79427
79861
|
);
|
|
79428
|
-
const node = wrapBlock && block.id ? /* @__PURE__ */
|
|
79862
|
+
const node = wrapBlock && block.id ? /* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx154(Fragment31, { children: rendered });
|
|
79429
79863
|
return finish(node, { outcome: "invalidPlaceholder", override: false });
|
|
79430
79864
|
}
|
|
79431
79865
|
} else {
|
|
79432
79866
|
const rendered = fallback(
|
|
79433
79867
|
`Invalid content for block kind "${block.kind}".`
|
|
79434
79868
|
);
|
|
79435
|
-
const node = wrapBlock && block.id ? /* @__PURE__ */
|
|
79869
|
+
const node = wrapBlock && block.id ? /* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx154(Fragment31, { children: rendered });
|
|
79436
79870
|
return finish(node, { outcome: "invalidContent", override: false });
|
|
79437
79871
|
}
|
|
79438
79872
|
try {
|
|
@@ -79470,7 +79904,7 @@ var MemoBlockSection = React35.memo(
|
|
|
79470
79904
|
};
|
|
79471
79905
|
let rendered;
|
|
79472
79906
|
if (OverrideComponent) {
|
|
79473
|
-
rendered = /* @__PURE__ */
|
|
79907
|
+
rendered = /* @__PURE__ */ jsx154(OverrideComponent, { ...baseProps });
|
|
79474
79908
|
} else {
|
|
79475
79909
|
const BlockComponent = getCachedBlockComponent(definition.manifest);
|
|
79476
79910
|
const pathBase = typeof block.id === "string" && block.id.length > 0 ? `blocks.${block.id}.` : void 0;
|
|
@@ -79495,7 +79929,7 @@ var MemoBlockSection = React35.memo(
|
|
|
79495
79929
|
};
|
|
79496
79930
|
const blockBindings = block.bindings;
|
|
79497
79931
|
const fragmentRegistry2 = getFragmentRegistry();
|
|
79498
|
-
rendered = /* @__PURE__ */
|
|
79932
|
+
rendered = /* @__PURE__ */ jsx154(
|
|
79499
79933
|
BlockComponent,
|
|
79500
79934
|
{
|
|
79501
79935
|
...baseProps,
|
|
@@ -79505,32 +79939,33 @@ var MemoBlockSection = React35.memo(
|
|
|
79505
79939
|
editableRouteMetadataFieldIds: dataContext?.editableRouteMetadataFieldIds ?? void 0,
|
|
79506
79940
|
viewModelOverrides: rootContext,
|
|
79507
79941
|
fragmentRegistry: fragmentRegistry2,
|
|
79508
|
-
imageResolveContext: resolvedImageResolveContext
|
|
79942
|
+
imageResolveContext: resolvedImageResolveContext,
|
|
79943
|
+
previewAuthoring
|
|
79509
79944
|
}
|
|
79510
79945
|
);
|
|
79511
79946
|
}
|
|
79512
79947
|
if (wrapBlock && block.id) {
|
|
79513
|
-
return finish(/* @__PURE__ */
|
|
79948
|
+
return finish(/* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered) }), {
|
|
79514
79949
|
override: Boolean(OverrideComponent),
|
|
79515
79950
|
hasResolvedData
|
|
79516
79951
|
});
|
|
79517
79952
|
}
|
|
79518
|
-
return finish(/* @__PURE__ */
|
|
79953
|
+
return finish(/* @__PURE__ */ jsx154(Fragment31, { children: rendered }), {
|
|
79519
79954
|
override: Boolean(OverrideComponent),
|
|
79520
79955
|
hasResolvedData
|
|
79521
79956
|
});
|
|
79522
79957
|
} catch {
|
|
79523
79958
|
const rendered = usePlaceholders ? fallback(`Unable to render block kind "${block.kind}".`) : fallback(`Invalid content for block kind "${block.kind}".`);
|
|
79524
|
-
const node = wrapBlock && block.id ? /* @__PURE__ */
|
|
79959
|
+
const node = wrapBlock && block.id ? /* @__PURE__ */ jsx154(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx154(Fragment31, { children: rendered });
|
|
79525
79960
|
return finish(node, { outcome: "exception", override: false });
|
|
79526
79961
|
}
|
|
79527
79962
|
},
|
|
79528
79963
|
(prev, next) => {
|
|
79529
|
-
return prev.block === next.block && prev.registry === next.registry && prev.dataContext === next.dataContext && prev.themeTokens === next.themeTokens && prev.themeConfig === next.themeConfig && prev.routeMap === next.routeMap && prev.usePlaceholders === next.usePlaceholders && prev.wrapBlock === next.wrapBlock && prev.blockOverrides === next.blockOverrides && prev.sdkConfig === next.sdkConfig && prev.customBlocks === next.customBlocks && prev.imageResolveContext === next.imageResolveContext;
|
|
79964
|
+
return prev.block === next.block && prev.registry === next.registry && prev.dataContext === next.dataContext && prev.themeTokens === next.themeTokens && prev.themeConfig === next.themeConfig && prev.routeMap === next.routeMap && prev.usePlaceholders === next.usePlaceholders && prev.wrapBlock === next.wrapBlock && prev.blockOverrides === next.blockOverrides && prev.sdkConfig === next.sdkConfig && prev.customBlocks === next.customBlocks && prev.imageResolveContext === next.imageResolveContext && prev.previewAuthoring === next.previewAuthoring;
|
|
79530
79965
|
}
|
|
79531
79966
|
);
|
|
79532
79967
|
function fallback(message) {
|
|
79533
|
-
return /* @__PURE__ */
|
|
79968
|
+
return /* @__PURE__ */ jsx154("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
|
|
79534
79969
|
}
|
|
79535
79970
|
function shouldDebugCustomBlocks() {
|
|
79536
79971
|
try {
|
|
@@ -90519,7 +90954,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
90519
90954
|
}`;
|
|
90520
90955
|
|
|
90521
90956
|
// ../theme-core/src/ThemeScopeCore.tsx
|
|
90522
|
-
import { jsx as
|
|
90957
|
+
import { jsx as jsx155, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
90523
90958
|
function ThemeScopeCore({
|
|
90524
90959
|
cssVars,
|
|
90525
90960
|
buttonCss,
|
|
@@ -90551,7 +90986,7 @@ function ThemeScopeCore({
|
|
|
90551
90986
|
containerType: "inline-size",
|
|
90552
90987
|
containerName: responsiveScope.containerName
|
|
90553
90988
|
} : cssVars;
|
|
90554
|
-
return /* @__PURE__ */
|
|
90989
|
+
return /* @__PURE__ */ jsxs100(
|
|
90555
90990
|
"div",
|
|
90556
90991
|
{
|
|
90557
90992
|
className: className ? `theme-scope ${className}` : "theme-scope",
|
|
@@ -90560,7 +90995,7 @@ function ThemeScopeCore({
|
|
|
90560
90995
|
...dataAttrs,
|
|
90561
90996
|
suppressHydrationWarning,
|
|
90562
90997
|
children: [
|
|
90563
|
-
isContainerResponsive && /* @__PURE__ */
|
|
90998
|
+
isContainerResponsive && /* @__PURE__ */ jsx155(
|
|
90564
90999
|
"style",
|
|
90565
91000
|
{
|
|
90566
91001
|
"data-container-responsive-overrides": true,
|
|
@@ -90569,70 +91004,70 @@ function ThemeScopeCore({
|
|
|
90569
91004
|
}
|
|
90570
91005
|
}
|
|
90571
91006
|
),
|
|
90572
|
-
layoutCss && /* @__PURE__ */
|
|
91007
|
+
layoutCss && /* @__PURE__ */ jsx155(
|
|
90573
91008
|
"style",
|
|
90574
91009
|
{
|
|
90575
91010
|
"data-layout-styles": true,
|
|
90576
91011
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
|
|
90577
91012
|
}
|
|
90578
91013
|
),
|
|
90579
|
-
buttonCss && /* @__PURE__ */
|
|
91014
|
+
buttonCss && /* @__PURE__ */ jsx155(
|
|
90580
91015
|
"style",
|
|
90581
91016
|
{
|
|
90582
91017
|
"data-button-effects": true,
|
|
90583
91018
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
|
|
90584
91019
|
}
|
|
90585
91020
|
),
|
|
90586
|
-
headerCss && /* @__PURE__ */
|
|
91021
|
+
headerCss && /* @__PURE__ */ jsx155(
|
|
90587
91022
|
"style",
|
|
90588
91023
|
{
|
|
90589
91024
|
"data-header-styles": true,
|
|
90590
91025
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
|
|
90591
91026
|
}
|
|
90592
91027
|
),
|
|
90593
|
-
footerCss && /* @__PURE__ */
|
|
91028
|
+
footerCss && /* @__PURE__ */ jsx155(
|
|
90594
91029
|
"style",
|
|
90595
91030
|
{
|
|
90596
91031
|
"data-footer-styles": true,
|
|
90597
91032
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
|
|
90598
91033
|
}
|
|
90599
91034
|
),
|
|
90600
|
-
cardCss && /* @__PURE__ */
|
|
91035
|
+
cardCss && /* @__PURE__ */ jsx155(
|
|
90601
91036
|
"style",
|
|
90602
91037
|
{
|
|
90603
91038
|
"data-card-styles": true,
|
|
90604
91039
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
|
|
90605
91040
|
}
|
|
90606
91041
|
),
|
|
90607
|
-
accordionCss && /* @__PURE__ */
|
|
91042
|
+
accordionCss && /* @__PURE__ */ jsx155(
|
|
90608
91043
|
"style",
|
|
90609
91044
|
{
|
|
90610
91045
|
"data-accordion-styles": true,
|
|
90611
91046
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
|
|
90612
91047
|
}
|
|
90613
91048
|
),
|
|
90614
|
-
inputCss && /* @__PURE__ */
|
|
91049
|
+
inputCss && /* @__PURE__ */ jsx155(
|
|
90615
91050
|
"style",
|
|
90616
91051
|
{
|
|
90617
91052
|
"data-input-styles": true,
|
|
90618
91053
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
|
|
90619
91054
|
}
|
|
90620
91055
|
),
|
|
90621
|
-
statusCss && /* @__PURE__ */
|
|
91056
|
+
statusCss && /* @__PURE__ */ jsx155(
|
|
90622
91057
|
"style",
|
|
90623
91058
|
{
|
|
90624
91059
|
"data-status-styles": true,
|
|
90625
91060
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
|
|
90626
91061
|
}
|
|
90627
91062
|
),
|
|
90628
|
-
progressCss && /* @__PURE__ */
|
|
91063
|
+
progressCss && /* @__PURE__ */ jsx155(
|
|
90629
91064
|
"style",
|
|
90630
91065
|
{
|
|
90631
91066
|
"data-progress-styles": true,
|
|
90632
91067
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
|
|
90633
91068
|
}
|
|
90634
91069
|
),
|
|
90635
|
-
typographyCss && /* @__PURE__ */
|
|
91070
|
+
typographyCss && /* @__PURE__ */ jsx155(
|
|
90636
91071
|
"style",
|
|
90637
91072
|
{
|
|
90638
91073
|
"data-typography-styles": true,
|
|
@@ -90641,7 +91076,7 @@ function ThemeScopeCore({
|
|
|
90641
91076
|
}
|
|
90642
91077
|
}
|
|
90643
91078
|
),
|
|
90644
|
-
eventCalendarCss && /* @__PURE__ */
|
|
91079
|
+
eventCalendarCss && /* @__PURE__ */ jsx155(
|
|
90645
91080
|
"style",
|
|
90646
91081
|
{
|
|
90647
91082
|
"data-event-calendar-styles": true,
|
|
@@ -90650,14 +91085,14 @@ function ThemeScopeCore({
|
|
|
90650
91085
|
}
|
|
90651
91086
|
}
|
|
90652
91087
|
),
|
|
90653
|
-
blockVarsCss && /* @__PURE__ */
|
|
91088
|
+
blockVarsCss && /* @__PURE__ */ jsx155(
|
|
90654
91089
|
"style",
|
|
90655
91090
|
{
|
|
90656
91091
|
"data-block-vars-styles": true,
|
|
90657
91092
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
|
|
90658
91093
|
}
|
|
90659
91094
|
),
|
|
90660
|
-
blockCustomVarsCss && /* @__PURE__ */
|
|
91095
|
+
blockCustomVarsCss && /* @__PURE__ */ jsx155(
|
|
90661
91096
|
"style",
|
|
90662
91097
|
{
|
|
90663
91098
|
"data-block-custom-vars-styles": true,
|
|
@@ -90666,7 +91101,7 @@ function ThemeScopeCore({
|
|
|
90666
91101
|
}
|
|
90667
91102
|
}
|
|
90668
91103
|
),
|
|
90669
|
-
blockCustomCss && /* @__PURE__ */
|
|
91104
|
+
blockCustomCss && /* @__PURE__ */ jsx155(
|
|
90670
91105
|
"style",
|
|
90671
91106
|
{
|
|
90672
91107
|
"data-block-custom-styles": true,
|
|
@@ -90675,14 +91110,14 @@ function ThemeScopeCore({
|
|
|
90675
91110
|
}
|
|
90676
91111
|
}
|
|
90677
91112
|
),
|
|
90678
|
-
atRulesCss && /* @__PURE__ */
|
|
91113
|
+
atRulesCss && /* @__PURE__ */ jsx155(
|
|
90679
91114
|
"style",
|
|
90680
91115
|
{
|
|
90681
91116
|
"data-at-rules-styles": true,
|
|
90682
91117
|
dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
|
|
90683
91118
|
}
|
|
90684
91119
|
),
|
|
90685
|
-
customCss && /* @__PURE__ */
|
|
91120
|
+
customCss && /* @__PURE__ */ jsx155(
|
|
90686
91121
|
"style",
|
|
90687
91122
|
{
|
|
90688
91123
|
"data-custom-theme-styles": true,
|
|
@@ -90709,7 +91144,7 @@ function buildThemeDataAttrs(axes, themeId) {
|
|
|
90709
91144
|
}
|
|
90710
91145
|
|
|
90711
91146
|
// ../theme-core/src/ThemeScope.tsx
|
|
90712
|
-
import { jsx as
|
|
91147
|
+
import { jsx as jsx156 } from "react/jsx-runtime";
|
|
90713
91148
|
function ThemeScope({
|
|
90714
91149
|
theme,
|
|
90715
91150
|
children,
|
|
@@ -90719,7 +91154,7 @@ function ThemeScope({
|
|
|
90719
91154
|
}) {
|
|
90720
91155
|
const runtime = buildThemeRuntime(theme, { themeId, responsiveMode });
|
|
90721
91156
|
const dataAttrs = buildThemeDataAttrs(theme.axes, themeId);
|
|
90722
|
-
return /* @__PURE__ */
|
|
91157
|
+
return /* @__PURE__ */ jsx156(
|
|
90723
91158
|
ThemeScopeCore,
|
|
90724
91159
|
{
|
|
90725
91160
|
cssVars: runtime.cssVars,
|
|
@@ -90781,10 +91216,10 @@ init_breakpoints();
|
|
|
90781
91216
|
|
|
90782
91217
|
// ../theme-core/src/ThemeFontLoader.tsx
|
|
90783
91218
|
import * as React36 from "react";
|
|
90784
|
-
import { Fragment as Fragment32, jsx as
|
|
91219
|
+
import { Fragment as Fragment32, jsx as jsx157, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
90785
91220
|
|
|
90786
91221
|
// ../theme-core/src/ResponsiveScope.tsx
|
|
90787
|
-
import { jsx as
|
|
91222
|
+
import { jsx as jsx158, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
90788
91223
|
function ResponsiveScope({
|
|
90789
91224
|
children,
|
|
90790
91225
|
responsiveMode = DEFAULT_THEME_RESPONSIVE_MODE,
|
|
@@ -90796,7 +91231,7 @@ function ResponsiveScope({
|
|
|
90796
91231
|
containerType: "inline-size",
|
|
90797
91232
|
containerName: responsiveScope.containerName
|
|
90798
91233
|
} : {};
|
|
90799
|
-
return /* @__PURE__ */
|
|
91234
|
+
return /* @__PURE__ */ jsxs102(
|
|
90800
91235
|
"div",
|
|
90801
91236
|
{
|
|
90802
91237
|
className: className ? `theme-scope ${className}` : "theme-scope",
|
|
@@ -90804,7 +91239,7 @@ function ResponsiveScope({
|
|
|
90804
91239
|
"data-rb-responsive-mode": responsiveScope.kind,
|
|
90805
91240
|
"data-theme-scope": "responsive",
|
|
90806
91241
|
children: [
|
|
90807
|
-
isContainerResponsive && /* @__PURE__ */
|
|
91242
|
+
isContainerResponsive && /* @__PURE__ */ jsx158(
|
|
90808
91243
|
"style",
|
|
90809
91244
|
{
|
|
90810
91245
|
"data-container-responsive-overrides": true,
|
|
@@ -90821,40 +91256,40 @@ function ResponsiveScope({
|
|
|
90821
91256
|
|
|
90822
91257
|
// ../theme-core/src/siteChrome.tsx
|
|
90823
91258
|
init_types3();
|
|
90824
|
-
import { Fragment as Fragment33, jsx as
|
|
91259
|
+
import { Fragment as Fragment33, jsx as jsx159, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
90825
91260
|
|
|
90826
91261
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
90827
91262
|
init_colorConversion();
|
|
90828
|
-
import { z as
|
|
91263
|
+
import { z as z70 } from "zod";
|
|
90829
91264
|
init_core2();
|
|
90830
91265
|
init_core3();
|
|
90831
|
-
var themeBridgeConfigSchema =
|
|
90832
|
-
tokens:
|
|
90833
|
-
typography:
|
|
90834
|
-
headingFamily:
|
|
90835
|
-
bodyFamily:
|
|
90836
|
-
headingWeight:
|
|
90837
|
-
bodyWeight:
|
|
91266
|
+
var themeBridgeConfigSchema = z70.object({
|
|
91267
|
+
tokens: z70.record(z70.string(), z70.string()),
|
|
91268
|
+
typography: z70.object({
|
|
91269
|
+
headingFamily: z70.string().optional(),
|
|
91270
|
+
bodyFamily: z70.string().optional(),
|
|
91271
|
+
headingWeight: z70.number().optional(),
|
|
91272
|
+
bodyWeight: z70.number().optional()
|
|
90838
91273
|
}).optional(),
|
|
90839
|
-
spacing:
|
|
90840
|
-
corners:
|
|
90841
|
-
shadows:
|
|
90842
|
-
components:
|
|
90843
|
-
buttons:
|
|
90844
|
-
|
|
90845
|
-
|
|
90846
|
-
variants:
|
|
91274
|
+
spacing: z70.enum(["comfortable", "standard", "dense"]).optional(),
|
|
91275
|
+
corners: z70.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
91276
|
+
shadows: z70.enum(["none", "low", "medium", "high"]).optional(),
|
|
91277
|
+
components: z70.object({
|
|
91278
|
+
buttons: z70.union([
|
|
91279
|
+
z70.boolean(),
|
|
91280
|
+
z70.object({
|
|
91281
|
+
variants: z70.array(z70.enum(["primary", "secondary", "outline", "ghost"])).optional()
|
|
90847
91282
|
})
|
|
90848
91283
|
]).optional(),
|
|
90849
|
-
cards:
|
|
90850
|
-
|
|
90851
|
-
|
|
90852
|
-
variants:
|
|
91284
|
+
cards: z70.union([
|
|
91285
|
+
z70.boolean(),
|
|
91286
|
+
z70.object({
|
|
91287
|
+
variants: z70.array(z70.enum(["default", "elevated", "outlined"])).optional()
|
|
90853
91288
|
})
|
|
90854
91289
|
]).optional(),
|
|
90855
|
-
inputs:
|
|
91290
|
+
inputs: z70.boolean().optional()
|
|
90856
91291
|
}).optional(),
|
|
90857
|
-
overrides:
|
|
91292
|
+
overrides: z70.record(z70.string(), z70.string()).optional()
|
|
90858
91293
|
}).passthrough();
|
|
90859
91294
|
|
|
90860
91295
|
// ../theme-core/src/index.ts
|
|
@@ -90973,7 +91408,7 @@ function ThemeScope2(props2) {
|
|
|
90973
91408
|
}
|
|
90974
91409
|
|
|
90975
91410
|
// src/rendering/themeRuntime.tsx
|
|
90976
|
-
import { Fragment as Fragment34, jsx as
|
|
91411
|
+
import { Fragment as Fragment34, jsx as jsx160 } from "react/jsx-runtime";
|
|
90977
91412
|
var defaultLayoutThemeRuntime = {
|
|
90978
91413
|
kind: "cms-theme"
|
|
90979
91414
|
};
|
|
@@ -91002,18 +91437,18 @@ function renderWithSdkThemeRuntime({
|
|
|
91002
91437
|
}) {
|
|
91003
91438
|
switch (themeRuntime.kind) {
|
|
91004
91439
|
case "cms-theme":
|
|
91005
|
-
return /* @__PURE__ */
|
|
91440
|
+
return /* @__PURE__ */ jsx160(ThemeScope2, { theme, responsiveMode: themeRuntime.responsiveMode, children });
|
|
91006
91441
|
case "responsive-only":
|
|
91007
|
-
return /* @__PURE__ */
|
|
91442
|
+
return /* @__PURE__ */ jsx160(ResponsiveScope, { responsiveMode: themeRuntime.responsiveMode, children });
|
|
91008
91443
|
case "none":
|
|
91009
|
-
return /* @__PURE__ */
|
|
91444
|
+
return /* @__PURE__ */ jsx160(Fragment34, { children });
|
|
91010
91445
|
default:
|
|
91011
91446
|
return assertNever(themeRuntime);
|
|
91012
91447
|
}
|
|
91013
91448
|
}
|
|
91014
91449
|
|
|
91015
91450
|
// src/rendering/components/pageShared.tsx
|
|
91016
|
-
import { jsx as
|
|
91451
|
+
import { jsx as jsx161 } from "react/jsx-runtime";
|
|
91017
91452
|
function toPageHydrationBootstrapConfig(props2) {
|
|
91018
91453
|
return {
|
|
91019
91454
|
siteId: props2.siteId,
|
|
@@ -91047,7 +91482,7 @@ function PageContent({
|
|
|
91047
91482
|
}) {
|
|
91048
91483
|
const baseTokens = providedTokens ?? buildThemeRuntime2(theme).tokens;
|
|
91049
91484
|
const themeTokens = sdkConfig?.theme?.palette ? { ...baseTokens, palette: { ...baseTokens.palette, ...sdkConfig.theme.palette } } : baseTokens;
|
|
91050
|
-
const content = /* @__PURE__ */
|
|
91485
|
+
const content = /* @__PURE__ */ jsx161(
|
|
91051
91486
|
PageRenderer2,
|
|
91052
91487
|
{
|
|
91053
91488
|
theme,
|
|
@@ -91093,12 +91528,12 @@ function PageContent({
|
|
|
91093
91528
|
}
|
|
91094
91529
|
|
|
91095
91530
|
// src/rendering/components/Page.tsx
|
|
91096
|
-
import { Fragment as Fragment35, jsx as
|
|
91531
|
+
import { Fragment as Fragment35, jsx as jsx162, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
91097
91532
|
var HydratorWithContextProps = BlocksIslandsHydrator;
|
|
91098
91533
|
function Page(props2) {
|
|
91099
|
-
return /* @__PURE__ */
|
|
91100
|
-
/* @__PURE__ */
|
|
91101
|
-
/* @__PURE__ */
|
|
91534
|
+
return /* @__PURE__ */ jsxs104(Fragment35, { children: [
|
|
91535
|
+
/* @__PURE__ */ jsx162(HydratorWithContextProps, { ...toPageHydrationBootstrapConfig(props2) }),
|
|
91536
|
+
/* @__PURE__ */ jsx162(PageContent, { ...props2 })
|
|
91102
91537
|
] });
|
|
91103
91538
|
}
|
|
91104
91539
|
|
|
@@ -91536,7 +91971,7 @@ function buildLogo(logo, fallbackAlt) {
|
|
|
91536
91971
|
}
|
|
91537
91972
|
|
|
91538
91973
|
// src/rendering/components/Layout.tsx
|
|
91539
|
-
import { Fragment as Fragment36, jsx as
|
|
91974
|
+
import { Fragment as Fragment36, jsx as jsx163, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
91540
91975
|
async function Layout({
|
|
91541
91976
|
siteData: providedSiteData,
|
|
91542
91977
|
client,
|
|
@@ -91644,7 +92079,7 @@ async function Layout({
|
|
|
91644
92079
|
isSdkSite,
|
|
91645
92080
|
mode: theme.footer?.mode
|
|
91646
92081
|
});
|
|
91647
|
-
const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */
|
|
92082
|
+
const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx163(
|
|
91648
92083
|
PageRenderer2,
|
|
91649
92084
|
{
|
|
91650
92085
|
theme,
|
|
@@ -91680,14 +92115,14 @@ async function Layout({
|
|
|
91680
92115
|
themeConfig: blocksTheme,
|
|
91681
92116
|
viewModelOverrides
|
|
91682
92117
|
}) : null;
|
|
91683
|
-
footerElement = footerPlan.mode === "default+blocks" ? /* @__PURE__ */
|
|
92118
|
+
footerElement = footerPlan.mode === "default+blocks" ? /* @__PURE__ */ jsxs105(Fragment36, { children: [
|
|
91684
92119
|
footerBlocksElement,
|
|
91685
92120
|
defaultFooterElement
|
|
91686
92121
|
] }) : footerPlan.mode === "blocks" ? footerBlocksElement : footerPlan.mode === "none" ? null : defaultFooterElement;
|
|
91687
92122
|
} else if (typeof footer === "function") {
|
|
91688
92123
|
footerElement = footer(footerData);
|
|
91689
92124
|
}
|
|
91690
|
-
const content = /* @__PURE__ */
|
|
92125
|
+
const content = /* @__PURE__ */ jsxs105(Fragment36, { children: [
|
|
91691
92126
|
headerElement,
|
|
91692
92127
|
children,
|
|
91693
92128
|
footerElement
|
|
@@ -91941,14 +92376,21 @@ function coercePayload(payload) {
|
|
|
91941
92376
|
|
|
91942
92377
|
// ../blocks/src/system/data/prefetchBlockData.ts
|
|
91943
92378
|
async function prefetchBlockData(page, context, options) {
|
|
91944
|
-
const {
|
|
92379
|
+
const {
|
|
92380
|
+
apiClient,
|
|
92381
|
+
isValidEndpoint,
|
|
92382
|
+
onError,
|
|
92383
|
+
getCustomBlockLoaders,
|
|
92384
|
+
getBlockDefinition: getBlockDefinition2 = getBlockDefinition,
|
|
92385
|
+
resolveParamsBindings: resolveParamsBindings2 = resolveParamsBindings
|
|
92386
|
+
} = options;
|
|
91945
92387
|
const results = {};
|
|
91946
92388
|
const tasks = [];
|
|
91947
92389
|
for (const block of page.blocks) {
|
|
91948
92390
|
const blockId = block.id;
|
|
91949
92391
|
if (!blockId) continue;
|
|
91950
92392
|
let loaders;
|
|
91951
|
-
const def =
|
|
92393
|
+
const def = getBlockDefinition2(block.kind);
|
|
91952
92394
|
if (def) {
|
|
91953
92395
|
loaders = normalizeDataLoaders(def);
|
|
91954
92396
|
} else if (getCustomBlockLoaders) {
|
|
@@ -91971,14 +92413,14 @@ async function prefetchBlockData(page, context, options) {
|
|
|
91971
92413
|
continue;
|
|
91972
92414
|
}
|
|
91973
92415
|
if (typeof loader.when !== "undefined") {
|
|
91974
|
-
const resolvedWhen =
|
|
92416
|
+
const resolvedWhen = resolveParamsBindings2(loader.when, vm, {
|
|
91975
92417
|
blockKind: block.kind
|
|
91976
92418
|
});
|
|
91977
92419
|
if (resolvedWhen !== true) {
|
|
91978
92420
|
continue;
|
|
91979
92421
|
}
|
|
91980
92422
|
}
|
|
91981
|
-
const rawParams =
|
|
92423
|
+
const rawParams = resolveParamsBindings2(loader.params, vm, {
|
|
91982
92424
|
blockKind: block.kind
|
|
91983
92425
|
});
|
|
91984
92426
|
const params = normalizeParams(rawParams);
|
|
@@ -92021,7 +92463,8 @@ var SUPPORTED_LOADER_ENDPOINTS = [
|
|
|
92021
92463
|
"listPublicPasses",
|
|
92022
92464
|
"listPublicMemberships",
|
|
92023
92465
|
"getPublicFormById",
|
|
92024
|
-
"getPublicBookingServices"
|
|
92466
|
+
"getPublicBookingServices",
|
|
92467
|
+
"getPublicWeeklySlotAvailability"
|
|
92025
92468
|
];
|
|
92026
92469
|
|
|
92027
92470
|
// ../blocks/src/system/data/normalizeLoaderParams.ts
|
|
@@ -92061,6 +92504,10 @@ function normalizeLoaderParams(endpoint, params, context) {
|
|
|
92061
92504
|
ensureSiteId(out, context);
|
|
92062
92505
|
return out;
|
|
92063
92506
|
}
|
|
92507
|
+
if (endpoint === "getPublicWeeklySlotAvailability") {
|
|
92508
|
+
ensureSiteId(out, context);
|
|
92509
|
+
return out;
|
|
92510
|
+
}
|
|
92064
92511
|
if (endpoint === "listPublicEvents") {
|
|
92065
92512
|
ensureSiteId(out, context);
|
|
92066
92513
|
return out;
|
|
@@ -93136,6 +93583,94 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
93136
93583
|
responseKind: "json",
|
|
93137
93584
|
errors: ["resource:not_found", "server:internal_error"]
|
|
93138
93585
|
},
|
|
93586
|
+
listAppointmentReservations: {
|
|
93587
|
+
path: "/sites/{siteId}/bookings/appointment-reservations",
|
|
93588
|
+
method: "GET",
|
|
93589
|
+
auth: "user",
|
|
93590
|
+
responseKind: "json",
|
|
93591
|
+
errors: []
|
|
93592
|
+
},
|
|
93593
|
+
createAppointmentReservation: {
|
|
93594
|
+
path: "/sites/{siteId}/bookings/appointment-reservations",
|
|
93595
|
+
method: "POST",
|
|
93596
|
+
auth: "user",
|
|
93597
|
+
responseKind: "json",
|
|
93598
|
+
errors: [
|
|
93599
|
+
"validation:invalid_input",
|
|
93600
|
+
"resource:not_found",
|
|
93601
|
+
"resource:conflict",
|
|
93602
|
+
"server:internal_error"
|
|
93603
|
+
]
|
|
93604
|
+
},
|
|
93605
|
+
getAppointmentReservation: {
|
|
93606
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
|
|
93607
|
+
method: "GET",
|
|
93608
|
+
auth: "user",
|
|
93609
|
+
responseKind: "json",
|
|
93610
|
+
errors: ["resource:not_found", "server:internal_error"]
|
|
93611
|
+
},
|
|
93612
|
+
updateAppointmentReservation: {
|
|
93613
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
|
|
93614
|
+
method: "PUT",
|
|
93615
|
+
auth: "user",
|
|
93616
|
+
responseKind: "json",
|
|
93617
|
+
errors: [
|
|
93618
|
+
"validation:invalid_input",
|
|
93619
|
+
"resource:not_found",
|
|
93620
|
+
"resource:conflict",
|
|
93621
|
+
"server:internal_error"
|
|
93622
|
+
]
|
|
93623
|
+
},
|
|
93624
|
+
pauseAppointmentReservation: {
|
|
93625
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
|
|
93626
|
+
method: "POST",
|
|
93627
|
+
auth: "user",
|
|
93628
|
+
responseKind: "json",
|
|
93629
|
+
errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
|
|
93630
|
+
},
|
|
93631
|
+
resumeAppointmentReservation: {
|
|
93632
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
|
|
93633
|
+
method: "POST",
|
|
93634
|
+
auth: "user",
|
|
93635
|
+
responseKind: "json",
|
|
93636
|
+
errors: ["resource:not_found", "resource:conflict", "server:internal_error"]
|
|
93637
|
+
},
|
|
93638
|
+
endAppointmentReservation: {
|
|
93639
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
|
|
93640
|
+
method: "POST",
|
|
93641
|
+
auth: "user",
|
|
93642
|
+
responseKind: "json",
|
|
93643
|
+
errors: [
|
|
93644
|
+
"validation:invalid_input",
|
|
93645
|
+
"resource:not_found",
|
|
93646
|
+
"resource:conflict",
|
|
93647
|
+
"server:internal_error"
|
|
93648
|
+
]
|
|
93649
|
+
},
|
|
93650
|
+
previewAppointmentReservationRun: {
|
|
93651
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
|
|
93652
|
+
method: "POST",
|
|
93653
|
+
auth: "user",
|
|
93654
|
+
responseKind: "json",
|
|
93655
|
+
errors: [
|
|
93656
|
+
"validation:invalid_input",
|
|
93657
|
+
"resource:not_found",
|
|
93658
|
+
"resource:conflict",
|
|
93659
|
+
"server:internal_error"
|
|
93660
|
+
]
|
|
93661
|
+
},
|
|
93662
|
+
createAppointmentReservationRun: {
|
|
93663
|
+
path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
|
|
93664
|
+
method: "POST",
|
|
93665
|
+
auth: "user",
|
|
93666
|
+
responseKind: "json",
|
|
93667
|
+
errors: [
|
|
93668
|
+
"validation:invalid_input",
|
|
93669
|
+
"resource:not_found",
|
|
93670
|
+
"resource:conflict",
|
|
93671
|
+
"server:internal_error"
|
|
93672
|
+
]
|
|
93673
|
+
},
|
|
93139
93674
|
createTeamMemberProfile: {
|
|
93140
93675
|
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
|
|
93141
93676
|
method: "POST",
|
|
@@ -95592,6 +96127,18 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
95592
96127
|
responseKind: "json",
|
|
95593
96128
|
errors: ["validation:invalid_input", "server:internal_error"]
|
|
95594
96129
|
},
|
|
96130
|
+
resolveRouteDecision: {
|
|
96131
|
+
path: "/sites/{siteId}/route-decision",
|
|
96132
|
+
method: "GET",
|
|
96133
|
+
tags: [
|
|
96134
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
96135
|
+
TAG_TEMPLATES.siteRedirects,
|
|
96136
|
+
TAG_TEMPLATES.siteRouteOutcomes
|
|
96137
|
+
],
|
|
96138
|
+
auth: "public",
|
|
96139
|
+
responseKind: "json",
|
|
96140
|
+
errors: ["validation:invalid_input", "server:internal_error"]
|
|
96141
|
+
},
|
|
95595
96142
|
getPageByPath: {
|
|
95596
96143
|
path: "/sites/{siteId}/pages",
|
|
95597
96144
|
method: "GET",
|
|
@@ -95730,6 +96277,15 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
95730
96277
|
auth: "public",
|
|
95731
96278
|
responseKind: "json"
|
|
95732
96279
|
},
|
|
96280
|
+
getPublicWeeklySlotAvailability: {
|
|
96281
|
+
path: "/public/bookings/weekly-slot-availability",
|
|
96282
|
+
method: "GET",
|
|
96283
|
+
revalidate: 60,
|
|
96284
|
+
tags: ["site-{siteId}"],
|
|
96285
|
+
auth: "public",
|
|
96286
|
+
responseKind: "json",
|
|
96287
|
+
errors: []
|
|
96288
|
+
},
|
|
95733
96289
|
createPublicBookingAppointment: {
|
|
95734
96290
|
path: "/public/bookings/appointments",
|
|
95735
96291
|
method: "POST",
|
|
@@ -98551,16 +99107,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
98551
99107
|
};
|
|
98552
99108
|
|
|
98553
99109
|
// ../api/src/accessAdmin.ts
|
|
98554
|
-
import { z as
|
|
98555
|
-
var managedDomainAddOnPricingSnapshotSchema =
|
|
98556
|
-
formulaVersion:
|
|
98557
|
-
conversionRule:
|
|
98558
|
-
registrarAnnualCost:
|
|
98559
|
-
registrarCurrency:
|
|
98560
|
-
includedAnnualAllowance:
|
|
98561
|
-
includedAnnualAllowanceCurrency:
|
|
98562
|
-
monthlyAmountCents:
|
|
98563
|
-
monthlyCurrency:
|
|
99110
|
+
import { z as z71 } from "zod";
|
|
99111
|
+
var managedDomainAddOnPricingSnapshotSchema = z71.object({
|
|
99112
|
+
formulaVersion: z71.literal("managed-domain-overage-v1"),
|
|
99113
|
+
conversionRule: z71.literal("usd-to-gbp-1-to-1-v1"),
|
|
99114
|
+
registrarAnnualCost: z71.number().nonnegative(),
|
|
99115
|
+
registrarCurrency: z71.literal("USD"),
|
|
99116
|
+
includedAnnualAllowance: z71.number().nonnegative(),
|
|
99117
|
+
includedAnnualAllowanceCurrency: z71.literal("USD"),
|
|
99118
|
+
monthlyAmountCents: z71.number().int().nonnegative(),
|
|
99119
|
+
monthlyCurrency: z71.literal("gbp")
|
|
98564
99120
|
});
|
|
98565
99121
|
|
|
98566
99122
|
// ../api/src/media.ts
|
|
@@ -98578,60 +99134,60 @@ var SITE_BACKGROUND_ASSET_USES2 = [
|
|
|
98578
99134
|
];
|
|
98579
99135
|
|
|
98580
99136
|
// ../api/src/navigation/contracts.ts
|
|
98581
|
-
import { z as
|
|
98582
|
-
var portalLinkPayloadSchema =
|
|
98583
|
-
kind:
|
|
98584
|
-
path:
|
|
98585
|
-
labels:
|
|
98586
|
-
loggedOut:
|
|
98587
|
-
loggedIn:
|
|
99137
|
+
import { z as z72 } from "zod";
|
|
99138
|
+
var portalLinkPayloadSchema = z72.object({
|
|
99139
|
+
kind: z72.literal("portal"),
|
|
99140
|
+
path: z72.string().trim().startsWith("/").optional(),
|
|
99141
|
+
labels: z72.object({
|
|
99142
|
+
loggedOut: z72.string().trim().min(1).optional(),
|
|
99143
|
+
loggedIn: z72.string().trim().min(1).optional()
|
|
98588
99144
|
}).optional()
|
|
98589
99145
|
});
|
|
98590
|
-
var cartLinkLabelConfigSchema =
|
|
98591
|
-
|
|
98592
|
-
kind:
|
|
99146
|
+
var cartLinkLabelConfigSchema = z72.discriminatedUnion("kind", [
|
|
99147
|
+
z72.object({
|
|
99148
|
+
kind: z72.literal("icon-only")
|
|
98593
99149
|
}),
|
|
98594
|
-
|
|
98595
|
-
kind:
|
|
98596
|
-
label:
|
|
99150
|
+
z72.object({
|
|
99151
|
+
kind: z72.literal("icon-with-label"),
|
|
99152
|
+
label: z72.string().trim().min(1)
|
|
98597
99153
|
})
|
|
98598
99154
|
]);
|
|
98599
|
-
var cartLinkPayloadSchema =
|
|
98600
|
-
kind:
|
|
98601
|
-
badge:
|
|
99155
|
+
var cartLinkPayloadSchema = z72.object({
|
|
99156
|
+
kind: z72.literal("cart"),
|
|
99157
|
+
badge: z72.enum(["show-count", "hidden"]),
|
|
98602
99158
|
label: cartLinkLabelConfigSchema
|
|
98603
99159
|
});
|
|
98604
|
-
var internalLinkPayloadSchema =
|
|
98605
|
-
kind:
|
|
98606
|
-
routeId:
|
|
98607
|
-
entityId:
|
|
98608
|
-
entityType:
|
|
98609
|
-
href:
|
|
98610
|
-
title:
|
|
98611
|
-
typeLabel:
|
|
98612
|
-
contentTypeKey:
|
|
98613
|
-
contentTypeName:
|
|
98614
|
-
updatedAt:
|
|
99160
|
+
var internalLinkPayloadSchema = z72.object({
|
|
99161
|
+
kind: z72.literal("internal"),
|
|
99162
|
+
routeId: z72.string().uuid(),
|
|
99163
|
+
entityId: z72.string().uuid(),
|
|
99164
|
+
entityType: z72.enum(["page", "content"]),
|
|
99165
|
+
href: z72.string().min(1),
|
|
99166
|
+
title: z72.string().min(1),
|
|
99167
|
+
typeLabel: z72.string().min(1),
|
|
99168
|
+
contentTypeKey: z72.string().nullable().optional(),
|
|
99169
|
+
contentTypeName: z72.string().nullable().optional(),
|
|
99170
|
+
updatedAt: z72.string().nullable().optional()
|
|
98615
99171
|
}).passthrough();
|
|
98616
|
-
var externalLinkSchema2 =
|
|
98617
|
-
kind:
|
|
99172
|
+
var externalLinkSchema2 = z72.object({
|
|
99173
|
+
kind: z72.literal("external"),
|
|
98618
99174
|
// Navigation external links are expected to be absolute URLs.
|
|
98619
|
-
href:
|
|
99175
|
+
href: z72.string().url()
|
|
98620
99176
|
});
|
|
98621
|
-
var customLinkSchema2 =
|
|
98622
|
-
kind:
|
|
98623
|
-
href:
|
|
99177
|
+
var customLinkSchema2 = z72.object({
|
|
99178
|
+
kind: z72.literal("url"),
|
|
99179
|
+
href: z72.string().min(1)
|
|
98624
99180
|
});
|
|
98625
|
-
var pageLinkSchema2 =
|
|
98626
|
-
kind:
|
|
98627
|
-
identifier:
|
|
99181
|
+
var pageLinkSchema2 = z72.object({
|
|
99182
|
+
kind: z72.literal("page"),
|
|
99183
|
+
identifier: z72.string().min(1)
|
|
98628
99184
|
});
|
|
98629
|
-
var entryLinkSchema2 =
|
|
98630
|
-
kind:
|
|
98631
|
-
contentType:
|
|
98632
|
-
identifier:
|
|
99185
|
+
var entryLinkSchema2 = z72.object({
|
|
99186
|
+
kind: z72.literal("entry"),
|
|
99187
|
+
contentType: z72.string().min(1),
|
|
99188
|
+
identifier: z72.string().min(1)
|
|
98633
99189
|
});
|
|
98634
|
-
var linkPayloadSchema =
|
|
99190
|
+
var linkPayloadSchema = z72.discriminatedUnion("kind", [
|
|
98635
99191
|
internalLinkPayloadSchema,
|
|
98636
99192
|
pageLinkSchema2,
|
|
98637
99193
|
entryLinkSchema2,
|
|
@@ -98648,27 +99204,27 @@ var navigationLinkInputSchemaOptions = [
|
|
|
98648
99204
|
portalLinkPayloadSchema,
|
|
98649
99205
|
cartLinkPayloadSchema
|
|
98650
99206
|
];
|
|
98651
|
-
var navigationLinkInputSchema =
|
|
99207
|
+
var navigationLinkInputSchema = z72.discriminatedUnion(
|
|
98652
99208
|
"kind",
|
|
98653
99209
|
navigationLinkInputSchemaOptions
|
|
98654
99210
|
);
|
|
98655
99211
|
|
|
98656
99212
|
// ../api/src/sdkConfig/contracts.ts
|
|
98657
|
-
import { z as
|
|
99213
|
+
import { z as z73 } from "zod";
|
|
98658
99214
|
function unsafeRetypeZodSchema(schema) {
|
|
98659
99215
|
return schema;
|
|
98660
99216
|
}
|
|
98661
|
-
var navIdListSchema =
|
|
99217
|
+
var navIdListSchema = z73.preprocess((value) => {
|
|
98662
99218
|
if (!Array.isArray(value)) return void 0;
|
|
98663
99219
|
const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
|
|
98664
99220
|
return filtered.length > 0 ? filtered : void 0;
|
|
98665
|
-
},
|
|
98666
|
-
var dashboardNavVisibilityBaseSchema =
|
|
98667
|
-
mode:
|
|
99221
|
+
}, z73.array(z73.string()).max(200).optional());
|
|
99222
|
+
var dashboardNavVisibilityBaseSchema = z73.object({
|
|
99223
|
+
mode: z73.enum(["augment", "restrict"]).optional(),
|
|
98668
99224
|
allowIds: navIdListSchema,
|
|
98669
99225
|
denyIds: navIdListSchema
|
|
98670
99226
|
}).strip();
|
|
98671
|
-
var dashboardNavVisibilityRolesSchema =
|
|
99227
|
+
var dashboardNavVisibilityRolesSchema = z73.object({
|
|
98672
99228
|
administrator: dashboardNavVisibilityBaseSchema.optional(),
|
|
98673
99229
|
editor: dashboardNavVisibilityBaseSchema.optional(),
|
|
98674
99230
|
team_member: dashboardNavVisibilityBaseSchema.optional()
|
|
@@ -98676,63 +99232,63 @@ var dashboardNavVisibilityRolesSchema = z72.object({
|
|
|
98676
99232
|
var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
|
|
98677
99233
|
roles: dashboardNavVisibilityRolesSchema
|
|
98678
99234
|
}).strip();
|
|
98679
|
-
var dashboardNavigationConfigSchema =
|
|
99235
|
+
var dashboardNavigationConfigSchema = z73.object({
|
|
98680
99236
|
siteNav: dashboardNavVisibilitySchema.optional(),
|
|
98681
99237
|
settingsNav: dashboardNavVisibilitySchema.optional()
|
|
98682
99238
|
}).strip();
|
|
98683
|
-
var dashboardConfigSchema =
|
|
98684
|
-
previewEditingEnabled:
|
|
99239
|
+
var dashboardConfigSchema = z73.object({
|
|
99240
|
+
previewEditingEnabled: z73.boolean().optional(),
|
|
98685
99241
|
navigation: dashboardNavigationConfigSchema.optional()
|
|
98686
99242
|
}).strip();
|
|
98687
99243
|
var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
|
|
98688
99244
|
var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
|
|
98689
|
-
var sdkLoaderEndpointSchema =
|
|
98690
|
-
var loaderFallbackScalarSchema =
|
|
98691
|
-
|
|
98692
|
-
|
|
98693
|
-
|
|
98694
|
-
|
|
99245
|
+
var sdkLoaderEndpointSchema = z73.enum(SUPPORTED_LOADER_ENDPOINTS);
|
|
99246
|
+
var loaderFallbackScalarSchema = z73.union([
|
|
99247
|
+
z73.string(),
|
|
99248
|
+
z73.number(),
|
|
99249
|
+
z73.boolean(),
|
|
99250
|
+
z73.null()
|
|
98695
99251
|
]);
|
|
98696
|
-
var loaderParamBindingSchema =
|
|
98697
|
-
$bind:
|
|
98698
|
-
from:
|
|
99252
|
+
var loaderParamBindingSchema = z73.object({
|
|
99253
|
+
$bind: z73.object({
|
|
99254
|
+
from: z73.string().min(1, "Binding path is required"),
|
|
98699
99255
|
fallback: loaderFallbackScalarSchema.optional()
|
|
98700
99256
|
})
|
|
98701
99257
|
});
|
|
98702
|
-
var loaderParamValueSchema =
|
|
98703
|
-
|
|
98704
|
-
|
|
98705
|
-
|
|
99258
|
+
var loaderParamValueSchema = z73.union([
|
|
99259
|
+
z73.string(),
|
|
99260
|
+
z73.number(),
|
|
99261
|
+
z73.boolean(),
|
|
98706
99262
|
loaderParamBindingSchema
|
|
98707
99263
|
]);
|
|
98708
|
-
var sdkConfigLoaderSchema =
|
|
99264
|
+
var sdkConfigLoaderSchema = z73.object({
|
|
98709
99265
|
endpoint: sdkLoaderEndpointSchema,
|
|
98710
|
-
params:
|
|
98711
|
-
mode:
|
|
99266
|
+
params: z73.record(z73.string(), loaderParamValueSchema),
|
|
99267
|
+
mode: z73.enum(["server", "client"]).default("server")
|
|
98712
99268
|
});
|
|
98713
|
-
var sdkDataLoadersSchema =
|
|
98714
|
-
var sdkCustomBlockIdSchema =
|
|
99269
|
+
var sdkDataLoadersSchema = z73.record(z73.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
|
|
99270
|
+
var sdkCustomBlockIdSchema = z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
|
|
98715
99271
|
message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
|
|
98716
99272
|
}).transform((value) => value);
|
|
98717
|
-
var sdkCustomBlockInputSchema =
|
|
99273
|
+
var sdkCustomBlockInputSchema = z73.object({
|
|
98718
99274
|
id: sdkCustomBlockIdSchema,
|
|
98719
|
-
title:
|
|
98720
|
-
titleSource:
|
|
98721
|
-
description:
|
|
99275
|
+
title: z73.string().min(1),
|
|
99276
|
+
titleSource: z73.union([z73.string().min(1), z73.array(z73.string().min(1)).min(1)]).optional(),
|
|
99277
|
+
description: z73.string().optional(),
|
|
98722
99278
|
category: blockCategoryEnum,
|
|
98723
|
-
icon:
|
|
98724
|
-
tags:
|
|
99279
|
+
icon: z73.string().optional(),
|
|
99280
|
+
tags: z73.array(z73.string()).optional(),
|
|
98725
99281
|
fields: fieldDefinitionInputSchema.array().min(1),
|
|
98726
99282
|
dataLoaders: sdkDataLoadersSchema,
|
|
98727
99283
|
layout: NodeSchema.optional(),
|
|
98728
|
-
variants:
|
|
98729
|
-
defaultVariant:
|
|
98730
|
-
variantOptions:
|
|
98731
|
-
|
|
98732
|
-
|
|
98733
|
-
label:
|
|
98734
|
-
description:
|
|
98735
|
-
icon:
|
|
99284
|
+
variants: z73.record(z73.string().min(1), NodeSchema).optional(),
|
|
99285
|
+
defaultVariant: z73.string().min(1).optional(),
|
|
99286
|
+
variantOptions: z73.record(
|
|
99287
|
+
z73.string().min(1),
|
|
99288
|
+
z73.object({
|
|
99289
|
+
label: z73.string().min(1).optional(),
|
|
99290
|
+
description: z73.string().min(1).optional(),
|
|
99291
|
+
icon: z73.string().min(1).optional()
|
|
98736
99292
|
})
|
|
98737
99293
|
).optional(),
|
|
98738
99294
|
previewCustomize: previewCustomizeManifestCurationSchema.optional()
|
|
@@ -98743,7 +99299,7 @@ var sdkCustomBlockInputSchema = z72.object({
|
|
|
98743
99299
|
const exists = data.fields.some((field) => field.id === source);
|
|
98744
99300
|
if (!exists) {
|
|
98745
99301
|
ctx.addIssue({
|
|
98746
|
-
code:
|
|
99302
|
+
code: z73.ZodIssueCode.custom,
|
|
98747
99303
|
message: `titleSource must reference a valid field ID (got "${source}")`,
|
|
98748
99304
|
path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
|
|
98749
99305
|
});
|
|
@@ -98752,7 +99308,7 @@ var sdkCustomBlockInputSchema = z72.object({
|
|
|
98752
99308
|
}
|
|
98753
99309
|
if (data.layout && data.variants) {
|
|
98754
99310
|
ctx.addIssue({
|
|
98755
|
-
code:
|
|
99311
|
+
code: z73.ZodIssueCode.custom,
|
|
98756
99312
|
message: "Custom block must define either `layout` or `variants`, not both",
|
|
98757
99313
|
path: ["variants"]
|
|
98758
99314
|
});
|
|
@@ -98761,14 +99317,14 @@ var sdkCustomBlockInputSchema = z72.object({
|
|
|
98761
99317
|
const keys = Object.keys(data.variants);
|
|
98762
99318
|
if (keys.length === 0) {
|
|
98763
99319
|
ctx.addIssue({
|
|
98764
|
-
code:
|
|
99320
|
+
code: z73.ZodIssueCode.custom,
|
|
98765
99321
|
message: "`variants` must contain at least one variant key",
|
|
98766
99322
|
path: ["variants"]
|
|
98767
99323
|
});
|
|
98768
99324
|
}
|
|
98769
99325
|
if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
|
|
98770
99326
|
ctx.addIssue({
|
|
98771
|
-
code:
|
|
99327
|
+
code: z73.ZodIssueCode.custom,
|
|
98772
99328
|
message: "`defaultVariant` must be a key present in `variants`",
|
|
98773
99329
|
path: ["defaultVariant"]
|
|
98774
99330
|
});
|
|
@@ -98777,7 +99333,7 @@ var sdkCustomBlockInputSchema = z72.object({
|
|
|
98777
99333
|
for (const key of Object.keys(data.variantOptions)) {
|
|
98778
99334
|
if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
|
|
98779
99335
|
ctx.addIssue({
|
|
98780
|
-
code:
|
|
99336
|
+
code: z73.ZodIssueCode.custom,
|
|
98781
99337
|
message: "`variantOptions` key must exist in `variants`",
|
|
98782
99338
|
path: ["variantOptions", key]
|
|
98783
99339
|
});
|
|
@@ -98786,78 +99342,78 @@ var sdkCustomBlockInputSchema = z72.object({
|
|
|
98786
99342
|
}
|
|
98787
99343
|
}
|
|
98788
99344
|
});
|
|
98789
|
-
var sdkBlockFieldExtensionInputSchema =
|
|
99345
|
+
var sdkBlockFieldExtensionInputSchema = z73.object({
|
|
98790
99346
|
fields: fieldDefinitionInputSchema.array().min(1)
|
|
98791
99347
|
});
|
|
98792
|
-
var sdkBlockFieldExtensionsInputSchema =
|
|
98793
|
-
|
|
99348
|
+
var sdkBlockFieldExtensionsInputSchema = z73.record(
|
|
99349
|
+
z73.string().min(1),
|
|
98794
99350
|
sdkBlockFieldExtensionInputSchema
|
|
98795
99351
|
);
|
|
98796
|
-
var sdkThemePaletteSchema =
|
|
98797
|
-
var sdkThemeConfigSchema =
|
|
99352
|
+
var sdkThemePaletteSchema = z73.record(z73.string(), z73.string());
|
|
99353
|
+
var sdkThemeConfigSchema = z73.object({
|
|
98798
99354
|
palette: sdkThemePaletteSchema
|
|
98799
99355
|
});
|
|
98800
|
-
var sdkSectionBackgroundSchema =
|
|
98801
|
-
id:
|
|
98802
|
-
label:
|
|
98803
|
-
token:
|
|
99356
|
+
var sdkSectionBackgroundSchema = z73.object({
|
|
99357
|
+
id: z73.string().min(1),
|
|
99358
|
+
label: z73.string().min(1),
|
|
99359
|
+
token: z73.string().min(1)
|
|
98804
99360
|
});
|
|
98805
|
-
var sdkSectionOptionsConfigSchema =
|
|
98806
|
-
backgroundColor:
|
|
98807
|
-
backgroundImage:
|
|
98808
|
-
backgroundGradient:
|
|
98809
|
-
spacing:
|
|
98810
|
-
textColor:
|
|
99361
|
+
var sdkSectionOptionsConfigSchema = z73.object({
|
|
99362
|
+
backgroundColor: z73.boolean().optional(),
|
|
99363
|
+
backgroundImage: z73.boolean().optional(),
|
|
99364
|
+
backgroundGradient: z73.boolean().optional(),
|
|
99365
|
+
spacing: z73.union([z73.array(z73.enum(["compact", "default", "spacious"])), z73.boolean()]).optional(),
|
|
99366
|
+
textColor: z73.boolean().optional()
|
|
98811
99367
|
});
|
|
98812
|
-
var sdkContainerOptionsConfigSchema =
|
|
98813
|
-
maxWidth:
|
|
98814
|
-
alignment:
|
|
99368
|
+
var sdkContainerOptionsConfigSchema = z73.object({
|
|
99369
|
+
maxWidth: z73.union([z73.array(z73.enum(["narrow", "default", "wide", "full"])), z73.boolean()]).optional(),
|
|
99370
|
+
alignment: z73.union([z73.array(z73.enum(["left", "center", "right"])), z73.boolean()]).optional()
|
|
98815
99371
|
});
|
|
98816
|
-
var sdkSiteStyleConfigSchema =
|
|
98817
|
-
sectionBackgrounds:
|
|
99372
|
+
var sdkSiteStyleConfigSchema = z73.object({
|
|
99373
|
+
sectionBackgrounds: z73.array(sdkSectionBackgroundSchema).optional(),
|
|
98818
99374
|
sectionOptions: sdkSectionOptionsConfigSchema.optional(),
|
|
98819
99375
|
containerOptions: sdkContainerOptionsConfigSchema.optional()
|
|
98820
99376
|
});
|
|
98821
|
-
var sdkSiteLayoutConfigSchema =
|
|
98822
|
-
footerBlocks:
|
|
98823
|
-
|
|
98824
|
-
id:
|
|
98825
|
-
kind:
|
|
98826
|
-
content:
|
|
99377
|
+
var sdkSiteLayoutConfigSchema = z73.object({
|
|
99378
|
+
footerBlocks: z73.array(
|
|
99379
|
+
z73.object({
|
|
99380
|
+
id: z73.string().min(1).optional(),
|
|
99381
|
+
kind: z73.string().min(1),
|
|
99382
|
+
content: z73.record(z73.string(), z73.unknown()).optional()
|
|
98827
99383
|
})
|
|
98828
99384
|
).optional()
|
|
98829
99385
|
});
|
|
98830
|
-
var sdkFieldSelectOptionSchema =
|
|
98831
|
-
value:
|
|
98832
|
-
label:
|
|
99386
|
+
var sdkFieldSelectOptionSchema = z73.object({
|
|
99387
|
+
value: z73.string(),
|
|
99388
|
+
label: z73.string()
|
|
98833
99389
|
});
|
|
98834
|
-
var sdkBlockFieldConfigSchema =
|
|
98835
|
-
options:
|
|
99390
|
+
var sdkBlockFieldConfigSchema = z73.object({
|
|
99391
|
+
options: z73.array(sdkFieldSelectOptionSchema).optional()
|
|
98836
99392
|
});
|
|
98837
|
-
var sdkBlockFieldOptionsMapSchema =
|
|
98838
|
-
|
|
99393
|
+
var sdkBlockFieldOptionsMapSchema = z73.record(
|
|
99394
|
+
z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
|
|
98839
99395
|
message: "Block ID must be 'block.*' or 'custom.*' format"
|
|
98840
99396
|
}),
|
|
98841
|
-
|
|
99397
|
+
z73.record(z73.string().min(1), sdkBlockFieldConfigSchema)
|
|
98842
99398
|
).optional();
|
|
98843
|
-
var sdkContentTypeTemplateConfigSchema =
|
|
98844
|
-
blocks:
|
|
99399
|
+
var sdkContentTypeTemplateConfigSchema = z73.object({
|
|
99400
|
+
blocks: z73.array(z73.unknown())
|
|
98845
99401
|
}).passthrough();
|
|
98846
|
-
var sdkContentTypeOrderingConfigSchema =
|
|
98847
|
-
mode:
|
|
99402
|
+
var sdkContentTypeOrderingConfigSchema = z73.object({
|
|
99403
|
+
mode: z73.enum(["default", "manual"]).optional()
|
|
98848
99404
|
}).optional();
|
|
98849
|
-
var sdkContentTypeConfigSchema =
|
|
98850
|
-
key:
|
|
98851
|
-
fields:
|
|
99405
|
+
var sdkContentTypeConfigSchema = z73.object({
|
|
99406
|
+
key: z73.string().min(1),
|
|
99407
|
+
fields: z73.array(z73.unknown()),
|
|
98852
99408
|
ordering: sdkContentTypeOrderingConfigSchema,
|
|
98853
99409
|
template: sdkContentTypeTemplateConfigSchema.nullable().optional()
|
|
98854
99410
|
}).passthrough();
|
|
98855
|
-
var sdkContentConfigSchema =
|
|
98856
|
-
contentTypes:
|
|
98857
|
-
pages:
|
|
98858
|
-
entries:
|
|
98859
|
-
navigationMenus:
|
|
98860
|
-
settings:
|
|
99411
|
+
var sdkContentConfigSchema = z73.object({
|
|
99412
|
+
contentTypes: z73.array(sdkContentTypeConfigSchema).optional(),
|
|
99413
|
+
pages: z73.array(z73.unknown()).optional(),
|
|
99414
|
+
entries: z73.array(z73.unknown()).optional(),
|
|
99415
|
+
navigationMenus: z73.array(z73.unknown()).optional(),
|
|
99416
|
+
settings: z73.unknown().optional()
|
|
98861
99417
|
}).passthrough();
|
|
98862
99418
|
var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
|
|
98863
99419
|
var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
|
|
@@ -98872,62 +99428,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
|
|
|
98872
99428
|
var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
|
|
98873
99429
|
var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
|
|
98874
99430
|
var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
|
|
98875
|
-
var sdkWorkflowIdSchema =
|
|
99431
|
+
var sdkWorkflowIdSchema = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
|
|
98876
99432
|
message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
|
|
98877
99433
|
});
|
|
98878
|
-
var sdkWorkflowEndpointSchema =
|
|
98879
|
-
var sdkWorkflowManualTriggerSchema =
|
|
98880
|
-
type:
|
|
99434
|
+
var sdkWorkflowEndpointSchema = z73.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
|
|
99435
|
+
var sdkWorkflowManualTriggerSchema = z73.object({
|
|
99436
|
+
type: z73.literal("manual")
|
|
98881
99437
|
}).strict();
|
|
98882
|
-
var sdkWorkflowTriggerFieldSchema =
|
|
99438
|
+
var sdkWorkflowTriggerFieldSchema = z73.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
|
|
98883
99439
|
message: "Workflow trigger fields must be top-level content field IDs, not paths"
|
|
98884
99440
|
});
|
|
98885
|
-
var sdkWorkflowFieldChangedConditionSchema =
|
|
99441
|
+
var sdkWorkflowFieldChangedConditionSchema = z73.object({
|
|
98886
99442
|
field: sdkWorkflowTriggerFieldSchema,
|
|
98887
|
-
changed:
|
|
99443
|
+
changed: z73.literal(true)
|
|
98888
99444
|
}).strict();
|
|
98889
|
-
var sdkWorkflowFieldEmptyConditionSchema =
|
|
99445
|
+
var sdkWorkflowFieldEmptyConditionSchema = z73.object({
|
|
98890
99446
|
field: sdkWorkflowTriggerFieldSchema,
|
|
98891
|
-
isEmpty:
|
|
99447
|
+
isEmpty: z73.boolean()
|
|
98892
99448
|
}).strict();
|
|
98893
|
-
var sdkWorkflowEntryDraftUpdatedTriggerSchema =
|
|
98894
|
-
type:
|
|
98895
|
-
when:
|
|
98896
|
-
|
|
99449
|
+
var sdkWorkflowEntryDraftUpdatedTriggerSchema = z73.object({
|
|
99450
|
+
type: z73.literal("entry.draft.updated"),
|
|
99451
|
+
when: z73.array(
|
|
99452
|
+
z73.union([
|
|
98897
99453
|
sdkWorkflowFieldChangedConditionSchema,
|
|
98898
99454
|
sdkWorkflowFieldEmptyConditionSchema
|
|
98899
99455
|
])
|
|
98900
99456
|
).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
|
|
98901
99457
|
}).strict();
|
|
98902
|
-
var sdkWorkflowTriggerSchema =
|
|
99458
|
+
var sdkWorkflowTriggerSchema = z73.discriminatedUnion("type", [
|
|
98903
99459
|
sdkWorkflowManualTriggerSchema,
|
|
98904
99460
|
sdkWorkflowEntryDraftUpdatedTriggerSchema
|
|
98905
99461
|
]);
|
|
98906
|
-
var sdkWorkflowConfirmationSchema =
|
|
98907
|
-
title:
|
|
98908
|
-
body:
|
|
99462
|
+
var sdkWorkflowConfirmationSchema = z73.object({
|
|
99463
|
+
title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
|
|
99464
|
+
body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
|
|
98909
99465
|
}).strict();
|
|
98910
|
-
var sdkWorkflowConfigSchema =
|
|
99466
|
+
var sdkWorkflowConfigSchema = z73.object({
|
|
98911
99467
|
id: sdkWorkflowIdSchema,
|
|
98912
|
-
title:
|
|
98913
|
-
description:
|
|
98914
|
-
contentType:
|
|
99468
|
+
title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
|
|
99469
|
+
description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
|
|
99470
|
+
contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
|
|
98915
99471
|
endpoint: sdkWorkflowEndpointSchema,
|
|
98916
|
-
triggers:
|
|
99472
|
+
triggers: z73.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
|
|
98917
99473
|
confirmation: sdkWorkflowConfirmationSchema.optional()
|
|
98918
99474
|
}).strict();
|
|
98919
|
-
var sdkWorkflowsSchema =
|
|
99475
|
+
var sdkWorkflowsSchema = z73.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
|
|
98920
99476
|
const ids = workflows.map((workflow) => workflow.id);
|
|
98921
99477
|
return ids.length === new Set(ids).size;
|
|
98922
99478
|
}, { message: "Workflow IDs must be unique" }).optional();
|
|
98923
|
-
var riverbankSiteConfigInputSchema =
|
|
98924
|
-
siteId:
|
|
98925
|
-
previewUrl:
|
|
98926
|
-
liveUrl:
|
|
99479
|
+
var riverbankSiteConfigInputSchema = z73.object({
|
|
99480
|
+
siteId: z73.string().uuid(),
|
|
99481
|
+
previewUrl: z73.string().url().optional(),
|
|
99482
|
+
liveUrl: z73.string().url().optional(),
|
|
98927
99483
|
theme: sdkThemeConfigSchema.optional(),
|
|
98928
99484
|
styles: sdkSiteStyleConfigSchema.optional(),
|
|
98929
99485
|
layout: sdkSiteLayoutConfigSchema.optional(),
|
|
98930
|
-
customBlocks:
|
|
99486
|
+
customBlocks: z73.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
|
|
98931
99487
|
const ids = blocks.map((b2) => b2.id);
|
|
98932
99488
|
return ids.length === new Set(ids).size;
|
|
98933
99489
|
}, { message: "Block IDs must be unique" }).optional(),
|
|
@@ -98935,50 +99491,51 @@ var riverbankSiteConfigInputSchema = z72.object({
|
|
|
98935
99491
|
blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
|
|
98936
99492
|
workflows: sdkWorkflowsSchema,
|
|
98937
99493
|
content: sdkContentConfigSchema.optional(),
|
|
98938
|
-
contentDir:
|
|
98939
|
-
sync:
|
|
98940
|
-
existingEntries:
|
|
99494
|
+
contentDir: z73.string().optional(),
|
|
99495
|
+
sync: z73.object({
|
|
99496
|
+
existingEntries: z73.enum(["skip", "update"]).optional()
|
|
98941
99497
|
}).optional(),
|
|
98942
|
-
deploy:
|
|
98943
|
-
verifyCommand:
|
|
98944
|
-
prebuildOutput:
|
|
99498
|
+
deploy: z73.object({
|
|
99499
|
+
verifyCommand: z73.string().optional(),
|
|
99500
|
+
prebuildOutput: z73.string().optional()
|
|
98945
99501
|
}).optional(),
|
|
98946
|
-
themeSource:
|
|
98947
|
-
activeTheme:
|
|
98948
|
-
enablePortal:
|
|
99502
|
+
themeSource: z73.enum(["local", "cms"]).optional(),
|
|
99503
|
+
activeTheme: z73.string().optional(),
|
|
99504
|
+
enablePortal: z73.boolean().optional(),
|
|
98949
99505
|
dashboard: dashboardConfigSchema.optional()
|
|
98950
99506
|
}).strict();
|
|
98951
|
-
var pushSdkConfigBodySchema =
|
|
99507
|
+
var pushSdkConfigBodySchema = z73.object({
|
|
98952
99508
|
config: riverbankSiteConfigInputSchema,
|
|
98953
|
-
forceContentTypes:
|
|
99509
|
+
forceContentTypes: z73.boolean().optional(),
|
|
99510
|
+
mode: z73.enum(["apply", "preview"]).optional()
|
|
98954
99511
|
}).strict();
|
|
98955
99512
|
|
|
98956
99513
|
// ../api/src/siteOnboarding.ts
|
|
98957
|
-
import { z as
|
|
99514
|
+
import { z as z74 } from "zod";
|
|
98958
99515
|
var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
|
|
98959
99516
|
configure_appointments: {
|
|
98960
99517
|
requirementId: "configure_appointments",
|
|
98961
99518
|
reason: "launch_anyway"
|
|
98962
99519
|
}
|
|
98963
99520
|
};
|
|
98964
|
-
var acknowledgeLaunchRequirementRequestSchema =
|
|
99521
|
+
var acknowledgeLaunchRequirementRequestSchema = z74.discriminatedUnion(
|
|
98965
99522
|
"requirementId",
|
|
98966
99523
|
[
|
|
98967
|
-
|
|
98968
|
-
requirementId:
|
|
99524
|
+
z74.object({
|
|
99525
|
+
requirementId: z74.literal("review_generated_site")
|
|
98969
99526
|
}),
|
|
98970
|
-
|
|
98971
|
-
requirementId:
|
|
99527
|
+
z74.object({
|
|
99528
|
+
requirementId: z74.literal(
|
|
98972
99529
|
LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
|
|
98973
99530
|
),
|
|
98974
|
-
overrideReason:
|
|
99531
|
+
overrideReason: z74.literal(
|
|
98975
99532
|
LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
|
|
98976
99533
|
)
|
|
98977
99534
|
})
|
|
98978
99535
|
]
|
|
98979
99536
|
);
|
|
98980
|
-
var goLiveSiteRequestSchema =
|
|
98981
|
-
acceptExtraSiteCharge:
|
|
99537
|
+
var goLiveSiteRequestSchema = z74.object({
|
|
99538
|
+
acceptExtraSiteCharge: z74.boolean().optional()
|
|
98982
99539
|
});
|
|
98983
99540
|
|
|
98984
99541
|
// ../surfaces/src/index.ts
|
|
@@ -99097,7 +99654,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
|
|
|
99097
99654
|
];
|
|
99098
99655
|
|
|
99099
99656
|
// ../api/src/bookingVerticals.ts
|
|
99100
|
-
import { z as
|
|
99657
|
+
import { z as z75 } from "zod";
|
|
99101
99658
|
var VERTICAL_IDS = [
|
|
99102
99659
|
"yoga_wellness",
|
|
99103
99660
|
"fitness_pt",
|
|
@@ -99262,39 +99819,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
|
|
|
99262
99819
|
}
|
|
99263
99820
|
return [...issues];
|
|
99264
99821
|
}
|
|
99265
|
-
var VerticalIdSchema =
|
|
99822
|
+
var VerticalIdSchema = z75.string().trim().transform((value, ctx) => {
|
|
99266
99823
|
const parsed = parseVerticalId(value);
|
|
99267
99824
|
if (!parsed) {
|
|
99268
99825
|
ctx.addIssue({
|
|
99269
|
-
code:
|
|
99826
|
+
code: z75.ZodIssueCode.custom,
|
|
99270
99827
|
message: "Unknown booking vertical"
|
|
99271
99828
|
});
|
|
99272
|
-
return
|
|
99829
|
+
return z75.NEVER;
|
|
99273
99830
|
}
|
|
99274
99831
|
return parsed;
|
|
99275
99832
|
});
|
|
99276
|
-
var VerticalPresetIdSchema =
|
|
99833
|
+
var VerticalPresetIdSchema = z75.string().trim().transform((value, ctx) => {
|
|
99277
99834
|
const parsed = parseVerticalPresetId(value);
|
|
99278
99835
|
if (!parsed) {
|
|
99279
99836
|
ctx.addIssue({
|
|
99280
|
-
code:
|
|
99837
|
+
code: z75.ZodIssueCode.custom,
|
|
99281
99838
|
message: "Unknown booking preset"
|
|
99282
99839
|
});
|
|
99283
|
-
return
|
|
99840
|
+
return z75.NEVER;
|
|
99284
99841
|
}
|
|
99285
99842
|
return parsed;
|
|
99286
99843
|
});
|
|
99287
|
-
var BookingVerticalConfigSchema =
|
|
99844
|
+
var BookingVerticalConfigSchema = z75.object({
|
|
99288
99845
|
verticalId: VerticalIdSchema.nullable(),
|
|
99289
|
-
selectedPresetIds:
|
|
99846
|
+
selectedPresetIds: z75.array(VerticalPresetIdSchema).max(20)
|
|
99290
99847
|
}).transform((value, ctx) => {
|
|
99291
99848
|
const resolved = resolveSiteVerticalBookingConfig(value);
|
|
99292
99849
|
if (resolved.kind === "invalid") {
|
|
99293
99850
|
ctx.addIssue({
|
|
99294
|
-
code:
|
|
99851
|
+
code: z75.ZodIssueCode.custom,
|
|
99295
99852
|
message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
|
|
99296
99853
|
});
|
|
99297
|
-
return
|
|
99854
|
+
return z75.NEVER;
|
|
99298
99855
|
}
|
|
99299
99856
|
return resolved.config;
|
|
99300
99857
|
});
|
|
@@ -99321,51 +99878,51 @@ function isRecord17(value) {
|
|
|
99321
99878
|
}
|
|
99322
99879
|
|
|
99323
99880
|
// ../api/src/appointmentSetup.ts
|
|
99324
|
-
import { z as
|
|
99881
|
+
import { z as z76 } from "zod";
|
|
99325
99882
|
var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
|
|
99326
|
-
var appointmentSetupRefSchema =
|
|
99327
|
-
|
|
99328
|
-
|
|
99883
|
+
var appointmentSetupRefSchema = z76.discriminatedUnion("kind", [
|
|
99884
|
+
z76.object({ kind: z76.literal("existing"), id: z76.string().min(1) }),
|
|
99885
|
+
z76.object({ kind: z76.literal("new"), draftId: z76.string().min(1) })
|
|
99329
99886
|
]);
|
|
99330
|
-
var appointmentSetupVenueChoiceSchema =
|
|
99331
|
-
|
|
99332
|
-
|
|
99333
|
-
|
|
99334
|
-
kind:
|
|
99335
|
-
draftId:
|
|
99336
|
-
title:
|
|
99337
|
-
description:
|
|
99338
|
-
timezone:
|
|
99339
|
-
addressJson:
|
|
99340
|
-
locationJson:
|
|
99887
|
+
var appointmentSetupVenueChoiceSchema = z76.discriminatedUnion("kind", [
|
|
99888
|
+
z76.object({ kind: z76.literal("none") }),
|
|
99889
|
+
z76.object({ kind: z76.literal("existing"), venueId: z76.string().min(1) }),
|
|
99890
|
+
z76.object({
|
|
99891
|
+
kind: z76.literal("create"),
|
|
99892
|
+
draftId: z76.string().min(1),
|
|
99893
|
+
title: z76.string().trim().min(1),
|
|
99894
|
+
description: z76.string().nullable(),
|
|
99895
|
+
timezone: z76.string().trim().min(1).nullable(),
|
|
99896
|
+
addressJson: z76.record(z76.string(), z76.unknown()),
|
|
99897
|
+
locationJson: z76.object({ lat: z76.number(), lng: z76.number() }).nullable()
|
|
99341
99898
|
})
|
|
99342
99899
|
]);
|
|
99343
|
-
var appointmentSetupPaymentDraftSchema =
|
|
99344
|
-
priceType:
|
|
99345
|
-
});
|
|
99346
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
99347
|
-
|
|
99348
|
-
|
|
99349
|
-
kind:
|
|
99350
|
-
resourceRefs:
|
|
99900
|
+
var appointmentSetupPaymentDraftSchema = z76.object({
|
|
99901
|
+
priceType: z76.union([z76.literal("free"), z76.literal("paid")])
|
|
99902
|
+
});
|
|
99903
|
+
var appointmentSetupServiceAssignmentDraftSchema = z76.discriminatedUnion("kind", [
|
|
99904
|
+
z76.object({ kind: z76.literal("all_practitioners") }),
|
|
99905
|
+
z76.object({
|
|
99906
|
+
kind: z76.literal("selected_practitioners"),
|
|
99907
|
+
resourceRefs: z76.array(appointmentSetupRefSchema)
|
|
99351
99908
|
})
|
|
99352
99909
|
]);
|
|
99353
|
-
var appointmentSetupServiceDraftSchema =
|
|
99910
|
+
var appointmentSetupServiceDraftSchema = z76.object({
|
|
99354
99911
|
ref: appointmentSetupRefSchema,
|
|
99355
|
-
title:
|
|
99356
|
-
description:
|
|
99357
|
-
durationMinutes:
|
|
99358
|
-
prepMinutes:
|
|
99359
|
-
cleanupMinutes:
|
|
99360
|
-
priceAmount:
|
|
99361
|
-
isActive:
|
|
99362
|
-
locationType:
|
|
99363
|
-
|
|
99364
|
-
|
|
99365
|
-
|
|
99912
|
+
title: z76.string().trim().min(1),
|
|
99913
|
+
description: z76.string().nullable(),
|
|
99914
|
+
durationMinutes: z76.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
|
|
99915
|
+
prepMinutes: z76.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
99916
|
+
cleanupMinutes: z76.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
99917
|
+
priceAmount: z76.number().int().nonnegative().nullable(),
|
|
99918
|
+
isActive: z76.boolean(),
|
|
99919
|
+
locationType: z76.union([
|
|
99920
|
+
z76.literal("virtual"),
|
|
99921
|
+
z76.literal("in_person"),
|
|
99922
|
+
z76.literal("hybrid")
|
|
99366
99923
|
]),
|
|
99367
99924
|
venue: appointmentSetupVenueChoiceSchema,
|
|
99368
|
-
timezone:
|
|
99925
|
+
timezone: z76.string().trim().min(1).nullable(),
|
|
99369
99926
|
payment: appointmentSetupPaymentDraftSchema,
|
|
99370
99927
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
99371
99928
|
}).superRefine((service, ctx) => {
|
|
@@ -99384,49 +99941,49 @@ var appointmentSetupServiceDraftSchema = z75.object({
|
|
|
99384
99941
|
});
|
|
99385
99942
|
}
|
|
99386
99943
|
});
|
|
99387
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
99944
|
+
var appointmentSetupPractitionerDraftSchema = z76.object({
|
|
99388
99945
|
ref: appointmentSetupRefSchema,
|
|
99389
|
-
displayName:
|
|
99390
|
-
bio:
|
|
99391
|
-
timezone:
|
|
99392
|
-
colorHex:
|
|
99393
|
-
});
|
|
99394
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
99395
|
-
weekday:
|
|
99396
|
-
startTime:
|
|
99397
|
-
endTime:
|
|
99398
|
-
});
|
|
99399
|
-
var appointmentSetupStartTimePolicyDraftSchema =
|
|
99400
|
-
|
|
99401
|
-
|
|
99402
|
-
kind:
|
|
99403
|
-
intervalMinutes:
|
|
99404
|
-
|
|
99405
|
-
|
|
99406
|
-
|
|
99407
|
-
|
|
99408
|
-
|
|
99409
|
-
|
|
99946
|
+
displayName: z76.string().trim().min(1),
|
|
99947
|
+
bio: z76.string().nullable(),
|
|
99948
|
+
timezone: z76.string().trim().min(1),
|
|
99949
|
+
colorHex: z76.string().nullable()
|
|
99950
|
+
});
|
|
99951
|
+
var appointmentSetupWeeklyWindowDraftSchema = z76.object({
|
|
99952
|
+
weekday: z76.number().int().min(0).max(6),
|
|
99953
|
+
startTime: z76.string(),
|
|
99954
|
+
endTime: z76.string()
|
|
99955
|
+
});
|
|
99956
|
+
var appointmentSetupStartTimePolicyDraftSchema = z76.discriminatedUnion("kind", [
|
|
99957
|
+
z76.object({ kind: z76.literal("automatic_spacing") }),
|
|
99958
|
+
z76.object({
|
|
99959
|
+
kind: z76.literal("regular_interval"),
|
|
99960
|
+
intervalMinutes: z76.union([
|
|
99961
|
+
z76.literal(10),
|
|
99962
|
+
z76.literal(15),
|
|
99963
|
+
z76.literal(20),
|
|
99964
|
+
z76.literal(30),
|
|
99965
|
+
z76.literal(45),
|
|
99966
|
+
z76.literal(60)
|
|
99410
99967
|
])
|
|
99411
99968
|
})
|
|
99412
99969
|
]);
|
|
99413
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
99414
|
-
kind:
|
|
99970
|
+
var appointmentSetupAvailabilityDraftSchema = z76.object({
|
|
99971
|
+
kind: z76.literal("weekly_windows"),
|
|
99415
99972
|
resourceRef: appointmentSetupRefSchema,
|
|
99416
99973
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
99417
|
-
windows:
|
|
99974
|
+
windows: z76.array(appointmentSetupWeeklyWindowDraftSchema),
|
|
99418
99975
|
startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
|
|
99419
99976
|
});
|
|
99420
99977
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
99421
99978
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
99422
|
-
var appointmentSetupBookingNoticeSchema =
|
|
99423
|
-
minLeadMinutes:
|
|
99424
|
-
maxBookingNoticeMinutes:
|
|
99425
|
-
});
|
|
99426
|
-
var applyAppointmentSetupRequestSchema =
|
|
99427
|
-
services:
|
|
99428
|
-
practitioners:
|
|
99429
|
-
availability:
|
|
99979
|
+
var appointmentSetupBookingNoticeSchema = z76.object({
|
|
99980
|
+
minLeadMinutes: z76.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
|
|
99981
|
+
maxBookingNoticeMinutes: z76.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
|
|
99982
|
+
});
|
|
99983
|
+
var applyAppointmentSetupRequestSchema = z76.object({
|
|
99984
|
+
services: z76.array(appointmentSetupServiceDraftSchema),
|
|
99985
|
+
practitioners: z76.array(appointmentSetupPractitionerDraftSchema),
|
|
99986
|
+
availability: z76.array(appointmentSetupAvailabilityDraftSchema),
|
|
99430
99987
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
99431
99988
|
});
|
|
99432
99989
|
|
|
@@ -99459,24 +100016,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
99459
100016
|
];
|
|
99460
100017
|
|
|
99461
100018
|
// ../api/src/siteBanner.ts
|
|
99462
|
-
import { z as
|
|
100019
|
+
import { z as z77 } from "zod";
|
|
99463
100020
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
99464
100021
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
99465
100022
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
99466
100023
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
99467
|
-
var siteBannerScopeSchema =
|
|
99468
|
-
var siteBannerToneSchema =
|
|
99469
|
-
var siteBannerBodySchema =
|
|
99470
|
-
var siteBannerCtaSchema =
|
|
99471
|
-
label:
|
|
100024
|
+
var siteBannerScopeSchema = z77.enum(SITE_BANNER_SCOPE_VALUES);
|
|
100025
|
+
var siteBannerToneSchema = z77.enum(SITE_BANNER_TONE_VALUES);
|
|
100026
|
+
var siteBannerBodySchema = z77.unknown().transform(unwrapRichTextValue);
|
|
100027
|
+
var siteBannerCtaSchema = z77.object({
|
|
100028
|
+
label: z77.string().trim().min(1),
|
|
99472
100029
|
link: linkPayloadSchema
|
|
99473
100030
|
});
|
|
99474
|
-
var siteBannerSettingsSchema =
|
|
99475
|
-
|
|
99476
|
-
enabled:
|
|
100031
|
+
var siteBannerSettingsSchema = z77.discriminatedUnion("enabled", [
|
|
100032
|
+
z77.object({
|
|
100033
|
+
enabled: z77.literal(false)
|
|
99477
100034
|
}),
|
|
99478
|
-
|
|
99479
|
-
enabled:
|
|
100035
|
+
z77.object({
|
|
100036
|
+
enabled: z77.literal(true),
|
|
99480
100037
|
scope: siteBannerScopeSchema,
|
|
99481
100038
|
tone: siteBannerToneSchema,
|
|
99482
100039
|
body: siteBannerBodySchema,
|
|
@@ -99490,7 +100047,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
99490
100047
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
99491
100048
|
for (const issue2 of analysis.issues) {
|
|
99492
100049
|
ctx.addIssue({
|
|
99493
|
-
code:
|
|
100050
|
+
code: z77.ZodIssueCode.custom,
|
|
99494
100051
|
path: ["body"],
|
|
99495
100052
|
message: siteBannerBodyIssueMessage(issue2)
|
|
99496
100053
|
});
|
|
@@ -99752,71 +100309,71 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
|
|
|
99752
100309
|
var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
|
|
99753
100310
|
|
|
99754
100311
|
// ../api/src/aiPlayground.ts
|
|
99755
|
-
import { z as
|
|
99756
|
-
var Rfc6902PatchOp =
|
|
100312
|
+
import { z as z78 } from "zod";
|
|
100313
|
+
var Rfc6902PatchOp = z78.discriminatedUnion("op", [
|
|
99757
100314
|
// Standard RFC-6902 operations
|
|
99758
|
-
|
|
99759
|
-
op:
|
|
99760
|
-
path:
|
|
99761
|
-
value:
|
|
100315
|
+
z78.object({
|
|
100316
|
+
op: z78.literal("add"),
|
|
100317
|
+
path: z78.string(),
|
|
100318
|
+
value: z78.unknown()
|
|
99762
100319
|
}),
|
|
99763
|
-
|
|
99764
|
-
op:
|
|
99765
|
-
path:
|
|
100320
|
+
z78.object({
|
|
100321
|
+
op: z78.literal("remove"),
|
|
100322
|
+
path: z78.string()
|
|
99766
100323
|
}),
|
|
99767
|
-
|
|
99768
|
-
op:
|
|
99769
|
-
path:
|
|
99770
|
-
value:
|
|
100324
|
+
z78.object({
|
|
100325
|
+
op: z78.literal("replace"),
|
|
100326
|
+
path: z78.string(),
|
|
100327
|
+
value: z78.unknown()
|
|
99771
100328
|
}),
|
|
99772
|
-
|
|
99773
|
-
op:
|
|
99774
|
-
from:
|
|
99775
|
-
path:
|
|
100329
|
+
z78.object({
|
|
100330
|
+
op: z78.literal("move"),
|
|
100331
|
+
from: z78.string(),
|
|
100332
|
+
path: z78.string()
|
|
99776
100333
|
}),
|
|
99777
|
-
|
|
99778
|
-
op:
|
|
99779
|
-
from:
|
|
99780
|
-
path:
|
|
100334
|
+
z78.object({
|
|
100335
|
+
op: z78.literal("copy"),
|
|
100336
|
+
from: z78.string(),
|
|
100337
|
+
path: z78.string()
|
|
99781
100338
|
}),
|
|
99782
100339
|
// Block-level operations (Phase 2)
|
|
99783
|
-
|
|
99784
|
-
op:
|
|
99785
|
-
blockKind:
|
|
99786
|
-
afterBlockId:
|
|
99787
|
-
content:
|
|
99788
|
-
rationale:
|
|
100340
|
+
z78.object({
|
|
100341
|
+
op: z78.literal("add_block"),
|
|
100342
|
+
blockKind: z78.string(),
|
|
100343
|
+
afterBlockId: z78.string().nullable(),
|
|
100344
|
+
content: z78.record(z78.string(), z78.unknown()),
|
|
100345
|
+
rationale: z78.string()
|
|
99789
100346
|
}),
|
|
99790
|
-
|
|
99791
|
-
op:
|
|
99792
|
-
blockId:
|
|
99793
|
-
rationale:
|
|
100347
|
+
z78.object({
|
|
100348
|
+
op: z78.literal("delete_block"),
|
|
100349
|
+
blockId: z78.string(),
|
|
100350
|
+
rationale: z78.string()
|
|
99794
100351
|
}),
|
|
99795
|
-
|
|
99796
|
-
op:
|
|
99797
|
-
blockId:
|
|
99798
|
-
afterBlockId:
|
|
99799
|
-
rationale:
|
|
100352
|
+
z78.object({
|
|
100353
|
+
op: z78.literal("reorder_block"),
|
|
100354
|
+
blockId: z78.string(),
|
|
100355
|
+
afterBlockId: z78.string().nullable(),
|
|
100356
|
+
rationale: z78.string()
|
|
99800
100357
|
})
|
|
99801
100358
|
]);
|
|
99802
|
-
var PlaygroundProposeRequest =
|
|
99803
|
-
request:
|
|
100359
|
+
var PlaygroundProposeRequest = z78.object({
|
|
100360
|
+
request: z78.string().min(1).max(2e3)
|
|
99804
100361
|
});
|
|
99805
|
-
var MultiPagePatchEnvelope =
|
|
99806
|
-
pageId:
|
|
99807
|
-
blockId:
|
|
100362
|
+
var MultiPagePatchEnvelope = z78.object({
|
|
100363
|
+
pageId: z78.string(),
|
|
100364
|
+
blockId: z78.string().optional(),
|
|
99808
100365
|
// Not present for page-level ops
|
|
99809
|
-
blockKind:
|
|
99810
|
-
blockPurpose:
|
|
99811
|
-
ops:
|
|
99812
|
-
rationale:
|
|
99813
|
-
currentContent:
|
|
100366
|
+
blockKind: z78.string().optional(),
|
|
100367
|
+
blockPurpose: z78.string().optional().nullable(),
|
|
100368
|
+
ops: z78.array(Rfc6902PatchOp),
|
|
100369
|
+
rationale: z78.string(),
|
|
100370
|
+
currentContent: z78.record(z78.string(), z78.unknown()).optional()
|
|
99814
100371
|
});
|
|
99815
|
-
var MultiPageUpdateResponse =
|
|
99816
|
-
patches:
|
|
99817
|
-
assistantMessage:
|
|
99818
|
-
pagesModified:
|
|
99819
|
-
toolCallsUsed:
|
|
100372
|
+
var MultiPageUpdateResponse = z78.object({
|
|
100373
|
+
patches: z78.array(MultiPagePatchEnvelope),
|
|
100374
|
+
assistantMessage: z78.string(),
|
|
100375
|
+
pagesModified: z78.number(),
|
|
100376
|
+
toolCallsUsed: z78.number()
|
|
99820
100377
|
});
|
|
99821
100378
|
|
|
99822
100379
|
// src/data/prefetchBlockData.ts
|
|
@@ -99898,7 +100455,8 @@ var loaderAdapters = {
|
|
|
99898
100455
|
listPublicPasses,
|
|
99899
100456
|
listPublicMemberships,
|
|
99900
100457
|
getPublicFormById,
|
|
99901
|
-
getPublicBookingServices
|
|
100458
|
+
getPublicBookingServices,
|
|
100459
|
+
getPublicWeeklySlotAvailability
|
|
99902
100460
|
};
|
|
99903
100461
|
function readStringParam(params, key) {
|
|
99904
100462
|
const value = params[key];
|
|
@@ -100074,6 +100632,15 @@ async function getPublicBookingServices({ client, params }) {
|
|
|
100074
100632
|
ids: readStringParam(params, "ids")
|
|
100075
100633
|
});
|
|
100076
100634
|
}
|
|
100635
|
+
async function getPublicWeeklySlotAvailability({ client, params }) {
|
|
100636
|
+
return await client.getPublicWeeklySlotAvailability({
|
|
100637
|
+
siteId: requireStringParam(params, "siteId", "getPublicWeeklySlotAvailability"),
|
|
100638
|
+
serviceId: requireStringParam(params, "serviceId", "getPublicWeeklySlotAvailability"),
|
|
100639
|
+
resourceId: readStringParam(params, "resourceId"),
|
|
100640
|
+
horizonWeeks: parsePositiveIntegerParam(params, "horizonWeeks"),
|
|
100641
|
+
timezone: readStringParam(params, "timezone")
|
|
100642
|
+
});
|
|
100643
|
+
}
|
|
100077
100644
|
async function prefetchBlockData2(page, context, client, options) {
|
|
100078
100645
|
const { customBlocks } = options ?? {};
|
|
100079
100646
|
const customBlockMap = new Map(
|
|
@@ -100116,7 +100683,7 @@ async function prefetchBlockData2(page, context, client, options) {
|
|
|
100116
100683
|
}
|
|
100117
100684
|
|
|
100118
100685
|
// src/rendering/components/Block.shared.tsx
|
|
100119
|
-
import { jsx as
|
|
100686
|
+
import { jsx as jsx164, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
100120
100687
|
function toBlockHydrationBootstrapConfig(props2) {
|
|
100121
100688
|
return {
|
|
100122
100689
|
siteId: props2.siteId,
|
|
@@ -100125,7 +100692,7 @@ function toBlockHydrationBootstrapConfig(props2) {
|
|
|
100125
100692
|
};
|
|
100126
100693
|
}
|
|
100127
100694
|
function renderUnknownBlock(blockKind) {
|
|
100128
|
-
return /* @__PURE__ */
|
|
100695
|
+
return /* @__PURE__ */ jsx164("div", { className: "p-4 border border-red-300 bg-red-50 rounded", children: /* @__PURE__ */ jsxs106("p", { className: "text-red-800 font-semibold", children: [
|
|
100129
100696
|
"Unknown block type: ",
|
|
100130
100697
|
blockKind
|
|
100131
100698
|
] }) });
|
|
@@ -100207,7 +100774,7 @@ function renderBlockOverride({
|
|
|
100207
100774
|
runtime,
|
|
100208
100775
|
resolvedData
|
|
100209
100776
|
}) {
|
|
100210
|
-
return /* @__PURE__ */
|
|
100777
|
+
return /* @__PURE__ */ jsx164(
|
|
100211
100778
|
OverrideComponent,
|
|
100212
100779
|
{
|
|
100213
100780
|
content: props2.content,
|
|
@@ -100233,7 +100800,7 @@ function renderManifestBlock({
|
|
|
100233
100800
|
const BlockComponent = makeDefaultBlockComponent({ manifest: definition.manifest });
|
|
100234
100801
|
const registry = getDefaultComponentRegistry();
|
|
100235
100802
|
const blocksThemeConfig = runtime.blocksTheme;
|
|
100236
|
-
return /* @__PURE__ */
|
|
100803
|
+
return /* @__PURE__ */ jsx164(
|
|
100237
100804
|
BlockComponent,
|
|
100238
100805
|
{
|
|
100239
100806
|
blockId: props2.blockId ?? void 0,
|
|
@@ -100270,12 +100837,12 @@ async function BlockContent(props2) {
|
|
|
100270
100837
|
}
|
|
100271
100838
|
|
|
100272
100839
|
// src/rendering/components/Block.tsx
|
|
100273
|
-
import { Fragment as Fragment37, jsx as
|
|
100840
|
+
import { Fragment as Fragment37, jsx as jsx165, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
100274
100841
|
var HydratorWithContextProps2 = BlocksIslandsHydrator;
|
|
100275
100842
|
function Block(props2) {
|
|
100276
|
-
return /* @__PURE__ */
|
|
100277
|
-
/* @__PURE__ */
|
|
100278
|
-
/* @__PURE__ */
|
|
100843
|
+
return /* @__PURE__ */ jsxs107(Fragment37, { children: [
|
|
100844
|
+
/* @__PURE__ */ jsx165(HydratorWithContextProps2, { ...toBlockHydrationBootstrapConfig(props2) }),
|
|
100845
|
+
/* @__PURE__ */ jsx165(BlockContent, { ...props2 })
|
|
100279
100846
|
] });
|
|
100280
100847
|
}
|
|
100281
100848
|
|
|
@@ -100411,7 +100978,16 @@ function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
|
|
|
100411
100978
|
|
|
100412
100979
|
// src/rendering/helpers/loadPage.ts
|
|
100413
100980
|
async function loadPage(params) {
|
|
100414
|
-
const {
|
|
100981
|
+
const {
|
|
100982
|
+
client,
|
|
100983
|
+
siteId,
|
|
100984
|
+
path,
|
|
100985
|
+
pageId,
|
|
100986
|
+
preview = false,
|
|
100987
|
+
dataLoaderOverrides,
|
|
100988
|
+
searchParams,
|
|
100989
|
+
forceSite
|
|
100990
|
+
} = params;
|
|
100415
100991
|
const [site, pageResponse] = await Promise.all([
|
|
100416
100992
|
client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
|
|
100417
100993
|
client.getPage({ siteId, path, preview })
|
|
@@ -100421,6 +100997,11 @@ async function loadPage(params) {
|
|
|
100421
100997
|
"This path resolves to a content entry, not a page. Use loadContent() instead, which handles both pages and entries. For entries, loadContent() returns the raw entry data for custom rendering."
|
|
100422
100998
|
);
|
|
100423
100999
|
}
|
|
101000
|
+
if ("pageSurface" in pageResponse) {
|
|
101001
|
+
throw new Error(
|
|
101002
|
+
"This path resolves to a page surface, not a page. Use loadContent() instead, which handles pages, entries, and page surfaces."
|
|
101003
|
+
);
|
|
101004
|
+
}
|
|
100424
101005
|
const { page: pageData } = pageResponse;
|
|
100425
101006
|
const support = buildSiteRenderSupport(
|
|
100426
101007
|
site,
|
|
@@ -100450,7 +101031,11 @@ async function loadPage(params) {
|
|
|
100450
101031
|
);
|
|
100451
101032
|
let resolvedData = configData;
|
|
100452
101033
|
if (dataLoaderOverrides && Object.keys(dataLoaderOverrides).length > 0) {
|
|
100453
|
-
const codeData = await executeCodeLoaders(
|
|
101034
|
+
const codeData = await executeCodeLoaders(
|
|
101035
|
+
pageOutline,
|
|
101036
|
+
prefetchContext,
|
|
101037
|
+
dataLoaderOverrides
|
|
101038
|
+
);
|
|
100454
101039
|
resolvedData = mergeLoaderResults(configData, codeData);
|
|
100455
101040
|
}
|
|
100456
101041
|
return {
|
|
@@ -100470,13 +101055,17 @@ async function loadPage(params) {
|
|
|
100470
101055
|
};
|
|
100471
101056
|
}
|
|
100472
101057
|
|
|
100473
|
-
// ../
|
|
100474
|
-
var
|
|
101058
|
+
// ../field-primitives/src/bindings/index.ts
|
|
101059
|
+
var BINDING_TRANSFORMS = {
|
|
100475
101060
|
RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
|
|
100476
101061
|
DATE_FORMAT_SHORT: "date.formatShort",
|
|
100477
101062
|
DATE_FORMAT_LONG: "date.formatLong",
|
|
100478
101063
|
TEXT_INLINE_TEXT: "text.inlineText"
|
|
100479
101064
|
};
|
|
101065
|
+
var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
|
|
101066
|
+
|
|
101067
|
+
// ../blocks/src/bindings/types.ts
|
|
101068
|
+
var TRANSFORMS = BINDING_TRANSFORMS;
|
|
100480
101069
|
var BINDING_SOURCES = ["field", "meta", "literal", "transform", "fallback"];
|
|
100481
101070
|
|
|
100482
101071
|
// ../blocks/src/bindings/index.ts
|
|
@@ -100696,7 +101285,20 @@ function isDocWrapper(value) {
|
|
|
100696
101285
|
return isRecord2(doc) && typeof doc.type === "string" && doc.type === "doc";
|
|
100697
101286
|
}
|
|
100698
101287
|
|
|
101288
|
+
// src/contracts/bindings.ts
|
|
101289
|
+
var BINDING_TRANSFORM_VALUES2 = BINDING_TRANSFORM_VALUES;
|
|
101290
|
+
var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES2.join(", ");
|
|
101291
|
+
|
|
101292
|
+
// src/contracts/rendering.ts
|
|
101293
|
+
var ImagePresets2 = {
|
|
101294
|
+
thumbnail: { width: 200, quality: 80, resize: "contain" },
|
|
101295
|
+
card: { width: 600, quality: 80, resize: "contain" },
|
|
101296
|
+
hero: { width: 1200, quality: 85, resize: "contain" },
|
|
101297
|
+
full: { width: 1920, quality: 85, resize: "contain" }
|
|
101298
|
+
};
|
|
101299
|
+
|
|
100699
101300
|
// src/rendering/helpers/bindings.ts
|
|
101301
|
+
var isRecord20 = isRecord2;
|
|
100700
101302
|
var normalizeBindingOutput2 = normalizeBindingOutput;
|
|
100701
101303
|
var applyBindingsToContent2 = applyBindingsToContent;
|
|
100702
101304
|
|
|
@@ -100742,14 +101344,30 @@ function getRejectedReason(result) {
|
|
|
100742
101344
|
return result.reason;
|
|
100743
101345
|
}
|
|
100744
101346
|
async function loadContent(params) {
|
|
100745
|
-
const {
|
|
101347
|
+
const {
|
|
101348
|
+
client,
|
|
101349
|
+
siteId,
|
|
101350
|
+
path,
|
|
101351
|
+
preview = false,
|
|
101352
|
+
forceSite,
|
|
101353
|
+
contentContract = "compat"
|
|
101354
|
+
} = params;
|
|
100746
101355
|
const [siteResult, contentResult] = await Promise.allSettled([
|
|
100747
101356
|
client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
|
|
100748
|
-
client.getPage({
|
|
101357
|
+
client.getPage({
|
|
101358
|
+
siteId,
|
|
101359
|
+
path,
|
|
101360
|
+
preview,
|
|
101361
|
+
...contentContract === "native" ? { contentContract } : {}
|
|
101362
|
+
})
|
|
100749
101363
|
]);
|
|
100750
101364
|
if (siteResult.status === "rejected" || contentResult.status === "rejected") {
|
|
100751
|
-
const failures = [siteResult, contentResult].filter(
|
|
100752
|
-
|
|
101365
|
+
const failures = [siteResult, contentResult].filter(
|
|
101366
|
+
(result) => result.status === "rejected"
|
|
101367
|
+
).map(getRejectedReason);
|
|
101368
|
+
const upstreamFailure = failures.find(
|
|
101369
|
+
(error) => !isContentLoadNotFoundError(error)
|
|
101370
|
+
);
|
|
100753
101371
|
throw upstreamFailure ?? failures[0];
|
|
100754
101372
|
}
|
|
100755
101373
|
const site = siteResult.value;
|
|
@@ -100763,13 +101381,7 @@ async function loadContent(params) {
|
|
|
100763
101381
|
});
|
|
100764
101382
|
}
|
|
100765
101383
|
async function loadContentFromContentResponse(params) {
|
|
100766
|
-
const {
|
|
100767
|
-
client,
|
|
100768
|
-
siteId,
|
|
100769
|
-
site,
|
|
100770
|
-
contentResponse,
|
|
100771
|
-
preview = false
|
|
100772
|
-
} = params;
|
|
101384
|
+
const { client, siteId, site, contentResponse, preview = false } = params;
|
|
100773
101385
|
const support = buildSiteRenderSupport(
|
|
100774
101386
|
site,
|
|
100775
101387
|
collectMediaAssetSidecar(contentResponse.mediaAssets)
|
|
@@ -100830,6 +101442,77 @@ async function loadContentFromContentResponse(params) {
|
|
|
100830
101442
|
...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {}
|
|
100831
101443
|
};
|
|
100832
101444
|
}
|
|
101445
|
+
if (isPageSurfaceResponse(contentResponse)) {
|
|
101446
|
+
const pageSurfaceData = contentResponse.pageSurface;
|
|
101447
|
+
const pageSurface = {
|
|
101448
|
+
id: pageSurfaceData.id,
|
|
101449
|
+
routeId: pageSurfaceData.routeId,
|
|
101450
|
+
readinessState: pageSurfaceData.readinessState,
|
|
101451
|
+
subject: pageSurfaceData.subject,
|
|
101452
|
+
title: pageSurfaceData.title,
|
|
101453
|
+
slug: pageSurfaceData.slug,
|
|
101454
|
+
path: pageSurfaceData.path,
|
|
101455
|
+
status: pageSurfaceData.status,
|
|
101456
|
+
publishAt: pageSurfaceData.publishAt,
|
|
101457
|
+
content: pageSurfaceData.content,
|
|
101458
|
+
metaTitle: preview ? pageSurfaceData.draftMetaTitle ?? pageSurfaceData.metaTitle : pageSurfaceData.metaTitle,
|
|
101459
|
+
metaDescription: preview ? pageSurfaceData.draftMetaDescription ?? pageSurfaceData.metaDescription : pageSurfaceData.metaDescription,
|
|
101460
|
+
createdAt: pageSurfaceData.createdAt,
|
|
101461
|
+
updatedAt: pageSurfaceData.updatedAt,
|
|
101462
|
+
contentSource: pageSurfaceData.contentSource
|
|
101463
|
+
};
|
|
101464
|
+
const { templatePage, resolvedData: resolvedData2 } = await processTemplatePage({
|
|
101465
|
+
templates: contentResponse.templates,
|
|
101466
|
+
slotContent: contentResponse.surfaceSlots,
|
|
101467
|
+
bindingContext: {
|
|
101468
|
+
fields: pageSurface.content && typeof pageSurface.content === "object" ? pageSurface.content : {},
|
|
101469
|
+
meta: {
|
|
101470
|
+
id: pageSurface.id,
|
|
101471
|
+
title: pageSurface.title,
|
|
101472
|
+
slug: pageSurface.slug,
|
|
101473
|
+
path: pageSurface.path,
|
|
101474
|
+
publishAt: pageSurface.publishAt,
|
|
101475
|
+
status: pageSurface.status,
|
|
101476
|
+
createdAt: pageSurface.createdAt,
|
|
101477
|
+
updatedAt: pageSurface.updatedAt
|
|
101478
|
+
}
|
|
101479
|
+
},
|
|
101480
|
+
pageName: pageSurface.title || "Page Surface Template",
|
|
101481
|
+
pagePath: pageSurface.path || "/",
|
|
101482
|
+
pagePurpose: "page-surface-template",
|
|
101483
|
+
context: { siteId, preview },
|
|
101484
|
+
client,
|
|
101485
|
+
options: { customBlocks: support.customBlocks }
|
|
101486
|
+
});
|
|
101487
|
+
return {
|
|
101488
|
+
type: "pageSurface",
|
|
101489
|
+
pageSurface,
|
|
101490
|
+
templatePage,
|
|
101491
|
+
resolvedData: resolvedData2,
|
|
101492
|
+
bookingOfferingPresets: support.bookingOfferingPresets,
|
|
101493
|
+
dataContext: {
|
|
101494
|
+
pageSurface: {
|
|
101495
|
+
...pageSurface.content ?? {},
|
|
101496
|
+
id: pageSurface.id,
|
|
101497
|
+
slug: pageSurface.slug,
|
|
101498
|
+
subject: pageSurface.subject,
|
|
101499
|
+
_pageSurfaceId: pageSurface.id,
|
|
101500
|
+
_pageSurfaceSlug: pageSurface.slug
|
|
101501
|
+
},
|
|
101502
|
+
subject: pageSurface.subject
|
|
101503
|
+
},
|
|
101504
|
+
theme: support.theme,
|
|
101505
|
+
siteId,
|
|
101506
|
+
...support.customBlocks ? { customBlocks: support.customBlocks } : {},
|
|
101507
|
+
site: support.site,
|
|
101508
|
+
sdkConfig: support.sdkConfig,
|
|
101509
|
+
supabaseUrl: support.supabaseUrl,
|
|
101510
|
+
routeMap: support.routeMap,
|
|
101511
|
+
pagesByIdentifier: support.pagesByIdentifier,
|
|
101512
|
+
entriesByIdentifier: support.entriesByIdentifier,
|
|
101513
|
+
...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {}
|
|
101514
|
+
};
|
|
101515
|
+
}
|
|
100833
101516
|
const { page: pageData } = contentResponse;
|
|
100834
101517
|
const pageRecord = pageData;
|
|
100835
101518
|
const canonicalPagePath = pageData.path ?? pageRecord.path ?? "/";
|
|
@@ -100887,45 +101570,60 @@ async function loadContentFromContentResponse(params) {
|
|
|
100887
101570
|
function isEntryResponse(response) {
|
|
100888
101571
|
return "entry" in response;
|
|
100889
101572
|
}
|
|
101573
|
+
function isPageSurfaceResponse(response) {
|
|
101574
|
+
return response.type === "pageSurface";
|
|
101575
|
+
}
|
|
100890
101576
|
async function processEntryTemplate(templates, entrySlots, entry, context, client, options) {
|
|
100891
|
-
|
|
101577
|
+
return processTemplatePage({
|
|
101578
|
+
templates,
|
|
101579
|
+
slotContent: entrySlots,
|
|
101580
|
+
bindingContext: {
|
|
101581
|
+
fields: entry.content && typeof entry.content === "object" ? entry.content : {},
|
|
101582
|
+
meta: {
|
|
101583
|
+
id: entry.id,
|
|
101584
|
+
title: entry.title,
|
|
101585
|
+
slug: entry.slug,
|
|
101586
|
+
path: entry.path,
|
|
101587
|
+
publishAt: entry.publishAt,
|
|
101588
|
+
status: entry.status,
|
|
101589
|
+
createdAt: entry.createdAt,
|
|
101590
|
+
updatedAt: entry.updatedAt
|
|
101591
|
+
}
|
|
101592
|
+
},
|
|
101593
|
+
pageName: "Entry Template",
|
|
101594
|
+
pagePath: entry.path || "/",
|
|
101595
|
+
pagePurpose: "entry-template",
|
|
101596
|
+
context,
|
|
101597
|
+
client,
|
|
101598
|
+
options
|
|
101599
|
+
});
|
|
101600
|
+
}
|
|
101601
|
+
async function processTemplatePage(input) {
|
|
101602
|
+
const template = input.templates?.[0];
|
|
100892
101603
|
if (!template || !template.blocks?.length) {
|
|
100893
101604
|
return { templatePage: null, resolvedData: {} };
|
|
100894
101605
|
}
|
|
100895
|
-
const bindingContext = {
|
|
100896
|
-
fields: entry.content && typeof entry.content === "object" ? entry.content : {},
|
|
100897
|
-
meta: {
|
|
100898
|
-
id: entry.id,
|
|
100899
|
-
title: entry.title,
|
|
100900
|
-
slug: entry.slug,
|
|
100901
|
-
path: entry.path,
|
|
100902
|
-
publishAt: entry.publishAt,
|
|
100903
|
-
status: entry.status,
|
|
100904
|
-
createdAt: entry.createdAt,
|
|
100905
|
-
updatedAt: entry.updatedAt
|
|
100906
|
-
}
|
|
100907
|
-
};
|
|
100908
101606
|
const blocks = template.blocks.flatMap(
|
|
100909
|
-
(block) => resolveTemplateBlockSequence(block, bindingContext,
|
|
101607
|
+
(block) => resolveTemplateBlockSequence(block, input.bindingContext, input.slotContent)
|
|
100910
101608
|
);
|
|
100911
101609
|
if (blocks.length === 0) {
|
|
100912
101610
|
return { templatePage: null, resolvedData: {} };
|
|
100913
101611
|
}
|
|
100914
101612
|
const templatePage = {
|
|
100915
|
-
name: template.name ||
|
|
100916
|
-
path:
|
|
100917
|
-
purpose:
|
|
101613
|
+
name: template.name || input.pageName,
|
|
101614
|
+
path: input.pagePath,
|
|
101615
|
+
purpose: input.pagePurpose,
|
|
100918
101616
|
blocks
|
|
100919
101617
|
};
|
|
100920
101618
|
const resolvedData = await prefetchBlockData2(
|
|
100921
101619
|
templatePage,
|
|
100922
101620
|
{
|
|
100923
|
-
siteId: context.siteId,
|
|
101621
|
+
siteId: input.context.siteId,
|
|
100924
101622
|
pageId: template.id,
|
|
100925
|
-
previewStage: context.preview ? "preview" : "published"
|
|
101623
|
+
previewStage: input.context.preview ? "preview" : "published"
|
|
100926
101624
|
},
|
|
100927
|
-
client,
|
|
100928
|
-
{ customBlocks: options?.customBlocks }
|
|
101625
|
+
input.client,
|
|
101626
|
+
{ customBlocks: input.options?.customBlocks }
|
|
100929
101627
|
);
|
|
100930
101628
|
return { templatePage, resolvedData };
|
|
100931
101629
|
}
|
|
@@ -100945,7 +101643,9 @@ function resolveTemplateBlock(block, bindingContext) {
|
|
|
100945
101643
|
}
|
|
100946
101644
|
const bindings = block.bindings ?? {};
|
|
100947
101645
|
const hasBindings = typeof bindings === "object" && Object.keys(bindings).length > 0;
|
|
100948
|
-
const resolvedContent = hasBindings ? normalizeBindingOutput2(
|
|
101646
|
+
const resolvedContent = hasBindings ? normalizeBindingOutput2(
|
|
101647
|
+
applyBindingsToContent2(baseContent, bindings, bindingContext)
|
|
101648
|
+
) : baseContent;
|
|
100949
101649
|
return {
|
|
100950
101650
|
id: block.id,
|
|
100951
101651
|
kind: block.blockKind,
|
|
@@ -100953,12 +101653,12 @@ function resolveTemplateBlock(block, bindingContext) {
|
|
|
100953
101653
|
content: resolvedContent
|
|
100954
101654
|
};
|
|
100955
101655
|
}
|
|
100956
|
-
function resolveTemplateBlockSequence(block, bindingContext,
|
|
101656
|
+
function resolveTemplateBlockSequence(block, bindingContext, slotContent) {
|
|
100957
101657
|
const slotKey = readEntrySlotKey(block);
|
|
100958
101658
|
if (slotKey) {
|
|
100959
101659
|
return selectBlocksForDeclaredEntrySlot({
|
|
100960
101660
|
declaredSlotKey: slotKey,
|
|
100961
|
-
entrySlots:
|
|
101661
|
+
entrySlots: slotContent ?? []
|
|
100962
101662
|
}).map(mapEntrySlotBlock);
|
|
100963
101663
|
}
|
|
100964
101664
|
if (block.blockKind === SYSTEM_ENTRY_SLOT_BLOCK_KIND) {
|
|
@@ -100980,7 +101680,7 @@ function mapEntrySlotBlock(block) {
|
|
|
100980
101680
|
kind: block.kind,
|
|
100981
101681
|
purpose: block.purpose,
|
|
100982
101682
|
orderIndex: block.orderIndex ?? null,
|
|
100983
|
-
content:
|
|
101683
|
+
content: normalizeEntrySlotBlockContent(block.content),
|
|
100984
101684
|
draftContent: normalizeNullableEntrySlotContent(block.draftContent),
|
|
100985
101685
|
publishedContent: normalizeNullableEntrySlotContent(block.publishedContent)
|
|
100986
101686
|
};
|
|
@@ -100993,31 +101693,17 @@ function mapEntrySlotBlock(block) {
|
|
|
100993
101693
|
};
|
|
100994
101694
|
}
|
|
100995
101695
|
function normalizeNullableEntrySlotContent(content) {
|
|
100996
|
-
return content == null ? null :
|
|
101696
|
+
return content == null ? null : normalizeEntrySlotBlockContent(content);
|
|
101697
|
+
}
|
|
101698
|
+
function normalizeEntrySlotBlockContent(content) {
|
|
101699
|
+
const normalized = normalizeBindingOutput2(content ?? {});
|
|
101700
|
+
return isRecord20(normalized) ? normalized : {};
|
|
100997
101701
|
}
|
|
100998
|
-
|
|
100999
|
-
// src/contracts/bindings.ts
|
|
101000
|
-
var BINDING_TRANSFORMS = {
|
|
101001
|
-
RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
|
|
101002
|
-
DATE_FORMAT_SHORT: "date.formatShort",
|
|
101003
|
-
DATE_FORMAT_LONG: "date.formatLong",
|
|
101004
|
-
TEXT_INLINE_TEXT: "text.inlineText"
|
|
101005
|
-
};
|
|
101006
|
-
var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
|
|
101007
|
-
var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES.join(", ");
|
|
101008
|
-
|
|
101009
|
-
// src/contracts/rendering.ts
|
|
101010
|
-
var ImagePresets2 = {
|
|
101011
|
-
thumbnail: { width: 200, quality: 80, resize: "contain" },
|
|
101012
|
-
card: { width: 600, quality: 80, resize: "contain" },
|
|
101013
|
-
hero: { width: 1200, quality: 85, resize: "contain" },
|
|
101014
|
-
full: { width: 1920, quality: 85, resize: "contain" }
|
|
101015
|
-
};
|
|
101016
101702
|
|
|
101017
101703
|
// src/rendering/primitives/RichText.tsx
|
|
101018
|
-
import { jsx as
|
|
101704
|
+
import { jsx as jsx166 } from "react/jsx-runtime";
|
|
101019
101705
|
function RichText3(props2) {
|
|
101020
|
-
return /* @__PURE__ */
|
|
101706
|
+
return /* @__PURE__ */ jsx166(RichText2, { ...props2 });
|
|
101021
101707
|
}
|
|
101022
101708
|
|
|
101023
101709
|
// src/rendering/image.ts
|